diff --git a/Configure b/Configure index 3b94f3036d..61999be57e 100755 --- a/Configure +++ b/Configure @@ -18,9 +18,9 @@ # you may fetch it yourself from your nearest archive site.) # -# $Id: Configure,v 1.33 2003/02/21 16:04:59 stesting Exp $ +# $Id: Configure,v 1.48 2003/12/12 15:02:51 stesting Exp $ # -# Generated on Fri Feb 21 17:04:19 CET 2003 [metaconfig 3.0 PL70] +# Generated on Fri Dec 12 15:49:38 CET 2003 [metaconfig 3.0 PL70] cat >/tmp/c1$$ < /usr/local) +g4ogl_base_dir_found=`dirname $g4ogl_base_dir_found` +g4ogl_base_dir_found=`dirname $g4ogl_base_dir_found` + + g4vis_oglhome=$g4ogl_base_dir_found +else +case "$g4vis_oglhome" in +'') + g4vis_oglhome=/usr + ;; +esac +fi + +########################################################################## + +if test "X$ogl_dirs" != "X" ; then + g4message=`cat << EOM OGLHOME/include OGLHOME/lib You have selected to use OpenGL driver. -Specify the correct path (OGLHOME) where OpenGL is installed in your system: +Specify the correct path (OGLHOME) where OpenGL is installed in your system. +It was found in: EOM` +else + +g4message=`cat << EOM + + OGLHOME/include + OGLHOME/lib + +You have selected to use OpenGL driver. +Specify the correct path (OGLHOME) where OpenGL is installed in your system +(set by defalt): +EOM` + +fi + dflt=$g4vis_oglhome fn='d~' rp=$g4message . ./getfile g4vis_oglhome=$ans +if test "X$g4osname" = "XLinux"; then + +if test "X$g4vis_oglhome" = "X/usr" -o "X$g4vis_oglhome" = "X/usr/local"; then +g4vis_oglhome="" fi + +fi # if platform (Linux vs SUN) + +fi # if need +fi # if platform (Unix vs Win) + echo " " case "$g4wlib_build_g3tog4" in '') @@ -4127,7 +4212,7 @@ case "$g4wlib_build_g3tog4" in ;; esac -case "$g4w_use_g4tog4" in +case "$g4w_use_g3tog4" in '') g4w_use_g3tog4=n ;; @@ -4137,7 +4222,7 @@ echo "" g4message=`cat << EOM - G4USE_G3TOG4 + G4LIB_BUILD_G3TOG4 If this variable is set, it will be built G3TOG4 module. Do you want to set this variable ? @@ -4153,7 +4238,7 @@ gans=$ans n*|N*) g4wlib_build_g3tog4=n - g4w_use_g4tog4=n + g4w_use_g3tog4=n ;; y*|Y*) g4wlib_build_g3tog4=y @@ -4269,7 +4354,6 @@ cf_time='$cf_time' contains='$contains' d_portable='$d_portable' eunicefix='$eunicefix' -g4_build_wo_session='$g4_build_wo_session' g4_gmake='$g4_gmake' g4_gmake_version='$g4_gmake_version' g4_make='$g4_make' @@ -4287,6 +4371,7 @@ g4debug='$g4debug' g4global='$g4global' g4granular='$g4granular' g4include='$g4include' +g4includes_flag='$g4includes_flag' g4install='$g4install' g4ledata='$g4ledata' g4levelgammadata='$g4levelgammadata' @@ -4311,7 +4396,6 @@ g4ui_use_gag='$g4ui_use_gag' g4ui_use_tcsh='$g4ui_use_tcsh' g4ui_use_terminal='$g4ui_use_terminal' g4ui_use_win32='$g4ui_use_win32' -g4ui_use_wo='$g4ui_use_wo' g4ui_use_xaw='$g4ui_use_xaw' g4ui_use_xm='$g4ui_use_xm' g4vis_build_asciitree_driver='$g4vis_build_asciitree_driver' @@ -4319,7 +4403,6 @@ g4vis_build_dawn_driver='$g4vis_build_dawn_driver' g4vis_build_dawnfile_driver='$g4vis_build_dawnfile_driver' g4vis_build_oiwin32_driver='$g4vis_build_oiwin32_driver' g4vis_build_oix_driver='$g4vis_build_oix_driver' -g4vis_build_opacs_driver='$g4vis_build_opacs_driver' g4vis_build_openglwin32_driver='$g4vis_build_openglwin32_driver' g4vis_build_openglx_driver='$g4vis_build_openglx_driver' g4vis_build_openglxm_driver='$g4vis_build_openglxm_driver' @@ -4332,7 +4415,6 @@ g4vis_use_dawn='$g4vis_use_dawn' g4vis_use_dawnfile='$g4vis_use_dawnfile' g4vis_use_oiwin32='$g4vis_use_oiwin32' g4vis_use_oix='$g4vis_use_oix' -g4vis_use_opacs='$g4vis_use_opacs' g4vis_use_openglwin32='$g4vis_use_openglwin32' g4vis_use_openglx='$g4vis_use_openglx' g4vis_use_openglxm='$g4vis_use_openglxm' diff --git a/ReleaseNotes/Patch4.5.2-1.txt b/ReleaseNotes/Patch4.5.2-1.txt new file mode 100644 index 0000000000..cc68e871cc --- /dev/null +++ b/ReleaseNotes/Patch4.5.2-1.txt @@ -0,0 +1,90 @@ + + Geant4 5.2 - patch-01 Release Notes + ----------------------------------- + + 27 August 2003 + +List of fixes included in this public patch to release 5.2: + + o Configuration scripts: + --------------------- + + WIN32-VC.gmk, WIN32-VC7.gmk: + o reinstated options "-D_CONSOLE -D_WIN32 -DOS" to allow correct + treatment/opening of data files at run-time. + + o Electromagnetic processes (standard): + ------------------------------------ + + muons: + o Fixed bug of printout in G4MuIonisation. + + o Hadronic processes: + ------------------ + + models/chiral_inv_phase_space + o Added protection against a rounding problem in the CHIPS + evaporation. Fixes a problem observed in gamma-nuclear reactions. + + models/generator/de_excitation + o Fixed usage of arguments to pow() function (porting on + .NET 7.1 compiler). + + models/generator/quark_gluon_string + + models/generator/string_fragmentation + - Implemented the handling of diffractive photon scattering in + the parton string models. Mandatory for high energy gamma and + electro-nuclear reactions. + + models/neutron_hp: + o Corrected an error affecting the neutron energy distribution + in Fission. Mandatory for fission in Uranium 235. + + stopping: + o Fixed few cases of memory leaks occuring at every new run. + + o Particles: + --------- + + Add one void pointer to G4DynamicParticle for the sake of maintaining + links between pre-assigned decay products and corresponding primary + particle. + + o Transportation: + -------------- + + G4Transportation: + o Added verbosity level to control the printing of warnings. + o Attempt to correct photon problem by using the velocity from current + medium for massless particles. + o Use the finalVelocity to update TofF for optical photons. + + o Visualization: + ------------- + + RayTracer: + o Fixed incomplete migration to Cuts per Region scheme, causing + tracing process to crash in release 5.2. + + o Examples: + -------- + - Updated reference outputs. + - extended: + o eventgenerator/HepMC + + fixed compilation errors due to incorrect code migration from + g4std wrappers. + + fixed pedantic compilation warnings on Linux-g++. + o gdml + + Fixed trivial compilation errors originated by recent g4std + migration. + + Fixed pedantic compilation warnings on Linux-g++. + o g3tog4 + + Fixed pedantic compilation warnings on Linux-g++. + o parallel + + Fixed pedantic compilation warnings on Linux-g++. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 5.2. + o Technical notes distributed for release 5.2 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 5.2 are available through +our "Source Code" Web page: http://cern.ch/geant4 + +Please refer to the Geant4 User Documentation: + http://cern.ch/geant4/G4UsersDocuments/Overview/html +for further information about using Geant4. diff --git a/ReleaseNotes/Patch4.5.2-2.txt b/ReleaseNotes/Patch4.5.2-2.txt new file mode 100644 index 0000000000..ee2ec3b762 --- /dev/null +++ b/ReleaseNotes/Patch4.5.2-2.txt @@ -0,0 +1,72 @@ + + Geant4 5.2 - patch-02 Release Notes + ----------------------------------- + + 3 October 2003 + +List of fixes included in this public patch since release 5.2.p01: + + o Configuration script + -------------------- + + Configure: + o Corrected default name for data sets. + o Implemented automatic detection of OpenGL and CLHEP installations. + o Fixed behavior of script on Windows system, corrected definition of + paths and defaults. + o Cleared not allowed configuration drivers. + + o Geometry: + -------- + + verification: + o Fixed logic in G4GeomTestSegment::FindSomePoints() in case a + point gets stuck in a loop while along a curved surface. + Addresses also problem report #499. + + volumes: + o Made optional the printing of information on 'looping' particles + in G4PropagatorInField. It is now controlled by the verbose flag. + Addresses problem report #509. + + o Hadronic processes: + ------------------ + + management + o Fixed major bug in G4HadronicProcess class, affecting final state + generation in all materials with more than two elements. + + cross_sections: + o Fixes in the high energy equivalent photon generation in the + electronuclear interactions above 50 GeV. + + o Particles: + --------- + + Fixed memory leak for 'theElectronOccupancy' in G4DynamicParticle + assignment operator. + + Added DecayProperTime to deep copy of G4DecayProduct. + + o Examples: + -------- + - Updated reference outputs. + - advanced: + + composite_calorimeter + o Minor fix in inclusion of headers. + - extended: + + field + o Implemented complete migration to cuts-by-region. + - novice: + + N05 + o Implemented complete migration to cuts-by-region. + + ---------------------------------------------------------------------------- + + Technical Notes + --------------- + + o This patch should be applied on top of release 5.2-patch01. + It is NOT a cumulative patch ! + o Technical notes distributed for release 5.2 are also applicable and + valid for this patch. + +The code and rebuilt binary libraries for release 5.2 are available through +our "Source Code" Web page: http://cern.ch/geant4 + +Please refer to the Geant4 User Documentation: + http://cern.ch/geant4/G4UsersDocuments/Overview/html +for further information about using Geant4. diff --git a/ReleaseNotes/ReleaseNotes4.6.0.html b/ReleaseNotes/ReleaseNotes4.6.0.html new file mode 100644 index 0000000000..f7f28e7c2d --- /dev/null +++ b/ReleaseNotes/ReleaseNotes4.6.0.html @@ -0,0 +1,1364 @@ + + +Geant4 6.0 Release Notes + + + +

+
+

+ +

+ +Geant4 6.0 Release Notes + + + + +
+ +December 12th, 2003 + +
+ +

+


+

+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. Compiler Specific Problems
  6. +
  7. Known Run-Time Problems
  8. +
  9. Compilation Warnings
  10. +
  11. Known Run-Time Warnings
  12. +
  13. Major items for migration of user code
  14. +
  15. Detailed list of changes and fixes
  16. +
+ +

+ +
+ + + +

1. Supported and Tested Platforms

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

+ +
+ + + +

2. AIDA and CLHEP

+ +Geant4 6.0 requires the installation +of CLHEP.
+Tests have been performed with CLHEP-1.8.1.0. +

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

+ +
+ + + +

3. Compiler Specific Problems

+ + + +

+ +
+ + + +

4. 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. + + +

+ +
+ + + +

5. Compilation Warnings

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

+ +
+ + + +

6. Known Run-Time Warnings

+ +The following messages can be written to error output while tracking. +We believe none 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. 
+
+ + +

+ +
+ + + +

7. Major items for migration of user code

+ +

Data sets

+ + +

+ +

Geometry

+ + +

+ +

Magnetic Field

+ + +

+ +

Electromagnetic physics

+ + +

+ +

Hadronic physics

+ + +

+ +

Run

+ + +

+ +

Visualization

+ + +

+ +
+ + + +

8. 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

+ + + +

Event

+ + + +

Electromagnetic Processes (Low-energy)

+ + + +

Electromagnetic Processes (Standard)

+ + + +

General Processes, Parameterisation, Cuts, Decay, Optical

+ + + +

Geometry

+ + + +

Global

+ + + +

Graphical representations

+ + + +

Hadronic Processes

+ + + +

Magnetic Field

+ + + +

Materials

+ + + +

Particles

+ + + +

Run, Intercoms and Interfaces

+ + + +

Tracking & Track

+ + + +

Transportation

+ + + +

Visualization

+ + + +

Environments

+ + + +

Hadronic physics-lists

+ + + +

Data

+ + + +

Examples

+ + +
+ + + diff --git a/config/G4UI_BUILD.gmk b/config/G4UI_BUILD.gmk index 2a878aa281..06b382b3f6 100644 --- a/config/G4UI_BUILD.gmk +++ b/config/G4UI_BUILD.gmk @@ -1,4 +1,4 @@ -# $Id: G4UI_BUILD.gmk,v 1.3 2003/06/11 13:18:56 gunter Exp $ +# $Id: G4UI_BUILD.gmk,v 1.4 2003/10/17 10:17:10 gbarrand Exp $ # ------------------------------------------------------------- # Interfaces-specific CPPFLAGS for BUILD phase. # John Allison, 6th July 1998. @@ -37,15 +37,6 @@ ifdef G4UI_BUILD_WIN32_SESSION CPPFLAGS += -DG4UI_BUILD_WIN32_SESSION endif -########################### interfaces/OPACS ####################### - -ifdef G4UI_BUILD_WO_SESSION - G4UI_BUILD = 1 - G4INTY_BUILD_XT = 1 - INC_OPACS = 1 - CPPFLAGS += -DG4UI_BUILD_WO_SESSION -endif - ########################### interfaces/XVT - not currently implemented ##### ############################################################################ @@ -64,12 +55,6 @@ ifdef G4LIB_BUILD_SHARED G4UI_USE_WIN32 = 1 endif - ########################### interfaces/OPACS ####################### - - ifdef G4UI_BUILD_WO_SESSION - G4UI_USE_WO = 1 - endif - include $(G4INSTALL)/config/G4UI_USE.gmk endif # G4LIB_BUILD_SHARED diff --git a/config/G4UI_USE.gmk b/config/G4UI_USE.gmk index 835c38190d..e7a1c9e049 100644 --- a/config/G4UI_USE.gmk +++ b/config/G4UI_USE.gmk @@ -1,4 +1,4 @@ -# $Id: G4UI_USE.gmk,v 1.7 2003/06/11 13:18:56 gunter Exp $ +# $Id: G4UI_USE.gmk,v 1.8 2003/10/17 10:17:10 gbarrand Exp $ # ------------------------------------------------------------- # GNUmakefile for CPPFLAGS for interfaces USE phase. # John Allison, 6th July 1998. @@ -72,20 +72,6 @@ ifdef G4UI_USE_WIN32 CPPFLAGS += -DG4UI_USE_WIN32 endif -########################### interfaces/OPACS ####################### - -ifdef G4UI_USE_WO - G4UI_USE = 1 - G4INTY_USE_XT = 1 - CPPFLAGS += -DG4UI_USE_WO - ifneq ($(G4INCLUDE_EXEC),1) - CPPFLAGS += -I$(G4BASE)/interfaces/OPACS/include - endif - UILIBS += -lG4UIOPACS - INC_OPACS = 1 - LOAD_OPACS = 1 -endif - ########################### interfaces/XVT - not currently implemented ##### ##################### Default to TERMINAL if no environment variables set ## diff --git a/config/G4VIS_BUILD.gmk b/config/G4VIS_BUILD.gmk index d437ec71ac..ccb856178d 100644 --- a/config/G4VIS_BUILD.gmk +++ b/config/G4VIS_BUILD.gmk @@ -1,4 +1,4 @@ -# $Id: G4VIS_BUILD.gmk,v 1.12 2003/06/11 13:18:56 gunter Exp $ +# $Id: G4VIS_BUILD.gmk,v 1.16 2003/11/13 09:54:41 gcosmo Exp $ # ------------------------------------------------------------- # Visualization-specific CPPFLAGS for BUILD phase. # John Allison, 24th January 1998. @@ -22,12 +22,6 @@ ifdef G4VIS_BUILD_DAWN_DRIVER CPPFLAGS += -DG4VIS_BUILD_DAWN_DRIVER endif -ifdef G4VIS_BUILD_OPACS_DRIVER - G4INTY_BUILD_XT = 1 - CPPFLAGS += -DG4VIS_BUILD_OPACS_DRIVER - INC_OPACS = 1 -endif - ifdef G4VIS_BUILD_OPENGLX_DRIVER G4VIS_BUILD_OPENGL_DRIVER = 1 INC_X11 = 1 @@ -74,10 +68,6 @@ ifdef G4LIB_BUILD_SHARED G4VIS_USE_DAWN = 1 endif - ifdef G4VIS_BUILD_OPACS_DRIVER - G4VIS_USE_OPACS = 1 - endif - ifdef G4VIS_BUILD_OPENGLX_DRIVER G4VIS_USE_OPENGLX = 1 endif diff --git a/config/G4VIS_USE.gmk b/config/G4VIS_USE.gmk index 61cefbfd63..7871b9c23f 100644 --- a/config/G4VIS_USE.gmk +++ b/config/G4VIS_USE.gmk @@ -1,4 +1,4 @@ -# $Id: G4VIS_USE.gmk,v 1.16 2003/06/11 13:18:57 gunter Exp $ +# $Id: G4VIS_USE.gmk,v 1.20 2003/11/13 09:54:41 gcosmo Exp $ # ------------------------------------------------------------- # GNUmakefile for CPPFLAGS for visualization USE phase. # John Allison, 24th January 1998. @@ -44,16 +44,6 @@ ifdef G4VIS_USE_DAWN # CPPFLAGS += -I... and VISLIBS += set above. endif -ifdef G4VIS_USE_OPACS - INC_OPACS = 1 - LOAD_OPACS = 1 - CPPFLAGS += -DG4VIS_USE_OPACS - ifneq ($(G4INCLUDE_EXEC),1) - CPPFLAGS += -I$(G4BASE)/visualization/OPACS/include - endif - VISLIBS += -lG4OPACS -endif - ifdef G4VIS_USE_OPENGLX G4VIS_USE_OPENGL = 1 CPPFLAGS += -DG4VIS_USE_OPENGLX diff --git a/config/History b/config/History index 1c5f3c6b4c..b8a559a9f3 100644 --- a/config/History +++ b/config/History @@ -1,5 +1,5 @@ -$Id: History,v 1.218 2003/06/26 07:54:59 gcosmo Exp $ -$Name: geant4-05-02 $ +$Id: History,v 1.231 2003/11/18 09:08:10 gcosmo Exp $ +$Name: geant4-06-00 $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,49 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +18th November 2003 Gabriele Cosmo (config-V05-02-05) +- Updated binmake.gmk to include new hadronics modules. + Coworks with "ghad-V05-02-00" and HEAD of processes/GNUmakefile. + +4th November 2003 Gabriele Cosmo (config-V05-02-04) +- Include removal of OPACS setup. Cowork with tags "interfaces-V05-02-00" + and "vis-V05-02-02". + +29th October 2003 Gabriele Cosmo (config-V05-02-03) +- binmake.gmk: + o Added particles/utils module. +- Does NOT include removal of OPACS setup yet. + +22th October 2003 Guy Barrand +- OPACS : rm interfaces OPACS related things. + +17th October 2003 Guy Barrand +- OPACS being (for long) deprecated, the OPACS related things + had been removed in the Geant4 repository. + +30th September 2003 Gabriele Cosmo (config-V05-02-02) +- architecture.gmk, binmake.gmk: + o Added geometry/navigation module. + o Removed setup for STEP, now archived. + o Adopt new module and library "digits_hits", replacing "digits+hits". +- Configure installation script: + o Fixed correct default name for data sets. + o Implemented automatic detection of OpenGL and CLHEP installations. + o Fixed behavior of script on Windows system, corrected definition of + paths and defaults. + o Cleared not allowed configuration drivers. + +19th September 2003 Gabriele Cosmo (config-V05-02-01) +- binmake.gmk: + o added processes/cuts module. +- architecture.gmk: + o fixed setup for OpenInventor libraries. + +1st July 2003 Gabriele Cosmo (config-V05-02-00) +- WIN32-VC.gmk, WIN32-VC7.gmk: + o reinstated options "-D_CONSOLE -D_WIN32 -DOS" to allow correct + treatment/opening of data files from applications. + 24th June 2003 Gabriele Cosmo (config-V05-01-05) - Added UI32LIBS to interactivity.gmk to handle UI libraries on WIN32 platforms. diff --git a/config/architecture.gmk b/config/architecture.gmk index ee6fc62a84..ee66cc86b9 100644 --- a/config/architecture.gmk +++ b/config/architecture.gmk @@ -1,4 +1,4 @@ -# $Id: architecture.gmk,v 1.87 2003/06/06 16:20:57 gcosmo Exp $ +# $Id: architecture.gmk,v 1.90 2003/10/17 10:17:11 gbarrand Exp $ # ------------------------------------------------------------------------ # GEANT 4 - Architecture configuration script for GNU Make # @@ -91,14 +91,6 @@ ifneq ($(G4LIB_BUILD_G3TOG4),) G4USE_G3TOG4 = 1 endif -# Specify if to build the STEP and STEinterface modules or not. -# Default is NO. -# -ifneq ($(G4LIB_BUILD_STEP),) - G4LIB_BUILD_STEP = 1 - G4USE_STEP = 1 -endif - # If not specified, the default path for G4 binaries G4BIN is # set to $G4WORKDIR/bin/$G4SYSTEM ... # @@ -205,12 +197,15 @@ endif # ------------------ X11 --------------------- X11FLAGS := X11LIBS := -lXmu -lXt -lXext -lX11 +# # ----------------- Motif -------------------- XMFLAGS := XMLIBS := -lXm +# # ---------------- Athena -------------------- XAWFLAGS := XAWLIBS := -lXaw +# # ---------------- OpenGL -------------------- # The user can define his own values of OGLFLAGS and OGLLIBS. # OGLFLAGS gives the directory containing include files. @@ -218,35 +213,28 @@ XAWLIBS := -lXaw # OGLLIBS gives the libraries. # E.g.: OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL # Or : OGLLIBS := -L$(OGLHOME)/lib -lMesaGLU -lMesaGL -# OGLHOME is often /usr or /usr/local. Or it can point to a special -# installation. +# OGLHOME is often /usr or /usr/local. In such case, it is not necessary +# to specify the path in OGLFLAGS, since added already by default by the +# compiler. OGLHOME can also point to a special installation. # If the user does not set his/her own values, system-dependent values # are set below. Most system-dependent code assumes OGLHOME is set. +# # ------------- OpenInventor ----------------- +# The path to the installation of HEPVis and OpenInventor must be specified +# in HEPVISDIR -only- if the packages are installed in a location different +# than default system directories (like... /usr or /usr/local). +# ifndef HEPVISINC HEPVISINC := $(HEPVISDIR)/include endif ifndef HEPVISLIB - HEPVISLIB := $(HEPVISDIR)/source + HEPVISLIB := $(HEPVISDIR)/lib endif ifndef OIVFLAGS OIVFLAGS := -I${HEPVISINC} endif ifndef OIVLIBS - OIVLIBS := -L${HEPVISLIB} -lHEPVis -lInventorXt -lInventor -lGLU -lGL -endif -# ----------------- OPACS -------------------- -# lesstiff is bugged for popups ; then OPACS/Xo uses -# the Xaw widgets for handling popups. The OPACS distrib -# for Linux assumes that lesstif is used by default. To be -# coherent we set in Geant4 the default toolkit to lesstif -# on Linux in order to link with -lXaw, etc... -ifndef G4_OPACS_WIDGET_SET - ifeq ($(findstring Linux,$(G4SYSTEM)),Linux) - G4_OPACS_WIDGET_SET := lesstif - else - G4_OPACS_WIDGET_SET := Xm - endif + OIVLIBS := -L${HEPVISLIB} -lHEPVis -lHEPVisXt -lInventor -lInventorXt endif # For cfront compilers the repository location is set to diff --git a/config/binmake.gmk b/config/binmake.gmk index 42618f2393..d44f62a31f 100644 --- a/config/binmake.gmk +++ b/config/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.88 2003/06/16 15:28:28 gcosmo Exp $ +# $Id: binmake.gmk,v 1.94 2003/11/18 11:28:10 hpw Exp $ # ---------------------------------------------------------- # Script defining rules and paths for making binaries. # First implementation: Gabriele Cosmo, 25/06/1998. @@ -52,44 +52,59 @@ ifndef INCFLAGS -I$(G4BASE)/particles/hadrons/mesons/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/processes/decay/include \ -I$(G4BASE)/processes/optical/include \ -I$(G4BASE)/processes/transportation/include \ -I$(G4BASE)/processes/parameterisation/include \ - -I$(G4BASE)/processes/photolepton_hadron/include \ -I$(G4BASE)/processes/electromagnetic/standard/include \ -I$(G4BASE)/processes/electromagnetic/muons/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/processes/electromagnetic/xrays/include \ -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ - -I$(G4BASE)/processes/hadronic/management/include \ - -I$(G4BASE)/processes/hadronic/processes/include \ - -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/cascade/evaporation/include \ - -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ - -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ - -I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \ + -I$(G4BASE)/processes/hadronic/management/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/body/include \ -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/interface/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/diffractive_string/include \ - -I$(G4BASE)/processes/hadronic/models/generator/high_energy/include \ - -I$(G4BASE)/processes/hadronic/models/generator/kinetic_model/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/pre_equilibrium/include \ - -I$(G4BASE)/processes/hadronic/models/generator/quark_gluon_string/include \ - -I$(G4BASE)/processes/hadronic/models/generator/string_common/include \ - -I$(G4BASE)/processes/hadronic/models/generator/string_fragmentation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/scattering/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \ -I$(G4BASE)/processes/hadronic/models/high_energy/include \ + -I$(G4BASE)/processes/hadronic/models/isotope_production/include \ + -I$(G4BASE)/processes/hadronic/models/leading_particle/include \ -I$(G4BASE)/processes/hadronic/models/low_energy/include \ -I$(G4BASE)/processes/hadronic/models/neutron_hp/include \ - -I$(G4BASE)/processes/hadronic/models/isotope_production/include \ - -I$(G4BASE)/processes/hadronic/models/radiative_decay/include \ - -I$(G4BASE)/processes/hadronic/models/leading_particle/include \ + -I$(G4BASE)/processes/hadronic/models/binary_cascade/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fission/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/gem_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/handler/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/multifragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/inucl/include \ + -I$(G4BASE)/processes/hadronic/models/photolepton_hadron/muon_nuclear/include \ + -I$(G4BASE)/processes/hadronic/models/pre_equilibrium/exciton_model/include \ + -I$(G4BASE)/processes/hadronic/models/quark_molecular_dynamics/body/include \ + -I$(G4BASE)/processes/hadronic/models/quark_molecular_dynamics/util/include \ + -I$(G4BASE)/processes/hadronic/models/relativistic_qmd/include \ + -I$(G4BASE)/processes/hadronic/models/relativistic_qmd/uplusplus/include \ + -I$(G4BASE)/processes/hadronic/models/im_r_matrix/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/diffraction/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/hadronization/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/management/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/qgsm/include \ + -I$(G4BASE)/processes/hadronic/models/theo_high_energy/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/general_finalstate/include \ + -I$(G4BASE)/processes/hadronic/models/radioactive_decay/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/stopping/include \ + -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/solids/CSG/include \ -I$(G4BASE)/geometry/solids/specific/include \ @@ -97,23 +112,19 @@ ifndef INCFLAGS -I$(G4BASE)/geometry/solids/Boolean/include \ -I$(G4BASE)/geometry/divisions/include \ -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/verification/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/geometry/biasing/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/tracking/include \ - -I$(G4BASE)/digits+hits/detector/include \ - -I$(G4BASE)/digits+hits/hits/include \ - -I$(G4BASE)/digits+hits/digits/include \ + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/digits_hits/hits/include \ + -I$(G4BASE)/digits_hits/digits/include \ -I$(G4BASE)/persistency/include \ -I$(G4BASE)/readout/include \ -I$(G4BASE)/event/include \ -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/intercoms/include - ifdef G4USE_STEP - INCFLAGS += -I$(G4BASE)/geometry/solids/STEP/include \ - -I$(G4BASE)/geometry/solids/STEPinterface/include - endif ifdef G4USE_G3TOG4 INCFLAGS += -I$(G4BASE)/g3tog4/include endif @@ -171,7 +182,7 @@ ifdef GLOBALLIBS -lG4tracking \ -lG4parmodels \ -lG4processes \ - -lG4digits+hits \ + -lG4digits_hits \ -lG4track \ -lG4particles \ -lG4geometry \ diff --git a/config/interactivity.gmk b/config/interactivity.gmk index f9a572045c..ede7513f3b 100644 --- a/config/interactivity.gmk +++ b/config/interactivity.gmk @@ -23,59 +23,6 @@ ifdef LOAD_IV INTYLIBS += $(OIVLIBS) endif -########################### OPACS ####################### -# OpenGL, X11 things must come after. - -ifdef INC_OPACS - CPPFLAGS += -I$(COROOT)/include -I$(XXROOT)/include -I$(WOROOT)/include -# Let Wo knows Xm (or Xaw) and Xo widget sets - ifeq ($(G4_OPACS_WIDGET_SET),Xm) - INC_XM = 1 - CPPFLAGS += -DHAS_XM - endif - ifeq ($(G4_OPACS_WIDGET_SET),lesstif) - INC_XM = 1 - CPPFLAGS += -DHAS_XM - endif - ifeq ($(G4_OPACS_WIDGET_SET),Xaw) - INC_XAW = 1 - CPPFLAGS += -DHAS_XAW - endif - CPPFLAGS += -DHAS_XO -DHAS_GO -I$(GOROOT)/include -I$(HOROOT)/include -I$(XOROOT)/include -endif - -ifdef LOAD_OPACS -ifeq ($(G4_OPACS_WIDGET_SET),Xm) - INC_XM = 1 - LOAD_XM = 1 - INTYLIBS += -L$(WOROOT)/$(OCONFIG) -lWoXm -endif -ifeq ($(G4_OPACS_WIDGET_SET),lesstif) - INC_XM = 1 - LOAD_XM = 1 - INTYLIBS += -L$(WOROOT)/$(OCONFIG) -lWoXm -# lesstif is bugged on popup ; then OPACS/Xo uses Xaw for popup. - LOAD_XAW = 1 -endif -ifeq ($(G4_OPACS_WIDGET_SET),Xaw) - INC_XAW = 1 - LOAD_XAW = 1 - INTYLIBS += -L$(WOROOT)/$(OCONFIG) -lWoXaw -endif - INTYLIBS += -L$(WOROOT)/$(OCONFIG) -lWo - INTYLIBS += -L$(XOROOT)/$(OCONFIG) -lXo - INTYLIBS += -L$(GOROOT)/$(OCONFIG) -lGo - INTYLIBS += -L$(HOROOT)/$(OCONFIG) -lHo - INTYLIBS += -L$(W3OROOT)/$(OCONFIG) -lW3o - INTYLIBS += -L$(HTMLOROOT)/$(OCONFIG) -lHTMLo -ifndef LOAD_GL - INTYLIBS += -L$(GLOROOT)/$(OCONFIG) -lGLXo -lGLUo -lGLo -endif - INTYLIBS += -L$(XXROOT)/$(OCONFIG) -lXx - INTYLIBS += -L$(COROOT)/$(OCONFIG) -lCo -endif - - ########################### OpenGL ############################### ifdef INC_GL diff --git a/config/scripts/GNUmakefile b/config/scripts/GNUmakefile index 615abf6a6e..9c0bd16304 100644 --- a/config/scripts/GNUmakefile +++ b/config/scripts/GNUmakefile @@ -1,6 +1,6 @@ -# $Id: GNUmakefile,v 1.3 2003/05/28 08:03:22 gcosmo Exp $ +# $Id: GNUmakefile,v 1.8 2003/10/02 17:57:10 stesting Exp $ # -------------------------------------------------------------- -# GNUmakefile for config scripts. Sergei Sadilov, 13/12/02. +# GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. # -------------------------------------------------------------- name := Marker diff --git a/config/scripts/binmake.gmk b/config/scripts/binmake.gmk index c2a621b9eb..3dc75606fb 100644 --- a/config/scripts/binmake.gmk +++ b/config/scripts/binmake.gmk @@ -1,4 +1,4 @@ -# $Id: binmake.gmk,v 1.3 2003/05/28 08:03:22 gcosmo Exp $ +# $Id: binmake.gmk,v 1.11 2003/12/12 10:07:56 stesting Exp $ # ---------------------------------------------------------- # Script defining rules and paths for making binaries. # First implementation: Gabriele Cosmo, 25/06/1998. @@ -21,7 +21,7 @@ include $(G4INSTALL)/config/interactivity.gmk include $(G4INSTALL)/config/analysis.gmk ifndef G4LIB_USE_GRANULAR - GLOBALLIBS := 1 + GLOBALLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.a && echo yes) ifndef GLOBALLIBS GLOBALLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.$(SHEXT) && echo yes) SHAREDLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.$(SHEXT) && echo yes) @@ -52,67 +52,79 @@ ifndef INCFLAGS -I$(G4BASE)/particles/hadrons/mesons/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/processes/decay/include \ -I$(G4BASE)/processes/optical/include \ -I$(G4BASE)/processes/transportation/include \ -I$(G4BASE)/processes/parameterisation/include \ - -I$(G4BASE)/processes/photolepton_hadron/include \ -I$(G4BASE)/processes/electromagnetic/standard/include \ -I$(G4BASE)/processes/electromagnetic/muons/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/processes/electromagnetic/xrays/include \ -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ - -I$(G4BASE)/processes/hadronic/management/include \ - -I$(G4BASE)/processes/hadronic/processes/include \ - -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/cascade/evaporation/include \ - -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ - -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ - -I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \ + -I$(G4BASE)/processes/hadronic/management/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/body/include \ -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/interface/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/diffractive_string/include \ - -I$(G4BASE)/processes/hadronic/models/generator/high_energy/include \ - -I$(G4BASE)/processes/hadronic/models/generator/kinetic_model/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/pre_equilibrium/include \ - -I$(G4BASE)/processes/hadronic/models/generator/quark_gluon_string/include \ - -I$(G4BASE)/processes/hadronic/models/generator/string_common/include \ - -I$(G4BASE)/processes/hadronic/models/generator/string_fragmentation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/scattering/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \ -I$(G4BASE)/processes/hadronic/models/high_energy/include \ + -I$(G4BASE)/processes/hadronic/models/isotope_production/include \ + -I$(G4BASE)/processes/hadronic/models/leading_particle/include \ -I$(G4BASE)/processes/hadronic/models/low_energy/include \ -I$(G4BASE)/processes/hadronic/models/neutron_hp/include \ - -I$(G4BASE)/processes/hadronic/models/isotope_production/include \ - -I$(G4BASE)/processes/hadronic/models/radiative_decay/include \ - -I$(G4BASE)/processes/hadronic/models/leading_particle/include \ + -I$(G4BASE)/processes/hadronic/models/binary_cascade/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fission/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/gem_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/handler/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/multifragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/inucl/include \ + -I$(G4BASE)/processes/hadronic/models/photolepton_hadron/muon_nuclear/include \ + -I$(G4BASE)/processes/hadronic/models/pre_equilibrium/exciton_model/include \ + -I$(G4BASE)/processes/hadronic/models/quark_molecular_dynamics/body/include \ + -I$(G4BASE)/processes/hadronic/models/quark_molecular_dynamics/util/include \ + -I$(G4BASE)/processes/hadronic/models/relativistic_qmd/include \ + -I$(G4BASE)/processes/hadronic/models/relativistic_qmd/uplusplus/include \ + -I$(G4BASE)/processes/hadronic/models/im_r_matrix/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/diffraction/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/hadronization/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/management/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/qgsm/include \ + -I$(G4BASE)/processes/hadronic/models/theo_high_energy/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/general_finalstate/include \ + -I$(G4BASE)/processes/hadronic/models/radioactive_decay/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/stopping/include \ + -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/solids/CSG/include \ -I$(G4BASE)/geometry/solids/specific/include \ -I$(G4BASE)/geometry/solids/BREPS/include \ -I$(G4BASE)/geometry/solids/Boolean/include \ + -I$(G4BASE)/geometry/divisions/include \ -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/verification/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/geometry/biasing/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/tracking/include \ - -I$(G4BASE)/digits+hits/detector/include \ - -I$(G4BASE)/digits+hits/hits/include \ - -I$(G4BASE)/digits+hits/digits/include \ + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/digits_hits/hits/include \ + -I$(G4BASE)/digits_hits/digits/include \ -I$(G4BASE)/persistency/include \ -I$(G4BASE)/readout/include \ -I$(G4BASE)/event/include \ -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/intercoms/include - ifdef G4USE_STEP - INCFLAGS += -I$(G4BASE)/geometry/solids/STEP/include \ - -I$(G4BASE)/geometry/solids/STEPinterface/include - endif ifdef G4USE_G3TOG4 INCFLAGS += -I$(G4BASE)/g3tog4/include endif @@ -174,7 +186,7 @@ ifdef GLOBALLIBS -lG4tracking \ -lG4parmodels \ -lG4processes \ - -lG4digits+hits \ + -lG4digits_hits \ -lG4track \ -lG4particles \ -lG4geometry \ diff --git a/config/scripts/env.csh.SH b/config/scripts/env.csh.SH index 6aecabe9cf..8642aca708 100755 --- a/config/scripts/env.csh.SH +++ b/config/scripts/env.csh.SH @@ -156,18 +156,6 @@ setenv G4UI_USE_WIN32 1 echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32" endif -#+ -if ( X$g4ui_build_wo_session == Xy ) then -setenv G4UI_BUILD_WO_SESSION 1 -echo "On this machine the G4UI_BUILD_WO_SESSION=\$G4UI_BUILD_WO_SESSION" -endif - -#+ -if ( X$g4ui_use_wo == Xy ) then -setenv G4UI_USE_WO 1 -echo "On this machine the G4UI_USE_WO=\$G4UI_USE_WO" -endif - # # g4vis # @@ -177,12 +165,6 @@ setenv G4VIS_BUILD_DAWN_DRIVER 1 echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER" endif -#+ -if ( X$g4vis_build_opacs_driver == Xy ) then -setenv G4VIS_BUILD_OPACS_DRIVER 1 -echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER" -endif - #+ if ( X$g4vis_build_openglx_driver == Xy ) then setenv G4VIS_BUILD_OPENGLX_DRIVER 1 @@ -225,12 +207,6 @@ setenv G4VIS_USE_DAWN 1 echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN" endif -#+ -if ( X$g4vis_use_opacs == Xy ) then -setenv G4VIS_USE_OPACS 1 -echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS" -endif - #+ if ( X$g4vis_use_openglx == Xy ) then setenv G4VIS_USE_OPENGLX 1 @@ -301,16 +277,6 @@ setenv G4LIB_BUILD_STATIC 1 echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC" endif -if ( X$g4lib_use_shared == Xy ) then -setenv G4LIB_USE_SHARED 1 -echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED" -endif - -if ( X$g4lib_use_static == Xy ) then -setenv G4LIB_USE_STATIC 1 -echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC" -endif - #+ # # g4granular @@ -334,11 +300,38 @@ $spitshell >>env.csh <<'!NO!SUBS!' if ( ${?G4WORKDIR} ) then echo "In your environment you have the G4WORKDIR=$G4WORKDIR" else -echo "G4WORKDIR will be set to HOME=$HOME." -setenv G4WORKDIR $HOME +# Check for Windows! +if ( "X$G4SYSTEM" == "XWIN32-VC" || "X$G4SYSTEM" == "XWIN32-VC7" ) then + +setenv checkdrive `echo $HOME|cut -d"/" -f2` + +if ( "X$checkdrive" == "Xcygdrive" ) then + +setenv windrive `echo $HOME|cut -d"/" -f3` +setenv winpath `echo $HOME|cut -d"/" -f4-` + +setenv fullwinpath "$windrive:/$winpath" +setenv G4WORKDIR $fullwinpath + +endif # if cygwin syntax is used + +if ( "X$winpath" == "X" ) then +echo "G4WORKDIR will be set to ${G4WORKDIR}geant4 (in "native" Windows syntax)." +setenv G4WORKDIR ${G4WORKDIR}geant4 +else +echo "G4WORKDIR will be set to $G4WORKDIR/geant4 (in "native" Windows syntax)." +setenv G4WORKDIR $G4WORKDIR/geant4 endif +else # if Unix + +echo "G4WORKDIR will be set to HOME/geant4=$HOME/geant4" +setenv G4WORKDIR $HOME/geant4 + +endif +endif + !NO!SUBS! chmod 755 env.csh $eunicefix env.csh diff --git a/config/scripts/env.sh.SH b/config/scripts/env.sh.SH index 67a0368756..5f5be575b3 100755 --- a/config/scripts/env.sh.SH +++ b/config/scripts/env.sh.SH @@ -216,24 +216,6 @@ echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32" fi fi -#+ -if [ X$g4ui_build_wo_session = Xy ] ; then -G4UI_BUILD_WO_SESSION=1 -export G4UI_BUILD_WO_SESSION -if [ X\$g4non_display = X ] ; then -echo "On this machine the G4UI_BUILD_WO_SESSION=\$G4UI_BUILD_WO_SESSION" -fi -fi - -#+ -if [ X$g4ui_use_wo = Xy ] ; then -G4UI_USE_WO=1 -export G4UI_USE_WO -if [ X\$g4non_display = X ] ; then -echo "On this machine the G4UI_USE_WO=\$G4UI_USE_WO" -fi -fi - # # g4vis # @@ -246,15 +228,6 @@ echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER" fi fi -#+ -if [ X$g4vis_build_opacs_driver = Xy ] ; then -G4VIS_BUILD_OPACS_DRIVER=1 -export G4VIS_BUILD_OPACS_DRIVER -if [ X\$g4non_display = X ] ; then -echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER" -fi -fi - #+ if [ X$g4vis_build_openglx_driver = Xy ] ; then G4VIS_BUILD_OPENGLX_DRIVER=1 @@ -318,15 +291,6 @@ echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN" fi fi -#+ -if [ X$g4vis_use_opacs = Xy ] ; then -G4VIS_USE_OPACS=1 -export G4VIS_USE_OPACS -if [ X\$g4non_display = X ] ; then -echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS" -fi -fi - #+ if [ X$g4vis_use_openglx = Xy ] ; then G4VIS_USE_OPENGLX=1 @@ -430,22 +394,6 @@ echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC" fi fi -if [ X$g4lib_use_shared = Xy ] ; then -G4LIB_USE_SHARED=1 -export G4LIB_USE_SHARED -if [ X\$g4non_display = X ] ; then -echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED" -fi -fi - -if [ X$g4lib_use_static = Xy ] ; then -G4LIB_USE_STATIC=1 -export G4LIB_USE_STATIC -if [ X\$g4non_display = X ] ; then -echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC" -fi -fi - #+ # # g4granular @@ -470,14 +418,48 @@ $spitshell >>env.sh <<'!NO!SUBS!' # G4WORKDIR # if [ $G4WORKDIR ] ; then + if [ X$g4non_display = X ] ; then echo "In your environment you have the G4WORKDIR=$G4WORKDIR" -fi +fi # if non_display + else + if [ X$g4non_display = X ] ; then -echo "G4WORKDIR will be set to HOME=$HOME." + +# Check for Windows! +if test "X$G4SYSTEM" = "XWIN32-VC" -o "X$G4SYSTEM" = "XWIN32-VC7"; then + +checkdrive=`echo $HOME|cut -d"/" -f2` + +if test "X$checkdrive" = "Xcygdrive"; then + +windrive=`echo $HOME|cut -d"/" -f3` +winpath=`echo $HOME|cut -d"/" -f4-` + +fullwinpath="$windrive:/$winpath" +G4WORKDIR=$fullwinpath + +fi # if cygwin syntax is used + +if test "X$winpath" = "X"; then +echo "G4WORKDIR will be set to ${G4WORKDIR}geant4 (in "native" Windows syntax)" +export G4WORKDIR=${G4WORKDIR}geant4 +else +echo "G4WORKDIR will be set to $G4WORKDIR/geant4 (in "native" Windows syntax)" +export G4WORKDIR=${G4WORKDIR}/geant4 fi -export G4WORKDIR=$HOME + + +else # if Unix + +echo "G4WORKDIR will be set to HOME/geant4=$HOME/geant4" +export G4WORKDIR=$HOME/geant4 + +fi # if platforms + +fi + fi !NO!SUBS! diff --git a/config/scripts/install.sh.SH b/config/scripts/install.sh.SH index aeac7d2156..55a5c335d5 100755 --- a/config/scripts/install.sh.SH +++ b/config/scripts/install.sh.SH @@ -183,20 +183,6 @@ export G4UI_USE_WIN32 echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32" fi -#+ -if [ X$g4ui_build_wo_session = Xy ] ; then -G4UI_BUILD_WO_SESSION=1 -export G4UI_BUILD_WO_SESSION -echo "On this machine the G4UI_BUILD_WO_SESSION=\$G4UI_BUILD_WO_SESSION" -fi - -#+ -if [ X$g4ui_use_wo = Xy ] ; then -G4UI_USE_WO=1 -export G4UI_USE_WO -echo "On this machine the G4UI_USE_WO=\$G4UI_USE_WO" -fi - # # g4vis # @@ -207,13 +193,6 @@ export G4VIS_BUILD_DAWN_DRIVER echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER" fi -#+ -if [ X$g4vis_build_opacs_driver = Xy ] ; then -G4VIS_BUILD_OPACS_DRIVER=1 -export G4VIS_BUILD_OPACS_DRIVER -echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER" -fi - #+ if [ X$g4vis_build_openglx_driver = Xy ] ; then G4VIS_BUILD_OPENGLX_DRIVER=1 @@ -263,13 +242,6 @@ export G4VIS_USE_DAWN echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN" fi -#+ -if [ X$g4vis_use_opacs = Xy ] ; then -G4VIS_USE_OPACS=1 -export G4VIS_USE_OPACS -echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS" -fi - #+ if [ X$g4vis_use_openglx = Xy ] ; then G4VIS_USE_OPENGLX=1 @@ -351,18 +323,6 @@ export G4LIB_BUILD_STATIC echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC" fi -if [ X$g4lib_use_shared = Xy ] ; then -G4LIB_USE_SHARED=1 -export G4LIB_USE_SHARED -echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED" -fi - -if [ X$g4lib_use_static = Xy ] ; then -G4LIB_USE_STATIC=1 -export G4LIB_USE_STATIC -echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC" -fi - #+ # # g4granular @@ -375,6 +335,9 @@ fi ##################################################################### +echo g4conf=$g4conf + +##################################################################### # Create GNUmakefile.db to keep ALL GNUmakefile DB :) if test -f \$G4INSTALL/config/scripts/GNUmakefile.db ; then @@ -391,20 +354,47 @@ echo "" echo "Starting installation..." echo "" cd $g4install/source -echo `pwd` +#echo `pwd` # There is no env! if [ X$g4global = Xy ] ; then -$g4make global +echo "" +rm -rf $g4conf/g4make.log +$g4make global 2>&1 | tee $g4conf/g4make.log fi # There is env for binaries - for User: should be set in env.[c]sh! if [ X$g4granular = Xy ] ; then G4LIB_USE_GRANULAR=1 export G4LIB_USE_GRANULAR -$g4make +rm -rf $g4conf/g4make.log +$g4make 2>&1 | tee $g4conf/g4make.log fi +# Check for errors in log file +export err=\$[ \`grep Error $g4conf/g4make.log | wc -w\` ] +export int=\$[ \`grep Stop\. $g4conf/g4make.log | wc -w\` ] +# echo err=\$err + +if [ X\$err = X0 -a X\$int = X0 ] ; then +echo "" +echo "####################################################" +echo "# Your Geant4 installation seems to be successful! #" +echo "# To be sure please have a look into the log file: #" +echo "# $g4conf/g4make.log #" +echo "####################################################" +echo "" +else +echo "" +echo "############################################################" +echo "# It looks like you had errors during Geant4 installation #" +echo "# (or interrupted installation)! #" +echo "# Please check log file: #" +echo "# $g4conf/g4make.log #" +echo "############################################################" +echo "" +fi + # There is no env! if [ X$g4includes_flag = Xy ] ; then $g4make includes diff --git a/config/sys/WIN32-VC.gmk b/config/sys/WIN32-VC.gmk index 2f80a80dfd..4064374fc9 100644 --- a/config/sys/WIN32-VC.gmk +++ b/config/sys/WIN32-VC.gmk @@ -11,6 +11,7 @@ ifeq ($(G4SYSTEM),WIN32-VC) endif endif CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 + CXXFLAGS += -D_CONSOLE -D_WIN32 -DOS CPPFLAGS += -DWIN32 LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll diff --git a/config/sys/WIN32-VC7.gmk b/config/sys/WIN32-VC7.gmk index 350a029f3d..12c63dfef3 100644 --- a/config/sys/WIN32-VC7.gmk +++ b/config/sys/WIN32-VC7.gmk @@ -11,6 +11,7 @@ ifeq ($(G4SYSTEM),WIN32-VC7) endif endif CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 + CXXFLAGS += -D_CONSOLE -D_WIN32 -DOS CPPFLAGS += -DWIN32 -DXPNET LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll diff --git a/environments/History b/environments/History index b2644b7426..a1428fa8e3 100644 --- a/environments/History +++ b/environments/History @@ -1,4 +1,4 @@ -$Id: History,v 1.7 2002/12/06 16:19:38 gcosmo Exp $ +$Id: History,v 1.10 2003/12/09 08:09:58 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -18,6 +18,15 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +envs-V05-02-03 09 December 2003 Gabriele Cosmo +- New version of MOMO with XML import/export abilities. + +envs-V05-02-02 04 November 2003 Gabriele Cosmo +- Added module MOMO with Java archives for UI tools from Naruto. + +envs-V05-02-01 17 October 2003 Guy Barrand +- OPACS being deprecated, remove related OPACS things in Geant4. + envs-V04-01-00 06 December 2002 Gabriele Cosmo - Synchronized HEAD (disclaimer of liability). - Updates for new G4ApplicationState. @@ -34,7 +43,6 @@ envs-V01-01-00 7th June 2000 Guy Barrand envs-V00-01-00 10th November 1999 John Allison - Only OPACS and History tagged. -01-00-02 20th May 1999 John Allison envs-01-00-02 20th May 1999 John Allison - Only OPACS and History tagged. - Archived Momo (cvs remove) which puts it in the Attic. Can be retrieved diff --git a/environments/MOMO/GAG.jar b/environments/MOMO/GAG.jar new file mode 100644 index 0000000000..8a91a5c2d5 Binary files /dev/null and b/environments/MOMO/GAG.jar differ diff --git a/environments/MOMO/Gain.jar b/environments/MOMO/Gain.jar new file mode 100644 index 0000000000..0a55b3e353 Binary files /dev/null and b/environments/MOMO/Gain.jar differ diff --git a/environments/MOMO/History b/environments/MOMO/History new file mode 100644 index 0000000000..a86df37b59 --- /dev/null +++ b/environments/MOMO/History @@ -0,0 +1,40 @@ +$Id: History,v 1.3 2003/12/09 08:00:40 yhajime Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + MOMO History file + ----------------- + +This file should be used by G4 developers and category coordinators +to briefly summarize all major modifications introduced in the code +at this level and keep track of all relavant 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 * + ---------------------------------------------------------- + +2003 December 8 Hajime Yoshida + - replaced MOMO.jar with a new version which has XML capability. + - removed GGE.jar and GPE.jar which are included in MOMO.jar + - added new XML data files; PDG.xml and dicom.xml + - replaced materialDB.g4mt with a new example.g4dt + - added ReleaseNote + +2003 December 4 Hajime Yoshida + -replaced GAG.jar with a revised one + +MOMO-V05-02-00 4th November Gabriele Cosmo +- Created. + Versions included: + o GAG 1.4.1 for JDK-1.3 + o GGE 1.3.2 for JDK-1.3 + o GPE 1.3.1 for JDK-1.3 + o Gain (GainDL) for J2SDK-1.4 + o MOMO for J2DK-1.4 +- Original web site: + http://erpc1.naruto-u.ac.jp/~geant4 diff --git a/environments/MOMO/MOMO.jar b/environments/MOMO/MOMO.jar new file mode 100644 index 0000000000..74338834ff Binary files /dev/null and b/environments/MOMO/MOMO.jar differ diff --git a/environments/MOMO/MomoHome/MomoN02.cc b/environments/MOMO/MomoHome/MomoN02.cc new file mode 100644 index 0000000000..a4598f84a9 --- /dev/null +++ b/environments/MOMO/MomoHome/MomoN02.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. * +// ******************************************************************** +// +//##### MOMO Main program ##### +//# ---------------------------------------------------------- +//# Automatic creation of the main program for Momo environment. +// 2002 February, updated for geant4.4.0 +// -------------------------------------------------------------- +// MomoN02.cc generated by Geant4 Momo +// at Thu Mar 14 10:43:11 JST 2002 + + +// This code implementation is the intellectual property of +// the GEANT4 collaboration. +// +// By 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 "G4RunManager.hh" +#include "G4UImanager.hh" +// Your choice of User Interface driver +#include "G4UIGAG.hh" +// Detector geometry generated by Momo's GGE +#include "MomoN02MyDetector.hh" +// Physics List generated by Momo's GPE +#include "MomoN02PhysicsList.hh" +// Momo's default PrimaryGeneratorAction +#include "MomoPrimaryGeneratorAction.hh" +#include "MomoRunAction.hh" +#include "MomoEventAction.hh" +#ifdef G4VIS_USE +#include "MomoVisManager.hh" +#endif +int main() +{ + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + // set mandatory initialization classes + runManager->SetUserInitialization(new MomoN02MyDetector); + runManager->SetUserInitialization(new MomoN02PhysicsList); +#ifdef G4VIS_USE + // visualization manager + G4VisManager* visManager = new MomoVisManager; + visManager->Initialize(); +#endif + // set mandatory user action class + runManager->SetUserAction(new MomoPrimaryGeneratorAction); + // set user action classes to visualise trajectories + runManager->SetUserAction(new MomoRunAction); + runManager->SetUserAction(new MomoEventAction); + // Initialize G4 kernel + runManager->Initialize(); + // get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + G4UIsession * session = new G4UIGAG; + session->SessionStart(); + delete session; + // job termination +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; + return 0; +} + diff --git a/environments/MOMO/MomoHome/MomoN02MyDetector.g4dt b/environments/MOMO/MomoHome/MomoN02MyDetector.g4dt new file mode 100644 index 0000000000..237f5c8ee1 Binary files /dev/null and b/environments/MOMO/MomoHome/MomoN02MyDetector.g4dt differ diff --git a/environments/MOMO/MomoHome/MomoN02PhysicsList.g4ph b/environments/MOMO/MomoHome/MomoN02PhysicsList.g4ph new file mode 100644 index 0000000000..d3d11d97a5 Binary files /dev/null and b/environments/MOMO/MomoHome/MomoN02PhysicsList.g4ph differ diff --git a/environments/MOMO/MomoHome/MomoN02Test.cc b/environments/MOMO/MomoHome/MomoN02Test.cc new file mode 100644 index 0000000000..d436c74929 --- /dev/null +++ b/environments/MOMO/MomoHome/MomoN02Test.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. * +// ******************************************************************** +// +//##### MOMO Main program ##### +//# ---------------------------------------------------------- +//# Automatic creation of the main program for Momo environment. +// 2002 February, updated for geant4.4.0 +// -------------------------------------------------------------- +// MomoN02Test.cc generated by Geant4 Momo +// at Thu Mar 14 22:07:54 JST 2002 + + +// This code implementation is the intellectual property of +// the GEANT4 collaboration. +// +// By 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 "G4RunManager.hh" +#include "G4UImanager.hh" +// Your choice of User Interface driver +#include "G4UIGAG.hh" +// Detector geometry generated by Momo's GGE +#include "MomoN02MyDetector.hh" +// Physics List generated by Momo's GPE +#include "MomoN02PhysicsList.hh" +// Momo's default PrimaryGeneratorAction +#include "MomoPrimaryGeneratorAction.hh" +#include "MomoRunAction.hh" +#include "MomoEventAction.hh" +#ifdef G4VIS_USE +#include "MomoVisManager.hh" +#endif +int main() +{ + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + // set mandatory initialization classes + runManager->SetUserInitialization(new MomoN02MyDetector); + runManager->SetUserInitialization(new MomoN02PhysicsList); +#ifdef G4VIS_USE + // visualization manager + G4VisManager* visManager = new MomoVisManager; + visManager->Initialize(); +#endif + // set mandatory user action class + runManager->SetUserAction(new MomoPrimaryGeneratorAction); + // set user action classes to visualise trajectories + runManager->SetUserAction(new MomoRunAction); + runManager->SetUserAction(new MomoEventAction); + // Initialize G4 kernel + runManager->Initialize(); + // get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + G4UIsession * session = new G4UIGAG; + session->SessionStart(); + delete session; + // job termination +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; + return 0; +} + diff --git a/environments/MOMO/MomoHome/MomoTest.cc b/environments/MOMO/MomoHome/MomoTest.cc new file mode 100644 index 0000000000..1e3450755a --- /dev/null +++ b/environments/MOMO/MomoHome/MomoTest.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. * +// ******************************************************************** +// +//##### MOMO Main program ##### +//# ---------------------------------------------------------- +//# Automatic creation of the main program for Momo environment. +// 2002 February, updated for geant4.4.0 +// -------------------------------------------------------------- +// MomoTest.cc generated by Geant4 Momo +// at Thu Mar 14 21:53:59 JST 2002 + + +// This code implementation is the intellectual property of +// the GEANT4 collaboration. +// +// By 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 "G4RunManager.hh" +#include "G4UImanager.hh" +// Your choice of User Interface driver +#include "G4UIGAG.hh" +// Detector geometry generated by Momo's GGE +#include "MomoN02MyDetector.hh" +// Physics List generated by Momo's GPE +#include "MomoN02PhysicsList.hh" +// Momo's default PrimaryGeneratorAction +#include "MomoPrimaryGeneratorAction.hh" +#include "MomoRunAction.hh" +#include "MomoEventAction.hh" +#ifdef G4VIS_USE +#include "MomoVisManager.hh" +#endif +int main() +{ + // Construct the default run manager + G4RunManager* runManager = new G4RunManager; + // set mandatory initialization classes + runManager->SetUserInitialization(new MomoN02MyDetector); + runManager->SetUserInitialization(new MomoN02PhysicsList); +#ifdef G4VIS_USE + // visualization manager + G4VisManager* visManager = new MomoVisManager; + visManager->Initialize(); +#endif + // set mandatory user action class + runManager->SetUserAction(new MomoPrimaryGeneratorAction); + // set user action classes to visualise trajectories + runManager->SetUserAction(new MomoRunAction); + runManager->SetUserAction(new MomoEventAction); + // Initialize G4 kernel + runManager->Initialize(); + // get the pointer to the User Interface manager + G4UImanager* UI = G4UImanager::GetUIpointer(); + G4UIsession * session = new G4UIGAG; + session->SessionStart(); + delete session; + // job termination +#ifdef G4VIS_USE + delete visManager; +#endif + delete runManager; + return 0; +} + diff --git a/environments/MOMO/MomoHome/Momomake.gmk b/environments/MOMO/MomoHome/Momomake.gmk new file mode 100644 index 0000000000..a57612f852 --- /dev/null +++ b/environments/MOMO/MomoHome/Momomake.gmk @@ -0,0 +1,44 @@ +##### GNUmakefile ##### +# ---------------------------------------------------------- +# Script defining rules and paths for making binaries. +# ---------------------------------------------------------- +# Automatic creation of GNUmakefile for Momo environment. +# with users selection of G4TARGET, UI and VIS variables +# Momo is the name of legendary samurai who conquered bad geants. ---- H. Yoshida. + +name := MomoN02Test +G4TARGET := $(name) +G4EXLIB := true + +# Vis/GUI used +G4VIS_USE_DAWN := 1 +G4VIS_USE_DAWNFILE := 1 +G4VIS_USE_OPENGLX := 1 +G4VIS_USE_VRMLFILE := 1 +G4UI_USE_GAG := 1 +G4UI_USE_TERMINAL := 1 +# Vis/GUI built +G4VIS_BUILD_DAWN_DRIVER := 1 +G4VIS_BUILD_DAWNFILE_DRIVER := 1 +G4VIS_BUILD_OPENGLX_DRIVER := 1 +G4VIS_BUILD_VRML_DRIVER := 1 +G4VIS_BUILD_VRMLFILE_DRIVER := 1 + +# General Envs defined +G4SYSTEM:=Linux-g++ +G4INSTALL:=/home/yoshidah/geant4.4.0-ref02 +G4BINDIR:=/home/yoshidah/geant4.4.0-ref02/bin/Linux-g++ +G4USE_STL:=1 +G4LIB_BUILD_SHARED:=1 +G4LEVELGAMMADATA:=/home/yoshidah/geant4.2s/g4.2ref03/data/PhotonEvaporation + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +.PHONY: all +all: lib bin + + include $(G4INSTALL)/config/binmake.gmk + + diff --git a/environments/MOMO/MomoHome/README b/environments/MOMO/MomoHome/README new file mode 100644 index 0000000000..8f41b4c607 --- /dev/null +++ b/environments/MOMO/MomoHome/README @@ -0,0 +1,25 @@ +2002 March + + Momo's default home directory in which the default src and include +directories and the default four classes are placed. + + src/MomoEventAction.cc + src/MomoRunAction.cc + src/MomoPrimaryGeneratorAction.cc + src/MomoVisManager.cc + + + include/MomoEventAction.hh + include/MomoRunAction.hh + include/MomoPrimaryGeneratorAction.hh + include/MomoVisManager.hh + +A macro file is included to visualise events and trajectories + + ./vis.mac + +And this file + + ./README + + diff --git a/environments/MOMO/MomoHome/include/MomoEventAction.hh b/environments/MOMO/MomoHome/include/MomoEventAction.hh new file mode 100644 index 0000000000..20e214d355 --- /dev/null +++ b/environments/MOMO/MomoHome/include/MomoEventAction.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. * +// ******************************************************************** +// +// Taken from +// $Id: MomoEventAction.hh,v 1.1 2003/11/04 09:02:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// + +#ifndef MomoEventAction_h +#define MomoEventAction_h 1 + +#include "G4UserEventAction.hh" + +class G4Event; + + +class MomoEventAction : public G4UserEventAction +{ + public: + MomoEventAction(); + ~MomoEventAction(); + + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); +}; + + +#endif + + diff --git a/environments/MOMO/MomoHome/include/MomoN02MyDetector.hh b/environments/MOMO/MomoHome/include/MomoN02MyDetector.hh new file mode 100644 index 0000000000..94df9bf366 --- /dev/null +++ b/environments/MOMO/MomoHome/include/MomoN02MyDetector.hh @@ -0,0 +1,42 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// + +// Geometry Header File +// MomoN02MyDetector.hh generated by Geant4 Geometry Editor at Thu Mar 14 10:39:13 JST 2002 + + +#ifndef MomoN02MyDetector_h +#define MomoN02MyDetector_h 1 + +class G4VPhysicalVolume; +#include "G4VUserDetectorConstruction.hh" +class MomoN02MyDetector: public G4VUserDetectorConstruction + { public: + MomoN02MyDetector(); + ~MomoN02MyDetector(); + + public: + G4VPhysicalVolume* Construct(); + }; +#endif + diff --git a/examples/extended/geometry/cad/include/CadPhysicsList.hh b/environments/MOMO/MomoHome/include/MomoN02PhysicsList.hh similarity index 74% rename from examples/extended/geometry/cad/include/CadPhysicsList.hh rename to environments/MOMO/MomoHome/include/MomoN02PhysicsList.hh index ab4d5bdc22..60b4a6baca 100644 --- a/examples/extended/geometry/cad/include/CadPhysicsList.hh +++ b/environments/MOMO/MomoHome/include/MomoN02PhysicsList.hh @@ -20,48 +20,33 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: CadPhysicsList.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ -#ifndef CadPhysicsList_h -#define CadPhysicsList_h 1 +// Physics List Header File +// MomoN02PhysicsList.hh generated by Geant4 Physics Editor at Thu Mar 14 10:39:12 JST 2002 + + + #ifndef MomoN02PhysicsList_h +#define MomoN02PhysicsList_h 1 -#include "globals.hh" #include "G4VUserPhysicsList.hh" - -class CadPhysicsList: public G4VUserPhysicsList -{ - public: - CadPhysicsList(); - virtual ~CadPhysicsList(); +class MomoN02PhysicsList: public G4VUserPhysicsList + { public: + MomoN02PhysicsList(); + virtual ~MomoN02PhysicsList(); 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 virtual void ConstructGeneral(); virtual void ConstructEM(); - virtual void ConstructHad(); - virtual void ConstructLeptHad(); - -}; - + virtual void ConstructAllShortLiveds(); + }; #endif - - diff --git a/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh b/environments/MOMO/MomoHome/include/MomoPrimaryGeneratorAction.hh similarity index 74% rename from examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh rename to environments/MOMO/MomoHome/include/MomoPrimaryGeneratorAction.hh index 0f548c6552..5b1ad01de1 100644 --- a/examples/extended/geometry/cad/include/CadPrimaryGeneratorAction.hh +++ b/environments/MOMO/MomoHome/include/MomoPrimaryGeneratorAction.hh @@ -20,23 +20,29 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: CadPrimaryGeneratorAction.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ +// This code implementation is the intellectual property of +// the RD44 GEANT4 collaboration. +// +// By copying, distributing or modifying the Program (or any work +// based on the Program) you indicate your acceptance of this statement, +// and all its terms. +// +// 1998 Dec 10, updated for geant4.0.0, Hajime Yoshida +// 2002 March Geant4.4.0 -#ifndef CadPrimaryGeneratorAction_h -#define CadPrimaryGeneratorAction_h 1 +#ifndef MomoPrimaryGeneratorAction_h +#define MomoPrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" class G4ParticleGun; class G4Event; -class CadPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class MomoPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - CadPrimaryGeneratorAction(); - ~CadPrimaryGeneratorAction(); + MomoPrimaryGeneratorAction(); + ~MomoPrimaryGeneratorAction(); public: void GeneratePrimaries(G4Event* anEvent); diff --git a/examples/extended/geometry/cad/include/CadRunAction.hh b/environments/MOMO/MomoHome/include/MomoRunAction.hh similarity index 77% rename from examples/extended/geometry/cad/include/CadRunAction.hh rename to environments/MOMO/MomoHome/include/MomoRunAction.hh index ba25e0baa3..aa64472e65 100644 --- a/examples/extended/geometry/cad/include/CadRunAction.hh +++ b/environments/MOMO/MomoHome/include/MomoRunAction.hh @@ -20,31 +20,34 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: CadRunAction.hh,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ +// Taken after +// $Id: MomoRunAction.hh,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// -#ifndef CadRunAction_h -#define CadRunAction_h 1 +#ifndef MomoRunAction_h +#define MomoRunAction_h 1 -#include "globals.hh" #include "G4UserRunAction.hh" +#include "globals.hh" + -class G4Timer; class G4Run; -class CadRunAction : public G4UserRunAction +class MomoRunAction : public G4UserRunAction { public: - CadRunAction(); - virtual ~CadRunAction(); + MomoRunAction(); + ~MomoRunAction(); public: - virtual void BeginOfRunAction(const G4Run* aRun); - virtual void EndOfRunAction(const G4Run* aRun); - - private: - G4Timer* timer; + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); }; #endif + + + + + diff --git a/environments/MOMO/MomoHome/include/MomoVisManager.hh b/environments/MOMO/MomoHome/include/MomoVisManager.hh new file mode 100644 index 0000000000..703d7610e0 --- /dev/null +++ b/environments/MOMO/MomoHome/include/MomoVisManager.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. * +// ******************************************************************** +// +// This code implementation is the intellectual property of +// the RD44 GEANT4 collaboration. +// +// By copying, distributing or modifying the Program (or any work +// based on the Program) you indicate your acceptance of this statement, +// and all its terms. +// +// 1998 Dec 10, updated for geant4.0.0, Hajime Yoshida +// +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +// 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); + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef MomoVisManager_h +#define MomoVisManager_h 1 + +#include "G4VisManager.hh" + + +class MomoVisManager: public G4VisManager { + +public: + + MomoVisManager (); + +private: + + void RegisterGraphicsSystems (); + +}; + +#endif diff --git a/environments/OPACS/include/G4oEXPO.h b/environments/MOMO/MomoHome/src/MomoEventAction.cc similarity index 53% rename from environments/OPACS/include/G4oEXPO.h rename to environments/MOMO/MomoHome/src/MomoEventAction.cc index 3fba0e085c..997c8e5219 100644 --- a/environments/OPACS/include/G4oEXPO.h +++ b/environments/MOMO/MomoHome/src/MomoEventAction.cc @@ -20,28 +20,60 @@ // * statement, and all its terms. * // ******************************************************************** // +// Taken from +// $Id: MomoEventAction.cc,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4oEXPO.h,v 1.4 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* +---------------------- Copyright notice -------------------------------+ */ -/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +---------------------- Copyright notice -------------------------------+ */ -#ifndef G4oEXPO_h -#define G4oEXPO_h - -#ifdef __cplusplus -extern "C"{ -#endif -void G4oEXPO_Initialize (); -#ifdef __cplusplus -} -#endif -#endif /*G4oEXPO_h*/ + +#include "MomoEventAction.hh" + +#include "G4Event.hh" +#include "G4EventManager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" + + +MomoEventAction::MomoEventAction() +{} + +MomoEventAction::~MomoEventAction() +{} + + +void MomoEventAction::BeginOfEventAction(const G4Event*) +{} + + +void MomoEventAction::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; + } + + // extract the trajectories and draw them + // + if (G4VVisManager::GetConcreteInstance()) + { + for (G4int i=0; iGetTrajectoryContainer()))[i]); + trj->DrawTrajectory(50); + } + } +} + diff --git a/environments/MOMO/MomoHome/src/MomoN02MyDetector.cc b/environments/MOMO/MomoHome/src/MomoN02MyDetector.cc new file mode 100644 index 0000000000..cfaef9523e --- /dev/null +++ b/environments/MOMO/MomoHome/src/MomoN02MyDetector.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. * +// ******************************************************************** +// +//***** Generated by Geant4 Geometry Editor at Thu Mar 14 10:39:13 JST 2002 ***** + +//------HeaderFile- + #include "MomoN02MyDetector.hh" + +#include "G4UnitsTable.hh" + +#include "G4VUserDetectorConstruction.hh" + +#include "globals.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" +#include "G4Element.hh" +#include "G4ElementTable.hh" +#include "G4Box.hh" +#include "G4Tubs.hh" +#include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" +#include "G4SDManager.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +MomoN02MyDetector::MomoN02MyDetector() +{ ; } +MomoN02MyDetector::~MomoN02MyDetector() +{ ; } +G4VPhysicalVolume* MomoN02MyDetector::Construct( ) +{ +// Elements +G4Element* elementH = new G4Element( "Hydrogen", "H", 1. , 1.00794*g/mole ); +G4Element* elementO = new G4Element( "Oxygen", "O", 8. , 15.9994*g/mole ); +G4Element* elementN = new G4Element( "Nitrogen", "N", 7. , 14.00674*g/mole ); + +// Materials from Combination + +G4Material* water = new G4Material("water", 1.0*g/cm3, 2, kStateUndefined, 273.15*kelvin, 1.0*atmosphere ); +water->AddElement( elementH, 2 ); +water->AddElement( elementO, 1 ); +G4Material* Air = new G4Material("Air", 0.0010*g/cm3, 2, kStateUndefined, 273.15*kelvin, 1.0*atmosphere ); +Air->AddElement( elementN, 0.8 ); +Air->AddElement( elementO, 0.2 ); + +// Materials from Scratch + + +// Visualization attributes + + +G4VisAttributes * gray= new G4VisAttributes( G4Colour(204/255. ,204/255. ,204/255. )); + +G4VisAttributes * blue= new G4VisAttributes( G4Colour(51/255. ,255/255. ,255/255. )); + +// Logical Volumes + +G4Box *solidworld= new G4Box("solidworld", 5000.0*mm, 5000.0*mm, 5000.0*mm ); +G4LogicalVolume * logicalworld = new G4LogicalVolume(solidworld, //its solid + Air, //its material + "logicalworld" , //its name + 0,0,0); + +logicalworld->SetVisAttributes(gray); + +G4Tubs *solidwatertank= new G4Tubs("solidwatertank", 0.0*mm, 1500.0*mm, 1500.0*mm, 0.0*deg, 360.0*deg ); +G4LogicalVolume * logicalwatertank = new G4LogicalVolume(solidwatertank, //its solid + water, //its material + "logicalwatertank" , //its name + 0,0,0); + +logicalwatertank->SetVisAttributes(blue); + + +// Physical Volumes ---- Single Positioned Placement, Repeated Placement, Slicing --------------------------- + + +// Single Positioned Placement + +G4RotationMatrix rotMatrixworld; // unit rotation matrix +G4double angleworld = 0.0*deg; // rotational angle +rotMatrixworld.rotateX(angleworld); // rot matrix + +G4VPhysicalVolume * physicalworld= new G4PVPlacement(G4Transform3D(rotMatrixworld, //rotation + G4ThreeVector(0.0*mm, 0.0*mm, 0.0*mm)), + "physicalworld", //its name (2nd constructor) + logicalworld, //its logical volume + NULL, //its mother volume + false, //no boolean operation + 0); //copy number + +G4RotationMatrix rotMatrixwatertank; // unit rotation matrix +G4double anglewatertank = 0.0*deg; // rotational angle +rotMatrixwatertank.rotateX(anglewatertank); // rot matrix + +G4VPhysicalVolume * physicalwatertank= new G4PVPlacement(G4Transform3D(rotMatrixwatertank, //rotation + G4ThreeVector(0.0*mm, 0.0*mm, 0.0*mm)), + "physicalwatertank", //its name (2nd constructor) + logicalwatertank, //its logical volume + physicalworld, //its mother volume + false, //no boolean operation + 0); //copy number + + +// Repeated Placement Translation + + +// Repeated Placement AxialSymmetoric + + +// Slicing Translation + + +// Slicing AxialSymmetric + + +// return the physical World + + + return physicalworld; +} diff --git a/environments/MOMO/MomoHome/src/MomoN02PhysicsList.cc b/environments/MOMO/MomoHome/src/MomoN02PhysicsList.cc new file mode 100644 index 0000000000..65e33c600a --- /dev/null +++ b/environments/MOMO/MomoHome/src/MomoN02PhysicsList.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. * +// ******************************************************************** +// + +// MomoN02PhysicsList.cc + +// generated by Geant4 Physics Editor at Thu Mar 14 10:39:12 JST 2002 + +#include "MomoN02PhysicsList.hh" + +#include "globals.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4ShortLivedConstructor.hh" +#include "G4Material.hh" +#include "G4MaterialTable.hh" + +#include "G4ios.hh" + +MomoN02PhysicsList::MomoN02PhysicsList(): G4VUserPhysicsList() +{ +// Here used the default cut value you have typed in + + defaultCutValue = 1.0*cm; + SetVerboseLevel(1); +} + +MomoN02PhysicsList::~MomoN02PhysicsList() +{} + +void MomoN02PhysicsList::ConstructParticle() +{ +// Here are constructed all particles you have chosen + + ConstructBosons(); + ConstructLeptons(); + ConstructMesons(); + ConstructBaryons(); + ConstructAllShortLiveds(); +} + +// In this method, static member functions should be called for ALL particles to be used. + +void MomoN02PhysicsList::ConstructBosons() +{ + G4ChargedGeantino::ChargedGeantinoDefinition(); + G4Gamma::GammaDefinition(); + G4Geantino::GeantinoDefinition(); +} +void MomoN02PhysicsList::ConstructLeptons() +{ + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} +void MomoN02PhysicsList::ConstructMesons() +{ + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4Eta::EtaDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + G4KaonZero::KaonZeroDefinition(); + G4AntiKaonZero::AntiKaonZeroDefinition(); + G4KaonZeroLong::KaonZeroLongDefinition(); + G4KaonZeroShort::KaonZeroShortDefinition(); +} +void MomoN02PhysicsList::ConstructBaryons() +{ + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); +} +void MomoN02PhysicsList::ConstructAllShortLiveds() +{ +// Here are contructed all short liveds + +} +void MomoN02PhysicsList::ConstructProcess() +{ +// Transportation, electromagnetic and general processes + + AddTransportation(); + ConstructEM(); + ConstructGeneral(); +} +// Here are respective header files for chosen processes + +#include "G4GammaConversion.hh" +#include "G4ComptonScattering.hh" +#include "G4PhotoElectricEffect.hh" +#include "G4MultipleScattering.hh" +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4MuIonisation.hh" + +// The next two processes are always included. + +#include "G4hIonisation.hh" +#include "G4MultipleScattering.hh" +void MomoN02PhysicsList::ConstructEM() +{ + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + +// The next processes are always added. + + if ((!particle->IsShortLived()) && + (particle->GetPDGCharge() != 0.0 )&& + (particle->GetParticleName() != "e-") && + (particle->GetParticleName() != "e+") && + (particle->GetParticleName() != "mu-") && + (particle->GetParticleName() != "mu+") && + (particle->GetParticleName() != "chargedgeantino")){ + pmanager->AddProcess(new G4MultipleScattering(), -1, 1, 1); + pmanager->AddProcess(new G4hIonisation(), -1, 2, 2); + } +// Each if clause corresponds to a row in the PhysicsTable + + if (particleName == "gamma") { + pmanager->AddProcess(new G4GammaConversion(),ordInActive,ordInActive,ordDefault); + } + if (particleName == "gamma") { + pmanager->AddProcess(new G4ComptonScattering(),ordInActive,ordInActive,ordDefault); + } + if (particleName == "gamma") { + pmanager->AddProcess(new G4PhotoElectricEffect(),ordInActive,ordInActive,ordDefault); + } + if (particleName == "e-") { + pmanager->AddProcess(new G4MultipleScattering(),ordInActive,1,1); + } + if (particleName == "e-") { + pmanager->AddProcess(new G4eIonisation(),ordInActive,2,2); + } + if (particleName == "e-") { + pmanager->AddProcess(new G4eBremsstrahlung(),ordInActive,ordInActive,3); + } + if (particleName == "e+") { + pmanager->AddProcess(new G4eIonisation(),ordInActive,2,2); + } + if (particleName == "e+") { + pmanager->AddProcess(new G4eBremsstrahlung(),ordInActive,ordInActive,3); + } + if (particleName == "e+") { + pmanager->AddProcess(new G4eplusAnnihilation(),ordDefault,ordInActive,4); + } + if (particleName == "e+") { + pmanager->AddProcess(new G4MultipleScattering(),ordInActive,1,1); + } + if (particleName == "mu+") { + pmanager->AddProcess(new G4MultipleScattering(),ordInActive,1,1); + } + if (particleName == "mu+") { + pmanager->AddProcess(new G4MuBremsstrahlung(),ordInActive,ordInActive,3); + } + if (particleName == "mu+") { + pmanager->AddProcess(new G4MuPairProduction(),ordInActive,ordInActive,4); + } + if (particleName == "mu+") { + pmanager->AddProcess(new G4MuIonisation(),ordInActive,2,2); + } + if (particleName == "mu-") { + pmanager->AddProcess(new G4MultipleScattering(),ordInActive,1,1); + } + if (particleName == "mu-") { + pmanager->AddProcess(new G4MuBremsstrahlung(),ordInActive,ordInActive,3); + } + if (particleName == "mu-") { + pmanager->AddProcess(new G4MuIonisation(),ordInActive,2,2); + } + if (particleName == "mu-") { + pmanager->AddProcess(new G4MuPairProduction(),ordInActive,ordInActive,4); + } + } +} + +#include "G4Decay.hh" + +void MomoN02PhysicsList::ConstructGeneral() +{ + G4Decay* theDecayProcess = new G4Decay(); + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + if (theDecayProcess->IsApplicable(*particle)) { + pmanager ->AddProcess(theDecayProcess); + pmanager ->SetProcessOrdering(theDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(theDecayProcess, idxAtRest); + } + } +} + +void MomoN02PhysicsList::SetCuts() +{ +// defaultCutValue you have typed in is used + + if (verboseLevel >1){ + G4cout << "MomoN02PhysicsList::SetCuts:"; + } + SetCutsWithDefault(); +} + diff --git a/examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc b/environments/MOMO/MomoHome/src/MomoPrimaryGeneratorAction.cc similarity index 59% rename from examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc rename to environments/MOMO/MomoHome/src/MomoPrimaryGeneratorAction.cc index 02c563bec2..2b23fe65fe 100644 --- a/examples/extended/geometry/cad/src/CadPrimaryGeneratorAction.cc +++ b/environments/MOMO/MomoHome/src/MomoPrimaryGeneratorAction.cc @@ -20,42 +20,59 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: CadPrimaryGeneratorAction.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ +// This code implementation is the intellectual property of +// the RD44 GEANT4 collaboration. +// +// By 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 "CadPrimaryGeneratorAction.hh" +// 1998 Dec 10, updated for geant4-00 , Hajime Yoshida +// 2002 March update for geant4.4.0 + +#include "MomoPrimaryGeneratorAction.hh" -#include "globals.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" -#include "G4ParticleTable.hh" -#include "G4ParticleDefinition.hh" +#include "G4UImanager.hh" +#include "globals.hh" -CadPrimaryGeneratorAction::CadPrimaryGeneratorAction() +MomoPrimaryGeneratorAction::MomoPrimaryGeneratorAction() { G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); - // default particle - - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4String particleName; - G4ParticleDefinition* particle - = particleTable->FindParticle(particleName="e-"); - particleGun->SetParticleDefinition(particle); - particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); - particleGun->SetParticleEnergy(20.*MeV); - particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm)); + // G4UImanager* UI = G4UImanager::GetUIpointer(); + //UI->ApplyCommand("/gun/particle geantino"); + //UI->ApplyCommand("/gun/energy 1.0 GeV"); + //UI->ApplyCommand("/gun/position -2.0 0.0 0.0 m"); } -CadPrimaryGeneratorAction::~CadPrimaryGeneratorAction() +MomoPrimaryGeneratorAction::~MomoPrimaryGeneratorAction() { delete particleGun; } -void CadPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void MomoPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { + /* + G4UImanager* UI = G4UImanager::GetUIpointer(); + G4int i = anEvent->GetEventID() % 3; + switch(i) + { + case 0: + UI->ApplyCommand("/gun/direction 1.0 0.0 0.0"); + break; + case 1: + UI->ApplyCommand("/gun/direction 1.0 0.1 0.0"); + break; + case 2: + UI->ApplyCommand("/gun/direction 1.0 0.0 0.1"); + break; + } + */ particleGun->GeneratePrimaryVertex(anEvent); } + diff --git a/examples/advanced/composite_calorimeter/include/GeneralPhysics.hh b/environments/MOMO/MomoHome/src/MomoRunAction.cc similarity index 66% rename from examples/advanced/composite_calorimeter/include/GeneralPhysics.hh rename to environments/MOMO/MomoHome/src/MomoRunAction.cc index bbb065664a..a64de4eba2 100644 --- a/examples/advanced/composite_calorimeter/include/GeneralPhysics.hh +++ b/environments/MOMO/MomoHome/src/MomoRunAction.cc @@ -20,47 +20,47 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef GeneralPhysics_h -#define GeneralPhysics_h 1 +// Taken from +// $Id: MomoRunAction.cc,v 1.1 2003/11/04 09:02:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// -#include "globals.hh" + +#include "MomoRunAction.hh" + +#include "G4Run.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" #include "G4ios.hh" -#include "G4VPhysicsConstructor.hh" + +MomoRunAction::MomoRunAction() +{} -#include "G4Decay.hh" +MomoRunAction::~MomoRunAction() +{} -class GeneralPhysics : public G4VPhysicsConstructor + +void MomoRunAction::BeginOfRunAction(const G4Run* aRun) { - public: - GeneralPhysics(const G4String& name = "general"); - virtual ~GeneralPhysics(); - - 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: - - private: - G4Decay fDecayProcess; -}; - -// 2002 by J.P. Wellisch - -#endif - - + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager* UI = G4UImanager::GetUIpointer(); + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } +} +void MomoRunAction::EndOfRunAction(const G4Run*) +{ + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } +} diff --git a/environments/MOMO/MomoHome/src/MomoVisManager.cc b/environments/MOMO/MomoHome/src/MomoVisManager.cc new file mode 100644 index 0000000000..b9f02b1248 --- /dev/null +++ b/environments/MOMO/MomoHome/src/MomoVisManager.cc @@ -0,0 +1,156 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 code implementation is the intellectual property of +// the RD44 GEANT4 collaboration. +// +// By copying, distributing or modifying the Program (or any work +// based on the Program) you indicate your acceptance of this statement, +// and all its terms. +// + +// 2002 march, updated for geant4.4.0, Hajime Yoshida +// +// +// John Allison 24th January 1998. + + +#ifdef G4VIS_USE + +#include "MomoVisManager.hh" + +// Supported drivers... + +#ifdef G4VIS_USE_DAWN +#include "G4FukuiRenderer.hh" +#endif + +#ifdef G4VIS_USE_DAWNFILE +#include "G4DAWNFILE.hh" +#endif + +#ifdef G4VIS_USE_OPENGLX +#include "G4OpenGLImmediateX.hh" +#include "G4OpenGLStoredX.hh" +#endif + + +#ifdef G4VIS_USE_VRML +#include "G4VRML1.hh" +// #include "G4VRML2.hh" +#endif + +#ifdef G4VIS_USE_VRMLFILE +#include "G4VRML1File.hh" +//#include "G4VRML2File.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +MomoVisManager::MomoVisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void MomoVisManager::RegisterGraphicsSystems () { + +#ifdef G4VIS_USE_DAWN + RegisterGraphicsSystem (new G4FukuiRenderer); +#endif + +#ifdef G4VIS_USE_DAWNFILE + RegisterGraphicsSystem (new G4DAWNFILE); +#endif + + +#ifdef G4VIS_USE_OPENGLX + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); +#endif + + +#ifdef G4VIS_USE_VRML + RegisterGraphicsSystem (new G4VRML1); +// 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/environments/MOMO/MomoHome/vis.mac b/environments/MOMO/MomoHome/vis.mac new file mode 100644 index 0000000000..aacc1b037b --- /dev/null +++ b/environments/MOMO/MomoHome/vis.mac @@ -0,0 +1,31 @@ +# +# 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 +# +# 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 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/endOfEventAction accumulate + diff --git a/environments/MOMO/PDG.xml b/environments/MOMO/PDG.xml new file mode 100644 index 0000000000..9de2f25329 --- /dev/null +++ b/environments/MOMO/PDG.xml @@ -0,0 +1,439 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + + + + + +

+ + + + + + +

+ + + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + + + +

+ + + + + + + +

+ + + + + + + +

+ + + + + + +

+ + + + + + + + +

+ + + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + +

+ + + + + + + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + + + +

+ + + diff --git a/environments/MOMO/ReleaseNote b/environments/MOMO/ReleaseNote new file mode 100644 index 0000000000..0d5d847939 --- /dev/null +++ b/environments/MOMO/ReleaseNote @@ -0,0 +1,21 @@ +2003 December 08 + - present MOMO's XML functions (save and load) are limited. + -only available GDML tags are implemented. Not implemented are + - CSG Torus, Hype + - BREPs Polygon, Polycone + - no vis attributes + - no physical volumes + + - when you want to save unimplemented elements, MOMO warns. + You can continue to save the file, but the output + may not be well-formed. You can chech it by + reading the file with the Web browser. + + - Non-compatiblity of Java's serialization. + You can save or load in the Java serialized format, without + loosing any element created in MOMO. But The present + version MOMO doesn't guarantee the persistency between + different version of Java nor different version of MOMO. + + - GGE and GPE have been integrated in MOMO and are no more improved. + Please use MOMO instead. diff --git a/environments/MOMO/dicom.xml b/environments/MOMO/dicom.xml new file mode 100644 index 0000000000..93d0542dba --- /dev/null +++ b/environments/MOMO/dicom.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + +

+ + + + + + + + + + + + + +

+ + + + + + +

+ + + + + + + + + + + + +

+ + + + + + + + + + + +

+ + + + + + + + + + + + + +

+ + + + + + + + + + + + + +

+ + + + + + + diff --git a/environments/MOMO/docs/GGEHelp.html b/environments/MOMO/docs/GGEHelp.html new file mode 100644 index 0000000000..82320f5d53 --- /dev/null +++ b/environments/MOMO/docs/GGEHelp.html @@ -0,0 +1,676 @@ + + + +GGE; Geant4 Geometry Editor + + + +

+

+ GGE; GEANT4 Geometry Editor +


+ 2003 Feb. 22 +
+ Hajime YOSHIDA +
+ Naruto University of Education +
+ +
+

1) Overview


+ + GGE, or GEANT4 Geometry Editor, is a visual tool to "create" a +detector geometry of GEANT4. It generates a complete C++ class +code for a relatively simple geometry. It is written in Java and runs on +any platform running Java.

+ +Java Web Start version is also supported. +If user has installed Java Web Start, GGE(or as a part of MOMO) can be +started directly from the web browser without typing java command on the console. +

+

+Characteristics +

+
    +
  1. It provides users with tables +into which users can fill with their detector parameters. +
  2. Using the +data in the tables, even if they are partial and imcomplete, +GGE can generate C++ source codes for a detector. +
    +The class name must be supplied to get C++ source code. +
  3. +When a user uses default functions of GGE, C++ codes generated by GGE +is a complete +description of a detector, including the definition of atoms, materials, +solids, color attributes, +logical volumes and physical volumes with rotations and translations. +
  4. +The C++ source codes are saved into files and can be compiled to make a GEANT4 executable. + +
  5. +When GGE is used together with MOMO, an integrated environment, +a minimum set of user mandatory classes can be generated. +MOMO also generate the main program as well as GNU makefile for the GEANT4 to visualise the detector. +
  6. +GAG is helpful to run Geant4 and to visualise the whole detector. +Simple macro files are associated, too, for visualisation. +
+ + GGE consists of two editors (material and volume) which are +interrelated. Volume editor provides Single +Positioned Volume, with incremental copy numbers +(translational arrangement or axially symmetric arrangement), and +Replicas (in any axis). + +

+Tips! +

    +
  1. GGE is based on Java's MVC model, or Swing so that any change or input to the +tables by a user +are automatically reflected to the internal data structure of GGE and C++ codes. +This is true at any moment, so that user can get even imcomplete C++ class files +at any moment, even without any filled tabular cells) +
  2. +The whole detector description can be saved in a persistent file and can +be loaded for later reuse. +
  3. + +GGE employs own naming rules to generate C++ codes from the tables. +
+
+

+ +2) Functionalities of GGE +

+GGE has a top panel on which are placed menu buttons and fill-in text area. +

+

Top menus

+ +
    +
  • text area to specify the class name +
  • menu buttons +
      +
    • load, save a persistent file +
    • clear the tables +
    • generate cc and hh files using the specified class name +
    +
+ +

Tables


+ +GGE has several tables on two "tabbed panes"; +one pane for the material editor and another for the volumes editor. +By clicking the tab, user can switch between both tables. +
+ +

+ 2.1) The Material Editor +

+
+ +The material editor +is composed of two tables for +
    +
  1. "material from scratch" +and +
  2. "compound materials". +
+ These tables can be enlengthened as will. +The boundary of the two tables can be moved as will, too. +

+ +Every row represents a material. +
+ +The periodic table is popped up to the +window, when "append" or "insert" a material button is pushed. +The foundamental properties of atoms; Z, A, etc. are built in to the +atomic table and are copied appropriately. +The atomic table can be hidden by a menu button on its top. +

+


+

+Functionalities of the Material Editor +


+The functionalities implemented in this version are following; +
    +
  1. append, insert, edit and delete a material +
      +
    • material from scratch
      + The name of an atom, numbers Z and A are + taken from the atomic table. User has to specify its density, + temperature and pressure. Canonical units and states can be choosen + from the lists.
      + The corresponding instance in C++ is named "elementX", where + "X" represents element's symbol. +
    • material by combination (number or fractional ratios).
      + User has to type in the name of a compound material, + its density etc.. A pop-up window is displayed when he focuses + on a cell specifying composition. +
    • periodic table of atoms + automatically popped up to + create a material. User can select upto eight atoms to specify + a compound material. +
    • default states (and their canonical names) + and values are provided (material state, temperature, + pressure). +
    • canonical physical units of GEANT4 + are shown in selectable combo-boxes. +
    +
  2. "in Use" mark for materials used in user's detector. +
      +
    • materials used in the logical volumes are + automatically checked as "in Use" state. +
    • user can add any materials "in Use" to + have C++ constructors, even when they aren't used in + logical volumes. +
    +
  3. input and output from/to persistent material file +
    + Material tables are saved to a Java's persistent file and can be reused. +
      +
    • load, append or save a material file +
    • an exemplary persistent material database + file "MaterialDB.g4mt" from the PDG +
    +
+ +Not yet implemented are; material from materials, isotope and + protection from duplicated "in Use" instances of the same materials. + +
+

+ 2.2) The Volume Editor ; logical and physical volumes +

+
+ +The volume editor +is composed of two major editors; +
    +
  1. logical volume editor and +
  2. physical volume editors, +
+each is placed in the main scrollable panel. +Physical editor is composed of five tables for physical volumes. +They are placed on tabbed panes. +

+ +

+Functionalities to define Geant4 logical volumes +

+ +Following functionaliteis are implemented; +

    +
  1. Selecting a G4Solid
    + All Geant4 solids can be selected from the solid list. +
      +
    • all CSG solids; box, tube segment, cone segment, symmetric trapezoid, + sphere segment, parallel piped, torus segment, HYPE, +
    • BREP solids; PolyCone segment and Polygone segment + @@
    + After selecting a solid tyle, user pushes the "append" or "insert" button + in order to make a new row in the table. On focusing the "solid" cell, + a pop up + window appears for the specified solid. User can +
      +
    • specify parameters and canonical units of CSG solids +
    • specify any number of nodes and facets + with parameters and canonical units of BREP solids +
    • preview with DAWN with automatically chosen world size +
    • save DAWN format file of the specified solid +
    + +
  2. Defining G4Color, or colour attributes, + using a graphical color chooser from which RGB numbers are taken + to generate C++ codes.
    + Each color is given unique name and is listed in the editor panel. +
  3. Defining G4LogicalVolumes
    + Each row of the logical vulume table represents a G4LogicalVolume. + User can append, insert or delete a row with corresponding buttons.
    + The table has following columns; +
      +
    • The first column is to specify the name of the logical volume. +
    • The second column is filled automatically by choosing a + selectable G4Solid. Focusing on it allows user + to edit its parameters and preview with DAWN. +
    • The third column is type-in cell for material name + listed in the material editor. (drag and drop is planned) +
    • The fourth column is to specify the visualization attribute's name +
    +
  4. "Make the used materials" button.
    + Clicking this button examins the materials specified in the logical volume table and marks "in Use" cell (the first one ) of the material + tables accordingly. Note that only rows marked "in Use" are used + to generate C++ codes. + +
+
+

Functionalities to define Physical volumes


+Compared with the logical volume editor, the physical volume one has limited +generality. So, if user aren't satisfied with the following simplistic way +to place logical volumes, he can use partially generated C++ codes for +logical volumes etc.. + +

+ Constructors of G4PVPlacement
+Following four types of constructor are implemented, according to the type of +rotation and type of the mother volume. +

    +
  1. Type 1 constructor = rotation of the frame, physical mother volume +
  2. Type 2 constructor = rotation of a body, physical mother volume +
  3. Type 3 constructor = rotation of the frame, logical mother volume +
  4. Type 4 constructor = rotation of a body, logical mother volume +
+ +Following simple placements are provided in GGE. +
    +
  1. Single Positioned Volume (SPV)
    + Each row represents a physical volume. The world volume must be + defined in the first row of this table. +
      +
    1. The first column specifies either body or frame rotation. +
    2. The second column specofies the instance's name of the physical volume +
    3. The third column specifies the name of the logical volume to be placed +
    4. The fourth column specifies the type of the mother volume. + The mother volume is either + null(Master Reference System), logical or physical. + The MARS or the world volume must be specified at the first row. +
    5. The fifth column specifies the name of the mother volume, if it isn't NULL. +
    6. The columns 7, 8 and 9-th specify the translation + in the X, Y or Z direction (default is no translation) with a selectable + unit of length +
    7. The 11-th column specifies the axis of rotation (frame or body); + rotation around X, Y or Z axis with an angle in the 12-th column +
    + +
  2. + Repeated Translationally Positioned Volumes (RTPV Arrangement) + of any number of copies of a logical volume with incremental copy numbers
    + Each row represent a physical volume. +
      +
    1. The first to 4-th columns are same as above. +
    2. The columns 6, 7 and 8-th specify the position of the first copy +
    3. The 10-th column specifies the direction of placement; X, Y or Z direction +
    4. The 11-th column specifies the incremental step size +
    5. The last column specifies the number of copies +
    + +
  3. + Repeated Rotationally Positioned Volumes; + axially symmetric arrangement of any number of copies of a logical volume with incremental copy numbers (RRPV Arrangement)
    + Each row represents a physical volume. +
      +
    1. The columns "move", "pName", "pLogic", "MomType" and "pMother" are same as above. + +
    2. (X0, Y0, Z0) column specify the position of the center of an axial rotation +
    3. "Radius" column specifies a radius of axially symmetric arrangement +
    4. "RotAxis" column specifies the rotational axis ; X, Y or Z +
    5. "Phi_0" and "dPhi" column specify a starting angle and incremental step angle +
    6. The last column specifies the number of copies +
    +
  4. Replica in the X, Y or Z direction +
  5. Replica in rho, phi or Z direction +
      +
    1. width (in length or angle) and number of replicas +
    2. offset (in length or angle) +
    3. logical or physical mother volume +
    +
+ Planned but +not implemented yet are paremetrised volumes with linear scaling or linear rotation. + +
+

+3) Generation of C++ code +

+ +
    +
  • C++ code is output to a editor widget and can be saved. + But edited file loses the persistency and + looses correspondence with the tables contents. +
  • The required and necessary header files are automatically included; solid types etc. +
  • The order of creating instances is following; +
      +
    1. G4Elements, +
    2. G4Material, +
    3. G4VisAttributes, +
    4. G4Solids, +
    5. G4LogicalVolume, +
    6. Single Positioned Volumes, +
    7. Repeated Volumes, +
    8. Replicas +
    9. return the instance name of the MARS +
    + Order of instantiation inside each section is decided by GGE user, + except MARS +
+ +Here is a sample of automatically generated C++ code + which is created from +almost skelton tables. + +
+

+3.1) Naming conventions in GGE +

+ Knowing GGE's naming convention is helpful to read the generated C++ code as +well as using GGE correctly. Look at relevant Geant4 constructors will be very +suggestive. + +

    +
  1. Elements and materials +
      +
    1. Elements are named "elementXXX", where XXX stands for the + element's symbol in the periodic table. +
    2. materials are named just as you have typed in the second column + of the material window. +
    +
  2. solids and logical volumes
    + The "Name" typed in the first (leftmost) column of the "Logical Volume" + is used to name the corresponding solid. If the name "world" is given + to a logical volume of a Box, the G4Solid has an instance "solidworld". +
  3. logical and physical volumes
    +
      +
    1. The instance of a physical volume defined by "pName" has a name prefixed + with "physical", i.,e., instance's name is "physical" + pName ( + => + string concatenation). "logical" is added to the instance of a logical + volume. +
    2. In case of SPV (single positioned volume), the columns "pName" (instance of + physical volume) and "pLogical" may have the same strings. +
    3. + In case of RVA (repeated volumes arrangement), "pName" is different from + "pLogical" whose copies are repeatedly placed. +
    +
  4. All variables are named after their proper instances. + See for example, the control variable used in the for loop in the + RVA. +
    + Another examples are arrays to define BREP geometry. +
+
+

+3.2) Default values and combo-boxes +

+
    +
  1. Default optional values of materials + GGE provides default values in a pre-filled columns or with the + combo-boxes. "Use", "State" and "Unit" columns are equipped with + combo-boxes. Temperature and pressure column are pre-filled with + 273.15 * kelvin and 1 * atmosphere. +
  2. Default values in volumes + "Mother Type" is either NULL (mother of all), logical (type 2, 4 constructors) + or physical (type 2 or 4 constructors) in G4PVPlacement. +
+ +
+
+
+ + + WARNING: Materials below are obsolete. Updating them +in conjunction with MOMO is planned now +in March 2003 +

+ +

+4) A First Lesson; how to use GGE.
+
+Here is a walk-through of how to use GGE.
+
+4.1) Visualize the prefabricated detector sample
+	1) In a xterm, type %java gge
+	2) In the "Volume window", select "Load a Volume file" menu
+		and double click on "trumpetBREP.g4dt"
+	3) Click "Makesource" and select "Make C++ code". Have a look of the generated C++ code.
+	4) Save the C++ code (overwrite the existing one)
+		in .../GGEmake/src/MyDetectorConstruction.cc" using the file chooser.
+	5) In another xterm, go to the directory GGEmake/ and type
+		%make G4TARGET=myGGEdetector
+
+		Watch if there is any compilation error. At present,
+		GGE is made so that it generates correct C++ codes,
+		if a user uses GGE correctly.
+
+		In the example of "trumpetBREP.g4dt", a few warnings are shown on BREP.
+	6) Check that you have "myGGEdetector" executable, in $(G4INSTALL)/bin/$(G4SYSTEM)
+	7) In another xterm, type 
+		%java gag
+		
+		and with the "Run GEANT4" button, choose and run "myGGEdetector".
+        8) Use /control/execute command and double click on "GGEdraw.g4m".
+		To have a better view, use vis~ commands (camera/viewpoint, zoom etc).
+		You can select DAWNFILE to  draw and have a PS hardcopy.
+
+4.2) Modify the prefabricated detector
+ Now let's change the detector configuration. Go to the "Volume" window
+	and change any part of it, including material.
+
+4.2.1) Changing materials
+		
+	1) First, you have to  "Clear Material" in the Material editor. 
+	2) Then, select "Load material" and double click on "MaterialDB.g4mt". 
+		    Now you have a list of materials.
+	3) Then, in the "Logical Volume" panel, double click the box you want to change
+		    and type in the name of the material in the material editor.
+	4) Change as many materials as you like and push "Used Material" button.
+		    You see that materials you have typed in are marked "Used" in red.
+		    If not, you might have mistyped the name of a material.
+	5) If you want to use additional materials, select  "Use" in the material 
+		   editor (the leftmost column).
+	6) Push "Makesource" and see your change has been realized in the C++ code.
+
+	NOTE!! Be careful that there are no duplicated "Used" materials, when
+		you load the material DB without "Clear Material".
+
+4.2.2) Modifying the size parameters of solids
+
+	To change the sizes of G4 solids
+	1) click a "solid" box of the logical volume of your choice. 
+	2) You have a pop-up window to edit the parameters. Change a parameter 
+			or its unit, as you like.
+	3) Push "Makesource" and see if your changes have been correctly applied 
+			to C++ code.
+	4) In case of BREP solids, the pop-up window has variable number of columns
+			to accept any number of nodes.
+	5) For complicated solids like BREPs, preview may be useful. Click "View"
+			button and you have a view with the DAWN renderer. Its g4.prim file
+			is also shown in an edit-able widget.
+
+4.2.3) Changing the type of solid of an existing logical volume
+   You may want to replace the current G4Solid with another one. In the 
+    present GGE you can't do so directly. You have to "Create" a new logical
+    volume with the type of solid you want and then delete the unnecessary volume.
+
+	1) Choose your new solid with "Select Solid" combo-box.
+	2) Push "Create" button and you have a pop-up window to input parameters.
+	3) Type in numbers and select their units.  
+	4) Preview if you like and then push "OK".
+	5) Check the C++ code.
+
+4.2.4) Changing visualization attributes (Color).
+	1) You have to "Create" a new VisAttributes
+	2) Upon the "Create" button, you have a Color Chooser.
+	3) Select RGB (not HSV). Set your color with slide-bars.
+	4) Give it a name, and push "OK". Then you have a color circle and name in the
+		VisAttrib panel.
+	5) Edit the VisAtb box in the LogicalVolume panel.
+	6) See the C++ code.
+
+4.2.5) Changing Repeated Volumes
+
+
+
+
+"exampleN01.g4dt" contains three "single positioned volumes"
+		and one "repeated volumes" in the X direction.
+		Change the parameter of repetition such as the number
+		or width, or you can add another "repeated volumes"
+		in another direction.
+
+		In "trumpetBREP.g4dt" you can edit BREPs, adding new faces etc..
+
+	   b) making C++ code "MyDetectorConstruction.cc" and compile.
+
+		Finally, back to the step 3 and recompile.
+
+
+	Opening GGE, compile, GAG simultaneously, you can 
+	test and improve the geometry, just like creating
+	HTML or TeX documents.
+
+
+ 2.4) GGEmake; a directory containing the GEANT4 codes to compile and visualize the detector
+     a) implemented
+	+ GNUmakefile
+	+ myDetector.cc ; main()  with GAG session and visualization manager
+	+ src/ directory contains
+		+ MyDetectorConstruction.cc
+                + MyPhysicsList.cc
+		+ MyPrimaryGeneratorAction.cc
+		+ MyVisManager.cc
+	+ include/ directory
+
+ 2.5) compile and visualize with Momo and GAG
+
+    a) implemented
+
+	+ canonical scheme of GEANT4 to compile
+	   	+ make G4TARGET=myDetector
+		+ the binary is created as $G4INSTALL/bin/G4SYSTEM/myDetector
+
+	+ Momo (GAG, Compile and GGE buttons)
+		+ rapid cycling of GGE and GAG to edit and view the geometry
+		+ a macro file for visualization (OGLIX default) "DrawDAWN.g4m", etc..
+
+     b) not implemented
+		- automatic "calibration" of the detector with geantino
+
+ 2.6) exemplary persistent detector files with *.g4dt suffix 
+	 + 3D array of lead plates using translational RVArrangement
+	 + BREP Pcones trumpetss  using axially symmetric RVArrangement
+	 + Replicas to form  cylinders
+
+-------------------------------------------------------------------------
+
+ +
+
+
+ + !!!!!OBSOLETE!!!!! + +

+ +

+3) Installation
+
+The minimum set to get C++ source code
+	1) GGE.jar file
+	2) Java interpreter ; java
+Additional set to compile
+	3) GEANT4 toolkit with compiled libraries
+	4) GGEmake directory
+Additional set to visualise and use GUI
+	4) DAWN (plus Ghostview) or OGLIX or VRML
+	5) GAG (Java version) or GAG.jar file
+Additional too to make life easy
+	6) Momo to use all the above ingredients; Momo.jar file
+	 (without Momo, you have to invoke GGE, compile and GAG respectively in windows.)
+
+3.1) Java and Swing
+We have tested GGE on Unix-en (Linux and Solaris) and Windows (95/NT).
+
+ 3.1.1) Unix:
+
+  + Linux: jdk1.1.3 or later(i.,e., jdk-1.1.6) + Swing-1.0.2
+	1) jdk1.1.5 may have bugs, while jdk1.1.6 works
+	2) GGE co-works with Swing-1.0.2 and not with 1.0.1 (or maybe not
+		with 1.0.3).
+	3) we are testing the current GGE with JRE1.2-beta04. The present source can be
+		compiled but doesn't execute correctly. In any case
+		Sun has announced on 17 August that JDK1.2 will be delayed
+		till November!!
+  + Solaris: jdk1.1.6 + swing-1.0.2
+
+
+  We assume that you have 
+	1)jdk1.1.6/bin/java (Java interpreter)  to which paths are set
+	2)Swing-1.0.2 which is defreezed and placed in $HOME/swing/swingall.jar
+
+ 3.1.2) Windows:
+
+	We use JBuilder2 with  Swing-1.0.2. Note that you have to 
+	eliminate all other libraries than swing-1.0.2, after having
+	copied it into JBuilder2.
+
+	We are trying JDK1.2beta4 + JRE1.2 with JBuilder2.
+
+	NOTE! At present we have not Momo/GAG for Windows. So,
+	you can only create C++ code under the Windows.
+
+3.2) GGE and related files
+The latest product of GGE is that of Sep. 24.
+All *.java, *.class and GGE.jar files are placed in 
+		geant4beta/environments/Momo/java/Momo/GGE
+
+Only "GGE.jar" file is necessary to run GGE. 
+
+	GGE/*.java	GGE source files
+	GGE/*.class	GGE byte code files
+	GGE/GGE.jar	jar archive file to which CLASSPATH must be set
+	GGE/*.g4mt	material database after PDG data
+	GGE/*.g4dt	exampleN0x detector file
+C++ source codes and GNUmakefiles to compile with GEANT4 are placed in
+       		geant4beta/environments/Momo/GGEmake.
+
+Only geantino is instantiated in the initialization of GEANT4, so that it is quite
+rapid to have a visualization of the geometry. You can choose DAWN, OpenGL or VRML system.
+
+	 GGEmake/myGGEdetector.cc		main() program
+		/GNUmakefile
+		/src
+		/src/MyDetectorConstruction.cc	C++ generated by GGE
+ 		/src/MyPrimaryGeneratorAction.cc	geantino gun
+		/src/MyVisManager.cc		DAWN, DAWNFILE, OGLIX, OGLSX, VRML1, VRML1FILE
+		/src/MyPhysicsList.cc		geantino definition
+		/include/*.hh
+		/GGEdraw.g4m			default macro file to visualize with OGLIX
+
+3.3) install, setenv and run
+
+	%set path=($path jdk1.1.6/bin)  	<=== add the path to java and javac
+	%setenv CLASSPATH .:$HOME/swing/swingall.jar:$HOME/geant4beta/environments/Momo/java/Momo/GGE/GGE.jar
+
+
+  Then in any directory, you can invoke GGE.
+
+	%java gge
+
+
+3.4) DAWN, Tcl/Tk and Postscript for the preview of CSG or BREP solids
+ If you don't use GGE's preview button, these are not necessary.
+
+ If you want to  preview  G4Solids, you have to install
+DAWN, Fukui renderer as well as Tcl/Tk wish (Tcl/Tk 8.0) for its GUI. 
+DAWN uses also Postscript to draw *.prim files.  
+
+For the visualization of the whole detector, DAWN or  Mesa (for OGLIX)
+are necessary.
+
+3.5) GEANT4 toolkit and its environments
+The visualization manager instantiates DAWN, DAWNFILE, OPENGLIX,
+OPENGLSX, VRML, VRMLFILE. So, you have to setenv accordingly.
+
+
+
+
+ + + + + + + + + + diff --git a/environments/MOMO/docs/Gainhowto.html b/environments/MOMO/docs/Gainhowto.html new file mode 100644 index 0000000000..f954d341c0 --- /dev/null +++ b/environments/MOMO/docs/Gainhowto.html @@ -0,0 +1,129 @@ + + +Gain; how to use it with Geant4 + + +

How to use Gain

+
+

What is Gain?

+Gain(Geant4 adaptive interface for network) is a networked GUI tool based on GAG. +It inherits almost all features of GAG and has new features to +make use of Geant4 running at (a) remote machine(s). +

+Gain runs on a client machine (Windows or Linux), +while Geant4 runs on a remote or local server (Linux or Solaris). +

+ +It provides two ways to connect to the remote server; SSH mode and Gain socket mode. + +

+
Gain SSH mode +
Gain has a SSH client fuction and use it to connect to a remote server. Geant4 compiled with G4UIGAG class + can be connected to Gain client. When a SSH connection is established after the authentication, + Gain displays the + remote file browser with which user can choose a Geant4 executable and make it run. + Data are encrypted during their transfer and are decripted at both side. So, some CPU + power is required for a client machine, if a large amount of data are transfered from + the running Geant4 to Gain.
Output from the remote Geant4 are + displayed on the Gain console. + This console can be used as a normal + SSH console and you can type in command directly.
+ Pluriel remote sessions can be accepted, each displayed in a separate + tabbed pane. A console is attached to each pane/session. +
Gain socket mode +
Gain uses its own way of connecting to a remote server. Remote Geant4 must be compiled with +G4UIGainServer class which is distributed in the standard Geant4 package. In this mode, user has to +make a Geant4 executable run on the remote server, after having logged in to the remote +machine. G4UIGainServer acts as a network server +and tells the number of port available for the Gain client. Gain client, after specifying the server and port +number, is allowed to connect to the Geant4. Geant4 output +
+ +
+

How to use Gain

+

+The figure shows a scene when Gain is running in +Gain socket mode. +

+In this example, +two tabbed panes are displayed to run remote Geant4s running on different servers. + + +

    +
  1. + Gain is started on the Cygwin console. Gain can be started with + Java Web Start. + +
  2. + Top menu to connect to a server or close (kill) the running G4ant4 or finish Gain. + + +
  3. The window to + choose SSh or Gain socket; now SSHINTERFACE is focused + +
  4. After typing in the remote host name, + SSH login window is shown. + +
  5. +When SSH login is accepted, Gain shows the + remore File Chooser. Geant4 with G4UIGAG interface can be started +from this chooser. + +
  6. When Geant4 is started, + Geant4 initialisation output are shown on the cygwin console. + + + + +
  7. After the initialisation phase, + command tree window is available on Gain. + +
  8. Then, the Gain console is shown below the command tree window. +See the hardcopy +of the whole Gain window. +This console is the SSH console, so that you can type in Geant4 commands +in stead of selecting them in the above command panel. +
    +You can shrink the console by single click on the triangle at the left +border. + +
  9. +Two ways of ending Geant4 execution are provided. +The command tree provides "exit" command which is just the "exit" of Geant4. On the top +menu, "Close one" menu is to send CTRL + C to the running Geant4 process. It can be sent at any +moment. + +
+
+

Notices on Gain console


+
    +
  • At present, Gain's console displays ecerything G4cout from Geant4 +with G4UIGAG interface. So, strings employed for Gain protocols are +displayed. Please ignore lines starting with @@. +
  • Gain console demands heavy Windows (X or Windows) power. +So, with old graphic accelerators like S3 etc. which are yet common +on Linux platforms, speed of console may be very slow. In such cases, +shrinking the console pane is a good way to speed up the execution. +
  • We have tested Gain over the Internet for a session of more than 24 hours. +On Windows XP, We observed some curious deformed tree icons during the session, +but the functions were correct and they became normal after some elapsed time. +
    +Here is the copy of the long run. +
  • The console provides a session of G4UIterminal, and NOT G4UItcsh, at present. +
  • If you type "exit" on the console, the execution of Geant4 is stopped. +The console is yet a usual ssh console, while the upper windows for +the command tree is losing connection to Geant4. If you type in "exit" on the +console, it end the ssh session and the whole Gain will be destroyed. +
+
+

Inside Gain


+In this manual, Gain and RGAG are described. But in the final +form, they were merged and Gain is the name for it. +"RGAG" represents the SSH mode of Gain now, while "Gain" +in the avobe manual represents the +own socket mode of the present Gain. +
+yoshida +
+ + \ No newline at end of file diff --git a/environments/MOMO/docs/MOMObug.html b/environments/MOMO/docs/MOMObug.html new file mode 100644 index 0000000000..938458f951 --- /dev/null +++ b/environments/MOMO/docs/MOMObug.html @@ -0,0 +1,17 @@ + +MOMO known problems +
    +
  1. Electro-magnetic physics list displays "rho-zero" which + has been removed from the stable particle list since Geant4.3.
    + ===> Corrected 2002 May 21 + + +
  2. A set of the minimum set of Geant4 canonical classes is lacking. + This will be available soon. +
  3. "Compile" menu button doesn't work, even though the makefile "Momomake.gmk" is correctly created, reflecting your environment variables. + Please make -f Momomake.gmk in the directory where your G4TARGET main class + is stored. +
+ + + diff --git a/environments/MOMO/docs/README-Gain.html b/environments/MOMO/docs/README-Gain.html new file mode 100644 index 0000000000..2956b382e2 --- /dev/null +++ b/environments/MOMO/docs/README-Gain.html @@ -0,0 +1,206 @@ + + +How to Gain + + +

How to use the GainServer interface class and Gain client GUI

+
+
+
+				version 0.9, May 31 2002
+				revised for Geant4.4.1 release, July 03
+				revised 17 January 2003
+
+				H. Yoshida, H. Minamimoto
+				Naruto University of Education
+
+A) Features of GainServer class and its client partner "Gain"
+
+This new class belongs to the "interfaces" category and provides
+a user interface  using socket connection with a remote client GUI Gain. 
+The new client Gain is quite similar with GAG in that it provides the 
+fully graphical user interface to steer execution of the Geant4 simulation. 
+
+The new features using a socket connection are as follows;
+ 
+  1) GainServer uses TCP/IP socket to communicate with the
+	client GUI tool Gain.
+	In general, a server may be decoupled from the terminal
+	(or the control terminal) on which it was invoked and run
+	as a daemon (daemon mode).
+	The present Gain server class doesn't behave as a daemon, but
+	it requires the control terminal on which the Geant4 application 
+	has been invoked and is coupled as long as 
+	it is running (terminal mode).
+
+	In the terminal mode, all outputs from G4cout and G4cerr are
+	sent to the client by default and can be displayed 
+	on the client remote terminal.
+
+	If you want to run Geant4 simulation even after having logged out,
+	the shell command "nohup" can be used (Linux and Solaris).
+	You have to run a Geant4 application like;
+
+		%nohup $G4WORKDIR/exampleN02 > exampleN02 &
+
+	and then log out.
+
+		%exit
+	
+	
+  2) The partner  client GUI software is "Gain" which runs
+	on any platform running Java Virtual Machine, i.e.,
+	Windows, Linux etc.. Gain can be invoked from the
+	command line (pseudo-terminal in the X windows or
+	cygwin in Windows) or newly can be invoked directly from 
+	the Web browser like Netscape/Mozilla and Internet Explorer, 
+	when they are equipped with the plugin software "Java Web Start". 
+	This new facility will be explained in the later sections.
+
+B) Making the library
+ G4UIGainServer is a part of Geant4 distribution since Grant-4.4 or Geant-5.0.
+GainServer class uses the standard socket implementation which is 
+usually found in the platforms like Solaris or Linux. It is tested against
+G4SYSTEM=SUN-CC and Linux-g++ and WIN32-g++(Cygwin).
+
+ This new class depends on no external libraries (except the default system
+libraries) so that no new environment variables G4UI_BUILD_XX is required.
+GainServer.cc/hh files are located in source/interfaces/GAG and the
+corresponding library is archived in the libG4UIGAG.a(so). 
+
+	It is simple to make the library.
+
+	1. go to the directory "interfaces/GAG".
+	2. make (or gmake)
+	3. and you will have a libG4UIGAG.a (so)
+
+
+C) How to use GainServer in your application
+ The way how to use it completely similar to G4UIterminal or G4UIGAG class.
+
+ In your main program
+
+	1. include the header file
+		#include "G4UIGainServer.hh"
+	2. instantiate the session and run
+		  G4UIsession* session = new G4UIGainServer();
+		  session->SessionStart();
+		  delete session;
+
+ Your application can be compiled just like the ones using G4UIterminal
+or G4UIGAG interface classes. No new environment variables are required 
+to use this new class.
+
+D) How to get and run the Gain client
+
+ GainServer must communicate with its partner GUI Gain. Gain is
+written in Java and Gain is distributed in two compiled forms.
+In any forms, you have to install Java, i.e., j2sdk.
+(See www.javasoft.com)
+
+  1. command line mode
+  	One form is the common jar (Java archive) format; Gain.jar which
+	is provided at http://erpc1.naruto-u.ac.jp/~geant4/Sources.html.
+	To run it, you have to invoke Java Virtual Machine on your terminal;
+  	 % java -cp foobar/Gain.jar Gain
+	where foobar is the directory containing Gain.jar file.
+	On Windowz, use cygwin for the terminal.
+
+  2. Web Start mode
+	Another form is easier to use, once all set-up steps have been
+	completed. In this mode, Gain can be invoked by a simple mouse click
+	on the link in the Web page, which is provided by the Geant4
+	developer. 
+
+	1. You connect to the Java site and install "Web Start" in your
+	   PC, following the instructions. If you are using Mozilla/Netscape,
+	   you have to add a new MIME type (JNLP) to your list of "Helper
+	   programs".
+	2. Try if the examples associated with the Java Web Start kit 
+	   run correctly. Note that applications which
+	   requires file I/O on your system asks you to go out of the
+	   "sandbox" environment (three times on Windows). 
+	   This execution of Java applications including local I/O operation
+	   is only allowed by your permission. To get your permission,
+	   demos provided by Java Soft are digitally signed. 
+	3. Then connect to http://erpc1.naruto-u.ac.jp/~geant4/Sources.html
+	   and run Gain. It is digitally signed by the Geant4 developer
+	   at Naruto University of Education.
+
+	On Windows, you may have the icon for "Java Web Start Manager" in which
+	Gain will be listed as one of the verified applications. Then, you can
+	use Gain directly from Java Web Start without the Internet connection.
+
+	The Manager also provides a focility to log the output from the
+	application. It will be helpful to see runtime warnings or error 
+	messages as well as to see the G4cout of the Geant4 application.
+ 
+E) What you can do with Gain
+  Gain has a graphical interface quite similar to that of GAG. 
+ In addition, it provides a function to connect pluriel remote GainServers
+simultaneously. Each connection has an independent GUI window in Gain 
+so that you can run several Geant4 applications on different remote sites 
+and run them simultaneously with the help of Gain which is running on your PC.
+
+ Gain and GainServers can run on the same host (localhost). The free ports are
+allocated automatically to respective GainServer.
+
+E) How to run GainServer ans Gain together
+
+ As stated above, the present implementation of GainServer doesn't run in the
+daemon mode. So, you have to keep your terminal session as long as your 
+application is running.
+
+ The steps are as follows;
+
+   1. login to the remote host(s) on which you are going to run your
+	Geant4 application(s)
+   2. run your application. GainServer displays the message;
+	"GainServer waiting at port 40000"
+     	The port number starting from 40000 is automatically allocated to
+	your application(s). This port number is used to connect Gain
+	client to the server.
+	If you run another Geant4 application on the same remote machine, 
+	another port number is automatically allocated and displayed.
+
+   3. run Gain client on your PC. The upper left menu urges you to
+	type in the port number and host name. Select "localhost", if
+	GainServer is running on your PC.
+
+  	When connection is established, you will have the commands tree
+	and parameter window just like those of GAG.
+
+	If you connect to another Geant4 application, another tabbed pane
+	is created to manage that connection.
+
+   4. You can disconnect one or all connections. By this disconnection, 
+	corresponding Geant4 applications exit using a gentle exit command
+	of Geant4, so that normal exitng procedures of Geant4 is performed.
+
+F) How to use VRML viewer together with Gain (Under test)
+  A prototype implementation of Gain is available (2002 end July)
+which incorporates Geant4's vrmlview.
+You can use VRML viewer to visualize the geometry and events.
+Thus, you can use and run Geant4 on your PC running Java (i.e., Windows,
+Linux, Solaris, MacOSX etc.) with Gain to control the execution and
+with your VRML viewer of your choice to visualize, while your simulation
+is being executed on a remote compute server (maybe with bad Java support).
+
+
+
+ + + + + + + + + + + + + + + + diff --git a/environments/MOMO/example.g4dt b/environments/MOMO/example.g4dt new file mode 100644 index 0000000000..4e7a8dff30 Binary files /dev/null and b/environments/MOMO/example.g4dt differ diff --git a/environments/OPACS/History b/environments/OPACS/History deleted file mode 100644 index 4e3b16ad4d..0000000000 --- a/environments/OPACS/History +++ /dev/null @@ -1,35 +0,0 @@ -$Id: History,v 1.3 2000/03/17 08:59:46 barrand Exp $ -------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - OPACS-Category History file - --------------------------- - -This file should be used by G4 developers and category coordinators -to briefly summarize all major modifications introduced in the code -at this level and keep track of all relavant 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 * - ---------------------------------------------------------- - -15 March 2000 Guy Barrand -- Modification to compile on Linux-g++ with STL. - -15 Sep 1999 Guy Barrand -- Modification to compile on Linux-g++ with STL. - - -envs-00-01-02 15th July 1998 John Allison -- Removed ATLAS files. Retrieve with: - cvs update -r pre-beta01-08 ./app/ATLAS.cc ./usr/ATLAS.odb \ - ./usr/ATLASChooser.odb ./usr/ATLASChooser.osh \ - ./usr/ATLAS_EventEnd.osh ./usr/ATLAS_RunEnd.osh - -envs-00-05-00 19th March 1998 John Allison -- First creation of this OPACS-category. diff --git a/environments/OPACS/README b/environments/OPACS/README deleted file mode 100644 index a2602e2723..0000000000 --- a/environments/OPACS/README +++ /dev/null @@ -1,106 +0,0 @@ -OPACS as a visualization environment for Geant4 -------------------------------------------- - The OPACS html address is : - - http://www.lal.in2p3.fr/OPACS - - To have OPACS using Geant4 : - - - Install the OPACS v3 by following - the web installation page. - For Geant4 take the group : - WoXoXm if you have MOTIF - WoXoXaw if you have Xaw - For example on a UNIX with MOTIF only : - UNIX> mkdir OPACS - UNIX> cd OPACS - UNIX> ftp ftp.lal.in2p3.fr - anonymous - user name - ftp> cd pub/OPACS/v3 - ftp> bin - ftp> get WoXoXm.tar.Z - ( ftp> get WoXoXaw.tar.Z ) - ftp> quit - UNIX> uncompress WoXoXm.tar.Z - ( UNIX> uncompress WoXoXaw.tar.Z ) - UNIX> tar xvf WoXoXm.tar - ( UNIX> tar xvf WoXoXaw.tar ) - UNIX> rm WoXoXm.tar - ( UNIX> rm WoXoXaw.tar ) - UNIX> cd OPACS/v3 - UNIX> to handle your environment. - csh> source setup.csh - (sh> . ./setup.sh) - UNIX> make WoXo - ( UNIX> gmake WoXo ) - At end of installation you should - be able to build a simple Wo application - (for exa named Xxx) by doing : - csh> mkdir tmp - csh> cd tmp - with MOTIF : - csh> onew Xxx - or with Xaw : - csh> onew Xxx $WOROOT/usr/template/Xaw/ - then : - csh> gmake `uname` - csh> ./Xxx.exe - The interpreted interface is described - in Xxx.odb. - See OPACS doc for more. - - - Execute OPACS setup script : - csh> source /OPACS/v3/setup.csh - - - Bring Geant4/source and reconstruct libraries. - - - Bring Geant4/environments/OPACS. - - - Reconstruct Geant4/environments/OPACS : - UNIX> cd /environments/OPACS/mgr - UNIX> to handle your environment. - csh> source setup.csh - (sh> . ./setup.sh) - UNIX> make - ( UNIX> gmake ) - where is a compilation "configuration". - For example : - UNIX> make OSF1-cxx - UNIX> make HP-UX-aCC - The compilation "configs" are defined in the file : - mgr/Config.mk - If the existing "configs" do not match your environment, - edit this file. Existing configs are : - OSF1-cxx - HP-UX-aCC - Linux-gxx - SunOS-CC - At the end of installation you should - find in the parallel directory the - G4o library and the executable : - EXPO.exe - Run it by doing : - UNIX> cd ../usr - UNIX> ..//EXPO.exe - - As usual, when you have something in an Xo window - you can manipulate it with : - Ctrl+button1+move pointer - on the window. On button3 you have a popup - menu to do things, like changing "Ctrl" action, - setting ZBuffer, etc... - - The "experiment" EXPO is a very simple example - to help starting some Geant4 application working - with OPACS. Most of the interactivity is handled - in the OPACS/usr/EXPO*odb,osh files. - - NOTE : the app/TEST.cc application is for developer - testing purpose and is not reconstructed - by default. - - - - - diff --git a/environments/OPACS/app/EXPO.cc b/environments/OPACS/app/EXPO.cc deleted file mode 100644 index f4e9d8bc3d..0000000000 --- a/environments/OPACS/app/EXPO.cc +++ /dev/null @@ -1,218 +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: EXPO.cc,v 1.9 2001/07/11 09:56:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -#include - -/*Geant4*/ -#include - -#ifdef __sun -#include "EXPO_Templates.hh" -// This : -/* -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValVector; -template class G4RWTValVector; -template class G4Allocator; -template class G4Allocator; -*/ -#endif - - -/*OPACS*/ -/*begin Want_h*/ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /*Need HAS_XZ and HAS_PAW flags.*/ -/*end Want_h*/ - -#include - -/*G4o*/ -#include - -/***************************************************************************/ -/***** G4 EXPO customization ***********************************************/ -/***************************************************************************/ -#include -#include -#include - -#include -#include -#include -class EXPO_RunAction : public G4UserRunAction { -private: - G4Timer* timer; - G4int runIDcounter; -#ifdef HAS_HO - static OHistogram myHisto1D; - static OHistogram myHisto2D; -#endif /*HAS_HO*/ -public: - EXPO_RunAction() { - timer = new G4Timer; - runIDcounter = 0; - } - ~EXPO_RunAction() { - delete timer; - } - void BeginOfRunAction(const G4Run* aRun) { - CWarnF ("### Run %d start.\n",aRun->GetRunID()); - timer->Start(); -#ifdef HAS_HO - // Histo are created in an osh script somewhere (G4oRunBegin.osh). - myHisto1D = OHistogramGetIdentifier("HepJamesRandom1"); - myHisto2D = OHistogramGetIdentifier("HepJamesVsDRand48"); -#endif /*HAS_HO*/ - } - void EndOfRunAction(const G4Run* aRun) { - timer->Stop(); - if (timer->IsValid()) { - CWarnF ("number of event = %d User=%gs Real=%gs Sys=%gs\n", - aRun->GetNumberOfEvent(), - timer->GetUserElapsed(), - timer->GetRealElapsed(), - timer->GetSystemElapsed()); - } else { - CWarnF ("number of event = %d User=****s Real=****s Sys=****s\n", - aRun->GetNumberOfEvent()); - } -#ifdef HAS_HO - myHisto1D = NULL; - myHisto2D = NULL; -#endif /*HAS_HO*/ - } -#ifdef HAS_HO - static OHistogram get_1d(){return myHisto1D; } - static OHistogram Get2d(){return myHisto2D; } -#endif /*HAS_HO*/ -}; -#ifdef HAS_HO -OHistogram EXPO_RunAction::myHisto1D = NULL; -OHistogram EXPO_RunAction::myHisto2D = NULL; -#endif /*HAS_HO*/ - -#include -class EXPO_EventAction : public G4UserEventAction { -public: - EXPO_EventAction() { - } - ~EXPO_EventAction() { - } - void BeginOfEventAction(const G4Event*) { - } - void EndOfEventAction(const G4Event*) { - } -}; - -#include "G4UserSteppingAction.hh" -class EXPO_SteppingAction : public G4UserSteppingAction { -private: - HepJamesRandom theJamesEngine; - DRand48Engine theDRand48Engine; -public: - EXPO_SteppingAction(){}; - ~EXPO_SteppingAction(){}; - void UserSteppingAction(const G4Step*) { -#ifdef HAS_HO - OHistogram h1 = EXPO_RunAction::get_1d(); - OHistogram h2 = EXPO_RunAction::Get2d(); - - HepRandom::setTheEngine (&theJamesEngine); - double james = RandGauss::shoot(0.3,0.1); - OHistogramFillOneDimensional(h1,james,0.01); - - HepRandom::setTheEngine(&theDRand48Engine); - double d48 = RandGauss::shoot(0.7,0.1); - OHistogramFillTwoDimensional(h2,james,d48,0.01); -#endif /*HAS_HO*/ - } -}; - -static char what[] = "@(#)EXPO v3"; -/***************************************************************************/ -int main ( - int a_argn -,char** a_args -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - what[0] = '@'; /*c++ no warning.*/ -/*begin Want_c*/ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -/*end Want_c*/ - - G4RunManager* runManager = new G4RunManager; - runManager->SetUserInitialization (new EXPO_DetectorConstruction); - runManager->SetUserInitialization (new EXPO_PhysicsList); - runManager->SetUserAction (new EXPO_RunAction); - runManager->SetUserAction (new EXPO_PrimaryGeneratorAction); - runManager->SetUserAction (new EXPO_EventAction); - runManager->SetUserAction (new EXPO_SteppingAction); - - G4oState* state = new G4oState("EXPO_"); - - WoStartup (a_argn,a_args); - WoProcessEvents (); - WoClearClass (); - - delete state; - delete runManager; - - return EXIT_SUCCESS; -} diff --git a/environments/OPACS/app/TEST.cc b/environments/OPACS/app/TEST.cc deleted file mode 100644 index e1554a318b..0000000000 --- a/environments/OPACS/app/TEST.cc +++ /dev/null @@ -1,206 +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: TEST.cc,v 1.4 2001/07/11 09:56:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -#include - -/*G4*/ -#include - -/*OPACS*/ -/*begin Want_h*/ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /*Need HAS_XZ and HAS_PAW flags.*/ -/*end Want_h*/ - -#include - -/*G4o*/ -#include - -/***************************************************************************/ -/***** G4 customization ****************************************************/ -/***************************************************************************/ -#include -#include -#include - -#include -#include -#include -class RunAction : public G4UserRunAction { -private: - G4Timer* timer; - G4int runIDcounter; -#ifdef HAS_HO - static OHistogram myHisto1D; - static OHistogram myHisto2D; -#endif /*HAS_HO*/ -public: - RunAction() { - timer = new G4Timer; - runIDcounter = 0; - } - ~RunAction() { - delete timer; - } - void BeginOfRunAction(G4Run* aRun) { - aRun->SetRunID(runIDcounter++); - CWarnF ("### Run %d start.\n",aRun->GetRunID()); - timer->Start(); -#ifdef HAS_HO - // Histo are created in an osh script somewhere (G4oRunBegin.osh). - myHisto1D = OHistogramGetIdentifier("HepJamesRandom1"); - myHisto2D = OHistogramGetIdentifier("HepJamesVsDRand48"); -#endif /*HAS_HO*/ - } - void EndOfRunAction(G4Run* aRun) { - timer->Stop(); - if (timer->IsValid()) { - CWarnF ("number of event = %d User=%gs Real=%gs Sys=%gs\n", - aRun->GetNumberOfEvent(), - timer->GetUserElapsed(), - timer->GetRealElapsed(), - timer->GetSystemElapsed()); - } else { - CWarnF ("number of event = %d User=****s Real=****s Sys=****s\n", - aRun->GetNumberOfEvent()); - } -#ifdef HAS_HO - myHisto1D = NULL; - myHisto2D = NULL; -#endif /*HAS_HO*/ - } -#ifdef HAS_HO - static OHistogram get_1d(){return myHisto1D; } - static OHistogram Get2d(){return myHisto2D; } -#endif /*HAS_HO*/ -}; -#ifdef HAS_HO -OHistogram RunAction::myHisto1D = NULL; -OHistogram RunAction::myHisto2D = NULL; -#endif /*HAS_HO*/ - -#include -class EventAction : public G4UserEventAction { -public: - EventAction() { - } - ~EventAction() { - } - void BeginOfEventAction() { - } - void EndOfEventAction() { - } -}; - -#include "G4UserSteppingAction.hh" -class SteppingAction : public G4UserSteppingAction { -private: - HepJamesRandom theJamesEngine; - DRand48Engine theDRand48Engine; -public: - SteppingAction(){}; - ~SteppingAction(){}; - void UserSteppingAction() { -#ifdef HAS_HO - OHistogram h1 = RunAction::get_1d(); - OHistogram h2 = RunAction::Get2d(); - - HepRandom::setTheEngine (&theJamesEngine); - double james = RandGauss::shoot(0.3,0.1); - OHistogramFillOneDimensional(h1,james,0.01); - - HepRandom::setTheEngine(&theDRand48Engine); - double d48 = RandGauss::shoot(0.7,0.1); - OHistogramFillTwoDimensional(h2,james,d48,0.01); -#endif /*HAS_HO*/ - } -}; - -static char what[] = "@(#)TEST"; -/***************************************************************************/ -int main ( - int a_argn -,char** a_args -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - what[0] = '@'; /*c++ no warning.*/ -/*begin Want_c*/ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -/*end Want_c*/ - - G4RunManager* runManager = new G4RunManager; - runManager->SetUserInitialization (new test19DetectorConstruction); - runManager->SetUserInitialization (new MyPhysicsList); - runManager->SetUserAction (new MyPrimaryGeneratorAction); - runManager->SetUserAction (new RunAction); - runManager->SetUserAction (new EventAction); - runManager->SetUserAction (new SteppingAction); - - G4oState* state = new G4oState("TEST_"); - - WoStartup (a_argn,a_args); - WoProcessEvents (); - WoClearClass (); - - delete runManager; - delete state; - - return EXIT_SUCCESS; -} - - diff --git a/environments/OPACS/include/EXPO_Detector.icc b/environments/OPACS/include/EXPO_Detector.icc deleted file mode 100644 index 50ee30ee68..0000000000 --- a/environments/OPACS/include/EXPO_Detector.icc +++ /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. * -// ******************************************************************** -// -// -// $Id: EXPO_Detector.icc,v 1.4 2001/07/11 09:56:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// See also G4/run/example/MyDetectorConstruction.cc. - -#include - -#ifdef DEBUG -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include - -class EXPO_DetectorConstruction : public G4VUserDetectorConstruction -{ - public: - EXPO_DetectorConstruction() - { - } - ~EXPO_DetectorConstruction() - { - } - G4VPhysicalVolume* Construct() - { - G4String name,symbol; - G4double iz,a; - G4double z,density; - G4int nel; -#ifdef DEBUG - printf ("debug : EXPO_DetectorConstruction.Construct : begin.\n"); -#endif - // Elements - G4Element* elN = new G4Element (name="Nitrogen" , symbol="N", iz=7., a=14.01*g/mole); - G4Element* elO = new G4Element (name="Oxygen" , symbol="O", iz=8., a=16.00*g/mole); -#ifdef DEBUG - printf ("debug : EXPO_DetectorConstruction.Construct : end Elements.\n"); -#endif - // Materials - G4Material* Air = new G4Material("Air" , density = 1.29e-03*g/cm3, nel=2); - Air->AddElement (elN, .7); - Air->AddElement (elO, .3); -#ifdef DEBUG - printf ("debug : EXPO_DetectorConstruction.Construct : end Air.\n"); -#endif - G4Material* Al = new G4Material("Aluminium", z=13., a = 26.98 *g/mole, density = 2.7 *g/cm3); - G4Material* Fe = new G4Material("Iron" , z=26., a = 55.85 *g/mole, density = 7.87 *g/cm3); - G4Material* Pb = new G4Material("Lead" , z=82., a = 207.19*g/mole, density = 11.35*g/cm3); -#ifdef DEBUG - printf ("debug : EXPO_DetectorConstruction.Construct : end Materials.\n"); -#endif - // Geometry - G4Box* myWorldBox = new G4Box ("WorldBox" ,10000*cm,10000*cm,10000*cm); - G4Box* myCalorBox = new G4Box ("CalorBox" ,1500*cm ,1500*cm ,1000*cm); - G4Tubs* myChambTube = new G4Tubs ("ChambTube" ,50*cm,150*cm,200*cm,0.*deg,360.*deg); -#ifdef DEBUG - printf ("debug : EXPO_DetectorConstruction.Construct : end Geometry.\n"); -#endif - // Logical volumes - G4LogicalVolume* myWorldLog = new G4LogicalVolume (myWorldBox ,Air,"WorldLog" ,0,0,0); - G4LogicalVolume* myCalorLog = new G4LogicalVolume (myCalorBox ,Air,"CalorLog" ,0,0,0); - G4LogicalVolume* myChambLog = new G4LogicalVolume (myChambTube ,Pb ,"ChambLog" ,0,0,0); -#ifdef DEBUG - printf ("debug : EXPO_DetectorConstruction.Construct : end Logical volumes.\n"); -#endif - // Physical volumes - G4PVPlacement* myWorldPhys = new G4PVPlacement (0,G4ThreeVector() ,"WorldPhys",myWorldLog,0 ,false,0); - G4PVPlacement* myCalorPhys = new G4PVPlacement (0,G4ThreeVector() ,"CalorPhys",myCalorLog,myWorldPhys,false,0); - G4PVPlacement* myChambPhys = new G4PVPlacement (0,G4ThreeVector(0*cm,0*cm,0*cm),"ChambPhys",myChambLog,myCalorPhys,false,1); -#ifdef DEBUG - printf ("debug : EXPO_DetectorConstruction.Construct : end.\n"); -#endif - return myWorldPhys; - } - - - -}; diff --git a/environments/OPACS/include/EXPO_PhysicsList.icc b/environments/OPACS/include/EXPO_PhysicsList.icc deleted file mode 100644 index 0807357b0d..0000000000 --- a/environments/OPACS/include/EXPO_PhysicsList.icc +++ /dev/null @@ -1,303 +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: EXPO_PhysicsList.icc,v 1.6 2003/06/16 16:44:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ------------------------------------------------------------ -// GEANT 4 class header file -// -// This is a version for maximum particle set -// History -// first version 10 Jan. 1998 by H.Kurashige -// add decay at rest 26 Feb. 1998 by H.Kurashige -// ------------------------------------------------------------ - -#include "globals.hh" -#include "EXPO_PhysicsList.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 - - -EXPO_PhysicsList::EXPO_PhysicsList(): G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -EXPO_PhysicsList::~EXPO_PhysicsList() -{ -} - -void EXPO_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(); - ConstructBarions(); - -} - -void EXPO_PhysicsList::ConstructBosons() -{ - // pseudo-particles - G4Geantino::GeantinoDefinition(); - G4ChargedGeantino::ChargedGeantinoDefinition(); - - // gamma - G4Gamma::GammaDefinition(); - - // optical photon - G4OpticalPhoton::OpticalPhotonDefinition(); -} - -void EXPO_PhysicsList::ConstructLeptons() -{ - // leptons - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - G4TauMinus::TauMinusDefinition(); - G4TauPlus::TauPlusDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4NeutrinoTau::NeutrinoTauDefinition(); - G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); -} - -void EXPO_PhysicsList::ConstructMesons() -{ - // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4Eta::EtaDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4KaonZero::KaonZeroDefinition(); - G4AntiKaonZero::AntiKaonZeroDefinition(); - G4KaonZeroLong::KaonZeroLongDefinition(); - G4KaonZeroShort::KaonZeroShortDefinition(); - - G4DMesonPlus::DMesonPlusDefinition(); - G4DMesonMinus::DMesonMinusDefinition(); - G4DMesonZero::DMesonZeroDefinition(); - G4AntiDMesonZero::AntiDMesonZeroDefinition(); - G4DsMesonPlus::DsMesonPlusDefinition(); - G4DsMesonMinus::DsMesonMinusDefinition(); - G4JPsi::JPsiDefinition(); - - G4BMesonPlus::BMesonPlusDefinition(); - G4BMesonMinus::BMesonMinusDefinition(); - G4BMesonZero::BMesonZeroDefinition(); - G4AntiBMesonZero::AntiBMesonZeroDefinition(); - G4BsMesonZero::BsMesonZeroDefinition(); - G4AntiBsMesonZero::AntiBsMesonZeroDefinition(); -} - -void EXPO_PhysicsList::ConstructBarions() -{ -// barions - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); - G4Neutron::NeutronDefinition(); - G4AntiNeutron::AntiNeutronDefinition(); - G4Lambda::LambdaDefinition(); - G4AntiLambda::AntiLambdaDefinition(); - G4SigmaZero::SigmaZeroDefinition(); - G4AntiSigmaZero::AntiSigmaZeroDefinition(); - G4SigmaPlus::SigmaPlusDefinition(); - G4AntiSigmaPlus::AntiSigmaPlusDefinition(); - G4SigmaMinus::SigmaMinusDefinition(); - G4AntiSigmaMinus::AntiSigmaMinusDefinition(); - G4XiZero::XiZeroDefinition(); - G4AntiXiZero::AntiXiZeroDefinition(); - G4XiMinus::XiMinusDefinition(); - G4AntiXiMinus::AntiXiMinusDefinition(); - G4OmegaMinus::OmegaMinusDefinition(); - G4AntiOmegaMinus::AntiOmegaMinusDefinition(); - - G4LambdacPlus::LambdacPlusDefinition(); - G4SigmacPlusPlus::SigmacPlusPlusDefinition(); - G4SigmacPlus::SigmacPlusDefinition(); - G4SigmacZero::SigmacZeroDefinition(); - G4XicPlus::XicPlusDefinition(); - G4XicZero::XicZeroDefinition(); - G4OmegacZero::OmegacZeroDefinition(); - G4AntiLambdacPlus::AntiLambdacPlusDefinition(); - G4AntiSigmacPlusPlus::AntiSigmacPlusPlusDefinition(); - G4AntiSigmacPlus::AntiSigmacPlusDefinition(); - G4AntiSigmacZero::AntiSigmacZeroDefinition(); - G4AntiXicPlus::AntiXicPlusDefinition(); - G4AntiXicZero::AntiXicZeroDefinition(); - G4AntiOmegacZero::AntiOmegacZeroDefinition(); -} - -void EXPO_PhysicsList::ConstructIons() -{ - // nuclei - G4Alpha::AlphaDefinition(); - G4Deuteron::DeuteronDefinition(); - G4Triton::TritonDefinition(); -} - -void EXPO_PhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" -void EXPO_PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } else if (particleName == "e-") { - //electron - // Construct processes for electron - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4eIonisation(),-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3); - - } else if (particleName == "e+") { - //positron - // Construct processes for positron - pmanager->AddProcess(new G4MultipleScattering(),-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 - // Construct processes for muon+ - 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); - - } else { - if ((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); - } - } - } -} - -void EXPO_PhysicsList::ConstructHad() -{;} - -void EXPO_PhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void EXPO_PhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - pmanager->AddProcess(theDecayProcess, INT_MAX, -1, INT_MAX); - } - } -} - -void EXPO_PhysicsList::SetCuts() -{ - SetCutsWithDefault(); -/* - if (verboseLevel >0){ - G4cout << "EXPO_PhysicsList::SetCuts:"; - G4cout << "CutLength : " << cut/mm << " (mm)" << 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(cut, "gamma"); - SetCutValue(cut, "e-"); - SetCutValue(cut, "e+"); - - // set cut values for proton and anti_proton before all other hadrons - // because some processes for hadrons need cut values for proton/anti_proton - SetCutValue(cut, "proton"); - SetCutValue(cut, "anti_proton"); - - SetCutValueForOthers(cut); - - if (verboseLevel>1) { - DumpCutValuesTable(); - } -*/ -} - - diff --git a/environments/OPACS/include/EXPO_Primary.icc b/environments/OPACS/include/EXPO_Primary.icc deleted file mode 100644 index 832a9de70c..0000000000 --- a/environments/OPACS/include/EXPO_Primary.icc +++ /dev/null @@ -1,64 +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: EXPO_Primary.icc,v 1.4 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// See also G4/run/example/EXPO_PrimaryGeneratorAction.cc. - -#include - -#include -#include -#include -#include -#include - -class EXPO_PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction -{ - private: - G4ParticleGun* particleGun; - public: - EXPO_PrimaryGeneratorAction() - { - G4int n_particle = 1; - G4String particleName; - particleGun = new G4ParticleGun(n_particle); - G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); - G4ParticleDefinition* particle = particleTable->FindParticle(particleName="e-"); - particleGun->SetParticleDefinition (particle); - particleGun->SetParticleEnergy (1.*GeV); - particleGun->SetParticleMomentumDirection (G4ThreeVector(1.,0.,0.)); - particleGun->SetParticlePosition (G4ThreeVector(0.*cm,0.*cm,0.*cm)); - } - ~EXPO_PrimaryGeneratorAction() - { - delete particleGun; - } - void GeneratePrimaries(G4Event* anEvent) - { - particleGun->GeneratePrimaryVertex(anEvent); - } - -}; - diff --git a/environments/OPACS/include/EXPO_Templates.hh b/environments/OPACS/include/EXPO_Templates.hh deleted file mode 100644 index eaeb9e0cf3..0000000000 --- a/environments/OPACS/include/EXPO_Templates.hh +++ /dev/null @@ -1,164 +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. * -// ******************************************************************** -// -// -// I need that for SunOS-CC !!! -// G.Barrand -// -// RW : -#include "G4ApplicationState.hh" -#include "G4Element.hh" -#include "G4Event.hh" -#include "G4Isotope.hh" -#include "G4LogicalVolume.hh" -#include "G4MPVEntry.hh" -#include "G4Material.hh" -#include "G4MaterialPropertyVector.hh" -#include "G4NavigationLevel.hh" -#include "G4ParticleDefinition.hh" -#include "G4PhysicsVector.hh" -#include "G4ProcTblElement.hh" -#include "G4ProcessAttribute.hh" -#include "G4ProcessManager.hh" -#include "G4SDStructure.hh" -#include "G4SmartVoxelNode.hh" -#include "G4SmartVoxelProxy.hh" -#include "G4Track.hh" -#include "G4UIcommand.hh" -#include "G4UIcommandTree.hh" -#include "G4UImessenger.hh" -#include "G4UIparameter.hh" -#include "G4VDecayChannel.hh" -#include "G4VDigiCollection.hh" -#include "G4VHitsCollection.hh" -#include "G4VModel.hh" -#include "G4VPhysicalVolume.hh" -#include "G4VPhysicalVolume.hh" -#include "G4VProcess.hh" -#include "G4VSolid.hh" -#include "G4VStateDependent.hh" -#include "G4VTrajectory.hh" -#include "G4UnitsTable.hh" -#include "G4UItokenNum.hh" -#include "G4Trajectory.hh" - -template class RWTPtrSlistDictionary; -template class RWTPtrSlistDictionary; -template class RWTPtrSlistDictionary; -template class RWTPtrSlistDictionaryIterator; -template class RWTPtrSlistDictionaryIterator; -template class RWTPtrSlistDictionaryIterator; -template class RWTValSlistDictionary; -template class RWTValSlistDictionary; -template class RWTValSlistDictionary; -template class G4RWTValVector; - -template class G4RWTPtrHashDictionary; -template class G4RWTPtrHashDictionary; -template class G4RWTPtrHashDictionary; -template class G4RWTPtrHashDictionaryIterator; -template class G4RWTPtrHashDictionaryIterator; -template class G4RWTPtrHashDictionaryIterator; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrOrderedVector; -template class G4RWTPtrSortedVector; -template class G4RWTPtrSortedVector; -template class G4RWTValHashDictionary; -template class G4RWTValHashDictionary; -template class G4RWTValHashDictionary; -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -//template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValOrderedVector; -template class G4RWTValVector; -template class G4RWTValVector; -template class G4RWTValVector; -//template class G4RWTValVector; -template class G4RWTValVector; -template class G4RWTValVector; -template class G4RWTValVector; -template class G4RWTValVector; -template class G4RWTValVector; -template class G4RWTValVector; -template class G4RWTValVector; -template class G4RWTPtrOrderedVector; - -// -// G4 : -#include "G4DecayProducts.hh" -#include "G4Run.hh" - -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; -template class G4Allocator; - - - - diff --git a/environments/OPACS/include/G4o.h b/environments/OPACS/include/G4o.h deleted file mode 100644 index b73e392a54..0000000000 --- a/environments/OPACS/include/G4o.h +++ /dev/null @@ -1,50 +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: G4o.h,v 1.4 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* +---------------------- Copyright notice -------------------------------+ */ -/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +---------------------- Copyright notice -------------------------------+ */ -#ifndef G4o_h -#define G4o_h - -#include -#ifdef __cplusplus -extern "C"{ -#endif -void G4oAddCommands (void*); -void G4oExecuteScript (char*); -OShell G4oGetShell (); -#ifdef __cplusplus -} -#endif - -#endif /*G4o_h*/ diff --git a/environments/OPACS/include/G4oCommon.hh b/environments/OPACS/include/G4oCommon.hh deleted file mode 100644 index f9b33a2664..0000000000 --- a/environments/OPACS/include/G4oCommon.hh +++ /dev/null @@ -1,57 +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: G4oCommon.hh,v 1.4 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* - Included by G4o.h. -*/ -#include -#include -#include - -/*G4*/ -#include -#include -#include -#include - -/*Co*/ -#include -#include -#include -#include -#include -#include -#include - - -static void SetTypes (); -static void ExecuteScript (char*); -static int Execute_G4 (int,char**,OProcess); -static int DoMethod (OIdentifier,char*,void*,int,char**,void*,int*); -static G4UIcommand* GetCommandIdentifier (char*); -static void GetCommands (G4UIcommandTree*,int*,char***); -static int ProduceODB (G4UIcommand*,char*); - diff --git a/environments/OPACS/include/G4oCommon.icc b/environments/OPACS/include/G4oCommon.icc deleted file mode 100644 index f16057d4c4..0000000000 --- a/environments/OPACS/include/G4oCommon.icc +++ /dev/null @@ -1,479 +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: G4oCommon.icc,v 1.4 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* - Included by G4o.cc. -*/ - -/***************************************************************************/ -void SetTypes ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - OType otype; -/*.........................................................................*/ - if(OTypeGetIdentifier("G4")!=NULL) return; /*Done*/ - - otype = OTypeCreate ("G4"); - OTypeSetDoMethodFunction (otype,DoMethod); - OTypeAddNewClassMethodProperty (otype,"getCommandGuidance" ,OPropertyString,NULL); - OTypeAddNewClassMethodProperty (otype,"askListOfCommands" ,OPropertyString,NULL); - OTypeAddNewClassMethodProperty (otype,"createCommandPanel" ,OPropertyVoid,NULL); - -} -/***************************************************************************/ -int Execute_G4 ( - int a_argn -,char** a_args -,OProcess a_process -) -/***************************************************************************/ -/* - osh> G4 ... -*/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - int count; - char* string = NULL; -/*.........................................................................*/ - if(a_argn<=1) - { - CWarnF ("At least one argument expected in:\n%s\n",OProcessGetCommand(a_process)); - return EXIT_FAILURE; - } - for(count=1;countApplyCommand(lines[count]); - } - } - CTextDelete (linen,lines); -} -/***************************************************************************/ -int DoMethod ( - OIdentifier This -,char* a_name -,void* a_user -,int a_argn -,char** a_args -,void* a_addr -,int* a_number -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - if(a_number!=NULL) *a_number = 0; - if(a_name==NULL) return 0; - - if(This==NULL) - { - if(strcmp(a_name,"getCommandGuidance")==0) - { - G4UIcommand* command; - char* string = NULL; - int count,linen,paramn; - if(a_argn!=1) - { - CWarnF ("One arguments expected for %s property.\n",a_name); - return 0; - } - command = GetCommandIdentifier(a_args[0]); - if(command==NULL) - { - CWarnF ("Unknown G4 command :\n%s\n",a_args[0]); - return 0; - } - linen = command->GetGuidanceEntries(); - for(count=0;countGetGuidanceLine(count).data()); - CStringConcatenate (&string,"\n"); - } - paramn = command->GetParameterEntries(); - for(count=0;countGetParameter(count); - - info = (char*)parameter->GetParameterName().data(); - line = CStringCreateF(12+strlen(info)+1,"Parameter : %s\n",info); - CStringConcatenate (&string,line); - CStringDelete (line); - - if( ! parameter->GetParameterGuidance().isNull() ) - { - CStringConcatenate (&string,(char*)parameter->GetParameterGuidance().data()); - CStringConcatenate (&string,"\n"); - } - - line = CStringCreateF(19+1+1," Parameter type : %c\n",parameter->GetParameterType()); - CStringConcatenate (&string,line); - CStringDelete (line); - - if(parameter->IsOmittable()==TRUE) - line = CStringDuplicate(" Omittable : true\n"); - else - line = CStringDuplicate(" Omittable : false\n"); - CStringConcatenate (&string,line); - CStringDelete (line); - - if( ! parameter->GetDefaultValue().isNull() ) - { - info = (char*)parameter->GetDefaultValue().data(); - line = CStringCreateF(19+strlen(info)+1," Default value : %s\n",info); - CStringConcatenate (&string,line); - CStringDelete (line); - } - - if( ! parameter->GetParameterRange().isNull() ) - { - info = (char*)parameter->GetParameterRange().data(); - line = CStringCreateF(19+strlen(info)+1," Parameter range : %s\n",info); - CStringConcatenate (&string,line); - CStringDelete (line); - } - } - *((char**)a_addr) = string; - return FREE_BLOCK; - } - else if(strcmp(a_name,"askListOfCommands")==0) - { - G4UIcommandTree* treeTop; - char* string = NULL; - G4UImanager* UI; - int linen = 0; - char** lines = NULL; - UI = G4UImanager::GetUIpointer(); - if(UI==NULL) return 0; - treeTop = UI->GetTree(); - if(treeTop==NULL) return 0; - if(a_argn==1) treeTop = treeTop->GetTree(a_args[0]); - GetCommands (treeTop,&linen,&lines); - string = CTextConvertToString (linen,lines,"\n"); - CTextDelete (linen,lines); - *((char**)a_addr) = string; - return FREE_BLOCK; - } - else if(strcmp(a_name,"createCommandPanel")==0) - { - if(a_argn!=2) - { - CWarnF ("Two arguments expected for %s property.\n",a_name); - return 0; - } - return ProduceODB(GetCommandIdentifier(a_args[0]),a_args[1]); - } - else - { - CInfoF ("G4_DoMethod: %s is not a class routine property.\n",a_name); - return 0; - } - } - - CInfoF ("G4_DoMethod: %s is not a routine property.\n",a_name); - - a_user = NULL; - a_argn = 0; - a_args = NULL; - a_addr = NULL; - return 0; -} -/***************************************************************************/ -void GetCommands ( - G4UIcommandTree* a_tree -,int* a_linen -,char*** a_lines -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - if(a_tree==NULL) return; - - int n_commandEntry = a_tree->GetCommandEntry(); - for( int i_thCommand = 1; i_thCommand <= n_commandEntry; i_thCommand++ ) - { - G4UIcommand* command = a_tree->GetCommand(i_thCommand); - CTextAddLine (a_linen,a_lines,(char*)command->GetCommandPath().data()); - } - - int n_treeEntry = a_tree->GetTreeEntry(); - for( int i_thTree = 1; i_thTree <= n_treeEntry; i_thTree++ ) - { - GetCommands (a_tree->GetTree(i_thTree),a_linen,a_lines); - } - -} -/***************************************************************************/ -G4UIcommand* GetCommandIdentifier ( - char* a_name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4UImanager* UI; - G4UIcommandTree* treeTop; -/*.........................................................................*/ - if(a_name==NULL) return NULL; - UI = G4UImanager::GetUIpointer(); - if(UI==NULL) return NULL; - treeTop = UI->GetTree(); - if(treeTop==NULL) return NULL; - return treeTop->FindPath(a_name); -} -/***************************************************************************/ -int ProduceODB ( - G4UIcommand* a_command -,char* a_name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - FILE* file; - int paramn,parami; - char* top = NULL; -/*.........................................................................*/ - if(a_command==NULL) return 0; - - paramn = a_command->GetParameterEntries(); - - file = CFileOpenForWriting (a_name); - if(file==NULL) return 0; - - fprintf (file,"\ -!----------------------------\n\ -begin OInterface\n\ - prefix = G4Params_\n\ -end\n\ -!----------------------------\n\ -begin OWidget\n\ - name = G4Params_palette\n\ - type = XmFormDialog\n\ - children = G4Params_command\ -"); - for(parami=0;parami\\\n\ - command=`getWidgetResource G4Params_command labelString`\\\n\ - echo `do G4 getCommandGuidance $command`\n\ -end\n\ -",a_command->GetCommandPath().data()); - - for(parami=0;paramiGetParameter(parami); - fprintf (file,"\ -!----------------------------\n\ -begin OWidget\n\ - name = G4Params_label_%d\n\ - type = XmLabel\n\ - labelString = %s\n\ - createCallback = osh> setWidgetResource `thisWidget` height `getWidgetResource G4Params_text_%d height`\n\ - leftAttachment = attach_form\n\ -",parami,parameter->GetParameterName().data(),parami); - if(parami==0) - { - fprintf (file,"\ - topAttachment = attach_widget\n\ - topWidget = G4Params_command\n\ -"); - } - else - { - fprintf (file,"\ - topAttachment = attach_widget\n\ - topWidget = G4Params_text_%d\n\ -",parami-1); - } - fprintf (file,"\ -end\n\ -!----------------------------\n\ -begin OWidget\n\ - name = G4Params_text_%d\n\ - type = XmText\n\ - leftAttachment = attach_widget\n\ - leftWidget = G4Params_label_%d\n\ - rightAttachment = attach_form\n\ -",parami,parami); - if(parami==0) - { - fprintf (file,"\ - topAttachment = attach_widget\n\ - topWidget = G4Params_command\n\ -"); - } - else - { - fprintf (file,"\ - topAttachment = attach_widget\n\ - topWidget = G4Params_text_%d\n\ -",parami-1); - } - - if( ! parameter->GetDefaultValue().isNull() ) - { - fprintf (file,"\ - value = %s\n\ -",parameter->GetDefaultValue().data()); - } - - fprintf (file,"\ -end\n\ -"); - - } - - if(paramn>=1) - { - top = CStringCreateF(14+32,"G4Params_text_%d",paramn-1); - } - else - { - top = CStringDuplicate("G4Params_command"); - } - - fprintf (file,"\ -!----------------------------\n\ -begin OWidget\n\ - name = G4Params_ok\n\ - type = XmPushButton\n\ - labelString = Ok\n\ - activateCallback = osh>\\\n\ - command=`getWidgetResource G4Params_command labelString`\\\n\ -"); - for(parami=0;parami\\\n\ - command=`getWidgetResource G4Params_command labelString`\\\n\ -",top); - for(parami=0;parami unmanageWidget `thisWidgetParent`\n\ - bottomAttachment = attach_form\n\ - leftAttachment = attach_widget\n\ - leftWidget = G4Params_apply\n\ - rightAttachment = attach_form\n\ - topAttachment = attach_widget\n\ - topWidget = %s\n\ -end\n\ -",top,top); - - CStringDelete (top); - - fclose(file); - - return 1; -} diff --git a/environments/OPACS/include/G4oDrawer.hh b/environments/OPACS/include/G4oDrawer.hh deleted file mode 100644 index 6b45e1e21c..0000000000 --- a/environments/OPACS/include/G4oDrawer.hh +++ /dev/null @@ -1,129 +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: G4oDrawer.hh,v 1.4 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* +---------------------- Copyright notice -------------------------------+ */ -/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +---------------------- Copyright notice -------------------------------+ */ - -#ifndef G4ODRAWER_HH -#define G4ODRAWER_HH - -#include - -#include -#include - -class G4Event; -class G4Polyline; -class G4Text; -class G4Circle; -class G4Square; -class G4Polymarker; -class G4Polyhedron; -class G4NURBS; -class G4VSolid; -class G4LogicalVolume; -class G4VPhysicalVolume; -class G4VisAttributes; -class G4Colour; - -class G4oDrawer: public G4VVisManager { - -public: - - static G4oDrawer* GetInstance (); // Access to private constructor. - ~G4oDrawer (); - - void SetWorldVolume (G4VPhysicalVolume* world); - - void Draw (const G4Polyline&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void Draw (const G4Text&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void Draw (const G4Circle&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void Draw (const G4Square&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void Draw (const G4Polymarker&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void Draw (const G4Polyhedron&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void Draw (const G4NURBS&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - // Now Follow functions for drawing a GEANT4 geometry object. Note - // that the 2nd argument overrides any visualization attributes that - // are associated with the object itself. - - void Draw (const G4VSolid&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void Draw (const G4LogicalVolume&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void Draw (const G4VPhysicalVolume&, const G4VisAttributes&, - const G4Transform3D& objectTransformation = G4Transform3D::Identity); - - void GeometryHasChanged (); - - ////////////////////////////////////////////////////////////////////// - // Timing messages. - - void EventBegins (); - // All stacks are clear and event processing is about to start. - - void EventEnded (G4Event* pEvent); - // Event processing has ended and event-persistent data is available. - - void SetNode (ONode); - -private: - - G4oDrawer (); // Private constructor. - static G4oDrawer* fpInstance; // Pointer to single instance. - static ONode node; - static OColormap colormap; - void SetColour (const G4Colour&); -}; - - -#endif - - - - diff --git a/environments/OPACS/include/G4oScene.hh b/environments/OPACS/include/G4oScene.hh deleted file mode 100644 index 1dafd2a9a3..0000000000 --- a/environments/OPACS/include/G4oScene.hh +++ /dev/null @@ -1,94 +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: G4oScene.hh,v 1.5 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* +---------------------- Copyright notice -------------------------------+ */ -/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +---------------------- Copyright notice -------------------------------+ */ - -#ifndef G4OSCENE_HH -#define G4OSCENE_HH - -#include - -class G4PhysicalVolumeModel; -class G4VPhysicalVolume; -class G4LogicalVolume; - -#include - -class G4oScene : public G4VGraphicsScene { -public: - //Inherited - void AddThis (const G4Box&); - void AddThis (const G4Cons&); - void AddThis (const G4Tubs&); - void AddThis (const G4Trd&); - void AddThis (const G4Trap&); - void AddThis (const G4Sphere&); - void AddThis (const G4Para&); - void AddThis (const G4Torus&); - void AddThis (const G4Polycone&); - void AddThis (const G4Polyhedra&); - void AddThis (const G4VSolid& solid); // For solids not above. - - void BeginPrimitives (const G4Transform3D&); - void EndPrimitives (); - void AddPrimitive (const G4Polyline&); - void AddPrimitive (const G4Text&); - void AddPrimitive (const G4Circle&); - void AddPrimitive (const G4Square&); - void AddPrimitive (const G4Polymarker&); - void AddPrimitive (const G4Polyhedron&); - void AddPrimitive (const G4NURBS&); - - void PreAddThis (const G4Transform3D& objectTransformation, - const G4VisAttributes& visAttribs); - void PostAddThis (); - - void EstablishSpecials (G4PhysicalVolumeModel&); - - //Local - G4oScene (); - ~G4oScene (); - void SetNodeName (char*); - ONode GetNode (); - -private: - static ONode node; - const G4Transform3D* fpAccTransf; // Accumulated transformation. - static char* nodeName; - void AddPolyhedron (G4Polyhedron*); - G4int fCurrentDepth; // Current depth of geom. hierarchy. - G4VPhysicalVolume* fpCurrentPV; // Current physical volume. - G4LogicalVolume* fpCurrentLV; // Current logical volume. -}; -#endif diff --git a/environments/OPACS/include/WoG4o.h b/environments/OPACS/include/WoG4o.h deleted file mode 100644 index 4f4db5fc0e..0000000000 --- a/environments/OPACS/include/WoG4o.h +++ /dev/null @@ -1,51 +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: WoG4o.h,v 1.4 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* +---------------------- Copyright notice -------------------------------+ */ -/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +---------------------- Copyright notice -------------------------------+ */ -#ifndef WoG4o_h -#define WoG4o_h - -#ifdef HAS_G4O - -/*G4o*/ -#include - -/*Wo*/ -#include -#include -#include - -#endif /*HAS_G4O*/ - -#endif /*WoG4o_h*/ diff --git a/environments/OPACS/include/WoG4o.ic b/environments/OPACS/include/WoG4o.ic deleted file mode 100644 index 0c5155dec1..0000000000 --- a/environments/OPACS/include/WoG4o.ic +++ /dev/null @@ -1,23 +0,0 @@ -/* +---------------------- Copyright notice -------------------------------+ */ -/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +---------------------- Copyright notice -------------------------------+ */ -#ifndef WoG4o_ic -#define WoG4o_ic - -#ifdef HAS_G4O - - G4oAddCommands (WoGetShellInterpreter()); - - OInterfaceAddPackage ("G4o"); - - OInterpreterAddInterpreter ("G4",G4oExecuteScript); - -#endif /*HAS_G4O*/ - -#endif /*WoG4o_ic*/ diff --git a/environments/OPACS/mgr/Config.mk b/environments/OPACS/mgr/Config.mk deleted file mode 100644 index ef599e149f..0000000000 --- a/environments/OPACS/mgr/Config.mk +++ /dev/null @@ -1,171 +0,0 @@ -#/*+---------------------- Copyright notice -------------------------------+ */ -#/*| Copyright (C) 1995, Guy Barrand, LAL Orsay. (barrand@lalcls.in2p3.fr) | */ -#/*| Permission to use, copy, modify, and distribute this software | */ -#/*| and its documentation for any purpose and without fee is hereby | */ -#/*| granted, provided that the above copyright notice appear in all | */ -#/*| copies and that both that copyright notice and this permission | */ -#/*| notice appear in supporting documentation. This software is | */ -#/*| provided "as is" without express or implied warranty. | */ -#/*+---------------------- Copyright notice -------------------------------+ */ -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# Examples : -# UNIX> make OSF1 -# UNIX> make OSF1 target=all -# UNIX> make OSF1 target=clean -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -SHELL = /bin/sh - -default : - @echo " Type :" - @echo " UNIX> make " - @echo " where, for the distribution, could be :" - @echo " OSF1-cxx" - @echo " HP-UX-aCC" - @echo " Linux-gxx" - @echo " SunOS-CC" - @echo " For example : " - @echo " UNIX> make OSF1" - @echo " If none of the above 'config' matches you environment," - @echo " edit the Co/v3/mgr/Config.mk file." - -OSF1-cxx : This_needed - @CONFIG=$@;export CONFIG;MAKEFLAGS='';export MAKEFLAGS;$(MAKE) -f This.mk $(t) $(target) \ -"a_or_so = so" \ -"so = so" \ -"CC = cc" \ -"CFLAGS = -std1 -O" \ -"CCLD = cc" \ -"CCLDFLAGS = -std1" \ -"CCLDEND = -lots -lSM -lICE -ldnet_stub" \ -"CXX = cxx" \ -"CXXFLAGS = -std strict_ansi -ptr ${OREPOSITORY} -DG4_HAVE_BOOL -g" \ -"CXXLD = cxx" \ -"CXXLDFLAGS = -ptr ${OREPOSITORY} -non_shared" \ -"CXXLDEND = -lots -lSM -lICE -ldnet_stub" \ -"APP_CXXFLAGS = " \ -"F77 = f77" \ -"F77FLAGS = -w" \ -"F77LD = f77" \ -"X11_CPPFLAGS = " \ -"Xext_CPPFLAGS = -I/usr/include/X11/extensions" \ -"Xmu_CPPFLAGS = -I/usr/include/X11" \ -"Xt_CPPFLAGS = " \ -"Xaw_CPPFLAGS = " \ -"Xm_CPPFLAGS = " \ -"libc = -lc" \ -"libm = -lm" \ -"libf77 = -lfor -lFutil -lUfor" \ -"libX11 = -L/usr/shlib -lX11" \ -"libXext = -L/usr/shlib -lXext" \ -"libXt = -L/usr/shlib -lXt" \ -"libXmu = -L/usr/shlib -lXmu" \ -"libXaw = -L/usr/shlib -lXaw" \ -"libXm = -L/usr/shlib -lXm" \ -$(This_macros) - -HP-UX-aCC : This_needed - @CONFIG=$@;export CONFIG;MAKEFLAGS='';export MAKEFLAGS;$(MAKE) -f This.mk $(t) $(target) \ -"a_or_so = sl" \ -"so = sl" \ -"CC = c89" \ -"CFLAGS = +Z -O" \ -"CCLD = c89" \ -"CCLDFLAGS = " \ -"CCLDEND = -ldld -lisamstub" \ -"CXX = aCC" \ -"CXXFLAGS = +Z -O -DRW_NO_STL -DG4_HAVE_BOOL -I/opt/aCC/include" \ -"CXXLD = aCC" \ -"CXXLDFLAGS = +Z -O" \ -"CXXLDEND = -lisamstub" \ -"APP_CXXFLAGS = " \ -"F77 = f77" \ -"F77FLAGS = -w +ppu" \ -"F77LD = fort77" \ -"X11_CPPFLAGS = " \ -"Xext_CPPFLAGS = -I/usr/include/X11/extensions" \ -"Xmu_CPPFLAGS = -I/usr/contrib/X11R6/include/X11" \ -"Xt_CPPFLAGS = " \ -"Xaw_CPPFLAGS = -I/usr/contrib/X11R6/include -I/usr/contrib/X11R6/include/X11" \ -"Xm_CPPFLAGS = " \ -"libc = -lc" \ -"libm = -lm" \ -"libf77 = -lf" \ -"libX11 = -L/usr/lib -lX11" \ -"libXext = -L/usr/lib -lXext" \ -"libXt = -L/usr/lib -lXt" \ -"libXmu = -L/usr/contrib/X11R6/lib -lXmu" \ -"libXaw = -L/usr/contrib/X11R6/lib -lXaw" \ -"libXm = -L/usr/lib -lXm" \ -$(This_macros) - -Linux-gxx : This_needed - @CONFIG=$@;export CONFIG;MAKEFLAGS='';export MAKEFLAGS;$(MAKE) -f This.mk $(t) $(target) \ -"a_or_so = so" \ -"so = so" \ -"CC = g++" \ -"CFLAGS = -x c++ -Wall -ansi -O" \ -"CCCC = -x c" \ -"CCLD = g++" \ -"CCLDFLAGS = " \ -"CCLDEND = " \ -"CXX = g++" \ -"CXXFLAGS = -pipe -fno-for-scope -DGNU_GCC -DG4_HAVE_BOOL -O" \ -"CXXLD = g++" \ -"CXXLDFLAGS = " \ -"CXXLDEND = " \ -"F77 = f77" \ -"F77FLAGS = " \ -"F77LD = f77" \ -"X11_CPPFLAGS = " \ -"Xext_CPPFLAGS = -I/usr/include/X11/extensions" \ -"Xmu_CPPFLAGS = -I/usr/include/X11" \ -"Xt_CPPFLAGS = " \ -"Xaw_CPPFLAGS = " \ -"Xm_CPPFLAGS = -I/usr/X11R6/include" \ -"libc = -lc" \ -"libm = -lm" \ -"libf77 = -lf" \ -"libX11 = -L/usr/X11R6/lib -lX11 -lSM -lICE" \ -"libXext = -L/usr/X11R6/lib -lXext" \ -"libXt = -L/usr/X11R6/lib -lXt" \ -"libXmu = -L/usr/X11R6/lib -lXmu" \ -"libXaw = -L/usr/X11R6/lib -lXaw" \ -"libXm = -L/usr/X11R6/lib -lXm -lXaw" \ -$(This_macros) - -SunOS-CC : This_needed - @CONFIG=$@;export CONFIG;MAKEFLAGS='';export MAKEFLAGS;$(MAKE) -f This.mk $(t) $(target) \ -"a_or_so = a" \ -"so = so" \ -"CC = cc" \ -"CFLAGS = $(opt)" \ -"CCLD = cc" \ -"CCLDFLAGS = " \ -"CCLDEND = " \ -"CXX = CC" \ -"CXXFLAGS = -I/usr/include -ptr${G4WORKDIR}/tmp/$${CONFIG} $(opt)" \ -"CXXLD = CC" \ -"CXXLDFLAGS = -ptr${G4WORKDIR}/tmp/$${CONFIG} $(opt)" \ -"CXXLDEND = -lsocket -lnsl" \ -"F77 = f77" \ -"F77FLAGS = " \ -"F77LD = f77" \ -"X11_CPPFLAGS = " \ -"Xext_CPPFLAGS = -I/usr/include/X11/extensions" \ -"Xmu_CPPFLAGS = -I/usr/include/X11" \ -"Xt_CPPFLAGS = " \ -"Xaw_CPPFLAGS = " \ -"Xm_CPPFLAGS = " \ -"libc = -lc" \ -"libm = -lm" \ -"libf77 = -lF77" \ -"libX11 = -L/usr/lib -lX11" \ -"libXext = -L/usr/lib -lXext" \ -"libXt = -L/usr/lib -lXt" \ -"libXmu = -L/usr/lib -lXmu" \ -"libXaw = -L/usr/lib -lXaw" \ -"libXm = -L/usr/lib -lXm" \ -$(This_macros) - - diff --git a/environments/OPACS/mgr/Make.odb b/environments/OPACS/mgr/Make.odb deleted file mode 100644 index d337fb7ff3..0000000000 --- a/environments/OPACS/mgr/Make.odb +++ /dev/null @@ -1,66 +0,0 @@ -!---------------------------- -begin Make - package = G4o -! has = X11 Xext GL G4 RW - has = X11 Xext Xt Xmu Xm GL RW CLHEP G4 Wo WoXm Xo - libs = \ -X11: libX11\ -Xext: libXext\ -Xt: libXt\ -Xmu: libXmu\ -Xm: libXm\ -GL: libGL libGLU libGLX\ -G4: libg4\ -RW: librw\ -CLHEP: libCLHEP\ -G4o: libc libm libCo libGo libG4o\ -Wo: libc libm libCo libXx libWo libWoGL\ -WoXm: libWoXm\ -Xo: libwww libhtmlw libHo libGo libXo -end -!---------------------------- -begin OModule - name = EXPO - type = application - language = c++ - libs = libG4o libg4 libCLHEP librw libWoGL libXo libhtmlw libWoXm libXm libWoXaw libXaw libWo libXx libXmu libXt libGo libGLX libGLU libGL libXext libX11 libHo libCo libwww libm libcxx -! distributed = no -end -!---------------------------- -!---------------------------- -!---------------------------- -begin OModule - name = libG4o - type = a -end -!---------------------------- -begin OModule - name = G4o - inLib = libG4o - language = c++ - extension = cc -end -!---------------------------- -begin OModule - name = G4oScene - inLib = libG4o - language = c++ - extension = cc -end -!---------------------------- -begin OModule - name = G4oDrawer - inLib = libG4o - language = c++ - extension = cc -end -!---------------------------- -begin OModule - name = G4oState - inLib = libG4o - language = c++ - extension = cc -end - - - diff --git a/environments/OPACS/mgr/Makefile b/environments/OPACS/mgr/Makefile deleted file mode 100644 index dd200a8e9f..0000000000 --- a/environments/OPACS/mgr/Makefile +++ /dev/null @@ -1,56 +0,0 @@ -#/* +---------------------- Copyright notice -------------------------------+ */ -#/* | Copyright (C) 1995, Guy Barrand, LAL Orsay. (barrand@lalcls.in2p3.fr) | */ -#/* | Permission to use, copy, modify, and distribute this software | */ -#/* | and its documentation for any purpose and without fee is hereby | */ -#/* | granted, provided that the above copyright notice appear in all | */ -#/* | copies and that both that copyright notice and this permission | */ -#/* | notice appear in supporting documentation. This software is | */ -#/* | provided "as is" without express or implied warranty. | */ -#/* +---------------------- Copyright notice -------------------------------+ */ - -This_macros = \ -"bin = ../$${CONFIG}" \ -"mgr = ../mgr" \ -"src = ../src" \ -"app = ../app" \ -"make_so = sh ${COROOT}/mgr/maklibs.sh" \ -"G4o_CPPFLAGS = -I${COROOT}/include -I${GOROOT}/include -I../include -DHAS_HO -DHAS_G4O" \ -"libG4o = -L../$${CONFIG} -lG4o" \ -"RW_CPPFLAGS = ${RWFLAGS}" \ -"librw = ${RWLIBS}" \ -"CLHEP_CPPFLAGS = -I${CLHEPROOT}/include " \ -"libCLHEP = -L${CLHEPROOT}/lib -lCLHEP" \ -"GL_CPPFLAGS = -I${GLOROOT}/usr/include" \ -"libGL = -L${GLOROOT}/${OCONFIG} -lGLo" \ -"libGLU = -L${GLOROOT}/${OCONFIG} -lGLUo" \ -"libGLX = -L${GLOROOT}/${OCONFIG} -lGLXo" \ -"Wo_CPPFLAGS = -I${COROOT}/include -I${XXROOT}/include -I${WOROOT}/include" \ -"libCo = -L${COROOT}/${OCONFIG} -lCo" \ -"libXx = -L${XXROOT}/${OCONFIG} -lXx" \ -"libWo = -L${WOROOT}/${OCONFIG} -lWo" \ -"libWoGL = -L${WOROOT}/${OCONFIG} -lWoGL" \ -"WoXm_CPPFLAGS = -DHAS_XM" \ -"libWoXm = -L${WOROOT}/${OCONFIG} -lWoXm" \ -"Xo_CPPFLAGS = -DHAS_XO -DHAS_HTML -I${XOROOT}/include -I${GOROOT}/include -I${HOROOT}/include" \ -"libXo = -L${XOROOT}/${OCONFIG} -lXo" \ -"libHo = -L${HOROOT}/${OCONFIG} -lHo" \ -"libGo = -L${GOROOT}/${OCONFIG} -lGo" \ -"libwww = -L${W3OROOT}/${OCONFIG} -lW3o" \ -"libhtmlw = -L${HTMLOROOT}/${OCONFIG} -lHTMLo" \ -"G4_CPPFLAGS = -DG4USE_STL -DG4USE_NAMESPACE -DG4USE_STD_NAMESPACE -I${G4INSTALL}/source/global/management/include -I${G4INSTALL}/source/global/HEPRandom/include -I${G4INSTALL}/source/global/HEPGeometry/include -I${G4INSTALL}/source/run/include -I${G4INSTALL}/source/materials/include -I${G4INSTALL}/source/particles/management/include -I${G4INSTALL}/source/particles/bosons/include -I${G4INSTALL}/source/particles/leptons/include -I${G4INSTALL}/source/particles/hadrons/barions/include -I${G4INSTALL}/source/particles/hadrons/ions/include -I${G4INSTALL}/source/particles/hadrons/mesons/include -I${G4INSTALL}/source/processes/management/include -I${G4INSTALL}/source/processes/general/include -I${G4INSTALL}/source/processes/decay/include -I${G4INSTALL}/source/processes/optical/include -I${G4INSTALL}/source/processes/transportation/include -I${G4INSTALL}/source/processes/parameterisation/include -I${G4INSTALL}/source/processes/electromagnetic/standard/include -I${G4INSTALL}/source/processes/electromagnetic/muons/include -I${G4INSTALL}/source/processes/electromagnetic/utils/include -I${G4INSTALL}/source/processes/electromagnetic/xrays/include -I${G4INSTALL}/source/processes/hadronic/management/include -I${G4INSTALL}/source/processes/hadronic/processes/include -I${G4INSTALL}/source/processes/hadronic/util/include -I${G4INSTALL}/source/processes/hadronic/cross_sections/include -I${G4INSTALL}/source/processes/hadronic/models/generator/include -I${G4INSTALL}/source/processes/hadronic/models/high_energy/include -I${G4INSTALL}/source/processes/hadronic/models/low_energy/include -I${G4INSTALL}/source/processes/hadronic/stopping/include -I${G4INSTALL}/source/geometry/management/include -I${G4INSTALL}/source/geometry/solids/CSG/include -I${G4INSTALL}/source/geometry/solids/specific/include -I${G4INSTALL}/source/geometry/solids/BREPS/include -I${G4INSTALL}/source/geometry/solids/STEP/include -I${G4INSTALL}/source/geometry/volumes/include -I${G4INSTALL}/source/geometry/magneticfield/include -I${G4INSTALL}/source/track/include -I${G4INSTALL}/source/tracking/include -I${G4INSTALL}/source/digits+hits/detector/include -I${G4INSTALL}/source/digits+hits/hits/include -I${G4INSTALL}/source/digits+hits/digits/include -I${G4INSTALL}/source/readout/include -I${G4INSTALL}/source/event/include -I${G4INSTALL}/source/graphics_reps/include -I${G4INSTALL}/source/persistency/include -I${G4INSTALL}/source/intercoms/include -I${G4INSTALL}/source/visualization/modeling/include" \ -"libg4 = -L${G4LIB}/$${G4SYSTEM} -lG4modeling -lG4emstandard -lG4decay -lG4UIbasic -lG4muons -lG4ions -lG4mesons -lG4leptons -lG4baryons -lG4run -lG4event -lG4bosons -lG4tracking -lG4transportation -lG4detector -lG4emutils -lG4hits -lG4procman -lG4digits -lG4track -lG4UIcommon -lG4partman -lG4volumes -lG4magneticfield -lG4geomBoolean -lG4csg -lG4geometrymng -lG4materials -lG4intercoms -lG4graphics_reps -lG4globman" - -# With Geant4 global libs use : -#"libg4 = -L${G4LIB}/$${G4SYSTEM} -lG4modeling -lG4run -lG4event -lG4tracking -lG4processes -lG4particles -lG4digits+hits -lG4track -lG4materials -lG4geometry -lG4graphics_reps -lG4intercoms -lG4global" - -include Config.mk - -This_needed : - @if test "${COROOT}" = "" ; then echo "COROOT not set" ; exit 1 ; else exit 0 ; fi - @if test "${GOROOT}" = "" ; then echo "GOROOT not set"; exit 1 ; else exit 0 ; fi - @if test "${G4INSTALL}" = "" ; then echo "G4INSTALL not set" exit 1 ; else exit 0 ; fi - @if test "${G4LIB}" = "" ; then echo "G4LIB not set" exit 1 ; else exit 0 ; fi - @ - @if test "${GLOROOT}" = "" ; then echo "GLOROOT not set" ; else exit 0 ; fi - - diff --git a/environments/OPACS/mgr/This.mk b/environments/OPACS/mgr/This.mk deleted file mode 100644 index ea1a4e8313..0000000000 --- a/environments/OPACS/mgr/This.mk +++ /dev/null @@ -1,124 +0,0 @@ -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# File produced by the Co/omake tool -# using file Make.odb. -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# The soft linked packages has been taken -# from the property 'has' of the -# 'Make' object of file Make.odb. -# It had the value : -# X11 Xext Xt Xmu Xm GL RW CLHEP G4 Wo WoXm Xo -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -HAS_CPPFLAGS = \ - $(G4o_CPPFLAGS)\ - $(X11_CPPFLAGS)\ - $(Xext_CPPFLAGS)\ - $(Xt_CPPFLAGS)\ - $(Xmu_CPPFLAGS)\ - $(Xm_CPPFLAGS)\ - $(GL_CPPFLAGS)\ - $(RW_CPPFLAGS)\ - $(CLHEP_CPPFLAGS)\ - $(G4_CPPFLAGS)\ - $(Wo_CPPFLAGS)\ - $(WoXm_CPPFLAGS)\ - $(Xo_CPPFLAGS) -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -all :: - @if test -d $(bin) ; then exit ; else mkdir $(bin) ; echo "$(bin) created." ; fi -clean :: - /bin/rm -f $(bin)/*.o;/bin/rm -f $(bin)/*.exe;/bin/rm -f $(bin)/*.class;/bin/rm -f $(bin)/*.a;/bin/rm -f $(bin)/*.so;/bin/rm -f $(bin)/*.sl -rmlib :: - /bin/rm -f $(bin)/*.a -rmo :: - /bin/rm -f $(bin)/*.o -rmexe :: - /bin/rm -f $(bin)/*.exe;/bin/rm -f $(bin)/*.class - -libG4o_target = $(bin)/libG4o.a -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -all :: \ -$(libG4o_target) \ -$(bin)/EXPO.exe - @echo "G4o : all ok." - -libs :: \ -$(libG4o_target) - @echo "G4o : libs ok." - -apps :: \ -$(bin)/EXPO.exe - @echo "G4o : apps ok." -#-------------------------------------------- -rmexeo : - /bin/rm -f $(bin)/EXPO.o -#-------------------------------------------- -EXPO : $(bin)/EXPO.exe - @echo "G4o : EXPO ok." -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -#-------------------------------------------- -$(bin)/EXPO.exe : $(bin)/EXPO.o \ -$(libG4o_target) - $(CXXLD) $(CXXLDFLAGS) $(HAS_CPPFLAGS) -o $(bin)/EXPO.exe $(bin)/EXPO.o \ -$(libG4o) \ -$(libg4) \ -$(libCLHEP) \ -$(librw) \ -$(libWoGL) \ -$(libXo) \ -$(libhtmlw) \ -$(libWoXm) \ -$(libXm) \ -$(libWo) \ -$(libXx) \ -$(libXmu) \ -$(libXt) \ -$(libGo) \ -$(libGLX) \ -$(libGLU) \ -$(libGL) \ -$(libXext) \ -$(libX11) \ -$(libHo) \ -$(libCo) \ -$(libwww) \ -$(libm) \ -$(CXXLDEND) - -$(bin)/EXPO.o : $(app)/EXPO.cc - $(CXX) $(CXXFLAGS) $(APP_CXXFLAGS) $(HAS_CPPFLAGS) -c -o $(bin)/EXPO.o $(app)/EXPO.cc -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# libraries -#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.PRECIOUS : $(bin)/libG4o.a -#-------------------------------------------- - -$(bin)/libG4o.a : \ -$(bin)/libG4o.a(G4o.o) \ -$(bin)/libG4o.a(G4oScene.o) \ -$(bin)/libG4o.a(G4oDrawer.o) \ -$(bin)/libG4o.a(G4oState.o) - @cd $(bin) ; if [ -f /bin/ranlib ] ; then /bin/ranlib libG4o.a ; fi ; cd $(mgr) -#-------------------------------------------- -# libG4o dependencies -#-------------------------------------------- -$(bin)/libG4o.a(G4o.o) : $(src)/G4o.cc - $(CXX) $(CXXFLAGS) $(HAS_CPPFLAGS) -c -o $(bin)/G4o.o $(src)/G4o.cc - ar cr $(bin)/libG4o.a $(bin)/G4o.o - /bin/rm -f $(bin)/G4o.o - -$(bin)/libG4o.a(G4oScene.o) : $(src)/G4oScene.cc - $(CXX) $(CXXFLAGS) $(HAS_CPPFLAGS) -c -o $(bin)/G4oScene.o $(src)/G4oScene.cc - ar cr $(bin)/libG4o.a $(bin)/G4oScene.o - /bin/rm -f $(bin)/G4oScene.o - -$(bin)/libG4o.a(G4oDrawer.o) : $(src)/G4oDrawer.cc - $(CXX) $(CXXFLAGS) $(HAS_CPPFLAGS) -c -o $(bin)/G4oDrawer.o $(src)/G4oDrawer.cc - ar cr $(bin)/libG4o.a $(bin)/G4oDrawer.o - /bin/rm -f $(bin)/G4oDrawer.o - -$(bin)/libG4o.a(G4oState.o) : $(src)/G4oState.cc - $(CXX) $(CXXFLAGS) $(HAS_CPPFLAGS) -c -o $(bin)/G4oState.o $(src)/G4oState.cc - ar cr $(bin)/libG4o.a $(bin)/G4oState.o - /bin/rm -f $(bin)/G4oState.o - - diff --git a/environments/OPACS/mgr/setup.csh b/environments/OPACS/mgr/setup.csh deleted file mode 100644 index 4bf0353620..0000000000 --- a/environments/OPACS/mgr/setup.csh +++ /dev/null @@ -1,61 +0,0 @@ -# Installer, edit this file to set -# correctly the product pathes : OPACS, -# Geant4, CLHEP, RW, etc... -# -# User, to use Geant4/environments/OPACS, -# execute this script with : -# csh> source setup.csh -# -#----------------------------- -# -# Execute OPACS setup script : -# -------------------------- -source /lal/OPACS/v3/setup.csh -# -# CLHEP, Rogue Wave path : -# ---------------------- -if ( `uname -n` == "aleph" ) then -setenv CLHEPROOT /lal/CLHEP/1.4/HP-UX-aCC -setenv RWLIBS "-lrwtool" -endif -if ( `uname -n` == "asc" ) then -setenv G4WORKDIR /geant4/geant4-01-01 -setenv G4INSTALL $G4WORKDIR -setenv G4LIB $G4WORKDIR/lib -setenv G4SYSTEM DEC-cxx -setenv CLHEPROOT /lal/CLHEP/1.4/OSF1-cxx -setenv RWFLAGS "-I$G4INSTALL/source/global/STLInterface" -setenv RWLIBS "" -# To be able to link : -limit datasize 500000 -endif -if ( `uname -n` == "lx1.lal.in2p3.fr" ) then -setenv G4WORKDIR /geant4/geant4-01-01 -setenv G4INSTALL $G4WORKDIR -setenv G4LIB $G4WORKDIR/lib -setenv G4SYSTEM Linux-g++ -setenv CLHEPROOT /lal/CLHEP/1.4/Linux-gxx -# With STL, hook the dummy rw things : -setenv RWFLAGS "-I$G4INSTALL/source/global/STLInterface" -setenv RWLIBS "" -endif -if ( `uname -n` == "papou1" ) then -setenv G4WORKDIR /geant4/dev -setenv G4INSTALL $G4WORKDIR/geant4 -setenv G4LIB $G4WORKDIR/lib -setenv G4SYSTEM SunOS-CC -setenv CLHEPROOT /lal/CLHEP/1.4/SunOS-CC -setenv RWROOT /lal/rogue/6.1/SunOS-CC -setenv RWFLAGS "-I${RWROOT}" -setenv RWLIBS "-L${RWROOT}/lib -lrwtool" -endif -# -# Directory where to find Geant4 templates (to be able to link) : -# ------------------------------------------------------------- -setenv OREPOSITORY $G4WORKDIR/tmp/$G4SYSTEM/g4.ptrepository -# -# OPACS OPATH variable for finding, at run time, environments/OPACS palettes : -# ------------------------------------------------------------------------- -setenv OPATH "$OPATH $G4INSTALL/environments/OPACS/usr" -# - diff --git a/environments/OPACS/src/G4o.cc b/environments/OPACS/src/G4o.cc deleted file mode 100644 index 9e9cb30b80..0000000000 --- a/environments/OPACS/src/G4o.cc +++ /dev/null @@ -1,359 +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: G4o.cc,v 1.8 2001/07/11 09:56:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* -#define DEBUG -*/ - -#include -#include - -// Geant4 : -#include -#include -#include -#include -#include -#include -#include - -// For G4UI : -#include -//#include -#include - -// Co : -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// Go : -#include -#include - -// G4o : -#include -#include -#include - -#include - -static void ClearClass (); -static OIdentifier* GetPhysicalVolumeIdentifiers (OType); -static int GetPhysicalVolumeProperty (OIdentifier,OType,OProperty,void*,int*); -static ONode RepresentPhysicalVolume (OIdentifier,OType); - -static OIdentifier* GetTrajectoryIdentifiers (OType); -static int GetTrajectoryProperty (OIdentifier,OType,OProperty,void*,int*); -static ONode RepresentTrajectory (OIdentifier,OType); - - -typedef unsigned long Ulong; - -static struct { - void** extent; - G4oScene* g4oScene; - OShell osh; -} Class = {NULL,NULL,NULL}; -/***************************************************************************/ -void ClearClass ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - CListDelete (Class.extent); - Class.extent = NULL; - if(Class.g4oScene!=NULL) delete Class.g4oScene; - Class.g4oScene = NULL; - Class.osh = NULL; -} -/***************************************************************************/ -void G4oAddCommands ( - void* a_osh -) -/***************************************************************************/ -/* - Some G4 commands : - G4> /particle/ - G4> /particle/dump - G4> /particle/Verbose - The definitions of these commands ar in G4o/src/G4oMessenger.cc code. -*/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if(OCommandGetIdentifier("G4")!=NULL) return; /*Done*/ - - GoSetTypes (); - SetTypes (); - - if(OTypeGetIdentifier("PhysicalVolume")==NULL) - { - OType otype; - otype = OTypeCreate ("PhysicalVolume"); - OTypeSetGetIdentifiersFunction (otype,GetPhysicalVolumeIdentifiers); - OTypeSetGetPropertyFunction (otype,GetPhysicalVolumeProperty); - OTypeSetClearClassFunction (otype,ClearClass); - OTypeSetRepresentFunction (otype,(OTypeRepresentFunction)RepresentPhysicalVolume); - OTypeAddNewProperty (otype,"identifier" ,OPropertyUnsignedLong ,NULL); - OTypeAddNewProperty (otype,"name" ,OPropertyString ,NULL); - - otype = OTypeCreate ("Trajectory"); - OTypeSetGetIdentifiersFunction (otype,GetTrajectoryIdentifiers); - OTypeSetGetPropertyFunction (otype,GetTrajectoryProperty); - OTypeSetRepresentFunction (otype, - (OTypeRepresentFunction)RepresentTrajectory); - OTypeAddNewProperty (otype,"identifier" ,OPropertyUnsignedLong,NULL); - OTypeAddNewProperty (otype,"trackID" ,OPropertyInteger ,NULL); - OTypeAddNewProperty (otype,"parentID" ,OPropertyInteger ,NULL); - OTypeAddNewProperty (otype,"particleName",OPropertyString ,NULL); - OTypeAddNewProperty (otype,"charge" ,OPropertyDouble ,NULL); - } - - - OShellAddNewCommand ((OShell)a_osh,"G4o/G4",Execute_G4); - - Class.osh = (OShell)a_osh; -} -/***************************************************************************/ -void G4oExecuteScript ( - char* a_string -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - ExecuteScript (a_string); -} -/***************************************************************************/ -OShell G4oGetShell ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - return Class.osh; -} -/***************************************************************************/ -/***************************************************************************/ -/***************************************************************************/ -/***************************************************************************/ -OIdentifier* GetPhysicalVolumeIdentifiers ( - OType a_type -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - int objn = G4PhysicalVolumeStore::GetInstance()->entries(); -#ifdef DEBUG - printf ("debug: GetPhysicalVolumeIdentifiers : %d objects.\n",objn); -#endif - if(objn<=0) return NULL; - CListDelete (Class.extent); - Class.extent = CListCreate(objn); - if(Class.extent==NULL) return NULL; - for(int count=0;countat((size_t)a_obj-1)->GetName().data())); - return FREE_BLOCK; - } else { - return 0; - } - return 1; -} -/***************************************************************************/ -ONode RepresentPhysicalVolume ( - OIdentifier a_obj -,OType This -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if(This==NULL) return NULL; - - G4VPhysicalVolume* physicalVolume = - G4PhysicalVolumeStore::GetInstance()->at((size_t)a_obj-1); - - if(Class.g4oScene==NULL) { - Class.g4oScene = new G4oScene; - if(Class.g4oScene==NULL) return NULL; - } - - char* string = CStringCreateF (15+64,"PhysicalVolume/%lu",a_obj); - Class.g4oScene->SetNodeName (string); - CStringDelete (string); - - G4ModelingParameters mParams (0, - G4ModelingParameters::wireframe, - true, // Global culling. - true, // Cull invisible volumes. - false, // Density culling. - 0., // Density (not relevant if density - // culling false). - true, // Cull daughters of opaque mothers. - 24); // No of sides (not relevant for - // this operation). - - G4PhysicalVolumeModel model (physicalVolume, - G4PhysicalVolumeModel::UNLIMITED, - G4Transform3D::Identity, - &mParams); - model.DescribeYourselfTo (*Class.g4oScene); - - return Class.g4oScene->GetNode(); -} -/***************************************************************************/ -/***************************************************************************/ -/***************************************************************************/ -OIdentifier* GetTrajectoryIdentifiers ( - OType a_type -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - const G4Event* event = G4RunManager::GetRunManager() -> GetCurrentEvent(); - if(event==NULL) return 0; - G4TrajectoryContainer* trajectoryContainer = event->GetTrajectoryContainer(); - if(trajectoryContainer==NULL) return 0; - int objn = trajectoryContainer->entries(); -#ifdef DEBUG - printf ("debug: GetTrajectoryIdentifiers : event : %lu, %d objects.\n", - event,objn); -#endif - if(objn<=0) return NULL; - CListDelete (Class.extent); - Class.extent = CListCreate(objn); - if(Class.extent==NULL) return NULL; - for(int count=0;count GetCurrentEvent(); - if(event==NULL) return 0; - G4TrajectoryContainer* trajectoryContainer = event->GetTrajectoryContainer(); - if(trajectoryContainer==NULL) return 0; - - G4Trajectory* trajectory = - (G4Trajectory*)((*trajectoryContainer)[(size_t)a_obj-1]); - - if(strcmp(name,"identifier")==0) { - *((Ulong*)a_addr) = (Ulong)a_obj; - } else if(strcmp(name,"trackID")==0) { - *((int*)a_addr) = trajectory->GetTrackID(); - } else if(strcmp(name,"parentID")==0) { - *((int*)a_addr) = trajectory->GetParentID(); - } else if(strcmp(name,"particleName")==0) { - *((char**)a_addr) = CStringDuplicate( - (char*)(trajectory->GetParticleName().data())); - return FREE_BLOCK; - } else if(strcmp(name,"charge")==0) { - *((double*)a_addr) = trajectory->GetCharge(); - } else { - return 0; - } - return 1; -} -/***************************************************************************/ -ONode RepresentTrajectory ( - OIdentifier a_obj -,OType This -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if(This==NULL) return NULL; - const G4Event* event = G4RunManager::GetRunManager() -> GetCurrentEvent(); - if(event==NULL) return NULL; - G4TrajectoryContainer* trajectoryContainer = event->GetTrajectoryContainer(); - if(trajectoryContainer==NULL) return NULL; - G4oDrawer* drawer = G4oDrawer::GetInstance(); - if(drawer==NULL) return NULL; - -#ifdef DEBUG - printf ("debug: RepresentTrajectory : %d.\n",a_obj); -#endif - - ONode node = ONodeCreateF (11+64,"Trajectory/%lu",a_obj); - - drawer->SetNode (node); - G4Trajectory* trajectory = - (G4Trajectory*)((*trajectoryContainer)[(size_t)a_obj-1]); - - trajectory->DrawTrajectory(0); - - return node; -} -#include - - - - - - - diff --git a/environments/OPACS/src/G4oDrawer.cc b/environments/OPACS/src/G4oDrawer.cc deleted file mode 100644 index 40ffcf556f..0000000000 --- a/environments/OPACS/src/G4oDrawer.cc +++ /dev/null @@ -1,232 +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: G4oDrawer.cc,v 1.7 2001/07/11 09:56:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* - From geant4/visualization/management/src/G4VisManager.cc. -*/ -#include - -#include - -/*G4*/ -#include -#include - -/*Go*/ -#include - -G4oDrawer* G4oDrawer::fpInstance = 0; -ONode G4oDrawer::node = NULL; -OColormap G4oDrawer::colormap = NULL; - -/***************************************************************************/ -G4oDrawer* G4oDrawer::GetInstance ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if (!fpInstance) - { - fpInstance = new G4oDrawer; - fpConcreteInstance = fpInstance; - } - return fpInstance; -} -/***************************************************************************/ -G4oDrawer::G4oDrawer ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -G4oDrawer::~G4oDrawer ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::SetWorldVolume ( - G4VPhysicalVolume* world -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::EventBegins ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::EventEnded ( - G4Event * pEvent -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4Polyline& line -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - SetColour (line.GetVisAttributes()->GetColour()); - - G4int nPoints = line.entries (); - if(nPoints<=0) return; - OPointList points = OPointListCreate (nPoints); - for (G4int iPoint = 0; iPoint < nPoints; iPoint++) - { - OPointListSetIthEntry (points,iPoint, - (double)line(iPoint).x(), - (double)line(iPoint).y(), - (double)line(iPoint).z()); - } - if(nPoints==1) - GoAddMarkersToNode (node,points); - else - GoAddLinesToNode (node,points); - OPointListDelete (points); -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4Text& text -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4Circle& circle -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4Square& Square -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4Polymarker& polymarker -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4Polyhedron& polyhedron -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4NURBS& nurbs -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4VSolid& solid -,const G4VisAttributes& attribs -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4LogicalVolume& logicalVol -,const G4VisAttributes& attribs -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::Draw ( - const G4VPhysicalVolume& physicalVol -,const G4VisAttributes& attribs -,const G4Transform3D& objectTransform -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oDrawer::SetNode ( - ONode a_node -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - node = a_node; -} -/***************************************************************************/ -void G4oDrawer::SetColour ( - const G4Colour& a_colour -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if(colormap==NULL) colormap = OColormapGetIdentifier("ocolormap_X"); - int index = OColormapGetRGB_Index(colormap,a_colour.GetRed (), a_colour.GetGreen (), a_colour.GetBlue ()); - OContextSetColorIndex (OContextGetStaticInstance(),index); -} -/***************************************************************************/ -void G4oDrawer::GeometryHasChanged ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} - diff --git a/environments/OPACS/src/G4oScene.cc b/environments/OPACS/src/G4oScene.cc deleted file mode 100644 index c3d7c85295..0000000000 --- a/environments/OPACS/src/G4oScene.cc +++ /dev/null @@ -1,456 +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: G4oScene.cc,v 1.8 2001/07/11 09:56:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* +---------------------- Copyright notice -------------------------------+ */ -/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -/* | Permission to use, copy, modify, and distribute this software | */ -/* | and its documentation for any purpose and without fee is hereby | */ -/* | granted, provided that the above copyright notice appear in all | */ -/* | copies and that both that copyright notice and this permission | */ -/* | notice appear in supporting documentation. This software is | */ -/* | provided "as is" without express or implied warranty. | */ -/* +---------------------- Copyright notice -------------------------------+ */ -/* -#define DEBUG -*/ - -#ifdef DEBUG -#include -#endif - -/*Co*/ -#include -#include -#include - -/*Go*/ -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -ONode G4oScene::node = NULL; -char* G4oScene::nodeName = NULL; -/***************************************************************************/ -G4oScene::G4oScene ( -) -:fpAccTransf(NULL) -,fCurrentDepth(0) -,fpCurrentPV(NULL) -,fpCurrentLV(NULL) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -} -/***************************************************************************/ -G4oScene::~G4oScene ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - CStringDelete (nodeName); - nodeName = NULL; -} -/***************************************************************************/ -void G4oScene::PreAddThis ( - const G4Transform3D& objectTransformation -,const G4VisAttributes& /*visAttribs*/ -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - fpAccTransf = &objectTransformation; -} -/***************************************************************************/ -void G4oScene::PostAddThis ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4oScene::EstablishSpecials ( - G4PhysicalVolumeModel& a_model -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - a_model.DefinePointersToWorkingSpace (&fCurrentDepth, - &fpCurrentPV, - &fpCurrentLV); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Box& box -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : box.\n"); -#endif - AddPolyhedron (box.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Cons& cons -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : cons.\n"); -#endif - AddPolyhedron (cons.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Tubs& tubs -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : tubs.\n"); -#endif - AddPolyhedron (tubs.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Trd& trd -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : trd.\n"); -#endif - AddPolyhedron (trd.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Trap& trap -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : trap.\n"); -#endif - AddPolyhedron (trap.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Sphere& sphere -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : sphere.\n"); -#endif - AddPolyhedron (sphere.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Para& para -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : para.\n"); -#endif - AddPolyhedron (para.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Torus& torus -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : torus.\n"); -#endif - AddPolyhedron (torus.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Polycone& polycone -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : polycone.\n"); -#endif - AddPolyhedron (polycone.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4Polyhedra& polyhedra -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : polyhedra.\n"); -#endif - AddPolyhedron (polyhedra.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::AddThis ( - const G4VSolid& solid -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : solid.\n"); -#endif - AddPolyhedron (solid.CreatePolyhedron()); -} -/***************************************************************************/ -void G4oScene::BeginPrimitives( - const G4Transform3D& objectTransformation -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - //G4VSceneHandler::BeginPrimitives (objectTransformation); -} -/***************************************************************************/ -void G4oScene::EndPrimitives( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - //G4VSceneHandler::EndPrimitives (); -} -/***************************************************************************/ -void G4oScene::AddPrimitive( - const G4Polyline& -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - printf ("debug : AddPrimitive : polyline.\n"); -#endif -} -/***************************************************************************/ -void G4oScene::AddPrimitive( - const G4Text& -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - printf ("debug : AddPrimitive : text.\n"); -#endif -} -/***************************************************************************/ -void G4oScene::AddPrimitive( - const G4Circle& -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - printf ("debug : AddPrimitive : circle.\n"); -#endif -} -/***************************************************************************/ -void G4oScene::AddPrimitive( - const G4Square& -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - printf ("debug : AddPrimitive : square.\n"); -#endif -} -/***************************************************************************/ -void G4oScene::AddPrimitive( - const G4Polymarker& -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - printf ("debug : AddPrimitive : polymarker.\n"); -#endif -} -/***************************************************************************/ -void G4oScene::AddPrimitive( - const G4Polyhedron& -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - printf ("debug : AddPrimitive : polyhedron.\n"); -#endif -} -/***************************************************************************/ -void G4oScene::AddPrimitive( - const G4NURBS& -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - printf ("debug : AddPrimitive : NURBS.\n"); -#endif -} -/***************************************************************************/ -void G4oScene::SetNodeName ( - char* a_name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - CStringDelete (nodeName); - nodeName = CStringDuplicate (a_name); -} -/***************************************************************************/ -ONode G4oScene::GetNode ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - return node; -} -/***************************************************************************/ -void G4oScene::AddPolyhedron ( - G4Polyhedron* a_polyhedron -) -/***************************************************************************/ -/* - Loop to get vertices from G4OpenGLScene::AddPrimitive. -*/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4bool notLastFace; - G4Normal3D SurfaceUnitNormal; - double xs[5]; - double ys[5]; - double zs[5]; -/*.........................................................................*/ -#ifdef DEBUG - printf ("debug : G4oScene::AddPolyhedron : ONode : %s\n",nodeName); -#endif - node = ONodeCreate (nodeName); - do - { - G4int notLastEdge; - G4Point3D vertex; - G4int edgeFlag (true); - int iPoint; - iPoint = 0; - notLastFace = a_polyhedron->GetNextNormal (SurfaceUnitNormal); - do - { - notLastEdge = a_polyhedron->GetNextVertex (vertex, edgeFlag); - xs[iPoint] = vertex.x(); - ys[iPoint] = vertex.y(); - zs[iPoint] = vertex.z(); - iPoint++; - } while (notLastEdge); - if( (iPoint!=3) && (iPoint!=4) ) - { - CWarnF ("G4oScene::AddPolyhedron : not a quad or a triangle : %d\n",iPoint); - } - else - { - if (OContextGetModeling(OContextGetStaticInstance())==OModelingWireFrame) - { - xs[iPoint] = xs[0]; - ys[iPoint] = ys[0]; - zs[iPoint] = zs[0]; - iPoint++; - ONodeAddLines (node,OContextGetStaticInstance(),iPoint,xs,ys,zs); - } - else if (OContextGetModeling(OContextGetStaticInstance())==OModelingSolid) - { - ONodeAddPolygon (node,OContextGetStaticInstance(),iPoint,xs,ys,zs); - } -#ifdef DEBUG - printf ("debug : G4oScene::AddPrimitive : AddLines : %d\n",iPoint); -#endif - } - } while (notLastFace); - - if(fpAccTransf==NULL) { - CWarnF ("G4oScene::AddPolyhedron : no transformation given !\n"); - } else { - G4double g4angle; - G4ThreeVector g4axis; - G4ThreeVector g4trans; - fpAccTransf->getRotation().getAngleAxis(g4angle,g4axis); - g4trans = fpAccTransf->getTranslation(); - OMatrix orot = OMatrixCreate (OMatrixRotationAxis,g4angle,g4axis.x(),g4axis.y(),g4axis.z()); - OMatrix otra = OMatrixCreate (OMatrixTranslation,g4trans.x(),g4trans.y(),g4trans.z()); - OMatrix omatrix = OMatrixMultiply (otra,orot); - ONodeSetMatrix (node,omatrix); - OMatrixDelete (omatrix); - OMatrixDelete (orot); - OMatrixDelete (otra); - } -} diff --git a/environments/OPACS/src/G4oState.cc b/environments/OPACS/src/G4oState.cc deleted file mode 100644 index 40f680994d..0000000000 --- a/environments/OPACS/src/G4oState.cc +++ /dev/null @@ -1,111 +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: G4oState.cc,v 1.8 2002/12/06 16:19:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -//#define DEBUG - -//G4 -#include -#include -#include - -//OPACS -#include -#include - -#include -#include - -/***************************************************************************/ -G4oState::G4oState( - G4String a_name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - name = a_name; - G4UImanager::GetUIpointer()->SetSession(this); //So that Pause works.. -} -/***************************************************************************/ -G4oState::~G4oState( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -G4bool G4oState::Notify ( - G4ApplicationState requestedState -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4StateManager* statM = G4StateManager::GetStateManager(); - G4ApplicationState previousState = statM->GetPreviousState(); - - if(previousState==G4State_Idle && requestedState==G4State_GeomClosed) { - //beginOfRun - G4String string = name; - string += "RunBegin.osh"; - OShellExecuteFile (G4oGetShell(),(char*)string.data()); - } else if(previousState==G4State_GeomClosed && requestedState==G4State_Idle) { - //endOfRun - G4String string = name; - string += "RunEnd.osh"; - OShellExecuteFile (G4oGetShell(),(char*)string.data()); - } else if(previousState==G4State_GeomClosed && requestedState==G4State_EventProc) { - //beginOfEvent - G4String string = name; - string += "EventBegin.osh"; - OShellExecuteFile (G4oGetShell(),(char*)string.data()); - } else if(previousState==G4State_EventProc && requestedState==G4State_GeomClosed) { - // EndOfEvent - G4String string = name; - string += "EventEnd.osh"; - OShellExecuteFile (G4oGetShell(),(char*)string.data()); - } - - return true; -} -/***************************************************************************/ -void G4oState::PauseSessionStart ( - G4String a_message -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if(a_message=="G4_pause> ") { - WoProcessEvents (); - } -} - - - - - - - - - diff --git a/environments/OPACS/usr/EXPO.odb b/environments/OPACS/usr/EXPO.odb deleted file mode 100644 index 42ee9e61cd..0000000000 --- a/environments/OPACS/usr/EXPO.odb +++ /dev/null @@ -1,277 +0,0 @@ -!/* +---------------------- Copyright notice -------------------------------+ */ -!/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -!/* | Permission to use, copy, modify, and distribute this software | */ -!/* | and its documentation for any purpose and without fee is hereby | */ -!/* | granted, provided that the above copyright notice appear in all | */ -!/* | copies and that both that copyright notice and this permission | */ -!/* | notice appear in supporting documentation. This software is | */ -!/* | provided "as is" without express or implied warranty. | */ -!/* +---------------------- Copyright notice -------------------------------+ */ -!---------------------------- -begin OInterface - prefix = EXPO_ - resources = \ -Wo**XoCamera.borderWidth:3\ -Wo*shell_view_panel*XoCamera.borderColor:dimgrey - createCallback = osh>\ - #G4 /init/all\ - G4 '/run/initialize all'\ - G4 '/tracking/storeTrajectory 1'\ - G4 '/gun/particle e-'\ - #G4 '/gun/particle pi+'\ - G4 '/gun/direction 0.1 1 0'\ - G4 '/gun/energy 1 GeV'\ - create OHistogram name HepJamesRandom1 dimension 1 xAxisTitle James xAxisNumberOfBins 100 xAxisMinimum 0 xAxisMaximum 1 | empty\ - create OHistogram name HepJamesVsDRand48 dimension 2 xAxisTitle James xAxisNumberOfBins 40 xAxisMinimum 0 xAxisMaximum 1 yAxisTitle DRand48 yAxisNumberOfBins 40 yAxisMinimum 0 yAxisMaximum 1 | empty -end -!---------------------------- -begin OWidget - name = EXPO_1 - type = TopLevelShell - children = EXPO_9 - mappedWhenManaged = true - geometry = 700x500+0+0 - title = Visualization GEANT4 EXPO -end -!---------------------------- -begin OWidget - name = EXPO_9 - type = XmForm - children = EXPO_4 EXPO_form -end -!---------------------------- -begin OWidget - name = EXPO_4 - type = XmMenuBar - children = EXPO_5 EXPO_6 EXPO_EXPO_casc EXPO_EXPO_pdm EXPO_g4_casc EXPO_g4_pdm Vis3d_casc do Wo sendExitOnly -end -!---------------------------- -begin OWidget - name = EXPO_form - type = XmForm - children = EXPO_camera EXPO_plot1 EXPO_plot2 - background = grey - topAttachment = attach_widget - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_form - topWidget = EXPO_4 -end -!---------------------------- -begin OWidget - name = EXPO_camera - type = XoCamera - viewLimits = -2000. 2000. -! depthTreatment = zbuffer - createCallback = osh>\ - set Widget target `thisWidget`\ - camera=`thisCamera`\ - #EXPO\ - setWidgetResource EXPO_camera viewLimits '-2000. 2000.'\ - set OContext color pink; collect PhysicalVolume where name eq WorldPhys | represent - | viewNode - $camera\ - set OContext color pink; collect PhysicalVolume where name eq CalorPhys | represent - | viewNode - $camera\ - set OContext modeling wire_frame\ - set OContext color lightgrey; collect PhysicalVolume where name eq ChambPhys | represent - | viewNode - $camera - background = black - collectCallback = osh> getCameraNodes `thisCamera` | collect ONode where highlight eq 1 | get - name | dump - - topAttachment = attach_form - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_position - rightPosition = 60 -end -!---------------------------- -begin OWidget - name = EXPO_plot1 - type = XoPlotter - topAttachment = attach_form - leftAttachment = attach_widget - leftWidget = EXPO_camera - rightAttachment = attach_form - bottomAttachment = attach_position - bottomPosition = 50 - plottedObjects = HepJamesRandom1 -end -!---------------------------- -begin OWidget - name = EXPO_plot2 - type = XoPlotter - topAttachment = attach_widget - topWidget = EXPO_plot1 - bottomAttachment = attach_form - leftAttachment = attach_widget - leftWidget = EXPO_camera - rightAttachment = attach_form - plottedObjects = HepJamesVsDRand48 - valueColorMapping = black 0.05 red 0.1 blue -end -!---------------------------- -begin OWidget - name = shell_view_panel - type = XmFormDialog - children = shell_view - dialogTitle = Shell view -end -!---------------------------- -begin OWidget - name = shell_view - type = XoCamera - background = black - referenceCamera = EXPO_camera - collectCallback = osh> getCameraNodes `thisCamera` | collect ONode where highlight eq 1 | get - name | dump - - topAttachment = attach_form - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_form -end -!---------------------------- -begin OWidget - name = EXPO_g4ui - type = XmPushButton - labelString = G4 commands - activateCallback = osh> load g4ui.odb | realize -;manageWidget g4ui_palette;raiseWidget g4ui_palette_popup -end -!---------------------------- -begin OWidget - name = EXPO_command_chooser - type = XmPushButton - labelString = G4 command chooser - activateCallback = osh> load G4Cmds.odb | realize - ;manageWidget G4Cmds_palette;raiseWidget G4Cmds_palette_popup -end -!---------------------------- -begin OWidget - name = EXPO_G4PV - type = XmPushButton - labelString = G4 volume chooser - activateCallback = osh> load G4PV.odb | realize - ;manageWidget G4PV_palette;raiseWidget G4PV_palette_popup -end -!---------------------------- -begin OWidget - name = EXPO_osh - type = XmPushButton - labelString = osh commands - activateCallback = osh> load osh.odb | realize -;manageWidget osh_palette;raiseWidget osh_palette_popup -end -!---------------------------- -begin OWidget - name = EXPO_g4_casc - type = XmCascadeButton - background = lightgrey - labelString = G4 - subMenuId = EXPO_g4_pdm -end -!---------------------------- -begin OWidget - name = EXPO_g4_pdm - type = XmPulldownMenu - children = EXPO_g4ui EXPO_command_chooser EXPO_G4PV EXPO_osh EXPO_tracking_verbose - background = lightgrey -end -!---------------------------- -begin OWidget - name = EXPO_tracking_verbose - type = XmToggleButton - labelString = Tracking verbose on/off - valueChangedCallback = osh>\ - test `getWidgetResource EXPO_tracking_verbose set` eq true && G4 '/tracking/verbose 2'\ - test `getWidgetResource EXPO_tracking_verbose set` eq false && G4 '/tracking/verbose' -end -!---------------------------- -begin OWidget - name = EXPO_EXPO_casc - type = XmCascadeButton - background = lightgrey - labelString = EXPO - subMenuId = EXPO_EXPO_pdm -end -!---------------------------- -begin OWidget - name = EXPO_EXPO_pdm - type = XmPulldownMenu - children = EXPO_startRun EXPO_nextEvent EXPO_abortRun -!EXPO_cyclic - background = lightgrey -end -!---------------------------- -begin OWidget - name = EXPO_startRun - type = XmPushButton - labelString = Start run - createCallback = osh> setWidgetResource EXPO_nextEvent sensitive False - activateCallback = &osh>\ - setWidgetResource EXPO_exit sensitive False\ - setWidgetResource EXPO_startRun sensitive False\ - setWidgetResource EXPO_nextEvent sensitive True\ - setWidgetResource EXPO_abortRun sensitive True\ - eventn=`ask 'Number of event' 10`\ - string=`printf '/run/beamOn %s' $eventn`\ - G4 $string\ - setWidgetResource EXPO_exit sensitive True\ - setWidgetResource EXPO_startRun sensitive True\ - setWidgetResource EXPO_nextEvent sensitive False\ - setWidgetResource EXPO_abortRun sensitive False -end -!---------------------------- -!begin OWidget -! name = EXPO_cyclic -! type = XmPushButton -! labelString = Cyclic -! createCallback = osh> setWidgetResource EXPO_nextEvent sensitive False -! activateCallback = osh>\ -! isValid OCyclic/auto_next && delete OCyclic/auto_next\ -! delay=`ask delay(msec) 1000`\ -! script='G4> /run/beamOn 1'\ -! create OCyclic name auto_next widget `thisWidget` delay $delay script $script\ -! do OCyclic/auto_next start -!end -!---------------------------- -begin OWidget - name = EXPO_nextEvent - type = XmPushButton - labelString = Next event - activateCallback = osh> do Wo sendExitOnly -end -!---------------------------- -begin OWidget - name = EXPO_abortRun - type = XmPushButton - labelString = Abort run - createCallback = osh>\ - setWidgetResource EXPO_nextEvent sensitive False\ - setWidgetResource EXPO_abortRun sensitive False - activateCallback = osh>\ - G4 /run/abort\ - do Wo sendExitOnly -end - - diff --git a/environments/OPACS/usr/EXPO_EventBegin.osh b/environments/OPACS/usr/EXPO_EventBegin.osh deleted file mode 100644 index 181293e19c..0000000000 --- a/environments/OPACS/usr/EXPO_EventBegin.osh +++ /dev/null @@ -1 +0,0 @@ -#echo 'notify : begin of event.' diff --git a/environments/OPACS/usr/EXPO_EventEnd.osh b/environments/OPACS/usr/EXPO_EventEnd.osh deleted file mode 100644 index ba31e2c97e..0000000000 --- a/environments/OPACS/usr/EXPO_EventEnd.osh +++ /dev/null @@ -1,9 +0,0 @@ -#echo 'notify : end of event.' -collect ONode where name eq Trajectory* | delete - -#collect Trajectory | dump - -# Color of a trajectory is decided, according to charge, in representation code. -# red -; blue +; green neutral -#set OContext markerStyle cross -collect Trajectory | represent - | viewNode - EXPO_camera -# Enter in a secondary loop -do Wo processEvents \ No newline at end of file diff --git a/environments/OPACS/usr/EXPO_RunBegin.osh b/environments/OPACS/usr/EXPO_RunBegin.osh deleted file mode 100644 index 355c41525b..0000000000 --- a/environments/OPACS/usr/EXPO_RunBegin.osh +++ /dev/null @@ -1 +0,0 @@ -#echo 'notify : begin of run.' diff --git a/environments/OPACS/usr/EXPO_RunEnd.osh b/environments/OPACS/usr/EXPO_RunEnd.osh deleted file mode 100644 index c530bb7fd9..0000000000 --- a/environments/OPACS/usr/EXPO_RunEnd.osh +++ /dev/null @@ -1,3 +0,0 @@ -#echo 'notify : end of run.' -updatePlot EXPO_plot1 -updatePlot EXPO_plot2 diff --git a/environments/OPACS/usr/EXPO_Xaw.odb b/environments/OPACS/usr/EXPO_Xaw.odb deleted file mode 100644 index 73af08cf22..0000000000 --- a/environments/OPACS/usr/EXPO_Xaw.odb +++ /dev/null @@ -1,189 +0,0 @@ -!/* +---------------------- Copyright notice -------------------------------+ */ -!/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -!/* | Permission to use, copy, modify, and distribute this software | */ -!/* | and its documentation for any purpose and without fee is hereby | */ -!/* | granted, provided that the above copyright notice appear in all | */ -!/* | copies and that both that copyright notice and this permission | */ -!/* | notice appear in supporting documentation. This software is | */ -!/* | provided "as is" without express or implied warranty. | */ -!/* +---------------------- Copyright notice -------------------------------+ */ -!---------------------------- -begin OInterface - prefix = EXPO_ - resources = \ -Wo*XoCamera.borderWidth:3 - createCallback = G4>\ - /init/all\ - /tracking/storeTrajectory 1\ - #/gun/particle gamma\ - #/gun/particle geantino\ - /gun/particle e-\ - /gun/direction 0.1 1 0\ - /gun/energy 1 GeV\ - #/particle/dump\ - #/event/verbose 1\ - #/tracking/verbose 1 -end -!---------------------------- -begin OWidget - name = EXPO_1 - type = TopLevelShell - children = EXPO_9 - mappedWhenManaged = true - geometry = 500x500+0+0 - title = Visualization GEANT4 -end -!---------------------------- -begin OWidget - name = EXPO_9 - type = Form - children = EXPO_4 EXPO_camera -end -!---------------------------- -begin OWidget - name = EXPO_4 - type = Box - children = EXPO_5 EXPO_EXPO_casc EXPO_g4_casc - background = lightgrey - top = chaintop - left = chainleft - right = chainright -! bottom = chainbottom - resizable = true - horizDistance = 1 - vertDistance = 1 -end -!---------------------------- -begin OWidget - name = EXPO_5 - type = MenuButton - background = lightgrey - label = File - menuName = EXPO_6 - children = EXPO_6 -end -!---------------------------- -begin OWidget - name = EXPO_6 - type = SimpleMenu - mappedWhenManaged = false - children = EXPO_exit - background = lightgrey -end -!---------------------------- -begin OWidget - name = EXPO_exit - type = SmeBSB - label = Exit - callback = osh> do Wo sendExitOnly -end -!---------------------------- -begin OWidget - name = EXPO_camera - type = XoCamera -! depthTreatment = zbuffer - createCallback = osh>\ - set Widget target `thisWidget`\ - camera=`thisCamera`\ - # EXPO\ - setWidgetResource EXPO_camera viewLimits '-2000. 2000.'\ - set OContext color pink; collect PhysicalVolume where name eq WorldPhys | represent - | viewNode - $camera\ - set OContext color pink; collect PhysicalVolume where name eq CalorPhys | represent - | viewNode - $camera\ - set OContext modeling wire_frame\ - set OContext color lightgrey; collect PhysicalVolume where name eq ChambPhys | represent - | viewNode - $camera - background = black - collectCallback = osh> getCameraNodes `thisCamera` | collect ONode where highlight eq 1 | get - name | dump - - vertDistance = 1 - fromVert = EXPO_4 - height = 1000 - left = chainleft - right = chainright - bottom = chainbottom - horizDistance = 1 -end -!---------------------------- -begin OWidget - name = EXPO_g4_casc - type = MenuButton - background = lightgrey - label = G4 - menuName = EXPO_g4_pdm - children = EXPO_g4_pdm -end -!---------------------------- -begin OWidget - name = EXPO_g4_pdm - type = SimpleMenu - mappedWhenManaged = false - children = EXPO_particles - background = lightgrey -end -!---------------------------- -begin OWidget - name = EXPO_particles - type = SmeBSB - label = Particle dump - callback = G4> /particle/dump -end -!---------------------------- -begin OWidget - name = EXPO_EXPO_casc - type = MenuButton - background = lightgrey - label = EXPO - menuName = EXPO_EXPO_pdm - children = EXPO_EXPO_pdm -end -!---------------------------- -begin OWidget - name = EXPO_EXPO_pdm - type = SimpleMenu - mappedWhenManaged = false - children = EXPO_startRun EXPO_nextEvent EXPO_abortRun - background = lightgrey -end -!---------------------------- -begin OWidget - name = EXPO_startRun - type = SmeBSB - label = Start run - createCallback = osh> setWidgetResource EXPO_nextEvent sensitive False -! SmeBSB is a gadget then &osh> crashes. - callback = osh>\ - setWidgetResource EXPO_exit sensitive False\ - setWidgetResource EXPO_startRun sensitive False\ - setWidgetResource EXPO_nextEvent sensitive True\ - setWidgetResource EXPO_abortRun sensitive True\ - #eventn=`ask 'Number of event' 10`\ - eventn='10'\ - string=`printf '/run/beamOn %s' $eventn`\ - G4 $string\ - setWidgetResource EXPO_exit sensitive True\ - setWidgetResource EXPO_startRun sensitive True\ - setWidgetResource EXPO_nextEvent sensitive False\ - setWidgetResource EXPO_abortRun sensitive False -end -!---------------------------- -begin OWidget - name = EXPO_nextEvent - type = SmeBSB - label = Next event - callback = osh> do Wo sendExitOnly -end -!---------------------------- -begin OWidget - name = EXPO_abortRun - type = SmeBSB - label = Abort run - createCallback = osh>\ - setWidgetResource EXPO_nextEvent sensitive False\ - setWidgetResource EXPO_abortRun sensitive False - callback = osh>\ - G4 /run/abort\ - do Wo sendExitOnly -end - - - - - diff --git a/environments/OPACS/usr/G4Cmds.odb b/environments/OPACS/usr/G4Cmds.odb deleted file mode 100644 index 8afaa9c4d7..0000000000 --- a/environments/OPACS/usr/G4Cmds.odb +++ /dev/null @@ -1,186 +0,0 @@ -!---------------------------- -begin OInterface - prefix = G4Cmds_ -end -!---------------------------- -begin OWidget - name = G4Cmds_palette - type = XmFormDialog - children = G4Cmds_get_list G4Cmds_path G4Cmds_up G4Cmds_frame_dirs G4Cmds_frame_hists G4Cmds_label G4Cmds_edit G4Cmds_dump G4Cmds_cancel G4Cmds_update - autoUnmanage = False - dialogTitle = G4 command chooser - mapCallback = osh> callWidgetCallbacks G4Cmds_get_list activateCallback -end -!---------------------------- -begin OWidget - name = G4Cmds_get_list - type = XmPushButton - labelString = Update list - leftAttachment = attach_form - rightAttachment = attach_form - topAttachment = attach_form - activateCallback = osh>\ - list=`do G4 askListOfCommands | cutStringBegin - 1`\ - setWidgetResource G4Cmds_update value $list\ - setWidgetResource G4Cmds_path value ''\ - callWidgetCallbacks G4Cmds_update activateCallback -end -!---------------------------- -begin OWidget - name = G4Cmds_path - type = XmText - leftAttachment = attach_form - rightAttachment = attach_form - topAttachment = attach_form - topAttachment = attach_widget - topWidget = G4Cmds_get_list -end -!---------------------------- -begin OWidget - name = G4Cmds_update - type = XmText - editMode = multi_line_edit - activateCallback = osh>\ - setWidgetResource G4Cmds_dirs selectedItems ''\ - setWidgetResource G4Cmds_objs selectedItems ''\ - path=`getWidgetResource G4Cmds_path value`\ - test $path ne '' && path=`printf '%s/' $path`\ - lpath=`getStringLength $path`\ - pattern=`printf '%s*' $path`\ - list=`getWidgetResource G4Cmds_update value | matchString - $pattern | cutStringBegin - $lpath`\ - pattern=`printf '*/*' `\ - dirs=`matchString $list $pattern | getStringWord - 1 '/' | removeDuplicates - | sort - `\ - objs=`matchString $list $pattern no | removeDuplicates - | sort -`\ - test $dirs eq '' && setWidgetResource G4Cmds_dirs items ''\ - test $dirs ne '' && setWidgetResource G4Cmds_dirs items $dirs\ - test $objs eq '' && setWidgetResource G4Cmds_objs items ''\ - test $objs ne '' && setWidgetResource G4Cmds_objs items $objs -end -!---------------------------- -begin OWidget - name = G4Cmds_up - type = XmPushButton - labelString = Up directory - topAttachment = attach_widget - topWidget = G4Cmds_path - leftAttachment = attach_form - rightAttachment = attach_form - activateCallback = osh>\ - path=`getWidgetResource G4Cmds_path value`\ - path=`removeLastStringWord $path '/'`\ - setWidgetResource G4Cmds_path value $path\ - callWidgetCallbacks G4Cmds_update activateCallback -end -!---------------------------- -begin OWidget - name = G4Cmds_frame_dirs - type = XmFrame - children = G4Cmds_dirs - topAttachment = attach_widget - topWidget = G4Cmds_up - leftAttachment = attach_form - rightAttachment = attach_position - rightPosition = 50 - bottomAttachment = attach_widget - bottomWidget = G4Cmds_label -end -!---------------------------- -begin OWidget - name = G4Cmds_dirs - type = XmScrolledList - background = lightgrey - visibleItemCount = 10 - selectionPolicy = single_select - scrollBarDisplayPolicy = static - listSizePolicy = constant - singleSelectionCallback = osh>\ - string=`getWidgetResource G4Cmds_dirs selectedItems`\ - test $string eq '' && exit \ - path=`getWidgetResource G4Cmds_path value`\ - #path=`removeLastStringWord $path '/'`\ - #setWidgetResource G4Cmds_path value $path\ - test $path ne '' && appendText G4Cmds_path '/'\ - appendText G4Cmds_path $string\ - callWidgetCallbacks G4Cmds_update activateCallback -end -!---------------------------- -begin OWidget - name = G4Cmds_frame_hists - type = XmFrame - children = G4Cmds_objs - topAttachment = attach_widget - topWidget = G4Cmds_up - leftAttachment = attach_widget - leftWidget = G4Cmds_frame_dirs - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4Cmds_label -end -!---------------------------- -begin OWidget - name = G4Cmds_objs - type = XmScrolledList - background = lightgrey - visibleItemCount = 10 - selectionPolicy = single_select - listSizePolicy = constant - scrollBarDisplayPolicy = static -end -!---------------------------- -begin OWidget - name = G4Cmds_label - type = XmLabel - labelString = Operations - leftAttachment = attach_form - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4Cmds_edit - background = black - foreground = white -end -!---------------------------- -begin OWidget - name = G4Cmds_edit - type = XmPushButton - labelString = Edit - leftAttachment = attach_form - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4Cmds_dump - activateCallback = &osh>\ - path=`getWidgetResource G4Cmds_path value`\ - obj=`getWidgetResource G4Cmds_objs selectedItems`\ - string=`printf '/%s/%s' $path $obj`\ - name='G4Params.odb'\ - do G4 createCommandPanel $string $name\ - odb=`collect OInterface where dataBaseName eq $name`\ - isValid $odb && destroy $odb\ - load $name | realize - ;manageWidget G4Params_palette;raiseWidget G4Params_palette_popup -end -!---------------------------- -begin OWidget - name = G4Cmds_dump - type = XmPushButton - labelString = Guidance - leftAttachment = attach_form - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4Cmds_cancel - activateCallback = &osh>\ - path=`getWidgetResource G4Cmds_path value`\ - obj=`getWidgetResource G4Cmds_objs selectedItems`\ - string=`printf '/%s/%s' $path $obj`\ - echo `do G4 getCommandGuidance $string` -end -!---------------------------- -begin OWidget - name = G4Cmds_cancel - type = XmPushButton - labelString = Cancel - activateCallback = osh> unmanageWidget `thisWidgetParent` - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_form -end - - diff --git a/environments/OPACS/usr/G4PV.odb b/environments/OPACS/usr/G4PV.odb deleted file mode 100644 index 4f2a1afa53..0000000000 --- a/environments/OPACS/usr/G4PV.odb +++ /dev/null @@ -1,120 +0,0 @@ -!/* +---------------------- Copyright notice -------------------------------+ */ -!/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -!/* | Permission to use, copy, modify, and distribute this software | */ -!/* | and its documentation for any purpose and without fee is hereby | */ -!/* | granted, provided that the above copyright notice appear in all | */ -!/* | copies and that both that copyright notice and this permission | */ -!/* | notice appear in supporting documentation. This software is | */ -!/* | provided "as is" without express or implied warranty. | */ -!/* +---------------------- Copyright notice -------------------------------+ */ -!---------------------------- -begin OInterface - prefix = G4PV_ - packages = Xm -end -!---------------------------- -begin OWidget - name = G4PV_palette - type = XmFormDialog - children = G4PV_7 G4PV_11 G4PV_erase G4PV_atbs G4PV_14 G4PV_draw G4PV_draw_all - autoUnmanage = False - dialogTitle = GEANT -end -!---------------------------- -begin OWidget - name = G4PV_7 - type = XmPushButton - labelString = Update list - leftAttachment = attach_form - rightAttachment = attach_form - topAttachment = attach_form - activateCallback = osh> collect PhysicalVolume | get - name | removeDuplicates - | setWidgetResource G4PV_list items - -end -!---------------------------- -begin OWidget - name = G4PV_11 - type = XmFrame - children = G4PV_list - topAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4PV_erase - topAttachment = attach_widget - topWidget = G4PV_7 -end -!---------------------------- -begin OWidget - name = G4PV_list - type = XmScrolledList - background = lightgrey - visibleItemCount = 5 - selectionPolicy = single_select - scrollBarDisplayPolicy = static -end -!---------------------------- -begin OWidget - name = G4PV_erase - type = XmPushButton - labelString = Erase (in target) - leftAttachment = attach_form - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4PV_draw - activateCallback = osh>\ - widget=`get Widget target`\ - camera=`get $widget name`\ - name=`getWidgetResource G4PV_list selectedItems`\ - string=`collect PhysicalVolume where name eq $name`\ - getCameraNodes $camera | collect ONode where name in $string | delete - -end -!---------------------------- -begin OWidget - name = G4PV_draw - type = XmPushButton - labelString = Draw (in target) - leftAttachment = attach_form - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4PV_draw_all - activateCallback = osh>\ - widget=`get Widget target`\ - camera=`get $widget name`\ - collect PhysicalVolume where name eq `getWidgetResource G4PV_list selectedItems` | represent - | viewNode - $camera -end -!---------------------------- -begin OWidget - name = G4PV_draw_all - type = XmPushButton - labelString = Draw all (in target) - leftAttachment = attach_form - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4PV_atbs - activateCallback = osh>\ - widget=`get Widget target`\ - camera=`get $widget name`\ - collect PhysicalVolume | represent - | viewNode - $camera -end -!---------------------------- -begin OWidget - name = G4PV_atbs - type = XmPushButton - labelString = Atbs - leftAttachment = attach_form - rightAttachment = attach_form - bottomAttachment = attach_widget - bottomWidget = G4PV_14 - labelString = Attributs - activateCallback = osh> load OContext.odb| realize -;do Widget/OContext_palette manage;do Widget/OContext_palette_popup raise -end -!---------------------------- -begin OWidget - name = G4PV_14 - type = XmPushButton - labelString = Cancel - activateCallback = osh> do `get Widget thisParent` unmanage - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_form -end diff --git a/environments/OPACS/usr/G4oWo.odb b/environments/OPACS/usr/G4oWo.odb deleted file mode 100644 index efef829fac..0000000000 --- a/environments/OPACS/usr/G4oWo.odb +++ /dev/null @@ -1,223 +0,0 @@ -!---------------------------- -begin OInterface - prefix = Wo_ - packages = Xm -end -!---------------------------- -begin OWidget - name = Wo_casc - type = XmCascadeButton - background = lightgrey - labelString = Wo - mnemonic = O - subMenuId = Wo_pull -end -!---------------------------- -begin OWidget - name = Wo_pull - type = XmPulldownMenu - children = Wo_490 Wo_otype Wo_osh Wo_431 Wo_461 Wo_462 Wo_491 Wo_467 Wo_fit - background = lightgrey -end -!---------------------------- -begin OWidget - name = Wo_490 - type = XmCascadeButton - background = lightgrey - labelString = Interface - mnemonic = I - subMenuId = Wo_491 -end -!---------------------------- -begin OWidget - name = Wo_otype - type = XmPushButton - labelString = Instances - activateCallback = osh> load OType.odb | realize -;manageWidget OType_palette;raiseWidget OType_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_osh - type = XmPushButton - labelString = osh - activateCallback = osh> load osh.odb | realize -;manageWidget osh_palette;raiseWidget osh_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_431 - type = XmPushButton - background = lightgrey -! labelType = pixmap - labelPixmap = book.xpm - labelString = Help - mnemonic = H - accelerator = Ctrlh - acceleratorText = Ctrl/h - activateCallback = osh>\ - load Help.odb | realize -\ - manageWidget Help_palette;raiseWidget Help_palette_popup\ - showTopic Help_help 'Wo.htm' -end -!---------------------------- -begin OWidget - name = Wo_461 - type = XmPushButton - background = lightgrey -! labelType = pixmap - labelPixmap = Print.xpm - labelString = Print - mnemonic = P - accelerator = Ctrlp - acceleratorText = Ctrl/p - activateCallback = osh> load CPS.odb | realize -; manageWidget CPS_palette;raiseWidget CPS_palette_popup -! activateCallback = osh> load Visps.odb | realize -; manageWidget Visps_palette;raiseWidget Visps_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_462 - type = XmPushButton - labelString = XoCamera - activateCallback = osh> load XoCamera.odb | realize -; manageWidget XoCamera_palette;;raiseWidget XoCamera_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_491 - type = XmPulldownMenu - children = Wo_482 Wo_496 Wo_492 Wo_460 Wo_487 Wo_474 Wo_480 Wo_MenuBar Wo_481 Wo_494 Wo_493 Wo_463 Wo_483 Wo_471 - background = lightgrey -end -!---------------------------- -begin OWidget - name = Wo_482 - type = XmPushButton - labelString = Save interface - mnemonic = S - accelerator = Ctrls - acceleratorText = Ctrl/s - activateCallback = osh> do Wo saveInterface -end -!---------------------------- -begin OWidget - name = Wo_496 - type = XmPushButton - labelString = Reload interface - accelerator = Ctrll - acceleratorText = Ctrl/l - activateCallback = &osh> \ - fname=`get Wo interfaceFile`\ - collect OInterface where dataBaseName eq $fname | destroy -\ - load $fname | realize - -end -!---------------------------- -begin OWidget - name = Wo_492 - type = XmSeparator - background = lightgrey -end -!---------------------------- -begin OWidget - name = Wo_460 - type = XmPushButton - labelString = Widget - mnemonic = W - accelerator = Ctrlw - acceleratorText = Ctrl/w - activateCallback = osh> load Widget.odb | realize -; manageWidget Widget_palette;raiseWidget Widget_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_487 - type = XmPushButton - labelString = New widget - mnemonic = N - accelerator = Ctrln - acceleratorText = Ctrl/n - activateCallback = osh> load Create.odb | realize -; manageWidget Create_palette;raiseWidget Create_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_MenuBar - type = XmPushButton - labelString = Edit menu bar - activateCallback = osh> load MenuBar.odb | realize -; manageWidget MenuBar_palette;raiseWidget MenuBar_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_474 - type = XmPushButton - labelString = Resource - mnemonic = R - accelerator = Ctrlr - acceleratorText = Ctrl/r - activateCallback = osh> load ResEd.odb | realize -; manageWidget ResEd_palette;raiseWidget ResEd_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_480 - type = XmPushButton - labelString = Attachment - mnemonic = A - accelerator = Ctrla - acceleratorText = Ctrl/a - activateCallback = osh> load Attach.odb | realize -; manageWidget Attach_palette;raiseWidget Attach_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_481 - type = XmPushButton - labelString = Compound - accelerator = Ctrlc - acceleratorText = Ctrl/c - activateCallback = osh> load Compound.odb | realize -; manageWidget Compound_palette;raiseWidget Compound_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_494 - type = XmPushButton - labelString = odb files - accelerator = Ctrlo - acceleratorText = Ctrl/o - activateCallback = osh> load OInterf.odb | realize -; manageWidget OInterface_palette;raiseWidget OInterface_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_493 - type = XmPushButton - labelString = Save pixmap - activateCallback = osh> load Pixmap.odb | realize -; manageWidget Pixmap_palette;raiseWidget Pixmap_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_463 - type = XmPushButton - labelString = Mailbox - activateCallback = osh> load XMailbox.odb | realize -; manageWidget XMailbox_palette;raiseWidget XMailbox_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_483 - type = XmPushButton - labelString = Ci - activateCallback = osh> load Ci.odb | realize -; manageWidget Ci_palette;raiseWidget Ci_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_471 - type = XmPushButton - labelString = Wo toolkit - activateCallback = osh> load Sys.odb | realize -; manageWidget Sys_palette;raiseWidget Sys_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_467 - type = XmPushButton - labelString = XoPlotter - activateCallback = osh> load Plotter.odb | realize -; manageWidget Plotter_palette;raiseWidget Plotter_palette_popup -end -!---------------------------- -begin OWidget - name = Wo_fit - type = XmPushButton - labelString = Fit - activateCallback = osh> load Fit.odb | realize -; manageWidget Fit_palette;raiseWidget Fit_palette_popup -end diff --git a/environments/OPACS/usr/TEST.odb b/environments/OPACS/usr/TEST.odb deleted file mode 100644 index 3680c5d322..0000000000 --- a/environments/OPACS/usr/TEST.odb +++ /dev/null @@ -1,330 +0,0 @@ -!/* +---------------------- Copyright notice -------------------------------+ */ -!/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -!/* | Permission to use, copy, modify, and distribute this software | */ -!/* | and its documentation for any purpose and without fee is hereby | */ -!/* | granted, provided that the above copyright notice appear in all | */ -!/* | copies and that both that copyright notice and this permission | */ -!/* | notice appear in supporting documentation. This software is | */ -!/* | provided "as is" without express or implied warranty. | */ -!/* +---------------------- Copyright notice -------------------------------+ */ -!---------------------------- -begin OInterface - prefix = TEST_ - resources = \ -Wo**XoCamera.borderWidth:3\ -Wo*shell_view_panel*XoCamera.borderColor:dimgrey - createCallback = osh>\ - create OHistogram name HepJamesRandom1 dimension 1 xAxisTitle James xAxisNumberOfBins 100 xAxisMinimum 0 xAxisMaximum 1 | empty\ - create OHistogram name HepJamesVsDRand48 dimension 2 xAxisTitle James xAxisNumberOfBins 40 xAxisMinimum 0 xAxisMaximum 1 yAxisTitle DRand48 yAxisNumberOfBins 40 yAxisMinimum 0 yAxisMaximum 1 | empty -end -!---------------------------- -begin OWidget - name = TEST_1 - type = TopLevelShell - children = TEST_9 - mappedWhenManaged = true - geometry = 700x500+0+0 - title = Visualization GEANT4 TEST19 -end -!---------------------------- -begin OWidget - name = TEST_9 - type = XmForm - children = TEST_4 TEST_form -end -!---------------------------- -begin OWidget - name = TEST_4 - type = XmMenuBar - children = TEST_5 TEST_6 TEST_TEST_casc TEST_TEST_pdm TEST_g4_casc TEST_g4_pdm Vis3d_casc do Wo sendExitOnly -end -!---------------------------- -begin OWidget - name = TEST_form - type = XmForm - children = TEST_camera TEST_plot1 TEST_plot2 - background = grey - topAttachment = attach_widget - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_form - topWidget = TEST_4 -end -!---------------------------- -begin OWidget - name = TEST_camera - type = XoCamera - viewLimits = -2000. 2000. -! depthTreatment = zbuffer - userCallback = osh>\ - set Widget target `thisWidget`\ - camera=`thisCamera`\ - set OContext color grey\ - # For detector 4\ - collect PhysicalVolume where name eq calo_phys | represent - | viewNode - $camera\ - set OContext color grey\ - collect PhysicalVolume where name eq tracker_phys | represent - | viewNode - $camera\ - # For detector 5 (ATLAS)\ - collect PhysicalVolume where name eq ATLexpHall_P | represent - | viewNode - $camera\ - getCameraNodes $camera | normalizeNode - $camera - background = black - collectCallback = osh> getCameraNodes `thisCamera` | collect ONode where highlight eq 1 | get - name | dump - - topAttachment = attach_form - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_position - rightPosition = 60 -end -!---------------------------- -begin OWidget - name = TEST_plot1 - type = XoPlotter - topAttachment = attach_form - leftAttachment = attach_widget - leftWidget = TEST_camera - rightAttachment = attach_form - bottomAttachment = attach_position - bottomPosition = 50 - plottedObjects = HepJamesRandom1 -end -!---------------------------- -begin OWidget - name = TEST_plot2 - type = XoPlotter - topAttachment = attach_widget - topWidget = TEST_plot1 - bottomAttachment = attach_form - leftAttachment = attach_widget - leftWidget = TEST_camera - rightAttachment = attach_form - plottedObjects = HepJamesVsDRand48 - valueColorMapping = black 0.05 red 0.1 blue -end -!---------------------------- -begin OWidget - name = shell_view_panel - type = XmFormDialog - children = shell_view - dialogTitle = Shell view -end -!---------------------------- -begin OWidget - name = shell_view - type = XoCamera - background = black - referenceCamera = TEST_camera - collectCallback = osh> getCameraNodes `thisCamera` | collect ONode where highlight eq 1 | get - name | dump - - topAttachment = attach_form - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_form -end -!---------------------------- -begin OWidget - name = TEST_g4ui - type = XmPushButton - labelString = G4 commands - activateCallback = osh> load g4ui.odb | realize -;manageWidget g4ui_palette;raiseWidget g4ui_palette_popup -end -!---------------------------- -begin OWidget - name = TEST_command_chooser - type = XmPushButton - labelString = G4 command chooser - activateCallback = osh> load G4Cmds.odb | realize - ;manageWidget G4Cmds_palette;raiseWidget G4Cmds_palette_popup -end -!---------------------------- -begin OWidget - name = TEST_G4PV - type = XmPushButton - labelString = G4 volume chooser - activateCallback = osh> load G4PV.odb | realize - ;manageWidget G4PV_palette;raiseWidget G4PV_palette_popup -end -!---------------------------- -begin OWidget - name = TEST_osh - type = XmPushButton - labelString = osh commands - activateCallback = osh> load osh.odb | realize -;manageWidget osh_palette;raiseWidget osh_palette_popup -end -!---------------------------- -begin OWidget - name = TEST_g4_casc - type = XmCascadeButton - background = lightgrey - labelString = G4 - subMenuId = TEST_g4_pdm -end -!---------------------------- -begin OWidget - name = TEST_g4_pdm - type = XmPulldownMenu - children = TEST_g4ui TEST_command_chooser TEST_G4PV TEST_osh TEST_tracking_verbose - background = lightgrey -end -!---------------------------- -begin OWidget - name = TEST_tracking_verbose - type = XmToggleButton - labelString = Tracking verbose on/off - valueChangedCallback = osh>\ - test `getWidgetResource TEST_tracking_verbose set` eq true && G4 '/tracking/verbose 2'\ - test `getWidgetResource TEST_tracking_verbose set` eq false && G4 '/tracking/verbose' -end -!---------------------------- -begin OWidget - name = TEST_TEST_casc - type = XmCascadeButton - background = lightgrey - labelString = TEST - subMenuId = TEST_TEST_pdm -end -!---------------------------- -begin OWidget - name = TEST_TEST_pdm - type = XmPulldownMenu - children = TEST_det4 TEST_ATLAS TEST_end_selection TEST_sep TEST_init TEST_startRun TEST_nextEvent TEST_abortRun TEST_cyclic - background = lightgrey -end -!---------------------------- -begin OWidget - name = TEST_det4 - type = XmPushButton - labelString = Detector 4 - activateCallback = osh> G4 '/test19det/detector 4' -end -!---------------------------- -begin OWidget - name = TEST_ATLAS - type = XmPushButton - labelString = ATLAS - createCallback = osh> setWidgetResource TEST_end_selection sensitive False - activateCallback = &osh>\ - echo '- Choose sub detectors with'\ - echo ' G4 commands (chooser) and'\ - echo '- Click on End selection'\ - echo ' when finished.'\ - echo '- Click on Initialize.'\ - setWidgetResource TEST_end_selection sensitive True\ - G4 '/test19det/detector 5' -end -!---------------------------- -begin OWidget - name = TEST_end_selection - type = XmPushButton - labelString = End selection - activateCallback = osh>\ - setWidgetResource TEST_end_selection sensitive False\ - do Wo sendExitOnly -end -!---------------------------- -begin OWidget - name = TEST_sep - type = XmSeparator -end -!---------------------------- -begin OWidget - name = TEST_init - type = XmPushButton - labelString = Initialize - activateCallback = osh>\ - G4 '/run/initialize'\ - G4 '/tracking/storeTrajectory 1'\ - G4 '/gun/particle e-'\ - #G4 '/gun/particle pi+'\ - G4 '/gun/direction 0.1 1 0'\ - G4 '/gun/energy 1 GeV'\ - callWidgetCallbacks TEST_camera userCallback -end -!---------------------------- -begin OWidget - name = TEST_represent - type = XmPushButton - labelString = Represent mother volume - activateCallback = osh>\ - set OContext color pink\ - collect PhysicalVolume where name eq ATLexpHall_P | represent - | viewNode - TEST_camera\ -end -!---------------------------- -begin OWidget - name = TEST_startRun - type = XmPushButton - labelString = Start run - createCallback = osh> setWidgetResource TEST_nextEvent sensitive False - activateCallback = &osh>\ - setWidgetResource TEST_exit sensitive False\ - setWidgetResource TEST_startRun sensitive False\ - setWidgetResource TEST_nextEvent sensitive True\ - setWidgetResource TEST_abortRun sensitive True\ - eventn=`ask 'Number of event' 10`\ - string=`printf '/run/beamOn %s' $eventn`\ - G4 $string\ - setWidgetResource TEST_exit sensitive True\ - setWidgetResource TEST_startRun sensitive True\ - setWidgetResource TEST_nextEvent sensitive False\ - setWidgetResource TEST_abortRun sensitive False -end -!---------------------------- -begin OWidget - name = TEST_cyclic - type = XmPushButton - labelString = Cyclic - createCallback = osh> setWidgetResource TEST_nextEvent sensitive False - activateCallback = osh>\ - isValid OCyclic/auto_next && delete OCyclic/auto_next\ - delay=`ask delay(msec) 1000`\ - script='G4> /run/beamOn 1'\ - create OCyclic name auto_next widget `thisWidget` delay $delay script $script\ - do OCyclic/auto_next start -end -!---------------------------- -begin OWidget - name = TEST_nextEvent - type = XmPushButton - labelString = Next event - activateCallback = osh> do Wo sendExitOnly -end -!---------------------------- -begin OWidget - name = TEST_abortRun - type = XmPushButton - labelString = Abort run - createCallback = osh>\ - setWidgetResource TEST_nextEvent sensitive False\ - setWidgetResource TEST_abortRun sensitive False - activateCallback = osh>\ - G4 /run/abort\ - do Wo sendExitOnly -end - - diff --git a/environments/OPACS/usr/TEST_EventBegin.osh b/environments/OPACS/usr/TEST_EventBegin.osh deleted file mode 100644 index 181293e19c..0000000000 --- a/environments/OPACS/usr/TEST_EventBegin.osh +++ /dev/null @@ -1 +0,0 @@ -#echo 'notify : begin of event.' diff --git a/environments/OPACS/usr/TEST_EventEnd.osh b/environments/OPACS/usr/TEST_EventEnd.osh deleted file mode 100644 index 645c48e121..0000000000 --- a/environments/OPACS/usr/TEST_EventEnd.osh +++ /dev/null @@ -1,9 +0,0 @@ -#echo 'notify : end of event.' -collect ONode where name eq Trajectory* | delete - -#collect Trajectory | dump - -# Color of a trajectory is decided, according to charge, in representation code. -# red -; blue +; green neutral -#set OContext markerStyle cross -collect Trajectory | represent - | viewNode - TEST_camera -# Enter in a secondary loop -do Wo processEvents \ No newline at end of file diff --git a/environments/OPACS/usr/TEST_RunBegin.osh b/environments/OPACS/usr/TEST_RunBegin.osh deleted file mode 100644 index 355c41525b..0000000000 --- a/environments/OPACS/usr/TEST_RunBegin.osh +++ /dev/null @@ -1 +0,0 @@ -#echo 'notify : begin of run.' diff --git a/environments/OPACS/usr/TEST_RunEnd.osh b/environments/OPACS/usr/TEST_RunEnd.osh deleted file mode 100644 index c33985f1dc..0000000000 --- a/environments/OPACS/usr/TEST_RunEnd.osh +++ /dev/null @@ -1,3 +0,0 @@ -#echo 'notify : end of run.' -updatePlot TEST_plot1 -updatePlot TEST_plot2 diff --git a/environments/OPACS/usr/g4ui.odb b/environments/OPACS/usr/g4ui.odb deleted file mode 100644 index 0c6c7e66ff..0000000000 --- a/environments/OPACS/usr/g4ui.odb +++ /dev/null @@ -1,56 +0,0 @@ -!/* +---------------------- Copyright notice -------------------------------+ */ -!/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */ -!/* | Permission to use, copy, modify, and distribute this software | */ -!/* | and its documentation for any purpose and without fee is hereby | */ -!/* | granted, provided that the above copyright notice appear in all | */ -!/* | copies and that both that copyright notice and this permission | */ -!/* | notice appear in supporting documentation. This software is | */ -!/* | provided "as is" without express or implied warranty. | */ -!/* +---------------------- Copyright notice -------------------------------+ */ -!---------------------------- -begin OInterface - prefix = g4ui_ - packages = Xm -end -!---------------------------- -begin OWidget - name = g4ui_palette - type = XmFormDialog - children = g4ui_cmd g4ui_39 g4ui_41 - autoUnmanage = false - dialogTitle = G4 -end -!---------------------------- -begin OWidget - name = g4ui_cmd - type = XmCommand - promptString = Commands - commandEnteredCallback = osh> G4 `get Widget thisValue` - topAttachment = attach_form - bottomAttachment = attach_widget - leftAttachment = attach_form - rightAttachment = attach_form - bottomWidget = g4ui_39 -end -!---------------------------- -begin OWidget - name = g4ui_39 - type = XmPushButton - labelString = Cancel - activateCallback = osh> unmanageWidget `get Widget thisParent` - bottomAttachment = attach_form - leftAttachment = attach_form - rightAttachment = attach_position - rightPosition = 50 -end -!---------------------------- -begin OWidget - name = g4ui_41 - type = XmPushButton - labelString = Help -! activateCallback = osh> help 'Commands cmds.ohtx' - bottomAttachment = attach_form - leftAttachment = attach_position - rightAttachment = attach_form - leftPosition = 50 -end diff --git a/examples/History b/examples/History index a608be54dc..d9e3f243e2 100644 --- a/examples/History +++ b/examples/History @@ -1,4 +1,4 @@ -$Id: History,v 1.70 2003/06/26 13:47:18 gcosmo Exp $ +$Id: History,v 1.77 2003/12/08 18:17:04 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,35 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +8th December 2003 Sergei Sadilov (examples-V05-02-08) +- Updated reference outputs according to candidate tag geant4-06-00-cand-03. + +28th November 2003 Gabriele Cosmo (examples-V05-02-07) +- Updated reference outputs for development tag geant4-05-02-ref-06. + +Nov 13th, 2003 John Allison (examples-V05-02-06) +- Removed OPACS from Vis Managers. + +31st October 2003 Gabriele Cosmo (examples-V05-02-05) +- Updated reference outputs for development tag geant4-05-02-ref-05. + +10th October 2003 Gabriele Cosmo (examples-V05-02-03) +- Updated reference outputs for development tag geant4-05-02-ref-04. + +26th September 2003 Gabriele Cosmo (examples-V05-02-02) +- Updated reference outputs for development tag geant4-05-02-ref-03. + +29th August 2003 Gabriele Cosmo (examples-V05-02-01) +- Updated reference outputs for development tag geant4-05-02-ref-02. + +25th August 2003 Gabriele Cosmo (examples-V05-02-00) +- Updated reference outputs. +- Includes on top of previous tag: + examples/extended/eventgenerator/HepMC exHepMC-V05-02-00 + examples/extended/g3tog4 g3tog4Tests-V05-02-00 + examples/extended/gdml exgdml-V05-02-00 + examples/extended/parallel exparallel-V05-02-00 + 27th June 2003 Gabriele Cosmo (examples-V05-01-01) - Updated reference outputs. - Included fixes to GNUmakefiles for porting on Darwin in GDML example. diff --git a/examples/advanced/Rich/History b/examples/advanced/Rich/History new file mode 100644 index 0000000000..64ab02f4ad --- /dev/null +++ b/examples/advanced/Rich/History @@ -0,0 +1,20 @@ +------------------------------------------------------------------- +$Id: History,v 1.1 2003/12/02 12:36:42 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - Rich Detector for LHCb + ========================================================= + + Category History file + --------------------- + +02.12.2003 - G.Cosmo (Rich-V05-02-00) + Fixed compilation errors and warnings ... + +12.11.2003 - J.Allison + Updated Vis Manager. + +26.05.2003 - P.M.Lorenzo + Created. First version. + diff --git a/examples/advanced/Rich/include/RichTbAnalysisManager.hh b/examples/advanced/Rich/include/RichTbAnalysisManager.hh index d5e2368ca1..45c3ce6a80 100644 --- a/examples/advanced/Rich/include/RichTbAnalysisManager.hh +++ b/examples/advanced/Rich/include/RichTbAnalysisManager.hh @@ -132,20 +132,17 @@ public: AIDA::ITree* tree; AIDA::IHistogramFactory* histogramFactory; -#endif - AIDA::IHistogram1D* getfhistoNPhotG() {return fhistoNrPhotG;} AIDA::IHistogram1D* getfhistoNBeforeMirror() {return fhistoNBeforeMirror;} AIDA::IHistogram1D* getfhistoWBeforeMirror() {return fhistoWBeforeMirror;} AIDA::IHistogram1D* getfhistoWAfterMirror() {return fhistoWAfterMirror;} - - - - + AIDA::IHistogram1D* getfhistoCkvProdSmall() {return fhistoCkvProdSmall;} AIDA::IHistogram1D* getfhistoEmisZ() {return fhistoEmisZ;} AIDA::IHistogram1D* getfhistoCkvRadius() {return fhistoCkvRadius; } + +#endif public: @@ -185,15 +182,6 @@ public: G4double NumHXCoord; G4double NumHYCoord; - - }; - #endif - - - - - - diff --git a/examples/advanced/Rich/include/RichTbGeometryParameters.hh b/examples/advanced/Rich/include/RichTbGeometryParameters.hh index bbe0508243..fbabdc50a8 100644 --- a/examples/advanced/Rich/include/RichTbGeometryParameters.hh +++ b/examples/advanced/Rich/include/RichTbGeometryParameters.hh @@ -330,9 +330,9 @@ static const G4double HpdPhCathodePosZ= HpdQuartzWPosZ; static const G4int NumberOfPadHpdSiPixels=128; static const G4int MaxNumberOfPixRow=24; static const G4int MaxNumberOfPixCol=10; -static G4double PixRowNumSect[NumberOfPadHpdSiPixels]; -static G4double PixColNumSect[NumberOfPadHpdSiPixels]; -static G4bool PixelAtSectEdge[NumberOfPadHpdSiPixels]; +extern G4double PixRowNumSect[NumberOfPadHpdSiPixels]; +extern G4double PixColNumSect[NumberOfPadHpdSiPixels]; +extern G4bool PixelAtSectEdge[NumberOfPadHpdSiPixels]; // the following is for the rows after the central big pixel. // the central pixel is at row 0. // the others start from row number start at 1. diff --git a/examples/advanced/Rich/include/RichTbRODummySD.hh b/examples/advanced/Rich/include/RichTbRODummySD.hh index 25c47a577a..da44e58d20 100644 --- a/examples/advanced/Rich/include/RichTbRODummySD.hh +++ b/examples/advanced/Rich/include/RichTbRODummySD.hh @@ -37,9 +37,9 @@ public: RichTbRODummySD(); ~RichTbRODummySD() {}; - void Initialize(G4HCofThisEvent*HCE) {}; - G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} - void EndOfEvent(G4HCofThisEvent*HCE) {}; + void Initialize(G4HCofThisEvent*) {}; + G4bool ProcessHits(G4Step*,G4TouchableHistory*) {return false;} + void EndOfEvent(G4HCofThisEvent*) {}; void clear() {}; void DrawAll() {}; void PrintAll() {}; diff --git a/examples/advanced/Rich/include/RichTbTrackingAction.hh b/examples/advanced/Rich/include/RichTbTrackingAction.hh index 3ae9ce0267..4aee2cdbfb 100644 --- a/examples/advanced/Rich/include/RichTbTrackingAction.hh +++ b/examples/advanced/Rich/include/RichTbTrackingAction.hh @@ -35,8 +35,8 @@ class RichTbTrackingAction : public G4UserTrackingAction { public: RichTbTrackingAction(); virtual ~RichTbTrackingAction(); - void PreUserTrackingAction(const G4Track* aTrack){;} - void PostUserTrackingAction(const G4Track* aTrack){;} + void PreUserTrackingAction(const G4Track*){;} + void PostUserTrackingAction(const G4Track*){;} private: diff --git a/examples/advanced/Rich/src/AerogelRefData.cc b/examples/advanced/Rich/src/AerogelRefData.cc index 69509385d7..0372600a0c 100644 --- a/examples/advanced/Rich/src/AerogelRefData.cc +++ b/examples/advanced/Rich/src/AerogelRefData.cc @@ -114,13 +114,12 @@ void AerogelRefData::ReadStdAerogelRefIndex() { } } - } vector AerogelRefData::GetCurAerogelRefIndValueVect (G4int AerogelTnum ) { // no test for tdr rich. now put back to TB conditions. vectorCAgel(NumberOfRefIndBins); - AerogelType Ctype; + // AerogelType Ctype; G4double CRn = GetRefnominal( AerogelTnum ); for (G4int ib=0; ib < NumberOfRefIndBins; ib++ ){ @@ -128,9 +127,7 @@ vector AerogelRefData::GetCurAerogelRefIndValueVect (G4int AerogelTnum - StdAerogelNominalRefractiveIndex-AerogelRefIndShift[ AerogelTnum] + CRn; } - return CAgel; - } G4double AerogelRefData:: GetCurAerogelRefIndValue( G4int rbinw , G4int AerogelTnum ){ @@ -163,9 +160,11 @@ G4double AerogelRefData::GetRefnominal(G4int AgelTnum ) { } else {G4cout<<"Unknown Aerogel Type "< #include "FilterTrData.hh" #include "RichTbGeometryParameters.hh" -#include "RichTbMaterialParameters.hh" +#include "RichTbMaterialParameters.hh" + FilterTrData::FilterTrData(G4int FilterTypeNum, G4String FilterDataFileName ) :NumberOfTrBins(NumFilterTransBins), TransWaveL(vector(NumFilterTransBins)), @@ -57,6 +58,7 @@ FilterTrData::FilterTrData(G4int FilterTypeNum, G4String FilterDataFileName ) FilterThickness = 2.0*FilterHalfZArray[FilterTypeNum]; } } + void FilterTrData::ReadFilterTrans() { //first get the filter type index FilterType Ftype = GetFilterTypeIndex(); @@ -92,21 +94,21 @@ void FilterTrData::ReadFilterTrans() { G4cout<<" Please provide the Filter transmission Data " < 1.0 ) trn=1.0; return trn; } + G4double FilterTrData::GetTotFilTrans(G4double trnData) { // No wavelength dependance yet. diff --git a/examples/advanced/Rich/src/HpdSiEnergyLoss.cc b/examples/advanced/Rich/src/HpdSiEnergyLoss.cc index 33ef56b43d..a872656685 100644 --- a/examples/advanced/Rich/src/HpdSiEnergyLoss.cc +++ b/examples/advanced/Rich/src/HpdSiEnergyLoss.cc @@ -42,8 +42,8 @@ HpdSiEnergyLoss::HpdSiEnergyLoss(const G4String& materialName, const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); G4int numberOfMat = G4Material::GetNumberOfMaterials(); - - for(G4int iMat=0;iMatGetName()){ fMatIndex=(*theMaterialTable)[iMat]->GetIndex(); break; @@ -63,28 +63,28 @@ G4bool HpdSiEnergyLoss::IsApplicable(const G4ParticleDefinition& } G4double HpdSiEnergyLoss::GetContinuousStepLimit(const G4Track& track, - G4double previousStepSize, - G4double currentMinimumStep, - G4double& currentSafety){ + G4double, + G4double, + G4double& ){ G4double RangeForStep = finalRangeforStep; - if( fMatIndex != track.GetMaterial() -> GetIndex() ) { + if( fMatIndex != G4int(track.GetMaterial() -> GetIndex()) ) { RangeForStep = DBL_MAX; } - - - return RangeForStep; + return RangeForStep; } -G4double HpdSiEnergyLoss::GetMeanFreePath(const G4Track& track, - G4double previousStepSize, + +G4double HpdSiEnergyLoss::GetMeanFreePath(const G4Track&, + G4double, G4ForceCondition* condition) { // return infinity so that it does nothing. *condition = NotForced; return DBL_MAX; } + G4VParticleChange* HpdSiEnergyLoss::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) { // Do nothing @@ -92,8 +92,9 @@ G4VParticleChange* HpdSiEnergyLoss::PostStepDoIt(const G4Track& aTrack, return G4VContinuousDiscreteProcess::PostStepDoIt(aTrack,aStep); } + G4VParticleChange* HpdSiEnergyLoss::AlongStepDoIt(const G4Track& aTrack, - const G4Step& aStep) { + const G4Step&) { #ifdef G4ANALYSIS_USE @@ -103,7 +104,7 @@ G4VParticleChange* HpdSiEnergyLoss::AlongStepDoIt(const G4Track& aTrack, aParticleChange.Initialize(aTrack); G4int aMaterialIndex = aTrack.GetMaterial()->GetIndex(); - if(fMatIndex != aTrack.GetMaterial()->GetIndex() ) { + if(fMatIndex != aMaterialIndex ) { return &aParticleChange; } @@ -137,12 +138,9 @@ G4VParticleChange* HpdSiEnergyLoss::AlongStepDoIt(const G4Track& aTrack, #endif - G4StepPoint* pPreStepPoint = aStep.GetPreStepPoint(); - G4String tpreVol = pPreStepPoint -> GetPhysicalVolume()->GetName(); - G4int tpreVP = pPreStepPoint -> GetPhysicalVolume()->GetCopyNo(); - G4int tpreVPS = pPreStepPoint -> GetPhysicalVolume() - ->GetMother()->GetCopyNo(); - + // G4StepPoint* pPreStepPoint = aStep.GetPreStepPoint(); + // G4String tpreVol = pPreStepPoint -> GetPhysicalVolume()->GetName(); + // G4int tpreVP = pPreStepPoint -> GetPhysicalVolume()->GetCopyNo(); } if (aKinEnergyFinal <= MinKineticEnergy ) { aParticleChange.SetStatusChange(fStopAndKill); diff --git a/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc b/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc index de6f60773b..8854f5d042 100644 --- a/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc +++ b/examples/advanced/Rich/src/PadHpdPhotoElectricEffect.cc @@ -32,6 +32,7 @@ #include "PadHpdPhotoElectricEffect.hh" #include "RichTbGeometryParameters.hh" #include "G4TransportationManager.hh" +#include "G4TouchableHandle.hh" #include "Randomize.hh" #include "RichTbAnalysisManager.hh" #include "RichTbRunConfig.hh" @@ -43,11 +44,11 @@ PadHpdPhotoElectricEffect::PadHpdPhotoElectricEffect(const G4String& processName , RichTbRunConfig* RConfig) :G4VDiscreteProcess(processName), - HpdQE(NumHpdTot, vector( NumQEbins)), - HpdWabin(NumHpdTot, vector( NumQEbins)), DemagnificationFactor(vector(NumHpdTot)), - DemagnificationQuadFactor(vector(NumHpdTot)) { - + DemagnificationQuadFactor(vector(NumHpdTot)), + HpdQE(NumHpdTot, vector( NumQEbins)), + HpdWabin(NumHpdTot, vector( NumQEbins)) +{ rConfig=RConfig; PrePhotoElectricVolName="PadHpdWindowQuartz"; PostPhotoElectricVolName="BiAlkaliPhCathode"; @@ -83,7 +84,7 @@ PadHpdPhotoElectricEffect::PadHpdPhotoElectricEffect(const G4String& processName G4cout<<"Wrong size for Hpd QE "<GetPhysicalVolume() - -> GetMother() -> GetCopyNo(); + G4int currentHpdNumber= pPreStepPoint->GetTouchableHandle() + -> GetReplicaNumber(1); if(currentHpdNumber >= NumHpdTot ){ return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); @@ -196,7 +197,7 @@ G4VParticleChange* PadHpdPhotoElectricEffect::PostStepDoIt(const G4Track& aTrack // coord system. G4double GLx=GlobalElectronOrigin.x(); G4double GLy=GlobalElectronOrigin.y(); - G4double PhotCkvRad = pow((pow(GLx,2)+pow(GLy,2)),0.5); + // G4double PhotCkvRad = pow((pow(GLx,2)+pow(GLy,2)),0.5); G4double PhotCkvPhi = atan2(GLy,GLx)*180.0/pi; if( PhotCkvPhi < - 180.0 )PhotCkvPhi+= 360.0; diff --git a/examples/advanced/Rich/src/RichTbAnalysisManager.cc b/examples/advanced/Rich/src/RichTbAnalysisManager.cc index aadf6f4a61..e8ef42ea94 100644 --- a/examples/advanced/Rich/src/RichTbAnalysisManager.cc +++ b/examples/advanced/Rich/src/RichTbAnalysisManager.cc @@ -135,7 +135,7 @@ void RichTbAnalysisManager::finish() } -void RichTbAnalysisManager::BeginOfEventAnalysis(const G4Event* evt){ +void RichTbAnalysisManager::BeginOfEventAnalysis(const G4Event*){ //RichCollId is already defined in LHCbRichSimEventAction.cc // Hence its extraction is not repeated here. @@ -161,7 +161,7 @@ void RichTbAnalysisManager::EndOfEventAnalysis(const G4Event* evt){ iTimer->Stop(); - G4double TimeforThisEvent= iTimer->GetRealElapsed(); + // G4double TimeforThisEvent= iTimer->GetRealElapsed(); G4SDManager * SDman = G4SDManager::GetSDMpointer(); diff --git a/examples/advanced/Rich/src/RichTbComponent.cc b/examples/advanced/Rich/src/RichTbComponent.cc index 89f68874f7..610b5e673e 100644 --- a/examples/advanced/Rich/src/RichTbComponent.cc +++ b/examples/advanced/Rich/src/RichTbComponent.cc @@ -104,7 +104,7 @@ RichTbComponent::RichTbComponent(RichTbMaterial* RMaterial, G4int FilterNum = RConfig->GetFilterTNumber(); - G4Box * FilterBox; + G4Box * FilterBox=0; if(FilterNum >= 0 ) { G4double FilterHalfZ= FilterHalfZArray[FilterNum]; FilterBox @@ -296,8 +296,8 @@ RichTbComponent::RichTbComponent(RichTbMaterial* RMaterial, // FilterType CurFil= RConfig->GetFilterType(); G4int Filnum= RConfig->GetFilterTNumber() ; - G4LogicalVolume* FilterLog; - G4VPhysicalVolume* FilterPhys; + G4LogicalVolume* FilterLog=0; + G4VPhysicalVolume* FilterPhys=0; if(Filnum >= 0 ) { G4double FilterHalfZCur= FilterHalfZArray[Filnum]; @@ -321,12 +321,12 @@ RichTbComponent::RichTbComponent(RichTbMaterial* RMaterial, new G4PVPlacement(FilterTransform,"FilterBox",FilterLog, RadFramePhys,false,0); - G4LogicalBorderSurface* FilterInnerSurface = +// G4LogicalBorderSurface* FilterInnerSurface = new G4LogicalBorderSurface("RichTbFilterInnerSurface", FilterPhys,VesselEnclosurePhys, RMaterial->getOpticalFilterSurface()); - G4LogicalBorderSurface* FilterOuterSurface = +// G4LogicalBorderSurface* FilterOuterSurface = new G4LogicalBorderSurface("RichTbFilterOuterSurface", VesselEnclosurePhys,FilterPhys, RMaterial->getOpticalFilterSurface()); diff --git a/examples/advanced/Rich/src/RichTbEventAction.cc b/examples/advanced/Rich/src/RichTbEventAction.cc index f9ff95abb0..d79eb68f6c 100644 --- a/examples/advanced/Rich/src/RichTbEventAction.cc +++ b/examples/advanced/Rich/src/RichTbEventAction.cc @@ -44,49 +44,41 @@ #include "RichTbAnalysisManager.hh" #include "RichTbIOData.hh" -RichTbEventAction::RichTbEventAction(){ +RichTbEventAction::RichTbEventAction() +{ RichTbCollID = -1; - } RichTbEventAction::RichTbEventAction(RichTbRunConfig* RConfig, - RichTbVisManager* RVisManager, RichTbIOData* RIOData){ + RichTbVisManager* RVisManager, RichTbIOData* RIOData) +{ RichTbCollID = -1; runConfiguration=RConfig; pVisManager=RVisManager; rTbIOData = RIOData; - - } -RichTbEventAction::~RichTbEventAction(){ - +RichTbEventAction::~RichTbEventAction() +{ } -void RichTbEventAction::BeginOfEventAction(const G4Event* evt){ - - +void RichTbEventAction::BeginOfEventAction(const G4Event* evt) +{ G4SDManager * SDman = G4SDManager::GetSDMpointer(); if(RichTbCollID<0){ - - - RichTbCollID = SDman->GetCollectionID("RichTbHitsCollection"); - } #ifdef G4ANALYSIS_USE RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); analysis->BeginOfEventAnalysis(evt); - #endif - - } -void RichTbEventAction::EndOfEventAction(const G4Event* evt){ +void RichTbEventAction::EndOfEventAction(const G4Event* evt) +{ RichTbRunConfig* RConfig = runConfiguration; // first get the trajectories @@ -115,52 +107,36 @@ void RichTbEventAction::EndOfEventAction(const G4Event* evt){ } - - if(RHC) { - - - n_hit = RHC->entries(); - - for(G4int i=0;igetRichTbDrawTrajectory() > 0) + { + for (G4int i=0; iGetTrajectoryContainer()))[i]->DrawTrajectory(); + } + } - if(RConfig->getRichTbDrawTrajectory() > 0){ - for (G4int i=0; iGetTrajectoryContainer()))[i]->DrawTrajectory(); - } - } - + //now for the hits. - //now for the hits. - - if(RHC) { + if(RHC) + { G4int n_hith = RHC->entries(); - - - - - for (G4int ih=0; ihDrawWithVisM(pVisManager); } + } - } //Now to Fill the Histograms #ifdef G4ANALYSIS_USE @@ -169,21 +145,10 @@ void RichTbEventAction::EndOfEventAction(const G4Event* evt){ #endif // Now to write out the data - if(RConfig -> DoWriteOutputFile() ) { - - rTbIOData -> WriteOutEventHeaderData(evt); - rTbIOData -> WriteOutHitData(evt); - G4cout << ">>> End of Event Number " << evt->GetEventID() << G4endl; - + if(RConfig -> DoWriteOutputFile() ) + { + rTbIOData -> WriteOutEventHeaderData(evt); + rTbIOData -> WriteOutHitData(evt); + G4cout << ">>> End of Event Number " << evt->GetEventID() << G4endl; } - } - - - - - - - - - diff --git a/examples/advanced/Rich/src/RichTbGeometryParameters.cc b/examples/advanced/Rich/src/RichTbGeometryParameters.cc index 2a3a40b7dc..1ab8933cf2 100644 --- a/examples/advanced/Rich/src/RichTbGeometryParameters.cc +++ b/examples/advanced/Rich/src/RichTbGeometryParameters.cc @@ -28,6 +28,11 @@ ///////////////////////////////////////////////////////////////////////////// #include "globals.hh" #include "RichTbGeometryParameters.hh" + +G4double PixRowNumSect[NumberOfPadHpdSiPixels]; +G4double PixColNumSect[NumberOfPadHpdSiPixels]; +G4bool PixelAtSectEdge[NumberOfPadHpdSiPixels]; + G4double GetCurAerogelLength(G4int Aerognum ) { return 2.0*AgelHalfZ[Aerognum]; } diff --git a/examples/advanced/Rich/src/RichTbHit.cc b/examples/advanced/Rich/src/RichTbHit.cc index f4e777e8fa..bb4949535a 100644 --- a/examples/advanced/Rich/src/RichTbHit.cc +++ b/examples/advanced/Rich/src/RichTbHit.cc @@ -45,6 +45,7 @@ RichTbHit::~RichTbHit() {;} RichTbHit::RichTbHit(const RichTbHit &right) + : G4VHit(right) { edep = right.edep; posAtSilicon = right.posAtSilicon; @@ -68,7 +69,7 @@ const RichTbHit& RichTbHit::operator=(const RichTbHit &right) int RichTbHit::operator==(const RichTbHit &right) const { - return 0; + return (this==&right) ? 1 : 0; } void RichTbHit::Draw() diff --git a/examples/advanced/Rich/src/RichTbHpd.cc b/examples/advanced/Rich/src/RichTbHpd.cc index 0c088d4cf8..347c26fe0d 100644 --- a/examples/advanced/Rich/src/RichTbHpd.cc +++ b/examples/advanced/Rich/src/RichTbHpd.cc @@ -184,7 +184,7 @@ RichTbHpd::RichTbHpd(RichTbMaterial* RMaterial, HpdEnvelopeCone, HpdEnvelopeConeTransform); - G4LogicalVolume* HpdEnvelopeTubeLCLog= +// G4LogicalVolume* HpdEnvelopeTubeLCLog= new G4LogicalVolume(HpdEnvelopeTubeLC,RMaterial->getHpdTubeMaterial(), "HpdEnvelopeTubeLC",0,0,0); @@ -193,7 +193,7 @@ RichTbHpd::RichTbHpd(RichTbMaterial* RMaterial, HpdEnvelopeSmallTube, HpdEnvelopeSmallTubeTransform); - G4LogicalVolume* HpdEnvelopeTubeLCSLog= +// G4LogicalVolume* HpdEnvelopeTubeLCSLog= new G4LogicalVolume(HpdEnvelopeTubeLCS,RMaterial->getHpdTubeMaterial(), "HpdEnvelopeTubeLCS",0,0,0); @@ -233,17 +233,17 @@ RichTbHpd::RichTbHpd(RichTbMaterial* RMaterial, HpdPhCathodeLog,HpdMasterPhys,false,HpdNumber); - G4LogicalBorderSurface* HpdQuartzWSurface = +// G4LogicalBorderSurface* HpdQuartzWSurface = new G4LogicalBorderSurface("HpdQuartzWSurface",HpdMasterPhys, HpdQuartzWindowPhys, RMaterial->getOpticalHpdTQuartzWSurface()); - G4LogicalBorderSurface* HpdQPhCathodeSurface = +// G4LogicalBorderSurface* HpdQPhCathodeSurface = new G4LogicalBorderSurface("HpdQPhCathodeSurface",HpdQuartzWindowPhys, HpdPhCathodePhys, RMaterial->getOpticalHpdQuartzWPhCathodeSurface()); - G4LogicalBorderSurface* HpdPhCathodeQSurface = +// G4LogicalBorderSurface* HpdPhCathodeQSurface = new G4LogicalBorderSurface("HpdQPhCathodeSurface", HpdPhCathodePhys, HpdQuartzWindowPhys, RMaterial->getOpticalHpdQuartzWPhCathodeSurface()); @@ -254,17 +254,17 @@ RichTbHpd::RichTbHpd(RichTbMaterial* RMaterial, // HpdPhCathodeLog, // RMaterial->getOpticalPhCathodeSkinSurface()); - G4LogicalBorderSurface* HpdPhCathodeMasterSurface = +// G4LogicalBorderSurface* HpdPhCathodeMasterSurface = new G4LogicalBorderSurface("HpdPhCathodeMasterSurface", HpdPhCathodePhys,HpdMasterPhys, RMaterial->getOpticalPhCathodeBorderSurface()); - G4LogicalBorderSurface* HpdMasterPhCathodeSurface = +// G4LogicalBorderSurface* HpdMasterPhCathodeSurface = new G4LogicalBorderSurface("HpdMasterPhCathodeSurface", HpdMasterPhys,HpdPhCathodePhys, RMaterial->getOpticalPhCathodeBorderSurface()); - G4LogicalBorderSurface* HpdEnvelopeSurface = +// G4LogicalBorderSurface* HpdEnvelopeSurface = new G4LogicalBorderSurface("HpdEnvelopeSurface",HpdMasterPhys, HpdEnvelopeTubeGrandPhys, RMaterial->getOpticalHpdMetalSurface()); diff --git a/examples/advanced/Rich/src/RichTbIOData.cc b/examples/advanced/Rich/src/RichTbIOData.cc index fa3281a2fa..e2ea89043b 100644 --- a/examples/advanced/Rich/src/RichTbIOData.cc +++ b/examples/advanced/Rich/src/RichTbIOData.cc @@ -45,7 +45,7 @@ RichTbIOData::RichTbIOData(RichTbRunConfig* RConfig ) } RichTbIOData::~RichTbIOData() { } -void RichTbIOData::WriteOutEventHeaderData( const G4Event* evt ) { } +void RichTbIOData::WriteOutEventHeaderData( const G4Event* ) { } void RichTbIOData::WriteOutHitData( const G4Event* evt ) { diff --git a/examples/advanced/Rich/src/RichTbMaterial.cc b/examples/advanced/Rich/src/RichTbMaterial.cc index 157b500e11..699c1c4f3d 100644 --- a/examples/advanced/Rich/src/RichTbMaterial.cc +++ b/examples/advanced/Rich/src/RichTbMaterial.cc @@ -55,23 +55,22 @@ RichTbMaterial::RichTbMaterial(RichTbRunConfig* RConfig): G4double a,z,density; //a=mass of a mole; // z=mean number of protons; G4String name,symbol; - G4int isz,isn; //isz= number of protons in an isotope; + //G4int isz,isn; //isz= number of protons in an isotope; //isn= number of nucleons in an isotope; G4int numel,natoms; //numel=Number of elements constituting a material. - G4double abundance,fractionmass; + G4double fractionmass; G4double temperature, pressure; - G4State kStateGas; - G4double FactorOne=1.0; + // G4double FactorOne=1.0; G4UnitDefinition::BuildUnitsTable(); //PhotonEnergy - + G4int ibin=0; G4double PhotonEnergyStep=(PhotonMaxEnergy-PhotonMinEnergy)/ NumPhotWaveLengthBins; G4double* PhotonMomentum=new G4double[NumPhotWaveLengthBins]; - for (G4int ibin=0; ibin0.0 ) { - G4double currentfilterRefIndex= GlassD263Rindex[ibin]; + // G4double currentfilterRefIndex= GlassD263Rindex[ibin]; G4double currentAdjacentMediumRefIndex=NitrogenNominalRefIndex; // the following needs to be improved in the future // to have a binary search and // interpolation between the adjacent // array elements etc. SE 15-11-2002. - for(G4int ibinr=0; ibinr= N2RefPhotW[ibinr] && currMomA <= N2RefPhotW[ibinr+1]){ currentAdjacentMediumRefIndex=N2RefInd[ibinr]; @@ -519,7 +518,7 @@ RichTbMaterial::RichTbMaterial(RichTbRunConfig* RConfig): for (ibin=0; ibinAddElement(elO,natoms=2); G4double* SiliconCoatingAbsorpLength=new G4double[NumPhotWaveLengthBins]; - G4double* SiliconCoatingRindex=new G4double[NumPhotWaveLengthBins]; + // G4double* SiliconCoatingRindex=new G4double[NumPhotWaveLengthBins]; for (ibin=0; ibin GetAerogelRefdata(); //Now to convert and interpolate to get the same binning // as the other property vectors. - G4double Refind; + G4double Refind=0.; G4int Numphbin=AgData-> GetNumberOfRefIndBins(); G4double phm1,phm2; if(phmom < AgData->GetAerogelRefphotE(0) ){ diff --git a/examples/advanced/Rich/src/RichTbMaterialParameters.cc b/examples/advanced/Rich/src/RichTbMaterialParameters.cc index af532644cb..81cd0cd893 100644 --- a/examples/advanced/Rich/src/RichTbMaterialParameters.cc +++ b/examples/advanced/Rich/src/RichTbMaterialParameters.cc @@ -127,12 +127,13 @@ void HistoRichTbMaterialProperties(RichTbRunConfig* RConfig) { G4double stepsize=7.0; - G4double thickness=(GetCurAerogelLength(AerogelNum))/cm; + // G4double thickness=(GetCurAerogelLength(AerogelNum))/cm; AerogelType CurAerogelType=RConfig-> GetCurAerogelType(AerogelNum); - G4double Aparam, Cparam; + G4double Aparam=0.; + G4double Cparam=0.; if(CurAerogelType == AerogelTypeA ) { Aparam = AerogelTypeATotTrans; Cparam = AerogelTypeAClarity*cm/(micrometer*micrometer*micrometer*micrometer); @@ -142,8 +143,8 @@ void HistoRichTbMaterialProperties(RichTbRunConfig* RConfig) { for(G4int Iabin=0; Iabin<100; Iabin ++ ) { - G4double waLInmu = waL/1000.0; - G4double Aetr = Aparam* exp(-Cparam * thickness / pow(waLInmu,4) ); + // G4double waLInmu = waL/1000.0; + // G4double Aetr = Aparam* exp(-Cparam * thickness / pow(waLInmu,4) ); waL += stepsize; } @@ -163,12 +164,12 @@ void HistoRichTbMaterialProperties(RichTbRunConfig* RConfig) { } -vector getDeadPixelList(G4int ihpdNum, G4int isectNum){ +vector getDeadPixelList(G4int ihpdNum, G4int){ vectorDeadPixelList; - G4int isc,ipsc; + // G4int isc,ipsc; - if(DeadPixelList.size() > MaxNumDeadPixelPerHpdSect ){ + if(G4int(DeadPixelList.size()) > MaxNumDeadPixelPerHpdSect ){ G4cout<<" Too Many dead Pixels in Hpd "<GetAerogelRScatLength(AerogelType CurrentAerogelType) { vectorAgelRayleighScatLength(NumPhotWaveLengthBins); vectorAgelPhotW = InitAgelPhotW(); - G4double aClarity; + G4double aClarity=0.; if(CurrentAerogelType == AerogelTypeA ) { aClarity=AerogelTypeAClarity/(micrometer*micrometer*micrometer*micrometer); @@ -213,7 +214,7 @@ G4double GetCurrentBulkTrans(G4double currentMatRefIndex, G4double currentNeighbourRefIndex, G4double MaxTotMeasuredTransmission){ G4double ATrans=MaxTotMeasuredTransmission; - G4double ePhot; + // G4double ePhot; // in the following the energy of the photon is not used since // it is only an approximate calulation. G4double na= currentMatRefIndex; diff --git a/examples/advanced/Rich/src/RichTbPhotoDetector.cc b/examples/advanced/Rich/src/RichTbPhotoDetector.cc index 1a461a5dd9..af7db7161b 100644 --- a/examples/advanced/Rich/src/RichTbPhotoDetector.cc +++ b/examples/advanced/Rich/src/RichTbPhotoDetector.cc @@ -41,7 +41,7 @@ RichTbPhotoDetector::RichTbPhotoDetector() {;} RichTbPhotoDetector::RichTbPhotoDetector(RichTbMaterial* RMaterial, - RichTbComponent* RTbComponent, RichTbRunConfig* rConfig, + RichTbComponent* RTbComponent, RichTbRunConfig*, G4bool ConstructTrackingSwitch){ ConstructTrackingGeometrySwitch=ConstructTrackingSwitch; diff --git a/examples/advanced/Rich/src/RichTbPrimaryGeneratorAction.cc b/examples/advanced/Rich/src/RichTbPrimaryGeneratorAction.cc index 4c62b6a8f6..ef0332c455 100644 --- a/examples/advanced/Rich/src/RichTbPrimaryGeneratorAction.cc +++ b/examples/advanced/Rich/src/RichTbPrimaryGeneratorAction.cc @@ -116,7 +116,7 @@ void RichTbPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) y0 = 0. ; z0 = 0. ; // -0.5*(RichTbDetector->GetWorldSizeZ()) ; } - G4double r0,phi0 ; + // G4double r0,phi0 ; particleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); diff --git a/examples/advanced/Rich/src/RichTbSD.cc b/examples/advanced/Rich/src/RichTbSD.cc index b1f8a2353d..fbe4be972e 100644 --- a/examples/advanced/Rich/src/RichTbSD.cc +++ b/examples/advanced/Rich/src/RichTbSD.cc @@ -37,7 +37,7 @@ RichTbSD::RichTbSD(G4String DetName, G4int Numhpd , G4int NumSect, G4int NumPixel, - G4String CollectionName) + G4String ) // CollectionName) :G4VSensitiveDetector(DetName),NumberOfSensitiveHpds(Numhpd), NumberOfSensitiveSectorsInHpd(NumSect), NumberOfSensitivePixelsInSector(NumPixel), @@ -52,7 +52,7 @@ RichTbSD::~RichTbSD(){ } -void RichTbSD::Initialize(G4HCofThisEvent* HCE) +void RichTbSD::Initialize(G4HCofThisEvent*) { RichTbHitCollection = new RichTbHitsCollection (SensitiveDetectorName,collectionName[0]); @@ -83,10 +83,10 @@ G4bool RichTbSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) G4StepPoint* PrePosition = aStep->GetPreStepPoint(); - G4int CurrentHpdNumber = PrePosition->GetPhysicalVolume() - -> GetMother() -> GetCopyNo(); - G4int CurrentSectorNumber= PrePosition->GetPhysicalVolume() - ->GetCopyNo(); + G4int CurrentHpdNumber = PrePosition->GetTouchableHandle() + -> GetReplicaNumber(1); + G4int CurrentSectorNumber= PrePosition->GetTouchableHandle() + -> GetReplicaNumber(); G4VPhysicalVolume* ROphysVol = ROhist -> GetVolume(); G4int CurrentPixelNumber = ROphysVol->GetCopyNo(); diff --git a/examples/advanced/Rich/src/RichTbSiDet.cc b/examples/advanced/Rich/src/RichTbSiDet.cc index 20ebfc3a2a..1fc85809fc 100644 --- a/examples/advanced/Rich/src/RichTbSiDet.cc +++ b/examples/advanced/Rich/src/RichTbSiDet.cc @@ -123,7 +123,7 @@ RichTbSiDet::RichTbSiDet(RichTbMaterial* RMaterial, new G4PVPlacement(SiSectCoatingTransform,"HpdSectCoat", HpdSectCoatLog,MotherOfSiDet,false,SectNum); - G4LogicalBorderSurface* HpdSectCoatSurface = +// G4LogicalBorderSurface* HpdSectCoatSurface = new G4LogicalBorderSurface("HpdSectCoatSurface",MotherOfSiDet , HpdSectCoatPhys , RMaterial-> getHpdSiCoatSurface()); diff --git a/examples/advanced/Rich/src/RichTbSiPixel.cc b/examples/advanced/Rich/src/RichTbSiPixel.cc index 7cd1774f06..8b3a562f7f 100644 --- a/examples/advanced/Rich/src/RichTbSiPixel.cc +++ b/examples/advanced/Rich/src/RichTbSiPixel.cc @@ -123,7 +123,7 @@ RichTbSiPixel::RichTbSiPixel(RichTbMaterial* RMaterial, //First Get the deadPixel List G4bool thisPixelisAlive=true; vectorDeadPxL = getDeadPixelList(IHpdNum,Isector); - for(G4int ideadP=0; ideadPgetHpdPhElectronEnergy(); - uParticleChange=new G4VParticleChange(); -} -RichTbSteppingAction::~RichTbSteppingAction() { ;} - -void RichTbSteppingAction::UserSteppingAction(const G4Step* aStep){ - - + uParticleChange=new G4VParticleChange(); +} +RichTbSteppingAction::~RichTbSteppingAction() +{ +} +void RichTbSteppingAction::UserSteppingAction(const G4Step* aStep) +{ RichTbGenericHisto(aStep); - } -void RichTbSteppingAction:: RichTbDebugHisto(const G4Step* aStep){ +void RichTbSteppingAction:: RichTbDebugHisto(const G4Step*) +{ } -void RichTbSteppingAction::RichTbGenericHisto(const G4Step* aStep) { - - - +void RichTbSteppingAction::RichTbGenericHisto(const G4Step* aStep) +{ G4StepPoint* pPreStepPoint = aStep ->GetPreStepPoint(); G4StepPoint* pPostStepPoint = aStep ->GetPostStepPoint(); const G4ThreeVector prePos= pPreStepPoint->GetPosition(); const G4ThreeVector postPos= pPostStepPoint->GetPosition(); - //In the following 1000 mm is the Z coord of a point + + // In the following 1000 mm is the Z coord of a point // between the mirror and the dowstream end of the vessel. - if(prePos.z()<1000*mm && prePos.z() > 0.0*mm ){ - //check to see if we are at a boundary + if(prePos.z()<1000*mm && prePos.z() > 0.0*mm ) + { + //check to see if we are at a boundary + if (pPostStepPoint->GetStepStatus() == fGeomBoundary) + { - if (pPostStepPoint->GetStepStatus() == fGeomBoundary){ + G4Track* aPhotTrack = aStep -> GetTrack(); + const G4DynamicParticle* aParticle = aPhotTrack->GetDynamicParticle(); + const G4double PhotonEnergy = aParticle->GetKineticEnergy(); - - - G4Track* aPhotTrack = aStep -> GetTrack(); - const G4DynamicParticle* aParticle = aPhotTrack->GetDynamicParticle(); - const G4double PhotonEnergy = - aParticle->GetKineticEnergy(); + G4String VolNameD="Agel"; + G4String VolNameE="VesselEnclosure"; + G4String VolNameF="MirrorSphe"; + G4String VolNameG="RadFrame"; + G4String VolNameH="FilterBox"; + G4String VolNameQ="HpdQuartzWindow"; + G4String VolNameP="HpdMaster"; - - - - G4String VolNameD="Agel"; - G4String VolNameE="VesselEnclosure"; - G4String VolNameF="MirrorSphe"; - G4String VolNameG="RadFrame"; - G4String VolNameH="FilterBox"; - G4String VolNameQ="HpdQuartzWindow"; - G4String VolNameP="HpdMaster"; - - // - - if( aParticle->GetDefinition() == G4OpticalPhoton::OpticalPhoton()){ - - - - if( pPreStepPoint -> GetPhysicalVolume() && - pPostStepPoint -> GetPhysicalVolume() ) { - G4String tpreVol = pPreStepPoint -> GetPhysicalVolume()->GetName(); - G4String tpostVol = pPostStepPoint -> GetPhysicalVolume()->GetName(); - - - - - - if(richtbRunConfig-> GetRichTbParticleEnergyCode() == 1 || - richtbRunConfig-> GetRichTbParticleEnergyCode() == 2 ) { - - // Optical photons are generated as beam particle. - // count the photons entering the aerogel volume. - // this is essentially same as the photons generated. - if(( tpreVol == VolNameG || tpreVol == VolNameE ) && - tpostVol == VolNameD ) { + if( aParticle->GetDefinition() == G4OpticalPhoton::OpticalPhoton()) + { + if( pPreStepPoint -> GetPhysicalVolume() && + pPostStepPoint -> GetPhysicalVolume() ) + { + G4String tpreVol = pPreStepPoint->GetPhysicalVolume()->GetName(); + G4String tpostVol = pPostStepPoint->GetPhysicalVolume()->GetName(); #ifdef G4ANALISYS_USE - - RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); - analysis->bumpNumPhotonsBeforeAerogel(); + if(richtbRunConfig-> GetRichTbParticleEnergyCode() == 1 || + richtbRunConfig-> GetRichTbParticleEnergyCode() == 2 ) + { + // Optical photons are generated as beam particle. + // count the photons entering the aerogel volume. + // this is essentially same as the photons generated. + + if(( tpreVol == VolNameG || tpreVol == VolNameE ) && + ( tpostVol == VolNameD ) ) + { + RichTbAnalysisManager * analysis = + RichTbAnalysisManager::getInstance(); + analysis->bumpNumPhotonsBeforeAerogel(); + } + } #endif + if(PhotonEnergy > 0.0 ) + { - } + const G4double PhotonWavelength = + PhotMomWaveConv*1.0*eV/ PhotonEnergy; - - } - - - if(PhotonEnergy > 0.0 ) { - - const G4double PhotonWavelength = - PhotMomWaveConv*1.0*eV/ PhotonEnergy; - - // G4String tpreVol = pPreStepPoint -> GetPhysicalVolume()->GetName(); G4String tpostVol = pPostStepPoint -> GetPhysicalVolume()->GetName(); - // First for the mirror volume + + // First for the mirror volume #ifdef G4ANALYSIS_USE - - RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); - - - - if(tpreVol == VolNameE && tpostVol == VolNameF ) { - + RichTbAnalysisManager * analysis = + RichTbAnalysisManager::getInstance(); + if(tpreVol == VolNameE && tpostVol == VolNameF ) + { analysis->getfhistoWBeforeMirror()->fill(PhotonWavelength); - - - analysis->bumpNumPhotonsBeforeMirror(); - - - + } + if(tpreVol == VolNameF && tpostVol == VolNameE ) + { + analysis->getfhistoWAfterMirror()->fill(PhotonWavelength); + analysis->bumpNumPhotonsAfterMirror(); } - if(tpreVol == VolNameF && tpostVol == VolNameE ) { - - analysis->getfhistoWAfterMirror()->fill(PhotonWavelength); - analysis->bumpNumPhotonsAfterMirror(); - - - -#endif - } -// - - - //Now for the Aerogel Volume - if(richtbRunConfig-> GetRichTbParticleEnergyCode() == 0 ) { - - if(( tpreVol == VolNameG || tpreVol == VolNameE ) && - tpostVol == VolNameD ) { - - if(prePos.z() < postPos.z() ) { - -#ifdef G4ANALYSIS_USE + //Now for the Aerogel Volume + if(richtbRunConfig-> GetRichTbParticleEnergyCode() == 0 ) + { + if(( tpreVol == VolNameG || tpreVol == VolNameE ) && + ( tpostVol == VolNameD ) ) + { + if(prePos.z() < postPos.z() ) + { RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); analysis->bumpNumPhotonsBeforeAerogel(); - + } + } + } #endif - } - } - } + if( ( tpreVol == VolNameD ) && + ( tpostVol == VolNameG || tpostVol == VolNameE ) ) + { - if(tpreVol == VolNameD && - ( tpostVol == VolNameG || tpostVol == VolNameE ) ) { - - // G4double XatAgelExit=postPos.x(); - //G4double YatAgelExit=postPos.y(); - //G4double ZatAgelExit=postPos.z(); - const G4ThreeVector PhotCurMom = - aPhotTrack->GetMomentumDirection(); - //G4double CurExitangle= acos(PhotCurMom.z()); + // G4double XatAgelExit=postPos.x(); + // G4double YatAgelExit=postPos.y(); + // G4double ZatAgelExit=postPos.z(); + const G4ThreeVector PhotCurMom = + aPhotTrack->GetMomentumDirection(); + // G4double CurExitangle= acos(PhotCurMom.z()); - // Plot the Angle of emission of the photon. - // When there is no Raylegh scattering this is the - // Cherenkov angle. For now we only consider the charged - // track to be of direction 001. Later this may be changed. - // So the angle considered is just the angle of the photon - // track. + // Plot the Angle of emission of the photon. + // When there is no Raylegh scattering this is the + // Cherenkov angle. For now we only consider the charged + // track to be of direction 001. Later this may be changed. + // So the angle considered is just the angle of the photon + // track. #ifdef G4ANALYSIS_USE - RichTbAnalysisManager * analysis = RichTbAnalysisManager::getInstance(); + RichTbAnalysisManager * analysis = + RichTbAnalysisManager::getInstance(); - const G4ThreeVector PhotOrgUnitMom = - aPhotTrack->GetVertexMomentumDirection(); - G4double Ckv_angle= acos(PhotOrgUnitMom.z()); + const G4ThreeVector PhotOrgUnitMom = + aPhotTrack->GetVertexMomentumDirection(); + G4double Ckv_angle= acos(PhotOrgUnitMom.z()); - analysis->getfhistoCkvProdSmall()->fill(Ckv_angle); + analysis->getfhistoCkvProdSmall()->fill(Ckv_angle); - //Now for the photon emission point in aerogel + // Now for the photon emission point in aerogel - const G4ThreeVector PhotEmisPt = aPhotTrack->GetVertexPosition(); - - analysis->getfhistoEmisZ()->fill( PhotEmisPt.z()); - + const G4ThreeVector PhotEmisPt = aPhotTrack->GetVertexPosition(); + analysis->getfhistoEmisZ()->fill( PhotEmisPt.z()); #endif - - } - - + } } - - } } + } } - - } - + } } - - - - - - diff --git a/examples/advanced/Rich/src/RichTbVisManager.cc b/examples/advanced/Rich/src/RichTbVisManager.cc index a58b4ce56a..0bf4b4c30d 100644 --- a/examples/advanced/Rich/src/RichTbVisManager.cc +++ b/examples/advanced/Rich/src/RichTbVisManager.cc @@ -32,19 +32,22 @@ // Supported drivers... +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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" @@ -61,7 +64,7 @@ #endif #ifdef G4VIS_USE_OIX -// #include "G4OpenInventorX.hh" +#include "G4OpenInventorX.hh" #endif #ifdef G4VIS_USE_OIWIN32 @@ -73,15 +76,6 @@ #include "G4VRML2.hh" #endif -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -#ifdef G4VIS_USE_RAYTRACER -#include "G4RayTracer.hh" -#endif - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... RichTbVisManager::RichTbVisManager () { ; } @@ -91,19 +85,22 @@ RichTbVisManager::~RichTbVisManager () {;} void RichTbVisManager::RegisterGraphicsSystems () { + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... + #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); @@ -120,7 +117,7 @@ void RichTbVisManager::RegisterGraphicsSystems () { #endif #ifdef G4VIS_USE_OIX - // RegisterGraphicsSystem (new G4OpenInventorX); + RegisterGraphicsSystem (new G4OpenInventorX); #endif #ifdef G4VIS_USE_OIWIN32 @@ -132,15 +129,6 @@ void RichTbVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4VRML2); #endif -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - -#ifdef G4VIS_USE_RAYTRACER - RegisterGraphicsSystem (new G4RayTracer); -#endif - if (fVerbose > 0) { G4cout << "\nYou have successfully chosen to use the following graphics systems." diff --git a/examples/advanced/Tiara/GNUmakefile b/examples/advanced/Tiara/GNUmakefile index 8e83a953a4..efeaaeef9e 100644 --- a/examples/advanced/Tiara/GNUmakefile +++ b/examples/advanced/Tiara/GNUmakefile @@ -1,6 +1,6 @@ -# $Id: GNUmakefile,v 1.2 2003/06/16 17:06:43 dressel Exp $ +# $Id: GNUmakefile,v 1.5 2003/12/08 17:53:25 gcosmo Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # -------------------------------------------------------------- @@ -10,7 +10,8 @@ TIARA_SRC_SWIG_DIRS = CLHEPWrapper G4KernelWrapper TiaraWrapper include $(G4INSTALL)/config/architecture.gmk -.PHONY: Tiara tiaraClean swigClean +.PHONY: Tiara tiaraClean swigClean all +all: Tiara Tiara: @for dir in $(TIARA_SRC_DIRS); do ( cd source/$$dir && $(MAKE)); done;: @@ -22,3 +23,4 @@ tiaraClean: swigClean: @for dir in $(TIARA_SRC_SWIG_DIRS); do ( cd source/$$dir && $(MAKE) swigClean); done;: + diff --git a/examples/advanced/Tiara/History b/examples/advanced/Tiara/History index 2ba26041ed..bc3461ce81 100644 --- a/examples/advanced/Tiara/History +++ b/examples/advanced/Tiara/History @@ -1,6 +1,6 @@ -# $Id: History,v 1.8 2003/06/20 15:34:37 dressel Exp $ +# $Id: History,v 1.18 2003/12/09 08:48:33 daquinog Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- ========================================================= @@ -18,6 +18,45 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Dec 9th, 2003 G.Daquino - Tiara-V05-02-06 +- Fixed implementation of TiaraPrimaryGeneratorAction, where copy + constructor and operator=() definitions were commented out by mistake + by V.Ivantchenko. + +Dec 8th, 2003 G.Cosmo - Tiara-V05-02-05 +- Restored some classes in physics_lists package and fixed setup + configuration. + +Dec 5th, 2003 G.Cosmo - Tiara-V05-02-04 +- Changed LISTS_BASE to G4LISTS_BASE for hadronic physics lists path. + Cowork with "ghad-lists-V05-02-01". + +Dec 4th, 2003 G.Cosmo - Tiara-V05-02-03 +- Fixed build setup. Added references to new physics-lists structure. +- Corrected setup for SWIG to point to default installation under /usr. + +Dec 3rd, 2003 H.P.Wellisch +- Removed hadronics physics-lists. Now using default setup provided + in $G4INSTALL/hadronic_lists. + +Nov 20th, 2003 V.Ivanchenko - Tiara-V05-02-02 +- Decays for all particles + +Nov 13th, 2003 John Allison +- Removed OPACS from Vis Manager. + +Nov 07th, 2003 V.Ivanchenko - Tiara-V05-02-01 +- Remove STD from physics +- Cleanup GNUmakefiles and warnings + +Aug 08th, 2003 M.Dressel - Tiara-V05-02-00 +- important update of README + +Jul 08th, 2003 M.Dressel - Tiara-B05-01-05 +- this together with geant4-05-02-ref-00 is used for the check for + large deviations in 68c100 simulation + Jun 20th, 2003 M.Dressel - Tiara-V05-01-04 - using CLHEP units replacing G4Dimensions.hh @@ -27,10 +66,8 @@ Jun 18th, 2003 M.Dressel - Tiara-V05-01-03 Jun 17th, 2003 M.Dressel - Tiara-V05-01-02 - changes for rh73 with gcc-2.95.2 and rh73 with gcc-3.2 -June 16th, 2003 M.Dressel - Tiara-V05-01-01 +Jun 16th, 2003 M.Dressel - Tiara-V05-01-01 - building with gmake supported, cvs meta info added - -June 12th, 2003 M.Dressel - Tiara-V05-01-00 +Jun 12th, 2003 M.Dressel - Tiara-V05-01-00 - Created - diff --git a/examples/advanced/Tiara/README b/examples/advanced/Tiara/README index c7ea19fe5c..10bb832f60 100644 --- a/examples/advanced/Tiara/README +++ b/examples/advanced/Tiara/README @@ -1,6 +1,6 @@ -# $Id: README,v 1.11 2003/06/18 12:27:46 dressel Exp $ +# $Id: README,v 1.15 2003/12/08 17:53:25 gcosmo Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- Simulation of the TIARA experiment using importance sampling @@ -20,15 +20,13 @@ behind the shields. Users may chose to run the simulation for different shielding configuration with or without importance sampling. The simulated neutron fluxes are compared to the published experimental data. The efficiency of applying importance sampling -depends strongly on the shied thickness and importance configuration. +depends strongly on the shield thickness and importance configuration. The efficiency of the simulations may be obtained as FOM values. See also "Geant4 User's Guide For Application Developers", Chapter "Toolkit Fundamentals" Section "Event Biasing Techniques" and references there. - - The example has been tested on CERN RH 7.3 with the gcc-3.2 and gcc-2.95.2 compilers. @@ -40,10 +38,10 @@ Note for system testing without analysis: see points 1, 1.3 and 3.2. 1) Setting the environment ========================== -You should have Geant4 compiled with: -"G4LIB_BUILD_SHARED" set to 1. +You must compile Geant4 with: + "G4LIB_BUILD_SHARED" set to 1. You need to set: -"NeutronHPCrossSections" (e.g. to ${G4INSTALL}/data/G4NDL3.7) + "NeutronHPCrossSections" (e.g. to ${G4INSTALL}/data/G4NDL3.7) Three examples are given of how to set environment variables @@ -58,13 +56,14 @@ in the three cases: "ANAPHETOP" (e.g. /afs/cern.ch/sw/lhcxx) "AIDA_DIR" (e.g. /afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp) - "ANAPHE_SCRIPTS" (e.g. /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.4/scripts) + "ANAPHE_SCRIPTS" (e.g. /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.6/scripts) - Finally source the script envCommon.csh + Finally source the script envCommon.csh from the directory + you have Tiara installed, e.g. ${G4INSTALL}/examples/advanced/Tiara -1.2) No afs but a local Anphe and AIDA installation: ----------------------------------------------------- +1.2) No afs but a local Anaphe and AIDA installation: +----------------------------------------------------- You don't use afs but you have a local installation of Anaphe and AIDA (e.g. from http://anaphe.web.cern.ch/anaphe/. Set the following environment variables: @@ -72,17 +71,18 @@ in the three cases: "ANAPHETOP" (e.g. /Anaphe/release) "AIDA_DIR" (e.g. /AIDA/3.0.0/3.0.0/AIDA/3.0/src/cpp) - "ANAPHE_SCRIPTS" (e.g. ${ANAPHETOP}/share/LHCXX/5.0.5/scripts) + "ANAPHE_SCRIPTS" (e.g. ${ANAPHETOP}/share/LHCXX/5.0.6/scripts) here is a place holder for your directory with the respective installations of Anaphe and AIDA - Finally source the script envCommon.csh + Finally source the script envCommon.csh from the directory + you have Tiara installed, e.g. ${G4INSTALL}/examples/advanced/Tiara -1.3) No afs and no Anaphe and no AIDA (e.g. for system testing): ----------------------------------------------------------------- - You don't want to use Anaphe and AIDA and you don't have no afs access. +1.3) No afs, no Anaphe and no AIDA (e.g. for system testing): +------------------------------------------------------------- + You don't want to use Anaphe and AIDA and you don't have afs access. Make sure "G4ANALYSIS_USE" is unset (e.g. unsetenv G4ANALYSIS_USE). Note: python must be built against a "libc". @@ -92,14 +92,13 @@ in the three cases: Set the following environment variables: "PYTHONVERSION" (2.2 or higher) - "PYTHON_BASE_DIR" (e.g. to /usr/) - + "PYTHON_BASE_DIR" (e.g. to /usr) "SWIG_VERSION" (e.g. 1.3 or higher) - "SWIG_BASE_DIR" (e.g. /users/dressel/local) + "SWIG_BASE_DIR" (e.g. /usr) + "CLHEP_BASE_DIR" (e.g. to /opt/local) - "CLHEP_BASE_DIR" (e.g. to /users/dressel/CLHEP) - - Finally source the script envCommon.csh + Finally source the script envCommon.csh from the directory + you have Tiara installed, e.g. ${G4INSTALL}/examples/advanced/Tiara 2) Building the example @@ -114,7 +113,7 @@ Type "gmake". 2.1) In more detail ------------------- -Geant4 should be compiled into granular shared libraries. +Geant4 must be compiled into granular shared libraries. Therefore before compiling Geant4 set "G4LIB_BUILD_SHARED" to "1". External packages used in this example are Anaphe, SWIG and Python. @@ -126,7 +125,7 @@ this example if Anaphe is used. 2.2) Cleaning up ---------------- To remove the files created by swig ( *_wrap.cc, the corresponding -.py files) use "gmake swigClean. +.py files) use "gmake swigClean". To remove the directories of compiled code related to this example under $G4WORKDIR/tmp/$G4SYSTEM/ use "gmake tiaraClean". @@ -152,7 +151,7 @@ results may be viewed e.g. using lizard and scripts: 2) type: import dataAcess 3) type: p = dataAcess.ExpMcPlot (shelveFileName,detectorposition) where "shelveFileName" is the name (enclosed in quotes) of the - shelve file created during the execution of anaSim.py. + shelve file created during the execution of runSim.py. The name is printed on the screen during execution of runSim.py. "detectorposition" may be "00, "20" or "40" and stand for the detectors 00, 20, 40 cm off beam axis respectively. @@ -162,7 +161,7 @@ results may be viewed e.g. using lizard and scripts: p.she is the shelve object containing simulation results. This prints the FOM values for the used detectors for two energy regions below and in the peak region. - The FOM are should be compared to unbiased simulations. To run + The FOM should be compared to unbiased simulations. To run an unbiased simulation set the importance values to one (see runSim.py) @@ -249,7 +248,7 @@ run / - directory for running the example This example is composed out of a layer of classes written in C++ (source/tiara/include, source/tiara/src), a layer of python shadow classes created by swig (source/CLHEPWrapper, -source/G4KernelWrapper, source/TiaraWrapper) and layer of +source/G4KernelWrapper, source/TiaraWrapper) and a layer of python modules (source/py_modules). The C++ layer under source/tiara provides lower level classes closely related to the Geant4 kernel. @@ -264,7 +263,7 @@ modules created by swig are imported into python (in a session or a script) the corresponding C++ library is automatically loaded as well. The python modules in source/py_modules provide classes and functions that may be changed or customized more frequently than the C++ classes -in source/tiara. These classes complete the construction of geometries +in source/tiara. These classes complete the construction of geometries, take care of the procedure of setting up the simulation, the run sequence and the analysis after the simulation has been ran. The script runSim.py is an commented example of using the python modules diff --git a/examples/advanced/Tiara/envCommon.csh b/examples/advanced/Tiara/envCommon.csh index e7fd4189c2..3364357041 100644 --- a/examples/advanced/Tiara/envCommon.csh +++ b/examples/advanced/Tiara/envCommon.csh @@ -1,109 +1,88 @@ -# $Id: envCommon.csh,v 1.6 2003/06/18 11:56:46 dressel Exp $ +# $Id: envCommon.csh,v 1.8 2003/12/08 17:53:26 gcosmo Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ +# ------------------------------------------------------------------- +# Before sourcing this script make sure you have set the +# environment variables according to the description in README. # ------------------------------------------------------------------- -# before sourcing this script make sure you have set the -# environment variables according to the description in README - - -# setting in case Anaphe is used +# setup in case Anaphe is used -------------------------------------- if (${?ANAPHE_SCRIPTS} == 1 && ${?ANAPHETOP} == 1 && ${?AIDA_DIR} == 1 ) then -if ( -f $ANAPHE_SCRIPTS/setupAnaphe.csh ) then -source $ANAPHE_SCRIPTS/setupAnaphe.csh -else if ( -f $ANAPHE_SCRIPTS/setup-Anaphe.csh) then -source $ANAPHE_SCRIPTS/setup-Anaphe.csh -else -echo "envCommon.csh: ERROR: could not find a setup file for anaphe" -exit -endif -setenv PATH ${ANAPHE_SCRIPTS}:$PATH -setenv ANAPHESPECDIR `(cd $ANAPHE_REL_DIR/../; pwd)` - -# python from Anaphe -setenv PYTHONVERSION 2.2 - -setenv PYTHON_INCLUDE_DIR ${ANAPHESPECDIR}/PublicDomainPackages/2.0.0/include/python${PYTHONVERSION} -setenv PYTHON_LIB_DIR ${ANAPHESPECDIR}/PublicDomainPackages/2.0.0/lib/python${PYTHONVERSION}/config - -# set the swig command -setenv SWIG_VERSION 1.3.15 -setenv SWIG_BASE_DIR ${ANAPHESPECDIR}/PublicDomainPackages/2.0.0 -setenv SWIG_INCDIRS "-I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION} -I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION}/python" -setenv SWIG ${SWIG_BASE_DIR}/bin/swig-${SWIG_VERSION} - -# CLHEP access -setenv CLHEP_BASE_DIR ${ANAPHETOP}/specific/${PLATF}/CLHEP/1.8.0.0/ - - -setenv PATH ${ANAPHETOP}/share/LHCXX/${ANAPHE_VERSION}/scripts:${PATH} - - - - - - - - - + if ( -f $ANAPHE_SCRIPTS/setupAnaphe.csh ) then + source $ANAPHE_SCRIPTS/setupAnaphe.csh + else if ( -f $ANAPHE_SCRIPTS/setup-Anaphe.csh) then + source $ANAPHE_SCRIPTS/setup-Anaphe.csh + else + echo "envCommon.csh: ERROR: could not find a setup file for anaphe" + exit + endif + setenv PATH ${ANAPHE_SCRIPTS}:$PATH + setenv ANAPHESPECDIR `(cd $ANAPHE_REL_DIR/../; pwd)` + # + # python from Anaphe + # + setenv PYTHONVERSION 2.2 + setenv PYTHON_INCLUDE_DIR ${ANAPHESPECDIR}/PublicDomainPackages/2.0.0/include/python${PYTHONVERSION} + setenv PYTHON_LIB_DIR ${ANAPHESPECDIR}/PublicDomainPackages/2.0.0/lib/python${PYTHONVERSION}/config + # + # setup the swig command + # + setenv SWIG_VERSION 1.3.15 + setenv SWIG_BASE_DIR ${ANAPHESPECDIR}/PublicDomainPackages/2.0.0 + setenv SWIG_INCDIRS "-I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION} -I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION}/python" + setenv SWIG ${SWIG_BASE_DIR}/bin/swig-${SWIG_VERSION} + # + # CLHEP from Anaphe (shared libraries are required) + # + setenv CLHEP_BASE_DIR ${ANAPHETOP}/specific/${PLATF}/CLHEP/1.8.0.0 + # + # add scripts path to PATH + # + setenv PATH ${ANAPHETOP}/share/LHCXX/${ANAPHE_VERSION}/scripts:${PATH} else # not using Anaphe - - - -echo "envCommon.csh: INFO: Anaphe is not used since ANAPHE_SCRIPTS or ANAPHETOP or AIDA_DIR is not set" - -if ( ${?PYTHONVERSION} == 1 && \ - ${?PYTHON_BASE_DIR} == 1 && \ - ${?SWIG_BASE_DIR} == 1 && \ - ${?SWIG_VERSION} == 1 && \ - ${?CLHEP_BASE_DIR} == 1) then # settings without Anaphe - -setenv PYTHON_LIB_DIR ${PYTHON_BASE_DIR}/lib/python${PYTHONVERSION}/config -setenv PYTHON_INCLUDE_DIR ${PYTHON_BASE_DIR}/include/python${PYTHONVERSION} - -if ( ! -d $PYTHON_LIB_DIR ) then -echo envCommon.csh: ERROR: no pyhton lib/config directory: $PYTHON_LIB_DIR -endif - -if ( ! -d $PYTHON_INCLUDE_DIR ) then -echo envCommon.csh: ERROR: no pyhton include directory: $PYTHON_INCLUDE_DIR -endif - - -setenv SWIG_INCDIRS "-I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION} -I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION}/python" -if ( -x ${SWIG_BASE_DIR}/bin/swig-${SWIG_VERSION} ) then -setenv SWIG ${SWIG_BASE_DIR}/bin/swig-${SWIG_VERSION} -else if ( -x ${SWIG_BASE_DIR}/bin/swig ) then -setenv SWIG ${SWIG_BASE_DIR}/bin/swig -else -echo envCommon.csh: ERROR: could not find swig executable -endif - -else # environment not completed in case no Anaphe is used - -echo "envCommon.csh: ERROR: PYTHONVERSION or PYTHON_BASE_DIR or SWIG_BASE_DIR or SWIG_VERSION or CLHEP_BASE_DIR not set!" -exit - -endif + echo "-- WARNING: histograms are not activated !" + echo " Either ANAPHE_SCRIPTS, ANAPHETOP or AIDA_DIR are not set." + # + if ( ${?PYTHONVERSION} == 1 && \ + ${?PYTHON_BASE_DIR} == 1 && \ + ${?SWIG_BASE_DIR} == 1 && \ + ${?SWIG_VERSION} == 1 && \ + ${?CLHEP_BASE_DIR} == 1) then # settings without Anaphe + setenv PYTHON_LIB_DIR ${PYTHON_BASE_DIR}/lib/python${PYTHONVERSION}/config + setenv PYTHON_INCLUDE_DIR ${PYTHON_BASE_DIR}/include/python${PYTHONVERSION} + # + if ( ! -d $PYTHON_LIB_DIR ) then + echo -- ERROR: no pyhton lib/config directory: $PYTHON_LIB_DIR + endif + if ( ! -d $PYTHON_INCLUDE_DIR ) then + echo -- ERROR: no pyhton include directory: $PYTHON_INCLUDE_DIR + endif + # + setenv SWIG_INCDIRS "-I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION} -I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION}/python" + if ( -x ${SWIG_BASE_DIR}/bin/swig-${SWIG_VERSION} ) then + setenv SWIG ${SWIG_BASE_DIR}/bin/swig-${SWIG_VERSION} + else if ( -x ${SWIG_BASE_DIR}/bin/swig ) then + setenv SWIG ${SWIG_BASE_DIR}/bin/swig + else + echo -- ERROR: could not find swig executable ! + endif + else # environment not completed in case no Anaphe is used + echo "-- ERROR: PYTHONVERSION or PYTHON_BASE_DIR or SWIG_BASE_DIR or SWIG_VERSION or CLHEP_BASE_DIR not set!" + exit + endif endif # end settings for not using Anaphe - - - - - - - -# common setings - +# +# common settings +# if (${?LD_LIBRARY_PATH} == 0) then -setenv LD_LIBRARY_PATH + setenv LD_LIBRARY_PATH endif setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/TiaraWrapper setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/G4KernelWrapper @@ -115,14 +94,11 @@ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM} setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${PYTHON_LIB_DIR} setenv TIARA_BASE `pwd` setenv TIARASCRIPTS ${TIARA_BASE}/source/py_modules - if (${?PYTHONPATH} == 0) then -setenv PYTHONPATH + setenv PYTHONPATH endif setenv PYTHONPATH ${PYTHONPATH}:${LD_LIBRARY_PATH} setenv PYTHONPATH ${PYTHONPATH}:${TIARA_BASE}/run:${TIARASCRIPTS} setenv PYTHONPATH ${PYTHONPATH}:${TIARA_BASE}/source/TiaraWrapper setenv PYTHONPATH ${PYTHONPATH}:${TIARA_BASE}/source/G4KernelWrapper setenv PYTHONPATH ${PYTHONPATH}:${TIARA_BASE}/source/CLHEPWrapper - - diff --git a/examples/advanced/Tiara/run/runSim.py b/examples/advanced/Tiara/run/runSim.py index e921b49366..b4e1984d03 100755 --- a/examples/advanced/Tiara/run/runSim.py +++ b/examples/advanced/Tiara/run/runSim.py @@ -2,7 +2,7 @@ # # $Id: runSim.py,v 1.7 2003/06/20 12:41:06 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # importing python libraries diff --git a/examples/advanced/Tiara/run/runSimNoAnalysis.py b/examples/advanced/Tiara/run/runSimNoAnalysis.py index 9bd08cf64e..50da942f78 100755 --- a/examples/advanced/Tiara/run/runSimNoAnalysis.py +++ b/examples/advanced/Tiara/run/runSimNoAnalysis.py @@ -2,7 +2,7 @@ # # $Id: runSimNoAnalysis.py,v 1.3 2003/06/20 12:41:06 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/run/runVisMode.py b/examples/advanced/Tiara/run/runVisMode.py index 7d902acf9c..e394ecc365 100644 --- a/examples/advanced/Tiara/run/runVisMode.py +++ b/examples/advanced/Tiara/run/runVisMode.py @@ -2,7 +2,7 @@ # # $Id: runVisMode.py,v 1.3 2003/06/20 12:41:06 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/run/vis.mac b/examples/advanced/Tiara/run/vis.mac index 4a464dbe09..9829bcdc63 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i b/examples/advanced/Tiara/source/CLHEPWrapper/include/CLHEP.i index bd4b7eef98..9a6b3a157c 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.3 2003/06/20 12:41:06 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- diff --git a/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i b/examples/advanced/Tiara/source/G4KernelWrapper/G4String.i index 5253ba5c0e..81e43cc814 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- // coppied from std_string.i diff --git a/examples/advanced/Tiara/source/G4KernelWrapper/GNUmakefile b/examples/advanced/Tiara/source/G4KernelWrapper/GNUmakefile index ce936d287a..e76d84c0fe 100644 --- a/examples/advanced/Tiara/source/G4KernelWrapper/GNUmakefile +++ b/examples/advanced/Tiara/source/G4KernelWrapper/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2003/06/20 12:41:06 dressel Exp $ +# $Id: GNUmakefile,v 1.5 2003/12/08 17:53:26 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile Michael Dressel # -------------------------------------------------------------- @@ -12,33 +12,25 @@ ifndef G4INSTALL endif include $(G4INSTALL)/config/architecture.gmk - SWIGFLAGS = -I./ \ -I${G4INSTALL}/source/global/management/include \ -I${G4INSTALL}/source/geometry/biasing/include \ - -I${G4INSTALL}/source/digits+hits/detector/include \ + -I${G4INSTALL}/source/digits_hits/detector/include \ -I${G4INSTALL}/source/event/include \ -I${G4INSTALL}/source/processes/transportation/include \ -I${TIARA_BASE}/source/CLHEPWrapper/include \ -I${CLHEP_BASE_DIR}/include - include $(TIARA_BASE)/source/swig.gmk - .PHONY: all tiaraClean all: $(SWIGSO) include $(G4INSTALL)/config/binmake.gmk - - CPPFLAGS += -I$(PYTHON_INCLUDE_DIR) - - LDFLAGS += -L$(PYTHON_LIB_DIR) - LDLIBS += -lpython$(PYTHONVERSION) \ -lnsl \ -ldl \ @@ -48,8 +40,6 @@ LDLIBS += -lpython$(PYTHONVERSION) \ -lpthread \ -lutil - - tiaraClean: @echo Cleaning up $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name) @rm -rf $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name) diff --git a/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i b/examples/advanced/Tiara/source/G4KernelWrapper/include/G4Kernel.i index ba2a85fa97..7ad15dc021 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 $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- %module G4Kernel diff --git a/examples/advanced/Tiara/source/TiaraWrapper/GNUmakefile b/examples/advanced/Tiara/source/TiaraWrapper/GNUmakefile index a30d878ad7..6d139db65a 100644 --- a/examples/advanced/Tiara/source/TiaraWrapper/GNUmakefile +++ b/examples/advanced/Tiara/source/TiaraWrapper/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2003/06/20 12:41:06 dressel Exp $ +# $Id: GNUmakefile,v 1.6 2003/12/08 17:53:26 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile Michael Dressel # -------------------------------------------------------------- @@ -15,7 +15,7 @@ include $(G4INSTALL)/config/architecture.gmk SWIGFLAGS = -I../G4KernelWrapper \ -I$(G4INSTALL)/source/geometry/biasing/include \ - -I$(G4INSTALL)/source/digits+hits/detector/include \ + -I$(G4INSTALL)/source/digits_hits/detector/include \ -I$(G4INSTALL)/source/event/include \ -I$(G4INSTALL)/source/processes/transportation/include \ -I$(TIARA_BASE)/source/tiara/include \ @@ -24,7 +24,8 @@ SWIGFLAGS = -I../G4KernelWrapper \ -I$(TIARA_BASE)/source/G4KernelWrapper/include \ -I${CLHEP_BASE_DIR}/include - +#include $(TIARA_BASE)/source/hadronic_lists.gmk +#SWIGFLAGS += ${LSTFLAGS} libdirTiara = $(G4WORKDIR)/tmp/$(G4SYSTEM)/tiara SWIG_OBJ_DEP = $(wildcard $(libdirTiara)/*.o) diff --git a/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i b/examples/advanced/Tiara/source/TiaraWrapper/include/Tiara.i index f44b5e8578..ce39d8479e 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.6 2003/06/20 12:09:08 dressel Exp $ +# $Id: Tiara.i,v 1.7 2003/12/08 17:53:26 gcosmo Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- %module Tiara diff --git a/examples/advanced/Tiara/source/hadronic_lists.gmk b/examples/advanced/Tiara/source/hadronic_lists.gmk new file mode 100644 index 0000000000..15706d8d1c --- /dev/null +++ b/examples/advanced/Tiara/source/hadronic_lists.gmk @@ -0,0 +1,103 @@ +# $Id: hadronic_lists.gmk,v 1.4 2003/12/08 17:53:26 gcosmo Exp $ +# -------------------------------------------------------------- +# hadronic physics-lists setup - H.P.Wellisch +# -------------------------------------------------------------- + +ifndef G4LISTS_BASE + EXTRALIBS += -L$(G4LIB)/.lists_build/$(G4SYSTEM) + G4LISTS_BASE = $(G4INSTALL)/hadronic_lists +else + EXTRALIBS += -L$(G4LISTS_BASE)/lists/.lists_build/lib/$(G4SYSTEM) +endif + +EXTRALIBS += -lFTFC +EXTRALIBS += -lFTFP +EXTRALIBS += -lLBE +EXTRALIBS += -lLHEP +EXTRALIBS += -lLHEP_GN +EXTRALIBS += -lLHEP_HP +EXTRALIBS += -lLHEP_LEAD +EXTRALIBS += -lLHEP_LEAD_HP +EXTRALIBS += -lLHEP_PRECO +EXTRALIBS += -lQGSP_BERT +EXTRALIBS += -lLHEP_PRECO_HP +EXTRALIBS += -lQGSC +EXTRALIBS += -lQGSC_LEAD +EXTRALIBS += -lQGSC_LEAD_HP +EXTRALIBS += -lQGSP +EXTRALIBS += -lQGSP_GN +EXTRALIBS += -lQGSP_HP +EXTRALIBS += -lLHEP_BERT +EXTRALIBS += -lLHEP_BIC +EXTRALIBS += -lQGSP_BIC +EXTRALIBS += -lPackaging + +EXTRALIBS += -lG4hadronic_proc +EXTRALIBS += -lG4hadronic_HE +EXTRALIBS += -lG4hadronic_LE +EXTRALIBS += -lG4hadronic_iso +EXTRALIBS += -lG4had_neu_hp +EXTRALIBS += -lG4hadronic_coherent_elastic +EXTRALIBS += -lG4hadronic_hetcpp_evaporation +EXTRALIBS += -lG4hadronic_hetcpp_utils +EXTRALIBS += -lG4hadronic_bert_cascade +EXTRALIBS += -lG4hadronic_interface_ci +EXTRALIBS += -lG4hadronic_body_ci +EXTRALIBS += -lG4hadronic_leading_particle +EXTRALIBS += -lG4hadronic_stop +EXTRALIBS += -lG4hadronic_radioactivedecay + +EXTRALIBS += -lG4had_theo_max +EXTRALIBS += -lG4hadronic_qgstring +EXTRALIBS += -lG4had_string_diff +EXTRALIBS += -lG4had_string_frag +EXTRALIBS += -lG4had_string_man + +EXTRALIBS += -lG4hadronic_binary +EXTRALIBS += -lG4had_im_r_matrix +EXTRALIBS += -lG4had_preequ_exciton +EXTRALIBS += -lG4hadronic_deex_evaporation +EXTRALIBS += -lG4hadronic_deex_fermi_breakup +EXTRALIBS += -lG4hadronic_deex_fission +EXTRALIBS += -lG4hadronic_deex_gem_evaporation +EXTRALIBS += -lG4hadronic_deex_handler +EXTRALIBS += -lG4hadronic_deex_management +EXTRALIBS += -lG4hadronic_deex_multifragmentation +EXTRALIBS += -lG4hadronic_deex_photon_evaporation +EXTRALIBS += -lG4hadronic_deex_util + +EXTRALIBS += -lG4had_mod_man +EXTRALIBS += -lG4had_mod_util + +EXTRALIBS += -lG4hadronic_mgt +EXTRALIBS += -lG4hadronic_xsect +EXTRALIBS += -lG4hadronic_util + +EXTRALIBS += -lG4shortlived + +LSTFLAGS := -I$(G4LISTS_BASE)/lists/FTFC/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/FTFP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LBE/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BERT/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BIC/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_GN/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_HP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BERT_HP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BIC_HP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_LEAD/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_LEAD_HP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_PRECO/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_PRECO_HP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/Packaging/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSC/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSC_LEAD/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSC_LEAD_HP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_BERT/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_BIC/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_GN/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_HP/include +LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_Model/include + +CPPFLAGS += ${LSTFLAGS} diff --git a/examples/advanced/Tiara/source/py_modules/dataAcess.py b/examples/advanced/Tiara/source/py_modules/dataAcess.py index 4608106d25..6ad42a01c4 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.2 2003/06/16 17:06:44 dressel Exp $ +# $Id: dataAcess.py,v 1.3 2003/06/26 11:54:13 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import os @@ -103,12 +103,11 @@ class MC_Data(object): dname = self.baseName + det.name if histo: dname += "_" + histo - sourceDetectorVolume = 9.33 scale = self.getScale (atColiExit) hGen = self.getGeneratedHisto() binEdges = dpsManip.getBinEdges(hGen) dGenScaled = dpsManip.getScaledDPS(hGen, - scale/sourceDetectorVolume, + scale/detector.sourceDetectorVolume, df, dname + "GenScaled") dGenLethScaled = dpsManip.dLogWeightDPS(dGenScaled, df, diff --git a/examples/advanced/Tiara/source/py_modules/detector.py b/examples/advanced/Tiara/source/py_modules/detector.py index a6a1d60f42..edea0c052d 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.2 2003/06/16 17:06:44 dressel Exp $ +# $Id: detector.py,v 1.3 2003/06/26 11:54:13 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # @@ -11,6 +11,7 @@ # For convinience a class Detector is provided to link a detector # position and it's volume. + d00Volume = 1608.8 # volume of the 12.9 cm x 12.9 cm cyinder d20Volume = 20268.3 # volume of the ring at 20 cm d40Volume = 40536.6 # volume of the ring at 40 cm @@ -24,6 +25,21 @@ RingDetectorVolume = {"00":d00Volume, "20":d20Volume, "40":d40Volume} DetectorVolume = {"simple":SimpleDetectorVolume, "ring" :RingDetectorVolume} + +# the area of the beam pipe needed for scaling +beamPipeArea = 93.31 + +# the source detector volume: beamPipeArea * 0.1 cm +sourceDetectorVolume = 9.33 + +# source flux from the TIARA paper +Fexp43_Coli = 1.76E+04 +Fexp43 = 1.94E+04 +Fexp68_Coli = 2.04E+04 +Fexp68 = 2.46E+04 + + + class Detector(object): "Distance and volume of a Detector." def __init__(self, dist, detType): @@ -43,19 +59,19 @@ def detScale(ngen, energy, coli): the proton beam energy. If coli == 1, the flux at the colimator exit is used, else the flux at 401 cm is used. """ - Asrc = 93.31 + Asrc = beamPipeArea Fexp = 0 if energy == "43": if coli == 1: - Fexp = 1.76E+04 + Fexp = Fexp43_Coli else: - Fexp = 1.94E+04 + Fexp = Fexp43 else: if energy == "68": if coli == 1: - Fexp = 2.04E+04 + Fexp = Fexp68_Coli else: - Fexp = 2.46E+04 + Fexp = Fexp68 S = Fexp * Asrc / ngen diff --git a/examples/advanced/Tiara/source/py_modules/dpsManip.py b/examples/advanced/Tiara/source/py_modules/dpsManip.py index f180024643..9de1a8becb 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import math diff --git a/examples/advanced/Tiara/source/py_modules/extractShelve.py b/examples/advanced/Tiara/source/py_modules/extractShelve.py index 96b5df1d78..8ad6a33f2c 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.2 2003/06/16 17:06:44 dressel Exp $ +# $Id: extractShelve.py,v 1.3 2003/07/04 13:26:31 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import string @@ -80,9 +80,16 @@ def getFluxInRegion(she, dist="00", detType="ring", region=1): tally = she["detector_" + dist + "Tally"] m = tally.measures[region] rawFlux = m.sum + mean = m.mean + var = m.getVariance() + n = m.entries + errRel = -1. + if n>0 and var >0 and mean > 0: + errRel = math.sqrt(var/n)/mean nPeakNeutrons = she["generatorTally"].measures[1].sum scale = detector.detScale(nPeakNeutrons, she["energy"], 0) - return rawFlux * scale / detector.DetectorVolume[detType][dist] + return rawFlux * scale / detector.DetectorVolume[detType][dist], errRel + def getFluxes(she, detType = "ring"): @@ -100,9 +107,12 @@ def getFluxes(she, detType = "ring"): for i in range(1,3): fom = getFOM(she, k, i) f = fluxNameD + "_" + "%(i)d" % vars() - v = getFluxInRegion(she, dist, detType, i) - sv = '%1.2E' % (v) - print f, sv, " FOM:", fom - fluxes[f] = sv + flux, errRel = getFluxInRegion(she, dist, detType, i) + errRel*=100 + sFlux = '%1.2E' % (flux) + sErrRel = '%1.0f' % (errRel) + if errRel < 10.0: + sErrRel = '%1.1f' % (errRel) + print f, sFlux, ", errRel:", sErrRel, " FOM:", fom +# fluxes[f] = sFlux return fluxes - diff --git a/examples/advanced/Tiara/source/py_modules/liz.py b/examples/advanced/Tiara/source/py_modules/liz.py index b623dfc6d7..4d05e3e09b 100644 --- a/examples/advanced/Tiara/source/py_modules/liz.py +++ b/examples/advanced/Tiara/source/py_modules/liz.py @@ -1,6 +1,6 @@ # $Id: liz.py,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/myLiz.py b/examples/advanced/Tiara/source/py_modules/myLiz.py index 93e7b2cd2c..f418d39b18 100644 --- a/examples/advanced/Tiara/source/py_modules/myLiz.py +++ b/examples/advanced/Tiara/source/py_modules/myLiz.py @@ -1,6 +1,6 @@ # $Id: myLiz.py,v 1.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import sys diff --git a/examples/advanced/Tiara/source/py_modules/myUtils.py b/examples/advanced/Tiara/source/py_modules/myUtils.py index 49e286310f..9ac48c7e38 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.4 2003/06/20 12:41:06 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/parallelHall.py b/examples/advanced/Tiara/source/py_modules/parallelHall.py index d1c44041ba..781bfedc24 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import G4Kernel diff --git a/examples/advanced/Tiara/source/py_modules/posLog.py b/examples/advanced/Tiara/source/py_modules/posLog.py index 65b998e967..569d576603 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/runSequence.py b/examples/advanced/Tiara/source/py_modules/runSequence.py index 7964b4f5bb..96ef0cdd7c 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.3 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import Tiara diff --git a/examples/advanced/Tiara/source/py_modules/slabGeometry.py b/examples/advanced/Tiara/source/py_modules/slabGeometry.py index 3ff922a232..70f3d38f06 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import math diff --git a/examples/advanced/Tiara/source/py_modules/tallyData.py b/examples/advanced/Tiara/source/py_modules/tallyData.py index 903d4f1942..8bd0f43b14 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # diff --git a/examples/advanced/Tiara/source/py_modules/tiaraApplication.py b/examples/advanced/Tiara/source/py_modules/tiaraApplication.py index 9e64f2be16..ed345c45aa 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.3 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import string diff --git a/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py b/examples/advanced/Tiara/source/py_modules/tiaraDetectors.py index 6ef558fcc7..5c1840fed8 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.3 2003/06/20 12:41:07 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py b/examples/advanced/Tiara/source/py_modules/tiaraGenerators.py index 305693fbca..337231cc7d 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.2 2003/06/16 17:06:44 dressel Exp $ # ------------------------------------------------------------------- -# GEANT4 tag $Name: geant4-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import string diff --git a/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py b/examples/advanced/Tiara/source/py_modules/tiaraSpecifications.py index b5a2ecbc9b..0e40945e57 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import CLHEP diff --git a/examples/advanced/Tiara/source/py_modules/variableGeometry.py b/examples/advanced/Tiara/source/py_modules/variableGeometry.py index 87b5ae8ed1..4914909ba8 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-05-02 $ +# GEANT4 tag $Name: geant4-06-00 $ # ------------------------------------------------------------------- # import G4Kernel diff --git a/examples/advanced/Tiara/source/tiara/GNUmakefile b/examples/advanced/Tiara/source/tiara/GNUmakefile index a9186484ab..10c72abda9 100644 --- a/examples/advanced/Tiara/source/tiara/GNUmakefile +++ b/examples/advanced/Tiara/source/tiara/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2003/06/16 15:36:54 dressel Exp $ +# $Id: GNUmakefile,v 1.5 2003/12/08 17:53:26 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile Michael Dressel # -------------------------------------------------------------- @@ -10,34 +10,34 @@ G4EXLIB := true ifndef G4INSTALL G4INSTALL = ../.. endif + include $(G4INSTALL)/config/architecture.gmk +EXTRALIBS += -L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiaraPhysicsPackaging \ + -L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiaraPhysicsLists \ + -ltiaraPhysicsLists \ + -ltiaraPhysicsPackaging-handMade + +include $(TIARA_BASE)/source/hadronic_lists.gmk + .PHONY: all tiaraClean all: lib bin - - - include $(G4INSTALL)/config/binmake.gmk ifdef G4ANALYSIS_USE -CPPFLAGS += `$(ANAPHE_SCRIPTS)/aida-config -i` + CPPFLAGS += `$(ANAPHE_SCRIPTS)/aida-config -i` endif CPPFLAGS += -I$(PYTHON_INCLUDE_DIR) \ -I$(TIARA_BASE)/source/tiaraPhysicsPackaging/include \ -I$(TIARA_BASE)/source/tiaraPhysicsLists/include -LDFLAGS += -L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiaraPhysicsPackaging \ - -L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiaraPhysicsLists \ - -L$(PYTHON_LIB_DIR) - -LDLIBS1 += -ltiaraPhysicsLists \ - -ltiaraPhysicsPackaging-handMade +LDFLAGS += -L$(PYTHON_LIB_DIR) ifdef G4ANALYSIS_USE -LDLIBS += `$(ANAPHE_SCRIPTS)/aida-config -l` + LDLIBS += `$(ANAPHE_SCRIPTS)/aida-config -l` endif LDLIBS += -lpython$(PYTHONVERSION) \ diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorer.hh index 2a5aa0736e..7210d214cb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class TiaraCellScorer diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh b/examples/advanced/Tiara/source/tiara/include/TiaraCellScorerStore.hh index 1f43854c6f..0b1c541e2c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class TiaraCellScorerStore diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldA.hh index f1962e296c..4c9aa3ea1d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh b/examples/advanced/Tiara/source/tiara/include/TiaraConcreteShieldB.hh index a33842978a..2eaea63f55 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh b/examples/advanced/Tiara/source/tiara/include/TiaraDPSSampledEnergy.hh index e2d5bb5f7c..f71c2e7637 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.5 2003/06/25 09:12:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh b/examples/advanced/Tiara/source/tiara/include/TiaraDimensions.hh index 3febb520fb..8fb18d3274 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh b/examples/advanced/Tiara/source/tiara/include/TiaraEnergyCutProcess.hh index c7c4e500ef..ee7c9485e2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh b/examples/advanced/Tiara/source/tiara/include/TiaraFileAcess.hh index 9d309968b9..e970e93a2a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraFixedEnergyGenerator.hh index 5d50f4f28e..b1aea8face 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh b/examples/advanced/Tiara/source/tiara/include/TiaraGeometry.hh index 8f1d1d58b0..382a6e8787 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldA.hh index 3fc347811d..44bca0b7c8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIronShieldB.hh index 94621ea902..4a92f17fa8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh b/examples/advanced/Tiara/source/tiara/include/TiaraIsotropicDirections.hh index bc877ca560..b608bfd0fb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh b/examples/advanced/Tiara/source/tiara/include/TiaraMaterials.hh index f665ed7c42..e03a6bfa3d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh b/examples/advanced/Tiara/source/tiara/include/TiaraMeasure.hh index 2add76d8cd..151d9ac9c9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPart.hh index 51057f6a89..7fbce449bd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPhysicsList.hh index 444a72403b..22cfe66cfa 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class TiaraPhysicsList diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraPrimaryGeneratorAction.hh index 01c735168d..14a6d75a15 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 472b0cf831..6a50a0907d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh b/examples/advanced/Tiara/source/tiara/include/TiaraSampledEnergy.hh index 2b6e35b967..13af95a64e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh b/examples/advanced/Tiara/source/tiara/include/TiaraSim.hh index cc1863524f..a9bd7f22a0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh b/examples/advanced/Tiara/source/tiara/include/TiaraTally.hh index 8e7bba9d43..f032536038 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraTimedEventAction.hh index d0cb0998f2..4626eab698 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class TiaraTimedEventAction diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVComponent.hh index 0034277862..83a6a958ef 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVDirectionGenerator.hh index cea8089285..472b8846b5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVSourceEnergyGenerator.hh index e1c1ffc4d2..126b189a48 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVisEventAction.hh index 6d4b3e6510..714c0efad0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class TiaraVisEventAction diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVisManager.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVisManager.hh index 8777872ecc..ccd9ca86a6 100644 --- a/examples/advanced/Tiara/source/tiara/include/TiaraVisManager.hh +++ b/examples/advanced/Tiara/source/tiara/include/TiaraVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: TiaraVisManager.hh,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh b/examples/advanced/Tiara/source/tiara/include/TiaraVisRunAction.hh index ecf8f9ec69..86e6933c7e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class TiaraVisRunAction diff --git a/examples/advanced/Tiara/source/tiara/src/G4LElastic.cc-alt b/examples/advanced/Tiara/source/tiara/src/G4LElastic.cc-alt index e2392ff6ed..b01205b01d 100644 --- a/examples/advanced/Tiara/source/tiara/src/G4LElastic.cc-alt +++ b/examples/advanced/Tiara/source/tiara/src/G4LElastic.cc-alt @@ -22,7 +22,7 @@ // // // $Id: G4LElastic.cc-alt,v 1.2 2003/06/18 16:40:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Physics model class G4LElastic // diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc index 6ab6fe3f60..2d6ad9820a 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.3 2003/06/18 16:40:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc-Smeared b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc-Smeared index a91c36772d..6afe38096b 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc-Smeared +++ b/examples/advanced/Tiara/source/tiara/src/TiaraCellScorer.cc-Smeared @@ -22,7 +22,7 @@ // // // $Id: TiaraCellScorer.cc-Smeared,v 1.2 2003/06/18 16:40:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3e8325b5c2..43667fc95d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a4b902f94e..cef9caf933 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b6207e7709..7f65e907e2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 65e7b2c1b0..cea1f12fb2 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraDPSSampledEnergy.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TiaraDPSSampledEnergy.cc,v 1.5 2003/06/25 09:12:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TiaraDPSSampledEnergy.cc,v 1.7 2003/12/08 17:53:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "TiaraDPSSampledEnergy.hh" @@ -63,7 +63,9 @@ TiaraDPSSampledEnergy::TiaraDPSSampledEnergy(const G4String &eng, } } -TiaraDPSSampledEnergy::TiaraDPSSampledEnergy(const TiaraDPSSampledEnergy& rhs) { +TiaraDPSSampledEnergy::TiaraDPSSampledEnergy(const TiaraDPSSampledEnergy& rhs) + : TiaraVSourceEnergyGenerator() +{ *this = rhs; } diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc b/examples/advanced/Tiara/source/tiara/src/TiaraDimensions.cc index 3ae12b8d09..68a05306a2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a5f2edca42..9175cbecab 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraEnergyCutProcess.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TiaraEnergyCutProcess.cc,v 1.3 2003/06/25 09:13:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TiaraEnergyCutProcess.cc,v 1.4 2003/11/07 12:39:11 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "TiaraEnergyCutProcess.hh" @@ -43,8 +43,8 @@ TiaraEnergyCutProcess::~TiaraEnergyCutProcess() } G4double TiaraEnergyCutProcess:: -PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double previousStepSize, +PostStepGetPhysicalInteractionLength(const G4Track&, + G4double, G4ForceCondition* condition) { *condition = Forced; @@ -52,7 +52,7 @@ PostStepGetPhysicalInteractionLength(const G4Track& aTrack, } G4VParticleChange * -TiaraEnergyCutProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) +TiaraEnergyCutProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &) { pParticleChange->Initialize(aTrack); diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc b/examples/advanced/Tiara/source/tiara/src/TiaraFileAcess.cc index 06c9f762d6..04adcc2693 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9cff9dcb87..f99e3d7c31 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3650e9fcaf..43adcfafef 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.3 2003/06/25 09:13:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 d4a2c763e7..e0976613d0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 c2187305e1..cfe0d76185 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6d42295ee2..a092e06002 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraIsotropicDirections.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TiaraIsotropicDirections.cc,v 1.3 2003/06/25 09:13:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TiaraIsotropicDirections.cc,v 1.4 2003/12/04 11:08:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "TiaraIsotropicDirections.hh" @@ -40,9 +40,11 @@ TiaraIsotropicDirections::~TiaraIsotropicDirections() {} TiaraIsotropicDirections:: -TiaraIsotropicDirections(const TiaraIsotropicDirections& rhs){ +TiaraIsotropicDirections(const TiaraIsotropicDirections& rhs) + : TiaraVDirectionGenerator() +{ *this = rhs; -}; +} G4double TiaraIsotropicDirections:: MinimumCosine(G4double colWidth, diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc b/examples/advanced/Tiara/source/tiara/src/TiaraMaterials.cc index c2201b4894..38db7fac42 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6eece71514..a289f92d0d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 5d1f06c8d0..9392a8bae7 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraPhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TiaraPhysicsList.cc,v 1.2 2003/06/18 16:40:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TiaraPhysicsList.cc,v 1.4 2003/11/20 08:31:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" @@ -133,6 +133,7 @@ void TiaraPhysicsList::ConstructProcess() #include "G4MuPairProduction.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" void TiaraPhysicsList::ConstructEM() { @@ -176,7 +177,7 @@ void TiaraPhysicsList::ConstructEM() } else if( particleName == "GenericIon" ) { pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4hIonisation(),-1,2,2); + pmanager->AddProcess(new G4ionIonisation(),-1,2,2); } else { if ((particle->GetPDGCharge() != 0.0) && (particle->GetParticleName() != "chargedgeantino")&& diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraPrimaryGeneratorAction.cc index 464213ecec..8f937ec872 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.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TiaraPrimaryGeneratorAction.cc,v 1.3 2003/12/09 08:48:05 daquinog Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" @@ -61,17 +61,17 @@ TiaraPrimaryGeneratorAction::~TiaraPrimaryGeneratorAction() delete fEnergyGenerator; } - TiaraPrimaryGeneratorAction:: -TiaraPrimaryGeneratorAction(const TiaraPrimaryGeneratorAction &rhs) { - +TiaraPrimaryGeneratorAction(const TiaraPrimaryGeneratorAction &rhs) + : G4VUserPrimaryGeneratorAction() +{ *this = rhs; } TiaraPrimaryGeneratorAction & TiaraPrimaryGeneratorAction:: -operator=(const TiaraPrimaryGeneratorAction &rhs) { - +operator=(const TiaraPrimaryGeneratorAction &rhs) +{ if (this != &rhs) { fEnergyGenerator = rhs.fEnergyGenerator->Clone(); fDirectionGenerator = rhs.fDirectionGenerator->Clone(); @@ -80,7 +80,6 @@ operator=(const TiaraPrimaryGeneratorAction &rhs) { } return *this; } - void TiaraPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc b/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc index c2c5610a87..002bf365e7 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraRandom.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: TiaraRandom.cc,v 1.3 2003/06/25 09:13:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "TiaraRandom.hh" diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc b/examples/advanced/Tiara/source/tiara/src/TiaraSampledEnergy.cc index 69925cb96d..ba8890bc9f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e8a540fe3d..b4d2d6fa07 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.4 2003/06/25 09:13:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TiaraSim.cc,v 1.5 2003/11/07 12:39:11 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "TiaraSim.hh" @@ -152,7 +152,7 @@ void TiaraSim::BeamOn(G4int nEvents){ } TiaraSim::~TiaraSim(){ - for (G4int i = 0; i < fCutProcessVector.size(); i++) { + for (size_t i = 0; i < fCutProcessVector.size(); i++) { fPlacers[i].RemoveProcess(fCutProcessVector[i]); delete fCutProcessVector[i]; } diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraStackingAction.cc index 58683a55af..57e6c6fe2c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 8085f1f96c..0111db1ab6 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraTally.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: TiaraTally.cc,v 1.3 2003/06/25 09:13:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TiaraTally.cc,v 1.4 2003/11/07 12:39:11 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "TiaraTally.hh" @@ -77,7 +77,7 @@ void TiaraTally::EndOfEventAction() { TiaraMeasure TiaraTally::measure(G4int i){ TiaraMeasure m; - if (i<0 || i>(fMapHighEdgeToMeasure.size()-1)) { + if (i<0 || i>(G4int)(fMapHighEdgeToMeasure.size()-1)) { G4cout << "ERROR in TiaraTally::measure: argument: " << i << ", out of range!" << G4endl; } diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc index b9e049aa48..6e35be5aeb 100644 --- a/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraTimedEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: TiaraTimedEventAction.cc,v 1.2 2003/06/13 16:05:33 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVComponent.cc index d4a2ddd460..b6cccbbec9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f888b58f8f..06c9728491 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 ad6a818d99..4a9c9fd5a1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2b10d4c7b3..4547c5d42e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc index c08e10c366..f054f13b5c 100755 --- a/examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc +++ b/examples/advanced/Tiara/source/tiara/src/TiaraVisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TiaraVisManager.cc,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TiaraVisManager.cc,v 1.2 2003/11/13 15:10:04 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -41,6 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -51,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -97,6 +93,7 @@ void TiaraVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); @@ -107,11 +104,6 @@ void TiaraVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc b/examples/advanced/Tiara/source/tiara/src/TiaraVisRunAction.cc index b63ad73be8..e5339e25ca 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/Tiara/source/tiara/tiara.cc b/examples/advanced/Tiara/source/tiara/tiara.cc index 22e9dcf798..a7b6378397 100644 --- a/examples/advanced/Tiara/source/tiara/tiara.cc +++ b/examples/advanced/Tiara/source/tiara/tiara.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: tiara.cc,v 1.2 2003/06/18 16:40:23 gunter Exp $ +// $Id: tiara.cc,v 1.3 2003/12/04 11:08:48 gcosmo Exp $ // GEANT4 tag // // @@ -40,7 +40,7 @@ #include "TiaraTally.hh" #include "Randomize.hh" -int main(int argc, char **argv) +int main(int, char **) { std::vector binEdges; diff --git a/examples/advanced/Tiara/source/tiaraPhysicsLists/GNUmakefile b/examples/advanced/Tiara/source/tiaraPhysicsLists/GNUmakefile index fa1fca172d..14932db97a 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsLists/GNUmakefile +++ b/examples/advanced/Tiara/source/tiaraPhysicsLists/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ +# $Id: GNUmakefile,v 1.2 2003/12/04 11:08:48 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile Michael Dressel # -------------------------------------------------------------- @@ -21,6 +21,8 @@ include $(G4INSTALL)/config/architecture.gmk CPPFLAGS += -I../tiaraPhysicsPackaging/include LDFLAGS += -L$(G4WORKDIR)/tmp/Linux-g++/tiaraPhysicsPackaging -ltiaraPhysicsPackaging +include $(TIARA_BASE)/source/hadronic_lists.gmk + include $(G4INSTALL)/config/binmake.gmk tiaraClean: diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/GNUmakefile b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/GNUmakefile index a9778d3b32..0f0d98ab71 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/GNUmakefile +++ b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1.1.1 2003/06/12 13:08:25 dressel Exp $ +# $Id: GNUmakefile,v 1.4 2003/12/04 11:08:48 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile Michael Dressel # -------------------------------------------------------------- @@ -11,6 +11,7 @@ ifndef G4INSTALL G4INSTALL = ../.. endif include $(G4INSTALL)/config/architecture.gmk +include $(TIARA_BASE)/source/hadronic_lists.gmk .PHONY: all tiaraClean diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4EMBuilder.hh b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4EMBuilder.hh deleted file mode 100644 index af4a249e0b..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4EMBuilder.hh +++ /dev/null @@ -1,66 +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 G4EMBuilder_h -#define G4EMBuilder_h 1 - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4PhotoElectricEffect.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4MultipleScattering.hh" -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" -#include "G4eplusAnnihilation.hh" - -class G4EMBuilder -{ - public: - G4EMBuilder(); - virtual ~G4EMBuilder(); - - public: - void Build(); - - protected: - G4PhotoElectricEffect thePhotoEffect; - G4ComptonScattering theComptonEffect; - G4GammaConversion thePairProduction; - - G4MultipleScattering theElectronMultipleScattering; - G4eIonisation theElectronIonisation; - G4eBremsstrahlung theElectronBremsStrahlung; - - G4MultipleScattering thePositronMultipleScattering; - G4eIonisation thePositronIonisation; - G4eBremsstrahlung thePositronBremsStrahlung; - G4eplusAnnihilation theAnnihilation; -}; -// 2002 by J.P. Wellisch -#endif - - - - - diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4EMModelBuilder.hh b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4EMModelBuilder.hh deleted file mode 100644 index efe9097524..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4EMModelBuilder.hh +++ /dev/null @@ -1,66 +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 G4EMModelBuilder_h -#define G4EMModelBuilder_h 1 - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4PhotoElectricEffect.hh" -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4eplusAnnihilation.hh" -#include "G4MultipleScatteringSTD.hh" -#include "G4eIonisationSTD.hh" -#include "G4eBremsstrahlungSTD.hh" - -class G4EMModelBuilder -{ - public: - G4EMModelBuilder(); - virtual ~G4EMModelBuilder(); - - public: - void Build(); - - protected: - G4PhotoElectricEffect thePhotoEffect; - G4ComptonScattering theComptonEffect; - G4GammaConversion thePairProduction; - - G4MultipleScatteringSTD theElectronMultipleScattering; - G4eIonisationSTD theElectronIonisation; - G4eBremsstrahlungSTD theElectronBremsStrahlung; - - G4MultipleScatteringSTD thePositronMultipleScattering; - G4eIonisationSTD thePositronIonisation; - G4eBremsstrahlungSTD thePositronBremsStrahlung; - G4eplusAnnihilation theAnnihilation; -}; -// 2002 by J.P. Wellisch -#endif - - - - - diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4HadronModelQEDBuilder.hh b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4HadronModelQEDBuilder.hh deleted file mode 100644 index 3f8dde731c..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4HadronModelQEDBuilder.hh +++ /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. * -// ******************************************************************** -// -#ifndef G4HadronModelQEDBuilder_h -#define G4HadronModelQEDBuilder_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include - -#include "G4MultipleScatteringSTD.hh" -#include "G4hIonisationSTD.hh" -#include "G4ProcessManager.hh" - -class G4HadronModelQEDBuilder -{ - public: - G4HadronModelQEDBuilder(); - virtual ~G4HadronModelQEDBuilder(); - - public: - virtual void Build(); - - private: - void RegisterOne(G4ProcessManager* aP, G4MultipleScatteringSTD * aM, G4hIonisationSTD* aI); - - private: - - // Pi + - G4MultipleScatteringSTD thePionPlusMult; - G4hIonisationSTD thePionPlusIonisation; - - // Pi - - G4MultipleScatteringSTD thePionMinusMult; - G4hIonisationSTD thePionMinusIonisation; - - // K + - G4MultipleScatteringSTD theKaonPlusMult; - G4hIonisationSTD theKaonPlusIonisation; - - // K - - G4MultipleScatteringSTD theKaonMinusMult; - G4hIonisationSTD theKaonMinusIonisation; - - // Proton - G4MultipleScatteringSTD theProtonMult; - G4hIonisationSTD theProtonIonisation; - - // anti-proton - G4MultipleScatteringSTD theAntiProtonMult; - G4hIonisationSTD theAntiProtonIonisation; - - // SigmaMinus - G4MultipleScatteringSTD theSigmaMinusMult; - G4hIonisationSTD theSigmaMinusIonisation; - - // AntiSigmaMinus - G4MultipleScatteringSTD theAntiSigmaMinusMult; - G4hIonisationSTD theAntiSigmaMinusIonisation; - - // SigmaPlus - G4MultipleScatteringSTD theSigmaPlusMult; - G4hIonisationSTD theSigmaPlusIonisation; - - // AntiSigmaPlus - G4MultipleScatteringSTD theAntiSigmaPlusMult; - G4hIonisationSTD theAntiSigmaPlusIonisation; - - // XiMinus - G4MultipleScatteringSTD theXiMinusMult; - G4hIonisationSTD theXiMinusIonisation; - - // AntiXiMinus - G4MultipleScatteringSTD theAntiXiMinusMult; - G4hIonisationSTD theAntiXiMinusIonisation; - - // OmegaMinus - G4MultipleScatteringSTD theOmegaMinusMult; - G4hIonisationSTD theOmegaMinusIonisation; - - // AntiOmegaMinus - G4MultipleScatteringSTD theAntiOmegaMinusMult; - G4hIonisationSTD theAntiOmegaMinusIonisation; - - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4MiscLHEPBuilder.hh b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4MiscLHEPBuilder.hh deleted file mode 100644 index d0d014373c..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4MiscLHEPBuilder.hh +++ /dev/null @@ -1,177 +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 G4MiscLHEPBuilder_h -#define G4MiscLHEPBuilder_h 1 - -#include "globals.hh" -#include "G4LElastic.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4AntiProtonInelasticProcess.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 "G4OmegaMinusInelasticProcess.hh" -#include "G4AntiOmegaMinusInelasticProcess.hh" - -#include "G4LEAntiProtonInelastic.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 "G4LEOmegaMinusInelastic.hh" -#include "G4LEAntiOmegaMinusInelastic.hh" - -// High-energy Models - -#include "G4HEAntiProtonInelastic.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" - -class G4MiscLHEPBuilder -{ - public: - G4MiscLHEPBuilder(); - virtual ~G4MiscLHEPBuilder(); - - public: - void Build(); - - private: - - G4LElastic* theElasticModel; - - // anti-proton - G4HadronElasticProcess theAntiProtonElasticProcess; - G4AntiProtonInelasticProcess theAntiProtonInelastic; - G4LEAntiProtonInelastic* theLEAntiProtonModel; - G4HEAntiProtonInelastic* theHEAntiProtonModel; - - // anti-neutron - G4HadronElasticProcess theAntiNeutronElasticProcess; - G4AntiNeutronInelasticProcess theAntiNeutronInelastic; - G4LEAntiNeutronInelastic* theLEAntiNeutronModel; - G4HEAntiNeutronInelastic* theHEAntiNeutronModel; - - // Lambda - G4HadronElasticProcess theLambdaElasticProcess; - G4LambdaInelasticProcess theLambdaInelastic; - G4LELambdaInelastic* theLELambdaModel; - G4HELambdaInelastic* theHELambdaModel; - - // AntiLambda - G4HadronElasticProcess theAntiLambdaElasticProcess; - G4AntiLambdaInelasticProcess theAntiLambdaInelastic; - G4LEAntiLambdaInelastic* theLEAntiLambdaModel; - G4HEAntiLambdaInelastic* theHEAntiLambdaModel; - - // SigmaMinus - G4HadronElasticProcess theSigmaMinusElasticProcess; - G4SigmaMinusInelasticProcess theSigmaMinusInelastic; - G4LESigmaMinusInelastic* theLESigmaMinusModel; - G4HESigmaMinusInelastic* theHESigmaMinusModel; - - // AntiSigmaMinus - G4HadronElasticProcess theAntiSigmaMinusElasticProcess; - G4AntiSigmaMinusInelasticProcess theAntiSigmaMinusInelastic; - G4LEAntiSigmaMinusInelastic* theLEAntiSigmaMinusModel; - G4HEAntiSigmaMinusInelastic* theHEAntiSigmaMinusModel; - - // SigmaPlus - G4HadronElasticProcess theSigmaPlusElasticProcess; - G4SigmaPlusInelasticProcess theSigmaPlusInelastic; - G4LESigmaPlusInelastic* theLESigmaPlusModel; - G4HESigmaPlusInelastic* theHESigmaPlusModel; - - // AntiSigmaPlus - G4HadronElasticProcess theAntiSigmaPlusElasticProcess; - G4AntiSigmaPlusInelasticProcess theAntiSigmaPlusInelastic; - G4LEAntiSigmaPlusInelastic* theLEAntiSigmaPlusModel; - G4HEAntiSigmaPlusInelastic* theHEAntiSigmaPlusModel; - - // XiZero - G4HadronElasticProcess theXiZeroElasticProcess; - G4XiZeroInelasticProcess theXiZeroInelastic; - G4LEXiZeroInelastic* theLEXiZeroModel; - G4HEXiZeroInelastic* theHEXiZeroModel; - - // AntiXiZero - G4HadronElasticProcess theAntiXiZeroElasticProcess; - G4AntiXiZeroInelasticProcess theAntiXiZeroInelastic; - G4LEAntiXiZeroInelastic* theLEAntiXiZeroModel; - G4HEAntiXiZeroInelastic* theHEAntiXiZeroModel; - - // XiMinus - G4HadronElasticProcess theXiMinusElasticProcess; - G4XiMinusInelasticProcess theXiMinusInelastic; - G4LEXiMinusInelastic* theLEXiMinusModel; - G4HEXiMinusInelastic* theHEXiMinusModel; - - // AntiXiMinus - G4HadronElasticProcess theAntiXiMinusElasticProcess; - G4AntiXiMinusInelasticProcess theAntiXiMinusInelastic; - G4LEAntiXiMinusInelastic* theLEAntiXiMinusModel; - G4HEAntiXiMinusInelastic* theHEAntiXiMinusModel; - - // OmegaMinus - G4HadronElasticProcess theOmegaMinusElasticProcess; - G4OmegaMinusInelasticProcess theOmegaMinusInelastic; - G4LEOmegaMinusInelastic* theLEOmegaMinusModel; - G4HEOmegaMinusInelastic* theHEOmegaMinusModel; - - // AntiOmegaMinus - G4HadronElasticProcess theAntiOmegaMinusElasticProcess; - G4AntiOmegaMinusInelasticProcess theAntiOmegaMinusInelastic; - G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel; - G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel; - -}; -// 2002 by J.P. Wellisch - -#endif diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PiKBuilder.hh b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PiKBuilder.hh deleted file mode 100644 index e1cf738ca1..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PiKBuilder.hh +++ /dev/null @@ -1,66 +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 G4PiKBuilder_h -#define G4PiKBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4VPiKBuilder.hh" - -#include - -class G4PiKBuilder -{ - public: - G4PiKBuilder(); - virtual ~G4PiKBuilder(); - - public: - void Build(); - void RegisterMe(G4VPiKBuilder * aB) {theModelCollections.push_back(aB);} - - private: - G4HadronElasticProcess thePionPlusElasticProcess; - G4HadronElasticProcess thePionMinusElasticProcess; - G4HadronElasticProcess theKaonPlusElasticProcess; - G4HadronElasticProcess theKaonMinusElasticProcess; - G4HadronElasticProcess theKaonZeroLElasticProcess; - G4HadronElasticProcess theKaonZeroSElasticProcess; - - G4PionPlusInelasticProcess thePionPlusInelastic; - G4PionMinusInelasticProcess thePionMinusInelastic; - G4KaonPlusInelasticProcess theKaonPlusInelastic; - G4KaonMinusInelasticProcess theKaonMinusInelastic; - G4KaonZeroLInelasticProcess theKaonZeroLInelastic; - G4KaonZeroSInelasticProcess theKaonZeroSInelastic; - - std::vector theModelCollections; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/IonModelPhysics.hh b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/IonModelPhysics.hh deleted file mode 100644 index c4c24194e3..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/IonModelPhysics.hh +++ /dev/null @@ -1,106 +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 IonModelPhysics_h -#define IonModelPhysics_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 "G4hIonisationSTD.hh" -#include "G4ionIonisation.hh" -#include "G4MultipleScatteringSTD.hh" - -class IonModelPhysics : public G4VPhysicsConstructor -{ - public: - IonModelPhysics(const G4String& name="ion"); - virtual ~IonModelPhysics(); - - 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; - G4MultipleScatteringSTD fIonMultipleScattering; - G4ionIonisation fIonIonisation; - - // Deuteron physics - G4HadronElasticProcess theDElasticProcess; - G4MultipleScatteringSTD fDeuteronMultipleScattering; - G4hIonisationSTD fDeuteronIonisation; - G4DeuteronInelasticProcess fDeuteronProcess; - G4LEDeuteronInelastic* fDeuteronModel; - - // Triton physics - G4HadronElasticProcess theTElasticProcess; - G4MultipleScatteringSTD fTritonMultipleScattering; - G4hIonisationSTD fTritonIonisation; - G4TritonInelasticProcess fTritonProcess; - G4LETritonInelastic* fTritonModel; - - // Alpha physics - G4HadronElasticProcess theAElasticProcess; - G4MultipleScatteringSTD fAlphaMultipleScattering; - G4hIonisationSTD fAlphaIonisation; - G4AlphaInelasticProcess fAlphaProcess; - G4LEAlphaInelastic* fAlphaModel; - - // He3 physics - G4HadronElasticProcess theHe3ElasticProcess; - G4MultipleScatteringSTD fHe3MultipleScattering; - G4hIonisationSTD fHe3Ionisation; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/IonPhysics.hh b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/IonPhysics.hh deleted file mode 100644 index b611739e0f..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/IonPhysics.hh +++ /dev/null @@ -1,105 +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 "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; - G4hIonisation 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; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeNeutronBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeNeutronBuilder.cc index fe871e12a2..2d7c016aa4 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeNeutronBuilder.cc +++ b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeNeutronBuilder.cc @@ -39,17 +39,17 @@ G4CascadeNeutronBuilder:: ~G4CascadeNeutronBuilder() {} void G4CascadeNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess &) { } void G4CascadeNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess &) { } void G4CascadeNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess &) { } @@ -59,9 +59,7 @@ Build(G4NeutronInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeProtonBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeProtonBuilder.cc index 057ac20ed9..9f4a07e73b 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeProtonBuilder.cc +++ b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4CascadeProtonBuilder.cc @@ -37,7 +37,7 @@ G4CascadeProtonBuilder:: ~G4CascadeProtonBuilder() {} void G4CascadeProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess &) { } @@ -47,9 +47,7 @@ Build(G4ProtonInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4EMBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4EMBuilder.cc deleted file mode 100644 index d679385d2d..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4EMBuilder.cc +++ /dev/null @@ -1,70 +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 - - -G4EMBuilder:: -G4EMBuilder() {} - -G4EMBuilder:: -~G4EMBuilder() {} - -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4ProcessManager.hh" - - -void G4EMBuilder::Build() -{ - G4ProcessManager * pManager = 0; - - 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); - 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); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); - -} -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4HadronModelQEDBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4HadronModelQEDBuilder.cc deleted file mode 100644 index 2e47183c56..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4HadronModelQEDBuilder.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. * -// ******************************************************************** -// -#include "G4HadronModelQEDBuilder.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4ProcessManager.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" - -G4HadronModelQEDBuilder::G4HadronModelQEDBuilder() {} -G4HadronModelQEDBuilder::~G4HadronModelQEDBuilder(){} - -void G4HadronModelQEDBuilder:: -RegisterOne(G4ProcessManager* aP, G4MultipleScatteringSTD * aM, G4hIonisationSTD * aI) -{ - aP->AddProcess(aI, ordInActive,2, 2); - aP->AddProcess(aM); - aP->SetProcessOrdering(aM, idxAlongStep, 1); - aP->SetProcessOrdering(aM, idxPostStep, 1); -} - -void G4HadronModelQEDBuilder::Build() -{ - // PionPlus - RegisterOne(G4PionPlus::PionPlus()->GetProcessManager(), &thePionPlusMult, &thePionPlusIonisation); - - // PionMinus - RegisterOne(G4PionMinus::PionMinus()->GetProcessManager(), &thePionMinusMult, &thePionMinusIonisation); - - // KaonPlus - RegisterOne(G4KaonPlus::KaonPlus()->GetProcessManager(), &theKaonPlusMult, &theKaonPlusIonisation); - - // KaonMinus - RegisterOne(G4KaonMinus::KaonMinus()->GetProcessManager(), &theKaonMinusMult, &theKaonMinusIonisation); - - // Proton - RegisterOne(G4Proton::Proton()->GetProcessManager(), &theProtonMult, &theProtonIonisation); - - // anti-Proton - RegisterOne(G4AntiProton::AntiProton()->GetProcessManager(), &theAntiProtonMult, &theAntiProtonIonisation); - - // SigmaMinus - RegisterOne(G4SigmaMinus::SigmaMinus()->GetProcessManager(), &theSigmaMinusMult, &theSigmaMinusIonisation); - - // anti-SigmaMinus - RegisterOne(G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(), &theAntiSigmaMinusMult, &theAntiSigmaMinusIonisation); - - // SigmaPlus - RegisterOne(G4SigmaPlus::SigmaPlus()->GetProcessManager(), &theSigmaPlusMult, &theSigmaPlusIonisation); - - // anti-SigmaPlus - RegisterOne(G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(), &theAntiSigmaPlusMult, &theAntiSigmaPlusIonisation); - - // XiMinus - RegisterOne(G4XiMinus::XiMinus()->GetProcessManager(), &theXiMinusMult, &theXiMinusIonisation); - - // anti-XiMinus - RegisterOne(G4AntiXiMinus::AntiXiMinus()->GetProcessManager(), &theAntiXiMinusMult, &theAntiXiMinusIonisation); - - // OmegaMinus - RegisterOne(G4OmegaMinus::OmegaMinus()->GetProcessManager(), &theOmegaMinusMult, &theOmegaMinusIonisation); - - // anti-OmegaMinus - RegisterOne(G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(), &theAntiOmegaMinusMult, &theAntiOmegaMinusIonisation); -} - - - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPNeutronBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPNeutronBuilder.cc deleted file mode 100644 index 357b7bf6a5..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPNeutronBuilder.cc +++ /dev/null @@ -1,71 +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 "G4LEPNeutronBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4LEPNeutronBuilder:: -G4LEPNeutronBuilder() -{ - theMin = 0; - theMax = 55*GeV; -} - -G4LEPNeutronBuilder:: -~G4LEPNeutronBuilder() {} - -void G4LEPNeutronBuilder:: -Build(G4HadronElasticProcess & aP) -{ - theElasticModel = new G4LElastic(); - theElasticModel->SetMinEnergy(theMin); - aP.RegisterMe(theElasticModel); -} - -void G4LEPNeutronBuilder:: -Build(G4HadronFissionProcess & aP) -{ - theNeutronFissionModel = new G4LFission(); - theNeutronFissionModel->SetMinEnergy(theMin); - aP.RegisterMe(theNeutronFissionModel); -} - -void G4LEPNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) -{ - theNeutronCaptureModel = new G4LCapture(); - theNeutronCaptureModel->SetMinEnergy(theMin); - aP.RegisterMe(theNeutronCaptureModel); -} - -void G4LEPNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) -{ - theLENeutronModel = new G4LENeutronInelastic(); - theLENeutronModel->SetMinEnergy(theIMin); - theLENeutronModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLENeutronModel); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPPiKBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPPiKBuilder.cc deleted file mode 100644 index 2ada910a78..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPPiKBuilder.cc +++ /dev/null @@ -1,106 +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 "G4LEPPiKBuilder.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4ProcessManager.hh" - -G4LEPPiKBuilder:: -G4LEPPiKBuilder() -{ - theElasticModel = new G4LElastic(); - theMin = 0; - theMax = 55*GeV; - theMinPion = theMin; -} - -G4LEPPiKBuilder:: -~G4LEPPiKBuilder() {} - -void G4LEPPiKBuilder:: -Build(G4HadronElasticProcess & aP) -{ - aP.RegisterMe(theElasticModel); -} - -void G4LEPPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) -{ - theLEPionPlusModel = new G4LEPionPlusInelastic(); - theLEPionPlusModel->SetMinEnergy(theMinPion); - theLEPionPlusModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLEPionPlusModel); -} - -void G4LEPPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) -{ - theLEPionMinusModel = new G4LEPionMinusInelastic(); - theLEPionMinusModel->SetMinEnergy(theMinPion); - theLEPionMinusModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLEPionMinusModel); -} - -void G4LEPPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) -{ - theLEKaonPlusModel = new G4LEKaonPlusInelastic(); - theLEKaonPlusModel->SetMinEnergy(theMin); - theLEKaonPlusModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLEKaonPlusModel); -} - -void G4LEPPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) -{ - theLEKaonMinusModel = new G4LEKaonMinusInelastic(); - theLEKaonMinusModel->SetMaxEnergy(theMax); - theLEKaonMinusModel->SetMinEnergy(theMin); - aP.RegisterMe(theLEKaonMinusModel); -} - -void G4LEPPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) -{ - theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); - theLEKaonZeroLModel->SetMaxEnergy(theMax); - theLEKaonZeroLModel->SetMinEnergy(theMin); - aP.RegisterMe(theLEKaonZeroLModel); -} - -void G4LEPPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) -{ - theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); - theLEKaonZeroSModel->SetMaxEnergy(theMax); - theLEKaonZeroSModel->SetMinEnergy(theMin); - aP.RegisterMe(theLEKaonZeroSModel); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPPiKBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPPiKBuilder.cc deleted file mode 100644 index 94fa4d7583..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPPiKBuilder.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. * -// ******************************************************************** -// -#include "G4LHEPPiKBuilder.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4ProcessManager.hh" - -G4LHEPPiKBuilder:: -G4LHEPPiKBuilder() -{ - theElasticModel = new G4LElastic(); - theM = 0; - theMinPion = theM; -} - -G4LHEPPiKBuilder:: -~G4LHEPPiKBuilder() {} - -void G4LHEPPiKBuilder:: -Build(G4HadronElasticProcess & aP) -{ - aP.RegisterMe(theElasticModel); -} - -void G4LHEPPiKBuilder:: -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); -} - -void G4LHEPPiKBuilder:: -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); -} - -void G4LHEPPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) -{ - theLEKaonPlusModel = new G4LEKaonPlusInelastic(); - theHEKaonPlusModel = new G4HEKaonPlusInelastic(); - theLEKaonPlusModel->SetMinEnergy(theM); - aP.RegisterMe(theLEKaonPlusModel); - aP.RegisterMe(theHEKaonPlusModel); -} - -void G4LHEPPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) -{ - theLEKaonMinusModel = new G4LEKaonMinusInelastic(); - theHEKaonMinusModel = new G4HEKaonMinusInelastic(); - theLEKaonMinusModel->SetMinEnergy(theM); - aP.RegisterMe(theLEKaonMinusModel); - aP.RegisterMe(theHEKaonMinusModel); -} - -void G4LHEPPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) -{ - theLEKaonZeroLModel = new G4LEKaonZeroLInelastic(); - theHEKaonZeroLModel = new G4HEKaonZeroInelastic(); - theLEKaonZeroLModel->SetMinEnergy(theM); - aP.RegisterMe(theLEKaonZeroLModel); - aP.RegisterMe(theHEKaonZeroLModel); -} - -void G4LHEPPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) -{ - theLEKaonZeroSModel = new G4LEKaonZeroSInelastic(); - theHEKaonZeroSModel = new G4HEKaonZeroInelastic(); - theLEKaonZeroSModel->SetMinEnergy(theM); - aP.RegisterMe(theLEKaonZeroSModel); - aP.RegisterMe(theHEKaonZeroSModel); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4MiscLHEPBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4MiscLHEPBuilder.cc deleted file mode 100644 index 628fcf8d65..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4MiscLHEPBuilder.cc +++ /dev/null @@ -1,178 +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 "G4MiscLHEPBuilder.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4MiscLHEPBuilder::G4MiscLHEPBuilder() {} -G4MiscLHEPBuilder::~G4MiscLHEPBuilder() {} - -void G4MiscLHEPBuilder::Build() -{ - G4ProcessManager * aProcMan = 0; - theElasticModel = new G4LElastic; - - // anti-Proton - aProcMan = G4AntiProton::AntiProton()->GetProcessManager(); - theLEAntiProtonModel = new G4LEAntiProtonInelastic(); - theHEAntiProtonModel = new G4HEAntiProtonInelastic(); - theAntiProtonInelastic.RegisterMe(theLEAntiProtonModel); - theAntiProtonInelastic.RegisterMe(theHEAntiProtonModel); - aProcMan->AddDiscreteProcess(&theAntiProtonInelastic); - theAntiProtonElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theAntiProtonElasticProcess); - - // AntiNeutron - aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager(); - theLEAntiNeutronModel = new G4LEAntiNeutronInelastic(); - theHEAntiNeutronModel = new G4HEAntiNeutronInelastic(); - theAntiNeutronInelastic.RegisterMe(theLEAntiNeutronModel); - theAntiNeutronInelastic.RegisterMe(theHEAntiNeutronModel); - aProcMan->AddDiscreteProcess(&theAntiNeutronInelastic); - theAntiNeutronElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theAntiNeutronElasticProcess); - - // Lambda - aProcMan = G4Lambda::Lambda()->GetProcessManager(); - theLELambdaModel = new G4LELambdaInelastic(); - theHELambdaModel = new G4HELambdaInelastic(); - theLambdaInelastic.RegisterMe(theLELambdaModel); - theLambdaInelastic.RegisterMe(theHELambdaModel); - aProcMan->AddDiscreteProcess(&theLambdaInelastic); - theLambdaElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theLambdaElasticProcess); - - // AntiLambda - aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager(); - theLEAntiLambdaModel = new G4LEAntiLambdaInelastic(); - theHEAntiLambdaModel = new G4HEAntiLambdaInelastic(); - theAntiLambdaInelastic.RegisterMe(theLEAntiLambdaModel); - theAntiLambdaInelastic.RegisterMe(theHEAntiLambdaModel); - aProcMan->AddDiscreteProcess(&theAntiLambdaInelastic); - theAntiLambdaElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theAntiLambdaElasticProcess); - - // SigmaMinus - aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager(); - theLESigmaMinusModel = new G4LESigmaMinusInelastic(); - theHESigmaMinusModel = new G4HESigmaMinusInelastic(); - theSigmaMinusInelastic.RegisterMe(theLESigmaMinusModel); - theSigmaMinusInelastic.RegisterMe(theHESigmaMinusModel); - aProcMan->AddDiscreteProcess(&theSigmaMinusInelastic); - theSigmaMinusElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theSigmaMinusElasticProcess); - - // anti-SigmaMinus - aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(); - theLEAntiSigmaMinusModel = new G4LEAntiSigmaMinusInelastic(); - theHEAntiSigmaMinusModel = new G4HEAntiSigmaMinusInelastic(); - theAntiSigmaMinusInelastic.RegisterMe(theLEAntiSigmaMinusModel); - theAntiSigmaMinusInelastic.RegisterMe(theHEAntiSigmaMinusModel); - aProcMan->AddDiscreteProcess(&theAntiSigmaMinusInelastic); - theAntiSigmaMinusElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theAntiSigmaMinusElasticProcess); - - // SigmaPlus - aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager(); - theLESigmaPlusModel = new G4LESigmaPlusInelastic(); - theHESigmaPlusModel = new G4HESigmaPlusInelastic(); - theSigmaPlusInelastic.RegisterMe(theLESigmaPlusModel); - theSigmaPlusInelastic.RegisterMe(theHESigmaPlusModel); - aProcMan->AddDiscreteProcess(&theSigmaPlusInelastic); - theSigmaPlusElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theSigmaPlusElasticProcess); - - // anti-SigmaPlus - aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(); - theLEAntiSigmaPlusModel = new G4LEAntiSigmaPlusInelastic(); - theHEAntiSigmaPlusModel = new G4HEAntiSigmaPlusInelastic(); - theAntiSigmaPlusInelastic.RegisterMe(theLEAntiSigmaPlusModel); - theAntiSigmaPlusInelastic.RegisterMe(theHEAntiSigmaPlusModel); - aProcMan->AddDiscreteProcess(&theAntiSigmaPlusInelastic); - theAntiSigmaPlusElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theAntiSigmaPlusElasticProcess); - - // XiMinus - aProcMan = G4XiMinus::XiMinus()->GetProcessManager(); - theLEXiMinusModel = new G4LEXiMinusInelastic(); - theHEXiMinusModel = new G4HEXiMinusInelastic(); - theXiMinusInelastic.RegisterMe(theLEXiMinusModel); - theXiMinusInelastic.RegisterMe(theHEXiMinusModel); - aProcMan->AddDiscreteProcess(&theXiMinusInelastic); - theXiMinusElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theXiMinusElasticProcess); - - // anti-XiMinus - aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager(); - theLEAntiXiMinusModel = new G4LEAntiXiMinusInelastic(); - theHEAntiXiMinusModel = new G4HEAntiXiMinusInelastic(); - theAntiXiMinusInelastic.RegisterMe(theLEAntiXiMinusModel); - theAntiXiMinusInelastic.RegisterMe(theHEAntiXiMinusModel); - aProcMan->AddDiscreteProcess(&theAntiXiMinusInelastic); - theAntiXiMinusElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theAntiXiMinusElasticProcess); - - // XiZero - aProcMan = G4XiZero::XiZero()->GetProcessManager(); - theLEXiZeroModel = new G4LEXiZeroInelastic(); - theHEXiZeroModel = new G4HEXiZeroInelastic(); - theXiZeroInelastic.RegisterMe(theLEXiZeroModel); - theXiZeroInelastic.RegisterMe(theHEXiZeroModel); - aProcMan->AddDiscreteProcess(&theXiZeroInelastic); - theXiZeroElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theXiZeroElasticProcess); - - // anti-XiZero - aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager(); - theLEAntiXiZeroModel = new G4LEAntiXiZeroInelastic(); - theHEAntiXiZeroModel = new G4HEAntiXiZeroInelastic(); - theAntiXiZeroInelastic.RegisterMe(theLEAntiXiZeroModel); - theAntiXiZeroInelastic.RegisterMe(theHEAntiXiZeroModel); - aProcMan->AddDiscreteProcess(&theAntiXiZeroInelastic); - theAntiXiZeroElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theAntiXiZeroElasticProcess); - - // OmegaMinus - aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager(); - theLEOmegaMinusModel = new G4LEOmegaMinusInelastic(); - theHEOmegaMinusModel = new G4HEOmegaMinusInelastic(); - theOmegaMinusInelastic.RegisterMe(theLEOmegaMinusModel); - theOmegaMinusInelastic.RegisterMe(theHEOmegaMinusModel); - aProcMan->AddDiscreteProcess(&theOmegaMinusInelastic); - theOmegaMinusElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theOmegaMinusElasticProcess); - - // anti-OmegaMinus - aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(); - theLEAntiOmegaMinusModel = new G4LEAntiOmegaMinusInelastic(); - theHEAntiOmegaMinusModel = new G4HEAntiOmegaMinusInelastic(); - theAntiOmegaMinusInelastic.RegisterMe(theLEAntiOmegaMinusModel); - theAntiOmegaMinusInelastic.RegisterMe(theHEAntiOmegaMinusModel); - aProcMan->AddDiscreteProcess(&theAntiOmegaMinusInelastic); - theAntiOmegaMinusElasticProcess.RegisterMe(theElasticModel); - aProcMan->AddDiscreteProcess(&theAntiOmegaMinusElasticProcess); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PrecoProtonBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PrecoProtonBuilder.cc deleted file mode 100644 index eb4925b73b..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PrecoProtonBuilder.cc +++ /dev/null @@ -1,55 +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 "G4PrecoProtonBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4PrecoProtonBuilder:: -G4PrecoProtonBuilder() -{ - theMin = 0; - theMax = 150.*MeV; - theModel = new G4PreCompoundModel(&theHandler); -} - -G4PrecoProtonBuilder:: -~G4PrecoProtonBuilder() {} - -void G4PrecoProtonBuilder:: -Build(G4HadronElasticProcess & aP) -{ -} - -void G4PrecoProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCProtonBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCProtonBuilder.cc deleted file mode 100644 index 1be233a553..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCProtonBuilder.cc +++ /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. * -// ******************************************************************** -// -#include "G4QGSCProtonBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4QGSCProtonBuilder:: -G4QGSCProtonBuilder() -{ - theMin = 15*GeV; - theModel = new G4TheoFSGenerator; - theCascade = new G4StringChipsParticleLevelInterface; - theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); -} - -G4QGSCProtonBuilder:: -~G4QGSCProtonBuilder() -{ - delete theStringDecay; -} - -void G4QGSCProtonBuilder:: -Build(G4HadronElasticProcess & aP) -{ -} - -void G4QGSCProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPProtonBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPProtonBuilder.cc deleted file mode 100644 index f8b49dc95e..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPProtonBuilder.cc +++ /dev/null @@ -1,64 +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 "G4QGSPProtonBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4QGSPProtonBuilder:: -G4QGSPProtonBuilder() -{ - theMin = 15*GeV; - theModel = new G4TheoFSGenerator; - theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); - theCascade->SetDeExcitation(thePreEquilib); - theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); -} - -G4QGSPProtonBuilder:: -~G4QGSPProtonBuilder() -{ - delete theStringDecay; -} - -void G4QGSPProtonBuilder:: -Build(G4HadronElasticProcess & aP) -{ -} - -void G4QGSPProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4StoppingHadronBuilder.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4StoppingHadronBuilder.cc deleted file mode 100644 index d0b2a08264..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4StoppingHadronBuilder.cc +++ /dev/null @@ -1,67 +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 "G4StoppingHadronBuilder.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" -#include "G4PionMinus.hh" -#include "G4KaonMinus.hh" -#include "G4AntiProton.hh" -#include "G4AntiNeutron.hh" - -G4StoppingHadronBuilder:: -G4StoppingHadronBuilder() {} - -G4StoppingHadronBuilder:: -~G4StoppingHadronBuilder() {} - -void G4StoppingHadronBuilder::Build() -{ - G4ProcessManager * aProcMan = 0; - - // PionMinus - aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager(); - aProcMan->AddRestProcess(&thePionMinusAbsorption, ordDefault); - - // KaonMinus - aProcMan = G4KaonMinus::KaonMinusDefinition()->GetProcessManager(); - aProcMan->AddRestProcess(&theKaonMinusAbsorption, ordDefault); - - // anti-Proton - aProcMan = G4AntiProton::AntiProtonDefinition()->GetProcessManager(); - aProcMan->AddRestProcess(&theAntiProtonAnnihilation); - - // AntiNeutron - aProcMan = G4AntiNeutron::AntiNeutronDefinition()->GetProcessManager(); - aProcMan->AddRestProcess(&theAntiNeutronAnnihilation); - -} - - - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/IonModelPhysics.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/IonModelPhysics.cc deleted file mode 100644 index dc7257e0fc..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/IonModelPhysics.cc +++ /dev/null @@ -1,139 +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 "IonModelPhysics.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include - - -IonModelPhysics::IonModelPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{ -} - -IonModelPhysics::~IonModelPhysics() -{ -} - -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" - -// Nuclei -#include "G4IonConstructor.hh" - -void IonModelPhysics::ConstructParticle() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - - -#include "G4ProcessManager.hh" - - -void IonModelPhysics::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); - -} - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/MuonModelPhysics.cc b/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/MuonModelPhysics.cc deleted file mode 100644 index 4b76c18961..0000000000 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/MuonModelPhysics.cc +++ /dev/null @@ -1,124 +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 "MuonModelPhysics.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include - - -MuonModelPhysics::MuonModelPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{ -} - -MuonModelPhysics::~MuonModelPhysics() -{ -} - -#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 MuonModelPhysics::ConstructParticle() -{ - // Mu - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); - - // Tau - G4TauMinus::TauMinusDefinition(); - G4TauPlus::TauPlusDefinition(); - G4NeutrinoTau::NeutrinoTauDefinition(); - G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); - -} - - -#include "G4ProcessManager.hh" - -void MuonModelPhysics::ConstructProcess() -{ - G4ProcessManager * pManager = 0; - G4cout << "###################################### muon physics is constructed "<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); - -} - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/brachytherapy/Brachy.cc b/examples/advanced/brachytherapy/Brachy.cc index 381126e367..0d8f7aa9b4 100644 --- a/examples/advanced/brachytherapy/Brachy.cc +++ b/examples/advanced/brachytherapy/Brachy.cc @@ -19,10 +19,10 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** +// // // $Id: Brachy.cc -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example diff --git a/examples/advanced/brachytherapy/History b/examples/advanced/brachytherapy/History index 92cb1602dd..fa56b77678 100644 --- a/examples/advanced/brachytherapy/History +++ b/examples/advanced/brachytherapy/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.4 2002/12/06 16:32:25 gcosmo Exp $ +$Id: History,v 1.6 2003/11/12 16:44:06 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,12 @@ $Id: History,v 1.4 2002/12/06 16:32:25 gcosmo Exp $ Category History file --------------------- +12.11.2003 - John Allison + Updated Vis Manager. + +20.10.2003 - Vladimir Ivanchenko, tag brachy-V05-02-00 + Migration to cut per region + 06.12.2002 - Gabriele Cosmo, tag brachy-V04-01-04 Migration to new G4ApplicationState. diff --git a/examples/advanced/brachytherapy/IodiumSourceMacro.mac b/examples/advanced/brachytherapy/IodiumSourceMacro.mac index 6dd8916405..ca8f83e5a1 100644 --- a/examples/advanced/brachytherapy/IodiumSourceMacro.mac +++ b/examples/advanced/brachytherapy/IodiumSourceMacro.mac @@ -2,6 +2,6 @@ /run/verbose 0 /event/verbose 0 /source/switch Iodium -/run/energy Iodium +/run/energy Iodium /run/initialize /run/beamOn 100 diff --git a/examples/advanced/brachytherapy/IodiumSourceMacro.out b/examples/advanced/brachytherapy/IodiumSourceMacro.out index 42755e49c9..cc51283ac9 100644 --- a/examples/advanced/brachytherapy/IodiumSourceMacro.out +++ b/examples/advanced/brachytherapy/IodiumSourceMacro.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ + Geant4 version $Name: geant4-06-00 $ (19-May-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/advanced/brachytherapy/LeipzigSourceMacro.mac b/examples/advanced/brachytherapy/LeipzigSourceMacro.mac index 60067fdb17..923c4b3af9 100644 --- a/examples/advanced/brachytherapy/LeipzigSourceMacro.mac +++ b/examples/advanced/brachytherapy/LeipzigSourceMacro.mac @@ -3,4 +3,4 @@ /event/verbose 0 /source/switch Leipzig /run/initialize -/run/beamOn 100 +/run/beamOn 1000 diff --git a/examples/advanced/brachytherapy/README b/examples/advanced/brachytherapy/README index bd5ec37259..57b1ad6e65 100644 --- a/examples/advanced/brachytherapy/README +++ b/examples/advanced/brachytherapy/README @@ -103,4 +103,4 @@ run $G4WORKDIR/bin/Linux-g++/Brachy VisualisationMacro.mac for comments, advices, doubts and questions: guatelli@ge.infn.it for more info http://www.ge.infn.it/geant4/examples/index.html -last modified: Susanna Guatelli 28/5/2003 \ No newline at end of file +last modified: Susanna Guatelli 18/11/2003 \ No newline at end of file diff --git a/examples/advanced/brachytherapy/VisualisationMacro.mac b/examples/advanced/brachytherapy/VisualisationMacro.mac index 7f6c4cef3d..15f4719bd6 100644 --- a/examples/advanced/brachytherapy/VisualisationMacro.mac +++ b/examples/advanced/brachytherapy/VisualisationMacro.mac @@ -4,7 +4,8 @@ # /vis/scene/create /vis/open OGLIX -#/vis/open DAWNFILE if you want DAWN instead of OGLIX +#/vis/open VRML1 +#/vis/open DAWNFILE /vis/viewer/flush # # draw scene/ diff --git a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh index 86e385ef63..240cef23e6 100644 --- a/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh +++ b/examples/advanced/brachytherapy/include/BrachyAnalysisManager.hh @@ -26,7 +26,7 @@ // // // $Id: BrachyAnalysisManager.hh,v 1.8 2003/06/16 16:44:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstruction.hh index c6c1b644cb..e9774b3543 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionI.hh index 4f7c34138e..27899d6a36 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionIr.hh index 61cd18eb6f..3dfe163a71 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // **************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh b/examples/advanced/brachytherapy/include/BrachyDetectorConstructionLeipzig.hh index 3ac954555b..c050008641 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ************************************************ diff --git a/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh b/examples/advanced/brachytherapy/include/BrachyDetectorMessenger.hh index 009eadd937..e8dd1f28b2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // #ifndef BrachyDetectorMessenger_h diff --git a/examples/advanced/brachytherapy/include/BrachyEventAction.hh b/examples/advanced/brachytherapy/include/BrachyEventAction.hh index 5a3a87af7c..e7aac61182 100644 --- a/examples/advanced/brachytherapy/include/BrachyEventAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyEventAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyEventAction.hh,v 1.13 2003/05/27 08:37:54 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Code developed by: // S.Guatelli diff --git a/examples/advanced/brachytherapy/include/BrachyFactory.hh b/examples/advanced/brachytherapy/include/BrachyFactory.hh index 4637902d3d..f9098fe3db 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryI.hh b/examples/advanced/brachytherapy/include/BrachyFactoryI.hh index 21ab69f86b..4c9fd3a638 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh b/examples/advanced/brachytherapy/include/BrachyFactoryIr.hh index a050585aac..7a9d03c836 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh b/examples/advanced/brachytherapy/include/BrachyFactoryLeipzig.hh index e27bb5aab7..cf5f43a78a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyMaterial.hh b/examples/advanced/brachytherapy/include/BrachyMaterial.hh index 4472cf9298..dfc6da1370 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh index ac93d92872..a057be8141 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomHit.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomHit.hh,v 1.5 2003/05/22 17:20:41 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ******************************** diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh b/examples/advanced/brachytherapy/include/BrachyPhantomROGeometry.hh index c6ebbe03f8..bd51d7ff6d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ************************************ // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh b/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh index 5ba6c472d1..ad225f01f0 100644 --- a/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh +++ b/examples/advanced/brachytherapy/include/BrachyPhantomSD.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyPhantomSD.hh,v 1.5 2003/05/26 09:20:13 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ******************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh b/examples/advanced/brachytherapy/include/BrachyPhysicsList.hh index 8117b6263c..a7644acf09 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ********************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorAction.hh index 431097bd88..82514bd787 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ******************************************** // * * diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionI.hh index 7f2336f73f..3e2ad7cab5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh b/examples/advanced/brachytherapy/include/BrachyPrimaryGeneratorActionIr.hh index 5d1b0723be..113efc8dcb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ************************************************* // * * diff --git a/examples/advanced/brachytherapy/include/BrachyRunAction.hh b/examples/advanced/brachytherapy/include/BrachyRunAction.hh index a3da985944..6192f6c42c 100644 --- a/examples/advanced/brachytherapy/include/BrachyRunAction.hh +++ b/examples/advanced/brachytherapy/include/BrachyRunAction.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyRunAction.hh,v 1.7 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh b/examples/advanced/brachytherapy/include/BrachyRunMessenger.hh index d306b02caa..4f0f6bfd9e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/examples/advanced/brachytherapy/include/BrachyVisManager.hh b/examples/advanced/brachytherapy/include/BrachyVisManager.hh index 4d0918de8a..e458f70c4b 100644 --- a/examples/advanced/brachytherapy/include/BrachyVisManager.hh +++ b/examples/advanced/brachytherapy/include/BrachyVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: BrachyVisManager.hh,v 1.5 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc index 752a45acc2..aeb3cc97ed 100644 --- a/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc +++ b/examples/advanced/brachytherapy/src/BrachyAnalysisManager.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** +// // Code developed by: // S.Guatelli // @@ -29,8 +29,8 @@ // * * // ******************************* // -// $Id: BrachyAnalysisManager.cc,v 1.11 2003/06/16 16:45:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyAnalysisManager.cc,v 1.12 2003/12/09 15:29:54 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifdef G4ANALYSIS_USE #include diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc index b25591a1eb..c2623026b9 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstruction.cc @@ -19,8 +19,6 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** - // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -36,8 +34,8 @@ // * * // **************************************** // -// $Id: BrachyDetectorConstruction.cc,v 1.21 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyDetectorConstruction.cc,v 1.22 2003/12/09 15:29:55 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyPhantomSD.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc index 53570680b5..c202a3f530 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionI.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -33,8 +33,8 @@ // * * // **************************************** // -// $Id: BrachyDetectorConstructionI.cc,v 1.5 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyDetectorConstructionI.cc,v 1.6 2003/12/09 15:29:56 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" #include "BrachyDetectorConstructionI.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc index 1570e1d132..93f458ff51 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionIr.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -34,8 +34,8 @@ // * * // **************************************** // -// $Id: BrachyDetectorConstructionIr.cc,v 1.5 2003/05/22 17:20:42 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyDetectorConstructionIr.cc,v 1.7 2003/12/09 15:29:57 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" #include "BrachyDetectorConstructionIr.hh" @@ -151,6 +151,7 @@ void BrachyDetectorConstructionIr::ConstructIridium(G4VPhysicalVolume* mother) void BrachyDetectorConstructionIr::CleanIridium() { + delete simpleIridiumVisAtt; simpleIridiumVisAtt = 0; diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc index 715e79fa02..efb66f661e 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorConstructionLeipzig.cc @@ -19,8 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** - +// // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -36,8 +35,8 @@ // ******************************************* // // -// $Id: BrachyDetectorConstructionLeipzig.cc,v 1.6 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyDetectorConstructionLeipzig.cc,v 1.7 2003/12/09 15:29:58 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc b/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc index 81f5104e89..670debcb46 100644 --- a/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc +++ b/examples/advanced/brachytherapy/src/BrachyDetectorMessenger.cc @@ -32,7 +32,7 @@ // // // $Id: BrachyDetectorMessenger.cc,v 1.8 2003/05/26 09:20:14 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/brachytherapy/src/BrachyEventAction.cc b/examples/advanced/brachytherapy/src/BrachyEventAction.cc index 0423d17c8d..3672bfddf8 100644 --- a/examples/advanced/brachytherapy/src/BrachyEventAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyEventAction.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyEventAction.cc,v 1.17 2003/05/27 08:37:54 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyEventAction.hh" #include "BrachyPhantomHit.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactory.cc b/examples/advanced/brachytherapy/src/BrachyFactory.cc index 2f10257bd6..909ded3cb7 100644 --- a/examples/advanced/brachytherapy/src/BrachyFactory.cc +++ b/examples/advanced/brachytherapy/src/BrachyFactory.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** +// // // Code developed by: // S.Guatelli @@ -31,8 +31,8 @@ // * * // ******************************* // -// $Id: BrachyFactory.cc,v 1.4 2003/05/09 16:52:08 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyFactory.cc,v 1.5 2003/12/09 15:29:59 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include"BrachyFactory.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryI.cc b/examples/advanced/brachytherapy/src/BrachyFactoryI.cc index daedce2d76..629352c83c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyFactoryI.hh" #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc b/examples/advanced/brachytherapy/src/BrachyFactoryIr.cc index f8716570c2..6f543fa809 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" #include "BrachyFactoryIr.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc b/examples/advanced/brachytherapy/src/BrachyFactoryLeipzig.cc index 27e0001a58..f415fd23d7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyMaterial.cc b/examples/advanced/brachytherapy/src/BrachyMaterial.cc index 31f812274c..e84bd3820c 100644 --- a/examples/advanced/brachytherapy/src/BrachyMaterial.cc +++ b/examples/advanced/brachytherapy/src/BrachyMaterial.cc @@ -30,7 +30,7 @@ // ******************************* // // $Id: BrachyMaterial.cc,v 1.4 2003/05/27 08:37:54 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4MaterialPropertiesTable.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc index 3802c0dc55..f5cb1bdc41 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomHit.cc @@ -31,7 +31,7 @@ // ******************************** // // $Id: BrachyPhantomHit.cc,v 1.5 2003/05/27 08:37:55 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyPhantomHit.hh" #include "G4ios.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc index db12340dd3..19c9751a89 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomROGeometry.cc @@ -30,8 +30,8 @@ // * * // ************************************ // -// $Id: BrachyPhantomROGeometry.cc,v 1.6 2003/05/27 08:37:55 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyPhantomROGeometry.cc,v 1.7 2003/11/18 13:31:46 guatelli Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyPhantomROGeometry.hh" #include "BrachyDummySD.hh" @@ -166,9 +166,9 @@ G4VPhysicalVolume* BrachyPhantomROGeometry::Build() // ...then Y division G4Box *ROPhantomYDivision = new G4Box("ROPhantomYDivision", - halfZVoxelDimensionX, - halfZVoxelDimensionX, - halfZVoxelDimensionX); + halfZVoxelDimensionZ, + halfZVoxelDimensionZ, + halfZVoxelDimensionZ); G4LogicalVolume *ROPhantomYDivisionLog = new G4LogicalVolume(ROPhantomYDivision, dummyMat, diff --git a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc index 5bab3a1b42..2bb1faeb0e 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhantomSD.cc @@ -31,7 +31,7 @@ // ******************************** // // $Id: BrachyPhantomSD.cc,v 1.5 2003/05/26 09:20:14 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyPhantomSD.hh" #include "BrachyPhantomHit.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc b/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc index 018ef02687..cef8541d93 100644 --- a/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc +++ b/examples/advanced/brachytherapy/src/BrachyPhysicsList.cc @@ -30,8 +30,8 @@ // * * // ********************************** // -// $Id: BrachyPhysicsList.cc,v 1.8 2003/05/26 09:20:14 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyPhysicsList.cc,v 1.9 2003/10/20 18:09:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyPhysicsList.hh" @@ -158,24 +158,12 @@ void BrachyPhysicsList::SetCuts() void BrachyPhysicsList::SetGammaLowLimit(G4double lowcut) { - if (verboseLevel >0){ - G4cout << "BrachyPhysicsList::SetCuts:"; - G4cout << "Gamma cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - G4Gamma::SetEnergyRange(lowcut,1e5); + SetGELowLimit(lowcut); } void BrachyPhysicsList::SetElectronLowLimit(G4double lowcut) { - if (verboseLevel >0){ - - G4cout << "BrachyPhysicsList::SetCuts:"; - G4cout << "Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - - } - - G4Electron::SetEnergyRange(lowcut,1e5); + SetGELowLimit(lowcut); } void BrachyPhysicsList::SetGELowLimit(G4double lowcut) @@ -184,11 +172,7 @@ void BrachyPhysicsList::SetGELowLimit(G4double lowcut) G4cout << "BrachyPhysicsList::SetCuts:"; G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; } - - G4Gamma::SetEnergyRange(lowcut,1e5); - G4Electron::SetEnergyRange(lowcut,1e5); - G4Positron::SetEnergyRange(lowcut,1e5); - + G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowcut,1e5); } void BrachyPhysicsList::SetGammaCut(G4double val) diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc index 31606d70d1..fa3bad7923 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorAction.cc @@ -19,8 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** - +// // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -35,8 +34,8 @@ // * * // ******************************************** // -// $Id: BrachyPrimaryGeneratorAction.cc,v 1.15 2003/05/26 09:20:14 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyPrimaryGeneratorAction.cc,v 1.16 2003/12/09 15:30:00 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" #include "BrachyPrimaryGeneratorAction.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc index 0373f16675..3183fe07b6 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionI.cc @@ -19,8 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** - +// // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -35,8 +34,8 @@ // * * // ******************************************** // -// $Id: BrachyPrimaryGeneratorActionI.cc,v 1.6 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyPrimaryGeneratorActionI.cc,v 1.7 2003/12/09 15:30:01 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyPrimaryGeneratorActionI.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc index fa14566fc6..67d2baa8d6 100644 --- a/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc +++ b/examples/advanced/brachytherapy/src/BrachyPrimaryGeneratorActionIr.cc @@ -19,8 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** - +// // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -35,8 +34,8 @@ // * * // ******************************************** // -// $Id: BrachyPrimaryGeneratorActionIr.cc,v 1.6 2003/05/22 17:20:43 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyPrimaryGeneratorActionIr.cc,v 1.7 2003/12/09 15:30:02 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyPrimaryGeneratorActionIr.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyRunAction.cc b/examples/advanced/brachytherapy/src/BrachyRunAction.cc index 5dc7a22266..1080f649a9 100644 --- a/examples/advanced/brachytherapy/src/BrachyRunAction.cc +++ b/examples/advanced/brachytherapy/src/BrachyRunAction.cc @@ -19,8 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** - +// // // -------------------------------------------------------------- // GEANT 4 - Brachytherapy example @@ -36,8 +35,8 @@ // * * // ******************************* // -// $Id: BrachyRunAction.cc,v 1.12 2003/05/22 17:20:44 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyRunAction.cc,v 1.13 2003/12/09 15:30:03 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "BrachyRunAction.hh" diff --git a/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc b/examples/advanced/brachytherapy/src/BrachyRunMessenger.cc index 8a9a03b486..a1b1476e2d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/examples/advanced/brachytherapy/src/BrachyVisManager.cc b/examples/advanced/brachytherapy/src/BrachyVisManager.cc index cabc688bb1..0efa33aa28 100644 --- a/examples/advanced/brachytherapy/src/BrachyVisManager.cc +++ b/examples/advanced/brachytherapy/src/BrachyVisManager.cc @@ -28,8 +28,8 @@ // * * // ******************************* // -// $Id: BrachyVisManager.cc,v 1.6 2003/05/22 17:20:44 guatelli Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: BrachyVisManager.cc,v 1.7 2003/11/12 16:44:13 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifdef G4VIS_USE @@ -46,17 +46,11 @@ #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" #endif -/* #ifdef G4VIS_USE_OPENGLWIN32 #include "G4OpenGLImmediateWin32.hh" #include "G4OpenGLStoredWin32.hh" @@ -88,7 +82,6 @@ #ifdef G4VIS_USE_RAYTRACER #include "G4RayTracer.hh" #endif -*/ BrachyVisManager::BrachyVisManager () {} @@ -102,17 +95,12 @@ void BrachyVisManager::RegisterGraphicsSystems () #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); #endif - /* + #ifdef G4VIS_USE_OPENGLWIN32 RegisterGraphicsSystem (new G4OpenGLImmediateWin32); RegisterGraphicsSystem (new G4OpenGLStoredWin32); @@ -151,7 +139,7 @@ void BrachyVisManager::RegisterGraphicsSystems () << G4endl; PrintAvailableGraphicsSystems (); } - */ + } #endif diff --git a/examples/advanced/composite_calorimeter/GNUmakefile b/examples/advanced/composite_calorimeter/GNUmakefile index 642fa064e7..34b71105cb 100644 --- a/examples/advanced/composite_calorimeter/GNUmakefile +++ b/examples/advanced/composite_calorimeter/GNUmakefile @@ -1,11 +1,9 @@ -# -------------------------------------------------------------- -# $Id: GNUmakefile,v 1.5 2002/12/05 18:09:07 ribon Exp $ +# $Id: GNUmakefile,v 1.9 2003/12/04 11:20:34 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- name := CompositeCalorimeter - G4TARGET := $(name) G4EXLIB := true @@ -13,7 +11,12 @@ ifndef G4INSTALL G4INSTALL = ../../../ endif +include $(G4INSTALL)/config/architecture.gmk + +include hadronic_lists.gmk + .PHONY: all + all: lib bin include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/advanced/composite_calorimeter/History b/examples/advanced/composite_calorimeter/History index 29130375f6..1d61935c3a 100644 --- a/examples/advanced/composite_calorimeter/History +++ b/examples/advanced/composite_calorimeter/History @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: History,v 1.12 2003/06/12 15:25:20 ribon Exp $ +$Id: History,v 1.21 2003/12/05 07:38:38 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,6 +9,42 @@ $Id: History,v 1.12 2003/06/12 15:25:20 ribon Exp $ Example History file --------------------- +05.12.03 - G.Cosmo (ccal-V05-02-07) +- Changed LISTS_BASE to G4LISTS_BASE for hadronic physics lists path. + Cowork with "ghad-lists-V05-02-01". + +04.12.03 - A.Ribon (ccal-V05-02-06) +- Added some recent modifications and improvements from Sunanda. + +04.12.03 - G.Cosmo (ccal-V05-02-05) +- Corrected GNUmakefile and updated scripts to Anaphe 5.0.6. + +03.12.03 - H.P.Wellisch +- Removed physics-lists, now using default setup provided in + $G4INSTALL/hadronic_lists. + +25.11.03 - A.Ribon (ccal-V05-02-04) +- Changes in the Physics Lists to be compatible with the latest + hadronic changes in geant4-06-00-cand-02. + +13.11.03 - John Allison +- Brought Vis Manager up to date. + +05.11.03 - A.Ribon (ccal-V05-02-03) +- Add some modifications from Sunanda on how to handle "GetReplicaNumber()". + +03.11.03 - A.Ribon (ccal-V05-02-02) +- Removed "GetCopyNo()" and replaced it with "GetReplicaNumber()" + using G4TouchableHistory. + +31.10.03 - A.Ribon (ccal-V05-02-01) +- Enables possibility of running the simulation in HCal alone or + HCal+ECal mode with the correct B-field + a few small bug corrections. + Changed also the default stepper (in magnetic field). + +18.09.03 V.Ivanchenko (ccal-V05-02-00) +- Complete migration to model EM physics + 12.06.2003 - A.Ribon (ccal-V05-01-02) - Updated the LHEP, QGSP, and QGSC Physics Lists. Done also some clean up. diff --git a/examples/advanced/composite_calorimeter/README b/examples/advanced/composite_calorimeter/README index df574100a7..8c04c90334 100644 --- a/examples/advanced/composite_calorimeter/README +++ b/examples/advanced/composite_calorimeter/README @@ -1,5 +1,5 @@ ------------------------------------------------------------------- -$Id: README,v 1.8 2003/06/12 15:25:20 ribon Exp $ +$Id: README,v 1.10 2003/12/04 16:49:55 ribon Exp $ ------------------------------------------------------------------- ========================================================= @@ -57,7 +57,7 @@ $Id: README,v 1.8 2003/06/12 15:25:20 ribon Exp $ > . envExample.sh in the case of bash-shell The analysis part is based on: - *** AIDA version 3.0 & Anaphe version 5.0.2 *** + *** AIDA version 3.0 & Anaphe version 5.0.6 *** NB) Be careful that if you want to have this analysis part, you have not only to set the variable G4ANALYSIS_USE but @@ -147,8 +147,20 @@ $Id: README,v 1.8 2003/06/12 15:25:20 ribon Exp $ *DO FLDM 0.0 9 652.0 for example, if you want a magnetic field of 3.0 Tesla the last - line must be set as follows: - 3.0 9 652.0 + line must be set as follows (the magnetic field unity is kilo Gauss). + 30.0 9 652.0 + + The default stepper in magnetic field is G4ClassicalRK4, but other + possibilities can be selected by editing the file + src/CCalDetectorConstruction.cc (look at the string "***STEPPER***"). + + In order to deactivate either the ECAL or the HCAL, it is enough + to comment out the corresponding line in the file g4testbeamhcal96.conf, + using "#" as the comment character. For instance, to have only the HCAL + without ECAL: + "HcalTB96" "tbhcal96" 1 + #"CrystalMatrixModule" "tbhcal96xtal" 1 + In this test-beam setup, at the back of ECAL, there is also some material for support and readout, which has been considered in the @@ -357,7 +369,7 @@ No Noise and Digitization The analysis part of CompositeCalorimeter is kept in class CCalAnalysis, and is based on the AIDA interfaces and their implementation in Anaphe: - *** AIDA version 3.0 & Anaphe version 5.0.2 *** + *** AIDA version 3.0 & Anaphe version 5.0.6 *** please look at their documentation for more details: http://anaphe.web.cern.ch/anaphe Both the histograms and the ntuple are saved at the end of the run in the @@ -400,7 +412,7 @@ No Noise and Digitization ( ID histo = 400 + radial distance in cm ). Histogram 4000 : total energy deposit (in GeV) in the sensitive parts - of either the electromagnetic or hadronic calorimeters. + of either the electromagnetic or hadronic calorimeters. Ntuple variable edep provides the same information. Other ntuple variables are the following: @@ -496,56 +508,6 @@ No Noise and Digitization CCalPrimaryGeneratorMessenger User action for primaries generator. - EMModelPhysics.hh - EMPhysics.hh - G4DataQuestionaire.hh - G4EMBuilder.hh - G4EMModelBuilder.hh - G4HadronModelQEDBuilder.hh - G4HadronQEDBuilder.hh - G4LEPNeutronBuilder.hh - G4LEPPiKBuilder.hh - G4LEPProtonBuilder.hh - G4LHEPNeutronBuilder.hh - G4LHEPPiKBuilder.hh - G4LHEPProtonBuilder.hh - G4MiscLHEPBuilder.hh - G4NeutronBuilder.hh - G4NeutronHPBuilder.hh - G4PiKBuilder.hh - G4PrecoNeutronBuilder.hh - G4PrecoProtonBuilder.hh - G4ProtonBuilder.hh - G4QGSCNeutronBuilder.hh - G4QGSCPiKBuilder.hh - G4QGSCProtonBuilder.hh - G4QGSPNeutronBuilder.hh - G4QGSPPiKBuilder.hh - G4QGSPProtonBuilder.hh - G4StoppingHadronBuilder.hh - G4VNeutronBuilder.hh - G4VPiKBuilder.hh - G4VProtonBuilder.hh - GeneralPhysics.hh - HadronPhysicsLHEP.hh - HadronPhysicsQGSC.hh - HadronPhysicsQGSP.hh - IonModelPhysics.hh - IonPhysics.hh - LHEP.hh - MuonModelPhysics.hh - MuonPhysics.hh - QGSC.hh - QGSP.hh - Determination of particles and processes active in this example. - The following three major Physics Lists for High Energy - Calorimetry can been selected: LHEP, QGSC, QGSP. - Most of these classes will be soon moved in the Geant4 kernel. - Please refer to the Web page: - http://cmsdoc.cern.ch/~hpw/GHAD/HomePage/index.html - for more information of these (and others) Physics Lists, - and for eventual updated versions. - CCalDetectorConstruction CCalAMaterial CCalDataSet diff --git a/examples/advanced/composite_calorimeter/dataglobal/fmap.tb96 b/examples/advanced/composite_calorimeter/dataglobal/fmap.tb96 index 04db5eab3f..376efab1ba 100644 --- a/examples/advanced/composite_calorimeter/dataglobal/fmap.tb96 +++ b/examples/advanced/composite_calorimeter/dataglobal/fmap.tb96 @@ -1,13 +1,17 @@ #. Field map *DO FLDM - 0.0 9 652.0 - -480.0 0.0012125 0.80 - -240.0 0.0015625 0.93 - 80.0 0.0010 0.82 - 260.0 0.0003889 0.90 - 620.0 0.0 1.00 - 800.0 -0.0003333 1.20 - 1120.0 -0.0010 1.70 - 1360.0 -0.0015625 2.30 - 2026.0 -0.0012125 1.85 + 0.0 13 582.0 + -730.0 0.001212500 0.88512241 + -570.0 0.001412500 0.99912241 + -250.0 0.001225000 0.95224741 + -130.0 0.000761100 0.89194041 + 50.0 0.000425000 0.90874541 + 170.0 0.000216700 0.94415641 + 257.7 0.000000000 1.00000000 + 532.3 -0.000216700 1.11534941 + 620.0 -0.000425000 1.24449541 + 740.0 -0.000761100 1.49320941 + 920.0 -0.001225000 1.91999741 + 1040.0 -0.001412500 2.11499741 + 1360.0 -0.001212500 1.84299741 *ENDDO diff --git a/examples/advanced/composite_calorimeter/envExample.csh b/examples/advanced/composite_calorimeter/envExample.csh index b07ea25013..152cd042bd 100755 --- a/examples/advanced/composite_calorimeter/envExample.csh +++ b/examples/advanced/composite_calorimeter/envExample.csh @@ -8,9 +8,9 @@ # G4ANALYSIS_USE must be set to 1). #------------------------------------------------------------------ # -# --- Aida 3.0 , Anaphe 5.0.2 --- -#source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.2/scripts/setupAnaphe.csh -#setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.2/scripts/ +# --- Aida 3.0 , Anaphe 5.0.6 --- +#source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.6/scripts/setupAnaphe.csh +#setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.6/scripts # # --- Specific setup for this test-beam example --- setenv CCAL_CONFPATH ./dataconf diff --git a/examples/advanced/composite_calorimeter/envExample.sh b/examples/advanced/composite_calorimeter/envExample.sh index 2edb474cf0..846b262660 100755 --- a/examples/advanced/composite_calorimeter/envExample.sh +++ b/examples/advanced/composite_calorimeter/envExample.sh @@ -8,9 +8,9 @@ # G4ANALYSIS_USE must be set to 1). #------------------------------------------------------------------ # -# --- Aida 3.0 , Anaphe 5.0.2 --- -#. /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.2/scripts/setupAnaphe -#export PATH=$PATH:/afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.2/scripts/ +# --- Aida 3.0 , Anaphe 5.0.6 --- +#. /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.6/scripts/setupAnaphe +#export PATH=$PATH:/afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.6/scripts # # --- Specific setup for this test-beam example --- export CCAL_CONFPATH=./dataconf diff --git a/examples/advanced/composite_calorimeter/hadronic_lists.gmk b/examples/advanced/composite_calorimeter/hadronic_lists.gmk new file mode 100644 index 0000000000..f9171d3f08 --- /dev/null +++ b/examples/advanced/composite_calorimeter/hadronic_lists.gmk @@ -0,0 +1,104 @@ +# $Id: hadronic_lists.gmk,v 1.3 2003/12/05 07:38:39 gcosmo Exp $ +# -------------------------------------------------------------- +# hadronic physics-lists setup - H.P.Wellisch +# -------------------------------------------------------------- + +ifndef G4LISTS_BASE + EXTRALIBS += -L$(G4LIB)/.lists_build/$(G4SYSTEM) + G4LISTS_BASE = $(G4INSTALL)/hadronic_lists +else + EXTRALIBS += -L$(G4LISTS_BASE)/lists/.lists_build/lib/$(G4SYSTEM) +endif + +# EXTRALIBS += -lFTFC +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 += -lQGSP_Model +# EXTRALIBS += -lQGSP_BERT +# EXTRALIBS += -lLHEP_PRECO_HP +EXTRALIBS += -lQGSC +# EXTRALIBS += -lQGSC_LEAD +# EXTRALIBS += -lQGSC_LEAD_HP +EXTRALIBS += -lQGSP +# EXTRALIBS += -lQGSP_GN +# EXTRALIBS += -lQGSP_HP +# EXTRALIBS += -lLHEP_BERT +# EXTRALIBS += -lLHEP_BIC +# EXTRALIBS += -lQGSP_BIC +EXTRALIBS += -lPackaging + +EXTRALIBS += -lG4hadronic_proc +EXTRALIBS += -lG4hadronic_HE +EXTRALIBS += -lG4hadronic_LE +EXTRALIBS += -lG4hadronic_iso +EXTRALIBS += -lG4had_neu_hp +EXTRALIBS += -lG4hadronic_coherent_elastic +EXTRALIBS += -lG4hadronic_hetcpp_evaporation +EXTRALIBS += -lG4hadronic_hetcpp_utils +EXTRALIBS += -lG4hadronic_bert_cascade +EXTRALIBS += -lG4hadronic_interface_ci +EXTRALIBS += -lG4hadronic_body_ci +EXTRALIBS += -lG4hadronic_leading_particle +EXTRALIBS += -lG4hadronic_stop +EXTRALIBS += -lG4hadronic_radioactivedecay + +EXTRALIBS += -lG4had_theo_max +EXTRALIBS += -lG4hadronic_qgstring +EXTRALIBS += -lG4had_string_diff +EXTRALIBS += -lG4had_string_frag +EXTRALIBS += -lG4had_string_man + +EXTRALIBS += -lG4hadronic_binary +EXTRALIBS += -lG4had_im_r_matrix +EXTRALIBS += -lG4had_preequ_exciton +EXTRALIBS += -lG4hadronic_deex_evaporation +EXTRALIBS += -lG4hadronic_deex_fermi_breakup +EXTRALIBS += -lG4hadronic_deex_fission +EXTRALIBS += -lG4hadronic_deex_gem_evaporation +EXTRALIBS += -lG4hadronic_deex_handler +EXTRALIBS += -lG4hadronic_deex_management +EXTRALIBS += -lG4hadronic_deex_multifragmentation +EXTRALIBS += -lG4hadronic_deex_photon_evaporation +EXTRALIBS += -lG4hadronic_deex_util + +EXTRALIBS += -lG4had_mod_man +EXTRALIBS += -lG4had_mod_util + +EXTRALIBS += -lG4hadronic_mgt +EXTRALIBS += -lG4hadronic_xsect +EXTRALIBS += -lG4hadronic_util + +EXTRALIBS += -lG4shortlived + +CPPFLAGS += -I$(G4LISTS_BASE)/lists/FTFC/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/FTFP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LBE/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BERT/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BIC/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_GN/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BERT_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BIC_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_LEAD/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_LEAD_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_PRECO/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_PRECO_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/Packaging/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSC/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSC_LEAD/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSC_LEAD_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_BERT/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_BIC/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_GN/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_Model/include diff --git a/examples/advanced/composite_calorimeter/include/CCalAnalysis.hh b/examples/advanced/composite_calorimeter/include/CCalAnalysis.hh index 013ce7d15c..4568a1d75c 100644 --- a/examples/advanced/composite_calorimeter/include/CCalAnalysis.hh +++ b/examples/advanced/composite_calorimeter/include/CCalAnalysis.hh @@ -31,9 +31,9 @@ #ifndef CCalAnalysis_h #define CCalAnalysis_h 1 +#include "G4ThreeVector.hh" #include "globals.hh" #include -#include "G4ThreeVector.hh" namespace AIDA { class IAnalysisFactory; @@ -65,6 +65,7 @@ public: void InsertEnergy(float v); void InsertLateralProfile(float*); void InsertTime(float*); + void InsertTimeProfile(int, double, double); void setNtuple(float* hcalE, float* ecalE, float elab, float x, float y, float z, float edep, float edec, float edhc); @@ -80,14 +81,15 @@ private: AIDA::ITree* tree; AIDA::ITuple* tuple; - enum {numberOfTimeSlices = 40}; + enum {numberOfTimeSlices = 200}; AIDA::IHistogram1D* energy; - AIDA::IHistogram1D* hcalE[28]; // 28 hadronic modules - AIDA::IHistogram1D* ecalE[49]; // 49 crystal towers - AIDA::IHistogram1D* timeHist[40]; // 40 nanoseconds time window - AIDA::IHistogram1D* lateralProfile[70]; // 70 centimeters lateral window + AIDA::IHistogram1D* hcalE[28]; // 28 hadronic modules + AIDA::IHistogram1D* ecalE[49]; // 49 crystal towers + AIDA::IHistogram1D* timeHist[200]; // 200 nanoseconds time window + AIDA::IHistogram1D* lateralProfile[70]; // 70 centimeters lateral window // (indeed 64 should be enough) + AIDA::IHistogram1D* timeProfile[2]; // at step and in sensitive detector }; diff --git a/examples/advanced/composite_calorimeter/include/CCalG4Able.hh b/examples/advanced/composite_calorimeter/include/CCalG4Able.hh index 8532443112..f1e796edbf 100644 --- a/examples/advanced/composite_calorimeter/include/CCalG4Able.hh +++ b/examples/advanced/composite_calorimeter/include/CCalG4Able.hh @@ -55,7 +55,7 @@ public: CCalG4Able(G4String name); ////////////////////////////////////////////////////////////////////////// //Destructor - virtual ~CCalG4Able() {delete detPhysicalVolume;} + virtual ~CCalG4Able(); ////////////////////////////////////////////////////////////////////////// //Get/Set methods diff --git a/examples/advanced/composite_calorimeter/include/CCalSteppingAction.hh b/examples/advanced/composite_calorimeter/include/CCalSteppingAction.hh index f0d4df7414..744ecfc66c 100644 --- a/examples/advanced/composite_calorimeter/include/CCalSteppingAction.hh +++ b/examples/advanced/composite_calorimeter/include/CCalSteppingAction.hh @@ -46,7 +46,7 @@ public: private: float LateralProfile[70]; - float timeDeposit[40]; + float timeDeposit[200]; int timeHistoMaxBin; private: diff --git a/examples/advanced/composite_calorimeter/include/CCaloSD.hh b/examples/advanced/composite_calorimeter/include/CCaloSD.hh index 9aea9a4372..fb63ff8553 100644 --- a/examples/advanced/composite_calorimeter/include/CCaloSD.hh +++ b/examples/advanced/composite_calorimeter/include/CCaloSD.hh @@ -70,7 +70,7 @@ public: void SetPrimaryID(int i) {PrimaryID = i; #ifdef debug - cout<<"CCaloSD SetPrimaryID primID ="< - -enum G4DataType {no, photon, neutron, radioactive, lowenergy}; -class G4DataQuestionaire -{ - public: - G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no) - { - G4cout < - -#include "G4MultipleScatteringSTD.hh" -#include "G4hIonisationSTD.hh" -#include "G4ProcessManager.hh" - -class G4HadronModelQEDBuilder -{ - public: - G4HadronModelQEDBuilder(); - virtual ~G4HadronModelQEDBuilder(); - - public: - virtual void Build(); - - private: - void RegisterOne(G4ProcessManager* aP, G4MultipleScatteringSTD * aM, G4hIonisationSTD* aI); - - private: - - // Pi + - G4MultipleScatteringSTD thePionPlusMult; - G4hIonisationSTD thePionPlusIonisation; - - // Pi - - G4MultipleScatteringSTD thePionMinusMult; - G4hIonisationSTD thePionMinusIonisation; - - // K + - G4MultipleScatteringSTD theKaonPlusMult; - G4hIonisationSTD theKaonPlusIonisation; - - // K - - G4MultipleScatteringSTD theKaonMinusMult; - G4hIonisationSTD theKaonMinusIonisation; - - // Proton - G4MultipleScatteringSTD theProtonMult; - G4hIonisationSTD theProtonIonisation; - - // anti-proton - G4MultipleScatteringSTD theAntiProtonMult; - G4hIonisationSTD theAntiProtonIonisation; - - // SigmaMinus - G4MultipleScatteringSTD theSigmaMinusMult; - G4hIonisationSTD theSigmaMinusIonisation; - - // AntiSigmaMinus - G4MultipleScatteringSTD theAntiSigmaMinusMult; - G4hIonisationSTD theAntiSigmaMinusIonisation; - - // SigmaPlus - G4MultipleScatteringSTD theSigmaPlusMult; - G4hIonisationSTD theSigmaPlusIonisation; - - // AntiSigmaPlus - G4MultipleScatteringSTD theAntiSigmaPlusMult; - G4hIonisationSTD theAntiSigmaPlusIonisation; - - // XiMinus - G4MultipleScatteringSTD theXiMinusMult; - G4hIonisationSTD theXiMinusIonisation; - - // AntiXiMinus - G4MultipleScatteringSTD theAntiXiMinusMult; - G4hIonisationSTD theAntiXiMinusIonisation; - - // OmegaMinus - G4MultipleScatteringSTD theOmegaMinusMult; - G4hIonisationSTD theOmegaMinusIonisation; - - // AntiOmegaMinus - G4MultipleScatteringSTD theAntiOmegaMinusMult; - G4hIonisationSTD theAntiOmegaMinusIonisation; - - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4HadronQEDBuilder.hh b/examples/advanced/composite_calorimeter/include/G4HadronQEDBuilder.hh deleted file mode 100644 index c4996cd46f..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4HadronQEDBuilder.hh +++ /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. * -// ******************************************************************** -// -#ifndef G4HadronQEDBuilder_h -#define G4HadronQEDBuilder_h 1 - -#include "globals.hh" -#include "G4ios.hh" -#include - -#include "G4MultipleScattering.hh" -#include "G4hIonisation.hh" -#include "G4ProcessManager.hh" - -class G4HadronQEDBuilder -{ - public: - G4HadronQEDBuilder(); - virtual ~G4HadronQEDBuilder(); - - public: - virtual void Build(); - - private: - void RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI); - - private: - - // Pi + - G4MultipleScattering thePionPlusMult; - G4hIonisation thePionPlusIonisation; - - // Pi - - G4MultipleScattering thePionMinusMult; - G4hIonisation thePionMinusIonisation; - - // K + - G4MultipleScattering theKaonPlusMult; - G4hIonisation theKaonPlusIonisation; - - // K - - G4MultipleScattering theKaonMinusMult; - G4hIonisation theKaonMinusIonisation; - - // Proton - G4MultipleScattering theProtonMult; - G4hIonisation theProtonIonisation; - - // anti-proton - G4MultipleScattering theAntiProtonMult; - G4hIonisation theAntiProtonIonisation; - - // SigmaMinus - G4MultipleScattering theSigmaMinusMult; - G4hIonisation theSigmaMinusIonisation; - - // AntiSigmaMinus - G4MultipleScattering theAntiSigmaMinusMult; - G4hIonisation theAntiSigmaMinusIonisation; - - // SigmaPlus - G4MultipleScattering theSigmaPlusMult; - G4hIonisation theSigmaPlusIonisation; - - // AntiSigmaPlus - G4MultipleScattering theAntiSigmaPlusMult; - G4hIonisation theAntiSigmaPlusIonisation; - - // XiMinus - G4MultipleScattering theXiMinusMult; - G4hIonisation theXiMinusIonisation; - - // AntiXiMinus - G4MultipleScattering theAntiXiMinusMult; - G4hIonisation theAntiXiMinusIonisation; - - // OmegaMinus - G4MultipleScattering theOmegaMinusMult; - G4hIonisation theOmegaMinusIonisation; - - // AntiOmegaMinus - G4MultipleScattering theAntiOmegaMinusMult; - G4hIonisation theAntiOmegaMinusIonisation; - - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4LEPNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LEPNeutronBuilder.hh deleted file mode 100644 index aa0ea1770c..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4LEPNeutronBuilder.hh +++ /dev/null @@ -1,79 +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 G4LEPNeutronBuilder_h -#define G4LEPNeutronBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VNeutronBuilder.hh" - -#include "G4LElastic.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" -#include "G4LENeutronInelastic.hh" - -class G4LEPNeutronBuilder : public G4VNeutronBuilder -{ - public: - G4LEPNeutronBuilder(); - virtual ~G4LEPNeutronBuilder(); - - public: - 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; - theIMin = theMin; - } - void SetMinInelasticEnergy(G4double aM) - { - theIMin=aM; - } - void SetMaxEnergy(G4double aM) - { - theMax=aM; - } - - private: - G4double theMin; - G4double theIMin; - G4double theMax; - G4LElastic * theElasticModel; - G4LENeutronInelastic * theLENeutronModel; - G4LFission * theNeutronFissionModel; - G4LCapture * theNeutronCaptureModel; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4LEPPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LEPPiKBuilder.hh deleted file mode 100644 index cb343d0d47..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4LEPPiKBuilder.hh +++ /dev/null @@ -1,86 +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 G4LEPPiKBuilder_h -#define G4LEPPiKBuilder_h - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4VPiKBuilder.hh" - -#include "G4LElastic.hh" - -#include "G4LEPionPlusInelastic.hh" -#include "G4LEPionMinusInelastic.hh" -#include "G4LEKaonPlusInelastic.hh" -#include "G4LEKaonZeroSInelastic.hh" -#include "G4LEKaonZeroLInelastic.hh" -#include "G4LEKaonMinusInelastic.hh" - -class G4LEPPiKBuilder : public G4VPiKBuilder -{ - public: - G4LEPPiKBuilder(); - 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); - - void SetMinEnergy(G4double aM) - { - theMin=aM; - theMinPion=theMin; - } - void SetMinPionEnergy(G4double aM) - { - theMinPion=aM; - } - void SetMaxEnergy(G4double aM) - { - theMax=aM; - } - - private: - G4double theMin; - G4double theMinPion; - G4double theMax; - - G4LElastic * theElasticModel; - - G4LEPionPlusInelastic* theLEPionPlusModel; - G4LEPionMinusInelastic* theLEPionMinusModel; - G4LEKaonPlusInelastic* theLEKaonPlusModel; - G4LEKaonMinusInelastic* theLEKaonMinusModel; - G4LEKaonZeroLInelastic* theLEKaonZeroLModel; - G4LEKaonZeroSInelastic* theLEKaonZeroSModel; - -}; -// 2002 by J.P. Wellisch - -#endif diff --git a/examples/advanced/composite_calorimeter/include/G4LHEPNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LHEPNeutronBuilder.hh deleted file mode 100644 index b2191be0ef..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4LHEPNeutronBuilder.hh +++ /dev/null @@ -1,77 +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 G4LHEPNeutronBuilder_h -#define G4LHEPNeutronBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VNeutronBuilder.hh" - -#include "G4LElastic.hh" -#include "G4LFission.hh" -#include "G4LCapture.hh" -#include "G4LENeutronInelastic.hh" -#include "G4HENeutronInelastic.hh" - -class G4LHEPNeutronBuilder : public G4VNeutronBuilder -{ - public: - G4LHEPNeutronBuilder(); - virtual ~G4LHEPNeutronBuilder(); - - public: - 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; - theIMin = aM; - } - void SetMinInelasticEnergy(G4double aM) - { - theIMin = aM; - } - - private: - G4LElastic * theElasticModel; - G4LENeutronInelastic * theLENeutronModel; - G4HENeutronInelastic * theHENeutronModel; - G4LFission * theNeutronFissionModel; - G4LCapture * theNeutronCaptureModel; - - G4double theMin; - G4double theIMin; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4LHEPPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4LHEPPiKBuilder.hh deleted file mode 100644 index d14546ac78..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4LHEPPiKBuilder.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. * -// ******************************************************************** -// -#ifndef G4LHEPPiKBuilder_h -#define G4LHEPPiKBuilder_h 1 - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4LElastic.hh" -#include "G4VPiKBuilder.hh" - -#include "G4LEPionPlusInelastic.hh" -#include "G4LEPionMinusInelastic.hh" -#include "G4LEKaonPlusInelastic.hh" -#include "G4LEKaonZeroSInelastic.hh" -#include "G4LEKaonZeroLInelastic.hh" -#include "G4LEKaonMinusInelastic.hh" - -#include "G4HEPionPlusInelastic.hh" -#include "G4HEPionMinusInelastic.hh" -#include "G4HEKaonPlusInelastic.hh" -#include "G4HEKaonZeroInelastic.hh" -#include "G4HEKaonZeroInelastic.hh" -#include "G4HEKaonMinusInelastic.hh" - -class G4LHEPPiKBuilder : public G4VPiKBuilder -{ - public: - G4LHEPPiKBuilder(); - 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); - - void SetMinEnergy(G4double aM) - { - theM=aM; - theMinPion=theM; - } - void SetMinPionEnergy(G4double aM) - { - theMinPion = aM; - } - - private: - G4double theM; - G4double theMinPion; - - G4LElastic * theElasticModel; - - // Pi + - G4LEPionPlusInelastic* theLEPionPlusModel; - G4HEPionPlusInelastic* theHEPionPlusModel; - - // Pi - - G4LEPionMinusInelastic* theLEPionMinusModel; - G4HEPionMinusInelastic* theHEPionMinusModel; - - // K + - G4LEKaonPlusInelastic* theLEKaonPlusModel; - G4HEKaonPlusInelastic* theHEKaonPlusModel; - - // K - - G4LEKaonMinusInelastic* theLEKaonMinusModel; - G4HEKaonMinusInelastic* theHEKaonMinusModel; - - // K0L - G4LEKaonZeroLInelastic* theLEKaonZeroLModel; - G4HEKaonZeroInelastic* theHEKaonZeroLModel; - - // K0S - G4LEKaonZeroSInelastic* theLEKaonZeroSModel; - G4HEKaonZeroInelastic* theHEKaonZeroSModel; - -}; -// 2002 by J.P. Wellisch - -#endif diff --git a/examples/advanced/composite_calorimeter/include/G4NeutronHPBuilder.hh b/examples/advanced/composite_calorimeter/include/G4NeutronHPBuilder.hh deleted file mode 100644 index c90f577473..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4NeutronHPBuilder.hh +++ /dev/null @@ -1,70 +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 G4NeutronHPBuilder_h -#define G4NeutronHPBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VNeutronBuilder.hh" - -#include "G4NeutronHPElasticData.hh" -#include "G4NeutronHPElastic.hh" -#include "G4NeutronHPInelastic.hh" -#include "G4NeutronHPInelasticData.hh" -#include "G4NeutronHPFission.hh" -#include "G4NeutronHPFissionData.hh" -#include "G4NeutronHPCapture.hh" -#include "G4NeutronHPCaptureData.hh" - -class G4NeutronHPBuilder : public G4VNeutronBuilder -{ - public: - G4NeutronHPBuilder(); - virtual ~G4NeutronHPBuilder(); - - public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4HadronFissionProcess & aP); - virtual void Build(G4HadronCaptureProcess & aP); - virtual void Build(G4NeutronInelasticProcess & aP); - - private: - G4NeutronHPElastic * theHPElastic; - G4NeutronHPElasticData * theHPElasticData; - G4NeutronHPInelastic * theHPInelastic; - G4NeutronHPInelasticData * theHPInelasticData; - G4NeutronHPFission * theHPFission; - G4NeutronHPFissionData * theHPFissionData; - G4NeutronHPCapture * theHPCapture; - G4NeutronHPCaptureData * theHPCaptureData; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4PrecoProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4PrecoProtonBuilder.hh deleted file mode 100644 index b196d74966..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4PrecoProtonBuilder.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. * -// ******************************************************************** -// -#ifndef G4PrecoProtonBuilder_h -#define G4PrecoProtonBuilder_h - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4VProtonBuilder.hh" - -#include "G4ExcitationHandler.hh" -#include "G4PreCompoundModel.hh" -#include "G4ProtonInelasticCrossSection.hh" - -class G4PrecoProtonBuilder : public G4VProtonBuilder -{ - public: - G4PrecoProtonBuilder(); - virtual ~G4PrecoProtonBuilder(); - - public: - 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; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4QGSCNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSCNeutronBuilder.hh deleted file mode 100644 index 9e90ee4527..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4QGSCNeutronBuilder.hh +++ /dev/null @@ -1,71 +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 G4QGSCNeutronBuilder_h -#define G4QGSCNeutronBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VNeutronBuilder.hh" - -#include "G4NeutronInelasticCrossSection.hh" -#include "G4TheoFSGenerator.hh" -#include "G4StringChipsParticleLevelInterface.hh" -#include "G4QGSModel.hh" -#include "G4QGSParticipants.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -class G4QGSCNeutronBuilder : public G4VNeutronBuilder -{ - public: - G4QGSCNeutronBuilder(); - virtual ~G4QGSCNeutronBuilder(); - - public: - 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; - G4QGSModel< G4QGSParticipants > theStringModel; - G4QGSMFragmentation theFragmentation; - G4ExcitedStringDecay * theStringDecay; - - G4NeutronInelasticCrossSection theXSec; - G4double theMin; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4QGSCPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSCPiKBuilder.hh deleted file mode 100644 index 37404a1715..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4QGSCPiKBuilder.hh +++ /dev/null @@ -1,75 +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 G4QGSCPiKBuilder_h -#define G4QGSCPiKBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VPiKBuilder.hh" - -#include "G4PiNuclearCrossSection.hh" - -#include "G4TheoFSGenerator.hh" -#include "G4StringChipsParticleLevelInterface.hh" -#include "G4QGSModel.hh" -#include "G4QGSParticipants.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -class G4QGSCPiKBuilder : public G4VPiKBuilder -{ - public: - G4QGSCPiKBuilder(); - 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); - - void SetMinEnergy(G4double aM) {theMin = aM;} - - private: - G4PiNuclearCrossSection thePiCross; - - G4TheoFSGenerator * theModel; - G4StringChipsParticleLevelInterface * theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; - G4QGSMFragmentation theFragmentation; - G4ExcitedStringDecay * theStringDecay; - G4double theMin; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4QGSCProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSCProtonBuilder.hh deleted file mode 100644 index 1e31cd83d6..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4QGSCProtonBuilder.hh +++ /dev/null @@ -1,70 +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 G4QGSCProtonBuilder_h -#define G4QGSCProtonBuilder_h - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4VProtonBuilder.hh" - -#include "G4NeutronInelasticCrossSection.hh" -#include "G4TheoFSGenerator.hh" -#include "G4StringChipsParticleLevelInterface.hh" -#include "G4QGSModel.hh" -#include "G4QGSParticipants.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -#include "G4ProtonInelasticCrossSection.hh" - -class G4QGSCProtonBuilder : public G4VProtonBuilder -{ - public: - G4QGSCProtonBuilder(); - virtual ~G4QGSCProtonBuilder(); - - public: - virtual void Build(G4HadronElasticProcess & aP); - virtual void Build(G4ProtonInelasticProcess & aP); - - void SetMinEnergy(G4double aM) {theMin = aM;} - - private: - G4ProtonInelasticCrossSection theXSec; - G4TheoFSGenerator * theModel; - G4StringChipsParticleLevelInterface * theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; - G4QGSMFragmentation theFragmentation; - G4ExcitedStringDecay * theStringDecay; - G4double theMin; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4QGSPNeutronBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSPNeutronBuilder.hh deleted file mode 100644 index 5f36947d4b..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4QGSPNeutronBuilder.hh +++ /dev/null @@ -1,75 +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 G4QGSPNeutronBuilder_h -#define G4QGSPNeutronBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VNeutronBuilder.hh" - -#include "G4NeutronInelasticCrossSection.hh" -#include "G4TheoFSGenerator.hh" -#include "G4ExcitationHandler.hh" -#include "G4PreCompoundModel.hh" -#include "G4GeneratorPrecompoundInterface.hh" -#include "G4QGSModel.hh" -#include "G4QGSParticipants.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -class G4QGSPNeutronBuilder : public G4VNeutronBuilder -{ - public: - G4QGSPNeutronBuilder(); - virtual ~G4QGSPNeutronBuilder(); - - public: - 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; - G4ExcitedStringDecay * theStringDecay; - - G4NeutronInelasticCrossSection theXSec; - G4double theMin; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4QGSPPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSPPiKBuilder.hh deleted file mode 100644 index 0edea947e8..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4QGSPPiKBuilder.hh +++ /dev/null @@ -1,78 +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 G4QGSPPiKBuilder_h -#define G4QGSPPiKBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VPiKBuilder.hh" - -#include "G4TheoFSGenerator.hh" -#include "G4ExcitationHandler.hh" -#include "G4PreCompoundModel.hh" -#include "G4GeneratorPrecompoundInterface.hh" -#include "G4QGSModel.hh" -#include "G4QGSParticipants.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -#include "G4PiNuclearCrossSection.hh" - -class G4QGSPPiKBuilder : public G4VPiKBuilder -{ - public: - G4QGSPPiKBuilder(); - 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); - - void SetMinEnergy(G4double aM) {theMin = aM;} - - private: - G4PiNuclearCrossSection thePiData; - G4TheoFSGenerator * theModel; - G4ExcitationHandler theHandler; - G4PreCompoundModel * thePreEquilib; - G4GeneratorPrecompoundInterface * theCascade; - G4QGSModel< G4QGSParticipants > theStringModel; - G4QGSMFragmentation theFragmentation; - G4ExcitedStringDecay * theStringDecay; - G4double theMin; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4QGSPProtonBuilder.hh b/examples/advanced/composite_calorimeter/include/G4QGSPProtonBuilder.hh deleted file mode 100644 index 3e178cef93..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4QGSPProtonBuilder.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. * -// ******************************************************************** -// -#ifndef G4QGSPProtonBuilder_h -#define G4QGSPProtonBuilder_h - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4VProtonBuilder.hh" - -#include "G4NeutronInelasticCrossSection.hh" -#include "G4TheoFSGenerator.hh" -#include "G4ExcitationHandler.hh" -#include "G4PreCompoundModel.hh" -#include "G4GeneratorPrecompoundInterface.hh" -#include "G4QGSModel.hh" -#include "G4QGSParticipants.hh" -#include "G4QGSMFragmentation.hh" -#include "G4ExcitedStringDecay.hh" - -#include "G4ProtonInelasticCrossSection.hh" - -class G4QGSPProtonBuilder : public G4VProtonBuilder -{ - public: - G4QGSPProtonBuilder(); - virtual ~G4QGSPProtonBuilder(); - - public: - 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; - G4ExcitedStringDecay * theStringDecay; - G4double theMin; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/G4VPiKBuilder.hh b/examples/advanced/composite_calorimeter/include/G4VPiKBuilder.hh deleted file mode 100644 index da20d1bf5a..0000000000 --- a/examples/advanced/composite_calorimeter/include/G4VPiKBuilder.hh +++ /dev/null @@ -1,49 +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 G4VPiKBuilder_h -#define G4VPiKBuilder_h - -#include "G4HadronElasticProcess.hh" -#include "G4PionPlusInelasticProcess.hh" -#include "G4PionMinusInelasticProcess.hh" -#include "G4KaonPlusInelasticProcess.hh" -#include "G4KaonMinusInelasticProcess.hh" -#include "G4KaonZeroLInelasticProcess.hh" -#include "G4KaonZeroSInelasticProcess.hh" - -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; -}; -// 2002 by J.P. Wellisch - -#endif diff --git a/examples/advanced/composite_calorimeter/include/IonModelPhysics.hh b/examples/advanced/composite_calorimeter/include/IonModelPhysics.hh deleted file mode 100644 index c4c24194e3..0000000000 --- a/examples/advanced/composite_calorimeter/include/IonModelPhysics.hh +++ /dev/null @@ -1,106 +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 IonModelPhysics_h -#define IonModelPhysics_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 "G4hIonisationSTD.hh" -#include "G4ionIonisation.hh" -#include "G4MultipleScatteringSTD.hh" - -class IonModelPhysics : public G4VPhysicsConstructor -{ - public: - IonModelPhysics(const G4String& name="ion"); - virtual ~IonModelPhysics(); - - 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; - G4MultipleScatteringSTD fIonMultipleScattering; - G4ionIonisation fIonIonisation; - - // Deuteron physics - G4HadronElasticProcess theDElasticProcess; - G4MultipleScatteringSTD fDeuteronMultipleScattering; - G4hIonisationSTD fDeuteronIonisation; - G4DeuteronInelasticProcess fDeuteronProcess; - G4LEDeuteronInelastic* fDeuteronModel; - - // Triton physics - G4HadronElasticProcess theTElasticProcess; - G4MultipleScatteringSTD fTritonMultipleScattering; - G4hIonisationSTD fTritonIonisation; - G4TritonInelasticProcess fTritonProcess; - G4LETritonInelastic* fTritonModel; - - // Alpha physics - G4HadronElasticProcess theAElasticProcess; - G4MultipleScatteringSTD fAlphaMultipleScattering; - G4hIonisationSTD fAlphaIonisation; - G4AlphaInelasticProcess fAlphaProcess; - G4LEAlphaInelastic* fAlphaModel; - - // He3 physics - G4HadronElasticProcess theHe3ElasticProcess; - G4MultipleScatteringSTD fHe3MultipleScattering; - G4hIonisationSTD fHe3Ionisation; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/include/MuonModelPhysics.hh b/examples/advanced/composite_calorimeter/include/MuonModelPhysics.hh deleted file mode 100644 index 40369c0e99..0000000000 --- a/examples/advanced/composite_calorimeter/include/MuonModelPhysics.hh +++ /dev/null @@ -1,80 +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 MuonModelPhysics_h -#define MuonModelPhysics_h 1 - -#include "globals.hh" -#include "G4ios.hh" - -#include "G4VPhysicsConstructor.hh" -#include "G4MultipleScatteringSTD.hh" -#include "G4MuBremsstrahlungSTD.hh" -#include "G4MuPairProductionSTD.hh" -#include "G4MuIonisationSTD.hh" -#include "G4hIonisationSTD.hh" - -#include "G4MuonMinusCaptureAtRest.hh" - -class MuonModelPhysics : public G4VPhysicsConstructor -{ - public: - MuonModelPhysics(const G4String& name="muon"); - virtual ~MuonModelPhysics(); - - 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 - G4MultipleScatteringSTD fMuPlusMultipleScattering; - G4MuBremsstrahlungSTD fMuPlusBremsstrahlung ; - G4MuPairProductionSTD fMuPlusPairProduction; - G4MuIonisationSTD fMuPlusIonisation; - - G4MultipleScatteringSTD fMuMinusMultipleScattering; - G4MuBremsstrahlungSTD fMuMinusBremsstrahlung ; - G4MuPairProductionSTD fMuMinusPairProduction; - G4MuIonisationSTD fMuMinusIonisation; - - G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; - - // Tau physics - G4MultipleScatteringSTD fTauPlusMultipleScattering; - G4hIonisationSTD fTauPlusIonisation; - - G4MultipleScatteringSTD fTauMinusMultipleScattering; - G4hIonisationSTD fTauMinusIonisation; - -}; - -// 2002 by J.P. Wellisch - -#endif - diff --git a/examples/advanced/composite_calorimeter/src/CCalAnalysis.cc b/examples/advanced/composite_calorimeter/src/CCalAnalysis.cc index 3d9ab79c34..af72571739 100644 --- a/examples/advanced/composite_calorimeter/src/CCalAnalysis.cc +++ b/examples/advanced/composite_calorimeter/src/CCalAnalysis.cc @@ -40,14 +40,11 @@ CCalAnalysis* CCalAnalysis::instance = 0; CCalAnalysis::CCalAnalysis() :analysisFactory(0), tree(0), tuple(0), energy(0) { - for (int i=0; i<28; i++) { - hcalE[i] = 0; - } - for (int i=0; i<70; i++) { - lateralProfile[i] = 0; - } + for (int i=0; i<28; i++) {hcalE[i] = 0;} + for (int i=0; i<70; i++) {lateralProfile[i] = 0;} for (int i=0; i<49; i++) {ecalE[i] = 0;} for (int i=0; icreate(opFilestr, "hbook", readOnly,createNew); @@ -109,7 +107,7 @@ CCalAnalysis::CCalAnalysis() :analysisFactory(0), tree(0), tuple(0), energy(0) { } // Total energy deposit energy = histoFactory->createHistogram1D("4000", "Total energy deposited in GeV", - 100, 0., 100.0); + 100, 0., 100.0); // Time slices for (int i=0; icreateHistogram1D(id, ntupletag, 100, 0., 10.0); } + // Time profile + timeProfile[0] = histoFactory->createHistogram1D("901", "Time Profile in Sensitive Detector", 200, 0., 200.); + timeProfile[1] = histoFactory->createHistogram1D("902", "Time Profile in Sensitive+Passive", 200, 0., 200.); + delete histoFactory; } @@ -178,7 +180,8 @@ void CCalAnalysis::InsertEnergyHcal(float* v) { } } #ifdef debug - G4cout << "\t total filled Energy Hcal histo " << totalFilledEnergyHcal << G4endl; + G4cout << "CCalAnalysis::InsertEnergyHcal: Total filled Energy Hcal histo " + << totalFilledEnergyHcal << G4endl; #endif } @@ -199,7 +202,8 @@ void CCalAnalysis::InsertEnergyEcal(float* v) { } } #ifdef debug - G4cout << "\t total filled Energy Ecal histo " << totalFilledEnergyEcal << G4endl; + G4cout << "CCalAnalysis::InsertEnergyEcal: Total filled Energy Ecal histo " + << totalFilledEnergyEcal << G4endl; #endif } @@ -220,7 +224,8 @@ void CCalAnalysis::InsertLateralProfile(float* v) { } } #ifdef debug - G4cout << "\t total filled Profile Hcal histo " << totalFilledProfileHcal << G4endl; + G4cout << "CCalAnalysis::InsertLateralProfile: Total filled Profile Hcal" + << " histo " << totalFilledProfileHcal << G4endl; #endif } @@ -231,13 +236,14 @@ void CCalAnalysis::InsertEnergy(float v) { double x = v; energy->fill(x); #ifdef debug - G4cout << "Fill Total energy Hcal histo with " << x << G4endl; + G4cout << "CCalAnalysis::InsertEnergy: Fill Total energy Hcal histo with " + << x << G4endl; #endif } } -// This function fill the 1d histograms of time profiles +// This function fill the 1d histograms of time profiles at stepping action void CCalAnalysis::InsertTime(float* v) { #ifdef debug double totalFilledTimeProfile = 0.0; @@ -247,17 +253,41 @@ void CCalAnalysis::InsertTime(float* v) { double x = v[j]; timeHist[j]->fill(x); #ifdef debug - G4cout << "Fill Time profile histo " << j << " with " << x << G4endl; + G4cout << "Fill Time slice histo " << j << " with " << x << G4endl; totalFilledTimeProfile += x; +#endif + } + if (timeProfile[1]) { + double x = v[j]; + double t = j + 0.5; + timeProfile[1]->fill(t,x); +#ifdef debug + G4cout << "Fill Time profile histo 1 with " << t << " " << x << G4endl; #endif } } #ifdef debug - G4cout << "\t total filled Time profile histo " << totalFilledTimeProfile << G4endl; + G4cout << "CCalAnalysis::InsertTime: Total filled Time profile histo " + << totalFilledTimeProfile << G4endl; #endif } +// This function fill the 1d histograms of time profiles in SD +void CCalAnalysis::InsertTimeProfile(int hit, double time, double edep) { + + if (timeProfile[0]) { + timeProfile[0]->fill(time,edep); +#ifdef debug + G4cout << "CCalAnalysis:: Fill Time Profile with Hit " << hit + << " Edeposit " << edep << " Gev at " << time << " ns" << G4endl; +#else + hit=0; // Just to avoid compiler warning! +#endif + } +} + + void CCalAnalysis::setNtuple(float* hcalE, float* ecalE, float elab, float x, float y, float z, float edep, float edec, float edhc) { @@ -281,6 +311,9 @@ void CCalAnalysis::setNtuple(float* hcalE, float* ecalE, float elab, ntuple->fill(tuple->findColumn("EDEC"),edec); ntuple->fill(tuple->findColumn("EDHC"),edhc); ntuple->addRow(); +#ifdef debug + G4cout << "CCalAnalysis:: Fill Ntuple " << G4endl; +#endif } } diff --git a/examples/advanced/composite_calorimeter/src/CCalDetector.cc b/examples/advanced/composite_calorimeter/src/CCalDetector.cc index 14b351abce..b4b3310fa1 100644 --- a/examples/advanced/composite_calorimeter/src/CCalDetector.cc +++ b/examples/advanced/composite_calorimeter/src/CCalDetector.cc @@ -38,10 +38,9 @@ G4String CCalDetector::pathName = getenv("CCAL_GEOMPATH"); -CCalDetector::CCalDetector(const G4String &name): - detectorName(name) { +CCalDetector::CCalDetector(const G4String &name): detectorName(name) { #ifdef ddebug - cout << "CCAL_GEOMPATH=" << pathName << endl; + G4cout << "CCAL_GEOMPATH=" << pathName << G4endl; #endif fileName = CCalGeometryConfiguration::getInstance()->getFileName(name); @@ -51,7 +50,7 @@ CCalDetector::CCalDetector(const G4String &name): CCalDetector::~CCalDetector() { CCalDetectorTable::iterator ite; - for( ite = theDetectorsInside.begin(); ite != theDetectorsInside.end(); ite++ ) { + for (ite=theDetectorsInside.begin(); ite !=theDetectorsInside.end(); ite++) { delete *ite; } theDetectorsInside.clear(); @@ -59,7 +58,7 @@ CCalDetector::~CCalDetector() { void CCalDetector::construct() { #ifdef debug - cout << "===> Entering CCalDetector::construct() for " << CCalDetectorName << endl; + G4cout << "===> Entering CCalDetector::construct() for " << Name() << G4endl; #endif int isgood = 0; @@ -77,8 +76,7 @@ void CCalDetector::construct() { } } #ifdef debug - cout << "===> Exiting CCalDetector::construct() for " << detectorName - << endl; + G4cout << "===> Exiting CCalDetector::construct() for " << Name() << G4endl; #endif } diff --git a/examples/advanced/composite_calorimeter/src/CCalDetectorConstruction.cc b/examples/advanced/composite_calorimeter/src/CCalDetectorConstruction.cc index 843e844cfb..95cebd3bb7 100644 --- a/examples/advanced/composite_calorimeter/src/CCalDetectorConstruction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalDetectorConstruction.cc @@ -40,6 +40,7 @@ #include "CCalG4Hall.hh" #include "CCalutils.hh" +#include "CCalSensitiveConfiguration.hh" #include "CCalEcalOrganization.hh" #include "CCalHcalOrganization.hh" #include "G4SDManager.hh" @@ -47,9 +48,20 @@ #include "G4FieldManager.hh" #include "G4ChordFinder.hh" #include "G4Mag_UsualEqRhs.hh" -#include "G4SimpleRunge.hh" +#include "G4PropagatorInField.hh" #include "G4TransportationManager.hh" +#include "G4ClassicalRK4.hh" +#include "G4SimpleRunge.hh" +#include "G4ExplicitEuler.hh" +#include "G4ImplicitEuler.hh" +#include "G4SimpleHeum.hh" +#include "G4HelixExplicitEuler.hh" +#include "G4HelixImplicitEuler.hh" +#include "G4HelixSimpleRunge.hh" +#include "G4CashKarpRKF45.hh" +#include "G4RKG3_Stepper.hh" + CCalDetectorConstruction::CCalDetectorConstruction() {} CCalDetectorConstruction::~CCalDetectorConstruction() {} @@ -96,10 +108,29 @@ G4VPhysicalVolume* CCalDetectorConstruction::Construct() { = G4TransportationManager::GetTransportationManager()->GetFieldManager(); fieldMgr->SetDetectorField(ccalField); G4Mag_UsualEqRhs *fEquation = new G4Mag_UsualEqRhs(ccalField); - G4MagIntegratorStepper *pStepper = new G4SimpleRunge (fEquation); + + G4MagIntegratorStepper *pStepper = new G4ClassicalRK4 (fEquation); + //pStepper = new G4ExplicitEuler( fEquation ); + //pStepper = new G4ImplicitEuler( fEquation ); + //pStepper = new G4SimpleRunge( fEquation ); + //pStepper = new G4SimpleHeum( fEquation ); + //pStepper = new G4HelixExplicitEuler( fEquation ); + //pStepper = new G4HelixImplicitEuler( fEquation ); + //pStepper = new G4HelixSimpleRunge( fEquation ); + //pStepper = new G4CashKarpRKF45( fEquation ); + //pStepper = new G4RKG3_Stepper( fEquation ); + G4ChordFinder *pChordFinder = new G4ChordFinder(ccalField, - 1.0e-2*mm, pStepper); + 1.e-1*mm, pStepper); + pChordFinder->SetDeltaChord(1.0e-3*mm); fieldMgr->SetChordFinder(pChordFinder); + fieldMgr->SetDeltaOneStep(1.0e-3*mm); + fieldMgr->SetDeltaIntersection(1.0e-4*mm); + G4PropagatorInField* fieldPropagator + = G4TransportationManager::GetTransportationManager() + ->GetPropagatorInField(); + fieldPropagator->SetMinimumEpsilonStep(1.e-5*mm); + fieldPropagator->SetMaximumEpsilonStep(1.e-2*mm); fieldIsInitialized = true; } @@ -121,11 +152,16 @@ G4VPhysicalVolume* CCalDetectorConstruction::Construct() { G4VPhysicalVolume* volume = testBeamHCal96->PhysicalVolume(0); //Addsenistive detector types - bool result; - result = CCalSensAssign::getInstance()->addCaloSD("HadronCalorimeter", - new CCalHcalOrganization); - result = CCalSensAssign::getInstance()->addCaloSD("CrystalMatrix", - new CCalEcalOrganization); + G4bool result; + G4int sensitive; + sensitive = CCalSensitiveConfiguration::getInstance()-> + getSensitiveFlag("HadronCalorimeter"); + if (sensitive>0) result = CCalSensAssign::getInstance()-> + addCaloSD("HadronCalorimeter", new CCalHcalOrganization); + sensitive = CCalSensitiveConfiguration::getInstance()-> + getSensitiveFlag("CrystalMatrixModule"); + if (sensitive>0) result = CCalSensAssign::getInstance()-> + addCaloSD("CrystalMatrix", new CCalEcalOrganization); //Assign the sensitive detectors result = CCalSensAssign::getInstance()->assign(); diff --git a/examples/advanced/composite_calorimeter/src/CCalEcalOrganization.cc b/examples/advanced/composite_calorimeter/src/CCalEcalOrganization.cc index e436e741bc..0e479e2c7c 100644 --- a/examples/advanced/composite_calorimeter/src/CCalEcalOrganization.cc +++ b/examples/advanced/composite_calorimeter/src/CCalEcalOrganization.cc @@ -28,6 +28,7 @@ #include "G4VPhysicalVolume.hh" #include "G4Step.hh" #include "G4StepPoint.hh" +#include "G4TouchableHistory.hh" CCalEcalOrganization::~CCalEcalOrganization(){ G4cout << " Deleting CCalEcalOrganization" << G4endl; @@ -36,19 +37,20 @@ CCalEcalOrganization::~CCalEcalOrganization(){ unsigned int CCalEcalOrganization::GetUnitID(const G4Step* aStep) const { - G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); - int idx=0, idl=0, idn=0; - if (pv > 0) { - idx = pv->GetCopyNo() - 1; - pv = pv->GetMother(); - if (pv > 0) { - idl = pv->GetCopyNo() - 1; - pv = pv->GetMother(); - if (pv > 0) - idn = pv->GetCopyNo(); + G4TouchableHistory* theTouchable = + (G4TouchableHistory*)( aStep->GetPreStepPoint()->GetTouchable() ); + + int idl=0, idn=0; + int level = theTouchable->GetHistoryDepth(); + int idx = theTouchable->GetReplicaNumber( 0 ) - 1; + if ( level > 0 ) { + idl = theTouchable->GetReplicaNumber( 1 ) - 1; + if ( level > 1 ) { + idn = theTouchable->GetReplicaNumber( 2 ); } } + unsigned int idunit = idn*4096 + idl*64 + idx; - + return idunit; } diff --git a/examples/advanced/composite_calorimeter/src/CCalEndOfEventAction.cc b/examples/advanced/composite_calorimeter/src/CCalEndOfEventAction.cc index a17170d72f..6bbaa94e73 100644 --- a/examples/advanced/composite_calorimeter/src/CCalEndOfEventAction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalEndOfEventAction.cc @@ -37,11 +37,13 @@ #include "G4Event.hh" #include "G4SDManager.hh" #include "G4HCofThisEvent.hh" -#include -#include #include "G4RunManager.hh" #include "G4UserSteppingAction.hh" +#include +#include +#include + #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" #include "G4VVisManager.hh" @@ -77,7 +79,7 @@ CCalEndOfEventAction::~CCalEndOfEventAction() { delete theOrg; if (SDnames) delete SDnames; - G4cout << "Deleting CCalEndOfEventAction" << G4endl; + G4cout << "CCalEndOfEventAction deleted" << G4endl; } @@ -89,8 +91,11 @@ void CCalEndOfEventAction::initialize() { G4cout << "CCalEndOfEventAction look for " << numberOfSD << " calorimeter-like SD" << G4endl; #endif - if (numberOfSD > 0) - SDnames = new nameType[numberOfSD]; + if (numberOfSD > 0) { + G4int n = numberOfSD; + if (n < 2) n = 2; + SDnames = new nameType[n]; + } for (int i=0; igetCaloSDName(i)); #ifdef debug @@ -133,7 +138,7 @@ void CCalEndOfEventAction::EndOfEventAction(const G4Event* evt){ // //Now make summary - float hcalE[28], ecalE[49], fullE=0.; + float hcalE[28], ecalE[49], fullE=0., edec=0, edhc=0; int i = 0; for (i = 0; i < 28; i++) {hcalE[i]=0.;} for (i = 0; i < 49; i++) {ecalE[i]=0.;} @@ -148,53 +153,61 @@ void CCalEndOfEventAction::EndOfEventAction(const G4Event* evt){ edep[i] = 0; int caloHCid = G4SDManager::GetSDMpointer()->GetCollectionID(SDnames[i]); - CCalG4HitCollection* theHC = - (CCalG4HitCollection*) allHC->GetHC(caloHCid); - if (theHC != 0) { + if (caloHCid >= 0) { + CCalG4HitCollection* theHC = + (CCalG4HitCollection*) allHC->GetHC(caloHCid); + + if (theHC != 0) { - G4int nentries = theHC->entries(); + G4int nentries = theHC->entries(); #ifdef debug - G4cout << " There are " << nentries << " hits in " << SDnames[i] << " :" - << G4endl; + G4cout << " There are " << nentries << " hits in " << SDnames[i] + << " :" << G4endl; #endif - if (nentries > 0) { + if (nentries > 0) { - int j; - for (j=0; jgetEnergyDeposit(); - int unitID = aHit->getUnitID(); - int id=-1; - if (unitID > 0 && unitID < 29) { - id = unitID - 1; // HCal - hcalE[id] += En/GeV; - } else { - int i0 = unitID/4096; - int i1 = (unitID/64)%64; - int i2 = unitID%64; - if (i0 == 1 && i1 < 8 && i2 < 8) { - id = i1*7 + i2; // ECal - ecalE[id] += En/GeV; + CCalG4Hit* aHit = (*theHC)[j]; + float En = aHit->getEnergyDeposit(); + int unitID = aHit->getUnitID(); + int id=-1; + if (unitID > 0 && unitID < 29) { + id = unitID - 1; // HCal + hcalE[id] += En/GeV; + } else { + int i0 = unitID/4096; + int i1 = (unitID/64)%64; + int i2 = unitID%64; + if (i0 == 1 && i1 < 8 && i2 < 8) { + id = i1*7 + i2; // ECal + ecalE[id] += En/GeV; + } } +#ifdef ddebug + G4cout << " with Energy = " << En/MeV << " MeV in Unit " << unitID + << " " << id << G4endl; +#endif + fullE += En/GeV; + edep[i] += En/GeV; + nhit++; } #ifdef ddebug - G4cout << "Seeing Energy = " << En/MeV << " MeV in Unit " << unitID - << " " << id << G4endl; + G4cout << " ===> Total Energy Deposit in this Calorimeter = " + << edep[i]*1000.0 << " MeV " << G4endl; #endif - fullE += En/GeV; - edep[i] += En/GeV; - nhit++; } -#ifdef ddebug - G4cout << " ===> Total Energy Deposit in this Calorimeter = " - << edep[i]*1000.0 << " MeV " << G4endl; -#endif } } + if (SDnames[i] == "HadronCalorimeter") { + edhc = edep[i]; + } else if (SDnames[i] == "CrystalMatrix") { + edec = edep[i]; + } } G4ThreeVector pos = primaryGenerator->GetParticlePosition(); @@ -202,8 +215,6 @@ void CCalEndOfEventAction::EndOfEventAction(const G4Event* evt){ float x = pos.x()/mm; float y = pos.y()/mm; float z = pos.z()/mm; - float edec = edep[1]; - float edhc = edep[0]; delete[] edep; #ifdef G4ANALYSIS_USE @@ -213,6 +224,23 @@ void CCalEndOfEventAction::EndOfEventAction(const G4Event* evt){ analysis->InsertEnergyEcal(ecalE); analysis->setNtuple(hcalE, ecalE, ener, x, y, z, fullE, edec, edhc); analysis->EndOfEvent(nhit); + for (i = 0; i < numberOfSD; i++){ + int caloHCid = G4SDManager::GetSDMpointer()->GetCollectionID(SDnames[i]); + if (caloHCid >= 0) { + CCalG4HitCollection* theHC = + (CCalG4HitCollection*) allHC->GetHC(caloHCid); + if (theHC != 0) { + G4int nentries = theHC->entries(); + if (nentries > 0) { + for (G4int k=0; kInsertTimeProfile(k,aHit->getTimeSlice(), + aHit->getEnergyDeposit()/GeV); + } + } + } + } + } #endif //A.R. Add to visualize tracks diff --git a/examples/advanced/composite_calorimeter/src/CCalG4Able.cc b/examples/advanced/composite_calorimeter/src/CCalG4Able.cc index b66b76d2e1..9dfc741c8d 100644 --- a/examples/advanced/composite_calorimeter/src/CCalG4Able.cc +++ b/examples/advanced/composite_calorimeter/src/CCalG4Able.cc @@ -54,6 +54,11 @@ CCalG4Able::CCalG4Able(G4String name): CCalSensitiveConfiguration::getInstance()->getSensitiveFlag(name); } +CCalG4Able::~CCalG4Able() { + if (detPhysicalVolume) + delete[] detPhysicalVolume; +} + G4VPhysicalVolume* CCalG4Able::PhysicalVolume(G4VPhysicalVolume* pv) { //If detPhysicalVolume is not (nil) the volume has already been built //so return it. In other case, construct it and its daughters, then diff --git a/examples/advanced/composite_calorimeter/src/CCalHcalOrganization.cc b/examples/advanced/composite_calorimeter/src/CCalHcalOrganization.cc index 02801aeeac..3c8c34a718 100644 --- a/examples/advanced/composite_calorimeter/src/CCalHcalOrganization.cc +++ b/examples/advanced/composite_calorimeter/src/CCalHcalOrganization.cc @@ -29,20 +29,19 @@ #include "G4VPhysicalVolume.hh" #include "G4Step.hh" #include "G4StepPoint.hh" +#include "G4TouchableHistory.hh" CCalHcalOrganization::~CCalHcalOrganization() { - G4cout << " Deleting CCalHcalOrganization" << G4endl; + G4cout << "CCalHcalOrganization deleted" << G4endl; } unsigned int CCalHcalOrganization::GetUnitID(const G4Step* aStep) const { - G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); - if (pv > 0) - pv = pv->GetMother(); - int idunit=0; - if (pv > 0) - idunit = pv->GetCopyNo(); - - return idunit; + G4TouchableHistory* theTouchable = + (G4TouchableHistory*)( aStep->GetPreStepPoint()->GetTouchable() ); + if ((theTouchable->GetHistoryDepth()) > 0) + return theTouchable->GetReplicaNumber( 1 ); + else + return 0; } diff --git a/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc b/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc index 6fa67b73ae..fe1f1f3129 100644 --- a/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc +++ b/examples/advanced/composite_calorimeter/src/CCalMagneticField.cc @@ -93,13 +93,11 @@ void CCalMagneticField::MagneticField(const double x[3], double B[3]) const { B[i] = 0*kilogauss; } - G4double m=0, c=1; + G4double m=0, c=0; G4double xnew = x[0]/mm + xoff; if (npts > 0) { - m = slope[npts-1]; - c = intercept[i-1]; - for (i=npts-2; i>=0; i--) { - if (xnew < pos[i]*mm) { + for (i=0; i pos[i]*mm) { m = slope[i]; c = intercept[i]; } @@ -107,10 +105,13 @@ void CCalMagneticField::MagneticField(const double x[3], double B[3]) const { } G4double scor = c + m*xnew; if (scor < 0.) scor = 0.; - // G4cout << "X: " << xnew << " Slope " << m << " " << c << " " << scor << G4endl; + if (scor > 1.) scor = 1.0; + B[2] = scor*fval*kilogauss; #ifdef ddebug - G4cout << "Field at x: " << x[0]/mm << "mm = " << B[2]/tesla << "T" << G4endl; + G4cout << "Field at x: " << x[0]/mm << "mm (" << xnew << ") = " << B[2]/tesla + << "T (m = " << m << ", c = " << c << ", scale = " << scor << ")" + << G4endl; #endif } diff --git a/examples/advanced/composite_calorimeter/src/CCalSensitiveConfiguration.cc b/examples/advanced/composite_calorimeter/src/CCalSensitiveConfiguration.cc index 7ebcc1858c..06ccff6b9b 100644 --- a/examples/advanced/composite_calorimeter/src/CCalSensitiveConfiguration.cc +++ b/examples/advanced/composite_calorimeter/src/CCalSensitiveConfiguration.cc @@ -51,9 +51,9 @@ int CCalSensitiveConfiguration::getSensitiveFlag(const G4String& n) /*const*/ { if (it != theConfiguration.end()) flag = (*it).second.SensitiveFlag; else { - G4cerr << "ERROR: In CCalSensitiveConfiguration::getConstructFlag(const " - << "G4String& n)" << G4endl - << " " << n << " not found in configuration file" << G4endl; + G4cerr << "ERROR: In CCalSensitiveConfiguration::getSensitiveFlag(const " + << "G4String& n)" << G4endl + << " " << n << " not found in configuration file" << G4endl; } return flag; @@ -66,16 +66,15 @@ G4String CCalSensitiveConfiguration::getFileName(const G4String& n) /*const*/ { if (it != theConfiguration.end()) fn = (*it).second.FileName; else { - G4cerr << "ERROR: In CCalSensitiveConfiguration::getConstructFlag(const " - << "G4String& n)" << G4endl - << " " << n << " not found in configuration file" << G4endl; + G4cerr << "ERROR: In CCalSensitiveConfiguration::getFileName(const " + << "G4String& n)" << G4endl + << " " << n << " not found in configuration file" << G4endl; } return fn; } -CCalSensitiveConfiguration::CCalSensitiveConfiguration(): - theConfiguration() { +CCalSensitiveConfiguration::CCalSensitiveConfiguration(): theConfiguration() { /////////////////////////////////////////////////////////////// // Open the file @@ -102,8 +101,8 @@ CCalSensitiveConfiguration::CCalSensitiveConfiguration(): is >> gcinfo.SensitiveFlag >> jump; #ifdef debug G4cout << "CCalSensitiveConfiguration constructor: Read \"" << name - << "\" \"" << gcinfo.FileName << "\"" << tab << gcinfo.SensitiveFlag - << G4endl; + << "\" \"" << gcinfo.FileName << "\"" << tab << gcinfo.SensitiveFlag + << G4endl; #endif theConfiguration[name] = gcinfo; } diff --git a/examples/advanced/composite_calorimeter/src/CCalStackingAction.cc b/examples/advanced/composite_calorimeter/src/CCalStackingAction.cc index 5fd0a20c05..0a4e83813c 100644 --- a/examples/advanced/composite_calorimeter/src/CCalStackingAction.cc +++ b/examples/advanced/composite_calorimeter/src/CCalStackingAction.cc @@ -36,9 +36,7 @@ //#define debug //#define ddebug -CCalStackingAction::CCalStackingAction(): -isInitialized(false) -{} +CCalStackingAction::CCalStackingAction(): isInitialized(false) {} CCalStackingAction::~CCalStackingAction(){} @@ -59,15 +57,15 @@ void CCalStackingAction::initialize(){ numberOfSD = CCalSDList::getInstance()->getNumberOfCaloSD(); #ifdef debug - cout << "CCalStackingAction look for " << numberOfSD - << " calorimeter-like SD" << endl; + G4cout << "CCalStackingAction look for " << numberOfSD + << " calorimeter-like SD" << G4endl; #endif int i = 0; for (i=0; igetCaloSDName(i)); SDName[i] = theName; #ifdef debug - cout << "Found SD name " << theName << endl; + G4cout << "Found SD name " << theName << G4endl; #endif theCaloSD[i] = 0; } @@ -80,8 +78,8 @@ void CCalStackingAction::initialize(){ G4VSensitiveDetector* aSD = sd->FindSensitiveDetector(SDName[i]); if (aSD==0) { #ifdef debug - cout << "CCalStackingAction::initialize: No SD with name " << SDName[i] - << " in this Setup " << endl; + G4cout << "CCalStackingAction::initialize: No SD with name " << SDName[i] + << " in this Setup " << G4endl; #endif } else { theCaloSD[i] = dynamic_cast(aSD); @@ -89,8 +87,8 @@ void CCalStackingAction::initialize(){ } } #ifdef debug - cout << "CCalStackingAction::initialize: Could not get SD Manager !" - << endl; + G4cout << "CCalStackingAction::initialize: Could not get SD Manager !" + << G4endl; #endif } @@ -102,15 +100,15 @@ G4ClassificationOfNewTrack CCalStackingAction::ClassifyNewTrack(const G4Track* a int parentID = aTrack->GetParentID(); #ifdef ddebug G4TrackStatus status = aTrack->GetTrackStatus(); - cout << "Classifying track " << aTrack->GetTrackID() - << " with status " << aTrack->GetTrackStatus() << endl; + G4cout << "Classifying track " << aTrack->GetTrackID() + << " with status " << aTrack->GetTrackStatus() << G4endl; #endif if (parentID < 0) { #ifdef debug - cout << "Killing track " << aTrack->GetTrackID() - << " from previous event. Should not happen" << endl; - cout << "returning classification= " << classification << endl; + G4cout << "Killing track " << aTrack->GetTrackID() + << " from previous event. Should not happen" << G4endl; + G4cout << "returning classification= " << classification << G4endl; #endif return classification= fKill; } @@ -118,8 +116,9 @@ G4ClassificationOfNewTrack CCalStackingAction::ClassifyNewTrack(const G4Track* a if (aTrack->GetDefinition()->GetParticleName() == "gamma" && aTrack->GetKineticEnergy() < 1.*eV) { #ifdef debug - cout << "Kills particle " << aTrack->GetDefinition()->GetParticleName() - << " of energy " << aTrack->GetKineticEnergy()/MeV << " MeV" << endl; + G4cout << "Kills particle " << aTrack->GetDefinition()->GetParticleName() + << " of energy " << aTrack->GetKineticEnergy()/MeV << " MeV" + << G4endl; #endif return classification= fKill; } @@ -162,8 +161,8 @@ G4ClassificationOfNewTrack CCalStackingAction::ClassifyNewTrack(const G4Track* a classification = G4UserStackingAction::ClassifyNewTrack(aTrack); #ifdef ddebug - cout << " returning classification= " << classification - << " for track "<< aTrack->GetTrackID() << endl; + G4cout << " returning classification= " << classification + << " for track "<< aTrack->GetTrackID() << G4endl; #endif return classification; @@ -173,7 +172,7 @@ G4ClassificationOfNewTrack CCalStackingAction::ClassifyNewTrack(const G4Track* a void CCalStackingAction::NewStage(){ #ifdef ddebug - cout << "In NewStage with stage = " << stage << endl; + G4cout << "In NewStage with stage = " << stage << G4endl; #endif if (stage maxbin(); +#else + timeHistoMaxBin=1; #endif int i; - for (i=0; i<40; i++){timeDeposit[i] = 0.;} - for (i=0; i<70; i++){LateralProfile[i] = 0.;} + for (i=0; i<200; i++) {timeDeposit[i] = 0.;} + for (i=0; i<70; i++) {LateralProfile[i] = 0.;} } CCalSteppingAction::~CCalSteppingAction(){ - G4cout <<"Deleting CCalSteppingAction"<GetPreStepPoint(); int TSliceID; - TSliceID = static_cast( (PostStepPoint->GetGlobalTime() ) / nanosecond ); + TSliceID = static_cast( (PostStepPoint->GetGlobalTime() ) / nanosecond); TSliceID = TSliceIDGetTotalEnergyDeposit() / GeV; @@ -87,6 +89,6 @@ void CCalSteppingAction::endOfEvent(){ int i=0; for (i=0; i<70; i++){LateralProfile[i] = 0.;} - for (i=0; i<40; i++){timeDeposit[i] = 0.;} + for (i=0; i<200; i++){timeDeposit[i] = 0.;} } diff --git a/examples/advanced/composite_calorimeter/src/CCalVOrganization.cc b/examples/advanced/composite_calorimeter/src/CCalVOrganization.cc index 23fcf47b58..fb436e2d20 100644 --- a/examples/advanced/composite_calorimeter/src/CCalVOrganization.cc +++ b/examples/advanced/composite_calorimeter/src/CCalVOrganization.cc @@ -25,18 +25,15 @@ // Description: Base class for definition of sensitive unit numbering schema /////////////////////////////////////////////////////////////////////////////// #include "CCalVOrganization.hh" +#include "G4TouchableHistory.hh" #include "globals.hh" int CCalVOrganization::Levels(const G4Step* aStep) const { //Find number of levels - G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); - int level = 0; - while (pv > 0) { - level++; - pv = pv->GetMother(); - } - return level; + G4TouchableHistory* theTouchable = + (G4TouchableHistory*)( aStep->GetPreStepPoint()->GetTouchable() ); + return ((theTouchable->GetHistoryDepth()) + 1); } @@ -44,12 +41,11 @@ void CCalVOrganization::DetectorLevel(const G4Step* aStep, int& level, int* copyno, G4String* name) const { //Get name and copy numbers - if (level > 0) { - G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); - for (int ii = level-1; ii >= 0; ii--) { - name[ii] = pv->GetName(); - copyno[ii] = pv->GetCopyNo(); - pv = pv->GetMother(); - } + G4TouchableHistory* theTouchable = + (G4TouchableHistory*)( aStep->GetPreStepPoint()->GetTouchable() ); + for ( int ii = 0; ii < level; ii++ ) { + name[ level - ii - 1 ] = theTouchable->GetVolume(ii)->GetName(); + copyno[ level - ii - 1 ] = theTouchable->GetReplicaNumber(ii); } + } diff --git a/examples/advanced/composite_calorimeter/src/CCalVisManager.cc b/examples/advanced/composite_calorimeter/src/CCalVisManager.cc index 90c05209a0..c680a28716 100644 --- a/examples/advanced/composite_calorimeter/src/CCalVisManager.cc +++ b/examples/advanced/composite_calorimeter/src/CCalVisManager.cc @@ -32,100 +32,98 @@ // Supported drivers... +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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" #endif +#ifdef G4VIS_USE_OPENGLWIN32 +#include "G4OpenGLImmediateWin32.hh" +#include "G4OpenGLStoredWin32.hh" +#endif + #ifdef G4VIS_USE_OPENGLXM #include "G4OpenGLImmediateXm.hh" #include "G4OpenGLStoredXm.hh" #endif #ifdef G4VIS_USE_OIX -//#include "G4OpenInventorX.hh" +#include "G4OpenInventorX.hh" #endif #ifdef G4VIS_USE_OIWIN32 -//#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_RAYX -#include "G4RayX.hh" +#include "G4OpenInventorWin32.hh" #endif #ifdef G4VIS_USE_VRML -//#include "G4VRML1.hh" +#include "G4VRML1.hh" #include "G4VRML2.hh" #endif -#ifdef G4VIS_USE_VRMLFILE -//#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - CCalVisManager::CCalVisManager (G4int verboseLevel) { SetVerboseLevel( verboseLevel ); } void CCalVisManager::RegisterGraphicsSystems () { + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... + #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); #endif +#ifdef G4VIS_USE_OPENGLWIN32 + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); +#endif + #ifdef G4VIS_USE_OPENGLXM RegisterGraphicsSystem (new G4OpenGLImmediateXm); RegisterGraphicsSystem (new G4OpenGLStoredXm); #endif #ifdef G4VIS_USE_OIX - // RegisterGraphicsSystem (new G4OpenInventorX); + RegisterGraphicsSystem (new G4OpenInventorX); #endif #ifdef G4VIS_USE_OIWIN32 - // RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_RAYX - RegisterGraphicsSystem (new G4RayX); + RegisterGraphicsSystem (new G4OpenInventorWin32); #endif #ifdef G4VIS_USE_VRML - // RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - // RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); + RegisterGraphicsSystem (new G4VRML1); + RegisterGraphicsSystem (new G4VRML2); #endif if (fVerbose > 0) { diff --git a/examples/advanced/composite_calorimeter/src/CCaloOrganization.cc b/examples/advanced/composite_calorimeter/src/CCaloOrganization.cc index ba9dff0cbc..a16797da08 100644 --- a/examples/advanced/composite_calorimeter/src/CCaloOrganization.cc +++ b/examples/advanced/composite_calorimeter/src/CCaloOrganization.cc @@ -42,7 +42,7 @@ unsigned int CCaloOrganization::packindex(int det, int z, int eta, idx+=(phi&1023); //bits 0-9 #ifdef debug G4cout << " ECAL packing " << det << " " << z << " " << eta << " " << phi - << " into " << idx << G4endl; + << " into " << idx << G4endl; #endif return idx; } @@ -61,7 +61,7 @@ unsigned int CCaloOrganization::packindex(int det, int depth, int z, int eta, idx+=(phi&1023); //bits 0-9 #ifdef debug G4cout << " HCAL packing " << det << " " << depth << " " << z << " " << eta - << " " << phi << " into " << idx << G4endl; + << " " << phi << " into " << idx << G4endl; #endif return idx; } @@ -102,12 +102,14 @@ int CCaloOrganization::getUnitWithMaxEnergy(std::map >& UnitWithMaxEnergy = (*iter).first; } } +#ifdef debug G4cout << " *** max energy of " << maxEnergy << " MeV was found in Unit id " - << UnitWithMaxEnergy; + << UnitWithMaxEnergy; int det,z,eta,phi; unpackindex(UnitWithMaxEnergy, det, z, eta, phi); G4cout << " corresponding to z= " << z << " eta= " << eta << " phi = " << phi - << G4endl; + << G4endl; +#endif return UnitWithMaxEnergy; } @@ -134,16 +136,18 @@ float CCaloOrganization::energyInMatrix(int nCellInEta, int nCellInPhi, int index = this->packindex(det,z,ieta,iphi); totalEnergy += themap[index]; ncristals+=1; - G4cout<<"ieta - iphi - E = "< - //#define debug //#define ddebug @@ -56,8 +54,9 @@ CCaloSD::CCaloSD(G4String name, CCalVOrganization* numberingScheme): CCaloSD::~CCaloSD() { - if (theDescription) - delete theDescription; + G4cout << "CCaloSD: " << SDname << " deleted" << G4endl; + if (theDescription) + delete theDescription; } @@ -103,14 +102,21 @@ void CCaloSD::getStepInfo(G4Step* aStep) { G4String particleType = theTrack->GetDefinition()->GetParticleName(); + const G4VTouchable* touch = aStep->GetPreStepPoint()->GetTouchable(); + G4double weight; + if (touch->GetVolume(0)->GetName() == "CrystalMatrixCrystal") + weight = curve_LY(PreStepPoint); + else + weight = 1.; + if (particleType == "e-" || particleType == "e+" || particleType == "gamma" ){ - EdepositEM = aStep->GetTotalEnergyDeposit(); + EdepositEM = weight*(aStep->GetTotalEnergyDeposit()); EdepositEHAD = 0.; } else { EdepositEM = 0.; - EdepositEHAD = aStep->GetTotalEnergyDeposit(); + EdepositEHAD = weight*(aStep->GetTotalEnergyDeposit()); } TSlice = (PostStepPoint->GetGlobalTime() )/nanosecond; @@ -146,7 +152,7 @@ G4bool CCaloSD::hitExists() { //look in HC whether a hit with the same primID,UnitID,TSliceID exists already: G4bool found = false; - for (int j=0; jentries()&&!found; j++) { + for (G4int j=0; jentries()&&!found; j++) { CCalG4Hit* aPreviousHit = (*theHC)[j]; if (aPreviousHit->getTrackID() == PrimaryID && @@ -189,15 +195,25 @@ void CCaloSD::StoreHit(CCalG4Hit* hit){ void CCaloSD::createNewHit() { #ifdef debug + G4int currentCopyNo = -999; + G4int motherCopyNo = -999; + G4TouchableHistory* theTouchable + = (G4TouchableHistory*)( theTrack->GetTouchable() ); + if ( theTouchable ) { + currentCopyNo = theTouchable->GetReplicaNumber( 0 ); + if ( theTouchable->GetHistoryDepth() > 0 ) { + motherCopyNo = theTouchable->GetReplicaNumber( 1 ); + } + } G4cout << "CCaloSD createNewHit for" - << " PV " << CurrentPV->GetName() - << " PVid = " << CurrentPV->GetCopyNo() - << " MVid = " << CurrentPV->GetMother()->GetCopyNo() - << " Unit " << UnitID <GetName() + << " PVid = " << currentCopyNo + << " MVid = " << motherCopyNo + << " Unit " << UnitID <GetTrackID() - << " which is a " << theTrack->GetDefinition()->GetParticleName(); + << " time slice " << TSliceID + << " For Track " << theTrack->GetTrackID() + << " which is a " << theTrack->GetDefinition()->GetParticleName(); if (theTrack->GetTrackID()==1) { G4cout << " of energy " << theTrack->GetTotalEnergy(); @@ -283,7 +299,29 @@ void CCaloSD::SetOrganization(CCalVOrganization* org){ if (theDescription!=0) delete theDescription; theDescription = org; - } +G4double CCaloSD::curve_LY(G4StepPoint* stepPoint) { + + G4double weight = 1.; + G4ThreeVector localPoint = SetToLocal(stepPoint->GetPosition()); + G4double crlength = 230.; + G4double dapd = 0.5 * crlength - localPoint.z(); + if (dapd >= -0.1 || dapd <= crlength+0.1) { + if (dapd <= 100.) + weight = 1.05 - dapd * 0.0005; + } else { + G4cout << "CCaloSD, light coll curve : wrong distance to APD " << dapd + << " crlength = " << crlength + << " z of localPoint = " << localPoint.z() + << " take weight = " << weight << G4endl; + } +#ifdef ddebug + G4cout << "CCaloSD, light coll curve : " << dapd + << " crlength = " << crlength + << " z of localPoint = " << localPoint.z() + << " take weight = " << weight << G4endl; +#endif + return weight; +} diff --git a/examples/advanced/composite_calorimeter/src/G4EMModelBuilder.cc b/examples/advanced/composite_calorimeter/src/G4EMModelBuilder.cc deleted file mode 100644 index e027eb740e..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4EMModelBuilder.cc +++ /dev/null @@ -1,70 +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 "G4EMModelBuilder.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include - - -G4EMModelBuilder:: -G4EMModelBuilder() {} - -G4EMModelBuilder:: -~G4EMModelBuilder() {} - -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4ProcessManager.hh" - - -void G4EMModelBuilder::Build() -{ - G4ProcessManager * pManager = 0; - - 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); - 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); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); - -} -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4HadronModelQEDBuilder.cc b/examples/advanced/composite_calorimeter/src/G4HadronModelQEDBuilder.cc deleted file mode 100644 index 2e47183c56..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4HadronModelQEDBuilder.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. * -// ******************************************************************** -// -#include "G4HadronModelQEDBuilder.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4ProcessManager.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" - -G4HadronModelQEDBuilder::G4HadronModelQEDBuilder() {} -G4HadronModelQEDBuilder::~G4HadronModelQEDBuilder(){} - -void G4HadronModelQEDBuilder:: -RegisterOne(G4ProcessManager* aP, G4MultipleScatteringSTD * aM, G4hIonisationSTD * aI) -{ - aP->AddProcess(aI, ordInActive,2, 2); - aP->AddProcess(aM); - aP->SetProcessOrdering(aM, idxAlongStep, 1); - aP->SetProcessOrdering(aM, idxPostStep, 1); -} - -void G4HadronModelQEDBuilder::Build() -{ - // PionPlus - RegisterOne(G4PionPlus::PionPlus()->GetProcessManager(), &thePionPlusMult, &thePionPlusIonisation); - - // PionMinus - RegisterOne(G4PionMinus::PionMinus()->GetProcessManager(), &thePionMinusMult, &thePionMinusIonisation); - - // KaonPlus - RegisterOne(G4KaonPlus::KaonPlus()->GetProcessManager(), &theKaonPlusMult, &theKaonPlusIonisation); - - // KaonMinus - RegisterOne(G4KaonMinus::KaonMinus()->GetProcessManager(), &theKaonMinusMult, &theKaonMinusIonisation); - - // Proton - RegisterOne(G4Proton::Proton()->GetProcessManager(), &theProtonMult, &theProtonIonisation); - - // anti-Proton - RegisterOne(G4AntiProton::AntiProton()->GetProcessManager(), &theAntiProtonMult, &theAntiProtonIonisation); - - // SigmaMinus - RegisterOne(G4SigmaMinus::SigmaMinus()->GetProcessManager(), &theSigmaMinusMult, &theSigmaMinusIonisation); - - // anti-SigmaMinus - RegisterOne(G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(), &theAntiSigmaMinusMult, &theAntiSigmaMinusIonisation); - - // SigmaPlus - RegisterOne(G4SigmaPlus::SigmaPlus()->GetProcessManager(), &theSigmaPlusMult, &theSigmaPlusIonisation); - - // anti-SigmaPlus - RegisterOne(G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(), &theAntiSigmaPlusMult, &theAntiSigmaPlusIonisation); - - // XiMinus - RegisterOne(G4XiMinus::XiMinus()->GetProcessManager(), &theXiMinusMult, &theXiMinusIonisation); - - // anti-XiMinus - RegisterOne(G4AntiXiMinus::AntiXiMinus()->GetProcessManager(), &theAntiXiMinusMult, &theAntiXiMinusIonisation); - - // OmegaMinus - RegisterOne(G4OmegaMinus::OmegaMinus()->GetProcessManager(), &theOmegaMinusMult, &theOmegaMinusIonisation); - - // anti-OmegaMinus - RegisterOne(G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(), &theAntiOmegaMinusMult, &theAntiOmegaMinusIonisation); -} - - - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc b/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc deleted file mode 100644 index 40e6aaf19d..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4HadronQEDBuilder.cc +++ /dev/null @@ -1,108 +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 "G4HadronQEDBuilder.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4ProcessManager.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" - -G4HadronQEDBuilder::G4HadronQEDBuilder() {} -G4HadronQEDBuilder::~G4HadronQEDBuilder(){} - -void G4HadronQEDBuilder:: -RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI) -{ - aP->AddProcess(aI, ordInActive,2, 2); - aP->AddProcess(aM); - aP->SetProcessOrdering(aM, idxAlongStep, 1); - aP->SetProcessOrdering(aM, idxPostStep, 1); -} - -void G4HadronQEDBuilder::Build() -{ - // PionPlus - RegisterOne(G4PionPlus::PionPlus()->GetProcessManager(), &thePionPlusMult, &thePionPlusIonisation); - - // PionMinus - RegisterOne(G4PionMinus::PionMinus()->GetProcessManager(), &thePionMinusMult, &thePionMinusIonisation); - - // KaonPlus - RegisterOne(G4KaonPlus::KaonPlus()->GetProcessManager(), &theKaonPlusMult, &theKaonPlusIonisation); - - // KaonMinus - RegisterOne(G4KaonMinus::KaonMinus()->GetProcessManager(), &theKaonMinusMult, &theKaonMinusIonisation); - - // Proton - RegisterOne(G4Proton::Proton()->GetProcessManager(), &theProtonMult, &theProtonIonisation); - - // anti-Proton - RegisterOne(G4AntiProton::AntiProton()->GetProcessManager(), &theAntiProtonMult, &theAntiProtonIonisation); - - // SigmaMinus - RegisterOne(G4SigmaMinus::SigmaMinus()->GetProcessManager(), &theSigmaMinusMult, &theSigmaMinusIonisation); - - // anti-SigmaMinus - RegisterOne(G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(), &theAntiSigmaMinusMult, &theAntiSigmaMinusIonisation); - - // SigmaPlus - RegisterOne(G4SigmaPlus::SigmaPlus()->GetProcessManager(), &theSigmaPlusMult, &theSigmaPlusIonisation); - - // anti-SigmaPlus - RegisterOne(G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(), &theAntiSigmaPlusMult, &theAntiSigmaPlusIonisation); - - // XiMinus - RegisterOne(G4XiMinus::XiMinus()->GetProcessManager(), &theXiMinusMult, &theXiMinusIonisation); - - // anti-XiMinus - RegisterOne(G4AntiXiMinus::AntiXiMinus()->GetProcessManager(), &theAntiXiMinusMult, &theAntiXiMinusIonisation); - - // OmegaMinus - RegisterOne(G4OmegaMinus::OmegaMinus()->GetProcessManager(), &theOmegaMinusMult, &theOmegaMinusIonisation); - - // anti-OmegaMinus - RegisterOne(G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(), &theAntiOmegaMinusMult, &theAntiOmegaMinusIonisation); -} - - - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4LEPProtonBuilder.cc b/examples/advanced/composite_calorimeter/src/G4LEPProtonBuilder.cc deleted file mode 100644 index 90e06655c9..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4LEPProtonBuilder.cc +++ /dev/null @@ -1,54 +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 "G4LEPProtonBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4LEPProtonBuilder:: -G4LEPProtonBuilder() -{ - theMin = 0; - theMax=55*GeV; -} - -G4LEPProtonBuilder:: -~G4LEPProtonBuilder() {} - -void G4LEPProtonBuilder:: -Build(G4HadronElasticProcess & aP) -{ - theElasticModel = new G4LElastic(); - aP.RegisterMe(theElasticModel); -} - -void G4LEPProtonBuilder:: -Build(G4ProtonInelasticProcess & aP) -{ - theLEProtonModel = new G4LEProtonInelastic(); - theLEProtonModel->SetMinEnergy(theMin); - theLEProtonModel->SetMaxEnergy(theMax); - aP.RegisterMe(theLEProtonModel); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4NeutronBuilder.cc b/examples/advanced/composite_calorimeter/src/G4NeutronBuilder.cc deleted file mode 100644 index a9883d0dd0..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4NeutronBuilder.cc +++ /dev/null @@ -1,51 +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 "G4NeutronBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4NeutronBuilder:: -G4NeutronBuilder() {} - -G4NeutronBuilder:: -~G4NeutronBuilder() {} - -void G4NeutronBuilder:: -Build() -{ - std::vector::iterator i; - for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) - { - (*i)->Build(theNeutronElasticProcess); - (*i)->Build(theNeutronInelastic); - (*i)->Build(theNeutronCapture); - (*i)->Build(theNeutronFission); - } - G4ProcessManager * theProcMan = G4Neutron::Neutron()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theNeutronElasticProcess); - theProcMan->AddDiscreteProcess(&theNeutronInelastic); - theProcMan->AddDiscreteProcess(&theNeutronCapture); - theProcMan->AddDiscreteProcess(&theNeutronFission); -} -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4NeutronHPBuilder.cc b/examples/advanced/composite_calorimeter/src/G4NeutronHPBuilder.cc deleted file mode 100644 index 218000367f..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4NeutronHPBuilder.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. * -// ******************************************************************** -// -#include "G4NeutronHPBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4NeutronHPBuilder:: -G4NeutronHPBuilder() -{ - theHPElastic = NULL; - theHPElasticData = NULL; - - theHPFission = NULL; - theHPFissionData = NULL; - - theHPCapture = NULL; - theHPCaptureData = NULL; - - theHPInelastic = NULL; - theHPInelasticData = NULL; -} - -G4NeutronHPBuilder:: -~G4NeutronHPBuilder() -{ - delete theHPElasticData; - delete theHPFissionData; - delete theHPCaptureData; - delete theHPInelasticData; -} - -void G4NeutronHPBuilder:: -Build(G4HadronElasticProcess & aP) -{ - if(theHPElastic==NULL) theHPElastic = new G4NeutronHPElastic; - if(theHPElasticData == NULL) theHPElasticData = new G4NeutronHPElasticData; - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(theHPElasticData); - aP.RegisterMe(theHPElastic); -} - -void G4NeutronHPBuilder:: -Build(G4HadronFissionProcess & aP) -{ - if(theHPFission == NULL) theHPFission = new G4NeutronHPFission; - if(theHPFissionData==NULL) theHPFissionData=new G4NeutronHPFissionData; - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(theHPFissionData); - aP.RegisterMe(theHPFission); -} - -void G4NeutronHPBuilder:: -Build(G4HadronCaptureProcess & aP) -{ - if(theHPCapture==NULL) theHPCapture = new G4NeutronHPCapture; - if(theHPCaptureData==NULL) theHPCaptureData = new G4NeutronHPCaptureData; - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(theHPCaptureData); - aP.RegisterMe(theHPCapture); -} - -void G4NeutronHPBuilder:: -Build(G4NeutronInelasticProcess & aP) -{ - if(theHPInelastic==NULL) theHPInelastic = new G4NeutronHPInelastic; - if(theHPInelasticData==NULL) theHPInelasticData = new G4NeutronHPInelasticData; - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(theHPInelasticData); - aP.RegisterMe(theHPInelastic); -} -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4PiKBuilder.cc b/examples/advanced/composite_calorimeter/src/G4PiKBuilder.cc deleted file mode 100644 index 9de0ec906c..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4PiKBuilder.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 "G4PiKBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4PiKBuilder:: -G4PiKBuilder() {} - -G4PiKBuilder:: -~G4PiKBuilder() {} - -void G4PiKBuilder:: -Build() -{ - std::vector::iterator i; - for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) - { - (*i)->Build(thePionPlusElasticProcess); - (*i)->Build(thePionMinusElasticProcess); - (*i)->Build(theKaonPlusElasticProcess); - (*i)->Build(theKaonMinusElasticProcess); - (*i)->Build(theKaonZeroLElasticProcess); - (*i)->Build(theKaonZeroSElasticProcess); - - (*i)->Build(thePionPlusInelastic); - (*i)->Build(thePionMinusInelastic); - (*i)->Build(theKaonPlusInelastic); - (*i)->Build(theKaonMinusInelastic); - (*i)->Build(theKaonZeroLInelastic); - (*i)->Build(theKaonZeroSInelastic); - } - G4ProcessManager * theProcMan; - theProcMan = G4PionPlus::PionPlus()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&thePionPlusElasticProcess); - theProcMan->AddDiscreteProcess(&thePionPlusInelastic); - theProcMan = G4PionMinus::PionMinus()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&thePionMinusElasticProcess); - theProcMan->AddDiscreteProcess(&thePionMinusInelastic); - theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theKaonPlusElasticProcess); - theProcMan->AddDiscreteProcess(&theKaonPlusInelastic); - theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theKaonMinusElasticProcess); - theProcMan->AddDiscreteProcess(&theKaonMinusInelastic); - theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theKaonZeroLElasticProcess); - theProcMan->AddDiscreteProcess(&theKaonZeroLInelastic); - theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theKaonZeroSElasticProcess); - theProcMan->AddDiscreteProcess(&theKaonZeroSInelastic); -} -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4ProtonBuilder.cc b/examples/advanced/composite_calorimeter/src/G4ProtonBuilder.cc deleted file mode 100644 index 397ed3b71b..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4ProtonBuilder.cc +++ /dev/null @@ -1,47 +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 "G4ProtonBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4ProtonBuilder:: -G4ProtonBuilder() {} - -G4ProtonBuilder:: -~G4ProtonBuilder() {} - -void G4ProtonBuilder:: -Build() -{ - std::vector::iterator i; - for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) - { - (*i)->Build(theProtonElasticProcess); - (*i)->Build(theProtonInelastic); - } - G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager(); - theProcMan->AddDiscreteProcess(&theProtonElasticProcess); - theProcMan->AddDiscreteProcess(&theProtonInelastic); -} -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4QGSCPiKBuilder.cc b/examples/advanced/composite_calorimeter/src/G4QGSCPiKBuilder.cc deleted file mode 100644 index dd7c5f9328..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4QGSCPiKBuilder.cc +++ /dev/null @@ -1,99 +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 "G4QGSCPiKBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4QGSCPiKBuilder:: -G4QGSCPiKBuilder() -{ - theMin = 15*GeV; - theModel = new G4TheoFSGenerator; - theCascade = new G4StringChipsParticleLevelInterface; - theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); -} - -G4QGSCPiKBuilder:: -~G4QGSCPiKBuilder() -{ - delete theStringDecay; -} - -void G4QGSCPiKBuilder:: -Build(G4HadronElasticProcess & aP) {} - -void G4QGSCPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiCross); - aP.RegisterMe(theModel); -} - -void G4QGSCPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiCross); - aP.RegisterMe(theModel); -} - -void G4QGSCPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); -} - -void G4QGSCPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); -} - -void G4QGSCPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); -} - -void G4QGSCPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4QGSPPiKBuilder.cc b/examples/advanced/composite_calorimeter/src/G4QGSPPiKBuilder.cc deleted file mode 100644 index 014f468550..0000000000 --- a/examples/advanced/composite_calorimeter/src/G4QGSPPiKBuilder.cc +++ /dev/null @@ -1,101 +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 "G4QGSPPiKBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4QGSPPiKBuilder:: -G4QGSPPiKBuilder() -{ - theMin = 15*GeV; - theModel = new G4TheoFSGenerator; - theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); - theCascade->SetDeExcitation(thePreEquilib); - theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); -} - -G4QGSPPiKBuilder:: -~G4QGSPPiKBuilder() -{ - delete theStringDecay; -} - -void G4QGSPPiKBuilder:: -Build(G4HadronElasticProcess & aP) {} - -void G4QGSPPiKBuilder:: -Build(G4PionPlusInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); - aP.RegisterMe(theModel); -} - -void G4QGSPPiKBuilder:: -Build(G4PionMinusInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); - aP.RegisterMe(theModel); -} - -void G4QGSPPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); -} - -void G4QGSPPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); -} - -void G4QGSPPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); -} - -void G4QGSPPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); -} - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/IonModelPhysics.cc b/examples/advanced/composite_calorimeter/src/IonModelPhysics.cc deleted file mode 100644 index dc7257e0fc..0000000000 --- a/examples/advanced/composite_calorimeter/src/IonModelPhysics.cc +++ /dev/null @@ -1,139 +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 "IonModelPhysics.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include - - -IonModelPhysics::IonModelPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{ -} - -IonModelPhysics::~IonModelPhysics() -{ -} - -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" - -// Nuclei -#include "G4IonConstructor.hh" - -void IonModelPhysics::ConstructParticle() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - - -#include "G4ProcessManager.hh" - - -void IonModelPhysics::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); - -} - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/IonPhysics.cc b/examples/advanced/composite_calorimeter/src/IonPhysics.cc deleted file mode 100644 index 2c4880b3c8..0000000000 --- a/examples/advanced/composite_calorimeter/src/IonPhysics.cc +++ /dev/null @@ -1,139 +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 "globals.hh" -#include "G4ios.hh" -#include - - -IonPhysics::IonPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{ -} - -IonPhysics::~IonPhysics() -{ -} - -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" - -// Nuclei -#include "G4IonConstructor.hh" - -void IonPhysics::ConstructParticle() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - - -#include "G4ProcessManager.hh" - - -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); - -} - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/MuonModelPhysics.cc b/examples/advanced/composite_calorimeter/src/MuonModelPhysics.cc deleted file mode 100644 index 4b76c18961..0000000000 --- a/examples/advanced/composite_calorimeter/src/MuonModelPhysics.cc +++ /dev/null @@ -1,124 +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 "MuonModelPhysics.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include - - -MuonModelPhysics::MuonModelPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{ -} - -MuonModelPhysics::~MuonModelPhysics() -{ -} - -#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 MuonModelPhysics::ConstructParticle() -{ - // Mu - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); - - // Tau - G4TauMinus::TauMinusDefinition(); - G4TauPlus::TauPlusDefinition(); - G4NeutrinoTau::NeutrinoTauDefinition(); - G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); - -} - - -#include "G4ProcessManager.hh" - -void MuonModelPhysics::ConstructProcess() -{ - G4ProcessManager * pManager = 0; - G4cout << "###################################### muon physics is constructed "<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); - -} - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/MuonPhysics.cc b/examples/advanced/composite_calorimeter/src/MuonPhysics.cc deleted file mode 100644 index eacb83d507..0000000000 --- a/examples/advanced/composite_calorimeter/src/MuonPhysics.cc +++ /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. * -// ******************************************************************** -// -#include "MuonPhysics.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include - - -MuonPhysics::MuonPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{ -} - -MuonPhysics::~MuonPhysics() -{ -} - -#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 MuonPhysics::ConstructParticle() -{ - // Mu - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); - - // Tau - G4TauMinus::TauMinusDefinition(); - G4TauPlus::TauPlusDefinition(); - G4NeutrinoTau::NeutrinoTauDefinition(); - G4AntiNeutrinoTau::AntiNeutrinoTauDefinition(); - -} - - -#include "G4ProcessManager.hh" - -void MuonPhysics::ConstructProcess() -{ - G4ProcessManager * pManager = 0; - - // 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); - -} - - - -// 2002 by J.P. Wellisch diff --git a/examples/advanced/gammaray_telescope/GammaRayTel.cc b/examples/advanced/gammaray_telescope/GammaRayTel.cc index a0f4b626d6..3ed4f82795 100644 --- a/examples/advanced/gammaray_telescope/GammaRayTel.cc +++ b/examples/advanced/gammaray_telescope/GammaRayTel.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTel.cc,v 1.11 2003/06/16 16:46:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/gammaraytel.out b/examples/advanced/gammaray_telescope/gammaraytel.out index e288b5c32c..a778722a2e 100644 --- a/examples/advanced/gammaray_telescope/gammaraytel.out +++ b/examples/advanced/gammaray_telescope/gammaraytel.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ + Geant4 version $Name: geant4-06-00 $ (19-May-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/advanced/gammaray_telescope/gammaraytel.stt_out b/examples/advanced/gammaray_telescope/gammaraytel.stt_out index 527a41ff68..def5942182 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-05-02 $ + Geant4 version $Name: geant4-06-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 0a28fac79f..479bac5132 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.16 2003/06/25 10:18:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 65d1bd6582..986b590f56 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 858d5701e7..22b49ae143 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 ab62837e16..3b01a13877 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 5b757a3eb9..c26eb2858a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 1c52b4e770..941f954656 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f35abe2ff1..caa1487557 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.6 2001/07/11 09:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0ace95a2e3..0ef4c74718 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3af26aa122..515d23c436 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 28dc051e42..cd9a202652 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3a712abb79..7a6d51e914 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelDummySD.hh index cdfdb7daa5..7959ed73ec 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 d7842c7640..285eddc821 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelEventAction.hh index abf65f99d6..2574f56bb1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3084efa02f..9ae816dee9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh index 5cd8206ba4..405f6556db 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelHadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: GammaRayTelHadronPhysics.hh,v 1.2 2003/06/16 16:46:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelIonPhysics.hh index b136b4c90a..071f7c4bfc 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelMuonPhysics.hh index d2b5bd0c54..27a7e09149 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelPrimaryGeneratorAction.hh index f61cd4a9e8..d53e41e4b8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f953913913..72b7ab5d7f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelRunAction.hh index 1573609a39..3b9eeffa3c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a140a8b00c..b8fb6eef39 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 32ee14cc92..ddfbd30f12 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9bcb739029..209ab9a394 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // ------------------------------------------------------------ // GEANT 4 class header file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh b/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh index 22c9bc55f3..a0cd897637 100644 --- a/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh +++ b/examples/advanced/gammaray_telescope/include/GammaRayTelVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelVisManager.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2b2fe66c94..54aeaedebc 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.19 2003/06/25 10:18:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b988cf08bb..0490439878 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e64e8d64a5..cc6163aa68 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e5ae3c68f3..286cd37291 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9ad4e2e454..2c37708309 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 243b73b649..c247a02cb8 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelCalorimeterSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelCalorimeterSD.cc,v 1.5 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: GammaRayTelCalorimeterSD.cc,v 1.6 2003/11/14 14:59:48 flongo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -100,7 +100,7 @@ G4bool GammaRayTelCalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); G4VPhysicalVolume* cal_bar = theTouchable->GetVolume(); - G4VPhysicalVolume* cal_plane = cal_bar->GetMother(); + G4VPhysicalVolume* cal_plane = theTouchable->GetVolume(1); G4int CALBarNumber=cal_bar->GetCopyNo(); G4String CALBarName = cal_bar->GetName(); diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelDetectorConstruction.cc index 242bd1e337..8c01e0c79f 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.10 2003/05/28 13:56:33 flongo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e4a143ae31..39e5f29580 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 273ed6158b..cf4c796dd6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b96fa19e6b..5d8222d997 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 c7b925ac89..2739f0a132 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 1dfe74773d..4bd17e1990 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelEMPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelEMPhysics.cc,v 1.2 2003/06/16 16:46:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelEventAction.cc index ad01b453fc..28f38c1dbf 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc index 698e93c79c..6b327e1ac7 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelHadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelHadronPhysics.cc,v 1.2 2003/06/16 16:46:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "GammaRayTelHadronPhysics.hh" diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc index c95652f9fc..1454506544 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelIonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelIonPhysics.cc,v 1.2 2003/06/16 16:46:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc index e0ed9dfa6f..15bbcb789f 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelMuonPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelMuonPhysics.cc,v 1.2 2003/06/16 16:46:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc index 287926fb49..071688d2eb 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: GammaRayTelPhysicsList.cc,v 1.5 2003/06/16 16:46:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelPrimaryGeneratorAction.cc index b46e513550..8f5dfccc58 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.6 2001/11/29 11:19:18 griccard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0a6fd02f20..a4c633cb08 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 976e782ac6..64374a9673 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3d3ab2533c..9d812663c9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9f391d97d5..4ea33a9235 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc index 6551a0807a..ad92a2773e 100644 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelTrackerSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GammaRayTelTrackerSD.cc,v 1.7 2003/05/30 15:09:00 flongo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: GammaRayTelTrackerSD.cc,v 1.8 2003/11/14 15:00:00 flongo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -105,8 +105,9 @@ G4bool GammaRayTelTrackerSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhis G4TouchableHistory* theTouchable = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - G4VPhysicalVolume* phys_tile = theTouchable->GetVolume(); - G4VPhysicalVolume* plane = phys_tile->GetMother(); + //G4VPhysicalVolume* phys_tile = theTouchable->GetVolume(); + + G4VPhysicalVolume* plane = theTouchable->GetVolume(1); G4int PlaneNumber = 0; PlaneNumber=plane->GetCopyNo(); diff --git a/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc b/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc index 92fece4539..83913db8b7 100755 --- a/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc +++ b/examples/advanced/gammaray_telescope/src/GammaRayTelVisManager.cc @@ -22,8 +22,8 @@ // // -// $Id: GammaRayTelVisManager.cc,v 1.8 2003/05/30 15:09:01 flongo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: GammaRayTelVisManager.cc,v 1.9 2003/11/13 15:09:33 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // ------------------------------------------------------------ // GEANT 4 class implementation file // CERN Geneva Switzerland @@ -57,11 +57,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -114,11 +109,6 @@ void GammaRayTelVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/advanced/lAr_calorimeter/GNUmakefile b/examples/advanced/lAr_calorimeter/GNUmakefile index 7b34f8c3d8..cb05a81abe 100644 --- a/examples/advanced/lAr_calorimeter/GNUmakefile +++ b/examples/advanced/lAr_calorimeter/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2003/05/26 12:51:17 pmendez Exp $ +# $Id: GNUmakefile,v 1.6 2003/12/02 14:39:03 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -11,17 +11,9 @@ ifndef G4INSTALL G4INSTALL = ../../.. endif -#ifdef G4ANALYSIS_USE -# CPPFLAGS += -DG4ANALYSIS_USE -#endif - - include $(G4INSTALL)/config/architecture.gmk -G4ANALYSIS_USE:= true -#ifdef G4ANALYSIS_USE -# CPPFLAGS += -DG4ANALYSIS_USE -#endif +#G4ANALYSIS_USE:= true ifdef G4ANALYSIS_USE CPPFLAGS += `aida-config --include` @@ -38,14 +30,3 @@ visclean: rm -f g4*.prim g4*.eps g4*.wrl rm -f .DAWN_* - - - - - - - - - - - diff --git a/examples/advanced/lAr_calorimeter/History b/examples/advanced/lAr_calorimeter/History new file mode 100644 index 0000000000..1d5af7cd0d --- /dev/null +++ b/examples/advanced/lAr_calorimeter/History @@ -0,0 +1,24 @@ +------------------------------------------------------------------- +$Id: History,v 1.5 2003/12/02 14:58:26 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - ATLAS lAr calorimeter + ========================================================= + + Category History file + --------------------- + +02.12.2003 - G.Cosmo (lAr_calorimeter-V05-02-01) + Fixed compilation errors if histograms disabled. + Fixed compilation warnings ... + +12.11.2003 - J.Allison + Updated Vis Manager. + +26.05.2003 - P.M.Lorenzo + Updated for release 5.1. + +30.09.2002 - A.Howard + Created. First version. + diff --git a/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh b/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh index 90dca1d94a..95dd18bca3 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALCalorHit.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALCalorHit.hh,v 1.3 2002/12/12 19:16:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALCalorHit.hh,v 1.4 2003/12/09 15:30:05 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALCryostatVolumes.hh b/examples/advanced/lAr_calorimeter/include/FCALCryostatVolumes.hh index a38203f8bb..52d79422ba 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALCryostatVolumes.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALCryostatVolumes.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Author: Mathieu Fontaine Rachid Mazini // fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch // Language: C++ diff --git a/examples/advanced/lAr_calorimeter/include/FCALEMModule.hh b/examples/advanced/lAr_calorimeter/include/FCALEMModule.hh index 668bb682fe..3f81b28ec5 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALEMModule.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALEMModule.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Author: Mathieu Fontaine Rachid Mazini // fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch // Language: C++ diff --git a/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh b/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh index 3648e30c6f..c708a604b5 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALEMModuleSD.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALEMModuleSD.hh,v 1.5 2002/12/17 15:53:21 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALEMModuleSD.hh,v 1.6 2003/12/09 15:30:08 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALHadModule.hh b/examples/advanced/lAr_calorimeter/include/FCALHadModule.hh index feba79b4ae..fdbf2e6833 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALHadModule.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALHadModule.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Author: Mathieu Fontaine Rachid Mazini // fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch // Language: C++ diff --git a/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh b/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh index 2b61ec81f9..78c48f0b32 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALHadModuleSD.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALHadModuleSD.hh,v 1.5 2002/12/17 15:53:21 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALHadModuleSD.hh,v 1.6 2003/12/09 15:30:10 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALMaterialConsultant.hh b/examples/advanced/lAr_calorimeter/include/FCALMaterialConsultant.hh index 5c67b2f1f9..6d9569249b 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALMaterialConsultant.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALMaterialConsultant.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Rachid Mazini Rachid.Mazini@cern.ch // // Language: C++ diff --git a/examples/advanced/lAr_calorimeter/include/FCALPhysicsList.hh b/examples/advanced/lAr_calorimeter/include/FCALPhysicsList.hh index fcd7a0ee88..f4467832dd 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALPhysicsList.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALPhysicsList.hh @@ -19,18 +19,10 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALPhysicsList.hh,v 1.5 2002/12/12 19:16:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALPhysicsList.hh,v 1.7 2003/12/09 15:30:12 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// -// $Id: FCALPhysicsList.hh,v 1.5 2002/12/12 19:16:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -60,10 +52,8 @@ class FCALPhysicsList: public G4VUserPhysicsList // Set/Get cut values void SetCutForGamma(G4double); void SetCutForElectron(G4double); - void SetCutForProton(G4double); G4double GetCutForGamma() const; G4double GetCutForElectron() const; - G4double GetCutForProton() const; protected: // these methods Construct particles @@ -80,7 +70,6 @@ class FCALPhysicsList: public G4VUserPhysicsList private: G4double cutForGamma; G4double cutForElectron; - G4double cutForProton; G4double currentDefaultCut; }; diff --git a/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh b/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh index 77826b4c7e..27831fc044 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALPrimaryGeneratorAction.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALPrimaryGeneratorAction.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALPrimaryGeneratorAction.hh,v 1.4 2003/12/09 15:30:13 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh b/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh index 4f9c7b3a7c..869a88a9e3 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALRunAction.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALRunAction.hh,v 1.7 2003/05/26 12:51:18 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALRunAction.hh,v 1.8 2003/12/09 15:30:14 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh b/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh index 4ad60d302f..2a9e092039 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALSteppingAction.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALSteppingAction.hh,v 1.4 2002/12/17 15:53:22 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALSteppingAction.hh,v 1.5 2003/12/09 15:30:16 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh b/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh index ca499306e4..b8532988dc 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALSteppingVerbose.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALSteppingVerbose.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALSteppingVerbose.hh,v 1.4 2003/12/09 15:30:17 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh b/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh index 0c0bc31d7c..615f4d8048 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALTBEventAction.hh @@ -19,20 +19,15 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALTBEventAction.hh,v 1.7 2003/02/14 15:54:43 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALTBEventAction.hh,v 1.9 2003/12/09 15:30:18 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#ifdef G4ANALYSIS_USE - #ifndef FCALTBEventAction_h #define FCALTBEventAction_h 1 @@ -72,6 +67,4 @@ class FCALTBEventAction : public G4UserEventAction G4double NTracksOutOfWorld, NSecondaries, Init1, Init2, Init3; }; -#endif - #endif diff --git a/examples/advanced/lAr_calorimeter/include/FCALTBEventActionMessenger.hh b/examples/advanced/lAr_calorimeter/include/FCALTBEventActionMessenger.hh index 95653f3101..2bade06a81 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALTBEventActionMessenger.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALTBEventActionMessenger.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetup.hh b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetup.hh index 289ad9fb54..56aa41a8d4 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetup.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetup.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Author: Mathieu Fontaine Rachid Mazini // fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch // Language: C++ diff --git a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh index 5e2c55a727..56cd28b6cb 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALTestbeamSetupSD.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALTestbeamSetupSD.hh,v 1.4 2002/12/17 15:53:22 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALTestbeamSetupSD.hh,v 1.5 2003/12/09 15:30:21 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh b/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh index a7de130da0..a6c5410dc2 100644 --- a/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh +++ b/examples/advanced/lAr_calorimeter/include/FCALVisManager.hh @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALVisManager.hh,v 1.3 2002/12/12 19:16:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALVisManager.hh,v 1.4 2003/12/09 15:30:22 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/lArCal.cc b/examples/advanced/lAr_calorimeter/lArCal.cc index 5dd45c6025..9c4d1f76c6 100644 --- a/examples/advanced/lAr_calorimeter/lArCal.cc +++ b/examples/advanced/lAr_calorimeter/lArCal.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: lArCal.cc,v 1.5 2003/05/26 12:51:17 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: lArCal.cc,v 1.6 2003/12/09 15:30:04 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/advanced/lAr_calorimeter/run1.out b/examples/advanced/lAr_calorimeter/run1.out index 3e87397b9e..c978fdd220 100644 --- a/examples/advanced/lAr_calorimeter/run1.out +++ b/examples/advanced/lAr_calorimeter/run1.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ + Geant4 version $Name: geant4-06-00 $ (19-May-2003) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc b/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc index 4094b7648a..cedc3c1a2e 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALCalorHit.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALCalorHit.cc,v 1.2 2002/12/12 19:16:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALCalorHit.cc,v 1.4 2003/12/09 15:30:23 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -51,6 +48,7 @@ FCALCalorHit::~FCALCalorHit() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... FCALCalorHit::FCALCalorHit(const FCALCalorHit& right) + : G4VHit(right) { EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; @@ -69,7 +67,7 @@ const FCALCalorHit& FCALCalorHit::operator=(const FCALCalorHit& right) int FCALCalorHit::operator==(const FCALCalorHit& right) const { - return 0; + return (this==&right) ? 1 : 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumes.cc b/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumes.cc index eec650899d..7976370837 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumes.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALCryostatVolumes.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Author: Mathieu Fontaine Rachid Mazini // fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch // Language: C++ @@ -70,10 +71,10 @@ G4LogicalVolume * FCALCryostatVolumes::Construct() //----------------------------------------- - G4VisAttributes * ColorOfIron = new G4VisAttributes(G4Colour(0.3,0.3,0.3)); +// G4VisAttributes * ColorOfIron = new G4VisAttributes(G4Colour(0.3,0.3,0.3)); G4VisAttributes * ColorOfLead = new G4VisAttributes(G4Colour(0.5,0.5,0.5)); G4VisAttributes * ColorOfAir = new G4VisAttributes(G4Colour(1.,1.,1.)); - G4VisAttributes * ColorOfLarg = new G4VisAttributes(G4Colour(1.0, 1.0, 0.0)); +// G4VisAttributes * ColorOfLarg = new G4VisAttributes(G4Colour(1.0, 1.0, 0.0)); //----------------------------- @@ -99,7 +100,7 @@ G4LogicalVolume * FCALCryostatVolumes::Construct() G4LogicalVolume * LogicalInsulation = new G4LogicalVolume(SolidInsulation, FCALMaterials->Material("Air"), "InsulationLogical"); - G4VPhysicalVolume * PhysicalInsulation = +// G4VPhysicalVolume * PhysicalInsulation = new G4PVPlacement(0, 0, LogicalInsulation, "InsulationPhysical", LogicalCryostat, 0, 0); @@ -151,7 +152,7 @@ G4LogicalVolume * FCALCryostatVolumes::Construct() new G4LogicalVolume(SolidFrontExcluder, FCALMaterials->Material("Air") , "FrontExcluderLogical"); - G4VPhysicalVolume * PhysicalFrontExcluder = +// G4VPhysicalVolume * PhysicalFrontExcluder = new G4PVPlacement(0,G4ThreeVector(FrontExcluderPosX, FrontExcluderPosY, FrontExcluderPosZ), "FrontExcluderPhysical", LogicalFrontExcluder, PhysicalLArg, 0,0); @@ -173,7 +174,7 @@ G4LogicalVolume * FCALCryostatVolumes::Construct() G4RotationMatrix * BackExcluderRotationMatrix = new G4RotationMatrix(); BackExcluderRotationMatrix->rotateX(BackExcluderRotX); - G4VPhysicalVolume * PhysicalBackExcluder = +// G4VPhysicalVolume * PhysicalBackExcluder = new G4PVPlacement(BackExcluderRotationMatrix, G4ThreeVector(BackExcluderPosX, BackExcluderPosY, BackExcluderPosZ), "BackExcluder", LogicalBackExcluder, @@ -198,7 +199,7 @@ G4LogicalVolume * FCALCryostatVolumes::Construct() FCALRotationMatrix->rotateX(FCALEnvelopeRotX); // FCALRotationMatrix->rotateY(FCALEnvelopeRotY); - G4VPhysicalVolume * PhysicalFCALEnvelopp = +// G4VPhysicalVolume * PhysicalFCALEnvelopp = new G4PVPlacement(FCALRotationMatrix, G4ThreeVector(FCALEnvelopePosX,FCALEnvelopePosY,FCALEnvelopePosZ) , LogicalFCALEnvelope, "FCALEnvelopePhysical", LogicalLArg, 0,0); @@ -215,7 +216,7 @@ G4LogicalVolume * FCALCryostatVolumes::Construct() G4RotationMatrix * EmModuleRot = new G4RotationMatrix(); EmModuleRot->rotateZ(ModuleRotZ); - G4VPhysicalVolume * PhysicalFCALEmModule = +// G4VPhysicalVolume * PhysicalFCALEmModule = new G4PVPlacement(EmModuleRot, G4ThreeVector(FCALEmModulePosX,FCALEmModulePosY,FCALEmModulePosZ), LogicalFCALEmModule,"FCALEmModulePhysical",LogicalFCALEnvelope,0,0); @@ -230,7 +231,7 @@ G4LogicalVolume * FCALCryostatVolumes::Construct() G4RotationMatrix * HadModuleRot = new G4RotationMatrix(); HadModuleRot->rotateZ(ModuleRotZ); - G4VPhysicalVolume * PhysicalFCALHadModule = +// G4VPhysicalVolume * PhysicalFCALHadModule = new G4PVPlacement(HadModuleRot, G4ThreeVector(FCALHadModulePosX,FCALHadModulePosY,FCALHadModulePosZ), LogicalFCALHadModule, "FCALHadModulePhysical",LogicalFCALEnvelope,0,0); diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc b/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc index 305af33ba0..d451127741 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModule.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Author: Rachid Mazini // Rachid.Mazini@cern.ch // Language: C++ @@ -100,7 +101,7 @@ G4LogicalVolume * FCALEMModule::Construct() FCALMaterials->construct(); G4VisAttributes * ColorOfEMModule = new G4VisAttributes(G4Colour(1.,0.,0.5)); - G4VisAttributes * ColorOfLArg = new G4VisAttributes(G4Colour(0.,0.,1.)); +// G4VisAttributes * ColorOfLArg = new G4VisAttributes(G4Colour(0.,0.,1.)); //---------------------------- // Read Parameters @@ -136,9 +137,10 @@ G4LogicalVolume * FCALEMModule::Construct() G4ThreeVector F1CableTroffTrans(0.,0.,0.); G4RotationMatrix F1CableTroffRot; - for(G4int i=0 ; i < NCableTroff ; i++) + G4int i=0; + for(i=0 ; i < NCableTroff ; i++) { - G4VPhysicalVolume * PhysicalF1CableTroff = +// G4VPhysicalVolume * PhysicalF1CableTroff = new G4PVPlacement(G4Transform3D(F1CableTroffRot,F1CableTroffTrans), LogicalF1CableTroff,"F1CableTroffPhysical", LogicalEmModule,0,i+1); @@ -163,7 +165,7 @@ G4LogicalVolume * FCALEMModule::Construct() "LArg Gap"); for(i=1; i < NF1LarGap; i++){ - G4VPhysicalVolume * PhysicalF1LArGap = +// G4VPhysicalVolume * PhysicalF1LArGap = new G4PVPlacement(0,G4ThreeVector(F1LArGapPosX[i]*cm,F1LArGapPosY[i]*cm,0.*cm), LogicalF1LArGap,"F1LArGapPhysical", LogicalEmModule, 0, i); }; diff --git a/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc b/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc index b7c875bd63..1d499ec233 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALEMModuleSD.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALEMModuleSD.cc,v 1.5 2002/12/17 15:53:30 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALEMModuleSD.cc,v 1.7 2003/12/09 15:30:26 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -66,7 +63,7 @@ FCALEMModuleSD::~FCALEMModuleSD() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void FCALEMModuleSD::Initialize(G4HCofThisEvent*HCE) +void FCALEMModuleSD::Initialize(G4HCofThisEvent*) { if (Init_state==0) { @@ -79,7 +76,7 @@ void FCALEMModuleSD::Initialize(G4HCofThisEvent*HCE) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool FCALEMModuleSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +G4bool FCALEMModuleSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); @@ -101,18 +98,19 @@ G4bool FCALEMModuleSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void FCALEMModuleSD::EndOfEvent(G4HCofThisEvent* HCE) +void FCALEMModuleSD::EndOfEvent(G4HCofThisEvent*) { G4int NF1Tile = 0; G4int AddTileP[300]; G4double EvisTileP[300]; - - for (G4int i=1; i <= 1130; i++){ + G4int i=0; + for (i=1; i <= 1130; i++){ if(EvisF1Tile[i] > 0.) { NF1Tile++; AddTileP[NF1Tile] = i; EvisTileP[NF1Tile] = EvisF1Tile[i]; - };}; + } + } G4cout << "Number of F1 Tiles with Positive energy : " << NF1Tile << G4endl; @@ -125,7 +123,7 @@ void FCALEMModuleSD::EndOfEvent(G4HCofThisEvent* HCE) Init_state++; } else { iostemp = ios::out|ios::app; // ios::app; - }; + } ofstream EmDatafile(FileName, iostemp); // EmDatafile.precision(5); diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc b/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc index a35c47c4b5..3bc041dff2 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModule.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Name of file: FCALHadModule.cc // Author: Mathieu Fontaine Rachid Mazini // fontainerlps.umontreal.ca Rachid.Mazinircern.ch @@ -140,7 +141,7 @@ G4LogicalVolume * FCALHadModule::Construct() G4LogicalVolume * LogicalWAbsorber = new G4LogicalVolume(SolidWAbsorber, FCALMaterials->Material("FCAL2WFeNi"), "SolidWLogical"); - G4VPhysicalVolume * PhysicalWAbsorber = +// G4VPhysicalVolume * PhysicalWAbsorber = new G4PVPlacement(0, G4ThreeVector(), LogicalWAbsorber, "WAbsorberPhysical", LogicalHadModule, 0, 0); @@ -157,10 +158,10 @@ G4LogicalVolume * FCALHadModule::Construct() G4LogicalVolume * LogicalCuPlate = new G4LogicalVolume(SolidCuPlate, FCALMaterials->Material("Copper"), "CuPlateLogical"); - G4VPhysicalVolume * PhysicalCuPlateA = +// G4VPhysicalVolume * PhysicalCuPlateA = new G4PVPlacement(0, G4ThreeVector(0.,0.,CuPlateAPosZ), LogicalCuPlate, "CuPlateAPhysical", LogicalHadModule, 0, 0); - G4VPhysicalVolume * PhysicalCuPlateB = +// G4VPhysicalVolume * PhysicalCuPlateB = new G4PVPlacement(0, G4ThreeVector(0.,0.,CuPlateBPosZ), LogicalCuPlate, "CuPlateBPhysical", LogicalHadModule, 0, 0); @@ -187,13 +188,14 @@ G4LogicalVolume * FCALHadModule::Construct() G4ThreeVector F2TroffMainTrans(0.,0.,0.); G4ThreeVector F2TroffABTrans(0.,0.,0.); G4RotationMatrix F2TroffRot; - for(G4int i=0 ; i < NCableTroff ; i++) + G4int i=0; + for(i=0 ; i < NCableTroff ; i++) { - G4VPhysicalVolume * PhysicalF2TroffMain = +// G4VPhysicalVolume * PhysicalF2TroffMain = new G4PVPlacement(G4Transform3D(F2TroffRot,F2TroffMainTrans), LogicalF2TroffMain, "F2TroffMainPhysical", LogicalWAbsorber,0,i+1); - G4VPhysicalVolume * PhysicalF2TroffAB = +// G4VPhysicalVolume * PhysicalF2TroffAB = new G4PVPlacement(G4Transform3D(F2TroffRot,F2TroffABTrans), LogicalF2TroffAB, "F2TroffAPhysical", LogicalCuPlate, 0, i+1); @@ -223,7 +225,7 @@ G4LogicalVolume * FCALHadModule::Construct() new G4Tubs("F2RodSolid", F2RodRmin, F2RodRmax, F2RodLenght, F2RodStartPhi, F2RodDphi); G4LogicalVolume * LogicalF2Rod = new G4LogicalVolume(SolidF2Rod, FCALMaterials->Material("Tungsten"),"F2RodLogical"); - G4VPhysicalVolume * PhysicalF2Rod = +// G4VPhysicalVolume * PhysicalF2Rod = new G4PVPlacement(0,G4ThreeVector(),LogicalF2Rod,"F2RodPhysical",LogicalF2LArGap,0, 0); LogicalF2Rod->SetVisAttributes(ColorOfTungsten); @@ -233,7 +235,7 @@ G4LogicalVolume * FCALHadModule::Construct() // Electrod (Rod + LArg) placement //--------------------------------- for(i=1; i < NF2LarGap; i++){ - G4VPhysicalVolume * PhysicalF2LArGap = +// G4VPhysicalVolume * PhysicalF2LArGap = new G4PVPlacement(0,G4ThreeVector(F2LArGapPosX[i]*cm,F2LArGapPosY[i]*cm,0.*cm), LogicalF2LArGap,"F2LArGapPhysical", LogicalHadModule, 0, i); diff --git a/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc b/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc index e0736ea042..b53444d649 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALHadModuleSD.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALHadModuleSD.cc,v 1.3 2002/12/12 19:16:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALHadModuleSD.cc,v 1.5 2003/12/09 15:30:28 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -64,7 +61,7 @@ FCALHadModuleSD::~FCALHadModuleSD() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void FCALHadModuleSD::Initialize(G4HCofThisEvent*HCE) +void FCALHadModuleSD::Initialize(G4HCofThisEvent*) { if(InitF2 == 0) { HadModule->InitializeGeometry(); @@ -75,7 +72,7 @@ void FCALHadModuleSD::Initialize(G4HCofThisEvent*HCE) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool FCALHadModuleSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +G4bool FCALHadModuleSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); @@ -97,13 +94,14 @@ G4bool FCALHadModuleSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void FCALHadModuleSD::EndOfEvent(G4HCofThisEvent* HCE) +void FCALHadModuleSD::EndOfEvent(G4HCofThisEvent*) { G4int NF2Tile = 0; G4int AddTileP[300]; G4double EvisTileP[300]; + G4int i=0; - for (G4int i=0; i<2330; i++){ + for (i=0; i<2330; i++){ if(EvisF2Tile[i] > 0.) { NF2Tile++; AddTileP[NF2Tile] = i; diff --git a/examples/advanced/lAr_calorimeter/src/FCALMaterialConsultant.cc b/examples/advanced/lAr_calorimeter/src/FCALMaterialConsultant.cc index dcc8b28166..62d3010f3a 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALMaterialConsultant.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALMaterialConsultant.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Author: Mathieu Fontaine, Rachid Mazini // fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch // diff --git a/examples/advanced/lAr_calorimeter/src/FCALPhysicsList.cc b/examples/advanced/lAr_calorimeter/src/FCALPhysicsList.cc index 3ed284e66c..4d6f35cac2 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALPhysicsList.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALPhysicsList.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALPhysicsList.cc,v 1.4 2003/06/11 16:29:16 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALPhysicsList.cc,v 1.6 2003/12/09 15:30:30 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -49,7 +46,6 @@ FCALPhysicsList::FCALPhysicsList(): G4VUserPhysicsList() currentDefaultCut = defaultCutValue = 1.*mm; cutForGamma = defaultCutValue; cutForElectron = defaultCutValue; - cutForProton = defaultCutValue; SetVerboseLevel(1); } @@ -227,9 +223,9 @@ void FCALPhysicsList::ConstructEM() particleName == "mu-" ) { //muon G4VProcess* aMultipleScattering = new G4MultipleScattering(); + G4VProcess* anIonisation = new G4MuIonisation(); G4VProcess* aBremsstrahlung = new G4MuBremsstrahlung(); G4VProcess* aPairProduction = new G4MuPairProduction(); - G4VProcess* anIonisation = new G4MuIonisation(); // // add processes pmanager->AddProcess(anIonisation); @@ -299,7 +295,6 @@ void FCALPhysicsList::SetCuts() { if(cutForGamma == currentDefaultCut) cutForGamma = defaultCutValue; if(cutForElectron == currentDefaultCut) cutForElectron = defaultCutValue; - if(cutForProton == currentDefaultCut) cutForProton = defaultCutValue; currentDefaultCut = defaultCutValue; } @@ -314,13 +309,6 @@ void FCALPhysicsList::SetCuts() SetCutValue(cutForElectron, "e-"); SetCutValue(cutForElectron, "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(); } @@ -339,12 +327,6 @@ void FCALPhysicsList::SetCutForElectron(G4double cut) cutForElectron = cut; } -void FCALPhysicsList::SetCutForProton(G4double cut) -{ - ResetCuts(); - cutForProton = cut; -} - G4double FCALPhysicsList::GetCutForGamma() const { return cutForGamma; @@ -355,11 +337,6 @@ G4double FCALPhysicsList::GetCutForElectron() const return cutForElectron; } -G4double FCALPhysicsList::GetCutForProton() const -{ - return cutForGamma; -} - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc b/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc index 9d5a53ad74..1f2ad6c71a 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALPrimaryGeneratorAction.cc @@ -19,11 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALPrimaryGeneratorAction.cc,v 1.3 2002/12/17 15:53:30 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALPrimaryGeneratorAction.cc,v 1.4 2003/12/09 15:30:31 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc b/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc index 841c1a02ab..d2a7ee17c7 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALRunAction.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALRunAction.cc,v 1.4 2003/02/14 15:55:20 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALRunAction.cc,v 1.5 2003/12/09 15:30:32 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc b/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc index 7674f4edd9..4bebe4757b 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALSteppingAction.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALSteppingAction.cc,v 1.3 2002/12/17 15:53:30 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALSteppingAction.cc,v 1.4 2003/12/09 15:30:33 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc b/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc index f2363a0d0e..307c9aa09e 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALSteppingVerbose.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALSteppingVerbose.cc,v 1.3 2003/06/16 16:46:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALSteppingVerbose.cc,v 1.5 2003/12/09 15:30:34 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- @@ -118,7 +115,7 @@ void FCALSteppingVerbose::StepInfo() << " ---------------" << G4endl; - for(G4int lp1=(*fSecondary).size()-tN2ndariesTot; + for(size_t lp1=(*fSecondary).size()-tN2ndariesTot; lp1<(*fSecondary).size(); lp1++){ G4cout << " : " << std::setw(6) diff --git a/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc b/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc index b1bf5342ff..565263ffe3 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALTBEventAction.cc @@ -19,20 +19,15 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALTBEventAction.cc,v 1.7 2003/06/16 16:46:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALTBEventAction.cc,v 1.8 2003/12/02 14:39:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#ifdef G4ANALYSIS_USE - #include "FCALTBEventAction.hh" #include "FCALTBEventActionMessenger.hh" @@ -63,8 +58,9 @@ #include "iostream.h" #include "fstream.h" -#include - +#ifdef G4ANALYSIS_USE + #include +#endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -104,9 +100,9 @@ void FCALTBEventAction::BeginOfEventAction(const G4Event* evt) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void FCALTBEventAction::EndOfEventAction(const G4Event* evt) +void FCALTBEventAction::EndOfEventAction(const G4Event*) { - + G4int i,j; NTracksOutOfWorld = StepAction->GetOutOfWorldTracks(0, 0); G4cout << "N Tracks out of world " << NTracksOutOfWorld << G4endl; @@ -125,15 +121,15 @@ void FCALTBEventAction::EndOfEventAction(const G4Event* evt) G4double OutOfWorld; OutTracks << NTracksOutOfWorld << G4endl; - for(G4int i=1; i<= NTracksOutOfWorld ; i++){ - for(G4int j=1; j<11 ; j++) { + for(i=1; i<= NTracksOutOfWorld ; i++){ + for(j=1; j<11 ; j++) { // G4double OutOfWorld = StepAction->GetOutOfWorldTracks(i,j); OutOfWorld = StepAction->GetOutOfWorldTracks(i,j); OutTracks << OutOfWorld << " " ; } OutTracks << G4endl; - G4double OutOfWorld2 = StepAction->GetOutOfWorldTracks(i,j); + // G4double OutOfWorld2 = StepAction->GetOutOfWorldTracks(i,j); @@ -168,11 +164,11 @@ void FCALTBEventAction::EndOfEventAction(const G4Event* evt) SecndTracks << NSecondaries << G4endl; for(i=1; i<= NSecondaries ; i++){ - for(G4int j=1; j<11 ; j++) { + for(j=1; j<11 ; j++) { Secondary = StepAction->GetSecondaries(i,j); SecndTracks << Secondary << " " ; } SecndTracks << G4endl; - G4double Secondary2 = StepAction->GetSecondaries(i,j); + // G4double Secondary2 = StepAction->GetSecondaries(i,j); #ifdef G4ANALYSIS_USE FCALAnalysisManager* analysis = FCALAnalysisManager::getInstance(); @@ -205,19 +201,17 @@ void FCALTBEventAction::EndOfEventAction(const G4Event* evt) EdepFCAL.close(); +#ifdef G4ANALYSIS_USE FCALAnalysisManager* analysis = FCALAnalysisManager::getInstance(); analysis->getfhisto_3()->fill(EmEdep); analysis->getfhisto_4()->fill(HadEdep); +#endif G4cout<<"EmEdep is="<GetEdepFCAL("FCALEm") << " "; G4cout << StepAction->GetEdepFCAL("FCALHad") << G4endl; } - -#endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/lAr_calorimeter/src/FCALTBEventActionMessenger.cc b/examples/advanced/lAr_calorimeter/src/FCALTBEventActionMessenger.cc index de08a4d0ef..e895c4f435 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALTBEventActionMessenger.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALTBEventActionMessenger.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetup.cc b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetup.cc index 6a65180b6a..845721252f 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetup.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetup.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // Author: Mathieu Fontaine Rachid Mazini // fontaine@lps.umontreal.ca Rachid.Mazini@cern.ch // Language: C++ @@ -67,6 +68,8 @@ FCALTestbeamSetup::~FCALTestbeamSetup() {}; G4VPhysicalVolume * FCALTestbeamSetup::Construct() { + G4int i; + //----------------------------- // construction of materials //----------------------------- @@ -101,13 +104,13 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() new G4LogicalVolume(SolidScintS2, FCALMaterials->Material("Polystyrene"), "ScintS2Logical"); - G4VPhysicalVolume * PhysicalScintS1 = + // G4VPhysicalVolume * PhysicalScintS1 = new G4PVPlacement(0, G4ThreeVector(ScintS1_S3PosX, ScintS1_S3PosY, ScintS1PosZ), "ScintS1Physical",LogicalScintS1andS3,PhysicalMother,0,0); - G4VPhysicalVolume * PhysicalScintS3 = + // G4VPhysicalVolume * PhysicalScintS3 = new G4PVPlacement(0, G4ThreeVector(ScintS1_S3PosX, ScintS1_S3PosY, ScintS3PosZ), "ScintS3Physical",LogicalScintS1andS3,PhysicalMother,0,0); - G4VPhysicalVolume * PhysicalScintS2 = + // G4VPhysicalVolume * PhysicalScintS2 = new G4PVPlacement(0, G4ThreeVector(ScintS1_S3PosX, ScintS1_S3PosY, ScintS2PosZ), "ScintS2Physical", LogicalScintS2, PhysicalMother,0,0); @@ -122,9 +125,9 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() G4Box* SolidMWPC = new G4Box("MWPCSolid",MWPCSizeX,MWPCSizeY,MWPCSizeZ); G4LogicalVolume * LogicalMWPC = new G4LogicalVolume(SolidMWPC,FCALMaterials->Material("MWPCArCO2"),"MWPCLogical"); - for(G4int i=0; i<5; i++) + for(i=0; i<5; i++) { - G4VPhysicalVolume * PhysicalMWPC = + // G4VPhysicalVolume * PhysicalMWPC = new G4PVPlacement(0,G4ThreeVector(MWPCPosX,MWPCPosY,MWPCPosZ[i]), "MWPCPhysical", LogicalMWPC, PhysicalMother,0,i+1); } @@ -146,11 +149,12 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() HoleStartPhi, HoleDPhi); G4LogicalVolume * LogicalHole = new G4LogicalVolume(SolidHole, FCALMaterials->Material("Air"), "HoleLogical"); - G4VPhysicalVolume * PhysicalHoleScint = + // G4VPhysicalVolume * PhysicalHoleScint = new G4PVPlacement(0, G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHole, "HolePhysicalScint", LogicalHoleCntrScint, 0, 0); // Scintillator Hole counter placement - G4VPhysicalVolume * PhysicalHoleCntrScint = new G4PVPlacement(0, + // G4VPhysicalVolume * PhysicalHoleCntrScint = + new G4PVPlacement(0, G4ThreeVector(HoleCntrScintPosX, HoleCntrScintPosY, HoleCntrScintPosZ), "HoleCntrScintPhysical", LogicalHoleCntrScint, PhysicalMother, 0, 0); @@ -167,12 +171,12 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() HoleStartPhi, HoleDPhi); G4LogicalVolume * LogicalHoleAbs = new G4LogicalVolume(SolidHoleAbs, FCALMaterials->Material("Air"),"HoleAbsLogical"); - G4VPhysicalVolume * PhysicalHolePb = + // G4VPhysicalVolume * PhysicalHolePb = new G4PVPlacement(0, G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHoleAbs, "HolePbPhysical", LogicalHoleCntrPb, 0, 0); // Lead Placement - G4VPhysicalVolume * PhysicalHoleCntrPb = + // G4VPhysicalVolume * PhysicalHoleCntrPb = new G4PVPlacement(0, G4ThreeVector(HoleCntrPbPosX, HoleCntrPbPosY, HoleCntrPbPosZ), "HoleCntrPbPhysical", LogicalHoleCntrPb, PhysicalMother, 0, 0); @@ -180,10 +184,10 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() G4LogicalVolume * LogicalHoleCntrAl = new G4LogicalVolume(SolidHoleCntrAbsrb, FCALMaterials->Material("Aluminium"), "HoleCntrAlLoghical"); - G4VPhysicalVolume * PhysicalHoleAl = + // G4VPhysicalVolume * PhysicalHoleAl = new G4PVPlacement(0, G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHoleAbs, "HoleAlPhysical", LogicalHoleCntrAl, 0, 0); - G4VPhysicalVolume * PhysicalHoleCntrAl = + // G4VPhysicalVolume * PhysicalHoleCntrAl = new G4PVPlacement(0, G4ThreeVector(HoleCntrAlPosX, HoleCntrAlPosY, HoleCntrAlPosZ), "HoleCntrAlPhysical", LogicalHoleCntrAl, PhysicalMother, 0, 0); @@ -212,10 +216,10 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() LeadWallSlitSizeZ); G4LogicalVolume * LogicalSlitPb = new G4LogicalVolume(SolidSlitPb, FCALMaterials->Material("Air"), "SlitPbLogical"); - G4VPhysicalVolume * PhysicalSlitPb = + // G4VPhysicalVolume * PhysicalSlitPb = new G4PVPlacement(0, 0, LogicalSlitPb, "SlitPbPhysical", LogicalLeadWall, 0, 0); - G4VPhysicalVolume * PhysicalLeadWall = + // G4VPhysicalVolume * PhysicalLeadWall = new G4PVPlacement(0, G4ThreeVector(LeadWallPosX,LeadWallPosY,LeadWallPosZ), "LeadWallPhysical", LogicalLeadWall, PhysicalMother, 0, 0); @@ -236,10 +240,10 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() IronWallSlitSizeZ); G4LogicalVolume * LogicalSlitFe = new G4LogicalVolume(SolidSlitFe, FCALMaterials->Material("Air"), "SlitFeLogical"); - G4VPhysicalVolume * PhysicalSlitFe = + // G4VPhysicalVolume * PhysicalSlitFe = new G4PVPlacement(0, 0, LogicalSlitFe, "SlitFePhysical", LogicalIronWall, 0, 0); - G4VPhysicalVolume * PhysicalIronWall = + // G4VPhysicalVolume * PhysicalIronWall = new G4PVPlacement(0, G4ThreeVector(IronWallPosX,IronWallPosY,IronWallPosZ), "IronWallPhysical", LogicalIronWall, PhysicalMother, 0, 0); @@ -265,13 +269,13 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() for( i=0; i<(NBigScint+NSmallScint); i++) { if(iMaterial("ShieldingConcrete"), "ConcWallBLogical"); - G4VPhysicalVolume * PhysicalConcWallB = + // G4VPhysicalVolume * PhysicalConcWallB = new G4PVPlacement(0, G4ThreeVector(ConcWallPosX, ConcWallPosY, ConcWallBPosZ), "ConcWallBPhysical", LogicalConcWallB, PhysicalMother, 0, 0); @@ -335,7 +339,7 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() G4LogicalVolume * LogicalConcWallIns = new G4LogicalVolume(SolidConcWallIns, FCALMaterials->Material("Iron"), "LogicalConcWallIns"); - G4VPhysicalVolume * PhysicalConcWallIns = + // G4VPhysicalVolume * PhysicalConcWallIns = new G4PVPlacement(0, 0, "ConcWallInsPhysical", LogicalConcWallIns, PhysicalConcWallA, 0, 0); G4VisAttributes * ColorOfConcrete = new G4VisAttributes(G4Colour(0.,0.,0.)); @@ -351,7 +355,7 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() G4LogicalVolume * LogicalMuContr = new G4LogicalVolume(SolidMuContr, FCALMaterials->Material("Polystyrene"), "MuContrLogical"); - G4VPhysicalVolume * PhysicalMuContr = + // G4VPhysicalVolume * PhysicalMuContr = new G4PVPlacement(0, G4ThreeVector(MuCntrPosX, MuCntrPosY, MuCntrPosZ), "MuContrPhyiscal", LogicalMuContr, PhysicalMother, 0, 0); @@ -382,7 +386,7 @@ G4VPhysicalVolume * FCALTestbeamSetup::Construct() G4LogicalVolume * theCryostatVolumes = CryostatVolumes->Construct(); - G4VPhysicalVolume * PhysiCryostatVolumes = + // G4VPhysicalVolume * PhysiCryostatVolumes = new G4PVPlacement(CryostatRotationMatrix, G4ThreeVector(CryostatPosX,CryostatPosY,CryostatPosZ),"CryostatVolumes" , theCryostatVolumes, PhysicalMother, 0,0); diff --git a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc index 738318e485..8e99f72c2c 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALTestbeamSetupSD.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALTestbeamSetupSD.cc,v 1.5 2002/12/17 15:53:30 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALTestbeamSetupSD.cc,v 1.7 2003/12/09 15:30:37 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -60,19 +57,20 @@ FCALTestbeamSetupSD::~FCALTestbeamSetupSD() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void FCALTestbeamSetupSD::Initialize(G4HCofThisEvent*HCE) +void FCALTestbeamSetupSD::Initialize(G4HCofThisEvent*) { EBeamS1 = EBeamS2 = EBeamS3 = 0.; EHoleScint = EBeamHole = 0.; EBeamDead = 0; - for (G4int j =0 ; j<8 ; j++) { ETailVis[j] = 0.;}; - for ( j =0 ; j<7 ; j++) { ETailDep[j] = 0.;}; + G4int j; + for (j =0 ; j<8 ; j++) { ETailVis[j] = 0.;}; + for (j =0 ; j<7 ; j++) { ETailDep[j] = 0.;}; TailCatcherID = 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool FCALTestbeamSetupSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +G4bool FCALTestbeamSetupSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); @@ -125,7 +123,7 @@ G4bool FCALTestbeamSetupSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void FCALTestbeamSetupSD::EndOfEvent(G4HCofThisEvent* HCE) +void FCALTestbeamSetupSD::EndOfEvent(G4HCofThisEvent*) { G4cout << " Visisble Energy in S1 , S2 , S3 in (MeV)" << G4endl; G4cout << EBeamS1/MeV << " " << EBeamS2/MeV << " " << EBeamS3/MeV << " " << G4endl; @@ -137,7 +135,8 @@ void FCALTestbeamSetupSD::EndOfEvent(G4HCofThisEvent* HCE) G4cout << EBeamDead/MeV << G4endl; G4cout << " Visible Energy in Tail Catcher Scintillator" << G4endl; - for (G4int j=1; j<8 ; j++) {G4cout << ETailVis[j]/MeV << " " ;}; G4cout << G4endl; + G4int j; + for (j=1; j<8 ; j++) {G4cout << ETailVis[j]/MeV << " " ;}; G4cout << G4endl; G4cout << " Visible Energy in Tail Catcher Absorber" << G4endl; for (j=1; j<7 ; j++) {G4cout << ETailDep[j]/MeV << " " ;}; G4cout << G4endl; diff --git a/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc b/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc index 36d2a1032e..d3ad912374 100644 --- a/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc +++ b/examples/advanced/lAr_calorimeter/src/FCALVisManager.cc @@ -19,12 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. // -// $Id: FCALVisManager.cc,v 1.6 2003/05/26 12:51:18 pmendez Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: FCALVisManager.cc,v 1.8 2003/12/09 15:30:38 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -36,7 +33,9 @@ #include "FCALVisManager.hh" +// Supported drivers... +// Not needing external packages or libraries... #include "G4ASCIITree.hh" #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" @@ -46,27 +45,12 @@ #include "G4VRML1File.hh" #include "G4VRML2File.hh" - -// Supported drivers... +// Needing external packages or libraries... #ifdef G4VIS_USE_DAWN #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.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" @@ -95,15 +79,6 @@ #include "G4VRML2.hh" #endif -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - -#ifdef G4VIS_USE_RAYTRACER -#include "G4RayTracer.hh" -#endif - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... FCALVisManager::FCALVisManager () {} @@ -112,7 +87,7 @@ FCALVisManager::FCALVisManager () {} void FCALVisManager::RegisterGraphicsSystems () { - + // Graphics Systems not needing external packages or libraries... RegisterGraphicsSystem (new G4ASCIITree); RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); @@ -122,21 +97,12 @@ void FCALVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); - + // Graphics systems needing external packages or libraries... #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); @@ -165,15 +131,6 @@ void FCALVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4VRML2); #endif -#ifdef G4VIS_USE_VRMLFILE - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); -#endif - -#ifdef G4VIS_USE_RAYTRACER - RegisterGraphicsSystem (new G4RayTracer); -#endif - if (fVerbose > 0) { G4cout << "\nYou have successfully chosen to use the following graphics systems." diff --git a/examples/advanced/underground_physics/History b/examples/advanced/underground_physics/History new file mode 100644 index 0000000000..f3dce706a2 --- /dev/null +++ b/examples/advanced/underground_physics/History @@ -0,0 +1,23 @@ +------------------------------------------------------------------- +$Id: +------------------------------------------------------------------- + + ========================================================= + Geant4 - Underground Dark Matter experiment + ========================================================= + + Category History file + --------------------- + +02.12.2003 - G.Cosmo (DMX-V05-02-01) + Migrated to new hadronic processes for release 6.0. + Fixed compilation warnings. + +12.11.2003 - John Allison + Updated Vis Manager. + +08.11.2002 - A.Howard + Migrated to AIDA 3. + +28.11.2001 - A.Howard + Created, first version. diff --git a/examples/advanced/underground_physics/README b/examples/advanced/underground_physics/README index 3256e78254..f91f4e5735 100644 --- a/examples/advanced/underground_physics/README +++ b/examples/advanced/underground_physics/README @@ -153,9 +153,9 @@ Macros: Note: The following environment variables need to be set: G4RADIOACTIVEDATA : points to Radioactive Decay Data files -G4LEDATA : points to low energy data base - G4EMLOW0.5 +G4LEDATA : points to low energy data base G4LEVELGAMMADATA : points to PhotoEvaporation data -NeutronHPCrossSections : points to neutron data files G4NDL3.5 +NeutronHPCrossSections : points to neutron data files In addition if you require to use the full General Particle Source then the variable DMXENV_GPS_USE can be set. The DMX gun is still included in order to @@ -164,15 +164,19 @@ allow forward compatibility should the GPS change. ANALYSIS: -In order to use the AIDA 2.2 compliant analysis set the environment variable +In order to use the AIDA 3 compliant analysis set the environment variable G4ANALYSIS_USE before building. If a previous build exists a gmake clean has to be executed. -export G4ANALYSIS_USE=1 +setenv G4ANALYSIS_USE 1 -To link with anaphe, first execute the anaphe installation script: +To link with anaphe, first execute the anaphe installation script +(example for CERN installation): -source anaphe +source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.5/scripts/setupAnaphe.csh +setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.5/scripts + +[Have a look at the Anaphe web page, http://cern.ch/anaphe for more info] then gmake diff --git a/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh b/examples/advanced/underground_physics/include/DMXMinEkineCuts.hh index 9436588e38..03c55a70ce 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/advanced/underground_physics/include/DMXSpecialCuts.hh b/examples/advanced/underground_physics/include/DMXSpecialCuts.hh index 5c18a50de6..c4fceca516 100644 --- a/examples/advanced/underground_physics/include/DMXSpecialCuts.hh +++ b/examples/advanced/underground_physics/include/DMXSpecialCuts.hh @@ -93,7 +93,7 @@ class DMXSpecialCuts : public G4VProcess private: // hide assignment operator as private - DMXSpecialCuts& operator=(const DMXSpecialCuts& right){return *this;}; + DMXSpecialCuts& operator=(const DMXSpecialCuts&){return *this;}; }; diff --git a/examples/advanced/underground_physics/src/DMXAnalysisManager.cc b/examples/advanced/underground_physics/src/DMXAnalysisManager.cc index 301b31067b..baf179b380 100644 --- a/examples/advanced/underground_physics/src/DMXAnalysisManager.cc +++ b/examples/advanced/underground_physics/src/DMXAnalysisManager.cc @@ -247,8 +247,8 @@ void DMXAnalysisManager::PulseTimeFit() } G4cout << " Started Pulse Time Fit " << G4endl; - - for (int i = 0; i < 2 ; ++i) + int i; + for (i = 0; i < 2 ; ++i) G4cout << "\n Fit Parameters: " << i << ":\t" << exponFun->parameterNames()[i] << G4endl; // first fit to time histogram: diff --git a/examples/advanced/underground_physics/src/DMXDetectorRoom.icc b/examples/advanced/underground_physics/src/DMXDetectorRoom.icc index 52c0969d65..e55772869e 100644 --- a/examples/advanced/underground_physics/src/DMXDetectorRoom.icc +++ b/examples/advanced/underground_physics/src/DMXDetectorRoom.icc @@ -529,7 +529,7 @@ desk_Z = 0.5*(desk4Height - labHeight); G4double crateWidth = 60.0*cm; //Y - G4double crate_Y; + G4double crate_Y = 0.; G4RotationMatrix rotMatrixDesk4; rotMatrixDesk4.rotateZ(0.0*deg); diff --git a/examples/advanced/underground_physics/src/DMXMaxTimeCuts.cc b/examples/advanced/underground_physics/src/DMXMaxTimeCuts.cc index 035dd8b302..04dfff6c23 100644 --- a/examples/advanced/underground_physics/src/DMXMaxTimeCuts.cc +++ b/examples/advanced/underground_physics/src/DMXMaxTimeCuts.cc @@ -56,7 +56,8 @@ DMXMaxTimeCuts::DMXMaxTimeCuts(const G4String& aName) DMXMaxTimeCuts::~DMXMaxTimeCuts() {} -DMXMaxTimeCuts::DMXMaxTimeCuts(DMXMaxTimeCuts& right) +DMXMaxTimeCuts::DMXMaxTimeCuts(DMXMaxTimeCuts&) + : DMXSpecialCuts() {} diff --git a/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc b/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc index d14bb0bd34..694a570328 100644 --- a/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc +++ b/examples/advanced/underground_physics/src/DMXMinEkineCuts.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: DMXMinEkineCuts.cc,v 1.2 2002/06/18 10:17:30 ahoward Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DMXMinEkineCuts.cc,v 1.4 2003/12/02 16:59:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -53,10 +53,11 @@ DMXMinEkineCuts::DMXMinEkineCuts(const G4String& aName) DMXMinEkineCuts::~DMXMinEkineCuts() {} -DMXMinEkineCuts::DMXMinEkineCuts(DMXMinEkineCuts& right) +DMXMinEkineCuts::DMXMinEkineCuts(DMXMinEkineCuts&) + : DMXSpecialCuts() {} - + G4double DMXMinEkineCuts::PostStepGetPhysicalInteractionLength( const G4Track& aTrack, G4double , @@ -76,20 +77,20 @@ G4double DMXMinEkineCuts::PostStepGetPhysicalInteractionLength( //min kinetic energy G4double temp = DBL_MAX; G4double eKine = aParticle->GetKineticEnergy(); - G4Material* aMaterial = aTrack.GetMaterial(); + const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple(); G4double eMin = pUserLimits->GetUserMinEkine(aTrack); G4double rangeNow = DBL_MAX; - rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial); + rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,couple); if (eKine < eMin ) { proposedStep = 0.; } else { // charged particles only - G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,aMaterial); + G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,couple); temp = rangeNow - rangeMin; - if (proposedStep > temp) proposedStep = temp; + if (proposedStep > temp) proposedStep = temp; } } return proposedStep; diff --git a/examples/advanced/underground_physics/src/DMXPhysicsList.cc b/examples/advanced/underground_physics/src/DMXPhysicsList.cc index 23740c753d..6513d552e3 100644 --- a/examples/advanced/underground_physics/src/DMXPhysicsList.cc +++ b/examples/advanced/underground_physics/src/DMXPhysicsList.cc @@ -66,9 +66,6 @@ DMXPhysicsList::DMXPhysicsList() : G4VUserPhysicsList() cutForGamma = defaultCutValue; cutForElectron = 1.0*nanometer; cutForPositron = defaultCutValue; - cutForProton = defaultCutValue; - cutForAlpha = 1.0*nanometer; - cutForGenericIon = 1.0*nanometer; VerboseLevel = 1; OpVerbLevel = 0; @@ -655,11 +652,8 @@ void DMXPhysicsList::ConstructHad() theNeutronElasticProcess->RegisterMe(theElasticModel1); theElasticModel1->SetMinEnergy(19*MeV); theNeutronElasticProcess->RegisterMe(theElasticNeutron); - G4CrossSectionDataStore * theStore = - ((G4HadronElasticProcess*)theNeutronElasticProcess) - ->GetCrossSectionDataStore(); G4NeutronHPElasticData * theNeutronData = new G4NeutronHPElasticData; - theStore->AddDataSet(theNeutronData); + theNeutronElasticProcess->AddDataSet(theNeutronData); pmanager->AddDiscreteProcess(theNeutronElasticProcess); // inelastic scattering G4NeutronInelasticProcess* theInelasticProcess = @@ -670,12 +664,9 @@ void DMXPhysicsList::ConstructHad() G4NeutronHPInelastic * theLENeutronInelasticModel = new G4NeutronHPInelastic; theInelasticProcess->RegisterMe(theLENeutronInelasticModel); - G4CrossSectionDataStore * theStore1 = - ((G4HadronInelasticProcess*)theInelasticProcess) - ->GetCrossSectionDataStore(); G4NeutronHPInelasticData * theNeutronData1 = new G4NeutronHPInelasticData; - theStore1->AddDataSet(theNeutronData1); + theInelasticProcess->AddDataSet(theNeutronData1); pmanager->AddDiscreteProcess(theInelasticProcess); // capture G4HadronCaptureProcess* theCaptureProcess = @@ -685,11 +676,8 @@ void DMXPhysicsList::ConstructHad() theCaptureProcess->RegisterMe(theCaptureModel); G4NeutronHPCapture * theLENeutronCaptureModel = new G4NeutronHPCapture; theCaptureProcess->RegisterMe(theLENeutronCaptureModel); - G4CrossSectionDataStore * theStore3 = - ((G4HadronCaptureProcess*)theCaptureProcess)-> - GetCrossSectionDataStore(); G4NeutronHPCaptureData * theNeutronData3 = new G4NeutronHPCaptureData; - theStore3->AddDataSet(theNeutronData3); + theCaptureProcess->AddDataSet(theNeutronData3); pmanager->AddDiscreteProcess(theCaptureProcess); // G4ProcessManager* pmanager = G4Neutron::Neutron->GetProcessManager(); // pmanager->AddProcess(new G4UserSpecialCuts(),-1,-1,1); @@ -807,23 +795,14 @@ void DMXPhysicsList::SetCuts() //special for low energy physics G4double lowlimit=250*eV; - G4Gamma ::SetEnergyRange(lowlimit,100*GeV); - G4Electron::SetEnergyRange(lowlimit,100*GeV); - G4Positron::SetEnergyRange(lowlimit,100*GeV); - + G4ProductionCutsTable::GetProductionCutsTable()->SetEnergyRange(lowlimit,100.*GeV); + // 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+"); - // SetCutValue(cutForProton, "proton"); - // SetCutValue(cutForProton, "anti_proton"); - // SetCutValue(cutForAlpha, "alpha"); - // SetCutValue(cutForGenericIon, "GenericIon"); - - // SetCutValueForOthers(defaultCutValue); - if (verboseLevel>0) DumpCutValuesTable(); } diff --git a/examples/advanced/underground_physics/src/DMXPmtHit.cc b/examples/advanced/underground_physics/src/DMXPmtHit.cc index d6563254e1..4ab9c76c07 100644 --- a/examples/advanced/underground_physics/src/DMXPmtHit.cc +++ b/examples/advanced/underground_physics/src/DMXPmtHit.cc @@ -60,7 +60,7 @@ DMXPmtHit::DMXPmtHit() { DMXPmtHit::~DMXPmtHit() {;} -DMXPmtHit::DMXPmtHit(const DMXPmtHit& right) { +DMXPmtHit::DMXPmtHit(const DMXPmtHit& right) : G4VHit(right) { pos = right.pos; time = right.time; @@ -81,7 +81,8 @@ const DMXPmtHit& DMXPmtHit::operator=(const DMXPmtHit& right) { int DMXPmtHit::operator==(const DMXPmtHit& right) const { - return 0; + return (this==&right) ? 1 : 0; + } diff --git a/examples/advanced/underground_physics/src/DMXPmtSD.cc b/examples/advanced/underground_physics/src/DMXPmtSD.cc index dbc0a5b5ae..b9d8324d43 100644 --- a/examples/advanced/underground_physics/src/DMXPmtSD.cc +++ b/examples/advanced/underground_physics/src/DMXPmtSD.cc @@ -61,7 +61,7 @@ DMXPmtSD::~DMXPmtSD() {;} //////////////////////////////////////////////////////////////////////////// -void DMXPmtSD::Initialize(G4HCofThisEvent* HCE) { +void DMXPmtSD::Initialize(G4HCofThisEvent*) { pmtCollection = new DMXPmtHitsCollection (SensitiveDetectorName,collectionName[0]); @@ -75,7 +75,7 @@ void DMXPmtSD::Initialize(G4HCofThisEvent* HCE) { //////////////////////////////////////////////////////////////////////////// G4bool DMXPmtSD::ProcessHits - (G4Step* aStep, G4TouchableHistory* ROhist){ + (G4Step* aStep, G4TouchableHistory*){ // make known hit position DMXPmtHit* aPmtHit = new DMXPmtHit(); diff --git a/examples/advanced/underground_physics/src/DMXRunAction.cc b/examples/advanced/underground_physics/src/DMXRunAction.cc index c7ba3549e5..5f3336064e 100644 --- a/examples/advanced/underground_physics/src/DMXRunAction.cc +++ b/examples/advanced/underground_physics/src/DMXRunAction.cc @@ -100,7 +100,7 @@ void DMXRunAction::BeginOfRunAction(const G4Run* aRun) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void DMXRunAction::EndOfRunAction(const G4Run* aRun) +void DMXRunAction::EndOfRunAction(const G4Run*) { #ifdef G4ANALYSIS_USE diff --git a/examples/advanced/underground_physics/src/DMXScintHit.cc b/examples/advanced/underground_physics/src/DMXScintHit.cc index 83e8f6f87e..36821b9f30 100644 --- a/examples/advanced/underground_physics/src/DMXScintHit.cc +++ b/examples/advanced/underground_physics/src/DMXScintHit.cc @@ -64,6 +64,7 @@ DMXScintHit::~DMXScintHit() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... DMXScintHit::DMXScintHit(const DMXScintHit& right) + : G4VHit(right) { edep = right.edep; pos = right.pos; @@ -88,7 +89,7 @@ const DMXScintHit& DMXScintHit::operator=(const DMXScintHit& right) int DMXScintHit::operator==(const DMXScintHit& right) const { - return 0; + return (this==&right) ? 1 : 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/advanced/underground_physics/src/DMXScintSD.cc b/examples/advanced/underground_physics/src/DMXScintSD.cc index 441eccbee0..cc2ec83ef6 100644 --- a/examples/advanced/underground_physics/src/DMXScintSD.cc +++ b/examples/advanced/underground_physics/src/DMXScintSD.cc @@ -65,18 +65,17 @@ DMXScintSD::~DMXScintSD(){ } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void DMXScintSD::Initialize(G4HCofThisEvent* HCE) +void DMXScintSD::Initialize(G4HCofThisEvent*) { scintillatorCollection = new DMXScintHitsCollection (SensitiveDetectorName,collectionName[0]); HitID = -1; - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool DMXScintSD::ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist) +G4bool DMXScintSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); G4ParticleDefinition* particleType = aStep->GetTrack()->GetDefinition(); diff --git a/examples/advanced/underground_physics/src/DMXSpecialCuts.cc b/examples/advanced/underground_physics/src/DMXSpecialCuts.cc index 5d246dca08..80ac3508fe 100644 --- a/examples/advanced/underground_physics/src/DMXSpecialCuts.cc +++ b/examples/advanced/underground_physics/src/DMXSpecialCuts.cc @@ -69,9 +69,9 @@ G4VParticleChange* DMXSpecialCuts::PostStepDoIt( } G4double DMXSpecialCuts::PostStepGetPhysicalInteractionLength( - const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition + const G4Track&, + G4double, + G4ForceCondition* ) { return DBL_MAX; diff --git a/examples/advanced/underground_physics/src/DMXVisManager.cc b/examples/advanced/underground_physics/src/DMXVisManager.cc index 8ebf25e0da..76e6ad297f 100755 --- a/examples/advanced/underground_physics/src/DMXVisManager.cc +++ b/examples/advanced/underground_physics/src/DMXVisManager.cc @@ -58,11 +58,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -115,11 +110,6 @@ void DMXVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/advanced/underground_physics/stt.out b/examples/advanced/underground_physics/stt.out index ebf13076da..8d6d958151 100644 Binary files a/examples/advanced/underground_physics/stt.out and b/examples/advanced/underground_physics/stt.out differ diff --git a/examples/advanced/xray_fluorescence/G4History.macro b/examples/advanced/xray_fluorescence/G4History.macro index a2fd2daea9..1bad462408 100644 --- a/examples/advanced/xray_fluorescence/G4History.macro +++ b/examples/advanced/xray_fluorescence/G4History.macro @@ -1,2 +1,29 @@ /run/verbose 2 +/vis/scene/create +/vis/open OGLIX +/vis/sceneHandler/create OGLIX +/vis/sceneHandler/attach +/vis/viewer/create ! ! 600 +/vis/viewer/refresh +/vis/viewer/flush +/vis/viewer/refresh viewer-0 +/vis/viewer/update viewer-0 +/tracking/storeTrajectory 1 +/vis/viewer/set/viewpointThetaPhi 60 30 +/vis/viewer/refresh +/vis/scene/endOfEventAction accumulate +/run/beamOn 100 +/vis/scene/notifyHandlers +/vis/viewer/update +/run/beamOn 100 +/vis/scene/notifyHandlers +/vis/viewer/update +/run/beamOn 100 +/vis/scene/notifyHandlers +/vis/viewer/update +/run/beamOn 100 +/vis/scene/notifyHandlers +/vis/viewer/update /run/beamOn 1000 +/vis/scene/notifyHandlers +/vis/viewer/update diff --git a/examples/advanced/xray_fluorescence/GNUmakefile b/examples/advanced/xray_fluorescence/GNUmakefile index f10f0b054b..07245b1071 100644 --- a/examples/advanced/xray_fluorescence/GNUmakefile +++ b/examples/advanced/xray_fluorescence/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.13 2002/06/16 15:05:45 mantero Exp $ +# $Id: GNUmakefile,v 1.15 2003/12/04 11:01:47 guatelli Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -25,10 +25,11 @@ include $(G4INSTALL)/config/binmake.gmk # As the dependency is checked before "all" is reached, we need # to do some tricks here ... -CPPFLAGS += -I${LHCXX_REL_DIR}/include -I/afs/cern.ch/sw/contrib/AIDA/2.2/cpp -LOADLIBS += -L/usr/local/gcc-alt-2.95.2 - - +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` + LOADLIBS += `aida-config --lib` +endif visclean: rm -f g4*.prim g4*.eps g4*.wrl diff --git a/examples/advanced/xray_fluorescence/History b/examples/advanced/xray_fluorescence/History new file mode 100644 index 0000000000..7df5587570 --- /dev/null +++ b/examples/advanced/xray_fluorescence/History @@ -0,0 +1,9 @@ +4-12-2003 Susanna Guatelli:XrayFluo-V05-02-08 +Removed the compilation warnings, introduction of VRML viewer. +This tag referes to the tag examples-V05-02-07 prepared for Geant4 6.0 +release. + +4-12-2003 Susanna Guatelli: XrayFluo-V05-02-07 +Correspond the head found in CVS. It does not compile. + + diff --git a/examples/advanced/xray_fluorescence/README b/examples/advanced/xray_fluorescence/README index fc5e228ca2..e9d8693cc5 100644 --- a/examples/advanced/xray_fluorescence/README +++ b/examples/advanced/xray_fluorescence/README @@ -1,4 +1,4 @@ -$Id: README,v 1.4 2002/06/16 15:05:45 mantero Exp $ +$Id: README,v 1.9 2003/12/04 11:01:58 guatelli Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,13 +9,14 @@ $Id: README,v 1.4 2002/06/16 15:05:45 mantero Exp $ ----------------- XrayFluo is an advanced Geant4 example based on a realistic simulation of a test beam. -The aim of the test beam was to characterize the response function of an -HPGe detector used to measure fluorescence emissions from samples composed +The aim of the test beam was to characterize the response function of various +X-Rays detectors used to measure fluorescence emissions from samples composed of different materials irradiated with a monochromatic beam of photons. In this example the geometry of the detector is simplified: -one single pixel is used instead of an array of pixels. -The response function is tabulated for ten different values of incident -energy and stored in the file response.dat. +one single pixel is used, since the test beams has used monolithic detectors. +The response function is tabulated for different values of incident +energy and stored in the file response.dat and SILIresponse.dat. +At the moment, two kinds of detectors are available: HPGe and Si(Li). The sample, a simple box whose material can be selected, can be irradiated with different particles, with different spectra for the incident energy and with different shapes of the primary generator. @@ -39,51 +40,38 @@ _ the example includes the possibility to shoot particles according to a conditions. - histograming facilities are presently provided for the Linux environment - either by using the AIDA interfaces, or through the Anaphe/Lizard system. + by using the AIDA3 interfaces. The AIDA compliant version has not been tested by the developers and is 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. +------------------------------------------------------------------------- +----> 2.SET-UP + | + -example enviroment with the compiler 3.2 + -a standard Geant4 example GNUmakefile is provided | -#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" +setup with: | +compiler = gcc-3.2 +G4SYSTEM = linux-g++ | -#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++ +The following environment variables need to be set: | -#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++" +G4LEDATA: points to low energy data base - G4EMLOW2.2 | -# flag that we want to use analysis: -setenv G4ANALYSIS_USE 1 +setup for analysis with AIDA 3.0/Anaphe 5.0.5 for user with account | +on lxplus: + | +setenv G4ANALYSIS_USE 1 +source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.5/scripts/setupAnaphe.csh +setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.5/scripts/ | -# select analysis system: any AIDA 2.2 compliant system or Anaphe 3.6.5 - -# set up for AIDA 2.2 compliancy: -# Compilation and link flags to hook and AIDA compliant system -# are passed to the Geant4 GNUmakefile system by using the "aida-config" tool -# that should come with any AIDA compliant system. Examples are: -# setenv G4ANALYSIS_AIDA_CONFIG_CFLAGS `aida-config --include` -# setenv G4ANALYSIS_AIDA_CONFIG_LIBS `aida-config --libs` - -#set up Anaphe/Lizard for the gcc-2.95 compiler -setenv G4ANALYSIS_SYSTEM Lizard -setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/3.6.5/bin -source /afs/cern.ch/sw/lhcxx/share/LHCXX/3.6.5/install/sharedstart.csh - -#path to the lowEnergy data base - -setenv G4LEDATA /afs/cern.ch/sw/geant4/stt/dev1/src/G4EMLOW1.1 - -1. Run + Please take a look to the Anaphe/Lizard web page | + http://anaphe.web.cern.ch/anaphe + for more info +------------------------------------------------------------------------- To execute a sample simulation with visualisation of tracks reaching the detector run: @@ -92,33 +80,57 @@ XrayFluo execute command "/control/execute xxxxx.mac" -If the Lizard analysis options are set, histograming windows will -automatically stored in the corresponding files +If the analysis options are set, histograms will +automatically stored in the corresponding files (hbook or XML) 2. Detector description The telescope and detector geometry is defined in XrayFluoDetectorConstruction.cc -3. Physics processes +3. Detector peculiar properties are described in XrayFluoSiLiDetectorType and +XrayFluoHPGeDetectorType, both derived from XrayFluoVDetectorType. Other +detector types can be added, creating other implementations of +XrayFluoVDetectorType objects. +Detector type selection is made in XrayFluoDetectorConstruction, and can be +modified trough /apparate/detector command of the UI. +Other commands (apparate/sample /apparate/sampleGranularity +/apparate/GrainDiameter) are present to simulate sample granulosity: + grains are spheres, disposed in a compact cubic structure, i.e superipmposition +of planes of maximum density with ABC ABC path. The fundamental cell is of type +cubic with centered-faces. + +4. Physics processes The physics processes are in XrayFluoPhysicsList.cc The main process in this example is fluorescence emission from the sample. -4. Event generation +5. Event generation This is done using the G4ParticleGun with some modifications. See XrayFluoParticleGeneratorAction.cc -5. Analysis +6. Analysis -At present the analisys is provided by any AIDA-2.2 compliant analysis system. -In the example the Anaphe toolkit is used. +At present the analisys is provided by any AIDA-3.0 compliant analysis system. +In the example the Anaphe toolkit (version 5.0.5) is used. -To build and execute the example on platforms where there is no -implementation of the analysis system, the environment variables -must not be set. +By setting visPlotter variable in XrayFluoAnalysisManager to true, +it is possible to display the simulated output of the detector while +simulation is in progress. Graph window is updated every 1000 events. -The example provides also two Python files used to display and fit the -histograms with Lizard 1.3.x. +The example provides also a simple Python file used to display +histograms with Lizard 3.0.0.x +Various commads, with help, are available for Geant4 UI. +/analysis/outputFile and /analysis/fileType respectively for +changing the name and the type (xml or Hbook) of the file in wich results +are saved. +If these commends are used, to make the changes effective, another +command, /anaysis/update, must be executed. + +NOTE: if a file named xrayfluo.hbk (default name) is present, it +will be deleted, even if /analysis/outputFile command is issued +before any run. + +---- Last modified Susanna Guatelli 3/12/2003======= \ No newline at end of file diff --git a/examples/advanced/xray_fluorescence/SILIefficiency.dat b/examples/advanced/xray_fluorescence/SILIefficiency.dat new file mode 100755 index 0000000000..d20a5e5894 --- /dev/null +++ b/examples/advanced/xray_fluorescence/SILIefficiency.dat @@ -0,0 +1,1004 @@ + .010000 3.01263E-05 + .020000 6.99938E-08 + .030000 1.96689E-05 + .040000 0.000775454 + .050000 0.00681816 + .060000 0.0236024 + .070000 0.0586817 + .080000 0.0575149 + .090000 0.0765686 + .100000 0.103228 + .110000 0.130666 + .120000 0.154189 + .130000 0.183424 + .140000 0.218951 + .150000 0.251610 + .160000 0.285043 + .170000 0.315804 + .180000 0.344759 + .190000 0.384521 + .200000 0.421172 + .210000 0.454283 + .220000 0.484541 + .230000 0.510266 + .240000 0.532620 + .250000 0.552486 + .260000 0.571222 + .270000 0.589171 + .280000 0.608559 + .290000 0.365568 + .300000 0.389874 + .310000 0.412976 + .320000 0.435277 + .330000 0.456458 + .340000 0.476484 + .350000 0.495392 + .360000 0.513787 + .370000 0.531029 + .380000 0.547624 + .390000 0.559719 + .400000 0.514167 + .410000 0.529303 + .420000 0.543972 + .430000 0.559524 + .440000 0.574429 + .450000 0.588758 + .460000 0.602544 + .470000 0.615732 + .480000 0.628296 + .490000 0.640316 + .500000 0.651821 + .510000 0.662826 + .520000 0.673360 + .530000 0.683398 + .540000 0.693161 + .550000 0.561231 + .560000 0.573756 + .570000 0.585880 + .580000 0.597605 + .590000 0.608850 + .600000 0.619664 + .610000 0.630064 + .620000 0.640078 + .630000 0.649777 + .640000 0.659210 + .650000 0.668482 + .660000 0.677636 + .670000 0.686478 + .680000 0.694860 + .690000 0.702560 + .700000 0.710048 + .710000 0.717411 + .720000 0.724659 + .730000 0.731783 + .740000 0.738639 + .750000 0.745250 + .760000 0.751633 + .770000 0.757799 + .780000 0.763804 + .790000 0.769649 + .800000 0.775313 + .810000 0.780886 + .820000 0.786263 + .830000 0.791452 + .840000 0.796460 + .850000 0.801248 + .860000 0.805876 + .870000 0.810312 + .880000 0.814609 + .890000 0.818933 + .900000 0.823116 + .910000 0.827167 + .920000 0.831123 + .930000 0.834953 + .940000 0.838699 + .950000 0.842350 + .960000 0.845923 + .970000 0.849415 + .980000 0.852819 + .990000 0.856114 + 1.00000 0.859305 + 1.01000 0.862398 + 1.02000 0.865383 + 1.03000 0.868272 + 1.04000 0.871173 + 1.05000 0.874049 + 1.06000 0.876898 + 1.07000 0.879660 + 1.08000 0.882339 + 1.09000 0.884939 + 1.10000 0.887463 + 1.11000 0.889914 + 1.12000 0.892293 + 1.13000 0.894602 + 1.14000 0.896842 + 1.15000 0.899019 + 1.16000 0.901135 + 1.17000 0.903193 + 1.18000 0.905194 + 1.19000 0.907138 + 1.20000 0.909025 + 1.21000 0.910861 + 1.22000 0.912635 + 1.23000 0.914367 + 1.24000 0.916013 + 1.25000 0.917609 + 1.26000 0.919168 + 1.27000 0.920689 + 1.28000 0.922169 + 1.29000 0.923613 + 1.30000 0.925023 + 1.31000 0.926397 + 1.32000 0.927763 + 1.33000 0.929105 + 1.34000 0.930418 + 1.35000 0.931700 + 1.36000 0.932951 + 1.37000 0.934171 + 1.38000 0.935361 + 1.39000 0.936522 + 1.40000 0.937655 + 1.41000 0.938759 + 1.42000 0.939838 + 1.43000 0.940866 + 1.44000 0.941862 + 1.45000 0.942833 + 1.46000 0.943779 + 1.47000 0.944704 + 1.48000 0.945612 + 1.49000 0.946500 + 1.50000 0.947446 + 1.51000 0.948403 + 1.52000 0.949341 + 1.53000 0.950259 + 1.54000 0.951154 + 1.55000 0.952014 + 1.56000 0.923926 + 1.57000 0.925120 + 1.58000 0.926257 + 1.59000 0.927370 + 1.60000 0.928458 + 1.61000 0.929523 + 1.62000 0.930566 + 1.63000 0.931590 + 1.64000 0.932594 + 1.65000 0.933596 + 1.66000 0.934590 + 1.67000 0.935564 + 1.68000 0.936502 + 1.69000 0.937421 + 1.70000 0.938316 + 1.71000 0.939176 + 1.72000 0.940019 + 1.73000 0.940863 + 1.74000 0.941709 + 1.75000 0.942537 + 1.76000 0.943331 + 1.77000 0.944102 + 1.78000 0.944858 + 1.79000 0.945588 + 1.80000 0.946302 + 1.81000 0.947003 + 1.82000 0.947735 + 1.83000 0.948452 + 1.84000 0.949156 + 1.85000 0.949831 + 1.86000 0.950494 + 1.87000 0.951143 + 1.88000 0.951761 + 1.89000 0.952369 + 1.90000 0.952967 + 1.91000 0.953583 + 1.92000 0.954188 + 1.93000 0.954782 + 1.94000 0.955381 + 1.95000 0.955970 + 1.96000 0.956549 + 1.97000 0.957101 + 1.98000 0.957641 + 1.99000 0.958171 + 2.00000 0.958686 + 2.01000 0.959190 + 2.02000 0.959685 + 2.03000 0.960181 + 2.04000 0.960678 + 2.05000 0.961166 + 2.06000 0.961648 + 2.07000 0.962126 + 2.08000 0.962596 + 2.09000 0.963060 + 2.10000 0.963519 + 2.11000 0.963971 + 2.12000 0.964415 + 2.13000 0.964852 + 2.14000 0.965280 + 2.15000 0.965702 + 2.16000 0.966117 + 2.17000 0.966533 + 2.18000 0.966941 + 2.19000 0.967343 + 2.20000 0.967433 + 2.21000 0.967264 + 2.22000 0.967068 + 2.23000 0.966826 + 2.24000 0.965392 + 2.25000 0.963664 + 2.26000 0.961596 + 2.27000 0.960222 + 2.28000 0.960294 + 2.29000 0.960360 + 2.30000 0.960422 + 2.31000 0.959634 + 2.32000 0.958471 + 2.33000 0.957208 + 2.34000 0.955865 + 2.35000 0.955848 + 2.36000 0.955826 + 2.37000 0.955799 + 2.38000 0.955829 + 2.39000 0.956061 + 2.40000 0.956289 + 2.41000 0.956514 + 2.42000 0.956786 + 2.43000 0.957135 + 2.44000 0.957480 + 2.45000 0.957820 + 2.46000 0.958143 + 2.47000 0.958448 + 2.48000 0.958750 + 2.49000 0.959048 + 2.50000 0.959358 + 2.51000 0.959678 + 2.52000 0.959995 + 2.53000 0.960307 + 2.54000 0.960637 + 2.55000 0.960986 + 2.56000 0.961330 + 2.57000 0.961669 + 2.58000 0.962000 + 2.59000 0.962320 + 2.60000 0.962635 + 2.61000 0.962946 + 2.62000 0.963236 + 2.63000 0.963453 + 2.64000 0.963667 + 2.65000 0.963879 + 2.66000 0.964088 + 2.67000 0.964382 + 2.68000 0.964674 + 2.69000 0.964963 + 2.70000 0.965249 + 2.71000 0.965241 + 2.72000 0.965086 + 2.73000 0.964926 + 2.74000 0.964761 + 2.75000 0.964659 + 2.76000 0.964716 + 2.77000 0.964771 + 2.78000 0.964824 + 2.79000 0.964876 + 2.80000 0.965117 + 2.81000 0.965387 + 2.82000 0.965655 + 2.83000 0.965919 + 2.84000 0.966174 + 2.85000 0.966415 + 2.86000 0.966652 + 2.87000 0.966888 + 2.88000 0.967120 + 2.89000 0.967361 + 2.90000 0.967602 + 2.91000 0.967841 + 2.92000 0.968077 + 2.93000 0.968312 + 2.94000 0.968571 + 2.95000 0.968826 + 2.96000 0.969078 + 2.97000 0.969328 + 2.98000 0.969572 + 2.99000 0.969809 + 3.00000 0.970044 + 3.01000 0.970275 + 3.02000 0.970505 + 3.03000 0.970729 + 3.04000 0.970949 + 3.05000 0.971167 + 3.06000 0.971382 + 3.07000 0.971595 + 3.08000 0.971811 + 3.09000 0.972027 + 3.10000 0.972242 + 3.11000 0.972454 + 3.12000 0.972663 + 3.13000 0.972802 + 3.14000 0.972905 + 3.15000 0.973008 + 3.16000 0.973110 + 3.17000 0.973210 + 3.18000 0.973317 + 3.19000 0.973428 + 3.20000 0.973538 + 3.21000 0.973647 + 3.22000 0.973754 + 3.23000 0.973904 + 3.24000 0.974097 + 3.25000 0.974288 + 3.26000 0.974477 + 3.27000 0.974664 + 3.28000 0.974848 + 3.29000 0.975027 + 3.30000 0.975205 + 3.31000 0.975380 + 3.32000 0.975554 + 3.33000 0.975726 + 3.34000 0.975898 + 3.35000 0.976069 + 3.36000 0.976238 + 3.37000 0.976405 + 3.38000 0.976571 + 3.39000 0.976712 + 3.40000 0.976837 + 3.41000 0.976960 + 3.42000 0.977082 + 3.43000 0.977203 + 3.44000 0.977323 + 3.45000 0.977439 + 3.46000 0.977555 + 3.47000 0.977670 + 3.48000 0.977783 + 3.49000 0.977896 + 3.50000 0.978041 + 3.51000 0.978212 + 3.52000 0.978381 + 3.53000 0.978548 + 3.54000 0.978714 + 3.55000 0.978878 + 3.56000 0.979030 + 3.57000 0.979179 + 3.58000 0.979327 + 3.59000 0.979474 + 3.60000 0.979619 + 3.61000 0.979762 + 3.62000 0.979901 + 3.63000 0.980039 + 3.64000 0.980175 + 3.65000 0.980310 + 3.66000 0.980444 + 3.67000 0.980577 + 3.68000 0.980707 + 3.69000 0.980836 + 3.70000 0.980964 + 3.71000 0.981091 + 3.72000 0.981217 + 3.73000 0.981341 + 3.74000 0.981463 + 3.75000 0.981584 + 3.76000 0.981704 + 3.77000 0.981822 + 3.78000 0.981940 + 3.79000 0.982058 + 3.80000 0.982178 + 3.81000 0.982296 + 3.82000 0.982414 + 3.83000 0.982530 + 3.84000 0.982645 + 3.85000 0.982760 + 3.86000 0.982873 + 3.87000 0.982986 + 3.88000 0.983097 + 3.89000 0.983208 + 3.90000 0.983317 + 3.91000 0.983425 + 3.92000 0.983533 + 3.93000 0.983639 + 3.94000 0.983744 + 3.95000 0.983848 + 3.96000 0.983951 + 3.97000 0.984054 + 3.98000 0.984155 + 3.99000 0.984255 + 4.00000 0.984355 + 4.01000 0.984454 + 4.02000 0.984552 + 4.03000 0.984649 + 4.04000 0.984745 + 4.05000 0.984843 + 4.06000 0.984940 + 4.07000 0.985037 + 4.08000 0.985132 + 4.09000 0.985226 + 4.10000 0.985320 + 4.11000 0.985411 + 4.12000 0.985501 + 4.13000 0.985590 + 4.14000 0.985678 + 4.15000 0.985766 + 4.16000 0.985853 + 4.17000 0.985940 + 4.18000 0.986039 + 4.19000 0.986137 + 4.20000 0.986234 + 4.21000 0.986330 + 4.22000 0.986425 + 4.23000 0.986519 + 4.24000 0.986604 + 4.25000 0.986673 + 4.26000 0.986740 + 4.27000 0.986808 + 4.28000 0.986875 + 4.29000 0.986941 + 4.30000 0.987007 + 4.31000 0.987079 + 4.32000 0.987156 + 4.33000 0.987233 + 4.34000 0.987309 + 4.35000 0.987385 + 4.36000 0.987460 + 4.37000 0.987534 + 4.38000 0.987606 + 4.39000 0.987677 + 4.40000 0.987747 + 4.41000 0.987816 + 4.42000 0.987885 + 4.43000 0.987953 + 4.44000 0.988021 + 4.45000 0.988089 + 4.46000 0.988158 + 4.47000 0.988226 + 4.48000 0.988294 + 4.49000 0.988361 + 4.50000 0.988428 + 4.51000 0.988494 + 4.52000 0.988560 + 4.53000 0.988625 + 4.54000 0.988689 + 4.55000 0.988752 + 4.56000 0.988815 + 4.57000 0.988878 + 4.58000 0.988940 + 4.59000 0.989002 + 4.60000 0.989064 + 4.61000 0.989125 + 4.62000 0.989186 + 4.63000 0.989246 + 4.64000 0.989306 + 4.65000 0.989365 + 4.66000 0.989424 + 4.67000 0.989482 + 4.68000 0.989540 + 4.69000 0.989598 + 4.70000 0.989655 + 4.71000 0.989711 + 4.72000 0.989768 + 4.73000 0.989823 + 4.74000 0.989879 + 4.75000 0.989933 + 4.76000 0.989988 + 4.77000 0.990042 + 4.78000 0.990095 + 4.79000 0.990149 + 4.80000 0.990201 + 4.81000 0.990254 + 4.82000 0.990306 + 4.83000 0.990356 + 4.84000 0.990407 + 4.85000 0.990457 + 4.86000 0.990507 + 4.87000 0.990556 + 4.88000 0.990605 + 4.89000 0.990653 + 4.90000 0.990702 + 4.91000 0.990750 + 4.92000 0.990798 + 4.93000 0.990846 + 4.94000 0.990893 + 4.95000 0.990940 + 4.96000 0.990986 + 4.97000 0.991033 + 4.98000 0.991077 + 4.99000 0.991121 + 5.00000 0.991164 + 5.01000 0.991208 + 5.02000 0.991251 + 5.03000 0.991293 + 5.04000 0.991335 + 5.05000 0.991377 + 5.06000 0.991419 + 5.07000 0.991462 + 5.08000 0.991504 + 5.09000 0.991545 + 5.10000 0.991587 + 5.11000 0.991628 + 5.12000 0.991669 + 5.13000 0.991709 + 5.14000 0.991750 + 5.15000 0.991792 + 5.16000 0.991834 + 5.17000 0.991876 + 5.18000 0.991917 + 5.19000 0.991958 + 5.20000 0.991999 + 5.21000 0.992039 + 5.22000 0.992078 + 5.23000 0.992111 + 5.24000 0.992143 + 5.25000 0.992175 + 5.26000 0.992206 + 5.27000 0.992238 + 5.28000 0.992269 + 5.29000 0.992300 + 5.30000 0.992331 + 5.31000 0.992368 + 5.32000 0.992409 + 5.33000 0.992449 + 5.34000 0.992488 + 5.35000 0.992528 + 5.36000 0.992567 + 5.37000 0.992606 + 5.38000 0.992645 + 5.39000 0.992683 + 5.40000 0.992718 + 5.41000 0.992754 + 5.42000 0.992789 + 5.43000 0.992823 + 5.44000 0.992858 + 5.45000 0.992892 + 5.46000 0.992927 + 5.47000 0.992960 + 5.48000 0.992994 + 5.49000 0.993028 + 5.50000 0.993061 + 5.51000 0.993094 + 5.52000 0.993126 + 5.53000 0.993159 + 5.54000 0.993191 + 5.55000 0.993223 + 5.56000 0.993255 + 5.57000 0.993287 + 5.58000 0.993318 + 5.59000 0.993349 + 5.60000 0.993380 + 5.61000 0.993411 + 5.62000 0.993441 + 5.63000 0.993472 + 5.64000 0.993502 + 5.65000 0.993531 + 5.66000 0.993561 + 5.67000 0.993590 + 5.68000 0.993620 + 5.69000 0.993649 + 5.70000 0.993677 + 5.71000 0.993706 + 5.72000 0.993734 + 5.73000 0.993762 + 5.74000 0.993791 + 5.75000 0.993818 + 5.76000 0.993845 + 5.77000 0.993871 + 5.78000 0.993898 + 5.79000 0.993924 + 5.80000 0.993950 + 5.81000 0.993976 + 5.82000 0.994002 + 5.83000 0.994027 + 5.84000 0.994053 + 5.85000 0.994081 + 5.86000 0.994110 + 5.87000 0.994138 + 5.88000 0.994167 + 5.89000 0.994195 + 5.90000 0.994222 + 5.91000 0.994250 + 5.92000 0.994278 + 5.93000 0.994305 + 5.94000 0.994330 + 5.95000 0.994353 + 5.96000 0.994376 + 5.97000 0.994399 + 5.98000 0.994422 + 5.99000 0.994445 + 6.00000 0.994468 + 6.01000 0.994490 + 6.02000 0.994512 + 6.03000 0.994535 + 6.04000 0.994559 + 6.05000 0.994583 + 6.06000 0.994608 + 6.07000 0.994631 + 6.08000 0.994655 + 6.09000 0.994679 + 6.10000 0.994702 + 6.11000 0.994726 + 6.12000 0.994749 + 6.13000 0.994772 + 6.14000 0.994795 + 6.15000 0.994818 + 6.16000 0.994840 + 6.17000 0.994863 + 6.18000 0.994885 + 6.19000 0.994907 + 6.20000 0.994929 + 6.21000 0.994952 + 6.22000 0.994973 + 6.23000 0.994995 + 6.24000 0.995016 + 6.25000 0.995038 + 6.26000 0.995059 + 6.27000 0.995080 + 6.28000 0.995101 + 6.29000 0.995122 + 6.30000 0.995143 + 6.31000 0.995163 + 6.32000 0.995184 + 6.33000 0.995204 + 6.34000 0.995224 + 6.35000 0.995245 + 6.36000 0.995265 + 6.37000 0.995285 + 6.38000 0.995304 + 6.39000 0.995324 + 6.40000 0.995344 + 6.41000 0.995363 + 6.42000 0.995382 + 6.43000 0.995402 + 6.44000 0.995421 + 6.45000 0.995440 + 6.46000 0.995459 + 6.47000 0.995478 + 6.48000 0.995496 + 6.49000 0.995515 + 6.50000 0.995534 + 6.51000 0.995552 + 6.52000 0.995570 + 6.53000 0.995589 + 6.54000 0.995606 + 6.55000 0.995625 + 6.56000 0.995643 + 6.57000 0.995660 + 6.58000 0.995678 + 6.59000 0.995696 + 6.60000 0.995713 + 6.61000 0.995731 + 6.62000 0.995748 + 6.63000 0.995765 + 6.64000 0.995782 + 6.65000 0.995799 + 6.66000 0.995816 + 6.67000 0.995833 + 6.68000 0.995850 + 6.69000 0.995867 + 6.70000 0.995883 + 6.71000 0.995900 + 6.72000 0.995916 + 6.73000 0.995933 + 6.74000 0.995949 + 6.75000 0.995965 + 6.76000 0.995981 + 6.77000 0.995997 + 6.78000 0.996013 + 6.79000 0.996029 + 6.80000 0.996044 + 6.81000 0.996060 + 6.82000 0.996076 + 6.83000 0.996091 + 6.84000 0.996106 + 6.85000 0.996122 + 6.86000 0.996137 + 6.87000 0.996152 + 6.88000 0.996167 + 6.89000 0.996182 + 6.90000 0.996197 + 6.91000 0.996212 + 6.92000 0.996227 + 6.93000 0.996241 + 6.94000 0.996256 + 6.95000 0.996270 + 6.96000 0.996285 + 6.97000 0.996299 + 6.98000 0.996314 + 6.99000 0.996328 + 7.00000 0.996342 + 7.01000 0.996356 + 7.02000 0.996370 + 7.03000 0.996384 + 7.04000 0.996398 + 7.05000 0.996412 + 7.06000 0.996425 + 7.07000 0.996439 + 7.08000 0.996452 + 7.09000 0.996466 + 7.10000 0.996479 + 7.11000 0.996493 + 7.12000 0.996506 + 7.13000 0.996519 + 7.14000 0.996533 + 7.15000 0.996546 + 7.16000 0.996559 + 7.17000 0.996572 + 7.18000 0.996584 + 7.19000 0.996597 + 7.20000 0.996610 + 7.21000 0.996623 + 7.22000 0.996636 + 7.23000 0.996648 + 7.24000 0.996661 + 7.25000 0.996673 + 7.26000 0.996685 + 7.27000 0.996698 + 7.28000 0.996710 + 7.29000 0.996722 + 7.30000 0.996734 + 7.31000 0.996746 + 7.32000 0.996758 + 7.33000 0.996770 + 7.34000 0.996782 + 7.35000 0.996794 + 7.36000 0.996806 + 7.37000 0.996818 + 7.38000 0.996829 + 7.39000 0.996841 + 7.40000 0.996853 + 7.41000 0.996864 + 7.42000 0.996875 + 7.43000 0.996887 + 7.44000 0.996898 + 7.45000 0.996909 + 7.46000 0.996921 + 7.47000 0.996932 + 7.48000 0.996943 + 7.49000 0.996954 + 7.50000 0.996965 + 7.51000 0.996976 + 7.52000 0.996987 + 7.53000 0.996997 + 7.54000 0.997008 + 7.55000 0.997019 + 7.56000 0.997030 + 7.57000 0.997040 + 7.58000 0.997051 + 7.59000 0.997061 + 7.60000 0.997072 + 7.61000 0.997082 + 7.62000 0.997093 + 7.63000 0.997103 + 7.64000 0.997113 + 7.65000 0.997123 + 7.66000 0.997134 + 7.67000 0.997144 + 7.68000 0.997154 + 7.69000 0.997164 + 7.70000 0.997174 + 7.71000 0.997184 + 7.72000 0.997194 + 7.73000 0.997203 + 7.74000 0.997213 + 7.75000 0.997223 + 7.76000 0.997233 + 7.77000 0.997242 + 7.78000 0.997252 + 7.79000 0.997261 + 7.80000 0.997271 + 7.81000 0.997281 + 7.82000 0.997290 + 7.83000 0.997299 + 7.84000 0.997309 + 7.85000 0.997318 + 7.86000 0.997327 + 7.87000 0.997336 + 7.88000 0.997346 + 7.89000 0.997355 + 7.90000 0.997364 + 7.91000 0.997373 + 7.92000 0.997382 + 7.93000 0.997391 + 7.94000 0.997400 + 7.95000 0.997409 + 7.96000 0.997417 + 7.97000 0.997426 + 7.98000 0.997435 + 7.99000 0.997444 + 8.00000 0.997452 + 8.01000 0.997461 + 8.02000 0.997469 + 8.03000 0.997478 + 8.04000 0.997486 + 8.05000 0.997495 + 8.06000 0.997503 + 8.07000 0.997512 + 8.08000 0.997520 + 8.09000 0.997528 + 8.10000 0.997537 + 8.11000 0.997545 + 8.12000 0.997553 + 8.13000 0.997561 + 8.14000 0.997569 + 8.15000 0.997577 + 8.16000 0.997586 + 8.17000 0.997594 + 8.18000 0.997602 + 8.19000 0.997609 + 8.20000 0.997617 + 8.21000 0.997625 + 8.22000 0.997633 + 8.23000 0.997641 + 8.24000 0.997649 + 8.25000 0.997656 + 8.26000 0.997664 + 8.27000 0.997672 + 8.28000 0.997679 + 8.29000 0.997687 + 8.30000 0.997695 + 8.31000 0.997702 + 8.32000 0.997710 + 8.33000 0.997717 + 8.34000 0.997724 + 8.35000 0.997732 + 8.36000 0.997739 + 8.37000 0.997747 + 8.38000 0.997754 + 8.39000 0.997761 + 8.40000 0.997768 + 8.41000 0.997776 + 8.42000 0.997783 + 8.43000 0.997790 + 8.44000 0.997797 + 8.45000 0.997804 + 8.46000 0.997811 + 8.47000 0.997818 + 8.48000 0.997825 + 8.49000 0.997832 + 8.50000 0.997839 + 8.51000 0.997846 + 8.52000 0.997853 + 8.53000 0.997860 + 8.54000 0.997866 + 8.55000 0.997873 + 8.56000 0.997880 + 8.57000 0.997887 + 8.58000 0.997893 + 8.59000 0.997900 + 8.60000 0.997907 + 8.61000 0.997913 + 8.62000 0.997920 + 8.63000 0.997926 + 8.64000 0.997933 + 8.65000 0.997939 + 8.66000 0.997946 + 8.67000 0.997952 + 8.68000 0.997959 + 8.69000 0.997965 + 8.70000 0.997971 + 8.71000 0.997978 + 8.72000 0.997984 + 8.73000 0.997990 + 8.74000 0.997997 + 8.75000 0.998003 + 8.76000 0.998009 + 8.77000 0.998015 + 8.78000 0.998021 + 8.79000 0.998027 + 8.80000 0.998033 + 8.81000 0.998039 + 8.82000 0.998045 + 8.83000 0.998051 + 8.84000 0.998057 + 8.85000 0.998063 + 8.86000 0.998069 + 8.87000 0.998075 + 8.88000 0.998081 + 8.89000 0.998087 + 8.90000 0.998093 + 8.91000 0.998099 + 8.92000 0.998104 + 8.93000 0.998110 + 8.94000 0.998116 + 8.95000 0.998122 + 8.96000 0.998127 + 8.97000 0.998133 + 8.98000 0.998139 + 8.99000 0.998144 + 9.00000 0.998150 + 9.01000 0.998155 + 9.02000 0.998161 + 9.03000 0.998166 + 9.04000 0.998172 + 9.05000 0.998177 + 9.06000 0.998183 + 9.07000 0.998188 + 9.08000 0.998194 + 9.09000 0.998199 + 9.10000 0.998205 + 9.11000 0.998210 + 9.12000 0.998215 + 9.13000 0.998220 + 9.14000 0.998226 + 9.15000 0.998231 + 9.16000 0.998236 + 9.17000 0.998241 + 9.18000 0.998247 + 9.19000 0.998252 + 9.20000 0.998257 + 9.21000 0.998262 + 9.22000 0.998267 + 9.23000 0.998272 + 9.24000 0.998277 + 9.25000 0.998282 + 9.26000 0.998287 + 9.27000 0.998293 + 9.28000 0.998297 + 9.29000 0.998302 + 9.30000 0.998307 + 9.31000 0.998312 + 9.32000 0.998317 + 9.33000 0.998322 + 9.34000 0.998327 + 9.35000 0.998332 + 9.36000 0.998337 + 9.37000 0.998342 + 9.38000 0.998346 + 9.39000 0.998351 + 9.40000 0.998356 + 9.41000 0.998361 + 9.42000 0.998365 + 9.43000 0.998370 + 9.44000 0.998375 + 9.45000 0.998379 + 9.46000 0.998384 + 9.47000 0.998389 + 9.48000 0.998393 + 9.49000 0.998398 + 9.50000 0.998402 + 9.51000 0.998407 + 9.52000 0.998411 + 9.53000 0.998416 + 9.54000 0.998420 + 9.55000 0.998425 + 9.56000 0.998429 + 9.57000 0.998434 + 9.58000 0.998438 + 9.59000 0.998443 + 9.60000 0.998447 + 9.61000 0.998451 + 9.62000 0.998456 + 9.63000 0.998460 + 9.64000 0.998465 + 9.65000 0.998469 + 9.66000 0.998473 + 9.67000 0.998477 + 9.68000 0.998482 + 9.69000 0.998486 + 9.70000 0.998490 + 9.71000 0.998494 + 9.72000 0.998499 + 9.73000 0.998503 + 9.74000 0.998507 + 9.75000 0.998511 + 9.76000 0.998515 + 9.77000 0.998519 + 9.78000 0.998523 + 9.79000 0.998527 + 9.80000 0.998532 + 9.81000 0.998536 + 9.82000 0.998540 + 9.83000 0.998544 + 9.84000 0.998548 + 9.85000 0.998552 + 9.86000 0.998556 + 9.87000 0.998560 + 9.88000 0.998564 + 9.89000 0.998568 + 9.90000 0.998572 + 9.91000 0.998576 + 9.92000 0.998580 + 9.93000 0.998583 + 9.94000 0.998587 + 9.95000 0.998591 + 9.96000 0.998595 + 9.97000 0.998599 + 9.98000 0.998603 + 9.99000 0.998607 + 10.0000 0.998610 + -1 -1 + -2 -2 + + diff --git a/examples/advanced/xray_fluorescence/SILIresponse.dat b/examples/advanced/xray_fluorescence/SILIresponse.dat new file mode 100755 index 0000000000..ea0a89b741 --- /dev/null +++ b/examples/advanced/xray_fluorescence/SILIresponse.dat @@ -0,0 +1,3007 @@ + .180638 0.000204958 + .200708 0.000211217 + .220779 0.000206106 + .240850 0.000199036 + .260921 0.000194424 + .280992 0.000192388 + .301063 0.000191726 + .321133 0.000191562 + .341204 0.000191531 + .361275 0.000191526 + .381346 0.000191526 + .401417 0.000191526 + .421488 0.000191526 + .441558 0.000191526 + .461629 0.000191526 + .481700 0.000191526 + .501771 0.000191526 + .521842 0.000191526 + .541913 0.000191526 + .561983 0.000191525 + .582054 0.000191520 + .602125 0.000191497 + .622196 0.000191412 + .642267 0.000191164 + .662338 0.000190600 + .682409 0.000189588 + .702479 0.000188158 + .722550 0.000186551 + .742621 0.000185072 + .762692 0.000183829 + .782763 0.000182631 + .802833 0.000181145 + .822904 0.000179162 + .842975 0.000176678 + .863046 0.000173734 + .883117 0.000170297 + .903188 0.000166445 + .923259 0.000162599 + .943329 0.000159430 + .963400 0.000157544 + .983471 0.000157709 + 1.00354 0.000162143 + 1.02361 0.000176426 + 1.04368 0.000209903 + 1.06375 0.000271709 + 1.08383 0.000363171 + 1.10390 0.000473912 + 1.12397 0.000588121 + 1.14404 0.000696044 + 1.16411 0.000799030 + 1.18418 0.000905029 + 1.20425 0.00102188 + 1.22432 0.00115461 + 1.24439 0.00130635 + 1.26446 0.00147974 + 1.28453 0.00167818 + 1.30460 0.00191107 + 1.32468 0.00222814 + 1.34475 0.00288762 + 1.36482 0.00493061 + 1.38489 0.0114193 + 1.40496 0.0284881 + 1.42503 0.0629881 + 1.44510 0.114049 + 1.46517 0.164740 + 1.48524 0.188166 + 1.50531 0.169398 + 1.52538 0.120042 + 1.54545 0.0669208 + 1.56553 0.0293412 + 1.58560 0.0101165 + 1.60567 0.00274272 + 1.62574 0.000584686 + 1.64581 9.80021e-05 + 1.66588 1.29159e-05 + 1.68595 1.33840e-06 + 1.70602 1.09046e-07 + 1.72609 6.98562e-09 + 1.74616 3.51859e-10 + 1.76623 1.39345e-11 + 1.78630 0.00000 + 1.80638 0.00000 + 1.82645 0.00000 + 1.84652 0.00000 + 1.86659 0.00000 + 1.88666 0.00000 + 1.90673 0.00000 + 1.92680 0.00000 + 1.94687 0.00000 + 1.96694 0.00000 + 1.98701 0.00000 + 2.00708 0.00000 + 2.02715 0.00000 + 2.04723 0.00000 + 2.06730 0.00000 + 2.08737 0.00000 + 2.10744 0.00000 + 2.12751 0.00000 + 2.14758 0.00000 + 2.16765 0.00000 + 2.18772 0.00000 + 2.20779 0.00000 + 2.22786 0.00000 + 2.24793 0.00000 + 2.26800 0.00000 + 2.28808 0.00000 + 2.30815 0.00000 + 2.32822 0.00000 + 2.33825 0.00000 + 2.35832 0.00000 + 2.37839 0.00000 + 2.39847 0.00000 + 2.41854 0.00000 + 2.43861 0.00000 + 2.45868 0.00000 + 2.47875 0.00000 + 2.49882 0.00000 + 2.51889 0.00000 + 2.53896 0.00000 + 2.55903 0.00000 + 2.57910 0.00000 + 2.59917 0.00000 + 2.61924 0.00000 + 2.63932 0.00000 + 2.65939 0.00000 + 2.67946 0.00000 + 2.69953 0.00000 + 2.71960 0.00000 + 2.73967 0.00000 + 2.75974 0.00000 + 2.77981 0.00000 + 2.79988 0.00000 + 2.81995 0.00000 + 2.84002 0.00000 + 2.86009 0.00000 + 2.88017 0.00000 + 2.90024 0.00000 + 2.92031 0.00000 + 2.94038 0.00000 + 2.96045 0.00000 + 2.98052 0.00000 + 3.00059 0.00000 + 3.02066 0.00000 + 3.04073 0.00000 + 3.06080 0.00000 + 3.08087 0.00000 + 3.10094 0.00000 + 3.12102 0.00000 + 3.14109 0.00000 + 3.16116 0.00000 + 3.18123 0.00000 + 3.20130 0.00000 + 3.22137 0.00000 + 3.24144 0.00000 + 3.26151 0.00000 + 3.28158 0.00000 + 3.30165 0.00000 + 3.32172 0.00000 + 3.34179 0.00000 + 3.36187 0.00000 + 3.38194 0.00000 + 3.40201 0.00000 + 3.42208 0.00000 + 3.44215 0.00000 + 3.46222 0.00000 + 3.48229 0.00000 + 3.50236 0.00000 + 3.52243 0.00000 + 3.54250 0.00000 + 3.56257 0.00000 + 3.58264 0.00000 + 3.60272 0.00000 + 3.62279 0.00000 + 3.64286 0.00000 + 3.66293 0.00000 + 3.68300 0.00000 + 3.70307 0.00000 + 3.72314 0.00000 + 3.74321 0.00000 + 3.76328 0.00000 + 3.78335 0.00000 + 3.80342 0.00000 + 3.82349 0.00000 + 3.84357 0.00000 + 3.86364 0.00000 + 3.88371 0.00000 + 3.90378 0.00000 + 3.92385 0.00000 + 3.94392 0.00000 + 3.96399 0.00000 + 3.98406 0.00000 + 4.00413 0.00000 + 4.02420 0.00000 + 4.04427 0.00000 + 4.06434 0.00000 + 4.08442 0.00000 + 4.10449 0.00000 + 4.12456 0.00000 + 4.14463 0.00000 + 4.16470 0.00000 + 4.18477 0.00000 + 4.20484 0.00000 + 4.22491 0.00000 + 4.24498 0.00000 + 4.26505 0.00000 + 4.28512 0.00000 + 4.30519 0.00000 + 4.32527 0.00000 + 4.34534 0.00000 + 4.36541 0.00000 + 4.38548 0.00000 + 4.40555 0.00000 + 4.42562 0.00000 + 4.44569 0.00000 + 4.46576 0.00000 + 4.48583 0.00000 + 4.50590 0.00000 + 4.52597 0.00000 + 4.54604 0.00000 + 4.56612 0.00000 + 4.58619 0.00000 + 4.60626 0.00000 + 4.62633 0.00000 + 4.64640 0.00000 + 4.66647 0.00000 + 4.68654 0.00000 + 4.70661 0.00000 + 4.72668 0.00000 + 4.74675 0.00000 + 4.76682 0.00000 + 4.78689 0.00000 + 4.80697 0.00000 + 4.82704 0.00000 + 4.84711 0.00000 + 4.86718 0.00000 + 4.88725 0.00000 + 4.90732 0.00000 + 4.94746 0.00000 + 4.96753 0.00000 + 4.98760 0.00000 + 5.00767 0.00000 + 5.02774 0.00000 + 5.04782 0.00000 + 5.06789 0.00000 + 5.08796 0.00000 + 5.10803 0.00000 + 5.12810 0.00000 + 5.14817 0.00000 + 5.16824 0.00000 + 5.18831 0.00000 + 5.20838 0.00000 + 5.22845 0.00000 + 5.24852 0.00000 + 5.26859 0.00000 + 5.28867 0.00000 + 5.30874 0.00000 + 5.32881 0.00000 + 5.34888 0.00000 + 5.36895 0.00000 + 5.38902 0.00000 + 5.40909 0.00000 + 5.42916 0.00000 + 5.44923 0.00000 + 5.46930 0.00000 + 5.48937 0.00000 + 5.50944 0.00000 + 5.52952 0.00000 + 5.54959 0.00000 + 5.56966 0.00000 + 5.58973 0.00000 + 5.60980 0.00000 + 5.62987 0.00000 + 5.64994 0.00000 + 5.67001 0.00000 + 5.68005 0.00000 + 5.70012 0.00000 + 5.72019 0.00000 + 5.74026 0.00000 + 5.76033 0.00000 + 5.78040 0.00000 + 5.80047 0.00000 + 5.82054 0.00000 + 5.84061 0.00000 + 5.86068 0.00000 + 5.88076 0.00000 + 5.90083 0.00000 + 5.92090 0.00000 + 5.94097 0.00000 + 5.96104 0.00000 + 5.98111 0.00000 + 6.00118 0.00000 + 6.02125 0.00000 + 6.04132 0.00000 + 6.06139 0.00000 + 6.08146 0.00000 + 6.10153 0.00000 + 6.12161 0.00000 + 6.14168 0.00000 + 6.16175 0.00000 + 6.18182 0.00000 + 6.20189 0.00000 + 6.22196 0.00000 + 6.24203 0.00000 + 6.26210 0.00000 + 6.28217 0.00000 + 6.30224 0.00000 + 6.32231 0.00000 + 6.34238 0.00000 + 6.36246 0.00000 + 6.38253 0.00000 + 6.40260 0.00000 + 6.42267 0.00000 + 6.44274 0.00000 + 6.46281 0.00000 + 6.48288 0.00000 + 6.50295 0.00000 + 6.52302 0.00000 + 6.54309 0.00000 + 6.56316 0.00000 + 6.58323 0.00000 + 6.60331 0.00000 + 6.62338 0.00000 + 6.64345 0.00000 + 6.66352 0.00000 + 6.68359 0.00000 + 6.70366 0.00000 + 6.72373 0.00000 + 6.74380 0.00000 + 6.76387 0.00000 + 6.78394 0.00000 + 6.80401 0.00000 + 6.82408 0.00000 + 6.84416 0.00000 + 6.86423 0.00000 + 6.88430 0.00000 + 6.90437 0.00000 + 6.92444 0.00000 + 6.94451 0.00000 + 6.96458 0.00000 + 6.98465 0.00000 + 7.00472 0.00000 + 7.02479 0.00000 + 7.04486 0.00000 + 7.06494 0.00000 + 7.08501 0.00000 + 7.10508 0.00000 + 7.12515 0.00000 + 7.14522 0.00000 + 7.16529 0.00000 + 7.18536 0.00000 + 7.20543 0.00000 + 7.22550 0.00000 + 7.24557 0.00000 + 7.26564 0.00000 + 7.28571 0.00000 + 7.30578 0.00000 + 7.32586 0.00000 + 7.34593 0.00000 + 7.36600 0.00000 + 7.38607 0.00000 + 7.40614 0.00000 + 7.42621 0.00000 + 7.44628 0.00000 + 7.46635 0.00000 + 7.48642 0.00000 + 7.50649 0.00000 + 7.52656 0.00000 + 7.54663 0.00000 + 7.56671 0.00000 + 7.58678 0.00000 + 7.60685 0.00000 + 7.62692 0.00000 + 7.64699 0.00000 + 7.66706 0.00000 + 7.68713 0.00000 + 7.70720 0.00000 + 7.72727 0.00000 + 7.74734 0.00000 + 7.76741 0.00000 + 7.78748 0.00000 + 7.80756 0.00000 + 7.82763 0.00000 + 7.84770 0.00000 + 7.86777 0.00000 + 7.88784 0.00000 + 7.90791 0.00000 + 7.92798 0.00000 + 7.94805 0.00000 + 7.96812 0.00000 + 7.98819 0.00000 + 8.00826 0.00000 + 8.02833 0.00000 + 8.04841 0.00000 + 8.06848 0.00000 + 8.08855 0.00000 + 8.10862 0.00000 + 8.12869 0.00000 + 8.14876 0.00000 + 8.16883 0.00000 + 8.18890 0.00000 + 8.20897 0.00000 + 8.22904 0.00000 + 8.24911 0.00000 + 8.26919 0.00000 + 8.28926 0.00000 + 8.30933 0.00000 + 8.32940 0.00000 + 8.34947 0.00000 + 8.36954 0.00000 + 8.38961 0.00000 + 8.40968 0.00000 + 8.42975 0.00000 + 8.44982 0.00000 + 8.46989 0.00000 + 8.48996 0.00000 + 8.51004 0.00000 + 8.53011 0.00000 + 8.55018 0.00000 + 8.57025 0.00000 + 8.59032 0.00000 + 8.61039 0.00000 + 8.63046 0.00000 + 8.65053 0.00000 + 8.67060 0.00000 + 8.69067 0.00000 + 8.71074 0.00000 + 8.73081 0.00000 + 8.75088 0.00000 + 8.77096 0.00000 + 8.79103 0.00000 + 8.81110 0.00000 + 8.83117 0.00000 + 8.85124 0.00000 + 8.87131 0.00000 + 8.89138 0.00000 + 8.91145 0.00000 + 8.93152 0.00000 + 8.95159 0.00000 + 8.97166 0.00000 + 8.99174 0.00000 + 9.00177 0.00000 + 9.02184 0.00000 + 9.04191 0.00000 + 9.06198 0.00000 + 9.08205 0.00000 + 9.10212 0.00000 + 9.12220 0.00000 + 9.14227 0.00000 + 9.16234 0.00000 + 9.18241 0.00000 + 9.20248 0.00000 + 9.22255 0.00000 + 9.24262 0.00000 + 9.26269 0.00000 + 9.28276 0.00000 + 9.30283 0.00000 + 9.32290 0.00000 + 9.34297 0.00000 + 9.36305 0.00000 + 9.38312 0.00000 + 9.40319 0.00000 + 9.42326 0.00000 + 9.44333 0.00000 + 9.46340 0.00000 + 9.48347 0.00000 + 9.50354 0.00000 + 9.52361 0.00000 + 9.54368 0.00000 + 9.56375 0.00000 + 9.58383 0.00000 + 9.60390 0.00000 + 9.62397 0.00000 + 9.64404 0.00000 + 9.66411 0.00000 + 9.68418 0.00000 + 9.70425 0.00000 + 9.72432 0.00000 + 9.74439 0.00000 + 9.76446 0.00000 + 9.78453 0.00000 + 9.80460 0.00000 + 9.82467 0.00000 + 9.84475 0.00000 + 9.86482 0.00000 + 9.88489 0.00000 + 9.90496 0.00000 + 9.92503 0.00000 + 9.94510 0.00000 + 9.96517 0.00000 + 9.98524 0.00000 + 10.0053 0.00000 + 10.0254 0.00000 + 10.0455 0.00000 + 10.0655 0.00000 + 10.0856 0.00000 + 10.1057 0.00000 + 10.1257 0.00000 + 10.1458 0.00000 + 10.1659 0.00000 + 10.1860 0.00000 + -1 -1 + .180638 0.000134541 + .200708 0.000144511 + .220779 0.000144372 + .240850 0.000140267 + .260921 0.000136558 + .280992 0.000134514 + .301063 0.000133702 + .321133 0.000133457 + .341204 0.000133400 + .361275 0.000133389 + .381346 0.000133388 + .401417 0.000133388 + .421488 0.000133388 + .441558 0.000133388 + .461629 0.000133388 + .481700 0.000133388 + .501771 0.000133388 + .521842 0.000133388 + .541913 0.000133388 + .561983 0.000133388 + .582054 0.000133388 + .602125 0.000133388 + .622196 0.000133388 + .642267 0.000133388 + .662338 0.000133388 + .682409 0.000133388 + .702479 0.000133388 + .722550 0.000133388 + .742621 0.000133388 + .762692 0.000133388 + .782763 0.000133388 + .802833 0.000133387 + .822904 0.000133385 + .842975 0.000133372 + .863046 0.000133327 + .883117 0.000133195 + .903188 0.000132882 + .923259 0.000132292 + .943329 0.000131404 + .963400 0.000130327 + .983471 0.000129255 + 1.00354 0.000128316 + 1.02361 0.000127462 + 1.04368 0.000126511 + 1.06375 0.000125320 + 1.08383 0.000123905 + 1.10390 0.000122371 + 1.12397 0.000120746 + 1.14404 0.000118965 + 1.16411 0.000117223 + 1.18418 0.000116677 + 1.20425 0.000120175 + 1.22432 0.000132396 + 1.24439 0.000158412 + 1.26446 0.000200450 + 1.28453 0.000255046 + 1.30460 0.000313948 + 1.32468 0.000368896 + 1.34475 0.000416181 + 1.36482 0.000457437 + 1.38489 0.000497343 + 1.40496 0.000540879 + 1.42503 0.000591628 + 1.44510 0.000651359 + 1.46517 0.000720584 + 1.48524 0.000799473 + 1.50531 0.000888497 + 1.52538 0.000988920 + 1.54545 0.00110548 + 1.56553 0.00126439 + 1.58560 0.00160430 + 1.60567 0.00271109 + 1.62574 0.00646020 + 1.64581 0.0171812 + 1.66588 0.0413540 + 1.68595 0.0828213 + 1.70602 0.134337 + 1.72609 0.174913 + 1.74616 0.182232 + 1.76623 0.151723 + 1.78630 0.100892 + 1.80638 0.0535709 + 1.82645 0.0227095 + 1.84652 0.00768536 + 1.86659 0.00207628 + 1.88666 0.000447779 + 1.90673 7.70879e-05 + 1.92680 1.05940e-05 + 1.94687 1.16220e-06 + 1.96694 1.01775e-07 + 1.98701 7.11464e-09 + 2.00708 3.97016e-10 + 2.02715 1.76851e-11 + 2.04723 0.00000 + 2.06730 0.00000 + 2.08737 0.00000 + 2.10744 0.00000 + 2.12751 0.00000 + 2.14758 0.00000 + 2.16765 0.00000 + 2.18772 0.00000 + 2.20779 0.00000 + 2.22786 0.00000 + 2.24793 0.00000 + 2.26800 0.00000 + 2.28808 0.00000 + 2.30815 0.00000 + 2.32822 0.00000 + 2.33825 0.00000 + 2.35832 0.00000 + 2.37839 0.00000 + 2.39847 0.00000 + 2.41854 0.00000 + 2.43861 0.00000 + 2.45868 0.00000 + 2.47875 0.00000 + 2.49882 0.00000 + 2.51889 0.00000 + 2.53896 0.00000 + 2.55903 0.00000 + 2.57910 0.00000 + 2.59917 0.00000 + 2.61924 0.00000 + 2.63932 0.00000 + 2.65939 0.00000 + 2.67946 0.00000 + 2.69953 0.00000 + 2.71960 0.00000 + 2.73967 0.00000 + 2.75974 0.00000 + 2.77981 0.00000 + 2.79988 0.00000 + 2.81995 0.00000 + 2.84002 0.00000 + 2.86009 0.00000 + 2.88017 0.00000 + 2.90024 0.00000 + 2.92031 0.00000 + 2.94038 0.00000 + 2.96045 0.00000 + 2.98052 0.00000 + 3.00059 0.00000 + 3.02066 0.00000 + 3.04073 0.00000 + 3.06080 0.00000 + 3.08087 0.00000 + 3.10094 0.00000 + 3.12102 0.00000 + 3.14109 0.00000 + 3.16116 0.00000 + 3.18123 0.00000 + 3.20130 0.00000 + 3.22137 0.00000 + 3.24144 0.00000 + 3.26151 0.00000 + 3.28158 0.00000 + 3.30165 0.00000 + 3.32172 0.00000 + 3.34179 0.00000 + 3.36187 0.00000 + 3.38194 0.00000 + 3.40201 0.00000 + 3.42208 0.00000 + 3.44215 0.00000 + 3.46222 0.00000 + 3.48229 0.00000 + 3.50236 0.00000 + 3.52243 0.00000 + 3.54250 0.00000 + 3.56257 0.00000 + 3.58264 0.00000 + 3.60272 0.00000 + 3.62279 0.00000 + 3.64286 0.00000 + 3.66293 0.00000 + 3.68300 0.00000 + 3.70307 0.00000 + 3.72314 0.00000 + 3.74321 0.00000 + 3.76328 0.00000 + 3.78335 0.00000 + 3.80342 0.00000 + 3.82349 0.00000 + 3.84357 0.00000 + 3.86364 0.00000 + 3.88371 0.00000 + 3.90378 0.00000 + 3.92385 0.00000 + 3.94392 0.00000 + 3.96399 0.00000 + 3.98406 0.00000 + 4.00413 0.00000 + 4.02420 0.00000 + 4.04427 0.00000 + 4.06434 0.00000 + 4.08442 0.00000 + 4.10449 0.00000 + 4.12456 0.00000 + 4.14463 0.00000 + 4.16470 0.00000 + 4.18477 0.00000 + 4.20484 0.00000 + 4.22491 0.00000 + 4.24498 0.00000 + 4.26505 0.00000 + 4.28512 0.00000 + 4.30519 0.00000 + 4.32527 0.00000 + 4.34534 0.00000 + 4.36541 0.00000 + 4.38548 0.00000 + 4.40555 0.00000 + 4.42562 0.00000 + 4.44569 0.00000 + 4.46576 0.00000 + 4.48583 0.00000 + 4.50590 0.00000 + 4.52597 0.00000 + 4.54604 0.00000 + 4.56612 0.00000 + 4.58619 0.00000 + 4.60626 0.00000 + 4.62633 0.00000 + 4.64640 0.00000 + 4.66647 0.00000 + 4.68654 0.00000 + 4.70661 0.00000 + 4.72668 0.00000 + 4.74675 0.00000 + 4.76682 0.00000 + 4.78689 0.00000 + 4.80697 0.00000 + 4.82704 0.00000 + 4.84711 0.00000 + 4.86718 0.00000 + 4.88725 0.00000 + 4.90732 0.00000 + 4.94746 0.00000 + 4.96753 0.00000 + 4.98760 0.00000 + 5.00767 0.00000 + 5.02774 0.00000 + 5.04782 0.00000 + 5.06789 0.00000 + 5.08796 0.00000 + 5.10803 0.00000 + 5.12810 0.00000 + 5.14817 0.00000 + 5.16824 0.00000 + 5.18831 0.00000 + 5.20838 0.00000 + 5.22845 0.00000 + 5.24852 0.00000 + 5.26859 0.00000 + 5.28867 0.00000 + 5.30874 0.00000 + 5.32881 0.00000 + 5.34888 0.00000 + 5.36895 0.00000 + 5.38902 0.00000 + 5.40909 0.00000 + 5.42916 0.00000 + 5.44923 0.00000 + 5.46930 0.00000 + 5.48937 0.00000 + 5.50944 0.00000 + 5.52952 0.00000 + 5.54959 0.00000 + 5.56966 0.00000 + 5.58973 0.00000 + 5.60980 0.00000 + 5.62987 0.00000 + 5.64994 0.00000 + 5.67001 0.00000 + 5.68005 0.00000 + 5.70012 0.00000 + 5.72019 0.00000 + 5.74026 0.00000 + 5.76033 0.00000 + 5.78040 0.00000 + 5.80047 0.00000 + 5.82054 0.00000 + 5.84061 0.00000 + 5.86068 0.00000 + 5.88076 0.00000 + 5.90083 0.00000 + 5.92090 0.00000 + 5.94097 0.00000 + 5.96104 0.00000 + 5.98111 0.00000 + 6.00118 0.00000 + 6.02125 0.00000 + 6.04132 0.00000 + 6.06139 0.00000 + 6.08146 0.00000 + 6.10153 0.00000 + 6.12161 0.00000 + 6.14168 0.00000 + 6.16175 0.00000 + 6.18182 0.00000 + 6.20189 0.00000 + 6.22196 0.00000 + 6.24203 0.00000 + 6.26210 0.00000 + 6.28217 0.00000 + 6.30224 0.00000 + 6.32231 0.00000 + 6.34238 0.00000 + 6.36246 0.00000 + 6.38253 0.00000 + 6.40260 0.00000 + 6.42267 0.00000 + 6.44274 0.00000 + 6.46281 0.00000 + 6.48288 0.00000 + 6.50295 0.00000 + 6.52302 0.00000 + 6.54309 0.00000 + 6.56316 0.00000 + 6.58323 0.00000 + 6.60331 0.00000 + 6.62338 0.00000 + 6.64345 0.00000 + 6.66352 0.00000 + 6.68359 0.00000 + 6.70366 0.00000 + 6.72373 0.00000 + 6.74380 0.00000 + 6.76387 0.00000 + 6.78394 0.00000 + 6.80401 0.00000 + 6.82408 0.00000 + 6.84416 0.00000 + 6.86423 0.00000 + 6.88430 0.00000 + 6.90437 0.00000 + 6.92444 0.00000 + 6.94451 0.00000 + 6.96458 0.00000 + 6.98465 0.00000 + 7.00472 0.00000 + 7.02479 0.00000 + 7.04486 0.00000 + 7.06494 0.00000 + 7.08501 0.00000 + 7.10508 0.00000 + 7.12515 0.00000 + 7.14522 0.00000 + 7.16529 0.00000 + 7.18536 0.00000 + 7.20543 0.00000 + 7.22550 0.00000 + 7.24557 0.00000 + 7.26564 0.00000 + 7.28571 0.00000 + 7.30578 0.00000 + 7.32586 0.00000 + 7.34593 0.00000 + 7.36600 0.00000 + 7.38607 0.00000 + 7.40614 0.00000 + 7.42621 0.00000 + 7.44628 0.00000 + 7.46635 0.00000 + 7.48642 0.00000 + 7.50649 0.00000 + 7.52656 0.00000 + 7.54663 0.00000 + 7.56671 0.00000 + 7.58678 0.00000 + 7.60685 0.00000 + 7.62692 0.00000 + 7.64699 0.00000 + 7.66706 0.00000 + 7.68713 0.00000 + 7.70720 0.00000 + 7.72727 0.00000 + 7.74734 0.00000 + 7.76741 0.00000 + 7.78748 0.00000 + 7.80756 0.00000 + 7.82763 0.00000 + 7.84770 0.00000 + 7.86777 0.00000 + 7.88784 0.00000 + 7.90791 0.00000 + 7.92798 0.00000 + 7.94805 0.00000 + 7.96812 0.00000 + 7.98819 0.00000 + 8.00826 0.00000 + 8.02833 0.00000 + 8.04841 0.00000 + 8.06848 0.00000 + 8.08855 0.00000 + 8.10862 0.00000 + 8.12869 0.00000 + 8.14876 0.00000 + 8.16883 0.00000 + 8.18890 0.00000 + 8.20897 0.00000 + 8.22904 0.00000 + 8.24911 0.00000 + 8.26919 0.00000 + 8.28926 0.00000 + 8.30933 0.00000 + 8.32940 0.00000 + 8.34947 0.00000 + 8.36954 0.00000 + 8.38961 0.00000 + 8.40968 0.00000 + 8.42975 0.00000 + 8.44982 0.00000 + 8.46989 0.00000 + 8.48996 0.00000 + 8.51004 0.00000 + 8.53011 0.00000 + 8.55018 0.00000 + 8.57025 0.00000 + 8.59032 0.00000 + 8.61039 0.00000 + 8.63046 0.00000 + 8.65053 0.00000 + 8.67060 0.00000 + 8.69067 0.00000 + 8.71074 0.00000 + 8.73081 0.00000 + 8.75088 0.00000 + 8.77096 0.00000 + 8.79103 0.00000 + 8.81110 0.00000 + 8.83117 0.00000 + 8.85124 0.00000 + 8.87131 0.00000 + 8.89138 0.00000 + 8.91145 0.00000 + 8.93152 0.00000 + 8.95159 0.00000 + 8.97166 0.00000 + 8.99174 0.00000 + 9.00177 0.00000 + 9.02184 0.00000 + 9.04191 0.00000 + 9.06198 0.00000 + 9.08205 0.00000 + 9.10212 0.00000 + 9.12220 0.00000 + 9.14227 0.00000 + 9.16234 0.00000 + 9.18241 0.00000 + 9.20248 0.00000 + 9.22255 0.00000 + 9.24262 0.00000 + 9.26269 0.00000 + 9.28276 0.00000 + 9.30283 0.00000 + 9.32290 0.00000 + 9.34297 0.00000 + 9.36305 0.00000 + 9.38312 0.00000 + 9.40319 0.00000 + 9.42326 0.00000 + 9.44333 0.00000 + 9.46340 0.00000 + 9.48347 0.00000 + 9.50354 0.00000 + 9.52361 0.00000 + 9.54368 0.00000 + 9.56375 0.00000 + 9.58383 0.00000 + 9.60390 0.00000 + 9.62397 0.00000 + 9.64404 0.00000 + 9.66411 0.00000 + 9.68418 0.00000 + 9.70425 0.00000 + 9.72432 0.00000 + 9.74439 0.00000 + 9.76446 0.00000 + 9.78453 0.00000 + 9.80460 0.00000 + 9.82467 0.00000 + 9.84475 0.00000 + 9.86482 0.00000 + 9.88489 0.00000 + 9.90496 0.00000 + 9.92503 0.00000 + 9.94510 0.00000 + 9.96517 0.00000 + 9.98524 0.00000 + 10.0053 0.00000 + 10.0254 0.00000 + 10.0455 0.00000 + 10.0655 0.00000 + 10.0856 0.00000 + 10.1057 0.00000 + 10.1257 0.00000 + 10.1458 0.00000 + 10.1659 0.00000 + 10.1860 0.00000 + -1 -1 + .180638 0.000189329 + .200708 0.000210376 + .220779 0.000222239 + .240850 0.000227156 + .260921 0.000228018 + .280992 0.000227179 + .301063 0.000226034 + .321133 0.000225157 + .341204 0.000224640 + .361275 0.000224383 + .381346 0.000224260 + .401417 0.000224165 + .421488 0.000224004 + .441558 0.000223678 + .461629 0.000223078 + .481700 0.000222123 + .501771 0.000220817 + .521842 0.000219281 + .541913 0.000217730 + .561983 0.000216383 + .582054 0.000215379 + .602125 0.000214735 + .622196 0.000214380 + .642267 0.000214212 + .662338 0.000214144 + .682409 0.000214120 + .702479 0.000214113 + .722550 0.000214110 + .742621 0.000214107 + .762692 0.000214095 + .782763 0.000214054 + .802833 0.000213934 + .822904 0.000213632 + .842975 0.000212983 + .863046 0.000211779 + .883117 0.000209861 + .903188 0.000207237 + .923259 0.000204151 + .943329 0.000201034 + .963400 0.000198328 + .983471 0.000196309 + 1.00354 0.000195016 + 1.02361 0.000194303 + 1.04368 0.000193966 + 1.06375 0.000193829 + 1.08383 0.000193781 + 1.10390 0.000193767 + 1.12397 0.000193763 + 1.14404 0.000193762 + 1.16411 0.000193761 + 1.18418 0.000193758 + 1.20425 0.000193745 + 1.22432 0.000193701 + 1.24439 0.000193574 + 1.26446 0.000193254 + 1.28453 0.000192561 + 1.30460 0.000191271 + 1.32468 0.000189192 + 1.34475 0.000186281 + 1.36482 0.000182688 + 1.38489 0.000178693 + 1.40496 0.000174547 + 1.42503 0.000170375 + 1.44510 0.000166224 + 1.46517 0.000162202 + 1.48524 0.000158544 + 1.50531 0.000155534 + 1.52538 0.000153346 + 1.54545 0.000151961 + 1.56553 0.000151203 + 1.58560 0.000150846 + 1.60567 0.000150704 + 1.62574 0.000150668 + 1.64581 0.000150700 + 1.66588 0.000150840 + 1.68595 0.000151219 + 1.70602 0.000152147 + 1.72609 0.000154309 + 1.74616 0.000159185 + 1.76623 0.000169477 + 1.78630 0.000188789 + 1.80638 0.000220384 + 1.82645 0.000268529 + 1.84652 0.000348333 + 1.86659 0.000498807 + 1.88666 0.000770888 + 1.90673 0.00116735 + 1.92680 0.00157722 + 1.94687 0.00180378 + 1.96694 0.00170831 + 1.98701 0.00133383 + 2.00708 0.000866897 + 2.02715 0.000485227 + 2.04723 0.000256430 + 2.06730 0.000155114 + 2.08737 0.000129255 + 2.10744 0.000139895 + 2.12751 0.000164457 + 2.14758 0.000188489 + 2.16765 0.000201827 + 2.18772 0.000199311 + 2.20779 0.000181739 + 2.22786 0.000155057 + 2.24793 0.000127526 + 2.26800 0.000105770 + 2.28808 9.21815e-05 + 2.30815 8.53986e-05 + 2.32822 8.26791e-05 + 2.33825 8.21064e-05 + 2.35832 8.16455e-05 + 2.37839 8.15372e-05 + 2.39847 8.15167e-05 + 2.41854 8.15131e-05 + 2.43861 8.15131e-05 + 2.45868 8.15131e-05 + 2.47875 8.15133e-05 + 2.49882 8.15143e-05 + 2.51889 8.15199e-05 + 2.53896 8.15453e-05 + 2.55903 8.16462e-05 + 2.57910 8.19906e-05 + 2.59917 8.30015e-05 + 2.61924 8.55549e-05 + 2.63932 9.11077e-05 + 2.65939 0.000101514 + 2.67946 0.000118343 + 2.69953 0.000141890 + 2.71960 0.000170515 + 2.73967 0.000200978 + 2.75974 0.000229753 + 2.77981 0.000254482 + 2.79988 0.000274634 + 2.81995 0.000291121 + 2.84002 0.000305419 + 2.86009 0.000318839 + 2.88017 0.000332250 + 2.90024 0.000346126 + 2.92031 0.000360694 + 2.94038 0.000376054 + 2.96045 0.000392256 + 2.98052 0.000409337 + 3.00059 0.000427338 + 3.02066 0.000446310 + 3.04073 0.000466305 + 3.06080 0.000487376 + 3.08087 0.000509587 + 3.10094 0.000533021 + 3.12102 0.000557791 + 3.14109 0.000584010 + 3.16116 0.000611777 + 3.18123 0.000641155 + 3.20130 0.000672170 + 3.22137 0.000704822 + 3.24144 0.000739096 + 3.26151 0.000774987 + 3.28158 0.000812548 + 3.30165 0.000851929 + 3.32172 0.000893383 + 3.34179 0.000937220 + 3.36187 0.000983732 + 3.38194 0.00103313 + 3.40201 0.00108559 + 3.42208 0.00114139 + 3.44215 0.00120173 + 3.46222 0.00127167 + 3.48229 0.00137202 + 3.50236 0.00157949 + 3.52243 0.00213940 + 3.54250 0.00370941 + 3.56257 0.00772116 + 3.58264 0.0165884 + 3.60272 0.0331392 + 3.62279 0.0587313 + 3.64286 0.0906299 + 3.66293 0.120867 + 3.68300 0.138872 + 3.70307 0.137277 + 3.72314 0.116674 + 3.74321 0.0852338 + 3.76328 0.0535108 + 3.78335 0.0288688 + 3.80342 0.0133829 + 3.82349 0.00533100 + 3.84357 0.00182470 + 3.86364 0.000536657 + 3.88371 0.000135620 + 3.90378 2.94490e-05 + 3.92385 5.49461e-06 + 3.94392 8.80873e-07 + 3.96399 1.21344e-07 + 3.98406 1.43629e-08 + 4.00413 1.46079e-09 + 4.02420 1.27651e-10 + 4.04427 9.58532e-12 + 4.06434 0.00000 + 4.08442 0.00000 + 4.10449 0.00000 + 4.12456 0.00000 + 4.14463 0.00000 + 4.16470 0.00000 + 4.18477 0.00000 + 4.20484 0.00000 + 4.22491 0.00000 + 4.24498 0.00000 + 4.26505 0.00000 + 4.28512 0.00000 + 4.30519 0.00000 + 4.32527 0.00000 + 4.34534 0.00000 + 4.36541 0.00000 + 4.38548 0.00000 + 4.40555 0.00000 + 4.42562 0.00000 + 4.44569 0.00000 + 4.46576 0.00000 + 4.48583 0.00000 + 4.50590 0.00000 + 4.52597 0.00000 + 4.54604 0.00000 + 4.56612 0.00000 + 4.58619 0.00000 + 4.60626 0.00000 + 4.62633 0.00000 + 4.64640 0.00000 + 4.66647 0.00000 + 4.68654 0.00000 + 4.70661 0.00000 + 4.72668 0.00000 + 4.74675 0.00000 + 4.76682 0.00000 + 4.78689 0.00000 + 4.80697 0.00000 + 4.82704 0.00000 + 4.84711 0.00000 + 4.86718 0.00000 + 4.88725 0.00000 + 4.90732 0.00000 + 4.94746 0.00000 + 4.96753 0.00000 + 4.98760 0.00000 + 5.00767 0.00000 + 5.02774 0.00000 + 5.04782 0.00000 + 5.06789 0.00000 + 5.08796 0.00000 + 5.10803 0.00000 + 5.12810 0.00000 + 5.14817 0.00000 + 5.16824 0.00000 + 5.18831 0.00000 + 5.20838 0.00000 + 5.22845 0.00000 + 5.24852 0.00000 + 5.26859 0.00000 + 5.28867 0.00000 + 5.30874 0.00000 + 5.32881 0.00000 + 5.34888 0.00000 + 5.36895 0.00000 + 5.38902 0.00000 + 5.40909 0.00000 + 5.42916 0.00000 + 5.44923 0.00000 + 5.46930 0.00000 + 5.48937 0.00000 + 5.50944 0.00000 + 5.52952 0.00000 + 5.54959 0.00000 + 5.56966 0.00000 + 5.58973 0.00000 + 5.60980 0.00000 + 5.62987 0.00000 + 5.64994 0.00000 + 5.67001 0.00000 + 5.68005 0.00000 + 5.70012 0.00000 + 5.72019 0.00000 + 5.74026 0.00000 + 5.76033 0.00000 + 5.78040 0.00000 + 5.80047 0.00000 + 5.82054 0.00000 + 5.84061 0.00000 + 5.86068 0.00000 + 5.88076 0.00000 + 5.90083 0.00000 + 5.92090 0.00000 + 5.94097 0.00000 + 5.96104 0.00000 + 5.98111 0.00000 + 6.00118 0.00000 + 6.02125 0.00000 + 6.04132 0.00000 + 6.06139 0.00000 + 6.08146 0.00000 + 6.10153 0.00000 + 6.12161 0.00000 + 6.14168 0.00000 + 6.16175 0.00000 + 6.18182 0.00000 + 6.20189 0.00000 + 6.22196 0.00000 + 6.24203 0.00000 + 6.26210 0.00000 + 6.28217 0.00000 + 6.30224 0.00000 + 6.32231 0.00000 + 6.34238 0.00000 + 6.36246 0.00000 + 6.38253 0.00000 + 6.40260 0.00000 + 6.42267 0.00000 + 6.44274 0.00000 + 6.46281 0.00000 + 6.48288 0.00000 + 6.50295 0.00000 + 6.52302 0.00000 + 6.54309 0.00000 + 6.56316 0.00000 + 6.58323 0.00000 + 6.60331 0.00000 + 6.62338 0.00000 + 6.64345 0.00000 + 6.66352 0.00000 + 6.68359 0.00000 + 6.70366 0.00000 + 6.72373 0.00000 + 6.74380 0.00000 + 6.76387 0.00000 + 6.78394 0.00000 + 6.80401 0.00000 + 6.82408 0.00000 + 6.84416 0.00000 + 6.86423 0.00000 + 6.88430 0.00000 + 6.90437 0.00000 + 6.92444 0.00000 + 6.94451 0.00000 + 6.96458 0.00000 + 6.98465 0.00000 + 7.00472 0.00000 + 7.02479 0.00000 + 7.04486 0.00000 + 7.06494 0.00000 + 7.08501 0.00000 + 7.10508 0.00000 + 7.12515 0.00000 + 7.14522 0.00000 + 7.16529 0.00000 + 7.18536 0.00000 + 7.20543 0.00000 + 7.22550 0.00000 + 7.24557 0.00000 + 7.26564 0.00000 + 7.28571 0.00000 + 7.30578 0.00000 + 7.32586 0.00000 + 7.34593 0.00000 + 7.36600 0.00000 + 7.38607 0.00000 + 7.40614 0.00000 + 7.42621 0.00000 + 7.44628 0.00000 + 7.46635 0.00000 + 7.48642 0.00000 + 7.50649 0.00000 + 7.52656 0.00000 + 7.54663 0.00000 + 7.56671 0.00000 + 7.58678 0.00000 + 7.60685 0.00000 + 7.62692 0.00000 + 7.64699 0.00000 + 7.66706 0.00000 + 7.68713 0.00000 + 7.70720 0.00000 + 7.72727 0.00000 + 7.74734 0.00000 + 7.76741 0.00000 + 7.78748 0.00000 + 7.80756 0.00000 + 7.82763 0.00000 + 7.84770 0.00000 + 7.86777 0.00000 + 7.88784 0.00000 + 7.90791 0.00000 + 7.92798 0.00000 + 7.94805 0.00000 + 7.96812 0.00000 + 7.98819 0.00000 + 8.00826 0.00000 + 8.02833 0.00000 + 8.04841 0.00000 + 8.06848 0.00000 + 8.08855 0.00000 + 8.10862 0.00000 + 8.12869 0.00000 + 8.14876 0.00000 + 8.16883 0.00000 + 8.18890 0.00000 + 8.20897 0.00000 + 8.22904 0.00000 + 8.24911 0.00000 + 8.26919 0.00000 + 8.28926 0.00000 + 8.30933 0.00000 + 8.32940 0.00000 + 8.34947 0.00000 + 8.36954 0.00000 + 8.38961 0.00000 + 8.40968 0.00000 + 8.42975 0.00000 + 8.44982 0.00000 + 8.46989 0.00000 + 8.48996 0.00000 + 8.51004 0.00000 + 8.53011 0.00000 + 8.55018 0.00000 + 8.57025 0.00000 + 8.59032 0.00000 + 8.61039 0.00000 + 8.63046 0.00000 + 8.65053 0.00000 + 8.67060 0.00000 + 8.69067 0.00000 + 8.71074 0.00000 + 8.73081 0.00000 + 8.75088 0.00000 + 8.77096 0.00000 + 8.79103 0.00000 + 8.81110 0.00000 + 8.83117 0.00000 + 8.85124 0.00000 + 8.87131 0.00000 + 8.89138 0.00000 + 8.91145 0.00000 + 8.93152 0.00000 + 8.95159 0.00000 + 8.97166 0.00000 + 8.99174 0.00000 + 9.00177 0.00000 + 9.02184 0.00000 + 9.04191 0.00000 + 9.06198 0.00000 + 9.08205 0.00000 + 9.10212 0.00000 + 9.12220 0.00000 + 9.14227 0.00000 + 9.16234 0.00000 + 9.18241 0.00000 + 9.20248 0.00000 + 9.22255 0.00000 + 9.24262 0.00000 + 9.26269 0.00000 + 9.28276 0.00000 + 9.30283 0.00000 + 9.32290 0.00000 + 9.34297 0.00000 + 9.36305 0.00000 + 9.38312 0.00000 + 9.40319 0.00000 + 9.42326 0.00000 + 9.44333 0.00000 + 9.46340 0.00000 + 9.48347 0.00000 + 9.50354 0.00000 + 9.52361 0.00000 + 9.54368 0.00000 + 9.56375 0.00000 + 9.58383 0.00000 + 9.60390 0.00000 + 9.62397 0.00000 + 9.64404 0.00000 + 9.66411 0.00000 + 9.68418 0.00000 + 9.70425 0.00000 + 9.72432 0.00000 + 9.74439 0.00000 + 9.76446 0.00000 + 9.78453 0.00000 + 9.80460 0.00000 + 9.82467 0.00000 + 9.84475 0.00000 + 9.86482 0.00000 + 9.88489 0.00000 + 9.90496 0.00000 + 9.92503 0.00000 + 9.94510 0.00000 + 9.96517 0.00000 + 9.98524 0.00000 + 10.0053 0.00000 + 10.0254 0.00000 + 10.0455 0.00000 + 10.0655 0.00000 + 10.0856 0.00000 + 10.1057 0.00000 + 10.1257 0.00000 + 10.1458 0.00000 + 10.1659 0.00000 + 10.1860 0.00000 + -1 -1 + .180638 0.000115811 + .200708 0.000131003 + .220779 0.000141199 + .240850 0.000147142 + .260921 0.000150145 + .280992 0.000151455 + .301063 0.000151947 + .321133 0.000152104 + .341204 0.000152146 + .361275 0.000152156 + .381346 0.000152157 + .401417 0.000152157 + .421488 0.000152157 + .441558 0.000152157 + .461629 0.000152157 + .481700 0.000152157 + .501771 0.000152157 + .521842 0.000152157 + .541913 0.000152157 + .561983 0.000152157 + .582054 0.000152157 + .602125 0.000152157 + .622196 0.000152157 + .642267 0.000152157 + .662338 0.000152157 + .682409 0.000152157 + .702479 0.000152157 + .722550 0.000152157 + .742621 0.000152157 + .762692 0.000152157 + .782763 0.000152157 + .802833 0.000152157 + .822904 0.000152157 + .842975 0.000152157 + .863046 0.000152157 + .883117 0.000152155 + .903188 0.000152149 + .923259 0.000152132 + .943329 0.000152087 + .963400 0.000151983 + .983471 0.000151773 + 1.00354 0.000151402 + 1.02361 0.000150830 + 1.04368 0.000150057 + 1.06375 0.000149143 + 1.08383 0.000148198 + 1.10390 0.000147343 + 1.12397 0.000146665 + 1.14404 0.000146193 + 1.16411 0.000145902 + 1.18418 0.000145733 + 1.20425 0.000145615 + 1.22432 0.000145477 + 1.24439 0.000145247 + 1.26446 0.000144855 + 1.28453 0.000144255 + 1.30460 0.000143445 + 1.32468 0.000142488 + 1.34475 0.000141498 + 1.36482 0.000140602 + 1.38489 0.000139892 + 1.40496 0.000139400 + 1.42503 0.000139101 + 1.44510 0.000138943 + 1.46517 0.000138869 + 1.48524 0.000138839 + 1.50531 0.000138828 + 1.52538 0.000138825 + 1.54545 0.000138823 + 1.56553 0.000138819 + 1.58560 0.000138808 + 1.60567 0.000138775 + 1.62574 0.000138690 + 1.64581 0.000138505 + 1.66588 0.000138157 + 1.68595 0.000137602 + 1.70602 0.000136862 + 1.72609 0.000136068 + 1.74616 0.000135448 + 1.76623 0.000135237 + 1.78630 0.000135554 + 1.80638 0.000136326 + 1.82645 0.000137322 + 1.84652 0.000138247 + 1.86659 0.000138830 + 1.88666 0.000138814 + 1.90673 0.000137864 + 1.92680 0.000135496 + 1.94687 0.000131124 + 1.96694 0.000124310 + 1.98701 0.000115116 + 2.00708 0.000104388 + 2.02715 9.38178e-05 + 2.04723 8.57579e-05 + 2.06730 8.28148e-05 + 2.08737 8.69837e-05 + 2.10744 9.82550e-05 + 2.12751 0.000113513 + 2.14758 0.000127132 + 2.16765 0.000133405 + 2.18772 0.000129163 + 2.20779 0.000114991 + 2.22786 9.48076e-05 + 2.24793 7.40353e-05 + 2.26800 5.70727e-05 + 2.28808 4.56325e-05 + 2.30815 3.90153e-05 + 2.32822 3.55672e-05 + 2.33825 3.40542e-05 + 2.35832 3.30808e-05 + 2.37839 3.26555e-05 + 2.39847 3.24782e-05 + 2.41854 3.24094e-05 + 2.43861 3.23860e-05 + 2.45868 3.23801e-05 + 2.47875 3.23870e-05 + 2.49882 3.24335e-05 + 2.51889 3.26376e-05 + 2.53896 3.33687e-05 + 2.55903 3.55291e-05 + 2.57910 4.08139e-05 + 2.59917 5.16722e-05 + 2.61924 7.11803e-05 + 2.63932 0.000104380 + 2.65939 0.000162633 + 2.67946 0.000267469 + 2.69953 0.000442742 + 2.71960 0.000687849 + 2.73967 0.000949156 + 2.75974 0.00112762 + 2.77981 0.00113702 + 2.79988 0.000968673 + 2.81995 0.000699099 + 2.84002 0.000432949 + 2.86009 0.000238431 + 2.88017 0.000127222 + 2.90024 7.63249e-05 + 2.92031 5.74993e-05 + 2.94038 5.18699e-05 + 2.96045 5.05264e-05 + 2.98052 5.02818e-05 + 3.00059 5.02441e-05 + 3.02066 5.02528e-05 + 3.04073 5.02552e-05 + 3.06080 5.02558e-05 + 3.08087 5.02559e-05 + 3.10094 5.02562e-05 + 3.12102 5.02574e-05 + 3.14109 5.02628e-05 + 3.16116 5.02841e-05 + 3.18123 5.03576e-05 + 3.20130 5.05792e-05 + 3.22137 5.11650e-05 + 3.24144 5.25215e-05 + 3.26151 5.52749e-05 + 3.28158 6.01772e-05 + 3.30165 6.78415e-05 + 3.32172 7.83824e-05 + 3.34179 9.11734e-05 + 3.36187 0.000104939 + 3.38194 0.000118198 + 3.40201 0.000129817 + 3.42208 0.000139344 + 3.44215 0.000146975 + 3.46222 0.000153269 + 3.48229 0.000158829 + 3.50236 0.000164116 + 3.52243 0.000169410 + 3.54250 0.000174856 + 3.56257 0.000180517 + 3.58264 0.000186424 + 3.60272 0.000192588 + 3.62279 0.000199018 + 3.64286 0.000205720 + 3.66293 0.000212702 + 3.68300 0.000219975 + 3.70307 0.000227559 + 3.72314 0.000235479 + 3.74321 0.000243757 + 3.76328 0.000252413 + 3.78335 0.000261459 + 3.80342 0.000270905 + 3.82349 0.000280763 + 3.84357 0.000291050 + 3.86364 0.000301783 + 3.88371 0.000312984 + 3.90378 0.000324677 + 3.92385 0.000336899 + 3.94392 0.000349694 + 3.96399 0.000363109 + 3.98406 0.000377183 + 4.00413 0.000391937 + 4.02420 0.000407372 + 4.04427 0.000423470 + 4.06434 0.000440203 + 4.08442 0.000457548 + 4.10449 0.000475510 + 4.12456 0.000494143 + 4.14463 0.000513552 + 4.16470 0.000533877 + 4.18477 0.000555257 + 4.20484 0.000577814 + 4.22491 0.000601739 + 4.24498 0.000627788 + 4.26505 0.000659511 + 4.28512 0.000711800 + 4.30519 0.000838811 + 4.32527 0.00120933 + 4.34534 0.00226866 + 4.36541 0.00499388 + 4.38548 0.0111163 + 4.40555 0.0229637 + 4.42562 0.0424848 + 4.44569 0.0694434 + 4.46576 0.0997512 + 4.48583 0.125640 + 4.50590 0.138623 + 4.52597 0.133915 + 4.54604 0.113242 + 4.56612 0.0838152 + 4.58619 0.0542927 + 4.60626 0.0307786 + 4.62633 0.0152698 + 4.64640 0.00662968 + 4.66647 0.00251896 + 4.68654 0.000837563 + 4.70661 0.000243714 + 4.72668 6.20598e-05 + 4.74675 1.38295e-05 + 4.76682 2.69691e-06 + 4.78689 4.60248e-07 + 4.80697 6.87325e-08 + 4.82704 8.98290e-09 + 4.84711 1.02739e-09 + 4.86718 1.02830e-10 + 4.88725 9.00680e-12 + 4.90732 0.00000 + 4.94746 0.00000 + 4.96753 0.00000 + 4.98760 0.00000 + 5.00767 0.00000 + 5.02774 0.00000 + 5.04782 0.00000 + 5.06789 0.00000 + 5.08796 0.00000 + 5.10803 0.00000 + 5.12810 0.00000 + 5.14817 0.00000 + 5.16824 0.00000 + 5.18831 0.00000 + 5.20838 0.00000 + 5.22845 0.00000 + 5.24852 0.00000 + 5.26859 0.00000 + 5.28867 0.00000 + 5.30874 0.00000 + 5.32881 0.00000 + 5.34888 0.00000 + 5.36895 0.00000 + 5.38902 0.00000 + 5.40909 0.00000 + 5.42916 0.00000 + 5.44923 0.00000 + 5.46930 0.00000 + 5.48937 0.00000 + 5.50944 0.00000 + 5.52952 0.00000 + 5.54959 0.00000 + 5.56966 0.00000 + 5.58973 0.00000 + 5.60980 0.00000 + 5.62987 0.00000 + 5.64994 0.00000 + 5.67001 0.00000 + 5.68005 0.00000 + 5.70012 0.00000 + 5.72019 0.00000 + 5.74026 0.00000 + 5.76033 0.00000 + 5.78040 0.00000 + 5.80047 0.00000 + 5.82054 0.00000 + 5.84061 0.00000 + 5.86068 0.00000 + 5.88076 0.00000 + 5.90083 0.00000 + 5.92090 0.00000 + 5.94097 0.00000 + 5.96104 0.00000 + 5.98111 0.00000 + 6.00118 0.00000 + 6.02125 0.00000 + 6.04132 0.00000 + 6.06139 0.00000 + 6.08146 0.00000 + 6.10153 0.00000 + 6.12161 0.00000 + 6.14168 0.00000 + 6.16175 0.00000 + 6.18182 0.00000 + 6.20189 0.00000 + 6.22196 0.00000 + 6.24203 0.00000 + 6.26210 0.00000 + 6.28217 0.00000 + 6.30224 0.00000 + 6.32231 0.00000 + 6.34238 0.00000 + 6.36246 0.00000 + 6.38253 0.00000 + 6.40260 0.00000 + 6.42267 0.00000 + 6.44274 0.00000 + 6.46281 0.00000 + 6.48288 0.00000 + 6.50295 0.00000 + 6.52302 0.00000 + 6.54309 0.00000 + 6.56316 0.00000 + 6.58323 0.00000 + 6.60331 0.00000 + 6.62338 0.00000 + 6.64345 0.00000 + 6.66352 0.00000 + 6.68359 0.00000 + 6.70366 0.00000 + 6.72373 0.00000 + 6.74380 0.00000 + 6.76387 0.00000 + 6.78394 0.00000 + 6.80401 0.00000 + 6.82408 0.00000 + 6.84416 0.00000 + 6.86423 0.00000 + 6.88430 0.00000 + 6.90437 0.00000 + 6.92444 0.00000 + 6.94451 0.00000 + 6.96458 0.00000 + 6.98465 0.00000 + 7.00472 0.00000 + 7.02479 0.00000 + 7.04486 0.00000 + 7.06494 0.00000 + 7.08501 0.00000 + 7.10508 0.00000 + 7.12515 0.00000 + 7.14522 0.00000 + 7.16529 0.00000 + 7.18536 0.00000 + 7.20543 0.00000 + 7.22550 0.00000 + 7.24557 0.00000 + 7.26564 0.00000 + 7.28571 0.00000 + 7.30578 0.00000 + 7.32586 0.00000 + 7.34593 0.00000 + 7.36600 0.00000 + 7.38607 0.00000 + 7.40614 0.00000 + 7.42621 0.00000 + 7.44628 0.00000 + 7.46635 0.00000 + 7.48642 0.00000 + 7.50649 0.00000 + 7.52656 0.00000 + 7.54663 0.00000 + 7.56671 0.00000 + 7.58678 0.00000 + 7.60685 0.00000 + 7.62692 0.00000 + 7.64699 0.00000 + 7.66706 0.00000 + 7.68713 0.00000 + 7.70720 0.00000 + 7.72727 0.00000 + 7.74734 0.00000 + 7.76741 0.00000 + 7.78748 0.00000 + 7.80756 0.00000 + 7.82763 0.00000 + 7.84770 0.00000 + 7.86777 0.00000 + 7.88784 0.00000 + 7.90791 0.00000 + 7.92798 0.00000 + 7.94805 0.00000 + 7.96812 0.00000 + 7.98819 0.00000 + 8.00826 0.00000 + 8.02833 0.00000 + 8.04841 0.00000 + 8.06848 0.00000 + 8.08855 0.00000 + 8.10862 0.00000 + 8.12869 0.00000 + 8.14876 0.00000 + 8.16883 0.00000 + 8.18890 0.00000 + 8.20897 0.00000 + 8.22904 0.00000 + 8.24911 0.00000 + 8.26919 0.00000 + 8.28926 0.00000 + 8.30933 0.00000 + 8.32940 0.00000 + 8.34947 0.00000 + 8.36954 0.00000 + 8.38961 0.00000 + 8.40968 0.00000 + 8.42975 0.00000 + 8.44982 0.00000 + 8.46989 0.00000 + 8.48996 0.00000 + 8.51004 0.00000 + 8.53011 0.00000 + 8.55018 0.00000 + 8.57025 0.00000 + 8.59032 0.00000 + 8.61039 0.00000 + 8.63046 0.00000 + 8.65053 0.00000 + 8.67060 0.00000 + 8.69067 0.00000 + 8.71074 0.00000 + 8.73081 0.00000 + 8.75088 0.00000 + 8.77096 0.00000 + 8.79103 0.00000 + 8.81110 0.00000 + 8.83117 0.00000 + 8.85124 0.00000 + 8.87131 0.00000 + 8.89138 0.00000 + 8.91145 0.00000 + 8.93152 0.00000 + 8.95159 0.00000 + 8.97166 0.00000 + 8.99174 0.00000 + 9.00177 0.00000 + 9.02184 0.00000 + 9.04191 0.00000 + 9.06198 0.00000 + 9.08205 0.00000 + 9.10212 0.00000 + 9.12220 0.00000 + 9.14227 0.00000 + 9.16234 0.00000 + 9.18241 0.00000 + 9.20248 0.00000 + 9.22255 0.00000 + 9.24262 0.00000 + 9.26269 0.00000 + 9.28276 0.00000 + 9.30283 0.00000 + 9.32290 0.00000 + 9.34297 0.00000 + 9.36305 0.00000 + 9.38312 0.00000 + 9.40319 0.00000 + 9.42326 0.00000 + 9.44333 0.00000 + 9.46340 0.00000 + 9.48347 0.00000 + 9.50354 0.00000 + 9.52361 0.00000 + 9.54368 0.00000 + 9.56375 0.00000 + 9.58383 0.00000 + 9.60390 0.00000 + 9.62397 0.00000 + 9.64404 0.00000 + 9.66411 0.00000 + 9.68418 0.00000 + 9.70425 0.00000 + 9.72432 0.00000 + 9.74439 0.00000 + 9.76446 0.00000 + 9.78453 0.00000 + 9.80460 0.00000 + 9.82467 0.00000 + 9.84475 0.00000 + 9.86482 0.00000 + 9.88489 0.00000 + 9.90496 0.00000 + 9.92503 0.00000 + 9.94510 0.00000 + 9.96517 0.00000 + 9.98524 0.00000 + 10.0053 0.00000 + 10.0254 0.00000 + 10.0455 0.00000 + 10.0655 0.00000 + 10.0856 0.00000 + 10.1057 0.00000 + 10.1257 0.00000 + 10.1458 0.00000 + 10.1659 0.00000 + 10.1860 0.00000 + -1 -1 + .180638 7.52421e-05 + .200708 8.49893e-05 + .220779 9.18290e-05 + .240850 9.60731e-05 + .260921 9.83987e-05 + .280992 9.95220e-05 + .301063 9.99991e-05 + .321133 0.000100177 + .341204 0.000100234 + .361275 0.000100250 + .381346 0.000100254 + .401417 0.000100255 + .421488 0.000100255 + .441558 0.000100255 + .461629 0.000100255 + .481700 0.000100255 + .501771 0.000100255 + .521842 0.000100255 + .541913 0.000100255 + .561983 0.000100255 + .582054 0.000100255 + .602125 0.000100255 + .622196 0.000100255 + .642267 0.000100255 + .662338 0.000100255 + .682409 0.000100255 + .702479 0.000100255 + .722550 0.000100255 + .742621 0.000100255 + .762692 0.000100255 + .782763 0.000100255 + .802833 0.000100255 + .822904 0.000100255 + .842975 0.000100255 + .863046 0.000100255 + .883117 0.000100255 + .903188 0.000100255 + .923259 0.000100255 + .943329 0.000100255 + .963400 0.000100255 + .983471 0.000100255 + 1.00354 0.000100255 + 1.02361 0.000100255 + 1.04368 0.000100255 + 1.06375 0.000100255 + 1.08383 0.000100255 + 1.10390 0.000100255 + 1.12397 0.000100255 + 1.14404 0.000100255 + 1.16411 0.000100255 + 1.18418 0.000100255 + 1.20425 0.000100255 + 1.22432 0.000100255 + 1.24439 0.000100255 + 1.26446 0.000100255 + 1.28453 0.000100255 + 1.30460 0.000100255 + 1.32468 0.000100255 + 1.34475 0.000100255 + 1.36482 0.000100255 + 1.38489 0.000100255 + 1.40496 0.000100255 + 1.42503 0.000100255 + 1.44510 0.000100255 + 1.46517 0.000100255 + 1.48524 0.000100255 + 1.50531 0.000100255 + 1.52538 0.000100255 + 1.54545 0.000100255 + 1.56553 0.000100256 + 1.58560 0.000100257 + 1.60567 0.000100262 + 1.62574 0.000100278 + 1.64581 0.000100320 + 1.66588 0.000100416 + 1.68595 0.000100618 + 1.70602 0.000100990 + 1.72609 0.000101601 + 1.74616 0.000102495 + 1.76623 0.000103654 + 1.78630 0.000104989 + 1.80638 0.000106349 + 1.82645 0.000107557 + 1.84652 0.000108451 + 1.86659 0.000108886 + 1.88666 0.000108702 + 1.90673 0.000107686 + 1.92680 0.000105559 + 1.94687 0.000102043 + 1.96694 9.70114e-05 + 1.98701 9.06443e-05 + 2.00708 8.35381e-05 + 2.02715 7.67147e-05 + 2.04723 7.15646e-05 + 2.06730 6.96774e-05 + 2.08737 7.23499e-05 + 2.10744 7.96777e-05 + 2.12751 8.97857e-05 + 2.14758 9.91432e-05 + 2.16765 0.000104096 + 2.18772 0.000102549 + 2.20779 9.47902e-05 + 2.22786 8.32543e-05 + 2.24793 7.13642e-05 + 2.26800 6.18901e-05 + 2.28808 5.58610e-05 + 2.30815 5.27437e-05 + 2.32822 5.14098e-05 + 2.33825 5.10482e-05 + 2.35832 5.07954e-05 + 2.37839 5.07220e-05 + 2.39847 5.07018e-05 + 2.41854 5.06958e-05 + 2.43861 5.06929e-05 + 2.45868 5.06873e-05 + 2.47875 5.06717e-05 + 2.49882 5.06309e-05 + 2.51889 5.05354e-05 + 2.53896 5.03369e-05 + 2.55903 4.99699e-05 + 2.57910 4.93668e-05 + 2.59917 4.84856e-05 + 2.61924 4.73414e-05 + 2.63932 4.60204e-05 + 2.65939 4.46649e-05 + 2.67946 4.34284e-05 + 2.69953 4.24257e-05 + 2.71960 4.17030e-05 + 2.73967 4.12398e-05 + 2.75974 4.09761e-05 + 2.77981 4.08425e-05 + 2.79988 4.07823e-05 + 2.81995 4.07582e-05 + 2.84002 4.07496e-05 + 2.86009 4.07464e-05 + 2.88017 4.07441e-05 + 2.90024 4.07384e-05 + 2.92031 4.07223e-05 + 2.94038 4.06798e-05 + 2.96045 4.05798e-05 + 2.98052 4.03698e-05 + 3.00059 3.99756e-05 + 3.02066 3.93119e-05 + 3.04073 3.83052e-05 + 3.06080 3.69208e-05 + 3.08087 3.51802e-05 + 3.10094 3.31598e-05 + 3.12102 3.09747e-05 + 3.14109 2.87586e-05 + 3.16116 2.66483e-05 + 3.18123 2.47698e-05 + 3.20130 2.32197e-05 + 3.22137 2.20456e-05 + 3.24144 2.12365e-05 + 3.26151 2.07330e-05 + 3.28158 2.04515e-05 + 3.30165 2.03106e-05 + 3.32172 2.02478e-05 + 3.34179 2.02235e-05 + 3.36187 2.02188e-05 + 3.38194 2.02360e-05 + 3.40201 2.03163e-05 + 3.42208 2.05954e-05 + 3.44215 2.14159e-05 + 3.46222 2.34775e-05 + 3.48229 2.79580e-05 + 3.50236 3.65911e-05 + 3.52243 5.20031e-05 + 3.54250 7.88705e-05 + 3.56257 0.000125637 + 3.58264 0.000204130 + 3.60272 0.000322935 + 3.62279 0.000474547 + 3.64286 0.000625899 + 3.66293 0.000726116 + 3.68300 0.000733394 + 3.70307 0.000642424 + 3.72314 0.000488576 + 3.74321 0.000325052 + 3.76328 0.000193103 + 3.78335 0.000107557 + 3.80342 6.18941e-05 + 3.82349 4.15889e-05 + 3.84357 3.40393e-05 + 3.86364 3.17378e-05 + 3.88371 3.12932e-05 + 3.90378 3.15663e-05 + 3.92385 3.23846e-05 + 3.94392 3.39622e-05 + 3.96399 3.65733e-05 + 3.98406 4.04310e-05 + 4.00413 4.55211e-05 + 4.02420 5.15326e-05 + 4.04427 5.79128e-05 + 4.06434 6.40411e-05 + 4.08442 6.94336e-05 + 4.10449 7.38728e-05 + 4.12456 7.74067e-05 + 4.14463 8.02506e-05 + 4.16470 8.26641e-05 + 4.18477 8.48653e-05 + 4.20484 8.70007e-05 + 4.22491 8.91526e-05 + 4.24498 9.13615e-05 + 4.26505 9.36455e-05 + 4.28512 9.60132e-05 + 4.30519 9.84694e-05 + 4.32527 0.000101018 + 4.34534 0.000103662 + 4.36541 0.000106405 + 4.38548 0.000109252 + 4.40555 0.000112205 + 4.42562 0.000115269 + 4.44569 0.000118447 + 4.46576 0.000121743 + 4.48583 0.000125160 + 4.50590 0.000128702 + 4.52597 0.000132369 + 4.54604 0.000136163 + 4.56612 0.000140088 + 4.58619 0.000144148 + 4.60626 0.000148351 + 4.62633 0.000152707 + 4.64640 0.000157224 + 4.66647 0.000161911 + 4.68654 0.000166771 + 4.70661 0.000171808 + 4.72668 0.000177025 + 4.74675 0.000182429 + 4.76682 0.000188025 + 4.78689 0.000193822 + 4.80697 0.000199831 + 4.82704 0.000206067 + 4.84711 0.000212551 + 4.86718 0.000219301 + 4.88725 0.000226331 + 4.90732 0.000233645 + 4.94746 0.000241238 + 4.96753 0.000249093 + 4.98760 0.000257192 + 5.00767 0.000265522 + 5.02774 0.000274084 + 5.04782 0.000282903 + 5.06789 0.000292028 + 5.08796 0.000301522 + 5.10803 0.000311455 + 5.12810 0.000321968 + 5.14817 0.000333546 + 5.16824 0.000348325 + 5.18831 0.000374863 + 5.20838 0.000443339 + 5.22845 0.000646434 + 5.24852 0.00123006 + 5.26859 0.00275147 + 5.28867 0.00626963 + 5.30874 0.0134157 + 5.32881 0.0260706 + 5.34888 0.0454300 + 5.36895 0.0706380 + 5.38902 0.0978064 + 5.40909 0.120488 + 5.42916 0.132004 + 5.44923 0.128591 + 5.46930 0.111368 + 5.48937 0.0857470 + 5.50944 0.0586904 + 5.52952 0.0357107 + 5.54959 0.0193155 + 5.56966 0.00928729 + 5.58973 0.00396958 + 5.60980 0.00150820 + 5.62987 0.000509397 + 5.64994 0.000152940 + 5.67001 4.08186e-05 + 5.68005 9.68421e-06 + 5.70012 4.51337e-06 + 5.72019 8.97453e-07 + 5.74026 1.58626e-07 + 5.76033 2.49242e-08 + 5.78040 3.48129e-09 + 5.80047 4.32242e-10 + 5.82054 4.77071e-11 + 5.84061 0.00000 + 5.86068 0.00000 + 5.88076 0.00000 + 5.90083 0.00000 + 5.92090 0.00000 + 5.94097 0.00000 + 5.96104 0.00000 + 5.98111 0.00000 + 6.00118 0.00000 + 6.02125 0.00000 + 6.04132 0.00000 + 6.06139 0.00000 + 6.08146 0.00000 + 6.10153 0.00000 + 6.12161 0.00000 + 6.14168 0.00000 + 6.16175 0.00000 + 6.18182 0.00000 + 6.20189 0.00000 + 6.22196 0.00000 + 6.24203 0.00000 + 6.26210 0.00000 + 6.28217 0.00000 + 6.30224 0.00000 + 6.32231 0.00000 + 6.34238 0.00000 + 6.36246 0.00000 + 6.38253 0.00000 + 6.40260 0.00000 + 6.42267 0.00000 + 6.44274 0.00000 + 6.46281 0.00000 + 6.48288 0.00000 + 6.50295 0.00000 + 6.52302 0.00000 + 6.54309 0.00000 + 6.56316 0.00000 + 6.58323 0.00000 + 6.60331 0.00000 + 6.62338 0.00000 + 6.64345 0.00000 + 6.66352 0.00000 + 6.68359 0.00000 + 6.70366 0.00000 + 6.72373 0.00000 + 6.74380 0.00000 + 6.76387 0.00000 + 6.78394 0.00000 + 6.80401 0.00000 + 6.82408 0.00000 + 6.84416 0.00000 + 6.86423 0.00000 + 6.88430 0.00000 + 6.90437 0.00000 + 6.92444 0.00000 + 6.94451 0.00000 + 6.96458 0.00000 + 6.98465 0.00000 + 7.00472 0.00000 + 7.02479 0.00000 + 7.04486 0.00000 + 7.06494 0.00000 + 7.08501 0.00000 + 7.10508 0.00000 + 7.12515 0.00000 + 7.14522 0.00000 + 7.16529 0.00000 + 7.18536 0.00000 + 7.20543 0.00000 + 7.22550 0.00000 + 7.24557 0.00000 + 7.26564 0.00000 + 7.28571 0.00000 + 7.30578 0.00000 + 7.32586 0.00000 + 7.34593 0.00000 + 7.36600 0.00000 + 7.38607 0.00000 + 7.40614 0.00000 + 7.42621 0.00000 + 7.44628 0.00000 + 7.46635 0.00000 + 7.48642 0.00000 + 7.50649 0.00000 + 7.52656 0.00000 + 7.54663 0.00000 + 7.56671 0.00000 + 7.58678 0.00000 + 7.60685 0.00000 + 7.62692 0.00000 + 7.64699 0.00000 + 7.66706 0.00000 + 7.68713 0.00000 + 7.70720 0.00000 + 7.72727 0.00000 + 7.74734 0.00000 + 7.76741 0.00000 + 7.78748 0.00000 + 7.80756 0.00000 + 7.82763 0.00000 + 7.84770 0.00000 + 7.86777 0.00000 + 7.88784 0.00000 + 7.90791 0.00000 + 7.92798 0.00000 + 7.94805 0.00000 + 7.96812 0.00000 + 7.98819 0.00000 + 8.00826 0.00000 + 8.02833 0.00000 + 8.04841 0.00000 + 8.06848 0.00000 + 8.08855 0.00000 + 8.10862 0.00000 + 8.12869 0.00000 + 8.14876 0.00000 + 8.16883 0.00000 + 8.18890 0.00000 + 8.20897 0.00000 + 8.22904 0.00000 + 8.24911 0.00000 + 8.26919 0.00000 + 8.28926 0.00000 + 8.30933 0.00000 + 8.32940 0.00000 + 8.34947 0.00000 + 8.36954 0.00000 + 8.38961 0.00000 + 8.40968 0.00000 + 8.42975 0.00000 + 8.44982 0.00000 + 8.46989 0.00000 + 8.48996 0.00000 + 8.51004 0.00000 + 8.53011 0.00000 + 8.55018 0.00000 + 8.57025 0.00000 + 8.59032 0.00000 + 8.61039 0.00000 + 8.63046 0.00000 + 8.65053 0.00000 + 8.67060 0.00000 + 8.69067 0.00000 + 8.71074 0.00000 + 8.73081 0.00000 + 8.75088 0.00000 + 8.77096 0.00000 + 8.79103 0.00000 + 8.81110 0.00000 + 8.83117 0.00000 + 8.85124 0.00000 + 8.87131 0.00000 + 8.89138 0.00000 + 8.91145 0.00000 + 8.93152 0.00000 + 8.95159 0.00000 + 8.97166 0.00000 + 8.99174 0.00000 + 9.00177 0.00000 + 9.02184 0.00000 + 9.04191 0.00000 + 9.06198 0.00000 + 9.08205 0.00000 + 9.10212 0.00000 + 9.12220 0.00000 + 9.14227 0.00000 + 9.16234 0.00000 + 9.18241 0.00000 + 9.20248 0.00000 + 9.22255 0.00000 + 9.24262 0.00000 + 9.26269 0.00000 + 9.28276 0.00000 + 9.30283 0.00000 + 9.32290 0.00000 + 9.34297 0.00000 + 9.36305 0.00000 + 9.38312 0.00000 + 9.40319 0.00000 + 9.42326 0.00000 + 9.44333 0.00000 + 9.46340 0.00000 + 9.48347 0.00000 + 9.50354 0.00000 + 9.52361 0.00000 + 9.54368 0.00000 + 9.56375 0.00000 + 9.58383 0.00000 + 9.60390 0.00000 + 9.62397 0.00000 + 9.64404 0.00000 + 9.66411 0.00000 + 9.68418 0.00000 + 9.70425 0.00000 + 9.72432 0.00000 + 9.74439 0.00000 + 9.76446 0.00000 + 9.78453 0.00000 + 9.80460 0.00000 + 9.82467 0.00000 + 9.84475 0.00000 + 9.86482 0.00000 + 9.88489 0.00000 + 9.90496 0.00000 + 9.92503 0.00000 + 9.94510 0.00000 + 9.96517 0.00000 + 9.98524 0.00000 + 10.0053 0.00000 + 10.0254 0.00000 + 10.0455 0.00000 + 10.0655 0.00000 + 10.0856 0.00000 + 10.1057 0.00000 + 10.1257 0.00000 + 10.1458 0.00000 + 10.1659 0.00000 + 10.1860 0.00000 + -1 -1 + .180638 5.30774e-05 + .200708 5.79820e-05 + .220779 6.12777e-05 + .240850 6.32638e-05 + .260921 6.43362e-05 + .280992 6.48543e-05 + .301063 6.50777e-05 + .321133 6.51636e-05 + .341204 6.51929e-05 + .361275 6.52017e-05 + .381346 6.52040e-05 + .401417 6.52045e-05 + .421488 6.52046e-05 + .441558 6.52046e-05 + .461629 6.52046e-05 + .481700 6.52046e-05 + .501771 6.52046e-05 + .521842 6.52046e-05 + .541913 6.52046e-05 + .561983 6.52046e-05 + .582054 6.52046e-05 + .602125 6.52046e-05 + .622196 6.52046e-05 + .642267 6.52046e-05 + .662338 6.52046e-05 + .682409 6.52046e-05 + .702479 6.52046e-05 + .722550 6.52046e-05 + .742621 6.52046e-05 + .762692 6.52046e-05 + .782763 6.52046e-05 + .802833 6.52046e-05 + .822904 6.52046e-05 + .842975 6.52046e-05 + .863046 6.52046e-05 + .883117 6.52046e-05 + .903188 6.52046e-05 + .923259 6.52046e-05 + .943329 6.52046e-05 + .963400 6.52046e-05 + .983471 6.52046e-05 + 1.00354 6.52046e-05 + 1.02361 6.52046e-05 + 1.04368 6.52046e-05 + 1.06375 6.52046e-05 + 1.08383 6.52046e-05 + 1.10390 6.52046e-05 + 1.12397 6.52046e-05 + 1.14404 6.52046e-05 + 1.16411 6.52046e-05 + 1.18418 6.52046e-05 + 1.20425 6.52046e-05 + 1.22432 6.52046e-05 + 1.24439 6.52046e-05 + 1.26446 6.52046e-05 + 1.28453 6.52046e-05 + 1.30460 6.52046e-05 + 1.32468 6.52046e-05 + 1.34475 6.52046e-05 + 1.36482 6.52046e-05 + 1.38489 6.52046e-05 + 1.40496 6.52046e-05 + 1.42503 6.52046e-05 + 1.44510 6.52046e-05 + 1.46517 6.52046e-05 + 1.48524 6.52046e-05 + 1.50531 6.52047e-05 + 1.52538 6.52048e-05 + 1.54545 6.52053e-05 + 1.56553 6.52070e-05 + 1.58560 6.52120e-05 + 1.60567 6.52254e-05 + 1.62574 6.52576e-05 + 1.64581 6.53277e-05 + 1.66588 6.54648e-05 + 1.68595 6.57066e-05 + 1.70602 6.60909e-05 + 1.72609 6.66407e-05 + 1.74616 6.73494e-05 + 1.76623 6.81710e-05 + 1.78630 6.90255e-05 + 1.80638 6.98146e-05 + 1.82645 7.04403e-05 + 1.84652 7.08114e-05 + 1.86659 7.08329e-05 + 1.88666 7.03874e-05 + 1.90673 6.93289e-05 + 1.92680 6.75094e-05 + 1.94687 6.48429e-05 + 1.96694 6.13811e-05 + 1.98701 5.73645e-05 + 2.00708 5.32229e-05 + 2.02715 4.95501e-05 + 2.04723 4.70948e-05 + 2.06730 4.67213e-05 + 2.08737 4.91598e-05 + 2.10744 5.44426e-05 + 2.12751 6.13863e-05 + 2.14758 6.77602e-05 + 2.16765 7.12508e-05 + 2.18772 7.05403e-05 + 2.20779 6.58338e-05 + 2.22786 5.87068e-05 + 2.24793 5.13576e-05 + 2.26800 4.55510e-05 + 2.28808 4.19244e-05 + 2.30815 4.01142e-05 + 2.32822 3.93884e-05 + 2.33825 3.92356e-05 + 2.35832 3.91126e-05 + 2.37839 3.90837e-05 + 2.39847 3.90782e-05 + 2.41854 3.90773e-05 + 2.43861 3.90773e-05 + 2.45868 3.90773e-05 + 2.47875 3.90773e-05 + 2.49882 3.90773e-05 + 2.51889 3.90773e-05 + 2.53896 3.90773e-05 + 2.55903 3.90773e-05 + 2.57910 3.90773e-05 + 2.59917 3.90773e-05 + 2.61924 3.90773e-05 + 2.63932 3.90773e-05 + 2.65939 3.90772e-05 + 2.67946 3.90772e-05 + 2.69953 3.90769e-05 + 2.71960 3.90761e-05 + 2.73967 3.90736e-05 + 2.75974 3.90669e-05 + 2.77981 3.90509e-05 + 2.79988 3.90160e-05 + 2.81995 3.89478e-05 + 2.84002 3.88275e-05 + 2.86009 3.86363e-05 + 2.88017 3.83626e-05 + 2.90024 3.80097e-05 + 2.92031 3.75996e-05 + 2.94038 3.71704e-05 + 2.96045 3.67655e-05 + 2.98052 3.64213e-05 + 3.00059 3.61572e-05 + 3.02066 3.59732e-05 + 3.04073 3.58537e-05 + 3.06080 3.57744e-05 + 3.08087 3.57075e-05 + 3.10094 3.56244e-05 + 3.12102 3.54974e-05 + 3.14109 3.53029e-05 + 3.16116 3.50268e-05 + 3.18123 3.46716e-05 + 3.20130 3.42590e-05 + 3.22137 3.38272e-05 + 3.24144 3.34199e-05 + 3.26151 3.30739e-05 + 3.28158 3.28091e-05 + 3.30165 3.26264e-05 + 3.32172 3.25130e-05 + 3.34179 3.24494e-05 + 3.36187 3.24172e-05 + 3.38194 3.24022e-05 + 3.40201 3.23945e-05 + 3.42208 3.23874e-05 + 3.44215 3.23733e-05 + 3.46222 3.23410e-05 + 3.48229 3.22712e-05 + 3.50236 3.21347e-05 + 3.52243 3.18941e-05 + 3.54250 3.15116e-05 + 3.56257 3.09642e-05 + 3.58264 3.02583e-05 + 3.60272 2.94381e-05 + 3.62279 2.85795e-05 + 3.64286 2.77698e-05 + 3.66293 2.70819e-05 + 3.68300 2.65553e-05 + 3.70307 2.61921e-05 + 3.72314 2.59665e-05 + 3.74321 2.58402e-05 + 3.76328 2.57765e-05 + 3.78335 2.57475e-05 + 3.80342 2.57355e-05 + 3.82349 2.57306e-05 + 3.84357 2.57276e-05 + 3.86364 2.57223e-05 + 3.88371 2.57091e-05 + 3.90378 2.56775e-05 + 3.92385 2.56089e-05 + 3.94392 2.54738e-05 + 3.96399 2.52336e-05 + 3.98406 2.48467e-05 + 4.00413 2.42803e-05 + 4.02420 2.35224e-05 + 4.04427 2.25882e-05 + 4.06434 2.15155e-05 + 4.08442 2.03534e-05 + 4.10449 1.91506e-05 + 4.12456 1.79521e-05 + 4.14463 1.68027e-05 + 4.16470 1.57508e-05 + 4.18477 1.48433e-05 + 4.20484 1.41149e-05 + 4.22491 1.35767e-05 + 4.24498 1.32135e-05 + 4.26505 1.29907e-05 + 4.28512 1.28670e-05 + 4.30519 1.28052e-05 + 4.32527 1.27785e-05 + 4.34534 1.27733e-05 + 4.36541 1.27937e-05 + 4.38548 1.28765e-05 + 4.40555 1.31272e-05 + 4.42562 1.37837e-05 + 4.44569 1.52990e-05 + 4.46576 1.84305e-05 + 4.48583 2.43657e-05 + 4.50590 3.50112e-05 + 4.52597 5.35482e-05 + 4.54604 8.48966e-05 + 4.56612 0.000134925 + 4.58619 0.000207044 + 4.60626 0.000296681 + 4.62633 0.000387441 + 4.64640 0.000454153 + 4.66647 0.000473904 + 4.68654 0.000438816 + 4.70661 0.000361048 + 4.72668 0.000265958 + 4.74675 0.000178771 + 4.76682 0.000114267 + 4.78689 7.47946e-05 + 4.80697 5.47905e-05 + 4.82704 4.66515e-05 + 4.84711 4.43626e-05 + 4.86718 4.44066e-05 + 4.88725 4.51736e-05 + 4.90732 4.60896e-05 + 4.94746 4.70108e-05 + 4.96753 4.79255e-05 + 4.98760 4.88513e-05 + 5.00767 4.97971e-05 + 5.02774 5.07696e-05 + 5.04782 5.17719e-05 + 5.06789 5.28059e-05 + 5.08796 5.38726e-05 + 5.10803 5.49731e-05 + 5.12810 5.61087e-05 + 5.14817 5.72802e-05 + 5.16824 5.84890e-05 + 5.18831 5.97361e-05 + 5.20838 6.10229e-05 + 5.22845 6.23506e-05 + 5.24852 6.37204e-05 + 5.26859 6.51339e-05 + 5.28867 6.65923e-05 + 5.30874 6.80970e-05 + 5.32881 6.96496e-05 + 5.34888 7.12514e-05 + 5.36895 7.29039e-05 + 5.38902 7.46086e-05 + 5.40909 7.63673e-05 + 5.42916 7.81813e-05 + 5.44923 8.00523e-05 + 5.46930 8.19811e-05 + 5.48937 8.39678e-05 + 5.50944 8.60109e-05 + 5.52952 8.81070e-05 + 5.54959 9.02503e-05 + 5.56966 9.24340e-05 + 5.58973 9.46519e-05 + 5.60980 9.69018e-05 + 5.62987 9.91878e-05 + 5.64994 0.000101521 + 5.67001 0.000103919 + 5.68005 0.000106399 + 5.70012 0.000108976 + 5.72019 0.000111659 + 5.74026 0.000114450 + 5.76033 0.000117350 + 5.78040 0.000120356 + 5.80047 0.000123471 + 5.82054 0.000126699 + 5.84061 0.000130045 + 5.86068 0.000133514 + 5.88076 0.000137106 + 5.90083 0.000140816 + 5.92090 0.000144634 + 5.94097 0.000148548 + 5.96104 0.000152550 + 5.98111 0.000156638 + 6.00118 0.000160820 + 6.02125 0.000165117 + 6.04132 0.000169558 + 6.06139 0.000174175 + 6.08146 0.000179011 + 6.10153 0.000184179 + 6.12161 0.000190152 + 6.14168 0.000198886 + 6.16175 0.000217615 + 6.18182 0.000270120 + 6.20189 0.000425393 + 6.22196 0.000859145 + 6.24203 0.00196068 + 6.26210 0.00447001 + 6.28217 0.00956521 + 6.30224 0.0187384 + 6.32231 0.0332898 + 6.34238 0.0534344 + 6.36246 0.0773741 + 6.38253 0.101005 + 6.40260 0.118830 + 6.42267 0.125974 + 6.44274 0.120329 + 6.46281 0.103557 + 6.48288 0.0802956 + 6.50295 0.0560928 + 6.52302 0.0353036 + 6.54309 0.0200180 + 6.56316 0.0102264 + 6.58323 0.00470672 + 6.60331 0.00195167 + 6.62338 0.000729103 + 6.64345 0.000245394 + 6.66352 7.44099e-05 + 6.68359 2.03278e-05 + 6.70366 5.00314e-06 + 6.72373 1.10940e-06 + 6.74380 2.21628e-07 + 6.76387 3.98892e-08 + 6.78394 6.46811e-09 + 6.80401 9.44868e-10 + 6.82408 1.24359e-10 + 6.84416 1.47461e-11 + 6.86423 0.00000 + 6.88430 0.00000 + 6.90437 0.00000 + 6.92444 0.00000 + 6.94451 0.00000 + 6.96458 0.00000 + 6.98465 0.00000 + 7.00472 0.00000 + 7.02479 0.00000 + 7.04486 0.00000 + 7.06494 0.00000 + 7.08501 0.00000 + 7.10508 0.00000 + 7.12515 0.00000 + 7.14522 0.00000 + 7.16529 0.00000 + 7.18536 0.00000 + 7.20543 0.00000 + 7.22550 0.00000 + 7.24557 0.00000 + 7.26564 0.00000 + 7.28571 0.00000 + 7.30578 0.00000 + 7.32586 0.00000 + 7.34593 0.00000 + 7.36600 0.00000 + 7.38607 0.00000 + 7.40614 0.00000 + 7.42621 0.00000 + 7.44628 0.00000 + 7.46635 0.00000 + 7.48642 0.00000 + 7.50649 0.00000 + 7.52656 0.00000 + 7.54663 0.00000 + 7.56671 0.00000 + 7.58678 0.00000 + 7.60685 0.00000 + 7.62692 0.00000 + 7.64699 0.00000 + 7.66706 0.00000 + 7.68713 0.00000 + 7.70720 0.00000 + 7.72727 0.00000 + 7.74734 0.00000 + 7.76741 0.00000 + 7.78748 0.00000 + 7.80756 0.00000 + 7.82763 0.00000 + 7.84770 0.00000 + 7.86777 0.00000 + 7.88784 0.00000 + 7.90791 0.00000 + 7.92798 0.00000 + 7.94805 0.00000 + 7.96812 0.00000 + 7.98819 0.00000 + 8.00826 0.00000 + 8.02833 0.00000 + 8.04841 0.00000 + 8.06848 0.00000 + 8.08855 0.00000 + 8.10862 0.00000 + 8.12869 0.00000 + 8.14876 0.00000 + 8.16883 0.00000 + 8.18890 0.00000 + 8.20897 0.00000 + 8.22904 0.00000 + 8.24911 0.00000 + 8.26919 0.00000 + 8.28926 0.00000 + 8.30933 0.00000 + 8.32940 0.00000 + 8.34947 0.00000 + 8.36954 0.00000 + 8.38961 0.00000 + 8.40968 0.00000 + 8.42975 0.00000 + 8.44982 0.00000 + 8.46989 0.00000 + 8.48996 0.00000 + 8.51004 0.00000 + 8.53011 0.00000 + 8.55018 0.00000 + 8.57025 0.00000 + 8.59032 0.00000 + 8.61039 0.00000 + 8.63046 0.00000 + 8.65053 0.00000 + 8.67060 0.00000 + 8.69067 0.00000 + 8.71074 0.00000 + 8.73081 0.00000 + 8.75088 0.00000 + 8.77096 0.00000 + 8.79103 0.00000 + 8.81110 0.00000 + 8.83117 0.00000 + 8.85124 0.00000 + 8.87131 0.00000 + 8.89138 0.00000 + 8.91145 0.00000 + 8.93152 0.00000 + 8.95159 0.00000 + 8.97166 0.00000 + 8.99174 0.00000 + 9.00177 0.00000 + 9.02184 0.00000 + 9.04191 0.00000 + 9.06198 0.00000 + 9.08205 0.00000 + 9.10212 0.00000 + 9.12220 0.00000 + 9.14227 0.00000 + 9.16234 0.00000 + 9.18241 0.00000 + 9.20248 0.00000 + 9.22255 0.00000 + 9.24262 0.00000 + 9.26269 0.00000 + 9.28276 0.00000 + 9.30283 0.00000 + 9.32290 0.00000 + 9.34297 0.00000 + 9.36305 0.00000 + 9.38312 0.00000 + 9.40319 0.00000 + 9.42326 0.00000 + 9.44333 0.00000 + 9.46340 0.00000 + 9.48347 0.00000 + 9.50354 0.00000 + 9.52361 0.00000 + 9.54368 0.00000 + 9.56375 0.00000 + 9.58383 0.00000 + 9.60390 0.00000 + 9.62397 0.00000 + 9.64404 0.00000 + 9.66411 0.00000 + 9.68418 0.00000 + 9.70425 0.00000 + 9.72432 0.00000 + 9.74439 0.00000 + 9.76446 0.00000 + 9.78453 0.00000 + 9.80460 0.00000 + 9.82467 0.00000 + 9.84475 0.00000 + 9.86482 0.00000 + 9.88489 0.00000 + 9.90496 0.00000 + 9.92503 0.00000 + 9.94510 0.00000 + 9.96517 0.00000 + 9.98524 0.00000 + 10.0053 0.00000 + 10.0254 0.00000 + 10.0455 0.00000 + 10.0655 0.00000 + 10.0856 0.00000 + 10.1057 0.00000 + 10.1257 0.00000 + 10.1458 0.00000 + 10.1659 0.00000 + 10.1860 0.00000 + -1 -1 + -2 -2 \ No newline at end of file diff --git a/examples/advanced/xray_fluorescence/XrayFluo.cc b/examples/advanced/xray_fluorescence/XrayFluo.cc index 989294db25..ae7a763bc8 100644 --- a/examples/advanced/xray_fluorescence/XrayFluo.cc +++ b/examples/advanced/xray_fluorescence/XrayFluo.cc @@ -136,3 +136,4 @@ int main(int argc,char** argv) { + diff --git a/examples/advanced/xray_fluorescence/XrayFluo.py b/examples/advanced/xray_fluorescence/XrayFluo.py deleted file mode 100644 index f5578295a8..0000000000 --- a/examples/advanced/xray_fluorescence/XrayFluo.py +++ /dev/null @@ -1,199 +0,0 @@ - -# tell HistoManger where to find the histograms: -hm.selectStore("xrayfluo.his") - -# ... and load them into memory: -histoGamDet = hm.load1D(1) -histoGamDetPre = hm.load1D(6) -histoGamLeavSam = hm.load1D(4) -histoEleLeavSam = hm.load1D(5) -histoProtRD = hm.load1D(8) -histoProtLS = hm.load1D(9) -histoGamBornSam = hm.load1D(2) -histoEleBornSam = hm.load1D(3) -histoSpectrum = hm.load1D(7) - -# set plotter to 4*2 zones -pl.zone(5,2) -# ... and plot the histograms -hplot(histoGamDet) -hplot(histoGamDetPre) -hplot(histoGamLeavSam) -hplot(histoEleLeavSam) -hplot(histoProtRD) -hplot(histoProtLS) -hplot(histoGamBornSam) -hplot(histoEleBornSam) -hplot(histoSpectrum) - -pl.psPrint("histos.ps") - -# prompt user for -wait() - -# set plotter to 1*1 zones -pl.zone(1,1) - -#titols: -pl.xAxisOption ("title","energy of the electrons generated in the sample") -pl.xAxisOption ("label","E (keV)") -pl.yAxisOption("title","counts") - -pl.textStyle("fontsize","10.") -#color of the histogram -pl.dataStyle("linecolor", "red") - -#draw a grid even on the top and on the right of the plot -#pl.zoneOption("mirrorAxis","yes") - -#legend -pl.dataOption("legend","EleBorn") - - -hplot(histoEleBornSam) - -wait() -pl.psPrint("hEleBornSam.ps") - - - -#titols: -pl.xAxisOption ("title","energy of the gammas generated in the sample") -pl.xAxisOption ("label","E (keV)") -pl.yAxisOption("title","counts") - -pl.textStyle("fontsize","10.") -#colore dell'istogramma -pl.dataStyle("linecolor", "blue") - -#draw a grid even on the top and on the right of the plot -#pl.zoneOption("mirrorAxis","yes") - -#legend -pl.dataOption("legend","GamBorn") - - -hplot(histoGamBornSam) -wait() -pl.psPrint("hGamBornSam.ps") - -#titols: -pl.xAxisOption ("title","energy deposit in the detector") -pl.xAxisOption ("label","E (keV)") -pl.yAxisOption("title","counts") - -pl.textStyle("fontsize","10.") -#colore dell'istogramma -pl.dataStyle("linecolor", "green") - - - -pl.dataOption("legend","EnergyDep") - - -hplot(histoGamDet) -wait() -pl.psPrint("histoGamDet.ps") - - -pl.xAxisOption ("title","spectrum of the incident photons") -pl.xAxisOption ("label","E (keV)") -pl.yAxisOption("title","counts") - -pl.textStyle("fontsize","10.") - -pl.dataStyle("linecolor", "yellow") - -#pl.zoneOption("mirrorAxis","yes") - -pl.dataOption("legend","B-Flare") - - -hplot(histoSpectrum) -wait() -pl.psPrint("hSpectrum.ps") - - -pl.xAxisOption ("title","spectrum of the photons at the detector") -pl.xAxisOption ("label","E (keV)") -pl.yAxisOption("title","counts") - -pl.textStyle("fontsize","10.") - -pl.dataStyle("linecolor", "blue") - -#pl.zoneOption("mirrorAxis","yes") - -pl.dataOption("legend","photonsDet") - - -hplot(histoGamDetPre) -wait() -pl.psPrint("hGamDetPre.ps") - -pl.xAxisOption ("title","spectrum of the electrons leaving the sample") -pl.xAxisOption ("label","E (keV)") -pl.yAxisOption("title","counts") - -pl.textStyle("fontsize","10.") - -pl.dataStyle("linecolor", "red") - -#pl.zoneOption("mirrorAxis","yes") - -pl.dataOption("legend","electronsLeav") - -hplot(histoEleLeavSam) -wait() -pl.psPrint("hEleLeav.ps") - -pl.xAxisOption ("title","spectrum of the photons leaving the sample") -pl.xAxisOption ("label","E (keV)") -pl.yAxisOption("title","counts") - -pl.textStyle("fontsize","10.") -#colore dell'istogramma -pl.dataStyle("linecolor", "red") - -#disegna il reticolo anche sopra e a destra -#pl.zoneOption("mirrorAxis","yes") - -pl.dataOption("legend","photonsLeav") - -hplot(histoGamLeavSam) -wait() -pl.psPrint("hGamLeav.ps") - -pl.xAxisOption ("title","history of photons") -pl.xAxisOption ("label","E (keV)") -pl.yAxisOption("title","counts") - -pl.dataStyle("linecolor", "yellow") - -pl.dataOption("legend","photonsBorn") - -hplot(histoGamBornSam) - -pl.dataStyle("linecolor", "red") - -pl.dataOption("legend","photonsLeav") - -v1=vm.from1D(histoGamLeavSam) - -pl.overlay(v1) - -pl.dataStyle("linecolor", "blue") - -pl.dataOption("legend","photonsDet") - -v2=vm.from1D(histoGamDetPre) - -pl.overlay(v2) - -wait() -pl.psPrint("history.ps") - - - - - diff --git a/examples/advanced/xray_fluorescence/anaphe.gmk b/examples/advanced/xray_fluorescence/anaphe.gmk deleted file mode 100644 index 73c3da74a9..0000000000 --- a/examples/advanced/xray_fluorescence/anaphe.gmk +++ /dev/null @@ -1,17 +0,0 @@ - -# Some pieces to include if Anaphe is selected as analysis environment -# be aware that this will be obsolete as soon as Anaphe is implementing -# the AIDA 2.2 interfaces. - -CPPFLAGS += -I$(LHCXX_REL_DIR)/include -LDFLAGS += -L$(LHCXX_REL_DIR)/lib -#LOADLIBS += -L$(LHCXX_REL_DIR)/lib -# general stuff: -LOADLIBS += -lHepUtilities -lAIDA_Annotation -# add for Histograms: -LOADLIBS += -lAIDA_HBook -# add for Ntuples: -LOADLIBS += -lAIDA_Ntuple -lNtupleTag -lNtupleTag_HBook -# ... and finally system stuff and to deal with the "Fortran legacy": -LOADLIBS += -lCHBook -ldl -lg2c - diff --git a/examples/advanced/xray_fluorescence/fit.py b/examples/advanced/xray_fluorescence/fit.py deleted file mode 100644 index 55e06bf3af..0000000000 --- a/examples/advanced/xray_fluorescence/fit.py +++ /dev/null @@ -1,77 +0,0 @@ -hm.selectStore("xrayfluo.his") -histoGamDet = hm.load1D(1) - -# prepare to fit the histo h1 -# creating a vector from a histogram -v1=vm.from1D(histoGamDet) - -vm.list() - -# create a new fitter: -fit=Fitter() -# perform fit using the histogram -fit.setData(v1) -v1.toAscii("EnergyDep.dat") -# set the model to "gaussian" -fit.setModel("G") -# define (and init) parameters for fit function -fit.setParameter("amp" ,653.) -amp = fit.fitParameter ("amp") -amp.setStart(653.) -amp.setStep(1.) -amp.setBounds(500.,700.) -# ... for these the order is relevant -fit.setParameter("mean" ,1.72) -mean = fit.fitParameter ("mean") -mean.setStart(1.72) -mean.setStep(0.01) -mean.setBounds(1.62,1.82) - -# ... as there is no "intelligent parsing" possible :-( -fit.setParameter("sigma",.1) -sigma = fit.fitParameter ("sigma") -sigma.setStart(0.1) -sigma.setStep(0.005) -sigma.setBounds(0.01,0.3) -# perform fit using the histogram -fit.chiSquareFit() -fit.printResult() -# get vector wiht fitted function for overlay - -vfit=fit.fittedVector(vm) - -# comment this if you want to have a look at the resource file for NAG -shell("rm -f e04ucc.r") - -#pl.zoneOption("mirrorAxis","yes") -pl.xAxisOption("title","energy release in the detector") -pl.yAxisOption("label","counts") -# set error bars (full version) -#pl.dataOption("Representation","Error") -# plot data with overlayed fit-result -pl.textStyle("fontsize","10.") -pl.dataStyle("linecolor", "green") -pl.dataOption("legend","fit") -#pl.dataStyle("lineshape","dashdot") -pl.plot(vfit) - -wait() -pl.psPrint("fitEnegyDep.ps") -pl.reset() - -pl.textStyle("fontsize","10.") -pl.dataStyle("linecolor", "red") -pl.dataOption("legend","energyDeposit") -pl.plot(v1) -wait() - -pl.dataStyle("linecolor", "green") -pl.dataOption("legend","fit") -pl.dataStyle("lineshape","dashdot") -pl.overlay(vfit) - -pl.psPrint("fitEnegyOverl.ps") -pl.reset() -del fit - - diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh index 97b4133337..a952d189d1 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoDetectorConstruction.hh @@ -149,12 +149,13 @@ private: G4Material* Al; G4Material* Si; G4Material* Cu; + G4Material* matOx; G4Material* HPGe; G4Material* materialMg; G4Material* materialNd; G4Material* Sn; G4Material* Ti; - + G4Material* U; diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsList.hh b/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsList.hh index f9fe9b298d..4626edcf5f 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsList.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsList.hh @@ -75,9 +75,6 @@ public: void SetGammaCut(G4double); void SetElectronCut(G4double); - void SetGammaLowLimit(G4double); - void SetElectronLowLimit(G4double); - void SetGELowLimit(G4double); void SetLowEnSecPhotCut(G4double); void SetLowEnSecElecCut(G4double); void SetProtonCut(G4double); diff --git a/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsListMessenger.hh b/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsListMessenger.hh index b48d9adddc..17488fe31c 100644 --- a/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsListMessenger.hh +++ b/examples/advanced/xray_fluorescence/include/XrayFluoPhysicsListMessenger.hh @@ -61,9 +61,7 @@ private: XrayFluoPhysicsList* XrayFluoList; G4UIdirectory* lowEnDir; - G4UIcmdWithADoubleAndUnit* cutGLowLimCmd; - G4UIcmdWithADoubleAndUnit* cutELowLimCmd; - G4UIcmdWithADoubleAndUnit* cutGELowLimCmd; + G4UIcmdWithADoubleAndUnit* cutSecPhotCmd; G4UIcmdWithADoubleAndUnit* cutSecElecCmd; G4UIcmdWithADoubleAndUnit* cutGCmd; diff --git a/examples/advanced/xray_fluorescence/macro.mac b/examples/advanced/xray_fluorescence/macro.mac index ed339e5c99..7671f1d066 100644 --- a/examples/advanced/xray_fluorescence/macro.mac +++ b/examples/advanced/xray_fluorescence/macro.mac @@ -1,12 +1,9 @@ - -/lowenergy/lowlimGE 250 eV - -/lowenergy/cutEnergy 250 eV - +/control/verbose 1 /gun/randomVert on /gun/particle gamma /gun/energy 6 keV -/run/beamOn 10 +/run/beamOn 30 + diff --git a/examples/advanced/xray_fluorescence/macro1.mac b/examples/advanced/xray_fluorescence/macro1.mac index b6c61a2d85..3b7ef9869d 100644 --- a/examples/advanced/xray_fluorescence/macro1.mac +++ b/examples/advanced/xray_fluorescence/macro1.mac @@ -1,12 +1,6 @@ - - -/lowenergy/lowlimGE 250 eV - -/lowenergy/cutEnergy 250 eV - # B-flare spectrum /gun/spectrum on /gun/particle gamma -/run/beamOn 100 +/run/beamOn 10 diff --git a/examples/advanced/xray_fluorescence/macro2.mac b/examples/advanced/xray_fluorescence/macro2.mac index 9708e280fe..738a3de71e 100644 --- a/examples/advanced/xray_fluorescence/macro2.mac +++ b/examples/advanced/xray_fluorescence/macro2.mac @@ -1,7 +1,3 @@ -/lowenergy/lowlimGE 250 eV - -/lowenergy/cutEnergy 250 eV - #isotropic source /gun/isoVert on @@ -12,5 +8,5 @@ /gun/particle proton -/run/beamOn 100 +/run/beamOn 10 diff --git a/examples/advanced/xray_fluorescence/readHbkAida3.py b/examples/advanced/xray_fluorescence/readHbkAida3.py new file mode 100644 index 0000000000..e7c491bbb1 --- /dev/null +++ b/examples/advanced/xray_fluorescence/readHbkAida3.py @@ -0,0 +1,5 @@ +tree = tf.create("xrayfluo.hbk", "hbook", 1,0) +hf = af.createHistogramFactory(tree) +h1 = tree.findH1D("1") +pl.currentRegion().plot(h1) +pl.refresh() diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc index 48ff0a090e..fe06bde58f 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoDetectorConstruction.cc @@ -65,8 +65,7 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() OhmicPosMaterial(0), OhmicNegMaterial(0), pixelMaterial(0),sampleMaterial(0), Dia1Material(0),Dia3Material(0), - defaultMaterial(0) - ,HPGeSD(0) + defaultMaterial(0),matOx(0),U(0),HPGeSD(0) { NbOfPixelRows = 1; @@ -113,6 +112,8 @@ XrayFluoDetectorConstruction::XrayFluoDetectorConstruction() XrayFluoDetectorConstruction::~XrayFluoDetectorConstruction() { + delete U; + delete matOx; delete detectorMessenger; G4cout << "XrayFluoDetectorConstruction deleted" << G4endl; } @@ -442,7 +443,7 @@ void XrayFluoDetectorConstruction::DefineMaterials() //define Oxigen density = 1*g/cm3; a=16*g/mole; - G4Material* matOx = new G4Material(name="Oxigen", z=8., a, density); + matOx = new G4Material(name="Oxigen", z=8., a, density); //define aluminium @@ -459,7 +460,7 @@ void XrayFluoDetectorConstruction::DefineMaterials() //define Uranium density = 19050*kg/m3; a = 238.02891*g/mole; - G4Material* U = new G4Material(name="Uranium",z=92.,a,density); + U = new G4Material(name="Uranium",z=92.,a,density); //define Tin density = 7310*kg/m3; diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc index 6742a9307c..51b89ed7b7 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsList.cc @@ -195,44 +195,6 @@ void XrayFluoPhysicsList::ConstructEM() } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void XrayFluoPhysicsList::SetGELowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - G4cout << "XrayFluoPhysicsList::SetCuts:"; - G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - G4Gamma::SetEnergyRange(lowcut,1e5); - G4Electron::SetEnergyRange(lowcut,1e5); - G4Positron::SetEnergyRange(lowcut,1e5); - -} - -void XrayFluoPhysicsList::SetGammaLowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - G4cout << "XrayFluoPhysicsList::SetCuts:"; - G4cout << "Gamma cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - G4Gamma::SetEnergyRange(lowcut,1e5); - -} - -void XrayFluoPhysicsList::SetElectronLowLimit(G4double lowcut) -{ - if (verboseLevel >0){ - - G4cout << "XrayFluoPhysicsList::SetCuts:"; - G4cout << "Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - - } - - G4Electron::SetEnergyRange(lowcut,1e5); - -} void XrayFluoPhysicsList::SetGammaCut(G4double val) { ResetCuts(); @@ -253,7 +215,7 @@ void XrayFluoPhysicsList::SetCuts(){ SetCutValue(cutForElectron,"e-"); SetCutValue(cutForElectron,"e+"); SetCutValue(cutForProton, "proton"); - SetCutValueForOthers(cutForProton); + SetCutValue(cutForProton, "alpha"); if (verboseLevel>0) DumpCutValuesTable(); } diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc index f6477879db..e1b9359e4a 100644 --- a/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoPhysicsListMessenger.cc @@ -49,27 +49,6 @@ XrayFluoPhysicsListMessenger::XrayFluoPhysicsListMessenger(XrayFluoPhysicsList * lowEnDir = new G4UIdirectory("/lowenergy/"); lowEnDir->SetGuidance("LowEnergy commands"); - cutGLowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimG",this); - cutGLowLimCmd->SetGuidance("Set ENERGY low limit for Gamma."); - cutGLowLimCmd->SetParameterName("energy",true); - cutGLowLimCmd->SetDefaultValue(1e-3); - cutGLowLimCmd->SetDefaultUnit("MeV"); - cutGLowLimCmd->AvailableForStates(G4State_Idle); - - cutELowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimE",this); - cutELowLimCmd->SetGuidance("Set ENERGY low limit for e-."); - cutELowLimCmd->SetParameterName("energy",true); - cutELowLimCmd->SetDefaultValue(1e-3); - cutELowLimCmd->SetDefaultUnit("MeV"); - cutELowLimCmd->AvailableForStates(G4State_Idle); - - cutGELowLimCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/lowlimGE",this); - cutGELowLimCmd->SetGuidance("Set ENERGY low limit for e- and Gamma."); - cutGELowLimCmd->SetParameterName("energy",true); - cutGELowLimCmd->SetDefaultValue(1e-3); - cutGELowLimCmd->SetDefaultUnit("MeV"); - cutGELowLimCmd->AvailableForStates(G4State_Idle); - cutSecPhotCmd = new G4UIcmdWithADoubleAndUnit("/lowenergy/secphotcut",this); cutSecPhotCmd->SetGuidance("Set production threshold for secondary Gamma."); cutSecPhotCmd->SetParameterName("energy",true); @@ -118,10 +97,6 @@ XrayFluoPhysicsListMessenger::XrayFluoPhysicsListMessenger(XrayFluoPhysicsList * XrayFluoPhysicsListMessenger::~XrayFluoPhysicsListMessenger() { - - delete cutGLowLimCmd; - delete cutELowLimCmd; - delete cutGELowLimCmd; delete cutSecElecCmd; delete cutSecPhotCmd; delete cutGCmd; @@ -135,15 +110,6 @@ XrayFluoPhysicsListMessenger::~XrayFluoPhysicsListMessenger() void XrayFluoPhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { - if(command == cutGLowLimCmd) - { XrayFluoList->SetGammaLowLimit(cutGLowLimCmd->GetNewDoubleValue(newValue));} - - if(command == cutELowLimCmd) - { XrayFluoList->SetElectronLowLimit(cutELowLimCmd->GetNewDoubleValue(newValue));} - - if(command == cutGELowLimCmd) - { XrayFluoList->SetGELowLimit(cutGELowLimCmd->GetNewDoubleValue(newValue));} - if(command == cutSecPhotCmd) { XrayFluoList->SetLowEnSecPhotCut(cutSecPhotCmd->GetNewDoubleValue(newValue));} diff --git a/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc b/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc index 855918ac32..5243883578 100755 --- a/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc +++ b/examples/advanced/xray_fluorescence/src/XrayFluoVisManager.cc @@ -45,8 +45,8 @@ #include "G4HepRepFile.hh" #include "G4HepRep.hh" #include "G4RayTracer.hh" -//#include "G4VRML1File.hh" -//#include "G4VRML2File.hh" +#include "G4VRML1File.hh" +#include "G4VRML2File.hh" // Needing external packages or libraries... @@ -81,12 +81,12 @@ #ifdef G4VIS_USE_OIWIN32 #include "G4OpenInventorWin32.hh" #endif -/* + #ifdef G4VIS_USE_VRML #include "G4VRML1.hh" #include "G4VRML2.hh" #endif -*/ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... XrayFluoVisManager::XrayFluoVisManager () {} @@ -139,12 +139,12 @@ void XrayFluoVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4OpenInventorWin32); #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." diff --git a/examples/advanced/xray_telescope/History b/examples/advanced/xray_telescope/History index e8713fae7a..b513291751 100644 --- a/examples/advanced/xray_telescope/History +++ b/examples/advanced/xray_telescope/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2003/02/19 09:08:36 gcosmo Exp $ +$Id: History,v 1.17 2003/12/02 17:30:37 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +13.11.2003 - J.Allison, tag xraytel-V05-02-02 + Removed OPACS from Vis Manager. + 19.02.2003 - G.Cosmo, tag xraytel-V05-00-00 Removed redundant inclusion of SystemOfUnits.h. Should use CLHEP headers instead. diff --git a/examples/advanced/xray_telescope/README b/examples/advanced/xray_telescope/README index 8df43160e9..19a0450c41 100644 --- a/examples/advanced/xray_telescope/README +++ b/examples/advanced/xray_telescope/README @@ -1,4 +1,4 @@ -$Id: README,v 1.10 2002/11/14 16:33:48 santin Exp $ +$Id: README,v 1.11 2003/12/02 17:30:37 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -6,7 +6,7 @@ $Id: README,v 1.10 2002/11/14 16:33:48 santin Exp $ ========================================================= -NEW: Nov 2002: Migration to AIDA 3.0 - see below +NEW: Nov 2002: Migration to AIDA 3 - see below Introduction @@ -49,26 +49,19 @@ setenv G4UI_BUILD_GAG_SESSION 1 setenv G4UI_USE_GAG 1 #set up VRMLview -setenv G4VIS_BUILD_VRMLFILE_DRIVER 1 setenv G4VIS_USE_VRML 1 -setenv G4VIS_USE_VRMLFILE 1 setenv G4VRMLFILE_MAX_FILE_NUM 100 setenv G4VRMLFILE_VIEWER vrmlview #if installed setenv G4VIS_USE_VRML 1 -setenv G4VIS_USE_VRMLFILE 1 -setenv PATH ${PATH}:"/afs/cern.ch/sw/contrib/VRML/bin/Linux" +setenv PATH ${PATH}:"/afs/cern.ch/sw/contrib/VRML/bin/Linux" # example at CERN #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_BUILD_DAWNFILE_DRIVER 1 setenv G4VIS_USE_DAWN 1 -setenv G4VIS_USE_DAWNFILE 1 -setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/DAWN/Linux-g++" NOTE: The geometry is refreshed on the viewer at the beginning of each run, but the tracks are plotted only in case an interesting event occurs. @@ -81,11 +74,12 @@ Analysis Set up for the AIDA 3.0 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. +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 +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` @@ -100,38 +94,30 @@ a new window is opened for on-line plotting. NOTE: The histograms are plotted or refreshed only in case an interesting event occurs. This is the case only for about 1 every 10**4 events. - You may need to add the AIDA tool path to your run-time library path setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:`aida-config -r` - -IMPORTANT WARNING! -setenv G4ANALYSIS_BUILD 1 -must always be set to build the example even if the analysis option -is not required - - Sources ------- -GAG can be obtained from +GAG can be found in: -http://erpc1.naruto-u.ac.jp/~geant4/ +geant4/environments/MOMO OpenGL Mesa needs to be installed prior to building Geant4 and can be -downloaded from +downloaded from: -http://www.mesa3d.org/download.html +http://www.mesa3d.org -DAWN can be obtained from +DAWN can be obtained from: -http://133.7.51.8/dawn/ - -VRMLview for Linux can be obtained from +http://geant4.kek.jp/~tanaka/ +VRMLview for Linux can be obtained from: +http://www.sim.no 2. Run To execute a sample simulation with visualisation of proton tracks @@ -146,10 +132,6 @@ visualisation macros provided are - vrml.mac for VRML display and output file - dawn.mac for dawn display and PS output file -You may need to add some paths to your run-time libraries env. variable, -for example: -$ setenv LD_LIBRARY_PATH $OGLHOME/lib - To execute a run without visualisation use - test.mac @@ -179,12 +161,11 @@ http://www.space.qinetiq.com/geant4/gspm.html 6. Analysis -Presently, the Anaphe tool (http://www.cern.ch/anaphe) -(version 5) provides an implementation of AIDA 3.0, +Presently, the Anaphe tool (http://cern.ch/anaphe) +(version 5) provides an implementation of AIDA 3, other packages as JAS will follow soon. To build and execute the example on platforms where there is no implementation of the analysis system, the environment variables -must not be set, except for G4ANALYSIS_BUILD which is required for -building the executable. +must not be set. diff --git a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh index c3b53203ee..db42712515 100644 --- a/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh +++ b/examples/advanced/xray_telescope/include/XrayTelAnalysis.hh @@ -22,7 +22,7 @@ // // // $Id: XrayTelAnalysis.hh,v 1.7 2003/06/16 16:46:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copy of his UserAnalyser class) diff --git a/examples/advanced/xray_telescope/include/XrayTelStepCut.hh b/examples/advanced/xray_telescope/include/XrayTelStepCut.hh index 10981587c8..d1c999294e 100644 --- a/examples/advanced/xray_telescope/include/XrayTelStepCut.hh +++ b/examples/advanced/xray_telescope/include/XrayTelStepCut.hh @@ -104,7 +104,7 @@ private: inline G4double XrayTelStepCut::PostStepGetPhysicalInteractionLength( const G4Track& aTrack, - G4double previousStepSize, + G4double, G4ForceCondition* condition ) { @@ -132,9 +132,9 @@ inline G4VParticleChange* XrayTelStepCut::PostStepDoIt( return &aParticleChange; } -inline G4double XrayTelStepCut::GetMeanFreePath(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition +inline G4double XrayTelStepCut::GetMeanFreePath(const G4Track&, + G4double, + G4ForceCondition* ) { return 0.; diff --git a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc index 4cd533e752..788102071c 100644 --- a/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc +++ b/examples/advanced/xray_telescope/src/XrayTelAnalysis.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: XrayTelAnalysis.cc,v 1.9 2003/06/16 16:46:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: XrayTelAnalysis.cc,v 1.10 2003/08/13 13:06:02 santin Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch) // (copied from his UserAnalyser class) @@ -278,10 +278,16 @@ void XrayTelAnalysis::plotAll() } if (plotter) { + plotter->createRegions(2,1,0); AIDA::IHistogram1D* hp = dynamic_cast ( tree->find("3") ); AIDA::IHistogram1D& h = *hp; (plotter->currentRegion()).plot(h); plotter->refresh(); + plotter->setCurrentRegionNumber(1); + AIDA::IHistogram1D* hp2 = dynamic_cast ( tree->find("1") ); + AIDA::IHistogram1D& h2 = *hp2; + (plotter->currentRegion()).plot(h2); + plotter->refresh(); } } #endif diff --git a/examples/advanced/xray_telescope/src/XrayTelEventAction.cc b/examples/advanced/xray_telescope/src/XrayTelEventAction.cc index cbcf22a354..ae73d3f139 100644 --- a/examples/advanced/xray_telescope/src/XrayTelEventAction.cc +++ b/examples/advanced/xray_telescope/src/XrayTelEventAction.cc @@ -75,13 +75,13 @@ XrayTelEventAction::~XrayTelEventAction() } -void XrayTelEventAction::BeginOfEventAction(const G4Event* Ev) +void XrayTelEventAction::BeginOfEventAction(const G4Event*) { drawEvent = false; } -void XrayTelEventAction::EndOfEventAction(const G4Event* Ev) +void XrayTelEventAction::EndOfEventAction(const G4Event*) { if (drawEvent){ const G4Event* evt = fpEventManager->GetConstCurrentEvent(); diff --git a/examples/advanced/xray_telescope/src/XrayTelVisManager.cc b/examples/advanced/xray_telescope/src/XrayTelVisManager.cc index 728bb4c5de..973e71ce45 100755 --- a/examples/advanced/xray_telescope/src/XrayTelVisManager.cc +++ b/examples/advanced/xray_telescope/src/XrayTelVisManager.cc @@ -67,11 +67,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -124,11 +119,6 @@ void XrayTelVisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); @@ -168,4 +158,3 @@ void XrayTelVisManager::RegisterGraphicsSystems () { #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - diff --git a/examples/advanced/xray_telescope/test.out b/examples/advanced/xray_telescope/test.out new file mode 100644 index 0000000000..eae010a970 --- /dev/null +++ b/examples/advanced/xray_telescope/test.out @@ -0,0 +1,86 @@ +********************************************** + Geant4 version $Name: geant4-06-00 $ + (19-May-2003) + Copyright : Geant4 Collaboration +********************************************** +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) + G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + +phot: Total cross sections from Sandia parametrisation. + +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 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. + +msc: Tables of transport mean free paths. + New model of MSC , computes the lateral + displacement of the particle , too. + PhysicsTables from 100 eV to 100 TeV in 100 bins. + +eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. + delta ray energy sampled from differential Xsection. + PhysicsTables from 1 keV to 100 TeV in 100 bins. + Step function: finalRange(mm)= 1, dRoverRange= 0.2 + +eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV. + log scale extrapolation above 100 GeV + Gamma energy sampled from a parametrised formula. + PhysicsTables from 1 keV to 100 TeV in 100 bins. + +annihil: Total cross section from Heilter formula(annihilation into 2 photons). + gamma energies sampled according Heitler + PhysicsTables from 10 keV to 10 TeV in 100 bins. + +msc: Tables of transport mean free paths. + New model of MSC , computes the lateral + displacement of the particle , too. + PhysicsTables from 100 eV to 100 TeV in 100 bins. +G4AugerData for Element no. 6 are loaded +G4AugerData for Element no. 13 are loaded +G4AugerData for Element no. 14 are loaded +G4AugerData for Element no. 22 are loaded +G4AugerData for Element no. 28 are loaded +G4AugerData for Element no. 79 are loaded +AugerTransitionTable complete + +hLowEIoni: Knock-on electron cross sections . + Good description above the mean excitation energy. + Delta ray energy sampled from differential Xsection. + PhysicsTables from 10 eV to 0.1 TeV in 360 bins. + Electronic stopping power model is ICRU_R49p + from 1 keV to 2 MeV . + + Parametrisation model for antiprotons is ICRU_R49p + from 25 keV to 2 MeV . + Parametrization of the Barkas effect is switched on. + Nuclear stopping power model is ICRU_R49 +### Run : 0 +Start Run processing. +Run terminated. +Run Summary + Number of events processed : 100000 + User=492.24s Real=494.56s Sys=0.09s +End of Run summary + +Total Entering Detector : 5 +Total Entering Detector Energy : 1.81593 MeV +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. diff --git a/examples/extended/analysis/A01/.cvsignore b/examples/extended/analysis/A01/.cvsignore new file mode 100644 index 0000000000..1c44a5e0eb --- /dev/null +++ b/examples/extended/analysis/A01/.cvsignore @@ -0,0 +1,3 @@ +A01.aida +G4Output.zip + diff --git a/examples/extended/analysis/A01/A01.aida b/examples/extended/analysis/A01/A01.aida deleted file mode 100644 index eda0e960f0..0000000000 Binary files a/examples/extended/analysis/A01/A01.aida and /dev/null differ diff --git a/examples/extended/analysis/A01/A01app.cc b/examples/extended/analysis/A01/A01app.cc index 042eb97c4f..d7a16eec83 100644 --- a/examples/extended/analysis/A01/A01app.cc +++ b/examples/extended/analysis/A01/A01app.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01app.cc,v 1.3 2002/12/13 11:34:27 gunter Exp $ +// $Id: A01app.cc,v 1.5 2003/10/13 01:55:51 asaim Exp $ // -------------------------------------------------------------- // // -------------------------------------------------------------- @@ -39,9 +39,11 @@ #include "A01DetectorConstruction.hh" #include "A01PhysicsList.hh" #include "A01PrimaryGeneratorAction.hh" -#include "A01EventAction.hh" + #include "A01TrackingAction.hh" +#include "A01EventAction.hh" + #ifdef G4VIS_USE #include "A01VisManager.hh" #endif @@ -69,7 +71,7 @@ int main(int argc,char** argv) // optional user action classes runManager->SetUserAction(new A01EventAction); - runManager->SetUserAction(new A01TrackingAction); + //runManager->SetUserAction(new A01TrackingAction); if(argc>1) // execute an argument macro file if exist diff --git a/examples/extended/analysis/A01/GNUmakefile b/examples/extended/analysis/A01/GNUmakefile index 952cb63ebb..0289e649f1 100644 --- a/examples/extended/analysis/A01/GNUmakefile +++ b/examples/extended/analysis/A01/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2002/12/13 11:34:27 gunter Exp $ +# $Id: GNUmakefile,v 1.6 2003/10/15 17:58:11 duns Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module # -------------------------------------------------------------- @@ -19,8 +19,36 @@ include $(G4INSTALL)/config/binmake.gmk CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O)) -ifeq ($(G4SYSTEM),Linux-g++) +# +# A01HadronPhysics fails to compile in optimized mode on Linux, Darwin, using g++ +# so it needs this special rule. Hans-Peter Wellish. +# +ifeq ($(G4SYSTEM),Linux-g++) + A01HADRON_NO_OPTIMIZE = 1 +endif +ifeq ($(G4SYSTEM),Linux-g++2) + A01HADRON_NO_OPTIMIZE = 1 +endif +ifeq ($(G4SYSTEM),Linux-g++3) + A01HADRON_NO_OPTIMIZE = 1 +endif +ifeq ($(G4SYSTEM),Darwin-g++) + A01HADRON_NO_OPTIMIZE = 1 +endif +ifeq ($(G4SYSTEM),Darwin-g++2) + A01HADRON_NO_OPTIMIZE = 1 +endif +ifeq ($(G4SYSTEM),Darwin-g++3) + A01HADRON_NO_OPTIMIZE = 1 +endif + +ifdef A01HADRON_NO_OPTIMIZE $(G4TMP)/$(G4SYSTEM)/$(name)/A01HadronPhysics.o: src/A01HadronPhysics.cc - @echo "Compiling A01HadronPhysics.cc ..." + @echo "Compiling A01HadronPhysics.cc without optimization..." @$(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/A01HadronPhysics.cc endif + +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --include` + LOADLIBS += `aida-config --lib` +endif diff --git a/examples/extended/analysis/A01/History b/examples/extended/analysis/A01/History index e6060596e8..b611e37610 100644 --- a/examples/extended/analysis/A01/History +++ b/examples/extended/analysis/A01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2003/04/04 17:29:39 duns Exp $ +$Id: History,v 1.21 2003/12/01 19:12:36 perl Exp $ ------------------------------------------------------------------- ========================================================= @@ -9,7 +9,77 @@ $Id: History,v 1.5 2003/04/04 17:29:39 duns Exp $ * Reverse chronological order (last date on top), please * ---------------------------------------------------------- ---------------------------------------------------------------------------- +--------------------------------------------------------------------------- + + 1st December 2003 Joseph Perl +- Removed endOfEventAction.mac since new vis policy provides such a flush + automatically. +- Updated README to include more information about HepRep2 macros. + +17th November 2003 Makoto Asai (exampleA01-V05-02-00) +- Introducing test.in macro for batch mode testing and its reference output. + +13th November 2003 John Allison +- Removed OPACS from Vis Manager. + +15th October 2003 Mark Donszelmann +- Updated README.JAIDA to refer to the proper versions of JAIDA and AIDAJNI. + Also changed compilation instructions to use aida-config. +- Made sure G4HadronPhysics is compiled without optmization on Darwin-g++, + Darwin-g++2 and Darwin-g++3 (MacOS X). + +14th October 2003 Mark Donszelmann +- Added clear statement to GNUmakefile that G4HadronPhysics is compiled + without optimization. +- Made sure G4HadronPhysics is compiled without optimization on Linux-g++, + Linux-g++2 and Linux-g++3. + +14th October 2003 Joseph Perl +- Remove SetForceWireFrame(false) from three hit classes since these + are redundant to the SetForceSolid(true) statements already there. + +14th October 2003 Joseph Perl +- Remove SetForceWireFrame(true) statements from A01DetectorConstruction.cc. + The user can instead control this at runtime using /vis/viewer/set/style + +13th October 2003 Mark Donszelmann +- Re-included A01EventActionMessenger in general (non G4ANALYSIS_USE) compilation + for use with A01EventACtion, see comment below. +- Removed all include/AIDA include files and changed the GNUmakefile. + To compile/link with G4ANALYSIS_USE you will need an AIDA 3.0 compliant + implementation, such as AIDAJNI. The makefile will execute aida-config + to find the include files and the libraries to link with. +- setup-analysis.csh/sh/win32 now only sets up G4 specific flags to compile + in the AIDA analysis framework. + +13th October 2003 Joseph Perl +- Minor changes to README's sections on vis and analysis. + +12th October 2003 Makoto Asai +- Move G4ANALYSIS_USE ifdef blocks so that event summary is printed out + regardless of this flag. Only the AIDA part in A01EventAction is + blocked. + +12th October 2003 Joseph Perl +- Modify G4TrackingAction to use G4Trajectory rather than A01Trajectory. + This allows trajectories to pick up physics attributes. + Left A01Trajectory in place as alternative to get color coding by + particle type, but no physics attributes. + Will later come up with a good scheme to make choice of one or the other + or both of these choices at run time. +- Renamed visualization macro heprep.mac to vis.mac + +20th August 2003 Mark Donszelmann +- Updated code to run with AIDAJNI 3.0.3 release, which adds compilation + under g++ 3.2. +- Added aida.mac example file. + +14th August 2003 Mark Donszelmann +- Code will only compile AIDA parts if G4ANALYSIS_USE is set. + +11th July 2003 Mark Donszelmann +- Fixed all warnings under g++ 2.95.3. + 3rd April 2003 Mark Donszelmann (examples-analysis-A01-V05-00-00) - Added 2 more histograms to the example - Fixed NullPointerException by letting SDManager delete the detectors created in @@ -21,4 +91,4 @@ $Id: History,v 1.5 2003/04/04 17:29:39 duns Exp $ - Fixed minimum value for EmCalHit color to be visible (0.4). 14th November 2002 Mark Donszelmann -- Added A01 example to repository \ No newline at end of file +- Added A01 example to repository diff --git a/examples/extended/analysis/A01/README b/examples/extended/analysis/A01/README index 8c17582a2c..3e20f9d51f 100644 --- a/examples/extended/analysis/A01/README +++ b/examples/extended/analysis/A01/README @@ -1,13 +1,212 @@ -A01 Example ------------ -By default (without sourcing setup-analysis) the compilation -will link in a DummyAnalysisFactory which will not produce -anything for analysis. +$Id: README,v 1.8 2003/12/01 19:12:38 perl Exp $ -The default graphics drivers are always linked in and can be used -to generate event output. + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= -You can link this example with a specific AIDA compliant -analysis implementation. See other READMEs. + Extended Example A01 + -------------------- -README.JAIDA for linking JAIDA to Geant4. + Example A01 implements a double-arm spectrometer with wire chambers, + hodoscopes and calorimeters. Event simulation and collection are + enabled, as well as event display and analysis. This example is + extensively documented on the Geant4 Workshop Tutorial CD available at: + http://geant4.slac.stanford.edu/g4cd/Welcome.html + + + 1. GEOMETRY + + The spectrometer consists of two detector arms. One arm provides + position and timing information of the incident particle while the + other collects position, timing and energy information of the particle + after it has been deflected by a magnetic field centered at the + spectrometer pivot point. + + - First arm: box filled with air, also containing: + + 1 hodoscope (15 vertical strips of plastic scintillator) + 1 drift chamber (5 horizontal argon gas layers with a + "virtual wire" at the center of each layer) + + - Magnetic field region: air-filled cylinder which contains + the field + + - Second arm: box filled with air, also containing: + + 1 hodoscope (25 vertical strips of plastic scintillator) + 1 drift chamber (5 horizontal argon gas layers with a + "virtual wire" at the center of each layer) + 1 electromagnetic calorimeter: + a box sub-divided along x,y and z + axes into cells of CsI + 1 hadronic calorimeter: + a box sub-divided along x,y, and z axes + into cells of lead, with a layer of + plastic scintillator placed at the center + of each cell + + + 2. PHYSICS + + This example uses the following physics processes: + + - electromagnetic: + photo-electric effect + Compton scattering + pair production + bremsstrahlung + ionization + multiple scattering + annihilation + + - decay + + - transportation in a field + + and defines the following particles: + geantino, charged geantino, gamma, all leptons, + pions, charged kaons + + Note that even though hadrons are defined, no hadronic processes + are invoked in this example. + + + + + 3. EVENT: + + An event consists of the generation of a single particle which is + transported through the first spectrometer arm. Here, a scintillator + hodoscope records the reference time of the particle before it passes + through a drift chamber where the particle position is measured. + Momentum analysis is performed as the particle passes through a magnetic + field at the spectrometer pivot and then into the second spectrometer + arm. In the second arm, the particle passes through another hodoscope + and drift chamber before interacting in the electromagnetic calorimeter. + Here it is likely that particles will induce electromagnetic showers. + The shower energy is recorded in a three-dimensional array of CsI + crystals. Secondary particles from the shower, as well as primary + particles which do not interact in the CsI crystals, pass into the + hadronic calorimeter. Here, the remaining energy is collected in a + three-dimensional array of scintillator-lead sandwiches. + + Several aspects of the event may be changed interactively by the user: + + - initial particle type + - initial momentum and angle + - momentum and angle spreads + - type of initial particle may be randomized + - strength of magnetic field + - angle of the second spectrometer arm + + + 4. DETECTOR RESPONSE: + + All the information required to simulate and analyze an event is + recorded in HITS. This information is recorded in the following + sensitive detectors: + + - hodoscope: + particle time + particle position + strip ID + + - drift chamber: + particle time + particle position + layer ID + + - electromagnetic calorimeter: + particle position + energy deposited in cell + cell ID + + - hadronic calorimeter: + particle position + energy deposited in cell + cell ID + + + 5. VISUALIZATION: + + Simulated events can be displayed on top of a representation of + the spectrometer. + + vis.mac outputs HepRep version 1 files suitable for viewing in WIRED. + Change the /vis/open line from HepRepFile to DAWNFILE to instead + make .prim files suitable for viewing in DAWN. + + heprep2-000-gz.mac outputs a series of gzipped HepRep version 2 files + each containing a single event, suitable for viewing in WIRED (there + is no need to ungzip them since WIRED can do this itself). + + heprep2zip.mac outputs a single zip file that unzips to a series of + HepRep version 2 files, each each containing a single event (unzip + the single file by hand, then view the resulting individial HepRep + files in WIRED). + + heprep2-000-zip.mac outputs a series of zipped HepRep version 2 files + each containing a single event (not yet viewable in WIRED unless you + explicitly unzip them before viewing). + + heprep2.mac outputs a HepRep version 2 file with multiple events + appended to a single file in an experimental manner (not yet viewable + in WIRED). + + heprep2gz.mac outputs a HepRep version 2 file with multiple events + appended to a single file in an experimental manner (not yet viewable + in WIRED). + + For more information on visualization with this A01 example, + see the visualization tutorials on the Geant4 Workshop Tutorial CD + available at: + http://geant4.slac.stanford.edu/g4cd/Welcome.html + + 6. ANALYSIS: + + This example implements an AIDA-compliant analysis system which + creates histograms, ntuples and plotters. At the completion of a + simulation run a file A01.aida is produced which contains these + data structures. This file can be used as an input to the Java + Analysis Studio (JAS) which allows the histograms and ntuples to + examined, manipulated, saved and printed. For further details, + see README.JAIDA. + + + 7. GETTING STARTED: + + Build the A01 executable: + + cd to A01 + gmake clean + gmake + + gmake will create tmp and bin directories in your work directory. + The executable, named A01app, will be in /bin/$G4SYSTEM/ + + While in directory A01, run the executable: + + ../bin/$G4SYSTEM/A01app + + which will bring up the interactive prompt: + + Idle> + + To run 10 events you can now enter: + + /run/beamOn 10 + + If all goes well, a JAS window will appear containing two histograms + and three scatterplots. + + To terminate the job, at the prompt enter: + + exit + + Currently you must also close the JAS-AIDA window to get the job to stop. + + + In the A01 directory will be a file A01.aida which contains the plots. + To examine them + + /usr/local.bin/jas3 & or jas3 & diff --git a/examples/extended/analysis/A01/README.JAIDA b/examples/extended/analysis/A01/README.JAIDA index 3a8c177975..0f33dadd0f 100644 --- a/examples/extended/analysis/A01/README.JAIDA +++ b/examples/extended/analysis/A01/README.JAIDA @@ -1,18 +1,29 @@ -JAIDA-Geant4 -============ -http://java.freehep.org/jaida/index.html ------------ +$Id: README.JAIDA,v 1.4 2003/11/07 23:58:24 duns Exp $ -Ported to: Linux-g++, WIN32-VC, SUN-CC, Darwin-g++, Darwin-g++ +Geant4 JAIDA using AIDAJNI +========================== +JAIDA is an implementation of AIDA in Java. To use this implementation Geant4 +needs Java as well as AIDAJNI, a connector between AIDA-C++ and AIDA-Java. -To link with JAIDA and JAS, make sure you have: +Installation +------------ +Available for: Linux-g++2, Linux-g++3, WIN32-VC, SUN-CC, Darwin-g++2, Darwin-g++3 -1. JDK_HOME set to your Java Standard Development Kit (1.4.x or up). -2. the JAIDA-x.x.x-Geant4.x.x tar or zip file overlayed on geant4. -3. GEANT4_HOME set to your geant4 directory. +To compile and link with JAIDA using AIDAJNI, make sure you have: + +1. JAIDA version 3.2.0, see http://java.freehep.org/jaida +2. set enviroment variable JAIDA_HOME to your JAIDA installation +3. source the aida-setup script $JAIDA_HOME/bin/aida-setup.[sh|csh|win32] + +4. AIDAJNI version 3.0.4 or 3.2.0, or better, see http://java.freehep.org/aidajni +5. set environment variable AIDAJNI_HOME to your AIDAJNI installation +6. set environment variable JDK_HOME to your Java Standard Development Kit (1.4.x or up). +7. source the aidajni-setup script $AIDAJNI_HOME/bin/$G4SYSTEM/aidajni-setup.[sh|csh|win32] now execute: source setup-analysis (.csh, .sh, .win32) +gmake clean gmake + diff --git a/examples/extended/analysis/A01/aida.mac b/examples/extended/analysis/A01/aida.mac new file mode 100644 index 0000000000..973af5b4be --- /dev/null +++ b/examples/extended/analysis/A01/aida.mac @@ -0,0 +1,2 @@ +/run/beamOn 20 + diff --git a/examples/extended/analysis/A01/eventAction.mac b/examples/extended/analysis/A01/eventAction.mac deleted file mode 100644 index 7f62e61405..0000000000 --- a/examples/extended/analysis/A01/eventAction.mac +++ /dev/null @@ -1,2 +0,0 @@ -# -/vis/viewer/flush diff --git a/examples/extended/analysis/A01/heprep.mac b/examples/extended/analysis/A01/heprep2-000-gz.mac similarity index 56% rename from examples/extended/analysis/A01/heprep.mac rename to examples/extended/analysis/A01/heprep2-000-gz.mac index 82ff553412..2f9a8826fb 100644 --- a/examples/extended/analysis/A01/heprep.mac +++ b/examples/extended/analysis/A01/heprep2-000-gz.mac @@ -1,18 +1,24 @@ # # Macro file for A01app # -# For initialization of graphics. +# This file does visualization using the HepRep2 format. +# This format is not yet ready for general use (still being debugged). +# +/run/verbose 2 +# # # Create empty scene ("world" is default) # -/vis/scene/create +/vis/scene/create A01Output.heprep.gz +/vis/heprep/setEventNumberSuffix -000 + # # Create a scene handler for a specific graphics system # Edit the next line(s) to choose another graphic system # -/vis/open HepRepFile +/vis/open HepRepXML /vis/viewer/set/culling global false -/vis/scene/endOfEventAction accumulate +#/vis/scene/endOfEventAction accumulate # # Add volume to scene # @@ -26,22 +32,11 @@ # /vis/scene/add/hits # -# Do runs +# Do runs +# /tracking/storeTrajectory 1 -# Run 10 events and store event displays -/run/beamOn 10 eventAction.mac -# /mydet/armAngle 60. deg -/mydet/fieldValue 2. tesla -/run/beamOn 10 -# -/mydet/armAngle 30. deg +/mydet/fieldValue 4. tesla /mydet/momentum 2. GeV -/mydet/sigmaMomentum 0. -/mydet/sigmaAngle 0. +/gun/particle e+ /run/beamOn 10 -# -/mydet/sigmaAngle 2. deg -/run/beamOn 10 -/vis/viewer/flush -# diff --git a/examples/extended/analysis/A01/heprep2-000-zip.mac b/examples/extended/analysis/A01/heprep2-000-zip.mac new file mode 100644 index 0000000000..35e5421d17 --- /dev/null +++ b/examples/extended/analysis/A01/heprep2-000-zip.mac @@ -0,0 +1,42 @@ +# +# Macro file for A01app +# +# This file does visualization using the HepRep2 format. +# This format is not yet ready for general use (still being debugged). +# +/run/verbose 2 +# +# +# Create empty scene ("world" is default) +# +/vis/scene/create A01Output.heprep.zip +/vis/heprep/setEventNumberSuffix -000 + +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open HepRepXML +/vis/viewer/set/culling global false +#/vis/scene/endOfEventAction accumulate +# +# Add volume to scene +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# Do runs +# +/tracking/storeTrajectory 1 +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/heprep2.mac b/examples/extended/analysis/A01/heprep2.mac index 762b071c9a..a900a70973 100644 --- a/examples/extended/analysis/A01/heprep2.mac +++ b/examples/extended/analysis/A01/heprep2.mac @@ -1,11 +1,12 @@ # # Macro file for A01app # -# For initialization of graphics. +/run/verbose 2 +# # # Create empty scene ("world" is default) # -/vis/scene/create G4Output +/vis/scene/create A01Output.heprep # # Create a scene handler for a specific graphics system # Edit the next line(s) to choose another graphic system @@ -27,23 +28,10 @@ /vis/scene/add/hits # # Do runs -#/tracking/storeTrajectory 1 -# Run 1 events and store event displays +# +/tracking/storeTrajectory 1 /mydet/armAngle 60. deg /mydet/fieldValue 4. tesla /mydet/momentum 2. GeV /gun/particle e+ -/run/beamOn 1 -# -#/run/beamOn 10 -# -#/mydet/armAngle 30. deg -# -#/mydet/sigmaMomentum 0. -#/mydet/sigmaAngle 0. -#/run/beamOn 10 -# -#/mydet/sigmaAngle 2. deg -#/run/beamOn 10 -/vis/viewer/flush -# +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/heprep2gz.mac b/examples/extended/analysis/A01/heprep2gz.mac new file mode 100644 index 0000000000..3da08a6281 --- /dev/null +++ b/examples/extended/analysis/A01/heprep2gz.mac @@ -0,0 +1,39 @@ +# +# Macro file for A01app +# +# This file does visualization using the HepRep2 format. +# This format is not yet ready for general use (still being debugged). +# +/run/verbose 2 +# +# +# Create empty scene ("world" is default) +# +/vis/scene/create A01Output.heprep.gz +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open HepRepXML +/vis/viewer/set/culling global false +# +# Add volume to scene +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# Do runs +# +/tracking/storeTrajectory 1 +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/heprep2zip.mac b/examples/extended/analysis/A01/heprep2zip.mac new file mode 100644 index 0000000000..3473e4bad6 --- /dev/null +++ b/examples/extended/analysis/A01/heprep2zip.mac @@ -0,0 +1,39 @@ +# +# Macro file for A01app +# +# This file does visualization using the HepRep2 format. +# This format is not yet ready for general use (still being debugged). +# +/run/verbose 2 +# +# +# Create empty scene ("world" is default) +# +/vis/scene/create A01Output.heprep.zip +# +# Create a scene handler for a specific graphics system +# Edit the next line(s) to choose another graphic system +# +/vis/open HepRepXML +/vis/viewer/set/culling global false +# +# Add volume to scene +# +/vis/scene/add/volume +# +# Add trajectories to scene +# +/vis/scene/add/trajectories +# +# Add hits to scene +# +/vis/scene/add/hits +# +# Do runs +# +/tracking/storeTrajectory 1 +/mydet/armAngle 60. deg +/mydet/fieldValue 4. tesla +/mydet/momentum 2. GeV +/gun/particle e+ +/run/beamOn 10 diff --git a/examples/extended/analysis/A01/include/A01AnalysisManager.hh b/examples/extended/analysis/A01/include/A01AnalysisManager.hh index e3dea4c048..6c5b0e550e 100644 --- a/examples/extended/analysis/A01/include/A01AnalysisManager.hh +++ b/examples/extended/analysis/A01/include/A01AnalysisManager.hh @@ -50,33 +50,34 @@ using namespace AIDA; -class G4Track; - class AIDA::IAnalysisFactory; class AIDA::ITree; class AIDA::IHistogramFactory; class AIDA::ITupleFactory; class AIDA::IPlotter; +class G4Track; + class A01AnalysisManager { public: virtual ~A01AnalysisManager(); + static A01AnalysisManager* getInstance(); + static void dispose(); + IHistogramFactory* getHistogramFactory(); ITupleFactory* getTupleFactory(); IPlotter* createPlotter(); - static A01AnalysisManager* getInstance(); - static void dispose(); private: A01AnalysisManager(); static A01AnalysisManager* instance; + IAnalysisFactory* analysisFactory; IHistogramFactory* hFactory; ITupleFactory* tFactory; ITree* tree; - }; #endif diff --git a/examples/extended/analysis/A01/include/A01EMPhysics.hh b/examples/extended/analysis/A01/include/A01EMPhysics.hh index acc8a5708d..e32d67310b 100644 --- a/examples/extended/analysis/A01/include/A01EMPhysics.hh +++ b/examples/extended/analysis/A01/include/A01EMPhysics.hh @@ -20,9 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EMPhysics.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// $Id: A01EMPhysics.hh,v 1.4 2003/10/11 02:59:59 tkoi Exp $ // -------------------------------------------------------------- // +// 09-Oct-2003 Chhange gamma, electron, positorn process T. Koi + #ifndef A01EMPhysics_h #define A01EMPhysics_h 1 @@ -57,27 +59,8 @@ class A01EMPhysics : public G4VPhysicsConstructor virtual void ConstructProcess(); protected: - // Gamma physics - G4PhotoElectricEffect thePhotoEffect; - G4ComptonScattering theComptonEffect; - G4GammaConversion thePairProduction; - // Electron physics - G4MultipleScattering theElectronMultipleScattering; - G4eIonisation theElectronIonisation; - G4eBremsstrahlung theElectronBremsStrahlung; - - //Positron physics - G4MultipleScattering thePositronMultipleScattering; - G4eIonisation thePositronIonisation; - G4eBremsstrahlung thePositronBremsStrahlung; - G4eplusAnnihilation theAnnihilation; }; #endif - - - - - diff --git a/examples/extended/analysis/A01/include/A01EventAction.hh b/examples/extended/analysis/A01/include/A01EventAction.hh index bde75e7b26..4abfdee70d 100644 --- a/examples/extended/analysis/A01/include/A01EventAction.hh +++ b/examples/extended/analysis/A01/include/A01EventAction.hh @@ -20,17 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EventAction.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// $Id: A01EventAction.hh,v 1.5 2003/10/13 01:55:53 asaim Exp $ // -------------------------------------------------------------- // #ifndef A01EventAction_h #define A01EventAction_h 1 -#include "AIDA/AIDA.h" + #include "G4UserEventAction.hh" #include "globals.hh" +#ifdef G4ANALYSIS_USE +#include "AIDA/AIDA.h" using namespace AIDA; +#endif // G4ANALYSIS_USE class A01EventActionMessenger; @@ -50,13 +53,12 @@ class A01EventAction : public G4UserEventAction G4int DHC1ID; G4int DHC2ID; G4int ECHCID; -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ G4int HCHCID; -//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ A01EventActionMessenger* messenger; G4int verboseLevel; +#ifdef G4ANALYSIS_USE IHistogram1D* dc1Hits; IHistogram1D* dc2Hits; ICloud2D* dc1XY; @@ -64,6 +66,7 @@ class A01EventAction : public G4UserEventAction ICloud2D* evstof; ITuple* tuple; IPlotter* plotter; +#endif // G4ANALYSIS_USE public: inline void SetVerbose(G4int val) { verboseLevel = val; } diff --git a/examples/extended/analysis/A01/include/A01EventActionMessenger.hh b/examples/extended/analysis/A01/include/A01EventActionMessenger.hh index 39c772d93d..eaa947d813 100644 --- a/examples/extended/analysis/A01/include/A01EventActionMessenger.hh +++ b/examples/extended/analysis/A01/include/A01EventActionMessenger.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EventActionMessenger.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// $Id: A01EventActionMessenger.hh,v 1.5 2003/10/13 17:57:49 duns Exp $ // -------------------------------------------------------------- // #ifndef A01EventActionMessenger_h diff --git a/examples/extended/analysis/A01/include/A01HadronPhysics.hh b/examples/extended/analysis/A01/include/A01HadronPhysics.hh index eed7bfb500..19bc657b1f 100644 --- a/examples/extended/analysis/A01/include/A01HadronPhysics.hh +++ b/examples/extended/analysis/A01/include/A01HadronPhysics.hh @@ -20,9 +20,10 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HadronPhysics.hh,v 1.3 2002/12/13 11:34:28 gunter Exp $ +// $Id: A01HadronPhysics.hh,v 1.4 2003/10/11 02:59:59 tkoi Exp $ // -------------------------------------------------------------- // +// 10-Oct-2003 Full Hadron Processes with Parameterization Model T. Koi #ifndef A01HadronPhysics_h #define A01HadronPhysics_h 1 @@ -34,6 +35,98 @@ #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" + +// 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 A01HadronPhysics : public G4VPhysicsConstructor { public: @@ -51,19 +144,6 @@ class A01HadronPhysics : public G4VPhysicsConstructor virtual void ConstructProcess(); protected: - // pi+/- physics - G4MultipleScattering fPiPlusMultipleScattering; - G4hIonisation fPiPlusIonisation; - - G4MultipleScattering fPiMinusMultipleScattering; - G4hIonisation fPiMinusIonisation; - - // K+/- physics - G4MultipleScattering fKaonPlusMultipleScattering; - G4hIonisation fKaonPlusIonisation; - - G4MultipleScattering fKaonMinusMultipleScattering; - G4hIonisation fKaonMinusIonisation; }; diff --git a/examples/extended/analysis/A01/include/A01IonPhysics.hh b/examples/extended/analysis/A01/include/A01IonPhysics.hh index e308e6f10b..7d4e919af4 100644 --- a/examples/extended/analysis/A01/include/A01IonPhysics.hh +++ b/examples/extended/analysis/A01/include/A01IonPhysics.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01IonPhysics.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// $Id: A01IonPhysics.hh,v 1.4 2003/10/11 02:59:59 tkoi Exp $ // -------------------------------------------------------------- // @@ -64,36 +64,6 @@ class A01IonPhysics : public G4VPhysicsConstructor virtual void ConstructProcess(); protected: - // Elastic Process - G4HadronElasticProcess theElasticProcess; - G4LElastic* theElasticModel; - - // Generic Ion physics - G4MultipleScattering fIonMultipleScattering; - G4hIonisation fIonIonisation; - - // Deuteron physics - G4MultipleScattering fDeuteronMultipleScattering; - G4hIonisation fDeuteronIonisation; - G4DeuteronInelasticProcess fDeuteronProcess; - G4LEDeuteronInelastic* fDeuteronModel; - - // Triton physics - G4MultipleScattering fTritonMultipleScattering; - G4hIonisation fTritonIonisation; - G4TritonInelasticProcess fTritonProcess; - G4LETritonInelastic* fTritonModel; - - // Alpha physics - G4MultipleScattering fAlphaMultipleScattering; - G4hIonisation fAlphaIonisation; - G4AlphaInelasticProcess fAlphaProcess; - G4LEAlphaInelastic* fAlphaModel; - - // He3 physics - G4MultipleScattering fHe3MultipleScattering; - G4hIonisation fHe3Ionisation; - }; diff --git a/examples/extended/analysis/A01/include/A01MuonPhysics.hh b/examples/extended/analysis/A01/include/A01MuonPhysics.hh index f4be398339..33f6fd0e25 100644 --- a/examples/extended/analysis/A01/include/A01MuonPhysics.hh +++ b/examples/extended/analysis/A01/include/A01MuonPhysics.hh @@ -20,9 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01MuonPhysics.hh,v 1.3 2002/12/13 11:34:29 gunter Exp $ +// $Id: A01MuonPhysics.hh,v 1.4 2003/10/11 02:59:59 tkoi Exp $ // -------------------------------------------------------------- // +// 09-Oct-2003 mu+- tau+- processes are changed by T. Koi + #ifndef A01MuonPhysics_h #define A01MuonPhysics_h 1 @@ -54,23 +56,6 @@ class A01MuonPhysics : public G4VPhysicsConstructor virtual void ConstructProcess(); protected: - // Muon physics - G4MultipleScattering fMuPlusMultipleScattering; - G4MuBremsstrahlung fMuPlusBremsstrahlung ; - G4MuPairProduction fMuPlusPairProduction; - G4MuIonisation fMuPlusIonisation; - - G4MultipleScattering fMuMinusMultipleScattering; - G4MuBremsstrahlung fMuMinusBremsstrahlung ; - G4MuPairProduction fMuMinusPairProduction; - G4MuIonisation fMuMinusIonisation; - - // Tau physics - G4MultipleScattering fTauPlusMultipleScattering; - G4hIonisation fTauPlusIonisation; - - G4MultipleScattering fTauMinusMultipleScattering; - G4hIonisation fTauMinusIonisation; }; diff --git a/examples/extended/analysis/A01/include/A01Trajectory.hh b/examples/extended/analysis/A01/include/A01Trajectory.hh index 033a31dc1a..ff1ffb15ab 100644 --- a/examples/extended/analysis/A01/include/A01Trajectory.hh +++ b/examples/extended/analysis/A01/include/A01Trajectory.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01Trajectory.hh,v 1.4 2003/06/16 16:46:59 gunter Exp $ +// $Id: A01Trajectory.hh,v 1.5 2003/07/11 21:32:02 duns Exp $ // -------------------------------------------------------------- // @@ -34,6 +34,7 @@ class A01Trajectory; #include // Include from 'system' #include "G4ios.hh" // Include from 'system' #include // +#include // #include "globals.hh" // Include from 'global' #include "G4ParticleDefinition.hh" // Include from 'particle+matter' #include "G4TrajectoryPoint.hh" // Include from 'tracking' @@ -83,6 +84,7 @@ class A01Trajectory : public G4VTrajectory // Other member functions virtual void ShowTrajectory() const; + virtual void ShowTrajectory(std::ostream& o) const; virtual void DrawTrajectory(G4int i_mode=0) const; virtual void AppendStep(const G4Step* aStep); virtual void MergeTrajectory(G4VTrajectory* secondTrajectory); diff --git a/examples/extended/analysis/A01/include/AIDA/AIDA.h b/examples/extended/analysis/A01/include/AIDA/AIDA.h deleted file mode 100644 index 5332825ced..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/AIDA.h +++ /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. * -// ******************************************************************** -// -#ifndef AIDA_H -#define AIDA_H 1 - -#include "AIDA/IAnalysisFactory.h" -#include "AIDA/IAnnotation.h" -#include "AIDA/IAxis.h" -#include "AIDA/IAxisStyle.h" -#include "AIDA/IBaseHistogram.h" -#include "AIDA/IBaseStyle.h" -#include "AIDA/IBrushStyle.h" -#include "AIDA/ICloud.h" -#include "AIDA/ICloud1D.h" -#include "AIDA/ICloud2D.h" -#include "AIDA/ICloud3D.h" -#include "AIDA/IConstants.h" -#include "AIDA/IDataPoint.h" -#include "AIDA/IDataPointSet.h" -#include "AIDA/IDataPointSetFactory.h" -#include "AIDA/IDataStyle.h" -#include "AIDA/IEvaluator.h" -#include "AIDA/IFillStyle.h" -#include "AIDA/IFilter.h" -#include "AIDA/IFitData.h" -#include "AIDA/IFitFactory.h" -#include "AIDA/IFitParameterSettings.h" -#include "AIDA/IFitResult.h" -#include "AIDA/IFitter.h" -#include "AIDA/IFunction.h" -#include "AIDA/IFunctionCatalog.h" -#include "AIDA/IFunctionFactory.h" -#include "AIDA/IHistogram.h" -#include "AIDA/IHistogram1D.h" -#include "AIDA/IHistogram2D.h" -#include "AIDA/IHistogram3D.h" -#include "AIDA/IHistogramFactory.h" -#include "AIDA/IInfo.h" -#include "AIDA/IInfoStyle.h" -#include "AIDA/ILineStyle.h" -#include "AIDA/IManagedObject.h" -#include "AIDA/IMarkerStyle.h" -#include "AIDA/IMeasurement.h" -#include "AIDA/IModelFunction.h" -#include "AIDA/IPlotter.h" -#include "AIDA/IPlotterFactory.h" -#include "AIDA/IPlotterLayout.h" -#include "AIDA/IPlotterRegion.h" -#include "AIDA/IPlotterStyle.h" -#include "AIDA/IProfile.h" -#include "AIDA/IProfile1D.h" -#include "AIDA/IProfile2D.h" -#include "AIDA/IRangeSet.h" -#include "AIDA/ITextStyle.h" -#include "AIDA/ITitleStyle.h" -#include "AIDA/ITree.h" -#include "AIDA/ITreeFactory.h" -#include "AIDA/ITuple.h" -#include "AIDA/ITupleFactory.h" - -#endif /* ifndef AIDA_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IAnalysisFactory.h b/examples/extended/analysis/A01/include/AIDA/IAnalysisFactory.h deleted file mode 100644 index 6ccaef60cc..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IAnalysisFactory.h +++ /dev/null @@ -1,141 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IANALYSISFACTORY_H -#define AIDA_IANALYSISFACTORY_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -namespace AIDA { - -class IDataPointSetFactory; -class IFitFactory; -class IFunctionFactory; -class IHistogramFactory; -class IPlotterFactory; -class ITree; -class ITreeFactory; -class ITupleFactory; - -/** - * The "master" factory from which other factories are obtained. - * Typically accessed by: - *
- *   IAnalysisFactory af =(IAnalysisFactory) ServiceManager.create("hep.aida.IAnalysisFactory");
- * 
- * - * In C++ IAnalysisFactory* af = AIDA_createAnalysisFactory(); - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class IAnalysisFactory { - -public: - /// Destructor. - virtual ~IAnalysisFactory() { /* nop */; } - - /** - * Create an ITreeFactory. - * @return The ITreeFactory. - * - */ - virtual ITreeFactory * createTreeFactory() = 0; - - /** - * Create an IHistogramFactory. - * @param tree The ITree which created histograms will be associated to. - * @return The IHistogramFactory. - * - */ - virtual IHistogramFactory * createHistogramFactory(ITree & tree) = 0; - - /** - * Create an IDataPointSetFactory. - * @param tree The ITree which created IDataPointSet will be associated to. - * @return The IDataPointSetFactory. - * - */ - virtual IDataPointSetFactory * createDataPointSetFactory(ITree & tree) = 0; - - /** - * Create an ITupleFactory. - * @param tree The ITree which created tuples will be associated to. - * @return The ITupleFactory. - * - */ - virtual ITupleFactory * createTupleFactory(ITree & tree) = 0; - - /** - * Create an IFunctionFactory. - * @param tree The ITree which created functions will be associated to. - * @return The IFunctionFactory. - * - */ - virtual IFunctionFactory * createFunctionFactory(ITree & tree) = 0; - - /** - * Create an IPlotterFactory. - * Due to the fact that the plotter factory may activate a GUI - * tookit, the process arguments (passed to the main function) - * could be passed to the plotter factory. Most of the GUI - * toolkit ask for them (Motif, gtk, Qt, FLTK). - */ - - - - - virtual IPlotterFactory * createPlotterFactory(int argc = 0, char * * args = 0) = 0; - - /** - * Create an IFitFactory. - * @return The IFitFactory. - * - */ - virtual IFitFactory * createFitFactory() = 0; -}; // class -}; // namespace AIDA - - - -/** - * To hook an AIDA implementation. - * For example : - * #include - * ... - * IAnalysisFactory* analysisFactory = AIDA_createAnalysisFactory(); - * ... - */ - -extern "C" { - AIDA::IAnalysisFactory* AIDA_createAnalysisFactory(); -} -#endif /* ifndef AIDA_IANALYSISFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IAnnotation.h b/examples/extended/analysis/A01/include/AIDA/IAnnotation.h deleted file mode 100644 index 3fcffbe55b..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IAnnotation.h +++ /dev/null @@ -1,138 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IANNOTATION_H -#define AIDA_IANNOTATION_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - - /** - * The list of the commonly accepted keys. - * - */ -#define titleKey "Title" - -namespace AIDA { - -/** - * The annotation holds arbitrary information represented with (key,value) pairs - * of strings. A sticky bit is associated to every item to protect it (or not) - * from a reset operation. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IAnnotation { - -public: - /// Destructor. - virtual ~IAnnotation() { /* nop */; } - - /** - * Add a key/value pair with a given sticky flag. - * If key alredy exists, override its value ? - * @param key The key to be added. - * @param value The key's value. - * @param sticky The key's sticky flag. If true the item will - * not be removed when the method reset or removeItem are invoked. - * The default value for the sticky flag is false. - * @return false If the key already exists. - * - */ - virtual bool addItem(const std::string & key, const std::string & value, bool sticky = false) = 0; - - /** - * Remove the item indicated by a given key. - * @param key The key to be removed. If the key is flagged as "sticky" it - * will not be removed. - * @return false If the key is sticky. - * - */ - virtual bool removeItem(const std::string & key) = 0; - - /** - * Retrieve the value for a given key. - * @param key The key. - * @return The corresponding value. - * - */ - virtual const std::string & value(const std::string & key) const = 0; - - /** - * Set the value for a given key. - * @param key The key whose vale is to be changed. - * @param value The new value. - * - */ - virtual void setValue(const std::string & key, const std::string & value) = 0; - - /** - * Set the sticky flag for a given key. - * @param key The key whose stick flag is to be set. - * @param sticky The new sticky flag. - * - */ - virtual void setSticky(const std::string & key, bool sticky) = 0; - - /** - * Get the size of the IAnnotation, i.e. the number of keys contained in it. - * @return The size of the IAnnotation. - * - */ - virtual int size() const = 0; - - /** - * Get the key at a given position within the IAnnotation. - * @param index The key's position within the IAnnotation. - * @return The corresponding key. - * - */ - virtual const std::string & key(int index) const = 0; - - /** - * Get the value at a given position within the IAnnotation. - * @param index The value's position within the IAnnotation. - * @return The corresponding value. - * - */ - virtual const std::string & value(int index) const = 0; - - /** - * Remove all the non-sticky items. - * - */ - virtual void reset() = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IANNOTATION_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IAxis.h b/examples/extended/analysis/A01/include/AIDA/IAxis.h deleted file mode 100644 index 2154cf6015..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IAxis.h +++ /dev/null @@ -1,124 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IAXIS_H -#define AIDA_IAXIS_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -namespace AIDA { - -/** - * An IAxis represents a binned histogram axis. A 1D Histogram would have - * one Axis representing the X axis, while a 2D Histogram would have two - * axes representing the X and Y Axis. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IAxis { - -public: - /// Destructor. - virtual ~IAxis() { /* nop */; } - - /** - * Check if the IAxis has fixed binning, i.e. if all the bins have the same width. - * @return true if the binning is fixed, false otherwise. - * - */ - virtual bool isFixedBinning() const = 0; - - /** - * Get the lower edge of the IAxis. - * @return The IAxis's lower edge. - * - */ - virtual double lowerEdge() const = 0; - - /** - * Get the upper edge of the IAxis. - * @return The IAxis's upper edge. - * - */ - virtual double upperEdge() const = 0; - - /** - * The number of bins (excluding underflow and overflow) on the IAxis. - * @return The IAxis's number of bins. - * - */ - virtual int bins() const = 0; - - /** - * Get the lower edge of the specified bin. - * @param index The bin number: 0 to bins()-1 for the in-range bins or OVERFLOW or UNDERFLOW. - * @return The lower edge of the corresponding bin; for the underflow bin this is Double.NEGATIVE_INFINITY. - * - */ - virtual double binLowerEdge(int index) const = 0; - - /** - * Get the upper edge of the specified bin. - * @param index The bin number: 0 to bins()-1 for the in-range bins or OVERFLOW or UNDERFLOW. - * @return The upper edge of the corresponding bin; for the overflow bin this is Double.POSITIVE_INFINITY. - * - */ - virtual double binUpperEdge(int index) const = 0; - - /** - * Get the width of the specified bin. - * @param index The bin number: 0 to bins()-1) for the in-range bins or OVERFLOW or UNDERFLOW. - * @return The width of the corresponding bin. - * - */ - virtual double binWidth(int index) const = 0; - - /** - * Convert a coordinate on the axis to a bin number. - * If the coordinate is less than the lowerEdge UNDERFLOW is returned; if the coordinate is greater or - * equal to the upperEdge OVERFLOW is returned. - * @param coord The coordinate to be converted. - * @return The corresponding bin number. - * - */ - virtual int coordToIndex(double coord) const = 0; - - /** - * Constants specifying the underflow and the overflow bin. - * They can be passed to any method accepting a bin number. - * - */ - enum { UNDERFLOW_BIN = -2, OVERFLOW_BIN = -1 }; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IAXIS_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IAxisStyle.h b/examples/extended/analysis/A01/include/AIDA/IAxisStyle.h deleted file mode 100644 index 89401a4c06..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IAxisStyle.h +++ /dev/null @@ -1,75 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IAXISSTYLE_H -#define AIDA_IAXISSTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -#include "AIDA/IBaseStyle.h" - -namespace AIDA { - -class ILineStyle; -class ITextStyle; - -/** - * Style for the part of the scene representing the data - * (then histograms, functions, data point sets). - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IAxisStyle : virtual public IBaseStyle { - -public: - /// Destructor. - virtual ~IAxisStyle() { /* nop */; } - - virtual ILineStyle & lineStyle() = 0; - - virtual ITextStyle & tickLabelStyle() = 0; - - virtual ITextStyle & labelStyle() = 0; - - virtual bool setlineStyle(const ILineStyle & lineStyle) = 0; - - virtual bool setTickLabelStyle(const ITextStyle & tickLabelStyle) = 0; - - virtual bool setLabelStyle(const ITextStyle & labelStyle) = 0; - - virtual void setLabel(const std::string & label) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IAXISSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IBaseHistogram.h b/examples/extended/analysis/A01/include/AIDA/IBaseHistogram.h deleted file mode 100644 index 28bda518af..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IBaseHistogram.h +++ /dev/null @@ -1,103 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IBASEHISTOGRAM_H -#define AIDA_IBASEHISTOGRAM_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class IAnnotation; - -/** - * User level interface to Histogram. - * Provides the common functionality of the histogram-like classes. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IBaseHistogram { - -public: - /// Destructor. - virtual ~IBaseHistogram() { /* nop */; } - - /** - * Get the Histogram's title. - * @return The Histogram's title. - * - */ - virtual const std::string & title() const = 0; - - /** - * Set the histogram title. - * @param title The title. - * @return false If title cannot be changed. - * - */ - virtual bool setTitle(const std::string & title) = 0; - - /** - * Get the IAnnotation associated with the Histogram. - * @return The IAnnotation. - * - */ - virtual IAnnotation & annotation() = 0; - - virtual const IAnnotation & annotation() const = 0; - - /** - * Get the Histogram's dimension. - * @return The Histogram's dimension. - * - */ - virtual int dimension() const = 0; - - /** - * Reset the Histogram; as if just created. - * @return false If something goes wrong. - * - */ - virtual bool reset() = 0; - - /** - * Get the number of in-range entries in the Histogram. - * @return The number of in-range entries. - * - */ - virtual int entries() const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IBASEHISTOGRAM_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IBaseStyle.h b/examples/extended/analysis/A01/include/AIDA/IBaseStyle.h deleted file mode 100644 index 83122cf325..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IBaseStyle.h +++ /dev/null @@ -1,99 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IBASESTYLE_H -#define AIDA_IBASESTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -/** - * Superclass for all styles in AIDA Plotting package. - * All styles can be reset to their original values at construction - * time. In the case of styles which 'contain' other styles (like IStyle - * or IAxisStyle), reset() calls reset() on the aggregated styles too. - * All styles are hierarchical, so the plotter's current style is overridden by the - * region's current style, which is overridden by any 'associated' style - * which is overwritten by any style passed in explicitly at plotting time. - * Parameters and options which have been explicitly set to - * non-default (or default!) values are 'sticky'. For example, if a style - * has the default 'red' and this has been set explicitly to 'blue' at the - * Plotter level, then it will override the default 'red' at the Region level. - * IF the user explicitly sets the region to 'green' (or 'red'!) then it will - * not be overridden by the 'parent' style. - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class IBaseStyle { - -public: - /// Destructor. - virtual ~IBaseStyle() { /* nop */; } - - /** - * Return to original (construction time) state. Explicitly - * set parameters will be set to defaults and may be overridden - */ - virtual void reset() = 0; - - /** - * Set a parameter. - * @param paramName Name of the parameter. - * @param options String of options. - * @return false if parameter (or its options) unknown or invalid. - */ - virtual bool setParameter(const std::string & paramName, const std::string & options = "") = 0; - - /** - * Get value of a parameter. - * @param paramName Name of the parameter. - * @return the value. - */ - virtual std::string parameterValue(const std::string & parameter) const = 0; - - /** - * Get list of the available parameters (implementation-dependent) - */ - virtual std::vector availableParameters() const = 0; - - /** - * Get list of the available options for a given parameter - * (implementation-dependent). - */ - virtual std::vector availableParameterOptions(const std::string & paramName) const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IBASESTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IBrushStyle.h b/examples/extended/analysis/A01/include/AIDA/IBrushStyle.h deleted file mode 100644 index ff9650192b..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IBrushStyle.h +++ /dev/null @@ -1,86 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IBRUSHSTYLE_H -#define AIDA_IBRUSHSTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -#include "AIDA/IBaseStyle.h" - -namespace AIDA { - -/** - * Superclass for anything which can be drawn in different - * colours and with (possibly) transparent/opaque/translucent effect. - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class IBrushStyle : virtual public IBaseStyle { - -public: - /// Destructor. - virtual ~IBrushStyle() { /* nop */; } - - /** - * Get a list of the colours supported by this implementation. - */ - virtual std::vector availableColors() const = 0; - - /** - * Current colour of this brush style. - */ - virtual std::string color() const = 0; - - /** - * Current opacity (alpha) of this brush style. - */ - virtual double opacity() const = 0; - - /** - * Set current colour, e.g. "darkGreen" - * @return false if colour not recognised by the implementation. - */ - virtual bool setColor(const std::string & newColor) = 0; - - /** - * Set opacity (alpha), e.g. 0 (transparent), - * 1 (opaque), 0.5 (halfway). - * @return false if value not supported by the implementation. - */ - virtual bool setOpacity(double newOpacity) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IBRUSHSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ICloud.h b/examples/extended/analysis/A01/include/AIDA/ICloud.h deleted file mode 100644 index 30cda65adf..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ICloud.h +++ /dev/null @@ -1,88 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ICLOUD_H -#define AIDA_ICLOUD_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IBaseHistogram.h" - -namespace AIDA { - -/** - * User level interface to a Cloud. - * A Cloud is an unbinned collection of points. It can be used to - * represent scatter plots or dynamically rebinnable histograms. - * If they number of entries in the cloud exceeds some threshold - * they may be automatically converted to a binned histogram. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class ICloud : virtual public IBaseHistogram { - -public: - /// Destructor. - virtual ~ICloud() { /* nop */; } - - /** - * Get the sum of weights of all the entries. - * @return The sum of the weights of all the entries. - * - */ - virtual double sumOfWeights() const = 0; - - /** - * Convert the ICloud to an IHistogram using the default number of bins. - * @return false If the ICloud has already been converted. - * - */ - virtual bool convertToHistogram() = 0; - - /** - * Check if the ICloud has been converted to an IHistogram. - * @return true if it has been converted. - * - */ - virtual bool isConverted() const = 0; - - /** - * Scale the weights by a given factor. - * @param scaleFactor The scale factor. - * @return false If a non-positive scale factor is provided. - * - */ - virtual bool scale(double scaleFactor) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ICLOUD_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ICloud1D.h b/examples/extended/analysis/A01/include/AIDA/ICloud1D.h deleted file mode 100644 index 557a2488b3..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ICloud1D.h +++ /dev/null @@ -1,171 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ICLOUD1D_H -#define AIDA_ICLOUD1D_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -#include "AIDA/ICloud.h" - -namespace AIDA { - -class IHistogram1D; - -/** - * User level interface to a 1D Cloud. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class ICloud1D : virtual public ICloud { - -public: - /// Destructor. - virtual ~ICloud1D() { /* nop */; } - - /** - * Fill the ICloud1D with a value and a corresponding weight. - * @param x The value. - * @param weight The corresponding weight. By default it is 1. - * @return false If the ICloud1D is full, if the weight's value is - * is not between 0 and 1. - * - */ - virtual bool fill(double x, double weight = 1.) = 0; - - /** - * Get the lower edge of the ICloud1D. - * @return The lower edge. - * - */ - virtual double lowerEdge() const = 0; - - /** - * Get the upper edge of the ICloud1D. - * @return The upper edge. - * - */ - virtual double upperEdge() const = 0; - - /** - * Get the value corresponding to a given entry. - * @param index The entry's index. - * @return The value of the index-th entry. - * If the ICloud1D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double value(int index) const = 0; - - /** - * Get the weight corresponding to a given entry. - * @param index The entry's index. - * @return The weight of the index-th entry. - * If the ICloud1D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double weight(int index) const = 0; - - /** - * Get the mean of the ICloud1D. - * @return The mean. - * - */ - virtual double mean() const = 0; - - /** - * Get the RMS of the ICloud1D. - * @return The RMS. - * - */ - virtual double rms() const = 0; - - /** - * Convert internally the ICloud1D to an IHistogram1D - * with given number of bins, upper edge and lower edge. - * @param nBins The number of bins. - * @param lowerEdge The lower edge. - * @param upperEdge The upper edge. - * @return false If the ICloud1D has already been converted. - * - */ - virtual bool convert(int nBins, double lowerEdge, double upperEdge) = 0; - - /** - * Convert internally the ICloud1D to an IHistogram1D - * with given bin edges. - * @param binEdges The bins edges. - * @return false If the ICloud1D has already been converted. - * - */ - virtual bool convert(const std::vector & binEdges) = 0; - - /** - * Get the internal IHistogram1D in which the ICloud1D converted to. - * @return The histogram. - * or because of a convert() method invocation. - * - */ - virtual const IHistogram1D & histogram() const = 0; - - /** - * Project the ICloud1D on an IHistogram1D. - * @param hist The IHistogram1D to be filled. - * @return false If the ICloud1D is already converted. - * - */ - virtual bool fillHistogram(IHistogram1D & hist) const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ICLOUD1D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ICloud2D.h b/examples/extended/analysis/A01/include/AIDA/ICloud2D.h deleted file mode 100644 index 37a7cf397e..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ICloud2D.h +++ /dev/null @@ -1,223 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ICLOUD2D_H -#define AIDA_ICLOUD2D_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -#include "AIDA/ICloud.h" - -namespace AIDA { - -class IHistogram2D; - -/** - * User level interface to a 2D Cloud. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class ICloud2D : virtual public ICloud { - -public: - /// Destructor. - virtual ~ICloud2D() { /* nop */; } - - /** - * Fill the ICloud2D with a couple of values and a corresponding weight. - * @param x The x value. - * @param y The y value. - * @param weight The corresponding weight. By default it is 1. - * @return false If the ICloud2D is full, if the weight's value is - * is not between 0 and 1. - * - */ - virtual bool fill(double x, double y, double weight = 1.) = 0; - - /** - * Get the lower edge of the ICloud2D along the x axis. - * @return The lower edge along the x axis. - * - */ - virtual double lowerEdgeX() const = 0; - - /** - * Get the lower edge of the ICloud2D along the y axis. - * @return The lower edge along the y axis. - * - */ - virtual double lowerEdgeY() const = 0; - - /** - * Get the upper edge of the ICloud2D along the x axis. - * @return The upper edge along the x axis. - * - */ - virtual double upperEdgeX() const = 0; - - /** - * Get the upper edge of the ICloud2D along the y axis. - * @return The upper edge along the y axis. - * - */ - virtual double upperEdgeY() const = 0; - - /** - * Get the x value corresponding to a given entry. - * @param index The entry's index. - * @return The x value of the index-th entry. - * If the ICloud2D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double valueX(int index) const = 0; - - /** - * Get the y value corresponding to a given entry. - * @param index The entry's index. - * @return The y value of the index-th entry. - * If the ICloud2D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double valueY(int index) const = 0; - - /** - * Get the weight corresponding to a given entry. - * @param index The entry's index. - * @return The weight of the index-th entry. - * If the ICloud2D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double weight(int index) const = 0; - - /** - * Get the mean of the ICloud2D along the x axis. - * @return The mean along the x axis. - * - */ - virtual double meanX() const = 0; - - /** - * Get the mean of the ICloud2D along the y axis. - * @return The mean along the y axis. - * - */ - virtual double meanY() const = 0; - - /** - * Get the RMS of the ICloud2D along the x axis. - * @return The RMS along the x axis. - * - */ - virtual double rmsX() const = 0; - - /** - * Get the RMS of the ICloud2D along the y axis. - * @return The RMS along the y axis. - * - */ - virtual double rmsY() const = 0; - - /** - * Convert internally the ICloud2D to an IHistogram2D - * with given number of bins, upper edge and lower edge. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of bins of the x axis. - * @param upperEdgeX The upper edge of bins of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of bins of the y axis. - * @param upperEdgeY The upper edge of bins of the y axis. - * @return false If the ICloud2D has already been converted. - * - */ - virtual bool convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; - - /** - * Convert internally the ICloud2D to an IHistogram2D - * with given bin edges. - * @param binEdgesX The bins edges of the x axis. - * @param binEdgesY The bins edges of the y axis. - * @return false If the ICloud2D has already been converted. - * - */ - virtual bool convert(const std::vector & binEdgesX, const std::vector & binEdgesY) = 0; - - /** - * Get the internal IHistogram2D in which the ICloud2D converted to. - * @return The histogram. - * or because of a convert() method invocation. - * - */ - virtual const IHistogram2D & histogram() const = 0; - - /** - * Project the ICloud2D on an IHistogram2D. - * @param hist The IHistogram2D to be filled. - * @return false If the ICloud2D is already converted. - * - */ - virtual bool fillHistogram(IHistogram2D & hist) const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ICLOUD2D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ICloud3D.h b/examples/extended/analysis/A01/include/AIDA/ICloud3D.h deleted file mode 100644 index 224131fbba..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ICloud3D.h +++ /dev/null @@ -1,275 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ICLOUD3D_H -#define AIDA_ICLOUD3D_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -#include "AIDA/ICloud.h" - -namespace AIDA { - -class IHistogram3D; - -/** - * User level interface to a 3D Cloud. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class ICloud3D : virtual public ICloud { - -public: - /// Destructor. - virtual ~ICloud3D() { /* nop */; } - - /** - * Fill the ICloud3D with a triplet of values and a corresponding weight. - * @param x The x value. - * @param y The y value. - * @param z The z value. - * @param weight The corresponding weight. By default it is 1. - * @return false If the ICloud3D is full, if the weight's value is - * is not between 0 and 1. - * - */ - virtual bool fill(double x, double y, double z, double weight = 1.) = 0; - - /** - * Get the lower edge of the ICloud3D along the x axis. - * @return The lower edge along the x axis. - * - */ - virtual double lowerEdgeX() const = 0; - - /** - * Get the lower edge of the ICloud3D along the y axis. - * @return The lower edge along the y axis. - * - */ - virtual double lowerEdgeY() const = 0; - - /** - * Get the lower edge of the ICloud3D along the z axis. - * @return The lower edge along the z axis. - * - */ - virtual double lowerEdgeZ() const = 0; - - /** - * Get the upper edge of the ICloud3D along the x axis. - * @return The upper edge along the x axis. - * - */ - virtual double upperEdgeX() const = 0; - - /** - * Get the upper edge of the ICloud3D along the y axis. - * @return The upper edge along the y axis. - * - */ - virtual double upperEdgeY() const = 0; - - /** - * Get the upper edge of the ICloud3D along the z axis. - * @return The upper edge along the z axis. - * - */ - virtual double upperEdgeZ() const = 0; - - /** - * Get the x value corresponding to a given entry. - * @param index The entry's index. - * @return The x value of the index-th entry. - * If the ICloud3D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double valueX(int index) const = 0; - - /** - * Get the y value corresponding to a given entry. - * @param index The entry's index. - * @return The y value of the index-th entry. - * If the ICloud3D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double valueY(int index) const = 0; - - /** - * Get the z value corresponding to a given entry. - * @param index The entry's index. - * @return The z value of the index-th entry. - * If the ICloud3D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double valueZ(int index) const = 0; - - /** - * Get the weight corresponding to a given entry. - * @param index The entry's index. - * @return The weight of the index-th entry. - * If the ICloud3D has already been converted, 0 is returned. - * - */ - - - - - - - - - - - virtual double weight(int index) const = 0; - - /** - * Get the mean of the ICloud3D along the x axis. - * @return The mean along the x axis. - * - */ - virtual double meanX() const = 0; - - /** - * Get the mean of the ICloud3D along the y axis. - * @return The mean along the y axis. - * - */ - virtual double meanY() const = 0; - - /** - * Get the mean of the ICloud3D along the z axis. - * @return The mean along the z axis. - * - */ - virtual double meanZ() const = 0; - - /** - * Get the RMS of the ICloud3D along the x axis. - * @return The RMS along the x axis. - * - */ - virtual double rmsX() const = 0; - - /** - * Get the RMS of the ICloud3D along the y axis. - * @return The RMS along the y axis. - * - */ - virtual double rmsY() const = 0; - - /** - * Get the RMS of the ICloud3D along the z axis. - * @return The RMS along the z axis. - * - */ - virtual double rmsZ() const = 0; - - /** - * Convert internally the ICloud3D to an IHistogram3D - * with given number of bins, upper edge and lower edge. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of bins of the x axis. - * @param upperEdgeX The upper edge of bins of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of bins of the y axis. - * @param upperEdgeY The upper edge of bins of the y axis. - * @param nBinsZ The number of bins of the z axis. - * @param lowerEdgeZ The lower edge of bins of the z axis. - * @param upperEdgeZ The upper edge of bins of the z axis. - * @return false If the ICloud3D has already been converted. - * - */ - virtual bool convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) = 0; - - /** - * Convert internally the ICloud3D to an IHistogram3D - * with given bin edges. - * @param binEdgesX The bins edges of the x axis. - * @param binEdgesY The bins edges of the y axis. - * @param binEdgesZ The bins edges of the z axis. - * @return false If the ICloud3D has already been converted. - * - */ - virtual bool convert(const std::vector & binEdgesX, const std::vector & binEdgesY, const std::vector & binEdgesZ) = 0; - - /** - * Get the internal IHistogram3D in which the ICloud3D converted to. - * @return The histogram. - * or because of a convert() method invocation. - * - */ - virtual const IHistogram3D & histogram() const = 0; - - /** - * Project the ICloud3D on an IHistogram3D. - * @param hist The IHistogram3D to be filled. - * @return false If the ICloud3D is already converted. - * - */ - virtual bool fillHistogram(IHistogram3D & hist) const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ICLOUD3D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IConstants.h b/examples/extended/analysis/A01/include/AIDA/IConstants.h deleted file mode 100644 index aa60879baa..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IConstants.h +++ /dev/null @@ -1,40 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ICONSTANTS_H -#define AIDA_ICONSTANTS_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#define VERSION "3.0" -#define VERSION_MAJOR 3 -#define VERSION_MINOR 0 -#endif /* ifndef AIDA_ICONSTANTS_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IDataPoint.h b/examples/extended/analysis/A01/include/AIDA/IDataPoint.h deleted file mode 100644 index 4a1ed79765..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IDataPoint.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IDATAPOINT_H -#define AIDA_IDATAPOINT_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -namespace AIDA { - -class IMeasurement; - -/** - * Basic user-level interface class for holding and managing - * a single set of "measurements". - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IDataPoint { - -public: - /// Destructor. - virtual ~IDataPoint() { /* nop */; } - - /** - * Get the dimension of the IDataPoint, i.e. the number - * of coordinates the point has. - * @return The dimension. - * - */ - virtual int dimension() const = 0; - - /** - * Get the IMeasurement for a given coordinate. - * @param coord The coordinate. - * @return The corresponding IMeasurement. - * - */ - virtual IMeasurement * coordinate(int coord) = 0; - - virtual const IMeasurement * coordinate(int coord) const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IDATAPOINT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IDataPointSet.h b/examples/extended/analysis/A01/include/AIDA/IDataPointSet.h deleted file mode 100644 index 2dad08dfe4..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IDataPointSet.h +++ /dev/null @@ -1,204 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IDATAPOINTSET_H -#define AIDA_IDATAPOINTSET_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class IAnnotation; -class IDataPoint; - -/** - * Basic user-level interface class for holding and managing - * a single set of "data points". - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IDataPointSet { - -public: - /// Destructor. - virtual ~IDataPointSet() { /* nop */; } - - /** - * Get the IAnnotation of the IDataPointSet. - * @return The IAnnotation. - * - */ - virtual IAnnotation & annotation() = 0; - - virtual const IAnnotation & annotation() const = 0; - - /** - * Get the title of the IDataPointSet. - * @return The title. - * - */ - virtual const std::string & title() const = 0; - - /** - * Set the title of the IDataPointSet. - * @param title The new title. - * @return false If the title cannot be set. - * - */ - virtual bool setTitle(const std::string & title) = 0; - - /** - * Get the dimension of the IDataPoints that can be stored in the set. - * @return The dimension of the IDataPoints storable in the set. - * - */ - virtual int dimension() const = 0; - - /** - * Remove all the IDataPoints in the set. - * After this the IDataPointSet is as just created. - * - */ - virtual void clear() = 0; - - /** - * Get the current size of the IDataPointSet, i.e. the number - * of IDataPoints contained in the set. - * @return The size of the IDataPointSet. - * - */ - virtual int size() const = 0; - - /** - * Get the IDataPoint at a give index in the set. - * @param index The IDataPoint index. - * @return The corresponding IDataPoint. - * - */ - virtual IDataPoint * point(int index) = 0; - - virtual const IDataPoint * point(int index) const = 0; - - /** - * Add a new empty IDataPoint at the end of the set. - * @return false If a new IDataPoint cannot be added to the set. - * - */ - virtual bool addPoint() = 0; - - /** - * Add a copy of an IDataPoint at the end of the set. - * @param point The IDataPoint to be added. - * @return false If the point has the wrong dimension or - * if the point cannot be added. - * - */ - virtual bool addPoint(const IDataPoint & point) = 0; - - /** - * Remove the IDataPoint at a given index. - * @param index The index of the IDataPoint to be removed. - * @return false If the index is < 0 or >= size(). - * - */ - virtual bool removePoint(int index) = 0; - - /** - * Get the lower value for a give axis. - * @param coord The coordinate of the axis. - * @return The lower edge of the corresponding axis. - * If coord < 0 or coord >= dimension(), or if the set is empty NaN is returned. - * - */ - - - - - - - - - - - virtual double lowerExtent(int coord) const = 0; - - /** - * Get the upper value for a give axis. - * @param coord The coordinate of the axis. - * @return The upper edge of the corresponding axis. - * If coord < 0 or coord >= dimension(), or if the set is empty NaN is returned. - * - */ - - - - - - - - - - - virtual double upperExtent(int coord) const = 0; - - /** - * Scales the values and the errors of all the measurements - * of each point by a given factor. - * @param scaleFactor The scale factor. - * @return false If an illegal scaleFactor is provided. - * - */ - virtual bool scale(double scaleFactor) = 0; - - /** - * Scales the values of all the measurements - * of each point by a given factor. - * @param scaleFactor The scale factor. - * @return false If an illegal scaleFactor is provided. - * - */ - virtual bool scaleValues(double scaleFactor) = 0; - - /** - * Scales the errors of all the measurements - * of each point by a given factor. - * @param scaleFactor The scale factor. - * @return false If an illegal scaleFactor is provided. - * - */ - virtual bool scaleErrors(double scaleFactor) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IDATAPOINTSET_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IDataPointSetFactory.h b/examples/extended/analysis/A01/include/AIDA/IDataPointSetFactory.h deleted file mode 100644 index 95a50e0307..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IDataPointSetFactory.h +++ /dev/null @@ -1,227 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IDATAPOINTSETFACTORY_H -#define AIDA_IDATAPOINTSETFACTORY_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class ICloud1D; -class ICloud2D; -class ICloud3D; -class IDataPointSet; -class IHistogram1D; -class IHistogram2D; -class IHistogram3D; -class IProfile1D; -class IProfile2D; - -/** - * Basic user-level interface for creating a factory - * of IDataPointSet. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IDataPointSetFactory { - -public: - /// Destructor. - virtual ~IDataPointSetFactory() { /* nop */; } - - /** - * Create an empty IDataPointSet. - * @param name The name of the IDataPointSet. - * @param title The title of the IDataPointSet. - * @param dimOfPoints The dimension of the IDataPoints that can be stored in the set. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const std::string & title, int dimOfPoints) = 0; - - /** - * Create an empty IDataPointSet. - * @param nameAndTitle The name and the title of the IDataPointSet. - * @param dimOfPoints The dimension of the IDataPoints that can be stored in the set. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & nameAndTitle, int dimOfPoints) = 0; - - /** - * Make a copy of a given IDataPointSet. - * @param name The name of the copy IDataPointSet. - * @param dataPointSet The IDataPointSet to be copied. - * @return The copy of the given IDataPointSet. - * - */ - virtual IDataPointSet * createCopy(const std::string & name, const IDataPointSet & dataPointSet) = 0; - - /** - * Destroy a given IDataPointSet. - * @param dataPointSet The IDataPointSet to be destroyed. - * @return false If dataPointSet cannot be destroyed. - * - */ - virtual bool destroy(IDataPointSet * dataPointSet) = 0; - - /** - * Create an IDataPointSet from an IHistogram1D. - * @param name The name of the IDataPointSet. - * @param hist The IHistogram1D from which the data is taken. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const IHistogram1D & hist) = 0; - - /** - * Create an IDataPointSet from an IHistogram2D. - * @param name The name of the IDataPointSet. - * @param hist The IHistogram2D from which the data is taken. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const IHistogram2D & hist) = 0; - - /** - * Create an IDataPointSet from an IHistogram3D. - * @param name The name of the IDataPointSet. - * @param hist The IHistogram3D from which the data is taken. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const IHistogram3D & hist) = 0; - - /** - * Create an IDataPointSet from an ICloud1D. - * @param name The name of the IDataPointSet. - * @param cloud The ICloud1D from which the data is taken. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const ICloud1D & cloud) = 0; - - /** - * Create an IDataPointSet from an ICloud2D. - * @param name The name of the IDataPointSet. - * @param cloud The ICloud2D from which the data is taken. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const ICloud2D & cloud) = 0; - - /** - * Create an IDataPointSet from an ICloud3D. - * @param name The name of the IDataPointSet. - * @param cloud The ICloud3D from which the data is taken. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const ICloud3D & cloud) = 0; - - /** - * Create an IDataPointSet from an IProfile1D. - * @param name The name of the IDataPointSet. - * @param profile The IProfile1D from which the data is taken. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const IProfile1D & profile) = 0; - - /** - * Create an IDataPointSet from an IProfile2D. - * @param name The name of the IDataPointSet. - * @param profile The IProfile2D from which the data is taken. - * @return The newly created IDataPointSet. - * - */ - virtual IDataPointSet * create(const std::string & name, const IProfile2D & profile) = 0; - - /** - * Add two IDataSetPoint, point by point and measurement by measurement. - * @param name The name of the resulting IDataPointSet - * @param dataPointSet1 The first member of the addition. - * @param dataPointSet2 The second member of the addition. - * - */ - virtual IDataPointSet * add(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; - - /** - * Subtract two IDataSetPoint, point by point and measurement by measurement. - * @param name The name of the resulting IDataPointSet - * @param dataPointSet1 The first member of the subtraction. - * @param dataPointSet2 The second member of the subtraction. - * @param strategy The strategy of how to perform the subtraction. The default corresponds to - * uncorrelated Gaussian error propagation. - * - */ - virtual IDataPointSet * subtract(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; - - /** - * Multiply two IDataSetPoint, point by point and measurement by measurement. - * @param name The name of the resulting IDataPointSet - * @param dataPointSet1 The first member of the multiplication. - * @param dataPointSet2 The second member of the multiplication. - * @param strategy The strategy of how to perform the multiplication. The default corresponds to - * uncorrelated Gaussian error propagation. - * - */ - virtual IDataPointSet * multiply(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; - - /** - * Divide two IDataSetPoint, point by point and measurement by measurement. - * @param name The name of the resulting IDataPointSet - * @param dataPointSet1 The first member of the division. - * @param dataPointSet2 The second member of the division. - * @param strategy The strategy of how to perform the division. The default corresponds to - * uncorrelated Gaussian error propagation. - * - */ - virtual IDataPointSet * divide(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; - - /** - * Calculate weighted means of two IDataSetPoint, point by point and measurement by measurement. - * @param name The name of the resulting IDataPointSet - * @param dataPointSet1 The first IDataPointSet. - * @param dataPointSet2 The second IDataPointSet. - * @param strategy The strategy of how to calculate the weighted means. The default corresponds to - * uncorrelated Gaussian error propagation. - * - */ - virtual IDataPointSet * weightedMean(const std::string & name, const IDataPointSet & dataPointSet1, const IDataPointSet & dataPointSet2) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IDATAPOINTSETFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IDataStyle.h b/examples/extended/analysis/A01/include/AIDA/IDataStyle.h deleted file mode 100644 index 88c2a62efa..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IDataStyle.h +++ /dev/null @@ -1,79 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IDATASTYLE_H -#define AIDA_IDATASTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IBaseStyle.h" - -namespace AIDA { - -class IFillStyle; -class ILineStyle; -class IMarkerStyle; - -/** - * Style for the part of the scene representing the data - * (then histograms, functions, data point sets). - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IDataStyle : virtual public IBaseStyle { - -public: - /// Destructor. - virtual ~IDataStyle() { /* nop */; } - - /** - * Return various styles that may be used to - * customize the data representation. - */ - virtual ILineStyle & lineStyle() = 0; - - virtual IMarkerStyle & markerStyle() = 0; - - virtual IFillStyle & fillStyle() = 0; - - /** - * Set various basic style on the data style. - */ - virtual bool setLineStyle(const ILineStyle & lineStyle) = 0; - - virtual bool setMarkerStyle(const IMarkerStyle & markerStyle) = 0; - - virtual bool setFillStyle(const IFillStyle & fillStyle) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IDATASTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IEvaluator.h b/examples/extended/analysis/A01/include/AIDA/IEvaluator.h deleted file mode 100644 index 500a49c064..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IEvaluator.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IEVALUATOR_H -#define AIDA_IEVALUATOR_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class ITuple; - -/** - * User's level interface of an IEvaluator. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IEvaluator { - -public: - /// Destructor. - virtual ~IEvaluator() { /* nop */; } - - /** - * Initialize the IEvaluator and associate it to an ITuple. - * @param tuple The ITuple to which the IEvaluator is sssociated. - * @return false If the IEvaluator and - * the ITuple are not compatible. - * - */ - virtual bool initialize(ITuple & tuple) = 0; - - /** - * Evaluate the IEvaluator from the data in the - * current row of the ITuple it is associated to. - * @return The current value of the Evaluator. - * - */ - virtual double evaluateDouble() const = 0; - - /** - * Get the expression that defined the IEvaluator. - * @return The expression. - * - */ - virtual const std::string & expression() const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IEVALUATOR_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFillStyle.h b/examples/extended/analysis/A01/include/AIDA/IFillStyle.h deleted file mode 100644 index 2698e8c267..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFillStyle.h +++ /dev/null @@ -1,73 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFILLSTYLE_H -#define AIDA_IFILLSTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -#include "AIDA/IBrushStyle.h" - -namespace AIDA { - -/** - * Style for all filled areas (boxes, regions, histograms, etc.) - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class IFillStyle : virtual public IBrushStyle { - -public: - /// Destructor. - virtual ~IFillStyle() { /* nop */; } - - /** - * Get a list of patterns available in this implementation. - */ - virtual std::vector availablePatterns() const = 0; - - /** - * Get name of current pattern. - */ - virtual std::string pattern() const = 0; - - /** - * Set current pattern, e.g. "crossHatch", "solid". - * @return false if pattern not known to this implementation. - */ - virtual bool setPattern(const std::string & pattern) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFILLSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFilter.h b/examples/extended/analysis/A01/include/AIDA/IFilter.h deleted file mode 100644 index bbe8270122..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFilter.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFILTER_H -#define AIDA_IFILTER_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class ITuple; - -/** - * User's level interface of an IFilter. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IFilter { - -public: - /// Destructor. - virtual ~IFilter() { /* nop */; } - - /** - * Initialize the IFilter and associate it to an ITuple. - * @param tuple The ITuple to which the IFilter is sssociated. - * @return false If the IFilter and - * the ITuple are not compatible. - * - */ - virtual bool initialize(ITuple & tuple) = 0; - - /** - * Check if the IFilter accepts or not the data in the - * current row of the ITuple it is associated to. - * @return true if the current data is accepted. - * - */ - virtual bool accept() const = 0; - - /** - * Get the expression that defined the IFilter. - * @return The expression. - * - */ - virtual const std::string & expression() const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFILTER_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitData.h b/examples/extended/analysis/A01/include/AIDA/IFitData.h deleted file mode 100644 index eefca794c3..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFitData.h +++ /dev/null @@ -1,353 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFITDATA_H -#define AIDA_IFITDATA_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class ICloud1D; -class ICloud2D; -class ICloud3D; -class IDataPointSet; -class IEvaluator; -class IHistogram1D; -class IHistogram2D; -class IHistogram3D; -class IProfile1D; -class IProfile2D; -class IRangeSet; -class ITuple; - -/** @interface - * - * Abstract representation of the fit data. Serves for several purposes: - * - decouple fitter from the details of the particular data - * objects (Histograms etc) - * - provide range restriction capability ("cut of the tails...") - * - creates the image of the virtual data source - * - * Design notes: - * - * 1) - * we try to be explicit in the method names which should indicate the - * dimensionality of the fit data. - * - * this way we have more compile-time/run-time safety and clearer code. - * in C++ we can handle default arguments which otherwise would be ambigeous. - * - * 2) - * string names of the arguments are at the end of the methods' - * signatures and have default (empty) values. - * so if function argument name is missing, - * assume the ordering is taken from the histogram axis it connects to - * the name of the pipes then are generated automatically using - * the same default scheme as for functions x[1], x[2] etc. - * - * 3) - * There are two ends to pipes: one connected to the - * data source and one pouring data out. Both their orders has to be specified. - * - * For IHistogram, ICloud, IProfile the connections to the data source are - * ordered as the axis (x=0, y=1, z=2); the user has to provide the order - * with which the pipes are providing the data. So for example in the constructor - * create2DConnection(hist2D,xIndex,yIndex); - * xIndex specifies the exit order of the pipe connected to the x Axis (and similarly - * for yIndex). So the default method - * create2DConnection(hist2D); - * corresponds to - * create2DConnection(hist2D,0,1); - * In the methods for IHistograms, IClouds, and IProfiles one index could have - * been dropped as the second could be inferred by the dimensionality. We - * preferred being redundant just to avoid confusion in interpreting what - * create2DConnection(hist2D,1); - * really means. - * - * For ITuple and IDataPointSet the order in the connection to the data source - * is specified by the user by providing, respectively, the array of column names (or evaluators) - * and the array of coordinate indexes to which to connect the pipes. - * In this case we assume that the pipes are parallel, i.e. the exit order is the same - * as the one of the connection to the data source. - * In the createXDConnection methods to IDataPointSets we preferred not to provide - * defaults for the valIndex to avoid confusion in interpreting it. - * We can always add it later. - * - * PENDING: clarify the relation between data range and normalization range - * - * @author The AIDA Team. - * - */ - -class IFitData { - -public: - /// Destructor. - virtual ~IFitData() { /* nop */; } - - /** - * One dimensional connections. - * - */ - - /** - * Create a one dimensional connection to an IHistogram1D. - * @param h The 1D histogram to which to connect to. - * @return false If something is wrong. - * - */ - virtual bool create1DConnection(const IHistogram1D & h) = 0; - - /** - * Create a one dimensional connection to an ICloud1D. - * @param c The 1D cloud to which to connect to. - * @return false If something is wrong. - * - */ - virtual bool create1DConnection(const ICloud1D & c) = 0; - - /** - * Create a one dimensional connection to an IProfile1D. - * @param p The 1D profile to which to connect to. - * @return false If something is wrong. - * - */ - virtual bool create1DConnection(const IProfile1D & p) = 0; - - /** - * Create a one dimensional connection to an IDataPointSet. - * @param dp The dataPointSet to which to connect to. - * @param xIndex The index of the coordinate to which the variable is connected. - * @param valIndex The index of the coordinate used as "height". - * @return false If something is wrong. - * - */ - virtual bool create1DConnection(const IDataPointSet & dp, int xIndex, int valIndex) = 0; - - /** - * Two dimensional connections. - * - */ - - /** - * Create a two dimensional connection to an IHistogram2D. - * @param h The 2D histogram to which to connect to. - * @return false If something is wrong. - * - */ - virtual bool create2DConnection(const IHistogram2D & h) = 0; - - /** - * Create a two dimensional connection to an IHistogram2D. - * @param h The 2D histogram to which to connect to. - * @param xIndex The index of the axis to which the x variable is connected. - * @param yIndex The index of the axis to which the y variable is connected. - * @return false If something is wrong. - * - */ - virtual bool create2DConnection(const IHistogram2D & h, int xIndex, int yIndex) = 0; - - /** - * Create a two dimensional connection to an ICloud2D. - * @param c The 2D cloud to which to connect to. - * @return false If something is wrong. - * - */ - virtual bool create2DConnection(const ICloud2D & c) = 0; - - /** - * Create a two dimensional connection to an ICloud2D. - * @param c The 2D cloud to which to connect to. - * @param xIndex The index of the axis to which the x variable is connected. - * @param yIndex The index of the axis to which the y variable is connected. - * @return false If something is wrong. - * - */ - virtual bool create2DConnection(const ICloud2D & c, int xIndex, int yIndex) = 0; - - /** - * Create a two dimensional connection to an IProfile2D. - * @param p The 2D profile to which to connect to. - * @return false If something is wrong. - * - */ - virtual bool create2DConnection(const IProfile2D & p) = 0; - - /** - * Create a two dimensional connection to an IProfile2D. - * @param p The 2D profile to which to connect to. - * @param xIndex The index of the axis to which the x variable is connected. - * @param yIndex The index of the axis to which the y variable is connected. - * @return false If something is wrong. - * - */ - virtual bool create2DConnection(const IProfile2D & p, int xIndex, int yIndex) = 0; - - /** - * Create a two dimensional connection to an IDataPointSet. - * @param dp The dataPointSet to which to connect to. - * @param xIndex The index of the coordinate to which the x variable is connected. - * @param yIndex The index of the coordinate to which the y variable is connected. - * @param valIndex The index of the coordinate used as "height". - * @return false If something is wrong. - * - */ - virtual bool create2DConnection(const IDataPointSet & dp, int xIndex, int yIndex, int valIndex) = 0; - - /** - * Three dimensional connections. - * - */ - - /** - * Create a three dimensional connection to an IHistogram3D. - * @param h The 3D histogram to which to connect to. - * @return false If something is wrong. - * - */ - virtual bool create3DConnection(const IHistogram3D & h) = 0; - - /** - * Create a three dimensional connection to an IHistogram3D. - * @param h The 3D histogram to which to connect to. - * @param xIndex The index of the axis to which the x variable is connected. - * @param yIndex The index of the axis to which the y variable is connected. - * @param zIndex The index of the axis to which the z variable is connected. - * @return false If something is wrong. - * - */ - virtual bool create3DConnection(const IHistogram3D & h, int xIndex, int yIndex, int zIndex) = 0; - - /** - * Create a three dimensional connection to an ICloud3D. - * @param c The 3D cloud to which to connect to. - * @return false If something is wrong. - * - */ - virtual bool create3DConnection(const ICloud3D & c) = 0; - - /** - * Create a three dimensional connection to an ICloud3D. - * @param c The 3D cloud to which to connect to. - * @param xIndex The index of the axis to which the x variable is connected. - * @param yIndex The index of the axis to which the y variable is connected. - * @param zIndex The index of the axis to which the z variable is connected. - * @return false If something is wrong. - * - */ - virtual bool create3DConnection(const ICloud3D & c, int xIndex, int yIndex, int zIndex) = 0; - - /** - * Create a three dimensional connection to an IDataPointSet. - * @param dp The dataPointSet to which to connect to. - * @param xIndex The index of the coordinate to which the x variable is connected. - * @param yIndex The index of the coordinate to which the y variable is connected. - * @param zIndex The index of the coordinate to which the z variable is connected. - * @param valIndex The index of the coordinate used as "height". - * @return false If something is wrong. - * - */ - virtual bool create3DConnection(const IDataPointSet & dp, int xIndex, int yIndex, int zIndex, int valIndex) = 0; - - /** - * General connections. - * - */ - - /** - * Tuples are for UNBINNED fits, so no value column required. - */ - - /** - * Create a connection to an ITuple. - * @param t The ITuple. - * @param colNames The names of the columns to which to connect. - * @return false If something is wrong. - * - */ - virtual bool createConnection(const ITuple & t, std::vector colNames) = 0; - - /** - * Create a connection to an ITuple. - * @param t The ITuple. - * @param evals The list of the IEvaluator used to calculate the variable's value. - * @return false If something is wrong. - * - */ - virtual bool createConnection(const ITuple & t, std::vector & evals) = 0; - - /** - * Create a connection to an IDataPointSet. - * @param dp The dataPointSet to which to connect to. - * @param indeces The indeces of the coordinates to which the variables are connected. - * @param valIndex The index of the coordinate used as "height". - * @return false If something is wrong. - * - */ - virtual bool createConnection(const IDataPointSet & dp, std::vector indeces, int valIndex) = 0; - - /** - * Remove all Ranges and connections; after this is like newly create. - * - */ - virtual void reset() = 0; - - /** - * The dimension of this IFitData, i.e. the number of connections. - * @return The dimension of the IFitData. - * - */ - virtual int dimension() const = 0; - - /// Return a string describing the data. This should be considered as a - /// hint to the user where to find the original data objects and how - /// to connect the data pipes. PENDING: probably this can be part of - /// XML streaming. - virtual std::string dataDescription() const = 0; - - /** - * Get Range of the corresponding connection by index. - * The index represent the order in which - * connections are coming out of the IFitData. - * @param The index of the connection. - * @return The Range - * - */ - virtual IRangeSet & range(int index) const = 0; - - /** @link aggregation */ -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFITDATA_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitFactory.h b/examples/extended/analysis/A01/include/AIDA/IFitFactory.h deleted file mode 100644 index ed662995dc..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFitFactory.h +++ /dev/null @@ -1,75 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFITFACTORY_H -#define AIDA_IFITFACTORY_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class IFitData; -class IFitter; - -/** @interface IFitFactory - * - * Factory for fitter and fit data objects. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IFitFactory { - -public: - /// Destructor. - virtual ~IFitFactory() { /* nop */; } - - virtual IFitData * createFitData() = 0; - - /** - * Create a new IFitter. - * @param fitterType The type of fitter. The supported types are: - * - "CHI2" or "Chi2" or "ChiSquared" for chi squared fitter (this is the default), - * - "ML" or "MaxLikelihood" for maximum likelihood fitter, - * - "LS" or "LeastSquares" for Last Squares fitter. - * @param engineType The type of optimization engine used by the fitter. The available types depend on the - * specific implementation in use. The default is "" (the implementation specific default). - * @param options A string of options. The default is "". - * @return The IFitter. - * - */ - virtual IFitter * createFitter(std::string fitterType = "Chi2", std::string engineType = "", std::string options = "") = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFITFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitParameterSettings.h b/examples/extended/analysis/A01/include/AIDA/IFitParameterSettings.h deleted file mode 100644 index 91da1ac961..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFitParameterSettings.h +++ /dev/null @@ -1,108 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFITPARAMETERSETTINGS_H -#define AIDA_IFITPARAMETERSETTINGS_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -/** @interface - * - * Fitting-specific settings applied to a parameter of the fitted function. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IFitParameterSettings { - -public: - /// Destructor. - virtual ~IFitParameterSettings() { /* nop */; } - - /// Name of the parameter to which settings apply. - virtual std::string name() const = 0; - - /// Step size allows to control the "sensitivity" of the change of the parameter - /// when fitters looks for the optimal parameter value. Default is 1.0. - virtual double stepSize() const = 0; - - /// Bounds. - virtual double upperBound() const = 0; - - virtual double lowerBound() const = 0; - - /// Shortcut for lowerBound() == -INF && upperBound() == +INF. - virtual bool isBound() const = 0; - - /// Value of the parameter cannot change if isFixed() == true. - /// Parameter can be fixed independently from setting the bounds. - virtual bool isFixed() const = 0; - - /// Set the step size for the fitter. - virtual void setStepSize(double step) = 0; - - /// Set bounds. If bounds not set, then default bound is (-INF,+INF). - virtual void setBounds(double lo, double up) = 0; - - /// Shortcut for setBounds(-INF,+INF). - virtual void removeBounds() = 0; - - /// Fix/unfix parameter. - virtual void setFixed(bool isFixed) = 0; - - /** - * Set the lower bound. When this method is - * invoked any previous bound is reset. The new bounds - * are (lowerBound, +INF). - * @param lowerBound The lower bound. - * - */ - virtual void setLowerBound(double lowerBound) = 0; - - /** - * Set the upper bound. When this method is - * invoked any previous bound is reset. The new bounds - * are (-INF, upperBound). - * @param upperBound The upper bound. - * - */ - virtual void setUpperBound(double upperBound) = 0; - - /// Reset all settings to the default values (remove bounds, step size = 1.0, no fix). - virtual void reset() = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFITPARAMETERSETTINGS_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitResult.h b/examples/extended/analysis/A01/include/AIDA/IFitResult.h deleted file mode 100644 index 8210cff7a0..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFitResult.h +++ /dev/null @@ -1,151 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFITRESULT_H -#define AIDA_IFITRESULT_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IFitParameterSettings; -class IFunction; - -/** @interface - * - * Represents the result of the fit. - * - * Holds internal copies of fit parameter settings (set in IFitter) and the - * fitted function (clone of original function). The value of the parameters - * of the fitted function are obtained from the fitting. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IFitResult { - -public: - /// Destructor. - virtual ~IFitResult() { /* nop */; } - - /// True if fit successful, otherwise false. - virtual bool isValid() = 0; - - /// Status of the fit. PENDING: what are the suggested values? - virtual int fitStatus() = 0; - - /// Fitted function. The parameters hold the results of the fit. - virtual IFunction * fittedFunction() = 0; - - /// Quality of the fit. Depending on the fit method this may be the value - /// of Chi2 or Maximu Likelihood. - virtual double quality() = 0; - - /// Number of degrees of freedom. - virtual int ndf() = 0; - - /// Covariance matrix. PENDING: interface for matrix to be defined. - virtual double covMatrixElement(int i, int j) = 0; - - /// Fit method name as set in the fitter. - virtual std::string fitMethodName() = 0; - - /// Engine used to do fitting. - virtual std::string engineName() = 0; - - /// Textual description of data - this is a hint for the user how to find - /// the data in the tree if he wanted to repeat the fit later and lost - /// the pointer to his orignal data object. - /// PENDING: the contents and format of this string to be defined. - /// PENDING: XML? stor name and path? ranges of DataPipe? - virtual std::string dataDescription() = 0; - - /// Vector of constraints. - virtual const std::vector & constraints() = 0; - - /// Access to applied parameter settings. - virtual IFitParameterSettings * fitParameterSettings(std::string name) = 0; - - /** - * Get the array of the fitted parameter values (including fixed and constrained ones). - * @return The array containing the fitted values. - * - */ - virtual const std::vector & fittedParameters() const = 0; - - /** - * Get the names of the fitted parameters (including fixed and constrained ones). - * @return The array containing the names of the fitted parameters. - * - */ - virtual const std::vector & fittedParameterNames() const = 0; - - /** - * Get the value of a fitted parameter by name. - * @return The value. - * - */ - virtual double fittedParameter(std::string & name) = 0; - - /** - * Get the parabolic errors on the fitted parameters. If a parameter was fixed - * or constrained the error is zero. - * @return The parabolic errors on the fitted parameters. - * - */ - virtual const std::vector & errors() const = 0; - - /** - * Get the positive part of the asymmetric errors on the fitted parameters. If a parameter was fixed - * or constrained the error is zero. - * @return The positive part of the asymmetric errors on the fitted parameters. - * - */ - virtual const std::vector & errorsPlus() const = 0; - - /** - * Get the negative part of the asymmetric errors on the fitted parameters. If a parameter was fixed - * or constrained the error is zero. - * @return The negative part of the asymmetric errors on the fitted parameters. - * - */ - virtual const std::vector & errorsMinus() const = 0; - - /** @link aggregation - * @supplierRole <>*/ - /*# IFitParameterSettings lnkIFitParameterProperty; */ -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFITRESULT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFitter.h b/examples/extended/analysis/A01/include/AIDA/IFitter.h deleted file mode 100644 index 9c5ee5a53f..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFitter.h +++ /dev/null @@ -1,275 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFITTER_H -#define AIDA_IFITTER_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IBaseHistogram; -class IDataPointSet; -class IFitData; -class IFitParameterSettings; -class IFitResult; -class IFunction; - -/** @interface IFitter - * - * Fitter performs fits, scans and computes contours. - * - * Fitter never stores association to the data and functions which are - * used for fitting. Results of the fit are availabe in the IFitResult - * object, which also remebers the initial fit configuration. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IFitter { - -public: - /// Destructor. - virtual ~IFitter() { /* nop */; } - - /** - * Fit an IFunction to an IFitData. - * The result of the fit is an IFitResult. - * @param fitData The IFitData to be fitted. - * @param func The IFunction to fit on the data. - * @return The IFitResult containing the results of the fit. - * - */ - virtual IFitResult * fit(IFitData & fitData, IFunction & func) = 0; - - /** - * Shortcut to fit an IBaseHistogram directly with an IFunction. - * The dimension of the IBaseHistogram must match the dimension of the IFunction. - * IHistograms and IProfiles are for binned fits only, IClouds only for unbinned fits. - * @param hist The IBaseHistogram to be fitted. - * @param func The IFunction to fit on the data. - * @return The IFitResult containing the result of the fit. - * - */ - virtual IFitResult * fit(IBaseHistogram & hist, IFunction & func) = 0; - - /** - * Shortcut to fit an IBaseHistogram directly with an IFunction. - * The dimension of the IBaseHistogram must match the dimension of the IFunction. - * IHistograms and IProfiles are for binned fits only, IClouds only for unbinned fits. - * @param hist The IBaseHistogram to be fitted. - * @param model The string defining the function to be used. - * @return The IFitResult containing the result of the fit. - * - */ - virtual IFitResult * fit(IBaseHistogram & hist, std::string model) = 0; - - /** - * Shortcut to fit an IBaseHistogram directly with an IFunction. - * The dimension of the IBaseHistogram must match the dimension of the IFunction. - * IHistograms and IProfiles are for binned fits only, IClouds only for unbinned fits. - * @param hist The IBaseHistogram to be fitted. - * @param model The string defining the function to be used. - * @param initialParameters The array of the initial parameter values; its size must match the number of - * parameters in the function. - * @return The IFitResult containing the result of the fit. - * - */ - virtual IFitResult * fit(IBaseHistogram & hist, std::string model, std::vector & initialParameters) = 0; - - /** - * Shortcut to fit an IDataPointSet directly with an IFunction. - * The dimension of the IDataPointSet must be equal the dimension of the IFunction + 1. - * This are binned fits only; the last coordinate of the IDataPointSet is used as - * the "height" in a fit to an IBaseHistogram. - * @param dataPointSet The IDataPointSet to be fitted. - * @param func The IFunction to fit on the data. - * @return The IFitResult containing the result of the fit. - * - */ - virtual IFitResult * fit(IDataPointSet & dataPointSet, IFunction & f) = 0; - - /** - * Shortcut to fit an IDataPointSet directly with an IFunction. - * The dimension of the IDataPointSet must be equal the dimension of the IFunction + 1. - * This are binned fits only; the last coordinate of the IDataPointSet is used as - * the "height" in a fit to an IBaseHistogram. - * @param dataPointSet The IDataPointSet to be fitted. - * @param model The string defining the function to be used. - * @return The IFitResult containing the result of the fit. - * - */ - virtual IFitResult * fit(IDataPointSet & dataPointSet, std::string model) = 0; - - /** - * Shortcut to fit an IDataPointSet directly with an IFunction. - * The dimension of the IDataPointSet must be equal the dimension of the IFunction + 1. - * This are binned fits only; the last coordinate of the IDataPointSet is used as - * the "height" in a fit to an IBaseHistogram. - * @param dataPointSet The IDataPointSet to be fitted. - * @param model The string defining the function to be used. - * @param initialParameters The array of the initial parameter values; its size must match the number of - * parameters in the function. - * @return The IFitResult containing the result of the fit. - * - */ - virtual IFitResult * fit(IDataPointSet & dataPointSet, std::string model, std::vector & initialParameters) = 0; - - /// Shortcut for the predefined models. - virtual IFitResult * fit(IFitData & d, std::string model) = 0; - - virtual IFitResult * fit(IFitData & d, std::string model, std::vector & initialParameters) = 0; - - /** - * Set the optimization engine which is used internally for fitting. - * @param name The name of the optimizer engine. - * Examples of predefined engines: "minuit". The engine name is case-insensitive. - * Different engines are provided by different implementations. - * @return false If the name does not correspond to a valid engine. - * - */ - virtual bool setEngine(std::string name) = 0; - - /** - * Get the name of the engine currently in use. - * @return The name of the optimizer engine used by the IFitter. - * - */ - virtual std::string engineName() = 0; - - /** - * Access to fit parameter settings. FitParameterSettings object belongs to - * and is managed by the fitter. Fitter implementation takes care that the - * returned reference is valid thru the lifetime of fitter. - * User can set the settings of the parameters independently of the - * parameters of the fitted function. - * Setting for parameters unknown in the function and set in the - * fitter are ignored in the fit. - * If settings are not explicitly set in the fitter, their default - * values are attached to function parameters during the fit. - */ - virtual IFitParameterSettings & fitParameterSettings(std::string name) = 0; - - /** - * Get a vector of names of all parameter settings defined in the fitter. - */ - virtual const std::vector & listParameterSettings() = 0; - - /** - * Reset all parameter settings which fitter remebers. - */ - virtual void resetParameterSettings() = 0; - - /** - * Set a general constraint in the parameter space. The constraint - * is a parsed expression. PENDING: The syntax to be fixed. - */ - virtual bool setConstraint(std::string expr) = 0; - - /// Get the list of all constraints. - virtual const std::vector & constraints() = 0; - - /** - * Reset all the constraints. - */ - virtual void resetConstraints() = 0; - - /** - * Set the fit method type. Examples of pre-defined methods: "chi2", "ml". - * The method names are case-insensitive. - * @param name The name of the fit method. - * @return false If the name does not correspond to a valid fit method. - * - */ - virtual bool setFitMethod(std::string name) = 0; - - /** - * Get the name of the fit method currently in use. - * @return The name of the fit method. - * - */ - virtual std::string fitMethodName() = 0; - - /// Create a 1D scan of the fit quality for given parameter 'par' of - /// the function. - /// User must make sure that the returned vector is properly deleted - /// after use. - /// The vector containes 'npts' points which are evenly sampled in the - /// interval ('pmin','pmax'). - virtual IDataPointSet * createScan1D(IFitData & d, IFunction & f, std::string par, int npts, double pmin, double pmax) = 0; - - /// Create a 2D contour spanned on 'par1' and 'par2', - /// with given number of npts points. Contour is create using previously - /// obtained fit results. Argument 'up' tells the vertical distance of - /// the contour plane above the minimal fit quality value. - virtual IDataPointSet * createContour(IFitData & d, IFitResult & r, std::string par1, std::string par2, int npts, double up) = 0; - - /** - * Choose between using or not using the - * analytical derivatives if provided by the function. - * @param useGrad If true the IFitter will use the - * analytical derivatives if provided by the IFunction. - * - */ - virtual void setUseFunctionGradient(bool useGrad) = 0; - - /** - * Check if the IFitter is set to use the analytical derivatives provided - * by the IFunction. - * @return true if the IFitter uses the analytical derivatives. - * - */ - virtual bool useFunctionGradient() = 0; - - /** - * @link association - * @directed - * @label <> - */ - /*# IFitResult lnkIFitResult; */ - - /** @link dependency */ - /*# IFitData lnkIFitData; */ - - /** @link aggregation - * @supplierRole <>*/ - /*# IFitParameterSettings lnkIFitParameter; */ - - /** @link dependency - * @label fitter uses function for fitting*/ - /*# IFunction lnkIFunction; */ -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFITTER_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFunction.h b/examples/extended/analysis/A01/include/AIDA/IFunction.h deleted file mode 100644 index 757e7d8e06..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFunction.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFUNCTION_H -#define AIDA_IFUNCTION_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IAnnotation; - -/** @interface IFunction - * - * Principal user-level function interface. Function is a self - * contained object, which remembers the current value of its parameters - * which are simple doubles. IFunction may be directly plotted or fitted. - * - * The standard convention of referring to variables by name: - * "x[0]" corresponds to variable number 0 etc. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IFunction { - -public: - /// Destructor. - virtual ~IFunction() { /* nop */; } - - /** - * Scalar value of the function. - */ - virtual double value(const std::vector & x) const = 0; - - /** - * Dimensionality of the domain space. - */ - virtual int dimension() const = 0; - - /** - * Compare if functions are the same. - * PENDING: define exactly what it means ;) - */ - virtual bool isEqual(const IFunction * f) const = 0; - - /** - * Gradient of the function. - * The result is valid only if providesGradient()==true. - * Otherwise the result is some default (empty) vector. - */ - virtual const std::vector & gradient(const std::vector & x) const = 0; - - /** - * Determine whether function is able to compute gradient. - */ - virtual bool providesGradient() const = 0; - - /** - * Get the symbolic name of i-th variable. - */ - virtual std::string variableName(int i) const = 0; - - /** - * Get all the names in a vector. - */ - virtual const std::vector & variableNames() const = 0; - - /** - * Set new vector of parameters. - */ - virtual void setParameters(const std::vector & params) = 0; - - /** - * Retrieve current vector of parameters. - */ - virtual const std::vector & parameters() const = 0; - - /** - * Number of parameters. - */ - virtual int numberOfParameters() const = 0; - - /** - * Names of paramaters. - * Names should be unique. Case-insensitive for comparison. - * Case-sensitive for storage and output. - * All or several names may be left blank "" if the implementation - * does not want to provide them. - */ - virtual const std::vector & parameterNames() const = 0; - - /** - * Set parameter's value by name. - * @param name The name of the parameter. - * @param x The new value of the parameter. - * @return false If name does not correspond to a parameter. - * - */ - virtual bool setParameter(std::string name, double x) = 0; - - virtual double parameter(std::string name) const = 0; - - /** - * Return -1 if parameter not found (name undefined). - * Leave it because there are use cases - some users prefer to use numbers. - */ - virtual int indexOfParameter(std::string name) const = 0; - - virtual IAnnotation & annotation() = 0; - - virtual const IAnnotation & annotation() const = 0; - - /** - * String describing the metatype and implementation of the function. - * - * Generic format of the string: - * - * codelet:TYPE:LOCATION - * - * TYPE part contains only a 'typename' string - * which is a metatype identifier (used in plugins and catalogues) - * - * LOCATION may be: 'file', 'verbatim', or 'catalogue' - * - * Detailed description: - * - * codelet:typename - no location specified (using 'catalogue') - * - * codelet:typename:file:/filename.cpp - a c++ source file - * codelet:typename:file:/filename.py - a python source file - * codelet:typename:file:/filename.so - a shared library - * - * codelet:typename:catalogue - entry in a catalogue repository - * - * codelet:typename:verbatim:cpp \n - c++ source file included verbatim - * after \n - * - * codelet:typename:verbatim:py \n - python source file included - * verbatim aftern \n - * - * - * Comments: - * - * file:/filename is a relative path to $AIDA_FUNCTION_DEFAULT_DIR - * file://filename is an absolute path - * - * Examples: - * - * codelet:G:catalogue - * codelet:userSinus:verbatim:cpp \n { return sin(x); } - */ - virtual std::string codeletString() const = 0; - - /** @link aggregation */ - /*# IAnnotation lnkIAnnotation; */ -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFUNCTION_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFunctionCatalog.h b/examples/extended/analysis/A01/include/AIDA/IFunctionCatalog.h deleted file mode 100644 index 4336aa83f7..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFunctionCatalog.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFUNCTIONCATALOG_H -#define AIDA_IFUNCTIONCATALOG_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IFunction; - -/** @interface - * - * Function catalog. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IFunctionCatalog { - -public: - /// Destructor. - virtual ~IFunctionCatalog() { /* nop */; } - - /** - * Remember persistently definition (code!) of a function under a name. - * Scripted function created by the user may be automatically available - * in the subsequent analysis sessions. This is also a way to create - * new names for combinations of exisiting model functions ("G+G+E+P5"). - * Last but not least, system may be easily extended with model functions - * developed in the programming language directly. - * Predefined functions: "G","E","Pn". - */ - virtual bool add(std::string nameId, IFunction * f) = 0; - - virtual bool add(std::string nameId, const std::string & codelet) = 0; - - /* - * Get a list of all available functions. - */ - virtual const std::vector & list() = 0; - - /* - * Remove function from the catalog. - */ - virtual void remove(const std::string & nameId) = 0; - - /* - * Write contents of the catalog to disk. - * We have to agree on the format here, or define and XML - * entry for IFunctionCatalog! - */ - virtual bool storeAll(const std::string & nameOnDisk) = 0; - - /* - * Load contents of the catalog from disk - * We have to agree on the format here, or define and XML - * entry for IFunctionCatalog! - */ - virtual bool loadAll(const std::string & nameOnDisk) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFUNCTIONCATALOG_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IFunctionFactory.h b/examples/extended/analysis/A01/include/AIDA/IFunctionFactory.h deleted file mode 100644 index 95a990038c..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IFunctionFactory.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IFUNCTIONFACTORY_H -#define AIDA_IFUNCTIONFACTORY_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class IFunction; -class IFunctionCatalog; - -/** @interface IFunctionFactory - * - * Function factory. - * - * @author The AIDA team (http://aida.freehep.org/) - * - * @stereotype abstractfactory - */ - -class IFunctionFactory { - -public: - /// Destructor. - virtual ~IFunctionFactory() { /* nop */; } - - /** - * Create function from a name registered in the catalog. - * This is the easiest way to create simple model functions for fitting. - * Every AIDA compliant implementation should predefine "G", "E", "Pn" - * (n is an integer, e.e "P0","P5"). Simple operations are permitted, - * e.g. "G+P2". - */ - virtual IFunction * createFunctionByName(const std::string & name, std::string model) = 0; - - /** - * Create function from script. Script conventions: - * example: createFunctionFromScript("f1", 2, "a*x[0]*x[0] + b*x[1]", "a,b", - "this is my function", "2*a*x[0],b") - */ - virtual IFunction * createFunctionFromScript(const std::string & name, int dim, std::string valexpr, std::string parameters, std::string description, std::string gradexpr = "") = 0; - - virtual IFunction * cloneFunction(const std::string & name, IFunction * f) = 0; - - /** - * get access to the function catalog - */ - virtual IFunctionCatalog * catalog() = 0; - - /** @link association - * @directed*/ - /*# IFunctionCatalog lnkIFunctionCatalog; */ -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IFUNCTIONFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogram.h b/examples/extended/analysis/A01/include/AIDA/IHistogram.h deleted file mode 100644 index 41f78f019a..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IHistogram.h +++ /dev/null @@ -1,127 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IHISTOGRAM_H -#define AIDA_IHISTOGRAM_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IBaseHistogram.h" - -namespace AIDA { - -/** - * User level interface to Histogram. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IHistogram : virtual public IBaseHistogram { - -public: - /// Destructor. - virtual ~IHistogram() { /* nop */; } - - /** - * Sum of the entries in all the IHistogram's bins, - * i.e in-range bins, UNDERFLOW and OVERFLOW. - * This is equivalent to the number of times the - * method fill was invoked. - * @return The sum of all the entries. - * - */ - virtual int allEntries() const = 0; - - /** - * Number of entries in the UNDERFLOW and OVERFLOW bins. - * @return The number of entries outside the range of the IHistogram. - * - */ - virtual int extraEntries() const = 0; - - /** - * Number of equivalent entries, i.e. SUM[ weight ] ^ 2 / SUM[ weight^2 ] - * @return The number of equivalent entries. - * - */ - virtual double equivalentBinEntries() const = 0; - - /** - * Sum of in-range bin heights in the IHistogram, - * UNDERFLOW and OVERFLOW bins are excluded. - * @return The sum of the in-range bins heights. - * - */ - virtual double sumBinHeights() const = 0; - - /** - * Sum of the heights of all the IHistogram's bins, - * i.e in-range bins, UNDERFLOW and OVERFLOW. - * @return The sum of all the bins heights. - * - */ - virtual double sumAllBinHeights() const = 0; - - /** - * Sum of heights in the UNDERFLOW and OVERFLOW bins. - * @return The sum of the heights of the out-of-range bins. - * - */ - virtual double sumExtraBinHeights() const = 0; - - /** - * Minimum height of the in-range bins, - * i.e. not considering the UNDERFLOW and OVERFLOW bins. - * @return The minimum height among the in-range bins. - * - */ - virtual double minBinHeight() const = 0; - - /** - * Maximum height of the in-range bins, - * i.e. not considering the UNDERFLOW and OVERFLOW bins. - * @return The maximum height among the in-range bins. - * - */ - virtual double maxBinHeight() const = 0; - - /** - * Scale the weights and the errors of all the IHistogram's bins - * (in-range and out-of-range ones) by a given scale factor. - * @param scaleFactor The scale factor. - * @return false If the scale factor is negative. - * - */ - virtual bool scale(double scaleFactor) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IHISTOGRAM_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogram1D.h b/examples/extended/analysis/A01/include/AIDA/IHistogram1D.h deleted file mode 100644 index c52944dc47..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IHistogram1D.h +++ /dev/null @@ -1,138 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IHISTOGRAM1D_H -#define AIDA_IHISTOGRAM1D_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IHistogram.h" - -namespace AIDA { - -class IAxis; - -/** - * User level interface to 1D Histogram. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IHistogram1D : virtual public IHistogram { - -public: - /// Destructor. - virtual ~IHistogram1D() { /* nop */; } - - /** - * Fill the IHistogram1D with a value and the - * corresponding weight. - * @param x The value to be filled in. - * @param weight The corresponding weight (by default 1). - * @return false If the weight is <0 or >1 (?). - * - */ - virtual bool fill(double x, double weight = 1.) = 0; - - /** - * The weighted mean of a bin. - * @param index The bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin. - * - */ - virtual double binMean(int index) const = 0; - - /** - * Number of entries in the corresponding bin (ie the number of times fill was called for this bin). - * @param index The bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The number of entries in the corresponding bin. - * - */ - virtual int binEntries(int index) const = 0; - - /** - * Total height of the corresponding bin (ie the sum of the weights in this bin). - * @param index The bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The height of the corresponding bin. - * - */ - virtual double binHeight(int index) const = 0; - - /** - * The error of a given bin. - * @param index The bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The error on the corresponding bin. - * - */ - virtual double binError(int index) const = 0; - - /** - * The mean of the whole IHistogram1D. - * @return The mean of the IHistogram1D. - * - */ - virtual double mean() const = 0; - - /** - * The RMS of the whole IHistogram1D. - * @return The RMS if the IHistogram1D. - * - */ - virtual double rms() const = 0; - - /** - * Get the x axis of the IHistogram1D. - * @return The x coordinate IAxis. - * - */ - virtual const IAxis & axis() const = 0; - - /** - * Get the bin number corresponding to a given coordinate along the x axis. - * This is a convenience method, equivalent to axis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - * @param coord The coordinalte along the x axis. - * @return The corresponding bin number. - * - */ - virtual int coordToIndex(double coord) const = 0; - - /** - * Add to this IHistogram1D the contents of another IHistogram1D. - * @param hist The IHistogram1D to be added to this IHistogram1D. - * @return false If the IHistogram1Ds binnings are incompatible. - * - */ - virtual bool add(const IHistogram1D & hist) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IHISTOGRAM1D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogram2D.h b/examples/extended/analysis/A01/include/AIDA/IHistogram2D.h deleted file mode 100644 index b68335bebe..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IHistogram2D.h +++ /dev/null @@ -1,219 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IHISTOGRAM2D_H -#define AIDA_IHISTOGRAM2D_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IHistogram.h" - -namespace AIDA { - -class IAxis; - -/** - * User level interface to 2D Histogram. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IHistogram2D : virtual public IHistogram { - -public: - /// Destructor. - virtual ~IHistogram2D() { /* nop */; } - - /** - * Fill the IHistogram2D with a couple of values and the - * corresponding weight. - * @param x The x value to be filled in. - * @param y The y value to be filled in. - * @param weight The corresponding weight (by default 1). - * @return false If the weight is <0 or >1 (?). - * - */ - virtual bool fill(double x, double y, double weight = 1.) = 0; - - /** - * The weighted mean along the x axis of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin along the x axis. - * - */ - virtual double binMeanX(int indexX, int indexY) const = 0; - - /** - * The weighted mean along the y axis of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin along the y axis. - * - */ - virtual double binMeanY(int indexX, int indexY) const = 0; - - /** - * Number of entries in the corresponding bin (ie the number of times fill was called for this bin). - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The number of entries in the corresponding bin. - * - */ - virtual int binEntries(int indexX, int indexY) const = 0; - - /** - * Sum of all the entries of the bins along a given x bin. - * This is equivalent to projectionX().binEntries(index). - * @param index The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The number of entries in the corresponding set of bins. - * - */ - virtual int binEntriesX(int index) const = 0; - - /** - * Sum of all the entries of the bins along a given y bin. - * This is equivalent to projectionY().binEntries(index). - * @param index The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The number of entries in the corresponding set of bins. - * - */ - virtual int binEntriesY(int index) const = 0; - - /** - * Total height of a give bin (ie the sum of the weights in this bin). - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The height of the corresponding bin. - * - */ - virtual double binHeight(int indexX, int indexY) const = 0; - - /** - * Sum of all the heights of the bins along a given x bin. - * This is equivalent to projectionX().binHeight(index). - * @param index The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The sum of the heights in the corresponding set of bins. - * - */ - virtual double binHeightX(int index) const = 0; - - /** - * Sum of all the heights of the bins along a given y bin. - * This is equivalent to projectionY().binHeight(index). - * @param index The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The sum of the heights in the corresponding set of bins. - * - */ - virtual double binHeightY(int index) const = 0; - - /** - * The error of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The error on the corresponding bin. - * - */ - virtual double binError(int indexX, int indexY) const = 0; - - /** - * The mean of the IHistogram2D along the x axis. - * @return The mean of the IHistogram2D along the x axis. - * - */ - virtual double meanX() const = 0; - - /** - * The mean of the IHistogram2D along the y axis. - * @return The mean of the IHistogram2D along the y axis. - * - */ - virtual double meanY() const = 0; - - /** - * The RMS of the IHistogram2D along the x axis. - * @return The RMS if the IHistogram2D along the x axis. - * - */ - virtual double rmsX() const = 0; - - /** - * The RMS of the IHistogram2D along the y axis. - * @return The RMS if the IHistogram2D along the y axis. - * - */ - virtual double rmsY() const = 0; - - /** - * Get the x axis of the IHistogram2D. - * @return The x coordinate IAxis. - * - */ - virtual const IAxis & xAxis() const = 0; - - /** - * Get the y axis of the IHistogram2D. - * @return The y coordinate IAxis. - * - */ - virtual const IAxis & yAxis() const = 0; - - /** - * Get the bin number corresponding to a given coordinate along the x axis. - * This is a convenience method, equivalent to xAxis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - * @param coord The coordinalte along the x axis. - * @return The corresponding bin number. - * - */ - virtual int coordToIndexX(double coord) const = 0; - - /** - * Get the bin number corresponding to a given coordinate along the y axis. - * This is a convenience method, equivalent to yAxis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - * @param coord The coordinalte along the y axis. - * @return The corresponding bin number. - * - */ - virtual int coordToIndexY(double coord) const = 0; - - /** - * Add to this IHistogram2D the contents of another IHistogram2D. - * @param hist The IHistogram2D to be added to this IHistogram2D. - * @return false If the IHistogram2Ds binnings are incompatible. - * - */ - virtual bool add(const IHistogram2D & hist) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IHISTOGRAM2D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogram3D.h b/examples/extended/analysis/A01/include/AIDA/IHistogram3D.h deleted file mode 100644 index fc5945b945..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IHistogram3D.h +++ /dev/null @@ -1,284 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IHISTOGRAM3D_H -#define AIDA_IHISTOGRAM3D_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IHistogram.h" - -namespace AIDA { - -class IAxis; - -/** - * User level interface to 3D Histogram. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IHistogram3D : virtual public IHistogram { - -public: - /// Destructor. - virtual ~IHistogram3D() { /* nop */; } - - /** - * Fill the IHistogram3D with a triplet of values and the - * corresponding weight. - * @param x The x value to be filled in. - * @param y The y value to be filled in. - * @param z The z value to be filled in. - * @param weight The corresponding weight (by default 1). - * @return false If the weight is <0 or >1 (?). - * - */ - virtual bool fill(double x, double y, double z, double weight = 1.) = 0; - - /** - * The weighted mean along the x axis of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin along the x axis. - * - */ - virtual double binMeanX(int indexX, int indexY, int indexZ) const = 0; - - /** - * The weighted mean the y axis of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin along the y axis. - * - */ - virtual double binMeanY(int indexX, int indexY, int indexZ) const = 0; - - /** - * The weighted mean the z axis of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin along the z axis. - * - */ - virtual double binMeanZ(int indexX, int indexY, int indexZ) const = 0; - - /** - * Number of entries in the corresponding bin (ie the number of times fill was called for this bin). - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The number of entries in the corresponding bin. - * - */ - virtual int binEntries(int indexX, int indexY, int indexZ) const = 0; - - /** - * Sum of all the entries of the bins along a given x bin. - * This is equivalent to projectionXY().binEntriesX(index). - * @param index The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The number of entries in the corresponding set of bins. - * - */ - virtual int binEntriesX(int index) const = 0; - - /** - * Sum of all the entries of the bins along a given y bin. - * This is equivalent to projectionXY().binEntriesY(index). - * @param index The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The number of entries in the corresponding set of bins. - * - */ - virtual int binEntriesY(int index) const = 0; - - /** - * Sum of all the entries of the bins along a given z bin. - * This is equivalent to projectionXZ().binEntriesZ(index). - * @param index The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The number of entries in the corresponding set of bins. - * - */ - virtual int binEntriesZ(int index) const = 0; - - /** - * Total height of a give bin (ie the sum of the weights in this bin). - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The height of the corresponding bin. - * - */ - virtual double binHeight(int indexX, int indexY, int indexZ) const = 0; - - /** - * Sum of all the heights of the bins along a given x bin. - * This is equivalent to projectionXY().binHeightX(index). - * @param index The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The sum of the heights in the corresponding set of bins. - * - */ - virtual double binHeightX(int index) const = 0; - - /** - * Sum of all the heights of the bins along a given y bin. - * This is equivalent to projectionXY().binHeightY(index). - * @param index The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The sum of the heights in the corresponding set of bins. - * - */ - virtual double binHeightY(int index) const = 0; - - /** - * Sum of all the heights of the bins along a given z bin. - * This is equivalent to projectionXZ().binHeightZ(index). - * @param index The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The sum of the heights in the corresponding set of bins. - * - */ - virtual double binHeightZ(int index) const = 0; - - /** - * The error of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexZ The z bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The error on the corresponding bin. - * - */ - virtual double binError(int indexX, int indexY, int indexZ) const = 0; - - /** - * The mean of the IHistogram3D along the x axis. - * @return The mean of the IHistogram3D along the x axis. - * - */ - virtual double meanX() const = 0; - - /** - * The mean of the IHistogram3D along the y axis. - * @return The mean of the IHistogram3D along the y axis. - * - */ - virtual double meanY() const = 0; - - /** - * The mean of the IHistogram3D along the z axis. - * @return The mean of the IHistogram3D along the z axis. - * - */ - virtual double meanZ() const = 0; - - /** - * The RMS of the IHistogram3D along the x axis. - * @return The RMS if the IHistogram3D along the x axis. - * - */ - virtual double rmsX() const = 0; - - /** - * The RMS of the IHistogram3D along the y axis. - * @return The RMS if the IHistogram3D along the y axis. - * - */ - virtual double rmsY() const = 0; - - /** - * The RMS of the IHistogram3D along the z axis. - * @return The RMS if the IHistogram3D along the z axis. - * - */ - virtual double rmsZ() const = 0; - - /** - * Get the x axis of the IHistogram3D. - * @return The x coordinate IAxis. - * - */ - virtual const IAxis & xAxis() const = 0; - - /** - * Get the y axis of the IHistogram3D. - * @return The y coordinate IAxis. - * - */ - virtual const IAxis & yAxis() const = 0; - - /** - * Get the z axis of the IHistogram3D. - * @return The z coordinate IAxis. - * - */ - virtual const IAxis & zAxis() const = 0; - - /** - * Get the bin number corresponding to a given coordinate along the x axis. - * This is a convenience method, equivalent to xAxis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - * @param coord The coordinalte along the x axis. - * @return The corresponding bin number. - * - */ - virtual int coordToIndexX(double coord) const = 0; - - /** - * Get the bin number corresponding to a given coordinate along the y axis. - * This is a convenience method, equivalent to yAxis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - * @param coord The coordinalte along the y axis. - * @return The corresponding bin number. - * - */ - virtual int coordToIndexY(double coord) const = 0; - - /** - * Get the bin number corresponding to a given coordinate along the z axis. - * This is a convenience method, equivalent to zAxis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - * @param coord The coordinalte along the z axis. - * @return The corresponding bin number. - * - */ - virtual int coordToIndexZ(double coord) const = 0; - - /** - * Add to this IHistogram3D the contents of another IHistogram3D. - * @param hist The IHistogram3D to be added to this IHistogram3D. - * @return false If the IHistogram3Ds binnings are incompatible. - * - */ - virtual bool add(const IHistogram3D & hist) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IHISTOGRAM3D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IHistogramFactory.h b/examples/extended/analysis/A01/include/AIDA/IHistogramFactory.h deleted file mode 100644 index 50fc8007b0..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IHistogramFactory.h +++ /dev/null @@ -1,767 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IHISTOGRAMFACTORY_H -#define AIDA_IHISTOGRAMFACTORY_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IBaseHistogram; -class ICloud1D; -class ICloud2D; -class ICloud3D; -class IHistogram1D; -class IHistogram2D; -class IHistogram3D; -class IProfile1D; -class IProfile2D; - -/** - * User level interface for factory classes of Histograms (binned, unbinned, and profile) - * The created objects are assumed to be managed by the tree which is associated to the factory. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IHistogramFactory { - -public: - /// Destructor. - virtual ~IHistogramFactory() { /* nop */; } - - /** - * Destroy an IBaseHistogram ogject. - * @param hist The IBaseHistogram to be destroyed. - * @return false If the histogram cannot be destroyed. - * - */ - virtual bool destroy(IBaseHistogram * hist) = 0; - - /** - * Create a ICloud1D, an unbinned 1-dimensioal histogram. - * @param name The name of the ICloud1D. - * @param title The title of the ICloud1D. - * @param nMax The maximum number of entries after which the ICloud1D - * will convert to an IHistogram1D. The default nMax = -1 - * indicates no limit of entries before aoutoconversion to a IHistogram1D. - * @param options The options for the ICloud1D. "autoconvert=true" to enable autoconversion - * to an IHistogram1D. - * @return The newly created ICloud1D. - * - */ - virtual ICloud1D * createCloud1D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; - - /** - * Create a ICloud1D, an unbinned 1-dimensional histogram. - * @param nameAndTitle The name of the ICloud1D; it is also its title. - * @return The newly created ICloud1D. - * - */ - virtual ICloud1D * createCloud1D(const std::string & nameAndTitle) = 0; - - /** - * Create a copy of an ICloud1D. - * @param name The name of the new copy. - * @param cloud The ICloud1D to be copied. - * @return The copy of the ICloud1D. - * - */ - virtual ICloud1D * createCopy(const std::string & name, const ICloud1D & cloud) = 0; - - /** - * Create a ICloud2D, an unbinned 2-dimensional histogram. - * @param name The name of the ICloud2D. - * @param title The title of the ICloud2D. - * @param nMax The maximum number of entries after which the ICloud2D - * will convert to an IHistogram2D. The default nMax = -1 - * indicates no limit of entries before aoutoconversion to a IHistogram2D. - * @param options The options for the ICloud2D. "autoconvert=true" to enable autoconversion - * to an IHistogram2D. - * @return The newly created ICloud2D. - * - */ - virtual ICloud2D * createCloud2D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; - - /** - * Create a ICloud2D, an unbinned 2-dimensional histogram. - * @param nameAndTitle The name of the ICloud2D; it is also its title. - * @return The newly created ICloud2D. - * - */ - virtual ICloud2D * createCloud2D(const std::string & nameAndTitle) = 0; - - /** - * Create a copy of an ICloud2D. - * @param name The name of the new copy. - * @param cloud The ICloud2D to be copied. - * @return The copy of the ICloud2D. - * - */ - virtual ICloud2D * createCopy(const std::string & name, const ICloud2D & cloud) = 0; - - /** - * Create a ICloud3D, an unbinned 3-dimensional histogram. - * @param name The name of the ICloud3D. - * @param title The title of the ICloud3D. - * @param nMax The maximum number of entries after which the ICloud3D - * will convert to an IHistogram3D. The default nMax = -1 - * indicates no limit of entries before aoutoconversion to a IHistogram3D. - * @param options The options for the ICloud3D. "autoconvert=true" to enable autoconversion - * to an IHistogram3D. - * @return The newly created ICloud3D. - * - */ - virtual ICloud3D * createCloud3D(const std::string & name, const std::string & title, int nMax = -1, const std::string & options = "") = 0; - - /** - * Create a ICloud3D, an unbinned 3-dimensional histogram. - * @param nameAndTitle The name of the ICloud3D; it is also its title. - * @return The newly created ICloud3D. - * - */ - virtual ICloud3D * createCloud3D(const std::string & nameAndTitle) = 0; - - /** - * Create a copy of an ICloud3D. - * @param name The name of the new copy. - * @param cloud The ICloud3D to be copied. - * @return The copy of the ICloud3D. - * - */ - virtual ICloud3D * createCopy(const std::string & name, const ICloud3D & cloud) = 0; - - /** - * Create a IHistogram1D. - * @param name The name of the IHistogram1D. - * @param title The title of the IHistogram1D. - * @param nBins The number of bins of the x axis. - * @param lowerEdge The lower edge of the x axis. - * @param upperEdge The upper edge of the x axis. - * @param options The options for the IHistogram1D. The default is "". - * "type=efficiency" for an efficiency IHistogram1D. - * @return The newly created IHistogram1D. - * - */ - virtual IHistogram1D * createHistogram1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; - - /** - * Create a IHistogram1D. - * @param nameAndTitle The name of the IHistogram1D; it is also the title. - * @param nBins The number of bins of the x axis. - * @param lowerEdge The lower edge of the x axis. - * @param upperEdge The upper edge of the x axis. - * @return The newly created IHistogram1D. - * - */ - virtual IHistogram1D * createHistogram1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; - - /** - * Create a IHistogram1D. - * @param name The name of the IHistogram1D. - * @param title The title of the IHistogram1D. - * @param binEdges The array of the bin edges for the x axis. - * @param options The options for the IHistogram1D. The default is "". - * "type=efficiency" for an efficiency IHistogram1D. - * @return The newly created IHistogram1D. - * - */ - virtual IHistogram1D * createHistogram1D(const std::string & name, const std::string & title, const std::vector & binEdges, const std::string & options = "") = 0; - - /** - * Create a copy of an IHistogram1D. - * @param name The name of the new copy. - * @param hist The IHistogram1D to be copied. - * @return The copy of the IHistogram1D. - * - */ - virtual IHistogram1D * createCopy(const std::string & name, const IHistogram1D & hist) = 0; - - /** - * Create a IHistogram2D. - * @param name The name of the IHistogram2D. - * @param title The title of the IHistogram2D. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of the x axis. - * @param upperEdgeX The upper edge of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of the y axis. - * @param upperEdgeY The upper edge of the y axis. - * @param options The options for the IHistogram2D. The default is "". - * "type=efficiency" for an efficiency IHistogram2D. - * @return The newly created IHistogram2D. - * - */ - virtual IHistogram2D * createHistogram2D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string & options = "") = 0; - - /** - * Create a IHistogram2D. - * @param nameAndTitle The name of the IHistogram2D; it is also the title. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of the x axis. - * @param upperEdgeX The upper edge of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of the y axis. - * @param upperEdgeY The upper edge of the y axis. - * @return The newly created IHistogram2D. - * - */ - virtual IHistogram2D * createHistogram2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; - - /** - * Create a IHistogram2D. - * @param name The name of the IHistogram2D. - * @param title The title of the IHistogram2D. - * @param binEdgesX The array of the bin edges for the x axis. - * @param binEdgesY The array of the bin edges for the y axis. - * @param options The options for the IHistogram2D. The default is "". - * "type=efficiency" for an efficiency IHistogram2D. - * @return The newly created IHistogram2D. - * - */ - virtual IHistogram2D * createHistogram2D(const std::string & name, const std::string & title, const std::vector & binEdgesX, const std::vector & binEdgesY, const std::string & options = "") = 0; - - /** - * Create a copy of an IHistogram2D. - * @param name The name of the new copy. - * @param hist The IHistogram2D to be copied. - * @return The copy of the IHistogram2D. - * - */ - virtual IHistogram2D * createCopy(const std::string & name, const IHistogram2D & hist) = 0; - - /** - * Create a IHistogram3D. - * @param name The name of the IHistogram3D. - * @param title The title of the IHistogram3D. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of the x axis. - * @param upperEdgeX The upper edge of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of the y axis. - * @param upperEdgeY The upper edge of the y axis. - * @param nBinsZ The number of bins of the z axis. - * @param lowerEdgeZ The lower edge of the z axis. - * @param upperEdgeZ The upper edge of the z axis. - * @param options The options for the IHistogram3D. The default is "". - * "type=efficiency" for an efficiency IHistogram3D. - * @return The newly created IHistogram3D. - * - */ - virtual IHistogram3D * createHistogram3D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ, const std::string & options = "") = 0; - - /** - * Create a IHistogram3D. - * @param nameAndTitle The name of the IHistogram3D; it is also the title. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of the x axis. - * @param upperEdgeX The upper edge of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of the y axis. - * @param upperEdgeY The upper edge of the y axis. - * @param nBinsZ The number of bins of the z axis. - * @param lowerEdgeZ The lower edge of the z axis. - * @param upperEdgeZ The upper edge of the z axis. - * @return The newly created IHistogram3D. - * - */ - virtual IHistogram3D * createHistogram3D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) = 0; - - /** - * Create a IHistogram3D. - * @param name The name of the IHistogram3D. - * @param title The title of the IHistogram3D. - * @param binEdgesX The array of the bin edges for the x axis. - * @param binEdgesY The array of the bin edges for the y axis. - * @param binEdgesZ The array of the bin edges for the z axis. - * @param options The options for the IHistogram3D. The default is "". - * "type=efficiency" for an efficiency IHistogram3D. - * @return The newly created IHistogram3D. - * - */ - virtual IHistogram3D * createHistogram3D(const std::string & name, const std::string & title, const std::vector & binEdgesX, const std::vector & binEdgesY, const std::vector & binEdgesZ, const std::string & options = "") = 0; - - /** - * Create a copy of an IHistogram3D. - * @param name The name of the new copy. - * @param hist The IHistogram3D to be copied. - * @return The copy of the IHistogram3D. - * - */ - virtual IHistogram3D * createCopy(const std::string & name, const IHistogram3D & hist) = 0; - - /** - * Create a IProfile1D. - * @param name The name of the IProfile1D. - * @param title The title of the IProfile1D. - * @param nBins The number of bins of the x axis. - * @param lowerEdge The lower edge of the x axis. - * @param upperEdge The upper edge of the x axis. - * @param options The options for the IProfile1D. The default is "". - * @return The newly created IProfile1D. - * - */ - virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, const std::string & options = "") = 0; - - /** - * Create a IProfile1D. - * @param name The name of the IProfile1D. - * @param title The title of the IProfile1D. - * @param nBins The number of bins of the x axis. - * @param lowerEdge The lower edge of the x axis. - * @param upperEdge The upper edge of the x axis. - * @param lowerValue The lower value displayed along the y axis. - * @param upperValue The upper value displayed along the y axis. - * @param options The options for the IProfile1D. The default is "". - * @return The newly created IProfile1D. - * - */ - virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue, const std::string & options = "") = 0; - - /** - * Create a IProfile1D. - * @param name The name of the IProfile1D. - * @param title The title of the IProfile1D. - * @param binEdges The array of the bin edges for the x axis. - * @param options The options for the IProfile1D. The default is "". - * @return The newly created IProfile1D. - * - */ - virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, const std::vector & binEdges, const std::string & options = "") = 0; - - /** - * Create a IProfile1D. - * @param name The name of the IProfile1D. - * @param title The title of the IProfile1D. - * @param binEdges The array of the bin edges for the x axis. - * @param lowerValue The lower value displayed along the y axis. - * @param upperValue The upper value displayed along the y axis. - * @param options The options for the IProfile1D. The default is "". - * @return The newly created IProfile1D. - * - */ - virtual IProfile1D * createProfile1D(const std::string & name, const std::string & title, const std::vector & binEdges, double lowerValue, double upperValue, const std::string & options = "") = 0; - - /** - * Create a IProfile1D. - * @param nameAndTitle The name of the IProfile1D; it is also the title. - * @param nBins The number of bins of the x axis. - * @param lowerEdge The lower edge of the x axis. - * @param upperEdge The upper edge of the x axis. - * @return The newly created IProfile1D. - * - */ - virtual IProfile1D * createProfile1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge) = 0; - - /** - * Create a IProfile1D. - * @param nameAndTitle The name of the IProfile1D; it is also the title. - * @param nBins The number of bins of the x axis. - * @param lowerEdge The lower edge of the x axis. - * @param upperEdge The upper edge of the x axis. - * @param lowerValue The lower value displayed along the y axis. - * @param upperValue The upper value displayed along the y axis. - * @return The newly created IProfile1D. - * - */ - virtual IProfile1D * createProfile1D(const std::string & nameAndTitle, int nBins, double lowerEdge, double upperEdge, double lowerValue, double upperValue) = 0; - - /** - * Create a copy of an IProfile1D. - * @param name The name of the new copy. - * @param profile The IProfile1D to be copied. - * @return The copy of the IProfile1D. - * - */ - virtual IProfile1D * createCopy(const std::string & name, const IProfile1D & profile) = 0; - - /** - * Create a IProfile2D. - * @param name The name of the IProfile2D. - * @param title The title of the IProfile2D. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of the x axis. - * @param upperEdgeX The upper edge of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of the y axis. - * @param upperEdgeY The upper edge of the y axis. - * @param options The options for the IProfile2D. The default is "". - * @return The newly created IProfile2D. - * - */ - virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string & options = "") = 0; - - /** - * Create a IProfile2D. - * @param name The name of the IProfile2D. - * @param title The title of the IProfile2D. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of the x axis. - * @param upperEdgeX The upper edge of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of the y axis. - * @param upperEdgeY The upper edge of the y axis. - * @param lowerValue The lower value displayed along the z axis. - * @param upperValue The upper value displayed along the z axis. - * @param options The options for the IProfile2D. The default is "". - * @return The newly created IProfile2D. - * - */ - virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue, const std::string & options = "") = 0; - - /** - * Create a IProfile2D. - * @param name The name of the IProfile2D. - * @param title The title of the IProfile2D. - * @param binEdgesX The array of the bin edges for the x axis. - * @param binEdgesY The array of the bin edges for the y axis. - * @param options The options for the IProfile2D. The default is "". - * @return The newly created IProfile2D. - * - */ - virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, const std::vector & binEdgesX, const std::vector & binEdgesY, const std::string & options = "") = 0; - - /** - * Create a IProfile2D. - * @param name The name of the IProfile2D. - * @param title The title of the IProfile2D. - * @param binEdgesX The array of the bin edges for the x axis. - * @param binEdgesY The array of the bin edges for the y axis. - * @param lowerValue The lower value displayed along the y axis. - * @param upperValue The upper value displayed along the y axis. - * @param options The options for the IProfile2D. The default is "". - * @return The newly created IProfile2D. - * - */ - virtual IProfile2D * createProfile2D(const std::string & name, const std::string & title, const std::vector & binEdgesX, const std::vector & binEdgesY, double lowerValue, double upperValue, const std::string & options = "") = 0; - - /** - * Create a IProfile2D. - * @param nameAndTitle The name of the IProfile2D; it is also the title. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of the x axis. - * @param upperEdgeX The upper edge of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of the y axis. - * @param upperEdgeY The upper edge of the y axis. - * @return The newly created IProfile2D. - * - */ - virtual IProfile2D * createProfile2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY) = 0; - - /** - * Create a IProfile2D. - * @param nameAndTitle The name of the IProfile2D; it is also the title. - * @param nBinsX The number of bins of the x axis. - * @param lowerEdgeX The lower edge of the x axis. - * @param upperEdgeX The upper edge of the x axis. - * @param nBinsY The number of bins of the y axis. - * @param lowerEdgeY The lower edge of the y axis. - * @param upperEdgeY The upper edge of the y axis. - * @param lowerValue The lower value displayed along the z axis. - * @param upperValue The upper value displayed along the z axis. - * @return The newly created IProfile2D. - * - */ - virtual IProfile2D * createProfile2D(const std::string & nameAndTitle, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, double lowerValue, double upperValue) = 0; - - /** - * Create a copy of an IProfile2D. - * @param name The name of the new copy. - * @param profile The IProfile2D to be copied. - * @return The copy of the IProfile2D. - * - */ - virtual IProfile2D * createCopy(const std::string & name, const IProfile2D & profile) = 0; - - /** - * Create an IHistogram1D by adding two IHistogram1D. - * @param name The name of the resulting IHistogram1D. - * @param hist1 The first member of the addition. - * @param hist2 The second member of the addition. - * @return The sum of the two IHistogram1D. - * - */ - virtual IHistogram1D * add(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; - - /** - * Create an IHistogram1D by subtracting two IHistogram1D. - * @param name The name of the resulting IHistogram1D. - * @param hist1 The first member of the subtraction. - * @param hist2 The second member of the subtraction. - * @return The difference of the two IHistogram1D. - * - */ - virtual IHistogram1D * subtract(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; - - /** - * Create an IHistogram1D by multiplying two IHistogram1D. - * @param name The name of the resulting IHistogram1D. - * @param hist1 The first member of the multiplication. - * @param hist2 The second member of the multiplication. - * @return The product of the two IHistogram1D. - * - */ - virtual IHistogram1D * multiply(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; - - /** - * Create an IHistogram1D by dividing two IHistogram1D. - * @param name The name of the resulting IHistogram1D. - * @param hist1 The first member of the division. - * @param hist2 The second member of the division. - * @return The ration of the two IHistogram1D. - * - */ - virtual IHistogram1D * divide(const std::string & name, const IHistogram1D & hist1, const IHistogram1D & hist2) = 0; - - /** - * Create an IHistogram2D by adding two IHistogram2D. - * @param name The name of the resulting IHistogram2D. - * @param hist1 The first member of the addition. - * @param hist2 The second member of the addition. - * @return The sum of the two IHistogram2D. - * - */ - virtual IHistogram2D * add(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; - - /** - * Create an IHistogram2D by subtracting two IHistogram2D. - * @param name The name of the resulting IHistogram2D. - * @param hist1 The first member of the subtraction. - * @param hist2 The second member of the subtraction. - * @return The difference of the two IHistogram2D. - * - */ - virtual IHistogram2D * subtract(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; - - /** - * Create an IHistogram2D by multiplying two IHistogram2D. - * @param name The name of the resulting IHistogram2D. - * @param hist1 The first member of the multiplication. - * @param hist2 The second member of the multiplication. - * @return The product of the two IHistogram2D. - * - */ - virtual IHistogram2D * multiply(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; - - /** - * Create an IHistogram2D by dividing two IHistogram2D. - * @param name The name of the resulting IHistogram2D. - * @param hist1 The first member of the division. - * @param hist2 The second member of the division. - * @return The ration of the two IHistogram2D. - * - */ - virtual IHistogram2D * divide(const std::string & name, const IHistogram2D & hist1, const IHistogram2D & hist2) = 0; - - /** - * Create an IHistogram3D by adding two IHistogram3D. - * @param name The name of the resulting IHistogram3D. - * @param hist1 The first member of the addition. - * @param hist2 The second member of the addition. - * @return The sum of the two IHistogram3D. - * - */ - virtual IHistogram3D * add(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; - - /** - * Create an IHistogram3D by subtracting two IHistogram3D. - * @param name The name of the resulting IHistogram3D. - * @param hist1 The first member of the subtraction. - * @param hist2 The second member of the subtraction. - * @return The difference of the two IHistogram3D. - * - */ - virtual IHistogram3D * subtract(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; - - /** - * Create an IHistogram3D by multiplying two IHistogram3D. - * @param name The name of the resulting IHistogram3D. - * @param hist1 The first member of the multiplication. - * @param hist2 The second member of the multiplication. - * @return The product of the two IHistogram3D. - * - */ - virtual IHistogram3D * multiply(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; - - /** - * Create an IHistogram3D by dividing two IHistogram3D. - * @param name The name of the resulting IHistogram3D. - * @param hist1 The first member of the division. - * @param hist2 The second member of the division. - * @return The ration of the two IHistogram3D. - * - */ - virtual IHistogram3D * divide(const std::string & name, const IHistogram3D & hist1, const IHistogram3D & hist2) = 0; - - /** - * Create an IHistogram1D by projecting an IHistogram2D along its x axis. - * This is equivalent to sliceX(UNDERFLOW_BIN,OVERFLOW_BIN). - * @param name The name of the resulting IHistogram1D. - * @param hist The IHistogram2D to be projected. - * @return The resulting projection. - * - */ - virtual IHistogram1D * projectionX(const std::string & name, const IHistogram2D & hist) = 0; - - /** - * Create an IHistogram1D by projecting an IHistogram2D along its y axis. - * This is equivalent to sliceY(UNDERFLOW_BIN,OVERFLOW_BIN). - * @param name The name of the resulting IHistogram1D. - * @param hist The IHistogram2D to be projected. - * @return The resulting projection. - * - */ - virtual IHistogram1D * projectionY(const std::string & name, const IHistogram2D & hist) = 0; - - /** - * Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis at a given bin. - * This is equivalent to sliceX(indexY,indexY). - * @param name The name of the resulting IHistogram1D. - * @param hist The IHistogram2D to be sliced. - * @param index The index of the bin along the y axis where the IHistogram2D has to be sliced. - * @return The resulting slice. - * - */ - virtual IHistogram1D * sliceX(const std::string & name, const IHistogram2D & hist, int index) = 0; - - /** - * Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis at a given bin. - * This is equivalent to sliceY(indexX,indexX). - * @param name The name of the resulting IHistogram1D. - * @param hist The IHistogram2D to be sliced. - * @param index The index of the bin along the x axis where the IHistogram2D has to be sliced. - * @return The resulting slice. - * - */ - virtual IHistogram1D * sliceY(const std::string & name, const IHistogram2D & hist, int index) = 0; - - /** - * Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis between two bins (inclusive). - * @param name The name of the resulting IHistogram1D. - * @param hist The IHistogram2D to be sliced. - * @param index1 The index of the bin along the y axis that marks the lower edge of the slice. - * @param index2 The index of the bin along the y axis that marks the upper edge of the slice. - * @return The resulting slice. - * - */ - virtual IHistogram1D * sliceX(const std::string & name, const IHistogram2D & hist, int index1, int index2) = 0; - - /** - * Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis between two bins (inclusive). - * @param name The name of the resulting IHistogram1D. - * @param hist The IHistogram2D to be sliced. - * @param index1 The index of the bin along the x axis that marks the lower edge of the slice. - * @param index2 The index of the bin along the x axis that marks the upper edge of the slice. - * @return The resulting slice. - * - */ - virtual IHistogram1D * sliceY(const std::string & name, const IHistogram2D & hist, int index1, int index2) = 0; - - /** - * Create an IHistogram2D by projecting an IHistogram3D on the x-y plane. - * This is equivalent to sliceXY(UNDERFLOW_BIN,OVERFLOW_BIN). - * @param name The name of the resulting IHistogram2D. - * @param hist The IHistogram3D to be projected. - * @return The resulting projection. - * - */ - virtual IHistogram2D * projectionXY(const std::string & name, const IHistogram3D & hist) = 0; - - /** - * Create an IHistogram2D by projecting an IHistogram3D on the x-z plane. - * This is equivalent to sliceXZ(UNDERFLOW_BIN,OVERFLOW_BIN). - * @param name The name of the resulting IHistogram2D. - * @param hist The IHistogram3D to be projected. - * @return The resulting projection. - * - */ - virtual IHistogram2D * projectionXZ(const std::string & name, const IHistogram3D & hist) = 0; - - /** - * Create an IHistogram2D by projecting an IHistogram3D on the y-z plane. - * This is equivalent to sliceYZ(UNDERFLOW_BIN,OVERFLOW_BIN). - * @param name The name of the resulting IHistogram2D. - * @param hist The IHistogram3D to be projected. - * @return The resulting projection. - * - */ - virtual IHistogram2D * projectionYZ(const std::string & name, const IHistogram3D & hist) = 0; - - /** - * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Z axis, - * between "index1" and "index2" (inclusive). - * The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. - * The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. - * @param name The name of the resulting IHistogram2D. - * @param hist The IHistogram3D to sliced. - * @param index1 The index of the bin along the z axis that marks the lower edge of the slice. - * @param index2 The index of the bin along the z axis that marks the upper edge of the slice. - * @return The resulting slice. - * - */ - virtual IHistogram2D * sliceXY(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; - - /** - * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Y axis, - * between "index1" and "index2" (inclusive). - * The X axis of the IHistogram2D corresponds to the X axis of this IHistogram3D. - * The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. - * @param name The name of the resulting IHistogram2D. - * @param hist The IHistogram3D to sliced. - * @param index1 The index of the bin along the y axis that marks the lower edge of the slice. - * @param index2 The index of the bin along the y axis that marks the upper edge of the slice. - * @return The resulting slice. - * - */ - virtual IHistogram2D * sliceXZ(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; - - /** - * Create an IHistogram2D by slicing an IHistogram3D perpendicular to the X axis, - * between "index1" and "index2" (inclusive). - * The Y axis of the IHistogram2D corresponds to the Y axis of this IHistogram3D. - * The Z axis of the IHistogram2D corresponds to the Z axis of this IHistogram3D. - * @param name The name of the resulting IHistogram2D. - * @param hist The IHistogram3D to sliced. - * @param index1 The index of the bin along the x axis that marks the lower edge of the slice. - * @param index2 The index of the bin along the x axis that marks the upper edge of the slice. - * @return The resulting slice. - * - */ - virtual IHistogram2D * sliceYZ(const std::string & name, const IHistogram3D & hist, int index1, int index2) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IHISTOGRAMFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IInfo.h b/examples/extended/analysis/A01/include/AIDA/IInfo.h deleted file mode 100644 index c256b98643..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IInfo.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IINFO_H -#define AIDA_IINFO_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class IFillStyle; -class ILineStyle; -class IMarkerStyle; - -/** - * The info class permits to access the info area of a region. - * Through it legends, statistics, text could be displayed. - * A legend is an association of a graphical marker and a text. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IInfo { - -public: - /// Destructor. - virtual ~IInfo() { /* nop */; } - - /** - * Clear the info area. - */ - virtual void clear() = 0; - - /** - * Add a text. The text is appended to existing info elements. - */ - virtual void addText(const std::string & text) = 0; - - /** - * Add a marker, line or fill area legend. - * The legend is appended to existing elements. - */ - virtual void addLegend(const IMarkerStyle & style, const std::string & description) = 0; - - virtual void addLegend(const ILineStyle & style, const std::string & description) = 0; - - virtual void addLegend(const IFillStyle & style, const std::string & description) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IINFO_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IInfoStyle.h b/examples/extended/analysis/A01/include/AIDA/IInfoStyle.h deleted file mode 100644 index 6f6e5350fb..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IInfoStyle.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IINFOSTYLE_H -#define AIDA_IINFOSTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IBaseStyle.h" - -namespace AIDA { - -class ITextStyle; - -/** - * Style for the part of the scene representing the info area. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IInfoStyle : virtual public IBaseStyle { - -public: - /// Destructor. - virtual ~IInfoStyle() { /* nop */; } - - virtual ITextStyle & textStyle() = 0; - - virtual bool setTextStyle(const ITextStyle & textStyle) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IINFOSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ILineStyle.h b/examples/extended/analysis/A01/include/AIDA/ILineStyle.h deleted file mode 100644 index ec139c0808..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ILineStyle.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ILINESTYLE_H -#define AIDA_ILINESTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -#include "AIDA/IBrushStyle.h" - -namespace AIDA { - -/** - * Style for all lines (axis lines, legend box outlines, etc.) - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class ILineStyle : virtual public IBrushStyle { - -public: - /// Destructor. - virtual ~ILineStyle() { /* nop */; } - - /** - * Get list of line types supported by this implementation. - */ - virtual std::vector availableLineTypes() const = 0; - - /** - * Get line type currently in use. - */ - virtual std::string lineType() const = 0; - - /** - * Get current line thickness. - */ - virtual int thickness() const = 0; - - /** - * Set current line type e.g. "dotted". - * @return false if line type not known to this implementation. - */ - virtual bool setLineType(const std::string & newLineType) = 0; - - /** - * Set thickness (exact meaning is implementation-dependent, - * but <0 means invisible). - * @return false if value not supported by this implementation. - */ - virtual bool setThickness(int newThickness) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ILINESTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IManagedObject.h b/examples/extended/analysis/A01/include/AIDA/IManagedObject.h deleted file mode 100644 index a36a455cd2..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IManagedObject.h +++ /dev/null @@ -1,64 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IMANAGEDOBJECT_H -#define AIDA_IMANAGEDOBJECT_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -/** - * An object which can be stored in a tree. - * @see ITree - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IManagedObject { - -public: - /// Destructor. - virtual ~IManagedObject() { /* nop */; } - - /** - * Get the name of an IManagedObject. - * Names can only be changed using the ITree.mv(). - * @return The name of the IManagedObject. - * - */ - virtual const std::string & name() const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IMANAGEDOBJECT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IMarkerStyle.h b/examples/extended/analysis/A01/include/AIDA/IMarkerStyle.h deleted file mode 100644 index 974779c62e..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IMarkerStyle.h +++ /dev/null @@ -1,73 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IMARKERSTYLE_H -#define AIDA_IMARKERSTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -#include "AIDA/IBrushStyle.h" - -namespace AIDA { - -/** - * Style for all markers (histo representation, legend box etc.) - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class IMarkerStyle : virtual public IBrushStyle { - -public: - /// Destructor. - virtual ~IMarkerStyle() { /* nop */; } - - /** - * Get list of shapes available in this implementation. - */ - virtual std::vector availableShapes() const = 0; - - /** - * Get current marker shape. - */ - virtual std::string shape() const = 0; - - /** - * Set current marker shape, e.g. "openCircle". - * @return false if shape not available in this implementation. - */ - virtual bool setShape(const std::string & shape) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IMARKERSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IMeasurement.h b/examples/extended/analysis/A01/include/AIDA/IMeasurement.h deleted file mode 100644 index 0c8e15f367..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IMeasurement.h +++ /dev/null @@ -1,100 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IMEASUREMENT_H -#define AIDA_IMEASUREMENT_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -namespace AIDA { - -/** - * Basic user-level interface class for holding a single "measurement" - * with positive and negative errors (to allow for asymmetric errors). - * "IMeasurement" = "value" + "errorPlus" - "errorMinus" - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IMeasurement { - -public: - /// Destructor. - virtual ~IMeasurement() { /* nop */; } - - /** - * Get the value of the IMeasurement. - * @return The value of the IMeasurement. - * - */ - virtual double value() const = 0; - - /** - * Get the plus error of the IMeasurement. - * @return The plus error. - * - */ - virtual double errorPlus() const = 0; - - /** - * Get the minus error of the IMeasurement. - * @return The minus error. - * - */ - virtual double errorMinus() const = 0; - - /** - * Set the value of the IMeasurement. - * @param value The new value of the IMeasurement. - * @return false If the value cannot be set. - * - */ - virtual bool setValue(double value) = 0; - - /** - * Set the plus error of the IMeasurement. - * @param value The new plus error of the IMeasurement. - * @return false If the error cannot be set or it is negative. - * - */ - virtual bool setErrorPlus(double errorPlus) = 0; - - /** - * Set the minus error of the IMeasurement. - * @param value The new minus error of the IMeasurement. - * @return false If the error cannot be set or it is negative. - * - */ - virtual bool setErrorMinus(double errorMinus) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IMEASUREMENT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IModelFunction.h b/examples/extended/analysis/A01/include/AIDA/IModelFunction.h deleted file mode 100644 index 78283c4a3c..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IModelFunction.h +++ /dev/null @@ -1,119 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IMODELFUNCTION_H -#define AIDA_IMODELFUNCTION_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -#include "AIDA/IFunction.h" - -namespace AIDA { - -class IRangeSet; - -/** @interface IModelFunction - * - * Interface of model function for fitting (for advanced users). - * - * OPEN QUESTIONS: - * - * How to treat normalization at user level? Two possibilities: - * - we have "Gauss" and "NormalizedGauss", the first one user cannot - * use for ML fit - * - we have only one "Gauss" function, but it's smart and when normalized, - * gets rid of one of its parameters - * - * Normalization range might be set directly on the function by the user? - * Now we set it in the data pipe, Victor thinks that it is not very clear - * and should be on the function ;) - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IModelFunction : virtual public IFunction { - -public: - /// Destructor. - virtual ~IModelFunction() { /* nop */; } - - /// Return false if function does not provide the normalization capability. - virtual bool providesNormalization() const = 0; - - /** - * Normalize by internally adjusting some of the parameters. - * When normalization is on then integral of the function in - * the normalization range equals to 1. - */ - virtual void normalize(bool on) = 0; - - /** - * Return true if normalization is currently switched on. - */ - virtual bool isNormalized() const = 0; - - /** - * Compute gradient with respect to parameters. - */ - virtual const std::vector & parameterGradient(const std::vector & x) const = 0; - - /** - * Return true if provides parameter gradient. - */ - virtual bool providesParameterGradient() const = 0; - - /** - * Set the normalization range from -inf to +inf in the i-th - * axis (dimension). - * - * Full range is the default if not set otherwise. - * It is still possible to evaluate function outside of the - * normalization range. - * - * PENDING: no methods to retrieve current range! - */ - virtual IRangeSet & normalizationRange(int iAxis) = 0; - - /** - * Set full range in all axes. - */ - virtual void includeNormalizationAll() = 0; - - /** - * Set empty range in all axes. - */ - virtual void excludeNormalizationAll() = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IMODELFUNCTION_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotter.h b/examples/extended/analysis/A01/include/AIDA/IPlotter.h deleted file mode 100644 index 83739484e5..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IPlotter.h +++ /dev/null @@ -1,211 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IPLOTTER_H -#define AIDA_IPLOTTER_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IPlotterRegion; -class ITitleStyle; - -/** - * User level interface to plotter. - * - * This IPlotter interface assumes the handling of - * multiple plotting regions. Then the IPlotter should - * be seen as a "page" managing multiple drawing region. - * It assumes that a "current" region mechanism is used. - * - * The keyword "region" is borrowed from the OpenInventor - * terminology (viewing region). - * - * See also the IPlotterRegion for more comments. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IPlotter { - -public: - /// Destructor. - virtual ~IPlotter() { /* nop */; } - - /** - * Region management methods. - */ - - /** - * Create a new region. - * @param x, y, w, h Position and size in normal coordinates - * that is to say between 0 and 1. - * Then a region with (x=0,y=0,w=1,h=1) maps - * the full page. "x" goes left to right. "y" bottom - * to top. - * @return The newly created region. Return null in case not failure. - * Note that the plotter manages the regions ; user does not - * have to delete a region object directly. - */ - virtual IPlotterRegion * createRegion(double x = 0, double y = 0, double w = 1.0, double h = 1.0) = 0; - - /** - * Create a grid of regions. - * By default the current region is the top left one (with index 0). - * Region are indexed from zero, with increasing order - * left to right, top to bottom. - * @param index Set the current region. - */ - virtual bool createRegions(int columns = 1, int rows = 1, int index = 0) = 0; - - /** - * @return The current region. - */ - virtual IPlotterRegion & currentRegion() const = 0; - - /** - * @return The current region index. - */ - virtual int currentRegionNumber() const = 0; - - /** - * @return The number of regions. - */ - virtual int numberOfRegions() const = 0; - - /** - * Set current region by giving its index [0,n-1] - */ - virtual bool setCurrentRegionNumber(int index) = 0; - - /** - * Set current region to be the "next" one. - * If exceeding the number of regions, - * the current region index return to 0. - * @return The new current region. - */ - virtual IPlotterRegion & next() = 0; - - /** - * @return A region, knowing its index. - */ - virtual IPlotterRegion * region(int index) const = 0; - - /** - * Destroy regions. - */ - virtual void destroyRegions() = 0; - - /** - * Clear all regions. It does not reset the number - * and position of regions. This can be done through - * a destroyRegions. - */ - virtual void clearRegions() = 0; - - /* - * Set various plotting paramters for the whole page. - * Activate the graphic layer and update the screen window(s) - * if needed. - */ - virtual bool setParameter(const std::string & parameter, const std::string & options = "") = 0; - - /** - * Get value of a parameter. - * @param paramName Name of the parameter. - * @return the value. - */ - virtual std::string parameterValue(const std::string & parameter) const = 0; - - virtual std::vector availableParameterOptions(const std::string & parameter) const = 0; - - virtual std::vector availableParameters() const = 0; - - /* - * GUI related methods : - */ - - /** - * Map the plotter on the screen. - */ - virtual bool show() = 0; - - /** - * Refresh the screen window(s). - * Used when a plotted data analysis object - * received new data. - */ - virtual bool refresh() = 0; - - /** - * Unmap the plotter on the screen. - */ - virtual bool hide() = 0; - - /** - * Give control to the plotter GUI. The plotter must be able - * to return from this function from a user action in its GUI. - */ - virtual bool interact() = 0; - - /* - * Other methods. - */ - - /** - * Produce an output file. - * @param type A string to describe the type of the output : - * "PS" or "PostScript" for PostScript, "JPEG" for JPEG. - * If nothing is given, the type is guessed - * from the given file name suffix (.ps for PostScript, - * .jpg for JPEG, etc...). - */ - virtual bool writeToFile(const std::string & filename, const std::string & type = "") = 0; - - /** - * Set the global title of the plotter (page). - */ - virtual void setTitle(const std::string & title) = 0; - - /** - * Get/set title style. - */ - virtual ITitleStyle & titleStyle() = 0; - - virtual void setTitleStyle(const ITitleStyle & style) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IPLOTTER_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotterFactory.h b/examples/extended/analysis/A01/include/AIDA/IPlotterFactory.h deleted file mode 100644 index 60306dfe74..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IPlotterFactory.h +++ /dev/null @@ -1,103 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IPLOTTERFACTORY_H -#define AIDA_IPLOTTERFACTORY_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class IAxisStyle; -class IDataStyle; -class IFillStyle; -class ILineStyle; -class IMarkerStyle; -class IPlotter; -class IPlotterStyle; -class ITextStyle; -class ITitleStyle; - -/** - * Factory for plotter and styles. - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class IPlotterFactory { - -public: - /// Destructor. - virtual ~IPlotterFactory() { /* nop */; } - - /** - * @param name A string identifier. - A plotter is in general managed by a GUI. - The "name" of the plotter could be used as - the string identifier for the GUI plotter widget. - If "" is passed, some default plotter is used. - */ - - virtual IPlotter * create(const std::string & name = "") = 0; - - /** - * Create various basic styles. - * The returned styles are not managed by the plotter. - * A user have to delete these objects. - */ - virtual IMarkerStyle * createMarkerStyle() = 0; - - virtual ITextStyle * createTextStyle() = 0; - - virtual ILineStyle * createLineStyle() = 0; - - virtual IFillStyle * createFillStyle() = 0; - - /** - * Create various "scene part" styles. - * The returned styles are not managed by the plotter. - */ - virtual IDataStyle * createDataStyle() = 0; - - virtual IAxisStyle * createAxisStyle() = 0; - - virtual ITitleStyle * createTitleStyle() = 0; - - /** - * Create a global plotter style. - * The returned style is not managed by the plotter. - */ - virtual IPlotterStyle * createPlotterStyle() = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IPLOTTERFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotterLayout.h b/examples/extended/analysis/A01/include/AIDA/IPlotterLayout.h deleted file mode 100644 index 7598e22022..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IPlotterLayout.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IPLOTTERLAYOUT_H -#define AIDA_IPLOTTERLAYOUT_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -/** - * Interface to permit customization of the layout - * of scene objects. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IPlotterLayout { - -public: - /// Destructor. - virtual ~IPlotterLayout() { /* nop */; } - - /** - * Return to original (construction time) state. Explicitly - * set parameters will be set to defaults and may be overridden - */ - virtual void reset() = 0; - - /** - * Set a parameter. - * @param paramName Name of the parameter. - * @param options String of options. - * @return false if parameter (or its options) unknown or invalid. - */ - virtual bool setParameter(const std::string & paramName, double paramValue) = 0; - - /** - * Get parameter value. - */ - virtual double parameterValue(const std::string & paramName) = 0; - - /** - * Get list of the available parameters (implementation-dependent) - */ - virtual std::vector availableParameters() const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IPLOTTERLAYOUT_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotterRegion.h b/examples/extended/analysis/A01/include/AIDA/IPlotterRegion.h deleted file mode 100644 index 907d7338ae..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IPlotterRegion.h +++ /dev/null @@ -1,187 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IPLOTTERREGION_H -#define AIDA_IPLOTTERREGION_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IBaseHistogram; -class IDataPointSet; -class IFunction; -class IInfo; -class IPlotterLayout; -class IPlotterStyle; - -/** - * User level interface to a plotter region. - * A region is managed by a plotter. - * A region must be seen as a scene manager handling - * a custome "plotting" scene. In general this kind of scene - * may be in 2D or 3D. In 2D, the scene have "coarse graining parts" - * like two axis, data representations within the axis. It may have - * various other parts like a grid, a title, an info area. In 3D, - * the scene have in general three axis, - * a different global layout, some data representations within the - * axis area and also scene parts like title, grid, etc... - * - * To customize all these, some "style" interfaces had been introduced. - * In general there is one style interface per "scene part" ; then - * IAxisStyle, IDataStyle, ITitleStyle, IInfoStyle. Oftenly - * a "scene part" contains text, line, fill area, etc.... For example - * an "axis" have a line, ticks, text for tick labels, text for - * the label of the axis, the magnitude, etc... A "coarse graining scene part" - * style contains various accessor to "atomic" styles like IMarkerStyle, - * ILineStyle, IFillStyle that permits to build a "customization block" - * to modify a scene part. - * - * A global style "block", the IPlotterStyle, could be retreived - * from a plotting region. This global style block have accessors - * to the various "coarse graining scene parts" of the plotting scene. - * Through it, we hope to offer a lot of customization in a convenient - * way... - * - * The keywords "scene" and "part" had been borrowed from the - * OpenInventor terminology. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IPlotterRegion { - -public: - /// Destructor. - virtual ~IPlotterRegion() { /* nop */; } - - /** - * Add a data analysis object (histogram, function, cloud,...) - * in the list of things to plot in the region. - * Activate the underlying graphic toolkit in order to bring - * something in the screen window(s) attached to the plotter. - * It assumes that the plotter had been mapped on the - * screen with its show method. - */ - virtual bool plot(const IBaseHistogram & histogram, const std::string & options = "") = 0; - - virtual bool plot(const IBaseHistogram & histogram, const IPlotterStyle & style, const std::string & options = "") = 0; - - virtual bool plot(const IFunction & function, const std::string & options = "") = 0; - - virtual bool plot(const IFunction & function, const IPlotterStyle & style, const std::string & options = "") = 0; - - virtual bool plot(const IDataPointSet & dataPointSet, const std::string & options = "") = 0; - - virtual bool plot(const IDataPointSet & dataPointSet, const IPlotterStyle & style, const std::string & options = "") = 0; - - /** - * Remove a data analysis object in the list of things to plot in the region. - * Activate the graphic layer to update the screen window. - */ - virtual bool remove(const IBaseHistogram & histogram) = 0; - - virtual bool remove(const IFunction & function) = 0; - - virtual bool remove(const IDataPointSet & dataPointSet) = 0; - - /** - * Clear the list of things to plot in the region. - * Clear the corresponding area on screen window(s). - */ - virtual void clear() = 0; - - /** - * Set various plotting paramters for the region. - * Activate the graphic layer and update the screen window(s) - * if needed. - */ - virtual bool setParameter(const std::string & parameter, const std::string & options = "") = 0; - - /** - * Get value of a parameter. - * @param paramName Name of the parameter. - * @return the value. - */ - virtual std::string parameterValue(const std::string & parameter) const = 0; - - virtual std::vector availableParameterOptions(const std::string & parameter) const = 0; - - virtual std::vector availableParameters() const = 0; - - /** - * Get the style of the region. - */ - virtual IPlotterStyle & style() = 0; - - /** - * Set the style of a region. - */ - virtual bool setStyle(const IPlotterStyle & style) = 0; - - /** - * Set the style of a region and apply it to scene objects. - */ - virtual bool applyStyle(const IPlotterStyle & style) = 0; - - /** - * Set the title of a region. - */ - virtual void setTitle(const std::string & title) = 0; - - /** - * Set limit of an axis representation the region area. - */ - virtual bool setXLimits(double min = 0, double max = 0) = 0; - - virtual bool setYLimits(double min = 0, double max = 0) = 0; - - virtual bool setZLimits(double min = 0, double max = 0) = 0; - - /** - * To customize axis position,etc... - * Change object position in the scence. - */ - virtual IPlotterLayout & layout() = 0; - - virtual bool setLayout(const IPlotterLayout & layout) = 0; - - /** - * Return an IInfo object describing the info area. - */ - virtual IInfo & info() = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IPLOTTERREGION_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IPlotterStyle.h b/examples/extended/analysis/A01/include/AIDA/IPlotterStyle.h deleted file mode 100644 index ef068f57f1..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IPlotterStyle.h +++ /dev/null @@ -1,93 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IPLOTTERSTYLE_H -#define AIDA_IPLOTTERSTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IBaseStyle.h" - -namespace AIDA { - -class IAxisStyle; -class IDataStyle; -class IInfoStyle; -class ITitleStyle; - -/** - * User level interface to plotter style. - * A plotter style permit to customize various part - * of the plotting "scene" (axes, titles, data - * representations, etc...) - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IPlotterStyle : virtual public IBaseStyle { - -public: - /// Destructor. - virtual ~IPlotterStyle() { /* nop */; } - - /** - * Get style of various plotting scene parts. - */ - virtual IDataStyle & dataStyle() = 0; - - virtual IAxisStyle & xAxisStyle() = 0; - - virtual IAxisStyle & yAxisStyle() = 0; - - virtual IAxisStyle & zAxisStyle() = 0; - - virtual ITitleStyle & titleStyle() = 0; - - virtual IInfoStyle & infoStyle() = 0; - - /** - * Set style of various plotting scene parts. - */ - virtual bool setDataStyle(const IDataStyle & dataStyle) = 0; - - virtual bool setAxisStyleX(const IAxisStyle & xAxisStyle) = 0; - - virtual bool setAxisStyleY(const IAxisStyle & yAxisStyle) = 0; - - virtual bool setAxisStyleZ(const IAxisStyle & zAxisStyle) = 0; - - virtual bool setTitleStyle(const ITitleStyle & textStyle) = 0; - - virtual bool setInfoStyle(const IInfoStyle & infoStyle) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IPLOTTERSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IProfile.h b/examples/extended/analysis/A01/include/AIDA/IProfile.h deleted file mode 100644 index 227f1f4b31..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IProfile.h +++ /dev/null @@ -1,105 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IPROFILE_H -#define AIDA_IPROFILE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IBaseHistogram.h" - -namespace AIDA { - -/** - * User level interface to a Profile histogram - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IProfile : virtual public IBaseHistogram { - -public: - /// Destructor. - virtual ~IProfile() { /* nop */; } - - /** - * Get the number or all the entries, both in range and - * underflow/overflow bins of the IProfile. - * @return The sum of all the entries. - * - */ - virtual int allEntries() const = 0; - - /** - * Get the number of entries in the underflow and overflow bins. - * @return The numer of entries in the out-of-range bins. - * - */ - virtual int extraEntries() const = 0; - - /** - * Get the sum of in range bin heights in the IProfile. - * @return The sum of all the in-range bins heights. - * - */ - virtual double sumBinHeights() const = 0; - - /** - * Get the sum of all the bins heights (including underflow and overflow bin). - * @return The sum of all the bins heights. - * - */ - virtual double sumAllBinHeights() const = 0; - - /** - * Get the sum of the underflow and overflow bin height. - * @return The sum of the out-of-range bins heights. - * - */ - virtual double sumExtraBinHeights() const = 0; - - /** - * Get the minimum height of the in-range bins. - * @return The minimum height among the in-range bins. - * - */ - virtual double minBinHeight() const = 0; - - /** - * Get the maximum height of the in-range bins. - * @return The maximum height among the in-range bins. - * - */ - virtual double maxBinHeight() const = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IPROFILE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IProfile1D.h b/examples/extended/analysis/A01/include/AIDA/IProfile1D.h deleted file mode 100644 index c1064ec22b..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IProfile1D.h +++ /dev/null @@ -1,125 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IPROFILE1D_H -#define AIDA_IPROFILE1D_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IProfile.h" - -namespace AIDA { - -class IAxis; - -/** - * User level interface to a 1-dimensional profile histogram - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IProfile1D : virtual public IProfile { - -public: - /// Destructor. - virtual ~IProfile1D() { /* nop */; } - - /** - * Fill the IProfile1D. - * - */ - virtual bool fill(double x, double y, double weight = 1) = 0; - - /** - * The weighted mean of the corresponding bin. - * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin along the x axis. - * - */ - virtual double binMean(int index) const = 0; - - /** - * Number of entries in the corresponding bin (ie the number of times fill was called for this bin). - * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. - */ - virtual int binEntries(int index) const = 0; - - /** - * Total height of the corresponding bin (ie the sum of the weights in this bin). - * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. - */ - virtual double binHeight(int index) const = 0; - - /** - * The error on this bin. - * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. - */ - virtual double binError(int index) const = 0; - - /** - * The spread (RMS) of a bin. - * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * - */ - virtual double binRms(int index) const = 0; - - /** - * Returns the mean of the whole profile as calculated on filling-time. - */ - virtual double mean() const = 0; - - /** - * Returns the rms of the whole profile as calculated on filling-time. - */ - virtual double rms() const = 0; - - /** - * Returns the X axis. - */ - virtual const IAxis & axis() const = 0; - - /** - * Convenience method, equivalent to axis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - */ - virtual int coordToIndex(double coord) const = 0; - - /** - * Modifies this IProfile1D by adding the contents of profile to it. - * - * @param profile The IProfile1D to be added to this IProfile1D - * @return false if profile binnings are incompatible - */ - virtual bool add(const IProfile1D & profile) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IPROFILE1D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IProfile2D.h b/examples/extended/analysis/A01/include/AIDA/IProfile2D.h deleted file mode 100644 index 38a73a2f35..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IProfile2D.h +++ /dev/null @@ -1,196 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IPROFILE2D_H -#define AIDA_IPROFILE2D_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IProfile.h" - -namespace AIDA { - -class IAxis; - -/** - * User level interface to a 2-dimensional profile histogram - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IProfile2D : virtual public IProfile { - -public: - /// Destructor. - virtual ~IProfile2D() { /* nop */; } - - /** - * Fill the IProfile2D. - * - */ - virtual bool fill(double x, double y, double z, double weight = 1) = 0; - - /** - * The weighted mean along x of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin along the x axis. - * - */ - virtual double binMeanX(int indexX, int indexY) const = 0; - - /** - * The weighted mean along y of a given bin. - * @param indexX The x bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @param indexY The y bin number (0...N-1) or OVERFLOW or UNDERFLOW. - * @return The mean of the corresponding bin along the x axis. - * - */ - virtual double binMeanY(int indexX, int indexY) const = 0; - - /** - * The number of entries (ie the number of times fill was called for this bin). - * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. - * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. - * - */ - virtual int binEntries(int indexX, int indexY) const = 0; - - /** - * Equivalent to projectionX().binEntries(indexX). - * - */ - virtual int binEntriesX(int indexX) const = 0; - - /** - * Equivalent to projectionY().binEntries(indexY). - * - */ - virtual int binEntriesY(int indexY) const = 0; - - /** - * Total height of the corresponding bin (ie the sum of the weights in this bin). - * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. - * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. - * - */ - virtual double binHeight(int indexX, int indexY) const = 0; - - /** - * Equivalent to projectionX().binHeight(indexX). - * - */ - virtual double binHeightX(int indexX) const = 0; - - /** - * Equivalent to projectionY().binHeight(indexY). - * - */ - virtual double binHeightY(int indexY) const = 0; - - /** - * The error on this bin. - * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. - * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. - * - */ - virtual double binError(int indexX, int indexY) const = 0; - - /** - * The spread (RMS) of this bin. - * @param indexX the x bin number (0...Nx-1) or OVERFLOW or UNDERFLOW. - * @param indexY the y bin number (0...Ny-1) or OVERFLOW or UNDERFLOW. - * - */ - virtual double binRms(int indexX, int indexY) const = 0; - - /** - * Returns the mean of the profile, as calculated on filling-time projected on the X axis. - * - */ - virtual double meanX() const = 0; - - /** - * Returns the mean of the profile, as calculated on filling-time projected on the Y axis. - * - */ - virtual double meanY() const = 0; - - /** - * Returns the rms of the profile as calculated on filling-time projected on the X axis. - * - */ - virtual double rmsX() const = 0; - - /** - * Returns the rms of the profile as calculated on filling-time projected on the Y axis. - * - */ - virtual double rmsY() const = 0; - - /** - * Return the X axis. - * - */ - virtual const IAxis & xAxis() const = 0; - - /** - * Return the Y axis. - * - */ - virtual const IAxis & yAxis() const = 0; - - /** - * Convenience method, equivalent to xAxis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - * - */ - virtual int coordToIndexX(double coordX) const = 0; - - /** - * Convenience method, equivalent to yAxis().coordToIndex(coord). - * @see IAxis#coordToIndex(double) - * - */ - virtual int coordToIndexY(double coordY) const = 0; - - /** - * Modifies this profile by adding the contents of profile to it. - * - * @param profile The IProfile2D to be added to this IProfile2D - * @return false if the profile binnings are incompatible - * - */ - virtual bool add(const IProfile2D & h) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IPROFILE2D_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/IRangeSet.h b/examples/extended/analysis/A01/include/AIDA/IRangeSet.h deleted file mode 100644 index e3dd876b78..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/IRangeSet.h +++ /dev/null @@ -1,131 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_IRANGESET_H -#define AIDA_IRANGESET_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -/** - * User level interface to RangeSet. - * - * - * Proposed rules for ranges: - * - * - By default (no arguments) RangeSet object is created with - * one valid range: (-infinity, +infinity). - * - * - size=0 means no valid ranges (isInRange(double point) will - * return false for any point). It also can be used to check if - * any range is set - RangeSet include valid interval only - * if size!=0. - * - * - RangeSet can be smart, e.g merge overlapping valid ranges. - * So size() does not always equal to the number of times - * user call include method. - * - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class IRangeSet { - -public: - /// Destructor. - virtual ~IRangeSet() { /* nop */; } - - /** - * Return array of lower Bounds for the current set of ranges - * @return Array of lower bounds for all valid ranges - */ - virtual const std::vector & lowerBounds() = 0; - - /** - * Return array of upper Bounds for the current set of ranges - * @return Array of upper bounds for all valid ranges - */ - virtual const std::vector & upperBounds() = 0; - - /** - * Add [xMin, xMax] interval to existing set of valid ranges - * @param xMin - lower bound of a new valid range - * @param xMax - upper bound of a new valid range - */ - virtual void include(double xMin, double xMax) = 0; - - /** - * Exclude [xMin, xMax] interval from the existing set of valid ranges - * @param xMin - lower bound of range to be excluded - * @param xMax - upper bound of range to be excluded - */ - virtual void exclude(double xMin, double xMax) = 0; - - /** - * Set full range (from MINUS_INF to PLUS_INF ). - */ - virtual void includeAll() = 0; - - /** - * Set empty range. - */ - virtual void excludeAll() = 0; - - /* - * @return Return true if the point is in range - */ - virtual bool isInRange(double point) = 0; - - /** - * Return current number of disjoint ranges (non-overlapping intervals). - * Note: it is not always equal to the number of times user set the range - * @return Number of disjoint ranges - */ - virtual int size() = 0; - - /* - * Define +infinity according to specific implementation - * @return Numeric definition for +infinity - */ - virtual double PLUS_INF() = 0; - - /* - * Define -infinity according to specific implementation - * @return Numeric definition for -infinity - */ - virtual double MINUS_INF() = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_IRANGESET_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITextStyle.h b/examples/extended/analysis/A01/include/AIDA/ITextStyle.h deleted file mode 100644 index 874b7a4c52..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ITextStyle.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ITEXTSTYLE_H -#define AIDA_ITEXTSTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -#include "AIDA/IBrushStyle.h" - -namespace AIDA { - -/** - * Style for all text (e.g. axis labels, legend box text etc.) - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class ITextStyle : virtual public IBrushStyle { - -public: - /// Destructor. - virtual ~ITextStyle() { /* nop */; } - - /** - * Get list of fonts available in this implementation. - */ - virtual std::vector availableFonts() const = 0; - - /** - * Get current font size. - */ - virtual double fontSize() const = 0; - - /** - * Set current font size. - * @return false if size not supported by this implementation. - */ - virtual bool setFontSize(double size) = 0; - - /** - * Get name of current font. - */ - virtual std::string font() const = 0; - - /** - * Set current font, e.g. "timesNewRoman" or "courier". - * @return false if font not supported by this implementation. - */ - virtual bool setFont(const std::string & font) = 0; - - virtual bool isBold() const = 0; - - virtual bool isItalic() const = 0; - - virtual bool isUnderlined() const = 0; - - virtual bool setBold(bool bold = true) = 0; - - virtual bool setItalic(bool italic = true) = 0; - - virtual bool setUnderlined(bool underlined = true) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ITEXTSTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITitleStyle.h b/examples/extended/analysis/A01/include/AIDA/ITitleStyle.h deleted file mode 100644 index 5d39ec61c4..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ITitleStyle.h +++ /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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ITITLESTYLE_H -#define AIDA_ITITLESTYLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include "AIDA/IBaseStyle.h" - -namespace AIDA { - -class ITextStyle; - -/** - * Style for the "title scene part" of a plotting region or - * for the global title of a plotting page. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class ITitleStyle : virtual public IBaseStyle { - -public: - /// Destructor. - virtual ~ITitleStyle() { /* nop */; } - - virtual ITextStyle & textStyle() = 0; - - virtual bool setTextStyle(const ITextStyle & textStyle) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ITITLESTYLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITree.h b/examples/extended/analysis/A01/include/AIDA/ITree.h deleted file mode 100644 index 019792f463..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ITree.h +++ /dev/null @@ -1,259 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ITREE_H -#define AIDA_ITREE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include -#include - -namespace AIDA { - -class IManagedObject; - -/** - * User level interface to a Tree. - * - * All paths follow unix convention .., ., /, - * backslash is the escape character. - * Relative paths are allowed. - * - * NOTE: - this tree keeps a current position(pwd) within the tree. - * This may be implemented on a per-thread basis. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class ITree { - -public: - /// Destructor. - virtual ~ITree() { /* nop */; } - - /** - * Get the name of the store. - * @return The store's name. - * - */ - virtual const std::string & storeName() const = 0; - - /** - * Get the IManagedObject at a given path in the ITree. The path can either be - * absolute or relative to the current working directory. - * @param path The path. - * @return The corresponding IManagedObject. - * - */ - virtual IManagedObject * find(const std::string & path) = 0; - - /** - * Change to a given directory. - * @param path The absolute or relative path of the directory we are changing to. - * @return false If the path does not exist. - * - */ - virtual bool cd(const std::string & path) = 0; - - /** - * Get the path of the current working directory. - * @return The path of the current working directory. - * - */ - virtual const std::string & pwd() const = 0; - - /** - * List, into a given output stream, all the IManagedObjects, including directories - * (but not "." and ".."), in a given path. Directories end with "/". The list can be recursive. - * @param path The path where the list has to be performed (by default the current directory "."). - * @param recursive If true the list is extended recursively - * in all the directories under path (the default is false. - * @param os The output stream into which the list is dumped (by default the standard output). - * @return false If the path does not exist. - * - */ - virtual bool ls(const std::string & path = ".", bool recursive = false, std::ostream & os = std::cout) const = 0; - - /** - * Get the list of names of the IManagedObjects under a given path, including directories - * (but not "." and ".."). Directories end with "/". - * The returned names are appended to the given path unless the latter is ".". - * @param path The path where the list has to be performed (by default the current directory "."). - * @param recursive If true the list is extended recursively - * in all the directories under path (the default is false. - * - */ - virtual std::vector listObjectNames(const std::string & path = ".", bool recursive = false) const = 0; - - /** - * Get the list of types of the IManagedObjects under a given path. - * The types are the leaf class of the Interface, e.g. "IHistogram1D", "ITuple", etc. - * Directories are marked with "dir". - * The order of the types is the same as the order for the listObjectNames() method - * to achieve a one-to-one correspondance between object names and types. - * @param path The path where the list has to be performed (by default the current directory "."). - * @param recursive If true the list is extended recursively - * in all the directories under path (the default is false. - * - */ - virtual std::vector listObjectTypes(const std::string & path = ".", bool recursive = false) const = 0; - - /** - * Create a new directory. Given a path only the last directory - * in it is created if all the intermediate subdirectories already exist. - * @param path The absolute or relative path of the new directory. - * @return false If a subdirectory within the path does - * not exist or it is not a directory. Also if the directory already exists. - * - */ - virtual bool mkdir(const std::string & path) = 0; - - /** - * Create a directory recursively. Given a path the last directory - * and all the intermediate non-existing subdirectories are created. - * @param path The absolute or relative path of the new directory. - * @return false If an intermediate subdirectory - * is not a directory, or if the directory already exists. - * - */ - virtual bool mkdirs(const std::string & path) = 0; - - /** - * Remove a directory and all the contents underneeth. - * @param path The absolute or relative path of the directory to be removed. - * @return false If path does not exist or if it is not - * a directory. - * - */ - virtual bool rmdir(const std::string & path) = 0; - - /** - * Remove an IManagedObject by specifying its path. - * If the path points to a mount point, the mount point should first commit, then - * close and delete the tree object. - * @param path The absolute or relative path of the IManagedObject to be removed. - * @return false If path does not exist. - * - */ - virtual bool rm(const std::string & path) = 0; - - /** - * Get the full path of an IManagedObject. - * @param object The IManagedObject whose path is to be returned. - * @return The object's absolute path. - * In C++ if the object does not exist, an empty string is returned. - * - */ - virtual std::string findPath(const IManagedObject & object) const = 0; - - /** - * Move an IManagedObject or a directory from one directory to another. - * @param oldPath The path of the IManagedObject or direcoty to be moved. - * @param newPath The path of the diretory in which the object has to be moved to. - * @return false If either path does not exist. - * - */ - virtual bool mv(const std::string & oldPath, const std::string & newPath) = 0; - - /** - * Commit any open transaction to the underlying store(s). - * It flushes objects into the disk for non-memory-mapped stores. - * @return false If the underlying store cannot be written out. - * - */ - virtual bool commit() = 0; - - /** - * Set the strategy of what should happen if two objects have the same path. - * Default is overwrite. - * @param overwrite true to enable overwriting. - * - */ - virtual void setOverwrite(bool overwrite = true) = 0; - - /** - * Copy an object from a path to another. - * @param oldPath The path of the object to be copied. - * @param newPath The path where the object is to be copied. - * @param recursive true if a recursive copy has to be performed. - * @return false If either path does not exist. - * - */ - virtual bool cp(const std::string & oldPath, const std::string & newPath, bool recursive = false) = 0; - - /** - * Create a symbolic link to an object in the ITree. - * @param path The absolute or relative path of the object to be linked. - * @param alias The absolute or relative name of the link. - * @return false If path or any - * subidrectory within path does not exist. - * - */ - virtual bool symlink(const std::string & path, const std::string & alias) = 0; - - /** - * Mounts a tree within another (target) tree. A tree can only be mounted once. - * Example: - *
-   *     target.mount("/home/tonyj",tree,"/");
-   * 
- * @param path The path in the target tree - * @param tree The tree to mount within the target tree - * @param treePath The mount point within the tree to be mounted. - * @return false If something does not exist. - * - */ - virtual bool mount(const std::string & path, ITree & tree, const std::string & treePath) = 0; - - /** - * Unmount a subtree at a given path (mount point). - * Whenever a tree is destroyed it first unmounts all dependent trees. - * @param path The path of the subtree to be unmounted. - * @return false If path does not exist. - * - */ - virtual bool unmount(const std::string & path) = 0; - - /** - * Closes the underlying store. - * Changes will be saved only if commit() has been called before. - * The call is propagated to the dependent mounted trees. - * @return false If there are problems writing out - * the underlying store. - * - */ - virtual bool close() = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ITREE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITreeFactory.h b/examples/extended/analysis/A01/include/AIDA/ITreeFactory.h deleted file mode 100644 index 2874861f8a..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ITreeFactory.h +++ /dev/null @@ -1,75 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ITREEFACTORY_H -#define AIDA_ITREEFACTORY_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include - -namespace AIDA { - -class ITree; - -/** - * The creator of trees. - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class ITreeFactory { - -public: - /// Destructor. - virtual ~ITreeFactory() { /* nop */; } - - /** - * Creates a new tree that is not associated with a store. - */ - virtual ITree * create() = 0; - - /** - * Creates a new tree and associates it with a store. - * The store is assumed to be read/write. - * The store will be created if it does not exist. - * @param storeName The name of the store, if empty (""), the tree is created - * in memory and therefore will not be associated with a file. - * @param storeType Implementation specific string, may control store type - * @param readOnly If true the store is opened readonly, an exception if it does not exist - * @param createNew If false the file must exist, if true the file will be created - * @param options Other options, currently are not specified - * - */ - virtual ITree * create(const std::string & storeName, const std::string & storeType = "", bool readOnly = false, bool createNew = false, const std::string & options = "") = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ITREEFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITuple.h b/examples/extended/analysis/A01/include/AIDA/ITuple.h deleted file mode 100644 index 528a528873..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ITuple.h +++ /dev/null @@ -1,906 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ITUPLE_H -#define AIDA_ITUPLE_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IAnnotation; -class ICloud1D; -class ICloud2D; -class ICloud3D; -class IEvaluator; -class IFilter; -class IHistogram1D; -class IHistogram2D; -class IHistogram3D; -class IProfile1D; -class IProfile2D; -class ITupleEntry; - -/** - * User level interface to a Tuple. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class ITuple { - -public: - /// Destructor. - virtual ~ITuple() { /* nop */; } - - /** - * Get the title of this ITuple. - * @return The ITuple's title. - * - */ - virtual const std::string & title() const = 0; - - /** - * Set the title of the ITuple. - * @param title The new ITuple's title. - * @return false If title cannot be changed. - * - */ - virtual bool setTitle(const std::string & title) = 0; - - /** - * Get the IAnnotation corresponding to this ITuple. - * @return The ITuple's IAnnotation. - * - */ - virtual IAnnotation & annotation() = 0; - - virtual const IAnnotation & annotation() const = 0; - - /** - * Fill a given column with a double. - * @param column The column's index within the ITuple. - * @param value The double. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, double value) = 0; - - /** - * Fill a given column with a float. - * @param column The column's index within the ITuple. - * @param value The float. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, float value) = 0; - - /** - * Fill a given column with an integer. - * @param column The column's index within the ITuple. - * @param value The integer. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, int value) = 0; - - /** - * Fill a given column with a short. - * @param column The column's index within the ITuple. - * @param value The short. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, short value) = 0; - - /** - * Fill a given column with a long. - * @param column The column's index within the ITuple. - * @param value The long. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, long value) = 0; - - /** - * Fill a given column with a char. - * @param column The column's index within the ITuple. - * @param value The char. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, char value) = 0; - - /** - * Fill a given column with a boolean. - * @param column The column's index within the ITuple. - * @param value The boolean. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, bool value) = 0; - - /** - * Fill a given column with a string. - * @param column The column's index within the ITuple. - * @param value The string. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, const std::string & value) = 0; - - /** - * Fill a given column with an object. - * @param column The column's index within the ITuple. - * @param value The object. - * @return false If the column is of the wrong type. - * - */ - virtual bool fill(int column, const ITupleEntry & value) = 0; - - /** - * Fill all the columns at once with doubles. - * @param values The array of doubles. - * @return false If any column is not of type double or if - * the array has the wrong dimension. - * - */ - virtual bool fill(const std::vector & values) = 0; - - /** - * Fill all the columns at once with floats. - * @param values The array of floats. - * @return false If any column is not of type float or if - * the array has the wrong dimension. - * - */ - virtual bool fill(const std::vector & values) = 0; - - /** - * Add the current row to the ITuple. This method should be called after - * fill has been called for the columns; unfilled columns will be filled - * with their default value. - * @return false When the ITuple runs out of storage space. - * - */ - virtual bool addRow() = 0; - - /** - * Clear the current(not yet added) row. - * - */ - virtual void resetRow() = 0; - - /** - * Reset the ITuple. All the rows are reset. - * The ITuple is as just created. - * - */ - virtual void reset() = 0; - - /** - * Get the number of rows currently filled in the ITuple. - * @return The number of rows. -1 if empty or if it cannot be determined. - * - */ - virtual int rows() const = 0; - - /** - * Positions the read cursor immediately before the first row. - * - */ - virtual void start() = 0; - - /** - * Skips a given number of rows. - * @param rows The number of rows to skip. - * @return false If rows is less than zero or - * if it is not possible to perform the jump. - * - */ - virtual bool skip(int rows) = 0; - - /** - * Positions the cursor at the next row. - * @return false if there is no next row. - * - */ - virtual bool next() = 0; - - /** - * Position the cursor at a give row. - * @param rowIndex The row where the cursor has to be positioned. - * @return false If the cursor cannot be positioned - * at the give row. - * - */ - virtual bool setRow(int rowIndex) = 0; - - /** - * Get the index within the ITuple of a given column. - * @param name The colum's name. - * @return The corresponding column's index. Note: in C++ -1 may - * be returned if the column does not exist. - */ - virtual int findColumn(const std::string & name) const = 0; - - /** - * Get the double stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The double. - * - */ - virtual double getDouble(int column) const = 0; - - /** - * Get the float stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The float. - * - */ - virtual float getFloat(int column) const = 0; - - /** - * Get the integer stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The integer. - * - */ - virtual int getInt(int column) const = 0; - - /** - * Get the short stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The short. - * - */ - virtual short getShort(int column) const = 0; - - /** - * Get the long stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The long. - * - */ - virtual long getLong(int column) const = 0; - - /** - * Get the character stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The character. - * - */ - virtual char getChar(int column) const = 0; - - /** - * Get the boolean stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The boolean. - * - */ - virtual bool getBoolean(int column) const = 0; - - /** - * Get the string stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The string. - * - */ - virtual const std::string & getString(int column) const = 0; - - /** - * Get the object stored in a given column at the current cursor's position. - * @param column The column's index within the ITuple. - * @return The object. - * - */ - virtual const ITupleEntry * getObject(int column) const = 0; - - /** - * Return method for tuple variables of type ITuple for a given column. - * This method can be used in order to fill a tuple variable in the master tuple. - * @param column The column's index. - * @return The ITuple representing the structure of this column. - * - */ - virtual const ITuple * getTuple(int column) const = 0; - - virtual ITuple * getTuple(int column) = 0; - - /** - * Get the number of columns in the ITuple - * @return The number of columns. - * - */ - virtual int columns() const = 0; - - /** - * Get the name of a column from its index. - * @param column The column's index. - * @return The column's name. - * - */ - virtual const std::string & columnName(int column) const = 0; - - /** - * Get the type of a give column. - * @param column The column's type. - * @return The column's Class. - * - */ - virtual const std::string & columnType(int column) const = 0; - - /** - * Get the minimum value of a given column (if it can be converted to a double). - * @param column The column's index. - * @return The column's minimum value. In Java Double.NaN might be returned. - * - */ - virtual double columnMin(int column) const = 0; - - /** - * Get the maximum value of a given column (if it can be converted to a double). - * @param column The column's index. - * @return The column's maximum value. In Java Double.NaN might be returned. - * - */ - virtual double columnMax(int column) const = 0; - - /** - * Get the mean value of a given column (if it can be converted to a double). - * @param column The column's index. - * @return The column's mean value. In Java Double.NaN might be returned. - * - */ - virtual double columnMean(int column) const = 0; - - /** - * Get the RMS of a given column (if it can be converted to a double). - * @param column The column's index. - * @return The column's RMS. In Java Double.NaN might be returned. - * - */ - virtual double columnRms(int column) const = 0; - - /** - * Fill an IHistogram1D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram. The value is computed - * from the current row of the tuple. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX) = 0; - - /** - * Fill an IHistogram1D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram. The value is computed - * from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the histogram is not filled. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IFilter & filter) = 0; - - /** - * Fill an IHistogram1D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram. The value is computed - * from the current row of the tuple. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IEvaluator & weight) = 0; - - /** - * Fill an IHistogram1D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram. The value is computed - * from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the histogram is not filled. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram1D & histogram, IEvaluator & evaluatorX, IFilter & filter, IEvaluator & weight) = 0; - - /** - * Fill an IHistogram2D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the histogram along the y axis. - * The value is computed from the current row of the tuple. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0; - - /** - * Fill an IHistogram2D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the histogram along the y axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the histogram is not filled. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0; - - /** - * Fill an IHistogram2D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the histogram along the y axis. - * The value is computed from the current row of the tuple. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0; - - /** - * Fill an IHistogram2D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the histogram along the y axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the histogram is not filled. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram2D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0; - - /** - * Fill an IHistogram3D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the histogram along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the histogram along the z axis. - * The value is computed from the current row of the tuple. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0; - - /** - * Fill an IHistogram3D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the histogram along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the histogram along the z axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the histogram is not filled. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0; - - /** - * Fill an IHistogram3D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the histogram along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the histogram along the z axis. - * The value is computed from the current row of the tuple. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0; - - /** - * Fill an IHistogram3D from the tuple. - * @param histogram The histogram to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the histogram along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the histogram along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the histogram along the z axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the histogram is not filled. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IHistogram3D & histogram, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0; - - /** - * Fill an ICloud1D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud. The value is computed - * from the current row of the tuple. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX) = 0; - - /** - * Fill an ICloud1D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud. The value is computed - * from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the cloud is not filled. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IFilter & filter) = 0; - - /** - * Fill an ICloud1D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud. The value is computed - * from the current row of the tuple. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IEvaluator & weight) = 0; - - /** - * Fill an ICloud1D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud. The value is computed - * from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the cloud is not filled. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud1D & cloud, IEvaluator & evaluatorX, IFilter & filter, IEvaluator & weight) = 0; - - /** - * Fill an ICloud2D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the cloud along the y axis. - * The value is computed from the current row of the tuple. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0; - - /** - * Fill an ICloud2D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the cloud along the y axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the cloud is not filled. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0; - - /** - * Fill an ICloud2D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the cloud along the y axis. - * The value is computed from the current row of the tuple. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0; - - /** - * Fill an ICloud2D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the cloud along the y axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the cloud is not filled. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud2D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0; - - /** - * Fill an ICloud3D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the cloud along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the cloud along the z axis. - * The value is computed from the current row of the tuple. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0; - - /** - * Fill an ICloud3D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the cloud along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the cloud along the z axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the cloud is not filled. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0; - - /** - * Fill an ICloud3D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the cloud along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the cloud along the z axis. - * The value is computed from the current row of the tuple. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0; - - /** - * Fill an ICloud3D from the tuple. - * @param cloud The cloud to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the cloud along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the cloud along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the cloud along the z axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the cloud is not filled. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(ICloud3D & cloud, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0; - - /** - * Fill an IProfile1D from the tuple. - * @param profile The profile to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the profile along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the profile along the y axis. - * The value is computed from the current row of the tuple. - * @return false If something goes wrong. - * - */ - virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY) = 0; - - /** - * Fill an IProfile1D from the tuple. - * @param profile The profile to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the profile along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the profile along the y axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the profile is not filled. - * @return false If something goes wrong. - * - */ - virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter) = 0; - - /** - * Fill an IProfile1D from the tuple. - * @param profile The profile to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the profile along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the profile along the y axis. - * The value is computed from the current row of the tuple. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & weight) = 0; - - /** - * Fill an IProfile1D from the tuple. - * @param profile The profile to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the profile along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the profile along the y axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the profile is not filled. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IProfile1D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IFilter & filter, IEvaluator & weight) = 0; - - /** - * Fill an IProfile2D from the tuple. - * @param profile The profile to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the profile along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the profile along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the profile along the z axis. - * The value is computed from the current row of the tuple. - * @return false If something goes wrong. - * - */ - virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ) = 0; - - /** - * Fill an IProfile2D from the tuple. - * @param profile The profile to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the profile along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the profile along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the profile along the z axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the profile is not filled. - * @return false If something goes wrong. - * - */ - virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter) = 0; - - /** - * Fill an IProfile2D from the tuple. - * @param profile The profile to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the profile along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the profile along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the profile along the z axis. - * The value is computed from the current row of the tuple. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IEvaluator & weight) = 0; - - /** - * Fill an IProfile2D from the tuple. - * @param profile The profile to fill. - * @param evaluatorX The evaluator used to compute the value - * to be filled in the profile along the x axis. - * The value is computed from the current row of the tuple. - * @param evaluatorY The evaluator used to compute the value - * to be filled in the profile along the y axis. - * The value is computed from the current row of the tuple. - * @param evaluatorZ The evaluator used to compute the value - * to be filled in the profile along the z axis. - * The value is computed from the current row of the tuple. - * @param filter The filter object used to accept or not the current row. - * If rejected, the profile is not filled. - * @param weight The evaluator which determines the weight which is used during the filling. - * @return false If something goes wrong. - * - */ - virtual bool project(IProfile2D & profile, IEvaluator & evaluatorX, IEvaluator & evaluatorY, IEvaluator & evaluatorZ, IFilter & filter, IEvaluator & weight) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ITUPLE_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/ITupleFactory.h b/examples/extended/analysis/A01/include/AIDA/ITupleFactory.h deleted file mode 100644 index c27dc9f7a8..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/ITupleFactory.h +++ /dev/null @@ -1,148 +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. * -// ******************************************************************** -// -// -*- C++ -*- -// AID-GENERATED -// ========================================================================= -// This class was generated by AID - Abstract Interface Definition -// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. -// ========================================================================= -#ifndef AIDA_ITUPLEFACTORY_H -#define AIDA_ITUPLEFACTORY_H 1 - -// This file is part of the AIDA library -// Copyright (C) 2002 by the AIDA team. All rights reserved. -// This library is free software and under the terms of the -// GNU Library General Public License described in the LGPL.txt - -#include -#include - -namespace AIDA { - -class IEvaluator; -class IFilter; -class ITuple; - -/** - * A factory for creating ITuples. - * - * @author The AIDA team (http://aida.freehep.org/) - */ - -class ITupleFactory { - -public: - /// Destructor. - virtual ~ITupleFactory() { /* nop */; } - - /** - * Creates an NTuple - * @param name The persistency name of the n-tuple - * @param title The title of the n-tuple - * @param columnNames The names of the columns - * @param columnType The types of the columns - * @param options NTuple options (currently undefined) - * - */ - virtual ITuple * create(const std::string & name, const std::string & title, const std::vector & columnNames, const std::vector & columnType, const std::string & options = "") = 0; - - /** - * Creates an NTuple - * @param name The persistency name of the n-tuple - * @param title The title of the n-tuple - * @param columns The names and types of the columns e.g. "float px, py, pz, float energy, int charge" - * @param options NTuple options (currently undefined) - * - */ - virtual ITuple * create(const std::string & name, const std::string & title, const std::string & columns, const std::string & options = "") = 0; - - /** - * Creates a logical chain of ITuples. All ITuples in the set must - * have the same structure. Chained ITuple can not be filled. - * Original n-tuple data is not copied. - * @param name The persistency name of the new n-tuple - * @param title The title of the new n-tuple - * @param set The array of ITuples to chain - * - */ - virtual ITuple * createChained(const std::string & name, const std::string & title, const std::vector & set) = 0; - - /** - * Creates a logical chain of ITuples. All ITuples in the set must - * have the same structure. Chained ITuple can not be filled. - * Original n-tuple data is not copied. - * @param name The persistency name of the new n-tuple - * @param title The title of the new n-tuple - * @param set The array of the names of the ITuples to chain - * - */ - virtual ITuple * createChained(const std::string & name, const std::string & title, const std::vector & set) = 0; - - /** - * Creates a new reduced tuple (less rows) from an existing one - * by applying a filter. Data is explicitly copied to a new n-tuple. - * @param name The persistency name of the new n-tuple - * @param tuple Original n-tuple - * @param filter IFilter to be used - * - */ - virtual ITuple * createFiltered(const std::string & name, ITuple & tuple, IFilter & filter) = 0; - - /** - * Creates a new reduced tuple (less rows) from an existing one - * by applying a filter. Only subset of the variables (columns) is copied. - * Data is explicitly copied to a new n-tuple. - * @param name The persistency name of the new n-tuple - * @param tuple Original n-tuple - * @param filter IFilter to be used - * @param columns Names of columns to for a new n-tuple - * - */ - virtual ITuple * createFiltered(const std::string & name, ITuple & tuple, IFilter & filter, const std::vector & columns) = 0; - - /** - * Creates IFilter object given a string defining of the "cut" expression. - * @param expression String defining of the "cut" expression. - * - */ - virtual IFilter * createFilter(const std::string & expression) = 0; - - /** - * Creates a filter object given a string defining the "cut" expression. - * Filter processes only subset of data. - * @param expression String defining of the "cut" expression. - * @param rowsToProcess How many rows to process - * @param startingRow Row number where to start - * - */ - virtual IFilter * createFilter(const std::string & expression, int rowsToProcess, int startingRow = 0) = 0; - - /** - * Create IEvaluator object given its expression. - * @param expression String defining of the evaluator expression. - * - */ - virtual IEvaluator * createEvaluator(const std::string & expression) = 0; -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ITUPLEFACTORY_H */ diff --git a/examples/extended/analysis/A01/include/AIDA/readme.txt b/examples/extended/analysis/A01/include/AIDA/readme.txt deleted file mode 100644 index 9e7014f0ef..0000000000 --- a/examples/extended/analysis/A01/include/AIDA/readme.txt +++ /dev/null @@ -1,9 +0,0 @@ -These are a copy of the official AIDA header files taken from: - -CVSROOT :pserver:anoncvs@cvs.freehep.org:/cvs/aida -MODULE aida -DIRECTORY cpp/AIDA -Version : 3.0 - -added ITupleEntry dummy class. - diff --git a/examples/extended/analysis/A01/setup-analysis.csh b/examples/extended/analysis/A01/setup-analysis.csh index b5b857daba..c5c1b1cd87 100644 --- a/examples/extended/analysis/A01/setup-analysis.csh +++ b/examples/extended/analysis/A01/setup-analysis.csh @@ -2,75 +2,4 @@ # Setup for Unix (Linux, Solaris, MacOS X) # -# -# Change this to point to your Java installation -# -#setenv JDK_HOME "/usr/java/jdk1.4.1" -# -# -# No User Configuration below. -# -if (! $?JDK_HOME) then - setenv JDK_HOME /usr/java/jdk1.4.1 -endif -if (! -e $JDK_HOME/bin/java) then - echo "You need to install Java and/or modify script to set JDK_HOME correctly" - goto end -endif - -if (! $?GEANT4_HOME ) then -if (! $?G4INSTALL ) then - setenv GEANT4_HOME "../../../.." -else - setenv GEANT4_HOME $G4INSTALL -endif -endif -setenv JLIBPATH "$GEANT4_HOME/extlib/java" -if (! -e $JLIBPATH/aida.jar) then - echo "The AIDA.jar files seem to be missing, make sure JAIDA-Geant4 patch has been applied" - echo "and that GEANT4_HOME is set correctly" - goto end -endif - setenv G4ANALYSIS_USE 1 -setenv G4ANALYSIS_AIDA_CONFIG_LIBS "-L$GEANT4_HOME/extlib/$G4SYSTEM -lAIDAJNI -lFHJNI" -touch src/DummyAnalysisFactory.cc - -setenv JVM_ARGS "-Dhep.aida.IAnalysisFactory=jas.aida.gui.JASGUIAnalysisFactory" -switch ($G4SYSTEM) - case "Linux*": - setenv LD_LIBRARY_PATH $JDK_HOME/jre/lib/i386:${LD_LIBRARY_PATH} - setenv LD_LIBRARY_PATH $JDK_HOME/jre/lib/i386/client:${LD_LIBRARY_PATH} - setenv LD_LIBRARY_PATH ${GEANT4_HOME}/extlib/${G4SYSTEM}:${LD_LIBRARY_PATH} - setenv G4ANALYSIS_AIDA_CONFIG_LIBS "$G4ANALYSIS_AIDA_CONFIG_LIBS -L$JDK_HOME/jre/lib/i386/client -ljvm" - breaksw - case "SUN*": - setenv LD_LIBRARY_PATH $JDK_HOME/jre/lib/sparc:${LD_LIBRARY_PATH} - setenv LD_LIBRARY_PATH $JDK_HOME/jre/lib/sparc/client:${LD_LIBRARY_PATH} - setenv LD_LIBRARY_PATH ${GEANT4_HOME}/extlib/${G4SYSTEM}:${LD_LIBRARY_PATH} - setenv G4ANALYSIS_AIDA_CONFIG_LIBS "$G4ANALYSIS_AIDA_CONFIG_LIBS -L$JDK_HOME/jre/lib/sparc -ljvm" - breaksw - case "Darwin*": - setenv G4ANALYSIS_AIDA_CONFIG_LIBS "$G4ANALYSIS_AIDA_CONFIG_LIBS -framework JavaVM" - breaksw - default: - breaksw -endsw - -setenv CLASSPATH "$JLIBPATH/JASAIDA.jar" -setenv CLASSPATH "${CLASSPATH}:$JLIBPATH/aida.jar" -setenv CLASSPATH "${CLASSPATH}:$JLIBPATH/aida-dev.jar" -setenv CLASSPATH "${CLASSPATH}:$JLIBPATH/freehep-hep.jar" -setenv CLASSPATH "${CLASSPATH}:$JLIBPATH/freehep-base.jar" -setenv CLASSPATH "${CLASSPATH}:$JLIBPATH/openide-lookup.jar" -setenv CLASSPATH "${CLASSPATH}:$JLIBPATH/jas.jar" -setenv CLASSPATH "${CLASSPATH}:$JLIBPATH/jel.jar" - -echo "JDK_HOME set to $JDK_HOME" -echo "JVM_ARGS set to $JVM_ARGS" -echo "CLASSPATH set to $CLASSPATH" -if ( $?LD_LIBRARY_PATH ) then - echo "LD_LIBRARY_PATH set to $LD_LIBRARY_PATH" -endif -echo "G4ANALYSIS_AIDA_CONFIG_LIBS set to $G4ANALYSIS_AIDA_CONFIG_LIBS" -end: diff --git a/examples/extended/analysis/A01/setup-analysis.sh b/examples/extended/analysis/A01/setup-analysis.sh index 5313b95bf3..571faf8f0f 100644 --- a/examples/extended/analysis/A01/setup-analysis.sh +++ b/examples/extended/analysis/A01/setup-analysis.sh @@ -2,82 +2,4 @@ # Setup for Unix (Linux, Solaris, MacOS X) # -# -# Change this to point to your Java installation -# -#export JDK_HOME="/usr/java/jdk1.4.1" -# -# -# No User Configuration below. -# -if test ! "${JDK_HOME:+x}" -then - export JDK_HOME=/usr/java/jdk1.4.1 -fi -if ! test -e $JDK_HOME/bin/java -then - echo "You need to install Java and/or modify script to set JDK_HOME correctly" - return -fi - -if test ! "${GEANT4_HOME:+x}" -then -if test ! "${G4INSTALL:+x}" -then - GEANT4_HOME="../../../.." -else - GEANT4_HOME=$G4INSTALL -fi -fi -export JLIBPATH=$GEANT4_HOME/extlib/java -if ! test -e $JLIBPATH/aida.jar -then - echo "The AIDA.jar files seem to be missing, make sure JAIDA-Geant4 patch has been applied" - echo "and that GEANT4_HOME is set correctly" - return -fi - export G4ANALYSIS_USE=1 -export G4ANALYSIS_AIDA_CONFIG_LIBS="-L$GEANT4_HOME/extlib/$G4SYSTEM -lAIDAJNI -lFHJNI" -touch src/DummyAnalysisFactory.cc - -export JVM_ARGS="-Dhep.aida.IAnalysisFactory=jas.aida.gui.JASGUIAnalysisFactory" -case $G4SYSTEM in -Linux*) - LD_LIBRARY_PATH=$JDK_HOME/jre/lib/i386:$LD_LIBRARY_PATH - LD_LIBRARY_PATH=$JDK_HOME/jre/lib/i386/client:$LD_LIBRARY_PATH - LD_LIBRARY_PATH=$GEANT4_HOME/extlib/$G4SYSTEM:$LD_LIBRARY_PATH - export LD_LIBRARY_PATH - G4ANALYSIS_AIDA_CONFIG_LIBS="$G4ANALYSIS_AIDA_CONFIG_LIBS -L$JDK_HOME/jre/lib/i386/client -ljvm" - ;; -SUN*) - LD_LIBRARY_PATH=$JDK_HOME/jre/lib/sparc:$LD_LIBRARY_PATH - LD_LIBRARY_PATH=$JDK_HOME/jre/lib/sparc/client:$LD_LIBRARY_PATH - LD_LIBRARY_PATH=$GEANT4_HOME/extlib/$G4SYSTEM:$LD_LIBRARY_PATH - export LD_LIBRARY_PATH - G4ANALYSIS_AIDA_CONFIG_LIBS="$G4ANALYSIS_AIDA_CONFIG_LIBS -L$JDK_HOME/jre/lib/sparc -ljvm" - ;; -Darwin*) - G4ANALYSIS_AIDA_CONFIG_LIBS="$G4ANALYSIS_AIDA_CONFIG_LIBS -framework JavaVM" - ;; -*) - break -esac - -export CLASSPATH="$JLIBPATH/JASAIDA.jar" -CLASSPATH="$CLASSPATH:$JLIBPATH/aida.jar" -CLASSPATH="$CLASSPATH:$JLIBPATH/aida-dev.jar" -CLASSPATH="$CLASSPATH:$JLIBPATH/freehep-hep.jar" -CLASSPATH="$CLASSPATH:$JLIBPATH/freehep-base.jar" -CLASSPATH="$CLASSPATH:$JLIBPATH/openide-lookup.jar" -CLASSPATH="$CLASSPATH:$JLIBPATH/jas.jar" -CLASSPATH="$CLASSPATH:$JLIBPATH/jel.jar" - -echo "JDK_HOME set to $JDK_HOME" -echo "JVM_ARGS set to $JVM_ARGS" -echo "CLASSPATH set to $CLASSPATH" -if test "${GEANT4_HOME:+x}" -then - echo "LD_LIBRARY_PATH set to $LD_LIBRARY_PATH" -fi -echo "G4ANALYSIS_AIDA_CONFIG_LIBS set to $G4ANALYSIS_AIDA_CONFIG_LIBS" diff --git a/examples/extended/analysis/A01/setup-analysis.win32 b/examples/extended/analysis/A01/setup-analysis.win32 index e70d4311b5..08bb00550d 100644 --- a/examples/extended/analysis/A01/setup-analysis.win32 +++ b/examples/extended/analysis/A01/setup-analysis.win32 @@ -2,60 +2,4 @@ # Setup for Windows # -# -# Change this to point to your Java installation -# -#export JDK_HOME="/cygdrive/c/java/j2sdk1.4.1" -# -# -# No User Configuration below. -# -if test ! "${JDK_HOME:+x}" -then - export JDK_HOME="/cygdrive/c/java/j2sdk1.4.1" -fi -if ! test -e $JDK_HOME/bin/java -then - echo "You need to install Java and/or modify script to set JDK_HOME correctly" - return -fi - -if test ! "${GEANT4_HOME:+x}" -then -if test ! "${G4INSTALL:+x}" -then - GEANT4_HOME="../../../.." -else - GEANT4_HOME=$G4INSTALL -fi -fi -export JLIBPATH=$GEANT4_HOME/extlib/java -if ! test -e $JLIBPATH/aida.jar -then - echo "The AIDA.jar files seem to be missing, make sure JAIDA-Geant4 patch has been applied" - echo "and that GEANT4_HOME is set correctly" - return -fi - export G4ANALYSIS_USE=1 -cp $JDK_HOME/lib/jvm.lib $GEANT4_HOME/extlib/$G4SYSTEM -export G4ANALYSIS_AIDA_CONFIG_LIBS="'-libpath:'$GEANT4_HOME/extlib/$G4SYSTEM AIDAJNI.lib FHJNI.lib jvm.lib" -touch src/DummyAnalysisFactory.cc - -export JVM_ARGS="-Dhep.aida.IAnalysisFactory=jas.aida.gui.JASGUIAnalysisFactory" -export PATH=$PATH:$JDK_HOME/jre/bin/client - -export CLASSPATH="$JLIBPATH/JASAIDA.jar" -CLASSPATH="$CLASSPATH;$JLIBPATH/aida.jar" -CLASSPATH="$CLASSPATH;$JLIBPATH/aida-dev.jar" -CLASSPATH="$CLASSPATH;$JLIBPATH/freehep-hep.jar" -CLASSPATH="$CLASSPATH;$JLIBPATH/freehep-base.jar" -CLASSPATH="$CLASSPATH;$JLIBPATH/openide-lookup.jar" -CLASSPATH="$CLASSPATH;$JLIBPATH/jas.jar" -CLASSPATH="$CLASSPATH;$JLIBPATH/jel.jar" - -echo "JDK_HOME set to $JDK_HOME" -echo "JVM_ARGS set to $JVM_ARGS" -echo "CLASSPATH set to $CLASSPATH" -echo "PATH set to $PATH" -echo "G4ANALYSIS_AIDA_CONFIG_LIBS set to $G4ANALYSIS_AIDA_CONFIG_LIBS" diff --git a/examples/extended/analysis/A01/src/A01AnalysisManager.cc b/examples/extended/analysis/A01/src/A01AnalysisManager.cc index b725301d4a..d57f46ae48 100644 --- a/examples/extended/analysis/A01/src/A01AnalysisManager.cc +++ b/examples/extended/analysis/A01/src/A01AnalysisManager.cc @@ -40,7 +40,7 @@ // // Nov 4 2002 -- Upgrade to AIDA 3.0 // ********************************************************************** - +#ifdef G4ANALYSIS_USE #include @@ -54,7 +54,6 @@ #include - #include "A01AnalysisManager.hh" A01AnalysisManager* A01AnalysisManager::instance = 0; @@ -119,13 +118,5 @@ void A01AnalysisManager::dispose() } } - - - - - - - - - +#endif // G4ANALYSIS_USE diff --git a/examples/extended/analysis/A01/src/A01DetectorConstruction.cc b/examples/extended/analysis/A01/src/A01DetectorConstruction.cc index af00022b2a..f1411f3ca8 100644 --- a/examples/extended/analysis/A01/src/A01DetectorConstruction.cc +++ b/examples/extended/analysis/A01/src/A01DetectorConstruction.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01DetectorConstruction.cc,v 1.5 2002/12/20 21:40:30 duns Exp $ +// $Id: A01DetectorConstruction.cc,v 1.7 2003/10/14 18:15:26 perl Exp $ // -------------------------------------------------------------- // @@ -78,6 +78,7 @@ A01DetectorConstruction::A01DetectorConstruction() A01DetectorConstruction::~A01DetectorConstruction() { + delete armRotation; delete magneticField; delete messenger; @@ -306,7 +307,6 @@ G4VPhysicalVolume* A01DetectorConstruction::Construct() worldLogical->SetVisAttributes(worldVisAtt); magneticVisAtt = new G4VisAttributes(G4Colour(0.9,0.9,0.9)); // LightGray - magneticVisAtt->SetForceWireframe(true); magneticLogical->SetVisAttributes(magneticVisAtt); armVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); @@ -315,12 +315,10 @@ G4VPhysicalVolume* A01DetectorConstruction::Construct() secondArmLogical->SetVisAttributes(armVisAtt); hodoscopeVisAtt = new G4VisAttributes(G4Colour(0.8888,0.0,0.0)); - hodoscopeVisAtt->SetForceWireframe(true); hodoscope1Logical->SetVisAttributes(hodoscopeVisAtt); hodoscope2Logical->SetVisAttributes(hodoscopeVisAtt); chamberVisAtt = new G4VisAttributes(G4Colour(0.0,1.0,0.0)); - chamberVisAtt->SetForceWireframe(true); chamber1Logical->SetVisAttributes(chamberVisAtt); chamber2Logical->SetVisAttributes(chamberVisAtt); @@ -334,11 +332,9 @@ G4VPhysicalVolume* A01DetectorConstruction::Construct() EMcalorimeterLogical->SetVisAttributes(EMcalorimeterVisAtt); cellVisAtt = new G4VisAttributes(G4Colour(0.9,0.9,0.0)); - cellVisAtt->SetForceWireframe(true); cellLogical->SetVisAttributes(cellVisAtt); HadCalorimeterVisAtt = new G4VisAttributes(G4Colour(0.0, 0.0, 0.9)); - HadCalorimeterVisAtt->SetForceWireframe(true); HadCalorimeterLogical->SetVisAttributes(HadCalorimeterVisAtt); HadCalorimeterCellVisAtt = new G4VisAttributes(G4Colour(0.0, 0.0, 0.9)); HadCalorimeterCellVisAtt->SetVisibility(false); diff --git a/examples/extended/analysis/A01/src/A01DriftChamber.cc b/examples/extended/analysis/A01/src/A01DriftChamber.cc index fd3d83d51e..66a137c0ae 100644 --- a/examples/extended/analysis/A01/src/A01DriftChamber.cc +++ b/examples/extended/analysis/A01/src/A01DriftChamber.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01DriftChamber.cc,v 1.3 2002/12/13 11:34:33 gunter Exp $ +// $Id: A01DriftChamber.cc,v 1.5 2003/08/20 16:32:50 duns Exp $ // -------------------------------------------------------------- // #include "A01DriftChamber.hh" @@ -52,7 +52,7 @@ void A01DriftChamber::Initialize(G4HCofThisEvent*HCE) HCE->AddHitsCollection(HCID,hitsCollection); } -G4bool A01DriftChamber::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool A01DriftChamber::ProcessHits(G4Step*aStep,G4TouchableHistory* /*ROhist*/) { G4double charge = aStep->GetTrack()->GetDefinition()->GetPDGCharge(); if(charge==0.) return true; @@ -76,6 +76,6 @@ G4bool A01DriftChamber::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void A01DriftChamber::EndOfEvent(G4HCofThisEvent*HCE) +void A01DriftChamber::EndOfEvent(G4HCofThisEvent* /*HCE*/) {;} diff --git a/examples/extended/analysis/A01/src/A01DriftChamberHit.cc b/examples/extended/analysis/A01/src/A01DriftChamberHit.cc index 51f0c82b13..0c444198f6 100644 --- a/examples/extended/analysis/A01/src/A01DriftChamberHit.cc +++ b/examples/extended/analysis/A01/src/A01DriftChamberHit.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01DriftChamberHit.cc,v 1.4 2002/12/13 11:34:33 gunter Exp $ +// $Id: A01DriftChamberHit.cc,v 1.5 2003/07/11 21:32:02 duns Exp $ // -------------------------------------------------------------- // #include "A01DriftChamberHit.hh" @@ -49,7 +49,7 @@ A01DriftChamberHit::~A01DriftChamberHit() {;} A01DriftChamberHit::A01DriftChamberHit(const A01DriftChamberHit &right) -{ + : G4VHit() { layerID = right.layerID; worldPos = right.worldPos; localPos = right.localPos; @@ -65,7 +65,7 @@ const A01DriftChamberHit& A01DriftChamberHit::operator=(const A01DriftChamberHit return *this; } -int A01DriftChamberHit::operator==(const A01DriftChamberHit &right) const +int A01DriftChamberHit::operator==(const A01DriftChamberHit &/*right*/) const { return 0; } diff --git a/examples/extended/analysis/A01/src/A01EMPhysics.cc b/examples/extended/analysis/A01/src/A01EMPhysics.cc index 1c3f91ac02..9f106a16b2 100644 --- a/examples/extended/analysis/A01/src/A01EMPhysics.cc +++ b/examples/extended/analysis/A01/src/A01EMPhysics.cc @@ -20,9 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EMPhysics.cc,v 1.4 2003/06/16 16:47:01 gunter Exp $ +// $Id: A01EMPhysics.cc,v 1.5 2003/10/11 03:00:00 tkoi Exp $ // -------------------------------------------------------------- // +// +// 09-Oct-2003 Chhange gamma, electron, positorn process T. Koi #include "A01EMPhysics.hh" @@ -70,41 +72,57 @@ void A01EMPhysics::ConstructParticle() void A01EMPhysics::ConstructProcess() { - G4ProcessManager * pManager = 0; + G4ProcessManager * pManager = 0; - // Gamma Physics - pManager = G4Gamma::Gamma()->GetProcessManager(); - pManager->AddDiscreteProcess(&thePhotoEffect); - pManager->AddDiscreteProcess(&theComptonEffect); - pManager->AddDiscreteProcess(&thePairProduction); + //Gamma + pManager = G4Gamma::Gamma()->GetProcessManager(); + pManager->AddDiscreteProcess(new G4GammaConversion()); + pManager->AddDiscreteProcess(new G4ComptonScattering()); + pManager->AddDiscreteProcess(new G4PhotoElectricEffect()); - // Electron Physics - pManager = G4Electron::Electron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&theElectronBremsStrahlung); + //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); + // + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(theeminusIonisation, idxPostStep,2); + pManager->SetProcessOrdering(theeminusBremsstrahlung, idxPostStep,3); - pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + //Positron + pManager = G4Positron::Positron()->GetProcessManager(); + G4VProcess* theeplusMultipleScattering = new G4MultipleScattering(); + G4VProcess* theeplusIonisation = new G4eIonisation(); + G4VProcess* theeplusBremsstrahlung = new G4eBremsstrahlung(); + G4VProcess* theeplusAnnihilation = new G4eplusAnnihilation(); - pManager->AddProcess(&theElectronMultipleScattering); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); - - //Positron Physics - pManager = G4Positron::Positron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&thePositronBremsStrahlung); - - pManager->AddDiscreteProcess(&theAnnihilation); - - pManager->AddRestProcess(&theAnnihilation); - - pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); - - pManager->AddProcess(&thePositronMultipleScattering); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + 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); + // + // 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/examples/extended/analysis/A01/src/A01EmCalorimeter.cc b/examples/extended/analysis/A01/src/A01EmCalorimeter.cc index 04a88364aa..0542aba1b6 100644 --- a/examples/extended/analysis/A01/src/A01EmCalorimeter.cc +++ b/examples/extended/analysis/A01/src/A01EmCalorimeter.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EmCalorimeter.cc,v 1.3 2002/12/13 11:34:33 gunter Exp $ +// $Id: A01EmCalorimeter.cc,v 1.5 2003/08/20 16:32:50 duns Exp $ // -------------------------------------------------------------- // #include "A01EmCalorimeter.hh" @@ -58,7 +58,7 @@ void A01EmCalorimeter::Initialize(G4HCofThisEvent*HCE) } } -G4bool A01EmCalorimeter::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool A01EmCalorimeter::ProcessHits(G4Step*aStep,G4TouchableHistory* /*ROhist*/) { G4double edep = aStep->GetTotalEnergyDeposit(); if(edep==0.) return true; @@ -86,6 +86,6 @@ G4bool A01EmCalorimeter::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void A01EmCalorimeter::EndOfEvent(G4HCofThisEvent*HCE) +void A01EmCalorimeter::EndOfEvent(G4HCofThisEvent* /*HCE*/) {;} diff --git a/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc b/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc index 1686e4b7f1..cdaa6421fb 100644 --- a/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc +++ b/examples/extended/analysis/A01/src/A01EmCalorimeterHit.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EmCalorimeterHit.cc,v 1.4 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01EmCalorimeterHit.cc,v 1.6 2003/10/14 18:58:18 perl Exp $ // -------------------------------------------------------------- // @@ -51,7 +51,7 @@ A01EmCalorimeterHit::~A01EmCalorimeterHit() {;} A01EmCalorimeterHit::A01EmCalorimeterHit(const A01EmCalorimeterHit &right) -{ + : G4VHit() { cellID = right.cellID; edep = right.edep; pos = right.pos; @@ -89,7 +89,6 @@ void A01EmCalorimeterHit::Draw() if(rcol<0.4) rcol = 0.4; G4Colour colour(rcol,0.,0.); attribs.SetColour(colour); - attribs.SetForceWireframe(false); attribs.SetForceSolid(true); pVVisManager->Draw(*pLogV,attribs,trans); } diff --git a/examples/extended/analysis/A01/src/A01EventAction.cc b/examples/extended/analysis/A01/src/A01EventAction.cc index 54f774fb51..e9395fbcc7 100644 --- a/examples/extended/analysis/A01/src/A01EventAction.cc +++ b/examples/extended/analysis/A01/src/A01EventAction.cc @@ -20,13 +20,15 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EventAction.cc,v 1.4 2002/12/20 21:40:30 duns Exp $ +// $Id: A01EventAction.cc,v 1.6 2003/10/13 01:55:54 asaim Exp $ // -------------------------------------------------------------- // #include "A01EventAction.hh" #include "A01EventActionMessenger.hh" +#ifdef G4ANALYSIS_USE #include "A01AnalysisManager.hh" +#endif // G4ANALYSIS_USE #include "G4Event.hh" #include "G4EventManager.hh" @@ -63,6 +65,7 @@ A01EventAction::A01EventAction() verboseLevel = 1; messenger = new A01EventActionMessenger(this); +#ifdef G4ANALYSIS_USE plotter = 0; tuple = 0; dc1Hits = dc2Hits = 0; @@ -104,11 +107,14 @@ A01EventAction::A01EventAction() { tuple = tFactory->create("MyTuple","MyTuple","int dc1Hits, dc2Hits, double ECEnergy, HCEnergy, time1, time2",""); } +#endif // G4ANALYSIS_USE } A01EventAction::~A01EventAction() { +#ifdef G4ANALYSIS_USE A01AnalysisManager::dispose(); +#endif // G4ANALYSIS_USE delete messenger; } @@ -135,6 +141,7 @@ void A01EventAction::EndOfEventAction(const G4Event* evt) HCHC = (A01HadCalorimeterHitsCollection*)(HCE->GetHC(HCHCID)); } +#ifdef G4ANALYSIS_USE // Fill some histograms if (DHC1 && dc1Hits) @@ -216,6 +223,7 @@ void A01EventAction::EndOfEventAction(const G4Event* evt) tuple->addRow(); } if (plotter) plotter->refresh(); +#endif // G4ANALYSIS_USE // Diagnostics @@ -311,4 +319,3 @@ void A01EventAction::EndOfEventAction(const G4Event* evt) } - diff --git a/examples/extended/analysis/A01/src/A01EventActionMessenger.cc b/examples/extended/analysis/A01/src/A01EventActionMessenger.cc index d989b35747..0873203215 100644 --- a/examples/extended/analysis/A01/src/A01EventActionMessenger.cc +++ b/examples/extended/analysis/A01/src/A01EventActionMessenger.cc @@ -20,9 +20,10 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01EventActionMessenger.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01EventActionMessenger.cc,v 1.5 2003/10/13 17:57:49 duns Exp $ // -------------------------------------------------------------- // + #include "A01EventActionMessenger.hh" #include "A01EventAction.hh" #include "G4UIcmdWithAnInteger.hh" @@ -58,4 +59,3 @@ G4String A01EventActionMessenger::GetCurrentValue(G4UIcommand * command) return cv; } - diff --git a/examples/extended/analysis/A01/src/A01HadCalorimeter.cc b/examples/extended/analysis/A01/src/A01HadCalorimeter.cc index 62f4cb693b..5000fd07e4 100644 --- a/examples/extended/analysis/A01/src/A01HadCalorimeter.cc +++ b/examples/extended/analysis/A01/src/A01HadCalorimeter.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HadCalorimeter.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01HadCalorimeter.cc,v 1.5 2003/08/20 16:32:50 duns Exp $ // -------------------------------------------------------------- // #include "A01HadCalorimeter.hh" @@ -59,7 +59,7 @@ void A01HadCalorimeter::Initialize(G4HCofThisEvent*HCE) } } -G4bool A01HadCalorimeter::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool A01HadCalorimeter::ProcessHits(G4Step*aStep,G4TouchableHistory* /*ROhist*/) { G4double edep = aStep->GetTotalEnergyDeposit(); if(edep==0.) return true; @@ -91,6 +91,6 @@ G4bool A01HadCalorimeter::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void A01HadCalorimeter::EndOfEvent(G4HCofThisEvent*HCE) +void A01HadCalorimeter::EndOfEvent(G4HCofThisEvent* /*HCE*/) {;} diff --git a/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc b/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc index 281433d21a..462ecac1a5 100644 --- a/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc +++ b/examples/extended/analysis/A01/src/A01HadCalorimeterHit.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HadCalorimeterHit.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01HadCalorimeterHit.cc,v 1.5 2003/10/14 18:58:20 perl Exp $ // -------------------------------------------------------------- // @@ -55,7 +55,7 @@ A01HadCalorimeterHit::~A01HadCalorimeterHit() {;} A01HadCalorimeterHit::A01HadCalorimeterHit(const A01HadCalorimeterHit &right) -{ + : G4VHit() { columnID = right.columnID; rowID = right.rowID; edep = right.edep; @@ -88,7 +88,6 @@ void A01HadCalorimeterHit::Draw() G4VisAttributes attribs; G4Colour colour(1.,0.,0.); attribs.SetColour(colour); - attribs.SetForceWireframe(false); attribs.SetForceSolid(true); G4Box box("dummy",15.*cm,15.*cm,1.*m*edep/(0.1*GeV)); pVVisManager->Draw(box,attribs,trans); diff --git a/examples/extended/analysis/A01/src/A01HadronPhysics.cc b/examples/extended/analysis/A01/src/A01HadronPhysics.cc index 61f8b29b00..8c33a607cf 100644 --- a/examples/extended/analysis/A01/src/A01HadronPhysics.cc +++ b/examples/extended/analysis/A01/src/A01HadronPhysics.cc @@ -20,10 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HadronPhysics.cc,v 1.4 2003/06/16 16:47:03 gunter Exp $ +// $Id: A01HadronPhysics.cc,v 1.6 2003/10/13 02:13:38 tkoi Exp $ // -------------------------------------------------------------- // - +// 09-Oct-2003 Hadron Physics List with Parameterization Model by T. Koi +// 12-Oct-2003 Bug Fixed (KaonMinus) by T. Koi #include "A01HadronPhysics.hh" @@ -44,22 +45,23 @@ A01HadronPhysics::~A01HadronPhysics() #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4PionZero.hh" -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" void A01HadronPhysics::ConstructParticle() { - // pions - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); + // Construct all mesons + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); - // K+/- - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); + // Construct all barions + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + // Construct resonaces and quarks + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); } @@ -67,45 +69,660 @@ void A01HadronPhysics::ConstructParticle() void A01HadronPhysics::ConstructProcess() { - G4ProcessManager * pManager = 0; + G4ProcessManager * pManager = 0; + + // Pi+ Physics + pManager = G4PionPlus::PionPlus()->GetProcessManager(); - // Pion Plus Physics - pManager = G4PionPlus::PionPlus()->GetProcessManager(); // add processes - // pManager->AddProcess(&fPiPlusIonisation, ordInActive,2, 2); + G4HadronElasticProcess* theppElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* theppElasticModel = new G4LElastic(); + theppElasticProcess->RegisterMe(theppElasticModel); + pManager->AddDiscreteProcess(theppElasticProcess); + + G4PionPlusInelasticProcess* thePionPlusInelasticProcess + = new G4PionPlusInelasticProcess(); - pManager->AddProcess(&fPiPlusMultipleScattering); - // pManager->SetProcessOrdering(&fPiPlusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fPiPlusMultipleScattering, idxPostStep, 1); + G4LEPionPlusInelastic* thePionPlusLEPModel = new G4LEPionPlusInelastic(); + G4HEPionPlusInelastic* thePionPlusHEPModel = new G4HEPionPlusInelastic(); + thePionPlusInelasticProcess->RegisterMe(thePionPlusLEPModel); + thePionPlusInelasticProcess->RegisterMe(thePionPlusHEPModel); + pManager->AddDiscreteProcess(thePionPlusInelasticProcess); - // Pion Minus Physics - pManager = G4PionMinus::PionMinus()->GetProcessManager(); + 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(&fPiMinusIonisation, ordInActive,2, 2); + 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); - pManager->AddProcess(&fPiMinusMultipleScattering); - // pManager->SetProcessOrdering(&fPiMinusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fPiMinusMultipleScattering, idxPostStep, 1); - // K+ Physics - pManager = G4KaonPlus::KaonPlus()->GetProcessManager(); + // 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(&fKaonPlusIonisation, ordInActive,2, 2); + 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); - pManager->AddProcess(&fKaonPlusMultipleScattering); - // pManager->SetProcessOrdering(&fKaonPlusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fKaonPlusMultipleScattering, idxPostStep, 1); - // K- Physics - pManager = G4KaonMinus::KaonMinus()->GetProcessManager(); + // K- Physics + pManager = G4KaonMinus::KaonMinus()->GetProcessManager(); + // add processes - // pManager->AddProcess(&fKaonMinusIonisation, ordInActive,2, 2); + G4HadronElasticProcess* thekmElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thekmElasticModel = new G4LElastic(); + thekmElasticProcess->RegisterMe(thekmElasticModel); + pManager->AddDiscreteProcess(thekmElasticProcess); - pManager->AddProcess(&fKaonMinusMultipleScattering); - // pManager->SetProcessOrdering(&fKaonMinusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fKaonMinusMultipleScattering, idxPostStep, 1); + 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(); + + G4LEProtonInelastic* theProtonLEPModel = new G4LEProtonInelastic(); + G4HEProtonInelastic* theProtonHEPModel = new G4HEProtonInelastic(); + 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(); + + G4LENeutronInelastic* theNeutronLEPModel = new G4LENeutronInelastic(); + G4HENeutronInelastic* theNeutronHEPModel = new G4HENeutronInelastic(); + 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/analysis/A01/src/A01Hodoscope.cc b/examples/extended/analysis/A01/src/A01Hodoscope.cc index 26e58eae07..e5705edce6 100644 --- a/examples/extended/analysis/A01/src/A01Hodoscope.cc +++ b/examples/extended/analysis/A01/src/A01Hodoscope.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01Hodoscope.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01Hodoscope.cc,v 1.6 2003/08/20 16:32:50 duns Exp $ // -------------------------------------------------------------- // #include "A01Hodoscope.hh" @@ -51,7 +51,8 @@ void A01Hodoscope::Initialize(G4HCofThisEvent*HCE) HCE->AddHitsCollection(HCID,hitsCollection); } -G4bool A01Hodoscope::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) + +G4bool A01Hodoscope::ProcessHits(G4Step*aStep,G4TouchableHistory* /*ROhist*/) { G4double edep = aStep->GetTotalEnergyDeposit(); if(edep==0.) return true; @@ -94,6 +95,6 @@ G4bool A01Hodoscope::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void A01Hodoscope::EndOfEvent(G4HCofThisEvent*HCE) +void A01Hodoscope::EndOfEvent(G4HCofThisEvent* /*HCE*/) {;} diff --git a/examples/extended/analysis/A01/src/A01HodoscopeHit.cc b/examples/extended/analysis/A01/src/A01HodoscopeHit.cc index 3f62de5b9e..7ececa6505 100644 --- a/examples/extended/analysis/A01/src/A01HodoscopeHit.cc +++ b/examples/extended/analysis/A01/src/A01HodoscopeHit.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01HodoscopeHit.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01HodoscopeHit.cc,v 1.5 2003/10/14 18:58:22 perl Exp $ // -------------------------------------------------------------- // #include "A01HodoscopeHit.hh" @@ -43,7 +43,7 @@ A01HodoscopeHit::~A01HodoscopeHit() {;} A01HodoscopeHit::A01HodoscopeHit(const A01HodoscopeHit &right) -{ + : G4VHit() { id = right.id; time = right.time; pos = right.pos; @@ -61,7 +61,7 @@ const A01HodoscopeHit& A01HodoscopeHit::operator=(const A01HodoscopeHit &right) return *this; } -int A01HodoscopeHit::operator==(const A01HodoscopeHit &right) const +int A01HodoscopeHit::operator==(const A01HodoscopeHit &/*right*/) const { return 0; } @@ -77,7 +77,6 @@ void A01HodoscopeHit::Draw() if(pVA) attribs = *pVA; G4Colour colour(0.,1.,1.); attribs.SetColour(colour); - attribs.SetForceWireframe(false); attribs.SetForceSolid(true); pVVisManager->Draw(*pLogV,attribs,trans); } diff --git a/examples/extended/analysis/A01/src/A01IonPhysics.cc b/examples/extended/analysis/A01/src/A01IonPhysics.cc index 37c642f553..2f7dae4926 100644 --- a/examples/extended/analysis/A01/src/A01IonPhysics.cc +++ b/examples/extended/analysis/A01/src/A01IonPhysics.cc @@ -20,9 +20,10 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01IonPhysics.cc,v 1.4 2003/06/16 16:47:04 gunter Exp $ +// $Id: A01IonPhysics.cc,v 1.6 2003/10/14 00:15:48 tkoi Exp $ // -------------------------------------------------------------- // +// 13-Oct-2003 Add Comment for Ionization of Generic Ion by T. Koi #include "A01IonPhysics.hh" @@ -59,78 +60,150 @@ void A01IonPhysics::ConstructParticle() void A01IonPhysics::ConstructProcess() { - G4ProcessManager * pManager = 0; + G4ProcessManager * pManager = 0; - // Elastic Process - theElasticModel = new G4LElastic(); - theElasticProcess.RegisterMe(theElasticModel); - // Generic Ion - pManager = G4GenericIon::GenericIon()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theElasticProcess); + // Generic Ion + pManager = G4GenericIon::GenericIon()->GetProcessManager(); - pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); + // 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(); + // + pManager->AddProcess(thegionIonisation); + pManager->AddProcess(thegionMultipleScattering); + // + // 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); - pManager->AddProcess(&fIonMultipleScattering); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); - // Deuteron - pManager = G4Deuteron::Deuteron()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theElasticProcess); + // Deuteron + pManager = G4Deuteron::Deuteron()->GetProcessManager(); - fDeuteronModel = new G4LEDeuteronInelastic(); - fDeuteronProcess.RegisterMe(fDeuteronModel); - pManager->AddDiscreteProcess(&fDeuteronProcess); + // add process + G4HadronElasticProcess* thedueElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thedueElasticModel = new G4LElastic(); + thedueElasticProcess->RegisterMe(thedueElasticModel); + pManager->AddDiscreteProcess(thedueElasticProcess); - pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + G4DeuteronInelasticProcess* theDeuteronInelasticProcess + = new G4DeuteronInelasticProcess(); - pManager->AddProcess(&fDeuteronMultipleScattering); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); + G4LEDeuteronInelastic* theDeuteronLEPModel = new G4LEDeuteronInelastic(); + theDeuteronInelasticProcess->RegisterMe(theDeuteronLEPModel); + pManager->AddDiscreteProcess(theDeuteronInelasticProcess); - // Triton - pManager = G4Triton::Triton()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theElasticProcess); + 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); - fTritonModel = new G4LETritonInelastic(); - fTritonProcess.RegisterMe(fTritonModel); - pManager->AddDiscreteProcess(&fTritonProcess); - pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2); + // Triton + pManager = G4Triton::Triton()->GetProcessManager(); - pManager->AddProcess(&fTritonMultipleScattering); - pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep, 1); + // add process + G4HadronElasticProcess* thetriElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thetriElasticModel = new G4LElastic(); + thetriElasticProcess->RegisterMe(thetriElasticModel); + pManager->AddDiscreteProcess(thetriElasticProcess); - // Alpha - pManager = G4Alpha::Alpha()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theElasticProcess); + G4TritonInelasticProcess* theTritonInelasticProcess + = new G4TritonInelasticProcess(); - fAlphaModel = new G4LEAlphaInelastic(); - fAlphaProcess.RegisterMe(fAlphaModel); - pManager->AddDiscreteProcess(&fAlphaProcess); + G4LETritonInelastic* theTritonLEPModel = new G4LETritonInelastic(); + theTritonInelasticProcess->RegisterMe(theTritonLEPModel); + pManager->AddDiscreteProcess(theTritonInelasticProcess); - pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + 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); - pManager->AddProcess(&fAlphaMultipleScattering); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); - // He3 - pManager = G4He3::He3()->GetProcessManager(); - // add process - pManager->AddDiscreteProcess(&theElasticProcess); + // Alpha + pManager = G4Alpha::Alpha()->GetProcessManager(); - pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + // add processes + G4HadronElasticProcess* thealElasticProcess + = new G4HadronElasticProcess(); + G4LElastic* thealElasticModel = new G4LElastic(); + thealElasticProcess->RegisterMe(thealElasticModel); + pManager->AddDiscreteProcess(thealElasticProcess); - pManager->AddProcess(&fHe3MultipleScattering); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); + 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/analysis/A01/src/A01MagneticField.cc b/examples/extended/analysis/A01/src/A01MagneticField.cc index 0ecabf9ae9..554e76099e 100644 --- a/examples/extended/analysis/A01/src/A01MagneticField.cc +++ b/examples/extended/analysis/A01/src/A01MagneticField.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01MagneticField.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01MagneticField.cc,v 1.4 2003/10/12 14:08:14 asaim Exp $ // -------------------------------------------------------------- // @@ -42,7 +42,7 @@ void A01MagneticField::GetFieldValue(const double Point[3],double *Bfield) const { Bfield[0] = 0.; Bfield[2] = 0.; - if(abs(Point[2])GetProcessManager(); + //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(&fMuPlusIonisation, ordInActive,2, 2); + 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); + // set ordering for PostStepDoIt + pManager->SetProcessOrdering(thempMultipleScattering, idxPostStep,1); + pManager->SetProcessOrdering(thempIonisation, idxPostStep,2); + pManager->SetProcessOrdering(thempBremsstrahlung, idxPostStep,3); + pManager->SetProcessOrdering(thempPairProduction, idxPostStep,4); - 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(); + //Muon- + G4VProcess* themmMultipleScattering = new G4MultipleScattering(); + G4VProcess* themmBremsstrahlung = new G4MuBremsstrahlung(); + G4VProcess* themmPairProduction = new G4MuPairProduction(); + G4VProcess* themmIonisation = new G4MuIonisation(); + // // 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); - - // Tau Plus Physics - pManager = G4TauPlus::TauPlus()->GetProcessManager(); + 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); + // 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(&fTauPlusIonisation, ordInActive,2, 2); + 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); - pManager->AddProcess(&fTauPlusMultipleScattering); - pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fTauPlusMultipleScattering, idxPostStep, 1); - - // Tau Minus Physics - pManager = G4TauMinus::TauMinus()->GetProcessManager(); + // Tau- Physics + pManager = G4TauMinus::TauMinus()->GetProcessManager(); + G4VProcess* thetmMultipleScattering = new G4MultipleScattering(); + G4VProcess* thetmIonisation = new G4hIonisation(); + // // add processes - pManager->AddProcess(&fTauMinusIonisation, ordInActive,2, 2); - - pManager->AddProcess(&fTauMinusMultipleScattering); - pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fTauMinusMultipleScattering, idxPostStep, 1); + 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/analysis/A01/src/A01PhysicsList.cc b/examples/extended/analysis/A01/src/A01PhysicsList.cc index b5bb0496c4..0b0f770628 100644 --- a/examples/extended/analysis/A01/src/A01PhysicsList.cc +++ b/examples/extended/analysis/A01/src/A01PhysicsList.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01PhysicsList.cc,v 1.4 2003/06/16 16:47:06 gunter Exp $ +// $Id: A01PhysicsList.cc,v 1.5 2003/10/11 03:00:00 tkoi Exp $ // -------------------------------------------------------------- // @@ -65,7 +65,7 @@ A01PhysicsList::A01PhysicsList(): G4VModularPhysicsList() RegisterPhysics( new A01HadronPhysics("hadron")); // Ion Physics -//////////////////////////////////////////// RegisterPhysics( new A01IonPhysics("ion")); + RegisterPhysics( new A01IonPhysics("ion")); } diff --git a/examples/extended/analysis/A01/src/A01TrackingAction.cc b/examples/extended/analysis/A01/src/A01TrackingAction.cc index b9b60aaa4f..26643c0e90 100644 --- a/examples/extended/analysis/A01/src/A01TrackingAction.cc +++ b/examples/extended/analysis/A01/src/A01TrackingAction.cc @@ -20,15 +20,14 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01TrackingAction.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01TrackingAction.cc,v 1.4 2003/10/12 19:50:37 perl Exp $ // -------------------------------------------------------------- // #include "A01TrackingAction.hh" #include "G4TrackingManager.hh" #include "G4Track.hh" - -#include "A01Trajectory.hh" +#include "G4Trajectory.hh" A01TrackingAction::A01TrackingAction() {;} @@ -39,7 +38,7 @@ A01TrackingAction::~A01TrackingAction() void A01TrackingAction::PreUserTrackingAction(const G4Track* aTrack) { fpTrackingManager->SetStoreTrajectory(true); - fpTrackingManager->SetTrajectory(new A01Trajectory(aTrack)); + fpTrackingManager->SetTrajectory(new G4Trajectory(aTrack)); } diff --git a/examples/extended/analysis/A01/src/A01Trajectory.cc b/examples/extended/analysis/A01/src/A01Trajectory.cc index 1c091d299a..1519913aff 100644 --- a/examples/extended/analysis/A01/src/A01Trajectory.cc +++ b/examples/extended/analysis/A01/src/A01Trajectory.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01Trajectory.cc,v 1.4 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01Trajectory.cc,v 1.5 2003/07/11 21:32:02 duns Exp $ // -------------------------------------------------------------- // @@ -61,6 +61,7 @@ A01Trajectory::A01Trajectory(const G4Track* aTrack) } A01Trajectory::A01Trajectory(A01Trajectory & right) + : G4VTrajectory() { ParticleName = right.ParticleName; fpParticleDefinition = right.fpParticleDefinition; @@ -103,7 +104,13 @@ void A01Trajectory::ShowTrajectory() const } } -void A01Trajectory::DrawTrajectory(G4int i_mode) const +void A01Trajectory::ShowTrajectory(std::ostream& o) const +{ + G4VTrajectory::ShowTrajectory(o); +} + + +void A01Trajectory::DrawTrajectory(G4int /*i_mode*/) const { G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); diff --git a/examples/extended/analysis/A01/src/A01VisManager.cc b/examples/extended/analysis/A01/src/A01VisManager.cc index 265a909cf3..bdba16c4d7 100644 --- a/examples/extended/analysis/A01/src/A01VisManager.cc +++ b/examples/extended/analysis/A01/src/A01VisManager.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: A01VisManager.cc,v 1.3 2002/12/13 11:34:34 gunter Exp $ +// $Id: A01VisManager.cc,v 1.4 2003/11/13 15:10:55 johna Exp $ // -------------------------------------------------------------- // @@ -46,11 +46,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -99,11 +94,6 @@ void A01VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/analysis/A01/src/DummyAnalysisFactory.cc b/examples/extended/analysis/A01/src/DummyAnalysisFactory.cc deleted file mode 100644 index 338f88b0be..0000000000 --- a/examples/extended/analysis/A01/src/DummyAnalysisFactory.cc +++ /dev/null @@ -1,40 +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 - -#ifndef G4ANALYSIS_USE -#include "G4ios.hh" -extern "C" { -AIDA::IAnalysisFactory* AIDA_createAnalysisFactory(); -} - -////////////////////////////////////////////////////////////////////////////// -AIDA::IAnalysisFactory* AIDA_createAnalysisFactory( -) -////////////////////////////////////////////////////////////////////////////// -//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!// -{ - G4cout <<"Warning: Dummy analysis factory loaded" << G4endl; - return 0; -} -#endif diff --git a/examples/extended/analysis/A01/test.in b/examples/extended/analysis/A01/test.in new file mode 100644 index 0000000000..793b5c8684 --- /dev/null +++ b/examples/extended/analysis/A01/test.in @@ -0,0 +1,73 @@ +# +# Macro file for A01app +# +# reference input test.in +# reference output test.out +# test.out was created with RH9.0, gcc3.2.2 +# geant4.5.2.ref05,clhep 1.8.0.2 +# on 10-Nov-2003 T. Koi SLAC +# +# turn off randomization +# +/mydet/randomizePrimary FALSE +/mydet/sigmaMomentum 0. +/mydet/sigmaAngle 0. +# +/mydet/armAngle 30. deg +/gun/particle proton +/mydet/momentum 100. GeV +/mydet/fieldValue 100. tesla +/run/beamOn 5 +# +/mydet/armAngle 60. deg +/gun/particle pi+ +/mydet/momentum 100. GeV +/mydet/fieldValue 200. tesla +/vis/viewer/refresh +/run/beamOn 5 +# +/gun/particle e+ +/mydet/armAngle 30. deg +/mydet/momentum 100. GeV +/mydet/fieldValue 100. tesla +/run/beamOn 5 +# +# +/mydet/armAngle 30. deg +/gun/particle proton +/mydet/momentum 10. GeV +/mydet/fieldValue 10. tesla +/run/beamOn 5 +# +/mydet/armAngle 60. deg +/gun/particle pi+ +/mydet/momentum 10. GeV +/mydet/fieldValue 20. tesla +/vis/viewer/refresh +/run/beamOn 5 +# +/gun/particle e+ +/mydet/armAngle 30. deg +/mydet/momentum 10. GeV +/mydet/fieldValue 10. tesla +/run/beamOn 5 +# +# +/mydet/armAngle 30. deg +/gun/particle proton +/mydet/momentum 1. GeV +/mydet/fieldValue 1. tesla +/run/beamOn 5 +# +/mydet/armAngle 60. deg +/gun/particle pi+ +/mydet/momentum 1. GeV +/mydet/fieldValue 2. tesla +/vis/viewer/refresh +/run/beamOn 5 +# +/gun/particle e+ +/mydet/armAngle 30. deg +/mydet/momentum 1. GeV +/mydet/fieldValue 1. tesla +/run/beamOn 5 diff --git a/examples/extended/analysis/A01/test.out b/examples/extended/analysis/A01/test.out new file mode 100644 index 0000000000..261b1959a4 --- /dev/null +++ b/examples/extended/analysis/A01/test.out @@ -0,0 +1,1164 @@ +********************************************** + Geant4 version $Name: geant4-06-00 $ + (3-October-2003) + Copyright : Geant4 Collaboration +********************************************** +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) + G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + VRML1 (VRML1) + VRML2 (VRML2) + +The materials defined are : + + +***** Table : Nb of materials = 5 ***** + + Material: ArgonGas density: 1.782 kg/m3 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: 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: Oxigen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + + Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 % + + Material: CsI density: 4.510 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.861 cm + ---> Element: Iodine I Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 50.00 % Abundance 51.15 % + ---> Element: Cesium Cs Z = 55.0 N = 132.9 A = 132.90 g/mole fractionMass: 50.00 % Abundance 48.85 % + + 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 % + + + +The geometrical tree defined are : + +worldPhysical[0] worldLogical 3 Air + magneticPhysical[0] magneticLogical 0 Air + firstArmPhysical[0] firstArmLogical 20 Air + hodoscope1Physical[0] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[1] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[2] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[3] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[4] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[5] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[6] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[7] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[8] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[9] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[10] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[11] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[12] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[13] hodoscope1Logical 0 Scintillator /hodoscope1 + hodoscope1Physical[14] hodoscope1Logical 0 Scintillator /hodoscope1 + chamber1Physical[0] chamber1Logical 1 ArgonGas + wirePlane1Physical[0] wirePlane1Logical 0 ArgonGas /chamber1 + chamber1Physical[1] chamber1Logical 1 ArgonGas + wirePlane1Physical[0] wirePlane1Logical 0 ArgonGas /chamber1 + chamber1Physical[2] chamber1Logical 1 ArgonGas + wirePlane1Physical[0] wirePlane1Logical 0 ArgonGas /chamber1 + chamber1Physical[3] chamber1Logical 1 ArgonGas + wirePlane1Physical[0] wirePlane1Logical 0 ArgonGas /chamber1 + chamber1Physical[4] chamber1Logical 1 ArgonGas + wirePlane1Physical[0] wirePlane1Logical 0 ArgonGas /chamber1 + secondArmPhys[0] secondArmLogical 32 Air + hodoscope2Physical[0] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[1] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[2] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[3] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[4] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[5] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[6] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[7] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[8] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[9] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[10] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[11] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[12] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[13] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[14] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[15] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[16] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[17] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[18] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[19] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[20] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[21] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[22] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[23] hodoscope2Logical 0 Scintillator /hodoscope2 + hodoscope2Physical[24] hodoscope2Logical 0 Scintillator /hodoscope2 + chamber2Physical[0] chamber2Logical 1 ArgonGas + wirePlane2Physical[0] wirePlane2Logical 0 ArgonGas /chamber2 + chamber2Physical[1] chamber2Logical 1 ArgonGas + wirePlane2Physical[0] wirePlane2Logical 0 ArgonGas /chamber2 + chamber2Physical[2] chamber2Logical 1 ArgonGas + wirePlane2Physical[0] wirePlane2Logical 0 ArgonGas /chamber2 + chamber2Physical[3] chamber2Logical 1 ArgonGas + wirePlane2Physical[0] wirePlane2Logical 0 ArgonGas /chamber2 + chamber2Physical[4] chamber2Logical 1 ArgonGas + wirePlane2Physical[0] wirePlane2Logical 0 ArgonGas /chamber2 + EMcalorimeterPhysical[0] EMcalorimeterLogical 1 CsI + cellPhysical[-1] cellLogical 0 CsI /EMcalorimeter + HadCalorimeterPhysical[0] HadCalorimeterLogical 1 Lead + HadCalColumnPhysical[-1] HadCalColumnLogical 1 Lead + HadCalCellPhysical[-1] HadCalCellLogical 1 Lead + HadCalLayerPhysical[-1] HadCalLayerLogical 1 Lead + HadCalScintiPhysical[0] HadCalScintiLogical 0 Scintillator /HadCalorimeter + +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 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. + +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). + gamma energies sampled according Heitler + PhysicsTables from 10 keV to 10 TeV in 100 bins. + +hIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 + +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 + +MuIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 + +MuBrems: 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. + +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 + +MuBrems: 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 + +>>> Event 0 >>> Simulation truth : proton (-0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.987 (nsec) +Hodoscope 2 has 3 hits. + Hodoscope[9] 43.1884 (nsec) + Hodoscope[11] 57.16 (nsec) + Hodoscope[7] 43.4355 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67124 (nsec) --- local (x,y) -0.0134909, -0.0163703 + Layer[1] : time 8.33914 (nsec) --- local (x,y) -0.0173496, -0.0324728 + Layer[2] : time 10.007 (nsec) --- local (x,y) -0.0214198, -0.0492803 + Layer[3] : time 11.6749 (nsec) --- local (x,y) -0.0281567, -0.0641675 + Layer[4] : time 13.3428 (nsec) --- local (x,y) -0.0323731, -0.0795392 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8514 (nsec) --- local (x,y) -143.632, -0.27572 + Layer[1] : time 36.5221 (nsec) --- local (x,y) -172.527, -0.290488 + Layer[2] : time 38.1928 (nsec) --- local (x,y) -201.421, -0.301928 + Layer[3] : time 39.8635 (nsec) --- local (x,y) -230.31, -0.313962 + Layer[4] : time 41.5341 (nsec) --- local (x,y) -259.2, -0.327771 +EM Calorimeter has 38 hits. Total Edep is 9547.25 (MeV) +Hadron Calorimeter has 17 hits. Total Edep is 2261.96 (MeV) + +>>> Event 1 >>> Simulation truth : proton (-0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.987 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.188 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67124 (nsec) --- local (x,y) 0.0200729, 0.0182692 + Layer[1] : time 8.33914 (nsec) --- local (x,y) 0.0332164, 0.0334565 + Layer[2] : time 10.007 (nsec) --- local (x,y) 0.0419995, 0.0489271 + Layer[3] : time 11.6749 (nsec) --- local (x,y) 0.0489663, 0.0651946 + Layer[4] : time 13.3428 (nsec) --- local (x,y) 0.0541096, 0.0859588 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8502 (nsec) --- local (x,y) -148.189, 0.375184 + Layer[1] : time 36.5211 (nsec) --- local (x,y) -177.843, 0.396998 + Layer[2] : time 38.1919 (nsec) --- local (x,y) -207.495, 0.419291 + Layer[3] : time 39.8627 (nsec) --- local (x,y) -237.147, 0.441367 + Layer[4] : time 41.5335 (nsec) --- local (x,y) -266.802, 0.45958 +EM Calorimeter has 20 hits. Total Edep is 275.696 (MeV) +Hadron Calorimeter has 16 hits. Total Edep is 2043.17 (MeV) + +>>> Event 2 >>> Simulation truth : proton (0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.987 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1882 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67124 (nsec) --- local (x,y) -0.0156408, 0.0639335 + Layer[1] : time 8.33914 (nsec) --- local (x,y) -0.0160434, 0.0846437 + Layer[2] : time 10.007 (nsec) --- local (x,y) -0.0193047, 0.102883 + Layer[3] : time 11.6749 (nsec) --- local (x,y) -0.0196716, 0.117577 + Layer[4] : time 13.3428 (nsec) --- local (x,y) -0.0182299, 0.132382 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8508 (nsec) --- local (x,y) -146.096, 0.303258 + Layer[1] : time 36.5216 (nsec) --- local (x,y) -175.427, 0.315956 + Layer[2] : time 38.1923 (nsec) --- local (x,y) -204.761, 0.325747 + Layer[3] : time 39.8631 (nsec) --- local (x,y) -234.087, 0.337181 + Layer[4] : time 41.5339 (nsec) --- local (x,y) -263.407, 0.351751 +EM Calorimeter has 25 hits. Total Edep is 419.758 (MeV) +Hadron Calorimeter has 12 hits. Total Edep is 2394.85 (MeV) + +>>> Event 3 >>> Simulation truth : proton (0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.987 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1899 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67124 (nsec) --- local (x,y) -0.0186586, -0.0162048 + Layer[1] : time 8.33914 (nsec) --- local (x,y) -0.0298886, -0.0256993 + Layer[2] : time 10.007 (nsec) --- local (x,y) -0.0429072, -0.0379974 + Layer[3] : time 11.6749 (nsec) --- local (x,y) -0.0576793, -0.0506083 + Layer[4] : time 13.3428 (nsec) --- local (x,y) -0.0740093, -0.0605278 +Drift Chamber 2 has 6 hits. + Layer[0] : time 34.8518 (nsec) --- local (x,y) -147.011, -0.173264 + Layer[1] : time 36.5227 (nsec) --- local (x,y) -176.969, -0.184034 + Layer[1] : time 63.2023 (nsec) --- local (x,y) 813.248, 259.961 + Layer[2] : time 38.1936 (nsec) --- local (x,y) -206.926, -0.194495 + Layer[3] : time 39.8645 (nsec) --- local (x,y) -236.883, -0.208852 + Layer[4] : time 41.5354 (nsec) --- local (x,y) -266.842, -0.223375 +EM Calorimeter has 43 hits. Total Edep is 27420.9 (MeV) +Hadron Calorimeter has 16 hits. Total Edep is 1698.14 (MeV) + +>>> Event 4 >>> Simulation truth : proton (0,0,100000) +Hodoscope 1 has 2 hits. + Hodoscope[7] 4.987 (nsec) + Hodoscope[12] 6.05175 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1888 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67124 (nsec) --- local (x,y) -0.0279947, 0.00430328 + Layer[1] : time 8.33914 (nsec) --- local (x,y) -0.0333844, 0.00897025 + Layer[2] : time 10.007 (nsec) --- local (x,y) -0.033978, 0.0186727 + Layer[3] : time 11.6749 (nsec) --- local (x,y) -0.0362366, 0.0267694 + Layer[4] : time 13.3428 (nsec) --- local (x,y) -0.0381344, 0.0356755 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8516 (nsec) --- local (x,y) -144.26, 0.171296 + Layer[1] : time 36.5223 (nsec) --- local (x,y) -173.36, 0.187112 + Layer[2] : time 38.193 (nsec) --- local (x,y) -202.463, 0.202727 + Layer[3] : time 39.8637 (nsec) --- local (x,y) -231.563, 0.225742 + Layer[4] : time 41.5344 (nsec) --- local (x,y) -260.66, 0.250092 +EM Calorimeter has 42 hits. Total Edep is 28843.5 (MeV) +Hadron Calorimeter has 10 hits. Total Edep is 754.937 (MeV) +ERROR: Viewer "none" not found - "/vis/viewer/list" + to see possibilities. + +>>> Event 0 >>> Simulation truth : pi+ (-0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98679 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 42.6999 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.00213559, 0.00938677 + Layer[1] : time 8.33878 (nsec) --- local (x,y) 0.000726051, 0.0159333 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.000985261, 0.0236348 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.00298217, 0.028281 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.00830583, 0.0337523 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.3729 (nsec) --- local (x,y) -77.6682, 0.0388351 + Layer[1] : time 36.0416 (nsec) --- local (x,y) -93.6484, 0.0352023 + Layer[2] : time 37.7102 (nsec) --- local (x,y) -109.63, 0.0275965 + Layer[3] : time 39.3789 (nsec) --- local (x,y) -125.612, 0.0196353 + Layer[4] : time 41.0476 (nsec) --- local (x,y) -141.597, 0.0128364 +EM Calorimeter has 53 hits. Total Edep is 8033.14 (MeV) +Hadron Calorimeter has 14 hits. Total Edep is 1634.81 (MeV) + +>>> Event 1 >>> Simulation truth : pi+ (-0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98679 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 42.6948 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.0073626, 0.0114049 + Layer[1] : time 8.33878 (nsec) --- local (x,y) -0.00437877, 0.0100225 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.00768581, 0.0108032 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.0128368, 0.0100863 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.0174856, 0.0107438 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.3669 (nsec) --- local (x,y) -85.8369, -0.0547955 + Layer[1] : time 36.0358 (nsec) --- local (x,y) -103.393, -0.0751344 + Layer[2] : time 37.7046 (nsec) --- local (x,y) -120.948, -0.0904363 + Layer[3] : time 39.3735 (nsec) --- local (x,y) -138.506, -0.106225 + Layer[4] : time 41.0423 (nsec) --- local (x,y) -156.061, -0.117932 +EM Calorimeter has 13 hits. Total Edep is 336.541 (MeV) +Hadron Calorimeter has 14 hits. Total Edep is 2349.92 (MeV) + +>>> Event 2 >>> Simulation truth : pi+ (-0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98679 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 42.7005 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.00354414, 0.00320671 + Layer[1] : time 8.33878 (nsec) --- local (x,y) 0.00865693, 0.0060552 + Layer[2] : time 10.0066 (nsec) --- local (x,y) 0.0133955, 0.00747384 + Layer[3] : time 11.6744 (nsec) --- local (x,y) 0.0212569, 0.00478439 + Layer[4] : time 13.3422 (nsec) --- local (x,y) 0.0317905, 0.00304047 +Drift Chamber 2 has 7 hits. + Layer[0] : time 34.3734 (nsec) --- local (x,y) -78.0942, -0.126314 + Layer[1] : time 36.0421 (nsec) --- local (x,y) -94.2393, -0.137971 + Layer[1] : time 36.0424 (nsec) --- local (x,y) -94.2418, -0.137972 + Layer[1] : time 36.0424 (nsec) --- local (x,y) -94.2418, -0.137972 + Layer[2] : time 37.7108 (nsec) --- local (x,y) -110.386, -0.150245 + Layer[3] : time 39.3795 (nsec) --- local (x,y) -126.534, -0.162246 + Layer[4] : time 41.0482 (nsec) --- local (x,y) -142.681, -0.173974 +EM Calorimeter has 46 hits. Total Edep is 7288.84 (MeV) +Hadron Calorimeter has 15 hits. Total Edep is 1840.58 (MeV) + +>>> Event 3 >>> Simulation truth : pi+ (0,0,100000) +Hodoscope 1 has 2 hits. + Hodoscope[7] 4.98679 (nsec) + Hodoscope[8] 5.614 (nsec) +Hodoscope 2 has 3 hits. + Hodoscope[10] 42.691 (nsec) + Hodoscope[11] 61.9751 (nsec) + Hodoscope[24] 105.12 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.00150429, 0.00835952 + Layer[1] : time 8.33878 (nsec) --- local (x,y) -0.00113772, 0.00992064 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.000101066, 0.0120991 + Layer[3] : time 11.6744 (nsec) --- local (x,y) 0.000356623, 0.017289 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.000931581, 0.0262916 +Drift Chamber 2 has 16 hits. + Layer[0] : time 34.3634 (nsec) --- local (x,y) -85.8439, 0.152828 + Layer[0] : time 73.6563 (nsec) --- local (x,y) 35.0162, 230.908 + Layer[0] : time 89.205 (nsec) --- local (x,y) 522.025, 166.13 + Layer[1] : time 36.0322 (nsec) --- local (x,y) -102.814, 0.17125 + Layer[1] : time 71.3228 (nsec) --- local (x,y) 9.42706, 219.189 + Layer[1] : time 92.3379 (nsec) --- local (x,y) 653.144, 98.3759 + Layer[2] : time 37.701 (nsec) --- local (x,y) -119.787, 0.19047 + Layer[2] : time 68.9901 (nsec) --- local (x,y) -18.0346, 205.785 + Layer[2] : time 95.5172 (nsec) --- local (x,y) 795.332, 35.2766 + Layer[3] : time 39.3697 (nsec) --- local (x,y) -136.759, 0.207211 + Layer[3] : time 66.6583 (nsec) --- local (x,y) -47.6526, 189.762 + Layer[3] : time 98.7043 (nsec) --- local (x,y) 924.47, -20.3501 + Layer[3] : time 99.0155 (nsec) --- local (x,y) 1052.91, 71.4208 + Layer[4] : time 41.0385 (nsec) --- local (x,y) -153.73, 0.226951 + Layer[4] : time 64.3273 (nsec) --- local (x,y) -79.4537, 174.334 + Layer[4] : time 101.914 (nsec) --- local (x,y) 1045.1, -72.226 +EM Calorimeter has 51 hits. Total Edep is 3046.61 (MeV) +Hadron Calorimeter has 15 hits. Total Edep is 2024.82 (MeV) + +>>> Event 4 >>> Simulation truth : pi+ (0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98679 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 42.6939 (nsec) +Drift Chamber 1 has 7 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.00755233, 0.0295367 + Layer[1] : time 8.33878 (nsec) --- local (x,y) 0.00890071, 0.0671095 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.000484067, 0.100335 + Layer[2] : time 10.2105 (nsec) --- local (x,y) 217.979, 94.5735 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.0152327, 0.133299 + Layer[3] : time 12.1581 (nsec) --- local (x,y) 493.283, 186.038 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.0319592, 0.165214 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.3665 (nsec) --- local (x,y) -83.1343, 0.679379 + Layer[1] : time 36.0352 (nsec) --- local (x,y) -99.7954, 0.72173 + Layer[2] : time 37.704 (nsec) --- local (x,y) -116.457, 0.767079 + Layer[3] : time 39.3727 (nsec) --- local (x,y) -133.12, 0.81319 + Layer[4] : time 41.0415 (nsec) --- local (x,y) -149.784, 0.858664 +EM Calorimeter has 18 hits. Total Edep is 1696.01 (MeV) +Hadron Calorimeter has 12 hits. Total Edep is 2085.29 (MeV) + +>>> Event 0 >>> Simulation truth : e+ (0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1872 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.00983699, -0.0108014 + Layer[1] : time 8.33877 (nsec) --- local (x,y) -0.0190156, -0.0248611 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.0302836, -0.0418629 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.0419996, -0.0588645 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.0496744, -0.0793998 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8501 (nsec) --- local (x,y) -145.404, -0.607626 + Layer[1] : time 36.5208 (nsec) --- local (x,y) -174.825, -0.684302 + Layer[2] : time 38.1915 (nsec) --- local (x,y) -204.245, -0.760124 + Layer[3] : time 39.8622 (nsec) --- local (x,y) -233.665, -0.83377 + Layer[4] : time 41.5329 (nsec) --- local (x,y) -263.085, -0.907272 +EM Calorimeter has 41 hits. Total Edep is 87160.4 (MeV) +Hadron Calorimeter has 8 hits. Total Edep is 54.3567 (MeV) + +>>> Event 1 >>> Simulation truth : e+ (0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 0 hits. +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.00846159, -0.0183371 + Layer[1] : time 8.33877 (nsec) --- local (x,y) 0.00919167, -0.0378618 + Layer[2] : time 10.0066 (nsec) --- local (x,y) 0.00559882, -0.0567743 + Layer[3] : time 11.6744 (nsec) --- local (x,y) 0.000385115, -0.0744379 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.00423467, -0.0932306 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.9661 (nsec) --- local (x,y) -660.81, -0.854265 + Layer[1] : time 36.6912 (nsec) --- local (x,y) -792.915, -0.967648 + Layer[2] : time 38.4162 (nsec) --- local (x,y) -925.019, -1.08156 + Layer[3] : time 40.1413 (nsec) --- local (x,y) -1057.13, -1.19692 + Layer[4] : time 41.8663 (nsec) --- local (x,y) -1189.24, -1.31009 +EM Calorimeter has 0 hits. Total Edep is 0 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 2 >>> Simulation truth : e+ (0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[8] 43.1929 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.0234733, -0.00539337 + Layer[1] : time 8.33877 (nsec) --- local (x,y) 0.0411814, -0.0040836 + Layer[2] : time 10.0066 (nsec) --- local (x,y) 0.0626413, -0.00535993 + Layer[3] : time 11.6744 (nsec) --- local (x,y) 0.0865324, -0.00736847 + Layer[4] : time 13.3422 (nsec) --- local (x,y) 0.114097, -0.00568563 +Drift Chamber 2 has 6 hits. + Layer[0] : time 34.848 (nsec) --- local (x,y) -181.063, 0.0664337 + Layer[1] : time 36.5203 (nsec) --- local (x,y) -217.563, 0.0760048 + Layer[2] : time 38.1925 (nsec) --- local (x,y) -254.063, 0.0866222 + Layer[2] : time 38.3989 (nsec) --- local (x,y) -278.064, 50.9961 + Layer[3] : time 39.8648 (nsec) --- local (x,y) -290.56, 0.0988284 + Layer[4] : time 41.537 (nsec) --- local (x,y) -327.06, 0.110069 +EM Calorimeter has 53 hits. Total Edep is 50811.3 (MeV) +Hadron Calorimeter has 6 hits. Total Edep is 359.128 (MeV) + +>>> Event 3 >>> Simulation truth : e+ (0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 3 hits. + Hodoscope[9] 43.1862 (nsec) + Hodoscope[5] 74.0542 (nsec) + Hodoscope[15] 56.254 (nsec) +Drift Chamber 1 has 6 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.0245422, 0.00843393 + Layer[1] : time 8.33877 (nsec) --- local (x,y) -0.0367933, 0.00993206 + Layer[1] : time 8.52641 (nsec) --- local (x,y) 12.9038, -40.8393 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.0469995, 0.0146477 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.0548801, 0.0198256 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.0593498, 0.024076 +Drift Chamber 2 has 12 hits. + Layer[0] : time 34.8479 (nsec) --- local (x,y) -153.444, 0.0937013 + Layer[0] : time 65.2033 (nsec) --- local (x,y) 1268.95, 133.175 + Layer[0] : time 35.5044 (nsec) --- local (x,y) 372.969, 24.0362 + Layer[1] : time 36.5188 (nsec) --- local (x,y) -184.041, 0.100361 + Layer[1] : time 63.4172 (nsec) --- local (x,y) 1077.5, 130.554 + Layer[1] : time 37.748 (nsec) --- local (x,y) 720.009, 249.362 + Layer[2] : time 38.1897 (nsec) --- local (x,y) -214.639, 0.104923 + Layer[2] : time 61.6323 (nsec) --- local (x,y) 887.093, 132.338 + Layer[3] : time 39.8607 (nsec) --- local (x,y) -245.235, 0.110148 + Layer[3] : time 59.8462 (nsec) --- local (x,y) 695.769, 141.635 + Layer[4] : time 41.5316 (nsec) --- local (x,y) -275.829, 0.113421 + Layer[4] : time 58.0574 (nsec) --- local (x,y) 502.04, 144.986 +EM Calorimeter has 40 hits. Total Edep is 88031.4 (MeV) +Hadron Calorimeter has 6 hits. Total Edep is 37.6711 (MeV) + +>>> Event 4 >>> Simulation truth : e+ (-0,0,100000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1854 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.0106217, 0.0242589 + Layer[1] : time 8.33877 (nsec) --- local (x,y) -0.0174549, 0.0432059 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.0241394, 0.0636367 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.0321156, 0.0846891 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.0417301, 0.103292 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8478 (nsec) --- local (x,y) -150.89, 0.310891 + Layer[1] : time 36.5186 (nsec) --- local (x,y) -180.808, 0.323041 + Layer[2] : time 38.1894 (nsec) --- local (x,y) -210.722, 0.335872 + Layer[3] : time 39.8602 (nsec) --- local (x,y) -240.635, 0.350558 + Layer[4] : time 41.531 (nsec) --- local (x,y) -270.544, 0.363695 +EM Calorimeter has 40 hits. Total Edep is 93034.6 (MeV) +Hadron Calorimeter has 5 hits. Total Edep is 8.40356 (MeV) + +>>> Event 0 >>> Simulation truth : proton (0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.00869 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.3769 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.70025 (nsec) --- local (x,y) 0.38876, 0.00685822 + Layer[1] : time 8.3754 (nsec) --- local (x,y) 0.422403, 0.0607283 + Layer[2] : time 10.0506 (nsec) --- local (x,y) 0.430839, 0.101379 + Layer[3] : time 11.7257 (nsec) --- local (x,y) 0.435832, 0.121545 + Layer[4] : time 13.4008 (nsec) --- local (x,y) 0.314078, 0.0568349 +Drift Chamber 2 has 5 hits. + Layer[0] : time 35.0021 (nsec) --- local (x,y) -150.913, -2.21357 + Layer[1] : time 36.6803 (nsec) --- local (x,y) -181.38, -2.43122 + Layer[2] : time 38.3586 (nsec) --- local (x,y) -211.859, -2.64522 + Layer[3] : time 40.0369 (nsec) --- local (x,y) -242.344, -2.88301 + Layer[4] : time 41.7151 (nsec) --- local (x,y) -272.839, -3.09793 +EM Calorimeter has 4 hits. Total Edep is 193.507 (MeV) +Hadron Calorimeter has 7 hits. Total Edep is 98.7995 (MeV) + +>>> Event 1 >>> Simulation truth : proton (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.00869 (nsec) +Hodoscope 2 has 2 hits. + Hodoscope[9] 43.3766 (nsec) + Hodoscope[19] 79.2186 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.70025 (nsec) --- local (x,y) 0.00693247, -0.296713 + Layer[1] : time 8.3754 (nsec) --- local (x,y) 0.022232, -0.474372 + Layer[2] : time 10.0505 (nsec) --- local (x,y) 0.049293, -0.635446 + Layer[3] : time 11.7257 (nsec) --- local (x,y) 0.0666859, -0.792571 + Layer[4] : time 13.4008 (nsec) --- local (x,y) 0.0706564, -0.931629 +Drift Chamber 2 has 5 hits. + Layer[0] : time 35.0026 (nsec) --- local (x,y) -147.77, -3.4678 + Layer[1] : time 36.6807 (nsec) --- local (x,y) -177.425, -3.70541 + Layer[2] : time 38.3588 (nsec) --- local (x,y) -207.067, -3.9149 + Layer[3] : time 40.0369 (nsec) --- local (x,y) -236.733, -4.11687 + Layer[4] : time 41.715 (nsec) --- local (x,y) -266.422, -4.32507 +EM Calorimeter has 21 hits. Total Edep is 5296.78 (MeV) +Hadron Calorimeter has 4 hits. Total Edep is 25.2373 (MeV) + +>>> Event 2 >>> Simulation truth : proton (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.00869 (nsec) +Hodoscope 2 has 3 hits. + Hodoscope[9] 43.378 (nsec) + Hodoscope[8] 72.7061 (nsec) + Hodoscope[7] 4496.62 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.70025 (nsec) --- local (x,y) 0.252865, 0.0997525 + Layer[1] : time 8.3754 (nsec) --- local (x,y) 0.459513, 0.21739 + Layer[2] : time 10.0506 (nsec) --- local (x,y) 0.656842, 0.353769 + Layer[3] : time 11.7257 (nsec) --- local (x,y) 0.83554, 0.463601 + Layer[4] : time 13.4009 (nsec) --- local (x,y) 1.00207, 0.585316 +Drift Chamber 2 has 5 hits. + Layer[0] : time 35.0037 (nsec) --- local (x,y) -149.039, 1.39031 + Layer[1] : time 36.6818 (nsec) --- local (x,y) -178.976, 1.46652 + Layer[2] : time 38.36 (nsec) --- local (x,y) -208.932, 1.5353 + Layer[3] : time 40.0381 (nsec) --- local (x,y) -238.877, 1.64685 + Layer[4] : time 41.7163 (nsec) --- local (x,y) -268.803, 1.77834 +EM Calorimeter has 18 hits. Total Edep is 1518.23 (MeV) +Hadron Calorimeter has 9 hits. Total Edep is 81.1041 (MeV) + +>>> Event 3 >>> Simulation truth : proton (0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.00869 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.3749 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.70025 (nsec) --- local (x,y) 0.0817781, -0.131417 + Layer[1] : time 8.3754 (nsec) --- local (x,y) 0.106518, -0.239866 + Layer[2] : time 10.0506 (nsec) --- local (x,y) 0.108169, -0.350829 + Layer[3] : time 11.7257 (nsec) --- local (x,y) 0.111154, -0.466381 + Layer[4] : time 13.4008 (nsec) --- local (x,y) 0.111164, -0.545611 +Drift Chamber 2 has 5 hits. + Layer[0] : time 35.0001 (nsec) --- local (x,y) -152.951, -1.43637 + Layer[1] : time 36.6784 (nsec) --- local (x,y) -183.384, -1.50741 + Layer[2] : time 38.3566 (nsec) --- local (x,y) -213.794, -1.5939 + Layer[3] : time 40.0349 (nsec) --- local (x,y) -244.221, -1.70256 + Layer[4] : time 41.7131 (nsec) --- local (x,y) -274.639, -1.80969 +EM Calorimeter has 12 hits. Total Edep is 881.494 (MeV) +Hadron Calorimeter has 9 hits. Total Edep is 165.305 (MeV) + +>>> Event 4 >>> Simulation truth : proton (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.00869 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.3731 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.70025 (nsec) --- local (x,y) -0.107761, -0.123798 + Layer[1] : time 8.3754 (nsec) --- local (x,y) -0.186162, -0.15917 + Layer[2] : time 10.0505 (nsec) --- local (x,y) -0.228787, -0.159731 + Layer[3] : time 11.7257 (nsec) --- local (x,y) -0.255589, -0.169976 + Layer[4] : time 13.4008 (nsec) --- local (x,y) -0.298211, -0.201949 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.9989 (nsec) --- local (x,y) -151.599, -0.138403 + Layer[1] : time 36.677 (nsec) --- local (x,y) -181.471, -0.150832 + Layer[2] : time 38.3551 (nsec) --- local (x,y) -211.333, -0.153049 + Layer[3] : time 40.0333 (nsec) --- local (x,y) -241.142, -0.173305 + Layer[4] : time 41.7114 (nsec) --- local (x,y) -270.954, -0.185518 +EM Calorimeter has 16 hits. Total Edep is 2329.54 (MeV) +Hadron Calorimeter has 5 hits. Total Edep is 106.807 (MeV) +ERROR: Viewer "none" not found - "/vis/viewer/list" + to see possibilities. + +>>> Event 0 >>> Simulation truth : pi+ (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98727 (nsec) +Hodoscope 2 has 2 hits. + Hodoscope[10] 42.6968 (nsec) + Hodoscope[18] 57.2157 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.6716 (nsec) --- local (x,y) 0.11587, -0.0764968 + Layer[1] : time 8.33958 (nsec) --- local (x,y) 0.212923, -0.167159 + Layer[2] : time 10.0076 (nsec) --- local (x,y) 0.323522, -0.270501 + Layer[3] : time 11.6755 (nsec) --- local (x,y) 0.386505, -0.402173 + Layer[4] : time 13.3435 (nsec) --- local (x,y) 0.426387, -0.511929 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.3682 (nsec) --- local (x,y) -87.091, -1.16208 + Layer[1] : time 36.0372 (nsec) --- local (x,y) -104.436, -1.16715 + Layer[2] : time 37.7062 (nsec) --- local (x,y) -121.801, -1.11468 + Layer[3] : time 39.3751 (nsec) --- local (x,y) -139.176, -1.08006 + Layer[4] : time 41.0441 (nsec) --- local (x,y) -156.517, -0.996491 +EM Calorimeter has 15 hits. Total Edep is 766.926 (MeV) +Hadron Calorimeter has 8 hits. Total Edep is 157.847 (MeV) + +>>> Event 1 >>> Simulation truth : pi+ (0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98727 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 42.7007 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.6716 (nsec) --- local (x,y) -0.0700046, 0.0307653 + Layer[1] : time 8.33958 (nsec) --- local (x,y) -0.0932238, 0.103304 + Layer[2] : time 10.0076 (nsec) --- local (x,y) -0.102489, 0.179936 + Layer[3] : time 11.6755 (nsec) --- local (x,y) -0.0946214, 0.249015 + Layer[4] : time 13.3435 (nsec) --- local (x,y) -0.0815681, 0.283822 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.3714 (nsec) --- local (x,y) -88.5105, 0.258776 + Layer[1] : time 36.0405 (nsec) --- local (x,y) -106.988, 0.133955 + Layer[2] : time 37.7097 (nsec) --- local (x,y) -125.452, -0.0105472 + Layer[3] : time 39.3788 (nsec) --- local (x,y) -143.91, -0.179012 + Layer[4] : time 41.0479 (nsec) --- local (x,y) -162.387, -0.330079 +EM Calorimeter has 13 hits. Total Edep is 653.111 (MeV) +Hadron Calorimeter has 9 hits. Total Edep is 120.999 (MeV) + +>>> Event 2 >>> Simulation truth : pi+ (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98727 (nsec) +Hodoscope 2 has 2 hits. + Hodoscope[10] 42.7065 (nsec) + Hodoscope[7] 60.5818 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.6716 (nsec) --- local (x,y) 0.161838, 0.00929655 + Layer[1] : time 8.33958 (nsec) --- local (x,y) 0.298459, 0.0275139 + Layer[2] : time 10.0076 (nsec) --- local (x,y) 0.430334, 0.0690295 + Layer[3] : time 11.6755 (nsec) --- local (x,y) 0.571658, 0.106374 + Layer[4] : time 13.3435 (nsec) --- local (x,y) 0.713463, 0.13144 +Drift Chamber 2 has 6 hits. + Layer[0] : time 34.3771 (nsec) --- local (x,y) -88.7128, 1.09616 + Layer[1] : time 36.0462 (nsec) --- local (x,y) -107.481, 1.1756 + Layer[2] : time 37.7154 (nsec) --- local (x,y) -126.264, 1.24256 + Layer[3] : time 39.3845 (nsec) --- local (x,y) -145.049, 1.33337 + Layer[4] : time 41.0537 (nsec) --- local (x,y) -163.816, 1.43083 + Layer[4] : time 64.1125 (nsec) --- local (x,y) -526.748, 177.855 +EM Calorimeter has 22 hits. Total Edep is 5004.95 (MeV) +Hadron Calorimeter has 5 hits. Total Edep is 5.21569 (MeV) + +>>> Event 3 >>> Simulation truth : pi+ (0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98727 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 42.6889 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.6716 (nsec) --- local (x,y) -0.227225, 0.0520437 + Layer[1] : time 8.33958 (nsec) --- local (x,y) -0.328026, 0.0754658 + Layer[2] : time 10.0076 (nsec) --- local (x,y) -0.454873, 0.0878827 + Layer[3] : time 11.6755 (nsec) --- local (x,y) -0.59083, 0.112526 + Layer[4] : time 13.3435 (nsec) --- local (x,y) -0.755259, 0.103075 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.3612 (nsec) --- local (x,y) -83.0736, 0.878413 + Layer[1] : time 36.03 (nsec) --- local (x,y) -98.8555, 0.953058 + Layer[2] : time 37.6988 (nsec) --- local (x,y) -114.634, 1.04181 + Layer[3] : time 39.3677 (nsec) --- local (x,y) -130.368, 1.13978 + Layer[4] : time 41.0365 (nsec) --- local (x,y) -146.088, 1.24941 +EM Calorimeter has 5 hits. Total Edep is 212.654 (MeV) +Hadron Calorimeter has 10 hits. Total Edep is 222.463 (MeV) + +>>> Event 4 >>> Simulation truth : pi+ (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98727 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 42.7073 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.6716 (nsec) --- local (x,y) 0.275943, 0.0244145 + Layer[1] : time 8.33958 (nsec) --- local (x,y) 0.581491, 0.0496781 + Layer[2] : time 10.0076 (nsec) --- local (x,y) 0.890656, 0.075227 + Layer[3] : time 11.6755 (nsec) --- local (x,y) 1.21461, 0.09251 + Layer[4] : time 13.3435 (nsec) --- local (x,y) 1.51905, 0.0896927 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.3774 (nsec) --- local (x,y) -91.9339, -0.47275 + Layer[1] : time 36.0466 (nsec) --- local (x,y) -111.4, -0.530876 + Layer[2] : time 37.7159 (nsec) --- local (x,y) -130.871, -0.613183 + Layer[3] : time 39.3851 (nsec) --- local (x,y) -150.315, -0.712821 + Layer[4] : time 41.0544 (nsec) --- local (x,y) -169.77, -0.83407 +EM Calorimeter has 24 hits. Total Edep is 2269.53 (MeV) +Hadron Calorimeter has 5 hits. Total Edep is 55.1407 (MeV) + +>>> Event 0 >>> Simulation truth : e+ (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1856 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.00506002, -0.00872161 + Layer[1] : time 8.33877 (nsec) --- local (x,y) -0.0361295, -0.040999 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.0816512, -0.0758978 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.178499, -0.123844 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.283558, -0.181723 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8488 (nsec) --- local (x,y) -144.905, -0.910364 + Layer[1] : time 36.5195 (nsec) --- local (x,y) -173.979, -0.965189 + Layer[2] : time 38.1901 (nsec) --- local (x,y) -203.053, -1.00348 + Layer[3] : time 39.8607 (nsec) --- local (x,y) -232.139, -1.02757 + Layer[4] : time 41.5314 (nsec) --- local (x,y) -261.183, -1.06344 +EM Calorimeter has 17 hits. Total Edep is 9343.58 (MeV) +Hadron Calorimeter has 2 hits. Total Edep is 1.11361 (MeV) + +>>> Event 1 >>> Simulation truth : e+ (0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1813 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.237021, 0.0495911 + Layer[1] : time 8.33877 (nsec) --- local (x,y) -0.441295, 0.182762 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.661408, 0.325233 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.905237, 0.487939 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -1.15959, 0.645957 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8429 (nsec) --- local (x,y) -156.253, 2.6608 + Layer[1] : time 36.5138 (nsec) --- local (x,y) -186.885, 2.83906 + Layer[2] : time 38.1848 (nsec) --- local (x,y) -217.529, 3.01175 + Layer[3] : time 39.8557 (nsec) --- local (x,y) -248.169, 3.19131 + Layer[4] : time 41.5267 (nsec) --- local (x,y) -278.815, 3.37555 +EM Calorimeter has 17 hits. Total Edep is 9305.86 (MeV) +Hadron Calorimeter has 3 hits. Total Edep is 3.8336 (MeV) + +>>> Event 2 >>> Simulation truth : e+ (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1849 (nsec) +Drift Chamber 1 has 6 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.0224413, 0.152924 + Layer[1] : time 8.33877 (nsec) --- local (x,y) -0.000711346, 0.257111 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -0.0573838, 0.37198 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -0.14265, 0.520493 + Layer[3] : time 12.1568 (nsec) --- local (x,y) 213.231, -74.4189 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -0.24038, 0.7243 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8477 (nsec) --- local (x,y) -146.749, 2.59138 + Layer[1] : time 36.5185 (nsec) --- local (x,y) -176.26, 2.77135 + Layer[2] : time 38.1892 (nsec) --- local (x,y) -205.762, 2.95589 + Layer[3] : time 39.8599 (nsec) --- local (x,y) -235.256, 3.1091 + Layer[4] : time 41.5306 (nsec) --- local (x,y) -264.737, 3.26128 +EM Calorimeter has 17 hits. Total Edep is 9660.1 (MeV) +Hadron Calorimeter has 1 hits. Total Edep is 1.0792 (MeV) + +>>> Event 3 >>> Simulation truth : e+ (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[6] 43.2433 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.0978724, -0.0379617 + Layer[1] : time 8.33877 (nsec) --- local (x,y) 0.119607, -0.111074 + Layer[2] : time 10.0066 (nsec) --- local (x,y) 0.127733, -0.159447 + Layer[3] : time 11.6744 (nsec) --- local (x,y) 0.130485, -0.197532 + Layer[4] : time 13.3422 (nsec) --- local (x,y) 0.114, -0.216372 +Drift Chamber 2 has 6 hits. + Layer[0] : time 34.8539 (nsec) --- local (x,y) -316.639, -0.462297 + Layer[1] : time 36.5351 (nsec) --- local (x,y) -380.064, -0.499084 + Layer[2] : time 38.2162 (nsec) --- local (x,y) -443.467, -0.591836 + Layer[3] : time 39.8974 (nsec) --- local (x,y) -506.916, -0.660547 + Layer[4] : time 41.5786 (nsec) --- local (x,y) -570.373, -0.754227 + Layer[4] : time 41.8926 (nsec) --- local (x,y) -596.692, -28.9599 +EM Calorimeter has 17 hits. Total Edep is 8545.12 (MeV) +Hadron Calorimeter has 1 hits. Total Edep is 1.31382 (MeV) + +>>> Event 4 >>> Simulation truth : e+ (-0,0,10000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1864 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.0443549, 0.0299571 + Layer[1] : time 8.33877 (nsec) --- local (x,y) -0.0107072, 0.086371 + Layer[2] : time 10.0066 (nsec) --- local (x,y) 0.0389234, 0.161472 + Layer[3] : time 11.6744 (nsec) --- local (x,y) 0.0624684, 0.258075 + Layer[4] : time 13.3422 (nsec) --- local (x,y) 0.0626028, 0.369172 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.849 (nsec) --- local (x,y) -148.034, 1.83004 + Layer[1] : time 36.5198 (nsec) --- local (x,y) -177.664, 1.93145 + Layer[2] : time 38.1905 (nsec) --- local (x,y) -207.331, 1.97756 + Layer[3] : time 39.8613 (nsec) --- local (x,y) -236.946, 1.96087 + Layer[4] : time 41.532 (nsec) --- local (x,y) -266.589, 1.8913 +EM Calorimeter has 14 hits. Total Edep is 9736.13 (MeV) +Hadron Calorimeter has 1 hits. Total Edep is 1.25343 (MeV) + +>>> Event 0 >>> Simulation truth : proton (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 6.8391 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 59.3772 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 9.15354 (nsec) --- local (x,y) -0.312433, -0.591771 + Layer[1] : time 11.4458 (nsec) --- local (x,y) -0.993903, -2.54914 + Layer[2] : time 13.7383 (nsec) --- local (x,y) -1.60762, -4.47016 + Layer[3] : time 16.031 (nsec) --- local (x,y) -2.14319, -6.44576 + Layer[4] : time 18.324 (nsec) --- local (x,y) -2.49426, -8.47138 +Drift Chamber 2 has 5 hits. + Layer[0] : time 47.8931 (nsec) --- local (x,y) -169.214, -40.8738 + Layer[1] : time 50.194 (nsec) --- local (x,y) -201.281, -42.7732 + Layer[2] : time 52.4951 (nsec) --- local (x,y) -233.36, -44.8014 + Layer[3] : time 54.7964 (nsec) --- local (x,y) -265.22, -47.0272 + Layer[4] : time 57.0979 (nsec) --- local (x,y) -297.116, -49.3626 +EM Calorimeter has 1 hits. Total Edep is 298.988 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 1 >>> Simulation truth : proton (0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 6.83908 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 59.3335 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 9.15298 (nsec) --- local (x,y) -2.06069, 2.20551 + Layer[1] : time 11.4447 (nsec) --- local (x,y) -4.55218, 2.92665 + Layer[2] : time 13.7366 (nsec) --- local (x,y) -6.57236, 3.50143 + Layer[3] : time 16.0289 (nsec) --- local (x,y) -8.21285, 4.04745 + Layer[4] : time 18.3214 (nsec) --- local (x,y) -9.78785, 4.71128 +Drift Chamber 2 has 5 hits. + Layer[0] : time 47.8543 (nsec) --- local (x,y) -166.198, -6.6937 + Layer[1] : time 50.1543 (nsec) --- local (x,y) -194.738, -7.84614 + Layer[2] : time 52.4544 (nsec) --- local (x,y) -223.199, -8.85582 + Layer[3] : time 54.7546 (nsec) --- local (x,y) -251.146, -10.0181 + Layer[4] : time 57.0552 (nsec) --- local (x,y) -279.33, -11.1267 +EM Calorimeter has 12 hits. Total Edep is 167.784 (MeV) +Hadron Calorimeter has 3 hits. Total Edep is 3.04755 (MeV) + +>>> Event 2 >>> Simulation truth : proton (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 6.83902 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 59.4258 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 9.15429 (nsec) --- local (x,y) -0.805816, -1.07363 + Layer[1] : time 11.4474 (nsec) --- local (x,y) -0.360807, -2.06694 + Layer[2] : time 13.7408 (nsec) --- local (x,y) 0.344351, -2.9761 + Layer[3] : time 16.0343 (nsec) --- local (x,y) 1.08529, -4.54125 + Layer[4] : time 18.3281 (nsec) --- local (x,y) 1.83159, -6.0809 +Drift Chamber 2 has 5 hits. + Layer[0] : time 47.9347 (nsec) --- local (x,y) -162.351, -23.7128 + Layer[1] : time 50.237 (nsec) --- local (x,y) -194.851, -25.4314 + Layer[2] : time 52.5396 (nsec) --- local (x,y) -227.205, -27.0157 + Layer[3] : time 54.8423 (nsec) --- local (x,y) -259.418, -28.4075 + Layer[4] : time 57.1452 (nsec) --- local (x,y) -291.494, -29.214 +EM Calorimeter has 11 hits. Total Edep is 236.38 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 3 >>> Simulation truth : proton (0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 6.83898 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 59.4023 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 9.15326 (nsec) --- local (x,y) 0.479925, -0.0843187 + Layer[1] : time 11.4453 (nsec) --- local (x,y) 0.611134, 0.684549 + Layer[2] : time 13.7376 (nsec) --- local (x,y) 0.434112, 1.47315 + Layer[3] : time 16.0303 (nsec) --- local (x,y) 0.579054, 2.04578 + Layer[4] : time 18.3232 (nsec) --- local (x,y) 1.13205, 2.4378 +Drift Chamber 2 has 5 hits. + Layer[0] : time 47.9188 (nsec) --- local (x,y) -153.296, 4.42086 + Layer[1] : time 50.2195 (nsec) --- local (x,y) -184.416, 4.66437 + Layer[2] : time 52.5205 (nsec) --- local (x,y) -215.56, 4.88272 + Layer[3] : time 54.8217 (nsec) --- local (x,y) -247.122, 5.29408 + Layer[4] : time 57.1232 (nsec) --- local (x,y) -278.471, 5.89565 +EM Calorimeter has 2 hits. Total Edep is 301.626 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 4 >>> Simulation truth : proton (0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 6.83907 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 59.3625 (nsec) +Drift Chamber 1 has 7 hits. + Layer[0] : time 9.15354 (nsec) --- local (x,y) -1.40123, 7.09384 + Layer[1] : time 11.4459 (nsec) --- local (x,y) -2.95013, 14.9836 + Layer[2] : time 13.7385 (nsec) --- local (x,y) -4.41804, 23.1335 + Layer[2] : time 13.7388 (nsec) --- local (x,y) -4.41829, 23.1349 + Layer[2] : time 13.7388 (nsec) --- local (x,y) -4.41829, 23.1349 + Layer[3] : time 16.0314 (nsec) --- local (x,y) -6.08649, 31.5495 + Layer[4] : time 18.3245 (nsec) --- local (x,y) -7.51036, 39.9819 +Drift Chamber 2 has 5 hits. + Layer[0] : time 47.8726 (nsec) --- local (x,y) -169.842, 138.909 + Layer[1] : time 50.1742 (nsec) --- local (x,y) -199.879, 146.318 + Layer[2] : time 52.4763 (nsec) --- local (x,y) -230.615, 153.816 + Layer[3] : time 54.7789 (nsec) --- local (x,y) -261.905, 161.628 + Layer[4] : time 57.0818 (nsec) --- local (x,y) -293.692, 169.4 +EM Calorimeter has 1 hits. Total Edep is 293.43 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) +ERROR: Viewer "none" not found - "/vis/viewer/list" + to see possibilities. + +>>> Event 0 >>> Simulation truth : pi+ (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.03513 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 43.1378 (nsec) +Drift Chamber 1 has 6 hits. + Layer[0] : time 6.73571 (nsec) --- local (x,y) 0.0374575, -0.593632 + Layer[0] : time 8.1334 (nsec) --- local (x,y) -428.278, -142.428 + Layer[1] : time 8.4198 (nsec) --- local (x,y) 0.339937, -1.23732 + Layer[2] : time 10.1039 (nsec) --- local (x,y) 0.468233, -2.13373 + Layer[3] : time 11.788 (nsec) --- local (x,y) 0.648519, -2.55827 + Layer[4] : time 13.4721 (nsec) --- local (x,y) 1.14495, -3.06105 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.7221 (nsec) --- local (x,y) -88.9274, -1.63551 + Layer[1] : time 36.4076 (nsec) --- local (x,y) -108.886, -1.03814 + Layer[2] : time 38.093 (nsec) --- local (x,y) -128.72, -0.439937 + Layer[3] : time 39.7788 (nsec) --- local (x,y) -149.574, 1.90504 + Layer[4] : time 41.4666 (nsec) --- local (x,y) -176.545, 20.5549 +EM Calorimeter has 2 hits. Total Edep is 328.965 (MeV) +Hadron Calorimeter has 1 hits. Total Edep is 7.79466 (MeV) + +>>> Event 1 >>> Simulation truth : pi+ (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.03513 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 43.1188 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.7357 (nsec) --- local (x,y) -0.476845, 1.99946 + Layer[1] : time 8.41977 (nsec) --- local (x,y) -0.396315, 2.7191 + Layer[2] : time 10.1038 (nsec) --- local (x,y) -0.260115, 3.3547 + Layer[3] : time 11.7879 (nsec) --- local (x,y) -0.0996155, 3.76722 + Layer[4] : time 13.472 (nsec) --- local (x,y) 0.126415, 4.15342 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.7096 (nsec) --- local (x,y) -84.8161, 17.7931 + Layer[1] : time 36.3947 (nsec) --- local (x,y) -102.126, 19.8781 + Layer[2] : time 38.0799 (nsec) --- local (x,y) -119.379, 21.7163 + Layer[3] : time 39.765 (nsec) --- local (x,y) -136.635, 23.9517 + Layer[4] : time 41.4502 (nsec) --- local (x,y) -153.98, 26.2104 +EM Calorimeter has 5 hits. Total Edep is 183.302 (MeV) +Hadron Calorimeter has 3 hits. Total Edep is 57.1107 (MeV) + +>>> Event 2 >>> Simulation truth : pi+ (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.03513 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 43.0906 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.73571 (nsec) --- local (x,y) -0.614203, 2.26 + Layer[1] : time 8.41979 (nsec) --- local (x,y) -1.25395, 4.06717 + Layer[2] : time 10.1039 (nsec) --- local (x,y) -1.88217, 5.43729 + Layer[3] : time 11.788 (nsec) --- local (x,y) -2.29001, 6.88742 + Layer[4] : time 13.472 (nsec) --- local (x,y) -2.77456, 8.3217 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.6811 (nsec) --- local (x,y) -92.8173, 21.1461 + Layer[1] : time 36.3662 (nsec) --- local (x,y) -110.37, 22.9006 + Layer[2] : time 38.0514 (nsec) --- local (x,y) -128.119, 24.7007 + Layer[3] : time 39.7367 (nsec) --- local (x,y) -145.994, 26.533 + Layer[4] : time 41.4219 (nsec) --- local (x,y) -163.808, 28.2991 +EM Calorimeter has 1 hits. Total Edep is 190.958 (MeV) +Hadron Calorimeter has 2 hits. Total Edep is 19.6158 (MeV) + +>>> Event 3 >>> Simulation truth : pi+ (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.03524 (nsec) +Hodoscope 2 has 0 hits. +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.73585 (nsec) --- local (x,y) 10.3234, 2.3217 + Layer[1] : time 8.41995 (nsec) --- local (x,y) 13.2198, 2.77667 + Layer[2] : time 10.1041 (nsec) --- local (x,y) 16.3843, 3.36244 + Layer[3] : time 11.7872 (nsec) --- local (x,y) 30.1831, 6.6348 + Layer[4] : time 13.4697 (nsec) --- local (x,y) 50.3296, 11.4145 +Drift Chamber 2 has 5 hits. + Layer[0] : time 35.3388 (nsec) --- local (x,y) -550.109, 77.8995 + Layer[1] : time 37.0963 (nsec) --- local (x,y) -702.342, 83.9612 + Layer[2] : time 38.8537 (nsec) --- local (x,y) -854.447, 89.9186 + Layer[3] : time 40.6118 (nsec) --- local (x,y) -1007.32, 95.7834 + Layer[4] : time 42.37 (nsec) --- local (x,y) -1160.29, 101.425 +EM Calorimeter has 0 hits. Total Edep is 0 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 4 >>> Simulation truth : pi+ (0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 5.03513 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[10] 43.0505 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.7357 (nsec) --- local (x,y) -1.5786, 0.82356 + Layer[1] : time 8.41976 (nsec) --- local (x,y) -3.02323, 1.29417 + Layer[2] : time 10.1038 (nsec) --- local (x,y) -4.41496, 1.49559 + Layer[3] : time 11.7879 (nsec) --- local (x,y) -5.46562, 1.60174 + Layer[4] : time 13.472 (nsec) --- local (x,y) -6.6173, 1.73225 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.6431 (nsec) --- local (x,y) -89.7911, -0.384013 + Layer[1] : time 36.3279 (nsec) --- local (x,y) -104.168, -0.674683 + Layer[2] : time 38.0127 (nsec) --- local (x,y) -118.627, -1.28808 + Layer[3] : time 39.6975 (nsec) --- local (x,y) -132.603, -1.95393 + Layer[4] : time 41.3822 (nsec) --- local (x,y) -146.314, -2.70593 +EM Calorimeter has 8 hits. Total Edep is 260.662 (MeV) +Hadron Calorimeter has 1 hits. Total Edep is 12.7811 (MeV) + +>>> Event 0 >>> Simulation truth : e+ (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[8] 43.1855 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.232192, -0.761486 + Layer[1] : time 8.33877 (nsec) --- local (x,y) -0.769888, -1.00016 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -1.06197, -1.51915 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -1.3201, -2.12218 + Layer[4] : time 13.3422 (nsec) --- local (x,y) -1.71204, -2.7366 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.835 (nsec) --- local (x,y) -213.61, -11.8138 + Layer[1] : time 36.5085 (nsec) --- local (x,y) -254.797, -12.4084 + Layer[2] : time 38.1819 (nsec) --- local (x,y) -295.716, -13.003 + Layer[3] : time 39.8552 (nsec) --- local (x,y) -336.419, -13.455 + Layer[4] : time 41.5285 (nsec) --- local (x,y) -377.003, -14.0143 +EM Calorimeter has 12 hits. Total Edep is 943.692 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 1 >>> Simulation truth : e+ (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98679 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.2466 (nsec) +Drift Chamber 1 has 6 hits. + Layer[0] : time 6.67096 (nsec) --- local (x,y) 1.26028, 2.47781 + Layer[1] : time 8.3388 (nsec) --- local (x,y) 2.82395, 3.91484 + Layer[2] : time 10.0066 (nsec) --- local (x,y) 4.31095, 5.45 + Layer[2] : time 10.3676 (nsec) --- local (x,y) -101.513, -89.4514 + Layer[3] : time 11.6745 (nsec) --- local (x,y) 5.94128, 7.10532 + Layer[4] : time 13.3423 (nsec) --- local (x,y) 9.10826, 8.90816 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.9095 (nsec) --- local (x,y) -106.193, 27.1874 + Layer[1] : time 36.5801 (nsec) --- local (x,y) -135.469, 28.3622 + Layer[2] : time 38.2509 (nsec) --- local (x,y) -164.86, 29.4201 + Layer[3] : time 39.9216 (nsec) --- local (x,y) -194.498, 30.9543 + Layer[4] : time 41.5923 (nsec) --- local (x,y) -223.885, 32.5986 +EM Calorimeter has 8 hits. Total Edep is 972.515 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 2 >>> Simulation truth : e+ (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98679 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.2928 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67102 (nsec) --- local (x,y) 4.14302, 0.426292 + Layer[1] : time 8.33891 (nsec) --- local (x,y) 8.64723, -0.101217 + Layer[2] : time 10.0068 (nsec) --- local (x,y) 13.1063, -0.640861 + Layer[3] : time 11.6747 (nsec) --- local (x,y) 17.5858, -0.933049 + Layer[4] : time 13.3426 (nsec) --- local (x,y) 21.8209, -1.65746 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.9491 (nsec) --- local (x,y) -115.979, -15.0525 + Layer[1] : time 36.6211 (nsec) --- local (x,y) -151.214, -16.7815 + Layer[2] : time 38.2931 (nsec) --- local (x,y) -186.665, -18.5195 + Layer[3] : time 39.9652 (nsec) --- local (x,y) -222.261, -20.3191 + Layer[4] : time 41.6372 (nsec) --- local (x,y) -257.728, -22.0957 +EM Calorimeter has 6 hits. Total Edep is 941.599 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 3 >>> Simulation truth : e+ (0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98678 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1981 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) 0.48898, 1.53603 + Layer[1] : time 8.33878 (nsec) --- local (x,y) 0.786073, 2.56838 + Layer[2] : time 10.0066 (nsec) --- local (x,y) 1.10872, 3.56309 + Layer[3] : time 11.6744 (nsec) --- local (x,y) 1.2264, 4.57206 + Layer[4] : time 13.3423 (nsec) --- local (x,y) 1.36354, 5.80323 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8613 (nsec) --- local (x,y) -138.354, 11.9488 + Layer[1] : time 36.5319 (nsec) --- local (x,y) -167.361, 11.5228 + Layer[2] : time 38.2026 (nsec) --- local (x,y) -196.451, 11.3305 + Layer[3] : time 39.8732 (nsec) --- local (x,y) -225.519, 10.7387 + Layer[4] : time 41.5439 (nsec) --- local (x,y) -254.664, 9.93764 +EM Calorimeter has 8 hits. Total Edep is 973.281 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) + +>>> Event 4 >>> Simulation truth : e+ (-0,0,1000) +Hodoscope 1 has 1 hits. + Hodoscope[7] 4.98679 (nsec) +Hodoscope 2 has 1 hits. + Hodoscope[9] 43.1791 (nsec) +Drift Chamber 1 has 5 hits. + Layer[0] : time 6.67095 (nsec) --- local (x,y) -0.632268, -1.26558 + Layer[1] : time 8.33878 (nsec) --- local (x,y) -1.34711, -1.866 + Layer[2] : time 10.0066 (nsec) --- local (x,y) -2.01577, -2.70192 + Layer[3] : time 11.6744 (nsec) --- local (x,y) -2.66655, -3.69778 + Layer[4] : time 13.3423 (nsec) --- local (x,y) -3.52692, -4.7265 +Drift Chamber 2 has 5 hits. + Layer[0] : time 34.8416 (nsec) --- local (x,y) -152.653, -6.3755 + Layer[1] : time 36.5124 (nsec) --- local (x,y) -182.657, -6.46141 + Layer[2] : time 38.1832 (nsec) --- local (x,y) -212.502, -6.56494 + Layer[3] : time 39.854 (nsec) --- local (x,y) -242.652, -6.43089 + Layer[4] : time 41.5248 (nsec) --- local (x,y) -272.512, -6.30502 +EM Calorimeter has 9 hits. Total Edep is 981.389 (MeV) +Hadron Calorimeter has 0 hits. Total Edep is 0 (MeV) +Graphics systems deleted. +Visualization Manager deleting... diff --git a/examples/extended/analysis/A01/vis.mac b/examples/extended/analysis/A01/vis.mac new file mode 100644 index 0000000000..d99cfb00f7 --- /dev/null +++ b/examples/extended/analysis/A01/vis.mac @@ -0,0 +1,52 @@ +# +# Macro file for A01app +# +# Create a scene handler and viewer for HepRep +# +/vis/open HepRepFile +#/vis/open DAWNFILE +# +# Create a new empty scene +# +/vis/scene/create +# +# Declare that the world volume should be added to the scene +# +/vis/scene/add/volume +# +# Attach scene to scenehandler +# +/vis/sceneHandler/attach +# +# Draw a picture that has just the detector (no trajectories or hits). +# +/vis/viewer/flush +# +# Declare that trajectories and hits should be added to the scene +# +/vis/scene/add/trajectories +/vis/scene/add/hits +# +# Store particle trajactories for visualisation +# +/tracking/storeTrajectory 1 +# +# Execute the visualization via the /vis/viewer/flush that comes +# automatically at the end of each /run. +# +/mydet/armAngle 60. deg +/mydet/fieldValue 2. tesla +/run/beamOn 1 +# +/mydet/armAngle 30. deg +/mydet/momentum 2. GeV +/mydet/sigmaMomentum 0. +/mydet/sigmaAngle 0. +/run/beamOn 1 +# +# This time, set visualization to accumulate many events into one picture +# +/vis/scene/endOfEventAction accumulate +/mydet/sigmaAngle 2. deg +/run/beamOn 4 +# diff --git a/examples/extended/analysis/AnaEx01/AnaEx01.cc b/examples/extended/analysis/AnaEx01/AnaEx01.cc index 10fcac07b4..a81a954a09 100644 --- a/examples/extended/analysis/AnaEx01/AnaEx01.cc +++ b/examples/extended/analysis/AnaEx01/AnaEx01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01.cc,v 1.8 2001/11/16 14:35:10 barrand Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: AnaEx01.cc,v 1.9 2003/12/03 10:33:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -53,7 +53,7 @@ #include "AnaEx01SteppingAction.hh" #include "AnaEx01SteppingVerbose.hh" -int main(int argc,char** argv) { +int main(int,char**) { // choose the Random engine HepRandom::setTheEngine(new RanecuEngine); diff --git a/examples/extended/analysis/AnaEx01/GNUmakefile b/examples/extended/analysis/AnaEx01/GNUmakefile index 26967e7579..6e041f80d2 100644 --- a/examples/extended/analysis/AnaEx01/GNUmakefile +++ b/examples/extended/analysis/AnaEx01/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $ +# $Id: GNUmakefile,v 1.2 2003/12/03 10:34:02 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -15,3 +15,10 @@ endif all: lib bin include $(G4INSTALL)/config/binmake.gmk + +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` + LOADLIBS += `aida-config --lib` +endif + diff --git a/examples/extended/analysis/AnaEx01/History b/examples/extended/analysis/AnaEx01/History index c74c048a36..6c34d9e5c6 100644 --- a/examples/extended/analysis/AnaEx01/History +++ b/examples/extended/analysis/AnaEx01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.7 2003/06/20 15:02:41 gbarrand Exp $ +$Id: History,v 1.8 2003/12/03 10:34:02 gcosmo Exp $ -------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +3rd December 2003 Gabriele Cosmo (AnaEx01-V05-02-01) +- Fixed minor compilation warnings and added 'aida-config' in + GNUmakefile, activated through G4ANALYSIS_USE. + +17th October 2003 Guy Barrand +- AnaEx01VisManager: removed OPACS driver. + 20th June 2003 Guy Barrand (AnaEx01-V05-02-00) - * : AIDA-3.0 compliant. Usage of AIDA namespace, etc... diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh index b076a01ca1..b09722cecc 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01AnalysisManager.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01AnalysisManager.hh,v 1.6 2003/06/20 14:55:44 gbarrand Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorHit.hh index ac13d6d257..337ec01f65 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01CalorimeterSD.hh index a4b9df76b8..3df7ca7adc 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorConstruction.hh index 65ae9b465f..401b12f672 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01DetectorMessenger.hh index 9db4bb0847..13e93f8dfe 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01EventAction.hh index 990b4fecd6..bce2fb3711 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PhysicsList.hh index 296c816497..bcdd0e7edb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorAction.hh index d3a3916b48..f023ed5ee4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01PrimaryGeneratorMessenger.hh index f832be6107..ce43fd0470 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01RunAction.hh index 1bd9f1e78b..3b7f84c00d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingAction.hh index 60aad3eb1a..127d799d8d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01SteppingVerbose.hh index 67bf94c70b..b65eaa4e49 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh b/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh index db4e9efd9c..a6d58c1e5f 100644 --- a/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh +++ b/examples/extended/analysis/AnaEx01/include/AnaEx01VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: AnaEx01VisManager.hh,v 1.3 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc index fe8e1cb785..4c4c1b61c0 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01AnalysisManager.cc @@ -22,7 +22,7 @@ // // // $Id: AnaEx01AnalysisManager.cc,v 1.12 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Guy Barrand 14th Septembre 2000. diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc index 75234269cf..df4185879d 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01CalorHit.cc,v 1.4 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: AnaEx01CalorHit.cc,v 1.5 2003/12/03 10:33:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -49,6 +49,7 @@ AnaEx01CalorHit::~AnaEx01CalorHit() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... AnaEx01CalorHit::AnaEx01CalorHit(const AnaEx01CalorHit& right) + : G4VHit(right) { EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; @@ -67,7 +68,7 @@ const AnaEx01CalorHit& AnaEx01CalorHit::operator=(const AnaEx01CalorHit& right) int AnaEx01CalorHit::operator==(const AnaEx01CalorHit& right) const { - return 0; + return (this==&right) ? 1 : 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc index bff7ffb021..8794c2a55e 100644 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01CalorimeterSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01CalorimeterSD.cc,v 1.3 2001/11/16 14:31:12 barrand Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: AnaEx01CalorimeterSD.cc,v 1.4 2003/12/03 10:33:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -61,7 +61,7 @@ AnaEx01CalorimeterSD::~AnaEx01CalorimeterSD() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void AnaEx01CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +void AnaEx01CalorimeterSD::Initialize(G4HCofThisEvent*) { CalCollection = new AnaEx01CalorHitsCollection (SensitiveDetectorName,collectionName[0]); @@ -70,7 +70,7 @@ void AnaEx01CalorimeterSD::Initialize(G4HCofThisEvent*HCE) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool AnaEx01CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +G4bool AnaEx01CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorConstruction.cc index 6fc9e2286a..c057bd3622 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01DetectorMessenger.cc index 001fe0ce44..889398969f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01EventAction.cc index acda018192..00ac7a64b7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PhysicsList.cc index 7aeb21973f..663fd75ef8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorAction.cc index 3e7b741553..8d148be562 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01PrimaryGeneratorMessenger.cc index 357b4ca493..9cb292f024 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01RunAction.cc index 7c027b7575..027b30e752 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingAction.cc index c1f1fb8e4c..a8c5e52f24 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01SteppingVerbose.cc index c794f871ec..64db323534 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc b/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc index 7c432be28c..72873d4a17 100755 --- a/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc +++ b/examples/extended/analysis/AnaEx01/src/AnaEx01VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: AnaEx01VisManager.cc,v 1.6 2003/06/20 14:55:45 gbarrand Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: AnaEx01VisManager.cc,v 1.7 2003/10/17 10:19:57 gbarrand Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void AnaEx01VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/biasing/B01/exampleB01.cc b/examples/extended/biasing/B01/exampleB01.cc index 044db27cf7..0dbb295699 100644 --- a/examples/extended/biasing/B01/exampleB01.cc +++ b/examples/extended/biasing/B01/exampleB01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleB01.cc,v 1.17 2003/06/16 16:47:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: exampleB01.cc,v 1.19 2003/08/25 12:32:29 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -59,6 +59,8 @@ #include "G4Scorer.hh" #include "G4MassGeometrySampler.hh" #include "G4IStore.hh" +#include "G4VWeightWindowStore.hh" +#include "G4WeightWindowAlgorithm.hh" // a score table #include "G4ScoreTable.hh" @@ -66,6 +68,12 @@ int main(int argc, char **argv) { + + G4int mode = 0; + if (argc>1) { + mode = atoi(argv[1]); + } + std::ostream *myout = &G4cout; G4int numberOfEvent = 100; @@ -83,24 +91,60 @@ int main(int argc, char **argv) runManager->SetUserAction(new B01PrimaryGeneratorAction); runManager->Initialize(); - // the IStore is filled during detector construction - G4IStore &aIstore = *detector->GetIStore(); + // pointers for importance store, weight window sotre + // and weight window algorithm + G4VIStore *aIstore = 0; + G4VWeightWindowStore *aWWstore = 0; + G4VWeightWindowAlgorithm *wwAlg = 0; - // create the importance and scoring sampler for biasing and scoring - // in the tracking world + // use a scorer G4Scorer scorer; + // create sampler for biasing and scoring + // in the mass geometry + G4MassGeometrySampler mgs("neutron"); mgs.PrepareScoring(&scorer); - mgs.PrepareImportanceSampling(&aIstore, 0); + + if (mode == 0) { + // prepare for importance sampling + aIstore = detector->CreateImportanceStore(); + mgs.PrepareImportanceSampling(aIstore, 0); + } + else { + // prepare for weight window technique + // in this case the algoritm is initialized such that + // the weight window tehcnique does exactly the same as + // the importance sampling technique, therefore + // the place of action ( the locations where + // splitting and Russian roulette are to be applied) + // is chosen to be on the boundary between cells. + aWWstore = detector->CreateWeightWindowStore(); + + wwAlg = new G4WeightWindowAlgorithm(1, // upper limit factor + 1, // survival factor + 100); // max. number of splitting + + mgs.PrepareWeightWindow(aWWstore, wwAlg, + onBoundary); // place of action + } mgs.Configure(); runManager->BeamOn(numberOfEvent); // print a table of the scores - G4ScoreTable sp(&aIstore); + G4ScoreTable sp(aIstore); sp.Print(scorer.GetMapGeometryCellCellScorer(), myout); - + + if (aIstore) { + delete aIstore; + } + if (aWWstore) { + delete aWWstore; + } + if (wwAlg) { + delete wwAlg; + } return 0; } diff --git a/examples/extended/biasing/B01/exampleB01.out b/examples/extended/biasing/B01/exampleB01.out new file mode 100644 index 0000000000..cf5df8f1e3 --- /dev/null +++ b/examples/extended/biasing/B01/exampleB01.out @@ -0,0 +1,280 @@ +********************************************** + Geant4 version $Name: geant4-06-00 $ + (3-October-2003) + Copyright : Geant4 Collaboration +********************************************** + +phot: Total cross sections from Sandia parametrisation. +B01PhysicsList::SetCuts:CutLength : 1 (mm) +Going to assign importance: 1, to volume: cell_01 +Going to assign importance: 2, to volume: cell_02 +Going to assign importance: 4, to volume: cell_03 +Going to assign importance: 8, to volume: cell_04 +Going to assign importance: 16, to volume: cell_05 +Going to assign importance: 32, to volume: cell_06 +Going to assign importance: 64, to volume: cell_07 +Going to assign importance: 128, to volume: cell_08 +Going to assign importance: 256, to volume: cell_09 +Going to assign importance: 512, to volume: cell_10 +Going to assign importance: 1024, to volume: cell_11 +Going to assign importance: 2048, to volume: cell_12 +Going to assign importance: 4096, to volume: cell_13 +Going to assign importance: 8192, to volume: cell_14 +Going to assign importance: 16384, to volume: cell_15 +Going to assign importance: 32768, to volume: cell_16 +Going to assign importance: 65536, to volume: cell_17 +Going to assign importance: 131072, to volume: cell_18 +=== G4ProcessPlacer::AddProcessAsSecondDoIt: for: neutron + ProcessName: MScoreProcess +The initial Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + Transportation +DoIt Vector: + Transportation + LElastic + inelastic + LFission + LCapture + Decay +The final Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + MScoreProcess + Transportation +DoIt Vector: + Transportation + MScoreProcess + LElastic + inelastic + LFission + LCapture + Decay +================================================ +=== G4ProcessPlacer::AddProcessAsSecondDoIt: for: neutron + ProcessName: MassImportanceProcess +The initial Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + MScoreProcess + Transportation +DoIt Vector: + Transportation + MScoreProcess + LElastic + inelastic + LFission + LCapture + Decay +The final Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + MScoreProcess + MassImportanceProcess + Transportation +DoIt Vector: + Transportation + MassImportanceProcess + MScoreProcess + LElastic + inelastic + LFission + LCapture + Decay +================================================ + +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 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. + +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). + gamma energies sampled according Heitler + PhysicsTables from 10 keV to 10 TeV in 100 bins. + +msc: 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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 +Volume name | Importance| Tr.Entering| Population| Collisions| Coll*WGT| NumWGTedE| FluxWGTedE| Av.Tr.WGT| +cell_01_rep:0............ | 1 | 114 | 134 | 110 | 110 | 7.40303 | 9.22688 | 1 | +cell_02_rep:0............ | 2 | 81 | 171 | 201 | 100.5 | 6.01133 | 8.47808 | 1 | +cell_03_rep:0............ | 4 | 112 | 230 | 254 | 63.5 | 5.71079 | 8.28133 | 1 | +cell_04_rep:0............ | 8 | 145 | 293 | 386 | 48.25 | 4.61676 | 7.73542 | 1 | +cell_05_rep:0............ | 16 | 147 | 323 | 444 | 27.75 | 3.61001 | 7.51528 | 1 | +cell_06_rep:0............ | 32 | 170 | 350 | 460 | 14.375 | 0.171091 | 7.41748 | 1 | +cell_07_rep:0............ | 64 | 189 | 420 | 575 | 8.98438 | 0.0460408 | 7.47914 | 1 | +cell_08_rep:0............ | 128 | 224 | 476 | 705 | 5.50781 | 2.69504 | 6.8239 | 1 | +cell_09_rep:0............ | 256 | 229 | 496 | 820 | 3.20312 | 0.366871 | 6.32006 | 1 | +cell_10_rep:0............ | 512 | 275 | 539 | 893 | 1.74414 | 2.05898 | 6.19657 | 1 | +cell_11_rep:0............ | 1024 | 317 | 665 | 1146 | 1.11914 | 0.218009 | 5.85921 | 1 | +cell_12_rep:0............ | 2048 | 322 | 668 | 1220 | 0.595703 | 0.124351 | 5.69458 | 1 | +cell_13_rep:0............ | 4096 | 354 | 711 | 1467 | 0.358154 | 1.50433 | 4.97726 | 1 | +cell_14_rep:0............ | 8192 | 377 | 785 | 1627 | 0.198608 | 1.40615 | 4.74936 | 1 | +cell_15_rep:0............ | 16384 | 420 | 833 | 1728 | 0.105469 | 1.62041 | 4.7153 | 1 | +cell_16_rep:0............ | 32768 | 379 | 756 | 1486 | 0.0453491 | 2.53735 | 5.00551 | 1 | +cell_17_rep:0............ | 65536 | 406 | 844 | 1579 | 0.0240936 | 0.0346509 | 4.73638 | 1 | +cell_18_rep:0............ | 131072 | 367 | 856 | 1694 | 0.0129242 | 2.43149 | 4.63503 | 1 | +rest_rep:0............... | 131072 | 391 | 391 | 0 | 0 | 0 | 0 | 0 | +shieldWorld_rep:0........ | 1 | 9 | 109 | 0 | 0 | 10 | 10 | 1 | +=== G4ProcessPlacer::RemoveProcess: for: neutron + ProcessName: MassImportanceProcess, will be removed! + The initial Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + MScoreProcess + MassImportanceProcess + Transportation +DoIt Vector: + Transportation + MassImportanceProcess + MScoreProcess + LElastic + inelastic + LFission + LCapture + Decay + The final Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + MScoreProcess + Transportation +DoIt Vector: + Transportation + MScoreProcess + LElastic + inelastic + LFission + LCapture + Decay +================================================ +=== G4ProcessPlacer::RemoveProcess: for: neutron + ProcessName: MScoreProcess, will be removed! + The initial Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + MScoreProcess + Transportation +DoIt Vector: + Transportation + MScoreProcess + LElastic + inelastic + LFission + LCapture + Decay + The final Vectors: +GPIL Vector: + Decay + LCapture + LFission + inelastic + LElastic + Transportation +DoIt Vector: + Transportation + LElastic + inelastic + LFission + LCapture + Decay +================================================ +WARNING - Attempt to delete the physical volume store while geometry closed ! +WARNING - Attempt to delete the logical volume store while geometry closed ! +WARNING - Attempt to delete the solid store while geometry closed ! +WARNING - Attempt to delete the region store while geometry closed ! diff --git a/examples/extended/biasing/B01/include/B01DetectorConstruction.hh b/examples/extended/biasing/B01/include/B01DetectorConstruction.hh index b1b33023f0..381f570f39 100644 --- a/examples/extended/biasing/B01/include/B01DetectorConstruction.hh +++ b/examples/extended/biasing/B01/include/B01DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B01DetectorConstruction.hh,v 1.5 2002/11/07 13:47:59 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: B01DetectorConstruction.hh,v 1.6 2003/08/25 12:32:29 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef B01DetectorConstruction_hh @@ -30,9 +30,10 @@ #include "globals.hh" #include "G4VUserDetectorConstruction.hh" - +#include class G4VPhysicalVolume; -class G4IStore; +class G4VIStore; +class G4VWeightWindowStore; class B01DetectorConstruction : public G4VUserDetectorConstruction { @@ -41,13 +42,18 @@ public: ~B01DetectorConstruction(); G4VPhysicalVolume* Construct(); - G4IStore* GetIStore(); - + + G4VIStore* CreateImportanceStore(); + // create an importance store, caller is responsible for deleting it + + G4VWeightWindowStore *CreateWeightWindowStore(); + // create an weight window store, caller is responsible for + // deleting it + G4String GetCellName(G4int i); - - private: - G4IStore *fIStore; + std::vector< G4VPhysicalVolume * > fPhysicalVolumeVector; + }; #endif diff --git a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc index e337d09c0e..653b918035 100644 --- a/examples/extended/biasing/B01/src/B01DetectorConstruction.cc +++ b/examples/extended/biasing/B01/src/B01DetectorConstruction.cc @@ -21,11 +21,13 @@ // ******************************************************************** // // -// $Id: B01DetectorConstruction.cc,v 1.10 2003/06/16 16:47:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: B01DetectorConstruction.cc,v 1.12 2003/08/25 12:32:29 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +#include "G4Types.hh" #include +#include #include "globals.hh" #include "B01DetectorConstruction.hh" @@ -42,19 +44,16 @@ // for importance biasing #include "G4IStore.hh" -B01DetectorConstruction::B01DetectorConstruction() - : fIStore(0) +// for weight window technique +#include "G4WeightWindowStore.hh" + +B01DetectorConstruction::B01DetectorConstruction() : + fPhysicalVolumeVector() {;} B01DetectorConstruction::~B01DetectorConstruction() {;} -G4IStore* B01DetectorConstruction::GetIStore() -{ - if (!fIStore) G4Exception("B01DetectorConstruction::fIStore empty!"); - return fIStore; -} - G4VPhysicalVolume* B01DetectorConstruction::Construct() { G4double pos_x; @@ -140,9 +139,8 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() // world solid G4double innerRadiusCylinder = 0*cm; - G4double outerRadiusCylinder = 101*cm; // dont't have scoring - // cells coinside eith world volume boundary - G4double hightCylinder = 105*cm; + G4double outerRadiusCylinder = 100*cm; + G4double hightCylinder = 100*cm; G4double startAngleCylinder = 0*deg; G4double spanningAngleCylinder = 360*deg; @@ -164,12 +162,11 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() name, 0, false, 0); - std::vector< G4VPhysicalVolume * > physvolumes; - physvolumes.push_back(pWorldVolume); + fPhysicalVolumeVector.push_back(pWorldVolume); - // creating 18 slobs of 10 cm thick concrete + // creating 18 slabs of 10 cm thick concrete G4double innerRadiusShield = 0*cm; G4double outerRadiusShield = 100*cm; @@ -212,15 +209,15 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() worldCylinder_log, false, 0); - physvolumes.push_back(pvol); + fPhysicalVolumeVector.push_back(pvol); } // filling the rest of the world volumr behind the concrete with - // another slob which should get the same importance value as the - // last slob + // another slab which should get the same importance value + // or lower weight bound as the last slab innerRadiusShield = 0*cm; outerRadiusShield = 100*cm; - hightShield = 7.5*cm; + hightShield = 5*cm; startAngleShield = 0*deg; spanningAngleShield = 360*deg; @@ -237,7 +234,7 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() pos_x = 0*cm; pos_y = 0*cm; - pos_z = 97.5*cm; + pos_z = 95*cm; G4VPhysicalVolume *pvol_rest = new G4PVPlacement(0, G4ThreeVector(pos_x, pos_y, pos_z), @@ -247,34 +244,104 @@ G4VPhysicalVolume* B01DetectorConstruction::Construct() false, 0); + fPhysicalVolumeVector.push_back(pvol_rest); + return pWorldVolume; + +} + + +G4VIStore *B01DetectorConstruction::CreateImportanceStore() { + + if (!fPhysicalVolumeVector.size()) { + G4Exception("B01DetectorConstruction::CreateImportanceStore: no physical volumes created yet!"); + } + + G4VPhysicalVolume *pWorldVolume = fPhysicalVolumeVector[0]; // creating and filling the importance store + + G4IStore *istore = new G4IStore(*pWorldVolume); - fIStore = new G4IStore(*pWorldVolume); - // for the world volume repnum is 0 ! G4int n = 0; G4double imp =1; - fIStore->AddImportanceGeometryCell(1, *pWorldVolume); + istore->AddImportanceGeometryCell(1, *pWorldVolume); for (std::vector::iterator it = - physvolumes.begin(); - it != physvolumes.end(); it++) + fPhysicalVolumeVector.begin(); + it != fPhysicalVolumeVector.end() - 1; it++) { if (*it != pWorldVolume) { imp = pow(2., n++); G4cout << "Going to assign importance: " << imp << ", to volume: " << (*it)->GetName() << G4endl; - fIStore->AddImportanceGeometryCell(imp, **it); + istore->AddImportanceGeometryCell(imp, *(*it)); } } // the remaining part pf the geometry (rest) gets the same // importance as the last conrete cell - fIStore->AddImportanceGeometryCell(imp, *pvol_rest); + istore-> + AddImportanceGeometryCell(imp, + *(fPhysicalVolumeVector[fPhysicalVolumeVector + .size()-1])); + + return istore; +} - return pWorldVolume; + +G4VWeightWindowStore *B01DetectorConstruction::CreateWeightWindowStore() { + + if (!fPhysicalVolumeVector.size()) { + G4Exception("B01DetectorConstruction::CreateWeightWindowStore: no physical volumes created yet!"); + } + + G4VPhysicalVolume *pWorldVolume = fPhysicalVolumeVector[0]; + + // creating and filling the weight window store + + G4WeightWindowStore *wwstore = new G4WeightWindowStore(*pWorldVolume); + + // create one energy region covering the energies of the problem + std::set > enBounds; + enBounds.insert(1 * GeV); + wwstore->SetGeneralUpperEnergyBounds(enBounds); + + + G4int n = 0; + G4double lowerWeight =1; + std::vector lowerWeights; + + lowerWeights.push_back(1); + G4GeometryCell gWorldCell(*pWorldVolume,0); + wwstore->AddLowerWeights(gWorldCell, lowerWeights); + + for (std::vector::iterator it = + fPhysicalVolumeVector.begin(); + it != fPhysicalVolumeVector.end() - 1; it++) + { + if (*it != pWorldVolume) + { + lowerWeight = 1./pow(2., n++); + G4cout << "Going to assign lower weight: " << lowerWeight + << ", to volume: " + << (*it)->GetName() << G4endl; + G4GeometryCell gCell(*(*it),0); + lowerWeights.clear(); + lowerWeights.push_back(lowerWeight); + wwstore->AddLowerWeights(gCell, lowerWeights); + } + } + + // the remaining part pf the geometry (rest) gets the same + // lower weight bound as the last conrete cell + G4GeometryCell gRestCell(*(fPhysicalVolumeVector[fPhysicalVolumeVector + .size()-1]), 0); + wwstore->AddLowerWeights(gRestCell, lowerWeights); + + + return wwstore; } diff --git a/examples/extended/biasing/B01/src/B01PhysicsList.cc b/examples/extended/biasing/B01/src/B01PhysicsList.cc index 929909b896..a742149567 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc b/examples/extended/biasing/B01/src/B01PrimaryGeneratorAction.cc index 1b5a3cfb5f..94512acb9d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/exampleB02.cc b/examples/extended/biasing/B02/exampleB02.cc index 0806987810..21912bedf8 100644 --- a/examples/extended/biasing/B02/exampleB02.cc +++ b/examples/extended/biasing/B02/exampleB02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleB02.cc,v 1.15 2003/06/16 16:47:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: exampleB02.cc,v 1.16 2003/07/31 08:28:16 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -86,7 +86,7 @@ -int main(int argc, char **argv) +int main(int , char **) { std::ostream *myout = &G4cout; G4int numberOfEvent = 100; diff --git a/examples/extended/biasing/B02/exampleB02.out b/examples/extended/biasing/B02/exampleB02.out index 918ceb8acf..fa682e6c1d 100644 --- a/examples/extended/biasing/B02/exampleB02.out +++ b/examples/extended/biasing/B02/exampleB02.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ + Geant4 version $Name: geant4-06-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 30145d59da..fff45bfe76 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class B02CellScorer diff --git a/examples/extended/biasing/B02/include/B02CellScorerStore.hh b/examples/extended/biasing/B02/include/B02CellScorerStore.hh index e16a181fd1..e4dc81b989 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class B02CellScorerStore diff --git a/examples/extended/biasing/B02/include/B02DetectorConstruction.hh b/examples/extended/biasing/B02/include/B02DetectorConstruction.hh index 75481c9673..c5cd168a9d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef B02DetectorConstruction_hh diff --git a/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh index 66c76b84e2..8149a314b0 100644 --- a/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh +++ b/examples/extended/biasing/B02/include/B02ImportanceDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: B02ImportanceDetectorConstruction.hh,v 1.3 2003/06/16 16:47:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef B02ImportanceDetectorConstruction_hh diff --git a/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh b/examples/extended/biasing/B02/include/B02ScoringDetectorConstruction.hh index 391ff67fdb..c69f31cd78 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef B02ScoringDetectorConstruction_hh diff --git a/examples/extended/biasing/B02/src/B02CellScorer.cc b/examples/extended/biasing/B02/src/B02CellScorer.cc index d7fa2d4b5a..2ec20f8c2f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 36ff760594..8c9dde480d 100644 --- a/examples/extended/biasing/B02/src/B02CellScorerStore.cc +++ b/examples/extended/biasing/B02/src/B02CellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: B02CellScorerStore.cc,v 1.1 2002/11/08 14:52:17 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc index 9b4834bf1a..b7db2aa90c 100644 --- a/examples/extended/biasing/B02/src/B02DetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02DetectorConstruction.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: B02DetectorConstruction.cc,v 1.8 2003/06/16 16:47:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: B02DetectorConstruction.cc,v 1.10 2003/07/31 11:59:40 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // - +#include "G4Types.hh" #include #include "globals.hh" @@ -189,15 +189,15 @@ G4VPhysicalVolume* B02DetectorConstruction::Construct() pos_x = 0*cm; pos_y = 0*cm; pos_z = 0; - G4VPhysicalVolume *pvol = - new G4PVPlacement(0, - G4ThreeVector(pos_x, pos_y, pos_z), - aShield_log, - name, - worldCylinder_log, - false, - 0); + new G4PVPlacement(0, + G4ThreeVector(pos_x, pos_y, pos_z), + aShield_log, + name, + worldCylinder_log, + false, + 0); + return pWorldVolume; } diff --git a/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc index bd09077084..30e269ff89 100644 --- a/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc +++ b/examples/extended/biasing/B02/src/B02ImportanceDetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: B02ImportanceDetectorConstruction.cc,v 1.5 2003/06/16 16:47:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: B02ImportanceDetectorConstruction.cc,v 1.6 2003/07/31 08:28:16 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" @@ -49,8 +49,7 @@ void B02ImportanceDetectorConstruction::Construct() { G4String name("none"); - G4double A(0), density(universe_mean_density), temperature(0), pressure(0); - G4int z(0); + G4double density(universe_mean_density), temperature(0), pressure(0); name = "Galactic"; density = universe_mean_density; //from PhysicalConstants.h diff --git a/examples/extended/biasing/B02/src/B02PhysicsList.cc b/examples/extended/biasing/B02/src/B02PhysicsList.cc index c6cf19db72..d8a7371379 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc b/examples/extended/biasing/B02/src/B02PrimaryGeneratorAction.cc index fe23b07d49..07897fa45f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc b/examples/extended/biasing/B02/src/B02ScoringDetectorConstruction.cc index 1de4dbcb35..10f565e3ec 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B03/B03App.py b/examples/extended/biasing/B03/B03App.py deleted file mode 100644 index 3453747bf2..0000000000 --- a/examples/extended/biasing/B03/B03App.py +++ /dev/null @@ -1,429 +0,0 @@ -# This file was created automatically by SWIG. -# Don't modify this file, modify the SWIG interface instead. -# This file is compatible with both classic and new-style classes. -import _B03App -def _swig_setattr(self,class_type,name,value): - if (name == "this"): - if isinstance(value, class_type): - self.__dict__[name] = value.this - if hasattr(value,"thisown"): self.__dict__["thisown"] = value.thisown - del value.thisown - return - method = class_type.__swig_setmethods__.get(name,None) - if method: return method(self,value) - self.__dict__[name] = value - -def _swig_getattr(self,class_type,name): - method = class_type.__swig_getmethods__.get(name,None) - if method: return method(self) - raise AttributeError,name - -import types -try: - _object = types.ObjectType - _newclass = 1 -except AttributeError: - class _object : pass - _newclass = 0 - - -class G4RunManager(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4RunManager, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4RunManager, name) - def BeamOn(*args): return apply(_B03App.G4RunManager_BeamOn,args) - def Initialize(*args): return apply(_B03App.G4RunManager_Initialize,args) - def __init__(self): raise RuntimeError, "No constructor defined" - def __repr__(self): - return "" % (self.this,) - -class G4RunManagerPtr(G4RunManager): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4RunManager -_B03App.G4RunManager_swigregister(G4RunManagerPtr) - -class G4VIStore(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4VIStore, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4VIStore, name) - def __init__(self): raise RuntimeError, "No constructor defined" - def __repr__(self): - return "" % (self.this,) - -class G4VIStorePtr(G4VIStore): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4VIStore -_B03App.G4VIStore_swigregister(G4VIStorePtr) - -class G4VPhysicalVolume(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4VPhysicalVolume, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4VPhysicalVolume, name) - def __init__(self): raise RuntimeError, "No constructor defined" - def __repr__(self): - return "" % (self.this,) - -class G4VPhysicalVolumePtr(G4VPhysicalVolume): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4VPhysicalVolume -_B03App.G4VPhysicalVolume_swigregister(G4VPhysicalVolumePtr) - -class G4GeometryCell(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4GeometryCell, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4GeometryCell, name) - def __init__(self,*args): - self.this = apply(_B03App.new_G4GeometryCell,args) - self.thisown = 1 - def __del__(self, destroy= _B03App.delete_G4GeometryCell): - try: - if self.thisown: destroy(self) - except: pass - def GetPhysicalVolume(*args): return apply(_B03App.G4GeometryCell_GetPhysicalVolume,args) - def GetReplicaNumber(*args): return apply(_B03App.G4GeometryCell_GetReplicaNumber,args) - def __repr__(self): - return "" % (self.this,) - -class G4GeometryCellPtr(G4GeometryCell): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4GeometryCell -_B03App.G4GeometryCell_swigregister(G4GeometryCellPtr) - -class G4IStore(G4VIStore): - __swig_setmethods__ = {} - for _s in [G4VIStore]: __swig_setmethods__.update(_s.__swig_setmethods__) - __setattr__ = lambda self, name, value: _swig_setattr(self, G4IStore, name, value) - __swig_getmethods__ = {} - for _s in [G4VIStore]: __swig_getmethods__.update(_s.__swig_getmethods__) - __getattr__ = lambda self, name: _swig_getattr(self, G4IStore, name) - def __init__(self,*args): - self.this = apply(_B03App.new_G4IStore,args) - self.thisown = 1 - def __del__(self, destroy= _B03App.delete_G4IStore): - try: - if self.thisown: destroy(self) - except: pass - def AddImportanceGeometryCell(*args): return apply(_B03App.G4IStore_AddImportanceGeometryCell,args) - def ChangeImportance(*args): return apply(_B03App.G4IStore_ChangeImportance,args) - def GetImportance(*args): return apply(_B03App.G4IStore_GetImportance,args) - def IsKnown(*args): return apply(_B03App.G4IStore_IsKnown,args) - def GetWorldVolume(*args): return apply(_B03App.G4IStore_GetWorldVolume,args) - def __repr__(self): - return "" % (self.this,) - -class G4IStorePtr(G4IStore): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4IStore -_B03App.G4IStore_swigregister(G4IStorePtr) - -class G4CellScoreValues(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellScoreValues, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4CellScoreValues, name) - def __init__(self,*args): - self.this = apply(_B03App.new_G4CellScoreValues,args) - self.thisown = 1 - __swig_setmethods__["fSumSL"] = _B03App.G4CellScoreValues_fSumSL_set - __swig_getmethods__["fSumSL"] = _B03App.G4CellScoreValues_fSumSL_get - if _newclass:fSumSL = property(_B03App.G4CellScoreValues_fSumSL_get,_B03App.G4CellScoreValues_fSumSL_set) - __swig_setmethods__["fSumSLW"] = _B03App.G4CellScoreValues_fSumSLW_set - __swig_getmethods__["fSumSLW"] = _B03App.G4CellScoreValues_fSumSLW_get - if _newclass:fSumSLW = property(_B03App.G4CellScoreValues_fSumSLW_get,_B03App.G4CellScoreValues_fSumSLW_set) - __swig_setmethods__["fSumSLW_v"] = _B03App.G4CellScoreValues_fSumSLW_v_set - __swig_getmethods__["fSumSLW_v"] = _B03App.G4CellScoreValues_fSumSLW_v_get - if _newclass:fSumSLW_v = property(_B03App.G4CellScoreValues_fSumSLW_v_get,_B03App.G4CellScoreValues_fSumSLW_v_set) - __swig_setmethods__["fSumSLWE"] = _B03App.G4CellScoreValues_fSumSLWE_set - __swig_getmethods__["fSumSLWE"] = _B03App.G4CellScoreValues_fSumSLWE_get - if _newclass:fSumSLWE = property(_B03App.G4CellScoreValues_fSumSLWE_get,_B03App.G4CellScoreValues_fSumSLWE_set) - __swig_setmethods__["fSumSLWE_v"] = _B03App.G4CellScoreValues_fSumSLWE_v_set - __swig_getmethods__["fSumSLWE_v"] = _B03App.G4CellScoreValues_fSumSLWE_v_get - if _newclass:fSumSLWE_v = property(_B03App.G4CellScoreValues_fSumSLWE_v_get,_B03App.G4CellScoreValues_fSumSLWE_v_set) - __swig_setmethods__["fSumTracksEntering"] = _B03App.G4CellScoreValues_fSumTracksEntering_set - __swig_getmethods__["fSumTracksEntering"] = _B03App.G4CellScoreValues_fSumTracksEntering_get - if _newclass:fSumTracksEntering = property(_B03App.G4CellScoreValues_fSumTracksEntering_get,_B03App.G4CellScoreValues_fSumTracksEntering_set) - __swig_setmethods__["fSumPopulation"] = _B03App.G4CellScoreValues_fSumPopulation_set - __swig_getmethods__["fSumPopulation"] = _B03App.G4CellScoreValues_fSumPopulation_get - if _newclass:fSumPopulation = property(_B03App.G4CellScoreValues_fSumPopulation_get,_B03App.G4CellScoreValues_fSumPopulation_set) - __swig_setmethods__["fSumCollisions"] = _B03App.G4CellScoreValues_fSumCollisions_set - __swig_getmethods__["fSumCollisions"] = _B03App.G4CellScoreValues_fSumCollisions_get - if _newclass:fSumCollisions = property(_B03App.G4CellScoreValues_fSumCollisions_get,_B03App.G4CellScoreValues_fSumCollisions_set) - __swig_setmethods__["fSumCollisionsWeight"] = _B03App.G4CellScoreValues_fSumCollisionsWeight_set - __swig_getmethods__["fSumCollisionsWeight"] = _B03App.G4CellScoreValues_fSumCollisionsWeight_get - if _newclass:fSumCollisionsWeight = property(_B03App.G4CellScoreValues_fSumCollisionsWeight_get,_B03App.G4CellScoreValues_fSumCollisionsWeight_set) - __swig_setmethods__["fNumberWeightedEnergy"] = _B03App.G4CellScoreValues_fNumberWeightedEnergy_set - __swig_getmethods__["fNumberWeightedEnergy"] = _B03App.G4CellScoreValues_fNumberWeightedEnergy_get - if _newclass:fNumberWeightedEnergy = property(_B03App.G4CellScoreValues_fNumberWeightedEnergy_get,_B03App.G4CellScoreValues_fNumberWeightedEnergy_set) - __swig_setmethods__["fFluxWeightedEnergy"] = _B03App.G4CellScoreValues_fFluxWeightedEnergy_set - __swig_getmethods__["fFluxWeightedEnergy"] = _B03App.G4CellScoreValues_fFluxWeightedEnergy_get - if _newclass:fFluxWeightedEnergy = property(_B03App.G4CellScoreValues_fFluxWeightedEnergy_get,_B03App.G4CellScoreValues_fFluxWeightedEnergy_set) - __swig_setmethods__["fAverageTrackWeight"] = _B03App.G4CellScoreValues_fAverageTrackWeight_set - __swig_getmethods__["fAverageTrackWeight"] = _B03App.G4CellScoreValues_fAverageTrackWeight_get - if _newclass:fAverageTrackWeight = property(_B03App.G4CellScoreValues_fAverageTrackWeight_get,_B03App.G4CellScoreValues_fAverageTrackWeight_set) - __swig_setmethods__["fImportance"] = _B03App.G4CellScoreValues_fImportance_set - __swig_getmethods__["fImportance"] = _B03App.G4CellScoreValues_fImportance_get - if _newclass:fImportance = property(_B03App.G4CellScoreValues_fImportance_get,_B03App.G4CellScoreValues_fImportance_set) - def __repr__(self): - return "" % (self.this,) - -class G4CellScoreValuesPtr(G4CellScoreValues): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4CellScoreValues -_B03App.G4CellScoreValues_swigregister(G4CellScoreValuesPtr) - -class G4CellScoreComposer(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellScoreComposer, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4CellScoreComposer, name) - def __init__(self,*args): - self.this = apply(_B03App.new_G4CellScoreComposer,args) - self.thisown = 1 - def __del__(self, destroy= _B03App.delete_G4CellScoreComposer): - try: - if self.thisown: destroy(self) - except: pass - def GetStandardCellScoreValues(*args): return apply(_B03App.G4CellScoreComposer_GetStandardCellScoreValues,args) - def __repr__(self): - return "" % (self.this,) - -class G4CellScoreComposerPtr(G4CellScoreComposer): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4CellScoreComposer -_B03App.G4CellScoreComposer_swigregister(G4CellScoreComposerPtr) - -class G4CellScorer(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellScorer, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4CellScorer, name) - def GetCellScoreComposer(*args): return apply(_B03App.G4CellScorer_GetCellScoreComposer,args) - def GetCellScoreValues(*args): return apply(_B03App.G4CellScorer_GetCellScoreValues,args) - def __init__(self): raise RuntimeError, "No constructor defined" - def __repr__(self): - return "" % (self.this,) - -class G4CellScorerPtr(G4CellScorer): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4CellScorer -_B03App.G4CellScorer_swigregister(G4CellScorerPtr) - -class G4VCellScorerStore(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4VCellScorerStore, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4VCellScorerStore, name) - def __init__(self): raise RuntimeError, "No constructor defined" - def __repr__(self): - return "" % (self.this,) - -class G4VCellScorerStorePtr(G4VCellScorerStore): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4VCellScorerStore -_B03App.G4VCellScorerStore_swigregister(G4VCellScorerStorePtr) - -class G4CellScorerStore(G4VCellScorerStore): - __swig_setmethods__ = {} - for _s in [G4VCellScorerStore]: __swig_setmethods__.update(_s.__swig_setmethods__) - __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellScorerStore, name, value) - __swig_getmethods__ = {} - for _s in [G4VCellScorerStore]: __swig_getmethods__.update(_s.__swig_getmethods__) - __getattr__ = lambda self, name: _swig_getattr(self, G4CellScorerStore, name) - def __init__(self,*args): - self.this = apply(_B03App.new_G4CellScorerStore,args) - self.thisown = 1 - def __del__(self, destroy= _B03App.delete_G4CellScorerStore): - try: - if self.thisown: destroy(self) - except: pass - def SetAutoScorerCreate(*args): return apply(_B03App.G4CellScorerStore_SetAutoScorerCreate,args) - def AddCellScorer(*args): return apply(_B03App.G4CellScorerStore_AddCellScorer,args) - def GetMapGeometryCellCellScorer(*args): return apply(_B03App.G4CellScorerStore_GetMapGeometryCellCellScorer,args) - def __repr__(self): - return "" % (self.this,) - -class G4CellScorerStorePtr(G4CellScorerStore): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4CellScorerStore -_B03App.G4CellScorerStore_swigregister(G4CellScorerStorePtr) - -class G4VScorer(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4VScorer, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4VScorer, name) - def __init__(self): raise RuntimeError, "No constructor defined" - def __repr__(self): - return "" % (self.this,) - -class G4VScorerPtr(G4VScorer): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4VScorer -_B03App.G4VScorer_swigregister(G4VScorerPtr) - -class G4CellStoreScorer(G4VScorer): - __swig_setmethods__ = {} - for _s in [G4VScorer]: __swig_setmethods__.update(_s.__swig_setmethods__) - __setattr__ = lambda self, name, value: _swig_setattr(self, G4CellStoreScorer, name, value) - __swig_getmethods__ = {} - for _s in [G4VScorer]: __swig_getmethods__.update(_s.__swig_getmethods__) - __getattr__ = lambda self, name: _swig_getattr(self, G4CellStoreScorer, name) - def __init__(self,*args): - self.this = apply(_B03App.new_G4CellStoreScorer,args) - self.thisown = 1 - def __repr__(self): - return "" % (self.this,) - -class G4CellStoreScorerPtr(G4CellStoreScorer): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4CellStoreScorer -_B03App.G4CellStoreScorer_swigregister(G4CellStoreScorerPtr) - -class G4VImportanceAlgorithm(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4VImportanceAlgorithm, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4VImportanceAlgorithm, name) - def __init__(self): raise RuntimeError, "No constructor defined" - def __repr__(self): - return "" % (self.this,) - -class G4VImportanceAlgorithmPtr(G4VImportanceAlgorithm): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4VImportanceAlgorithm -_B03App.G4VImportanceAlgorithm_swigregister(G4VImportanceAlgorithmPtr) - -class G4ParallelGeometrySampler(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4ParallelGeometrySampler, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4ParallelGeometrySampler, name) - def __init__(self,*args): - self.this = apply(_B03App.new_G4ParallelGeometrySampler,args) - self.thisown = 1 - def __del__(self, destroy= _B03App.delete_G4ParallelGeometrySampler): - try: - if self.thisown: destroy(self) - except: pass - def PrepareScoring(*args): return apply(_B03App.G4ParallelGeometrySampler_PrepareScoring,args) - def PrepareImportanceSampling(*args): return apply(_B03App.G4ParallelGeometrySampler_PrepareImportanceSampling,args) - def PrepareWeightRoulett(*args): return apply(_B03App.G4ParallelGeometrySampler_PrepareWeightRoulett,args) - def Configure(*args): return apply(_B03App.G4ParallelGeometrySampler_Configure,args) - def ClearSampling(*args): return apply(_B03App.G4ParallelGeometrySampler_ClearSampling,args) - def IsConfigured(*args): return apply(_B03App.G4ParallelGeometrySampler_IsConfigured,args) - def __repr__(self): - return "" % (self.this,) - -class G4ParallelGeometrySamplerPtr(G4ParallelGeometrySampler): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4ParallelGeometrySampler -_B03App.G4ParallelGeometrySampler_swigregister(G4ParallelGeometrySamplerPtr) - -class G4ScoreTable(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, G4ScoreTable, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, G4ScoreTable, name) - def __init__(self,*args): - self.this = apply(_B03App.new_G4ScoreTable,args) - self.thisown = 1 - def __del__(self, destroy= _B03App.delete_G4ScoreTable): - try: - if self.thisown: destroy(self) - except: pass - def Print(*args): return apply(_B03App.G4ScoreTable_Print,args) - def Write(*args): return apply(_B03App.G4ScoreTable_Write,args) - def __repr__(self): - return "" % (self.this,) - -class G4ScoreTablePtr(G4ScoreTable): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = G4ScoreTable -_B03App.G4ScoreTable_swigregister(G4ScoreTablePtr) - -class B03ImportanceDetectorConstruction(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, B03ImportanceDetectorConstruction, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, B03ImportanceDetectorConstruction, name) - def __init__(self,*args): - self.this = apply(_B03App.new_B03ImportanceDetectorConstruction,args) - self.thisown = 1 - def __del__(self, destroy= _B03App.delete_B03ImportanceDetectorConstruction): - try: - if self.thisown: destroy(self) - except: pass - def GetPhysicalVolumeByName(*args): return apply(_B03App.B03ImportanceDetectorConstruction_GetPhysicalVolumeByName,args) - def GetWorldVolume(*args): return apply(_B03App.B03ImportanceDetectorConstruction_GetWorldVolume,args) - def ListPhysNames(*args): return apply(_B03App.B03ImportanceDetectorConstruction_ListPhysNames,args) - def GetGeometryCell(*args): return apply(_B03App.B03ImportanceDetectorConstruction_GetGeometryCell,args) - def __repr__(self): - return "" % (self.this,) - -class B03ImportanceDetectorConstructionPtr(B03ImportanceDetectorConstruction): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = B03ImportanceDetectorConstruction -_B03App.B03ImportanceDetectorConstruction_swigregister(B03ImportanceDetectorConstructionPtr) - -class B03AppBase(_object): - __swig_setmethods__ = {} - __setattr__ = lambda self, name, value: _swig_setattr(self, B03AppBase, name, value) - __swig_getmethods__ = {} - __getattr__ = lambda self, name: _swig_getattr(self, B03AppBase, name) - def __del__(self, destroy= _B03App.delete_B03AppBase): - try: - if self.thisown: destroy(self) - except: pass - __swig_getmethods__["GetB03AppBase"] = lambda x: _B03App.B03AppBase_GetB03AppBase - if _newclass:GetB03AppBase = staticmethod(_B03App.B03AppBase_GetB03AppBase) - def GetRunManager(*args): return apply(_B03App.B03AppBase_GetRunManager,args) - def __init__(self): raise RuntimeError, "No constructor defined" - def __repr__(self): - return "" % (self.this,) - -class B03AppBasePtr(B03AppBase): - def __init__(self,this): - self.this = this - if not hasattr(self,"thisown"): self.thisown = 0 - self.__class__ = B03AppBase -_B03App.B03AppBase_swigregister(B03AppBasePtr) -B03AppBase_GetB03AppBase = _B03App.B03AppBase_GetB03AppBase - - - diff --git a/examples/extended/biasing/B03/B03RunApplication.py b/examples/extended/biasing/B03/B03RunApplication.py index 64684d11e2..d081fadd27 100755 --- a/examples/extended/biasing/B03/B03RunApplication.py +++ b/examples/extended/biasing/B03/B03RunApplication.py @@ -1,15 +1,16 @@ -#!/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0/bin/python2.2 +#! /usr/bin/env python2.2 + + +# #!/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0/bin/python2.2 # #!/opt/Anaphe/5.0.1/specific/redhat72/gcc-2.95.2/PublicDomainPackages/2.0.0/bin/python2.2 -# #!/usr/bin/env python2 - # This example needs python2.2 http://www.python.org or later. # # This script may be used without or with ANAPHE e.g. lizard. -# Without lizrd: just execute this file. -# With lizrd: start lizard and than do +# Without lizard: just execute this file. +# With lizard: start lizard and than do # execfile("B03RunApplication.py") import string diff --git a/examples/extended/biasing/B03/GNUmakefile b/examples/extended/biasing/B03/GNUmakefile index 8b4b8db5cb..ff3ffd1684 100644 --- a/examples/extended/biasing/B03/GNUmakefile +++ b/examples/extended/biasing/B03/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.9 2002/11/19 15:03:58 mdressel Exp $ +# $Id: GNUmakefile,v 1.11 2003/06/30 16:40:27 dressel Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -15,27 +15,55 @@ ifndef G4INSTALL G4INSTALL = ../../.. endif - -.PHONY: all -all: lib _B03App.so bin include $(G4INSTALL)/config/architecture.gmk -CPPFLAGS += -I$(PYTHON_DIR)/include/python2.2/ +SWIGINC = include/B03App.i +SWIGCC = src/B03App_wrap.cc +SWIGD = $(G4WORKDIR)/tmp/$(G4SYSTEM)/exampleB03/B03App_wrap.d +objectfilesWrapper = $(G4WORKDIR)/tmp/$(G4SYSTEM)/exampleB03/B03App_wrap.o +SWIGSO = $(G4WORKDIR)/tmp/$(G4SYSTEM)/exampleB03/_B03App.so +moduleName = B03App + + +MYLIBS = $(subst -l$(name),,$(LDLIBS)) + +SWIG = $(ANAPHETOP)/specific/$(PLATF)/PublicDomainPackages/2.0.0/bin/swig-1.3.15 + + +.PHONY: all +all: $(SWIGD) $(SWIGCC) lib $(SWIGSO) bin + + +CPPFLAGS += -I$(ANAPHETOP)/specific/$(PLATF)/PublicDomainPackages/2.0.0/include/python$(PYTHON_VERSION) +CXXFLAGS += -w LDFLAGS += \ - -L$(PYTHON_DIR)/lib/python2.2/config \ + -L$(ANAPHETOP)/specific/$(PLATF)/PublicDomainPackages/2.0.0/lib/python$(PYTHON_VERSION)/config \ -L/lib \ - -lnsl -ldl -lreadline /lib/libtermcap.so.2 -lieee -lpthread -lutil -lexampleB03 -lpython2.2 + -lnsl -ldl -lreadline /lib/libtermcap.so.2 -lieee -lpthread -lutil -lexampleB03 -lpython$(PYTHON_VERSION) include $(G4INSTALL)/config/binmake.gmk -libdir = $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name) -objectfiles = $(shell /bin/ls $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name)/*.o) -_B03App.so: - @echo Creating shared library: $(libdir)/$@ - $(CXX) -Wl,-soname,$(@F) -shared $(LDFLAGS) $(LDLIBS) -L$(libdir) $(objectfiles) -o $(libdir)/$@ +$(SWIGSO): $(objectfilesWrapper) + @echo Creating shared library: $@ + $(CXX) -Wl,-soname,$(@F) -shared $(LDFLAGS) $(objectfilesWrapper) $(MYLIBS) -lc -o $(SWIGSO) + +src/%_wrap.cc: include/%.i + $(SWIG) -python -c++ -shadow -no_default $(SWIGFLAGS) \ + -o $@ $< + @mv src/$(moduleName).py ./ + +${G4WORKDIR}/tmp/${G4SYSTEM}/$(name): + @mkdir ${G4WORKDIR}/tmp/${G4SYSTEM}/$(name) + + +#libdir = $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name) +#objectfiles = $(shell /bin/ls $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(name)/*.o) +#_B03App.so: +# @echo Creating shared library: $(libdir)/$@ +# $(CXX) -Wl,-soname,$(@F) -shared $(LDFLAGS) $(LDLIBS) -L$(libdir) $(objectfiles) -o $(libdir)/$@ diff --git a/examples/extended/biasing/B03/buildit.sh b/examples/extended/biasing/B03/buildit.sh deleted file mode 100755 index e0174ecd2a..0000000000 --- a/examples/extended/biasing/B03/buildit.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/tcsh -# The script uses swig to create c++ code according to the -# file include/B03App.i. It also creates the file B03App.py -# containing the python class wrappers. -# If you need to use this script you have to set the -# variable SWIG according to your installation of swig. - -# If you want to use this script please edit the file -# env.csh according to your installation of Anaphe and source -# it before running this script. - -source env.csh -cd include/ -echo Calling swig -set SWIG=${ANAPHE_BASE}/PublicDomainPackages/2.0.0/bin/swig-1.3.15 -$SWIG -python -c++ -shadow -no_default B03App.i -echo moving files -mv B03App_wrap.cxx ../src/B03App_wrap.cc -mv B03App.py ../ -cd .. -gmake - diff --git a/examples/extended/biasing/B03/env.csh b/examples/extended/biasing/B03/env.csh deleted file mode 100644 index becf6bcea3..0000000000 --- a/examples/extended/biasing/B03/env.csh +++ /dev/null @@ -1,18 +0,0 @@ -# This is an example script for setting the environment variables -# if you are on a redhat6.1 system at CERN. -# Please source this file before compiling and running -# the example. - -#if using afs -setenv PYTHON_DIR /afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0 - -# if Anaphe is installed in /opt -#setenv PYTHON_DIR /opt/Anaphe/5.0.1/specific/redhat72/gcc-2.95.2/PublicDomainPackages/2.0.0 - - -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB03 -setenv PYTHONPATH $LD_LIBRARY_PATH. - -echo WARNING SETTING: G4LIB_BUILD_SHARED 1 -setenv G4LIB_BUILD_SHARED 1 - diff --git a/examples/extended/biasing/B03/exampleB03.cc b/examples/extended/biasing/B03/exampleB03.cc index d954efe92e..ba7ac5848a 100644 --- a/examples/extended/biasing/B03/exampleB03.cc +++ b/examples/extended/biasing/B03/exampleB03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleB03.cc,v 1.10 2002/11/18 13:22:48 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: exampleB03.cc,v 1.11 2003/06/30 16:17:02 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -37,7 +37,7 @@ // // -------------------------------------------------------------- -#include "B03App.hh" +#include "B03AppBase.hh" #include "globals.hh" int main(int argc, char **argv) diff --git a/examples/extended/biasing/B03/exampleB03.out b/examples/extended/biasing/B03/exampleB03.out index b37d57396d..3ef01eafe3 100644 --- a/examples/extended/biasing/B03/exampleB03.out +++ b/examples/extended/biasing/B03/exampleB03.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ + Geant4 version $Name: geant4-06-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 a726edef57..fabc6c0f80 100644 --- a/examples/extended/biasing/B03/include/B03App.i +++ b/examples/extended/biasing/B03/include/B03App.i @@ -1,7 +1,7 @@ %module B03App %{ #include "globals.hh" -#include "B03App.hh" +#include "B03AppBase.hh" #include "G4RunManager.hh" #include "G4IStore.hh" #include "G4VCellScorerStore.hh" @@ -143,7 +143,7 @@ public: const char *Write(const G4MapGeometryCellCellScorer &cs){ std::ostrstream tmpout; self->Print(cs, &tmpout); - string *value = new string(tmpout.str()); + std::string *value = new std::string(tmpout.str()); return value->c_str(); }; } diff --git a/examples/extended/biasing/B03/include/B03App.hh b/examples/extended/biasing/B03/include/B03AppBase.hh similarity index 92% rename from examples/extended/biasing/B03/include/B03App.hh rename to examples/extended/biasing/B03/include/B03AppBase.hh index e48f79ba92..0e2c081963 100644 --- a/examples/extended/biasing/B03/include/B03App.hh +++ b/examples/extended/biasing/B03/include/B03AppBase.hh @@ -20,12 +20,12 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: B03App.hh,v 1.3 2002/12/13 11:26:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: B03AppBase.hh,v 1.1 2003/06/30 16:17:03 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- -#ifndef B03App_hh -#define B03App_hh B03App_hh +#ifndef B03AppBase_hh +#define B03AppBase_hh B03AppBase_hh class G4RunManager; class B03PrimaryGeneratorAction; diff --git a/examples/extended/biasing/B03/include/B03DetectorConstruction.hh b/examples/extended/biasing/B03/include/B03DetectorConstruction.hh index 405ce91a6e..b8febd1abb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef B03DetectorConstruction_hh diff --git a/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh b/examples/extended/biasing/B03/include/B03ImportanceDetectorConstruction.hh index ddab12d002..f7b9324b9f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef B03ImportanceDetectorConstruction_hh diff --git a/examples/extended/biasing/B03/include/B03PhysicsList.hh b/examples/extended/biasing/B03/include/B03PhysicsList.hh index 8eef2bb387..2b757ffe55 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef B03PhysicsList_h diff --git a/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh b/examples/extended/biasing/B03/include/B03PrimaryGeneratorAction.hh index 614f995a07..88de20a050 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef B03PrimaryGeneratorAction_hh diff --git a/examples/extended/biasing/B03/python.rc b/examples/extended/biasing/B03/python.rc deleted file mode 100644 index 8eefd84440..0000000000 --- a/examples/extended/biasing/B03/python.rc +++ /dev/null @@ -1,8 +0,0 @@ -# for command-line completion : -import sys -import rlcompleter -rlcompleter.readline.parse_and_bind("tab: complete") - - - - diff --git a/examples/extended/biasing/B03/src/B03App.cc b/examples/extended/biasing/B03/src/B03AppBase.cc similarity index 96% rename from examples/extended/biasing/B03/src/B03App.cc rename to examples/extended/biasing/B03/src/B03AppBase.cc index 273065f102..6082d404ad 100644 --- a/examples/extended/biasing/B03/src/B03App.cc +++ b/examples/extended/biasing/B03/src/B03AppBase.cc @@ -20,11 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: B03App.cc,v 1.5 2003/06/16 16:47:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: B03AppBase.cc,v 1.1 2003/06/30 16:17:03 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- -#include "B03App.hh" +#include "B03AppBase.hh" #include #include "CLHEP/Random/Random.h" diff --git a/examples/extended/biasing/B03/src/B03App_wrap.cc b/examples/extended/biasing/B03/src/B03App_wrap.cc deleted file mode 100644 index 8002b5494f..0000000000 --- a/examples/extended/biasing/B03/src/B03App_wrap.cc +++ /dev/null @@ -1,2332 +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. * -// ******************************************************************** -// -/* ---------------------------------------------------------------------------- - * This file was automatically generated by SWIG (http://www.swig.org). - * Version 1.3.15u-20021124-1448 - * - * This file is not intended to be easily readable and contains a number of - * coding conventions designed to improve portability and efficiency. Do not make - * changes to this file unless you know what you are doing--modify the SWIG - * interface file instead. - * ----------------------------------------------------------------------------- */ - -#define SWIGPYTHON - -#ifdef __cplusplus -template class SwigValueWrapper { - T *tt; -public: - inline SwigValueWrapper() : tt(0) { } - inline ~SwigValueWrapper() { if (tt) delete tt; } - inline SwigValueWrapper& operator=(const T& t) { tt = new T(t); return *this; } - inline operator T&() const { return *tt; } - inline T *operator&() { return tt; } -}; -#endif - - -#include "Python.h" - -/*********************************************************************** - * common.swg - * - * This file contains generic SWIG runtime support for pointer - * type checking as well as a few commonly used macros to control - * external linkage. - * - * Author : David Beazley (beazley@cs.uchicago.edu) - * - * Copyright (c) 1999-2000, The University of Chicago - * - * This file may be freely redistributed without license or fee provided - * this copyright message remains intact. - ************************************************************************/ - -#include - -#if defined(_WIN32) || defined(__WIN32__) -# if defined(_MSC_VER) -# if defined(STATIC_LINKED) -# define SWIGEXPORT(a) a -# define SWIGIMPORT(a) extern a -# else -# define SWIGEXPORT(a) __declspec(dllexport) a -# define SWIGIMPORT(a) extern a -# endif -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a) a _export -# define SWIGIMPORT(a) a _export -# else -# define SWIGEXPORT(a) a -# define SWIGIMPORT(a) a -# endif -# endif -#else -# define SWIGEXPORT(a) a -# define SWIGIMPORT(a) a -#endif - -#ifdef SWIG_GLOBAL -#define SWIGRUNTIME(a) SWIGEXPORT(a) -#else -#define SWIGRUNTIME(a) static a -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef void *(*swig_converter_func)(void *); -typedef struct swig_type_info *(*swig_dycast_func)(void **); - -typedef struct swig_type_info { - const char *name; - swig_converter_func converter; - const char *str; - void *clientdata; - swig_dycast_func dcast; - struct swig_type_info *next; - struct swig_type_info *prev; -} swig_type_info; - -#ifdef SWIG_NOINCLUDE - -SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *); -SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *); -SWIGIMPORT(void *) SWIG_TypeCast(swig_type_info *, void *); -SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **); -SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *); -SWIGIMPORT(void) SWIG_TypeClientData(swig_type_info *, void *); - -#else - -static swig_type_info *swig_type_list = 0; - -/* Register a type mapping with the type-checking */ -SWIGRUNTIME(swig_type_info *) -SWIG_TypeRegister(swig_type_info *ti) -{ - swig_type_info *tc, *head, *ret, *next; - /* Check to see if this type has already been registered */ - tc = swig_type_list; - while (tc) { - if (strcmp(tc->name, ti->name) == 0) { - /* Already exists in the table. Just add additional types to the list */ - if (tc->clientdata) ti->clientdata = tc->clientdata; - head = tc; - next = tc->next; - goto l1; - } - tc = tc->prev; - } - head = ti; - next = 0; - - /* Place in list */ - ti->prev = swig_type_list; - swig_type_list = ti; - - /* Build linked lists */ - l1: - ret = head; - tc = ti + 1; - /* Patch up the rest of the links */ - while (tc->name) { - head->next = tc; - tc->prev = head; - head = tc; - tc++; - } - head->next = next; - return ret; -} - -/* Check the typename */ -SWIGRUNTIME(swig_type_info *) -SWIG_TypeCheck(char *c, swig_type_info *ty) -{ - swig_type_info *s; - if (!ty) return 0; /* Void pointer */ - s = ty->next; /* First element always just a name */ - do { - if (strcmp(s->name,c) == 0) { - if (s == ty->next) return s; - /* Move s to the top of the linked list */ - s->prev->next = s->next; - if (s->next) { - s->next->prev = s->prev; - } - /* Insert s as second element in the list */ - s->next = ty->next; - if (ty->next) ty->next->prev = s; - ty->next = s; - return s; - } - s = s->next; - } while (s && (s != ty->next)); - return 0; -} - -/* Cast a pointer up an inheritance hierarchy */ -SWIGRUNTIME(void *) -SWIG_TypeCast(swig_type_info *ty, void *ptr) -{ - if ((!ty) || (!ty->converter)) return ptr; - return (*ty->converter)(ptr); -} - -/* Dynamic pointer casting. Down an inheritance hierarchy */ -SWIGRUNTIME(swig_type_info *) -SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) -{ - swig_type_info *lastty = ty; - if (!ty || !ty->dcast) return ty; - while (ty && (ty->dcast)) { - ty = (*ty->dcast)(ptr); - if (ty) lastty = ty; - } - return lastty; -} - -/* Search for a swig_type_info structure */ -SWIGRUNTIME(swig_type_info *) -SWIG_TypeQuery(const char *name) { - swig_type_info *ty = swig_type_list; - while (ty) { - if (ty->str && (strcmp(name,ty->str) == 0)) return ty; - if (ty->name && (strcmp(name,ty->name) == 0)) return ty; - ty = ty->prev; - } - return 0; -} - -/* Set the clientdata field for a type */ -SWIGRUNTIME(void) -SWIG_TypeClientData(swig_type_info *ti, void *clientdata) { - swig_type_info *tc, *equiv; - if (ti->clientdata) return; - ti->clientdata = clientdata; - equiv = ti->next; - while (equiv) { - if (!equiv->converter) { - tc = swig_type_list; - while (tc) { - if ((strcmp(tc->name, equiv->name) == 0)) - SWIG_TypeClientData(tc,clientdata); - tc = tc->prev; - } - } - equiv = equiv->next; - } -} -#endif - -#ifdef __cplusplus -} - -#endif - -/*********************************************************************** - * python.swg - * - * This file contains the runtime support for Python modules - * and includes code for managing global variables and pointer - * type checking. - * - * Author : David Beazley (beazley@cs.uchicago.edu) - ************************************************************************/ - -#include "Python.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define SWIG_PY_INT 1 -#define SWIG_PY_FLOAT 2 -#define SWIG_PY_STRING 3 -#define SWIG_PY_POINTER 4 -#define SWIG_PY_BINARY 5 - -/* Flags for pointer conversion */ - -#define SWIG_POINTER_EXCEPTION 0x1 -#define SWIG_POINTER_DISOWN 0x2 - -/* Exception handling in wrappers */ -#define SWIG_fail goto fail - -/* Constant information structure */ -typedef struct swig_const_info { - int type; - char *name; - long lvalue; - double dvalue; - void *pvalue; - swig_type_info **ptype; -} swig_const_info; - -#ifdef SWIG_NOINCLUDE - -SWIGEXPORT(PyObject *) SWIG_newvarlink(); -SWIGEXPORT(void) SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -SWIGEXPORT(int) SWIG_ConvertPtr(PyObject *, void **, swig_type_info *, int); -SWIGEXPORT(int) SWIG_ConvertPacked(PyObject *, void *, int sz, swig_type_info *, int); -SWIGEXPORT(char *) SWIG_PackData(char *c, void *, int); -SWIGEXPORT(char *) SWIG_UnpackData(char *c, void *, int); -SWIGEXPORT(PyObject *) SWIG_NewPointerObj(void *, swig_type_info *,int own); -SWIGEXPORT(PyObject *) SWIG_NewPackedObj(void *, int sz, swig_type_info *); -SWIGEXPORT(void) SWIG_InstallConstants(PyObject *d, swig_const_info constants[]); -#else - -/* ----------------------------------------------------------------------------- - * global variable support code. - * ----------------------------------------------------------------------------- */ - -typedef struct swig_globalvar { - char *name; /* Name of global variable */ - PyObject *(*get_attr)(void); /* Return the current value */ - int (*set_attr)(PyObject *); /* Set the value */ - struct swig_globalvar *next; -} swig_globalvar; - -typedef struct swig_varlinkobject { - PyObject_HEAD - swig_globalvar *vars; -} swig_varlinkobject; - -static PyObject * -swig_varlink_repr(swig_varlinkobject *v) { - v = v; - return PyString_FromString(""); -} - -static int -swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) { - swig_globalvar *var; - flags = flags; - fprintf(fp,"Global variables { "); - for (var = v->vars; var; var=var->next) { - fprintf(fp,"%s", var->name); - if (var->next) fprintf(fp,", "); - } - fprintf(fp," }\n"); - return 0; -} - -static PyObject * -swig_varlink_getattr(swig_varlinkobject *v, char *n) { - swig_globalvar *var = v->vars; - while (var) { - if (strcmp(var->name,n) == 0) { - return (*var->get_attr)(); - } - var = var->next; - } - PyErr_SetString(PyExc_NameError,"Unknown C global variable"); - return NULL; -} - -static int -swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) { - swig_globalvar *var = v->vars; - while (var) { - if (strcmp(var->name,n) == 0) { - return (*var->set_attr)(p); - } - var = var->next; - } - PyErr_SetString(PyExc_NameError,"Unknown C global variable"); - return 1; -} - -statichere PyTypeObject varlinktype = { - PyObject_HEAD_INIT(0) - 0, - (char *)"swigvarlink", /* Type name */ - sizeof(swig_varlinkobject), /* Basic size */ - 0, /* Itemsize */ - 0, /* Deallocator */ - (printfunc) swig_varlink_print, /* Print */ - (getattrfunc) swig_varlink_getattr, /* get attr */ - (setattrfunc) swig_varlink_setattr, /* Set attr */ - 0, /* tp_compare */ - (reprfunc) swig_varlink_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_mapping*/ - 0, /* tp_hash */ -}; - -/* Create a variable linking object for use later */ -SWIGRUNTIME(PyObject *) -SWIG_newvarlink(void) { - swig_varlinkobject *result = 0; - result = PyMem_NEW(swig_varlinkobject,1); - varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ - result->ob_type = &varlinktype; - result->vars = 0; - result->ob_refcnt = 0; - Py_XINCREF((PyObject *) result); - return ((PyObject*) result); -} - -SWIGRUNTIME(void) -SWIG_addvarlink(PyObject *p, char *name, - PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) { - swig_varlinkobject *v; - swig_globalvar *gv; - v= (swig_varlinkobject *) p; - gv = (swig_globalvar *) malloc(sizeof(swig_globalvar)); - gv->name = (char *) malloc(strlen(name)+1); - strcpy(gv->name,name); - gv->get_attr = get_attr; - gv->set_attr = set_attr; - gv->next = v->vars; - v->vars = gv; -} - -/* Pack binary data into a string */ -SWIGRUNTIME(char *) -SWIG_PackData(char *c, void *ptr, int sz) { - static char hex[17] = "0123456789abcdef"; - int i; - unsigned char *u = (unsigned char *) ptr; - register unsigned char uu; - for (i = 0; i < sz; i++,u++) { - uu = *u; - *(c++) = hex[(uu & 0xf0) >> 4]; - *(c++) = hex[uu & 0xf]; - } - return c; -} - -/* Unpack binary data from a string */ -SWIGRUNTIME(char *) -SWIG_UnpackData(char *c, void *ptr, int sz) { - register unsigned char uu = 0; - register int d; - unsigned char *u = (unsigned char *) ptr; - int i; - for (i = 0; i < sz; i++, u++) { - d = *(c++); - if ((d >= '0') && (d <= '9')) - uu = ((d - '0') << 4); - else if ((d >= 'a') && (d <= 'f')) - uu = ((d - ('a'-10)) << 4); - d = *(c++); - if ((d >= '0') && (d <= '9')) - uu |= (d - '0'); - else if ((d >= 'a') && (d <= 'f')) - uu |= (d - ('a'-10)); - *u = uu; - } - return c; -} - -/* Convert a pointer value */ -SWIGRUNTIME(int) -SWIG_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) { - swig_type_info *tc; - char *c; - static PyObject *SWIG_this = 0; - int newref = 0; - PyObject *pyobj = 0; - - if (!obj) return 0; - if (obj == Py_None) { - *ptr = 0; - return 0; - } -#ifdef SWIG_COBJECT_TYPES - if (!(PyCObject_Check(obj))) { - if (!SWIG_this) - SWIG_this = PyString_FromString("this"); - pyobj = obj; - obj = PyObject_GetAttr(obj,SWIG_this); - newref = 1; - if (!obj) goto type_error; - if (!PyCObject_Check(obj)) { - Py_DECREF(obj); - goto type_error; - } - } - *ptr = PyCObject_AsVoidPtr(obj); - c = (char *) PyCObject_GetDesc(obj); - if (newref) Py_DECREF(obj); - goto cobject; -#else - if (!(PyString_Check(obj))) { - if (!SWIG_this) - SWIG_this = PyString_FromString("this"); - pyobj = obj; - obj = PyObject_GetAttr(obj,SWIG_this); - newref = 1; - if (!obj) goto type_error; - if (!PyString_Check(obj)) { - Py_DECREF(obj); - goto type_error; - } - } - c = PyString_AsString(obj); - /* Pointer values must start with leading underscore */ - if (*c != '_') { - *ptr = (void *) 0; - if (strcmp(c,"NULL") == 0) { - if (newref) { Py_DECREF(obj); } - return 0; - } else { - if (newref) { Py_DECREF(obj); } - goto type_error; - } - } - c++; - c = SWIG_UnpackData(c,ptr,sizeof(void *)); - if (newref) { Py_DECREF(obj); } -#endif - -#ifdef SWIG_COBJECT_TYPES -cobject: -#endif - - if (ty) { - tc = SWIG_TypeCheck(c,ty); - if (!tc) goto type_error; - *ptr = SWIG_TypeCast(tc,(void*) *ptr); - } - - if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) { - PyObject *zero = PyInt_FromLong(0); - PyObject_SetAttrString(pyobj,"thisown",zero); - Py_DECREF(zero); - } - return 0; - -type_error: - if (flags & SWIG_POINTER_EXCEPTION) { - if (ty) { - char *temp = (char *) malloc(64+strlen(ty->name)); - sprintf(temp,"Type error. Expected %s", ty->name); - PyErr_SetString(PyExc_TypeError, temp); - free((char *) temp); - } else { - PyErr_SetString(PyExc_TypeError,"Expected a pointer"); - } - } - return -1; -} - -/* Convert a packed value value */ -SWIGRUNTIME(int) -SWIG_ConvertPacked(PyObject *obj, void *ptr, int sz, swig_type_info *ty, int flags) { - swig_type_info *tc; - char *c; - - if ((!obj) || (!PyString_Check(obj))) goto type_error; - c = PyString_AsString(obj); - /* Pointer values must start with leading underscore */ - if (*c != '_') goto type_error; - c++; - c = SWIG_UnpackData(c,ptr,sz); - if (ty) { - tc = SWIG_TypeCheck(c,ty); - if (!tc) goto type_error; - } - return 0; - -type_error: - - if (flags) { - if (ty) { - char *temp = (char *) malloc(64+strlen(ty->name)); - sprintf(temp,"Type error. Expected %s", ty->name); - PyErr_SetString(PyExc_TypeError, temp); - free((char *) temp); - } else { - PyErr_SetString(PyExc_TypeError,"Expected a pointer"); - } - } - return -1; -} - -/* Create a new pointer object */ -SWIGRUNTIME(PyObject *) -SWIG_NewPointerObj(void *ptr, swig_type_info *type, int own) { - PyObject *robj; - if (!ptr) { - Py_INCREF(Py_None); - return Py_None; - } -#ifdef SWIG_COBJECT_TYPES - robj = PyCObject_FromVoidPtrAndDesc((void *) ptr, (char *) type->name, NULL); -#else - { - char result[1024]; - char *r = result; - *(r++) = '_'; - r = SWIG_PackData(r,&ptr,sizeof(void *)); - strcpy(r,type->name); - robj = PyString_FromString(result); - } -#endif - if (!robj || (robj == Py_None)) return robj; - if (type->clientdata) { - PyObject *inst; - PyObject *args = Py_BuildValue((char*)"(O)", robj); - Py_DECREF(robj); - inst = PyObject_CallObject((PyObject *) type->clientdata, args); - Py_DECREF(args); - if (inst) { - if (own) { - PyObject *n = PyInt_FromLong(1); - PyObject_SetAttrString(inst,(char*)"thisown",n); - Py_DECREF(n); - } - robj = inst; - } - } - return robj; -} - -SWIGRUNTIME(PyObject *) -SWIG_NewPackedObj(void *ptr, int sz, swig_type_info *type) { - char result[1024]; - char *r = result; - if ((2*sz + 1 + strlen(type->name)) > 1000) return 0; - *(r++) = '_'; - r = SWIG_PackData(r,ptr,sz); - strcpy(r,type->name); - return PyString_FromString(result); -} - -/* Install Constants */ -SWIGRUNTIME(void) -SWIG_InstallConstants(PyObject *d, swig_const_info constants[]) { - int i; - PyObject *obj; - for (i = 0; constants[i].type; i++) { - switch(constants[i].type) { - case SWIG_PY_INT: - obj = PyInt_FromLong(constants[i].lvalue); - break; - case SWIG_PY_FLOAT: - obj = PyFloat_FromDouble(constants[i].dvalue); - break; - case SWIG_PY_STRING: - obj = PyString_FromString((char *) constants[i].pvalue); - break; - case SWIG_PY_POINTER: - obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0); - break; - case SWIG_PY_BINARY: - obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype)); - break; - default: - obj = 0; - break; - } - if (obj) { - PyDict_SetItemString(d,constants[i].name,obj); - Py_DECREF(obj); - } - } -} - -#endif - -#ifdef __cplusplus -} -#endif - - - - - - - - -/* -------- TYPES TABLE (BEGIN) -------- */ - -#define SWIGTYPE_p_G4RunManager swig_types[0] -#define SWIGTYPE_p_G4ScoreTable swig_types[1] -#define SWIGTYPE_p_G4VImportanceAlgorithm swig_types[2] -#define SWIGTYPE_p_G4CellScoreValues swig_types[3] -#define SWIGTYPE_p_G4IStore swig_types[4] -#define SWIGTYPE_p_G4VIStore swig_types[5] -#define SWIGTYPE_p_G4ParallelGeometrySampler swig_types[6] -#define SWIGTYPE_p_G4CellScorerStore swig_types[7] -#define SWIGTYPE_p_G4VCellScorerStore swig_types[8] -#define SWIGTYPE_p_B03AppBase swig_types[9] -#define SWIGTYPE_p_G4std__ostream swig_types[10] -#define SWIGTYPE_p_G4CellStoreScorer swig_types[11] -#define SWIGTYPE_p_G4CellScoreComposer swig_types[12] -#define SWIGTYPE_p_G4GeometryCell swig_types[13] -#define SWIGTYPE_p_G4MapGeometryCellCellScorer swig_types[14] -#define SWIGTYPE_p_G4CellScorer swig_types[15] -#define SWIGTYPE_p_G4VScorer swig_types[16] -#define SWIGTYPE_p_G4bool swig_types[17] -#define SWIGTYPE_p_G4VPhysicalVolume swig_types[18] -#define SWIGTYPE_p_G4double swig_types[19] -#define SWIGTYPE_p_B03ImportanceDetectorConstruction swig_types[20] -static swig_type_info *swig_types[22]; - -/* -------- TYPES TABLE (END) -------- */ - - -/*----------------------------------------------- - @(target):= _B03App.so - ------------------------------------------------*/ -#define SWIG_init init_B03App - -#define SWIG_name "_B03App" - -#include "globals.hh" -#include "B03App.hh" -#include "G4RunManager.hh" -#include "G4IStore.hh" -#include "G4VCellScorerStore.hh" -#include "G4VScorer.hh" -#include "G4ParallelGeometrySampler.hh" -#include "G4CellScorerStore.hh" -#include "G4CellStoreScorer.hh" -#include "G4GeometryCell.hh" -#include "G4CellScoreComposer.hh" -#include "G4CellScoreValues.hh" -#include "G4CellScorer.hh" -#include "G4ScoreTable.hh" -#include "G4VIStore.hh" -#include -#include -#include -#include "G4VPhysicalVolume.hh" -#include "B03ImportanceDetectorConstruction.hh" -#include "G4VImportanceAlgorithm.hh" - -char const *G4ScoreTable_Write(G4ScoreTable *self,G4MapGeometryCellCellScorer const &cs){ - std::ostrstream tmpout; - self->Print(cs, &tmpout); - string *value = new string(tmpout.str()); - return value->c_str(); - } -char const *B03ImportanceDetectorConstruction_ListPhysNames(B03ImportanceDetectorConstruction *self){ - G4String *value = new G4String(self->ListPhysNamesAsG4String()); - return value->c_str(); - } -#ifdef __cplusplus -extern "C" { -#endif -static PyObject *_wrap_G4RunManager_BeamOn(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4RunManager *arg1 ; - int arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Oi:G4RunManager_BeamOn",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4RunManager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->BeamOn(arg2); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4RunManager_Initialize(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4RunManager *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4RunManager_Initialize",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4RunManager,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->Initialize(); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4RunManager_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4RunManager, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject * G4VIStore_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4VIStore, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject * G4VPhysicalVolume_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4VPhysicalVolume, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_G4GeometryCell(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4VPhysicalVolume *arg1 ; - int arg2 ; - G4GeometryCell *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Oi:new_G4GeometryCell",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VPhysicalVolume,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (G4GeometryCell *)new G4GeometryCell((G4VPhysicalVolume const &)*arg1,arg2); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4GeometryCell, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_delete_G4GeometryCell(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4GeometryCell *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:delete_G4GeometryCell",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - delete arg1; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4GeometryCell_GetPhysicalVolume(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4GeometryCell *arg1 ; - G4VPhysicalVolume *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4GeometryCell_GetPhysicalVolume",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - { - G4VPhysicalVolume const &_result_ref = ((G4GeometryCell const *)arg1)->GetPhysicalVolume(); - result = (G4VPhysicalVolume *) &_result_ref; - } - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4VPhysicalVolume, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4GeometryCell_GetReplicaNumber(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4GeometryCell *arg1 ; - int result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4GeometryCell_GetReplicaNumber",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (int)((G4GeometryCell const *)arg1)->GetReplicaNumber(); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4GeometryCell_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4GeometryCell, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_G4IStore(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4VPhysicalVolume *arg1 ; - G4IStore *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:new_G4IStore",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VPhysicalVolume,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (G4IStore *)new G4IStore((G4VPhysicalVolume const &)*arg1); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4IStore, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_delete_G4IStore(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4IStore *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:delete_G4IStore",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - delete arg1; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4IStore_AddImportanceGeometryCell(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4IStore *arg1 ; - double arg2 ; - G4GeometryCell *arg3 ; - PyObject * obj0 = 0 ; - PyObject * obj2 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OdO:G4IStore_AddImportanceGeometryCell",&obj0,&arg2,&obj2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->AddImportanceGeometryCell(arg2,(G4GeometryCell const &)*arg3); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4IStore_ChangeImportance(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4IStore *arg1 ; - double arg2 ; - G4GeometryCell *arg3 ; - PyObject * obj0 = 0 ; - PyObject * obj2 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OdO:G4IStore_ChangeImportance",&obj0,&arg2,&obj2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->ChangeImportance(arg2,(G4GeometryCell const &)*arg3); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4IStore_GetImportance(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4IStore *arg1 ; - G4GeometryCell *arg2 ; - double result; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO:G4IStore_GetImportance",&obj0,&obj1)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double)((G4IStore const *)arg1)->GetImportance((G4GeometryCell const &)*arg2); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4IStore_IsKnown(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4IStore *arg1 ; - G4GeometryCell *arg2 ; - bool result; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO:G4IStore_IsKnown",&obj0,&obj1)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (bool)((G4IStore const *)arg1)->IsKnown((G4GeometryCell const &)*arg2); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4IStore_GetWorldVolume(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4IStore *arg1 ; - G4VPhysicalVolume *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4IStore_GetWorldVolume",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4IStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - { - G4VPhysicalVolume const &_result_ref = ((G4IStore const *)arg1)->GetWorldVolume(); - result = (G4VPhysicalVolume *) &_result_ref; - } - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4VPhysicalVolume, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4IStore_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4IStore, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_G4CellScoreValues(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *result; - - if(!PyArg_ParseTuple(args,(char *)":new_G4CellScoreValues")) goto fail; - result = (G4CellScoreValues *)new G4CellScoreValues(); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellScoreValues, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSL_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSL_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumSL = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSL_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSL_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fSumSL); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSLW_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSLW_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumSLW = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSLW_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSLW_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fSumSLW); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSLW_v_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSLW_v_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumSLW_v = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSLW_v_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSLW_v_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fSumSLW_v); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSLWE_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSLWE_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumSLWE = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSLWE_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSLWE_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fSumSLWE); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSLWE_v_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumSLWE_v_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumSLWE_v = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumSLWE_v_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumSLWE_v_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fSumSLWE_v); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumTracksEntering_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - int arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Oi:G4CellScoreValues_fSumTracksEntering_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumTracksEntering = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumTracksEntering_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - int result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumTracksEntering_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (int) ((arg1)->fSumTracksEntering); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumPopulation_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - int arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Oi:G4CellScoreValues_fSumPopulation_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumPopulation = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumPopulation_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - int result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumPopulation_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (int) ((arg1)->fSumPopulation); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumCollisions_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - int arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Oi:G4CellScoreValues_fSumCollisions_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumCollisions = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumCollisions_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - int result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumCollisions_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (int) ((arg1)->fSumCollisions); - - resultobj = PyInt_FromLong((long)result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumCollisionsWeight_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fSumCollisionsWeight_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fSumCollisionsWeight = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fSumCollisionsWeight_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fSumCollisionsWeight_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fSumCollisionsWeight); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fNumberWeightedEnergy_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fNumberWeightedEnergy_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fNumberWeightedEnergy = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fNumberWeightedEnergy_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fNumberWeightedEnergy_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fNumberWeightedEnergy); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fFluxWeightedEnergy_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fFluxWeightedEnergy_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fFluxWeightedEnergy = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fFluxWeightedEnergy_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fFluxWeightedEnergy_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fFluxWeightedEnergy); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fAverageTrackWeight_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fAverageTrackWeight_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fAverageTrackWeight = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fAverageTrackWeight_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fAverageTrackWeight_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fAverageTrackWeight); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fImportance_set(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double arg2 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Od:G4CellScoreValues_fImportance_set",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (arg1) (arg1)->fImportance = arg2; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreValues_fImportance_get(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreValues *arg1 ; - double result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreValues_fImportance_get",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreValues,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (double) ((arg1)->fImportance); - - resultobj = PyFloat_FromDouble(result); - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4CellScoreValues_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4CellScoreValues, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_G4CellScoreComposer(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreComposer *result; - - if(!PyArg_ParseTuple(args,(char *)":new_G4CellScoreComposer")) goto fail; - result = (G4CellScoreComposer *)new G4CellScoreComposer(); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellScoreComposer, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_delete_G4CellScoreComposer(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreComposer *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:delete_G4CellScoreComposer",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreComposer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - delete arg1; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScoreComposer_GetStandardCellScoreValues(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScoreComposer *arg1 ; - G4CellScoreValues result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScoreComposer_GetStandardCellScoreValues",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScoreComposer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = ((G4CellScoreComposer const *)arg1)->GetStandardCellScoreValues(); - - { - G4CellScoreValues * resultptr; - resultptr = new G4CellScoreValues((G4CellScoreValues &) result); - resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4CellScoreValues, 1); - } - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4CellScoreComposer_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4CellScoreComposer, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_G4CellScorer_GetCellScoreComposer(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScorer *arg1 ; - G4CellScoreComposer result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScorer_GetCellScoreComposer",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = ((G4CellScorer const *)arg1)->GetCellScoreComposer(); - - { - G4CellScoreComposer * resultptr; - resultptr = new G4CellScoreComposer((G4CellScoreComposer &) result); - resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4CellScoreComposer, 1); - } - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScorer_GetCellScoreValues(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScorer *arg1 ; - G4CellScoreValues result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScorer_GetCellScoreValues",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = ((G4CellScorer const *)arg1)->GetCellScoreValues(); - - { - G4CellScoreValues * resultptr; - resultptr = new G4CellScoreValues((G4CellScoreValues &) result); - resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4CellScoreValues, 1); - } - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4CellScorer_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4CellScorer, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject * G4VCellScorerStore_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4VCellScorerStore, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_G4CellScorerStore(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScorerStore *result; - - if(!PyArg_ParseTuple(args,(char *)":new_G4CellScorerStore")) goto fail; - result = (G4CellScorerStore *)new G4CellScorerStore(); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellScorerStore, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_delete_G4CellScorerStore(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScorerStore *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:delete_G4CellScorerStore",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - delete arg1; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScorerStore_SetAutoScorerCreate(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScorerStore *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScorerStore_SetAutoScorerCreate",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->SetAutoScorerCreate(); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScorerStore_AddCellScorer(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScorerStore *arg1 ; - G4GeometryCell *arg2 ; - G4CellScorer *result; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO:G4CellScorerStore_AddCellScorer",&obj0,&obj1)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4GeometryCell,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (G4CellScorer *)(arg1)->AddCellScorer((G4GeometryCell const &)*arg2); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellScorer, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4CellScorerStore_GetMapGeometryCellCellScorer(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4CellScorerStore *arg1 ; - G4MapGeometryCellCellScorer *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4CellScorerStore_GetMapGeometryCellCellScorer",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4CellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - { - G4MapGeometryCellCellScorer const &_result_ref = ((G4CellScorerStore const *)arg1)->GetMapGeometryCellCellScorer(); - result = (G4MapGeometryCellCellScorer *) &_result_ref; - } - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4MapGeometryCellCellScorer, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4CellScorerStore_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4CellScorerStore, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject * G4VScorer_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4VScorer, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_G4CellStoreScorer(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4VCellScorerStore *arg1 ; - G4CellStoreScorer *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:new_G4CellStoreScorer",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VCellScorerStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (G4CellStoreScorer *)new G4CellStoreScorer(*arg1); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4CellStoreScorer, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4CellStoreScorer_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4CellStoreScorer, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject * G4VImportanceAlgorithm_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4VImportanceAlgorithm, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_G4ParallelGeometrySampler(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4VPhysicalVolume *arg1 ; - char *arg2 ; - G4ParallelGeometrySampler *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Os:new_G4ParallelGeometrySampler",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VPhysicalVolume,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (G4ParallelGeometrySampler *)new G4ParallelGeometrySampler(*arg1,(char const *)arg2); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4ParallelGeometrySampler, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_delete_G4ParallelGeometrySampler(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ParallelGeometrySampler *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:delete_G4ParallelGeometrySampler",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - delete arg1; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4ParallelGeometrySampler_PrepareScoring(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ParallelGeometrySampler *arg1 ; - G4VScorer *arg2 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO:G4ParallelGeometrySampler_PrepareScoring",&obj0,&obj1)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4VScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->PrepareScoring(arg2); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4ParallelGeometrySampler_PrepareImportanceSampling(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ParallelGeometrySampler *arg1 ; - G4VIStore *arg2 ; - G4VImportanceAlgorithm *arg3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO|O:G4ParallelGeometrySampler_PrepareImportanceSampling",&obj0,&obj1,&obj2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4VIStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (obj2) { - if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_G4VImportanceAlgorithm,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - } - (arg1)->PrepareImportanceSampling(arg2,(G4VImportanceAlgorithm const *)arg3); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4ParallelGeometrySampler_PrepareWeightRoulett(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ParallelGeometrySampler *arg1 ; - G4double arg2 ; - G4double arg3 ; - G4double arg4 ; - G4double *argp2 ; - G4double *argp3 ; - G4double *argp4 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - PyObject * obj3 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OOOO:G4ParallelGeometrySampler_PrepareWeightRoulett",&obj0,&obj1,&obj2,&obj3)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &argp2, SWIGTYPE_p_G4double,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg2 = *argp2; - if ((SWIG_ConvertPtr(obj2,(void **) &argp3, SWIGTYPE_p_G4double,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg3 = *argp3; - if ((SWIG_ConvertPtr(obj3,(void **) &argp4, SWIGTYPE_p_G4double,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail; - arg4 = *argp4; - (arg1)->PrepareWeightRoulett(arg2,arg3,arg4); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4ParallelGeometrySampler_Configure(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ParallelGeometrySampler *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4ParallelGeometrySampler_Configure",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->Configure(); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4ParallelGeometrySampler_ClearSampling(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ParallelGeometrySampler *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4ParallelGeometrySampler_ClearSampling",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - (arg1)->ClearSampling(); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4ParallelGeometrySampler_IsConfigured(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ParallelGeometrySampler *arg1 ; - G4bool result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:G4ParallelGeometrySampler_IsConfigured",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ParallelGeometrySampler,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = ((G4ParallelGeometrySampler const *)arg1)->IsConfigured(); - - { - G4bool * resultptr; - resultptr = new G4bool((G4bool &) result); - resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4bool, 1); - } - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4ParallelGeometrySampler_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4ParallelGeometrySampler, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_G4ScoreTable(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4VIStore *arg1 = 0 ; - G4ScoreTable *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"|O:new_G4ScoreTable",&obj0)) goto fail; - if (obj0) { - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4VIStore,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - } - result = (G4ScoreTable *)new G4ScoreTable((G4VIStore const *)arg1); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4ScoreTable, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_delete_G4ScoreTable(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ScoreTable *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:delete_G4ScoreTable",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ScoreTable,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - delete arg1; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4ScoreTable_Print(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ScoreTable *arg1 ; - G4MapGeometryCellCellScorer *arg2 ; - std::ostream *arg3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO|O:G4ScoreTable_Print",&obj0,&obj1,&obj2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ScoreTable,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4MapGeometryCellCellScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if (obj2) { - if ((SWIG_ConvertPtr(obj2,(void **) &arg3, SWIGTYPE_p_G4std__ostream,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - } - (arg1)->Print((G4MapGeometryCellCellScorer const &)*arg2,arg3); - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_G4ScoreTable_Write(PyObject *self, PyObject *args) { - PyObject *resultobj; - G4ScoreTable *arg1 ; - G4MapGeometryCellCellScorer *arg2 ; - char *result; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"OO:G4ScoreTable_Write",&obj0,&obj1)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_G4ScoreTable,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_G4MapGeometryCellCellScorer,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (char *)G4ScoreTable_Write(arg1,(G4MapGeometryCellCellScorer const &)*arg2); - - resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)""); - return resultobj; - fail: - return NULL; -} - - -static PyObject * G4ScoreTable_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_G4ScoreTable, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_new_B03ImportanceDetectorConstruction(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03ImportanceDetectorConstruction *result; - - if(!PyArg_ParseTuple(args,(char *)":new_B03ImportanceDetectorConstruction")) goto fail; - result = (B03ImportanceDetectorConstruction *)new B03ImportanceDetectorConstruction(); - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_B03ImportanceDetectorConstruction, 1); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_delete_B03ImportanceDetectorConstruction(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03ImportanceDetectorConstruction *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:delete_B03ImportanceDetectorConstruction",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - delete arg1; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_B03ImportanceDetectorConstruction_GetPhysicalVolumeByName(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03ImportanceDetectorConstruction *arg1 ; - char *arg2 ; - G4VPhysicalVolume *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Os:B03ImportanceDetectorConstruction_GetPhysicalVolumeByName",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - { - G4VPhysicalVolume const &_result_ref = ((B03ImportanceDetectorConstruction const *)arg1)->GetPhysicalVolumeByName((char const *)arg2); - result = (G4VPhysicalVolume *) &_result_ref; - } - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4VPhysicalVolume, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_B03ImportanceDetectorConstruction_GetWorldVolume(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03ImportanceDetectorConstruction *arg1 ; - G4VPhysicalVolume *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:B03ImportanceDetectorConstruction_GetWorldVolume",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - { - G4VPhysicalVolume &_result_ref = ((B03ImportanceDetectorConstruction const *)arg1)->GetWorldVolume(); - result = (G4VPhysicalVolume *) &_result_ref; - } - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4VPhysicalVolume, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_B03ImportanceDetectorConstruction_ListPhysNames(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03ImportanceDetectorConstruction *arg1 ; - char *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:B03ImportanceDetectorConstruction_ListPhysNames",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (char *)B03ImportanceDetectorConstruction_ListPhysNames(arg1); - - resultobj = result ? PyString_FromString(result) : Py_BuildValue((char*)""); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_B03ImportanceDetectorConstruction_GetGeometryCell(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03ImportanceDetectorConstruction *arg1 ; - int arg2 ; - SwigValueWrapper< G4GeometryCell > result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"Oi:B03ImportanceDetectorConstruction_GetGeometryCell",&obj0,&arg2)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03ImportanceDetectorConstruction,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - result = (arg1)->GetGeometryCell(arg2); - - { - G4GeometryCell * resultptr; - resultptr = new G4GeometryCell((G4GeometryCell &) result); - resultobj = SWIG_NewPointerObj((void *) resultptr, SWIGTYPE_p_G4GeometryCell, 1); - } - return resultobj; - fail: - return NULL; -} - - -static PyObject * B03ImportanceDetectorConstruction_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_B03ImportanceDetectorConstruction, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyObject *_wrap_delete_B03AppBase(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03AppBase *arg1 ; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:delete_B03AppBase",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03AppBase,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - delete arg1; - - Py_INCREF(Py_None); resultobj = Py_None; - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_B03AppBase_GetB03AppBase(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03AppBase *result; - - if(!PyArg_ParseTuple(args,(char *)":B03AppBase_GetB03AppBase")) goto fail; - { - B03AppBase &_result_ref = B03AppBase::GetB03AppBase(); - result = (B03AppBase *) &_result_ref; - } - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_B03AppBase, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject *_wrap_B03AppBase_GetRunManager(PyObject *self, PyObject *args) { - PyObject *resultobj; - B03AppBase *arg1 ; - G4RunManager *result; - PyObject * obj0 = 0 ; - - if(!PyArg_ParseTuple(args,(char *)"O:B03AppBase_GetRunManager",&obj0)) goto fail; - if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_B03AppBase,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail; - { - G4RunManager &_result_ref = (arg1)->GetRunManager(); - result = (G4RunManager *) &_result_ref; - } - - resultobj = SWIG_NewPointerObj((void *) result, SWIGTYPE_p_G4RunManager, 0); - return resultobj; - fail: - return NULL; -} - - -static PyObject * B03AppBase_swigregister(PyObject *self, PyObject *args) { - PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL; - SWIG_TypeClientData(SWIGTYPE_p_B03AppBase, obj); - Py_INCREF(obj); - return Py_BuildValue((char *)""); -} -static PyMethodDef SwigMethods[] = { - { (char *)"G4RunManager_BeamOn", _wrap_G4RunManager_BeamOn, METH_VARARGS }, - { (char *)"G4RunManager_Initialize", _wrap_G4RunManager_Initialize, METH_VARARGS }, - { (char *)"G4RunManager_swigregister", G4RunManager_swigregister, METH_VARARGS }, - { (char *)"G4VIStore_swigregister", G4VIStore_swigregister, METH_VARARGS }, - { (char *)"G4VPhysicalVolume_swigregister", G4VPhysicalVolume_swigregister, METH_VARARGS }, - { (char *)"new_G4GeometryCell", _wrap_new_G4GeometryCell, METH_VARARGS }, - { (char *)"delete_G4GeometryCell", _wrap_delete_G4GeometryCell, METH_VARARGS }, - { (char *)"G4GeometryCell_GetPhysicalVolume", _wrap_G4GeometryCell_GetPhysicalVolume, METH_VARARGS }, - { (char *)"G4GeometryCell_GetReplicaNumber", _wrap_G4GeometryCell_GetReplicaNumber, METH_VARARGS }, - { (char *)"G4GeometryCell_swigregister", G4GeometryCell_swigregister, METH_VARARGS }, - { (char *)"new_G4IStore", _wrap_new_G4IStore, METH_VARARGS }, - { (char *)"delete_G4IStore", _wrap_delete_G4IStore, METH_VARARGS }, - { (char *)"G4IStore_AddImportanceGeometryCell", _wrap_G4IStore_AddImportanceGeometryCell, METH_VARARGS }, - { (char *)"G4IStore_ChangeImportance", _wrap_G4IStore_ChangeImportance, METH_VARARGS }, - { (char *)"G4IStore_GetImportance", _wrap_G4IStore_GetImportance, METH_VARARGS }, - { (char *)"G4IStore_IsKnown", _wrap_G4IStore_IsKnown, METH_VARARGS }, - { (char *)"G4IStore_GetWorldVolume", _wrap_G4IStore_GetWorldVolume, METH_VARARGS }, - { (char *)"G4IStore_swigregister", G4IStore_swigregister, METH_VARARGS }, - { (char *)"new_G4CellScoreValues", _wrap_new_G4CellScoreValues, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSL_set", _wrap_G4CellScoreValues_fSumSL_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSL_get", _wrap_G4CellScoreValues_fSumSL_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSLW_set", _wrap_G4CellScoreValues_fSumSLW_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSLW_get", _wrap_G4CellScoreValues_fSumSLW_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSLW_v_set", _wrap_G4CellScoreValues_fSumSLW_v_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSLW_v_get", _wrap_G4CellScoreValues_fSumSLW_v_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSLWE_set", _wrap_G4CellScoreValues_fSumSLWE_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSLWE_get", _wrap_G4CellScoreValues_fSumSLWE_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSLWE_v_set", _wrap_G4CellScoreValues_fSumSLWE_v_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumSLWE_v_get", _wrap_G4CellScoreValues_fSumSLWE_v_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumTracksEntering_set", _wrap_G4CellScoreValues_fSumTracksEntering_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumTracksEntering_get", _wrap_G4CellScoreValues_fSumTracksEntering_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumPopulation_set", _wrap_G4CellScoreValues_fSumPopulation_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumPopulation_get", _wrap_G4CellScoreValues_fSumPopulation_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumCollisions_set", _wrap_G4CellScoreValues_fSumCollisions_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumCollisions_get", _wrap_G4CellScoreValues_fSumCollisions_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumCollisionsWeight_set", _wrap_G4CellScoreValues_fSumCollisionsWeight_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fSumCollisionsWeight_get", _wrap_G4CellScoreValues_fSumCollisionsWeight_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fNumberWeightedEnergy_set", _wrap_G4CellScoreValues_fNumberWeightedEnergy_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fNumberWeightedEnergy_get", _wrap_G4CellScoreValues_fNumberWeightedEnergy_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fFluxWeightedEnergy_set", _wrap_G4CellScoreValues_fFluxWeightedEnergy_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fFluxWeightedEnergy_get", _wrap_G4CellScoreValues_fFluxWeightedEnergy_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fAverageTrackWeight_set", _wrap_G4CellScoreValues_fAverageTrackWeight_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fAverageTrackWeight_get", _wrap_G4CellScoreValues_fAverageTrackWeight_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_fImportance_set", _wrap_G4CellScoreValues_fImportance_set, METH_VARARGS }, - { (char *)"G4CellScoreValues_fImportance_get", _wrap_G4CellScoreValues_fImportance_get, METH_VARARGS }, - { (char *)"G4CellScoreValues_swigregister", G4CellScoreValues_swigregister, METH_VARARGS }, - { (char *)"new_G4CellScoreComposer", _wrap_new_G4CellScoreComposer, METH_VARARGS }, - { (char *)"delete_G4CellScoreComposer", _wrap_delete_G4CellScoreComposer, METH_VARARGS }, - { (char *)"G4CellScoreComposer_GetStandardCellScoreValues", _wrap_G4CellScoreComposer_GetStandardCellScoreValues, METH_VARARGS }, - { (char *)"G4CellScoreComposer_swigregister", G4CellScoreComposer_swigregister, METH_VARARGS }, - { (char *)"G4CellScorer_GetCellScoreComposer", _wrap_G4CellScorer_GetCellScoreComposer, METH_VARARGS }, - { (char *)"G4CellScorer_GetCellScoreValues", _wrap_G4CellScorer_GetCellScoreValues, METH_VARARGS }, - { (char *)"G4CellScorer_swigregister", G4CellScorer_swigregister, METH_VARARGS }, - { (char *)"G4VCellScorerStore_swigregister", G4VCellScorerStore_swigregister, METH_VARARGS }, - { (char *)"new_G4CellScorerStore", _wrap_new_G4CellScorerStore, METH_VARARGS }, - { (char *)"delete_G4CellScorerStore", _wrap_delete_G4CellScorerStore, METH_VARARGS }, - { (char *)"G4CellScorerStore_SetAutoScorerCreate", _wrap_G4CellScorerStore_SetAutoScorerCreate, METH_VARARGS }, - { (char *)"G4CellScorerStore_AddCellScorer", _wrap_G4CellScorerStore_AddCellScorer, METH_VARARGS }, - { (char *)"G4CellScorerStore_GetMapGeometryCellCellScorer", _wrap_G4CellScorerStore_GetMapGeometryCellCellScorer, METH_VARARGS }, - { (char *)"G4CellScorerStore_swigregister", G4CellScorerStore_swigregister, METH_VARARGS }, - { (char *)"G4VScorer_swigregister", G4VScorer_swigregister, METH_VARARGS }, - { (char *)"new_G4CellStoreScorer", _wrap_new_G4CellStoreScorer, METH_VARARGS }, - { (char *)"G4CellStoreScorer_swigregister", G4CellStoreScorer_swigregister, METH_VARARGS }, - { (char *)"G4VImportanceAlgorithm_swigregister", G4VImportanceAlgorithm_swigregister, METH_VARARGS }, - { (char *)"new_G4ParallelGeometrySampler", _wrap_new_G4ParallelGeometrySampler, METH_VARARGS }, - { (char *)"delete_G4ParallelGeometrySampler", _wrap_delete_G4ParallelGeometrySampler, METH_VARARGS }, - { (char *)"G4ParallelGeometrySampler_PrepareScoring", _wrap_G4ParallelGeometrySampler_PrepareScoring, METH_VARARGS }, - { (char *)"G4ParallelGeometrySampler_PrepareImportanceSampling", _wrap_G4ParallelGeometrySampler_PrepareImportanceSampling, METH_VARARGS }, - { (char *)"G4ParallelGeometrySampler_PrepareWeightRoulett", _wrap_G4ParallelGeometrySampler_PrepareWeightRoulett, METH_VARARGS }, - { (char *)"G4ParallelGeometrySampler_Configure", _wrap_G4ParallelGeometrySampler_Configure, METH_VARARGS }, - { (char *)"G4ParallelGeometrySampler_ClearSampling", _wrap_G4ParallelGeometrySampler_ClearSampling, METH_VARARGS }, - { (char *)"G4ParallelGeometrySampler_IsConfigured", _wrap_G4ParallelGeometrySampler_IsConfigured, METH_VARARGS }, - { (char *)"G4ParallelGeometrySampler_swigregister", G4ParallelGeometrySampler_swigregister, METH_VARARGS }, - { (char *)"new_G4ScoreTable", _wrap_new_G4ScoreTable, METH_VARARGS }, - { (char *)"delete_G4ScoreTable", _wrap_delete_G4ScoreTable, METH_VARARGS }, - { (char *)"G4ScoreTable_Print", _wrap_G4ScoreTable_Print, METH_VARARGS }, - { (char *)"G4ScoreTable_Write", _wrap_G4ScoreTable_Write, METH_VARARGS }, - { (char *)"G4ScoreTable_swigregister", G4ScoreTable_swigregister, METH_VARARGS }, - { (char *)"new_B03ImportanceDetectorConstruction", _wrap_new_B03ImportanceDetectorConstruction, METH_VARARGS }, - { (char *)"delete_B03ImportanceDetectorConstruction", _wrap_delete_B03ImportanceDetectorConstruction, METH_VARARGS }, - { (char *)"B03ImportanceDetectorConstruction_GetPhysicalVolumeByName", _wrap_B03ImportanceDetectorConstruction_GetPhysicalVolumeByName, METH_VARARGS }, - { (char *)"B03ImportanceDetectorConstruction_GetWorldVolume", _wrap_B03ImportanceDetectorConstruction_GetWorldVolume, METH_VARARGS }, - { (char *)"B03ImportanceDetectorConstruction_ListPhysNames", _wrap_B03ImportanceDetectorConstruction_ListPhysNames, METH_VARARGS }, - { (char *)"B03ImportanceDetectorConstruction_GetGeometryCell", _wrap_B03ImportanceDetectorConstruction_GetGeometryCell, METH_VARARGS }, - { (char *)"B03ImportanceDetectorConstruction_swigregister", B03ImportanceDetectorConstruction_swigregister, METH_VARARGS }, - { (char *)"delete_B03AppBase", _wrap_delete_B03AppBase, METH_VARARGS }, - { (char *)"B03AppBase_GetB03AppBase", _wrap_B03AppBase_GetB03AppBase, METH_VARARGS }, - { (char *)"B03AppBase_GetRunManager", _wrap_B03AppBase_GetRunManager, METH_VARARGS }, - { (char *)"B03AppBase_swigregister", B03AppBase_swigregister, METH_VARARGS }, - { NULL, NULL } -}; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ - -static void *_p_G4IStoreTo_p_G4VIStore(void *x) { - return (void *)((G4VIStore *) ((G4IStore *) x)); -} -static void *_p_G4CellScorerStoreTo_p_G4VCellScorerStore(void *x) { - return (void *)((G4VCellScorerStore *) ((G4CellScorerStore *) x)); -} -static void *_p_G4CellStoreScorerTo_p_G4VScorer(void *x) { - return (void *)((G4VScorer *) ((G4CellStoreScorer *) x)); -} -static swig_type_info _swigt__p_G4RunManager[] = {{"_p_G4RunManager", 0, "G4RunManager *", 0},{"_p_G4RunManager"},{0}}; -static swig_type_info _swigt__p_G4ScoreTable[] = {{"_p_G4ScoreTable", 0, "G4ScoreTable *", 0},{"_p_G4ScoreTable"},{0}}; -static swig_type_info _swigt__p_G4VImportanceAlgorithm[] = {{"_p_G4VImportanceAlgorithm", 0, "G4VImportanceAlgorithm *", 0},{"_p_G4VImportanceAlgorithm"},{0}}; -static swig_type_info _swigt__p_G4CellScoreValues[] = {{"_p_G4CellScoreValues", 0, "G4CellScoreValues *", 0},{"_p_G4CellScoreValues"},{0}}; -static swig_type_info _swigt__p_G4IStore[] = {{"_p_G4IStore", 0, "G4IStore *", 0},{"_p_G4IStore"},{0}}; -static swig_type_info _swigt__p_G4VIStore[] = {{"_p_G4VIStore", 0, "G4VIStore *", 0},{"_p_G4VIStore"},{"_p_G4IStore", _p_G4IStoreTo_p_G4VIStore},{0}}; -static swig_type_info _swigt__p_G4ParallelGeometrySampler[] = {{"_p_G4ParallelGeometrySampler", 0, "G4ParallelGeometrySampler *", 0},{"_p_G4ParallelGeometrySampler"},{0}}; -static swig_type_info _swigt__p_G4CellScorerStore[] = {{"_p_G4CellScorerStore", 0, "G4CellScorerStore *", 0},{"_p_G4CellScorerStore"},{0}}; -static swig_type_info _swigt__p_G4VCellScorerStore[] = {{"_p_G4VCellScorerStore", 0, "G4VCellScorerStore *", 0},{"_p_G4VCellScorerStore"},{"_p_G4CellScorerStore", _p_G4CellScorerStoreTo_p_G4VCellScorerStore},{0}}; -static swig_type_info _swigt__p_B03AppBase[] = {{"_p_B03AppBase", 0, "B03AppBase *", 0},{"_p_B03AppBase"},{0}}; -static swig_type_info _swigt__p_G4std__ostream[] = {{"_p_G4std__ostream", 0, "std::ostream *", 0},{"_p_G4std__ostream"},{0}}; -static swig_type_info _swigt__p_G4CellStoreScorer[] = {{"_p_G4CellStoreScorer", 0, "G4CellStoreScorer *", 0},{"_p_G4CellStoreScorer"},{0}}; -static swig_type_info _swigt__p_G4CellScoreComposer[] = {{"_p_G4CellScoreComposer", 0, "G4CellScoreComposer *", 0},{"_p_G4CellScoreComposer"},{0}}; -static swig_type_info _swigt__p_G4GeometryCell[] = {{"_p_G4GeometryCell", 0, "G4GeometryCell *", 0},{"_p_G4GeometryCell"},{0}}; -static swig_type_info _swigt__p_G4MapGeometryCellCellScorer[] = {{"_p_G4MapGeometryCellCellScorer", 0, "G4MapGeometryCellCellScorer const &", 0},{"_p_G4MapGeometryCellCellScorer"},{0}}; -static swig_type_info _swigt__p_G4CellScorer[] = {{"_p_G4CellScorer", 0, "G4CellScorer *", 0},{"_p_G4CellScorer"},{0}}; -static swig_type_info _swigt__p_G4VScorer[] = {{"_p_G4VScorer", 0, "G4VScorer *", 0},{"_p_G4VScorer"},{"_p_G4CellStoreScorer", _p_G4CellStoreScorerTo_p_G4VScorer},{0}}; -static swig_type_info _swigt__p_G4bool[] = {{"_p_G4bool", 0, "G4bool *", 0},{"_p_G4bool"},{0}}; -static swig_type_info _swigt__p_G4VPhysicalVolume[] = {{"_p_G4VPhysicalVolume", 0, "G4VPhysicalVolume *", 0},{"_p_G4VPhysicalVolume"},{0}}; -static swig_type_info _swigt__p_G4double[] = {{"_p_G4double", 0, "G4double *", 0},{"_p_G4double"},{0}}; -static swig_type_info _swigt__p_B03ImportanceDetectorConstruction[] = {{"_p_B03ImportanceDetectorConstruction", 0, "B03ImportanceDetectorConstruction *", 0},{"_p_B03ImportanceDetectorConstruction"},{0}}; - -static swig_type_info *swig_types_initial[] = { -_swigt__p_G4RunManager, -_swigt__p_G4ScoreTable, -_swigt__p_G4VImportanceAlgorithm, -_swigt__p_G4CellScoreValues, -_swigt__p_G4IStore, -_swigt__p_G4VIStore, -_swigt__p_G4ParallelGeometrySampler, -_swigt__p_G4CellScorerStore, -_swigt__p_G4VCellScorerStore, -_swigt__p_B03AppBase, -_swigt__p_G4std__ostream, -_swigt__p_G4CellStoreScorer, -_swigt__p_G4CellScoreComposer, -_swigt__p_G4GeometryCell, -_swigt__p_G4MapGeometryCellCellScorer, -_swigt__p_G4CellScorer, -_swigt__p_G4VScorer, -_swigt__p_G4bool, -_swigt__p_G4VPhysicalVolume, -_swigt__p_G4double, -_swigt__p_B03ImportanceDetectorConstruction, -0 -}; - - -/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */ - -static swig_const_info swig_const_table[] = { -{0}}; - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void) SWIG_init(void) { - static PyObject *SWIG_globals = 0; - static int typeinit = 0; - PyObject *m, *d; - int i; - if (!SWIG_globals) SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule((char *) SWIG_name, SwigMethods); - d = PyModule_GetDict(m); - - if (!typeinit) { - for (i = 0; swig_types_initial[i]; i++) { - swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]); - } - typeinit = 1; - } - SWIG_InstallConstants(d,swig_const_table); - -} - diff --git a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc index 44aed760a0..8c31da88fe 100644 --- a/examples/extended/biasing/B03/src/B03DetectorConstruction.cc +++ b/examples/extended/biasing/B03/src/B03DetectorConstruction.cc @@ -21,10 +21,11 @@ // ******************************************************************** // // -// $Id: B03DetectorConstruction.cc,v 1.12 2003/06/16 16:47:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: B03DetectorConstruction.cc,v 1.13 2003/07/31 11:59:41 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +#include "G4Types.hh" #include #include "globals.hh" diff --git a/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc b/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc index 11ddacdef9..f73f3b19fe 100644 --- a/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc +++ b/examples/extended/biasing/B03/src/B03ImportanceDetectorConstruction.cc @@ -21,11 +21,12 @@ // ******************************************************************** // // -// $Id: B03ImportanceDetectorConstruction.cc,v 1.5 2003/06/16 16:47:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: B03ImportanceDetectorConstruction.cc,v 1.6 2003/07/31 11:59:41 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" +#include "G4Types.hh" #include #include "B03ImportanceDetectorConstruction.hh" diff --git a/examples/extended/biasing/B03/src/B03PhysicsList.cc b/examples/extended/biasing/B03/src/B03PhysicsList.cc index 96ed3f812f..1fcc2be716 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc b/examples/extended/biasing/B03/src/B03PrimaryGeneratorAction.cc index 9bec30b0dd..4ef7b44f9f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/biasing/History b/examples/extended/biasing/History index a2567d2faa..d16879ed5d 100644 --- a/examples/extended/biasing/History +++ b/examples/extended/biasing/History @@ -1,4 +1,4 @@ -$Id: History,v 1.24 2003/06/25 13:01:43 gcosmo Exp $ +$Id: History,v 1.27 2003/08/25 12:33:52 dressel Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,16 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Jul 31th, 2003 M. Dressel - exbiasing-V05-02-02 +- added weight window example to B01 + +Jul 31th, 2003 M. Dressel - exbiasing-V05-02-01 +- removed some unused arguments in fucntion calls + +Jun 30th, 2003 M. Dressel - exbiasing-V05-02-00 +- simplified building of B03 and removed files created by swig, + these files are created during gmake now + Jun 25th, 2003 G. Cosmo - exbiasing-V05-01-00 - Added disclaimer of liability where needed. diff --git a/examples/extended/biasing/README b/examples/extended/biasing/README index ef709b8e03..d8ec0b6abc 100644 --- a/examples/extended/biasing/README +++ b/examples/extended/biasing/README @@ -3,20 +3,21 @@ -------------------------- This directory includes example applications to demonstrate the usage of -different biasing techniques supported in Geant4, or possible from the -user applications. +different variance reduction techniques supported in Geant4, or possible +from the user applications. -General remark to biasing -------------------------- +General remark to variance reduction +------------------------------------ The tools provided for importance sampling (or geometrical splitting and -Russian roulette) require the user to have a good understanding of the -physics in the problem. This is because the user has to decide which -particle types have to be biased, define the regions (physical volumes, -replicas) and assign importances to that regions. If this is not done -properly it can not be expected that the results describe a real -experiment. The examples given here only demonstrate how to use the tools -technically. They don't intend to produce physical correct results. +Russian roulette) and for the weight window technique require the user to +have a good understanding of the physics in the problem. This is because +the user has to decide which particle types have to be biased, define the +cells (physical volumes, replicas) and assign importances or weight +windows to that cells. If this is not done properly it can not be +expected that the results describe a real experiment. The examples given +here only demonstrate how to use the tools technically. They don't intend +to produce physical correct results. General remark to scoring ------------------------- @@ -26,24 +27,27 @@ therefore should inherit from the interface G4VScorer. An example of an implementation of a scorer is G4Scorer which may be found in source/event. The scoring in these examples is done with a G4Scorer. -Importance sampling and scoring does not support all options of the -Geant4 geometry. It only supports physical volumes and simple replicas. +The variance reduction techniques and scoring do not support all options +of the Geant4 geometry. It only supports physical volumes and simple +replicas. To identify a physical volume (or replica) objects of the class G4GeometryCell are used. Scoring is done according to these -cells and importance values may be assigned to them. -When scoring is done in a "scoring" or in a "importance" geometry -special action has to be taken to prevent counting of -"collisions" with boundaries of the tracking geometry as interactions. -This is differently handled when scoring is done in the tracking geometry. +cells and importance values or the weight windows may be assigned to +them. +When scoring is done in a parallel geometry special action has to be taken +to prevent counting of "collisions" with boundaries of the mass geometry +as interactions. This is differently handled when scoring is done in the +mass geometry. ---> G4GeometryCell must not share boundaries with the world volume! <-- +--> G4GeometryCell of the parallel geometry must not share boundaries with +the world volume! <-- Known problems -------------- In the following scenario it can happen that a particle is not biased and it's weight is therefore not changed even if it crosses a boundary where biasing should happen. -The importance sampling creates particles on boundaries +Importance and weight window sampling create particles on boundaries between volumes. If the GPIL method of a physical process returns 0 as step length for a particle on a boundary and if the PostStepDoIt of that process changes the direction of the particle to go back in the @@ -59,9 +63,21 @@ http://dressel.home.cern.ch/dressel/biasscore/Sampling.html Example B01 =========== -The example uses importance sampling and scoring. Importance values are -defined according to the mass geometry. Scoring is also done in according -to the mass geometry. +The example uses importance sampling or the weight window technique +according to an input parameter. It uses scoring in both cases. +Importance values or weight windows are defined according to the mass +geometry. In this example the weight window technique is configured such +that it behaves equivalent to importance sampling: The window is actually +not a window but simply the inverse of the importance value and only +one energy region is used that covers all energies in the problem. +The user may change the weight window configuration by changing the +initialization of the weight window algorithm in example,cc. +Different energy bounds for the weight window technique may be specified +in B01DetectorConstruction. + +The executable takes one optional argument: 0 or 1. Without argument or +with argument: 0, the importance sampling is applied with argument: 1, +the weight window technique is applied. Example B02 @@ -77,26 +93,28 @@ To compile this example you need AIDA 3.0 installed. To link and run it you need a AIDA compliant analysis package. The GNUmakefile of this example shows how to use Anaphe as analysis package. -The following list shows what to do if you are at CERN using rehat61 -and gcc-2.95.2: -use the shell /bin/sh +The following list shows what to do if you are at CERN using rehat73 +and gcc-3.2 and the tcsh: 1) set the following variables (for example): -ANAPHETOP=/afs/cern.ch/sw/lhcxx - (or if installed in opt: /opt/Anaphe/5.0.1) -AIDA_DIR=/afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp +setenv ANAPHETOP /afs/cern.ch/sw/lhcxx + (or if installed in opt: /opt/Anaphe/5.0.5) +setenv AIDA_DIR /afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp (or if installed in opt: /opt/AIDA/3.0.0/3.0.0/AIDA/3.0/src/cpp) -export ANAPHETOP AIDA_DIR 2) Source the script: -. $ANAPHETOP/share/LHCXX/5.0.1/scripts/setupAnaphe +source $ANAPHETOP/share/LHCXX/5.0.5/scripts/setupAnaphe.csh + +This should set the LD_LIBRARY_PATH and the PATH environment to find the +lizrd executable and Anaphe libraries and header files. +It also sets the environment variable PLATF. 3) and add to lirary path the following directories: -LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB02 +setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB02 Now you should be able to run gmake and to run exampleB02. The example stores the plot in the file b02.hbook. -To look at the histogram using lizard you also may use Anaphe 5.0.1 +To look at the histogram using lizard you also may use Anaphe 5.0.5 http://anaphe.web.cern.ch/anaphe/index2.html. Files in B02: @@ -108,42 +126,53 @@ Example B03 =========== This example uses Geant4 and in particular importance sampling and -scoring through python. It also creates a histogram. +scoring through python. It creates a simple histogram. It's ment +to demonstrate how to use a customized scorer and importance sampling +in combination with a scripting language, python. +Geant4 code is executed from a python session. Therefore, swig is used +to create python shadow classes and to generate the code necessary to +use the Geant4 libraries from a python session. +For simplicity it is recommended to use Anaphe. Anaphe comes with +python and swig installations. + See http://anaphe.web.cern.ch/ -Compiling and running ---------------------- - To compile and run this example you need a python2.2 installation -see http://www.python.org. - Please set the environment variable "PYTHON_DIR" to your python2.2 -installation e.g: -using afs: -to /afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0 -or if Anaphe is installed in opt /opt/Anaphe/5.0.1/specific/redhat72/gcc-2.95.2/PublicDomainPackages/2.0.0. - Please add to your environment variables + + +Building, compiling and running +------------------------------- + + Follow similar steps as for example B02. If you already have +the environment set up for example B02 jump to point 3 below: + +1) set the following variables (for example): +setenv ANAPHETOP /afs/cern.ch/sw/lhcxx + (or if installed in opt: /opt/Anaphe/5.0.5) +setenv AIDA_DIR /afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp + (or if installed in opt: /opt/AIDA/3.0.0/3.0.0/AIDA/3.0/src/cpp) + +2) Source the script: +source $ANAPHETOP/share/LHCXX/5.0.5/scripts/setupAnaphe.csh + +3) and add to lirary path the following directories: setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB03 - and setenv PYTHONPATH $LD_LIBRARY_PATH. + ==== + setenv PYTHONPATH $LD_LIBRARY_PATH + +4) setenv PYTHON_VERSION 2.2 You may run gmake now. You should be able to execute the file B03RunApplication.py from your -shell now. - - If you have Anaphe 5.0.1 installed you may also execute the file -B03RunApplication.py from a lizard session. This will create a -histogram. Therefore you may follow the steps 1 and two -in the above exampleB02. - See http://anaphe.web.cern.ch/anaphe/index2.html. +shell or from a lizard session now. + The histogram is displayed only if the script is beeing ran +from lizard. + Files in B03; -env.csh: Is an example script to set the environment. It should work - if you are at CERN and if you are on a redhat6.1 system. -buildit.sh: You don't need to use this file. Only if you want to - make changes to the python interface defined in B03App.i you may need - to use it. B03Application.py: Is a example class utilizing importance sampling and scoring using python. B03RunApplication.py: Is a python script running the example. It may be executed from the shell or in a python or lizard session. In case it is executed from lizard it creates a plot with a histogram. -B03App.py: Is created by swig using the buildit.sh script. +B03App.py: Is created by swig using swig. diff --git a/examples/extended/electromagnetic/TestEm1/GNUmakefile b/examples/extended/electromagnetic/TestEm1/GNUmakefile index b12ce23793..913728dab2 100644 --- a/examples/extended/electromagnetic/TestEm1/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm1/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.8 2002/12/11 14:19:17 maire Exp $ +# $Id: GNUmakefile,v 1.9 2003/10/06 10:02:19 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -14,12 +14,15 @@ endif .PHONY: all all: lib bin +####G4ANALYSIS_USE := true + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + include $(G4INSTALL)/config/architecture.gmk -G4NOHIST := true -ifdef G4NOHIST - CPPFLAGS += -DG4NOHIST -else +ifdef G4ANALYSIS_USE # for the aida-config command see the README file CPPFLAGS += `aida-config --include` LDFLAGS += `aida-config --lib` diff --git a/examples/extended/electromagnetic/TestEm1/History b/examples/extended/electromagnetic/TestEm1/History index 909e5d03f4..d963bb169b 100644 --- a/examples/extended/electromagnetic/TestEm1/History +++ b/examples/extended/electromagnetic/TestEm1/History @@ -1,4 +1,4 @@ -$Id: History,v 1.32 2003/06/18 09:31:54 gcosmo Exp $ +$Id: History,v 1.41 2003/11/25 18:43:35 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,33 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +25-11-03 V.Ivanchenko (testem1-V05-02-06) +- Fix geometry (G.Cosmo) + +07-11-03 mma (testem1-V05-02-05) +- use BestUnit in RunAction + +28-10-03 V.Ivanchenko (testem1-V05-02-04) +- Minor cleanup in G4eBremsstrahlungCMS +- Add printout of total energy deposit +- Remove compilation warnings + +24-10-03 mma (testem1-V05-02-03) +- PhysListEmStandard: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. +- BremsstrahlungCMS given as an example, commented out + +20-10-03 V.Ivanchenko (testem1-V05-02-02) +- Add process G4eBremsstrahlungCMS + +06-10-03 mma (testem1-V05-02-01) +- Class EmModel renamed G4v52. All macros updated +- G4NOHIST replaced by G4ANALYSIS_USE +- cosmetics in material definitions +- suppression of Em1 in all class names + +18-09-03 V.Ivanchenko (testem1-V05-02-00) +- Complete migration to model EM physics + 18-06-03 G.Cosmo (testem1-V05-01-03) - Em1RunAction.cc: removed usage of G4USE_STD_NAMESPACE after migration from G4std. diff --git a/examples/extended/electromagnetic/TestEm1/README b/examples/extended/electromagnetic/TestEm1/README index 4df3b6dfcc..374cebab49 100644 --- a/examples/extended/electromagnetic/TestEm1/README +++ b/examples/extended/electromagnetic/TestEm1/README @@ -1,4 +1,4 @@ -$Id: README,v 1.7 2002/12/11 14:19:17 maire Exp $ +$Id: README,v 1.8 2003/10/06 10:02:19 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -102,7 +102,8 @@ $Id: README,v 1.7 2002/12/11 14:19:17 maire Exp $ 2 : number of steps per track (charged particle) 3 : step length (charged particle) - Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. 8- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.cc b/examples/extended/electromagnetic/TestEm1/TestEm1.cc index a177272d89..beb8fd3ccd 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.cc +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.cc @@ -21,34 +21,30 @@ // ******************************************************************** // // -// $Id: TestEm1.cc,v 1.8 2001/12/07 11:49:08 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TestEm1.cc,v 1.9 2003/10/06 10:02:20 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#define Em1NoOptimize 1 - #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4UIterminal.hh" #include "G4UItcsh.hh" #include "Randomize.hh" -#include "Em1DetectorConstruction.hh" -#include "Em1PhysicsList.hh" -#include "Em1PrimaryGeneratorAction.hh" -#include "Em1SteppingVerbose.hh" +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "PrimaryGeneratorAction.hh" +#include "SteppingVerbose.hh" -#ifdef Em1NoOptimize - #include "Em1RunAction.hh" - #include "Em1EventAction.hh" - #include "Em1TrackingAction.hh" - #include "Em1SteppingAction.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "TrackingAction.hh" +#include "SteppingAction.hh" - #ifdef G4VIS_USE - #include "Em1VisManager.hh" - #endif +#ifdef G4VIS_USE + #include "VisManager.hh" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -59,33 +55,31 @@ int main(int argc,char** argv) { HepRandom::setTheEngine(new RanecuEngine); //my Verbose output class - G4VSteppingVerbose::SetInstance(new Em1SteppingVerbose); + G4VSteppingVerbose::SetInstance(new SteppingVerbose); // Construct the default run manager G4RunManager * runManager = new G4RunManager; // set mandatory initialization classes - Em1DetectorConstruction* det; - runManager->SetUserInitialization(det = new Em1DetectorConstruction); - runManager->SetUserInitialization(new Em1PhysicsList(det)); - runManager->SetUserAction(new Em1PrimaryGeneratorAction(det)); + DetectorConstruction* det; + runManager->SetUserInitialization(det = new DetectorConstruction); + runManager->SetUserInitialization(new PhysicsList(det)); + runManager->SetUserAction(new PrimaryGeneratorAction(det)); -#ifdef Em1NoOptimize #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new Em1VisManager; + G4VisManager* visManager = new VisManager; visManager->Initialize(); #endif // set user action classes - Em1RunAction* RunAct; - Em1EventAction* EvtAct; + RunAction* RunAct; + EventAction* EvtAct; - runManager->SetUserAction(RunAct = new Em1RunAction); - runManager->SetUserAction(EvtAct = new Em1EventAction); - runManager->SetUserAction(new Em1TrackingAction(RunAct)); - runManager->SetUserAction(new Em1SteppingAction(RunAct,EvtAct)); -#endif + runManager->SetUserAction(RunAct = new RunAction); + runManager->SetUserAction(EvtAct = new EventAction); + runManager->SetUserAction(new TrackingAction(RunAct)); + runManager->SetUserAction(new SteppingAction(RunAct,EvtAct)); // get the pointer to the User Interface manager G4UImanager* UI = G4UImanager::GetUIpointer(); @@ -108,11 +102,9 @@ int main(int argc,char** argv) { UI->ApplyCommand(command+fileName); } - // job termination -#ifdef Em1NoOptimize - #ifdef G4VIS_USE - delete visManager; - #endif + // job termination +#ifdef G4VIS_USE + delete visManager; #endif delete runManager; diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.in b/examples/extended/electromagnetic/TestEm1/TestEm1.in index c07c25fae0..bd934c992a 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.in +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.in @@ -1,4 +1,4 @@ -# $Id: TestEm1.in,v 1.12 2003/06/03 09:59:55 vnivanch Exp $ +# $Id: TestEm1.in,v 1.13 2003/10/06 10:02:20 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -15,7 +15,6 @@ /run/initialize # /process/eLoss/StepFunction 0.183 1.70 micrometer -#/process/eLoss/integral false # /run/verbose 2 # diff --git a/examples/extended/electromagnetic/TestEm1/TestEm1.out b/examples/extended/electromagnetic/TestEm1/TestEm1.out index cadfe46812..b27ca749c1 100644 --- a/examples/extended/electromagnetic/TestEm1/TestEm1.out +++ b/examples/extended/electromagnetic/TestEm1/TestEm1.out @@ -1,11 +1,11 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; -***** Table : Nb of materials = 11 ***** +***** Table : Nb of materials = 12 ***** 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 % @@ -30,6 +30,11 @@ G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 7 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: 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 % @@ -68,10 +73,9 @@ Current available graphics systems are: The Box is 20 m of Aluminium phot: Total cross sections from Sandia parametrisation. -Em1PhysicsList::SetCuts:CutLength : 1 mm +PhysicsList::SetCuts:CutLength : 1 mm # /process/eLoss/StepFunction 0.183 1.70 micrometer -#/process/eLoss/integral false # /run/verbose 2 # @@ -87,54 +91,82 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV 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: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183 +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. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 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: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183 +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. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 0.0017, dRoverRange= 0.183, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 : Aluminium + Production cuts : gamma 2.2 mm e- 6.05 mum e+ 6.05 mum ========= Table of registered couples ============================== @@ -147,45 +179,47 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== +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 closing geometry. -G4GeometryManager::ReportVoxelStats -- Voxel Statistics - - Total memory consumed for geometry optimisation: 0 kByte - Total CPU time elapsed for geometry optimisation: 0 seconds Start Run processing. ---> Begin of Event: 0 Run terminated. Run Summary Number of events processed : 100 - User=29s Real=44s Sys=11s + User=93s Real=1.2e+02s Sys=16s - nb tracks/event neutral: 27.9700 charged: 701.2500 - nb steps/event neutral: 147.2700 charged: 3376.9000 + nb tracks/event neutral: 27.4000 charged: 688.9400 + nb steps/event neutral: 145.5700 charged: 4748.9500 + + total energy deposit: 100.0000 MeV nb of process calls per event: eIoni eBrem compt phot conv annihil - 3350.4700 24.8800 119.3000 26.4200 1.5500 1.5500 + 4721.6700 25.8800 118.1700 26.0000 1.4000 1.4000 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1487975150, 725420439 + Current couple of seeds = 1804446829, 260016917 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... -G4 kernel has come to Quit state. -Deletion of G4 kernel class start. UserDetectorConstruction deleted. UserPhysicsList deleted. UserRunAction deleted. UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. EventManager deleted. UImanager deleted. StateManager deleted. +RunManagerKernel is deleted. RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm1/brem.mac b/examples/extended/electromagnetic/TestEm1/brem.mac new file mode 100644 index 0000000000..3175e728e7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/brem.mac @@ -0,0 +1,40 @@ +# +# Test particle range +# +/control/verbose 2 +/run/verbose 2 +/tracking/verbose 2 +/event/verbose 0 +# +/testem/phys/setGCut 2.2 mm +/testem/phys/setECut 95 cm +# +/testem/phys/addPhysics standard +#/testem/phys/addPhysics g4v52 +# +/gun/particle e- +/gun/energy 100 MeV +/testem/phys/setCuts 1 km +#/gun/particle proton +#/gun/particle alpha +#/gun/particle IonC12 +# +/run/initialize +#/run/beamOn 1 +# +/process/inactivate phot +/process/inactivate compt +/process/inactivate conv +/process/inactivate eIoni +/process/inactivate msc +# +#/process/eLoss/fluct false +#/process/eLoss/integral false +#/process/eLoss/verbose 1 +#/run/initialize +/run/beamOn 5 +/process/activate eIoni +/testem/phys/setCuts 2 km +/process/eLoss/integral false +/run/initialize +/run/beamOn 5 diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh similarity index 87% rename from examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh rename to examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh index 932f9d3b9b..c35ae08924 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/DetectorConstruction.hh @@ -21,16 +21,16 @@ // ******************************************************************** // // -// $Id: Em1DetectorConstruction.hh,v 1.5 2001/12/07 11:49:09 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.hh,v 1.1 2003/10/06 10:02:22 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1DetectorConstruction_h -#define Em1DetectorConstruction_h 1 +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh" #include "globals.hh" @@ -38,16 +38,16 @@ class G4LogicalVolume; class G4Material; class G4UniformMagField; -class Em1DetectorMessenger; +class DetectorMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1DetectorConstruction : public G4VUserDetectorConstruction +class DetectorConstruction : public G4VUserDetectorConstruction { public: - Em1DetectorConstruction(); - ~Em1DetectorConstruction(); + DetectorConstruction(); + ~DetectorConstruction(); public: @@ -78,7 +78,7 @@ class Em1DetectorConstruction : public G4VUserDetectorConstruction G4Material* aMaterial; G4UniformMagField* magField; - Em1DetectorMessenger* detectorMessenger; + DetectorMessenger* detectorMessenger; private: diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh similarity index 85% rename from examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh rename to examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh index 23768d7d5d..4149bb5481 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/DetectorMessenger.hh @@ -21,21 +21,21 @@ // ******************************************************************** // // -// $Id: Em1DetectorMessenger.hh,v 1.5 2002/12/11 14:19:22 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorMessenger.hh,v 1.1 2003/10/06 10:02:22 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1DetectorMessenger_h -#define Em1DetectorMessenger_h 1 +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" -class Em1DetectorConstruction; +class DetectorConstruction; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithADoubleAndUnit; @@ -43,18 +43,18 @@ class G4UIcmdWithoutParameter; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1DetectorMessenger: public G4UImessenger +class DetectorMessenger: public G4UImessenger { public: - Em1DetectorMessenger(Em1DetectorConstruction* ); - ~Em1DetectorMessenger(); + DetectorMessenger(DetectorConstruction* ); + ~DetectorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em1DetectorConstruction* Em1Detector; + DetectorConstruction* Detector; G4UIdirectory* testemDir; G4UIcmdWithAString* MaterCmd; diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh b/examples/extended/electromagnetic/TestEm1/include/EventAction.hh similarity index 85% rename from examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh rename to examples/extended/electromagnetic/TestEm1/include/EventAction.hh index e9127fcd63..f2a879a91a 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1EventAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/EventAction.hh @@ -21,35 +21,35 @@ // ******************************************************************** // // -// $Id: Em1EventAction.hh,v 1.5 2001/11/29 11:28:07 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.hh,v 1.2 2003/10/28 10:27:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1EventAction_h -#define Em1EventAction_h 1 +#ifndef EventAction_h +#define EventAction_h 1 #include "G4UserEventAction.hh" #include "globals.hh" -class Em1EventActionMessenger; +class EventActionMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1EventAction : public G4UserEventAction +class EventAction : public G4UserEventAction { public: - Em1EventAction(); - ~Em1EventAction(); + EventAction(); + ~EventAction(); public: void BeginOfEventAction(const G4Event*); void EndOfEventAction(const G4Event*); - void addEdep(G4double Edep) {TotalEnergyDeposit += Edep;}; + void AddEdep(G4double Edep) {TotalEnergyDeposit += Edep;}; G4double GetEnergyDeposit() {return TotalEnergyDeposit;}; void SetDrawFlag(G4String val) {drawFlag = val;}; void SetPrintModulo(G4int val) {printModulo = val;}; @@ -59,7 +59,7 @@ class Em1EventAction : public G4UserEventAction G4double TotalEnergyDeposit; G4String drawFlag; G4int printModulo; - Em1EventActionMessenger* eventMessenger; + EventActionMessenger* eventMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh rename to examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh index 00d3705538..81b3e92d03 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/EventActionMessenger.hh @@ -21,36 +21,36 @@ // ******************************************************************** // // -// $Id: Em1EventActionMessenger.hh,v 1.4 2001/10/26 12:51:23 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.hh,v 1.1 2003/10/06 10:02:24 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1EventActionMessenger_h -#define Em1EventActionMessenger_h 1 +#ifndef EventActionMessenger_h +#define EventActionMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" -class Em1EventAction; +class EventAction; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1EventActionMessenger: public G4UImessenger +class EventActionMessenger: public G4UImessenger { public: - Em1EventActionMessenger(Em1EventAction*); - ~Em1EventActionMessenger(); + EventActionMessenger(EventAction*); + ~EventActionMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em1EventAction* eventAction; + EventAction* eventAction; G4UIcmdWithAString* DrawCmd; G4UIcmdWithAnInteger* PrintCmd; }; diff --git a/examples/novice/N03/include/ExN03CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm1/include/G4eBremsstrahlungCMS.hh similarity index 51% rename from examples/novice/N03/include/ExN03CalorimeterSD.hh rename to examples/extended/electromagnetic/TestEm1/include/G4eBremsstrahlungCMS.hh index b39cc0c34b..9acf9111fd 100644 --- a/examples/novice/N03/include/ExN03CalorimeterSD.hh +++ b/examples/extended/electromagnetic/TestEm1/include/G4eBremsstrahlungCMS.hh @@ -20,48 +20,77 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4eBremsstrahlungCMS.hh,v 1.2 2003/10/24 12:06:36 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: ExN03CalorimeterSD.hh,v 1.4 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4eBremsstrahlungCMS +// +// Author: Vladimir Ivanchenko +// +// Creation date: 12.09.03 +// +// Modifications: +// +// 17-10-03 model variant (V.Ivanchenko) +// +// +// Class Description: +// +// This class manages the bremsstrahlungCMS for e-/e+ +// If energy of emitted gamma is higher than threshold, +// then incoming particle is killed and 2 secondaries are produced // -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +// ------------------------------------------------------------------- +// -#ifndef ExN03CalorimeterSD_h -#define ExN03CalorimeterSD_h 1 +#ifndef G4eBremsstrahlungCMS_h +#define G4eBremsstrahlungCMS_h 1 -#include "G4VSensitiveDetector.hh" -#include "globals.hh" +#include "G4eBremsstrahlung.hh" -class ExN03DetectorConstruction; -class G4HCofThisEvent; -class G4Step; -#include "ExN03CalorHit.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class ExN03CalorimeterSD : public G4VSensitiveDetector +class G4eBremsstrahlungCMS : public G4eBremsstrahlung { - public: - - ExN03CalorimeterSD(G4String, ExN03DetectorConstruction* ); - ~ExN03CalorimeterSD(); - void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step*,G4TouchableHistory*); - void EndOfEvent(G4HCofThisEvent*); - void clear(); - void DrawAll(); - void PrintAll(); +public: + + G4eBremsstrahlungCMS(const G4String& name = "eBrem", G4double thresh=DBL_MAX); + + ~G4eBremsstrahlungCMS(); + + virtual void SecondariesPostStep( G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&, + G4double&); + + virtual void PrintInfoDefinition(); + + void SetGammaThreshold(G4double val); + +private: + + // hide assignment operator + G4eBremsstrahlungCMS & operator=(const G4eBremsstrahlungCMS &right); + G4eBremsstrahlungCMS(const G4eBremsstrahlungCMS&); + + G4double gammaThreshold; - private: - - ExN03CalorHitsCollection* CalCollection; - ExN03DetectorConstruction* Detector; - G4int* HitID; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4eBremsstrahlungCMS::SetGammaThreshold(G4double val) +{ + gammaThreshold = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + #endif diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysListEmModel.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm1/include/Em1PhysListEmModel.hh rename to examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh index ea3f6bf568..44291f9f65 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysListEmModel.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListEmG4v52.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: Em1PhysListEmModel.hh,v 1.1 2003/03/27 11:16:18 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmG4v52.hh,v 1.1 2003/10/06 10:02:24 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1PhysListEmModel_h -#define Em1PhysListEmModel_h 1 +#ifndef PhysListEmG4v52_h +#define PhysListEmG4v52_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1PhysListEmModel : public G4VPhysicsConstructor +class PhysListEmG4v52 : public G4VPhysicsConstructor { public: - Em1PhysListEmModel(const G4String& name = "model"); - virtual ~Em1PhysListEmModel(); + PhysListEmG4v52(const G4String& name = "g4v52"); + ~PhysListEmG4v52(); public: // This method is dummy for physics. - 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(); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh similarity index 83% rename from examples/extended/electromagnetic/TestEm1/include/Em1PhysListGeneral.hh rename to examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh index 828b6c9f8b..35cdb9ab2d 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysListGeneral.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListEmStandard.hh @@ -21,36 +21,34 @@ // ******************************************************************** // // -// $Id: Em1PhysListGeneral.hh,v 1.1 2003/03/27 11:16:18 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmStandard.hh,v 1.3 2003/10/24 12:06:36 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1PhysListGeneral_h -#define Em1PhysListGeneral_h 1 +#ifndef PhysListEmStandard_h +#define PhysListEmStandard_h 1 #include "G4VPhysicsConstructor.hh" -#include "G4Decay.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1PhysListGeneral : public G4VPhysicsConstructor +class PhysListEmStandard : public G4VPhysicsConstructor { public: - Em1PhysListGeneral(const G4String& name = "general"); - virtual ~Em1PhysListGeneral(); + PhysListEmStandard(const G4String& name = "standard"); + ~PhysListEmStandard(); public: // This method is dummy for physics - 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(); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListGeneral.hh similarity index 83% rename from examples/extended/electromagnetic/TestEm5/include/Em5PhysListEmStandard.hh rename to examples/extended/electromagnetic/TestEm1/include/PhysListGeneral.hh index ca2f81da11..75c7c8492c 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListGeneral.hh @@ -21,34 +21,35 @@ // ******************************************************************** // // -// $Id: Em5PhysListEmStandard.hh,v 1.1 2003/04/30 14:12:33 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListGeneral.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5PhysListEmStandard_h -#define Em5PhysListEmStandard_h 1 +#ifndef PhysListGeneral_h +#define PhysListGeneral_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5PhysListEmStandard : public G4VPhysicsConstructor +class PhysListGeneral : public G4VPhysicsConstructor { public: - Em5PhysListEmStandard(const G4String& name = "standard"); - virtual ~Em5PhysListEmStandard(); + PhysListGeneral(const G4String& name = "general"); + ~PhysListGeneral(); public: // This method is dummy for physics - 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(); + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysListParticles.hh b/examples/extended/electromagnetic/TestEm1/include/PhysListParticles.hh similarity index 83% rename from examples/extended/electromagnetic/TestEm1/include/Em1PhysListParticles.hh rename to examples/extended/electromagnetic/TestEm1/include/PhysListParticles.hh index 9fddc4763c..ac8b8b20c1 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysListParticles.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: Em1PhysListParticles.hh,v 1.1 2003/03/27 11:16:19 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1PhysListParticles_h -#define Em1PhysListParticles_h 1 +#ifndef PhysListParticles_h +#define PhysListParticles_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1PhysListParticles : public G4VPhysicsConstructor +class PhysListParticles : public G4VPhysicsConstructor { public: - Em1PhysListParticles(const G4String& name = "particles"); - virtual ~Em1PhysListParticles(); + PhysListParticles(const G4String& name = "particles"); + ~PhysListParticles(); public: // This method will be invoked in the Construct() method. // each particle type will be instantiated - virtual void ConstructParticle(); + void ConstructParticle(); // This method is dummy. - virtual void ConstructProcess() {}; + void ConstructProcess() {}; }; diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh b/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh similarity index 81% rename from examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh rename to examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh index c72920b196..b34aeb5f1b 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysicsList.hh @@ -21,36 +21,36 @@ // ******************************************************************** // // -// $Id: Em1PhysicsList.hh,v 1.7 2003/03/27 11:16:19 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // -// 14.10.02 (V.Ivanchenko) provide modular list on base of old Em1PhysicsList +// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1PhysicsList_h -#define Em1PhysicsList_h 1 +#ifndef PhysicsList_h +#define PhysicsList_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" -class Em1DetectorConstruction; -class Em1PhysicsListMessenger; +class DetectorConstruction; +class PhysicsListMessenger; class G4VPhysicsConstructor; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1PhysicsList: public G4VModularPhysicsList +class PhysicsList: public G4VModularPhysicsList { public: - Em1PhysicsList(Em1DetectorConstruction*); - ~Em1PhysicsList(); + PhysicsList(DetectorConstruction*); + ~PhysicsList(); - virtual void ConstructParticle(); - virtual void ConstructProcess(); + void ConstructParticle(); + void ConstructProcess(); void AddPhysicsList(const G4String& name); void SetCuts(); @@ -70,8 +70,8 @@ class Em1PhysicsList: public G4VModularPhysicsList G4VPhysicsConstructor* particleList; G4String emName; - Em1DetectorConstruction* pDet; - Em1PhysicsListMessenger* pMessenger; + DetectorConstruction* pDet; + PhysicsListMessenger* pMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh similarity index 86% rename from examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh rename to examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh index c604305572..3e4cc323ec 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PhysicsListMessenger.hh @@ -21,38 +21,38 @@ // ******************************************************************** // // -// $Id: Em1PhysicsListMessenger.hh,v 1.7 2003/03/27 11:16:19 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1PhysicsListMessenger_h -#define Em1PhysicsListMessenger_h 1 +#ifndef PhysicsListMessenger_h +#define PhysicsListMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" -class Em1PhysicsList; +class PhysicsList; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithAString; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1PhysicsListMessenger: public G4UImessenger +class PhysicsListMessenger: public G4UImessenger { public: - Em1PhysicsListMessenger(Em1PhysicsList* ); - ~Em1PhysicsListMessenger(); + PhysicsListMessenger(PhysicsList* ); + ~PhysicsListMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em1PhysicsList* pPhysicsList; + PhysicsList* pPhysicsList; G4UIcmdWithADoubleAndUnit* gammaCutCmd; G4UIcmdWithADoubleAndUnit* electCutCmd; diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh similarity index 80% rename from examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh rename to examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh index 69e4b8e05a..386b1fe717 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorAction.hh @@ -21,32 +21,32 @@ // ******************************************************************** // // -// $Id: Em1PrimaryGeneratorAction.hh,v 1.5 2001/12/07 11:49:09 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1PrimaryGeneratorAction_h -#define Em1PrimaryGeneratorAction_h 1 +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" #include "globals.hh" class G4ParticleGun; class G4Event; -class Em1DetectorConstruction; -class Em1PrimaryGeneratorMessenger; +class DetectorConstruction; +class PrimaryGeneratorMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - Em1PrimaryGeneratorAction(Em1DetectorConstruction*); - ~Em1PrimaryGeneratorAction(); + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); public: void SetDefaultKinematic(G4int); @@ -55,9 +55,9 @@ class Em1PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction private: G4ParticleGun* particleGun; - Em1DetectorConstruction* Em1Detector; + DetectorConstruction* Detector; G4double rndmBeam; - Em1PrimaryGeneratorMessenger* gunMessenger; + PrimaryGeneratorMessenger* gunMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh similarity index 82% rename from examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh rename to examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh index 62d73be901..c2982312de 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm1/include/PrimaryGeneratorMessenger.hh @@ -21,36 +21,36 @@ // ******************************************************************** // // -// $Id: Em1PrimaryGeneratorMessenger.hh,v 1.1 2001/12/07 11:49:09 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorMessenger.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1PrimaryGeneratorMessenger_h -#define Em1PrimaryGeneratorMessenger_h 1 +#ifndef PrimaryGeneratorMessenger_h +#define PrimaryGeneratorMessenger_h 1 #include "G4UImessenger.hh" #include "globals.hh" -class Em1PrimaryGeneratorAction; +class PrimaryGeneratorAction; class G4UIcmdWithAnInteger; class G4UIcmdWithADouble; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1PrimaryGeneratorMessenger: public G4UImessenger +class PrimaryGeneratorMessenger: public G4UImessenger { public: - Em1PrimaryGeneratorMessenger(Em1PrimaryGeneratorAction*); - ~Em1PrimaryGeneratorMessenger(); + PrimaryGeneratorMessenger(PrimaryGeneratorAction*); + ~PrimaryGeneratorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em1PrimaryGeneratorAction* Em1Action; + PrimaryGeneratorAction* Action; G4UIcmdWithAnInteger* DefaultCmd; G4UIcmdWithADouble* RndmCmd; }; diff --git a/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh b/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh index 497a1dffe6..67bd65191f 100644 --- a/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh +++ b/examples/extended/electromagnetic/TestEm1/include/ProcessesCount.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ProcessesCount.hh,v 1.8 2003/06/16 16:47:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ProcessesCount.hh,v 1.9 2003/10/06 10:02:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh b/examples/extended/electromagnetic/TestEm1/include/RunAction.hh similarity index 88% rename from examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh rename to examples/extended/electromagnetic/TestEm1/include/RunAction.hh index a71211366b..5a3b2c65ec 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1RunAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/RunAction.hh @@ -21,16 +21,16 @@ // ******************************************************************** // // -// $Id: Em1RunAction.hh,v 1.10 2002/12/11 14:19:22 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.hh,v 1.2 2003/10/28 10:27:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1RunAction_h -#define Em1RunAction_h 1 +#ifndef RunAction_h +#define RunAction_h 1 #include "G4UserRunAction.hh" #include "ProcessesCount.hh" @@ -40,30 +40,31 @@ class G4Run; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE namespace AIDA { class ITree; class IHistogram1D; } #endif -class Em1RunAction : public G4UserRunAction +class RunAction : public G4UserRunAction { public: - Em1RunAction(); - ~Em1RunAction(); + RunAction(); + ~RunAction(); public: void BeginOfRunAction(const G4Run*); void EndOfRunAction(const G4Run*); + void AddEdep(G4double val) { edep += val;} void CountTraks0(G4int nt) { NbOfTraks0 += nt;} void CountTraks1(G4int nt) { NbOfTraks1 += nt;} void CountSteps0(G4int ns) { NbOfSteps0 += ns;} void CountSteps1(G4int ns) { NbOfSteps1 += ns;} void CountProcesses(G4String); -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif @@ -74,9 +75,10 @@ class Em1RunAction : public G4UserRunAction private: G4int NbOfTraks0, NbOfTraks1; G4int NbOfSteps0, NbOfSteps1; + G4double edep; ProcessesCount* ProcCounter; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::ITree* tree; AIDA::IHistogram1D* histo[3]; #endif diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh b/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh similarity index 83% rename from examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh rename to examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh index 8d728733e7..973d115ae0 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/SteppingAction.hh @@ -21,31 +21,36 @@ // ******************************************************************** // // -// $Id: Em3SteppingAction.hh,v 1.5 2001/10/22 10:58:51 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.hh,v 1.2 2003/10/28 10:27:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3SteppingAction_h -#define Em3SteppingAction_h 1 +#ifndef SteppingAction_h +#define SteppingAction_h 1 #include "G4UserSteppingAction.hh" -#include "globals.hh" + +class EventAction; +class RunAction; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3SteppingAction : public G4UserSteppingAction +class SteppingAction : public G4UserSteppingAction { public: - Em3SteppingAction(); - ~Em3SteppingAction(); + SteppingAction(RunAction*,EventAction*); + ~SteppingAction(); void UserSteppingAction(const G4Step*); - G4double BirkAttenuation(const G4Step*); + private: + RunAction* runAction; + EventAction* eventAction; + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh similarity index 88% rename from examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh rename to examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh index fc6634498c..5cb2fd0c7e 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm1/include/SteppingVerbose.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5SteppingVerbose.hh,v 1.8 2003/04/30 14:12:35 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.hh,v 1.1 2003/10/06 10:02:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. @@ -31,19 +31,19 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5SteppingVerbose_h -#define Em5SteppingVerbose_h 1 +#ifndef SteppingVerbose_h +#define SteppingVerbose_h 1 #include "G4SteppingVerbose.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5SteppingVerbose : public G4SteppingVerbose { +class SteppingVerbose : public G4SteppingVerbose { public: - Em5SteppingVerbose(); - ~Em5SteppingVerbose(); + SteppingVerbose(); + ~SteppingVerbose(); void StepInfo(); void TrackingStarted(); diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1TrackingAction.hh b/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm1/include/Em1TrackingAction.hh rename to examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh index b444ba317b..ba0267a24d 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm1/include/TrackingAction.hh @@ -21,31 +21,32 @@ // ******************************************************************** // // -// $Id: Em1TrackingAction.hh,v 1.4 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TrackingAction.hh,v 1.2 2003/10/20 10:43:32 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1TrackingAction_h -#define Em1TrackingAction_h 1 +#ifndef TrackingAction_h +#define TrackingAction_h 1 #include "G4UserTrackingAction.hh" -class Em1RunAction; +class RunAction; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1TrackingAction : public G4UserTrackingAction { +class TrackingAction : public G4UserTrackingAction { public: - Em1TrackingAction(Em1RunAction*); - ~Em1TrackingAction() {}; + TrackingAction(RunAction*); + ~TrackingAction() {}; + void PreUserTrackingAction(const G4Track*); void PostUserTrackingAction(const G4Track*); private: - Em1RunAction* runAction; + RunAction* runAction; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3VisManager.hh b/examples/extended/electromagnetic/TestEm1/include/VisManager.hh similarity index 92% rename from examples/extended/electromagnetic/TestEm3/include/Em3VisManager.hh rename to examples/extended/electromagnetic/TestEm1/include/VisManager.hh index 3f24afce6e..b544657f9b 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3VisManager.hh +++ b/examples/extended/electromagnetic/TestEm1/include/VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3VisManager.hh,v 1.4 2001/10/22 10:58:53 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.hh,v 1.1 2003/10/06 10:02:26 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -44,18 +44,18 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3VisManager_h -#define Em3VisManager_h 1 +#ifndef VisManager_h +#define VisManager_h 1 #include "G4VisManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3VisManager: public G4VisManager { +class VisManager: public G4VisManager { public: - Em3VisManager (); + VisManager (); private: diff --git a/examples/extended/electromagnetic/TestEm1/phot.mac b/examples/extended/electromagnetic/TestEm1/phot.mac index 5d32bf1e15..6b32fe0506 100644 --- a/examples/extended/electromagnetic/TestEm1/phot.mac +++ b/examples/extended/electromagnetic/TestEm1/phot.mac @@ -1,4 +1,4 @@ -# $Id: phot.mac,v 1.2 2002/12/11 14:31:30 maire Exp $ +# $Id: phot.mac,v 1.3 2003/10/06 10:02:20 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -6,17 +6,14 @@ # PhotoElectricEffect; Gamma 1 Mev # /control/verbose 2 -# -/run/initialize +/run/verbose 2 # /testem/det/setMat Germanium /testem/det/setSize 1 cm -/testem/det/update +# +/run/initialize # /testem/gun/setDefault 1 -# -/run/verbose 2 -# /gun/particle gamma /gun/energy 1 MeV /testem/gun/rndm 0.8 diff --git a/examples/extended/electromagnetic/TestEm1/run01.mac b/examples/extended/electromagnetic/TestEm1/run01.mac index 223c23ee8d..069f05f555 100644 --- a/examples/extended/electromagnetic/TestEm1/run01.mac +++ b/examples/extended/electromagnetic/TestEm1/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ +# $Id: run01.mac,v 1.6 2003/10/06 10:02:20 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,6 +7,9 @@ # /control/verbose 2 # +###/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +# /testem/phys/setGCut 95 cm /testem/phys/setECut 95 cm # diff --git a/examples/extended/electromagnetic/TestEm1/run02.mac b/examples/extended/electromagnetic/TestEm1/run02.mac index 5ddfa61088..d26bc804e4 100644 --- a/examples/extended/electromagnetic/TestEm1/run02.mac +++ b/examples/extended/electromagnetic/TestEm1/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ +# $Id: run02.mac,v 1.6 2003/10/06 10:02:20 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,6 +7,9 @@ # /control/verbose 2 # +#/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +# /testem/phys/setGCut 95 cm /testem/phys/setECut 95 cm # @@ -17,6 +20,7 @@ /process/inactivate conv /process/inactivate msc # +/process/eLoss/integral false /process/eLoss/StepFunction 0.183 170 micrometer /process/eLoss/fluct 1 # diff --git a/examples/extended/electromagnetic/TestEm1/run04.mac b/examples/extended/electromagnetic/TestEm1/run04.mac index 7245ab1d0e..7a6638ba88 100644 --- a/examples/extended/electromagnetic/TestEm1/run04.mac +++ b/examples/extended/electromagnetic/TestEm1/run04.mac @@ -1,4 +1,4 @@ -# $Id: run04.mac,v 1.6 2002/12/11 14:19:18 maire Exp $ +# $Id: run04.mac,v 1.7 2003/10/06 10:02:20 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,6 +7,9 @@ # /control/verbose 2 # +##/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +# /testem/phys/setGCut 95 cm /testem/phys/setECut 100 micrometer # @@ -17,6 +20,7 @@ /process/inactivate conv /process/inactivate msc # +/process/eLoss/integral true /process/eLoss/StepFunction 0.183 170 micrometer # /run/verbose 2 diff --git a/examples/extended/electromagnetic/TestEm1/run05.mac b/examples/extended/electromagnetic/TestEm1/run05.mac index b33c9e0257..b1155eb420 100644 --- a/examples/extended/electromagnetic/TestEm1/run05.mac +++ b/examples/extended/electromagnetic/TestEm1/run05.mac @@ -1,4 +1,4 @@ -# $Id: run05.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ +# $Id: run05.mac,v 1.7 2003/10/17 17:57:49 vnivanch Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,8 +7,12 @@ # /control/verbose 2 # +##/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +# /testem/phys/setGCut 2.2 mm /testem/phys/setECut 95 cm +/testem/phys/setPCut 95 cm # /run/initialize # @@ -17,6 +21,7 @@ /process/inactivate conv /process/inactivate msc # +/process/eLoss/integral false /process/eLoss/StepFunction 0.183 170 micrometer # /run/verbose 2 diff --git a/examples/extended/electromagnetic/TestEm1/run06.mac b/examples/extended/electromagnetic/TestEm1/run06.mac index 13f05e9124..4da5b0ee41 100644 --- a/examples/extended/electromagnetic/TestEm1/run06.mac +++ b/examples/extended/electromagnetic/TestEm1/run06.mac @@ -1,4 +1,4 @@ -# $Id: run06.mac,v 1.5 2002/12/11 14:19:18 maire Exp $ +# $Id: run06.mac,v 1.6 2003/10/06 10:02:20 maire Exp $ # # Macro file for "TestEm1.cc" # (can be run in batch, without graphic) @@ -7,6 +7,9 @@ # /control/verbose 2 # +###/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard + /testem/phys/setGCut 95 cm /testem/phys/setECut 95 cm # @@ -15,6 +18,7 @@ /process/inactivate conv /process/inactivate msc # +/process/eLoss/integral false /process/eLoss/StepFunction 0.183 170 micrometer # /run/verbose 2 diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc similarity index 62% rename from examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc rename to examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc index 435dc82439..44a553e28f 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/DetectorConstruction.cc @@ -22,152 +22,123 @@ // // -// $Id: Em1DetectorConstruction.cc,v 1.15 2003/05/16 16:56:52 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.cc,v 1.2 2003/11/25 15:19:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1DetectorConstruction.hh" -#include "Em1DetectorMessenger.hh" +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" #include "G4Material.hh" #include "G4Box.hh" #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" #include "G4UniformMagField.hh" -#include "G4FieldManager.hh" -#include "G4TransportationManager.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" -#include "G4RunManager.hh" - -#include "G4VisAttributes.hh" -#include "G4Colour.hh" - #include "G4UnitsTable.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1DetectorConstruction::Em1DetectorConstruction() -:pBox (0), lBox (0), - aMaterial(0), - magField (0) +DetectorConstruction::DetectorConstruction() +:pBox(0), lBox(0), aMaterial(0), magField(0) { - // create commands for interactive definition of the detector - DefineMaterials(); BoxSize = 20*m; - detectorMessenger = new Em1DetectorMessenger(this); + DefineMaterials(); + SetMaterial("Aluminium"); + detectorMessenger = new DetectorMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1DetectorConstruction::~Em1DetectorConstruction() +DetectorConstruction::~DetectorConstruction() { delete detectorMessenger;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* Em1DetectorConstruction::Construct() +G4VPhysicalVolume* DetectorConstruction::Construct() { return ConstructVolumes(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1DetectorConstruction::DefineMaterials() +void DetectorConstruction::DefineMaterials() { - //This function illustrates the possible ways to define materials - - G4String name, symbol; //a=mass of a mole; - G4double a, z, density; //z=mean number of protons; - + // + // define Elements + // + G4double z,a; + + G4Element* H = new G4Element("Hydrogen" ,"H" , z= 1., a= 1.01*g/mole); + 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); + G4Element* Ge = new G4Element("Germanium","Ge", z=32., a= 72.59*g/mole); + G4Element* Bi = new G4Element("Bismuth" ,"Bi", z=83., a= 208.98*g/mole); + + // + // define materials + // + G4double density; G4int ncomponents, natoms; - G4double fractionmass; - - G4Material* ma; -// -// define Elements -// - - a = 1.01*g/mole; - G4Element* H = new G4Element(name="Hydrogen",symbol="H" , z= 1., a); - - a = 14.01*g/mole; - G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); - - a = 16.00*g/mole; - G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); - -// -// define materials -// - - density = 1.290*mg/cm3; - G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); + G4double fractionmass; + + G4Material* Air = + new G4Material("Air", density= 1.290*mg/cm3, ncomponents=2); Air->AddElement(N, fractionmass=70.*perCent); Air->AddElement(O, fractionmass=30.*perCent); - density = 70.8*mg/cm3; - G4Material* H2l = new G4Material(name="H2liquid", density, ncomponents=1); + G4Material* H2l = + new G4Material("H2liquid", density= 70.8*mg/cm3, ncomponents=1); H2l->AddElement(H, fractionmass=1.); - density = 1.000*g/cm3; - G4Material* H2O = new G4Material(name="Water", density, ncomponents=2); + G4Material* H2O = + new G4Material("Water", density= 1.000*g/cm3, ncomponents=2); H2O->AddElement(H, natoms=2); H2O->AddElement(O, natoms=1); H2O->SetChemicalFormula("H_2O"); H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); - density = 1.390*g/cm3; - a = 39.95*g/mole; - ma = new G4Material(name="liquidArgon", z=18., a, density); + new G4Material("liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*g/cm3); - density = 2.700*g/cm3; - a = 26.98*g/mole; - G4Material* Al = new G4Material(name="Aluminium" , z=13., a, density); + new G4Material("Aluminium" , z=13., a= 26.98*g/mole, density= 2.700*g/cm3); - density = 2.330*g/cm3; - a = 28.09*g/mole; - ma = new G4Material(name="Silicon" , z=14., a, density); + new G4Material("Silicon" , z=14., a= 28.09*g/mole, density= 2.330*g/cm3); - density = 5.323*g/cm3; - a = 72.61*g/mole; - ma = new G4Material(name="Germanium" , z=32., a, density); + new G4Material("Germanium" , z=32., a= 72.61*g/mole, density= 5.323*g/cm3); + + G4Material* BGO = + new G4Material("BGO", density= 7.10*g/cm3, ncomponents=3); + BGO->AddElement(O , natoms=12); + BGO->AddElement(Ge, natoms= 3); + BGO->AddElement(Bi, natoms= 4); - density = 7.870*g/cm3; - a = 55.85*g/mole; - ma = new G4Material(name="Iron" , z=26., a, density); + new G4Material("Iron" , z=26., a= 55.85*g/mole, density= 7.870*g/cm3); - density = 19.30*g/cm3; - a = 183.85*g/mole; - ma = new G4Material(name="Tungsten" , z=74., a, density); + new G4Material("Tungsten" , z=74., a=183.85*g/mole, density= 19.30*g/cm3); - density = 11.35*g/cm3; - a = 207.19*g/mole; - ma = new G4Material(name="Lead" , z=82., a, density); + new G4Material("Lead" , z=82., a=207.19*g/mole, density= 11.35*g/cm3); - density = 18.95*g/cm3; - a = 238.03*g/mole; - ma = new G4Material(name="Uranium" , z=92., a, density); + new G4Material("Uranium" , z=92., a=238.03*g/mole, density= 18.95*g/cm3); G4cout << *(G4Material::GetMaterialTable()) << G4endl; - - //default materials of the calorimeter - aMaterial = Al; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* Em1DetectorConstruction::ConstructVolumes() +G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() { // Cleanup old geometry + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); @@ -187,26 +158,17 @@ G4VPhysicalVolume* Em1DetectorConstruction::ConstructVolumes() 0, //its mother volume false, //no boolean operation 0); //copy number - - // - // Visualization attributes - // - - G4VisAttributes* visAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - visAtt->SetVisibility(true); - lBox->SetVisAttributes(visAtt); - - // + + PrintParameters(); + //always return the root volume // - - PrintParameters(); return pBox; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1DetectorConstruction::PrintParameters() +void DetectorConstruction::PrintParameters() { G4cout << "\n The Box is " << G4BestUnit(BoxSize,"Length") << " of " << aMaterial->GetName() << G4endl; @@ -214,26 +176,26 @@ void Em1DetectorConstruction::PrintParameters() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1DetectorConstruction::SetMaterial(G4String materialChoice) +void DetectorConstruction::SetMaterial(G4String materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - {aMaterial = pttoMaterial; - lBox->SetMaterial(aMaterial); - } + if (pttoMaterial) aMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1DetectorConstruction::SetSize(G4double value) +void DetectorConstruction::SetSize(G4double value) { BoxSize = value; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1DetectorConstruction::SetMagField(G4double fieldValue) +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" + +void DetectorConstruction::SetMagField(G4double fieldValue) { //apply a global uniform magnetic field along Z axis G4FieldManager* fieldMgr @@ -256,7 +218,9 @@ void Em1DetectorConstruction::SetMagField(G4double fieldValue) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1DetectorConstruction::UpdateGeometry() +#include "G4RunManager.hh" + +void DetectorConstruction::UpdateGeometry() { G4RunManager::GetRunManager()->DefineWorldVolume(ConstructVolumes()); } diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc similarity index 85% rename from examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc rename to examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc index c1de4e5692..1dbe7fe4f4 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/DetectorMessenger.cc @@ -21,17 +21,17 @@ // ******************************************************************** // // -// $Id: Em1DetectorMessenger.cc,v 1.6 2002/12/11 14:19:23 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorMessenger.cc,v 1.1 2003/10/06 10:02:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1DetectorMessenger.hh" +#include "DetectorMessenger.hh" -#include "Em1DetectorConstruction.hh" +#include "DetectorConstruction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithADoubleAndUnit.hh" @@ -39,8 +39,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1DetectorMessenger::Em1DetectorMessenger(Em1DetectorConstruction * Em1Det) -:Em1Detector(Em1Det) +DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) +:Detector(Det) { testemDir = new G4UIdirectory("/testem/"); testemDir->SetGuidance("commands specific to this example"); @@ -73,7 +73,7 @@ Em1DetectorMessenger::Em1DetectorMessenger(Em1DetectorConstruction * Em1Det) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1DetectorMessenger::~Em1DetectorMessenger() +DetectorMessenger::~DetectorMessenger() { delete MaterCmd; delete SizeCmd; @@ -84,19 +84,19 @@ Em1DetectorMessenger::~Em1DetectorMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if( command == MaterCmd ) - { Em1Detector->SetMaterial(newValue);} + { Detector->SetMaterial(newValue);} if( command == SizeCmd ) - { Em1Detector->SetSize(SizeCmd->GetNewDoubleValue(newValue));} + { Detector->SetSize(SizeCmd->GetNewDoubleValue(newValue));} if( command == MagFieldCmd ) - { Em1Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + { Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} if( command == UpdateCmd ) - { Em1Detector->UpdateGeometry(); } + { Detector->UpdateGeometry(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc b/examples/extended/electromagnetic/TestEm1/src/EventAction.cc similarity index 86% rename from examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc rename to examples/extended/electromagnetic/TestEm1/src/EventAction.cc index ed78ab5981..da66e4ce42 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1EventAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/EventAction.cc @@ -21,44 +21,42 @@ // ******************************************************************** // // -// $Id: Em1EventAction.cc,v 1.7 2003/06/03 09:59:55 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.cc,v 1.2 2003/10/08 17:55:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1EventAction.hh" +#include "EventAction.hh" -#include "Em1EventActionMessenger.hh" +#include "EventActionMessenger.hh" #include "G4Event.hh" -#include "G4EventManager.hh" #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1EventAction::Em1EventAction() +EventAction::EventAction() :drawFlag("none"),printModulo(10000),eventMessenger(0) { - eventMessenger = new Em1EventActionMessenger(this); + eventMessenger = new EventActionMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1EventAction::~Em1EventAction() +EventAction::~EventAction() { delete eventMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1EventAction::BeginOfEventAction(const G4Event* evt) +void EventAction::BeginOfEventAction(const G4Event* evt) { G4int evtNb = evt->GetEventID(); @@ -72,7 +70,7 @@ void Em1EventAction::BeginOfEventAction(const G4Event* evt) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1EventAction::EndOfEventAction(const G4Event*) +void EventAction::EndOfEventAction(const G4Event* evt) { if (drawFlag != "none") G4cout << " Energy deposit: " << G4BestUnit(TotalEnergyDeposit,"Energy") @@ -80,7 +78,6 @@ void Em1EventAction::EndOfEventAction(const G4Event*) if (G4VVisManager::GetConcreteInstance()) { - const G4Event* evt = fpEventManager->GetConstCurrentEvent(); G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); G4int n_trajectories = 0; if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc similarity index 88% rename from examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc rename to examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc index b8c9b9af74..61ec9c2edb 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/EventActionMessenger.cc @@ -21,24 +21,23 @@ // ******************************************************************** // // -// $Id: Em1EventActionMessenger.cc,v 1.6 2002/12/11 14:19:23 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.cc,v 1.1 2003/10/06 10:02:32 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1EventActionMessenger.hh" +#include "EventActionMessenger.hh" -#include "Em1EventAction.hh" +#include "EventAction.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1EventActionMessenger::Em1EventActionMessenger(Em1EventAction* EvAct) +EventActionMessenger::EventActionMessenger(EventAction* EvAct) :eventAction(EvAct) { DrawCmd = new G4UIcmdWithAString("/testem/event/drawTracks",this); @@ -58,7 +57,7 @@ Em1EventActionMessenger::Em1EventActionMessenger(Em1EventAction* EvAct) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1EventActionMessenger::~Em1EventActionMessenger() +EventActionMessenger::~EventActionMessenger() { delete DrawCmd; delete PrintCmd; @@ -66,7 +65,7 @@ Em1EventActionMessenger::~Em1EventActionMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1EventActionMessenger::SetNewValue(G4UIcommand* command, +void EventActionMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if(command == DrawCmd) diff --git a/examples/extended/electromagnetic/TestEm1/src/G4eBremsstrahlungCMS.cc b/examples/extended/electromagnetic/TestEm1/src/G4eBremsstrahlungCMS.cc new file mode 100644 index 0000000000..916351be35 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/src/G4eBremsstrahlungCMS.cc @@ -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: G4eBremsstrahlungCMS.cc,v 1.4 2003/10/28 10:27:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4eBremsstrahlungCMS +// +// Author: Vladimir Ivanchenko +// +// Creation date: 12.09.03 +// +// Modifications: +// +// 17-10-03 model variant (V.Ivanchenko) +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4eBremsstrahlungCMS.hh" + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4eBremsstrahlungCMS::G4eBremsstrahlungCMS(const G4String& name,G4double thresh) + : G4eBremsstrahlung(name), gammaThreshold(thresh) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4eBremsstrahlungCMS::~G4eBremsstrahlungCMS() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eBremsstrahlungCMS::SecondariesPostStep( G4VEmModel* model, + const G4MaterialCutsCouple* couple, + const G4DynamicParticle* dp, + G4double& tcut, + G4double& kinEnergy) +{ + G4DynamicParticle* gamma = model->SampleSecondary(couple, dp, tcut, kinEnergy); + G4double gammaEnergy = gamma->GetKineticEnergy(); + kinEnergy -= gammaEnergy; + G4int nSecond = 1; + if(gammaEnergy > gammaThreshold) nSecond = 2; + aParticleChange.SetNumberOfSecondaries(nSecond); + aParticleChange.AddSecondary(gamma); + aParticleChange.SetLocalEnergyDeposit(0.0); + if(nSecond == 2) { + aParticleChange.SetStatusChange(fStopAndKill); + G4DynamicParticle* el = new G4DynamicParticle(dp->GetDefinition(), + dp->GetMomentumDirection(), + kinEnergy); + aParticleChange.AddSecondary(el); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eBremsstrahlungCMS::PrintInfoDefinition() +{ + G4eBremsstrahlung::PrintInfoDefinition(); + G4cout << " Gamma high energy threshold " + << gammaThreshold/MeV << " MeV" << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListEmModel.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc similarity index 69% rename from examples/extended/electromagnetic/TestEm7/src/PhysListEmModel.cc rename to examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc index d6c06db555..2fcb436548 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListEmModel.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListEmG4v52.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: PhysListEmModel.cc,v 1.1 2003/04/22 16:25:06 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmG4v52.cc,v 1.1 2003/10/06 10:02:32 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "PhysListEmModel.hh" +#include "PhysListEmG4v52.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -35,33 +35,33 @@ #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" -#include "G4MultipleScatteringSTD.hh" +#include "G4MultipleScattering52.hh" -#include "G4eIonisationSTD.hh" -#include "G4eBremsstrahlungSTD.hh" +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" #include "G4eplusAnnihilation.hh" -#include "G4MuIonisationSTD.hh" -#include "G4MuBremsstrahlungSTD.hh" -#include "G4MuPairProductionSTD.hh" +#include "G4MuIonisation52.hh" +#include "G4MuBremsstrahlung52.hh" +#include "G4MuPairProduction52.hh" + +#include "G4hIonisation52.hh" -#include "G4hIonisationSTD.hh" -#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysListEmModel::PhysListEmModel(const G4String& name) +PhysListEmG4v52::PhysListEmG4v52(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -PhysListEmModel::~PhysListEmModel() +PhysListEmG4v52::~PhysListEmG4v52() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void PhysListEmModel::ConstructProcess() +void PhysListEmG4v52::ConstructProcess() { // Add EM processes realised on base of prototype of model approach design @@ -79,36 +79,36 @@ void PhysListEmModel::ConstructProcess() } else if (particleName == "e-") { //electron - pmanager->AddProcess(new G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -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 G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { //muon - pmanager->AddProcess(new G4MultipleScatteringSTD,-1, 1,1); - pmanager->AddProcess(new G4MuIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlungSTD, -1,-1,3); - pmanager->AddProcess(new G4MuPairProductionSTD, -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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4ionIonisation, -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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4hIonisationSTD, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.cc new file mode 100644 index 0000000000..211fb731b8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListEmStandard.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: PhysListEmStandard.cc,v 1.5 2003/10/24 12:06:36 maire Exp $ +// GEANT4 tag $Name: geant4-06-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 "G4eBremsstrahlungCMS.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); + ///pmanager->AddProcess(new G4eBremsstrahlungCMS("brCMS", 10*MeV),-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 G4eBremsstrahlungCMS("brCMS", 10*MeV),-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/TestEm5/src/Em5PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListGeneral.cc similarity index 90% rename from examples/extended/electromagnetic/TestEm5/src/Em5PhysListGeneral.cc rename to examples/extended/electromagnetic/TestEm1/src/PhysListGeneral.cc index 31255b7140..dd76a1b681 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListGeneral.cc @@ -21,30 +21,31 @@ // ******************************************************************** // // -// $Id: Em5PhysListGeneral.cc,v 1.1 2003/04/30 14:12:39 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListGeneral.cc,v 1.1 2003/10/06 10:02:32 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5PhysListGeneral.hh" +#include "PhysListGeneral.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" +#include "G4Decay.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysListGeneral::Em5PhysListGeneral(const G4String& name) +PhysListGeneral::PhysListGeneral(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysListGeneral::~Em5PhysListGeneral() +PhysListGeneral::~PhysListGeneral() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysListGeneral::ConstructProcess() +void PhysListGeneral::ConstructProcess() { // Add Decay Process diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysListParticles.cc b/examples/extended/electromagnetic/TestEm1/src/PhysListParticles.cc similarity index 93% rename from examples/extended/electromagnetic/TestEm1/src/Em1PhysListParticles.cc rename to examples/extended/electromagnetic/TestEm1/src/PhysListParticles.cc index 144b866e59..02a6d9ca46 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysListParticles.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em1PhysListParticles.cc,v 1.1 2003/03/27 11:16:20 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.cc,v 1.1 2003/10/06 10:02:32 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1PhysListParticles.hh" +#include "PhysListParticles.hh" // Bosons #include "G4ChargedGeantino.hh" @@ -75,18 +75,18 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysListParticles::Em1PhysListParticles(const G4String& name) +PhysListParticles::PhysListParticles(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysListParticles::~Em1PhysListParticles() +PhysListParticles::~PhysListParticles() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysListParticles::ConstructParticle() +void PhysListParticles::ConstructParticle() { // pseudo-particles diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc similarity index 74% rename from examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc rename to examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc index 5d92ee15fe..29304916d3 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysicsList.cc @@ -21,32 +21,27 @@ // ******************************************************************** // // -// $Id: Em1PhysicsList.cc,v 1.12 2003/06/03 09:59:55 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.cc,v 1.2 2003/10/24 12:06:36 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1PhysicsList.hh" -#include "Em1PhysicsListMessenger.hh" +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" -#include "G4UnitsTable.hh" -#include "Em1PhysListParticles.hh" -#include "Em1PhysListGeneral.hh" -#include "Em1PhysListEmStandard.hh" -#include "Em1PhysListEmModel.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" +#include "PhysListParticles.hh" +#include "PhysListGeneral.hh" +#include "PhysListEmStandard.hh" +#include "PhysListEmG4v52.hh" +#include "DetectorConstruction.hh" -#include "Em1DetectorConstruction.hh" -#include "G4EnergyLossTables.hh" -#include "G4Material.hh" #include "G4LossTableManager.hh" +#include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysicsList::Em1PhysicsList(Em1DetectorConstruction* p) +PhysicsList::PhysicsList(DetectorConstruction* p) : G4VModularPhysicsList() { G4LossTableManager::Instance(); @@ -57,39 +52,39 @@ Em1PhysicsList::Em1PhysicsList(Em1DetectorConstruction* p) cutForElectron = currentDefaultCut; cutForPositron = currentDefaultCut; - pMessenger = new Em1PhysicsListMessenger(this); + pMessenger = new PhysicsListMessenger(this); SetVerboseLevel(1); // Particles - particleList = new Em1PhysListParticles("particles"); + particleList = new PhysListParticles("particles"); // General Physics - generalPhysicsList = new Em1PhysListGeneral("general"); + generalPhysicsList = new PhysListGeneral("general"); // EM physics emName = G4String("standard"); - emPhysicsList = new Em1PhysListEmStandard(emName); + emPhysicsList = new PhysListEmStandard(emName); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysicsList::~Em1PhysicsList() +PhysicsList::~PhysicsList() { delete pMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::ConstructParticle() +void PhysicsList::ConstructParticle() { particleList->ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::ConstructProcess() +void PhysicsList::ConstructProcess() { AddTransportation(); generalPhysicsList->ConstructProcess(); @@ -98,10 +93,10 @@ void Em1PhysicsList::ConstructProcess() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::AddPhysicsList(const G4String& name) +void PhysicsList::AddPhysicsList(const G4String& name) { if (verboseLevel>1) { - G4cout << "Em1PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; } if (name == emName) return; @@ -110,17 +105,17 @@ void Em1PhysicsList::AddPhysicsList(const G4String& name) emName = name; delete emPhysicsList; - emPhysicsList = new Em1PhysListEmStandard(name); + emPhysicsList = new PhysListEmStandard(name); - } else if (name == "model") { + } else if (name == "g4v52") { emName = name; delete emPhysicsList; - emPhysicsList = new Em1PhysListEmModel(name); + emPhysicsList = new PhysListEmG4v52(name); } else { - G4cout << "Em1PhysicsList::AddPhysicsList: <" << name << ">" + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << " is not defined" << G4endl; } @@ -128,10 +123,14 @@ void Em1PhysicsList::AddPhysicsList(const G4String& name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::SetCuts() +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +void PhysicsList::SetCuts() { if (verboseLevel >0){ - G4cout << "Em1PhysicsList::SetCuts:"; + G4cout << "PhysicsList::SetCuts:"; G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; } @@ -146,7 +145,7 @@ void Em1PhysicsList::SetCuts() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::SetCutForGamma(G4double cut) +void PhysicsList::SetCutForGamma(G4double cut) { cutForGamma = cut; SetParticleCuts(cutForGamma, G4Gamma::Gamma()); @@ -154,7 +153,7 @@ void Em1PhysicsList::SetCutForGamma(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::SetCutForElectron(G4double cut) +void PhysicsList::SetCutForElectron(G4double cut) { cutForElectron = cut; SetParticleCuts(cutForElectron, G4Electron::Electron()); @@ -162,7 +161,7 @@ void Em1PhysicsList::SetCutForElectron(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::SetCutForPositron(G4double cut) +void PhysicsList::SetCutForPositron(G4double cut) { cutForPositron = cut; SetParticleCuts(cutForPositron, G4Positron::Positron()); @@ -170,17 +169,19 @@ void Em1PhysicsList::SetCutForPositron(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsList::GetRange(G4double val) +#include "G4Material.hh" + +void PhysicsList::GetRange(G4double val) { G4LogicalVolume* lBox = pDet->GetWorld()->GetLogicalVolume(); - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); + G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); const G4MaterialCutsCouple* couple = lBox->GetMaterialCutsCouple(); const G4Material* currMat = lBox->GetMaterial(); G4ParticleDefinition* part; G4double cut; - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,couple); + part = particleTable->FindParticle("e-"); + cut = G4LossTableManager::Instance()->GetRange(part,val,couple); G4cout << "material : " << currMat->GetName() << G4endl; G4cout << "particle : " << part->GetParticleName() << G4endl; G4cout << "energy : " << G4BestUnit(val,"Energy") << G4endl; diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc similarity index 92% rename from examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc rename to examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc index c352091047..d320980713 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PhysicsListMessenger.cc @@ -21,23 +21,23 @@ // ******************************************************************** // // -// $Id: Em1PhysicsListMessenger.cc,v 1.10 2003/03/27 11:16:21 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.cc,v 1.1 2003/10/06 10:02:33 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1PhysicsListMessenger.hh" +#include "PhysicsListMessenger.hh" -#include "Em1PhysicsList.hh" +#include "PhysicsList.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithAString.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysicsListMessenger::Em1PhysicsListMessenger(Em1PhysicsList* pPhys) +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) :pPhysicsList(pPhys) { gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this); @@ -83,7 +83,7 @@ Em1PhysicsListMessenger::Em1PhysicsListMessenger(Em1PhysicsList* pPhys) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysicsListMessenger::~Em1PhysicsListMessenger() +PhysicsListMessenger::~PhysicsListMessenger() { delete gammaCutCmd; delete electCutCmd; @@ -95,7 +95,7 @@ Em1PhysicsListMessenger::~Em1PhysicsListMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysicsListMessenger::SetNewValue(G4UIcommand* command, +void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if( command == gammaCutCmd ) diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc similarity index 81% rename from examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc rename to examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc index f666567adc..84be434248 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorAction.cc @@ -21,18 +21,18 @@ // ******************************************************************** // // -// $Id: Em1PrimaryGeneratorAction.cc,v 1.5 2001/12/07 11:49:09 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.cc,v 1.1 2003/10/06 10:02:33 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1PrimaryGeneratorAction.hh" +#include "PrimaryGeneratorAction.hh" -#include "Em1DetectorConstruction.hh" -#include "Em1PrimaryGeneratorMessenger.hh" +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorMessenger.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" @@ -42,21 +42,21 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PrimaryGeneratorAction::Em1PrimaryGeneratorAction( - Em1DetectorConstruction* Em1DC) -:Em1Detector(Em1DC) +PrimaryGeneratorAction::PrimaryGeneratorAction( + DetectorConstruction* DC) +:Detector(DC) { particleGun = new G4ParticleGun(1); SetDefaultKinematic(0); rndmBeam = 0.; //create a messenger for this class - gunMessenger = new Em1PrimaryGeneratorMessenger(this); + gunMessenger = new PrimaryGeneratorMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PrimaryGeneratorAction::~Em1PrimaryGeneratorAction() +PrimaryGeneratorAction::~PrimaryGeneratorAction() { delete particleGun; delete gunMessenger; @@ -64,7 +64,7 @@ Em1PrimaryGeneratorAction::~Em1PrimaryGeneratorAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PrimaryGeneratorAction::SetDefaultKinematic(G4int front) +void PrimaryGeneratorAction::SetDefaultKinematic(G4int front) { G4ParticleDefinition* particle = G4ParticleTable::GetParticleTable()->FindParticle("e-"); @@ -72,13 +72,13 @@ void Em1PrimaryGeneratorAction::SetDefaultKinematic(G4int front) particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); particleGun->SetParticleEnergy(100*MeV); G4double position = 0.*cm; - if (front) position = -0.5*(Em1Detector->GetSize()); + if (front) position = -0.5*(Detector->GetSize()); particleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm)); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event // @@ -86,7 +86,7 @@ void Em1PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) if (rndmBeam > 0.) { G4ThreeVector oldPosition = particleGun->GetParticlePosition(); - G4double rbeam = 0.5*(Em1Detector->GetSize())*rndmBeam; + G4double rbeam = 0.5*(Detector->GetSize())*rndmBeam; G4double x0 = oldPosition.x(); G4double y0 = oldPosition.y() + (2*G4UniformRand()-1.)*rbeam; G4double z0 = oldPosition.z() + (2*G4UniformRand()-1.)*rbeam; diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc similarity index 81% rename from examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc rename to examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc index 23c58feced..2611354dc9 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm1/src/PrimaryGeneratorMessenger.cc @@ -21,25 +21,25 @@ // ******************************************************************** // // -// $Id: Em1PrimaryGeneratorMessenger.cc,v 1.3 2002/12/11 14:19:24 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorMessenger.cc,v 1.1 2003/10/06 10:02:33 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1PrimaryGeneratorMessenger.hh" +#include "PrimaryGeneratorMessenger.hh" -#include "Em1PrimaryGeneratorAction.hh" +#include "PrimaryGeneratorAction.hh" #include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithADouble.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PrimaryGeneratorMessenger::Em1PrimaryGeneratorMessenger( - Em1PrimaryGeneratorAction* Em1Gun) -:Em1Action(Em1Gun) +PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( + PrimaryGeneratorAction* Gun) +:Action(Gun) { DefaultCmd = new G4UIcmdWithAnInteger("/testem/gun/setDefault",this); DefaultCmd->SetGuidance("set/reset kinematic defined in PrimaryGenerator"); @@ -58,7 +58,7 @@ Em1PrimaryGeneratorMessenger::Em1PrimaryGeneratorMessenger( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PrimaryGeneratorMessenger::~Em1PrimaryGeneratorMessenger() +PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() { delete DefaultCmd; delete RndmCmd; @@ -66,14 +66,14 @@ Em1PrimaryGeneratorMessenger::~Em1PrimaryGeneratorMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, +void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if (command == DefaultCmd) - {Em1Action->SetDefaultKinematic(DefaultCmd->GetNewIntValue(newValue));} + {Action->SetDefaultKinematic(DefaultCmd->GetNewIntValue(newValue));} if (command == RndmCmd) - {Em1Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} + {Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc b/examples/extended/electromagnetic/TestEm1/src/RunAction.cc similarity index 91% rename from examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc rename to examples/extended/electromagnetic/TestEm1/src/RunAction.cc index 7b3288072b..fd18237c44 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1RunAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1RunAction.cc,v 1.20 2003/06/18 09:30:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.cc,v 1.3 2003/11/07 15:38:28 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,39 +31,39 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1RunAction.hh" +#include "RunAction.hh" #include "G4Run.hh" #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" -#include +#include "G4UnitsTable.hh" #include "Randomize.hh" +#include -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1RunAction::Em1RunAction() +RunAction::RunAction() : ProcCounter(0) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1RunAction::~Em1RunAction() +RunAction::~RunAction() { cleanHisto(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1RunAction::bookHisto() +void RunAction::bookHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE // Creating the analysis factory AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); @@ -95,9 +95,9 @@ void Em1RunAction::bookHisto() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1RunAction::cleanHisto() +void RunAction::cleanHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) @@ -107,7 +107,7 @@ void Em1RunAction::cleanHisto() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1RunAction::BeginOfRunAction(const G4Run* aRun) +void RunAction::BeginOfRunAction(const G4Run* aRun) { G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; @@ -116,6 +116,7 @@ void Em1RunAction::BeginOfRunAction(const G4Run* aRun) HepRandom::showEngineStatus(); NbOfTraks0 = 0; NbOfTraks1 = 0; NbOfSteps0 = 0; NbOfSteps1 = 0; + edep = 0.0; ProcCounter = new ProcessesCount; //histograms @@ -128,7 +129,7 @@ void Em1RunAction::BeginOfRunAction(const G4Run* aRun) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1RunAction::CountProcesses(G4String procName) +void RunAction::CountProcesses(G4String procName) { //does the process already encounted ? size_t nbProc = ProcCounter->size(); @@ -141,7 +142,7 @@ void Em1RunAction::CountProcesses(G4String procName) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1RunAction::EndOfRunAction(const G4Run* aRun) +void RunAction::EndOfRunAction(const G4Run* aRun) { G4int NbOfEvents = aRun->GetNumberOfEvent(); if (NbOfEvents) @@ -160,6 +161,9 @@ void Em1RunAction::EndOfRunAction(const G4Run* aRun) << " neutral: " << std::setw(10) << NbOfSteps0/dNbOfEvents << " charged: " << std::setw(10) << NbOfSteps1/dNbOfEvents << G4endl; + + G4cout << "\n total energy deposit: " + << G4BestUnit(edep/dNbOfEvents, "Energy") << G4endl; //frequency of processes call G4cout << "\n nb of process calls per event: \n "; diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc b/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc similarity index 82% rename from examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc rename to examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc index 1574d4c86c..5ec39d5fd9 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/SteppingAction.cc @@ -21,47 +21,49 @@ // ******************************************************************** // // -// $Id: Em1SteppingAction.cc,v 1.9 2003/05/09 09:15:57 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.cc,v 1.3 2003/11/07 15:38:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1SteppingAction.hh" -#include "Em1RunAction.hh" -#include "Em1EventAction.hh" +#include "SteppingAction.hh" +#include "RunAction.hh" +#include "EventAction.hh" + #include "G4SteppingManager.hh" #include "G4VProcess.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/IHistogram1D.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1SteppingAction::Em1SteppingAction(Em1RunAction* RuAct, Em1EventAction* EvAct) -:runAction(RuAct),eventAction(EvAct) +SteppingAction::SteppingAction(RunAction* RuAct, EventAction* EvAct) + :runAction(RuAct),eventAction(EvAct) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::~SteppingAction() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1SteppingAction::~Em1SteppingAction() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em1SteppingAction::UserSteppingAction(const G4Step* aStep) +void SteppingAction::UserSteppingAction(const G4Step* aStep) { G4double EdepStep = aStep->GetTotalEnergyDeposit(); - if (EdepStep > 0.) eventAction->addEdep(EdepStep); - + if (EdepStep > 0.) { runAction->AddEdep(EdepStep); + eventAction->AddEdep(EdepStep); + } const G4VProcess* process = aStep->GetPostStepPoint()->GetProcessDefinedStep(); if (process) runAction->CountProcesses(process->GetProcessName()); -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE G4double charge = aStep->GetTrack()->GetDefinition()->GetPDGCharge(); G4double steplen = aStep->GetStepLength(); if (charge != 0.) runAction->GetHisto(2)->fill(steplen); diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc similarity index 95% rename from examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc rename to examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc index 54519d985d..55b6fbaa7b 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm1/src/SteppingVerbose.cc @@ -21,30 +21,30 @@ // ******************************************************************** // // -// $Id: Em3SteppingVerbose.cc,v 1.10 2003/06/16 16:47:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.cc,v 1.1 2003/10/06 10:02:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3SteppingVerbose.hh" +#include "SteppingVerbose.hh" #include "G4SteppingManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3SteppingVerbose::Em3SteppingVerbose() +SteppingVerbose::SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3SteppingVerbose::~Em3SteppingVerbose() +SteppingVerbose::~SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3SteppingVerbose::StepInfo() +void SteppingVerbose::StepInfo() { CopyState(); @@ -137,7 +137,7 @@ void Em3SteppingVerbose::StepInfo() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3SteppingVerbose::TrackingStarted() +void SteppingVerbose::TrackingStarted() { CopyState(); diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc b/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc similarity index 77% rename from examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc rename to examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc index 46d06824f2..4ebcd04b0a 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm1/src/TrackingAction.cc @@ -20,38 +20,45 @@ // * statement, and all its terms. * // ******************************************************************** // - -// -// $Id: Em1TrackingAction.cc,v 1.9 2003/05/09 09:15:57 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // +// $Id: TrackingAction.cc,v 1.5 2003/10/28 10:27:26 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // - +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1TrackingAction.hh" -#include "Em1RunAction.hh" +#include "TrackingAction.hh" +#include "RunAction.hh" #include "G4Track.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/IHistogram1D.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1TrackingAction::Em1TrackingAction(Em1RunAction* RunAct) +TrackingAction::TrackingAction(RunAction* RunAct) :runAction(RunAct) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1TrackingAction::PostUserTrackingAction(const G4Track* aTrack) +void TrackingAction::PreUserTrackingAction(const G4Track*) +{ + // G4cout << "ID= " << aTrack->GetTrackID() << " e(MeV)= " + // << aTrack->GetDynamicParticle()->GetKineticEnergy()/MeV << " " + // << aTrack->GetDynamicParticle()->GetDefinition()->GetParticleName() + // << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction(const G4Track* aTrack) { //increase nb of processed tracks //count nb of steps of this track - G4int nbSteps = aTrack->GetCurrentStepNumber(); if (aTrack->GetDefinition()->GetPDGCharge() == 0.) { @@ -59,10 +66,11 @@ void Em1TrackingAction::PostUserTrackingAction(const G4Track* aTrack) runAction->CountSteps0(nbSteps); } else { + runAction->CountTraks1(1); runAction->CountSteps1(nbSteps); -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE G4double Trleng = aTrack->GetTrackLength(); runAction->GetHisto(0)->fill(Trleng); runAction->GetHisto(1)->fill((float)nbSteps); diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc b/examples/extended/electromagnetic/TestEm1/src/VisManager.cc similarity index 95% rename from examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc rename to examples/extended/electromagnetic/TestEm1/src/VisManager.cc index 2da501d68c..1bdb8f16ce 100755 --- a/examples/extended/electromagnetic/TestEm4/src/Em4VisManager.cc +++ b/examples/extended/electromagnetic/TestEm1/src/VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em4VisManager.cc,v 1.7 2002/11/13 21:39:56 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.cc,v 1.1 2003/10/06 10:02:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -32,7 +32,7 @@ #ifdef G4VIS_USE -#include "Em4VisManager.hh" +#include "VisManager.hh" // Supported drivers... @@ -87,11 +87,11 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4VisManager::Em4VisManager () {} +VisManager::VisManager () {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4VisManager::RegisterGraphicsSystems () { +void VisManager::RegisterGraphicsSystems () { // Graphics Systems not needing external packages or libraries... RegisterGraphicsSystem (new G4ASCIITree); diff --git a/examples/extended/electromagnetic/TestEm10/History b/examples/extended/electromagnetic/TestEm10/History index 6d727f18dc..f23715342b 100644 --- a/examples/extended/electromagnetic/TestEm10/History +++ b/examples/extended/electromagnetic/TestEm10/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2003/02/20 13:09:28 vnivanch Exp $ +$Id: History,v 1.10 2003/11/25 18:47:28 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,15 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +25-11-03 V.Ivant (testem10-V05-02-01) + +13-11-03 John Allison +- Removed OPACS from Vis Manager. + +27-08-03 V.Ivant (testem10-V05-02-00) +- Remove obsolete interfaces +- Substitute in the PhysicsList processes by those of 5.2 realise + 20 Feb. 2003 Vladimir Ivanchenko (testem10-V05-00-00) - Migrade to cut per region diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.cc b/examples/extended/electromagnetic/TestEm10/TestEm10.cc index af88e79ec3..69ac553159 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.cc +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm10.cc,v 1.2 2001/07/11 09:57:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.in b/examples/extended/electromagnetic/TestEm10/TestEm10.in index ee40637fa1..865355e40d 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.in +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.in @@ -2,11 +2,12 @@ # Macro file 'TestEm10.in' for testing "TestEm10" # # +/run/verbose 1 /run/initialize -/run/particle/dumpCutValues /gun/particle e- /gun/energy 9 GeV /run/beamOn 1000 +/run/dumpCouples diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out b/examples/extended/electromagnetic/TestEm10/TestEm10.large_N.out index d22b93949c..a7353405e0 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-05-02 $ + Geant4 version $Name: geant4-06-00 $ (13-Dec-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/electromagnetic/TestEm10/TestEm10.out b/examples/extended/electromagnetic/TestEm10/TestEm10.out index febb3057e7..5d801c05e7 100644 --- a/examples/extended/electromagnetic/TestEm10/TestEm10.out +++ b/examples/extended/electromagnetic/TestEm10/TestEm10.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -23,16 +23,16 @@ Current available graphics systems are: 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: TRT_CH2 density: 935.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 27.414 cm - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 74.84 % Abundance 33.33 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 25.16 % Abundance 66.67 % + Material: TRT_CH2 density: 935.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 47.898 cm + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % - Material: Radiator density: 59.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 4.344 m - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 74.84 % Abundance 33.33 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 25.16 % Abundance 66.67 % + Material: Radiator density: 59.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 7.591 m + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 14.40 % Abundance 66.67 % - Material: CarbonFiber density: 145.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.473 m - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + Material: CarbonFiber density: 145.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.944 m + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 100.00 % Abundance 100.00 % Material: Li density: 534.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.550 m ---> Element: Lithium Li Z = 3.0 N = 6.9 A = 6.94 g/mole fractionMass: 100.00 % Abundance 100.00 % @@ -40,19 +40,19 @@ Current available graphics systems are: Material: Be density: 1.848 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 35.267 cm ---> Element: Berillium Be Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % - Material: Mylar density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 19.770 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 48.42 % Abundance 18.18 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 45.47 % Abundance 45.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 6.11 % Abundance 36.36 % + Material: Mylar 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.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 19.770 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 48.42 % Abundance 18.18 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 45.47 % Abundance 45.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 6.11 % 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: CH2 density: 910.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.167 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 25.16 % Abundance 66.67 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 74.84 % Abundance 33.33 % + 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 % + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % 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 % @@ -69,25 +69,25 @@ Current available graphics systems are: Material: Xenon density: 5.858 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.478 m ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % - Material: CH4 density: 0.717 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 405.758 m - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 59.80 % Abundance 20.00 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 40.20 % Abundance 80.00 % + Material: CH4 density: 0.717 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 648.001 m + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 74.83 % Abundance 20.00 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 25.17 % Abundance 80.00 % - Material: C3H8 density: 2.005 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 134.002 m - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 69.05 % Abundance 27.27 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 30.95 % Abundance 72.73 % + Material: C3H8 density: 2.005 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 226.382 m + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 81.68 % Abundance 27.27 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 18.32 % Abundance 72.73 % - Material: isoC4H10 density: 2.670 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 99.499 m - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 70.42 % Abundance 28.57 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 29.58 % Abundance 71.43 % + Material: isoC4H10 density: 2.670 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 169.446 m + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 82.63 % Abundance 28.57 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 17.37 % Abundance 71.43 % - Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 158.123 m - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 15.81 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 84.19 % Abundance 66.67 % + Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % - Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 158.123 m - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 15.81 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 84.19 % Abundance 66.67 % + Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % Material: N2 density: 1.251 mg/cm3 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 % @@ -100,59 +100,59 @@ 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: Xe20CO2 density: 5.082 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 17.695 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 92.20 % Abundance 53.29 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 1.23 % Abundance 15.57 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 6.57 % Abundance 31.14 % + 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: Kr20CO2 density: 3.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 33.957 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 89.00 % Abundance 55.02 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 1.74 % Abundance 14.99 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 9.26 % Abundance 29.99 % + 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.193 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 89.50 % Abundance 14.61 % - ---> Element: He Z = 2.0 N = 4.0 A = 4.00 g/mole fractionMass: 5.00 % Abundance 26.77 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 3.29 % Abundance 11.73 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 2.21 % Abundance 46.90 % + Material: Xe55He15CH4 density: 1.963 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 47.504 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 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 1.38 % Abundance 37.61 % - Material: Xe10CH4 density: 5.344 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 16.018 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 98.70 % Abundance 53.75 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 0.78 % Abundance 9.25 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.52 % Abundance 37.00 % + Material: Xe10CH4 density: 5.344 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 16.041 m + ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 98.70 % Abundance 64.99 % + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.97 % Abundance 7.00 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.33 % Abundance 28.01 % - Material: Xe5CH4 density: 5.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 15.207 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 99.40 % Abundance 71.72 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 0.36 % Abundance 5.66 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.24 % Abundance 22.62 % + Material: Xe5CH4 density: 5.601 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 15.217 m + ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 99.40 % Abundance 80.20 % + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.45 % Abundance 3.96 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.15 % Abundance 15.84 % - Material: Xe20CH4 density: 4.830 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 17.941 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 97.00 % Abundance 33.11 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 1.79 % Abundance 13.38 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 1.21 % Abundance 53.51 % + Material: Xe20CH4 density: 4.830 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.001 m + ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 97.00 % Abundance 44.15 % + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.24 % Abundance 11.17 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.76 % Abundance 44.68 % - Material: Ar7CH4 density: 1.709 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 115.488 m - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 97.10 % Abundance 62.75 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 1.73 % Abundance 7.45 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 1.17 % Abundance 29.80 % + Material: Ar7CH4 density: 1.709 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 116.343 m + ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 97.10 % Abundance 72.90 % + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 2.17 % Abundance 5.42 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.73 % Abundance 21.68 % - Material: Kr7CH4 density: 3.491 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 32.856 m - ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 98.60 % Abundance 62.82 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 0.84 % Abundance 7.44 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.56 % Abundance 29.75 % + Material: Kr7CH4 density: 3.491 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 32.924 m + ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 98.60 % Abundance 72.96 % + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 1.05 % Abundance 5.41 % + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.35 % Abundance 21.63 % - Material: XeArCH4 density: 3.655 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 26.879 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 76.14 % Abundance 33.82 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 0.68 % Abundance 6.60 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 0.46 % Abundance 26.42 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 22.72 % Abundance 33.17 % + Material: XeArCH4 density: 3.655 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 26.918 m + ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 76.14 % Abundance 38.58 % + ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.85 % Abundance 4.72 % + ---> 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: 11.575 m - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 47.08 % Abundance 18.25 % - ---> Element: Carbon C Z = 6.0 N = 6.0 A = 6.01 g/mole fractionMass: 43.07 % Abundance 44.43 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 5.79 % Abundance 35.54 % - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 3.99 % Abundance 1.77 % - ---> Element: Argon Ar Z = 18.0 N = 39.9 A = 39.95 g/mole fractionMass: 0.07 % Abundance 0.01 % + 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 % @@ -171,61 +171,61 @@ the number of TR radiator plates = 100 total radiator thickness = 7.747 cm plate material = Mylar gas material = Air -plate plasma energy = 29.55 eV +plate plasma energy = 24.5068 eV gas plasma energy = 0.731967 eV Regular X-ray TR radiator EM process is called -0 fGamma = 107.6 sumE = 0.1939 -1 fGamma = 123.4 sumE = 0.2562 -2 fGamma = 141.5 sumE = 0.3312 -3 fGamma = 162.3 sumE = 0.4127 -4 fGamma = 186.2 sumE = 0.5086 -5 fGamma = 213.7 sumE = 0.606 -6 fGamma = 245.2 sumE = 0.7458 -7 fGamma = 281.3 sumE = 0.8992 -8 fGamma = 322.9 sumE = 1.071 -9 fGamma = 370.5 sumE = 1.216 -10 fGamma = 425.3 sumE = 1.423 -11 fGamma = 488.2 sumE = 1.546 -12 fGamma = 560.3 sumE = 1.857 -13 fGamma = 643.2 sumE = 2.068 -14 fGamma = 738.3 sumE = 2.186 -15 fGamma = 847.6 sumE = 2.529 -16 fGamma = 973 sumE = 2.738 -17 fGamma = 1117 sumE = 3.213 -18 fGamma = 1282 sumE = 3.92 -19 fGamma = 1472 sumE = 3.717 -20 fGamma = 1690 sumE = 4.394 -21 fGamma = 1940 sumE = 4.373 -22 fGamma = 2228 sumE = 5.599 -23 fGamma = 2558 sumE = 5.115 -24 fGamma = 2936 sumE = 6.031 -25 fGamma = 3371 sumE = 5.996 -26 fGamma = 3871 sumE = 6.794 -27 fGamma = 4444 sumE = 7.16 -28 fGamma = 5102 sumE = 6.72 -29 fGamma = 5858 sumE = 6.38 -30 fGamma = 6726 sumE = 6.386 -31 fGamma = 7722 sumE = 7.062 -32 fGamma = 8866 sumE = 6.933 -33 fGamma = 1.018e+04 sumE = 7.159 -34 fGamma = 1.169e+04 sumE = 7.213 -35 fGamma = 1.342e+04 sumE = 6.817 -36 fGamma = 1.541e+04 sumE = 7.552 -37 fGamma = 1.769e+04 sumE = 7.114 -38 fGamma = 2.031e+04 sumE = 6.976 -39 fGamma = 2.332e+04 sumE = 6.661 -40 fGamma = 2.677e+04 sumE = 6.809 -41 fGamma = 3.074e+04 sumE = 6.807 -42 fGamma = 3.529e+04 sumE = 6.856 -43 fGamma = 4.052e+04 sumE = 6.88 -44 fGamma = 4.652e+04 sumE = 6.943 -45 fGamma = 5.342e+04 sumE = 7.002 -46 fGamma = 6.133e+04 sumE = 7.048 -47 fGamma = 7.042e+04 sumE = 7.084 -48 fGamma = 8.085e+04 sumE = 7.114 -49 fGamma = 9.283e+04 sumE = 7.138 +0 fGamma = 107.6 sumE = 0.1375 +1 fGamma = 123.4 sumE = 0.1837 +2 fGamma = 141.5 sumE = 0.2418 +3 fGamma = 162.3 sumE = 0.3066 +4 fGamma = 186.2 sumE = 0.383 +5 fGamma = 213.7 sumE = 0.4962 +6 fGamma = 245.2 sumE = 0.6044 +7 fGamma = 281.3 sumE = 0.7205 +8 fGamma = 322.9 sumE = 0.8636 +9 fGamma = 370.5 sumE = 0.9838 +10 fGamma = 425.3 sumE = 1.132 +11 fGamma = 488.2 sumE = 1.3 +12 fGamma = 560.3 sumE = 1.515 +13 fGamma = 643.2 sumE = 1.72 +14 fGamma = 738.3 sumE = 2.035 +15 fGamma = 847.6 sumE = 2.092 +16 fGamma = 973 sumE = 2.807 +17 fGamma = 1117 sumE = 2.533 +18 fGamma = 1282 sumE = 3.06 +19 fGamma = 1472 sumE = 3.308 +20 fGamma = 1690 sumE = 3.858 +21 fGamma = 1940 sumE = 4.186 +22 fGamma = 2228 sumE = 5.068 +23 fGamma = 2558 sumE = 4.712 +24 fGamma = 2936 sumE = 5.267 +25 fGamma = 3371 sumE = 4.662 +26 fGamma = 3871 sumE = 5.098 +27 fGamma = 4444 sumE = 5.373 +28 fGamma = 5102 sumE = 4.5 +29 fGamma = 5858 sumE = 5.411 +30 fGamma = 6726 sumE = 4.855 +31 fGamma = 7722 sumE = 5.287 +32 fGamma = 8866 sumE = 5.582 +33 fGamma = 1.018e+04 sumE = 5.473 +34 fGamma = 1.169e+04 sumE = 6.564 +35 fGamma = 1.342e+04 sumE = 7.486 +36 fGamma = 1.541e+04 sumE = 10.5 +37 fGamma = 1.769e+04 sumE = 13.53 +38 fGamma = 2.031e+04 sumE = 16.15 +39 fGamma = 2.332e+04 sumE = 18.12 +40 fGamma = 2.677e+04 sumE = 19.3 +41 fGamma = 3.074e+04 sumE = 19.99 +42 fGamma = 3.529e+04 sumE = 20.4 +43 fGamma = 4.052e+04 sumE = 20.65 +44 fGamma = 4.652e+04 sumE = 20.81 +45 fGamma = 5.342e+04 sumE = 20.92 +46 fGamma = 6.133e+04 sumE = 20.98 +47 fGamma = 7.042e+04 sumE = 21.01 +48 fGamma = 8.085e+04 sumE = 21.04 +49 fGamma = 9.283e+04 sumE = 21.05 -total time for build X-ray TR energy loss tables = 111.86 s +total time for build X-ray TR energy loss tables = 210.42 s phot: Total cross sections from Sandia parametrisation. Em10PhysicsList::SetCuts:CutLength : 1 mm @@ -311,14 +311,14 @@ 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- 43.8848 keV e+ 43.3478 keV + Energy thresholds : gamma 990 eV e- 35.598 keV e+ 35.1625 keV Region(s) which use this couple : DefaultRegionForTheWorld Index : 2 used in the geometry : Yes recalculation needed : No Material : Mylar Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 3.48153 keV e- 540.718 keV e+ 527.568 keV + Energy thresholds : gamma 2.97898 keV e- 417.539 keV e+ 402.4 keV Region(s) which use this couple : DefaultRegionForTheWorld @@ -337,29 +337,68 @@ Index : 3 used in the geometry : Yes recalculation needed : No Initial seed (index) = 0 Current couple of seeds = 9876, 54321 ---------------------------------------- +Start Run processing. ---> Begin of Event: 0 +Run terminated. +Run Summary + Number of events processed : 1000 + User=214.99s Real=215.24s Sys=0.25s ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=24.0667 +- 0.999523 mm + mean charged track length in absorber=68.4534 +- 2.63717 mm - mean energy deposit in absorber=0.0053188 +- 0.000141656 MeV + mean energy deposit in absorber=0.0113531 +- 0.000241854 MeV - mean number of steps in absorber (charged) =1.251 +- 0.0168523 - mean number of steps in absorber (neutral) =2.263 +- 0.0473691 + mean number of steps in absorber (charged) =2.37 +- 0.0413896 + mean number of steps in absorber (neutral) =3.77 +- 0.0602752 - mean number of charged secondaries = 0.229 +- 0.0151182 + mean number of charged secondaries = 1.227 +- 0.0355735 mean number of neutral secondaries = 0 +- 0 - mean number of e-s =0.229 and e+s =0 + mean number of e-s =1.227 and e+s =0 -(number) transmission coeff=0.18 reflection coeff=0.002 +(number) transmission coeff=0.407 reflection coeff=0.387 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1657761120, 607392201 + Current couple of seeds = 1230122199, 1902390584 ---------------------------------------- + +========= Table of registered couples ============================== + +Index : 0 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 : + DefaultRegionForTheWorld + +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 + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 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 + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : Ar7CH4 + 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 + +==================================================================== + Graphics systems deleted. Visualization Manager deleting... +G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorHit.hh index 4b16acdcb2..d5822a2824 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.2 2001/07/11 09:57:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm10/include/Em10CalorimeterSD.hh index 7de051a777..bd2bb89bcb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh index adb0c0b555..eeb35628b5 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: Em10DetectorConstruction.hh,v 1.5 2002/02/05 11:06:37 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh index afcd2d4bc2..e78e401f0d 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10DetectorMessenger.hh,v 1.3 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventAction.hh index e427be5da2..d50b6f0b6e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10EventActionMessenger.hh index e1f8560988..d5005ca487 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsList.hh index 2a9c7e7f2f..9fa9dc3f8e 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.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em10PhysicsList.hh,v 1.4 2003/08/28 09:36:12 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef Em10PhysicsList_h @@ -35,20 +35,19 @@ class G4PhotoElectricEffect; class G4ComptonScattering; class G4GammaConversion; -class G4MultipleScattering; +class G4MultipleScattering52; class G4PAIonisation ; class G4ForwardXrayTR ; -class G4eIonisation; -class G4eBremsstrahlung; +class G4eIonisation52; +class G4eBremsstrahlung52; class G4eplusAnnihilation; -class G4MuIonisation; -class G4MuBremsstrahlung; -class G4MuPairProduction; +class G4MuIonisation52; +class G4MuBremsstrahlung52; +class G4MuPairProduction52; -class G4hIonisation; -class G4hIonisationPlus; +class G4hIonisation52; class Em10StepCut; @@ -83,14 +82,11 @@ class Em10PhysicsList: public G4VUserPhysicsList void AddParameterisation(); void ConstructGeneral(); void ConstructEM(); - + public: void SetGammaCut(G4double); void SetElectronCut(G4double); - void SetProtonCut(G4double); - void SetCutsByEnergy(G4double); - void GetRange(G4double); void SetMaxStep(G4double); @@ -103,17 +99,17 @@ class Em10PhysicsList: public G4VUserPhysicsList G4PhotoElectricEffect* thePhotoElectricEffect; G4ComptonScattering* theComptonScattering; G4GammaConversion* theGammaConversion; - - G4MultipleScattering* theeminusMultipleScattering; - G4eIonisation* theeminusIonisation; - G4eBremsstrahlung* theeminusBremsstrahlung; + + G4MultipleScattering52* theeminusMultipleScattering; + G4eIonisation52* theeminusIonisation; + G4eBremsstrahlung52* theeminusBremsstrahlung; G4PAIonisation* fPAIonisation ; G4ForwardXrayTR* fForwardXrayTR ; - - G4MultipleScattering* theeplusMultipleScattering; - G4eIonisation* theeplusIonisation; - G4eBremsstrahlung* theeplusBremsstrahlung; + + G4MultipleScattering52* theeplusMultipleScattering; + G4eIonisation52* theeplusIonisation; + G4eBremsstrahlung52* theeplusBremsstrahlung; G4eplusAnnihilation* theeplusAnnihilation; Em10StepCut* theeminusStepCut ; @@ -121,7 +117,6 @@ class Em10PhysicsList: public G4VUserPhysicsList G4double cutForGamma; G4double cutForElectron; - G4double cutForProton; Em10DetectorConstruction* pDet; Em10PhysicsListMessenger* physicsListMessenger; diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh index a763adbf52..c860749375 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: Em10PhysicsListMessenger.hh,v 1.2 2001/07/11 09:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorAction.hh index eba8ab4553..df59495384 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10PrimaryGeneratorMessenger.hh index e911f6cda3..aabe860e1b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunAction.hh index 2ed240bce3..203d330070 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.3 2003/06/16 16:47:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10RunMessenger.hh index 1d36f09280..341bc0c2d3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh b/examples/extended/electromagnetic/TestEm10/include/Em10StepCut.hh index a1f294e329..e1333e464b 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.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingAction.hh index 688d8f3b94..cc47eb3521 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingMessenger.hh index 2328a8831a..bb52876fa6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm10/include/Em10SteppingVerbose.hh index e378eaca36..7622d11b9d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh b/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh index 3b7c76fc48..13c3d19178 100644 --- a/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh +++ b/examples/extended/electromagnetic/TestEm10/include/Em10VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em10VisManager.hh,v 1.2 2001/07/11 09:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh index 818a46bd78..10393fef59 100644 --- a/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm10/include/TRTDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: TRTDetectorConstruction.hh,v 1.2 2001/07/11 09:57:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh index 8215ed9d1c..e5f91d9dd7 100644 --- a/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh +++ b/examples/extended/electromagnetic/TestEm10/include/TRTMaterials.hh @@ -22,7 +22,7 @@ // // // $Id: TRTMaterials.hh,v 1.2 2001/07/11 09:57:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc b/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc index a62f8b9084..2bc3659518 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: Em10CalorHit.cc,v 1.2 2001/07/11 09:57:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc index b33a6e7d95..416d0f615a 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: Em10CalorimeterSD.cc,v 1.2 2001/07/11 09:57:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc index 1a1588ee42..f7e4889da7 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10DetectorConstruction.cc,v 1.8 2002/02/05 11:06:38 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em10DetectorConstruction.cc,v 1.9 2003/04/17 07:20:35 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -171,7 +171,7 @@ void Em10DetectorConstruction::DefineMaterials() a = 9.01*g/mole; G4Element* elBe = new G4Element(name="Berillium",symbol="Be" , z= 4., a); - a = 6.01*g/mole; + a = 12.01*g/mole; G4Element* elC = new G4Element(name="Carbon", symbol="C", z=6., a); a = 14.01*g/mole; diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc index 77282f77d8..7370394e52 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10DetectorMessenger.cc,v 1.6 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc index ed69634623..e76911a84e 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10EventAction.cc,v 1.4 2003/06/16 16:47:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10EventActionMessenger.cc index 8d75729f6d..ed80e49a15 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc index ababbb7e44..76b34e3e80 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsList.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: Em10PhysicsList.cc,v 1.6 2003/06/16 16:47:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// +// $Id: Em10PhysicsList.cc,v 1.8 2003/08/28 09:36:12 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// #include "G4Timer.hh" - + #include "Em10PhysicsList.hh" #include "Em10DetectorConstruction.hh" #include "Em10PhysicsListMessenger.hh" @@ -42,7 +42,7 @@ #include "G4UnitsTable.hh" #include "G4ios.hh" #include - + #include "G4FastSimulationManagerProcess.hh" @@ -68,7 +68,6 @@ Em10PhysicsList::Em10PhysicsList(Em10DetectorConstruction* p) cutForGamma = defaultCutValue ; cutForElectron = defaultCutValue ; - cutForProton = defaultCutValue ; SetVerboseLevel(1); physicsListMessenger = new Em10PhysicsListMessenger(this); @@ -167,17 +166,17 @@ void Em10PhysicsList::ConstructProcess() #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" -#include "G4MultipleScattering.hh" +#include "G4MultipleScattering52.hh" -#include "G4eIonisation.hh" -#include "G4eBremsstrahlung.hh" +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" #include "G4eplusAnnihilation.hh" -#include "G4MuIonisation.hh" -#include "G4MuBremsstrahlung.hh" -#include "G4MuPairProduction.hh" +#include "G4MuIonisation52.hh" +#include "G4MuBremsstrahlung52.hh" +#include "G4MuPairProduction52.hh" -#include "G4hIonisation.hh" +#include "G4hIonisation52.hh" #include "G4PAIonisation.hh" #include "G4ForwardXrayTR.hh" @@ -196,28 +195,28 @@ void Em10PhysicsList::ConstructEM() G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") + + if (particleName == "gamma") { // Construct processes for gamma - thePhotoElectricEffect = new G4PhotoElectricEffect(); + thePhotoElectricEffect = new G4PhotoElectricEffect(); theComptonScattering = new G4ComptonScattering(); theGammaConversion = new G4GammaConversion(); - + pmanager->AddDiscreteProcess(thePhotoElectricEffect); pmanager->AddDiscreteProcess(theComptonScattering); pmanager->AddDiscreteProcess(theGammaConversion); - - } - else if (particleName == "e-") + + } + else if (particleName == "e-") { - // Construct processes for electron + // Construct processes for electron // theeminusMultipleScattering = new G4MultipleScattering(); // theeminusIonisation = new G4eIonisation(); - theeminusBremsstrahlung = new G4eBremsstrahlung(); + theeminusBremsstrahlung = new G4eBremsstrahlung52(); // fPAIonisation = new G4PAIonisation("Xenon") ; // fForwardXrayTR = new G4ForwardXrayTR("Air","Polypropelene","XrayTR") ; @@ -231,7 +230,7 @@ void Em10PhysicsList::ConstructEM() pmanager->AddProcess(new G4IonisationByLogicalVolume(particleName, pDet->GetLogicalAbsorber(), "IonisationByLogVol"),-1,1,-1); - + pmanager->AddContinuousProcess( new G4RegularXTRadiator(pDet->GetLogicalRadiator(), pDet->GetFoilMaterial(), @@ -241,36 +240,36 @@ void Em10PhysicsList::ConstructEM() pDet->GetFoilNumber(), "RegularXTRadiator")); // ,-1,1,-1); - - pmanager->AddProcess(theeminusBremsstrahlung,-1,-1,-1); - + + pmanager->AddProcess(theeminusBremsstrahlung,-1,-1,-1); + // pmanager->AddProcess(fPAIonisation,-1,2,2); - + // pmanager->AddProcess(fForwardXrayTR,-1,-1,2); - + pmanager->AddProcess(theeminusStepCut,-1,-1,4); theeminusStepCut->SetMaxStep(MaxChargedStep) ; - } - else if (particleName == "e+") + } + else if (particleName == "e+") { - // Construct processes for positron + // Construct processes for positron // theeplusMultipleScattering = new G4MultipleScattering(); - theeplusIonisation = new G4eIonisation(); - theeplusBremsstrahlung = new G4eBremsstrahlung(); + theeplusIonisation = new G4eIonisation52(); + theeplusBremsstrahlung = new G4eBremsstrahlung52(); // theeplusAnnihilation = new G4eplusAnnihilation(); // fPAIonisation = new G4PAIonisation("Xenon") ; // fForwardXrayTR = new G4ForwardXrayTR("Air","Polypropelene","XrayTR") ; theeplusStepCut = new Em10StepCut(); - + // 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(theeplusAnnihilation,0,-1,4); + // pmanager->AddProcess(fPAIonisation,-1,2,2); @@ -278,12 +277,12 @@ void Em10PhysicsList::ConstructEM() pmanager->AddProcess(theeplusStepCut,-1,-1,5); theeplusStepCut->SetMaxStep(MaxChargedStep) ; - - } - else if( particleName == "mu+" || - particleName == "mu-" ) + + } + else if( particleName == "mu+" || + particleName == "mu-" ) { - // Construct processes for muon+ + // Construct processes for muon+ // Em10StepCut* muonStepCut = new Em10StepCut(); @@ -291,25 +290,25 @@ void Em10PhysicsList::ConstructEM() // 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->AddProcess(new G4MuPairProduction(),-1,-1,4); + // pmanager->AddProcess(new G4PAIonisation("Xenon"),-1,2,2) ; // pmanager->AddProcess( muonStepCut,-1,-1,3); // muonStepCut->SetMaxStep(MaxChargedStep) ; - } + } else if ( - particleName == "proton" - || particleName == "antiproton" - || particleName == "pi+" + particleName == "proton" + || particleName == "antiproton" + || particleName == "pi+" || particleName == "pi-" - || particleName == "kaon+" - || particleName == "kaon-" + || particleName == "kaon+" + || particleName == "kaon-" ) { Em10StepCut* thehadronStepCut = new Em10StepCut(); - // G4hIonisation* thehIonisation = new G4hIonisation() ; + // G4hIonisation* thehIonisation = new G4hIonisation() ; // G4MultipleScattering* thehMultipleScattering = // new G4MultipleScattering() ; @@ -322,11 +321,11 @@ void Em10PhysicsList::ConstructEM() // pmanager->AddProcess(new G4PAIonisation("Xenon"),-1,2,2) ; // pmanager->AddProcess(new G4PAIonisation("Argon"),-1,2,2) ; - + pmanager->AddProcess( thehadronStepCut,-1,-1,3); thehadronStepCut->SetMaxStep(MaxChargedStep) ; // thehadronStepCut->SetMaxStep(10*mm) ; - + } } } @@ -412,7 +411,6 @@ void Em10PhysicsList::SetCuts() void Em10PhysicsList::SetGammaCut(G4double val) { - ResetCuts(); cutForGamma = val; } @@ -420,70 +418,9 @@ void Em10PhysicsList::SetGammaCut(G4double val) void Em10PhysicsList::SetElectronCut(G4double val) { - ResetCuts(); cutForElectron = val; } -////////////////////////////////////////////////////////////////////// - -void Em10PhysicsList::SetProtonCut(G4double val) -{ - ResetCuts(); - cutForProton = val; -} - -//////////////////////////////////////////////////////////////////////////// - -void Em10PhysicsList::SetCutsByEnergy(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - // set cut values for gamma at first and for e- second and next for e+, - // because some processes for e+/e- need cut values for gamma - - G4ParticleDefinition* part; - G4double cut; - - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e-"); - - part = theParticleTable->FindParticle("e+"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e+"); - - // set cut values for proton and anti_proton before all other hadrons - // because some processes for hadrons need cut values for proton/anti_proton - - part = theParticleTable->FindParticle("proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "proton"); - - part = theParticleTable->FindParticle("anti_proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "anti_proton"); - - SetCutValueForOthers(cut); -} - -////////////////////////////////////////////////////////////////////////////// - -void Em10PhysicsList::GetRange(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - G4ParticleDefinition* part; - G4double cut; - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - G4cout << "material : " << currMat->GetName() << G4endl; - G4cout << "particle : " << part->GetParticleName() << G4endl; - G4cout << "energy : " << val / keV << " (keV)" << G4endl; - G4cout << "range : " << cut / mm << " (mm)" << G4endl; -} - //////////////////////////////////////////////////////////////////////////// void Em10PhysicsList::SetMaxStep(G4double step) diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc index 6768a8ee23..41e44d65fa 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10PhysicsListMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em10PhysicsListMessenger.cc,v 1.4 2003/08/27 17:31:45 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -55,27 +55,6 @@ Em10PhysicsListMessenger::Em10PhysicsListMessenger(Em10PhysicsList * List) cutECmd->SetDefaultUnit("mm"); cutECmd->AvailableForStates(G4State_Idle); - cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); - cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); - cutPCmd->SetParameterName("range",true); - cutPCmd->SetDefaultValue(1.); - cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(G4State_Idle); - - eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); - eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); - eCmd->SetParameterName("energy",true); - eCmd->SetDefaultValue(10.); - eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(G4State_Idle); - - rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); - rCmd->SetGuidance("Display the RANGE of Electron for the current material."); - rCmd->SetParameterName("energy",true); - rCmd->SetDefaultValue(10.); - rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(G4State_Idle); - setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); setMaxStepCmd->SetParameterName("mxStep",true); @@ -92,26 +71,17 @@ Em10PhysicsListMessenger::~Em10PhysicsListMessenger() delete cutGCmd; delete cutECmd; - delete cutPCmd; - delete rCmd; - delete eCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + void Em10PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if(command == cutGCmd) { Em10List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));} if(command == cutECmd) { Em10List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} - if(command == cutPCmd) - { Em10List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));} - if(command == eCmd) - { Em10List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));} - if(command == rCmd) - { Em10List->GetRange(rCmd->GetNewDoubleValue(newValue));} if(command == setMaxStepCmd) { Em10List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));} } diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorAction.cc index db65bf2a6c..030c324208 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.4 2002/02/05 11:06:38 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10PrimaryGeneratorMessenger.cc index 53fc7dd407..0995fe4faa 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc index 5cef42de66..d6a70186b0 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: Em10RunAction.cc,v 1.4 2003/06/16 16:47:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc index e608321c7f..e4fbeeed72 100644 --- a/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em10RunMessenger.cc,v 1.3 2002/12/05 00:24:24 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc b/examples/extended/electromagnetic/TestEm10/src/Em10StepCut.cc index f2202f446b..534473602b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "Em10StepCut.hh" diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingAction.cc index 6f410cd096..edb76476d9 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.4 2003/06/16 16:47:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingMessenger.cc index 194ac782ba..4b4053376e 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.2 2001/07/11 09:57:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm10/src/Em10SteppingVerbose.cc index b26dc0201b..76720cd70c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc b/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc index 7a4bf9be83..d30a567895 100755 --- a/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc +++ b/examples/extended/electromagnetic/TestEm10/src/Em10VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em10VisManager.cc,v 1.4 2002/11/13 21:39:47 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em10VisManager.cc,v 1.5 2003/11/13 15:10:36 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void Em10VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/electromagnetic/TestEm2/GNUmakefile b/examples/extended/electromagnetic/TestEm2/GNUmakefile index 8f028baf2f..b781f31583 100644 --- a/examples/extended/electromagnetic/TestEm2/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm2/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.9 2002/12/11 17:16:58 maire Exp $ +# $Id: GNUmakefile,v 1.10 2003/10/08 17:28:28 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -14,12 +14,15 @@ endif .PHONY: all all: lib bin +### G4ANALYSIS_USE := true + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + include $(G4INSTALL)/config/architecture.gmk -G4NOHIST := true -ifdef G4NOHIST - CPPFLAGS += -DG4NOHIST -else +ifdef G4ANALYSIS_USE # for the aida-config command see the README file CPPFLAGS += `aida-config --include` LDFLAGS += `aida-config --lib` diff --git a/examples/extended/electromagnetic/TestEm2/History b/examples/extended/electromagnetic/TestEm2/History index db81487a7b..52c2f57406 100644 --- a/examples/extended/electromagnetic/TestEm2/History +++ b/examples/extended/electromagnetic/TestEm2/History @@ -1,4 +1,4 @@ -$Id: History,v 1.32 2003/06/18 09:34:13 gcosmo Exp $ +$Id: History,v 1.35 2003/11/25 18:41:14 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,20 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +25-11-03 V.Ivanchenko (testem2-V05-02-02) +- Fix geometry (G.Cosmo) +- Use the newest msc for g4v52 PhysicsList +- update macro + +24-10-03 mma (testem2-V05-02-01) +- PhysListEmStandard: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +07-10-03 mma (testem2-V05-02-00) +- suppression of Em2 in all class names +- NOHIST -> ANALYSIS_USE +- cosmetic in material definitions +- migration em STD -> em standard + 18-06-03 G.Cosmo (testem2-V05-01-03) - Em2RunAction.cc: removed usage of G4USE_STD_NAMESPACE after migration from G4std. diff --git a/examples/extended/electromagnetic/TestEm2/README b/examples/extended/electromagnetic/TestEm2/README index b66195d162..bad70ba183 100644 --- a/examples/extended/electromagnetic/TestEm2/README +++ b/examples/extended/electromagnetic/TestEm2/README @@ -1,4 +1,4 @@ -$Id: README,v 1.10 2003/06/03 10:07:12 vnivanch Exp $ +$Id: README,v 1.11 2003/10/08 17:28:29 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -117,9 +117,9 @@ $Id: README,v 1.10 2003/06/03 10:07:12 vnivanch Exp $ 11 : cumulated radial energy profile 12 : rms of cumulated radial energy profile - Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. - 8- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.cc b/examples/extended/electromagnetic/TestEm2/TestEm2.cc index 7646087d4a..499e92a9ae 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.cc +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm2.cc,v 1.6 2001/10/25 15:12:05 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TestEm2.cc,v 1.7 2003/10/08 17:28:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,17 +34,17 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "Em2VisManager.hh" +#include "VisManager.hh" #endif -#include "Em2DetectorConstruction.hh" -#include "Em2PhysicsList.hh" -#include "Em2PrimaryGeneratorAction.hh" -#include "Em2RunAction.hh" -#include "Em2EventAction.hh" -#include "Em2TrackingAction.hh" -#include "Em2SteppingAction.hh" -#include "Em2SteppingVerbose.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" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -54,31 +54,31 @@ int main(int argc,char** argv) { HepRandom::setTheEngine(new RanecuEngine); //my Verbose output class - G4VSteppingVerbose::SetInstance(new Em2SteppingVerbose); + G4VSteppingVerbose::SetInstance(new SteppingVerbose); // Construct the default run manager G4RunManager * runManager = new G4RunManager; // set mandatory initialization classes - Em2DetectorConstruction* detector = new Em2DetectorConstruction; + DetectorConstruction* detector = new DetectorConstruction; runManager->SetUserInitialization(detector); - runManager->SetUserInitialization(new Em2PhysicsList); + runManager->SetUserInitialization(new PhysicsList); - Em2PrimaryGeneratorAction* primary = new Em2PrimaryGeneratorAction(detector); + PrimaryGeneratorAction* primary = new PrimaryGeneratorAction(detector); runManager->SetUserAction(primary); #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new Em2VisManager; + G4VisManager* visManager = new VisManager; visManager->Initialize(); #endif // set user action classes - Em2RunAction* RunAct = new Em2RunAction(detector,primary); + RunAction* RunAct = new RunAction(detector,primary); runManager->SetUserAction(RunAct); - runManager->SetUserAction(new Em2EventAction (RunAct)); - runManager->SetUserAction(new Em2TrackingAction(RunAct)); - runManager->SetUserAction(new Em2SteppingAction(detector,RunAct)); + runManager->SetUserAction(new EventAction (RunAct)); + runManager->SetUserAction(new TrackingAction(RunAct)); + runManager->SetUserAction(new SteppingAction(detector,RunAct)); // get the pointer to the User Interface manager G4UImanager* UI = G4UImanager::GetUIpointer(); diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.in b/examples/extended/electromagnetic/TestEm2/TestEm2.in index 55573f787e..e0ccc66444 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.in +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.in @@ -1,4 +1,4 @@ -# $Id: TestEm2.in,v 1.8 2003/02/14 14:21:27 vnivanch Exp $ +# $Id: TestEm2.in,v 1.9 2003/10/08 17:28:29 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -11,23 +11,22 @@ /control/verbose 2 /run/verbose 1 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 5.0 mm -# /testem/det/setMat Water /testem/det/setLbin 9 1.11 /testem/det/setRbin 6 0.111 -/run/initialize -#/testem/det/update # -/testem/event/printModulo 20 +/testem/phys/addPhysics standard +### /testem/phys/addPhysics g4v52 +# +/testem/phys/setCuts 5.0 mm +# +/run/initialize # /gun/particle e- /gun/energy 1 GeV +# +/testem/event/printModulo 20 +# /run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.large_N.in b/examples/extended/electromagnetic/TestEm2/TestEm2.large_N.in new file mode 100644 index 0000000000..507485216b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.large_N.in @@ -0,0 +1,27 @@ +# $Id: TestEm2.large_N.in,v 1.1 2003/11/16 19:34:24 stesting Exp $ +# +# Macro file for "TestEm2.cc" +# (can be run in batch, without graphic) +# +# PbWO4 L = 20 radl R = 5 radl; electron 5 GeV +# +/control/verbose 2 +/run/verbose 1 +# +/testem/phys/addPhysics standard +###/testem/phys/addPhysics g4v52 +# +/testem/phys/setCuts 1 mm +# +/run/initialize +# +###/run/particle/applyCuts +# +/gun/particle e- +/gun/energy 5 GeV +# +/testem/event/printModulo 10 +# +/run/beamOn 500 + + diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.large_N.out b/examples/extended/electromagnetic/TestEm2/TestEm2.large_N.out new file mode 100644 index 0000000000..011dc3b2dd --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.large_N.out @@ -0,0 +1,318 @@ +********************************************** + Geant4 version $Name: geant4-06-00 $ + (27-August-2003) + Copyright : Geant4 Collaboration +********************************************** +G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; +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) + G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) + RayTracer (RayTracer) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) + FukuiRenderer (DAWN) + OpenGLImmediateX (OGLIX) + OpenGLStoredX (OGLSX) + VRML1 (VRML1) + VRML2 (VRML2) +/run/verbose 1 +# +/testem/phys/addPhysics standard +###/testem/phys/addPhysics g4v52 +# +/testem/phys/setCuts 1 mm +# +/run/initialize +Absorber is 17.848 cm of PbWO4 + Material: PbWO4 density: 8.280 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.924 mm + ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % + ---> Element: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % + ---> Element: TungstenW Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 % + +phot: Total cross sections from Sandia parametrisation. +PhysicsList::SetCuts:CutLength : 1 mm + # +###/run/particle/applyCuts +# +/gun/particle e- +/gun/energy 5 GeV +# +/testem/event/printModulo 10 +# +/run/beamOn 500 + +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 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. + +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 + +eIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +eBrem: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +eBrem: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +annihil: Total cross section from Heilter formula(annihilation into 2 photons). + gamma energies sampled according Heitler + PhysicsTables from 10 keV to 10 TeV in 100 bins. + +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 + +hIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 + +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 + +MuIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +MuBrems: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +MuPairProd: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +MuIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +MuBrems: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +MuPairProd: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : PbWO4 + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 84.7768 keV e- 1.13176 MeV e+ 1.06419 MeV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + +### 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: 10 + +---> Begin of Event: 20 + +---> Begin of Event: 30 + +---> Begin of Event: 40 + +---> Begin of Event: 50 + +---> Begin of Event: 60 + +---> Begin of Event: 70 + +---> Begin of Event: 80 + +---> Begin of Event: 90 + +---> Begin of Event: 100 + +---> Begin of Event: 110 + +---> Begin of Event: 120 + +---> Begin of Event: 130 + +---> Begin of Event: 140 + +---> Begin of Event: 150 + +---> Begin of Event: 160 + +---> Begin of Event: 170 + +---> Begin of Event: 180 + +---> Begin of Event: 190 + +---> Begin of Event: 200 + +---> Begin of Event: 210 + +---> Begin of Event: 220 + +---> Begin of Event: 230 + +---> Begin of Event: 240 + +---> Begin of Event: 250 + +---> Begin of Event: 260 + +---> Begin of Event: 270 + +---> Begin of Event: 280 + +---> Begin of Event: 290 + +---> Begin of Event: 300 + +---> Begin of Event: 310 + +---> Begin of Event: 320 + +---> Begin of Event: 330 + +---> Begin of Event: 340 + +---> Begin of Event: 350 + +---> Begin of Event: 360 + +---> Begin of Event: 370 + +---> Begin of Event: 380 + +---> Begin of Event: 390 + +---> Begin of Event: 400 + +---> Begin of Event: 410 + +---> Begin of Event: 420 + +---> Begin of Event: 430 + +---> Begin of Event: 440 + +---> Begin of Event: 450 + +---> Begin of Event: 460 + +---> Begin of Event: 470 + +---> Begin of Event: 480 + +---> Begin of Event: 490 +Run terminated. +Run Summary + Number of events processed : 500 + User=249.29s Real=263.81s Sys=2.25s + LATERAL PROFILE CUMULATIVE LATERAL PROFILE + + bin Mean rms bin Mean rms + + 0.00-> 1.00 radl: 0.68% 0.39% 0-> 1.00 radl: 0.68% 0.39% + 1.00-> 2.00 radl: 2.72% 1.39% 0-> 2.00 radl: 3.40% 1.67% + 2.00-> 3.00 radl: 5.88% 2.47% 0-> 3.00 radl: 9.28% 3.84% + 3.00-> 4.00 radl: 9.03% 2.86% 0-> 4.00 radl: 18.31% 6.24% + 4.00-> 5.00 radl: 11.09% 2.72% 0-> 5.00 radl: 29.40% 8.22% + 5.00-> 6.00 radl: 11.43% 2.29% 0-> 6.00 radl: 40.82% 9.35% + 6.00-> 7.00 radl: 10.85% 2.03% 0-> 7.00 radl: 51.68% 9.60% + 7.00-> 8.00 radl: 9.65% 1.98% 0-> 8.00 radl: 61.32% 9.20% + 8.00-> 9.00 radl: 7.97% 1.81% 0-> 9.00 radl: 69.29% 8.39% + 9.00->10.00 radl: 6.34% 1.83% 0->10.00 radl: 75.63% 7.32% + 10.00->11.00 radl: 5.01% 1.69% 0->11.00 radl: 80.65% 6.19% + 11.00->12.00 radl: 3.85% 1.39% 0->12.00 radl: 84.50% 5.17% + 12.00->13.00 radl: 2.90% 1.27% 0->13.00 radl: 87.40% 4.17% + 13.00->14.00 radl: 2.20% 1.09% 0->14.00 radl: 89.61% 3.30% + 14.00->15.00 radl: 1.56% 0.84% 0->15.00 radl: 91.17% 2.67% + 15.00->16.00 radl: 1.13% 0.67% 0->16.00 radl: 92.30% 2.18% + 16.00->17.00 radl: 0.85% 0.57% 0->17.00 radl: 93.15% 1.75% + 17.00->18.00 radl: 0.62% 0.47% 0->18.00 radl: 93.77% 1.42% + 18.00->19.00 radl: 0.47% 0.40% 0->19.00 radl: 94.24% 1.16% + 19.00->20.00 radl: 0.31% 0.30% 0->20.00 radl: 94.55% 0.99% + + + + RADIAL PROFILE CUMULATIVE RADIAL PROFILE + + bin Mean rms bin Mean rms + + 0.00-> 0.25 radl: 34.34% 2.51% 0-> 0.25 radl: 34.34% 2.51% + 0.25-> 0.50 radl: 17.82% 1.43% 0-> 0.50 radl: 52.16% 2.55% + 0.50-> 0.75 radl: 10.54% 1.11% 0-> 0.75 radl: 62.70% 2.44% + 0.75-> 1.00 radl: 6.89% 0.90% 0-> 1.00 radl: 69.59% 2.17% + 1.00-> 1.25 radl: 4.83% 0.73% 0-> 1.25 radl: 74.42% 1.96% + 1.25-> 1.50 radl: 3.66% 0.61% 0-> 1.50 radl: 78.09% 1.77% + 1.50-> 1.75 radl: 2.86% 0.51% 0-> 1.75 radl: 80.95% 1.64% + 1.75-> 2.00 radl: 2.32% 0.43% 0-> 2.00 radl: 83.26% 1.52% + 2.00-> 2.25 radl: 1.90% 0.39% 0-> 2.25 radl: 85.17% 1.44% + 2.25-> 2.50 radl: 1.61% 0.35% 0-> 2.50 radl: 86.77% 1.38% + 2.50-> 2.75 radl: 1.36% 0.31% 0-> 2.75 radl: 88.13% 1.32% + 2.75-> 3.00 radl: 1.16% 0.28% 0-> 3.00 radl: 89.29% 1.26% + 3.00-> 3.25 radl: 1.00% 0.26% 0-> 3.25 radl: 90.29% 1.20% + 3.25-> 3.50 radl: 0.87% 0.23% 0-> 3.50 radl: 91.16% 1.17% + 3.50-> 3.75 radl: 0.77% 0.22% 0-> 3.75 radl: 91.93% 1.12% + 3.75-> 4.00 radl: 0.67% 0.21% 0-> 4.00 radl: 92.60% 1.08% + 4.00-> 4.25 radl: 0.61% 0.20% 0-> 4.25 radl: 93.21% 1.05% + 4.25-> 4.50 radl: 0.51% 0.18% 0-> 4.50 radl: 93.72% 1.02% + 4.50-> 4.75 radl: 0.45% 0.16% 0-> 4.75 radl: 94.17% 1.00% + 4.75-> 5.00 radl: 0.39% 0.14% 0-> 5.00 radl: 94.55% 0.99% + + SUMMARY + energy deposit : 94.55 % E0 +- 0.99 % E0 + charged traklen: 476.71 radl +- 5.09 radl + neutral traklen: 4431.57 radl +- 133.17 radl + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 1618930871, 404048512 +---------------------------------------- +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.model.in b/examples/extended/electromagnetic/TestEm2/TestEm2.model.in deleted file mode 100644 index c514ed6991..0000000000 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.model.in +++ /dev/null @@ -1,33 +0,0 @@ -# -# Macro file for "TestEm2.cc" -# (can be run in batch, without graphic) -# -# H2O L = 9.97 radl R = 0.665 radl; electron 1 GeV -# -# Experimental results: Electron-induced cascade showers -# J&H Crannel - Phys. Rev. 184-2 - August69 -# -/control/verbose 2 -/run/verbose 1 -/tracking/verbose 0 -# -# select EM PhysicsList -# -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard -# -/testem/phys/setCuts 5.0 mm -# -/testem/det/setMat Water -/testem/det/setLbin 9 1.11 -/testem/det/setRbin 6 0.111 -/run/initialize -#/testem/det/update -# -/testem/event/printModulo 20 -# -/gun/particle e- -/gun/energy 1 GeV -/run/beamOn 100 - - diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.model.out b/examples/extended/electromagnetic/TestEm2/TestEm2.model.out deleted file mode 100644 index 067d00ffbb..0000000000 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.model.out +++ /dev/null @@ -1,351 +0,0 @@ -********************************************** - Geant4 version $Name: geant4-05-02 $ - (13-Dec-2002) - Copyright : Geant4 Collaboration -********************************************** - -***** Table : Nb of materials = 9 ***** - - Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - - Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm - ---> Element: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % - - Material: lAr density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: lAr Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Al density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Al Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Fe density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm - ---> Element: Fe Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % - ---> Element: GermaniumGe Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % - ---> Element: BismuthBi Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % - - Material: PbWO4 density: 8.280 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.924 mm - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % - ---> Element: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % - ---> Element: TungstenW Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 % - - Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: TungstenW Z = 74.0 N = 183.8 A = 183.84 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: LeadPb Z = 82.0 N = 207.2 A = 207.19 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) - G4HepRepFile (HepRepFile) - G4HepRep (HepRepXML) - RayTracer (RayTracer) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) -/run/verbose 1 -/tracking/verbose 0 -# -# select EM PhysicsList -# -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard -# -/testem/phys/setCuts 5.0 mm -# -/testem/det/setMat Water -/testem/det/setLbin 9 1.11 -/testem/det/setRbin 6 0.111 -/run/initialize -Absorber is 3.60564 m of Water - -phot: Total cross sections from Sandia parametrisation. -Em2PhysicsList::SetCuts:CutLength : 1 mm - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : No recalculation needed : Yes - Material : Air - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - -Index : 1 used in the geometry : Yes recalculation needed : Yes - Material : Water - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 2 used in the geometry : No recalculation needed : Yes - Material : lAr - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - -Index : 3 used in the geometry : No recalculation needed : Yes - Material : Al - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - -Index : 4 used in the geometry : No recalculation needed : Yes - Material : Fe - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - -Index : 5 used in the geometry : No recalculation needed : Yes - Material : BGO - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - -Index : 6 used in the geometry : No recalculation needed : Yes - Material : PbWO4 - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - -Index : 7 used in the geometry : No recalculation needed : Yes - Material : Tungsten - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - -Index : 8 used in the geometry : No recalculation needed : Yes - Material : Lead - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : is not ready to print - -==================================================================== - - -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 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. - -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. - -eIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. - -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. - -hIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. - -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. - -muIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. - -MuBrems: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -MuPairProd: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -muIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. - -MuBrems: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -MuPairProd: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -======== Table of production thresholds in range and energy =========== - ------------------------------------------------------------------------ -Region : DefaultRegionForTheWorld ------------------------------------------------------------------------ - gamma e- e+ -Threshold in range 5 mm 5 mm 5 mm - Water 5.78 keV 1.16 MeV 1.1 MeV -======================================================================= - -#/testem/det/update -# -/testem/event/printModulo 20 -# -/gun/particle e- -/gun/energy 1 GeV -/run/beamOn 100 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : No recalculation needed : No - Material : Air - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 990 eV e- 3.2397 keV e+ 3.20006 keV - -Index : 1 used in the geometry : Yes recalculation needed : No - Material : Water - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 5.78478 keV e- 1.15997 MeV e+ 1.10423 MeV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 2 used in the geometry : No recalculation needed : No - Material : lAr - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 13.5776 keV e- 1.15997 MeV e+ 1.10423 MeV - -Index : 3 used in the geometry : No recalculation needed : No - Material : Al - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 14.6203 keV e- 2.31122 MeV e+ 2.14666 MeV - -Index : 4 used in the geometry : No recalculation needed : No - Material : Fe - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 46.4433 keV e- 6.11229 MeV e+ 5.74741 MeV - -Index : 5 used in the geometry : No recalculation needed : No - Material : BGO - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 125.956 keV e- 4.71987 MeV e+ 4.38381 MeV - -Index : 6 used in the geometry : No recalculation needed : No - Material : PbWO4 - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 137.419 keV e- 5.33819 MeV e+ 4.9581 MeV - -Index : 7 used in the geometry : No recalculation needed : No - Material : Tungsten - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 241.105 keV e- 12.9518 MeV e+ 12.0297 MeV - -Index : 8 used in the geometry : No recalculation needed : No - Material : Lead - Range cuts : gamma 5 mm e- 5 mm e+ 5 mm - Energy thresholds : gamma 204.169 keV e- 6.82843 MeV e+ 6.34224 MeV - -==================================================================== - - -======== Table of production thresholds in range and energy =========== - ------------------------------------------------------------------------ -Region : DefaultRegionForTheWorld ------------------------------------------------------------------------ - gamma e- e+ -Threshold in range 5 mm 5 mm 5 mm - Water 5.78 keV 1.16 MeV 1.1 MeV -======================================================================= - -### 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: 20 - ----> Begin of Event: 40 - ----> Begin of Event: 60 - ----> Begin of Event: 80 -Run terminated. -Run Summary - Number of events processed : 100 - User=5.34s Real=5.37s Sys=0.02s - LATERAL PROFILE CUMULATIVE LATERAL PROFILE - - bin Mean rms bin Mean rms - - 0.00-> 1.11 radl: 14.12% 5.47% 0-> 1.11 radl: 14.12% 5.47% - 1.11-> 2.22 radl: 25.22% 10.29% 0-> 2.22 radl: 39.34% 12.63% - 2.22-> 3.33 radl: 21.45% 9.35% 0-> 3.33 radl: 60.78% 14.02% - 3.33-> 4.44 radl: 14.66% 7.61% 0-> 4.44 radl: 75.44% 13.94% - 4.44-> 5.55 radl: 9.02% 5.76% 0-> 5.55 radl: 84.47% 12.04% - 5.55-> 6.66 radl: 5.67% 6.05% 0-> 6.66 radl: 90.14% 7.83% - 6.66-> 7.77 radl: 2.98% 4.29% 0-> 7.77 radl: 93.12% 5.18% - 7.77-> 8.88 radl: 1.23% 2.37% 0-> 8.88 radl: 94.35% 4.33% - 8.88-> 9.99 radl: 0.63% 1.55% 0-> 9.99 radl: 94.98% 3.90% - - - - RADIAL PROFILE CUMULATIVE RADIAL PROFILE - - bin Mean rms bin Mean rms - - 0.00-> 0.11 radl: 70.14% 7.35% 0-> 0.11 radl: 70.14% 7.35% - 0.11-> 0.22 radl: 14.15% 5.09% 0-> 0.22 radl: 84.28% 6.21% - 0.22-> 0.33 radl: 5.21% 3.02% 0-> 0.33 radl: 89.50% 5.24% - 0.33-> 0.44 radl: 2.83% 2.05% 0-> 0.44 radl: 92.32% 4.50% - 0.44-> 0.56 radl: 1.63% 1.66% 0-> 0.56 radl: 93.95% 3.98% - 0.56-> 0.67 radl: 1.02% 1.01% 0-> 0.67 radl: 94.98% 3.90% - - SUMMARY - energy deposit : 94.98 % E0 +- 3.90 % E0 - charged traklen: 13.76 radl +- 0.58 radl - neutral traklen: 199.64 radl +- 19.43 radl - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 603014974, 1128376559 ----------------------------------------- -Graphics systems deleted. -Visualization Manager deleting... -G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm2/TestEm2.out b/examples/extended/electromagnetic/TestEm2/TestEm2.out index 5e1be17f09..c23009b938 100644 --- a/examples/extended/electromagnetic/TestEm2/TestEm2.out +++ b/examples/extended/electromagnetic/TestEm2/TestEm2.out @@ -1,46 +1,9 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; - -***** Table : Nb of materials = 9 ***** - - Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - - Material: Water 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: lAr density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: lAr Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Al density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Al Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Fe density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm - ---> Element: Fe Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % - ---> Element: Germanium Ge Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % - ---> Element: Bismuth Bi Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % - - Material: PbWO4 density: 8.280 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.924 mm - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % - ---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % - ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 % - - Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 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 Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -57,27 +20,29 @@ Current available graphics systems are: VRML2FILE (VRML2FILE) /run/verbose 1 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 5.0 mm -# /testem/det/setMat Water /testem/det/setLbin 9 1.11 /testem/det/setRbin 6 0.111 +# +/testem/phys/addPhysics standard +### /testem/phys/addPhysics g4v52 +# +/testem/phys/setCuts 5.0 mm +# /run/initialize 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 % phot: Total cross sections from Sandia parametrisation. -Em2PhysicsList::SetCuts:CutLength : 1 mm -#/testem/det/update -# -/testem/event/printModulo 20 +PhysicsList::SetCuts:CutLength : 1 mm # /gun/particle e- /gun/energy 1 GeV +# +/testem/event/printModulo 20 +# /run/beamOn 100 compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. @@ -88,54 +53,78 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV 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: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 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: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ============================== @@ -168,20 +157,20 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=23.48s Real=32.28s Sys=2.71s + User=54.02s Real=62.22s Sys=0.74s LATERAL PROFILE CUMULATIVE LATERAL PROFILE bin Mean rms bin Mean rms - 0.00-> 1.11 radl: 14.59% 6.17% 0-> 1.11 radl: 14.59% 6.17% - 1.11-> 2.22 radl: 23.22% 10.06% 0-> 2.22 radl: 37.82% 12.90% - 2.22-> 3.33 radl: 21.18% 10.07% 0-> 3.33 radl: 59.00% 16.67% - 3.33-> 4.44 radl: 15.27% 7.88% 0-> 4.44 radl: 74.27% 15.55% - 4.44-> 5.55 radl: 10.03% 6.62% 0-> 5.55 radl: 84.30% 13.02% - 5.55-> 6.66 radl: 5.16% 5.60% 0-> 6.66 radl: 89.46% 10.50% - 6.66-> 7.77 radl: 2.44% 4.09% 0-> 7.77 radl: 91.89% 8.64% - 7.77-> 8.88 radl: 1.33% 3.36% 0-> 8.88 radl: 93.23% 6.18% - 8.88-> 9.99 radl: 0.88% 2.56% 0-> 9.99 radl: 94.10% 4.76% + 0.00-> 1.11 radl: 14.07% 5.51% 0-> 1.11 radl: 14.07% 5.51% + 1.11-> 2.22 radl: 25.29% 9.82% 0-> 2.22 radl: 39.36% 12.30% + 2.22-> 3.33 radl: 21.70% 10.05% 0-> 3.33 radl: 61.05% 15.05% + 3.33-> 4.44 radl: 14.16% 6.86% 0-> 4.44 radl: 75.22% 15.02% + 4.44-> 5.55 radl: 8.24% 7.16% 0-> 5.55 radl: 83.45% 11.72% + 5.55-> 6.66 radl: 4.75% 5.63% 0-> 6.66 radl: 88.20% 9.46% + 6.66-> 7.77 radl: 2.83% 4.58% 0-> 7.77 radl: 91.03% 6.97% + 7.77-> 8.88 radl: 1.33% 2.76% 0-> 8.88 radl: 92.36% 5.99% + 8.88-> 9.99 radl: 0.85% 2.24% 0-> 9.99 radl: 93.21% 4.85% @@ -189,21 +178,21 @@ Run Summary bin Mean rms bin Mean rms - 0.00-> 0.11 radl: 67.07% 10.66% 0-> 0.11 radl: 67.07% 10.66% - 0.11-> 0.22 radl: 15.01% 6.21% 0-> 0.22 radl: 82.07% 8.48% - 0.22-> 0.33 radl: 5.96% 4.27% 0-> 0.33 radl: 88.04% 6.95% - 0.33-> 0.44 radl: 3.02% 2.50% 0-> 0.44 radl: 91.06% 5.77% - 0.44-> 0.56 radl: 1.99% 1.99% 0-> 0.56 radl: 93.05% 5.04% - 0.56-> 0.67 radl: 1.05% 0.87% 0-> 0.67 radl: 94.10% 4.76% + 0.00-> 0.11 radl: 60.49% 10.84% 0-> 0.11 radl: 60.49% 10.84% + 0.11-> 0.22 radl: 17.87% 6.53% 0-> 0.22 radl: 78.36% 8.31% + 0.22-> 0.33 radl: 7.48% 4.57% 0-> 0.33 radl: 85.84% 6.20% + 0.33-> 0.44 radl: 3.84% 3.36% 0-> 0.44 radl: 89.69% 5.28% + 0.44-> 0.56 radl: 2.12% 1.82% 0-> 0.56 radl: 91.81% 5.08% + 0.56-> 0.67 radl: 1.40% 1.71% 0-> 0.67 radl: 93.21% 4.85% SUMMARY - energy deposit : 94.10 % E0 +- 4.76 % E0 - charged traklen: 13.74 radl +- 0.70 radl - neutral traklen: 201.02 radl +- 21.34 radl + energy deposit : 93.21 % E0 +- 4.85 % E0 + charged traklen: 13.58 radl +- 0.72 radl + neutral traklen: 195.41 radl +- 19.52 radl --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 252860250, 1878946438 + Current couple of seeds = 127285277, 1208328408 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh similarity index 90% rename from examples/extended/electromagnetic/TestEm2/include/Em2DetectorConstruction.hh rename to examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh index e122605c81..5892ff7d97 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/DetectorConstruction.hh @@ -21,36 +21,36 @@ // ******************************************************************** // // -// $Id: Em2DetectorConstruction.hh,v 1.7 2003/05/09 08:46:57 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.hh,v 1.1 2003/10/08 17:28:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2DetectorConstruction_h -#define Em2DetectorConstruction_h 1 +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh" -#include "globals.hh" #include "G4ThreeVector.hh" #include "G4Material.hh" #include "G4VPhysicalVolume.hh" +#include "globals.hh" class G4Tubs; class G4LogicalVolume; class G4UniformMagField; -class Em2DetectorMessenger; +class DetectorMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2DetectorConstruction : public G4VUserDetectorConstruction +class DetectorConstruction : public G4VUserDetectorConstruction { public: - Em2DetectorConstruction(); - ~Em2DetectorConstruction(); + DetectorConstruction(); + ~DetectorConstruction(); public: @@ -102,7 +102,7 @@ class Em2DetectorConstruction : public G4VUserDetectorConstruction G4LogicalVolume* logicRing; //pointer to the logical R-slide G4VPhysicalVolume* physiRing; //pointer to the physical R-slide - Em2DetectorMessenger* detectorMessenger; //pointer to the Messenger + DetectorMessenger* detectorMessenger; //pointer to the Messenger }; diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh similarity index 86% rename from examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh rename to examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh index 1efc840d40..0db099b9d6 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/DetectorMessenger.hh @@ -21,21 +21,21 @@ // ******************************************************************** // // -// $Id: Em2DetectorMessenger.hh,v 1.6 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorMessenger.hh,v 1.1 2003/10/08 17:28:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2DetectorMessenger_h -#define Em2DetectorMessenger_h 1 +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class Em2DetectorConstruction; +class DetectorConstruction; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWith3Vector; @@ -44,16 +44,16 @@ class G4UIcmdWithoutParameter; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2DetectorMessenger: public G4UImessenger +class DetectorMessenger: public G4UImessenger { public: - Em2DetectorMessenger(Em2DetectorConstruction* ); - ~Em2DetectorMessenger(); + DetectorMessenger(DetectorConstruction* ); + ~DetectorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em2DetectorConstruction* Em2Detector; + DetectorConstruction* Detector; G4UIdirectory* testemDir; G4UIcmdWithAString* MaterCmd; diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmStandard.hh deleted file mode 100644 index a7f9c562d4..0000000000 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmStandard.hh +++ /dev/null @@ -1,64 +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: Em2PhysListEmStandard.hh,v 1.2 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Em2PhysListEmStandard_h -#define Em2PhysListEmStandard_h 1 - -#include "G4VPhysicsConstructor.hh" -#include "globals.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em2PhysListEmStandard : public G4VPhysicsConstructor -{ - public: - Em2PhysListEmStandard(const G4String& name = "standard"); - virtual ~Em2PhysListEmStandard(); - - 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(); -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - - - - - - - - diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm2/include/Em2PhysListGeneral.hh deleted file mode 100644 index 1ab4de7ee6..0000000000 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListGeneral.hh +++ /dev/null @@ -1,66 +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: Em2PhysListGeneral.hh,v 1.2 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Em2PhysListGeneral_h -#define Em2PhysListGeneral_h 1 - -#include "G4VPhysicsConstructor.hh" -#include "G4Decay.hh" -#include "globals.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em2PhysListGeneral : public G4VPhysicsConstructor -{ - public: - Em2PhysListGeneral(const G4String& name = "general"); - virtual ~Em2PhysListGeneral(); - - 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(); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - - - - - - - - diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh b/examples/extended/electromagnetic/TestEm2/include/EventAction.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh rename to examples/extended/electromagnetic/TestEm2/include/EventAction.hh index 4a1bab1b16..4b10d7e903 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2EventAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/EventAction.hh @@ -21,33 +21,33 @@ // ******************************************************************** // // -// $Id: Em2EventAction.hh,v 1.5 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.hh,v 1.1 2003/10/08 17:28:36 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2EventAction_h -#define Em2EventAction_h 1 +#ifndef EventAction_h +#define EventAction_h 1 #include "G4UserEventAction.hh" #include "globals.hh" -class Em2RunAction; -class Em2EventActionMessenger; +class RunAction; +class EventActionMessenger; class G4Event; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2EventAction : public G4UserEventAction +class EventAction : public G4UserEventAction { public: - Em2EventAction(Em2RunAction*); - ~Em2EventAction(); + EventAction(RunAction*); + ~EventAction(); void BeginOfEventAction(const G4Event*); void EndOfEventAction(const G4Event*); @@ -57,10 +57,10 @@ class Em2EventAction : public G4UserEventAction private: - Em2RunAction* Em2Run; + RunAction* Run; G4String drawFlag; G4int printModulo; - Em2EventActionMessenger* eventMessenger; + EventActionMessenger* eventMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh rename to examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh index a5bd125805..1181e2e50c 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/EventActionMessenger.hh @@ -21,36 +21,36 @@ // ******************************************************************** // // -// $Id: Em2EventActionMessenger.hh,v 1.5 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.hh,v 1.1 2003/10/08 17:28:36 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2EventActionMessenger_h -#define Em2EventActionMessenger_h 1 +#ifndef EventActionMessenger_h +#define EventActionMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class Em2EventAction; +class EventAction; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2EventActionMessenger: public G4UImessenger +class EventActionMessenger: public G4UImessenger { public: - Em2EventActionMessenger(Em2EventAction*); - ~Em2EventActionMessenger(); + EventActionMessenger(EventAction*); + ~EventActionMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em2EventAction* eventAction; + EventAction* eventAction; G4UIcmdWithAString* DrawCmd; G4UIcmdWithAnInteger* PrintCmd; }; diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysListEmModel.hh b/examples/extended/electromagnetic/TestEm2/include/PhysListEmG4v52.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm3/include/Em3PhysListEmModel.hh rename to examples/extended/electromagnetic/TestEm2/include/PhysListEmG4v52.hh index faa63fe45a..2806da3653 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysListEmModel.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PhysListEmG4v52.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: Em3PhysListEmModel.hh,v 1.1 2003/02/26 16:12:35 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmG4v52.hh,v 1.1 2003/10/08 17:28:36 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3PhysListEmModel_h -#define Em3PhysListEmModel_h 1 +#ifndef PhysListEmG4v52_h +#define PhysListEmG4v52_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3PhysListEmModel : public G4VPhysicsConstructor +class PhysListEmG4v52 : public G4VPhysicsConstructor { public: - Em3PhysListEmModel(const G4String& name = "model"); - virtual ~Em3PhysListEmModel(); + PhysListEmG4v52(const G4String& name = "g4v52"); + ~PhysListEmG4v52(); public: // This method is dummy for physics. - 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(); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm2/include/PhysListEmStandard.hh new file mode 100644 index 0000000000..d1ea4d42fa --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/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 2003/10/08 17:28:36 maire Exp $ +// GEANT4 tag $Name: geant4-06-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/TestEm2/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm2/include/PhysListGeneral.hh new file mode 100644 index 0000000000..275b0df09b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm2/include/PhysListGeneral.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: PhysListGeneral.hh,v 1.1 2003/10/08 17:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListGeneral_h +#define PhysListGeneral_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListGeneral : public G4VPhysicsConstructor +{ + public: + PhysListGeneral(const G4String& name = "general"); + ~PhysListGeneral(); + + 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/TestEm2/include/Em2PhysListParticles.hh b/examples/extended/electromagnetic/TestEm2/include/PhysListParticles.hh similarity index 83% rename from examples/extended/electromagnetic/TestEm2/include/Em2PhysListParticles.hh rename to examples/extended/electromagnetic/TestEm2/include/PhysListParticles.hh index 827a7e36b9..d711d83f29 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PhysListParticles.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: Em2PhysListParticles.hh,v 1.2 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.hh,v 1.1 2003/10/08 17:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2PhysListParticles_h -#define Em2PhysListParticles_h 1 +#ifndef PhysListParticles_h +#define PhysListParticles_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2PhysListParticles : public G4VPhysicsConstructor +class PhysListParticles : public G4VPhysicsConstructor { public: - Em2PhysListParticles(const G4String& name = "particles"); - virtual ~Em2PhysListParticles(); + PhysListParticles(const G4String& name = "particles"); + ~PhysListParticles(); public: // This method will be invoked in the Construct() method. // each particle type will be instantiated - virtual void ConstructParticle(); + void ConstructParticle(); // This method is dummy. - virtual void ConstructProcess() {}; + void ConstructProcess() {}; }; diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh b/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh similarity index 86% rename from examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh rename to examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh index 2f17bc57ec..faa5b6f91a 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PhysicsList.hh @@ -21,32 +21,32 @@ // ******************************************************************** // // -// $Id: Em3PhysicsList.hh,v 1.8 2003/03/17 17:30:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.hh,v 1.1 2003/10/08 17:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // -// 14.10.02 (V.Ivanchenko) provide modular list on base of old Em3PhysicsList +// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3PhysicsList_h -#define Em3PhysicsList_h 1 +#ifndef PhysicsList_h +#define PhysicsList_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" -class Em3PhysicsListMessenger; +class PhysicsListMessenger; class G4VPhysicsConstructor; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3PhysicsList: public G4VModularPhysicsList +class PhysicsList: public G4VModularPhysicsList { public: - Em3PhysicsList(); - ~Em3PhysicsList(); + PhysicsList(); + ~PhysicsList(); virtual void ConstructParticle(); virtual void ConstructProcess(); @@ -67,7 +67,7 @@ class Em3PhysicsList: public G4VModularPhysicsList G4VPhysicsConstructor* particleList; G4String emName; - Em3PhysicsListMessenger* pMessenger; + PhysicsListMessenger* pMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh similarity index 85% rename from examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh rename to examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh index cf00ac8af0..7a99b1869b 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PhysicsListMessenger.hh @@ -21,38 +21,38 @@ // ******************************************************************** // // -// $Id: Em3PhysicsListMessenger.hh,v 1.4 2003/02/20 15:52:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.hh,v 1.1 2003/10/08 17:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3PhysicsListMessenger_h -#define Em3PhysicsListMessenger_h 1 +#ifndef PhysicsListMessenger_h +#define PhysicsListMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class Em3PhysicsList; +class PhysicsList; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithAString; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3PhysicsListMessenger: public G4UImessenger +class PhysicsListMessenger: public G4UImessenger { public: - Em3PhysicsListMessenger(Em3PhysicsList* ); - ~Em3PhysicsListMessenger(); + PhysicsListMessenger(PhysicsList* ); + ~PhysicsListMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em3PhysicsList* pPhysicsList; + PhysicsList* pPhysicsList; G4UIcmdWithADoubleAndUnit* gammaCutCmd; G4UIcmdWithADoubleAndUnit* electCutCmd; diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh similarity index 82% rename from examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh rename to examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh index 730ed41d52..7d37c5f68d 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/PrimaryGeneratorAction.hh @@ -21,31 +21,31 @@ // ******************************************************************** // // -// $Id: Em2PrimaryGeneratorAction.hh,v 1.5 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.hh,v 1.1 2003/10/08 17:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2PrimaryGeneratorAction_h -#define Em2PrimaryGeneratorAction_h 1 +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" #include "G4ParticleGun.hh" #include "globals.hh" class G4Event; -class Em2DetectorConstruction; +class DetectorConstruction; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - Em2PrimaryGeneratorAction(Em2DetectorConstruction*); - ~Em2PrimaryGeneratorAction(); + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); public: void GeneratePrimaries(G4Event*); @@ -53,7 +53,7 @@ class Em2PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction private: G4ParticleGun* particleGun; - Em2DetectorConstruction* Em2Detector; + DetectorConstruction* Detector; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh b/examples/extended/electromagnetic/TestEm2/include/RunAction.hh similarity index 85% rename from examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh rename to examples/extended/electromagnetic/TestEm2/include/RunAction.hh index 32e137f28a..d41220f521 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2RunAction.hh +++ b/examples/extended/electromagnetic/TestEm2/include/RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2RunAction.hh,v 1.14 2003/06/16 16:47:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.hh,v 1.1 2003/10/08 17:28:37 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,15 +31,12 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2RunAction_h -#define Em2RunAction_h 1 +#ifndef RunAction_h +#define RunAction_h 1 #include "G4UserRunAction.hh" #include "G4ParticleDefinition.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" #include "globals.hh" #include @@ -48,24 +45,24 @@ typedef std::vector MyVector; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2DetectorConstruction; -class Em2PrimaryGeneratorAction; +class DetectorConstruction; +class PrimaryGeneratorAction; class G4Run; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE namespace AIDA { class ITree; class IHistogram1D; } #endif -class Em2RunAction : public G4UserRunAction +class RunAction : public G4UserRunAction { public: - Em2RunAction(Em2DetectorConstruction*, Em2PrimaryGeneratorAction*); - ~Em2RunAction(); + RunAction(DetectorConstruction*, PrimaryGeneratorAction*); + ~RunAction(); void BeginOfRunAction(const G4Run*); void EndOfRunAction(const G4Run*); @@ -83,8 +80,8 @@ class Em2RunAction : public G4UserRunAction private: - Em2DetectorConstruction* Em2Det; - Em2PrimaryGeneratorAction* Em2Kin; + DetectorConstruction* Det; + PrimaryGeneratorAction* Kin; G4int nLbin; MyVector dEdL; @@ -112,7 +109,7 @@ class Em2RunAction : public G4UserRunAction G4double sumNeutrTrLength; G4double sum2NeutrTrLength; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::ITree* tree; // the tree should only be deleted at the end AIDA::IHistogram1D* histo[12]; // (after writing the histos to file) #endif @@ -121,7 +118,7 @@ class Em2RunAction : public G4UserRunAction //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... inline -void Em2RunAction::initializePerEvent() +void RunAction::initializePerEvent() { //initialize arrays of energy deposit per bin for (G4int i=0; i Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - - Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm - ---> Element: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % - - Material: lAr density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: lAr Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Al density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm - ---> Element: Al Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Fe density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm - ---> Element: Fe Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % - ---> Element: GermaniumGe Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % - ---> Element: BismuthBi Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % - +Absorber is 17.848 cm of PbWO4 Material: PbWO4 density: 8.280 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.924 mm ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % ---> Element: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % ---> Element: TungstenW Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 % - Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: TungstenW Z = 74.0 N = 183.8 A = 183.84 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: LeadPb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 % - - -Absorber is 17.848 cm of PbWO4 - phot: Total cross sections from Sandia parametrisation. -Em2PhysicsList::SetCuts:CutLength : 1 mm +PhysicsList::SetCuts:CutLength : 1 mm + # +###/run/particle/applyCuts +# +/gun/particle e- +/gun/energy 5 GeV +# +/testem/event/printModulo 10 +# +/run/beamOn 500 compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. @@ -69,123 +57,96 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. + +eIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +eBrem: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Total cross sections from a parametrisation based on the EEDL data library. + Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +hIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering + Lambda tables from 100 eV to 100 TeV in 100 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +MuIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +MuBrems: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +MuPairProd: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +MuIoni: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +MuBrems: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +MuPairProd: + dE/dx and range tables from 100 eV to 100 TeV in 120 bins. + Lambda tables from threshold to 100 TeV in 120 bins. + Parametrised model + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : PbWO4 + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 84.7768 keV e- 1.13176 MeV e+ 1.06419 MeV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -============= The cut Energy ============================== - gamma e- -Cut in range - Air 1 mm 1 mm - Water 1 mm 1 mm - lAr 1 mm 1 mm - Al 1 mm 1 mm - Fe 1 mm 1 mm - BGO 1 mm 1 mm - PbWO4 1 mm 1 mm - Tungsten 1 mm 1 mm - Lead 1 mm 1 mm -Cut in energy - Air 990 eV 990 eV - Water 2.9 keV 347 keV - lAr 6.18 keV 343 keV - Al 6.89 keV 597 keV - Fe 20.8 keV 1.28 MeV - BGO 77.7 keV 1.03 MeV - PbWO4 84.8 keV 1.13 MeV - Tungsten 105 keV 2.31 MeV - Lead 101 keV 1.38 MeV -=================================================== -# -/run/particle/applyCuts -# -/run/verbose 2 -/event/printModulo 10 -# -/gun/particle e- -/gun/energy 5 GeV -/run/beamOn 500 ### Run 0 start. --------- Ranecu engine status --------- Initial seed (index) = 0 Current couple of seeds = 9876, 54321 ---------------------------------------- -Start closing geometry. -G4GeometryManager::ReportVoxelStats -- Voxel Statistics - - Total memory consumed for geometry optimisation: 51 kByte - Total CPU time elapsed for geometry optimisation: 2.8 seconds - - Voxelisation: top CPU users: - Percent Total CPU System CPU Memory Volume - ------- ---------- ---------- -------- ---------- - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - 0.00 0.00 0.00 1k Ring - - Voxelisation: top memory users: - Percent Memory Heads Nodes Pointers Total CPU Volume - ------- -------- ------ ------ -------- ---------- ---------- - 73.53 37k 401 397 1621 0.00 Ecal - 1.32 0k 1 20 20 0.00 Ring - 1.32 0k 1 20 20 0.00 Ring - 1.32 0k 1 20 20 0.00 Ring - 1.32 0k 1 20 20 0.00 Ring - 1.32 0k 1 20 20 0.00 Ring - 1.32 0k 1 20 20 0.00 Ring - 1.32 0k 1 20 20 0.00 Ring - 1.32 0k 1 20 20 0.00 Ring - 1.32 0k 1 20 20 0.00 Ring Start Run processing. ---> Begin of Event: 0 @@ -290,31 +251,31 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 500 - User=1359.22s Real=1365.98s Sys=0.25s + User=249.29s Real=263.81s Sys=2.25s LATERAL PROFILE CUMULATIVE LATERAL PROFILE bin Mean rms bin Mean rms - 0.00-> 1.00 radl: 0.69% 0.34% 0-> 1.00 radl: 0.69% 0.34% - 1.00-> 2.00 radl: 2.64% 1.24% 0-> 2.00 radl: 3.33% 1.49% - 2.00-> 3.00 radl: 5.68% 2.23% 0-> 3.00 radl: 9.01% 3.46% - 3.00-> 4.00 radl: 8.60% 2.66% 0-> 4.00 radl: 17.61% 5.61% - 4.00-> 5.00 radl: 10.59% 2.85% 0-> 5.00 radl: 28.20% 7.71% - 5.00-> 6.00 radl: 11.39% 2.52% 0-> 6.00 radl: 39.59% 9.19% - 6.00-> 7.00 radl: 10.68% 2.06% 0-> 7.00 radl: 50.28% 9.75% - 7.00-> 8.00 radl: 9.55% 1.86% 0-> 8.00 radl: 59.83% 9.54% - 8.00-> 9.00 radl: 8.13% 1.78% 0-> 9.00 radl: 67.96% 8.82% - 9.00->10.00 radl: 6.55% 1.83% 0->10.00 radl: 74.51% 7.78% - 10.00->11.00 radl: 5.25% 1.61% 0->11.00 radl: 79.76% 6.73% - 11.00->12.00 radl: 4.09% 1.53% 0->12.00 radl: 83.85% 5.57% - 12.00->13.00 radl: 3.11% 1.34% 0->13.00 radl: 86.97% 4.55% - 13.00->14.00 radl: 2.29% 1.07% 0->14.00 radl: 89.25% 3.73% - 14.00->15.00 radl: 1.73% 0.94% 0->15.00 radl: 90.98% 3.00% - 15.00->16.00 radl: 1.29% 0.77% 0->16.00 radl: 92.28% 2.42% - 16.00->17.00 radl: 0.96% 0.59% 0->17.00 radl: 93.23% 1.94% - 17.00->18.00 radl: 0.70% 0.49% 0->18.00 radl: 93.93% 1.58% - 18.00->19.00 radl: 0.50% 0.42% 0->19.00 radl: 94.43% 1.28% - 19.00->20.00 radl: 0.33% 0.29% 0->20.00 radl: 94.76% 1.10% + 0.00-> 1.00 radl: 0.68% 0.39% 0-> 1.00 radl: 0.68% 0.39% + 1.00-> 2.00 radl: 2.72% 1.39% 0-> 2.00 radl: 3.40% 1.67% + 2.00-> 3.00 radl: 5.88% 2.47% 0-> 3.00 radl: 9.28% 3.84% + 3.00-> 4.00 radl: 9.03% 2.86% 0-> 4.00 radl: 18.31% 6.24% + 4.00-> 5.00 radl: 11.09% 2.72% 0-> 5.00 radl: 29.40% 8.22% + 5.00-> 6.00 radl: 11.43% 2.29% 0-> 6.00 radl: 40.82% 9.35% + 6.00-> 7.00 radl: 10.85% 2.03% 0-> 7.00 radl: 51.68% 9.60% + 7.00-> 8.00 radl: 9.65% 1.98% 0-> 8.00 radl: 61.32% 9.20% + 8.00-> 9.00 radl: 7.97% 1.81% 0-> 9.00 radl: 69.29% 8.39% + 9.00->10.00 radl: 6.34% 1.83% 0->10.00 radl: 75.63% 7.32% + 10.00->11.00 radl: 5.01% 1.69% 0->11.00 radl: 80.65% 6.19% + 11.00->12.00 radl: 3.85% 1.39% 0->12.00 radl: 84.50% 5.17% + 12.00->13.00 radl: 2.90% 1.27% 0->13.00 radl: 87.40% 4.17% + 13.00->14.00 radl: 2.20% 1.09% 0->14.00 radl: 89.61% 3.30% + 14.00->15.00 radl: 1.56% 0.84% 0->15.00 radl: 91.17% 2.67% + 15.00->16.00 radl: 1.13% 0.67% 0->16.00 radl: 92.30% 2.18% + 16.00->17.00 radl: 0.85% 0.57% 0->17.00 radl: 93.15% 1.75% + 17.00->18.00 radl: 0.62% 0.47% 0->18.00 radl: 93.77% 1.42% + 18.00->19.00 radl: 0.47% 0.40% 0->19.00 radl: 94.24% 1.16% + 19.00->20.00 radl: 0.31% 0.30% 0->20.00 radl: 94.55% 0.99% @@ -322,45 +283,36 @@ Run Summary bin Mean rms bin Mean rms - 0.00-> 0.25 radl: 36.98% 2.35% 0-> 0.25 radl: 36.98% 2.35% - 0.25-> 0.50 radl: 18.05% 1.44% 0-> 0.50 radl: 55.04% 2.19% - 0.50-> 0.75 radl: 10.25% 1.05% 0-> 0.75 radl: 65.28% 2.02% - 0.75-> 1.00 radl: 6.53% 0.83% 0-> 1.00 radl: 71.81% 1.83% - 1.00-> 1.25 radl: 4.51% 0.70% 0-> 1.25 radl: 76.32% 1.68% - 1.25-> 1.50 radl: 3.34% 0.54% 0-> 1.50 radl: 79.66% 1.56% - 1.50-> 1.75 radl: 2.61% 0.45% 0-> 1.75 radl: 82.27% 1.46% - 1.75-> 2.00 radl: 2.13% 0.39% 0-> 2.00 radl: 84.39% 1.40% - 2.00-> 2.25 radl: 1.77% 0.34% 0-> 2.25 radl: 86.16% 1.32% - 2.25-> 2.50 radl: 1.46% 0.33% 0-> 2.50 radl: 87.62% 1.27% - 2.50-> 2.75 radl: 1.26% 0.29% 0-> 2.75 radl: 88.88% 1.23% - 2.75-> 3.00 radl: 1.07% 0.25% 0-> 3.00 radl: 89.95% 1.19% - 3.00-> 3.25 radl: 0.93% 0.23% 0-> 3.25 radl: 90.88% 1.18% - 3.25-> 3.50 radl: 0.81% 0.20% 0-> 3.50 radl: 91.68% 1.17% - 3.50-> 3.75 radl: 0.70% 0.20% 0-> 3.75 radl: 92.39% 1.14% - 3.75-> 4.00 radl: 0.62% 0.18% 0-> 4.00 radl: 93.01% 1.13% - 4.00-> 4.25 radl: 0.53% 0.17% 0-> 4.25 radl: 93.54% 1.13% - 4.25-> 4.50 radl: 0.48% 0.16% 0-> 4.50 radl: 94.01% 1.11% - 4.50-> 4.75 radl: 0.41% 0.14% 0-> 4.75 radl: 94.42% 1.10% - 4.75-> 5.00 radl: 0.34% 0.13% 0-> 5.00 radl: 94.76% 1.10% + 0.00-> 0.25 radl: 34.34% 2.51% 0-> 0.25 radl: 34.34% 2.51% + 0.25-> 0.50 radl: 17.82% 1.43% 0-> 0.50 radl: 52.16% 2.55% + 0.50-> 0.75 radl: 10.54% 1.11% 0-> 0.75 radl: 62.70% 2.44% + 0.75-> 1.00 radl: 6.89% 0.90% 0-> 1.00 radl: 69.59% 2.17% + 1.00-> 1.25 radl: 4.83% 0.73% 0-> 1.25 radl: 74.42% 1.96% + 1.25-> 1.50 radl: 3.66% 0.61% 0-> 1.50 radl: 78.09% 1.77% + 1.50-> 1.75 radl: 2.86% 0.51% 0-> 1.75 radl: 80.95% 1.64% + 1.75-> 2.00 radl: 2.32% 0.43% 0-> 2.00 radl: 83.26% 1.52% + 2.00-> 2.25 radl: 1.90% 0.39% 0-> 2.25 radl: 85.17% 1.44% + 2.25-> 2.50 radl: 1.61% 0.35% 0-> 2.50 radl: 86.77% 1.38% + 2.50-> 2.75 radl: 1.36% 0.31% 0-> 2.75 radl: 88.13% 1.32% + 2.75-> 3.00 radl: 1.16% 0.28% 0-> 3.00 radl: 89.29% 1.26% + 3.00-> 3.25 radl: 1.00% 0.26% 0-> 3.25 radl: 90.29% 1.20% + 3.25-> 3.50 radl: 0.87% 0.23% 0-> 3.50 radl: 91.16% 1.17% + 3.50-> 3.75 radl: 0.77% 0.22% 0-> 3.75 radl: 91.93% 1.12% + 3.75-> 4.00 radl: 0.67% 0.21% 0-> 4.00 radl: 92.60% 1.08% + 4.00-> 4.25 radl: 0.61% 0.20% 0-> 4.25 radl: 93.21% 1.05% + 4.25-> 4.50 radl: 0.51% 0.18% 0-> 4.50 radl: 93.72% 1.02% + 4.50-> 4.75 radl: 0.45% 0.16% 0-> 4.75 radl: 94.17% 1.00% + 4.75-> 5.00 radl: 0.39% 0.14% 0-> 5.00 radl: 94.55% 0.99% SUMMARY - energy deposit : 94.76 % E0 +- 1.10 % E0 - charged traklen: 439.14 radl +- 5.63 radl - neutral traklen: 4523.63 radl +- 129.24 radl + energy deposit : 94.55 % E0 +- 0.99 % E0 + charged traklen: 476.71 radl +- 5.09 radl + neutral traklen: 4431.57 radl +- 133.17 radl --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1543815772, 2006737054 + Current couple of seeds = 1618930871, 404048512 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... G4 kernel has come to Quit state. -Deletion of G4 kernel class start. -UserDetectorConstruction deleted. -UserPhysicsList deleted. -UserRunAction deleted. -UserPrimaryGenerator deleted. -EventManager deleted. -UImanager deleted. -StateManager deleted. -RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm2/run02.mac b/examples/extended/electromagnetic/TestEm2/run02.mac index 82540f752a..26a201a3ce 100644 --- a/examples/extended/electromagnetic/TestEm2/run02.mac +++ b/examples/extended/electromagnetic/TestEm2/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.8 2003/02/14 14:21:28 vnivanch Exp $ +# $Id: run02.mac,v 1.9 2003/10/08 17:28:29 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -9,23 +9,24 @@ # J&H Crannel - Phys. Rev. 184-2 - August69 # /control/verbose 2 +/run/verbose 2 # -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard +/testem/det/setMat Aluminium +/testem/det/setLbin 12 1.1245 +/testem/det/setRbin 12 0.11245 +# +/testem/phys/addPhysics standard +###/testem/phys/addPhysics g4v52 # /testem/phys/setCuts 2.0 mm # -/testem/det/setMat Al -/testem/det/setLbin 12 1.1245 -/testem/det/setRbin 12 0.11245 /run/initialize -#/testem/det/update -# -/run/verbose 2 -/testem/event/printModulo 10 # /gun/particle e- /gun/energy 1 GeV +# +/testem/event/printModulo 10 +# /run/beamOn 500 diff --git a/examples/extended/electromagnetic/TestEm2/run03.mac b/examples/extended/electromagnetic/TestEm2/run03.mac index 52c9c16435..7d7cf7dfca 100644 --- a/examples/extended/electromagnetic/TestEm2/run03.mac +++ b/examples/extended/electromagnetic/TestEm2/run03.mac @@ -1,4 +1,4 @@ -# $Id: run03.mac,v 1.9 2003/02/14 14:21:28 vnivanch Exp $ +# $Id: run03.mac,v 1.10 2003/10/08 17:28:30 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -9,23 +9,24 @@ # J&H Crannel - Phys. Rev. 184-2 - August69 # /control/verbose 2 -# -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard -# -/testem/phys/setCuts 5.0 mm +/run/verbose 2 # /testem/det/setMat Water /testem/det/setLbin 9 1.11 /testem/det/setRbin 6 0.111 -/run/initialize -#/testem/det/update # -/run/verbose 2 -/testem/event/printModulo 10 +/testem/phys/addPhysics standard +###/testem/phys/addPhysics g4v52 +# +/testem/phys/setCuts 5.0 mm +# +/run/initialize # /gun/particle e- /gun/energy 1 GeV +# +/testem/event/printModulo 10 +# /run/beamOn 500 diff --git a/examples/extended/electromagnetic/TestEm2/run04.mac b/examples/extended/electromagnetic/TestEm2/run04.mac index f89485bec9..c09ea026d2 100644 --- a/examples/extended/electromagnetic/TestEm2/run04.mac +++ b/examples/extended/electromagnetic/TestEm2/run04.mac @@ -1,4 +1,4 @@ -# $Id: run04.mac,v 1.8 2003/02/14 14:21:28 vnivanch Exp $ +# $Id: run04.mac,v 1.9 2003/10/08 17:28:30 maire Exp $ # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -8,23 +8,24 @@ # EGS4 simulation: Particle Data Group - Phys.Rev.D 50-3 - August94 # /control/verbose 2 +/run/verbose 2 # -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard +/testem/det/setMat Iron +/testem/det/setLbin 40 0.5 +/testem/det/setRbin 20 0.25 +# +/testem/phys/addPhysics standard +###/testem/phys/addPhysics g4v52 # /testem/phys/setCuts 0.8 mm # -/testem/det/setMat Fe -/testem/det/setLbin 40 0.5 -/testem/det/setRbin 20 0.25 /run/initialize -#/testem/det/update -# -/run/verbose 2 -/testem/event/printModulo 10 # /gun/particle e- /gun/energy 30 GeV +# +/testem/event/printModulo 10 +# /run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm2/run05.mac b/examples/extended/electromagnetic/TestEm2/run05.mac index 49cac7bccb..1f5f25f2cf 100644 --- a/examples/extended/electromagnetic/TestEm2/run05.mac +++ b/examples/extended/electromagnetic/TestEm2/run05.mac @@ -1,3 +1,5 @@ +# $Id: run05.mac,v 1.2 2003/10/08 17:28:30 maire Exp $ +# # # Macro file for "TestEm2.cc" # (can be run in batch, without graphic) @@ -6,8 +8,8 @@ # /control/verbose 2 # -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard +/testem/phys/addPhysics standard +###/testem/phys/addPhysics g4v52 /testem/phys/setCuts 1 mm # /run/initialize @@ -29,10 +31,10 @@ /run/beamOn 10 /run/dumpCouples # -/testem/det/setMat lAr +/testem/det/setMat liquidArgon /testem/det/update /run/initialize /run/beamOn 10 /run/dumpCouples -# + diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc similarity index 61% rename from examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc rename to examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc index 3589ba72b3..bae8173139 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/DetectorConstruction.cc @@ -20,40 +20,33 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// // - +// $Id: DetectorConstruction.cc,v 1.2 2003/11/25 15:19:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2DetectorConstruction.hh" -#include "Em2DetectorMessenger.hh" +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" #include "G4Tubs.hh" #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" #include "G4PVReplica.hh" #include "G4UniformMagField.hh" -#include "G4FieldManager.hh" -#include "G4TransportationManager.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" -#include "G4RunManager.hh" - #include "G4VisAttributes.hh" -#include "G4Colour.hh" - #include "G4UnitsTable.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2DetectorConstruction::Em2DetectorConstruction() +DetectorConstruction::DetectorConstruction() :nLtot(20),nRtot(20),dLradl(1.),dRradl(0.25), myMaterial(0),magField(0) , EcalLength(0.),EcalRadius(0.) , @@ -61,124 +54,89 @@ Em2DetectorConstruction::Em2DetectorConstruction() solidSlice(0),logicSlice(0),physiSlice(0), solidRing(0) ,logicRing(0) ,physiRing(0) { - detectorMessenger = new Em2DetectorMessenger(this); DefineMaterials(); + SetMaterial("PbWO4"); + detectorMessenger = new DetectorMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2DetectorConstruction::~Em2DetectorConstruction() +DetectorConstruction::~DetectorConstruction() { delete detectorMessenger;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* Em2DetectorConstruction::Construct() +G4VPhysicalVolume* DetectorConstruction::Construct() { return ConstructVolumes(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2DetectorConstruction::DefineMaterials() +void DetectorConstruction::DefineMaterials() { - G4String name, symbol; - G4double a, z, density; - G4int ncomponents, natoms; - G4double fractionmass; - // // define few Elements // - - a = 1.01*g/mole; - G4Element* H = new G4Element(name="Hydrogen", symbol="H", z=1., a); - - a = 14.01*g/mole; - G4Element* N = new G4Element(name="Nitrogen", symbol="N", z=7., a); - - a = 16.00*g/mole; - G4Element* O = new G4Element(name="Oxygen" , symbol="O", z=8., a); - - a = 72.59*g/mole; - G4Element* Ge = new G4Element(name="Germanium", symbol="Ge",z=32., a); - - a = 183.84*g/mole; - G4Element* W = new G4Element(name="Tungsten" , symbol="W", z=74., a); - - a = 207.19*g/mole; - G4Element* Pb = new G4Element(name="Lead" , symbol="Pb",z=82., a); - - a = 208.98*g/mole; - G4Element* Bi = new G4Element(name="Bismuth" , symbol="Bi",z=83., a); + G4double a, z; + + G4Element* H = new G4Element("Hydrogen", "H", z= 1., a= 1.01*g/mole); + 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); + G4Element* Ge = new G4Element("Germanium", "Ge",z=32., a= 72.59*g/mole); + G4Element* W = new G4Element("Tungsten", "W", z=74., a= 183.84*g/mole); + G4Element* Pb = new G4Element("Lead", "Pb",z=82., a= 207.19*g/mole); + G4Element* Bi = new G4Element("Bismuth", "Bi",z=83., a= 208.98*g/mole); // // define materials // + G4double density; + G4double fractionmass; G4int ncomponents, natoms; - G4Material* ma = 0; + G4Material* Air = + new G4Material("Air", density= 1.29*mg/cm3, ncomponents=2); + Air->AddElement(N, fractionmass=0.7); + Air->AddElement(O, fractionmass=0.3); - //Air - density = 1.29*mg/cm3; - G4Material* Air = new G4Material(name="Air", density, ncomponents=2); - Air->AddElement(N, fractionmass=0.7); - Air->AddElement(O, fractionmass=0.3); + G4Material* H2O = + new G4Material("Water", density= 1.00*g/cm3, ncomponents=2); + H2O->AddElement(H, natoms=2); + H2O->AddElement(O, natoms=1); + H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); - //H2O - density = 1.00*g/cm3; - G4Material* H2O = new G4Material(name="Water", density, ncomponents=2); - H2O->AddElement(H, natoms=2); - H2O->AddElement(O, natoms=1); - H2O->SetChemicalFormula("H_2O"); - H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); + new G4Material("liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*g/cm3); - //liquid argon - a = 39.95*g/mole; - density = 1.390*g/cm3; - ma = new G4Material(name="lAr", z=18., a, density); + new G4Material("Aluminium", z=13., a= 26.98*g/mole, density= 2.7*g/cm3); - //Al - a = 26.98*g/mole; - density = 2.7*g/cm3; - ma = new G4Material(name="Al", z=13., a, density); + new G4Material("Iron", z=26., a= 55.85*g/mole, density= 7.87*g/cm3); - //Fe - a = 55.85*g/mole; - density = 7.87*g/cm3; - ma = new G4Material(name="Fe", z=26., a, density); + G4Material* BGO = + new G4Material("BGO", density= 7.10*g/cm3, ncomponents=3); + BGO->AddElement(O , natoms=12); + BGO->AddElement(Ge, natoms= 3); + BGO->AddElement(Bi, natoms= 4); - //BGO - density = 7.10*g/cm3; - G4Material* BGO = new G4Material(name="BGO", density, ncomponents=3); - BGO->AddElement(O , natoms=12); - BGO->AddElement(Ge, natoms= 3); - BGO->AddElement(Bi, natoms= 4); + G4Material* PbWO = + new G4Material("PbWO4", density= 8.28*g/cm3, ncomponents=3); + PbWO->AddElement(O , natoms=4); + PbWO->AddElement(Pb, natoms=1); + PbWO->AddElement(W , natoms=1); - //PbWO4 - density = 8.28*g/cm3; - G4Material* PbWO = new G4Material(name="PbWO4", density, ncomponents=3); - PbWO->AddElement(O , natoms=4); - PbWO->AddElement(Pb, natoms=1); - PbWO->AddElement(W , natoms=1); + G4Material* w = + new G4Material("Tungsten", density= 19.30*g/cm3, ncomponents=1); + w->AddElement(W, fractionmass=1.0); - //Tungsten - density = 19.30*g/cm3; - G4Material* w = new G4Material(name="Tungsten", density, ncomponents=1); - w->AddElement(W, fractionmass=1.0); + G4Material* pb = + new G4Material("Lead", density= 11.35*g/cm3, ncomponents=1); + pb->AddElement(Pb, fractionmass=1.0); - //Pb - density = 11.35*g/cm3; - G4Material* pb = new G4Material(name="Lead", density, ncomponents=1); - pb->AddElement(Pb, fractionmass=1.0); - - G4cout << *(G4Material::GetMaterialTable()) << G4endl; - - //choose material - myMaterial = PbWO; +//// G4cout << *(G4Material::GetMaterialTable()) << G4endl; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* Em2DetectorConstruction::ConstructVolumes() +G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() { G4double Radl = myMaterial->GetRadlen(); @@ -187,6 +145,7 @@ G4VPhysicalVolume* Em2DetectorConstruction::ConstructVolumes() // Cleanup old geometry + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); @@ -222,12 +181,8 @@ G4VPhysicalVolume* Em2DetectorConstruction::ConstructVolumes() G4cout << "Absorber is " << G4BestUnit(EcalLength,"Length") - << " of " << myMaterial->GetName() << G4endl; - - - G4VisAttributes* VisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - VisAtt->SetVisibility(true); - logicEcal->SetVisAttributes(VisAtt); + << " of " << myMaterial->GetName() << G4endl; + G4cout << myMaterial << G4endl; // //always return the physical World @@ -237,20 +192,16 @@ G4VPhysicalVolume* Em2DetectorConstruction::ConstructVolumes() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2DetectorConstruction::SetMaterial(const G4String& materialChoice) +void DetectorConstruction::SetMaterial(const G4String& materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - { - myMaterial = pttoMaterial; - if(logicEcal) logicEcal->SetMaterial(myMaterial); - } + if (pttoMaterial) myMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2DetectorConstruction::SetLBining(G4ThreeVector Value) +void DetectorConstruction::SetLBining(G4ThreeVector Value) { nLtot = (G4int)Value(0); dLradl = Value(1); @@ -258,7 +209,7 @@ void Em2DetectorConstruction::SetLBining(G4ThreeVector Value) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2DetectorConstruction::SetRBining(G4ThreeVector Value) +void DetectorConstruction::SetRBining(G4ThreeVector Value) { nRtot = (G4int)Value(0); dRradl = Value(1); @@ -266,7 +217,10 @@ void Em2DetectorConstruction::SetRBining(G4ThreeVector Value) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2DetectorConstruction::SetMagField(G4double fieldValue) +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" + +void DetectorConstruction::SetMagField(G4double fieldValue) { //apply a global uniform magnetic field along Z axis G4FieldManager* fieldMgr @@ -286,7 +240,9 @@ void Em2DetectorConstruction::SetMagField(G4double fieldValue) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2DetectorConstruction::UpdateGeometry() +#include "G4RunManager.hh" + +void DetectorConstruction::UpdateGeometry() { G4RunManager::GetRunManager()->DefineWorldVolume(ConstructVolumes()); } diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc similarity index 83% rename from examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc rename to examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc index 20b8829a7c..1d39d303c7 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/DetectorMessenger.cc @@ -21,17 +21,17 @@ // ******************************************************************** // // -// $Id: Em2DetectorMessenger.cc,v 1.11 2003/02/14 14:21:28 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorMessenger.cc,v 1.1 2003/10/08 17:28:43 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2DetectorMessenger.hh" +#include "DetectorMessenger.hh" -#include "Em2DetectorConstruction.hh" +#include "DetectorConstruction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWith3Vector.hh" @@ -40,11 +40,11 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2DetectorMessenger::Em2DetectorMessenger(Em2DetectorConstruction * Det) -:Em2Detector(Det) +DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) +:Detector(Det) { testemDir = new G4UIdirectory("/testem/"); - testemDir->SetGuidance("Em2 detector control."); + testemDir->SetGuidance(" detector control."); MaterCmd = new G4UIcmdWithAString("/testem/det/setMat",this); MaterCmd->SetGuidance("Select Material."); @@ -76,12 +76,12 @@ Em2DetectorMessenger::Em2DetectorMessenger(Em2DetectorConstruction * Det) UpdateCmd->SetGuidance("Update geometry."); UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" "); UpdateCmd->SetGuidance("if you changed geometrical value(s)."); - UpdateCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + UpdateCmd->AvailableForStates(G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2DetectorMessenger::~Em2DetectorMessenger() +DetectorMessenger::~DetectorMessenger() { delete MaterCmd; delete LBinCmd; @@ -93,22 +93,22 @@ Em2DetectorMessenger::~Em2DetectorMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if( command == MaterCmd ) - { Em2Detector->SetMaterial(newValue);} + { Detector->SetMaterial(newValue);} if( command == LBinCmd ) - { Em2Detector->SetLBining(LBinCmd->GetNew3VectorValue(newValue));} + { Detector->SetLBining(LBinCmd->GetNew3VectorValue(newValue));} if( command == RBinCmd ) - { Em2Detector->SetRBining(RBinCmd->GetNew3VectorValue(newValue));} + { Detector->SetRBining(RBinCmd->GetNew3VectorValue(newValue));} if( command == FieldCmd ) - { Em2Detector->SetMagField(FieldCmd->GetNewDoubleValue(newValue));} + { Detector->SetMagField(FieldCmd->GetNewDoubleValue(newValue));} if( command == UpdateCmd ) - { Em2Detector->UpdateGeometry();} + { Detector->UpdateGeometry();} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmModel.cc b/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmModel.cc deleted file mode 100644 index 25304c4cd3..0000000000 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmModel.cc +++ /dev/null @@ -1,117 +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: Em2PhysListEmModel.cc,v 1.4 2003/04/11 14:31:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em2PhysListEmModel.hh" -#include "G4ParticleDefinition.hh" -#include "G4ProcessManager.hh" - -#include "G4ComptonScattering.hh" -#include "G4GammaConversion.hh" -#include "G4PhotoElectricEffect.hh" - -#include "G4MultipleScatteringSTD.hh" - -#include "G4eIonisationSTD.hh" -#include "G4eBremsstrahlungSTD.hh" -#include "G4eplusAnnihilation.hh" - -#include "G4MuIonisationSTD.hh" -#include "G4MuBremsstrahlungSTD.hh" -#include "G4MuPairProductionSTD.hh" - -#include "G4hIonisationSTD.hh" -#include "G4ionIonisation.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em2PhysListEmModel::Em2PhysListEmModel(const G4String& name) - : G4VPhysicsConstructor(name) -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em2PhysListEmModel::~Em2PhysListEmModel() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em2PhysListEmModel::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 G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); - - } else if (particleName == "e+") { - //positron - pmanager->AddProcess(new G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); - - } else if( particleName == "mu+" || - particleName == "mu-" ) { - //muon - pmanager->AddProcess(new G4MultipleScatteringSTD,-1, 1,1); - pmanager->AddProcess(new G4MuIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlungSTD, -1,-1,3); - pmanager->AddProcess(new G4MuPairProductionSTD, -1,-1,4); - - } else if( particleName == "GenericIon" ) { - - pmanager->AddProcess(new G4MultipleScatteringSTD,-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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4hIonisationSTD, -1,2,2); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc b/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc deleted file mode 100755 index c980ba90d0..0000000000 --- a/examples/extended/electromagnetic/TestEm2/src/Em2VisManager.cc +++ /dev/null @@ -1,155 +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: Em2VisManager.cc,v 1.8 2002/12/16 11:29:24 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// John Allison 24th January 1998. - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifdef G4VIS_USE - -#include "Em2VisManager.hh" - -// Supported drivers... - -// Not needing external packages or libraries... -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.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_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - -#ifdef G4VIS_USE_OPENGLX -#include "G4OpenGLImmediateX.hh" -#include "G4OpenGLStoredX.hh" -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 -#include "G4OpenGLImmediateWin32.hh" -#include "G4OpenGLStoredWin32.hh" -#endif - -#ifdef G4VIS_USE_OPENGLXM -#include "G4OpenGLImmediateXm.hh" -#include "G4OpenGLStoredXm.hh" -#endif - -#ifdef G4VIS_USE_OIX -#include "G4OpenInventorX.hh" -#endif - -#ifdef G4VIS_USE_OIWIN32 -#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_VRML -#include "G4VRML1.hh" -#include "G4VRML2.hh" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em2VisManager::Em2VisManager () {} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em2VisManager::RegisterGraphicsSystems () { - - // Graphics Systems not needing external packages or libraries... - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); - - // Graphics systems needing external packages or libraries... - -#ifdef G4VIS_USE_DAWN - RegisterGraphicsSystem (new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX); -#endif - -#ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem (new G4OpenGLImmediateWin32); - RegisterGraphicsSystem (new G4OpenGLStoredWin32); -#endif - -#ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem (new G4OpenGLImmediateXm); - RegisterGraphicsSystem (new G4OpenGLStoredXm); -#endif - -#ifdef G4VIS_USE_OIX - RegisterGraphicsSystem (new G4OpenInventorX); -#endif - -#ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem (new G4OpenInventorWin32); -#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 (); - } -} - -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc b/examples/extended/electromagnetic/TestEm2/src/EventAction.cc similarity index 83% rename from examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc rename to examples/extended/electromagnetic/TestEm2/src/EventAction.cc index 683aa9284f..b5cfc6d84e 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2EventAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/EventAction.cc @@ -21,44 +21,42 @@ // ******************************************************************** // // -// $Id: Em2EventAction.cc,v 1.7 2002/12/16 11:29:23 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.cc,v 1.1 2003/10/08 17:28:46 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2EventAction.hh" +#include "EventAction.hh" -#include "Em2RunAction.hh" -#include "Em2EventActionMessenger.hh" +#include "EventActionMessenger.hh" +#include "RunAction.hh" #include "G4Event.hh" -#include "G4EventManager.hh" #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2EventAction::Em2EventAction(Em2RunAction* run) -:Em2Run(run),drawFlag("none"),printModulo(10000) +EventAction::EventAction(RunAction* run) +:Run(run),drawFlag("none"),printModulo(10000) { - eventMessenger = new Em2EventActionMessenger(this); + eventMessenger = new EventActionMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2EventAction::~Em2EventAction() +EventAction::~EventAction() { delete eventMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2EventAction::BeginOfEventAction(const G4Event* evt) +void EventAction::BeginOfEventAction(const G4Event* evt) { G4int evtNb = evt->GetEventID(); @@ -67,14 +65,14 @@ void Em2EventAction::BeginOfEventAction(const G4Event* evt) G4cout << "\n---> Begin of Event: " << evtNb << G4endl; //additional initializations - Em2Run->initializePerEvent(); + Run->initializePerEvent(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2EventAction::EndOfEventAction(const G4Event* evt) +void EventAction::EndOfEventAction(const G4Event* evt) { - Em2Run->fillPerEvent(); + Run->fillPerEvent(); if (G4VVisManager::GetConcreteInstance()) { diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc similarity index 88% rename from examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc rename to examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc index ad7f981ee1..9b93cc0b22 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/EventActionMessenger.cc @@ -21,24 +21,23 @@ // ******************************************************************** // // -// $Id: Em2EventActionMessenger.cc,v 1.9 2002/12/16 11:29:23 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.cc,v 1.1 2003/10/08 17:28:47 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2EventActionMessenger.hh" +#include "EventActionMessenger.hh" -#include "Em2EventAction.hh" +#include "EventAction.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2EventActionMessenger::Em2EventActionMessenger(Em2EventAction* EvAct) +EventActionMessenger::EventActionMessenger(EventAction* EvAct) :eventAction(EvAct) { DrawCmd = new G4UIcmdWithAString("/testem/event/drawTracks",this); @@ -58,7 +57,7 @@ Em2EventActionMessenger::Em2EventActionMessenger(Em2EventAction* EvAct) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2EventActionMessenger::~Em2EventActionMessenger() +EventActionMessenger::~EventActionMessenger() { delete DrawCmd; delete PrintCmd; @@ -66,7 +65,7 @@ Em2EventActionMessenger::~Em2EventActionMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2EventActionMessenger::SetNewValue(G4UIcommand* command, +void EventActionMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if(command == DrawCmd) diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysListEmModel.cc b/examples/extended/electromagnetic/TestEm2/src/PhysListEmG4v52.cc similarity index 67% rename from examples/extended/electromagnetic/TestEm3/src/Em3PhysListEmModel.cc rename to examples/extended/electromagnetic/TestEm2/src/PhysListEmG4v52.cc index 7f28df328a..efc36f1784 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysListEmModel.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysListEmG4v52.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em3PhysListEmModel.cc,v 1.1 2003/02/26 16:12:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmG4v52.cc,v 1.2 2003/11/13 14:12:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3PhysListEmModel.hh" +#include "PhysListEmG4v52.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -35,33 +35,34 @@ #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" -#include "G4MultipleScatteringSTD.hh" +#include "G4MultipleScattering52.hh" +#include "G4MultipleScattering.hh" -#include "G4eIonisationSTD.hh" -#include "G4eBremsstrahlungSTD.hh" +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" #include "G4eplusAnnihilation.hh" -#include "G4MuIonisationSTD.hh" -#include "G4MuBremsstrahlungSTD.hh" -#include "G4MuPairProductionSTD.hh" +#include "G4MuIonisation52.hh" +#include "G4MuBremsstrahlung52.hh" +#include "G4MuPairProduction52.hh" + +#include "G4hIonisation52.hh" -#include "G4hIonisationSTD.hh" -#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysListEmModel::Em3PhysListEmModel(const G4String& name) +PhysListEmG4v52::PhysListEmG4v52(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysListEmModel::~Em3PhysListEmModel() +PhysListEmG4v52::~PhysListEmG4v52() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysListEmModel::ConstructProcess() +void PhysListEmG4v52::ConstructProcess() { // Add EM processes realised on base of prototype of model approach design @@ -79,36 +80,37 @@ void Em3PhysListEmModel::ConstructProcess() } else if (particleName == "e-") { //electron - pmanager->AddProcess(new G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); + // pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4MultipleScattering, -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 G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 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 G4eplusAnnihilation, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { //muon - pmanager->AddProcess(new G4MultipleScatteringSTD,-1, 1,1); - pmanager->AddProcess(new G4MuIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlungSTD, -1,-1,3); - pmanager->AddProcess(new G4MuPairProductionSTD, -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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4ionIonisation, -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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4hIonisationSTD, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm2/src/PhysListEmStandard.cc similarity index 84% rename from examples/extended/electromagnetic/TestEm1/src/Em1PhysListEmStandard.cc rename to examples/extended/electromagnetic/TestEm2/src/PhysListEmStandard.cc index 1ef68c30a7..986a3ebe6b 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysListEmStandard.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em1PhysListEmStandard.cc,v 1.1 2003/03/27 11:16:20 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmStandard.cc,v 1.2 2003/10/24 12:08:28 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1PhysListEmStandard.hh" +#include "PhysListEmStandard.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -46,21 +46,22 @@ #include "G4MuPairProduction.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysListEmStandard::Em1PhysListEmStandard(const G4String& name) +PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysListEmStandard::~Em1PhysListEmStandard() +PhysListEmStandard::~PhysListEmStandard() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysListEmStandard::ConstructProcess() +void PhysListEmStandard::ConstructProcess() { // Add standard EM Processes @@ -80,13 +81,13 @@ void Em1PhysListEmStandard::ConstructProcess() //electron 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); } else if (particleName == "e+") { //positron 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); } else if( particleName == "mu+" || @@ -94,9 +95,13 @@ void Em1PhysListEmStandard::ConstructProcess() //muon 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); + 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")) { diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm2/src/PhysListGeneral.cc similarity index 90% rename from examples/extended/electromagnetic/TestEm2/src/Em2PhysListGeneral.cc rename to examples/extended/electromagnetic/TestEm2/src/PhysListGeneral.cc index aca780a3ac..c6e6c04bf0 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysListGeneral.cc @@ -21,30 +21,31 @@ // ******************************************************************** // // -// $Id: Em2PhysListGeneral.cc,v 1.2 2002/12/16 11:29:23 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListGeneral.cc,v 1.1 2003/10/08 17:28:47 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2PhysListGeneral.hh" +#include "PhysListGeneral.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" +#include "G4Decay.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysListGeneral::Em2PhysListGeneral(const G4String& name) +PhysListGeneral::PhysListGeneral(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysListGeneral::~Em2PhysListGeneral() +PhysListGeneral::~PhysListGeneral() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysListGeneral::ConstructProcess() +void PhysListGeneral::ConstructProcess() { // Add Decay Process diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListParticles.cc b/examples/extended/electromagnetic/TestEm2/src/PhysListParticles.cc similarity index 93% rename from examples/extended/electromagnetic/TestEm2/src/Em2PhysListParticles.cc rename to examples/extended/electromagnetic/TestEm2/src/PhysListParticles.cc index 0d8d355100..97a6689d76 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysListParticles.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em2PhysListParticles.cc,v 1.2 2002/12/16 11:29:23 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.cc,v 1.1 2003/10/08 17:28:47 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2PhysListParticles.hh" +#include "PhysListParticles.hh" // Bosons #include "G4ChargedGeantino.hh" @@ -75,18 +75,18 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysListParticles::Em2PhysListParticles(const G4String& name) +PhysListParticles::PhysListParticles(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysListParticles::~Em2PhysListParticles() +PhysListParticles::~PhysListParticles() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysListParticles::ConstructParticle() +void PhysListParticles::ConstructParticle() { // pseudo-particles diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc b/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc similarity index 75% rename from examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc rename to examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc index 95eb23331b..e4e1791547 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysicsList.cc @@ -21,28 +21,26 @@ // ******************************************************************** // // -// $Id: Em2PhysicsList.cc,v 1.14 2003/06/03 10:07:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.cc,v 1.1 2003/10/08 17:28:47 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2PhysicsList.hh" -#include "Em2PhysicsListMessenger.hh" +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" -#include "G4UnitsTable.hh" -#include "Em2PhysListParticles.hh" -#include "Em2PhysListGeneral.hh" -#include "Em2PhysListEmStandard.hh" -#include "Em2PhysListEmModel.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" +#include "PhysListParticles.hh" +#include "PhysListGeneral.hh" +#include "PhysListEmStandard.hh" +#include "PhysListEmG4v52.hh" + #include "G4LossTableManager.hh" +#include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysicsList::Em2PhysicsList() : G4VModularPhysicsList() +PhysicsList::PhysicsList() : G4VModularPhysicsList() { G4LossTableManager::Instance(); currentDefaultCut = 1.0*mm; @@ -50,39 +48,39 @@ Em2PhysicsList::Em2PhysicsList() : G4VModularPhysicsList() cutForElectron = currentDefaultCut; cutForPositron = currentDefaultCut; - pMessenger = new Em2PhysicsListMessenger(this); + pMessenger = new PhysicsListMessenger(this); SetVerboseLevel(1); // Particles - particleList = new Em2PhysListParticles("particles"); + particleList = new PhysListParticles("particles"); // General Physics - generalPhysicsList = new Em2PhysListGeneral("general"); + generalPhysicsList = new PhysListGeneral("general"); // EM physics emName = G4String("standard"); - emPhysicsList = new Em2PhysListEmStandard(emName); + emPhysicsList = new PhysListEmStandard(emName); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysicsList::~Em2PhysicsList() +PhysicsList::~PhysicsList() { delete pMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsList::ConstructParticle() +void PhysicsList::ConstructParticle() { particleList->ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsList::ConstructProcess() +void PhysicsList::ConstructProcess() { AddTransportation(); generalPhysicsList->ConstructProcess(); @@ -91,10 +89,10 @@ void Em2PhysicsList::ConstructProcess() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsList::AddPhysicsList(const G4String& name) +void PhysicsList::AddPhysicsList(const G4String& name) { if (verboseLevel>1) { - G4cout << "Em2PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; } if (name == emName) return; @@ -103,17 +101,17 @@ void Em2PhysicsList::AddPhysicsList(const G4String& name) emName = name; delete emPhysicsList; - emPhysicsList = new Em2PhysListEmStandard(name); + emPhysicsList = new PhysListEmStandard(name); - } else if (name == "model") { + } else if (name == "g4v52") { emName = name; delete emPhysicsList; - emPhysicsList = new Em2PhysListEmModel(name); + emPhysicsList = new PhysListEmG4v52(name); } else { - G4cout << "Em2PhysicsList::AddPhysicsList: <" << name << ">" + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << " is not defined" << G4endl; } @@ -121,10 +119,10 @@ void Em2PhysicsList::AddPhysicsList(const G4String& name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsList::SetCuts() +void PhysicsList::SetCuts() { if (verboseLevel >0){ - G4cout << "Em2PhysicsList::SetCuts:"; + G4cout << "PhysicsList::SetCuts:"; G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; } @@ -139,7 +137,11 @@ void Em2PhysicsList::SetCuts() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsList::SetCutForGamma(G4double cut) +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +void PhysicsList::SetCutForGamma(G4double cut) { cutForGamma = cut; SetParticleCuts(cutForGamma, G4Gamma::Gamma()); @@ -147,7 +149,7 @@ void Em2PhysicsList::SetCutForGamma(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsList::SetCutForElectron(G4double cut) +void PhysicsList::SetCutForElectron(G4double cut) { cutForElectron = cut; SetParticleCuts(cutForElectron, G4Electron::Electron()); @@ -155,7 +157,7 @@ void Em2PhysicsList::SetCutForElectron(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsList::SetCutForPositron(G4double cut) +void PhysicsList::SetCutForPositron(G4double cut) { cutForPositron = cut; SetParticleCuts(cutForPositron, G4Positron::Positron()); diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc similarity index 92% rename from examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc rename to examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc index 65668119dd..b0a246e114 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PhysicsListMessenger.cc @@ -21,23 +21,23 @@ // ******************************************************************** // // -// $Id: Em3PhysicsListMessenger.cc,v 1.6 2003/02/20 15:52:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.cc,v 1.1 2003/10/08 17:28:47 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3PhysicsListMessenger.hh" +#include "PhysicsListMessenger.hh" -#include "Em3PhysicsList.hh" +#include "PhysicsList.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithAString.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysicsListMessenger::Em3PhysicsListMessenger(Em3PhysicsList* pPhys) +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) :pPhysicsList(pPhys) { gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this); @@ -76,7 +76,7 @@ Em3PhysicsListMessenger::Em3PhysicsListMessenger(Em3PhysicsList* pPhys) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysicsListMessenger::~Em3PhysicsListMessenger() +PhysicsListMessenger::~PhysicsListMessenger() { delete gammaCutCmd; delete electCutCmd; @@ -87,7 +87,7 @@ Em3PhysicsListMessenger::~Em3PhysicsListMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysicsListMessenger::SetNewValue(G4UIcommand* command, +void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if( command == gammaCutCmd ) diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc similarity index 83% rename from examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc rename to examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc index f13260f7d3..5cf9ed8e7b 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/PrimaryGeneratorAction.cc @@ -21,26 +21,26 @@ // ******************************************************************** // // -// $Id: Em2PrimaryGeneratorAction.cc,v 1.6 2002/12/16 11:29:23 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.cc,v 1.1 2003/10/08 17:28:47 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2PrimaryGeneratorAction.hh" +#include "PrimaryGeneratorAction.hh" -#include "Em2DetectorConstruction.hh" +#include "DetectorConstruction.hh" #include "G4Event.hh" #include "G4ParticleTable.hh" #include "G4ParticleDefinition.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PrimaryGeneratorAction::Em2PrimaryGeneratorAction( - Em2DetectorConstruction* det) -:Em2Detector(det) +PrimaryGeneratorAction::PrimaryGeneratorAction( + DetectorConstruction* det) +:Detector(det) { G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); @@ -54,18 +54,18 @@ Em2PrimaryGeneratorAction::Em2PrimaryGeneratorAction( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PrimaryGeneratorAction::~Em2PrimaryGeneratorAction() +PrimaryGeneratorAction::~PrimaryGeneratorAction() { delete particleGun; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begin of event // - G4double position = -0.5*(Em2Detector->GetfullLength()); + G4double position = -0.5*(Detector->GetfullLength()); particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,position)); particleGun->GeneratePrimaryVertex(anEvent); } diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc b/examples/extended/electromagnetic/TestEm2/src/RunAction.cc similarity index 89% rename from examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc rename to examples/extended/electromagnetic/TestEm2/src/RunAction.cc index 98a47837fd..fdf9db2c28 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2RunAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2RunAction.cc,v 1.21 2003/06/18 09:34:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.cc,v 1.1 2003/10/08 17:28:47 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,16 +31,15 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2RunAction.hh" +#include "RunAction.hh" -#include "Em2DetectorConstruction.hh" -#include "Em2PrimaryGeneratorAction.hh" +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorAction.hh" #include "G4Run.hh" #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" #include "G4UnitsTable.hh" #include @@ -48,17 +47,17 @@ #include "Randomize.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2RunAction::Em2RunAction(Em2DetectorConstruction* det, - Em2PrimaryGeneratorAction* kin) -:Em2Det(det),Em2Kin(kin) +RunAction::RunAction(DetectorConstruction* det, + PrimaryGeneratorAction* kin) +:Det(det),Kin(kin) { - nLbin = Em2Det->GetnLtot(); + nLbin = Det->GetnLtot(); dEdL.resize(nLbin, 0.0); sumELongit.resize(nLbin, 0.0); sumELongitCumul.resize(nLbin, 0.0); @@ -69,7 +68,7 @@ Em2RunAction::Em2RunAction(Em2DetectorConstruction* det, electronFlux.resize(nLbin, 0.0); positronFlux.resize(nLbin, 0.0); - nRbin = Em2Det->GetnRtot(); + nRbin = Det->GetnRtot(); dEdR.resize(nRbin, 0.0); sumERadial.resize(nRbin, 0.0); sumERadialCumul.resize(nRbin, 0.0); @@ -79,16 +78,16 @@ Em2RunAction::Em2RunAction(Em2DetectorConstruction* det, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2RunAction::~Em2RunAction() +RunAction::~RunAction() { cleanHisto(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2RunAction::bookHisto() +void RunAction::bookHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE // Creating the analysis factory AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); @@ -102,9 +101,9 @@ void Em2RunAction::bookHisto() // Creating a histogram factory, whose histograms will be handled by the tree AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); - G4double Ekin = Em2Kin->GetParticleGun()->GetParticleEnergy(); - G4double dLradl = Em2Det->GetdLradl(); - G4double dRradl = Em2Det->GetdRradl(); + G4double Ekin = Kin->GetParticleGun()->GetParticleEnergy(); + G4double dLradl = Det->GetdLradl(); + G4double dRradl = Det->GetdRradl(); histo[0] = hf->createHistogram1D( "1","total energy deposit(percent of Einc)", 100,0.,100.); @@ -151,9 +150,9 @@ void Em2RunAction::bookHisto() } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2RunAction::cleanHisto() +void RunAction::cleanHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) @@ -163,7 +162,7 @@ void Em2RunAction::cleanHisto() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2RunAction::BeginOfRunAction(const G4Run* aRun) +void RunAction::BeginOfRunAction(const G4Run* aRun) { G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; @@ -175,7 +174,7 @@ void Em2RunAction::BeginOfRunAction(const G4Run* aRun) // G4bool rebin(false); - G4int nLtot = Em2Det->GetnLtot(); + G4int nLtot = Det->GetnLtot(); if(nLbin != nLtot) {dEdL.resize(nLbin=nLtot, 0.0); sumELongit.resize(nLbin, 0.0); @@ -188,7 +187,7 @@ void Em2RunAction::BeginOfRunAction(const G4Run* aRun) rebin=true; } - G4int nRtot = Em2Det->GetnRtot(); + G4int nRtot = Det->GetnRtot(); if(nRbin != nRtot) {dEdR.resize(nRbin=nRtot, 0.0); sumERadial.resize(nRbin, 0.0); @@ -222,7 +221,7 @@ void Em2RunAction::BeginOfRunAction(const G4Run* aRun) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2RunAction::fillPerEvent() +void RunAction::fillPerEvent() { //accumulate statistic // @@ -251,12 +250,12 @@ void Em2RunAction::fillPerEvent() sumNeutrTrLength += NeutrTrLength; sum2NeutrTrLength += NeutrTrLength*NeutrTrLength; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE //fill histograms // - G4double Ekin=Em2Kin->GetParticleGun()->GetParticleEnergy(); - G4double mass=Em2Kin->GetParticleGun()->GetParticleDefinition()->GetPDGMass(); - G4double radl=Em2Det->GetMaterial()->GetRadlen(); + 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); @@ -266,7 +265,7 @@ void Em2RunAction::fillPerEvent() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2RunAction::EndOfRunAction(const G4Run* aRun) +void RunAction::EndOfRunAction(const G4Run* aRun) { if (G4VVisManager::GetConcreteInstance()) G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); @@ -274,15 +273,15 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) //compute and print statistic // G4int NbOfEvents = aRun->GetNumberOfEvent(); - G4double kinEnergy = Em2Kin->GetParticleGun()->GetParticleEnergy(); + G4double kinEnergy = Kin->GetParticleGun()->GetParticleEnergy(); assert(NbOfEvents*kinEnergy > 0); - G4double mass=Em2Kin->GetParticleGun()->GetParticleDefinition()->GetPDGMass(); + G4double mass=Kin->GetParticleGun()->GetParticleDefinition()->GetPDGMass(); G4double norme = 100./(NbOfEvents*(kinEnergy+mass)); //longitudinal // - G4double dLradl = Em2Det->GetdLradl(); + G4double dLradl = Det->GetdLradl(); MyVector MeanELongit(nLbin), rmsELongit(nLbin); MyVector MeanELongitCumul(nLbin), rmsELongitCumul(nLbin); @@ -302,7 +301,7 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) electronFlux[i] /= NbOfEvents; positronFlux[i] /= NbOfEvents; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE G4double bin = i*dLradl; histo[3]->fill(bin,MeanELongit[i]/dLradl); bin = (i+1)*dLradl; @@ -317,7 +316,7 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) //radial // - G4double dRradl = Em2Det->GetdRradl(); + G4double dRradl = Det->GetdRradl(); MyVector MeanERadial(nRbin), rmsERadial(nRbin); MyVector MeanERadialCumul(nRbin), rmsERadialCumul(nRbin); @@ -332,7 +331,7 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) rmsERadialCumul[i] = norme*sqrt(abs(NbOfEvents*sumE2RadialCumul[i] - sumERadialCumul[i]*sumERadialCumul[i])); -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE G4double bin = i*dRradl; histo[ 9]->fill(bin,MeanERadial[i]/dRradl); bin = (i+1)*dRradl; @@ -343,7 +342,7 @@ void Em2RunAction::EndOfRunAction(const G4Run* aRun) //track length // - norme = 1./(NbOfEvents*(Em2Det->GetMaterial()->GetRadlen())); + norme = 1./(NbOfEvents*(Det->GetMaterial()->GetRadlen())); G4double MeanChargTrLength = norme*sumChargTrLength; G4double rmsChargTrLength = norme*sqrt(abs(NbOfEvents*sum2ChargTrLength - sumChargTrLength*sumChargTrLength)); diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc b/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc similarity index 80% rename from examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc rename to examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc index 51a54badcf..8bfbd9d003 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/SteppingAction.cc @@ -21,35 +21,35 @@ // ******************************************************************** // // -// $Id: Em2SteppingAction.cc,v 1.7 2002/12/16 11:29:24 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.cc,v 1.1 2003/10/08 17:28:47 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2SteppingAction.hh" -#include "Em2DetectorConstruction.hh" -#include "Em2RunAction.hh" +#include "SteppingAction.hh" +#include "DetectorConstruction.hh" +#include "RunAction.hh" #include "G4SteppingManager.hh" #include "G4VTouchable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2SteppingAction::Em2SteppingAction(Em2DetectorConstruction* det, - Em2RunAction* run) -:Em2Det(det),Em2Run(run) +SteppingAction::SteppingAction(DetectorConstruction* det, + RunAction* run) +:Det(det),Run(run) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2SteppingAction::~Em2SteppingAction() +SteppingAction::~SteppingAction() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2SteppingAction::UserSteppingAction(const G4Step* aStep) +void SteppingAction::UserSteppingAction(const G4Step* aStep) { G4Track* aTrack = aStep->GetTrack(); const G4VTouchable* preStepTouchable= aStep->GetPreStepPoint()->GetTouchable(); @@ -60,24 +60,24 @@ void Em2SteppingAction::UserSteppingAction(const G4Step* aStep) G4int SlideNb(0), RingNb(0); if (preStepTouchable->GetHistoryDepth()>0) { - if (Em2Det->GetnRtot()>1) + if (Det->GetnRtot()>1) RingNb = preStepTouchable->GetReplicaNumber(1); - if (Em2Det->GetnLtot()>1) + if (Det->GetnLtot()>1) SlideNb = preStepTouchable->GetReplicaNumber(); } G4double dEStep = aStep->GetTotalEnergyDeposit(); if (dEStep > 0.) - Em2Run->fillPerStep(dEStep,SlideNb,RingNb); + Run->fillPerStep(dEStep,SlideNb,RingNb); // particle flux // - if ((Em2Det->GetnLtot()>1)&& + if ((Det->GetnLtot()>1)&& (postStepTouchable->GetVolume())) { G4int next = postStepTouchable->GetReplicaNumber(); if (next != SlideNb) - Em2Run->particleFlux(aTrack->GetDefinition(), (SlideNb+next)/2); + Run->particleFlux(aTrack->GetDefinition(), (SlideNb+next)/2); } } diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc similarity index 95% rename from examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc rename to examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc index 0c644eff3b..46d52c1b51 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm2/src/SteppingVerbose.cc @@ -21,30 +21,30 @@ // ******************************************************************** // // -// $Id: Em2SteppingVerbose.cc,v 1.11 2003/06/16 16:47:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.cc,v 1.1 2003/10/08 17:28:48 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2SteppingVerbose.hh" +#include "SteppingVerbose.hh" #include "G4SteppingManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2SteppingVerbose::Em2SteppingVerbose() +SteppingVerbose::SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2SteppingVerbose::~Em2SteppingVerbose() +SteppingVerbose::~SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2SteppingVerbose::StepInfo() +void SteppingVerbose::StepInfo() { CopyState(); @@ -137,7 +137,7 @@ void Em2SteppingVerbose::StepInfo() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2SteppingVerbose::TrackingStarted() +void SteppingVerbose::TrackingStarted() { CopyState(); diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2TrackingAction.cc b/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc similarity index 85% rename from examples/extended/electromagnetic/TestEm2/src/Em2TrackingAction.cc rename to examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc index a425006e95..1e49dee1e7 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2TrackingAction.cc +++ b/examples/extended/electromagnetic/TestEm2/src/TrackingAction.cc @@ -21,35 +21,35 @@ // ******************************************************************** // // -// $Id: Em2TrackingAction.cc,v 1.5 2002/12/16 11:29:24 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TrackingAction.cc,v 1.1 2003/10/08 17:28:48 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2TrackingAction.hh" -#include "Em2RunAction.hh" +#include "TrackingAction.hh" +#include "RunAction.hh" #include "G4TrackingManager.hh" #include "G4Track.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2TrackingAction::Em2TrackingAction(Em2RunAction* run) -:Em2Run(run) +TrackingAction::TrackingAction(RunAction* run) +:Run(run) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2TrackingAction::PostUserTrackingAction(const G4Track* aTrack) +void TrackingAction::PostUserTrackingAction(const G4Track* aTrack) { //count total track length G4double charge = aTrack->GetDefinition()->GetPDGCharge(); G4double TrLeng = aTrack->GetTrackLength(); - Em2Run->fillPerTrack(charge,TrLeng); + Run->fillPerTrack(charge,TrLeng); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc b/examples/extended/electromagnetic/TestEm2/src/VisManager.cc similarity index 95% rename from examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc rename to examples/extended/electromagnetic/TestEm2/src/VisManager.cc index e7e3b2ca76..8d79c8cfb9 100755 --- a/examples/extended/electromagnetic/TestEm1/src/Em1VisManager.cc +++ b/examples/extended/electromagnetic/TestEm2/src/VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1VisManager.cc,v 1.7 2002/11/13 21:39:42 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.cc,v 1.1 2003/10/08 17:28:48 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -32,7 +32,7 @@ #ifdef G4VIS_USE -#include "Em1VisManager.hh" +#include "VisManager.hh" // Supported drivers... @@ -87,11 +87,11 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1VisManager::Em1VisManager () {} +VisManager::VisManager () {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1VisManager::RegisterGraphicsSystems () { +void VisManager::RegisterGraphicsSystems () { // Graphics Systems not needing external packages or libraries... RegisterGraphicsSystem (new G4ASCIITree); diff --git a/examples/extended/electromagnetic/TestEm2/vis.mac b/examples/extended/electromagnetic/TestEm2/vis.mac index 94da2908f6..f272792afa 100644 --- a/examples/extended/electromagnetic/TestEm2/vis.mac +++ b/examples/extended/electromagnetic/TestEm2/vis.mac @@ -31,4 +31,5 @@ /vis/scene/endOfEventAction accumulate # /testem/event/drawTracks charged +#/testem/event/drawTracks all diff --git a/examples/extended/electromagnetic/TestEm3/GNUmakefile b/examples/extended/electromagnetic/TestEm3/GNUmakefile index 60f4991fcf..5741c52b7c 100644 --- a/examples/extended/electromagnetic/TestEm3/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm3/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.10 2003/03/10 11:30:23 maire Exp $ +# $Id: GNUmakefile,v 1.11 2003/09/25 15:08:30 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -14,12 +14,15 @@ endif .PHONY: all all: lib bin +####G4ANALYSIS_USE := true + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + include $(G4INSTALL)/config/architecture.gmk -G4NOHIST := true -ifdef G4NOHIST - CPPFLAGS += -DG4NOHIST -else +ifdef G4ANALYSIS_USE # for the aida-config command see the README file CPPFLAGS += `aida-config --include` LDFLAGS += `aida-config --lib` diff --git a/examples/extended/electromagnetic/TestEm3/History b/examples/extended/electromagnetic/TestEm3/History index eae94f5c41..3613ad05c1 100644 --- a/examples/extended/electromagnetic/TestEm3/History +++ b/examples/extended/electromagnetic/TestEm3/History @@ -1,4 +1,4 @@ -$Id: History,v 1.31 2003/06/18 09:37:04 gcosmo Exp $ +$Id: History,v 1.41 2003/11/28 12:29:59 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,43 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +28-11-03 V.Ivanchenko (testem3-V05-02-08) + +27-11-03 V.Ivanchenko (testem3-V05-02-07) +- Fix memory corruption in the test + +25-11-03 V.Ivanchenko (testem3-V05-02-06) +- Fix geometry (G.Cosmo) + +13-11-03 John Allison +- Removed OPACS from Vis Manager. + +03-11-03 mma (testem3-V05-02-05) +- add an estimation of the mean energy leaving each absorber + +24-10-03 mma (testem3-V05-02-04) +- PhysListEmStandard: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +06-10-03 mma (testem3-V05-02-03) +- Complete migration to model EM physics +- Class EmModel renamed G4v52. + +25-09-03 mma (testem3-V05-02-02) +- forgotten to update GNUmakefile for G4ANALYSIS_USE + +23-09-03 mma (testem3-V03-02-01) +- update exoNN.mac +- comment dawnfile in vis.mac + +22-09-03 mma (testem3-V05-02-00) +- suppression of Em3 in all class names. +- materials: Silicium->Silicon. +- command setHisto : unit must be given. +- suppression of hits collection. +- replace G4NOHIST by G4ANALYSIS_USE +- most macro updated and renamed according the authors of experimental results. +- adapt geant3 + 18-06-03 G.Cosmo (testem3-V05-01-03) - Em3RunAction.cc: removed usage of G4USE_STD_NAMESPACE after migration from G4std. diff --git a/examples/extended/electromagnetic/TestEm3/README b/examples/extended/electromagnetic/TestEm3/README index d486798e2c..eac5a70f29 100644 --- a/examples/extended/electromagnetic/TestEm3/README +++ b/examples/extended/electromagnetic/TestEm3/README @@ -1,4 +1,4 @@ -$Id: README,v 1.10 2003/03/10 18:16:46 maire Exp $ +$Id: README,v 1.11 2003/09/22 14:15:05 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -58,27 +58,8 @@ $Id: README,v 1.10 2003/03/10 18:16:46 maire Exp $ PrimaryGeneratorMessenger class. A RUN is a set of events. - - 4- DETECTOR RESPONSE - - A HIT is a record, event per event and volume per volume, of all the - informations needed to simulate and analyse the detector response. - - In this example a CalorHit is defined as a set of 2*N informations per - layer : - - the total energy deposit in the absorber[i], - - the total tracklength of all charged particles in the absorber[i], - - Therefore all the absorbers are declared 'sensitive detector' (SD), - which means they can contribute to the hit. - - At the end of a run, from the CalorHitsCollection, one can study the - calorimeter performances such as : - - shower profile, - - calorimeter resolution, - - pi/e ratio ... - 5- VISUALIZATION + 4- VISUALIZATION The Visualization Manager is set in the main(). The initialisation of the drawing is done via the commands @@ -92,7 +73,7 @@ $Id: README,v 1.10 2003/03/10 18:16:46 maire Exp $ Optionaly one can choose to draw all particles, only the charged one, or none. This command is defined in EventActionMessenger class. - 6- PHYSICS DEMO + 5- PHYSICS DEMO The particle's type and the physic processes which will be available in this example are set in PhysicsList class. @@ -109,7 +90,7 @@ $Id: README,v 1.10 2003/03/10 18:16:46 maire Exp $ via G4UserLimit class and the command /tracking/stepMax (see DetectorConstruction and DetectorMessenger classes) - 7- HOW TO START ? + 6- HOW TO START ? - compile and link to generate an executable % cd TestEm3 @@ -126,18 +107,21 @@ $Id: README,v 1.10 2003/03/10 18:16:46 maire Exp $ .... Idle> exit - 8- Histograms + 7- HISTOGRAMS Testem3 produces histograms which are saved as testem3.paw : - histo 1 : energy deposit in absorber 0 (edep/Ebeam) - histo 2 : energy deposit in absorber 1 (edep/Ebeam) + histo 1 : energy deposit in absorber 0 + histo 2 : energy deposit in absorber 1 ...etc........... One can control the binning of the histo with the command: - /run/setHisto idAbsor nbin vmin vmax + /testem/run/setHisto idAbsor nbin Emin Emax unit ...etc........... + + where unit is the desired energy unit for that histo (see TestEm3.in). - Note that histograms are disabled via the flag G4NOHIST in the GNUmakefile. + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. 8- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.cc b/examples/extended/electromagnetic/TestEm3/TestEm3.cc index ef4114e0d9..4e43828991 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.cc +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm3.cc,v 1.7 2001/10/22 10:58:40 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TestEm3.cc,v 1.10 2003/11/28 12:30:00 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,16 +34,16 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "Em3VisManager.hh" +#include "VisManager.hh" #endif -#include "Em3DetectorConstruction.hh" -#include "Em3PhysicsList.hh" -#include "Em3PrimaryGeneratorAction.hh" -#include "Em3RunAction.hh" -#include "Em3EventAction.hh" -#include "Em3SteppingAction.hh" -#include "Em3SteppingVerbose.hh" +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "PrimaryGeneratorAction.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "SteppingAction.hh" +#include "SteppingVerbose.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -51,32 +51,34 @@ int main(int argc,char** argv) { //choose the Random engine HepRandom::setTheEngine(new RanecuEngine); - + //my Verbose output class - G4VSteppingVerbose::SetInstance(new Em3SteppingVerbose); - + G4VSteppingVerbose::SetInstance(new SteppingVerbose); + // Construct the default run manager G4RunManager * runManager = new G4RunManager; // set mandatory initialization classes - Em3DetectorConstruction* detector = new Em3DetectorConstruction; + DetectorConstruction* detector = new DetectorConstruction; runManager->SetUserInitialization(detector); - runManager->SetUserInitialization(new Em3PhysicsList); + runManager->SetUserInitialization(new PhysicsList); // - Em3PrimaryGeneratorAction* KinAct = new Em3PrimaryGeneratorAction(detector); - runManager->SetUserAction(KinAct); + runManager->SetUserAction(new PrimaryGeneratorAction(detector)); #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new Em3VisManager; + G4VisManager* visManager = new VisManager; visManager->Initialize(); #endif // set user action classes - Em3RunAction* RunAct = new Em3RunAction(detector); - runManager->SetUserAction(RunAct); - runManager->SetUserAction(new Em3EventAction(RunAct,KinAct,detector)); - runManager->SetUserAction(new Em3SteppingAction); + RunAction* runAct = new RunAction(detector); + EventAction* evtAct = new EventAction(detector,runAct); + SteppingAction* stpAct = new SteppingAction(detector,evtAct); + + runManager->SetUserAction(runAct); + runManager->SetUserAction(evtAct); + runManager->SetUserAction(stpAct); // get the pointer to the User Interface manager G4UImanager* UI = G4UImanager::GetUIpointer(); diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.in b/examples/extended/electromagnetic/TestEm3/TestEm3.in index 90f2490447..e28227cc88 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.in +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.in @@ -1,4 +1,4 @@ -# $Id: TestEm3.in,v 1.6 2003/02/20 15:52:00 vnivanch Exp $ +# $Id: TestEm3.in,v 1.9 2003/11/27 18:20:16 vnivanch Exp $ # # Macro file for "exampleN03.cc" # (can be run in batch, without graphic) @@ -7,16 +7,19 @@ # /control/verbose 2 /run/verbose 2 +/tracking/verbose 0 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +##/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # /run/initialize # -/testem/event/printModulo 50 -# /gun/particle e- /gun/energy 1 GeV +# +/testem/run/setHisto 0 100 700. 1000. MeV +/testem/run/setHisto 1 100 0. 300. MeV +# +/testem/event/printModulo 50 +# /run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.model.in b/examples/extended/electromagnetic/TestEm3/TestEm3.model.in deleted file mode 100644 index 9e1cb1837b..0000000000 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.model.in +++ /dev/null @@ -1,22 +0,0 @@ -# $Id: TestEm3.model.in,v 1.1 2003/02/20 15:52:00 vnivanch Exp $ -# -# Macro file for "exampleN03.cc" -# (can be run in batch, without graphic) -# -# Lead-liquidArgon 50 layers; electron 1 GeV -# -/control/verbose 2 -/run/verbose 2 -# -# select EM PhysicsList -# -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard -# -/run/initialize -# -/testem/event/printModulo 50 -# -/gun/particle e- -/gun/energy 1 GeV -/run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.model.out b/examples/extended/electromagnetic/TestEm3/TestEm3.model.out deleted file mode 100644 index 1ba678c966..0000000000 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.model.out +++ /dev/null @@ -1,526 +0,0 @@ -********************************************** - Geant4 version $Name: geant4-05-02 $ - (13-Dec-2002) - Copyright : Geant4 Collaboration -********************************************** -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) - G4HepRepFile (HepRepFile) - G4HepRep (HepRepXML) - RayTracer (RayTracer) - VRML1FILE (VRML1FILE) - VRML2FILE (VRML2FILE) -/run/verbose 2 -# -# select EM PhysicsList -# -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard -# -/run/initialize -userDetector->Construct() start. - -***** Table : Nb of materials = 21 ***** - - Material: liquidH2 density: 70.800 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.905 m - ---> Element: liquidH2 Z = 1.0 N = 1.0 A = 1.01 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: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Iron density: 7.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: Copper density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.436 cm - ---> Element: Copper Z = 29.0 N = 63.5 A = 63.55 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: Tungsten Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: 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: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.166 mm - ---> Element: Uranium Z = 92.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.084 cm - ---> Element: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.19 % Abundance 66.67 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.81 % Abundance 33.33 % - - Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.542 cm - ---> Element: CarbonC Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.47 % Abundance 47.37 % - ---> Element: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.53 % Abundance 52.63 % - - Material: Silicium density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm - ---> Element: SiliconSi Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: quartz density: 2.200 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 12.295 cm - ---> Element: SiliconSi Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 46.75 % Abundance 33.33 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 53.25 % Abundance 66.67 % - - Material: NemaG10 density: 1.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.732 cm - ---> Element: SiliconSi Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 28.33 % Abundance 11.11 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 32.28 % Abundance 22.22 % - ---> Element: CarbonC Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 36.34 % Abundance 33.33 % - ---> Element: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 3.05 % Abundance 33.33 % - - Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m - ---> Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - - Material: Air20 density: 1.205 mg/cm3 temperature: 293.00 K pressure: 1.00 atm RadLength: 305.277 m - ---> Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - - Material: Aerogel density: 200.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.493 m - ---> Element: SiliconSi Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 29.22 % Abundance 11.12 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 66.50 % Abundance 44.42 % - ---> Element: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.19 % Abundance 44.37 % - ---> Element: CarbonC Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.10 % Abundance 0.09 % - - Material: CarbonicGas density: 27.000 mg/cm3 temperature: 325.00 K pressure: 50.00 atm RadLength: 13.406 m - ---> Element: CarbonC Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % - - Material: WaterSteam density: 0.300 mg/cm3 temperature: 500.00 K pressure: 2.00 atm RadLength: 1.203 km - ---> Element: HydrogenH Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.19 % Abundance 66.67 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.81 % Abundance 33.33 % - - Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204322175.595 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 - ---> Element: NitrogenN Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: OxygenO Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - - - -------------------------------------------------------------- - ---> The calorimeter is 50 layers of: - Lead : 2.3 mm - liquidArgon : 5.7 mm -------------------------------------------------------------- -physicsList->Construct() start. - -phot: Total cross sections from Sandia parametrisation. -physicsList->setCut() start. -Em3PhysicsList::SetCuts:CutLength : 1 mm - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : No recalculation needed : Yes - Material : liquidH2 - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 1 used in the geometry : No recalculation needed : Yes - Material : Aluminium - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 2 used in the geometry : Yes recalculation needed : Yes - Material : liquidArgon - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 3 used in the geometry : No recalculation needed : Yes - Material : Iron - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 4 used in the geometry : No recalculation needed : Yes - Material : Copper - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 5 used in the geometry : No recalculation needed : Yes - Material : Tungsten - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 6 used in the geometry : No recalculation needed : Yes - Material : Gold - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 7 used in the geometry : Yes recalculation needed : Yes - Material : Lead - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 8 used in the geometry : No recalculation needed : Yes - Material : Uranium - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 9 used in the geometry : No recalculation needed : Yes - Material : Water - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 10 used in the geometry : No recalculation needed : Yes - Material : Scintillator - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 11 used in the geometry : No recalculation needed : Yes - Material : Silicium - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 12 used in the geometry : No recalculation needed : Yes - Material : quartz - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 13 used in the geometry : No recalculation needed : Yes - Material : NemaG10 - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 14 used in the geometry : No recalculation needed : Yes - Material : Air - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 15 used in the geometry : No recalculation needed : Yes - Material : Air20 - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 16 used in the geometry : No recalculation needed : Yes - Material : Aerogel - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 17 used in the geometry : No recalculation needed : Yes - Material : CarbonicGas - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 18 used in the geometry : No recalculation needed : Yes - Material : WaterSteam - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -Index : 19 used in the geometry : Yes recalculation needed : Yes - Material : Galactic - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 20 used in the geometry : No recalculation needed : Yes - Material : Beam - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : is not ready to print - -==================================================================== - - -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 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. - -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. - -eIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -eIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. - -eBrem: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - -annihil: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. - -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. - -hIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. - -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. - -muIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. - -MuBrems: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -MuPairProd: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -muIoni: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. - -MuBrems: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -MuPairProd: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model - -======== Table of production thresholds in range and energy =========== - ------------------------------------------------------------------------ -Region : DefaultRegionForTheWorld ------------------------------------------------------------------------ - gamma e- e+ -Threshold in range 1 mm 1 mm 1 mm - Galactic 990 eV 990 eV 990 eV - Lead 101 keV 1.38 MeV 1.28 MeV - liquidArgon 6.18 keV 343 keV 335 keV -======================================================================= - -# -/testem/event/printModulo 50 -# -/gun/particle e- -/gun/energy 1 GeV -/run/beamOn 100 - -========= Table of registered couples ============================== - -Index : 0 used in the geometry : No recalculation needed : No - Material : liquidH2 - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 107.795 keV e+ 106.476 keV - -Index : 1 used in the geometry : No recalculation needed : No - Material : Aluminium - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 6.88731 keV e- 596.68 keV e+ 568.011 keV - -Index : 2 used in the geometry : Yes recalculation needed : No - Material : liquidArgon - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 6.17835 keV e- 342.891 keV e+ 334.551 keV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 3 used in the geometry : No recalculation needed : No - Material : Iron - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 20.8323 keV e- 1.28002 MeV e+ 1.21851 MeV - -Index : 4 used in the geometry : No recalculation needed : No - Material : Copper - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 24.6072 keV e- 1.39521 MeV e+ 1.31192 MeV - -Index : 5 used in the geometry : No recalculation needed : No - Material : Tungsten - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 105.401 keV e- 2.31122 MeV e+ 2.14666 MeV - -Index : 6 used in the geometry : No recalculation needed : No - Material : Gold - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 111.408 keV e- 2.28294 MeV e+ 2.1204 MeV - -Index : 7 used in the geometry : Yes recalculation needed : No - Material : Lead - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 100.511 keV e- 1.37814 MeV e+ 1.28002 MeV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 8 used in the geometry : No recalculation needed : No - Material : Uranium - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 125.723 keV e- 2.1204 MeV e+ 1.96942 MeV - -Index : 9 used in the geometry : No 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 - -Index : 10 used in the geometry : No recalculation needed : No - Material : Scintillator - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 2.36895 keV e- 355.791 keV e+ 347.138 keV - -Index : 11 used in the geometry : No recalculation needed : No - Material : Silicium - 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 - -Index : 12 used in the geometry : No recalculation needed : No - Material : quartz - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 5.51637 keV e- 534.102 keV e+ 514.737 keV - -Index : 13 used in the geometry : No recalculation needed : No - Material : NemaG10 - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 4.18113 keV e- 466.46 keV e+ 449.547 keV - -Index : 14 used in the geometry : No 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 - -Index : 15 used in the geometry : No recalculation needed : No - Material : Air20 - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - -Index : 16 used in the geometry : No recalculation needed : No - Material : Aerogel - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 1.70631 keV e- 118.951 keV e+ 116.058 keV - -Index : 17 used in the geometry : No recalculation needed : No - Material : CarbonicGas - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 36.4853 keV e+ 36.0389 keV - -Index : 18 used in the geometry : No recalculation needed : No - Material : WaterSteam - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - -Index : 19 used in the geometry : Yes recalculation needed : No - Material : Galactic - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - Region(s) which use this couple : - DefaultRegionForTheWorld - -Index : 20 used in the geometry : No recalculation needed : No - Material : Beam - Range cuts : gamma 1 mm e- 1 mm e+ 1 mm - Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV - -==================================================================== - - -======== Table of production thresholds in range and energy =========== - ------------------------------------------------------------------------ -Region : DefaultRegionForTheWorld ------------------------------------------------------------------------ - gamma e- e+ -Threshold in range 1 mm 1 mm 1 mm - Galactic 990 eV 990 eV 990 eV - Lead 101 keV 1.38 MeV 1.28 MeV - liquidArgon 6.18 keV 343 keV 335 keV -======================================================================= - -### Run 0 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 9876, 54321 ----------------------------------------- -Start closing geometry. -G4GeometryManager::ReportVoxelStats -- Voxel Statistics - - Total memory consumed for geometry optimisation: 1 kByte - Total CPU time elapsed for geometry optimisation: 0 seconds - - Voxelisation: top CPU users: - Percent Total CPU System CPU Memory Volume - ------- ---------- ---------- -------- ---------- - 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.57 1k 1 50 50 0.00 Calorimeter - 8.43 0k 1 3 4 0.00 Layer -Start Run processing. - ----> Begin Of Event: 0 - ----> Begin Of Event: 50 -Run terminated. -Run Summary - Number of events processed : 100 - User=13.89s Real=14.16s Sys=0.02s - -------------------------------------------------------------- - total energy dep total tracklen - - Absorber0 (Lead ) : 810.89 MeV +- 14.27 MeV 56.33 cm +- 1.22 cm - Absorber1 (liquidArgon ) : 178.22 MeV +- 12.57 MeV 88.37 cm +- 6.58 cm - -------------------------------------------------------------- - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1246911469, 1206300897 ----------------------------------------- -Graphics systems deleted. -Visualization Manager deleting... -G4 kernel has come to Quit state. -Deletion of G4 kernel class start. -UserDetectorConstruction deleted. -UserPhysicsList deleted. -UserRunAction deleted. -UserPrimaryGenerator deleted. -G4SDManager deleted. -EventManager deleted. -UImanager deleted. -StateManager deleted. -RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm3/TestEm3.out b/examples/extended/electromagnetic/TestEm3/TestEm3.out index ae7641d4b0..597fe2d374 100644 --- a/examples/extended/electromagnetic/TestEm3/TestEm3.out +++ b/examples/extended/electromagnetic/TestEm3/TestEm3.out @@ -1,100 +1,10 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; G4Material: Mean excitation energy is changed for CsI Iold= 491.166eV; Inew= 553.1 eV; - -***** Table : Nb of materials = 23 ***** - - Material: liquidH2 density: 70.800 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.905 m - ---> Element: liquidH2 Z = 1.0 N = 1.0 A = 1.01 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: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm - ---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Iron density: 7.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: Copper density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.436 cm - ---> Element: Copper Z = 29.0 N = 63.5 A = 63.55 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm - ---> Element: Tungsten Z = 74.0 N = 183.8 A = 183.85 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: 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: Uranium density: 18.950 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.166 mm - ---> Element: Uranium Z = 92.0 N = 238.0 A = 238.03 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: Water H_2O density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.084 cm - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.19 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.81 % Abundance 33.33 % - - Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.542 cm - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.47 % Abundance 47.37 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.53 % Abundance 52.63 % - - Material: Silicium density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm - ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % - - Material: quartz density: 2.200 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 12.295 cm - ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 46.75 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 53.25 % Abundance 66.67 % - - Material: NemaG10 density: 1.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.732 cm - ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 28.33 % Abundance 11.11 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 32.28 % Abundance 22.22 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 36.34 % Abundance 33.33 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 3.05 % Abundance 33.33 % - - Material: CsI density: 4.534 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.850 cm - ---> Element: Cesium Cs Z = 55.0 N = 132.9 A = 132.90 g/mole fractionMass: 51.15 % Abundance 50.00 % - ---> Element: Iodine I Z = 53.0 N = 126.9 A = 126.90 g/mole fractionMass: 48.85 % Abundance 50.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: 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: Air20 density: 1.205 mg/cm3 temperature: 293.00 K pressure: 1.00 atm RadLength: 305.277 m - ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - - Material: Aerogel density: 200.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.493 m - ---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 29.22 % Abundance 11.12 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 66.50 % Abundance 44.42 % - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.19 % Abundance 44.37 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.10 % Abundance 0.09 % - - Material: CarbonicGas density: 27.000 mg/cm3 temperature: 325.00 K pressure: 50.00 atm RadLength: 13.406 m - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % - - Material: WaterSteam density: 0.300 mg/cm3 temperature: 500.00 K pressure: 2.00 atm RadLength: 1.203 km - ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.19 % Abundance 66.67 % - ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.81 % Abundance 33.33 % - - Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204322175.595 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 - ---> 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 % - - Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -110,10 +20,9 @@ Current available graphics systems are: VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) /run/verbose 2 +/tracking/verbose 0 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +##/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # /run/initialize @@ -123,18 +32,36 @@ userDetector->Construct() start. ---> The calorimeter is 50 layers of: Lead: 2.3 mm liquidArgon: 5.7 mm +------------------------------------------------------------- + + Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 204322175.595 pc + ---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 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: 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 % + ------------------------------------------------------------- World is registered to the default region. physicsList->Construct() start. +physicsList->Construct() start. phot: Total cross sections from Sandia parametrisation. physicsList->setCut() start. -Em3PhysicsList::SetCuts:CutLength : 1 mm -# -/testem/event/printModulo 50 +PhysicsList::SetCuts:CutLength : 1 mm # /gun/particle e- /gun/energy 1 GeV +# +/testem/run/setHisto 0 100 700. 1000. MeV +---->SetHisto: Edep in absorber 0 (MeV) ; 100 bins from 700 MeV to 1000MeV +/testem/run/setHisto 1 100 0. 300. MeV +---->SetHisto: Edep in absorber 1 (MeV) ; 100 bins from 0 MeV to 300MeV +# +/testem/event/printModulo 50 +# /run/beamOn 100 compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. @@ -145,54 +72,82 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV 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: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 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: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 : Galactic Lead liquidArgon + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm ========= Table of registered couples ============================== @@ -219,29 +174,29 @@ Index : 2 used in the geometry : Yes recalculation needed : No ==================================================================== +Start closing geometry. +G4GeometryManager::ReportVoxelStats -- Voxel Statistics + + Total memory consumed for geometry optimisation: 1 kByte + Total CPU time elapsed for geometry optimisation: 0 seconds + + Voxelisation: top CPU users: + Percent Total CPU System CPU Memory Volume + ------- ---------- ---------- -------- ---------- + 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.00 Layer ### Run 0 start. --------- Ranecu engine status --------- Initial seed (index) = 0 Current couple of seeds = 9876, 54321 ---------------------------------------- -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 - - Voxelisation: top CPU users: - Percent Total CPU System CPU Memory Volume - ------- ---------- ---------- -------- ---------- - 100.00 0.01 0.01 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.01 Calorimeter - 8.30 0k 1 3 4 0.00 Layer Start Run processing. ---> Begin Of Event: 0 @@ -250,30 +205,29 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100 - User=43.58s Real=54.43s Sys=7.24s + User=103.82s Real=118.72s Sys=6.18s ------------------------------------------------------------- - total energy dep total tracklen + total energy dep total tracklen mean energy leaving per layer - Absorber0 ( Lead) : 811.00 MeV +- 37.53 MeV 56.07 cm +- 2.61 cm - Absorber1 ( liquidArgon) : 174.06 MeV +- 13.45 MeV 86.05 cm +- 6.85 cm + Absorber0 ( Lead) : 810.30 MeV +- 18.33 MeV 56.15 cm +- 1.36 cm 264.31 MeV +- 44.43 MeV + Absorber1 ( liquidArgon) : 177.37 MeV +- 15.49 MeV 87.83 cm +- 7.90 cm 260.64 MeV +- 44.53 MeV ------------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 101412830, 1192091677 + Current couple of seeds = 1185474782, 972042352 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... -G4 kernel has come to Quit state. -Deletion of G4 kernel class start. UserDetectorConstruction deleted. UserPhysicsList deleted. UserRunAction deleted. UserPrimaryGenerator deleted. -G4SDManager 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/TestEm3/exo3q1.mac b/examples/extended/electromagnetic/TestEm3/exo3q1.mac index 726d26fa5f..7f472a75b4 100644 --- a/examples/extended/electromagnetic/TestEm3/exo3q1.mac +++ b/examples/extended/electromagnetic/TestEm3/exo3q1.mac @@ -1,4 +1,4 @@ -# $Id: exo3q1.mac,v 1.4 2003/03/06 18:14:59 maire Exp $ +# $Id: exo3q1.mac,v 1.5 2003/09/23 17:27:31 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,22 +6,15 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 2 cm -/run/initialize -# /testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 1 +/testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Aluminium 10 cm /testem/det/setSizeYZ 10 cm /testem/det/setField 5 tesla -/testem/det/update # -/testem/gun/setDefault +/testem/phys/setCuts 2 cm +# +/run/initialize # /control/execute vis.mac # @@ -30,9 +23,9 @@ /process/inactivate msc /process/inactivate compt /process/inactivate phot -/process/inactivate annihil -# -/testem/tracking/stepMax 1 mm # +/testem/gun/setDefault /gun/particle gamma /gun/energy 200 MeV +# +/testem/tracking/stepMax 1 mm diff --git a/examples/extended/electromagnetic/TestEm3/exo3q2.mac b/examples/extended/electromagnetic/TestEm3/exo3q2.mac index 6558825eed..6ad9a806c6 100644 --- a/examples/extended/electromagnetic/TestEm3/exo3q2.mac +++ b/examples/extended/electromagnetic/TestEm3/exo3q2.mac @@ -1,4 +1,4 @@ -# $Id: exo3q2.mac,v 1.4 2003/03/06 18:15:00 maire Exp $ +# $Id: exo3q2.mac,v 1.5 2003/09/23 17:27:31 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,21 +6,13 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/run/initialize -# /testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 1 +/testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Aluminium 10 cm /testem/det/setSizeYZ 10 cm /testem/det/setField 5 tesla -/testem/det/update # -/testem/gun/setDefault +/run/initialize # /control/execute vis.mac # @@ -33,17 +25,17 @@ # /testem/tracking/stepMax 1 cm # +/testem/gun/setDefault /gun/particle e- /gun/energy 200 MeV # +/testem/tracking/stepMax 1 cm +# /testem/phys/setCuts 1 m -/run/initialize #/run/beamOn # -#/testem/phys/setCuts 70 cm -#/run/initialize +#/testem/phys/setCuts 50 cm #/run/beamOn # #/testem/phys/setCuts 5 mm -#/run/initialize #/run/beamOn diff --git a/examples/extended/electromagnetic/TestEm3/exo3q3.mac b/examples/extended/electromagnetic/TestEm3/exo3q3.mac index 24107078bc..a2b7adb630 100644 --- a/examples/extended/electromagnetic/TestEm3/exo3q3.mac +++ b/examples/extended/electromagnetic/TestEm3/exo3q3.mac @@ -1,4 +1,4 @@ -# $Id: exo3q3.mac,v 1.4 2003/03/06 18:15:00 maire Exp $ +# $Id: exo3q3.mac,v 1.5 2003/09/23 17:27:31 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,21 +6,15 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/run/initialize -# /testem/det/setNbOfLayers 1 /testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Aluminium 10 cm /testem/det/setSizeYZ 10 cm /testem/det/setField 5 tesla -/testem/det/update # -/testem/gun/setDefault +/testem/phys/setCuts 50 cm +# +/run/initialize # /control/execute vis.mac # @@ -29,14 +23,12 @@ /process/inactivate compt /process/inactivate phot # -/testem/phys/setCuts 50 cm -/run/initialize -# -/testem/tracking/stepMax 1 mm -# +/testem/gun/setDefault /gun/particle gamma /gun/energy 200 MeV # +/testem/tracking/stepMax 1 mm +# #/run/beamOn 1 # #/testem/det/setAbsor 0 Aluminium 20 cm diff --git a/examples/extended/electromagnetic/TestEm3/exo4q1.mac b/examples/extended/electromagnetic/TestEm3/exo4q1.mac index fa52c7c090..be41f3869d 100644 --- a/examples/extended/electromagnetic/TestEm3/exo4q1.mac +++ b/examples/extended/electromagnetic/TestEm3/exo4q1.mac @@ -1,4 +1,4 @@ -# $Id: exo4q1.mac,v 1.4 2003/03/06 18:15:00 maire Exp $ +# $Id: exo4q1.mac,v 1.5 2003/09/23 17:27:32 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,21 +6,14 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 2 cm -/run/initialize -# /testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 1 +/testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Water 10 cm /testem/det/setSizeYZ 10 cm -/testem/det/update # -/testem/gun/setDefault +/testem/phys/setCuts 2 cm +# +/run/initialize # /control/execute vis.mac # @@ -28,13 +21,15 @@ /process/inactivate msc /process/inactivate eBrem # -/testem/gun/rndm 0.9 -# +/testem/gun/setDefault /gun/particle e- /gun/energy 16 MeV +/testem/gun/rndm 0.9 +# #/run/beamOn 20 # #/gun/particle proton #/gun/energy 105 MeV +# #/run/beamOn 20 diff --git a/examples/extended/electromagnetic/TestEm3/exo4q3.mac b/examples/extended/electromagnetic/TestEm3/exo4q3.mac index ff1ae4f18f..f54224aaf2 100644 --- a/examples/extended/electromagnetic/TestEm3/exo4q3.mac +++ b/examples/extended/electromagnetic/TestEm3/exo4q3.mac @@ -1,4 +1,4 @@ -# $Id: exo4q3.mac,v 1.4 2003/03/06 18:15:00 maire Exp $ +# $Id: exo4q3.mac,v 1.5 2003/09/23 17:27:32 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,21 +6,14 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 10 mum -/run/initialize -# /testem/det/setNbOfLayers 1 /testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Aluminium 1 cm /testem/det/setSizeYZ 1 cm -/testem/det/update # -/testem/gun/setDefault +/testem/phys/setCuts 10 mum +# +/run/initialize # /control/execute vis.mac # @@ -28,6 +21,7 @@ /process/inactivate msc /process/inactivate eBrem # +/testem/gun/setDefault /gun/particle e- /gun/energy 200 MeV /gun/position -6. +2.5 0. mm diff --git a/examples/extended/electromagnetic/TestEm3/exo5q1.mac b/examples/extended/electromagnetic/TestEm3/exo5q1.mac index e8deeac4f6..228cb5b62e 100644 --- a/examples/extended/electromagnetic/TestEm3/exo5q1.mac +++ b/examples/extended/electromagnetic/TestEm3/exo5q1.mac @@ -1,4 +1,4 @@ -# $Id: exo5q1.mac,v 1.4 2003/03/06 18:15:00 maire Exp $ +# $Id: exo5q1.mac,v 1.5 2003/09/23 17:27:32 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,26 +6,22 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 5 cm -/run/initialize -# /testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 1 +/testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Aluminium 10 cm /testem/det/setSizeYZ 10 cm -/testem/det/update # -/testem/gun/setDefault +/testem/phys/setCuts 5 cm +# +/run/initialize # /control/execute vis.mac # +/testem/gun/setDefault /gun/particle pi+ /gun/energy 200 MeV /gun/position -6. +2.5 0. cm # +#/run/beamOn 10 +# #/gun/energy 1 GeV diff --git a/examples/extended/electromagnetic/TestEm3/exo5q2.mac b/examples/extended/electromagnetic/TestEm3/exo5q2.mac index ad0b533518..152961df4b 100644 --- a/examples/extended/electromagnetic/TestEm3/exo5q2.mac +++ b/examples/extended/electromagnetic/TestEm3/exo5q2.mac @@ -1,4 +1,4 @@ -# $Id: exo5q2.mac,v 1.4 2003/03/06 18:15:01 maire Exp $ +# $Id: exo5q2.mac,v 1.5 2003/09/23 17:27:32 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,25 +6,24 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 5 cm -/run/initialize -# /testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 1 +/testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Tungsten 50 mum /testem/det/setSizeYZ 70 mum -/testem/det/update # -/testem/gun/setDefault +/testem/phys/setCuts 5 cm +# +/run/initialize # /control/execute vis.mac # +/testem/gun/setDefault /gun/particle e- /gun/energy 600 keV # /testem/tracking/stepMax 1 mum +# +/run/beamOn 1 +# +#/testem/gun/rndm 0.5 +#/run/beamOn 10 diff --git a/examples/extended/electromagnetic/TestEm3/exo6q1.mac b/examples/extended/electromagnetic/TestEm3/exo6q1.mac index 9cd2990a4e..fb1437c616 100644 --- a/examples/extended/electromagnetic/TestEm3/exo6q1.mac +++ b/examples/extended/electromagnetic/TestEm3/exo6q1.mac @@ -1,4 +1,4 @@ -# $Id: exo6q1.mac,v 1.4 2003/03/06 18:15:02 maire Exp $ +# $Id: exo6q1.mac,v 1.5 2003/09/23 17:27:32 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,22 +6,15 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 7 cm -/run/initialize -# /testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 1 +/testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Iron 10 m /testem/det/setSizeYZ 10 m /testem/det/setField 5 tesla -/testem/det/update # -/testem/gun/setDefault +/testem/phys/setCuts 7 cm +# +/run/initialize # /control/execute vis.mac # @@ -31,8 +24,10 @@ /process/inactivate eBrem /process/inactivate msc # +/testem/gun/setDefault /gun/particle mu+ /gun/energy 1 TeV -/gun/position -6. +2.5 0. m +#/gun/position -6. +2.5 0. m # +/run/beamOn 1 diff --git a/examples/extended/electromagnetic/TestEm3/exo6q2.mac b/examples/extended/electromagnetic/TestEm3/exo6q2.mac index 98ec7513fe..50ffbaf8f9 100644 --- a/examples/extended/electromagnetic/TestEm3/exo6q2.mac +++ b/examples/extended/electromagnetic/TestEm3/exo6q2.mac @@ -1,4 +1,4 @@ -# $Id: exo6q2.mac,v 1.4 2003/03/06 18:15:03 maire Exp $ +# $Id: exo6q2.mac,v 1.5 2003/09/23 17:27:32 maire Exp $ # # Macro file for "TestEm3.cc" # @@ -6,21 +6,14 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 10 cm -/run/initialize -# /testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 1 +/testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Iron 10 m /testem/det/setSizeYZ 10 m -/testem/det/update # -/testem/gun/setDefault +/testem/phys/setCuts 10 cm +# +/run/initialize # /control/execute vis.mac # @@ -28,10 +21,11 @@ /process/inactivate MuIoni /process/inactivate MuPairProd # +/testem/gun/setDefault /gun/particle mu+ /gun/energy 1 TeV # -#/run/beamOn +/run/beamOn # #/process/activate MuPairProd #/run/beamOn diff --git a/examples/extended/electromagnetic/TestEm3/geant3/README b/examples/extended/electromagnetic/TestEm3/geant3/README index 836e455c2d..98d6705070 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/README +++ b/examples/extended/electromagnetic/TestEm3/geant3/README @@ -26,7 +26,7 @@ histo 2 : energy deposit in absorber 2 (edep/Ebeam) ...etc........... - One can control the binning of the histo with the data cards: + One can control the binning of the histograms with the data card: *HISTO id1 nbin vmin vmax *HISTO id2 nbin vmin vmax ...etc........... diff --git a/examples/extended/electromagnetic/TestEm3/geant3/include/histo.inc b/examples/extended/electromagnetic/TestEm3/geant3/include/histo.inc index 304539cb39..ddc39530bf 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/include/histo.inc +++ b/examples/extended/electromagnetic/TestEm3/geant3/include/histo.inc @@ -1,2 +1,5 @@ - - COMMON/HISTO/iexist(MaxAbs),idhist,nbinE,Emin,Emax + COMMON/HISTO2/idhist,nbBins,valmin,valmax,valunit + + PARAMETER (MaxHist = 10) + LOGICAL histo + COMMON/HISTO3/histo(MaxHist),histUnit(MaxHist),binWidth(MaxHist) diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run16.dat b/examples/extended/electromagnetic/TestEm3/geant3/lockwood.dat similarity index 77% rename from examples/extended/electromagnetic/TestEm3/geant3/run16.dat rename to examples/extended/electromagnetic/TestEm3/geant3/lockwood.dat index c6fe2f8cbf..f34fe9c9c9 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/run16.dat +++ b/examples/extended/electromagnetic/TestEm3/geant3/lockwood.dat @@ -2,22 +2,26 @@ LIST C C Al-Au-Al 1 layer C +C G.L.Lockwood et al. SAND79-0414 (1980) +C CALOR 3 (nbAbs) 1 (nbLay) 1050.e-4 (calorYZ) 0. (field) MATE 6 (Al) 15 (Au) 6 (Al) THICK 170.e-4 (cm) 23.e-4 (cm) 850.e-4 (cm) C -KINE 3 (Itype) 1.e-3 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) - 0.9 (rbeam) +AUTO 0 +LOSS 1 +HADR 0 +ABAN 0 C CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -C -AUTO 0 -STEPMX 5.e-4 (cm) -ABAN 0 -LOSS 1 -HADR 0 -C -SWIT 2 (draw) 0 (save) +C +KINE 3 (Itype) 1.e-3 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) + 0.8 (rbeam) +C +SWIT 2 (draw) +STEPMX 5.e-4 (cm) +C DEBUG 10 5 1000 TRIG 10 +END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run01.dat b/examples/extended/electromagnetic/TestEm3/geant3/run01.dat index 77b87f5e27..15393598fd 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/run01.dat +++ b/examples/extended/electromagnetic/TestEm3/geant3/run01.dat @@ -3,15 +3,17 @@ C C Lead-liquidArgon 50 layers; electon 1 GeV C CALOR 2 (nbAbs) 50 (nbLay) 40. (calorYZ) 0. (field) -MATE 8 (lead) 5 (larg) +MATE 8 (lead) 5 (lArg) THICK 0.23(cm) 0.57 (cm) -TRIG 1000 -KINE 3 (Itype) 1.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) -DEBUG 10 5 100 -SWIT 0 (draw) 1 (save) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*217.0e-6 (dcute/m) -ABAN 0 LOSS 1 HADR 0 -TIME 2=1. +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*217.0e-6 (dcute/m) +KINE 3 (Itype) 1.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) +*HISTO 1 (idh) 100 (nbins) 700. (Emin) 1000. (Emax) 1.e-3 (MeV) +*HISTO 2 (idh) 100 (nbins) 0. (Emin) 300. (Emax) 1.e-3 (MeV) +SWIT 0 (draw) +DEBUG 10 5 50 +TRIG 200 +END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run02.dat b/examples/extended/electromagnetic/TestEm3/geant3/run02.dat index 2d9aece4c5..4c4daf0099 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/run02.dat +++ b/examples/extended/electromagnetic/TestEm3/geant3/run02.dat @@ -5,13 +5,15 @@ C CALOR 2 (nbAbs) 50 (nbLay) 40. (calorYZ) 0. (field) MATE 11 (W) 10 (Si) THICK 0.20(cm) 0.03 (cm) -TRIG 100 -KINE 3 (Itype) 1.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) -DEBUG 10 5 100 -SWIT 0 (draw) 1 (save) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*120.0e-6 (dcute/m) -ABAN 0 LOSS 1 HADR 0 -TIME 2=1. +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*120.0e-6 (dcute/m) +KINE 3 (Itype) 1.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) +*HISTO 1 (idh) 100 (nbins) 900. (Emin) 1000. (Emax) 1.e-3 (MeV) +*HISTO 2 (idh) 100 (nbins) 0. (Emin) 50. (Emax) 1.e-3 (MeV) +SWIT 0 (draw) +DEBUG 10 5 50 +TRIG 200 +END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run06.dat b/examples/extended/electromagnetic/TestEm3/geant3/run06.dat deleted file mode 100644 index 73ddc1c159..0000000000 --- a/examples/extended/electromagnetic/TestEm3/geant3/run06.dat +++ /dev/null @@ -1,20 +0,0 @@ -LIST -C -C Iron-Silicium 10 layers; electon 2, 4, 6 GeV -C -C SICAPO Collaboration. NIM A345 (244-249) Oct.93 -C -CALOR 4 (nbAbs) 10 (nbLay) 16. (calorYZ) 0. (field) -MATE 7 (Fe) 12 (G10) 10 (Si) 12 (G10) -THICK 3.57 (cm) 0.02 (cm) 0.04 (cm) 0.1 (cm) -TRIG 500 -KINE 3 (Itype) 6.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) -DEBUG 10 5 10 -SWIT 0 (draw) 0 (save) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*541.e-6 (dcute/m) -C CUTS 10.0e-6 (cutgam) 541.e-6 (cutele) -ABAN 0 -LOSS 1 -HADR 0 -TIME 2=1. diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run07.dat b/examples/extended/electromagnetic/TestEm3/geant3/run07.dat index e6b6dfd230..c60f73dedc 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/run07.dat +++ b/examples/extended/electromagnetic/TestEm3/geant3/run07.dat @@ -5,14 +5,14 @@ C CALOR 2 (nbAbs) 2 (nbLay) 1.6 (calorYZ) 0. (field) MATE 5 (larg) 8 (lead) THICK 0.4(cm) 0.4 (cm) -TRIG 100 -KINE 14 (Itype) 0.5 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) -DEBUG 10 5 100 -SWIT 0 (draw) 1 (save) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*455.0e-6 (dcute/m) -ABAN 0 LOSS 1 MULS 0 HADR 0 -TIME 2=1. +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*455.0e-6 (dcute/m) +KINE 14 (Itype) 0.5 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) +SWIT 0 (draw) +DEBUG 10 5 100 +TRIG 1000 +END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run15.dat b/examples/extended/electromagnetic/TestEm3/geant3/run15.dat index 2f1c0a2e49..ed8de1bf63 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/run15.dat +++ b/examples/extended/electromagnetic/TestEm3/geant3/run15.dat @@ -6,15 +6,9 @@ CALOR 2 (nbAbs) 20 (nbLay) 30. (calorYZ) 0. (field) MATE 7 (iron) 14 (Sc) THICK 1.4(cm) 0.3 (cm) C -TRIG 20000 -KINE 5 (Itype) 20. (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) -DEBUG 10 5 1000 -SWIT 0 (draw) 1 (save) -C -ABAN 0 LOSS 1 HADR 0 -TIME 2=1. +ABAN 0 C CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutn/h/mu) C @@ -39,5 +33,11 @@ C 100 cm C CUTPR 1. (tmed) 10.0e+3 (bcute/m) 161.0e+0 (dcute/m) 161.0e+0 (ppcutm) C 2. (tmed) 842.0e-6 (bcute/m) 318.0e-3 (dcute/m) 318.0e-3 (ppcutm) C -*HISTO 1 (idh) 100 (nbin) 0. (Emin/Ebeam) 1.e-1 (Emax/Ebeam) -*HISTO 2 (idh) 100 (nbin) 0. (Emin/Ebeam) 5.e-3 (Emax/Ebeam) +KINE 5 (muon) 20. (GeV) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) +C +*HISTO 1 (idh) 100 (nbin) 0. (Emin) 2. (Emax) 1. (GeV) +*HISTO 2 (idh) 100 (nbin) 0. (Emin) 100. (Emax) 1.e-3 (MeV) +C +SWIT 0 (draw) +DEBUG 10 5 1000 +TRIG 20000 diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run03.dat b/examples/extended/electromagnetic/TestEm3/geant3/sicapo1.dat similarity index 82% rename from examples/extended/electromagnetic/TestEm3/geant3/run03.dat rename to examples/extended/electromagnetic/TestEm3/geant3/sicapo1.dat index 8eae1ce58f..279ddb5627 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/run03.dat +++ b/examples/extended/electromagnetic/TestEm3/geant3/sicapo1.dat @@ -8,14 +8,14 @@ C CALOR 2 (nbAbs) 15 (nbLay) 40. (calorYZ) 0. (field) MATE 7 (Fe) 10 (Si) THICK 2.308(cm) 0.04 (cm) -TRIG 100 -KINE 3 (Itype) 6.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) -DEBUG 10 5 10 -SWIT 0 (draw) 0 (save) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*541.e-6 (dcute/m) -C CUTS 10.0e-6 (cutgam) 541.e-6 (cutele) -ABAN 0 LOSS 1 HADR 0 -TIME 2=1. +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*541.e-6 (dcute/m) +C CUTS 10.0e-6 (cutgam) 541.e-6 (cutele) +KINE 3 (Itype) 6.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) +SWIT 0 (draw) +DEBUG 10 5 10 +TRIG 100 +END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run04.dat b/examples/extended/electromagnetic/TestEm3/geant3/sicapo2.dat similarity index 82% rename from examples/extended/electromagnetic/TestEm3/geant3/run04.dat rename to examples/extended/electromagnetic/TestEm3/geant3/sicapo2.dat index 300e9f64e3..9da66d72e1 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/run04.dat +++ b/examples/extended/electromagnetic/TestEm3/geant3/sicapo2.dat @@ -8,14 +8,14 @@ C CALOR 3 (nbAbs) 15 (nbLay) 40. (calorYZ) 0. (field) MATE 8 (pb) 7 (Fe) 10 (Si) THICK 1.3 (cm) 1.008 (cm) 0.04 (cm) -TRIG 100 -KINE 3 (Itype) 6.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) -DEBUG 10 5 10 -SWIT 0 (draw) 0 (save) -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*541.e-6 (dcute/m) -C CUTS 10.0e-6 (cutgam) 541.e-6 (cutele) -ABAN 0 LOSS 1 HADR 0 -TIME 2=1. +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*541.e-6 (dcute/m) +C CUTS 10.0e-6 (cutgam) 541.e-6 (cutele) +KINE 3 (Itype) 6.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) +SWIT 0 (draw) +DEBUG 10 5 10 +TRIG 100 +END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/run05.dat b/examples/extended/electromagnetic/TestEm3/geant3/sicapo3.dat similarity index 91% rename from examples/extended/electromagnetic/TestEm3/geant3/run05.dat rename to examples/extended/electromagnetic/TestEm3/geant3/sicapo3.dat index 50a3f397fe..d12d4dd8c4 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/run05.dat +++ b/examples/extended/electromagnetic/TestEm3/geant3/sicapo3.dat @@ -7,14 +7,14 @@ C CALOR 4 (nbAbs) 10 (nbLay) 16. (calorYZ) 0. (field) MATE 8 (pb) 12 (G10) 10 (Si) 12 (G10) THICK 1.9 (cm) 0.02 (cm) 0.04 (cm) 0.1 (cm) -TRIG 500 -KINE 3 (Itype) 6.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) -DEBUG 10 5 10 -SWIT 0 (draw) 0 (save) +LOSS 1 +HADR 0 +ABAN 0 CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) 2*10.0e-6 (bcute/m) 2*541.e-6 (dcute/m) C CUTS 10.0e-6 (cutgam) 541.e-6 (cutele) -ABAN 0 -LOSS 1 -HADR 0 -TIME 2=1. +KINE 3 (Itype) 6.0 (Ekine) 1000. (x0) 0. (y0) 0. (z0) 1. (ux) 0. (uy) 0. (uz) +SWIT 0 (draw) +DEBUG 10 5 100 +TRIG 500 +END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/ffuser.F b/examples/extended/electromagnetic/TestEm3/geant3/src/ffuser.F index 28db2a2942..abe29f1568 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/ffuser.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/ffuser.F @@ -2,19 +2,10 @@ SUBROUTINE FFUSER(ikey) * * The routine is called when a *key card is read -* -#include "calor.inc" -#include "histo.inc" * CHARACTER*4 keyw - CHARACTER*25 title * call UHTOC(ikey,4,keyw,4) - if (keyw.eq.'HIST') then - if (iexist(idhist).eq.1) call hdelet(idhist) - title = 'Edep/Ebeam in absorber '//char(ichar('0')+(idhist-1)) - call hbook1(idhist,title,nbinE,Emin,Emax,0.) - iexist(idhist) = 1 - endif + if (keyw.eq.'HIST') call uhinit * END diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm3/geant3/src/guout.F index 51acfa4acb..0d10494b8b 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/guout.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/guout.F @@ -4,26 +4,16 @@ * User routine called at the end of each event * #include "geant321/gcflag.inc" -#include "geant321/gckine.inc" #include "calor.inc" #include "celoss.inc" +#include "histo.inc" * CHARACTER*4 unit -* -* *** drawing -* -#ifndef batch - IF (ISWIT(1).NE.0) THEN - CALL GDHEAD (110110,'TestEm3',0.) - CALL GDSHOW (3) - CALL GDXYZ (0) - END IF -#endif + * * histo: energy deposit per tracking medium do k=1,NbAbsor - ratio = EdepAbs(k)/pkine(1) - call hfill (k,ratio,0.,1.) + if (histo(k)) call hfill (k,EdepAbs(k)/histUnit(k),0.,1.) enddo * * cumul energy deposited and charged track length @@ -43,7 +33,17 @@ enddo print 749 ENDIF - +* +#ifndef batch +* +* *** drawing +* + IF (ISWIT(1).NE.0) THEN + CALL GDHEAD (110110,'TestEm3',0.) + CALL GDSHOW (3) + CALL GDXYZ (0) + END IF +#endif 749 FORMAT(/) 751 FORMAT(1X,'Absorber',I2,' : Energy deposit: ',F8.3,A4, & ' Track length: ' ,F8.3,' cm') diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F index 745128f325..b6108b3cb6 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uginit.F @@ -7,18 +7,17 @@ #include "celoss.inc" #include "histo.inc" #include "geant321/gckine.inc" +#include "geant321/gcbank.inc" * CHARACTER*20 filnam * * *** Define the GEANT parameters - CALL GINIT - -* *** read data cards - PRINT *, 'G3 > gives the filename of the data cards to be read:' - READ (*,'(A)') filnam - IF (filnam.EQ.' ') filnam = 'run01.dat' - OPEN (unit=5,file=filnam,status='unknown',form='formatted') - + CALL GINIT +* +* *** default values + do ih = 1,MaxHist + histo(ih) = .false. + enddo * * *** Calor definition CALL FFKEY('CALOR',NbAbsor,4,'MIXED') @@ -27,16 +26,25 @@ * *** production cuts (bcute, dcute and ppcutm) for each absorber CALL FFKEY('CUTPR',prodcut(1) ,4*MaxAbs,'REAL') * *** histograms - CALL FFKEY('HISTO',idhist,4,'MIXED') + CALL FFKEY('HISTO',idhist,5,'MIXED') * *** max allowed step size - CALL FFKEY('STEPMX',stepmax,1,'REAL') -* + CALL FFKEY('STEPMX',stepmax,1,'REAL') +* * *** read data cards + PRINT *, 'G3 > gives the filename of the data cards to be read:' + READ (*,'(A)') filnam + IF (filnam.EQ.' ') filnam = 'run01.dat' + OPEN (unit=5,file=filnam,status='unknown',form='formatted') +* CALL GFFGO * CALL GZINIT CALL GPART - CALL GPIONS + CALL GPIONS +* +* *** overwrite ITRTYP for ion C12 + JPA = LQ(JPART-67) + Q(JPA+6) = 8.0 * CALL GDINIT * @@ -49,8 +57,6 @@ CALL GPRINT('MATE',0) CALL GPRINT('TMED',0) CALL GPRINT('VOLU',0) -* - CALL UHINIT * * *** some initialisation do k=1,MaxAbs diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F index 28481de19c..0a5e4fe9d3 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uglast.F @@ -2,8 +2,8 @@ SUBROUTINE UGLAST * * Termination routine to print histograms and statistics -* -#include "geant321/gcflag.inc" +* +#include "geant321/gcflag.inc" #include "geant321/gctrak.inc" #include "calor.inc" #include "celoss.inc" @@ -35,10 +35,9 @@ * *** close HIGZ CALL HPLEND * -* *** Save ntuple - IF (ISWIT(2).EQ.1) THEN - CALL HRPUT(0,'testem3.paw','N') - ENDIF +* *** Save histo + CALL HRPUT(0,'testem3.paw','N') + * * * *** formats diff --git a/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F index f2eba6e445..4247ca1080 100644 --- a/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F +++ b/examples/extended/electromagnetic/TestEm3/geant3/src/uhinit.F @@ -3,18 +3,19 @@ * * To book the user's histograms * -#include "calor.inc" #include "histo.inc" * character*25 title * -* *** complete the booking of histograms - do k=1,NbAbsor - if (iexist(k).eq.0) then - title = 'Edep/Ebeam in absorber '//char(ichar('0')+(k-1)) - call hbook1(k,title,100, 0.,1.,0.) - iexist(k) = 1 - endif - enddo + if (histo(idhist)) call hdelet(idhist) +* + title = 'Edep in absorber '//char(ichar('0')+(idhist-1)) +* + call hbook1(idhist,title,nbBins,valmin,valmax,0.) +* + histo (idhist) = .true. + binWidth(idhist) = (valmax-valmin)/nbBins + if (valunit.le.0.) valunit = 1. + histUnit(idhist) = valunit * END diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh similarity index 63% rename from examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh rename to examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh index f778da5b13..95bf685161 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/DetectorConstruction.hh @@ -21,16 +21,15 @@ // ******************************************************************** // // -// $Id: Em3DetectorConstruction.hh,v 1.5 2001/10/22 10:58:47 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.hh,v 1.1 2003/09/22 14:06:39 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3DetectorConstruction_h -#define Em3DetectorConstruction_h 1 +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh" #include "globals.hh" @@ -42,28 +41,28 @@ class G4Material; class G4UniformMagField; class G4UserLimits; -class Em3DetectorMessenger; -class Em3CalorimeterSD; +class DetectorMessenger; const G4int MaxAbsor = 10; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3DetectorConstruction : public G4VUserDetectorConstruction +class DetectorConstruction : public G4VUserDetectorConstruction { public: - Em3DetectorConstruction(); - ~Em3DetectorConstruction(); + DetectorConstruction(); + ~DetectorConstruction(); public: void SetNbOfAbsor (G4int); void SetAbsorMaterial (G4int,G4String); - void SetAbsorThickness(G4int,G4double); - - void SetCalorSizeYZ(G4double); - void SetNbOfLayers (G4int); + void SetAbsorThickness(G4int,G4double); + + void SetWorldMaterial (G4String); + void SetCalorSizeYZ (G4double); + void SetNbOfLayers (G4int); void SetMagField (G4double); void SetMaxStepSize(G4double); @@ -107,27 +106,26 @@ class Em3DetectorConstruction : public G4VUserDetectorConstruction G4double WorldSizeYZ; G4double WorldSizeX; - G4Box* solidWorld; //pointer to the solid World - G4LogicalVolume* logicWorld; //pointer to the logical World - G4VPhysicalVolume* physiWorld; //pointer to the physical World + G4Box* solidWorld; + G4LogicalVolume* logicWorld; + G4VPhysicalVolume* physiWorld; - G4Box* solidCalor; //pointer to the solid Calor - G4LogicalVolume* logicCalor; //pointer to the logical Calor - G4VPhysicalVolume* physiCalor; //pointer to the physical Calor + G4Box* solidCalor; + G4LogicalVolume* logicCalor; + G4VPhysicalVolume* physiCalor; - G4Box* solidLayer; //pointer to the solid Layer - G4LogicalVolume* logicLayer; //pointer to the logical Layer - G4VPhysicalVolume* physiLayer; //pointer to the physical Layer + G4Box* solidLayer; + G4LogicalVolume* logicLayer; + G4VPhysicalVolume* physiLayer; - G4Box* solidAbsor[MaxAbsor]; //pointer to solid Absorbers - G4LogicalVolume* logicAbsor[MaxAbsor]; //pointer to logical Absorbers - G4VPhysicalVolume* physiAbsor[MaxAbsor]; //pointer to physical Absorbers + G4Box* solidAbsor[MaxAbsor]; + G4LogicalVolume* logicAbsor[MaxAbsor]; + G4VPhysicalVolume* physiAbsor[MaxAbsor]; - G4UniformMagField* magField; //pointer to the magnetic field - G4UserLimits* userLimits; //pointer to the userLimits class + G4UniformMagField* magField; + G4UserLimits* userLimits; - Em3DetectorMessenger* detectorMessenger; //pointer to the Messenger - Em3CalorimeterSD* calorimeterSD; //pointer to the sensitive detector + DetectorMessenger* detectorMessenger; private: @@ -138,18 +136,5 @@ class Em3DetectorConstruction : public G4VUserDetectorConstruction //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline void Em3DetectorConstruction::ComputeCalorParameters() -{ - // Compute derived parameters of the calorimeter - LayerThickness = 0.; - for (G4int iAbs=0; iAbs Em3CalorHitsCollection; - -extern G4Allocator Em3CalorHitAllocator; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline void* Em3CalorHit::operator new(size_t) -{ - void* aHit; - aHit = (void*) Em3CalorHitAllocator.MallocSingle(); - return aHit; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline void Em3CalorHit::operator delete(void* aHit) -{ - Em3CalorHitAllocator.FreeSingle((Em3CalorHit*) aHit); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - - diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.hh deleted file mode 100644 index 2875b146fe..0000000000 --- a/examples/extended/electromagnetic/TestEm3/include/Em3CalorimeterSD.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. * -// ******************************************************************** -// -// -// $Id: Em3CalorimeterSD.hh,v 1.4 2001/10/22 10:58:47 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Em3CalorimeterSD_h -#define Em3CalorimeterSD_h 1 - -#include "G4VSensitiveDetector.hh" -#include "globals.hh" - -class Em3DetectorConstruction; -class G4HCofThisEvent; -class G4Step; -#include "Em3CalorHit.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em3CalorimeterSD : public G4VSensitiveDetector -{ - public: - - Em3CalorimeterSD(G4String, Em3DetectorConstruction* ); - ~Em3CalorimeterSD(); - - void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step*,G4TouchableHistory*); - void EndOfEvent(G4HCofThisEvent*); - void clear(); - void DrawAll(); - void PrintAll(); - - private: - - Em3CalorHitsCollection* CalCollection; - Em3DetectorConstruction* Detector; - G4int* HitID; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PhysListEmStandard.hh deleted file mode 100644 index 0539d0059e..0000000000 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysListEmStandard.hh +++ /dev/null @@ -1,64 +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: Em3PhysListEmStandard.hh,v 1.1 2003/02/26 16:12:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Em3PhysListEmStandard_h -#define Em3PhysListEmStandard_h 1 - -#include "G4VPhysicsConstructor.hh" -#include "globals.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em3PhysListEmStandard : public G4VPhysicsConstructor -{ - public: - Em3PhysListEmStandard(const G4String& name = "standard"); - virtual ~Em3PhysListEmStandard(); - - 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(); -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - - - - - - - - diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm3/include/Em3PhysListGeneral.hh deleted file mode 100644 index 578955462c..0000000000 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysListGeneral.hh +++ /dev/null @@ -1,66 +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: Em3PhysListGeneral.hh,v 1.1 2003/02/26 16:12:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Em3PhysListGeneral_h -#define Em3PhysListGeneral_h 1 - -#include "G4VPhysicsConstructor.hh" -#include "G4Decay.hh" -#include "globals.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em3PhysListGeneral : public G4VPhysicsConstructor -{ - public: - Em3PhysListGeneral(const G4String& name = "general"); - virtual ~Em3PhysListGeneral(); - - 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(); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - - - - - - - - diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh b/examples/extended/electromagnetic/TestEm3/include/EventAction.hh similarity index 68% rename from examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh rename to examples/extended/electromagnetic/TestEm3/include/EventAction.hh index adce83850e..2809001d37 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3EventAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/EventAction.hh @@ -21,50 +21,54 @@ // ******************************************************************** // // -// $Id: Em3EventAction.hh,v 1.5 2001/10/22 10:58:48 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.hh,v 1.3 2003/11/27 18:20:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3EventAction_h -#define Em3EventAction_h 1 +#ifndef EventAction_h +#define EventAction_h 1 #include "G4UserEventAction.hh" #include "globals.hh" +#include "DetectorConstruction.hh" +#include "G4DataVector.hh" -class Em3RunAction; -class Em3PrimaryGeneratorAction; -class Em3DetectorConstruction; -class Em3EventActionMessenger; +class RunAction; +class EventActionMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3EventAction : public G4UserEventAction +class EventAction : public G4UserEventAction { - public: - - Em3EventAction(Em3RunAction*,Em3PrimaryGeneratorAction*, - Em3DetectorConstruction*); - ~Em3EventAction(); + public: + EventAction(DetectorConstruction*, RunAction*); + ~EventAction(); void BeginOfEventAction(const G4Event*); void EndOfEventAction(const G4Event*); void SetDrawFlag (G4String val) {drawFlag = val;}; void SetPrintModulo(G4int val) {printModulo = val;}; + + void SumEnergy(G4int k, G4double de, G4double dl) + {energyDeposit[k] += de; trackLengthCh[k] += dl;}; + + void SumEnLeaving(G4int k, G4double En) {energyLeaving[k] += En;}; - private: - - Em3RunAction* Em3Run; - Em3PrimaryGeneratorAction* Em3Kin; - Em3DetectorConstruction* Detector; - G4int calorimeterCollID; // Hits collection ID - G4String drawFlag; // draw/print the event - G4int printModulo; - Em3EventActionMessenger* eventMessenger; + private: + DetectorConstruction* detector; + RunAction* runAct; + + G4DataVector energyDeposit; + G4DataVector energyLeaving; + G4DataVector trackLengthCh; + G4String drawFlag; // draw the event + G4int printModulo; + EventActionMessenger* eventMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh rename to examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh index d51fd6f9e3..ee7fa18908 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/EventActionMessenger.hh @@ -21,36 +21,36 @@ // ******************************************************************** // // -// $Id: Em3EventActionMessenger.hh,v 1.4 2001/10/22 10:58:48 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.hh,v 1.1 2003/09/22 14:06:42 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3EventActionMessenger_h -#define Em3EventActionMessenger_h 1 +#ifndef EventActionMessenger_h +#define EventActionMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class Em3EventAction; +class EventAction; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3EventActionMessenger: public G4UImessenger +class EventActionMessenger: public G4UImessenger { public: - Em3EventActionMessenger(Em3EventAction*); - ~Em3EventActionMessenger(); + EventActionMessenger(EventAction*); + ~EventActionMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em3EventAction* eventAction; + EventAction* eventAction; G4UIcmdWithAString* DrawCmd; G4UIcmdWithAnInteger* PrintCmd; }; diff --git a/examples/extended/electromagnetic/TestEm3/include/IonC12.hh b/examples/extended/electromagnetic/TestEm3/include/IonC12.hh index 96651de893..6a8a8f287e 100644 --- a/examples/extended/electromagnetic/TestEm3/include/IonC12.hh +++ b/examples/extended/electromagnetic/TestEm3/include/IonC12.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: IonC12.hh,v 1.1 2003/03/10 18:16:49 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: IonC12.hh,v 1.4 2003/09/22 14:09:00 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Each class inheriting from G4VIon // corresponds to a particle type; one and only one @@ -35,7 +35,6 @@ #define IonC12_h 1 #include "globals.hh" -#include "G4ios.hh" #include "G4VIon.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmModel.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmModel.hh rename to examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh index bfdde14971..6d7eddf6ba 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysListEmModel.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysListEmG4v52.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: Em2PhysListEmModel.hh,v 1.2 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmG4v52.hh,v 1.1 2003/10/06 10:09:23 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2PhysListEmModel_h -#define Em2PhysListEmModel_h 1 +#ifndef PhysListEmG4v52_h +#define PhysListEmG4v52_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2PhysListEmModel : public G4VPhysicsConstructor +class PhysListEmG4v52 : public G4VPhysicsConstructor { public: - Em2PhysListEmModel(const G4String& name = "model"); - virtual ~Em2PhysListEmModel(); + PhysListEmG4v52(const G4String& name = "g4v52"); + ~PhysListEmG4v52(); public: // This method is dummy for physics. - 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(); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListEmStandard.hh new file mode 100644 index 0000000000..39babc8eee --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/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.2 2003/10/06 10:09:23 maire Exp $ +// GEANT4 tag $Name: geant4-06-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/TestEm3/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListGeneral.hh new file mode 100644 index 0000000000..0d61494252 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/include/PhysListGeneral.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: PhysListGeneral.hh,v 1.2 2003/10/06 10:09:23 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListGeneral_h +#define PhysListGeneral_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListGeneral : public G4VPhysicsConstructor +{ + public: + PhysListGeneral(const G4String& name = "general"); + ~PhysListGeneral(); + + 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/Em3PhysListParticles.hh b/examples/extended/electromagnetic/TestEm3/include/PhysListParticles.hh similarity index 83% rename from examples/extended/electromagnetic/TestEm3/include/Em3PhysListParticles.hh rename to examples/extended/electromagnetic/TestEm3/include/PhysListParticles.hh index ce51b0538f..1acf17859a 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysListParticles.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: Em3PhysListParticles.hh,v 1.1 2003/02/26 16:12:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.hh,v 1.2 2003/10/06 10:09:23 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3PhysListParticles_h -#define Em3PhysListParticles_h 1 +#ifndef PhysListParticles_h +#define PhysListParticles_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3PhysListParticles : public G4VPhysicsConstructor +class PhysListParticles : public G4VPhysicsConstructor { public: - Em3PhysListParticles(const G4String& name = "particles"); - virtual ~Em3PhysListParticles(); + PhysListParticles(const G4String& name = "particles"); + ~PhysListParticles(); public: // This method will be invoked in the Construct() method. // each particle type will be instantiated - virtual void ConstructParticle(); + void ConstructParticle(); // This method is dummy. - virtual void ConstructProcess() {}; + void ConstructProcess() {}; }; diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh b/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh similarity index 83% rename from examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh rename to examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh index 6addc505f9..17ec1069dc 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysicsList.hh @@ -21,35 +21,35 @@ // ******************************************************************** // // -// $Id: Em2PhysicsList.hh,v 1.9 2003/03/17 15:30:08 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.hh,v 1.2 2003/10/06 10:09:24 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // -// 14.10.02 (V.Ivanchenko) provide modular list on base of old Em2PhysicsList +// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2PhysicsList_h -#define Em2PhysicsList_h 1 +#ifndef PhysicsList_h +#define PhysicsList_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" -class Em2PhysicsListMessenger; +class PhysicsListMessenger; class G4VPhysicsConstructor; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2PhysicsList: public G4VModularPhysicsList +class PhysicsList: public G4VModularPhysicsList { public: - Em2PhysicsList(); - ~Em2PhysicsList(); + PhysicsList(); + ~PhysicsList(); - virtual void ConstructParticle(); - virtual void ConstructProcess(); + void ConstructParticle(); + void ConstructProcess(); void AddPhysicsList(const G4String& name); void SetCuts(); @@ -67,7 +67,7 @@ class Em2PhysicsList: public G4VModularPhysicsList G4VPhysicsConstructor* particleList; G4String emName; - Em2PhysicsListMessenger* pMessenger; + PhysicsListMessenger* pMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh similarity index 85% rename from examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh rename to examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh index d053477500..c186eaec75 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PhysicsListMessenger.hh @@ -21,38 +21,38 @@ // ******************************************************************** // // -// $Id: Em2PhysicsListMessenger.hh,v 1.5 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.hh,v 1.1 2003/09/22 14:06:43 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2PhysicsListMessenger_h -#define Em2PhysicsListMessenger_h 1 +#ifndef PhysicsListMessenger_h +#define PhysicsListMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class Em2PhysicsList; +class PhysicsList; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithAString; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2PhysicsListMessenger: public G4UImessenger +class PhysicsListMessenger: public G4UImessenger { public: - Em2PhysicsListMessenger(Em2PhysicsList* ); - ~Em2PhysicsListMessenger(); + PhysicsListMessenger(PhysicsList* ); + ~PhysicsListMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em2PhysicsList* pPhysicsList; + PhysicsList* pPhysicsList; G4UIcmdWithADoubleAndUnit* gammaCutCmd; G4UIcmdWithADoubleAndUnit* electCutCmd; diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh similarity index 81% rename from examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh rename to examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh index 21c61b00f8..b70f27ab19 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorAction.hh @@ -21,32 +21,32 @@ // ******************************************************************** // // -// $Id: Em3PrimaryGeneratorAction.hh,v 1.6 2001/10/22 10:58:50 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.hh,v 1.1 2003/09/22 14:06:43 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3PrimaryGeneratorAction_h -#define Em3PrimaryGeneratorAction_h 1 +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" #include "G4ParticleGun.hh" #include "globals.hh" class G4Event; -class Em3DetectorConstruction; -class Em3PrimaryGeneratorMessenger; +class DetectorConstruction; +class PrimaryGeneratorMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - Em3PrimaryGeneratorAction(Em3DetectorConstruction*); - ~Em3PrimaryGeneratorAction(); + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); public: void SetDefaultKinematic(); @@ -56,11 +56,11 @@ class Em3PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction private: G4ParticleGun* particleGun; - Em3DetectorConstruction* Em3Detector; + DetectorConstruction* Detector; G4double rndmBeam; //lateral random beam extension in fraction sizeYZ/2 - Em3PrimaryGeneratorMessenger* gunMessenger; + PrimaryGeneratorMessenger* gunMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh similarity index 82% rename from examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh rename to examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh index a2d093cfc9..72eec06ae7 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/PrimaryGeneratorMessenger.hh @@ -21,36 +21,36 @@ // ******************************************************************** // // -// $Id: Em3PrimaryGeneratorMessenger.hh,v 1.5 2001/10/22 10:58:50 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorMessenger.hh,v 1.1 2003/09/22 14:06:43 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3PrimaryGeneratorMessenger_h -#define Em3PrimaryGeneratorMessenger_h 1 +#ifndef PrimaryGeneratorMessenger_h +#define PrimaryGeneratorMessenger_h 1 #include "G4UImessenger.hh" #include "globals.hh" -class Em3PrimaryGeneratorAction; +class PrimaryGeneratorAction; class G4UIcmdWithoutParameter; class G4UIcmdWithADouble; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3PrimaryGeneratorMessenger: public G4UImessenger +class PrimaryGeneratorMessenger: public G4UImessenger { public: - Em3PrimaryGeneratorMessenger(Em3PrimaryGeneratorAction*); - ~Em3PrimaryGeneratorMessenger(); + PrimaryGeneratorMessenger(PrimaryGeneratorAction*); + ~PrimaryGeneratorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em3PrimaryGeneratorAction* Em3Action; + PrimaryGeneratorAction* Action; G4UIcmdWithoutParameter* DefaultCmd; G4UIcmdWithADouble* RndmCmd; }; diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh b/examples/extended/electromagnetic/TestEm3/include/RunAction.hh similarity index 67% rename from examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh rename to examples/extended/electromagnetic/TestEm3/include/RunAction.hh index df49c7ef07..29f89299ba 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3RunAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/RunAction.hh @@ -21,18 +21,18 @@ // ******************************************************************** // // -// $Id: Em3RunAction.hh,v 1.12 2003/06/03 10:36:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.hh,v 1.2 2003/11/03 16:42:50 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3RunAction_h -#define Em3RunAction_h 1 +#ifndef RunAction_h +#define RunAction_h 1 -#include "Em3DetectorConstruction.hh" +#include "DetectorConstruction.hh" #include "G4UserRunAction.hh" #include "globals.hh" @@ -40,9 +40,9 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class G4Run; -class Em3RunActionMessenger; +class RunActionMessenger; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE namespace AIDA { class ITree; class IHistogramFactory; @@ -50,56 +50,46 @@ namespace AIDA { } #endif -class Em3RunAction : public G4UserRunAction +class RunAction : public G4UserRunAction { public: - Em3RunAction(Em3DetectorConstruction*); - ~Em3RunAction(); + RunAction(DetectorConstruction*); + ~RunAction(); void BeginOfRunAction(const G4Run*); void EndOfRunAction(const G4Run*); - void fillPerEvent(G4int,G4double,G4double); + void fillPerEvent(G4int,G4double,G4double,G4double); -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} + G4double GetHistoUnit(G4int id) {return histoUnit[id];} #endif - void SetHisto (G4int id, G4int nbins, G4double vmin, G4double vmax); + void SetHisto (G4int, G4int, G4double, G4double, G4String); void PrintDedxTables(); - - private: - void bookHisto(); private: - G4double sumEAbs[MaxAbsor], sum2EAbs[MaxAbsor]; - G4double sumLAbs[MaxAbsor], sum2LAbs[MaxAbsor]; + G4double sumEAbs [MaxAbsor], sum2EAbs [MaxAbsor]; + G4double sumLAbs [MaxAbsor], sum2LAbs [MaxAbsor]; + G4double sumEleav[MaxAbsor], sum2Eleav[MaxAbsor]; - Em3DetectorConstruction* Detector; - Em3RunActionMessenger* runMessenger; + DetectorConstruction* Detector; + RunActionMessenger* runMessenger; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::ITree* tree; AIDA::IHistogramFactory* hf; AIDA::IHistogram1D* histo[MaxAbsor]; -#endif + G4double histoUnit[MaxAbsor]; +#endif + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline -void Em3RunAction::fillPerEvent(G4int kAbs, G4double EAbs, G4double LAbs) -{ - //accumulate statistic - // - sumEAbs[kAbs] += EAbs; sum2EAbs[kAbs] += EAbs*EAbs; - sumLAbs[kAbs] += LAbs; sum2LAbs[kAbs] += LAbs*LAbs; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh b/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh similarity index 85% rename from examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh rename to examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh index 8dc60f4767..17ae832194 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3RunActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm3/include/RunActionMessenger.hh @@ -21,35 +21,35 @@ // ******************************************************************** // // -// $Id: Em3RunActionMessenger.hh,v 1.7 2001/11/28 17:54:46 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunActionMessenger.hh,v 1.1 2003/09/22 14:06:43 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3RunActionMessenger_h -#define Em3RunActionMessenger_h 1 +#ifndef RunActionMessenger_h +#define RunActionMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class Em3RunAction; +class RunAction; class G4UIcommand; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3RunActionMessenger: public G4UImessenger +class RunActionMessenger: public G4UImessenger { public: - Em3RunActionMessenger(Em3RunAction*); - ~Em3RunActionMessenger(); + RunActionMessenger(RunAction*); + ~RunActionMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em3RunAction* Em3Run; + RunAction* Run; G4UIcommand* HistoCmd; }; diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh b/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh similarity index 77% rename from examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh rename to examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh index 363dcc5e59..b145fb8513 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm3/include/SteppingAction.hh @@ -21,35 +21,37 @@ // ******************************************************************** // // -// $Id: Em2SteppingAction.hh,v 1.5 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.hh,v 1.2 2003/11/27 18:20:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2SteppingAction_h -#define Em2SteppingAction_h 1 +#ifndef SteppingAction_h +#define SteppingAction_h 1 #include "G4UserSteppingAction.hh" +#include "globals.hh" -class Em2DetectorConstruction; -class Em2RunAction; +class DetectorConstruction; +class EventAction; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2SteppingAction : public G4UserSteppingAction +class SteppingAction : public G4UserSteppingAction { public: - Em2SteppingAction(Em2DetectorConstruction*,Em2RunAction*); - ~Em2SteppingAction(); + SteppingAction(DetectorConstruction*, EventAction*); + virtual ~SteppingAction(); - void UserSteppingAction(const G4Step*); - + virtual void UserSteppingAction(const G4Step*); + + G4double BirkAttenuation(const G4Step*); + private: - Em2DetectorConstruction* Em2Det; - Em2RunAction* Em2Run; + DetectorConstruction* detector; + EventAction* eventAct; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh similarity index 88% rename from examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh rename to examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh index 1759df71f7..960568af1d 100644 --- a/examples/extended/electromagnetic/TestEm3/include/Em3SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm3/include/SteppingVerbose.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3SteppingVerbose.hh,v 1.7 2001/10/22 10:58:52 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.hh,v 1.2 2003/11/27 18:20:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. @@ -31,19 +31,19 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em3SteppingVerbose_h -#define Em3SteppingVerbose_h 1 +#ifndef SteppingVerbose_h +#define SteppingVerbose_h 1 #include "G4SteppingVerbose.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em3SteppingVerbose : public G4SteppingVerbose +class SteppingVerbose : public G4SteppingVerbose { - public: +public: - Em3SteppingVerbose(); - ~Em3SteppingVerbose(); + SteppingVerbose(); + ~SteppingVerbose(); void StepInfo(); void TrackingStarted(); diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4VisManager.hh b/examples/extended/electromagnetic/TestEm3/include/VisManager.hh similarity index 92% rename from examples/extended/electromagnetic/TestEm4/include/Em4VisManager.hh rename to examples/extended/electromagnetic/TestEm3/include/VisManager.hh index 57e65fd30a..2f088acef3 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4VisManager.hh +++ b/examples/extended/electromagnetic/TestEm3/include/VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em4VisManager.hh,v 1.4 2001/10/17 14:04:15 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.hh,v 1.1 2003/09/22 14:06:43 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -44,18 +44,18 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em4VisManager_h -#define Em4VisManager_h 1 +#ifndef VisManager_h +#define VisManager_h 1 #include "G4VisManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em4VisManager: public G4VisManager { +class VisManager: public G4VisManager { public: - Em4VisManager (); + VisManager (); private: diff --git a/examples/extended/electromagnetic/TestEm3/ionC12.mac b/examples/extended/electromagnetic/TestEm3/ionC12.mac index 3e6f11bf25..47b97d621b 100644 --- a/examples/extended/electromagnetic/TestEm3/ionC12.mac +++ b/examples/extended/electromagnetic/TestEm3/ionC12.mac @@ -1,6 +1,6 @@ -# $Id: ionC12.mac,v 1.1 2003/03/10 18:16:46 maire Exp $ +# $Id: ionC12.mac,v 1.3 2003/10/06 10:09:19 maire Exp $ # -# Macro file for "TestEm3.cc" +# Macro file for "TestEm3.cc" # (can be run in batch, without graphic) # # CsI 1 layer; @@ -9,19 +9,18 @@ # # select EM PhysicsList # -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # /testem/phys/setCuts 1 mm -/run/initialize # /testem/det/setNbOfLayers 1 /testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 CsI 1.99 cm /testem/det/setSizeYZ 3 cm -/testem/det/update # /testem/gun/setDefault +/run/initialize # /run/verbose 2 /testem/event/printModulo 1000 @@ -31,4 +30,4 @@ # /testem/run/setHisto 0 100 3.e-3 6.e-3 # -/run/beamOn 20000 +/run/beamOn 2000 diff --git a/examples/extended/electromagnetic/TestEm3/run16.mac b/examples/extended/electromagnetic/TestEm3/lockwood.mac similarity index 78% rename from examples/extended/electromagnetic/TestEm3/run16.mac rename to examples/extended/electromagnetic/TestEm3/lockwood.mac index 00c3a2f674..817b4b5098 100644 --- a/examples/extended/electromagnetic/TestEm3/run16.mac +++ b/examples/extended/electromagnetic/TestEm3/lockwood.mac @@ -1,4 +1,4 @@ -# $Id: run16.mac,v 1.7 2003/03/06 18:16:16 maire Exp $ +# $Id: lockwood.mac,v 1.2 2003/10/06 10:09:19 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -8,32 +8,29 @@ # G.L.Lockwood et al. SAND79-0414 (1980) # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # -/testem/phys/setCuts 1 mum -/run/initialize -# /testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 3 +/testem/det/setNbOfAbsor 3 /testem/det/setAbsor 0 Aluminium 170 mum /testem/det/setAbsor 1 Gold 23 mum /testem/det/setAbsor 2 Aluminium 850 mum /testem/det/setSizeYZ 1050 mum -/testem/det/update +# +/testem/phys/setCuts 1 mum +# +/run/initialize # /testem/gun/setDefault -# -/run/verbose 2 -/testem/event/printModulo 1000 -# /gun/particle e- /gun/energy 1 MeV -# -/testem/tracking/stepMax 5 mum /testem/gun/rndm 0.8 # +/testem/tracking/stepMax 5 mum +# +/testem/event/printModulo 1000 +# /run/beamOn 10 diff --git a/examples/extended/electromagnetic/TestEm3/run01.mac b/examples/extended/electromagnetic/TestEm3/run01.mac index 74722d6fc6..cd9d4045a6 100644 --- a/examples/extended/electromagnetic/TestEm3/run01.mac +++ b/examples/extended/electromagnetic/TestEm3/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.8 2003/03/28 15:16:13 maire Exp $ +# $Id: run01.mac,v 1.10 2003/10/06 10:09:19 maire Exp $ # # Macro file for "exampleN03.cc" # (can be run in batch, without graphic) @@ -6,18 +6,21 @@ # Lead-liquidArgon 50 layers; electron 1 GeV # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # -#/testem/phys/setCuts 0.5 mm -/run/initialize +/testem/phys/setCuts 0.5 mm # -/run/verbose 2 -/testem/event/printModulo 50 +/run/initialize # /gun/particle e- /gun/energy 1 GeV +# +/testem/run/setHisto 0 100 700. 1000. MeV +/testem/run/setHisto 1 100 0. 300. MeV +# +/testem/event/printModulo 50 +# /run/beamOn 200 diff --git a/examples/extended/electromagnetic/TestEm3/run02.mac b/examples/extended/electromagnetic/TestEm3/run02.mac index 92205235a5..389fbab85e 100644 --- a/examples/extended/electromagnetic/TestEm3/run02.mac +++ b/examples/extended/electromagnetic/TestEm3/run02.mac @@ -1,31 +1,32 @@ -# $Id: run02.mac,v 1.7 2003/03/06 18:16:15 maire Exp $ +# $Id: run02.mac,v 1.9 2003/10/06 10:09:20 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) # -# Tungsten-Silicium 50 layers; electron 1 GeV +# Tungsten-Silicon 50 layers; electron 1 GeV # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # -/testem/phys/setCuts 100 mum -/run/initialize -# /testem/det/setNbOfLayers 50 /testem/det/setNbOfAbsor 2 /testem/det/setAbsor 0 Tungsten 2 mm -/testem/det/setAbsor 1 Silicium 0.3 mm -/testem/det/update +/testem/det/setAbsor 1 Silicon 0.3 mm +# +/testem/phys/setCuts 100 mum +# +/run/initialize # /testem/gun/setDefault -# -/run/verbose 2 -/testem/event/printModulo 100 -# /gun/particle e- /gun/energy 1 GeV -/run/beamOn 100 +# +/testem/run/setHisto 0 100 900. 1000. MeV +/testem/run/setHisto 1 100 0. 50. MeV +# +/testem/event/printModulo 50 +# +/run/beamOn 200 diff --git a/examples/extended/electromagnetic/TestEm3/run06.mac b/examples/extended/electromagnetic/TestEm3/run06.mac deleted file mode 100644 index 181a7e2cad..0000000000 --- a/examples/extended/electromagnetic/TestEm3/run06.mac +++ /dev/null @@ -1,38 +0,0 @@ -# $Id: run06.mac,v 1.7 2003/03/06 18:16:16 maire Exp $ -# -# Macro file for "TestEm3.cc" -# (can be run in batch, without graphic) -# -# Fer-Silicium 10 layers; electron 2, 4, 6 GeV -# -# SICAPO Collaboration. NIM A345 (244-249) Oct.93 -# -/control/verbose 2 -# -# select EM PhysicsList -# -#/testem/phys/addPhysics model -/testem/phys/addPhysics standard -# -/testem/phys/setCuts 1 mm -/run/initialize -# -/testem/det/setNbOfLayers 10 -/testem/det/setNbOfAbsor 4 -/testem/det/setAbsor 0 Iron 35.7 mm -/testem/det/setAbsor 1 NemaG10 0.2 mm -/testem/det/setAbsor 2 Silicium 0.4 mm -/testem/det/setAbsor 3 NemaG10 1.0 mm -/testem/det/setSizeYZ 16. cm -/testem/det/update -# -/testem/gun/setDefault -# -/run/verbose 2 -/testem/event/drawTracks none -/testem/event/printModulo 10 -# -/gun/particle e- -/gun/energy 6 GeV -/run/beamOn 500 - diff --git a/examples/extended/electromagnetic/TestEm3/run07.mac b/examples/extended/electromagnetic/TestEm3/run07.mac index 5387441aea..fbec7c3403 100644 --- a/examples/extended/electromagnetic/TestEm3/run07.mac +++ b/examples/extended/electromagnetic/TestEm3/run07.mac @@ -1,4 +1,4 @@ -# $Id: run07.mac,v 1.8 2003/03/06 18:16:16 maire Exp $ +# $Id: run07.mac,v 1.10 2003/10/06 10:09:20 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -6,29 +6,27 @@ # LiquidArgon-Lead 2 layers; proton 500 MeV # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # -/testem/phys/setCuts 1.5 mm -/run/initialize -# /testem/det/setNbOfLayers 2 /testem/det/setNbOfAbsor 2 /testem/det/setAbsor 0 liquidArgon 4 mm /testem/det/setAbsor 1 Lead 4 mm /testem/det/setSizeYZ 16 mm -/testem/det/update +# +/testem/phys/setCuts 1.5 mm +# +/run/initialize # /process/inactivate msc # /testem/gun/setDefault -# -/run/verbose 2 -/testem/event/printModulo 100 -# /gun/particle proton /gun/energy 500 MeV +# +/testem/event/printModulo 100 +# #/run/beamOn 1000 diff --git a/examples/extended/electromagnetic/TestEm3/run08.mac b/examples/extended/electromagnetic/TestEm3/run08.mac index 64a64fa34b..bccff9e215 100644 --- a/examples/extended/electromagnetic/TestEm3/run08.mac +++ b/examples/extended/electromagnetic/TestEm3/run08.mac @@ -1,4 +1,4 @@ -# $Id: run08.mac,v 1.4 2003/03/06 18:16:16 maire Exp $ +# $Id: run08.mac,v 1.6 2003/10/06 10:09:20 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -6,10 +6,9 @@ # Iron 1 layer; proton 500 MeV # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # /testem/phys/setCuts 1 mm @@ -19,16 +18,18 @@ /testem/det/setNbOfAbsor 1 /testem/det/setAbsor 0 Iron 5 cm /testem/det/setSizeYZ 4 cm -/testem/det/update +# +/testem/phys/setCuts 1 mm +# +/run/initialize # /process/inactivate msc -# -/testem/gun/setDefault -# -/run/verbose 2 -/testem/event/printModulo 100 /testem/tracking/stepMax 2 cm # +/testem/gun/setDefault /gun/particle proton /gun/energy 500 MeV +# +/testem/event/printModulo 100 +# /run/beamOn 100 diff --git a/examples/extended/electromagnetic/TestEm3/run09.mac b/examples/extended/electromagnetic/TestEm3/run09.mac deleted file mode 100644 index 3dc0bed9e5..0000000000 --- a/examples/extended/electromagnetic/TestEm3/run09.mac +++ /dev/null @@ -1,26 +0,0 @@ -# $Id: run09.mac,v 1.1 2003/04/11 14:30:33 vnivanch Exp $ -# -# Macro file for "TestEm2.cc" -# (can be run in batch, without graphic) -# -# Gold; electron 1 MeV -# -/control/verbose 2 -# -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard -/testem/phys/setCuts 0.01 mm -/testem/det/setAbsor 1 Water 1.0 mm -/testem/det/setAbsor 0 Gold 10.0 mm -# -/run/initialize -/process/eLoss/integral false -# -/run/verbose 1 -/tracking/verbose 0 -# -/gun/particle e- -/gun/energy 1 MeV -/run/beamOn 1000 - - diff --git a/examples/extended/electromagnetic/TestEm3/run12.draw b/examples/extended/electromagnetic/TestEm3/run12.draw deleted file mode 100644 index 4685c34c50..0000000000 --- a/examples/extended/electromagnetic/TestEm3/run12.draw +++ /dev/null @@ -1,28 +0,0 @@ -# $Id: run12.draw,v 1.5 2003/03/06 18:16:16 maire Exp $ -# -# Macro file for "TestEm3.cc" -# (can be run in batch, without graphic) -# -# Iron-scintillator 1 layer; proton 500 MeV -# (to test the BirkAttenuation() function) -# -/control/verbose 2 -# -/testem/phys/setCuts 1 mm -/run/initialize -# -/testem/det/setNbOfLayers 1 -/testem/det/setNbOfAbsor 2 -/testem/det/setAbsor 0 Iron 1 cm -/testem/det/setAbsor 1 Scintillator 1 cm -/testem/det/setSizeYZ 2 cm -/testem/det/update -# -/testem/gun/setDefault -# -/run/verbose 2 -/tracking/verbose 1 -# -/gun/particle proton -/gun/energy 500 MeV -/run/beamOn 1 diff --git a/examples/extended/electromagnetic/TestEm3/run15.mac b/examples/extended/electromagnetic/TestEm3/run15.mac index 3266a8f820..e89c33879e 100644 --- a/examples/extended/electromagnetic/TestEm3/run15.mac +++ b/examples/extended/electromagnetic/TestEm3/run15.mac @@ -1,4 +1,4 @@ -# $Id: run15.mac,v 1.7 2003/03/06 18:16:16 maire Exp $ +# $Id: run15.mac,v 1.9 2003/10/06 10:09:20 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) @@ -6,31 +6,28 @@ # Iron-scintillator 20 layers; # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # -/testem/phys/setCuts 10 mum -/run/initialize -# /testem/det/setNbOfLayers 20 -/testem/det/setNbOfAbsor 2 +/testem/det/setNbOfAbsor 2 /testem/det/setAbsor 0 Iron 14 mm /testem/det/setAbsor 1 Scintillator 3 mm /testem/det/setSizeYZ 30 cm -/testem/det/update +# +/testem/phys/setCuts 10 mum +# +/run/initialize # /testem/gun/setDefault -# -/run/verbose 2 -/testem/event/printModulo 1000 -# /gun/particle mu+ /gun/energy 20 GeV # -/testem/run/setHisto 0 100 0. 1.e-1 -/testem/run/setHisto 1 100 0. 5.e-3 +/testem/run/setHisto 0 100 0. 2. GeV +/testem/run/setHisto 1 100 0. 100. MeV +# +/testem/event/printModulo 1000 # /run/beamOn 20000 diff --git a/examples/extended/electromagnetic/TestEm3/run03.mac b/examples/extended/electromagnetic/TestEm3/sicapo1.mac similarity index 74% rename from examples/extended/electromagnetic/TestEm3/run03.mac rename to examples/extended/electromagnetic/TestEm3/sicapo1.mac index fd63ab2bde..c0e1689e96 100644 --- a/examples/extended/electromagnetic/TestEm3/run03.mac +++ b/examples/extended/electromagnetic/TestEm3/sicapo1.mac @@ -1,36 +1,34 @@ -# $Id: run03.mac,v 1.7 2003/03/06 18:16:15 maire Exp $ +# $Id: sicapo1.mac,v 1.2 2003/10/06 10:09:21 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) # -# Iron-Silicium 15 layers; electron 6, 8, 10, 12 GeV +# Iron-Silicon 15 layers; electron 6, 8, 10, 12 GeV # # SICAPO Collaboration. CERN-PPE/91-218 Nov.91 # NIM A332 (85-90) Feb.93 # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # -/testem/phys/setCuts 1 mm -/run/initialize -# /testem/det/setNbOfLayers 15 /testem/det/setNbOfAbsor 2 /testem/det/setAbsor 0 Iron 23.08 mm -/testem/det/setAbsor 1 Silicium 0.4 mm +/testem/det/setAbsor 1 Silicon 0.4 mm /testem/det/setSizeYZ 40. cm -/testem/det/update +# +/testem/phys/setCuts 1 mm +# +/run/initialize # /testem/gun/setDefault +/gun/particle e- # -/run/verbose 2 /testem/event/printModulo 10 # -/gun/particle e- /gun/energy 6 GeV /run/beamOn 100 # diff --git a/examples/extended/electromagnetic/TestEm3/run04.mac b/examples/extended/electromagnetic/TestEm3/sicapo2.mac similarity index 74% rename from examples/extended/electromagnetic/TestEm3/run04.mac rename to examples/extended/electromagnetic/TestEm3/sicapo2.mac index 0c65a3d6e0..5e27450d18 100644 --- a/examples/extended/electromagnetic/TestEm3/run04.mac +++ b/examples/extended/electromagnetic/TestEm3/sicapo2.mac @@ -1,37 +1,34 @@ -# $Id: run04.mac,v 1.7 2003/03/06 18:16:16 maire Exp $ +# $Id: sicapo2.mac,v 1.2 2003/10/06 10:09:21 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) # -# Lead-Iron-Silicium 15 layers; electron 6, 8, 10, 12 GeV +# Lead-Iron-Silicon 15 layers; electron 6, 8, 10, 12 GeV # # SICAPO Collaboration. CERN-PPE/91-218 Nov.91 # NIM A332 (85-90) Feb.93 # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # -/testem/phys/setCuts 1 mm -/run/initialize -# /testem/det/setNbOfLayers 15 /testem/det/setNbOfAbsor 3 /testem/det/setAbsor 0 Lead 13.00 mm /testem/det/setAbsor 1 Iron 10.08 mm -/testem/det/setAbsor 2 Silicium 0.4 mm +/testem/det/setAbsor 2 Silicon 0.4 mm /testem/det/setSizeYZ 40. cm -/testem/det/update +# +/testem/phys/setCuts 1 mm +/run/initialize # /testem/gun/setDefault +/gun/particle e- # -/run/verbose 2 /testem/event/printModulo 10 # -/gun/particle e- /gun/energy 6 GeV /run/beamOn 100 # diff --git a/examples/extended/electromagnetic/TestEm3/run05.mac b/examples/extended/electromagnetic/TestEm3/sicapo3.mac similarity index 64% rename from examples/extended/electromagnetic/TestEm3/run05.mac rename to examples/extended/electromagnetic/TestEm3/sicapo3.mac index 36ea1d8f66..bdb8d4870e 100644 --- a/examples/extended/electromagnetic/TestEm3/run05.mac +++ b/examples/extended/electromagnetic/TestEm3/sicapo3.mac @@ -1,37 +1,38 @@ -# $Id: run05.mac,v 1.7 2003/03/06 18:16:16 maire Exp $ +# $Id: sicapo3.mac,v 1.2 2003/10/06 10:09:22 maire Exp $ # # Macro file for "TestEm3.cc" # (can be run in batch, without graphic) # -# Lead-Silicium 10 layers; electron 2, 4, 6 GeV +# Lead-Silicon 10 layers; electron 2, 4, 6 GeV # # SICAPO Collaboration. NIM A345 (244-249) Oct.93 # /control/verbose 2 +/run/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # -/testem/phys/setCuts 1 mm -/run/initialize -# /testem/det/setNbOfLayers 10 /testem/det/setNbOfAbsor 4 +###/testem/det/setAbsor 0 Iron 35.7 mm /testem/det/setAbsor 0 Lead 19.0 mm /testem/det/setAbsor 1 NemaG10 0.2 mm -/testem/det/setAbsor 2 Silicium 0.4 mm +/testem/det/setAbsor 2 Silicon 0.4 mm /testem/det/setAbsor 3 NemaG10 1.0 mm /testem/det/setSizeYZ 16. cm -/testem/det/update +# +/testem/phys/setCuts 1 mm +# +/run/initialize # /testem/gun/setDefault -# -/run/verbose 2 -/testem/event/printModulo 10 -# /gun/particle e- /gun/energy 6 GeV +# +/testem/run/setHisto 2 100 0. 50. MeV +# +/testem/event/printModulo 100 +# /run/beamOn 500 diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc similarity index 66% rename from examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc rename to examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc index 5e983ac04e..c2e466be94 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/DetectorConstruction.cc @@ -21,18 +21,14 @@ // ******************************************************************** // // -// $Id: Em3DetectorConstruction.cc,v 1.17 2003/06/16 16:47:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.cc,v 1.3 2003/11/25 15:19:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3DetectorConstruction.hh" -#include "Em3DetectorMessenger.hh" - -#include "Em3CalorimeterSD.hh" +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" #include "G4Material.hh" #include "G4Box.hh" @@ -40,29 +36,23 @@ #include "G4PVPlacement.hh" #include "G4PVReplica.hh" #include "G4UniformMagField.hh" -#include "G4FieldManager.hh" -#include "G4TransportationManager.hh" -#include "G4SDManager.hh" -#include "G4RunManager.hh" #include "G4UserLimits.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" - #include "G4UnitsTable.hh" -#include "G4ios.hh" +#include //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3DetectorConstruction::Em3DetectorConstruction() +DetectorConstruction::DetectorConstruction() :defaultMaterial(0),solidWorld(0),logicWorld(0),physiWorld(0), solidCalor(0),logicCalor(0),physiCalor(0), solidLayer(0),logicLayer(0),physiLayer(0), - magField(0),calorimeterSD(0) + magField(0) { for (G4int i=0; iAddIsotope(U5, abundance= 90.*perCent); U->AddIsotope(U8, abundance= 10.*perCent); // // define simple materials // - - G4Material* ma; - density = 70.8*mg/cm3; - a = 1.008*g/mole; - ma = new G4Material(name="liquidH2", z=1., a, density); - - density = 2.700*g/cm3; - a = 26.98*g/mole; - ma = new G4Material(name="Aluminium", z=13., a, density); - - density = 1.390*g/cm3; - a = 39.95*g/mole; - ma = new G4Material(name="liquidArgon", z=18., a, density); - G4Material* lAr = ma; - - density = 7.870*g/cm3; - a = 55.85*g/mole; - ma = new G4Material(name="Iron" , z=26., a, density); - - density = 8.960*g/cm3; - a = 63.55*g/mole; - ma = new G4Material(name="Copper" , z=29., a, density); - - density = 19.30*g/cm3; - a = 183.85*g/mole; - ma = new G4Material(name="Tungsten" , z=74., a, density); - - density = 19.32*g/cm3; - a = 196.97*g/mole; - ma = new G4Material(name="Gold" , z=79., a, density); - - density = 11.35*g/cm3; - a = 207.19*g/mole; - ma = new G4Material(name="Lead" , z=82., a, density); - G4Material* Pb = ma; - - density = 18.95*g/cm3; - a = 238.03*g/mole; - ma = new G4Material(name="Uranium" , z=92., a, density); + G4double density; + + new G4Material("liquidH2", z=1., a= 1.008*g/mole, density= 70.8*mg/cm3); + new G4Material("Aluminium", z=13., a= 26.98*g/mole, density= 2.700*g/cm3); + new G4Material("liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*g/cm3); + new G4Material("Titanium", z=22., a= 47.867*g/mole, density= 4.54*g/cm3); + new G4Material("Iron", z=26., a= 55.85*g/mole, density= 7.870*g/cm3); + new G4Material("Copper", z=29., a= 63.55*g/mole, density= 8.960*g/cm3); + new G4Material("Tungsten", z=74., a= 183.85*g/mole, density= 19.30*g/cm3); + new G4Material("Gold", z=79., a= 196.97*g/mole, density= 19.32*g/cm3); + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); + new G4Material("Uranium", z=92., a= 238.03*g/mole, density= 18.95*g/cm3); // // define a material from elements. case 1: chemical molecule // - - density = 1.000*g/cm3; - G4Material* H2O = new G4Material(name="Water", density, ncomponents=2); + G4int natoms; + + G4Material* H2O = + new G4Material("Water", density= 1.000*g/cm3, ncomponents=2); H2O->AddElement(H, natoms=2); H2O->AddElement(O, natoms=1); - H2O->SetChemicalFormula("H_2O"); H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); + H2O->SetChemicalFormula("H_2O"); - density = 1.032*g/cm3; - G4Material* Sci = new G4Material(name="Scintillator", density, ncomponents=2); + G4Material* Sci = + new G4Material("Scintillator", density= 1.032*g/cm3, ncomponents=2); Sci->AddElement(C, natoms=9); Sci->AddElement(H, natoms=10); - density = 2.330*g/cm3; - G4Material* Sili = new G4Material(name="Silicium", density, ncomponents=1); + G4Material* Sili = + new G4Material("Silicon", density= 2.330*g/cm3, ncomponents=1); Sili->AddElement(Si, natoms=1); - density = 2.200*g/cm3; - G4Material* SiO2 = new G4Material(name="quartz", density, ncomponents=2); + G4Material* SiO2 = + new G4Material("quartz", density= 2.200*g/cm3, ncomponents=2); SiO2->AddElement(Si, natoms=1); SiO2->AddElement(O , natoms=2); - density = 1.700*g/cm3; - G4Material* G10 = new G4Material(name="NemaG10", density, ncomponents=4); + G4Material* G10 = + new G4Material("NemaG10", density= 1.700*g/cm3, ncomponents=4); G10->AddElement(Si, natoms=1); G10->AddElement(O , natoms=2); G10->AddElement(C , natoms=3); G10->AddElement(H , natoms=3); - density = 4.534*g/cm3; - G4Material* CsI = new G4Material(name="CsI", density, ncomponents=2); + G4Material* CsI = + new G4Material("CsI", density= 4.534*g/cm3, ncomponents=2); CsI->AddElement(Cs, natoms=1); CsI->AddElement(I , natoms=1); CsI->GetIonisation()->SetMeanExcitationEnergy(553.1*eV); - density = 7.10*g/cm3; - G4Material* BGO = new G4Material(name="BGO", density, ncomponents=3); + G4Material* BGO = + new G4Material("BGO", density= 7.10*g/cm3, ncomponents=3); BGO->AddElement(O , natoms=12); BGO->AddElement(Ge, natoms= 3); BGO->AddElement(Bi, natoms= 4); @@ -248,26 +196,25 @@ void Em3DetectorConstruction::DefineMaterials() // // define a material from elements. case 2: mixture by fractional mass // - - density = 1.290*mg/cm3; - G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); + G4double fractionmass; + + G4Material* Air = + new G4Material("Air", density= 1.290*mg/cm3, ncomponents=2); Air->AddElement(N, fractionmass=0.7); Air->AddElement(O, fractionmass=0.3); - density = 1.205*mg/cm3; - pressure = 1.*atmosphere; - temperature = 293.*kelvin; - G4Material* Air20 = new G4Material(name="Air20" , density, ncomponents=2, - kStateGas,temperature,pressure); + 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); // - // define a material from elements and/or others materials (mixture of mixtures) + // define a material from elements and others materials (mixture of mixtures) // - density = 0.200*g/cm3; - G4Material* Aerog = new G4Material(name="Aerogel", density, ncomponents=3); + G4Material* Aerog = + new G4Material("Aerogel", density= 0.200*g/cm3, ncomponents=3); Aerog->AddMaterial(SiO2, fractionmass=62.5*perCent); Aerog->AddMaterial(H2O , fractionmass=37.4*perCent); Aerog->AddElement (C , fractionmass= 0.1*perCent); @@ -275,20 +222,17 @@ void Em3DetectorConstruction::DefineMaterials() // // examples of gas in non STP conditions // - - density = 27.*mg/cm3; - pressure = 50.*atmosphere; - temperature = 325.*kelvin; - G4Material* CO2 = new G4Material(name="CarbonicGas", density, ncomponents=2, - kStateGas,temperature,pressure); + G4double temperature, pressure; + + G4Material* CO2 = + new G4Material("CarbonicGas", density= 27.*mg/cm3, ncomponents=2, + kStateGas, temperature= 325.*kelvin, pressure= 50.*atmosphere); CO2->AddElement(C, natoms=1); CO2->AddElement(O, natoms=2); - density = 0.3*mg/cm3; - pressure = 2.*atmosphere; - temperature = 500.*kelvin; - G4Material* steam = new G4Material(name="WaterSteam", density, ncomponents=1, - kStateGas,temperature,pressure); + G4Material* steam = + new G4Material("WaterSteam", density= 0.3*mg/cm3, ncomponents=1, + kStateGas, temperature= 500.*kelvin, pressure= 2.*atmosphere); steam->AddMaterial(H2O, fractionmass=1.); // @@ -298,32 +242,40 @@ void Em3DetectorConstruction::DefineMaterials() density = universe_mean_density; //from PhysicalConstants.h pressure = 3.e-18*pascal; temperature = 2.73*kelvin; - G4Material* vacuum = new G4Material(name="Galactic",z=1.,a=1.008*g/mole,density, - kStateGas,temperature,pressure); + new G4Material("Galactic", z=1., a=1.008*g/mole, density, + kStateGas,temperature,pressure); density = 1.e-5*g/cm3; pressure = 2.e-2*bar; temperature = STP_Temperature; //from PhysicalConstants.h - G4Material* beam = new G4Material(name="Beam", density, ncomponents=1, - kStateGas,temperature,pressure); + G4Material* beam = + new G4Material("Beam", density, ncomponents=1, + kStateGas,temperature,pressure); beam->AddMaterial(Air, fractionmass=1.); - - G4cout << *(G4Material::GetMaterialTable()) << G4endl; - - //default materials of the calorimeter - AbsorMaterial[0] = Pb; - AbsorMaterial[1] = lAr; - defaultMaterial = vacuum; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* Em3DetectorConstruction::ConstructCalorimeter() +void DetectorConstruction::ComputeCalorParameters() +{ + // Compute derived parameters of the calorimeter + LayerThickness = 0.; + for (G4int iAbs=0; iAbsOpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); @@ -341,12 +293,11 @@ G4VPhysicalVolume* Em3DetectorConstruction::ConstructCalorimeter() physiWorld = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) - logicWorld, //its logical volume + logicWorld, //its logical volume "World", //its name 0, //its mother volume false, //no boolean operation 0); //copy number - // // Calorimeter // @@ -360,7 +311,7 @@ G4VPhysicalVolume* Em3DetectorConstruction::ConstructCalorimeter() physiCalor = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) - logicCalor, //its logical volume + logicCalor, //its logical volume "Calorimeter", //its name logicWorld, //its mother volume false, //no boolean operation @@ -386,7 +337,7 @@ G4VPhysicalVolume* Em3DetectorConstruction::ConstructCalorimeter() else physiLayer = new G4PVPlacement(0, //no rotation G4ThreeVector(), //at (0,0,0) - logicLayer, //its logical volume + logicLayer, //its logical volume "Layer", //its name logicCalor, //its mother volume false, //no boolean operation @@ -411,45 +362,24 @@ G4VPhysicalVolume* Em3DetectorConstruction::ConstructCalorimeter() xfront += AbsorThickness[k]; physiAbsor[k] = new G4PVPlacement(0, //no rotation G4ThreeVector(xcenter,0.,0.), //its position - logicAbsor[k], //its logical volume + logicAbsor[k], //its logical volume AbsorMaterial[k]->GetName(), //its name logicLayer, //its mother false, //no boulean operat k); //copy number } + + PrintCalorParameters(); - // - // Sensitive Detectors: all Absorbers - // - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!calorimeterSD) - { - calorimeterSD = new Em3CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( calorimeterSD ); - } - for (G4int l=0; lSetSensitiveDetector(calorimeterSD); - - // - // Visualization attributes - // - ////logicWorld->SetVisAttributes (G4VisAttributes::Invisible); - G4VisAttributes* simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - simpleBoxVisAtt->SetVisibility(true); - logicCalor->SetVisAttributes(simpleBoxVisAtt); - - // //always return the physical World // - PrintCalorParameters(); return physiWorld; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3DetectorConstruction::PrintCalorParameters() +void DetectorConstruction::PrintCalorParameters() { G4cout << "\n-------------------------------------------------------------" << "\n ---> The calorimeter is " << NbOfLayers << " layers of:"; @@ -459,11 +389,40 @@ void Em3DetectorConstruction::PrintCalorParameters() << std::setw(6) << G4BestUnit(AbsorThickness[i],"Length"); } G4cout << "\n-------------------------------------------------------------\n"; + + G4cout << "\n" << defaultMaterial << G4endl; + for (G4int j=0; jwarning from SetNbOfLayers: " + << ival << " must be at least 1. Command refused" << G4endl; + return; + } + NbOfLayers = ival; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetNbOfAbsor(G4int ival) { // set the number of Absorbers // @@ -475,9 +434,10 @@ void Em3DetectorConstruction::SetNbOfAbsor(G4int ival) } NbOfAbsor = ival; } + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3DetectorConstruction::SetAbsorMaterial(G4int ival,G4String material) +void DetectorConstruction::SetAbsorMaterial(G4int ival,G4String material) { // search the material by its name // @@ -493,7 +453,7 @@ void Em3DetectorConstruction::SetAbsorMaterial(G4int ival,G4String material) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3DetectorConstruction::SetAbsorThickness(G4int ival,G4double val) +void DetectorConstruction::SetAbsorThickness(G4int ival,G4double val) { // change Absorber thickness // @@ -512,7 +472,7 @@ void Em3DetectorConstruction::SetAbsorThickness(G4int ival,G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3DetectorConstruction::SetCalorSizeYZ(G4double val) +void DetectorConstruction::SetCalorSizeYZ(G4double val) { // change the transverse size // @@ -526,21 +486,10 @@ void Em3DetectorConstruction::SetCalorSizeYZ(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3DetectorConstruction::SetNbOfLayers(G4int ival) -{ - // set the number of Layers - // - if (ival < 1) - { G4cout << "\n --->warning from SetNbOfLayers: " - << ival << " must be at least 1. Command refused" << G4endl; - return; - } - NbOfLayers = ival; -} +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em3DetectorConstruction::SetMagField(G4double fieldValue) +void DetectorConstruction::SetMagField(G4double fieldValue) { //apply a global uniform magnetic field along Z axis // @@ -561,7 +510,7 @@ void Em3DetectorConstruction::SetMagField(G4double fieldValue) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3DetectorConstruction::SetMaxStepSize(G4double val) +void DetectorConstruction::SetMaxStepSize(G4double val) { // set the maximum allowed step size // @@ -575,7 +524,9 @@ void Em3DetectorConstruction::SetMaxStepSize(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3DetectorConstruction::UpdateGeometry() +#include "G4RunManager.hh" + +void DetectorConstruction::UpdateGeometry() { G4RunManager::GetRunManager()->DefineWorldVolume(ConstructCalorimeter()); } diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc similarity index 85% rename from examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc rename to examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc index 0921444fb8..5378f2d77a 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/DetectorMessenger.cc @@ -21,17 +21,17 @@ // ******************************************************************** // // -// $Id: Em3DetectorMessenger.cc,v 1.10 2003/06/16 16:47:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorMessenger.cc,v 1.1 2003/09/22 14:06:16 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3DetectorMessenger.hh" +#include "DetectorMessenger.hh" -#include "Em3DetectorConstruction.hh" +#include "DetectorConstruction.hh" #include "G4UIdirectory.hh" #include "G4UIcommand.hh" #include "G4UIparameter.hh" @@ -41,8 +41,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3DetectorMessenger::Em3DetectorMessenger(Em3DetectorConstruction * Em3Det) -:Em3Detector(Em3Det) +DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) +:Detector(Det) { testemDir = new G4UIdirectory("/testem/"); testemDir->SetGuidance("UI commands specific to this example"); @@ -99,7 +99,7 @@ Em3DetectorMessenger::Em3DetectorMessenger(Em3DetectorConstruction * Em3Det) MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); MagFieldCmd->SetParameterName("Bz",false); MagFieldCmd->SetUnitCategory("Magnetic flux density"); - MagFieldCmd->AvailableForStates(G4State_Idle); + MagFieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/testem/det/update",this); UpdateCmd->SetGuidance("Update calorimeter geometry."); @@ -112,12 +112,12 @@ Em3DetectorMessenger::Em3DetectorMessenger(Em3DetectorConstruction * Em3Det) MaxStepCmd->SetParameterName("Size",false); MaxStepCmd->SetRange("Size>0."); MaxStepCmd->SetUnitCategory("Length"); - MaxStepCmd->AvailableForStates(G4State_Idle); + MaxStepCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3DetectorMessenger::~Em3DetectorMessenger() +DetectorMessenger::~DetectorMessenger() { delete SizeYZCmd; delete NbLayersCmd; @@ -131,16 +131,16 @@ Em3DetectorMessenger::~Em3DetectorMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if( command == SizeYZCmd ) - { Em3Detector->SetCalorSizeYZ(SizeYZCmd->GetNewDoubleValue(newValue));} + { Detector->SetCalorSizeYZ(SizeYZCmd->GetNewDoubleValue(newValue));} if( command == NbLayersCmd ) - { Em3Detector->SetNbOfLayers(NbLayersCmd->GetNewIntValue(newValue));} + { Detector->SetNbOfLayers(NbLayersCmd->GetNewIntValue(newValue));} if( command == NbAbsorCmd ) - { Em3Detector->SetNbOfAbsor(NbAbsorCmd->GetNewIntValue(newValue));} + { Detector->SetNbOfAbsor(NbAbsorCmd->GetNewIntValue(newValue));} if (command == AbsorCmd) { @@ -151,18 +151,18 @@ void Em3DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) is >> num >> mat >> tick >> unts; G4String material=mat, unt=unts; tick *= G4UIcommand::ValueOf(unt); - Em3Detector->SetAbsorMaterial (num,material); - Em3Detector->SetAbsorThickness(num,tick); + Detector->SetAbsorMaterial (num,material); + Detector->SetAbsorThickness(num,tick); } if( command == MagFieldCmd ) - { Em3Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + { Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} if( command == UpdateCmd ) - { Em3Detector->UpdateGeometry();} + { Detector->UpdateGeometry();} if( command == MaxStepCmd ) - { Em3Detector->SetMaxStepSize(MaxStepCmd->GetNewDoubleValue(newValue));} + { Detector->SetMaxStepSize(MaxStepCmd->GetNewDoubleValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc deleted file mode 100644 index 2d177951cd..0000000000 --- a/examples/extended/electromagnetic/TestEm3/src/Em3CalorimeterSD.cc +++ /dev/null @@ -1,135 +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: Em3CalorimeterSD.cc,v 1.5 2003/06/03 10:36:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em3CalorimeterSD.hh" - -#include "Em3CalorHit.hh" -#include "Em3DetectorConstruction.hh" - -#include "G4VPhysicalVolume.hh" -#include "G4Step.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" -#include "G4SDManager.hh" -#include "G4ios.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em3CalorimeterSD::Em3CalorimeterSD(G4String name, - Em3DetectorConstruction* det) -:G4VSensitiveDetector(name),Detector(det) -{ - collectionName.insert("CalCollection"); - HitID = new G4int[500]; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em3CalorimeterSD::~Em3CalorimeterSD() -{ - delete [] HitID; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em3CalorimeterSD::Initialize(G4HCofThisEvent*) -{ - CalCollection = new Em3CalorHitsCollection - (SensitiveDetectorName,collectionName[0]); - for (G4int j=0;jGetNbOfLayers();j++) {HitID[j] = -1;}; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool Em3CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) -{ - G4double edep = aStep->GetTotalEnergyDeposit(); - - G4double stepl = 0.; - if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) - stepl = aStep->GetStepLength(); - - if ((edep==0.)&&(stepl==0.)) return false; - - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - - G4VPhysicalVolume* physVol = theTouchable->GetVolume(); - //theTouchable->MoveUpHistory(); - G4int LayerNumber = 0; - if(Detector->GetNbOfLayers()>1) LayerNumber=theTouchable->GetReplicaNumber(1); - G4int AbsorNo = physVol->GetCopyNo(); - - if (HitID[LayerNumber]==-1) - { - Em3CalorHit* calHit = new Em3CalorHit(); - calHit->AddAbs(AbsorNo,edep,stepl); - HitID[LayerNumber] = CalCollection->insert(calHit) - 1; - if (verboseLevel>0) - G4cout << " New Calorimeter Hit on layer: " << LayerNumber << G4endl; - } - else - { - (*CalCollection)[HitID[LayerNumber]]->AddAbs(AbsorNo,edep,stepl); - if (verboseLevel>0) - G4cout << " Energy added to Layer: " << LayerNumber << G4endl; - } - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em3CalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE) -{ - static G4int HCID = -1; - if(HCID<0) - { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } - HCE->AddHitsCollection(HCID,CalCollection); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em3CalorimeterSD::clear() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em3CalorimeterSD::DrawAll() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em3CalorimeterSD::PrintAll() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc b/examples/extended/electromagnetic/TestEm3/src/EventAction.cc similarity index 59% rename from examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc rename to examples/extended/electromagnetic/TestEm3/src/EventAction.cc index 3ac924b4aa..86e3a71d3c 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3EventAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/EventAction.cc @@ -21,111 +21,85 @@ // ******************************************************************** // // -// $Id: Em3EventAction.cc,v 1.14 2003/05/09 09:28:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.cc,v 1.3 2003/11/27 18:20:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3EventAction.hh" +#include "EventAction.hh" + +#include "RunAction.hh" +#include "EventActionMessenger.hh" -#include "Em3RunAction.hh" -#include "Em3PrimaryGeneratorAction.hh" -#include "Em3DetectorConstruction.hh" -#include "Em3CalorHit.hh" -#include "Em3EventActionMessenger.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" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/IHistogram1D.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3EventAction::Em3EventAction(Em3RunAction* run,Em3PrimaryGeneratorAction* kin, - Em3DetectorConstruction* det) -:Em3Run(run),Em3Kin(kin),Detector(det),calorimeterCollID(-1),drawFlag("none"), - printModulo(10000),eventMessenger(0) +EventAction::EventAction(DetectorConstruction* det, RunAction* run) +:detector(det),runAct(run),drawFlag("none"),printModulo(10000),eventMessenger(0) { - eventMessenger = new Em3EventActionMessenger(this); + eventMessenger = new EventActionMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3EventAction::~Em3EventAction() +EventAction::~EventAction() { delete eventMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3EventAction::BeginOfEventAction(const G4Event* evt) +void EventAction::BeginOfEventAction(const G4Event* evt) { - G4int evtNb = evt->GetEventID(); + G4int evtNb = evt->GetEventID(); - //survey printing - if (evtNb%printModulo == 0) + //survey printing + if (evtNb%printModulo == 0) G4cout << "\n---> Begin Of Event: " << evtNb << G4endl; - - // initialize Hits collection - if (calorimeterCollID==-1) - { - G4SDManager * SDman = G4SDManager::GetSDMpointer(); - calorimeterCollID = SDman->GetCollectionID("CalCollection"); - } + + //initialize EnergyDeposit per event + size_t n = detector->GetNbOfAbsor(); + energyDeposit.resize(n); + energyLeaving.resize(n); + trackLengthCh.resize(n); + for (size_t k=0; kGetHCofThisEvent(); - Em3CalorHitsCollection* CHC = NULL; - G4int NbHits=0; - G4int NbOfAbsor=Detector->GetNbOfAbsor(); - G4double totEAbs, totLAbs; - - if (HCE) CHC = (Em3CalorHitsCollection*)(HCE->GetHC(calorimeterCollID)); - - if (CHC) - { - NbHits = CHC->entries(); - for (G4int k=0; kGetEdepAbs(k); - totLAbs += (*CHC)[j]->GetTrakAbs(k); - } - Em3Run->fillPerEvent(k,totEAbs,totLAbs); - -#ifndef G4NOHIST - //fill histo - // - G4double Ebeam = Em3Kin->GetParticleGun()->GetParticleEnergy(); - Em3Run->GetHisto(k)->fill(totEAbs/Ebeam); + for (G4int k=0; kGetNbOfAbsor(); k++) { + runAct->fillPerEvent(k,energyDeposit[k],trackLengthCh[k], + energyLeaving[k]/(G4double)(detector->GetNbOfLayers())); +#ifdef G4ANALYSIS_USE + if (runAct->GetHisto(k)) { + G4double unit = runAct->GetHistoUnit(k); + runAct->GetHisto(k)->fill(energyDeposit[k]/unit); + } #endif - } - } + } if (G4VVisManager::GetConcreteInstance()) { G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); G4int n_trajectories = 0; if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); - for (G4int i=0; iGetTrajectoryContainer()))[i]); diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc similarity index 89% rename from examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc rename to examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc index acfd1edf08..72da2aa75f 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/EventActionMessenger.cc @@ -21,24 +21,24 @@ // ******************************************************************** // // -// $Id: Em3EventActionMessenger.cc,v 1.7 2002/12/12 11:19:38 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.cc,v 1.1 2003/09/22 14:06:19 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3EventActionMessenger.hh" +#include "EventActionMessenger.hh" -#include "Em3EventAction.hh" +#include "EventAction.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3EventActionMessenger::Em3EventActionMessenger(Em3EventAction* EvAct) +EventActionMessenger::EventActionMessenger(EventAction* EvAct) :eventAction(EvAct) { DrawCmd = new G4UIcmdWithAString("/testem/event/drawTracks",this); @@ -58,7 +58,7 @@ Em3EventActionMessenger::Em3EventActionMessenger(Em3EventAction* EvAct) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3EventActionMessenger::~Em3EventActionMessenger() +EventActionMessenger::~EventActionMessenger() { delete DrawCmd; delete PrintCmd; @@ -66,7 +66,7 @@ Em3EventActionMessenger::~Em3EventActionMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3EventActionMessenger::SetNewValue(G4UIcommand* command, +void EventActionMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if(command == DrawCmd) diff --git a/examples/extended/electromagnetic/TestEm3/src/IonC12.cc b/examples/extended/electromagnetic/TestEm3/src/IonC12.cc index 1c8fba82b4..2f1bb01f94 100644 --- a/examples/extended/electromagnetic/TestEm3/src/IonC12.cc +++ b/examples/extended/electromagnetic/TestEm3/src/IonC12.cc @@ -21,15 +21,12 @@ // ******************************************************************** // // -// $Id: IonC12.cc,v 1.2 2003/06/16 16:47:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: IonC12.cc,v 1.6 2003/09/22 14:09:01 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include -#include - #include "IonC12.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,7 +44,9 @@ IonC12::IonC12( : G4VIon( aName,mass,width,charge,iSpin,iParity, iConjugation,iIsospin,iIsospin3,gParity,pType, lepton,baryon,encoding,stable,lifetime,decaytable ) -{ } +{ + SetParticleSubType("static"); +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PhysListEmModel.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc similarity index 69% rename from examples/extended/electromagnetic/TestEm5/src/Em5PhysListEmModel.cc rename to examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc index c79b344555..2e3e961ab1 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PhysListEmModel.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListEmG4v52.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em5PhysListEmModel.cc,v 1.1 2003/04/30 14:12:39 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmG4v52.cc,v 1.1 2003/10/06 10:09:24 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5PhysListEmModel.hh" +#include "PhysListEmG4v52.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -35,33 +35,33 @@ #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" -#include "G4MultipleScatteringSTD.hh" +#include "G4MultipleScattering52.hh" -#include "G4eIonisationSTD.hh" -#include "G4eBremsstrahlungSTD.hh" +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" #include "G4eplusAnnihilation.hh" -#include "G4MuIonisationSTD.hh" -#include "G4MuBremsstrahlungSTD.hh" -#include "G4MuPairProductionSTD.hh" +#include "G4MuIonisation52.hh" +#include "G4MuBremsstrahlung52.hh" +#include "G4MuPairProduction52.hh" + +#include "G4hIonisation52.hh" -#include "G4hIonisationSTD.hh" -#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysListEmModel::Em5PhysListEmModel(const G4String& name) +PhysListEmG4v52::PhysListEmG4v52(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysListEmModel::~Em5PhysListEmModel() +PhysListEmG4v52::~PhysListEmG4v52() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysListEmModel::ConstructProcess() +void PhysListEmG4v52::ConstructProcess() { // Add EM processes realised on base of prototype of model approach design @@ -79,36 +79,36 @@ void Em5PhysListEmModel::ConstructProcess() } else if (particleName == "e-") { //electron - pmanager->AddProcess(new G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -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 G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { //muon - pmanager->AddProcess(new G4MultipleScatteringSTD,-1, 1,1); - pmanager->AddProcess(new G4MuIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlungSTD, -1,-1,3); - pmanager->AddProcess(new G4MuPairProductionSTD, -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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4ionIonisation, -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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4hIonisationSTD, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc similarity index 84% rename from examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmStandard.cc rename to examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc index daa957255b..6feb7a4fe6 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListEmStandard.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em2PhysListEmStandard.cc,v 1.2 2002/12/16 11:29:23 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmStandard.cc,v 1.3 2003/10/24 12:12:12 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2PhysListEmStandard.hh" +#include "PhysListEmStandard.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -46,21 +46,22 @@ #include "G4MuPairProduction.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysListEmStandard::Em2PhysListEmStandard(const G4String& name) +PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysListEmStandard::~Em2PhysListEmStandard() +PhysListEmStandard::~PhysListEmStandard() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysListEmStandard::ConstructProcess() +void PhysListEmStandard::ConstructProcess() { // Add standard EM Processes @@ -80,13 +81,13 @@ void Em2PhysListEmStandard::ConstructProcess() //electron 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); } else if (particleName == "e+") { //positron 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); } else if( particleName == "mu+" || @@ -94,9 +95,13 @@ void Em2PhysListEmStandard::ConstructProcess() //muon 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); + 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")) { diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListGeneral.cc similarity index 90% rename from examples/extended/electromagnetic/TestEm3/src/Em3PhysListGeneral.cc rename to examples/extended/electromagnetic/TestEm3/src/PhysListGeneral.cc index 0764b7a9f3..b2e7f05dcb 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListGeneral.cc @@ -21,30 +21,31 @@ // ******************************************************************** // // -// $Id: Em3PhysListGeneral.cc,v 1.1 2003/02/26 16:12:37 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListGeneral.cc,v 1.2 2003/10/06 10:09:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3PhysListGeneral.hh" +#include "PhysListGeneral.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" +#include "G4Decay.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysListGeneral::Em3PhysListGeneral(const G4String& name) +PhysListGeneral::PhysListGeneral(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysListGeneral::~Em3PhysListGeneral() +PhysListGeneral::~PhysListGeneral() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysListGeneral::ConstructProcess() +void PhysListGeneral::ConstructProcess() { // Add Decay Process diff --git a/examples/extended/electromagnetic/TestEm3/src/PhysListParticles.cc b/examples/extended/electromagnetic/TestEm3/src/PhysListParticles.cc new file mode 100644 index 0000000000..0b5e1ff040 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm3/src/PhysListParticles.cc @@ -0,0 +1,144 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListParticles.cc,v 1.1 2003/09/22 14:06:20 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListParticles.hh" + +// 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" + +#include "IonC12.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListParticles::PhysListParticles(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListParticles::~PhysListParticles() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListParticles::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(); + IonC12::IonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc b/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc similarity index 76% rename from examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc rename to examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc index fb82e90400..320e7a8d48 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysicsList.cc @@ -25,23 +25,19 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3PhysicsList.hh" -#include "Em3PhysicsListMessenger.hh" +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" + +#include "PhysListParticles.hh" +#include "PhysListGeneral.hh" +#include "PhysListEmStandard.hh" +#include "PhysListEmG4v52.hh" -#include "G4UnitsTable.hh" -#include "Em3PhysListParticles.hh" -#include "Em3PhysListGeneral.hh" -#include "Em3PhysListEmStandard.hh" -#include "Em3PhysListEmModel.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" #include "G4LossTableManager.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysicsList::Em3PhysicsList() : G4VModularPhysicsList() +PhysicsList::PhysicsList() : G4VModularPhysicsList() { G4LossTableManager::Instance(); currentDefaultCut = 1.0*mm; @@ -49,39 +45,39 @@ Em3PhysicsList::Em3PhysicsList() : G4VModularPhysicsList() cutForElectron = currentDefaultCut; cutForPositron = currentDefaultCut; - pMessenger = new Em3PhysicsListMessenger(this); + pMessenger = new PhysicsListMessenger(this); SetVerboseLevel(1); // Particles - particleList = new Em3PhysListParticles("particles"); + particleList = new PhysListParticles("particles"); // General Physics - generalPhysicsList = new Em3PhysListGeneral("general"); + generalPhysicsList = new PhysListGeneral("general"); // EM physics emName = G4String("standard"); - emPhysicsList = new Em3PhysListEmStandard(emName); + emPhysicsList = new PhysListEmStandard(emName); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysicsList::~Em3PhysicsList() +PhysicsList::~PhysicsList() { delete pMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysicsList::ConstructParticle() +void PhysicsList::ConstructParticle() { particleList->ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysicsList::ConstructProcess() +void PhysicsList::ConstructProcess() { AddTransportation(); generalPhysicsList->ConstructProcess(); @@ -90,10 +86,10 @@ void Em3PhysicsList::ConstructProcess() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysicsList::AddPhysicsList(const G4String& name) +void PhysicsList::AddPhysicsList(const G4String& name) { if (verboseLevel>1) { - G4cout << "Em3PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; } if (name == emName) return; @@ -102,17 +98,17 @@ void Em3PhysicsList::AddPhysicsList(const G4String& name) emName = name; delete emPhysicsList; - emPhysicsList = new Em3PhysListEmStandard(name); + emPhysicsList = new PhysListEmStandard(name); - } else if (name == "model") { + } else if (name == "g4v52") { emName = name; delete emPhysicsList; - emPhysicsList = new Em3PhysListEmModel(name); + emPhysicsList = new PhysListEmG4v52(name); } else { - G4cout << "Em3PhysicsList::AddPhysicsList: <" << name << ">" + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << " is not defined" << G4endl; } @@ -120,11 +116,11 @@ void Em3PhysicsList::AddPhysicsList(const G4String& name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysicsList::SetCuts() +void PhysicsList::SetCuts() { if (verboseLevel >0){ - G4cout << "Em3PhysicsList::SetCuts:"; + G4cout << "PhysicsList::SetCuts:"; G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; } @@ -139,7 +135,11 @@ void Em3PhysicsList::SetCuts() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysicsList::SetCutForGamma(G4double cut) +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +void PhysicsList::SetCutForGamma(G4double cut) { cutForGamma = cut; SetParticleCuts(cutForGamma, G4Gamma::Gamma()); @@ -147,7 +147,7 @@ void Em3PhysicsList::SetCutForGamma(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysicsList::SetCutForElectron(G4double cut) +void PhysicsList::SetCutForElectron(G4double cut) { cutForElectron = cut; SetParticleCuts(cutForElectron, G4Electron::Electron()); @@ -155,7 +155,7 @@ void Em3PhysicsList::SetCutForElectron(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysicsList::SetCutForPositron(G4double cut) +void PhysicsList::SetCutForPositron(G4double cut) { cutForPositron = cut; SetParticleCuts(cutForPositron, G4Positron::Positron()); diff --git a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc similarity index 92% rename from examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc rename to examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc index 22780d1656..e461cbb156 100644 --- a/examples/extended/electromagnetic/TestEm2/src/Em2PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PhysicsListMessenger.cc @@ -21,23 +21,23 @@ // ******************************************************************** // // -// $Id: Em2PhysicsListMessenger.cc,v 1.7 2002/12/16 11:29:23 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.cc,v 1.1 2003/09/22 14:06:20 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em2PhysicsListMessenger.hh" +#include "PhysicsListMessenger.hh" -#include "Em2PhysicsList.hh" +#include "PhysicsList.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithAString.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysicsListMessenger::Em2PhysicsListMessenger(Em2PhysicsList* pPhys) +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) :pPhysicsList(pPhys) { gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this); @@ -76,7 +76,7 @@ Em2PhysicsListMessenger::Em2PhysicsListMessenger(Em2PhysicsList* pPhys) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em2PhysicsListMessenger::~Em2PhysicsListMessenger() +PhysicsListMessenger::~PhysicsListMessenger() { delete gammaCutCmd; delete electCutCmd; @@ -87,7 +87,7 @@ Em2PhysicsListMessenger::~Em2PhysicsListMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em2PhysicsListMessenger::SetNewValue(G4UIcommand* command, +void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if( command == gammaCutCmd ) diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc similarity index 82% rename from examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc rename to examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc index a3f9671c6b..6f58ae0ad3 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorAction.cc @@ -21,18 +21,18 @@ // ******************************************************************** // // -// $Id: Em3PrimaryGeneratorAction.cc,v 1.5 2001/10/22 10:58:57 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.cc,v 1.1 2003/09/22 14:06:20 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3PrimaryGeneratorAction.hh" +#include "PrimaryGeneratorAction.hh" -#include "Em3DetectorConstruction.hh" -#include "Em3PrimaryGeneratorMessenger.hh" +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorMessenger.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" @@ -42,9 +42,9 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PrimaryGeneratorAction::Em3PrimaryGeneratorAction( - Em3DetectorConstruction* Em3DC) -:Em3Detector(Em3DC) +PrimaryGeneratorAction::PrimaryGeneratorAction( + DetectorConstruction* DC) +:Detector(DC) { G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); @@ -52,12 +52,12 @@ Em3PrimaryGeneratorAction::Em3PrimaryGeneratorAction( rndmBeam = 0.; //create a messenger for this class - gunMessenger = new Em3PrimaryGeneratorMessenger(this); + gunMessenger = new PrimaryGeneratorMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PrimaryGeneratorAction::~Em3PrimaryGeneratorAction() +PrimaryGeneratorAction::~PrimaryGeneratorAction() { delete particleGun; delete gunMessenger; @@ -65,7 +65,7 @@ Em3PrimaryGeneratorAction::~Em3PrimaryGeneratorAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PrimaryGeneratorAction::SetDefaultKinematic() +void PrimaryGeneratorAction::SetDefaultKinematic() { G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable(); G4String particleName; @@ -74,13 +74,13 @@ void Em3PrimaryGeneratorAction::SetDefaultKinematic() particleGun->SetParticleDefinition(particle); particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); particleGun->SetParticleEnergy(1.*GeV); - G4double position = -0.5*(Em3Detector->GetWorldSizeX()); + G4double position = -0.5*(Detector->GetWorldSizeX()); particleGun->SetParticlePosition(G4ThreeVector(position,0.*cm,0.*cm)); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event // @@ -88,7 +88,7 @@ void Em3PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) if (rndmBeam > 0.) { G4ThreeVector oldPosition = particleGun->GetParticlePosition(); - G4double rbeam = 0.5*(Em3Detector->GetCalorSizeYZ())*rndmBeam; + G4double rbeam = 0.5*(Detector->GetCalorSizeYZ())*rndmBeam; G4double x0 = oldPosition.x(); G4double y0 = oldPosition.y() + (2*G4UniformRand()-1.)*rbeam; G4double z0 = oldPosition.z() + (2*G4UniformRand()-1.)*rbeam; diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc similarity index 82% rename from examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc rename to examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc index d974277fa1..04fa2115b0 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/PrimaryGeneratorMessenger.cc @@ -21,25 +21,25 @@ // ******************************************************************** // // -// $Id: Em3PrimaryGeneratorMessenger.cc,v 1.7 2002/12/12 11:19:38 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorMessenger.cc,v 1.1 2003/09/22 14:06:20 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3PrimaryGeneratorMessenger.hh" +#include "PrimaryGeneratorMessenger.hh" -#include "Em3PrimaryGeneratorAction.hh" +#include "PrimaryGeneratorAction.hh" #include "G4UIcmdWithoutParameter.hh" #include "G4UIcmdWithADouble.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PrimaryGeneratorMessenger::Em3PrimaryGeneratorMessenger( - Em3PrimaryGeneratorAction* Em3Gun) -:Em3Action(Em3Gun) +PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( + PrimaryGeneratorAction* Gun) +:Action(Gun) { DefaultCmd = new G4UIcmdWithoutParameter("/testem/gun/setDefault",this); DefaultCmd->SetGuidance("set/reset kinematic defined in PrimaryGenerator"); @@ -55,7 +55,7 @@ Em3PrimaryGeneratorMessenger::Em3PrimaryGeneratorMessenger( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PrimaryGeneratorMessenger::~Em3PrimaryGeneratorMessenger() +PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() { delete DefaultCmd; delete RndmCmd; @@ -63,14 +63,14 @@ Em3PrimaryGeneratorMessenger::~Em3PrimaryGeneratorMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, +void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if( command == DefaultCmd ) - { Em3Action->SetDefaultKinematic();} + { Action->SetDefaultKinematic();} if( command == RndmCmd ) - { Em3Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} + { Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc b/examples/extended/electromagnetic/TestEm3/src/RunAction.cc similarity index 80% rename from examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc rename to examples/extended/electromagnetic/TestEm3/src/RunAction.cc index 1f57f28459..367be76217 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3RunAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/RunAction.cc @@ -21,41 +21,38 @@ // ******************************************************************** // // -// $Id: Em3RunAction.cc,v 1.25 2003/06/18 09:36:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.cc,v 1.2 2003/11/03 16:42:50 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3RunAction.hh" -#include "Em3RunActionMessenger.hh" +#include "RunAction.hh" +#include "RunActionMessenger.hh" #include "G4Run.hh" -#include "G4Material.hh" #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" #include "G4UnitsTable.hh" #include "Randomize.hh" #include -#include "G4ProductionCutsTable.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3RunAction::Em3RunAction(Em3DetectorConstruction* det) +RunAction::RunAction(DetectorConstruction* det) :Detector(det) { - runMessenger = new Em3RunActionMessenger(this); + runMessenger = new RunActionMessenger(this); -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE // Creating the analysis factory AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); @@ -70,7 +67,7 @@ Em3RunAction::Em3RunAction(Em3DetectorConstruction* det) // Creating a histogram factory, whose histograms will be handled by the tree hf = af->createHistogramFactory(*tree); - for (G4int k=0; kcommit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) @@ -94,7 +91,26 @@ Em3RunAction::~Em3RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3RunAction::BeginOfRunAction(const G4Run* aRun) +void RunAction::SetHisto(G4int k, + G4int nbins, G4double valmin, G4double valmax, G4String unit) +{ + const G4String id[] = {"0","1","2","3","4","5","6","7","8","9","10"}; + G4String title = "Edep in absorber " + id[k] + " (" + unit + ")"; + G4double valunit = G4UnitDefinition::GetValueOf(unit); + valmin /= valunit; valmax /= valunit; + + G4cout << "---->SetHisto: " << title << " ; " << nbins << " bins from " + << valmin << " " << unit << " to " << valmax << unit << G4endl; + +#ifdef G4ANALYSIS_USE + histoUnit[k] = valunit; + histo[k] = hf->createHistogram1D(id[k+1],title,nbins,valmin,valmax); +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::BeginOfRunAction(const G4Run* aRun) { G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; @@ -105,17 +121,15 @@ void Em3RunAction::BeginOfRunAction(const G4Run* aRun) //initialize cumulative quantities // - for (G4int k=0; kApplyCommand("/vis/scene/notifyHandlers"); - //histograms - // - bookHisto(); //example of print dEdx tables // @@ -124,43 +138,20 @@ void Em3RunAction::BeginOfRunAction(const G4Run* aRun) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3RunAction::bookHisto() -{ -#ifndef G4NOHIST - // book histograms - const G4String title = "Edep/Ebeam in absorber "; - const G4String id[] = {"0","1","2","3","4","5","6","7","8","9","10"}; - G4int nbins=100; G4double vmin=0., vmax=1.; - G4int NbOfAbsor = Detector->GetNbOfAbsor(); - for (G4int k=0; kcreateHistogram1D(id[k+1],title+id[k],nbins,vmin,vmax); - G4cout << "bookHisto: " << k << " " << histo[k] << G4endl; - } - } -#endif -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em3RunAction::SetHisto(G4int k,G4int nbins,G4double vmin,G4double vmax) -{ - G4cout << "SetHisto: #" << k << " nbins" << nbins - << " min= " << vmin << " max= " << vmax << G4endl; -#ifndef G4NOHIST - // (re)book histograms - const G4String title = "Edep/Ebeam in absorber "; - const G4String id[] = {"0","1","2","3","4","5","6","7","8","9","10"}; - histo[k] = hf->createHistogram1D(id[k+1],title+id[k],nbins,vmin,vmax); - G4cout << "SetHisto: " << k << " " << histo[k] << G4endl; -#endif +void RunAction::fillPerEvent(G4int kAbs, G4double EAbs, G4double LAbs, + G4double Eleav) +{ + //accumulate statistic + // + sumEAbs[kAbs] += EAbs; sum2EAbs[kAbs] += EAbs*EAbs; + sumLAbs[kAbs] += LAbs; sum2LAbs[kAbs] += LAbs*LAbs; + sumEleav[kAbs] += Eleav; sum2Eleav[kAbs] += Eleav*Eleav; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3RunAction::EndOfRunAction(const G4Run* aRun) +void RunAction::EndOfRunAction(const G4Run* aRun) { if (G4VVisManager::GetConcreteInstance()) G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); @@ -170,7 +161,7 @@ void Em3RunAction::EndOfRunAction(const G4Run* aRun) G4int NbOfEvents = aRun->GetNumberOfEvent(); G4double norme = 1./NbOfEvents; - G4double MeanEAbs,rmsEAbs,MeanLAbs,rmsLAbs; + G4double MeanEAbs,rmsEAbs,MeanLAbs,rmsLAbs,MeanEleav,rmsEleav; std::ios::fmtflags mode = G4cout.flags(); G4cout.setf(std::ios::fixed,std::ios::floatfield); @@ -178,7 +169,8 @@ void Em3RunAction::EndOfRunAction(const G4Run* aRun) G4cout << "\n-------------------------------------------------------------\n" << std::setw(51) << "total energy dep" - << std::setw(30) << "total tracklen \n \n"; + << std::setw(30) << "total tracklen" + << std::setw(40) << "mean energy leaving per layer \n \n"; for (G4int k=0; kGetNbOfAbsor(); k++) { @@ -187,6 +179,9 @@ void Em3RunAction::EndOfRunAction(const G4Run* aRun) MeanLAbs = norme*sumLAbs[k]; rmsLAbs = norme*sqrt(abs(NbOfEvents*sum2LAbs[k] - sumLAbs[k]*sumLAbs[k])); + + MeanEleav = norme*sumEleav[k]; + rmsEleav=norme*sqrt(abs(NbOfEvents*sum2Eleav[k]-sumEleav[k]*sumEleav[k])); //print // @@ -198,6 +193,8 @@ void Em3RunAction::EndOfRunAction(const G4Run* aRun) << std::setw( 5) << G4BestUnit( rmsEAbs,"Energy") << std::setw(12) << G4BestUnit(MeanLAbs,"Length") << " +- " << std::setw( 5) << G4BestUnit( rmsLAbs,"Length") + << std::setw(22) << G4BestUnit(MeanEleav,"Energy") << " +- " + << std::setw( 5) << G4BestUnit( rmsEleav,"Energy") << G4endl; } @@ -216,11 +213,12 @@ void Em3RunAction::EndOfRunAction(const G4Run* aRun) #include "G4ParticleDefinition.hh" #include "G4Gamma.hh" #include "G4Electron.hh" +#include "G4ProductionCutsTable.hh" #include "G4EnergyLossTables.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3RunAction::PrintDedxTables() +void RunAction::PrintDedxTables() { //Print dE/dx tables with binning identical to the Geant3 JMATE bank. //The printout is readable as Geant3 ffread data cards (by the program g4mat). diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3RunActionMessenger.cc b/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc similarity index 75% rename from examples/extended/electromagnetic/TestEm3/src/Em3RunActionMessenger.cc rename to examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc index db8ba016f7..c09758a836 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3RunActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm3/src/RunActionMessenger.cc @@ -21,31 +21,29 @@ // ******************************************************************** // // -// $Id: Em3RunActionMessenger.cc,v 1.12 2003/06/16 16:47:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunActionMessenger.cc,v 1.1 2003/09/22 14:06:20 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3RunActionMessenger.hh" +#include "RunActionMessenger.hh" -#include "Em3RunAction.hh" +#include "RunAction.hh" #include "G4UIcommand.hh" #include "G4UIparameter.hh" -#include "G4ios.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3RunActionMessenger::Em3RunActionMessenger(Em3RunAction* run) -:Em3Run(run) +RunActionMessenger::RunActionMessenger(RunAction* run) +:Run(run) { HistoCmd = new G4UIcommand("/testem/run/setHisto",this); - HistoCmd->SetGuidance("Set histo Edep/Ebeam in absorber k"); + HistoCmd->SetGuidance("Set histo Edep in absorber k"); HistoCmd->SetGuidance(" histo=absor number : from 0 to NbOfAbsor-1"); - HistoCmd->SetGuidance(" number of bins; Emin/Ebeam; Emax/Ebeam"); + HistoCmd->SetGuidance(" nb bins; Emin; Emax; unit (of Emin and Emax"); // G4UIparameter* AbsNbPrm = new G4UIparameter("AbsorNb",'i',false); AbsNbPrm->SetGuidance("histo=absor number : from 0 to NbOfAbsor-1"); @@ -58,35 +56,36 @@ Em3RunActionMessenger::Em3RunActionMessenger(Em3RunAction* run) HistoCmd->SetParameter(NbinPrm); // G4UIparameter* VminPrm = new G4UIparameter("Vmin",'d',false); - VminPrm->SetGuidance("Vmin=Emin/Ebeam"); - VminPrm->SetParameterRange("Vmin>=0.&&Vmin<=1.1"); + VminPrm->SetGuidance("Emin, expressed in unit"); HistoCmd->SetParameter(VminPrm); // G4UIparameter* VmaxPrm = new G4UIparameter("Vmax",'d',false); - VmaxPrm->SetGuidance("Vmax=Emax/Ebeam"); - VmaxPrm->SetParameterRange("Vmax>=0.&&Vmax<=1.1"); - HistoCmd->SetParameter(VmaxPrm); + VmaxPrm->SetGuidance("Emax, expressed in unit"); + HistoCmd->SetParameter(VmaxPrm); // - HistoCmd->AvailableForStates(G4State_Idle); + G4UIparameter* UnitPrm = new G4UIparameter("unit",'s',false); + HistoCmd->SetParameter(UnitPrm); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3RunActionMessenger::~Em3RunActionMessenger() +RunActionMessenger::~RunActionMessenger() { delete HistoCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3RunActionMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +void RunActionMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if (command == HistoCmd) - { G4int idh,nbins; G4double vmin,vmax; + { G4int idh,nbins; G4double vmin,vmax; char unts[30]; const char* t = newValue; std::istrstream is((char*)t); - is >> idh >> nbins >> vmin >> vmax; - Em3Run->SetHisto (idh,nbins,vmin,vmax); + is >> idh >> nbins >> vmin >> vmax >> unts; + G4String unit = unts; + G4double vUnit = G4UIcommand::ValueOf(unit); + Run->SetHisto (idh,nbins,vmin*vUnit,vmax*vUnit,unit); } } diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc b/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc similarity index 68% rename from examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc rename to examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc index 73b0b50f73..b8e537c8ce 100644 --- a/examples/extended/electromagnetic/TestEm3/src/Em3SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm3/src/SteppingAction.cc @@ -21,31 +21,60 @@ // ******************************************************************** // // -// $Id: Em3SteppingAction.cc,v 1.6 2003/06/03 10:36:35 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.cc,v 1.3 2003/11/27 18:20:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3SteppingAction.hh" -#include "G4Step.hh" +#include "SteppingAction.hh" + +#include "DetectorConstruction.hh" +#include "EventAction.hh" + +#include "G4Track.hh" +#include "G4Positron.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3SteppingAction::Em3SteppingAction() -{ } +SteppingAction::SteppingAction(DetectorConstruction* det, EventAction* evt) +:G4UserSteppingAction(),detector(det),eventAct(evt) +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3SteppingAction::~Em3SteppingAction() -{ } +SteppingAction::~SteppingAction() +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3SteppingAction::UserSteppingAction(const G4Step*) +void SteppingAction::UserSteppingAction(const G4Step* aStep) { + const G4Track* track = aStep->GetTrack(); + G4VPhysicalVolume* volume = track->GetVolume(); + if (volume == detector->GetphysiWorld()) return; + + G4int absorNo = volume->GetCopyNo(); + + // collect energy and track length step by step + G4double edep = aStep->GetTotalEnergyDeposit(); + + G4double stepl = 0.; + if (track->GetDefinition()->GetPDGCharge() != 0.) + stepl = aStep->GetStepLength(); + + // sum up per event + eventAct->SumEnergy(absorNo,edep,stepl); + + // energy leaving each volume + if (track->GetNextVolume() != volume) { + G4double EnLeaving = track->GetKineticEnergy(); + if (track->GetDefinition() == G4Positron::Positron()) + EnLeaving += 2*electron_mass_c2; + eventAct->SumEnLeaving(absorNo,EnLeaving); + } + +//// example of Birk attenuation //// G4double destep = aStep->GetTotalEnergyDeposit(); //// G4double response = BirkAttenuation(aStep); //// G4cout << " Destep: " << destep/keV << " keV" @@ -54,7 +83,7 @@ void Em3SteppingAction::UserSteppingAction(const G4Step*) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double Em3SteppingAction::BirkAttenuation(const G4Step* aStep) +G4double SteppingAction::BirkAttenuation(const G4Step* aStep) { //Example of Birk attenuation law in organic scintillators. //adapted from Geant3 PHYS337. See MIN 80 (1970) 239-244 diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc similarity index 95% rename from examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc rename to examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc index 25f1386dbc..5110ed897d 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm3/src/SteppingVerbose.cc @@ -21,30 +21,30 @@ // ******************************************************************** // // -// $Id: Em1SteppingVerbose.cc,v 1.10 2003/06/16 16:47:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.cc,v 1.2 2003/11/27 18:20:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1SteppingVerbose.hh" +#include "SteppingVerbose.hh" #include "G4SteppingManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1SteppingVerbose::Em1SteppingVerbose() +SteppingVerbose::SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1SteppingVerbose::~Em1SteppingVerbose() +SteppingVerbose::~SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1SteppingVerbose::StepInfo() +void SteppingVerbose::StepInfo() { CopyState(); @@ -137,7 +137,7 @@ void Em1SteppingVerbose::StepInfo() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1SteppingVerbose::TrackingStarted() +void SteppingVerbose::TrackingStarted() { CopyState(); diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc b/examples/extended/electromagnetic/TestEm3/src/VisManager.cc similarity index 91% rename from examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc rename to examples/extended/electromagnetic/TestEm3/src/VisManager.cc index fd8e7c3efc..4b422489ef 100755 --- a/examples/extended/electromagnetic/TestEm3/src/Em3VisManager.cc +++ b/examples/extended/electromagnetic/TestEm3/src/VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em3VisManager.cc,v 1.7 2002/11/13 21:39:52 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.cc,v 1.2 2003/11/13 15:10:20 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -32,7 +32,7 @@ #ifdef G4VIS_USE -#include "Em3VisManager.hh" +#include "VisManager.hh" // Supported drivers... @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -87,11 +82,11 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3VisManager::Em3VisManager () {} +VisManager::VisManager () {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3VisManager::RegisterGraphicsSystems () { +void VisManager::RegisterGraphicsSystems () { // Graphics Systems not needing external packages or libraries... RegisterGraphicsSystem (new G4ASCIITree); @@ -109,11 +104,6 @@ void Em3VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/electromagnetic/TestEm3/storeTables.mac b/examples/extended/electromagnetic/TestEm3/storeTables.mac index 9a94ab014d..45d3ef1781 100644 --- a/examples/extended/electromagnetic/TestEm3/storeTables.mac +++ b/examples/extended/electromagnetic/TestEm3/storeTables.mac @@ -1,4 +1,4 @@ -# $Id: storeTables.mac,v 1.3 2003/02/20 15:52:01 vnivanch Exp $ +# $Id: storeTables.mac,v 1.4 2003/10/24 12:12:11 maire Exp $ # # Macro file for "testEm3.cc" # @@ -7,12 +7,12 @@ # /control/verbose 2 # -# select EM PhysicsList -# -#/testem/phys/addPhysics model +###/testem/phys/addPhysics g4v52 /testem/phys/addPhysics standard # /run/initialize +/run/beamOn 0 +# /run/particle/storePhysicsTable physdata # /gun/particle e- diff --git a/examples/extended/electromagnetic/TestEm3/vis.mac b/examples/extended/electromagnetic/TestEm3/vis.mac index fcea4d62da..d213d702eb 100644 --- a/examples/extended/electromagnetic/TestEm3/vis.mac +++ b/examples/extended/electromagnetic/TestEm3/vis.mac @@ -15,7 +15,7 @@ # Create a scene handler for a specific graphics system # Edit the next line(s) to choose another graphic system # -/vis/open DAWNFILE +###/vis/open DAWNFILE /vis/open OGLIX # # Draw scene diff --git a/examples/extended/electromagnetic/TestEm4/GNUmakefile b/examples/extended/electromagnetic/TestEm4/GNUmakefile index 4877e29603..95965dead8 100644 --- a/examples/extended/electromagnetic/TestEm4/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm4/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.8 2002/12/10 17:20:29 maire Exp $ +# $Id: GNUmakefile,v 1.9 2003/10/06 14:51:14 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -14,12 +14,14 @@ endif .PHONY: all all: lib bin +####G4ANALYSIS_USE := true + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif include $(G4INSTALL)/config/architecture.gmk -G4NOHIST := true -ifdef G4NOHIST - CPPFLAGS += -DG4NOHIST -else +ifdef G4ANALYSIS_USE # for the aida-config command see the README file CPPFLAGS += `aida-config --include` LDFLAGS += `aida-config --lib` @@ -27,3 +29,6 @@ endif include $(G4INSTALL)/config/binmake.gmk +visclean: + rm -f g4*.prim g4*.eps g4*.wrl + rm -f .DAWN_* diff --git a/examples/extended/electromagnetic/TestEm4/History b/examples/extended/electromagnetic/TestEm4/History index 8f2a90b9cf..8e184ac399 100644 --- a/examples/extended/electromagnetic/TestEm4/History +++ b/examples/extended/electromagnetic/TestEm4/History @@ -1,4 +1,4 @@ -$Id: History,v 1.22 2003/06/03 10:42:04 vnivanch Exp $ +$Id: History,v 1.28 2003/11/25 18:36:18 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,24 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +25-11-03 V.Ivanchenko (testem4-V05-02-03) + +13-11-03 John Allison +- Removed OPACS from Vis Manager. + +24-10-03 mma (testem4-V05-02-02) +- PhysListEmStandard: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +06-10-03 mma (testem4-V05-02-01) +- migration STD -> standard +- G4ANALYSIS_USE + +29-09-03 V.Ivanchenko (testem4-V05-02-00) +- substitute obsolete interface to cut energy range + +23-06-03 mma (testem4-V05-01-01) +- remove 'Em4' from all class names + 03-06-03 V.Ivanchenko (testem4-V05-01-00) - Fix compilation warnings, remove from default save of random number diff --git a/examples/extended/electromagnetic/TestEm4/README b/examples/extended/electromagnetic/TestEm4/README index 99cdf0db1f..63f5fa7db1 100644 --- a/examples/extended/electromagnetic/TestEm4/README +++ b/examples/extended/electromagnetic/TestEm4/README @@ -1,4 +1,4 @@ -$Id: README,v 1.7 2002/12/10 17:20:29 maire Exp $ +$Id: README,v 1.8 2003/10/06 14:51:15 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -64,8 +64,9 @@ $Id: README,v 1.7 2002/12/10 17:20:29 maire Exp $ paw> option logy paw> h/pl 1 - Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile. - + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. + 7- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.cc b/examples/extended/electromagnetic/TestEm4/TestEm4.cc index e29305fcb4..ad0d12a505 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.cc +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm4.cc,v 1.7 2001/10/25 14:04:22 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TestEm4.cc,v 1.8 2003/06/23 16:16:22 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -34,16 +34,16 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "Em4VisManager.hh" +#include "VisManager.hh" #endif -#include "Em4DetectorConstruction.hh" -#include "Em4PhysicsList.hh" -#include "Em4PrimaryGeneratorAction.hh" -#include "Em4RunAction.hh" -#include "Em4EventAction.hh" -#include "Em4SteppingAction.hh" -#include "Em4SteppingVerbose.hh" +#include "DetectorConstruction.hh" +#include "PhysicsList.hh" +#include "PrimaryGeneratorAction.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "SteppingAction.hh" +#include "SteppingVerbose.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -53,28 +53,28 @@ int main(int argc,char** argv) { HepRandom::setTheEngine(new RanecuEngine); //my Verbose output class - G4VSteppingVerbose::SetInstance(new Em4SteppingVerbose); + G4VSteppingVerbose::SetInstance(new SteppingVerbose); // Construct the default run manager G4RunManager * runManager = new G4RunManager; // set mandatory initialization classes - runManager->SetUserInitialization(new Em4DetectorConstruction); - runManager->SetUserInitialization(new Em4PhysicsList); + runManager->SetUserInitialization(new DetectorConstruction); + runManager->SetUserInitialization(new PhysicsList); #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new Em4VisManager; + G4VisManager* visManager = new VisManager; visManager->Initialize(); #endif // set user action classes - runManager->SetUserAction(new Em4PrimaryGeneratorAction); - Em4RunAction* RunAct = new Em4RunAction; + runManager->SetUserAction(new PrimaryGeneratorAction); + RunAction* RunAct = new RunAction; runManager->SetUserAction(RunAct); - Em4EventAction* EvAct = new Em4EventAction(RunAct); + EventAction* EvAct = new EventAction(RunAct); runManager->SetUserAction(EvAct); - runManager->SetUserAction(new Em4SteppingAction(EvAct)); + runManager->SetUserAction(new SteppingAction(EvAct)); //Initialize G4 kernel runManager->Initialize(); diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.in b/examples/extended/electromagnetic/TestEm4/TestEm4.in index 120bad56fd..399b523249 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.in +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.in @@ -1,4 +1,4 @@ -# $Id: TestEm4.in,v 1.4 2003/06/03 10:42:04 vnivanch Exp $ +# $Id: TestEm4.in,v 1.5 2003/06/16 14:52:05 vnivanch Exp $ # # Macro file for "TestEm4.cc" # @@ -6,7 +6,7 @@ # /control/verbose 0 # -/run/verbose 0 +/run/verbose 1 #/testem/event/printModulo 10000 # /run/beamOn 50000 diff --git a/examples/extended/electromagnetic/TestEm4/TestEm4.out b/examples/extended/electromagnetic/TestEm4/TestEm4.out index 251bf4b4ed..7873f8afff 100644 --- a/examples/extended/electromagnetic/TestEm4/TestEm4.out +++ b/examples/extended/electromagnetic/TestEm4/TestEm4.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -22,7 +22,7 @@ Current available graphics systems are: ---> Element: Fluorine N Z = 9.0 N = 19.0 A = 18.99 g/mole fractionMass: 61.26 % Abundance 50.00 % phot: Total cross sections from Sandia parametrisation. -Em4PhysicsList::SetCuts:CutLength : 1 (mm) +PhysicsList::SetCuts:CutLength : 1 (mm) compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. @@ -32,32 +32,29 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -msc: Model variant of multiple scattering - Lambda tables from 100 eV to 100 TeV 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: +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: +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. +### All dEdx and Range tables are built ##### -eIoni: +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Total cross sections from a parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. - annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. @@ -79,6 +76,7 @@ Index : 0 used in the geometry : Yes recalculation needed : No Initial seed (index) = 0 Current couple of seeds = 9876, 54321 ---------------------------------------- +Start Run processing. ---> Begin of Event: 0 @@ -89,10 +87,15 @@ Index : 0 used in the geometry : Yes recalculation needed : No ---> Begin of Event: 30000 ---> Begin of Event: 40000 +Run terminated. +Run Summary + Number of events processed : 50000 + User=29.88s Real=504.08s Sys=41.75s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 597757297, 299215401 + Current couple of seeds = 1653480615, 213275717 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... +G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh similarity index 86% rename from examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh rename to examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh index 990b0e8b5e..22e813f0d6 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/DetectorConstruction.hh @@ -21,28 +21,27 @@ // ******************************************************************** // // -// $Id: Em4DetectorConstruction.hh,v 1.4 2001/10/17 14:04:13 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// +// $Id: DetectorConstruction.hh,v 1.2 2003/10/06 14:51:16 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em4DetectorConstruction_h -#define Em4DetectorConstruction_h 1 +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em4DetectorConstruction : public G4VUserDetectorConstruction +class DetectorConstruction : public G4VUserDetectorConstruction { public: - Em4DetectorConstruction(); - ~Em4DetectorConstruction(); + DetectorConstruction(); + ~DetectorConstruction(); G4VPhysicalVolume* Construct(); }; diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh b/examples/extended/electromagnetic/TestEm4/include/EventAction.hh similarity index 86% rename from examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh rename to examples/extended/electromagnetic/TestEm4/include/EventAction.hh index 242ea81448..017e7fed51 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4EventAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/EventAction.hh @@ -21,30 +21,30 @@ // ******************************************************************** // // -// $Id: Em4EventAction.hh,v 1.4 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.hh,v 1.1 2003/06/23 16:16:26 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em4EventAction_h -#define Em4EventAction_h 1 +#ifndef EventAction_h +#define EventAction_h 1 #include "G4UserEventAction.hh" #include "globals.hh" -class Em4RunAction; -class Em4EventActionMessenger; +class RunAction; +class EventActionMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em4EventAction : public G4UserEventAction +class EventAction : public G4UserEventAction { public: - Em4EventAction(Em4RunAction*); - ~Em4EventAction(); + EventAction(RunAction*); + ~EventAction(); public: void BeginOfEventAction(const G4Event*); @@ -56,11 +56,11 @@ class Em4EventAction : public G4UserEventAction void SetPrintModulo(G4int val) {printModulo = val;}; private: - Em4RunAction* Em4Run; + RunAction* Run; G4double TotalEnergyDeposit; // Energy deposited in c6f6 G4String drawFlag; // control the drawing of event G4int printModulo; - Em4EventActionMessenger* eventMessenger; + EventActionMessenger* eventMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh similarity index 85% rename from examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh rename to examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh index 9918557dad..2ed77f7b90 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm4/include/EventActionMessenger.hh @@ -21,37 +21,36 @@ // ******************************************************************** // // -// $Id: Em4EventActionMessenger.hh,v 1.5 2002/12/10 17:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.hh,v 1.2 2003/10/06 14:51:16 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em4EventActionMessenger_h -#define Em4EventActionMessenger_h 1 +#ifndef EventActionMessenger_h +#define EventActionMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" -class Em4EventAction; +class EventAction; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em4EventActionMessenger: public G4UImessenger +class EventActionMessenger: public G4UImessenger { public: - Em4EventActionMessenger(Em4EventAction*); - ~Em4EventActionMessenger(); + EventActionMessenger(EventAction*); + ~EventActionMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em4EventAction* eventAction; + EventAction* eventAction; G4UIdirectory* testemDir; G4UIcmdWithAString* DrawCmd; G4UIcmdWithAnInteger* PrintCmd; diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh b/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh similarity index 90% rename from examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh rename to examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh index 72d48d78e0..ca04926486 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm4/include/PhysicsList.hh @@ -21,27 +21,27 @@ // ******************************************************************** // // -// $Id: Em4PhysicsList.hh,v 1.4 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em4PhysicsList_h -#define Em4PhysicsList_h 1 +#ifndef PhysicsList_h +#define PhysicsList_h 1 #include "G4VUserPhysicsList.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em4PhysicsList: public G4VUserPhysicsList +class PhysicsList: public G4VUserPhysicsList { public: - Em4PhysicsList(); - ~Em4PhysicsList(); + PhysicsList(); + ~PhysicsList(); protected: // Construct particle and physics diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh similarity index 86% rename from examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh rename to examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh index cb6e6e3069..501eecfdb9 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/PrimaryGeneratorAction.hh @@ -21,16 +21,16 @@ // ******************************************************************** // // -// $Id: Em4PrimaryGeneratorAction.hh,v 1.4 2001/10/17 14:04:14 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em4PrimaryGeneratorAction_h -#define Em4PrimaryGeneratorAction_h 1 +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" #include "globals.hh" @@ -40,11 +40,11 @@ class G4Event; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em4PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - Em4PrimaryGeneratorAction(); - ~Em4PrimaryGeneratorAction(); + PrimaryGeneratorAction(); + ~PrimaryGeneratorAction(); public: void GeneratePrimaries(G4Event*); diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh b/examples/extended/electromagnetic/TestEm4/include/RunAction.hh similarity index 88% rename from examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh rename to examples/extended/electromagnetic/TestEm4/include/RunAction.hh index 7e9999bb76..10ace6bcd3 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4RunAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/RunAction.hh @@ -21,16 +21,16 @@ // ******************************************************************** // // -// $Id: Em4RunAction.hh,v 1.10 2002/12/10 17:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.hh,v 1.2 2003/10/06 14:51:16 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em4RunAction_h -#define Em4RunAction_h 1 +#ifndef RunAction_h +#define RunAction_h 1 #include "G4UserRunAction.hh" #include "globals.hh" @@ -39,24 +39,24 @@ class G4Run; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE namespace AIDA { class ITree; class IHistogram1D; } #endif -class Em4RunAction : public G4UserRunAction +class RunAction : public G4UserRunAction { public: - Em4RunAction(); - ~Em4RunAction(); + RunAction(); + ~RunAction(); public: void BeginOfRunAction(const G4Run*); void EndOfRunAction(const G4Run*); -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif @@ -64,7 +64,7 @@ class Em4RunAction : public G4UserRunAction void bookHisto(); private: -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::ITree* tree; //the tree should only be deleted at the end AIDA::IHistogram1D* histo[1]; // (after writing the histos to file) #endif diff --git a/examples/extended/electromagnetic/TestEm4/include/Em4SteppingAction.hh b/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh similarity index 84% rename from examples/extended/electromagnetic/TestEm4/include/Em4SteppingAction.hh rename to examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh index 2f3b83785c..e294c7e3f4 100644 --- a/examples/extended/electromagnetic/TestEm4/include/Em4SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm4/include/SteppingAction.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: Em4SteppingAction.hh,v 1.3 2001/07/11 09:57:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#ifndef Em4SteppingAction_h -#define Em4SteppingAction_h 1 +#ifndef SteppingAction_h +#define SteppingAction_h 1 #include "G4UserSteppingAction.hh" -class Em4EventAction; +class EventAction; class G4SteppingVerbose2; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class Em4SteppingAction : public G4UserSteppingAction +class SteppingAction : public G4UserSteppingAction { public: - Em4SteppingAction(Em4EventAction*); - ~Em4SteppingAction(); + SteppingAction(EventAction*); + ~SteppingAction(); void UserSteppingAction(const G4Step*); private: - Em4EventAction* eventAction; + EventAction* eventAction; G4SteppingVerbose2* myVerbose; }; diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh similarity index 88% rename from examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh rename to examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh index 4518433254..1a6f0f0c3b 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm4/include/SteppingVerbose.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1SteppingVerbose.hh,v 1.7 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. @@ -31,19 +31,19 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1SteppingVerbose_h -#define Em1SteppingVerbose_h 1 +#ifndef SteppingVerbose_h +#define SteppingVerbose_h 1 #include "G4SteppingVerbose.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1SteppingVerbose : public G4SteppingVerbose { +class SteppingVerbose : public G4SteppingVerbose { public: - Em1SteppingVerbose(); - ~Em1SteppingVerbose(); + SteppingVerbose(); + ~SteppingVerbose(); void StepInfo(); void TrackingStarted(); diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh b/examples/extended/electromagnetic/TestEm4/include/VisManager.hh similarity index 92% rename from examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh rename to examples/extended/electromagnetic/TestEm4/include/VisManager.hh index ecb515ad5a..81593e40e4 100644 --- a/examples/extended/electromagnetic/TestEm1/include/Em1VisManager.hh +++ b/examples/extended/electromagnetic/TestEm4/include/VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em1VisManager.hh,v 1.4 2001/10/26 12:51:24 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.hh,v 1.1 2003/06/23 16:16:27 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -44,18 +44,18 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1VisManager_h -#define Em1VisManager_h 1 +#ifndef VisManager_h +#define VisManager_h 1 #include "G4VisManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1VisManager: public G4VisManager { +class VisManager: public G4VisManager { public: - Em1VisManager (); + VisManager (); private: diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc similarity index 69% rename from examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc rename to examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc index af8d0c4d07..e0c66c8630 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/DetectorConstruction.cc @@ -21,65 +21,54 @@ // ******************************************************************** // // -// $Id: Em4DetectorConstruction.cc,v 1.5 2003/04/01 16:36:37 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.cc,v 1.2 2003/10/06 14:51:17 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em4DetectorConstruction.hh" +#include "DetectorConstruction.hh" #include "G4Material.hh" #include "G4Tubs.hh" #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" - -#include "G4ios.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4DetectorConstruction::Em4DetectorConstruction() +DetectorConstruction::DetectorConstruction() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4DetectorConstruction::~Em4DetectorConstruction() +DetectorConstruction::~DetectorConstruction() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* Em4DetectorConstruction::Construct() +G4VPhysicalVolume* DetectorConstruction::Construct() { // - // define a material from elements. case 1: chemical molecule - // - - G4String name, symbol; //a=mass of a mole; - G4double a, z; //z=mean number of protons; + // define a material from its elements. case 1: chemical molecule + // + G4double a, z; + G4double density; G4int ncomponents, natoms; - a = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); - - a = 18.99*g/mole; - G4Element* elF = new G4Element(name="Fluorine",symbol="N" , z= 9., a); + G4Element* C = new G4Element("Carbon" ,"C" , z= 6., a= 12.01*g/mole); + G4Element* F = new G4Element("Fluorine","N" , z= 9., a= 18.99*g/mole); - G4double density = 1.61*g/cm3; - G4Material* matC6F6 = new G4Material("FluorCarbonate",density,ncomponents=2); - matC6F6->AddElement(elC, natoms=6); - matC6F6->AddElement(elF, natoms=6); + G4Material* C6F6 = + new G4Material("FluorCarbonate", density= 1.61*g/cm3, ncomponents=2); + C6F6->AddElement(C, natoms=6); + C6F6->AddElement(F, natoms=6); - G4cout << matC6F6 << G4endl; + G4cout << C6F6 << G4endl; // // Container - // - + // G4double Rmin=0., Rmax=5*cm, deltaZ= 5*cm, Phimin=0., deltaPhi=360*degree; G4Tubs* @@ -88,7 +77,7 @@ G4VPhysicalVolume* Em4DetectorConstruction::Construct() G4LogicalVolume* logicWorld = new G4LogicalVolume(solidWorld, //its solid - matC6F6, //its material + C6F6, //its material "C6F6"); //its name G4VPhysicalVolume* physiWorld = new G4PVPlacement(0, //no rotation @@ -98,19 +87,10 @@ G4VPhysicalVolume* Em4DetectorConstruction::Construct() 0, //its mother volume false, //no boolean operation 0); //copy number - - // - // Visualization attributes - // - - G4VisAttributes* visAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - visAtt->SetVisibility(true); - logicWorld->SetVisAttributes(visAtt); - + // //always return the physical World - // - + // return physiWorld; } diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc b/examples/extended/electromagnetic/TestEm4/src/EventAction.cc similarity index 82% rename from examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc rename to examples/extended/electromagnetic/TestEm4/src/EventAction.cc index 45e337dd82..d7ac6892f4 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4EventAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/EventAction.cc @@ -21,50 +21,47 @@ // ******************************************************************** // // -// $Id: Em4EventAction.cc,v 1.10 2002/05/29 15:32:28 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.cc,v 1.2 2003/10/06 14:51:17 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em4EventAction.hh" +#include "EventAction.hh" -#include "Em4RunAction.hh" -#include "Em4EventActionMessenger.hh" +#include "RunAction.hh" +#include "EventActionMessenger.hh" #include "G4Event.hh" -#include "G4EventManager.hh" #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" #include "G4UnitsTable.hh" -#include "Randomize.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/IHistogram1D.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4EventAction::Em4EventAction(Em4RunAction* run) -:Em4Run(run),drawFlag("none"),printModulo(10000),eventMessenger(NULL) +EventAction::EventAction(RunAction* run) +:Run(run),drawFlag("none"),printModulo(10000),eventMessenger(NULL) { - eventMessenger = new Em4EventActionMessenger(this); + eventMessenger = new EventActionMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4EventAction::~Em4EventAction() +EventAction::~EventAction() { delete eventMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4EventAction::BeginOfEventAction( const G4Event* evt) +void EventAction::BeginOfEventAction( const G4Event* evt) { G4int evtNb = evt->GetEventID(); @@ -78,14 +75,14 @@ void Em4EventAction::BeginOfEventAction( const G4Event* evt) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4EventAction::EndOfEventAction( const G4Event* evt) +void EventAction::EndOfEventAction( const G4Event* evt) { if (drawFlag != "none") G4cout << " Energy deposit: " << G4BestUnit(TotalEnergyDeposit,"Energy") << G4endl; -#ifndef G4NOHIST - Em4Run->GetHisto(0)->fill(TotalEnergyDeposit/MeV); +#ifdef G4ANALYSIS_USE + Run->GetHisto(0)->fill(TotalEnergyDeposit/MeV); #endif if(G4VVisManager::GetConcreteInstance()) diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc similarity index 88% rename from examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc rename to examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc index 446606ee6f..9bfacf4040 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm4/src/EventActionMessenger.cc @@ -21,25 +21,24 @@ // ******************************************************************** // // -// $Id: Em4EventActionMessenger.cc,v 1.6 2002/12/10 17:20:30 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.cc,v 1.2 2003/10/06 14:51:17 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em4EventActionMessenger.hh" +#include "EventActionMessenger.hh" -#include "Em4EventAction.hh" +#include "EventAction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4EventActionMessenger::Em4EventActionMessenger(Em4EventAction* EvAct) +EventActionMessenger::EventActionMessenger(EventAction* EvAct) :eventAction(EvAct) { testemDir = new G4UIdirectory("/testem/"); @@ -62,7 +61,7 @@ Em4EventActionMessenger::Em4EventActionMessenger(Em4EventAction* EvAct) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4EventActionMessenger::~Em4EventActionMessenger() +EventActionMessenger::~EventActionMessenger() { delete DrawCmd; delete PrintCmd; @@ -71,7 +70,7 @@ Em4EventActionMessenger::~Em4EventActionMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4EventActionMessenger::SetNewValue(G4UIcommand* command, +void EventActionMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if(command == DrawCmd) diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc b/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc similarity index 77% rename from examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc rename to examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc index 21ad694cef..d58376d9fa 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm4/src/PhysicsList.cc @@ -21,26 +21,24 @@ // ******************************************************************** // // -// $Id: Em4PhysicsList.cc,v 1.6 2003/04/11 14:30:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.cc,v 1.4 2003/10/24 12:14:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em4PhysicsList.hh" +#include "PhysicsList.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" +#include "G4ProductionCutsTable.hh" #include "G4ProcessManager.hh" #include "G4ParticleTypes.hh" #include "G4ParticleTable.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4PhysicsList::Em4PhysicsList() +PhysicsList::PhysicsList() : G4VUserPhysicsList() { defaultCutValue = 1.0*mm; @@ -49,12 +47,12 @@ Em4PhysicsList::Em4PhysicsList() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4PhysicsList::~Em4PhysicsList() +PhysicsList::~PhysicsList() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4PhysicsList::ConstructParticle() +void PhysicsList::ConstructParticle() { // In this method, static member functions should be called // for all particles which you want to use. @@ -67,25 +65,22 @@ void Em4PhysicsList::ConstructParticle() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4PhysicsList::ConstructBosons() +void PhysicsList::ConstructBosons() { - // gamma G4Gamma::GammaDefinition(); - } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4PhysicsList::ConstructLeptons() +void PhysicsList::ConstructLeptons() { - // leptons G4Electron::ElectronDefinition(); G4Positron::PositronDefinition(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4PhysicsList::ConstructProcess() +void PhysicsList::ConstructProcess() { AddTransportation(); ConstructEM(); @@ -97,16 +92,15 @@ void Em4PhysicsList::ConstructProcess() #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" -#include "G4MultipleScatteringSTD.hh" +#include "G4MultipleScattering.hh" -#include "G4eIonisationSTD.hh" -#include "G4eBremsstrahlungSTD.hh" +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" #include "G4eplusAnnihilation.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4PhysicsList::ConstructEM() +void PhysicsList::ConstructEM() { theParticleIterator->reset(); while( (*theParticleIterator)() ){ @@ -124,16 +118,16 @@ void Em4PhysicsList::ConstructEM() } else if (particleName == "e-") { //electron - pmanager->AddProcess(new G4MultipleScatteringSTD,-1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); + 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 G4MultipleScatteringSTD,-1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); + 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); } } @@ -141,27 +135,23 @@ void Em4PhysicsList::ConstructEM() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4PhysicsList::SetCuts() +void PhysicsList::SetCuts() { if (verboseLevel >0){ - G4cout << "Em4PhysicsList::SetCuts:"; + G4cout << "PhysicsList::SetCuts:"; G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; } //special for low energy physics // - G4double lowlimit=250*eV; - G4Gamma ::SetEnergyRange(lowlimit,100*GeV); - G4Electron::SetEnergyRange(lowlimit,100*GeV); - G4Positron::SetEnergyRange(lowlimit,100*GeV); + G4ProductionCutsTable::GetProductionCutsTable() + ->SetEnergyRange(250*eV, 100*GeV); // 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(defaultCutValue, "gamma"); SetCutValue(defaultCutValue, "e-"); SetCutValue(defaultCutValue, "e+"); - - if (verboseLevel>0) DumpCutValuesTable(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc similarity index 90% rename from examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc rename to examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc index 4cae0b53c3..afcc9d5123 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/PrimaryGeneratorAction.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: Em4PrimaryGeneratorAction.cc,v 1.5 2001/12/10 16:05:16 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.cc,v 1.1 2003/06/23 16:16:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em4PrimaryGeneratorAction.hh" +#include "PrimaryGeneratorAction.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" @@ -39,7 +39,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4PrimaryGeneratorAction::Em4PrimaryGeneratorAction() +PrimaryGeneratorAction::PrimaryGeneratorAction() { G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); @@ -57,14 +57,14 @@ Em4PrimaryGeneratorAction::Em4PrimaryGeneratorAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4PrimaryGeneratorAction::~Em4PrimaryGeneratorAction() +PrimaryGeneratorAction::~PrimaryGeneratorAction() { delete particleGun; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event // diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc b/examples/extended/electromagnetic/TestEm4/src/RunAction.cc similarity index 88% rename from examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc rename to examples/extended/electromagnetic/TestEm4/src/RunAction.cc index 51c8cad3f6..a577203190 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4RunAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/RunAction.cc @@ -21,40 +21,38 @@ // ******************************************************************** // // -// $Id: Em4RunAction.cc,v 1.17 2003/06/03 10:42:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// +// $Id: RunAction.cc,v 1.2 2003/10/06 14:51:17 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em4RunAction.hh" +#include "RunAction.hh" #include "G4Run.hh" #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" #include "Randomize.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/AIDA.h" #endif //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4RunAction::Em4RunAction() +RunAction::RunAction() { bookHisto(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4RunAction::~Em4RunAction() +RunAction::~RunAction() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) @@ -65,9 +63,9 @@ Em4RunAction::~Em4RunAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4RunAction::bookHisto() +void RunAction::bookHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE // Creating the analysis factory AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); @@ -93,12 +91,12 @@ void Em4RunAction::bookHisto() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4RunAction::BeginOfRunAction(const G4Run* aRun) +void RunAction::BeginOfRunAction(const G4Run* aRun) { G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; // save Rndm status - // G4RunManager::GetRunManager()->SetRandomNumberStore(true); + G4RunManager::GetRunManager()->SetRandomNumberStore(true); HepRandom::showEngineStatus(); if (G4VVisManager::GetConcreteInstance()) @@ -107,7 +105,7 @@ void Em4RunAction::BeginOfRunAction(const G4Run* aRun) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4RunAction::EndOfRunAction(const G4Run*) +void RunAction::EndOfRunAction(const G4Run*) { if (G4VVisManager::GetConcreteInstance()) G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc b/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc similarity index 86% rename from examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc rename to examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc index e249c1ef93..fd644d0a7e 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm4/src/SteppingAction.cc @@ -21,32 +21,32 @@ // ******************************************************************** // // -// $Id: Em4SteppingAction.cc,v 1.4 2001/10/17 14:04:16 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.cc,v 1.1 2003/06/23 16:16:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em4SteppingAction.hh" -#include "Em4EventAction.hh" +#include "SteppingAction.hh" +#include "EventAction.hh" #include "G4SteppingManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4SteppingAction::Em4SteppingAction(Em4EventAction* EvAct) +SteppingAction::SteppingAction(EventAction* EvAct) :eventAction(EvAct),myVerbose(NULL) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4SteppingAction::~Em4SteppingAction() +SteppingAction::~SteppingAction() { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4SteppingAction::UserSteppingAction(const G4Step* aStep) +void SteppingAction::UserSteppingAction(const G4Step* aStep) { G4double EdepStep = aStep->GetTotalEnergyDeposit(); if (EdepStep > 0.) eventAction->addEdep(EdepStep); diff --git a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc similarity index 95% rename from examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc rename to examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc index 4dcb5883f1..8882e6e876 100644 --- a/examples/extended/electromagnetic/TestEm4/src/Em4SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm4/src/SteppingVerbose.cc @@ -21,30 +21,30 @@ // ******************************************************************** // // -// $Id: Em4SteppingVerbose.cc,v 1.10 2003/06/16 16:47:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.cc,v 1.1 2003/06/23 16:16:34 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em4SteppingVerbose.hh" +#include "SteppingVerbose.hh" #include "G4SteppingManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4SteppingVerbose::Em4SteppingVerbose() +SteppingVerbose::SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em4SteppingVerbose::~Em4SteppingVerbose() +SteppingVerbose::~SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4SteppingVerbose::StepInfo() +void SteppingVerbose::StepInfo() { CopyState(); @@ -137,7 +137,7 @@ void Em4SteppingVerbose::StepInfo() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em4SteppingVerbose::TrackingStarted() +void SteppingVerbose::TrackingStarted() { CopyState(); diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc b/examples/extended/electromagnetic/TestEm4/src/VisManager.cc similarity index 91% rename from examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc rename to examples/extended/electromagnetic/TestEm4/src/VisManager.cc index 1ad26e1e41..b06e415406 100755 --- a/examples/extended/electromagnetic/TestEm5/src/Em5VisManager.cc +++ b/examples/extended/electromagnetic/TestEm4/src/VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em5VisManager.cc,v 1.8 2003/04/30 14:12:40 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.cc,v 1.2 2003/11/13 15:10:24 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -32,7 +32,7 @@ #ifdef G4VIS_USE -#include "Em5VisManager.hh" +#include "VisManager.hh" // Supported drivers... @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -87,11 +82,11 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5VisManager::Em5VisManager () {} +VisManager::VisManager () {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5VisManager::RegisterGraphicsSystems () { +void VisManager::RegisterGraphicsSystems () { // Graphics Systems not needing external packages or libraries... RegisterGraphicsSystem (new G4ASCIITree); @@ -109,11 +104,6 @@ void Em5VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/electromagnetic/TestEm5/GNUmakefile b/examples/extended/electromagnetic/TestEm5/GNUmakefile index dc85b9ccef..304b15771d 100644 --- a/examples/extended/electromagnetic/TestEm5/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm5/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.10 2003/06/06 15:55:43 maire Exp $ +# $Id: GNUmakefile,v 1.14 2003/10/24 12:18:13 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -14,12 +14,15 @@ endif .PHONY: all all: lib bin -include $(G4INSTALL)/config/architecture.gmk +#### G4ANALYSIS_USE := true -G4NOHIST := true -ifdef G4NOHIST - CPPFLAGS += -DG4NOHIST -else +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` diff --git a/examples/extended/electromagnetic/TestEm5/History b/examples/extended/electromagnetic/TestEm5/History index f12642e5f3..7c1d142bee 100644 --- a/examples/extended/electromagnetic/TestEm5/History +++ b/examples/extended/electromagnetic/TestEm5/History @@ -1,4 +1,4 @@ -$Id: History,v 1.28 2003/06/06 15:55:44 maire Exp $ +$Id: History,v 1.37 2003/11/25 18:34:16 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,7 +14,45 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +25-11-03 V.Ivanchenko (testem5-V05-02-06) +- Fix geometry (G.Cosmo) +13-11-03 John Allison +- Removed OPACS from Vis Manager. + +27-10-03 mma (testem5-V05-02-05) +- TestEm5.in : units mum instead of um + +24-10-03 mma (testem5-V05-02-04) +- PhysListEmStandard: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +07-10-03 mma (testem5-V05-02-03) +- migration em STD -> em standard + +12-09-03 V.Ivant (testem5-V05-02-02) +- No AIDA histograms by default + +27-08-03 V.Ivant (testem5-V05-02-01) +- Replace obsolete interface to GetRange + +11-08-03 mma (testem5-V05-02-00) + +12-07-03 mma +- suppresion of Em5 in the class names. +- suppresion of sensitive detector and hits. +- EmPhysicsList : SetFacRange in multiple scattering +- new classes HistoManager, TrackingAction, StackingAction in order + to book and fill histograms. +- new UI command setHisto to control the binning of histograms. +- more histos and new numbering scheme : see README +- StackingAction and its messenger : possibility to kill secondaries. +- DetectorConstruction::DefineMaterials() invoked in constructor. + The UI commands /testem/det work in preInit state as well in Idle. +- all macros updated and renamed according to authors of experimental results. +- replace G4NOHIST by G4ANALYSIS_USE +- adapt geant3 + 06-06-03 mma (testem5-V05-01-01) - new histogram (ID=11) for the projeted angle at exit. In geant3 as well. Bug corrected in gustep. diff --git a/examples/extended/electromagnetic/TestEm5/README b/examples/extended/electromagnetic/TestEm5/README index 5c4550b320..1c7cdd7d4a 100644 --- a/examples/extended/electromagnetic/TestEm5/README +++ b/examples/extended/electromagnetic/TestEm5/README @@ -1,5 +1,5 @@ -$Id: README,v 1.8 2003/05/30 10:43:38 urban Exp $ -------------------------------------------------------------------- +$Id: README,v 1.9 2003/08/11 10:02:42 maire Exp $ +----------------------------------------------------- ========================================================= Geant4 - an Object-Oriented Toolkit for Simulation in HEP @@ -7,150 +7,139 @@ $Id: README,v 1.8 2003/05/30 10:43:38 urban Exp $ TestEm5 ------- - + The purpose of this example is to study the transmission, absorption and + reflexion of particles through a single, thin or thick, layer of material. + In perticular, the effects of the multiple scattering can be easily ploted. 1- GEOMETRY DEFINITION - The "absorber" is a box made of a given material. + The "absorber" is a box made of a given material. - Three parameters define the absorber : - - the material of the absorber, - - the thickness of an absorber, - - the transverse size of the absorber (the input face is a square). + Three parameters define the absorber : + - the material of the absorber, + - the thickness of an absorber, + - the transverse size of the absorber (the input face is a square). - The volume "World" contains the "absorber". - In this test the parameters of the "World" can be changed, too. + A volume "World" contains the "absorber". - In addition a transverse uniform magnetic field can be applied. + In addition a transverse uniform magnetic field can be applied. - The default geometry is constructed in DetectorConstruction class, - but all the parameters can be changed via - the commands defined in the DetectorMessenger class. + The default geometry is constructed in DetectorConstruction class, but all the + parameters can be changed via commands defined in the DetectorMessenger class. + The parameters of the "World" can be changed, too. 2- AN EVENT : THE PRIMARY GENERATOR - The primary kinematic consists of a single particle which hits the - absorber perpendicular to the input face. 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). + The primary kinematic consists of a single particle which hits the absorber + perpendicular to the input face. 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 choose randomly the impact point of the incident - particle. The corresponding interactive command is built in - PrimaryGeneratorMessenger class. - - A RUN is a set of events. - - 3- DETECTOR RESPONSE + In addition one can choose randomly the impact point of the incident particle. + The interactive command is built in PrimaryGeneratorMessenger class. - A HIT is a record, event per event , of all the - informations needed to simulate and analyse the detector response. - - In this example a CalorHit is defined as a set of 2 informations: - - the total energy deposit in the absorber, - - the total tracklength of all charged particles in the absorber, - - Therefore the absorber is declared - 'sensitive detector' (SD), which means they can contribute to the hit. - - At the end of a run, from the histogram(s), one can study - different physics quantities such as : - - angle distribution, - - energy deposit, - - transmission/backscattering, - - ... - - The test contains 10 built-in histograms, which can be activated by - interactive commands (see the macros runxx.mac for details). - The histograms/plots are in printed form in the corresponding - resultxx (for GEANT4) and outxx (for GEANT3) files, and they are - saved as geant4.plotxx and geant3.plotxx histogram files, too. - - The histogram files can be viewed using PAW e.g with the commands - - paw> h/file 1 geant4.plot01 - paw> option stat - paw> h/pl 1 - - 4- VISUALIZATION + 3- 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. In interactive session: - PreInit or Idle > /control/execute vis.mac + The Visualization Manager is set in the main(). + The initialisation of the drawing is done via the commands in vis.mac + In interactive session: + PreInit or Idle > /control/execute vis.mac - The detector has a default view which is a longitudinal view of the - calorimeter. + The example has a default view which is a longitudinal view of the detector. - 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- PHYSICS DEMO + 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, or none. + This command is defined in EventActionMessenger class. - The particle's type and the physic processes which will be available - in this example are set in PhysicsList class. - - The messenger classes introduce interactive commands . Using these - commands the geometry of the detector, the data of the primary - particle, the limits of the histograms , etc. can be changed. - - 6- HOW TO START ? + 4- TRACKING + + During the tracking, one can keep or not the secondaries : see StackingAction + class and its Messenger. + One can also limit 'by hand' the step lenght of the particle. 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. + + 5- DETECTOR RESPONSE + + At the end of a run, from the histogram(s), one can study different + physics quantities such as : + - energy deposit in the absorber, + - energy spectrum of secondaries at creation, + - energy spectrum and angle distribution of particles at exit, + - transmission and backscattering coefficients, + - ... - - compile and link to generate an executable - % cd TestEm5 - % gmake - - - execute TestEm5 in 'batch' mode from macro files e.g. - % $(G4INSTALL)/bin/$(G4SYSTEM)/TestEm5 run01.mac - - - execute TestEm5 in 'interactive' mode with visualization e.g. - % $(G4INSTALL)/bin/$(G4SYSTEM)/TestEm5 - .... - Idle> type your commands - .... - - 7- GEANT4/GEANT3/exp.data comparison - - A GEANT4/GEANT3/exp. data comparison is given here for a few cases. - - The GEANT4 results can be found in the results/ directory, the resultxx - output was obtained with the runxx.mac macro. - - The relevant part of the GEANT3 code is in the geant3/ directory - together with the runxx.dat input files. The outputs of the GEANT3 runs - geant3/results subdirectory. - - In order to make an executable of GEANT3 the gmakeB command should be - used in the geant3/ subdirectory.To run this executable with a given - input file the input file name should be given when it is being asked - by the program.(see geant3/README) - - The expdata/ directory contains some information - on the experimental data. - - List of the built-in histograms ------------------------------- + + The test contains 16 built-in 1D histograms, which 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..) + (see the macros xxxx.mac). + + 1 "energy deposit in absorber" + 2 "energy of charged secondaries at creation" + 3 "energy of gammas at creation (log10(Ekin/MeV))" + 4 "(transmit, charged) : kinetic energy at exit" + 5 "(transmit, charged) : space angle at exit" + 6 "(transmit, charged) : projected angle at exit" + 7 "(transmit, charged) : radial dispersion at exit" + 8 "(transmit, neutral) : kinetic energy at exit" + 9 "(transmit, neutral) : space angle at exit" + 10 "(transmit, neutral) : projected angle at exit" + 11 "(reflect , charged) : kinetic energy at exit" + 12 "(reflect , charged) : space angle at exit" + 13 "(reflect , charged) : projected angle at exit" + 14 "(reflect , neutral) : kinetic energy at exit" + 15 "(reflect , neutral) : space angle at exit" + 16 "(reflect , neutral) : projected angle at exit" - 1. number of (tracking) steps/event - 2. energy deposit distribution in the absorber (in MeV) - 3. angle distribution of the primary particle at the exit - of the absorber (deg) - 4. distribution of the lateral displacement at exit(mm) - 5. kinetic energy of the transmitted primaries (MeV) - 6. angle distribution of the backscattered primaries (deg) - 7. kinetic energy of the backscattered primary particles (MeV) - 8. kinetic energy of the charged secondary particles (MeV) - 9. z distribution of the secondary charged vertices (mm) - 10. kinetic energy of the photons escaping the absorber (MeV) - 11. projected angle distribution of the primary particle - at exit of the absorber (deg) + The histograms can be viewed using PAW. See below the note on ANAPHE+AIDA. + + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. + + 6- GEANT4/GEANT3/DATA COMPARISON - Note that histograms are disabled via the flag G4NOHIST in GNUmakefile. - - 8- Using the Anaphe implementation of the AIDA 3.0 histograms: - -------------------------------------------------------------- + A Geant4/Geant3/exp. data comparison is given here for a few cases. + These cases can be classified as follow: + - e-/e+ incident particles versus protons and others. + - 3 energy regimes : low: < 1 MeV; medium: 1MeV -> few 10 MeV; high: > 100 MeV + + We indicate here the corresponding macros. + + | low energy | medium energy | high energy + -------------------------------------------------------- + e-+ | berger.mac | hanson.mac | + | | kulchi.mac | + -------------------------------------------------------- + others| bichsel.mac | vincour.mac | shen1.mac shen2.mac + | | gottsch.mac | tramu.mac + -------------------------------------------------------- + + The relevant part of the GEANT3 code is in the subdirectory geant3 together + with the xxxx.dat input files. + + 7- HOW TO START ? + + - compile and link to generate an executable + % cd TestEm5 + % gmake + + - execute TestEm5 in 'batch' mode from macro files e.g. + % $(G4INSTALL)/bin/$(G4SYSTEM)/TestEm5 myMacro.mac + + - execute TestEm5 in 'interactive' mode with visualization e.g. + % $(G4INSTALL)/bin/$(G4SYSTEM)/TestEm5 + Then type your commands, for instance : + Idle> control/execute vis.mac + Idle> run/beamOn 5 + .... + + Note - Using the Anaphe implementation of the AIDA 3.0 histograms: + ------------------------------------------------------------------ In order to use the Anaphe implementation of the AIDA 3.0 interfaces, the 'aida-config' command (which is used in the GNUmakefile) is diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.cc b/examples/extended/electromagnetic/TestEm5/TestEm5.cc index 0a6f06f72b..09f2a55b1b 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.cc +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm5.cc,v 1.7 2001/11/05 17:57:58 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TestEm5.cc,v 1.8 2003/08/11 10:02:45 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,16 +34,19 @@ #include "Randomize.hh" #ifdef G4VIS_USE -#include "Em5VisManager.hh" +#include "VisManager.hh" #endif -#include "Em5DetectorConstruction.hh" -#include "Em5PhysicsList.hh" -#include "Em5PrimaryGeneratorAction.hh" -#include "Em5RunAction.hh" -#include "Em5EventAction.hh" -#include "Em5SteppingAction.hh" -#include "Em5SteppingVerbose.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 "StackingAction.hh" +#include "HistoManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -53,34 +56,53 @@ int main(int argc,char** argv) { HepRandom::setTheEngine(new RanecuEngine); //my Verbose output class - G4VSteppingVerbose::SetInstance(new Em5SteppingVerbose); + G4VSteppingVerbose::SetInstance(new SteppingVerbose); // Construct the default run manager G4RunManager * runManager = new G4RunManager; // set mandatory initialization classes - Em5DetectorConstruction* detector; - detector = new Em5DetectorConstruction; + DetectorConstruction* detector; + detector = new DetectorConstruction; runManager->SetUserInitialization(detector); - runManager->SetUserInitialization(new Em5PhysicsList(detector)); + runManager->SetUserInitialization(new PhysicsList(detector)); #ifdef G4VIS_USE // visualization manager - G4VisManager* visManager = new Em5VisManager; + G4VisManager* visManager = new VisManager; visManager->Initialize(); #endif + + HistoManager* histo = 0; +#ifdef G4ANALYSIS_USE + histo = new HistoManager(); +#endif // set user action classes - runManager->SetUserAction(new Em5PrimaryGeneratorAction(detector)); - Em5RunAction* runaction = new Em5RunAction; + // + //primaryGenerator + runManager->SetUserAction(new PrimaryGeneratorAction(detector)); + RunAction* runaction = new RunAction(histo); runManager->SetUserAction(runaction); - Em5EventAction* eventaction = new Em5EventAction(runaction); + //eventAction + EventAction* eventaction = new EventAction(runaction,histo); runManager->SetUserAction(eventaction); + + //trackAction + TrackingAction* trackingaction = new TrackingAction(detector, runaction, + eventaction, histo); + runManager->SetUserAction(trackingaction); - Em5SteppingAction* steppingaction = new Em5SteppingAction(detector, - eventaction, runaction); - runManager->SetUserAction(steppingaction); + //stepAction + SteppingAction* steppingaction = new SteppingAction(detector, runaction, + eventaction, histo); + runManager->SetUserAction(steppingaction); + + //stackAction + StackingAction* stackingaction = new StackingAction(runaction, + eventaction, histo); + runManager->SetUserAction(stackingaction); // get the pointer to the User Interface manager G4UImanager* UI = G4UImanager::GetUIpointer(); @@ -104,9 +126,13 @@ int main(int argc,char** argv) { } // job termination +#ifdef G4ANALYSIS_USE + delete histo; +#endif #ifdef G4VIS_USE delete visManager; -#endif +#endif + delete runManager; return 0; diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.in b/examples/extended/electromagnetic/TestEm5/TestEm5.in index 58477ba625..6454740905 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.in +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.in @@ -1,40 +1,27 @@ +# $Id: TestEm5.in,v 1.11 2003/10/27 11:32:38 maire Exp $ # -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) +# macro file for TestEm5.cc # /control/verbose 2 /run/verbose 2 # -# select EM PhysicsList +/testem/det/setAbsMat Silicon +/testem/det/setAbsThick 20.5 mum +/testem/det/setAbsYZ 1 mm # -#/testem/phys/addPhysics model /testem/phys/addPhysics standard +###/testem/phys/addPhysics g4v52 # /testem/phys/setGCut 2.13 mm /testem/phys/setECut 7.0 mum +/testem/phys/setPCut 7.0 mum # /run/initialize # -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 20.5 mum -/testem/det/setAbsYZ 10 cm -/testem/det/update -# /testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName run19.paw -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 65 -/testem/plots/setEnlow 0. keV -/testem/plots/setEnhigh 13. keV -# /gun/particle pi+ -/gun/energy 5. GeV - -/testem/event/printModulo 10000 +/gun/energy 5 GeV # /run/beamOn 100000 -# + diff --git a/examples/extended/electromagnetic/TestEm5/TestEm5.out b/examples/extended/electromagnetic/TestEm5/TestEm5.out index e343ce05b8..ede0c51bc4 100644 --- a/examples/extended/electromagnetic/TestEm5/TestEm5.out +++ b/examples/extended/electromagnetic/TestEm5/TestEm5.out @@ -1,8 +1,9 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** +G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -19,152 +20,157 @@ Current available graphics systems are: VRML2FILE (VRML2FILE) /run/verbose 2 # -# select EM PhysicsList +/testem/det/setAbsMat Silicon +/testem/det/setAbsThick 20.5 mum +/testem/det/setAbsYZ 1 mm # -#/testem/phys/addPhysics model /testem/phys/addPhysics standard +###/testem/phys/addPhysics g4v52 # /testem/phys/setGCut 2.13 mm /testem/phys/setECut 7.0 mum +/testem/phys/setPCut 7.0 mum # /run/initialize userDetector->Construct() start. -G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; - The WORLD is made of 1.5 cm of Galactic. The transverse size (YZ) of the world is 2.4 cm - The ABSORBER is made of 1 cm of Silicon. The transverse size (YZ) is 2 cm + 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: 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 % + + The WORLD is made of 30.75 mum of Galactic. The transverse size (YZ) of the world is 1.2 mm + The ABSORBER is made of 20.5 mum of Silicon. The transverse size (YZ) is 1 mm X position of the middle of the absorber 0 fm World is registered to the default region. physicsList->Construct() start. +physicsList->Construct() start. phot: Total cross sections from Sandia parametrisation. physicsList->setCut() start. -Em5PhysicsList::SetCuts:CutLength : 1 mm -# -/testem/det/setAbsMat Silicon - - The WORLD is made of 1.5 cm of Galactic. The transverse size (YZ) of the world is 2.4 cm - The ABSORBER is made of 1 cm of Silicon. The transverse size (YZ) is 2 cm - X position of the middle of the absorber 0 fm -/testem/det/setAbsThick 20.5 mum -/testem/det/setAbsYZ 10 cm -/testem/det/update - - The WORLD is made of 30.75 mum of Galactic. The transverse size (YZ) of the world is 12 cm - The ABSORBER is made of 20.5 mum of Silicon. The transverse size (YZ) is 10 cm - X position of the middle of the absorber 0 fm -World is registered to the default region. -Start closing geometry. -G4GeometryManager::ReportVoxelStats -- Voxel Statistics - - Total memory consumed for geometry optimisation: 0 kByte - Total CPU time elapsed for geometry optimisation: 0 seconds +PhysicsList::SetCuts:CutLength : 1 mm # /testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName run19.paw - hist file = run19.paw -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 65 - Nb of bins in Edep plot = 65 -/testem/plots/setEnlow 0. keV - Elow in the Edep plot = 0 -/testem/plots/setEnhigh 13. keV - Ehigh in the Edep plot = 0.013 -# /gun/particle pi+ -/gun/energy 5. GeV -/testem/event/printModulo 10000 +/gun/energy 5 GeV # /run/beamOn 100000 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 1e+02 GeV in 80 bins. + PhysicsTables from 1 keV to 100 GeV in 80 bins. conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z. e+e- energies according Bethe-Heitler - PhysicsTables from 1 MeV to 1e+02 GeV in 100 bins. + PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins. +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 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1e+02 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 1e+02 TeV in 100 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins. +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: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1e+02 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins. +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: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1e+03 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1e+03 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1e+03 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 : Galactic Silicon + Production cuts : gamma 2.13 mm e- 7 mum e+ 7 mum ========= Table of registered couples ============================== Index : 0 used in the geometry : Yes recalculation needed : No Material : Galactic - Range cuts : gamma 2.1 mm e- 7 mum e+ 1 mm - Energy thresholds : gamma 9.9e+02 eV e- 9.9e+02 eV e+ 9.9e+02 eV + Range cuts : gamma 2.13 mm e- 7 mum e+ 7 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 : Silicon - Range cuts : gamma 2.1 mm e- 7 mum e+ 1 mm - Energy thresholds : gamma 9.9 keV e- 10 keV e+ 5.2e+02 keV + Range cuts : gamma 2.13 mm e- 7 mum e+ 7 mum + Energy thresholds : gamma 9.93829 keV e- 10.0803 keV e+ 9.95695 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 closing geometry. -G4GeometryManager::ReportVoxelStats -- Voxel Statistics - - Total memory consumed for geometry optimisation: 0 kByte - Total CPU time elapsed for geometry optimisation: 0 seconds Start Run processing. ---> Begin of Event: 0 @@ -189,40 +195,41 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 100000 - User=72s Real=2.3e+03s Sys=2.8e+02s - ================== run summary ===================== - end of Run TotNbofEvents = 100000 - mean charged track length in absorber=0.0209443 +- 1.36937e-05 mm + User=92s Real=9.1e+02s Sys=90s - mean energy deposit in absorber=0.0066499 +- 2.01649e-05 MeV + ======================== run summary ====================== - mean number of steps in absorber (charged) =0.0585 +- 0.00121168 - mean number of steps in absorber (neutral) =2e-05 +- 1.4142e-05 + Number of Events = 100000 - mean number of charged secondaries = 0.03811 +- 0.0006392 + Total energy deposit in absorber per event = 6.694 keV +- 21.58 eV - mean number of neutral secondaries = 0 +- 0 + Total track length (charged) in absorber per event = 20.96 mum +- 14.68 nm + Total track length (neutral) in absorber per event = 9.447 Ang +- 5.645 Ang - mean number of e-s =0.03811 and e+s =0 + Number of steps (charged) in absorber per event = 1.079 +- 1.211e-05 + Number of steps (neutral) in absorber per event = 4e-05 +- 1.211e-05 -(number) transmission coeff=1 reflection coeff=0 + Number of secondaries per event : Gammas = 4e-05; electrons = 0.03761; 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 % + + Number of events with the primary particle reflected = 0 % + Number of events with at least 1 particle reflected (same charge as primary) = 0 % --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1179260214, 2117767798 + Current couple of seeds = 1827733351, 2092347044 ---------------------------------------- -# Graphics systems deleted. Visualization Manager deleting... -G4 kernel has come to Quit state. -Deletion of G4 kernel class start. UserDetectorConstruction deleted. UserPhysicsList deleted. UserRunAction deleted. UserPrimaryGenerator deleted. -G4SDManager 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/TestEm5/anthony.mac b/examples/extended/electromagnetic/TestEm5/anthony.mac new file mode 100644 index 0000000000..6cd3f4beea --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/anthony.mac @@ -0,0 +1,31 @@ +# $Id: anthony.mac,v 1.1 2003/08/11 10:03:04 maire Exp $ +# +# macro file for TestEm5.cc +# +# LPM and dielectric effect measurement: +# 25 GeV electrons through thin foils. +# P.L. Anthony et al. Phys.Rev. D 56 (1997) page 1373. +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Aluminium +/testem/det/setAbsThick 5.30 mm +###/testem/det/setAbsMat Lead +###/testem/det/setAbsThick 0.15 mm +/testem/det/setAbsYZ 10 cm +# +/testem/phys/setGCut 1 mm +/testem/phys/setECut 5 mum +/testem/phys/setPCut 5 mum +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle e- +/gun/energy 25 GeV +# +/testem/histo/setFileName anthony.paw +/testem/histo/setHisto 8 80 1.e-4 1. GeV #gamma energy at exit +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm5/berger.mac b/examples/extended/electromagnetic/TestEm5/berger.mac new file mode 100644 index 0000000000..3da12a3cda --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/berger.mac @@ -0,0 +1,34 @@ +# $Id: berger.mac,v 1.1 2003/08/11 10:03:08 maire Exp $ +# +# macro file for TestEm5.cc +# +# energy deposit by 1 MeV electrons in silicon counters. +# M.J.Berger et al. NIM 69 (1969) page 181. +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Silicon +/testem/det/setAbsThick 61 mum +###/testem/det/setAbsThick 105 mum +###/testem/det/setAbsThick 191 mum +###/testem/det/setAbsThick 530 mum +###/testem/det/setAbsThick 1 mm +###/testem/det/setAbsThick 3 mm +/testem/det/setAbsYZ 1 cm +# +/testem/phys/setGCut 2.13 mm +/testem/phys/setECut 7 mum +/testem/phys/setPCut 7 mum +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle e- +/gun/energy 1 MeV +# +/testem/histo/setFileName berger.paw +/testem/histo/setHisto 1 55 0.0 1.1 MeV #energy deposit +# +/testem/event/printModulo 100000 +/run/beamOn 1000000 diff --git a/examples/extended/electromagnetic/TestEm5/bichsel.mac b/examples/extended/electromagnetic/TestEm5/bichsel.mac new file mode 100644 index 0000000000..482ef76b64 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/bichsel.mac @@ -0,0 +1,31 @@ +# $Id: bichsel.mac,v 1.1 2003/08/11 10:03:12 maire Exp $ +# +# macro file for TestEm5.cc +# +# 0.766 MeV protons, transmitted through 1.37 mg/cm2 Al +# H.Bichsel Phys.Rev. 112 (1958) page 182. +# +# proj. angle distr. exp(-(th/th0)**2) th0 = 4.44+- 0.20 deg +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Aluminium +/testem/det/setAbsThick 5.0741 mum +/testem/det/setAbsYZ 1 cm +# +/testem/phys/setCuts 1 mm +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle proton +/gun/energy 766 keV +# +/testem/histo/setFileName bichsel.paw +/testem/histo/setHisto 5 100 0 9 deg #space angle +/testem/histo/setHisto 6 100 -9 +9 deg #projected angle +# +/testem/stack/killSecondaries +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm5/davidw.mac b/examples/extended/electromagnetic/TestEm5/davidw.mac new file mode 100644 index 0000000000..af7741c1cb --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/davidw.mac @@ -0,0 +1,22 @@ +# +# Macro file for TestEm5.cc +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Lead +/testem/det/setAbsThick 1 mm +/testem/det/setAbsYZ 1 mm +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle proton +/gun/energy 250 MeV +# +/testem/histo/setFileName davidw.41r0.paw +/testem/histo/setHisto 5 100 0 100 mrad #space angle +# +/run/beamOn 10000 + + diff --git a/examples/extended/electromagnetic/TestEm5/geant3/README b/examples/extended/electromagnetic/TestEm5/geant3/README index c683873206..0b31ca6aaa 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/README +++ b/examples/extended/electromagnetic/TestEm5/geant3/README @@ -13,33 +13,36 @@ The program will ask: G3 > gives the filename of the data cards to be read: - run01.dat (runNN.dat is the equivalent of the G4 runNN.mac) + myMacro.dat (myMacro.dat is the equivalent of the G4 myMacro.mac) - data cards: most of the data cards used in runxx.dat are - ---------- standard data cards of GEANT3, but some of them - are defined in testem5. These latter cards are: + data cards + ---------- + Most of the data cards used in xxxx.dat are standard data cards of GEANT3, + but some of them are defined in testem5: - KEY VARIABLE/type Short description - - NAME NAME (character) name of the hist.file <******* - - ABSO - MATABS (integer) mat.number of the absorber - XABSOR (real) X thickness of the absorber - YZABSO (real) YZ size of the absorber - - HIS1 - NH1 (integer) number of bins in 1-st histogram - HI1(2) (real) lower/upper limit in 1-st histogram - ....... - - - ******> the NAME data card should be the first , with the format - A4,A2,A25. - - all the others are the so called free format data records used - in GEANT3 . - - materials: the materials used in this test are defined in - --------- ugeom.F with material numbers 21 - 30 + KEY VARIABLE/type Short description + FILE fileName (character) fileName of the histos + (the FILE data card should be the + first, with the format A4,A2,A25) + + ABSO MATABS (integer) mat.number of the absorber + XABSOR (real) X thickness of the absorber + YZABSO (real) YZ size of the absorber + + KILL kill (logical) do not track the secondary particles + + STMA stma (real) control STEMAX + + histograms + ---------- + The list of built-in histograms is identical to TestEm5.cc + (see G4 README or histo.F) + + One can control the binning of the histograms with the data card: + *HISTO id1 nbBins valMin valMax valUnit + *HISTO id2 nbBins valMin valMax valUnit + ... etc ........... + + valMin and ValMax are given in the desired unit, whose numerical value must + be specified in valUnit. Remember that Geant3 defaults are: GeV, cm, rad. diff --git a/examples/extended/electromagnetic/TestEm5/geant3/anthony.dat b/examples/extended/electromagnetic/TestEm5/geant3/anthony.dat new file mode 100644 index 0000000000..ffaae0efbd --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/anthony.dat @@ -0,0 +1,15 @@ +FILE anthony.paw +LIST +ABSOR 22 (aluminium) 0.53 (thicknX) 10.0 (sizeYZ) 0. (field) +C ABSOR 28 (lead) 0.015 (thicknX) 10.0 (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) +KINE 3 (electron) 25.0 (Ekin) 90.0 (theta) 0.0 (phi) +*HISTO 8 (idh) 80 (nbins) 1.e-4 (Emin) 1. (Emax) 1. (GeV) +SWIT 0 (draw) +DEBUG 2 1 10000 +TRIG 100000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/berger.dat b/examples/extended/electromagnetic/TestEm5/geant3/berger.dat new file mode 100644 index 0000000000..28178f8c47 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/berger.dat @@ -0,0 +1,19 @@ +FILE berger.paw +LIST +ABSOR 23 (silicon) 61.e-4 (thicknX) 1.0 (sizeYZ) 0. (field) +C ABSOR 23 (silicon) 105.e-4 (thicknX) 1.0 (sizeYZ) 0. (field) +C ABSOR 23 (silicon) 191.e-4 (thicknX) 1.0 (sizeYZ) 0. (field) +C ABSOR 23 (silicon) 530.e-4 (thicknX) 1.0 (sizeYZ) 0. (field) +C ABSOR 23 (silicon) 1.e-1 (thicknX) 1.0 (sizeYZ) 0. (field) +C ABSOR 23 (silicon) 3.e-1 (thicknX) 1.0 (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) +KINE 3 (electron) 0.001 (Ekine) 90.0 (theta) 0.0 (phi) +*HISTO 1 (idh) 55 (nbins) 0. (Emin) 1. (Emax) 1.e-3 (MeV) +SWIT 0 (draw) +DEBUG 1 1 100000 +TRIG 1000000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/bichsel.dat b/examples/extended/electromagnetic/TestEm5/geant3/bichsel.dat new file mode 100644 index 0000000000..472c26af2f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/bichsel.dat @@ -0,0 +1,16 @@ +FILE bichsel.paw +LIST +ABSOR 22 (aluminium) 5.0741e-4 (thicknX) 1. (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) + 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) +KINE 14 (proton) 766.e-6 (Ekin) 90.0 (theta) 0.0 (phi) +*HISTO 5 (idh) 100 (nbins) 0. (tetmin) 9. (tetmax) 1.74533e-2 (deg) +*HISTO 6 (idh) 100 (nbins) -9. (tetmin) +9. (tetmax) 1.74533e-2 (deg) +KILL TRUE +SWIT 0 (draw) +DEBUG 1 1 10000 +TRIG 100000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/gmakeB b/examples/extended/electromagnetic/TestEm5/geant3/gmakeB index 91e4c6bd10..5bdb5622bb 100755 --- a/examples/extended/electromagnetic/TestEm5/geant3/gmakeB +++ b/examples/extended/electromagnetic/TestEm5/geant3/gmakeB @@ -26,7 +26,7 @@ chmod +x $name.xb # # cleanup # -rm *.o +rm -f *.o echo 'done' exit diff --git a/examples/extended/electromagnetic/TestEm5/geant3/gmakeT b/examples/extended/electromagnetic/TestEm5/geant3/gmakeT index 98082878dc..b4bed7d9d9 100755 --- a/examples/extended/electromagnetic/TestEm5/geant3/gmakeT +++ b/examples/extended/electromagnetic/TestEm5/geant3/gmakeT @@ -25,7 +25,7 @@ chmod +x $name.xt # # cleanup # -rm *.o +rm -f *.o echo 'done' exit diff --git a/examples/extended/electromagnetic/TestEm5/geant3/gottsch.dat b/examples/extended/electromagnetic/TestEm5/geant3/gottsch.dat new file mode 100644 index 0000000000..c36afdd68f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/gottsch.dat @@ -0,0 +1,16 @@ +FILE gottsch.paw +LIST +ABSOR 22 (aluminium) 800.e-4 (thicknX) 1. (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) + 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) +KINE 14 (proton) 0.1586 (Ekin) 90.0 (theta) 0.0 (phi) +*HISTO 5 (idh) 100 (nbins) 0. (tetmin) 0.6 (tetmax) 1.74533e-2 (deg) +*HISTO 6 (idh) 100 (nbins) -0.6 (tetmin) +0.6 (tetmax) 1.74533e-2 (deg) +KILL TRUE +SWIT 0 (draw) +DEBUG 1 1 10000 +TRIG 100000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/hanson.dat b/examples/extended/electromagnetic/TestEm5/geant3/hanson.dat new file mode 100644 index 0000000000..14f00e0c02 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/hanson.dat @@ -0,0 +1,16 @@ +FILE hanson.paw +LIST +ABSOR 27 (gold) 9.658e-4 (thicknX) 1.0 (sizeYZ) 0. (field) +C ABSOR 27 (gold) 19.296e-4 (thicknX) 1.0 (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) +KINE 3 (electron) 0.01570 (Ekine) 90.0 (theta) 0.0 (phi) +*HISTO 5 (idh) 100 (nbins) 0. (tetmin) 10. (tetmax) 1.74533e-2 (deg) +C *HISTO 5 (idh) 60 (nbins) 0. (tetmin) 30. (tetmax) 1.74533e-2 (deg) +SWIT 0 (draw) +DEBUG 1 1 100000 +TRIG 1000000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/include/edepo.inc b/examples/extended/electromagnetic/TestEm5/geant3/include/edepo.inc deleted file mode 100644 index 7c4c899ffc..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/include/edepo.inc +++ /dev/null @@ -1,18 +0,0 @@ - - COMMON/EDEPO/EDEP,SEDEP,SEDEP2 - + ,DEEM,STMA,STMI,RMAX - + ,anbstep,sstep,s2step,anch,anne - + ,anele,anpos,sanele,sanpos - + ,sanch,sanch2,sanne,sanne2 - + ,tra,ref,stra,sref - + ,nth0 - + ,NHI1,HIS1(2),NHI2 ,HIS2(2),NHI3,HIS3(2),NHI4,HIS4(2) - + ,NHI5,HIS5(2),NHI6 ,HIS6(2),NHI7,HIS7(2),NHI8,HIS8(2) - + ,NHI9,HIS9(2),NHI10,HIS10(2),NHI11,HIS11(2) - COMMON/PLOTS/NAME - CHARACTER*25 NAME - COMMON/GEOMAT/MATWLD,XWORLD,YZWORL,FieldW, - + MATABS,XABSOR,YZABSO,FieldA, - + XPOSAB,X1ABSO,X2ABSO, - + XVERT ,YVERT ,ZVERT - diff --git a/examples/extended/electromagnetic/TestEm5/geant3/include/geomate.inc b/examples/extended/electromagnetic/TestEm5/geant3/include/geomate.inc new file mode 100644 index 0000000000..40ec15119b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/include/geomate.inc @@ -0,0 +1,6 @@ + COMMON/GEOMAT/MATWLD,XWORLD,YZWORL,FieldW, + + MATABS,XABSOR,YZABSO,FieldA, + + XPOSAB,X1ABSO,X2ABSO, + + XVERT ,YVERT ,ZVERT + + COMMON/TRAMED/deem,stma,stmi diff --git a/examples/extended/electromagnetic/TestEm5/geant3/include/histo.inc b/examples/extended/electromagnetic/TestEm5/geant3/include/histo.inc new file mode 100644 index 0000000000..7ddfd03129 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/include/histo.inc @@ -0,0 +1,8 @@ + CHARACTER*25 fileName + COMMON/HISTO1/fileName + + COMMON/HISTO2/idhist,nbBins,valmin,valmax,valunit + + PARAMETER (MaxHist = 16) + LOGICAL histo + COMMON/HISTO3/histo(MaxHist),histUnit(MaxHist),binWidth(MaxHist) diff --git a/examples/extended/electromagnetic/TestEm5/geant3/include/runinfo.inc b/examples/extended/electromagnetic/TestEm5/geant3/include/runinfo.inc new file mode 100644 index 0000000000..b5a35f85f6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/include/runinfo.inc @@ -0,0 +1,14 @@ + + COMMON/ENERGY/edep,sedep,sedep2 + + COMMON/NBSTEP/stpch,sstpch,sstpch2, + + stpne,sstpne,sstpne2 + + COMMON/TRKLEN/trkch,strkch,strkch2, + + trkne,strkne,strkne2 + + logical kill + COMMON/SECOND/ngamma,nelect,nposit,kill + + COMMON/TRANSM/nbtransm(2),itransmi, + + nbreflec(2),ireflect diff --git a/examples/extended/electromagnetic/TestEm5/geant3/kulchi.dat b/examples/extended/electromagnetic/TestEm5/geant3/kulchi.dat new file mode 100644 index 0000000000..60d418f150 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/kulchi.dat @@ -0,0 +1,15 @@ +FILE kulchi.paw +LIST +ABSOR 22 (aluminium) 98.5185e-4 (thicknX) 1. (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) +KINE 3 (electron) 0.00225 (Ekin) 90.0 (theta) 0.0 (phi) +*HISTO 5 (idh) 100 (nbins) 0. (tetmin) 25. (tetmax) 1.74533e-2 (deg) +*HISTO 6 (idh) 100 (nbins) -25. (tetmin) +25. (tetmax) 1.74533e-2 (deg) +SWIT 0 (draw) +DEBUG 1 1 10000 +TRIG 100000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run01.dat b/examples/extended/electromagnetic/TestEm5/geant3/run01.dat deleted file mode 100644 index 4ffb4094be..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run01.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot01 -LIST -ABSOR 27 (mate) 9.658e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.01570 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS3 100 0. 10. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run01a.dat b/examples/extended/electromagnetic/TestEm5/geant3/run01a.dat deleted file mode 100644 index 08170d45a1..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run01a.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot01a -LIST -ABSOR 27 (mate) 9.658e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.01570 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS3 60 0. 30. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run02.dat b/examples/extended/electromagnetic/TestEm5/geant3/run02.dat deleted file mode 100644 index e256bd206e..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run02.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot02 -LIST -ABSOR 27 (mate) 19.296e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.01570 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS3 100 0. 10. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run02a.dat b/examples/extended/electromagnetic/TestEm5/geant3/run02a.dat deleted file mode 100644 index 279c7564ea..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run02a.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot02a -LIST -ABSOR 27 (mate) 19.296e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.01570 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS3 60 0. 30. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run03.dat b/examples/extended/electromagnetic/TestEm5/geant3/run03.dat deleted file mode 100644 index 6bd1eb2cab..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run03.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot03 -LIST -ABSOR 23 (mate) 50.0e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 14 (Itype) 0.00656 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 100000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS3 60 0. 6. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run04.dat b/examples/extended/electromagnetic/TestEm5/geant3/run04.dat deleted file mode 100644 index f99e65d119..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run04.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot04 -LIST -ABSOR 23 (mate) 92.6e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 14 (Itype) 0.00656 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 100000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS3 60 0. 6. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run05.dat b/examples/extended/electromagnetic/TestEm5/geant3/run05.dat deleted file mode 100644 index 42bc8fa5ab..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run05.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot05 -LIST -ABSOR 22 (mate) 0.4005 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 14 (Itype) 69.068 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 100000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS3 100 0. 0.01 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run11.dat b/examples/extended/electromagnetic/TestEm5/geant3/run11.dat deleted file mode 100644 index 336a00b7e9..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run11.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot11 -LIST -ABSOR 23 (mate) 0.0061 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.0010 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS2 55 0. 1.1 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run12.dat b/examples/extended/electromagnetic/TestEm5/geant3/run12.dat deleted file mode 100644 index 7c2f8a9895..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run12.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot12 -LIST -ABSOR 23 (mate) 0.0105 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.0010 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS2 55 0. 1.1 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run13.dat b/examples/extended/electromagnetic/TestEm5/geant3/run13.dat deleted file mode 100644 index e179164652..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run13.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot13 -LIST -ABSOR 23 (mate) 0.0191 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.0010 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS2 55 0. 1.1 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run14.dat b/examples/extended/electromagnetic/TestEm5/geant3/run14.dat deleted file mode 100644 index ecb20d86d5..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run14.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot14 -LIST -ABSOR 23 (mate) 0.0530 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.0010 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS2 55 0. 1.1 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run15.dat b/examples/extended/electromagnetic/TestEm5/geant3/run15.dat deleted file mode 100644 index f37c66aa24..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run15.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot15 -LIST -ABSOR 23 (mate) 0.1000 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.0010 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS2 55 0. 1.1 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run16.dat b/examples/extended/electromagnetic/TestEm5/geant3/run16.dat deleted file mode 100644 index 70490ecb35..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run16.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot16 -LIST -ABSOR 23 (mate) 0.3000 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.0010 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HIS2 55 0. 1.1 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run21.dat b/examples/extended/electromagnetic/TestEm5/geant3/run21.dat deleted file mode 100644 index 9425409c93..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run21.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot21 -LIST -ABSOR 22 (mate) 0.53 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 25.0 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 100000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HI10 80 0.1 1000. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run22.dat b/examples/extended/electromagnetic/TestEm5/geant3/run22.dat deleted file mode 100644 index 57a4cd78d6..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run22.dat +++ /dev/null @@ -1,15 +0,0 @@ -FILE geant3.plot22 -LIST -ABSOR 28 (mate) 0.015 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 25.0 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) - 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) -TIME 2=5. -HI10 80 0.1 1000. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run55.dat b/examples/extended/electromagnetic/TestEm5/geant3/run55.dat deleted file mode 100644 index 8f0a1b6b9e..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run55.dat +++ /dev/null @@ -1,17 +0,0 @@ -FILE 1000gev.1mm.paw -LIST -ABSOR 25 (iron) 200. (thicknX) 200. (sizeYZ) 0. (field) -KINE 5 (muon) 1000. (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 1000 -DEBUG 1 0 10 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) -C 2*10.0e+3 (bcute/m) 2*10.0e+3 (dcute/m) 10.0e+3 (ppcutm) - 2*21.0e-6 (bcute/m) 2*1.3e-3 (dcute/m) 10.0e-3 (ppcutm) -HIS2 50 0. 50.e+3 -HIS5 50 950.e+3 1000.e+3 -TIME 2=3. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run61.dat b/examples/extended/electromagnetic/TestEm5/geant3/run61.dat deleted file mode 100644 index 4bbab6342d..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run61.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE geant3.plot61 -LIST -ABSOR 9 (mate) 98.5185e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 3 (Itype) 0.00225 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 100000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) - 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) -TIME 2=5. -HIS3 100 0. 25. -HI11 100 -25. 25. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run71.dat b/examples/extended/electromagnetic/TestEm5/geant3/run71.dat deleted file mode 100644 index 8a32ca58cf..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run71.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE geant3.plot71 -LIST -ABSOR 9 (mate) 5.0741e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 14 (Itype) 0.000766 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 100000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) - 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) -TIME 2=5. -HIS3 100 0. 9. -HI11 100 -9. 9. -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run81.dat b/examples/extended/electromagnetic/TestEm5/geant3/run81.dat deleted file mode 100644 index e681e1377d..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run81.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE geant3.plot81 -LIST -ABSOR 9 (mate) 800.00e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 14 (Itype) 0.15860 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 100000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) - 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) -TIME 2=5. -HIS3 100 0. 0.6 -HI11 100 -0.6 0.6 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/run91.dat b/examples/extended/electromagnetic/TestEm5/geant3/run91.dat deleted file mode 100644 index eb71197c22..0000000000 --- a/examples/extended/electromagnetic/TestEm5/geant3/run91.dat +++ /dev/null @@ -1,16 +0,0 @@ -FILE geant3.plot91 -LIST -ABSOR 9 (mate) 8000.4e-4 (thicknX) 10.0 (sizeYZ) 0. (field) -KINE 14 (Itype) 174.664 (Ekine) 90.0 (teta) 0.0 (phi) -TRIG 100000 -DEBUG 1 1 -SWIT 0 (draw) -LOSS 1 -HADR 0 -ABAN 0 -CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) - 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) -TIME 2=5. -HIS3 100 0. 0.004 -HI11 100 -0.004 0.004 -END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/shen1.dat b/examples/extended/electromagnetic/TestEm5/geant3/shen1.dat new file mode 100644 index 0000000000..202e00a473 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/shen1.dat @@ -0,0 +1,15 @@ +FILE shen1.paw +LIST +ABSOR 22 (aluminium) 0.4005 (thicknX) 1.0 (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) +KINE 14 (proton) 69.068 (Ekin) 90.0 (theta) 0.0 (phi) +*HISTO 5 (idh) 100 (nbins) 0. (tetmin) 0.01 (tetmax) 1.74533e-2 (deg) +KILL TRUE +SWIT 0 (draw) +DEBUG 1 1 10000 +TRIG 100000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/shen2.dat b/examples/extended/electromagnetic/TestEm5/geant3/shen2.dat new file mode 100644 index 0000000000..a3ec23675b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/shen2.dat @@ -0,0 +1,16 @@ +FILE shen2.paw +LIST +ABSOR 22 (aluminium) 8.004e-1 (thicknX) 1. (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-6 (cutneu/had/muo) + 2*6.89e-6 (bcute/m) 2*597.e-6 (dcute/m) +KINE 14 (proton) 174.664 (Ekin) 90.0 (theta) 0.0 (phi) +*HISTO 5 (idh) 100 (nbins) 0. (tetmin) 0.004 (tetmax) 1.74533e-2 (deg) +*HISTO 6 (idh) 100 (nbins) -0.004 (tetmin) +0.004 (tetmax) 1.74533e-2 (deg) +KILL TRUE +SWIT 0 (draw) +DEBUG 1 1 10000 +TRIG 100000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/ffuser.F b/examples/extended/electromagnetic/TestEm5/geant3/src/ffuser.F new file mode 100644 index 0000000000..abe29f1568 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/ffuser.F @@ -0,0 +1,11 @@ + + SUBROUTINE FFUSER(ikey) +* +* The routine is called when a *key card is read +* + CHARACTER*4 keyw +* + call UHTOC(ikey,4,keyw,4) + if (keyw.eq.'HIST') call uhinit +* + END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F index 8a4d17c166..b605f768fd 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/gukine.F @@ -11,7 +11,9 @@ #include "geant321/gcflag.inc" #include "geant321/gconst.inc" #include "geant321/gckine.inc" -#include "edepo.inc" +* +#include "geomate.inc" +#include "runinfo.inc" * DIMENSION VERTEX(3),PLAB(3) dimension rndm(2) @@ -31,26 +33,18 @@ XMASS = Q(JPA+7) PMOM = SQRT(PKINE(1)*(PKINE(1)+2*XMASS)) THETA = PKINE(2)*DEGRAD - PHI = PKINE(3)*DEGRAD + PHI = PKINE(3)*DEGRAD C PLAB(1)=PMOM*SIN(THETA)*COS(PHI) PLAB(2)=PMOM*SIN(THETA)*SIN(PHI) PLAB(3)=PMOM*COS(THETA) +* +* store the charge of primary particle in a free location + pkine(10) = Q(JPA+8) C CALL GSKINE(PLAB,IKINE,NVERT,0,0,NT) * * *** Kinematics debug IF (IEVENT.EQ.1.OR.IDEBUG.NE.0) CALL GPRINT('KINE',0) -C * -* *** initialisation per event - anbstep=1.e-6 - anch=0. - anne=0. - anele=0. - anpos=0. - EDEP=0. - tra=0. - ref=0. -* END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/guout.F b/examples/extended/electromagnetic/TestEm5/geant3/src/guout.F index 7291732310..29c7548155 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/guout.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/guout.F @@ -1,38 +1,55 @@ SUBROUTINE GUOUT -C - -#include "geant321/gcbank.inc" -#include "geant321/gcunit.inc" +* +* called at end of event +* #include "geant321/gcflag.inc" -#include "geant321/gconst.inc" -#include "edepo.inc" +* +#include "runinfo.inc" +#include "histo.inc" +* +* *** energy in absorber + if (histo(1)) call hfill (1,edep/histUnit(1),0.,1.) + sedep = sedep + edep + sedep2 = sedep2 + edep**2 +* +* *** number of steps + sstpch = sstpch + stpch + sstpch2 = sstpch2 + stpch**2 +* + sstpne = sstpne + stpne + sstpne2 = sstpne2 + stpne**2 +* +* *** track length + strkch = strkch + trkch + strkch2 = strkch2 + trkch**2 +* + strkne = strkne + trkne + strkne2 = strkne2 + trkne**2 +* +* *** transmission, reflection counters + if (itransmi.eq.1) then + nbtransm(1) = nbtransm(1) + 1 + else if (itransmi.eq.2) then + nbtransm(1) = nbtransm(1) + 1 + nbtransm(2) = nbtransm(2) + 1 + endif +* + if (ireflect.eq.1) then + nbreflec(1) = nbreflec(1) + 1 + else if (ireflect.eq.2) then + nbreflec(1) = nbreflec(1) + 1 + nbreflec(2) = nbreflec(2) + 1 + endif +* +#ifndef batch * - dimension runerr(2) * *** drawing * -#ifndef batch IF (ISWIT(1).NE.0) THEN CALL GDHEAD (110110,'TestEm5',0.) CALL GDSHOW (3) CALL GDXYZ (0) END IF #endif -* - call hfill(1,anbstep,0.,1.) - sstep=sstep+anbstep - s2step=s2step+anbstep*anbstep - sanch = sanch+anch - sanch2=sanch2+anch*anch - sanne = sanne+anne - sanne2=sanne2+anne*anne - sanele=sanele+anele - sanpos=sanpos+anpos - SEDEP=SEDEP+EDEP - SEDEP2=SEDEP2+EDEP**2 - stra=stra+tra - sref=sref+ref - eein=1000.*EDEP - CALL HFILL(2,eein,0.,1.0) -C END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gustep.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gustep.F index 05739a1665..370e09de33 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/gustep.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/gustep.F @@ -1,22 +1,15 @@ SUBROUTINE GUSTEP -C - -#include "geant321/gcbank.inc" -#include "geant321/gctmed.inc" +* +#include "geant321/gcflag.inc" #include "geant321/gckine.inc" #include "geant321/gcking.inc" -#include "geant321/gcflag.inc" -#include "geant321/gctrak.inc" -#include "geant321/gcvolu.inc" -#include "geant321/gccuts.inc" #include "geant321/gconst.inc" -#include "geant321/gcunit.inc" -#include "edepo.inc" -C - parameter ( facdeg=180./3.1415927 ) - DATA IEVOLD/0/ - +#include "geant321/gctmed.inc" +#include "geant321/gctrak.inc" +* +#include "runinfo.inc" +#include "histo.inc" * * * *** Debug event and store tracks for drawing @@ -24,153 +17,42 @@ C IF ((ISWIT(1).EQ.1).AND.(CHARGE.NE.0.)) CALL GSXYZ IF (ISWIT(1).EQ.2) CALL GSXYZ * -* - IF(IEVOLD.NE.IEVENT) THEN - IEVOLD=IEVENT - ITOLD=0 - NMOLD=0 - XO=VERT(1) - RO=sqrt(vect(2)**2+vect(3)**2) - ENDIF -C -C TRACK FLAG -C - ITFL=ISTAK+10000*ITRA+100000*IVERT - IF(ITOLD.NE.IEVENT) THEN - XO=VERT(1) - RO=sqrt(vect(2)**2+vect(3)**2) - ENDIF -C - X=VECT(1) -C - IF(NGKINE.GT.0) THEN - do 10 i=1,ngkine - itypa=gkin(5,i) -* all the charged secondaries - if(itypa.ne.1) call hfill(9,10.*GPOS(1,i),0.,1.) -* in absorber only ! - if(NUMED.EQ.1) then - if(itypa.eq.1) then - anne=anne+1. - else - anch=anch+1. - if(itypa.eq.2) anpos=anpos+1. - if(itypa.eq.3) anele=anele+1. - tsec=1000.*(GKIN(4,i)-510.999e-6) - call hfill(8,tsec,0.,1.) - endif - endif -10 continue - CALL GSKING(0) - ENDIF +* *** collect informations in the absorber only * - R=SQRT(VECT(2)**2+VECT(3)**2) - if((r.le.YZABSO).and.(xo.lt.X2ABSO).and.(x.ge.X2ABSO)) then - if(vect(4).gt.0.) then - if(ipart.eq.1) call hfill(10,log10(1000.*gekin),0.,1.) - if(ipart.eq.ikine) then - tra=1. - if(NUMED.eq.1) then + if (numed.ne.1) return +* +* energy deposit + edep = edep + destep +* +* number of steps and total track length + if (charge.ne.0.) then + stpch = stpch + 1. + trkch = trkch + step + else + stpne = stpne + 1. + trkne = trkne + step + endif +* +* manage secondaries + if (ngkine.gt.0) then + do k = 1,ngkine + energy = gkin(4,k) + id = gkin(5,k) + if (id.eq.1) then + ngamma = ngamma + 1 + if (histo(3)) call hfill(3,log10(1000*energy),0.,1.) + else if (id.eq.2) then + nposit = nposit + 1 + energy = energy - emass + if (histo(2)) call hfill(2,energy/histUnit(2),0.,1.) + else if (id.eq.3) then + nelect = nelect + 1 + energy = energy - emass + if (histo(2)) call hfill(2,energy/histUnit(2),0.,1.) + endif + enddo +* keep or kill all secondaries + if (.not.kill) call gsking(0) + endif * - call hfill(5,1000.*gekin,0.,1.) - - if((1-vect(4)).gt.1.e-4) then - theta=acos(vect(4)) - else - theta=sqrt(vect(5)**2+vect(6)**2) - endif - if(nhi3.gt.0) then - h1=his3(1)/facdeg - h2=his3(2)/facdeg - dth=(h2-h1)/float(nhi3) - ibin=int((theta-h1)/dth)+1 - if((ibin.le.0).or.(ibin.gt.nhi3)) then - w=1. - else - th=ibin*dth - if(theta.GT.0.001*dth) then - w=PI/(64800.*dth*sin(theta)) - else - nth0=nth0+1 - if(nth0.le.10) then - thdeg=theta*facdeg - write(6,997) thdeg -997 format('theta<0.001*dth (from plot excluded)' - + ,' theta=',e12.4,' deg') - endif - w=0. - endif - endif - theta = facdeg*theta - call hfill(3,theta,0.,w) - endif - if(nhi11.gt.0) then -C proj.angle distribution plot - vx = vect(4) - vy = vect(5) - vplane = sqrt(vx*vx+vy*vy) - thpr = 0. - if(vplane.gt.0.) then - vx = vx/vplane - vy = vy/vplane - if((1.-vx).gt.1.e-4) then - thpr = acos(vx) - if(vy.lt.0.) thpr = -thpr - else - thpr = vy - endif - endif - thpr = 90.*thpr/PIBY2 - call hfill(11,thpr,0.,1.) - endif - call hfill(4,10.*R,0.,1.) - endif - endif - endif - endif - - if((r.le.YZABSO).and.(xo.gt.X1ABSO).and.(x.le.X1ABSO)) then - if(vect(4).lt.0.) then - if(ipart.eq.ikine) then - ref=1. - call hfill(7,1000.*gekin,0.,1.) - if((1.+vect(4)).gt.1.e-6) then - theta=acos(vect(4))-PIBY2 - else - theta=sqrt(2.*(1.+vect(4))) - endif - if(nhi6.gt.0) then - h1=his6(1)/facdeg - h2=his6(2)/facdeg - dth=(h2-h1)/float(nhi6) - ibin=int((theta-h1)/dth)+1 - if((ibin.le.0).or.(ibin.gt.nhi6)) then - w=0. - else - th=ibin*dth - if(theta.GT.0.001*dth) then - w=PI/(64800.*dth*sin(theta)) - else - thdeg=theta*facdeg - write(6,997) thdeg - w=0. - endif - theta = facdeg*theta - call hfill(6,theta,0.,w) - endif - endif - endif - endif - endif - - IF(NUMED.EQ.1) THEN - anbstep=anbstep+1. - EDEP = EDEP+DESTEP - ENDIF -C - NMOLD = NUMED - ITOLD=IEVENT - XO=X - RO=R -C END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gutrak.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gutrak.F new file mode 100644 index 0000000000..d12d824dec --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/gutrak.F @@ -0,0 +1,89 @@ + + SUBROUTINE GUTRAK +* +* User routine to control tracking of one track +* Called by : GTREVE +* +#include "geant321/gckine.inc" +#include "geant321/gconst.inc" +#include "geant321/gctrak.inc" +* +#include "geomate.inc" +#include "runinfo.inc" +#include "histo.inc" +* + logical transmit, reflect, charged, neutral +* +* *** beginning of the track +* + charged = (charge.ne.0.) + neutral = .not.charged +* + kflag = 0 + if (charge.eq.pkine(10)) kflag = 1 + if ((itra.eq.1).and.(istak.eq.0)) kflag = 2 +* +* *** perform tracking +* + CALL GTRACK +* +* *** end of the track +* + transmit = (vect(1).ge. 0.49*xworld) + reflect = (vect(1).le.-0.49*xworld) +* + if (transmit) itransmi = max(itransmi,kflag) + if (reflect) ireflect = max(ireflect,kflag) +* +* *** histograms +* + id = 0 +* +* energy spectrum at exit +* + if (transmit.and.charged) id = 4 + if (transmit.and.neutral) id = 8 + if (reflect .and.charged) id = 11 + if (reflect .and.neutral) id = 14 + if (id.ne.0.and.histo(id)) then + call hfill (id,gekin/histUnit(id),0.,1.) + endif +* +* space angle distribution at exit +* + if (transmit.and.charged) id = 5 + if (transmit.and.neutral) id = 9 + if (reflect .and.charged) id = 12 + if (reflect .and.neutral) id = 15 + if (id.ne.0.and.histo(id)) then + unit = histUnit(id) + theta = acos(abs(vect(4))) + dteta = binWidth(id)*unit + dOmega = twopi*sin(theta)*dteta + weight = 0. + if (dOmega.gt.(1./big)) weight = 1./dOmega + call hfill (id,theta/unit,0.,weight*unit*unit) + endif +* +* projected angle distribution at exit +* + if (transmit.and.charged) id = 6 + if (transmit.and.neutral) id = 10 + if (reflect .and.charged) id = 13 + if (reflect .and.neutral) id = 16 + if (id.ne.0.and.histo(id)) then + thety = atan(vect(5)/abs(vect(4))) + thetz = atan(vect(6)/abs(vect(4))) + call hfill (id,thety/histUnit(id),0.,1.) + call hfill (id,thetz/histUnit(id),0.,1.) + endif +* +* radial dispersion at exit +* + if (transmit.and.charged) id = 7 + if (id.ne.0.and.histo(id)) then + radius = sqrt(vect(2)**2 + vect(3)**2) + call hfill (id,radius/histUnit(id),0.,1.) + endif +* + END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/gutrev.F b/examples/extended/electromagnetic/TestEm5/geant3/src/gutrev.F new file mode 100644 index 0000000000..71b3a1c155 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/gutrev.F @@ -0,0 +1,33 @@ + + SUBROUTINE GUTREV +* +* +* User routine to control tracking of one event +* Called by : GTRIG +* +#include "runinfo.inc" +* +* *** initialisation event by event +* +* energy deposit in absorber + edep = 0. +* +* number of steps in absorber + stpch = 0. + stpne = 0. +* +* track length in absorber + trkch = 0. + trkne = 0. +* +* transmission, reflection flag + itransmi = 0 + ireflect = 0 +* +* *** perform the tracking of the event +* + CALL GTREVE +* +* *** the 'end of event' has been done in GUOUT +* + END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/ugeom.F b/examples/extended/electromagnetic/TestEm5/geant3/src/ugeom.F index 9ea24eec85..60fb337d92 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/ugeom.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/ugeom.F @@ -1,12 +1,8 @@ SUBROUTINE UGEOM -C -#include "geant321/gcbank.inc" -#include "geant321/gcunit.inc" -#include "geant321/gctrak.inc" -#include "geant321/gckine.inc" -#include "edepo.inc" -C +* +#include "geomate.inc" +* DIMENSION AWAT(2),ZWAT(2),WWAT(2) DIMENSION AAIR(2),ZAIR(2),WAIR(2) DIMENSION PALL(3),PVOL(3) @@ -55,11 +51,9 @@ C if (FieldA.ne.0.) IFIELD=3 FIELDM=10*FieldA * - IF(IGAUTO.LE.0) THEN - DEEMAX=DEEM - STMIN =STMI - STEMAX=STMA - ENDIF + DEEMAX=DEEM + STMIN =STMI + STEMAX=STMA CALL GSTMED(1,'ABSORBER',MATABS,0,IFIELD, * FIELDM,TMAXFD,STEMAX,DEEMAX,EPSIL,STMIN,0,0) C @@ -84,6 +78,9 @@ C C BUILD GEOMETRY C CALL GSPOS('abso',1,'worl',XPOSAB,0.,0.,0,'ONLY') +* + X1ABSO = XPOSAB - 0.5*XABSOR + X2ABSO = XPOSAB + 0.5*XABSOR * * *** Close geometry banks. (mandatory system routine) CALL GGCLOS diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/uginit.F b/examples/extended/electromagnetic/TestEm5/geant3/src/uginit.F index 020da52bd4..fb679e8286 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/uginit.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/uginit.F @@ -1,78 +1,79 @@ SUBROUTINE UGINIT -C -#include "geant321/gcunit.inc" -#include "geant321/gclist.inc" -#include "geant321/gckine.inc" -#include "edepo.inc" +* +#include "geomate.inc" +#include "runinfo.inc" +#include "histo.inc" - CHARACTER*25 filnam - CHARACTER*25 HF - CHARACTER*4 KEY - CHARACTER*2 SPACES - DATA HF/'testem5.paw'/ + CHARACTER*25 filnam + CHARACTER*4 key + CHARACTER*2 spaces C C INITIALIZE GEANT STRUCTURES C CALL GINIT * -C default values (materials,sizes) +* default values (materials,sizes,tracking parameters) * - MATABS = 23 - XABSOR = 1. - YZABSO = 2. + matabs = 23 + Xabsor = 1. + YZabso = 2. FieldA = 0. * - MATWLD = 30 - XWORLD = 0. - YZWORL = 0. + matwld = 30 + Xworld = 0. + YZworl = 0. FieldW = 0. * - XPOSAB = 0. + xposab = 0. * - XVERT = -1000. - YVERT = 0. - ZVERT = 0. + xvert = -1000. + yvert = 0. + zvert = 0. * - NAME=HF -C -C DEFINE DATA CARDS -C - CALL FFKEY('WORLD',MATWLD,4,'mixed') - CALL FFKEY('ABSOR',MATABS,4,'mixed') - CALL FFKEY('XPOS' ,XPOSAB,1,'real') - CALL FFKEY('VERT' ,XVERT ,3,'real') + deem = 0.2 + stmi = 0.001 + stma = 1.e+10 + kill = .false. * - CALL FFKEY('HIS1',NHI1 ,3,'mixed') - CALL FFKEY('HIS2',NHI2 ,3,'mixed') - CALL FFKEY('HIS3',NHI3 ,3,'mixed') - CALL FFKEY('HIS4',NHI4 ,3,'mixed') - CALL FFKEY('HIS5',NHI5 ,3,'mixed') - CALL FFKEY('HIS6',NHI6 ,3,'mixed') - CALL FFKEY('HIS7',NHI7 ,3,'mixed') - CALL FFKEY('HIS8',NHI8 ,3,'mixed') - CALL FFKEY('HIS9',NHI9 ,3,'mixed') - CALL FFKEY('HI10',NHI10,3,'mixed') - CALL FFKEY('HI11',NHI11,3,'mixed') +* histograms + do ih = 1,MaxHist + histo(ih) = .false. + enddo * - CALL FFKEY('DEEM',DEEM, 1,'REAL') - CALL FFKEY('STMA',STMA, 1,'REAL') - CALL FFKEY('STMI',STMI, 1,'REAL') +* *** Define data cards +* +* geometry + CALL FFKEY('WORLD',matwld,4,'mixed') + CALL FFKEY('ABSOR',matabs,4,'mixed') + CALL FFKEY('XPOS' ,xposab,1,'real') + CALL FFKEY('VERT' ,xvert ,3,'real') +* +* histograms + CALL FFKEY('HISTO',idhist,5,'MIXED') +* +* tracking parameters + CALL FFKEY('DEEM',deem, 1,'REAL') + CALL FFKEY('STMA',stma, 1,'REAL') + CALL FFKEY('STMI',stmi, 1,'REAL') +* + CALL FFKEY('KILL',kill, 1,'LOGICAL') * * *** read data cards PRINT *, 'G3 > gives the filename of the data cards to be read:' READ (*,'(A)') filnam - IF (filnam.EQ.' ') filnam = 'run01.dat' + IF (filnam.EQ.' ') filnam = 'testem5.dat' OPEN (unit=5,file=filnam,status='unknown',form='formatted') * * filename should be 1st data card ! - READ(5,98)KEY,SPACES,NAME + fileName = 'testem5.paw' + READ(5,98)key,spaces,fileName 98 FORMAT(A4,A2,A25) * CALL GFFGO * - write(6,99) NAME -99 FORMAT(/,15x,'histogram file --> NAME:',A25) + write(6,99) fileName +99 FORMAT(/,15x,'histogram file --> Name: ',A25) C C INITIALIZE ZEBRA STRUCTURES C @@ -98,30 +99,36 @@ C CALL GPRINT('MATE',0) CALL GPRINT('TMED',0) CALL GPRINT('VOLU',0) -C -C DEFINE HISTOGRAMS -C - CALL UHINIT -C -C SOME MORE INITIALISATION -C - SEDEP=0. - SEDEP2=0. - sanch=0. - sanch2=0. - sanne=0. - sanne2=0. - sanele=0. - sanpos=0. - sstep=0. - s2step=0. - stra=0. - sref=0. - nth0=0 * - X1ABSO = XPOSAB-0.5*XABSOR - X2ABSO = XPOSAB+0.5*XABSOR +* global initialisation for the run * - if(xvert.le.-1000.) XVERT=-0.5*XWORLD +* energy + sedep = 0. + sedep2 = 0. +* +* number of steps + sstpch = 0. + sstpch2 = 0. + sstpne = 0. + sstpne2 = 0. +* +* track length + strkch = 0. + strkch2 = 0. + strkne = 0. + strkne2 = 0. +* +* number of secondaries + ngamma = 0 + nelect = 0 + nposit = 0 +* +* transmission, reflection counters + nbtransm(1) = 0 + nbtransm(2) = 0 + nbreflec(1) = 0 + nbreflec(2) = 0 +* + if (xvert.le.-1000.) xvert = -0.5*Xworld * END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/uglast.F b/examples/extended/electromagnetic/TestEm5/geant3/src/uglast.F index a816437d44..1bc5fe4685 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/uglast.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/uglast.F @@ -1,61 +1,113 @@ SUBROUTINE UGLAST -C -#include "geant321/gcbank.inc" -#include "geant321/gcunit.inc" +* #include "geant321/gcflag.inc" -#include "geant321/gconst.inc" -#include "geant321/gckine.inc" -#include "edepo.inc" -C +* +#include "runinfo.inc" +#include "histo.inc" +* + CHARACTER*4 unitm,unitr + DIMENSION transmit(2),reflect(2) +* CALL GLAST -C - IF(IEVENT.GT.0) THEN - AEV=FLOAT(IEVENT) - SEDEP=SEDEP/AEV - SE2=SEDEP2/AEV-SEDEP**2 - SEDEP2=0. - IF(SE2.GT.0.) SEDEP2=SQRT(SE2/AEV) * - WRITE(CHMAIL,1002)SEDEP,SEDEP2 - CALL GMAIL(0,0) - sstep=sstep/aev - s2step=s2step/aev-sstep*sstep - sigst=0. - if(s2step.gt.0.) sigst=sqrt(s2step/aev) - write(6,122)sstep,sigst -122 format(/,' mean number of steps=',f15.3,' +- ',f15.3) - sanch=sanch/aev - sigch2=sanch2/aev-sanch*sanch - sigch=0. - if(sigch2.gt.0.) sigch=sqrt(sigch2/aev) - sanne=sanne/aev - signe2=sanne2/aev-sanne*sanne - signe=0. - if(signe2.gt.0.) signe=sqrt(signe2/aev) - write(6,123) sanch,sigch,sanne,signe -123 format(/,' mean nb of charged secondaries=',f15.4,' +- ',f15.4, - + /,' mean nb of neutral secondaries=',f15.4,' +- ',f15.4) - sanele=sanele/aev - sanpos=sanpos/aev - write(6,124)sanele,sanpos -124 format(/,' mean nb of e-s = ',f15.4,' and e+s=',f15.4) - stra=stra/aev - sref=sref/aev - write(6,125)stra,sref -125 format(/,' (number) transmission coeff=',e12.4, - + ' reflexion coeff=',e12.4) - write(6,126) nth0 -126 format(/,' nb of (theta<0.001*bin) events=',i6) + IF(ievent.le.0) return +* + PRINT 749 + PRINT 750,ievent +* + totevent = float(ievent) * -CCC CALL HISTDO +* energy deposit + fmean = sedep/totevent + rms2 = sedep2/totevent-fmean**2 + rms = 0. + if (rms2.gt.0.) rms = sqrt(rms2/totevent) * - CALL HPLEND + call gevkev (fmean,Emean,unitm) + call gevkev (rms ,Erms ,unitr) + print 752, Emean,unitm,Erms,unitr +* +* track length (charged) + fmean = strkch/totevent + rms2 = strkch2/totevent-fmean**2 + rms = 0. + if (rms2.gt.0.) rms = sqrt(rms2/totevent) + print 753, fmean,rms +* +* track length (neutral) + fmean = strkne/totevent + rms2 = strkne2/totevent-fmean**2 + rms = 0. + if (rms2.gt.0.) rms = sqrt(rms2/totevent) + print 754, fmean,rms +* +* number of steps (charged) + fmean = sstpch/totevent + rms2 = sstpch2/totevent-fmean**2 + rms = 0. + if (rms2.gt.0.) rms = sqrt(rms2/totevent) + print 755, fmean,rms +* +* number of steps (neutral) + fmean = sstpne/totevent + rms2 = sstpne2/totevent-fmean**2 + rms = 0. + if (rms2.gt.0.) rms = sqrt(rms2/totevent) + print 756, fmean,rms +* +* number of secondaries + gamma = ngamma/totevent + elect = nelect/totevent + posit = nposit/totevent + print 757, gamma,elect,posit +* +* transmission & reflection coefficients + transmit(1) = 100.*nbtransm(1)/totevent + transmit(2) = 100.*nbtransm(2)/totevent + reflect (1) = 100.*nbreflec(1)/totevent + reflect (1) = 100.*nbreflec(2)/totevent + print 761, transmit(2) + print 762, transmit(1) + print 763, reflect (2) + print 764, reflect (1) +* + print 749 +* +* +* *** histograms +* + call HPLEND + call HRPUT(0,fileName,'N') +* +* *** formats +* + 749 FORMAT(/ ,80(1H=),/) + 750 FORMAT(' Number of events = ', I7) +* + 752 FORMAT(/,' Total energy deposit in absorber per event = ', + + F8.3,A4,' +- ',F6.2,A4) +* + 753 FORMAT(/,' Total track length (charged) in absorber per event = ', + + F8.4,' cm +- ',F8.4, ' cm') + 754 FORMAT( ' Total track length (neutral) in absorber per event = ', + + F8.4,' cm +- ',F8.4, ' cm') +* + 755 FORMAT(/,' Number of steps (charged) in absorber per event = ', + + F7.3,' +- ',F7.3) + 756 FORMAT( ' Number of steps (neutral) in absorber per event = ', + + F7.3,' +- ',F7.3) +* + 757 FORMAT(/,' Number of secondaries per event : ', + + 'gammas = ',F8.3, '; electrons = ',F8.3,'; positrons =',F8.3) +* + 761 FORMAT(/,' Nb of events with the primary particle transmitted = ', + + F6.2, ' %') + 762 FORMAT( ' Nb of events with at least 1 particle transmitted ', + + '(same charge as primary) = ',F6.2, ' %') + 763 FORMAT(/,' Nb of events with the primary particle reflected = ', + + F6.2, ' %') + 764 FORMAT( ' Nb of events with at least 1 particle reflected ', + + '(same charge as primary) = ',F6.2, ' %') * - CALL HRPUT(0,NAME,'N') -C - ENDIF -C -1002 FORMAT(5X,'energy deposit=',E12.4,' +- ',E12.4) -C END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F b/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F index b738666873..4217a82461 100644 --- a/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F +++ b/examples/extended/electromagnetic/TestEm5/geant3/src/uhinit.F @@ -1,56 +1,42 @@ SUBROUTINE UHINIT -C -#include "geant321/gcbank.inc" -#include "geant321/gckine.inc" -#include "edepo.inc" -C - IF(NHI1.GT.0) THEN - CALL HBOOK1(1,'number of steps/event' - + ,NHI1,HIS1(1),HIS1(2),0.) - ENDIF - IF(NHI2.GT.0) THEN - CALL HBOOK1(2,'energy deposit in absorber (MeV)' - + ,NHI2,HIS2(1),HIS2(2),0.) - ENDIF - IF(NHI3.GT.0) THEN - CALL HBOOK1(3,'angle distribution at exit(deg)' - + ,NHI3,HIS3(1),HIS3(2),0.) - ENDIF - IF(NHI11.GT.0) THEN - CALL HBOOK1(11,'proj. angle distribution at exit(deg)' - + ,NHI11,HIS11(1),HIS11(2),0.) - ENDIF - IF(NHI4.GT.0) THEN - CALL HBOOK1(4,'lateral distribution at exit(mm)' - + ,NHI4,HIS4(1),HIS4(2),0.) - ENDIF - IF(NHI5.GT.0) THEN - CALL HBOOK1(5,'kinetic energy of the primary at exit(MeV)' - + ,NHI5,HIS5(1),HIS5(2),0.) - ENDIF - IF(NHI6.GT.0) THEN - CALL HBOOK1(6,'angle distr. of backscattered primaries(deg)' - + ,NHI6,HIS6(1),HIS6(2),0.) - ENDIF - IF(NHI7.GT.0) THEN - CALL HBOOK1(7,'kinetic energy of backscattered primaries(MeV)' - + ,NHI7,HIS7(1),HIS7(2),0.) - ENDIF - IF(NHI8.GT.0) THEN - CALL HBOOK1(8,'kinetic energy of the charged secondaries(MeV)' - + ,NHI8,HIS8(1),HIS8(2),0.) - ENDIF - IF(NHI9.GT.0) THEN - CALL HBOOK1(9,'z of secondary charged vertices (mm)' - + ,NHI9,HIS9(1),HIS9(2),0.) - ENDIF - IF(NHI10.GT.0) THEN - CALL HBOOK1(10,'energy of gammas escaping the absorber(MeV)' -* + ,NHI10,HIS10(1),HIS10(2),0.) - + ,NHI10,log10(HIS10(1)),log10(HIS10(2)),0.) - ENDIF * - CALL HIDOPT(0,'STAT') +* +#include "histo.inc" +* + CHARACTER*50 title(16) +* + data title / + 1 'energy deposit in absorber', + 2 'energy of charged secondaries at creation', + 3 'energy of gammas at creation (log10(ekin/MeV))', + 4 '(transmit, charged) : kinetic energy at exit', + 5 '(transmit, charged) : space angle at exit', + 6 '(transmit, charged) : projected angle at exit', + 7 '(transmit, charged) : radial dispersion at exit', + 8 '(transmit, neutral) : kinetic energy at exit', + 9 '(transmit, neutral) : space angle at exit', + + '(transmit, neutral) : projected angle at exit', + 1 '(reflect , charged) : kinetic energy at exit', + 2 '(reflect , charged) : space angle at exit', + 3 '(reflect , charged) : projected angle at exit', + 4 '(reflect , neutral) : kinetic energy at exit', + 5 '(reflect , neutral) : space angle at exit', + 6 '(reflect , neutral) : projected angle at exit' / +* + if (histo(idhist)) call hdelet(idhist) +* + vmin = valmin + vmax = valmax + if (idhist.eq.3) then + vmin = log10(1000*valmin) + vmax = log10(1000*valmax) + endif + call hbook1(idhist,title(idhist),nbBins,vmin,vmax,0.) +* + histo (idhist) = .true. + binWidth(idhist) = (valmax-valmin)/nbBins + if (valunit.le.0.) valunit = 1. + histUnit(idhist) = valunit * END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/testem5.dat b/examples/extended/electromagnetic/TestEm5/geant3/testem5.dat new file mode 100644 index 0000000000..4dde66156e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/testem5.dat @@ -0,0 +1,15 @@ +FILE testem5.paw +LIST +ABSOR 23 (silicon) 20.5e-4 (thicknX) 0.1 (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) +KINE 8 (pion) 5.0 (Ekine) 90.0 (theta) 0.0 (phi) +*HISTO 1 (idh) 100 (nbins) 0. (Emin) 50. (Emax) 1.e-6 (keV) +KILL FALSE +SWIT 0 (draw) +DEBUG 2 1 10000 +TRIG 100000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/tramu.dat b/examples/extended/electromagnetic/TestEm5/geant3/tramu.dat new file mode 100644 index 0000000000..9dbc463e1c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/tramu.dat @@ -0,0 +1,15 @@ +FILE tramu.paw +LIST +ABSOR 25 (iron) 300. (thicknX) 300. (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*21.0e-6 (bcute/m) 2*1.3e-3 (dcute/m) 10.e-3 (ppcutm) +KINE 5 (muon) 1000. (Ekin) 90.0 (theta) 0.0 (phi) +*HISTO 4 (idh) 80 (nbins) 920. (Emin) 1000. (Emax) 1. (GeV) +KILL TRUE +SWIT 0 (draw) +DEBUG 1 1 1000 +TRIG 10000 +END diff --git a/examples/extended/electromagnetic/TestEm5/geant3/vincour.dat b/examples/extended/electromagnetic/TestEm5/geant3/vincour.dat new file mode 100644 index 0000000000..0d138d466b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/geant3/vincour.dat @@ -0,0 +1,16 @@ +FILE vincour.paw +LIST +ABSOR 23 (silicon) 50.0e-4 (thicknX) 1.0 (sizeYZ) 0. (field) +C ABSOR 23 (silicon) 92.6e-4 (thicknX) 1.0 (sizeYZ) 0. (field) +LOSS 1 +HADR 0 +ABAN 0 +CUTS 10.0e-6 (cutgam) 10.0e-6 (cutele) 3*10.e-3 (cutneu/had/muo) + 2*10.0e-6 (bcute/m) 2*10.0e-6 (dcute/m) +KINE 14 (proton) 0.00656 (Ekin) 90.0 (theta) 0.0 (phi) +*HISTO 5 (idh) 60 (nbins) 0. (tetmin) 6. (tetmax) 1.74533e-2 (deg) +KILL TRUE +SWIT 0 (draw) +DEBUG 1 1 10000 +TRIG 100000 +END diff --git a/examples/extended/electromagnetic/TestEm5/gottsch.mac b/examples/extended/electromagnetic/TestEm5/gottsch.mac new file mode 100644 index 0000000000..b84506b748 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/gottsch.mac @@ -0,0 +1,31 @@ +# $Id: gottsch.mac,v 1.1 2003/08/11 10:03:21 maire Exp $ +# +# macro file for TestEm5.cc +# +# 158.6 MeV protons, transmitted through 0.2160 g/cm2 Al +# B.Gottschalk et al. NIM B74 (1993) page 467. +# +# proj. angle distr. exp(-0.5*(th/th0)**2) th0 = 3.534 +- 0.491 mrad +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Aluminium +/testem/det/setAbsThick 0.8 mm +/testem/det/setAbsYZ 1 cm +# +/testem/phys/setCuts 1 mm +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle proton +/gun/energy 158.6 MeV +# +/testem/histo/setFileName gottsch.paw +/testem/histo/setHisto 5 100 0.0 0.6 deg #space angle +/testem/histo/setHisto 6 100 -0.6 +0.6 deg #projected angle +# +/testem/stack/killSecondaries +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm5/hanson.mac b/examples/extended/electromagnetic/TestEm5/hanson.mac new file mode 100644 index 0000000000..a855ecc8a7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/hanson.mac @@ -0,0 +1,32 @@ +# $Id: hanson.mac,v 1.1 2003/08/11 10:03:55 maire Exp $ +# +# macro file for TestEm5.cc +# +# angle distribution of 15.7 MeV electrons +# transmitted through thin gold foils. +# A.O.Hanson et al. Phys.Rev.84 (1951) page 634. +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Gold +/testem/det/setAbsThick 9.658 mum +###/testem/det/setAbsThick 19.296 mum +/testem/det/setAbsYZ 1 cm +# +/testem/phys/setGCut 13.0 mum +/testem/phys/setECut 1.12 mum +/testem/phys/setPCut 1.12 mum +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle e- +/gun/energy 15.7 MeV +# +/testem/histo/setFileName hanson.paw +/testem/histo/setHisto 5 100 0 10 deg #space angle +###/testem/histo/setHisto 5 60 0 30 deg #space angle +# +/testem/event/printModulo 100000 +/run/beamOn 1000000 diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh similarity index 60% rename from examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh rename to examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh index 8d60a57936..59502d6d1d 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/DetectorConstruction.hh @@ -21,45 +21,43 @@ // ******************************************************************** // // -// $Id: Em5DetectorConstruction.hh,v 1.5 2003/04/30 14:12:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.hh,v 1.3 2003/09/15 16:54:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5DetectorConstruction_h -#define Em5DetectorConstruction_h 1 +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 #include "G4VUserDetectorConstruction.hh" +#include "G4LogicalVolume.hh" #include "globals.hh" -#include "G4UnitsTable.hh" -#include "G4ios.hh" class G4Box; -class G4LogicalVolume; class G4VPhysicalVolume; class G4Material; +class G4MaterialCutsCouple; class G4UniformMagField; -class Em5DetectorMessenger; -class Em5CalorimeterSD; +class DetectorMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5DetectorConstruction : public G4VUserDetectorConstruction +class DetectorConstruction : public G4VUserDetectorConstruction { public: - - Em5DetectorConstruction(); - ~Em5DetectorConstruction(); + + DetectorConstruction(); + ~DetectorConstruction(); public: - - void SetAbsorberMaterial (G4String); - void SetAbsorberThickness(G4double); - void SetAbsorberSizeYZ (G4double); - + + void SetAbsorberMaterial (G4String); + void SetAbsorberThickness(G4double); + void SetAbsorberSizeYZ (G4double); + void SetAbsorberXpos(G4double); void SetWorldMaterial(G4String); @@ -67,57 +65,57 @@ class Em5DetectorConstruction : public G4VUserDetectorConstruction void SetWorldSizeYZ (G4double); void SetMagField(G4double); - + G4VPhysicalVolume* Construct(); void UpdateGeometry(); - + public: - - void PrintCalorParameters(); - - G4Material* GetAbsorberMaterial() {return AbsorberMaterial;}; - G4double GetAbsorberThickness() {return AbsorberThickness;}; + + void PrintCalorParameters(); + + const G4MaterialCutsCouple* GetAbsorberMaterial() const + {return logicAbsorber->GetMaterialCutsCouple();}; + G4double GetAbsorberThickness() {return AbsorberThickness;}; G4double GetAbsorberSizeYZ() {return AbsorberSizeYZ;}; - - G4double GetAbsorberXpos() {return XposAbs;}; + + G4double GetAbsorberXpos() {return XposAbs;}; G4double GetxstartAbs() {return xstartAbs;}; G4double GetxendAbs() {return xendAbs;}; - + G4Material* GetWorldMaterial() {return WorldMaterial;}; - G4double GetWorldSizeX() {return WorldSizeX;}; + G4double GetWorldSizeX() {return WorldSizeX;}; G4double GetWorldSizeYZ() {return WorldSizeYZ;}; - - const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;}; + + const G4VPhysicalVolume* GetphysiWorld() {return physiWorld;}; const G4VPhysicalVolume* GetAbsorber() {return physiAbsorber;}; - + private: - + G4Material* AbsorberMaterial; G4double AbsorberThickness; G4double AbsorberSizeYZ; - + G4double XposAbs; G4double xstartAbs, xendAbs; - - G4Material* WorldMaterial; - G4double WorldSizeX; - G4double WorldSizeYZ; - - G4bool defaultWorld; - - G4Box* solidWorld; //pointer to the solid World - G4LogicalVolume* logicWorld; //pointer to the logical World - G4VPhysicalVolume* physiWorld; //pointer to the physical World - G4Box* solidAbsorber; //pointer to the solid Absorber - G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber - G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber + G4Material* WorldMaterial; + G4double WorldSizeX; + G4double WorldSizeYZ; + + G4bool defaultWorld; + + G4Box* solidWorld; + G4LogicalVolume* logicWorld; + G4VPhysicalVolume* physiWorld; + + G4Box* solidAbsorber; + G4LogicalVolume* logicAbsorber; + G4VPhysicalVolume* physiAbsorber; + + G4UniformMagField* magField; - G4UniformMagField* magField; //pointer to the magnetic field - - Em5DetectorMessenger* detectorMessenger; //pointer to the Messenger - Em5CalorimeterSD* calorimeterSD; //pointer to the sensitive detector + DetectorMessenger* detectorMessenger; private: @@ -128,20 +126,6 @@ class Em5DetectorConstruction : public G4VUserDetectorConstruction //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline void Em5DetectorConstruction::ComputeCalorParameters() -{ - // Compute derived parameters of the calorimeter - - xstartAbs = XposAbs-0.5*AbsorberThickness; - xendAbs = XposAbs+0.5*AbsorberThickness; - - if (defaultWorld) - { - WorldSizeX = 1.5*AbsorberThickness; WorldSizeYZ= 1.2*AbsorberSizeYZ; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh similarity index 87% rename from examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh rename to examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh index 61c2f0b5fb..3cd04f88ab 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/DetectorMessenger.hh @@ -21,21 +21,21 @@ // ******************************************************************** // // -// $Id: Em5DetectorMessenger.hh,v 1.6 2003/05/30 10:28:04 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorMessenger.hh,v 1.2 2003/10/07 11:58:28 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5DetectorMessenger_h -#define Em5DetectorMessenger_h 1 +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" -class Em5DetectorConstruction; +class DetectorConstruction; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; @@ -44,16 +44,16 @@ class G4UIcmdWithoutParameter; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5DetectorMessenger: public G4UImessenger +class DetectorMessenger: public G4UImessenger { public: - Em5DetectorMessenger(Em5DetectorConstruction* ); - ~Em5DetectorMessenger(); + DetectorMessenger(DetectorConstruction* ); + ~DetectorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em5DetectorConstruction* Em5Detector; + DetectorConstruction* Detector; G4UIdirectory* testemDir; diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh deleted file mode 100644 index 97e769e466..0000000000 --- a/examples/extended/electromagnetic/TestEm5/include/Em5CalorimeterSD.hh +++ /dev/null @@ -1,67 +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: Em5CalorimeterSD.hh,v 1.5 2003/04/30 14:12:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Em5CalorimeterSD_h -#define Em5CalorimeterSD_h 1 - -#include "G4VSensitiveDetector.hh" -#include "globals.hh" - -class Em5DetectorConstruction; -class G4HCofThisEvent; -class G4Step; -#include "Em5CalorHit.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em5CalorimeterSD : public G4VSensitiveDetector -{ - public: - - Em5CalorimeterSD(G4String, Em5DetectorConstruction* ); - ~Em5CalorimeterSD(); - - void Initialize(G4HCofThisEvent*); - G4bool ProcessHits(G4Step*,G4TouchableHistory*); - void EndOfEvent(G4HCofThisEvent*); - void clear(); - void PrintAll(); - - private: - - Em5CalorHitsCollection* CalCollection; - Em5DetectorConstruction* Detector; - G4int* HitID; -}; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh b/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh deleted file mode 100644 index 93f62046ca..0000000000 --- a/examples/extended/electromagnetic/TestEm5/include/Em5RunAction.hh +++ /dev/null @@ -1,177 +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: Em5RunAction.hh,v 1.13 2003/06/16 16:47:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Em5RunAction_h -#define Em5RunAction_h 1 - -#include "G4UserRunAction.hh" -#include "globals.hh" -#include - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em5RunMessenger; -class G4Run; - -#ifndef G4NOHIST -namespace AIDA { - class ITree; - class IHistogram1D; -} -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em5RunAction : public G4UserRunAction -{ - public: - Em5RunAction(); - ~Em5RunAction(); - - public: - void BeginOfRunAction(const G4Run*); - void EndOfRunAction(const G4Run*); - - void CountEvent(); - void CountParticles(G4double,G4double); - void AddEP(G4double,G4double); - void AddEdeps(G4double Eabs); - void AddTrackLength(G4double tlabs); - void AddnStepsCharged(G4double ns); - void AddnStepsNeutral(G4double ns); - - void AddTrRef(G4double tr,G4double ref); - - void SethistName(G4String name) ; - - void SetnbinStep(G4int nbin); - void SetSteplow(G4double Slow); - void SetStephigh(G4double Shigh); - - void SetnbinEn(G4int nbin); - void SetEnlow(G4double Elow); - void SetEnhigh(G4double Enhigh); - - void SetnbinTt(G4int nbin); - void SetTtlow(G4double Ttlow); - void SetTthigh(G4double Tthigh); - - void SetnbinTb(G4int nbin); - void SetTblow(G4double Tblow); - void SetTbhigh(G4double Tbhigh); - - void SetnbinTsec(G4int nbin); - void SetTseclow(G4double Tlow); - void SetTsechigh(G4double Thigh); - - void SetnbinTh(G4int nbin); - void SetThlow(G4double Thlow); - void SetThhigh(G4double Thhigh); - - void SetnbinThproj(G4int nbin); - void SetThlowproj(G4double Thlow); - void SetThhighproj(G4double Thhigh); - - void SetnbinThBack(G4int nbin); - void SetThlowBack(G4double Thlow); - void SetThhighBack(G4double Thhigh); - - void SetnbinR(G4int nbin); - void SetRlow(G4double Rlow); - void SetRhigh(G4double Rhigh); - - void SetnbinGamma(G4int nbin); - void SetElowGamma(G4double Elow); - void SetEhighGamma(G4double Ehigh); - - void Setnbinzvertex(G4int nbin); - void Setzlow(G4double z); - void Setzhigh(G4double z); - - G4double GetdTh() { return dTh;}; - G4double GetdThback() { return dThback;}; -#ifndef G4NOHIST - AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} -#endif - - private: - - void bookHisto(); - - private: - - G4String histName; - -#ifndef G4NOHIST - AIDA::ITree* tree; - AIDA::IHistogram1D* histo[11]; -#endif - - G4double EnergySumAbs,EnergySquareSumAbs; - G4double tlSumAbs,tlsquareSumAbs; - G4double nStepSumCharged,nStepSum2Charged; - G4double nStepSumNeutral,nStepSum2Neutral; - G4double TotNbofEvents; - G4double SumCharged,Sum2Charged,SumNeutral,Sum2Neutral; - G4double Selectron,Spositron; - - G4double Transmitted,Reflected; - - G4double Steplow,Stephigh; - G4int nbinStep; - G4double Enlow,Enhigh; - G4int nbinEn; - G4double Ttlow,Tthigh; - G4int nbinTt; - G4double Tblow,Tbhigh; - G4int nbinTb; - G4double Tseclow,Tsechigh; - G4int nbinTsec; - G4double Thlow,Thhigh,dTh; - G4int nbinTh; - G4double Thlowproj,Thhighproj,dThproj; - G4int nbinThproj; - G4double Thlowback,Thhighback,dThback; - G4int nbinThback; - G4double Rlow,Rhigh; - G4int nbinR; - G4double ElowGamma,EhighGamma; - G4int nbinGamma ; - G4double zlow,zhigh; - G4int nbinvertexz; - - Em5RunMessenger* runMessenger; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh deleted file mode 100644 index 18f28c4743..0000000000 --- a/examples/extended/electromagnetic/TestEm5/include/Em5RunMessenger.hh +++ /dev/null @@ -1,116 +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: Em5RunMessenger.hh,v 1.7 2003/05/30 10:28:04 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef Em5RunMessenger_h -#define Em5RunMessenger_h 1 - -#include "globals.hh" -#include "G4UImessenger.hh" -#include "G4ios.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em5RunAction; -class G4UIdirectory; -class G4UIcmdWithAnInteger; -class G4UIcmdWithADoubleAndUnit; -class G4UIcmdWithADouble; -class G4UIcmdWithAString; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em5RunMessenger: public G4UImessenger -{ - public: - - Em5RunMessenger(Em5RunAction* ); - ~Em5RunMessenger(); - - void SetNewValue(G4UIcommand* ,G4String ); - - private: - - Em5RunAction* runAction; - - G4UIdirectory* plotDir; - - G4UIcmdWithAString* sethistNameCmd; - - G4UIcmdWithAnInteger* setnbinStepCmd; - G4UIcmdWithADouble* setSteplowCmd; - G4UIcmdWithADouble* setStephighCmd; - - G4UIcmdWithAnInteger* setnbinEnCmd; - G4UIcmdWithADoubleAndUnit* setEnlowCmd; - G4UIcmdWithADoubleAndUnit* setEnhighCmd; - - G4UIcmdWithAnInteger* setnbinGammaCmd; - G4UIcmdWithADoubleAndUnit* setElowGammaCmd; - G4UIcmdWithADoubleAndUnit* setEhighGammaCmd; - - G4UIcmdWithAnInteger* setnbinTtCmd; - G4UIcmdWithADoubleAndUnit* setTtlowCmd; - G4UIcmdWithADoubleAndUnit* setTthighCmd; - - G4UIcmdWithAnInteger* setnbinTbCmd; - G4UIcmdWithADoubleAndUnit* setTblowCmd; - G4UIcmdWithADoubleAndUnit* setTbhighCmd; - - G4UIcmdWithAnInteger* setnbinTsecCmd; - G4UIcmdWithADoubleAndUnit* setTseclowCmd; - G4UIcmdWithADoubleAndUnit* setTsechighCmd; - - G4UIcmdWithAnInteger* setnbinRCmd; - G4UIcmdWithADoubleAndUnit* setRlowCmd; - G4UIcmdWithADoubleAndUnit* setRhighCmd; - - G4UIcmdWithAnInteger* setnbinThCmd; - G4UIcmdWithADoubleAndUnit* setThlowCmd; - G4UIcmdWithADoubleAndUnit* setThhighCmd; - - G4UIcmdWithAnInteger* setnbinThprojCmd; - G4UIcmdWithADoubleAndUnit* setThlowprojCmd; - G4UIcmdWithADoubleAndUnit* setThhighprojCmd; - - G4UIcmdWithAnInteger* setnbinThbackCmd; - G4UIcmdWithADoubleAndUnit* setThlowbackCmd; - G4UIcmdWithADoubleAndUnit* setThhighbackCmd; - - G4UIcmdWithAnInteger* setnbinzvertexCmd; - G4UIcmdWithADoubleAndUnit* setzlowCmd; - G4UIcmdWithADoubleAndUnit* setzhighCmd; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif - diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh b/examples/extended/electromagnetic/TestEm5/include/EventAction.hh similarity index 63% rename from examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh rename to examples/extended/electromagnetic/TestEm5/include/EventAction.hh index 6586aa91fa..94738de331 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5EventAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/EventAction.hh @@ -21,61 +21,64 @@ // ******************************************************************** // // -// $Id: Em5EventAction.hh,v 1.5 2003/04/30 14:12:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.hh,v 1.1 2003/08/11 10:13:02 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5EventAction_h -#define Em5EventAction_h 1 +#ifndef EventAction_h +#define EventAction_h 1 #include "G4UserEventAction.hh" #include "globals.hh" -class Em5RunAction; -class Em5EventActionMessenger; +class RunAction; +class HistoManager; +class EventMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5EventAction : public G4UserEventAction +class EventAction : public G4UserEventAction { public: - Em5EventAction(Em5RunAction* Em5RA); - ~Em5EventAction(); + EventAction(RunAction* , HistoManager*); + ~EventAction(); public: void BeginOfEventAction(const G4Event*); void EndOfEventAction(const G4Event*); - G4int GetEventno(); - void setEventVerbose(G4int level); - void CountStepsCharged() ; - void CountStepsNeutral() ; - void AddCharged() ; - void AddNeutral() ; - void AddE(); - void AddP(); - void SetTr(); - void SetRef(); + void AddEnergy (G4double edep) {EnergyDeposit += edep;}; + void AddTrakLenCharg(G4double length) {TrakLenCharged += length;}; + void AddTrakLenNeutr(G4double length) {TrakLenNeutral += length;}; + void CountStepsCharg () {nbStepsCharged++ ;}; + void CountStepsNeutr () {nbStepsNeutral++ ;}; + + void SetTransmitFlag (G4int flag) + {if (flag > TransmitFlag) TransmitFlag = flag;}; + void SetReflectFlag (G4int flag) + {if (flag > ReflectFlag) ReflectFlag = flag;}; + void SetDrawFlag(G4String val) {drawFlag = val;}; void SetPrintModulo(G4int val) {printModulo = val;}; private: - G4int calorimeterCollID; - Em5EventActionMessenger* eventMessenger; - Em5RunAction* runaction; - G4int verboselevel; - G4double nstep,nstepCharged,nstepNeutral; - G4double Nch,Nne; - G4double NE,NP; - G4double Transmitted,Reflected ; + RunAction* runaction; + HistoManager* histoManager; + + G4double EnergyDeposit; + G4double TrakLenCharged, TrakLenNeutral; + G4int nbStepsCharged, nbStepsNeutral; + G4int TransmitFlag, ReflectFlag; G4String drawFlag; - G4int printModulo; + G4int printModulo; + + EventMessenger* eventMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh similarity index 82% rename from examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh rename to examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh index b0ca9e96cf..89053724c7 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/EventMessenger.hh @@ -21,38 +21,36 @@ // ******************************************************************** // // -// $Id: Em5EventActionMessenger.hh,v 1.5 2003/04/30 14:12:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventMessenger.hh,v 1.2 2003/10/07 11:58:28 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5EventActionMessenger_h -#define Em5EventActionMessenger_h 1 +#ifndef EventMessenger_h +#define EventMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" -class Em5EventAction; +class EventAction; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; -class G4UIcmdWithADoubleAndUnit; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5EventActionMessenger: public G4UImessenger +class EventMessenger: public G4UImessenger { public: - Em5EventActionMessenger(Em5EventAction*); - ~Em5EventActionMessenger(); + EventMessenger(EventAction*); + ~EventMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em5EventAction* eventAction; - G4UIcmdWithAnInteger* setVerboseCmd; + EventAction* eventAction; G4UIcmdWithAString* DrawCmd; G4UIcmdWithAnInteger* PrintCmd; }; diff --git a/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm5/include/HistoManager.hh new file mode 100644 index 0000000000..d60e39e166 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/HistoManager.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: HistoManager.hh,v 1.3 2003/11/03 12:58:52 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef HistoManager_h +#define HistoManager_h 1 + +#ifdef G4ANALYSIS_USE + +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +namespace AIDA { + class ITree; + class IHistogramFactory; + class IHistogram1D; +} + +class HistoMessenger; + + const G4int MaxHisto = 17; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HistoManager +{ + public: + HistoManager(); + ~HistoManager(); + + void SetFactory(G4String); + void SetHisto (G4int, G4int, G4double, G4double, G4String unit="none"); + + AIDA::ITree* GetTree() {return tree;} + AIDA::IHistogramFactory* GetHistogramFactory() {return hf;} + AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} + G4double GetHistoUnit(G4int id) {return histoUnit[id];} + G4double GetBinWidth (G4int id) {return binWidth[id];} + private: + AIDA::ITree* tree; + AIDA::IHistogramFactory* hf; + AIDA::IHistogram1D* histo[MaxHisto]; + G4double histoUnit[MaxHisto]; + G4double binWidth[MaxHisto]; + G4bool factoryOn; + HistoMessenger* histoMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif +#endif + diff --git a/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.hh new file mode 100644 index 0000000000..58f7bb20a5 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/HistoMessenger.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: HistoMessenger.hh,v 1.2 2003/10/07 11:58:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef HistoMessenger_h +#define HistoMessenger_h 1 + +#ifdef G4ANALYSIS_USE + +#include "G4UImessenger.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HistoManager; +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HistoMessenger: public G4UImessenger +{ + public: + + HistoMessenger(HistoManager* ); + ~HistoMessenger(); + + void SetNewValue(G4UIcommand* ,G4String ); + + private: + + HistoManager* histoManager; + + G4UIdirectory* histoDir; + G4UIcmdWithAString* factoryCmd; + G4UIcommand* histoCmd; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif +#endif diff --git a/examples/extended/electromagnetic/TestEm5/include/IonC12.hh b/examples/extended/electromagnetic/TestEm5/include/IonC12.hh index c9028614b3..0cf5eb4597 100644 --- a/examples/extended/electromagnetic/TestEm5/include/IonC12.hh +++ b/examples/extended/electromagnetic/TestEm5/include/IonC12.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: IonC12.hh,v 1.1 2003/04/30 14:12:35 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: IonC12.hh,v 1.3 2003/08/11 10:26:24 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Each class inheriting from G4VIon // corresponds to a particle type; one and only one @@ -35,7 +35,6 @@ #define IonC12_h 1 #include "globals.hh" -#include "G4ios.hh" #include "G4VIon.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... diff --git a/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmG4v52.hh new file mode 100644 index 0000000000..9350ae3579 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/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 2003/10/07 11:58:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-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/TestEm5/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListEmStandard.hh new file mode 100644 index 0000000000..021d802060 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/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.2 2003/10/07 11:58:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-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/TestEm5/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListGeneral.hh new file mode 100644 index 0000000000..f4f74edbb9 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListGeneral.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: PhysListGeneral.hh,v 1.2 2003/10/07 11:58:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListGeneral_h +#define PhysListGeneral_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListGeneral : public G4VPhysicsConstructor +{ + public: + PhysListGeneral(const G4String& name = "general"); + ~PhysListGeneral(); + + 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/PhysListParticles.hh b/examples/extended/electromagnetic/TestEm5/include/PhysListParticles.hh new file mode 100644 index 0000000000..ebe582ce06 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/PhysListParticles.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: PhysListParticles.hh,v 1.2 2003/10/07 11:58:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListParticles_h +#define PhysListParticles_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListParticles : public G4VPhysicsConstructor +{ + public: + PhysListParticles(const G4String& name = "particles"); + ~PhysListParticles(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + void ConstructParticle(); + + // This method is dummy. + void ConstructProcess() {}; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh b/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh similarity index 80% rename from examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh rename to examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh index ed22a29620..4b609469f3 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysicsList.hh @@ -21,34 +21,34 @@ // ******************************************************************** // // -// $Id: Em5PhysicsList.hh,v 1.9 2003/04/30 14:12:34 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.hh,v 1.1 2003/08/11 10:14:07 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // -// 14.10.02 (V.Ivanchenko) provide modular list on base of old Em5PhysicsList +// 14.10.02 (V.Ivanchenko) provide modular list on base of old PhysicsList // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5PhysicsList_h -#define Em5PhysicsList_h 1 +#ifndef PhysicsList_h +#define PhysicsList_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" class G4VPhysicsConstructor; -class Em5DetectorConstruction; -class Em5StepMax; -class Em5PhysicsListMessenger; +class DetectorConstruction; +class StepMax; +class PhysicsListMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5PhysicsList: public G4VModularPhysicsList +class PhysicsList: public G4VModularPhysicsList { public: - Em5PhysicsList(Em5DetectorConstruction*); - ~Em5PhysicsList(); + PhysicsList(DetectorConstruction*); + ~PhysicsList(); void ConstructParticle(); @@ -61,7 +61,7 @@ class Em5PhysicsList: public G4VModularPhysicsList void ConstructProcess(); void AddStepMax(); - Em5StepMax* GetStepMaxProcess() {return stepMaxProcess;} + StepMax* GetStepMaxProcess() {return stepMaxProcess;} G4double GetRange(G4double); @@ -71,14 +71,14 @@ class Em5PhysicsList: public G4VModularPhysicsList G4double cutForElectron; G4double cutForPositron; - Em5DetectorConstruction* pDet; - Em5PhysicsListMessenger* pMessenger; + DetectorConstruction* pDet; + PhysicsListMessenger* pMessenger; G4VPhysicsConstructor* particleList; G4VPhysicsConstructor* generalPhysicsList; G4VPhysicsConstructor* emPhysicsList; G4String emName; - Em5StepMax* stepMaxProcess; + StepMax* stepMaxProcess; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh similarity index 86% rename from examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh rename to examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh index 8af9b550d6..469959ce40 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PhysicsListMessenger.hh @@ -21,38 +21,38 @@ // ******************************************************************** // // -// $Id: Em5PhysicsListMessenger.hh,v 1.9 2003/04/30 14:12:34 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.hh,v 1.2 2003/10/07 11:58:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5PhysicsListMessenger_h -#define Em5PhysicsListMessenger_h 1 +#ifndef PhysicsListMessenger_h +#define PhysicsListMessenger_h 1 -#include "globals.hh" #include "G4UImessenger.hh" +#include "globals.hh" -class Em5PhysicsList; +class PhysicsList; class G4UIcmdWithADoubleAndUnit; class G4UIcmdWithAString; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5PhysicsListMessenger: public G4UImessenger +class PhysicsListMessenger: public G4UImessenger { public: - Em5PhysicsListMessenger(Em5PhysicsList* ); - ~Em5PhysicsListMessenger(); + PhysicsListMessenger(PhysicsList* ); + ~PhysicsListMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em5PhysicsList* pPhysicsList; + PhysicsList* pPhysicsList; G4UIcmdWithADoubleAndUnit* gammaCutCmd; G4UIcmdWithADoubleAndUnit* electCutCmd; diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh similarity index 80% rename from examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh rename to examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh index 256502cdf4..6308e33ad7 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorAction.hh @@ -21,32 +21,32 @@ // ******************************************************************** // // -// $Id: Em5PrimaryGeneratorAction.hh,v 1.7 2003/04/30 14:12:34 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.hh,v 1.1 2003/08/11 10:14:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5PrimaryGeneratorAction_h -#define Em5PrimaryGeneratorAction_h 1 +#ifndef PrimaryGeneratorAction_h +#define PrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" #include "globals.hh" class G4ParticleGun; class G4Event; -class Em5DetectorConstruction; -class Em5PrimaryGeneratorMessenger; +class DetectorConstruction; +class PrimaryGeneratorMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: - Em5PrimaryGeneratorAction(Em5DetectorConstruction*); - ~Em5PrimaryGeneratorAction(); + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); public: void SetDefaultKinematic(); @@ -55,10 +55,10 @@ class Em5PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction private: G4ParticleGun* particleGun; - Em5DetectorConstruction* Em5Detector; + DetectorConstruction* Detector; G4double rndmBeam; - Em5PrimaryGeneratorMessenger* gunMessenger; + PrimaryGeneratorMessenger* gunMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh similarity index 82% rename from examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh rename to examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh index f06fbf8c89..003c126b39 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm5/include/PrimaryGeneratorMessenger.hh @@ -21,36 +21,36 @@ // ******************************************************************** // // -// $Id: Em5PrimaryGeneratorMessenger.hh,v 1.7 2003/04/30 14:12:34 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorMessenger.hh,v 1.1 2003/08/11 10:14:49 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5PrimaryGeneratorMessenger_h -#define Em5PrimaryGeneratorMessenger_h 1 +#ifndef PrimaryGeneratorMessenger_h +#define PrimaryGeneratorMessenger_h 1 #include "G4UImessenger.hh" #include "globals.hh" -class Em5PrimaryGeneratorAction; +class PrimaryGeneratorAction; class G4UIcmdWithoutParameter; class G4UIcmdWithADouble; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5PrimaryGeneratorMessenger: public G4UImessenger +class PrimaryGeneratorMessenger: public G4UImessenger { public: - Em5PrimaryGeneratorMessenger(Em5PrimaryGeneratorAction*); - ~Em5PrimaryGeneratorMessenger(); + PrimaryGeneratorMessenger(PrimaryGeneratorAction*); + ~PrimaryGeneratorMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em5PrimaryGeneratorAction* Em5Action; + PrimaryGeneratorAction* Action; G4UIcmdWithoutParameter* DefaultCmd; G4UIcmdWithADouble* RndmCmd; }; diff --git a/examples/extended/electromagnetic/TestEm5/include/RunAction.hh b/examples/extended/electromagnetic/TestEm5/include/RunAction.hh new file mode 100644 index 0000000000..451b54b174 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/RunAction.hh @@ -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: RunAction.hh,v 1.1 2003/08/11 10:14:54 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef RunAction_h +#define RunAction_h 1 + +#include "G4UserRunAction.hh" + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4Run; +class HistoManager; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class RunAction : public G4UserRunAction +{ + public: + RunAction(HistoManager*); + ~RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); + + void AddEnergy (G4double edep) + {EnergyDeposit += edep; EnergyDeposit2 += edep*edep;}; + + void AddTrakLenCharg (G4double length) + {TrakLenCharged += length; TrakLenCharged2 += length*length;}; + + void AddTrakLenNeutr (G4double length) + {TrakLenNeutral += length; TrakLenNeutral2 += length*length;}; + + void CountStepsCharg (G4int nSteps) + {nbStepsCharged += nSteps; nbStepsCharged2 += nSteps*nSteps;}; + + void CountStepsNeutr (G4int nSteps) + {nbStepsNeutral += nSteps; nbStepsNeutral2 += nSteps*nSteps;}; + + void CountParticles (G4ParticleDefinition* part) + { if (part == G4Gamma::Gamma()) nbGamma++ ; + else if (part == G4Electron::Electron()) nbElect++ ; + else if (part == G4Positron::Positron()) nbPosit++ ; } + + void CountTransmit (G4int flag) + { if (flag == 1) Transmit[0]++; + else if (flag == 2) {Transmit[0]++; Transmit[1]++; }} + + void CountReflect (G4int flag) + { if (flag == 1) Reflect[0]++; + else if (flag == 2) {Reflect[0]++; Reflect[1]++; }} + + private: + G4double EnergyDeposit, EnergyDeposit2; + G4double TrakLenCharged, TrakLenCharged2; + G4double TrakLenNeutral, TrakLenNeutral2; + G4double nbStepsCharged, nbStepsCharged2; + G4double nbStepsNeutral, nbStepsNeutral2; + G4int nbGamma, nbElect, nbPosit; + G4int Transmit[2], Reflect[2]; + + HistoManager* histoManager; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh b/examples/extended/electromagnetic/TestEm5/include/StackingAction.hh new file mode 100644 index 0000000000..d4a3c59e8a --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/StackingAction.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: StackingAction.hh,v 1.1 2003/08/11 10:15:05 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StackingAction_h +#define StackingAction_h 1 + +#include "G4UserStackingAction.hh" +#include "globals.hh" + +class RunAction; +class EventAction; +class HistoManager; +class StackingMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StackingAction : public G4UserStackingAction +{ + public: + StackingAction(RunAction*,EventAction*,HistoManager* ); + ~StackingAction(); + + void SetKillStatus(G4bool value) {killSecondary = value;}; + + G4ClassificationOfNewTrack ClassifyNewTrack(const G4Track*); + + private: + RunAction* runaction; + EventAction* eventaction; + HistoManager* histoManager; + + G4bool killSecondary; + StackingMessenger* stackMessenger; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.hh new file mode 100644 index 0000000000..84c47303f6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/StackingMessenger.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: StackingMessenger.hh,v 1.2 2003/10/07 11:58:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StackingMessenger_h +#define StackingMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class StackingAction; +class G4UIcmdWithABool; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StackingMessenger: public G4UImessenger +{ + public: + StackingMessenger(StackingAction*); + ~StackingMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + StackingAction* stackAction; + G4UIcmdWithABool* killCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5StepMax.hh b/examples/extended/electromagnetic/TestEm5/include/StepMax.hh similarity index 88% rename from examples/extended/electromagnetic/TestEm5/include/Em5StepMax.hh rename to examples/extended/electromagnetic/TestEm5/include/StepMax.hh index 3a03aa7efb..2b5a852119 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5StepMax.hh +++ b/examples/extended/electromagnetic/TestEm5/include/StepMax.hh @@ -21,31 +21,31 @@ // ******************************************************************** // // -// $Id: Em5StepMax.hh,v 1.2 2003/06/06 15:55:48 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: StepMax.hh,v 1.1 2003/08/11 10:15:32 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5StepMax_h -#define Em5StepMax_h 1 +#ifndef StepMax_h +#define StepMax_h 1 #include "globals.hh" #include "G4VDiscreteProcess.hh" #include "G4ParticleDefinition.hh" #include "G4Step.hh" -class Em5StepMaxMessenger; +class StepMaxMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5StepMax : public G4VDiscreteProcess +class StepMax : public G4VDiscreteProcess { public: - Em5StepMax(const G4String& processName ="UserStepMax"); - ~Em5StepMax(); + StepMax(const G4String& processName ="UserStepMax"); + ~StepMax(); G4bool IsApplicable(const G4ParticleDefinition&); void SetMaxStep(G4double); @@ -63,7 +63,7 @@ class Em5StepMax : public G4VDiscreteProcess private: G4double MaxChargedStep; - Em5StepMaxMessenger* pMess; + StepMaxMessenger* pMess; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm5/include/StepMaxMessenger.hh new file mode 100644 index 0000000000..a52926ecf4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/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.2 2003/10/07 11:58:29 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef StepMaxMessenger_h +#define StepMaxMessenger_h 1 + +#include "G4UImessenger.hh" +#include "globals.hh" + +class StepMax; +class G4UIcmdWithADoubleAndUnit; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class StepMaxMessenger: public G4UImessenger +{ + public: + StepMaxMessenger(StepMax*); + ~StepMaxMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + StepMax* pStepMax; + G4UIcmdWithADoubleAndUnit* StepMaxCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm5/include/SteppingAction.hh new file mode 100644 index 0000000000..bc00007910 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/SteppingAction.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: SteppingAction.hh,v 1.1 2003/08/11 10:15:45 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingAction_h +#define SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" +#include "globals.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/TestEm2/include/Em2SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh similarity index 88% rename from examples/extended/electromagnetic/TestEm2/include/Em2SteppingVerbose.hh rename to examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh index 2ce18f4a0a..c854524896 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm5/include/SteppingVerbose.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2SteppingVerbose.hh,v 1.8 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.hh,v 1.1 2003/08/11 10:15:51 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. @@ -31,19 +31,19 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2SteppingVerbose_h -#define Em2SteppingVerbose_h 1 +#ifndef SteppingVerbose_h +#define SteppingVerbose_h 1 #include "G4SteppingVerbose.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2SteppingVerbose : public G4SteppingVerbose { +class SteppingVerbose : public G4SteppingVerbose { public: - Em2SteppingVerbose(); - ~Em2SteppingVerbose(); + SteppingVerbose(); + ~SteppingVerbose(); void StepInfo(); void TrackingStarted(); diff --git a/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh b/examples/extended/electromagnetic/TestEm5/include/TrackingAction.hh new file mode 100644 index 0000000000..b76c139c05 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/TrackingAction.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: TrackingAction.hh,v 1.1 2003/08/11 10:16:04 maire Exp $ +// GEANT4 tag $Name: geant4-06-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* runaction; + EventAction* eventaction; + HistoManager* histoManager; + + G4double worldLimit; + G4double primaryCharge; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm5/include/VisManager.hh b/examples/extended/electromagnetic/TestEm5/include/VisManager.hh new file mode 100644 index 0000000000..76270e5fff --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/include/VisManager.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: VisManager.hh,v 1.1 2003/08/11 10:16:21 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// 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); + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef VisManager_h +#define VisManager_h 1 + +#include "G4VisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class VisManager: public G4VisManager { + +public: + + VisManager (); + +private: + + void RegisterGraphicsSystems (); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm5/kulchi.mac b/examples/extended/electromagnetic/TestEm5/kulchi.mac new file mode 100644 index 0000000000..7cc30874f8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/kulchi.mac @@ -0,0 +1,30 @@ +# $Id: kulchi.mac,v 1.1 2003/08/11 10:04:09 maire Exp $ +# +# macro file for TestEm5.cc +# +# 2.25 MeV e-, transmitted through 26.60 mg/cm2 Al +# L.Kulchitsky Phys.Rev. 61 (1941) page 254. +# +# Gaussian th1/e = 9.50 +- 0.40 deg +# proj. distr. fit: exp(-0.5*(th/th0)**2) ====> th0 = th1/e/sqrt(2) +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Aluminium +/testem/det/setAbsThick 98.5185 mum +/testem/det/setAbsYZ 1 cm +# +/testem/phys/setCuts 1 mm +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle e- +/gun/energy 2.25 MeV +# +/testem/histo/setFileName kulchi.paw +/testem/histo/setHisto 5 100 0. 25. deg #space angle +/testem/histo/setHisto 6 100 -25. +25. deg #projected angle +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm5/run01.mac b/examples/extended/electromagnetic/TestEm5/run01.mac deleted file mode 100644 index ae48c3d9f9..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run01.mac +++ /dev/null @@ -1,35 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 13.0 micrometer -/testem/phys/setEcut 1.12 micrometer -/run/initialize -# -/testem/det/setAbsMat Gold -/testem/det/setAbsThick 9.658 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -# -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot01 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 100 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 10.0 deg -# -# -/gun/particle e- -/gun/energy 15.7 MeV -# -/run/beamOn 1000000 -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run01a.mac b/examples/extended/electromagnetic/TestEm5/run01a.mac deleted file mode 100644 index 2e071da8d2..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run01a.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 13.0 micrometer -/testem/phys/setEcut 1.12 micrometer -/run/initialize -# -/testem/det/setAbsMat Gold -/testem/det/setAbsThick 9.658 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot01a -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 60 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 30.0 deg -# -/gun/particle e- -/gun/energy 15.7 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run02.mac b/examples/extended/electromagnetic/TestEm5/run02.mac deleted file mode 100644 index 659bf392fa..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run02.mac +++ /dev/null @@ -1,35 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 13.0 mum -/testem/phys/setEcut 1.12 mum -/run/initialize -# -/testem/det/setAbsMat Gold -/testem/det/setAbsThick 19.296 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot02 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 100 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 10.0 deg -# -# -/gun/particle e- -/gun/energy 15.7 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run02a.mac b/examples/extended/electromagnetic/TestEm5/run02a.mac deleted file mode 100644 index f239e2ad9f..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run02a.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 13.0 micrometer -/testem/phys/setECut 1.12 micrometer -/run/initialize -# -/testem/det/setAbsMat Gold -/testem/det/setAbsThick 19.296 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot02a -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 60 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 30.0 deg -# -/gun/particle e- -/gun/energy 15.7 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run03.mac b/examples/extended/electromagnetic/TestEm5/run03.mac deleted file mode 100644 index cc1944aa6c..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run03.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2130.0 micrometer -/testem/phys/setECut 7.000 micrometer -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 50. mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot03 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 60 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 6.0 deg -# -/gun/particle proton -/gun/energy 6.56 MeV -# -/run/beamOn 100000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run04.mac b/examples/extended/electromagnetic/TestEm5/run04.mac deleted file mode 100644 index f225e2deac..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run04.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2130.0 micrometer -/testem/phys/setECut 7.000 micrometer -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 92.6 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot04 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 60 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 6.0 deg -# -/gun/particle proton -/gun/energy 6.56 MeV -# -/run/beamOn 100000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run05.mac b/examples/extended/electromagnetic/TestEm5/run05.mac deleted file mode 100644 index 2c42109b94..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run05.mac +++ /dev/null @@ -1,37 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2250.0 micrometer -/testem/phys/setECut 6.050 micrometer -/run/initialize -# -/testem/det/setAbsMat Aluminium -/testem/det/setAbsThick 4.005 mm -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# -# hist file name -/testem/plots/sethistName geant4.plot05 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 100 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 0.01 deg -# -# -/gun/particle proton -# momentum 70 GeV/c .... -/gun/energy 69.068 GeV -# -/run/beamOn 100000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run11.mac b/examples/extended/electromagnetic/TestEm5/run11.mac deleted file mode 100644 index 87540c0a04..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run11.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2.13 mm -/testem/phys/setECut 7.00 micrometer -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 61.0 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot11 -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 55 -/testem/plots/setEnlow 0.0 MeV -/testem/plots/setEnhigh 1.1 MeV -# -/gun/particle e- -/gun/energy 1.00 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run12.mac b/examples/extended/electromagnetic/TestEm5/run12.mac deleted file mode 100644 index 4e3f06e262..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run12.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2.13 mm -/testem/phys/setECut 7.00 micrometer -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 105.0 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot12 -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 55 -/testem/plots/setEnlow 0.0 MeV -/testem/plots/setEnhigh 1.1 MeV -# -/gun/particle e- -/gun/energy 1.00 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run13.mac b/examples/extended/electromagnetic/TestEm5/run13.mac deleted file mode 100644 index c68d29c2ab..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run13.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2.13 mm -/testem/phys/setECut 7.00 micrometer -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 191.0 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot13 -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 55 -/testem/plots/setEnlow 0.0 MeV -/testem/plots/setEnhigh 1.1 MeV -# -/gun/particle e- -/gun/energy 1.00 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run14.mac b/examples/extended/electromagnetic/TestEm5/run14.mac deleted file mode 100644 index 160e25e1a5..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run14.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2.13 mm -/testem/phys/setECut 7.00 micrometer -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 530.0 mum -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot14 -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 55 -/testem/plots/setEnlow 0.0 MeV -/testem/plots/setEnhigh 1.1 MeV -# -/gun/particle e- -/gun/energy 1.00 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run15.mac b/examples/extended/electromagnetic/TestEm5/run15.mac deleted file mode 100644 index 4a123ca815..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run15.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2.13 mm -/testem/phys/setECut 7.00 micrometer -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 1. mm -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot15 -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 55 -/testem/plots/setEnlow 0.0 MeV -/testem/plots/setEnhigh 1.1 MeV -# -/gun/particle e- -/gun/energy 1.00 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run16.mac b/examples/extended/electromagnetic/TestEm5/run16.mac deleted file mode 100644 index 5306bf1454..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run16.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 2.13 mm -/testem/phys/setECut 7.00 micrometer -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 3. mm -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot16 -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 55 -/testem/plots/setEnlow 0.0 MeV -/testem/plots/setEnhigh 1.1 MeV -# -/gun/particle e- -/gun/energy 1.00 MeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run17.mac b/examples/extended/electromagnetic/TestEm5/run17.mac deleted file mode 100644 index 3de488a524..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run17.mac +++ /dev/null @@ -1,35 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -/run/verbose 2 -# -/testem/phys/setGCut 100. mm -/testem/phys/setECut 100. mm -/run/initialize -# -/testem/det/setAbsMat NewArgonCO2 -/testem/det/setAbsThick 15 mm -/testem/det/setAbsYZ 60 mm -/testem/det/update -/testem/gun/setDefault -# -# -# hist file name -/testem/plots/sethistName run17e.10cm.paw -# PLOT: energy deposit distribution in XenonGas -/testem/plots/setnbinEn 60 -/testem/plots/setEnlow 0. keV -/testem/plots/setEnhigh 6. keV -# -#/gun/particle proton -#/gun/energy 24 GeV -/gun/particle e- -/gun/energy 25 GeV -/testem/event/printModulo 1000 -# -/run/beamOn 100000 -# - diff --git a/examples/extended/electromagnetic/TestEm5/run18.mac b/examples/extended/electromagnetic/TestEm5/run18.mac deleted file mode 100644 index 1a90e4ba00..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run18.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -/run/verbose 2 -# -/testem/phys/setGCut 1. mm -/testem/phys/setECut 1. mm -/run/initialize -# -/testem/det/setAbsMat XenonMethanePropane -/testem/det/setAbsThick 23 mm -/testem/det/setAbsYZ 60 mm -/testem/det/update -/testem/gun/setDefault -# -# -# hist file name -/testem/plots/sethistName run18.1mm.paw -# PLOT: energy deposit distribution in Gas -/testem/plots/setnbinEn 50 -/testem/plots/setEnlow 0. keV -/testem/plots/setEnhigh 20. keV -# -/gun/particle proton -/gun/energy 2.20 GeV - -/testem/event/printModulo 1000 -# -/run/beamOn 100000 -# - diff --git a/examples/extended/electromagnetic/TestEm5/run19.mac b/examples/extended/electromagnetic/TestEm5/run19.mac deleted file mode 100644 index e3d8be5a40..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run19.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -/run/verbose 2 -# -/testem/phys/setGCut 2.13 mm -/testem/phys/setECut 7.0 mum -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 20.5 mum -/testem/det/setAbsYZ 10 cm -/testem/det/update -/testem/gun/setDefault -# -# -# hist file name -/testem/plots/sethistName run19.paw -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 65 -/testem/plots/setEnlow 0. keV -/testem/plots/setEnhigh 13. keV -# -/gun/particle pi+ -/gun/energy 5. GeV - -/testem/event/printModulo 1000 -# -/run/beamOn 100000 -# - diff --git a/examples/extended/electromagnetic/TestEm5/run20.mac b/examples/extended/electromagnetic/TestEm5/run20.mac deleted file mode 100644 index 1ca93066cb..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run20.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -/run/verbose 2 -# -/testem/phys/setGCut 1. mm -/testem/phys/setECut 1. mm -/run/initialize -# -/testem/det/setAbsMat ArgonCH4 -/testem/det/setAbsThick 15 mm -/testem/det/setAbsYZ 60 mm -/testem/det/update -/testem/gun/setDefault -# -# -# hist file name -/testem/plots/sethistName run20.1mm.paw -# PLOT: energy deposit distribution in Gas -/testem/plots/setnbinEn 40 -/testem/plots/setEnlow 0. keV -/testem/plots/setEnhigh 8. keV -# -/gun/particle pi+ -/gun/energy 2.864 GeV - -/testem/event/printModulo 1000 -# -/run/beamOn 100000 -# - diff --git a/examples/extended/electromagnetic/TestEm5/run21.mac b/examples/extended/electromagnetic/TestEm5/run21.mac deleted file mode 100644 index 558ca49496..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run21.mac +++ /dev/null @@ -1,34 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 1.00 mm -/testem/phys/setECut 5.0 mum -/run/initialize -# -/testem/det/setAbsMat Aluminium -/testem/det/setAbsThick 5.30 mm -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot21 -# PLOT: gamma energy at exit -/testem/plots/setnbinGamma 80 -/testem/plots/setElowGamma 0.1 MeV -/testem/plots/setEhighGamma 1.0 GeV -# -/gun/particle e- -/gun/energy 25. GeV -# -/run/beamOn 100000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run22.mac b/examples/extended/electromagnetic/TestEm5/run22.mac deleted file mode 100644 index 78c16bbae2..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run22.mac +++ /dev/null @@ -1,35 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 1.00 mm -/testem/phys/setECut 5.0 mum -/run/initialize -# -/testem/det/setAbsMat Lead -/testem/det/setAbsThick 0.15 mm -/testem/det/setAbsYZ 10. cm -/testem/det/update -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot22 -# PLOT: gamma energy at exit -/testem/plots/setnbinGamma 80 -/testem/plots/setElowGamma 0.1 MeV -/testem/plots/setEhighGamma 1. GeV -# -# -/gun/particle e- -/gun/energy 25. GeV -# -/run/beamOn 1000000 -# -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run44.draw b/examples/extended/electromagnetic/TestEm5/run44.draw deleted file mode 100644 index 3243d41833..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run44.draw +++ /dev/null @@ -1,27 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -/run/verbose 2 -# -/run/initialize -# -/testem/det/setAbsMat Silicon -/testem/det/setAbsThick 10 mum -/testem/det/setAbsYZ 20 mum -/testem/det/update -# -/testem/gun/setDefault -# -/gun/particle e- -/gun/energy 500 keV -/tracking/verbose 1 -# -#/testem/tracking/stepMax 1 mm -#/run/beamOn 20 -# -#/testem/tracking/stepMax 2 mum -#/run/beamOn 20 - diff --git a/examples/extended/electromagnetic/TestEm5/run55.mac b/examples/extended/electromagnetic/TestEm5/run55.mac deleted file mode 100644 index fa4ff160b5..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run55.mac +++ /dev/null @@ -1,38 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -/control/verbose 2 -/run/verbose 2 -# -/testem/phys/setGCut 1 mm -/testem/phys/setECut 1 mm -/run/initialize -# -/testem/det/setAbsMat Iron -/testem/det/setAbsThick 2 m -/testem/det/setAbsYZ 2 m -/testem/det/update -/testem/gun/setDefault -# -# -# hist file name -/testem/plots/sethistName 1000gev.1mm.paw -# PLOT: energy deposit distribution in absorber -/testem/plots/setnbinEn 50 -/testem/plots/setEnlow 0. GeV -/testem/plots/setEnhigh 50. GeV -# PLOT: energy of transmitted particles -/testem/plots/setnbinTt 50 -/testem/plots/setTtlow 950. GeV -/testem/plots/setTthigh 1000. GeV -# -/gun/particle mu+ -/gun/energy 1000 GeV - -/testem/event/printModulo 10 -# -/run/beamOn 1000 -# - diff --git a/examples/extended/electromagnetic/TestEm5/run61.mac b/examples/extended/electromagnetic/TestEm5/run61.mac deleted file mode 100644 index c4d9df1551..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run61.mac +++ /dev/null @@ -1,46 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -# 2.25 MeV e-, 26.60 mg/cm2 Al -# G4 simulation to be compared with data -# of L.Kulchitsky Phys.Rev. 61(1941) 254. -# Gaussian th1/e = 9.50 +- 0.40 deg -# fit: exp(-0.5*(th/th0)**2) ====> -# th0 = th1/e/sqrt(2) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 1.0 mm -/testem/phys/setEcut 1.0 mm -/run/initialize -# -/testem/det/setAbsMat Aluminium -/testem/det/setAbsThick 98.5185 micrometer -/testem/det/setAbsYZ 10. cm -/testem/det/update -# -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot61 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 100 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 25.0 deg -# PLOT: proj. angle distr. of transmitted particles -/testem/plots/setnbinThproj 100 -/testem/plots/setThlowproj -25.0 deg -/testem/plots/setThhighproj 25.0 deg -# -# -/gun/particle e- -/gun/energy 2.25 MeV -# -/run/beamOn 100000 -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run71.mac b/examples/extended/electromagnetic/TestEm5/run71.mac deleted file mode 100644 index f0372cec50..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run71.mac +++ /dev/null @@ -1,43 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# 0.766 MeV p, 1.37 mg/cm2 Al -# G4 simulation to be compared with data -# of H.Bichsel Phys.Rev. 112 (1958) 182. -# exp(-(th/th0)**2 th0 = 4.44+- 0.20 deg -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 1.0 mm -/testem/phys/setEcut 1.0 mm -/run/initialize -# -/testem/det/setAbsMat Aluminium -/testem/det/setAbsThick 5.0741 micrometer -/testem/det/setAbsYZ 10. cm -/testem/det/update -# -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot71 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 100 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 9.0 deg -# PLOT: proj. angle distr. of transmitted particles -/testem/plots/setnbinThproj 100 -/testem/plots/setThlowproj -9.0 deg -/testem/plots/setThhighproj 9.0 deg -# -# -/gun/particle proton -/gun/energy 0.766 MeV -# -/run/beamOn 100000 -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run81.mac b/examples/extended/electromagnetic/TestEm5/run81.mac deleted file mode 100644 index c9cbd4a493..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run81.mac +++ /dev/null @@ -1,43 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# 158.6 MeV p, 0.2160 g/cm2 RAl -# G4 simulation to be compared with data -# of B.Gottschalk et al. NIM B74(1993) 467. -# exp(-0.5*(th/th0)**2 th0 = 3.534 +- 0.491 mrad -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 1.0 mm -/testem/phys/setEcut 1.0 mm -/run/initialize -# -/testem/det/setAbsMat Aluminium -/testem/det/setAbsThick 800.000 micrometer -/testem/det/setAbsYZ 10. cm -/testem/det/update -# -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot81 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 100 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 0.6 deg -# PLOT: proj. angle distr. of transmitted particles -/testem/plots/setnbinThproj 100 -/testem/plots/setThlowproj -0.6 deg -/testem/plots/setThhighproj 0.6 deg -# -# -/gun/particle proton -/gun/energy 158.6 MeV -# -/run/beamOn 100000 -# - - diff --git a/examples/extended/electromagnetic/TestEm5/run91.mac b/examples/extended/electromagnetic/TestEm5/run91.mac deleted file mode 100644 index fa0de52ee4..0000000000 --- a/examples/extended/electromagnetic/TestEm5/run91.mac +++ /dev/null @@ -1,47 +0,0 @@ -# -# Macro file for the initialization phase of "TestEm5.cc" -# -# It creates the default geometry (simple absorber box ) -# -# proton 175 GeV/c, 8.004 mm Al -# G4 simulation to be compared with data -# data theta0 = (1.93+-0.39)*e-5 rad ??? -# G.Shen et.al.Phys.Rev. D20(1979)1584. -# proj.distr. exp(-0.5*(th/th0)**2) -# -/control/verbose 2 -#control/saveHistory -/run/verbose 2 -# -/testem/phys/setGCut 1.0 mm -/testem/phys/setEcut 1.0 mm -/run/initialize -# -/testem/det/setAbsMat Aluminium -/testem/det/setAbsThick 8.004 mm -/testem/det/setAbsYZ 10. cm -/testem/det/update -# -/testem/gun/setDefault -# -# hist file name -/testem/plots/sethistName geant4.plot91 -# PLOT: angle distr. of transmitted particles -/testem/plots/setnbinTh 100 -/testem/plots/setThlow 0.0 deg -/testem/plots/setThhigh 0.004 deg -# PLOT: proj. angle distr. of transmitted particles -/testem/plots/setnbinThproj 100 -/testem/plots/setThlowproj -0.004 deg -/testem/plots/setThhighproj 0.004 deg -# -# -/gun/particle proton -# P = 175 GeV/c -/gun/energy 174664. MeV -# -# -/run/beamOn 100000 -# - - diff --git a/examples/extended/electromagnetic/TestEm5/shen1.mac b/examples/extended/electromagnetic/TestEm5/shen1.mac new file mode 100644 index 0000000000..f0df0c7849 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/shen1.mac @@ -0,0 +1,31 @@ +# $Id: shen1.mac,v 1.1 2003/08/11 10:09:00 maire Exp $ +# +# macro file for TestEm5.cc +# +# angle distribution of high energy (50-200 GeV/c) protons +# transmitted through different targets. +# G. Shen et al. Phys.Rev. D20 (1979) page 1584. +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Aluminium +/testem/det/setAbsThick 4.005 mm +/testem/det/setAbsYZ 1 cm +# +/testem/phys/setGCut 2.25 mm +/testem/phys/setECut 6.05 mum +/testem/phys/setPCut 6.05 mum +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle proton +/gun/energy 69.068 GeV #momentum 70 GeV/c +# +/testem/histo/setFileName shen1.paw +/testem/histo/setHisto 5 100 0.00 0.01 deg #space angle +# +/testem/stack/killSecondaries +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm5/shen2.mac b/examples/extended/electromagnetic/TestEm5/shen2.mac new file mode 100644 index 0000000000..86d70775de --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/shen2.mac @@ -0,0 +1,32 @@ +# $Id: shen2.mac,v 1.1 2003/08/11 10:09:12 maire Exp $ +# +# macro file for TestEm5.cc +# +# proton 175 GeV/c, transmitted through 8.004 mm Al +# G. Shen et al. Phys.Rev. D20 (1979) page 1584. +# +# data theta0 = (1.93+-0.39)*e-5 rad ??? +# proj. distr. exp(-0.5*(th/th0)**2) +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Aluminium +/testem/det/setAbsThick 8.004 mm +/testem/det/setAbsYZ 1 cm +# +/testem/phys/setCuts 1 mm +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle proton +/gun/energy 174.664 GeV #momentum 175 GeV/c +# +/testem/histo/setFileName shen2.paw +/testem/histo/setHisto 5 100 0.00 0.004 deg #space angle +/testem/histo/setHisto 6 100 -0.004 +0.004 deg #projected angle +# +/testem/stack/killSecondaries +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc similarity index 54% rename from examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc rename to examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc index 223745cd2a..cd6f84792c 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/DetectorConstruction.cc @@ -21,79 +21,75 @@ // ******************************************************************** // // -// $Id: Em5DetectorConstruction.cc,v 1.13 2003/06/06 15:55:51 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.cc,v 1.2 2003/11/25 15:19:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5DetectorConstruction.hh" -#include "Em5DetectorMessenger.hh" - -#include "Em5CalorimeterSD.hh" +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" #include "G4Material.hh" #include "G4Box.hh" #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" #include "G4UniformMagField.hh" -#include "G4FieldManager.hh" -#include "G4TransportationManager.hh" -#include "G4SDManager.hh" -#include "G4RunManager.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" - -#include "G4ios.hh" +#include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5DetectorConstruction::Em5DetectorConstruction() -:AbsorberMaterial(NULL),WorldMaterial(NULL),defaultWorld(true), - solidWorld(NULL),logicWorld(NULL),physiWorld(NULL), - solidAbsorber(NULL),logicAbsorber(NULL),physiAbsorber(NULL), - magField(NULL),calorimeterSD(NULL) +DetectorConstruction::DetectorConstruction() +:AbsorberMaterial(0),WorldMaterial(0),defaultWorld(true), + solidWorld(0),logicWorld(0),physiWorld(0), + solidAbsorber(0),logicAbsorber(0),physiAbsorber(0), + magField(0) { // default parameter values of the calorimeter AbsorberThickness = 1.*cm; AbsorberSizeYZ = 2.*cm; - XposAbs = 0.*cm ; + XposAbs = 0.*cm; ComputeCalorParameters(); - + + // materials + DefineMaterials(); + SetWorldMaterial ("Galactic"); + SetAbsorberMaterial("Silicon"); + // create commands for interactive definition of the calorimeter - detectorMessenger = new Em5DetectorMessenger(this); + detectorMessenger = new DetectorMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5DetectorConstruction::~Em5DetectorConstruction() +DetectorConstruction::~DetectorConstruction() { delete detectorMessenger; - } +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* Em5DetectorConstruction::Construct() +G4VPhysicalVolume* DetectorConstruction::Construct() { - DefineMaterials(); return ConstructCalorimeter(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::DefineMaterials() +void DetectorConstruction::DefineMaterials() { //This function illustrates the possible ways to define materials -G4String name, symbol; //a=mass of a mole; -G4double a, z, density; //z=mean number of protons; +G4String symbol; //a=mass of a mole; +G4double a, z, density; //z=mean number of protons; G4int ncomponents, natoms; G4double fractionmass; @@ -103,122 +99,84 @@ G4double temperature, pressure; // define Elements // -a = 1.01*g/mole; -G4Element* elH = new G4Element(name="Hydrogen",symbol="H" , z= 1., a); - -a = 12.01*g/mole; -G4Element* elC = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); - -a = 14.01*g/mole; -G4Element* elN = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); - -a = 16.00*g/mole; -G4Element* elO = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); - -a = 39.95*g/mole; -G4Element* elAr = new G4Element(name="Argon" ,symbol="Ar", z= 18., a); - -a = 131.29*g/mole; -G4Element* elXe = new G4Element(name="Xenon" ,symbol="Xe", z= 54., a); +G4Element* H = new G4Element("Hydrogen",symbol="H", z= 1, a= 1.01*g/mole); +G4Element* C = new G4Element("Carbon", symbol="C", z= 6, a= 12.01*g/mole); +G4Element* N = new G4Element("Nitrogen",symbol="N", z= 7, a= 14.01*g/mole); +G4Element* O = new G4Element("Oxygen", symbol="O", z= 8, a= 16.00*g/mole); +G4Element* Ar = new G4Element("Argon", symbol="Ar", z=18, a= 39.95*g/mole); +G4Element* Xe = new G4Element("Xenon", symbol="Xe", z=54, a= 131.29*g/mole); // // define simple materials // -density = 1.848*g/cm3; -a = 9.01*g/mole; -G4Material* Be = new G4Material(name="Beryllium", z=4., a, density); -density = 2.700*g/cm3; -a = 26.98*g/mole; -G4Material* Al = new G4Material(name="Aluminium", z=13., a, density); +new G4Material("Beryllium", z= 4, a= 9.01*g/mole, density= 1.848*g/cm3); +new G4Material("Aluminium", z=13, a=26.98*g/mole, density= 2.700*g/cm3); +new G4Material("Silicon" , z=14, a=28.09*g/mole, density= 2.330*g/cm3); -density = 2.330*g/cm3; -a = 28.09*g/mole; -G4Material* Si = new G4Material(name="Silicon", z=14., a, density); +G4Material* lAr = +new G4Material("liquidArgon", density= 1.390*g/cm3, ncomponents=1); +lAr->AddElement(Ar, natoms=1); -density = 1.390*g/cm3; -G4Material* lAr = new G4Material(name="liquidArgon", density, ncomponents=1); -lAr->AddElement(elAr, natoms=1); - -density = 7.870*g/cm3; -a = 55.85*g/mole; -G4Material* Fe = new G4Material(name="Iron" , z=26., a, density); - -density = 8.960*g/cm3; -a = 63.55*g/mole; -G4Material* Cu = new G4Material(name="Copper" , z=29., a, density); - -density = 19.30*g/cm3; -a =183.85*g/mole; -G4Material* W = new G4Material(name="Tungsten" , z=74., a, density); - -density = 19.32*g/cm3; -a =196.97*g/mole; -G4Material* Au = new G4Material(name="Gold" , z=79., a, density); - -density = 11.35*g/cm3; -a = 207.19*g/mole; -G4Material* Pb = new G4Material(name="Lead" , z=82., a, density); +new G4Material("Iron", z=26, a= 55.85*g/mole, density= 7.870*g/cm3); +new G4Material("Copper", z=29, a= 63.55*g/mole, density= 8.960*g/cm3); +new G4Material("Tungsten", z=74, a=183.85*g/mole, density= 19.30*g/cm3); +new G4Material("Gold", z=79, a=196.97*g/mole, density= 19.32*g/cm3); +new G4Material("Lead", z=82, a=207.19*g/mole, density= 11.35*g/cm3); // // define a material from elements. case 1: chemical molecule // -density = 1.000*g/cm3; -G4Material* H2O = new G4Material(name="Water", density, ncomponents=2); -H2O->AddElement(elH, natoms=2); -H2O->AddElement(elO, natoms=1); +G4Material* H2O = new G4Material("Water", density= 1.000*g/cm3, ncomponents=2); +H2O->AddElement(H, natoms=2); +H2O->AddElement(O, natoms=1); H2O->GetIonisation()->SetMeanExcitationEnergy(75*eV); // // define a material from elements. case 2: mixture by fractional mass // -density = 1.290*mg/cm3; -G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); -Air->AddElement(elN, fractionmass=0.7); -Air->AddElement(elO, fractionmass=0.3); +G4Material* Air = new G4Material("Air", density= 1.290*mg/cm3, ncomponents=2); +Air->AddElement(N, fractionmass=0.7); +Air->AddElement(O, fractionmass=0.3); // // examples of gas // -density = 5.458*mg/cm3; -G4Material* Xe = new G4Material(name="XenonGas" , density, ncomponents=1, - kStateGas,temperature=293.15*kelvin, pressure=1*atmosphere); -Xe->AddElement(elXe, natoms=1); +new G4Material("XenonGas", z=54, a=131.29*g/mole, density= 5.458*mg/cm3, + kStateGas,293.15*kelvin, 1*atmosphere); -density = 1.977*mg/cm3; -G4Material* CO2 = new G4Material(name="CarbonicGas", density, ncomponents=2); -CO2->AddElement(elC, natoms=1); -CO2->AddElement(elO, natoms=2); +G4Material* CO2 = +new G4Material("CarbonicGas", density= 1.977*mg/cm3, ncomponents=2); +CO2->AddElement(C, natoms=1); +CO2->AddElement(O, natoms=2); -density = 1.8223*mg/cm3; -G4Material* ArCO2 = new G4Material(name="ArgonCO2", density, ncomponents=2); -ArCO2->AddElement (elAr, fractionmass=0.7844); -ArCO2->AddMaterial(CO2, fractionmass=0.2156); +G4Material* ArCO2 = +new G4Material("ArgonCO2", density= 1.8223*mg/cm3, ncomponents=2); +ArCO2->AddElement (Ar, fractionmass=0.7844); +ArCO2->AddMaterial(CO2, fractionmass=0.2156); //another way to define mixture of gas per volume -density = 1.8223*mg/cm3; -G4Material* NewArCO2 = new G4Material(name="NewArgonCO2",density,ncomponents=3); -NewArCO2->AddElement (elAr, natoms=8); -NewArCO2->AddElement (elC, natoms=2); -NewArCO2->AddElement (elO, natoms=4); +G4Material* NewArCO2 = +new G4Material("NewArgonCO2", density= 1.8223*mg/cm3, ncomponents=3); +NewArCO2->AddElement (Ar, natoms=8); +NewArCO2->AddElement (C, natoms=2); +NewArCO2->AddElement (O, natoms=4); -//Argon-CH4 -density = 1.709*mg/cm3; -G4Material* ArCH4 = new G4Material(name="ArgonCH4", density, ncomponents=3); -ArCH4->AddElement (elAr, natoms=93); -ArCH4->AddElement (elC, natoms=7); -ArCH4->AddElement (elH, natoms=28); +G4Material* ArCH4 = +new G4Material("ArgonCH4", density= 1.709*mg/cm3, ncomponents=3); +ArCH4->AddElement (Ar, natoms=93); +ArCH4->AddElement (C, natoms=7); +ArCH4->AddElement (H, natoms=28); -//Xenon-methane-propane -density = 4.9196*mg/cm3; -G4Material* XeCH = new G4Material("XenonMethanePropane", density, ncomponents=3, - kStateGas,temperature=293.15*kelvin, pressure=1*atmosphere); -XeCH->AddElement (elXe, natoms=875); -XeCH->AddElement (elC, natoms=225); -XeCH->AddElement (elH, natoms=700); +G4Material* XeCH = +new G4Material("XenonMethanePropane", density= 4.9196*mg/cm3, ncomponents=3, + kStateGas, 293.15*kelvin, 1*atmosphere); +XeCH->AddElement (Xe, natoms=875); +XeCH->AddElement (C, natoms=225); +XeCH->AddElement (H, natoms=700); // // example of vacuum @@ -227,29 +185,37 @@ XeCH->AddElement (elH, natoms=700); density = universe_mean_density; //from PhysicalConstants.h pressure = 3.e-18*pascal; temperature = 2.73*kelvin; -G4Material* Vacuum = new G4Material("Galactic", z=1., a=1.01*g/mole,density, - kStateGas,temperature,pressure); - -// ?????? G4cout << *(G4Material::GetMaterialTable()) << G4endl; +new G4Material("Galactic", z=1, a=1.01*g/mole,density, + kStateGas,temperature,pressure); +} - //default materials of the calorimeter - AbsorberMaterial = Si; - WorldMaterial = Vacuum; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::ComputeCalorParameters() +{ + // Compute derived parameters of the calorimeter + xstartAbs = XposAbs-0.5*AbsorberThickness; + xendAbs = XposAbs+0.5*AbsorberThickness; + + if (defaultWorld) { + WorldSizeX = 1.5*AbsorberThickness; WorldSizeYZ= 1.2*AbsorberSizeYZ; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VPhysicalVolume* Em5DetectorConstruction::ConstructCalorimeter() -{ - // complete the Calor parameters definition and Print - ComputeCalorParameters(); - +G4VPhysicalVolume* DetectorConstruction::ConstructCalorimeter() +{ // Cleanup old geometry + // + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); - // + // complete the Calor parameters definition + ComputeCalorParameters(); + // World // solidWorld = new G4Box("World", //its name @@ -266,8 +232,7 @@ G4VPhysicalVolume* Em5DetectorConstruction::ConstructCalorimeter() 0, //its mother volume false, //no boolean operation 0); //copy number - - // + // Absorber // solidAbsorber = new G4Box("Absorber", @@ -285,38 +250,20 @@ G4VPhysicalVolume* Em5DetectorConstruction::ConstructCalorimeter() false, //no boulean operat 0); //copy number + PrintCalorParameters(); - // - // Sensitive Detectors: Absorber - // - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!calorimeterSD) - { - calorimeterSD = new Em5CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( calorimeterSD ); - } - if (logicAbsorber) - logicAbsorber->SetSensitiveDetector(calorimeterSD); - - // - // Visualization attributes - // - G4VisAttributes* VisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - VisAtt->SetVisibility(true); - logicWorld->SetVisAttributes(VisAtt); - - // //always return the physical World // - PrintCalorParameters(); return physiWorld; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::PrintCalorParameters() +void DetectorConstruction::PrintCalorParameters() { + G4cout << "\n" << WorldMaterial << G4endl; + G4cout << "\n" << AbsorberMaterial << G4endl; + G4cout << "\n The WORLD is made of " << G4BestUnit(WorldSizeX,"Length") << " of " << WorldMaterial->GetName(); G4cout << ". The transverse size (YZ) of the world is " @@ -333,49 +280,39 @@ void Em5DetectorConstruction::PrintCalorParameters() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) +void DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - {AbsorberMaterial = pttoMaterial; - logicAbsorber->SetMaterial(pttoMaterial); - PrintCalorParameters(); - } + if (pttoMaterial) AbsorberMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::SetWorldMaterial(G4String materialChoice) +void DetectorConstruction::SetWorldMaterial(G4String materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - {WorldMaterial = pttoMaterial; - logicWorld->SetMaterial(pttoMaterial); - PrintCalorParameters(); - } + if (pttoMaterial) WorldMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::SetAbsorberThickness(G4double val) +void DetectorConstruction::SetAbsorberThickness(G4double val) { - // change Absorber thickness and recompute the calorimeter parameters AbsorberThickness = val; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::SetAbsorberSizeYZ(G4double val) +void DetectorConstruction::SetAbsorberSizeYZ(G4double val) { - // change the transverse size and recompute the calorimeter parameters AbsorberSizeYZ = val; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::SetWorldSizeX(G4double val) +void DetectorConstruction::SetWorldSizeX(G4double val) { WorldSizeX = val; defaultWorld = false; @@ -383,7 +320,7 @@ void Em5DetectorConstruction::SetWorldSizeX(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::SetWorldSizeYZ(G4double val) +void DetectorConstruction::SetWorldSizeYZ(G4double val) { WorldSizeYZ = val; defaultWorld = false; @@ -391,14 +328,17 @@ void Em5DetectorConstruction::SetWorldSizeYZ(G4double val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorConstruction::SetAbsorberXpos(G4double val) +void DetectorConstruction::SetAbsorberXpos(G4double val) { XposAbs = val; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -void Em5DetectorConstruction::SetMagField(G4double fieldValue) +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" + +void DetectorConstruction::SetMagField(G4double fieldValue) { //apply a global uniform magnetic field along Z axis G4FieldManager* fieldMgr @@ -416,9 +356,11 @@ void Em5DetectorConstruction::SetMagField(G4double fieldValue) } } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5DetectorConstruction::UpdateGeometry() +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +#include "G4RunManager.hh" + +void DetectorConstruction::UpdateGeometry() { G4RunManager::GetRunManager()->DefineWorldVolume(ConstructCalorimeter()); } diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc similarity index 85% rename from examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc rename to examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc index 5b223a4379..dab9c95bf2 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/DetectorMessenger.cc @@ -21,17 +21,17 @@ // ******************************************************************** // // -// $Id: Em5DetectorMessenger.cc,v 1.8 2003/05/30 10:28:04 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorMessenger.cc,v 1.1 2003/08/11 10:17:17 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5DetectorMessenger.hh" +#include "DetectorMessenger.hh" -#include "Em5DetectorConstruction.hh" +#include "DetectorConstruction.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" @@ -40,8 +40,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5DetectorMessenger::Em5DetectorMessenger(Em5DetectorConstruction * Em5Det) -:Em5Detector(Em5Det) +DetectorMessenger::DetectorMessenger(DetectorConstruction * Det) +:Detector(Det) { testemDir = new G4UIdirectory("/testem/"); testemDir->SetGuidance("UI commands specific to this example."); @@ -107,7 +107,7 @@ Em5DetectorMessenger::Em5DetectorMessenger(Em5DetectorConstruction * Em5Det) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5DetectorMessenger::~Em5DetectorMessenger() +DetectorMessenger::~DetectorMessenger() { delete AbsMaterCmd; delete AbsThickCmd; @@ -123,34 +123,34 @@ Em5DetectorMessenger::~Em5DetectorMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if ( command == AbsMaterCmd ) - {Em5Detector->SetAbsorberMaterial(newValue);} + {Detector->SetAbsorberMaterial(newValue);} if ( command == WorldMaterCmd ) - {Em5Detector->SetWorldMaterial(newValue);} + {Detector->SetWorldMaterial(newValue);} if ( command == AbsThickCmd ) - {Em5Detector->SetAbsorberThickness(AbsThickCmd->GetNewDoubleValue(newValue));} + {Detector->SetAbsorberThickness(AbsThickCmd->GetNewDoubleValue(newValue));} if ( command == AbsSizYZCmd ) - {Em5Detector->SetAbsorberSizeYZ(AbsSizYZCmd->GetNewDoubleValue(newValue));} + {Detector->SetAbsorberSizeYZ(AbsSizYZCmd->GetNewDoubleValue(newValue));} if ( command == AbsXposCmd ) - {Em5Detector->SetAbsorberXpos(AbsXposCmd->GetNewDoubleValue(newValue));} + {Detector->SetAbsorberXpos(AbsXposCmd->GetNewDoubleValue(newValue));} if ( command == WorldXCmd ) - {Em5Detector->SetWorldSizeX(WorldXCmd->GetNewDoubleValue(newValue));} + {Detector->SetWorldSizeX(WorldXCmd->GetNewDoubleValue(newValue));} if ( command == WorldYZCmd ) - {Em5Detector->SetWorldSizeYZ(WorldYZCmd->GetNewDoubleValue(newValue));} + {Detector->SetWorldSizeYZ(WorldYZCmd->GetNewDoubleValue(newValue));} if ( command == UpdateCmd ) - {Em5Detector->UpdateGeometry(); } + {Detector->UpdateGeometry(); } if( command == MagFieldCmd ) - {Em5Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + {Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc deleted file mode 100644 index 86a5145e26..0000000000 --- a/examples/extended/electromagnetic/TestEm5/src/Em5CalorimeterSD.cc +++ /dev/null @@ -1,131 +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: Em5CalorimeterSD.cc,v 1.6 2003/06/06 15:55:51 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em5CalorimeterSD.hh" - -#include "Em5CalorHit.hh" -#include "Em5DetectorConstruction.hh" - -#include "G4VPhysicalVolume.hh" -#include "G4Step.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" -#include "G4SDManager.hh" - -#include "G4ios.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5CalorimeterSD::Em5CalorimeterSD(G4String name, - Em5DetectorConstruction* det) -:G4VSensitiveDetector(name),Detector(det) -{ - collectionName.insert("CalCollection"); - HitID = new G4int[500]; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5CalorimeterSD::~Em5CalorimeterSD() -{ - delete [] HitID; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5CalorimeterSD::Initialize(G4HCofThisEvent*) -{ - CalCollection = new Em5CalorHitsCollection - (SensitiveDetectorName,collectionName[0]); - for (G4int j=0;j<1; j++) {HitID[j] = -1;}; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool Em5CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) -{ - G4double edep = aStep->GetTotalEnergyDeposit(); - - G4double stepl = 0.; - if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) - stepl = aStep->GetStepLength(); - - if ((edep==0.)&&(stepl==0.)) return false; - - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - - G4VPhysicalVolume* physVol = theTouchable->GetVolume(); - //theTouchable->MoveUpHistory(); - G4int Em5Number = 0 ; - - if (HitID[Em5Number]==-1) - { - Em5CalorHit* calHit = new Em5CalorHit(); - if (physVol == Detector->GetAbsorber()) calHit->AddAbs(edep,stepl); - HitID[Em5Number] = CalCollection->insert(calHit) - 1; - if (verboseLevel>0) - G4cout << " New Calorimeter Hit on Em5: " << Em5Number << G4endl; - } - else - { - if (physVol == Detector->GetAbsorber()) - (*CalCollection)[HitID[Em5Number]]->AddAbs(edep,stepl); - if (verboseLevel>0) - G4cout << " Energy added to Em5: " << Em5Number << G4endl; - } - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5CalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE) -{ - static G4int HCID = -1; - if(HCID<0) - { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } - HCE->AddHitsCollection(HCID,CalCollection); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5CalorimeterSD::clear() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - -void Em5CalorimeterSD::PrintAll() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.cc deleted file mode 100644 index 53b956536a..0000000000 --- a/examples/extended/electromagnetic/TestEm5/src/Em5EventAction.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: Em5EventAction.cc,v 1.11 2003/06/16 16:47:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em5EventAction.hh" - -#include "Em5RunAction.hh" - -#include "Em5CalorHit.hh" -#include "Em5EventActionMessenger.hh" -#include "G4Event.hh" -#include "G4EventManager.hh" -#include "G4HCofThisEvent.hh" -#include "G4VHitsCollection.hh" -#include "G4SDManager.hh" -#include "G4UImanager.hh" -#include "G4TrajectoryContainer.hh" -#include "G4Trajectory.hh" -#include "G4VVisManager.hh" -#include "G4ios.hh" -#include "G4UnitsTable.hh" - -#ifndef G4NOHIST - #include "AIDA/IHistogram1D.h" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5EventAction::Em5EventAction(Em5RunAction* Em5RA) -:calorimeterCollID(-1),eventMessenger(NULL),runaction(Em5RA), - verboselevel(0),drawFlag("none"),printModulo(10000) -{ - eventMessenger = new Em5EventActionMessenger(this); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5EventAction::~Em5EventAction() -{ - delete eventMessenger; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::BeginOfEventAction(const G4Event* evt) -{ - G4int evtNb = evt->GetEventID(); - - //printing survey - if (evtNb%printModulo == 0) - G4cout << "\n---> Begin of Event: " << evtNb << G4endl; - - if (calorimeterCollID==-1) - { - G4SDManager * SDman = G4SDManager::GetSDMpointer(); - calorimeterCollID = SDman->GetCollectionID("CalCollection"); - } - - nstep = 0. ; - nstepCharged = 0. ; - nstepNeutral = 0. ; - Nch = 0. ; - Nne = 0. ; - NE=0.; - NP=0.; - Transmitted=0.; - Reflected =0.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::EndOfEventAction(const G4Event* evt) -{ - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - Em5CalorHitsCollection* CHC = NULL; - if (HCE) - CHC = (Em5CalorHitsCollection*)(HCE->GetHC(calorimeterCollID)); - - if (CHC) - { - int n_hit = CHC->entries(); - // if(verboselevel==2) - // G4cout << " " << n_hit - // << " hits are stored in Em5CalorHitsCollection." << G4endl; - - G4double totEAbs=0, totLAbs=0; - for (int i=0;iGetEdepAbs(); - totLAbs += (*CHC)[i]->GetTrakAbs(); - } - if(verboselevel==2) - G4cout - << " Absorber: total energy: " << std::setw(7) << - G4BestUnit(totEAbs,"Energy") - << " total track length: " << std::setw(7) << - G4BestUnit(totLAbs,"Length") - << G4endl; - - // count event, add deposits to the sum ... - runaction->CountEvent() ; - runaction->AddTrackLength(totLAbs) ; - runaction->AddnStepsCharged(nstepCharged); - runaction->AddnStepsNeutral(nstepNeutral); - if(verboselevel==2) - G4cout << " Ncharged=" << Nch << " , Nneutral=" << Nne << G4endl; - runaction->CountParticles(Nch,Nne); - runaction->AddEP(NE,NP); - runaction->AddTrRef(Transmitted,Reflected); - runaction->AddEdeps(totEAbs); -#ifndef G4NOHIST - if(runaction->GetHisto(1) != 0) - runaction->GetHisto(1)->fill(totEAbs); -#endif - - nstep=nstepCharged+nstepNeutral ; -#ifndef G4NOHIST - if(runaction->GetHisto(0) != 0) - runaction->GetHisto(0)->fill(nstep); -#endif - } - - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - - if(pVVisManager) - { - 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(50); - else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) - trj->DrawTrajectory(50); - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4int Em5EventAction::GetEventno() -{ - G4int evno = fpEventManager->GetConstCurrentEvent()->GetEventID() ; - return evno ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::setEventVerbose(G4int level) -{ - verboselevel = level ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::CountStepsCharged() -{ - nstepCharged += 1. ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::CountStepsNeutral() -{ - nstepNeutral += 1. ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::AddCharged() -{ - Nch += 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::AddNeutral() -{ - Nne += 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::AddE() -{ - NE += 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::AddP() -{ - NP += 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::SetTr() -{ - Transmitted = 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventAction::SetRef() -{ - Reflected = 1.; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc deleted file mode 100644 index 0b12e0a0b1..0000000000 --- a/examples/extended/electromagnetic/TestEm5/src/Em5EventActionMessenger.cc +++ /dev/null @@ -1,89 +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: Em5EventActionMessenger.cc,v 1.7 2003/05/30 10:28:05 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em5EventActionMessenger.hh" - -#include "Em5EventAction.hh" -#include "G4UIcmdWithAString.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "globals.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5EventActionMessenger::Em5EventActionMessenger(Em5EventAction* EvAct) -:eventAction(EvAct) -{ - setVerboseCmd = new G4UIcmdWithAnInteger("/testem/event/setverbose",this); - setVerboseCmd->SetGuidance("Set verbose level ." ); - setVerboseCmd->SetParameterName("level",true); - setVerboseCmd->SetDefaultValue(0); - - 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...... - -Em5EventActionMessenger::~Em5EventActionMessenger() -{ - delete setVerboseCmd; - delete DrawCmd; - delete PrintCmd; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5EventActionMessenger::SetNewValue(G4UIcommand* command, - G4String newValue) -{ - if(command == setVerboseCmd) - {eventAction->setEventVerbose(setVerboseCmd->GetNewIntValue(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/TestEm5/src/Em5RunAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5RunAction.cc deleted file mode 100644 index e3e81fbf70..0000000000 --- a/examples/extended/electromagnetic/TestEm5/src/Em5RunAction.cc +++ /dev/null @@ -1,569 +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: Em5RunAction.cc,v 1.18 2003/06/16 16:47:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5RunAction.hh" -#include "Em5RunMessenger.hh" - -#include "G4Run.hh" -#include "G4RunManager.hh" -#include "G4UImanager.hh" -#include "G4VVisManager.hh" -#include "G4ios.hh" -#include - -#include "Randomize.hh" - -#ifndef G4NOHIST - #include "AIDA/AIDA.h" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5RunAction::Em5RunAction() - :histName("histfile"),nbinStep(0),nbinEn(0),nbinTt(0),nbinTb(0), - nbinTsec(0),nbinTh(0),nbinThproj(0),nbinThback(0),nbinR(0),nbinGamma(0), - nbinvertexz(0) -{ - runMessenger = new Em5RunMessenger(this); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5RunAction::~Em5RunAction() -{ - delete runMessenger; -#ifndef G4NOHIST - tree->commit(); // Writing the histograms to the file - tree->close(); // and closing the tree (and the file) - - delete tree; -#endif -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::bookHisto() -{ -#ifndef G4NOHIST - // Creating the analysis factory - AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); - - // Creating the tree factory - AIDA::ITreeFactory* tf = af->createTreeFactory(); - - // Creating a tree mapped to an hbook file. - G4bool readOnly = false; - G4bool createNew = true; - tree = tf->create(histName, "hbook", readOnly, createNew); - - // Creating a histogram factory, whose histograms will be handled by the tree - AIDA::IHistogramFactory* hf = af->createHistogramFactory(*tree); - - // creating histograms - // - if(nbinStep>0) - { - histo[0] = hf->createHistogram1D("1","number of steps/event" - ,nbinStep,Steplow,Stephigh); - } - if(nbinEn>0) - { - histo[1] = hf->createHistogram1D("2","energy deposit in absorber(in MeV)" - ,nbinEn,Enlow,Enhigh); - } - if(nbinTh>0) - { - histo[2] = hf->createHistogram1D("3","angle distribution at exit(deg)" - ,nbinTh,Thlow/deg,Thhigh/deg); - } - if(nbinThproj>0) - { - histo[10] = hf->createHistogram1D("11","projected angle distribution at exit(deg)" - ,nbinThproj,Thlowproj/deg,Thhighproj/deg); - } - if(nbinR>0) - { - histo[3] = hf->createHistogram1D("4","lateral distribution at exit(mm)" - ,nbinR ,Rlow,Rhigh); - } - if(nbinTt>0) - { - histo[4] = hf->createHistogram1D("5","kine energy of primary at exit(MeV)" - ,nbinTt,Ttlow,Tthigh); - } - if(nbinThback>0) - { - histo[5] = hf->createHistogram1D("6", - "angle distribution of backscattered primaries(deg)" - ,nbinThback,Thlowback/deg,Thhighback/deg); - } - if(nbinTb>0) - { - histo[6] = hf->createHistogram1D("7", - "kinetic energy of the backscattered primaries (MeV)" - ,nbinTb,Tblow,Tbhigh); - } - if(nbinTsec>0) - { - histo[7] = hf->createHistogram1D("8", - "kinetic energy of the charged secondaries(MeV)" - ,nbinTsec,Tseclow,Tsechigh); - } - if(nbinvertexz>0) - { - histo[8] = hf->createHistogram1D("9","x of secondary charged vertices(mm)" - ,nbinvertexz ,zlow,zhigh); - } - if(nbinGamma>0) - { - histo[9]= hf->createHistogram1D("10", - "kinetic energy of gammas escaping the absorber(MeV)" - // ,nbinGamma,ElowGamma,EhighGamma); - ,nbinGamma,log10(ElowGamma),log10(EhighGamma)); - } - - delete hf; - delete tf; - delete af; -#endif -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::BeginOfRunAction(const G4Run* aRun) -{ - G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; - - // save Rndm status - G4RunManager::GetRunManager()->SetRandomNumberStore(true); - HepRandom::showEngineStatus(); - - if (G4VVisManager::GetConcreteInstance()) - G4UImanager::GetUIpointer()->ApplyCommand("/vis/scene/notifyHandlers"); - - EnergySumAbs = 0. ; - EnergySquareSumAbs = 0.; - tlSumAbs = 0. ; - tlsquareSumAbs = 0. ; - nStepSumCharged = 0. ; - nStepSum2Charged= 0. ; - nStepSumNeutral = 0. ; - nStepSum2Neutral= 0. ; - TotNbofEvents = 0. ; - SumCharged=0.; - SumNeutral=0.; - Sum2Charged=0.; - Sum2Neutral=0.; - Selectron=0.; - Spositron=0.; - - Transmitted=0.; - Reflected =0.; -// plot definitions -------------------------------- - if(nbinTh>0) - dTh = (Thhigh-Thlow)/nbinTh ; - - if(nbinThback>0) - dThback = (Thhighback-Thlowback)/nbinThback ; - - if (aRun->GetRunID() == 0) bookHisto(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::EndOfRunAction(const G4Run*) -{ - G4double sAbs,sigAbs,sigstep,sigcharged,signeutral; - - tlSumAbs /= TotNbofEvents ; - sAbs = tlsquareSumAbs/TotNbofEvents-tlSumAbs*tlSumAbs ; - if(sAbs>0.) - sAbs = sqrt(sAbs/TotNbofEvents) ; - else - sAbs = 0. ; - - EnergySumAbs /= TotNbofEvents ; - sigAbs = EnergySquareSumAbs/TotNbofEvents-EnergySumAbs*EnergySumAbs; - if(sigAbs>0.) - sigAbs = sqrt(sigAbs/TotNbofEvents); - else - sigAbs = 0.; - - nStepSumCharged /= TotNbofEvents ; - sigstep = nStepSum2Charged/TotNbofEvents-nStepSumCharged*nStepSumCharged; - if(sigstep>0.) - sigstep = sqrt(sigstep/TotNbofEvents); - else - sigstep = 0.; - G4double sigch=sigstep ; - - nStepSumNeutral /= TotNbofEvents ; - sigstep = nStepSum2Neutral/TotNbofEvents-nStepSumNeutral*nStepSumNeutral; - if(sigstep>0.) - sigstep = sqrt(sigstep/TotNbofEvents); - else - sigstep = 0.; - G4double signe=sigstep ; - - SumCharged /= TotNbofEvents; - sigcharged = Sum2Charged/TotNbofEvents-SumCharged*SumCharged; - if(sigcharged>0.) - sigcharged = sqrt(sigcharged/TotNbofEvents); - else - sigcharged = 0. ; - - SumNeutral /= TotNbofEvents; - signeutral = Sum2Neutral/TotNbofEvents-SumNeutral*SumNeutral; - if(signeutral>0.) - signeutral = sqrt(signeutral/TotNbofEvents); - else - signeutral = 0. ; - - Selectron /= TotNbofEvents ; - Spositron /= TotNbofEvents ; - - Transmitted /=TotNbofEvents ; - Reflected /=TotNbofEvents ; - G4cout << " ================== run summary =====================" << G4endl; - G4int prec = G4cout.precision(6); - G4cout << " end of Run TotNbofEvents = " << - TotNbofEvents << G4endl ; - G4cout << " mean charged track length in absorber=" << - tlSumAbs/mm << " +- " << sAbs/mm << - " mm " << G4endl; - G4cout << G4endl; - G4cout << " mean energy deposit in absorber=" << - EnergySumAbs/MeV << " +- " << sigAbs/MeV << - " MeV " << G4endl ; - G4cout << G4endl ; - G4cout << " mean number of steps in absorber (charged) =" << - nStepSumCharged << " +- " << sigch << - " " << G4endl ; - G4cout << " mean number of steps in absorber (neutral) =" << - nStepSumNeutral << " +- " << signe << - " " << G4endl ; - G4cout << G4endl ; - G4cout << " mean number of charged secondaries = " << - SumCharged << " +- " << sigcharged << G4endl; - G4cout << G4endl ; - G4cout << " mean number of neutral secondaries = " << - SumNeutral << " +- " << signeutral << G4endl; - G4cout << G4endl ; - - G4cout << " mean number of e-s =" << Selectron << - " and e+s =" << Spositron << G4endl; - G4cout << G4endl; - - G4cout << "(number) transmission coeff=" << Transmitted << - " reflection coeff=" << Reflected << G4endl; - G4cout << G4endl; - - G4cout.precision(prec); - - if (G4VVisManager::GetConcreteInstance()) - G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); - - // show Rndm status - HepRandom::showEngineStatus(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::CountEvent() -{ - TotNbofEvents += 1. ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::AddnStepsCharged(G4double ns) -{ - nStepSumCharged += ns; - nStepSum2Charged += ns*ns; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::AddnStepsNeutral(G4double ns) -{ - nStepSumNeutral += ns; - nStepSum2Neutral += ns*ns; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::AddEdeps(G4double Eabs) -{ - EnergySumAbs += Eabs; - EnergySquareSumAbs += Eabs*Eabs; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::AddTrackLength(G4double tlabs) -{ - tlSumAbs += tlabs; - tlsquareSumAbs += tlabs*tlabs ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::AddTrRef(G4double tr,G4double ref) -{ - Transmitted += tr ; - Reflected += ref; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunAction::SethistName(G4String name) -{ - histName = name ; - G4cout << " hist file = " << histName << G4endl; -} - -void Em5RunAction::SetnbinStep(G4int nbin) -{ - nbinStep = nbin ; - if(nbinStep>0) - G4cout << " Nb of bins in #step plot = " << nbinStep << G4endl ; -} -void Em5RunAction::SetSteplow(G4double low) -{ - Steplow = low ; - if(nbinStep>0) - G4cout << " low in the #step plot = " << Steplow << G4endl ; -} -void Em5RunAction::SetStephigh(G4double high) -{ - Stephigh = high ; - if(nbinStep>0) - G4cout << " high in the #step plot = " << Stephigh << G4endl ; -} -void Em5RunAction::SetnbinEn(G4int nbin) -{ - nbinEn = nbin ; - if(nbinEn>0) - G4cout << " Nb of bins in Edep plot = " << nbinEn << G4endl ; -} -void Em5RunAction::SetEnlow(G4double Elow) -{ - Enlow = Elow ; - if(nbinEn>0) - G4cout << " Elow in the Edep plot = " << Enlow << G4endl ; -} -void Em5RunAction::SetEnhigh(G4double Ehigh) -{ - Enhigh = Ehigh ; - if(nbinEn>0) - G4cout << " Ehigh in the Edep plot = " << Enhigh << G4endl ; -} - -void Em5RunAction::SetnbinGamma(G4int nbin) -{ - nbinGamma = nbin ; - if(nbinGamma>0) - G4cout << " Nb of bins in gamma spectrum plot = " << nbinGamma << G4endl ; -} -void Em5RunAction::SetElowGamma(G4double Elow) -{ - ElowGamma = Elow ; - if(nbinGamma>0) - G4cout << " Elow in the gamma spectrum plot = " << ElowGamma << G4endl ; -} -void Em5RunAction::SetEhighGamma(G4double Ehigh) -{ - EhighGamma = Ehigh ; - if(nbinGamma>0) - G4cout << " Ehigh in the gamma spectrum plot = " << EhighGamma << G4endl ; -} - -void Em5RunAction::SetnbinTt(G4int nbin) -{ - nbinTt = nbin ; - if(nbinTt>0) - G4cout << " Nb of bins in Etransmisssion plot = " << nbinTt << G4endl ; -} -void Em5RunAction::SetTtlow(G4double Elow) -{ - Ttlow = Elow ; - if(nbinTt>0) - G4cout << " Elow in the Etransmission plot = " << Ttlow << G4endl ; -} -void Em5RunAction::SetTthigh(G4double Ehigh) -{ - Tthigh = Ehigh ; - if(nbinTt>0) - G4cout << " Ehigh in the Etransmission plot = " << Tthigh << G4endl ; -} -void Em5RunAction::SetnbinTb(G4int nbin) -{ - nbinTb = nbin ; - if(nbinTb>0) - G4cout << " Nb of bins in Ebackscattered plot = " << nbinTb << G4endl ; -} -void Em5RunAction::SetTblow(G4double Elow) -{ - Tblow = Elow ; - if(nbinTb>0) - G4cout << " Elow in the Ebackscattered plot = " << Tblow << G4endl ; -} -void Em5RunAction::SetTbhigh(G4double Ehigh) -{ - Tbhigh = Ehigh ; - if(nbinTb>0) - G4cout << " Ehigh in the Ebackscattered plot = " << Tbhigh << G4endl ; -} - -void Em5RunAction::SetnbinTsec(G4int nbin) -{ - nbinTsec = nbin ; - if(nbinTsec>0) - G4cout << " Nb of bins in Tsecondary plot = " << nbinTsec << G4endl ; -} -void Em5RunAction::SetTseclow(G4double Elow) -{ - Tseclow = Elow ; - if(nbinTsec>0) - G4cout << " Elow in the Tsecondary plot = " << Tseclow << G4endl ; -} -void Em5RunAction::SetTsechigh(G4double Ehigh) -{ - Tsechigh = Ehigh ; - if(nbinTsec>0) - G4cout << " Ehigh in the Tsecondary plot = " << Tsechigh << G4endl ; -} - -void Em5RunAction::SetnbinR(G4int nbin) -{ - nbinR = nbin ; - if(nbinR>0) - G4cout << " Nb of bins in R plot = " << nbinR << G4endl ; -} -void Em5RunAction::SetRlow(G4double rlow) -{ - Rlow = rlow ; - if(nbinR>0) - G4cout << " Rlow in the R plot = " << Rlow << G4endl ; -} -void Em5RunAction::SetRhigh(G4double rhigh) -{ - Rhigh = rhigh ; - if(nbinR>0) - G4cout << " Rhigh in the R plot = " << Rhigh << G4endl ; -} - -void Em5RunAction::Setnbinzvertex(G4int nbin) -{ - nbinvertexz = nbin ; - if(nbinvertexz>0) - G4cout << " Nb of bins in Z plot = " << nbinvertexz << G4endl ; -} -void Em5RunAction::Setzlow(G4double z) -{ - zlow = z ; - if(nbinvertexz>0) - G4cout << " zlow in the Z plot = " << zlow << G4endl ; -} -void Em5RunAction::Setzhigh(G4double z) -{ - zhigh = z ; - if(nbinvertexz>0) - G4cout << " zhigh in the Z plot = " << zhigh << G4endl ; -} - -void Em5RunAction::SetnbinTh(G4int nbin) -{ - nbinTh = nbin ; - if(nbinTh>0) - G4cout << " Nb of bins in Theta plot = " << nbinTh << G4endl ; -} -void Em5RunAction::SetThlow(G4double Tlow) -{ - Thlow = Tlow ; - if(nbinTh>0) - G4cout << " Tlow in the Theta plot = " << Thlow << G4endl ; -} -void Em5RunAction::SetThhigh(G4double Thigh) -{ - Thhigh = Thigh ; - if(nbinTh>0) - G4cout << " Thigh in the Theta plot = " << Thhigh << G4endl ; -} -void Em5RunAction::SetnbinThproj(G4int nbin) -{ - nbinThproj = nbin ; - if(nbinThproj>0) - G4cout << " Nb of bins in Thetaproj plot = " << nbinThproj << G4endl ; -} -void Em5RunAction::SetThlowproj(G4double Tlow) -{ - Thlowproj = Tlow ; - if(nbinThproj>0) - G4cout << " Tlow in the Thetaproj plot = " << Thlowproj << G4endl ; -} -void Em5RunAction::SetThhighproj(G4double Thigh) -{ - Thhighproj = Thigh ; - if(nbinThproj>0) - G4cout << " Thigh in the Thetaproj plot = " << Thhighproj << G4endl ; -} -void Em5RunAction::SetnbinThBack(G4int nbin) -{ - nbinThback = nbin ; - if(nbinThback>0) - G4cout << " Nb of bins in Theta plot = " << nbinThback << G4endl ; -} -void Em5RunAction::SetThlowBack(G4double Tlow) -{ - Thlowback = Tlow ; - if(nbinThback>0) - G4cout << " Tlow in the Theta plot = " << Thlowback << G4endl ; -} -void Em5RunAction::SetThhighBack(G4double Thigh) -{ - Thhighback = Thigh ; - if(nbinThback>0) - G4cout << " Thigh in the Theta plot = " << Thhighback << G4endl ; -} -void Em5RunAction::CountParticles(G4double nch,G4double nne) -{ - SumCharged += nch ; - SumNeutral += nne ; - Sum2Charged += nch*nch ; - Sum2Neutral += nne*nne ; -} -void Em5RunAction::AddEP(G4double nele,G4double npos) -{ - Selectron += nele; - Spositron += npos; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc deleted file mode 100644 index fea29fd625..0000000000 --- a/examples/extended/electromagnetic/TestEm5/src/Em5RunMessenger.cc +++ /dev/null @@ -1,387 +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: Em5RunMessenger.cc,v 1.8 2003/05/30 10:28:05 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em5RunMessenger.hh" - -#include "Em5RunAction.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAnInteger.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIcmdWithAString.hh" -#include "G4ios.hh" -#include "globals.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5RunMessenger::Em5RunMessenger(Em5RunAction* RA) -:runAction (RA) -{ - plotDir = new G4UIdirectory("/testem/plots/"); - plotDir->SetGuidance("plot control"); - - sethistNameCmd = new G4UIcmdWithAString("/testem/plots/sethistName",this); - sethistNameCmd->SetGuidance("set name for the histogram file"); - - setnbinStepCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinStep",this); - setnbinStepCmd->SetGuidance("set nb of bins in #step plot"); - setnbinStepCmd->SetParameterName("nbinStep",false); - - setSteplowCmd = new G4UIcmdWithADouble("/testem/plots/setSteplow",this); - setSteplowCmd->SetGuidance("set lower limit for #step plot "); - setSteplowCmd->SetParameterName("Steplow",false); - - setStephighCmd = new G4UIcmdWithADouble("/testem/plots/setStephigh",this); - setStephighCmd->SetGuidance("set upper limit for #step plot "); - setStephighCmd->SetParameterName("Stephigh",false); - - setnbinEnCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinEn",this); - setnbinEnCmd->SetGuidance("set nb of bins in Edep plot"); - setnbinEnCmd->SetParameterName("nbinE",false); - - setEnlowCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setEnlow",this); - setEnlowCmd->SetGuidance("set lower limit for Edep plot "); - setEnlowCmd->SetParameterName("Elow",false); - setEnlowCmd->SetUnitCategory("Energy"); - - setEnhighCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setEnhigh",this); - setEnhighCmd->SetGuidance("set upper limit for Edep plot "); - setEnhighCmd->SetParameterName("Ehigh",false); - setEnhighCmd->SetUnitCategory("Energy"); - - setnbinGammaCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinGamma",this); - setnbinGammaCmd->SetGuidance("set nb of bins in gamma spectrum plot"); - setnbinGammaCmd->SetParameterName("nbinGamma",false); - - setElowGammaCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setElowGamma",this); - setElowGammaCmd->SetGuidance("set lower limit for gamma spectrum plot "); - setElowGammaCmd->SetParameterName("ElowGamma",false); - setElowGammaCmd->SetUnitCategory("Energy"); - - setEhighGammaCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setEhighGamma",this); - setEhighGammaCmd->SetGuidance("set upper limit for gamma spectrum plot "); - setEhighGammaCmd->SetParameterName("EhighGamma",false); - setEhighGammaCmd->SetUnitCategory("Energy"); - - setnbinTtCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinTt",this); - setnbinTtCmd->SetGuidance("set nb of bins in Etransmitted plot"); - setnbinTtCmd->SetParameterName("nbinTt",false); - - setTtlowCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setTtlow",this); - setTtlowCmd->SetGuidance("set lower limit for Etransmitted plot "); - setTtlowCmd->SetParameterName("Ttlow",false); - - setTthighCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setTthigh",this); - setTthighCmd->SetGuidance("set upper limit for Etransmitted plot "); - setTthighCmd->SetParameterName("Tthigh",false); - - setnbinTbCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinTb",this); - setnbinTbCmd->SetGuidance("set nb of bins in Ebackscattering plot"); - setnbinTbCmd->SetParameterName("nbinTb",false); - - setTblowCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setTblow",this); - setTblowCmd->SetGuidance("set lower limit for Ebackscattered plot "); - setTblowCmd->SetParameterName("Tblow",false); - - setTbhighCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setTbhigh",this); - setTbhighCmd->SetGuidance("set upper limit for Ebackscattered plot "); - setTbhighCmd->SetParameterName("Tbhigh",false); - - setnbinTsecCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinTsec",this); - setnbinTsecCmd->SetGuidance("set nb of bins in charged Tsecondary plot"); - setnbinTsecCmd->SetParameterName("nbinTsec",false); - - setTseclowCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setTseclow",this); - setTseclowCmd->SetGuidance("set lower limit for charged Tsecondary plot "); - setTseclowCmd->SetParameterName("Tseclow",false); - - setTsechighCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setTsechigh",this); - setTsechighCmd->SetGuidance("set upper limit for charged Tsecondary plot "); - setTsechighCmd->SetParameterName("Tsechigh",false); - - setnbinRCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinR",this); - setnbinRCmd->SetGuidance("set nb of bins in R plot"); - setnbinRCmd->SetParameterName("nbinR",false); - - setRlowCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setRlow",this); - setRlowCmd->SetGuidance("set lower limit for R plot "); - setRlowCmd->SetParameterName("Rlow",false); - - setRhighCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setRhigh",this); - setRhighCmd->SetGuidance("set upper limit for R plot "); - setRhighCmd->SetParameterName("Rhigh",false); - - setnbinzvertexCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinzvertex",this); - setnbinzvertexCmd->SetGuidance("set nb of bins in Z vertex plot"); - setnbinzvertexCmd->SetParameterName("nbinZ",false); - - setzlowCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setzlow",this); - setzlowCmd->SetGuidance("set lower limit for Z vertex plot "); - setzlowCmd->SetParameterName("zlow",false); - - setzhighCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setzhigh",this); - setzhighCmd->SetGuidance("set upper limit for Z vertex plot "); - setzhighCmd->SetParameterName("zhigh",false); - - setnbinThCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinTh",this); - setnbinThCmd->SetGuidance("set nb of bins in Theta transmitted plot"); - setnbinThCmd->SetParameterName("nbinTh",false); - - setThlowCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setThlow",this); - setThlowCmd->SetGuidance("set lower limit for Theta transmitted plot "); - setThlowCmd->SetParameterName("Thlow",false); - - setThhighCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setThhigh",this); - setThhighCmd->SetGuidance("set upper limit for Theta transmitted plot "); - setThhighCmd->SetParameterName("Thhigh",false); - - setnbinThprojCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinThproj",this); - setnbinThprojCmd->SetGuidance("set nb of bins in Thetaproj transmitted plot"); - setnbinThprojCmd->SetParameterName("nbinThproj",false); - - setThlowprojCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setThlowproj",this); - setThlowprojCmd->SetGuidance("set lower limit for Thetaproj transmitted plot "); - setThlowprojCmd->SetParameterName("Thlowproj",false); - - setThhighprojCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setThhighproj",this); - setThhighprojCmd->SetGuidance("set upper limit for Thetaproj transmitted plot "); - setThhighprojCmd->SetParameterName("Thhighproj",false); - - setnbinThbackCmd = new G4UIcmdWithAnInteger("/testem/plots/setnbinThback",this); - setnbinThbackCmd->SetGuidance("set nb of bins in backscattering Theta plot"); - setnbinThbackCmd->SetParameterName("nbinThback",false); - - setThlowbackCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setThlowback",this); - setThlowbackCmd->SetGuidance("set lower limit for backscattering Theta plot"); - setThlowbackCmd->SetParameterName("Thlowback",false); - - setThhighbackCmd = new G4UIcmdWithADoubleAndUnit("/testem/plots/setThhighback",this); - setThhighbackCmd->SetGuidance("set upper limit for backscattering Teta plot"); - setThhighbackCmd->SetParameterName("Thhighback",false); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5RunMessenger::~Em5RunMessenger() -{ - delete sethistNameCmd; - - delete setnbinStepCmd; - delete setSteplowCmd; - delete setStephighCmd; - - delete setnbinEnCmd; - delete setEnlowCmd; - delete setEnhighCmd; - - delete setnbinGammaCmd; - delete setElowGammaCmd; - delete setEhighGammaCmd; - - delete setnbinTtCmd; - delete setTtlowCmd; - delete setTthighCmd; - - delete setnbinTbCmd; - delete setTblowCmd; - delete setTbhighCmd; - - delete setnbinTsecCmd; - delete setTseclowCmd; - delete setTsechighCmd; - - delete setnbinRCmd; - delete setRlowCmd; - delete setRhighCmd; - - delete setnbinzvertexCmd; - delete setzlowCmd; - delete setzhighCmd; - - delete setnbinThCmd; - delete setThlowCmd; - delete setThhighCmd; - - delete setnbinThprojCmd; - delete setThlowprojCmd; - delete setThhighprojCmd; - - delete setnbinThbackCmd; - delete setThlowbackCmd; - delete setThhighbackCmd; - - delete plotDir; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5RunMessenger::SetNewValue(G4UIcommand* command,G4String newValues) -{ - if( command == sethistNameCmd) - runAction - ->SethistName(newValues) ; - - if( command == setnbinStepCmd) - runAction - ->SetnbinStep(setnbinStepCmd->GetNewIntValue(newValues)); - - if( command == setSteplowCmd) - runAction - ->SetSteplow( setSteplowCmd->GetNewDoubleValue(newValues)); - - if( command == setStephighCmd) - runAction - ->SetStephigh( setStephighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinEnCmd) - runAction - ->SetnbinEn(setnbinEnCmd->GetNewIntValue(newValues)); - - if( command == setEnlowCmd) - runAction - ->SetEnlow( setEnlowCmd->GetNewDoubleValue(newValues)); - - if( command == setEnhighCmd) - runAction - ->SetEnhigh( setEnhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinGammaCmd) - runAction - ->SetnbinGamma(setnbinGammaCmd->GetNewIntValue(newValues)); - - if( command == setElowGammaCmd) - runAction - ->SetElowGamma( setElowGammaCmd->GetNewDoubleValue(newValues)); - - if( command == setEhighGammaCmd) - runAction - ->SetEhighGamma( setEhighGammaCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinTtCmd) - runAction - ->SetnbinTt(setnbinTtCmd->GetNewIntValue(newValues)); - - if( command == setTtlowCmd) - runAction - ->SetTtlow( setTtlowCmd->GetNewDoubleValue(newValues)); - - if( command == setTthighCmd) - runAction - ->SetTthigh( setTthighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinTbCmd) - runAction - ->SetnbinTb(setnbinTbCmd->GetNewIntValue(newValues)); - - if( command == setTblowCmd) - runAction - ->SetTblow( setTblowCmd->GetNewDoubleValue(newValues)); - - if( command == setTbhighCmd) - runAction - ->SetTbhigh( setTbhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinTsecCmd) - runAction - ->SetnbinTsec(setnbinTsecCmd->GetNewIntValue(newValues)); - - if( command == setTseclowCmd) - runAction - ->SetTseclow( setTseclowCmd->GetNewDoubleValue(newValues)); - - if( command == setTsechighCmd) - runAction - ->SetTsechigh( setTsechighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinRCmd) - runAction - ->SetnbinR(setnbinRCmd->GetNewIntValue(newValues)); - - if( command == setRlowCmd) - runAction - ->SetRlow( setRlowCmd->GetNewDoubleValue(newValues)); - - if( command == setRhighCmd) - runAction - ->SetRhigh( setRhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinzvertexCmd) - runAction - ->Setnbinzvertex(setnbinzvertexCmd->GetNewIntValue(newValues)); - - if( command == setzlowCmd) - runAction - ->Setzlow( setzlowCmd->GetNewDoubleValue(newValues)); - - if( command == setzhighCmd) - runAction - ->Setzhigh( setzhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinThCmd) - runAction - ->SetnbinTh(setnbinThCmd->GetNewIntValue(newValues)); - - if( command == setThlowCmd) - runAction - ->SetThlow( setThlowCmd->GetNewDoubleValue(newValues)); - - if( command == setThhighCmd) - runAction - ->SetThhigh( setThhighCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinThprojCmd) - runAction - ->SetnbinThproj(setnbinThprojCmd->GetNewIntValue(newValues)); - - if( command == setThlowprojCmd) - runAction - ->SetThlowproj( setThlowprojCmd->GetNewDoubleValue(newValues)); - - if( command == setThhighprojCmd) - runAction - ->SetThhighproj( setThhighprojCmd->GetNewDoubleValue(newValues)); - - if( command == setnbinThbackCmd) - runAction - ->SetnbinThBack(setnbinThbackCmd->GetNewIntValue(newValues)); - - if( command == setThlowbackCmd) - runAction - ->SetThlowBack( setThlowbackCmd->GetNewDoubleValue(newValues)); - - if( command == setThhighbackCmd) - runAction - ->SetThhighBack( setThhighbackCmd->GetNewDoubleValue(newValues)); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc b/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc deleted file mode 100644 index c0256c90c1..0000000000 --- a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingAction.cc +++ /dev/null @@ -1,269 +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: Em5SteppingAction.cc,v 1.13 2003/06/16 16:47:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "Em5DetectorConstruction.hh" -#include "G4EnergyLossTables.hh" -#include "G4SteppingManager.hh" -#include "G4TrackVector.hh" -#include "Em5SteppingAction.hh" -#include "Em5PrimaryGeneratorAction.hh" -#include "Em5EventAction.hh" -#include "Em5RunAction.hh" -#include "G4Event.hh" -#include "G4EventManager.hh" -#include "Em5SteppingMessenger.hh" -#include "G4ios.hh" -#include -#include "G4UImanager.hh" - -#ifndef G4NOHIST - #include "AIDA/IHistogram1D.h" -#endif - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5SteppingAction::Em5SteppingAction(Em5DetectorConstruction* DET, - Em5EventAction* EA, - Em5RunAction* RA) -:detector (DET),eventaction (EA),runaction (RA),steppingMessenger(NULL), - IDold(-1) ,evnoold(-1) -{ - steppingMessenger = new Em5SteppingMessenger(this); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5SteppingAction::~Em5SteppingAction() -{ - delete steppingMessenger ; - } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5SteppingAction::UserSteppingAction(const G4Step* aStep) -{ - const G4Track* track = aStep->GetTrack(); -#ifndef G4NOHIST - const G4double cn = pi/(64800.*runaction->GetdTh()) ; - const G4double cnback = pi/(64800.*runaction->GetdThback()) ; - G4double wg ; -#endif - G4double Theta,Thetaback,Ttrans,Tback,Tsec,Egamma,yend,zend,rend; - G4int evno = eventaction->GetEventno(); - - IDnow = evno+10000*(track->GetTrackID())+ - 100000000*(track->GetParentID()); - - if(IDnow != IDold) - { - IDold=IDnow ; - if( - (((track->GetDynamicParticle()->GetDefinition()-> - GetParticleName()) == "e-") && - ((track->GetTrackID() != 1) || - (track->GetParentID() != 0)) ) - || - (((track->GetDynamicParticle()->GetDefinition()-> - GetParticleName()) == "e+") && - ((track->GetTrackID() != 1) || - (track->GetParentID() != 0)) ) - ) -#ifndef G4NOHIST - if(runaction->GetHisto(8) != 0) - runaction->GetHisto(8)->fill( - track->GetVertexPosition().x()); -#endif - - - if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber") - { - if(((track->GetDynamicParticle()->GetDefinition()-> - GetParticleName()) == "e-") && - ((track->GetTrackID() != 1) || - (track->GetParentID() != 0)) ) - { - eventaction->AddCharged() ; - eventaction->AddE() ; - Tsec = track->GetKineticEnergy() ; // !!!!!!!!!!!! - Tsec += aStep->GetTotalEnergyDeposit() ; // !!!!!!!!!!!! -#ifndef G4NOHIST - if(runaction->GetHisto(7) != 0) - runaction->GetHisto(7)->fill(Tsec/MeV) ; -#endif - } - else - if(((track->GetDynamicParticle()->GetDefinition()-> - GetParticleName()) == "e+") && - ((track->GetTrackID() != 1) || - (track->GetParentID() != 0)) ) - { - eventaction->AddCharged() ; - eventaction->AddP() ; - Tsec = track->GetKineticEnergy() ; // !!!!!!!!!!!! - Tsec += aStep->GetTotalEnergyDeposit() ; // !!!!!!!!!!!! -#ifndef G4NOHIST - if(runaction->GetHisto(7) != 0) - runaction->GetHisto(7)->fill(Tsec) ; -#endif - } - else - if(((track->GetDynamicParticle()->GetDefinition()-> - GetParticleName()) == "gamma") && - ((track->GetTrackID() != 1) || - (track->GetParentID() != 0)) ) - { - eventaction->AddNeutral() ; - } - } - } - - - if(aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber") - { - if(((track->GetDynamicParticle()->GetDefinition()-> - GetParticleName()) == "e-") - || - ((track->GetDynamicParticle()->GetDefinition()-> - GetParticleName()) == "e+")) - eventaction->CountStepsCharged() ; - - if ((track->GetDynamicParticle()->GetDefinition()-> - GetParticleName()) == "gamma") - eventaction->CountStepsNeutral() ; - } - - G4String nextVolumeName = "OutOfWorld"; - if (track->GetNextVolume()) - nextVolumeName = track->GetNextVolume()->GetName(); - - if ( nextVolumeName != "OutOfWorld" - && - track->GetTrackID() == 1 - && - aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber" - && - nextVolumeName == "World" - && - track->GetMomentumDirection().x() > 0. ) - { - eventaction->SetTr(); - Theta = acos(track->GetMomentumDirection().x()) ; -#ifndef G4NOHIST - if((runaction->GetHisto(2) != 0) && (Theta > 0.)) - { - wg = cn/sin(Theta) ; - runaction->GetHisto(2)->fill(Theta/deg,wg) ; - } -#endif - - // theta projected plot (deg) ............................. - G4double vx=aStep->GetTrack()->GetMomentumDirection().x() ; - G4double vy=aStep->GetTrack()->GetMomentumDirection().y() ; - G4double vplane = sqrt(vx*vx+vy*vy) ; - G4double thpr = 0. ; - if(vplane > 0.) - { - vx /= vplane ; - thpr = acos(vx) ; - if(vy < 0.) thpr *= -1. ; - } -#ifndef G4NOHIST - if(runaction->GetHisto(10) != 0) - runaction->GetHisto(10)->fill(thpr/deg) ; -#endif - - Ttrans = track->GetKineticEnergy() ; -#ifndef G4NOHIST - if(runaction->GetHisto(4) != 0) - runaction->GetHisto(4)->fill(Ttrans/MeV) ; -#endif - yend= track->GetPosition().y() ; - zend= track->GetPosition().z() ; - rend = sqrt(yend*yend+zend*zend) ; -#ifndef G4NOHIST - if(runaction->GetHisto(3) != 0) - runaction->GetHisto(3)->fill(rend) ; -#endif - } - - - if ( nextVolumeName != "OutOfWorld" - && - track->GetTrackID() == 1 - && - aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber" - && - nextVolumeName =="World" - && - track->GetMomentumDirection().x() < 0. ) - - { - eventaction->SetRef(); - Thetaback = acos(track->GetMomentumDirection().x()) ; - Thetaback -= 0.5*pi ; -#ifndef G4NOHIST - if((runaction->GetHisto(5) != 0) && (Thetaback > 0.)) - { - wg = cnback/sin(Thetaback) ; - runaction->GetHisto(5)->fill(Thetaback/deg,wg) ; - } -#endif - Tback = track->GetKineticEnergy() ; -#ifndef G4NOHIST - if(runaction->GetHisto(6) != 0) - runaction->GetHisto(6)->fill(Tback/MeV) ; -#endif - } - - if ( nextVolumeName != "OutOfWorld" - && - aStep->GetPreStepPoint()->GetPhysicalVolume()->GetName()=="Absorber" - && - track->GetNextVolume()->GetName()=="World" - && - track->GetMomentumDirection().x()>0. - && - track->GetDynamicParticle()->GetDefinition() - ->GetParticleName() == "gamma" ) - - { - Egamma = track->GetKineticEnergy() ; -#ifndef G4NOHIST - if(runaction->GetHisto(9) != 0) - runaction->GetHisto(9)->fill(log10(Egamma/MeV)) ; -#endif - } - - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm5/src/EventAction.cc b/examples/extended/electromagnetic/TestEm5/src/EventAction.cc new file mode 100644 index 0000000000..91d4ce6157 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/EventAction.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: EventAction.cc,v 1.1 2003/08/11 10:20:19 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventAction.hh" + +#include "RunAction.hh" +#include "HistoManager.hh" +#include "EventMessenger.hh" + +#include "G4Event.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" + +#ifdef G4ANALYSIS_USE + #include "AIDA/IHistogram1D.h" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventAction::EventAction(RunAction* RA, HistoManager* histo) +:runaction(RA),histoManager(histo), + drawFlag("none"),printModulo(10000) +{ + eventMessenger = new EventMessenger(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; + + // initialisation per event + EnergyDeposit = 0.; + TrakLenCharged = TrakLenNeutral = 0.; + nbStepsCharged = nbStepsNeutral = 0; + TransmitFlag = ReflectFlag = 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventAction::EndOfEventAction(const G4Event* evt) +{ + runaction->AddEnergy(EnergyDeposit); + runaction->AddTrakLenCharg(TrakLenCharged); + runaction->AddTrakLenNeutr(TrakLenNeutral); + + runaction->CountStepsCharg(nbStepsCharged); + runaction->CountStepsNeutr(nbStepsNeutral); + + runaction->CountTransmit (TransmitFlag); + runaction->CountReflect (ReflectFlag); + +#ifdef G4ANALYSIS_USE + if (histoManager->GetHisto(1)) { + G4double unit = histoManager->GetHistoUnit(1); + histoManager->GetHisto(1)->fill(EnergyDeposit/unit); + } +#endif + + 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(50); + else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) + trj->DrawTrajectory(50); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/EventMessenger.cc new file mode 100644 index 0000000000..f035d5af23 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/EventMessenger.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: EventMessenger.cc,v 1.1 2003/08/11 10:20:23 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventMessenger.hh" + +#include "EventAction.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventMessenger::EventMessenger(EventAction* EvAct) +:eventAction(EvAct) +{ + 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...... + +EventMessenger::~EventMessenger() +{ + delete DrawCmd; + delete PrintCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void EventMessenger::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/TestEm5/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc new file mode 100644 index 0000000000..dbd6d6e893 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/HistoManager.cc @@ -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: HistoManager.cc,v 1.5 2003/11/03 12:58:55 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4ANALYSIS_USE + +#include "HistoManager.hh" +#include "HistoMessenger.hh" + +#include "AIDA/AIDA.h" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoManager::HistoManager() +:tree(0),hf(0),factoryOn(false) +{ + histoMessenger = new HistoMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoManager::~HistoManager() +{ + if (factoryOn) { + tree->commit(); // Writing the histograms to the file + tree->close(); // and closing the tree (and the file) + + delete hf; + delete tree; + factoryOn = false; + } + + delete histoMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::SetFactory(G4String fileName) +{ + if (factoryOn) { + G4cout << "\n--->HistoManager::SetFactory(): factory already exists" + << G4endl; + return; + } + + // Creating the analysis factory + AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); + + // Creating the tree factory + AIDA::ITreeFactory* tf = af->createTreeFactory(); + + // Creating a tree mapped to an hbook file. + G4bool readOnly = false; + G4bool createNew = true; + tree = tf->create(fileName, "hbook", readOnly, createNew); + + // Creating a histogram factory, whose histograms will be handled by the tree + hf = af->createHistogramFactory(*tree); + + // histograms + for (G4int k=0; k 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", "9", + "10","11","12","13","14","15","16"}; + const G4String title[] = + { "dummy", //0 + "energy deposit in absorber", //1 + "energy of charged secondaries at creation", //2 + "energy of gammas at creation (log10(ekin/MeV))", //3 + "(transmit, charged) : kinetic energy at exit", //4 + "(transmit, charged) : space angle at exit", //5 + "(transmit, charged) : projected angle at exit", //6 + "(transmit, charged) : radial dispersion at exit", //7 + "(transmit, neutral) : kinetic energy at exit", //8 + "(transmit, neutral) : space angle at exit", //9 + "(transmit, neutral) : projected angle at exit", //10 + "(reflect , charged) : kinetic energy at exit", //11 + "(reflect , charged) : space angle at exit", //12 + "(reflect , charged) : projected angle at exit", //13 + "(reflect , neutral) : kinetic energy at exit", //14 + "(reflect , neutral) : space angle at exit", //15 + "(reflect , neutral) : projected angle at exit", //16 + }; + + G4String titl = title[ih]; + G4double vmin = valmin, vmax = valmax; + + if (ih == 3) { vmin = log10(valmin/MeV); vmax = log10(valmax/MeV);} + else if (unit != "none") { + titl = title[ih] + " (" + unit + ")"; + histoUnit[ih] = G4UnitDefinition::GetValueOf(unit); + vmin = valmin/histoUnit[ih]; vmax = valmax/histoUnit[ih]; + } + + histo[ih] = hf->createHistogram1D(id[ih],titl,nbBins,vmin,vmax); + + binWidth[ih] = (valmax-valmin)/nbBins; + + G4cout << "----> SetHisto " << ih << ": " << titl << "; " + << nbBins << " bins from " + << vmin << " " << unit << " to " << vmax << " " << unit << G4endl; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc new file mode 100644 index 0000000000..764330f709 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/HistoMessenger.cc @@ -0,0 +1,109 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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.1 2003/08/11 10:20:44 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4ANALYSIS_USE + +#include "HistoMessenger.hh" + +#include "HistoManager.hh" +#include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4UIcmdWithAString.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"); + + 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); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoMessenger::~HistoMessenger() +{ + delete histoCmd; + delete factoryCmd; + delete histoDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoMessenger::SetNewValue(G4UIcommand* command,G4String newValues) +{ + if (command == factoryCmd) + histoManager->SetFactory(newValues); + + if (command == histoCmd) + { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; + const char* t = newValues; + std::istrstream is((char*)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); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm5/src/IonC12.cc b/examples/extended/electromagnetic/TestEm5/src/IonC12.cc index a0f74df61e..ec41b21ea7 100644 --- a/examples/extended/electromagnetic/TestEm5/src/IonC12.cc +++ b/examples/extended/electromagnetic/TestEm5/src/IonC12.cc @@ -21,15 +21,12 @@ // ******************************************************************** // // -// $Id: IonC12.cc,v 1.2 2003/06/16 16:47:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: IonC12.cc,v 1.4 2003/08/11 10:27:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include -#include - #include "IonC12.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.cc new file mode 100644 index 0000000000..20c507f9cf --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmG4v52.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: PhysListEmG4v52.cc,v 1.1 2003/10/07 11:58:31 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v52.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering52.hh" + +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" +#include "G4eplusAnnihilation.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 G4PhotoElectricEffect); + pmanager->AddDiscreteProcess(new G4ComptonScattering); + pmanager->AddDiscreteProcess(new G4GammaConversion); + + } else if (particleName == "e-") { + //electron + G4MultipleScattering52* emuls = new G4MultipleScattering52; + pmanager->AddProcess(emuls, -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); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4eplusAnnihilation, 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); + + } 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/TestEm5/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.cc new file mode 100644 index 0000000000..393c02a751 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListEmStandard.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: PhysListEmStandard.cc,v 1.3 2003/10/24 12:18:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-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 + G4MultipleScattering* emuls = new G4MultipleScattering; + pmanager->AddProcess(emuls, -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 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); + + } 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/TestEm5/src/PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListGeneral.cc new file mode 100644 index 0000000000..5331f27ddb --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListGeneral.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: PhysListGeneral.cc,v 1.2 2003/10/07 11:58:31 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListGeneral.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4Decay.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListGeneral::PhysListGeneral(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListGeneral::~PhysListGeneral() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListGeneral::ConstructProcess() +{ + // Add Decay Process + + G4Decay* fDecayProcess = new G4Decay(); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + if (fDecayProcess->IsApplicable(*particle)) { + + pmanager ->AddProcess(fDecayProcess); + + // set ordering for PostStepDoIt and AtRestDoIt + pmanager ->SetProcessOrdering(fDecayProcess, idxPostStep); + pmanager ->SetProcessOrdering(fDecayProcess, idxAtRest); + + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/PhysListParticles.cc b/examples/extended/electromagnetic/TestEm5/src/PhysListParticles.cc new file mode 100644 index 0000000000..dfe0252501 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/PhysListParticles.cc @@ -0,0 +1,144 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: PhysListParticles.cc,v 1.1 2003/08/11 10:21:16 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListParticles.hh" + +// 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" + +#include "IonC12.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListParticles::PhysListParticles(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListParticles::~PhysListParticles() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListParticles::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(); + IonC12::IonDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc b/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc similarity index 75% rename from examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc rename to examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc index d5ce4ffe2a..2014f2b2f6 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysicsList.cc @@ -21,31 +21,27 @@ // ******************************************************************** // // -// $Id: Em5PhysicsList.cc,v 1.16 2003/05/30 10:28:05 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.cc,v 1.4 2003/10/07 11:58:31 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5PhysicsList.hh" -#include "Em5DetectorConstruction.hh" -#include "Em5PhysicsListMessenger.hh" +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" -#include "Em5PhysListParticles.hh" -#include "Em5PhysListGeneral.hh" -#include "Em5PhysListEmStandard.hh" -#include "Em5PhysListEmModel.hh" - -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" +#include "PhysListParticles.hh" +#include "PhysListGeneral.hh" +#include "PhysListEmStandard.hh" +#include "PhysListEmG4v52.hh" +#include "DetectorConstruction.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysicsList::Em5PhysicsList(Em5DetectorConstruction* p) +PhysicsList::PhysicsList(DetectorConstruction* p) : G4VModularPhysicsList() { pDet = p; @@ -55,40 +51,40 @@ Em5PhysicsList::Em5PhysicsList(Em5DetectorConstruction* p) cutForElectron = defaultCutValue; cutForPositron = defaultCutValue; - pMessenger = new Em5PhysicsListMessenger(this); + pMessenger = new PhysicsListMessenger(this); stepMaxProcess = 0; SetVerboseLevel(1); // Particles - particleList = new Em5PhysListParticles("particles"); + particleList = new PhysListParticles("particles"); // General Physics - generalPhysicsList = new Em5PhysListGeneral("general"); + generalPhysicsList = new PhysListGeneral("general"); // EM physics emName = G4String("standard"); - emPhysicsList = new Em5PhysListEmStandard(emName); + emPhysicsList = new PhysListEmStandard(emName); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysicsList::~Em5PhysicsList() +PhysicsList::~PhysicsList() { delete pMessenger; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::ConstructParticle() +void PhysicsList::ConstructParticle() { particleList->ConstructParticle(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::ConstructProcess() +void PhysicsList::ConstructProcess() { AddTransportation(); generalPhysicsList->ConstructProcess(); @@ -98,10 +94,10 @@ void Em5PhysicsList::ConstructProcess() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::AddPhysicsList(const G4String& name) +void PhysicsList::AddPhysicsList(const G4String& name) { if (verboseLevel>1) { - G4cout << "Em5PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl; } if (name == emName) return; @@ -110,17 +106,17 @@ void Em5PhysicsList::AddPhysicsList(const G4String& name) emName = name; delete emPhysicsList; - emPhysicsList = new Em5PhysListEmStandard(name); + emPhysicsList = new PhysListEmStandard(name); - } else if (name == "model") { + } else if (name == "g4v52") { emName = name; delete emPhysicsList; - emPhysicsList = new Em5PhysListEmModel(name); + emPhysicsList = new PhysListEmG4v52(name); } else { - G4cout << "Em5PhysicsList::AddPhysicsList: <" << name << ">" + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << " is not defined" << G4endl; } @@ -128,7 +124,7 @@ void Em5PhysicsList::AddPhysicsList(const G4String& name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5StepMax.hh" +#include "StepMax.hh" #include "G4ProcessManager.hh" #include "G4ParticleTypes.hh" @@ -136,10 +132,10 @@ void Em5PhysicsList::AddPhysicsList(const G4String& name) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::AddStepMax() +void PhysicsList::AddStepMax() { // Step limitation seen as a process - stepMaxProcess = new Em5StepMax(); + stepMaxProcess = new StepMax(); theParticleIterator->reset(); while ((*theParticleIterator)()){ @@ -155,10 +151,14 @@ void Em5PhysicsList::AddStepMax() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::SetCuts() +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +void PhysicsList::SetCuts() { if (verboseLevel >0){ - G4cout << "Em5PhysicsList::SetCuts:"; + G4cout << "PhysicsList::SetCuts:"; G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl; } @@ -167,13 +167,13 @@ void Em5PhysicsList::SetCuts() SetCutValue(cutForGamma, "gamma"); SetCutValue(cutForElectron, "e-"); SetCutValue(cutForPositron, "e+"); - + if (verboseLevel>0) DumpCutValuesTable(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::SetCutForGamma(G4double cut) +void PhysicsList::SetCutForGamma(G4double cut) { cutForGamma = cut; SetParticleCuts(cutForGamma, G4Gamma::Gamma()); @@ -181,7 +181,7 @@ void Em5PhysicsList::SetCutForGamma(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::SetCutForElectron(G4double cut) +void PhysicsList::SetCutForElectron(G4double cut) { cutForElectron = cut; SetParticleCuts(cutForElectron, G4Electron::Electron()); @@ -189,7 +189,7 @@ void Em5PhysicsList::SetCutForElectron(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsList::SetCutForPositron(G4double cut) +void PhysicsList::SetCutForPositron(G4double cut) { cutForPositron = cut; SetParticleCuts(cutForPositron, G4Positron::Positron()); @@ -197,17 +197,17 @@ void Em5PhysicsList::SetCutForPositron(G4double cut) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4EnergyLossTables.hh" +#include "G4LossTableManager.hh" -G4double Em5PhysicsList::GetRange(G4double val) +G4double PhysicsList::GetRange(G4double val) { G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); + const G4MaterialCutsCouple* couple = pDet->GetAbsorberMaterial(); G4ParticleDefinition* part = theParticleTable->FindParticle("e-"); - G4double range = G4EnergyLossTables::GetRange(part,val,currMat); - - G4cout << "material : " << currMat->GetName() << G4endl; + G4double range = G4LossTableManager::Instance()->GetRange(part,val,couple); + + G4cout << "material : " << couple->GetMaterial()->GetName() << G4endl; G4cout << "particle : " << part->GetParticleName() << G4endl; G4cout << "energy : " << G4BestUnit(val, "Energy") << G4endl; G4cout << "range : " << G4BestUnit(range,"Length") << G4endl; diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc similarity index 92% rename from examples/extended/electromagnetic/TestEm5/src/Em5PhysicsListMessenger.cc rename to examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc index d3b23b56e1..1b58961d09 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PhysicsListMessenger.cc @@ -21,23 +21,23 @@ // ******************************************************************** // // -// $Id: Em5PhysicsListMessenger.cc,v 1.11 2003/04/30 14:12:40 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.cc,v 1.1 2003/08/11 10:21:23 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5PhysicsListMessenger.hh" +#include "PhysicsListMessenger.hh" -#include "Em5PhysicsList.hh" +#include "PhysicsList.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "G4UIcmdWithAString.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysicsListMessenger::Em5PhysicsListMessenger(Em5PhysicsList* pPhys) +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) :pPhysicsList(pPhys) { gammaCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/setGCut",this); @@ -83,7 +83,7 @@ Em5PhysicsListMessenger::Em5PhysicsListMessenger(Em5PhysicsList* pPhys) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysicsListMessenger::~Em5PhysicsListMessenger() +PhysicsListMessenger::~PhysicsListMessenger() { delete gammaCutCmd; delete electCutCmd; @@ -95,7 +95,7 @@ Em5PhysicsListMessenger::~Em5PhysicsListMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysicsListMessenger::SetNewValue(G4UIcommand* command, +void PhysicsListMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if( command == gammaCutCmd ) diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc similarity index 82% rename from examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc rename to examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc index ea2a57cf87..519d17d00a 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorAction.cc @@ -21,18 +21,18 @@ // ******************************************************************** // // -// $Id: Em5PrimaryGeneratorAction.cc,v 1.7 2003/04/30 14:12:40 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorAction.cc,v 1.1 2003/08/11 10:21:25 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5PrimaryGeneratorAction.hh" +#include "PrimaryGeneratorAction.hh" -#include "Em5DetectorConstruction.hh" -#include "Em5PrimaryGeneratorMessenger.hh" +#include "DetectorConstruction.hh" +#include "PrimaryGeneratorMessenger.hh" #include "G4Event.hh" #include "G4ParticleGun.hh" @@ -42,9 +42,9 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PrimaryGeneratorAction::Em5PrimaryGeneratorAction( - Em5DetectorConstruction* Em5DC) -:Em5Detector(Em5DC) +PrimaryGeneratorAction::PrimaryGeneratorAction( + DetectorConstruction* DC) +:Detector(DC) { G4int n_particle = 1; particleGun = new G4ParticleGun(n_particle); @@ -52,12 +52,12 @@ Em5PrimaryGeneratorAction::Em5PrimaryGeneratorAction( rndmBeam = 0.; //create a messenger for this class - gunMessenger = new Em5PrimaryGeneratorMessenger(this); + gunMessenger = new PrimaryGeneratorMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PrimaryGeneratorAction::~Em5PrimaryGeneratorAction() +PrimaryGeneratorAction::~PrimaryGeneratorAction() { delete particleGun; delete gunMessenger; @@ -65,7 +65,7 @@ Em5PrimaryGeneratorAction::~Em5PrimaryGeneratorAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PrimaryGeneratorAction::SetDefaultKinematic() +void PrimaryGeneratorAction::SetDefaultKinematic() { // default particle kinematic // @@ -75,13 +75,13 @@ void Em5PrimaryGeneratorAction::SetDefaultKinematic() particleGun->SetParticleDefinition(particle); particleGun->SetParticleMomentumDirection(G4ThreeVector(1.,0.,0.)); particleGun->SetParticleEnergy(30.*MeV); - G4double x0 = -0.5*(Em5Detector->GetWorldSizeX()); + G4double x0 = -0.5*(Detector->GetWorldSizeX()); particleGun->SetParticlePosition(G4ThreeVector(x0, 0*cm, 0*cm)); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) { //this function is called at the begining of event // @@ -89,7 +89,7 @@ void Em5PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) if (rndmBeam > 0.) { G4ThreeVector oldPosition = particleGun->GetParticlePosition(); - G4double rbeam = 0.5*(Em5Detector->GetAbsorberSizeYZ())*rndmBeam; + G4double rbeam = 0.5*(Detector->GetAbsorberSizeYZ())*rndmBeam; G4double x0 = oldPosition.x(); G4double y0 = oldPosition.y() + (2*G4UniformRand()-1.)*rbeam; G4double z0 = oldPosition.z() + (2*G4UniformRand()-1.)*rbeam; diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc similarity index 81% rename from examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc rename to examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc index e5fb543960..deac3035aa 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/PrimaryGeneratorMessenger.cc @@ -21,25 +21,25 @@ // ******************************************************************** // // -// $Id: Em5PrimaryGeneratorMessenger.cc,v 1.10 2003/05/30 10:28:05 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PrimaryGeneratorMessenger.cc,v 1.1 2003/08/11 10:21:28 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5PrimaryGeneratorMessenger.hh" +#include "PrimaryGeneratorMessenger.hh" -#include "Em5PrimaryGeneratorAction.hh" +#include "PrimaryGeneratorAction.hh" #include "G4UIcmdWithoutParameter.hh" #include "G4UIcmdWithADouble.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PrimaryGeneratorMessenger::Em5PrimaryGeneratorMessenger( - Em5PrimaryGeneratorAction* Em5Gun) -:Em5Action(Em5Gun) +PrimaryGeneratorMessenger::PrimaryGeneratorMessenger( + PrimaryGeneratorAction* Gun) +:Action(Gun) { DefaultCmd = new G4UIcmdWithoutParameter("/testem/gun/setDefault",this); DefaultCmd->SetGuidance("set/reset the kinematic defined in PrimaryGenerator"); @@ -55,7 +55,7 @@ Em5PrimaryGeneratorMessenger::Em5PrimaryGeneratorMessenger( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PrimaryGeneratorMessenger::~Em5PrimaryGeneratorMessenger() +PrimaryGeneratorMessenger::~PrimaryGeneratorMessenger() { delete DefaultCmd; delete RndmCmd; @@ -63,14 +63,14 @@ Em5PrimaryGeneratorMessenger::~Em5PrimaryGeneratorMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, +void PrimaryGeneratorMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if (command == DefaultCmd) - {Em5Action->SetDefaultKinematic();} + {Action->SetDefaultKinematic();} if (command == RndmCmd) - { Em5Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} + { Action->SetRndmBeam(RndmCmd->GetNewDoubleValue(newValue));} } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/RunAction.cc b/examples/extended/electromagnetic/TestEm5/src/RunAction.cc new file mode 100644 index 0000000000..3de23a21a7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/RunAction.cc @@ -0,0 +1,179 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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.1 2003/08/11 10:21:32 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "RunAction.hh" +#include "HistoManager.hh" + +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4UnitsTable.hh" + +#include "Randomize.hh" +#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::RunAction(HistoManager* histo) +:histoManager(histo) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +RunAction::~RunAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl; + + //initialisation + EnergyDeposit = EnergyDeposit2 = 0.; + TrakLenCharged = TrakLenCharged2 = 0.; + TrakLenNeutral = TrakLenNeutral2 = 0.; + nbStepsCharged = nbStepsCharged2 = 0.; + nbStepsNeutral = nbStepsNeutral2 = 0.; + + nbGamma = nbElect = nbPosit = 0; + + Transmit[0] = Transmit[1] = Reflect[0] = Reflect[1] = 0; + + // save Rndm status + G4RunManager::GetRunManager()->SetRandomNumberStore(true); + HepRandom::showEngineStatus(); + + if (G4VVisManager::GetConcreteInstance()) + G4UImanager::GetUIpointer()->ApplyCommand("/vis/scene/notifyHandlers"); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void RunAction::EndOfRunAction(const G4Run* aRun) +{ + // compute mean and rms + // + G4int TotNbofEvents = aRun->GetNumberOfEvent(); + if (TotNbofEvents == 0) return; + + EnergyDeposit /= TotNbofEvents; + G4double rmsEdep = EnergyDeposit2/TotNbofEvents - EnergyDeposit*EnergyDeposit; + if (rmsEdep>0.) rmsEdep = sqrt(rmsEdep/TotNbofEvents); + else rmsEdep = 0.; + + TrakLenCharged /= TotNbofEvents; + G4double rmsTLCh = TrakLenCharged2/TotNbofEvents + - TrakLenCharged*TrakLenCharged; + if (rmsTLCh>0.) rmsTLCh = sqrt(rmsTLCh/TotNbofEvents); + else rmsTLCh = 0.; + + TrakLenNeutral /= TotNbofEvents; + G4double rmsTLNe = TrakLenNeutral2/TotNbofEvents + - TrakLenNeutral*TrakLenNeutral; + if (rmsTLNe>0.) rmsTLNe = sqrt(rmsTLNe/TotNbofEvents); + else rmsTLNe = 0.; + + nbStepsCharged /= TotNbofEvents; + G4double rmsStCh = nbStepsCharged2/TotNbofEvents + - nbStepsCharged*nbStepsCharged; + if (rmsStCh>0.) rmsStCh = sqrt(rmsTLCh/TotNbofEvents); + else rmsStCh = 0.; + + nbStepsNeutral /= TotNbofEvents; + G4double rmsStNe = nbStepsNeutral2/TotNbofEvents + - nbStepsNeutral*nbStepsNeutral; + if (rmsStNe>0.) rmsStNe = sqrt(rmsTLCh/TotNbofEvents); + else rmsStNe = 0.; + + G4double Gamma = (double)nbGamma/TotNbofEvents; + G4double Elect = (double)nbElect/TotNbofEvents; + G4double Posit = (double)nbPosit/TotNbofEvents; + + G4double transmit[2]; + transmit[0] = 100.*Transmit[0]/TotNbofEvents; + transmit[1] = 100.*Transmit[1]/TotNbofEvents; + + G4double reflect[2]; + reflect[0] = 100.*Reflect[0]/TotNbofEvents; + reflect[1] = 100.*Reflect[1]/TotNbofEvents; + + G4cout << "\n ======================== run summary ======================\n"; + + G4int prec = G4cout.precision(4); + + G4cout << "\n Number of Events = " << TotNbofEvents << G4endl; + + G4cout << "\n Total energy deposit in absorber per event = " + << G4BestUnit(EnergyDeposit,"Energy") << " +- " + << G4BestUnit(rmsEdep, "Energy") << G4endl; + + G4cout << "\n Total track length (charged) in absorber per event = " + << G4BestUnit(TrakLenCharged,"Length") << " +- " + << G4BestUnit(rmsTLCh, "Length") << G4endl; + + G4cout << " Total track length (neutral) in absorber per event = " + << G4BestUnit(TrakLenNeutral,"Length") << " +- " + << G4BestUnit(rmsTLNe, "Length") << G4endl; + + G4cout << "\n Number of steps (charged) in absorber per event = " + << nbStepsCharged << " +- " << rmsStCh << G4endl; + + G4cout << " Number of steps (neutral) in absorber per event = " + << nbStepsNeutral << " +- " << rmsStNe << G4endl; + + G4cout << "\n Number of secondaries per event : Gammas = " << Gamma + << "; electrons = " << Elect + << "; positrons = " << Posit << G4endl; + + G4cout << "\n Number of events with the primary particle transmitted = " + << transmit[1] << " %" << G4endl; + + G4cout << " Number of events with at least 1 particle transmitted " + << "(same charge as primary) = " << transmit[0] << " %" << G4endl; + + G4cout << "\n Number of events with the primary particle reflected = " + << reflect[1] << " %" << G4endl; + + G4cout << " Number of events with at least 1 particle reflected " + << "(same charge as primary) = " << reflect[0] << " %" << G4endl; + + G4cout.precision(prec); + + if (G4VVisManager::GetConcreteInstance()) + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + + // show Rndm status + HepRandom::showEngineStatus(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh b/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc similarity index 57% rename from examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh rename to examples/extended/electromagnetic/TestEm5/src/StackingAction.cc index 6ce70b0b81..65e2291b22 100644 --- a/examples/extended/electromagnetic/TestEm5/include/Em5CalorHit.hh +++ b/examples/extended/electromagnetic/TestEm5/src/StackingAction.cc @@ -21,78 +21,78 @@ // ******************************************************************** // // -// $Id: Em5CalorHit.hh,v 1.6 2003/06/06 15:55:48 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: StackingAction.cc,v 1.1 2003/08/11 10:21:33 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5CalorHit_h -#define Em5CalorHit_h 1 +#include "StackingAction.hh" -#include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" +#include "RunAction.hh" +#include "EventAction.hh" +#include "HistoManager.hh" +#include "StackingMessenger.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class Em5CalorHit : public G4VHit -{ - public: - - Em5CalorHit(); - ~Em5CalorHit(); - Em5CalorHit(const Em5CalorHit&); - const Em5CalorHit& operator=(const Em5CalorHit&); - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Print(); - - public: - - void AddAbs(G4double de, G4double dl) {EdepAbs += de; TrackLengthAbs += dl;}; - void AddGap(G4double de, G4double dl) {EdepGap += de; TrackLengthGap += dl;}; - - G4double GetEdepAbs() {return EdepAbs;}; - G4double GetTrakAbs() {return TrackLengthAbs;}; - G4double GetEdepGap() {return EdepGap; }; - G4double GetTrakGap() {return TrackLengthGap;}; - - private: - - G4double EdepAbs, TrackLengthAbs; - G4double EdepGap, TrackLengthGap; - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -typedef G4THitsCollection Em5CalorHitsCollection; - -extern G4Allocator Em5CalorHitAllocator; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline void* Em5CalorHit::operator new(size_t) -{ - void* aHit; - aHit = (void*) Em5CalorHitAllocator.MallocSingle(); - return aHit; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline void Em5CalorHit::operator delete(void* aHit) -{ - Em5CalorHitAllocator.FreeSingle((Em5CalorHit*) aHit); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "G4Track.hh" +#ifdef G4ANALYSIS_USE + #include "AIDA/IHistogram1D.h" #endif +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +StackingAction::StackingAction(RunAction* RA, EventAction* EA, HistoManager* HM) +:runaction(RA), eventaction(EA), histoManager(HM) +{ + killSecondary = false; + stackMessenger = new StackingMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StackingAction::~StackingAction() +{ + delete stackMessenger; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4ClassificationOfNewTrack +StackingAction::ClassifyNewTrack(const G4Track* aTrack) +{ + //keep primary particle + if (aTrack->GetParentID() == 0) return fUrgent; + + //count secondary particles + runaction->CountParticles(aTrack->GetDefinition()); + +#ifdef G4ANALYSIS_USE + // + //energy spectrum of secondaries + // + G4double energy = aTrack->GetKineticEnergy(); + G4double charge = aTrack->GetDefinition()->GetPDGCharge(); + + if (charge != 0.) { + if (histoManager->GetHisto(2)) { + G4double unit = histoManager->GetHistoUnit(2); + histoManager->GetHisto(2)->fill(energy/unit); + } + } + + if (aTrack->GetDefinition() == G4Gamma::Gamma()) { + if (histoManager->GetHisto(3)) { + histoManager->GetHisto(3)->fill(log10(energy/MeV)); + } + } +#endif + + //stack or delete secondaries + G4ClassificationOfNewTrack status = fUrgent; + if (killSecondary) status = fKill; + + return status; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.cc new file mode 100644 index 0000000000..6e142cb98b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/StackingMessenger.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: StackingMessenger.cc,v 1.1 2003/08/11 10:21:37 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StackingMessenger.hh" + +#include "StackingAction.hh" +#include "G4UIcmdWithABool.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StackingMessenger::StackingMessenger(StackingAction* stack) +:stackAction(stack) +{ + killCmd = new G4UIcmdWithABool("/testem/stack/killSecondaries",this); + killCmd->SetGuidance(" Choice : true false"); + killCmd->SetParameterName("choice",true); + killCmd->SetDefaultValue(true); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +StackingMessenger::~StackingMessenger() +{ + delete killCmd; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void StackingMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +{ + if(command == killCmd) + {stackAction->SetKillStatus(killCmd->GetNewBoolValue(newValue));} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5StepMax.cc b/examples/extended/electromagnetic/TestEm5/src/StepMax.cc similarity index 81% rename from examples/extended/electromagnetic/TestEm5/src/Em5StepMax.cc rename to examples/extended/electromagnetic/TestEm5/src/StepMax.cc index ac558653fe..22f1d4e85a 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5StepMax.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StepMax.cc @@ -20,41 +20,41 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: Em5StepMax.cc,v 1.2 2003/06/06 15:55:52 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: StepMax.cc,v 1.1 2003/08/11 10:21:51 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5StepMax.hh" -#include "Em5StepMaxMessenger.hh" +#include "StepMax.hh" +#include "StepMaxMessenger.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5StepMax::Em5StepMax(const G4String& processName) +StepMax::StepMax(const G4String& processName) : G4VDiscreteProcess(processName),MaxChargedStep(DBL_MAX) { - pMess = new Em5StepMaxMessenger(this); + pMess = new StepMaxMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5StepMax::~Em5StepMax() { delete pMess; } +StepMax::~StepMax() { delete pMess; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool Em5StepMax::IsApplicable(const G4ParticleDefinition& particle) +G4bool StepMax::IsApplicable(const G4ParticleDefinition& particle) { return (particle.GetPDGCharge() != 0.); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5StepMax::SetMaxStep(G4double step) {MaxChargedStep = step;} +void StepMax::SetMaxStep(G4double step) {MaxChargedStep = step;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double Em5StepMax::PostStepGetPhysicalInteractionLength(const G4Track& aTrack, +G4double StepMax::PostStepGetPhysicalInteractionLength(const G4Track& aTrack, G4double, G4ForceCondition* condition ) { @@ -64,7 +64,7 @@ G4double Em5StepMax::PostStepGetPhysicalInteractionLength(const G4Track& aTrack, G4double ProposedStep = DBL_MAX; if((MaxChargedStep > 0.) && - (aTrack.GetVolume() != NULL) && + (aTrack.GetVolume() != 0) && (aTrack.GetVolume()->GetName() == "Absorber")) ProposedStep = MaxChargedStep; @@ -73,7 +73,7 @@ G4double Em5StepMax::PostStepGetPhysicalInteractionLength(const G4Track& aTrack, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VParticleChange* Em5StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) +G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) { // do nothing aParticleChange.Initialize(aTrack); diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc similarity index 87% rename from examples/extended/electromagnetic/TestEm5/src/Em5StepMaxMessenger.cc rename to examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc index 13d49efd5b..efe9b9e693 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm5/src/StepMaxMessenger.cc @@ -20,21 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: Em5StepMaxMessenger.cc,v 1.1 2003/04/30 14:14:24 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: StepMaxMessenger.cc,v 1.1 2003/08/11 10:21:56 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5StepMaxMessenger.hh" +#include "StepMaxMessenger.hh" -#include "Em5StepMax.hh" +#include "StepMax.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5StepMaxMessenger::Em5StepMaxMessenger(Em5StepMax* stepM) +StepMaxMessenger::StepMaxMessenger(StepMax* stepM) :pStepMax(stepM) { StepMaxCmd = new G4UIcmdWithADoubleAndUnit("/testem/stepMax",this); @@ -46,14 +46,14 @@ Em5StepMaxMessenger::Em5StepMaxMessenger(Em5StepMax* stepM) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5StepMaxMessenger::~Em5StepMaxMessenger() +StepMaxMessenger::~StepMaxMessenger() { delete StepMaxCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5StepMaxMessenger::SetNewValue(G4UIcommand* command, G4String newValue) +void StepMaxMessenger::SetNewValue(G4UIcommand* command, G4String newValue) { if (command == StepMaxCmd) { pStepMax->SetMaxStep(StepMaxCmd->GetNewDoubleValue(newValue));} diff --git a/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc new file mode 100644 index 0000000000..b471c8106f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/SteppingAction.cc @@ -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: SteppingAction.cc,v 1.1 2003/08/11 10:22:10 maire Exp $ +// GEANT4 tag $Name: geant4-06-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 "G4Track.hh" + +#ifdef G4ANALYSIS_USE + #include "AIDA/IHistogram1D.h" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::SteppingAction(DetectorConstruction* DET, RunAction* RA, + EventAction* EA, HistoManager* HM) +:detector(DET), runaction(RA), eventaction(EA), histoManager(HM) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::~SteppingAction() +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingAction::UserSteppingAction(const G4Step* aStep) +{ + const G4Track* track = aStep->GetTrack(); + if (track->GetVolume() != detector->GetAbsorber()) return; + + eventaction->AddEnergy (aStep->GetTotalEnergyDeposit()); + + G4double charge = track->GetDefinition()->GetPDGCharge(); + if (charge != 0.) { + eventaction->AddTrakLenCharg(aStep->GetStepLength()); + eventaction->CountStepsCharg(); + } else { + eventaction->AddTrakLenNeutr(aStep->GetStepLength()); + eventaction->CountStepsNeutr(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc similarity index 95% rename from examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc rename to examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc index 27825d5414..ef8f5b3623 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm5/src/SteppingVerbose.cc @@ -21,30 +21,30 @@ // ******************************************************************** // // -// $Id: Em5SteppingVerbose.cc,v 1.11 2003/06/16 16:47:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingVerbose.cc,v 1.1 2003/08/11 10:22:17 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5SteppingVerbose.hh" +#include "SteppingVerbose.hh" #include "G4SteppingManager.hh" #include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5SteppingVerbose::Em5SteppingVerbose() +SteppingVerbose::SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5SteppingVerbose::~Em5SteppingVerbose() +SteppingVerbose::~SteppingVerbose() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5SteppingVerbose::StepInfo() +void SteppingVerbose::StepInfo() { CopyState(); @@ -137,7 +137,7 @@ void Em5SteppingVerbose::StepInfo() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5SteppingVerbose::TrackingStarted() +void SteppingVerbose::TrackingStarted() { CopyState(); diff --git a/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc new file mode 100644 index 0000000000..7afcf4ab88 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/TrackingAction.cc @@ -0,0 +1,143 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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.2 2003/08/27 17:18:16 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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" + +#ifdef G4ANALYSIS_USE + #include "AIDA/IHistogram1D.h" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +TrackingAction::TrackingAction(DetectorConstruction* DET,RunAction* RA, + EventAction* EA, HistoManager* HM) +:detector(DET), runaction(RA), eventaction(EA), histoManager(HM) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PreUserTrackingAction(const G4Track* aTrack ) +{ + // few initialisations + // + if (aTrack->GetTrackID() == 1) { + worldLimit = 0.5*(detector->GetWorldSizeX()); + primaryCharge = aTrack->GetDefinition()->GetPDGCharge(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void TrackingAction::PostUserTrackingAction(const G4Track* aTrack) +{ + G4ThreeVector position = aTrack->GetPosition(); + G4double charge = aTrack->GetDefinition()->GetPDGCharge(); + + G4bool transmit = (position.x() >= worldLimit); + G4bool reflect = (position.x() <= -worldLimit); + + //transmitted + reflected particles counter + // + G4int flag = 0; + if (charge == primaryCharge) flag = 1; + if (aTrack->GetTrackID() == 1) flag = 2; + if (transmit) eventaction->SetTransmitFlag(flag); + if (reflect) eventaction->SetReflectFlag(flag); + +#ifdef G4ANALYSIS_USE + // + //histograms + // + G4int id = 0; + G4bool charged = (charge != 0.); + G4bool neutral = !charged; + + //energy spectrum at exit + // + if (transmit && charged) id = 4; + else if (transmit && neutral) id = 8; + else if (reflect && charged) id = 11; + else if (reflect && neutral) id = 14; + if (histoManager->GetHisto(id)) { + G4double energy = aTrack->GetKineticEnergy(); + G4double unit = histoManager->GetHistoUnit(id); + histoManager->GetHisto(id)->fill(energy/unit); + } + + //space angle distribution at exit + // + if (transmit && charged) id = 5; + else if (transmit && neutral) id = 9; + else if (reflect && charged) id = 12; + else if (reflect && neutral) id = 15; + if (histoManager->GetHisto(id)) { + G4ThreeVector direction = aTrack->GetMomentumDirection(); + G4double theta = acos(abs(direction.x())); + G4double dteta = histoManager->GetBinWidth(id); + G4double weight = 1./(2*pi*sin(theta)*dteta); + G4double unit = histoManager->GetHistoUnit(id); + histoManager->GetHisto(id)->fill(theta/unit,weight*unit*unit); + } + + //projected angle distribution at exit + // + if (transmit && charged) id = 6; + else if (transmit && neutral) id = 10; + else if (reflect && charged) id = 13; + else if (reflect && neutral) id = 16; + if (histoManager->GetHisto(id)) { + G4ThreeVector momentum = aTrack->GetMomentum(); + G4double unit = histoManager->GetHistoUnit(id); + histoManager->GetHisto(id)->fill(atan(momentum.y()/abs(momentum.x()))/unit); + histoManager->GetHisto(id)->fill(atan(momentum.z()/abs(momentum.x()))/unit); + } + + //radial dispersion at exit + // + if (transmit && charged) id = 7; + if (histoManager->GetHisto(id)) { + G4double radius = sqrt(position.y()*position.y()+position.z()*position.z()); + G4double unit = histoManager->GetHistoUnit(id); + histoManager->GetHisto(id)->fill(radius/unit); + } +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/VisManager.cc b/examples/extended/electromagnetic/TestEm5/src/VisManager.cc new file mode 100755 index 0000000000..3d07a174f6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/src/VisManager.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: VisManager.cc,v 1.2 2003/11/13 15:10:28 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// John Allison 24th January 1998. + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4VIS_USE + +#include "VisManager.hh" + +// Supported drivers... + +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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_OPENGLX +#include "G4OpenGLImmediateX.hh" +#include "G4OpenGLStoredX.hh" +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 +#include "G4OpenGLImmediateWin32.hh" +#include "G4OpenGLStoredWin32.hh" +#endif + +#ifdef G4VIS_USE_OPENGLXM +#include "G4OpenGLImmediateXm.hh" +#include "G4OpenGLStoredXm.hh" +#endif + +#ifdef G4VIS_USE_OIX +#include "G4OpenInventorX.hh" +#endif + +#ifdef G4VIS_USE_OIWIN32 +#include "G4OpenInventorWin32.hh" +#endif + +#ifdef G4VIS_USE_VRML +#include "G4VRML1.hh" +#include "G4VRML2.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +VisManager::VisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void VisManager::RegisterGraphicsSystems () { + + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... + +#ifdef G4VIS_USE_DAWN + RegisterGraphicsSystem (new G4FukuiRenderer); +#endif + +#ifdef G4VIS_USE_OPENGLX + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); +#endif + +#ifdef G4VIS_USE_OPENGLXM + RegisterGraphicsSystem (new G4OpenGLImmediateXm); + RegisterGraphicsSystem (new G4OpenGLStoredXm); +#endif + +#ifdef G4VIS_USE_OIX + RegisterGraphicsSystem (new G4OpenInventorX); +#endif + +#ifdef G4VIS_USE_OIWIN32 + RegisterGraphicsSystem (new G4OpenInventorWin32); +#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 (); + } +} + +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/tramu.mac b/examples/extended/electromagnetic/TestEm5/tramu.mac new file mode 100644 index 0000000000..80a678f56b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/tramu.mac @@ -0,0 +1,29 @@ +# $Id: tramu.mac,v 1.1 2003/08/11 10:09:39 maire Exp $ +# +# macro file for TestEm5.cc +# +# 1 TeV mu+, transmitted through 3 m of iron +# Rev. of Particle Physics Eur. Phys. Jour. C (2000) page 172. +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Iron +/testem/det/setAbsThick 3 m +/testem/det/setAbsYZ 3 m +# +/testem/phys/setCuts 1 mm +# +/run/initialize +# +/testem/gun/setDefault +/gun/particle mu+ +/gun/energy 1 TeV +# +/testem/histo/setFileName tramu.paw +/testem/histo/setHisto 4 80 920 1000 GeV #energy at exit +# +/testem/stack/killSecondaries +# +/testem/event/printModulo 1000 +/run/beamOn 10000 diff --git a/examples/extended/electromagnetic/TestEm5/vincour.mac b/examples/extended/electromagnetic/TestEm5/vincour.mac new file mode 100644 index 0000000000..dbf5196191 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm5/vincour.mac @@ -0,0 +1,31 @@ +# $Id: vincour.mac,v 1.1 2003/08/11 10:09:43 maire Exp $ +# +# macro file for TestEm5.cc +# +# angle distribution of 6.56 MeV protons +# transmitted through thin silicon targets. +# J.Vincour,P.Bem NIM 148 (1978) page 396. +# +/control/verbose 2 +/run/verbose 2 +# +/testem/det/setAbsMat Silicon +/testem/det/setAbsThick 50 mum +###/testem/det/setAbsThick 92.6 mum +/testem/det/setAbsYZ 1 cm +# +/testem/phys/setGCut 2.13 mm +/testem/phys/setECut 7 mum +/testem/phys/setPCut 7 mum +/run/initialize +# +/testem/gun/setDefault +/gun/particle proton +/gun/energy 6.56 MeV +# +/testem/histo/setFileName vincour.paw +/testem/histo/setHisto 5 60 0. 6. deg #space angle +# +/testem/stack/killSecondaries +# +/run/beamOn 100000 diff --git a/examples/extended/electromagnetic/TestEm6/GNUmakefile b/examples/extended/electromagnetic/TestEm6/GNUmakefile index 6514e741d5..2dc528378a 100644 --- a/examples/extended/electromagnetic/TestEm6/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm6/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.8 2002/12/12 12:48:14 maire Exp $ +# $Id: GNUmakefile,v 1.9 2003/10/10 10:42:35 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -14,12 +14,15 @@ endif .PHONY: all all: lib bin +####G4ANALYSIS_USE := true + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + include $(G4INSTALL)/config/architecture.gmk -G4NOHIST := true -ifdef G4NOHIST - CPPFLAGS += -DG4NOHIST -else +ifdef G4ANALYSIS_USE # for the aida-config command see the README file CPPFLAGS += `aida-config --include` LDFLAGS += `aida-config --lib` diff --git a/examples/extended/electromagnetic/TestEm6/History b/examples/extended/electromagnetic/TestEm6/History index 5c329235f6..3a7a022207 100644 --- a/examples/extended/electromagnetic/TestEm6/History +++ b/examples/extended/electromagnetic/TestEm6/History @@ -1,4 +1,4 @@ -$Id: History,v 1.12 2003/06/10 11:49:17 maire Exp $ +$Id: History,v 1.16 2003/11/25 18:31:47 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,20 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +25-11-03 V.Ivanchenko (testem6-V05-02-02) +- Fix geometry (G.Cosmo) + +13-11-03 John Allison +- Removed OPACS from Vis Manager. + +24-10-03 mma (testem6-V05-02-01) +- PhysListEmStandard: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +10-10-03 mma (testem6-V05-02-00) + - NOHIST replaced by ANALYSIS_USE + - cosmetic in material definitions + - SetMaterial() in constructor. all macros updated for /run/initialize 10-06-03 mma (testem6-V05-01-00) - proper deletion of old geometry in case of update diff --git a/examples/extended/electromagnetic/TestEm6/README b/examples/extended/electromagnetic/TestEm6/README index 19e35a7b18..9c8ca57902 100644 --- a/examples/extended/electromagnetic/TestEm6/README +++ b/examples/extended/electromagnetic/TestEm6/README @@ -1,4 +1,4 @@ -$Id: README,v 1.7 2003/02/04 11:23:36 maire Exp $ +$Id: README,v 1.8 2003/10/10 10:42:35 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -113,9 +113,10 @@ $Id: README,v 1.7 2003/02/04 11:23:36 maire Exp $ Testem6 produces 6 histograms (saved as testem6.paw) which illustrate the final state of the GammaConversionToMuons process. See their definitions in RunAction.cc - - Note that histograms are disabled via the flag G4NOHIST in GNUmakefile. + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. + 8- Using the Anaphe implementation of the AIDA 3.0 histograms: -------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.cc b/examples/extended/electromagnetic/TestEm6/TestEm6.cc index df4cf57020..b828c2253c 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.cc +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm6.cc,v 1.11 2002/12/09 13:02:03 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.in b/examples/extended/electromagnetic/TestEm6/TestEm6.in index 1b920ef052..25f355e141 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.in +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.in @@ -1,21 +1,20 @@ -# $Id: TestEm6.in,v 1.5 2002/12/12 12:48:15 maire Exp $ +# $Id: TestEm6.in,v 1.6 2003/10/10 10:42:36 maire Exp $ # # Macro file for "TestEm6.cc" # (can be run in batch, without graphic) # # /control/verbose 2 -# -/run/initialize +/run/verbose 2 # /testem/det/setMat Iron /testem/det/setSize 500 m -/testem/det/update +# +/run/initialize # /gun/particle gamma /gun/energy 100 TeV # -/run/verbose 2 /tracking/verbose 1 # /run/beamOn 5 diff --git a/examples/extended/electromagnetic/TestEm6/TestEm6.out b/examples/extended/electromagnetic/TestEm6/TestEm6.out index 6ab2658714..47f71ac5a2 100644 --- a/examples/extended/electromagnetic/TestEm6/TestEm6.out +++ b/examples/extended/electromagnetic/TestEm6/TestEm6.out @@ -1,8 +1,21 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** + +***** Table : Nb of materials = 3 ***** + + Material: Beryllium density: 1.848 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 35.276 cm + ---> Element: Beryllium Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % + + 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: 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 % + + Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -17,35 +30,24 @@ Current available graphics systems are: RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) -# -/run/initialize - -***** Table : Nb of materials = 3 ***** - - Material: Beryllium density: 1.848 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 35.276 cm - ---> Element: Beryllium Z = 4.0 N = 9.0 A = 9.01 g/mole fractionMass: 100.00 % Abundance 100.00 % - - 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: 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 % - - - - The Box is 500 m of Iron -PhysicsList::SetCuts:CutLength : 1 km +/run/verbose 2 # /testem/det/setMat Iron /testem/det/setSize 500 m -/testem/det/update +# +/run/initialize +userDetector->Construct() start. The Box is 500 m of Iron +Iron is registered to the default region. +physicsList->Construct() start. +physicsList->Construct() start. +physicsList->setCut() start. +PhysicsList::SetCuts:CutLength : 1 km # /gun/particle gamma /gun/energy 100 TeV # -/run/verbose 2 /tracking/verbose 1 # /run/beamOn 5 @@ -62,42 +64,55 @@ The cut in energy is set1.79769e+305GeV GammaToMuPair: gamma->mu+mu- Bethe Heitler process. good cross section parametrization from 422.634 MeV to 1e+12 GeV for all Z. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. AnnihiToMuPair: e+e->mu+mu- annihilation, atomic e- at rest. threshold at 43.6931 GeV good description up to 1000 TeV for all Z. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +Region DefaultRegionForTheWorld + Materials : Iron + Production cuts : gamma 1 km e- 1 km e+ 1 km ========= Table of registered couples ============================== @@ -110,17 +125,17 @@ Index : 0 used in the geometry : Yes recalculation needed : No ==================================================================== +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 closing geometry. -G4GeometryManager::ReportVoxelStats -- Voxel Statistics - - Total memory consumed for geometry optimisation: 0 kByte - Total CPU time elapsed for geometry optimisation: 0 seconds Start Run processing. ---> Begin of Event: 0 @@ -147,7 +162,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 250 m -65.2 mum -53.1 mum 13.9 TeV 15.9 TeV 218 m 218 m OutOfWorld Transportation + 1 190 m -2.01 mm -2.16 cm 12.3 TeV 17.5 TeV 159 m 159 m Iron MuIoni + 2 250 m 927 mum -2.29 cm 8.56 TeV 3.74 TeV 59.5 m 218 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 @@ -155,7 +171,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 250 m 27.6 mum 22.6 mum 31.3 TeV 38.9 TeV 218 m 218 m OutOfWorld Transportation + 1 218 m 7.81 mm 1.27 cm 20.1 TeV 50.1 TeV 186 m 186 m Iron MuIoni + 2 250 m 8.03 mm 1.25 cm 13.2 TeV 6.92 TeV 32.1 m 218 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 @@ -163,60 +180,103 @@ 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 250 m 0 fm 0 fm 100 TeV 0 eV 500 m 500 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -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 250 m 0 fm 0 fm 100 TeV 0 eV 500 m 500 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -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 -84.8 m 0 fm 0 fm 0 eV 0 eV 165 m 165 m Iron GammaToMuPair + 1 120 m 0 fm 0 fm 0 eV 0 eV 370 m 370 m Iron GammaToMuPair ********************************************************************************************************* * G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -84.8 m 0 fm 0 fm 92 TeV 0 eV 0 fm 0 fm Iron initStep - 1 213 m -1.55 cm 1.33 cm 34.6 TeV 57.4 TeV 298 m 298 m Iron MuIoni - 2 250 m -1.7 cm 1.42 cm 26.6 TeV 8.03 TeV 37 m 335 m OutOfWorld Transportation + 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 9.74 TeV 10.3 TeV 130 m 130 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -84.8 m 0 fm 0 fm 8.02 TeV 0 eV 0 fm 0 fm Iron initStep - 1 80.8 m -5.03 cm 4.92 cm 4.4 TeV 3.62 TeV 166 m 166 m Iron MuIoni - 2 215 m -1.76 mm -3.43 cm 2.74 TeV 1.65 TeV 135 m 300 m Iron MuIoni - 3 250 m -1.42 cm -3.81 cm 2.45 TeV 296 GeV 34.6 m 335 m OutOfWorld Transportation + 0 120 m 0 fm 0 fm 80 TeV 0 eV 0 fm 0 fm Iron initStep + 1 250 m -277 mum -292 mum 45.1 TeV 34.9 TeV 130 m 130 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +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 91.5 m 0 fm 0 fm 0 eV 0 eV 342 m 342 m Iron GammaToMuPair + +********************************************************************************************************* +* G4Track Information: Particle = mu-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +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 131 m 1.7 mm 201 mum 414 GeV 153 GeV 39.5 m 39.5 m Iron MuIoni + 2 163 m -4.76 cm -7.3 cm 234 GeV 180 GeV 32.5 m 72 m Iron MuIoni + 3 185 m -9.49 cm -20.4 cm 181 GeV 53.2 GeV 21.9 m 93.8 m Iron MuIoni + 4 203 m -6.3 cm -24.8 cm 143 GeV 38 GeV 18 m 112 m Iron MuIoni + 5 218 m -12.8 cm -36.1 cm 112 GeV 30.4 GeV 14.9 m 127 m Iron MuIoni + 6 230 m -6.16 cm -36.2 cm 87.8 GeV 24.4 GeV 12.2 m 139 m Iron MuIoni + 7 240 m -4.88 cm -37.6 cm 66.3 GeV 21.5 GeV 9.96 m 149 m Iron MuIoni + 8 248 m 1.34 cm -33 cm 53.2 GeV 13.1 GeV 7.82 m 157 m Iron MuIoni + 9 250 m 2.33 cm -34.1 cm 50.1 GeV 3.12 GeV 1.75 m 158 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = mu+, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +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 37.2 TeV 62.3 TeV 158 m 158 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 +********************************************************************************************************* + +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 + +********************************************************************************************************* +* 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 37.4 cm -1.32 cm 5.63 mm 21.5 TeV 60.9 TeV 190 m 190 m Iron MuIoni + 2 148 m 1.25 cm 1.93 mm 7.85 TeV 13.7 TeV 148 m 338 m Iron MuIoni + 3 250 m 1.4 cm 1.34 cm 4.4 TeV 3.45 TeV 102 m 440 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 -48.3 m 8.93 mm 2.73 cm 7.84 TeV 9.7 TeV 142 m 142 m Iron MuIoni + 2 67.8 m -1.24 cm 7 cm 4.09 TeV 3.76 TeV 116 m 258 m Iron MuIoni + 3 163 m 1.6 cm 14.4 cm 2.35 TeV 1.73 TeV 95.4 m 353 m Iron MuIoni + 4 242 m -9.03 mm 17.9 cm 1.35 TeV 1 TeV 78.4 m 431 m Iron MuIoni + 5 250 m -1.03 cm 18.1 cm 1.27 TeV 79.6 GeV 8.4 m 440 m OutOfWorld Transportation Run terminated. Run Summary Number of events processed : 5 - User=0s Real=2.9s Sys=0.01s + User=0.04s Real=2.6s Sys=0.03s --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 621763428, 138058987 + Current couple of seeds = 1436682984, 1663224890 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... -G4 kernel has come to Quit state. -Deletion of G4 kernel class start. UserDetectorConstruction deleted. UserPhysicsList deleted. UserRunAction deleted. UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. EventManager deleted. UImanager deleted. StateManager deleted. +RunManagerKernel is deleted. RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh index dcae596ef2..487b8b5255 100644 --- a/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorConstruction.hh,v 1.1 2002/05/23 13:30:16 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh index a7c74f6103..938171e8a0 100644 --- a/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.hh,v 1.2 2002/12/12 12:48:16 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh index 34870de210..bdf99451e4 100644 --- a/examples/extended/electromagnetic/TestEm6/include/EventAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: EventAction.hh,v 1.1 2002/05/23 13:30:28 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh index a7b5cca6f1..105fc7df76 100644 --- a/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: EventActionMessenger.hh,v 1.1 2002/05/23 13:30:29 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh index 33d1ac6eb7..9f58927a3d 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsList.hh,v 1.3 2003/01/30 16:32:47 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh index a288628e17..b07956637f 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.hh,v 1.2 2003/01/27 09:46:19 hbu Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh index 6656140dba..a62b303e2e 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.hh,v 1.1 2002/05/23 13:30:31 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh index 7327ff7b74..03d3a0bc52 100644 --- a/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm6/include/PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorMessenger.hh,v 1.1 2002/05/23 13:30:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh index b1d7d78de3..3357457423 100644 --- a/examples/extended/electromagnetic/TestEm6/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RunAction.hh,v 1.4 2002/12/12 12:48:16 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.hh,v 1.5 2003/10/10 10:42:39 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -39,7 +39,7 @@ class G4Run; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE namespace AIDA { class ITree; class IHistogram1D; @@ -56,16 +56,15 @@ class RunAction : public G4UserRunAction void BeginOfRunAction(const G4Run*); void EndOfRunAction(const G4Run*); - -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} #endif private: void bookHisto(); void cleanHisto(); - -#ifndef G4NOHIST + +#ifdef G4ANALYSIS_USE private: AIDA::ITree* tree; AIDA::IHistogram1D* histo[6]; diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh index 7ad6d24f03..919664b761 100644 --- a/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingAction.hh,v 1.1 2002/05/23 13:30:33 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh index 58a766207d..a6e4298461 100644 --- a/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh +++ b/examples/extended/electromagnetic/TestEm6/include/SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.hh,v 1.1 2002/05/23 13:30:34 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/electromagnetic/TestEm6/include/VisManager.hh b/examples/extended/electromagnetic/TestEm6/include/VisManager.hh index 44eac0b94e..d91f5306e7 100644 --- a/examples/extended/electromagnetic/TestEm6/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm6/include/VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: VisManager.hh,v 1.1 2002/05/23 13:30:35 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/run02.mac b/examples/extended/electromagnetic/TestEm6/run02.mac index 2f84a05b80..054ad28825 100644 --- a/examples/extended/electromagnetic/TestEm6/run02.mac +++ b/examples/extended/electromagnetic/TestEm6/run02.mac @@ -1,4 +1,4 @@ -# $Id: run02.mac,v 1.3 2003/01/31 12:54:21 maire Exp $ +# $Id: run02.mac,v 1.4 2003/10/10 10:42:36 maire Exp $ # # Macro file for "TestEm6.cc" # (can be run in batch, without graphic) @@ -7,11 +7,10 @@ /control/verbose 2 /run/verbose 2 # -/run/initialize -# /testem/det/setMat Beryllium /testem/det/setSize 10 km -/testem/det/update +# +/run/initialize # /gun/particle gamma /gun/energy 100 TeV diff --git a/examples/extended/electromagnetic/TestEm6/run12.mac b/examples/extended/electromagnetic/TestEm6/run12.mac index f3b466f3b8..58c26b0642 100644 --- a/examples/extended/electromagnetic/TestEm6/run12.mac +++ b/examples/extended/electromagnetic/TestEm6/run12.mac @@ -1,4 +1,4 @@ -# $Id: run12.mac,v 1.1 2003/01/31 12:54:21 maire Exp $ +# $Id: run12.mac,v 1.2 2003/10/10 10:42:36 maire Exp $ # # Macro file for "TestEm6.cc" # (can be run in batch, without graphic) @@ -7,11 +7,10 @@ /control/verbose 2 /run/verbose 2 # -/run/initialize -# /testem/det/setMat Carbon /testem/det/setSize 18.5 cm -/testem/det/update +# +/run/initialize # /testem/phys/SetGammaToMuPairFac 1000 /testem/phys/SetAnnihiToMuPairFac 1000 diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc index bac4733a62..90c01e1ba4 100644 --- a/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorConstruction.cc @@ -22,8 +22,8 @@ // // -// $Id: DetectorConstruction.cc,v 1.6 2003/06/10 11:49:18 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.cc,v 1.8 2003/11/25 15:19:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -38,28 +38,23 @@ #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" #include "G4UniformMagField.hh" -#include "G4FieldManager.hh" -#include "G4TransportationManager.hh" -#include "G4RunManager.hh" #include "G4UserLimits.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" - #include "G4UnitsTable.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... DetectorConstruction::DetectorConstruction() -:pBox(0), lBox(0), BoxSize(500*m), - aMaterial(0), - magField (0) +:pBox(0), lBox(0), BoxSize(500*m), aMaterial(0), magField(0) { + DefineMaterials(); + SetMaterial("Iron"); + // create UserLimits userLimits = new G4UserLimits(); @@ -76,43 +71,27 @@ DetectorConstruction::~DetectorConstruction() G4VPhysicalVolume* DetectorConstruction::Construct() { - DefineMaterials(); return ConstructVolumes(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void DetectorConstruction::DefineMaterials() -{ - //This function illustrates the possible ways to define materials - +{ G4double a, z, density; - z = 4.; - a = 9.012182*g/mole; - density = 1.848*g/cm3; - G4Material* Be = new G4Material("Beryllium", z, a, density); - - z = 6.; - a = 12.011*g/mole; - density = 2.265*g/cm3; - G4Material* C = new G4Material("Carbon", z, a, density); - - z = 26.; - a = 55.85*g/mole; - density = 7.870*g/cm3; - G4Material* Fe = new G4Material("Iron" , z, a, density); + new G4Material("Beryllium", z= 4., a= 9.012182*g/mole, density= 1.848*g/cm3); + new G4Material("Carbon", z= 6., a= 12.011*g/mole, density= 2.265*g/cm3); + new G4Material("Iron", z=26., a= 55.85*g/mole, density= 7.870*g/cm3); G4cout << *(G4Material::GetMaterialTable()) << G4endl; - - //default materials of the calorimeter - aMaterial = Fe; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() { + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); @@ -135,19 +114,11 @@ G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() false, //no boolean operation 0); //copy number - // - // Visualization attributes - // - - G4VisAttributes* visAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - visAtt->SetVisibility(true); - lBox->SetVisAttributes(visAtt); - + PrintParameters(); + // //always return the root volume // - - PrintParameters(); return pBox; } @@ -165,10 +136,7 @@ void DetectorConstruction::SetMaterial(G4String materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - {aMaterial = pttoMaterial; - lBox->SetMaterial(aMaterial); - } + if (pttoMaterial) aMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -180,6 +148,9 @@ void DetectorConstruction::SetSize(G4double 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 @@ -216,7 +187,9 @@ void DetectorConstruction::SetMaxStepSize(G4double val) } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + +#include "G4RunManager.hh" + void DetectorConstruction::UpdateGeometry() { G4RunManager::GetRunManager()->DefineWorldVolume(ConstructVolumes()); diff --git a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc index b165d97c75..34f0763a51 100644 --- a/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: DetectorMessenger.cc,v 1.3 2002/12/12 12:48:16 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc index 9db3ca062a..14617d7a8d 100644 --- a/examples/extended/electromagnetic/TestEm6/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EventAction.cc,v 1.2 2003/06/10 11:49:18 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.cc,v 1.3 2003/10/10 10:42:39 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -34,12 +34,9 @@ #include "EventActionMessenger.hh" #include "G4Event.hh" -#include "G4EventManager.hh" #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" -#include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -69,11 +66,10 @@ void EventAction::BeginOfEventAction(const G4Event* evt) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void EventAction::EndOfEventAction(const G4Event*) +void EventAction::EndOfEventAction(const G4Event* evt) { if (G4VVisManager::GetConcreteInstance()) { - const G4Event* evt = fpEventManager->GetConstCurrentEvent(); G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); G4int n_trajectories = 0; if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); diff --git a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc index 714486874f..abf725ce27 100644 --- a/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/EventActionMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: EventActionMessenger.cc,v 1.3 2002/12/12 12:48:16 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.cc,v 1.4 2003/10/10 10:42:39 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -34,7 +34,6 @@ #include "EventAction.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc index 518c381e64..6e6901eabb 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsList.cc @@ -21,9 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsList.cc,v 1.4 2003/02/20 11:24:14 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// +// $Id: PhysicsList.cc,v 1.6 2003/10/24 12:20:58 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -33,11 +32,9 @@ #include "PhysicsListMessenger.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ParticleTypes.hh" #include "G4ParticleTable.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -140,7 +137,7 @@ void PhysicsList::ConstructEM() //electron 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); } else if (particleName == "e+") { //positron @@ -148,7 +145,7 @@ void PhysicsList::ConstructEM() // do not enable the other standard processes: // 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); theAnnihiToMuPairProcess=new G4AnnihiToMuPair; pmanager->AddDiscreteProcess(theAnnihiToMuPairProcess); @@ -158,8 +155,8 @@ void PhysicsList::ConstructEM() //muon 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); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); } } diff --git a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc index 525975eab7..d339198ce2 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsListMessenger.cc,v 1.4 2003/01/27 09:46:20 hbu Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsListMessenger.cc,v 1.5 2003/10/10 10:42:39 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -33,7 +33,6 @@ #include "PhysicsList.hh" #include "G4UIcmdWithADouble.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc index 01bd77b91e..22ee992df9 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorAction.cc,v 1.1 2002/05/23 13:30:43 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc index dc41a4026f..0b82aaa56b 100644 --- a/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm6/src/PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorMessenger.cc,v 1.3 2002/12/12 12:48:16 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc index e255748df2..12869c2f4e 100644 --- a/examples/extended/electromagnetic/TestEm6/src/RunAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: RunAction.cc,v 1.4 2003/06/10 11:49:18 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.cc,v 1.5 2003/10/10 10:42:39 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -35,11 +35,10 @@ #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" #include "Randomize.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/AIDA.h" #endif @@ -59,7 +58,7 @@ RunAction::~RunAction() void RunAction::bookHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE // Creating the analysis factory AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); @@ -92,7 +91,7 @@ void RunAction::bookHisto() void RunAction::cleanHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc index 955fa18ac1..85e8d86cea 100644 --- a/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: SteppingAction.cc,v 1.2 2002/06/05 14:21:00 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.cc,v 1.3 2003/10/10 10:42:40 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -35,7 +35,7 @@ #include "G4VProcess.hh" #include "G4ParticleTypes.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/IHistogram1D.h" #endif @@ -78,7 +78,7 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) G4double xPlus = Eplus/EGamma, xMinus = Eminus/EGamma; G4double thetaPlus = PGamma.angle(Pplus), thetaMinus = PGamma.angle(Pminus); - #ifndef G4NOHIST +#ifdef G4ANALYSIS_USE static const G4double muonMass=G4MuonPlus::MuonPlus()->GetPDGMass(); G4double GammaPlus=EGamma*xPlus/muonMass; @@ -92,7 +92,7 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) runAction->GetHisto(4)->fill(xPlus); runAction->GetHisto(5)->fill(xMinus); - #endif +#endif } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc index 6d5bf149d9..c0d6c233b7 100644 --- a/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc +++ b/examples/extended/electromagnetic/TestEm6/src/SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: SteppingVerbose.cc,v 1.3 2003/06/16 16:47:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm6/src/VisManager.cc b/examples/extended/electromagnetic/TestEm6/src/VisManager.cc index 786eda5702..0f6104d440 100755 --- a/examples/extended/electromagnetic/TestEm6/src/VisManager.cc +++ b/examples/extended/electromagnetic/TestEm6/src/VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: VisManager.cc,v 1.2 2002/11/13 21:40:02 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.cc,v 1.3 2003/11/13 15:10:40 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/electromagnetic/TestEm7/GNUmakefile b/examples/extended/electromagnetic/TestEm7/GNUmakefile index 4a8765f4c5..3f6e27a155 100644 --- a/examples/extended/electromagnetic/TestEm7/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm7/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 2003/04/22 16:25:03 maire Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/10 16:21:04 maire Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- @@ -14,12 +14,15 @@ endif .PHONY: all all: lib bin +#### G4ANALYSIS_USE := true + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + include $(G4INSTALL)/config/architecture.gmk -G4NOHIST := true -ifdef G4NOHIST - CPPFLAGS += -DG4NOHIST -else +ifdef G4ANALYSIS_USE # for the aida-config command see the README file CPPFLAGS += `aida-config --include` LDFLAGS += `aida-config --lib` diff --git a/examples/extended/electromagnetic/TestEm7/History b/examples/extended/electromagnetic/TestEm7/History index 8e8a97488f..4c3651b559 100644 --- a/examples/extended/electromagnetic/TestEm7/History +++ b/examples/extended/electromagnetic/TestEm7/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2003/06/18 18:18:55 vnivanch Exp $ +$Id: History,v 1.13 2003/12/05 11:18:40 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,29 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +05-12-03 V.Ivanchenko (testem7-V05-02-05) +- Update hadronic physics according to the hadronics_lists + +25-11-03 V.Ivanchenko (testem7-V05-02-04) +- Fix geometry (G.Cosmo) + +19-11-03 V.Ivanchenko (testem7-V05-02-03) +- Update BinaryCascade add light ion interactions + +13-11-03 John Allison +- Removed OPACS from Vis Manager. + +24-10-03 mma (testem7-V05-02-02) +- PhysListEmStandard: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +13-10-03 V.Ivanchenko (testem7-V05-02-01) +- Update Binary cascade constructor + +10-10-03 mma (testem7-V05-02-00) + - migration em STD -> em standard + - NOHIST -> ANALYSIS_USE + - cosmetic in material definitions + 18-06-03 V.Ivant (testem7-V05-01-04) - remove wrappers G4std diff --git a/examples/extended/electromagnetic/TestEm7/README b/examples/extended/electromagnetic/TestEm7/README index 114d031282..4cc0896c0e 100644 --- a/examples/extended/electromagnetic/TestEm7/README +++ b/examples/extended/electromagnetic/TestEm7/README @@ -1,4 +1,4 @@ -$Id: README,v 1.1 2003/04/22 16:25:03 maire Exp $ +$Id: README,v 1.2 2003/10/10 16:21:19 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -109,8 +109,9 @@ $Id: README,v 1.1 2003/04/22 16:25:03 maire Exp $ The bin size is egal to stepMax. The number of bins is determined by the thickness of the absorber (with a minimum of 100 bins). The total energy deposited is plotted in MeV/mm. - - Note that histograms are disabled via the flag G4NOHIST in GNUmakefile. + + Note that, by default, histograms are disabled. To activate them, uncomment + the flag G4ANALYSIS_USE in GNUmakefile. 7- DOSE IN 'TEST-VOLUMES' diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.cc b/examples/extended/electromagnetic/TestEm7/TestEm7.cc index aa93cc3028..0135399653 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.cc +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.cc @@ -22,7 +22,7 @@ // // // $Id: TestEm7.cc,v 1.1 2003/04/22 16:25:03 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.in b/examples/extended/electromagnetic/TestEm7/TestEm7.in index 829f8e8e09..b6bd489f3a 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.in +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.in @@ -1,4 +1,4 @@ -# $Id: TestEm7.in,v 1.4 2003/06/05 12:25:10 maire Exp $ +# $Id: TestEm7.in,v 1.5 2003/10/10 16:21:20 maire Exp $ # # Macro file for "TestEm7.cc" # (can be run in batch, without graphic) @@ -7,15 +7,6 @@ /control/verbose 2 /run/verbose 2 # -# select EM PhysicsList -# -/testem/phys/addPhysics model -###/testem/phys/addPhysics standard -# -# select Hadronic PhysicsList -# -/testem/phys/addPhysics binary -# /testem/det/setMat Water /testem/det/setSizeX 20 cm /testem/det/setSizeYZ 20 cm @@ -27,6 +18,10 @@ /testem/det/tallyPosition 0. 0. 0. cm /testem/det/tallyPosition 5. 0. 0. cm # +/testem/phys/addPhysics standard # em physics +###/testem/phys/addPhysics g4v52 # em physics +/testem/phys/addPhysics binary # hadronic physics +# /run/initialize # /gun/particle proton diff --git a/examples/extended/electromagnetic/TestEm7/TestEm7.out b/examples/extended/electromagnetic/TestEm7/TestEm7.out index b877dc2762..5bd5879c90 100644 --- a/examples/extended/electromagnetic/TestEm7/TestEm7.out +++ b/examples/extended/electromagnetic/TestEm7/TestEm7.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; @@ -35,17 +35,6 @@ Current available graphics systems are: VRML2FILE (VRML2FILE) /run/verbose 2 # -# select EM PhysicsList -# -/testem/phys/addPhysics model -PhysicsList::AddPhysicsList: -###/testem/phys/addPhysics standard -# -# select Hadronic PhysicsList -# -/testem/phys/addPhysics binary -PhysicsList::AddPhysicsList: -# /testem/det/setMat Water /testem/det/setSizeX 20 cm /testem/det/setSizeYZ 20 cm @@ -57,6 +46,12 @@ PhysicsList::AddPhysicsList: /testem/det/tallyPosition 0. 0. 0. cm /testem/det/tallyPosition 5. 0. 0. cm # +/testem/phys/addPhysics standard # em physics +PhysicsList::AddPhysicsList: +###/testem/phys/addPhysics g4v52 # em physics +/testem/phys/addPhysics binary # hadronic physics +PhysicsList::AddPhysicsList: +# /run/initialize userDetector->Construct() start. @@ -73,11 +68,11 @@ tally 3: position = 5 0 0 cm --------------------------------------------------------- World is registered to the default region. physicsList->Construct() start. +physicsList->Construct() start. phot: Total cross sections from Sandia parametrisation. Thank you for using G4BinaryCascade. -Add hadronic physics for neutron -Add hadronic physics for proton +Thank you for using G4BinaryCascade. physicsList->setCut() start. PhysicsList::SetCuts:CutLength : 1 mm # @@ -98,27 +93,29 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -msc: Model variant of multiple scattering - Lambda tables from 100 eV to 100 TeV 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: +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: +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: +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: +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. @@ -128,48 +125,50 @@ annihil: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -msc: Model variant of multiple scattering - Lambda tables from 100 eV to 100 TeV in 100 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: +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. - Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Model variant of multiple scattering - Lambda tables from 100 eV to 100 TeV in 100 bins. +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: +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: +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: +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 +### All dEdx and Range tables are built ##### -MuIoni: +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model +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 -MuPairProd: - dE/dx and range tables from 100 eV to 100 TeV in 120 bins. - Lambda tables from threshold to 100 TeV in 120 bins. - Parametrised model +Region DefaultRegionForTheWorld + Materials : Galactic Water + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm ========= Table of registered couples ============================== @@ -189,12 +188,6 @@ Index : 1 used in the geometry : Yes recalculation needed : No ==================================================================== -### Run 0 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 1692458005, 1054920321 ----------------------------------------- Start closing geometry. G4GeometryManager::ReportVoxelStats -- Voxel Statistics @@ -210,6 +203,12 @@ G4GeometryManager::ReportVoxelStats -- Voxel Statistics Percent Memory Heads Nodes Pointers Total CPU Volume ------- -------- ------ ------ -------- ---------- ---------- 100.00 0k 1 5 8 0.00 Absorber +### Run 0 start. + +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 55312060, 333625511 +---------------------------------------- Start Run processing. ---> Begin of Event: 0 @@ -234,30 +233,30 @@ Start Run processing. Run terminated. Run Summary Number of events processed : 10000 - User=212.54s Real=372.94s Sys=52.91s + User=476.55s Real=864.12s Sys=75.98s --------------------------------------------------------- Cumulated Doses : Edep Edep/Ebeam Dose -tally 0: 10.556 GeV 0.659749 % 0.000211407 Gy -tally 1: 7.76408 GeV 0.485255 % 0.000155493 Gy -tally 2: 3.32639 GeV 0.207899 % 6.66183e-05 Gy -tally 3: 1.63959 GeV 0.102475 % 3.28365e-05 Gy +tally 0: 10.4962 GeV 0.656011 % 0.000210209 Gy +tally 1: 7.50598 GeV 0.469124 % 0.000150324 Gy +tally 2: 3.04074 GeV 0.190046 % 6.08976e-05 Gy +tally 3: 1.39586 GeV 0.0872414 % 2.79552e-05 Gy --------------------------------------------------------- --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 2084081781, 1451269122 + Current couple of seeds = 595184325, 961500994 ---------------------------------------- Graphics systems deleted. Visualization Manager deleting... -G4 kernel has come to Quit state. -Deletion of G4 kernel class start. UserDetectorConstruction deleted. UserPhysicsList deleted. UserRunAction deleted. UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. EventManager deleted. UImanager deleted. StateManager deleted. +RunManagerKernel is deleted. RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm7/include/DetectorConstruction.hh index 0ab7f892ef..b0a46c329c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a8483ebea5..932bba25e1 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.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 27e45290ce..990f278377 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 ee30a8303f..c0a533f166 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.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/IonC12.hh b/examples/extended/electromagnetic/TestEm7/include/IonC12.hh index e8a1c1c0ba..91c6f323c1 100644 --- a/examples/extended/electromagnetic/TestEm7/include/IonC12.hh +++ b/examples/extended/electromagnetic/TestEm7/include/IonC12.hh @@ -22,7 +22,7 @@ // // // $Id: IonC12.hh,v 1.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Each class inheriting from G4VIon // corresponds to a particle type; one and only one diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh index 4fe28fc0fe..b03f2cc691 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListBinaryCascade.hh @@ -20,13 +20,15 @@ // * statement, and all its terms. * // ******************************************************************** // -// +// $Id: PhysListBinaryCascade.hh,v 1.4 2003/12/05 11:17:16 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ -// GEANT 4 class header file +// GEANT 4 class header file // Class Description: // This class is an derived class of G4VPhysicsConstructor -// It is provide PhysicsList for hadron eleastic process +// It is provide PhysicsList for Binary Cascade for +// protons and neutrons with the energy E<3 GeV // // ------------------------------------------------------------ // History @@ -41,7 +43,10 @@ #include "G4VPhysicsConstructor.hh" #include "globals.hh" - +#include "G4ProtonInelasticProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4ProtonInelasticCrossSection.hh" +#include "G4NeutronInelasticCrossSection.hh" class PhysListBinaryCascade : public G4VPhysicsConstructor { @@ -61,15 +66,11 @@ class PhysListBinaryCascade : public G4VPhysicsConstructor private: + G4ProtonInelasticProcess theIPproton; + G4NeutronInelasticProcess theIPneutron; + G4ProtonInelasticCrossSection thePXSec; + G4NeutronInelasticCrossSection theNXSec; + }; - #endif - - - - - - - - diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListEmG4v52.hh new file mode 100644 index 0000000000..2fac2046a8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm7/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 2003/10/10 16:24:59 maire Exp $ +// GEANT4 tag $Name: geant4-06-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/TestEm7/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh index b7bf52f22a..3e551d5925 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListEmStandard.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmStandard.hh,v 1.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmStandard.hh,v 1.2 2003/10/10 16:21:26 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -39,16 +39,16 @@ class PhysListEmStandard : public G4VPhysicsConstructor { public: PhysListEmStandard(const G4String& name = "standard"); - virtual ~PhysListEmStandard(); + ~PhysListEmStandard(); public: // This method is dummy for physics - 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(); }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListGeneral.hh index 32e17d0e18..619402050d 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListGeneral.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListGeneral.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListGeneral.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListGeneral.hh,v 1.2 2003/10/10 16:21:26 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,7 +31,6 @@ #define PhysListGeneral_h 1 #include "G4VPhysicsConstructor.hh" -#include "G4Decay.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,16 +39,16 @@ class PhysListGeneral : public G4VPhysicsConstructor { public: PhysListGeneral(const G4String& name = "general"); - virtual ~PhysListGeneral(); + ~PhysListGeneral(); public: // This method is dummy for physics - 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(); }; diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/MuonModelPhysics.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh similarity index 52% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/MuonModelPhysics.hh rename to examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh index 40369c0e99..ca2f4c2cb2 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/MuonModelPhysics.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListIonBinaryCascade.hh @@ -20,61 +20,60 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef MuonModelPhysics_h -#define MuonModelPhysics_h 1 - -#include "globals.hh" -#include "G4ios.hh" +// $Id: PhysListIonBinaryCascade.hh,v 1.1 2003/11/19 10:16:17 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// It is provide PhysicsList for Binary Cascade for +// protons and neutrons with the energy E<3 GeV +// +// ------------------------------------------------------------ +// History +// Created: 18.11.03 V.Ivanchenko +// +// Modified: +// +// ------------------------------------------------------------ +// +#ifndef PhysListIonBinaryCascade_h +#define PhysListIonBinaryCascade_h 1 #include "G4VPhysicsConstructor.hh" -#include "G4MultipleScatteringSTD.hh" -#include "G4MuBremsstrahlungSTD.hh" -#include "G4MuPairProductionSTD.hh" -#include "G4MuIonisationSTD.hh" -#include "G4hIonisationSTD.hh" +#include "globals.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4AlphaInelasticProcess.hh" -#include "G4MuonMinusCaptureAtRest.hh" +class G4HadronInelasticProcess; -class MuonModelPhysics : public G4VPhysicsConstructor +class PhysListIonBinaryCascade : public G4VPhysicsConstructor { - public: - MuonModelPhysics(const G4String& name="muon"); - virtual ~MuonModelPhysics(); + public: + PhysListIonBinaryCascade(const G4String& name = "binary_ion"); + virtual ~PhysListIonBinaryCascade(); - 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(); - + 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(); + // registered to the process manager of each particle type + void ConstructProcess(); - protected: - // Muon physics - G4MultipleScatteringSTD fMuPlusMultipleScattering; - G4MuBremsstrahlungSTD fMuPlusBremsstrahlung ; - G4MuPairProductionSTD fMuPlusPairProduction; - G4MuIonisationSTD fMuPlusIonisation; + private: - G4MultipleScatteringSTD fMuMinusMultipleScattering; - G4MuBremsstrahlungSTD fMuMinusBremsstrahlung ; - G4MuPairProductionSTD fMuMinusPairProduction; - G4MuIonisationSTD fMuMinusIonisation; - - G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; - - // Tau physics - G4MultipleScatteringSTD fTauPlusMultipleScattering; - G4hIonisationSTD fTauPlusIonisation; - - G4MultipleScatteringSTD fTauMinusMultipleScattering; - G4hIonisationSTD fTauMinusIonisation; + G4DeuteronInelasticProcess theIPdeuteron; + G4TritonInelasticProcess theIPtriton; + G4AlphaInelasticProcess theIPalpha; + G4HadronInelasticProcess* theIPHe3; + G4HadronInelasticProcess* theIPIonC12; + G4HadronInelasticProcess* theIPGenericIon; }; -// 2002 by J.P. Wellisch - #endif - diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysListParticles.hh b/examples/extended/electromagnetic/TestEm7/include/PhysListParticles.hh index 298c5d86e5..1c003e9a17 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysListParticles.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListParticles.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.hh,v 1.2 2003/10/10 16:21:27 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,15 +40,15 @@ class PhysListParticles : public G4VPhysicsConstructor { public: PhysListParticles(const G4String& name = "particles"); - virtual ~PhysListParticles(); + ~PhysListParticles(); public: // This method will be invoked in the Construct() method. // each particle type will be instantiated - virtual void ConstructParticle(); + void ConstructParticle(); // This method is dummy. - virtual void ConstructProcess() {}; + void ConstructProcess() {}; }; diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm7/include/PhysicsList.hh index 5be5a10cdf..60a2ba5973 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.3 2003/06/16 16:47:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh index 4e141cebe0..c16194056d 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PhysicsListMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh index 612a5ec88d..eeffedb167 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.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 1b3bdff0e6..2146313c0c 100644 --- a/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh +++ b/examples/extended/electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorMessenger.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm7/include/RunAction.hh b/examples/extended/electromagnetic/TestEm7/include/RunAction.hh index 656d7a32ae..9d0c9e25b9 100644 --- a/examples/extended/electromagnetic/TestEm7/include/RunAction.hh +++ b/examples/extended/electromagnetic/TestEm7/include/RunAction.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: RunAction.hh,v 1.1 2003/04/22 16:25:05 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.hh,v 1.2 2003/10/10 16:21:27 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -37,7 +37,7 @@ class PhysicsList; class PrimaryGeneratorAction; class G4Run; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE namespace AIDA { class ITree; class IHistogram1D; @@ -58,7 +58,7 @@ class RunAction : public G4UserRunAction G4double* GetTallyEdep() {return tallyEdep;}; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE AIDA::IHistogram1D* GetHisto(G4int id) {return histo[id];} G4double GetBinLength() {return binLength;}; @@ -75,7 +75,7 @@ class RunAction : public G4UserRunAction PrimaryGeneratorAction* kinematic; G4double* tallyEdep; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE private: AIDA::ITree* tree; AIDA::IHistogram1D* histo[1]; diff --git a/examples/extended/electromagnetic/TestEm7/include/StepMax.hh b/examples/extended/electromagnetic/TestEm7/include/StepMax.hh index acdd757a25..ef3ead1a29 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 5cda459174..9ebf5589e3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 8d6b0ab8e8..e922f10198 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 dc996c3742..6d1bebc902 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/include/VisManager.hh b/examples/extended/electromagnetic/TestEm7/include/VisManager.hh index d2303285fa..4eb167893e 100644 --- a/examples/extended/electromagnetic/TestEm7/include/VisManager.hh +++ b/examples/extended/electromagnetic/TestEm7/include/VisManager.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: VisManager.hh,v 1.1 2003/04/22 16:25:06 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 64a3d828a5..4c61174751 100644 --- a/examples/extended/electromagnetic/TestEm7/ionC12.mac +++ b/examples/extended/electromagnetic/TestEm7/ionC12.mac @@ -1,4 +1,4 @@ -# $Id: ionC12.mac,v 1.3 2003/06/14 16:01:19 vnivanch Exp $ +# $Id: ionC12.mac,v 1.5 2003/12/05 11:17:15 vnivanch Exp $ # # Macro file for "TestEm7.cc" # (can be run in batch, without graphic) @@ -6,14 +6,7 @@ # /control/verbose 2 /run/verbose 2 -# -# select EM PhysicsList -# -/testem/phys/addPhysics model -#/testem/phys/addPhysics standard -# -#/testem/phys/addPhysics binary -/testem/phys/addPhysics elastic +/tracking/verbose 0 # /testem/det/setMat Water /testem/det/setSizeX 20 cm @@ -26,9 +19,17 @@ /testem/det/tallyPosition 0. 0. 0. cm /testem/det/tallyPosition 5. 0. 0. cm # +/testem/phys/addPhysics standard #em physics +####/testem/phys/addPhysics g4v52 #em physics +# +/testem/phys/addPhysics binary #hadronic physics +/testem/phys/addPhysics binary_ion #hadronic physics +/testem/phys/addPhysics elastic #hadronic physics +# /run/initialize # -/gun/particle ionC12 +/gun/particle ion #GenericIon C12 +/gun/ion 6 12 6 /gun/energy 3.5 GeV # /testem/event/printModulo 1000 diff --git a/examples/extended/electromagnetic/TestEm7/run01.mac b/examples/extended/electromagnetic/TestEm7/run01.mac index 9a47e95367..1d5750c19b 100644 --- a/examples/extended/electromagnetic/TestEm7/run01.mac +++ b/examples/extended/electromagnetic/TestEm7/run01.mac @@ -1,4 +1,4 @@ -# $Id: run01.mac,v 1.3 2003/05/23 07:47:05 vnivanch Exp $ +# $Id: run01.mac,v 1.4 2003/10/10 16:21:20 maire Exp $ # # Macro file for "TestEm7.cc" # (can be run in batch, without graphic) @@ -6,24 +6,22 @@ # /control/verbose 2 /run/verbose 2 -#/run/initialize -# -#/testem/phys/addPhysics model -#/testem/phys/addPhysics standard -# -#/testem/phys/addPhysics binary # /testem/det/setMat Water /testem/det/setSizeX 20 cm /testem/det/setSizeYZ 20 cm -#/testem/det/update +# +####/testem/phys/addPhysics standard #em physics +####/testem/phys/addPhysics g4v52 #em physics +####/testem/phys/addPhysics binary #hadronic physics +# +/run/initialize # /gun/particle proton /gun/energy 160 MeV # -/run/initialize /testem/event/printModulo 1000 /testem/stepMax 1 mm # /run/beamOn 10000 -# + diff --git a/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc index 69a761bba3..eab87122b5 100644 --- a/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/DetectorConstruction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: DetectorConstruction.cc,v 1.2 2003/05/15 11:39:58 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: DetectorConstruction.cc,v 1.4 2003/11/25 15:19:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,19 +34,13 @@ #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" #include "G4UniformMagField.hh" -#include "G4FieldManager.hh" -#include "G4TransportationManager.hh" -#include "G4RunManager.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" -#include "G4VisAttributes.hh" -#include "G4Colour.hh" - #include "G4UnitsTable.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -66,10 +60,13 @@ DetectorConstruction::DetectorConstruction() tallyNumber = 0; tallyPosition = new G4ThreeVector[MaxTally]; lTally = 0; + + DefineMaterials(); + SetMaterial("Water"); + SetTallyMaterial("Water"); // create commands for interactive definition of the detector detectorMessenger = new DetectorMessenger(this); - DefineMaterials(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -93,17 +90,9 @@ void DetectorConstruction::DefineMaterials() // G4double z, a; -z = 1; -a = 1.008*g/mole; -G4Element* H = new G4Element("Hydrogen", "H", z, a); - -z = 7; -a = 14.01*g/mole; -G4Element* N = new G4Element("Nitrogen", "N", z, a); - -z = 8; -a = 16.00*g/mole; -G4Element* O = new G4Element("Oxygen" , "O", z, a); +G4Element* H = new G4Element("Hydrogen", "H", z= 1, a= 1.008*g/mole); +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); // // define Materials. @@ -112,35 +101,35 @@ G4double density, temperature, pressure; G4int ncomponents, natoms; G4double fractionmass; -density = 1.000*g/cm3; -G4Material* H2O = new G4Material("Water", density, ncomponents=2); +G4Material* H2O = +new G4Material("Water", density= 1.000*g/cm3, ncomponents=2); H2O->AddElement(H, natoms=2); H2O->AddElement(O, natoms=1); H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); -density = 1.290*mg/cm3; -G4Material* Air = new G4Material("Air" , density, ncomponents=2); +G4Material* Air = +new G4Material("Air" , density= 1.290*mg/cm3, ncomponents=2); Air->AddElement(N, fractionmass=0.7); Air->AddElement(O, fractionmass=0.3); density = universe_mean_density; //from PhysicalConstants.h pressure = 3.e-18*pascal; temperature = 2.73*kelvin; -G4Material* vacuum = new G4Material("Galactic",z=1,a=1.008*g/mole,density, - kStateGas,temperature,pressure); +G4Material* vacuum = +new G4Material("Galactic",z= 1,a= 1.008*g/mole,density, + kStateGas,temperature,pressure); G4cout << *(G4Material::GetMaterialTable()) << G4endl; //default materials worldMaterial = vacuum; - absorMaterial = H2O; - tallyMaterial = H2O; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() { + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); @@ -205,16 +194,12 @@ G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() tallyMass = tallySize.x()*tallySize.y()*tallySize.z() *(tallyMaterial->GetDensity()); } - // - // Visualization attributes - // - G4VisAttributes* visAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0)); - visAtt->SetVisibility(true); - + + PrintParameters(); + // //always return the World volume // - PrintParameters(); return pWorld; } @@ -260,15 +245,14 @@ void DetectorConstruction::SetMaterial(G4String materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - { - absorMaterial = pttoMaterial; - if ( lAbsor ) lAbsor->SetMaterial(absorMaterial); - } + if (pttoMaterial) absorMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" + void DetectorConstruction::SetMagField(G4double fieldValue) { //apply a global uniform magnetic field along Z axis @@ -302,10 +286,7 @@ void DetectorConstruction::SetTallyMaterial(G4String materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - { tallyMaterial = pttoMaterial; - if(lTally) lTally->SetMaterial(tallyMaterial); - } + if (pttoMaterial) tallyMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -319,7 +300,9 @@ void DetectorConstruction::SetTallyPosition(G4ThreeVector value) } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - + +#include "G4RunManager.hh" + void DetectorConstruction::UpdateGeometry() { G4RunManager::GetRunManager()->DefineWorldVolume(ConstructVolumes()); diff --git a/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/DetectorMessenger.cc index 9c127a5190..634a9dc913 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.1 2003/04/22 16:25:06 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 97a08d6b1b..b5a38512b9 100644 --- a/examples/extended/electromagnetic/TestEm7/src/EventAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/EventAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: EventAction.cc,v 1.2 2003/06/03 09:33:21 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventAction.cc,v 1.3 2003/10/10 16:21:31 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,12 +31,9 @@ #include "EventActionMessenger.hh" #include "G4Event.hh" -#include "G4EventManager.hh" #include "G4TrajectoryContainer.hh" #include "G4Trajectory.hh" #include "G4VVisManager.hh" -#include "G4ios.hh" -#include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -66,11 +63,10 @@ void EventAction::BeginOfEventAction(const G4Event* evt) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void EventAction::EndOfEventAction(const G4Event*) +void EventAction::EndOfEventAction(const G4Event* evt) { if (G4VVisManager::GetConcreteInstance()) { - const G4Event* evt = fpEventManager->GetConstCurrentEvent(); G4TrajectoryContainer* trajectoryContainer = evt->GetTrajectoryContainer(); G4int n_trajectories = 0; if (trajectoryContainer) n_trajectories = trajectoryContainer->entries(); diff --git a/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc index 58fb4f69d0..993b6dd27c 100644 --- a/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/EventActionMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: EventActionMessenger.cc,v 1.1 2003/04/22 16:25:06 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: EventActionMessenger.cc,v 1.2 2003/10/10 16:21:31 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,7 +31,6 @@ #include "EventAction.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/IonC12.cc b/examples/extended/electromagnetic/TestEm7/src/IonC12.cc index e1d6a78602..1f5a2f737b 100644 --- a/examples/extended/electromagnetic/TestEm7/src/IonC12.cc +++ b/examples/extended/electromagnetic/TestEm7/src/IonC12.cc @@ -22,7 +22,7 @@ // // // $Id: IonC12.cc,v 1.2 2003/06/16 16:47:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 50d6aa45d7..513675633c 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListBinaryCascade.cc @@ -20,21 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// +// $Id: PhysListBinaryCascade.cc,v 1.5 2003/12/05 11:17:16 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ #include "PhysListBinaryCascade.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" #include "G4LFission.hh" #include "G4LCapture.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" #include "G4HadronFissionProcess.hh" #include "G4HadronCaptureProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4NeutronInelasticProcess.hh" - #include "G4BinaryCascade.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -54,50 +53,36 @@ void PhysListBinaryCascade::ConstructProcess() { // Binary Cascade - G4BinaryCascade * theBC = new G4BinaryCascade(); + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4String particleName = particle->GetParticleName(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (particleName == "proton") { + G4BinaryCascade* theBC = 0; - G4ProtonInelasticProcess* theInelasticProcess = - new G4ProtonInelasticProcess("inelastic"); - theInelasticProcess->RegisterMe(theBC); - pmanager->AddDiscreteProcess(theInelasticProcess); - G4cout << "Add hadronic physics for proton" << G4endl; + // proton + particle = G4Proton::Proton(); + pmanager = particle->GetProcessManager(); + theBC = new G4BinaryCascade(); + theIPproton.RegisterMe(theBC); + theIPproton.AddDataSet(&thePXSec); + pmanager->AddDiscreteProcess(&theIPproton); - } else if (particleName == "neutron") { - - G4NeutronInelasticProcess* theInelasticProcess = - new G4NeutronInelasticProcess("inelastic"); - theInelasticProcess->RegisterMe(theBC); - pmanager->AddDiscreteProcess(theInelasticProcess); - // fission - G4HadronFissionProcess* theFissionProcess = - new G4HadronFissionProcess; - G4LFission* theFissionModel = new G4LFission; - theFissionProcess->RegisterMe(theFissionModel); - pmanager->AddDiscreteProcess(theFissionProcess); - // capture - G4HadronCaptureProcess* theCaptureProcess = - new G4HadronCaptureProcess; - G4LCapture* theCaptureModel = new G4LCapture; - theCaptureProcess->RegisterMe(theCaptureModel); - pmanager->AddDiscreteProcess(theCaptureProcess); - G4cout << "Add hadronic physics for neutron" << G4endl; - /* - if (particle == G4IonC12::IonC12()) { - pManager->AddDiscreteProcess(&theIonProcess); - G4cout << "### IonSpecial process are registered for " - << particle->GetParticleName() - << G4endl; - } - */ - } - } + // neutron + particle = G4Neutron::Neutron(); + pmanager = particle->GetProcessManager(); + theBC = new G4BinaryCascade(); + theIPneutron.RegisterMe(theBC); + theIPneutron.AddDataSet(&theNXSec); + pmanager->AddDiscreteProcess(&theIPneutron); + // fission + G4HadronFissionProcess* theFissionProcess = new G4HadronFissionProcess; + G4LFission* theFissionModel = new G4LFission; + theFissionProcess->RegisterMe(theFissionModel); + pmanager->AddDiscreteProcess(theFissionProcess); + // capture + G4HadronCaptureProcess* theCaptureProcess = new G4HadronCaptureProcess; + G4LCapture* theCaptureModel = new G4LCapture; + theCaptureProcess->RegisterMe(theCaptureModel); + pmanager->AddDiscreteProcess(theCaptureProcess); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysListEmModel.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc similarity index 69% rename from examples/extended/electromagnetic/TestEm1/src/Em1PhysListEmModel.cc rename to examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc index 595742c2b2..085f681336 100644 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysListEmModel.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListEmG4v52.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em1PhysListEmModel.cc,v 1.1 2003/03/27 11:16:20 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmG4v52.cc,v 1.1 2003/10/10 16:25:16 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1PhysListEmModel.hh" +#include "PhysListEmG4v52.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -35,33 +35,33 @@ #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" -#include "G4MultipleScatteringSTD.hh" +#include "G4MultipleScattering52.hh" -#include "G4eIonisationSTD.hh" -#include "G4eBremsstrahlungSTD.hh" +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" #include "G4eplusAnnihilation.hh" -#include "G4MuIonisationSTD.hh" -#include "G4MuBremsstrahlungSTD.hh" -#include "G4MuPairProductionSTD.hh" +#include "G4MuIonisation52.hh" +#include "G4MuBremsstrahlung52.hh" +#include "G4MuPairProduction52.hh" + +#include "G4hIonisation52.hh" -#include "G4hIonisationSTD.hh" -#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysListEmModel::Em1PhysListEmModel(const G4String& name) +PhysListEmG4v52::PhysListEmG4v52(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysListEmModel::~Em1PhysListEmModel() +PhysListEmG4v52::~PhysListEmG4v52() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysListEmModel::ConstructProcess() +void PhysListEmG4v52::ConstructProcess() { // Add EM processes realised on base of prototype of model approach design @@ -79,36 +79,36 @@ void Em1PhysListEmModel::ConstructProcess() } else if (particleName == "e-") { //electron - pmanager->AddProcess(new G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -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 G4MultipleScatteringSTD, -1, 1,1); - pmanager->AddProcess(new G4eIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4eBremsstrahlungSTD, -1,-1,3); + pmanager->AddProcess(new G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); } else if( particleName == "mu+" || particleName == "mu-" ) { //muon - pmanager->AddProcess(new G4MultipleScatteringSTD,-1, 1,1); - pmanager->AddProcess(new G4MuIonisationSTD, -1, 2,2); - pmanager->AddProcess(new G4MuBremsstrahlungSTD, -1,-1,3); - pmanager->AddProcess(new G4MuPairProductionSTD, -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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4ionIonisation, -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 G4MultipleScatteringSTD,-1,1,1); - pmanager->AddProcess(new G4hIonisationSTD, -1,2,2); + pmanager->AddProcess(new G4MultipleScattering52,-1,1,1); + pmanager->AddProcess(new G4hIonisation52, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc index 96fe3c0f4d..92289de048 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListEmStandard.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmStandard.cc,v 1.1 2003/04/22 16:25:06 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmStandard.cc,v 1.3 2003/10/24 12:22:51 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -46,6 +46,7 @@ #include "G4MuPairProduction.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -80,13 +81,13 @@ void PhysListEmStandard::ConstructProcess() //electron 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); } else if (particleName == "e+") { //positron 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); } else if( particleName == "mu+" || @@ -94,9 +95,13 @@ void PhysListEmStandard::ConstructProcess() //muon 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); + 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")) { diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListGeneral.cc index a3c82a99bb..606e600795 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListGeneral.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListGeneral.cc,v 1.1 2003/04/22 16:25:07 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListGeneral.cc,v 1.2 2003/10/10 16:21:31 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -30,6 +30,7 @@ #include "PhysListGeneral.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" +#include "G4Decay.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc new file mode 100644 index 0000000000..41897a5c77 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListIonBinaryCascade.cc @@ -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: PhysListIonBinaryCascade.cc,v 1.2 2003/12/05 11:17:16 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ + +#include "PhysListIonBinaryCascade.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4Deuteron.hh" +#include "G4Triton.hh" +#include "G4He3.hh" +#include "G4Alpha.hh" +#include "IonC12.hh" +#include "G4GenericIon.hh" + +#include "G4ExcitationHandler.hh" +#include "G4Evaporation.hh" +#include "G4FermiBreakUp.hh" +#include "G4StatMF.hh" +#include "G4GeneratorPrecompoundInterface.hh" + +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4LETritonInelastic.hh" +#include "G4LEAlphaInelastic.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListIonBinaryCascade::PhysListIonBinaryCascade(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListIonBinaryCascade::~PhysListIonBinaryCascade() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListIonBinaryCascade::ConstructProcess() +{ + /* + // all models for treatment of thermal nucleus + G4Evaporation * theEvaporation = new G4Evaporation; + G4FermiBreakUp * theFermiBreakUp = new G4FermiBreakUp; + G4StatMF * theMF = new G4StatMF; + + // Evaporation logic + G4ExcitationHandler * theHandler = new G4ExcitationHandler; + theHandler->SetEvaporation(theEvaporation); + theHandler->SetFermiModel(theFermiBreakUp); + theHandler->SetMultiFragmentation(theMF); + theHandler->SetMaxAandZForFermiBreakUp(12, 6); + theHandler->SetMinEForMultiFrag(3*MeV); + + // Pre equilibrium stage + G4PreCompoundModel * thePreEquilib = new G4PreCompoundModel(theHandler); + + // a no-cascade generator-precompound interaface + G4GeneratorPrecompoundInterface * theCascade = new G4GeneratorPrecompoundInterface; + theCascade->SetDeExcitation(thePreEquilib); + */ + // Binary Cascade + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; + G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction(); + theBC->SetMinEnergy(80*MeV); + theBC->SetMaxEnergy(20*GeV); + + G4TripathiCrossSection * TripathiCrossSection= new G4TripathiCrossSection; + G4IonsShenCrossSection * aShen = new G4IonsShenCrossSection; + + // deuteron + particle = G4Deuteron::Deuteron(); + pmanager = particle->GetProcessManager(); + G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic; + theDIModel->SetMaxEnergy(100*MeV); + theIPdeuteron.AddDataSet(TripathiCrossSection); + theIPdeuteron.AddDataSet(aShen); + theIPdeuteron.RegisterMe(theDIModel); + theIPdeuteron.RegisterMe(theBC); + pmanager->AddDiscreteProcess(&theIPdeuteron); + + // triton + particle = G4Triton::Triton(); + pmanager = particle->GetProcessManager(); + G4LETritonInelastic* theTIModel = new G4LETritonInelastic; + theTIModel->SetMaxEnergy(100*MeV); + theIPtriton.AddDataSet(TripathiCrossSection); + theIPtriton.AddDataSet(aShen); + theIPtriton.RegisterMe(theTIModel); + theIPtriton.RegisterMe(theBC); + pmanager->AddDiscreteProcess(&theIPtriton); + + // alpha + particle = G4Alpha::Alpha(); + pmanager = particle->GetProcessManager(); + G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic; + theAIModel->SetMaxEnergy(100*MeV); + theIPalpha.AddDataSet(TripathiCrossSection); + theIPalpha.AddDataSet(aShen); + theIPalpha.RegisterMe(theAIModel); + theIPalpha.RegisterMe(theBC); + pmanager->AddDiscreteProcess(&theIPalpha); + + + // GenericIon + particle = G4GenericIon::GenericIon(); + pmanager = particle->GetProcessManager(); + G4HadronInelasticProcess* theIPGenericIon = + new G4HadronInelasticProcess("IonInelastic",particle); + theIPGenericIon->AddDataSet(TripathiCrossSection); + theIPGenericIon->AddDataSet(aShen); + G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction; + theGenIonBC->SetMinEnergy(0*MeV); + theGenIonBC->SetMaxEnergy(10*GeV); + theIPGenericIon->RegisterMe(theGenIonBC); + pmanager->AddDiscreteProcess(theIPGenericIon); + + // C12 + particle = IonC12::Ion(); + pmanager = particle->GetProcessManager(); + G4HadronInelasticProcess* theIPIonC12 = + new G4HadronInelasticProcess("IonC12Inelastic",particle); + theIPIonC12->AddDataSet(TripathiCrossSection); + theIPIonC12->AddDataSet(aShen); + theIPIonC12->RegisterMe(theGenIonBC); + pmanager->AddDiscreteProcess(theIPIonC12); + + // He3 + particle = G4He3::He3(); + pmanager = particle->GetProcessManager(); + G4HadronInelasticProcess* theIPHe3 = + new G4HadronInelasticProcess("He3Inelastic",particle); + theIPHe3->AddDataSet(TripathiCrossSection); + theIPHe3->AddDataSet(aShen); + theIPHe3->RegisterMe(theGenIonBC); + pmanager->AddDiscreteProcess(theIPHe3); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysListParticles.cc b/examples/extended/electromagnetic/TestEm7/src/PhysListParticles.cc index e19123a8d6..ead32a5e13 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysListParticles.cc @@ -22,7 +22,7 @@ // // // $Id: PhysListParticles.cc,v 1.1 2003/04/22 16:25:07 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 680ac9cd32..4c7b4a85f2 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysicsList.cc,v 1.7 2003/06/14 16:01:19 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysicsList.cc,v 1.9 2003/11/19 10:16:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -34,16 +34,13 @@ #include "PhysListParticles.hh" #include "PhysListGeneral.hh" #include "PhysListEmStandard.hh" -#include "PhysListEmModel.hh" +#include "PhysListEmG4v52.hh" #include "PhysListHadronElastic.hh" #include "PhysListBinaryCascade.hh" +#include "PhysListIonBinaryCascade.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" - -#include "G4UnitsTable.hh" #include "G4LossTableManager.hh" +#include "G4UnitsTable.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -117,11 +114,11 @@ void PhysicsList::AddPhysicsList(const G4String& name) delete emPhysicsList; emPhysicsList = new PhysListEmStandard(name); - } else if (name == "model") { + } else if (name == "g4v52") { emName = name; delete emPhysicsList; - emPhysicsList = new PhysListEmModel(name); + emPhysicsList = new PhysListEmG4v52(name); } else if (name == "elastic") { @@ -131,6 +128,10 @@ void PhysicsList::AddPhysicsList(const G4String& name) hadronPhys.push_back( new PhysListBinaryCascade(name)); + } else if (name == "binary_ion") { + + hadronPhys.push_back( new PhysListIonBinaryCascade(name)); + } else { G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" @@ -168,6 +169,10 @@ void PhysicsList::AddStepMax() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + void PhysicsList::SetCuts() { diff --git a/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc index b6c13b9afd..9392df5898 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: PhysicsListMessenger.cc,v 1.1 2003/04/22 16:25:07 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorAction.cc index a37e21517c..848d114823 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6cec016afc..49ec96ea9b 100644 --- a/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: PrimaryGeneratorMessenger.cc,v 1.1 2003/04/22 16:25:07 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm7/src/RunAction.cc b/examples/extended/electromagnetic/TestEm7/src/RunAction.cc index 4c8220e017..b6c6cabeae 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.2 2003/06/03 09:33:21 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: RunAction.cc,v 1.4 2003/11/19 10:16:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -41,7 +41,7 @@ #include "Randomize.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/AIDA.h" #endif @@ -66,13 +66,13 @@ RunAction::~RunAction() void RunAction::bookHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE // Creating the analysis factory AIDA::IAnalysisFactory* af = AIDA_createAnalysisFactory(); - + // Creating the tree factory AIDA::ITreeFactory* tf = af->createTreeFactory(); - + // Creating a tree mapped to an hbook file. G4bool readOnly = false; G4bool createNew = true; @@ -90,23 +90,23 @@ void RunAction::bookHisto() binLength = length/nbBins; offsetX = 0.5*length; histo[0] = hf->createHistogram1D("1","Edep (MeV/mm)",nbBins, 0,length); - + delete hf; delete tf; - delete af; -#endif + delete af; +#endif } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void RunAction::cleanHisto() { -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE tree->commit(); // Writing the histograms to the file tree->close(); // and closing the tree (and the file) - - delete tree; -#endif + +// delete tree; +#endif } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/StepMax.cc b/examples/extended/electromagnetic/TestEm7/src/StepMax.cc index 0df00a3ba4..f8d27086b5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 955bb5ac18..a6af6cc0e0 100644 --- a/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc +++ b/examples/extended/electromagnetic/TestEm7/src/StepMaxMessenger.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: StepMaxMessenger.cc,v 1.1 2003/04/22 16:25:07 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: StepMaxMessenger.cc,v 1.2 2003/10/10 16:21:32 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -30,7 +30,6 @@ #include "StepMax.hh" #include "G4UIcmdWithADoubleAndUnit.hh" -#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc index f55370a08a..d98ac12c8f 100644 --- a/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm7/src/SteppingAction.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: SteppingAction.cc,v 1.1 2003/04/22 16:25:07 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SteppingAction.cc,v 1.2 2003/10/10 16:21:32 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -33,7 +33,7 @@ #include "G4VProcess.hh" #include "G4ParticleTypes.hh" -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE #include "AIDA/IHistogram1D.h" #endif @@ -55,7 +55,7 @@ void SteppingAction::UserSteppingAction(const G4Step* aStep) G4double edep = aStep->GetTotalEnergyDeposit(); if (edep <= 0.) return; -#ifndef G4NOHIST +#ifdef G4ANALYSIS_USE G4double x = aStep->GetTrack()->GetPosition().x() + runAction->GetOffsetX(); G4double binLength = runAction->GetBinLength(); runAction->GetHisto(0)->fill(x, (edep/binLength)/(MeV/mm)); diff --git a/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm7/src/SteppingVerbose.cc index 4cb924af3d..87bfa273bd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm7/src/VisManager.cc b/examples/extended/electromagnetic/TestEm7/src/VisManager.cc index c0fdaf5100..bca2538e6e 100755 --- a/examples/extended/electromagnetic/TestEm7/src/VisManager.cc +++ b/examples/extended/electromagnetic/TestEm7/src/VisManager.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: VisManager.cc,v 1.1 2003/04/22 16:25:08 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: VisManager.cc,v 1.2 2003/11/13 15:10:46 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -48,11 +48,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -105,11 +100,6 @@ void VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/electromagnetic/TestEm8/GNUmakefile b/examples/extended/electromagnetic/TestEm8/GNUmakefile index 411857b0d9..7e279a1bbb 100644 --- a/examples/extended/electromagnetic/TestEm8/GNUmakefile +++ b/examples/extended/electromagnetic/TestEm8/GNUmakefile @@ -1,11 +1,11 @@ -# $Id: GNUmakefile,v 1.4 2001/03/30 12:29:56 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2003/11/26 13:55:49 vnivanch Exp $ # -------------------------------------------------------------- # GNUmakefile for examples module. Gabriele Cosmo, 06/04/98. # -------------------------------------------------------------- name := TestEm8 G4TARGET := $(name) -G4EXLIB := true +G4EXLIB := true ifndef G4INSTALL G4INSTALL = ../../../.. @@ -14,14 +14,16 @@ endif .PHONY: all all: lib bin +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + include $(G4INSTALL)/config/architecture.gmk -G4NOHIST := true -ifdef G4NOHIST - CPPFLAGS += -DG4NOHIST -else - LDFLAGS += -L/cern/pro/lib - LOADLIBS += -lpacklib $(FCLIBS) +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 diff --git a/examples/extended/electromagnetic/TestEm8/History b/examples/extended/electromagnetic/TestEm8/History index 05ddae663f..ba4c3b95cb 100644 --- a/examples/extended/electromagnetic/TestEm8/History +++ b/examples/extended/electromagnetic/TestEm8/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2003/05/21 14:05:00 vnivanch Exp $ +$Id: History,v 1.11 2003/11/26 13:55:49 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,11 +15,25 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +26-11-03 V.Ivant (testem8-V05-02-02) +- Update for work with AIDA + +24-11-03 V.Ivant (testem8-V05-02-01) +- Remove obsolete classes +- Introduce model variant of PAI + general cleanup (V.Grichine) + +13-11-03 John Allison +- Added HepRep and removed OPACS from Vis Manager. + +27-08-03 V.Ivant (testem8-V05-02-00) +- Remove obsolete interfaces +- Substitute in the PhysicsList processes by those of 5.2 realise + 20-02-03 V.Ivant (testem8-V05-01-00) - - Fix warnings and change input parameters for updated PAI +- Fix warnings and change input parameters for updated PAI 20-02-03 V.Ivant (testem8-V05-00-00) - - Migration to cut per region +- Migration to cut per region Oct 19, 2001 Steve O'Neale (examples-V03-02-00) - Update reference output diff --git a/examples/extended/electromagnetic/TestEm8/README b/examples/extended/electromagnetic/TestEm8/README index 1dca36a12f..3f92acc111 100644 --- a/examples/extended/electromagnetic/TestEm8/README +++ b/examples/extended/electromagnetic/TestEm8/README @@ -1,4 +1,4 @@ -$Id: README,v 1.3 2001/11/27 17:06:05 gcosmo Exp $ +$Id: README,v 1.4 2003/11/24 18:09:22 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -89,33 +89,15 @@ $Id: README,v 1.3 2001/11/27 17:06:05 gcosmo Exp $ % cd TestEm8 % gmake - - execute TestEm5 in 'batch' mode from macro files e.g. + - execute TestEm8 in 'batch' mode from macro files e.g. % $(G4INSTALL)/bin/$(G4SYSTEM)/TestEm8 run11.mac - - execute TestEm5 in 'interactive' mode with visualization e.g. + - execute TestEm8 in 'interactive' mode with visualization e.g. % $(G4INSTALL)/bin/$(G4SYSTEM)/TestEm8 .... Idle> type your commands .... - List of the built-in histograms - ------------------------------- - 1. number of (tracking) steps/event - 2. energy deposit distribution in the absorber (in MeV) - 3. angle distribution of the primary particle at the exit - of the absorber (deg) - 4. distribution of the lateral displacement at exit(mm) - 5. kinetic energy of the transmitted primaries (MeV) - 6. angle distribution of the backscattered primaries (deg) - 7. kinetic energy of the backscattered primary particles (MeV) - 8. kinetic energy of the charged secondary particles (MeV) - 9. z distribution of the secondary charged vertices (mm) - 10. kinetic energy of the photons escaping the absorber (MeV) - - Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile. - Currently, histograms in this example are implemented through the obsolete - CLHEP/Hist package, which is no longer supported. The implementation will - be replaced by direct call to the AIDA abstract interfaces in a near future. diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.cc b/examples/extended/electromagnetic/TestEm8/TestEm8.cc index d68f2aa77f..467114ed80 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.cc +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: TestEm8.cc,v 1.2 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: TestEm8.cc,v 1.4 2003/11/24 17:52:44 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -44,7 +44,7 @@ #endif #include "Em8DetectorConstruction.hh" -#include "Em8PhysicsList.hh" +#include "PhysicsList.hh" #include "Em8PrimaryGeneratorAction.hh" #include "Em8RunAction.hh" #include "Em8EventAction.hh" @@ -71,7 +71,7 @@ int main(int argc,char** argv) Em8DetectorConstruction* detector; detector = new Em8DetectorConstruction; runManager->SetUserInitialization(detector); - runManager->SetUserInitialization(new Em8PhysicsList(detector)); + runManager->SetUserInitialization(new PhysicsList); #ifdef G4VIS_USE @@ -99,9 +99,9 @@ int main(int argc,char** argv) runAction); runManager->SetUserAction(steppingAction); - //Initialize G4 kernel, physics tables ... + //Initialize G4 kernel, physics tables may be here ???... - runManager->Initialize(); + // runManager->Initialize(); // get the pointer to the User Interface manager diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.in b/examples/extended/electromagnetic/TestEm8/TestEm8.in index 30826e246e..6805210c2c 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.in +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.in @@ -4,46 +4,53 @@ # It creates the default geometry (simple absorber cylinder ) # /control/verbose 2 -# -#control/saveHistory -# /run/verbose 2 +#/tracking/verbose 2 # -/run/initialize # -#/calor/setAbsMat Xenon -# -#/calor/setAbsThick 20.0 mm -# -#/calor/setAbsRad 100.0 mm +# select EM PhysicsList # -#/calor/update +#/testem/phys/addPhysics g4v52 +# +/testem/phys/addPhysics standard +# +#/testem/phys/addPhysics model +# +/testem/phys/setCuts 1 mm +#/testem/phys/VertexCuts 0.1 mm +#/testem/phys/MuonCuts 10.0 mm +#/testem/stepMax 10 mm +# +#/process/eLoss/preciseRange true +#/process/eLoss/integral true # # hist file name # -#/plots/sethistName g4.p11 +/plots/sethistName g4.p11 # # PLOT: energy deposit distribution in absorber # -#/plots/setnbinEn 95 -#/plots/setEnlow 0.0 MeV -#/plots/setEnhigh 0.1 MeV +/plots/setnbinEn 20 +/plots/setEnlow 0.0 MeV +/plots/setEnhigh 0.060 MeV # -#/calor/cutG 3.0 mm -# -#/calor/cutE 3.0 mm # /run/initialize -#/run/dumpCouples +/run/particle/dumpCutValues # -/gun/particle e- +#/gun/particle e- +# +/gun/particle proton +# +#/gun/particle mu- # -#/gun/energy 200.00 GeV +/gun/energy 200000.00 MeV # -/gun/energy 9000.0 MeV +#/gun/energy 200.0 MeV # -/tracking/verbose 0 +#/tracking/verbose 1 # +/event/printModulo 100 /run/beamOn 1000 # # diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.large_N.in b/examples/extended/electromagnetic/TestEm8/TestEm8.large_N.in index 619eb04e74..afb133d940 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.large_N.in +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.large_N.in @@ -1,49 +1,56 @@ # -# Macro file 'run11.mac' for the initialization phase of "TestEm8.cc" +# Macro file for the initialization phase of "TestEm8.cc" # # It creates the default geometry (simple absorber cylinder ) # /control/verbose 2 -# -#control/saveHistory -# /run/verbose 2 +#/tracking/verbose 2 # -/run/initialize # -#/calor/setAbsMat Xenon -# -#/calor/setAbsThick 20.0 mm -# -#/calor/setAbsRad 100.0 mm +# select EM PhysicsList # -#/calor/update +#/testem/phys/addPhysics g4v52 +# +/testem/phys/addPhysics standard +# +#/testem/phys/addPhysics model +# +/testem/phys/setCuts 1 mm +#/testem/phys/VertexCuts 0.1 mm +#/testem/phys/MuonCuts 10.0 mm +#/testem/stepMax 10 mm +# +#/process/eLoss/preciseRange true +#/process/eLoss/integral true # # hist file name # -#/plots/sethistName g4.p11 +/plots/sethistName g4.p11 # # PLOT: energy deposit distribution in absorber # -#/plots/setnbinEn 95 -#/plots/setEnlow 0.0 MeV -#/plots/setEnhigh 0.1 MeV +/plots/setnbinEn 20 +/plots/setEnlow 0.0 MeV +/plots/setEnhigh 0.060 MeV # -#/calor/cutG 3.0 mm -# -#/calor/cutE 3.0 mm # /run/initialize /run/particle/dumpCutValues # -/gun/particle e- +#/gun/particle e- +# +/gun/particle proton +# +#/gun/particle mu- # -#/gun/energy 200.00 GeV +/gun/energy 200000.00 MeV # -/gun/energy 9000.0 MeV +#/gun/energy 200.0 MeV # -#/tracking/verbose 2 +#/tracking/verbose 1 # +/event/printModulo 1000 /run/beamOn 10000 # # diff --git a/examples/extended/electromagnetic/TestEm8/TestEm8.out b/examples/extended/electromagnetic/TestEm8/TestEm8.out index d79ce2f9cf..7d9ab20976 100644 --- a/examples/extended/electromagnetic/TestEm8/TestEm8.out +++ b/examples/extended/electromagnetic/TestEm8/TestEm8.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -13,23 +13,50 @@ Current available graphics systems are: DAWNFILE (DAWNFILE) GAGTree (GAGTree) G4HepRepFile (HepRepFile) + G4HepRep (HepRepXML) RayTracer (RayTracer) VRML1FILE (VRML1FILE) VRML2FILE (VRML2FILE) +/run/verbose 2 +#/tracking/verbose 2 +# +# +# select EM PhysicsList +# +#/testem/phys/addPhysics g4v52 +# +/testem/phys/addPhysics standard +PhysicsList::AddPhysicsList: +# +#/testem/phys/addPhysics model +# +/testem/phys/setCuts 1 mm +#/testem/phys/VertexCuts 0.1 mm +#/testem/phys/MuonCuts 10.0 mm +#/testem/stepMax 10 mm +# +#/process/eLoss/preciseRange true +#/process/eLoss/integral true +# +# hist file name +# +/plots/sethistName g4.p11 + hist file = g4.p11 +# +# PLOT: energy deposit distribution in absorber +# +/plots/setnbinEn 20 + Nb of bins in Edep plot = 20 +/plots/setEnlow 0.0 MeV + Elow in the Edep plot = 0 +/plots/setEnhigh 0.060 MeV + Ehigh in the Edep plot = 0.06 +# +# +/run/initialize +userDetector->Construct() start. -***** Table : Nb of materials = 12 ***** - - 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: Mylar 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: Polypropelene 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 % - ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 85.60 % Abundance 33.33 % +***** Table : Nb of materials = 7 ***** Material: Kr density: 3.700 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 30.736 m ---> Element: Kr Z = 36.0 N = 83.8 A = 83.80 g/mole fractionMass: 100.00 % Abundance 100.00 % @@ -48,18 +75,10 @@ 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: Xenon density: 5.858 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.478 m - ---> Element: Xenon Z = 54.0 N = 131.3 A = 131.29 g/mole fractionMass: 100.00 % Abundance 100.00 % - Material: CO2 density: 1.977 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 183.083 m ---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 % ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 % - Material: 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: 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 % @@ -71,53 +90,28 @@ Current available graphics systems are: 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. -zRad = 153.85 mm -radThick = 345.24 mm +World is registered to the default region. +physicsList->Construct() start. +physicsList->Construct() start. phot: Total cross sections from Sandia parametrisation. -Em8PhysicsList::SetCuts:CutLength : 1 mm - -total time(SetCuts)=0 s +physicsList->setCut() start. +PhysicsList::SetCuts:CutLength : 1 mm +/run/particle/dumpCutValues # -#control/saveHistory +#/gun/particle e- # -/run/verbose 2 +/gun/particle proton # -/run/initialize -# -#/calor/setAbsMat Xenon -# -#/calor/setAbsThick 20.0 mm +#/gun/particle mu- # -#/calor/setAbsRad 100.0 mm +/gun/energy 200000.00 MeV # -#/calor/update +#/gun/energy 200.0 MeV # -# hist file name -# -#/plots/sethistName g4.p11 -# -# PLOT: energy deposit distribution in absorber -# -#/plots/setnbinEn 95 -#/plots/setEnlow 0.0 MeV -#/plots/setEnhigh 0.1 MeV -# -#/calor/cutG 3.0 mm -# -#/calor/cutE 3.0 mm -# -/run/initialize -#/run/dumpCouples -# -/gun/particle e- -# -#/gun/energy 200.00 GeV -# -/gun/energy 9000.0 MeV -# -/tracking/verbose 0 +#/tracking/verbose 1 # +/event/printModulo 100 /run/beamOn 1000 compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. @@ -127,164 +121,216 @@ compt: Total cross sections from a parametrisation. Good description from 10 Ke 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. -PAI mat name = Kr20CO2 -PAI mat index = 11 -PAI matcuts name = Kr20CO2 -PAI matcuts index = 2 +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 +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV -PAI DeltaCutInKineticEnergyNow = 34.9467 keV +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -e-: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eBrem: 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. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. -PAI mat name = Kr20CO2 -PAI mat index = 11 +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -PAI matcuts name = Kr20CO2 -PAI matcuts index = 2 +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. -PAI DeltaCutInKineticEnergyNow = 34.9467 keV +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. -proton: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +msc: 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 +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. -PAI mat name = Kr20CO2 -PAI mat index = 11 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -PAI matcuts name = Kr20CO2 -PAI matcuts index = 2 +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 +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV -PAI DeltaCutInKineticEnergyNow = 34.9467 keV -PAI mat name = Kr20CO2 -PAI mat index = 11 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -PAI matcuts name = Kr20CO2 -PAI matcuts index = 2 +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 -PAI DeltaCutInKineticEnergyNow = 34.9467 keV -PAI mat name = Kr20CO2 -PAI mat index = 11 +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 +PAIModel DeltaCutInKineticEnergyNow = 66.6945 keV +### All dEdx and Range tables are built ##### -PAI matcuts name = Kr20CO2 -PAI matcuts index = 2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -PAI DeltaCutInKineticEnergyNow = 34.9467 keV +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 -mu+: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +Region DefaultRegionForTheWorld + Materials : Air + Production cuts : gamma 1 mm e- 1 mm e+ 1 mm -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +Region VertexDetector + Materials : Kr20CO2 + Production cuts : gamma 3 cm e- 3 cm e+ 3 cm -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +========= Table of registered couples ============================== -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. -PAI mat name = Kr20CO2 -PAI mat index = 11 +Index : 0 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 : + DefaultRegionForTheWorld -PAI matcuts name = Kr20CO2 -PAI matcuts index = 2 +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Kr20CO2 + Range cuts : gamma 3 cm e- 3 cm e+ 3 cm + Energy thresholds : gamma 2.56669 keV e- 66.6945 keV e+ 65.4742 keV + Region(s) which use this couple : + VertexDetector -PAI DeltaCutInKineticEnergyNow = 34.9467 keV -PAI mat name = Kr20CO2 -PAI mat index = 11 +==================================================================== -PAI matcuts name = Kr20CO2 -PAI matcuts index = 2 - -PAI DeltaCutInKineticEnergyNow = 34.9467 keV -PAI mat name = Kr20CO2 -PAI mat index = 11 - -PAI matcuts name = Kr20CO2 -PAI matcuts index = 2 - -PAI DeltaCutInKineticEnergyNow = 34.9467 keV -### Run 0 start. - ---------- Ranecu engine status --------- - Initial seed (index) = 0 - Current couple of seeds = 9876, 54321 ----------------------------------------- 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. - Voxelisation: top CPU users: - Percent Total CPU System CPU Memory Volume - ------- ---------- ---------- -------- ---------- - 0.00 0.00 0.00 0k World - - Voxelisation: top memory users: - Percent Memory Heads Nodes Pointers Total CPU Volume - ------- -------- ------ ------ -------- ---------- ---------- - 100.00 0k 3 7 20 0.00 World +--------- Ranecu engine status --------- + Initial seed (index) = 0 + Current couple of seeds = 1564919237, 736159499 +---------------------------------------- Start Run processing. ---> Begin of Event: 0 + +---> Begin of Event: 100 + +---> Begin of Event: 200 + +---> Begin of Event: 300 + +---> Begin of Event: 400 + +---> Begin of Event: 500 + +---> Begin of Event: 600 + +---> Begin of Event: 700 + +---> Begin of Event: 800 + +---> Begin of Event: 900 Run terminated. Run Summary Number of events processed : 1000 - User=2.06s Real=2.09s Sys=0s + User=16s Real=16s Sys=0.27s ================== run summary ===================== end of Run TotNbofEvents = 1000 - mean charged track length in absorber=40.2593 +- 0.20516 mm + mean charged track length in absorber=40.4937 +- 0.148843 mm - mean energy deposit in absorber=0.0230573 +- 0.000247919 MeV + mean energy deposit in absorber=0.0770138 +- 0.0441136 MeV - mean number of steps in absorber (charged) =1.025 +- 0.00586302 - mean number of steps in absorber (neutral) =0.045 +- 0.00670634 + mean number of steps in absorber (charged) =13.047 +- 4.51311 + mean number of steps in absorber (neutral) =0 +- 0 - mean number of charged secondaries = 0.004 +- 0.001996 + mean number of charged secondaries = 6.505 +- 2.25456 - mean number of neutral secondaries = 0.02 +- 0.00442719 + mean number of neutral secondaries = 0 +- 0 - mean number of e-s =0.004 and e+s =0 + mean number of e-s =6.505 and e+s =0 -(number) transmission coeff=0.003 reflection coeff=0 +(number) transmission coeff=0.513 reflection coeff=0 + + energy deposit distribution +#entries=1000 #underflows=0 #overflows=43 + bin nb Elow entries normalized + 0 0 0 0 + 1 3 0 0 + 2 6 0 0 + 3 9 18 0.018 + 4 12 104 0.104 + 5 15 248 0.248 + 6 18 241 0.241 + 7 21 132 0.132 + 8 24 66 0.066 + 9 27 41 0.041 + 10 30 28 0.028 + 11 33 17 0.017 + 12 36 16 0.016 + 13 39 17 0.017 + 14 42 8 0.008 + 15 45 4 0.004 + 16 48 10 0.01 + 17 51 1 0.001 + 18 54 3 0.003 + 19 57 3 0.003 + + Emp = 0.015 width= 0.006 MeV --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 222064562, 772903047 + Current couple of seeds = 1618749842, 150377399 ---------------------------------------- # # Graphics systems deleted. Visualization Manager deleting... -G4 kernel has come to Quit state. -Deletion of G4 kernel class start. UserDetectorConstruction deleted. UserPhysicsList deleted. UserRunAction deleted. UserPrimaryGenerator deleted. +G4 kernel has come to Quit state. G4SDManager deleted. EventManager deleted. UImanager deleted. StateManager deleted. +RunManagerKernel is deleted. RunManager is deleting. diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorHit.hh index 187e6b629a..4d09036b0b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh b/examples/extended/electromagnetic/TestEm8/include/Em8CalorimeterSD.hh index c83484c974..44c35940c9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh index 0c1208ab66..335e2f10ba 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8DetectorConstruction.hh,v 1.4 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8DetectorConstruction.hh,v 1.5 2003/11/24 16:34:08 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -63,7 +63,7 @@ class Em8DetectorConstruction : public G4VUserDetectorConstruction void SetWorldSizeZ(G4double); void SetWorldSizeR(G4double); - void SetMagField(G4double); + // void SetMagField(G4double); G4VPhysicalVolume* Construct(); @@ -92,7 +92,6 @@ class Em8DetectorConstruction : public G4VUserDetectorConstruction private: G4bool worldchanged; - G4Material* AbsorberMaterial; G4double AbsorberThickness; G4double AbsorberRadius; @@ -127,7 +126,6 @@ class Em8DetectorConstruction : public G4VUserDetectorConstruction G4LogicalVolume* fLogicRadRing; // pointer to the logical R-slide G4VPhysicalVolume* fPhysicRadRing; // pointer to the physical R-slide - G4Material* fRadiatorMat; //pointer to the TR radiator material G4double fRadThickness ; G4double fGasGap ; @@ -143,9 +141,12 @@ class Em8DetectorConstruction : public G4VUserDetectorConstruction G4int fModuleNumber ; // the number of Rad-Det modules + G4Material* AbsorberMaterial; G4Tubs* solidAbsorber; //pointer to the solid Absorber G4LogicalVolume* logicAbsorber; //pointer to the logical Absorber G4VPhysicalVolume* physiAbsorber; //pointer to the physical Absorber + + G4Material* fRadiatorMat; //pointer to the TR radiator material G4UniformMagField* magField; //pointer to the magnetic field diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8DetectorMessenger.hh index 7340a3d8f0..efa321b37e 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.3 2001/07/11 09:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventAction.hh index 7e27c64b61..41d9ec06f2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8EventActionMessenger.hh index 851f7ff681..fc249024d3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh deleted file mode 100644 index affb9d5826..0000000000 --- a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsList.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: Em8PhysicsList.hh,v 1.4 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// - -#ifndef Em8PhysicsList_h -#define Em8PhysicsList_h 1 - -#include "G4VUserPhysicsList.hh" -#include "globals.hh" - -class G4PhotoElectricEffect; -class G4ComptonScattering; -class G4GammaConversion; - -class G4MultipleScattering; - -class G4PAIonisation ; -class G4ForwardXrayTR ; -class G4eIonisation; -class G4eBremsstrahlung; -class G4eplusAnnihilation; - -class G4MuIonisation; -class G4MuBremsstrahlung; -class G4MuPairProduction; - -class G4hIonisation; -class G4hIonisationPlus; - -class Em8StepCut; - -class Em8DetectorConstruction; -class Em8PhysicsListMessenger; - - -class Em8PhysicsList: public G4VUserPhysicsList -{ - public: - Em8PhysicsList( Em8DetectorConstruction*); - ~Em8PhysicsList(); - - protected: - // Construct particle and physics - void ConstructParticle(); - void ConstructProcess(); - - void SetCuts(); - - protected: - // these methods Construct particles - void ConstructBosons(); - void ConstructLeptons(); - void ConstructMesons(); - void ConstructBarions(); - - protected: - - // these methods Construct physics processes and register them - - void AddParameterisation(); - void ConstructGeneral(); - void ConstructEM(); - - public: - - void SetGammaCut(G4double); - void SetElectronCut(G4double); - void SetProtonCut(G4double); - void SetCutsByEnergy(G4double); - void GetRange(G4double); - - void SetMaxStep(G4double); - - public: - - G4double MaxChargedStep; - - private: - - G4PhotoElectricEffect* thePhotoElectricEffect; - G4ComptonScattering* theComptonScattering; - G4GammaConversion* theGammaConversion; - - G4MultipleScattering* theeminusMultipleScattering; - G4eIonisation* theeminusIonisation; - G4eBremsstrahlung* theeminusBremsstrahlung; - - G4PAIonisation* fPAIonisation ; - G4ForwardXrayTR* fForwardXrayTR ; - - G4MultipleScattering* theeplusMultipleScattering; - G4eIonisation* theeplusIonisation; - G4eBremsstrahlung* theeplusBremsstrahlung; - G4eplusAnnihilation* theeplusAnnihilation; - - Em8StepCut* theeminusStepCut ; - Em8StepCut* theeplusStepCut ; - - G4double cutForGamma; - G4double cutForElectron; - G4double cutForProton; - - Em8DetectorConstruction* pDet; - Em8PhysicsListMessenger* physicsListMessenger; -}; - -#endif - - - diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh deleted file mode 100644 index 536585ac50..0000000000 --- a/examples/extended/electromagnetic/TestEm8/include/Em8PhysicsListMessenger.hh +++ /dev/null @@ -1,66 +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: Em8PhysicsListMessenger.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#ifndef Em8PhysicsListMessenger_h -#define Em8PhysicsListMessenger_h 1 - -#include "globals.hh" -#include "G4UImessenger.hh" - -class Em8PhysicsList; -class G4UIcmdWithoutParameter; -class G4UIcmdWithADouble; -class G4UIcmdWithADoubleAndUnit; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em8PhysicsListMessenger: public G4UImessenger -{ - public: - Em8PhysicsListMessenger(Em8PhysicsList*); - ~Em8PhysicsListMessenger(); - - void SetNewValue(G4UIcommand*, G4String); - - private: - Em8PhysicsList* Em8List; - - G4UIcmdWithADoubleAndUnit* setMaxStepCmd; - - G4UIcmdWithADoubleAndUnit* cutGCmd; - G4UIcmdWithADoubleAndUnit* cutECmd; - G4UIcmdWithADoubleAndUnit* cutPCmd; - G4UIcmdWithADoubleAndUnit* rCmd; - G4UIcmdWithADoubleAndUnit* eCmd; - -}; - -#endif - diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorAction.hh index f8a05c9741..8a8061602e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8PrimaryGeneratorMessenger.hh index 213ddcdae7..72c60c6488 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh index 8dffc6d529..5db4de5b39 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8RunAction.hh,v 1.5 2003/06/16 16:47:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8RunAction.hh,v 1.7 2003/11/26 13:55:49 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,11 +41,6 @@ class Em8RunMessenger; class G4Run; -#ifndef G4NOHIST - class HepTupleManager; - class HepHistogram; -#endif - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... class Em8RunAction : public G4UserRunAction @@ -124,19 +119,10 @@ class Em8RunAction : public G4UserRunAction void SetRndmFreq(G4int val) {saveRndm = val;} G4int GetRndmFreq() {return saveRndm;} - private: - - void bookHisto(); - private: G4String histName ; -#ifndef G4NOHIST - HepTupleManager* hbookManager; - HepHistogram *histo1, *histo2, *histo3, *histo4, *histo5 ; - HepHistogram *histo6, *histo7, *histo8, *histo9, *histo10; -#endif G4double EnergySumAbs,EnergySquareSumAbs; G4double tlSumAbs,tlsquareSumAbs; diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/Em8RunMessenger.hh index c6be2f8313..c075583bad 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh b/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh deleted file mode 100644 index 777b4b9717..0000000000 --- a/examples/extended/electromagnetic/TestEm8/include/Em8StepCut.hh +++ /dev/null @@ -1,125 +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: Em8StepCut.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -#ifndef Em8StepCut_h -#define Em8StepCut_h 1 - -#include "G4ios.hh" -#include "globals.hh" -#include "G4VDiscreteProcess.hh" -#include "G4Step.hh" - -class Em8StepCut : public G4VDiscreteProcess -{ - public: - - Em8StepCut(const G4String& processName ="UserStepCut" ); - Em8StepCut(Em8StepCut &); - - ~Em8StepCut(); - - G4double PostStepGetPhysicalInteractionLength( - const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition - ); - - G4VParticleChange* PostStepDoIt( - const G4Track& , - const G4Step& - ); - - void SetMaxStep(G4double); - - protected: - - // it is not needed here ! - G4double GetMeanFreePath(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition - ); - - - private: - - // hide assignment operator as private - Em8StepCut & operator=(const Em8StepCut &right); - - private: - - G4double MaxChargedStep ; -}; - -// inlined function members implementation - -#include "G4Step.hh" -#include "G4Track.hh" -#include "G4UserLimits.hh" -#include "G4VParticleChange.hh" -#include "G4EnergyLossTables.hh" - -inline G4double Em8StepCut::PostStepGetPhysicalInteractionLength( - const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition - ) -{ - // condition is set to "Not Forced" - *condition = NotForced; - - G4double ProposedStep = DBL_MAX; - - if((MaxChargedStep > 0.) && - (aTrack.GetVolume() != NULL) && - (aTrack.GetVolume()->GetName() == "Absorber") && - (aTrack.GetDynamicParticle()->GetDefinition()->GetPDGCharge() != 0.)) - ProposedStep = MaxChargedStep ; - - return ProposedStep; -} - -inline G4VParticleChange* Em8StepCut::PostStepDoIt( - const G4Track& aTrack, - const G4Step& - ) -{ - // do nothing - aParticleChange.Initialize(aTrack); - return &aParticleChange; -} - -inline G4double Em8StepCut::GetMeanFreePath(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition - ) -{ - return 0.; -} - -#endif - diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh index 5b9a04cad5..77fd91b5ee 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8SteppingAction.hh,v 1.3 2001/07/11 09:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8SteppingAction.hh,v 1.4 2003/11/24 17:52:47 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -58,7 +58,6 @@ class Em8SteppingAction : public G4UserSteppingAction Em8DetectorConstruction* detector; Em8EventAction* eventaction; Em8RunAction* runaction; - Em8SteppingMessenger* steppingMessenger; G4int IDnow,IDold; G4int evnoold ; diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm8/include/Em8SteppingVerbose.hh index a60cc14cc4..a7d575092b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh b/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh index a4b10ea617..1c68f41f15 100644 --- a/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh +++ b/examples/extended/electromagnetic/TestEm8/include/Em8VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Em8VisManager.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/IonC12.hh b/examples/extended/electromagnetic/TestEm8/include/IonC12.hh new file mode 100755 index 0000000000..4bb1842d69 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/include/IonC12.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: IonC12.hh,v 1.1 2003/10/27 15:29:45 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// Each class inheriting from G4VIon +// corresponds to a particle type; one and only one +// instance for each class is guaranteed. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef IonC12_h +#define IonC12_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include "G4VIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... + +class IonC12 : public G4VIon +{ + private: + static IonC12 theIon; + + public: + IonC12( + 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 ~IonC12(); + + static IonC12* IonDefinition(); + static IonC12* Ion(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... + +#endif diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmG4v52.hh new file mode 100644 index 0000000000..3e1616a2b6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/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 2003/11/24 17:53:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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/TestEm7/include/PhysListEmModel.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh old mode 100644 new mode 100755 similarity index 95% rename from examples/extended/electromagnetic/TestEm7/include/PhysListEmModel.hh rename to examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh index ad38ecd679..f1ecbe224b --- a/examples/extended/electromagnetic/TestEm7/include/PhysListEmModel.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: PhysListEmModel.hh,v 1.1 2003/04/22 16:25:04 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmModel.hh,v 1.1 2003/10/27 15:24:08 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysListEmModel.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelP.hh old mode 100644 new mode 100755 similarity index 87% rename from examples/extended/electromagnetic/TestEm5/include/Em5PhysListEmModel.hh rename to examples/extended/electromagnetic/TestEm8/include/PhysListEmModelP.hh index 3089d41a56..16eba50fc9 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysListEmModel.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmModelP.hh @@ -21,25 +21,25 @@ // ******************************************************************** // // -// $Id: Em5PhysListEmModel.hh,v 1.1 2003/04/30 14:12:33 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmModelP.hh,v 1.1 2003/10/27 15:24:08 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5PhysListEmModel_h -#define Em5PhysListEmModel_h 1 +#ifndef PhysListEmModelP_h +#define PhysListEmModelP_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5PhysListEmModel : public G4VPhysicsConstructor +class PhysListEmModelP : public G4VPhysicsConstructor { public: - Em5PhysListEmModel(const G4String& name = "model"); - virtual ~Em5PhysListEmModel(); + PhysListEmModelP(const G4String& name = "model"); + virtual ~PhysListEmModelP(); public: // This method is dummy for physics. diff --git a/examples/extended/electromagnetic/TestEm1/include/Em1PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh old mode 100644 new mode 100755 similarity index 87% rename from examples/extended/electromagnetic/TestEm1/include/Em1PhysListEmStandard.hh rename to examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh index db85c510fa..75b4519e73 --- a/examples/extended/electromagnetic/TestEm1/include/Em1PhysListEmStandard.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListEmStandard.hh @@ -21,25 +21,25 @@ // ******************************************************************** // // -// $Id: Em1PhysListEmStandard.hh,v 1.1 2003/03/27 11:16:18 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmStandard.hh,v 1.1 2003/10/27 15:24:08 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em1PhysListEmStandard_h -#define Em1PhysListEmStandard_h 1 +#ifndef PhysListEmStandard_h +#define PhysListEmStandard_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em1PhysListEmStandard : public G4VPhysicsConstructor +class PhysListEmStandard : public G4VPhysicsConstructor { public: - Em1PhysListEmStandard(const G4String& name = "standard"); - virtual ~Em1PhysListEmStandard(); + PhysListEmStandard(const G4String& name = "standard"); + virtual ~PhysListEmStandard(); public: // This method is dummy for physics diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh old mode 100644 new mode 100755 similarity index 87% rename from examples/extended/electromagnetic/TestEm5/include/Em5PhysListGeneral.hh rename to examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh index 4f68d57920..c5a7d8558d --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysListGeneral.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListGeneral.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: Em5PhysListGeneral.hh,v 1.1 2003/04/30 14:12:33 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListGeneral.hh,v 1.1 2003/10/27 15:24:08 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5PhysListGeneral_h -#define Em5PhysListGeneral_h 1 +#ifndef PhysListGeneral_h +#define PhysListGeneral_h 1 #include "G4VPhysicsConstructor.hh" #include "G4Decay.hh" @@ -36,11 +36,11 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5PhysListGeneral : public G4VPhysicsConstructor +class PhysListGeneral : public G4VPhysicsConstructor { public: - Em5PhysListGeneral(const G4String& name = "general"); - virtual ~Em5PhysListGeneral(); + PhysListGeneral(const G4String& name = "general"); + virtual ~PhysListGeneral(); public: // This method is dummy for physics diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5PhysListParticles.hh b/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh old mode 100644 new mode 100755 similarity index 86% rename from examples/extended/electromagnetic/TestEm5/include/Em5PhysListParticles.hh rename to examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh index c9268ac562..2c62353069 --- a/examples/extended/electromagnetic/TestEm5/include/Em5PhysListParticles.hh +++ b/examples/extended/electromagnetic/TestEm8/include/PhysListParticles.hh @@ -21,26 +21,26 @@ // ******************************************************************** // // -// $Id: Em5PhysListParticles.hh,v 1.1 2003/04/30 14:12:34 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.hh,v 1.1 2003/10/27 15:24:09 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5PhysListParticles_h -#define Em5PhysListParticles_h 1 +#ifndef PhysListParticles_h +#define PhysListParticles_h 1 #include "G4VPhysicsConstructor.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5PhysListParticles : public G4VPhysicsConstructor +class PhysListParticles : public G4VPhysicsConstructor { public: - Em5PhysListParticles(const G4String& name = "particles"); - virtual ~Em5PhysListParticles(); + PhysListParticles(const G4String& name = "particles"); + virtual ~PhysListParticles(); public: // This method will be invoked in the Construct() method. diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh new file mode 100755 index 0000000000..a48af3d21c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/include/PhysicsList.hh @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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 2003/10/27 15:24:09 grichine Exp $ +// GEANT4 tag $Name: geant4-06-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 G4VPhysicsConstructor; +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; + + G4VPhysicsConstructor* emPhysicsList; + G4VPhysicsConstructor* generalPhysicsList; + G4VPhysicsConstructor* particleList; + std::vector hadronPhys; + G4String emName; + + StepMax* stepMaxProcess; + + PhysicsListMessenger* pMessenger; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.hh new file mode 100755 index 0000000000..d0a9cbe8ab --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/include/PhysicsListMessenger.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: PhysicsListMessenger.hh,v 1.1 2003/10/27 15:24:09 grichine Exp $ +// GEANT4 tag $Name: geant4-06-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 G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsListMessenger: public G4UImessenger +{ + public: + + PhysicsListMessenger(PhysicsList* ); + ~PhysicsListMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + + private: + + PhysicsList* pPhysicsList; + + G4UIcmdWithADoubleAndUnit* gammaCutCmd; + G4UIcmdWithADoubleAndUnit* electCutCmd; + G4UIcmdWithADoubleAndUnit* protoCutCmd; + G4UIcmdWithADoubleAndUnit* allCutCmd; + G4UIcmdWithAString* pListCmd; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh b/examples/extended/electromagnetic/TestEm8/include/StepMax.hh old mode 100644 new mode 100755 similarity index 65% rename from examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh rename to examples/extended/electromagnetic/TestEm8/include/StepMax.hh index 83f9e11463..e9050acd2d --- a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingAction.hh +++ b/examples/extended/electromagnetic/TestEm8/include/StepMax.hh @@ -20,56 +20,55 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: StepMax.hh,v 1.1 2003/10/27 15:29:45 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: Em5SteppingAction.hh,v 1.6 2003/04/30 14:12:35 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5SteppingAction_h -#define Em5SteppingAction_h 1 +#ifndef StepMax_h +#define StepMax_h 1 -#include "G4UserSteppingAction.hh" -#include "G4Event.hh" -#include "G4EventManager.hh" -#include "G4ios.hh" #include "globals.hh" +#include "G4VDiscreteProcess.hh" +#include "G4ParticleDefinition.hh" +#include "G4Step.hh" -class Em5DetectorConstruction; -class Em5RunAction; -class Em5EventAction; -class Em5SteppingMessenger; +class StepMaxMessenger; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef G4NOHIST - class HepTupleManager; - class HepHistogram; -#endif - -class Em5SteppingAction : public G4UserSteppingAction +class StepMax : public G4VDiscreteProcess { public: - Em5SteppingAction(Em5DetectorConstruction*, Em5EventAction*, - Em5RunAction* ); - ~Em5SteppingAction(); - void UserSteppingAction(const G4Step*); + 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 0.;}; // it is not needed here ! private: - Em5DetectorConstruction* detector; - Em5EventAction* eventaction; - Em5RunAction* runaction; - Em5SteppingMessenger* steppingMessenger; - G4int IDnow,IDold; - G4int evnoold ; + G4double MaxChargedStep; + G4double ProposedStep; + StepMaxMessenger* pMess; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh old mode 100644 new mode 100755 similarity index 86% rename from examples/extended/electromagnetic/TestEm5/include/Em5StepMaxMessenger.hh rename to examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh index 5e1012fc49..37cd1bf4a7 --- a/examples/extended/electromagnetic/TestEm5/include/Em5StepMaxMessenger.hh +++ b/examples/extended/electromagnetic/TestEm8/include/StepMaxMessenger.hh @@ -20,33 +20,33 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: Em5StepMaxMessenger.hh,v 1.1 2003/04/30 14:14:24 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: StepMaxMessenger.hh,v 1.1 2003/10/27 15:29:45 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em5StepMaxMessenger_h -#define Em5StepMaxMessenger_h 1 +#ifndef StepMaxMessenger_h +#define StepMaxMessenger_h 1 #include "globals.hh" #include "G4UImessenger.hh" -class Em5StepMax; +class StepMax; class G4UIcmdWithADoubleAndUnit; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em5StepMaxMessenger: public G4UImessenger +class StepMaxMessenger: public G4UImessenger { public: - Em5StepMaxMessenger(Em5StepMax*); - ~Em5StepMaxMessenger(); + StepMaxMessenger(StepMax*); + ~StepMaxMessenger(); void SetNewValue(G4UIcommand*, G4String); private: - Em5StepMax* pStepMax; + StepMax* stepMax; G4UIcmdWithADoubleAndUnit* StepMaxCmd; }; diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh b/examples/extended/electromagnetic/TestEm8/include/TRTDetectorConstruction.hh index c7d5d7618d..4d4d2efd70 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh b/examples/extended/electromagnetic/TestEm8/include/TRTMaterials.hh index 2ab660b759..eef735c2ff 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/run11.mac b/examples/extended/electromagnetic/TestEm8/run11.mac index 97fdb19a5e..6805210c2c 100644 --- a/examples/extended/electromagnetic/TestEm8/run11.mac +++ b/examples/extended/electromagnetic/TestEm8/run11.mac @@ -4,20 +4,25 @@ # It creates the default geometry (simple absorber cylinder ) # /control/verbose 2 -# -#control/saveHistory -# /run/verbose 2 +#/tracking/verbose 2 # -/run/initialize # -#/calor/setAbsMat Xenon -# -#/calor/setAbsThick 20.0 mm -# -#/calor/setAbsRad 100.0 mm +# select EM PhysicsList # -#/calor/update +#/testem/phys/addPhysics g4v52 +# +/testem/phys/addPhysics standard +# +#/testem/phys/addPhysics model +# +/testem/phys/setCuts 1 mm +#/testem/phys/VertexCuts 0.1 mm +#/testem/phys/MuonCuts 10.0 mm +#/testem/stepMax 10 mm +# +#/process/eLoss/preciseRange true +#/process/eLoss/integral true # # hist file name # @@ -25,25 +30,27 @@ # # PLOT: energy deposit distribution in absorber # -/plots/setnbinEn 95 +/plots/setnbinEn 20 /plots/setEnlow 0.0 MeV -/plots/setEnhigh 0.1 MeV +/plots/setEnhigh 0.060 MeV # -#/calor/cutG 3.0 mm -# -#/calor/cutE 3.0 mm # /run/initialize /run/particle/dumpCutValues # -/gun/particle e- +#/gun/particle e- +# +/gun/particle proton +# +#/gun/particle mu- # -#/gun/energy 200.00 GeV +/gun/energy 200000.00 MeV # -/gun/energy 9000.0 MeV +#/gun/energy 200.0 MeV # -#/tracking/verbose 2 +#/tracking/verbose 1 # +/event/printModulo 100 /run/beamOn 1000 # # diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc index b747a7d42f..05e7d91108 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8CalorHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8CalorHit.cc,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8CalorHit.cc,v 1.4 2003/11/24 17:52:47 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -35,7 +35,7 @@ G4Allocator Em8CalorHitAllocator; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -Em8CalorHit::Em8CalorHit() +Em8CalorHit::Em8CalorHit():G4VHit() { EdepAbs = 0.; TrackLengthAbs = 0.; EdepGap = 0.; TrackLengthGap = 0.; @@ -44,11 +44,11 @@ Em8CalorHit::Em8CalorHit() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... Em8CalorHit::~Em8CalorHit() -{;} +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -Em8CalorHit::Em8CalorHit(const Em8CalorHit& right) +Em8CalorHit::Em8CalorHit(const Em8CalorHit& right):G4VHit(right) { EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; @@ -58,8 +58,10 @@ Em8CalorHit::Em8CalorHit(const Em8CalorHit& right) const Em8CalorHit& Em8CalorHit::operator=(const Em8CalorHit& right) { - EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; - EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; + if(this != &right) { + EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; + EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; + } return *this; } @@ -67,7 +69,7 @@ const Em8CalorHit& Em8CalorHit::operator=(const Em8CalorHit& right) int Em8CalorHit::operator==(const Em8CalorHit& right) const { - return 0; + return ((Em8CalorHit *)this == (Em8CalorHit *) &right); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc b/examples/extended/electromagnetic/TestEm8/src/Em8CalorimeterSD.cc index e8b5591b0e..4ee4d6a110 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.4 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc index b9ca6180a0..4580301373 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8DetectorConstruction.cc,v 1.9 2003/04/17 13:05:19 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8DetectorConstruction.cc,v 1.11 2003/11/24 16:34:09 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -47,6 +47,9 @@ #include "G4SDManager.hh" #include "G4RunManager.hh" +#include "G4Region.hh" +#include "G4RegionStore.hh" +#include "G4ProductionCuts.hh" #include "G4ios.hh" ///////////////////////////////////////////////////////////////////////////// @@ -54,20 +57,24 @@ // Em8DetectorConstruction::Em8DetectorConstruction() -:solidWorld(NULL),logicWorld(NULL),physiWorld(NULL), - solidAbsorber(NULL),logicAbsorber(NULL),physiAbsorber(NULL), - AbsorberMaterial(NULL),WorldMaterial(NULL),fRadiatorMat(NULL), - magField(NULL),calorimeterSD(NULL),worldchanged(false) +: +worldchanged(false), +WorldMaterial(NULL),solidWorld(NULL),logicWorld(NULL),physiWorld(NULL), +AbsorberMaterial(NULL),solidAbsorber(NULL),logicAbsorber(NULL), +physiAbsorber(NULL), +fRadiatorMat(NULL), + magField(NULL),calorimeterSD(NULL) { // default parameter values of the calorimeter - G4double inch = 2.54*cm ; - G4double mil = inch/1000.0 ; + // G4double inch = 2.54*cm ; + // G4double mil = inch/1000.0 ; WorldSizeZ = 80.*cm; WorldSizeR = 20.*cm; - AbsorberThickness = 40.0*mm; + AbsorberThickness = 40.0*mm; + // AbsorberThickness = 0.04*mm; AbsorberRadius = 10.*cm; zAbsorber = 36.*cm ; @@ -123,19 +130,22 @@ void Em8DetectorConstruction::DefineMaterials() G4String name, symbol ; //a=mass of a mole; G4double a, z, density ; //z=mean number of protons; -G4int iz, n, nel ; //iz=number of protons in an isotope; +// G4int iz, n; +G4int nel ; //iz=number of protons in an isotope; // n=number of nucleons in an isotope; -G4int ncomponents, natoms; -G4double abundance, fractionmass; -G4double temperature, pressure; + G4int ncomponents; + // G4int natoms; +// G4double abundance; +G4double fractionmass; +//G4double temperature, pressure; // // define Elements // - a = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen",symbol="H" , z= 1., a); +// a = 1.01*g/mole; +// G4Element* elH = new G4Element(name="Hydrogen",symbol="H" , z= 1., a); a = 12.01*g/mole; G4Element* elC = new G4Element(name="Carbon", symbol="C", z=6., a); @@ -149,11 +159,11 @@ G4double temperature, pressure; a = 39.948*g/mole; G4Element* elAr = new G4Element(name="Argon", symbol="Ar", z=18., a); - a = 131.29*g/mole; - G4Element* elXe = new G4Element(name="Xenon", symbol="Xe", z=54., a); + // a = 131.29*g/mole; + // G4Element* elXe = new G4Element(name="Xenon", symbol="Xe", z=54., a); - a = 19.00*g/mole; - G4Element* elF = new G4Element(name="Fluorine", symbol="F", z=9., a); + // a = 19.00*g/mole; + // G4Element* elF = new G4Element(name="Fluorine", symbol="F", z=9., a); // @@ -162,9 +172,6 @@ G4double temperature, pressure; /* ****************************************************************** -density = 1.848*g/cm3; -a = 9.01*g/mole; -G4Material* Be = new G4Material(name="Beryllium", z=4., a, density); density = 1.390*g/cm3; @@ -255,8 +262,18 @@ H2O->AddElement(elO, natoms=1); anotherN2->AddElement(elN, 1); anotherN2->AddElement(elN, 1); -************************ */ + // liquid hydrogen for muon cooling target + + density = 0.071*g/cm3; + a = 1.01*g/mole; + G4Material* lH2 = new G4Material(name="liquidHydrigen", z=1., a, density); + + // Beryllium + + density = 1.848*g/cm3; + a = 9.01*g/mole; + G4Material* Be = new G4Material(name="Beryllium", z=4., a, density); // Al for electrodes density = 2.700*g/cm3; @@ -277,6 +294,7 @@ H2O->AddElement(elO, natoms=1); CH2->AddElement(elH,2); CH2->AddElement(elC,1); +************************ */ // Krypton as detector gas, STP @@ -363,9 +381,9 @@ H2O->AddElement(elO, natoms=1); // Xenon as detector gas, STP - density = 5.858*mg/cm3 ; - a = 131.29*g/mole ; - G4Material* Xe = new G4Material(name="Xenon",z=54., a, density ); + // density = 5.858*mg/cm3 ; + // a = 131.29*g/mole ; + // G4Material* Xe = new G4Material(name="Xenon",z=54., a, density ); // Carbon dioxide, STP @@ -384,10 +402,11 @@ H2O->AddElement(elO, natoms=1); // 80% Xe + 20% CO2, STP - density = 5.0818*mg/cm3 ; - G4Material* Xe20CO2 = new G4Material(name="Xe20CO2" , density, ncomponents=2); - Xe20CO2->AddMaterial( Xe, fractionmass = 0.922 ) ; - Xe20CO2->AddMaterial( CarbonDioxide, fractionmass = 0.078 ) ; + // density = 5.0818*mg/cm3 ; + // G4Material* Xe20CO2 = new G4Material(name="Xe20CO2" , + // density, ncomponents=2); + // Xe20CO2->AddMaterial( Xe, fractionmass = 0.922 ) ; + // Xe20CO2->AddMaterial( CarbonDioxide, fractionmass = 0.078 ) ; // 80% Kr + 20% CO2, STP @@ -402,12 +421,12 @@ H2O->AddElement(elO, natoms=1); //default materials of the calorimeter and TR radiator - fRadiatorMat = Mylar ; // CH2 ; // Mylar ; + // fRadiatorMat = Mylar ; // CH2 ; // Mylar ; - fWindowMat = Mylar ; - fElectrodeMat = Al ; + // fWindowMat = Mylar ; + // fElectrodeMat = Al ; - AbsorberMaterial = Kr20CO2 ; // XeCO2CF4 ; + AbsorberMaterial = Kr20CO2 ; // lH2 ; // Al; // Be; // XeCO2CF4 ; fGapMat = Kr20CO2 ; WorldMaterial = Air ; @@ -415,12 +434,12 @@ H2O->AddElement(elO, natoms=1); ///////////////////////////////////////////////////////////////////////// // -// +// G4VPhysicalVolume* Em8DetectorConstruction::ConstructCalorimeter() { - G4int i, j ; - G4double zModule, zRadiator, rModule, rRadiator ; + // G4int i, j ; + // G4double zModule, zRadiator, rModule, rRadiator ; // complete the Calor parameters definition and Print @@ -448,125 +467,6 @@ G4VPhysicalVolume* Em8DetectorConstruction::ConstructCalorimeter() false, //no boolean operation 0); //copy number - // TR radiator envelope - - G4double radThick = fFoilNumber*(fRadThickness + fGasGap) + fDetGap ; - - G4double zRad = fStartZ + 0.5*radThick ; - G4cout<<"zRad = "< 0.) @@ -591,7 +491,14 @@ G4VPhysicalVolume* Em8DetectorConstruction::ConstructCalorimeter() 0); } - + G4Region* regGasDet = new G4Region("VertexDetector"); + regGasDet->AddRootLogicalVolume(logicAbsorber); + G4ProductionCuts* cuts = new G4ProductionCuts(); + cuts->SetProductionCut(30.*mm,"gamma"); + cuts->SetProductionCut(30.*mm,"e-"); + cuts->SetProductionCut(30.*mm,"e+"); + regGasDet->SetProductionCuts(cuts); + // Sensitive Detectors: Absorber G4SDManager* SDman = G4SDManager::GetSDMpointer(); @@ -614,8 +521,8 @@ G4VPhysicalVolume* Em8DetectorConstruction::ConstructCalorimeter() // G4VXrayTRmodel* pTRModel = new G4RegularXrayTRmodel(logicRadiator, // fRadThickness,fGasGap); - G4double alphaPlate = 160.0 ; - G4double alphaGas = 160.0 ; + // G4double alphaPlate = 160.0 ; + // G4double alphaGas = 160.0 ; // G4VXrayTRmodel* pTRModel = new G4GamDistrXrayTRmodel(logicRadiator, // fRadThickness,alphaPlate, @@ -750,8 +657,9 @@ void Em8DetectorConstruction::SetAbsorberZpos(G4double val) // // -void Em8DetectorConstruction::SetMagField(G4double fieldValue) -{ +//void Em8DetectorConstruction::SetMagField(G4double fieldValue) +//{ + //apply a global uniform magnetic field along X axis /* ********************************************************* @@ -775,7 +683,7 @@ void Em8DetectorConstruction::SetMagField(G4double fieldValue) *************************************************************** */ -} +// } /////////////////////////////////////////////////////////////////////////////// // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc index 235bed824b..6ee8f2ca4f 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8DetectorMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8DetectorMessenger.cc,v 1.5 2003/11/24 16:34:10 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -152,7 +152,9 @@ void Em8DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { Em8Detector->UpdateGeometry(); } if( command == MagFieldCmd ) - { Em8Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue));} + { + // Em8Detector->SetMagField(MagFieldCmd->GetNewDoubleValue(newValue)); + } } diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventAction.cc index 1329233129..b20650990c 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.6 2003/06/16 16:48:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8EventAction.cc,v 1.7 2003/11/24 17:52:47 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -52,8 +52,9 @@ Em8EventAction::Em8EventAction(Em8RunAction* Em8RA) :calorimeterCollID(-1),eventMessenger(NULL), - verboselevel(0),runaction(Em8RA),drawFlag("all"),printModulo(10000) + runaction(Em8RA),drawFlag("all"),printModulo(10000) { + verboselevel = 0; eventMessenger = new Em8EventActionMessenger(this); } diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8EventActionMessenger.cc index 6fbce54f4f..1d96f35331 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc deleted file mode 100644 index 66d6430ecd..0000000000 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsList.cc +++ /dev/null @@ -1,487 +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: Em8PhysicsList.cc,v 1.8 2003/06/16 16:48:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// - -#include "G4Timer.hh" - -#include "Em8PhysicsList.hh" -#include "Em8DetectorConstruction.hh" -#include "Em8PhysicsListMessenger.hh" - -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4Material.hh" -#include "G4EnergyLossTables.hh" -#include "G4UnitsTable.hh" -#include "G4ios.hh" -#include - -#include "G4FastSimulationManagerProcess.hh" - - -///////////////////////////////////////////////////////////// -// -// - -Em8PhysicsList::Em8PhysicsList(Em8DetectorConstruction* p) -: G4VUserPhysicsList(), - MaxChargedStep(DBL_MAX), - thePhotoElectricEffect(NULL),theComptonScattering(NULL), - theGammaConversion(NULL), - theeminusMultipleScattering(NULL),theeminusIonisation(NULL), - theeminusBremsstrahlung(NULL), - theeplusMultipleScattering(NULL),theeplusIonisation(NULL), - theeplusBremsstrahlung(NULL), - theeplusAnnihilation(NULL), - theeminusStepCut(NULL),theeplusStepCut(NULL) -{ - pDet = p; - - defaultCutValue = 1.000*mm ; - - cutForGamma = defaultCutValue ; - cutForElectron = defaultCutValue ; - cutForElectron = 10*mm; - cutForProton = defaultCutValue ; - - SetVerboseLevel(1); - physicsListMessenger = new Em8PhysicsListMessenger(this); -} - -///////////////////////////////////////////////////////////////////////// -// -// - -Em8PhysicsList::~Em8PhysicsList() -{ - delete physicsListMessenger; -} - -/////////////////////////////////////////////////////////////////////////// -// -// - -void Em8PhysicsList::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(); - ConstructBarions(); -} - -//////////////////////////////////////////////////////////////////////////// -// -// - -void Em8PhysicsList::ConstructBosons() -{ - // gamma - G4Gamma::GammaDefinition(); -} - -void Em8PhysicsList::ConstructLeptons() -{ - // leptons - - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4MuonPlus::MuonPlusDefinition(); - G4MuonMinus::MuonMinusDefinition(); - - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); - G4NeutrinoMu::NeutrinoMuDefinition(); - G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); -} - -void Em8PhysicsList::ConstructMesons() -{ - // mesons - - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4PionZero::PionZeroDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); -} - - -void Em8PhysicsList::ConstructBarions() -{ -// barions - - G4Proton::ProtonDefinition(); - G4AntiProton::AntiProtonDefinition(); -} - - -/////////////////////////////////////////////////////////////////////// -// -// - -void Em8PhysicsList::ConstructProcess() -{ - AddTransportation(); - AddParameterisation(); - - ConstructEM(); - ConstructGeneral(); -} - -///////////////////////////////////////////////////////////////////////////// -// -// - -#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 "G4PAIonisation.hh" -#include "G4ForwardXrayTR.hh" - -#include "Em8StepCut.hh" - -#include "G4IonisationByLogicalVolume.hh" - -void Em8PhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - - while( (*theParticleIterator)() ) - { - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") - { - // Construct processes for gamma - - thePhotoElectricEffect = new G4PhotoElectricEffect(); - theComptonScattering = new G4ComptonScattering(); - theGammaConversion = new G4GammaConversion(); - - pmanager->AddDiscreteProcess(thePhotoElectricEffect); - pmanager->AddDiscreteProcess(theComptonScattering); - - pmanager->AddDiscreteProcess(theGammaConversion); - - } - else if (particleName == "e-") - { - // 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 Em8StepCut(); - - // pmanager->AddProcess(theeminusMultipleScattering,-1,1,1); - - // pmanager->AddProcess(theeminusIonisation,-1,2,2); - - pmanager->AddProcess(new G4IonisationByLogicalVolume(particleName, - pDet->GetLogicalAbsorber(), - "IonisationByLogVol"),-1,2,-2); - - pmanager->AddProcess(theeminusBremsstrahlung,-1,-1,3); - - // pmanager->AddProcess(fPAIonisation,-1,2,2); - - // pmanager->AddProcess(fForwardXrayTR,-1,-1,2); - - pmanager->AddProcess(theeminusStepCut,-1,-1,4); - theeminusStepCut->SetMaxStep(MaxChargedStep) ; - - } - else if (particleName == "e+") - { - // Construct processes for positron - - // theeplusMultipleScattering = new G4MultipleScattering(); - theeplusIonisation = new G4eIonisation(); - theeplusBremsstrahlung = new G4eBremsstrahlung(); - // theeplusAnnihilation = new G4eplusAnnihilation(); - - // fPAIonisation = new G4PAIonisation("Xenon") ; - // fForwardXrayTR = new G4ForwardXrayTR("Air","Polypropelene","XrayTR") ; - - theeplusStepCut = new Em8StepCut(); - - // 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(fPAIonisation,-1,2,2); - - - // pmanager->AddProcess(fForwardXrayTR,-1,-1,2); - - pmanager->AddProcess(theeplusStepCut,-1,-1,5); - theeplusStepCut->SetMaxStep(MaxChargedStep) ; - - } - else if( particleName == "mu+" || - particleName == "mu-" ) - { - // Construct processes for muon+ - - Em8StepCut* muonStepCut = new Em8StepCut(); - pmanager->AddProcess(new G4IonisationByLogicalVolume(particleName, - pDet->GetLogicalAbsorber(), - "IonisationByLogVol"),-1,2,-2); - - // G4MuIonisation* themuIonisation = new G4MuIonisation() ; - 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->AddProcess(new G4PAIonisation("Xenon"),-1,2,2) ; - pmanager->AddProcess( muonStepCut,-1,-1,3); - muonStepCut->SetMaxStep(MaxChargedStep) ; - - } - else if ( - particleName == "proton" - || particleName == "antiproton" - || particleName == "pi+" - || particleName == "pi-" - || particleName == "kaon+" - || particleName == "kaon-" - ) - { - Em8StepCut* thehadronStepCut = new Em8StepCut(); - - // G4hIonisation* thehIonisation = new G4hIonisation() ; - G4MultipleScattering* thehMultipleScattering = - new G4MultipleScattering() ; - - pmanager->AddProcess(new G4IonisationByLogicalVolume(particleName, - pDet->GetLogicalAbsorber(), - "IonisationByLogVolHadr"),-1,2,-2); - - pmanager->AddProcess(thehMultipleScattering,-1,1,1); - // pmanager->AddProcess(thehIonisation,-1,2,2); - - // pmanager->AddProcess(new G4PAIonisation("Xenon"),-1,2,2) ; - // pmanager->AddProcess(new G4PAIonisation("Argon"),-1,2,2) ; - - pmanager->AddProcess( thehadronStepCut,-1,-1,3); - thehadronStepCut->SetMaxStep(MaxChargedStep) ; - // thehadronStepCut->SetMaxStep(10*mm) ; - - } - } -} - - -#include "G4Decay.hh" - -void Em8PhysicsList::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); - } - } -} - -///////////////////////////////////////////////////////////////////////////// - -void Em8PhysicsList::AddParameterisation() -{ - G4FastSimulationManagerProcess* theFastSimulationManagerProcess = - new G4FastSimulationManagerProcess() ; - theParticleIterator->reset(); - - while( (*theParticleIterator)() ) - { - G4ParticleDefinition* particle = theParticleIterator->value() ; - G4ProcessManager* pmanager = particle->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 Em8PhysicsList::SetCuts() -{ - G4Timer theTimer ; - theTimer.Start() ; - if (verboseLevel >0) - { - G4cout << "Em8PhysicsList::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(cutForElectron,"e+"); - - if (verboseLevel>1) DumpCutValuesTable(); - - theTimer.Stop(); - G4cout.precision(6); - G4cout << G4endl ; - G4cout << "total time(SetCuts)=" << theTimer.GetUserElapsed() << " s " <GetAbsorberMaterial(); - - // set cut values for gamma at first and for e- second and next for e+, - // because some processes for e+/e- need cut values for gamma - - G4ParticleDefinition* part; - G4double cut; - - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e-"); - - part = theParticleTable->FindParticle("e+"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e+"); - - // set cut values for proton and anti_proton before all other hadrons - // because some processes for hadrons need cut values for proton/anti_proton - - part = theParticleTable->FindParticle("proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "proton"); - - part = theParticleTable->FindParticle("anti_proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "anti_proton"); - - SetCutValueForOthers(cut); -} - -////////////////////////////////////////////////////////////////////////////// - -void Em8PhysicsList::GetRange(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - G4ParticleDefinition* part; - G4double cut; - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - G4cout << "material : " << currMat->GetName() << G4endl; - G4cout << "particle : " << part->GetParticleName() << G4endl; - G4cout << "energy : " << val / keV << " (keV)" << G4endl; - G4cout << "range : " << cut / mm << " (mm)" << G4endl; -} - -//////////////////////////////////////////////////////////////////////////// - -void Em8PhysicsList::SetMaxStep(G4double step) -{ - MaxChargedStep = step ; - G4cout << " MaxChargedStep=" << MaxChargedStep << G4endl; - G4cout << G4endl; -} - diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc deleted file mode 100644 index e3ff628c3a..0000000000 --- a/examples/extended/electromagnetic/TestEm8/src/Em8PhysicsListMessenger.cc +++ /dev/null @@ -1,120 +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: Em8PhysicsListMessenger.cc,v 1.4 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "Em8PhysicsListMessenger.hh" - -#include "Em8PhysicsList.hh" -#include "G4UIcmdWithoutParameter.hh" -#include "G4UIcmdWithADouble.hh" -#include "G4UIcmdWithADoubleAndUnit.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em8PhysicsListMessenger::Em8PhysicsListMessenger(Em8PhysicsList * List) -:Em8List(List) -{ - cutGCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutG",this); - cutGCmd->SetGuidance("Set cut values by RANGE for Gamma."); - cutGCmd->SetParameterName("range",true); - cutGCmd->SetDefaultValue(1.); - cutGCmd->SetDefaultUnit("mm"); - cutGCmd->AvailableForStates(G4State_Idle); - - cutECmd = new G4UIcmdWithADoubleAndUnit("/calor/cutE",this); - cutECmd->SetGuidance("Set cut values by RANGE for e- e+."); - cutECmd->SetParameterName("range",true); - cutECmd->SetDefaultValue(1.); - cutECmd->SetDefaultUnit("mm"); - cutECmd->AvailableForStates(G4State_Idle); - - cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); - cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); - cutPCmd->SetParameterName("range",true); - cutPCmd->SetDefaultValue(1.); - cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(G4State_Idle); - - eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); - eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); - eCmd->SetParameterName("energy",true); - eCmd->SetDefaultValue(10.); - eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(G4State_Idle); - - rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); - rCmd->SetGuidance("Display the RANGE of Electron for the current material."); - rCmd->SetParameterName("energy",true); - rCmd->SetDefaultValue(10.); - rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(G4State_Idle); - - setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); - setMaxStepCmd->SetGuidance("Set max. step length in the detector"); - setMaxStepCmd->SetParameterName("mxStep",true); - setMaxStepCmd->SetDefaultUnit("mm"); - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em8PhysicsListMessenger::~Em8PhysicsListMessenger() -{ - - delete setMaxStepCmd; - - delete cutGCmd; - delete cutECmd; - delete cutPCmd; - delete rCmd; - delete eCmd; - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em8PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ - if(command == cutGCmd) - { Em8List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));} - if(command == cutECmd) - { Em8List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} - if(command == cutPCmd) - { Em8List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));} - if(command == eCmd) - { Em8List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));} - if(command == rCmd) - { Em8List->GetRange(rCmd->GetNewDoubleValue(newValue));} - if(command == setMaxStepCmd) - { Em8List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));} -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorAction.cc index 40f122766a..1ffc736594 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.4 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8PrimaryGeneratorMessenger.cc index eb50048cfc..e4e52718a8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunAction.cc index 51182ab784..5a3ae04e79 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.8 2003/06/16 16:48:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8RunAction.cc,v 1.11 2003/11/26 13:55:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -37,10 +37,7 @@ #include #include "Randomize.hh" -#ifndef G4NOHIST - #include "CLHEP/Hist/HBookFile.h" -#endif -#include + ////////////////////////////////////////////////////////////////////////////// @@ -51,10 +48,6 @@ Em8RunAction::Em8RunAction() { runMessenger = new Em8RunMessenger(this); saveRndm = 1; -#ifndef G4NOHIST - histo1=0; histo2=0; histo3=0; histo4=0; histo5=0; - histo6=0; histo7=0; histo8=0; histo9=0; histo10=0; -#endif } //////////////////////////////////////////////////////////////////////////// @@ -62,96 +55,8 @@ Em8RunAction::Em8RunAction() Em8RunAction::~Em8RunAction() { delete runMessenger; -#ifndef G4NOHIST - if(histo1) delete histo1 ; - if(histo2) delete histo2 ; - if(histo3) delete histo3 ; - if(histo4) delete histo4 ; - if(histo5) delete histo5 ; - if(histo6) delete histo6 ; - if(histo7) delete histo7 ; - if(histo8) delete histo8 ; - if(histo9) delete histo9 ; - if(histo10) delete histo10 ; - delete hbookManager; -#endif } -//////////////////////////////////////////////////////////////////////////////// - -void Em8RunAction::bookHisto() -{ -#ifndef G4NOHIST - // init hbook - - hbookManager = new HBookFile(histName, 68); - assert (hbookManager != 0); - - // book histograms - - if(nbinStep>0) - { - histo1 = hbookManager->histogram("number of steps/event" - ,nbinStep,Steplow,Stephigh) ; - assert (histo1 != 0); - } - if(nbinEn>0) - { - histo2 = hbookManager->histogram("Energy Loss (keV)" - ,nbinEn,Enlow/keV,Enhigh/keV) ; - assert (histo2 != 0); - } - if(nbinTh>0) - { - histo3 = hbookManager->histogram("angle distribution at exit(deg)" - ,nbinTh,Thlow/deg,Thhigh/deg) ; - assert (histo3 != 0); - } - if(nbinR>0) - { - histo4 = hbookManager->histogram("lateral distribution at exit(mm)" - ,nbinR ,Rlow,Rhigh) ; - assert (histo4 != 0); - } - if(nbinTt>0) - { - histo5 = hbookManager->histogram("kinetic energy of the primary at exit(MeV)" - ,nbinTt,Ttlow,Tthigh) ; - assert (histo5 != 0); - } - if(nbinThback>0) - { - histo6 = hbookManager->histogram("angle distribution of backscattered primaries(deg)" - ,nbinThback,Thlowback/deg,Thhighback/deg) ; - assert (histo6 != 0); - } - if(nbinTb>0) - { - histo7 = hbookManager->histogram("kinetic energy of the backscattered primaries (MeV)" - ,nbinTb,Tblow,Tbhigh) ; - assert (histo7 != 0); - } - if(nbinTsec>0) - { - histo8 = hbookManager->histogram("kinetic energy of the charged secondaries (MeV)" - ,nbinTsec,Tseclow,Tsechigh) ; - assert (histo8 != 0); - } - if(nbinvertexz>0) - { - histo9 = hbookManager->histogram("z of secondary charged vertices(mm)" - ,nbinvertexz ,zlow,zhigh) ; - assert (histo9 != 0); - } - if(nbinGamma>0) - { - histo10= hbookManager->histogram("kinetic energy of gammas escaping the absorber (MeV)" - // ,nbinGamma,ElowGamma,EhighGamma) ; - ,nbinGamma,log10(ElowGamma),log10(EhighGamma)) ; - assert (histo10 != 0); - } -#endif -} ///////////////////////////////////////////////////////////////////////////// @@ -310,8 +215,6 @@ void Em8RunAction::BeginOfRunAction(const G4Run* aRun) distvertexz[iz]=0.; } } - - bookHisto(); } ///////////////////////////////////////////////////////////////////////////// @@ -432,7 +335,7 @@ void Em8RunAction::EndOfRunAction(const G4Run* aRun) std::ofstream normOut("normDist.out", std::ios::out ) ; normOut.setf( std::ios::scientific, std::ios::floatfield ); - G4double E , dnorm, norm,fmax,Emp,width ; + G4double E , dnorm, norm,fmax,Emp; // width ; Emp=-999.999 ; G4cout << " energy deposit distribution " << G4endl ; G4cout << "#entries=" << entryEn << " #underflows=" << underEn << @@ -749,11 +652,6 @@ void Em8RunAction::EndOfRunAction(const G4Run* aRun) { G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); } - // Write histogram file - -#ifndef G4NOHIST - hbookManager->write(); -#endif // save Rndm status @@ -813,42 +711,17 @@ void Em8RunAction::AddTrRef(G4double tr,G4double ref) ///////////////////////////////////////////////////////////////////////////// -void Em8RunAction::FillNbOfSteps(G4double ns) -{ -#ifndef G4NOHIST - const G4double eps = 1.e-10 ; - G4double n,bin ; - G4int ibin; - - if(histo1) - { - entryStep += 1. ; - - if(ns=Stephigh) - overStep += 1. ; - else - { - n = ns+eps ; - bin = (n-Steplow)/dStep ; - ibin= (G4int)bin ; - distStep[ibin] += 1. ; - } - histo1->accumulate(ns) ; - } -#endif -} +void Em8RunAction::FillNbOfSteps(G4double) +{} ////////////////////////////////////////////////////////////////////////////// void Em8RunAction::FillEn(G4double En) { - // #ifndef G4NOHIST + G4double bin ; G4int ibin; - // if(histo2) { entryEn += 1. ; @@ -860,260 +733,55 @@ void Em8RunAction::FillEn(G4double En) ibin= (G4int)bin ; distEn[ibin] += 1. ; } - // histo2->accumulate(En/keV) ; // was /MeV } - // #endif } //////////////////////////////////////////////////////////////////////////// -void Em8RunAction::FillTt(G4double En) +void Em8RunAction::FillTt(G4double) { -#ifndef G4NOHIST - G4double bin ; - G4int ibin; - - if(histo5) - { - entryTt += 1. ; - Ttmean += En ; - Tt2mean += En*En ; - - if(En=Tthigh) - overTt += 1. ; - else - { - bin = (En-Ttlow)/dTt ; - ibin= (G4int)bin ; - distTt[ibin] += 1. ; - } - histo5->accumulate(En/MeV) ; - } -#endif } ////////////////////////////////////////////////////////////////////////////// -void Em8RunAction::FillTb(G4double En) +void Em8RunAction::FillTb(G4double) { -#ifndef G4NOHIST - G4double bin ; - G4int ibin; - - if(histo7) - { - entryTb += 1. ; - Tbmean += En ; - Tb2mean += En*En ; - - if(En=Tbhigh) - overTb += 1. ; - else - { - bin = (En-Tblow)/dTb ; - ibin= (G4int)bin ; - distTb[ibin] += 1. ; - } - histo7->accumulate(En/MeV) ; - } -#endif } /////////////////////////////////////////////////////////////////////////////// -void Em8RunAction::FillTsec(G4double En) +void Em8RunAction::FillTsec(G4double) { -#ifndef G4NOHIST - G4double bin ; - G4int ibin; - - if(histo8) - { - entryTsec += 1. ; - - if(En=Tsechigh) - overTsec += 1. ; - else - { - bin = (En-Tseclow)/dTsec ; - ibin= (G4int)bin ; - distTsec[ibin] += 1. ; - } - histo8->accumulate(En/MeV) ; - } -#endif } ///////////////////////////////////////////////////////////////////////////// -void Em8RunAction::FillGammaSpectrum(G4double En) +void Em8RunAction::FillGammaSpectrum(G4double) { -#ifndef G4NOHIST - G4double bin ; - G4int ibin; - - if(histo10) - { - entryGamma += 1. ; - - if(En=EhighGamma) - overGamma += 1. ; - else - { - bin = log(En/ElowGamma)/dEGamma; - ibin= (G4int)bin ; - distGamma[ibin] += 1. ; - } - histo10->accumulate(log10(En/MeV)) ; - } -#endif } //////////////////////////////////////////////////////////////////////////////// -void Em8RunAction::FillTh(G4double Th) +void Em8RunAction::FillTh(G4double) { -#ifndef G4NOHIST - static const G4double cn=pi/(64800.*dTh) ; - static const G4double cs=pi/ - (64800.*(cos(Thlow)-cos(Thlow+dTh))); - G4double bin,Thbin ,wg; - G4int ibin; - - if(histo3) - { - entryTh += 1. ; - - wg = 0.; - - if(Th=Thhigh) - overTh += 1. ; - else - { - bin = (Th-Thlow)/dTh ; - ibin= (G4int)bin ; - Thbin = Thlow+ibin*dTh ; - if(Th > 0.001*dTh) - wg=cn/sin(Th) ; - else - { - G4double thdeg=Th*180./pi; - G4cout << "theta < 0.001*dth (from plot excluded) theta=" - << std::setw(12) << std::setprecision(4) << thdeg << G4endl; - wg=0. ; - } - distTh[ibin] += wg ; - } - - histo3->accumulate(Th/deg, wg) ; - } -#endif } ////////////////////////////////////////////////////////////////////////// -void Em8RunAction::FillThBack(G4double Th) +void Em8RunAction::FillThBack(G4double) { -#ifndef G4NOHIST - static const G4double cn=pi/(64800.*dThback) ; - static const G4double cs=pi/ - (64800.*(cos(Thlowback)-cos(Thlowback+dThback))); - G4double bin,Thbin,wg ; - G4int ibin; - - if(histo6) - { - entryThback += 1. ; - - if(Th=Thhighback) - overThback += 1. ; - else - { - bin = (Th-Thlowback)/dThback ; - ibin= (G4int)bin ; - Thbin = Thlowback+ibin*dThback ; - if(Th > 0.001*dThback) - wg=cn/sin(Th) ; - else - { - G4double thdeg=Th*180./pi; - G4cout << "theta < 0.001*dth (from plot excluded) theta=" - << std::setw(12) << std::setprecision(4) << thdeg << G4endl; - wg=0. ; - } - distThback[ibin] += wg ; - } - histo6->accumulate(Th/deg, wg) ; - } -#endif } ////////////////////////////////////////////////////////////////////////// -void Em8RunAction::FillR(G4double R ) +void Em8RunAction::FillR(G4double) { -#ifndef G4NOHIST - G4double bin ; - G4int ibin; - - if(histo4) - { - entryR += 1. ; - Rmean += R ; - R2mean += R*R ; - - if(R =Rhigh) - overR += 1. ; - else - { - bin = (R -Rlow)/dR ; - ibin= (G4int)bin ; - distR[ibin] += 1. ; - } - histo4->accumulate(R/mm) ; - } -#endif } ///////////////////////////////////////////////////////////////////////////// -void Em8RunAction::Fillvertexz(G4double z ) +void Em8RunAction::Fillvertexz(G4double) { -#ifndef G4NOHIST - G4double bin ; - G4int ibin; - - if(histo9) - { - entryvertexz += 1. ; - - if(z =zhigh) - oververtexz += 1. ; - else - { - bin = (z -zlow)/dz ; - ibin = (G4int)bin ; - distvertexz[ibin] += 1. ; - } - histo9->accumulate(z/mm) ; - } -#endif } ////////////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc index b44b167682..4193b627b9 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: Em8RunMessenger.cc,v 1.5 2002/12/05 00:24:26 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc index a9435188ac..6623482bf6 100644 --- a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8SteppingAction.cc,v 1.5 2003/06/16 16:48:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8SteppingAction.cc,v 1.7 2003/11/24 17:52:48 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -39,7 +39,6 @@ #include "Em8RunAction.hh" #include "G4Event.hh" #include "G4EventManager.hh" -#include "Em8SteppingMessenger.hh" #include "G4ios.hh" #include #include "G4UImanager.hh" @@ -49,26 +48,22 @@ Em8SteppingAction::Em8SteppingAction(Em8DetectorConstruction* DET, Em8EventAction* EA, Em8RunAction* RA) -:detector (DET),eventaction (EA),runaction (RA),steppingMessenger(NULL), +:detector (DET),eventaction (EA),runaction (RA), IDold(-1) ,evnoold(-1) -{ - steppingMessenger = new Em8SteppingMessenger(this); -} +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... Em8SteppingAction::~Em8SteppingAction() -{ - delete steppingMessenger ; - } +{} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void Em8SteppingAction::UserSteppingAction(const G4Step* aStep) { - G4double Edep,Theta,Thetaback,Ttrans,Tback,Tsec,Egamma,xend,yend,zend,rend ; - G4double Tkin ; + G4double Theta,Thetaback,Ttrans,Tback,Tsec,Egamma,yend,zend,rend ; + // G4double Tkin, Edep, xend; G4int evno = eventaction->GetEventno() ; IDnow = evno+10000*(aStep->GetTrack()->GetTrackID())+ diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm8/src/Em8SteppingVerbose.cc index 3072479697..5d33e98a3c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc b/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc index 53f46e2c39..392c65457c 100755 --- a/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc +++ b/examples/extended/electromagnetic/TestEm8/src/Em8VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em8VisManager.cc,v 1.7 2003/04/17 13:04:35 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Em8VisManager.cc,v 1.8 2003/11/13 15:10:32 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -41,7 +41,7 @@ #include "G4DAWNFILE.hh" #include "G4GAGTree.hh" #include "G4HepRepFile.hh" - +#include "G4HepRep.hh" #include "G4RayTracer.hh" #include "G4VRML1File.hh" #include "G4VRML2File.hh" @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -98,7 +93,7 @@ void Em8VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4DAWNFILE); RegisterGraphicsSystem (new G4GAGTree); RegisterGraphicsSystem (new G4HepRepFile); - + RegisterGraphicsSystem (new G4HepRep); RegisterGraphicsSystem (new G4RayTracer); RegisterGraphicsSystem (new G4VRML1File); RegisterGraphicsSystem (new G4VRML2File); @@ -109,11 +104,6 @@ void Em8VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/electromagnetic/TestEm8/src/IonC12.cc b/examples/extended/electromagnetic/TestEm8/src/IonC12.cc new file mode 100755 index 0000000000..27aa6b9b5a --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/src/IonC12.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: IonC12.cc,v 1.1 2003/10/27 15:31:04 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +#include "IonC12.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +IonC12::IonC12( + 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 ) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +IonC12::~IonC12() { } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// +// static member definition +// +// 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 + +IonC12 IonC12::theIon( + "ionC12", 11.17793*GeV, 0.0*MeV, +6.0*eplus, + 0, +1, 0, + 0, 0, 0, + "static_nucleus", 0, +12, 0, + true, -1.0, 0 +); + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +IonC12* IonC12::IonDefinition() {return &theIon;} + +IonC12* IonC12::Ion() {return &theIon;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.cc new file mode 100644 index 0000000000..08f31a0ded --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmG4v52.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: PhysListEmG4v52.cc,v 1.1 2003/11/24 17:53:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v52.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering52.hh" +#include "G4MultipleScattering.hh" + +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" +#include "G4eplusAnnihilation.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 Geant4 version 5.2 + + 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 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 G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4eplusAnnihilation, 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/TestEm3/src/Em3PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelP.cc old mode 100644 new mode 100755 similarity index 84% rename from examples/extended/electromagnetic/TestEm3/src/Em3PhysListEmStandard.cc rename to examples/extended/electromagnetic/TestEm8/src/PhysListEmModelP.cc index ee57d28473..7ab4b2dbe0 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmModelP.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em3PhysListEmStandard.cc,v 1.1 2003/02/26 16:12:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmModelP.cc,v 1.1 2003/10/27 15:24:10 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3PhysListEmStandard.hh" +#include "PhysListEmModelP.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -46,23 +46,24 @@ #include "G4MuPairProduction.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysListEmStandard::Em3PhysListEmStandard(const G4String& name) +PhysListEmModelP::PhysListEmModelP(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysListEmStandard::~Em3PhysListEmStandard() +PhysListEmModelP::~PhysListEmModelP() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysListEmStandard::ConstructProcess() +void PhysListEmModelP::ConstructProcess() { - // Add standard EM Processes + // Add EM processes realised on base of prototype of model approach design theParticleIterator->reset(); while( (*theParticleIterator)() ){ @@ -71,38 +72,43 @@ void Em3PhysListEmStandard::ConstructProcess() 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,-1,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,-1,3); - pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); + 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,-1,3); pmanager->AddProcess(new G4MuPairProduction, -1,-1,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); + pmanager->AddProcess(new G4hIonisation, -1,2,2); } } } diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc new file mode 100755 index 0000000000..0093a2f82b --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListEmStandard.cc @@ -0,0 +1,147 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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.2 2003/11/24 17:52:48 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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 "G4PAIModel.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" + +#include "G4hIonisation.hh" +#include "G4ionIonisation.hh" + +#include "G4Region.hh" +#include "G4RegionStore.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 + + const G4RegionStore* theRegionStore = G4RegionStore::GetInstance(); + G4Region* gas = theRegionStore->GetRegion("VertexDetector"); + + 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-") + { + pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); + + G4eIonisation* eion = new G4eIonisation(); + + G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); + eion->AddEmModel(0,pai,pai,gas); + + pmanager->AddProcess(eion, -1, 2,2); + + pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); + + } else if (particleName == "e+") { + + pmanager->AddProcess(new G4MultipleScattering, -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-" ) { + + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + + G4MuIonisation* muion = new G4MuIonisation(); + G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); + muion->AddEmModel(0,pai,pai,gas); + + pmanager->AddProcess(muion, -1, 2,-2); + pmanager->AddProcess(new G4MuBremsstrahlung, -1,-1,3); + pmanager->AddProcess(new G4MuPairProduction, -1,-1,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") ) + { + + pmanager->AddProcess(new G4MultipleScattering,-1,1,1); + + G4hIonisation* hion = new G4hIonisation(); + G4PAIModel* pai = new G4PAIModel(particle,"PAIModel"); + hion->AddEmModel(0,pai,pai,gas); + + pmanager->AddProcess(hion, -1,2,2); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc new file mode 100755 index 0000000000..50b2b72ec8 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListGeneral.cc @@ -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: PhysListGeneral.cc,v 1.1 2003/10/27 15:24:10 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListGeneral.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListGeneral::PhysListGeneral(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListGeneral::~PhysListGeneral() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListGeneral::ConstructProcess() +{ + // Add 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); + + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3PhysListParticles.cc b/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc old mode 100644 new mode 100755 similarity index 93% rename from examples/extended/electromagnetic/TestEm3/src/Em3PhysListParticles.cc rename to examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc index e6be1a59c3..4583d247b7 --- a/examples/extended/electromagnetic/TestEm3/src/Em3PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm8/src/PhysListParticles.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em3PhysListParticles.cc,v 1.3 2003/03/10 18:16:49 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.cc,v 1.1 2003/10/27 15:24:10 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3PhysListParticles.hh" +#include "PhysListParticles.hh" // Bosons #include "G4ChargedGeantino.hh" @@ -77,18 +77,18 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysListParticles::Em3PhysListParticles(const G4String& name) +PhysListParticles::PhysListParticles(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3PhysListParticles::~Em3PhysListParticles() +PhysListParticles::~PhysListParticles() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em3PhysListParticles::ConstructParticle() +void PhysListParticles::ConstructParticle() { // pseudo-particles diff --git a/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc new file mode 100755 index 0000000000..553458b9ef --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/src/PhysicsList.cc @@ -0,0 +1,210 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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 2003/11/24 17:52:48 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" + +#include "PhysListParticles.hh" +#include "PhysListGeneral.hh" +#include "PhysListEmStandard.hh" +#include "PhysListEmModelP.hh" +#include "PhysListEmG4v52.hh" + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +#include "G4UnitsTable.hh" +#include "G4LossTableManager.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); + + // Particles + particleList = new PhysListParticles("particles"); + + // General Physics + generalPhysicsList = new PhysListGeneral("general"); + + // EM physics + emName = G4String("standard"); + emPhysicsList = new PhysListEmStandard(emName); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::~PhysicsList() +{ + delete pMessenger; + delete generalPhysicsList; + delete emPhysicsList; + for(size_t i=0; iConstructParticle(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructProcess() +{ + AddTransportation(); + generalPhysicsList->ConstructProcess(); + emPhysicsList->ConstructProcess(); + for(size_t i=0; iConstructProcess(); + 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 == "modelPAI") { + + emName = name; + delete emPhysicsList; + emPhysicsList = new PhysListEmModelP(name); + + } else { + + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" + << " is not defined" + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMax.hh" + +#include "G4ProcessManager.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +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...... + +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/TestEm8/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.cc new file mode 100755 index 0000000000..3ad9f49ec7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/src/PhysicsListMessenger.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: PhysicsListMessenger.cc,v 1.1 2003/10/27 15:24:10 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsListMessenger.hh" + +#include "PhysicsList.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithAString.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) +:pPhysicsList(pPhys) +{ + 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; +} + +//....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/novice/N03/src/ExN03CalorHit.cc b/examples/extended/electromagnetic/TestEm8/src/StepMax.cc old mode 100644 new mode 100755 similarity index 67% rename from examples/novice/N03/src/ExN03CalorHit.cc rename to examples/extended/electromagnetic/TestEm8/src/StepMax.cc index 19b901351c..a1467fcef1 --- a/examples/novice/N03/src/ExN03CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm8/src/StepMax.cc @@ -20,66 +20,60 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: StepMax.cc,v 1.2 2003/11/26 13:55:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: ExN03CalorHit.cc,v 1.6 2003/05/28 10:08:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "ExN03CalorHit.hh" - -G4Allocator ExN03CalorHitAllocator; +#include "StepMax.hh" +#include "StepMaxMessenger.hh" +#include "G4VPhysicalVolume.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ExN03CalorHit::ExN03CalorHit() +StepMax::StepMax(const G4String& processName) + : G4VDiscreteProcess(processName), + MaxChargedStep(DBL_MAX) { - EdepAbs = 0.; TrackLengthAbs = 0.; - EdepGap = 0.; TrackLengthGap = 0.; + pMess = new StepMaxMessenger(this); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ExN03CalorHit::~ExN03CalorHit() -{} +StepMax::~StepMax() { delete pMess; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ExN03CalorHit::ExN03CalorHit(const ExN03CalorHit& right) - : G4VHit() +G4bool StepMax::IsApplicable(const G4ParticleDefinition& particle) { - EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; - EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; + return (particle.GetPDGCharge() != 0.); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -const ExN03CalorHit& ExN03CalorHit::operator=(const ExN03CalorHit& right) +void StepMax::SetMaxStep(G4double step) {MaxChargedStep = step;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double StepMax::PostStepGetPhysicalInteractionLength( + const G4Track&, + G4double, + G4ForceCondition* condition ) { - EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; - EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; - return *this; + // condition is set to "Not Forced" + *condition = NotForced; + ProposedStep = MaxChargedStep; + + return ProposedStep; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4int ExN03CalorHit::operator==(const ExN03CalorHit& right) const +G4VParticleChange* StepMax::PostStepDoIt(const G4Track& aTrack, const G4Step&) { - return (this==&right) ? 1 : 0; + aParticleChange.Initialize(aTrack); + return &aParticleChange; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03CalorHit::Draw() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03CalorHit::Print() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc b/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.cc new file mode 100755 index 0000000000..ac68053cf2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm8/src/StepMaxMessenger.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: StepMaxMessenger.cc,v 1.1 2003/10/27 15:31:04 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "StepMaxMessenger.hh" + +#include "StepMax.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "globals.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"); + StepMaxCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +//....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/TestEm9/GNUmakefile b/examples/extended/electromagnetic/TestEm9/GNUmakefile new file mode 100644 index 0000000000..534a36e474 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/GNUmakefile @@ -0,0 +1,38 @@ +# $Id: GNUmakefile,v 1.6 2003/11/13 12:00:27 vnivanch Exp $ +# GEANT4 tag $Name: geant4-06-00 $ +# -------------------------------------------------------------- +# GNUmakefile for examples module with AIDA interface +# -------------------------------------------------------------- + +name := TestEm9 +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../../../../ +endif + +.PHONY: all +all: lib bin + +ifdef G4ANALYSIS_USE + CPPFLAGS += -DG4ANALYSIS_USE +endif + +include $(G4INSTALL)/config/architecture.gmk + +# for the aida-config command see the README file +ifdef G4ANALYSIS_USE + CPPFLAGS += `aida-config --include` + LDFLAGS += `aida-config --lib` +endif + +include $(G4INSTALL)/config/binmake.gmk + +analclean: + rm -f $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(G4TARGET)/Histo.o + +visclean: + rm -f $(G4WORKDIR)/tmp/$(G4SYSTEM)/$(G4TARGET)/VisManager.o + + diff --git a/examples/extended/electromagnetic/TestEm9/History b/examples/extended/electromagnetic/TestEm9/History new file mode 100644 index 0000000000..476635be4e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/History @@ -0,0 +1,58 @@ +$Id: History,v 1.16 2003/12/05 11:22:45 vnivanch Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + TestEm9 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 * + + ---------------------------------------------------------- + +05-12-03 V.Ivanchenko (testem9-V05-02-10) +- Update hadronic physics according to the hadronics_lists + +26-11-03 V.Ivanchenko (testem9-V05-02-09) +- Fix StepMax + +25-11-03 V.Ivanchenko (testem9-V05-02-08) +- Fix geometry (G.Cosmo) + +20-11-03 V.Ivanchenko (testem9-V05-02-07) +- Update decay physics + +19-11-03 V.Ivanchenko (testem9-V05-02-06) +- Update BinaryCascade add light ion interactions + +13-11-03 John Allison +- Removed OPACS from Vis Manager. + +07-11-03 V.Ivanchenko (testem9-V05-02-05) +- Fix misprint in the HistoManager +- Use of the last msc for PhysList52 + +31-10-03 V.Ivanchenko (testem9-V05-02-04) +- Update geometry and visualisation +- Update README +- Add Histo and HistoMessenger classes - generic analysis modules + +24-10-03 mma (testem9-V05-02-03) +- PhysListEmStandard: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +13-10-03 V.Ivanchenko (testem9-V05-02-02) +- Fix a problem in interactive mode +- Add EventMessenger +- Update Binary cascade constructor + +18-09-03 V.Ivanchenko (testem9-V05-02-01) +- Complete migration to model EM physics + +29-08-03 V.Ivant (testem9-V05-02-00) + - Creation. Derived from test26 diff --git a/examples/extended/electromagnetic/TestEm9/README b/examples/extended/electromagnetic/TestEm9/README new file mode 100644 index 0000000000..4571aae5a0 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/README @@ -0,0 +1,106 @@ +$Id: README,v 1.5 2003/10/31 12:08:50 vnivanch Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + TestEm9 + ------- + This test is intended to test cut-per-region approach and to demonstrate + electromagnetic physics in crystal calorimeter + + 1- GEOMETRY DEFINITION + + The geometry consists of the vertex detector (VD), the electromagnetic + calorimeter (EM), and the muon identifier (MU). Detector layout along + the axis Z. + + VD consisted of 3 layers of Si with pads structured along the axis X. + Between VD and EM there are 2 active absorbers (scintillators). + EM is the matrix 5x5 of heavy crystals. MU consist of 2 active absorbers + (scintillators) and the iron plate between. + + 2 additional to the World regions are defined: VertexDetector and + MuonDetector. For testing purposes first absorber of MU is included in + the region of VD. + + Material of calorimiter and absorber can be choosen: + Air Water lAr Al Fe BGO PbWO4 Pb. + eg: /testem/det/CalMat PbWO4 + /testem/det/AbsMat Al + + The size of the detector can be changed also. + + eg: /testem/det/EcalLength 20 cm + /testem/det/EcalWidth 5 cm + /testem/det/update ---> rebuild the geometry + + 2- PHYSICS LISTS + + Physics Lists are subdivided on 4 following modules: + 1. "particles" - particle definitions + 2. "general" - decays and transportation + 3. "standard" (alternative) - standard EM physics + 4. "g4v52" (alternative) - standard EM physics Geant4 5.2 + 5. "binary" (optional) - binary cascade for protons and neutrons with + energy below 3 GeV + 6. "elastic" (optional) - elastic scattering of hadrons + + 3- AN EVENT : THE PRIMARY GENERATOR + + The primary kinematic consists of a single particle which hits the + cylinder perpendicular to the input face. The type of the particle + and its energy are set in the PrimaryGeneratorAction class, and can + changed via the G4 build-in commands of ParticleGun class. + + 4- OUTPUT + + The batch regime of simulation can be started + $G4WORKDIR/bin/$G4SYSTEM/TestEm9 TestEm9.in + where TestEm9.in is the example of macro file for batch job. + + As a result of simulation the number of secondaries produced + in different regions are averaged. The average energy depositions + in active absorbers and EM as well as RMS of these values are shown. + The number of hits in pads of VD is printed out. + + 5- VISUALISATION + + To use visualisation the environment variable G4_VIS_USE should be + defined. An interactive session starts if no macro file is specified + in the command line: + $G4WORKDIR/bin/$G4SYSTEM/TestEm9 + + To start visualisation one can issur + >/control/execute vis.mac + >/run/beamOn 1 + + 6- ANALYSIS + + To create histograms/ntuple for further analysis one should define + environment variable G4ANALYSIS_USE and setup local AIDA implementation. + The example should be recompiled: + + gmake analclean + gmake + + The macro file csi.mac can be used as exmple of macro for analysis. It + can be executed in the following way: + $G4WORKDIR/bin/$G4SYSTEM/TestEm9 csi.mac + + 7- Using the Anaphe implementation of the AIDA 3.0 histograms: + + + In order to use the Anaphe implementation of the AIDA 3.0 interfaces, + the 'aida-config' command (which is used in the GNUmakefile) is + available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/aida-config + + In order to run the executable, you need to source the following + script (once): + $HOME/bin/setupAnaphe.csh (or $HOME/bin/setupAnaphe) + + At cern 'setupAnaphe' is available at: + /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe.csh + (or /afs/cern.ch/sw/lhcxx/share/LHCXX/latest/scripts/setupAnaphe) diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.cc b/examples/extended/electromagnetic/TestEm9/TestEm9.cc new file mode 100644 index 0000000000..518cd56558 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.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: TestEm9.cc,v 1.3 2003/07/14 17:10:11 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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 "SteppingVerbose.hh" + +#include "RunAction.hh" +#include "EventAction.hh" +#include "SteppingAction.hh" +#include "TrackingAction.hh" + +#ifdef G4VIS_USE + #include "VisManager.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +int main(int argc,char** argv) { + + //choose the Random engine + HepRandom::setTheEngine(new RanecuEngine); + + //my Verbose output class + G4VSteppingVerbose::SetInstance(new SteppingVerbose); + + //Construct the default run manager + G4RunManager * runManager = new G4RunManager; + + //set mandatory initialization classes + DetectorConstruction* det = new DetectorConstruction(); + PhysicsList* phys; + PrimaryGeneratorAction* kin; + runManager->SetUserInitialization(det); + runManager->SetUserInitialization(phys = new PhysicsList); + runManager->SetUserAction(kin = new PrimaryGeneratorAction(det)); + +#ifdef G4VIS_USE + //visualization manager + G4VisManager* visManager = new VisManager; + visManager->Initialize(); +#endif + + //set user action classes + RunAction* run = new RunAction(); + EventAction* event = new EventAction(); + TrackingAction* track = new TrackingAction(); + SteppingAction* step = new SteppingAction(); + + runManager->SetUserAction(run); + runManager->SetUserAction(event); + runManager->SetUserAction(track); + runManager->SetUserAction(step); + + //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 runManager; + + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.in b/examples/extended/electromagnetic/TestEm9/TestEm9.in new file mode 100644 index 0000000000..3af7f08135 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.in @@ -0,0 +1,31 @@ +# $Id: TestEm9.in,v 1.8 2003/11/26 14:44:43 vnivanch Exp $ +# GEANT4 tag $Name: geant4-06-00 $ +# +# Macro file for TestEm9 - Crystal Calorimeter +# V.Ivanchenko +# +# +/control/verbose 2 +/run/verbose 1 +#/tracking/verbose 1 +# +# select EM PhysicsList + +#/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +# +/testem/phys/setCuts 0.3 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 +/run/initialize +# +#/testem/histo/fileName e_pr.paw +/gun/particle e- +/gun/energy 1 GeV +/run/beamOn 100 +# + diff --git a/examples/extended/electromagnetic/TestEm9/TestEm9.out b/examples/extended/electromagnetic/TestEm9/TestEm9.out new file mode 100644 index 0000000000..0a6abc9266 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/TestEm9.out @@ -0,0 +1,252 @@ +********************************************** + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) + Copyright : Geant4 Collaboration +********************************************** +G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; +G4Material: Mean excitation energy is changed for CsI Iold= 491.166eV; Inew= 415.689 eV; + +***** Table : Nb of materials = 11 ***** + + Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m + ---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + + Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm + ---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 % + + Material: lAr density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm + ---> Element: lAr Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: Al density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm + ---> Element: Al Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: Si density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm + ---> Element: Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: Fe density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm + ---> Element: Fe Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 % + + Material: 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: BGO density: 7.100 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.123 cm + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 15.41 % Abundance 63.16 % + ---> Element: Germanium Ge Z = 32.0 N = 72.6 A = 72.59 g/mole fractionMass: 17.48 % Abundance 15.79 % + ---> Element: Bismuth Bi Z = 83.0 N = 209.0 A = 208.98 g/mole fractionMass: 67.10 % Abundance 21.05 % + + Material: PbWO4 density: 8.280 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.924 mm + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 14.07 % Abundance 66.67 % + ---> Element: Lead Pb Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 45.53 % Abundance 16.67 % + ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 g/mole fractionMass: 40.40 % Abundance 16.67 % + + Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm + ---> Element: Tungsten W Z = 74.0 N = 183.8 A = 183.84 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 Pb Z = 82.0 N = 207.2 A = 207.19 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) + VRML1FILE (VRML1FILE) + VRML2FILE (VRML2FILE) +/run/verbose 1 +#/tracking/verbose 1 +# +# select EM PhysicsList +#/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +PhysicsList::AddPhysicsList: +# +/testem/phys/setCuts 0.3 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 +/run/initialize +Ecal is 36 cm of CsI +Absorber is 2 mm of Al +Vertex is 3 cm of 3 layers of Si of 100 mum npads= 601 + +phot: Total cross sections from Sandia parametrisation. +world cuts are set +Vertex cuts are set +Muon cuts are set +# +#/testem/histo/fileName e_pr.paw +/gun/particle e- +/gun/energy 1 GeV +/run/beamOn 100 + +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 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. + +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). + gamma energies sampled according Heitler + PhysicsTables from 10 keV to 10 TeV in 100 bins. + +msc: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 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 + +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 300 mum e- 300 mum e+ 300 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 : CsI + Range cuts : gamma 300 mum e- 300 mum e+ 300 mum + Energy thresholds : gamma 18.1187 keV e- 288.607 keV e+ 278.143 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : Al + Range cuts : gamma 300 mum e- 300 mum e+ 300 mum + Energy thresholds : gamma 3.89739 keV e- 258.339 keV e+ 252.056 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : Air + Range cuts : gamma 10 mum e- 10 mum e+ 10 mum + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + VertexDetector + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Al + Range cuts : gamma 10 mum e- 10 mum e+ 10 mum + Energy thresholds : gamma 990 eV e- 33.8876 keV e+ 33.4729 keV + Region(s) which use this couple : + VertexDetector + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Si + Range cuts : gamma 10 mum e- 10 mum e+ 10 mum + Energy thresholds : gamma 990 eV e- 31.4747 keV e+ 31.0896 keV + Region(s) which use this couple : + VertexDetector + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : Fe + Range cuts : gamma 1 cm e- 1 cm e+ 1 cm + Energy thresholds : gamma 60.4019 keV e- 12.9518 MeV e+ 12.0297 MeV + Region(s) which use this couple : + MuonDetector + +Index : 7 used in the geometry : Yes recalculation needed : No + Material : Al + Range cuts : gamma 1 cm e- 1 cm e+ 1 cm + Energy thresholds : gamma 20.4949 keV e- 4.54874 MeV e+ 4.2772 MeV + Region(s) which use this couple : + MuonDetector + +==================================================================== + +### Run 0 start +HistoManager: Histograms are booked and run has been started +Start Run processing. +Run terminated. +Run Summary + Number of events processed : 100 + User=79.47s Real=83.14s Sys=3.67s +RunAction: End of run actions are started +HistoManager: End of run actions are started +======================================================== +Number of events 100 +Average number of e- 1294 +Average number of gamma 684.8 +Average number of e+ 47.98 +Average number of steps 3812 +======================================================== + +# +Graphics systems deleted. +Visualization Manager deleting... +G4 kernel has come to Quit state. diff --git a/examples/extended/electromagnetic/TestEm9/csi.mac b/examples/extended/electromagnetic/TestEm9/csi.mac new file mode 100644 index 0000000000..29d6b684cd --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/csi.mac @@ -0,0 +1,36 @@ +# $Id: csi.mac,v 1.2 2003/11/07 11:52:58 vnivanch Exp $ +# GEANT4 tag $Name: geant4-06-00 $ +# +# Macro file for TestEm9 - Crystal Calorimeter +# V.Ivanchenko +# +# +/control/verbose 2 +/run/verbose 1 +#/tracking/verbose 1 +# +# select EM PhysicsList + +#/testem/phys/addPhysics g4v52 +/testem/phys/addPhysics standard +# +/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 +/run/initialize +# +/testem/histo/fileName csi_ma2.paw +#/testem/histo/fileName csi_st2.paw +#/testem/histo/fileName csi.xml +#/testem/histo/fileType XML +# +/gun/particle e- +/gun/energy 1 GeV +/run/beamOn 10000 +# + diff --git a/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh b/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh new file mode 100644 index 0000000000..a11c9f4624 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/DetectorConstruction.hh @@ -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: DetectorConstruction.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +///////////////////////////////////////////////////////////////////////// +// +// TestEm9: Cryslal calorimetry +// +// Created: 31.01.03 V.Ivanchenko +// +// Modified: +// +//////////////////////////////////////////////////////////////////////// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorConstruction_h +#define DetectorConstruction_h 1 + +#include "G4VUserDetectorConstruction.hh" +#include "globals.hh" +#include "G4ThreeVector.hh" +#include "G4Material.hh" +#include "G4VPhysicalVolume.hh" + +class G4Tubs; +class G4LogicalVolume; +class G4UniformMagField; +class DetectorMessenger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorConstruction : public G4VUserDetectorConstruction +{ +public: + + DetectorConstruction(); + ~DetectorConstruction(); + +public: + + void SetEcalMaterial(const G4String&); + void SetAbsMaterial(const G4String&); + void SetEcalLength (G4double val) {ecalLength = val;}; + void SetEcalWidth (G4double val) {ecalWidth = val;}; + void SetVertexLength (G4double val) {vertexLength = val;}; + void SetPadLength (G4double val) {padLength = val;}; + void SetPadWidth (G4double val) {padWidth = val;}; + void SetAbsLength(G4double val) {absLength = val;}; + + G4VPhysicalVolume* Construct(); + + void UpdateGeometry(); + + G4double GetWorldSizeZ() {return worldZ;} + +private: + + void DefineMaterials(); + G4VPhysicalVolume* ConstructVolumes(); + + DetectorConstruction & operator=(const DetectorConstruction &right); + DetectorConstruction(const DetectorConstruction&); + + G4double ecalLength; + G4double ecalWidth; + G4double vertexLength; + G4double padLength; + G4double padWidth; + G4double absLength; + G4double worldZ; + + G4Material* calMaterial; + G4Material* vertMaterial; + G4Material* absMaterial; + G4Material* worldMaterial; + G4Material* yorkMaterial; + + G4LogicalVolume* logicC; + G4LogicalVolume* logicA1; + G4LogicalVolume* logicA2; + G4LogicalVolume* logicA3; + G4LogicalVolume* logicA4; + + DetectorMessenger* detectorMessenger; //pointer to the Messenger + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.hh new file mode 100644 index 0000000000..8301d34236 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/DetectorMessenger.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. * +// ******************************************************************** +// +// +// $Id: DetectorMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +///////////////////////////////////////////////////////////////////////// +// +// test26: Cut per region physics +// +// Created: 31.01.03 V.Ivanchenko +// +// Modified: +// +//////////////////////////////////////////////////////////////////////// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef DetectorMessenger_h +#define DetectorMessenger_h 1 + +#include "globals.hh" +#include "G4UImessenger.hh" + +class DetectorConstruction; +class G4UIdirectory; +class G4UIcmdWithAString; +class G4UIcmdWith3Vector; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithoutParameter; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class DetectorMessenger: public G4UImessenger +{ +public: + DetectorMessenger(DetectorConstruction* ); + ~DetectorMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + +private: + DetectorConstruction* Detector; + + G4UIdirectory* testemDir; + G4UIcmdWithAString* MaterCmd; + G4UIcmdWithAString* LBinCmd; + G4UIcmdWithADoubleAndUnit* l1Cmd; + G4UIcmdWithADoubleAndUnit* l2Cmd; + G4UIcmdWithADoubleAndUnit* l3Cmd; + G4UIcmdWithADoubleAndUnit* l4Cmd; + G4UIcmdWithADoubleAndUnit* l5Cmd; + G4UIcmdWithADoubleAndUnit* l6Cmd; + G4UIcmdWithoutParameter* UpdateCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/EventAction.hh old mode 100644 new mode 100755 similarity index 71% rename from examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh rename to examples/extended/electromagnetic/TestEm9/include/EventAction.hh index e460c18700..bb4b79c3df --- a/examples/extended/electromagnetic/TestEm8/include/Em8SteppingMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/EventAction.hh @@ -20,44 +20,45 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: Em8SteppingMessenger.hh,v 1.3 2001/07/11 09:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// +#ifndef EventAction_h +#define EventAction_h 1 + +// $Id: EventAction.hh,v 1.2 2003/10/13 15:41:30 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#ifndef Em8SteppingMessenger_h -#define Em8SteppingMessenger_h 1 +#include "G4UserEventAction.hh" +#include "G4Event.hh" #include "globals.hh" -#include "G4UImessenger.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class Em8SteppingAction; -class G4UIdirectory; +class EventActionMessenger; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em8SteppingMessenger: public G4UImessenger +class EventAction : public G4UserEventAction { - public: +public: // Without description - Em8SteppingMessenger(Em8SteppingAction* ); - ~Em8SteppingMessenger(); + EventAction(); + ~EventAction(); - void SetNewValue(G4UIcommand* ,G4String ); + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + void SetDrawFlag(G4String val) {drawFlag = val;}; + void SetPrintModulo(G4int val) {printModulo = val;}; private: - Em8SteppingAction* steppingAction; - - G4UIdirectory* steppingDir; + G4int nEvt; + G4int printModulo; + G4int verbose; + G4String drawFlag; + EventActionMessenger* eventMessenger; }; #endif - diff --git a/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.hh new file mode 100644 index 0000000000..45a5d28fb4 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/EventActionMessenger.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: EventActionMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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 G4UIcmdWithAString; +class G4UIcmdWithAnInteger; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class EventActionMessenger: public G4UImessenger +{ +public: + EventActionMessenger(EventAction*); + ~EventActionMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + +private: + + EventAction* eventAction; + G4UIcmdWithAString* DrawCmd; + G4UIcmdWithAnInteger* PrintCmd; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm9/include/Histo.hh b/examples/extended/electromagnetic/TestEm9/include/Histo.hh new file mode 100644 index 0000000000..a22e11cdd6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/Histo.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: Histo.hh,v 1.2 2003/11/03 19:19:46 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ + +#ifndef Histo_h +#define Histo_h 1 + +//--------------------------------------------------------------------------- +// +// ClassName: Histo +// +// Description: Utility class to hold and manipulate histograms/nTuples +// +// Author: V.Ivanchenko 30/10/03 +// +//---------------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "globals.hh" +#include +#include "G4DynamicParticle.hh" +#include "G4VPhysicalVolume.hh" +#include "G4DataVector.hh" +#include "G4Track.hh" + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class HistoMessenger; + +namespace AIDA { + class ITree; + class ITuple; + class IHistogram1D; +} + +class Histo +{ + +public: + Histo(); + + ~Histo(); + + void book(); + // Book predefined histogramms + + void save(); + // Save histogramms to file + + void add1D(const G4String&, const G4String&, G4int nb=100, G4double x1=0., + G4double x2=1., G4double u=1.); + // In this method histogramms are predefined + + void setHisto1D(G4int, G4int, G4double, G4double, G4double); + // It change bins and boundaries + + void fill(G4int, G4double, G4double); + // Histogramms are filled + + void scale(G4int, G4double); + + void addTuple(const G4String&, const G4String&, const G4String&); + // In this method nTuple is booked + + void fillTuple(const G4String&, G4double); + // Fill nTuple parameter + + void addRow(); + // Save tuple event + + void setFileName(const G4String& nam) {histName = nam;}; + + void setFileType(const G4String& nam) {if(nam == "XML") histType = "XML";}; + +private: + + G4String histName; + G4String histType; + G4String tupleName; + G4String tupleId; + G4String tupleList; + G4int nHisto; + G4int verbose; + G4int defaultAct; + + std::vector histo; + AIDA::ITuple* ntup; + AIDA::ITree* tree; + HistoMessenger* messenger; + std::vector active; + std::vector bins; + std::vector xmin; + std::vector xmax; + std::vector unit; + std::vector ids; + std::vector tittles; +}; + +#endif diff --git a/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh b/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh new file mode 100644 index 0000000000..741336d7a6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/HistoManager.hh @@ -0,0 +1,147 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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.4 2003/11/03 19:19:46 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ + +#ifndef HistoManager_h +#define HistoManager_h 1 + +//--------------------------------------------------------------------------- +// +// ClassName: HistoManager +// +// Description: Singleton class to hold Emc parameters and build histograms. +// User cannot access to the constructor. +// The pointer of the only existing object can be got via +// HistoManager::GetPointer() static method. +// The first invokation of this static method makes +// the singleton object. +// +// Author: V.Ivanchenko 27/09/00 +// +//---------------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "globals.hh" +#include +#include "G4DynamicParticle.hh" +#include "G4VPhysicalVolume.hh" +#include "G4DataVector.hh" +#include "G4Track.hh" +#include "Histo.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class HistoManager +{ + +public: + // With description + + static HistoManager* GetPointer(); + +private: + + HistoManager(); + +public: // Without description + + ~HistoManager(); + + void bookHisto(); + + void BeginOfRun(); + void EndOfRun(); + + void BeginOfEvent(); + void EndOfEvent(); + + void ScoreNewTrack(const G4Track* aTrack); + void AddEnergy(G4double edep, G4int idx, G4int copyNo); + + void AddDeltaElectron(const G4DynamicParticle*); + void AddPhoton(const G4DynamicParticle*); + + G4double GetTrackLength() const {return trackLength;}; + void ResetTrackLength() {trackLength = 0.0, trackAbs = true;}; + void SetTrackOutAbsorber() {trackAbs = false;}; + G4bool GetTrackInAbsorber() const {return trackAbs;}; + void AddTrackLength(G4double x) {trackLength += x;}; + void AddPositron(const G4DynamicParticle*) {n_posit++;}; + void SetVerbose(G4int val) {verbose = val;}; + G4int GetVerbose() const {return verbose;}; + void SetHistoNumber(G4int val) {nHisto = val;}; + void SetNtuple(G4bool val) {nTuple = val;}; + + void SetFirstEventToDebug(G4int val) {nEvt1 = val;}; + G4int FirstEventToDebug() const {return nEvt1;}; + void SetLastEventToDebug(G4int val) {nEvt2 = val;}; + G4int LastEventToDebug() const {return nEvt2;}; + + void SetMaxEnergy(G4double val) {maxEnergy = val;}; + G4double GetMaxEnergy() const {return maxEnergy;}; + void SetThresholdEnergy(G4double val) {thKinE = val;}; + void SetThresholdZ(G4double val) {thPosZ = val;}; + void AddStep() {n_step++;}; + + +private: + + // MEMBERS + static HistoManager* fManager; + + G4int nHisto; + G4int verbose; + G4int nEvt1; + G4int nEvt2; + + G4double beamEnergy; + G4double maxEnergy; + G4double maxEnergyAbs; + G4double thKinE; + G4double thPosZ; + + G4double trackLength; + G4bool trackAbs; // Track is in absorber + G4int n_evt; + G4int n_elec; + G4int n_posit; + G4int n_gam; + G4int n_step; + G4int n_gamph; + G4int n_gam_tar; + G4int n_step_target; + G4int nBinsE, nBinsEA, nBinsED; + G4bool nTuple; + + G4double Eabs1, Eabs2, Eabs3, Eabs4; + G4double E[25]; + G4DataVector Evertex; + G4DataVector Nvertex; + + Histo histo; +}; + +#endif diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh similarity index 75% rename from examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc rename to examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh index f641e608a8..0dfba5c0b3 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5SteppingMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/include/HistoMessenger.hh @@ -20,35 +20,51 @@ // * statement, and all its terms. * // ******************************************************************** // + +// +// $Id: HistoMessenger.hh,v 1.1 2003/10/31 12:09:36 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: Em5SteppingMessenger.cc,v 1.7 2003/06/06 15:55:52 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5SteppingMessenger.hh" +#ifndef HistoMessenger_h +#define HistoMessenger_h 1 -#include "Em5SteppingAction.hh" +#include "G4UImessenger.hh" #include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5SteppingMessenger::Em5SteppingMessenger(Em5SteppingAction* SA) -:steppingAction (SA) -{ } +class Histo; +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithAString; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5SteppingMessenger::~Em5SteppingMessenger() -{ } +class HistoMessenger: public G4UImessenger +{ + public: -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + HistoMessenger(Histo* ); + ~HistoMessenger(); -void Em5SteppingMessenger::SetNewValue(G4UIcommand*, G4String) -{ } + void SetNewValue(G4UIcommand* ,G4String ); -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + private: + Histo* histo; + G4UIdirectory* histoDir; + G4UIcmdWithAString* factoryCmd; + G4UIcmdWithAString* fileCmd; + G4UIcommand* histoCmd; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm9/include/IonC12.hh b/examples/extended/electromagnetic/TestEm9/include/IonC12.hh new file mode 100755 index 0000000000..c3787a9662 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/IonC12.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: IonC12.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// Each class inheriting from G4VIon +// corresponds to a particle type; one and only one +// instance for each class is guaranteed. +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef IonC12_h +#define IonC12_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include "G4VIon.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... + +class IonC12 : public G4VIon +{ +private: + static IonC12 theIon; + +public: + IonC12( + 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 ~IonC12(); + + static IonC12* IonDefinition(); + static IonC12* Ion(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....... + +#endif diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/MuonPhysics.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh old mode 100644 new mode 100755 similarity index 54% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/MuonPhysics.hh rename to examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh index c137b0875d..fc90850e3d --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/MuonPhysics.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListBinaryCascade.hh @@ -20,61 +20,57 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef MuonPhysics_h -#define MuonPhysics_h 1 - -#include "globals.hh" -#include "G4ios.hh" +// $Id: PhysListBinaryCascade.hh,v 1.5 2003/12/05 11:22:45 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// It is provide PhysicsList for Binary Cascade for +// protons and neutrons with the energy E<3 GeV +// +// ------------------------------------------------------------ +// History +// Created: 14.10.02 V.Ivanchenko +// +// Modified: +// +// ------------------------------------------------------------ +// +#ifndef PhysListBinaryCascade_h +#define PhysListBinaryCascade_h 1 #include "G4VPhysicsConstructor.hh" -#include "G4MultipleScattering.hh" -#include "G4MuBremsstrahlung.hh" -#include "G4MuPairProduction.hh" -#include "G4MuIonisation.hh" -#include "G4hIonisation.hh" +#include "globals.hh" +#include "G4ProtonInelasticProcess.hh" +#include "G4NeutronInelasticProcess.hh" +#include "G4ProtonInelasticCrossSection.hh" +#include "G4NeutronInelasticCrossSection.hh" -#include "G4MuonMinusCaptureAtRest.hh" - -class MuonPhysics : public G4VPhysicsConstructor +class PhysListBinaryCascade : public G4VPhysicsConstructor { - public: - MuonPhysics(const G4String& name="muon"); - virtual ~MuonPhysics(); + public: + PhysListBinaryCascade(const G4String& name = "binary"); + virtual ~PhysListBinaryCascade(); - 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(); - + 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(); + // registered to the process manager of each particle type + void ConstructProcess(); - protected: - // Muon physics - G4MultipleScattering fMuPlusMultipleScattering; - G4MuBremsstrahlung fMuPlusBremsstrahlung ; - G4MuPairProduction fMuPlusPairProduction; - G4MuIonisation fMuPlusIonisation; + private: - G4MultipleScattering fMuMinusMultipleScattering; - G4MuBremsstrahlung fMuMinusBremsstrahlung ; - G4MuPairProduction fMuMinusPairProduction; - G4MuIonisation fMuMinusIonisation; - - G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; - - // Tau physics - G4MultipleScattering fTauPlusMultipleScattering; - G4hIonisation fTauPlusIonisation; - - G4MultipleScattering fTauMinusMultipleScattering; - G4hIonisation fTauMinusIonisation; + G4ProtonInelasticProcess theIPproton; + G4NeutronInelasticProcess theIPneutron; + G4ProtonInelasticCrossSection thePXSec; + G4NeutronInelasticCrossSection theNXSec; }; -// 2002 by J.P. Wellisch - #endif - diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListEmG4v52.hh new file mode 100644 index 0000000000..0c643bf533 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/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.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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/TestEm9/include/PhysListEmStandard.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListEmStandard.hh new file mode 100755 index 0000000000..68a8868959 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/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.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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"); + virtual ~PhysListEmStandard(); + +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(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.hh new file mode 100755 index 0000000000..4b7d9f9615 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListGeneral.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: PhysListGeneral.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListGeneral_h +#define PhysListGeneral_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "G4Decay.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListGeneral : public G4VPhysicsConstructor +{ +public: + PhysListGeneral(const G4String& name = "general"); + virtual ~PhysListGeneral(); + +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(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/environments/OPACS/include/EXPO_PhysicsList.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListHadronElastic.hh old mode 100644 new mode 100755 similarity index 61% rename from environments/OPACS/include/EXPO_PhysicsList.hh rename to examples/extended/electromagnetic/TestEm9/include/PhysListHadronElastic.hh index c3306f3104..9000cbf256 --- a/environments/OPACS/include/EXPO_PhysicsList.hh +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListHadronElastic.hh @@ -21,55 +21,56 @@ // ******************************************************************** // // -// $Id: EXPO_PhysicsList.hh,v 1.5 2001/07/11 09:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // -// // ------------------------------------------------------------ // GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// It is provide PhysicsList for hadron eleastic process // -// This class is a class derived from G4VUserPhysicsList -// for constructing all particles and processes. +// ------------------------------------------------------------ +// History +// Created: 14.10.02 V.Ivanchenko // +// Modified: +// // ------------------------------------------------------------ -#ifndef EXPO_PhysicsList_h -#define EXPO_PhysicsList_h 1 +// +#ifndef PhysListHadronElastic_h +#define PhysListHadronElastic_h 1 -#include "G4VUserPhysicsList.hh" +#include "G4VPhysicsConstructor.hh" +#include "G4HadronElasticProcess.hh" #include "globals.hh" -class EXPO_PhysicsList: public G4VUserPhysicsList +class PhysListHadronElastic : public G4VPhysicsConstructor { - public: - EXPO_PhysicsList(); - virtual ~EXPO_PhysicsList(); +public: + PhysListHadronElastic(const G4String& name = "elastic"); + virtual ~PhysListHadronElastic(); - 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 ConstructBarions(); - virtual void ConstructIons(); - - protected: - // these methods Construct physics processes and register them - virtual void ConstructGeneral(); - virtual void ConstructEM(); - virtual void ConstructHad(); - virtual void ConstructLeptHad(); +public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); +private: + // Elastic Process + G4HadronElasticProcess theElasticProcess; }; + #endif + + + + + diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.hh new file mode 100644 index 0000000000..5afcb3c2e7 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListIonBinaryCascade.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: PhysListIonBinaryCascade.hh,v 1.2 2003/12/05 11:22:45 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// Class Description: +// This class is an derived class of G4VPhysicsConstructor +// It is provide PhysicsList for Binary Cascade for +// protons and neutrons with the energy E<3 GeV +// +// ------------------------------------------------------------ +// History +// Created: 18.11.03 V.Ivanchenko +// +// Modified: +// +// ------------------------------------------------------------ +// +#ifndef PhysListIonBinaryCascade_h +#define PhysListIonBinaryCascade_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" +#include "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4AlphaInelasticProcess.hh" + +class G4HadronInelasticProcess; + +class PhysListIonBinaryCascade : public G4VPhysicsConstructor +{ + public: + PhysListIonBinaryCascade(const G4String& name = "binary_ion"); + virtual ~PhysListIonBinaryCascade(); + + public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + 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(); + + private: + + G4DeuteronInelasticProcess theIPdeuteron; + G4TritonInelasticProcess theIPtriton; + G4AlphaInelasticProcess theIPalpha; + G4HadronInelasticProcess* theIPHe3; + G4HadronInelasticProcess* theIPIonC12; + G4HadronInelasticProcess* theIPGenericIon; + +}; + +#endif diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh b/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.hh new file mode 100755 index 0000000000..e7c51a569c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/PhysListParticles.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: PhysListParticles.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef PhysListParticles_h +#define PhysListParticles_h 1 + +#include "G4VPhysicsConstructor.hh" +#include "globals.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysListParticles : public G4VPhysicsConstructor +{ +public: + PhysListParticles(const G4String& name = "particles"); + virtual ~PhysListParticles(); + +public: + // This method will be invoked in the Construct() method. + // each particle type will be instantiated + virtual void ConstructParticle(); + + // This method is dummy. + virtual void ConstructProcess() {}; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + + + + diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh b/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh new file mode 100755 index 0000000000..664ef44c2c --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/PhysicsList.hh @@ -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: PhysicsList.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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 G4VPhysicsConstructor; +class StepMax; +class PhysicsListMessenger; +class G4ProductionCuts; + +//....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;}; + + void SetVertexCut(G4double val); + void SetMuonCut(G4double val); + +private: + + // hide assignment operator + PhysicsList & operator=(const PhysicsList &right); + PhysicsList(const PhysicsList&); + + G4double cutForGamma; + G4double cutForElectron; + G4double cutForPositron; + + G4VPhysicsConstructor* emPhysicsList; + G4VPhysicsConstructor* generalPhysicsList; + G4VPhysicsConstructor* particleList; + std::vector hadronPhys; + G4String emName; + + StepMax* stepMaxProcess; + + PhysicsListMessenger* pMessenger; + G4ProductionCuts* vertexDetectorCuts; + G4ProductionCuts* muonDetectorCuts; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.hh new file mode 100755 index 0000000000..9cde6075c9 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/PhysicsListMessenger.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: PhysicsListMessenger.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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 G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithAString; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PhysicsListMessenger: public G4UImessenger +{ +public: + + PhysicsListMessenger(PhysicsList* ); + ~PhysicsListMessenger(); + + void SetNewValue(G4UIcommand*, G4String); + +private: + + PhysicsList* pPhysicsList; + + G4UIcmdWithADoubleAndUnit* gammaCutCmd; + G4UIcmdWithADoubleAndUnit* electCutCmd; + G4UIcmdWithADoubleAndUnit* protoCutCmd; + G4UIcmdWithADoubleAndUnit* allCutCmd; + G4UIcmdWithADoubleAndUnit* mCutCmd; + G4UIcmdWithADoubleAndUnit* eCutCmd; + G4UIcmdWithAString* pListCmd; + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh b/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.hh new file mode 100644 index 0000000000..e21e3908ac --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/PrimaryGeneratorAction.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: PrimaryGeneratorAction.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +///////////////////////////////////////////////////////////////////////// +// +// TestEm9: Crystal calorimeter +// +// Created: 31.01.03 V.Ivanchenko +// +// Modified: +// +//////////////////////////////////////////////////////////////////////// +// + +//....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; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction +{ +public: + PrimaryGeneratorAction(DetectorConstruction*); + ~PrimaryGeneratorAction(); + +public: + void GeneratePrimaries(G4Event*); + G4ParticleGun* GetParticleGun() {return particleGun;}; + +private: + + PrimaryGeneratorAction & operator=(const PrimaryGeneratorAction &right); + PrimaryGeneratorAction(const PrimaryGeneratorAction&); + + G4ParticleGun* particleGun; + DetectorConstruction* detector; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + diff --git a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/RunAction.hh old mode 100644 new mode 100755 similarity index 75% rename from examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh rename to examples/extended/electromagnetic/TestEm9/include/RunAction.hh index cbe9559f76..8d89ded439 --- a/examples/extended/electromagnetic/TestEm5/include/Em5SteppingMessenger.hh +++ b/examples/extended/electromagnetic/TestEm9/include/RunAction.hh @@ -20,37 +20,40 @@ // * statement, and all its terms. * // ******************************************************************** // +#ifndef RunAction_h +#define RunAction_h 1 + +// ------------------------------------------------------------- // -// $Id: Em5SteppingMessenger.hh,v 1.5 2003/05/30 10:28:04 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 // +// +// ------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#ifndef Em5SteppingMessenger_h -#define Em5SteppingMessenger_h 1 - +#include "G4UserRunAction.hh" +#include "G4Run.hh" #include "globals.hh" -#include "G4UImessenger.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class Em5SteppingAction; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -class Em5SteppingMessenger: public G4UImessenger +class RunAction : public G4UserRunAction { - public: - Em5SteppingMessenger(Em5SteppingAction* ); - ~Em5SteppingMessenger(); +public: // Without description - void SetNewValue(G4UIcommand* ,G4String ); + RunAction(); + ~RunAction(); + +public: // With description + + void BeginOfRunAction(const G4Run*); + // In this method histogramms are booked + + void EndOfRunAction(const G4Run*); + // In this method bookHisto method is called in which histogramms are filled - private: - Em5SteppingAction* steppingAction; }; #endif diff --git a/examples/extended/electromagnetic/TestEm9/include/StepMax.hh b/examples/extended/electromagnetic/TestEm9/include/StepMax.hh new file mode 100755 index 0000000000..72065270f2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/StepMax.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: StepMax.hh,v 1.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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 0.;}; // it is not needed here ! + +private: + + StepMax & operator=(const StepMax &right); + StepMax(const StepMax&); + + G4double MaxChargedStep; + G4double ProposedStep; + + StepMaxMessenger* pMess; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + diff --git a/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh b/examples/extended/electromagnetic/TestEm9/include/StepMaxMessenger.hh new file mode 100755 index 0000000000..e67f29be89 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/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.2 2003/10/31 12:08:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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/TestEm9/include/SteppingAction.hh b/examples/extended/electromagnetic/TestEm9/include/SteppingAction.hh new file mode 100644 index 0000000000..b2d568f6bd --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/SteppingAction.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: SteppingAction.hh,v 1.2 2003/10/31 12:08:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +///////////////////////////////////////////////////////////////////////// +// +// TestEm9: Crystal calorimetry +// +// Created: 31.01.03 V.Ivanchenko +// +// Modified: +// +//////////////////////////////////////////////////////////////////////// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef SteppingAction_h +#define SteppingAction_h 1 + +#include "G4UserSteppingAction.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class HistoManager; + +class SteppingAction : public G4UserSteppingAction +{ +public: + SteppingAction(); + ~SteppingAction(); + + void UserSteppingAction(const G4Step*); + +private: + + SteppingAction & operator=(const SteppingAction &right); + SteppingAction(const SteppingAction&); + + HistoManager* theHisto; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/electromagnetic/TestEm9/include/SteppingVerbose.hh b/examples/extended/electromagnetic/TestEm9/include/SteppingVerbose.hh new file mode 100755 index 0000000000..aae25b6878 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/SteppingVerbose.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: SteppingVerbose.hh,v 1.2 2003/10/31 12:08:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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 SteppingVerbose; + +#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(); + +private: + void PrintStep(G4bool firstStep); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/novice/N03/include/ExN03TrackingAction.hh b/examples/extended/electromagnetic/TestEm9/include/TrackingAction.hh old mode 100644 new mode 100755 similarity index 69% rename from examples/novice/N03/include/ExN03TrackingAction.hh rename to examples/extended/electromagnetic/TestEm9/include/TrackingAction.hh index 5a6256efc7..0c2c538f88 --- a/examples/novice/N03/include/ExN03TrackingAction.hh +++ b/examples/extended/electromagnetic/TestEm9/include/TrackingAction.hh @@ -20,35 +20,49 @@ // * statement, and all its terms. * // ******************************************************************** // +#ifndef TrackingAction_h +#define TrackingAction_h 1 + +//--------------------------------------------------------------------------- // -// $Id: ExN03TrackingAction.hh,v 1.3 2003/05/28 10:08:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ClassName: TrackingAction +// +// Description: Implementation file for control on MC truth +// +// Author: V.Ivanchenko 13/03/01 +// +// Modified: +// +//---------------------------------------------------------------------------- // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN03TrackingAction_h -#define ExN03TrackingAction_h +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4UserTrackingAction.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class G4Track; +class HistoManager; -class ExN03TrackingAction : public G4UserTrackingAction +class TrackingAction : public G4UserTrackingAction { - public: - ExN03TrackingAction() {;} - ~ExN03TrackingAction() {;} - void PreUserTrackingAction (const G4Track* aTrack); - void PostUserTrackingAction(const G4Track*) {;} +public: + TrackingAction(); + ~TrackingAction(); + + void PreUserTrackingAction(const G4Track*); + void PostUserTrackingAction(const G4Track*) {}; + +private: + + TrackingAction & operator=(const TrackingAction &right); + TrackingAction(const TrackingAction&); + + HistoManager* theHisto; + }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - #endif - diff --git a/examples/extended/electromagnetic/TestEm9/include/VisManager.hh b/examples/extended/electromagnetic/TestEm9/include/VisManager.hh new file mode 100755 index 0000000000..af29751aa6 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/include/VisManager.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. * +// ******************************************************************** +// +#ifndef VisManager_h +#define VisManager_h 1 + +//--------------------------------------------------------------------------- +// +// ClassName: VisManager +// +// Class Description: +// 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 (). +// 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); +// The run messenger is defined +// Class Description - end +// +// Authors: 08.04.01 V.Ivanchenko take from John Allison Examples +// +// Modified: +// +//---------------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VisManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class VisManager: public G4VisManager { + +public: // Without description + + VisManager (); + +private: + + void RegisterGraphicsSystems (); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc b/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc new file mode 100644 index 0000000000..1b0dbba853 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/DetectorConstruction.cc @@ -0,0 +1,436 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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.4 2003/11/25 15:19:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +///////////////////////////////////////////////////////////////////////// +// +// TestEm9: Crystal calorimeter +// +// Created: 31.01.03 V.Ivanchenko +// +// Modified: +// +//////////////////////////////////////////////////////////////////////// +// + + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorConstruction.hh" +#include "DetectorMessenger.hh" + +#include "G4Box.hh" +#include "G4LogicalVolume.hh" +#include "G4PVPlacement.hh" +#include "G4PVReplica.hh" + +#include "G4TransportationManager.hh" + +#include "G4GeometryManager.hh" +#include "G4RunManager.hh" +#include "G4Region.hh" +#include "G4RegionStore.hh" +#include "G4PhysicalVolumeStore.hh" +#include "G4LogicalVolumeStore.hh" +#include "G4SolidStore.hh" + +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +#include "G4UnitsTable.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::DetectorConstruction() +:logicC(0), + logicA1(0), + logicA2(0) +{ + detectorMessenger = new DetectorMessenger(this); + DefineMaterials(); + ecalLength = 36.*cm; + ecalWidth = 6.*cm; + vertexLength = 3.*cm; + padLength = 0.1*mm; + padWidth = 0.02*mm; + absLength = 2.*mm; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorConstruction::~DetectorConstruction() +{ delete detectorMessenger;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::Construct() +{ + return ConstructVolumes(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::DefineMaterials() +{ + G4String name, symbol; + G4double a, z, density; + G4int ncomponents, natoms; + G4double fractionmass; + + // + // define few Elements + // + + a = 1.01*g/mole; + G4Element* H = new G4Element(name="Hydrogen", symbol="H", z=1., a); + + a = 14.01*g/mole; + G4Element* N = new G4Element(name="Nitrogen", symbol="N", z=7., a); + + a = 16.00*g/mole; + G4Element* O = new G4Element(name="Oxygen" , symbol="O", z=8., a); + + a = 72.59*g/mole; + G4Element* Ge = new G4Element(name="Germanium", symbol="Ge",z=32., a); + + a = 183.84*g/mole; + G4Element* W = new G4Element(name="Tungsten" , symbol="W", z=74., a); + + a = 207.19*g/mole; + G4Element* Pb = new G4Element(name="Lead" , symbol="Pb",z=82., a); + + a = 208.98*g/mole; + G4Element* Bi = new G4Element(name="Bismuth" , symbol="Bi",z=83., a); + + G4Element* Cs = new G4Element ("Cesium" , "Cs", 55. , 132.905*g/mole); + + G4Element* I = new G4Element ("Iodide" , "I", 53. , 126.9044*g/mole); + + // + // define materials + // + + G4Material* ma = 0; + + //Air + density = 1.29*mg/cm3; + G4Material* Air = new G4Material(name="Air", density, ncomponents=2); + Air->AddElement(N, fractionmass=0.7); + Air->AddElement(O, fractionmass=0.3); + + //H2O + density = 1.00*g/cm3; + G4Material* H2O = new G4Material(name="Water", density, ncomponents=2); + H2O->AddElement(H, natoms=2); + H2O->AddElement(O, natoms=1); + G4double exc = H2O->GetIonisation()->FindMeanExcitationEnergy("H_2O"); + H2O->GetIonisation()->SetMeanExcitationEnergy(exc); + + //liquid argon + a = 39.95*g/mole; + density = 1.390*g/cm3; + ma = new G4Material(name="lAr", z=18., a, density); + + //Al + a = 26.98*g/mole; + density = 2.7*g/cm3; + absMaterial = new G4Material(name="Al", z=13., a, density); + + //Si + density = 2.330*g/cm3; + a = 28.09*g/mole; + vertMaterial = new G4Material(name="Si", z=14., a, density); + + + //Fe + a = 55.85*g/mole; + density = 7.87*g/cm3; + yorkMaterial = new G4Material(name="Fe", z=26., a, density); + + // CsI + ma = new G4Material ("CsI" , 4.51*g/cm3, 2); + ma->SetChemicalFormula("CsI"); + ma->AddElement(Cs,1); + ma->AddElement(I,1); + ma->GetIonisation()->SetMeanExcitationEnergy(415.689*eV); + calMaterial = ma; + + + //BGO + density = 7.10*g/cm3; + G4Material* BGO = new G4Material(name="BGO", density, ncomponents=3); + BGO->AddElement(O , natoms=12); + BGO->AddElement(Ge, natoms= 3); + BGO->AddElement(Bi, natoms= 4); + + //PbWO4 + density = 8.28*g/cm3; + G4Material* PbWO = new G4Material(name="PbWO4", density, ncomponents=3); + PbWO->AddElement(O , natoms=4); + PbWO->AddElement(Pb, natoms=1); + PbWO->AddElement(W , natoms=1); + + //Tungsten + density = 19.30*g/cm3; + G4Material* w = new G4Material(name="Tungsten", density, ncomponents=1); + w->AddElement(W, fractionmass=1.0); + + //Pb + density = 11.35*g/cm3; + G4Material* pb = new G4Material(name="Lead", density, ncomponents=1); + pb->AddElement(Pb, fractionmass=1.0); + + G4cout << *(G4Material::GetMaterialTable()) << G4endl; + + //choose material + worldMaterial = Air; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VPhysicalVolume* DetectorConstruction::ConstructVolumes() +{ + // Cleanup old geometry + + G4GeometryManager::GetInstance()->OpenGeometry(); + G4PhysicalVolumeStore::GetInstance()->Clean(); + G4LogicalVolumeStore::GetInstance()->Clean(); + G4SolidStore::GetInstance()->Clean(); + // G4RegionStore::GetInstance()->Clean(); + + if(vertexLength < padLength*5.0) vertexLength = padLength*5.0; + G4double gap = 0.01*mm; + G4double biggap = 2.*cm; + G4double york = 10.*cm; + + worldZ = 2.*vertexLength + 3.*absLength + 0.5*(ecalLength + york) + biggap*2.; + G4double worldX = ecalWidth*3.0; + G4double vertexZ= -worldZ + vertexLength*2.0 + absLength + biggap; + G4double absZ2 = -worldZ + vertexLength*4.0 + absLength*3.5 + biggap; + G4double ecalZ = -worldZ + vertexLength*4.0 + absLength*4.0 + ecalLength*0.5 + 2.*biggap; + G4double yorkZ = -worldZ + vertexLength*4.0 + absLength*5.0 + ecalLength + + york*0.5 + 3.*biggap; + + // + // World + // + G4Box* solidW = new G4Box("World",worldX,worldX,worldZ); + G4LogicalVolume* logicW = new G4LogicalVolume( solidW,worldMaterial, + "World"); + G4VPhysicalVolume* world = new G4PVPlacement(0,G4ThreeVector(), + "World",logicW,0,false,0); + + // + // Ecal + // + G4Box* solidE = new G4Box("VolE",worldX,worldX,ecalLength*0.5 + gap); + G4LogicalVolume* logicE = new G4LogicalVolume( solidE,worldMaterial, + "VolE"); + G4VPhysicalVolume* physE = new G4PVPlacement(0,G4ThreeVector(0.,0.,ecalZ), + "VolE",logicE,world,false,0); + + G4Box* solidC = new G4Box("Ecal",ecalWidth*0.5,ecalWidth*0.5,ecalLength*0.5); + logicC = new G4LogicalVolume( solidC,calMaterial,"Ecal"); + + G4cout << "Ecal is " << G4BestUnit(ecalLength,"Length") + << " of " << calMaterial->GetName() << G4endl; + + // Crystals + + G4double x0 = -(ecalWidth + gap)*2.0; + G4double y = x0; + G4double x; + G4int k = 0; + G4VPhysicalVolume* pv; + G4int i,j; + + for (i=0; i<5; i++) { + x = x0; + for (j=0; j<5; j++) { + + pv = new G4PVPlacement(0,G4ThreeVector(x,y,0.),"Ecal",logicC, + physE,false,k); + k++; + x += ecalWidth + gap; + } + y += ecalWidth + gap; + } + + //Absorber + + G4Box* solidA = new G4Box("Abso",worldX,worldX,absLength*0.5); + logicA2 = new G4LogicalVolume( solidA,absMaterial,"Abs2"); + pv = new G4PVPlacement(0,G4ThreeVector(0.,0.,absZ2), + "Abs2",logicA2,world,false,0); + + G4cout << "Absorber is " << G4BestUnit(absLength,"Length") + << " of " << absMaterial->GetName() << G4endl; + + //York + + G4Box* solidYV = new G4Box("VolY",worldX,worldX,york*0.5+absLength); + G4LogicalVolume* logicYV = new G4LogicalVolume( solidYV,yorkMaterial,"VolY"); + G4VPhysicalVolume* physYV = new G4PVPlacement(0,G4ThreeVector(0.,0.,yorkZ), + "VolY",logicYV,world,false,0); + + G4Box* solidY = new G4Box("York",worldX,worldX,york*0.5); + G4LogicalVolume* logicY = new G4LogicalVolume( solidY,yorkMaterial,"York"); + pv = new G4PVPlacement(0,G4ThreeVector(), + "York",logicY,physYV,false,0); + + logicA3 = new G4LogicalVolume( solidA,absMaterial,"Abs3"); + logicA4 = new G4LogicalVolume( solidA,absMaterial,"Abs4"); + pv = new G4PVPlacement(0,G4ThreeVector(0.,0.,-(york+absLength)*0.5), + "Abs3",logicA3,physYV,false,0); + pv = new G4PVPlacement(0,G4ThreeVector(0.,0.,(york+absLength)*0.5), + "Abs4",logicA4,physYV,false,0); + + //Vertex volume + + G4Box* solidVV = new G4Box("VolV",worldX,worldX,vertexLength*2.+absLength+gap); + G4LogicalVolume* logicVV = new G4LogicalVolume( solidVV,worldMaterial,"VolV"); + G4VPhysicalVolume* physVV = new G4PVPlacement(0,G4ThreeVector(0.,0.,vertexZ), + "VolV",logicVV,world,false,0); + + //Absorber + + logicA1 = new G4LogicalVolume( solidA,absMaterial,"Abs1"); + pv = new G4PVPlacement(0,G4ThreeVector(0.,0.,vertexLength*2.-absLength*0.5), + "Abs1",logicA1,physVV,false,0); + + //Vertex + + G4double vertWidth = ecalWidth/5.; + G4int npads = (G4int)(vertWidth/padWidth); + npads = (npads/2)*2 + 1; + x0 = -0.5*padWidth*((G4double)(npads-1)); + G4double x1 = abs(x0) + 0.5*padWidth + gap; + G4double z = -(vertexLength+absLength); + + G4Box* solidVD = new G4Box("VertDet",x1,ecalWidth*0.5+gap,padLength*0.5); + G4LogicalVolume* logicVD = new G4LogicalVolume( solidVD,vertMaterial,"VertDet"); + + G4Box* solidV = new G4Box("Vert",padWidth*0.5,ecalWidth*0.5,padLength*0.5); + G4LogicalVolume* logicV = new G4LogicalVolume( solidV,vertMaterial,"Vert"); + + for (i=0; i<3; i++) { + pv = new G4PVPlacement(0,G4ThreeVector(0.,0.,z),"VertDet",logicVD, + physVV,false,i); + z += vertexLength; + } + x = x0; + + for (j=0; jAddRootLogicalVolume(logicVV); + regionV->AddRootLogicalVolume(logicA3); + + + // Define region for the muon detector + + G4Region* regionM = new G4Region("MuonDetector"); + regionM->AddRootLogicalVolume(logicYV); + + // color regions + + logicVV-> SetVisAttributes(G4VisAttributes::Invisible); + logicV-> SetVisAttributes(G4VisAttributes::Invisible); + logicE-> SetVisAttributes(G4VisAttributes::Invisible); + logicYV-> SetVisAttributes(G4VisAttributes::Invisible); + + G4VisAttributes* regWcolor = new G4VisAttributes(G4Colour(0.3, 0.3, 0.3)); + logicW->SetVisAttributes(regWcolor); + + G4VisAttributes* regVcolor = new G4VisAttributes(G4Colour(0., 0.3, 0.7)); + logicVD->SetVisAttributes(regVcolor); + + G4VisAttributes* regCcolor = new G4VisAttributes(G4Colour(0., 0.7, 0.3)); + logicC->SetVisAttributes(regCcolor); + + G4VisAttributes* regAcolor = new G4VisAttributes(G4Colour(1., 0.5, 0.5)); + logicA1->SetVisAttributes(regAcolor); + logicA2->SetVisAttributes(regAcolor); + logicA3->SetVisAttributes(regAcolor); + logicA4->SetVisAttributes(regAcolor); + + G4VisAttributes* regMcolor = new G4VisAttributes(G4Colour(1., 1., 0.)); + logicY->SetVisAttributes(regMcolor); + + // always return world + // + return world; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetEcalMaterial(const G4String& materialChoice) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + if (pttoMaterial) + { + calMaterial = pttoMaterial; + if(logicC) logicC->SetMaterial(calMaterial); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::SetAbsMaterial(const G4String& materialChoice) +{ + // search the material by its name + G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); + if (pttoMaterial) + { + absMaterial = pttoMaterial; + if(logicA1) logicA1->SetMaterial(absMaterial); + if(logicA2) logicA2->SetMaterial(absMaterial); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorConstruction::UpdateGeometry() +{ + G4RunManager::GetRunManager()->DefineWorldVolume(ConstructVolumes()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.cc new file mode 100644 index 0000000000..c964379126 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/DetectorMessenger.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: DetectorMessenger.cc,v 1.1 2003/07/14 17:10:16 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +///////////////////////////////////////////////////////////////////////// +// +// TestEm9: Crystal calorimeter +// +// Created: 31.01.03 V.Ivanchenko +// +// Modified: +// +//////////////////////////////////////////////////////////////////////// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "DetectorMessenger.hh" + +#include "DetectorConstruction.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWith3Vector.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."); + + MaterCmd = new G4UIcmdWithAString("/testem/det/CalMat",this); + MaterCmd->SetGuidance("Select Material for calorimeter"); + MaterCmd->SetParameterName("calMaterial",false); + MaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + LBinCmd = new G4UIcmdWithAString("/testem/det/AbsMat",this); + LBinCmd->SetGuidance("Select Material for absorber"); + LBinCmd->SetParameterName("absMarerial",false); + LBinCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + l1Cmd = new G4UIcmdWithADoubleAndUnit("/testem/det/EcalLength",this); + l1Cmd->SetGuidance("Set length of Ecal"); + l1Cmd->SetParameterName("lEcal",false); + l1Cmd->SetUnitCategory("Length"); + l1Cmd->SetRange("lEcal>0"); + l1Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + l2Cmd = new G4UIcmdWithADoubleAndUnit("/testem/det/EcalWidth",this); + l2Cmd->SetGuidance("Set width of Ecal crystal"); + l2Cmd->SetParameterName("wEcal",false); + l2Cmd->SetUnitCategory("Length"); + l2Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + l3Cmd = new G4UIcmdWithADoubleAndUnit("/testem/det/AbsLength",this); + l3Cmd->SetGuidance("Set length of the absorber"); + l3Cmd->SetParameterName("lAbs",false); + l3Cmd->SetUnitCategory("Length"); + l3Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + l4Cmd = new G4UIcmdWithADoubleAndUnit("/testem/det/VertexLength",this); + l4Cmd->SetGuidance("Set length of the vertex region"); + l4Cmd->SetParameterName("lVert",false); + l4Cmd->SetUnitCategory("Length"); + l4Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + l5Cmd = new G4UIcmdWithADoubleAndUnit("/testem/det/PadLength",this); + l5Cmd->SetGuidance("Set length of vertex detector"); + l5Cmd->SetParameterName("lPad",false); + l5Cmd->SetUnitCategory("Length"); + l5Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + l6Cmd = new G4UIcmdWithADoubleAndUnit("/testem/det/PadWidth",this); + l6Cmd->SetGuidance("Set width of a vertex pad"); + l6Cmd->SetParameterName("wPad",false); + l6Cmd->SetUnitCategory("Length"); + l6Cmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + UpdateCmd = new G4UIcmdWithoutParameter("/testem/det/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_PreInit,G4State_Idle); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +DetectorMessenger::~DetectorMessenger() +{ + delete MaterCmd; + delete LBinCmd; + delete l1Cmd; + delete l2Cmd; + delete l3Cmd; + delete l4Cmd; + delete l5Cmd; + delete l6Cmd; + delete UpdateCmd; + delete testemDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +{ + if( command == MaterCmd ) + { Detector->SetEcalMaterial(newValue);} + + if( command == LBinCmd ) + { Detector->SetAbsMaterial(newValue);} + + if( command == l1Cmd ) + { Detector->SetEcalLength(l1Cmd->GetNewDoubleValue(newValue));} + + if( command == l2Cmd ) + { Detector->SetEcalWidth(l2Cmd->GetNewDoubleValue(newValue));} + + if( command == l3Cmd ) + { Detector->SetAbsLength(l3Cmd->GetNewDoubleValue(newValue));} + + if( command == l4Cmd ) + { Detector->SetVertexLength(l4Cmd->GetNewDoubleValue(newValue));} + + if( command == l5Cmd ) + { Detector->SetPadLength(l5Cmd->GetNewDoubleValue(newValue));} + + if( command == l6Cmd ) + { Detector->SetPadWidth(l6Cmd->GetNewDoubleValue(newValue));} + + if( command == UpdateCmd ) + { Detector->UpdateGeometry();} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm9/src/EventAction.cc b/examples/extended/electromagnetic/TestEm9/src/EventAction.cc new file mode 100755 index 0000000000..13f6796dfe --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/EventAction.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: EventAction.cc,v 1.3 2003/10/31 12:08:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "EventAction.hh" +#include "HistoManager.hh" +#include "EventActionMessenger.hh" + +#include "G4UImanager.hh" +#include "G4TrajectoryContainer.hh" +#include "G4Trajectory.hh" +#include "G4VVisManager.hh" +#include "G4Gamma.hh" +#include "G4ios.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +EventAction::EventAction(): + nEvt(0), + printModulo(100), + verbose(0), + drawFlag("all") +{ + eventMessenger = new EventActionMessenger(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +EventAction::~EventAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void EventAction::BeginOfEventAction(const G4Event*) +{ + // New event + nEvt++; + HistoManager* hi = HistoManager::GetPointer(); + hi->BeginOfEvent(); + + // Switch on verbose mode + + if(hi->FirstEventToDebug() == nEvt) { + verbose = 2; + hi->SetVerbose(2); + (G4UImanager::GetUIpointer())->ApplyCommand("/tracking/verbose 2"); + } + + // Switch off verbose mode + if(hi->LastEventToDebug() == nEvt-1) { + verbose = 0; + hi->SetVerbose(0); + (G4UImanager::GetUIpointer())->ApplyCommand("/tracking/verbose 0"); + } + + + // Initialize user actions + if(verbose > 0) { + G4cout << "EventAction: Event # " + << nEvt << " started" << G4endl; + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void EventAction::EndOfEventAction(const G4Event* evt) +{ + (HistoManager::GetPointer())->EndOfEvent(); + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + + if(pVVisManager) { + G4TrajectoryContainer* trjc = evt->GetTrajectoryContainer(); + G4int n_trajectories = 0; + if (trjc) n_trajectories = trjc->entries(); + + for(G4int i=0; iGetTrajectoryContainer()))[i]); + if (drawFlag == "all") t->DrawTrajectory(1000); + else if ((drawFlag == "charged")&&(t->GetCharge() != 0.)) + t->DrawTrajectory(1000); + } + } + + if(verbose > 0) { + G4cout << "EventAction: Event # " + << nEvt << " ended" << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.cc new file mode 100644 index 0000000000..0743a736c3 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/EventActionMessenger.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: EventActionMessenger.cc,v 1.1 2003/10/13 15:42:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "EventActionMessenger.hh" + +#include "EventAction.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcmdWithAnInteger.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +EventActionMessenger::EventActionMessenger(EventAction* EvAct) +:eventAction(EvAct) +{ + 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; +} + +//....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/TestEm9/src/Histo.cc b/examples/extended/electromagnetic/TestEm9/src/Histo.cc new file mode 100644 index 0000000000..c13bb1e8d0 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/Histo.cc @@ -0,0 +1,234 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +//--------------------------------------------------------------------------- +// +// ClassName: Histo - Generic histogram/ntuple manager class +// +// +// Author: V.Ivanchenko 30.10.03 +// +//---------------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "Histo.hh" + +#ifdef G4ANALYSIS_USE +#include // for the auto_ptr(T> +#include "AIDA/AIDA.h" +#include "HistoMessenger.hh" +#endif + +//#include + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +Histo::Histo() +{ + verbose = 0; + histName = "histo.paw"; + histType = "hbook"; + nHisto = 0; + defaultAct = 1; + tupleName = "tuple.paw"; + tupleId = "100"; + tupleList = ""; + ntup = 0; + messenger = 0; + +#ifdef G4ANALYSIS_USE + messenger = new HistoMessenger(this); +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +Histo::~Histo() +{ +#ifdef G4ANALYSIS_USE + for(G4int i=0; i af( AIDA_createAnalysisFactory() ); + + // Creating the tree factory + std::auto_ptr< AIDA::ITreeFactory > tf( af->createTreeFactory() ); + + // Creating a tree mapped to a new hbook file. + //tree = tf->create(histName,histType,false,false); + tree = tf->create(histName,histType,false,false,"uncompress"); + G4cout << "Tree store : " << tree->storeName() << G4endl; + + // Creating a histogram factory, whose histograms will be handled by the tree + std::auto_ptr< AIDA::IHistogramFactory > hf(af->createHistogramFactory( *tree )); + + // Creating an 1-dimensional histograms in the root directory of the tree + for(G4int i=0; icreateHistogram1D(ids[i], tittles[i], bins[i], xmin[i], xmax[i]); + } + } + // Creating a tuple factory, whose tuples will be handled by the tree + if(tupleList != "") { + std::auto_ptr< AIDA::ITupleFactory > tpf( af->createTupleFactory( *tree ) ); + ntup = tpf->create(tupleId, tupleName, tupleList); + } +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +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; +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void Histo::add1D(const G4String& id, const G4String& name, G4int nb, + G4double x1, G4double x2, G4double u) +{ + if(verbose > 0) { + G4cout << "New histogram will be booked: #" << id << " <" << name + << " " << nb << " " << x1 << " " << x2 << " " << u + << G4endl; + } + nHisto++; + x1 /= u; + x2 /= u; + active.push_back(defaultAct); + bins.push_back(nb); + xmin.push_back(x1); + xmax.push_back(x2); + unit.push_back(u); + ids.push_back(id); + tittles.push_back(name); + histo.push_back(0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void Histo::setHisto1D(G4int i, G4int nb, G4double x1, G4double x2, G4double u) +{ + if(i>=0 && i 0) { + G4cout << "Update histogram: #" << i + << " " << nb << " " << x1 << " " << x2 << " " << u + << G4endl; + } + bins[i] = nb; + xmin[i] = x1; + xmax[i] = x2; + unit[i] = u; + } else { + G4cout << "Histo::setHisto1D: WARNING! wrong histogram index " << i << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void Histo::fill(G4int i, G4double x, G4double w) +{ + if(verbose > 1) { + G4cout << "fill histogram: #" << i << " at x= " << x + << " weight= " << w + << G4endl; + } +#ifdef G4ANALYSIS_USE + if(i>=0 && ifill((float)(x/unit[i]), (float)w); + } else { + G4cout << "Histo::fill: WARNING! wrong histogram index " << i << G4endl; + } +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void Histo::scale(G4int i, G4double x) +{ + if(verbose > 0) { + G4cout << "Scale histogram: #" << i << " by factor " << x << G4endl; + } +#ifdef G4ANALYSIS_USE + if(i>=0 && iscale(x); + } else { + G4cout << "Histo::scale: WARNING! wrong histogram index " << i << G4endl; + } +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void Histo::addTuple(const G4String& w1, const G4String& w2, const G4String& w3) +{ + tupleId = w1; + tupleName = w2; + tupleList = w3; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void Histo::fillTuple(const G4String& parname, G4double x) +{ + if(verbose > 1) { + G4cout << "fill tuple by parameter <" << parname << "> = " << x << G4endl; + } +#ifdef G4ANALYSIS_USE + if(ntup) ntup->fill(ntup->findColumn(parname), (float)x); +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void Histo::addRow() +{ +#ifdef G4ANALYSIS_USE + if(ntup) ntup->addRow(); +#endif +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/examples/extended/electromagnetic/TestEm9/src/HistoManager.cc b/examples/extended/electromagnetic/TestEm9/src/HistoManager.cc new file mode 100644 index 0000000000..68b7f411ee --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/HistoManager.cc @@ -0,0 +1,324 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +//--------------------------------------------------------------------------- +// +// ClassName: HistoManager +// +// +// Author: V.Ivanchenko 30/01/01 +// +//---------------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "HistoManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +HistoManager* HistoManager::fManager = 0; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +HistoManager* HistoManager::GetPointer() +{ + if(!fManager) { + fManager = new HistoManager(); + } + return fManager; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +HistoManager::HistoManager() +{ + verbose = 1; + nEvt1 = -1; + nEvt2 = -1; + bookHisto(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +HistoManager::~HistoManager() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void HistoManager::bookHisto() +{ + maxEnergy = 50.0*MeV; + beamEnergy= 1.*GeV; + maxEnergyAbs = 10.*MeV; + thKinE = 1.*MeV; + nBinsE = 100; + nBinsEA= 40; + nBinsED= 100; + nTuple = false; + nHisto = 10; + + histo.add1D("10", + "Energy deposit (MeV) in central crystal",nBinsED,0.0,beamEnergy,MeV); + + histo.add1D("11", + "Energy deposit (MeV) in 3x3",nBinsED,0.0,beamEnergy,MeV); + + histo.add1D("12", + "Energy deposit (MeV) in 5x5",nBinsED,0.0,beamEnergy,MeV); + + histo.add1D("13", + "Energy (MeV) of delta-electrons",nBinsE,0.0,maxEnergy,MeV); + + histo.add1D("14", + "Energy (MeV) of gammas",nBinsE,0.0,maxEnergy,MeV); + + histo.add1D("15", + "Energy (MeV) in abs1",nBinsEA,0.0,maxEnergyAbs,MeV); + + histo.add1D("16", + "Energy (MeV) in abs2",nBinsEA,0.0,maxEnergyAbs,MeV); + + histo.add1D("17", + "Energy (MeV) in abs3",nBinsEA,0.0,maxEnergyAbs,MeV); + + histo.add1D("18", + "Energy (MeV) in abs4",nBinsEA,0.0,maxEnergyAbs,MeV); + + histo.add1D("19", + "Number of vertex hits",20,-0.5,19.5,1.0); + + if(nTuple) { + histo.addTuple( "100", "Dose deposite","float r, z, e" ); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void HistoManager::BeginOfRun() +{ + n_evt = 0; + n_elec = 0; + n_posit= 0; + n_gam = 0; + n_step = 0; + histo.book(); + + if(verbose > 0) { + G4cout << "HistoManager: Histograms are booked and run has been started" + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void HistoManager::EndOfRun() +{ + + G4cout << "HistoManager: End of run actions are started" << G4endl; + + // average + + G4cout<<"========================================================"< 0) x = 1.0/x; + G4double xe = x*(G4double)n_elec; + G4double xg = x*(G4double)n_gam; + G4double xp = x*(G4double)n_posit; + G4double xs = x*(G4double)n_step; + G4cout << "Number of events " << n_evt <=i) || (11<=i && 13>=i) || (16<=i && 18>=i)) e9 += E[i]; + } + histo.fill(0,E[12],1.0); + histo.fill(1,e9,1.0); + histo.fill(2,e25,1.0); + histo.fill(5,Eabs1,1.0); + histo.fill(6,Eabs2,1.0); + histo.fill(7,Eabs3,1.0); + histo.fill(8,Eabs4,1.0); + float nn = (double)(Nvertex.size()); + histo.fill(9,nn,1.0); + + if(nTuple) histo.addRow(); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void HistoManager::ScoreNewTrack(const G4Track* aTrack) +{ + //Save primary parameters + ResetTrackLength(); + const G4ParticleDefinition* particle = aTrack->GetDefinition(); + const G4DynamicParticle* dynParticle = aTrack->GetDynamicParticle(); + G4String name = particle->GetParticleName(); + G4int pid = aTrack->GetParentID(); + G4double kinE = dynParticle->GetKineticEnergy(); + G4ThreeVector pos = aTrack->GetVertexPosition(); + + if(0 == pid) { + + histo.fillTuple("TKIN", kinE/MeV); + + G4double mass = 0.0; + if(particle) { + mass = particle->GetPDGMass(); + histo.fillTuple("MASS", mass/MeV); + histo.fillTuple("CHAR",(particle->GetPDGCharge())/eplus); + G4double beta = 1.; + if(mass > 0.) { + G4double gamma = kinE/mass + 1.; + beta = sqrt(1. - 1./(gamma*gamma)); + } + } + + G4ThreeVector dir = dynParticle->GetMomentumDirection(); + if(1 < verbose) { + G4cout << "TrackingAction: Primary kinE(MeV)= " << kinE/MeV + << "; m(MeV)= " << mass/MeV + << "; pos= " << pos << "; dir= " << dir << G4endl; + } + + // delta-electron + } else if (0 < pid && "e-" == name) { + if(1 < verbose) { + G4cout << "TrackingAction: Secondary electron " << G4endl; + } + AddDeltaElectron(dynParticle); + + } else if (0 < pid && "e+" == name) { + if(1 < verbose) { + G4cout << "TrackingAction: Secondary positron " << G4endl; + } + AddPositron(dynParticle); + + } else if (0 < pid && "gamma" == name) { + if(1 < verbose) { + G4cout << "TrackingAction: Secondary gamma; parentID= " << pid + << " E= " << kinE << G4endl; + } + AddPhoton(dynParticle); + + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoManager::AddEnergy(G4double edep, G4int volIndex, G4int copyNo) +{ + if(1 < verbose) { + G4cout << "HistoManager::AddEnergy: e(keV)= " << edep/keV + << "; volIdx= " << volIndex + << "; copyNo= " << copyNo + << G4endl; + } + if(0 == volIndex) { + E[copyNo] += edep; + } else if (1 == volIndex) { + Eabs1 += edep; + } else if (2 == volIndex) { + Eabs2 += edep; + } else if (3 == volIndex) { + Eabs3 += edep; + } else if (4 == volIndex) { + Eabs4 += edep; + } else if (5 == volIndex) { + G4int n = Nvertex.size(); + G4bool newPad = true; + if (n > 0) { + for(G4int i=0; iGetKineticEnergy()/MeV; + if(e > 0.0) n_elec++; + histo.fill(3,e,1.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void HistoManager::AddPhoton(const G4DynamicParticle* ph) +{ + G4double e = ph->GetKineticEnergy()/MeV; + if(e > 0.0) n_gam++; + histo.fill(4,e,1.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/examples/extended/electromagnetic/TestEm9/src/HistoMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/HistoMessenger.cc new file mode 100644 index 0000000000..89e586a937 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/HistoMessenger.cc @@ -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: HistoMessenger.cc,v 1.1 2003/10/31 12:09:37 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "HistoMessenger.hh" + +#include "Histo.hh" +#include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIparameter.hh" +#include "G4UIcmdWithAString.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoMessenger::HistoMessenger(Histo* manager) +:histo (manager) +{ + histoDir = new G4UIdirectory("/testem/histo/"); + histoDir->SetGuidance("histograms control"); + + factoryCmd = new G4UIcmdWithAString("/testem/histo/fileName",this); + factoryCmd->SetGuidance("set name for the histograms file"); + + fileCmd = new G4UIcmdWithAString("/testem/histo/fileType",this); + fileCmd->SetGuidance("set type (hbook, XML) for the histograms file"); + + 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); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +HistoMessenger::~HistoMessenger() +{ + delete fileCmd; + delete histoCmd; + delete factoryCmd; + delete histoDir; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void HistoMessenger::SetNewValue(G4UIcommand* command,G4String newValues) +{ + if (command == factoryCmd) + histo->setFileName(newValues); + + if (command == fileCmd) + histo->setFileType(newValues); + + if (command == histoCmd) + { G4int ih,nbBins; G4double vmin,vmax; char unts[30]; + const char* t = newValues; + std::istrstream is((char*)t); + is >> ih >> nbBins >> vmin >> vmax >> unts; + G4String unit = unts; + G4double vUnit = 1. ; + if (unit != "none") vUnit = G4UIcommand::ValueOf(unit); + histo->setHisto1D(ih,nbBins,vmin,vmax,vUnit); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/IonC12.cc b/examples/extended/electromagnetic/TestEm9/src/IonC12.cc new file mode 100755 index 0000000000..5ceba0155e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/IonC12.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: IonC12.cc,v 1.1 2003/07/14 17:10:16 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +#include "IonC12.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +IonC12::IonC12( + 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 ) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +IonC12::~IonC12() { } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// +// static member definition +// +// 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 + +IonC12 IonC12::theIon( + "ionC12", 11.17793*GeV, 0.0*MeV, +6.0*eplus, + 0, +1, 0, + 0, 0, 0, + "static_nucleus", 0, +12, 0, + true, -1.0, 0 +); + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +IonC12* IonC12::IonDefinition() {return &theIon;} + +IonC12* IonC12::Ion() {return &theIon;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.cc new file mode 100755 index 0000000000..1ec9705b25 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListBinaryCascade.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: PhysListBinaryCascade.cc,v 1.4 2003/12/05 11:22:45 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ + +#include "PhysListBinaryCascade.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" + +#include "G4HadronFissionProcess.hh" +#include "G4HadronCaptureProcess.hh" + +#include "G4BinaryCascade.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListBinaryCascade::PhysListBinaryCascade(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListBinaryCascade::~PhysListBinaryCascade() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListBinaryCascade::ConstructProcess() +{ + + // Binary Cascade + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; + + G4BinaryCascade* theBC = 0; + + // proton + particle = G4Proton::Proton(); + pmanager = particle->GetProcessManager(); + theBC = new G4BinaryCascade(); + theIPproton.RegisterMe(theBC); + theIPproton.AddDataSet(&thePXSec); + pmanager->AddDiscreteProcess(&theIPproton); + + // neutron + particle = G4Neutron::Neutron(); + pmanager = particle->GetProcessManager(); + theBC = new G4BinaryCascade(); + theIPneutron.RegisterMe(theBC); + theIPneutron.AddDataSet(&theNXSec); + pmanager->AddDiscreteProcess(&theIPneutron); + // fission + G4HadronFissionProcess* theFissionProcess = new G4HadronFissionProcess; + G4LFission* theFissionModel = new G4LFission; + theFissionProcess->RegisterMe(theFissionModel); + pmanager->AddDiscreteProcess(theFissionProcess); + // capture + G4HadronCaptureProcess* theCaptureProcess = new G4HadronCaptureProcess; + G4LCapture* theCaptureModel = new G4LCapture; + theCaptureProcess->RegisterMe(theCaptureModel); + pmanager->AddDiscreteProcess(theCaptureProcess); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.cc new file mode 100644 index 0000000000..518ddc119f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListEmG4v52.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: PhysListEmG4v52.cc,v 1.3 2003/11/07 11:54:54 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysListEmG4v52.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" + +#include "G4ComptonScattering.hh" +#include "G4GammaConversion.hh" +#include "G4PhotoElectricEffect.hh" + +#include "G4MultipleScattering52.hh" +#include "G4MultipleScattering.hh" + +#include "G4eIonisation52.hh" +#include "G4eBremsstrahlung52.hh" +#include "G4eplusAnnihilation.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 Geant4 version 5.2 + + 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 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 G4MultipleScattering52, -1, 1,1); + pmanager->AddProcess(new G4eIonisation52, -1, 2,2); + pmanager->AddProcess(new G4eBremsstrahlung52, -1,-1,3); + pmanager->AddProcess(new G4eplusAnnihilation, 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/TestEm5/src/Em5PhysListEmStandard.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc old mode 100644 new mode 100755 similarity index 83% rename from examples/extended/electromagnetic/TestEm5/src/Em5PhysListEmStandard.cc rename to examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc index cef0402a69..b9efe56c95 --- a/examples/extended/electromagnetic/TestEm5/src/Em5PhysListEmStandard.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListEmStandard.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em5PhysListEmStandard.cc,v 1.1 2003/04/30 14:12:39 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListEmStandard.cc,v 1.3 2003/10/24 12:25:09 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5PhysListEmStandard.hh" +#include "PhysListEmStandard.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -46,21 +46,22 @@ #include "G4MuPairProduction.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysListEmStandard::Em5PhysListEmStandard(const G4String& name) +PhysListEmStandard::PhysListEmStandard(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysListEmStandard::~Em5PhysListEmStandard() +PhysListEmStandard::~PhysListEmStandard() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysListEmStandard::ConstructProcess() +void PhysListEmStandard::ConstructProcess() { // Add standard EM Processes @@ -71,36 +72,41 @@ void Em5PhysListEmStandard::ConstructProcess() 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,-1,3); + 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,-1,3); + 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,-1,3); - pmanager->AddProcess(new G4MuPairProduction, -1,-1,4); + 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); } diff --git a/examples/extended/electromagnetic/TestEm1/src/Em1PhysListGeneral.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc old mode 100644 new mode 100755 similarity index 90% rename from examples/extended/electromagnetic/TestEm1/src/Em1PhysListGeneral.cc rename to examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc index a157d8f034..97508a3d13 --- a/examples/extended/electromagnetic/TestEm1/src/Em1PhysListGeneral.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListGeneral.cc @@ -21,30 +21,30 @@ // ******************************************************************** // // -// $Id: Em1PhysListGeneral.cc,v 1.1 2003/03/27 11:16:20 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListGeneral.cc,v 1.2 2003/11/20 08:18:55 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em1PhysListGeneral.hh" +#include "PhysListGeneral.hh" #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysListGeneral::Em1PhysListGeneral(const G4String& name) +PhysListGeneral::PhysListGeneral(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em1PhysListGeneral::~Em1PhysListGeneral() +PhysListGeneral::~PhysListGeneral() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em1PhysListGeneral::ConstructProcess() +void PhysListGeneral::ConstructProcess() { // Add Decay Process diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc new file mode 100755 index 0000000000..2cc8e08072 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListHadronElastic.cc @@ -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. * +// ******************************************************************** +// +// +// + +#include "PhysListHadronElastic.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4LElastic.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListHadronElastic::PhysListHadronElastic(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListHadronElastic::~PhysListHadronElastic() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListHadronElastic::ConstructProcess() +{ + + // Hadron elastic process + + theElasticProcess.RegisterMe( new G4LElastic() ); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pManager = particle->GetProcessManager(); + if (particle->GetPDGMass() > 110.*MeV && theElasticProcess.IsApplicable(*particle) + && !particle->IsShortLived()) { + pManager->AddDiscreteProcess(&theElasticProcess); + G4cout << "### Elastic model are registered for " + << particle->GetParticleName() + << G4endl; + } + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc new file mode 100644 index 0000000000..fee78e7804 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListIonBinaryCascade.cc @@ -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: PhysListIonBinaryCascade.cc,v 1.2 2003/12/05 11:22:45 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ + +#include "PhysListIonBinaryCascade.hh" +#include "G4ParticleDefinition.hh" +#include "G4ProcessManager.hh" +#include "G4LFission.hh" +#include "G4LCapture.hh" +#include "G4Deuteron.hh" +#include "G4Triton.hh" +#include "G4He3.hh" +#include "G4Alpha.hh" +#include "IonC12.hh" +#include "G4GenericIon.hh" + +#include "G4ExcitationHandler.hh" +#include "G4Evaporation.hh" +#include "G4FermiBreakUp.hh" +#include "G4StatMF.hh" +#include "G4GeneratorPrecompoundInterface.hh" + +#include "G4HadronInelasticProcess.hh" +#include "G4BinaryLightIonReaction.hh" +#include "G4TripathiCrossSection.hh" +#include "G4IonsShenCrossSection.hh" +#include "G4LEDeuteronInelastic.hh" +#include "G4LETritonInelastic.hh" +#include "G4LEAlphaInelastic.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListIonBinaryCascade::PhysListIonBinaryCascade(const G4String& name) + : G4VPhysicsConstructor(name) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysListIonBinaryCascade::~PhysListIonBinaryCascade() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysListIonBinaryCascade::ConstructProcess() +{ + /* + // all models for treatment of thermal nucleus + G4Evaporation * theEvaporation = new G4Evaporation; + G4FermiBreakUp * theFermiBreakUp = new G4FermiBreakUp; + G4StatMF * theMF = new G4StatMF; + + // Evaporation logic + G4ExcitationHandler * theHandler = new G4ExcitationHandler; + theHandler->SetEvaporation(theEvaporation); + theHandler->SetFermiModel(theFermiBreakUp); + theHandler->SetMultiFragmentation(theMF); + theHandler->SetMaxAandZForFermiBreakUp(12, 6); + theHandler->SetMinEForMultiFrag(3*MeV); + + // Pre equilibrium stage + G4PreCompoundModel * thePreEquilib = new G4PreCompoundModel(theHandler); + + // a no-cascade generator-precompound interaface + G4GeneratorPrecompoundInterface * theCascade = new G4GeneratorPrecompoundInterface; + theCascade->SetDeExcitation(thePreEquilib); + */ + // Binary Cascade + G4ParticleDefinition* particle = 0; + G4ProcessManager* pmanager = 0; + G4BinaryLightIonReaction* theBC = new G4BinaryLightIonReaction(); + theBC->SetMinEnergy(80*MeV); + theBC->SetMaxEnergy(20*GeV); + + G4TripathiCrossSection * TripathiCrossSection= new G4TripathiCrossSection; + G4IonsShenCrossSection * aShen = new G4IonsShenCrossSection; + + // deuteron + particle = G4Deuteron::Deuteron(); + pmanager = particle->GetProcessManager(); + G4LEDeuteronInelastic* theDIModel = new G4LEDeuteronInelastic; + theDIModel->SetMaxEnergy(100*MeV); + theIPdeuteron.AddDataSet(TripathiCrossSection); + theIPdeuteron.AddDataSet(aShen); + theIPdeuteron.RegisterMe(theDIModel); + theIPdeuteron.RegisterMe(theBC); + pmanager->AddDiscreteProcess(&theIPdeuteron); + + // triton + particle = G4Triton::Triton(); + pmanager = particle->GetProcessManager(); + G4LETritonInelastic* theTIModel = new G4LETritonInelastic; + theTIModel->SetMaxEnergy(100*MeV); + theIPtriton.AddDataSet(TripathiCrossSection); + theIPtriton.AddDataSet(aShen); + theIPtriton.RegisterMe(theTIModel); + theIPtriton.RegisterMe(theBC); + pmanager->AddDiscreteProcess(&theIPtriton); + + // alpha + particle = G4Alpha::Alpha(); + pmanager = particle->GetProcessManager(); + G4LEAlphaInelastic* theAIModel = new G4LEAlphaInelastic; + theAIModel->SetMaxEnergy(100*MeV); + theIPalpha.AddDataSet(TripathiCrossSection); + theIPalpha.AddDataSet(aShen); + theIPalpha.RegisterMe(theAIModel); + theIPalpha.RegisterMe(theBC); + pmanager->AddDiscreteProcess(&theIPalpha); + + + // GenericIon + particle = G4GenericIon::GenericIon(); + pmanager = particle->GetProcessManager(); + G4HadronInelasticProcess* theIPGenericIon = + new G4HadronInelasticProcess("IonInelastic",particle); + theIPGenericIon->AddDataSet(TripathiCrossSection); + theIPGenericIon->AddDataSet(aShen); + G4BinaryLightIonReaction * theGenIonBC= new G4BinaryLightIonReaction; + theGenIonBC->SetMinEnergy(0*MeV); + theGenIonBC->SetMaxEnergy(10*GeV); + theIPGenericIon->RegisterMe(theGenIonBC); + pmanager->AddDiscreteProcess(theIPGenericIon); + + // C12 + particle = IonC12::Ion(); + pmanager = particle->GetProcessManager(); + G4HadronInelasticProcess* theIPIonC12 = + new G4HadronInelasticProcess("IonC12Inelastic",particle); + theIPIonC12->AddDataSet(TripathiCrossSection); + theIPIonC12->AddDataSet(aShen); + theIPIonC12->RegisterMe(theGenIonBC); + pmanager->AddDiscreteProcess(theIPIonC12); + + // He3 + particle = G4He3::He3(); + pmanager = particle->GetProcessManager(); + G4HadronInelasticProcess* theIPHe3 = + new G4HadronInelasticProcess("He3Inelastic",particle); + theIPHe3->AddDataSet(TripathiCrossSection); + theIPHe3->AddDataSet(aShen); + theIPHe3->RegisterMe(theGenIonBC); + pmanager->AddDiscreteProcess(theIPHe3); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5PhysListParticles.cc b/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc old mode 100644 new mode 100755 similarity index 93% rename from examples/extended/electromagnetic/TestEm5/src/Em5PhysListParticles.cc rename to examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc index b4f94a8d3c..65e573467c --- a/examples/extended/electromagnetic/TestEm5/src/Em5PhysListParticles.cc +++ b/examples/extended/electromagnetic/TestEm9/src/PhysListParticles.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: Em5PhysListParticles.cc,v 1.1 2003/04/30 14:12:39 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: PhysListParticles.cc,v 1.1 2003/07/14 17:10:17 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5PhysListParticles.hh" +#include "PhysListParticles.hh" // Bosons #include "G4ChargedGeantino.hh" @@ -77,18 +77,18 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysListParticles::Em5PhysListParticles(const G4String& name) +PhysListParticles::PhysListParticles(const G4String& name) : G4VPhysicsConstructor(name) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5PhysListParticles::~Em5PhysListParticles() +PhysListParticles::~PhysListParticles() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void Em5PhysListParticles::ConstructParticle() +void PhysListParticles::ConstructParticle() { // pseudo-particles diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc b/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc new file mode 100755 index 0000000000..4de9475427 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/PhysicsList.cc @@ -0,0 +1,245 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsList.hh" +#include "PhysicsListMessenger.hh" + +#include "PhysListParticles.hh" +#include "PhysListGeneral.hh" +#include "PhysListEmStandard.hh" +#include "PhysListEmG4v52.hh" +#include "PhysListHadronElastic.hh" +#include "PhysListBinaryCascade.hh" +#include "PhysListIonBinaryCascade.hh" +#include "G4RegionStore.hh" +#include "G4Region.hh" +#include "G4ProductionCuts.hh" +#include "G4ProcessManager.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" + +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" + +#include "G4UnitsTable.hh" +#include "G4LossTableManager.hh" +#include "StepMax.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::PhysicsList() : G4VModularPhysicsList() +{ + G4LossTableManager::Instance(); + defaultCutValue = 1.*mm; + cutForGamma = defaultCutValue; + cutForElectron = defaultCutValue; + cutForPositron = defaultCutValue; + + vertexDetectorCuts = 0; + muonDetectorCuts = 0; + + stepMaxProcess = 0; + + pMessenger = new PhysicsListMessenger(this); + stepMaxProcess = new StepMax(); + + SetVerboseLevel(1); + + // Particles + particleList = new PhysListParticles("particles"); + + // General Physics + generalPhysicsList = new PhysListGeneral("general"); + + // EM physics + emName = G4String("standard"); + emPhysicsList = new PhysListEmStandard(emName); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsList::~PhysicsList() +{ + delete pMessenger; + delete generalPhysicsList; + delete emPhysicsList; + delete stepMaxProcess; + for(size_t i=0; iConstructParticle(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::ConstructProcess() +{ + AddTransportation(); + generalPhysicsList->ConstructProcess(); + emPhysicsList->ConstructProcess(); + for(size_t i=0; iConstructProcess(); + } + 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 == "elastic") { + + hadronPhys.push_back( new PhysListHadronElastic(name)); + + } else if (name == "binary") { + + hadronPhys.push_back( new PhysListBinaryCascade(name)); + + } else if (name == "binary_ion") { + + hadronPhys.push_back( new PhysListIonBinaryCascade(name)); + + } else { + + G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" + << " is not defined" + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::AddStepMax() +{ + // Step limitation seen as a process + + theParticleIterator->reset(); + while ((*theParticleIterator)()){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + + if (stepMaxProcess->IsApplicable(*particle) && !particle->IsShortLived()) + { + pmanager ->AddDiscreteProcess(stepMaxProcess); + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCuts() +{ + + SetCutValue(cutForGamma, "gamma"); + SetCutValue(cutForElectron, "e-"); + SetCutValue(cutForPositron, "e+"); + G4cout << "world cuts are set" << G4endl; + + if( !vertexDetectorCuts ) SetVertexCut(cutForElectron); + G4Region* region = (G4RegionStore::GetInstance())->GetRegion("VertexDetector"); + region->SetProductionCuts(vertexDetectorCuts); + G4cout << "Vertex cuts are set" << G4endl; + + if( !muonDetectorCuts ) SetMuonCut(cutForElectron); + region = (G4RegionStore::GetInstance())->GetRegion("MuonDetector"); + region->SetProductionCuts(muonDetectorCuts); + G4cout << "Muon cuts are set" << G4endl; + + if (verboseLevel>0) DumpCutValuesTable(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForGamma(G4double cut) +{ + cutForGamma = cut; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForElectron(G4double cut) +{ + cutForElectron = cut; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetCutForPositron(G4double cut) +{ + cutForPositron = cut; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetVertexCut(G4double cut) +{ + if( !vertexDetectorCuts ) vertexDetectorCuts = new G4ProductionCuts(); + + vertexDetectorCuts->SetProductionCut(cut, idxG4GammaCut); + vertexDetectorCuts->SetProductionCut(cut, idxG4ElectronCut); + vertexDetectorCuts->SetProductionCut(cut, idxG4PositronCut); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PhysicsList::SetMuonCut(G4double cut) +{ + if( !muonDetectorCuts ) muonDetectorCuts = new G4ProductionCuts(); + + muonDetectorCuts->SetProductionCut(cut, idxG4GammaCut); + muonDetectorCuts->SetProductionCut(cut, idxG4ElectronCut); + muonDetectorCuts->SetProductionCut(cut, idxG4PositronCut); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.cc new file mode 100755 index 0000000000..521f1ddb13 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/PhysicsListMessenger.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: PhysicsListMessenger.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PhysicsListMessenger.hh" + +#include "PhysicsList.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithAString.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PhysicsListMessenger::PhysicsListMessenger(PhysicsList* pPhys) +:pPhysicsList(pPhys) +{ + 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); + + eCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/VertexCuts",this); + eCutCmd->SetGuidance("Set cuts for the Vertex Detector"); + eCutCmd->SetParameterName("Ecut",false); + eCutCmd->SetUnitCategory("Length"); + eCutCmd->SetRange("Ecut>0.0"); + eCutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + mCutCmd = new G4UIcmdWithADoubleAndUnit("/testem/phys/MuonCuts",this); + mCutCmd->SetGuidance("Set cuts for the Muon Detector"); + mCutCmd->SetParameterName("Ecut",false); + mCutCmd->SetUnitCategory("Length"); + mCutCmd->SetRange("Ecut>0.0"); + mCutCmd->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 eCutCmd; + delete mCutCmd; +} + +//....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 == eCutCmd ) + { pPhysicsList->SetVertexCut(eCutCmd->GetNewDoubleValue(newValue));} + + if( command == mCutCmd ) + { pPhysicsList->SetMuonCut(mCutCmd->GetNewDoubleValue(newValue));} + + if( command == pListCmd ) + { pPhysicsList->AddPhysicsList(newValue);} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc b/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.cc new file mode 100644 index 0000000000..ea807e8423 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/PrimaryGeneratorAction.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: PrimaryGeneratorAction.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +///////////////////////////////////////////////////////////////////////// +// +// TestEm9: Crystal calorimeter +// +// Created: 31.01.03 V.Ivanchenko +// +// Modified: +// +//////////////////////////////////////////////////////////////////////// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "PrimaryGeneratorAction.hh" + +#include "DetectorConstruction.hh" + +#include "G4Event.hh" +#include "G4ParticleTable.hh" +#include "G4ParticleDefinition.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::PrimaryGeneratorAction(DetectorConstruction* det) +:detector(det) +{ + G4int n_particle = 1; + particleGun = new G4ParticleGun(n_particle); + + G4ParticleDefinition* particle + = G4ParticleTable::GetParticleTable()->FindParticle("e-"); + particleGun->SetParticleDefinition(particle); + particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.)); + particleGun->SetParticleEnergy(1.*GeV); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +PrimaryGeneratorAction::~PrimaryGeneratorAction() +{ + delete particleGun; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + G4double zVertex = - (detector->GetWorldSizeZ()); + particleGun->SetParticlePosition(G4ThreeVector(0.,0.,zVertex)); + particleGun->GeneratePrimaryVertex(anEvent); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc b/examples/extended/electromagnetic/TestEm9/src/RunAction.cc old mode 100644 new mode 100755 similarity index 62% rename from examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc rename to examples/extended/electromagnetic/TestEm9/src/RunAction.cc index 68f142738e..6ae9a2dec6 --- a/examples/extended/electromagnetic/TestEm8/src/Em8SteppingMessenger.cc +++ b/examples/extended/electromagnetic/TestEm9/src/RunAction.cc @@ -20,41 +20,67 @@ // * statement, and all its terms. * // ******************************************************************** // +// ------------------------------------------------------------- // -// $Id: Em8SteppingMessenger.cc,v 1.3 2001/07/11 09:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // +// ------------------------------------------------------------- +// GEANT4 +// +// +// ------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "Em8SteppingMessenger.hh" - -#include "Em8SteppingAction.hh" -#include "G4UIdirectory.hh" -#include "globals.hh" +#include "RunAction.hh" +#include "HistoManager.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -Em8SteppingMessenger::Em8SteppingMessenger(Em8SteppingAction* SA) -:steppingAction (SA) -{ - steppingDir = new G4UIdirectory("/stepping/"); - steppingDir->SetGuidance("stepping control"); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -Em8SteppingMessenger::~Em8SteppingMessenger() -{ - delete steppingDir; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void Em8SteppingMessenger::SetNewValue(G4UIcommand* command,G4String newValues) +RunAction::RunAction() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - +RunAction::~RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RunAction::BeginOfRunAction(const G4Run* aRun) +{ + G4int id = aRun->GetRunID(); + G4cout << "### Run " << id << " start" << G4endl; + (HistoManager::GetPointer())->BeginOfRun(); + +#ifdef G4VIS_USE + G4UImanager* UI = G4UImanager::GetUIpointer(); + + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + + if(pVVisManager) + { + UI->ApplyCommand("/vis/scene/notifyHandlers"); + } +#endif + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void RunAction::EndOfRunAction(const G4Run*) +{ + + G4cout << "RunAction: End of run actions are started" << G4endl; + (HistoManager::GetPointer())->EndOfRun(); + +#ifdef G4VIS_USE + if (G4VVisManager::GetConcreteInstance()) + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); +#endif + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc b/examples/extended/electromagnetic/TestEm9/src/StepMax.cc old mode 100644 new mode 100755 similarity index 67% rename from examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc rename to examples/extended/electromagnetic/TestEm9/src/StepMax.cc index 211d3477a5..efaf7f6931 --- a/examples/extended/electromagnetic/TestEm3/src/Em3CalorHit.cc +++ b/examples/extended/electromagnetic/TestEm9/src/StepMax.cc @@ -20,60 +20,60 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: StepMax.cc,v 1.2 2003/11/26 14:44:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: Em3CalorHit.cc,v 1.5 2003/06/03 10:36:34 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em3CalorHit.hh" - -G4Allocator Em3CalorHitAllocator; +#include "StepMax.hh" +#include "StepMaxMessenger.hh" +#include "G4VPhysicalVolume.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em3CalorHit::Em3CalorHit():G4VHit() +StepMax::StepMax(const G4String& processName) + : G4VDiscreteProcess(processName), + MaxChargedStep(DBL_MAX) { - for (G4int i=0; iSetGuidance("Set max allowed step length"); + StepMaxCmd->SetParameterName("mxStep",false); + StepMaxCmd->SetRange("mxStep>0."); + StepMaxCmd->SetUnitCategory("Length"); + StepMaxCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +//....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/TestEm9/src/SteppingAction.cc b/examples/extended/electromagnetic/TestEm9/src/SteppingAction.cc new file mode 100644 index 0000000000..9da46b1032 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/SteppingAction.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: SteppingAction.cc,v 1.1 2003/07/14 17:10:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +///////////////////////////////////////////////////////////////////////// +// +// TestEm9: Crystal calorimeter +// +// Created: 31.01.03 V.Ivanchenko +// +// Modified: +// +//////////////////////////////////////////////////////////////////////// +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingAction.hh" +#include "G4SteppingManager.hh" +#include "G4VTouchable.hh" +#include "HistoManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::SteppingAction(): + theHisto(HistoManager::GetPointer()) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingAction::~SteppingAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingAction::UserSteppingAction(const G4Step* aStep) +{ + theHisto->AddStep(); + G4double edep = aStep->GetTotalEnergyDeposit(); + if(edep == 0.) return; + + const G4VPhysicalVolume* pv = aStep->GetPreStepPoint()->GetPhysicalVolume(); + const G4LogicalVolume* lv = pv->GetLogicalVolume(); + // const G4MaterialCutsCouple* couple = aStep->GetTrack()->GetMaterialCutsCouple(); + // G4int idx = couple->GetIndex(); + // const G4Material* mat = couple->GetMaterial(); + // G4cout << "Step in " << mat->GetName() << " idx= " << idx << " edep= " << edep << G4endl; + G4int volumeIndex = -1; + + G4int copyNo = pv->GetCopyNo(); + G4String name = lv->GetName(); + if(name == "Ecal") volumeIndex = 0; + else if(name == "Abs1") volumeIndex = 1; + else if(name == "Abs2") volumeIndex = 2; + else if(name == "Abs3") volumeIndex = 3; + else if(name == "Abs4") volumeIndex = 4; + else if(name == "Vert") volumeIndex = 5; + // G4cout << " vIndx= " << volumeIndex << " copyNo= " << copyNo << G4endl; + if(volumeIndex>=0) theHisto->AddEnergy(edep, volumeIndex, copyNo); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + diff --git a/examples/extended/electromagnetic/TestEm9/src/SteppingVerbose.cc b/examples/extended/electromagnetic/TestEm9/src/SteppingVerbose.cc new file mode 100755 index 0000000000..b6179aa2c0 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/SteppingVerbose.cc @@ -0,0 +1,170 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, 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 2003/07/14 17:10:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "SteppingVerbose.hh" + +#include "G4MaterialCutsCouple.hh" +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +SteppingVerbose::SteppingVerbose():G4SteppingVerbose() +{} + +//....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(); + + PrintStep(false); + + if(fStep->GetPostStepPoint()->GetProcessDefinedStep() != NULL){ + G4cout << 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 ){ + + PrintStep(true); + G4cout << "initStep" << G4endl; + } + G4cout.precision(prec); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void SteppingVerbose::PrintStep(G4bool firstStep) +{ + if( firstStep || verboseLevel >= 3 ) + { + G4cout << std::setw( 5) << "#Step#" << " " + << std::setw( 8) << "X(mm)" << " " + << std::setw( 8) << "Y(mm)" << " " + << std::setw( 8) << "Z(mm)" << " " + << std::setw( 9) << "KinE(MeV)" << " " + << std::setw( 8) << "dE(keV)" << " " + << std::setw( 8) << "StepL(mm)" << " " + << std::setw(10) << "TrackL(cm)" << " " + << std::setw( 9) << "idxCouple" << " " + << std::setw( 9) << "Material" << " " + << std::setw(10) << "NextVolume" << " " + << std::setw( 8) << "ProcName" << G4endl; + } + G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " " + << std::setw( 8) << fTrack->GetPosition().x()/mm << " " + << std::setw( 8) << fTrack->GetPosition().y()/mm << " " + << std::setw( 8) << fTrack->GetPosition().z()/mm << " " + << std::setw( 9) << fTrack->GetKineticEnergy()/MeV << " " + << std::setw( 8) << fStep->GetTotalEnergyDeposit()/keV << " " + << std::setw( 8) << fStep->GetStepLength()/mm << " " + << std::setw(10) << fTrack->GetTrackLength()/cm << " "; + + if( firstStep ) { + G4cout << " "; + } else { + const G4MaterialCutsCouple* couple = fTrack->GetMaterialCutsCouple(); + G4String mate = couple->GetMaterial()->GetName(); + G4int idx = couple->GetIndex(); + G4cout << std::setw(5) << idx << " " << mate << " "; + } + + if( fTrack->GetNextVolume() != 0 ) { + G4cout << std::setw(10) << fTrack->GetVolume()->GetName() << " "; + } else { + G4cout << std::setw(10) << "OutOfWorld "; + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/examples/extended/electromagnetic/TestEm9/src/TrackingAction.cc b/examples/extended/electromagnetic/TestEm9/src/TrackingAction.cc new file mode 100644 index 0000000000..984c9818f2 --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/TrackingAction.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. * +// ******************************************************************** +// + +//--------------------------------------------------------------------------- +// +// ClassName: TrackingAction +// +// Description: Implementation file for MC truth. +// +// Author: V.Ivanchenko 17/03/01 +// +// Modified: +// +//---------------------------------------------------------------------------- +// + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "TrackingAction.hh" +#include "G4ParticleDefinition.hh" +#include "G4DynamicParticle.hh" +#include "G4Track.hh" +#include "G4ThreeVector.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4EventManager.hh" +#include "G4Event.hh" +#include "HistoManager.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +TrackingAction::TrackingAction(): + theHisto(HistoManager::GetPointer()) +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +TrackingAction::~TrackingAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void TrackingAction::PreUserTrackingAction(const G4Track* aTrack) +{ + theHisto->ScoreNewTrack(aTrack); + + if(1 < theHisto->GetVerbose()) { + + G4int pid = aTrack->GetParentID(); + const G4String name = aTrack->GetDefinition()->GetParticleName(); + + if (theHisto->GetMaxEnergy() < aTrack->GetKineticEnergy() && pid > 0) { + G4cout << "Track #" + << aTrack->GetTrackID() << " of " << name + << " Emax(MeV)= " << theHisto->GetMaxEnergy()/MeV + << " Ekin(MeV)= " << aTrack->GetKineticEnergy()/MeV + << " ## EventID= " + << (G4EventManager::GetEventManager())->GetConstCurrentEvent() + ->GetEventID() + << G4endl; + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/electromagnetic/TestEm9/src/VisManager.cc b/examples/extended/electromagnetic/TestEm9/src/VisManager.cc new file mode 100755 index 0000000000..c0b428bc6f --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/src/VisManager.cc @@ -0,0 +1,144 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: VisManager.cc,v 1.3 2003/11/12 18:32:56 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4VIS_USE + +#include "VisManager.hh" + +// Supported drivers... + +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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_OPENGLX +#include "G4OpenGLImmediateX.hh" +#include "G4OpenGLStoredX.hh" +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 +#include "G4OpenGLImmediateWin32.hh" +#include "G4OpenGLStoredWin32.hh" +#endif + +#ifdef G4VIS_USE_OPENGLXM +#include "G4OpenGLImmediateXm.hh" +#include "G4OpenGLStoredXm.hh" +#endif + +#ifdef G4VIS_USE_OIX +#include "G4OpenInventorX.hh" +#endif + +#ifdef G4VIS_USE_OIWIN32 +#include "G4OpenInventorWin32.hh" +#endif + +#ifdef G4VIS_USE_VRML +#include "G4VRML1.hh" +#include "G4VRML2.hh" +#endif + +#ifdef G4VIS_USE_VRMLFILE +#include "G4VRML1File.hh" +#include "G4VRML2File.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +VisManager::VisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void VisManager::RegisterGraphicsSystems () { + + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + + // Graphics systems needing external packages or libraries... + +#ifdef G4VIS_USE_DAWN + RegisterGraphicsSystem (new G4FukuiRenderer); +#endif + +#ifdef G4VIS_USE_OPENGLX + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); +#endif + +#ifdef G4VIS_USE_OPENGLXM + RegisterGraphicsSystem (new G4OpenGLImmediateXm); + RegisterGraphicsSystem (new G4OpenGLStoredXm); +#endif + +#ifdef G4VIS_USE_OIX + RegisterGraphicsSystem (new G4OpenInventorX); +#endif + +#ifdef G4VIS_USE_OIWIN32 + RegisterGraphicsSystem (new G4OpenInventorWin32); +#endif + +#ifdef G4VIS_USE_VRML + RegisterGraphicsSystem (new G4VRML1); + 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." + << G4endl; + PrintAvailableGraphicsSystems (); + } +} + +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/electromagnetic/TestEm9/vis.mac b/examples/extended/electromagnetic/TestEm9/vis.mac new file mode 100644 index 0000000000..48cfa9468e --- /dev/null +++ b/examples/extended/electromagnetic/TestEm9/vis.mac @@ -0,0 +1,35 @@ +# +# Macro file for the initialization phase of "TestEm9.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 OGLIXm +# +#/vis/open DAWNFILE +# +# 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 +/testem/event/drawTracks charged + diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History index 7fd626bafe..9648b01459 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/History @@ -1,12 +1,12 @@ -$Id: History,v 1.1 2002/11/19 10:33:00 murakami Exp $ +$Id: History,v 1.4 2003/12/03 11:19:09 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= Geant4 - an Object-Oriented Toolkit for Simulation in HEP ========================================================= - Example HepMCEx01 History file - ------------------------------ + Example HepMCEx01 (for CLHEP-HepMC) 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. @@ -14,6 +14,17 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Dec. 2nd, 2003 G.Cosmo +- Brought up-to-date with examples/novice/N04. + +Nov. 13th, 2003 J.Allison +- Removed OPACS from Vis Manager. + +Jul. 04, 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 - modified as is ExN04. (physics lists and vis. manager) - "std" namespace left/not cared was modified to "G4std". @@ -22,81 +33,6 @@ May. 28, 2002 K.Murakami - renamed classes and filenames. Apr. 15, 2002 K.Murakami -- Creared. +- Created from examples/novice/N04. - Replace N04PrimaryGeneatorAction with HepMC-interface version. - Resize the world volume. - - Example N04 History file - ------------------------ - -December 18, 2001 Gabriele Cosmo (exampleN04-V04-00-00) -- ExN04PhysicsList.cc: added call to DumpCutValuesTable(). - Reference outputs will be modified (V.Ivantchenko) -- GNUmakefile: removed restriction for egcs compiler - -October 19, 2001 Steve O'Neale -- Updated reference output - -March 07 2001 H.Kurashige (exampleN04-V03-00-07) -- Add G4MuonMinusCaptureAtRest in G4MuonPhysics - -February 25 2001 S.W.O'Neale (exampleN04-V03-00-06) -- Add exampleN04.EMtest.large_N.out reference output and remove - some empty "reference" .err files - -February 20 2001 S.W.O'Neale (exampleN04-V03-00-05) -- Update reference outputs following materials-V03-00-04 - -February 9 2001 S.W.O'Neale (exampleN04-V03-00-04) -- Update SUN CC reference outouts for test104 and test104.EMtest - -February 9 2001 H.Kurashige (exampleN04-V03-00-03) -- Introduce Modular Physics List - -25th November 2000 Steve O'Neale (tagset210) -- Update test outputs for min.delta energy cut -- Update test outputs for small"ish" changes from em tags - -August 18, 2000 Michel Maire -- standard G4ionIonisation removed from the PhysicsList - -June 24, 2000 John Allison (exampleN04-V01-01-03) -- Updated exampleN04*.out for stand-V01-01-05 and utils-V01-01-03. - -June 19, 2000 John Allison (exampleN04-V01-01-02) -- Updated exampleN04.out for geant4-01-01-cand-07. - -June 17, 2000 John Allison (exampleN04-V01-01-01) -- Updated exampleN04*.out for geant4-01-01-ref-06. - -9th June 2000 Makoto Asai (exampleN04-V01-01-00) -- ExN04StackingAction.cc: protection against illegal value of an argument. - -5th June 1999 John Allison -- GNUmakefile: Force non-optimised compliation of some files on HP with - aCC: HP ANSI C++ B3910B A.01.15. - -23th April 1999 H.Kurashige -- remove ConstructLeptHad, AddParameterisation inExN04PhysicsList - -16th April 1999 H.Kurashige -- modify ExN04RunAction ExN04StackingAction ExN04SteppingAction ExN04TrackingAction -- modify ExN04PhysicsList::SetCuts -- modify ExN04PhysicsList::ConstructParticle - - -21st November 1998 John Allison -- Made ExN04Field compatible with G4Field. - -9 Oct, 1998 M.Asai -- A bug fixed in ExN04DetectorParameterDef.icc. - -26th August 1998 John Allison. -- /vis/Draw/current -> /vis/draw/current in ExN04EventAction.cc. - -9th August 1998 John Allison. -- Changed G4UIterminal to G4UIGAG. - -April 09, 98 G. Cosmo - -- Created. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmcEx01-clhep.cc index 02c9f9e2c1..e6008c7cc3 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.1 2002/11/19 10:33:00 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/hepmc_ascii.out index eeee2671ce..ec5c19d4f4 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-05-02 $ + Geant4 version $Name: geant4-06-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 fbaa1a871e..b6f033e590 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-05-02 $ + Geant4 version $Name: geant4-06-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterHit.hh index 3b902165ba..5c8d2edce9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterHit.hh @@ -41,7 +41,7 @@ class ExN04CalorimeterHit : public G4VHit ~ExN04CalorimeterHit(); ExN04CalorimeterHit(const ExN04CalorimeterHit &right); const ExN04CalorimeterHit& operator=(const ExN04CalorimeterHit &right); - int operator==(const ExN04CalorimeterHit &right) const; + G4int operator==(const ExN04CalorimeterHit &right) const; inline void *operator new(size_t); inline void operator delete(void *aHit); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterParametrisation.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterParametrisation.hh index bfab08a8f8..6a6f2644fa 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterParametrisation.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04CalorimeterParametrisation.hh @@ -30,6 +30,19 @@ class G4VPhysicalVolume; class G4Tubs; +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Box; +class G4Polycone; +class G4Polyhedra; + class ExN04CalorimeterParametrisation : public G4VPVParameterisation { public: @@ -42,6 +55,20 @@ class ExN04CalorimeterParametrisation : public G4VPVParameterisation 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 (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + private: #include "ExN04DetectorParameterDef.hh" @@ -49,5 +76,3 @@ class ExN04CalorimeterParametrisation : public G4VPVParameterisation }; #endif - - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorConstruction.hh index 3601f184e5..13ea7d698e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DetectorConstruction.hh @@ -28,6 +28,7 @@ #include "globals.hh" class G4VPhysicalVolume; +class G4Material; class ExN04DetectorConstruction : public G4VUserDetectorConstruction { @@ -39,9 +40,16 @@ class ExN04DetectorConstruction : public G4VUserDetectorConstruction G4VPhysicalVolume* Construct(); private: + void DefineMaterials(); #include "ExN04DetectorParameterDef.hh" + G4Material* Air; + G4Material* Ar; + G4Material* Silicon; + G4Material* Scinti; + G4Material* Lead; + }; #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DummySD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DummySD.hh index eeed0dd0df..9f18e5d89f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DummySD.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04DummySD.hh @@ -35,14 +35,14 @@ class ExN04DummySD : public G4VSensitiveDetector { public: ExN04DummySD(); - ~ExN04DummySD() {}; + ~ExN04DummySD() {} - void Initialize(G4HCofThisEvent*HCE) {}; - G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} - void EndOfEvent(G4HCofThisEvent*HCE) {}; - void clear() {}; - void DrawAll() {}; - void PrintAll() {}; + void Initialize(G4HCofThisEvent*) {} + G4bool ProcessHits(G4Step*,G4TouchableHistory*) {return false;} + void EndOfEvent(G4HCofThisEvent*) {} + void clear() {} + void DrawAll() {} + void PrintAll() {} }; ExN04DummySD::ExN04DummySD() : G4VSensitiveDetector("dummySD") diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04EMPhysics.hh index 5a4b77b49c..1d022e6156 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04GeneralPhysics.hh index 07100a7e50..3c4cbb336a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh index 840e4809b4..e872610fbf 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04HadronPhysics.hh @@ -19,9 +19,16 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -//======================== -// taken from example N04 of G4 distribution -//======================== +// +// $Id: ExN04HadronPhysics.hh,v 1.5 2003/12/03 11:19:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------------------------ #ifndef ExN04HadronPhysics_h #define ExN04HadronPhysics_h 1 diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh index 9c62969bca..23514fc475 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04IonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04IonPhysics.hh,v 1.2 2003/12/03 11:19:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -55,6 +55,7 @@ #include "G4LEAlphaInelastic.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" #include "G4MultipleScattering.hh" class ExN04IonPhysics : public G4VPhysicsConstructor @@ -75,12 +76,12 @@ class ExN04IonPhysics : public G4VPhysicsConstructor protected: // Elastic Process - G4HadronElasticProcess theElasticProcess; - G4LElastic* theElasticModel; + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; // Generic Ion physics - G4MultipleScattering fIonMultipleScattering; - G4hIonisation fIonIonisation; + G4MultipleScattering fIonMultipleScattering; + G4ionIonisation fIonIonisation; // Deuteron physics G4MultipleScattering fDeuteronMultipleScattering; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonHit.hh index 2b6607cf81..100850b4ed 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonHit.hh @@ -37,7 +37,7 @@ class ExN04MuonHit : public G4VHit ~ExN04MuonHit(); ExN04MuonHit(const ExN04MuonHit &right); const ExN04MuonHit& operator=(const ExN04MuonHit &right); - int operator==(const ExN04MuonHit &right) const; + G4int operator==(const ExN04MuonHit &right) const; inline void *operator new(size_t); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh index b40a1e3e23..47f6afbd76 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04MuonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.hh,v 1.1 2002/11/19 10:30:53 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04MuonPhysics.hh,v 1.2 2003/12/03 11:19:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -67,15 +67,15 @@ class ExN04MuonPhysics : public G4VPhysicsConstructor protected: // Muon physics + G4MuIonisation fMuPlusIonisation; G4MultipleScattering fMuPlusMultipleScattering; G4MuBremsstrahlung fMuPlusBremsstrahlung ; G4MuPairProduction fMuPlusPairProduction; - G4MuIonisation fMuPlusIonisation; + G4MuIonisation fMuMinusIonisation; G4MultipleScattering fMuMinusMultipleScattering; G4MuBremsstrahlung fMuMinusBremsstrahlung ; G4MuPairProduction fMuMinusPairProduction; - G4MuIonisation fMuMinusIonisation; G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorAction.hh index 42ba1b7867..cf07363882 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorAction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // ExN04PrimaryGeneratorAction.hh -// $Id: ExN04PrimaryGeneratorAction.hh,v 1.2 2003/06/16 16:48:19 gunter Exp $ +// $Id: ExN04PrimaryGeneratorAction.hh,v 1.4 2003/12/09 15:30:55 gunter Exp $ // // ==================================================================== #ifndef EXN04_PRIMARY_GENERATOR_ACTION_H @@ -74,7 +74,7 @@ inline void ExN04PrimaryGeneratorAction::SetGenerator inline void ExN04PrimaryGeneratorAction::SetGenerator(G4String genname) { - map::iterator pos= gentypeMap.find(genname); + std::map::iterator pos= gentypeMap.find(genname); if(pos != gentypeMap.end()) { currentGenerator= pos->second; currentGeneratorName= genname; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorMessenger.hh index 3e7a088e13..fb832e3e98 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04PrimaryGeneratorMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // ExN04PrimaryGeneratorMessenger.hh -// $Id: ExN04PrimaryGeneratorMessenger.hh,v 1.1 2002/11/19 10:30:54 murakami Exp $ +// $Id: ExN04PrimaryGeneratorMessenger.hh,v 1.2 2003/12/09 15:30:56 gunter Exp $ // // ==================================================================== #ifndef EXN04_PRIMARY_GENERATOR_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04RunAction.hh index 45bb0bdf32..4a0ea01db7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 39d799a5c1..d20072c267 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerHit.hh index 8731dadeb6..b99f06d0b7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerHit.hh @@ -37,7 +37,7 @@ class ExN04TrackerHit : public G4VHit ~ExN04TrackerHit(); ExN04TrackerHit(const ExN04TrackerHit &right); const ExN04TrackerHit& operator=(const ExN04TrackerHit &right); - int operator==(const ExN04TrackerHit &right) const; + G4int operator==(const ExN04TrackerHit &right) const; inline void *operator new(size_t); inline void operator delete(void *aHit); @@ -78,5 +78,3 @@ inline void ExN04TrackerHit::operator delete(void *aHit) } #endif - - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerParametrisation.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerParametrisation.hh index dc1fa0102e..c5f4d156a0 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerParametrisation.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04TrackerParametrisation.hh @@ -30,6 +30,19 @@ class G4VPhysicalVolume; class G4Tubs; +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Box; +class G4Polycone; +class G4Polyhedra; + class ExN04TrackerParametrisation : public G4VPVParameterisation { public: @@ -42,6 +55,20 @@ class ExN04TrackerParametrisation : public G4VPVParameterisation 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 (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + private: #include "ExN04DetectorParameterDef.hh" @@ -49,5 +76,3 @@ class ExN04TrackerParametrisation : public G4VPVParameterisation }; #endif - - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh index 7a68a3b655..3bb8de1bf9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/ExN04VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04VisManager.hh,v 1.1 2002/11/19 10:30:55 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaInterface.hh index 0d8c11a712..c1b153b6f8 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaInterface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaInterface.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H01PythiaInterface.hh -// $Id: H01PythiaInterface.hh,v 1.2 2003/06/16 16:48:20 gunter Exp $ +// $Id: H01PythiaInterface.hh,v 1.3 2003/12/09 15:30:57 gunter Exp $ // // A generic interface class with Pythia event generator via HepMC. // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaMessenger.hh index 88350ab331..48ed6a5576 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/include/H01PythiaMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H01PythiaMessenger.hh -// $Id: H01PythiaMessenger.hh,v 1.1 2002/11/19 10:30:55 murakami Exp $ +// $Id: H01PythiaMessenger.hh,v 1.2 2003/12/09 15:30:58 gunter Exp $ // // ==================================================================== #ifndef H01_PYTHIA_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterHit.cc index 4b43319609..de6b63b309 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterHit.cc @@ -41,6 +41,7 @@ ExN04CalorimeterHit::~ExN04CalorimeterHit() {;} ExN04CalorimeterHit::ExN04CalorimeterHit(const ExN04CalorimeterHit &right) + : G4VHit() { ZCellID = right.ZCellID; PhiCellID = right.PhiCellID; @@ -61,7 +62,7 @@ const ExN04CalorimeterHit& ExN04CalorimeterHit::operator=(const ExN04Calorimeter return *this; } -int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const +G4int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const { return ((ZCellID==right.ZCellID)&&(PhiCellID==right.PhiCellID)); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterParametrisation.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterParametrisation.cc index c054aaa3eb..75bd26f04f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterParametrisation.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterParametrisation.cc @@ -29,24 +29,21 @@ ExN04CalorimeterParametrisation::ExN04CalorimeterParametrisation() { - #include "ExN04DetectorParameterDef.icc" - } ExN04CalorimeterParametrisation::~ExN04CalorimeterParametrisation() {;} void ExN04CalorimeterParametrisation::ComputeTransformation -(const G4int copyNo,G4VPhysicalVolume *physVol) const +(const G4int,G4VPhysicalVolume *physVol) const { G4ThreeVector origin; physVol->SetTranslation(origin); } void ExN04CalorimeterParametrisation::ComputeDimensions -(G4Tubs & calorimeterLayer, const G4int copyNo, - const G4VPhysicalVolume * physVol) const +(G4Tubs & calorimeterLayer, const G4int copyNo, const G4VPhysicalVolume*) const { G4double innerRad = caloTubs_rmin + copyNo*(absorber_thick+scinti_thick); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterSD.cc index c2df7f35ce..50b69489a9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterSD.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04CalorimeterSD.cc @@ -43,7 +43,7 @@ ExN04CalorimeterSD::ExN04CalorimeterSD(G4String name) ExN04CalorimeterSD::~ExN04CalorimeterSD() {;} -void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*) { CalCollection = new ExN04CalorimeterHitsCollection (SensitiveDetectorName,collectionName[0]); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorConstruction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorConstruction.cc index 7ed0cc02dd..c0b07ec027 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorConstruction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04DetectorConstruction.cc @@ -52,12 +52,45 @@ ExN04DetectorConstruction::ExN04DetectorConstruction() { #include "ExN04DetectorParameterDef.icc" + DefineMaterials(); } ExN04DetectorConstruction::~ExN04DetectorConstruction() {;} +void ExN04DetectorConstruction::DefineMaterials() +{ + //------------------------------------------------------------------------- + // Materials + //------------------------------------------------------------------------- + + G4double a, z, density; + G4int nel; + + G4Element* H = new G4Element("Hydrogen", "H", z=1., a= 1.01*g/mole); + G4Element* C = new G4Element("Carbon", "C", z=6., a= 12.01*g/mole); + 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); + + Air = new G4Material("Air", density= 1.29*mg/cm3, nel=2); + Air->AddElement(N, 70.*perCent); + Air->AddElement(O, 30.*perCent); + + Lead = + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); + + Ar = + new G4Material("ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); + + Silicon = + new G4Material("Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); + + Scinti = new G4Material("Scintillator", density= 1.032*g/cm3, nel=2); + Scinti->AddElement(C, 9); + Scinti->AddElement(H, 10); +} + G4VPhysicalVolume* ExN04DetectorConstruction::Construct() { //------------------------------------------------------------------------- @@ -76,47 +109,6 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() fieldIsInitialized = true; } - //------------------------------------------------------------------------- - // Materials - //------------------------------------------------------------------------- - - G4double a, iz, z, density; - G4String name, symbol; - G4int nel; - - a = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen", symbol="H", iz=1., a); - - a = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon", symbol="C", iz=6., a); - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen", symbol="O", iz=8., a); - - density = 1.29e-03*g/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); - - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Lead = new G4Material(name="Lead", z=82., a, density); - - a = 39.95*g/mole; - density = 1.782e-03*g/cm3; - G4Material* Ar = new G4Material(name="ArgonGas", z=18., a, density); - - a = 28.09*g/mole; - density = 2.33*g/cm3; - G4Material * Silicon = new G4Material(name="Silicon", z=14., a, density); - - density = 1.032*g/cm3; - G4Material* Scinti = new G4Material(name="Scintillator", density, nel=2); - Scinti->AddElement(elC, 9); - Scinti->AddElement(elH, 10); //------------------------------------------------------------------------- // Detector geometry @@ -128,8 +120,8 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() G4LogicalVolume * experimentalHall_log = new G4LogicalVolume(experimentalHall_box,Air,"expHall_L",0,0,0); G4VPhysicalVolume * experimentalHall_phys - = new G4PVPlacement(0,G4ThreeVector(),"expHall_P", - experimentalHall_log,0,false,0); + = new G4PVPlacement(0,G4ThreeVector(),experimentalHall_log,"expHall_P", + 0,false,0); G4VisAttributes* experimentalHallVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); experimentalHallVisAtt->SetForceWireframe(true); @@ -141,9 +133,9 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() trkTubs_sphi,trkTubs_dphi); G4LogicalVolume * tracker_log = new G4LogicalVolume(tracker_tubs,Ar,"trackerT_L",0,0,0); - G4VPhysicalVolume * tracker_phys - = new G4PVPlacement(0,G4ThreeVector(),"tracker_phys",tracker_log, - experimentalHall_phys,false,0); + // G4VPhysicalVolume * tracker_phys = + new G4PVPlacement(0,G4ThreeVector(),tracker_log,"tracker_phys", + experimentalHall_log,false,0); G4VisAttributes* tracker_logVisAtt = new G4VisAttributes(G4Colour(1.0,0.0,1.0)); tracker_logVisAtt->SetForceWireframe(true); @@ -161,7 +153,7 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() = new ExN04TrackerParametrisation; // dummy value : kXAxis -- modified by parameterised volume // G4VPhysicalVolume *trackerLayer_phys = - new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_phys, + new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_log, kXAxis, notrkLayers, trackerParam); G4VisAttributes* trackerLayer_logVisAtt = new G4VisAttributes(G4Colour(0.5,0.0,1.0)); @@ -174,9 +166,9 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() caloTubs_dz,caloTubs_sphi,caloTubs_dphi); G4LogicalVolume * calorimeter_log = new G4LogicalVolume(calorimeter_tubs,Scinti,"caloT_L",0,0,0); - G4VPhysicalVolume * calorimeter_phys - = new G4PVPlacement(0,G4ThreeVector(),"caloM_P",calorimeter_log, - experimentalHall_phys,false,0); + // G4VPhysicalVolume * calorimeter_phys = + new G4PVPlacement(0,G4ThreeVector(),calorimeter_log,"caloM_P", + experimentalHall_log,false,0); G4VisAttributes* calorimeter_logVisATT = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); calorimeter_logVisATT->SetForceWireframe(true); @@ -194,7 +186,7 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() = new ExN04CalorimeterParametrisation; // dummy value : kXAxis -- modified by parameterised volume // G4VPhysicalVolume * caloLayer_phys = - new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_phys, + new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_log, kXAxis, nocaloLayers, calorimeterParam); G4VisAttributes* caloLayer_logVisAtt = new G4VisAttributes(G4Colour(0.7,1.0,0.0)); @@ -220,8 +212,8 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() rm.rotateZ(phi); muoncounter_phys = new G4PVPlacement(G4Transform3D(rm,G4ThreeVector(x,y,z)), - "muoncounter_P",muoncounter_log, - experimentalHall_phys,false,i); + muoncounter_log, "muoncounter_P", + experimentalHall_log,false,i); } G4VisAttributes* muoncounter_logVisAtt = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc index fc03b60fd4..9fe23f8ed9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04EMPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04EMPhysics.cc,v 1.2 2003/06/16 16:48:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04EMPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -81,29 +81,19 @@ void ExN04EMPhysics::ConstructProcess() // Electron Physics pManager = G4Electron::Electron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&theElectronBremsStrahlung); - pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + pManager->AddProcess(&theElectronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&theElectronIonisation, -1, 2, 2); + pManager->AddProcess(&theElectronBremsStrahlung, -1, 3, 3); - pManager->AddProcess(&theElectronMultipleScattering); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); //Positron Physics pManager = G4Positron::Positron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&thePositronBremsStrahlung); - - pManager->AddDiscreteProcess(&theAnnihilation); - - pManager->AddRestProcess(&theAnnihilation); - - pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); - - pManager->AddProcess(&thePositronMultipleScattering); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + + pManager->AddProcess(&thePositronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&thePositronIonisation, -1, 2, 2); + pManager->AddProcess(&thePositronBremsStrahlung, -1, 3, 3); + pManager->AddProcess(&theAnnihilation, 0,-1, 4); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04GeneralPhysics.cc index 01a4af883d..6ea4e360ec 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc index 4a522aedb0..bae6c0be29 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04HadronPhysics.cc @@ -19,6 +19,12 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// +// +// $Id: ExN04HadronPhysics.cc,v 1.5 2003/12/03 11:19:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// + #include "ExN04HadronPhysics.hh" #include "globals.hh" @@ -67,7 +73,13 @@ void ExN04HadronPhysics::ConstructParticle() void ExN04HadronPhysics::ConstructProcess() { G4ProcessManager * pManager = 0; - + G4cout << "" << G4endl; + G4cout << "You are using the ExN04HadronPhysics" << 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 << " More information can also be found from the Geant4 HyperNews." << G4endl; + G4cout << "" << G4endl; // Elastic Process theElasticModel = new G4LElastic(); theElasticProcess.RegisterMe(theElasticModel); @@ -222,13 +234,13 @@ void ExN04HadronPhysics::ConstructProcess() theNeutronInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theNeutronInelastic); - //theNeutronFissionModel = new G4LFission(); - //theNeutronFission.RegisterMe(theNeutronFissionModel); - //pManager->AddDiscreteProcess(&NeutronFission); + theNeutronFissionModel = new G4LFission(); + theNeutronFission.RegisterMe(theNeutronFissionModel); + pManager->AddDiscreteProcess(&theNeutronFission); - //theNeutronCaptureModel = new G4LCapture(); - //theNeutronCapture.RegisterMe(theNeutronCaptureModel); - //pManager->AddDiscreteProcess(&theNeutronCapture); + theNeutronCaptureModel = new G4LCapture(); + theNeutronCapture.RegisterMe(theNeutronCaptureModel); + pManager->AddDiscreteProcess(&theNeutronCapture); // AntiNeutron pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager(); @@ -424,8 +436,3 @@ void ExN04HadronPhysics::ConstructProcess() pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxPostStep, 1); } - - - - - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc index d77f764564..8d5dbb9ab5 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04IonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.cc,v 1.2 2003/06/16 16:48:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04IonPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -72,11 +72,8 @@ void ExN04IonPhysics::ConstructProcess() // add process pManager->AddDiscreteProcess(&theElasticProcess); - pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); - - pManager->AddProcess(&fIonMultipleScattering); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); + pManager->AddProcess(&fIonMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fIonIonisation, -1, 2, 2); // Deuteron pManager = G4Deuteron::Deuteron()->GetProcessManager(); @@ -87,12 +84,9 @@ void ExN04IonPhysics::ConstructProcess() fDeuteronProcess.RegisterMe(fDeuteronModel); pManager->AddDiscreteProcess(&fDeuteronProcess); - pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + pManager->AddProcess(&fDeuteronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fDeuteronIonisation, -1, 2, 2); - pManager->AddProcess(&fDeuteronMultipleScattering); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); - // Triton pManager = G4Triton::Triton()->GetProcessManager(); // add process @@ -102,11 +96,8 @@ void ExN04IonPhysics::ConstructProcess() 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); + pManager->AddProcess(&fTritonMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTritonIonisation, -1, 2, 2); // Alpha pManager = G4Alpha::Alpha()->GetProcessManager(); @@ -117,22 +108,17 @@ void ExN04IonPhysics::ConstructProcess() fAlphaProcess.RegisterMe(fAlphaModel); pManager->AddDiscreteProcess(&fAlphaProcess); - pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + pManager->AddProcess(&fAlphaMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fAlphaIonisation, -1, 2, 2); - pManager->AddProcess(&fAlphaMultipleScattering); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); - // He3 pManager = G4He3::He3()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); - pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + pManager->AddProcess(&fHe3MultipleScattering, -1, 1, 1); + pManager->AddProcess(&fHe3Ionisation, -1, 2, 2); - pManager->AddProcess(&fHe3MultipleScattering); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc index ca82efb025..c2ec17cbf8 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonHit.cc @@ -37,6 +37,7 @@ ExN04MuonHit::~ExN04MuonHit() {;} ExN04MuonHit::ExN04MuonHit(const ExN04MuonHit &right) + : G4VHit() { edep = right.edep; pos = right.pos; @@ -49,9 +50,9 @@ const ExN04MuonHit& ExN04MuonHit::operator=(const ExN04MuonHit &right) return *this; } -int ExN04MuonHit::operator==(const ExN04MuonHit &right) const +G4int ExN04MuonHit::operator==(const ExN04MuonHit &right) const { - return 0; + return (this==&right) ? 1 : 0; } void ExN04MuonHit::Draw() diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc index 7dc70e0ec4..fa4446c35b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.cc,v 1.2 2003/06/16 16:48:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04MuonPhysics.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -79,48 +79,34 @@ void ExN04MuonPhysics::ConstructProcess() // 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); + + pManager->AddProcess(&fMuPlusMultipleScattering,-1, 1, 1); + pManager->AddProcess(&fMuPlusIonisation, -1, 2, 2); + pManager->AddProcess(&fMuPlusBremsstrahlung, -1, 3, 3); + pManager->AddProcess(&fMuPlusPairProduction, -1, 4, 4); // Muon Minus Physics pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); - // add processes - pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fMuMinusMultipleScattering,-1, 1, 1); + pManager->AddProcess(&fMuMinusIonisation, -1, 2, 2); + pManager->AddProcess(&fMuMinusBremsstrahlung, -1, 3, 3); + pManager->AddProcess(&fMuMinusPairProduction, -1, 4, 4); - 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); + + pManager->AddProcess(&fTauPlusMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTauPlusIonisation, -1, 2, 2); // 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); + pManager->AddProcess(&fTauMinusMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTauMinusIonisation, -1, 2, 2); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc index b464103b89..c62899cfca 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04MuonSD.cc @@ -49,7 +49,7 @@ void ExN04MuonSD::Initialize(G4HCofThisEvent*HCE) HCE->AddHitsCollection(HCID,muonCollection); } -G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); @@ -77,7 +77,7 @@ G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*HCE) +void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*) {;} void ExN04MuonSD::clear() diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc index af29c74e42..d410822fa8 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04PhysicsList.cc,v 1.2 2003/06/16 16:48:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04PhysicsList.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -30,7 +30,6 @@ #include "globals.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" @@ -51,7 +50,7 @@ ExN04PhysicsList::ExN04PhysicsList(): G4VModularPhysicsList() { // default cut value (1.0mm) defaultCutValue = 1.0*mm; - SetVerboseLevel(1); + // SetVerboseLevel(1); // General Physics RegisterPhysics( new ExN04GeneralPhysics("general") ); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorAction.cc index 4567bc8d5d..ff94f68d11 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorAction.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // ExN04PrimaryGeneratorAction.cc -// $Id: ExN04PrimaryGeneratorAction.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// $Id: ExN04PrimaryGeneratorAction.cc,v 1.2 2003/12/09 15:30:59 gunter Exp $ // // ==================================================================== #include "ExN04PrimaryGeneratorAction.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorMessenger.cc index a1846195db..a2bd86a438 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04PrimaryGeneratorMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // ExN04PrimaryGeneratorMessenger.cc -// $Id: ExN04PrimaryGeneratorMessenger.cc,v 1.1 2002/11/19 10:31:39 murakami Exp $ +// $Id: ExN04PrimaryGeneratorMessenger.cc,v 1.2 2003/12/09 15:31:00 gunter Exp $ // // ==================================================================== #include "G4UIcommand.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04RunAction.cc index 253a34cbdb..8b3f8bd45a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7ab8d0409f..5ff2100148 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04SteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04SteppingVerbose.cc,v 1.2 2003/06/16 16:48:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04SteppingVerbose.cc,v 1.3 2003/12/03 11:19:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -73,7 +73,8 @@ void ExN04SteppingVerbose::StepInfo() << 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"); + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; // if( fStepStatus != fWorldBoundary){ if( fTrack->GetNextVolume() != 0 ) { @@ -161,7 +162,8 @@ G4int prec = G4cout.precision(3); << 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"); + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; if(fTrack->GetNextVolume()){ G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerHit.cc index f6094b7618..03d1f2bf1c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerHit.cc @@ -37,6 +37,7 @@ ExN04TrackerHit::~ExN04TrackerHit() {;} ExN04TrackerHit::ExN04TrackerHit(const ExN04TrackerHit &right) + : G4VHit() { edep = right.edep; pos = right.pos; @@ -49,9 +50,9 @@ const ExN04TrackerHit& ExN04TrackerHit::operator=(const ExN04TrackerHit &right) return *this; } -int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const +G4int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const { - return 0; + return (this==&right) ? 1 : 0; } void ExN04TrackerHit::Draw() diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerParametrisation.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerParametrisation.cc index 55b3ff1cc8..aad083a394 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerParametrisation.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerParametrisation.cc @@ -38,15 +38,14 @@ ExN04TrackerParametrisation::~ExN04TrackerParametrisation() {;} void ExN04TrackerParametrisation::ComputeTransformation -(const G4int copyNo,G4VPhysicalVolume *physVol) const +(const G4int, G4VPhysicalVolume* physVol) const { G4ThreeVector origin; physVol->SetTranslation(origin); } void ExN04TrackerParametrisation::ComputeDimensions -(G4Tubs & trackerLayer, const G4int copyNo, - const G4VPhysicalVolume * physVol) const +(G4Tubs& trackerLayer, const G4int copyNo, const G4VPhysicalVolume*) const { trackerLayer.SetInnerRadius(tracker_radius[copyNo]); trackerLayer.SetOuterRadius(tracker_radius[copyNo]+tracker_thick); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerSD.cc index 0389809c88..988ca8c594 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerSD.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04TrackerSD.cc @@ -47,7 +47,7 @@ void ExN04TrackerSD::Initialize(G4HCofThisEvent*HCE) HCE->AddHitsCollection(HCID,trackerCollection); } -G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); if(edep==0.) return false; @@ -60,7 +60,7 @@ G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*HCE) +void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*) {;} void ExN04TrackerSD::clear() diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc index 004429352b..ad53660bb2 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/ExN04VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04VisManager.cc,v 1.1 2002/11/19 10:31:40 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04VisManager.cc,v 1.2 2003/11/13 15:11:20 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void ExN04VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc index cb0528a853..28f0011e5e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaInterface.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H01PythiaInterface.cc -// $Id: H01PythiaInterface.cc,v 1.2 2003/06/16 16:48:28 gunter Exp $ +// $Id: H01PythiaInterface.cc,v 1.3 2003/12/09 15:31:01 gunter Exp $ // // ==================================================================== #include "H01PythiaInterface.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc index 7abb1e210e..4c9253f7db 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01-clhep/src/H01PythiaMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H01PythiaMessenger.cc -// $Id: H01PythiaMessenger.cc,v 1.2 2003/06/16 16:48:29 gunter Exp $ +// $Id: H01PythiaMessenger.cc,v 1.3 2003/12/09 15:31:02 gunter Exp $ // // ==================================================================== #include "H01PythiaMessenger.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/History b/examples/extended/eventgenerator/HepMC/HepMCEx01/History index d7f426bbbc..53e191d624 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.3 2002/11/19 10:23:45 murakami Exp $ +$Id: History,v 1.6 2003/12/03 11:03:06 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,17 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Dec. 2nd, 2003 G.Cosmo +- Brought up-to-date with examples/novice/N04. + +Nov. 13th, 2003 J.Allison +- Removed OPACS from Vis Manager. + +Jul. 04, 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 - modified as is ExN04. (physics lists and vis. manager) - "std" namespace left/not cared was modified to "G4std". @@ -22,81 +33,6 @@ May. 28, 2002 K.Murakami - renamed classes and filenames. Apr. 15, 2002 K.Murakami -- Creared. +- Creared from examples/novice/N04. - Replace N04PrimaryGeneatorAction with HepMC-interface version. - Resize the world volume. - - Example N04 History file - ------------------------ - -December 18, 2001 Gabriele Cosmo (exampleN04-V04-00-00) -- ExN04PhysicsList.cc: added call to DumpCutValuesTable(). - Reference outputs will be modified (V.Ivantchenko) -- GNUmakefile: removed restriction for egcs compiler - -October 19, 2001 Steve O'Neale -- Updated reference output - -March 07 2001 H.Kurashige (exampleN04-V03-00-07) -- Add G4MuonMinusCaptureAtRest in G4MuonPhysics - -February 25 2001 S.W.O'Neale (exampleN04-V03-00-06) -- Add exampleN04.EMtest.large_N.out reference output and remove - some empty "reference" .err files - -February 20 2001 S.W.O'Neale (exampleN04-V03-00-05) -- Update reference outputs following materials-V03-00-04 - -February 9 2001 S.W.O'Neale (exampleN04-V03-00-04) -- Update SUN CC reference outouts for test104 and test104.EMtest - -February 9 2001 H.Kurashige (exampleN04-V03-00-03) -- Introduce Modular Physics List - -25th November 2000 Steve O'Neale (tagset210) -- Update test outputs for min.delta energy cut -- Update test outputs for small"ish" changes from em tags - -August 18, 2000 Michel Maire -- standard G4ionIonisation removed from the PhysicsList - -June 24, 2000 John Allison (exampleN04-V01-01-03) -- Updated exampleN04*.out for stand-V01-01-05 and utils-V01-01-03. - -June 19, 2000 John Allison (exampleN04-V01-01-02) -- Updated exampleN04.out for geant4-01-01-cand-07. - -June 17, 2000 John Allison (exampleN04-V01-01-01) -- Updated exampleN04*.out for geant4-01-01-ref-06. - -9th June 2000 Makoto Asai (exampleN04-V01-01-00) -- ExN04StackingAction.cc: protection against illegal value of an argument. - -5th June 1999 John Allison -- GNUmakefile: Force non-optimised compliation of some files on HP with - aCC: HP ANSI C++ B3910B A.01.15. - -23th April 1999 H.Kurashige -- remove ConstructLeptHad, AddParameterisation inExN04PhysicsList - -16th April 1999 H.Kurashige -- modify ExN04RunAction ExN04StackingAction ExN04SteppingAction ExN04TrackingAction -- modify ExN04PhysicsList::SetCuts -- modify ExN04PhysicsList::ConstructParticle - - -21st November 1998 John Allison -- Made ExN04Field compatible with G4Field. - -9 Oct, 1998 M.Asai -- A bug fixed in ExN04DetectorParameterDef.icc. - -26th August 1998 John Allison. -- /vis/Draw/current -> /vis/draw/current in ExN04EventAction.cc. - -9th August 1998 John Allison. -- Changed G4UIterminal to G4UIGAG. - -April 09, 98 G. Cosmo - -- Created. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f index 795df7197f..10ad83bb09 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/external/initpydata.f @@ -19,6 +19,7 @@ * * based on the Program) you indicate your acceptance of this * * * statement, and all its terms. * * ******************************************************************** +* c c Matt.Dobbs@Cern.CH, December 1999 c EXTERNAL statement links PYDATA on most machines. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmcEx01.cc index de11aaf788..ed3d0f8b5e 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.2 2002/11/19 10:23:46 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx01/hepmc_ascii.out index 8bf7d892f0..3e4ab35194 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-05-02 $ + Geant4 version $Name: geant4-06-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 377a519135..bdbef970cb 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-05-02 $ + Geant4 version $Name: geant4-06-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterHit.hh index 3b902165ba..5c8d2edce9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterHit.hh @@ -41,7 +41,7 @@ class ExN04CalorimeterHit : public G4VHit ~ExN04CalorimeterHit(); ExN04CalorimeterHit(const ExN04CalorimeterHit &right); const ExN04CalorimeterHit& operator=(const ExN04CalorimeterHit &right); - int operator==(const ExN04CalorimeterHit &right) const; + G4int operator==(const ExN04CalorimeterHit &right) const; inline void *operator new(size_t); inline void operator delete(void *aHit); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterParametrisation.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterParametrisation.hh index bfab08a8f8..6a6f2644fa 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterParametrisation.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04CalorimeterParametrisation.hh @@ -30,6 +30,19 @@ class G4VPhysicalVolume; class G4Tubs; +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Box; +class G4Polycone; +class G4Polyhedra; + class ExN04CalorimeterParametrisation : public G4VPVParameterisation { public: @@ -42,6 +55,20 @@ class ExN04CalorimeterParametrisation : public G4VPVParameterisation 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 (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + private: #include "ExN04DetectorParameterDef.hh" @@ -49,5 +76,3 @@ class ExN04CalorimeterParametrisation : public G4VPVParameterisation }; #endif - - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorConstruction.hh index 3601f184e5..13ea7d698e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DetectorConstruction.hh @@ -28,6 +28,7 @@ #include "globals.hh" class G4VPhysicalVolume; +class G4Material; class ExN04DetectorConstruction : public G4VUserDetectorConstruction { @@ -39,9 +40,16 @@ class ExN04DetectorConstruction : public G4VUserDetectorConstruction G4VPhysicalVolume* Construct(); private: + void DefineMaterials(); #include "ExN04DetectorParameterDef.hh" + G4Material* Air; + G4Material* Ar; + G4Material* Silicon; + G4Material* Scinti; + G4Material* Lead; + }; #endif diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.hh index eeed0dd0df..9f18e5d89f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04DummySD.hh @@ -35,14 +35,14 @@ class ExN04DummySD : public G4VSensitiveDetector { public: ExN04DummySD(); - ~ExN04DummySD() {}; + ~ExN04DummySD() {} - void Initialize(G4HCofThisEvent*HCE) {}; - G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} - void EndOfEvent(G4HCofThisEvent*HCE) {}; - void clear() {}; - void DrawAll() {}; - void PrintAll() {}; + void Initialize(G4HCofThisEvent*) {} + G4bool ProcessHits(G4Step*,G4TouchableHistory*) {return false;} + void EndOfEvent(G4HCofThisEvent*) {} + void clear() {} + void DrawAll() {} + void PrintAll() {} }; ExN04DummySD::ExN04DummySD() : G4VSensitiveDetector("dummySD") diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04EMPhysics.hh index b3946b838f..a8c793d24f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04GeneralPhysics.hh index 23f8560c83..b08cebda3f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh index 840e4809b4..f186753e6c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04HadronPhysics.hh @@ -19,9 +19,16 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -//======================== -// taken from example N04 of G4 distribution -//======================== +// +// $Id: ExN04HadronPhysics.hh,v 1.6 2003/12/03 11:03:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// This class is an derived class of G4VPhysicsConstructor +// +// ------------------------------------------------------------ #ifndef ExN04HadronPhysics_h #define ExN04HadronPhysics_h 1 diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh index fff3cf054f..6273dbd7d3 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04IonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04IonPhysics.hh,v 1.3 2003/12/03 11:03:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -55,6 +55,7 @@ #include "G4LEAlphaInelastic.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" #include "G4MultipleScattering.hh" class ExN04IonPhysics : public G4VPhysicsConstructor @@ -75,12 +76,12 @@ class ExN04IonPhysics : public G4VPhysicsConstructor protected: // Elastic Process - G4HadronElasticProcess theElasticProcess; - G4LElastic* theElasticModel; + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; // Generic Ion physics - G4MultipleScattering fIonMultipleScattering; - G4hIonisation fIonIonisation; + G4MultipleScattering fIonMultipleScattering; + G4ionIonisation fIonIonisation; // Deuteron physics G4MultipleScattering fDeuteronMultipleScattering; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonHit.hh index 2b6607cf81..100850b4ed 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonHit.hh @@ -37,7 +37,7 @@ class ExN04MuonHit : public G4VHit ~ExN04MuonHit(); ExN04MuonHit(const ExN04MuonHit &right); const ExN04MuonHit& operator=(const ExN04MuonHit &right); - int operator==(const ExN04MuonHit &right) const; + G4int operator==(const ExN04MuonHit &right) const; inline void *operator new(size_t); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh index b3bb9055c8..7971acba6c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04MuonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.hh,v 1.2 2002/11/19 10:15:51 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04MuonPhysics.hh,v 1.3 2003/12/03 11:03:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -67,15 +67,15 @@ class ExN04MuonPhysics : public G4VPhysicsConstructor protected: // Muon physics + G4MuIonisation fMuPlusIonisation; G4MultipleScattering fMuPlusMultipleScattering; G4MuBremsstrahlung fMuPlusBremsstrahlung ; G4MuPairProduction fMuPlusPairProduction; - G4MuIonisation fMuPlusIonisation; + G4MuIonisation fMuMinusIonisation; G4MultipleScattering fMuMinusMultipleScattering; G4MuBremsstrahlung fMuMinusBremsstrahlung ; G4MuPairProduction fMuMinusPairProduction; - G4MuIonisation fMuMinusIonisation; G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh index 0dd8231a29..b7b0f0dc5b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorAction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // ExN04PrimaryGeneratorAction.hh -// $Id: ExN04PrimaryGeneratorAction.hh,v 1.3 2003/06/16 16:48:06 gunter Exp $ +// $Id: ExN04PrimaryGeneratorAction.hh,v 1.5 2003/12/09 15:30:40 gunter Exp $ // // ==================================================================== #ifndef EXN04_PRIMARY_GENERATOR_ACTION_H @@ -74,7 +74,7 @@ inline void ExN04PrimaryGeneratorAction::SetGenerator inline void ExN04PrimaryGeneratorAction::SetGenerator(G4String genname) { - map::iterator pos= gentypeMap.find(genname); + std::map::iterator pos= gentypeMap.find(genname); if(pos != gentypeMap.end()) { currentGenerator= pos->second; currentGeneratorName= genname; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorMessenger.hh index ade17ed37d..11f22c1571 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04PrimaryGeneratorMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // ExN04PrimaryGeneratorMessenger.hh -// $Id: ExN04PrimaryGeneratorMessenger.hh,v 1.1 2002/04/29 20:43:46 asaim Exp $ +// $Id: ExN04PrimaryGeneratorMessenger.hh,v 1.2 2003/12/09 15:30:41 gunter Exp $ // // ==================================================================== #ifndef EXN04_PRIMARY_GENERATOR_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04RunAction.hh index 3eef92a480..00e9d2adc1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2e60344ad6..bd5d642f6f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerHit.hh index 8731dadeb6..be148ceb16 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerHit.hh @@ -37,7 +37,7 @@ class ExN04TrackerHit : public G4VHit ~ExN04TrackerHit(); ExN04TrackerHit(const ExN04TrackerHit &right); const ExN04TrackerHit& operator=(const ExN04TrackerHit &right); - int operator==(const ExN04TrackerHit &right) const; + G4int operator==(const ExN04TrackerHit &right) const; inline void *operator new(size_t); inline void operator delete(void *aHit); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerParametrisation.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerParametrisation.hh index dc1fa0102e..c5f4d156a0 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerParametrisation.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04TrackerParametrisation.hh @@ -30,6 +30,19 @@ class G4VPhysicalVolume; class G4Tubs; +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Box; +class G4Polycone; +class G4Polyhedra; + class ExN04TrackerParametrisation : public G4VPVParameterisation { public: @@ -42,6 +55,20 @@ class ExN04TrackerParametrisation : public G4VPVParameterisation 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 (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + private: #include "ExN04DetectorParameterDef.hh" @@ -49,5 +76,3 @@ class ExN04TrackerParametrisation : public G4VPVParameterisation }; #endif - - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh index 3092911889..a3481bb11a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/ExN04VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04VisManager.hh,v 1.1 2002/11/19 10:15:52 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReader.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReader.hh index f69a3ea6a9..1028ae90eb 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReader.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReader.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4AsciiReader.hh -// $Id: HepMCG4AsciiReader.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// $Id: HepMCG4AsciiReader.hh,v 1.2 2003/12/09 15:30:42 gunter Exp $ // // ==================================================================== #ifndef HEPMC_G4_ASCII_READER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReaderMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReaderMessenger.hh index 3cbc08bf44..241fea79d3 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReaderMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4AsciiReaderMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4AsciiReaderMessenger.hh -// $Id: HepMCG4AsciiReaderMessenger.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// $Id: HepMCG4AsciiReaderMessenger.hh,v 1.2 2003/12/09 15:30:43 gunter Exp $ // // ==================================================================== #ifndef HEPMC_G4_ASCII_READER_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4Interface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4Interface.hh index 97fbf18825..c74dc82cf9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4Interface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4Interface.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4Interface.hh -// $Id: HepMCG4Interface.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// $Id: HepMCG4Interface.hh,v 1.2 2003/12/09 15:30:44 gunter Exp $ // // A base class for primary generation via HepMC object. // This class is derived from G4VPrimaryGenerator. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh index b380634628..b7037321e1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaInterface.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4PythiaInterface.hh -// $Id: HepMCG4PythiaInterface.hh,v 1.3 2003/06/16 16:48:07 gunter Exp $ +// $Id: HepMCG4PythiaInterface.hh,v 1.4 2003/12/09 15:30:45 gunter Exp $ // // A generic interface class with Pythia event generator via HepMC. // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaMessenger.hh index 98a071a6de..f7770850d2 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/include/HepMCG4PythiaMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4GenericPythiaMessenger.hh -// $Id: HepMCG4PythiaMessenger.hh,v 1.1 2002/05/28 13:52:40 murakami Exp $ +// $Id: HepMCG4PythiaMessenger.hh,v 1.2 2003/12/09 15:30:46 gunter Exp $ // // ==================================================================== #ifndef HEPMC_G4_PYTHIA_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterHit.cc index 4b43319609..de6b63b309 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterHit.cc @@ -41,6 +41,7 @@ ExN04CalorimeterHit::~ExN04CalorimeterHit() {;} ExN04CalorimeterHit::ExN04CalorimeterHit(const ExN04CalorimeterHit &right) + : G4VHit() { ZCellID = right.ZCellID; PhiCellID = right.PhiCellID; @@ -61,7 +62,7 @@ const ExN04CalorimeterHit& ExN04CalorimeterHit::operator=(const ExN04Calorimeter return *this; } -int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const +G4int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const { return ((ZCellID==right.ZCellID)&&(PhiCellID==right.PhiCellID)); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterParametrisation.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterParametrisation.cc index c054aaa3eb..75bd26f04f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterParametrisation.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterParametrisation.cc @@ -29,24 +29,21 @@ ExN04CalorimeterParametrisation::ExN04CalorimeterParametrisation() { - #include "ExN04DetectorParameterDef.icc" - } ExN04CalorimeterParametrisation::~ExN04CalorimeterParametrisation() {;} void ExN04CalorimeterParametrisation::ComputeTransformation -(const G4int copyNo,G4VPhysicalVolume *physVol) const +(const G4int,G4VPhysicalVolume *physVol) const { G4ThreeVector origin; physVol->SetTranslation(origin); } void ExN04CalorimeterParametrisation::ComputeDimensions -(G4Tubs & calorimeterLayer, const G4int copyNo, - const G4VPhysicalVolume * physVol) const +(G4Tubs & calorimeterLayer, const G4int copyNo, const G4VPhysicalVolume*) const { G4double innerRad = caloTubs_rmin + copyNo*(absorber_thick+scinti_thick); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterSD.cc index c2df7f35ce..bcd28ee89b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterSD.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04CalorimeterSD.cc @@ -43,28 +43,30 @@ ExN04CalorimeterSD::ExN04CalorimeterSD(G4String name) ExN04CalorimeterSD::~ExN04CalorimeterSD() {;} -void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*) { CalCollection = new ExN04CalorimeterHitsCollection (SensitiveDetectorName,collectionName[0]); - for(int j=0;jGetTotalEnergyDeposit(); + if(verboseLevel>1) G4cout << "Next step edep(MeV) = " << edep/MeV << G4endl; if(edep==0.) return false; G4VPhysicalVolume* physVol = ROhist->GetVolume(); //ROhist->MoveUpHistory(); //G4VPhysicalVolume* mothVol = ROhist->GetVolume(1); - int copyIDinZ = ROhist->GetReplicaNumber(); - int copyIDinPhi = ROhist->GetReplicaNumber(1); + G4int copyIDinZ = ROhist->GetReplicaNumber(); + G4int copyIDinPhi = ROhist->GetReplicaNumber(1); if(CellID[copyIDinZ][copyIDinPhi]==-1) { @@ -76,7 +78,7 @@ G4bool ExN04CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) calHit->SetEdep( edep ); calHit->SetPos( physVol->GetTranslation() ); calHit->SetRot( rotM ); - int icell = CalCollection->insert( calHit ); + G4int icell = CalCollection->insert( calHit ); CellID[copyIDinZ][copyIDinPhi] = icell - 1; if(verboseLevel>0) { G4cout << " New Calorimeter Hit on CellID " diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorConstruction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorConstruction.cc index 7ed0cc02dd..c0b07ec027 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorConstruction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04DetectorConstruction.cc @@ -52,12 +52,45 @@ ExN04DetectorConstruction::ExN04DetectorConstruction() { #include "ExN04DetectorParameterDef.icc" + DefineMaterials(); } ExN04DetectorConstruction::~ExN04DetectorConstruction() {;} +void ExN04DetectorConstruction::DefineMaterials() +{ + //------------------------------------------------------------------------- + // Materials + //------------------------------------------------------------------------- + + G4double a, z, density; + G4int nel; + + G4Element* H = new G4Element("Hydrogen", "H", z=1., a= 1.01*g/mole); + G4Element* C = new G4Element("Carbon", "C", z=6., a= 12.01*g/mole); + 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); + + Air = new G4Material("Air", density= 1.29*mg/cm3, nel=2); + Air->AddElement(N, 70.*perCent); + Air->AddElement(O, 30.*perCent); + + Lead = + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); + + Ar = + new G4Material("ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); + + Silicon = + new G4Material("Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); + + Scinti = new G4Material("Scintillator", density= 1.032*g/cm3, nel=2); + Scinti->AddElement(C, 9); + Scinti->AddElement(H, 10); +} + G4VPhysicalVolume* ExN04DetectorConstruction::Construct() { //------------------------------------------------------------------------- @@ -76,47 +109,6 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() fieldIsInitialized = true; } - //------------------------------------------------------------------------- - // Materials - //------------------------------------------------------------------------- - - G4double a, iz, z, density; - G4String name, symbol; - G4int nel; - - a = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen", symbol="H", iz=1., a); - - a = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon", symbol="C", iz=6., a); - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen", symbol="O", iz=8., a); - - density = 1.29e-03*g/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); - - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Lead = new G4Material(name="Lead", z=82., a, density); - - a = 39.95*g/mole; - density = 1.782e-03*g/cm3; - G4Material* Ar = new G4Material(name="ArgonGas", z=18., a, density); - - a = 28.09*g/mole; - density = 2.33*g/cm3; - G4Material * Silicon = new G4Material(name="Silicon", z=14., a, density); - - density = 1.032*g/cm3; - G4Material* Scinti = new G4Material(name="Scintillator", density, nel=2); - Scinti->AddElement(elC, 9); - Scinti->AddElement(elH, 10); //------------------------------------------------------------------------- // Detector geometry @@ -128,8 +120,8 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() G4LogicalVolume * experimentalHall_log = new G4LogicalVolume(experimentalHall_box,Air,"expHall_L",0,0,0); G4VPhysicalVolume * experimentalHall_phys - = new G4PVPlacement(0,G4ThreeVector(),"expHall_P", - experimentalHall_log,0,false,0); + = new G4PVPlacement(0,G4ThreeVector(),experimentalHall_log,"expHall_P", + 0,false,0); G4VisAttributes* experimentalHallVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); experimentalHallVisAtt->SetForceWireframe(true); @@ -141,9 +133,9 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() trkTubs_sphi,trkTubs_dphi); G4LogicalVolume * tracker_log = new G4LogicalVolume(tracker_tubs,Ar,"trackerT_L",0,0,0); - G4VPhysicalVolume * tracker_phys - = new G4PVPlacement(0,G4ThreeVector(),"tracker_phys",tracker_log, - experimentalHall_phys,false,0); + // G4VPhysicalVolume * tracker_phys = + new G4PVPlacement(0,G4ThreeVector(),tracker_log,"tracker_phys", + experimentalHall_log,false,0); G4VisAttributes* tracker_logVisAtt = new G4VisAttributes(G4Colour(1.0,0.0,1.0)); tracker_logVisAtt->SetForceWireframe(true); @@ -161,7 +153,7 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() = new ExN04TrackerParametrisation; // dummy value : kXAxis -- modified by parameterised volume // G4VPhysicalVolume *trackerLayer_phys = - new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_phys, + new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_log, kXAxis, notrkLayers, trackerParam); G4VisAttributes* trackerLayer_logVisAtt = new G4VisAttributes(G4Colour(0.5,0.0,1.0)); @@ -174,9 +166,9 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() caloTubs_dz,caloTubs_sphi,caloTubs_dphi); G4LogicalVolume * calorimeter_log = new G4LogicalVolume(calorimeter_tubs,Scinti,"caloT_L",0,0,0); - G4VPhysicalVolume * calorimeter_phys - = new G4PVPlacement(0,G4ThreeVector(),"caloM_P",calorimeter_log, - experimentalHall_phys,false,0); + // G4VPhysicalVolume * calorimeter_phys = + new G4PVPlacement(0,G4ThreeVector(),calorimeter_log,"caloM_P", + experimentalHall_log,false,0); G4VisAttributes* calorimeter_logVisATT = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); calorimeter_logVisATT->SetForceWireframe(true); @@ -194,7 +186,7 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() = new ExN04CalorimeterParametrisation; // dummy value : kXAxis -- modified by parameterised volume // G4VPhysicalVolume * caloLayer_phys = - new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_phys, + new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_log, kXAxis, nocaloLayers, calorimeterParam); G4VisAttributes* caloLayer_logVisAtt = new G4VisAttributes(G4Colour(0.7,1.0,0.0)); @@ -220,8 +212,8 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() rm.rotateZ(phi); muoncounter_phys = new G4PVPlacement(G4Transform3D(rm,G4ThreeVector(x,y,z)), - "muoncounter_P",muoncounter_log, - experimentalHall_phys,false,i); + muoncounter_log, "muoncounter_P", + experimentalHall_log,false,i); } G4VisAttributes* muoncounter_logVisAtt = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc index 66f8be2a7c..89e3183832 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04EMPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04EMPhysics.cc,v 1.3 2003/06/16 16:48:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04EMPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -81,29 +81,19 @@ void ExN04EMPhysics::ConstructProcess() // Electron Physics pManager = G4Electron::Electron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&theElectronBremsStrahlung); - pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + pManager->AddProcess(&theElectronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&theElectronIonisation, -1, 2, 2); + pManager->AddProcess(&theElectronBremsStrahlung, -1, 3, 3); - pManager->AddProcess(&theElectronMultipleScattering); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); //Positron Physics pManager = G4Positron::Positron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&thePositronBremsStrahlung); - - pManager->AddDiscreteProcess(&theAnnihilation); - - pManager->AddRestProcess(&theAnnihilation); - - pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); - - pManager->AddProcess(&thePositronMultipleScattering); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + + pManager->AddProcess(&thePositronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&thePositronIonisation, -1, 2, 2); + pManager->AddProcess(&thePositronBremsStrahlung, -1, 3, 3); + pManager->AddProcess(&theAnnihilation, 0,-1, 4); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04GeneralPhysics.cc index 9db7dc8b2d..466f7604b9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc index 4a522aedb0..badfc8be70 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04HadronPhysics.cc @@ -19,6 +19,12 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// +// +// $Id: ExN04HadronPhysics.cc,v 1.6 2003/12/03 11:03:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// + #include "ExN04HadronPhysics.hh" #include "globals.hh" @@ -67,7 +73,13 @@ void ExN04HadronPhysics::ConstructParticle() void ExN04HadronPhysics::ConstructProcess() { G4ProcessManager * pManager = 0; - + G4cout << "" << G4endl; + G4cout << "You are using the ExN04HadronPhysics" << 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 << " More information can also be found from the Geant4 HyperNews." << G4endl; + G4cout << "" << G4endl; // Elastic Process theElasticModel = new G4LElastic(); theElasticProcess.RegisterMe(theElasticModel); @@ -222,13 +234,13 @@ void ExN04HadronPhysics::ConstructProcess() theNeutronInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theNeutronInelastic); - //theNeutronFissionModel = new G4LFission(); - //theNeutronFission.RegisterMe(theNeutronFissionModel); - //pManager->AddDiscreteProcess(&NeutronFission); + theNeutronFissionModel = new G4LFission(); + theNeutronFission.RegisterMe(theNeutronFissionModel); + pManager->AddDiscreteProcess(&theNeutronFission); - //theNeutronCaptureModel = new G4LCapture(); - //theNeutronCapture.RegisterMe(theNeutronCaptureModel); - //pManager->AddDiscreteProcess(&theNeutronCapture); + theNeutronCaptureModel = new G4LCapture(); + theNeutronCapture.RegisterMe(theNeutronCaptureModel); + pManager->AddDiscreteProcess(&theNeutronCapture); // AntiNeutron pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager(); @@ -424,8 +436,3 @@ void ExN04HadronPhysics::ConstructProcess() pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxPostStep, 1); } - - - - - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc index 2ef0ac5774..e425cad5d4 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04IonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.cc,v 1.3 2003/06/16 16:48:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04IonPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -72,11 +72,8 @@ void ExN04IonPhysics::ConstructProcess() // add process pManager->AddDiscreteProcess(&theElasticProcess); - pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); - - pManager->AddProcess(&fIonMultipleScattering); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); + pManager->AddProcess(&fIonMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fIonIonisation, -1, 2, 2); // Deuteron pManager = G4Deuteron::Deuteron()->GetProcessManager(); @@ -87,12 +84,9 @@ void ExN04IonPhysics::ConstructProcess() fDeuteronProcess.RegisterMe(fDeuteronModel); pManager->AddDiscreteProcess(&fDeuteronProcess); - pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + pManager->AddProcess(&fDeuteronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fDeuteronIonisation, -1, 2, 2); - pManager->AddProcess(&fDeuteronMultipleScattering); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); - // Triton pManager = G4Triton::Triton()->GetProcessManager(); // add process @@ -102,11 +96,8 @@ void ExN04IonPhysics::ConstructProcess() 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); + pManager->AddProcess(&fTritonMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTritonIonisation, -1, 2, 2); // Alpha pManager = G4Alpha::Alpha()->GetProcessManager(); @@ -117,22 +108,17 @@ void ExN04IonPhysics::ConstructProcess() fAlphaProcess.RegisterMe(fAlphaModel); pManager->AddDiscreteProcess(&fAlphaProcess); - pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + pManager->AddProcess(&fAlphaMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fAlphaIonisation, -1, 2, 2); - pManager->AddProcess(&fAlphaMultipleScattering); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); - // He3 pManager = G4He3::He3()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); - pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + pManager->AddProcess(&fHe3MultipleScattering, -1, 1, 1); + pManager->AddProcess(&fHe3Ionisation, -1, 2, 2); - pManager->AddProcess(&fHe3MultipleScattering); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonHit.cc index ca82efb025..c2ec17cbf8 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonHit.cc @@ -37,6 +37,7 @@ ExN04MuonHit::~ExN04MuonHit() {;} ExN04MuonHit::ExN04MuonHit(const ExN04MuonHit &right) + : G4VHit() { edep = right.edep; pos = right.pos; @@ -49,9 +50,9 @@ const ExN04MuonHit& ExN04MuonHit::operator=(const ExN04MuonHit &right) return *this; } -int ExN04MuonHit::operator==(const ExN04MuonHit &right) const +G4int ExN04MuonHit::operator==(const ExN04MuonHit &right) const { - return 0; + return (this==&right) ? 1 : 0; } void ExN04MuonHit::Draw() diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc index e8ef2d3046..914e8da366 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.cc,v 1.3 2003/06/16 16:48:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04MuonPhysics.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -79,48 +79,34 @@ void ExN04MuonPhysics::ConstructProcess() // 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); + + pManager->AddProcess(&fMuPlusMultipleScattering,-1, 1, 1); + pManager->AddProcess(&fMuPlusIonisation, -1, 2, 2); + pManager->AddProcess(&fMuPlusBremsstrahlung, -1, 3, 3); + pManager->AddProcess(&fMuPlusPairProduction, -1, 4, 4); // Muon Minus Physics pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); - // add processes - pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fMuMinusMultipleScattering,-1, 1, 1); + pManager->AddProcess(&fMuMinusIonisation, -1, 2, 2); + pManager->AddProcess(&fMuMinusBremsstrahlung, -1, 3, 3); + pManager->AddProcess(&fMuMinusPairProduction, -1, 4, 4); - 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); + + pManager->AddProcess(&fTauPlusMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTauPlusIonisation, -1, 2, 2); // 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); + pManager->AddProcess(&fTauMinusMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTauMinusIonisation, -1, 2, 2); } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonSD.cc index b464103b89..c62899cfca 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonSD.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04MuonSD.cc @@ -49,7 +49,7 @@ void ExN04MuonSD::Initialize(G4HCofThisEvent*HCE) HCE->AddHitsCollection(HCID,muonCollection); } -G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); @@ -77,7 +77,7 @@ G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*HCE) +void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*) {;} void ExN04MuonSD::clear() diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc index 0da3393e92..8461d67147 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04PhysicsList.cc,v 1.3 2003/06/16 16:48:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04PhysicsList.cc,v 1.4 2003/12/03 11:03:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -30,7 +30,6 @@ #include "globals.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" @@ -51,7 +50,7 @@ ExN04PhysicsList::ExN04PhysicsList(): G4VModularPhysicsList() { // default cut value (1.0mm) defaultCutValue = 1.0*mm; - SetVerboseLevel(1); + // SetVerboseLevel(1); // General Physics RegisterPhysics( new ExN04GeneralPhysics("general") ); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorAction.cc index 07c2fc62e5..3b3568cb0c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorAction.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // ExN04PrimaryGeneratorAction.cc -// $Id: ExN04PrimaryGeneratorAction.cc,v 1.2 2002/05/28 13:58:12 murakami Exp $ +// $Id: ExN04PrimaryGeneratorAction.cc,v 1.3 2003/12/09 15:30:47 gunter Exp $ // // ==================================================================== #include "ExN04PrimaryGeneratorAction.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorMessenger.cc index be7fe43633..976b337322 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04PrimaryGeneratorMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // ExN04PrimaryGeneratorMessenger.cc -// $Id: ExN04PrimaryGeneratorMessenger.cc,v 1.1 2002/04/29 20:44:06 asaim Exp $ +// $Id: ExN04PrimaryGeneratorMessenger.cc,v 1.2 2003/12/09 15:30:48 gunter Exp $ // // ==================================================================== #include "G4UIcommand.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04RunAction.cc index b1a634759d..eddf84912b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 086c8a0a60..437d90be8d 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04SteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04SteppingVerbose.cc,v 1.2 2003/06/16 16:48:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04SteppingVerbose.cc,v 1.3 2003/12/03 11:03:07 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -73,7 +73,8 @@ void ExN04SteppingVerbose::StepInfo() << 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"); + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; // if( fStepStatus != fWorldBoundary){ if( fTrack->GetNextVolume() != 0 ) { @@ -161,7 +162,8 @@ G4int prec = G4cout.precision(3); << 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"); + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; if(fTrack->GetNextVolume()){ G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerHit.cc index f6094b7618..03d1f2bf1c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerHit.cc @@ -37,6 +37,7 @@ ExN04TrackerHit::~ExN04TrackerHit() {;} ExN04TrackerHit::ExN04TrackerHit(const ExN04TrackerHit &right) + : G4VHit() { edep = right.edep; pos = right.pos; @@ -49,9 +50,9 @@ const ExN04TrackerHit& ExN04TrackerHit::operator=(const ExN04TrackerHit &right) return *this; } -int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const +G4int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const { - return 0; + return (this==&right) ? 1 : 0; } void ExN04TrackerHit::Draw() diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerParametrisation.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerParametrisation.cc index 55b3ff1cc8..aad083a394 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerParametrisation.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerParametrisation.cc @@ -38,15 +38,14 @@ ExN04TrackerParametrisation::~ExN04TrackerParametrisation() {;} void ExN04TrackerParametrisation::ComputeTransformation -(const G4int copyNo,G4VPhysicalVolume *physVol) const +(const G4int, G4VPhysicalVolume* physVol) const { G4ThreeVector origin; physVol->SetTranslation(origin); } void ExN04TrackerParametrisation::ComputeDimensions -(G4Tubs & trackerLayer, const G4int copyNo, - const G4VPhysicalVolume * physVol) const +(G4Tubs& trackerLayer, const G4int copyNo, const G4VPhysicalVolume*) const { trackerLayer.SetInnerRadius(tracker_radius[copyNo]); trackerLayer.SetOuterRadius(tracker_radius[copyNo]+tracker_thick); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerSD.cc index 0389809c88..d35e8cf6c3 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerSD.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04TrackerSD.cc @@ -37,7 +37,7 @@ ExN04TrackerSD::ExN04TrackerSD(G4String name) ExN04TrackerSD::~ExN04TrackerSD(){;} -void ExN04TrackerSD::Initialize(G4HCofThisEvent*HCE) +void ExN04TrackerSD::Initialize(G4HCofThisEvent* HCE) { static int HCID = -1; trackerCollection = new ExN04TrackerHitsCollection @@ -47,7 +47,7 @@ void ExN04TrackerSD::Initialize(G4HCofThisEvent*HCE) HCE->AddHitsCollection(HCID,trackerCollection); } -G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool ExN04TrackerSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); if(edep==0.) return false; @@ -60,8 +60,9 @@ G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*HCE) -{;} +void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*) +{ +} void ExN04TrackerSD::clear() { @@ -74,4 +75,3 @@ void ExN04TrackerSD::DrawAll() void ExN04TrackerSD::PrintAll() { } - diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc index 5fc3c7e65f..855ac08f43 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/ExN04VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04VisManager.cc,v 1.1 2002/11/19 10:17:05 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04VisManager.cc,v 1.2 2003/11/13 15:11:12 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void ExN04VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HEPEvtcom.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HEPEvtcom.cc index 6f1e586170..895028656e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HEPEvtcom.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HEPEvtcom.cc @@ -19,8 +19,8 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - -//$Id: HEPEvtcom.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// +//$Id: HEPEvtcom.cc,v 1.2 2003/12/09 15:30:49 gunter Exp $ // ====================================================================== // PARAMETER (NMXHEP=4000) // COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc index dd74648002..f5bf759d66 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReader.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4AsciiReader.cc -// $Id: HepMCG4AsciiReader.cc,v 1.3 2003/06/16 16:48:15 gunter Exp $ +// $Id: HepMCG4AsciiReader.cc,v 1.4 2003/12/09 15:30:50 gunter Exp $ // // ==================================================================== #include "HepMCG4AsciiReader.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReaderMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReaderMessenger.cc index e42a886f4b..43231d9979 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReaderMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4AsciiReaderMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4AsciiReaderMessenger.cc -// $Id: HepMCG4AsciiReaderMessenger.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// $Id: HepMCG4AsciiReaderMessenger.cc,v 1.2 2003/12/09 15:30:51 gunter Exp $ // // ==================================================================== #include "HepMCG4AsciiReaderMessenger.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4Interface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4Interface.cc index 58cbc829ee..ec0853c68c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4Interface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4Interface.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4Interface.cc -// $Id: HepMCG4Interface.cc,v 1.1 2002/05/28 14:00:40 murakami Exp $ +// $Id: HepMCG4Interface.cc,v 1.2 2003/12/09 15:30:52 gunter Exp $ // // ==================================================================== #include "HepMCG4Interface.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc index c20f23cd26..e65ddf3e2c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaInterface.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4PythiaInterface.cc -// $Id: HepMCG4PythiaInterface.cc,v 1.2 2003/06/16 16:48:16 gunter Exp $ +// $Id: HepMCG4PythiaInterface.cc,v 1.3 2003/12/09 15:30:53 gunter Exp $ // // ==================================================================== #include "HepMCG4PythiaInterface.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc index 28ee979dbe..99d7ecde1a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx01/src/HepMCG4PythiaMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4PythiaMessenger.cc -// $Id: HepMCG4PythiaMessenger.cc,v 1.2 2003/06/16 16:48:17 gunter Exp $ +// $Id: HepMCG4PythiaMessenger.cc,v 1.3 2003/12/09 15:30:54 gunter Exp $ // // ==================================================================== #include "HepMCG4PythiaMessenger.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/History index 49406ad8bd..bb50b9be07 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.1 2002/11/19 10:37:08 murakami Exp $ +$Id: History,v 1.3 2003/11/13 15:26:42 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,14 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Nov 13th, 2003 John Allison +- Reconstructed Vis Manager. + +Jul. 04, 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 - modified physics lists as is ExN04. - "std" namespace left/not cared was modified to "G4std". diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.cc index eb071f326d..54d9063acf 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/data/example_MyPythia.cc @@ -19,7 +19,8 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// $Id: example_MyPythia.cc,v 1.3 2002/12/13 11:42:38 gcosmo Exp $ +// +// $Id: example_MyPythia.cc,v 1.4 2003/12/09 15:31:35 gunter Exp $ // ==================================================================== // example_MyPythia.cc // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmcEx02-clhep.cc index 180aff62ab..223043fec4 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.1 2002/11/19 10:37:08 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/hepmc_ascii.out index ee322a77d3..9bbd29c724 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-05-02 $ + Geant4 version $Name: geant4-06-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 5335ae3882..71958c19ee 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-05-02 $ + Geant4 version $Name: geant4-06-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02DetectorConstruction.hh index 034666f3f1..a1b8bcdda1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02DetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02DetectorConstruction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02DetectorConstruction.hh -// $Id: H02DetectorConstruction.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ +// $Id: H02DetectorConstruction.hh,v 1.2 2003/12/09 15:31:36 gunter Exp $ // // ==================================================================== #ifndef H02_DETECTOR_CONSTRUCTION_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EMPhysics.hh index 4b270667ec..d2764ab9f8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EventAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EventAction.hh index 5e3b95063e..b885034c69 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EventAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02EventAction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02EventAction.hh -// $Id: H02EventAction.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ +// $Id: H02EventAction.hh,v 1.2 2003/12/09 15:31:37 gunter Exp $ // // ==================================================================== #ifndef H02_EVENT_ACTION_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02Field.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02Field.hh index d493f161ff..b93b41710a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02Field.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02Field.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02Field.hh -// $Id: H02Field.hh,v 1.1 2002/11/19 10:35:48 murakami Exp $ +// $Id: H02Field.hh,v 1.2 2003/12/09 15:31:38 gunter Exp $ // // ==================================================================== #ifndef H02_FIELD_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02GeneralPhysics.hh index 72a6f65d50..9356b8435d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02HadronPhysics.hh index a84a920f5b..5d6134ab8a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02HadronPhysics.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// //======================== // taken from example N04 of G4 distribution //======================== diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02IonPhysics.hh index 0765c611df..9b4c457080 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonHit.hh index 4416c99990..d25d5adf43 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonHit.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02MuonHit.hh -// $Id: H02MuonHit.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// $Id: H02MuonHit.hh,v 1.3 2003/12/09 15:31:40 gunter Exp $ // // ==================================================================== #ifndef H02_MUON_HIT_H @@ -50,7 +50,7 @@ public: H02MuonHit(const H02MuonHit& right); const H02MuonHit& operator=(const H02MuonHit& right); - int operator==(const H02MuonHit& right) const; + G4int operator==(const H02MuonHit& right) const; void* operator new(size_t); void operator delete(void* aHit); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonPhysics.hh index 94d6f027cf..2eb91876bf 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonSD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonSD.hh index 26ab602dec..b367d06cc9 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonSD.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02MuonSD.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02MuonSD.hh -// $Id: H02MuonSD.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// $Id: H02MuonSD.hh,v 1.2 2003/12/09 15:31:41 gunter Exp $ // // ==================================================================== #ifndef H02_MUON_SD_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorAction.hh index f12a45c39e..17eac0cefb 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorAction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PrimaryGeneratorAction.hh -// $Id: H02PrimaryGeneratorAction.hh,v 1.2 2003/06/16 16:48:44 gunter Exp $ +// $Id: H02PrimaryGeneratorAction.hh,v 1.4 2003/12/09 15:31:43 gunter Exp $ // // ==================================================================== #ifndef H02_PRIMARY_GENERATOR_ACTION_H @@ -73,7 +73,7 @@ inline void H02PrimaryGeneratorAction::SetGenerator(G4VPrimaryGenerator* gen) inline void H02PrimaryGeneratorAction::SetGenerator(G4String genname) { - map::iterator pos= gentypeMap.find(genname); + std::map::iterator pos= gentypeMap.find(genname); if(pos != gentypeMap.end()) { currentGenerator= pos->second; currentGeneratorName= genname; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorMessenger.hh index 67a60b676d..993f1bcede 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PrimaryGeneratorMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PrimaryGeneratorMessenger.hh -// $Id: H02PrimaryGeneratorMessenger.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// $Id: H02PrimaryGeneratorMessenger.hh,v 1.2 2003/12/09 15:31:44 gunter Exp $ // // ==================================================================== #ifndef H02_PRIMARY_GENERATOR_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaInterface.hh index ae1048ca78..ecf5f6b74b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaInterface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaInterface.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PythiaInterface.hh -// $Id: H02PythiaInterface.hh,v 1.2 2003/06/16 16:48:45 gunter Exp $ +// $Id: H02PythiaInterface.hh,v 1.3 2003/12/09 15:31:45 gunter Exp $ // // A generic interface class with Pythia event generator via HepMC. // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaMessenger.hh index 988f013402..484c901a4a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02PythiaMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4GenericPythiaMessenger.hh -// $Id: H02PythiaMessenger.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// $Id: H02PythiaMessenger.hh,v 1.2 2003/12/09 15:31:46 gunter Exp $ // // ==================================================================== #ifndef H02_PYTHIA_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02SteppingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02SteppingAction.hh index 1c80f9c234..6358bc7107 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02SteppingAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02SteppingAction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02SteppingAction.hh -// $Id: H02SteppingAction.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// $Id: H02SteppingAction.hh,v 1.2 2003/12/09 15:31:47 gunter Exp $ // // ==================================================================== #ifndef H02_STEPPING_ACTION_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh index b8a5a4020f..10dea55439 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/include/H02VisManager.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02VisManager.hh -// $Id: H02VisManager.hh,v 1.1 2002/11/19 10:35:49 murakami Exp $ +// $Id: H02VisManager.hh,v 1.2 2003/12/09 15:31:48 gunter Exp $ // // ==================================================================== #ifndef H02_VIS_MANAGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02DetectorConstruction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02DetectorConstruction.cc index 322ee88c15..a1bbd59e25 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02DetectorConstruction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02DetectorConstruction.cc @@ -19,10 +19,10 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // H02DetectorConstruction.cc -// $Id: H02DetectorConstruction.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// $Id: H02DetectorConstruction.cc,v 1.3 2003/12/09 15:31:49 gunter Exp $ // // ==================================================================== #include "H02DetectorConstruction.hh" @@ -130,10 +130,6 @@ G4VPhysicalVolume* H02DetectorConstruction::Construct() density= 1.782e-03*g/cm3; G4Material* Ar= new G4Material(name="ArgonGas", z=18., a, density); - a= 28.09*g/mole; - density= 2.33*g/cm3; - G4Material* Silicon= new G4Material(name="Silicon", z=14., a, density); - density= 1.032*g/cm3; G4Material* Scinti= new G4Material(name="Scintillator", density, nel=2); Scinti-> AddElement(elC, 9); @@ -182,16 +178,16 @@ G4VPhysicalVolume* H02DetectorConstruction::Construct() barrelCalLV-> SetVisAttributes(calVisAtt); endcapCalLV-> SetVisAttributes(calVisAtt); - G4PVPlacement* barrelCal= + // G4PVPlacement* barrelCal= new G4PVPlacement(0, G4ThreeVector(), "BARREL_CAL_PV", barrelCalLV, expHall, FALSE, 0); G4ThreeVector posCal(0.,0.,6.*m); - G4PVPlacement* endcapCal1= + // G4PVPlacement* endcapCal1= new G4PVPlacement(0, posCal, "ENDCAP_CAL_PV", endcapCalLV, expHall, FALSE, 0); - G4PVPlacement* endcapCal2= + // G4PVPlacement* endcapCal2= new G4PVPlacement(0, -posCal, "ENDCAP_CAL_PV", endcapCalLV, expHall, FALSE, 1); @@ -219,7 +215,6 @@ G4VPhysicalVolume* H02DetectorConstruction::Construct() G4RotationMatrix* rotM= new G4RotationMatrix; rotM->rotateZ(90.*deg); - G4RotationMatrix* rotMDA= new G4RotationMatrix; for (G4int k=0; k<8; k++) { G4Transform3D transformM(*rotM, posM); new G4PVPlacement(transformM, "BARREL_MUON_PV", @@ -229,11 +224,11 @@ G4VPhysicalVolume* H02DetectorConstruction::Construct() } G4ThreeVector posMuon(0.,0.,8.*m); - G4PVPlacement* endcapMuon1= + // G4PVPlacement* endcapMuon1= new G4PVPlacement(0, posMuon, "ENDCAP_MUON_PV", endcapMuonLV, expHall, FALSE, 0); - G4PVPlacement* endcapMuon2= + // G4PVPlacement* endcapMuon2= new G4PVPlacement(0, -posMuon, "ENDCAP_MUON_PV", endcapMuonLV, expHall, FALSE, 1); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EMPhysics.cc index 637cdff711..94e9344aea 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EventAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EventAction.cc index 838cad1d43..bff8646eb0 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EventAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02EventAction.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02EventAction.cc -// $Id: H02EventAction.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// $Id: H02EventAction.cc,v 1.3 2003/12/09 15:31:50 gunter Exp $ // // ==================================================================== #include "H02EventAction.hh" @@ -55,6 +55,7 @@ H02EventAction::~H02EventAction() void H02EventAction::BeginOfEventAction(const G4Event* anEvent) ////////////////////////////////////////////////////////////// { + const G4Event* ev = anEvent; ev = 0; #ifdef DEBUG_HEPMC // printout primary information G4cout << "Print out primary information" << G4endl; @@ -68,7 +69,7 @@ void H02EventAction::BeginOfEventAction(const G4Event* anEvent) } //////////////////////////////////////////////////////////// -void H02EventAction::EndOfEventAction(const G4Event* anEvent) +void H02EventAction::EndOfEventAction(const G4Event*) //////////////////////////////////////////////////////////// { G4cout << " Print out hit information" << G4endl; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02Field.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02Field.cc index f5158e5ec8..78d0429b99 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02Field.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02Field.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02Field.hh -// $Id: H02Field.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// $Id: H02Field.cc,v 1.2 2003/12/09 15:31:51 gunter Exp $ // // ==================================================================== diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02GeneralPhysics.cc index d586308df4..9a53c16450 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02HadronPhysics.cc index bb5b609acd..b71c23179c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02HadronPhysics.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #include "H02HadronPhysics.hh" #include "globals.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02IonPhysics.cc index ea073ed960..d8fb629c4e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonHit.cc index 94086eb3b8..47decffb22 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonHit.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02MuonHit.cc -// $Id: H02MuonHit.cc,v 1.2 2003/06/16 16:48:50 gunter Exp $ +// $Id: H02MuonHit.cc,v 1.4 2003/12/09 15:31:53 gunter Exp $ // // ==================================================================== #include "H02MuonHit.hh" @@ -61,6 +61,7 @@ H02MuonHit::~H02MuonHit() ///////////////////////////////////////////// H02MuonHit::H02MuonHit(const H02MuonHit& right) ///////////////////////////////////////////// + : G4VHit() { *this= right; } @@ -79,10 +80,10 @@ const H02MuonHit& H02MuonHit::operator=(const H02MuonHit& right) } ///////////////////////////////////////////////////////// -int H02MuonHit::operator==(const H02MuonHit& right) const +G4int H02MuonHit::operator==(const H02MuonHit& right) const ///////////////////////////////////////////////////////// { - return 0; + return (this==&right) ? 1 : 0; } /////////////////////// @@ -117,9 +118,9 @@ void H02MuonHit::Print() id -=10; tag="E"; } - G4cout << tag << id << " :" << setw(12) << pname.c_str() - << " : pT=" << setprecision(3) << momentum.perp()/GeV - << " : TOF=" << setprecision(3) << tof/ns - << " : x=" << setprecision(3) << position*(1./m) + G4cout << tag << id << " :" << std::setw(12) << pname.c_str() + << " : pT=" << std::setprecision(3) << momentum.perp()/GeV + << " : TOF=" << std::setprecision(3) << tof/ns + << " : x=" << std::setprecision(3) << position*(1./m) << G4endl; } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonPhysics.cc index 2d9989ae1e..654a38273f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonSD.cc index b9606e5e93..bdab7e36ef 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonSD.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02MuonSD.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02MuonSD.cc -// $Id: H02MuonSD.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// $Id: H02MuonSD.cc,v 1.3 2003/12/09 15:31:54 gunter Exp $ // // ==================================================================== @@ -63,7 +63,7 @@ void H02MuonSD::Initialize(G4HCofThisEvent* HCE) } /////////////////////////////////////////////////////////////////////// -G4bool H02MuonSD::ProcessHits(G4Step* astep, G4TouchableHistory* ROhist) +G4bool H02MuonSD::ProcessHits(G4Step* astep, G4TouchableHistory*) /////////////////////////////////////////////////////////////////////// { G4ParticleDefinition* particle= astep-> GetTrack()-> GetDefinition(); @@ -89,7 +89,7 @@ G4bool H02MuonSD::ProcessHits(G4Step* astep, G4TouchableHistory* ROhist) } /////////////////////////////////////////////// -void H02MuonSD::EndOfEvent(G4HCofThisEvent* HCE) +void H02MuonSD::EndOfEvent(G4HCofThisEvent*) /////////////////////////////////////////////// { } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PhysicsList.cc index f1e53ce481..c32a58241c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorAction.cc index d4b9559e83..7b5c5f4f7a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorAction.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PrimaryGeneratorAction.cc -// $Id: H02PrimaryGeneratorAction.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// $Id: H02PrimaryGeneratorAction.cc,v 1.2 2003/12/09 15:31:55 gunter Exp $ // // ==================================================================== #include "H02PrimaryGeneratorAction.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorMessenger.cc index 5496e69618..d798b12bda 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PrimaryGeneratorMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PrimaryGeneratorMessenger.cc -// $Id: H02PrimaryGeneratorMessenger.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// $Id: H02PrimaryGeneratorMessenger.cc,v 1.2 2003/12/09 15:31:56 gunter Exp $ // // ==================================================================== #include "G4UIcommand.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc index 55fe7bbb97..aa844bb55b 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaInterface.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PythiaInterface.cc -// $Id: H02PythiaInterface.cc,v 1.2 2003/06/16 16:48:53 gunter Exp $ +// $Id: H02PythiaInterface.cc,v 1.3 2003/12/09 15:31:57 gunter Exp $ // // ==================================================================== #include "H02PythiaInterface.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc index 1cb2f666fb..885f0eb0d3 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02PythiaMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PythiaMessenger.cc -// $Id: H02PythiaMessenger.cc,v 1.2 2003/06/16 16:48:54 gunter Exp $ +// $Id: H02PythiaMessenger.cc,v 1.3 2003/12/09 15:31:58 gunter Exp $ // // ==================================================================== #include "H02PythiaMessenger.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02SteppingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02SteppingAction.cc index 8f5b06725e..7e7986512f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02SteppingAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02SteppingAction.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02SteppingAction.cc -// $Id: H02SteppingAction.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// $Id: H02SteppingAction.cc,v 1.2 2003/12/09 15:31:59 gunter Exp $ // // ==================================================================== diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc index 6392778c30..de4696302a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02-clhep/src/H02VisManager.cc @@ -19,31 +19,33 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02VisManager.cc -// $Id: H02VisManager.cc,v 1.1 2002/11/19 10:36:20 murakami Exp $ +// $Id: H02VisManager.cc,v 1.3 2003/12/09 15:32:00 gunter Exp $ // // ==================================================================== #include "H02VisManager.hh" -// supported drivers... +// Supported drivers... + +// Not needing external packages or libraries... #include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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" @@ -67,20 +69,11 @@ #include "G4OpenInventorWin32.hh" #endif -#ifdef G4VIS_USE_RAYX -#include "G4RayX.hh" -#endif - #ifdef G4VIS_USE_VRML #include "G4VRML1.hh" #include "G4VRML2.hh" #endif -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - // ==================================================================== // // class description @@ -103,60 +96,48 @@ H02VisManager::~H02VisManager() void H02VisManager::RegisterGraphicsSystems() //////////////////////////////////////////// { + // Graphics Systems not needing external packages or libraries... RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... #ifdef G4VIS_USE_DAWN - G4cout << "* Visualizaton Driver: Fukui Renderer" << G4endl; - RegisterGraphicsSystem(new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_DAWNFILE - G4cout << "* Visualizaton Driver: DAWN" << G4endl; - RegisterGraphicsSystem(new G4DAWNFILE); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem(new G4Wo); - RegisterGraphicsSystem(new G4Xo); + RegisterGraphicsSystem (new G4FukuiRenderer); #endif #ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem(new G4OpenGLImmediateX); - RegisterGraphicsSystem(new G4OpenGLStoredX); + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); #endif #ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem(new G4OpenGLImmediateWin32); - RegisterGraphicsSystem(new G4OpenGLStoredWin32); + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); #endif #ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem(new G4OpenGLImmediateXm); - RegisterGraphicsSystem(new G4OpenGLStoredXm); + RegisterGraphicsSystem (new G4OpenGLImmediateXm); + RegisterGraphicsSystem (new G4OpenGLStoredXm); #endif #ifdef G4VIS_USE_OIX - RegisterGraphicsSystem(new G4OpenInventorX); + RegisterGraphicsSystem (new G4OpenInventorX); #endif #ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem(new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_RAYX - RegisterGraphicsSystem(new G4RayX); + RegisterGraphicsSystem (new G4OpenInventorWin32); #endif #ifdef G4VIS_USE_VRML - G4cout << "* Visualizaton Driver: VRML1/2" << G4endl; - RegisterGraphicsSystem(new G4VRML1); - RegisterGraphicsSystem(new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - G4cout << "* Visualizaton Driver: VRML1/2 File" << G4endl; - RegisterGraphicsSystem(new G4VRML1File); - RegisterGraphicsSystem(new G4VRML2File); + RegisterGraphicsSystem (new G4VRML1); + RegisterGraphicsSystem (new G4VRML2); #endif if(fVerbose> 0) { diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/History b/examples/extended/eventgenerator/HepMC/HepMCEx02/History index e7ceab6226..62d5021258 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/History +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.3 2002/11/19 10:26:52 murakami Exp $ +$Id: History,v 1.5 2003/11/13 15:26:31 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,14 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Nov. 13, 2003 John Allison +- Reconstructed Vis Manager. + +Jul. 04, 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 - modified physics lists as is ExN04. - "std" namespace left/not cared was modified to "G4std". diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f index 795df7197f..10ad83bb09 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/external/initpydata.f @@ -19,6 +19,7 @@ * * based on the Program) you indicate your acceptance of this * * * statement, and all its terms. * * ******************************************************************** +* c c Matt.Dobbs@Cern.CH, December 1999 c EXTERNAL statement links PYDATA on most machines. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmcEx02.cc index df4b42d452..c5167a288e 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.2 2002/05/28 14:19:07 murakami Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out b/examples/extended/eventgenerator/HepMC/HepMCEx02/hepmc_ascii.out index 8e66eab869..13f715159f 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-05-02 $ + Geant4 version $Name: geant4-06-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 3007eb3b75..df7aac2dc4 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-05-02 $ + Geant4 version $Name: geant4-06-00 $ (31-Jul-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02DetectorConstruction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02DetectorConstruction.hh index f8d5b4f5b2..04db5593d3 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02DetectorConstruction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02DetectorConstruction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02DetectorConstruction.hh -// $Id: H02DetectorConstruction.hh,v 1.1 2002/05/28 14:10:50 murakami Exp $ +// $Id: H02DetectorConstruction.hh,v 1.2 2003/12/09 15:31:04 gunter Exp $ // // ==================================================================== #ifndef H02_DETECTOR_CONSTRUCTION_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EMPhysics.hh index 23ad2a0945..f42a9c0285 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EventAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EventAction.hh index 5320f12e00..a7e5fb97fb 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EventAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02EventAction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02EventAction.hh -// $Id: H02EventAction.hh,v 1.1 2002/05/28 14:10:51 murakami Exp $ +// $Id: H02EventAction.hh,v 1.2 2003/12/09 15:31:05 gunter Exp $ // // ==================================================================== #ifndef H02_EVENT_ACTION_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02Field.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02Field.hh index 4dcf49fd3e..1050ec967c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02Field.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02Field.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02Field.hh -// $Id: H02Field.hh,v 1.1 2002/05/28 14:10:51 murakami Exp $ +// $Id: H02Field.hh,v 1.2 2003/12/09 15:31:06 gunter Exp $ // // ==================================================================== #ifndef H02_FIELD_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02GeneralPhysics.hh index 3e0072fa78..2aa1c2f15c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh index a84a920f5b..5d6134ab8a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02HadronPhysics.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// //======================== // taken from example N04 of G4 distribution //======================== diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02IonPhysics.hh index 11b1e29fcd..cb438b73e7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonHit.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonHit.hh index 6b35201279..024b76c55a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonHit.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonHit.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02MuonHit.hh -// $Id: H02MuonHit.hh,v 1.1 2002/05/28 14:10:52 murakami Exp $ +// $Id: H02MuonHit.hh,v 1.3 2003/12/09 15:31:08 gunter Exp $ // // ==================================================================== #ifndef H02_MUON_HIT_H @@ -50,7 +50,7 @@ public: H02MuonHit(const H02MuonHit& right); const H02MuonHit& operator=(const H02MuonHit& right); - int operator==(const H02MuonHit& right) const; + G4int operator==(const H02MuonHit& right) const; void* operator new(size_t); void operator delete(void* aHit); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonPhysics.hh index c86ccc6252..8e7771c04d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonSD.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonSD.hh index fd84f76115..d306b75ebd 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonSD.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02MuonSD.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02MuonSD.hh -// $Id: H02MuonSD.hh,v 1.1 2002/05/28 14:10:52 murakami Exp $ +// $Id: H02MuonSD.hh,v 1.2 2003/12/09 15:31:09 gunter Exp $ // // ==================================================================== #ifndef H02_MUON_SD_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorAction.hh index 38c3f5a348..1d24cd1ed0 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorAction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PrimaryGeneratorAction.hh -// $Id: H02PrimaryGeneratorAction.hh,v 1.2 2003/06/16 16:48:31 gunter Exp $ +// $Id: H02PrimaryGeneratorAction.hh,v 1.4 2003/12/09 15:31:10 gunter Exp $ // // ==================================================================== #ifndef H02_PRIMARY_GENERATOR_ACTION_H @@ -73,7 +73,7 @@ inline void H02PrimaryGeneratorAction::SetGenerator(G4VPrimaryGenerator* gen) inline void H02PrimaryGeneratorAction::SetGenerator(G4String genname) { - map::iterator pos= gentypeMap.find(genname); + std::map::iterator pos= gentypeMap.find(genname); if(pos != gentypeMap.end()) { currentGenerator= pos->second; currentGeneratorName= genname; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorMessenger.hh index 642c68d0be..1158d6f8fc 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02PrimaryGeneratorMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PrimaryGeneratorMessenger.hh -// $Id: H02PrimaryGeneratorMessenger.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// $Id: H02PrimaryGeneratorMessenger.hh,v 1.2 2003/12/09 15:31:11 gunter Exp $ // // ==================================================================== #ifndef H02_PRIMARY_GENERATOR_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02SteppingAction.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02SteppingAction.hh index a7287d2b2a..c541b44837 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02SteppingAction.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02SteppingAction.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02SteppingAction.hh -// $Id: H02SteppingAction.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// $Id: H02SteppingAction.hh,v 1.2 2003/12/09 15:31:12 gunter Exp $ // // ==================================================================== #ifndef H02_STEPPING_ACTION_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh index 9a3a69c774..fa9cd58dca 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/H02VisManager.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02VisManager.hh -// $Id: H02VisManager.hh,v 1.1 2002/05/28 14:10:53 murakami Exp $ +// $Id: H02VisManager.hh,v 1.2 2003/12/09 15:31:13 gunter Exp $ // // ==================================================================== #ifndef H02_VIS_MANAGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh index 069b21fff9..c22fc6b94d 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReader.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4AsciiReader.hh -// $Id: HepMCG4AsciiReader.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ +// $Id: HepMCG4AsciiReader.hh,v 1.3 2003/12/09 15:31:14 gunter Exp $ // // ==================================================================== #ifndef HEPMC_G4_ASCII_READER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh index a186f6a380..778d35364e 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4AsciiReaderMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4AsciiReaderMessenger.hh -// $Id: HepMCG4AsciiReaderMessenger.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ +// $Id: HepMCG4AsciiReaderMessenger.hh,v 1.3 2003/12/09 15:31:15 gunter Exp $ // // ==================================================================== #ifndef HEPMC_G4_ASCII_READER_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh index bd5d1dbb72..88083e048d 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4Interface.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4Interface.hh -// $Id: HepMCG4Interface.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ +// $Id: HepMCG4Interface.hh,v 1.3 2003/12/09 15:31:16 gunter Exp $ // // A base class for primary generation via HepMC object. // This class is derived from G4VPrimaryGenerator. diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh index d38bcbeb55..0477fb3fd7 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaInterface.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4PythiaInterface.hh -// $Id: HepMCG4PythiaInterface.hh,v 1.3 2003/06/16 16:48:32 gunter Exp $ +// $Id: HepMCG4PythiaInterface.hh,v 1.4 2003/12/09 15:31:17 gunter Exp $ // // A generic interface class with Pythia event generator via HepMC. // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh index eefadcc94e..706e638f1f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/include/HepMCG4PythiaMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4GenericPythiaMessenger.hh -// $Id: HepMCG4PythiaMessenger.hh,v 1.2 2002/11/19 10:25:08 murakami Exp $ +// $Id: HepMCG4PythiaMessenger.hh,v 1.3 2003/12/09 15:31:18 gunter Exp $ // // ==================================================================== #ifndef HEPMC_G4_PYTHIA_MESSENGER_H diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02DetectorConstruction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02DetectorConstruction.cc index 9003972b0e..717439c808 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02DetectorConstruction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02DetectorConstruction.cc @@ -19,10 +19,10 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // H02DetectorConstruction.cc -// $Id: H02DetectorConstruction.cc,v 1.1 2002/05/28 14:15:46 murakami Exp $ +// $Id: H02DetectorConstruction.cc,v 1.3 2003/12/09 15:31:19 gunter Exp $ // // ==================================================================== #include "H02DetectorConstruction.hh" @@ -130,10 +130,6 @@ G4VPhysicalVolume* H02DetectorConstruction::Construct() density= 1.782e-03*g/cm3; G4Material* Ar= new G4Material(name="ArgonGas", z=18., a, density); - a= 28.09*g/mole; - density= 2.33*g/cm3; - G4Material* Silicon= new G4Material(name="Silicon", z=14., a, density); - density= 1.032*g/cm3; G4Material* Scinti= new G4Material(name="Scintillator", density, nel=2); Scinti-> AddElement(elC, 9); @@ -182,16 +178,16 @@ G4VPhysicalVolume* H02DetectorConstruction::Construct() barrelCalLV-> SetVisAttributes(calVisAtt); endcapCalLV-> SetVisAttributes(calVisAtt); - G4PVPlacement* barrelCal= + // G4PVPlacement* barrelCal= new G4PVPlacement(0, G4ThreeVector(), "BARREL_CAL_PV", barrelCalLV, expHall, FALSE, 0); G4ThreeVector posCal(0.,0.,6.*m); - G4PVPlacement* endcapCal1= + // G4PVPlacement* endcapCal1= new G4PVPlacement(0, posCal, "ENDCAP_CAL_PV", endcapCalLV, expHall, FALSE, 0); - G4PVPlacement* endcapCal2= + //G4PVPlacement* endcapCal2= new G4PVPlacement(0, -posCal, "ENDCAP_CAL_PV", endcapCalLV, expHall, FALSE, 1); @@ -219,7 +215,6 @@ G4VPhysicalVolume* H02DetectorConstruction::Construct() G4RotationMatrix* rotM= new G4RotationMatrix; rotM->rotateZ(90.*deg); - G4RotationMatrix* rotMDA= new G4RotationMatrix; for (G4int k=0; k<8; k++) { G4Transform3D transformM(*rotM, posM); new G4PVPlacement(transformM, "BARREL_MUON_PV", @@ -229,11 +224,11 @@ G4VPhysicalVolume* H02DetectorConstruction::Construct() } G4ThreeVector posMuon(0.,0.,8.*m); - G4PVPlacement* endcapMuon1= + // G4PVPlacement* endcapMuon1= new G4PVPlacement(0, posMuon, "ENDCAP_MUON_PV", endcapMuonLV, expHall, FALSE, 0); - G4PVPlacement* endcapMuon2= + // G4PVPlacement* endcapMuon2= new G4PVPlacement(0, -posMuon, "ENDCAP_MUON_PV", endcapMuonLV, expHall, FALSE, 1); diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EMPhysics.cc index a0c08da94b..b73bee14f4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EventAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EventAction.cc index ee2b8c2050..3719a94aa0 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EventAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02EventAction.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02EventAction.cc -// $Id: H02EventAction.cc,v 1.1 2002/05/28 14:15:46 murakami Exp $ +// $Id: H02EventAction.cc,v 1.3 2003/12/09 15:31:20 gunter Exp $ // // ==================================================================== #include "H02EventAction.hh" @@ -55,6 +55,7 @@ H02EventAction::~H02EventAction() void H02EventAction::BeginOfEventAction(const G4Event* anEvent) ////////////////////////////////////////////////////////////// { + const G4Event* ev = anEvent; ev=0; #ifdef DEBUG_HEPMC // printout primary information G4cout << "Print out primary information" << G4endl; @@ -68,7 +69,7 @@ void H02EventAction::BeginOfEventAction(const G4Event* anEvent) } //////////////////////////////////////////////////////////// -void H02EventAction::EndOfEventAction(const G4Event* anEvent) +void H02EventAction::EndOfEventAction(const G4Event*) //////////////////////////////////////////////////////////// { G4cout << " Print out hit information" << G4endl; diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02Field.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02Field.cc index aa78b10ffe..fd3704bd47 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02Field.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02Field.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02Field.hh -// $Id: H02Field.cc,v 1.1 2002/05/28 14:15:46 murakami Exp $ +// $Id: H02Field.cc,v 1.2 2003/12/09 15:31:21 gunter Exp $ // // ==================================================================== diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02GeneralPhysics.cc index 6724557dbf..d7009207fd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc index bb5b609acd..b71c23179c 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02HadronPhysics.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #include "H02HadronPhysics.hh" #include "globals.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02IonPhysics.cc index 8561c405b2..c2e0d29b96 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonHit.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonHit.cc index 22c5386c52..376c682e21 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonHit.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonHit.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02MuonHit.cc -// $Id: H02MuonHit.cc,v 1.2 2003/06/16 16:48:37 gunter Exp $ +// $Id: H02MuonHit.cc,v 1.4 2003/12/09 15:31:23 gunter Exp $ // // ==================================================================== #include "H02MuonHit.hh" @@ -61,6 +61,7 @@ H02MuonHit::~H02MuonHit() ///////////////////////////////////////////// H02MuonHit::H02MuonHit(const H02MuonHit& right) ///////////////////////////////////////////// + : G4VHit() { *this= right; } @@ -79,10 +80,10 @@ const H02MuonHit& H02MuonHit::operator=(const H02MuonHit& right) } ///////////////////////////////////////////////////////// -int H02MuonHit::operator==(const H02MuonHit& right) const +G4int H02MuonHit::operator==(const H02MuonHit& right) const ///////////////////////////////////////////////////////// { - return 0; + return (this==&right) ? 1 : 0; } /////////////////////// @@ -117,9 +118,9 @@ void H02MuonHit::Print() id -=10; tag="E"; } - G4cout << tag << id << " :" << setw(12) << pname.c_str() - << " : pT=" << setprecision(3) << momentum.perp()/GeV - << " : TOF=" << setprecision(3) << tof/ns - << " : x=" << setprecision(3) << position*(1./m) + G4cout << tag << id << " :" << std::setw(12) << pname.c_str() + << " : pT=" << std::setprecision(3) << momentum.perp()/GeV + << " : TOF=" << std::setprecision(3) << tof/ns + << " : x=" << std::setprecision(3) << position*(1./m) << G4endl; } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonPhysics.cc index aec89bab30..3145b57ef4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonSD.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonSD.cc index 1b72bf351b..7203a6a6d6 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonSD.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02MuonSD.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02MuonSD.cc -// $Id: H02MuonSD.cc,v 1.1 2002/05/28 14:15:47 murakami Exp $ +// $Id: H02MuonSD.cc,v 1.3 2003/12/09 15:31:24 gunter Exp $ // // ==================================================================== @@ -63,7 +63,7 @@ void H02MuonSD::Initialize(G4HCofThisEvent* HCE) } /////////////////////////////////////////////////////////////////////// -G4bool H02MuonSD::ProcessHits(G4Step* astep, G4TouchableHistory* ROhist) +G4bool H02MuonSD::ProcessHits(G4Step* astep, G4TouchableHistory*) /////////////////////////////////////////////////////////////////////// { G4ParticleDefinition* particle= astep-> GetTrack()-> GetDefinition(); @@ -89,7 +89,7 @@ G4bool H02MuonSD::ProcessHits(G4Step* astep, G4TouchableHistory* ROhist) } /////////////////////////////////////////////// -void H02MuonSD::EndOfEvent(G4HCofThisEvent* HCE) +void H02MuonSD::EndOfEvent(G4HCofThisEvent*) /////////////////////////////////////////////// { } diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PhysicsList.cc index 15d13ba770..33e24d8cdf 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorAction.cc index 08ab842b8e..9bfb47fa62 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorAction.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PrimaryGeneratorAction.cc -// $Id: H02PrimaryGeneratorAction.cc,v 1.1 2002/05/28 14:15:48 murakami Exp $ +// $Id: H02PrimaryGeneratorAction.cc,v 1.2 2003/12/09 15:31:25 gunter Exp $ // // ==================================================================== #include "H02PrimaryGeneratorAction.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorMessenger.cc index 254b7b7605..e4d4bd1bb1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02PrimaryGeneratorMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02PrimaryGeneratorMessenger.cc -// $Id: H02PrimaryGeneratorMessenger.cc,v 1.1 2002/05/28 14:15:48 murakami Exp $ +// $Id: H02PrimaryGeneratorMessenger.cc,v 1.2 2003/12/09 15:31:26 gunter Exp $ // // ==================================================================== #include "G4UIcommand.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02SteppingAction.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02SteppingAction.cc index 33e4dc75db..847aed98d5 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02SteppingAction.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02SteppingAction.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02SteppingAction.cc -// $Id: H02SteppingAction.cc,v 1.1 2002/05/28 14:15:48 murakami Exp $ +// $Id: H02SteppingAction.cc,v 1.2 2003/12/09 15:31:27 gunter Exp $ // // ==================================================================== diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc index d00652e291..5c192ade7f 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/H02VisManager.cc @@ -19,31 +19,33 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // H02VisManager.cc -// $Id: H02VisManager.cc,v 1.1 2002/05/28 14:15:48 murakami Exp $ +// $Id: H02VisManager.cc,v 1.3 2003/12/09 15:31:28 gunter Exp $ // // ==================================================================== #include "H02VisManager.hh" -// supported drivers... +// Supported drivers... + +// Not needing external packages or libraries... #include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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" @@ -67,20 +69,11 @@ #include "G4OpenInventorWin32.hh" #endif -#ifdef G4VIS_USE_RAYX -#include "G4RayX.hh" -#endif - #ifdef G4VIS_USE_VRML #include "G4VRML1.hh" #include "G4VRML2.hh" #endif -#ifdef G4VIS_USE_VRMLFILE -#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - // ==================================================================== // // class description @@ -103,60 +96,48 @@ H02VisManager::~H02VisManager() void H02VisManager::RegisterGraphicsSystems() //////////////////////////////////////////// { + // Graphics Systems not needing external packages or libraries... RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... #ifdef G4VIS_USE_DAWN - G4cout << "* Visualizaton Driver: Fukui Renderer" << G4endl; - RegisterGraphicsSystem(new G4FukuiRenderer); -#endif - -#ifdef G4VIS_USE_DAWNFILE - G4cout << "* Visualizaton Driver: DAWN" << G4endl; - RegisterGraphicsSystem(new G4DAWNFILE); -#endif - -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem(new G4Wo); - RegisterGraphicsSystem(new G4Xo); + RegisterGraphicsSystem (new G4FukuiRenderer); #endif #ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem(new G4OpenGLImmediateX); - RegisterGraphicsSystem(new G4OpenGLStoredX); + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); #endif #ifdef G4VIS_USE_OPENGLWIN32 - RegisterGraphicsSystem(new G4OpenGLImmediateWin32); - RegisterGraphicsSystem(new G4OpenGLStoredWin32); + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); #endif #ifdef G4VIS_USE_OPENGLXM - RegisterGraphicsSystem(new G4OpenGLImmediateXm); - RegisterGraphicsSystem(new G4OpenGLStoredXm); + RegisterGraphicsSystem (new G4OpenGLImmediateXm); + RegisterGraphicsSystem (new G4OpenGLStoredXm); #endif #ifdef G4VIS_USE_OIX - RegisterGraphicsSystem(new G4OpenInventorX); + RegisterGraphicsSystem (new G4OpenInventorX); #endif #ifdef G4VIS_USE_OIWIN32 - RegisterGraphicsSystem(new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_RAYX - RegisterGraphicsSystem(new G4RayX); + RegisterGraphicsSystem (new G4OpenInventorWin32); #endif #ifdef G4VIS_USE_VRML - G4cout << "* Visualizaton Driver: VRML1/2" << G4endl; - RegisterGraphicsSystem(new G4VRML1); - RegisterGraphicsSystem(new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - G4cout << "* Visualizaton Driver: VRML1/2 File" << G4endl; - RegisterGraphicsSystem(new G4VRML1File); - RegisterGraphicsSystem(new G4VRML2File); + RegisterGraphicsSystem (new G4VRML1); + RegisterGraphicsSystem (new G4VRML2); #endif if(fVerbose> 0) { diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HEPEvtcom.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HEPEvtcom.cc index 0c11f3ef35..784025f84a 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HEPEvtcom.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HEPEvtcom.cc @@ -19,8 +19,8 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - -//$Id: HEPEvtcom.cc,v 1.1 2002/05/28 14:15:48 murakami Exp $ +// +//$Id: HEPEvtcom.cc,v 1.2 2003/12/09 15:31:29 gunter Exp $ // ====================================================================== // PARAMETER (NMXHEP=4000) // COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc index ce417f0ffe..7e73ef8434 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReader.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4AsciiReader.cc -// $Id: HepMCG4AsciiReader.cc,v 1.3 2003/06/16 16:48:40 gunter Exp $ +// $Id: HepMCG4AsciiReader.cc,v 1.4 2003/12/09 15:31:30 gunter Exp $ // // ==================================================================== #include "HepMCG4AsciiReader.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc index 7c4afa0009..ae3f738e39 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4AsciiReaderMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4AsciiReaderMessenger.cc -// $Id: HepMCG4AsciiReaderMessenger.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ +// $Id: HepMCG4AsciiReaderMessenger.cc,v 1.3 2003/12/09 15:31:31 gunter Exp $ // // ==================================================================== #include "HepMCG4AsciiReaderMessenger.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc index b88fc6a364..ca115f51b1 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4Interface.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4Interface.cc -// $Id: HepMCG4Interface.cc,v 1.2 2002/11/19 10:25:49 murakami Exp $ +// $Id: HepMCG4Interface.cc,v 1.3 2003/12/09 15:31:32 gunter Exp $ // // ==================================================================== #include "HepMCG4Interface.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc index 615a274ef7..95ad1d8051 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaInterface.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4PythiaInterface.cc -// $Id: HepMCG4PythiaInterface.cc,v 1.3 2003/06/16 16:48:41 gunter Exp $ +// $Id: HepMCG4PythiaInterface.cc,v 1.4 2003/12/09 15:31:33 gunter Exp $ // // ==================================================================== #include "HepMCG4PythiaInterface.hh" diff --git a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc index 6d5cc2a45e..d9491dce28 100644 --- a/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc +++ b/examples/extended/eventgenerator/HepMC/HepMCEx02/src/HepMCG4PythiaMessenger.cc @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // HepMCG4PythiaMessenger.cc -// $Id: HepMCG4PythiaMessenger.cc,v 1.3 2003/06/16 16:48:42 gunter Exp $ +// $Id: HepMCG4PythiaMessenger.cc,v 1.4 2003/12/09 15:31:34 gunter Exp $ // // ==================================================================== #include "HepMCG4PythiaMessenger.hh" diff --git a/examples/extended/eventgenerator/HepMC/History b/examples/extended/eventgenerator/HepMC/History index 4e3052069c..2ae3463e2a 100644 --- a/examples/extended/eventgenerator/HepMC/History +++ b/examples/extended/eventgenerator/HepMC/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2002/11/19 16:36:44 asaim Exp $ +$Id: History,v 1.7 2003/12/03 11:31:22 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,15 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Dec 02, 2003 G.Cosmo (exHepMC-V05-02-01) +- Brought up-to-date with original novice examples. +- Updated vis-managers. + +Jul 04, 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 M.Asai (exHepMC-V04-01-00) - Tag for 5.0 release diff --git a/examples/extended/field/BlineTracer/History b/examples/extended/field/BlineTracer/History new file mode 100644 index 0000000000..01014ecbc4 --- /dev/null +++ b/examples/extended/field/BlineTracer/History @@ -0,0 +1,21 @@ +$Id: History,v 1.1 2003/11/25 09:29:45 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + BlineTracer 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 25th, 2003 - G.Cosmo (BlineTracer-V05-02-00) +------------------------ +- Created from original sources, courtesy of L.Desorgher. + diff --git a/examples/extended/field/BlineTracer/README b/examples/extended/field/BlineTracer/README new file mode 100644 index 0000000000..4ca1a09a17 --- /dev/null +++ b/examples/extended/field/BlineTracer/README @@ -0,0 +1,155 @@ +README file for the Geant4 BlineTracer module + +Author : Laurent Desorgher (desorgher@phim.unibe.ch) - 04/10/2003 + + ------------------------------------------------- + +The BlineTracer module allows to trace and visualise magnetic field +lines in a Geant4 application where particle are tracked through the +magnetic field (in future, these functionalities may be integrated in +the Geant4 kernel). +To use the tracer, the user should copy the classes provided here in +his/her own application/example and create somewhere in his/her code +an instance of a G4BlineTracer object. +It can be anywhere (for example in the main code or in the user class +defining the magnetic field): + + #include "G4BlineTracer.hh" + G4BlineTracer* theBlineTool = new G4BlineTracer(); + + +Design principles: + +The core of the tool is the method ComputeBlines() of G4BlineTracer class. +In this method a bline is computed by tracking a ChargedGeantino in the user +defined magnetic field and by using a Bline equation of motion (class +G4BlineEquation, motion along the field) instead of a Lorentz equation. + +During the execution of this method : + + -The user defined equations of motion associated to the different + global and local fields are replaced by instances of G4BlineEquation + associated to the same fields. + The G4BlineEquation class defines the differential equation of a + magnetic field line. + + -User defined ChordFinders are replaced by new ChordFinders + associated to the G4BlineEquation object. + + -The user primary generator action, run action, event action and + stepping action are replaced by instances of the classes + G4BlinePrimaryGeneratorAction, G4BlineTracer, G4BlineEventAction + and G4BlineSteppingAction respectively. Other actions are set to + a NULL pointer. + +After the execution of the method, the original user defined actions, equation +of motions and chord-finders are restored. + +In other words, the deafult run-action is temporarly replaced by a +G4BlineTracer run-action using the same Geometry, physics and magnetic fields +but with a different equation of motion and user actions. + +The GeneratePrimaries() method of the G4BlinePrimaryGeneratorAction class +call the GeneratePrimaries() method of the user defined PrimaryGeneratorAction +for defining the start position and start time of tracking. +Start position for user application and for Bline tracking are therefore +controlled by the same UI commands. +The type of particles to be tracked when tracing Blines is always set +to Charged-Geantino. This allows to switch off the effect of electromagnetic +and hadronics physics when tracing field lines. + + +The G4BlineEventAction class is responsible to store computed magnetic field +lines as a vector of Polylines and Polymarkers for later visualisation. +These vectors can be drawn and reset at any time. + +The stepping action does nothing in this implementation but it can be used +in future versions to limit field line tracing to physical volumes defined +by the user. For this purpose a G4BlineStackingAction could also be +implemented. + +User Manual: + + General description: + +The BlineTracer is controlled by the UI commands contained in the directory +/vis/blineTracer. By calling the command 'computeBline', several magnetic field +lines passing through user defined start positions are computed. +Start positions are generated by the user primary generator action. +By doing so, the definition of start positions is the same for usual particles +tracking and magnetic field line tracking. + +A magnetic field line is computed as a track of a charged geantino that moves +along the field line. The user can define the maximum length of a tracking step +(only valid for Bline tracing purposes) by the use of the 'setMaxStepLength' +command. +By using small enough maximum step length, smooth magnetic field lines are +obtained. By using the command 'stockLines' and 'stockPoints' the user +can decide to store the series of tracking step positions defining +a magnetic field line as a Polyline object and/or a PolyMarker object +(circles) respectively. +These objects are stored in vectors of PolyLines and PolyMarkers. +By using the command 'draw', these vectors are added to the scene +of the visualisation manager, provided that a scene handler and +visualisation driver have been properly created. +The scene is visualised by invoking the vis command '/vis/show'. +Polyline objects are visualised as line segments joining the different +step positions defining a line, while for a Polymarker object markers +(here circles), are drawn at each step positions. +By using the 'setColour' the user defines the visualisation colour +that will be associated to the next computed magnetic field lines. +By calling 'setPointSize' the user defines the size of visualisation markers +that will be associated to the next computed magnetic field lines. +The user can remove the vector of Polymarker and Polyline from the memory +by invoking 'resetMaterialToBeDrawn'. +When using small max step size and polymarkers for visualisation purposes, the +thickness of a smooth magnetic field line is obtained. It is controlled by the +Marker size parameter ('setPointSize') + + Command description: + /vis/blineTracer/computeBline nb_of_lines : + Parameters: integer nb_of_lines + Description: Compute nb_of_lines different magnetic field lines + + /vis/blineTracer/setMaxStepLength max_step_length : + Parameters: double max_step_length + Description: Set the maximum tracking step length for computing + magnetic field lines + + /vis/blineTracer/setColour red green blue + Parameters: double red, green, blue + Description: Define the colour for visualisation of the + next computed magnetic field lines. The color is + defined by a RGB code (red,green,blue) with all + parameters smaller than 1. + + /vis/blineTracer/stockLines aBool + Parameters: boolean aBool + Desscription: If true the next computed field lines are stored + as Polylines for further visualisation + /vis/blineTracer/stockLines aBool + Parameters: boolean aBool + Desscription: If true the next computed field lines are stored + as Polymarkers for further visualisation + + /vis/blineTracer/setPointSize point_size + Parameters: double point_size + DEscription: set the size of the visualisation markers + that will be associated with the next computed + magnetic field lines + + /vis/blineTracer/resetMaterialToBeDrawn + Parameters: none + Description: The vector of Polyline and Polymarker representing + magnetic field lines to be visualised are removed + from memory + + /tracking/storeTrajectory 1 : + If the storeTrajectory parameter is not set no field lines are + stored. + +Current limitations & known problems: + + The tool is working properly only for detectors parts where magnetic + field are defined. It is planned in the future to stop the tracking of + field lines in regions where no fields are existing. diff --git a/examples/extended/field/BlineTracer/bline_vis.mac b/examples/extended/field/BlineTracer/bline_vis.mac new file mode 100644 index 0000000000..6db89769bc --- /dev/null +++ b/examples/extended/field/BlineTracer/bline_vis.mac @@ -0,0 +1,49 @@ +############################################################################ +# Example for Bline visualisation +############################################################################ + +# User section +# -- here the user should add commands for defining start position and time + + +# BlineTracer tracking commands +# +/tracking/storeTrajectory 1 + +# Next computed bline will be stored as Polyline and Polymarker +# +/vis/blineTracer/stockLines true +/vis/blineTracer/stockPoints true + +# Size of the marker +# +/vis/blineTracer/setPointSize 12. + +# Line will be in green +# +/vis/blineTracer/setColour 0 1 0 + +# For smooth trajectory choose a small max step length +# +/vis/blineTracer/setMaxStepLength 1. m + +# One line is computed +# +/vis/blineTracer/computeBline 1 + +# One possible initialisation of visualisation driver and scene-handler +# +/vis/sceneHandler/remove scene-handler-0 +/vis/sceneHandler/create VRML2FILE scene-handler-0 3000 +/vis/viewer/create +/vis/viewer/set/viewpointThetaPhi 35. 35. deg +/vis/viewer/zoom .35 +/vis/viewer/set/style surface2 + +# Stored field lines are added to the visualisation scene +# +/vis/blineTracer/show + +# The computed field line is visualised with the detector component +# +/vis/viewer/flush diff --git a/source/geometry/solids/STEPinterface/include/G4CircleCreator.hh b/examples/extended/field/BlineTracer/include/G4BlineEquation.hh similarity index 59% rename from source/geometry/solids/STEPinterface/include/G4CircleCreator.hh rename to examples/extended/field/BlineTracer/include/G4BlineEquation.hh index 52ed70d877..e9084f5cd6 100644 --- a/source/geometry/solids/STEPinterface/include/G4CircleCreator.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineEquation.hh @@ -21,48 +21,49 @@ // ******************************************************************** // // -// $Id: G4CircleCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlineEquation.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// ---------------------------------------------------------------------- -// Class G4CircleCreator +// +// -------------------------------------------------------------------- +// +// G4BlineEquation // // Class description: // -// +// This class defines the equation of motion needed to trace magnetic +// field lines in the simulation. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4CIRCLECREATOR_HH -#define G4CIRCLECREATOR_HH +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- +#ifndef G4BlineEquation_h +#define G4BlineEquation_h 1 -#include "G4GeometryCreator.hh" +#include "G4Mag_EqRhs.hh" +#include "G4MagneticField.hh" -class G4CircleCreator: private G4GeometryCreator +class G4BlineEquation : public G4Mag_EqRhs { - public: - - // Constructor & destructor + public: // with description - G4CircleCreator(); - ~G4CircleCreator(); + G4BlineEquation( G4MagneticField* MagField ); + ~G4BlineEquation(); + // Constructor and destructor. - // Member functions + void EvaluateRhsGivenB( const G4double y[], + const G4double B[3], + G4double dydx[] ) const; + // Given the value of the magnetic field B, this function + // calculates the value of the derivative dydx. - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Circle"; } - static G4CircleCreator GetInstance(); - - // Members + void SetBackwardDirectionOfIntegration(G4bool abool); private: - static G4CircleCreator csc; + G4bool backward_direction; + G4double direction; }; -#endif +#endif diff --git a/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh b/examples/extended/field/BlineTracer/include/G4BlineEventAction.hh new file mode 100644 index 0000000000..b0df50922c --- /dev/null +++ b/examples/extended/field/BlineTracer/include/G4BlineEventAction.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: G4BlineEventAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// -------------------------------------------------------------------- +// +// G4BlineEventAction +// +// Class description: +// +// Defines the EventAction used during tracing of magnetic field +// lines. During the EndOfEventAction() it stores magneticfield lines +// as polyline and polymarker objects. +// These polyline and polymarker objects can be drawn by using the +// DrawFieldLines() method. + +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- +#ifndef G4BlineEventAction_h +#define G4BlineEventAction_h 1 + +#include "G4UserEventAction.hh" +#include "G4VisAttributes.hh" +#include "G4Colour.hh" + +class G4Event; +class G4Polyline; +class G4Polymarker; +class G4BlineTracer; + +class G4BlineEventAction : public G4UserEventAction +{ + public: // with description + + G4BlineEventAction(G4BlineTracer* aBlineTool); + ~G4BlineEventAction(); + + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); + + void DrawFieldLines(G4double zoom, G4double theta, G4double phi); + void ResetVectorObjectToBeDrawn(); + + public: // with description + + inline void SetDrawColour(G4Colour aColour) { DrawColour = aColour; } + inline void SetDrawBline(G4bool aBool) { DrawBline=aBool; } + inline void SetDrawPoints(G4bool aBool) { DrawPoints=aBool; } + inline void SetPointSize(G4double aVal) { PointSize=aVal; } + inline G4bool GetDrawBline() { return DrawBline; } + + public: // without description + + // inline void SetDrawLineWidth(G4double aVal) + // { TrajectoryVisAttributes.SetLineWidth(aVal); } + // inline void SetDrawLineStyle(G4VisAttributes::LineStyle aStyle) + // { TrajectoryVisAttributes.SetLineStyle(aStyle); } + // Future implementation... + + private: + + G4BlineTracer* fBlineTool; + G4Colour DrawColour; + G4bool DrawBline; + G4bool DrawPoints; + G4double PointSize; + std::vector TrajectoryVisAttributes; + std::vector TrajectoryPolyline; + std::vector TrajectoryPoints; +}; + +#endif diff --git a/source/geometry/solids/STEPinterface/include/G4AssemblyCreator.hh b/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh similarity index 54% rename from source/geometry/solids/STEPinterface/include/G4AssemblyCreator.hh rename to examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh index b712cafa34..87ccc62f1f 100644 --- a/source/geometry/solids/STEPinterface/include/G4AssemblyCreator.hh +++ b/examples/extended/field/BlineTracer/include/G4BlinePrimaryGeneratorAction.hh @@ -21,64 +21,54 @@ // ******************************************************************** // // -// $Id: G4AssemblyCreator.hh,v 1.5 2002/11/21 16:49:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlinePrimaryGeneratorAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// ---------------------------------------------------------------------- -// Class G4AssemblyCreator +// +// -------------------------------------------------------------------- // // Class description: // -// Main class for detector geometry assembly read from a STEP file. -// Currently the default STEP reader is assumed to be the NIST reader -// from the SCL NIST public domain library. +// Defines the primary generator action used for tracing magnetic +// field lines. +// It generates the primary vertex by using the user defined primary +// generator action and replaces only the definition of the particle +// to be tracked by a "charged-geantino". +// The user can define start position for field line tracking in +// his/her own primary generator action. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4ASSEMBLYCREATOR_HH -#define G4ASSEMBLYCREATOR_HH +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- +#ifndef G4BlinePrimaryGeneratorAction_h +#define G4BlinePrimaryGeneratorAction_h 1 -#include "G4GeometryCreator.hh" +#include -class G4StepFileReader; +#include "G4Types.hh" +#include "G4ThreeVector.hh" +#include "G4VUserPrimaryGeneratorAction.hh" -class G4AssemblyCreator: public G4GeometryCreator +class G4Event; + +class G4BlinePrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: // with description - // Constructors - - G4AssemblyCreator(); - G4AssemblyCreator(const G4String&, const G4String& reader="NIST"); + G4BlinePrimaryGeneratorAction(); + ~G4BlinePrimaryGeneratorAction(); - // Destructor - - ~G4AssemblyCreator(); - - // Member functions - - void ReadStepFile(); - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Assembly"; } - static G4AssemblyCreator GetInstance(); - - private: - - G4AssemblyCreator(const G4AssemblyCreator&); - G4AssemblyCreator& operator=(const G4AssemblyCreator&); - // Private copy constructor and assignment operator. + void GeneratePrimaries(G4Event* anEvent); + inline void SetUserPrimaryAction(G4VUserPrimaryGeneratorAction* anAction) + { fUserPrimaryAction=anAction; } private: - G4int index; // memory for get STEP entity - L.Broglia - G4StepFileReader* StepReader; - G4String STEPfileName; - static G4AssemblyCreator ci; + G4VUserPrimaryGeneratorAction* fUserPrimaryAction; + G4bool FirstPartOfBline; + G4ThreeVector BlineStartPosition; + G4double T0; }; #endif diff --git a/source/geometry/solids/STEPinterface/include/G4DirectionCreator.hh b/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh similarity index 67% rename from source/geometry/solids/STEPinterface/include/G4DirectionCreator.hh rename to examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh index 9c28aaa749..c106c34170 100644 --- a/source/geometry/solids/STEPinterface/include/G4DirectionCreator.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineSteppingAction.hh @@ -21,48 +21,41 @@ // ******************************************************************** // // -// $Id: G4DirectionCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlineSteppingAction.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// ---------------------------------------------------------------------- -// Class G4DirectionCreator +// +// -------------------------------------------------------------------- +// +// G4BlineSteppingAction // // Class description: // -// +// Defines the stepping action used when tracing magnetic field lines. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4DIRECTIONCREATOR_HH -#define G4DIRECTIONCREATOR_HH +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- +#ifndef G4BlineSteppingAction_h +#define G4BlineSteppingAction_h 1 -#include "G4GeometryCreator.hh" +#include "G4Types.hh" +#include "G4UserSteppingAction.hh" -class G4DirectionCreator: private G4GeometryCreator +class G4BlineTracer; + +class G4BlineSteppingAction : public G4UserSteppingAction { - public: + public: // with description - // Constructor & destructor - - G4DirectionCreator(); - ~G4DirectionCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Direction"; } - static G4DirectionCreator GetInstance(); - - //Members - + G4BlineSteppingAction(G4BlineTracer* aBlineTool); + virtual ~G4BlineSteppingAction(); + virtual void UserSteppingAction(const G4Step*); + private: - static G4DirectionCreator csc; + G4BlineTracer* fBlineTool; }; #endif diff --git a/examples/extended/field/BlineTracer/include/G4BlineTracer.hh b/examples/extended/field/BlineTracer/include/G4BlineTracer.hh new file mode 100644 index 0000000000..c9e15ad45e --- /dev/null +++ b/examples/extended/field/BlineTracer/include/G4BlineTracer.hh @@ -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: G4BlineTracer.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// -------------------------------------------------------------------- +// +// G4BlineTracer +// +// Class description: +// +// Defines a tool to trace and visualise magnetic field lines +// To use this tool in a Geant4 application the user should +// create an instance of this class in the code as a run action. +// It will only work if a G4MagneticField field object is declared. + +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- +#ifndef G4BlineTracer_h +#define G4BlineTracer_h 1 + +#include + +#include "G4Types.hh" +#include "G4UserRunAction.hh" + +class G4VUserPrimaryGeneratorAction; +class G4MagneticField; +class G4FieldManager; +class G4ChordFinder; + +class G4BlineTracerMessenger; +class G4BlineSteppingAction; +class G4BlineEventAction; +class G4BlinePrimaryGeneratorAction; +class G4BlineEquation; + +class G4BlineTracer : public G4UserRunAction +{ + public: // with description + + G4BlineTracer(); + virtual ~G4BlineTracer(); + + virtual void BeginOfRunAction(const G4Run* aRun); + virtual void EndOfRunAction(const G4Run* aRun); + + void ComputeBlines(G4int nlines); + + inline void SetMaxTrackingStep(G4double max_step) + { MaxTrackingStep=max_step; } + inline G4BlineEventAction* GetEventAction() + { return fEventAction; } + + private: + + void ResetChordFinders(); + + private: + + G4BlineTracerMessenger* fMessenger; + G4BlineSteppingAction* fSteppingAction; + G4BlineEventAction* fEventAction; + G4BlinePrimaryGeneratorAction* fPrimaryGeneratorAction; + G4double MaxTrackingStep; + G4bool was_ResetChordFinders_already_called; + + G4VUserPrimaryGeneratorAction* fUserPrimaryAction; + // User defined primary generator action + + std::vector vecChordFinders; + std::vector vecFieldManagers; + std::vector vecMagneticFields; + std::vector vecEquationOfMotion; + // ChordFinders, detector fields, equation of motions, and field + // manager for the different local and global magnetic fields. +}; + +#endif diff --git a/source/geometry/solids/STEPinterface/include/G4Axis1PlacementCreator.hh b/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh similarity index 53% rename from source/geometry/solids/STEPinterface/include/G4Axis1PlacementCreator.hh rename to examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh index ba04b0dd73..706a854b1f 100644 --- a/source/geometry/solids/STEPinterface/include/G4Axis1PlacementCreator.hh +++ b/examples/extended/field/BlineTracer/include/G4BlineTracerMessenger.hh @@ -21,48 +21,63 @@ // ******************************************************************** // // -// $Id: G4Axis1PlacementCreator.hh,v 1.5 2002/11/21 16:49:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlineTracerMessenger.hh,v 1.1 2003/11/25 09:29:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// ---------------------------------------------------------------------- -// Class G4Axis1PlacementCreator +// +// -------------------------------------------------------------------- +// +// G4BlineTracerMessenger // // Class description: // -// +// Defines interactive commands that allows to pilot the tracer +// for displaying field lines. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4AXIS1PLACEMENTCREATOR_HH -#define G4AXIS1PLACEMENTCREATOR_HH +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- +#ifndef G4BlineTracerMessenger_h +#define G4BlineTracerMessenger_h 1 -#include "G4GeometryCreator.hh" +#include "G4Types.hh" +#include "G4UImessenger.hh" -class G4Axis1PlacementCreator: private G4GeometryCreator +class G4BlineTracer; +class G4UIdirectory; +class G4UIcommand; +class G4UIcmdWithADouble; +class G4UIcmdWithADoubleAndUnit; +class G4UIcmdWithAnInteger; +class G4UIcmdWithABool; +class G4UIcmdWithoutParameter; +class G4UIcmdWith3Vector; + +class G4BlineTracerMessenger : public G4UImessenger { - public: + public: // with description - // Constructor & destructor + G4BlineTracerMessenger(G4BlineTracer* aBlineTool); + ~G4BlineTracerMessenger(); - G4Axis1PlacementCreator(); - ~G4Axis1PlacementCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Axis1_Placement"; } - static G4Axis1PlacementCreator GetInstance(); - - // Members + void SetNewValue(G4UIcommand * command,G4String newValues); private: - static G4Axis1PlacementCreator csc; + G4BlineTracer* theBlineTool; + G4UIdirectory* BlineToolDir; + + // commands + + G4UIcmdWithAnInteger* BlineCmd; + G4UIcmdWithADoubleAndUnit* SetMaxTrackingStepCmd; + G4UIcmdWith3Vector* SetDrawColourCmd; + G4UIcmdWithABool* SetDrawBlineCmd; + G4UIcmdWithABool* SetDrawPointsCmd; + G4UIcmdWithADouble* SetPointSizeCmd; + G4UIcmdWithoutParameter* DrawCmd; + G4UIcmdWithoutParameter* ResetCmd; }; #endif diff --git a/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc b/examples/extended/field/BlineTracer/src/G4BlineEquation.cc similarity index 53% rename from source/geometry/solids/STEPinterface/src/G4VectorCreator.cc rename to examples/extended/field/BlineTracer/src/G4BlineEquation.cc index 969242e425..71ddd3f69c 100644 --- a/source/geometry/solids/STEPinterface/src/G4VectorCreator.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineEquation.cc @@ -21,68 +21,57 @@ // ******************************************************************** // // -// $Id: G4VectorCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlineEquation.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -// ---------------------------------------------------------------------- -// Class G4VectorCreator +// -------------------------------------------------------------------- // -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. +// G4BlineEquation implementation // -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- -#include "G4VectorCreator.hh" -#include "G4GeometryTable.hh" +#include "G4BlineEquation.hh" -G4VectorCreator G4VectorCreator::csc; +/////////////////////////////////////////////////////////////////////////// -G4VectorCreator::G4VectorCreator() +G4BlineEquation::G4BlineEquation( G4MagneticField* MagField ) + : G4Mag_EqRhs( MagField ) { - G4GeometryTable::RegisterObject(this); + backward_direction=false; + direction=1.; } -G4VectorCreator::~G4VectorCreator() {} +/////////////////////////////////////////////////////////////////////////// -G4VectorCreator G4VectorCreator::GetInstance() -{ - return csc; -} - -void G4VectorCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4double Magnitude; - G4ThreeVector* place; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - Attr = Ent.NextAttribute(); - - // get the orientation - STEPentity* TmpEnt= *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - place = (G4ThreeVector*)tmp; - - // get Magnitude - Attr = Ent.NextAttribute(); - Magnitude = *Attr->ptr.r; - - G4ThreeVector* vec = 0; - if (place) - vec = new G4ThreeVector(Magnitude * place->x(), - Magnitude * place->y(), - Magnitude * place->z() ); - else - G4cerr << "WARNING - G4VectorCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL orientation (G4ThreeVector) !" << G4endl - << "\tEntity NOT created." << G4endl; - - createdObject = vec; -} - -void G4VectorCreator::CreateSTEPGeometry(void*) +G4BlineEquation::~G4BlineEquation() { } + +///////////////////////////////////////////////////////////////////////////// + +void G4BlineEquation::EvaluateRhsGivenB( const G4double y[], + const G4double B[3], + G4double dydx[] ) const +{ + G4double Bmag = direction*std::sqrt(B[0]*B[0] + B[1]*B[1] + B[2]*B[2]); + dydx[0] = B[0]/Bmag; + dydx[1] = B[1]/Bmag; + dydx[2] = B[2]/Bmag; + + dydx[3]=0. * y[0]; //y[0] is used to remove warning + dydx[4]=0.; + dydx[5]=0.; +} + +////////////////////////////////////////////////////////////////////// + +void G4BlineEquation::SetBackwardDirectionOfIntegration(G4bool abool) +{ + backward_direction=abool; + direction=1.; + if (backward_direction) direction= -1.; +} diff --git a/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc b/examples/extended/field/BlineTracer/src/G4BlineEventAction.cc new file mode 100644 index 0000000000..35132dba03 --- /dev/null +++ b/examples/extended/field/BlineTracer/src/G4BlineEventAction.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: G4BlineEventAction.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// -------------------------------------------------------------------- +// +// G4BlineEventAction implementation +// +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- + +#include "G4BlineEventAction.hh" +#include "G4BlineTracer.hh" + +#include "G4Event.hh" +#include "G4Trajectory.hh" +#include "G4EventManager.hh" +#include "G4VisManager.hh" +#include "G4UImanager.hh" +#include "G4Polyline.hh" +#include "G4Polymarker.hh" + +/////////////////////////////////////////////////////////////////////////// + +G4BlineEventAction::G4BlineEventAction(G4BlineTracer* aBlineTool) +{ + fBlineTool=aBlineTool; +} + +/////////////////////////////////////////////////////////////////////////// + +G4BlineEventAction::~G4BlineEventAction() +{ + for (size_t i=0; iGetTrajectoryContainer(); + G4int n_trajectories = 0; + if(trajectoryContainer) + { + n_trajectories = trajectoryContainer->entries(); + + // visualisation + // ------------- + + if (DrawBline || DrawPoints) + { + G4int n_point = (*(evt->GetTrajectoryContainer()))[0]->GetPointEntries(); + + G4Polyline pPolyline; + G4Polymarker stepPoints; + TrajectoryVisAttributes.push_back(new G4VisAttributes(DrawColour)); + stepPoints.SetMarkerType(G4Polymarker::circles); + stepPoints.SetScreenSize(PointSize); + stepPoints.SetFillStyle(G4VMarker::filled); + stepPoints.SetVisAttributes(TrajectoryVisAttributes.back()); + + for(G4int i=0; iGetTrajectoryContainer()))[0]->GetPoint(i)))->GetPosition(); + if (DrawBline) pPolyline.push_back( pos); + if (DrawPoints) stepPoints.push_back(pos); + } + + pPolyline.SetVisAttributes(TrajectoryVisAttributes.back()); + + TrajectoryPolyline.push_back(pPolyline); + TrajectoryPoints.push_back(stepPoints); + } + } +} + +/////////////////////////////////////////////////////////////////////////// + +void G4BlineEventAction:: +DrawFieldLines( G4double, G4double, G4double ) +{ + size_t nline = TrajectoryPolyline.size(); + size_t npoints =TrajectoryPoints.size(); + + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if (!pVVisManager) + { + G4Exception("G4BlineEventAction::DrawFieldLines()", + "NullPointer", JustWarning, + "Missing visualisation driver for visualising magnetic field lines!"); + return; + } + + if (nline ==0) + { + G4cout << "WARNING - G4BlineEventAction::DrawFieldLines()" << G4endl + << " There is nothing to visualise !" << G4endl; + return; + } + ((G4VisManager*)pVVisManager)->GetCurrentSceneHandler()-> ClearStore (); + G4UImanager::GetUIpointer () -> ApplyCommand ("/vis/drawVolume"); + + for (size_t i=0;iDraw(TrajectoryPolyline[i]); + for (size_t i=0;iDraw(TrajectoryPoints[i]); + + // ((G4VisManager*)pVVisManager)->GetCurrentViewer()->DrawView(); + // ((G4VisManager*)pVVisManager)->GetCurrentViewer()->ShowView(); +} + +/////////////////////////////////////////////////////////////////////////// + +void G4BlineEventAction::ResetVectorObjectToBeDrawn() +{ + TrajectoryVisAttributes.clear(); + TrajectoryPolyline.clear(); + TrajectoryPoints.clear(); +} diff --git a/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc b/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc new file mode 100644 index 0000000000..0ee9f127be --- /dev/null +++ b/examples/extended/field/BlineTracer/src/G4BlinePrimaryGeneratorAction.cc @@ -0,0 +1,109 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4BlinePrimaryGeneratorAction.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// -------------------------------------------------------------------- +// +// G4BlinePrimaryGeneratorAction implementation +// +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- + +#include "G4BlinePrimaryGeneratorAction.hh" + +#include "G4Types.hh" +#include "G4Event.hh" +#include "G4ChargedGeantino.hh" + +/////////////////////////////////////////////////////////////////////////// + +G4BlinePrimaryGeneratorAction::G4BlinePrimaryGeneratorAction() +{ + fUserPrimaryAction = 0; + FirstPartOfBline = true; +} + +/////////////////////////////////////////////////////////////////////////// + +G4BlinePrimaryGeneratorAction::~G4BlinePrimaryGeneratorAction() +{ +} + +/////////////////////////////////////////////////////////////////////////// + +void G4BlinePrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) +{ + if (!fUserPrimaryAction) + { + G4Exception("G4BlinePrimaryGeneratorAction::GeneratePrimaries()", + "NullPointer", JustWarning, + "Primary generator action not defined !"); + return; + } + + // For the first part of a bline the start position and time are defined + // by using the USER primary action while for the second part the previous + // values are taken. + + if (FirstPartOfBline) + { + // set the position and time defined by using the USER primary action + + G4Event* tmpEvent = new G4Event(); + fUserPrimaryAction->GeneratePrimaries(tmpEvent); + BlineStartPosition = tmpEvent->GetPrimaryVertex()->GetPosition(); + T0 = tmpEvent->GetPrimaryVertex()->GetT0(); + delete tmpEvent; + } + FirstPartOfBline = false; + + G4PrimaryVertex* primary_vertex = + new G4PrimaryVertex(BlineStartPosition, T0); + + // Define the particle to be tracked as Charged Geantino + + G4ChargedGeantino* pdef = G4ChargedGeantino::ChargedGeantino(); + + G4double mass = pdef->GetPDGMass(); + G4double energy = 10000.*MeV + mass; + G4double pmom = sqrt(energy*energy-mass*mass); + + // The momentum direction and energy do not have an effect in tracing of + // bline but still need to be defined. + + G4double px = 0.; + G4double py = 0.; + G4double pz = pmom; + + G4PrimaryParticle* particle = new G4PrimaryParticle(pdef,px,py,pz); + particle->SetMass( mass ); + particle->SetCharge(pdef->GetPDGCharge()); + primary_vertex->SetPrimary( particle ); + + anEvent->AddPrimaryVertex( primary_vertex ); +} diff --git a/source/geometry/solids/STEPinterface/src/G4PointReplicaCreator.cc b/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc similarity index 66% rename from source/geometry/solids/STEPinterface/src/G4PointReplicaCreator.cc rename to examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc index 1231be6b89..645740219c 100644 --- a/source/geometry/solids/STEPinterface/src/G4PointReplicaCreator.cc +++ b/examples/extended/field/BlineTracer/src/G4BlineSteppingAction.cc @@ -21,37 +21,37 @@ // ******************************************************************** // // -// $Id: G4PointReplicaCreator.cc,v 1.5 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlineSteppingAction.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// -// ---------------------------------------------------------------------- -// Class G4PointReplicaCreator // -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. +// -------------------------------------------------------------------- // -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- +// G4BlineSteppingAction implementation +// +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- -#include "G4PointReplicaCreator.hh" -#include "G4GeometryTable.hh" +#include "G4BlineSteppingAction.hh" -G4PointReplicaCreator G4PointReplicaCreator::csc; +/////////////////////////////////////////////////////////////////////////// -G4PointReplicaCreator::G4PointReplicaCreator() +G4BlineSteppingAction:: +G4BlineSteppingAction(G4BlineTracer* aBlineTool) { - G4GeometryTable::RegisterObject(this); + fBlineTool=aBlineTool; } -G4PointReplicaCreator::~G4PointReplicaCreator() {} +/////////////////////////////////////////////////////////////////////////// -G4PointReplicaCreator G4PointReplicaCreator::GetInstance() +G4BlineSteppingAction::~G4BlineSteppingAction() { - return csc; } -void G4PointReplicaCreator::CreateG4Geometry(STEPentity&) {} +/////////////////////////////////////////////////////////////////////////// -void G4PointReplicaCreator::CreateSTEPGeometry(void*) {} +void G4BlineSteppingAction::UserSteppingAction(const G4Step*) +{ +} diff --git a/examples/extended/field/BlineTracer/src/G4BlineTracer.cc b/examples/extended/field/BlineTracer/src/G4BlineTracer.cc new file mode 100644 index 0000000000..47787d8872 --- /dev/null +++ b/examples/extended/field/BlineTracer/src/G4BlineTracer.cc @@ -0,0 +1,323 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4BlineTracer.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// -------------------------------------------------------------------- +// +// G4BlineTracer implementation +// +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- + +#include "G4BlineTracer.hh" +#include "G4BlineTracerMessenger.hh" +#include "G4BlinePrimaryGeneratorAction.hh" +#include "G4BlineEventAction.hh" +#include "G4BlineSteppingAction.hh" +#include "G4BlineEquation.hh" + +#include "G4RunManager.hh" +#include "G4TransportationManager.hh" +#include "G4FieldManager.hh" +#include "G4PropagatorInField.hh" +#include "G4CashKarpRKF45.hh" +#include "G4LogicalVolumeStore.hh" + +////////////////////////////////////////////////////////////////// + +G4BlineTracer::G4BlineTracer() +{ + fMessenger = new G4BlineTracerMessenger(this); + fSteppingAction = new G4BlineSteppingAction(this) ; + fEventAction = new G4BlineEventAction(this); + fPrimaryGeneratorAction = new G4BlinePrimaryGeneratorAction(); + MaxTrackingStep =1000.*m; + was_ResetChordFinders_already_called=false; +} + +/////////////////////////////////////////////////////////////////////// + +G4BlineTracer::~G4BlineTracer() +{ + delete fMessenger; + delete fSteppingAction; + delete fEventAction; + delete fPrimaryGeneratorAction; + for (size_t i=0; i< vecEquationOfMotion.size();i++) + { + if (vecEquationOfMotion[i]) delete vecEquationOfMotion[i]; + if (vecChordFinders[i]) delete vecChordFinders[i]; + } +} + +//////////////////////////////////////////////////////////////////// + +void G4BlineTracer::BeginOfRunAction(const G4Run*) +{ +} + +/////////////////////////////////////////////////////////////////////// + +void G4BlineTracer::EndOfRunAction(const G4Run*) +{ +} + +//////////////////////////////////////////////////////////////// + +void G4BlineTracer::ComputeBlines(G4int n_of_lines) +{ + //the first time ResetChordFinders should be called + // + if (!was_ResetChordFinders_already_called) + { + ResetChordFinders(); + was_ResetChordFinders_already_called=true; + } + + // Replace the user action by the ad-hoc actions for Blines + + G4RunManager* theRunManager = G4RunManager::GetRunManager(); + G4UserRunAction* user_run_action = + (G4UserRunAction*)theRunManager->GetUserRunAction(); + theRunManager->SetUserAction(this); + + G4UserSteppingAction* user_stepping_action = + (G4UserSteppingAction*)theRunManager->GetUserSteppingAction(); + theRunManager->SetUserAction(fSteppingAction); + + G4VUserPrimaryGeneratorAction* fUserPrimaryAction = + (G4VUserPrimaryGeneratorAction*)theRunManager->GetUserPrimaryGeneratorAction(); + if (fUserPrimaryAction) + fPrimaryGeneratorAction->SetUserPrimaryAction(fUserPrimaryAction); + theRunManager->SetUserAction(fPrimaryGeneratorAction); + + G4UserEventAction* user_event_action = + (G4UserEventAction*)theRunManager->GetUserEventAction(); + theRunManager->SetUserAction(fEventAction); + + G4UserTrackingAction* user_tracking_action = + (G4UserTrackingAction*)theRunManager->GetUserTrackingAction(); + G4UserTrackingAction* aNullTrackingAction = 0; + theRunManager->SetUserAction(aNullTrackingAction); + + G4UserStackingAction* user_stacking_action = + (G4UserStackingAction*)theRunManager->GetUserStackingAction(); + G4UserStackingAction* aNullStackingAction = 0; + theRunManager->SetUserAction(aNullStackingAction); + + // replace the user defined chordfinder by the element of vecChordFinders + + std::vector user_chord_finders; + std::vector user_largest_acceptable_step; + for (size_t i=0;iGetChordFinder()); + vecChordFinders[i]->SetDeltaChord(user_chord_finders[i]->GetDeltaChord()); + vecFieldManagers[i]->SetChordFinder(vecChordFinders[i]); + } + else user_chord_finders.push_back(0); + } + + // I have tried to use the smooth line filter ability but I could not obtain + // a smooth trajectory in the G4TrajectoryContainer after an event + // Another solution for obtaining a smooth trajectory is to limit + // the LargestAcceptableStep in the G4PropagatorInField object. + // This is the solution I used. + + // Old solution: + // G4TransportationManager::GetTransportationManager() + // ->GetPropagatorInField()->SetTrajectoryFilter(fTrajectoryFilter); + + // New solution: + // set the largest_acceptable_step to max_step:length + + G4TransportationManager* tmanager = + G4TransportationManager::GetTransportationManager(); + G4double previous_largest_acceptable_step = + tmanager->GetPropagatorInField()->GetLargestAcceptableStep(); + + tmanager->GetPropagatorInField() + ->SetLargestAcceptableStep(MaxTrackingStep); + + // Start the integration of n_of_lines different magnetic field lines + + for (G4int i=0; iSetBackwardDirectionOfIntegration(true); + } + theRunManager->BeamOn(1); + + // forward integration + + for (size_t i=0; i < vecEquationOfMotion.size();i++) + { + if (vecEquationOfMotion[i]) + vecEquationOfMotion[i]->SetBackwardDirectionOfIntegration(false); + } + theRunManager->BeamOn(1); + } + + // Remove trajectory filter to PropagatorInField + // It was for old solution when using smooth trajectory filter + + // tmanager->GetPropagatorInField()->SetTrajectoryFilter(0); + + // back to User defined actions and other parameters + // ------------------------------------------------- + + tmanager->GetPropagatorInField() + ->SetLargestAcceptableStep(previous_largest_acceptable_step); + + // return to User actions + + theRunManager->SetUserAction(user_run_action); + theRunManager->SetUserAction(user_event_action); + theRunManager->SetUserAction(fUserPrimaryAction); + theRunManager->SetUserAction(user_stepping_action); + theRunManager->SetUserAction(user_tracking_action); + theRunManager->SetUserAction(user_stacking_action); + + // set user defined chord finders and largest acceptable step + + for (size_t i=0;iSetChordFinder(user_chord_finders[i]); + } +} + +//////////////////////////////////////////////////////////////// + +/* +G4bool G4BlineTracer::CheckMagneticFields() +{ + // Check FieldManagers + + G4TransportationManager* tmanager = + G4TransportationManager::GetTransportationManager(); + + if (vecFieldManagers[0] != tmanager->GetFieldManager()) + return false; + if (vecMagneticFields[0] != tmanager->GetFieldManager()->GetDetectorField()) + return false; + G4LogicalVolumeStore* theVolumeStore = G4LogicalVolumeStore::GetInstance(); + + std::vector LogicalVolumeFields; + size_t j=0; + for (size_t i=0; iGetFieldManager()) + { + j++; + if (j >= vecFieldManagers.size()) return false; + if (vecFieldManagers[j] != theVolumeStore[i]->GetFieldManager()) + return false; + if (vecMagneticFields[j] != + theVolumeStore[i]->GetFieldManager()->GetDetectorField()) + return false; + } + } + if (jGetFieldManager()); + if (vecFieldManagers[0]) + { + vecMagneticFields[0] = + (G4MagneticField*) vecFieldManagers[0]->GetDetectorField(); + if (vecMagneticFields[0]) + { + vecEquationOfMotion[0] = new G4BlineEquation(vecMagneticFields[0]); + G4CashKarpRKF45* pStepper = new G4CashKarpRKF45(vecEquationOfMotion[0]); + G4MagInt_Driver* pIntgrDriver = + new G4MagInt_Driver(0.01*mm,pStepper,pStepper->GetNumberOfVariables()); + vecChordFinders[0] = new G4ChordFinder(pIntgrDriver); + } + } + + // local fields + + G4LogicalVolumeStore* theVolumeStore = G4LogicalVolumeStore::GetInstance(); + + size_t j=0; + for (size_t i=0; isize();i++) + { + if ((*theVolumeStore)[i]->GetFieldManager()) + { + j++; + vecFieldManagers.push_back(((*theVolumeStore)[i])->GetFieldManager()); + vecMagneticFields.push_back((G4MagneticField*) + vecFieldManagers[j]->GetDetectorField()); + vecEquationOfMotion.push_back(0); + vecChordFinders.push_back(0); + if (vecMagneticFields[j]) + { + vecEquationOfMotion[j]= new G4BlineEquation(vecMagneticFields[j]); + G4CashKarpRKF45* pStepper = new G4CashKarpRKF45(vecEquationOfMotion[j]); + G4MagInt_Driver* pIntgrDriver = + new G4MagInt_Driver(.01*mm,pStepper,pStepper->GetNumberOfVariables()); + vecChordFinders[j] = new G4ChordFinder(pIntgrDriver); + } + } + } +} diff --git a/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc b/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc new file mode 100644 index 0000000000..3e9a51fa57 --- /dev/null +++ b/examples/extended/field/BlineTracer/src/G4BlineTracerMessenger.cc @@ -0,0 +1,149 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4BlineTracerMessenger.cc,v 1.1 2003/11/25 09:29:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// -------------------------------------------------------------------- +// +// G4BlineTracerMessenger implementation +// +// -------------------------------------------------------------------- +// Author: Laurent Desorgher (desorgher@phim.unibe.ch) +// Created - 2003-10-06 +// -------------------------------------------------------------------- + +#include "G4BlineTracerMessenger.hh" +#include "G4BlineTracer.hh" +#include "G4BlineEventAction.hh" + +#include "G4UImessenger.hh" +#include "G4UIdirectory.hh" +#include "G4UIcommand.hh" +#include "G4UIcmdWithADouble.hh" +#include "G4UIcmdWithADoubleAndUnit.hh" +#include "G4UIcmdWithAnInteger.hh" +#include "G4UIcmdWithoutParameter.hh" +#include "G4UIcmdWith3Vector.hh" +#include "G4UIcmdWithABool.hh" + +/////////////////////////////////////////////////////////////////////////// + +G4BlineTracerMessenger::G4BlineTracerMessenger( G4BlineTracer* aBlineTool ) +{ + theBlineTool = aBlineTool; + BlineToolDir = new G4UIdirectory("/vis/blineTracer/"); + BlineToolDir->SetGuidance("Commands to trace and visualise magnetic field lines."); + BlineToolDir->SetGuidance("These commands work only if a magnetic-field is set"); + BlineToolDir->SetGuidance("in the application."); + + // commands + + BlineCmd = new G4UIcmdWithAnInteger("/vis/blineTracer/computeBline",this); + BlineCmd->SetGuidance("Compute magnetic field lines for visualisation."); + BlineCmd->SetParameterName("nb_of_lines",false); + BlineCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + SetMaxTrackingStepCmd = + new G4UIcmdWithADoubleAndUnit("/vis/blineTracer/setMaxStepLength",this); + SetMaxTrackingStepCmd->SetGuidance("Set the maximum length of tracking step"); + SetMaxTrackingStepCmd->SetGuidance("when integrating magnetic field line."); + SetMaxTrackingStepCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + SetDrawColourCmd = new G4UIcmdWith3Vector("/vis/blineTracer/setColour",this); + SetDrawColourCmd->SetGuidance("Set the colour drawing trajectories"); + SetDrawColourCmd->SetGuidance("and magnetic field lines."); + SetDrawColourCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + SetDrawBlineCmd = new G4UIcmdWithABool("/vis/blineTracer/stockLines",this); + SetDrawBlineCmd->SetGuidance("If true field lines are stocked in lines"); + SetDrawBlineCmd->SetGuidance("to be drawn."); + SetDrawBlineCmd->SetParameterName("StockLines",false); + SetDrawBlineCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + SetDrawPointsCmd = new G4UIcmdWithABool("/vis/blineTracer/stockPoints",this); + SetDrawPointsCmd->SetGuidance("If true step field line points are stocked"); + SetDrawPointsCmd->SetGuidance("in vector of points to be drawn."); + SetDrawPointsCmd->SetParameterName("StockPoints",false); + SetDrawPointsCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + SetPointSizeCmd = new G4UIcmdWithADouble("/vis/blineTracer/setPointSize",this); + SetPointSizeCmd->SetGuidance("Set the size of points for drawing."); + SetPointSizeCmd->SetParameterName("StepSize",false); + SetPointSizeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + DrawCmd = new G4UIcmdWithoutParameter("/vis/blineTracer/show",this); + DrawCmd->SetGuidance("Show the stored magnetic field lines."); + DrawCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + ResetCmd = + new G4UIcmdWithoutParameter("/vis/blineTracer/resetMaterialToBeDrawn",this); + ResetCmd->SetGuidance("Clear the vectors of lines and points to be drawn."); + ResetCmd->AvailableForStates(G4State_PreInit,G4State_Idle); +} + +/////////////////////////////////////////////////////////////////////////// + +G4BlineTracerMessenger::~G4BlineTracerMessenger() +{ + delete ResetCmd; + delete DrawCmd; + delete SetPointSizeCmd; + delete SetDrawPointsCmd; + delete SetDrawBlineCmd; + delete SetDrawColourCmd; + delete SetMaxTrackingStepCmd; + delete BlineCmd; + delete BlineToolDir; +} + +/////////////////////////////////////////////////////////////////////////// + +void G4BlineTracerMessenger::SetNewValue( G4UIcommand * command, + G4String newValues ) +{ + if (command == BlineCmd) + theBlineTool->ComputeBlines(1); + else if( command == SetMaxTrackingStepCmd ) + theBlineTool->SetMaxTrackingStep(SetMaxTrackingStepCmd + ->GetNewDoubleValue(newValues)); + else if( command == SetDrawBlineCmd ) + theBlineTool->GetEventAction()->SetDrawBline(SetDrawBlineCmd + ->GetNewBoolValue(newValues)); + else if( command == SetDrawColourCmd ) + { + G4ThreeVector vec=SetDrawColourCmd->GetNew3VectorValue(newValues); + theBlineTool->GetEventAction()-> + SetDrawColour(G4Colour(vec.x(),vec.y(),vec.z())); + } + else if( command == SetDrawPointsCmd ) + theBlineTool->GetEventAction()->SetDrawPoints(SetDrawPointsCmd + ->GetNewBoolValue(newValues)); + else if( command == SetPointSizeCmd ) + theBlineTool->GetEventAction()->SetPointSize(SetPointSizeCmd + ->GetNewDoubleValue(newValues)); + else if( command == DrawCmd ) + theBlineTool->GetEventAction()->DrawFieldLines(.5,45.,45.); + else if( command == ResetCmd ) + theBlineTool->GetEventAction()->ResetVectorObjectToBeDrawn(); +} diff --git a/examples/extended/field/field01/History b/examples/extended/field/field01/History index b60088e78d..45ba05b2f0 100644 --- a/examples/extended/field/field01/History +++ b/examples/extended/field/field01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2003/06/25 17:40:46 gcosmo Exp $ +$Id: History,v 1.13 2003/12/01 16:31:52 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,37 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 1st, 2003 John Apostolakis (fieldex01-V05-02-01) +----------------------------------------------------- +- F01FieldSetup corrections + o deleting forgotten inheritance from G4MagneticField + o fixing SetFieldValue method +- F01SteppingVerbose: New output format. +- Fully deleted F01ElectroMagneticField. +- field01.in: different energies, 1 track each in place of 100 events of 1 energy. + --> updated output file, using output from run on pcgeant2 / gcc 3.2 + +Nov 25th, 2003 John Apostolakis (fieldex01-V05-02-00) +----------------------------------------------------- +- Renamed F01ElectroMagneticField into F01FieldSetup (as it is a creator, + not a field). +- FieldSetup is now called in Detector Construction, not main. + +Nov 25th, 2003 Gabriele Cosmo +----------------------------- +- Open geometry before clearing stores in DetectorConstruction class. + +Nov 13th, 2003 - John Allison +----------------------------- +- Removed OPACS from Vis Manager. + +Nov 12th, 2003 - G.Cosmo (fieldex-V05-02-01) +-------------------------------------------- +- Cleared compilation warnings in F01ElectroMagneticField.hh. + +Aug 27th, 2003 - V.Ivantchenko (fieldex-V05-02-00) +-------------------------------------------------- +- Removed obsolete interfaces. Jun 25th, 2003 - G.Cosmo (fieldex-V05-01-00) -------------------------------------------- diff --git a/examples/extended/field/field01/field01.cc b/examples/extended/field/field01/field01.cc index cef3c3e839..8348a3a57f 100644 --- a/examples/extended/field/field01/field01.cc +++ b/examples/extended/field/field01/field01.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field01.cc,v 1.4 2001/11/07 16:36:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: field01.cc,v 1.5 2003/11/25 18:05:31 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -44,7 +44,7 @@ #endif #include "F01DetectorConstruction.hh" -#include "F01ElectroMagneticField.hh" +// #include "F01FieldSetup.hh" #include "F01PhysicsList.hh" #include "F01PrimaryGeneratorAction.hh" #include "F01RunAction.hh" @@ -67,10 +67,10 @@ int main(int argc,char** argv) G4RunManager * runManager = new G4RunManager; - // Costruct electromagnetic field + // Create class that constructs & messages the magnetic field + // *** F01FieldSetup* field = new F01FieldSetup() ; + // --> Now done in detector construction - F01ElectroMagneticField* field = new F01ElectroMagneticField() ; - // Set mandatory initialization classes F01DetectorConstruction* detector; @@ -128,7 +128,7 @@ int main(int argc,char** argv) #ifdef G4VIS_USE delete visManager; #endif - delete field; + // delete field; delete runManager; return 0; diff --git a/examples/extended/field/field01/field01.in b/examples/extended/field/field01/field01.in index a7529675d5..4d2a2c16b5 100644 --- a/examples/extended/field/field01/field01.in +++ b/examples/extended/field/field01/field01.in @@ -6,28 +6,43 @@ /tracking/verbose 1 /run/verbose 1 # -# -# /field/setStepperType 4 # -#/field/setMinStep 10 mm -# -/field/setMinStep 1 mm +/field/setMinStep 0.1 mm # /field/update # /run/initialize # -/run/particle/dumpCutValues +# /run/particle/dumpCutValues # /gun/particle e- # -#/gun/particle proton -# -#/gun/particle chargedgeantino +# /gun/particle proton +# /gun/particle chargedgeantino # /gun/energy 500.0 MeV +/run/beamOn 1 # -#/event/printModulo 1 +/gun/energy 250.0 MeV +/run/beamOn 1 +# +/gun/energy 200.0 MeV +/run/beamOn 1 +# +/gun/energy 100.0 MeV +/run/beamOn 1 +# +/gun/energy 50.0 MeV +/run/beamOn 1 +# +/field/update +/field/setFieldZ 1.0 kG + +/gun/energy 500.0 MeV +/tracking/verbose 1 +/run/beamOn 1 + +/tracking/verbose 0 +/event/printModulo 10 /run/beamOn 100 -# diff --git a/examples/extended/field/field01/field01.out b/examples/extended/field/field01/field01.out index a4e98d0e6c..354601ec46 100644 --- a/examples/extended/field/field01/field01.out +++ b/examples/extended/field/field01/field01.out @@ -1,10 +1,8 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** -G4ClassicalRK4 (default) is called -The minimal step is equal to 1 mm ***** Table : Nb of materials = 11 ***** @@ -71,13 +69,15 @@ Current available graphics systems are: 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. +G4ClassicalRK4 (default) is called +The minimal step is equal to 1 mm phot: Total cross sections from Sandia parametrisation. F01PhysicsList::SetCuts:CutLength : 1 mm total time(SetCuts)=0 s G4ClassicalRK4 (default) is called -The minimal step is equal to 1 mm +The minimal step is equal to 0.1 mm compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. @@ -87,45 +87,70 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ============================== @@ -147,1005 +172,203 @@ Start Run processing. * 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +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 MeV 0 eV 1.58938 m 1.58938 m World Transportation + 2 0 fm 1.01183 m 21.9905 m 0 -0.00197661 0.999998 500 MeV 0 eV 1 mm 1.59038 m Absorber Transportation + 3 0 fm 1.01172 m 22 m 0 -0.0207544 0.999785 500 MeV 0 eV 9.50075 mm 1.59988 m OutOfWorld Transportation +Run terminated. +Run Summary + Number of events processed : 1 + User=0.01s Real=0.01s Sys=0s -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +========= Table of registered couples ============================== -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +Index : 0 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 : + DefaultRegionForTheWorld -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +==================================================================== -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +### Run 1 start. +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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> 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 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +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 MeV 0 eV 79.5502 cm 79.5502 cm World Transportation + 2 0 fm 50.643 cm 21.9905 m 0 -0.0039492 0.999992 250 MeV 0 eV 1 mm 79.6502 cm Absorber Transportation + 3 0 fm 50.6214 cm 22 m 0 -0.0414666 0.99914 250 MeV 0 eV 9.50301 mm 80.6005 cm OutOfWorld Transportation +Run terminated. +Run Summary + Number of events processed : 1 + User=0.01s Real=0.01s Sys=0s -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +========= Table of registered couples ============================== -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +Index : 0 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 : + DefaultRegionForTheWorld -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +==================================================================== -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +### Run 2 start. +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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> 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 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +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 MeV 0 eV 63.6725 cm 63.6725 cm World Transportation + 2 0 fm 40.5349 cm 21.9905 m 0 -0.00493399 0.999988 200 MeV 0 eV 1 mm 63.7725 cm Absorber Transportation + 3 0 fm 40.5079 cm 22 m 0 -0.0518069 0.998657 200 MeV 0 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 -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +========= Table of registered couples ============================== -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +Index : 0 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 : + DefaultRegionForTheWorld -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +==================================================================== -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +### Run 3 start. +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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> 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 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +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 MeV 0 eV 31.9171 cm 31.9171 cm World Transportation + 2 0 fm 20.3185 cm 21.9905 m 0 -0.00984297 0.999952 100 MeV 0 eV 1.00002 mm 32.0171 cm Absorber Transportation + 3 0 fm 20.2645 cm 22 m 0 -0.103352 0.994645 100 MeV 0 eV 9.51883 mm 32.969 cm OutOfWorld Transportation +Run terminated. +Run Summary + Number of events processed : 1 + User=0s Real=0.01s Sys=0.01s -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +========= Table of registered couples ============================== -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +Index : 0 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 : + DefaultRegionForTheWorld -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +### Run 4 start. +Start Run processing. -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> 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 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +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 MeV 0 eV 16.0391 cm 16.0391 cm World Transportation + 2 0 fm 10.2098 cm 21.9905 m 0 -0.0195872 0.999808 50 MeV 0 eV 1.00006 mm 16.1391 cm Absorber Transportation + 3 0 fm 10.1016 cm 22 m 0 -0.205667 0.978622 50 MeV 0 eV 9.5755 mm 17.0966 cm OutOfWorld Transportation +Run terminated. +Run Summary + Number of events processed : 1 + User=0s Real=0s Sys=0s +G4ClassicalRK4 (default) is called +The minimal step is equal to 0.1 mm -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +========= Table of registered couples ============================== -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +Index : 0 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 : + DefaultRegionForTheWorld -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +==================================================================== -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +### Run 5 start. +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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> 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 0 fm 0 fm 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +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 0 fm -22 m 0 0 -1 500 MeV 0 eV 43.9895 m 43.9895 m OutOfWorld Transportation +Run terminated. +Run Summary + Number of events processed : 1 + User=0s Real=0s Sys=0s -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +========= Table of registered couples ============================== -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +Index : 0 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 : + DefaultRegionForTheWorld -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +### Run 6 start. +Start Run processing. -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +---> Begin of Event: 0 -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> Begin of Event: 10 -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +---> Begin of Event: 20 -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> Begin of Event: 30 -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +---> Begin of Event: 40 -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> Begin of Event: 50 -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +---> Begin of Event: 60 -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> Begin of Event: 70 -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* +---> Begin of Event: 80 -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 1.0118317 m 21.9895 m 500 MeV0.0077496907 eV 1.5893832 m 1.5893832 m World Transportation 0 fm 70845.381 fm 1000 mum - 2 0 fm 1.0118307 m 21.9905 m 500 MeV4.888534e-06 eV 1.0000007 mm 1.5903832 m Absorber Transportation 0 fm -1.9765403 mum 999.99805 mum - 3 0 fm 1.011722 m 22 m 500 MeV4.6270543e-05 eV 9.5007638 mm 1.599884 m OutOfWorld Transportation 0 fm -20.754367 mum 999.7846 mum +---> Begin of Event: 90 Run terminated. Run Summary Number of events processed : 100 - User=0.33s Real=0.44s Sys=0.11s + User=0.05s Real=0.05s Sys=0s 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 144563ec46..0fd06eaa87 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01CalorimeterSD.hh b/examples/extended/field/field01/include/F01CalorimeterSD.hh index 5438b0a6e5..ed2ffb5af1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01DetectorConstruction.hh b/examples/extended/field/field01/include/F01DetectorConstruction.hh index f14efb4ab7..fd5a69f339 100644 --- a/examples/extended/field/field01/include/F01DetectorConstruction.hh +++ b/examples/extended/field/field01/include/F01DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01DetectorConstruction.hh,v 1.5 2001/10/25 08:10:20 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01DetectorConstruction.hh,v 1.6 2003/11/25 18:06:22 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,7 +41,7 @@ class G4Material; class G4UniformMagField; class F01DetectorMessenger; class F01CalorimeterSD; -class F01ElectroMagneticField; +class F01FieldSetup; class F01DetectorConstruction : public G4VUserDetectorConstruction @@ -97,8 +97,7 @@ class F01DetectorConstruction : public G4VUserDetectorConstruction G4LogicalVolume* logicAbsorber; // pointer to the logical Absorber G4VPhysicalVolume* physiAbsorber; // pointer to the physical Absorber - G4UniformMagField* magField; // pointer to the magnetic field - F01ElectroMagneticField* fEmField; + F01FieldSetup* fEmFieldSetup; F01DetectorMessenger* detectorMessenger; // pointer to the Messenger F01CalorimeterSD* calorimeterSD; // pointer to the sensitive detector diff --git a/examples/extended/field/field01/include/F01DetectorMessenger.hh b/examples/extended/field/field01/include/F01DetectorMessenger.hh index a1ecfceafe..92bb16a9f6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01EventAction.hh b/examples/extended/field/field01/include/F01EventAction.hh index 60333ee087..3c30dd9460 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01EventActionMessenger.hh b/examples/extended/field/field01/include/F01EventActionMessenger.hh index 527b80e236..a83102aa00 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01FieldMessenger.hh b/examples/extended/field/field01/include/F01FieldMessenger.hh index 3cba251511..c540ac7848 100644 --- a/examples/extended/field/field01/include/F01FieldMessenger.hh +++ b/examples/extended/field/field01/include/F01FieldMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01FieldMessenger.hh,v 1.5 2001/10/15 17:20:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01FieldMessenger.hh,v 1.6 2003/11/25 18:06:22 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -35,7 +35,7 @@ #include "globals.hh" #include "G4UImessenger.hh" -class F01ElectroMagneticField; +class F01FieldSetup; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; @@ -46,7 +46,7 @@ class G4UIcmdWithoutParameter; class F01FieldMessenger: public G4UImessenger { public: - F01FieldMessenger(F01ElectroMagneticField* ); + F01FieldMessenger(F01FieldSetup* ); ~F01FieldMessenger(); void SetNewValue(G4UIcommand*, G4String); @@ -54,7 +54,7 @@ class F01FieldMessenger: public G4UImessenger private: - F01ElectroMagneticField* fEMfield; + F01FieldSetup* fEMfieldSetup; G4UIdirectory* F01detDir; diff --git a/examples/extended/field/field01/include/F01ElectroMagneticField.hh b/examples/extended/field/field01/include/F01FieldSetup.hh similarity index 81% rename from examples/extended/field/field01/include/F01ElectroMagneticField.hh rename to examples/extended/field/field01/include/F01FieldSetup.hh index aa7f44abfe..a445e3022e 100644 --- a/examples/extended/field/field01/include/F01ElectroMagneticField.hh +++ b/examples/extended/field/field01/include/F01FieldSetup.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01ElectroMagneticField.hh,v 1.4 2001/07/11 09:57:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01FieldSetup.hh,v 1.2 2003/12/01 15:47:52 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // A class for control of the Magnetic Field of the detector. @@ -38,8 +38,8 @@ // -#ifndef F01ElectroMagneticField_H -#define F01ElectroMagneticField_H +#ifndef F01FieldSetup_H +#define F01FieldSetup_H #include "G4MagneticField.hh" #include "G4UniformMagField.hh" @@ -50,24 +50,23 @@ class G4Mag_UsualEqRhs; class G4MagIntegratorStepper; class F01FieldMessenger; -class F01ElectroMagneticField: public G4MagneticField +class F01FieldSetup { public: - F01ElectroMagneticField(G4ThreeVector) ; // The value of the field - F01ElectroMagneticField() ; // A zero field + F01FieldSetup(G4ThreeVector) ; // The value of the field + F01FieldSetup() ; // A zero field - ~F01ElectroMagneticField() ; + ~F01FieldSetup() ; - void GetFieldValue( const G4double Point[3], - G4double *Bfield ) const {;} ; - void SetStepperType( G4int i) { fStepperType = i ; } ; + void SetStepperType( G4int i) { fStepperType = i ; } void SetStepper(); - void SetMinStep(G4double s) { fMinStep = s ; } ; + void SetMinStep(G4double s) { fMinStep = s ; } - void UpdateField(); + void InitialiseAll(); // Set parameters and call method below + void CreateStepperAndChordFinder(); void SetFieldValue(G4ThreeVector fieldVector) ; void SetFieldValue(G4double fieldValue) ; diff --git a/examples/extended/field/field01/include/F01PhysicsList.hh b/examples/extended/field/field01/include/F01PhysicsList.hh index d3b8f42e43..579302918d 100644 --- a/examples/extended/field/field01/include/F01PhysicsList.hh +++ b/examples/extended/field/field01/include/F01PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01PhysicsList.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01PhysicsList.hh,v 1.3 2003/08/27 17:38:54 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef F01PhysicsList_h @@ -83,14 +83,11 @@ class F01PhysicsList: public G4VUserPhysicsList void AddParameterisation(); void ConstructGeneral(); void ConstructEM(); - + public: void SetGammaCut(G4double); void SetElectronCut(G4double); - void SetProtonCut(G4double); - void SetCutsByEnergy(G4double); - void GetRange(G4double); void SetMaxStep(G4double); @@ -121,7 +118,6 @@ class F01PhysicsList: public G4VUserPhysicsList G4double cutForGamma; G4double cutForElectron; - G4double cutForProton; F01DetectorConstruction* pDet; F01PhysicsListMessenger* physicsListMessenger; diff --git a/examples/extended/field/field01/include/F01PhysicsListMessenger.hh b/examples/extended/field/field01/include/F01PhysicsListMessenger.hh index 71de248671..4275a2cf21 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorAction.hh index d22757b7b6..37d1ba31e6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh b/examples/extended/field/field01/include/F01PrimaryGeneratorMessenger.hh index 1dfe8caa52..38900f7dc3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01RunAction.hh b/examples/extended/field/field01/include/F01RunAction.hh index dc3eeae430..ecd3d86187 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01RunMessenger.hh b/examples/extended/field/field01/include/F01RunMessenger.hh index 54c853664e..22b14c8303 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01StepCut.hh b/examples/extended/field/field01/include/F01StepCut.hh index bb60765c91..c70ed21063 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingAction.hh b/examples/extended/field/field01/include/F01SteppingAction.hh index 7c6e9925cf..1ca6841005 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/include/F01SteppingMessenger.hh b/examples/extended/field/field01/include/F01SteppingMessenger.hh index 6d9fa5e746..fbd1c1b3e6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/include/F01SteppingVerbose.hh b/examples/extended/field/field01/include/F01SteppingVerbose.hh index 5b1880ad7f..0e27a8a1a6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field01/include/F01VisManager.hh b/examples/extended/field/field01/include/F01VisManager.hh index 494f0ed463..db514845ad 100644 --- a/examples/extended/field/field01/include/F01VisManager.hh +++ b/examples/extended/field/field01/include/F01VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: F01VisManager.hh,v 1.2 2001/07/11 09:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01CalorHit.cc b/examples/extended/field/field01/src/F01CalorHit.cc index a48fb4d8c1..58ece170db 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01CalorimeterSD.cc b/examples/extended/field/field01/src/F01CalorimeterSD.cc index 72775d7625..d36f3d2fc7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01DetectorConstruction.cc b/examples/extended/field/field01/src/F01DetectorConstruction.cc index bf9f5aa5da..9aeaae6b95 100644 --- a/examples/extended/field/field01/src/F01DetectorConstruction.cc +++ b/examples/extended/field/field01/src/F01DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01DetectorConstruction.cc,v 1.11 2003/06/25 17:40:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01DetectorConstruction.cc,v 1.13 2003/11/25 18:06:26 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -30,7 +30,7 @@ #include "F01DetectorMessenger.hh" #include "F01CalorimeterSD.hh" -#include "F01ElectroMagneticField.hh" +#include "F01FieldSetup.hh" #include "G4VClusterModel.hh" #include "G4PAIclusterModel.hh" @@ -45,6 +45,7 @@ #include "G4SDManager.hh" #include "G4RunManager.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" @@ -58,7 +59,7 @@ F01DetectorConstruction::F01DetectorConstruction() : solidWorld(0), logicWorld(0), physiWorld(0), solidAbsorber(0),logicAbsorber(0), physiAbsorber(0), - magField(0), fEmField(0), calorimeterSD(0), + fEmFieldSetup(0), calorimeterSD(0), AbsorberMaterial(0), worldchanged(false), WorldMaterial(0) { // default parameter values of the calorimeter @@ -79,6 +80,7 @@ F01DetectorConstruction::F01DetectorConstruction() // create materials DefineMaterials(); + } ////////////////////////////////////////////////////////////////////////// @@ -88,7 +90,7 @@ F01DetectorConstruction::F01DetectorConstruction() F01DetectorConstruction::~F01DetectorConstruction() { delete detectorMessenger; - if (fEmField) delete fEmField ; + if (fEmFieldSetup) delete fEmFieldSetup; } ////////////////////////////////////////////////////////////////////////// @@ -97,7 +99,12 @@ F01DetectorConstruction::~F01DetectorConstruction() G4VPhysicalVolume* F01DetectorConstruction::Construct() { - return ConstructCalorimeter(); + G4VPhysicalVolume* calorWorld= ConstructCalorimeter(); + + // Construct the field creator - this will register the field it creates + fEmFieldSetup= new F01FieldSetup( // G4ThreeVector(0.0, 0.0, 1.0*tesla) ); + G4ThreeVector( 3.3*tesla, 0.0, 0.0 ) ) ; + return calorWorld; } ////////////////////////////////////////////////////////////////////////////// @@ -235,6 +242,7 @@ G4VPhysicalVolume* F01DetectorConstruction::ConstructCalorimeter() if (physiWorld) { + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); diff --git a/examples/extended/field/field01/src/F01DetectorMessenger.cc b/examples/extended/field/field01/src/F01DetectorMessenger.cc index a7fe21b63a..679c5cb074 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01EventAction.cc b/examples/extended/field/field01/src/F01EventAction.cc index 97208775d8..719e2f77aa 100644 --- a/examples/extended/field/field01/src/F01EventAction.cc +++ b/examples/extended/field/field01/src/F01EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: F01EventAction.cc,v 1.4 2001/11/07 16:36:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01EventActionMessenger.cc b/examples/extended/field/field01/src/F01EventActionMessenger.cc index 05a6739fb0..9771cbf412 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01FieldMessenger.cc b/examples/extended/field/field01/src/F01FieldMessenger.cc index 20a0a623c6..6f42543304 100644 --- a/examples/extended/field/field01/src/F01FieldMessenger.cc +++ b/examples/extended/field/field01/src/F01FieldMessenger.cc @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: F01FieldMessenger.cc,v 1.6 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01FieldMessenger.cc,v 1.7 2003/11/25 18:06:26 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // #include "F01FieldMessenger.hh" -#include "F01ElectroMagneticField.hh" +#include "F01FieldSetup.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" @@ -37,8 +37,8 @@ ////////////////////////////////////////////////////////////////////////////// -F01FieldMessenger::F01FieldMessenger(F01ElectroMagneticField* pEMfield) - :fEMfield(pEMfield) +F01FieldMessenger::F01FieldMessenger(F01FieldSetup* pEMfieldSetup) + :fEMfieldSetup(pEMfieldSetup) { F01detDir = new G4UIdirectory("/field/"); F01detDir->SetGuidance("F01 field tracking control."); @@ -98,19 +98,19 @@ void F01FieldMessenger::SetNewValue( G4UIcommand* command, G4String newValue) { if( command == StepperCmd ) { - fEMfield->SetStepperType(StepperCmd->GetNewIntValue(newValue)); + fEMfieldSetup->SetStepperType(StepperCmd->GetNewIntValue(newValue)); } if( command == UpdateCmd ) { - fEMfield->UpdateField(); + fEMfieldSetup->CreateStepperAndChordFinder(); } if( command == MagFieldCmd ) { - fEMfield->SetFieldValue(MagFieldCmd->GetNewDoubleValue(newValue)); + fEMfieldSetup->SetFieldValue(MagFieldCmd->GetNewDoubleValue(newValue)); } if( command == MinStepCmd ) { - fEMfield->SetMinStep(MinStepCmd->GetNewDoubleValue(newValue)); + fEMfieldSetup->SetMinStep(MinStepCmd->GetNewDoubleValue(newValue)); } } diff --git a/examples/extended/field/field01/src/F01ElectroMagneticField.cc b/examples/extended/field/field01/src/F01FieldSetup.cc similarity index 79% rename from examples/extended/field/field01/src/F01ElectroMagneticField.cc rename to examples/extended/field/field01/src/F01FieldSetup.cc index 78fd6505eb..517fd23003 100644 --- a/examples/extended/field/field01/src/F01ElectroMagneticField.cc +++ b/examples/extended/field/field01/src/F01FieldSetup.cc @@ -21,19 +21,17 @@ // ******************************************************************** // // -// $Id: F01ElectroMagneticField.cc,v 1.8 2001/10/15 17:20:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01FieldSetup.cc,v 1.2 2003/12/01 15:48:49 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// -// User Field class implementation. +// User Field setup class implementation. // - -#include "F01ElectroMagneticField.hh" +#include "F01FieldSetup.hh" #include "F01FieldMessenger.hh" -#include "G4UniformMagField.hh" #include "G4MagneticField.hh" +#include "G4UniformMagField.hh" #include "G4FieldManager.hh" #include "G4TransportationManager.hh" #include "G4Mag_UsualEqRhs.hh" @@ -55,14 +53,24 @@ // // Constructors: -F01ElectroMagneticField::F01ElectroMagneticField() +F01FieldSetup::F01FieldSetup(G4ThreeVector fieldVector) : fChordFinder(0), fStepper(0) { - fMagneticField = new G4UniformMagField( - G4ThreeVector(3.3*tesla, - 0.0, // 0.5*tesla, - 0.0 )); + fMagneticField = new G4UniformMagField( fieldVector ); + // G4ThreeVector(3.3*tesla, 0.0, 0.0 )); + InitialiseAll(); +} +F01FieldSetup::F01FieldSetup() + : fChordFinder(0), fStepper(0) +{ + fMagneticField = new G4UniformMagField( G4ThreeVector(0.0, 0.0, 0.0 ) ); + InitialiseAll(); +} + +void +F01FieldSetup::InitialiseAll() +{ fFieldMessenger = new F01FieldMessenger(this) ; fEquation = new G4Mag_UsualEqRhs(fMagneticField); @@ -73,22 +81,12 @@ F01ElectroMagneticField::F01ElectroMagneticField() fFieldManager = G4TransportationManager::GetTransportationManager() ->GetFieldManager(); - - UpdateField(); - -} - -///////////////////////////////////////////////////////////////////////////////// - -F01ElectroMagneticField::F01ElectroMagneticField(G4ThreeVector fieldVector) -{ - fMagneticField = new G4UniformMagField(fieldVector); - GetGlobalFieldManager()->CreateChordFinder(this); + CreateStepperAndChordFinder(); } //////////////////////////////////////////////////////////////////////////////// -F01ElectroMagneticField::~F01ElectroMagneticField() +F01FieldSetup::~F01FieldSetup() { // GetGlobalFieldManager()->SetDetectorField(0); @@ -102,7 +100,7 @@ F01ElectroMagneticField::~F01ElectroMagneticField() // Update field // -void F01ElectroMagneticField::UpdateField() +void F01FieldSetup::CreateStepperAndChordFinder() { SetStepper(); G4cout<<"The minimal step is equal to "<SetDetectorField(this); + // CreateStepperAndChordFinder(); } else { - // If the new field's value is Zero, then it is best to - // insure that it is not used for propagation. - - G4MagneticField* fMagneticField = 0; - fieldMgr->SetDetectorField(fMagneticField); + // If the new field's value is Zero, signal it as below + // so that it is not used for propagation. + fMagneticField = 0; } + + // Set this as the field of the global Field Manager + G4FieldManager* fieldMgr= GetGlobalFieldManager(); + + fieldMgr->SetDetectorField(fMagneticField); } //////////////////////////////////////////////////////////////////////////////// // // Utility method -G4FieldManager* F01ElectroMagneticField::GetGlobalFieldManager() +G4FieldManager* F01FieldSetup::GetGlobalFieldManager() { return G4TransportationManager::GetTransportationManager() ->GetFieldManager(); diff --git a/examples/extended/field/field01/src/F01PhysicsList.cc b/examples/extended/field/field01/src/F01PhysicsList.cc index 235a012ed1..86751d99cb 100644 --- a/examples/extended/field/field01/src/F01PhysicsList.cc +++ b/examples/extended/field/field01/src/F01PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01PhysicsList.cc,v 1.7 2003/06/16 16:48:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01PhysicsList.cc,v 1.8 2003/08/27 17:38:54 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" @@ -42,7 +42,7 @@ #include "G4UnitsTable.hh" #include "G4ios.hh" #include - + #include "G4FastSimulationManagerProcess.hh" @@ -65,7 +65,6 @@ F01PhysicsList::F01PhysicsList(F01DetectorConstruction* p) cutForGamma = defaultCutValue ; cutForElectron = defaultCutValue ; - cutForProton = defaultCutValue ; SetVerboseLevel(1); physicsListMessenger = new F01PhysicsListMessenger(this); @@ -256,7 +255,7 @@ void F01PhysicsList::ConstructEM() pmanager->AddProcess(theeplusStepCut,-1,-1,5); theeplusStepCut->SetMaxStep(MaxChargedStep) ; - + } else if( particleName == "mu+" || particleName == "mu-" ) @@ -294,7 +293,7 @@ void F01PhysicsList::ConstructEM() pmanager->AddProcess(thehMultipleScattering,-1,1,1); pmanager->AddProcess(thehIonisation,-1,2,2); - + pmanager->AddProcess( thehadronStepCut,-1,-1,3); thehadronStepCut->SetMaxStep(MaxChargedStep) ; thehadronStepCut->SetMaxStep(10*mm) ; @@ -384,7 +383,6 @@ void F01PhysicsList::SetCuts() void F01PhysicsList::SetGammaCut(G4double val) { - ResetCuts(); cutForGamma = val; } @@ -392,69 +390,9 @@ void F01PhysicsList::SetGammaCut(G4double val) void F01PhysicsList::SetElectronCut(G4double val) { - ResetCuts(); cutForElectron = val; } -////////////////////////////////////////////////////////////////////// - -void F01PhysicsList::SetProtonCut(G4double val) -{ - ResetCuts(); - cutForProton = val; -} - -//////////////////////////////////////////////////////////////////////////// - -void F01PhysicsList::SetCutsByEnergy(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - // set cut values for gamma at first and for e- second and next for e+, - // because some processes for e+/e- need cut values for gamma - - G4ParticleDefinition* part; - G4double cut; - - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e-"); - - part = theParticleTable->FindParticle("e+"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e+"); - - // set cut values for proton and anti_proton before all other hadrons - // because some processes for hadrons need cut values for proton/anti_proton - - part = theParticleTable->FindParticle("proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "proton"); - - part = theParticleTable->FindParticle("anti_proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "anti_proton"); - - SetCutValueForOthers(cut); -} - -////////////////////////////////////////////////////////////////////////////// - -void F01PhysicsList::GetRange(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - G4ParticleDefinition* part; - G4double cut; - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - G4cout << "material : " << currMat->GetName() << G4endl; - G4cout << "particle : " << part->GetParticleName() << G4endl; - G4cout << "energy : " << val / keV << " (keV)" << G4endl; - G4cout << "range : " << cut / mm << " (mm)" << G4endl; -} //////////////////////////////////////////////////////////////////////////// diff --git a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc index 149a86aa00..51c2bf8ca6 100644 --- a/examples/extended/field/field01/src/F01PhysicsListMessenger.cc +++ b/examples/extended/field/field01/src/F01PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01PhysicsListMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01PhysicsListMessenger.cc,v 1.5 2003/08/27 17:38:54 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -55,27 +55,6 @@ F01PhysicsListMessenger::F01PhysicsListMessenger(F01PhysicsList * List) cutECmd->SetDefaultUnit("mm"); cutECmd->AvailableForStates(G4State_Idle); - cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); - cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); - cutPCmd->SetParameterName("range",true); - cutPCmd->SetDefaultValue(1.); - cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(G4State_Idle); - - eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); - eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); - eCmd->SetParameterName("energy",true); - eCmd->SetDefaultValue(10.); - eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(G4State_Idle); - - rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); - rCmd->SetGuidance("Display the RANGE of Electron for the current material."); - rCmd->SetParameterName("energy",true); - rCmd->SetDefaultValue(10.); - rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(G4State_Idle); - setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); setMaxStepCmd->SetParameterName("mxStep",true); @@ -92,26 +71,17 @@ F01PhysicsListMessenger::~F01PhysicsListMessenger() delete cutGCmd; delete cutECmd; - delete cutPCmd; - delete rCmd; - delete eCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + void F01PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if(command == cutGCmd) { F01List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));} if(command == cutECmd) { F01List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} - if(command == cutPCmd) - { F01List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));} - if(command == eCmd) - { F01List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));} - if(command == rCmd) - { F01List->GetRange(rCmd->GetNewDoubleValue(newValue));} if(command == setMaxStepCmd) { F01List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));} } diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorAction.cc index 042d0cd3fc..6fe6f639ff 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.6 2001/11/07 14:33:21 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc b/examples/extended/field/field01/src/F01PrimaryGeneratorMessenger.cc index 51d7c29a2a..6d016bf27a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01RunAction.cc b/examples/extended/field/field01/src/F01RunAction.cc index 8914c8cc19..ef010d1883 100644 --- a/examples/extended/field/field01/src/F01RunAction.cc +++ b/examples/extended/field/field01/src/F01RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: F01RunAction.cc,v 1.8 2003/06/25 17:40:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01RunMessenger.cc b/examples/extended/field/field01/src/F01RunMessenger.cc index 0b3ef32f7a..09f670f513 100644 --- a/examples/extended/field/field01/src/F01RunMessenger.cc +++ b/examples/extended/field/field01/src/F01RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F01RunMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01StepCut.cc b/examples/extended/field/field01/src/F01StepCut.cc index f295d5ea90..ecba1c4a52 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "F01StepCut.hh" diff --git a/examples/extended/field/field01/src/F01SteppingAction.cc b/examples/extended/field/field01/src/F01SteppingAction.cc index fc82cac47a..150ab81e79 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field01/src/F01SteppingMessenger.cc b/examples/extended/field/field01/src/F01SteppingMessenger.cc index 8d0af7c7da..596fb887b1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field01/src/F01SteppingVerbose.cc b/examples/extended/field/field01/src/F01SteppingVerbose.cc index 3b90ed1746..7399787b56 100644 --- a/examples/extended/field/field01/src/F01SteppingVerbose.cc +++ b/examples/extended/field/field01/src/F01SteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01SteppingVerbose.cc,v 1.5 2003/06/16 16:48:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01SteppingVerbose.cc,v 1.6 2003/12/01 16:25:37 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -48,7 +48,7 @@ void F01SteppingVerbose::StepInfo() { CopyState(); - G4int prec = G4cout.precision(8); + G4int prec = G4cout.precision(6); if( verboseLevel >= 1 ){ if( verboseLevel >= 4 ) VerboseTrack(); @@ -58,24 +58,27 @@ void F01SteppingVerbose::StepInfo() << std::setw(10) << "X" << " " << std::setw(10) << "Y" << " " << std::setw(10) << "Z" << " " - << std::setw(10) << "KineE" << " " - << std::setw(10) << "dEStep" << " " + << std::setw(10) << "Direction x" << " " + << std::setw(10) << "dir y" << " " + << std::setw(10) << "dir z" << " " + << std::setw( 8) << "KineE" << " " + << std::setw( 6) << "dEStep" << " " << std::setw(10) << "StepLeng" << std::setw(10) << "TrakLeng" << std::setw(10) << "NextVolu" - << std::setw(10) << "Process" - << std::setw(10) << "Dir_x" << " " - << std::setw(10) << "Dir_y" << " " - << std::setw(10) << "Dir_z" << " " - << G4endl; + << std::setw(10) << "Process" << " " + << G4endl; } G4cout << std::setw( 5) << fTrack->GetCurrentStepNumber() << " " << std::setw(10) << G4BestUnit(fTrack->GetPosition().x(),"Length") << std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length") - << std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length") - << std::setw(10) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") - << std::setw(10) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") + << std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length"); + G4cout << std::setw(10) << fTrack->GetMomentumDirection().x() << " " + << std::setw(10) << fTrack->GetMomentumDirection().y() << " " + << std::setw(10) << fTrack->GetMomentumDirection().z() << " "; + G4cout << std::setw( 8) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy") + << std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy") << std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length") << std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length"); @@ -92,11 +95,6 @@ void F01SteppingVerbose::StepInfo() } else { G4cout << " UserLimit"; } - - G4cout << std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().x(),"Length") - << std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().y(),"Length") - << std::setw(12) << G4BestUnit(fTrack->GetMomentumDirection().z(),"Length"); - G4cout << G4endl; if( verboseLevel == 2 ){ @@ -148,28 +146,35 @@ void F01SteppingVerbose::TrackingStarted() { CopyState(); -G4int prec = G4cout.precision(3); +G4int prec = G4cout.precision(6); 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) << "X" << " " + << std::setw(10) << "Y" << " " + << std::setw(10) << "Z" << " " + << std::setw(10) << "Direction x" << " " + << std::setw(10) << "dir y" << " " + << std::setw(10) << "dir z" << " " + << std::setw(10) << "KineE" << " " + << std::setw(10) << "dEStep" << " " << std::setw(10) << "StepLeng" << std::setw(10) << "TrakLeng" << std::setw(10) << "Volume" << " " - << std::setw(10) << "Process" << G4endl; + << 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(10) << G4BestUnit(fTrack->GetPosition().x(),"Length") + << std::setw(10) << G4BestUnit(fTrack->GetPosition().y(),"Length") + << std::setw(10) << G4BestUnit(fTrack->GetPosition().z(),"Length"); + G4cout << std::setw(10) << fTrack->GetMomentumDirection().x() << " " + << std::setw(10) << fTrack->GetMomentumDirection().y() << " " + << std::setw(10) << fTrack->GetMomentumDirection().z() << " "; + G4cout << std::setw( 8) << 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"); + << std::setw(10) << G4BestUnit(fStep->GetStepLength(),"Length") + << std::setw(10) << G4BestUnit(fTrack->GetTrackLength(),"Length"); if(fTrack->GetNextVolume()){ G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); diff --git a/examples/extended/field/field01/src/F01VisManager.cc b/examples/extended/field/field01/src/F01VisManager.cc index 4fda0f2b73..e3896c6ee8 100644 --- a/examples/extended/field/field01/src/F01VisManager.cc +++ b/examples/extended/field/field01/src/F01VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F01VisManager.cc,v 1.4 2002/11/26 08:28:06 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F01VisManager.cc,v 1.5 2003/11/13 15:10:59 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void F01VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/field/field02/History b/examples/extended/field/field02/History index 40e504ccc1..2e7ec1129a 100644 --- a/examples/extended/field/field02/History +++ b/examples/extended/field/field02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.9 2003/06/25 17:33:42 gcosmo Exp $ +$Id: History,v 1.17 2003/11/25 14:55:57 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,26 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 25th, 2003 Gabriele Cosmo +----------------------------- +- Open geometry before clearing stores in DetectorConstruction class. + +Nov 13th, 2003 - John Allison +----------------------------- +- Removed OPACS from Vis Manager. + +Nov 12th, 2003 - J.Apostolakis (fieldex-V05-02-01) +------------------------------ +- Revised to work with new field tags (field-V05-02-04 and later) + * creation of chord finder for electric field must be explicit +- Created helper class F02ElectricFieldSetup, using nearly all of + 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 + Jun 25th, 2003 - G.Cosmo (fieldex-V05-01-00) -------------------------------------------- - Fixed mechanism for update of geometry in detector-construction. diff --git a/examples/extended/field/field02/field02.cc b/examples/extended/field/field02/field02.cc index 7e41852ca1..85e51d83e0 100644 --- a/examples/extended/field/field02/field02.cc +++ b/examples/extended/field/field02/field02.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field02.cc,v 1.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: field02.cc,v 1.5 2003/11/12 16:33:13 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -44,7 +44,7 @@ #endif #include "F02DetectorConstruction.hh" -#include "F02ElectroMagneticField.hh" +#include "F02ElectricFieldSetup.hh" #include "F02PhysicsList.hh" #include "F02PrimaryGeneratorAction.hh" #include "F02RunAction.hh" @@ -67,9 +67,10 @@ int main(int argc,char** argv) G4RunManager * runManager = new G4RunManager; - // Construct the electro magnetic field + // Construct the helper class to manage the electric field & + // the parameters for the propagation of particles in it. - F02ElectroMagneticField* field = new F02ElectroMagneticField() ; + F02ElectricFieldSetup* field = new F02ElectricFieldSetup() ; // Set mandatory initialization classes diff --git a/examples/extended/field/field02/field02.out b/examples/extended/field/field02/field02.out index 4d8e1a1329..23cafb2f9e 100644 --- a/examples/extended/field/field02/field02.out +++ b/examples/extended/field/field02/field02.out @@ -1,10 +1,10 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** G4ClassicalRK4 (default) is called -The minimal step is equal to 1 mm +The minimal step is equal to 0.01 mm ***** Table : Nb of materials = 11 ***** @@ -52,6 +52,8 @@ The minimal step is equal to 1 mm ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 8.00 % Abundance 27.59 % +G4ClassicalRK4 (default) is called +The minimal step is equal to 0.01 mm Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -87,45 +89,70 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ============================== @@ -156,16 +183,16 @@ 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 -18.2 cm 2.17 cm 1.86 GeV 73 keV 18.6 cm 18.6 cm World eIoni - 2 -278 nm -20 cm 2.21 cm 2.05 GeV 8.24 keV 1.85 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -18.1 cm 2.17 cm 1.86 GeV 36.7 keV 18.6 cm 18.6 cm World eIoni + 2 -684 nm -20 cm 2.22 cm 2.05 GeV 2.53 keV 1.85 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 -18.2 cm 2.17 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 7.16 mum -18.2 cm 2.17 cm 1.06 MeV 2.45 keV 75.9 mum 75.9 mum World eIoni + 0 0 fm -18.1 cm 2.17 cm 5.17 keV 0 eV 0 fm 0 fm World initStep + 1 29.9 mum -18.2 cm 2.17 cm 8.08 MeV 5.17 keV 759 mum 759 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -173,254 +200,70 @@ 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 -2.64 mm 4.97 mm 76.4 MeV 2.25 keV 5.81 mm 5.81 mm World eIoni - 2 2.25 mum -20 cm 2.22 cm 2.05 GeV 80.5 keV 19.9 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.64 mm 4.97 mm 3.77 keV 0 eV 0 fm 0 fm World initStep - 1 -3.03 mum -3.08 mm 4.95 mm 5.44 MeV 7.53 keV 439 mum 439 mum World eIoni - -********************************************************************************************************* -* 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.52 mm 4.86 mm 75.2 MeV 1.47 keV 5.64 mm 5.64 mm World eIoni - 2 9.68 mum -8.77 cm 1.82 cm 927 MeV 34.8 keV 8.7 cm 9.26 cm World eIoni - 3 11 mum -20 cm 2.22 cm 2.05 GeV 46.9 keV 11.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 9.68 mum -8.77 cm 1.82 cm 1.21 keV 0 eV 0 fm 0 fm World initStep - 1 13.7 mum -8.78 cm 1.82 cm 1.04 MeV 2.43 keV 75 mum 75 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.52 mm 4.86 mm 1.33 keV 0 eV 0 fm 0 fm World initStep - 1 -7.9 mum -2.6 mm 4.86 mm 1.18 MeV 2.66 keV 85.5 mum 85.5 mum World eIoni - -********************************************************************************************************* -* 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.56 cm 1.26 cm 306 MeV 10.5 keV 3.02 cm 3.02 cm World eIoni - 2 3.07 mum -8.46 cm 1.8 cm 896 MeV 23.3 keV 5.93 cm 8.95 cm World eIoni - 3 3.1 mum -8.66 cm 1.81 cm 915 MeV 465 eV 1.95 mm 9.15 cm World eIoni - 4 3.58 mum -9.34 cm 1.85 cm 984 MeV 3.46 keV 6.83 mm 9.83 cm World eIoni - 5 7 mum -13.4 cm 2.02 cm 1.39 GeV 18.4 keV 4.04 cm 13.9 cm World eIoni - 6 8.62 mum -16.9 cm 2.14 cm 1.74 GeV 15.7 keV 3.52 cm 17.4 cm World eIoni - 7 10.9 mum -20 cm 2.22 cm 2.05 GeV 12.2 keV 3.11 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 8.62 mum -16.9 cm 2.14 cm 4.52 keV 0 eV 0 fm 0 fm World initStep - 1 -28.4 mum -16.9 cm 2.14 cm 7.36 MeV 9.03 keV 603 mum 603 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 7 mum -13.4 cm 2.02 cm 4.46 keV 0 eV 0 fm 0 fm World initStep - 1 22.2 mum -13.4 cm 2.03 cm 7.22 MeV 8.93 keV 591 mum 591 mum World eIoni + 1 0 fm -6.3 cm 1.66 cm 680 MeV 13.8 keV 6.79 cm 6.79 cm World eIoni + 2 -388 nm -8.27 cm 1.79 cm 877 MeV 4.45 keV 1.97 cm 8.76 cm World eIoni + 3 -1.81 mum -11.3 cm 1.94 cm 1.18 GeV 9.54 keV 3.05 cm 11.8 cm World eIoni + 4 -6.7 mum -14.4 cm 2.06 cm 1.49 GeV 7.95 keV 3.12 cm 14.9 cm World eIoni + 5 -13.9 mum -20 cm 2.22 cm 2.05 GeV 11.4 keV 5.57 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.58 mum -9.34 cm 1.85 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 -2.51 mum -9.34 cm 1.85 cm 880 keV 2.1 keV 61.8 mum 61.8 mum World eIoni + 0 -6.7 mum -14.4 cm 2.06 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 -3.89 mum -14.4 cm 2.06 cm 822 keV 1.29 keV 75.3 mum 75.3 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.1 mum -8.66 cm 1.81 cm 3.33 keV 0 eV 0 fm 0 fm World initStep - 1 -19.2 mum -8.69 cm 1.81 cm 4.44 MeV 6.67 keV 357 mum 357 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.07 mum -8.46 cm 1.8 cm 1.35 keV 0 eV 0 fm 0 fm World initStep - 1 6.34 mum -8.47 cm 1.8 cm 1.2 MeV 2.71 keV 87.6 mum 87.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.56 cm 1.26 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 -5.45 mum -2.57 cm 1.26 cm 926 keV 2.18 keV 65 mum 65 mum World eIoni - -********************************************************************************************************* -* 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.35 cm 1.37 cm 385 MeV 14.4 keV 3.82 cm 3.82 cm World eIoni - 2 10.9 mum -11.5 cm 1.95 cm 1.2 GeV 34.8 keV 8.17 cm 12 cm World eIoni - 3 15.1 mum -20 cm 2.22 cm 2.05 GeV 36.4 keV 8.51 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 10.9 mum -11.5 cm 1.95 cm 1.5 keV 0 eV 0 fm 0 fm World initStep - 1 14.8 mum -11.5 cm 1.95 cm 1.37 MeV 2.99 keV 101 mum 101 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.35 cm 1.37 cm 12.7 keV 0 eV 0 fm 0 fm World initStep - 1 -104 mum -3.56 cm 1.38 cm 24.8 MeV 8.09 keV 2.16 mm 2.16 mm World eIoni - 2 -119 mum -6.48 cm 1.38 cm 317 MeV 12.2 keV 2.92 cm 3.13 cm World eIoni - 3 -123 mum -8.37 cm 1.38 cm 506 MeV 7.07 keV 1.89 cm 5.03 cm World eIoni - 4 -128 mum -13.6 cm 1.39 cm 1.03 GeV 20.8 keV 5.21 cm 10.2 cm World eIoni - 5 -129 mum -20 cm 1.39 cm 1.67 GeV 27.3 keV 6.42 cm 16.7 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -128 mum -13.6 cm 1.39 cm 1.99 keV 0 eV 0 fm 0 fm World initStep - 1 -125 mum -13.6 cm 1.39 cm 2.01 MeV 3.98 keV 154 mum 154 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -123 mum -8.37 cm 1.38 cm 2.17 keV 0 eV 0 fm 0 fm World initStep - 1 -127 mum -8.39 cm 1.39 cm 2.29 MeV 4.34 keV 177 mum 177 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -119 mum -6.48 cm 1.38 cm 98.2 keV 0 eV 0 fm 0 fm World initStep - 1 -97 mum -9.77 cm 1.34 cm 330 MeV 25 keV 3.3 cm 3.3 cm World eIoni - 2 -95 mum -18.7 cm 1.34 cm 1.22 GeV 37.3 keV 8.88 cm 12.2 cm World eIoni - 3 -95.2 mum -19.9 cm 1.34 cm 1.35 GeV 5.53 keV 1.29 cm 13.5 cm World eIoni - 4 -95.2 mum -20 cm 1.34 cm 1.35 GeV 95.7 eV 619 mum 13.5 cm OutOfWorldTransportation + 0 -1.81 mum -11.3 cm 1.94 cm 52.5 keV 0 eV 0 fm 0 fm World initStep + 1 135 mum -12.9 cm 1.93 cm 162 MeV 10.8 keV 1.61 cm 1.61 cm World eIoni + 2 148 mum -17 cm 1.93 cm 575 MeV 9.01 keV 4.12 cm 5.74 cm World eIoni + 3 150 mum -18.9 cm 1.93 cm 761 MeV 4.22 keV 1.87 cm 7.6 cm World eIoni + 4 151 mum -20 cm 1.93 cm 870 MeV 1.83 keV 1.09 cm 8.69 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -95.2 mum -19.9 cm 1.34 cm 3.23 keV 0 eV 0 fm 0 fm World initStep - 1 -81.4 mum -20 cm 1.34 cm 4.21 MeV 6.46 keV 338 mum 338 mum World eIoni + 0 150 mum -18.9 cm 1.93 cm 3.4 keV 0 eV 0 fm 0 fm World initStep + 1 132 mum -18.9 cm 1.93 cm 3.93 MeV 3.4 keV 365 mum 365 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -95 mum -18.7 cm 1.34 cm 1.57 keV 0 eV 0 fm 0 fm World initStep - 1 -85.5 mum -18.7 cm 1.34 cm 1.45 MeV 3.15 keV 108 mum 108 mum World eIoni + 0 148 mum -17 cm 1.93 cm 1.09 keV 0 eV 0 fm 0 fm World initStep + 1 152 mum -17 cm 1.93 cm 631 keV 1.09 keV 57.9 mum 57.9 mum World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 ********************************************************************************************************* 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 78.7 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.63 cm 1.86 cm 1.01 GeV 39.5 keV 10.1 cm 10.1 cm World eIoni - 2 853 nm -20 cm 2.22 cm 2.05 GeV 43.4 keV 10.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 -9.63 cm 1.86 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -2.21 mum -9.64 cm 1.87 cm 840 keV 2.02 keV 58.5 mum 58.5 mum World eIoni - -********************************************************************************************************* -* 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.35 cm 1.59 cm 585 MeV 22.6 keV 5.83 cm 5.83 cm World eIoni - 2 4.97 mum -20 cm 2.21 cm 2.05 GeV 62.9 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.35 cm 1.59 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 -9.57 mum -5.36 cm 1.59 cm 1.46 MeV 3.16 keV 109 mum 109 mum World eIoni - -********************************************************************************************************* -* 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.45 cm 1.24 cm 295 MeV 12.2 keV 2.91 cm 2.91 cm World eIoni - 2 -3.35 mum -12.2 cm 1.98 cm 1.27 GeV 39.5 keV 9.81 cm 12.7 cm World eIoni - 3 -3.66 mum -14 cm 2.05 cm 1.45 GeV 6.99 keV 1.77 cm 14.5 cm World eIoni - 4 -2.62 mum -20 cm 2.22 cm 2.05 GeV 25.1 keV 6.01 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.66 mum -14 cm 2.05 cm 5.5 keV 0 eV 0 fm 0 fm World initStep - 1 -39.9 mum -14.1 cm 2.04 cm 10.3 MeV 11 keV 852 mum 852 mum World eIoni + 0 135 mum -12.9 cm 1.93 cm 1.93 keV 0 eV 0 fm 0 fm World initStep + 1 145 mum -12.9 cm 1.93 cm 1.53 MeV 1.93 keV 140 mum 140 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -3.35 mum -12.2 cm 1.98 cm 1.22 keV 0 eV 0 fm 0 fm World initStep - 1 -3.16 mum -12.2 cm 1.98 cm 1.05 MeV 2.45 keV 75.8 mum 75.8 mum World eIoni + 0 -388 nm -8.27 cm 1.79 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 5.27 mum -8.28 cm 1.79 cm 946 keV 1.41 keV 86.4 mum 86.4 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.45 cm 1.24 cm 3.3 keV 0 eV 0 fm 0 fm World initStep - 1 9.46 mum -2.48 cm 1.24 cm 4.35 MeV 6.59 keV 350 mum 350 mum World eIoni + 0 0 fm -6.3 cm 1.66 cm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 2.2 mum -6.31 cm 1.66 cm 622 keV 1.08 keV 57.2 mum 57.2 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -428,716 +271,52 @@ 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.25 cm 1.48 cm 475 MeV 19.1 keV 4.73 cm 4.73 cm World eIoni - 2 9.05 mum -20 cm 2.22 cm 2.05 GeV 66.5 keV 15.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 -4.25 cm 1.48 cm 5.67 keV 0 eV 0 fm 0 fm World initStep - 1 -42.9 mum -4.34 cm 1.48 cm 10.9 MeV 11.3 keV 900 mum 900 mum World eIoni - -********************************************************************************************************* -* 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.79 cm 1.11 cm 228 MeV 7.66 keV 2.23 cm 2.23 cm World eIoni - 2 -51.3 nm -1.86 cm 1.12 cm 236 MeV 140 eV 734 mum 2.31 cm World eIoni - 3 3.89 mum -11.9 cm 1.97 cm 1.24 GeV 40.5 keV 10 cm 12.4 cm World eIoni - 4 4.23 mum -12.7 cm 2 cm 1.32 GeV 4.31 keV 8.44 mm 13.2 cm World eIoni - 5 5.22 mum -20 cm 2.22 cm 2.05 GeV 30.3 keV 7.3 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 4.23 mum -12.7 cm 2 cm 3.75 keV 0 eV 0 fm 0 fm World initStep - 1 17.1 mum -12.7 cm 2 cm 5.37 MeV 7.49 keV 435 mum 435 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.89 mum -11.9 cm 1.97 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -965 nm -11.9 cm 1.97 cm 835 keV 2.01 keV 58.2 mum 58.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -51.3 nm -1.86 cm 1.12 cm 2.93 keV 0 eV 0 fm 0 fm World initStep - 1 -14.9 mum -1.88 cm 1.12 cm 3.61 MeV 5.85 keV 287 mum 287 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.79 cm 1.11 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 3.19 mum -1.79 cm 1.11 cm 959 keV 2.24 keV 67.2 mum 67.2 mum World eIoni - -********************************************************************************************************* -* 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 cm 2.01 cm 1.35 GeV 51.8 keV 13.4 cm 13.4 cm World eIoni - 2 697 nm -17.6 cm 2.16 cm 1.81 GeV 17.8 keV 4.65 cm 18.1 cm World eIoni - 3 1.17 mum -20 cm 2.22 cm 2.05 GeV 9.97 keV 2.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 697 nm -17.6 cm 2.16 cm 1.51 keV 0 eV 0 fm 0 fm World initStep - 1 -2.67 mum -17.6 cm 2.16 cm 1.38 MeV 3.02 keV 102 mum 102 mum World eIoni - -********************************************************************************************************* -* 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 2.03 keV 0 eV 0 fm 0 fm World initStep - 1 -6.63 mum -13 cm 2.01 cm 2.06 MeV 4.06 keV 159 mum 159 mum World eIoni - -********************************************************************************************************* -* 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.74 cm 1.1 cm 224 MeV 8.5 keV 2.19 cm 2.19 cm World eIoni - 2 6.25 mum -11.3 cm 1.94 cm 1.18 GeV 39.5 keV 9.56 cm 11.8 cm World eIoni - 3 6.23 mum -15.1 cm 2.08 cm 1.56 GeV 15.9 keV 3.85 cm 15.6 cm World eIoni - 4 4.89 mum -20 cm 2.22 cm 2.05 GeV 20.3 keV 4.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 6.23 mum -15.1 cm 2.08 cm 2.51 keV 0 eV 0 fm 0 fm World initStep - 1 22.1 mum -15.1 cm 2.08 cm 2.82 MeV 5.01 keV 221 mum 221 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.25 mum -11.3 cm 1.94 cm 3.04 keV 0 eV 0 fm 0 fm World initStep - 1 21 mum -11.3 cm 1.94 cm 3.82 MeV 6.08 keV 305 mum 305 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.74 cm 1.1 cm 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 -8.26 mum -1.75 cm 1.1 cm 1.24 MeV 2.78 keV 90.7 mum 90.7 mum World eIoni - -********************************************************************************************************* -* 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.54 cm 1.05 cm 204 MeV 8.61 keV 1.99 cm 1.99 cm World eIoni - 2 6.75 mum -20 cm 2.22 cm 2.05 GeV 77.2 keV 18.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 -1.54 cm 1.05 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 -5.36 mum -1.55 cm 1.05 cm 873 keV 2.1 keV 61.7 mum 61.7 mum World eIoni - -********************************************************************************************************* -* 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.8 cm 2.04 cm 1.43 GeV 56 keV 14.3 cm 14.3 cm World eIoni - 2 -1.43 mum -19.3 cm 2.2 cm 1.98 GeV 23.1 keV 5.49 cm 19.8 cm World eIoni - 3 -1.47 mum -20 cm 2.21 cm 2.05 GeV 3.03 keV 6.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 -1.43 mum -19.3 cm 2.2 cm 2.83 keV 0 eV 0 fm 0 fm World initStep - 1 -10.6 mum -19.3 cm 2.2 cm 3.42 MeV 5.66 keV 272 mum 272 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -13.8 cm 2.04 cm 1.92 keV 0 eV 0 fm 0 fm World initStep - 1 12 mum -13.8 cm 2.04 cm 1.92 MeV 3.85 keV 146 mum 146 mum World eIoni - -********************************************************************************************************* -* 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.85 cm 1.12 cm 235 MeV 10.5 keV 2.3 cm 2.3 cm World eIoni - 2 5.78 mum -10.8 cm 1.92 cm 1.13 GeV 37.4 keV 8.99 cm 11.3 cm World eIoni - 3 6.16 mum -11.7 cm 1.96 cm 1.22 GeV 4.82 keV 9.05 mm 12.2 cm World eIoni - 4 10.6 mum -20 cm 2.22 cm 2.05 GeV 33.4 keV 8.3 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.16 mum -11.7 cm 1.96 cm 1.59 keV 0 eV 0 fm 0 fm World initStep - 1 -2.62 mum -11.7 cm 1.96 cm 1.47 MeV 3.17 keV 110 mum 110 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.78 mum -10.8 cm 1.92 cm 2.16 keV 0 eV 0 fm 0 fm World initStep - 1 2.12 mum -10.8 cm 1.92 cm 2.27 MeV 4.32 keV 176 mum 176 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.85 cm 1.12 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 -7.78 mum -1.86 cm 1.12 cm 1.15 MeV 2.63 keV 83.7 mum 83.7 mum World eIoni - -********************************************************************************************************* -* 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 78.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 -17.2 cm 2.15 cm 1.77 GeV 70 keV 17.7 cm 17.7 cm World eIoni - 2 -177 nm -20 cm 2.22 cm 2.05 GeV 11.5 keV 2.84 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.2 cm 2.15 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 3.11 mum -17.2 cm 2.14 cm 1.55 MeV 3.3 keV 116 mum 116 mum World eIoni - -********************************************************************************************************* -* 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.06 mm 7.68 mm 121 MeV 4.2 keV 1.1 cm 1.1 cm World eIoni - 2 -2.06 mum -1.24 cm 9.66 mm 174 MeV 2.15 keV 5.7 mm 1.67 cm World eIoni - 3 -27.5 mum -19.3 cm 2.21 cm 1.98 GeV 76.5 keV 18.2 cm 19.8 cm World eIoni - 4 -27.6 mum -20 cm 2.22 cm 2.05 GeV 2.58 keV 6.52 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 -27.5 mum -19.3 cm 2.21 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 -37.6 mum -19.4 cm 2.21 cm 1.56 MeV 3.3 keV 117 mum 117 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.06 mum -1.24 cm 9.66 mm 5.26 keV 0 eV 0 fm 0 fm World initStep - 1 30.6 mum -1.32 cm 9.62 mm 9.55 MeV 10.5 keV 787 mum 787 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.06 mm 7.68 mm 4.76 keV 0 eV 0 fm 0 fm World initStep - 1 30.4 mum -7.7 mm 7.66 mm 8.03 MeV 9.51 keV 658 mum 658 mum World eIoni - -********************************************************************************************************* -* 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.89 cm 1.88 cm 1.04 GeV 40.4 keV 10.4 cm 10.4 cm World eIoni - 2 4.02 mum -20 cm 2.22 cm 2.05 GeV 42.4 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.89 cm 1.88 cm 3.49 keV 0 eV 0 fm 0 fm World initStep - 1 -25.9 mum -9.93 cm 1.88 cm 4.78 MeV 6.97 keV 386 mum 386 mum World eIoni - -********************************************************************************************************* -* 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.39 cm 1.8 cm 889 MeV 35.4 keV 8.88 cm 8.88 cm World eIoni - 2 -982 nm -10.8 cm 1.92 cm 1.13 GeV 8.53 keV 2.37 cm 11.2 cm World eIoni - 3 -737 nm -13.6 cm 2.03 cm 1.41 GeV 12.1 keV 2.85 cm 14.1 cm World eIoni - 4 -454 nm -16.1 cm 2.12 cm 1.66 GeV 9.56 keV 2.53 cm 16.6 cm World eIoni - 5 532 nm -20 cm 2.22 cm 2.05 GeV 14.8 keV 3.88 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 -454 nm -16.1 cm 2.12 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -5.88 mum -16.1 cm 2.12 cm 834 keV 2.02 keV 58.3 mum 58.3 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -737 nm -13.6 cm 2.03 cm 1.37 keV 0 eV 0 fm 0 fm World initStep - 1 -2.1 mum -13.6 cm 2.03 cm 1.22 MeV 2.74 keV 89.2 mum 89.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -982 nm -10.8 cm 1.92 cm 71.7 keV 0 eV 0 fm 0 fm World initStep - 1 -60.5 mum -11.2 cm 1.89 cm 46.1 MeV 4.84 keV 4.37 mm 4.37 mm World eIoni - 2 -68.6 mum -20 cm 1.88 cm 929 MeV 36.4 keV 8.83 cm 9.26 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -60.5 mum -11.2 cm 1.89 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -64.2 mum -11.2 cm 1.89 cm 860 keV 2.06 keV 60.3 mum 60.3 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.39 cm 1.8 cm 2.06 keV 0 eV 0 fm 0 fm World initStep - 1 11.9 mum -8.41 cm 1.8 cm 2.12 MeV 4.12 keV 163 mum 163 mum World eIoni - -********************************************************************************************************* -* 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.48 mm 6.89 mm 105 MeV 3.93 keV 9.23 mm 9.23 mm World eIoni - 2 -3.97 mum -11.4 cm 1.94 cm 1.19 GeV 44.3 keV 10.9 cm 11.8 cm World eIoni - 3 -4.98 mum -20 cm 2.22 cm 2.05 GeV 36.6 keV 8.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 -3.97 mum -11.4 cm 1.94 cm 3.8 keV 0 eV 0 fm 0 fm World initStep - 1 -2.75 mum -11.4 cm 1.94 cm 5.49 MeV 7.59 keV 445 mum 445 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.48 mm 6.89 mm 2.8 keV 0 eV 0 fm 0 fm World initStep - 1 5.84 mum -5.73 mm 6.91 mm 3.37 MeV 5.6 keV 267 mum 267 mum World eIoni - -********************************************************************************************************* -* 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.98 cm 1.64 cm 648 MeV 24.4 keV 6.47 cm 6.47 cm World eIoni - 2 -507 nm -6.5 cm 1.68 cm 700 MeV 1.15 keV 5.14 mm 6.98 cm World eIoni - 3 -3.63 mum -16.8 cm 2.14 cm 1.73 GeV 44 keV 10.3 cm 17.3 cm World eIoni - 4 -3.87 mum -20 cm 2.22 cm 2.05 GeV 14.5 keV 3.17 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.63 mum -16.8 cm 2.14 cm 2.64 keV 0 eV 0 fm 0 fm World initStep - 1 -10.6 mum -16.9 cm 2.14 cm 3.07 MeV 5.29 keV 242 mum 242 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -507 nm -6.5 cm 1.68 cm 1.65 keV 0 eV 0 fm 0 fm World initStep - 1 -8.35 mum -6.51 cm 1.68 cm 1.55 MeV 3.3 keV 116 mum 116 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.98 cm 1.64 cm 5.07 keV 0 eV 0 fm 0 fm World initStep - 1 40.8 mum -6.05 cm 1.64 cm 8.89 MeV 10.1 keV 733 mum 733 mum World eIoni - -********************************************************************************************************* -* 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.52 cm 1.51 cm 502 MeV 17.7 keV 5 cm 5 cm World eIoni - 2 -2.48 mum -8.72 cm 1.82 cm 922 MeV 14.5 keV 4.21 cm 9.21 cm World eIoni - 3 -4.12 mum -16.3 cm 2.12 cm 1.68 GeV 30.9 keV 7.55 cm 16.8 cm World eIoni - 4 -3.54 mum -20 cm 2.22 cm 2.05 GeV 15.6 keV 3.73 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.12 mum -16.3 cm 2.12 cm 21.5 keV 0 eV 0 fm 0 fm World initStep - 1 -82.9 mum -16.6 cm 2.14 cm 39.6 MeV 11.1 keV 3.55 mm 3.55 mm World eIoni - 2 -91.6 mum -19.7 cm 2.14 cm 347 MeV 14 keV 3.08 cm 3.43 cm World eIoni - 3 -92.1 mum -20 cm 2.14 cm 379 MeV 1.11 keV 3.18 mm 3.75 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -91.6 mum -19.7 cm 2.14 cm 47.4 keV 0 eV 0 fm 0 fm World initStep - 1 -17.8 mum -20 cm 2.12 cm 36.7 MeV 2.96 keV 3.33 mm 3.33 mm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.48 mum -8.72 cm 1.82 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -4.93 mum -8.73 cm 1.82 cm 861 keV 2.07 keV 60.5 mum 60.5 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.52 cm 1.51 cm 1.7 keV 0 eV 0 fm 0 fm World initStep - 1 10.2 mum -4.54 cm 1.51 cm 1.63 MeV 3.41 keV 122 mum 122 mum World eIoni - -********************************************************************************************************* -* 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 -431 mum 2.07 mm 54.3 MeV 747 eV 2.13 mm 2.13 mm World eIoni - 2 4.94 mum -4.27 cm 1.48 cm 477 MeV 20.1 keV 4.53 cm 4.74 cm World eIoni - 3 9.6 mum -12.1 cm 1.97 cm 1.26 GeV 33.5 keV 7.89 cm 12.6 cm World eIoni - 4 8.98 mum -14.5 cm 2.06 cm 1.5 GeV 9.29 keV 2.34 cm 15 cm World eIoni - 5 7.32 mum -20 cm 2.22 cm 2.05 GeV 23.3 keV 5.52 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.98 mum -14.5 cm 2.06 cm 12.9 keV 0 eV 0 fm 0 fm World initStep - 1 13.9 mum -14.5 cm 2.06 cm 3.04 MeV 426 eV 281 mum 281 mum World eIoni - 2 43.8 mum -19.6 cm 2.05 cm 512 MeV 16.8 keV 5.09 cm 5.12 cm World eIoni - 3 44 mum -20 cm 2.05 cm 553 MeV 653 eV 4.04 mm 5.52 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 43.8 mum -19.6 cm 2.05 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 46.3 mum -19.6 cm 2.05 cm 923 keV 2.19 keV 65.2 mum 65.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 13.9 mum -14.5 cm 2.06 cm 5.28 keV 0 eV 0 fm 0 fm World initStep - 1 -12.1 mum -14.6 cm 2.06 cm 9.6 MeV 10.6 keV 793 mum 793 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 9.6 mum -12.1 cm 1.97 cm 6.88 keV 0 eV 0 fm 0 fm World initStep - 1 79.2 mum -12.3 cm 1.97 cm 14.6 MeV 12.6 keV 1.23 mm 1.23 mm World eIoni - 2 66.1 mum -20 cm 1.97 cm 789 MeV 27.9 keV 7.75 cm 7.87 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.94 mum -4.27 cm 1.48 cm 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 -839 nm -4.27 cm 1.48 cm 1.06 MeV 2.46 keV 76.3 mum 76.3 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -431 mum 2.07 mm 1.42 keV 0 eV 0 fm 0 fm World initStep - 1 -4.71 mum -518 mum 2.08 mm 1.34 MeV 2.84 keV 94 mum 94 mum World eIoni - -********************************************************************************************************* -* 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.6 cm 2.07 cm 1.51 GeV 60 keV 15.1 cm 15.1 cm World eIoni - 2 1.01 mum -20 cm 2.22 cm 2.05 GeV 24.2 keV 5.43 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.6 cm 2.07 cm 1.52 keV 0 eV 0 fm 0 fm World initStep - 1 -7.63 mum -14.6 cm 2.07 cm 1.39 MeV 3.04 keV 103 mum 103 mum World eIoni - -********************************************************************************************************* -* 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 47.9 keV 12.2 cm 12.2 cm World eIoni - 2 522 nm -20 cm 2.22 cm 2.05 GeV 33.7 keV 8.29 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.2 keV 0 eV 0 fm 0 fm World initStep - 1 -2.03 mum -11.7 cm 1.96 cm 1.03 MeV 2.39 keV 73.6 mum 73.6 mum World eIoni - -********************************************************************************************************* -* 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.15 cm 250 MeV 7.37 keV 2.46 cm 2.46 cm World eIoni - 2 -958 nm -9.42 cm 1.85 cm 992 MeV 29.6 keV 7.46 cm 9.92 cm World eIoni - 3 -967 nm -10.1 cm 1.89 cm 1.06 GeV 3.14 keV 6.92 mm 10.6 cm World eIoni - 4 -1.57 mum -20 cm 2.22 cm 2.05 GeV 42.1 keV 9.89 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 -967 nm -10.1 cm 1.89 cm 7.29 keV 0 eV 0 fm 0 fm World initStep - 1 5.77 mum -10.2 cm 1.9 cm 15.6 MeV 13.6 keV 1.32 mm 1.32 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -958 nm -9.42 cm 1.85 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 -2.01 mum -9.43 cm 1.85 cm 926 keV 2.2 keV 65.7 mum 65.7 mum World eIoni - -********************************************************************************************************* -* 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.15 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 1.28 mum -2.01 cm 1.16 cm 845 keV 2.01 keV 58.1 mum 58.1 mum World eIoni - -********************************************************************************************************* -* 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 51.6 keV 13.4 cm 13.4 cm World eIoni - 2 3.11 mum -20 cm 2.22 cm 2.05 GeV 28.9 keV 7.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 -12.9 cm 2.01 cm 5.44 keV 0 eV 0 fm 0 fm World initStep - 1 -48.5 mum -13 cm 2.01 cm 10.1 MeV 10.9 keV 837 mum 837 mum World eIoni - -********************************************************************************************************* -* 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 337 MeV 12.5 keV 3.34 cm 3.34 cm World eIoni - 2 7.85 mum -14.4 cm 2.06 cm 1.49 GeV 47.1 keV 11.5 cm 14.8 cm World eIoni - 3 8.08 mum -16 cm 2.11 cm 1.65 GeV 6.91 keV 1.66 cm 16.5 cm World eIoni - 4 9.51 mum -20 cm 2.22 cm 2.05 GeV 18.9 keV 3.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 8.08 mum -16 cm 2.11 cm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 -5.24 mum -16 cm 2.11 cm 2.17 MeV 4.19 keV 167 mum 167 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 7.85 mum -14.4 cm 2.06 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 13.8 mum -14.4 cm 2.06 cm 924 keV 2.19 keV 65.4 mum 65.4 mum World eIoni - -********************************************************************************************************* -* 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 2.78 keV 0 eV 0 fm 0 fm World initStep - 1 -19 mum -2.9 cm 1.31 cm 3.32 MeV 5.55 keV 264 mum 264 mum World eIoni - -********************************************************************************************************* -* 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.35 cm 9.97 mm 185 MeV 9.48 keV 1.78 cm 1.78 cm World eIoni - 2 -4.19 mum -4.14 cm 1.47 cm 464 MeV 11.4 keV 2.83 cm 4.62 cm World eIoni - 3 -9.5 mum -7.7 cm 1.76 cm 820 MeV 12.7 keV 3.57 cm 8.19 cm World eIoni - 4 -12.3 mum -9.88 cm 1.88 cm 1.04 GeV 8.51 keV 2.19 cm 10.4 cm World eIoni - 5 -16.1 mum -20 cm 2.22 cm 2.05 GeV 42.9 keV 10.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 -12.3 mum -9.88 cm 1.88 cm 6.14 keV 0 eV 0 fm 0 fm World initStep - 1 -60.3 mum -9.98 cm 1.87 cm 12.4 MeV 12.3 keV 1.03 mm 1.03 mm World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.5 mum -7.7 cm 1.76 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 -3.98 mum -7.7 cm 1.76 cm 1.1 MeV 2.52 keV 79 mum 79 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.19 mum -4.14 cm 1.47 cm 2.29 keV 0 eV 0 fm 0 fm World initStep - 1 10.7 mum -4.16 cm 1.47 cm 2.47 MeV 4.57 keV 192 mum 192 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.35 cm 9.97 mm 1.97 keV 0 eV 0 fm 0 fm World initStep - 1 12.4 mum -1.36 cm 9.97 mm 1.98 MeV 3.94 keV 152 mum 152 mum World eIoni - -********************************************************************************************************* -* 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.71 cm 1.28 cm 321 MeV 11 keV 3.18 cm 3.18 cm World eIoni - 2 -2.08 mum -4.42 cm 1.5 cm 492 MeV 6.02 keV 1.72 cm 4.9 cm World eIoni - 3 -4.03 mum -13 cm 2.01 cm 1.35 GeV 37.1 keV 8.61 cm 13.5 cm World eIoni - 4 -4.55 mum -14.9 cm 2.08 cm 1.54 GeV 8.46 keV 1.88 cm 15.4 cm World eIoni - 5 -5.21 mum -16.2 cm 2.12 cm 1.67 GeV 6.66 keV 1.29 cm 16.7 cm World eIoni - 6 -7.67 mum -20 cm 2.22 cm 2.05 GeV 14.6 keV 3.83 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -2.63 cm 1.27 cm 313 MeV 6.73 keV 3.1 cm 3.1 cm World eIoni + 2 169 nm -2.96 cm 1.32 cm 346 MeV 103 eV 3.32 mm 3.43 cm World eIoni + 3 4.11 mum -7.48 cm 1.74 cm 798 MeV 9.08 keV 4.54 cm 7.96 cm World eIoni + 4 4.6 mum -10 cm 1.88 cm 1.05 GeV 3.69 keV 2.53 cm 10.5 cm World eIoni + 5 7.57 mum -18.2 cm 2.17 cm 1.87 GeV 17.4 keV 8.23 cm 18.7 cm World eIoni + 6 7.47 mum -20 cm 2.22 cm 2.05 GeV 4.82 keV 1.77 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 -5.21 mum -16.2 cm 2.12 cm 1.5 keV 0 eV 0 fm 0 fm World initStep - 1 3.57 mum -16.2 cm 2.12 cm 1.37 MeV 3 keV 101 mum 101 mum World eIoni + 0 7.57 mum -18.2 cm 2.17 cm 4.35 keV 0 eV 0 fm 0 fm World initStep + 1 30.5 mum -18.3 cm 2.17 cm 6.01 MeV 4.35 keV 563 mum 563 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.55 mum -14.9 cm 2.08 cm 1.73 keV 0 eV 0 fm 0 fm World initStep - 1 5.85 mum -14.9 cm 2.08 cm 1.66 MeV 3.46 keV 125 mum 125 mum World eIoni + 0 4.6 mum -10 cm 1.88 cm 1.43 keV 0 eV 0 fm 0 fm World initStep + 1 -1.27 mum -10 cm 1.88 cm 961 keV 1.43 keV 87.7 mum 87.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.03 mum -13 cm 2.01 cm 4.66 keV 0 eV 0 fm 0 fm World initStep - 1 7.81 mum -13.1 cm 2.01 cm 7.76 MeV 9.32 keV 637 mum 637 mum World eIoni + 0 4.11 mum -7.48 cm 1.74 cm 3.11 keV 0 eV 0 fm 0 fm World initStep + 1 12.6 mum -7.51 cm 1.74 cm 3.35 MeV 3.11 keV 311 mum 311 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.08 mum -4.42 cm 1.5 cm 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 -8.07 mum -4.43 cm 1.5 cm 1.07 MeV 2.47 keV 76.6 mum 76.6 mum World eIoni + 0 169 nm -2.96 cm 1.32 cm 1.59 keV 0 eV 0 fm 0 fm World initStep + 1 -5.55 mum -2.97 cm 1.32 cm 1.14 MeV 1.59 keV 103 mum 103 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.71 cm 1.28 cm 3.45 keV 0 eV 0 fm 0 fm World initStep - 1 20.8 mum -2.75 cm 1.28 cm 4.71 MeV 6.9 keV 379 mum 379 mum World eIoni + 0 0 fm -2.63 cm 1.27 cm 1.01 keV 0 eV 0 fm 0 fm World initStep + 1 -2.36 mum -2.64 cm 1.27 cm 563 keV 1.01 keV 51.4 mum 51.4 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1145,25 +324,94 @@ 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.39 cm 1.5 cm 489 MeV 20.6 keV 4.87 cm 4.87 cm World eIoni - 2 1.69 mum -8.94 cm 1.83 cm 944 MeV 15.9 keV 4.56 cm 9.43 cm World eIoni - 3 5.04 mum -20 cm 2.22 cm 2.05 GeV 47.2 keV 11.1 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -7.12 cm 1.72 cm 762 MeV 13.9 keV 7.6 cm 7.6 cm World eIoni + 2 444 nm -20 cm 2.22 cm 2.05 GeV 28.6 keV 12.9 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.12 cm 1.72 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -685 nm -7.12 cm 1.72 cm 703 keV 1.17 keV 64.6 mum 64.6 mum World eIoni + +********************************************************************************************************* +* 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.8 cm 2 cm 1.33 GeV 27 keV 13.3 cm 13.3 cm World eIoni + 2 -1.22 mum -20 cm 2.22 cm 2.05 GeV 15 keV 7.22 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.8 cm 2 cm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 4.47 mum -12.8 cm 2 cm 769 keV 1.24 keV 70.5 mum 70.5 mum World eIoni + +********************************************************************************************************* +* 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.2 cm 1.89 cm 1.07 GeV 20.9 keV 10.7 cm 10.7 cm World eIoni + 2 -3.31 mum -20 cm 2.22 cm 2.05 GeV 21.2 keV 9.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 -10.2 cm 1.89 cm 2.61 keV 0 eV 0 fm 0 fm World initStep + 1 13.4 mum -10.3 cm 1.89 cm 2.5 MeV 2.61 keV 231 mum 231 mum World eIoni + +********************************************************************************************************* +* 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 -637 mum 2.51 mm 56.4 MeV 240 eV 2.62 mm 2.62 mm World eIoni + 2 -10.6 mum -1.8 cm 1.11 cm 230 MeV 4.53 keV 1.99 cm 2.25 cm World eIoni + 3 -23.6 mum -10.1 cm 1.89 cm 1.06 GeV 17.5 keV 8.3 cm 10.5 cm World eIoni + 4 -25.1 mum -14.4 cm 2.06 cm 1.49 GeV 9.78 keV 4.32 cm 14.9 cm World eIoni + 5 -27.8 mum -20 cm 2.22 cm 2.05 GeV 11.9 keV 5.63 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 -25.1 mum -14.4 cm 2.06 cm 1.96 keV 0 eV 0 fm 0 fm World initStep + 1 -15.5 mum -14.4 cm 2.06 cm 1.58 MeV 1.96 keV 144 mum 144 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -23.6 mum -10.1 cm 1.89 cm 2.4 keV 0 eV 0 fm 0 fm World initStep + 1 -34.5 mum -10.1 cm 1.88 cm 2.19 MeV 2.4 keV 201 mum 201 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.69 mum -8.94 cm 1.83 cm 1.02 keV 0 eV 0 fm 0 fm World initStep - 1 -1.51 mum -8.94 cm 1.83 cm 845 keV 2.04 keV 59.3 mum 59.3 mum World eIoni + 0 -10.6 mum -1.8 cm 1.11 cm 2.84 keV 0 eV 0 fm 0 fm World initStep + 1 -4.48 mum -1.82 cm 1.11 cm 2.9 MeV 2.84 keV 268 mum 268 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.39 cm 1.5 cm 1.43 keV 0 eV 0 fm 0 fm World initStep - 1 -5.77 mum -4.4 cm 1.5 cm 1.29 MeV 2.86 keV 94.7 mum 94.7 mum World eIoni + 0 0 fm -637 mum 2.51 mm 4.99 keV 0 eV 0 fm 0 fm World initStep + 1 25.5 mum -1.33 mm 2.52 mm 7.55 MeV 4.99 keV 710 mum 710 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1171,99 +419,789 @@ 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 -20 cm 2.22 cm 2.05 GeV 78.1 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.76 cm 1.7 cm 725 MeV 28.6 keV 7.24 cm 7.24 cm World eIoni - 2 6.39 mum -20 cm 2.22 cm 2.05 GeV 54.4 keV 13.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 -6.76 cm 1.7 cm 7.5 keV 0 eV 0 fm 0 fm World initStep - 1 -53.9 mum -6.89 cm 1.69 cm 16.1 MeV 11.7 keV 1.36 mm 1.36 mm World eIoni - 2 -52 mum -12.2 cm 1.69 cm 551 MeV 17.9 keV 5.35 cm 5.48 cm WorldTransportation - 3 -52 mum -12.2 cm 1.69 cm 551 MeV 0 eV 0.0111 fm 5.48 cm World eIoni - 4 -53.3 mum -14.4 cm 1.69 cm 765 MeV 8.02 keV 2.14 cm 7.62 cm World eIoni - 5 -56 mum -20 cm 1.69 cm 1.33 GeV 23.3 keV 5.63 cm 13.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -53.3 mum -14.4 cm 1.69 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 -46.2 mum -14.4 cm 1.69 cm 1.15 MeV 2.62 keV 83.5 mum 83.5 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -52 mum -12.2 cm 1.69 cm 2.04 keV 0 eV 0 fm 0 fm World initStep - 1 -39 mum -12.2 cm 1.69 cm 2.09 MeV 4.09 keV 161 mum 161 mum World eIoni - -********************************************************************************************************* -* 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.21 cm 1.2 cm 271 MeV 9.38 keV 2.67 cm 2.67 cm World eIoni - 2 -11 mum -11.6 cm 1.95 cm 1.21 GeV 39.6 keV 9.44 cm 12.1 cm World eIoni - 3 -17.9 mum -20 cm 2.22 cm 2.05 GeV 35.6 keV 8.4 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -6.38 cm 1.67 cm 688 MeV 12.2 keV 6.87 cm 6.87 cm World eIoni + 2 -893 nm -7.67 cm 1.76 cm 817 MeV 2.51 keV 1.29 cm 8.16 cm World eIoni + 3 -4.85 mum -20 cm 2.22 cm 2.05 GeV 25.3 keV 12.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 -11 mum -11.6 cm 1.95 cm 3.18 keV 0 eV 0 fm 0 fm World initStep - 1 11.5 mum -11.6 cm 1.95 cm 4.09 MeV 6.36 keV 328 mum 328 mum World eIoni + 0 -893 nm -7.67 cm 1.76 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 -2.48 mum -7.68 cm 1.76 cm 945 keV 1.41 keV 86.5 mum 86.5 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.21 cm 1.2 cm 11.1 keV 0 eV 0 fm 0 fm World initStep - 1 76.2 mum -2.39 cm 1.2 cm 22.4 MeV 10 keV 1.93 mm 1.93 mm World eIoni - 2 89.3 mum -11.8 cm 1.2 cm 963 MeV 32.6 keV 9.41 cm 9.6 cm World eIoni - 3 91.8 mum -15.1 cm 1.2 cm 1.29 GeV 13.3 keV 3.31 cm 12.9 cm World eIoni - 4 92.3 mum -20 cm 1.2 cm 1.78 GeV 20.2 keV 4.89 cm 17.8 cm OutOfWorldTransportation + 0 0 fm -6.38 cm 1.67 cm 2.67 keV 0 eV 0 fm 0 fm World initStep + 1 13.8 mum -6.41 cm 1.67 cm 2.61 MeV 2.67 keV 241 mum 241 mum World eIoni + +********************************************************************************************************* +* 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.38 mm 7.83 mm 124 MeV 1.49 keV 1.14 cm 1.14 cm World eIoni + 2 -11.9 mum -9.83 cm 1.87 cm 1.03 GeV 18.3 keV 9.19 cm 10.3 cm World eIoni + 3 -17.2 mum -15.6 cm 2.1 cm 1.61 GeV 11.2 keV 5.77 cm 16.1 cm World eIoni + 4 -18.4 mum -20 cm 2.22 cm 2.05 GeV 8.16 keV 4.41 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 -17.2 mum -15.6 cm 2.1 cm 5.28 keV 0 eV 0 fm 0 fm World initStep + 1 -47.2 mum -15.7 cm 2.1 cm 8.41 MeV 5.28 keV 791 mum 791 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -11.9 mum -9.83 cm 1.87 cm 4.55 keV 0 eV 0 fm 0 fm World initStep + 1 13.2 mum -9.89 cm 1.87 cm 6.48 MeV 4.55 keV 607 mum 607 mum World eIoni + +********************************************************************************************************* +* 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 mm 7.83 mm 4.94 keV 0 eV 0 fm 0 fm World initStep + 1 22.1 mum -8.06 mm 7.84 mm 7.42 MeV 4.94 keV 697 mum 697 mum World eIoni + +********************************************************************************************************* +* 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.6 cm 1.91 cm 1.11 GeV 21.4 keV 11.1 cm 11.1 cm World eIoni + 2 393 nm -17.1 cm 2.14 cm 1.76 GeV 14 keV 6.5 cm 17.6 cm World eIoni + 3 -371 nm -20 cm 2.22 cm 2.05 GeV 5.99 keV 2.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 393 nm -17.1 cm 2.14 cm 4.82 keV 0 eV 0 fm 0 fm World initStep + 1 20.5 mum -17.1 cm 2.14 cm 5.31 MeV 2.32 keV 500 mum 500 mum World eIoni + 2 37.3 mum -20 cm 2.14 cm 292 MeV 3.87 keV 2.87 cm 2.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 -10.6 cm 1.91 cm 1.32 keV 0 eV 0 fm 0 fm World initStep + 1 -1.42 mum -10.6 cm 1.91 cm 854 keV 1.32 keV 78.2 mum 78.2 mum World eIoni + +********************************************************************************************************* +* 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.26 mm 3.49 mm 62.6 MeV 738 eV 3.78 mm 3.78 mm World eIoni + 2 6.46 mum -6 cm 1.64 cm 650 MeV 11.4 keV 6.1 cm 6.48 cm World eIoni + 3 6.33 mum -14.7 cm 2.07 cm 1.52 GeV 18.2 keV 8.71 cm 15.2 cm World eIoni + 4 5.09 mum -20 cm 2.22 cm 2.05 GeV 10.1 keV 5.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.33 mum -14.7 cm 2.07 cm 2.27 keV 0 eV 0 fm 0 fm World initStep + 1 15.8 mum -14.7 cm 2.07 cm 2 MeV 2.27 keV 184 mum 184 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 6.46 mum -6 cm 1.64 cm 1.39 keV 0 eV 0 fm 0 fm World initStep + 1 11.1 mum -6 cm 1.64 cm 923 keV 1.39 keV 84.5 mum 84.5 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.26 mm 3.49 mm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 -3.84 mum -1.32 mm 3.49 mm 732 keV 1.21 keV 67.8 mum 67.8 mum World eIoni + +********************************************************************************************************* +* 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.14 cm 1.65 cm 664 MeV 13.1 keV 6.62 cm 6.62 cm World eIoni + 2 7.15 mum -20 cm 2.22 cm 2.05 GeV 29.9 keV 13.9 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.14 cm 1.65 cm 5.07 keV 0 eV 0 fm 0 fm World initStep + 1 -25.8 mum -6.21 cm 1.65 cm 7.79 MeV 5.07 keV 732 mum 732 mum World eIoni + +********************************************************************************************************* +* 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.03 cm 1.16 cm 253 MeV 5.91 keV 2.49 cm 2.49 cm World eIoni + 2 -3.34 mum -6.58 cm 1.68 cm 708 MeV 10.7 keV 4.58 cm 7.07 cm World eIoni + 3 -8.91 mum -15.7 cm 2.1 cm 1.62 GeV 19 keV 9.11 cm 16.2 cm World eIoni + 4 -11 mum -20 cm 2.22 cm 2.05 GeV 8.28 keV 4.32 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.91 mum -15.7 cm 2.1 cm 2.71 keV 0 eV 0 fm 0 fm World initStep + 1 -3.06 mum -15.7 cm 2.1 cm 2.67 MeV 2.71 keV 247 mum 247 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -3.34 mum -6.58 cm 1.68 cm 2.79 keV 0 eV 0 fm 0 fm World initStep + 1 6.22 mum -6.6 cm 1.68 cm 2.81 MeV 2.79 keV 260 mum 260 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.03 cm 1.16 cm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 5.11 mum -2.04 cm 1.16 cm 765 keV 1.24 keV 70.2 mum 70.2 mum World eIoni + +********************************************************************************************************* +* 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 7.15 keV 3.72 cm 3.72 cm World eIoni + 2 4.12 mum -18.5 cm 2.18 cm 1.9 GeV 32.1 keV 15.3 cm 19 cm World eIoni + 3 4.49 mum -20 cm 2.22 cm 2.05 GeV 4.18 keV 1.49 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.12 mum -18.5 cm 2.18 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 480 nm -18.5 cm 2.18 cm 706 keV 1.17 keV 64.7 mum 64.7 mum World eIoni + +********************************************************************************************************* +* 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.22 keV 0 eV 0 fm 0 fm World initStep + 1 -4.03 mum -3.26 cm 1.36 cm 756 keV 1.22 keV 68.9 mum 68.9 mum World eIoni + +********************************************************************************************************* +* 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.74 mm 4.09 mm 67.4 MeV 840 eV 4.55 mm 4.55 mm World eIoni + 2 -7.17 mum -6.62 cm 1.69 cm 712 MeV 12.3 keV 6.66 cm 7.11 cm World eIoni + 3 -12 mum -20 cm 2.22 cm 2.05 GeV 27.9 keV 13.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 -7.17 mum -6.62 cm 1.69 cm 1.59 keV 0 eV 0 fm 0 fm World initStep + 1 -3.88 mum -6.63 cm 1.69 cm 1.13 MeV 1.59 keV 103 mum 103 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.74 mm 4.09 mm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 4.38 mum -1.8 mm 4.09 mm 675 keV 1.11 keV 60.1 mum 60.1 mum World eIoni + +********************************************************************************************************* +* 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.65 cm 1.41 cm 415 MeV 9.05 keV 4.12 cm 4.12 cm World eIoni + 2 -2.38 mum -8.84 cm 1.82 cm 934 MeV 11.1 keV 5.2 cm 9.33 cm World eIoni + 3 8.21 mum -20 cm 2.22 cm 2.05 GeV 23.7 keV 11.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 -2.38 mum -8.84 cm 1.82 cm 26.4 keV 0 eV 0 fm 0 fm World initStep + 1 -152 mum -9.4 cm 1.82 cm 58.8 MeV 4.47 keV 5.69 mm 5.69 mm World eIoni + 2 -196 mum -19.3 cm 1.82 cm 1.05 GeV 19.6 keV 9.92 cm 10.5 cm World eIoni + 3 -196 mum -20 cm 1.82 cm 1.12 GeV 1.07 keV 6.78 mm 11.2 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -196 mum -19.3 cm 1.82 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 -201 mum -19.3 cm 1.82 cm 751 keV 1.22 keV 68.8 mum 68.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.65 cm 1.41 cm 3.6 keV 0 eV 0 fm 0 fm World initStep + 1 9.23 mum -3.69 cm 1.41 cm 4.04 MeV 2.39 keV 376 mum 376 mum World eIoni + 2 15.7 mum -5.53 cm 1.42 cm 189 MeV 3.18 keV 1.85 cm 1.89 cm World eIoni + 3 27.4 mum -19.3 cm 1.42 cm 1.56 GeV 28.2 keV 13.7 cm 15.6 cm World eIoni + 4 27.5 mum -20 cm 1.42 cm 1.64 GeV 1.25 keV 7.44 mm 16.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 27.4 mum -19.3 cm 1.42 cm 2.51 keV 0 eV 0 fm 0 fm World initStep + 1 33.9 mum -19.3 cm 1.42 cm 2.35 MeV 2.51 keV 216 mum 216 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 91.8 mum -15.1 cm 1.2 cm 4.25 keV 0 eV 0 fm 0 fm World initStep - 1 113 mum -15.1 cm 1.2 cm 3.59 MeV 4.37 keV 300 mum 300 mum World eIoni - 2 165 mum -20 cm 1.2 cm 489 MeV 12.8 keV 4.86 cm 4.89 cm OutOfWorldTransportation + 0 15.7 mum -5.53 cm 1.42 cm 1.73 keV 0 eV 0 fm 0 fm World initStep + 1 8.3 mum -5.55 cm 1.42 cm 1.3 MeV 1.73 keV 119 mum 119 mum World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 113 mum -15.1 cm 1.2 cm 16 keV 0 eV 0 fm 0 fm World initStep - 1 1.86 mum -15.4 cm 1.21 cm 29.9 MeV 9.23 keV 2.64 mm 2.64 mm World eIoni - 2 -14.3 mum -20 cm 1.22 cm 490 MeV 16.5 keV 4.61 cm 4.87 cm OutOfWorldTransportation + 0 0 fm 0 fm 0 fm 50 MeV 0 eV 0 fm 0 fm World initStep + 1 0 fm -14.1 cm 2.05 cm 1.46 GeV 28.3 keV 14.6 cm 14.6 cm World eIoni + 2 -3.05 mum -20 cm 2.22 cm 2.05 GeV 12.6 keV 5.94 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.1 cm 2.05 cm 9.5 keV 0 eV 0 fm 0 fm World initStep + 1 59.7 mum -14.3 cm 2.05 cm 24.1 MeV 9.5 keV 2.28 mm 2.28 mm World eIoni + +********************************************************************************************************* +* 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.6 cm 1.91 cm 1.11 GeV 21.1 keV 11 cm 11 cm World eIoni + 2 -2.17 mum -20 cm 2.22 cm 2.05 GeV 20.5 keV 9.45 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.6 cm 1.91 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 5.51 mum -10.6 cm 1.91 cm 740 keV 1.21 keV 67.8 mum 67.8 mum World eIoni + +********************************************************************************************************* +* 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 -37.7 mum 616 mum 50.4 MeV 37.6 eV 618 mum 618 mum World eIoni + 2 -2.86 mum -11.7 cm 1.96 cm 1.22 GeV 23.4 keV 12.1 cm 12.2 cm World eIoni + 3 -2.84 mum -11.8 cm 1.96 cm 1.23 GeV 142 eV 1.11 mm 12.3 cm World eIoni + 4 -3.88 mum -17.3 cm 2.15 cm 1.78 GeV 11.6 keV 5.49 cm 17.8 cm World eIoni + 5 -4.02 mum -20 cm 2.22 cm 2.05 GeV 6.74 keV 2.69 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.88 mum -17.3 cm 2.15 cm 1.52 keV 0 eV 0 fm 0 fm World initStep + 1 -7.27 mum -17.3 cm 2.15 cm 1.06 MeV 1.52 keV 96.9 mum 96.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.84 mum -11.8 cm 1.96 cm 2.04 keV 0 eV 0 fm 0 fm World initStep + 1 7.23 mum -11.8 cm 1.96 cm 1.68 MeV 2.04 keV 154 mum 154 mum World eIoni + +********************************************************************************************************* +* 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.7 cm 1.96 cm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 -6.56 mum -11.7 cm 1.96 cm 664 keV 1.12 keV 60.9 mum 60.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -37.7 mum 616 mum 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 1.52 mum -92.7 mum 617 mum 907 keV 1.08 keV 57.1 mum 57.1 mum World eIoni + +********************************************************************************************************* +* 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.49 cm 1.6 cm 599 MeV 11.8 keV 5.97 cm 5.97 cm World eIoni + 2 3.02 mum -11 cm 1.93 cm 1.15 GeV 12.2 keV 5.49 cm 11.5 cm World eIoni + 3 3.46 mum -14.4 cm 2.06 cm 1.49 GeV 6.59 keV 3.4 cm 14.9 cm World eIoni + 4 2.95 mum -20 cm 2.22 cm 2.05 GeV 11.8 keV 5.63 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.46 mum -14.4 cm 2.06 cm 1.47 keV 0 eV 0 fm 0 fm World initStep + 1 9.29 mum -14.4 cm 2.06 cm 1 MeV 1.47 keV 91.7 mum 91.7 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 3.02 mum -11 cm 1.93 cm 1.96 keV 0 eV 0 fm 0 fm World initStep + 1 9.4 mum -11 cm 1.93 cm 1.57 MeV 1.96 keV 144 mum 144 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.49 cm 1.6 cm 2.7 keV 0 eV 0 fm 0 fm World initStep + 1 -12.4 mum -5.51 cm 1.6 cm 2.67 MeV 2.7 keV 246 mum 246 mum World eIoni + +********************************************************************************************************* +* 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.2 cm 1.57 cm 570 MeV 10.6 keV 5.68 cm 5.68 cm World eIoni + 2 -2.56 mum -9 cm 1.83 cm 950 MeV 6.6 keV 3.81 cm 9.49 cm World eIoni + 3 2.24 mum -19.3 cm 2.2 cm 1.98 GeV 22 keV 10.3 cm 19.8 cm World eIoni + 4 2.58 mum -20 cm 2.22 cm 2.05 GeV 2.82 keV 6.9 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 2.24 mum -19.3 cm 2.2 cm 1.86 keV 0 eV 0 fm 0 fm World initStep + 1 -4.87 mum -19.3 cm 2.2 cm 1.45 MeV 1.86 keV 133 mum 133 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -2.56 mum -9 cm 1.83 cm 13.2 keV 0 eV 0 fm 0 fm World initStep + 1 -108 mum -9.41 cm 1.83 cm 43.7 MeV 13.2 keV 4.15 mm 4.15 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.2 cm 1.57 cm 4.87 keV 0 eV 0 fm 0 fm World initStep + 1 19.8 mum -5.26 cm 1.57 cm 7.27 MeV 4.87 keV 682 mum 682 mum World eIoni + +********************************************************************************************************* +* 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.8 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.91 cm 1.71 cm 741 MeV 14.4 keV 7.39 cm 7.39 cm World eIoni + 2 -200 nm -7.47 cm 1.74 cm 797 MeV 1.13 keV 5.7 mm 7.96 cm World eIoni + 3 -595 nm -11.5 cm 1.95 cm 1.2 GeV 10.2 keV 4.03 cm 12 cm World eIoni + 4 537 nm -13.4 cm 2.02 cm 1.39 GeV 4.19 keV 1.9 cm 13.9 cm World eIoni + 5 4.48 mum -18.3 cm 2.18 cm 1.88 GeV 10.1 keV 4.93 cm 18.8 cm World eIoni + 6 6.39 mum -20 cm 2.22 cm 2.05 GeV 4.12 keV 1.68 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 4.48 mum -18.3 cm 2.18 cm 9.21 keV 0 eV 0 fm 0 fm World initStep + 1 -56.8 mum -18.5 cm 2.18 cm 22.8 MeV 9.21 keV 2.16 mm 2.16 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 537 nm -13.4 cm 2.02 cm 2.82 keV 0 eV 0 fm 0 fm World initStep + 1 -14 mum -13.4 cm 2.02 cm 2.86 MeV 2.82 keV 264 mum 264 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -595 nm -11.5 cm 1.95 cm 22.5 keV 0 eV 0 fm 0 fm World initStep + 1 -87.2 mum -12.6 cm 1.94 cm 113 MeV 22.5 keV 1.11 cm 1.11 cm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -200 nm -7.47 cm 1.74 cm 1.81 keV 0 eV 0 fm 0 fm World initStep + 1 -3.75 mum -7.49 cm 1.74 cm 1.39 MeV 1.81 keV 127 mum 127 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -6.91 cm 1.71 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 4.31 mum -6.91 cm 1.71 cm 777 keV 1.25 keV 71.2 mum 71.2 mum World eIoni + +********************************************************************************************************* +* 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.7 cm 1.09 cm 220 MeV 4.77 keV 2.15 cm 2.15 cm World eIoni + 2 4.87 mum -7.81 cm 1.76 cm 831 MeV 13.5 keV 6.15 cm 8.3 cm World eIoni + 3 5.23 mum -10.1 cm 1.89 cm 1.06 GeV 5.79 keV 2.33 cm 10.6 cm World eIoni + 4 6.59 mum -14 cm 2.04 cm 1.45 GeV 6.69 keV 3.84 cm 14.5 cm World eIoni + 5 8.65 mum -20 cm 2.22 cm 2.05 GeV 13.2 keV 6.03 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.59 mum -14 cm 2.04 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 4.45 mum -14 cm 2.04 cm 597 keV 1.05 keV 54.9 mum 54.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.23 mum -10.1 cm 1.89 cm 11 keV 0 eV 0 fm 0 fm World initStep + 1 -16.5 mum -10.4 cm 1.88 cm 30.1 MeV 5.87 keV 2.86 mm 2.86 mm World eIoni + 2 -23.7 mum -20 cm 1.88 cm 988 MeV 17.9 keV 9.58 cm 9.87 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.87 mum -7.81 cm 1.76 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 7.91 mum -7.81 cm 1.76 cm 585 keV 1.03 keV 53.6 mum 53.6 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.7 cm 1.09 cm 1.33 keV 0 eV 0 fm 0 fm World initStep + 1 -6.12 mum -1.71 cm 1.09 cm 865 keV 1.33 keV 78.9 mum 78.9 mum World eIoni + +********************************************************************************************************* +* 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.5 cm 1.91 cm 1.1 GeV 20.4 keV 11 cm 11 cm World eIoni + 2 -1.3 mum -16.9 cm 2.14 cm 1.74 GeV 13.5 keV 6.4 cm 17.4 cm World eIoni + 3 -1.34 mum -20 cm 2.22 cm 2.05 GeV 7.58 keV 3.11 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.3 mum -16.9 cm 2.14 cm 1.02 keV 0 eV 0 fm 0 fm World initStep + 1 -4.98 mum -16.9 cm 2.14 cm 574 keV 1.02 keV 52.8 mum 52.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -10.5 cm 1.91 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 4.19 mum -10.5 cm 1.91 cm 644 keV 1.1 keV 59 mum 59 mum World eIoni + +********************************************************************************************************* +* 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.4 cm 1.99 cm 1.29 GeV 24.4 keV 12.9 cm 12.9 cm World eIoni + 2 -936 nm -17.8 cm 2.16 cm 1.83 GeV 11.9 keV 5.39 cm 18.3 cm World eIoni + 3 -1.31 mum -20 cm 2.22 cm 2.05 GeV 6.49 keV 2.24 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 -936 nm -17.8 cm 2.16 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 -132 nm -17.8 cm 2.16 cm 580 keV 1.03 keV 53.2 mum 53.2 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -12.4 cm 1.99 cm 1.3 keV 0 eV 0 fm 0 fm World initStep + 1 4.4 mum -12.4 cm 1.99 cm 826 keV 1.3 keV 75.7 mum 75.7 mum World eIoni + +********************************************************************************************************* +* 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.2 cm 2.17 cm 1.87 GeV 35.5 keV 18.7 cm 18.7 cm World eIoni + 2 207 nm -20 cm 2.22 cm 2.05 GeV 3.99 keV 1.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 -18.2 cm 2.17 cm 1.48 keV 0 eV 0 fm 0 fm World initStep + 1 -4.04 mum -18.2 cm 2.17 cm 1.02 MeV 1.48 keV 93.1 mum 93.1 mum World eIoni + +********************************************************************************************************* +* 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.6 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 -17.7 cm 2.16 cm 1.82 GeV 33.8 keV 18.2 cm 18.2 cm World eIoni + 2 -178 nm -19.2 cm 2.2 cm 1.97 GeV 2.9 keV 1.54 cm 19.7 cm World eIoni + 3 -310 nm -20 cm 2.22 cm 2.05 GeV 3.46 keV 7.81 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 -178 nm -19.2 cm 2.2 cm 6.51 keV 0 eV 0 fm 0 fm World initStep + 1 5.85 mum -19.3 cm 2.21 cm 12.2 MeV 6.51 keV 1.15 mm 1.15 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -17.7 cm 2.16 cm 1.59 keV 0 eV 0 fm 0 fm World initStep + 1 4.12 mum -17.7 cm 2.16 cm 1.13 MeV 1.59 keV 103 mum 103 mum World eIoni + +********************************************************************************************************* +* 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.91 cm 1.77 cm 841 MeV 17 keV 8.4 cm 8.4 cm World eIoni + 2 1.03 mum -9.71 cm 1.87 cm 1.02 GeV 4.6 keV 1.8 cm 10.2 cm World eIoni + 3 1.11 mum -9.96 cm 1.88 cm 1.05 GeV 144 eV 2.53 mm 10.5 cm World eIoni + 4 1.11 mum -10.4 cm 1.9 cm 1.09 GeV 1.06 keV 3.91 mm 10.8 cm World eIoni + 5 2.55 mum -19 cm 2.2 cm 1.95 GeV 18.2 keV 8.69 cm 19.5 cm World eIoni + 6 2.44 mum -20 cm 2.22 cm 2.05 GeV 1.35 keV 9.66 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 2.55 mum -19 cm 2.2 cm 2.47 keV 0 eV 0 fm 0 fm World initStep + 1 14.5 mum -19.1 cm 2.2 cm 2.29 MeV 2.47 keV 211 mum 211 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.11 mum -10.4 cm 1.9 cm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 -2.39 mum -10.4 cm 1.9 cm 710 keV 1.17 keV 64.9 mum 64.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.11 mum -9.96 cm 1.88 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 5.64 mum -9.96 cm 1.88 cm 583 keV 1.03 keV 53.5 mum 53.5 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.03 mum -9.71 cm 1.87 cm 2.09 keV 0 eV 0 fm 0 fm World initStep + 1 5.36 mum -9.72 cm 1.87 cm 1.75 MeV 2.09 keV 160 mum 160 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.91 cm 1.77 cm 2.76 keV 0 eV 0 fm 0 fm World initStep + 1 -14.4 mum -7.94 cm 1.77 cm 2.76 MeV 2.76 keV 255 mum 255 mum World eIoni + +********************************************************************************************************* +* 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.5 cm 2.06 cm 1.5 GeV 29.1 keV 15 cm 15 cm World eIoni + 2 -1.18 mum -20 cm 2.22 cm 2.05 GeV 11.7 keV 5.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 -14.5 cm 2.06 cm 1.53 keV 0 eV 0 fm 0 fm World initStep + 1 6.97 mum -14.5 cm 2.06 cm 1.07 MeV 1.53 keV 97.7 mum 97.7 mum World eIoni + +********************************************************************************************************* +* 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.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 -7.06 cm 1.72 cm 756 MeV 13.7 keV 7.55 cm 7.55 cm World eIoni + 2 6.78 mum -20 cm 2.22 cm 2.05 GeV 28.2 keV 12.9 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.06 cm 1.72 cm 4.92 keV 0 eV 0 fm 0 fm World initStep + 1 -18.8 mum -7.09 cm 1.72 cm 3.1 MeV 1.12 keV 295 mum 295 mum World eIoni + 2 -45.5 mum -9.92 cm 1.72 cm 286 MeV 3.27 keV 2.83 cm 2.86 cm World eIoni + 3 -46.5 mum -10.8 cm 1.72 cm 370 MeV 3.05 keV 8.38 mm 3.7 cm World eIoni + 4 -42.7 mum -12.8 cm 1.72 cm 572 MeV 4.01 keV 2.02 cm 5.72 cm World eIoni + 5 -38.3 mum -19.6 cm 1.72 cm 1.25 GeV 13.9 keV 6.8 cm 12.5 cm World eIoni + 6 -38 mum -20 cm 1.72 cm 1.29 GeV 1.57 keV 4.24 mm 12.9 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -38.3 mum -19.6 cm 1.72 cm 5.54 keV 0 eV 0 fm 0 fm World initStep + 1 -64.1 mum -19.7 cm 1.71 cm 9.18 MeV 5.54 keV 863 mum 863 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -42.7 mum -12.8 cm 1.72 cm 2.38 keV 0 eV 0 fm 0 fm World initStep + 1 -34.9 mum -12.8 cm 1.71 cm 2.16 MeV 2.38 keV 199 mum 199 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 89.3 mum -11.8 cm 1.2 cm 2.53 keV 0 eV 0 fm 0 fm World initStep - 1 72.6 mum -11.8 cm 1.2 cm 2.85 MeV 5.05 keV 224 mum 224 mum World eIoni + 0 -46.5 mum -10.8 cm 1.72 cm 15.9 keV 0 eV 0 fm 0 fm World initStep + 1 -140 mum -11.1 cm 1.72 cm 33.7 MeV 6.91 keV 3.22 mm 3.22 mm World eIoni + 2 -162 mum -14.1 cm 1.72 cm 333 MeV 5.58 keV 3 cm 3.32 cm World eIoni + 3 -169 mum -15.6 cm 1.72 cm 482 MeV 3.31 keV 1.49 cm 4.8 cm World eIoni + 4 -179 mum -20 cm 1.72 cm 926 MeV 12.3 keV 4.44 cm 9.24 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -169 mum -15.6 cm 1.72 cm 3.26 keV 0 eV 0 fm 0 fm World initStep + 1 -178 mum -15.6 cm 1.72 cm 3.64 MeV 3.26 keV 338 mum 338 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -162 mum -14.1 cm 1.72 cm 9.27 keV 0 eV 0 fm 0 fm World initStep + 1 -103 mum -14.3 cm 1.72 cm 23.1 MeV 9.27 keV 2.18 mm 2.18 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -45.5 mum -9.92 cm 1.72 cm 1.27 keV 0 eV 0 fm 0 fm World initStep + 1 -49 mum -9.93 cm 1.71 cm 803 keV 1.27 keV 73.4 mum 73.4 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1271,85 +1209,43 @@ 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 -20 cm 2.22 cm 2.05 GeV 80.4 keV 20.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -5.51 cm 1.6 cm 601 MeV 11.1 keV 6 cm 6 cm World eIoni + 2 4.79 mum -13.4 cm 2.02 cm 1.39 GeV 16.6 keV 7.89 cm 13.9 cm World eIoni + 3 5.15 mum -15.7 cm 2.1 cm 1.62 GeV 5.56 keV 2.34 cm 16.2 cm World eIoni + 4 4.93 mum -18.7 cm 2.19 cm 1.92 GeV 4.18 keV 2.93 cm 19.2 cm World eIoni + 5 5.13 mum -20 cm 2.22 cm 2.05 GeV 3.4 keV 1.34 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* 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.85 mm 8.03 mm 128 MeV 4.16 keV 1.19 cm 1.19 cm World eIoni - 2 13.4 mum -17.6 cm 2.16 cm 1.81 GeV 68.9 keV 16.9 cm 18.1 cm World eIoni - 3 14 mum -20 cm 2.22 cm 2.05 GeV 10.5 keV 2.37 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 13.4 mum -17.6 cm 2.16 cm 1.36 keV 0 eV 0 fm 0 fm World initStep - 1 14.1 mum -17.6 cm 2.16 cm 1.21 MeV 2.73 keV 88.5 mum 88.5 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.85 mm 8.03 mm 3.15 keV 0 eV 0 fm 0 fm World initStep - 1 -19.8 mum -8.16 mm 8.04 mm 4.03 MeV 6.31 keV 323 mum 323 mum World eIoni - -********************************************************************************************************* -* 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.1 cm 2.05 cm 1.46 GeV 57.5 keV 14.6 cm 14.6 cm World eIoni - 2 1.12 mum -20 cm 2.22 cm 2.05 GeV 25.2 keV 5.94 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.1 cm 2.05 cm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 -6.19 mum -14.1 cm 2.05 cm 906 keV 2.15 keV 63.9 mum 63.9 mum World eIoni - -********************************************************************************************************* -* 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.5 cm 1.95 cm 1.2 GeV 48.4 keV 12 cm 12 cm World eIoni - 2 -4.92 Ang -11.5 cm 1.95 cm 1.2 GeV 0 eV 16.4 mum 12 cm World eIoni - 3 300 nm -16.8 cm 2.13 cm 1.73 GeV 22.7 keV 5.28 cm 17.3 cm World eIoni - 4 321 nm -20 cm 2.22 cm 2.05 GeV 13 keV 3.24 cm 20.5 cm OutOfWorldTransportation + 0 4.93 mum -18.7 cm 2.19 cm 3.68 keV 0 eV 0 fm 0 fm World initStep + 1 -9.23 mum -18.7 cm 2.18 cm 4.49 MeV 3.68 keV 418 mum 418 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 300 nm -16.8 cm 2.13 cm 1.33 keV 0 eV 0 fm 0 fm World initStep - 1 1.8 mum -16.8 cm 2.13 cm 1.18 MeV 2.66 keV 85.5 mum 85.5 mum World eIoni + 0 5.15 mum -15.7 cm 2.1 cm 2.72 keV 0 eV 0 fm 0 fm World initStep + 1 14.9 mum -15.8 cm 2.1 cm 2.7 MeV 2.72 keV 249 mum 249 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.92 Ang -11.5 cm 1.95 cm 3.61 keV 0 eV 0 fm 0 fm World initStep - 1 -19.8 mum -11.5 cm 1.95 cm 5.07 MeV 7.22 keV 410 mum 410 mum World eIoni + 0 4.79 mum -13.4 cm 2.02 cm 1.16 keV 0 eV 0 fm 0 fm World initStep + 1 10 mum -13.4 cm 2.02 cm 694 keV 1.16 keV 63.6 mum 63.6 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -11.5 cm 1.95 cm 1.47 keV 0 eV 0 fm 0 fm World initStep - 1 8.21 mum -11.5 cm 1.95 cm 1.34 MeV 2.94 keV 98.5 mum 98.5 mum World eIoni + 0 0 fm -5.51 cm 1.6 cm 5.07 keV 0 eV 0 fm 0 fm World initStep + 1 -23.3 mum -5.59 cm 1.6 cm 7.79 MeV 5.07 keV 731 mum 731 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1357,25 +1253,93 @@ 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 -2.95 cm 1.32 cm 345 MeV 13.7 keV 3.42 cm 3.42 cm World eIoni - 2 3.75 mum -15.7 cm 2.1 cm 1.62 GeV 53.5 keV 12.8 cm 16.2 cm World eIoni - 3 5.83 mum -20 cm 2.22 cm 2.05 GeV 20.6 keV 4.28 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -3.39 cm 1.38 cm 389 MeV 8.14 keV 3.86 cm 3.86 cm World eIoni + 2 4.74 mum -20 cm 2.22 cm 2.05 GeV 33.9 keV 16.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 -3.39 cm 1.38 cm 1.18 keV 0 eV 0 fm 0 fm World initStep + 1 -4.38 mum -3.39 cm 1.38 cm 713 keV 1.18 keV 65.5 mum 65.5 mum World eIoni + +********************************************************************************************************* +* 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.16 cm 1.57 cm 566 MeV 10.9 keV 5.64 cm 5.64 cm World eIoni + 2 -3.51 mum -20 cm 2.22 cm 2.05 GeV 32.5 keV 14.9 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.16 cm 1.57 cm 7.41 keV 0 eV 0 fm 0 fm World initStep + 1 14.8 mum -5.3 cm 1.57 cm 15.4 MeV 7.41 keV 1.45 mm 1.45 mm World eIoni + +********************************************************************************************************* +* 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.81 cm 1.54 cm 531 MeV 10.7 keV 5.3 cm 5.3 cm World eIoni + 2 5.02 mum -20 cm 2.22 cm 2.05 GeV 33.1 keV 15.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 -4.81 cm 1.54 cm 2.21 keV 0 eV 0 fm 0 fm World initStep + 1 -8.75 mum -4.83 cm 1.54 cm 1.92 MeV 2.21 keV 176 mum 176 mum World eIoni + +********************************************************************************************************* +* 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.3 cm 2.18 cm 1.88 GeV 37 keV 18.8 cm 18.8 cm World eIoni + 2 -270 nm -20 cm 2.22 cm 2.05 GeV 4.16 keV 1.69 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 -18.3 cm 2.18 cm 2.37 keV 0 eV 0 fm 0 fm World initStep + 1 7.71 mum -18.3 cm 2.18 cm 2.14 MeV 2.37 keV 197 mum 197 mum World eIoni + +********************************************************************************************************* +* 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.1 cm 2.08 cm 1.56 GeV 31.2 keV 15.6 cm 15.6 cm World eIoni + 2 738 nm -17 cm 2.14 cm 1.75 GeV 5.53 keV 1.89 cm 17.5 cm World eIoni + 3 2.4 mum -20 cm 2.22 cm 2.05 GeV 6.15 keV 2.99 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.75 mum -15.7 cm 2.1 cm 4.48 keV 0 eV 0 fm 0 fm World initStep - 1 -31.8 mum -15.8 cm 2.1 cm 7.25 MeV 8.95 keV 594 mum 594 mum World eIoni + 0 738 nm -17 cm 2.14 cm 2.05 keV 0 eV 0 fm 0 fm World initStep + 1 -8.41 mum -17 cm 2.14 cm 1.7 MeV 2.05 keV 156 mum 156 mum World eIoni ********************************************************************************************************* * 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 cm 1.32 cm 2.1 keV 0 eV 0 fm 0 fm World initStep - 1 -7.04 mum -2.97 cm 1.32 cm 2.18 MeV 4.2 keV 168 mum 168 mum World eIoni + 0 0 fm -15.1 cm 2.08 cm 4.47 keV 0 eV 0 fm 0 fm World initStep + 1 -24.1 mum -15.2 cm 2.08 cm 6.3 MeV 4.47 keV 590 mum 590 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1383,16 +1347,16 @@ 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.4 cm 1.74 cm 790 MeV 29.7 keV 7.89 cm 7.89 cm World eIoni - 2 4.12 mum -20 cm 2.22 cm 2.05 GeV 53.8 keV 12.6 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -16.4 cm 2.12 cm 1.69 GeV 31.1 keV 16.9 cm 16.9 cm World eIoni + 2 -2.73 mum -20 cm 2.22 cm 2.05 GeV 6.88 keV 3.65 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.4 cm 1.74 cm 3.38 keV 0 eV 0 fm 0 fm World initStep - 1 -18.3 mum -7.44 cm 1.74 cm 4.54 MeV 6.75 keV 365 mum 365 mum World eIoni + 0 0 fm -16.4 cm 2.12 cm 20.4 keV 0 eV 0 fm 0 fm World initStep + 1 142 mum -17.3 cm 2.12 cm 93.9 MeV 20.4 keV 9.17 mm 9.17 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1400,24 +1364,26 @@ 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 -20 cm 2.22 cm 2.05 GeV 81.2 keV 20.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -13.4 cm 2.02 cm 1.39 GeV 27.4 keV 13.8 cm 13.8 cm World eIoni + 2 81.4 nm -14 cm 2.05 cm 1.45 GeV 2.45 keV 6.92 mm 14.5 cm World eIoni + 3 549 nm -20 cm 2.22 cm 2.05 GeV 12.5 keV 5.96 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* 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.69 cm 1.76 cm 819 MeV 31.9 keV 8.18 cm 8.18 cm World eIoni - 2 -3.76 mum -20 cm 2.22 cm 2.05 GeV 53 keV 12.3 cm 20.5 cm OutOfWorldTransportation + 0 81.4 nm -14 cm 2.05 cm 1.15 keV 0 eV 0 fm 0 fm World initStep + 1 552 nm -14.1 cm 2.05 cm 685 keV 1.15 keV 62.7 mum 62.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.69 cm 1.76 cm 1.75 keV 0 eV 0 fm 0 fm World initStep - 1 10.6 mum -7.7 cm 1.76 cm 1.69 MeV 3.5 keV 128 mum 128 mum World eIoni + 0 0 fm -13.4 cm 2.02 cm 9.97 keV 0 eV 0 fm 0 fm World initStep + 1 -6.39 mum -13.4 cm 2.02 cm 7.88 MeV 2.98 keV 759 mum 759 mum World eIoni + 2 -12.5 mum -20 cm 2.02 cm 665 MeV 10.7 keV 6.57 cm 6.65 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1425,16 +1391,25 @@ 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 -18.8 cm 2.19 cm 1.93 GeV 73.7 keV 19.3 cm 19.3 cm World eIoni - 2 -119 nm -20 cm 2.22 cm 2.05 GeV 4.66 keV 1.23 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -3.9 cm 1.44 cm 440 MeV 9.1 keV 4.38 cm 4.38 cm World eIoni + 2 -4.4 mum -16.9 cm 2.14 cm 1.74 GeV 28.3 keV 13.1 cm 17.4 cm World eIoni + 3 -4.36 mum -20 cm 2.22 cm 2.05 GeV 3.27 keV 3.07 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.4 mum -16.9 cm 2.14 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 -9.81 mum -16.9 cm 2.14 cm 743 keV 1.21 keV 68 mum 68 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -18.8 cm 2.19 cm 1.95 keV 0 eV 0 fm 0 fm World initStep - 1 5.98 mum -18.8 cm 2.19 cm 1.96 MeV 3.9 keV 149 mum 149 mum World eIoni + 0 0 fm -3.9 cm 1.44 cm 1 keV 0 eV 0 fm 0 fm World initStep + 1 4.4 mum -3.91 cm 1.44 cm 554 keV 1 keV 50.9 mum 50.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1442,168 +1417,201 @@ 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.15 cm 9.36 mm 165 MeV 6.11 keV 1.57 cm 1.57 cm World eIoni - 2 2.62 mum -4.25 cm 1.48 cm 475 MeV 13.4 keV 3.15 cm 4.73 cm World eIoni - 3 -2.29 mum -9.09 cm 1.84 cm 959 MeV 21 keV 4.85 cm 9.58 cm World eIoni - 4 -10.9 mum -20 cm 2.22 cm 2.05 GeV 45.8 keV 10.9 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -20 cm 2.22 cm 2.05 GeV 39.6 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.63 cm 1.75 cm 813 MeV 15.7 keV 8.12 cm 8.12 cm World eIoni + 2 12.9 mum -15 cm 2.08 cm 1.55 GeV 17 keV 7.4 cm 15.5 cm World eIoni + 3 19.6 mum -20 cm 2.22 cm 2.05 GeV 10.3 keV 4.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 12.9 mum -15 cm 2.08 cm 1.54 keV 0 eV 0 fm 0 fm World initStep + 1 5.69 mum -15 cm 2.08 cm 1.08 MeV 1.54 keV 98.4 mum 98.4 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -7.63 cm 1.75 cm 40.6 keV 0 eV 0 fm 0 fm World initStep + 1 -170 mum -8.38 cm 1.76 cm 76.5 MeV 3.93 keV 7.51 mm 7.51 mm World eIoni + 2 -215 mum -15.1 cm 1.76 cm 752 MeV 12.9 keV 6.76 cm 7.51 cm World eIoni + 3 -221 mum -17.4 cm 1.76 cm 974 MeV 5.72 keV 2.22 cm 9.73 cm World eIoni + 4 -222 mum -18.1 cm 1.76 cm 1.05 GeV 2.84 keV 7.56 mm 10.5 cm World eIoni + 5 -224 mum -20 cm 1.76 cm 1.24 GeV 3.65 keV 1.89 cm 12.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -222 mum -18.1 cm 1.76 cm 2.97 keV 0 eV 0 fm 0 fm World initStep + 1 -231 mum -18.1 cm 1.76 cm 3.12 MeV 2.97 keV 289 mum 289 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -221 mum -17.4 cm 1.76 cm 1.47 keV 0 eV 0 fm 0 fm World initStep + 1 -227 mum -17.4 cm 1.76 cm 1 MeV 1.47 keV 91.8 mum 91.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -215 mum -15.1 cm 1.76 cm 1.33 keV 0 eV 0 fm 0 fm World initStep + 1 -209 mum -15.1 cm 1.76 cm 865 keV 1.33 keV 79.1 mum 79.1 mum World eIoni + +********************************************************************************************************* +* 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 -4.67 cm 1.52 cm 517 MeV 10 keV 5.15 cm 5.15 cm World eIoni + 2 6.56 mum -20 cm 2.22 cm 2.05 GeV 33 keV 15.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 -4.67 cm 1.52 cm 15.9 keV 0 eV 0 fm 0 fm World initStep + 1 -39 mum -5.04 cm 1.53 cm 39.4 MeV 7.11 keV 3.77 mm 3.77 mm World eIoni + 2 -48.4 mum -10.2 cm 1.54 cm 555 MeV 9.08 keV 5.16 cm 5.53 cm World eIoni + 3 -48.2 mum -14.7 cm 1.54 cm 1.01 GeV 8.8 keV 4.52 cm 10.1 cm World eIoni + 4 -49.1 mum -20 cm 1.54 cm 1.54 GeV 11.7 keV 5.29 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 -48.2 mum -14.7 cm 1.54 cm 3.99 keV 0 eV 0 fm 0 fm World initStep + 1 -37.9 mum -14.8 cm 1.53 cm 5.12 MeV 3.99 keV 478 mum 478 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -48.4 mum -10.2 cm 1.54 cm 1.86 keV 0 eV 0 fm 0 fm World initStep + 1 -56.5 mum -10.2 cm 1.54 cm 1.46 MeV 1.86 keV 134 mum 134 mum World eIoni + +********************************************************************************************************* +* 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.5 cm 1.99 cm 1.3 GeV 25.4 keV 13 cm 13 cm World eIoni + 2 192 nm -14.1 cm 2.05 cm 1.46 GeV 2.66 keV 1.58 cm 14.6 cm World eIoni + 3 1.99 mum -20 cm 2.22 cm 2.05 GeV 11.9 keV 5.87 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 192 nm -14.1 cm 2.05 cm 3.58 keV 0 eV 0 fm 0 fm World initStep + 1 -10.4 mum -14.2 cm 2.05 cm 3.32 MeV 1.93 keV 310 mum 310 mum World eIoni + 2 -22.9 mum -20 cm 2.05 cm 587 MeV 7.3 keV 5.84 cm 5.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 -12.5 cm 1.99 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 -2.61 mum -12.6 cm 1.99 cm 738 keV 1.21 keV 67.6 mum 67.6 mum World eIoni + +********************************************************************************************************* +* 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.7 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 -14.2 cm 2.05 cm 1.47 GeV 27.4 keV 14.7 cm 14.7 cm World eIoni + 2 -494 nm -17.7 cm 2.16 cm 1.82 GeV 6.77 keV 3.43 cm 18.2 cm World eIoni + 3 -561 nm -20 cm 2.22 cm 2.05 GeV 5.42 keV 2.33 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 -494 nm -17.7 cm 2.16 cm 1.46 keV 0 eV 0 fm 0 fm World initStep + 1 -3.7 mum -17.7 cm 2.16 cm 995 keV 1.46 keV 91 mum 91 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -14.2 cm 2.05 cm 3.95 keV 0 eV 0 fm 0 fm World initStep + 1 8.08 mum -14.3 cm 2.05 cm 5.04 MeV 3.95 keV 471 mum 471 mum World eIoni + +********************************************************************************************************* +* 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.66 cm 1.61 cm 616 MeV 11.5 keV 6.15 cm 6.15 cm World eIoni + 2 -1.33 mum -15.1 cm 2.08 cm 1.56 GeV 19.4 keV 9.49 cm 15.6 cm World eIoni + 3 -1.74 mum -18.5 cm 2.18 cm 1.9 GeV 6.86 keV 3.4 cm 19 cm World eIoni + 4 -1.48 mum -20 cm 2.22 cm 2.05 GeV 3.21 keV 1.46 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.29 mum -9.09 cm 1.84 cm 5.36 keV 0 eV 0 fm 0 fm World initStep - 1 26.5 mum -9.17 cm 1.84 cm 9.84 MeV 10.7 keV 814 mum 814 mum World eIoni + 0 -1.74 mum -18.5 cm 2.18 cm 4.23 keV 0 eV 0 fm 0 fm World initStep + 1 -21.8 mum -18.6 cm 2.18 cm 5.72 MeV 4.23 keV 535 mum 535 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.62 mum -4.25 cm 1.48 cm 15 keV 0 eV 0 fm 0 fm World initStep - 1 112 mum -4.49 cm 1.47 cm 28.4 MeV 8.5 keV 2.49 mm 2.49 mm World eIoni - 2 130 mum -8.61 cm 1.47 cm 440 MeV 14.5 keV 4.12 cm 4.37 cm World eIoni - 3 132 mum -12.7 cm 1.47 cm 851 MeV 13.2 keV 4.1 cm 8.47 cm World eIoni - 4 133 mum -20 cm 1.47 cm 1.58 GeV 32.5 keV 7.29 cm 15.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 132 mum -12.7 cm 1.47 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 131 mum -12.7 cm 1.47 cm 1 MeV 2.34 keV 71.4 mum 71.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 130 mum -8.61 cm 1.47 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 136 mum -8.61 cm 1.47 cm 956 keV 2.25 keV 67.8 mum 67.8 mum World eIoni + 0 -1.33 mum -15.1 cm 2.08 cm 2.19 keV 0 eV 0 fm 0 fm World initStep + 1 215 nm -15.2 cm 2.09 cm 1.89 MeV 2.19 keV 174 mum 174 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.15 cm 9.36 mm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -4.5 mum -1.15 cm 9.36 mm 849 keV 2.02 keV 58.4 mum 58.4 mum World eIoni - -********************************************************************************************************* -* 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 73.9 keV 19 cm 19 cm World eIoni - 2 726 nm -20 cm 2.22 cm 2.05 GeV 7.65 keV 1.46 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 -18.5 cm 2.18 cm 14.9 keV 0 eV 0 fm 0 fm World initStep - 1 -127 mum -18.8 cm 2.18 cm 28.2 MeV 10 keV 2.47 mm 2.47 mm World eIoni - 2 -139 mum -20 cm 2.18 cm 150 MeV 4.73 keV 1.22 cm 1.47 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 cm 2.01 cm 1.35 GeV 51.9 keV 13.5 cm 13.5 cm World eIoni - 2 -1.09 mum -20 cm 2.22 cm 2.05 GeV 29 keV 6.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 -13 cm 2.01 cm 1.34 keV 0 eV 0 fm 0 fm World initStep - 1 5.67 mum -13 cm 2.01 cm 1.19 MeV 2.69 keV 86.6 mum 86.6 mum World eIoni - -********************************************************************************************************* -* 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.81 cm 1.87 cm 1.03 GeV 39.1 keV 10.3 cm 10.3 cm World eIoni - 2 523 nm -11.6 cm 1.96 cm 1.21 GeV 5.86 keV 1.82 cm 12.1 cm World eIoni - 3 5.52 mum -18.9 cm 2.19 cm 1.94 GeV 30.7 keV 7.25 cm 19.4 cm World eIoni - 4 5.79 mum -20 cm 2.21 cm 2.05 GeV 4.57 keV 1.13 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.52 mum -18.9 cm 2.19 cm 7.4 keV 0 eV 0 fm 0 fm World initStep - 1 33.3 mum -19 cm 2.19 cm 10.9 MeV 6.41 keV 928 mum 928 mum World eIoni - 2 50.3 mum -20 cm 2.19 cm 115 MeV 3.22 keV 1.04 cm 1.13 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 33.3 mum -19 cm 2.19 cm 3.57 keV 0 eV 0 fm 0 fm World initStep - 1 6.72 mum -19 cm 2.19 cm 4.98 MeV 7.14 keV 402 mum 402 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 523 nm -11.6 cm 1.96 cm 6.84 keV 0 eV 0 fm 0 fm World initStep - 1 -61.1 mum -11.7 cm 1.96 cm 14.5 MeV 11.8 keV 1.22 mm 1.22 mm World eIoni - 2 -54.2 mum -20 cm 1.96 cm 840 MeV 27.6 keV 8.26 cm 8.38 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.81 cm 1.87 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -5.92 mum -9.82 cm 1.87 cm 857 keV 2.06 keV 60 mum 60 mum World eIoni - -********************************************************************************************************* -* 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.03 cm 1.64 cm 653 MeV 23.6 keV 6.51 cm 6.51 cm World eIoni - 2 -2.35 mum -14.4 cm 2.06 cm 1.49 GeV 33.9 keV 8.4 cm 14.9 cm World eIoni - 3 -3.53 mum -18.5 cm 2.18 cm 1.9 GeV 16.2 keV 4.07 cm 19 cm World eIoni - 4 -4.45 mum -20 cm 2.22 cm 2.05 GeV 5.58 keV 1.52 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.53 mum -18.5 cm 2.18 cm 5.76 keV 0 eV 0 fm 0 fm World initStep - 1 47.2 mum -18.6 cm 2.18 cm 11.2 MeV 11.5 keV 926 mum 926 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.35 mum -14.4 cm 2.06 cm 1.23 keV 0 eV 0 fm 0 fm World initStep - 1 1.79 mum -14.4 cm 2.06 cm 1.06 MeV 2.45 keV 75.9 mum 75.9 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.03 cm 1.64 cm 1.82 keV 0 eV 0 fm 0 fm World initStep - 1 7.42 mum -6.04 cm 1.64 cm 1.77 MeV 3.63 keV 135 mum 135 mum World eIoni + 0 0 fm -5.66 cm 1.61 cm 1.96 keV 0 eV 0 fm 0 fm World initStep + 1 3.06 mum -5.68 cm 1.61 cm 1.57 MeV 1.96 keV 144 mum 144 mum World eIoni ---> Begin of Event: 50 @@ -1613,53 +1621,133 @@ 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 -3.56 cm 1.4 cm 406 MeV 19.8 keV 4.03 cm 4.03 cm World eIoni - 2 -1.6 mum -12.4 cm 1.99 cm 1.29 GeV 37.4 keV 8.85 cm 12.9 cm World eIoni - 3 -23 nm -20 cm 2.22 cm 2.05 GeV 32.3 keV 7.62 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.6 mum -12.4 cm 1.99 cm 2.26 keV 0 eV 0 fm 0 fm World initStep - 1 -16.2 mum -12.4 cm 1.99 cm 2.43 MeV 4.52 keV 189 mum 189 mum World eIoni + 1 0 fm -19.4 cm 2.21 cm 1.99 GeV 38.7 keV 19.9 cm 19.9 cm World eIoni + 2 -80.4 nm -20 cm 2.22 cm 2.05 GeV 1.36 keV 6.09 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 -3.56 cm 1.4 cm 8.24 keV 0 eV 0 fm 0 fm World initStep - 1 12.7 mum -3.7 cm 1.39 cm 17.6 MeV 8.58 keV 1.49 mm 1.49 mm World eIoni - 2 14.2 mum -6.29 cm 1.39 cm 277 MeV 8.43 keV 2.59 cm 2.74 cm World eIoni - 3 20.7 mum -18.1 cm 1.39 cm 1.46 GeV 48.5 keV 11.8 cm 14.5 cm World eIoni - 4 22.1 mum -20 cm 1.39 cm 1.65 GeV 9.4 keV 1.9 cm 16.4 cm OutOfWorldTransportation + 0 0 fm -19.4 cm 2.21 cm 1.88 keV 0 eV 0 fm 0 fm World initStep + 1 5.62 mum -19.4 cm 2.21 cm 1.48 MeV 1.88 keV 135 mum 135 mum World eIoni + +********************************************************************************************************* +* 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 1.74 keV 8.09 mm 8.09 mm World eIoni + 2 -12.4 mum -8.65 cm 1.81 cm 915 MeV 16 keV 8.34 cm 9.15 cm World eIoni + 3 -13.7 mum -12.4 cm 1.99 cm 1.29 GeV 7.48 keV 3.77 cm 12.9 cm World eIoni + 4 -16.9 mum -20 cm 2.22 cm 2.05 GeV 15.3 keV 7.58 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.7 mum -12.4 cm 1.99 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 -8.41 mum -12.4 cm 1.99 cm 823 keV 1.29 keV 75.3 mum 75.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -12.4 mum -8.65 cm 1.81 cm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 -14.5 mum -8.66 cm 1.81 cm 605 keV 1.06 keV 55.4 mum 55.4 mum World eIoni + +********************************************************************************************************* +* 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 2.9 keV 0 eV 0 fm 0 fm World initStep + 1 14.7 mum -4.76 mm 6.31 mm 3 MeV 2.9 keV 278 mum 278 mum World eIoni + +********************************************************************************************************* +* 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 -372 mum 1.93 mm 53.7 MeV 205 eV 1.97 mm 1.97 mm World eIoni + 2 -3.81 mum -3.4 cm 1.38 cm 390 MeV 8.63 keV 3.68 cm 3.87 cm World eIoni + 3 -12.7 mum -20 cm 2.22 cm 2.05 GeV 34.9 keV 16.6 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.81 mum -3.4 cm 1.38 cm 1.56 keV 0 eV 0 fm 0 fm World initStep + 1 3.16 mum -3.41 cm 1.38 cm 1.1 MeV 1.56 keV 100 mum 100 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -372 mum 1.93 mm 1.77 keV 0 eV 0 fm 0 fm World initStep + 1 3.73 mum -490 mum 1.93 mm 1.48 MeV 1.77 keV 123 mum 123 mum World eIoni + +********************************************************************************************************* +* 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.9 cm 1.97 cm 1.24 GeV 23.5 keV 12.4 cm 12.4 cm World eIoni + 2 -4.41 mum -17.4 cm 2.15 cm 1.79 GeV 11.2 keV 5.5 cm 17.9 cm World eIoni + 3 -6.37 mum -20 cm 2.22 cm 2.05 GeV 7.01 keV 2.6 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.41 mum -17.4 cm 2.15 cm 2.03 keV 0 eV 0 fm 0 fm World initStep + 1 965 nm -17.4 cm 2.15 cm 1.66 MeV 2.03 keV 152 mum 152 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -11.9 cm 1.97 cm 14.9 keV 0 eV 0 fm 0 fm World initStep + 1 43.1 mum -12 cm 1.97 cm 7.26 MeV 1.07 keV 708 mum 708 mum World eIoni + 2 94 mum -17.8 cm 1.96 cm 592 MeV 9.18 keV 5.85 cm 5.92 cm WorldTransportation + 3 94 mum -17.8 cm 1.96 cm 592 MeV2.32e-12 eV 0.011 fm 5.92 cm World eIoni + 4 95.8 mum -19.6 cm 1.96 cm 766 MeV 3.14 keV 1.74 cm 7.66 cm World eIoni + 5 96.1 mum -20 cm 1.96 cm 810 MeV 1.45 keV 4.36 mm 8.1 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 20.7 mum -18.1 cm 1.39 cm 6.62 keV 0 eV 0 fm 0 fm World initStep - 1 -34.4 mum -18.2 cm 1.39 cm 11.1 MeV 9.76 keV 937 mum 937 mum World eIoni - 2 -34.2 mum -20 cm 1.39 cm 192 MeV 4.89 keV 1.81 cm 1.91 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -34.4 mum -18.2 cm 1.39 cm 3.47 keV 0 eV 0 fm 0 fm World initStep - 1 -35.7 mum -18.2 cm 1.39 cm 4.75 MeV 6.94 keV 383 mum 383 mum World eIoni + 0 95.8 mum -19.6 cm 1.96 cm 1.29 keV 0 eV 0 fm 0 fm World initStep + 1 96.7 mum -19.6 cm 1.96 cm 816 keV 1.29 keV 74.7 mum 74.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 14.2 mum -6.29 cm 1.39 cm 1.12 keV 0 eV 0 fm 0 fm World initStep - 1 7.64 mum -6.3 cm 1.39 cm 951 keV 2.24 keV 67.5 mum 67.5 mum World eIoni + 0 94 mum -17.8 cm 1.96 cm 13.3 keV 0 eV 0 fm 0 fm World initStep + 1 110 mum -17.9 cm 1.97 cm 7.41 MeV 511 eV 721 mum 721 mum World eIoni + 2 113 mum -18 cm 1.97 cm 13.1 MeV 0 eV 572 mum 1.29 mm World eIoni + 3 100 mum -20 cm 1.97 cm 218 MeV 2.74 keV 2.05 cm 2.18 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 113 mum -18 cm 1.97 cm 16.5 keV 0 eV 0 fm 0 fm World initStep + 1 206 mum -18.6 cm 1.96 cm 64.7 MeV 16.5 keV 6.22 mm 6.22 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1667,103 +1755,44 @@ 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 -6.75 cm 1.7 cm 725 MeV 29.3 keV 7.23 cm 7.23 cm World eIoni - 2 -3.69 mum -20 cm 2.22 cm 2.05 GeV 54.2 keV 13.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 -6.75 cm 1.7 cm 1.74 keV 0 eV 0 fm 0 fm World initStep - 1 9.02 mum -6.76 cm 1.69 cm 1.67 MeV 3.48 keV 126 mum 126 mum World eIoni - -********************************************************************************************************* -* 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 62.4 keV 16.7 cm 16.7 cm World eIoni - 2 548 nm -20 cm 2.22 cm 2.05 GeV 16.9 keV 3.82 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 1.2 keV 0 eV 0 fm 0 fm World initStep - 1 -5.34 mum -16.2 cm 2.12 cm 1.03 MeV 2.4 keV 73.7 mum 73.7 mum World eIoni - -********************************************************************************************************* -* 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.09 cm 1.78 cm 858 MeV 32.8 keV 8.58 cm 8.58 cm World eIoni - 2 -363 nm -9.03 cm 1.83 cm 953 MeV 4.43 keV 9.49 mm 9.52 cm World eIoni - 3 2.49 mum -20 cm 2.22 cm 2.05 GeV 47.1 keV 11 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 -363 nm -9.03 cm 1.83 cm 5.08 keV 0 eV 0 fm 0 fm World initStep - 1 -44.7 mum -9.1 cm 1.83 cm 8.94 MeV 10.2 keV 737 mum 737 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.09 cm 1.78 cm 1.6 keV 0 eV 0 fm 0 fm World initStep - 1 8.35 mum -8.1 cm 1.78 cm 1.49 MeV 3.2 keV 111 mum 111 mum World eIoni - -********************************************************************************************************* -* 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 29.2 keV 7.26 cm 7.26 cm World eIoni - 2 1.47 mum -13.4 cm 2.02 cm 1.39 GeV 27.8 keV 6.63 cm 13.9 cm World eIoni - 3 1.56 mum -13.9 cm 2.04 cm 1.44 GeV 2.05 keV 5.54 mm 14.4 cm World eIoni - 4 3.23 mum -19.2 cm 2.2 cm 1.97 GeV 20.4 keV 5.22 cm 19.7 cm World eIoni - 5 3.17 mum -20 cm 2.21 cm 2.05 GeV 1.74 keV 8.32 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 3.23 mum -19.2 cm 2.2 cm 6.65 keV 0 eV 0 fm 0 fm World initStep - 1 69.2 mum -19.3 cm 2.2 cm 14 MeV 12.2 keV 1.17 mm 1.17 mm World eIoni + 1 0 fm -8.21 cm 1.79 cm 871 MeV 16.9 keV 8.7 cm 8.7 cm World eIoni + 2 -977 nm -12.8 cm 2 cm 1.33 GeV 8.23 keV 4.56 cm 13.3 cm World eIoni + 3 -2.73 mum -17.8 cm 2.16 cm 1.83 GeV 10.3 keV 5 cm 18.3 cm World eIoni + 4 -5.54 mum -20 cm 2.22 cm 2.05 GeV 4.34 keV 2.23 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.56 mum -13.9 cm 2.04 cm 1.1 keV 0 eV 0 fm 0 fm World initStep - 1 -4.54 mum -14 cm 2.04 cm 932 keV 2.2 keV 66 mum 66 mum World eIoni + 0 -2.73 mum -17.8 cm 2.16 cm 52.7 keV 0 eV 0 fm 0 fm World initStep + 1 147 mum -18.4 cm 2.15 cm 64.1 MeV 2.63 keV 6.29 mm 6.29 mm World eIoni + 2 167 mum -19.7 cm 2.15 cm 190 MeV 2.63 keV 1.26 cm 1.89 cm World eIoni + 3 171 mum -20 cm 2.15 cm 225 MeV 787 eV 3.46 mm 2.24 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 167 mum -19.7 cm 2.15 cm 3.21 keV 0 eV 0 fm 0 fm World initStep + 1 150 mum -19.7 cm 2.15 cm 3.54 MeV 3.21 keV 328 mum 328 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.47 mum -13.4 cm 2.02 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 1.51 mum -13.4 cm 2.02 cm 867 keV 2.07 keV 60.7 mum 60.7 mum World eIoni + 0 -977 nm -12.8 cm 2 cm 5.86 keV 0 eV 0 fm 0 fm World initStep + 1 13.4 mum -12.9 cm 2 cm 10.1 MeV 5.86 keV 953 mum 953 mum World eIoni ********************************************************************************************************* * 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.08 keV 0 eV 0 fm 0 fm World initStep - 1 -4.32 mum -6.78 cm 1.7 cm 917 keV 2.17 keV 64.5 mum 64.5 mum World eIoni + 0 0 fm -8.21 cm 1.79 cm 1.59 keV 0 eV 0 fm 0 fm World initStep + 1 4.36 mum -8.22 cm 1.79 cm 1.13 MeV 1.59 keV 104 mum 104 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1771,26 +1800,59 @@ 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.8 cm 1.92 cm 1.13 GeV 42.7 keV 11.3 cm 11.3 cm World eIoni - 2 -3.45 mum -19.3 cm 2.2 cm 1.98 GeV 34.9 keV 8.51 cm 19.8 cm World eIoni - 3 -3.89 mum -20 cm 2.22 cm 2.05 GeV 2.87 keV 7.24 mm 20.5 cm OutOfWorldTransportation + 1 0 fm -11 cm 1.93 cm 1.15 GeV 21.3 keV 11.5 cm 11.5 cm World eIoni + 2 574 nm -20 cm 2.22 cm 2.05 GeV 19.6 keV 8.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 -11 cm 1.93 cm 1.61 keV 0 eV 0 fm 0 fm World initStep + 1 -1.91 mum -11 cm 1.93 cm 1.16 MeV 1.61 keV 106 mum 106 mum World eIoni + +********************************************************************************************************* +* 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.38 cm 1.59 cm 588 MeV 11.1 keV 5.86 cm 5.86 cm World eIoni + 2 4.48 mum -20 cm 2.22 cm 2.05 GeV 31.3 keV 14.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 -5.38 cm 1.59 cm 3.17 keV 0 eV 0 fm 0 fm World initStep + 1 -10.6 mum -5.41 cm 1.59 cm 3.46 MeV 3.17 keV 321 mum 321 mum World eIoni + +********************************************************************************************************* +* 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 -17.9 cm 2.17 cm 1.84 GeV 35.6 keV 18.4 cm 18.4 cm World eIoni + 2 137 nm -19.5 cm 2.21 cm 2 GeV 2.99 keV 1.51 cm 20 cm World eIoni + 3 287 nm -20 cm 2.22 cm 2.05 GeV 1.27 keV 5.44 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 -3.45 mum -19.3 cm 2.2 cm 7.7 keV 0 eV 0 fm 0 fm World initStep - 1 74.8 mum -19.4 cm 2.2 cm 16.5 MeV 10.1 keV 1.39 mm 1.39 mm World eIoni - 2 76.6 mum -20 cm 2.2 cm 75.6 MeV 1.99 keV 5.9 mm 7.3 mm OutOfWorldTransportation + 0 137 nm -19.5 cm 2.21 cm 1.53 keV 0 eV 0 fm 0 fm World initStep + 1 -6.9 mum -19.5 cm 2.21 cm 1.07 MeV 1.53 keV 97.7 mum 97.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.8 cm 1.92 cm 4.34 keV 0 eV 0 fm 0 fm World initStep - 1 32.5 mum -10.8 cm 1.92 cm 6.88 MeV 8.68 keV 562 mum 562 mum World eIoni + 0 0 fm -17.9 cm 2.17 cm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 -2.51 mum -17.9 cm 2.17 cm 611 keV 1.06 keV 56 mum 56 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1798,173 +1860,52 @@ 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 -2.8 cm 1.3 cm 330 MeV 14.2 keV 3.27 cm 3.27 cm World eIoni - 2 4.61 mum -12.1 cm 1.98 cm 1.26 GeV 39.7 keV 9.36 cm 12.6 cm World eIoni - 3 3.83 mum -18.6 cm 2.19 cm 1.91 GeV 27.5 keV 6.51 cm 19.1 cm World eIoni - 4 3.65 mum -20 cm 2.21 cm 2.05 GeV 5.41 keV 1.36 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.83 mum -18.6 cm 2.19 cm 1e+03 eV 0 eV 0 fm 0 fm World initStep - 1 6.96 mum -18.6 cm 2.19 cm 825 keV 2 keV 57.6 mum 57.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.61 mum -12.1 cm 1.98 cm 2.73 keV 0 eV 0 fm 0 fm World initStep - 1 23.3 mum -12.2 cm 1.98 cm 3.24 MeV 5.46 keV 256 mum 256 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.8 cm 1.3 cm 2.03 keV 0 eV 0 fm 0 fm World initStep - 1 -9.62 mum -2.82 cm 1.3 cm 2.07 MeV 4.06 keV 159 mum 159 mum World eIoni - -********************************************************************************************************* -* 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 80.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.34 mm 6.22 mm 93.4 MeV 2.95 keV 7.91 mm 7.91 mm World eIoni - 2 10.1 mum -20 cm 2.22 cm 2.05 GeV 79.7 keV 19.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 -4.34 mm 6.22 mm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 -6.06 mum -4.4 mm 6.22 mm 901 keV 2.13 keV 62.8 mum 62.8 mum World eIoni - -********************************************************************************************************* -* 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.5 cm 1.04 cm 200 MeV 7.36 keV 1.94 cm 1.94 cm World eIoni - 2 1.56 mum -2.07 cm 1.17 cm 257 MeV 2.22 keV 5.84 mm 2.52 cm World eIoni - 3 14.9 mum -12.9 cm 2.01 cm 1.34 GeV 45.8 keV 10.9 cm 13.4 cm World eIoni - 4 15.5 mum -20 cm 2.22 cm 2.05 GeV 29.1 keV 7.05 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 14.9 mum -12.9 cm 2.01 cm 5.92 keV 0 eV 0 fm 0 fm World initStep - 1 62.3 mum -13 cm 2 cm 11.7 MeV 11.8 keV 970 mum 970 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.56 mum -2.07 cm 1.17 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -1.95 mum -2.07 cm 1.17 cm 844 keV 2.01 keV 58.2 mum 58.2 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.5 cm 1.04 cm 4.45 keV 0 eV 0 fm 0 fm World initStep - 1 -33.1 mum -1.56 cm 1.04 cm 7.2 MeV 8.91 keV 589 mum 589 mum World eIoni - -********************************************************************************************************* -* 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.11 cm 1.57 cm 561 MeV 22.2 keV 5.59 cm 5.59 cm World eIoni - 2 -1.9 mum -17.5 cm 2.16 cm 1.8 GeV 52.5 keV 12.4 cm 18 cm World eIoni - 3 -1.46 mum -20 cm 2.22 cm 2.05 GeV 10.4 keV 2.49 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.9 mum -17.5 cm 2.16 cm 3.03 keV 0 eV 0 fm 0 fm World initStep - 1 -21.3 mum -17.5 cm 2.16 cm 3.8 MeV 6.06 keV 304 mum 304 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -5.11 cm 1.57 cm 1.36 keV 0 eV 0 fm 0 fm World initStep - 1 3.56 mum -5.12 cm 1.57 cm 1.21 MeV 2.72 keV 88.1 mum 88.1 mum World eIoni - -********************************************************************************************************* -* 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.86 mm 5.9 mm 88.6 MeV 3.47 keV 7.34 mm 7.34 mm World eIoni - 2 -4.94 mum -1.59 cm 1.06 cm 209 MeV 3.59 keV 1.3 cm 2.03 cm World eIoni - 3 -5.12 mum -1.65 cm 1.08 cm 215 MeV 299 eV 654 mum 2.1 cm World eIoni - 4 -18.1 mum -9.38 cm 1.85 cm 988 MeV 31.8 keV 7.78 cm 9.87 cm World eIoni - 5 -25.1 mum -19.8 cm 2.21 cm 2.03 GeV 43.6 keV 10.4 cm 20.3 cm World eIoni - 6 -25.2 mum -20 cm 2.22 cm 2.05 GeV 1.23 keV 2.39 mm 20.5 cm OutOfWorldTransportation + 1 0 fm -4.06 mm 6.04 mm 90.6 MeV 1.66 keV 7.58 mm 7.58 mm World eIoni + 2 -2.82 mum -1.76 cm 1.1 cm 226 MeV 2.67 keV 1.45 cm 2.21 cm World eIoni + 3 -3.53 mum -9.66 cm 1.87 cm 1.02 GeV 15.8 keV 7.95 cm 10.2 cm World eIoni + 4 -2.02 mum -13.7 cm 2.03 cm 1.42 GeV 8.05 keV 4.06 cm 14.2 cm World eIoni + 5 -959 nm -16.6 cm 2.13 cm 1.71 GeV 6.61 keV 2.88 cm 17.1 cm World eIoni + 6 478 nm -20 cm 2.22 cm 2.05 GeV 5.49 keV 3.41 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 -25.1 mum -19.8 cm 2.21 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 -22 mum -19.8 cm 2.22 cm 862 keV 2.07 keV 60.3 mum 60.3 mum World eIoni + 0 -959 nm -16.6 cm 2.13 cm 1.69 keV 0 eV 0 fm 0 fm World initStep + 1 -5.13 mum -16.6 cm 2.13 cm 1.24 MeV 1.69 keV 114 mum 114 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -18.1 mum -9.38 cm 1.85 cm 1.3 keV 0 eV 0 fm 0 fm World initStep - 1 -15.5 mum -9.39 cm 1.85 cm 1.14 MeV 2.6 keV 82.5 mum 82.5 mum World eIoni + 0 -2.02 mum -13.7 cm 2.03 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 -3.92 mum -13.7 cm 2.03 cm 655 keV 1.11 keV 60.1 mum 60.1 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -5.12 mum -1.65 cm 1.08 cm 1.17 keV 0 eV 0 fm 0 fm World initStep - 1 178 nm -1.66 cm 1.08 cm 997 keV 2.35 keV 71.7 mum 71.7 mum World eIoni + 0 -3.53 mum -9.66 cm 1.87 cm 2.6 keV 0 eV 0 fm 0 fm World initStep + 1 -16.5 mum -9.69 cm 1.86 cm 2.5 MeV 2.6 keV 230 mum 230 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -4.94 mum -1.59 cm 1.06 cm 2.3 keV 0 eV 0 fm 0 fm World initStep - 1 -3.44 mum -1.61 cm 1.06 cm 2.5 MeV 4.6 keV 194 mum 194 mum World eIoni + 0 -2.82 mum -1.76 cm 1.1 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 -6.29 mum -1.76 cm 1.1 cm 607 keV 1.05 keV 55.3 mum 55.3 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.86 mm 5.9 mm 2.99 keV 0 eV 0 fm 0 fm World initStep - 1 20.1 mum -4.15 mm 5.9 mm 3.73 MeV 5.98 keV 298 mum 298 mum World eIoni + 0 0 fm -4.06 mm 6.04 mm 1.17 keV 0 eV 0 fm 0 fm World initStep + 1 4.53 mum -4.12 mm 6.04 mm 722 keV 1.17 keV 64.9 mum 64.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -1972,201 +1913,53 @@ 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.21 cm 9.55 mm 171 MeV 4.44 keV 1.64 cm 1.64 cm World eIoni - 2 9.23 mum -11.3 cm 1.94 cm 1.18 GeV 39.7 keV 10.1 cm 11.8 cm World eIoni - 3 12.9 mum -20 cm 2.21 cm 2.05 GeV 37.5 keV 8.71 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -5.84 cm 1.63 cm 634 MeV 11.7 keV 6.32 cm 6.32 cm World eIoni + 2 -567 nm -8.17 cm 1.79 cm 867 MeV 5.84 keV 2.34 cm 8.66 cm World eIoni + 3 -2.29 mum -15.7 cm 2.1 cm 1.62 GeV 16.1 keV 7.52 cm 16.2 cm World eIoni + 4 -2.74 mum -16.9 cm 2.14 cm 1.74 GeV 1.31 keV 1.23 cm 17.4 cm World eIoni + 5 -3.03 mum -19.2 cm 2.2 cm 1.97 GeV 6.68 keV 2.33 cm 19.7 cm World eIoni + 6 -2.7 mum -20 cm 2.22 cm 2.05 GeV 1.74 keV 7.54 mm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 9.23 mum -11.3 cm 1.94 cm 5.44 keV 0 eV 0 fm 0 fm World initStep - 1 -5.01 mum -11.4 cm 1.94 cm 10.1 MeV 10.9 keV 837 mum 837 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.21 cm 9.55 mm 2.19 keV 0 eV 0 fm 0 fm World initStep - 1 -14.2 mum -1.23 cm 9.55 mm 2.32 MeV 4.38 keV 180 mum 180 mum World eIoni - -********************************************************************************************************* -* 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.1 cm 2.08 cm 1.56 GeV 58.2 keV 15.6 cm 15.6 cm World eIoni - 2 -51.5 nm -15.3 cm 2.09 cm 1.58 GeV 459 eV 2.13 mm 15.8 cm World eIoni - 3 -874 nm -20 cm 2.21 cm 2.05 GeV 20.8 keV 4.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 -51.5 nm -15.3 cm 2.09 cm 1.43 keV 0 eV 0 fm 0 fm World initStep - 1 -958 nm -15.3 cm 2.09 cm 1.29 MeV 2.85 keV 94.4 mum 94.4 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -15.1 cm 2.08 cm 1.63 keV 0 eV 0 fm 0 fm World initStep - 1 9.24 mum -15.1 cm 2.08 cm 1.52 MeV 3.25 keV 114 mum 114 mum World eIoni - -********************************************************************************************************* -* 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 cm 2.2 cm 1.95 GeV 78.4 keV 19.5 cm 19.5 cm World eIoni - 2 -698 nm -20 cm 2.22 cm 2.05 GeV 5.44 keV 1.02 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 -19 cm 2.2 cm 28.4 keV 0 eV 0 fm 0 fm World initStep - 1 186 mum -19.3 cm 2.21 cm 39.6 MeV 5.79 keV 3.6 mm 3.6 mm World eIoni - 2 196 mum -20 cm 2.21 cm 107 MeV 3.33 keV 6.71 mm 1.03 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 186 mum -19.3 cm 2.21 cm 1.06 keV 0 eV 0 fm 0 fm World initStep - 1 185 mum -19.3 cm 2.21 cm 889 keV 2.12 keV 62.5 mum 62.5 mum World eIoni - -********************************************************************************************************* -* 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.4 cm 2.06 cm 1.49 GeV 59.4 keV 14.9 cm 14.9 cm World eIoni - 2 -693 nm -20 cm 2.22 cm 2.05 GeV 23.7 keV 5.59 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.4 cm 2.06 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 4.01 mum -14.4 cm 2.06 cm 864 keV 2.07 keV 60.7 mum 60.7 mum World eIoni - -********************************************************************************************************* -* 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 80.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 -2.51 cm 1.25 cm 301 MeV 12.6 keV 2.97 cm 2.97 cm World eIoni - 2 -1.41 mum -3.8 cm 1.43 cm 430 MeV 5.95 keV 1.3 cm 4.27 cm World eIoni - 3 -9.76 mum -8.9 cm 1.83 cm 940 MeV 20.4 keV 5.12 cm 9.39 cm World eIoni - 4 -11.3 mum -11.3 cm 1.94 cm 1.18 GeV 8.42 keV 2.44 cm 11.8 cm World eIoni - 5 -12.8 mum -20 cm 2.22 cm 2.05 GeV 35.8 keV 8.67 cm 20.5 cm OutOfWorldTransportation + 0 -3.03 mum -19.2 cm 2.2 cm 12.3 keV 0 eV 0 fm 0 fm World initStep + 1 -69.1 mum -19.4 cm 2.2 cm 21.4 MeV 4.87 keV 2.05 mm 2.05 mm World eIoni + 2 -79.9 mum -20 cm 2.2 cm 76.6 MeV 1.13 keV 5.52 mm 7.57 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -11.3 mum -11.3 cm 1.94 cm 2.77 keV 0 eV 0 fm 0 fm World initStep - 1 -24.4 mum -11.4 cm 1.94 cm 3.3 MeV 5.53 keV 262 mum 262 mum World eIoni + 0 -2.74 mum -16.9 cm 2.14 cm 1.97 keV 0 eV 0 fm 0 fm World initStep + 1 -11.1 mum -16.9 cm 2.14 cm 1.59 MeV 1.97 keV 145 mum 145 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -9.76 mum -8.9 cm 1.83 cm 1.7 keV 0 eV 0 fm 0 fm World initStep - 1 -20.2 mum -8.91 cm 1.83 cm 1.62 MeV 3.4 keV 122 mum 122 mum World eIoni + 0 -2.29 mum -15.7 cm 2.1 cm 1.48 keV 0 eV 0 fm 0 fm World initStep + 1 3.76 mum -15.7 cm 2.1 cm 1.01 MeV 1.48 keV 92.5 mum 92.5 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -1.41 mum -3.8 cm 1.43 cm 12.7 keV 0 eV 0 fm 0 fm World initStep - 1 38 mum -3.89 cm 1.42 cm 10.9 MeV 3.18 keV 961 mum 961 mum World eIoni - 2 49.7 mum -11.6 cm 1.42 cm 784 MeV 27.4 keV 7.73 cm 7.82 cm World eIoni - 3 49.8 mum -12.5 cm 1.42 cm 874 MeV 4.11 keV 9.01 mm 8.72 cm World eIoni - 4 49.7 mum -14.8 cm 1.42 cm 1.1 GeV 10.2 keV 2.24 cm 11 cm World eIoni - 5 48.4 mum -20 cm 1.42 cm 1.62 GeV 21.7 keV 5.24 cm 16.2 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 49.7 mum -14.8 cm 1.42 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 55.6 mum -14.8 cm 1.42 cm 862 keV 2.07 keV 60.5 mum 60.5 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 49.8 mum -12.5 cm 1.42 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 51.8 mum -12.5 cm 1.42 cm 1.07 MeV 2.47 keV 76.9 mum 76.9 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 49.7 mum -11.6 cm 1.42 cm 1.24 keV 0 eV 0 fm 0 fm World initStep - 1 54.3 mum -11.6 cm 1.42 cm 1.07 MeV 2.47 keV 76.7 mum 76.7 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 38 mum -3.89 cm 1.42 cm 1.59 keV 0 eV 0 fm 0 fm World initStep - 1 45.6 mum -3.9 cm 1.42 cm 1.47 MeV 3.17 keV 109 mum 109 mum World eIoni + 0 -567 nm -8.17 cm 1.79 cm 2.45 keV 0 eV 0 fm 0 fm World initStep + 1 1.82 mum -8.19 cm 1.78 cm 2.26 MeV 2.45 keV 208 mum 208 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.51 cm 1.25 cm 18.2 keV 0 eV 0 fm 0 fm World initStep - 1 50.1 mum -2.79 cm 1.27 cm 33.7 MeV 7.44 keV 2.99 mm 2.99 mm World eIoni - 2 55.4 mum -4.4 cm 1.27 cm 195 MeV 8.5 keV 1.61 cm 1.91 cm World eIoni - 3 59.5 mum -14.7 cm 1.27 cm 1.23 GeV 41.3 keV 10.3 cm 12.2 cm World eIoni - 4 58.7 mum -20 cm 1.27 cm 1.75 GeV 23.1 keV 5.29 cm 17.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 59.5 mum -14.7 cm 1.27 cm 2.49 keV 0 eV 0 fm 0 fm World initStep - 1 74.7 mum -14.7 cm 1.27 cm 2.79 MeV 4.98 keV 219 mum 219 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 55.4 mum -4.4 cm 1.27 cm 1.99 keV 0 eV 0 fm 0 fm World initStep - 1 57.9 mum -4.41 cm 1.27 cm 2.01 MeV 3.99 keV 154 mum 154 mum World eIoni + 0 0 fm -5.84 cm 1.63 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 2.62 mum -5.84 cm 1.63 cm 617 keV 1.07 keV 56.4 mum 56.4 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2174,103 +1967,34 @@ 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 cm 1.71 cm 750 MeV 28.7 keV 7.49 cm 7.49 cm World eIoni - 2 -298 nm -7.57 cm 1.75 cm 807 MeV 1.51 keV 5.71 mm 8.06 cm World eIoni - 3 -3.97 mum -20 cm 2.22 cm 2.05 GeV 52.8 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 -298 nm -7.57 cm 1.75 cm 1.91 keV 0 eV 0 fm 0 fm World initStep - 1 -622 nm -7.58 cm 1.75 cm 1.9 MeV 3.82 keV 145 mum 145 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7 cm 1.71 cm 4.79 keV 0 eV 0 fm 0 fm World initStep - 1 23.7 mum -7.07 cm 1.72 cm 8.11 MeV 9.58 keV 667 mum 667 mum World eIoni - -********************************************************************************************************* -* 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.14 mm 7.72 mm 121 MeV 3.25 keV 1.11 cm 1.11 cm World eIoni - 2 2.36 mum -13.2 cm 2.02 cm 1.37 GeV 51.7 keV 12.6 cm 13.7 cm World eIoni - 3 1.19 mum -20 cm 2.22 cm 2.05 GeV 29.4 keV 6.81 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.36 mum -13.2 cm 2.02 cm 1.47 keV 0 eV 0 fm 0 fm World initStep - 1 11.2 mum -13.2 cm 2.02 cm 1.34 MeV 2.95 keV 98.9 mum 98.9 mum World eIoni - -********************************************************************************************************* -* 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 mm 7.72 mm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 -1.92 mum -7.21 mm 7.72 mm 973 keV 2.23 keV 66.9 mum 66.9 mum World eIoni - -********************************************************************************************************* -* 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.09 cm 1.56 cm 559 MeV 22.6 keV 5.57 cm 5.57 cm World eIoni - 2 -541 nm -20 cm 2.22 cm 2.05 GeV 62.1 keV 14.9 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.09 cm 1.56 cm 5.39 keV 0 eV 0 fm 0 fm World initStep - 1 2.73 mum -5.17 cm 1.57 cm 9.93 MeV 10.8 keV 822 mum 822 mum World eIoni - -********************************************************************************************************* -* 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.38 cm 1.23 cm 288 MeV 12.5 keV 2.84 cm 2.84 cm World eIoni - 2 2.14 mum -4.52 cm 1.51 cm 502 MeV 12.2 keV 2.16 cm 5 cm World eIoni - 3 10.9 mum -12.1 cm 1.97 cm 1.26 GeV 33.2 keV 7.56 cm 12.6 cm World eIoni - 4 18.1 mum -20 cm 2.22 cm 2.05 GeV 33.9 keV 7.94 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -6.45 cm 1.67 cm 695 MeV 13 keV 6.94 cm 6.94 cm World eIoni + 2 -8.55 mum -11.3 cm 1.94 cm 1.18 GeV 9.55 keV 4.9 cm 11.8 cm World eIoni + 3 -11.2 mum -13.1 cm 2.01 cm 1.36 GeV 2.77 keV 1.73 cm 13.6 cm World eIoni + 4 -19.3 mum -20 cm 2.22 cm 2.05 GeV 14.9 keV 6.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.9 mum -12.1 cm 1.97 cm 2.78 keV 0 eV 0 fm 0 fm World initStep - 1 -7.3 mum -12.1 cm 1.97 cm 3.34 MeV 5.57 keV 265 mum 265 mum World eIoni + 0 -11.2 mum -13.1 cm 2.01 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 -11.1 mum -13.1 cm 2.01 cm 646 keV 1.1 keV 59.1 mum 59.1 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 2.14 mum -4.52 cm 1.51 cm 3.83 keV 0 eV 0 fm 0 fm World initStep - 1 -24.9 mum -4.56 cm 1.51 cm 5.57 MeV 7.66 keV 452 mum 452 mum World eIoni + 0 -8.55 mum -11.3 cm 1.94 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -2.9 mum -11.4 cm 1.94 cm 775 keV 1.25 keV 70.9 mum 70.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.38 cm 1.23 cm 1.67 keV 0 eV 0 fm 0 fm World initStep - 1 -9.44 mum -2.39 cm 1.23 cm 1.58 MeV 3.34 keV 119 mum 119 mum World eIoni + 0 0 fm -6.45 cm 1.67 cm 30.3 keV 0 eV 0 fm 0 fm World initStep + 1 149 mum -8.35 cm 1.67 cm 192 MeV 30.3 keV 1.91 cm 1.91 cm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2278,34 +2002,34 @@ 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 -3.24 cm 1.36 cm 374 MeV 13.7 keV 3.71 cm 3.71 cm World eIoni - 2 4.14 mum -19 cm 2.19 cm 1.95 GeV 66.3 keV 15.8 cm 19.5 cm World eIoni - 3 4.17 mum -19.3 cm 2.2 cm 1.98 GeV 1.42 keV 2.86 mm 19.8 cm World eIoni - 4 4.36 mum -20 cm 2.22 cm 2.05 GeV 2.45 keV 7.25 mm 20.5 cm OutOfWorldTransportation + 1 0 fm -2.35 cm 1.22 cm 285 MeV 5.52 keV 2.81 cm 2.81 cm World eIoni + 2 25 nm -2.38 cm 1.23 cm 288 MeV 13 eV 219 mum 2.84 cm World eIoni + 3 2.24 mum -8.3 cm 1.79 cm 880 MeV 12.5 keV 5.96 cm 8.79 cm World eIoni + 4 1.28 mum -20 cm 2.22 cm 2.05 GeV 24.2 keV 11.7 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.17 mum -19.3 cm 2.2 cm 3.4 keV 0 eV 0 fm 0 fm World initStep - 1 -13.6 mum -19.3 cm 2.2 cm 4.59 MeV 6.8 keV 370 mum 370 mum World eIoni + 0 2.24 mum -8.3 cm 1.79 cm 3.23 keV 0 eV 0 fm 0 fm World initStep + 1 11.6 mum -8.34 cm 1.79 cm 3.58 MeV 3.23 keV 332 mum 332 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.14 mum -19 cm 2.19 cm 1.05 keV 0 eV 0 fm 0 fm World initStep - 1 4.42 mum -19 cm 2.19 cm 873 keV 2.09 keV 61.4 mum 61.4 mum World eIoni + 0 25 nm -2.38 cm 1.23 cm 2.43 keV 0 eV 0 fm 0 fm World initStep + 1 3.26 mum -2.4 cm 1.22 cm 2.23 MeV 2.43 keV 205 mum 205 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.24 cm 1.36 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 -4.84 mum -3.24 cm 1.36 cm 945 keV 2.22 keV 66.5 mum 66.5 mum World eIoni + 0 0 fm -2.35 cm 1.22 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -5.23 mum -2.36 cm 1.22 cm 773 keV 1.25 keV 70.9 mum 70.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2313,52 +2037,98 @@ 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.89 cm 1.77 cm 839 MeV 33.5 keV 8.38 cm 8.38 cm World eIoni - 2 5.51 mum -15.2 cm 2.09 cm 1.57 GeV 31.1 keV 7.29 cm 15.7 cm World eIoni - 3 8.12 mum -18.5 cm 2.18 cm 1.9 GeV 14.4 keV 3.36 cm 19 cm World eIoni - 4 8.78 mum -20 cm 2.22 cm 2.05 GeV 4.37 keV 1.47 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -2.58 cm 1.26 cm 308 MeV 5.19 keV 3.05 cm 3.05 cm World eIoni + 2 -863 nm -3.31 cm 1.37 cm 381 MeV 1.27 keV 7.36 mm 3.78 cm World eIoni + 3 -1.13 mum -3.81 cm 1.43 cm 431 MeV 533 eV 5.01 mm 4.29 cm World eIoni + 4 -10.6 mum -16.4 cm 2.12 cm 1.69 GeV 27 keV 12.6 cm 16.9 cm World eIoni + 5 -12.4 mum -20 cm 2.22 cm 2.05 GeV 6.6 keV 3.59 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.6 mum -16.4 cm 2.12 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 -6.77 mum -16.4 cm 2.12 cm 617 keV 1.07 keV 56.7 mum 56.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 8.12 mum -18.5 cm 2.18 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 14.3 mum -18.5 cm 2.18 cm 945 keV 2.23 keV 66.9 mum 66.9 mum World eIoni + 0 -1.13 mum -3.81 cm 1.43 cm 2.28 keV 0 eV 0 fm 0 fm World initStep + 1 10.1 mum -3.83 cm 1.43 cm 2.02 MeV 2.28 keV 185 mum 185 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 5.51 mum -15.2 cm 2.09 cm 2.18 keV 0 eV 0 fm 0 fm World initStep - 1 -8.46 mum -15.2 cm 2.09 cm 2.3 MeV 4.36 keV 178 mum 178 mum World eIoni + 0 -863 nm -3.31 cm 1.37 cm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 -3.53 mum -3.32 cm 1.37 cm 621 keV 1.08 keV 57.2 mum 57.2 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.89 cm 1.77 cm 8.21 keV 0 eV 0 fm 0 fm World initStep - 1 -28.9 mum -7.92 cm 1.77 cm 3.6 MeV 1.42 keV 319 mum 319 mum World eIoni - 2 -60.9 mum -8.66 cm 1.77 cm 77.7 MeV 2.88 keV 7.41 mm 7.73 mm World eIoni - 3 -86.1 mum -20 cm 1.77 cm 1.21 GeV 45.5 keV 11.3 cm 12.1 cm OutOfWorldTransportation + 0 0 fm -2.58 cm 1.26 cm 1.59 keV 0 eV 0 fm 0 fm World initStep + 1 7.61 mum -2.59 cm 1.26 cm 1.13 MeV 1.59 keV 104 mum 104 mum World eIoni + +********************************************************************************************************* +* 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.61 cm 1.41 cm 410 MeV 9.29 keV 4.08 cm 4.08 cm World eIoni + 2 10 mum -6.74 cm 1.69 cm 724 MeV 5.72 keV 3.15 cm 7.23 cm World eIoni + 3 18.2 mum -12.2 cm 1.98 cm 1.27 GeV 11.8 keV 5.45 cm 12.7 cm World eIoni + 4 21.3 mum -17 cm 2.14 cm 1.75 GeV 11 keV 4.86 cm 17.5 cm World eIoni + 5 22.4 mum -20 cm 2.22 cm 2.05 GeV 5.11 keV 2.96 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 21.3 mum -17 cm 2.14 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 24.6 mum -17 cm 2.14 cm 747 keV 1.21 keV 68.3 mum 68.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 18.2 mum -12.2 cm 1.98 cm 24.3 keV 0 eV 0 fm 0 fm World initStep + 1 66.4 mum -12.7 cm 1.99 cm 55.2 MeV 8.01 keV 5.33 mm 5.33 mm World eIoni + 2 77.8 mum -20 cm 1.99 cm 784 MeV 15.1 keV 7.29 cm 7.82 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 10 mum -6.74 cm 1.69 cm 2.68 keV 0 eV 0 fm 0 fm World initStep + 1 17.8 mum -6.77 cm 1.69 cm 2.63 MeV 2.68 keV 243 mum 243 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.61 cm 1.41 cm 52.8 keV 0 eV 0 fm 0 fm World initStep + 1 -116 mum -4 cm 1.42 cm 40.9 MeV 1.2 keV 4.01 mm 4.01 mm World eIoni + 2 -171 mum -13.4 cm 1.42 cm 977 MeV 17.8 keV 9.36 cm 9.76 cm World eIoni + 3 -179 mum -20 cm 1.42 cm 1.64 GeV 13.5 keV 6.64 cm 16.4 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -60.9 mum -8.66 cm 1.77 cm 1.01 keV 0 eV 0 fm 0 fm World initStep - 1 -56.7 mum -8.67 cm 1.77 cm 832 keV 2.01 keV 58.1 mum 58.1 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -28.9 mum -7.92 cm 1.77 cm 1.52 keV 0 eV 0 fm 0 fm World initStep - 1 -23.3 mum -7.93 cm 1.77 cm 1.39 MeV 3.03 keV 103 mum 103 mum World eIoni + 0 -171 mum -13.4 cm 1.42 cm 994 eV 0 eV 0 fm 0 fm World initStep + 1 -174 mum -13.4 cm 1.42 cm 549 keV 994 eV 50.4 mum 50.4 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2366,59 +2136,61 @@ 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 -20 cm 2.22 cm 2.05 GeV 77 keV 20.5 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -6.33 cm 1.67 cm 683 MeV 13.1 keV 6.82 cm 6.82 cm World eIoni + 2 -4.28 mum -10.4 cm 1.9 cm 1.09 GeV 7.18 keV 4.1 cm 10.9 cm World eIoni + 3 -6.32 mum -14.4 cm 2.06 cm 1.49 GeV 9.45 keV 3.96 cm 14.9 cm World eIoni + 4 -7.9 mum -16.9 cm 2.14 cm 1.74 GeV 6.97 keV 2.57 cm 17.4 cm World eIoni + 5 -8.01 mum -17.3 cm 2.15 cm 1.78 GeV 821 eV 3.97 mm 17.8 cm World eIoni + 6 -11.2 mum -20 cm 2.22 cm 2.05 GeV 7.74 keV 2.66 cm 20.5 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* 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.61 cm 1.07 cm 211 MeV 8.77 keV 2.06 cm 2.06 cm World eIoni - 2 -9.01 mum -20 cm 2.22 cm 2.05 GeV 74.3 keV 18.4 cm 20.5 cm OutOfWorldTransportation + 0 -8.01 mum -17.3 cm 2.15 cm 35.4 keV 0 eV 0 fm 0 fm World initStep + 1 159 mum -18.7 cm 2.15 cm 139 MeV 12.7 keV 1.37 cm 1.37 cm World eIoni + 2 170 mum -20 cm 2.15 cm 268 MeV 2.58 keV 1.29 cm 2.66 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.61 cm 1.07 cm 2.01 keV 0 eV 0 fm 0 fm World initStep - 1 11 mum -1.63 cm 1.07 cm 2.04 MeV 4.02 keV 156 mum 156 mum World eIoni + 0 159 mum -18.7 cm 2.15 cm 2.8 keV 0 eV 0 fm 0 fm World initStep + 1 154 mum -18.7 cm 2.15 cm 2.84 MeV 2.8 keV 262 mum 262 mum World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* 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.88 cm 1.83 cm 938 MeV 37 keV 9.37 cm 9.37 cm World eIoni - 2 248 nm -10.7 cm 1.92 cm 1.12 GeV 7.16 keV 1.83 cm 11.2 cm World eIoni - 3 -164 nm -18.4 cm 2.18 cm 1.89 GeV 32.6 keV 7.67 cm 18.9 cm World eIoni - 4 27.6 nm -20 cm 2.22 cm 2.05 GeV 7.73 keV 1.63 cm 20.5 cm OutOfWorldTransportation + 0 -7.9 mum -16.9 cm 2.14 cm 3.15 keV 0 eV 0 fm 0 fm World initStep + 1 -23.9 mum -17 cm 2.14 cm 3.41 MeV 3.15 keV 317 mum 317 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -164 nm -18.4 cm 2.18 cm 1.11 keV 0 eV 0 fm 0 fm World initStep - 1 -6.13 mum -18.4 cm 2.18 cm 940 keV 2.22 keV 66.6 mum 66.6 mum World eIoni + 0 -6.32 mum -14.4 cm 2.06 cm 1.7 keV 0 eV 0 fm 0 fm World initStep + 1 272 nm -14.4 cm 2.06 cm 1.26 MeV 1.7 keV 115 mum 115 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 248 nm -10.7 cm 1.92 cm 1.15 keV 0 eV 0 fm 0 fm World initStep - 1 4.51 mum -10.7 cm 1.91 cm 974 keV 2.29 keV 69.4 mum 69.4 mum World eIoni + 0 -4.28 mum -10.4 cm 1.9 cm 2.01 keV 0 eV 0 fm 0 fm World initStep + 1 -9.75 mum -10.4 cm 1.9 cm 1.64 MeV 2.01 keV 150 mum 150 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -8.88 cm 1.83 cm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 -2.71 mum -8.89 cm 1.83 cm 959 keV 2.25 keV 67.8 mum 67.8 mum World eIoni + 0 0 fm -6.33 cm 1.67 cm 8.22 keV 0 eV 0 fm 0 fm World initStep + 1 53.6 mum -6.5 cm 1.67 cm 18.5 MeV 8.22 keV 1.75 mm 1.75 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2426,25 +2198,26 @@ 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 -16.1 cm 2.11 cm 1.66 GeV 63.3 keV 16.6 cm 16.6 cm World eIoni - 2 -396 nm -18.1 cm 2.17 cm 1.86 GeV 7.58 keV 1.99 cm 18.6 cm World eIoni - 3 -203 nm -20 cm 2.22 cm 2.05 GeV 9.27 keV 1.89 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -9.81 cm 1.87 cm 1.03 GeV 19.3 keV 10.3 cm 10.3 cm World eIoni + 2 2.62 mum -11.6 cm 1.96 cm 1.21 GeV 2.8 keV 1.82 cm 12.1 cm World eIoni + 3 8.68 mum -20 cm 2.22 cm 2.05 GeV 18.3 keV 8.38 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 -396 nm -18.1 cm 2.17 cm 3.15 keV 0 eV 0 fm 0 fm World initStep - 1 -22.2 mum -18.1 cm 2.17 cm 4.03 MeV 6.31 keV 323 mum 323 mum World eIoni + 0 2.62 mum -11.6 cm 1.96 cm 3.62 keV 0 eV 0 fm 0 fm World initStep + 1 17.5 mum -11.7 cm 1.96 cm 4.36 MeV 3.62 keV 406 mum 406 mum World eIoni ********************************************************************************************************* * 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 1.36 keV 0 eV 0 fm 0 fm World initStep - 1 7.6 mum -16.1 cm 2.11 cm 1.2 MeV 2.71 keV 87.9 mum 87.9 mum World eIoni + 0 0 fm -9.81 cm 1.87 cm 25.8 keV 0 eV 0 fm 0 fm World initStep + 1 -149 mum -10.4 cm 1.87 cm 63.6 MeV 7.57 keV 6.18 mm 6.18 mm World eIoni + 2 -186 mum -20 cm 1.87 cm 1.02 GeV 19.7 keV 9.58 cm 10.2 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2452,105 +2225,130 @@ 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 -2.42 cm 1.23 cm 292 MeV 12.3 keV 2.88 cm 2.88 cm World eIoni - 2 4.96 mum -11.5 cm 1.95 cm 1.2 GeV 38 keV 9.08 cm 12 cm World eIoni - 3 6.43 mum -14.7 cm 2.07 cm 1.52 GeV 13.4 keV 3.2 cm 15.2 cm World eIoni - 4 9.78 mum -20 cm 2.22 cm 2.05 GeV 22.3 keV 5.34 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -14.8 cm 2.07 cm 1.53 GeV 29.6 keV 15.3 cm 15.3 cm World eIoni + 2 894 nm -17.9 cm 2.17 cm 1.84 GeV 5.93 keV 3.08 cm 18.4 cm World eIoni + 3 1.81 mum -20 cm 2.22 cm 2.05 GeV 4.72 keV 2.08 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 894 nm -17.9 cm 2.17 cm 1.37 keV 0 eV 0 fm 0 fm World initStep + 1 -5.44 mum -17.9 cm 2.17 cm 901 keV 1.37 keV 82.4 mum 82.4 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -14.8 cm 2.07 cm 2.35 keV 0 eV 0 fm 0 fm World initStep + 1 -11.9 mum -14.9 cm 2.07 cm 2.11 MeV 2.35 keV 194 mum 194 mum World eIoni + +********************************************************************************************************* +* 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 34.8 keV 17.2 cm 17.2 cm World eIoni + 2 417 nm -20 cm 2.22 cm 2.05 GeV 8.48 keV 3.33 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.27 keV 0 eV 0 fm 0 fm World initStep + 1 -3.82 mum -16.7 cm 2.13 cm 801 keV 1.27 keV 73.3 mum 73.3 mum World eIoni + +********************************************************************************************************* +* 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.24 cm 1.58 cm 574 MeV 11.9 keV 5.72 cm 5.72 cm World eIoni + 2 2.36 mum -11.7 cm 1.96 cm 1.22 GeV 13.7 keV 6.51 cm 12.2 cm World eIoni + 3 2.49 mum -20 cm 2.22 cm 2.05 GeV 16.5 keV 8.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 2.36 mum -11.7 cm 1.96 cm 4.56 keV 0 eV 0 fm 0 fm World initStep + 1 13.2 mum -11.8 cm 1.96 cm 6.51 MeV 4.56 keV 610 mum 610 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.24 cm 1.58 cm 2.05 keV 0 eV 0 fm 0 fm World initStep + 1 -6.97 mum -5.26 cm 1.58 cm 1.7 MeV 2.05 keV 155 mum 155 mum World eIoni + +********************************************************************************************************* +* 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.9 cm 2.04 cm 1.44 GeV 27.5 keV 14.4 cm 14.4 cm World eIoni + 2 -1.48 mum -20 cm 2.22 cm 2.05 GeV 12.6 keV 6.09 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.9 cm 2.04 cm 3.28 keV 0 eV 0 fm 0 fm World initStep + 1 12.7 mum -13.9 cm 2.04 cm 3.67 MeV 3.28 keV 341 mum 341 mum World eIoni + +********************************************************************************************************* +* 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.73 cm 1.69 cm 722 MeV 14.3 keV 7.21 cm 7.21 cm World eIoni + 2 -237 nm -7.05 cm 1.72 cm 755 MeV 445 eV 3.22 mm 7.53 cm World eIoni + 3 -9.09 mum -19.6 cm 2.21 cm 2.01 GeV 27 keV 12.6 cm 20.1 cm World eIoni + 4 -9.39 mum -20 cm 2.22 cm 2.05 GeV 1.36 keV 3.98 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 6.43 mum -14.7 cm 2.07 cm 2.5 keV 0 eV 0 fm 0 fm World initStep - 1 -9.73 mum -14.7 cm 2.07 cm 2.8 MeV 4.99 keV 220 mum 220 mum World eIoni + 0 -9.09 mum -19.6 cm 2.21 cm 14.4 keV 0 eV 0 fm 0 fm World initStep + 1 161 mum -20 cm 2.18 cm 52.4 MeV 10.1 keV 4.25 mm 4.25 mm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.96 mum -11.5 cm 1.95 cm 1.69 keV 0 eV 0 fm 0 fm World initStep - 1 -1.75 mum -11.5 cm 1.95 cm 1.61 MeV 3.38 keV 121 mum 121 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.42 cm 1.23 cm 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 -7.73 mum -2.43 cm 1.23 cm 1.24 MeV 2.77 keV 90.6 mum 90.6 mum World eIoni - -********************************************************************************************************* -* 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.25 cm 1.48 cm 475 MeV 18.2 keV 4.72 cm 4.72 cm World eIoni - 2 5.68 mum -12.4 cm 1.99 cm 1.29 GeV 34.2 keV 8.2 cm 12.9 cm World eIoni - 3 9.91 mum -20 cm 2.22 cm 2.05 GeV 33.4 keV 7.58 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.68 mum -12.4 cm 1.99 cm 1.58 keV 0 eV 0 fm 0 fm World initStep - 1 -2.65 mum -12.4 cm 1.99 cm 1.46 MeV 3.15 keV 108 mum 108 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.25 cm 1.48 cm 3.72 keV 0 eV 0 fm 0 fm World initStep - 1 -26 mum -4.29 cm 1.48 cm 5.33 MeV 7.45 keV 431 mum 431 mum World eIoni - -********************************************************************************************************* -* 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.37 cm 1.49 cm 487 MeV 20.4 keV 4.85 cm 4.85 cm World eIoni - 2 442 nm -5.65 cm 1.61 cm 615 MeV 5.71 keV 1.29 cm 6.14 cm World eIoni - 3 4.97 mum -8.05 cm 1.78 cm 855 MeV 11.7 keV 2.41 cm 8.54 cm World eIoni - 4 13 mum -20 cm 2.21 cm 2.05 GeV 49.6 keV 12 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.97 mum -8.05 cm 1.78 cm 2.15 keV 0 eV 0 fm 0 fm World initStep - 1 18.2 mum -8.07 cm 1.78 cm 2.25 MeV 4.29 keV 174 mum 174 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 442 nm -5.65 cm 1.61 cm 21.2 keV 0 eV 0 fm 0 fm World initStep - 1 -164 mum -5.99 cm 1.62 cm 39 MeV 7.43 keV 3.49 mm 3.49 mm World eIoni - 2 -167 mum -6.12 cm 1.62 cm 52.7 MeV 199 eV 1.37 mm 4.86 mm World eIoni - 3 -208 mum -20 cm 1.63 cm 1.44 GeV 53 keV 13.9 cm 14.4 cm OutOfWorldTransportation + 0 -237 nm -7.05 cm 1.72 cm 35.1 keV 0 eV 0 fm 0 fm World initStep + 1 32 mum -9.45 cm 1.73 cm 242 MeV 27.7 keV 2.41 cm 2.41 cm World eIoni + 2 34.5 mum -17.8 cm 1.73 cm 1.08 GeV 17.4 keV 8.38 cm 10.8 cm World eIoni + 3 34.6 mum -20 cm 1.73 cm 1.3 GeV 5.32 keV 2.17 cm 13 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -167 mum -6.12 cm 1.62 cm 1.59 keV 0 eV 0 fm 0 fm World initStep - 1 -161 mum -6.13 cm 1.63 cm 1.47 MeV 3.17 keV 109 mum 109 mum World eIoni + 0 34.5 mum -17.8 cm 1.73 cm 1.13 keV 0 eV 0 fm 0 fm World initStep + 1 35.2 mum -17.8 cm 1.73 cm 666 keV 1.13 keV 61.1 mum 61.1 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -4.37 cm 1.49 cm 1.39 keV 0 eV 0 fm 0 fm World initStep - 1 -4.18 mum -4.38 cm 1.49 cm 1.25 MeV 2.79 keV 91.3 mum 91.3 mum World eIoni + 0 0 fm -6.73 cm 1.69 cm 9.58 keV 0 eV 0 fm 0 fm World initStep + 1 36.6 mum -6.95 cm 1.69 cm 24.4 MeV 9.58 keV 2.31 mm 2.31 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2558,34 +2356,35 @@ 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 -2.21 mm 4.57 mm 72.1 MeV 1.65 keV 5.22 mm 5.22 mm World eIoni - 2 -2.1 mum -16.8 cm 2.14 cm 1.73 GeV 64.9 keV 16.8 cm 17.3 cm World eIoni - 3 -2.24 mum -19.1 cm 2.2 cm 1.96 GeV 10.3 keV 2.31 cm 19.6 cm World eIoni - 4 -2.27 mum -20 cm 2.22 cm 2.05 GeV 3.61 keV 9.18 mm 20.5 cm OutOfWorldTransportation + 1 0 fm -6.66 cm 1.69 cm 716 MeV 13.6 keV 7.14 cm 7.14 cm World eIoni + 2 -407 nm -7.9 cm 1.77 cm 840 MeV 2.8 keV 1.24 cm 8.39 cm World eIoni + 3 -1.16 mum -15.1 cm 2.08 cm 1.56 GeV 15.1 keV 7.18 cm 15.6 cm World eIoni + 4 -2.49 mum -20 cm 2.22 cm 2.05 GeV 10.8 keV 4.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 -2.24 mum -19.1 cm 2.2 cm 5.16 keV 0 eV 0 fm 0 fm World initStep - 1 -6.2 mum -19.2 cm 2.19 cm 9.19 MeV 10.3 keV 758 mum 758 mum World eIoni + 0 -1.16 mum -15.1 cm 2.08 cm 1.58 keV 0 eV 0 fm 0 fm World initStep + 1 5.6 mum -15.1 cm 2.08 cm 1.12 MeV 1.58 keV 102 mum 102 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -2.1 mum -16.8 cm 2.14 cm 1.31 keV 0 eV 0 fm 0 fm World initStep - 1 -1.04 mum -16.8 cm 2.14 cm 1.15 MeV 2.62 keV 83.6 mum 83.6 mum World eIoni + 0 -407 nm -7.9 cm 1.77 cm 2.31 keV 0 eV 0 fm 0 fm World initStep + 1 -3.62 mum -7.91 cm 1.77 cm 2.07 MeV 2.31 keV 190 mum 190 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.21 mm 4.57 mm 1.13 keV 0 eV 0 fm 0 fm World initStep - 1 1.17 mum -2.28 mm 4.56 mm 935 keV 2.25 keV 67.9 mum 67.9 mum World eIoni + 0 0 fm -6.66 cm 1.69 cm 2.6 keV 0 eV 0 fm 0 fm World initStep + 1 5.46 mum -6.67 cm 1.69 cm 1.6 MeV 861 eV 149 mum 149 mum World eIoni + 2 19.1 mum -20 cm 1.69 cm 1.33 GeV 19.1 keV 13.3 cm 13.3 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2593,96 +2392,367 @@ 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.03 mm 7.67 mm 120 MeV 3.49 keV 1.1 cm 1.1 cm World eIoni - 2 31.8 nm -3.74 cm 1.42 cm 424 MeV 11.4 keV 3.12 cm 4.21 cm World eIoni - 3 -10.5 mum -20 cm 2.22 cm 2.05 GeV 67.2 keV 16.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 31.8 nm -3.74 cm 1.42 cm 7.9 keV 0 eV 0 fm 0 fm World initStep - 1 60.1 mum -3.88 cm 1.43 cm 16.9 MeV 10.1 keV 1.43 mm 1.43 mm World eIoni - 2 62.6 mum -5.11 cm 1.43 cm 140 MeV 3.53 keV 1.23 cm 1.37 cm World eIoni - 3 71.8 mum -20 cm 1.43 cm 1.63 GeV 61.4 keV 14.9 cm 16.3 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 62.6 mum -5.11 cm 1.43 cm 1.55 keV 0 eV 0 fm 0 fm World initStep - 1 56.7 mum -5.12 cm 1.43 cm 1.43 MeV 3.11 keV 106 mum 106 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -7.03 mm 7.67 mm 1.27 keV 0 eV 0 fm 0 fm World initStep - 1 -52.7 nm -7.11 mm 7.67 mm 1.13 MeV 2.53 keV 79.3 mum 79.3 mum World eIoni - -********************************************************************************************************* -* 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 79.6 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.11 cm 1.34 cm 361 MeV 11.6 keV 3.58 cm 3.58 cm World eIoni - 2 1.65 mum -6.43 cm 1.67 cm 693 MeV 12.3 keV 3.33 cm 6.92 cm World eIoni - 3 3.09 mum -17 cm 2.14 cm 1.75 GeV 44 keV 10.5 cm 17.5 cm World eIoni - 4 3.94 mum -19.4 cm 2.21 cm 1.99 GeV 11.5 keV 2.4 cm 19.9 cm World eBrem - 5 4.14 mum -20 cm 2.22 cm 2.05 GeV 4.24 keV 6.4 mm 20.5 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 3.94 mum -19.4 cm 2.21 cm 198 keV 0 eV 0 fm 0 fm World initStep - 1 2.72 mum -20 cm 2.22 cm 198 keV 0 eV 6.4 mm 6.4 mm OutOfWorldTransportation + 1 0 fm -15.5 cm 2.1 cm 1.6 GeV 31 keV 16 cm 16 cm World eIoni + 2 2.41 nm -17.1 cm 2.14 cm 1.76 GeV 3.43 keV 1.59 cm 17.6 cm World eIoni + 3 2.72 nm -18.2 cm 2.17 cm 1.87 GeV 3.15 keV 1.05 cm 18.7 cm World eIoni + 4 -151 nm -20 cm 2.22 cm 2.05 GeV 4.32 keV 1.83 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.09 mum -17 cm 2.14 cm 2.69 keV 0 eV 0 fm 0 fm World initStep - 1 -14.5 mum -17 cm 2.14 cm 3.17 MeV 5.39 keV 251 mum 251 mum World eIoni + 0 2.72 nm -18.2 cm 2.17 cm 1.23 keV 0 eV 0 fm 0 fm World initStep + 1 2.62 mum -18.2 cm 2.17 cm 759 keV 1.23 keV 69.4 mum 69.4 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.65 mum -6.43 cm 1.67 cm 2.9 keV 0 eV 0 fm 0 fm World initStep - 1 4.72 mum -6.45 cm 1.67 cm 2.71 MeV 3.36 keV 217 mum 217 mum World eIoni - 2 32.6 mum -20 cm 1.67 cm 1.36 GeV 39 keV 13.5 cm 13.6 cm OutOfWorldTransportation + 0 2.41 nm -17.1 cm 2.14 cm 1.02 keV 0 eV 0 fm 0 fm World initStep + 1 30.6 nm -17.1 cm 2.14 cm 574 keV 1.02 keV 52.7 mum 52.7 mum World eIoni + +********************************************************************************************************* +* 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 1.57 keV 0 eV 0 fm 0 fm World initStep + 1 -47.4 nm -15.5 cm 2.1 cm 1.1 MeV 1.57 keV 101 mum 101 mum World eIoni + +********************************************************************************************************* +* 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.1 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.94 mm 6.58 mm 99.3 MeV 1.15 keV 8.61 mm 8.61 mm World eIoni + 2 4.58 mum -3.47 cm 1.39 cm 397 MeV 7.66 keV 3.08 cm 3.94 cm World eIoni + 3 5.69 mum -7.81 cm 1.76 cm 831 MeV 8.4 keV 4.36 cm 8.3 cm World eIoni + 4 6.39 mum -8.86 cm 1.82 cm 936 MeV 1.22 keV 1.05 cm 9.35 cm World eIoni + 5 13.9 mum -20 cm 2.22 cm 2.05 GeV 22.2 keV 11.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 6.39 mum -8.86 cm 1.82 cm 1.85 keV 0 eV 0 fm 0 fm World initStep + 1 -1.24 mum -8.87 cm 1.82 cm 1.44 MeV 1.85 keV 132 mum 132 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 5.69 mum -7.81 cm 1.76 cm 2.04 keV 0 eV 0 fm 0 fm World initStep + 1 -4.06 mum -7.83 cm 1.76 cm 1.68 MeV 2.04 keV 154 mum 154 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 4.58 mum -3.47 cm 1.39 cm 3.34 keV 0 eV 0 fm 0 fm World initStep + 1 9.66 mum -3.5 cm 1.39 cm 3.79 MeV 3.34 keV 352 mum 352 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.94 mm 6.58 mm 1.57 keV 0 eV 0 fm 0 fm World initStep + 1 -6.07 mum -5.03 mm 6.59 mm 1.13 MeV 1.57 keV 102 mum 102 mum World eIoni + +********************************************************************************************************* +* 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 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 -106 mum 1.03 mm 51.1 MeV 259 eV 1.04 mm 1.04 mm World eIoni + 2 1.58 mum -4.5 mm 6.33 mm 95 MeV 1.52 keV 7.07 mm 8.11 mm World eIoni + 3 1.52 mum -2.84 cm 1.3 cm 334 MeV 4.97 keV 2.5 cm 3.31 cm World eIoni + 4 -3.38 mum -15.8 cm 2.1 cm 1.63 GeV 25.5 keV 12.9 cm 16.3 cm World eIoni + 5 -3.15 mum -20 cm 2.22 cm 2.05 GeV 11.3 keV 4.25 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.38 mum -15.8 cm 2.1 cm 1.73 keV 0 eV 0 fm 0 fm World initStep + 1 -11.5 mum -15.8 cm 2.1 cm 1.29 MeV 1.73 keV 118 mum 118 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.52 mum -2.84 cm 1.3 cm 1.08 keV 0 eV 0 fm 0 fm World initStep + 1 5.93 mum -2.85 cm 1.3 cm 623 keV 1.08 keV 57.2 mum 57.2 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 1.58 mum -4.5 mm 6.33 mm 1.12 keV 0 eV 0 fm 0 fm World initStep + 1 4.03 mum -4.56 mm 6.33 mm 690 keV 1.12 keV 60.9 mum 60.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -106 mum 1.03 mm 1.89 keV 0 eV 0 fm 0 fm World initStep + 1 -3.06 mum -242 mum 1.03 mm 1.48 MeV 1.89 keV 137 mum 137 mum World eIoni + +********************************************************************************************************* +* 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.82 cm 1.54 cm 532 MeV 10.1 keV 5.3 cm 5.3 cm World eIoni + 2 -9.59 nm -5.37 cm 1.59 cm 587 MeV 569 eV 5.54 mm 5.85 cm World eIoni + 3 -1.87 mum -9.06 cm 1.83 cm 956 MeV 9.48 keV 3.7 cm 9.55 cm World eIoni + 4 -7.1 mum -20 cm 2.22 cm 2.05 GeV 22.6 keV 10.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 -1.87 mum -9.06 cm 1.83 cm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 2.52 mum -9.06 cm 1.83 cm 609 keV 1.06 keV 55.8 mum 55.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -9.59 nm -5.37 cm 1.59 cm 1.37 keV 0 eV 0 fm 0 fm World initStep + 1 6.34 mum -5.38 cm 1.59 cm 905 keV 1.37 keV 82.8 mum 82.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -4.82 cm 1.54 cm 21.8 keV 0 eV 0 fm 0 fm World initStep + 1 962 nm -5.86 cm 1.55 cm 107 MeV 21.8 keV 1.05 cm 1.05 cm World eIoni + +********************************************************************************************************* +* 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.22 cm 1.2 cm 272 MeV 5.74 keV 2.68 cm 2.68 cm World eIoni + 2 4.27 mum -8.97 cm 1.83 cm 947 MeV 14.3 keV 6.78 cm 9.46 cm World eIoni + 3 8.95 mum -20 cm 2.22 cm 2.05 GeV 22.9 keV 11 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.27 mum -8.97 cm 1.83 cm 1.15 keV 0 eV 0 fm 0 fm World initStep + 1 232 nm -8.98 cm 1.83 cm 687 keV 1.15 keV 62.8 mum 62.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -2.22 cm 1.2 cm 1.15 keV 0 eV 0 fm 0 fm World initStep + 1 -5.17 mum -2.23 cm 1.2 cm 685 keV 1.15 keV 62.7 mum 62.7 mum World eIoni + +********************************************************************************************************* +* 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.13 cm 9.32 mm 163 MeV 1.98 keV 1.56 cm 1.56 cm World eIoni + 2 -6.15 mum -9.58 cm 1.86 cm 1.01 GeV 16.9 keV 8.51 cm 10.1 cm World eIoni + 3 -10.9 mum -19.9 cm 2.22 cm 2.04 GeV 22.1 keV 10.3 cm 20.4 cm World eIoni + 4 -10.9 mum -20 cm 2.22 cm 2.05 GeV 184 eV 954 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 -10.9 mum -19.9 cm 2.22 cm 1.68 keV 0 eV 0 fm 0 fm World initStep + 1 -8.91 mum -19.9 cm 2.22 cm 1.24 MeV 1.68 keV 114 mum 114 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -6.15 mum -9.58 cm 1.86 cm 1.14 keV 0 eV 0 fm 0 fm World initStep + 1 -1.04 mum -9.58 cm 1.86 cm 676 keV 1.14 keV 61.9 mum 61.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.13 cm 9.32 mm 1.28 keV 0 eV 0 fm 0 fm World initStep + 1 5.41 mum -1.14 cm 9.32 mm 808 keV 1.28 keV 74.2 mum 74.2 mum World eIoni + +********************************************************************************************************* +* 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 1.99 cm 1.31 GeV 24.8 keV 13.1 cm 13.1 cm World eIoni + 2 324 nm -14 cm 2.05 cm 1.45 GeV 3.09 keV 1.42 cm 14.5 cm World eIoni + 3 945 nm -19.3 cm 2.2 cm 1.98 GeV 11.3 keV 5.27 cm 19.8 cm World eIoni + 4 953 nm -20 cm 2.22 cm 2.05 GeV 1.4 keV 7.05 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 945 nm -19.3 cm 2.2 cm 1.18 keV 0 eV 0 fm 0 fm World initStep + 1 3.69 mum -19.3 cm 2.2 cm 713 keV 1.18 keV 65.3 mum 65.3 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 324 nm -14 cm 2.05 cm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 1.96 mum -14 cm 2.05 cm 592 keV 1.04 keV 54.4 mum 54.4 mum World eIoni + +********************************************************************************************************* +* 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.83 keV 0 eV 0 fm 0 fm World initStep + 1 -6.56 mum -12.6 cm 2 cm 1.42 MeV 1.83 keV 130 mum 130 mum World eIoni + +********************************************************************************************************* +* 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.79 cm 1.87 cm 1.03 GeV 19.4 keV 10.3 cm 10.3 cm World eIoni + 2 55.2 nm -11.5 cm 1.95 cm 1.2 GeV 2.79 keV 1.67 cm 12 cm World eIoni + 3 2.05 mum -20 cm 2.22 cm 2.05 GeV 18.6 keV 8.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 55.2 nm -11.5 cm 1.95 cm 1.93 keV 0 eV 0 fm 0 fm World initStep + 1 -7.09 mum -11.5 cm 1.95 cm 1.54 MeV 1.93 keV 141 mum 141 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -9.79 cm 1.87 cm 2.73 keV 0 eV 0 fm 0 fm World initStep + 1 -992 nm -9.81 cm 1.87 cm 2.72 MeV 2.73 keV 251 mum 251 mum World eIoni + +********************************************************************************************************* +* 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.3 cm 1.37 cm 380 MeV 6.47 keV 3.78 cm 3.78 cm World eIoni + 2 -239 nm -3.59 cm 1.41 cm 409 MeV 496 eV 2.9 mm 4.06 cm World eIoni + 3 4.25 mum -8.22 cm 1.79 cm 872 MeV 10.1 keV 4.64 cm 8.71 cm World eIoni + 4 15.8 mum -20 cm 2.22 cm 2.05 GeV 24.3 keV 11.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.25 mum -8.22 cm 1.79 cm 14.8 keV 0 eV 0 fm 0 fm World initStep + 1 -74.6 mum -8.72 cm 1.78 cm 54.2 MeV 14.8 keV 5.16 mm 5.16 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -239 nm -3.59 cm 1.41 cm 16.7 keV 0 eV 0 fm 0 fm World initStep + 1 -47 mum -3.75 cm 1.41 cm 17.2 MeV 4.13 keV 1.66 mm 1.66 mm World eIoni + 2 -79.3 mum -13.2 cm 1.41 cm 960 MeV 17.6 keV 9.42 cm 9.59 cm World eIoni + 3 -81.5 mum -15.3 cm 1.41 cm 1.17 GeV 3.25 keV 2.15 cm 11.7 cm World eIoni + 4 -81.9 mum -15.8 cm 1.41 cm 1.22 GeV 2.49 keV 4.32 mm 12.2 cm World eIoni + 5 -85 mum -19.3 cm 1.41 cm 1.58 GeV 9.38 keV 3.58 cm 15.7 cm World eIoni + 6 -85.6 mum -20 cm 1.41 cm 1.64 GeV 1.55 keV 6.66 mm 16.4 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -85 mum -19.3 cm 1.41 cm 1.73 keV 0 eV 0 fm 0 fm World initStep + 1 -80.6 mum -19.3 cm 1.41 cm 1.3 MeV 1.73 keV 119 mum 119 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -81.9 mum -15.8 cm 1.41 cm 5.54 keV 0 eV 0 fm 0 fm World initStep + 1 -82.4 mum -15.8 cm 1.42 cm 9.18 MeV 5.54 keV 864 mum 864 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 3 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.72 mum -6.45 cm 1.67 cm 1.32 keV 0 eV 0 fm 0 fm World initStep - 1 -3.07 mum -6.46 cm 1.67 cm 1.16 MeV 2.63 keV 84.1 mum 84.1 mum World eIoni + 0 -81.5 mum -15.3 cm 1.41 cm 2.12 keV 0 eV 0 fm 0 fm World initStep + 1 -78.3 mum -15.3 cm 1.41 cm 1.79 MeV 2.12 keV 164 mum 164 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -79.3 mum -13.2 cm 1.41 cm 3.46 keV 0 eV 0 fm 0 fm World initStep + 1 -70.4 mum -13.2 cm 1.41 cm 4.05 MeV 3.46 keV 377 mum 377 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -3.11 cm 1.34 cm 1.84 keV 0 eV 0 fm 0 fm World initStep - 1 -6.63 mum -3.13 cm 1.34 cm 1.8 MeV 3.67 keV 137 mum 137 mum World eIoni + 0 0 fm -3.3 cm 1.37 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 4.73 mum -3.31 cm 1.37 cm 619 keV 1.07 keV 56.7 mum 56.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2690,25 +2760,61 @@ 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 -6.81 mm 7.56 mm 118 MeV 2.87 keV 1.07 cm 1.07 cm World eIoni - 2 5.99 mum -11.7 cm 1.96 cm 1.22 GeV 43.7 keV 11.1 cm 12.2 cm World eIoni - 3 6.99 mum -20 cm 2.22 cm 2.05 GeV 32.3 keV 8.32 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -4.72 cm 1.53 cm 522 MeV 9.49 keV 5.21 cm 5.21 cm World eIoni + 2 -5.03 mum -20 cm 2.22 cm 2.05 GeV 32.8 keV 15.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 -4.72 cm 1.53 cm 1.38 keV 0 eV 0 fm 0 fm World initStep + 1 6.34 mum -4.73 cm 1.53 cm 918 keV 1.38 keV 83.8 mum 83.8 mum World eIoni + +********************************************************************************************************* +* 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.76 cm 1.29 cm 326 MeV 4.38 keV 3.23 cm 3.23 cm World eIoni + 2 800 nm -11 cm 1.93 cm 1.15 GeV 17.7 keV 8.29 cm 11.5 cm World eIoni + 3 7.54 mum -20 cm 2.22 cm 2.05 GeV 18.4 keV 8.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 5.99 mum -11.7 cm 1.96 cm 1 keV 0 eV 0 fm 0 fm World initStep - 1 7.06 mum -11.7 cm 1.96 cm 826 keV 2 keV 57.8 mum 57.8 mum World eIoni + 0 800 nm -11 cm 1.93 cm 15.7 keV 0 eV 0 fm 0 fm World initStep + 1 -44.4 mum -11.1 cm 1.93 cm 10.2 MeV 896 eV 995 mum 995 mum World eIoni + 2 -90.9 mum -18.7 cm 1.94 cm 770 MeV 13.5 keV 7.6 cm 7.7 cm World eIoni + 3 -94.3 mum -20 cm 1.94 cm 898 MeV 3.64 keV 1.28 cm 8.98 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -90.9 mum -18.7 cm 1.94 cm 41.1 keV 0 eV 0 fm 0 fm World initStep + 1 -25.2 mum -19 cm 1.94 cm 27.6 MeV 1.58 keV 2.71 mm 2.71 mm World eIoni + 2 -10 mum -20 cm 1.95 cm 129 MeV 950 eV 1.01 cm 1.28 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -25.2 mum -19 cm 1.94 cm 3.39 keV 0 eV 0 fm 0 fm World initStep + 1 -20.6 mum -19 cm 1.95 cm 3.9 MeV 3.39 keV 362 mum 362 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.81 mm 7.56 mm 1.08 keV 0 eV 0 fm 0 fm World initStep - 1 -4.65 mum -6.87 mm 7.56 mm 893 keV 2.15 keV 63.8 mum 63.8 mum World eIoni + 0 0 fm -2.76 cm 1.29 cm 1.25 keV 0 eV 0 fm 0 fm World initStep + 1 -1 mum -2.77 cm 1.29 cm 776 keV 1.25 keV 71.4 mum 71.4 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2716,17 +2822,25 @@ 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 -6.87 cm 1.7 cm 737 MeV 29.5 keV 7.36 cm 7.36 cm World eIoni - 2 -9.46 mum -20 cm 2.22 cm 2.05 GeV 57 keV 13.1 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -5.72 cm 1.62 cm 622 MeV 12.6 keV 6.21 cm 6.21 cm World eIoni + 2 -2.67 mum -14.6 cm 2.06 cm 1.51 GeV 18.5 keV 8.84 cm 15 cm World eIoni + 3 -2.8 mum -20 cm 2.22 cm 2.05 GeV 11.6 keV 5.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 -2.67 mum -14.6 cm 2.06 cm 2.63 keV 0 eV 0 fm 0 fm World initStep + 1 -9.51 mum -14.6 cm 2.06 cm 2.54 MeV 2.63 keV 234 mum 234 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -6.87 cm 1.7 cm 8.5 keV 0 eV 0 fm 0 fm World initStep - 1 87.1 mum -7.02 cm 1.7 cm 18.2 MeV 8.35 keV 1.54 mm 1.54 mm World eIoni - 2 104 mum -20 cm 1.7 cm 1.32 GeV 46.2 keV 13 cm 13.1 cm OutOfWorldTransportation + 0 0 fm -5.72 cm 1.62 cm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 4.28 mum -5.73 cm 1.62 cm 590 keV 1.04 keV 54.3 mum 54.3 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2734,184 +2848,360 @@ 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 -2.12 cm 1.18 cm 262 MeV 8.97 keV 2.57 cm 2.57 cm World eIoni - 2 6.87 mum -4.98 cm 1.55 cm 548 MeV 11.7 keV 2.89 cm 5.46 cm World eIoni - 3 15.5 mum -7.99 cm 1.77 cm 849 MeV 9.08 keV 3.02 cm 8.48 cm World eIoni - 4 19.6 mum -10.6 cm 1.91 cm 1.11 GeV 8.67 keV 2.61 cm 11.1 cm World eIoni - 5 32 mum -20 cm 2.22 cm 2.05 GeV 40.1 keV 9.41 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -9.33 cm 1.85 cm 983 MeV 20.2 keV 9.82 cm 9.82 cm World eIoni + 2 -3.49 mum -20 cm 2.22 cm 2.05 GeV 22.6 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.33 cm 1.85 cm 5.42 keV 0 eV 0 fm 0 fm World initStep + 1 20.3 mum -9.41 cm 1.85 cm 8.81 MeV 5.42 keV 828 mum 828 mum World eIoni + +********************************************************************************************************* +* 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.05 cm 1.56 cm 555 MeV 10.5 keV 5.53 cm 5.53 cm World eIoni + 2 2.55 mum -11 cm 1.93 cm 1.15 GeV 11.7 keV 6.01 cm 11.5 cm World eIoni + 3 4.14 mum -20 cm 2.22 cm 2.05 GeV 19.5 keV 8.96 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.55 mum -11 cm 1.93 cm 2.73 keV 0 eV 0 fm 0 fm World initStep + 1 4.49 mum -11.1 cm 1.93 cm 2.72 MeV 2.73 keV 251 mum 251 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -5.05 cm 1.56 cm 1.94 keV 0 eV 0 fm 0 fm World initStep + 1 -7.5 mum -5.06 cm 1.56 cm 1.55 MeV 1.94 keV 141 mum 141 mum World eIoni + +********************************************************************************************************* +* 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.56 cm 1.05 cm 206 MeV 3.69 keV 2.01 cm 2.01 cm World eIoni + 2 1.53 mum -9.84 cm 1.88 cm 1.03 GeV 17.3 keV 8.33 cm 10.3 cm World eIoni + 3 -365 nm -18.6 cm 2.19 cm 1.91 GeV 18.5 keV 8.77 cm 19.1 cm World eIoni + 4 -392 nm -18.7 cm 2.19 cm 1.92 GeV 386 eV 1.1 mm 19.2 cm World eIoni + 5 -395 nm -20 cm 2.22 cm 2.05 GeV 4.05 keV 1.28 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 19.6 mum -10.6 cm 1.91 cm 2.27 keV 0 eV 0 fm 0 fm World initStep - 1 5.32 mum -10.6 cm 1.91 cm 2.44 MeV 4.53 keV 190 mum 190 mum World eIoni + 0 -392 nm -18.7 cm 2.19 cm 2.2 keV 0 eV 0 fm 0 fm World initStep + 1 -11.4 mum -18.7 cm 2.19 cm 1.9 MeV 2.2 keV 174 mum 174 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 15.5 mum -7.99 cm 1.77 cm 1.7 keV 0 eV 0 fm 0 fm World initStep - 1 26 mum -8 cm 1.77 cm 1.63 MeV 3.41 keV 122 mum 122 mum World eIoni + 0 -365 nm -18.6 cm 2.19 cm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 2.33 mum -18.6 cm 2.19 cm 774 keV 1.24 keV 70.8 mum 70.8 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 6.87 mum -4.98 cm 1.55 cm 12.8 keV 0 eV 0 fm 0 fm World initStep - 1 -107 mum -5.19 cm 1.55 cm 25 MeV 10.7 keV 2.18 mm 2.18 mm World eIoni - 2 -125 mum -20 cm 1.55 cm 1.51 GeV 51.8 keV 14.8 cm 15 cm OutOfWorldTransportation + 0 1.53 mum -9.84 cm 1.88 cm 2.6 keV 0 eV 0 fm 0 fm World initStep + 1 12.1 mum -9.86 cm 1.88 cm 2.49 MeV 2.6 keV 230 mum 230 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.12 cm 1.18 cm 12.8 keV 0 eV 0 fm 0 fm World initStep - 1 -81.2 mum -2.28 cm 1.18 cm 19 MeV 8.11 keV 1.66 mm 1.66 mm World eIoni - 2 -80.1 mum -20 cm 1.18 cm 1.79 GeV 63.1 keV 17.7 cm 17.9 cm OutOfWorldTransportation + 0 0 fm -1.56 cm 1.05 cm 5.01 keV 0 eV 0 fm 0 fm World initStep + 1 -3.78 mum -1.63 cm 1.05 cm 7.61 MeV 5.01 keV 714 mum 714 mum World eIoni + +********************************************************************************************************* +* 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.54 cm 1.4 cm 404 MeV 9.35 keV 4.01 cm 4.01 cm World eIoni + 2 130 nm -10.6 cm 1.91 cm 1.11 GeV 15.1 keV 7.1 cm 11.1 cm World eIoni + 3 59.7 nm -10.9 cm 1.92 cm 1.14 GeV 1.16 keV 2.5 mm 11.4 cm World eIoni + 4 -1.36 mum -16.2 cm 2.12 cm 1.67 GeV 11.9 keV 5.3 cm 16.7 cm World eIoni + 5 -2.06 mum -20 cm 2.22 cm 2.05 GeV 6.54 keV 3.84 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.36 mum -16.2 cm 2.12 cm 1.66 keV 0 eV 0 fm 0 fm World initStep + 1 -1.96 mum -16.2 cm 2.12 cm 1.21 MeV 1.66 keV 111 mum 111 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 59.7 nm -10.9 cm 1.92 cm 1.78 keV 0 eV 0 fm 0 fm World initStep + 1 1.2 mum -10.9 cm 1.92 cm 1.36 MeV 1.78 keV 124 mum 124 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 130 nm -10.6 cm 1.91 cm 1.04 keV 0 eV 0 fm 0 fm World initStep + 1 4.77 mum -10.6 cm 1.91 cm 592 keV 1.04 keV 54.4 mum 54.4 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.54 cm 1.4 cm 8.46 keV 0 eV 0 fm 0 fm World initStep + 1 -771 nm -3.72 cm 1.39 cm 19.6 MeV 8.46 keV 1.85 mm 1.85 mm World eIoni + +********************************************************************************************************* +* 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.6 cm 2.19 cm 1.91 GeV 37.6 keV 19.1 cm 19.1 cm World eIoni + 2 2.23 nm -19.9 cm 2.22 cm 2.04 GeV 1.73 keV 1.24 cm 20.4 cm World eIoni + 3 -7.59 nm -20 cm 2.22 cm 2.05 GeV 18.1 eV 1.25 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.23 nm -19.9 cm 2.22 cm 1.24 keV 0 eV 0 fm 0 fm World initStep + 1 2.67 mum -19.9 cm 2.22 cm 773 keV 1.24 keV 70.7 mum 70.7 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -18.6 cm 2.19 cm 1.1 keV 0 eV 0 fm 0 fm World initStep + 1 -52.3 nm -18.6 cm 2.19 cm 643 keV 1.1 keV 59 mum 59 mum World eIoni + +********************************************************************************************************* +* 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.32 cm 1.37 cm 382 MeV 9.41 keV 3.79 cm 3.79 cm World eIoni + 2 -1.66 mum -8.42 cm 1.8 cm 892 MeV 10.4 keV 5.12 cm 8.91 cm World eIoni + 3 -948 nm -10.8 cm 1.92 cm 1.13 GeV 4.93 keV 2.44 cm 11.3 cm World eIoni + 4 -841 nm -11.7 cm 1.96 cm 1.22 GeV 1.1 keV 8.14 mm 12.2 cm World eIoni + 5 1.42 mum -20 cm 2.22 cm 2.05 GeV 16.8 keV 8.34 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 -841 nm -11.7 cm 1.96 cm 1.67 keV 0 eV 0 fm 0 fm World initStep + 1 -6.25 mum -11.7 cm 1.96 cm 1.23 MeV 1.67 keV 112 mum 112 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -948 nm -10.8 cm 1.92 cm 1.74 keV 0 eV 0 fm 0 fm World initStep + 1 1.86 mum -10.9 cm 1.92 cm 1.31 MeV 1.74 keV 120 mum 120 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.66 mum -8.42 cm 1.8 cm 2.37 keV 0 eV 0 fm 0 fm World initStep + 1 -13.7 mum -8.43 cm 1.8 cm 2.14 MeV 2.37 keV 197 mum 197 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -3.32 cm 1.37 cm 1.07 keV 0 eV 0 fm 0 fm World initStep + 1 2.82 mum -3.32 cm 1.37 cm 618 keV 1.07 keV 56.9 mum 56.9 mum World eIoni + +********************************************************************************************************* +* 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.71 cm 1.09 cm 221 MeV 4.13 keV 2.16 cm 2.16 cm World eIoni + 2 -1.92 mum -4.26 cm 1.48 cm 476 MeV 5.63 keV 2.58 cm 4.74 cm World eIoni + 3 -1.37 mum -12 cm 1.97 cm 1.25 GeV 17.6 keV 7.79 cm 12.5 cm World eIoni + 4 -1.16 mum -13.2 cm 2.02 cm 1.37 GeV 1.93 keV 1.18 cm 13.7 cm World eIoni + 5 -4.08 mum -20 cm 2.22 cm 2.05 GeV 14.1 keV 6.79 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.16 mum -13.2 cm 2.02 cm 17.6 keV 0 eV 0 fm 0 fm World initStep + 1 49.2 mum -13.4 cm 2.02 cm 18.9 MeV 3.09 keV 1.83 mm 1.83 mm World eIoni + 2 75.6 mum -17.1 cm 2.03 cm 392 MeV 6.17 keV 3.73 cm 3.91 cm World eIoni + 3 80.5 mum -18.7 cm 2.03 cm 552 MeV 4.19 keV 1.6 cm 5.52 cm World eIoni + 4 83.5 mum -20 cm 2.03 cm 680 MeV 1.9 keV 1.28 cm 6.79 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 80.5 mum -18.7 cm 2.03 cm 1.11 keV 0 eV 0 fm 0 fm World initStep + 1 79.1 mum -18.7 cm 2.03 cm 653 keV 1.11 keV 59.9 mum 59.9 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 6, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 75.6 mum -17.1 cm 2.03 cm 3.3 keV 0 eV 0 fm 0 fm World initStep + 1 58.1 mum -17.2 cm 2.03 cm 3.73 MeV 3.3 keV 346 mum 346 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.37 mum -12 cm 1.97 cm 1.58 keV 0 eV 0 fm 0 fm World initStep + 1 -4.58 mum -12 cm 1.97 cm 1.11 MeV 1.58 keV 102 mum 102 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -1.92 mum -4.26 cm 1.48 cm 1e+03 eV 0 eV 0 fm 0 fm World initStep + 1 -6.12 mum -4.26 cm 1.48 cm 552 keV 1e+03 eV 50.8 mum 50.8 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -1.71 cm 1.09 cm 1.05 keV 0 eV 0 fm 0 fm World initStep + 1 3.51 mum -1.72 cm 1.09 cm 596 keV 1.05 keV 55 mum 55 mum World eIoni + +********************************************************************************************************* +* 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.58 cm 1.52 cm 508 MeV 10.9 keV 5.06 cm 5.06 cm World eIoni + 2 3.37 mum -20 cm 2.22 cm 2.05 GeV 32.9 keV 15.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 -4.58 cm 1.52 cm 1.6 keV 0 eV 0 fm 0 fm World initStep + 1 -4.54 mum -4.59 cm 1.51 cm 1.13 MeV 1.6 keV 104 mum 104 mum World eIoni + +********************************************************************************************************* +* 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.5 cm 1.95 cm 1.2 GeV 23.3 keV 12 cm 12 cm World eIoni + 2 -30.6 nm -14.9 cm 2.08 cm 1.54 GeV 7.59 keV 3.33 cm 15.4 cm World eIoni + 3 -1.43 mum -20 cm 2.22 cm 2.05 GeV 10.9 keV 5.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 -30.6 nm -14.9 cm 2.08 cm 5.29 keV 0 eV 0 fm 0 fm World initStep + 1 19.8 mum -15 cm 2.07 cm 8.43 MeV 5.29 keV 792 mum 792 mum World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 0 fm -11.5 cm 1.95 cm 994 eV 0 eV 0 fm 0 fm World initStep + 1 172 nm -11.5 cm 1.95 cm 550 keV 994 eV 50.5 mum 50.5 mum World eIoni + +********************************************************************************************************* +* 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.4 cm 2.02 cm 1.39 GeV 26.7 keV 13.9 cm 13.9 cm World eIoni + 2 4.73 mum -20 cm 2.22 cm 2.05 GeV 15.2 keV 6.64 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.4 cm 2.02 cm 14.3 keV 0 eV 0 fm 0 fm World initStep + 1 -70 mum -13.6 cm 2.02 cm 21.2 MeV 3.98 keV 2.03 mm 2.03 mm World eIoni + 2 -78 mum -13.8 cm 2.02 cm 47.2 MeV 150 eV 2.6 mm 4.64 mm World eIoni + 3 -85.9 mum -14.8 cm 2.02 cm 142 MeV 2.02 keV 9.53 mm 1.42 cm World eIoni + 4 -89.8 mum -16 cm 2.02 cm 270 MeV 3.45 keV 1.27 cm 2.69 cm World eIoni + 5 -92.1 mum -18.9 cm 2.02 cm 558 MeV 5.96 keV 2.88 cm 5.57 cm World eIoni + 6 -92.2 mum -20 cm 2.02 cm 665 MeV 2.7 keV 1.07 cm 6.64 cm OutOfWorldTransportation ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -81.2 mum -2.28 cm 1.18 cm 5.26 keV 0 eV 0 fm 0 fm World initStep - 1 -121 mum -2.35 cm 1.19 cm 9.52 MeV 10.5 keV 786 mum 786 mum World eIoni - -********************************************************************************************************* -* 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.25 cm 9.69 mm 175 MeV 4.32 keV 1.68 cm 1.68 cm World eIoni - 2 -18.6 mum -20 cm 2.22 cm 2.05 GeV 78.5 keV 18.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 -1.25 cm 9.69 mm 44.6 keV 0 eV 0 fm 0 fm World initStep - 1 165 mum -2.11 cm 9.3 mm 93.9 MeV 12.5 keV 8.76 mm 8.76 mm World eIoni - 2 188 mum -8.59 cm 9.27 mm 742 MeV 25 keV 6.48 cm 7.36 cm World eIoni - 3 196 mum -20 cm 9.26 mm 1.88 GeV 47 keV 11.4 cm 18.8 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 188 mum -8.59 cm 9.27 mm 1.77 keV 0 eV 0 fm 0 fm World initStep - 1 188 mum -8.6 cm 9.26 mm 1.71 MeV 3.53 keV 129 mum 129 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 165 mum -2.11 cm 9.3 mm 2.09 keV 0 eV 0 fm 0 fm World initStep - 1 152 mum -2.12 cm 9.3 mm 2.16 MeV 4.17 keV 166 mum 166 mum World eIoni - -********************************************************************************************************* -* 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.05 cm 1.16 cm 255 MeV 11.2 keV 2.5 cm 2.5 cm World eIoni - 2 -4.25 mum -5.85 cm 1.63 cm 635 MeV 16.4 keV 3.83 cm 6.33 cm World eIoni - 3 -11.8 mum -20 cm 2.22 cm 2.05 GeV 60.4 keV 14.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 -4.25 mum -5.85 cm 1.63 cm 2.37 keV 0 eV 0 fm 0 fm World initStep - 1 1.48 mum -5.87 cm 1.63 cm 2.6 MeV 4.74 keV 203 mum 203 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -2.05 cm 1.16 cm 3.18 keV 0 eV 0 fm 0 fm World initStep - 1 18.5 mum -2.08 cm 1.17 cm 4.09 MeV 6.36 keV 328 mum 328 mum World eIoni - -********************************************************************************************************* -* 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.93 mm 4.29 mm 69.3 MeV 2.37 keV 4.82 mm 4.82 mm World eIoni - 2 4.73 mum -9.13 mm 8.54 mm 141 MeV 3.99 keV 8.42 mm 1.32 cm World eIoni - 3 31.9 mum -15.5 cm 2.09 cm 1.6 GeV 58.1 keV 14.6 cm 16 cm World eIoni - 4 34.9 mum -20 cm 2.21 cm 2.05 GeV 14 keV 4.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 31.9 mum -15.5 cm 2.09 cm 1.63 keV 0 eV 0 fm 0 fm World initStep - 1 28.4 mum -15.5 cm 2.09 cm 1.53 MeV 3.25 keV 114 mum 114 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 4.73 mum -9.13 mm 8.54 mm 3.04 keV 0 eV 0 fm 0 fm World initStep - 1 -16.2 mum -9.42 mm 8.55 mm 3.82 MeV 6.09 keV 306 mum 306 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.93 mm 4.29 mm 4.45 keV 0 eV 0 fm 0 fm World initStep - 1 -26.2 mum -2.37 mm 4.3 mm 5.61 MeV 4.71 keV 464 mum 464 mum World eIoni - 2 -53.7 mum -20 cm 4.29 mm 1.98 GeV 63 keV 19.8 cm 19.8 cm OutOfWorldTransportation + 0 -92.1 mum -18.9 cm 2.02 cm 4.33 keV 0 eV 0 fm 0 fm World initStep + 1 -100 mum -19 cm 2.02 cm 5.95 MeV 4.33 keV 557 mum 557 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -26.2 mum -2.37 mm 4.3 mm 1.18 keV 0 eV 0 fm 0 fm World initStep - 1 -22 mum -2.44 mm 4.31 mm 1.01 MeV 2.35 keV 72 mum 72 mum World eIoni + 0 -89.8 mum -16 cm 2.02 cm 1.03 keV 0 eV 0 fm 0 fm World initStep + 1 -94.2 mum -16.1 cm 2.02 cm 577 keV 1.03 keV 53 mum 53 mum World eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 4, 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 -1.99 cm 1.15 cm 248 MeV 10.3 keV 2.44 cm 2.44 cm World eIoni - 2 11 mum -20 cm 2.22 cm 2.05 GeV 72.1 keV 18.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 -1.99 cm 1.15 cm 9.84 keV 0 eV 0 fm 0 fm World initStep - 1 -50.3 mum -2.15 cm 1.14 cm 20 MeV 9.96 keV 1.71 mm 1.71 mm World eIoni - 2 -82.8 mum -20 cm 1.14 cm 1.8 GeV 67.2 keV 17.8 cm 18 cm OutOfWorldTransportation + 0 -85.9 mum -14.8 cm 2.02 cm 1.56 keV 0 eV 0 fm 0 fm World initStep + 1 -87.6 mum -14.8 cm 2.02 cm 1.1 MeV 1.56 keV 100 mum 100 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 2 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -50.3 mum -2.15 cm 1.14 cm 2.97 keV 0 eV 0 fm 0 fm World initStep - 1 -30.7 mum -2.18 cm 1.14 cm 3.69 MeV 5.94 keV 294 mum 294 mum World eIoni + 0 -78 mum -13.8 cm 2.02 cm 1.18 keV 0 eV 0 fm 0 fm World initStep + 1 -82.9 mum -13.8 cm 2.02 cm 718 keV 1.18 keV 65.8 mum 65.8 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -2919,107 +3209,96 @@ 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.64 cm 1.07 cm 214 MeV 8.45 keV 2.09 cm 2.09 cm World eIoni - 2 352 nm -6.43 cm 1.67 cm 693 MeV 20.5 keV 4.83 cm 6.92 cm World eIoni - 3 -456 nm -8.11 cm 1.78 cm 861 MeV 6.34 keV 1.69 cm 8.6 cm World eIoni - 4 -467 nm -8.16 cm 1.79 cm 865 MeV 326 eV 446 mum 8.65 cm World eIoni - 5 1.03 mum -10 cm 1.89 cm 1.05 GeV 7.31 keV 1.9 cm 10.5 cm World eIoni - 6 3.29 mum -14.7 cm 2.07 cm 1.52 GeV 21.3 keV 4.68 cm 15.2 cm World eIoni - 7 4.4 mum -20 cm 2.22 cm 2.05 GeV 23.1 keV 5.28 cm 20.5 cm OutOfWorldTransportation + 1 0 fm -6.69 cm 1.69 cm 719 MeV 13.9 keV 7.18 cm 7.18 cm World eIoni + 2 7.53 mum -20 cm 2.22 cm 2.05 GeV 28.8 keV 13.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 -6.69 cm 1.69 cm 9.18 keV 0 eV 0 fm 0 fm World initStep + 1 -46.7 mum -6.91 cm 1.7 cm 22.7 MeV 9.18 keV 2.15 mm 2.15 mm World eIoni + +********************************************************************************************************* +* 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.7 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.12 mm 6.69 mm 101 MeV 2.13 keV 8.83 mm 8.83 mm World eIoni + 2 6.58 mum -10.5 cm 1.91 cm 1.1 GeV 20.5 keV 10.2 cm 11 cm World eIoni + 3 7.43 mum -12.1 cm 1.97 cm 1.26 GeV 3.33 keV 1.58 cm 12.6 cm World eIoni + 4 9.19 mum -14.8 cm 2.07 cm 1.53 GeV 6.2 keV 2.67 cm 15.3 cm World eIoni + 5 9.82 mum -16.6 cm 2.13 cm 1.71 GeV 3.62 keV 1.8 cm 17.1 cm World eIoni + 6 10.3 mum -17.6 cm 2.16 cm 1.81 GeV 1.32 keV 1.01 cm 18.1 cm World eIoni + 7 11.1 mum -20 cm 2.22 cm 2.05 GeV 6.26 keV 2.4 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 3.29 mum -14.7 cm 2.07 cm 1.09 keV 0 eV 0 fm 0 fm World initStep - 1 7.94 mum -14.7 cm 2.07 cm 916 keV 2.17 keV 64.6 mum 64.6 mum World eIoni + 0 10.3 mum -17.6 cm 2.16 cm 1.22 keV 0 eV 0 fm 0 fm World initStep + 1 14.9 mum -17.6 cm 2.16 cm 750 keV 1.22 keV 68.7 mum 68.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 1.03 mum -10 cm 1.89 cm 2.28 keV 0 eV 0 fm 0 fm World initStep - 1 5.34 mum -10.1 cm 1.89 cm 2.46 MeV 4.55 keV 191 mum 191 mum World eIoni + 0 9.82 mum -16.6 cm 2.13 cm 1.26 keV 0 eV 0 fm 0 fm World initStep + 1 4.44 mum -16.6 cm 2.13 cm 784 keV 1.26 keV 71.8 mum 71.8 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -467 nm -8.16 cm 1.79 cm 64.1 keV 0 eV 0 fm 0 fm World initStep - 1 -210 mum -9.16 cm 1.84 cm 110 MeV 9.39 keV 1.05 cm 1.05 cm World eIoni - 2 -227 mum -13.3 cm 1.84 cm 529 MeV 15 keV 4.18 cm 5.23 cm World eIoni - 3 -230 mum -20 cm 1.84 cm 1.19 GeV 27.9 keV 6.65 cm 11.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -227 mum -13.3 cm 1.84 cm 1.96 keV 0 eV 0 fm 0 fm World initStep - 1 -237 mum -13.4 cm 1.84 cm 1.96 MeV 3.91 keV 150 mum 150 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 5 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -210 mum -9.16 cm 1.84 cm 19.2 keV 0 eV 0 fm 0 fm World initStep - 1 -187 mum -9.46 cm 1.82 cm 35.3 MeV 10.2 keV 3.14 mm 3.14 mm World eIoni - 2 -185 mum -10.5 cm 1.82 cm 140 MeV 6.36 keV 1.05 cm 1.37 cm World eIoni - 3 -187 mum -20 cm 1.82 cm 1.09 GeV 38.5 keV 9.49 cm 10.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -185 mum -10.5 cm 1.82 cm 6.01 keV 0 eV 0 fm 0 fm World initStep - 1 -170 mum -10.6 cm 1.81 cm 12 MeV 12 keV 997 mum 997 mum World eIoni + 0 9.19 mum -14.8 cm 2.07 cm 1.21 keV 0 eV 0 fm 0 fm World initStep + 1 14.7 mum -14.8 cm 2.07 cm 739 keV 1.21 keV 67.7 mum 67.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -456 nm -8.11 cm 1.78 cm 5.08 keV 0 eV 0 fm 0 fm World initStep - 1 -8.56 mum -8.17 cm 1.78 cm 7.31 MeV 7.47 keV 607 mum 607 mum World eIoni - 2 17.6 mum -13.8 cm 1.78 cm 573 MeV 17.7 keV 5.66 cm 5.72 cm World eIoni - 3 18.6 mum -20 cm 1.78 cm 1.19 GeV 26.4 keV 6.17 cm 11.9 cm OutOfWorldTransportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 17.6 mum -13.8 cm 1.78 cm 1.03 keV 0 eV 0 fm 0 fm World initStep - 1 23.2 mum -13.8 cm 1.78 cm 856 keV 2.06 keV 59.9 mum 59.9 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 4 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -8.56 mum -8.17 cm 1.78 cm 6.43 keV 0 eV 0 fm 0 fm World initStep - 1 -53.2 mum -8.28 cm 1.78 cm 13.3 MeV 12 keV 1.11 mm 1.11 mm World eIoni + 0 7.43 mum -12.1 cm 1.97 cm 1.41 keV 0 eV 0 fm 0 fm World initStep + 1 2.42 mum -12.1 cm 1.98 cm 946 keV 1.41 keV 86.4 mum 86.4 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 352 nm -6.43 cm 1.67 cm 1.6 keV 0 eV 0 fm 0 fm World initStep - 1 10 mum -6.44 cm 1.67 cm 1.49 MeV 3.21 keV 111 mum 111 mum World eIoni + 0 6.58 mum -10.5 cm 1.91 cm 5.2 keV 0 eV 0 fm 0 fm World initStep + 1 -2.96 mum -10.6 cm 1.91 cm 2.73 MeV 443 eV 260 mum 260 mum World eIoni + 2 -22.2 mum -18.6 cm 1.91 cm 804 MeV 11.4 keV 8.01 cm 8.04 cm World eIoni + 3 -22.7 mum -20 cm 1.91 cm 946 MeV 3.38 keV 1.42 cm 9.46 cm OutOfWorldTransportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process + 0 -22.2 mum -18.6 cm 1.91 cm 1.06 keV 0 eV 0 fm 0 fm World initStep + 1 -22.2 mum -18.6 cm 1.91 cm 607 keV 1.06 keV 55.7 mum 55.7 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -1.64 cm 1.07 cm 1.26 keV 0 eV 0 fm 0 fm World initStep - 1 -605 nm -1.65 cm 1.07 cm 1.09 MeV 2.53 keV 79.1 mum 79.1 mum World eIoni + 0 0 fm -5.12 mm 6.69 mm 1.4 keV 0 eV 0 fm 0 fm World initStep + 1 -4.8 mum -5.2 mm 6.7 mm 948 keV 1.4 keV 84.9 mum 84.9 mum World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 @@ -3027,122 +3306,30 @@ 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 -20 cm 2.21 cm 2.05 GeV 78.8 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 79.7 keV 20.5 cm 20.5 cm World eIoni - 2 -1.89 nm -20 cm 2.22 cm 2.05 GeV 160 eV 303 mum 20.5 cm OutOfWorldTransportation + 1 0 fm -970 mum 3.08 mm 59.6 MeV 1.79 keV 3.28 mm 3.28 mm World eIoni + 2 -71 mum -20 cm 2.21 cm 2.05 GeV 38.7 keV 20.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 -20 cm 2.22 cm 4.62 keV 0 eV 0 fm 0 fm World initStep - 1 3.65 mum -20 cm 2.22 cm 4.39 MeV 2.58 keV 315 mum 315 mumOutOfWorldTransportation + 0 0 fm -970 mum 3.08 mm 65.5 keV 0 eV 0 fm 0 fm World initStep + 1 82.7 mum -2.62 mm 3.15 mm 17 MeV 282 eV 1.7 mm 1.7 mm World eIoni + 2 166 mum -15.1 cm 3.22 mm 1.5 GeV 24.8 keV 14.8 cm 15 cm World eIoni + 3 171 mum -20 cm 3.22 mm 1.99 GeV 10.4 keV 4.9 cm 19.9 cm OutOfWorldTransportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 +* G4Track Information: Particle = e-, Track ID = 3, 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 -10.5 cm 1.91 cm 1.1 GeV 42.3 keV 11 cm 11 cm World eIoni - 2 -47.3 nm -10.9 cm 1.92 cm 1.14 GeV 902 eV 3.18 mm 11.4 cm World eIoni - 3 689 nm -13.7 cm 2.04 cm 1.42 GeV 9.87 keV 2.86 cm 14.2 cm World eIoni - 4 454 nm -17.2 cm 2.15 cm 1.77 GeV 16.3 keV 3.45 cm 17.7 cm World eIoni - 5 480 nm -20 cm 2.21 cm 2.05 GeV 13.2 keV 2.83 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 454 nm -17.2 cm 2.15 cm 1.04 keV 0 eV 0 fm 0 fm World initStep - 1 -1.88 mum -17.2 cm 2.14 cm 862 keV 2.07 keV 60.6 mum 60.6 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 689 nm -13.7 cm 2.04 cm 1.96 keV 0 eV 0 fm 0 fm World initStep - 1 12.7 mum -13.7 cm 2.04 cm 1.97 MeV 3.92 keV 150 mum 150 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 -47.3 nm -10.9 cm 1.92 cm 3.74 keV 0 eV 0 fm 0 fm World initStep - 1 -22.9 mum -10.9 cm 1.92 cm 5.36 MeV 7.48 keV 434 mum 434 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -10.5 cm 1.91 cm 1.83 keV 0 eV 0 fm 0 fm World initStep - 1 4.41 mum -10.6 cm 1.91 cm 1.8 MeV 3.67 keV 137 mum 137 mum World eIoni - -********************************************************************************************************* -* 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 80.1 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 80.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 -848 mum 2.89 mm 58.5 MeV 1.96 keV 3.05 mm 3.05 mm World eIoni - 2 -381 nm -12.7 cm 2 cm 1.32 GeV 49.9 keV 12.9 cm 13.2 cm World eIoni - 3 -3.46 mum -20 cm 2.22 cm 2.05 GeV 31.7 keV 7.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 -381 nm -12.7 cm 2 cm 5.47 keV 0 eV 0 fm 0 fm World initStep - 1 45.9 mum -12.8 cm 2 cm 10.2 MeV 10.9 keV 844 mum 844 mum World eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng NextVolu Process - 0 0 fm -848 mum 2.89 mm 1.42 keV 0 eV 0 fm 0 fm World initStep - 1 274 nm -934 mum 2.89 mm 1.36 MeV 2.85 keV 94.2 mum 94.2 mum World eIoni - -********************************************************************************************************* -* 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 78 keV 20.5 cm 20.5 cm OutOfWorldTransportation + 0 166 mum -15.1 cm 3.22 mm 8.62 keV 0 eV 0 fm 0 fm World initStep + 1 182 mum -15.3 cm 3.16 mm 20.3 MeV 8.62 keV 1.92 mm 1.92 mm World eIoni Run terminated. Run Summary Number of events processed : 100 - User=0.45s Real=2.48s Sys=0.54s + User=1.15s Real=1.63s Sys=0.47s 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 7d7fcc2e84..a5dea4fbc0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02CalorimeterSD.hh b/examples/extended/field/field02/include/F02CalorimeterSD.hh index ed8c615440..4d44162c83 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02DetectorConstruction.hh b/examples/extended/field/field02/include/F02DetectorConstruction.hh index ffaed72bfb..2a8a95f9cd 100644 --- a/examples/extended/field/field02/include/F02DetectorConstruction.hh +++ b/examples/extended/field/field02/include/F02DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02DetectorConstruction.hh,v 1.4 2001/10/25 09:30:13 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02DetectorConstruction.hh,v 1.5 2003/11/12 16:35:03 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,7 +41,7 @@ class G4Material; class G4UniformMagField; class F02DetectorMessenger; class F02CalorimeterSD; -class F02ElectroMagneticField; +class F02ElectricFieldSetup; class F02DetectorConstruction : public G4VUserDetectorConstruction @@ -97,8 +97,7 @@ class F02DetectorConstruction : public G4VUserDetectorConstruction G4LogicalVolume* logicAbsorber; // pointer to the logical Absorber G4VPhysicalVolume* physiAbsorber; // pointer to the physical Absorber - G4UniformMagField* magField; // pointer to the magnetic field - F02ElectroMagneticField* fEmField; + F02ElectricFieldSetup* fEmFieldSetup; // pointer to the field helper F02DetectorMessenger* detectorMessenger; // pointer to the Messenger F02CalorimeterSD* calorimeterSD; // pointer to the sensitive detector diff --git a/examples/extended/field/field02/include/F02DetectorMessenger.hh b/examples/extended/field/field02/include/F02DetectorMessenger.hh index bca888919b..15f60c1353 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02ElectroMagneticField.hh b/examples/extended/field/field02/include/F02ElectricFieldSetup.hh similarity index 71% rename from examples/extended/field/field02/include/F02ElectroMagneticField.hh rename to examples/extended/field/field02/include/F02ElectricFieldSetup.hh index bba3c1ca23..c4dc0740ec 100644 --- a/examples/extended/field/field02/include/F02ElectroMagneticField.hh +++ b/examples/extended/field/field02/include/F02ElectricFieldSetup.hh @@ -21,28 +21,20 @@ // ******************************************************************** // // -// $Id: F02ElectroMagneticField.hh,v 1.6 2001/12/04 17:53:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02ElectricFieldSetup.hh,v 1.1 2003/11/12 16:36:14 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// A class for control of the Electric Field of the detector. +// The field for this case is uniform. // -// A class for control of the Magnetic Field of the detector. -// The field is assumed to be uniform. -// -// $ Id: $ - -// Should this be a: -// i) messenger -// ii) user class that creates the field ? -// iii) simply a derived class of Uniform field ? <== I have chosen this now. -// iv) a field manager that creates/updates field (Prefered?) +// It is simply a 'setup' class that creates the field and necessary other parts // -#ifndef F02ElectroMagneticField_H -#define F02ElectroMagneticField_H +#ifndef F02ElectricFieldSetup_H +#define F02ElectricFieldSetup_H -#include "G4MagneticField.hh" -// #include "G4ElectroMagneticField.hh" +#include "G4ElectricField.hh" #include "G4UniformElectricField.hh" class G4FieldManager; @@ -51,19 +43,17 @@ class G4EquationOfMotion; class G4Mag_EqRhs; class G4EqMagElectricField; class G4MagIntegratorStepper; +class G4MagInt_Driver; class F02FieldMessenger; - -class F02ElectroMagneticField : public G4UniformElectricField +class F02ElectricFieldSetup { public: - F02ElectroMagneticField(G4ThreeVector) ; // The value of the field - F02ElectroMagneticField() ; // A zero field + F02ElectricFieldSetup(G4ThreeVector) ; // The value of the field + F02ElectricFieldSetup() ; // A zero field - ~F02ElectroMagneticField() ; + ~F02ElectricFieldSetup() ; - void GetFieldValue( const G4double [4], G4double * ) const {;} - void SetStepperType( G4int i) { fStepperType = i ; } void SetStepper(); @@ -79,18 +69,21 @@ public: protected: // Find the global Field Manager - G4FieldManager* GetGlobalFieldManager() ; +private: G4FieldManager* fFieldManager ; G4ChordFinder* fChordFinder ; G4EqMagElectricField* fEquation ; + + G4ElectricField* fEMfield; - G4UniformElectricField* fEMfield ; + G4ThreeVector fElFieldValue ; G4MagIntegratorStepper* fStepper ; + G4MagInt_Driver* fIntgrDriver; G4int fStepperType ; diff --git a/examples/extended/field/field02/include/F02EventAction.hh b/examples/extended/field/field02/include/F02EventAction.hh index e41eebe789..0b8329b875 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02EventActionMessenger.hh b/examples/extended/field/field02/include/F02EventActionMessenger.hh index fe747e6e26..5f441c3be9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02FieldMessenger.hh b/examples/extended/field/field02/include/F02FieldMessenger.hh index ca2e93e549..60a9349425 100644 --- a/examples/extended/field/field02/include/F02FieldMessenger.hh +++ b/examples/extended/field/field02/include/F02FieldMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02FieldMessenger.hh,v 1.2 2001/07/11 09:58:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02FieldMessenger.hh,v 1.3 2003/11/12 16:35:03 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -35,7 +35,7 @@ #include "globals.hh" #include "G4UImessenger.hh" -class F02ElectroMagneticField; +class F02ElectricFieldSetup; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; @@ -46,7 +46,7 @@ class G4UIcmdWithoutParameter; class F02FieldMessenger: public G4UImessenger { public: - F02FieldMessenger(F02ElectroMagneticField* ); + F02FieldMessenger(F02ElectricFieldSetup* ); ~F02FieldMessenger(); void SetNewValue(G4UIcommand*, G4String); @@ -54,7 +54,7 @@ class F02FieldMessenger: public G4UImessenger private: - F02ElectroMagneticField* fEMfield; + F02ElectricFieldSetup* fEFieldSetup; G4UIdirectory* F02detDir; diff --git a/examples/extended/field/field02/include/F02PhysicsList.hh b/examples/extended/field/field02/include/F02PhysicsList.hh index 0cc9b6b85c..48d31beec3 100644 --- a/examples/extended/field/field02/include/F02PhysicsList.hh +++ b/examples/extended/field/field02/include/F02PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02PhysicsList.hh,v 1.2 2001/07/11 09:58:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02PhysicsList.hh,v 1.3 2003/08/27 17:44:08 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef F02PhysicsList_h @@ -83,14 +83,11 @@ class F02PhysicsList: public G4VUserPhysicsList void AddParameterisation(); void ConstructGeneral(); void ConstructEM(); - + public: void SetGammaCut(G4double); void SetElectronCut(G4double); - void SetProtonCut(G4double); - void SetCutsByEnergy(G4double); - void GetRange(G4double); void SetMaxStep(G4double); @@ -121,7 +118,6 @@ class F02PhysicsList: public G4VUserPhysicsList G4double cutForGamma; G4double cutForElectron; - G4double cutForProton; F02DetectorConstruction* pDet; F02PhysicsListMessenger* physicsListMessenger; diff --git a/examples/extended/field/field02/include/F02PhysicsListMessenger.hh b/examples/extended/field/field02/include/F02PhysicsListMessenger.hh index cd5b9adda4..f5d6abf171 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorAction.hh index 9d6fac8724..b1f3123be1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh b/examples/extended/field/field02/include/F02PrimaryGeneratorMessenger.hh index afce174796..760b2d69ab 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02RunAction.hh b/examples/extended/field/field02/include/F02RunAction.hh index ac9c9920a7..c7bb2e57a3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02RunMessenger.hh b/examples/extended/field/field02/include/F02RunMessenger.hh index a6c549f0d6..34445fc845 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02StepCut.hh b/examples/extended/field/field02/include/F02StepCut.hh index 99298614f5..6edf413aef 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingAction.hh b/examples/extended/field/field02/include/F02SteppingAction.hh index 73934c372f..d02744f732 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/include/F02SteppingMessenger.hh b/examples/extended/field/field02/include/F02SteppingMessenger.hh index 56230885d1..0ce0d3f662 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/include/F02SteppingVerbose.hh b/examples/extended/field/field02/include/F02SteppingVerbose.hh index 339e658cbb..28a845250e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/include/F02VisManager.hh b/examples/extended/field/field02/include/F02VisManager.hh index a1a514d264..740321a1fb 100644 --- a/examples/extended/field/field02/include/F02VisManager.hh +++ b/examples/extended/field/field02/include/F02VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: F02VisManager.hh,v 1.2 2001/07/11 09:58:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02CalorHit.cc b/examples/extended/field/field02/src/F02CalorHit.cc index 33a10d310d..1ec013c68f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02CalorimeterSD.cc b/examples/extended/field/field02/src/F02CalorimeterSD.cc index 0430b2685b..90eb395a66 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02DetectorConstruction.cc b/examples/extended/field/field02/src/F02DetectorConstruction.cc index 91c1a8d58b..7c4f78c45b 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.8 2003/06/25 17:33:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02DetectorConstruction.cc,v 1.10 2003/11/25 14:51:15 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -30,7 +30,7 @@ #include "F02DetectorMessenger.hh" #include "F02CalorimeterSD.hh" -#include "F02ElectroMagneticField.hh" +#include "F02ElectricFieldSetup.hh" #include "G4VClusterModel.hh" #include "G4PAIclusterModel.hh" @@ -45,6 +45,7 @@ #include "G4SDManager.hh" #include "G4RunManager.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" @@ -58,7 +59,7 @@ F02DetectorConstruction::F02DetectorConstruction() : solidWorld(0), logicWorld(0), physiWorld(0), solidAbsorber(0),logicAbsorber(0), physiAbsorber(0), - magField(0), fEmField(0), calorimeterSD(0), + fEmFieldSetup(0), calorimeterSD(0), AbsorberMaterial(0), worldchanged(false), WorldMaterial(0) { // default parameter values of the calorimeter @@ -77,7 +78,7 @@ F02DetectorConstruction::F02DetectorConstruction() DefineMaterials(); - // fEmField = new F02ElectroMagneticField() ; + fEmFieldSetup = new F02ElectricFieldSetup() ; } ////////////////////////////////////////////////////////////////////////// @@ -87,7 +88,7 @@ F02DetectorConstruction::F02DetectorConstruction() F02DetectorConstruction::~F02DetectorConstruction() { delete detectorMessenger; - if (fEmField) delete fEmField ; + delete fEmFieldSetup ; } ////////////////////////////////////////////////////////////////////////// @@ -233,6 +234,7 @@ G4VPhysicalVolume* F02DetectorConstruction::ConstructCalorimeter() if (physiWorld) { + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); diff --git a/examples/extended/field/field02/src/F02DetectorMessenger.cc b/examples/extended/field/field02/src/F02DetectorMessenger.cc index d8bc0c85f1..658547512d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02ElectroMagneticField.cc b/examples/extended/field/field02/src/F02ElectricFieldSetup.cc similarity index 67% rename from examples/extended/field/field02/src/F02ElectroMagneticField.cc rename to examples/extended/field/field02/src/F02ElectricFieldSetup.cc index a6474d7366..0719adebb5 100644 --- a/examples/extended/field/field02/src/F02ElectroMagneticField.cc +++ b/examples/extended/field/field02/src/F02ElectricFieldSetup.cc @@ -21,15 +21,14 @@ // ******************************************************************** // // -// $Id: F02ElectroMagneticField.cc,v 1.5 2001/11/12 09:41:26 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02ElectricFieldSetup.cc,v 1.1 2003/11/12 16:36:16 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // User Field class implementation. // - -#include "F02ElectroMagneticField.hh" +#include "F02ElectricFieldSetup.hh" #include "F02FieldMessenger.hh" #include "G4UniformElectricField.hh" @@ -41,6 +40,7 @@ #include "G4EqMagElectricField.hh" #include "G4Mag_UsualEqRhs.hh" #include "G4MagIntegratorStepper.hh" +#include "G4MagIntegratorDriver.hh" #include "G4ChordFinder.hh" #include "G4ExplicitEuler.hh" @@ -58,16 +58,15 @@ // // Constructors: -F02ElectroMagneticField::F02ElectroMagneticField() - : G4UniformElectricField(G4ThreeVector(0.0,100000.0*kilovolt/cm,0.0)), - fChordFinder(0), fStepper(0) +F02ElectricFieldSetup::F02ElectricFieldSetup() + : fChordFinder(0), fStepper(0), fIntgrDriver(0) { fEMfield = new G4UniformElectricField( G4ThreeVector(0.0,100000.0*kilovolt/cm,0.0)); fFieldMessenger = new F02FieldMessenger(this) ; fEquation = new G4EqMagElectricField(fEMfield); - fMinStep = 1.0*mm ; // minimal step of 1 mm is default - fStepperType = 4 ; // ClassicalRK4 is default stepper + fMinStep = 0.010*mm ; // minimal step of 10 microns + fStepperType = 4 ; // ClassicalRK4 -- the default stepper fFieldManager = GetGlobalFieldManager(); UpdateField(); @@ -76,35 +75,56 @@ F02ElectroMagneticField::F02ElectroMagneticField() ///////////////////////////////////////////////////////////////////////////////// -F02ElectroMagneticField::F02ElectroMagneticField(G4ThreeVector pFV) - : G4UniformElectricField(pFV) +F02ElectricFieldSetup::F02ElectricFieldSetup(G4ThreeVector pFV) + : fChordFinder(0), + fStepper(0), + fIntgrDriver(0) { fEMfield = new G4UniformElectricField(pFV); - GetGlobalFieldManager()->CreateChordFinder(this); + // GetGlobalFieldManager()->CreateChordFinder(this); + + fFieldMessenger = new F02FieldMessenger(this) ; + fEquation = new G4EqMagElectricField(fEMfield); + fMinStep = 0.010*mm ; // minimal step of 10 microns + fStepperType = 4 ; // ClassicalRK4 -- the default stepper + + fFieldManager = GetGlobalFieldManager(); + UpdateField(); } //////////////////////////////////////////////////////////////////////////////// -F02ElectroMagneticField::~F02ElectroMagneticField() +F02ElectricFieldSetup::~F02ElectricFieldSetup() { - if(fEMfield) delete fEMfield; if(fChordFinder) delete fChordFinder; if(fStepper) delete fStepper; + if(fEquation) delete fEquation; + if(fEMfield) delete fEMfield; } ///////////////////////////////////////////////////////////////////////////// // -// Update field +// Register this field to 'global' Field Manager and +// Create Stepper and Chord Finder with predefined type, minstep (resp.) // -void F02ElectroMagneticField::UpdateField() +void F02ElectricFieldSetup::UpdateField() { SetStepper(); + G4cout<<"The minimal step is equal to "<SetDetectorField(fEMfield ); + if(fChordFinder) delete fChordFinder; - fChordFinder = new G4ChordFinder( fEMfield, fMinStep,fStepper); + // fChordFinder = new G4ChordFinder( fEMfield, fMinStep, fStepper); + + fIntgrDriver = new G4MagInt_Driver(fMinStep, + fStepper, + fStepper->GetNumberOfVariables() ); + + fChordFinder = new G4ChordFinder(fIntgrDriver); + fFieldManager->SetChordFinder( fChordFinder ); } @@ -113,7 +133,7 @@ void F02ElectroMagneticField::UpdateField() // Set stepper according to the stepper type // -void F02ElectroMagneticField::SetStepper() +void F02ElectricFieldSetup::SetStepper() { G4int nvar = 8; @@ -145,24 +165,22 @@ void F02ElectroMagneticField::SetStepper() fStepper = new G4CashKarpRKF45( fEquation, nvar ); G4cout<<"G4CashKarpRKF45 is called"<SetFieldObj(fEMfield); // must now point to the new field + // UpdateField(); - fieldMgr->SetDetectorField(this); + fieldMgr->SetDetectorField(fEMfield); } else { // If the new field's value is Zero, then it is best to // insure that it is not used for propagation. + if(fEMfield) delete fEMfield; + fEMfield = 0; + fEquation->SetFieldObj(fEMfield); // As a double check ... G4MagneticField* fEMfield = 0; fieldMgr->SetDetectorField(fEMfield); @@ -212,7 +235,7 @@ void F02ElectroMagneticField::SetFieldValue(G4ThreeVector fieldVector) // // Utility method -G4FieldManager* F02ElectroMagneticField::GetGlobalFieldManager() +G4FieldManager* F02ElectricFieldSetup::GetGlobalFieldManager() { return G4TransportationManager::GetTransportationManager() ->GetFieldManager(); diff --git a/examples/extended/field/field02/src/F02EventAction.cc b/examples/extended/field/field02/src/F02EventAction.cc index b1ba8206bd..840e1ca638 100644 --- a/examples/extended/field/field02/src/F02EventAction.cc +++ b/examples/extended/field/field02/src/F02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: F02EventAction.cc,v 1.4 2001/11/07 16:36:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02EventActionMessenger.cc b/examples/extended/field/field02/src/F02EventActionMessenger.cc index e19c43124b..070dfbb9f7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02FieldMessenger.cc b/examples/extended/field/field02/src/F02FieldMessenger.cc index bbc486cb04..982f94930c 100644 --- a/examples/extended/field/field02/src/F02FieldMessenger.cc +++ b/examples/extended/field/field02/src/F02FieldMessenger.cc @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: F02FieldMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02FieldMessenger.cc,v 1.5 2003/11/12 16:35:23 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // #include "F02FieldMessenger.hh" -#include "F02ElectroMagneticField.hh" +#include "F02ElectricFieldSetup.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" @@ -37,8 +37,8 @@ ////////////////////////////////////////////////////////////////////////////// -F02FieldMessenger::F02FieldMessenger(F02ElectroMagneticField* pEMfield) - :fEMfield(pEMfield) +F02FieldMessenger::F02FieldMessenger(F02ElectricFieldSetup* pEMfield) + :fEFieldSetup(pEMfield) { F02detDir = new G4UIdirectory("/field/"); F02detDir->SetGuidance("F02 field tracking control."); @@ -100,19 +100,19 @@ void F02FieldMessenger::SetNewValue( G4UIcommand* command, G4String newValue) { if( command == StepperCmd ) { - fEMfield->SetStepperType(StepperCmd->GetNewIntValue(newValue)); + fEFieldSetup->SetStepperType(StepperCmd->GetNewIntValue(newValue)); } if( command == UpdateCmd ) { - fEMfield->UpdateField(); + fEFieldSetup->UpdateField(); } if( command == MagFieldCmd ) { - fEMfield->SetFieldValue(MagFieldCmd->GetNewDoubleValue(newValue)); + fEFieldSetup->SetFieldValue(MagFieldCmd->GetNewDoubleValue(newValue)); } if( command == MinStepCmd ) { - fEMfield->SetMinStep(MinStepCmd->GetNewDoubleValue(newValue)); + fEFieldSetup->SetMinStep(MinStepCmd->GetNewDoubleValue(newValue)); } } diff --git a/examples/extended/field/field02/src/F02PhysicsList.cc b/examples/extended/field/field02/src/F02PhysicsList.cc index 1aa8c9a7d6..76ec902209 100644 --- a/examples/extended/field/field02/src/F02PhysicsList.cc +++ b/examples/extended/field/field02/src/F02PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02PhysicsList.cc,v 1.6 2003/06/16 16:49:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02PhysicsList.cc,v 1.7 2003/08/27 17:44:08 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" @@ -42,7 +42,7 @@ #include "G4UnitsTable.hh" #include "G4ios.hh" #include - + #include "G4FastSimulationManagerProcess.hh" @@ -65,7 +65,6 @@ F02PhysicsList::F02PhysicsList(F02DetectorConstruction* p) cutForGamma = defaultCutValue ; cutForElectron = defaultCutValue ; - cutForProton = defaultCutValue ; SetVerboseLevel(1); physicsListMessenger = new F02PhysicsListMessenger(this); @@ -363,7 +362,6 @@ void F02PhysicsList::SetCuts() void F02PhysicsList::SetGammaCut(G4double val) { - ResetCuts(); cutForGamma = val; } @@ -371,70 +369,9 @@ void F02PhysicsList::SetGammaCut(G4double val) void F02PhysicsList::SetElectronCut(G4double val) { - ResetCuts(); cutForElectron = val; } -////////////////////////////////////////////////////////////////////// - -void F02PhysicsList::SetProtonCut(G4double val) -{ - ResetCuts(); - cutForProton = val; -} - -//////////////////////////////////////////////////////////////////////////// - -void F02PhysicsList::SetCutsByEnergy(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - // set cut values for gamma at first and for e- second and next for e+, - // because some processes for e+/e- need cut values for gamma - - G4ParticleDefinition* part; - G4double cut; - - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e-"); - - part = theParticleTable->FindParticle("e+"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e+"); - - // set cut values for proton and anti_proton before all other hadrons - // because some processes for hadrons need cut values for proton/anti_proton - - part = theParticleTable->FindParticle("proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "proton"); - - part = theParticleTable->FindParticle("anti_proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "anti_proton"); - - SetCutValueForOthers(cut); -} - -////////////////////////////////////////////////////////////////////////////// - -void F02PhysicsList::GetRange(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - G4ParticleDefinition* part; - G4double cut; - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - G4cout << "material : " << currMat->GetName() << G4endl; - G4cout << "particle : " << part->GetParticleName() << G4endl; - G4cout << "energy : " << val / keV << " (keV)" << G4endl; - G4cout << "range : " << cut / mm << " (mm)" << G4endl; -} - //////////////////////////////////////////////////////////////////////////// void F02PhysicsList::SetMaxStep(G4double step) diff --git a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc index f08d033f4a..727b71ef04 100644 --- a/examples/extended/field/field02/src/F02PhysicsListMessenger.cc +++ b/examples/extended/field/field02/src/F02PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02PhysicsListMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02PhysicsListMessenger.cc,v 1.5 2003/08/27 17:44:08 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -55,27 +55,6 @@ F02PhysicsListMessenger::F02PhysicsListMessenger(F02PhysicsList * List) cutECmd->SetDefaultUnit("mm"); cutECmd->AvailableForStates(G4State_Idle); - cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); - cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); - cutPCmd->SetParameterName("range",true); - cutPCmd->SetDefaultValue(1.); - cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(G4State_Idle); - - eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); - eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); - eCmd->SetParameterName("energy",true); - eCmd->SetDefaultValue(10.); - eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(G4State_Idle); - - rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); - rCmd->SetGuidance("Display the RANGE of Electron for the current material."); - rCmd->SetParameterName("energy",true); - rCmd->SetDefaultValue(10.); - rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(G4State_Idle); - setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); setMaxStepCmd->SetParameterName("mxStep",true); @@ -92,26 +71,17 @@ F02PhysicsListMessenger::~F02PhysicsListMessenger() delete cutGCmd; delete cutECmd; - delete cutPCmd; - delete rCmd; - delete eCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + void F02PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue) { if(command == cutGCmd) { F02List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));} if(command == cutECmd) { F02List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} - if(command == cutPCmd) - { F02List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));} - if(command == eCmd) - { F02List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));} - if(command == rCmd) - { F02List->GetRange(rCmd->GetNewDoubleValue(newValue));} if(command == setMaxStepCmd) { F02List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));} } diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorAction.cc index 9caffb6963..fc25c9aa1b 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.3 2001/10/15 17:20:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc b/examples/extended/field/field02/src/F02PrimaryGeneratorMessenger.cc index 4ffd3e4dc9..0df6bca427 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02RunAction.cc b/examples/extended/field/field02/src/F02RunAction.cc index a3108427ed..61de05c296 100644 --- a/examples/extended/field/field02/src/F02RunAction.cc +++ b/examples/extended/field/field02/src/F02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: F02RunAction.cc,v 1.6 2003/06/25 17:33:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02RunMessenger.cc b/examples/extended/field/field02/src/F02RunMessenger.cc index 16d8dbaa1b..3440d24c83 100644 --- a/examples/extended/field/field02/src/F02RunMessenger.cc +++ b/examples/extended/field/field02/src/F02RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F02RunMessenger.cc,v 1.4 2002/12/05 01:06:57 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02StepCut.cc b/examples/extended/field/field02/src/F02StepCut.cc index b491603569..7595f763e3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "F02StepCut.hh" diff --git a/examples/extended/field/field02/src/F02SteppingAction.cc b/examples/extended/field/field02/src/F02SteppingAction.cc index f1b29b745d..78a2939c88 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field02/src/F02SteppingMessenger.cc b/examples/extended/field/field02/src/F02SteppingMessenger.cc index ce875db2dd..dcb44fbeb0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field02/src/F02SteppingVerbose.cc b/examples/extended/field/field02/src/F02SteppingVerbose.cc index 66fc461096..32b6090550 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field02/src/F02VisManager.cc b/examples/extended/field/field02/src/F02VisManager.cc index 415285f122..e7ea785840 100644 --- a/examples/extended/field/field02/src/F02VisManager.cc +++ b/examples/extended/field/field02/src/F02VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F02VisManager.cc,v 1.4 2002/11/26 08:28:06 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F02VisManager.cc,v 1.5 2003/11/13 15:11:03 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void F02VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/field/field03/History b/examples/extended/field/field03/History index fca4cea018..9d7dc3a1f4 100644 --- a/examples/extended/field/field03/History +++ b/examples/extended/field/field03/History @@ -1,4 +1,4 @@ -$Id: History,v 1.6 2003/06/25 17:33:55 gcosmo Exp $ +$Id: History,v 1.13 2003/12/02 09:17:20 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,28 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +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. + +Nov 25th, 2003 Gabriele Cosmo +----------------------------- +- Open geometry before clearing stores in DetectorConstruction class. + +Nov 14th, 2003 John Apostolakis +------------------------------- +- F03ElectroMagneticField: + o changed minimum step to 0.25 mm, from 1.0 mm. + +Nov 13th, 2003 John Allison +--------------------------- +- Removed OPACS from Vis Manager. + +Aug 27th, 2003 V.Ivantchenko (fieldex-V05-02-00) +------------------------------------------------ + - Remove obsolete interfaces Jun 25th, 2003 - G.Cosmo (fieldex-V05-01-00) -------------------------------------------- diff --git a/examples/extended/field/field03/field03.cc b/examples/extended/field/field03/field03.cc index 162137226f..8db0250ad0 100644 --- a/examples/extended/field/field03/field03.cc +++ b/examples/extended/field/field03/field03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: field03.cc,v 1.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: field03.cc,v 1.5 2003/12/01 17:31:13 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -44,7 +44,7 @@ #endif #include "F03DetectorConstruction.hh" -#include "F03ElectroMagneticField.hh" +// #include "F03FieldSetup.hh" #include "F03PhysicsList.hh" #include "F03PrimaryGeneratorAction.hh" #include "F03RunAction.hh" @@ -67,10 +67,6 @@ int main(int argc,char** argv) G4RunManager * runManager = new G4RunManager; - // Construct the electromagnetic field - - F03ElectroMagneticField* field = new F03ElectroMagneticField() ; - // Set mandatory initialization classes F03DetectorConstruction* detector; @@ -128,7 +124,6 @@ int main(int argc,char** argv) #ifdef G4VIS_USE delete visManager; #endif - delete field; delete runManager; return 0; diff --git a/examples/extended/field/field03/field03.in b/examples/extended/field/field03/field03.in index e4b993ad50..ab770532a7 100644 --- a/examples/extended/field/field03/field03.in +++ b/examples/extended/field/field03/field03.in @@ -20,6 +20,9 @@ /gun/particle e- /gun/energy 500.0 MeV # +/run/beamOn 1 +# +/tracking/verbose 0 /event/printModulo 50 /run/beamOn 100 # diff --git a/examples/extended/field/field03/field03.out b/examples/extended/field/field03/field03.out index 0704f2eda0..508a32c7cc 100644 --- a/examples/extended/field/field03/field03.out +++ b/examples/extended/field/field03/field03.out @@ -1,10 +1,8 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** -G4ClassicalRK4 (default) is called -The minimal step is equal to 1 mm ***** Table : Nb of materials = 11 ***** @@ -53,7 +51,7 @@ The minimal step is equal to 1 mm G4ClassicalRK4 (default) is called -The minimal step is equal to 1 mm +The minimal step is equal to 0.25 mm Visualization Manager instantiating... Visualization Manager initialising... Registering graphics systems... @@ -96,45 +94,70 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ============================== @@ -158,1605 +181,41 @@ 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.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum + 1 0 fm 4.0138452 cm 21.79201 m 500 MeV 0 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 MeV 0 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 MeV 0 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 MeV 0 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 MeV 0 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 MeV 0 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 MeV 0 eV 15.176601 cm 1.5893831 m World Transportation 0 fm 2.1926163 Ang 1000 mum + 8 0 fm 1.0118318 m 21.9905 m 500 MeV 0 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 MeV 0 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.02s Real=0.03s Sys=0.01s + +========= Table of registered couples ============================== + +Index : 0 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 : + DefaultRegionForTheWorld + +==================================================================== + +### Run 1 start. +Start Run processing. + +---> Begin of Event: 0 ---> Begin of Event: 50 - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum - -********************************************************************************************************* -* 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 22 m 500 MeV 0 eV 0 fm 0 fm World initStep - 1 0 fm 4.0189965 cm 21.79201 m 500 MeV0.00098930286 eV 20.290159 cm 20.290159 cm World Transportation 0 fm 390.39219 mum -920.64865 mum - 2 0 fm 6.5962632 cm 21.74 m 500 MeV0.00028319391 eV 5.8079118 cm 26.098071 cm RadSlice Transportation 0 fm 493.28084 mum -869.87011 mum - 3 0 fm 19.965412 cm 21.58699 m 500 MeV0.00099748831 eV 20.458137 cm 46.556208 cm Radiator Transportation 0 fm 795.74409 mum -605.63301 mum - 4 0 fm 81.245166 cm 21.58699 m 500 MeV0.0032096068 eV 65.825765 cm 1.1238197 m World Transportation 0 fm 795.74581 mum 605.63075 mum - 5 0 fm 94.611106 cm 21.74 m 500 MeV0.00099737463 eV 20.456087 cm 1.3283806 m Radiator Transportation 0 fm 493.31857 mum 869.84872 mum - 6 0 fm 98.93392 cm 21.84 m 500.00001 MeV0.00053228177 eV 10.915504 cm 1.4375356 m RadSlice Transportation 0 fm 295.65747 mum 955.29402 mum - 7 0 fm 1.0119547 m 21.9895 m 500.00002 MeV0.00073998763 eV 15.176959 cm 1.5893052 m World Transportation 0 fm 154.22201 nm 999.99999 mum - 8 0 fm 1.0119538 m 21.9905 m 500.00002 MeV4.888534e-06 eV 1.0000005 mm 1.5903052 m Absorber Transportation 0 fm -1.8223891 mum 999.99834 mum - 9 0 fm 1.0118466 m 22 m 500.00002 MeV4.6270543e-05 eV 9.5007471 mm 1.599806 m OutOfWorld Transportation 0 fm -20.600215 mum 999.78779 mum Run terminated. Run Summary Number of events processed : 100 - User=0.65s Real=0.86s Sys=0.21s + User=0.82s Real=0.82s Sys=0s 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 6ee81ea0b1..1fd194f2ce 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03CalorimeterSD.hh b/examples/extended/field/field03/include/F03CalorimeterSD.hh index 59de0ce718..7abea8da1d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03DetectorConstruction.hh b/examples/extended/field/field03/include/F03DetectorConstruction.hh index 9f81a2b974..3b150d979c 100644 --- a/examples/extended/field/field03/include/F03DetectorConstruction.hh +++ b/examples/extended/field/field03/include/F03DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03DetectorConstruction.hh,v 1.4 2001/10/25 10:03:53 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03DetectorConstruction.hh,v 1.5 2003/12/01 17:28:26 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,7 +41,7 @@ class G4Material; class G4UniformMagField; class F03DetectorMessenger; class F03CalorimeterSD; -class F03ElectroMagneticField; +class F03FieldSetup; class F03DetectorConstruction : public G4VUserDetectorConstruction @@ -98,7 +98,7 @@ class F03DetectorConstruction : public G4VUserDetectorConstruction G4VPhysicalVolume* physiAbsorber; // pointer to the physical Absorber G4UniformMagField* magField; // pointer to the magnetic field - F03ElectroMagneticField* fEmField; + F03FieldSetup* fEmFieldSetup; F03DetectorMessenger* detectorMessenger; // pointer to the Messenger F03CalorimeterSD* calorimeterSD; // pointer to the sensitive detector diff --git a/examples/extended/field/field03/include/F03DetectorMessenger.hh b/examples/extended/field/field03/include/F03DetectorMessenger.hh index b996464cf0..ef860814e4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03EventAction.hh b/examples/extended/field/field03/include/F03EventAction.hh index 76999a54e2..9b8ba5d886 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03EventActionMessenger.hh b/examples/extended/field/field03/include/F03EventActionMessenger.hh index 521e1244a7..04c3fd3f90 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03FieldMessenger.hh b/examples/extended/field/field03/include/F03FieldMessenger.hh index 2c13a51e89..ea13bfb41f 100644 --- a/examples/extended/field/field03/include/F03FieldMessenger.hh +++ b/examples/extended/field/field03/include/F03FieldMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03FieldMessenger.hh,v 1.2 2001/07/11 09:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03FieldMessenger.hh,v 1.3 2003/12/01 17:28:46 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -35,7 +35,7 @@ #include "globals.hh" #include "G4UImessenger.hh" -class F03ElectroMagneticField; +class F03FieldSetup; class G4UIdirectory; class G4UIcmdWithAString; class G4UIcmdWithAnInteger; @@ -46,7 +46,7 @@ class G4UIcmdWithoutParameter; class F03FieldMessenger: public G4UImessenger { public: - F03FieldMessenger(F03ElectroMagneticField* ); + F03FieldMessenger(F03FieldSetup* ); ~F03FieldMessenger(); void SetNewValue(G4UIcommand*, G4String); @@ -54,7 +54,7 @@ class F03FieldMessenger: public G4UImessenger private: - F03ElectroMagneticField* fEMfield; + F03FieldSetup* fEMfieldSetup; G4UIdirectory* F03detDir; diff --git a/examples/extended/field/field03/include/F03ElectroMagneticField.hh b/examples/extended/field/field03/include/F03FieldSetup.hh similarity index 81% rename from examples/extended/field/field03/include/F03ElectroMagneticField.hh rename to examples/extended/field/field03/include/F03FieldSetup.hh index a3e499f591..7e9a8004cb 100644 --- a/examples/extended/field/field03/include/F03ElectroMagneticField.hh +++ b/examples/extended/field/field03/include/F03FieldSetup.hh @@ -21,16 +21,18 @@ // ******************************************************************** // // -// $Id: F03ElectroMagneticField.hh,v 1.4 2003/06/25 16:42:33 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03FieldSetup.hh,v 1.1 2003/12/01 17:03:02 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// -// A class for control of the Magnetic Field of the detector. -// The field is assumed to be uniform. +// A class for setting up the Magnetic Field of the setup, and +// creating the necessary classes to control accuracy of propagation. +// In this example +// - There is a global field for most of the setup; +// - A local field overides it for some volume(s) and it assumed to be uniform. // -#ifndef F03ElectroMagneticField_H -#define F03ElectroMagneticField_H +#ifndef F03FieldSetup_H +#define F03FieldSetup_H #include "G4MagneticField.hh" #include "G4UniformMagField.hh" @@ -41,18 +43,15 @@ class G4Mag_UsualEqRhs; class G4MagIntegratorStepper; class F03FieldMessenger; -class F03ElectroMagneticField : public G4MagneticField +class F03FieldSetup { public: - F03ElectroMagneticField() ; // A zero field - F03ElectroMagneticField(G4ThreeVector) ; // The value of the field - ~F03ElectroMagneticField() ; + F03FieldSetup() ; // A zero field + F03FieldSetup(G4ThreeVector) ; // The value of the field + ~F03FieldSetup() ; - void GetFieldValue( const G4double Point[3], - G4double *Bfield ) const; - void SetStepperType( G4int i) { fStepperType = i ; } void SetStepper(); diff --git a/examples/extended/field/field03/include/F03PhysicsList.hh b/examples/extended/field/field03/include/F03PhysicsList.hh index 08d6812de9..1e2ae0db83 100644 --- a/examples/extended/field/field03/include/F03PhysicsList.hh +++ b/examples/extended/field/field03/include/F03PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03PhysicsList.hh,v 1.3 2001/10/15 17:20:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03PhysicsList.hh,v 1.4 2003/08/27 17:50:29 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef F03PhysicsList_h @@ -66,11 +66,11 @@ class F03PhysicsList: public G4VUserPhysicsList // Construct particle and physics void ConstructParticle(); void ConstructProcess(); - + void SetCuts(); protected: - // these methods Construct particles + // these methods Construct particles void ConstructBosons(); void ConstructLeptons(); void ConstructMesons(); @@ -83,14 +83,11 @@ class F03PhysicsList: public G4VUserPhysicsList void AddParameterisation(); void ConstructGeneral(); void ConstructEM(); - + public: void SetGammaCut(G4double); void SetElectronCut(G4double); - void SetProtonCut(G4double); - void SetCutsByEnergy(G4double); - void GetRange(G4double); void SetMaxStep(G4double); @@ -121,7 +118,6 @@ class F03PhysicsList: public G4VUserPhysicsList G4double cutForGamma; G4double cutForElectron; - G4double cutForProton; F03DetectorConstruction* pDet; F03PhysicsListMessenger* physicsListMessenger; diff --git a/examples/extended/field/field03/include/F03PhysicsListMessenger.hh b/examples/extended/field/field03/include/F03PhysicsListMessenger.hh index e01b02d3df..28b30bb0e1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorAction.hh index 0f586eeafb..1f186a5837 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh b/examples/extended/field/field03/include/F03PrimaryGeneratorMessenger.hh index 9a22a9099d..186b627dec 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03RunAction.hh b/examples/extended/field/field03/include/F03RunAction.hh index 9837308f8c..cc74ed81e0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03RunMessenger.hh b/examples/extended/field/field03/include/F03RunMessenger.hh index 220a2aa37a..13816f74ce 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03StepCut.hh b/examples/extended/field/field03/include/F03StepCut.hh index 92002fe66c..477de434b4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingAction.hh b/examples/extended/field/field03/include/F03SteppingAction.hh index c998c210e3..fb6ec9ee83 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/include/F03SteppingMessenger.hh b/examples/extended/field/field03/include/F03SteppingMessenger.hh index e09931ca56..0768cb9cac 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/include/F03SteppingVerbose.hh b/examples/extended/field/field03/include/F03SteppingVerbose.hh index e0815a8b18..ae447217fe 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/examples/extended/field/field03/include/F03VisManager.hh b/examples/extended/field/field03/include/F03VisManager.hh index b2e714d198..74e5b82fcb 100644 --- a/examples/extended/field/field03/include/F03VisManager.hh +++ b/examples/extended/field/field03/include/F03VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: F03VisManager.hh,v 1.2 2001/07/11 09:58:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03CalorHit.cc b/examples/extended/field/field03/src/F03CalorHit.cc index ccdd3a3275..384242183c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03CalorimeterSD.cc b/examples/extended/field/field03/src/F03CalorimeterSD.cc index d9df4ad348..eeaba3d90e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03DetectorConstruction.cc b/examples/extended/field/field03/src/F03DetectorConstruction.cc index 9291b1c096..ea988a310e 100644 --- a/examples/extended/field/field03/src/F03DetectorConstruction.cc +++ b/examples/extended/field/field03/src/F03DetectorConstruction.cc @@ -21,16 +21,15 @@ // ******************************************************************** // // -// $Id: F03DetectorConstruction.cc,v 1.8 2003/06/25 17:19:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03DetectorConstruction.cc,v 1.10 2003/12/01 17:28:33 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // #include "F03DetectorConstruction.hh" #include "F03DetectorMessenger.hh" - #include "F03CalorimeterSD.hh" -#include "F03ElectroMagneticField.hh" +#include "F03FieldSetup.hh" #include "G4VClusterModel.hh" #include "G4PAIclusterModel.hh" @@ -45,6 +44,7 @@ #include "G4SDManager.hh" #include "G4RunManager.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" @@ -58,7 +58,7 @@ F03DetectorConstruction::F03DetectorConstruction() : solidWorld(0), logicWorld(0), physiWorld(0), solidAbsorber(0),logicAbsorber(0), physiAbsorber(0), - magField(0), fEmField(0), calorimeterSD(0), + magField(0), fEmFieldSetup(0), calorimeterSD(0), AbsorberMaterial(0), fRadiatorMat(0), worldchanged(false), WorldMaterial(0) { // default parameter values of the calorimeter @@ -87,7 +87,7 @@ F03DetectorConstruction::F03DetectorConstruction() DefineMaterials(); - fEmField = new F03ElectroMagneticField() ; + fEmFieldSetup = new F03FieldSetup() ; } ////////////////////////////////////////////////////////////////////////// @@ -97,7 +97,7 @@ F03DetectorConstruction::F03DetectorConstruction() F03DetectorConstruction::~F03DetectorConstruction() { delete detectorMessenger; - if (fEmField) delete fEmField ; + if (fEmFieldSetup) delete fEmFieldSetup ; } ////////////////////////////////////////////////////////////////////////// @@ -249,6 +249,7 @@ G4VPhysicalVolume* F03DetectorConstruction::ConstructCalorimeter() if (physiWorld) { + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); @@ -294,7 +295,7 @@ G4VPhysicalVolume* F03DetectorConstruction::ConstructCalorimeter() G4bool allLocal = true ; - logicRadiator->SetFieldManager( fEmField->GetLocalFieldManager(), + logicRadiator->SetFieldManager( fEmFieldSetup->GetLocalFieldManager(), allLocal ) ; diff --git a/examples/extended/field/field03/src/F03DetectorMessenger.cc b/examples/extended/field/field03/src/F03DetectorMessenger.cc index d3aef3dca8..d2f94c323e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03EventAction.cc b/examples/extended/field/field03/src/F03EventAction.cc index bd5ec22dda..bb71d28355 100644 --- a/examples/extended/field/field03/src/F03EventAction.cc +++ b/examples/extended/field/field03/src/F03EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: F03EventAction.cc,v 1.4 2001/11/07 16:36:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03EventActionMessenger.cc b/examples/extended/field/field03/src/F03EventActionMessenger.cc index 8ce31f47ef..5c2dd8d607 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03FieldMessenger.cc b/examples/extended/field/field03/src/F03FieldMessenger.cc index 2c7e925303..b644f1e21b 100644 --- a/examples/extended/field/field03/src/F03FieldMessenger.cc +++ b/examples/extended/field/field03/src/F03FieldMessenger.cc @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: F03FieldMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03FieldMessenger.cc,v 1.5 2003/12/01 17:28:54 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // #include "F03FieldMessenger.hh" -#include "F03ElectroMagneticField.hh" +#include "F03FieldSetup.hh" #include "G4UIdirectory.hh" #include "G4UIcmdWithAString.hh" #include "G4UIcmdWithAnInteger.hh" @@ -37,8 +37,8 @@ ////////////////////////////////////////////////////////////////////////////// -F03FieldMessenger::F03FieldMessenger(F03ElectroMagneticField* pEMfield) - : fEMfield(pEMfield) +F03FieldMessenger::F03FieldMessenger(F03FieldSetup* pEMfield) + : fEMfieldSetup(pEMfield) { F03detDir = new G4UIdirectory("/field/"); F03detDir->SetGuidance("F03 field tracking control."); @@ -100,19 +100,19 @@ void F03FieldMessenger::SetNewValue( G4UIcommand* command, G4String newValue) { if( command == StepperCmd ) { - fEMfield->SetStepperType(StepperCmd->GetNewIntValue(newValue)); + fEMfieldSetup->SetStepperType(StepperCmd->GetNewIntValue(newValue)); } if( command == UpdateCmd ) { - fEMfield->UpdateField(); + fEMfieldSetup->UpdateField(); } if( command == MagFieldCmd ) { - fEMfield->SetFieldValue(MagFieldCmd->GetNewDoubleValue(newValue)); + fEMfieldSetup->SetFieldValue(MagFieldCmd->GetNewDoubleValue(newValue)); } if( command == MinStepCmd ) { - fEMfield->SetMinStep(MinStepCmd->GetNewDoubleValue(newValue)); + fEMfieldSetup->SetMinStep(MinStepCmd->GetNewDoubleValue(newValue)); } } diff --git a/examples/extended/field/field03/src/F03ElectroMagneticField.cc b/examples/extended/field/field03/src/F03FieldSetup.cc similarity index 85% rename from examples/extended/field/field03/src/F03ElectroMagneticField.cc rename to examples/extended/field/field03/src/F03FieldSetup.cc index b7ee0d92ca..aada896542 100644 --- a/examples/extended/field/field03/src/F03ElectroMagneticField.cc +++ b/examples/extended/field/field03/src/F03FieldSetup.cc @@ -21,15 +21,14 @@ // ******************************************************************** // // -// $Id: F03ElectroMagneticField.cc,v 1.4 2003/06/25 16:42:22 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03FieldSetup.cc,v 1.2 2003/12/01 17:29:57 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -// User Field class implementation. +// Field Setup class implementation. // - -#include "F03ElectroMagneticField.hh" +#include "F03FieldSetup.hh" #include "F03FieldMessenger.hh" #include "G4UniformMagField.hh" @@ -55,7 +54,7 @@ // // Constructors: -F03ElectroMagneticField::F03ElectroMagneticField() +F03FieldSetup::F03FieldSetup() : fChordFinder(0), fLocalChordFinder(0), fStepper(0) { fMagneticField = new G4UniformMagField( @@ -72,7 +71,7 @@ F03ElectroMagneticField::F03ElectroMagneticField() fEquation = new G4Mag_UsualEqRhs(fMagneticField); fLocalEquation = new G4Mag_UsualEqRhs(fLocalMagneticField); - fMinStep = 1.0*mm ; // minimal step of 1 mm is default + fMinStep = 0.25*mm ; // minimal step of 1 mm is default fStepperType = 4 ; // ClassicalRK4 is default stepper fFieldManager = fLocalFieldManager = GetGlobalFieldManager(); @@ -82,15 +81,15 @@ F03ElectroMagneticField::F03ElectroMagneticField() ///////////////////////////////////////////////////////////////////////////////// -F03ElectroMagneticField::F03ElectroMagneticField(G4ThreeVector fieldVector) +F03FieldSetup::F03FieldSetup(G4ThreeVector fieldVector) { fMagneticField = new G4UniformMagField(fieldVector); - GetGlobalFieldManager()->CreateChordFinder(this); + GetGlobalFieldManager()->CreateChordFinder(fMagneticField); } //////////////////////////////////////////////////////////////////////////////// -F03ElectroMagneticField::~F03ElectroMagneticField() +F03FieldSetup::~F03FieldSetup() { if(fMagneticField) delete fMagneticField; if(fChordFinder) delete fChordFinder; @@ -102,7 +101,7 @@ F03ElectroMagneticField::~F03ElectroMagneticField() // Update field // -void F03ElectroMagneticField::UpdateField() +void F03FieldSetup::UpdateField() { SetStepper(); G4cout<<"The minimal step is equal to "<SetDetectorField(this); - - // To-do: when making this a factory, change above "this" to "fMagneticfield" } else { // If the new field's value is Zero, then it is best to // insure that it is not used for propagation. - - G4MagneticField* pZeroMagneticField = 0; - fieldMgr->SetDetectorField( pZeroMagneticField); + fMagneticField = 0; } + fieldMgr->SetDetectorField(fMagneticField); + + // UpdateField(); } //////////////////////////////////////////////////////////////////////////////// // // Utility method -G4FieldManager* F03ElectroMagneticField::GetGlobalFieldManager() +G4FieldManager* F03FieldSetup::GetGlobalFieldManager() { return G4TransportationManager::GetTransportationManager() ->GetFieldManager(); } - -void F03ElectroMagneticField::GetFieldValue( const G4double Point[3], - G4double *Bfield ) const -{ - return fMagneticField->GetFieldValue( Point, Bfield ); -} - diff --git a/examples/extended/field/field03/src/F03PhysicsList.cc b/examples/extended/field/field03/src/F03PhysicsList.cc index c62a2ea3c7..0661a73fa7 100644 --- a/examples/extended/field/field03/src/F03PhysicsList.cc +++ b/examples/extended/field/field03/src/F03PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03PhysicsList.cc,v 1.6 2003/06/16 16:49:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03PhysicsList.cc,v 1.7 2003/08/27 17:50:29 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" @@ -42,7 +42,7 @@ #include "G4UnitsTable.hh" #include "G4ios.hh" #include - + #include "G4FastSimulationManagerProcess.hh" @@ -65,7 +65,6 @@ F03PhysicsList::F03PhysicsList(F03DetectorConstruction* p) cutForGamma = defaultCutValue ; cutForElectron = defaultCutValue ; - cutForProton = defaultCutValue ; SetVerboseLevel(1); physicsListMessenger = new F03PhysicsListMessenger(this); @@ -256,7 +255,7 @@ void F03PhysicsList::ConstructEM() pmanager->AddProcess(new G4MuPairProduction(),-1,-1,4); pmanager->AddProcess( muonStepCut,-1,-1,3); muonStepCut->SetMaxStep(MaxChargedStep) ; - } + } else if ( particleName == "proton" || particleName == "antiproton" @@ -364,7 +363,6 @@ void F03PhysicsList::SetCuts() void F03PhysicsList::SetGammaCut(G4double val) { - ResetCuts(); cutForGamma = val; } @@ -372,70 +370,9 @@ void F03PhysicsList::SetGammaCut(G4double val) void F03PhysicsList::SetElectronCut(G4double val) { - ResetCuts(); cutForElectron = val; } -////////////////////////////////////////////////////////////////////// - -void F03PhysicsList::SetProtonCut(G4double val) -{ - ResetCuts(); - cutForProton = val; -} - -//////////////////////////////////////////////////////////////////////////// - -void F03PhysicsList::SetCutsByEnergy(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - // set cut values for gamma at first and for e- second and next for e+, - // because some processes for e+/e- need cut values for gamma - - G4ParticleDefinition* part; - G4double cut; - - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e-"); - - part = theParticleTable->FindParticle("e+"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "e+"); - - // set cut values for proton and anti_proton before all other hadrons - // because some processes for hadrons need cut values for proton/anti_proton - - part = theParticleTable->FindParticle("proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "proton"); - - part = theParticleTable->FindParticle("anti_proton"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - SetCutValue(cut, "anti_proton"); - - SetCutValueForOthers(cut); -} - -////////////////////////////////////////////////////////////////////////////// - -void F03PhysicsList::GetRange(G4double val) -{ - G4ParticleTable* theParticleTable = G4ParticleTable::GetParticleTable(); - G4Material* currMat = pDet->GetAbsorberMaterial(); - - G4ParticleDefinition* part; - G4double cut; - part = theParticleTable->FindParticle("e-"); - cut = G4EnergyLossTables::GetRange(part,val,currMat); - G4cout << "material : " << currMat->GetName() << G4endl; - G4cout << "particle : " << part->GetParticleName() << G4endl; - G4cout << "energy : " << val / keV << " (keV)" << G4endl; - G4cout << "range : " << cut / mm << " (mm)" << G4endl; -} - //////////////////////////////////////////////////////////////////////////// void F03PhysicsList::SetMaxStep(G4double step) diff --git a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc index 221635cd99..569a6f794e 100644 --- a/examples/extended/field/field03/src/F03PhysicsListMessenger.cc +++ b/examples/extended/field/field03/src/F03PhysicsListMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03PhysicsListMessenger.cc,v 1.3 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03PhysicsListMessenger.cc,v 1.4 2003/08/27 17:50:29 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -55,27 +55,6 @@ F03PhysicsListMessenger::F03PhysicsListMessenger(F03PhysicsList * List) cutECmd->SetDefaultUnit("mm"); cutECmd->AvailableForStates(G4State_Idle); - cutPCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutP",this); - cutPCmd->SetGuidance("Set cut values by RANGE for proton and others."); - cutPCmd->SetParameterName("range",true); - cutPCmd->SetDefaultValue(1.); - cutPCmd->SetDefaultUnit("mm"); - cutPCmd->AvailableForStates(G4State_Idle); - - eCmd = new G4UIcmdWithADoubleAndUnit("/calor/cutEnergy",this); - eCmd->SetGuidance("Set cut values by ENERGY for charged particles."); - eCmd->SetParameterName("energy",true); - eCmd->SetDefaultValue(10.); - eCmd->SetDefaultUnit("keV"); - eCmd->AvailableForStates(G4State_Idle); - - rCmd = new G4UIcmdWithADoubleAndUnit("/calor/range",this); - rCmd->SetGuidance("Display the RANGE of Electron for the current material."); - rCmd->SetParameterName("energy",true); - rCmd->SetDefaultValue(10.); - rCmd->SetDefaultUnit("keV"); - rCmd->AvailableForStates(G4State_Idle); - setMaxStepCmd = new G4UIcmdWithADoubleAndUnit("/step/setMaxStep",this); setMaxStepCmd->SetGuidance("Set max. step length in the detector"); setMaxStepCmd->SetParameterName("mxStep",true); @@ -92,9 +71,6 @@ F03PhysicsListMessenger::~F03PhysicsListMessenger() delete cutGCmd; delete cutECmd; - delete cutPCmd; - delete rCmd; - delete eCmd; } @@ -106,12 +82,6 @@ void F03PhysicsListMessenger::SetNewValue(G4UIcommand* command,G4String newValue { F03List->SetGammaCut(cutGCmd->GetNewDoubleValue(newValue));} if(command == cutECmd) { F03List->SetElectronCut(eCmd->GetNewDoubleValue(newValue));} - if(command == cutPCmd) - { F03List->SetProtonCut(eCmd->GetNewDoubleValue(newValue));} - if(command == eCmd) - { F03List->SetCutsByEnergy(cutECmd->GetNewDoubleValue(newValue));} - if(command == rCmd) - { F03List->GetRange(rCmd->GetNewDoubleValue(newValue));} if(command == setMaxStepCmd) { F03List->SetMaxStep(setMaxStepCmd->GetNewDoubleValue(newValue));} } diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorAction.cc index 4e8b49c4af..a5e4c09a7f 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.4 2001/11/07 14:34:43 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc b/examples/extended/field/field03/src/F03PrimaryGeneratorMessenger.cc index dc2897d62d..1b1104c888 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03RunAction.cc b/examples/extended/field/field03/src/F03RunAction.cc index 18f4e35e4f..5c48675e60 100644 --- a/examples/extended/field/field03/src/F03RunAction.cc +++ b/examples/extended/field/field03/src/F03RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: F03RunAction.cc,v 1.7 2003/06/25 17:19:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "F03RunAction.hh" diff --git a/examples/extended/field/field03/src/F03RunMessenger.cc b/examples/extended/field/field03/src/F03RunMessenger.cc index 6b4ebd3b45..f59976cf30 100644 --- a/examples/extended/field/field03/src/F03RunMessenger.cc +++ b/examples/extended/field/field03/src/F03RunMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: F03RunMessenger.cc,v 1.4 2002/12/05 01:06:58 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03StepCut.cc b/examples/extended/field/field03/src/F03StepCut.cc index 719697f070..cd39799987 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "F03StepCut.hh" diff --git a/examples/extended/field/field03/src/F03SteppingAction.cc b/examples/extended/field/field03/src/F03SteppingAction.cc index 85c07dfac8..c5adffaa71 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/field/field03/src/F03SteppingMessenger.cc b/examples/extended/field/field03/src/F03SteppingMessenger.cc index a41ca7f29e..d1b0e3c2b9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/examples/extended/field/field03/src/F03SteppingVerbose.cc b/examples/extended/field/field03/src/F03SteppingVerbose.cc index 9b456f681d..424663a126 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... diff --git a/examples/extended/field/field03/src/F03VisManager.cc b/examples/extended/field/field03/src/F03VisManager.cc index 1c1c7a68bd..2add13aa7b 100644 --- a/examples/extended/field/field03/src/F03VisManager.cc +++ b/examples/extended/field/field03/src/F03VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: F03VisManager.cc,v 1.4 2002/11/26 08:28:06 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: F03VisManager.cc,v 1.5 2003/11/13 15:11:08 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void F03VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/g3tog4/History b/examples/extended/g3tog4/History new file mode 100644 index 0000000000..1526936c77 --- /dev/null +++ b/examples/extended/g3tog4/History @@ -0,0 +1,30 @@ +$Id: History,v 1.3 2003/12/03 13:20:36 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + g3tog4 examples 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 13th, 2003 John Allison (g3tog4Tests-V05-02-01) +----------------------- +- Removed OPACS from Vis Manager. + +July 4th, 2003 G.Cosmo (g3tog4Tests-V05-02-00) +----------------------- +- Cleared pedantic compilation warnings ... + +July 24th, 2000 G.Cosmo (g3tog4Tests-V02-00-00) +------------------------ +- Moved tests from source/g3tog4/test and adapted to default + build mechanism + diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.cc b/examples/extended/g3tog4/clGeometry/clGeometry.cc index f25c8a56b1..f88c6343f4 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.cc +++ b/examples/extended/g3tog4/clGeometry/clGeometry.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: clGeometry.cc,v 1.3 2003/06/16 16:49:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: clGeometry.cc,v 1.4 2003/07/04 15:55:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -53,7 +53,7 @@ #include "G3toG4VisManager.hh" #endif -G4int main(int argc, char** argv) +int main(int argc, char** argv) { G4String inFile; G4String macroFile = ""; diff --git a/examples/extended/g3tog4/clGeometry/clGeometry.out b/examples/extended/g3tog4/clGeometry/clGeometry.out index 03165e45ac..5c102141d5 100644 --- a/examples/extended/g3tog4/clGeometry/clGeometry.out +++ b/examples/extended/g3tog4/clGeometry/clGeometry.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ + Geant4 version $Name: geant4-06-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 ed4d528f8f..eaff682ef0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 96432bb61c..456100096b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4EventActionMessenger.hh index 0ca12e4e14..3a5c56c110 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PhysicsList.hh index c6769fdcb4..98427032fa 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4PrimaryGeneratorAction.hh index 47dd543fe5..7673a5fc1a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4RunAction.hh index 0bf16b73d5..b544295796 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh b/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh index fd562b71f1..537219ec6f 100644 --- a/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh +++ b/examples/extended/g3tog4/clGeometry/include/G3toG4VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4VisManager.hh,v 1.2 2001/07/11 09:58:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc index 73db2e427d..b917f01086 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4DetectorConstruction.cc,v 1.3 2003/02/20 08:48:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G3toG4DetectorConstruction.cc,v 1.4 2003/07/04 15:55:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //-------------------------------------------------------------------------- // G3toG4DetectorConstruction. Most the work is Done in @@ -95,12 +95,13 @@ G3toG4DetectorConstruction::SimpleConstruct(){ Air, //its material "LTestDaughter"); - G4VPhysicalVolume* physiDaughter = new G4PVPlacement(0, - G4ThreeVector(), - logicDaughter, - "PTestDaughter", - logicMother, - false,0); + // G4VPhysicalVolume* physiDaughter = + new G4PVPlacement(0, + G4ThreeVector(), + logicDaughter, + "PTestDaughter", + logicMother, + false,0); // // Visualization attributes // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc index f237b1ee58..c820ef23f3 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4EventAction.cc,v 1.3 2001/10/23 13:32:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G3toG4EventAction.cc,v 1.4 2003/07/04 15:55:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -58,18 +58,16 @@ G3toG4EventAction::~G3toG4EventAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G3toG4EventAction::BeginOfEventAction(const G4Event* Ev) +void G3toG4EventAction::BeginOfEventAction(const G4Event*) {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G3toG4EventAction::EndOfEventAction(const G4Event* Ev) { - const G4Event* evt = fpEventManager->GetConstCurrentEvent(); - - G4cout << ">>> Event " << evt->GetEventID() << G4endl; + G4cout << ">>> Event " << Ev->GetEventID() << G4endl; - G4TrajectoryContainer * trajectoryContainer = evt->GetTrajectoryContainer(); + G4TrajectoryContainer * trajectoryContainer = Ev->GetTrajectoryContainer(); G4int n_trajectories = 0; if(trajectoryContainer){ n_trajectories = trajectoryContainer->entries(); @@ -79,7 +77,7 @@ void G3toG4EventAction::EndOfEventAction(const G4Event* Ev) if(G4VVisManager::GetConcreteInstance()){ for(G4int i=0; iGetTrajectoryContainer()))[i]; + G4Trajectory* trj = (G4Trajectory*)(*(Ev->GetTrajectoryContainer()))[i]; if (drawFlag == "all") trj->DrawTrajectory(50); else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) trj->DrawTrajectory(50); diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4EventActionMessenger.cc index a9d19482ce..66bca5558b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PhysicsList.cc index d4086d9096..29172b408c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4PrimaryGeneratorAction.cc index f9d66b8e1a..9455e62d41 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.3 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc index 45b3ff56f5..12c3572c37 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4RunAction.cc,v 1.2 2001/07/11 09:58:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G3toG4RunAction.cc,v 1.3 2003/07/04 15:55:02 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4ios.hh" @@ -50,5 +50,5 @@ void G3toG4RunAction::BeginOfRunAction(const G4Run* aRun){ } } -void G3toG4RunAction::EndOfRunAction(const G4Run* aRun){;} +void G3toG4RunAction::EndOfRunAction(const G4Run*){;} diff --git a/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc b/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc index 0eb3ed26e5..943fbffa47 100644 --- a/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc +++ b/examples/extended/g3tog4/clGeometry/src/G3toG4VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4VisManager.cc,v 1.5 2002/11/26 08:28:06 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G3toG4VisManager.cc,v 1.6 2003/11/13 15:10:10 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -53,11 +53,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -110,11 +105,6 @@ void G3toG4VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/g3tog4/cltog4/cltog4.cc b/examples/extended/g3tog4/cltog4/cltog4.cc index 7411502da2..442ce0c5be 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.cc +++ b/examples/extended/g3tog4/cltog4/cltog4.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: cltog4.cc,v 1.3 2003/06/16 16:49:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: cltog4.cc,v 1.4 2003/07/04 15:45:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // #include "G4ios.hh" @@ -44,7 +44,7 @@ #include "G4UImanager.hh" #include "G4UIterminal.hh" -G4int main(int argc, char** argv) +int main(int argc, char** argv) { G4String inFile; G4String macroFile = ""; diff --git a/examples/extended/g3tog4/cltog4/cltog4.out b/examples/extended/g3tog4/cltog4/cltog4.out index a20284ad19..e97e88e0b7 100644 --- a/examples/extended/g3tog4/cltog4/cltog4.out +++ b/examples/extended/g3tog4/cltog4/cltog4.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ + Geant4 version $Name: geant4-06-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 383cb52b61..1fadf3be01 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e7c22d0a97..5cdc927898 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh b/examples/extended/g3tog4/cltog4/include/G3toG4EventActionMessenger.hh index 0a31196872..120ccfba5d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PhysicsList.hh index f7eeb969de..522a291fe9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4PrimaryGeneratorAction.hh index 75435a5f36..a0b68075ea 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G3toG4PrimaryGeneratorAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh b/examples/extended/g3tog4/cltog4/include/G3toG4RunAction.hh index 19bb5ebe50..525cdd870d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G3toG4RunAction_h diff --git a/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh b/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh index af76cb22c1..ac8cbd7eb8 100644 --- a/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh +++ b/examples/extended/g3tog4/cltog4/include/G3toG4VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4VisManager.hh,v 1.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc index 464f5df2dc..b515c3b208 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4DetectorConstruction.cc,v 1.3 2003/02/20 08:52:39 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G3toG4DetectorConstruction.cc,v 1.4 2003/07/04 15:45:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //-------------------------------------------------------------------------- // G3toG4DetectorConstruction. Most the work is Done in @@ -95,12 +95,13 @@ G3toG4DetectorConstruction::SimpleConstruct(){ Air, //its material "LTestDaughter"); - G4VPhysicalVolume* physiDaughter = new G4PVPlacement(0, - G4ThreeVector(), - logicDaughter, - "PTestDaughter", - logicMother, - false,0); + // G4VPhysicalVolume* physiDaughter = + new G4PVPlacement(0, + G4ThreeVector(), + logicDaughter, + "PTestDaughter", + logicMother, + false,0); // // Visualization attributes // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc index 9a10ba71a8..c25533eb40 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4EventAction.cc,v 1.3 2001/10/23 13:32:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G3toG4EventAction.cc,v 1.5 2003/07/04 15:55:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -58,18 +58,16 @@ G3toG4EventAction::~G3toG4EventAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G3toG4EventAction::BeginOfEventAction(const G4Event* Ev) +void G3toG4EventAction::BeginOfEventAction(const G4Event*) {;} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G3toG4EventAction::EndOfEventAction(const G4Event* Ev) { - const G4Event* evt = fpEventManager->GetConstCurrentEvent(); - - G4cout << ">>> Event " << evt->GetEventID() << G4endl; + G4cout << ">>> Event " << Ev->GetEventID() << G4endl; - G4TrajectoryContainer * trajectoryContainer = evt->GetTrajectoryContainer(); + G4TrajectoryContainer * trajectoryContainer = Ev->GetTrajectoryContainer(); G4int n_trajectories = 0; if(trajectoryContainer){ n_trajectories = trajectoryContainer->entries(); @@ -79,7 +77,7 @@ void G3toG4EventAction::EndOfEventAction(const G4Event* Ev) if(G4VVisManager::GetConcreteInstance()){ for(G4int i=0; iGetTrajectoryContainer()))[i]; + G4Trajectory* trj = (G4Trajectory*)(*(Ev->GetTrajectoryContainer()))[i]; if (drawFlag == "all") trj->DrawTrajectory(50); else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) trj->DrawTrajectory(50); diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc b/examples/extended/g3tog4/cltog4/src/G3toG4EventActionMessenger.cc index a9d19482ce..66bca5558b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PhysicsList.cc index 379f506d6e..d27ec05e12 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4PrimaryGeneratorAction.cc index 34155abc63..669d08359f 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.3 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc b/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc index 48bc75fce8..53816cb5b9 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4RunAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4RunAction.cc,v 1.2 2001/07/11 09:58:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G3toG4RunAction.cc,v 1.3 2003/07/04 15:45:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4ios.hh" @@ -50,5 +50,5 @@ void G3toG4RunAction::BeginOfRunAction(const G4Run* aRun){ } } -void G3toG4RunAction::EndOfRunAction(const G4Run* aRun){;} +void G3toG4RunAction::EndOfRunAction(const G4Run*){;} diff --git a/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc b/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc index 74c763aeb4..8e43af6606 100644 --- a/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc +++ b/examples/extended/g3tog4/cltog4/src/G3toG4VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G3toG4VisManager.cc,v 1.5 2002/11/26 08:28:07 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G3toG4VisManager.cc,v 1.6 2003/11/13 15:10:15 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -53,11 +53,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -110,11 +105,6 @@ void G3toG4VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/gdml/History b/examples/extended/gdml/History index fedf2ff761..79304c4669 100644 --- a/examples/extended/gdml/History +++ b/examples/extended/gdml/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2002/06/03 10:32:56 gcosmo Exp $ +$Id: History,v 1.4 2003/12/03 13:44:04 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,18 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 13th, 2003 John Allison - exgdml-V05-02-01 +- Removed OPACS from Vis Manager. + +Oct 27th, 2003 R.Chytracek +- Brought up-to-date the makefiles with the latest Geant4 tags. +- Updated to adopt XercesC 2.x family. +- XERCESCROOT default now points to gcc-3.2 installation only. + +July 4th, 2003 G.Cosmo - exgdml-V05-02-00 +- Fixed trivial compilation errors originated by last g4std migration. +- Fixed pedantic compilation warnings on Linux-g++. + June 3rd, 2002 R.Chytracek - exgdml-V04-00-00 - First implementation of GDML example for detector description persistency. diff --git a/examples/extended/gdml/INSTALL b/examples/extended/gdml/INSTALL index 832f7a22bf..30d576513c 100644 --- a/examples/extended/gdml/INSTALL +++ b/examples/extended/gdml/INSTALL @@ -1,4 +1,4 @@ -# $Id: INSTALL,v 1.3 2002/06/10 11:57:38 radoone Exp $ +# $Id: INSTALL,v 1.4 2003/10/27 10:57:12 radoone Exp $ GDML Processor for Geant4 setup and build instructions ====================================================== @@ -7,9 +7,9 @@ Xerces-C XML Parser Set the environment variable XERCESCROOT: -For example AFS users can do: +For example AFS/CERN LCG users can do: -export XERCESCROOT=/afs/cern.ch/sw/geant4/dev/XercesC/$G4SYSTEM +export XERCESCROOT=/afs/cern.ch/sw/lcg/external/XercesC/2.3.0/rh73_gcc32 Build GDML Processor -------------------- diff --git a/examples/extended/gdml/N03gdml/NO3gogdml.cc b/examples/extended/gdml/N03gdml/NO3gogdml.cc index a660aa3fb0..079b6388bf 100644 --- a/examples/extended/gdml/N03gdml/NO3gogdml.cc +++ b/examples/extended/gdml/N03gdml/NO3gogdml.cc @@ -22,7 +22,7 @@ // // // $Id: NO3gogdml.cc,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/N03gdml/exampleN03.out b/examples/extended/gdml/N03gdml/exampleN03.out index a7885d37e0..263c558110 100644 --- a/examples/extended/gdml/N03gdml/exampleN03.out +++ b/examples/extended/gdml/N03gdml/exampleN03.out @@ -1,5 +1,5 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ + Geant4 version $Name: geant4-06-00 $ (28-Feb-2002) Copyright : Geant4 Collaboration ********************************************** diff --git a/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh b/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh index 2219af31e4..22bd83fd7d 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorHit.hh,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh b/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh index a9a39a1b2f..fb31d01dc4 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03CalorimeterSD.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh b/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh index ce82d1eec6..07caac41a3 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh index f0fecb9d1a..3dfb54db8c 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh b/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh index 4bbf178fca..ff48bb37f2 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh index fc2f72c8d1..8d666fc769 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03EventActionMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03EventActionMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh b/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh index cf605b1c9f..6d4a5866c0 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh index 5abeac5cd5..f343aa7550 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh index c2f5f8e91a..2bae171f83 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03PrimaryGeneratorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh b/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh index bfe6f20b07..d6e879de55 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03RunAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh b/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh index b7ff89378b..a423387730 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03SteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh b/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh index 3dabc58dae..619482f480 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03SteppingVerbose.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh b/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh index 8b8bae161d..dc3d34ce73 100644 --- a/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh +++ b/examples/extended/gdml/N03gdml/include/ExN03VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN03VisManager.hh,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc b/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc index 9fb2701bcf..be42cd3c35 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03CalorHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03CalorHit.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03CalorHit.cc,v 1.2 2003/07/04 14:55:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -49,6 +49,7 @@ ExN03CalorHit::~ExN03CalorHit() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... ExN03CalorHit::ExN03CalorHit(const ExN03CalorHit& right) + : G4VHit() { EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; @@ -67,7 +68,7 @@ const ExN03CalorHit& ExN03CalorHit::operator=(const ExN03CalorHit& right) int ExN03CalorHit::operator==(const ExN03CalorHit& right) const { - return 0; + return (this==&right) ? 1 : 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc b/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc index 81e55a1cd7..3977a710e7 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03CalorimeterSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03CalorimeterSD.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03CalorimeterSD.cc,v 1.2 2003/07/04 14:55:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -61,7 +61,7 @@ ExN03CalorimeterSD::~ExN03CalorimeterSD() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ExN03CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +void ExN03CalorimeterSD::Initialize(G4HCofThisEvent*) { CalCollection = new ExN03CalorHitsCollection (SensitiveDetectorName,collectionName[0]); @@ -70,7 +70,7 @@ void ExN03CalorimeterSD::Initialize(G4HCofThisEvent*HCE) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool ExN03CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +G4bool ExN03CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); diff --git a/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc b/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc index e1fd4fe387..9fd8150d71 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03DetectorConstruction.cc,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc index 6602f3ec2d..c75a9f22e1 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorMessenger.cc,v 1.2 2002/12/05 01:06:59 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03DetectorMessenger.cc,v 1.3 2003/07/04 14:55:34 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -138,7 +138,7 @@ ExN03DetectorMessenger::~ExN03DetectorMessenger() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ExN03DetectorMessenger::SetNewValue(G4UIcommand* command,G4String newValue) +void ExN03DetectorMessenger::SetNewValue(G4UIcommand*, G4String) { /* if( command == AbsMaterCmd ) diff --git a/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc b/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc index 44e832e418..c3afa30230 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03EventAction.cc,v 1.2 2003/06/16 16:49:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc index a907c14a42..f7f2e4aedb 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03EventActionMessenger.cc,v 1.2 2002/12/05 01:06:59 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc b/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc index 1a54ad02d0..b17d2f9e6b 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03PhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PhysicsList.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc index c71a680bbc..1bae8829c5 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorAction.cc,v 1.2 2002/06/03 09:59:37 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc index cce9b5ab77..69717d4674 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03PrimaryGeneratorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.2 2002/12/05 01:06:59 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc b/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc index bc1f3f559f..e6ad059c01 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03RunAction.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc b/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc index e71e83f72c..792e0916b7 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03SteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingAction.cc,v 1.1.1.1 2002/05/31 00:34:44 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc b/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc index 620bef0a16..bc1284d1cb 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: ExN03SteppingVerbose.cc,v 1.2 2003/06/16 16:49:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc b/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc index f75a4f9003..1dbe212c8b 100644 --- a/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc +++ b/examples/extended/gdml/N03gdml/src/ExN03VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03VisManager.cc,v 1.2 2002/11/26 08:28:07 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03VisManager.cc,v 1.3 2003/11/13 15:11:30 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void ExN03VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/gdml/libgdml/management/GNUmakefile b/examples/extended/gdml/libgdml/management/GNUmakefile index 78758911cf..fc99d47b09 100644 --- a/examples/extended/gdml/libgdml/management/GNUmakefile +++ b/examples/extended/gdml/libgdml/management/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:42 radoone Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/27 10:55:47 radoone Exp $ # ---------------------------------------------------------------- # GNUmakefile for GDML management library. Radovan Chytracek, 30/05/2002. # ---------------------------------------------------------------- @@ -9,6 +9,7 @@ CPPFLAGS += \ -I$(G4INSTALL)/source/global/management/include \ -I$(G4INSTALL)/source/global/HEPGeometry/include \ -I$(G4INSTALL)/source/geometry/management/include \ + -I$(G4INSTALL)/source/geometry/volumes/include \ -I$(G4INSTALL)/source/geometry/solids/CSG/include \ -I$(G4INSTALL)/source/geometry/solids/Boolean/include diff --git a/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh b/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh index d56aba877c..74d618107e 100644 --- a/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh +++ b/examples/extended/gdml/libgdml/management/include/GDMLDefineTable.hh @@ -22,7 +22,7 @@ // // // $Id: GDMLDefineTable.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh b/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh index 6d5ad427cc..90c2ceb8fe 100644 --- a/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh +++ b/examples/extended/gdml/libgdml/management/include/GDMLExpressionEvaluator.hh @@ -22,7 +22,7 @@ // // // $Id: GDMLExpressionEvaluator.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh b/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh index be6836f38c..fcd55935e8 100644 --- a/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh +++ b/examples/extended/gdml/libgdml/management/include/GDMLLinkResolver.hh @@ -22,7 +22,7 @@ // // // $Id: GDMLLinkResolver.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh b/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh index 609b7a0d97..0303830e2d 100644 --- a/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh +++ b/examples/extended/gdml/libgdml/management/include/GDMLProcessor.hh @@ -22,7 +22,7 @@ // // // $Id: GDMLProcessor.hh,v 1.3 2002/08/19 07:35:16 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc b/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc index 04a49be526..c041ac8abf 100644 --- a/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc +++ b/examples/extended/gdml/libgdml/management/src/GDMLExpressionEvaluator.cc @@ -22,7 +22,7 @@ // // // $Id: GDMLExpressionEvaluator.cc,v 1.3 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc b/examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc index 2d7a4c3e4c..4e552d67cd 100644 --- a/examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc +++ b/examples/extended/gdml/libgdml/management/src/GDMLLinkResolver.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: GDMLLinkResolver.cc,v 1.3 2002/07/24 17:48:42 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: GDMLLinkResolver.cc,v 1.4 2003/07/04 14:55:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -45,8 +45,7 @@ #include "ASCIIAttributeList.hh" #include "ProcessingConfigurator.hh" - -//#include +#include StatusCode GDMLLinkResolver::Run() { diff --git a/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc b/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc index 42dfa13a2c..f8c63c427b 100644 --- a/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc +++ b/examples/extended/gdml/libgdml/management/src/GDMLProcessor.cc @@ -22,7 +22,7 @@ // // // $Id: GDMLProcessor.cc,v 1.3 2002/08/19 07:35:50 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/GNUmakefile b/examples/extended/gdml/libgdml/processes/GNUmakefile index f4be244d56..5a18aaf439 100644 --- a/examples/extended/gdml/libgdml/processes/GNUmakefile +++ b/examples/extended/gdml/libgdml/processes/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:42 radoone Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/27 10:55:48 radoone Exp $ # ---------------------------------------------------------------- # GNUmakefile for GDML processes library. Radovan Chytracek, 30/05/2002. # ---------------------------------------------------------------- @@ -8,6 +8,7 @@ name := GDMLprocesses CPPFLAGS += \ -I$(G4INSTALL)/source/global/management/include \ -I$(G4INSTALL)/source/global/HEPGeometry/include \ - -I$(G4INSTALL)/source/geometry/management/include + -I$(G4INSTALL)/source/geometry/management/include \ + -I$(G4INSTALL)/source/geometry/volumes/include include ../libgdml.gmk diff --git a/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh index 88fec2fed5..fdde392a38 100644 --- a/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/BooleanSolidTypeProcess.hh @@ -22,7 +22,7 @@ // // // $Id: BooleanSolidTypeProcess.hh,v 1.3 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh index 801e353806..00415f836e 100644 --- a/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/MaterialTypeProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: MaterialTypeProcess.hh,v 1.3 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: MaterialTypeProcess.hh,v 1.4 2003/07/04 14:55:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -69,15 +69,15 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& ) { } // Analogical to SAX endElement callback - virtual void EndElement( const std::string& name ) { + virtual void EndElement( const std::string& ) { } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack diff --git a/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh index 092ef54de4..2f2ad4adaa 100644 --- a/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/QuantityTypeProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: QuantityTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: QuantityTypeProcess.hh,v 1.3 2003/07/04 14:55:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -62,7 +62,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { QuantityType* qobj = dynamic_cast( m_obj ); //std::cout << "PROCESS::START OF TAG : " << name << std::endl; @@ -102,13 +102,13 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh index cf9495fc55..c48c787731 100644 --- a/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/ReferenceTypeProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ReferenceTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ReferenceTypeProcess.hh,v 1.3 2003/07/04 14:55:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -62,7 +62,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "ReferenceTypeProcess PROCESS::START OF TAG : " << name << std::endl; std::string ref = attrs.getValue( "ref" ); @@ -91,13 +91,13 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh index 43e1f4e26d..ee203dfe62 100644 --- a/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/SinglePlacementTypeProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: SinglePlacementTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SinglePlacementTypeProcess.hh,v 1.3 2003/07/04 14:55:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -58,15 +58,15 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& ) { } // Analogical to SAX endElement callback - virtual void EndElement( const std::string& name ) { + virtual void EndElement( const std::string& ) { } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack diff --git a/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh b/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh index 61e021f3fa..2029694cd1 100644 --- a/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh +++ b/examples/extended/gdml/libgdml/processes/include/SolidTypeProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: SolidTypeProcess.hh,v 1.2 2002/06/03 12:09:31 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SolidTypeProcess.hh,v 1.3 2003/07/04 14:55:36 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -62,7 +62,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { std::string lunit = attrs.getValue( "lunit" ); std::string aunit = attrs.getValue( "aunit" ); @@ -76,18 +76,18 @@ public: } // Analogical to SAX endElement callback - virtual void EndElement( const std::string& name ) + virtual void EndElement( const std::string& ) { } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/src/DProcess.cc b/examples/extended/gdml/libgdml/processes/src/DProcess.cc index ecc3e8c94a..6478345de5 100644 --- a/examples/extended/gdml/libgdml/processes/src/DProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/DProcess.cc @@ -22,7 +22,7 @@ // // // $Id: DProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc index 9796695fc8..dec89fbfbf 100644 --- a/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/DrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: DrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc b/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc index 5248f97bb8..09d7297f3b 100644 --- a/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc +++ b/examples/extended/gdml/libgdml/processes/src/LibLoadProcesses.cc @@ -22,7 +22,7 @@ // // // $Id: LibLoadProcesses.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/PProcess.cc b/examples/extended/gdml/libgdml/processes/src/PProcess.cc index 08a84f6e24..b3488eed22 100644 --- a/examples/extended/gdml/libgdml/processes/src/PProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/PProcess.cc @@ -22,7 +22,7 @@ // // // $Id: PProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc index 88480b0f22..9aafdda17a 100644 --- a/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/PrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: PrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/TProcess.cc b/examples/extended/gdml/libgdml/processes/src/TProcess.cc index c283e67f66..5a632e7505 100644 --- a/examples/extended/gdml/libgdml/processes/src/TProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/TProcess.cc @@ -22,7 +22,7 @@ // // // $Id: TProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc index bf28e8937d..a006002bdd 100644 --- a/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/TrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: TrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc b/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc index da08cd78d6..a45967f7a9 100644 --- a/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/assemblyProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: assemblyProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: assemblyProcess.cc,v 1.4 2003/07/04 14:55:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -55,7 +55,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; SAXObject** obj = Context()->GetTopObject(); @@ -68,12 +68,12 @@ public: } // Analogical to SAX endElement callback - virtual void EndElement( const std::string& name ) { + virtual void EndElement( const std::string& ) { //std::cout << "PROCESS::END OF TAG : " << name << " " << std::endl; } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack diff --git a/examples/extended/gdml/libgdml/processes/src/atomProcess.cc b/examples/extended/gdml/libgdml/processes/src/atomProcess.cc index 176372533b..e8d62d6789 100644 --- a/examples/extended/gdml/libgdml/processes/src/atomProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/atomProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: atomProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: atomProcess.cc,v 1.4 2003/07/04 14:55:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -59,7 +59,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; std::string aunit = attrs.getValue( "unit" ); @@ -101,13 +101,13 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/src/boxProces.cc b/examples/extended/gdml/libgdml/processes/src/boxProces.cc index c0035ae98e..155ac4d30f 100644 --- a/examples/extended/gdml/libgdml/processes/src/boxProces.cc +++ b/examples/extended/gdml/libgdml/processes/src/boxProces.cc @@ -22,7 +22,7 @@ // // // $Id: boxProces.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/childProcess.cc b/examples/extended/gdml/libgdml/processes/src/childProcess.cc index 71fcd04a78..c632907288 100644 --- a/examples/extended/gdml/libgdml/processes/src/childProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/childProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: childProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: childProcess.cc,v 1.4 2003/07/04 14:55:37 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -45,7 +45,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; SAXObject** obj = Context()->GetTopObject(); @@ -57,7 +57,7 @@ public: } // Analogical to SAX endElement callback - virtual void EndElement( const std::string& name ) { + virtual void EndElement( const std::string& ) { //std::cout << "PROCESS::END OF TAG : " << name << std::endl; } diff --git a/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc b/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc index 2d58f118f1..a18763338c 100644 --- a/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/compositeProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: compositeProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: compositeProcess.cc,v 1.3 2003/07/04 14:55:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -69,12 +69,12 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) { + virtual void StackPopNotify( const std::string& ) { } // The name of the state this object will process diff --git a/examples/extended/gdml/libgdml/processes/src/coneProcess.cc b/examples/extended/gdml/libgdml/processes/src/coneProcess.cc index 819df95908..d662783d12 100644 --- a/examples/extended/gdml/libgdml/processes/src/coneProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/coneProcess.cc @@ -22,7 +22,7 @@ // // // $Id: coneProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/constantProcess.cc b/examples/extended/gdml/libgdml/processes/src/constantProcess.cc index ab8b3b1041..88f782997a 100644 --- a/examples/extended/gdml/libgdml/processes/src/constantProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/constantProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: constantProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: constantProcess.cc,v 1.4 2003/07/04 14:55:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -59,7 +59,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; std::string cname = attrs.getValue( "name" ); @@ -96,13 +96,13 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/src/defineProcess.cc b/examples/extended/gdml/libgdml/processes/src/defineProcess.cc index 6b9c13ec27..85a4b87739 100644 --- a/examples/extended/gdml/libgdml/processes/src/defineProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/defineProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: defineProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: defineProcess.cc,v 1.4 2003/07/04 14:55:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -58,7 +58,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; SAXObject** obj = Context()->GetTopObject(); @@ -67,7 +67,7 @@ public: } // Analogical to SAX endElement callback - virtual void EndElement( const std::string& name ) { + virtual void EndElement( const std::string& ) { //std::cout << "PROCESS::END OF TAG : " << name << std::endl; try { @@ -89,7 +89,7 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { // Irrelevant in this process } diff --git a/examples/extended/gdml/libgdml/processes/src/elementProcess.cc b/examples/extended/gdml/libgdml/processes/src/elementProcess.cc index 96be514d6c..a2d25a1454 100644 --- a/examples/extended/gdml/libgdml/processes/src/elementProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/elementProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: elementProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: elementProcess.cc,v 1.3 2003/07/04 14:55:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -48,7 +48,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; @@ -97,7 +97,7 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack diff --git a/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc b/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc index dedc1f76ff..85b648eccb 100644 --- a/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/expressionProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: expressionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: expressionProcess.cc,v 1.4 2003/07/04 14:55:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -59,7 +59,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { m_expression_value = "("; //std::cout << "PROCESS::START OF TAG : " << name << std::endl; @@ -105,7 +105,7 @@ public: // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/src/firstProcess.cc b/examples/extended/gdml/libgdml/processes/src/firstProcess.cc index e03aa6e68e..bb44ffe399 100644 --- a/examples/extended/gdml/libgdml/processes/src/firstProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/firstProcess.cc @@ -22,7 +22,7 @@ // // // $Id: firstProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc b/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc index dc55a1991c..4e7cb2cb0f 100644 --- a/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/fractionProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: fractionProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: fractionProcess.cc,v 1.3 2003/07/04 14:55:38 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -68,12 +68,12 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) { + virtual void StackPopNotify( const std::string& ) { } // The name of the state this object will process diff --git a/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc b/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc index 41de188ece..487b4ba5b1 100644 --- a/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/intersectionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: intersectionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc b/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc index 93d6eb36f6..ff74df183d 100644 --- a/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/isotopeProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: isotopeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: isotopeProcess.cc,v 1.4 2003/07/04 14:55:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -56,7 +56,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; @@ -103,7 +103,7 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack diff --git a/examples/extended/gdml/libgdml/processes/src/materialProcess.cc b/examples/extended/gdml/libgdml/processes/src/materialProcess.cc index 55c1cbf436..030144e0ac 100644 --- a/examples/extended/gdml/libgdml/processes/src/materialProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/materialProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: materialProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: materialProcess.cc,v 1.3 2003/07/04 14:55:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -50,7 +50,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; @@ -125,7 +125,7 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack diff --git a/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc index a95c86d930..573673923b 100644 --- a/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/materialrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: materialrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/paraProcess.cc b/examples/extended/gdml/libgdml/processes/src/paraProcess.cc index e6ecc9475a..01f15a88d9 100644 --- a/examples/extended/gdml/libgdml/processes/src/paraProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/paraProcess.cc @@ -22,7 +22,7 @@ // // // $Id: paraProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/positionProcess.cc b/examples/extended/gdml/libgdml/processes/src/positionProcess.cc index 9e29e1d686..841fec1671 100644 --- a/examples/extended/gdml/libgdml/processes/src/positionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/positionProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: positionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: positionProcess.cc,v 1.4 2003/07/04 14:55:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -59,7 +59,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; @@ -106,13 +106,13 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc index d3b9ca67a1..6d1b5c248a 100644 --- a/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/positionrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: positionrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc b/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc index 4a24cbe23a..22697822a8 100644 --- a/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/quantityProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: quantityProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: quantityProcess.cc,v 1.4 2003/07/04 14:55:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -59,7 +59,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; std::string qname = attrs.getValue( "name" ); @@ -100,13 +100,13 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc b/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc index 246711294d..e562641b87 100644 --- a/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/rotationProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: rotationProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: rotationProcess.cc,v 1.4 2003/07/04 14:55:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -59,7 +59,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; std::string rname = attrs.getValue( "name" ); @@ -104,13 +104,13 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack // The name passed-in as the argument is the name of the XML element for which that's been done - virtual void StackPopNotify( const std::string& name ) + virtual void StackPopNotify( const std::string& ) { } diff --git a/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc index eedac54075..56928e3fef 100644 --- a/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/rotationrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: rotationrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/secondProcess.cc b/examples/extended/gdml/libgdml/processes/src/secondProcess.cc index 5cddc68ba1..208c8b727c 100644 --- a/examples/extended/gdml/libgdml/processes/src/secondProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/secondProcess.cc @@ -22,7 +22,7 @@ // // // $Id: secondProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/setupProcess.cc b/examples/extended/gdml/libgdml/processes/src/setupProcess.cc index 11217eb498..044651523c 100644 --- a/examples/extended/gdml/libgdml/processes/src/setupProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/setupProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: setupProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: setupProcess.cc,v 1.4 2003/07/04 14:55:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -109,7 +109,7 @@ public: } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { // Irrelevant in this process } diff --git a/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc b/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc index dd14e841c1..320e3a1f76 100644 --- a/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/solidrefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: solidrefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc b/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc index 461fe6a815..12e1aa528c 100644 --- a/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/sphereProcess.cc @@ -22,7 +22,7 @@ // // // $Id: sphereProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc b/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc index d570937324..8e03d2d1dd 100644 --- a/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/subtractionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: subtractionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/trapProcess.cc b/examples/extended/gdml/libgdml/processes/src/trapProcess.cc index 2c9eb79eb4..2d13fb4399 100644 --- a/examples/extended/gdml/libgdml/processes/src/trapProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/trapProcess.cc @@ -22,7 +22,7 @@ // // // $Id: trapProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/trdProcess.cc b/examples/extended/gdml/libgdml/processes/src/trdProcess.cc index f947bd45f8..6ebe1ea405 100644 --- a/examples/extended/gdml/libgdml/processes/src/trdProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/trdProcess.cc @@ -22,7 +22,7 @@ // // // $Id: trdProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc b/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc index 2da8e17332..9019c64930 100644 --- a/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/tubeProcess.cc @@ -22,7 +22,7 @@ // // // $Id: tubeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/unionProcess.cc b/examples/extended/gdml/libgdml/processes/src/unionProcess.cc index e5f93e144a..05a6605bed 100644 --- a/examples/extended/gdml/libgdml/processes/src/unionProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/unionProcess.cc @@ -22,7 +22,7 @@ // // // $Id: unionProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc b/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc index f7a74c7c77..e3496cf0f4 100644 --- a/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/volumeProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: volumeProcess.cc,v 1.3 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: volumeProcess.cc,v 1.4 2003/07/04 14:55:40 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -58,7 +58,7 @@ public: } // Analogical to SAX startElement callback - virtual void StartElement( const std::string& name, const ASCIIAttributeList& attrs ) { + virtual void StartElement( const std::string&, const ASCIIAttributeList& attrs ) { //std::cout << "PROCESS::START OF TAG : " << name << std::endl; SAXObject** obj = Context()->GetTopObject(); @@ -71,12 +71,12 @@ public: } // Analogical to SAX endElement callback - virtual void EndElement( const std::string& name ) { + virtual void EndElement( const std::string& ) { //std::cout << "PROCESS::END OF TAG : " << name << " " << std::endl; } // Analogical to SAX characters callback, it's called for ignorableWhitespace too! - virtual void Characters( const std::string& name ) { + virtual void Characters( const std::string& ) { } // Invoked whenever one of the daughter state processes has been popped-out of the state stack diff --git a/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc b/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc index 575c8be3f4..bed13e1338 100644 --- a/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/volumerefProcess.cc @@ -22,7 +22,7 @@ // // // $Id: volumerefProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/processes/src/worldProcess.cc b/examples/extended/gdml/libgdml/processes/src/worldProcess.cc index 509677cfc0..b6d1d37aa1 100644 --- a/examples/extended/gdml/libgdml/processes/src/worldProcess.cc +++ b/examples/extended/gdml/libgdml/processes/src/worldProcess.cc @@ -22,7 +22,7 @@ // // // $Id: worldProcess.cc,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh b/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh index 13d2f64af8..fc206e8779 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ASCIIAttributeList.hh @@ -22,7 +22,7 @@ // // // $Id: ASCIIAttributeList.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/Action.hh b/examples/extended/gdml/libgdml/saxana/include/Action.hh index a020cf7aff..dda48867bd 100644 --- a/examples/extended/gdml/libgdml/saxana/include/Action.hh +++ b/examples/extended/gdml/libgdml/saxana/include/Action.hh @@ -22,7 +22,7 @@ // // // $Id: Action.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh index 2e1b7b3188..fd17e3ed45 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ActionProcessingState.hh @@ -22,7 +22,7 @@ // // // $Id: ActionProcessingState.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh index 93a04514a8..50658c310f 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingConfigurator.hh @@ -22,7 +22,7 @@ // // // $Id: ProcessingConfigurator.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh index 8ac4cee195..c22ef2fd16 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingContext.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ProcessingContext.hh,v 1.2 2002/06/03 12:09:32 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ProcessingContext.hh,v 1.3 2003/10/27 10:55:48 radoone Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh index 2d2a24f3de..fb12f5018a 100644 --- a/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh +++ b/examples/extended/gdml/libgdml/saxana/include/ProcessingState.hh @@ -22,7 +22,7 @@ // // // $Id: ProcessingState.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh b/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh index 3fc3bdb6df..1ef2c7bc78 100644 --- a/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh +++ b/examples/extended/gdml/libgdml/saxana/include/RCObjectHandle.hh @@ -22,7 +22,7 @@ // // // $Id: RCObjectHandle.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh index 5be3b336ec..db1195153b 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactory.hh @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactory.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh index 4fa6e007ab..62c1f7a2b6 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryBase.hh @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactoryBase.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh index f713725959..92c73fd1a6 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentFactoryTable.hh @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactoryTable.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh b/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh index c55d56ae4a..1b7c6c476d 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXComponentObject.hh @@ -22,7 +22,7 @@ // // // $Id: SAXComponentObject.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh index 5a0c21c824..fb56227aad 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXDocumentEvents.hh @@ -22,7 +22,7 @@ // // // $Id: SAXDocumentEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh index bb18c934b8..626e34ba2a 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXElementEvents.hh @@ -22,7 +22,7 @@ // // // $Id: SAXElementEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh index 2c68c70c91..632b748878 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXErrorEvents.hh @@ -22,7 +22,7 @@ // // // $Id: SAXErrorEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh index 350b582653..41debaefbc 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEvent.hh @@ -22,7 +22,7 @@ // // // $Id: SAXEvent.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh index 60eaae139d..22193b53d6 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEventGun.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: SAXEventGun.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SAXEventGun.hh,v 1.3 2003/10/27 10:55:48 radoone Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -34,10 +34,13 @@ #define SAX_EVENT_GUN_H 1 #include +#include #include "StatusCode.hh" -class SAXParser; +#if defined( XERCES_HAS_CPP_NAMESPACE ) + using namespace xercesc; +#endif class SAXProcessor; class ProcessingConfigurator; @@ -116,7 +119,7 @@ private: SAXProcessor* fTarget; protected: - SAXParser* fParser; + SAXParser* fParser; ProcessingConfigurator* fConfig; }; diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh b/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh index 6f47300a8c..851a9cb7a4 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXEvents.hh @@ -22,7 +22,7 @@ // // // $Id: SAXEvents.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh index 40b345776e..ac15eac556 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObject.hh @@ -22,7 +22,7 @@ // // // $Id: SAXObject.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh index bd5a0d6b00..aced5ac2b9 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObjectBase.hh @@ -22,7 +22,7 @@ // // // $Id: SAXObjectBase.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh b/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh index 3f939d7504..07c3b6367d 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXObjectHandle.hh @@ -22,7 +22,7 @@ // // // $Id: SAXObjectHandle.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh b/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh index f04207418e..0981f007c6 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXProcessingState.hh @@ -22,7 +22,7 @@ // // // $Id: SAXProcessingState.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh b/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh index 7dc1ac5a23..86fe458805 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXProcessor.hh @@ -22,7 +22,7 @@ // // // $Id: SAXProcessor.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh b/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh index c64034a5eb..7db81435e2 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXStateProcess.hh @@ -22,7 +22,7 @@ // // // $Id: SAXStateProcess.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh index 1e5aef9058..eced85ed12 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriber.hh @@ -22,7 +22,7 @@ // // // $Id: SAXSubscriber.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh index ce889ddbd2..850e098efa 100644 --- a/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh +++ b/examples/extended/gdml/libgdml/saxana/include/SAXSubscriberPool.hh @@ -22,7 +22,7 @@ // // // $Id: SAXSubscriberPool.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh b/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh index b514f001af..5137a62292 100644 --- a/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh +++ b/examples/extended/gdml/libgdml/saxana/include/StateProcessMap.hh @@ -22,7 +22,7 @@ // // // $Id: StateProcessMap.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/StateStack.hh b/examples/extended/gdml/libgdml/saxana/include/StateStack.hh index e3e4dd08e7..8a74b0d386 100644 --- a/examples/extended/gdml/libgdml/saxana/include/StateStack.hh +++ b/examples/extended/gdml/libgdml/saxana/include/StateStack.hh @@ -22,7 +22,7 @@ // // // $Id: StateStack.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh b/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh index fe3c00fd53..e1cc5c06aa 100644 --- a/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh +++ b/examples/extended/gdml/libgdml/saxana/include/StatusCode.hh @@ -22,7 +22,7 @@ // // // $Id: StatusCode.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc index b841708b02..c6f8088a4a 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactory.cc @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactory.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc index fa916a127f..2ea3452077 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXComponentFactoryTable.cc @@ -22,7 +22,7 @@ // // // $Id: SAXComponentFactoryTable.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc b/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc index 7788989c6b..5079196d83 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXEventGun.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: SAXEventGun.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: SAXEventGun.cc,v 1.4 2003/10/27 10:55:48 radoone Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -46,13 +46,22 @@ #include "SAXEventGun.hh" +// 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 #include +using namespace xercesc; + StatusCode SAXEventGun::Run() { StatusCode sc; - fParser = new SAXParser(); + fParser = new xercesc::SAXParser(); fParser->setDocumentHandler( this ); fParser->setErrorHandler( this ); @@ -220,7 +229,7 @@ void SAXEventGun::resetDocument() { } -void SAXEventGun::setDocumentLocator(const Locator* const locator) +void SAXEventGun::setDocumentLocator(const Locator* const) // Receive a Locator object for document events. { } @@ -265,8 +274,8 @@ void SAXEventGun::startElement( const XMLCh* const name } //static XMLCh sEmpty[] = { chLatin_e, chLatin_m, chLatin_p, chLatin_t, chLatin_y, chNull }; -InputSource* SAXEventGun::resolveEntity( const XMLCh* const publicId - , const XMLCh* const systemId ) +InputSource* SAXEventGun::resolveEntity( const XMLCh* const // publicId + , const XMLCh* const ) // systemId // Resolve an external entity. { return 0; @@ -381,9 +390,9 @@ void SAXEventGun::resetErrors() { } -void SAXEventGun::notationDecl( const XMLCh* const name - , const XMLCh* const publicId - , const XMLCh* const systemId ) +void SAXEventGun::notationDecl( const XMLCh* const // name + , const XMLCh* const // publicId + , const XMLCh* const ) // systemId // Receive notification of a notation declaration. { } @@ -393,10 +402,10 @@ void SAXEventGun::resetDocType() { } -void SAXEventGun::unparsedEntityDecl( const XMLCh* const name - , const XMLCh* const publicId - , const XMLCh* const systemId - , const XMLCh* const notationName ) +void SAXEventGun::unparsedEntityDecl( const XMLCh* const // name + , const XMLCh* const // publicId + , const XMLCh* const // systemId + , const XMLCh* const ) // notationName // Receive notification of an unparsed entity declaration. { } diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc b/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc index 4c936ead4c..861f7b008d 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXProcessor.cc @@ -22,7 +22,7 @@ // // // $Id: SAXProcessor.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc b/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc index eb4149ef5b..6044332e69 100644 --- a/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc +++ b/examples/extended/gdml/libgdml/saxana/src/SAXSubscriberPool.cc @@ -22,7 +22,7 @@ // // // $Id: SAXSubscriberPool.cc,v 1.3 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc b/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc index 103e91ecba..a5aa7a1538 100644 --- a/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc +++ b/examples/extended/gdml/libgdml/saxana/src/StateProcessMap.cc @@ -22,7 +22,7 @@ // // // $Id: StateProcessMap.cc,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh b/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh index b963f5ce1d..37beea5415 100644 --- a/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh +++ b/examples/extended/gdml/libgdml/schema/include/AssemblyVolumeType.hh @@ -22,7 +22,7 @@ // // // $Id: AssemblyVolumeType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/AtomType.hh b/examples/extended/gdml/libgdml/schema/include/AtomType.hh index 06fd64ae88..619e8c124b 100644 --- a/examples/extended/gdml/libgdml/schema/include/AtomType.hh +++ b/examples/extended/gdml/libgdml/schema/include/AtomType.hh @@ -22,7 +22,7 @@ // // // $Id: AtomType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh b/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh index c901897a04..bbea7cf977 100644 --- a/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh +++ b/examples/extended/gdml/libgdml/schema/include/BooleanSolidType.hh @@ -22,7 +22,7 @@ // // // $Id: BooleanSolidType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ConstantType.hh b/examples/extended/gdml/libgdml/schema/include/ConstantType.hh index 6535513df3..6125451d0f 100644 --- a/examples/extended/gdml/libgdml/schema/include/ConstantType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ConstantType.hh @@ -22,7 +22,7 @@ // // // $Id: ConstantType.hh,v 1.2 2002/06/03 12:09:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh b/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh index b039229739..7ee73c18e2 100644 --- a/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh +++ b/examples/extended/gdml/libgdml/schema/include/ContentGroup.hh @@ -22,7 +22,7 @@ // // // $Id: ContentGroup.hh,v 1.3 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/DorDref.hh b/examples/extended/gdml/libgdml/schema/include/DorDref.hh index 9ef468fa41..d1dc6288f5 100644 --- a/examples/extended/gdml/libgdml/schema/include/DorDref.hh +++ b/examples/extended/gdml/libgdml/schema/include/DorDref.hh @@ -22,7 +22,7 @@ // // // $Id: DorDref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh b/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh index 24c35d6854..27b4db3f71 100644 --- a/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ExpressionType.hh @@ -22,7 +22,7 @@ // // // $Id: ExpressionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh index 12716a8e04..b0bb7195bc 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableConstantType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableConstantType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh index c5f7c3ccc5..3ca4c1c707 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableExpressionType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableExpressionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh index 38f08104ad..490dacdcb5 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableQuantityType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh index e7b3b2d38d..c57424b4e6 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableQuantityVectorType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableQuantityVectorType.hh,v 1.3 2002/07/25 10:41:20 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh index 809f081eb2..444d427776 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableThreeVectorType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableThreeVectorType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh b/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh index 1ec7706007..74a6517c2f 100644 --- a/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh +++ b/examples/extended/gdml/libgdml/schema/include/IdentifiableVolumeType.hh @@ -22,7 +22,7 @@ // // // $Id: IdentifiableVolumeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh b/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh index 520c21b06b..165ebb2e40 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialAttributeGroup.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialAttributeGroup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh index 4b0b578e71..04e3e6a644 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialElementType.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialElementType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh index 709ceae53b..2ee65dddf2 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialIsotopeType.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialIsotopeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh index 014f242f2b..4372311936 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialMixtureType.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialMixtureType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh b/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh index 0eadcbfd0e..854935faee 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialPropertiesGroup.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialPropertiesGroup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/MaterialType.hh b/examples/extended/gdml/libgdml/schema/include/MaterialType.hh index 7b4f64672e..f6b0243e41 100644 --- a/examples/extended/gdml/libgdml/schema/include/MaterialType.hh +++ b/examples/extended/gdml/libgdml/schema/include/MaterialType.hh @@ -22,7 +22,7 @@ // // // $Id: MaterialType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/PorPref.hh b/examples/extended/gdml/libgdml/schema/include/PorPref.hh index 51b22dd46f..4832c24814 100644 --- a/examples/extended/gdml/libgdml/schema/include/PorPref.hh +++ b/examples/extended/gdml/libgdml/schema/include/PorPref.hh @@ -22,7 +22,7 @@ // // // $Id: PorPref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/QuantityType.hh b/examples/extended/gdml/libgdml/schema/include/QuantityType.hh index 95c8d29430..2df306d6f7 100644 --- a/examples/extended/gdml/libgdml/schema/include/QuantityType.hh +++ b/examples/extended/gdml/libgdml/schema/include/QuantityType.hh @@ -22,7 +22,7 @@ // // // $Id: QuantityType.hh,v 1.3 2002/07/25 10:41:21 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh b/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh index 304f0354a0..aa4338adbe 100644 --- a/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh +++ b/examples/extended/gdml/libgdml/schema/include/QuantityVectorType.hh @@ -22,7 +22,7 @@ // // // $Id: QuantityVectorType.hh,v 1.3 2002/07/25 10:41:22 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh b/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh index 3b871a7625..0bb5e47620 100644 --- a/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ReferenceListType.hh @@ -22,7 +22,7 @@ // // // $Id: ReferenceListType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh b/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh index ff05ea80f1..c2fc2f3553 100644 --- a/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ReferenceType.hh @@ -22,7 +22,7 @@ // // // $Id: ReferenceType.hh,v 1.3 2002/07/25 10:41:23 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh b/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh index eccca499ed..f0d8808c89 100644 --- a/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh +++ b/examples/extended/gdml/libgdml/schema/include/SinglePlacementType.hh @@ -22,7 +22,7 @@ // // // $Id: SinglePlacementType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/SolidType.hh b/examples/extended/gdml/libgdml/schema/include/SolidType.hh index 13fa98c2e2..b8d2e71f86 100644 --- a/examples/extended/gdml/libgdml/schema/include/SolidType.hh +++ b/examples/extended/gdml/libgdml/schema/include/SolidType.hh @@ -22,7 +22,7 @@ // // // $Id: SolidType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh b/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh index 092cc69f13..65fd17d1f5 100644 --- a/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh +++ b/examples/extended/gdml/libgdml/schema/include/TagorTagref.hh @@ -22,7 +22,7 @@ // // // $Id: TagorTagref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh b/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh index 40972245dd..24755a3a9b 100644 --- a/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh +++ b/examples/extended/gdml/libgdml/schema/include/ThreeVectorType.hh @@ -22,7 +22,7 @@ // // // $Id: ThreeVectorType.hh,v 1.3 2002/07/25 10:41:24 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/TorTref.hh b/examples/extended/gdml/libgdml/schema/include/TorTref.hh index d8ad21ab0e..ecdc04ae69 100644 --- a/examples/extended/gdml/libgdml/schema/include/TorTref.hh +++ b/examples/extended/gdml/libgdml/schema/include/TorTref.hh @@ -22,7 +22,7 @@ // // // $Id: TorTref.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/VolumeType.hh b/examples/extended/gdml/libgdml/schema/include/VolumeType.hh index fbea88673c..51020e095d 100644 --- a/examples/extended/gdml/libgdml/schema/include/VolumeType.hh +++ b/examples/extended/gdml/libgdml/schema/include/VolumeType.hh @@ -22,7 +22,7 @@ // // // $Id: VolumeType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/assembly.hh b/examples/extended/gdml/libgdml/schema/include/assembly.hh index c8a76da9eb..3f54dd508b 100644 --- a/examples/extended/gdml/libgdml/schema/include/assembly.hh +++ b/examples/extended/gdml/libgdml/schema/include/assembly.hh @@ -22,7 +22,7 @@ // // // $Id: assembly.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/atom.hh b/examples/extended/gdml/libgdml/schema/include/atom.hh index f092ffd908..925829ab5e 100644 --- a/examples/extended/gdml/libgdml/schema/include/atom.hh +++ b/examples/extended/gdml/libgdml/schema/include/atom.hh @@ -22,7 +22,7 @@ // // // $Id: atom.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh b/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh index 574e9b8413..42fa9bd304 100644 --- a/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh +++ b/examples/extended/gdml/libgdml/schema/include/boolean_intersection.hh @@ -22,7 +22,7 @@ // // // $Id: boolean_intersection.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh b/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh index 04d03286e1..331a7f04e0 100644 --- a/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh +++ b/examples/extended/gdml/libgdml/schema/include/boolean_subtraction.hh @@ -22,7 +22,7 @@ // // // $Id: boolean_subtraction.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/boolean_union.hh b/examples/extended/gdml/libgdml/schema/include/boolean_union.hh index af3f312599..faddc49bbe 100644 --- a/examples/extended/gdml/libgdml/schema/include/boolean_union.hh +++ b/examples/extended/gdml/libgdml/schema/include/boolean_union.hh @@ -22,7 +22,7 @@ // // // $Id: boolean_union.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/box.hh b/examples/extended/gdml/libgdml/schema/include/box.hh index 8f937aafb9..1fd729f021 100644 --- a/examples/extended/gdml/libgdml/schema/include/box.hh +++ b/examples/extended/gdml/libgdml/schema/include/box.hh @@ -22,7 +22,7 @@ // // // $Id: box.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/child.hh b/examples/extended/gdml/libgdml/schema/include/child.hh index a904681aa7..e0eac31a44 100644 --- a/examples/extended/gdml/libgdml/schema/include/child.hh +++ b/examples/extended/gdml/libgdml/schema/include/child.hh @@ -22,7 +22,7 @@ // // // $Id: child.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/composite.hh b/examples/extended/gdml/libgdml/schema/include/composite.hh index 8605446818..042344c50e 100644 --- a/examples/extended/gdml/libgdml/schema/include/composite.hh +++ b/examples/extended/gdml/libgdml/schema/include/composite.hh @@ -22,7 +22,7 @@ // // // $Id: composite.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/cone.hh b/examples/extended/gdml/libgdml/schema/include/cone.hh index 37ad79edbf..2128275e10 100644 --- a/examples/extended/gdml/libgdml/schema/include/cone.hh +++ b/examples/extended/gdml/libgdml/schema/include/cone.hh @@ -22,7 +22,7 @@ // // // $Id: cone.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/define.hh b/examples/extended/gdml/libgdml/schema/include/define.hh index e0c0293f01..d2cf9f9968 100644 --- a/examples/extended/gdml/libgdml/schema/include/define.hh +++ b/examples/extended/gdml/libgdml/schema/include/define.hh @@ -22,7 +22,7 @@ // // // $Id: define.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/defineType.hh b/examples/extended/gdml/libgdml/schema/include/defineType.hh index 3caefd84c4..21ea29c8b7 100644 --- a/examples/extended/gdml/libgdml/schema/include/defineType.hh +++ b/examples/extended/gdml/libgdml/schema/include/defineType.hh @@ -22,7 +22,7 @@ // // // $Id: defineType.hh,v 1.3 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/element.hh b/examples/extended/gdml/libgdml/schema/include/element.hh index 524aeee016..b22d4489c4 100644 --- a/examples/extended/gdml/libgdml/schema/include/element.hh +++ b/examples/extended/gdml/libgdml/schema/include/element.hh @@ -22,7 +22,7 @@ // // // $Id: element.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/fraction.hh b/examples/extended/gdml/libgdml/schema/include/fraction.hh index 192bf1eb83..de353d8e21 100644 --- a/examples/extended/gdml/libgdml/schema/include/fraction.hh +++ b/examples/extended/gdml/libgdml/schema/include/fraction.hh @@ -22,7 +22,7 @@ // // // $Id: fraction.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/isotope.hh b/examples/extended/gdml/libgdml/schema/include/isotope.hh index a819ea30b7..6f3e455702 100644 --- a/examples/extended/gdml/libgdml/schema/include/isotope.hh +++ b/examples/extended/gdml/libgdml/schema/include/isotope.hh @@ -22,7 +22,7 @@ // // // $Id: isotope.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/material.hh b/examples/extended/gdml/libgdml/schema/include/material.hh index 8de779f48d..96cf5bc6d2 100644 --- a/examples/extended/gdml/libgdml/schema/include/material.hh +++ b/examples/extended/gdml/libgdml/schema/include/material.hh @@ -22,7 +22,7 @@ // // // $Id: material.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/para.hh b/examples/extended/gdml/libgdml/schema/include/para.hh index bfc888f973..484fc64da2 100644 --- a/examples/extended/gdml/libgdml/schema/include/para.hh +++ b/examples/extended/gdml/libgdml/schema/include/para.hh @@ -22,7 +22,7 @@ // // // $Id: para.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/positionType.hh b/examples/extended/gdml/libgdml/schema/include/positionType.hh index 7cf7f98a57..f0c8612889 100644 --- a/examples/extended/gdml/libgdml/schema/include/positionType.hh +++ b/examples/extended/gdml/libgdml/schema/include/positionType.hh @@ -22,7 +22,7 @@ // // // $Id: positionType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/rotationType.hh b/examples/extended/gdml/libgdml/schema/include/rotationType.hh index 49444fda61..5d48dc0bf9 100644 --- a/examples/extended/gdml/libgdml/schema/include/rotationType.hh +++ b/examples/extended/gdml/libgdml/schema/include/rotationType.hh @@ -22,7 +22,7 @@ // // // $Id: rotationType.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/setup.hh b/examples/extended/gdml/libgdml/schema/include/setup.hh index d60d1fef3f..6a48d1ec02 100644 --- a/examples/extended/gdml/libgdml/schema/include/setup.hh +++ b/examples/extended/gdml/libgdml/schema/include/setup.hh @@ -22,7 +22,7 @@ // // // $Id: setup.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/sphere.hh b/examples/extended/gdml/libgdml/schema/include/sphere.hh index c1d296cc0e..be18f7b9c9 100644 --- a/examples/extended/gdml/libgdml/schema/include/sphere.hh +++ b/examples/extended/gdml/libgdml/schema/include/sphere.hh @@ -22,7 +22,7 @@ // // // $Id: sphere.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/trap.hh b/examples/extended/gdml/libgdml/schema/include/trap.hh index 08bc32ef08..2fbcb2df4f 100644 --- a/examples/extended/gdml/libgdml/schema/include/trap.hh +++ b/examples/extended/gdml/libgdml/schema/include/trap.hh @@ -22,7 +22,7 @@ // // // $Id: trap.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/trd.hh b/examples/extended/gdml/libgdml/schema/include/trd.hh index 430186c919..dfebb9186c 100644 --- a/examples/extended/gdml/libgdml/schema/include/trd.hh +++ b/examples/extended/gdml/libgdml/schema/include/trd.hh @@ -22,7 +22,7 @@ // // // $Id: trd.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/tube.hh b/examples/extended/gdml/libgdml/schema/include/tube.hh index d7758a2ac0..47b5c2b39b 100644 --- a/examples/extended/gdml/libgdml/schema/include/tube.hh +++ b/examples/extended/gdml/libgdml/schema/include/tube.hh @@ -22,7 +22,7 @@ // // // $Id: tube.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/include/volume.hh b/examples/extended/gdml/libgdml/schema/include/volume.hh index 39545ba158..3c8604debd 100644 --- a/examples/extended/gdml/libgdml/schema/include/volume.hh +++ b/examples/extended/gdml/libgdml/schema/include/volume.hh @@ -22,7 +22,7 @@ // // // $Id: volume.hh,v 1.2 2002/06/03 12:09:34 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/schema/src/schema.cc b/examples/extended/gdml/libgdml/schema/src/schema.cc index 5e318de1b8..1add8e5767 100644 --- a/examples/extended/gdml/libgdml/schema/src/schema.cc +++ b/examples/extended/gdml/libgdml/schema/src/schema.cc @@ -22,7 +22,7 @@ // // // $Id: schema.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/GNUmakefile b/examples/extended/gdml/libgdml/subscribers/GNUmakefile index 734f29e5bc..fa97734e74 100644 --- a/examples/extended/gdml/libgdml/subscribers/GNUmakefile +++ b/examples/extended/gdml/libgdml/subscribers/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1.1.1 2002/05/31 00:34:43 radoone Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/27 10:55:48 radoone Exp $ # ---------------------------------------------------------------- # GNUmakefile for G4 GDML subscribers library. Radovan Chytracek, 30/05/2002. # ---------------------------------------------------------------- @@ -11,6 +11,7 @@ CPPFLAGS += \ -I$(G4INSTALL)/source/global/management/include \ -I$(G4INSTALL)/source/global/HEPGeometry/include \ -I$(G4INSTALL)/source/geometry/management/include \ + -I$(G4INSTALL)/source/geometry/volumes/include \ -I$(G4INSTALL)/source/geometry/solids/CSG/include \ -I$(G4INSTALL)/source/geometry/solids/Boolean/include \ -I$(G4INSTALL)/source/materials/include diff --git a/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh b/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh index 2f5f3fc128..6d058e2d24 100644 --- a/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh +++ b/examples/extended/gdml/libgdml/subscribers/include/BooleanSolidTypeSubscriber.hh @@ -22,7 +22,7 @@ // // // $Id: BooleanSolidTypeSubscriber.hh,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc b/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc index 0317f3df88..ebc3e2438f 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/LibLoadSubscribers.cc @@ -22,7 +22,7 @@ // // // $Id: LibLoadSubscribers.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc index 7ef2f39895..68f3800e10 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/assemblySubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: assemblySubscriber.cc,v 1.4 2003/06/16 16:49:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc index a7630b667c..a3603e560a 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/boxSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: boxSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc index 47a3d3a80b..1b31780eb4 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/coneSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: coneSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc b/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc index 3e52a3bf76..566518b1ee 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/defineSubcriber.cc @@ -22,7 +22,7 @@ // // // $Id: defineSubcriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc index 6306b4404f..4b54d3ddba 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/elementSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: elementSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc index 00251069cb..23b5f118eb 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/intersectionSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: intersectionSubscriber.cc,v 1.3 2002/06/05 11:54:33 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc index bd5c220cbe..d647975145 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/isotopeSubscriber.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: isotopeSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: isotopeSubscriber.cc,v 1.4 2003/07/04 14:55:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -74,8 +74,8 @@ public: GDMLExpressionEvaluator* calc = GDMLProcessor::GetInstance()->GetEvaluator(); // The big moment, we're gonna create an isotope - double z = calc->Eval( obj->get_Z() ); - double n = calc->Eval( obj->get_N() ); + int z = static_cast(calc->Eval( obj->get_Z() )); + int n = static_cast(calc->Eval( obj->get_N() )); std::string sA = obj->get_atom().get_value(); sA += "*"; sA += obj->get_atom().get_unit(); diff --git a/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc index 1f88c540fa..48cd24f211 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/materialSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: materialSubscriber.cc,v 1.4 2002/08/19 07:38:49 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc index c233e4149b..4b37cb2416 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/paraSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: paraSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc index f6e20f012d..3225309992 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/setupSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: setupSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc index fd9a81587d..113936f9af 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/sphereSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: sphereSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc index 5a9c6296d7..9af4fb982b 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/subtractionSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: subtractionSubscriber.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc index 79c7285620..389b839f21 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/trapSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: trapSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc index 0a0f70a153..4179b5f9a7 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/trdSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: trdSubscriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc b/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc index cc2c439c4e..0c0b425706 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/tubeSusbcriber.cc @@ -22,7 +22,7 @@ // // // $Id: tubeSusbcriber.cc,v 1.3 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc index 92e3304749..767e0de396 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/unionSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: unionSubscriber.cc,v 1.2 2002/06/03 12:09:35 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc b/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc index 9544174381..afb138b30c 100644 --- a/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc +++ b/examples/extended/gdml/libgdml/subscribers/src/volumeSubscriber.cc @@ -22,7 +22,7 @@ // // // $Id: volumeSubscriber.cc,v 1.6 2003/06/16 16:49:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/gogdml.cc b/examples/extended/gdml/sample/gogdml.cc index 1088a9c273..e0bcb5c48f 100644 --- a/examples/extended/gdml/sample/gogdml.cc +++ b/examples/extended/gdml/sample/gogdml.cc @@ -22,7 +22,7 @@ // // // $Id: gogdml.cc,v 1.3 2002/08/19 07:28:52 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh b/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh index 5ab8b0e119..5249eb14ce 100644 --- a/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh +++ b/examples/extended/gdml/sample/include/gogdmlDetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: gogdmlDetectorConstruction.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh b/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh index ca35213dd8..6e9131e342 100644 --- a/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh +++ b/examples/extended/gdml/sample/include/gogdmlPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: gogdmlPhysicsList.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh b/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh index ce0a8caa26..ee87e6dd3d 100644 --- a/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh +++ b/examples/extended/gdml/sample/include/gogdmlPrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: gogdmlPrimaryGeneratorAction.hh,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc b/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc index b0a781a3a2..221742f5d5 100644 --- a/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc +++ b/examples/extended/gdml/sample/src/gogdmlDetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: gogdmlDetectorConstruction.cc,v 1.3 2002/08/19 07:27:51 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc b/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc index 379942a37e..4245b18496 100644 --- a/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc +++ b/examples/extended/gdml/sample/src/gogdmlPhysicsList.cc @@ -22,7 +22,7 @@ // // // $Id: gogdmlPhysicsList.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc b/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc index 351ceed967..5fb6c5b752 100644 --- a/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc +++ b/examples/extended/gdml/sample/src/gogdmlPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: gogdmlPrimaryGeneratorAction.cc,v 1.2 2002/06/03 12:09:36 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "gogdmlPrimaryGeneratorAction.hh" diff --git a/examples/extended/geometry/README b/examples/extended/geometry/README index 0ecbee1b20..8dfda53d1e 100644 --- a/examples/extended/geometry/README +++ b/examples/extended/geometry/README @@ -10,8 +10,3 @@ Debugging tool for overlapping geometries. See notes included in the package for details on how to use it, known limitations and defined commands. -CAD ---- -Example of importing geometries described by CAD systems through AP203 -compliant STEP files. - diff --git a/examples/extended/geometry/cad/GNUmakefile b/examples/extended/geometry/cad/GNUmakefile deleted file mode 100644 index 2b06229430..0000000000 --- a/examples/extended/geometry/cad/GNUmakefile +++ /dev/null @@ -1,33 +0,0 @@ -# $Id: GNUmakefile,v 1.4 2003/05/28 08:12:48 gcosmo Exp $ -# -------------------------------------------------------------- -# GNUmakefile for tests module. Gabriele Cosmo, 27/06/98. -# -------------------------------------------------------------- - -name := cadex -G4TARGET := $(name) -G4EXLIB := true -G4USE_STEP := 1 - -ifndef G4INSTALL - G4INSTALL = ../../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -# To avoid incompatibilities with ANSI standard treatment of strings, the -# NIST STEP reader on gcc-2.95.X and later must be compiled in non-ANSI mode. -# NOTE: correct behavior of the STEP reader and interface are guaranteed ONLY -# if using egcs-1.1.2 compiler or old non-ANSI compilers. -# -ifneq (,$(findstring g++,$(G4SYSTEM))) - ansi_options = -Wall -ansi -pedantic - NCXX = $(filter-out $(ansi_options),$(CXXFLAGS)) - NCPP = $(CPPFLAGS) - CXXFLAGS := $(NCXX) - CPPFLAGS := $(NCPP) -w -endif - -.PHONY: all -all: lib bin - -include $(G4INSTALL)/config/binmake.gmk diff --git a/examples/extended/geometry/cad/History b/examples/extended/geometry/cad/History deleted file mode 100644 index b7d5e4f434..0000000000 --- a/examples/extended/geometry/cad/History +++ /dev/null @@ -1,31 +0,0 @@ -$Id: History,v 1.4 2003/05/28 08:13:35 gcosmo Exp $ -------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - History file - ------------ -This file should be used by the test developer to briefly -summarize all major modifications introduced in the code and keep -track of all tags. - - ---------------------------------------------------------- - * Reverse chronological order (last date on top), please * - ---------------------------------------------------------- - -May 28, 03 G.Cosmo (cadex-V05-01-00) -- Set G4USE_STEP flag in GNUmakefile. Updated README. - -November 18, 02 G.Cosmo (cadex-V04-01-01) -- Enhanced corrections for VERTEX_POINT, EDGE_LOOP and POLY_LOOP. - (courtesy of Daniel Szepielak). - -July 04, 02 G.Cosmo (cadex-V04-01-00) -- GNUmakefile: parse 'g++' string in G4SYSTEM to detect non-ISO setup for - gcc-2.95 and higher. - -June 27, 98 G.Cosmo -- Created. - diff --git a/examples/extended/geometry/cad/README b/examples/extended/geometry/cad/README deleted file mode 100644 index b9df720f5a..0000000000 --- a/examples/extended/geometry/cad/README +++ /dev/null @@ -1,25 +0,0 @@ -$Id: README,v 1.2 2003/05/28 08:13:14 gcosmo Exp $ -------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - CAD STEP interface example - -------------------------- - -This is an example using particle tracking in STEP CAD-models through -AP203 compliant STEP descriptions. The model can be changed by invoking -the UI command "/mydet/SelectDetector ", where - is the name of the STEP file .stp which -describes the detector geometry. -Due to limitations of the NIST STEP reader, a correct behavior can be -assured only for non-ISO/ANSI setup of compilers (i.e. egcs-1.1.2 or old -non-ANSI compilers) as specified in the notes for the SCL-3.2 package. -Therefore, the GNUmakefile in this example has been modified to force -non-ISO/ANSI compilation on Linux platforms, to allow the code to build. -AP203 STEP files showing errors in the reading process, can be formatted -using the PERL scripts provided in the "scripts" directory; most patterns -will be corrected. If errors are still observed, please inform us so that -the scripts can be enhanced. - diff --git a/examples/extended/geometry/cad/cadex.cc b/examples/extended/geometry/cad/cadex.cc deleted file mode 100644 index 3ee7afdaf5..0000000000 --- a/examples/extended/geometry/cad/cadex.cc +++ /dev/null @@ -1,101 +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: cadex.cc,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ - -#include "CadDetectorConstruction.hh" -#include "CadRunAction.hh" -#include "CadPrimaryGeneratorAction.hh" -#include "CadPhysicsList.hh" - -#ifdef G4VIS_USE - #include "CadVisManager.hh" -#endif - -#include "G4RunManager.hh" -#include "G4UImanager.hh" - -#if defined(G4UI_USE_XM) - #include "G4UIXm.hh" -#elif defined(G4UI_USE_XAW) - #include "G4UIXaw.hh" -#else - #include "G4UIterminal.hh" -#endif - -int main(int argc, char** argv) -{ - // Set the default random engine to RanecuEngine - RanecuEngine defaultEngine; - HepRandom::setTheEngine(&defaultEngine); - - // Run manager - G4RunManager * runManager = new G4RunManager; - - // UserInitialization classes - runManager->SetUserInitialization(new CadDetectorConstruction); - runManager->SetUserInitialization(new CadPhysicsList); - - // Visualization manager - #if defined(G4VIS_USE) - G4VisManager* visManager = new CadVisManager; - visManager->Initialize(); - #endif - - // UserAction classes - runManager->SetUserAction(new CadRunAction); - runManager->SetUserAction(new CadPrimaryGeneratorAction); - - // User interactions - // Define (G)UI GAG for interactive mode - if(argc==1) - { - // G4UIterminal is a (dumb) terminal - #if defined(G4UI_USE_XM) - G4UIsession * session = new G4UIXm(argc,argv); - #elif defined(G4UI_USE_XAW) - G4UIsession * session = new G4UIXaw(argc,argv); - #else - G4UIsession * session = new G4UIterminal; - #endif - session->SessionStart(); - delete session; - } - else - // Batch mode - { - G4UImanager * UI = G4UImanager::GetUIpointer(); - G4String command = "/control/execute "; - G4String fileName = argv[1]; - UI->ApplyCommand(command+fileName); - } - - // Job termination - #if defined(G4VIS_USE) - delete visManager; - #endif - delete runManager; - - return 0; -} diff --git a/examples/extended/geometry/cad/cadex.in b/examples/extended/geometry/cad/cadex.in deleted file mode 100644 index b58b1ba064..0000000000 --- a/examples/extended/geometry/cad/cadex.in +++ /dev/null @@ -1,15 +0,0 @@ -/mydet/SelectDetector rod_place_asm -/tracking/verbose 1 -# -# Initialize GEANT4 -# -/run/initialize -# -# Run 3 events -# -/run/beamOn 3 -# -# Termination -# -exit - diff --git a/examples/extended/geometry/cad/scripts/g4sort_step_file.pl b/examples/extended/geometry/cad/scripts/g4sort_step_file.pl deleted file mode 100755 index 3f583ff2bb..0000000000 --- a/examples/extended/geometry/cad/scripts/g4sort_step_file.pl +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/perl - -sub usage { - print STDERR "This script takes a STEP file (from STDIN)\n"; - print STDERR "and writes it to STDOUT with the data section\n"; - print STDERR "sorted by ID.\n"; - exit 1; -} - -sub error { - print STDERR $_[0]."\n"; - exit 2; -} - -if ($#ARGV >= 0) { - &usage(); -} - -########################################################################## - -$entry= ""; -while () { - while ($_ ne "") { - - if (/[;']/) { #']){ - - $entry.= $`.$&; - $_= $'; - if ($& eq ";") { - - # end of entry - $lof= $_; - &processEntry($entry); - $entry= ""; - $_= $lof; - - } else { - - # start of string - /[']/ || &error("String does not end within the line!"); #']; - $entry.= $`.$&; - $_= $'; - - } - } else { - - $entry.= $_; - $_= ""; - - } - } -} - -/^[ \t\n]*$/m || &error("File does not end with ';' !"); -print "$_\n"; -exit 0; - -########################################################################## - -sub processEntry { - local($e)= @_; - - if (!$inData) { - - print $e; - if ($e =~ /^(\s|\n)*DATA(\s|\n)*;$/m) { - $inData= 1; - } - - } else { - - if ($e =~ /^(\s|\n)*\#([0-9]+)\=/m) { - - $id= $2; - $entries[$id]= $e; - - } else { - - $e =~ /^(\s|\n)*ENDSEC(\s|\n)*;$/m || - &error("Data section does not end with ENDSEC;"); - $inData= 0; - for ($id=0; $id<=$#entries; $id++) { - $en= $entries[$id]; - if ($en ne "") { - print $en; - } - } - print $e; - - } - } -} - -########################################################################## -########################################################################## -########################################################################## - - diff --git a/examples/extended/geometry/cad/scripts/g4step_correct.pl b/examples/extended/geometry/cad/scripts/g4step_correct.pl deleted file mode 100755 index e5aee6bbb0..0000000000 --- a/examples/extended/geometry/cad/scripts/g4step_correct.pl +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/perl - -$filename = $ARGV[0]; -open(INFILE, $filename) || die "\nSTEP file ".$filename." not found."; -print "Opening file ".$filename; -@filebuf = ; -close(INFILE); - -$g4 = "G4"; -$outputfile = $g4 . $filename; -open(OUTFILE, ">$outputfile"); -print "\nModifying STEP file for NIST toolkit..."; - -foreach (@filebuf) -{ -if(/.*VERTEX\_POINT.*/) -{ - ($a,$b) = split (",",$&); - s//$a\,\'\'\,$b\n/; -} -elsif(/.*EDGE\_LOOP.*/) -{ - s/EDGE\_LOOP\(\'(\w+)\'\,/EDGE\_LOOP\(\'$1\'\,\'\'\,/; -} -elsif(/.*POLY\_LOOP.*/) -{ - s/POLY\_LOOP\(\'(\w+)\'\,/POLY\_LOOP\(\'$1\'\,\'\'\,/; -} -elsif(/.*ADVANCED\_FACE.*/) -{ - ($a,$b,$c) = split('\)',$&); - s//$a\)\,\'\'$b\)$c\n/; -} -elsif(/.*FACE\_SURFACE.*/) -{ - ($a,$b,$c) = split('\)',$&); - s//$a\)\,\'\'$b\)$c\n/; -} -elsif(/.*EDGE\_CURVE.*/) -{ - ($a,$b,$c,$d,$e) = split(",",$&); - s//$a\,$b\,$c\,\'\'\,$d\,$e\n/; -} - -print OUTFILE; -} - -close(OUTFILE); -print "\nOutput written to ".$outputfile."\n"; - - diff --git a/examples/extended/geometry/cad/src/CadDetectorConstruction.cc b/examples/extended/geometry/cad/src/CadDetectorConstruction.cc deleted file mode 100644 index 03ece3c2c7..0000000000 --- a/examples/extended/geometry/cad/src/CadDetectorConstruction.cc +++ /dev/null @@ -1,167 +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: CadDetectorConstruction.cc,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ - -#include "G4AssemblyCreator.hh" -#include "G4Assembly.hh" -#include "CadDetectorConstruction.hh" -#include "CadDetectorMessenger.hh" - -#include "G4PVPlacement.hh" -#include "G4LogicalVolume.hh" -#include "G4Box.hh" -#include "G4Tubs.hh" -#include "G4Material.hh" -#include "G4Element.hh" - -#include "G4VisAttributes.hh" -#include "G4Colour.hh" - -CadDetectorConstruction::CadDetectorConstruction() - : detectorChoice(0) -{ - expHall_x = 1111600.*cm; - expHall_y = 1111600.*cm; - expHall_z = 1111600.*cm; - - calBox_x = 50.*cm; - calBox_y = 50.*cm; - calBox_z = 50.*cm; - rotAngle = 30.*deg; - calPos = 200.*cm; - - trackerRadius = 50.*cm; - trackerHight = 100.*cm; - trackerPos = -200.*cm; - - detectorMessenger = new CadDetectorMessenger(this); -} - -CadDetectorConstruction::~CadDetectorConstruction() -{;} - -G4VPhysicalVolume* CadDetectorConstruction::Construct() -{ - - //------------------------------------------------------ materials - - G4double a, iz, z, density; - G4String name, symbol; - G4int nel; - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen", symbol="O", iz=8., a); - - density = 1.29e-03*g/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); - - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Lead = new G4Material(name="Lead", z=82., a, density); - - a = 39.95*g/mole; - density = 1.782e-03*g/cm3; - G4Material* Ar = new G4Material(name="ArgonGas", z=18., a, density); - - //------------------------------------------------------ volumes - - //------------------------------ experimental hall - - G4Box * experimentalHall_box - = new G4Box("expHall_b",expHall_x,expHall_y,expHall_z); - G4LogicalVolume * experimentalHall_log - = new G4LogicalVolume(experimentalHall_box,Air,"expHall_L",0,0,0); - G4VPhysicalVolume * experimentalHall_phys - = new G4PVPlacement(0,G4ThreeVector(),"expHall_P", - experimentalHall_log,0,false,0); - - experimentalHall_log->SetVisAttributes (G4VisAttributes::Invisible); - - //------------------------------ STEP assembly creation - - const char * stepfile; - - switch(detectorChoice) - { - default: - stepfile = "stepfiles/G4rod_place_asm.stp"; - break; - - case 1: - stepfile = "stepfiles/G4rod_solid.stp"; - break; - } - - G4AssemblyCreator MyAC(stepfile); - MyAC.ReadStepFile(); - STEPentity* ent=0; - MyAC.CreateG4Geometry(*ent); - - void *tmp = MyAC.GetCreatedObject(); - G4Assembly* assembly = new G4Assembly(); - assembly->SetPlacedVector(*(G4PlacedVector*)tmp); - - // Set vis attribute to "transparent" blue - G4VisAttributes * visAttr = new G4VisAttributes(G4Colour(0.,0.,1.,.5)); - visAttr->SetVisibility(true); - - G4PlacedSolid* ps=0; - G4int solids = assembly->GetNumberOfSolids(); - G4cout << "Now placing " << solids << " logical volumes... "; - - for(G4int c=0;cGetPlacedSolid(c); - G4LogicalVolume* lv = new G4LogicalVolume(ps->GetSolid(),Lead,"STEPlog"); - HepRotation* hr = ps->GetRotation(); - G4ThreeVector* tr = ps->GetTranslation(); - new G4PVPlacement(hr, - *tr, - "STEPphys", // ps->GetSolid()->GetName(), - // no name assigned in sample STEP files - lv, - experimentalHall_phys, - false, - c); - lv->SetVisAttributes(visAttr); - } - G4cout << "Done !" << G4endl; - - return experimentalHall_phys; -} - - -void CadDetectorConstruction::SelectDetector(G4String val) -{ - if(val=="rod_solid") - { detectorChoice = 1; } - else - { detectorChoice = 0; } - G4cout << "Now Detector is " << val << G4endl; -} diff --git a/examples/extended/geometry/cad/src/CadDetectorMessenger.cc b/examples/extended/geometry/cad/src/CadDetectorMessenger.cc deleted file mode 100644 index b9d4f364ed..0000000000 --- a/examples/extended/geometry/cad/src/CadDetectorMessenger.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. * -// ******************************************************************** -// -// $Id: CadDetectorMessenger.cc,v 1.2 2002/12/05 01:07:00 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ - -#include "CadDetectorConstruction.hh" -#include "CadDetectorMessenger.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithAString.hh" - -CadDetectorMessenger::CadDetectorMessenger(CadDetectorConstruction * myDC) - : myDetector(myDC) -{ - G4String defParam; - - mydetDir = new G4UIdirectory("/mydet/"); - mydetDir->SetGuidance("Detector setup commands."); - - selDetCmd = new G4UIcmdWithAString("/mydet/SelectDetector",this); - selDetCmd->SetGuidance("Select Detector Setup."); - selDetCmd->SetGuidance(" Choice : rod_place_asm / rod_solid "); - selDetCmd->SetParameterName("choice",true); - selDetCmd->SetDefaultValue("rod_place_asm"); - selDetCmd->SetCandidates("rod_place_asm rod_solid"); - selDetCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - switchCmd = new G4UIcmdWithAString("/mydet/SwitchDetector",this); - switchCmd->SetGuidance("Assign the selected geometry to G4RunManager."); - switchCmd->SetGuidance("In cese detector name is associated to this command,"); - switchCmd->SetGuidance("\"/mydet/SelectDetector\" will be invoked and then switched."); - switchCmd->SetParameterName("choice",true); - switchCmd->SetDefaultValue(" "); - switchCmd->SetCandidates("rod_place_asm rod_solid \" \""); - switchCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - - myDetector->SelectDetector(defParam="rod_place_asm"); -} - -void CadDetectorMessenger::SetNewValue(G4UIcommand* command, G4String newValues) -{ - if( command == selDetCmd ) - { - myDetector->SelectDetector(newValues); - } - if( command == switchCmd ) - { - if(newValues=="rod_place_asm" || newValues=="CMSTracker") - { myDetector->SelectDetector(newValues); } - } - - return; -} - diff --git a/examples/extended/geometry/cad/src/CadPhysicsList.cc b/examples/extended/geometry/cad/src/CadPhysicsList.cc deleted file mode 100644 index a7e7d0c225..0000000000 --- a/examples/extended/geometry/cad/src/CadPhysicsList.cc +++ /dev/null @@ -1,207 +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: CadPhysicsList.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ - -#include "CadPhysicsList.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" -#include "G4ProcessManager.hh" -#include "G4ProcessVector.hh" -#include "G4ParticleTypes.hh" -#include "G4ParticleTable.hh" -#include "G4BosonConstructor.hh" -#include "G4LeptonConstructor.hh" -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4IonConstructor.hh" -#include "G4Material.hh" -#include "G4MaterialTable.hh" - - -CadPhysicsList::CadPhysicsList(): G4VUserPhysicsList() -{ - SetVerboseLevel(1); -} - -CadPhysicsList::~CadPhysicsList() -{ -} - -void CadPhysicsList::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(); - ConstructIons(); -} - -void CadPhysicsList::ConstructBosons() -{ - // Construct all bosons - G4BosonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void CadPhysicsList::ConstructLeptons() -{ - // Construct all leptons - G4LeptonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void CadPhysicsList::ConstructMesons() -{ - // Construct all mesons - G4MesonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void CadPhysicsList::ConstructBaryons() -{ - // Construct all barions - G4BaryonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void CadPhysicsList::ConstructIons() -{ - // Construct light ions - G4IonConstructor pConstructor; - pConstructor.ConstructParticle(); -} - -void CadPhysicsList::ConstructProcess() -{ - AddTransportation(); - ConstructEM(); - ConstructLeptHad(); - ConstructHad(); - ConstructGeneral(); -} - -#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" -void CadPhysicsList::ConstructEM() -{ - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - G4String particleName = particle->GetParticleName(); - - if (particleName == "gamma") { - // gamma - // Construct processes for gamma - pmanager->AddDiscreteProcess(new G4GammaConversion()); - pmanager->AddDiscreteProcess(new G4ComptonScattering()); - pmanager->AddDiscreteProcess(new G4PhotoElectricEffect()); - - } else if (particleName == "e-") { - //electron - // Construct processes for electron - pmanager->AddProcess(new G4MultipleScattering(),-1,1,1); - pmanager->AddProcess(new G4eIonisation(),-1,2,2); - pmanager->AddProcess(new G4eBremsstrahlung(),-1,-1,3); - - } else if (particleName == "e+") { - //positron - // Construct processes for positron - pmanager->AddProcess(new G4MultipleScattering(),-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 - // Construct processes for muon+ - 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); - - } else { - if ((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); - } - } - } -} - -void CadPhysicsList::ConstructHad() -{;} - -void CadPhysicsList::ConstructLeptHad() -{;} - -#include "G4Decay.hh" -void CadPhysicsList::ConstructGeneral() -{ - G4Decay* theDecayProcess = new G4Decay(); - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (theDecayProcess->IsApplicable(*particle)) { - pmanager->AddProcess(theDecayProcess, INT_MAX, -1, INT_MAX); - } - } -} - -void CadPhysicsList::SetCuts() -{ - if (verboseLevel >0){ - G4cout << "CadPhysicsList::SetCuts:"; - G4cout << "CutLength : " << defaultCutValue/mm << " (mm)" << G4endl; - } - // " G4VUserPhysicsList::SetCutsWithDefault" method sets - // the default cut value for all particle types - SetCutsWithDefault(); -} - - diff --git a/examples/extended/geometry/cad/stepfiles/G4rod_place_asm.stp b/examples/extended/geometry/cad/stepfiles/G4rod_place_asm.stp deleted file mode 100644 index f5934ceddf..0000000000 --- a/examples/extended/geometry/cad/stepfiles/G4rod_place_asm.stp +++ /dev/null @@ -1,980 +0,0 @@ -ISO-10303-21; -HEADER; -FILE_DESCRIPTION((''),'1'); -FILE_NAME('ROD_PLACE_ASM','1998-02-27T10:19:15',('oriunno'),(''),'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 9718','PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 9718',''); -FILE_SCHEMA(('CONFIG_CONTROL_DESIGN')); -ENDSEC; -DATA; -#1=DIRECTION('',(1.E0,0.E0,0.E0)); -#2=VECTOR('',#1,2.41E3); -#3=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); -#4=LINE('',#3,#2); -#5=DIRECTION('',(0.E0,0.E0,-1.E0)); -#6=VECTOR('',#5,1.4E1); -#7=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); -#8=LINE('',#7,#6); -#9=DIRECTION('',(0.E0,1.E0,0.E0)); -#10=VECTOR('',#9,1.6E1); -#11=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); -#12=LINE('',#11,#10); -#13=DIRECTION('',(0.E0,0.E0,1.E0)); -#14=VECTOR('',#13,1.4E1); -#15=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); -#16=LINE('',#15,#14); -#17=DIRECTION('',(0.E0,-1.E0,0.E0)); -#18=VECTOR('',#17,1.5E0); -#19=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#20=LINE('',#19,#18); -#21=DIRECTION('',(0.E0,0.E0,1.E0)); -#22=VECTOR('',#21,1.25E1); -#23=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); -#24=LINE('',#23,#22); -#25=DIRECTION('',(0.E0,1.E0,0.E0)); -#26=VECTOR('',#25,1.3E1); -#27=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); -#28=LINE('',#27,#26); -#29=DIRECTION('',(0.E0,0.E0,-1.E0)); -#30=VECTOR('',#29,1.25E1); -#31=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#32=LINE('',#31,#30); -#33=DIRECTION('',(0.E0,-1.E0,0.E0)); -#34=VECTOR('',#33,1.5E0); -#35=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#36=LINE('',#35,#34); -#37=DIRECTION('',(1.E0,0.E0,0.E0)); -#38=VECTOR('',#37,2.41E3); -#39=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); -#40=LINE('',#39,#38); -#41=DIRECTION('',(1.E0,0.E0,0.E0)); -#42=VECTOR('',#41,2.41E3); -#43=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#44=LINE('',#43,#42); -#45=DIRECTION('',(1.E0,0.E0,0.E0)); -#46=VECTOR('',#45,2.41E3); -#47=CARTESIAN_POINT('',(-1.205E3,7.5E0,-6.4E1)); -#48=LINE('',#47,#46); -#49=DIRECTION('',(1.E0,0.E0,0.E0)); -#50=VECTOR('',#49,2.41E3); -#51=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#52=LINE('',#51,#50); -#53=DIRECTION('',(1.E0,0.E0,0.E0)); -#54=VECTOR('',#53,2.41E3); -#55=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); -#56=LINE('',#55,#54); -#57=DIRECTION('',(1.E0,0.E0,0.E0)); -#58=VECTOR('',#57,2.41E3); -#59=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); -#60=LINE('',#59,#58); -#61=DIRECTION('',(0.E0,0.E0,1.E0)); -#62=VECTOR('',#61,1.4E1); -#63=CARTESIAN_POINT('',(1.205E3,9.E0,-7.8E1)); -#64=LINE('',#63,#62); -#65=DIRECTION('',(0.E0,1.E0,0.E0)); -#66=VECTOR('',#65,1.6E1); -#67=CARTESIAN_POINT('',(1.205E3,-7.E0,-7.8E1)); -#68=LINE('',#67,#66); -#69=DIRECTION('',(0.E0,0.E0,-1.E0)); -#70=VECTOR('',#69,1.4E1); -#71=CARTESIAN_POINT('',(1.205E3,-7.E0,-6.4E1)); -#72=LINE('',#71,#70); -#73=DIRECTION('',(0.E0,-1.E0,0.E0)); -#74=VECTOR('',#73,1.5E0); -#75=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); -#76=LINE('',#75,#74); -#77=DIRECTION('',(0.E0,0.E0,-1.E0)); -#78=VECTOR('',#77,1.25E1); -#79=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); -#80=LINE('',#79,#78); -#81=DIRECTION('',(0.E0,1.E0,0.E0)); -#82=VECTOR('',#81,1.3E1); -#83=CARTESIAN_POINT('',(1.205E3,-5.5E0,-7.65E1)); -#84=LINE('',#83,#82); -#85=DIRECTION('',(0.E0,0.E0,1.E0)); -#86=VECTOR('',#85,1.25E1); -#87=CARTESIAN_POINT('',(1.205E3,7.5E0,-7.65E1)); -#88=LINE('',#87,#86); -#89=DIRECTION('',(0.E0,-1.E0,0.E0)); -#90=VECTOR('',#89,1.5E0); -#91=CARTESIAN_POINT('',(1.205E3,9.E0,-6.4E1)); -#92=LINE('',#91,#90); -#93=DIRECTION('',(1.E0,0.E0,0.E0)); -#94=VECTOR('',#93,2.41E3); -#95=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); -#96=LINE('',#95,#94); -#97=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); -#98=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); -#99=VERTEX_POINT('','',#97); -#100=VERTEX_POINT('','',#98); -#101=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#102=VERTEX_POINT('','',#101); -#103=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); -#104=VERTEX_POINT('','',#103); -#105=CARTESIAN_POINT('',(1.205E3,-7.E0,-7.8E1)); -#106=CARTESIAN_POINT('',(1.205E3,9.E0,-7.8E1)); -#107=VERTEX_POINT('','',#105); -#108=VERTEX_POINT('','',#106); -#109=CARTESIAN_POINT('',(1.205E3,9.E0,-6.4E1)); -#110=VERTEX_POINT('','',#109); -#111=CARTESIAN_POINT('',(1.205E3,-7.E0,-6.4E1)); -#112=VERTEX_POINT('','',#111); -#113=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); -#114=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); -#115=VERTEX_POINT('','',#113); -#116=VERTEX_POINT('','',#114); -#117=CARTESIAN_POINT('',(-1.205E3,7.5E0,-6.4E1)); -#118=VERTEX_POINT('','',#117); -#119=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#120=VERTEX_POINT('','',#119); -#121=CARTESIAN_POINT('',(1.205E3,-5.5E0,-7.65E1)); -#122=CARTESIAN_POINT('',(1.205E3,7.5E0,-7.65E1)); -#123=VERTEX_POINT('','',#121); -#124=VERTEX_POINT('','',#122); -#125=CARTESIAN_POINT('',(1.205E3,7.5E0,-6.4E1)); -#126=VERTEX_POINT('','',#125); -#127=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); -#128=VERTEX_POINT('','',#127); -#129=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); -#130=DIRECTION('',(0.E0,0.E0,-1.E0)); -#131=DIRECTION('',(0.E0,1.E0,0.E0)); -#132=AXIS2_PLACEMENT_3D('',#129,#130,#131); -#133=PLANE('',#132); -#135=ORIENTED_EDGE('',*,*,#134,.F.); -#137=ORIENTED_EDGE('',*,*,#136,.T.); -#139=ORIENTED_EDGE('',*,*,#138,.T.); -#141=ORIENTED_EDGE('',*,*,#140,.F.); -#142=EDGE_LOOP('','',(#135,#137,#139,#141)); -#143=FACE_OUTER_BOUND('',#142,.F.); -#144=ADVANCED_FACE('',(#143),'' ,#133,.T.); - -#145=CARTESIAN_POINT('',(-1.205E3,0.E0,0.E0)); -#146=DIRECTION('',(1.E0,0.E0,0.E0)); -#147=DIRECTION('',(0.E0,0.E0,1.E0)); -#148=AXIS2_PLACEMENT_3D('',#145,#146,#147); -#149=PLANE('',#148); -#151=ORIENTED_EDGE('',*,*,#150,.T.); -#152=ORIENTED_EDGE('',*,*,#134,.T.); -#154=ORIENTED_EDGE('',*,*,#153,.T.); -#156=ORIENTED_EDGE('',*,*,#155,.T.); -#158=ORIENTED_EDGE('',*,*,#157,.F.); -#160=ORIENTED_EDGE('',*,*,#159,.F.); -#162=ORIENTED_EDGE('',*,*,#161,.F.); -#164=ORIENTED_EDGE('',*,*,#163,.T.); -#165=EDGE_LOOP('','',(#151,#152,#154,#156,#158,#160,#162,#164)); -#166=FACE_OUTER_BOUND('',#165,.F.); -#167=ADVANCED_FACE('',(#166),'' ,#149,.F.); - -#168=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); -#169=DIRECTION('',(0.E0,-1.E0,0.E0)); -#170=DIRECTION('',(0.E0,0.E0,-1.E0)); -#171=AXIS2_PLACEMENT_3D('',#168,#169,#170); -#172=PLANE('',#171); -#173=ORIENTED_EDGE('',*,*,#150,.F.); -#175=ORIENTED_EDGE('',*,*,#174,.T.); -#177=ORIENTED_EDGE('',*,*,#176,.T.); -#178=ORIENTED_EDGE('',*,*,#136,.F.); -#179=EDGE_LOOP('','',(#173,#175,#177,#178)); -#180=FACE_OUTER_BOUND('',#179,.F.); -#181=ADVANCED_FACE('',(#180),'' ,#172,.T.); - -#182=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#183=DIRECTION('',(0.E0,0.E0,1.E0)); -#184=DIRECTION('',(0.E0,-1.E0,0.E0)); -#185=AXIS2_PLACEMENT_3D('',#182,#183,#184); -#186=PLANE('',#185); -#188=ORIENTED_EDGE('',*,*,#187,.T.); -#190=ORIENTED_EDGE('',*,*,#189,.T.); -#191=ORIENTED_EDGE('',*,*,#174,.F.); -#192=ORIENTED_EDGE('',*,*,#163,.F.); -#193=EDGE_LOOP('','',(#188,#190,#191,#192)); -#194=FACE_OUTER_BOUND('',#193,.F.); -#195=ADVANCED_FACE('',(#194),'' ,#186,.T.); - -#196=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#197=DIRECTION('',(0.E0,0.E0,1.E0)); -#198=DIRECTION('',(0.E0,-1.E0,0.E0)); -#199=AXIS2_PLACEMENT_3D('',#196,#197,#198); -#200=PLANE('',#199); -#202=ORIENTED_EDGE('',*,*,#201,.T.); -#204=ORIENTED_EDGE('',*,*,#203,.T.); -#206=ORIENTED_EDGE('',*,*,#205,.F.); -#207=ORIENTED_EDGE('',*,*,#155,.F.); -#208=EDGE_LOOP('','',(#202,#204,#206,#207)); -#209=FACE_OUTER_BOUND('',#208,.F.); -#210=ADVANCED_FACE('',(#209),'' ,#200,.T.); - -#211=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#212=DIRECTION('',(0.E0,-1.E0,0.E0)); -#213=DIRECTION('',(0.E0,0.E0,-1.E0)); -#214=AXIS2_PLACEMENT_3D('',#211,#212,#213); -#215=PLANE('',#214); -#216=ORIENTED_EDGE('',*,*,#161,.T.); -#218=ORIENTED_EDGE('',*,*,#217,.T.); -#220=ORIENTED_EDGE('',*,*,#219,.F.); -#221=ORIENTED_EDGE('',*,*,#187,.F.); -#222=EDGE_LOOP('','',(#216,#218,#220,#221)); -#223=FACE_OUTER_BOUND('',#222,.F.); -#224=ADVANCED_FACE('',(#223),'' ,#215,.F.); - -#225=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.65E1)); -#226=DIRECTION('',(0.E0,0.E0,-1.E0)); -#227=DIRECTION('',(0.E0,1.E0,0.E0)); -#228=AXIS2_PLACEMENT_3D('',#225,#226,#227); -#229=PLANE('',#228); -#230=ORIENTED_EDGE('',*,*,#159,.T.); -#232=ORIENTED_EDGE('',*,*,#231,.T.); -#234=ORIENTED_EDGE('',*,*,#233,.F.); -#235=ORIENTED_EDGE('',*,*,#217,.F.); -#236=EDGE_LOOP('','',(#230,#232,#234,#235)); -#237=FACE_OUTER_BOUND('',#236,.F.); -#238=ADVANCED_FACE('',(#237),'' ,#229,.F.); - -#239=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.8E1)); -#240=DIRECTION('',(0.E0,1.E0,0.E0)); -#241=DIRECTION('',(0.E0,0.E0,1.E0)); -#242=AXIS2_PLACEMENT_3D('',#239,#240,#241); -#243=PLANE('',#242); -#244=ORIENTED_EDGE('',*,*,#157,.T.); -#245=ORIENTED_EDGE('',*,*,#205,.T.); -#247=ORIENTED_EDGE('',*,*,#246,.F.); -#248=ORIENTED_EDGE('',*,*,#231,.F.); -#249=EDGE_LOOP('','',(#244,#245,#247,#248)); -#250=FACE_OUTER_BOUND('',#249,.F.); -#251=ADVANCED_FACE('',(#250),'' ,#243,.F.); - -#252=CARTESIAN_POINT('',(1.205E3,0.E0,0.E0)); -#253=DIRECTION('',(1.E0,0.E0,0.E0)); -#254=DIRECTION('',(0.E0,0.E0,1.E0)); -#255=AXIS2_PLACEMENT_3D('',#252,#253,#254); -#256=PLANE('',#255); -#258=ORIENTED_EDGE('',*,*,#257,.F.); -#259=ORIENTED_EDGE('',*,*,#138,.F.); -#260=ORIENTED_EDGE('',*,*,#176,.F.); -#261=ORIENTED_EDGE('',*,*,#189,.F.); -#262=ORIENTED_EDGE('',*,*,#219,.T.); -#263=ORIENTED_EDGE('',*,*,#233,.T.); -#264=ORIENTED_EDGE('',*,*,#246,.T.); -#265=ORIENTED_EDGE('',*,*,#203,.F.); -#266=EDGE_LOOP('','',(#258,#259,#260,#261,#262,#263,#264,#265)); -#267=FACE_OUTER_BOUND('',#266,.F.); -#268=ADVANCED_FACE('',(#267),'' ,#256,.T.); - -#269=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); -#270=DIRECTION('',(0.E0,1.E0,0.E0)); -#271=DIRECTION('',(0.E0,0.E0,1.E0)); -#272=AXIS2_PLACEMENT_3D('',#269,#270,#271); -#273=PLANE('',#272); -#274=ORIENTED_EDGE('',*,*,#153,.F.); -#275=ORIENTED_EDGE('',*,*,#140,.T.); -#276=ORIENTED_EDGE('',*,*,#257,.T.); -#277=ORIENTED_EDGE('',*,*,#201,.F.); -#278=EDGE_LOOP('','',(#274,#275,#276,#277)); -#279=FACE_OUTER_BOUND('',#278,.F.); -#280=ADVANCED_FACE('',(#279),'' ,#273,.T.); - -#281=CLOSED_SHELL('',(#144,#167,#181,#195,#210,#224,#238,#251,#268,#280)); -#282=MANIFOLD_SOLID_BREP('',#281); -#283=DIRECTION('',(1.E0,0.E0,0.E0)); -#284=VECTOR('',#283,2.41E3); -#285=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); -#286=LINE('',#285,#284); -#287=DIRECTION('',(0.E0,0.E0,1.E0)); -#288=VECTOR('',#287,1.4E1); -#289=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); -#290=LINE('',#289,#288); -#291=DIRECTION('',(0.E0,-1.E0,0.E0)); -#292=VECTOR('',#291,1.6E1); -#293=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); -#294=LINE('',#293,#292); -#295=DIRECTION('',(0.E0,0.E0,-1.E0)); -#296=VECTOR('',#295,1.4E1); -#297=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); -#298=LINE('',#297,#296); -#299=DIRECTION('',(0.E0,1.E0,0.E0)); -#300=VECTOR('',#299,1.5E0); -#301=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#302=LINE('',#301,#300); -#303=DIRECTION('',(0.E0,0.E0,-1.E0)); -#304=VECTOR('',#303,1.25E1); -#305=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); -#306=LINE('',#305,#304); -#307=DIRECTION('',(0.E0,-1.E0,0.E0)); -#308=VECTOR('',#307,1.3E1); -#309=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); -#310=LINE('',#309,#308); -#311=DIRECTION('',(0.E0,0.E0,1.E0)); -#312=VECTOR('',#311,1.25E1); -#313=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#314=LINE('',#313,#312); -#315=DIRECTION('',(0.E0,1.E0,0.E0)); -#316=VECTOR('',#315,1.5E0); -#317=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#318=LINE('',#317,#316); -#319=DIRECTION('',(1.E0,0.E0,0.E0)); -#320=VECTOR('',#319,2.41E3); -#321=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); -#322=LINE('',#321,#320); -#323=DIRECTION('',(0.E0,0.E0,-1.E0)); -#324=VECTOR('',#323,1.4E1); -#325=CARTESIAN_POINT('',(1.205E3,-7.E0,7.8E1)); -#326=LINE('',#325,#324); -#327=DIRECTION('',(0.E0,-1.E0,0.E0)); -#328=VECTOR('',#327,1.6E1); -#329=CARTESIAN_POINT('',(1.205E3,9.E0,7.8E1)); -#330=LINE('',#329,#328); -#331=DIRECTION('',(0.E0,0.E0,1.E0)); -#332=VECTOR('',#331,1.4E1); -#333=CARTESIAN_POINT('',(1.205E3,9.E0,6.4E1)); -#334=LINE('',#333,#332); -#335=DIRECTION('',(0.E0,1.E0,0.E0)); -#336=VECTOR('',#335,1.5E0); -#337=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); -#338=LINE('',#337,#336); -#339=DIRECTION('',(0.E0,0.E0,1.E0)); -#340=VECTOR('',#339,1.25E1); -#341=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); -#342=LINE('',#341,#340); -#343=DIRECTION('',(0.E0,-1.E0,0.E0)); -#344=VECTOR('',#343,1.3E1); -#345=CARTESIAN_POINT('',(1.205E3,7.5E0,7.65E1)); -#346=LINE('',#345,#344); -#347=DIRECTION('',(0.E0,0.E0,-1.E0)); -#348=VECTOR('',#347,1.25E1); -#349=CARTESIAN_POINT('',(1.205E3,-5.5E0,7.65E1)); -#350=LINE('',#349,#348); -#351=DIRECTION('',(0.E0,1.E0,0.E0)); -#352=VECTOR('',#351,1.5E0); -#353=CARTESIAN_POINT('',(1.205E3,-7.E0,6.4E1)); -#354=LINE('',#353,#352); -#355=DIRECTION('',(1.E0,0.E0,0.E0)); -#356=VECTOR('',#355,2.41E3); -#357=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); -#358=LINE('',#357,#356); -#359=DIRECTION('',(1.E0,0.E0,0.E0)); -#360=VECTOR('',#359,2.41E3); -#361=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#362=LINE('',#361,#360); -#363=DIRECTION('',(1.E0,0.E0,0.E0)); -#364=VECTOR('',#363,2.41E3); -#365=CARTESIAN_POINT('',(-1.205E3,-5.5E0,6.4E1)); -#366=LINE('',#365,#364); -#367=DIRECTION('',(1.E0,0.E0,0.E0)); -#368=VECTOR('',#367,2.41E3); -#369=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#370=LINE('',#369,#368); -#371=DIRECTION('',(1.E0,0.E0,0.E0)); -#372=VECTOR('',#371,2.41E3); -#373=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); -#374=LINE('',#373,#372); -#375=DIRECTION('',(1.E0,0.E0,0.E0)); -#376=VECTOR('',#375,2.41E3); -#377=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); -#378=LINE('',#377,#376); -#379=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); -#380=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); -#381=VERTEX_POINT('','',#379); -#382=VERTEX_POINT('','',#380); -#383=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); -#384=VERTEX_POINT('','',#383); -#385=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#386=VERTEX_POINT('','',#385); -#387=CARTESIAN_POINT('',(1.205E3,9.E0,6.4E1)); -#388=CARTESIAN_POINT('',(1.205E3,9.E0,7.8E1)); -#389=VERTEX_POINT('','',#387); -#390=VERTEX_POINT('','',#388); -#391=CARTESIAN_POINT('',(1.205E3,-7.E0,7.8E1)); -#392=VERTEX_POINT('','',#391); -#393=CARTESIAN_POINT('',(1.205E3,-7.E0,6.4E1)); -#394=VERTEX_POINT('','',#393); -#395=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#396=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); -#397=VERTEX_POINT('','',#395); -#398=VERTEX_POINT('','',#396); -#399=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); -#400=VERTEX_POINT('','',#399); -#401=CARTESIAN_POINT('',(-1.205E3,-5.5E0,6.4E1)); -#402=VERTEX_POINT('','',#401); -#403=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); -#404=CARTESIAN_POINT('',(1.205E3,7.5E0,7.65E1)); -#405=VERTEX_POINT('','',#403); -#406=VERTEX_POINT('','',#404); -#407=CARTESIAN_POINT('',(1.205E3,-5.5E0,7.65E1)); -#408=VERTEX_POINT('','',#407); -#409=CARTESIAN_POINT('',(1.205E3,-5.5E0,6.4E1)); -#410=VERTEX_POINT('','',#409); -#411=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); -#412=DIRECTION('',(0.E0,1.E0,0.E0)); -#413=DIRECTION('',(0.E0,0.E0,1.E0)); -#414=AXIS2_PLACEMENT_3D('',#411,#412,#413); -#415=PLANE('',#414); -#417=ORIENTED_EDGE('',*,*,#416,.F.); -#419=ORIENTED_EDGE('',*,*,#418,.T.); -#421=ORIENTED_EDGE('',*,*,#420,.T.); -#423=ORIENTED_EDGE('',*,*,#422,.F.); -#424=EDGE_LOOP('','',(#417,#419,#421,#423)); -#425=FACE_OUTER_BOUND('',#424,.F.); -#426=ADVANCED_FACE('',(#425),'' ,#415,.T.); - -#427=CARTESIAN_POINT('',(-1.205E3,0.E0,0.E0)); -#428=DIRECTION('',(1.E0,0.E0,0.E0)); -#429=DIRECTION('',(0.E0,0.E0,1.E0)); -#430=AXIS2_PLACEMENT_3D('',#427,#428,#429); -#431=PLANE('',#430); -#432=ORIENTED_EDGE('',*,*,#416,.T.); -#434=ORIENTED_EDGE('',*,*,#433,.T.); -#436=ORIENTED_EDGE('',*,*,#435,.T.); -#438=ORIENTED_EDGE('',*,*,#437,.T.); -#440=ORIENTED_EDGE('',*,*,#439,.F.); -#442=ORIENTED_EDGE('',*,*,#441,.F.); -#444=ORIENTED_EDGE('',*,*,#443,.F.); -#446=ORIENTED_EDGE('',*,*,#445,.T.); -#447=EDGE_LOOP('','',(#432,#434,#436,#438,#440,#442,#444,#446)); -#448=FACE_OUTER_BOUND('',#447,.F.); -#449=ADVANCED_FACE('',(#448),'' ,#431,.F.); - -#450=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); -#451=DIRECTION('',(0.E0,0.E0,1.E0)); -#452=DIRECTION('',(0.E0,-1.E0,0.E0)); -#453=AXIS2_PLACEMENT_3D('',#450,#451,#452); -#454=PLANE('',#453); -#455=ORIENTED_EDGE('',*,*,#433,.F.); -#456=ORIENTED_EDGE('',*,*,#422,.T.); -#458=ORIENTED_EDGE('',*,*,#457,.T.); -#460=ORIENTED_EDGE('',*,*,#459,.F.); -#461=EDGE_LOOP('','',(#455,#456,#458,#460)); -#462=FACE_OUTER_BOUND('',#461,.F.); -#463=ADVANCED_FACE('',(#462),'' ,#454,.T.); - -#464=CARTESIAN_POINT('',(1.205E3,0.E0,0.E0)); -#465=DIRECTION('',(1.E0,0.E0,0.E0)); -#466=DIRECTION('',(0.E0,0.E0,1.E0)); -#467=AXIS2_PLACEMENT_3D('',#464,#465,#466); -#468=PLANE('',#467); -#470=ORIENTED_EDGE('',*,*,#469,.F.); -#471=ORIENTED_EDGE('',*,*,#457,.F.); -#472=ORIENTED_EDGE('',*,*,#420,.F.); -#474=ORIENTED_EDGE('',*,*,#473,.F.); -#476=ORIENTED_EDGE('',*,*,#475,.T.); -#478=ORIENTED_EDGE('',*,*,#477,.T.); -#480=ORIENTED_EDGE('',*,*,#479,.T.); -#482=ORIENTED_EDGE('',*,*,#481,.F.); -#483=EDGE_LOOP('','',(#470,#471,#472,#474,#476,#478,#480,#482)); -#484=FACE_OUTER_BOUND('',#483,.F.); -#485=ADVANCED_FACE('',(#484),'' ,#468,.T.); - -#486=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); -#487=DIRECTION('',(0.E0,-1.E0,0.E0)); -#488=DIRECTION('',(0.E0,0.E0,-1.E0)); -#489=AXIS2_PLACEMENT_3D('',#486,#487,#488); -#490=PLANE('',#489); -#491=ORIENTED_EDGE('',*,*,#435,.F.); -#492=ORIENTED_EDGE('',*,*,#459,.T.); -#493=ORIENTED_EDGE('',*,*,#469,.T.); -#495=ORIENTED_EDGE('',*,*,#494,.F.); -#496=EDGE_LOOP('','',(#491,#492,#493,#495)); -#497=FACE_OUTER_BOUND('',#496,.F.); -#498=ADVANCED_FACE('',(#497),'' ,#490,.T.); - -#499=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#500=DIRECTION('',(0.E0,0.E0,-1.E0)); -#501=DIRECTION('',(0.E0,1.E0,0.E0)); -#502=AXIS2_PLACEMENT_3D('',#499,#500,#501); -#503=PLANE('',#502); -#505=ORIENTED_EDGE('',*,*,#504,.T.); -#506=ORIENTED_EDGE('',*,*,#473,.T.); -#507=ORIENTED_EDGE('',*,*,#418,.F.); -#508=ORIENTED_EDGE('',*,*,#445,.F.); -#509=EDGE_LOOP('','',(#505,#506,#507,#508)); -#510=FACE_OUTER_BOUND('',#509,.F.); -#511=ADVANCED_FACE('',(#510),'' ,#503,.T.); - -#512=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#513=DIRECTION('',(0.E0,0.E0,-1.E0)); -#514=DIRECTION('',(0.E0,1.E0,0.E0)); -#515=AXIS2_PLACEMENT_3D('',#512,#513,#514); -#516=PLANE('',#515); -#517=ORIENTED_EDGE('',*,*,#494,.T.); -#518=ORIENTED_EDGE('',*,*,#481,.T.); -#520=ORIENTED_EDGE('',*,*,#519,.F.); -#521=ORIENTED_EDGE('',*,*,#437,.F.); -#522=EDGE_LOOP('','',(#517,#518,#520,#521)); -#523=FACE_OUTER_BOUND('',#522,.F.); -#524=ADVANCED_FACE('',(#523),'' ,#516,.T.); - -#525=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#526=DIRECTION('',(0.E0,1.E0,0.E0)); -#527=DIRECTION('',(0.E0,0.E0,1.E0)); -#528=AXIS2_PLACEMENT_3D('',#525,#526,#527); -#529=PLANE('',#528); -#530=ORIENTED_EDGE('',*,*,#443,.T.); -#532=ORIENTED_EDGE('',*,*,#531,.T.); -#533=ORIENTED_EDGE('',*,*,#475,.F.); -#534=ORIENTED_EDGE('',*,*,#504,.F.); -#535=EDGE_LOOP('','',(#530,#532,#533,#534)); -#536=FACE_OUTER_BOUND('',#535,.F.); -#537=ADVANCED_FACE('',(#536),'' ,#529,.F.); - -#538=CARTESIAN_POINT('',(-1.205E3,9.E0,7.65E1)); -#539=DIRECTION('',(0.E0,0.E0,1.E0)); -#540=DIRECTION('',(0.E0,-1.E0,0.E0)); -#541=AXIS2_PLACEMENT_3D('',#538,#539,#540); -#542=PLANE('',#541); -#543=ORIENTED_EDGE('',*,*,#441,.T.); -#545=ORIENTED_EDGE('',*,*,#544,.T.); -#546=ORIENTED_EDGE('',*,*,#477,.F.); -#547=ORIENTED_EDGE('',*,*,#531,.F.); -#548=EDGE_LOOP('','',(#543,#545,#546,#547)); -#549=FACE_OUTER_BOUND('',#548,.F.); -#550=ADVANCED_FACE('',(#549),'' ,#542,.F.); - -#551=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.8E1)); -#552=DIRECTION('',(0.E0,-1.E0,0.E0)); -#553=DIRECTION('',(0.E0,0.E0,-1.E0)); -#554=AXIS2_PLACEMENT_3D('',#551,#552,#553); -#555=PLANE('',#554); -#556=ORIENTED_EDGE('',*,*,#439,.T.); -#557=ORIENTED_EDGE('',*,*,#519,.T.); -#558=ORIENTED_EDGE('',*,*,#479,.F.); -#559=ORIENTED_EDGE('',*,*,#544,.F.); -#560=EDGE_LOOP('','',(#556,#557,#558,#559)); -#561=FACE_OUTER_BOUND('',#560,.F.); -#562=ADVANCED_FACE('',(#561),'' ,#555,.F.); - -#563=CLOSED_SHELL('',(#426,#449,#463,#485,#498,#511,#524,#537,#550,#562)); -#564=MANIFOLD_SOLID_BREP('',#563); -#565=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); -#566=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); -#567=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); -#568=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#567); -#569=(CONVERSION_BASED_UNIT('DEGREE',#568)NAMED_UNIT(#566)PLANE_ANGLE_UNIT()); -#570=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); -#571=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.415000081568E-1),#565,'closure','Maximum model space distance between geometric entities at asserted connectivities'); -#572=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#571))GLOBAL_UNIT_ASSIGNED_CONTEXT((#565,#569,#570))REPRESENTATION_CONTEXT('ID1','3')); -#573=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); -#574=DIRECTION('',(0.E0,0.E0,1.E0)); -#575=DIRECTION('',(1.E0,0.E0,0.E0)); -#576=AXIS2_PLACEMENT_3D('',#573,#574,#575); -#578=APPLICATION_CONTEXT('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); -#579=APPLICATION_PROTOCOL_DEFINITION('international standard','config_control_design',1994,#578); -#580=DESIGN_CONTEXT('',#578,'design'); -#581=MECHANICAL_CONTEXT('',#578,'mechanical'); -#582=PRODUCT('ROD','ROD','NOT SPECIFIED',(#581)); -#583=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('6','LAST_VERSION',#582, -.MADE.); -#592=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); -#593=DIRECTION('',(0.E0,0.E0,1.E0)); -#594=DIRECTION('',(1.E0,0.E0,0.E0)); -#595=AXIS2_PLACEMENT_3D('',#592,#593,#594); -#596=ITEM_DEFINED_TRANSFORMATION('','',#595,#576); -#597=(REPRESENTATION_RELATIONSHIP('','',#589,#577)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#596)SHAPE_REPRESENTATION_RELATIONSHIP()); -#598=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#597,#591); -#599=DIRECTION('',(1.E0,0.E0,0.E0)); -#600=VECTOR('',#599,3.4E2); -#601=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); -#602=LINE('',#601,#600); -#603=DIRECTION('',(0.E0,0.E0,-1.E0)); -#604=VECTOR('',#603,1.05E2); -#605=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); -#606=LINE('',#605,#604); -#607=DIRECTION('',(-1.E0,0.E0,0.E0)); -#608=VECTOR('',#607,3.4E2); -#609=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); -#610=LINE('',#609,#608); -#611=DIRECTION('',(0.E0,0.E0,1.E0)); -#612=VECTOR('',#611,1.05E2); -#613=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); -#614=LINE('',#613,#612); -#615=DIRECTION('',(0.E0,1.E0,0.E0)); -#616=VECTOR('',#615,4.5E0); -#617=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); -#618=LINE('',#617,#616); -#619=DIRECTION('',(0.E0,1.E0,0.E0)); -#620=VECTOR('',#619,4.5E0); -#621=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); -#622=LINE('',#621,#620); -#623=DIRECTION('',(0.E0,1.E0,0.E0)); -#624=VECTOR('',#623,4.5E0); -#625=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); -#626=LINE('',#625,#624); -#627=DIRECTION('',(0.E0,1.E0,0.E0)); -#628=VECTOR('',#627,4.5E0); -#629=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); -#630=LINE('',#629,#628); -#631=DIRECTION('',(1.E0,0.E0,0.E0)); -#632=VECTOR('',#631,3.4E2); -#633=CARTESIAN_POINT('',(-2.E2,2.25E0,5.25E1)); -#634=LINE('',#633,#632); -#635=DIRECTION('',(0.E0,0.E0,1.E0)); -#636=VECTOR('',#635,1.05E2); -#637=CARTESIAN_POINT('',(-2.E2,2.25E0,-5.25E1)); -#638=LINE('',#637,#636); -#639=DIRECTION('',(-1.E0,0.E0,0.E0)); -#640=VECTOR('',#639,3.4E2); -#641=CARTESIAN_POINT('',(1.4E2,2.25E0,-5.25E1)); -#642=LINE('',#641,#640); -#643=DIRECTION('',(0.E0,0.E0,-1.E0)); -#644=VECTOR('',#643,1.05E2); -#645=CARTESIAN_POINT('',(1.4E2,2.25E0,5.25E1)); -#646=LINE('',#645,#644); -#647=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); -#648=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); -#649=VERTEX_POINT('','',#647); -#650=VERTEX_POINT('','',#648); -#651=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); -#652=VERTEX_POINT('','',#651); -#653=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); -#654=VERTEX_POINT('','',#653); -#655=CARTESIAN_POINT('',(-2.E2,2.25E0,5.25E1)); -#656=CARTESIAN_POINT('',(1.4E2,2.25E0,5.25E1)); -#657=VERTEX_POINT('','',#655); -#658=VERTEX_POINT('','',#656); -#659=CARTESIAN_POINT('',(1.4E2,2.25E0,-5.25E1)); -#660=VERTEX_POINT('','',#659); -#661=CARTESIAN_POINT('',(-2.E2,2.25E0,-5.25E1)); -#662=VERTEX_POINT('','',#661); -#663=CARTESIAN_POINT('',(0.E0,-2.25E0,0.E0)); -#664=DIRECTION('',(0.E0,1.E0,0.E0)); -#665=DIRECTION('',(0.E0,0.E0,-1.E0)); -#666=AXIS2_PLACEMENT_3D('',#663,#664,#665); -#667=PLANE('',#666); -#669=ORIENTED_EDGE('',*,*,#668,.T.); -#671=ORIENTED_EDGE('',*,*,#670,.T.); -#673=ORIENTED_EDGE('',*,*,#672,.T.); -#675=ORIENTED_EDGE('',*,*,#674,.T.); -#676=EDGE_LOOP('','',(#669,#671,#673,#675)); -#677=FACE_OUTER_BOUND('',#676,.F.); -#678=ADVANCED_FACE('',(#677),'' ,#667,.F.); -#679=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); -#680=DIRECTION('',(0.E0,0.E0,1.E0)); -#681=DIRECTION('',(1.E0,0.E0,0.E0)); -#682=AXIS2_PLACEMENT_3D('',#679,#680,#681); -#683=PLANE('',#682); -#684=ORIENTED_EDGE('',*,*,#668,.F.); -#686=ORIENTED_EDGE('',*,*,#685,.T.); -#688=ORIENTED_EDGE('',*,*,#687,.T.); -#690=ORIENTED_EDGE('',*,*,#689,.F.); -#691=EDGE_LOOP('','',(#684,#686,#688,#690)); -#692=FACE_OUTER_BOUND('',#691,.F.); -#693=ADVANCED_FACE('',(#692),'' ,#683,.T.); - -#694=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); -#695=DIRECTION('',(-1.E0,0.E0,0.E0)); -#696=DIRECTION('',(0.E0,0.E0,1.E0)); -#697=AXIS2_PLACEMENT_3D('',#694,#695,#696); -#698=PLANE('',#697); -#699=ORIENTED_EDGE('',*,*,#674,.F.); -#701=ORIENTED_EDGE('',*,*,#700,.T.); -#703=ORIENTED_EDGE('',*,*,#702,.T.); -#704=ORIENTED_EDGE('',*,*,#685,.F.); -#705=EDGE_LOOP('','',(#699,#701,#703,#704)); -#706=FACE_OUTER_BOUND('',#705,.F.); -#707=ADVANCED_FACE('',(#706),'' ,#698,.T.); - -#708=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); -#709=DIRECTION('',(0.E0,0.E0,-1.E0)); -#710=DIRECTION('',(-1.E0,0.E0,0.E0)); -#711=AXIS2_PLACEMENT_3D('',#708,#709,#710); -#712=PLANE('',#711); -#713=ORIENTED_EDGE('',*,*,#672,.F.); -#715=ORIENTED_EDGE('',*,*,#714,.T.); -#717=ORIENTED_EDGE('',*,*,#716,.T.); -#718=ORIENTED_EDGE('',*,*,#700,.F.); -#719=EDGE_LOOP('','',(#713,#715,#717,#718)); -#720=FACE_OUTER_BOUND('',#719,.F.); -#721=ADVANCED_FACE('',(#720),'' ,#712,.T.); - -#722=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); -#723=DIRECTION('',(1.E0,0.E0,0.E0)); -#724=DIRECTION('',(0.E0,0.E0,-1.E0)); -#725=AXIS2_PLACEMENT_3D('',#722,#723,#724); -#726=PLANE('',#725); -#727=ORIENTED_EDGE('',*,*,#670,.F.); -#728=ORIENTED_EDGE('',*,*,#689,.T.); -#730=ORIENTED_EDGE('',*,*,#729,.T.); -#731=ORIENTED_EDGE('',*,*,#714,.F.); -#732=EDGE_LOOP('','',(#727,#728,#730,#731)); -#733=FACE_OUTER_BOUND('',#732,.F.); -#734=ADVANCED_FACE('',(#733),'' ,#726,.T.); - -#735=CARTESIAN_POINT('',(0.E0,2.25E0,0.E0)); -#736=DIRECTION('',(0.E0,1.E0,0.E0)); -#737=DIRECTION('',(0.E0,0.E0,-1.E0)); -#738=AXIS2_PLACEMENT_3D('',#735,#736,#737); -#739=PLANE('',#738); -#740=ORIENTED_EDGE('',*,*,#687,.F.); -#741=ORIENTED_EDGE('',*,*,#702,.F.); -#742=ORIENTED_EDGE('',*,*,#716,.F.); -#743=ORIENTED_EDGE('',*,*,#729,.F.); -#744=EDGE_LOOP('','',(#740,#741,#742,#743)); -#745=FACE_OUTER_BOUND('',#744,.F.); -#746=ADVANCED_FACE('',(#745),'' ,#739,.T.); - -#747=CLOSED_SHELL('',(#678,#693,#707,#721,#734,#746)); -#748=MANIFOLD_SOLID_BREP('',#747); -#749=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); -#750=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); -#751=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); -#752=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#751); -#753=(CONVERSION_BASED_UNIT('DEGREE',#752)NAMED_UNIT(#750)PLANE_ANGLE_UNIT()); -#754=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); -#755=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.415000081568E-1),#749,'closure','Maximum model space distance between geometric entities at asserted connectivities'); -#756=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#755))GLOBAL_UNIT_ASSIGNED_CONTEXT((#749,#753,#754))REPRESENTATION_CONTEXT('ID2','3')); -#757=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); -#758=DIRECTION('',(0.E0,0.E0,1.E0)); -#759=DIRECTION('',(1.E0,0.E0,0.E0)); -#760=AXIS2_PLACEMENT_3D('',#757,#758,#759); -#762=APPLICATION_CONTEXT('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); -#763=APPLICATION_PROTOCOL_DEFINITION('international standard','config_control_design',1994,#762); -#764=DESIGN_CONTEXT('',#762,'design'); -#765=MECHANICAL_CONTEXT('',#762,'mechanical'); -#766=PRODUCT('MODULE','MODULE','NOT SPECIFIED',(#765)); -#767=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('5','LAST_VERSION',#766,.MADE.); -#773=CARTESIAN_POINT('',(1.E3,0.E0,0.E0)); -#774=DIRECTION('',(0.E0,0.E0,1.E0)); -#775=DIRECTION('',(1.E0,0.E0,0.E0)); -#776=AXIS2_PLACEMENT_3D('',#773,#774,#775); -#777=ITEM_DEFINED_TRANSFORMATION('','',#776,#760); -#778=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#777)SHAPE_REPRESENTATION_RELATIONSHIP()); -#779=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#778,#772); -#782=CARTESIAN_POINT('',(6.E2,0.E0,0.E0)); -#783=DIRECTION('',(0.E0,0.E0,1.E0)); -#784=DIRECTION('',(1.E0,0.E0,0.E0)); -#785=AXIS2_PLACEMENT_3D('',#782,#783,#784); -#786=ITEM_DEFINED_TRANSFORMATION('','',#785,#760); -#787=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#786)SHAPE_REPRESENTATION_RELATIONSHIP()); -#788=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#787,#781); -#791=CARTESIAN_POINT('',(2.E2,0.E0,0.E0)); -#792=DIRECTION('',(0.E0,0.E0,1.E0)); -#793=DIRECTION('',(1.E0,0.E0,0.E0)); -#794=AXIS2_PLACEMENT_3D('',#791,#792,#793); -#795=ITEM_DEFINED_TRANSFORMATION('','',#794,#760); -#796=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#795)SHAPE_REPRESENTATION_RELATIONSHIP()); -#797=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#796,#790); -#800=CARTESIAN_POINT('',(-2.E2,0.E0,0.E0)); -#801=DIRECTION('',(0.E0,0.E0,1.E0)); -#802=DIRECTION('',(1.E0,0.E0,0.E0)); -#803=AXIS2_PLACEMENT_3D('',#800,#801,#802); -#804=ITEM_DEFINED_TRANSFORMATION('','',#803,#760); -#805=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#804)SHAPE_REPRESENTATION_RELATIONSHIP()); -#806=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#805,#799); -#809=CARTESIAN_POINT('',(-6.E2,0.E0,0.E0)); -#810=DIRECTION('',(0.E0,0.E0,1.E0)); -#811=DIRECTION('',(1.E0,0.E0,0.E0)); -#812=AXIS2_PLACEMENT_3D('',#809,#810,#811); -#813=ITEM_DEFINED_TRANSFORMATION('','',#812,#760); -#814=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#813)SHAPE_REPRESENTATION_RELATIONSHIP()); -#815=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#814,#808); -#818=CARTESIAN_POINT('',(-1.E3,0.E0,0.E0)); -#819=DIRECTION('',(0.E0,0.E0,1.E0)); -#820=DIRECTION('',(1.E0,0.E0,0.E0)); -#821=AXIS2_PLACEMENT_3D('',#818,#819,#820); -#822=ITEM_DEFINED_TRANSFORMATION('','',#821,#760); -#823=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#822)SHAPE_REPRESENTATION_RELATIONSHIP()); -#824=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#823,#817); -#825=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); -#826=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); -#827=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); -#828=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#827); -#829=(CONVERSION_BASED_UNIT('DEGREE',#828)NAMED_UNIT(#826)PLANE_ANGLE_UNIT()); -#830=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); -#831=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.415000081568E-1),#825,'closure','Maximum model space distance between geometric entities at asserted connectivities'); -#832=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( -(#831))GLOBAL_UNIT_ASSIGNED_CONTEXT((#825,#829,#830))REPRESENTATION_CONTEXT -('ID3','3')); -#833=APPLICATION_CONTEXT -('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); -#834=APPLICATION_PROTOCOL_DEFINITION('international standard', -'config_control_design',1994,#833); -#835=DESIGN_CONTEXT('',#833,'design'); -#836=MECHANICAL_CONTEXT('',#833,'mechanical'); -#837=PRODUCT('ROD_PLACE_ASM','ROD_PLACE_ASM','NOT SPECIFIED',(#836)); -#838=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('1','LAST_VERSION',#837,.MADE.); -#840=PRODUCT_CATEGORY('part',''); -#841=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','',(#837)); -#842=PRODUCT_CATEGORY_RELATIONSHIP('','',#840,#841); -#843=PRODUCT_CATEGORY('part',''); -#844=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#582,#766)); -#845=PRODUCT_CATEGORY_RELATIONSHIP('','',#843,#844); -#846=SECURITY_CLASSIFICATION_LEVEL('unclassified'); -#847=SECURITY_CLASSIFICATION('','',#846); -#848=CC_DESIGN_SECURITY_CLASSIFICATION(#847,(#583,#767,#838,#590,#771,#780,#789,#798,#807,#816)); -#849=APPROVAL_STATUS('approved'); -#850=APPROVAL(#849,''); -#851=CC_DESIGN_APPROVAL(#850,(#847,#583,#767,#838,#584,#768,#839)); -#852=CALENDAR_DATE(98,27,2); -#853=COORDINATED_UNIVERSAL_TIME_OFFSET(1,0,.AHEAD.); -#854=LOCAL_TIME(10,19,1.5E1,#853); -#855=DATE_AND_TIME(#852,#854); -#856=APPROVAL_DATE_TIME(#855,#850); -#857=DATE_TIME_ROLE('creation_date'); -#858=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#855,#857,(#584,#768,#839)); -#859=DATE_TIME_ROLE('classification_date'); -#860=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#855,#859,(#847)); -#861=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$); -#862=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED'); -#863=PERSON_AND_ORGANIZATION(#861,#862); -#864=APPROVAL_ROLE('approver'); -#865=APPROVAL_PERSON_ORGANIZATION(#863,#850,#864); -#866=PERSON_AND_ORGANIZATION_ROLE('creator'); -#867=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#863,#866,(#583,#767,#838,#584,#768,#839)); -#868=PERSON_AND_ORGANIZATION_ROLE('design_supplier'); -#869=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#863,#868,(#583,#767,#838)); -#870=PERSON_AND_ORGANIZATION_ROLE('classification_officer'); -#871=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#863,#870,(#847)); -#872=PERSON_AND_ORGANIZATION_ROLE('design_owner'); -#873=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#863,#872,(#837,#582,#766)); -#134=EDGE_CURVE('', #99,#100,'',#12,.T.); - -#136=EDGE_CURVE('', #99,#107,'',#4,.T.); - -#138=EDGE_CURVE('', #107,#108,'',#68,.T.); - -#140=EDGE_CURVE('', #100,#108,'',#96,.T.); - -#150=EDGE_CURVE('', #104,#99,'',#8,.T.); - -#153=EDGE_CURVE('', #100,#102,'',#16,.T.); - -#155=EDGE_CURVE('', #102,#118,'',#20,.T.); - -#157=EDGE_CURVE('', #116,#118,'',#24,.T.); - -#159=EDGE_CURVE('', #115,#116,'',#28,.T.); - -#161=EDGE_CURVE('', #120,#115,'',#32,.T.); - -#163=EDGE_CURVE('', #120,#104,'',#36,.T.); - -#174=EDGE_CURVE('', #104,#112,'',#40,.T.); - -#176=EDGE_CURVE('', #112,#107,'',#72,.T.); - -#187=EDGE_CURVE('', #120,#128,'',#52,.T.); - -#189=EDGE_CURVE('', #128,#112,'',#76,.T.); - -#201=EDGE_CURVE('', #102,#110,'',#44,.T.); - -#203=EDGE_CURVE('', #110,#126,'',#92,.T.); - -#205=EDGE_CURVE('', #118,#126,'',#48,.T.); - -#217=EDGE_CURVE('', #115,#123,'',#56,.T.); - -#219=EDGE_CURVE('', #128,#123,'',#80,.T.); - -#231=EDGE_CURVE('', #116,#124,'',#60,.T.); - -#233=EDGE_CURVE('', #123,#124,'',#84,.T.); - -#246=EDGE_CURVE('', #124,#126,'',#88,.T.); - -#257=EDGE_CURVE('', #108,#110,'',#64,.T.); - -#416=EDGE_CURVE('', #381,#382,'',#290,.T.); - -#418=EDGE_CURVE('', #381,#389,'',#286,.T.); - -#420=EDGE_CURVE('', #389,#390,'',#334,.T.); - -#422=EDGE_CURVE('', #382,#390,'',#322,.T.); - -#433=EDGE_CURVE('', #382,#384,'',#294,.T.); - -#435=EDGE_CURVE('', #384,#386,'',#298,.T.); - -#437=EDGE_CURVE('', #386,#402,'',#302,.T.); - -#439=EDGE_CURVE('', #400,#402,'',#306,.T.); - -#441=EDGE_CURVE('', #398,#400,'',#310,.T.); - -#443=EDGE_CURVE('', #397,#398,'',#314,.T.); - -#445=EDGE_CURVE('', #397,#381,'',#318,.T.); - -#457=EDGE_CURVE('', #390,#392,'',#330,.T.); - -#459=EDGE_CURVE('', #384,#392,'',#358,.T.); - -#469=EDGE_CURVE('', #392,#394,'',#326,.T.); - -#473=EDGE_CURVE('', #405,#389,'',#338,.T.); - -#475=EDGE_CURVE('', #405,#406,'',#342,.T.); - -#477=EDGE_CURVE('', #406,#408,'',#346,.T.); - -#479=EDGE_CURVE('', #408,#410,'',#350,.T.); - -#481=EDGE_CURVE('', #394,#410,'',#354,.T.); - -#494=EDGE_CURVE('', #386,#394,'',#362,.T.); - -#504=EDGE_CURVE('', #397,#405,'',#370,.T.); - -#519=EDGE_CURVE('', #402,#410,'',#366,.T.); - -#531=EDGE_CURVE('', #398,#406,'',#374,.T.); - -#544=EDGE_CURVE('', #400,#408,'',#378,.T.); - -#577=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#576,#282,#564),#572); -#584=PRODUCT_DEFINITION('design','',#583,#580); -#585=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD.',#584); -#586=SHAPE_DEFINITION_REPRESENTATION(#585,#577); -#587=SHAPE_DEFINITION_REPRESENTATION(#588,#589); -#588=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD_PLACE_ASM.',#839); -#589=SHAPE_REPRESENTATION('',(#595,#776,#785,#794,#803,#812,#821),#832); -#590=NEXT_ASSEMBLY_USAGE_OCCURRENCE('0','Next assembly relationship','',#839,#584,$); -#591=PRODUCT_DEFINITION_SHAPE('Placement #0','Placement of ROD with respect to ROD_PLACE_ASM',#590); -#668=EDGE_CURVE('', #649,#650,'',#602,.T.); - -#670=EDGE_CURVE('', #650,#652,'',#606,.T.); - -#672=EDGE_CURVE('', #652,#654,'',#610,.T.); - -#674=EDGE_CURVE('', #654,#649,'',#614,.T.); - -#685=EDGE_CURVE('', #649,#657,'',#618,.T.); - -#687=EDGE_CURVE('', #657,#658,'',#634,.T.); - -#689=EDGE_CURVE('', #650,#658,'',#630,.T.); - -#700=EDGE_CURVE('', #654,#662,'',#622,.T.); - -#702=EDGE_CURVE('', #662,#657,'',#638,.T.); - -#714=EDGE_CURVE('', #652,#660,'',#626,.T.); - -#716=EDGE_CURVE('', #660,#662,'',#642,.T.); - -#729=EDGE_CURVE('', #658,#660,'',#646,.T.); - -#761=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#760,#748),#756); -#768=PRODUCT_DEFINITION('design','',#767,#764); -#769=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR MODULE.',#768); -#770=SHAPE_DEFINITION_REPRESENTATION(#769,#761); -#771=NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','Next assembly relationship','',#839,#768,$); -#772=PRODUCT_DEFINITION_SHAPE('Placement #1','Placement of MODULE with respect to ROD_PLACE_ASM',#771); -#780=NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','Next assembly relationship','',#839,#768,$); -#781=PRODUCT_DEFINITION_SHAPE('Placement #2','Placement of MODULE with respect to ROD_PLACE_ASM',#780); -#789=NEXT_ASSEMBLY_USAGE_OCCURRENCE('3','Next assembly relationship','',#839,#768,$); -#790=PRODUCT_DEFINITION_SHAPE('Placement #3','Placement of MODULE with respect to ROD_PLACE_ASM',#789); -#798=NEXT_ASSEMBLY_USAGE_OCCURRENCE('4','Next assembly relationship','',#839,#768,$); -#799=PRODUCT_DEFINITION_SHAPE('Placement #4','Placement of MODULE with respect to ROD_PLACE_ASM',#798); -#807=NEXT_ASSEMBLY_USAGE_OCCURRENCE('5','Next assembly relationship','',#839,#768,$); -#808=PRODUCT_DEFINITION_SHAPE('Placement #5','Placement of MODULE with respect to ROD_PLACE_ASM',#807); -#816=NEXT_ASSEMBLY_USAGE_OCCURRENCE('6','Next assembly relationship','',#839,#768,$); -#817=PRODUCT_DEFINITION_SHAPE('Placement #6','Placement of MODULE with respect to ROD_PLACE_ASM',#816); -#839=PRODUCT_DEFINITION('design','',#838,#835); -ENDSEC; -END-ISO-10303-21; - - - - - - - - diff --git a/examples/extended/geometry/cad/stepfiles/G4rod_solid.stp b/examples/extended/geometry/cad/stepfiles/G4rod_solid.stp deleted file mode 100644 index ccd7e63056..0000000000 --- a/examples/extended/geometry/cad/stepfiles/G4rod_solid.stp +++ /dev/null @@ -1,2055 +0,0 @@ -ISO-10303-21; -HEADER; -FILE_DESCRIPTION((''),'1'); -FILE_NAME('ROD_PLACE_ASM','1998-02-27T10:19:15',('oriunno'),(''),'PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 9718','PRO/ENGINEER BY PARAMETRIC TECHNOLOGY CORPORATION, 9718',''); -FILE_SCHEMA(('CONFIG_CONTROL_DESIGN')); -ENDSEC; -DATA; -#1=DIRECTION('',(1.E0,0.E0,0.E0)); -#2=VECTOR('',#1,2.41E3); -#3=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); -#4=LINE('',#3,#2); -#5=DIRECTION('',(0.E0,0.E0,-1.E0)); -#6=VECTOR('',#5,1.4E1); -#7=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); -#8=LINE('',#7,#6); -#9=DIRECTION('',(0.E0,1.E0,0.E0)); -#10=VECTOR('',#9,1.6E1); -#11=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); -#12=LINE('',#11,#10); -#13=DIRECTION('',(0.E0,0.E0,1.E0)); -#14=VECTOR('',#13,1.4E1); -#15=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); -#16=LINE('',#15,#14); -#17=DIRECTION('',(0.E0,-1.E0,0.E0)); -#18=VECTOR('',#17,1.5E0); -#19=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#20=LINE('',#19,#18); -#21=DIRECTION('',(0.E0,0.E0,1.E0)); -#22=VECTOR('',#21,1.25E1); -#23=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); -#24=LINE('',#23,#22); -#25=DIRECTION('',(0.E0,1.E0,0.E0)); -#26=VECTOR('',#25,1.3E1); -#27=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); -#28=LINE('',#27,#26); -#29=DIRECTION('',(0.E0,0.E0,-1.E0)); -#30=VECTOR('',#29,1.25E1); -#31=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#32=LINE('',#31,#30); -#33=DIRECTION('',(0.E0,-1.E0,0.E0)); -#34=VECTOR('',#33,1.5E0); -#35=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#36=LINE('',#35,#34); -#37=DIRECTION('',(1.E0,0.E0,0.E0)); -#38=VECTOR('',#37,2.41E3); -#39=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); -#40=LINE('',#39,#38); -#41=DIRECTION('',(1.E0,0.E0,0.E0)); -#42=VECTOR('',#41,2.41E3); -#43=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#44=LINE('',#43,#42); -#45=DIRECTION('',(1.E0,0.E0,0.E0)); -#46=VECTOR('',#45,2.41E3); -#47=CARTESIAN_POINT('',(-1.205E3,7.5E0,-6.4E1)); -#48=LINE('',#47,#46); -#49=DIRECTION('',(1.E0,0.E0,0.E0)); -#50=VECTOR('',#49,2.41E3); -#51=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#52=LINE('',#51,#50); -#53=DIRECTION('',(1.E0,0.E0,0.E0)); -#54=VECTOR('',#53,2.41E3); -#55=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); -#56=LINE('',#55,#54); -#57=DIRECTION('',(1.E0,0.E0,0.E0)); -#58=VECTOR('',#57,2.41E3); -#59=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); -#60=LINE('',#59,#58); -#61=DIRECTION('',(0.E0,0.E0,1.E0)); -#62=VECTOR('',#61,1.4E1); -#63=CARTESIAN_POINT('',(1.205E3,9.E0,-7.8E1)); -#64=LINE('',#63,#62); -#65=DIRECTION('',(0.E0,1.E0,0.E0)); -#66=VECTOR('',#65,1.6E1); -#67=CARTESIAN_POINT('',(1.205E3,-7.E0,-7.8E1)); -#68=LINE('',#67,#66); -#69=DIRECTION('',(0.E0,0.E0,-1.E0)); -#70=VECTOR('',#69,1.4E1); -#71=CARTESIAN_POINT('',(1.205E3,-7.E0,-6.4E1)); -#72=LINE('',#71,#70); -#73=DIRECTION('',(0.E0,-1.E0,0.E0)); -#74=VECTOR('',#73,1.5E0); -#75=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); -#76=LINE('',#75,#74); -#77=DIRECTION('',(0.E0,0.E0,-1.E0)); -#78=VECTOR('',#77,1.25E1); -#79=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); -#80=LINE('',#79,#78); -#81=DIRECTION('',(0.E0,1.E0,0.E0)); -#82=VECTOR('',#81,1.3E1); -#83=CARTESIAN_POINT('',(1.205E3,-5.5E0,-7.65E1)); -#84=LINE('',#83,#82); -#85=DIRECTION('',(0.E0,0.E0,1.E0)); -#86=VECTOR('',#85,1.25E1); -#87=CARTESIAN_POINT('',(1.205E3,7.5E0,-7.65E1)); -#88=LINE('',#87,#86); -#89=DIRECTION('',(0.E0,-1.E0,0.E0)); -#90=VECTOR('',#89,1.5E0); -#91=CARTESIAN_POINT('',(1.205E3,9.E0,-6.4E1)); -#92=LINE('',#91,#90); -#93=DIRECTION('',(1.E0,0.E0,0.E0)); -#94=VECTOR('',#93,2.41E3); -#95=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); -#96=LINE('',#95,#94); -#97=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); -#98=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); -#99=VERTEX_POINT('','',#97); -#100=VERTEX_POINT('','',#98); -#101=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#102=VERTEX_POINT('','',#101); -#103=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); -#104=VERTEX_POINT('','',#103); -#105=CARTESIAN_POINT('',(1.205E3,-7.E0,-7.8E1)); -#106=CARTESIAN_POINT('',(1.205E3,9.E0,-7.8E1)); -#107=VERTEX_POINT('','',#105); -#108=VERTEX_POINT('','',#106); -#109=CARTESIAN_POINT('',(1.205E3,9.E0,-6.4E1)); -#110=VERTEX_POINT('','',#109); -#111=CARTESIAN_POINT('',(1.205E3,-7.E0,-6.4E1)); -#112=VERTEX_POINT('','',#111); -#113=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-7.65E1)); -#114=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.65E1)); -#115=VERTEX_POINT('','',#113); -#116=VERTEX_POINT('','',#114); -#117=CARTESIAN_POINT('',(-1.205E3,7.5E0,-6.4E1)); -#118=VERTEX_POINT('','',#117); -#119=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#120=VERTEX_POINT('','',#119); -#121=CARTESIAN_POINT('',(1.205E3,-5.5E0,-7.65E1)); -#122=CARTESIAN_POINT('',(1.205E3,7.5E0,-7.65E1)); -#123=VERTEX_POINT('','',#121); -#124=VERTEX_POINT('','',#122); -#125=CARTESIAN_POINT('',(1.205E3,7.5E0,-6.4E1)); -#126=VERTEX_POINT('','',#125); -#127=CARTESIAN_POINT('',(1.205E3,-5.5E0,-6.4E1)); -#128=VERTEX_POINT('','',#127); -#129=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.8E1)); -#130=DIRECTION('',(0.E0,0.E0,-1.E0)); -#131=DIRECTION('',(0.E0,1.E0,0.E0)); -#132=AXIS2_PLACEMENT_3D('',#129,#130,#131); -#133=PLANE('',#132); -#135=ORIENTED_EDGE('',*,*,#134,.F.); -#137=ORIENTED_EDGE('',*,*,#136,.T.); -#139=ORIENTED_EDGE('',*,*,#138,.T.); -#141=ORIENTED_EDGE('',*,*,#140,.F.); -#142=EDGE_LOOP('','',(#135,#137,#139,#141)); -#143=FACE_OUTER_BOUND('',#142,.F.); -#144=ADVANCED_FACE('',(#143),'' ,#133,.T.); - -#145=CARTESIAN_POINT('',(-1.205E3,0.E0,0.E0)); -#146=DIRECTION('',(1.E0,0.E0,0.E0)); -#147=DIRECTION('',(0.E0,0.E0,1.E0)); -#148=AXIS2_PLACEMENT_3D('',#145,#146,#147); -#149=PLANE('',#148); -#151=ORIENTED_EDGE('',*,*,#150,.T.); -#152=ORIENTED_EDGE('',*,*,#134,.T.); -#154=ORIENTED_EDGE('',*,*,#153,.T.); -#156=ORIENTED_EDGE('',*,*,#155,.T.); -#158=ORIENTED_EDGE('',*,*,#157,.F.); -#160=ORIENTED_EDGE('',*,*,#159,.F.); -#162=ORIENTED_EDGE('',*,*,#161,.F.); -#164=ORIENTED_EDGE('',*,*,#163,.T.); -#165=EDGE_LOOP('','',(#151,#152,#154,#156,#158,#160,#162,#164)); -#166=FACE_OUTER_BOUND('',#165,.F.); -#167=ADVANCED_FACE('',(#166),'' ,#149,.F.); - -#168=CARTESIAN_POINT('',(-1.205E3,-7.E0,-6.4E1)); -#169=DIRECTION('',(0.E0,-1.E0,0.E0)); -#170=DIRECTION('',(0.E0,0.E0,-1.E0)); -#171=AXIS2_PLACEMENT_3D('',#168,#169,#170); -#172=PLANE('',#171); -#173=ORIENTED_EDGE('',*,*,#150,.F.); -#175=ORIENTED_EDGE('',*,*,#174,.T.); -#177=ORIENTED_EDGE('',*,*,#176,.T.); -#178=ORIENTED_EDGE('',*,*,#136,.F.); -#179=EDGE_LOOP('','',(#173,#175,#177,#178)); -#180=FACE_OUTER_BOUND('',#179,.F.); -#181=ADVANCED_FACE('',(#180),'' ,#172,.T.); - -#182=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#183=DIRECTION('',(0.E0,0.E0,1.E0)); -#184=DIRECTION('',(0.E0,-1.E0,0.E0)); -#185=AXIS2_PLACEMENT_3D('',#182,#183,#184); -#186=PLANE('',#185); -#188=ORIENTED_EDGE('',*,*,#187,.T.); -#190=ORIENTED_EDGE('',*,*,#189,.T.); -#191=ORIENTED_EDGE('',*,*,#174,.F.); -#192=ORIENTED_EDGE('',*,*,#163,.F.); -#193=EDGE_LOOP('','',(#188,#190,#191,#192)); -#194=FACE_OUTER_BOUND('',#193,.F.); -#195=ADVANCED_FACE('',(#194),'' ,#186,.T.); - -#196=CARTESIAN_POINT('',(-1.205E3,9.E0,-6.4E1)); -#197=DIRECTION('',(0.E0,0.E0,1.E0)); -#198=DIRECTION('',(0.E0,-1.E0,0.E0)); -#199=AXIS2_PLACEMENT_3D('',#196,#197,#198); -#200=PLANE('',#199); -#202=ORIENTED_EDGE('',*,*,#201,.T.); -#204=ORIENTED_EDGE('',*,*,#203,.T.); -#206=ORIENTED_EDGE('',*,*,#205,.F.); -#207=ORIENTED_EDGE('',*,*,#155,.F.); -#208=EDGE_LOOP('','',(#202,#204,#206,#207)); -#209=FACE_OUTER_BOUND('',#208,.F.); -#210=ADVANCED_FACE('',(#209),'' ,#200,.T.); - -#211=CARTESIAN_POINT('',(-1.205E3,-5.5E0,-6.4E1)); -#212=DIRECTION('',(0.E0,-1.E0,0.E0)); -#213=DIRECTION('',(0.E0,0.E0,-1.E0)); -#214=AXIS2_PLACEMENT_3D('',#211,#212,#213); -#215=PLANE('',#214); -#216=ORIENTED_EDGE('',*,*,#161,.T.); -#218=ORIENTED_EDGE('',*,*,#217,.T.); -#220=ORIENTED_EDGE('',*,*,#219,.F.); -#221=ORIENTED_EDGE('',*,*,#187,.F.); -#222=EDGE_LOOP('','',(#216,#218,#220,#221)); -#223=FACE_OUTER_BOUND('',#222,.F.); -#224=ADVANCED_FACE('',(#223),'' ,#215,.F.); - -#225=CARTESIAN_POINT('',(-1.205E3,-7.E0,-7.65E1)); -#226=DIRECTION('',(0.E0,0.E0,-1.E0)); -#227=DIRECTION('',(0.E0,1.E0,0.E0)); -#228=AXIS2_PLACEMENT_3D('',#225,#226,#227); -#229=PLANE('',#228); -#230=ORIENTED_EDGE('',*,*,#159,.T.); -#232=ORIENTED_EDGE('',*,*,#231,.T.); -#234=ORIENTED_EDGE('',*,*,#233,.F.); -#235=ORIENTED_EDGE('',*,*,#217,.F.); -#236=EDGE_LOOP('','',(#230,#232,#234,#235)); -#237=FACE_OUTER_BOUND('',#236,.F.); -#238=ADVANCED_FACE('',(#237),'' ,#229,.F.); - -#239=CARTESIAN_POINT('',(-1.205E3,7.5E0,-7.8E1)); -#240=DIRECTION('',(0.E0,1.E0,0.E0)); -#241=DIRECTION('',(0.E0,0.E0,1.E0)); -#242=AXIS2_PLACEMENT_3D('',#239,#240,#241); -#243=PLANE('',#242); -#244=ORIENTED_EDGE('',*,*,#157,.T.); -#245=ORIENTED_EDGE('',*,*,#205,.T.); -#247=ORIENTED_EDGE('',*,*,#246,.F.); -#248=ORIENTED_EDGE('',*,*,#231,.F.); -#249=EDGE_LOOP('','',(#244,#245,#247,#248)); -#250=FACE_OUTER_BOUND('',#249,.F.); -#251=ADVANCED_FACE('',(#250),'' ,#243,.F.); - -#252=CARTESIAN_POINT('',(1.205E3,0.E0,0.E0)); -#253=DIRECTION('',(1.E0,0.E0,0.E0)); -#254=DIRECTION('',(0.E0,0.E0,1.E0)); -#255=AXIS2_PLACEMENT_3D('',#252,#253,#254); -#256=PLANE('',#255); -#258=ORIENTED_EDGE('',*,*,#257,.F.); -#259=ORIENTED_EDGE('',*,*,#138,.F.); -#260=ORIENTED_EDGE('',*,*,#176,.F.); -#261=ORIENTED_EDGE('',*,*,#189,.F.); -#262=ORIENTED_EDGE('',*,*,#219,.T.); -#263=ORIENTED_EDGE('',*,*,#233,.T.); -#264=ORIENTED_EDGE('',*,*,#246,.T.); -#265=ORIENTED_EDGE('',*,*,#203,.F.); -#266=EDGE_LOOP('','',(#258,#259,#260,#261,#262,#263,#264,#265)); -#267=FACE_OUTER_BOUND('',#266,.F.); -#268=ADVANCED_FACE('',(#267),'' ,#256,.T.); - -#269=CARTESIAN_POINT('',(-1.205E3,9.E0,-7.8E1)); -#270=DIRECTION('',(0.E0,1.E0,0.E0)); -#271=DIRECTION('',(0.E0,0.E0,1.E0)); -#272=AXIS2_PLACEMENT_3D('',#269,#270,#271); -#273=PLANE('',#272); -#274=ORIENTED_EDGE('',*,*,#153,.F.); -#275=ORIENTED_EDGE('',*,*,#140,.T.); -#276=ORIENTED_EDGE('',*,*,#257,.T.); -#277=ORIENTED_EDGE('',*,*,#201,.F.); -#278=EDGE_LOOP('','',(#274,#275,#276,#277)); -#279=FACE_OUTER_BOUND('',#278,.F.); -#280=ADVANCED_FACE('',(#279),'' ,#273,.T.); - -#281=CLOSED_SHELL('',(#144,#167,#181,#195,#210,#224,#238,#251,#268,#280)); -#282=MANIFOLD_SOLID_BREP('',#281); -#283=DIRECTION('',(1.E0,0.E0,0.E0)); -#284=VECTOR('',#283,2.41E3); -#285=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); -#286=LINE('',#285,#284); -#287=DIRECTION('',(0.E0,0.E0,1.E0)); -#288=VECTOR('',#287,1.4E1); -#289=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); -#290=LINE('',#289,#288); -#291=DIRECTION('',(0.E0,-1.E0,0.E0)); -#292=VECTOR('',#291,1.6E1); -#293=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); -#294=LINE('',#293,#292); -#295=DIRECTION('',(0.E0,0.E0,-1.E0)); -#296=VECTOR('',#295,1.4E1); -#297=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); -#298=LINE('',#297,#296); -#299=DIRECTION('',(0.E0,1.E0,0.E0)); -#300=VECTOR('',#299,1.5E0); -#301=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#302=LINE('',#301,#300); -#303=DIRECTION('',(0.E0,0.E0,-1.E0)); -#304=VECTOR('',#303,1.25E1); -#305=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); -#306=LINE('',#305,#304); -#307=DIRECTION('',(0.E0,-1.E0,0.E0)); -#308=VECTOR('',#307,1.3E1); -#309=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); -#310=LINE('',#309,#308); -#311=DIRECTION('',(0.E0,0.E0,1.E0)); -#312=VECTOR('',#311,1.25E1); -#313=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#314=LINE('',#313,#312); -#315=DIRECTION('',(0.E0,1.E0,0.E0)); -#316=VECTOR('',#315,1.5E0); -#317=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#318=LINE('',#317,#316); -#319=DIRECTION('',(1.E0,0.E0,0.E0)); -#320=VECTOR('',#319,2.41E3); -#321=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); -#322=LINE('',#321,#320); -#323=DIRECTION('',(0.E0,0.E0,-1.E0)); -#324=VECTOR('',#323,1.4E1); -#325=CARTESIAN_POINT('',(1.205E3,-7.E0,7.8E1)); -#326=LINE('',#325,#324); -#327=DIRECTION('',(0.E0,-1.E0,0.E0)); -#328=VECTOR('',#327,1.6E1); -#329=CARTESIAN_POINT('',(1.205E3,9.E0,7.8E1)); -#330=LINE('',#329,#328); -#331=DIRECTION('',(0.E0,0.E0,1.E0)); -#332=VECTOR('',#331,1.4E1); -#333=CARTESIAN_POINT('',(1.205E3,9.E0,6.4E1)); -#334=LINE('',#333,#332); -#335=DIRECTION('',(0.E0,1.E0,0.E0)); -#336=VECTOR('',#335,1.5E0); -#337=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); -#338=LINE('',#337,#336); -#339=DIRECTION('',(0.E0,0.E0,1.E0)); -#340=VECTOR('',#339,1.25E1); -#341=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); -#342=LINE('',#341,#340); -#343=DIRECTION('',(0.E0,-1.E0,0.E0)); -#344=VECTOR('',#343,1.3E1); -#345=CARTESIAN_POINT('',(1.205E3,7.5E0,7.65E1)); -#346=LINE('',#345,#344); -#347=DIRECTION('',(0.E0,0.E0,-1.E0)); -#348=VECTOR('',#347,1.25E1); -#349=CARTESIAN_POINT('',(1.205E3,-5.5E0,7.65E1)); -#350=LINE('',#349,#348); -#351=DIRECTION('',(0.E0,1.E0,0.E0)); -#352=VECTOR('',#351,1.5E0); -#353=CARTESIAN_POINT('',(1.205E3,-7.E0,6.4E1)); -#354=LINE('',#353,#352); -#355=DIRECTION('',(1.E0,0.E0,0.E0)); -#356=VECTOR('',#355,2.41E3); -#357=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); -#358=LINE('',#357,#356); -#359=DIRECTION('',(1.E0,0.E0,0.E0)); -#360=VECTOR('',#359,2.41E3); -#361=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#362=LINE('',#361,#360); -#363=DIRECTION('',(1.E0,0.E0,0.E0)); -#364=VECTOR('',#363,2.41E3); -#365=CARTESIAN_POINT('',(-1.205E3,-5.5E0,6.4E1)); -#366=LINE('',#365,#364); -#367=DIRECTION('',(1.E0,0.E0,0.E0)); -#368=VECTOR('',#367,2.41E3); -#369=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#370=LINE('',#369,#368); -#371=DIRECTION('',(1.E0,0.E0,0.E0)); -#372=VECTOR('',#371,2.41E3); -#373=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); -#374=LINE('',#373,#372); -#375=DIRECTION('',(1.E0,0.E0,0.E0)); -#376=VECTOR('',#375,2.41E3); -#377=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); -#378=LINE('',#377,#376); -#379=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); -#380=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); -#381=VERTEX_POINT('','',#379); -#382=VERTEX_POINT('','',#380); -#383=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); -#384=VERTEX_POINT('','',#383); -#385=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#386=VERTEX_POINT('','',#385); -#387=CARTESIAN_POINT('',(1.205E3,9.E0,6.4E1)); -#388=CARTESIAN_POINT('',(1.205E3,9.E0,7.8E1)); -#389=VERTEX_POINT('','',#387); -#390=VERTEX_POINT('','',#388); -#391=CARTESIAN_POINT('',(1.205E3,-7.E0,7.8E1)); -#392=VERTEX_POINT('','',#391); -#393=CARTESIAN_POINT('',(1.205E3,-7.E0,6.4E1)); -#394=VERTEX_POINT('','',#393); -#395=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#396=CARTESIAN_POINT('',(-1.205E3,7.5E0,7.65E1)); -#397=VERTEX_POINT('','',#395); -#398=VERTEX_POINT('','',#396); -#399=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.65E1)); -#400=VERTEX_POINT('','',#399); -#401=CARTESIAN_POINT('',(-1.205E3,-5.5E0,6.4E1)); -#402=VERTEX_POINT('','',#401); -#403=CARTESIAN_POINT('',(1.205E3,7.5E0,6.4E1)); -#404=CARTESIAN_POINT('',(1.205E3,7.5E0,7.65E1)); -#405=VERTEX_POINT('','',#403); -#406=VERTEX_POINT('','',#404); -#407=CARTESIAN_POINT('',(1.205E3,-5.5E0,7.65E1)); -#408=VERTEX_POINT('','',#407); -#409=CARTESIAN_POINT('',(1.205E3,-5.5E0,6.4E1)); -#410=VERTEX_POINT('','',#409); -#411=CARTESIAN_POINT('',(-1.205E3,9.E0,6.4E1)); -#412=DIRECTION('',(0.E0,1.E0,0.E0)); -#413=DIRECTION('',(0.E0,0.E0,1.E0)); -#414=AXIS2_PLACEMENT_3D('',#411,#412,#413); -#415=PLANE('',#414); -#417=ORIENTED_EDGE('',*,*,#416,.F.); -#419=ORIENTED_EDGE('',*,*,#418,.T.); -#421=ORIENTED_EDGE('',*,*,#420,.T.); -#423=ORIENTED_EDGE('',*,*,#422,.F.); -#424=EDGE_LOOP('','',(#417,#419,#421,#423)); -#425=FACE_OUTER_BOUND('',#424,.F.); -#426=ADVANCED_FACE('',(#425),'' ,#415,.T.); - -#427=CARTESIAN_POINT('',(-1.205E3,0.E0,0.E0)); -#428=DIRECTION('',(1.E0,0.E0,0.E0)); -#429=DIRECTION('',(0.E0,0.E0,1.E0)); -#430=AXIS2_PLACEMENT_3D('',#427,#428,#429); -#431=PLANE('',#430); -#432=ORIENTED_EDGE('',*,*,#416,.T.); -#434=ORIENTED_EDGE('',*,*,#433,.T.); -#436=ORIENTED_EDGE('',*,*,#435,.T.); -#438=ORIENTED_EDGE('',*,*,#437,.T.); -#440=ORIENTED_EDGE('',*,*,#439,.F.); -#442=ORIENTED_EDGE('',*,*,#441,.F.); -#444=ORIENTED_EDGE('',*,*,#443,.F.); -#446=ORIENTED_EDGE('',*,*,#445,.T.); -#447=EDGE_LOOP('','',(#432,#434,#436,#438,#440,#442,#444,#446)); -#448=FACE_OUTER_BOUND('',#447,.F.); -#449=ADVANCED_FACE('',(#448),'' ,#431,.F.); - -#450=CARTESIAN_POINT('',(-1.205E3,9.E0,7.8E1)); -#451=DIRECTION('',(0.E0,0.E0,1.E0)); -#452=DIRECTION('',(0.E0,-1.E0,0.E0)); -#453=AXIS2_PLACEMENT_3D('',#450,#451,#452); -#454=PLANE('',#453); -#455=ORIENTED_EDGE('',*,*,#433,.F.); -#456=ORIENTED_EDGE('',*,*,#422,.T.); -#458=ORIENTED_EDGE('',*,*,#457,.T.); -#460=ORIENTED_EDGE('',*,*,#459,.F.); -#461=EDGE_LOOP('','',(#455,#456,#458,#460)); -#462=FACE_OUTER_BOUND('',#461,.F.); -#463=ADVANCED_FACE('',(#462),'' ,#454,.T.); - -#464=CARTESIAN_POINT('',(1.205E3,0.E0,0.E0)); -#465=DIRECTION('',(1.E0,0.E0,0.E0)); -#466=DIRECTION('',(0.E0,0.E0,1.E0)); -#467=AXIS2_PLACEMENT_3D('',#464,#465,#466); -#468=PLANE('',#467); -#470=ORIENTED_EDGE('',*,*,#469,.F.); -#471=ORIENTED_EDGE('',*,*,#457,.F.); -#472=ORIENTED_EDGE('',*,*,#420,.F.); -#474=ORIENTED_EDGE('',*,*,#473,.F.); -#476=ORIENTED_EDGE('',*,*,#475,.T.); -#478=ORIENTED_EDGE('',*,*,#477,.T.); -#480=ORIENTED_EDGE('',*,*,#479,.T.); -#482=ORIENTED_EDGE('',*,*,#481,.F.); -#483=EDGE_LOOP('','',(#470,#471,#472,#474,#476,#478,#480,#482)); -#484=FACE_OUTER_BOUND('',#483,.F.); -#485=ADVANCED_FACE('',(#484),'' ,#468,.T.); - -#486=CARTESIAN_POINT('',(-1.205E3,-7.E0,7.8E1)); -#487=DIRECTION('',(0.E0,-1.E0,0.E0)); -#488=DIRECTION('',(0.E0,0.E0,-1.E0)); -#489=AXIS2_PLACEMENT_3D('',#486,#487,#488); -#490=PLANE('',#489); -#491=ORIENTED_EDGE('',*,*,#435,.F.); -#492=ORIENTED_EDGE('',*,*,#459,.T.); -#493=ORIENTED_EDGE('',*,*,#469,.T.); -#495=ORIENTED_EDGE('',*,*,#494,.F.); -#496=EDGE_LOOP('','',(#491,#492,#493,#495)); -#497=FACE_OUTER_BOUND('',#496,.F.); -#498=ADVANCED_FACE('',(#497),'' ,#490,.T.); - -#499=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#500=DIRECTION('',(0.E0,0.E0,-1.E0)); -#501=DIRECTION('',(0.E0,1.E0,0.E0)); -#502=AXIS2_PLACEMENT_3D('',#499,#500,#501); -#503=PLANE('',#502); -#505=ORIENTED_EDGE('',*,*,#504,.T.); -#506=ORIENTED_EDGE('',*,*,#473,.T.); -#507=ORIENTED_EDGE('',*,*,#418,.F.); -#508=ORIENTED_EDGE('',*,*,#445,.F.); -#509=EDGE_LOOP('','',(#505,#506,#507,#508)); -#510=FACE_OUTER_BOUND('',#509,.F.); -#511=ADVANCED_FACE('',(#510),'' ,#503,.T.); - -#512=CARTESIAN_POINT('',(-1.205E3,-7.E0,6.4E1)); -#513=DIRECTION('',(0.E0,0.E0,-1.E0)); -#514=DIRECTION('',(0.E0,1.E0,0.E0)); -#515=AXIS2_PLACEMENT_3D('',#512,#513,#514); -#516=PLANE('',#515); -#517=ORIENTED_EDGE('',*,*,#494,.T.); -#518=ORIENTED_EDGE('',*,*,#481,.T.); -#520=ORIENTED_EDGE('',*,*,#519,.F.); -#521=ORIENTED_EDGE('',*,*,#437,.F.); -#522=EDGE_LOOP('','',(#517,#518,#520,#521)); -#523=FACE_OUTER_BOUND('',#522,.F.); -#524=ADVANCED_FACE('',(#523),'' ,#516,.T.); - -#525=CARTESIAN_POINT('',(-1.205E3,7.5E0,6.4E1)); -#526=DIRECTION('',(0.E0,1.E0,0.E0)); -#527=DIRECTION('',(0.E0,0.E0,1.E0)); -#528=AXIS2_PLACEMENT_3D('',#525,#526,#527); -#529=PLANE('',#528); -#530=ORIENTED_EDGE('',*,*,#443,.T.); -#532=ORIENTED_EDGE('',*,*,#531,.T.); -#533=ORIENTED_EDGE('',*,*,#475,.F.); -#534=ORIENTED_EDGE('',*,*,#504,.F.); -#535=EDGE_LOOP('','',(#530,#532,#533,#534)); -#536=FACE_OUTER_BOUND('',#535,.F.); -#537=ADVANCED_FACE('',(#536),'' ,#529,.F.); - -#538=CARTESIAN_POINT('',(-1.205E3,9.E0,7.65E1)); -#539=DIRECTION('',(0.E0,0.E0,1.E0)); -#540=DIRECTION('',(0.E0,-1.E0,0.E0)); -#541=AXIS2_PLACEMENT_3D('',#538,#539,#540); -#542=PLANE('',#541); -#543=ORIENTED_EDGE('',*,*,#441,.T.); -#545=ORIENTED_EDGE('',*,*,#544,.T.); -#546=ORIENTED_EDGE('',*,*,#477,.F.); -#547=ORIENTED_EDGE('',*,*,#531,.F.); -#548=EDGE_LOOP('','',(#543,#545,#546,#547)); -#549=FACE_OUTER_BOUND('',#548,.F.); -#550=ADVANCED_FACE('',(#549),'' ,#542,.F.); - -#551=CARTESIAN_POINT('',(-1.205E3,-5.5E0,7.8E1)); -#552=DIRECTION('',(0.E0,-1.E0,0.E0)); -#553=DIRECTION('',(0.E0,0.E0,-1.E0)); -#554=AXIS2_PLACEMENT_3D('',#551,#552,#553); -#555=PLANE('',#554); -#556=ORIENTED_EDGE('',*,*,#439,.T.); -#557=ORIENTED_EDGE('',*,*,#519,.T.); -#558=ORIENTED_EDGE('',*,*,#479,.F.); -#559=ORIENTED_EDGE('',*,*,#544,.F.); -#560=EDGE_LOOP('','',(#556,#557,#558,#559)); -#561=FACE_OUTER_BOUND('',#560,.F.); -#562=ADVANCED_FACE('',(#561),'' ,#555,.F.); - -#563=CLOSED_SHELL('',(#426,#449,#463,#485,#498,#511,#524,#537,#550,#562)); -#564=MANIFOLD_SOLID_BREP('',#563); -#565=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); -#566=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); -#567=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); -#568=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#567); -#569=(CONVERSION_BASED_UNIT('DEGREE',#568)NAMED_UNIT(#566)PLANE_ANGLE_UNIT()); -#570=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); -#571=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.434971384778E-1),#565, -'closure', -'Maximum model space distance between geometric entities at asserted connectivities'); -#572=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( -(#571))GLOBAL_UNIT_ASSIGNED_CONTEXT((#565,#569,#570))REPRESENTATION_CONTEXT -('ID1','3')); -#573=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); -#574=DIRECTION('',(0.E0,0.E0,1.E0)); -#575=DIRECTION('',(1.E0,0.E0,0.E0)); -#576=AXIS2_PLACEMENT_3D('',#573,#574,#575); -#578=APPLICATION_CONTEXT -('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); -#579=APPLICATION_PROTOCOL_DEFINITION('international standard', -'config_control_design',1994,#578); -#580=DESIGN_CONTEXT('',#578,'design'); -#581=MECHANICAL_CONTEXT('',#578,'mechanical'); -#582=PRODUCT('ROD','ROD','NOT SPECIFIED',(#581)); -#583=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('6','LAST_VERSION',#582, -.MADE.); -#592=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); -#593=DIRECTION('',(0.E0,0.E0,1.E0)); -#594=DIRECTION('',(1.E0,0.E0,0.E0)); -#595=AXIS2_PLACEMENT_3D('',#592,#593,#594); -#596=ITEM_DEFINED_TRANSFORMATION('','',#595,#576); -#597=(REPRESENTATION_RELATIONSHIP('','',#589,#577)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#596)SHAPE_REPRESENTATION_RELATIONSHIP()); -#598=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#597,#591); -#599=DIRECTION('',(1.E0,0.E0,0.E0)); -#600=VECTOR('',#599,3.4E2); -#601=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); -#602=LINE('',#601,#600); -#603=DIRECTION('',(0.E0,0.E0,-1.E0)); -#604=VECTOR('',#603,1.05E2); -#605=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); -#606=LINE('',#605,#604); -#607=DIRECTION('',(-1.E0,0.E0,0.E0)); -#608=VECTOR('',#607,3.4E2); -#609=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); -#610=LINE('',#609,#608); -#611=DIRECTION('',(0.E0,0.E0,1.E0)); -#612=VECTOR('',#611,1.05E2); -#613=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); -#614=LINE('',#613,#612); -#615=DIRECTION('',(0.E0,1.E0,0.E0)); -#616=VECTOR('',#615,4.5E0); -#617=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); -#618=LINE('',#617,#616); -#619=DIRECTION('',(0.E0,1.E0,0.E0)); -#620=VECTOR('',#619,4.5E0); -#621=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); -#622=LINE('',#621,#620); -#623=DIRECTION('',(0.E0,1.E0,0.E0)); -#624=VECTOR('',#623,4.5E0); -#625=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); -#626=LINE('',#625,#624); -#627=DIRECTION('',(0.E0,1.E0,0.E0)); -#628=VECTOR('',#627,4.5E0); -#629=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); -#630=LINE('',#629,#628); -#631=DIRECTION('',(1.E0,0.E0,0.E0)); -#632=VECTOR('',#631,3.4E2); -#633=CARTESIAN_POINT('',(-2.E2,2.25E0,5.25E1)); -#634=LINE('',#633,#632); -#635=DIRECTION('',(0.E0,0.E0,1.E0)); -#636=VECTOR('',#635,1.05E2); -#637=CARTESIAN_POINT('',(-2.E2,2.25E0,-5.25E1)); -#638=LINE('',#637,#636); -#639=DIRECTION('',(-1.E0,0.E0,0.E0)); -#640=VECTOR('',#639,3.4E2); -#641=CARTESIAN_POINT('',(1.4E2,2.25E0,-5.25E1)); -#642=LINE('',#641,#640); -#643=DIRECTION('',(0.E0,0.E0,-1.E0)); -#644=VECTOR('',#643,1.05E2); -#645=CARTESIAN_POINT('',(1.4E2,2.25E0,5.25E1)); -#646=LINE('',#645,#644); -#647=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); -#648=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); -#649=VERTEX_POINT('','',#647); -#650=VERTEX_POINT('','',#648); -#651=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); -#652=VERTEX_POINT('','',#651); -#653=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); -#654=VERTEX_POINT('','',#653); -#655=CARTESIAN_POINT('',(-2.E2,2.25E0,5.25E1)); -#656=CARTESIAN_POINT('',(1.4E2,2.25E0,5.25E1)); -#657=VERTEX_POINT('','',#655); -#658=VERTEX_POINT('','',#656); -#659=CARTESIAN_POINT('',(1.4E2,2.25E0,-5.25E1)); -#660=VERTEX_POINT('','',#659); -#661=CARTESIAN_POINT('',(-2.E2,2.25E0,-5.25E1)); -#662=VERTEX_POINT('','',#661); -#663=CARTESIAN_POINT('',(0.E0,-2.25E0,0.E0)); -#664=DIRECTION('',(0.E0,1.E0,0.E0)); -#665=DIRECTION('',(0.E0,0.E0,-1.E0)); -#666=AXIS2_PLACEMENT_3D('',#663,#664,#665); -#667=PLANE('',#666); -#669=ORIENTED_EDGE('',*,*,#668,.T.); -#671=ORIENTED_EDGE('',*,*,#670,.T.); -#673=ORIENTED_EDGE('',*,*,#672,.T.); -#675=ORIENTED_EDGE('',*,*,#674,.T.); -#676=EDGE_LOOP('','',(#669,#671,#673,#675)); -#677=FACE_OUTER_BOUND('',#676,.F.); -#678=ADVANCED_FACE('',(#677),'' ,#667,.F.); - -#679=CARTESIAN_POINT('',(-2.E2,-2.25E0,5.25E1)); -#680=DIRECTION('',(0.E0,0.E0,1.E0)); -#681=DIRECTION('',(1.E0,0.E0,0.E0)); -#682=AXIS2_PLACEMENT_3D('',#679,#680,#681); -#683=PLANE('',#682); -#684=ORIENTED_EDGE('',*,*,#668,.F.); -#686=ORIENTED_EDGE('',*,*,#685,.T.); -#688=ORIENTED_EDGE('',*,*,#687,.T.); -#690=ORIENTED_EDGE('',*,*,#689,.F.); -#691=EDGE_LOOP('','',(#684,#686,#688,#690)); -#692=FACE_OUTER_BOUND('',#691,.F.); -#693=ADVANCED_FACE('',(#692),'' ,#683,.T.); - -#694=CARTESIAN_POINT('',(-2.E2,-2.25E0,-5.25E1)); -#695=DIRECTION('',(-1.E0,0.E0,0.E0)); -#696=DIRECTION('',(0.E0,0.E0,1.E0)); -#697=AXIS2_PLACEMENT_3D('',#694,#695,#696); -#698=PLANE('',#697); -#699=ORIENTED_EDGE('',*,*,#674,.F.); -#701=ORIENTED_EDGE('',*,*,#700,.T.); -#703=ORIENTED_EDGE('',*,*,#702,.T.); -#704=ORIENTED_EDGE('',*,*,#685,.F.); -#705=EDGE_LOOP('','',(#699,#701,#703,#704)); -#706=FACE_OUTER_BOUND('',#705,.F.); -#707=ADVANCED_FACE('',(#706),'' ,#698,.T.); - -#708=CARTESIAN_POINT('',(1.4E2,-2.25E0,-5.25E1)); -#709=DIRECTION('',(0.E0,0.E0,-1.E0)); -#710=DIRECTION('',(-1.E0,0.E0,0.E0)); -#711=AXIS2_PLACEMENT_3D('',#708,#709,#710); -#712=PLANE('',#711); -#713=ORIENTED_EDGE('',*,*,#672,.F.); -#715=ORIENTED_EDGE('',*,*,#714,.T.); -#717=ORIENTED_EDGE('',*,*,#716,.T.); -#718=ORIENTED_EDGE('',*,*,#700,.F.); -#719=EDGE_LOOP('','',(#713,#715,#717,#718)); -#720=FACE_OUTER_BOUND('',#719,.F.); -#721=ADVANCED_FACE('',(#720),'' ,#712,.T.); - -#722=CARTESIAN_POINT('',(1.4E2,-2.25E0,5.25E1)); -#723=DIRECTION('',(1.E0,0.E0,0.E0)); -#724=DIRECTION('',(0.E0,0.E0,-1.E0)); -#725=AXIS2_PLACEMENT_3D('',#722,#723,#724); -#726=PLANE('',#725); -#727=ORIENTED_EDGE('',*,*,#670,.F.); -#728=ORIENTED_EDGE('',*,*,#689,.T.); -#730=ORIENTED_EDGE('',*,*,#729,.T.); -#731=ORIENTED_EDGE('',*,*,#714,.F.); -#732=EDGE_LOOP('','',(#727,#728,#730,#731)); -#733=FACE_OUTER_BOUND('',#732,.F.); -#734=ADVANCED_FACE('',(#733),'' ,#726,.T.); - -#735=CARTESIAN_POINT('',(0.E0,2.25E0,0.E0)); -#736=DIRECTION('',(0.E0,1.E0,0.E0)); -#737=DIRECTION('',(0.E0,0.E0,-1.E0)); -#738=AXIS2_PLACEMENT_3D('',#735,#736,#737); -#739=PLANE('',#738); -#740=ORIENTED_EDGE('',*,*,#687,.F.); -#741=ORIENTED_EDGE('',*,*,#702,.F.); -#742=ORIENTED_EDGE('',*,*,#716,.F.); -#743=ORIENTED_EDGE('',*,*,#729,.F.); -#744=EDGE_LOOP('','',(#740,#741,#742,#743)); -#745=FACE_OUTER_BOUND('',#744,.F.); -#746=ADVANCED_FACE('',(#745),'' ,#739,.T.); - -#747=CLOSED_SHELL('',(#678,#693,#707,#721,#734,#746)); -#748=MANIFOLD_SOLID_BREP('',#747); -#749=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); -#750=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); -#751=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); -#752=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2),#751); -#753=(CONVERSION_BASED_UNIT('DEGREE',#752)NAMED_UNIT(#750)PLANE_ANGLE_UNIT()); -#754=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); -#755=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.434971384778E-1),#749, -'closure', -'Maximum model space distance between geometric entities at asserted connectivities'); -#756=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( -(#755))GLOBAL_UNIT_ASSIGNED_CONTEXT((#749,#753,#754))REPRESENTATION_CONTEXT -('ID2','3')); -#757=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); -#758=DIRECTION('',(0.E0,0.E0,1.E0)); -#759=DIRECTION('',(1.E0,0.E0,0.E0)); -#760=AXIS2_PLACEMENT_3D('',#757,#758,#759); -#762=APPLICATION_CONTEXT -('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); -#763=APPLICATION_PROTOCOL_DEFINITION('international standard', -'config_control_design',1994,#762); -#764=DESIGN_CONTEXT('',#762,'design'); -#765=MECHANICAL_CONTEXT('',#762,'mechanical'); -#766=PRODUCT('MODULE','MODULE','NOT SPECIFIED',(#765)); -#767=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('5','LAST_VERSION',#766, -.MADE.); -#773=CARTESIAN_POINT('',(9.88E2,6.E0,0.E0)); -#774=DIRECTION('',(0.E0,0.E0,1.E0)); -#775=DIRECTION('',(1.E0,0.E0,0.E0)); -#776=AXIS2_PLACEMENT_3D('',#773,#774,#775); -#777=ITEM_DEFINED_TRANSFORMATION('','',#776,#760); -#778=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#777)SHAPE_REPRESENTATION_RELATIONSHIP()); -#779=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#778,#772); -#782=CARTESIAN_POINT('',(4.94E2,6.E0,0.E0)); -#783=DIRECTION('',(0.E0,0.E0,1.E0)); -#784=DIRECTION('',(1.E0,0.E0,0.E0)); -#785=AXIS2_PLACEMENT_3D('',#782,#783,#784); -#786=ITEM_DEFINED_TRANSFORMATION('','',#785,#760); -#787=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#786)SHAPE_REPRESENTATION_RELATIONSHIP()); -#788=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#787,#781); -#791=CARTESIAN_POINT('',(0.E0,6.E0,0.E0)); -#792=DIRECTION('',(0.E0,0.E0,1.E0)); -#793=DIRECTION('',(1.E0,0.E0,0.E0)); -#794=AXIS2_PLACEMENT_3D('',#791,#792,#793); -#795=ITEM_DEFINED_TRANSFORMATION('','',#794,#760); -#796=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#795)SHAPE_REPRESENTATION_RELATIONSHIP()); -#797=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#796,#790); -#800=CARTESIAN_POINT('',(-4.94E2,6.E0,0.E0)); -#801=DIRECTION('',(0.E0,0.E0,1.E0)); -#802=DIRECTION('',(1.E0,0.E0,0.E0)); -#803=AXIS2_PLACEMENT_3D('',#800,#801,#802); -#804=ITEM_DEFINED_TRANSFORMATION('','',#803,#760); -#805=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#804)SHAPE_REPRESENTATION_RELATIONSHIP()); -#806=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#805,#799); -#809=CARTESIAN_POINT('',(-9.88E2,6.E0,0.E0)); -#810=DIRECTION('',(0.E0,0.E0,1.E0)); -#811=DIRECTION('',(1.E0,0.E0,0.E0)); -#812=AXIS2_PLACEMENT_3D('',#809,#810,#811); -#813=ITEM_DEFINED_TRANSFORMATION('','',#812,#760); -#814=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#813)SHAPE_REPRESENTATION_RELATIONSHIP()); -#815=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#814,#808); -#818=CARTESIAN_POINT('',(7.41E2,-6.E0,0.E0)); -#819=DIRECTION('',(0.E0,0.E0,1.E0)); -#820=DIRECTION('',(1.E0,0.E0,0.E0)); -#821=AXIS2_PLACEMENT_3D('',#818,#819,#820); -#822=ITEM_DEFINED_TRANSFORMATION('','',#821,#760); -#823=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#822)SHAPE_REPRESENTATION_RELATIONSHIP()); -#824=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#823,#817); -#827=CARTESIAN_POINT('',(2.47E2,-6.E0,0.E0)); -#828=DIRECTION('',(0.E0,0.E0,1.E0)); -#829=DIRECTION('',(1.E0,0.E0,0.E0)); -#830=AXIS2_PLACEMENT_3D('',#827,#828,#829); -#831=ITEM_DEFINED_TRANSFORMATION('','',#830,#760); -#832=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#831)SHAPE_REPRESENTATION_RELATIONSHIP()); -#833=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#832,#826); -#836=CARTESIAN_POINT('',(-2.47E2,-6.E0,0.E0)); -#837=DIRECTION('',(0.E0,0.E0,1.E0)); -#838=DIRECTION('',(1.E0,0.E0,0.E0)); -#839=AXIS2_PLACEMENT_3D('',#836,#837,#838); -#840=ITEM_DEFINED_TRANSFORMATION('','',#839,#760); -#841=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#840)SHAPE_REPRESENTATION_RELATIONSHIP()); -#842=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#841,#835); -#845=CARTESIAN_POINT('',(-7.41E2,-6.E0,0.E0)); -#846=DIRECTION('',(0.E0,0.E0,1.E0)); -#847=DIRECTION('',(1.E0,0.E0,0.E0)); -#848=AXIS2_PLACEMENT_3D('',#845,#846,#847); -#849=ITEM_DEFINED_TRANSFORMATION('','',#848,#760); -#850=(REPRESENTATION_RELATIONSHIP('','',#589,#761)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#849)SHAPE_REPRESENTATION_RELATIONSHIP()); -#851=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#850,#844); -#852=DIRECTION('',(-1.E0,0.E0,0.E0)); -#853=VECTOR('',#852,1.6E1); -#854=CARTESIAN_POINT('',(7.E0,-5.E0,-7.8E1)); -#855=LINE('',#854,#853); -#856=DIRECTION('',(0.E0,0.E0,1.E0)); -#857=VECTOR('',#856,1.56E2); -#858=CARTESIAN_POINT('',(-9.E0,-5.E0,-7.8E1)); -#859=LINE('',#858,#857); -#860=DIRECTION('',(1.E0,0.E0,0.E0)); -#861=VECTOR('',#860,1.6E1); -#862=CARTESIAN_POINT('',(-9.E0,-5.E0,7.8E1)); -#863=LINE('',#862,#861); -#864=DIRECTION('',(0.E0,0.E0,-1.E0)); -#865=VECTOR('',#864,1.56E2); -#866=CARTESIAN_POINT('',(7.E0,-5.E0,7.8E1)); -#867=LINE('',#866,#865); -#868=DIRECTION('',(0.E0,1.E0,0.E0)); -#869=VECTOR('',#868,1.E1); -#870=CARTESIAN_POINT('',(7.E0,-5.E0,-7.8E1)); -#871=LINE('',#870,#869); -#872=DIRECTION('',(0.E0,1.E0,0.E0)); -#873=VECTOR('',#872,1.E1); -#874=CARTESIAN_POINT('',(7.E0,-5.E0,7.8E1)); -#875=LINE('',#874,#873); -#876=DIRECTION('',(0.E0,1.E0,0.E0)); -#877=VECTOR('',#876,1.E1); -#878=CARTESIAN_POINT('',(-9.E0,-5.E0,7.8E1)); -#879=LINE('',#878,#877); -#880=DIRECTION('',(0.E0,1.E0,0.E0)); -#881=VECTOR('',#880,1.E1); -#882=CARTESIAN_POINT('',(-9.E0,-5.E0,-7.8E1)); -#883=LINE('',#882,#881); -#884=DIRECTION('',(-1.E0,0.E0,0.E0)); -#885=VECTOR('',#884,1.6E1); -#886=CARTESIAN_POINT('',(7.E0,5.E0,-7.8E1)); -#887=LINE('',#886,#885); -#888=DIRECTION('',(0.E0,0.E0,-1.E0)); -#889=VECTOR('',#888,1.56E2); -#890=CARTESIAN_POINT('',(7.E0,5.E0,7.8E1)); -#891=LINE('',#890,#889); -#892=DIRECTION('',(1.E0,0.E0,0.E0)); -#893=VECTOR('',#892,1.6E1); -#894=CARTESIAN_POINT('',(-9.E0,5.E0,7.8E1)); -#895=LINE('',#894,#893); -#896=DIRECTION('',(0.E0,0.E0,1.E0)); -#897=VECTOR('',#896,1.56E2); -#898=CARTESIAN_POINT('',(-9.E0,5.E0,-7.8E1)); -#899=LINE('',#898,#897); -#900=DIRECTION('',(-1.E0,0.E0,0.E0)); -#901=VECTOR('',#900,1.3E1); -#902=CARTESIAN_POINT('',(5.5E0,5.E0,-7.65E1)); -#903=LINE('',#902,#901); -#904=DIRECTION('',(0.E0,0.E0,1.E0)); -#905=VECTOR('',#904,1.25E1); -#906=CARTESIAN_POINT('',(-7.5E0,5.E0,-7.65E1)); -#907=LINE('',#906,#905); -#908=DIRECTION('',(1.E0,0.E0,0.E0)); -#909=VECTOR('',#908,1.3E1); -#910=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.4E1)); -#911=LINE('',#910,#909); -#912=DIRECTION('',(0.E0,0.E0,-1.E0)); -#913=VECTOR('',#912,1.25E1); -#914=CARTESIAN_POINT('',(5.5E0,5.E0,-6.4E1)); -#915=LINE('',#914,#913); -#916=DIRECTION('',(-1.E0,0.E0,0.E0)); -#917=VECTOR('',#916,1.3E1); -#918=CARTESIAN_POINT('',(5.5E0,5.E0,6.25E1)); -#919=LINE('',#918,#917); -#920=DIRECTION('',(0.E0,0.E0,1.E0)); -#921=VECTOR('',#920,1.4E1); -#922=CARTESIAN_POINT('',(-7.5E0,5.E0,6.25E1)); -#923=LINE('',#922,#921); -#924=DIRECTION('',(1.E0,0.E0,0.E0)); -#925=VECTOR('',#924,1.3E1); -#926=CARTESIAN_POINT('',(-7.5E0,5.E0,7.65E1)); -#927=LINE('',#926,#925); -#928=DIRECTION('',(0.E0,0.E0,-1.E0)); -#929=VECTOR('',#928,1.4E1); -#930=CARTESIAN_POINT('',(5.5E0,5.E0,7.65E1)); -#931=LINE('',#930,#929); -#932=DIRECTION('',(0.E0,1.E0,0.E0)); -#933=VECTOR('',#932,1.5E1); -#934=CARTESIAN_POINT('',(5.5E0,5.E0,-7.65E1)); -#935=LINE('',#934,#933); -#936=DIRECTION('',(0.E0,1.E0,0.E0)); -#937=VECTOR('',#936,1.5E1); -#938=CARTESIAN_POINT('',(5.5E0,5.E0,-6.4E1)); -#939=LINE('',#938,#937); -#940=DIRECTION('',(0.E0,1.E0,0.E0)); -#941=VECTOR('',#940,1.5E1); -#942=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.4E1)); -#943=LINE('',#942,#941); -#944=DIRECTION('',(0.E0,1.E0,0.E0)); -#945=VECTOR('',#944,1.5E1); -#946=CARTESIAN_POINT('',(-7.5E0,5.E0,-7.65E1)); -#947=LINE('',#946,#945); -#948=DIRECTION('',(-1.E0,0.E0,0.E0)); -#949=VECTOR('',#948,1.3E1); -#950=CARTESIAN_POINT('',(5.5E0,2.E1,6.25E1)); -#951=LINE('',#950,#949); -#952=DIRECTION('',(0.E0,0.E0,-1.E0)); -#953=VECTOR('',#952,1.4E1); -#954=CARTESIAN_POINT('',(5.5E0,2.E1,7.65E1)); -#955=LINE('',#954,#953); -#956=DIRECTION('',(1.E0,0.E0,0.E0)); -#957=VECTOR('',#956,1.3E1); -#958=CARTESIAN_POINT('',(-7.5E0,2.E1,7.65E1)); -#959=LINE('',#958,#957); -#960=DIRECTION('',(0.E0,0.E0,1.E0)); -#961=VECTOR('',#960,1.4E1); -#962=CARTESIAN_POINT('',(-7.5E0,2.E1,6.25E1)); -#963=LINE('',#962,#961); -#964=DIRECTION('',(-1.E0,0.E0,0.E0)); -#965=VECTOR('',#964,1.3E1); -#966=CARTESIAN_POINT('',(5.5E0,2.E1,-7.65E1)); -#967=LINE('',#966,#965); -#968=DIRECTION('',(0.E0,0.E0,-1.E0)); -#969=VECTOR('',#968,1.25E1); -#970=CARTESIAN_POINT('',(5.5E0,2.E1,-6.4E1)); -#971=LINE('',#970,#969); -#972=DIRECTION('',(1.E0,0.E0,0.E0)); -#973=VECTOR('',#972,1.3E1); -#974=CARTESIAN_POINT('',(-7.5E0,2.E1,-6.4E1)); -#975=LINE('',#974,#973); -#976=DIRECTION('',(0.E0,0.E0,1.E0)); -#977=VECTOR('',#976,1.25E1); -#978=CARTESIAN_POINT('',(-7.5E0,2.E1,-7.65E1)); -#979=LINE('',#978,#977); -#980=DIRECTION('',(-1.E0,0.E0,0.E0)); -#981=VECTOR('',#980,1.E1); -#982=CARTESIAN_POINT('',(4.E0,2.E1,-7.5E1)); -#983=LINE('',#982,#981); -#984=DIRECTION('',(0.E0,0.E0,1.E0)); -#985=VECTOR('',#984,9.5E0); -#986=CARTESIAN_POINT('',(-6.E0,2.E1,-7.5E1)); -#987=LINE('',#986,#985); -#988=DIRECTION('',(1.E0,0.E0,0.E0)); -#989=VECTOR('',#988,1.E1); -#990=CARTESIAN_POINT('',(-6.E0,2.E1,-6.55E1)); -#991=LINE('',#990,#989); -#992=DIRECTION('',(0.E0,0.E0,-1.E0)); -#993=VECTOR('',#992,9.5E0); -#994=CARTESIAN_POINT('',(4.E0,2.E1,-6.55E1)); -#995=LINE('',#994,#993); -#996=DIRECTION('',(-1.E0,0.E0,0.E0)); -#997=VECTOR('',#996,1.E1); -#998=CARTESIAN_POINT('',(4.E0,2.E1,6.4E1)); -#999=LINE('',#998,#997); -#1000=DIRECTION('',(0.E0,0.E0,1.E0)); -#1001=VECTOR('',#1000,1.1E1); -#1002=CARTESIAN_POINT('',(-6.E0,2.E1,6.4E1)); -#1003=LINE('',#1002,#1001); -#1004=DIRECTION('',(1.E0,0.E0,0.E0)); -#1005=VECTOR('',#1004,1.E1); -#1006=CARTESIAN_POINT('',(-6.E0,2.E1,7.5E1)); -#1007=LINE('',#1006,#1005); -#1008=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1009=VECTOR('',#1008,1.1E1); -#1010=CARTESIAN_POINT('',(4.E0,2.E1,7.5E1)); -#1011=LINE('',#1010,#1009); -#1012=DIRECTION('',(0.E0,1.E0,0.E0)); -#1013=VECTOR('',#1012,1.5E1); -#1014=CARTESIAN_POINT('',(5.5E0,5.E0,6.25E1)); -#1015=LINE('',#1014,#1013); -#1016=DIRECTION('',(0.E0,1.E0,0.E0)); -#1017=VECTOR('',#1016,1.5E1); -#1018=CARTESIAN_POINT('',(5.5E0,5.E0,7.65E1)); -#1019=LINE('',#1018,#1017); -#1020=DIRECTION('',(0.E0,1.E0,0.E0)); -#1021=VECTOR('',#1020,1.5E1); -#1022=CARTESIAN_POINT('',(-7.5E0,5.E0,7.65E1)); -#1023=LINE('',#1022,#1021); -#1024=DIRECTION('',(0.E0,1.E0,0.E0)); -#1025=VECTOR('',#1024,1.5E1); -#1026=CARTESIAN_POINT('',(-7.5E0,5.E0,6.25E1)); -#1027=LINE('',#1026,#1025); -#1028=DIRECTION('',(0.E0,1.E0,0.E0)); -#1029=VECTOR('',#1028,1.65E1); -#1030=CARTESIAN_POINT('',(4.E0,3.5E0,-7.5E1)); -#1031=LINE('',#1030,#1029); -#1032=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1033=VECTOR('',#1032,1.3E1); -#1034=CARTESIAN_POINT('',(5.5E0,3.5E0,-7.65E1)); -#1035=LINE('',#1034,#1033); -#1036=DIRECTION('',(0.E0,0.E0,1.E0)); -#1037=VECTOR('',#1036,1.53E2); -#1038=CARTESIAN_POINT('',(-7.5E0,3.5E0,-7.65E1)); -#1039=LINE('',#1038,#1037); -#1040=DIRECTION('',(1.E0,0.E0,0.E0)); -#1041=VECTOR('',#1040,1.3E1); -#1042=CARTESIAN_POINT('',(-7.5E0,3.5E0,7.65E1)); -#1043=LINE('',#1042,#1041); -#1044=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1045=VECTOR('',#1044,1.53E2); -#1046=CARTESIAN_POINT('',(5.5E0,3.5E0,7.65E1)); -#1047=LINE('',#1046,#1045); -#1048=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1049=VECTOR('',#1048,1.E1); -#1050=CARTESIAN_POINT('',(4.E0,3.5E0,-7.5E1)); -#1051=LINE('',#1050,#1049); -#1052=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1053=VECTOR('',#1052,9.5E0); -#1054=CARTESIAN_POINT('',(4.E0,3.5E0,-6.55E1)); -#1055=LINE('',#1054,#1053); -#1056=DIRECTION('',(1.E0,0.E0,0.E0)); -#1057=VECTOR('',#1056,1.E1); -#1058=CARTESIAN_POINT('',(-6.E0,3.5E0,-6.55E1)); -#1059=LINE('',#1058,#1057); -#1060=DIRECTION('',(0.E0,0.E0,1.E0)); -#1061=VECTOR('',#1060,9.5E0); -#1062=CARTESIAN_POINT('',(-6.E0,3.5E0,-7.5E1)); -#1063=LINE('',#1062,#1061); -#1064=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1065=VECTOR('',#1064,1.E1); -#1066=CARTESIAN_POINT('',(4.E0,3.5E0,6.4E1)); -#1067=LINE('',#1066,#1065); -#1068=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1069=VECTOR('',#1068,1.1E1); -#1070=CARTESIAN_POINT('',(4.E0,3.5E0,7.5E1)); -#1071=LINE('',#1070,#1069); -#1072=DIRECTION('',(1.E0,0.E0,0.E0)); -#1073=VECTOR('',#1072,1.E1); -#1074=CARTESIAN_POINT('',(-6.E0,3.5E0,7.5E1)); -#1075=LINE('',#1074,#1073); -#1076=DIRECTION('',(0.E0,0.E0,1.E0)); -#1077=VECTOR('',#1076,1.1E1); -#1078=CARTESIAN_POINT('',(-6.E0,3.5E0,6.4E1)); -#1079=LINE('',#1078,#1077); -#1080=DIRECTION('',(0.E0,1.E0,0.E0)); -#1081=VECTOR('',#1080,7.E0); -#1082=CARTESIAN_POINT('',(5.5E0,-3.5E0,-7.65E1)); -#1083=LINE('',#1082,#1081); -#1084=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1085=VECTOR('',#1084,1.3E1); -#1086=CARTESIAN_POINT('',(5.5E0,-3.5E0,-7.65E1)); -#1087=LINE('',#1086,#1085); -#1088=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1089=VECTOR('',#1088,1.53E2); -#1090=CARTESIAN_POINT('',(5.5E0,-3.5E0,7.65E1)); -#1091=LINE('',#1090,#1089); -#1092=DIRECTION('',(1.E0,0.E0,0.E0)); -#1093=VECTOR('',#1092,1.3E1); -#1094=CARTESIAN_POINT('',(-7.5E0,-3.5E0,7.65E1)); -#1095=LINE('',#1094,#1093); -#1096=DIRECTION('',(0.E0,0.E0,1.E0)); -#1097=VECTOR('',#1096,1.53E2); -#1098=CARTESIAN_POINT('',(-7.5E0,-3.5E0,-7.65E1)); -#1099=LINE('',#1098,#1097); -#1100=DIRECTION('',(0.E0,1.E0,0.E0)); -#1101=VECTOR('',#1100,7.E0); -#1102=CARTESIAN_POINT('',(5.5E0,-3.5E0,7.65E1)); -#1103=LINE('',#1102,#1101); -#1104=DIRECTION('',(0.E0,1.E0,0.E0)); -#1105=VECTOR('',#1104,7.E0); -#1106=CARTESIAN_POINT('',(-7.5E0,-3.5E0,7.65E1)); -#1107=LINE('',#1106,#1105); -#1108=DIRECTION('',(0.E0,1.E0,0.E0)); -#1109=VECTOR('',#1108,7.E0); -#1110=CARTESIAN_POINT('',(-7.5E0,-3.5E0,-7.65E1)); -#1111=LINE('',#1110,#1109); -#1112=DIRECTION('',(0.E0,1.E0,0.E0)); -#1113=VECTOR('',#1112,1.65E1); -#1114=CARTESIAN_POINT('',(4.E0,3.5E0,-6.55E1)); -#1115=LINE('',#1114,#1113); -#1116=DIRECTION('',(0.E0,1.E0,0.E0)); -#1117=VECTOR('',#1116,1.65E1); -#1118=CARTESIAN_POINT('',(-6.E0,3.5E0,-6.55E1)); -#1119=LINE('',#1118,#1117); -#1120=DIRECTION('',(0.E0,1.E0,0.E0)); -#1121=VECTOR('',#1120,1.65E1); -#1122=CARTESIAN_POINT('',(-6.E0,3.5E0,-7.5E1)); -#1123=LINE('',#1122,#1121); -#1124=DIRECTION('',(0.E0,1.E0,0.E0)); -#1125=VECTOR('',#1124,1.65E1); -#1126=CARTESIAN_POINT('',(4.E0,3.5E0,6.4E1)); -#1127=LINE('',#1126,#1125); -#1128=DIRECTION('',(0.E0,1.E0,0.E0)); -#1129=VECTOR('',#1128,1.65E1); -#1130=CARTESIAN_POINT('',(-6.E0,3.5E0,6.4E1)); -#1131=LINE('',#1130,#1129); -#1132=DIRECTION('',(0.E0,1.E0,0.E0)); -#1133=VECTOR('',#1132,1.65E1); -#1134=CARTESIAN_POINT('',(-6.E0,3.5E0,7.5E1)); -#1135=LINE('',#1134,#1133); -#1136=DIRECTION('',(0.E0,1.E0,0.E0)); -#1137=VECTOR('',#1136,1.65E1); -#1138=CARTESIAN_POINT('',(4.E0,3.5E0,7.5E1)); -#1139=LINE('',#1138,#1137); -#1140=CARTESIAN_POINT('',(7.E0,-5.E0,-7.8E1)); -#1141=CARTESIAN_POINT('',(-9.E0,-5.E0,-7.8E1)); -#1142=VERTEX_POINT('','',#1140); -#1143=VERTEX_POINT('','',#1141); -#1144=CARTESIAN_POINT('',(-9.E0,-5.E0,7.8E1)); -#1145=VERTEX_POINT('','',#1144); -#1146=CARTESIAN_POINT('',(7.E0,-5.E0,7.8E1)); -#1147=VERTEX_POINT('','',#1146); -#1148=CARTESIAN_POINT('',(7.E0,5.E0,-7.8E1)); -#1149=CARTESIAN_POINT('',(-9.E0,5.E0,-7.8E1)); -#1150=VERTEX_POINT('','',#1148); -#1151=VERTEX_POINT('','',#1149); -#1152=CARTESIAN_POINT('',(-9.E0,5.E0,7.8E1)); -#1153=VERTEX_POINT('','',#1152); -#1154=CARTESIAN_POINT('',(7.E0,5.E0,7.8E1)); -#1155=VERTEX_POINT('','',#1154); -#1156=CARTESIAN_POINT('',(5.5E0,-3.5E0,-7.65E1)); -#1157=CARTESIAN_POINT('',(-7.5E0,-3.5E0,-7.65E1)); -#1158=VERTEX_POINT('','',#1156); -#1159=VERTEX_POINT('','',#1157); -#1160=CARTESIAN_POINT('',(-7.5E0,-3.5E0,7.65E1)); -#1161=VERTEX_POINT('','',#1160); -#1162=CARTESIAN_POINT('',(5.5E0,-3.5E0,7.65E1)); -#1163=VERTEX_POINT('','',#1162); -#1164=CARTESIAN_POINT('',(-7.5E0,3.5E0,7.65E1)); -#1165=CARTESIAN_POINT('',(5.5E0,3.5E0,7.65E1)); -#1166=VERTEX_POINT('','',#1164); -#1167=VERTEX_POINT('','',#1165); -#1168=CARTESIAN_POINT('',(5.5E0,2.E1,-7.65E1)); -#1169=CARTESIAN_POINT('',(-7.5E0,2.E1,-7.65E1)); -#1170=VERTEX_POINT('','',#1168); -#1171=VERTEX_POINT('','',#1169); -#1172=CARTESIAN_POINT('',(-7.5E0,2.E1,-6.4E1)); -#1173=VERTEX_POINT('','',#1172); -#1174=CARTESIAN_POINT('',(5.5E0,2.E1,-6.4E1)); -#1175=VERTEX_POINT('','',#1174); -#1176=CARTESIAN_POINT('',(5.5E0,5.E0,-7.65E1)); -#1177=CARTESIAN_POINT('',(-7.5E0,5.E0,-7.65E1)); -#1178=VERTEX_POINT('','',#1176); -#1179=VERTEX_POINT('','',#1177); -#1180=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.4E1)); -#1181=VERTEX_POINT('','',#1180); -#1182=CARTESIAN_POINT('',(5.5E0,5.E0,-6.4E1)); -#1183=VERTEX_POINT('','',#1182); -#1184=CARTESIAN_POINT('',(5.5E0,3.5E0,-7.65E1)); -#1185=CARTESIAN_POINT('',(-7.5E0,3.5E0,-7.65E1)); -#1186=VERTEX_POINT('','',#1184); -#1187=VERTEX_POINT('','',#1185); -#1188=CARTESIAN_POINT('',(4.E0,2.E1,-7.5E1)); -#1189=CARTESIAN_POINT('',(-6.E0,2.E1,-7.5E1)); -#1190=VERTEX_POINT('','',#1188); -#1191=VERTEX_POINT('','',#1189); -#1192=CARTESIAN_POINT('',(-6.E0,2.E1,-6.55E1)); -#1193=VERTEX_POINT('','',#1192); -#1194=CARTESIAN_POINT('',(4.E0,2.E1,-6.55E1)); -#1195=VERTEX_POINT('','',#1194); -#1196=CARTESIAN_POINT('',(4.E0,3.5E0,-7.5E1)); -#1197=CARTESIAN_POINT('',(-6.E0,3.5E0,-7.5E1)); -#1198=VERTEX_POINT('','',#1196); -#1199=VERTEX_POINT('','',#1197); -#1200=CARTESIAN_POINT('',(-6.E0,3.5E0,-6.55E1)); -#1201=VERTEX_POINT('','',#1200); -#1202=CARTESIAN_POINT('',(4.E0,3.5E0,-6.55E1)); -#1203=VERTEX_POINT('','',#1202); -#1204=CARTESIAN_POINT('',(5.5E0,2.E1,6.25E1)); -#1205=CARTESIAN_POINT('',(-7.5E0,2.E1,6.25E1)); -#1206=VERTEX_POINT('','',#1204); -#1207=VERTEX_POINT('','',#1205); -#1208=CARTESIAN_POINT('',(-7.5E0,2.E1,7.65E1)); -#1209=VERTEX_POINT('','',#1208); -#1210=CARTESIAN_POINT('',(5.5E0,2.E1,7.65E1)); -#1211=VERTEX_POINT('','',#1210); -#1212=CARTESIAN_POINT('',(5.5E0,5.E0,6.25E1)); -#1213=CARTESIAN_POINT('',(-7.5E0,5.E0,6.25E1)); -#1214=VERTEX_POINT('','',#1212); -#1215=VERTEX_POINT('','',#1213); -#1216=CARTESIAN_POINT('',(-7.5E0,5.E0,7.65E1)); -#1217=VERTEX_POINT('','',#1216); -#1218=CARTESIAN_POINT('',(5.5E0,5.E0,7.65E1)); -#1219=VERTEX_POINT('','',#1218); -#1220=CARTESIAN_POINT('',(4.E0,2.E1,6.4E1)); -#1221=CARTESIAN_POINT('',(-6.E0,2.E1,6.4E1)); -#1222=VERTEX_POINT('','',#1220); -#1223=VERTEX_POINT('','',#1221); -#1224=CARTESIAN_POINT('',(-6.E0,2.E1,7.5E1)); -#1225=VERTEX_POINT('','',#1224); -#1226=CARTESIAN_POINT('',(4.E0,2.E1,7.5E1)); -#1227=VERTEX_POINT('','',#1226); -#1228=CARTESIAN_POINT('',(4.E0,3.5E0,6.4E1)); -#1229=CARTESIAN_POINT('',(-6.E0,3.5E0,6.4E1)); -#1230=VERTEX_POINT('','',#1228); -#1231=VERTEX_POINT('','',#1229); -#1232=CARTESIAN_POINT('',(-6.E0,3.5E0,7.5E1)); -#1233=VERTEX_POINT('','',#1232); -#1234=CARTESIAN_POINT('',(4.E0,3.5E0,7.5E1)); -#1235=VERTEX_POINT('','',#1234); -#1236=CARTESIAN_POINT('',(0.E0,-5.E0,0.E0)); -#1237=DIRECTION('',(0.E0,1.E0,0.E0)); -#1238=DIRECTION('',(0.E0,0.E0,1.E0)); -#1239=AXIS2_PLACEMENT_3D('',#1236,#1237,#1238); -#1240=PLANE('',#1239); -#1242=ORIENTED_EDGE('',*,*,#1241,.T.); -#1244=ORIENTED_EDGE('',*,*,#1243,.T.); -#1246=ORIENTED_EDGE('',*,*,#1245,.T.); -#1248=ORIENTED_EDGE('',*,*,#1247,.T.); -#1249=EDGE_LOOP('','',(#1242,#1244,#1246,#1248)); -#1250=FACE_OUTER_BOUND('',#1249,.F.); -#1251=ADVANCED_FACE('',(#1250),'' ,#1240,.F.); - -#1252=CARTESIAN_POINT('',(7.E0,-5.E0,-7.8E1)); -#1253=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1254=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1255=AXIS2_PLACEMENT_3D('',#1252,#1253,#1254); -#1256=PLANE('',#1255); -#1257=ORIENTED_EDGE('',*,*,#1241,.F.); -#1259=ORIENTED_EDGE('',*,*,#1258,.T.); -#1261=ORIENTED_EDGE('',*,*,#1260,.T.); -#1263=ORIENTED_EDGE('',*,*,#1262,.F.); -#1264=EDGE_LOOP('','',(#1257,#1259,#1261,#1263)); -#1265=FACE_OUTER_BOUND('',#1264,.F.); -#1266=ADVANCED_FACE('',(#1265),'' ,#1256,.T.); - -#1267=CARTESIAN_POINT('',(7.E0,-5.E0,7.8E1)); -#1268=DIRECTION('',(1.E0,0.E0,0.E0)); -#1269=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1270=AXIS2_PLACEMENT_3D('',#1267,#1268,#1269); -#1271=PLANE('',#1270); -#1272=ORIENTED_EDGE('',*,*,#1247,.F.); -#1274=ORIENTED_EDGE('',*,*,#1273,.T.); -#1276=ORIENTED_EDGE('',*,*,#1275,.T.); -#1277=ORIENTED_EDGE('',*,*,#1258,.F.); -#1278=EDGE_LOOP('','',(#1272,#1274,#1276,#1277)); -#1279=FACE_OUTER_BOUND('',#1278,.F.); -#1280=ADVANCED_FACE('',(#1279),'' ,#1271,.T.); - -#1281=CARTESIAN_POINT('',(-9.E0,-5.E0,7.8E1)); -#1282=DIRECTION('',(0.E0,0.E0,1.E0)); -#1283=DIRECTION('',(1.E0,0.E0,0.E0)); -#1284=AXIS2_PLACEMENT_3D('',#1281,#1282,#1283); -#1285=PLANE('',#1284); -#1286=ORIENTED_EDGE('',*,*,#1245,.F.); -#1288=ORIENTED_EDGE('',*,*,#1287,.T.); -#1290=ORIENTED_EDGE('',*,*,#1289,.T.); -#1291=ORIENTED_EDGE('',*,*,#1273,.F.); -#1292=EDGE_LOOP('','',(#1286,#1288,#1290,#1291)); -#1293=FACE_OUTER_BOUND('',#1292,.F.); -#1294=ADVANCED_FACE('',(#1293),'' ,#1285,.T.); - -#1295=CARTESIAN_POINT('',(-9.E0,-5.E0,-7.8E1)); -#1296=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1297=DIRECTION('',(0.E0,0.E0,1.E0)); -#1298=AXIS2_PLACEMENT_3D('',#1295,#1296,#1297); -#1299=PLANE('',#1298); -#1300=ORIENTED_EDGE('',*,*,#1243,.F.); -#1301=ORIENTED_EDGE('',*,*,#1262,.T.); -#1303=ORIENTED_EDGE('',*,*,#1302,.T.); -#1304=ORIENTED_EDGE('',*,*,#1287,.F.); -#1305=EDGE_LOOP('','',(#1300,#1301,#1303,#1304)); -#1306=FACE_OUTER_BOUND('',#1305,.F.); -#1307=ADVANCED_FACE('',(#1306),'' ,#1299,.T.); - -#1308=CARTESIAN_POINT('',(0.E0,5.E0,0.E0)); -#1309=DIRECTION('',(0.E0,1.E0,0.E0)); -#1310=DIRECTION('',(0.E0,0.E0,1.E0)); -#1311=AXIS2_PLACEMENT_3D('',#1308,#1309,#1310); -#1312=PLANE('',#1311); -#1313=ORIENTED_EDGE('',*,*,#1260,.F.); -#1314=ORIENTED_EDGE('',*,*,#1275,.F.); -#1315=ORIENTED_EDGE('',*,*,#1289,.F.); -#1316=ORIENTED_EDGE('',*,*,#1302,.F.); -#1317=EDGE_LOOP('','',(#1313,#1314,#1315,#1316)); -#1318=FACE_OUTER_BOUND('',#1317,.F.); -#1320=ORIENTED_EDGE('',*,*,#1319,.T.); -#1322=ORIENTED_EDGE('',*,*,#1321,.T.); -#1324=ORIENTED_EDGE('',*,*,#1323,.T.); -#1326=ORIENTED_EDGE('',*,*,#1325,.T.); -#1327=EDGE_LOOP('','',(#1320,#1322,#1324,#1326)); -#1328=FACE_BOUND('',#1327,.F.); -#1330=ORIENTED_EDGE('',*,*,#1329,.T.); -#1332=ORIENTED_EDGE('',*,*,#1331,.T.); -#1334=ORIENTED_EDGE('',*,*,#1333,.T.); -#1336=ORIENTED_EDGE('',*,*,#1335,.T.); -#1337=EDGE_LOOP('','',(#1330,#1332,#1334,#1336)); -#1338=FACE_BOUND('',#1337,.F.); -#1339=ADVANCED_FACE('',(#1318,#1328,#1338),'' ,#1312,.T.); - -#1340=CARTESIAN_POINT('',(5.5E0,5.E0,-7.65E1)); -#1341=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1342=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1343=AXIS2_PLACEMENT_3D('',#1340,#1341,#1342); -#1344=PLANE('',#1343); -#1345=ORIENTED_EDGE('',*,*,#1319,.F.); -#1347=ORIENTED_EDGE('',*,*,#1346,.T.); -#1349=ORIENTED_EDGE('',*,*,#1348,.T.); -#1351=ORIENTED_EDGE('',*,*,#1350,.F.); -#1352=EDGE_LOOP('','',(#1345,#1347,#1349,#1351)); -#1353=FACE_OUTER_BOUND('',#1352,.F.); -#1354=ADVANCED_FACE('',(#1353),'' ,#1344,.T.); - -#1355=CARTESIAN_POINT('',(5.5E0,5.E0,-6.4E1)); -#1356=DIRECTION('',(1.E0,0.E0,0.E0)); -#1357=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1358=AXIS2_PLACEMENT_3D('',#1355,#1356,#1357); -#1359=PLANE('',#1358); -#1360=ORIENTED_EDGE('',*,*,#1325,.F.); -#1362=ORIENTED_EDGE('',*,*,#1361,.T.); -#1364=ORIENTED_EDGE('',*,*,#1363,.T.); -#1365=ORIENTED_EDGE('',*,*,#1346,.F.); -#1366=EDGE_LOOP('','',(#1360,#1362,#1364,#1365)); -#1367=FACE_OUTER_BOUND('',#1366,.F.); -#1368=ADVANCED_FACE('',(#1367),'' ,#1359,.T.); - -#1369=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.4E1)); -#1370=DIRECTION('',(0.E0,0.E0,1.E0)); -#1371=DIRECTION('',(1.E0,0.E0,0.E0)); -#1372=AXIS2_PLACEMENT_3D('',#1369,#1370,#1371); -#1373=PLANE('',#1372); -#1374=ORIENTED_EDGE('',*,*,#1323,.F.); -#1376=ORIENTED_EDGE('',*,*,#1375,.T.); -#1378=ORIENTED_EDGE('',*,*,#1377,.T.); -#1379=ORIENTED_EDGE('',*,*,#1361,.F.); -#1380=EDGE_LOOP('','',(#1374,#1376,#1378,#1379)); -#1381=FACE_OUTER_BOUND('',#1380,.F.); -#1382=ADVANCED_FACE('',(#1381),'' ,#1373,.T.); - -#1383=CARTESIAN_POINT('',(-7.5E0,5.E0,-7.65E1)); -#1384=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1385=DIRECTION('',(0.E0,0.E0,1.E0)); -#1386=AXIS2_PLACEMENT_3D('',#1383,#1384,#1385); -#1387=PLANE('',#1386); -#1388=ORIENTED_EDGE('',*,*,#1321,.F.); -#1389=ORIENTED_EDGE('',*,*,#1350,.T.); -#1391=ORIENTED_EDGE('',*,*,#1390,.T.); -#1392=ORIENTED_EDGE('',*,*,#1375,.F.); -#1393=EDGE_LOOP('','',(#1388,#1389,#1391,#1392)); -#1394=FACE_OUTER_BOUND('',#1393,.F.); -#1395=ADVANCED_FACE('',(#1394),'' ,#1387,.T.); - -#1396=CARTESIAN_POINT('',(0.E0,2.E1,0.E0)); -#1397=DIRECTION('',(0.E0,1.E0,0.E0)); -#1398=DIRECTION('',(0.E0,0.E0,1.E0)); -#1399=AXIS2_PLACEMENT_3D('',#1396,#1397,#1398); -#1400=PLANE('',#1399); -#1402=ORIENTED_EDGE('',*,*,#1401,.F.); -#1404=ORIENTED_EDGE('',*,*,#1403,.F.); -#1406=ORIENTED_EDGE('',*,*,#1405,.F.); -#1408=ORIENTED_EDGE('',*,*,#1407,.F.); -#1409=EDGE_LOOP('','',(#1402,#1404,#1406,#1408)); -#1410=FACE_OUTER_BOUND('',#1409,.F.); -#1412=ORIENTED_EDGE('',*,*,#1411,.T.); -#1414=ORIENTED_EDGE('',*,*,#1413,.T.); -#1416=ORIENTED_EDGE('',*,*,#1415,.T.); -#1418=ORIENTED_EDGE('',*,*,#1417,.T.); -#1419=EDGE_LOOP('','',(#1412,#1414,#1416,#1418)); -#1420=FACE_BOUND('',#1419,.F.); -#1421=ADVANCED_FACE('',(#1410,#1420),'' ,#1400,.T.); - -#1422=CARTESIAN_POINT('',(0.E0,2.E1,0.E0)); -#1423=DIRECTION('',(0.E0,1.E0,0.E0)); -#1424=DIRECTION('',(0.E0,0.E0,1.E0)); -#1425=AXIS2_PLACEMENT_3D('',#1422,#1423,#1424); -#1426=PLANE('',#1425); -#1427=ORIENTED_EDGE('',*,*,#1348,.F.); -#1428=ORIENTED_EDGE('',*,*,#1363,.F.); -#1429=ORIENTED_EDGE('',*,*,#1377,.F.); -#1430=ORIENTED_EDGE('',*,*,#1390,.F.); -#1431=EDGE_LOOP('','',(#1427,#1428,#1429,#1430)); -#1432=FACE_OUTER_BOUND('',#1431,.F.); -#1434=ORIENTED_EDGE('',*,*,#1433,.T.); -#1436=ORIENTED_EDGE('',*,*,#1435,.T.); -#1438=ORIENTED_EDGE('',*,*,#1437,.T.); -#1440=ORIENTED_EDGE('',*,*,#1439,.T.); -#1441=EDGE_LOOP('','',(#1434,#1436,#1438,#1440)); -#1442=FACE_BOUND('',#1441,.F.); -#1443=ADVANCED_FACE('',(#1432,#1442),'' ,#1426,.T.); - -#1444=CARTESIAN_POINT('',(5.5E0,5.E0,6.25E1)); -#1445=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1446=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1447=AXIS2_PLACEMENT_3D('',#1444,#1445,#1446); -#1448=PLANE('',#1447); -#1449=ORIENTED_EDGE('',*,*,#1329,.F.); -#1451=ORIENTED_EDGE('',*,*,#1450,.T.); -#1452=ORIENTED_EDGE('',*,*,#1401,.T.); -#1454=ORIENTED_EDGE('',*,*,#1453,.F.); -#1455=EDGE_LOOP('','',(#1449,#1451,#1452,#1454)); -#1456=FACE_OUTER_BOUND('',#1455,.F.); -#1457=ADVANCED_FACE('',(#1456),'' ,#1448,.T.); - -#1458=CARTESIAN_POINT('',(5.5E0,5.E0,7.65E1)); -#1459=DIRECTION('',(1.E0,0.E0,0.E0)); -#1460=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1461=AXIS2_PLACEMENT_3D('',#1458,#1459,#1460); -#1462=PLANE('',#1461); -#1463=ORIENTED_EDGE('',*,*,#1335,.F.); -#1465=ORIENTED_EDGE('',*,*,#1464,.T.); -#1466=ORIENTED_EDGE('',*,*,#1403,.T.); -#1467=ORIENTED_EDGE('',*,*,#1450,.F.); -#1468=EDGE_LOOP('','',(#1463,#1465,#1466,#1467)); -#1469=FACE_OUTER_BOUND('',#1468,.F.); -#1470=ADVANCED_FACE('',(#1469),'' ,#1462,.T.); - -#1471=CARTESIAN_POINT('',(-7.5E0,5.E0,7.65E1)); -#1472=DIRECTION('',(0.E0,0.E0,1.E0)); -#1473=DIRECTION('',(1.E0,0.E0,0.E0)); -#1474=AXIS2_PLACEMENT_3D('',#1471,#1472,#1473); -#1475=PLANE('',#1474); -#1476=ORIENTED_EDGE('',*,*,#1333,.F.); -#1478=ORIENTED_EDGE('',*,*,#1477,.T.); -#1479=ORIENTED_EDGE('',*,*,#1405,.T.); -#1480=ORIENTED_EDGE('',*,*,#1464,.F.); -#1481=EDGE_LOOP('','',(#1476,#1478,#1479,#1480)); -#1482=FACE_OUTER_BOUND('',#1481,.F.); -#1483=ADVANCED_FACE('',(#1482),'' ,#1475,.T.); - -#1484=CARTESIAN_POINT('',(-7.5E0,5.E0,6.25E1)); -#1485=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1486=DIRECTION('',(0.E0,0.E0,1.E0)); -#1487=AXIS2_PLACEMENT_3D('',#1484,#1485,#1486); -#1488=PLANE('',#1487); -#1489=ORIENTED_EDGE('',*,*,#1331,.F.); -#1490=ORIENTED_EDGE('',*,*,#1453,.T.); -#1491=ORIENTED_EDGE('',*,*,#1407,.T.); -#1492=ORIENTED_EDGE('',*,*,#1477,.F.); -#1493=EDGE_LOOP('','',(#1489,#1490,#1491,#1492)); -#1494=FACE_OUTER_BOUND('',#1493,.F.); -#1495=ADVANCED_FACE('',(#1494),'' ,#1488,.T.); - -#1496=CARTESIAN_POINT('',(5.5E0,5.E0,-7.5E1)); -#1497=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1498=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1499=AXIS2_PLACEMENT_3D('',#1496,#1497,#1498); -#1500=PLANE('',#1499); -#1502=ORIENTED_EDGE('',*,*,#1501,.T.); -#1504=ORIENTED_EDGE('',*,*,#1503,.T.); -#1505=ORIENTED_EDGE('',*,*,#1433,.F.); -#1507=ORIENTED_EDGE('',*,*,#1506,.F.); -#1508=EDGE_LOOP('','',(#1502,#1504,#1505,#1507)); -#1509=FACE_OUTER_BOUND('',#1508,.F.); -#1510=ADVANCED_FACE('',(#1509),'' ,#1500,.F.); - -#1511=CARTESIAN_POINT('',(0.E0,3.5E0,0.E0)); -#1512=DIRECTION('',(0.E0,1.E0,0.E0)); -#1513=DIRECTION('',(0.E0,0.E0,1.E0)); -#1514=AXIS2_PLACEMENT_3D('',#1511,#1512,#1513); -#1515=PLANE('',#1514); -#1517=ORIENTED_EDGE('',*,*,#1516,.T.); -#1519=ORIENTED_EDGE('',*,*,#1518,.T.); -#1521=ORIENTED_EDGE('',*,*,#1520,.T.); -#1523=ORIENTED_EDGE('',*,*,#1522,.T.); -#1524=EDGE_LOOP('','',(#1517,#1519,#1521,#1523)); -#1525=FACE_OUTER_BOUND('',#1524,.F.); -#1526=ORIENTED_EDGE('',*,*,#1501,.F.); -#1528=ORIENTED_EDGE('',*,*,#1527,.F.); -#1530=ORIENTED_EDGE('',*,*,#1529,.F.); -#1532=ORIENTED_EDGE('',*,*,#1531,.F.); -#1533=EDGE_LOOP('','',(#1526,#1528,#1530,#1532)); -#1534=FACE_BOUND('',#1533,.F.); -#1536=ORIENTED_EDGE('',*,*,#1535,.F.); -#1538=ORIENTED_EDGE('',*,*,#1537,.F.); -#1540=ORIENTED_EDGE('',*,*,#1539,.F.); -#1542=ORIENTED_EDGE('',*,*,#1541,.F.); -#1543=EDGE_LOOP('','',(#1536,#1538,#1540,#1542)); -#1544=FACE_BOUND('',#1543,.F.); -#1545=ADVANCED_FACE('',(#1525,#1534,#1544),'' ,#1515,.F.); - -#1546=CARTESIAN_POINT('',(7.E0,-5.E0,-7.65E1)); -#1547=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1548=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1549=AXIS2_PLACEMENT_3D('',#1546,#1547,#1548); -#1550=PLANE('',#1549); -#1552=ORIENTED_EDGE('',*,*,#1551,.T.); -#1554=ORIENTED_EDGE('',*,*,#1553,.T.); -#1555=ORIENTED_EDGE('',*,*,#1516,.F.); -#1557=ORIENTED_EDGE('',*,*,#1556,.F.); -#1558=EDGE_LOOP('','',(#1552,#1554,#1555,#1557)); -#1559=FACE_OUTER_BOUND('',#1558,.F.); -#1560=ADVANCED_FACE('',(#1559),'' ,#1550,.F.); - -#1561=CARTESIAN_POINT('',(0.E0,-3.5E0,0.E0)); -#1562=DIRECTION('',(0.E0,1.E0,0.E0)); -#1563=DIRECTION('',(0.E0,0.E0,1.E0)); -#1564=AXIS2_PLACEMENT_3D('',#1561,#1562,#1563); -#1565=PLANE('',#1564); -#1566=ORIENTED_EDGE('',*,*,#1551,.F.); -#1568=ORIENTED_EDGE('',*,*,#1567,.F.); -#1570=ORIENTED_EDGE('',*,*,#1569,.F.); -#1572=ORIENTED_EDGE('',*,*,#1571,.F.); -#1573=EDGE_LOOP('','',(#1566,#1568,#1570,#1572)); -#1574=FACE_OUTER_BOUND('',#1573,.F.); -#1575=ADVANCED_FACE('',(#1574),'' ,#1565,.T.); - -#1576=CARTESIAN_POINT('',(5.5E0,-5.E0,7.8E1)); -#1577=DIRECTION('',(1.E0,0.E0,0.E0)); -#1578=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1579=AXIS2_PLACEMENT_3D('',#1576,#1577,#1578); -#1580=PLANE('',#1579); -#1581=ORIENTED_EDGE('',*,*,#1567,.T.); -#1582=ORIENTED_EDGE('',*,*,#1556,.T.); -#1583=ORIENTED_EDGE('',*,*,#1522,.F.); -#1585=ORIENTED_EDGE('',*,*,#1584,.F.); -#1586=EDGE_LOOP('','',(#1581,#1582,#1583,#1585)); -#1587=FACE_OUTER_BOUND('',#1586,.F.); -#1588=ADVANCED_FACE('',(#1587),'' ,#1580,.F.); - -#1589=CARTESIAN_POINT('',(-9.E0,-5.E0,7.65E1)); -#1590=DIRECTION('',(0.E0,0.E0,1.E0)); -#1591=DIRECTION('',(1.E0,0.E0,0.E0)); -#1592=AXIS2_PLACEMENT_3D('',#1589,#1590,#1591); -#1593=PLANE('',#1592); -#1594=ORIENTED_EDGE('',*,*,#1569,.T.); -#1595=ORIENTED_EDGE('',*,*,#1584,.T.); -#1596=ORIENTED_EDGE('',*,*,#1520,.F.); -#1598=ORIENTED_EDGE('',*,*,#1597,.F.); -#1599=EDGE_LOOP('','',(#1594,#1595,#1596,#1598)); -#1600=FACE_OUTER_BOUND('',#1599,.F.); -#1601=ADVANCED_FACE('',(#1600),'' ,#1593,.F.); - -#1602=CARTESIAN_POINT('',(-7.5E0,-5.E0,-7.8E1)); -#1603=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1604=DIRECTION('',(0.E0,0.E0,1.E0)); -#1605=AXIS2_PLACEMENT_3D('',#1602,#1603,#1604); -#1606=PLANE('',#1605); -#1607=ORIENTED_EDGE('',*,*,#1571,.T.); -#1608=ORIENTED_EDGE('',*,*,#1597,.T.); -#1609=ORIENTED_EDGE('',*,*,#1518,.F.); -#1610=ORIENTED_EDGE('',*,*,#1553,.F.); -#1611=EDGE_LOOP('','',(#1607,#1608,#1609,#1610)); -#1612=FACE_OUTER_BOUND('',#1611,.F.); -#1613=ADVANCED_FACE('',(#1612),'' ,#1606,.F.); - -#1614=CARTESIAN_POINT('',(4.E0,5.E0,-6.4E1)); -#1615=DIRECTION('',(1.E0,0.E0,0.E0)); -#1616=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1617=AXIS2_PLACEMENT_3D('',#1614,#1615,#1616); -#1618=PLANE('',#1617); -#1619=ORIENTED_EDGE('',*,*,#1527,.T.); -#1620=ORIENTED_EDGE('',*,*,#1506,.T.); -#1621=ORIENTED_EDGE('',*,*,#1439,.F.); -#1623=ORIENTED_EDGE('',*,*,#1622,.F.); -#1624=EDGE_LOOP('','',(#1619,#1620,#1621,#1623)); -#1625=FACE_OUTER_BOUND('',#1624,.F.); -#1626=ADVANCED_FACE('',(#1625),'' ,#1618,.F.); - -#1627=CARTESIAN_POINT('',(-7.5E0,5.E0,-6.55E1)); -#1628=DIRECTION('',(0.E0,0.E0,1.E0)); -#1629=DIRECTION('',(1.E0,0.E0,0.E0)); -#1630=AXIS2_PLACEMENT_3D('',#1627,#1628,#1629); -#1631=PLANE('',#1630); -#1632=ORIENTED_EDGE('',*,*,#1529,.T.); -#1633=ORIENTED_EDGE('',*,*,#1622,.T.); -#1634=ORIENTED_EDGE('',*,*,#1437,.F.); -#1636=ORIENTED_EDGE('',*,*,#1635,.F.); -#1637=EDGE_LOOP('','',(#1632,#1633,#1634,#1636)); -#1638=FACE_OUTER_BOUND('',#1637,.F.); -#1639=ADVANCED_FACE('',(#1638),'' ,#1631,.F.); - -#1640=CARTESIAN_POINT('',(-6.E0,5.E0,-7.65E1)); -#1641=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1642=DIRECTION('',(0.E0,0.E0,1.E0)); -#1643=AXIS2_PLACEMENT_3D('',#1640,#1641,#1642); -#1644=PLANE('',#1643); -#1645=ORIENTED_EDGE('',*,*,#1531,.T.); -#1646=ORIENTED_EDGE('',*,*,#1635,.T.); -#1647=ORIENTED_EDGE('',*,*,#1435,.F.); -#1648=ORIENTED_EDGE('',*,*,#1503,.F.); -#1649=EDGE_LOOP('','',(#1645,#1646,#1647,#1648)); -#1650=FACE_OUTER_BOUND('',#1649,.F.); -#1651=ADVANCED_FACE('',(#1650),'' ,#1644,.F.); - -#1652=CARTESIAN_POINT('',(5.5E0,5.E0,6.4E1)); -#1653=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1654=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1655=AXIS2_PLACEMENT_3D('',#1652,#1653,#1654); -#1656=PLANE('',#1655); -#1657=ORIENTED_EDGE('',*,*,#1535,.T.); -#1659=ORIENTED_EDGE('',*,*,#1658,.T.); -#1660=ORIENTED_EDGE('',*,*,#1411,.F.); -#1662=ORIENTED_EDGE('',*,*,#1661,.F.); -#1663=EDGE_LOOP('','',(#1657,#1659,#1660,#1662)); -#1664=FACE_OUTER_BOUND('',#1663,.F.); -#1665=ADVANCED_FACE('',(#1664),'' ,#1656,.F.); - -#1666=CARTESIAN_POINT('',(-6.E0,5.E0,6.25E1)); -#1667=DIRECTION('',(-1.E0,0.E0,0.E0)); -#1668=DIRECTION('',(0.E0,0.E0,1.E0)); -#1669=AXIS2_PLACEMENT_3D('',#1666,#1667,#1668); -#1670=PLANE('',#1669); -#1671=ORIENTED_EDGE('',*,*,#1541,.T.); -#1673=ORIENTED_EDGE('',*,*,#1672,.T.); -#1674=ORIENTED_EDGE('',*,*,#1413,.F.); -#1675=ORIENTED_EDGE('',*,*,#1658,.F.); -#1676=EDGE_LOOP('','',(#1671,#1673,#1674,#1675)); -#1677=FACE_OUTER_BOUND('',#1676,.F.); -#1678=ADVANCED_FACE('',(#1677),'' ,#1670,.F.); - -#1679=CARTESIAN_POINT('',(-7.5E0,5.E0,7.5E1)); -#1680=DIRECTION('',(0.E0,0.E0,1.E0)); -#1681=DIRECTION('',(1.E0,0.E0,0.E0)); -#1682=AXIS2_PLACEMENT_3D('',#1679,#1680,#1681); -#1683=PLANE('',#1682); -#1684=ORIENTED_EDGE('',*,*,#1539,.T.); -#1686=ORIENTED_EDGE('',*,*,#1685,.T.); -#1687=ORIENTED_EDGE('',*,*,#1415,.F.); -#1688=ORIENTED_EDGE('',*,*,#1672,.F.); -#1689=EDGE_LOOP('','',(#1684,#1686,#1687,#1688)); -#1690=FACE_OUTER_BOUND('',#1689,.F.); -#1691=ADVANCED_FACE('',(#1690),'' ,#1683,.F.); - -#1692=CARTESIAN_POINT('',(4.E0,5.E0,7.65E1)); -#1693=DIRECTION('',(1.E0,0.E0,0.E0)); -#1694=DIRECTION('',(0.E0,0.E0,-1.E0)); -#1695=AXIS2_PLACEMENT_3D('',#1692,#1693,#1694); -#1696=PLANE('',#1695); -#1697=ORIENTED_EDGE('',*,*,#1537,.T.); -#1698=ORIENTED_EDGE('',*,*,#1661,.T.); -#1699=ORIENTED_EDGE('',*,*,#1417,.F.); -#1700=ORIENTED_EDGE('',*,*,#1685,.F.); -#1701=EDGE_LOOP('','',(#1697,#1698,#1699,#1700)); -#1702=FACE_OUTER_BOUND('',#1701,.F.); -#1703=ADVANCED_FACE('',(#1702),'' ,#1696,.F.); - -#1704=CLOSED_SHELL('',(#1251,#1266,#1280,#1294,#1307,#1339,#1354,#1368,#1382, -#1395,#1421,#1443,#1457,#1470,#1483,#1495,#1510,#1545,#1560,#1575,#1588,#1601, -#1613,#1626,#1639,#1651,#1665,#1678,#1691,#1703)); -#1705=MANIFOLD_SOLID_BREP('',#1704); -#1706=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); -#1707=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); -#1708=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); -#1709=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2), -#1708); -#1710=(CONVERSION_BASED_UNIT('DEGREE',#1709)NAMED_UNIT(#1707)PLANE_ANGLE_UNIT -()); -#1711=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); -#1712=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(3.558582844092E-2),#1706, -'closure', -'Maximum model space distance between geometric entities at asserted connectivities'); -#1713=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( -(#1712))GLOBAL_UNIT_ASSIGNED_CONTEXT((#1706,#1710,#1711))REPRESENTATION_CONTEXT -('ID3','3')); -#1714=CARTESIAN_POINT('',(0.E0,0.E0,0.E0)); -#1715=DIRECTION('',(0.E0,0.E0,1.E0)); -#1716=DIRECTION('',(1.E0,0.E0,0.E0)); -#1717=AXIS2_PLACEMENT_3D('',#1714,#1715,#1716); -#1719=APPLICATION_CONTEXT -('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); -#1720=APPLICATION_PROTOCOL_DEFINITION('international standard', -'config_control_design',1994,#1719); -#1721=DESIGN_CONTEXT('',#1719,'design'); -#1722=MECHANICAL_CONTEXT('',#1719,'mechanical'); -#1723=PRODUCT('ROD_CLOSER','ROD_CLOSER','NOT SPECIFIED',(#1722)); -#1724=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('3','LAST_VERSION', -#1723,.MADE.); -#1730=CARTESIAN_POINT('',(1.21E3,0.E0,0.E0)); -#1731=DIRECTION('',(0.E0,0.E0,1.E0)); -#1732=DIRECTION('',(0.E0,1.E0,0.E0)); -#1733=AXIS2_PLACEMENT_3D('',#1730,#1731,#1732); -#1734=ITEM_DEFINED_TRANSFORMATION('','',#1733,#1717); -#1735=(REPRESENTATION_RELATIONSHIP('','',#589,#1718)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1734)SHAPE_REPRESENTATION_RELATIONSHIP()); -#1736=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1735,#1729); -#1739=CARTESIAN_POINT('',(-1.21E3,0.E0,0.E0)); -#1740=DIRECTION('',(0.E0,0.E0,1.E0)); -#1741=DIRECTION('',(0.E0,-1.E0,0.E0)); -#1742=AXIS2_PLACEMENT_3D('',#1739,#1740,#1741); -#1743=ITEM_DEFINED_TRANSFORMATION('','',#1742,#1717); -#1744=(REPRESENTATION_RELATIONSHIP('','',#589,#1718)REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1743)SHAPE_REPRESENTATION_RELATIONSHIP()); -#1745=CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1744,#1738); -#1746=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.)); -#1747=DIMENSIONAL_EXPONENTS(0.E0,0.E0,0.E0,0.E0,0.E0,0.E0,0.E0); -#1748=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.)); -#1749=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(1.745329251994E-2), -#1748); -#1750=(CONVERSION_BASED_UNIT('DEGREE',#1749)NAMED_UNIT(#1747)PLANE_ANGLE_UNIT -()); -#1751=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT()); -#1752=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.434971384778E-1),#1746, -'closure', -'Maximum model space distance between geometric entities at asserted connectivities'); -#1753=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT( -(#1752))GLOBAL_UNIT_ASSIGNED_CONTEXT((#1746,#1750,#1751))REPRESENTATION_CONTEXT -('ID4','3')); -#1754=APPLICATION_CONTEXT -('CONFIGURATION CONTROLLED 3D DESIGNS OF MECHANICAL PARTS AND ASSEMBLIES'); -#1755=APPLICATION_PROTOCOL_DEFINITION('international standard', -'config_control_design',1994,#1754); -#1756=DESIGN_CONTEXT('',#1754,'design'); -#1757=MECHANICAL_CONTEXT('',#1754,'mechanical'); -#1758=PRODUCT('ROD_ASM','ROD_ASM','NOT SPECIFIED',(#1757)); -#1759=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('9','LAST_VERSION', -#1758,.MADE.); -#1761=PRODUCT_CATEGORY('part',''); -#1762=PRODUCT_RELATED_PRODUCT_CATEGORY('assembly','',(#1758)); -#1763=PRODUCT_CATEGORY_RELATIONSHIP('','',#1761,#1762); -#1764=PRODUCT_CATEGORY('part',''); -#1765=PRODUCT_RELATED_PRODUCT_CATEGORY('detail','',(#582,#766,#1723)); -#1766=PRODUCT_CATEGORY_RELATIONSHIP('','',#1764,#1765); -#1767=SECURITY_CLASSIFICATION_LEVEL('unclassified'); -#1768=SECURITY_CLASSIFICATION('','',#1767); -#1769=CC_DESIGN_SECURITY_CLASSIFICATION(#1768,(#583,#767,#1724,#1759,#590,#771, -#780,#789,#798,#807,#816,#825,#834,#843,#1728,#1737)); -#1770=APPROVAL_STATUS('approved'); -#1771=APPROVAL(#1770,''); -#1772=CC_DESIGN_APPROVAL(#1771,(#1768,#583,#767,#1724,#1759,#584,#768,#1725, -#1760)); -#1773=CALENDAR_DATE(98,17,2); -#1774=COORDINATED_UNIVERSAL_TIME_OFFSET(1,0,.AHEAD.); -#1775=LOCAL_TIME(9,37,4.3E1,#1774); -#1776=DATE_AND_TIME(#1773,#1775); -#1777=APPROVAL_DATE_TIME(#1776,#1771); -#1778=DATE_TIME_ROLE('creation_date'); -#1779=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1776,#1778,(#584,#768,#1725,#1760)); -#1780=DATE_TIME_ROLE('classification_date'); -#1781=CC_DESIGN_DATE_AND_TIME_ASSIGNMENT(#1776,#1780,(#1768)); -#1782=PERSON('UNSPECIFIED','UNSPECIFIED',$,$,$,$); -#1783=ORGANIZATION('UNSPECIFIED','UNSPECIFIED','UNSPECIFIED'); -#1784=PERSON_AND_ORGANIZATION(#1782,#1783); -#1785=APPROVAL_ROLE('approver'); -#1786=APPROVAL_PERSON_ORGANIZATION(#1784,#1771,#1785); -#1787=PERSON_AND_ORGANIZATION_ROLE('creator'); -#1788=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1784,#1787,(#583,#767,#1724, -#1759,#584,#768,#1725,#1760)); -#1789=PERSON_AND_ORGANIZATION_ROLE('design_supplier'); -#1790=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1784,#1789,(#583,#767,#1724, -#1759)); -#1791=PERSON_AND_ORGANIZATION_ROLE('classification_officer'); -#1792=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1784,#1791,(#1768)); -#1793=PERSON_AND_ORGANIZATION_ROLE('design_owner'); -#1794=CC_DESIGN_PERSON_AND_ORGANIZATION_ASSIGNMENT(#1784,#1793,(#1758,#582,#766, -#1723)); -#134=EDGE_CURVE('', #99,#100,'',#12,.T.); - -#136=EDGE_CURVE('', #99,#107,'',#4,.T.); - -#138=EDGE_CURVE('', #107,#108,'',#68,.T.); - -#140=EDGE_CURVE('', #100,#108,'',#96,.T.); - -#150=EDGE_CURVE('', #104,#99,'',#8,.T.); - -#153=EDGE_CURVE('', #100,#102,'',#16,.T.); - -#155=EDGE_CURVE('', #102,#118,'',#20,.T.); - -#157=EDGE_CURVE('', #116,#118,'',#24,.T.); - -#159=EDGE_CURVE('', #115,#116,'',#28,.T.); - -#161=EDGE_CURVE('', #120,#115,'',#32,.T.); - -#163=EDGE_CURVE('', #120,#104,'',#36,.T.); - -#174=EDGE_CURVE('', #104,#112,'',#40,.T.); - -#176=EDGE_CURVE('', #112,#107,'',#72,.T.); - -#187=EDGE_CURVE('', #120,#128,'',#52,.T.); - -#189=EDGE_CURVE('', #128,#112,'',#76,.T.); - -#201=EDGE_CURVE('', #102,#110,'',#44,.T.); - -#203=EDGE_CURVE('', #110,#126,'',#92,.T.); - -#205=EDGE_CURVE('', #118,#126,'',#48,.T.); - -#217=EDGE_CURVE('', #115,#123,'',#56,.T.); - -#219=EDGE_CURVE('', #128,#123,'',#80,.T.); - -#231=EDGE_CURVE('', #116,#124,'',#60,.T.); - -#233=EDGE_CURVE('', #123,#124,'',#84,.T.); - -#246=EDGE_CURVE('', #124,#126,'',#88,.T.); - -#257=EDGE_CURVE('', #108,#110,'',#64,.T.); - -#416=EDGE_CURVE('', #381,#382,'',#290,.T.); - -#418=EDGE_CURVE('', #381,#389,'',#286,.T.); - -#420=EDGE_CURVE('', #389,#390,'',#334,.T.); - -#422=EDGE_CURVE('', #382,#390,'',#322,.T.); - -#433=EDGE_CURVE('', #382,#384,'',#294,.T.); - -#435=EDGE_CURVE('', #384,#386,'',#298,.T.); - -#437=EDGE_CURVE('', #386,#402,'',#302,.T.); - -#439=EDGE_CURVE('', #400,#402,'',#306,.T.); - -#441=EDGE_CURVE('', #398,#400,'',#310,.T.); - -#443=EDGE_CURVE('', #397,#398,'',#314,.T.); - -#445=EDGE_CURVE('', #397,#381,'',#318,.T.); - -#457=EDGE_CURVE('', #390,#392,'',#330,.T.); - -#459=EDGE_CURVE('', #384,#392,'',#358,.T.); - -#469=EDGE_CURVE('', #392,#394,'',#326,.T.); - -#473=EDGE_CURVE('', #405,#389,'',#338,.T.); - -#475=EDGE_CURVE('', #405,#406,'',#342,.T.); - -#477=EDGE_CURVE('', #406,#408,'',#346,.T.); - -#479=EDGE_CURVE('', #408,#410,'',#350,.T.); - -#481=EDGE_CURVE('', #394,#410,'',#354,.T.); - -#494=EDGE_CURVE('', #386,#394,'',#362,.T.); - -#504=EDGE_CURVE('', #397,#405,'',#370,.T.); - -#519=EDGE_CURVE('', #402,#410,'',#366,.T.); - -#531=EDGE_CURVE('', #398,#406,'',#374,.T.); - -#544=EDGE_CURVE('', #400,#408,'',#378,.T.); - -#577=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#576,#282,#564),#572); -#584=PRODUCT_DEFINITION('design','',#583,#580); -#585=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD.',#584); -#586=SHAPE_DEFINITION_REPRESENTATION(#585,#577); -#587=SHAPE_DEFINITION_REPRESENTATION(#588,#589); -#588=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD_ASM.',#1760); -#589=SHAPE_REPRESENTATION('',(#595,#776,#785,#794,#803,#812,#821,#830,#839,#848, -#1733,#1742),#1753); -#590=NEXT_ASSEMBLY_USAGE_OCCURRENCE('0','Next assembly relationship','',#1760, -#584,$); -#591=PRODUCT_DEFINITION_SHAPE('Placement #0', -'Placement of ROD with respect to ROD_ASM',#590); -#668=EDGE_CURVE('', #649,#650,'',#602,.T.); - -#670=EDGE_CURVE('', #650,#652,'',#606,.T.); - -#672=EDGE_CURVE('', #652,#654,'',#610,.T.); - -#674=EDGE_CURVE('', #654,#649,'',#614,.T.); - -#685=EDGE_CURVE('', #649,#657,'',#618,.T.); - -#687=EDGE_CURVE('', #657,#658,'',#634,.T.); - -#689=EDGE_CURVE('', #650,#658,'',#630,.T.); - -#700=EDGE_CURVE('', #654,#662,'',#622,.T.); - -#702=EDGE_CURVE('', #662,#657,'',#638,.T.); - -#714=EDGE_CURVE('', #652,#660,'',#626,.T.); - -#716=EDGE_CURVE('', #660,#662,'',#642,.T.); - -#729=EDGE_CURVE('', #658,#660,'',#646,.T.); - -#761=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#760,#748),#756); -#768=PRODUCT_DEFINITION('design','',#767,#764); -#769=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR MODULE.',#768); -#770=SHAPE_DEFINITION_REPRESENTATION(#769,#761); -#771=NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','Next assembly relationship','',#1760, -#768,$); -#772=PRODUCT_DEFINITION_SHAPE('Placement #1', -'Placement of MODULE with respect to ROD_ASM',#771); -#780=NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','Next assembly relationship','',#1760, -#768,$); -#781=PRODUCT_DEFINITION_SHAPE('Placement #2', -'Placement of MODULE with respect to ROD_ASM',#780); -#789=NEXT_ASSEMBLY_USAGE_OCCURRENCE('3','Next assembly relationship','',#1760, -#768,$); -#790=PRODUCT_DEFINITION_SHAPE('Placement #3', -'Placement of MODULE with respect to ROD_ASM',#789); -#798=NEXT_ASSEMBLY_USAGE_OCCURRENCE('4','Next assembly relationship','',#1760, -#768,$); -#799=PRODUCT_DEFINITION_SHAPE('Placement #4', -'Placement of MODULE with respect to ROD_ASM',#798); -#807=NEXT_ASSEMBLY_USAGE_OCCURRENCE('5','Next assembly relationship','',#1760, -#768,$); -#808=PRODUCT_DEFINITION_SHAPE('Placement #5', -'Placement of MODULE with respect to ROD_ASM',#807); -#816=NEXT_ASSEMBLY_USAGE_OCCURRENCE('6','Next assembly relationship','',#1760, -#768,$); -#817=PRODUCT_DEFINITION_SHAPE('Placement #6', -'Placement of MODULE with respect to ROD_ASM',#816); -#825=NEXT_ASSEMBLY_USAGE_OCCURRENCE('7','Next assembly relationship','',#1760, -#768,$); -#826=PRODUCT_DEFINITION_SHAPE('Placement #7', -'Placement of MODULE with respect to ROD_ASM',#825); -#834=NEXT_ASSEMBLY_USAGE_OCCURRENCE('8','Next assembly relationship','',#1760, -#768,$); -#835=PRODUCT_DEFINITION_SHAPE('Placement #8', -'Placement of MODULE with respect to ROD_ASM',#834); -#843=NEXT_ASSEMBLY_USAGE_OCCURRENCE('9','Next assembly relationship','',#1760, -#768,$); -#844=PRODUCT_DEFINITION_SHAPE('Placement #9', -'Placement of MODULE with respect to ROD_ASM',#843); -#1241=EDGE_CURVE('', #1142,#1143,'',#855,.T.); - -#1243=EDGE_CURVE('', #1143,#1145,'',#859,.T.); - -#1245=EDGE_CURVE('', #1145,#1147,'',#863,.T.); - -#1247=EDGE_CURVE('', #1147,#1142,'',#867,.T.); - -#1258=EDGE_CURVE('', #1142,#1150,'',#871,.T.); - -#1260=EDGE_CURVE('', #1150,#1151,'',#887,.T.); - -#1262=EDGE_CURVE('', #1143,#1151,'',#883,.T.); - -#1273=EDGE_CURVE('', #1147,#1155,'',#875,.T.); - -#1275=EDGE_CURVE('', #1155,#1150,'',#891,.T.); - -#1287=EDGE_CURVE('', #1145,#1153,'',#879,.T.); - -#1289=EDGE_CURVE('', #1153,#1155,'',#895,.T.); - -#1302=EDGE_CURVE('', #1151,#1153,'',#899,.T.); - -#1319=EDGE_CURVE('', #1178,#1179,'',#903,.T.); - -#1321=EDGE_CURVE('', #1179,#1181,'',#907,.T.); - -#1323=EDGE_CURVE('', #1181,#1183,'',#911,.T.); - -#1325=EDGE_CURVE('', #1183,#1178,'',#915,.T.); - -#1329=EDGE_CURVE('', #1214,#1215,'',#919,.T.); - -#1331=EDGE_CURVE('', #1215,#1217,'',#923,.T.); - -#1333=EDGE_CURVE('', #1217,#1219,'',#927,.T.); - -#1335=EDGE_CURVE('', #1219,#1214,'',#931,.T.); - -#1346=EDGE_CURVE('', #1178,#1170,'',#935,.T.); - -#1348=EDGE_CURVE('', #1170,#1171,'',#967,.T.); - -#1350=EDGE_CURVE('', #1179,#1171,'',#947,.T.); - -#1361=EDGE_CURVE('', #1183,#1175,'',#939,.T.); - -#1363=EDGE_CURVE('', #1175,#1170,'',#971,.T.); - -#1375=EDGE_CURVE('', #1181,#1173,'',#943,.T.); - -#1377=EDGE_CURVE('', #1173,#1175,'',#975,.T.); - -#1390=EDGE_CURVE('', #1171,#1173,'',#979,.T.); - -#1401=EDGE_CURVE('', #1206,#1207,'',#951,.T.); - -#1403=EDGE_CURVE('', #1211,#1206,'',#955,.T.); - -#1405=EDGE_CURVE('', #1209,#1211,'',#959,.T.); - -#1407=EDGE_CURVE('', #1207,#1209,'',#963,.T.); - -#1411=EDGE_CURVE('', #1222,#1223,'',#999,.T.); - -#1413=EDGE_CURVE('', #1223,#1225,'',#1003,.T.); - -#1415=EDGE_CURVE('', #1225,#1227,'',#1007,.T.); - -#1417=EDGE_CURVE('', #1227,#1222,'',#1011,.T.); - -#1433=EDGE_CURVE('', #1190,#1191,'',#983,.T.); - -#1435=EDGE_CURVE('', #1191,#1193,'',#987,.T.); - -#1437=EDGE_CURVE('', #1193,#1195,'',#991,.T.); - -#1439=EDGE_CURVE('', #1195,#1190,'',#995,.T.); - -#1450=EDGE_CURVE('', #1214,#1206,'',#1015,.T.); - -#1453=EDGE_CURVE('', #1215,#1207,'',#1027,.T.); - -#1464=EDGE_CURVE('', #1219,#1211,'',#1019,.T.); - -#1477=EDGE_CURVE('', #1217,#1209,'',#1023,.T.); - -#1501=EDGE_CURVE('', #1198,#1199,'',#1051,.T.); - -#1503=EDGE_CURVE('', #1199,#1191,'',#1123,.T.); - -#1506=EDGE_CURVE('', #1198,#1190,'',#1031,.T.); - -#1516=EDGE_CURVE('', #1186,#1187,'',#1035,.T.); - -#1518=EDGE_CURVE('', #1187,#1166,'',#1039,.T.); - -#1520=EDGE_CURVE('', #1166,#1167,'',#1043,.T.); - -#1522=EDGE_CURVE('', #1167,#1186,'',#1047,.T.); - -#1527=EDGE_CURVE('', #1203,#1198,'',#1055,.T.); - -#1529=EDGE_CURVE('', #1201,#1203,'',#1059,.T.); - -#1531=EDGE_CURVE('', #1199,#1201,'',#1063,.T.); - -#1535=EDGE_CURVE('', #1230,#1231,'',#1067,.T.); - -#1537=EDGE_CURVE('', #1235,#1230,'',#1071,.T.); - -#1539=EDGE_CURVE('', #1233,#1235,'',#1075,.T.); - -#1541=EDGE_CURVE('', #1231,#1233,'',#1079,.T.); - -#1551=EDGE_CURVE('', #1158,#1159,'',#1087,.T.); - -#1553=EDGE_CURVE('', #1159,#1187,'',#1111,.T.); - -#1556=EDGE_CURVE('', #1158,#1186,'',#1083,.T.); - -#1567=EDGE_CURVE('', #1163,#1158,'',#1091,.T.); - -#1569=EDGE_CURVE('', #1161,#1163,'',#1095,.T.); - -#1571=EDGE_CURVE('', #1159,#1161,'',#1099,.T.); - -#1584=EDGE_CURVE('', #1163,#1167,'',#1103,.T.); - -#1597=EDGE_CURVE('', #1161,#1166,'',#1107,.T.); - -#1622=EDGE_CURVE('', #1203,#1195,'',#1115,.T.); - -#1635=EDGE_CURVE('', #1201,#1193,'',#1119,.T.); - -#1658=EDGE_CURVE('', #1231,#1223,'',#1131,.T.); - -#1661=EDGE_CURVE('', #1230,#1222,'',#1127,.T.); - -#1672=EDGE_CURVE('', #1233,#1225,'',#1135,.T.); - -#1685=EDGE_CURVE('', #1235,#1227,'',#1139,.T.); - -#1718=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#1717,#1705),#1713); -#1725=PRODUCT_DEFINITION('design','',#1724,#1721); -#1726=PRODUCT_DEFINITION_SHAPE('','SHAPE FOR ROD_CLOSER.',#1725); -#1727=SHAPE_DEFINITION_REPRESENTATION(#1726,#1718); -#1728=NEXT_ASSEMBLY_USAGE_OCCURRENCE('10','Next assembly relationship','',#1760, -#1725,$); -#1729=PRODUCT_DEFINITION_SHAPE('Placement #10', -'Placement of ROD_CLOSER with respect to ROD_ASM',#1728); -#1737=NEXT_ASSEMBLY_USAGE_OCCURRENCE('11','Next assembly relationship','',#1760, -#1725,$); -#1738=PRODUCT_DEFINITION_SHAPE('Placement #11', -'Placement of ROD_CLOSER with respect to ROD_ASM',#1737); -#1760=PRODUCT_DEFINITION('design','',#1759,#1756); -ENDSEC; -END-ISO-10303-21; diff --git a/examples/extended/geometry/olap/History b/examples/extended/geometry/olap/History index 903c8b7a8c..ffed91806b 100644 --- a/examples/extended/geometry/olap/History +++ b/examples/extended/geometry/olap/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2003/06/12 12:24:46 gcosmo Exp $ +$Id: History,v 1.7 2003/12/03 13:50:09 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,10 +17,13 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -June, 12th, 2003 G.Cosmo - olapex-V05-01-00 +November 13th, 2003 J.Allison - olapex-V05-02-00 +- Reconstructed Vis Manager. + +June 12th, 2003 G.Cosmo - olapex-V05-01-00 - Fixed pedantic warnings on Linux-g++. -February, 19th, 2003 G.Cosmo - olapex-V05-00-00 +February 19th, 2003 G.Cosmo - olapex-V05-00-00 - Removed redundant inclusion of SystemOfUnits.h. Now using CLHEP headers. diff --git a/examples/extended/geometry/olap/include/G4GeoNav.hh b/examples/extended/geometry/olap/include/G4GeoNav.hh index cbda2f734e..49f11666d9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapDetConstr.hh b/examples/extended/geometry/olap/include/OlapDetConstr.hh index 2e1c3b9ca8..38d4f11dcb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapEventAction.hh b/examples/extended/geometry/olap/include/OlapEventAction.hh index b85ecfa039..d31ca5c3ba 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapGenerator.hh b/examples/extended/geometry/olap/include/OlapGenerator.hh index e85a3763d9..41572fbbc9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapLogManager.hh b/examples/extended/geometry/olap/include/OlapLogManager.hh index b690036480..8f6cb64e63 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapManager.hh b/examples/extended/geometry/olap/include/OlapManager.hh index 4826d2adca..8f5c7b16fe 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapManagerMessenger.hh b/examples/extended/geometry/olap/include/OlapManagerMessenger.hh index 767fae8f60..196b5dfefc 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapNotify.hh b/examples/extended/geometry/olap/include/OlapNotify.hh index a4f633d4a8..4773297061 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapPhysicsList.hh b/examples/extended/geometry/olap/include/OlapPhysicsList.hh index ebf0a96e7e..fb99309343 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapRunAction.hh b/examples/extended/geometry/olap/include/OlapRunAction.hh index ac01e853ee..0d9f7e0fd0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapSteppingAction.hh b/examples/extended/geometry/olap/include/OlapSteppingAction.hh index 8f644ac59b..3b0c6bbe19 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/OlapVisManager.hh b/examples/extended/geometry/olap/include/OlapVisManager.hh index 03b03205e7..22f1031d14 100644 --- a/examples/extended/geometry/olap/include/OlapVisManager.hh +++ b/examples/extended/geometry/olap/include/OlapVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: OlapVisManager.hh,v 1.1 2002/06/04 07:40:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/RandomDetector.hh b/examples/extended/geometry/olap/include/RandomDetector.hh index ed3f581932..efcc4bf979 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/SolidAnalyser.hh b/examples/extended/geometry/olap/include/SolidAnalyser.hh index a11b479a93..48401c98d8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/include/tree.hh b/examples/extended/geometry/olap/include/tree.hh index a3df5555fe..e2893661cf 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/olapex.cc b/examples/extended/geometry/olap/olapex.cc index f710f779d6..1334f4cc63 100644 --- a/examples/extended/geometry/olap/olapex.cc +++ b/examples/extended/geometry/olap/olapex.cc @@ -22,7 +22,7 @@ // // // $Id: olapex.cc,v 1.1 2002/06/04 07:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/G4GeoNav.cc b/examples/extended/geometry/olap/src/G4GeoNav.cc index 674a30b1f6..986816f5dd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapDetConstr.cc b/examples/extended/geometry/olap/src/OlapDetConstr.cc index b9676f25a0..59cdfdeb19 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.2 2003/06/12 12:24:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapEventAction.cc b/examples/extended/geometry/olap/src/OlapEventAction.cc index 9c85a4b985..cde816808a 100644 --- a/examples/extended/geometry/olap/src/OlapEventAction.cc +++ b/examples/extended/geometry/olap/src/OlapEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: OlapEventAction.cc,v 1.3 2003/06/16 16:49:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapGenerator.cc b/examples/extended/geometry/olap/src/OlapGenerator.cc index d5258f973c..55ed3baad8 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.2 2002/06/04 09:23:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapLogManager.cc b/examples/extended/geometry/olap/src/OlapLogManager.cc index 148292f937..83e66bff11 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapManager.cc b/examples/extended/geometry/olap/src/OlapManager.cc index 943909c62c..b200d30995 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapManagerMessenger.cc b/examples/extended/geometry/olap/src/OlapManagerMessenger.cc index 92acf13c41..2fa57fc5e5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapNotify.cc b/examples/extended/geometry/olap/src/OlapNotify.cc index 7c5202c2f9..67df61eb0f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapPhysicsList.cc b/examples/extended/geometry/olap/src/OlapPhysicsList.cc index 267449a372..52866b6c98 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapRunAction.cc b/examples/extended/geometry/olap/src/OlapRunAction.cc index 2f6dd5f0dc..05729cf243 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapSteppingAction.cc b/examples/extended/geometry/olap/src/OlapSteppingAction.cc index 456276a5fa..4f4fd85bf8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/OlapVisManager.cc b/examples/extended/geometry/olap/src/OlapVisManager.cc index e5d6e14aeb..3363bff710 100644 --- a/examples/extended/geometry/olap/src/OlapVisManager.cc +++ b/examples/extended/geometry/olap/src/OlapVisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: OlapVisManager.cc,v 1.1 2002/06/04 07:40:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: OlapVisManager.cc,v 1.2 2003/11/13 15:11:34 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -39,51 +39,50 @@ // Supported drivers... +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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" #endif +#ifdef G4VIS_USE_OPENGLWIN32 +#include "G4OpenGLImmediateWin32.hh" +#include "G4OpenGLStoredWin32.hh" +#endif + #ifdef G4VIS_USE_OPENGLXM #include "G4OpenGLImmediateXm.hh" #include "G4OpenGLStoredXm.hh" #endif #ifdef G4VIS_USE_OIX -//#include "G4OpenInventorX.hh" +#include "G4OpenInventorX.hh" #endif #ifdef G4VIS_USE_OIWIN32 -//#include "G4OpenInventorWin32.hh" -#endif - -#ifdef G4VIS_USE_RAYX -#include "G4RayX.hh" +#include "G4OpenInventorWin32.hh" #endif #ifdef G4VIS_USE_VRML -//#include "G4VRML1.hh" +#include "G4VRML1.hh" #include "G4VRML2.hh" #endif -#ifdef G4VIS_USE_VRMLFILE -//#include "G4VRML1File.hh" -#include "G4VRML2File.hh" -#endif - OlapVisManager::OlapVisManager (G4int verboseLevel) { SetVerboseLevel( verboseLevel ); @@ -92,49 +91,48 @@ OlapVisManager::OlapVisManager (G4int verboseLevel) void OlapVisManager::RegisterGraphicsSystems () { + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... + #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); #endif +#ifdef G4VIS_USE_OPENGLWIN32 + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); +#endif + #ifdef G4VIS_USE_OPENGLXM RegisterGraphicsSystem (new G4OpenGLImmediateXm); RegisterGraphicsSystem (new G4OpenGLStoredXm); #endif #ifdef G4VIS_USE_OIX - // RegisterGraphicsSystem (new G4OpenInventorX); + RegisterGraphicsSystem (new G4OpenInventorX); #endif #ifdef G4VIS_USE_OIWIN32 - // RegisterGraphicsSystem (new G4OpenInventorWin32); -#endif - -#ifdef G4VIS_USE_RAYX - RegisterGraphicsSystem (new G4RayX); + RegisterGraphicsSystem (new G4OpenInventorWin32); #endif #ifdef G4VIS_USE_VRML - // RegisterGraphicsSystem (new G4VRML1); - RegisterGraphicsSystem (new G4VRML2); -#endif - -#ifdef G4VIS_USE_VRMLFILE - // RegisterGraphicsSystem (new G4VRML1File); - RegisterGraphicsSystem (new G4VRML2File); + RegisterGraphicsSystem (new G4VRML1); + RegisterGraphicsSystem (new G4VRML2); #endif if (fVerbose > 0) diff --git a/examples/extended/geometry/olap/src/RandomDetector.cc b/examples/extended/geometry/olap/src/RandomDetector.cc index 8e7caf124a..271f64f468 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.2 2003/02/19 07:59:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/geometry/olap/src/SolidAnalyser.cc b/examples/extended/geometry/olap/src/SolidAnalyser.cc index 76caba0d17..8493fc536f 100644 --- a/examples/extended/geometry/olap/src/SolidAnalyser.cc +++ b/examples/extended/geometry/olap/src/SolidAnalyser.cc @@ -22,7 +22,7 @@ // // // $Id: SolidAnalyser.cc,v 1.3 2003/06/16 16:49:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/medical/DICOM/include/DicomPhysicsList.hh b/examples/extended/medical/DICOM/include/DicomPhysicsList.hh index 732c752bac..0be25a0ea3 100644 --- a/examples/extended/medical/DICOM/include/DicomPhysicsList.hh +++ b/examples/extended/medical/DICOM/include/DicomPhysicsList.hh @@ -55,13 +55,7 @@ public: void SetGammaCut(G4double); void SetElectronCut(G4double); void SetPositronCut(G4double); - - void SetGammaLowLimit(G4double); - void SetElectronLowLimit(G4double); - void SetGELowLimit(G4double); - void SetLowEnSecPhotCut(G4double); - void SetLowEnSecElecCut(G4double); - + protected: // Construct particle and physics void ConstructParticle(); diff --git a/examples/extended/medical/DICOM/include/DicomPrimaryGeneratorAction.hh b/examples/extended/medical/DICOM/include/DicomPrimaryGeneratorAction.hh index 5090d89433..0e8440170c 100644 --- a/examples/extended/medical/DICOM/include/DicomPrimaryGeneratorAction.hh +++ b/examples/extended/medical/DICOM/include/DicomPrimaryGeneratorAction.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -//// +// // The code was written by : // *Louis Archambault louis.archambault@phy.ulaval.ca, // *Luc Beaulieu beaulieu@phy.ulaval.ca diff --git a/examples/extended/medical/DICOM/src/DicomPhysicsList.cc b/examples/extended/medical/DICOM/src/DicomPhysicsList.cc index f6670bb0ca..e8fe4f3f6c 100644 --- a/examples/extended/medical/DICOM/src/DicomPhysicsList.cc +++ b/examples/extended/medical/DICOM/src/DicomPhysicsList.cc @@ -186,46 +186,6 @@ void DicomPhysicsList::SetCuts() DumpCutValuesTable(); } - -void DicomPhysicsList::SetGammaLowLimit(G4double lowcut) -{ - if (verboseLevel >0) - { - G4cout << "DicomPhysicsList::SetCuts:"; - G4cout << "Gamma cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - G4Gamma::SetEnergyRange(lowcut,1e5); - -} - -void DicomPhysicsList::SetElectronLowLimit(G4double lowcut) -{ - if (verboseLevel >0) - { - - G4cout << "DicomPhysicsList::SetCuts:"; - G4cout << "Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - - } - - G4Electron::SetEnergyRange(lowcut,1e5); -} - -void DicomPhysicsList::SetGELowLimit(G4double lowcut) -{ - if (verboseLevel >0) - { - G4cout << "DicomPhysicsList::SetCuts:"; - G4cout << "Gamma and Electron cut in energy: " << lowcut*MeV << " (MeV)" << G4endl; - } - - G4Gamma::SetEnergyRange(lowcut,1e5); - G4Electron::SetEnergyRange(lowcut,1e5); - G4Positron::SetEnergyRange(lowcut,1e5); - -} - void DicomPhysicsList::SetGammaCut(G4double val) { ResetCuts(); @@ -244,21 +204,3 @@ void DicomPhysicsList::SetPositronCut(G4double val) cutForPositron = val; } -void DicomPhysicsList::SetLowEnSecPhotCut(G4double cut) -{ - - G4cout<<"Low energy secondary photons cut is now set to: "<SetCutForLowEnSecPhotons(cut); - loweIon->SetCutForLowEnSecPhotons(cut); - loweBrem->SetCutForLowEnSecPhotons(cut); -} - -void DicomPhysicsList::SetLowEnSecElecCut(G4double cut) -{ - - G4cout<<"Low energy secondary electrons cut is now set to: "<SetCutForLowEnSecElectrons(cut); - -} diff --git a/examples/extended/medical/DICOM/src/DicomVisManager.cc b/examples/extended/medical/DICOM/src/DicomVisManager.cc index 13fdd4ee2b..06922bc395 100644 --- a/examples/extended/medical/DICOM/src/DicomVisManager.cc +++ b/examples/extended/medical/DICOM/src/DicomVisManager.cc @@ -40,12 +40,52 @@ #include "DicomVisManager.hh" -#ifdef G4VIS_USE_OPENGLX // Supported drivers... + +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" #endif +#ifdef G4VIS_USE_OPENGLWIN32 +#include "G4OpenGLImmediateWin32.hh" +#include "G4OpenGLStoredWin32.hh" +#endif + +#ifdef G4VIS_USE_OPENGLXM +#include "G4OpenGLImmediateXm.hh" +#include "G4OpenGLStoredXm.hh" +#endif + +#ifdef G4VIS_USE_OIX +#include "G4OpenInventorX.hh" +#endif + +#ifdef G4VIS_USE_OIWIN32 +#include "G4OpenInventorWin32.hh" +#endif + +#ifdef G4VIS_USE_VRML +#include "G4VRML1.hh" +#include "G4VRML2.hh" +#endif + DicomVisManager::DicomVisManager () {} @@ -53,10 +93,50 @@ DicomVisManager::DicomVisManager () void DicomVisManager::RegisterGraphicsSystems () { -#ifdef G4VIS_USE_OPENGLX - RegisterGraphicsSystem (new G4OpenGLImmediateX); - RegisterGraphicsSystem (new G4OpenGLStoredX ); + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... + +#ifdef G4VIS_USE_DAWN + RegisterGraphicsSystem (new G4FukuiRenderer); #endif + +#ifdef G4VIS_USE_OPENGLX + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); +#endif + +#ifdef G4VIS_USE_OPENGLXM + RegisterGraphicsSystem (new G4OpenGLImmediateXm); + RegisterGraphicsSystem (new G4OpenGLStoredXm); +#endif + +#ifdef G4VIS_USE_OIX + RegisterGraphicsSystem (new G4OpenInventorX); +#endif + +#ifdef G4VIS_USE_OIWIN32 + RegisterGraphicsSystem (new G4OpenInventorWin32); +#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; diff --git a/examples/extended/parallel/ParN02/History b/examples/extended/parallel/ParN02/History index d3f1537dff..62bc7131fd 100644 --- a/examples/extended/parallel/ParN02/History +++ b/examples/extended/parallel/ParN02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2002/03/05 15:21:52 gcosmo Exp $ +$Id: History,v 1.4 2003/12/03 14:15:02 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,18 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 2nd, 2003 G.Cosmo +---------------------- +- Brought up-to-date classes from exampleN02. + +Nov 13th, 2003 J.Allison +------------------------- +- Removed OPACS from Vis Manager. + +July 4th, 2003 G.Cosmo +----------------------- +- Cleared pedantic compilation warnings ... + March 5th, 2002 G.Cosmo - ParN02-V04-00-00 ------------------------ - Created from original version of Gene Cooperman. diff --git a/examples/extended/parallel/ParN02/ParN02.cc b/examples/extended/parallel/ParN02/ParN02.cc index a5246f1d4c..9670f08619 100644 --- a/examples/extended/parallel/ParN02/ParN02.cc +++ b/examples/extended/parallel/ParN02/ParN02.cc @@ -22,7 +22,7 @@ // // // $Id: ParN02.cc,v 1.2 2002/03/09 06:21:18 cooperma Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/ParTopC.icc b/examples/extended/parallel/ParN02/ParTopC.icc index 5e0d777b98..076951ef3b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh index e493e404a5..b4b72d8f65 100644 --- a/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh +++ b/examples/extended/parallel/ParN02/include/ExN02ChamberParameterisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02ChamberParameterisation.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02ChamberParameterisation.hh,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // A parameterisation that describes a series of boxes along Z @@ -41,6 +41,19 @@ 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 ExN02ChamberParameterisation : public G4VPVParameterisation @@ -63,7 +76,19 @@ class ExN02ChamberParameterisation : public G4VPVParameterisation 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; diff --git a/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh b/examples/extended/parallel/ParN02/include/ExN02DetectorConstruction.hh index 871bb915b0..19892f0fc2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 01cb0d5316..f2330bb380 100644 --- a/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh +++ b/examples/extended/parallel/ParN02/include/ExN02DetectorMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorMessenger.hh,v 1.1 2002/03/05 15:21:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02DetectorMessenger.hh,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -51,7 +51,8 @@ class ExN02DetectorMessenger: public G4UImessenger private: ExN02DetectorConstruction* myDetector; - G4UIdirectory* mydetDir; + G4UIdirectory* N02Dir; + G4UIdirectory* detDir; G4UIcmdWithAString* TargMatCmd; G4UIcmdWithAString* ChamMatCmd; G4UIcmdWithADoubleAndUnit* FieldCmd; diff --git a/examples/extended/parallel/ParN02/include/ExN02EventAction.hh b/examples/extended/parallel/ParN02/include/ExN02EventAction.hh index 0ec3b5474f..c1b294ea7e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 239e04e6b9..cff68223db 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e547b2e332..b0b830ad13 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 c4672170c7..ef7c74fe08 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 109a7e798d..d764a84cd4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 fcc9e6fc0a..b1fcd9c23d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6d8823c20c..3b05b8c495 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0d1f895197..c0f1a8ed4a 100644 --- a/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh +++ b/examples/extended/parallel/ParN02/include/ExN02TrackerHit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02TrackerHit.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02TrackerHit.hh,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,7 +45,7 @@ class ExN02TrackerHit : public G4VHit ~ExN02TrackerHit(); ExN02TrackerHit(const ExN02TrackerHit&); const ExN02TrackerHit& operator=(const ExN02TrackerHit&); - int operator==(const ExN02TrackerHit&) const; + G4int operator==(const ExN02TrackerHit&) const; inline void* operator new(size_t); inline void operator delete(void*); @@ -98,5 +98,3 @@ inline void ExN02TrackerHit::operator delete(void *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 febf81bdff..6fcba6abe4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/include/ExN02VisManager.hh b/examples/extended/parallel/ParN02/include/ExN02VisManager.hh index 83cc92e7d1..8e4bf60ae9 100644 --- a/examples/extended/parallel/ParN02/include/ExN02VisManager.hh +++ b/examples/extended/parallel/ParN02/include/ExN02VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02VisManager.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh b/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh index c2e7112181..569d0569ce 100644 --- a/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh +++ b/examples/extended/parallel/ParN02/include/ParExMarshaledHits.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParExMarshaledHits.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh b/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh index 4273aed062..d2b52319ea 100644 --- a/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh +++ b/examples/extended/parallel/ParN02/include/ParMarshaledObj.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParMarshaledObj.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/include/ParRandomState.hh b/examples/extended/parallel/ParN02/include/ParRandomState.hh index ae8694593d..5d08be3d6a 100644 --- a/examples/extended/parallel/ParN02/include/ParRandomState.hh +++ b/examples/extended/parallel/ParN02/include/ParRandomState.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: ParRandomState.hh,v 1.1 2002/03/05 15:21:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ParRandomState.hh,v 1.2 2003/07/04 15:36:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 @@ -55,7 +55,7 @@ class ParMarshaledRandomState : public MarshaledObj } // Called on slave at beginning of new event. - inline void SetNextRandomStateForSlave( G4int eventID, void *randomState ) + inline void SetNextRandomStateForSlave( G4int, void *randomState ) { HepRandom::setTheSeed( *(long *)randomState ); #ifdef TOPC_DEBUG G4cout << "SET SEED: " << *(long *)randomState << G4endl; diff --git a/examples/extended/parallel/ParN02/include/ParRunManager.hh b/examples/extended/parallel/ParN02/include/ParRunManager.hh index 27454ccaf6..48184574c3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc index 71140f78da..c31f8d4c02 100644 --- a/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc +++ b/examples/extended/parallel/ParN02/src/ExN02ChamberParameterisation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02ChamberParameterisation.cc,v 1.1 2002/03/05 15:21:59 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02ChamberParameterisation.cc,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -77,8 +77,7 @@ void ExN02ChamberParameterisation::ComputeTransformation //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void ExN02ChamberParameterisation::ComputeDimensions -(G4Box& trackerChamber, const G4int copyNo, - const G4VPhysicalVolume* physVol) const +(G4Box& trackerChamber, const G4int copyNo, const G4VPhysicalVolume*) const { G4double halfLength= fHalfLengthFirst + copyNo * fHalfLengthIncr; trackerChamber.SetXHalfLength(halfLength); diff --git a/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc b/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc index 839e68efc3..62a835218f 100644 --- a/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorConstruction.cc,v 1.1 2002/03/05 15:22:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02DetectorConstruction.cc,v 1.2 2003/12/03 14:15:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -76,37 +76,31 @@ G4VPhysicalVolume* ExN02DetectorConstruction::Construct() { //--------- Material definition --------- - G4double a, iz, z, density; - G4String name, symbol; - G4double temperature, pressure; + G4double a, z; + G4double density, temperature, pressure; G4int nel; //Air - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxigen", symbol="O", iz=8., a); - density = 1.29*mg/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); + 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); - //Pb - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Pb", z=82., a, density); + //Lead + G4Material* Pb = + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); //Xenon gas - density = 5.458*mg/cm3; - pressure = 1*atmosphere; - temperature = 293.15*kelvin; - G4Material* Xenon = new G4Material(name="XenonGas", z=54., a=131.29*g/mole, - density, kStateGas,temperature,pressure); + G4Material* Xenon = + new G4Material("XenonGas", z=54., a=131.29*g/mole, density= 5.458*mg/cm3, + kStateGas, temperature= 1*atmosphere, pressure= 293.15*kelvin); // Print all the materials defined. // - G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; - G4cout << *(G4Material::GetMaterialTable()) << G4endl; + G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; + G4cout << *(G4Material::GetMaterialTable()) << G4endl; //--------- Sizes of the principal geometrical components (solids) --------- @@ -140,8 +134,8 @@ G4VPhysicalVolume* ExN02DetectorConstruction::Construct() // physiWorld = new G4PVPlacement(0, // no rotation G4ThreeVector(), // at (0,0,0) - "World", // its name logicWorld, // its logical volume + "World", // its name 0, // its mother volume false, // no boolean operations 0); // no field specific to volume @@ -156,9 +150,9 @@ G4VPhysicalVolume* ExN02DetectorConstruction::Construct() 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 - logicTarget, // its logical volume - physiWorld, // its mother volume + logicWorld, // its mother volume false, // no boolean operations 0); // no particular field @@ -175,9 +169,9 @@ G4VPhysicalVolume* ExN02DetectorConstruction::Construct() 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 - logicTracker, // its logical volume - physiWorld, // its mother volume + logicWorld, // its mother volume false, // no boolean operations 0); // no particular field @@ -208,7 +202,7 @@ G4VPhysicalVolume* ExN02DetectorConstruction::Construct() physiChamber = new G4PVParameterised( "Chamber", // their name logicChamber, // their logical volume - physiTracker, // Mother physical volume + logicTracker, // Mother logical volume kZAxis, // Are placed along this axis NbOfChambers, // Number of chambers chamberParam); // The parametrisation diff --git a/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc index 19a4a14155..e0d2359edc 100644 --- a/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc +++ b/examples/extended/parallel/ParN02/src/ExN02DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorMessenger.cc,v 1.2 2002/12/05 01:07:00 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02DetectorMessenger.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -40,21 +40,23 @@ ExN02DetectorMessenger::ExN02DetectorMessenger(ExN02DetectorConstruction* myDet) :myDetector(myDet) { - - mydetDir = new G4UIdirectory("/mydet/"); - mydetDir->SetGuidance("ExN02 detector control."); + N02Dir = new G4UIdirectory("/N02/"); + N02Dir->SetGuidance("UI commands specific to this example."); - TargMatCmd = new G4UIcmdWithAString("/mydet/setTargetMate",this); + 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("/mydet/setChamberMate",this); + 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("/mydet/setField",this); + 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); @@ -70,7 +72,8 @@ ExN02DetectorMessenger::~ExN02DetectorMessenger() delete TargMatCmd; delete ChamMatCmd; delete FieldCmd; - delete mydetDir; + delete detDir; + delete N02Dir; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02EventAction.cc b/examples/extended/parallel/ParN02/src/ExN02EventAction.cc index 21431cf64e..14f8a65516 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 d0b061b3b9..4d4bc042f0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // User Field class implementation. // diff --git a/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc index 4c3f3b1124..7e6362d729 100644 --- a/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc +++ b/examples/extended/parallel/ParN02/src/ExN02PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02PhysicsList.cc,v 1.2 2003/06/16 16:49:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02PhysicsList.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,7 +31,6 @@ #include "ExN02PhysicsList.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" @@ -171,105 +170,39 @@ void ExN02PhysicsList::ConstructEM() 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); - // - // 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); - // - // 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+" || 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); - // - // 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->GetParticleName() != "chargedgeantino")) { - // all others charged particles except geantino - G4VProcess* aMultipleScattering = new G4MultipleScattering(); - G4VProcess* anIonisation = new G4hIonisation(); - ////G4VProcess* theUserCuts = new G4UserSpecialCuts(); - - // - // add processes - pmanager->AddProcess(anIonisation); - pmanager->AddProcess(aMultipleScattering); - ////pmanager->AddProcess(theUserCuts); - - // - // 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(theUserCuts, idxPostStep,3); + //all others charged particles except geantino + pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); + pmanager->AddProcess(new G4hIonisation, -1, 2,2); + ///pmanager->AddProcess(new G4hUserSpecialCuts, -1,-1,3); } } } diff --git a/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc b/examples/extended/parallel/ParN02/src/ExN02PrimaryGeneratorAction.cc index 79678909ac..13b0deb873 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 831c4e2e1b..9dc11b32c3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e2e32e53c1..8adc19c6de 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 937178ec6f..b863974d5b 100644 --- a/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc +++ b/examples/extended/parallel/ParN02/src/ExN02SteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02SteppingVerbose.cc,v 1.2 2003/06/16 16:49:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02SteppingVerbose.cc,v 1.3 2003/12/03 14:15:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -73,7 +73,8 @@ void ExN02SteppingVerbose::StepInfo() << 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"); + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; // if( fStepStatus != fWorldBoundary){ if( fTrack->GetNextVolume() != 0 ) { @@ -161,7 +162,8 @@ G4int prec = G4cout.precision(3); << 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"); + << std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length") + << " "; if(fTrack->GetNextVolume()){ G4cout << std::setw(10) << fTrack->GetVolume()->GetName(); diff --git a/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc b/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc index 750c539a6c..c945d7c302 100644 --- a/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc +++ b/examples/extended/parallel/ParN02/src/ExN02TrackerHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02TrackerHit.cc,v 1.1 2002/03/05 15:22:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02TrackerHit.cc,v 1.2 2003/07/04 15:36:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,6 +47,7 @@ ExN02TrackerHit::~ExN02TrackerHit() {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... ExN02TrackerHit::ExN02TrackerHit(const ExN02TrackerHit& right) + : G4VHit() { trackID = right.trackID; chamberNb = right.chamberNb; @@ -67,9 +68,9 @@ const ExN02TrackerHit& ExN02TrackerHit::operator=(const ExN02TrackerHit& right) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -int ExN02TrackerHit::operator==(const ExN02TrackerHit& right) const +G4int ExN02TrackerHit::operator==(const ExN02TrackerHit& right) const { - return 0; + return (this==&right) ? 1 : 0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc b/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc index 4957bcba9c..4cdf8858b9 100644 --- a/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc +++ b/examples/extended/parallel/ParN02/src/ExN02TrackerSD.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02TrackerSD.cc,v 1.1 2002/03/05 15:22:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02TrackerSD.cc,v 1.2 2003/07/04 15:36:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -61,7 +61,7 @@ void ExN02TrackerSD::Initialize(G4HCofThisEvent* HCE) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool ExN02TrackerSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) +G4bool ExN02TrackerSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); @@ -83,7 +83,7 @@ G4bool ExN02TrackerSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ExN02TrackerSD::EndOfEvent(G4HCofThisEvent* HCE) +void ExN02TrackerSD::EndOfEvent(G4HCofThisEvent*) { if (verboseLevel>0) { G4int NbHits = trackerCollection->entries(); diff --git a/examples/extended/parallel/ParN02/src/ExN02VisManager.cc b/examples/extended/parallel/ParN02/src/ExN02VisManager.cc index 313163cb26..1454370ce4 100644 --- a/examples/extended/parallel/ParN02/src/ExN02VisManager.cc +++ b/examples/extended/parallel/ParN02/src/ExN02VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02VisManager.cc,v 1.2 2002/11/26 08:28:07 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02VisManager.cc,v 1.3 2003/11/13 15:11:38 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void ExN02VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc b/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc index a85a841715..f64eed6967 100644 --- a/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc +++ b/examples/extended/parallel/ParN02/src/ParExN02MarshaledHits.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParExN02MarshaledHits.cc,v 1.1 2002/03/05 15:22:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc b/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc index 8df601ffe2..909d8f5704 100644 --- a/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc +++ b/examples/extended/parallel/ParN02/src/ParMarshaledObj.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParMarshaledObj.cc,v 1.1 2002/03/05 15:22:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN02/src/ParRunManager.cc b/examples/extended/parallel/ParN02/src/ParRunManager.cc index 790d3acd17..df42c006b0 100644 --- a/examples/extended/parallel/ParN02/src/ParRunManager.cc +++ b/examples/extended/parallel/ParN02/src/ParRunManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParRunManager.cc,v 1.5 2003/06/16 16:49:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/History b/examples/extended/parallel/ParN04/History index 7d601e286b..64e3f30d4e 100644 --- a/examples/extended/parallel/ParN04/History +++ b/examples/extended/parallel/ParN04/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 2002/03/05 15:22:04 gcosmo Exp $ +$Id: History,v 1.3 2003/12/03 14:28:03 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,14 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +December 2nd, 2003 G.Cosmo +--------------------------- +- Brought classes up-to-date with exampleN04. + +July 4th, 2003 G.Cosmo +----------------------- +- Cleared pedantic compilation warnings ... + March 5th, 2002 G.Cosmo - ParN04-V04-00-00 ------------------------ - Created from original version of Gene Cooperman. diff --git a/examples/extended/parallel/ParN04/ParN04.cc b/examples/extended/parallel/ParN04/ParN04.cc index dc1d241154..fece68c717 100644 --- a/examples/extended/parallel/ParN04/ParN04.cc +++ b/examples/extended/parallel/ParN04/ParN04.cc @@ -21,61 +21,91 @@ // ******************************************************************** // // -// $Id: ParN04.cc,v 1.2 2002/03/09 06:21:25 cooperma Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ParN04.cc,v 1.3 2003/12/03 14:28:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- -// -// GEANT4 - ParN04 +// GEANT 4 - ParN04 // // -------------------------------------------------------------- +// Comments +// +// +// -------------------------------------------------------------- + #include "G4RunManager.hh" #include "G4UImanager.hh" #include "G4UIterminal.hh" +#include "G4UItcsh.hh" #include "ExN04DetectorConstruction.hh" #include "ExN04PhysicsList.hh" #include "ExN04PrimaryGeneratorAction.hh" +#include "ExN04RunAction.hh" #include "ExN04EventAction.hh" #include "ExN04StackingAction.hh" #include "ExN04TrackingAction.hh" #include "ExN04SteppingAction.hh" +#include "ExN04SteppingVerbose.hh" + +#ifdef G4VIS_USE +#include "ExN04VisManager.hh" +#endif #include "ParTopC.icc" int main(int argc,char** argv) { + G4VSteppingVerbose::SetInstance(new ExN04SteppingVerbose); + G4RunManager* runManager = new G4RunManager; runManager->SetUserInitialization(new ExN04DetectorConstruction); runManager->SetUserInitialization(new ExN04PhysicsList); + +#ifdef G4VIS_USE + // Visualization, if you choose to have it! + G4VisManager* visManager = new ExN04VisManager; + visManager->Initialize(); +#endif runManager->Initialize(); runManager->SetUserAction(new ExN04PrimaryGeneratorAction); + runManager->SetUserAction(new ExN04RunAction); runManager->SetUserAction(new ExN04EventAction); runManager->SetUserAction(new ExN04StackingAction); runManager->SetUserAction(new ExN04TrackingAction); runManager->SetUserAction(new ExN04SteppingAction); + + //get the pointer to the User Interface manager + G4UImanager* UImanager = G4UImanager::GetUIpointer(); if(argc==1) { // G4UIterminal is a (dumb) terminal. - G4UIsession* session = new G4UIterminal; +#ifdef G4UI_USE_TCSH + G4UIsession* session = new G4UIterminal(new G4UItcsh); +#else + G4UIsession* session = new G4UIterminal(); +#endif + UImanager->ApplyCommand("/control/execute vis.mac"); session->SessionStart(); delete session; } else { - G4UImanager* UImanager = G4UImanager::GetUIpointer(); G4String command = "/control/execute "; G4String fileName = argv[1]; UImanager->ApplyCommand(command+fileName); } delete runManager; +#ifdef G4VIS_USE + delete visManager; +#endif return 0; } diff --git a/examples/extended/parallel/ParN04/ParTopC.icc b/examples/extended/parallel/ParN04/ParTopC.icc index afc4299160..9c3f1eb28d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh b/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh index 3b902165ba..5c8d2edce9 100644 --- a/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh +++ b/examples/extended/parallel/ParN04/include/ExN04CalorimeterHit.hh @@ -41,7 +41,7 @@ class ExN04CalorimeterHit : public G4VHit ~ExN04CalorimeterHit(); ExN04CalorimeterHit(const ExN04CalorimeterHit &right); const ExN04CalorimeterHit& operator=(const ExN04CalorimeterHit &right); - int operator==(const ExN04CalorimeterHit &right) const; + G4int operator==(const ExN04CalorimeterHit &right) const; inline void *operator new(size_t); inline void operator delete(void *aHit); diff --git a/examples/extended/parallel/ParN04/include/ExN04CalorimeterParametrisation.hh b/examples/extended/parallel/ParN04/include/ExN04CalorimeterParametrisation.hh index bfab08a8f8..6a6f2644fa 100644 --- a/examples/extended/parallel/ParN04/include/ExN04CalorimeterParametrisation.hh +++ b/examples/extended/parallel/ParN04/include/ExN04CalorimeterParametrisation.hh @@ -30,6 +30,19 @@ class G4VPhysicalVolume; class G4Tubs; +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Box; +class G4Polycone; +class G4Polyhedra; + class ExN04CalorimeterParametrisation : public G4VPVParameterisation { public: @@ -42,6 +55,20 @@ class ExN04CalorimeterParametrisation : public G4VPVParameterisation 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 (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + private: #include "ExN04DetectorParameterDef.hh" @@ -49,5 +76,3 @@ class ExN04CalorimeterParametrisation : public G4VPVParameterisation }; #endif - - diff --git a/examples/extended/parallel/ParN04/include/ExN04DetectorConstruction.hh b/examples/extended/parallel/ParN04/include/ExN04DetectorConstruction.hh index 3601f184e5..13ea7d698e 100644 --- a/examples/extended/parallel/ParN04/include/ExN04DetectorConstruction.hh +++ b/examples/extended/parallel/ParN04/include/ExN04DetectorConstruction.hh @@ -28,6 +28,7 @@ #include "globals.hh" class G4VPhysicalVolume; +class G4Material; class ExN04DetectorConstruction : public G4VUserDetectorConstruction { @@ -39,9 +40,16 @@ class ExN04DetectorConstruction : public G4VUserDetectorConstruction G4VPhysicalVolume* Construct(); private: + void DefineMaterials(); #include "ExN04DetectorParameterDef.hh" + G4Material* Air; + G4Material* Ar; + G4Material* Silicon; + G4Material* Scinti; + G4Material* Lead; + }; #endif diff --git a/examples/extended/parallel/ParN04/include/ExN04DummySD.hh b/examples/extended/parallel/ParN04/include/ExN04DummySD.hh index eeed0dd0df..9f18e5d89f 100644 --- a/examples/extended/parallel/ParN04/include/ExN04DummySD.hh +++ b/examples/extended/parallel/ParN04/include/ExN04DummySD.hh @@ -35,14 +35,14 @@ class ExN04DummySD : public G4VSensitiveDetector { public: ExN04DummySD(); - ~ExN04DummySD() {}; + ~ExN04DummySD() {} - void Initialize(G4HCofThisEvent*HCE) {}; - G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;} - void EndOfEvent(G4HCofThisEvent*HCE) {}; - void clear() {}; - void DrawAll() {}; - void PrintAll() {}; + void Initialize(G4HCofThisEvent*) {} + G4bool ProcessHits(G4Step*,G4TouchableHistory*) {return false;} + void EndOfEvent(G4HCofThisEvent*) {} + void clear() {} + void DrawAll() {} + void PrintAll() {} }; ExN04DummySD::ExN04DummySD() : G4VSensitiveDetector("dummySD") diff --git a/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04EMPhysics.hh index 464cc790d3..690e9bd47b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04GeneralPhysics.hh index a270ee056b..7e0c4b63ab 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh index cf3707690a..3bdb9a4223 100644 --- a/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04HadronPhysics.hh @@ -20,19 +20,14 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: ExN04HadronPhysics.hh,v 1.3 2003/12/03 14:28:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: ExN04HadronPhysics.hh,v 1.2 2003/06/16 16:49:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// // ------------------------------------------------------------ // GEANT 4 class header file -// Class Description: +// // This class is an derived class of G4VPhysicsConstructor // -// ------------------------------------------- -// History -// first version 12 Nov. 2000 by H.Kurashige // ------------------------------------------------------------ #ifndef ExN04HadronPhysics_h #define ExN04HadronPhysics_h 1 @@ -147,6 +142,16 @@ #include "G4KaonMinusAbsorptionAtRest.hh" #endif +// quark gluon string model with chips afterburner. +#include "G4TheoFSGenerator.hh" +#include "G4ExcitationHandler.hh" +#include "G4PreCompoundModel.hh" +#include "G4GeneratorPrecompoundInterface.hh" +#include "G4QGSModel.hh" +#include "G4QGSParticipants.hh" +#include "G4QGSMFragmentation.hh" +#include "G4ExcitedStringDecay.hh" + class ExN04HadronPhysics : public G4VPhysicsConstructor { public: @@ -171,14 +176,12 @@ class ExN04HadronPhysics : public G4VPhysicsConstructor // Pi + G4PionPlusInelasticProcess thePionPlusInelastic; G4LEPionPlusInelastic* theLEPionPlusModel; - G4HEPionPlusInelastic* theHEPionPlusModel; G4MultipleScattering thePionPlusMult; G4hIonisation thePionPlusIonisation; // Pi - G4PionMinusInelasticProcess thePionMinusInelastic; G4LEPionMinusInelastic* theLEPionMinusModel; - G4HEPionMinusInelastic* theHEPionMinusModel; G4MultipleScattering thePionMinusMult; G4hIonisation thePionMinusIonisation; #ifdef TRIUMF_STOP_PIMINUS @@ -187,13 +190,23 @@ class ExN04HadronPhysics : public G4VPhysicsConstructor G4PiMinusAbsorptionAtRest thePionMinusAbsorption; #endif + // pi+ and pi- + + G4TheoFSGenerator theTheoModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel * thePreEquilib; + G4GeneratorPrecompoundInterface theCascade; + G4QGSModel< G4QGSParticipants > theStringModel; + G4QGSMFragmentation theFragmentation; + G4ExcitedStringDecay * theStringDecay; + // K + G4KaonPlusInelasticProcess theKaonPlusInelastic; G4LEKaonPlusInelastic* theLEKaonPlusModel; G4HEKaonPlusInelastic* theHEKaonPlusModel; G4MultipleScattering theKaonPlusMult; G4hIonisation theKaonPlusIonisation; - + // K - G4KaonMinusInelasticProcess theKaonMinusInelastic; G4LEKaonMinusInelastic* theLEKaonMinusModel; diff --git a/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh index 23cd64309b..9548ca985f 100644 --- a/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04IonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.hh,v 1.1 2002/03/05 15:22:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04IonPhysics.hh,v 1.2 2003/12/03 14:28:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -55,6 +55,7 @@ #include "G4LEAlphaInelastic.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" #include "G4MultipleScattering.hh" class ExN04IonPhysics : public G4VPhysicsConstructor @@ -75,12 +76,12 @@ class ExN04IonPhysics : public G4VPhysicsConstructor protected: // Elastic Process - G4HadronElasticProcess theElasticProcess; - G4LElastic* theElasticModel; + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; // Generic Ion physics - G4MultipleScattering fIonMultipleScattering; - G4hIonisation fIonIonisation; + G4MultipleScattering fIonMultipleScattering; + G4ionIonisation fIonIonisation; // Deuteron physics G4MultipleScattering fDeuteronMultipleScattering; diff --git a/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh b/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh index 2b6607cf81..100850b4ed 100644 --- a/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh +++ b/examples/extended/parallel/ParN04/include/ExN04MuonHit.hh @@ -37,7 +37,7 @@ class ExN04MuonHit : public G4VHit ~ExN04MuonHit(); ExN04MuonHit(const ExN04MuonHit &right); const ExN04MuonHit& operator=(const ExN04MuonHit &right); - int operator==(const ExN04MuonHit &right) const; + G4int operator==(const ExN04MuonHit &right) const; inline void *operator new(size_t); diff --git a/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh b/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh index f2a1662985..d77c01b4ae 100644 --- a/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh +++ b/examples/extended/parallel/ParN04/include/ExN04MuonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.hh,v 1.1 2002/03/05 15:22:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04MuonPhysics.hh,v 1.2 2003/12/03 14:28:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -67,15 +67,15 @@ class ExN04MuonPhysics : public G4VPhysicsConstructor protected: // Muon physics + G4MuIonisation fMuPlusIonisation; G4MultipleScattering fMuPlusMultipleScattering; G4MuBremsstrahlung fMuPlusBremsstrahlung ; G4MuPairProduction fMuPlusPairProduction; - G4MuIonisation fMuPlusIonisation; + G4MuIonisation fMuMinusIonisation; G4MultipleScattering fMuMinusMultipleScattering; G4MuBremsstrahlung fMuMinusBremsstrahlung ; G4MuPairProduction fMuMinusPairProduction; - G4MuIonisation fMuMinusIonisation; G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; diff --git a/examples/novice/N03/src/ExN03TrackingAction.cc b/examples/extended/parallel/ParN04/include/ExN04RunAction.hh similarity index 80% rename from examples/novice/N03/src/ExN03TrackingAction.cc rename to examples/extended/parallel/ParN04/include/ExN04RunAction.hh index abe4205792..ea9f4b7483 100644 --- a/examples/novice/N03/src/ExN03TrackingAction.cc +++ b/examples/extended/parallel/ParN04/include/ExN04RunAction.hh @@ -21,22 +21,38 @@ // ******************************************************************** // // -// $Id: ExN03TrackingAction.cc,v 1.3 2002/12/18 15:17:56 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// - +// $Id: ExN04RunAction.hh,v 1.1 2003/12/03 14:32:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "ExN03TrackingAction.hh" -#include "G4SmoothTrajectory.hh" -#include "G4TrackingManager.hh" +#ifndef ExN04RunAction_h +#define ExN04RunAction_h 1 + +#include "G4UserRunAction.hh" +#include "globals.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ExN03TrackingAction :: PreUserTrackingAction(const G4Track* aTrack) +class G4Run; + +class ExN04RunAction : public G4UserRunAction { - fpTrackingManager->SetTrajectory(new G4SmoothTrajectory(aTrack)); -} + public: + ExN04RunAction(); + ~ExN04RunAction(); + + public: + void BeginOfRunAction(const G4Run*); + void EndOfRunAction(const G4Run*); +}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif + + + + + diff --git a/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh b/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.hh new file mode 100644 index 0000000000..2f00a71c54 --- /dev/null +++ b/examples/extended/parallel/ParN04/include/ExN04SteppingVerbose.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: ExN04SteppingVerbose.hh,v 1.1 2003/12/03 14:32:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-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 ExN04SteppingVerbose; + +#ifndef ExN04SteppingVerbose_h +#define ExN04SteppingVerbose_h 1 + +#include "G4SteppingVerbose.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class ExN04SteppingVerbose : public G4SteppingVerbose +{ + public: + + ExN04SteppingVerbose(); + ~ExN04SteppingVerbose(); + + void StepInfo(); + void TrackingStarted(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#endif diff --git a/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh b/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh index 8731dadeb6..b99f06d0b7 100644 --- a/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh +++ b/examples/extended/parallel/ParN04/include/ExN04TrackerHit.hh @@ -37,7 +37,7 @@ class ExN04TrackerHit : public G4VHit ~ExN04TrackerHit(); ExN04TrackerHit(const ExN04TrackerHit &right); const ExN04TrackerHit& operator=(const ExN04TrackerHit &right); - int operator==(const ExN04TrackerHit &right) const; + G4int operator==(const ExN04TrackerHit &right) const; inline void *operator new(size_t); inline void operator delete(void *aHit); @@ -78,5 +78,3 @@ inline void ExN04TrackerHit::operator delete(void *aHit) } #endif - - diff --git a/examples/extended/parallel/ParN04/include/ExN04TrackerParametrisation.hh b/examples/extended/parallel/ParN04/include/ExN04TrackerParametrisation.hh index dc1fa0102e..c5f4d156a0 100644 --- a/examples/extended/parallel/ParN04/include/ExN04TrackerParametrisation.hh +++ b/examples/extended/parallel/ParN04/include/ExN04TrackerParametrisation.hh @@ -30,6 +30,19 @@ class G4VPhysicalVolume; class G4Tubs; +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Orb; +class G4Sphere; +class G4Torus; +class G4Para; +class G4Hype; +class G4Box; +class G4Polycone; +class G4Polyhedra; + class ExN04TrackerParametrisation : public G4VPVParameterisation { public: @@ -42,6 +55,20 @@ class ExN04TrackerParametrisation : public G4VPVParameterisation 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 (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} + private: #include "ExN04DetectorParameterDef.hh" @@ -49,5 +76,3 @@ class ExN04TrackerParametrisation : public G4VPVParameterisation }; #endif - - diff --git a/examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh b/examples/extended/parallel/ParN04/include/ExN04VisManager.hh similarity index 91% rename from examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh rename to examples/extended/parallel/ParN04/include/ExN04VisManager.hh index 7df3f90101..b2eb1117d2 100644 --- a/examples/extended/electromagnetic/TestEm2/include/Em2VisManager.hh +++ b/examples/extended/parallel/ParN04/include/ExN04VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Em2VisManager.hh,v 1.5 2002/12/16 11:29:22 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04VisManager.hh,v 1.1 2003/12/03 14:28:03 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -44,18 +44,20 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#ifndef Em2VisManager_h -#define Em2VisManager_h 1 +#ifndef ExN04VisManager_h +#define ExN04VisManager_h 1 + +#ifdef G4VIS_USE #include "G4VisManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class Em2VisManager: public G4VisManager { +class ExN04VisManager: public G4VisManager { public: - Em2VisManager (); + ExN04VisManager (); private: @@ -66,3 +68,5 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #endif + +#endif diff --git a/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh b/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh index d17308c181..b87413ac64 100644 --- a/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh +++ b/examples/extended/parallel/ParN04/include/ParExMarshaledHits.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParExMarshaledHits.hh,v 1.1 2002/03/05 15:22:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh b/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh index 05f8dfeb49..87c54109f2 100644 --- a/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh +++ b/examples/extended/parallel/ParN04/include/ParMarshaledObj.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParMarshaledObj.hh,v 1.2 2003/06/16 16:49:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/include/ParRandomState.hh b/examples/extended/parallel/ParN04/include/ParRandomState.hh index 226eea6864..27a301dd18 100644 --- a/examples/extended/parallel/ParN04/include/ParRandomState.hh +++ b/examples/extended/parallel/ParN04/include/ParRandomState.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: ParRandomState.hh,v 1.1 2002/03/05 15:22:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ParRandomState.hh,v 1.2 2003/07/04 15:36:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 @@ -55,7 +55,7 @@ class ParMarshaledRandomState : public MarshaledObj } // Called on slave at beginning of new event. - inline void SetNextRandomStateForSlave( G4int eventID, void *randomState ) + inline void SetNextRandomStateForSlave( G4int, void *randomState ) { HepRandom::setTheSeed( *(long *)randomState ); #ifdef TOPC_DEBUG G4cout << "SET SEED: " << *(long *)randomState << G4endl; diff --git a/examples/extended/parallel/ParN04/include/ParRunManager.hh b/examples/extended/parallel/ParN04/include/ParRunManager.hh index 1bbe9782ff..d375d4cee6 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.2 2002/06/06 17:05:05 cooperma Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/src/ExN04CalorimeterHit.cc b/examples/extended/parallel/ParN04/src/ExN04CalorimeterHit.cc index 4b43319609..de6b63b309 100644 --- a/examples/extended/parallel/ParN04/src/ExN04CalorimeterHit.cc +++ b/examples/extended/parallel/ParN04/src/ExN04CalorimeterHit.cc @@ -41,6 +41,7 @@ ExN04CalorimeterHit::~ExN04CalorimeterHit() {;} ExN04CalorimeterHit::ExN04CalorimeterHit(const ExN04CalorimeterHit &right) + : G4VHit() { ZCellID = right.ZCellID; PhiCellID = right.PhiCellID; @@ -61,7 +62,7 @@ const ExN04CalorimeterHit& ExN04CalorimeterHit::operator=(const ExN04Calorimeter return *this; } -int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const +G4int ExN04CalorimeterHit::operator==(const ExN04CalorimeterHit &right) const { return ((ZCellID==right.ZCellID)&&(PhiCellID==right.PhiCellID)); } diff --git a/examples/extended/parallel/ParN04/src/ExN04CalorimeterParametrisation.cc b/examples/extended/parallel/ParN04/src/ExN04CalorimeterParametrisation.cc index c054aaa3eb..75bd26f04f 100644 --- a/examples/extended/parallel/ParN04/src/ExN04CalorimeterParametrisation.cc +++ b/examples/extended/parallel/ParN04/src/ExN04CalorimeterParametrisation.cc @@ -29,24 +29,21 @@ ExN04CalorimeterParametrisation::ExN04CalorimeterParametrisation() { - #include "ExN04DetectorParameterDef.icc" - } ExN04CalorimeterParametrisation::~ExN04CalorimeterParametrisation() {;} void ExN04CalorimeterParametrisation::ComputeTransformation -(const G4int copyNo,G4VPhysicalVolume *physVol) const +(const G4int,G4VPhysicalVolume *physVol) const { G4ThreeVector origin; physVol->SetTranslation(origin); } void ExN04CalorimeterParametrisation::ComputeDimensions -(G4Tubs & calorimeterLayer, const G4int copyNo, - const G4VPhysicalVolume * physVol) const +(G4Tubs & calorimeterLayer, const G4int copyNo, const G4VPhysicalVolume*) const { G4double innerRad = caloTubs_rmin + copyNo*(absorber_thick+scinti_thick); diff --git a/examples/extended/parallel/ParN04/src/ExN04CalorimeterSD.cc b/examples/extended/parallel/ParN04/src/ExN04CalorimeterSD.cc index c2df7f35ce..bcd28ee89b 100644 --- a/examples/extended/parallel/ParN04/src/ExN04CalorimeterSD.cc +++ b/examples/extended/parallel/ParN04/src/ExN04CalorimeterSD.cc @@ -43,28 +43,30 @@ ExN04CalorimeterSD::ExN04CalorimeterSD(G4String name) ExN04CalorimeterSD::~ExN04CalorimeterSD() {;} -void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*HCE) +void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*) { CalCollection = new ExN04CalorimeterHitsCollection (SensitiveDetectorName,collectionName[0]); - for(int j=0;jGetTotalEnergyDeposit(); + if(verboseLevel>1) G4cout << "Next step edep(MeV) = " << edep/MeV << G4endl; if(edep==0.) return false; G4VPhysicalVolume* physVol = ROhist->GetVolume(); //ROhist->MoveUpHistory(); //G4VPhysicalVolume* mothVol = ROhist->GetVolume(1); - int copyIDinZ = ROhist->GetReplicaNumber(); - int copyIDinPhi = ROhist->GetReplicaNumber(1); + G4int copyIDinZ = ROhist->GetReplicaNumber(); + G4int copyIDinPhi = ROhist->GetReplicaNumber(1); if(CellID[copyIDinZ][copyIDinPhi]==-1) { @@ -76,7 +78,7 @@ G4bool ExN04CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) calHit->SetEdep( edep ); calHit->SetPos( physVol->GetTranslation() ); calHit->SetRot( rotM ); - int icell = CalCollection->insert( calHit ); + G4int icell = CalCollection->insert( calHit ); CellID[copyIDinZ][copyIDinPhi] = icell - 1; if(verboseLevel>0) { G4cout << " New Calorimeter Hit on CellID " diff --git a/examples/extended/parallel/ParN04/src/ExN04DetectorConstruction.cc b/examples/extended/parallel/ParN04/src/ExN04DetectorConstruction.cc index 7ed0cc02dd..c0b07ec027 100644 --- a/examples/extended/parallel/ParN04/src/ExN04DetectorConstruction.cc +++ b/examples/extended/parallel/ParN04/src/ExN04DetectorConstruction.cc @@ -52,12 +52,45 @@ ExN04DetectorConstruction::ExN04DetectorConstruction() { #include "ExN04DetectorParameterDef.icc" + DefineMaterials(); } ExN04DetectorConstruction::~ExN04DetectorConstruction() {;} +void ExN04DetectorConstruction::DefineMaterials() +{ + //------------------------------------------------------------------------- + // Materials + //------------------------------------------------------------------------- + + G4double a, z, density; + G4int nel; + + G4Element* H = new G4Element("Hydrogen", "H", z=1., a= 1.01*g/mole); + G4Element* C = new G4Element("Carbon", "C", z=6., a= 12.01*g/mole); + 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); + + Air = new G4Material("Air", density= 1.29*mg/cm3, nel=2); + Air->AddElement(N, 70.*perCent); + Air->AddElement(O, 30.*perCent); + + Lead = + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); + + Ar = + new G4Material("ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); + + Silicon = + new G4Material("Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); + + Scinti = new G4Material("Scintillator", density= 1.032*g/cm3, nel=2); + Scinti->AddElement(C, 9); + Scinti->AddElement(H, 10); +} + G4VPhysicalVolume* ExN04DetectorConstruction::Construct() { //------------------------------------------------------------------------- @@ -76,47 +109,6 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() fieldIsInitialized = true; } - //------------------------------------------------------------------------- - // Materials - //------------------------------------------------------------------------- - - G4double a, iz, z, density; - G4String name, symbol; - G4int nel; - - a = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen", symbol="H", iz=1., a); - - a = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon", symbol="C", iz=6., a); - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen", symbol="O", iz=8., a); - - density = 1.29e-03*g/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); - - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Lead = new G4Material(name="Lead", z=82., a, density); - - a = 39.95*g/mole; - density = 1.782e-03*g/cm3; - G4Material* Ar = new G4Material(name="ArgonGas", z=18., a, density); - - a = 28.09*g/mole; - density = 2.33*g/cm3; - G4Material * Silicon = new G4Material(name="Silicon", z=14., a, density); - - density = 1.032*g/cm3; - G4Material* Scinti = new G4Material(name="Scintillator", density, nel=2); - Scinti->AddElement(elC, 9); - Scinti->AddElement(elH, 10); //------------------------------------------------------------------------- // Detector geometry @@ -128,8 +120,8 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() G4LogicalVolume * experimentalHall_log = new G4LogicalVolume(experimentalHall_box,Air,"expHall_L",0,0,0); G4VPhysicalVolume * experimentalHall_phys - = new G4PVPlacement(0,G4ThreeVector(),"expHall_P", - experimentalHall_log,0,false,0); + = new G4PVPlacement(0,G4ThreeVector(),experimentalHall_log,"expHall_P", + 0,false,0); G4VisAttributes* experimentalHallVisAtt = new G4VisAttributes(G4Colour(1.0,1.0,1.0)); experimentalHallVisAtt->SetForceWireframe(true); @@ -141,9 +133,9 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() trkTubs_sphi,trkTubs_dphi); G4LogicalVolume * tracker_log = new G4LogicalVolume(tracker_tubs,Ar,"trackerT_L",0,0,0); - G4VPhysicalVolume * tracker_phys - = new G4PVPlacement(0,G4ThreeVector(),"tracker_phys",tracker_log, - experimentalHall_phys,false,0); + // G4VPhysicalVolume * tracker_phys = + new G4PVPlacement(0,G4ThreeVector(),tracker_log,"tracker_phys", + experimentalHall_log,false,0); G4VisAttributes* tracker_logVisAtt = new G4VisAttributes(G4Colour(1.0,0.0,1.0)); tracker_logVisAtt->SetForceWireframe(true); @@ -161,7 +153,7 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() = new ExN04TrackerParametrisation; // dummy value : kXAxis -- modified by parameterised volume // G4VPhysicalVolume *trackerLayer_phys = - new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_phys, + new G4PVParameterised("trackerLayer_phys",trackerLayer_log,tracker_log, kXAxis, notrkLayers, trackerParam); G4VisAttributes* trackerLayer_logVisAtt = new G4VisAttributes(G4Colour(0.5,0.0,1.0)); @@ -174,9 +166,9 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() caloTubs_dz,caloTubs_sphi,caloTubs_dphi); G4LogicalVolume * calorimeter_log = new G4LogicalVolume(calorimeter_tubs,Scinti,"caloT_L",0,0,0); - G4VPhysicalVolume * calorimeter_phys - = new G4PVPlacement(0,G4ThreeVector(),"caloM_P",calorimeter_log, - experimentalHall_phys,false,0); + // G4VPhysicalVolume * calorimeter_phys = + new G4PVPlacement(0,G4ThreeVector(),calorimeter_log,"caloM_P", + experimentalHall_log,false,0); G4VisAttributes* calorimeter_logVisATT = new G4VisAttributes(G4Colour(1.0,1.0,0.0)); calorimeter_logVisATT->SetForceWireframe(true); @@ -194,7 +186,7 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() = new ExN04CalorimeterParametrisation; // dummy value : kXAxis -- modified by parameterised volume // G4VPhysicalVolume * caloLayer_phys = - new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_phys, + new G4PVParameterised("caloLayer_phys",caloLayer_log,calorimeter_log, kXAxis, nocaloLayers, calorimeterParam); G4VisAttributes* caloLayer_logVisAtt = new G4VisAttributes(G4Colour(0.7,1.0,0.0)); @@ -220,8 +212,8 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() rm.rotateZ(phi); muoncounter_phys = new G4PVPlacement(G4Transform3D(rm,G4ThreeVector(x,y,z)), - "muoncounter_P",muoncounter_log, - experimentalHall_phys,false,i); + muoncounter_log, "muoncounter_P", + experimentalHall_log,false,i); } G4VisAttributes* muoncounter_logVisAtt = new G4VisAttributes(G4Colour(0.0,1.0,1.0)); diff --git a/examples/extended/parallel/ParN04/src/ExN04DetectorParameterDef.icc b/examples/extended/parallel/ParN04/src/ExN04DetectorParameterDef.icc index 6f7364f101..1d3dfe7a3a 100644 --- a/examples/extended/parallel/ParN04/src/ExN04DetectorParameterDef.icc +++ b/examples/extended/parallel/ParN04/src/ExN04DetectorParameterDef.icc @@ -72,5 +72,5 @@ muBox_radius = 350.*cm; muBox_width = muBox_radius - 5.*cm; muBox_thick = 1.*cm; - muBox_length = 2.*muBox_radius; + muBox_length = expHall_z - 10.*cm; diff --git a/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc index 9cdc5407ee..eeb4384be0 100644 --- a/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04EMPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04EMPhysics.cc,v 1.2 2003/06/16 16:49:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04EMPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -81,29 +81,19 @@ void ExN04EMPhysics::ConstructProcess() // Electron Physics pManager = G4Electron::Electron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&theElectronBremsStrahlung); - pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + pManager->AddProcess(&theElectronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&theElectronIonisation, -1, 2, 2); + pManager->AddProcess(&theElectronBremsStrahlung, -1, 3, 3); - pManager->AddProcess(&theElectronMultipleScattering); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); //Positron Physics pManager = G4Positron::Positron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&thePositronBremsStrahlung); - - pManager->AddDiscreteProcess(&theAnnihilation); - - pManager->AddRestProcess(&theAnnihilation); - - pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); - - pManager->AddProcess(&thePositronMultipleScattering); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + + pManager->AddProcess(&thePositronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&thePositronIonisation, -1, 2, 2); + pManager->AddProcess(&thePositronBremsStrahlung, -1, 3, 3); + pManager->AddProcess(&theAnnihilation, 0,-1, 4); } diff --git a/examples/extended/parallel/ParN04/src/ExN04EventAction.cc b/examples/extended/parallel/ParN04/src/ExN04EventAction.cc index 5a1bdfbac9..45f1973924 100644 --- a/examples/extended/parallel/ParN04/src/ExN04EventAction.cc +++ b/examples/extended/parallel/ParN04/src/ExN04EventAction.cc @@ -58,17 +58,30 @@ void ExN04EventAction::BeginOfEventAction(const G4Event*) calorimeterCollID = SDman->GetCollectionID(colNam="calCollection"); muonCollID = SDman->GetCollectionID(colNam="muonCollection"); } - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - if(pVVisManager) - { - G4UImanager::GetUIpointer()->ApplyCommand("/vis/draw/current"); - } } 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(); @@ -105,16 +118,5 @@ void ExN04EventAction::EndOfEventAction(const G4Event* evt) G4cout << " " << n_hit << " hits are stored in ExN04MuonHitsCollection." << G4endl; } - - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - if(pVVisManager) - { - if(THC) THC->DrawAllHits(); - if(CHC) CHC->DrawAllHits(); - if(MHC) MHC->DrawAllHits(); - G4UImanager::GetUIpointer()->ApplyCommand("/vis/show/view"); - } } - - diff --git a/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04GeneralPhysics.cc index a238f18558..81fdef9d08 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc index d10a388750..b38fc6b8d3 100644 --- a/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04HadronPhysics.cc @@ -21,10 +21,9 @@ // ******************************************************************** // // -// $Id: ExN04HadronPhysics.cc,v 1.2 2003/06/16 16:49:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04HadronPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// #include "ExN04HadronPhysics.hh" @@ -40,6 +39,7 @@ ExN04HadronPhysics::ExN04HadronPhysics(const G4String& name) ExN04HadronPhysics::~ExN04HadronPhysics() { +delete theStringDecay; } #include "G4ParticleDefinition.hh" @@ -73,20 +73,36 @@ void ExN04HadronPhysics::ConstructParticle() void ExN04HadronPhysics::ConstructProcess() { G4ProcessManager * pManager = 0; - + G4cout << "" << G4endl; + G4cout << "You are using the ExN04HadronPhysics" << 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 << " More information can also be found from the Geant4 HyperNews." << G4endl; + G4cout << "" << G4endl; // Elastic Process theElasticModel = new G4LElastic(); theElasticProcess.RegisterMe(theElasticModel); + // pi+ and pi- + + 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); + // PionPlus pManager = G4PionPlus::PionPlus()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); theLEPionPlusModel = new G4LEPionPlusInelastic(); - theHEPionPlusModel = new G4HEPionPlusInelastic(); thePionPlusInelastic.RegisterMe(theLEPionPlusModel); - thePionPlusInelastic.RegisterMe(theHEPionPlusModel); + thePionPlusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&thePionPlusInelastic); pManager->AddProcess(&thePionPlusIonisation, ordInActive,2, 2); @@ -101,9 +117,8 @@ void ExN04HadronPhysics::ConstructProcess() pManager->AddDiscreteProcess(&theElasticProcess); theLEPionMinusModel = new G4LEPionMinusInelastic(); - theHEPionMinusModel = new G4HEPionMinusInelastic(); thePionMinusInelastic.RegisterMe(theLEPionMinusModel); - thePionMinusInelastic.RegisterMe(theHEPionMinusModel); + thePionMinusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&thePionMinusInelastic); pManager->AddProcess(&thePionMinusIonisation, ordInActive,2, 2); @@ -122,7 +137,7 @@ void ExN04HadronPhysics::ConstructProcess() theLEKaonPlusModel = new G4LEKaonPlusInelastic(); theHEKaonPlusModel = new G4HEKaonPlusInelastic(); theKaonPlusInelastic.RegisterMe(theLEKaonPlusModel); - theKaonPlusInelastic.RegisterMe(theHEKaonPlusModel); + theKaonPlusInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theKaonPlusInelastic); pManager->AddProcess(&theKaonPlusIonisation, ordInActive,2, 2); @@ -180,7 +195,7 @@ void ExN04HadronPhysics::ConstructProcess() theLEProtonModel = new G4LEProtonInelastic(); theHEProtonModel = new G4HEProtonInelastic(); theProtonInelastic.RegisterMe(theLEProtonModel); - theProtonInelastic.RegisterMe(theHEProtonModel); + theProtonInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theProtonInelastic); pManager->AddProcess(&theProtonIonisation, ordInActive,2, 2); @@ -216,16 +231,16 @@ void ExN04HadronPhysics::ConstructProcess() theLENeutronModel = new G4LENeutronInelastic(); theHENeutronModel = new G4HENeutronInelastic(); theNeutronInelastic.RegisterMe(theLENeutronModel); - theNeutronInelastic.RegisterMe(theHENeutronModel); + theNeutronInelastic.RegisterMe(&theTheoModel); pManager->AddDiscreteProcess(&theNeutronInelastic); - //theNeutronFissionModel = new G4LFission(); - //theNeutronFission.RegisterMe(theNeutronFissionModel); - //pManager->AddDiscreteProcess(&NeutronFission); + theNeutronFissionModel = new G4LFission(); + theNeutronFission.RegisterMe(theNeutronFissionModel); + pManager->AddDiscreteProcess(&theNeutronFission); - //theNeutronCaptureModel = new G4LCapture(); - //theNeutronCapture.RegisterMe(theNeutronCaptureModel); - //pManager->AddDiscreteProcess(&theNeutronCapture); + theNeutronCaptureModel = new G4LCapture(); + theNeutronCapture.RegisterMe(theNeutronCaptureModel); + pManager->AddDiscreteProcess(&theNeutronCapture); // AntiNeutron pManager = G4AntiNeutron::AntiNeutron()->GetProcessManager(); @@ -421,8 +436,3 @@ void ExN04HadronPhysics::ConstructProcess() pManager->SetProcessOrdering(&theAntiOmegaMinusMult, idxPostStep, 1); } - - - - - diff --git a/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc index fb3d6e3019..06acbd3134 100644 --- a/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04IonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.cc,v 1.2 2003/06/16 16:49:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04IonPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -72,11 +72,8 @@ void ExN04IonPhysics::ConstructProcess() // add process pManager->AddDiscreteProcess(&theElasticProcess); - pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); - - pManager->AddProcess(&fIonMultipleScattering); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); + pManager->AddProcess(&fIonMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fIonIonisation, -1, 2, 2); // Deuteron pManager = G4Deuteron::Deuteron()->GetProcessManager(); @@ -87,12 +84,9 @@ void ExN04IonPhysics::ConstructProcess() fDeuteronProcess.RegisterMe(fDeuteronModel); pManager->AddDiscreteProcess(&fDeuteronProcess); - pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + pManager->AddProcess(&fDeuteronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fDeuteronIonisation, -1, 2, 2); - pManager->AddProcess(&fDeuteronMultipleScattering); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); - // Triton pManager = G4Triton::Triton()->GetProcessManager(); // add process @@ -102,11 +96,8 @@ void ExN04IonPhysics::ConstructProcess() 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); + pManager->AddProcess(&fTritonMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTritonIonisation, -1, 2, 2); // Alpha pManager = G4Alpha::Alpha()->GetProcessManager(); @@ -117,22 +108,17 @@ void ExN04IonPhysics::ConstructProcess() fAlphaProcess.RegisterMe(fAlphaModel); pManager->AddDiscreteProcess(&fAlphaProcess); - pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + pManager->AddProcess(&fAlphaMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fAlphaIonisation, -1, 2, 2); - pManager->AddProcess(&fAlphaMultipleScattering); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); - // He3 pManager = G4He3::He3()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); - pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + pManager->AddProcess(&fHe3MultipleScattering, -1, 1, 1); + pManager->AddProcess(&fHe3Ionisation, -1, 2, 2); - pManager->AddProcess(&fHe3MultipleScattering); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); } diff --git a/examples/extended/parallel/ParN04/src/ExN04MuonHit.cc b/examples/extended/parallel/ParN04/src/ExN04MuonHit.cc index ca82efb025..c2ec17cbf8 100644 --- a/examples/extended/parallel/ParN04/src/ExN04MuonHit.cc +++ b/examples/extended/parallel/ParN04/src/ExN04MuonHit.cc @@ -37,6 +37,7 @@ ExN04MuonHit::~ExN04MuonHit() {;} ExN04MuonHit::ExN04MuonHit(const ExN04MuonHit &right) + : G4VHit() { edep = right.edep; pos = right.pos; @@ -49,9 +50,9 @@ const ExN04MuonHit& ExN04MuonHit::operator=(const ExN04MuonHit &right) return *this; } -int ExN04MuonHit::operator==(const ExN04MuonHit &right) const +G4int ExN04MuonHit::operator==(const ExN04MuonHit &right) const { - return 0; + return (this==&right) ? 1 : 0; } void ExN04MuonHit::Draw() diff --git a/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc b/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc index 73b19d9112..f2d2d39007 100644 --- a/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc +++ b/examples/extended/parallel/ParN04/src/ExN04MuonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.cc,v 1.2 2003/06/16 16:49:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04MuonPhysics.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -79,48 +79,34 @@ void ExN04MuonPhysics::ConstructProcess() // 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); + + pManager->AddProcess(&fMuPlusMultipleScattering,-1, 1, 1); + pManager->AddProcess(&fMuPlusIonisation, -1, 2, 2); + pManager->AddProcess(&fMuPlusBremsstrahlung, -1, 3, 3); + pManager->AddProcess(&fMuPlusPairProduction, -1, 4, 4); // Muon Minus Physics pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); - // add processes - pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fMuMinusMultipleScattering,-1, 1, 1); + pManager->AddProcess(&fMuMinusIonisation, -1, 2, 2); + pManager->AddProcess(&fMuMinusBremsstrahlung, -1, 3, 3); + pManager->AddProcess(&fMuMinusPairProduction, -1, 4, 4); - 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); + + pManager->AddProcess(&fTauPlusMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTauPlusIonisation, -1, 2, 2); // 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); + pManager->AddProcess(&fTauMinusMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTauMinusIonisation, -1, 2, 2); } diff --git a/examples/extended/parallel/ParN04/src/ExN04MuonSD.cc b/examples/extended/parallel/ParN04/src/ExN04MuonSD.cc index b464103b89..f92224291f 100644 --- a/examples/extended/parallel/ParN04/src/ExN04MuonSD.cc +++ b/examples/extended/parallel/ParN04/src/ExN04MuonSD.cc @@ -49,7 +49,7 @@ void ExN04MuonSD::Initialize(G4HCofThisEvent*HCE) HCE->AddHitsCollection(HCID,muonCollection); } -G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool ExN04MuonSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); @@ -77,7 +77,7 @@ G4bool ExN04MuonSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*HCE) +void ExN04MuonSD::EndOfEvent(G4HCofThisEvent*) {;} void ExN04MuonSD::clear() diff --git a/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc b/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc index c0bffaf2cd..e4acaafc44 100644 --- a/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc +++ b/examples/extended/parallel/ParN04/src/ExN04PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04PhysicsList.cc,v 1.2 2003/06/16 16:49:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04PhysicsList.cc,v 1.3 2003/12/03 14:28:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -30,7 +30,6 @@ #include "globals.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" @@ -51,7 +50,7 @@ ExN04PhysicsList::ExN04PhysicsList(): G4VModularPhysicsList() { // default cut value (1.0mm) defaultCutValue = 1.0*mm; - SetVerboseLevel(1); + // SetVerboseLevel(1); // General Physics RegisterPhysics( new ExN04GeneralPhysics("general") ); diff --git a/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorAction.cc b/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorAction.cc index 0f3023b19f..95c199acaa 100644 --- a/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorAction.cc +++ b/examples/extended/parallel/ParN04/src/ExN04PrimaryGeneratorAction.cc @@ -32,7 +32,8 @@ ExN04PrimaryGeneratorAction::ExN04PrimaryGeneratorAction() { - HEPEvt = new G4HEPEvtInterface("pythia_event.data"); + const char* filename = "pythia_event.data"; + HEPEvt = new G4HEPEvtInterface(filename); G4int n_particle = 1; G4ParticleGun* fParticleGun = new G4ParticleGun(n_particle); diff --git a/examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc b/examples/extended/parallel/ParN04/src/ExN04RunAction.cc similarity index 70% rename from examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc rename to examples/extended/parallel/ParN04/src/ExN04RunAction.cc index 91e0e28d67..93dd8f1fd5 100644 --- a/examples/extended/electromagnetic/TestEm5/src/Em5CalorHit.cc +++ b/examples/extended/parallel/ParN04/src/ExN04RunAction.cc @@ -21,54 +21,56 @@ // ******************************************************************** // // -// $Id: Em5CalorHit.cc,v 1.6 2003/06/06 15:55:51 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// +// $Id: ExN04RunAction.cc,v 1.1 2003/12/03 14:32:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "Em5CalorHit.hh" +#include "ExN04RunAction.hh" -G4Allocator Em5CalorHitAllocator; +#include "G4Run.hh" +#include "G4RunManager.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -Em5CalorHit::Em5CalorHit() -:G4VHit() +ExN04RunAction::ExN04RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04RunAction::~ExN04RunAction() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04RunAction::BeginOfRunAction(const G4Run* aRun) { - EdepAbs = 0.; TrackLengthAbs = 0.; - EdepGap = 0.; TrackLengthGap = 0.; + 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...... -Em5CalorHit::~Em5CalorHit() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -Em5CalorHit::Em5CalorHit(const Em5CalorHit& right) -:G4VHit() +void ExN04RunAction::EndOfRunAction(const G4Run*) { - EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; - EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; + if (G4VVisManager::GetConcreteInstance()) + { + G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -const Em5CalorHit& Em5CalorHit::operator=(const Em5CalorHit& right) -{ - EdepAbs = right.EdepAbs; TrackLengthAbs = right.TrackLengthAbs; - EdepGap = right.EdepGap; TrackLengthGap = right.TrackLengthGap; - return *this; -} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void Em5CalorHit::Print() -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc b/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.cc new file mode 100644 index 0000000000..6648da3676 --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04SteppingVerbose.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: ExN04SteppingVerbose.cc,v 1.1 2003/12/03 14:32:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "ExN04SteppingVerbose.hh" + +#include "G4SteppingManager.hh" +#include "G4UnitsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04SteppingVerbose::ExN04SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04SteppingVerbose::~ExN04SteppingVerbose() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04SteppingVerbose::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 ExN04SteppingVerbose::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/parallel/ParN04/src/ExN04TrackerHit.cc b/examples/extended/parallel/ParN04/src/ExN04TrackerHit.cc index f6094b7618..03d1f2bf1c 100644 --- a/examples/extended/parallel/ParN04/src/ExN04TrackerHit.cc +++ b/examples/extended/parallel/ParN04/src/ExN04TrackerHit.cc @@ -37,6 +37,7 @@ ExN04TrackerHit::~ExN04TrackerHit() {;} ExN04TrackerHit::ExN04TrackerHit(const ExN04TrackerHit &right) + : G4VHit() { edep = right.edep; pos = right.pos; @@ -49,9 +50,9 @@ const ExN04TrackerHit& ExN04TrackerHit::operator=(const ExN04TrackerHit &right) return *this; } -int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const +G4int ExN04TrackerHit::operator==(const ExN04TrackerHit &right) const { - return 0; + return (this==&right) ? 1 : 0; } void ExN04TrackerHit::Draw() diff --git a/examples/extended/parallel/ParN04/src/ExN04TrackerParametrisation.cc b/examples/extended/parallel/ParN04/src/ExN04TrackerParametrisation.cc index 55b3ff1cc8..aad083a394 100644 --- a/examples/extended/parallel/ParN04/src/ExN04TrackerParametrisation.cc +++ b/examples/extended/parallel/ParN04/src/ExN04TrackerParametrisation.cc @@ -38,15 +38,14 @@ ExN04TrackerParametrisation::~ExN04TrackerParametrisation() {;} void ExN04TrackerParametrisation::ComputeTransformation -(const G4int copyNo,G4VPhysicalVolume *physVol) const +(const G4int, G4VPhysicalVolume* physVol) const { G4ThreeVector origin; physVol->SetTranslation(origin); } void ExN04TrackerParametrisation::ComputeDimensions -(G4Tubs & trackerLayer, const G4int copyNo, - const G4VPhysicalVolume * physVol) const +(G4Tubs& trackerLayer, const G4int copyNo, const G4VPhysicalVolume*) const { trackerLayer.SetInnerRadius(tracker_radius[copyNo]); trackerLayer.SetOuterRadius(tracker_radius[copyNo]+tracker_thick); diff --git a/examples/extended/parallel/ParN04/src/ExN04TrackerSD.cc b/examples/extended/parallel/ParN04/src/ExN04TrackerSD.cc index 0389809c88..d35e8cf6c3 100644 --- a/examples/extended/parallel/ParN04/src/ExN04TrackerSD.cc +++ b/examples/extended/parallel/ParN04/src/ExN04TrackerSD.cc @@ -37,7 +37,7 @@ ExN04TrackerSD::ExN04TrackerSD(G4String name) ExN04TrackerSD::~ExN04TrackerSD(){;} -void ExN04TrackerSD::Initialize(G4HCofThisEvent*HCE) +void ExN04TrackerSD::Initialize(G4HCofThisEvent* HCE) { static int HCID = -1; trackerCollection = new ExN04TrackerHitsCollection @@ -47,7 +47,7 @@ void ExN04TrackerSD::Initialize(G4HCofThisEvent*HCE) HCE->AddHitsCollection(HCID,trackerCollection); } -G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) +G4bool ExN04TrackerSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) { G4double edep = aStep->GetTotalEnergyDeposit(); if(edep==0.) return false; @@ -60,8 +60,9 @@ G4bool ExN04TrackerSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) return true; } -void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*HCE) -{;} +void ExN04TrackerSD::EndOfEvent(G4HCofThisEvent*) +{ +} void ExN04TrackerSD::clear() { @@ -74,4 +75,3 @@ void ExN04TrackerSD::DrawAll() void ExN04TrackerSD::PrintAll() { } - diff --git a/examples/extended/parallel/ParN04/src/ExN04VisManager.cc b/examples/extended/parallel/ParN04/src/ExN04VisManager.cc new file mode 100755 index 0000000000..9bf76d583a --- /dev/null +++ b/examples/extended/parallel/ParN04/src/ExN04VisManager.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: ExN04VisManager.cc,v 1.1 2003/12/03 14:28:04 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// John Allison 24th January 1998. + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifdef G4VIS_USE + +#include "ExN04VisManager.hh" + +// Supported drivers... + +// Not needing external packages or libraries... +#include "G4ASCIITree.hh" +#include "G4DAWNFILE.hh" +#include "G4GAGTree.hh" +#include "G4HepRepFile.hh" +#include "G4HepRep.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_OPENGLX +#include "G4OpenGLImmediateX.hh" +#include "G4OpenGLStoredX.hh" +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 +#include "G4OpenGLImmediateWin32.hh" +#include "G4OpenGLStoredWin32.hh" +#endif + +#ifdef G4VIS_USE_OPENGLXM +#include "G4OpenGLImmediateXm.hh" +#include "G4OpenGLStoredXm.hh" +#endif + +#ifdef G4VIS_USE_OIX +#include "G4OpenInventorX.hh" +#endif + +#ifdef G4VIS_USE_OIWIN32 +#include "G4OpenInventorWin32.hh" +#endif + +#ifdef G4VIS_USE_VRML +#include "G4VRML1.hh" +#include "G4VRML2.hh" +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +ExN04VisManager::ExN04VisManager () {} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void ExN04VisManager::RegisterGraphicsSystems () { + + // Graphics Systems not needing external packages or libraries... + RegisterGraphicsSystem (new G4ASCIITree); + RegisterGraphicsSystem (new G4DAWNFILE); + RegisterGraphicsSystem (new G4GAGTree); + RegisterGraphicsSystem (new G4HepRepFile); + RegisterGraphicsSystem (new G4HepRep); + RegisterGraphicsSystem (new G4RayTracer); + RegisterGraphicsSystem (new G4VRML1File); + RegisterGraphicsSystem (new G4VRML2File); + + // Graphics systems needing external packages or libraries... + +#ifdef G4VIS_USE_DAWN + RegisterGraphicsSystem (new G4FukuiRenderer); +#endif + +#ifdef G4VIS_USE_OPENGLX + RegisterGraphicsSystem (new G4OpenGLImmediateX); + RegisterGraphicsSystem (new G4OpenGLStoredX); +#endif + +#ifdef G4VIS_USE_OPENGLWIN32 + RegisterGraphicsSystem (new G4OpenGLImmediateWin32); + RegisterGraphicsSystem (new G4OpenGLStoredWin32); +#endif + +#ifdef G4VIS_USE_OPENGLXM + RegisterGraphicsSystem (new G4OpenGLImmediateXm); + RegisterGraphicsSystem (new G4OpenGLStoredXm); +#endif + +#ifdef G4VIS_USE_OIX + RegisterGraphicsSystem (new G4OpenInventorX); +#endif + +#ifdef G4VIS_USE_OIWIN32 + RegisterGraphicsSystem (new G4OpenInventorWin32); +#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 (); + } +} + +#endif + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc b/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc index 356a5d527d..0f497a4a92 100644 --- a/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc +++ b/examples/extended/parallel/ParN04/src/ParExN04MarshaledHits.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParExN04MarshaledHits.cc,v 1.1 2002/03/05 15:22:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc b/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc index fa76f13a99..c5cca00f6d 100644 --- a/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc +++ b/examples/extended/parallel/ParN04/src/ParMarshaledObj.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParMarshaledObj.cc,v 1.1 2002/03/05 15:22:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/src/ParRunManager.cc b/examples/extended/parallel/ParN04/src/ParRunManager.cc index ec58ab91c5..33c6b44447 100644 --- a/examples/extended/parallel/ParN04/src/ParRunManager.cc +++ b/examples/extended/parallel/ParN04/src/ParRunManager.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ParRunManager.cc,v 1.5 2003/06/16 16:49:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // Parallel Library for Geant4 diff --git a/examples/extended/parallel/ParN04/vis.mac b/examples/extended/parallel/ParN04/vis.mac new file mode 100644 index 0000000000..aacc1b037b --- /dev/null +++ b/examples/extended/parallel/ParN04/vis.mac @@ -0,0 +1,31 @@ +# +# 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 +# +# 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 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/endOfEventAction accumulate + diff --git a/examples/extended/persistency/History b/examples/extended/persistency/History index ef54fb58b5..a0d625de3d 100644 --- a/examples/extended/persistency/History +++ b/examples/extended/persistency/History @@ -1,4 +1,4 @@ -$Id: History,v 1.4 2003/05/30 11:15:02 gcosmo Exp $ +$Id: History,v 1.5 2003/11/13 15:26:01 johna Exp $ -------------------------------------------------- ========================================================= @@ -16,6 +16,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 13th, 2003 John Allison +- Removed OPACS from Vis Manager. + 30 May, 03 G.Cosmo (persistencyEx-V05-01-00) - Tagged and included updates to README and scripts which were on the HEAD. diff --git a/examples/extended/persistency/PersEx01/G4PersEx01.cc b/examples/extended/persistency/PersEx01/G4PersEx01.cc index 4488037092..613583f393 100644 --- a/examples/extended/persistency/PersEx01/G4PersEx01.cc +++ b/examples/extended/persistency/PersEx01/G4PersEx01.cc @@ -22,7 +22,7 @@ // // // $Id: G4PersEx01.cc,v 1.1 2002/12/04 02:44:24 morita Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc b/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc index 0e00431c02..218c51306c 100644 --- a/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc +++ b/examples/extended/persistency/PersEx01/HitsAnalyzer/HitsAnalyzer.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #include #include #include diff --git a/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh b/examples/extended/persistency/PersEx01/include/Pers01CalorHit.hh index 1cae466295..ab95d2fa6f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh b/examples/extended/persistency/PersEx01/include/Pers01CalorimeterSD.hh index d661f7839d..58063dbfed 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh b/examples/extended/persistency/PersEx01/include/Pers01DetectorConstruction.hh index 548efa41cf..47d87d6697 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01DetectorMessenger.hh index aab188ba0f..7b95192a9e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh b/examples/extended/persistency/PersEx01/include/Pers01EventAction.hh index a100323056..dedf412144 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01EventActionMessenger.hh index 9c5eba7c74..2324af3a32 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh b/examples/extended/persistency/PersEx01/include/Pers01PhysicsList.hh index a6137b344b..5db6c3defc 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorAction.hh index 032072c7ec..095d95bca3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh b/examples/extended/persistency/PersEx01/include/Pers01PrimaryGeneratorMessenger.hh index 0022072a66..9f1c0bca0f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh b/examples/extended/persistency/PersEx01/include/Pers01RunAction.hh index 4b6e8fe0e6..09a1b3c0dd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh b/examples/extended/persistency/PersEx01/include/Pers01SteppingAction.hh index e0fe77fdab..277b129cf1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh b/examples/extended/persistency/PersEx01/include/Pers01SteppingVerbose.hh index cfbd76e599..cffe57eafe 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh b/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh index 1b069402e6..f0195707e4 100644 --- a/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh +++ b/examples/extended/persistency/PersEx01/include/Pers01VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: Pers01VisManager.hh,v 1.1 2002/12/04 02:44:25 morita Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc b/examples/extended/persistency/PersEx01/src/Pers01CalorHit.cc index e8bb712dab..1ccf8e5e6a 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.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc b/examples/extended/persistency/PersEx01/src/Pers01CalorimeterSD.cc index 832cd58282..2024b969b4 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.1 2002/12/04 02:44:26 morita Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc b/examples/extended/persistency/PersEx01/src/Pers01DetectorConstruction.cc index cb42b1e218..7e4bbf157f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01DetectorMessenger.cc index 4f9025f05f..40aef8d048 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc b/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc index 3a316ab349..9ddb0dccdc 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: Pers01EventAction.cc,v 1.2 2003/06/16 16:49:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01EventActionMessenger.cc index bba0f1882d..2253585e7a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc b/examples/extended/persistency/PersEx01/src/Pers01PhysicsList.cc index 381ace4245..16263636ae 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorAction.cc index a3b0aac739..4c268272c5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc b/examples/extended/persistency/PersEx01/src/Pers01PrimaryGeneratorMessenger.cc index ef47ae7ce4..42b1ddf4ff 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc b/examples/extended/persistency/PersEx01/src/Pers01RunAction.cc index e7aa1b1ec9..b0c94c5a42 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc b/examples/extended/persistency/PersEx01/src/Pers01SteppingAction.cc index 393446dec3..025c791091 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc b/examples/extended/persistency/PersEx01/src/Pers01SteppingVerbose.cc index 3b38a20429..6d2c6f5ed3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc b/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc index e6baa39c3e..d9cd1d2d6f 100644 --- a/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc +++ b/examples/extended/persistency/PersEx01/src/Pers01VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: Pers01VisManager.cc,v 1.2 2003/03/17 16:49:01 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: Pers01VisManager.cc,v 1.3 2003/11/13 15:10:50 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void Pers01VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/extended/persistency/rootio/include/G4DigitRootIO.hh b/examples/extended/persistency/rootio/include/G4DigitRootIO.hh index b053493d89..e3134919ca 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4DigitRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4EventRootIO.hh b/examples/extended/persistency/rootio/include/G4EventRootIO.hh index 01025fe87b..d93e3c128d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4EventRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh b/examples/extended/persistency/rootio/include/G4HepMCRootIO.hh index 9ac4298a71..e09d8f8780 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4HepMCRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4HitRootIO.hh b/examples/extended/persistency/rootio/include/G4HitRootIO.hh index 1074d5156e..64fc87c7ec 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4HitRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh b/examples/extended/persistency/rootio/include/G4MCTruthRootIO.hh index b22d78bbca..d4d01b3c93 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4MCTruthRootIO.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootEvent.hh b/examples/extended/persistency/rootio/include/G4RootEvent.hh index 4f5cf63c8c..d7aae96f00 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4RootEvent.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootIOManager.hh b/examples/extended/persistency/rootio/include/G4RootIOManager.hh index eb6bff56f0..6fb36fae27 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4RootIOManager.hh // diff --git a/examples/extended/persistency/rootio/include/G4RootTransManager.hh b/examples/extended/persistency/rootio/include/G4RootTransManager.hh index 362f03f895..3c6d894718 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.3 2002/12/13 14:45:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4RootTransManager.hh // diff --git a/examples/extended/persistency/rootio/src/G4DigitRootIO.cc b/examples/extended/persistency/rootio/src/G4DigitRootIO.cc index 3177e7afe8..c9839e63cc 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.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4DigitRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4EventRootIO.cc b/examples/extended/persistency/rootio/src/G4EventRootIO.cc index 7fbfa8623b..4ee1123eb2 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.3 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4EventRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc b/examples/extended/persistency/rootio/src/G4HepMCRootIO.cc index 1cc7de7929..b3204eb20d 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.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4HepMCRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4HitRootIO.cc b/examples/extended/persistency/rootio/src/G4HitRootIO.cc index e5cf80e67a..4a66cfb58f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4HitRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc b/examples/extended/persistency/rootio/src/G4MCTruthRootIO.cc index dbdfaa8e61..01b6f1fa5c 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.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4MCTruthRootIO.cc // diff --git a/examples/extended/persistency/rootio/src/G4RootEvent.cc b/examples/extended/persistency/rootio/src/G4RootEvent.cc index f90dd55ece..1bb903701a 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.3 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4RootEvent.cc // diff --git a/examples/extended/persistency/rootio/src/G4RootIOManager.cc b/examples/extended/persistency/rootio/src/G4RootIOManager.cc index 967ad84938..04eb4cd5a2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4RootIOManager.cc // diff --git a/examples/extended/persistency/rootio/src/G4RootTransManager.cc b/examples/extended/persistency/rootio/src/G4RootTransManager.cc index 4b2102ce4e..fa0b1f21a4 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.4 2002/12/13 14:45:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // File: G4RootTransManager.cc // diff --git a/examples/novice/N01/History b/examples/novice/N01/History index bd13b91c96..4f9ce75d7b 100644 --- a/examples/novice/N01/History +++ b/examples/novice/N01/History @@ -1,4 +1,4 @@ -$Id: History,v 1.7 2003/03/25 14:40:07 maire Exp $ +$Id: History,v 1.8 2003/10/06 08:58:59 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,9 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +October 06, 2003 mma (exampleN01-V05-02-00) +- cosmetic cleanup in material definitions + March 25, 2003 mma (exampleN01-V05-00-00) - Use G4PVPlacement constructor in logical mother, even for the world. diff --git a/examples/novice/N01/exampleN01.cc b/examples/novice/N01/exampleN01.cc index 3744c0c719..e0d120124a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N01/exampleN01.out b/examples/novice/N01/exampleN01.out index 4ac8f2bdbc..441ab254b0 100644 --- a/examples/novice/N01/exampleN01.out +++ b/examples/novice/N01/exampleN01.out @@ -1,8 +1,34 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** + +========= Table of registered couples ============================== + +Index : 0 used in the geometry : Yes recalculation needed : No + Material : ArgonGas + Range cuts : gamma 1 mm e- 1 mm e+ 0 fm + Energy thresholds : gamma 990 eV e- 990 eV 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+ 0 fm + Energy thresholds : gamma 6.88731 keV e- 596.68 keV 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+ 0 fm + Energy thresholds : gamma 100.511 keV e- 1.37814 MeV e+ -1 MeV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== + Start Run processing. ===================================== G4EventManager::ProcessOneEvent() @@ -193,5 +219,5 @@ Terminate current event processing. Run terminated. Run Summary Number of events processed : 3 - User=0.05s Real=0.05s Sys=0s + User=0.03s Real=0.09s Sys=0.05s G4 kernel has come to Quit state. diff --git a/examples/novice/N01/include/ExN01DetectorConstruction.hh b/examples/novice/N01/include/ExN01DetectorConstruction.hh index 8b3b3706df..2c11fd1d6c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN01DetectorConstruction_H diff --git a/examples/novice/N01/include/ExN01PhysicsList.hh b/examples/novice/N01/include/ExN01PhysicsList.hh index 8b4539da7c..c0f936a048 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh b/examples/novice/N01/include/ExN01PrimaryGeneratorAction.hh index 9519a840d4..eef292dca2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN01PrimaryGeneratorAction_h diff --git a/examples/novice/N01/src/ExN01DetectorConstruction.cc b/examples/novice/N01/src/ExN01DetectorConstruction.cc index 36b2415ef6..a82648deac 100644 --- a/examples/novice/N01/src/ExN01DetectorConstruction.cc +++ b/examples/novice/N01/src/ExN01DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN01DetectorConstruction.cc,v 1.7 2003/03/25 14:40:07 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN01DetectorConstruction.cc,v 1.8 2003/10/06 08:59:11 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN01DetectorConstruction.hh" @@ -54,19 +54,15 @@ G4VPhysicalVolume* ExN01DetectorConstruction::Construct() G4double a; // atomic mass G4double z; // atomic number G4double density; - G4String name; - a = 39.95*g/mole; - density = 1.782e-03*g/cm3; - G4Material* Ar = new G4Material(name="ArgonGas", z=18., a, density); + G4Material* Ar = + new G4Material("ArgonGas", z= 18., a= 39.95*g/mole, density= 1.782*mg/cm3); - a = 26.98*g/mole; - density = 2.7*g/cm3; - G4Material* Al = new G4Material(name="Aluminum", z=13., a, density); + G4Material* Al = + new G4Material("Aluminum", z= 13., a= 26.98*g/mole, density= 2.7*g/cm3); - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Lead", z=82., a, density); + G4Material* Pb = + new G4Material("Lead", z= 82., a= 207.19*g/mole, density= 11.35*g/cm3); //------------------------------------------------------ volumes diff --git a/examples/novice/N01/src/ExN01PhysicsList.cc b/examples/novice/N01/src/ExN01PhysicsList.cc index 8e08d727ae..66b4f08b16 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc b/examples/novice/N01/src/ExN01PrimaryGeneratorAction.cc index eb93b38df9..eb0eacc29a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN01PrimaryGeneratorAction.hh" diff --git a/examples/novice/N02/History b/examples/novice/N02/History index ec06673fc3..848b892305 100644 --- a/examples/novice/N02/History +++ b/examples/novice/N02/History @@ -1,4 +1,4 @@ -$Id: History,v 1.29 2003/05/28 09:54:31 gcosmo Exp $ +$Id: History,v 1.33 2003/11/10 14:31:24 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,19 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +10-11-03 G.Cosmo (exampleN02-V05-02-03) +- Removed OPACS driver from vis-manager. +- Cleared warnings for parameterised detectors. + +30-10-03 G.Cosmo (exampleN02-V05-02-02) +- Cleared compilation warnings due to new class G4Orb. + +24-10-03 mma (exampleN02-V05-02-01) +- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +06-10-03 mma (exampleN02-V05-02-00) +- cosmetic cleanup in material definitions + 28-05-03 G.Cosmo (exampleN02-V05-01-00) - Get rid of pedantic warnings... @@ -27,17 +40,17 @@ track of all tags. 27-11-01 mma (exampleN02-V03-02-04) - vis.mac: /vis/viewer/set/viewpointThetaPhi -19-11-01 John (exampleN02-V03-02-03) +19-11-01 J.Allison (exampleN02-V03-02-03) - Updated ExN02VisManager.cc for new graphics systems and defaults. -07-11-01 Satoshi (exampleN02-V03-02-02) +07-11-01 S.Tanaka (exampleN02-V03-02-02) - vis.mac: /vis/viewer/refresh + /vis/viewer/update is replaced with their equivalent command /vis/viewer/flush. 24-10-01 mma (exampleN02-V03-02-01) - initInter.mac renamed vis.mac -19-10-01 Steve O'Neale (examples-V03-02-00) +19-10-01 S.O'Neale (examples-V03-02-00) - Update reference output 11-10-01 mma (exampleN02-V03-02-00) @@ -47,7 +60,7 @@ track of all tags. 12-07-01 mma - DetectorMessenger: setField, help: magnetic field in X dirction -20-02-01 S.O'Neale (exampleN02-V03-00-03) update reference outputs following +20-02-01 S.O'Neale (exampleN02-V03-00-03) update reference outputs following materials-V03-00-04 (tagset 268) 09-02-01 M.Asai (exampleN02-V03-00-02) diff --git a/examples/novice/N02/exampleN02.cc b/examples/novice/N02/exampleN02.cc index ad82f68696..c8c0425bab 100644 --- a/examples/novice/N02/exampleN02.cc +++ b/examples/novice/N02/exampleN02.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN02.cc,v 1.8 2002/01/09 17:23:49 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/exampleN02.out b/examples/novice/N02/exampleN02.out index d13a74e93c..6a435d4f85 100644 --- a/examples/novice/N02/exampleN02.out +++ b/examples/novice/N02/exampleN02.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -25,16 +25,16 @@ The materials defined are : 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: Oxigen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % + ---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 % - Material: Pb density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm - ---> Element: Pb Z = 82.0 N = 207.2 A = 207.19 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: XenonGas density: 5.458 mg/cm3 temperature: 293.15 K pressure: 1.00 atm RadLength: 15.539 m + Material: XenonGas density: 5.458 mg/cm3 temperature: 632420632.24 K pressure: 0.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 Pb +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 @@ -48,54 +48,78 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV 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: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 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: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ============================== @@ -107,7 +131,7 @@ Index : 0 used in the geometry : Yes recalculation needed : No DefaultRegionForTheWorld Index : 1 used in the geometry : Yes recalculation needed : No - Material : Pb + 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 : @@ -130,2313 +154,2189 @@ 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 4.52 mum 37.2 mum -2.86 m 200 MeV 7.67 keV 4.79 cm 4.79 cm World eIoni - 2 1.42 mum 177 mum -2.65 m 200 MeV 57.1 keV 21.4 cm 26.2 cm World eIoni - 3 -19.3 mum 125 mum -2.45 m 200 MeV 44.2 keV 19.8 cm 46 cm World Transportation - 4 -23.8 mum 112 mum -2.45 m 198 MeV 1.16 MeV 682 mum 46.1 cm Target eBrem - 5 8.14 mum 121 mum -2.45 m 183 MeV 1.36 MeV 791 mum 46.1 cm Target eBrem - 6 -11.3 mum 129 mum -2.45 m 176 MeV 1.01 MeV 569 mum 46.2 cm Target eBrem - 7 -14.3 mum 136 mum -2.45 m 175 MeV 148 keV 136 mum 46.2 cm Target eBrem - 8 -23.8 mum 152 mum -2.45 m 174 MeV 925 keV 646 mum 46.3 cm Target eBrem - 9 -52.6 mum 173 mum -2.45 m 172 MeV 1.16 MeV 780 mum 46.4 cm Target eBrem - 10 -75.3 mum 187 mum -2.45 m 170 MeV 594 keV 452 mum 46.4 cm Target eBrem - 11 -206 mum 359 mum -2.44 m 165 MeV 4.78 MeV 2.09 mm 46.6 cm Target eBrem - 12 -217 mum 372 mum -2.44 m 110 MeV 197 keV 206 mum 46.6 cm Target eBrem - 13 -202 mum 560 mum -2.44 m 106 MeV 3.25 MeV 2.36 mm 46.9 cm Target eBrem - 14 -197 mum 582 mum -2.44 m 103 MeV 648 keV 352 mum 46.9 cm Target eBrem - 15 -181 mum 604 mum -2.44 m 87.9 MeV 420 keV 409 mum 46.9 cm Target eBrem - 16 -181 mum 604 mum -2.44 m 86.4 MeV 364 eV 2.03 mum 46.9 cm Target eBrem - 17 -200 mum 596 mum -2.44 m 26 MeV 1.34 MeV 1.16 mm 47.1 cm Target eBrem - 18 -209 mum 610 mum -2.44 m 24.6 MeV 403 keV 380 mum 47.1 cm Target eBrem - 19 -255 mum 621 mum -2.44 m 19.5 MeV 283 keV 233 mum 47.1 cm Target eBrem - 20 -576 mum 558 mum -2.44 m 10.1 MeV 1.63 MeV 1.37 mm 47.3 cm Target eBrem - 21 -685 mum 528 mum -2.44 m 9.63 MeV 204 keV 196 mum 47.3 cm Target eBrem - 22 -1.33 mm 825 mum -2.44 m 6.35 MeV 1.33 MeV 1.16 mm 47.4 cm Target eBrem - 23 -1.24 mm 1.28 mm -2.44 m 3.08 MeV 1.61 MeV 1.12 mm 47.5 cm Target eBrem - 24 -970 mum 973 mum -2.44 m 1.61 MeV 1.09 MeV 1.15 mm 47.6 cm Target eBrem - 25 -1.52 mm 431 mum -2.44 m 361 keV 1.25 MeV 1.22 mm 47.7 cm Target eIoni - 26 -1.51 mm 449 mum -2.44 m 0 eV 361 keV 191 mum 47.8 cm Target eIoni - 27 -1.51 mm 449 mum -2.44 m 0 eV 0 eV 0 fm 47.8 cm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.51 mm 449 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -113 mum 8.02 mm -2.45 m 0 eV 88 keV 1.43 cm 1.43 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 26 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -113 mum 8.02 mm -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -112 mum 8.01 mm -2.45 m 0 eV 423 keV 240 mum 240 mum Target eIoni + 1 0 fm 0 fm -2.86 m 200 MeV 7.67 keV 4.79 cm 4.79 cm World eIoni + 2 -299 mum 198 mum -2.45 m 200 MeV 93 keV 41.2 cm 46 cm World Transportation + 3 -299 mum 195 mum -2.45 m 180 MeV 341 keV 260 mum 46 cm Target eBrem + 4 -299 mum 195 mum -2.45 m 172 MeV 1.03 keV 2.64 mum 46 cm Target eBrem + 5 -310 mum 221 mum -2.45 m 170 MeV 1.02 MeV 832 mum 46.1 cm Target eBrem + 6 -353 mum 212 mum -2.45 m 168 MeV 1.1 MeV 953 mum 46.2 cm Target eBrem + 7 -352 mum 214 mum -2.45 m 167 MeV 277 keV 234 mum 46.2 cm Target eBrem + 8 -312 mum 216 mum -2.45 m 165 MeV 1.38 MeV 922 mum 46.3 cm Target eBrem + 9 -311 mum 221 mum -2.45 m 146 MeV 113 keV 100 mum 46.3 cm Target eBrem + 10 -307 mum 223 mum -2.45 m 125 MeV 135 keV 135 mum 46.3 cm Target eBrem + 11 -269 mum 343 mum -2.45 m 122 MeV 1.91 MeV 1.4 mm 46.5 cm Target eBrem + 12 -37.2 mum 549 mum -2.44 m 116 MeV 5.06 MeV 2.23 mm 46.7 cm Target eBrem + 13 -18.3 mum 568 mum -2.44 m 75.4 MeV 210 keV 221 mum 46.7 cm Target eBrem + 14 284 mum 613 mum -2.44 m 71 MeV 3.52 MeV 2.57 mm 47 cm Target eBrem + 15 317 mum 598 mum -2.44 m 70.4 MeV 565 keV 300 mum 47 cm Target eIoni + 16 322 mum 592 mum -2.44 m 68.5 MeV 96.7 keV 85.4 mum 47 cm Target eBrem + 17 260 mum 411 mum -2.44 m 38.4 MeV 3.85 MeV 1.45 mm 47.2 cm Target eBrem + 18 407 mum 315 mum -2.44 m 35.9 MeV 836 keV 733 mum 47.2 cm Target eBrem + 19 367 mum 357 mum -2.43 m 31.5 MeV 3.39 MeV 2.86 mm 47.5 cm Target eBrem + 20 480 mum 360 mum -2.43 m 26.7 MeV 316 keV 216 mum 47.6 cm Target eBrem + 21 904 mum 448 mum -2.43 m 23.1 MeV 1.02 MeV 619 mum 47.6 cm Target eBrem + 22 1.83 mm 762 mum -2.43 m 17.2 MeV 3.95 MeV 1.27 mm 47.7 cm Target eBrem + 23 2.51 mm 922 mum -2.43 m 15.1 MeV 1.45 MeV 752 mum 47.8 cm Target eBrem + 24 2.7 mm 939 mum -2.43 m 1.48 MeV 394 keV 335 mum 47.8 cm Target eBrem + 25 2.81 mm 938 mum -2.43 m 0 eV 1.48 MeV 1.15 mm 48 cm Target eIoni + 26 2.81 mm 938 mum -2.43 m 0 eV 0 eV 0 fm 48 cm Target annihil ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.51 mm 449 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.76 mm -881 mum -2.43 m 260 keV 0 eV 2.51 mm 2.51 mm Target compt - 2 -1 cm 1.27 mm -2.43 m 0 eV 88 keV 8.58 mm 1.11 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 29, Parent ID = 25 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1 cm 1.27 mm -2.43 m 172 keV 0 eV 0 fm 0 fm Target initStep - 1 -1 cm 1.27 mm -2.43 m 5.55e-11 eV 172 keV 65 mum 65 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 28, Parent ID = 25 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.76 mm -881 mum -2.43 m 251 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.75 mm -886 mum -2.43 m 5.55e-11 eV 251 keV 114 mum 114 mum Target eIoni + 0 2.81 mm 938 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm 5.03 mm -2.43 m 511 keV 0 eV 2.35 cm 2.35 cm Target Transportation + 2 11.2 cm 2.11 cm -2.4 m 511 keV 0 eV 9.21 cm 11.6 cm World Transportation + 3 2.4 m 44.3 cm -1.71 m 511 keV 0 eV 2.43 m 2.54 m Tracker Transportation + 4 2.91 m 53.7 cm -1.56 m 511 keV 0 eV 54.1 cm 3.08 m OutOfWorld Transportation ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -970 mum 973 mum -2.44 m 383 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.4 mm 3.7 mm -2.44 m 366 keV 0 eV 6.96 mm 6.96 mm Target compt - 2 -7.97 mm 4.57 mm -2.44 m 353 keV 0 eV 1.82 mm 8.78 mm Target compt - 3 -1.21 cm 5.47 mm -2.44 m 296 keV 0 eV 4.25 mm 1.3 cm Target compt - 4 -1.23 cm 5.78 mm -2.44 m 0 eV 88 keV 380 mum 1.34 cm Target phot + 0 2.81 mm 938 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.54 mm 135 mum -2.43 m 0 eV 88 keV 4.61 mm 4.61 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 24 +* G4Track Information: Particle = e-, Track ID = 26, Parent ID = 24 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.23 cm 5.78 mm -2.44 m 208 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.23 cm 5.78 mm -2.44 m 0 eV 208 keV 86.8 mum 86.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 24 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.21 cm 5.47 mm -2.44 m 56.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.21 cm 5.47 mm -2.44 m 6.94e-12 eV 56.6 keV 11 mum 11 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 31, Parent ID = 24 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.97 mm 4.57 mm -2.44 m 12.8 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.97 mm 4.57 mm -2.44 m 3.47e-12 eV 12.8 keV 1.01 mum 1.01 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 30, Parent ID = 24 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.4 mm 3.7 mm -2.44 m 17.6 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.4 mm 3.7 mm -2.44 m 0 eV 17.6 keV 1.67 mum 1.67 mum Target eIoni + 0 -1.54 mm 135 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.54 mm 121 mum -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.24 mm 1.28 mm -2.44 m 1.66 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.04 cm 793 mum -2.42 m 506 keV 0 eV 2.66 cm 2.66 cm Target compt - 2 -2.05 cm 2.69 mm -2.42 m 307 keV 0 eV 2.07 mm 2.87 cm Target compt - 3 -1.92 cm 3.04 mm -2.42 m 0 eV 88 keV 1.46 mm 3.02 cm Target phot + 0 2.7 mm 939 mum -2.43 m 13.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.21 mm 977 mum -2.43 m 0 eV 0 eV 634 mum 634 mum Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 23 +* G4Track Information: Particle = e+, Track ID = 28, Parent ID = 23 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.92 cm 3.04 mm -2.42 m 219 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.92 cm 3.04 mm -2.42 m 0 eV 219 keV 93.6 mum 93.6 mum Target eIoni + 0 3.21 mm 977 mum -2.43 m 9.81 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.92 mm 1.46 mm -2.43 m 7 MeV 2.81 MeV 2.15 mm 2.15 mm Target eBrem + 2 6.01 mm 3.48 mm -2.43 m 3.52 MeV 2.66 MeV 2.42 mm 4.56 mm Target eBrem + 3 6.3 mm 3.05 mm -2.43 m 0 eV 3.52 MeV 2.81 mm 7.37 mm Target eIoni + 4 6.3 mm 3.05 mm -2.43 m 0 eV 0 eV 0 fm 7.37 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 23 +* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 28 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.05 cm 2.69 mm -2.42 m 199 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.05 cm 2.69 mm -2.42 m 0 eV 199 keV 80.5 mum 80.5 mum Target eIoni + 0 6.3 mm 3.05 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 7.6 mm 6.31 mm -2.43 m 0 eV 88 keV 3.78 mm 3.78 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 23 +* G4Track Information: Particle = e-, Track ID = 32, Parent ID = 31 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.04 cm 793 mum -2.42 m 1.15 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.05 cm 772 mum -2.42 m 4.44e-10 eV 1.15 MeV 846 mum 846 mum Target eIoni + 0 7.6 mm 6.31 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 7.62 mm 6.32 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 28 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.3 mm 3.05 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.94 mm -7.83 mm -2.44 m 292 keV 0 eV 1.26 cm 1.26 cm Target compt + 2 3.52 mm -9.02 mm -2.44 m 0 eV 88 keV 1.98 mm 1.46 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 30 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.52 mm -9.02 mm -2.44 m 204 keV 0 eV 0 fm 0 fm Target initStep + 1 3.53 mm -9.02 mm -2.44 m 0 eV 204 keV 83.9 mum 83.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 33, Parent ID = 30 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.94 mm -7.83 mm -2.44 m 219 keV 0 eV 0 fm 0 fm Target initStep + 1 1.93 mm -7.83 mm -2.44 m 0 eV 219 keV 94.2 mum 94.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 28 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.01 mm 3.48 mm -2.43 m 821 keV 0 eV 0 fm 0 fm Target initStep + 1 1.18 cm -4.28 mm -2.44 m 301 keV 0 eV 9.99 mm 9.99 mm Target compt + 2 1.23 cm -4.19 mm -2.44 m 0 eV 88 keV 1.44 mm 1.14 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 29 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.23 cm -4.19 mm -2.44 m 213 keV 0 eV 0 fm 0 fm Target initStep + 1 1.23 cm -4.19 mm -2.44 m 0 eV 213 keV 90 mum 90 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 29 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 cm -4.28 mm -2.44 m 520 keV 0 eV 0 fm 0 fm Target initStep + 1 1.18 cm -4.3 mm -2.44 m 0 eV 520 keV 318 mum 318 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 27, Parent ID = 23 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.21 mm 977 mum -2.43 m 2.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.56 mm 1.33 mm -2.43 m 1.34 MeV 703 keV 720 mum 720 mum Target eBrem + 2 3.53 mm 1.65 mm -2.43 m 318 keV 1.02 MeV 595 mum 1.32 mm Target eBrem + 3 3.53 mm 1.65 mm -2.43 m 0 eV 318 keV 162 mum 1.48 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 37, Parent ID = 27 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.56 mm 1.33 mm -2.43 m 370 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 mm 1.7 mm -2.43 m 365 keV 0 eV 1.55 mm 1.55 mm Target compt + 2 -2.57 mm 2.21 mm -2.43 m 0 eV 88 keV 4.7 mm 6.25 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 37 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.57 mm 2.21 mm -2.43 m 277 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.57 mm 2.22 mm -2.43 m 0 eV 277 keV 132 mum 132 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 37 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 mm 1.7 mm -2.43 m 4.95 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 mm 1.7 mm -2.43 m 0 eV 4.95 keV 251 nm 251 nm Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.33 mm 825 mum -2.44 m 1.95 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.2 mm 955 mum -2.43 m 603 keV 0 eV 3.58 mm 3.58 mm Target compt - 2 -3.58 mm -329 mum -2.43 m 282 keV 0 eV 1.44 mm 5.02 mm Target compt - 3 -1.26 mm -793 mum -2.43 m 0 eV 88 keV 2.49 mm 7.51 mm Target phot + 0 2.51 mm 922 mum -2.43 m 592 keV 0 eV 0 fm 0 fm Target initStep + 1 3.4 mm 1.42 mm -2.43 m 0 eV 88 keV 2.51 mm 2.51 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 22 +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 22 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.26 mm -793 mum -2.43 m 194 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.26 mm -788 mum -2.43 m 2.78e-11 eV 194 keV 77.6 mum 77.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 22 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.58 mm -329 mum -2.43 m 321 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.58 mm -337 mum -2.43 m 1.11e-10 eV 321 keV 164 mum 164 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 22 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.2 mm 955 mum -2.43 m 1.35 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.24 mm 985 mum -2.43 m 0 eV 1.35 MeV 1.01 mm 1.01 mm Target eIoni + 0 3.4 mm 1.42 mm -2.43 m 504 keV 0 eV 0 fm 0 fm Target initStep + 1 3.41 mm 1.41 mm -2.43 m 0 eV 504 keV 305 mum 305 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -685 mum 528 mum -2.44 m 284 keV 0 eV 0 fm 0 fm Target initStep - 1 -699 mum 525 mum -2.44 m 0 eV 88 keV 40.1 mum 40.1 mum Target phot + 0 1.83 mm 762 mum -2.43 m 2.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.71 mm 1.57 mm -2.43 m 1.36 MeV 0 eV 2.51 mm 2.51 mm Target compt + 2 4.77 mm 1.34 mm -2.43 m 0 eV 0 eV 1.34 mm 3.85 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 21 +* G4Track Information: Particle = e+, Track ID = 43, Parent ID = 21 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -699 mum 525 mum -2.44 m 196 keV 0 eV 0 fm 0 fm Target initStep - 1 -702 mum 523 mum -2.44 m 0 eV 196 keV 79.1 mum 79.1 mum Target eIoni + 0 4.77 mm 1.34 mm -2.43 m 6.86 keV 0 eV 0 fm 0 fm Target initStep + 1 4.77 mm 1.34 mm -2.43 m 0 eV 6.86 keV 304 nm 304 nm Target eIoni + 2 4.77 mm 1.34 mm -2.43 m 0 eV 0 eV 0 fm 304 nm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 43 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -576 mum 558 mum -2.44 m 7.76 MeV 0 eV 0 fm 0 fm Target initStep - 1 -6.6 mm -818 mum -2.42 m 390 keV 0 eV 1.41 cm 1.41 cm Target compt - 2 -5.38 mm -2.94 mm -2.43 m 0 eV 88 keV 2.47 mm 1.65 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.38 mm -2.94 mm -2.43 m 302 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.37 mm -2.95 mm -2.43 m 5.55e-11 eV 302 keV 150 mum 150 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 20 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.6 mm -818 mum -2.42 m 7.37 MeV 0 eV 0 fm 0 fm Target initStep - 1 -6.81 mm -869 mum -2.42 m 6.37 MeV 529 keV 328 mum 328 mum Target eBrem - 2 -5.87 mm -409 mum -2.42 m 3.78 MeV 1.98 MeV 1.82 mm 2.14 mm Target eBrem - 3 -5.87 mm -489 mum -2.42 m 3.05 MeV 182 keV 152 mum 2.3 mm Target eBrem - 4 -6.41 mm -1.48 mm -2.42 m 919 keV 2.13 MeV 1.75 mm 4.04 mm Target eIoni - 5 -6.44 mm -1.52 mm -2.42 m 1.11e-10 eV 919 keV 651 mum 4.69 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 45, Parent ID = 41 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.87 mm -489 mum -2.42 m 547 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.91 mm -1.76 mm -2.43 m 513 keV 0 eV 2.87 mm 2.87 mm Target compt - 2 -9.31 mm -1.06 cm -2.44 m 0 eV 88 keV 1.38 cm 1.67 cm Target phot + 0 4.77 mm 1.34 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 8.2 mm 9.74 mm -2.43 m 400 keV 0 eV 1.02 cm 1.02 cm Target compt + 2 9.86 mm 1.07 cm -2.43 m 0 eV 88 keV 1.92 mm 1.21 cm Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 47, Parent ID = 45 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.31 mm -1.06 cm -2.44 m 425 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.33 mm -1.06 cm -2.44 m 0 eV 425 keV 242 mum 242 mum Target eIoni + 0 9.86 mm 1.07 cm -2.43 m 312 keV 0 eV 0 fm 0 fm Target initStep + 1 9.87 mm 1.07 cm -2.43 m 0 eV 312 keV 158 mum 158 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 46, Parent ID = 45 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.91 mm -1.76 mm -2.43 m 33.5 keV 0 eV 0 fm 0 fm Target initStep - 1 -5.91 mm -1.76 mm -2.43 m 0 eV 33.5 keV 4.66 mum 4.66 mum Target eIoni + 0 8.2 mm 9.74 mm -2.43 m 111 keV 0 eV 0 fm 0 fm Target initStep + 1 8.2 mm 9.74 mm -2.43 m 0 eV 111 keV 32.5 mum 32.5 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 41 +* G4Track Information: Particle = gamma, Track ID = 44, Parent ID = 43 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -5.87 mm -409 mum -2.42 m 613 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.93 mm -1.06 cm -2.42 m 0 eV 88 keV 1.15 cm 1.15 cm Target phot + 0 4.77 mm 1.34 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.02 mm -520 mum -2.43 m 0 eV 88 keV 2.24 mm 2.24 mm Target phot ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 48, Parent ID = 44 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.93 mm -1.06 cm -2.42 m 525 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.92 mm -1.06 cm -2.42 m 28.8 keV 46.6 keV 50.3 mum 50.3 mum Target eBrem - 2 -6.92 mm -1.06 cm -2.42 m 0 eV 28.8 keV 3.65 mum 54 mum Target eIoni + 0 4.02 mm -520 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.01 mm -531 mum -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 49, Parent ID = 48 +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 21 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.92 mm -1.06 cm -2.42 m 450 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.8 mm -1.09 cm -2.42 m 445 keV 0 eV 1.14 mm 1.14 mm Target compt - 2 -6.68 mm -1.1 cm -2.42 m 330 keV 0 eV 517 mum 1.65 mm Target compt - 3 518 mum -4.71 mm -2.41 m 0 eV 88 keV 1.15 cm 1.32 cm Target phot + 0 4.77 mm 1.34 mm -2.43 m 327 keV 0 eV 0 fm 0 fm Target initStep + 1 4.78 mm 1.34 mm -2.43 m 0 eV 327 keV 169 mum 169 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 49 +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 21 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 518 mum -4.71 mm -2.41 m 242 keV 0 eV 0 fm 0 fm Target initStep - 1 520 mum -4.71 mm -2.41 m 0 eV 242 keV 109 mum 109 mum Target eIoni + 0 3.71 mm 1.57 mm -2.43 m 681 keV 0 eV 0 fm 0 fm Target initStep + 1 3.72 mm 1.6 mm -2.43 m 0 eV 681 keV 451 mum 451 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 49 +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.68 mm -1.1 cm -2.42 m 115 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.68 mm -1.1 cm -2.42 m 0 eV 115 keV 34.4 mum 34.4 mum Target eIoni + 0 904 mum 448 mum -2.43 m 2.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.28 mm 1.07 mm -2.43 m 1.29 MeV 0 eV 5.28 mm 5.28 mm Target compt + 2 8.24 mm 1.42 mm -2.43 m 797 keV 0 eV 4.09 mm 9.37 mm Target compt + 3 2.5 cm 1.73 cm -2.41 m 797 keV 0 eV 2.87 cm 3.8 cm Target Transportation + 4 3.72 cm 2.89 cm -2.4 m 797 keV 0 eV 2.09 cm 5.89 cm World Transportation + 5 2.4 m 2.27 m -7.54 mm 797 keV 0 eV 4.04 m 4.1 m Tracker Transportation + 6 2.91 m 2.75 m 50.9 cm 797 keV 0 eV 87.2 cm 4.97 m OutOfWorld Transportation ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 49 +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 20 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.8 mm -1.09 cm -2.42 m 4.53 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.8 mm -1.09 cm -2.42 m 2.69e-11 eV 4.53 keV 226 nm 226 nm Target eIoni + 0 8.24 mm 1.42 mm -2.43 m 497 keV 0 eV 0 fm 0 fm Target initStep + 1 8.25 mm 1.41 mm -2.43 m 0 eV 497 keV 299 mum 299 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 43, Parent ID = 41 +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 20 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.81 mm -869 mum -2.42 m 466 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.37 mm -994 mum -2.42 m 0 eV 88 keV 1.91 mm 1.91 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 43 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.37 mm -994 mum -2.42 m 378 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.36 mm -995 mum -2.42 m 0 eV 378 keV 206 mum 206 mum Target eIoni + 0 4.28 mm 1.07 mm -2.43 m 1.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.13 mm 1.09 mm -2.43 m 907 keV 295 keV 299 mum 299 mum Target eBrem + 2 4.17 mm 1.07 mm -2.43 m 0 eV 907 keV 642 mum 941 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -255 mum 621 mum -2.44 m 4.83 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.38 mm 1.31 mm -2.42 m 0 eV 0 eV 1.51 cm 1.51 cm Target conv + 0 480 mum 360 mum -2.43 m 4.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.72 mm 3.46 mm -2.42 m 0 eV 0 eV 1.33 cm 1.33 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 55, Parent ID = 19 +* G4Track Information: Particle = e+, Track ID = 52, Parent ID = 19 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.38 mm 1.31 mm -2.42 m 1.85 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.47 mm 821 mum -2.42 m 554 keV 1.29 MeV 1.35 mm 1.35 mm Target eIoni - 2 -3.54 mm 944 mum -2.42 m 2.22e-10 eV 554 keV 346 mum 1.69 mm Target eIoni - 3 -3.54 mm 944 mum -2.42 m 2.22e-10 eV 0 eV 0 fm 1.69 mm Target annihil + 0 8.72 mm 3.46 mm -2.42 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.78 mm 3.46 mm -2.42 m 0 eV 1.04 MeV 765 mum 765 mum Target eIoni + 2 8.78 mm 3.46 mm -2.42 m 0 eV 0 eV 0 fm 765 mum Target annihil ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 57, Parent ID = 55 +* G4Track Information: Particle = gamma, Track ID = 54, Parent ID = 52 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.54 mm 944 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.55 mm 1.15 mm -2.42 m 0 eV 88 keV 239 mum 239 mum Target phot + 0 8.78 mm 3.46 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.08 cm 2.9 mm -2.43 m 206 keV 0 eV 2.09 mm 2.09 mm Target compt + 2 9.99 mm 6.9 mm -2.42 m 0 eV 88 keV 4.32 mm 6.41 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 57 +* G4Track Information: Particle = e-, Track ID = 56, Parent ID = 54 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.55 mm 1.15 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.55 mm 1.15 mm -2.42 m 0 eV 423 keV 240 mum 240 mum Target eIoni + 0 9.99 mm 6.9 mm -2.42 m 118 keV 0 eV 0 fm 0 fm Target initStep + 1 9.99 mm 6.9 mm -2.42 m 0 eV 118 keV 36 mum 36 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 55 +* G4Track Information: Particle = e-, Track ID = 55, Parent ID = 54 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.54 mm 944 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.44 mm -2.5 cm -2.41 m 511 keV 0 eV 3.08 cm 3.08 cm Target Transportation - 2 -1.96 mm -3.64 cm -2.4 m 511 keV 0 eV 1.35 cm 4.43 cm World Transportation - 3 9.86 cm -2.4 m -89.2 cm 511 keV 0 eV 2.81 m 2.85 m Tracker Transportation - 4 12 cm -2.91 m -56.7 cm 511 keV 0 eV 60.5 cm 3.46 m OutOfWorld Transportation + 0 1.08 cm 2.9 mm -2.43 m 305 keV 0 eV 0 fm 0 fm Target initStep + 1 1.08 cm 2.9 mm -2.43 m 0 eV 305 keV 152 mum 152 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 54, Parent ID = 19 +* G4Track Information: Particle = gamma, Track ID = 53, Parent ID = 52 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.38 mm 1.31 mm -2.42 m 1.96 MeV 0 eV 0 fm 0 fm Target initStep - 1 -3.02 mm 1.67 mm -2.42 m 639 keV 1.32 MeV 1.38 mm 1.38 mm Target eIoni - 2 -3 mm 1.67 mm -2.42 m 2.22e-10 eV 639 keV 415 mum 1.79 mm Target eIoni + 0 8.78 mm 3.46 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.84 mm 8.47 mm -2.42 m 0 eV 88 keV 1.87 cm 1.87 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 53 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.84 mm 8.47 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.85 mm 8.46 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 19 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.72 mm 3.46 mm -2.42 m 2.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.04 mm 2.94 mm -2.42 m 1.17 MeV 1.23 MeV 1.03 mm 1.03 mm Target eBrem + 2 8.98 mm 2.98 mm -2.42 m 0 eV 1.17 MeV 867 mum 1.9 mm Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -209 mum 610 mum -2.44 m 1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.04 cm 2.3 mm -2.4 m 214 keV 0 eV 3.72 cm 3.72 cm Target compt - 2 -9.84 mm 2.07 mm -2.4 m 0 eV 88 keV 885 mum 3.81 cm Target phot + 0 367 mum 357 mum -2.43 m 1.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.34 cm -163 mum -2.42 m 0 eV 88 keV 2.29 cm 2.29 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 18 +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 18 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.84 mm 2.07 mm -2.4 m 126 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.84 mm 2.07 mm -2.4 m 0 eV 126 keV 39.6 mum 39.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.04 cm 2.3 mm -2.4 m 789 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.04 cm 2.3 mm -2.4 m 0 eV 789 keV 540 mum 540 mum Target eIoni + 0 1.34 cm -163 mum -2.42 m 984 keV 0 eV 0 fm 0 fm Target initStep + 1 1.34 cm -161 mum -2.42 m 0 eV 984 keV 707 mum 707 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -200 mum 596 mum -2.44 m 59.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -592 mum 1.08 mm -2.43 m 0 eV 0 eV 4.75 mm 4.75 mm Target conv + 0 407 mum 315 mum -2.44 m 1.65 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.75 mm -2.59 mm -2.42 m 338 keV 0 eV 1.71 cm 1.71 cm Target compt + 2 2.12 mm -2.44 mm -2.42 m 0 eV 88 keV 404 mum 1.75 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 62, Parent ID = 17 +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 17 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -592 mum 1.08 mm -2.43 m 49.6 MeV 0 eV 0 fm 0 fm Target initStep - 1 -640 mum 1.17 mm -2.43 m 38.9 MeV 519 keV 458 mum 458 mum Target eBrem - 2 -653 mum 1.32 mm -2.43 m 36.9 MeV 808 keV 572 mum 1.03 mm Target eBrem - 3 -678 mum 1.55 mm -2.43 m 32.6 MeV 1.31 MeV 838 mum 1.87 mm Target eBrem - 4 -656 mum 1.64 mm -2.43 m 30.6 MeV 751 keV 534 mum 2.4 mm Target eBrem - 5 -1.09 mm 2.13 mm -2.43 m 28 MeV 1.85 MeV 1.72 mm 4.12 mm Target eBrem - 6 -1.4 mm 2.32 mm -2.43 m 20.9 MeV 848 keV 773 mum 4.9 mm Target eBrem - 7 -1.92 mm 4.95 mm -2.43 m 13.8 MeV 6.76 MeV 3.53 mm 8.42 mm Target eBrem - 8 -2.05 mm 4.92 mm -2.43 m 13 MeV 382 keV 358 mum 8.78 mm Target eBrem - 9 -2.16 mm 4.93 mm -2.43 m 12.4 MeV 194 keV 215 mum 9 mm Target eBrem - 10 -2.24 mm 4.95 mm -2.43 m 5.96 MeV 103 keV 93 mum 9.09 mm Target eBrem - 11 -2.47 mm 5.4 mm -2.43 m 4 MeV 796 keV 680 mum 9.77 mm Target eBrem - 12 -3.22 mm 5.18 mm -2.43 m 1.47 MeV 2.53 MeV 2 mm 1.18 cm Target eIoni - 13 -2.61 mm 5.18 mm -2.42 m 275 keV 1.2 MeV 1.13 mm 1.29 cm Target eIoni - 14 -2.62 mm 5.19 mm -2.42 m 0 eV 275 keV 127 mum 1.3 cm Target eIoni - 15 -2.62 mm 5.19 mm -2.42 m 0 eV 0 eV 0 fm 1.3 cm Target annihil + 0 2.12 mm -2.44 mm -2.42 m 250 keV 0 eV 0 fm 0 fm Target initStep + 1 2.13 mm -2.44 mm -2.42 m 0 eV 250 keV 114 mum 114 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 62 +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 17 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.62 mm 5.19 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.6 mm 5.18 mm -2.42 m 0 eV 88 keV 17.6 mum 17.6 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 75 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.6 mm 5.18 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.6 mm 5.18 mm -2.42 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.62 mm 5.19 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.01 mm 8.74 mm -2.43 m 0 eV 88 keV 8.24 mm 8.24 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 74 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.01 mm 8.74 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.02 mm 8.73 mm -2.43 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.47 mm 5.4 mm -2.43 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep - 1 -6.91 mm 7.23 mm -2.43 m 769 keV 0 eV 4.8 mm 4.8 mm Target compt - 2 -1.29 cm 8.39 mm -2.42 m 729 keV 0 eV 7.5 mm 1.23 cm Target compt - 3 -1.76 cm 1.05 cm -2.42 m 294 keV 0 eV 7.58 mm 1.99 cm Target compt - 4 -1.76 cm 1.06 cm -2.42 m 0 eV 88 keV 201 mum 2.01 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.76 cm 1.06 cm -2.42 m 206 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.76 cm 1.06 cm -2.42 m 5.55e-11 eV 206 keV 85.5 mum 85.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.76 cm 1.05 cm -2.42 m 435 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.76 cm 1.05 cm -2.42 m 0 eV 435 keV 250 mum 250 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.29 cm 8.39 mm -2.42 m 39.5 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.29 cm 8.39 mm -2.42 m 0 eV 39.5 keV 6.07 mum 6.07 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 73 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.91 mm 7.23 mm -2.43 m 397 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.92 mm 7.23 mm -2.43 m 1.67e-10 eV 397 keV 220 mum 220 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.24 mm 4.95 mm -2.43 m 6.36 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.94 mm 8.96 mm -2.42 m 0 eV 0 eV 1.03 cm 1.03 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 83, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.94 mm 8.96 mm -2.42 m 3.95 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.96 mm 8.97 mm -2.42 m 3.5 MeV 37.5 keV 37 mum 37 mum Target eBrem - 2 -1.03 cm 9.21 mm -2.42 m 1.76 MeV 1.73 MeV 1.88 mm 1.92 mm Target eIoni - 3 -1.1 cm 9.68 mm -2.42 m 489 keV 1.27 MeV 1.3 mm 3.23 mm Target eIoni - 4 -1.1 cm 9.69 mm -2.42 m 0 eV 489 keV 292 mum 3.52 mm Target eIoni - 5 -1.1 cm 9.69 mm -2.42 m 0 eV 0 eV 0 fm 3.52 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 86, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.1 cm 9.69 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 cm 9.64 mm -2.42 m 0 eV 88 keV 257 mum 257 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 87, Parent ID = 86 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.11 cm 9.64 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.11 cm 9.64 mm -2.42 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 85, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.1 cm 9.69 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.02 cm 1.12 cm -2.41 m 0 eV 88 keV 7.59 mm 7.59 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 85 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.02 cm 1.12 cm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.02 cm 1.12 cm -2.41 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 84, Parent ID = 83 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.96 mm 8.97 mm -2.42 m 413 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.02 cm 9.66 mm -2.42 m 0 eV 88 keV 1.92 mm 1.92 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 84 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.02 cm 9.66 mm -2.42 m 325 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.02 cm 9.66 mm -2.42 m 0 eV 325 keV 166 mum 166 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 72 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.94 mm 8.96 mm -2.42 m 1.39 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.81 mm 9.18 mm -2.42 m 51.8 keV 1.33 MeV 1.04 mm 1.04 mm Target eIoni - 2 -8.81 mm 9.18 mm -2.42 m 0 eV 51.8 keV 9.46 mum 1.05 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.16 mm 4.93 mm -2.43 m 399 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.23 mm 4.97 mm -2.43 m 215 keV 0 eV 99.1 mum 99.1 mum Target compt - 2 -2.13 mm 4.47 mm -2.43 m 0 eV 88 keV 591 mum 690 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 71 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.13 mm 4.47 mm -2.43 m 127 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.13 mm 4.47 mm -2.43 m 2.78e-11 eV 127 keV 40.4 mum 40.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 71 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.23 mm 4.97 mm -2.43 m 183 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.23 mm 4.97 mm -2.43 m 0 eV 183 keV 71.5 mum 71.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.05 mm 4.92 mm -2.43 m 403 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.7 mm 3.85 mm -2.42 m 0 eV 88 keV 1.12 cm 1.12 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 70 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.7 mm 3.85 mm -2.42 m 315 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.71 mm 3.86 mm -2.42 m 0 eV 315 keV 159 mum 159 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.92 mm 4.95 mm -2.43 m 359 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.08 mm 4.92 mm -2.43 m 0 eV 88 keV 284 mum 284 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 69 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.08 mm 4.92 mm -2.43 m 271 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.08 mm 4.91 mm -2.43 m 0 eV 271 keV 128 mum 128 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 mm 2.32 mm -2.43 m 6.26 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.47 mm 2.43 mm -2.43 m 0 eV 0 eV 353 mum 353 mum Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 95, Parent ID = 68 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.47 mm 2.43 mm -2.43 m 2.28 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.24 mm 3.44 mm -2.43 m 880 keV 1.4 MeV 1.53 mm 1.53 mm Target eIoni - 2 -1.28 mm 3.39 mm -2.43 m 0 eV 880 keV 627 mum 2.16 mm Target eIoni - 3 -1.28 mm 3.39 mm -2.43 m 0 eV 0 eV 0 fm 2.16 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 97, Parent ID = 95 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.28 mm 3.39 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.97 mm 5.05 mm -2.43 m 176 keV 0 eV 1.84 mm 1.84 mm Target compt - 2 -1.89 mm 4.96 mm -2.43 m 0 eV 88 keV 135 mum 1.97 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 97 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.89 mm 4.96 mm -2.43 m 88.1 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.89 mm 4.96 mm -2.43 m 1.39e-11 eV 88.1 keV 22.5 mum 22.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 97 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.97 mm 5.05 mm -2.43 m 335 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.98 mm 5.06 mm -2.43 m 0 eV 335 keV 174 mum 174 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 96, Parent ID = 95 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.28 mm 3.39 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.48 mm -3.24 mm -2.43 m 350 keV 0 eV 7.32 mm 7.32 mm Target compt - 2 5.65 mm -7.22 mm -2.43 m 159 keV 0 eV 7.69 mm 1.5 cm Target compt - 3 5.11 mm -7.15 mm -2.43 m 0 eV 88 keV 559 mum 1.56 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 96 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.11 mm -7.15 mm -2.43 m 70.5 keV 0 eV 0 fm 0 fm Target initStep - 1 5.11 mm -7.15 mm -2.43 m 0 eV 70.5 keV 15.7 mum 15.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 96 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.65 mm -7.22 mm -2.43 m 192 keV 0 eV 0 fm 0 fm Target initStep - 1 5.65 mm -7.22 mm -2.43 m 0 eV 192 keV 76.5 mum 76.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 96 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.48 mm -3.24 mm -2.43 m 161 keV 0 eV 0 fm 0 fm Target initStep - 1 1.48 mm -3.24 mm -2.43 m 0 eV 161 keV 58.2 mum 58.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 68 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.47 mm 2.43 mm -2.43 m 2.95 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.4 mm 2.16 mm -2.43 m 895 keV 744 keV 738 mum 738 mum Target eBrem - 2 -1.36 mm 2.13 mm -2.43 m 0 eV 895 keV 631 mum 1.37 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 103, Parent ID = 94 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.4 mm 2.16 mm -2.43 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.5 cm -2.6 mm -2.42 m 1.31 MeV 0 eV 2.76 cm 2.76 cm Target Transportation - 2 11.6 cm -1.9 cm -2.4 m 1.31 MeV 0 eV 9.52 cm 12.3 cm World Transportation - 3 2.4 m -43.1 cm -1.83 m 1.31 MeV 0 eV 2.39 m 2.51 m Tracker Transportation - 4 2.91 m -52.2 cm -1.7 m 1.31 MeV 0 eV 53.4 cm 3.05 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.09 mm 2.13 mm -2.43 m 705 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.71 mm 2.46 mm -2.43 m 0 eV 88 keV 2.03 mm 2.03 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 67 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.71 mm 2.46 mm -2.43 m 617 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.71 mm 2.46 mm -2.43 m 0 eV 617 keV 397 mum 397 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 66, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -656 mum 1.64 mm -2.43 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.53 mm 2.45 mm -2.42 m 706 keV 0 eV 8.05 mm 8.05 mm Target compt - 2 -2.64 mm 4.99 mm -2.42 m 0 eV 88 keV 3.16 mm 1.12 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 66 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.64 mm 4.99 mm -2.42 m 618 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.64 mm 5.01 mm -2.42 m 0 eV 618 keV 398 mum 398 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 66 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.53 mm 2.45 mm -2.42 m 602 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.54 mm 2.44 mm -2.42 m 0 eV 602 keV 385 mum 385 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 65, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -678 mum 1.55 mm -2.43 m 2.99 MeV 0 eV 0 fm 0 fm Target initStep - 1 -582 mum 9.46 mm -2.4 m 2.99 MeV 0 eV 3.38 cm 3.38 cm Target Transportation - 2 1.75 mm 20.2 cm -1.6 m 2.99 MeV 0 eV 82.3 cm 85.7 cm Tracker Transportation - 3 2.21 mm 24 cm -1.44 m 2.99 MeV 0 eV 16.4 cm 1.02 m Chamber Transportation - 4 4.08 mm 39.4 cm -80 cm 2.99 MeV 0 eV 65.9 cm 1.68 m Tracker Transportation - 5 4.66 mm 44.2 cm -60 cm 2.99 MeV 0 eV 20.6 cm 1.89 m Chamber Transportation - 6 6.4 mm 58.6 cm 0 fm 2.99 MeV 0 eV 61.7 cm 2.5 m Tracker Transportation - 7 6.99 mm 63.4 cm 20 cm 2.99 MeV 0 eV 20.6 cm 2.71 m Chamber Transportation - 8 8.73 mm 77.8 cm 80 cm 2.99 MeV 0 eV 61.7 cm 3.32 m Tracker Transportation - 9 9.31 mm 82.7 cm 1 m 2.99 MeV 0 eV 20.6 cm 3.53 m Chamber Transportation - 10 1.11 cm 97.1 cm 1.6 m 2.99 MeV 0 eV 61.7 cm 4.15 m Tracker Transportation - 11 1.16 cm 1.02 m 1.8 m 2.99 MeV 0 eV 20.6 cm 4.35 m Chamber Transportation - 12 1.34 cm 1.16 m 2.4 m 2.99 MeV 0 eV 61.7 cm 4.97 m Tracker Transportation - 13 1.49 cm 1.29 m 2.91 m 2.99 MeV 0 eV 52.5 cm 5.5 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 64, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -653 mum 1.32 mm -2.43 m 1.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.44 mm 7.43 mm -2.42 m 0 eV 88 keV 1.59 cm 1.59 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 64 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.44 mm 7.43 mm -2.42 m 1.11 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.43 mm 7.47 mm -2.42 m 0 eV 1.11 MeV 814 mum 814 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 63, Parent ID = 62 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -640 mum 1.17 mm -2.43 m 10.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -749 mum 2.81 mm -2.43 m 611 keV 0 eV 4.62 mm 4.62 mm Target compt - 2 -876 mum 2.83 mm -2.43 m 446 keV 0 eV 130 mum 4.75 mm Target compt - 3 -4.19 mm 3.3 mm -2.43 m 0 eV 88 keV 4.24 mm 8.99 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 110, Parent ID = 63 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.19 mm 3.3 mm -2.43 m 358 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.2 mm 3.3 mm -2.43 m 0 eV 358 keV 191 mum 191 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 63 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -876 mum 2.83 mm -2.43 m 165 keV 0 eV 0 fm 0 fm Target initStep - 1 -878 mum 2.83 mm -2.43 m 2.78e-11 eV 165 keV 60.4 mum 60.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 63 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -749 mum 2.81 mm -2.43 m 9.49 MeV 0 eV 0 fm 0 fm Target initStep - 1 -705 mum 2.86 mm -2.43 m 8.26 MeV 232 keV 207 mum 207 mum Target eBrem - 2 685 mum 3.27 mm -2.43 m 5.29 MeV 2.59 MeV 2.22 mm 2.43 mm Target eBrem - 3 1.03 mm 2.95 mm -2.43 m 3.36 MeV 1.13 MeV 1.09 mm 3.51 mm Target eBrem - 4 883 mum 2.3 mm -2.43 m 1.12 MeV 2.24 MeV 1.83 mm 5.34 mm Target eIoni - 5 1.06 mm 2.27 mm -2.43 m 146 keV 319 keV 309 mum 5.65 mm Target eBrem - 6 1.05 mm 2.27 mm -2.43 m 0 eV 146 keV 50.4 mum 5.7 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.06 mm 2.27 mm -2.43 m 659 keV 0 eV 0 fm 0 fm Target initStep - 1 1.19 mm 1.85 mm -2.43 m 0 eV 88 keV 512 mum 512 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 115, Parent ID = 114 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.19 mm 1.85 mm -2.43 m 571 keV 0 eV 0 fm 0 fm Target initStep - 1 1.19 mm 1.83 mm -2.43 m 1.11e-10 eV 571 keV 360 mum 360 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.03 mm 2.95 mm -2.43 m 797 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.43 mm 6.27 mm -2.43 m 641 keV 0 eV 5.9 mm 5.9 mm Target compt - 2 -4.53 mm 8.13 mm -2.42 m 0 eV 88 keV 3.13 mm 9.03 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 113 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.53 mm 8.13 mm -2.42 m 553 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.54 mm 8.15 mm -2.42 m 0 eV 553 keV 344 mum 344 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 116, Parent ID = 113 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.43 mm 6.27 mm -2.43 m 156 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.43 mm 6.27 mm -2.43 m 0 eV 156 keV 55.6 mum 55.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 685 mum 3.27 mm -2.43 m 384 keV 0 eV 0 fm 0 fm Target initStep - 1 -805 mum 1.79 mm -2.43 m 159 keV 0 eV 3.11 mm 3.11 mm Target compt - 2 -714 mum 2.03 mm -2.43 m 0 eV 88 keV 281 mum 3.4 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 112 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -714 mum 2.03 mm -2.43 m 70.8 keV 0 eV 0 fm 0 fm Target initStep - 1 -713 mum 2.03 mm -2.43 m 0 eV 70.8 keV 15.8 mum 15.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 112 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -805 mum 1.79 mm -2.43 m 225 keV 0 eV 0 fm 0 fm Target initStep - 1 -807 mum 1.79 mm -2.43 m 0 eV 225 keV 97.6 mum 97.6 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 108 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -705 mum 2.86 mm -2.43 m 989 keV 0 eV 0 fm 0 fm Target initStep - 1 2.82 mm 1.11 cm -2.4 m 718 keV 0 eV 2.98 cm 2.98 cm Target compt - 2 2.16 mm 1.11 cm -2.4 m 718 keV 0 eV 1.48 mm 3.13 cm Target Transportation - 3 -2.4 m 12.6 cm 2.4 m 718 keV 0 eV 5.37 m 5.4 m Tracker Transportation - 4 -2.66 m 13.9 cm 2.91 m 718 keV 0 eV 57.5 cm 5.97 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 111 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.82 mm 1.11 cm -2.4 m 270 keV 0 eV 0 fm 0 fm Target initStep - 1 2.82 mm 1.11 cm -2.4 m 0 eV 270 keV 128 mum 128 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -592 mum 1.08 mm -2.43 m 8.51 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.23 mm 917 mum -2.43 m 5.68 MeV 2.25 MeV 2.13 mm 2.13 mm Target eBrem - 2 -1.97 mm 1.88 mm -2.43 m 154 keV 4.96 MeV 1.21 mm 3.34 mm Target eBrem - 3 -1.97 mm 1.88 mm -2.43 m 0 eV 154 keV 54.7 mum 3.39 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 61 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.97 mm 1.88 mm -2.43 m 569 keV 0 eV 0 fm 0 fm Target initStep - 1 6.59 mm -1.1 cm -2.43 m 0 eV 88 keV 1.64 cm 1.64 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 123, Parent ID = 122 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.59 mm -1.1 cm -2.43 m 481 keV 0 eV 0 fm 0 fm Target initStep - 1 6.59 mm -1.11 cm -2.43 m 1.67e-10 eV 481 keV 286 mum 286 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 61 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.23 mm 917 mum -2.43 m 577 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.55 mm 7.51 mm -2.42 m 0 eV 88 keV 1.5 cm 1.5 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 121 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.55 mm 7.51 mm -2.42 m 489 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.55 mm 7.53 mm -2.42 m 13.3 keV 163 keV 178 mum 178 mum Target eBrem - 2 -6.55 mm 7.53 mm -2.42 m 1.73e-12 eV 13.3 keV 1.08 mum 179 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 125, Parent ID = 124 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.55 mm 7.53 mm -2.42 m 313 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.57 mm 7.72 mm -2.42 m 302 keV 0 eV 197 mum 197 mum Target compt - 2 -6.75 mm 1.24 cm -2.42 m 0 eV 88 keV 5.96 mm 6.16 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 127, Parent ID = 125 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.75 mm 1.24 cm -2.42 m 214 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.74 mm 1.24 cm -2.42 m 0 eV 214 keV 90.7 mum 90.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 125 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.57 mm 7.72 mm -2.42 m 10.4 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.57 mm 7.72 mm -2.42 m 1.73e-11 eV 10.4 keV 738 nm 738 nm Target eIoni + 0 1.75 mm -2.59 mm -2.42 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.95 mm -2.43 mm -2.42 m 171 keV 1.14 MeV 747 mum 747 mum Target eBrem + 2 1.95 mm -2.43 mm -2.42 m 0 eV 171 keV 64.5 mum 812 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -181 mum 604 mum -2.44 m 1.47 MeV 0 eV 0 fm 0 fm Target initStep - 1 62.3 mum 1.19 mm -2.43 m 443 keV 0 eV 1.4 cm 1.4 cm Target compt - 2 63 mum 1.2 mm -2.43 m 0 eV 88 keV 7.91 mum 1.4 cm Target phot + 0 260 mum 411 mum -2.44 m 26.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 526 mum 120 mum -2.44 m 0 eV 0 eV 2.55 mm 2.55 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 129, Parent ID = 16 +* G4Track Information: Particle = e+, Track ID = 62, Parent ID = 16 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 63 mum 1.2 mm -2.43 m 355 keV 0 eV 0 fm 0 fm Target initStep - 1 63.5 mum 1.21 mm -2.43 m 5.55e-11 eV 355 keV 188 mum 188 mum Target eIoni + 0 526 mum 120 mum -2.44 m 2.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 -195 mum -266 mum -2.44 m 0 eV 1.36 MeV 1.19 mm 1.19 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 128, Parent ID = 16 +* G4Track Information: Particle = gamma, Track ID = 64, Parent ID = 62 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 62.3 mum 1.19 mm -2.43 m 1.03 MeV 0 eV 0 fm 0 fm Target initStep - 1 61.8 mum 1.18 mm -2.43 m 0 eV 1.03 MeV 746 mum 746 mum Target eIoni + 0 -195 mum -266 mum -2.44 m 997 keV 0 eV 0 fm 0 fm Target initStep + 1 3.87 mm -2.5 cm -2.43 m 997 keV 0 eV 2.55 cm 2.55 cm Target Transportation + 2 3.22 cm -19.8 cm -2.4 m 997 keV 0 eV 17.8 cm 20.3 cm World Transportation + 3 39.4 cm -2.4 m -2 m 997 keV 0 eV 2.27 m 2.47 m Tracker Transportation + 4 47.8 cm -2.91 m -1.91 m 997 keV 0 eV 52.5 cm 2.99 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 63, Parent ID = 62 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -195 mum -266 mum -2.44 m 1.56 MeV 0 eV 0 fm 0 fm Target initStep + 1 -593 mum -346 mum -2.43 m 410 keV 0 eV 676 mum 676 mum Target compt + 2 9.63 mm 2.18 mm -2.43 m 160 keV 0 eV 1.41 cm 1.48 cm Target compt + 3 9.35 mm 2.23 mm -2.43 m 0 eV 88 keV 443 mum 1.52 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 67, Parent ID = 63 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.35 mm 2.23 mm -2.43 m 72 keV 0 eV 0 fm 0 fm Target initStep + 1 9.35 mm 2.23 mm -2.43 m 0 eV 72 keV 16.3 mum 16.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 66, Parent ID = 63 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.63 mm 2.18 mm -2.43 m 250 keV 0 eV 0 fm 0 fm Target initStep + 1 9.64 mm 2.18 mm -2.43 m 0 eV 250 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 63 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -593 mum -346 mum -2.43 m 1.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 -647 mum -357 mum -2.43 m 0 eV 1.15 MeV 845 mum 845 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 526 mum 120 mum -2.44 m 22.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 773 mum -12.5 mum -2.44 m 20.7 MeV 1.28 MeV 863 mum 863 mum Target eBrem + 2 1.48 mm -303 mum -2.43 m 13 MeV 4.22 MeV 2.29 mm 3.16 mm Target eBrem + 3 1.48 mm -309 mum -2.43 m 11.1 MeV 20.8 keV 21.5 mum 3.18 mm Target eBrem + 4 1.23 mm -611 mum -2.43 m 9.71 MeV 639 keV 625 mum 3.8 mm Target eBrem + 5 1.21 mm -625 mum -2.43 m 6.65 MeV 32.3 keV 27.4 mum 3.83 mm Target eBrem + 6 1.15 mm -693 mum -2.43 m 6.15 MeV 146 keV 138 mum 3.97 mm Target eBrem + 7 1.58 mm -397 mum -2.43 m 3.14 MeV 1.41 MeV 1.17 mm 5.14 mm Target eBrem + 8 1.81 mm -1.01 mm -2.43 m 1.84 MeV 970 keV 884 mum 6.02 mm Target eBrem + 9 1.78 mm -996 mum -2.43 m 0 eV 1.84 MeV 1.42 mm 7.45 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 75, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.81 mm -1.01 mm -2.43 m 334 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 mm -1.24 mm -2.43 m 0 eV 88 keV 3.17 mm 3.17 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 75 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm -1.24 mm -2.43 m 246 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 mm -1.24 mm -2.43 m 0 eV 246 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 74, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.58 mm -397 mum -2.43 m 1.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.01 mm -1.32 mm -2.43 m 0 eV 88 keV 4.8 mm 4.8 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 77, Parent ID = 74 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.01 mm -1.32 mm -2.43 m 1.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.91 mm -1.33 mm -2.43 m 0 eV 1.52 MeV 1.16 mm 1.16 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 73, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 mm -693 mum -2.43 m 351 keV 0 eV 0 fm 0 fm Target initStep + 1 708 mum -755 mum -2.43 m 284 keV 0 eV 936 mum 936 mum Target compt + 2 1.24 mm -6.25 mm -2.43 m 0 eV 88 keV 8.1 mm 9.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 73 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm -6.25 mm -2.43 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 1.24 mm -6.25 mm -2.43 m 0 eV 196 keV 79.5 mum 79.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 78, Parent ID = 73 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 708 mum -755 mum -2.43 m 66.9 keV 0 eV 0 fm 0 fm Target initStep + 1 708 mum -755 mum -2.43 m 0 eV 66.9 keV 14.4 mum 14.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 72, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm -625 mum -2.43 m 3.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.23 mm -3.96 mm -2.43 m 1.65 MeV 0 eV 5.55 mm 5.55 mm Target compt + 2 -3.59 mm -2.5 cm -2.42 m 1.65 MeV 0 eV 2.31 cm 2.87 cm Target Transportation + 3 -8.49 mm -6.88 cm -2.4 m 1.65 MeV 0 eV 4.81 cm 7.68 cm World Transportation + 4 -26.9 cm -2.4 m -1.38 m 1.65 MeV 0 eV 2.56 m 2.64 m Tracker Transportation + 5 -32.6 cm -2.91 m -1.15 m 1.65 MeV 0 eV 56 cm 3.2 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 72 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.23 mm -3.96 mm -2.43 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 mm -3.97 mm -2.43 m 0 eV 1.38 MeV 1.05 mm 1.05 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.23 mm -611 mum -2.43 m 795 keV 0 eV 0 fm 0 fm Target initStep + 1 -535 mum -2.17 mm -2.43 m 551 keV 0 eV 3.14 mm 3.14 mm Target compt + 2 -1.27 mm -2.71 mm -2.43 m 368 keV 0 eV 916 mum 4.05 mm Target compt + 3 -1.29 mm -3.4 mm -2.43 m 0 eV 88 keV 821 mum 4.87 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 71 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.29 mm -3.4 mm -2.43 m 280 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 mm -3.41 mm -2.43 m 0 eV 280 keV 135 mum 135 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 71 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.27 mm -2.71 mm -2.43 m 183 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.28 mm -2.71 mm -2.43 m 0 eV 183 keV 71.6 mum 71.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 71 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -535 mum -2.17 mm -2.43 m 244 keV 0 eV 0 fm 0 fm Target initStep + 1 -535 mum -2.18 mm -2.43 m 0 eV 244 keV 110 mum 110 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.48 mm -309 mum -2.43 m 1.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.19 mm -9.49 mm -2.4 m 1.82 MeV 0 eV 3.48 cm 3.48 cm Target Transportation + 2 -19.4 cm -23.4 cm -1.6 m 1.82 MeV 0 eV 85.2 cm 88.7 cm Tracker Transportation + 3 -19.9 cm -24 cm -1.58 m 1.82 MeV 0 eV 2.23 cm 90.9 cm Chamber Transportation + 4 -38.2 cm -45.9 cm -80 cm 1.82 MeV 0 eV 83 cm 1.74 m Tracker Transportation + 5 -42.8 cm -51.5 cm -60 cm 1.82 MeV 0 eV 21.3 cm 1.95 m Chamber Transportation + 6 -56.9 cm -68.3 cm 0 fm 1.82 MeV 0 eV 63.9 cm 2.59 m Tracker Transportation + 7 -61.6 cm -74 cm 20 cm 1.82 MeV 0 eV 21.3 cm 2.8 m Chamber Transportation + 8 -75.7 cm -90.8 cm 80 cm 1.82 MeV 0 eV 63.9 cm 3.44 m Tracker Transportation + 9 -80.4 cm -96.4 cm 1 m 1.82 MeV 0 eV 21.3 cm 3.66 m Chamber Transportation + 10 -94.5 cm -1.13 m 1.6 m 1.82 MeV 0 eV 63.9 cm 4.29 m Tracker Transportation + 11 -99.2 cm -1.19 m 1.8 m 1.82 MeV 0 eV 21.3 cm 4.51 m Chamber Transportation + 12 -1.13 m -1.36 m 2.4 m 1.82 MeV 0 eV 63.9 cm 5.15 m Tracker Transportation + 13 -1.25 m -1.5 m 2.91 m 1.82 MeV 0 eV 54.3 cm 5.69 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.48 mm -303 mum -2.43 m 3.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.13 mm -7.01 mm -2.42 m 0 eV 0 eV 1.82 cm 1.82 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 85, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.13 mm -7.01 mm -2.42 m 1.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.05 mm -6.93 mm -2.42 m 0 eV 1.97 MeV 1.56 mm 1.56 mm Target eIoni + 2 -3.05 mm -6.93 mm -2.42 m 0 eV 0 eV 0 fm 1.56 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 87, Parent ID = 85 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.05 mm -6.93 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.17 mm -6.82 mm -2.42 m 0 eV 88 keV 170 mum 170 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 88, Parent ID = 87 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.17 mm -6.82 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.17 mm -6.82 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 86, Parent ID = 85 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.05 mm -6.93 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 99.6 mum -9.84 mm -2.42 m 235 keV 0 eV 4.79 mm 4.79 mm Target compt + 2 244 mum -9.89 mm -2.42 m 0 eV 88 keV 493 mum 5.28 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 86 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 244 mum -9.89 mm -2.42 m 147 keV 0 eV 0 fm 0 fm Target initStep + 1 242 mum -9.88 mm -2.42 m 0 eV 147 keV 51.1 mum 51.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 86 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 99.6 mum -9.84 mm -2.42 m 276 keV 0 eV 0 fm 0 fm Target initStep + 1 103 mum -9.85 mm -2.42 m 0 eV 276 keV 132 mum 132 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 84, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.13 mm -7.01 mm -2.42 m 521 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.13 mm -7.02 mm -2.42 m 0 eV 521 keV 319 mum 319 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 61 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 773 mum -12.5 mum -2.44 m 350 keV 0 eV 0 fm 0 fm Target initStep + 1 670 mum -56.8 mum -2.43 m 163 keV 0 eV 2.36 mm 2.36 mm Target compt + 2 547 mum 70.2 mum -2.43 m 0 eV 88 keV 246 mum 2.61 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 547 mum 70.2 mum -2.43 m 74.6 keV 0 eV 0 fm 0 fm Target initStep + 1 546 mum 69.6 mum -2.43 m 0 eV 74.6 keV 17.2 mum 17.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 670 mum -56.8 mum -2.43 m 187 keV 0 eV 0 fm 0 fm Target initStep + 1 671 mum -57.7 mum -2.43 m 0 eV 187 keV 74.2 mum 74.2 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 15, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -181 mum 604 mum -2.44 m 15 MeV 0 eV 0 fm 0 fm Target initStep - 1 136 mum 1.28 mm -2.42 m 0 eV 0 eV 1.67 cm 1.67 cm Target conv + 0 322 mum 592 mum -2.44 m 1.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 716 mum -278 mum -2.43 m 257 keV 0 eV 7.71 mm 7.71 mm Target compt + 2 -186 mum 2.51 mm -2.43 m 205 keV 0 eV 3.71 mm 1.14 cm Target compt + 3 -1.14 mm 2.33 mm -2.44 m 0 eV 88 keV 1.34 mm 1.28 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 131, Parent ID = 15 +* G4Track Information: Particle = e-, Track ID = 95, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 136 mum 1.28 mm -2.42 m 13.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 -488 mum 2.22 mm -2.42 m 10.2 MeV 2.23 MeV 2.06 mm 2.06 mm Target eBrem - 2 -490 mum 2.19 mm -2.42 m 9.63 MeV 17.7 keV 29.1 mum 2.09 mm Target eBrem - 3 -477 mum 1.92 mm -2.42 m 6.06 MeV 410 keV 342 mum 2.43 mm Target eBrem - 4 -762 mum 1.45 mm -2.42 m 4.76 MeV 791 keV 585 mum 3.02 mm Target eBrem - 5 -1.05 mm 179 mum -2.42 m 1.36 MeV 3.4 MeV 2.16 mm 5.17 mm Target eIoni - 6 -931 mum 195 mum -2.42 m 0 eV 1.36 MeV 1.04 mm 6.22 mm Target eIoni - 7 -931 mum 195 mum -2.42 m 0 eV 0 eV 0 fm 6.22 mm Target annihil + 0 -1.14 mm 2.33 mm -2.44 m 117 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.14 mm 2.33 mm -2.44 m 0 eV 117 keV 35.4 mum 35.4 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 137, Parent ID = 131 +* G4Track Information: Particle = e-, Track ID = 94, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -931 mum 195 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.33 mm 262 mum -2.42 m 0 eV 88 keV 2.28 mm 2.28 mm Target phot + 0 -186 mum 2.51 mm -2.43 m 52.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -185 mum 2.51 mm -2.43 m 0 eV 52.2 keV 9.63 mum 9.63 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 137 +* G4Track Information: Particle = e-, Track ID = 93, Parent ID = 15 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.33 mm 262 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 1.35 mm 269 mum -2.42 m 5.55e-11 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 136, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -931 mum 195 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.4 mm 91 mum -2.42 m 186 keV 0 eV 3.49 mm 3.49 mm Target compt - 2 -3.93 mm 457 mum -2.42 m 0 eV 88 keV 630 mum 4.12 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 136 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.93 mm 457 mum -2.42 m 98.5 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.92 mm 456 mum -2.42 m 0 eV 98.5 keV 26.8 mum 26.8 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 136 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.4 mm 91 mum -2.42 m 325 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.41 mm 88.9 mum -2.42 m 1.11e-10 eV 325 keV 166 mum 166 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 135, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -762 mum 1.45 mm -2.42 m 512 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.18 mm -7.63 mm -2.42 m 0 eV 88 keV 1.21 cm 1.21 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 135 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -7.18 mm -7.63 mm -2.42 m 424 keV 0 eV 0 fm 0 fm Target initStep - 1 -7.18 mm -7.65 mm -2.42 m 1.67e-10 eV 424 keV 241 mum 241 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 134, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -477 mum 1.92 mm -2.42 m 3.16 MeV 0 eV 0 fm 0 fm Target initStep - 1 -8.15 mm -1.89 cm -2.4 m 3.16 MeV 0 eV 3.12 cm 3.12 cm Target Transportation - 2 -88.4 cm -2.4 m 10.3 cm 3.16 MeV 0 eV 3.56 m 3.6 m Tracker Transportation - 3 -1.07 m -2.91 m 63.9 cm 3.16 MeV 0 eV 76.3 cm 4.36 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 133, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -490 mum 2.19 mm -2.42 m 574 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.17 mm -5.12 mm -2.42 m 353 keV 0 eV 8.01 mm 8.01 mm Target compt - 2 -4.78 mm -6.47 mm -2.42 m 252 keV 0 eV 3.88 mm 1.19 cm Target compt - 3 -4.95 mm -7.49 mm -2.42 m 0 eV 88 keV 1.11 mm 1.3 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 133 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.95 mm -7.49 mm -2.42 m 164 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.95 mm -7.49 mm -2.42 m 8.33e-11 eV 164 keV 60.2 mum 60.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 133 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.78 mm -6.47 mm -2.42 m 101 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.78 mm -6.47 mm -2.42 m 0 eV 101 keV 28.1 mum 28.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 133 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.17 mm -5.12 mm -2.42 m 221 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.17 mm -5.12 mm -2.42 m 0 eV 221 keV 94.7 mum 94.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 131 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -488 mum 2.22 mm -2.42 m 607 keV 0 eV 0 fm 0 fm Target initStep - 1 -775 mum -510 mum -2.42 m 565 keV 0 eV 2.84 mm 2.84 mm Target compt - 2 -637 mum -1.02 mm -2.42 m 0 eV 88 keV 557 mum 3.4 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 132 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -637 mum -1.02 mm -2.42 m 477 keV 0 eV 0 fm 0 fm Target initStep - 1 -623 mum -1.03 mm -2.42 m 0 eV 477 keV 283 mum 283 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 132 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -775 mum -510 mum -2.42 m 42.4 keV 0 eV 0 fm 0 fm Target initStep - 1 -776 mum -510 mum -2.42 m 0 eV 42.4 keV 6.84 mum 6.84 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 130, Parent ID = 15 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 136 mum 1.28 mm -2.42 m 881 keV 0 eV 0 fm 0 fm Target initStep - 1 -26.7 mum 1.3 mm -2.42 m 30.7 keV 565 keV 558 mum 558 mum Target eBrem - 2 -26.8 mum 1.3 mm -2.42 m 0 eV 30.7 keV 4.04 mum 562 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 147, Parent ID = 130 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -26.7 mum 1.3 mm -2.42 m 285 keV 0 eV 0 fm 0 fm Target initStep - 1 -196 mum 1.58 mm -2.42 m 0 eV 88 keV 409 mum 409 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 147 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -196 mum 1.58 mm -2.42 m 197 keV 0 eV 0 fm 0 fm Target initStep - 1 -195 mum 1.59 mm -2.42 m 0 eV 197 keV 79.6 mum 79.6 mum Target eIoni + 0 716 mum -278 mum -2.43 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep + 1 340 mum -390 mum -2.43 m 195 keV 1.35 MeV 1.14 mm 1.14 mm Target eBrem + 2 338 mum -388 mum -2.43 m 0 eV 195 keV 78.4 mum 1.22 mm Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 14, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -197 mum 582 mum -2.44 m 2.09 MeV 0 eV 0 fm 0 fm Target initStep - 1 847 mum 1.05 mm -2.42 m 0 eV 0 eV 1.95 cm 1.95 cm Target conv + 0 284 mum 613 mum -2.44 m 853 keV 0 eV 0 fm 0 fm Target initStep + 1 680 mum 236 mum -2.44 m 0 eV 88 keV 4.15 mm 4.15 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 150, Parent ID = 14 +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 14 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 847 mum 1.05 mm -2.42 m 430 keV 0 eV 0 fm 0 fm Target initStep - 1 781 mum 1.04 mm -2.42 m 5.55e-11 eV 430 keV 245 mum 245 mum Target eIoni - 2 781 mum 1.04 mm -2.42 m 5.55e-11 eV 0 eV 0 fm 245 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 152, Parent ID = 150 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 781 mum 1.04 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 452 mum 888 mum -2.42 m 383 keV 0 eV 1.65 mm 1.65 mm Target compt - 2 211 mum 1.75 mm -2.42 m 0 eV 88 keV 1.27 mm 2.92 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 154, Parent ID = 152 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 211 mum 1.75 mm -2.42 m 295 keV 0 eV 0 fm 0 fm Target initStep - 1 218 mum 1.76 mm -2.42 m 0 eV 295 keV 145 mum 145 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 153, Parent ID = 152 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 452 mum 888 mum -2.42 m 128 keV 0 eV 0 fm 0 fm Target initStep - 1 452 mum 886 mum -2.42 m 0 eV 128 keV 41 mum 41 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 151, Parent ID = 150 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 781 mum 1.04 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 1.77 mm 1.48 mm -2.42 m 317 keV 0 eV 4.95 mm 4.95 mm Target compt - 2 1.24 mm 3.96 mm -2.42 m 0 eV 88 keV 2.71 mm 7.66 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 156, Parent ID = 151 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.24 mm 3.96 mm -2.42 m 229 keV 0 eV 0 fm 0 fm Target initStep - 1 1.23 mm 3.97 mm -2.42 m 0 eV 229 keV 99.9 mum 99.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 155, Parent ID = 151 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.77 mm 1.48 mm -2.42 m 194 keV 0 eV 0 fm 0 fm Target initStep - 1 1.77 mm 1.48 mm -2.42 m 0 eV 194 keV 77.9 mum 77.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 14 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 847 mum 1.05 mm -2.42 m 641 keV 0 eV 0 fm 0 fm Target initStep - 1 839 mum 1.07 mm -2.42 m 0 eV 641 keV 416 mum 416 mum Target eIoni + 0 680 mum 236 mum -2.44 m 765 keV 0 eV 0 fm 0 fm Target initStep + 1 712 mum 239 mum -2.44 m 0 eV 765 keV 521 mum 521 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 13, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -202 mum 560 mum -2.44 m 924 keV 0 eV 0 fm 0 fm Target initStep - 1 885 mum 1.86 mm -2.42 m 422 keV 0 eV 2.41 cm 2.41 cm Target compt - 2 -109 mum 1.09 mm -2.42 m 161 keV 0 eV 1.37 mm 2.55 cm Target compt - 3 252 mum 1.38 mm -2.42 m 0 eV 88 keV 601 mum 2.61 cm Target phot + 0 -18.3 mum 568 mum -2.44 m 40.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 796 mum 1.74 mm -2.43 m 0 eV 0 eV 1.13 cm 1.13 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 13 +* G4Track Information: Particle = e+, Track ID = 98, Parent ID = 13 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 252 mum 1.38 mm -2.42 m 73.1 keV 0 eV 0 fm 0 fm Target initStep - 1 252 mum 1.38 mm -2.42 m 0 eV 73.1 keV 16.6 mum 16.6 mum Target eIoni + 0 796 mum 1.74 mm -2.43 m 19.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 513 mum 1.9 mm -2.43 m 17.3 MeV 1.46 MeV 1.23 mm 1.23 mm Target eBrem + 2 -413 mum 290 mum -2.43 m 13.4 MeV 3.94 MeV 2.95 mm 4.18 mm Target eBrem + 3 -762 mum 58.6 mum -2.43 m 4.75 MeV 744 keV 677 mum 4.85 mm Target eBrem + 4 -751 mum -531 mum -2.43 m 2.76 MeV 1.05 MeV 938 mum 5.79 mm Target eBrem + 5 -899 mum -237 mum -2.43 m 0 eV 2.76 MeV 2.2 mm 8 mm Target eIoni + 6 -899 mum -237 mum -2.43 m 0 eV 0 eV 0 fm 8 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 13 +* G4Track Information: Particle = gamma, Track ID = 103, Parent ID = 98 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -109 mum 1.09 mm -2.42 m 261 keV 0 eV 0 fm 0 fm Target initStep - 1 -115 mum 1.09 mm -2.42 m 0 eV 261 keV 121 mum 121 mum Target eIoni + 0 -899 mum -237 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -116 mum -2.81 mm -2.42 m 0 eV 88 keV 5.27 mm 5.27 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 13 +* G4Track Information: Particle = e-, Track ID = 104, Parent ID = 103 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 885 mum 1.86 mm -2.42 m 502 keV 0 eV 0 fm 0 fm Target initStep - 1 922 mum 1.93 mm -2.42 m 19.2 keV 174 keV 172 mum 172 mum Target eBrem - 2 921 mum 1.93 mm -2.42 m 6.94e-12 eV 19.2 keV 1.9 mum 174 mum Target eIoni + 0 -116 mum -2.81 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -130 mum -2.81 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 160, Parent ID = 157 +* G4Track Information: Particle = gamma, Track ID = 102, Parent ID = 98 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 922 mum 1.93 mm -2.42 m 308 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.26 mm 1.94 mm -2.41 m 0 eV 88 keV 3.49 mm 3.49 mm Target phot + 0 -899 mum -237 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.32 mm 1.14 mm -2.43 m 0 eV 88 keV 2.83 mm 2.83 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 161, Parent ID = 160 +* G4Track Information: Particle = e-, Track ID = 105, Parent ID = 102 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.26 mm 1.94 mm -2.41 m 220 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.26 mm 1.94 mm -2.41 m 0 eV 220 keV 94.5 mum 94.5 mum Target eIoni + 0 -1.32 mm 1.14 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.33 mm 1.14 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 101, Parent ID = 98 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -751 mum -531 mum -2.43 m 938 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 cm 1.49 cm -2.44 m 245 keV 0 eV 2.11 cm 2.11 cm Target compt + 2 -9.59 mm 1.4 cm -2.44 m 197 keV 0 eV 3.76 mm 2.48 cm Target compt + 3 -9.53 mm 1.41 cm -2.44 m 0 eV 88 keV 142 mum 2.5 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 108, Parent ID = 101 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.53 mm 1.41 cm -2.44 m 109 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.53 mm 1.41 cm -2.44 m 0 eV 109 keV 31.6 mum 31.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 107, Parent ID = 101 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.59 mm 1.4 cm -2.44 m 48.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.59 mm 1.4 cm -2.44 m 0 eV 48.1 keV 8.42 mum 8.42 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 106, Parent ID = 101 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.29 cm 1.49 cm -2.44 m 693 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 cm 1.49 cm -2.44 m 0 eV 693 keV 461 mum 461 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 100, Parent ID = 98 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -762 mum 58.6 mum -2.43 m 7.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.26 mm -976 mum -2.43 m 0 eV 0 eV 2.2 mm 2.2 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 110, Parent ID = 100 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.26 mm -976 mum -2.43 m 2.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.27 mm -1.1 mm -2.43 m 0 eV 209 keV 233 mum 233 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 110 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.27 mm -1.1 mm -2.43 m 2.56 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.46 mm 778 mum -2.43 m 0 eV 0 eV 3.89 mm 3.89 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 114, Parent ID = 112 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.46 mm 778 mum -2.43 m 491 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.45 mm 801 mum -2.43 m 0 eV 491 keV 294 mum 294 mum Target eIoni + 2 -4.45 mm 801 mum -2.43 m 0 eV 0 eV 0 fm 294 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 114 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.45 mm 801 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.47 mm 734 mum -2.43 m 0 eV 88 keV 80.2 mum 80.2 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 117, Parent ID = 116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.47 mm 734 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.47 mm 720 mum -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 114 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.45 mm 801 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.99 mm 5.73 mm -2.44 m 387 keV 0 eV 5.97 mm 5.97 mm Target compt + 2 -2.28 mm 6.26 mm -2.44 m 0 eV 88 keV 885 mum 6.85 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 119, Parent ID = 115 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.28 mm 6.26 mm -2.44 m 299 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.28 mm 6.27 mm -2.44 m 0 eV 299 keV 148 mum 148 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 118, Parent ID = 115 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.99 mm 5.73 mm -2.44 m 124 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.99 mm 5.73 mm -2.44 m 0 eV 124 keV 38.9 mum 38.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 113, Parent ID = 112 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.46 mm 778 mum -2.43 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.48 mm 839 mum -2.43 m 808 keV 235 keV 242 mum 242 mum Target eBrem + 2 -4.46 mm 815 mum -2.43 m 0 eV 808 keV 558 mum 800 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 110 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.27 mm -1.1 mm -2.43 m 304 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.26 mm -1.17 mm -2.43 m 155 keV 0 eV 129 mum 129 mum Target compt + 2 -2.87 mm -587 mum -2.43 m 0 eV 88 keV 863 mum 992 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 121, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.87 mm -587 mum -2.43 m 67 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.87 mm -587 mum -2.43 m 0 eV 67 keV 14.5 mum 14.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 120, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.26 mm -1.17 mm -2.43 m 149 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.26 mm -1.17 mm -2.43 m 0 eV 149 keV 52.3 mum 52.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 109, Parent ID = 100 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.26 mm -976 mum -2.43 m 4.79 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.67 mm -2.1 mm -2.43 m 2.2 MeV 2.26 MeV 1.99 mm 1.99 mm Target eBrem + 2 -1.61 mm -2.14 mm -2.43 m 1.52 MeV 82.1 keV 79.7 mum 2.07 mm Target eBrem + 3 -1.64 mm -2.16 mm -2.43 m 0 eV 1.52 MeV 1.16 mm 3.22 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 109 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.61 mm -2.14 mm -2.43 m 594 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.5 mm -4.17 mm -2.42 m 0 eV 88 keV 6.19 mm 6.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 124, Parent ID = 123 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.5 mm -4.17 mm -2.42 m 506 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.51 mm -4.18 mm -2.42 m 0 eV 506 keV 306 mum 306 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 109 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.67 mm -2.1 mm -2.43 m 335 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.52 mm -2.39 mm -2.43 m 0 eV 88 keV 332 mum 332 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 125, Parent ID = 122 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.52 mm -2.39 mm -2.43 m 247 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.52 mm -2.4 mm -2.43 m 0 eV 247 keV 112 mum 112 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 99, Parent ID = 98 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 513 mum 1.9 mm -2.43 m 712 keV 0 eV 0 fm 0 fm Target initStep + 1 -550 mum 1.8 mm -2.43 m 0 eV 88 keV 2.16 mm 2.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 126, Parent ID = 99 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -550 mum 1.8 mm -2.43 m 624 keV 0 eV 0 fm 0 fm Target initStep + 1 -566 mum 1.81 mm -2.43 m 0 eV 624 keV 403 mum 403 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 13 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 796 mum 1.74 mm -2.43 m 20.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 824 mum 2.03 mm -2.43 m 18.7 MeV 1.19 MeV 1.03 mm 1.03 mm Target eBrem + 2 292 mum 2.44 mm -2.43 m 15.7 MeV 1.77 MeV 1.55 mm 2.58 mm Target eBrem + 3 56.9 mum 2.87 mm -2.43 m 13.1 MeV 2.12 MeV 687 mum 3.27 mm Target eBrem + 4 -132 mum 5.16 mm -2.43 m 9.1 MeV 2.96 MeV 2.28 mm 5.55 mm Target eBrem + 5 497 mum 5.29 mm -2.43 m 6.79 MeV 839 keV 634 mum 6.18 mm Target eBrem + 6 723 mum 5.63 mm -2.43 m 4.17 MeV 2.2 MeV 447 mum 6.63 mm Target eBrem + 7 515 mum 7.26 mm -2.43 m 505 keV 3.27 MeV 2.91 mm 9.54 mm Target eBrem + 8 504 mum 7.28 mm -2.43 m 0 eV 505 keV 306 mum 9.85 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 133, Parent ID = 97 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 515 mum 7.26 mm -2.43 m 387 keV 0 eV 0 fm 0 fm Target initStep + 1 581 mum 9.52 mm -2.42 m 0 eV 88 keV 3.18 mm 3.18 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 134, Parent ID = 133 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 581 mum 9.52 mm -2.42 m 299 keV 0 eV 0 fm 0 fm Target initStep + 1 577 mum 9.53 mm -2.42 m 0 eV 299 keV 148 mum 148 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 97 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 723 mum 5.63 mm -2.43 m 433 keV 0 eV 0 fm 0 fm Target initStep + 1 677 mum 5.8 mm -2.43 m 417 keV 0 eV 220 mum 220 mum Target compt + 2 661 mum 1.56 cm -2.43 m 0 eV 88 keV 1.07 cm 1.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 136, Parent ID = 132 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 661 mum 1.56 cm -2.43 m 329 keV 0 eV 0 fm 0 fm Target initStep + 1 668 mum 1.56 cm -2.43 m 0 eV 329 keV 170 mum 170 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 135, Parent ID = 132 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 677 mum 5.8 mm -2.43 m 15.7 keV 0 eV 0 fm 0 fm Target initStep + 1 677 mum 5.8 mm -2.43 m 0 eV 15.7 keV 1.39 mum 1.39 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 97 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 497 mum 5.29 mm -2.43 m 1.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.55 cm 1.59 cm -2.43 m 796 keV 0 eV 1.84 cm 1.84 cm Target compt + 2 2.5 cm 1.51 cm -2.44 m 796 keV 0 eV 1.12 cm 2.97 cm Target Transportation + 3 79.1 cm -4.73 cm -2.91 m 796 keV 0 eV 90.3 cm 93.3 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 137, Parent ID = 131 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.55 cm 1.59 cm -2.43 m 673 keV 0 eV 0 fm 0 fm Target initStep + 1 1.55 cm 1.59 cm -2.43 m 0 eV 673 keV 445 mum 445 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 130, Parent ID = 97 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -132 mum 5.16 mm -2.43 m 1 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.57 mm 7.25 mm -2.43 m 261 keV 0 eV 6.31 mm 6.31 mm Target compt + 2 5.33 mm 7.38 mm -2.43 m 0 eV 88 keV 898 mum 7.2 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 139, Parent ID = 130 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.33 mm 7.38 mm -2.43 m 173 keV 0 eV 0 fm 0 fm Target initStep + 1 5.33 mm 7.39 mm -2.43 m 0 eV 173 keV 65.8 mum 65.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 138, Parent ID = 130 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.57 mm 7.25 mm -2.43 m 741 keV 0 eV 0 fm 0 fm Target initStep + 1 5.6 mm 7.26 mm -2.43 m 0 eV 741 keV 502 mum 502 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 129, Parent ID = 97 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 56.9 mum 2.87 mm -2.43 m 487 keV 0 eV 0 fm 0 fm Target initStep + 1 -692 mum 5.47 mm -2.42 m 0 eV 88 keV 5.13 mm 5.13 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 140, Parent ID = 129 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -692 mum 5.47 mm -2.42 m 399 keV 0 eV 0 fm 0 fm Target initStep + 1 -699 mum 5.48 mm -2.42 m 0 eV 399 keV 222 mum 222 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 128, Parent ID = 97 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 292 mum 2.44 mm -2.43 m 1.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.58 mm 1.73 cm -2.42 m 852 keV 0 eV 1.84 cm 1.84 cm Target compt + 2 -6.34 mm 2.5 cm -2.42 m 852 keV 0 eV 8.55 mm 2.7 cm Target Transportation + 3 -1.42 m 2.91 m -2.43 m 852 keV 0 eV 3.21 m 3.24 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 141, Parent ID = 128 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.58 mm 1.73 cm -2.42 m 453 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.58 mm 1.73 cm -2.42 m 0 eV 453 keV 264 mum 264 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 127, Parent ID = 97 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 824 mum 2.03 mm -2.43 m 327 keV 0 eV 0 fm 0 fm Target initStep + 1 691 mum 2.36 mm -2.43 m 296 keV 0 eV 907 mum 907 mum Target compt + 2 863 mum 2.14 mm -2.43 m 182 keV 0 eV 1.47 mm 2.38 mm Target compt + 3 1.64 mm 1.63 mm -2.43 m 177 keV 0 eV 963 mum 3.34 mm Target compt + 4 1.84 mm 1.54 mm -2.43 m 0 eV 88 keV 218 mum 3.56 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 145, Parent ID = 127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.84 mm 1.54 mm -2.43 m 88.9 keV 0 eV 0 fm 0 fm Target initStep + 1 1.84 mm 1.54 mm -2.43 m 0 eV 88.9 keV 22.9 mum 22.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 144, Parent ID = 127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.64 mm 1.63 mm -2.43 m 5.42 keV 0 eV 0 fm 0 fm Target initStep + 1 1.64 mm 1.63 mm -2.43 m 0 eV 5.42 keV 287 nm 287 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 143, Parent ID = 127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 863 mum 2.14 mm -2.43 m 113 keV 0 eV 0 fm 0 fm Target initStep + 1 863 mum 2.14 mm -2.43 m 0 eV 113 keV 33.9 mum 33.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 142, Parent ID = 127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 691 mum 2.36 mm -2.43 m 31.4 keV 0 eV 0 fm 0 fm Target initStep + 1 691 mum 2.36 mm -2.43 m 0 eV 31.4 keV 4.2 mum 4.2 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -217 mum 372 mum -2.44 m 54.4 MeV 0 eV 0 fm 0 fm Target initStep - 1 -802 mum 1.02 mm -2.43 m 0 eV 0 eV 1.04 cm 1.04 cm Target conv + 0 -37.2 mum 549 mum -2.44 m 608 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm 1.44 mm -2.43 m 334 keV 0 eV 1.08 cm 1.08 cm Target compt + 2 1.55 mm 1.61 mm -2.43 m 0 eV 88 keV 453 mum 1.13 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 163, Parent ID = 12 +* G4Track Information: Particle = e-, Track ID = 147, Parent ID = 12 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -802 mum 1.02 mm -2.43 m 14.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -881 mum 1.03 mm -2.43 m 5.47 MeV 1.37 MeV 399 mum 399 mum Target eBrem - 2 -1.8 mm 332 mum -2.43 m 2.52 MeV 2.96 MeV 2.29 mm 2.69 mm Target eIoni - 3 -2.46 mm 310 mum -2.43 m 614 keV 1.06 MeV 883 mum 3.57 mm Target eBrem - 4 -2.45 mm 281 mum -2.43 m 0 eV 614 keV 397 mum 3.97 mm Target eIoni - 5 -2.45 mm 281 mum -2.43 m 0 eV 0 eV 0 fm 3.97 mm Target annihil + 0 1.55 mm 1.61 mm -2.43 m 246 keV 0 eV 0 fm 0 fm Target initStep + 1 1.55 mm 1.62 mm -2.43 m 0 eV 246 keV 111 mum 111 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 167, Parent ID = 163 +* G4Track Information: Particle = e-, Track ID = 146, Parent ID = 12 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.45 mm 281 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.02 mm -947 mum -2.43 m 0 eV 88 keV 1.37 mm 1.37 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 167 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.02 mm -947 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.04 mm -955 mum -2.43 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 166, Parent ID = 163 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.45 mm 281 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 5.68 mm 1.77 cm -2.43 m 244 keV 0 eV 1.93 cm 1.93 cm Target compt - 2 4.8 mm 1.79 cm -2.43 m 0 eV 88 keV 1.04 mm 2.04 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 166 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.8 mm 1.79 cm -2.43 m 156 keV 0 eV 0 fm 0 fm Target initStep - 1 4.8 mm 1.79 cm -2.43 m 0 eV 156 keV 55.4 mum 55.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 166 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.68 mm 1.77 cm -2.43 m 267 keV 0 eV 0 fm 0 fm Target initStep - 1 5.68 mm 1.77 cm -2.43 m 1.11e-10 eV 267 keV 126 mum 126 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 165, Parent ID = 163 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.46 mm 310 mum -2.43 m 839 keV 0 eV 0 fm 0 fm Target initStep - 1 9.03 mm -1.09 cm -2.42 m 0 eV 88 keV 2.12 cm 2.12 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 171, Parent ID = 165 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.03 mm -1.09 cm -2.42 m 751 keV 0 eV 0 fm 0 fm Target initStep - 1 9.06 mm -1.09 cm -2.42 m 0 eV 751 keV 509 mum 509 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 163 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -881 mum 1.03 mm -2.43 m 7.65 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.47 mm 8.66 mm -2.42 m 0 eV 0 eV 1.53 cm 1.53 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 173, Parent ID = 164 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.47 mm 8.66 mm -2.42 m 4.71 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.36 mm 7.99 mm -2.42 m 2.38 MeV 2.33 MeV 2.15 mm 2.15 mm Target eIoni - 2 -2.35 mm 8.29 mm -2.42 m 1.13 MeV 728 keV 870 mum 3.02 mm Target eBrem - 3 -2.35 mm 8.19 mm -2.42 m 0 eV 1.13 MeV 847 mum 3.86 mm Target eIoni - 4 -2.35 mm 8.19 mm -2.42 m 0 eV 0 eV 0 fm 3.86 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 176, Parent ID = 173 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.35 mm 8.19 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.2 mm 8.18 mm -2.42 m 0 eV 88 keV 970 mum 970 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 176 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.2 mm 8.18 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.19 mm 8.17 mm -2.42 m 5.55e-11 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 175, Parent ID = 173 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.35 mm 8.19 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.36 mm 8.19 mm -2.42 m 219 keV 0 eV 27.2 mum 27.2 mum Target compt - 2 -1.6 mm 1.17 cm -2.42 m 217 keV 0 eV 3.79 mm 3.82 mm Target compt - 3 -1.58 mm 1.2 cm -2.42 m 0 eV 88 keV 293 mum 4.11 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 180, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.58 mm 1.2 cm -2.42 m 129 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.58 mm 1.2 cm -2.42 m 0 eV 129 keV 41.1 mum 41.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.6 mm 1.17 cm -2.42 m 2.3 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.6 mm 1.17 cm -2.42 m 0 eV 2.3 keV 88.6 nm 88.6 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 175 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.36 mm 8.19 mm -2.42 m 292 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.36 mm 8.19 mm -2.42 m 1.11e-10 eV 292 keV 143 mum 143 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 173 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.35 mm 8.29 mm -2.42 m 517 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.86 mm 3.99 mm -2.42 m 0 eV 88 keV 4.45 mm 4.45 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 181, Parent ID = 174 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.86 mm 3.99 mm -2.42 m 429 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.87 mm 3.98 mm -2.42 m 1.67e-10 eV 429 keV 245 mum 245 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 172, Parent ID = 164 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.47 mm 8.66 mm -2.42 m 1.92 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.53 mm 8.72 mm -2.42 m 0 eV 1.92 MeV 1.36 mm 1.36 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 162, Parent ID = 12 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -802 mum 1.02 mm -2.43 m 38.8 MeV 0 eV 0 fm 0 fm Target initStep - 1 -807 mum 1.02 mm -2.43 m 27.3 MeV 267 keV 151 mum 151 mum Target eBrem - 2 -768 mum 1.08 mm -2.43 m 22.3 MeV 1.32 MeV 856 mum 1.01 mm Target eBrem - 3 -897 mum 1.27 mm -2.43 m 18.6 MeV 2.16 MeV 1.5 mm 2.51 mm Target eBrem - 4 -839 mum 1.61 mm -2.43 m 16.1 MeV 1.7 MeV 1.21 mm 3.72 mm Target eBrem - 5 -798 mum 2.32 mm -2.43 m 6.84 MeV 6.67 MeV 1.43 mm 5.14 mm Target eBrem - 6 -1.81 mm 4.25 mm -2.43 m 4.24 MeV 2.6 MeV 2.5 mm 7.64 mm Target eIoni - 7 -2.1 mm 4.42 mm -2.43 m 2.11 MeV 2.13 MeV 2.02 mm 9.66 mm Target eIoni - 8 -1.92 mm 4.54 mm -2.43 m 1.53 MeV 230 keV 241 mum 9.9 mm Target eBrem - 9 -1.88 mm 4.47 mm -2.43 m 355 keV 1.17 MeV 1.15 mm 1.11 cm Target eIoni - 10 -1.88 mm 4.46 mm -2.43 m 0 eV 355 keV 189 mum 1.12 cm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 187, Parent ID = 162 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.92 mm 4.54 mm -2.43 m 349 keV 0 eV 0 fm 0 fm Target initStep - 1 105 mum 3.54 mm -2.43 m 0 eV 88 keV 2.29 mm 2.29 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 187 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 105 mum 3.54 mm -2.43 m 261 keV 0 eV 0 fm 0 fm Target initStep - 1 108 mum 3.53 mm -2.43 m 0 eV 261 keV 121 mum 121 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 186, Parent ID = 162 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -798 mum 2.32 mm -2.43 m 2.6 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.58 mm 9.67 mm -2.43 m 876 keV 0 eV 9.03 mm 9.03 mm Target compt - 2 2.64 mm 1.21 cm -2.43 m 536 keV 0 eV 2.65 mm 1.17 cm Target compt - 3 -3.66 mm 1.44 cm -2.43 m 0 eV 88 keV 7.21 mm 1.89 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 191, Parent ID = 186 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.66 mm 1.44 cm -2.43 m 448 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.66 mm 1.44 cm -2.43 m 1.67e-10 eV 448 keV 260 mum 260 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 186 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.64 mm 1.21 cm -2.43 m 339 keV 0 eV 0 fm 0 fm Target initStep - 1 2.65 mm 1.22 cm -2.43 m 0 eV 339 keV 177 mum 177 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 186 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.58 mm 9.67 mm -2.43 m 1.73 MeV 0 eV 0 fm 0 fm Target initStep - 1 3.61 mm 9.85 mm -2.43 m 868 keV 485 keV 253 mum 253 mum Target eBrem - 2 3.6 mm 9.84 mm -2.43 m 0 eV 868 keV 608 mum 861 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 189 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.61 mm 9.85 mm -2.43 m 373 keV 0 eV 0 fm 0 fm Target initStep - 1 2.08 mm 9.96 mm -2.42 m 353 keV 0 eV 8.98 mm 8.98 mm Target compt - 2 2.09 mm 1 cm -2.42 m 0 eV 88 keV 285 mum 9.26 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 192 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.09 mm 1 cm -2.42 m 265 keV 0 eV 0 fm 0 fm Target initStep - 1 2.09 mm 1 cm -2.42 m 0 eV 265 keV 124 mum 124 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 192 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.08 mm 9.96 mm -2.42 m 19.4 keV 0 eV 0 fm 0 fm Target initStep - 1 2.07 mm 9.96 mm -2.42 m 0 eV 19.4 keV 1.94 mum 1.94 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 185, Parent ID = 162 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -839 mum 1.61 mm -2.43 m 809 keV 0 eV 0 fm 0 fm Target initStep - 1 5.75 mm 1.46 cm -2.41 m 0 eV 88 keV 2.12 cm 2.12 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 195, Parent ID = 185 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 5.75 mm 1.46 cm -2.41 m 721 keV 0 eV 0 fm 0 fm Target initStep - 1 5.77 mm 1.46 cm -2.41 m 1.11e-10 eV 721 keV 483 mum 483 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 184, Parent ID = 162 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -897 mum 1.27 mm -2.43 m 1.5 MeV 0 eV 0 fm 0 fm Target initStep - 1 -87 mum 3.33 mm -2.43 m 976 keV 0 eV 4.6 mm 4.6 mm Target compt - 2 2.21 cm 1.15 cm -2.41 m 248 keV 0 eV 3.14 cm 3.6 cm Target compt - 3 2.21 cm 1.15 cm -2.41 m 0 eV 88 keV 139 mum 3.61 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 184 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.21 cm 1.15 cm -2.41 m 160 keV 0 eV 0 fm 0 fm Target initStep - 1 2.21 cm 1.15 cm -2.41 m 0 eV 160 keV 57.9 mum 57.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 197, Parent ID = 184 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.21 cm 1.15 cm -2.41 m 728 keV 0 eV 0 fm 0 fm Target initStep - 1 2.21 cm 1.15 cm -2.41 m 0 eV 728 keV 490 mum 490 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 184 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -87 mum 3.33 mm -2.43 m 523 keV 0 eV 0 fm 0 fm Target initStep - 1 -97.5 mum 3.34 mm -2.43 m 0 eV 523 keV 320 mum 320 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 183, Parent ID = 162 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -768 mum 1.08 mm -2.43 m 3.69 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.98 mm 6.64 mm -2.4 m 716 keV 0 eV 2.87 cm 2.87 cm Target compt - 2 -2.47 mm 2.87 mm -2.4 m 716 keV 0 eV 7.28 mm 3.6 cm Target Transportation - 3 -2.4 m -2.03 m -5.5 cm 716 keV 0 eV 3.92 m 3.96 m Tracker Transportation - 4 -2.91 m -2.46 m 44.4 cm 716 keV 0 eV 83.4 cm 4.79 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 183 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.98 mm 6.64 mm -2.4 m 2.98 MeV 0 eV 0 fm 0 fm Target initStep - 1 2.21 mm 6.85 mm -2.4 m 1.96 MeV 474 keV 492 mum 492 mum Target eBrem - 2 2.25 mm 6.69 mm -2.4 m 1.11 MeV 297 keV 265 mum 757 mum Target eBrem - 3 2.3 mm 6.48 mm -2.4 m 131 keV 375 keV 402 mum 1.16 mm Target eBrem - 4 2.3 mm 6.48 mm -2.4 m 2.78e-11 eV 131 keV 42.5 mum 1.2 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 202, Parent ID = 199 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.3 mm 6.48 mm -2.4 m 600 keV 0 eV 0 fm 0 fm Target initStep - 1 1.56 mm 1.01 cm -2.41 m 0 eV 88 keV 4.49 mm 4.49 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 202 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.56 mm 1.01 cm -2.41 m 512 keV 0 eV 0 fm 0 fm Target initStep - 1 1.56 mm 1.01 cm -2.41 m 0 eV 512 keV 311 mum 311 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 201, Parent ID = 199 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.25 mm 6.69 mm -2.4 m 554 keV 0 eV 0 fm 0 fm Target initStep - 1 2.55 mm 6.57 mm -2.4 m 217 keV 0 eV 414 mum 414 mum Target compt - 2 2.65 mm 7.23 mm -2.4 m 0 eV 88 keV 746 mum 1.16 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 201 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.65 mm 7.23 mm -2.4 m 129 keV 0 eV 0 fm 0 fm Target initStep - 1 2.65 mm 7.23 mm -2.4 m 0 eV 129 keV 41.4 mum 41.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 201 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.55 mm 6.57 mm -2.4 m 337 keV 0 eV 0 fm 0 fm Target initStep - 1 2.56 mm 6.57 mm -2.4 m 0 eV 337 keV 175 mum 175 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 200, Parent ID = 199 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 2.21 mm 6.85 mm -2.4 m 543 keV 0 eV 0 fm 0 fm Target initStep - 1 1.81 mm 6.12 mm -2.4 m 182 keV 0 eV 836 mum 836 mum Target compt - 2 1.8 mm 7.35 mm -2.4 m 0 eV 88 keV 1.24 mm 2.07 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 200 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.8 mm 7.35 mm -2.4 m 94 keV 0 eV 0 fm 0 fm Target initStep - 1 1.8 mm 7.35 mm -2.4 m 0 eV 94 keV 24.9 mum 24.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 200 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.81 mm 6.12 mm -2.4 m 361 keV 0 eV 0 fm 0 fm Target initStep - 1 1.81 mm 6.1 mm -2.4 m 5.55e-11 eV 361 keV 193 mum 193 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 182, Parent ID = 162 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -807 mum 1.02 mm -2.43 m 11.3 MeV 0 eV 0 fm 0 fm Target initStep - 1 -671 mum 1.77 mm -2.42 m 0 eV 0 eV 1.34 cm 1.34 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 209, Parent ID = 182 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -671 mum 1.77 mm -2.42 m 6.05 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.36 mm 1.93 mm -2.42 m 4.03 MeV 1.58 MeV 1.37 mm 1.37 mm Target eBrem - 2 -486 mum 1.57 mm -2.42 m 2.69 MeV 1.05 MeV 1.13 mm 2.51 mm Target eBrem - 3 311 mum 1.1 mm -2.42 m 1.11 MeV 1.58 MeV 1.67 mm 4.17 mm Target eIoni - 4 381 mum 643 mum -2.42 m 2.22e-10 eV 1.11 MeV 829 mum 5 mm Target eIoni - 5 381 mum 643 mum -2.42 m 2.22e-10 eV 0 eV 0 fm 5 mm Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 213, Parent ID = 209 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 381 mum 643 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 376 mum 262 mum -2.42 m 354 keV 0 eV 2.16 mm 2.16 mm Target compt - 2 1.9 mm 1.65 mm -2.42 m 0 eV 88 keV 2.73 mm 4.9 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 215, Parent ID = 213 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.9 mm 1.65 mm -2.42 m 266 keV 0 eV 0 fm 0 fm Target initStep - 1 1.89 mm 1.66 mm -2.42 m 0 eV 266 keV 125 mum 125 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 214, Parent ID = 213 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 376 mum 262 mum -2.42 m 157 keV 0 eV 0 fm 0 fm Target initStep - 1 375 mum 259 mum -2.42 m 0 eV 157 keV 56.2 mum 56.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 212, Parent ID = 209 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 381 mum 643 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 397 mum 2.03 mm -2.41 m 0 eV 88 keV 7.87 mm 7.87 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 212 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 397 mum 2.03 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 405 mum 2.04 mm -2.41 m 1.11e-10 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 211, Parent ID = 209 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -486 mum 1.57 mm -2.42 m 287 keV 0 eV 0 fm 0 fm Target initStep - 1 -374 mum 3.1 mm -2.41 m 0 eV 88 keV 3.64 mm 3.64 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 211 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -374 mum 3.1 mm -2.41 m 199 keV 0 eV 0 fm 0 fm Target initStep - 1 -371 mum 3.11 mm -2.41 m 5.55e-11 eV 199 keV 80.9 mum 80.9 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 210, Parent ID = 209 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.36 mm 1.93 mm -2.42 m 443 keV 0 eV 0 fm 0 fm Target initStep - 1 418 mum 1.63 mm -2.41 m 0 eV 88 keV 4.31 mm 4.31 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 218, Parent ID = 210 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 418 mum 1.63 mm -2.41 m 355 keV 0 eV 0 fm 0 fm Target initStep - 1 427 mum 1.63 mm -2.41 m 1.11e-10 eV 355 keV 189 mum 189 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 182 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -671 mum 1.77 mm -2.42 m 4.21 MeV 0 eV 0 fm 0 fm Target initStep - 1 -591 mum 1.8 mm -2.42 m 3.45 MeV 340 keV 363 mum 363 mum Target eBrem - 2 -706 mum 2.04 mm -2.42 m 2.5 MeV 552 keV 513 mum 877 mum Target eBrem - 3 -672 mum 1.8 mm -2.42 m 1.67 MeV 549 keV 642 mum 1.52 mm Target eBrem - 4 -546 mum 1.73 mm -2.42 m 794 keV 197 keV 195 mum 1.71 mm Target eBrem - 5 -543 mum 1.69 mm -2.42 m 0 eV 794 keV 545 mum 2.26 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 222, Parent ID = 208 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -546 mum 1.73 mm -2.42 m 678 keV 0 eV 0 fm 0 fm Target initStep - 1 742 mum -6.5 mm -2.42 m 0 eV 88 keV 8.56 mm 8.56 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 223, Parent ID = 222 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 742 mum -6.5 mm -2.42 m 590 keV 0 eV 0 fm 0 fm Target initStep - 1 756 mum -6.52 mm -2.42 m 0 eV 590 keV 375 mum 375 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 221, Parent ID = 208 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -672 mum 1.8 mm -2.42 m 286 keV 0 eV 0 fm 0 fm Target initStep - 1 623 mum -2.47 mm -2.42 m 0 eV 88 keV 5.05 mm 5.05 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 224, Parent ID = 221 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 623 mum -2.47 mm -2.42 m 198 keV 0 eV 0 fm 0 fm Target initStep - 1 623 mum -2.47 mm -2.42 m 8.33e-11 eV 198 keV 80 mum 80 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 220, Parent ID = 208 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -706 mum 2.04 mm -2.42 m 390 keV 0 eV 0 fm 0 fm Target initStep - 1 1.51 mm 4.34 mm -2.42 m 255 keV 0 eV 3.99 mm 3.99 mm Target compt - 2 -593 mum 6.31 mm -2.41 m 0 eV 88 keV 3.42 mm 7.4 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 220 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -593 mum 6.31 mm -2.41 m 167 keV 0 eV 0 fm 0 fm Target initStep - 1 -590 mum 6.32 mm -2.41 m 2.78e-11 eV 167 keV 62.1 mum 62.1 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 225, Parent ID = 220 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.51 mm 4.34 mm -2.42 m 134 keV 0 eV 0 fm 0 fm Target initStep - 1 1.51 mm 4.34 mm -2.42 m 5.55e-11 eV 134 keV 44 mum 44 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 219, Parent ID = 208 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -591 mum 1.8 mm -2.42 m 422 keV 0 eV 0 fm 0 fm Target initStep - 1 766 mum 1.48 mm -2.41 m 0 eV 88 keV 5.29 mm 5.29 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 219 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 766 mum 1.48 mm -2.41 m 334 keV 0 eV 0 fm 0 fm Target initStep - 1 760 mum 1.48 mm -2.41 m 0 eV 334 keV 173 mum 173 mum Target eIoni + 0 1.14 mm 1.44 mm -2.43 m 274 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm 1.44 mm -2.43 m 0 eV 274 keV 131 mum 131 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -206 mum 359 mum -2.44 m 635 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.22 mm 2.18 mm -2.42 m 0 eV 88 keV 2.23 cm 2.23 cm Target phot + 0 -269 mum 343 mum -2.45 m 789 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.24 mum 457 mum -2.44 m 528 keV 0 eV 2.95 mm 2.95 mm Target compt + 2 2.5 mm 822 mum -2.44 m 0 eV 88 keV 3.19 mm 6.14 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 11 +* G4Track Information: Particle = e-, Track ID = 149, Parent ID = 11 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.22 mm 2.18 mm -2.42 m 547 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.23 mm 2.18 mm -2.42 m 0 eV 547 keV 340 mum 340 mum Target eIoni + 0 2.5 mm 822 mum -2.44 m 440 keV 0 eV 0 fm 0 fm Target initStep + 1 2.52 mm 831 mum -2.44 m 0 eV 440 keV 255 mum 255 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 148, Parent ID = 11 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.24 mum 457 mum -2.44 m 261 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.01 mum 456 mum -2.44 m 0 eV 261 keV 121 mum 121 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -75.3 mum 187 mum -2.45 m 834 keV 0 eV 0 fm 0 fm Target initStep - 1 -523 mum 1.43 mm -2.43 m 552 keV 0 eV 1.78 cm 1.78 cm Target compt - 2 137 mum 1.55 mm -2.43 m 374 keV 0 eV 935 mum 1.88 cm Target compt - 3 586 mum 4.39 mm -2.43 m 0 eV 88 keV 3.35 mm 2.21 cm Target phot + 0 -307 mum 223 mum -2.45 m 21.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 686 mum 1.87 mm -2.41 m 0 eV 0 eV 3.9 cm 3.9 cm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 231, Parent ID = 10 +* G4Track Information: Particle = e+, Track ID = 151, Parent ID = 10 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 586 mum 4.39 mm -2.43 m 286 keV 0 eV 0 fm 0 fm Target initStep - 1 588 mum 4.4 mm -2.43 m 0 eV 286 keV 138 mum 138 mum Target eIoni + 0 686 mum 1.87 mm -2.41 m 14.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 726 mum 1.97 mm -2.41 m 11.4 MeV 661 keV 481 mum 481 mum Target eBrem + 2 726 mum 1.84 mm -2.41 m 8.79 MeV 1.22 MeV 853 mum 1.33 mm Target eBrem + 3 873 mum 3.84 mm -2.41 m 116 keV 4.73 MeV 2.5 mm 3.84 mm Target eBrem + 4 877 mum 3.84 mm -2.41 m 0 eV 116 keV 32.5 mum 3.87 mm Target eIoni + 5 877 mum 3.84 mm -2.41 m 0 eV 0 eV 0 fm 3.87 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 230, Parent ID = 10 +* G4Track Information: Particle = gamma, Track ID = 156, Parent ID = 151 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 137 mum 1.55 mm -2.43 m 179 keV 0 eV 0 fm 0 fm Target initStep - 1 140 mum 1.54 mm -2.43 m 0 eV 179 keV 68.7 mum 68.7 mum Target eIoni + 0 877 mum 3.84 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 805 mum 3.92 mm -2.41 m 0 eV 88 keV 112 mum 112 mum Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 229, Parent ID = 10 +* G4Track Information: Particle = e-, Track ID = 157, Parent ID = 156 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -523 mum 1.43 mm -2.43 m 282 keV 0 eV 0 fm 0 fm Target initStep - 1 -529 mum 1.43 mm -2.43 m 0 eV 282 keV 136 mum 136 mum Target eIoni + 0 805 mum 3.92 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 791 mum 3.93 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 877 mum 3.84 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.83 mm 2.82 mm -2.41 m 0 eV 88 keV 1.5 mm 1.5 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 158, Parent ID = 155 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.83 mm 2.82 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.83 mm 2.81 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 154, Parent ID = 151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 873 mum 3.84 mm -2.41 m 3.94 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.94 mm 4.69 mm -2.41 m 0 eV 0 eV 4.48 mm 4.48 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 160, Parent ID = 154 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.94 mm 4.69 mm -2.41 m 1.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.03 mm 4.71 mm -2.41 m 0 eV 1.1 MeV 821 mum 821 mum Target eIoni + 2 5.03 mm 4.71 mm -2.41 m 0 eV 0 eV 0 fm 821 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 162, Parent ID = 160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.03 mm 4.71 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 514 mum 1.27 cm -2.42 m 233 keV 0 eV 1.33 cm 1.33 cm Target compt + 2 704 mum 1.26 cm -2.42 m 0 eV 88 keV 272 mum 1.35 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 164, Parent ID = 162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 704 mum 1.26 cm -2.42 m 145 keV 0 eV 0 fm 0 fm Target initStep + 1 707 mum 1.26 cm -2.42 m 0 eV 145 keV 50 mum 50 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 163, Parent ID = 162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 514 mum 1.27 cm -2.42 m 278 keV 0 eV 0 fm 0 fm Target initStep + 1 509 mum 1.27 cm -2.42 m 0 eV 278 keV 133 mum 133 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.03 mm 4.71 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 7.65 mm 80.9 mum -2.4 m 319 keV 0 eV 7.66 mm 7.66 mm Target compt + 2 5.25 mm -2.67 mm -2.4 m 233 keV 0 eV 3.76 mm 1.14 cm Target compt + 3 5.35 mm -2.99 mm -2.4 m 0 eV 88 keV 348 mum 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.35 mm -2.99 mm -2.4 m 145 keV 0 eV 0 fm 0 fm Target initStep + 1 5.35 mm -2.99 mm -2.4 m 0 eV 145 keV 49.8 mum 49.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.25 mm -2.67 mm -2.4 m 86.3 keV 0 eV 0 fm 0 fm Target initStep + 1 5.25 mm -2.67 mm -2.4 m 0 eV 86.3 keV 21.9 mum 21.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 165, Parent ID = 161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.65 mm 80.9 mum -2.4 m 192 keV 0 eV 0 fm 0 fm Target initStep + 1 7.65 mm 80.2 mum -2.4 m 0 eV 192 keV 76.8 mum 76.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 159, Parent ID = 154 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.94 mm 4.69 mm -2.41 m 1.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.92 mm 4.76 mm -2.41 m 543 keV 653 keV 521 mum 521 mum Target eBrem + 2 4.91 mm 4.78 mm -2.41 m 0 eV 543 keV 337 mum 859 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 168, Parent ID = 159 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.92 mm 4.76 mm -2.41 m 621 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.73 mm 2.1 cm -2.41 m 0 eV 88 keV 1.91 cm 1.91 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 168 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.73 mm 2.1 cm -2.41 m 533 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.73 mm 2.1 cm -2.41 m 0 eV 533 keV 328 mum 328 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 153, Parent ID = 151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 726 mum 1.84 mm -2.41 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 69.4 mum 2.77 mm -2.4 m 1.04 MeV 0 eV 3.6 mm 3.6 mm Target compt + 2 21.3 mum 5.44 mm -2.4 m 1.04 MeV 0 eV 3.95 mm 7.55 mm Target Transportation + 3 -4.31 cm 2.4 m 21 cm 1.04 MeV 0 eV 3.54 m 3.55 m Tracker Transportation + 4 -5.23 cm 2.91 m 76.6 cm 1.04 MeV 0 eV 75.4 cm 4.3 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 153 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 69.4 mum 2.77 mm -2.4 m 351 keV 0 eV 0 fm 0 fm Target initStep + 1 65.1 mum 2.77 mm -2.4 m 0 eV 351 keV 186 mum 186 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 152, Parent ID = 151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 726 mum 1.97 mm -2.41 m 2.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 -910 mum 3.66 mm -2.4 m 2.77 MeV 0 eV 7.56 mm 7.56 mm Target Transportation + 2 -18.3 cm 19.1 cm -1.6 m 2.77 MeV 0 eV 84.2 cm 84.9 cm Tracker Transportation + 3 -22.9 cm 23.8 cm -1.4 m 2.77 MeV 0 eV 21 cm 1.06 m Chamber Transportation + 4 -36.5 cm 37.9 cm -80 cm 2.77 MeV 0 eV 63.1 cm 1.69 m Tracker Transportation + 5 -41.1 cm 42.6 cm -60 cm 2.77 MeV 0 eV 21 cm 1.9 m Chamber Transportation + 6 -54.7 cm 56.7 cm 0 fm 2.77 MeV 0 eV 63.1 cm 2.53 m Tracker Transportation + 7 -59.3 cm 61.4 cm 20 cm 2.77 MeV 0 eV 21 cm 2.74 m Chamber Transportation + 8 -72.9 cm 75.4 cm 80 cm 2.77 MeV 0 eV 63.1 cm 3.37 m Tracker Transportation + 9 -77.5 cm 80.1 cm 1 m 2.77 MeV 0 eV 21 cm 3.58 m Chamber Transportation + 10 -91.2 cm 94.2 cm 1.6 m 2.77 MeV 0 eV 63.1 cm 4.22 m Tracker Transportation + 11 -95.7 cm 98.9 cm 1.8 m 2.77 MeV 0 eV 21 cm 4.43 m Chamber Transportation + 12 -1.09 m 1.13 m 2.4 m 2.77 MeV 0 eV 63.1 cm 5.06 m Tracker Transportation + 13 -1.21 m 1.25 m 2.91 m 2.77 MeV 0 eV 53.7 cm 5.59 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 150, Parent ID = 10 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 686 mum 1.87 mm -2.41 m 5.35 MeV 0 eV 0 fm 0 fm Target initStep + 1 -306 mum 1.17 mm -2.41 m 2.26 MeV 2.47 MeV 1.73 mm 1.73 mm Target eBrem + 2 -294 mum 1.17 mm -2.41 m 862 keV 26.9 keV 38.6 mum 1.77 mm Target eBrem + 3 -285 mum 1.17 mm -2.41 m 0 eV 862 keV 603 mum 2.37 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 172, Parent ID = 150 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -294 mum 1.17 mm -2.41 m 1.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 -262 mum 1.12 mm -2.41 m 0 eV 88 keV 465 mum 465 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 173, Parent ID = 172 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -262 mum 1.12 mm -2.41 m 1.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 -252 mum 1.13 mm -2.41 m 0 eV 1.28 MeV 957 mum 957 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 171, Parent ID = 150 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -306 mum 1.17 mm -2.41 m 622 keV 0 eV 0 fm 0 fm Target initStep + 1 1.06 mm 1.36 mm -2.41 m 0 eV 88 keV 4.91 mm 4.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 174, Parent ID = 171 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.06 mm 1.36 mm -2.41 m 534 keV 0 eV 0 fm 0 fm Target initStep + 1 1.05 mm 1.36 mm -2.41 m 0 eV 534 keV 329 mum 329 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -52.6 mum 173 mum -2.45 m 784 keV 0 eV 0 fm 0 fm Target initStep - 1 -104 mum 272 mum -2.44 m 300 keV 0 eV 2.75 mm 2.75 mm Target compt - 2 386 mum 290 mum -2.44 m 0 eV 88 keV 490 mum 3.24 mm Target phot + 0 -311 mum 221 mum -2.45 m 19.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -151 mum 477 mum -2.44 m 0 eV 0 eV 8.07 mm 8.07 mm Target conv ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 233, Parent ID = 9 +* G4Track Information: Particle = e+, Track ID = 176, Parent ID = 9 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 386 mum 290 mum -2.44 m 212 keV 0 eV 0 fm 0 fm Target initStep - 1 391 mum 289 mum -2.44 m 0 eV 212 keV 89.1 mum 89.1 mum Target eIoni + 0 -151 mum 477 mum -2.44 m 13.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -275 mum 577 mum -2.44 m 5.95 MeV 865 keV 581 mum 581 mum Target eBrem + 2 286 mum 766 mum -2.44 m 3.19 MeV 1.02 MeV 1.1 mm 1.68 mm Target eBrem + 3 308 mum 742 mum -2.44 m 2.42 MeV 35.8 keV 37.9 mum 1.72 mm Target eBrem + 4 446 mum 529 mum -2.44 m 1.31 MeV 325 keV 289 mum 2.01 mm Target eBrem + 5 352 mum 546 mum -2.44 m 0 eV 1.31 MeV 996 mum 3.01 mm Target eIoni + 6 352 mum 546 mum -2.44 m 0 eV 0 eV 0 fm 3.01 mm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 232, Parent ID = 9 +* G4Track Information: Particle = gamma, Track ID = 182, Parent ID = 176 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -104 mum 272 mum -2.44 m 484 keV 0 eV 0 fm 0 fm Target initStep - 1 -111 mum 272 mum -2.44 m 5.55e-11 eV 484 keV 289 mum 289 mum Target eIoni + 0 352 mum 546 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.51 mm -1.32 mm -2.44 m 483 keV 0 eV 4.77 mm 4.77 mm Target compt + 2 3.03 mm -2.62 mm -2.44 m 0 eV 88 keV 1.98 mm 6.75 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 182 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.03 mm -2.62 mm -2.44 m 395 keV 0 eV 0 fm 0 fm Target initStep + 1 3.04 mm -2.63 mm -2.44 m 0 eV 395 keV 219 mum 219 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 183, Parent ID = 182 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.51 mm -1.32 mm -2.44 m 28.2 keV 0 eV 0 fm 0 fm Target initStep + 1 2.51 mm -1.32 mm -2.44 m 0 eV 28.2 keV 3.55 mum 3.55 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 181, Parent ID = 176 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 352 mum 546 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.73 mm 4.07 mm -2.43 m 0 eV 88 keV 9.02 mm 9.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 181 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.73 mm 4.07 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.75 mm 4.06 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 180, Parent ID = 176 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 446 mum 529 mum -2.44 m 790 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.19 cm 2.35 cm -2.44 m 349 keV 0 eV 2.61 cm 2.61 cm Target compt + 2 -1.12 cm 2.4 cm -2.44 m 0 eV 88 keV 1.08 mm 2.71 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 187, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.12 cm 2.4 cm -2.44 m 261 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.12 cm 2.4 cm -2.44 m 0 eV 261 keV 122 mum 122 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 186, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.19 cm 2.35 cm -2.44 m 441 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.19 cm 2.35 cm -2.44 m 0 eV 441 keV 255 mum 255 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 179, Parent ID = 176 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 308 mum 742 mum -2.44 m 727 keV 0 eV 0 fm 0 fm Target initStep + 1 4.73 mm -9.18 mm -2.44 m 635 keV 0 eV 1.09 cm 1.09 cm Target compt + 2 6.56 mm -1.31 cm -2.44 m 0 eV 88 keV 5.07 mm 1.6 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 189, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.56 mm -1.31 cm -2.44 m 547 keV 0 eV 0 fm 0 fm Target initStep + 1 6.57 mm -1.31 cm -2.44 m 0 eV 547 keV 341 mum 341 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 188, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.73 mm -9.18 mm -2.44 m 91.7 keV 0 eV 0 fm 0 fm Target initStep + 1 4.73 mm -9.18 mm -2.44 m 0 eV 91.7 keV 24.1 mum 24.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 178, Parent ID = 176 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 286 mum 766 mum -2.44 m 1.75 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.16 cm -1.41 cm -2.43 m 254 keV 0 eV 1.95 cm 1.95 cm Target compt + 2 8.78 mm -1.28 cm -2.44 m 0 eV 88 keV 5.58 mm 2.51 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 191, Parent ID = 178 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.78 mm -1.28 cm -2.44 m 166 keV 0 eV 0 fm 0 fm Target initStep + 1 8.77 mm -1.28 cm -2.44 m 0 eV 166 keV 61.5 mum 61.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 190, Parent ID = 178 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 cm -1.41 cm -2.43 m 1.49 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.17 cm -1.42 cm -2.43 m 0 eV 1.49 MeV 1.14 mm 1.14 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 177, Parent ID = 176 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -275 mum 577 mum -2.44 m 6.55 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.12 mm 436 mum -2.43 m 1.14 MeV 0 eV 4.2 mm 4.2 mm Target compt + 2 -7.73 mm -1.44 cm -2.42 m 1.13 MeV 0 eV 1.95 cm 2.37 cm Target compt + 3 -9.81 mm -2.1 cm -2.42 m 899 keV 0 eV 8.12 mm 3.18 cm Target compt + 4 -1.27 cm -2.5 cm -2.42 m 899 keV 0 eV 4.97 mm 3.67 cm Target Transportation + 5 -7.44 cm -10.9 cm -2.4 m 899 keV 0 eV 10.6 cm 14.3 cm World Transportation + 6 -1.75 m -2.4 m -1.91 m 899 keV 0 eV 2.88 m 3.02 m Tracker Transportation + 7 -2.12 m -2.91 m -1.8 m 899 keV 0 eV 64.1 cm 3.66 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 177 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.81 mm -2.1 cm -2.42 m 229 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.8 mm -2.1 cm -2.42 m 0 eV 229 keV 100 mum 100 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 177 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.73 mm -1.44 cm -2.42 m 12.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.73 mm -1.44 cm -2.42 m 0 eV 12.2 keV 946 nm 946 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 192, Parent ID = 177 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.12 mm 436 mum -2.43 m 5.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 mm 550 mum -2.43 m 1.4 MeV 363 keV 375 mum 375 mum Target eBrem + 2 -1.04 mm 509 mum -2.43 m 0 eV 1.4 MeV 1.06 mm 1.43 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 195, Parent ID = 192 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 mm 550 mum -2.43 m 3.65 MeV 0 eV 0 fm 0 fm Target initStep + 1 -695 mum -5.01 mm -2.42 m 0 eV 88 keV 1.18 cm 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 196, Parent ID = 195 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -695 mum -5.01 mm -2.42 m 3.57 MeV 0 eV 0 fm 0 fm Target initStep + 1 -766 mum -4.59 mm -2.42 m 1.98 MeV 1.28 MeV 994 mum 994 mum Target eBrem + 2 -770 mum -4.7 mm -2.42 m 0 eV 1.98 MeV 1.48 mm 2.47 mm Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 197, Parent ID = 196 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -766 mum -4.59 mm -2.42 m 311 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 mm -6.01 mm -2.42 m 0 eV 88 keV 1.78 mm 1.78 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 198, Parent ID = 197 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.1 mm -6.01 mm -2.42 m 223 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 mm -6.01 mm -2.42 m 0 eV 223 keV 96.2 mum 96.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 9 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -151 mum 477 mum -2.44 m 4.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 -15.1 mum 603 mum -2.44 m 4.17 MeV 321 keV 270 mum 270 mum Target eBrem + 2 56.1 mum 273 mum -2.44 m 2.77 MeV 1.08 MeV 569 mum 839 mum Target eBrem + 3 208 mum 125 mum -2.44 m 0 eV 2.77 MeV 2.18 mm 3.02 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 200, Parent ID = 175 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 56.1 mum 273 mum -2.44 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 260 mum -161 mum -2.44 m 0 eV 88 keV 635 mum 635 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 200 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 260 mum -161 mum -2.44 m 236 keV 0 eV 0 fm 0 fm Target initStep + 1 264 mum -166 mum -2.44 m 0 eV 236 keV 105 mum 105 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 199, Parent ID = 175 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -15.1 mum 603 mum -2.44 m 371 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.89 mm -501 mum -2.44 m 345 keV 0 eV 4 mm 4 mm Target compt + 2 -4.99 mm -1.85 mm -2.43 m 243 keV 0 eV 3.95 mm 7.95 mm Target compt + 3 -5.76 mm -5.04 mm -2.43 m 0 eV 88 keV 3.37 mm 1.13 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.76 mm -5.04 mm -2.43 m 155 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.76 mm -5.04 mm -2.43 m 0 eV 155 keV 55.3 mum 55.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.99 mm -1.85 mm -2.43 m 102 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.99 mm -1.85 mm -2.43 m 0 eV 102 keV 28.3 mum 28.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 199 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.89 mm -501 mum -2.44 m 26.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.89 mm -501 mum -2.44 m 0 eV 26.2 keV 3.13 mum 3.13 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -23.8 mum 152 mum -2.45 m 570 keV 0 eV 0 fm 0 fm Target initStep - 1 -40.6 mum 186 mum -2.45 m 0 eV 88 keV 822 mum 822 mum Target phot + 0 -312 mum 216 mum -2.45 m 548 keV 0 eV 0 fm 0 fm Target initStep + 1 -213 mum 393 mum -2.44 m 0 eV 88 keV 5.15 mm 5.15 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 234, Parent ID = 8 +* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 8 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -40.6 mum 186 mum -2.45 m 482 keV 0 eV 0 fm 0 fm Target initStep - 1 -21.8 mum 189 mum -2.45 m 0 eV 482 keV 287 mum 287 mum Target eIoni + 0 -213 mum 393 mum -2.44 m 460 keV 0 eV 0 fm 0 fm Target initStep + 1 -219 mum 402 mum -2.44 m 0 eV 460 keV 270 mum 270 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 7, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -14.3 mum 136 mum -2.45 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep - 1 -554 mum 1.04 mm -2.43 m 264 keV 0 eV 2.11 cm 2.11 cm Target compt - 2 6.1 mm -232 mum -2.43 m 0 eV 88 keV 7.81 mm 2.9 cm Target phot + 0 -352 mum 214 mum -2.45 m 833 keV 0 eV 0 fm 0 fm Target initStep + 1 -330 mum 227 mum -2.45 m 199 keV 0 eV 907 mum 907 mum Target compt + 2 -394 mum 4.99 mum -2.45 m 0 eV 88 keV 707 mum 1.61 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 7 +* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 6.1 mm -232 mum -2.43 m 176 keV 0 eV 0 fm 0 fm Target initStep - 1 6.1 mm -230 mum -2.43 m 2.78e-11 eV 176 keV 67.1 mum 67.1 mum Target eIoni + 0 -394 mum 4.99 mum -2.45 m 111 keV 0 eV 0 fm 0 fm Target initStep + 1 -396 mum 4.06 mum -2.45 m 0 eV 111 keV 32.9 mum 32.9 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 7 +* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 7 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -554 mum 1.04 mm -2.43 m 984 keV 0 eV 0 fm 0 fm Target initStep - 1 -564 mum 1.05 mm -2.43 m 0 eV 984 keV 706 mum 706 mum Target eIoni + 0 -330 mum 227 mum -2.45 m 634 keV 0 eV 0 fm 0 fm Target initStep + 1 -329 mum 229 mum -2.45 m 0 eV 634 keV 411 mum 411 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -11.3 mum 129 mum -2.45 m 5.11 MeV 0 eV 0 fm 0 fm Target initStep - 1 -394 mum 836 mum -2.43 m 2.02 MeV 0 eV 1.36 cm 1.36 cm Target compt - 2 -1.08 mm -4.48 mm -2.42 m 1.43 MeV 0 eV 1.09 cm 2.46 cm Target compt - 3 -81 mum -5.2 mm -2.42 m 1.19 MeV 0 eV 3.31 mm 2.79 cm Target compt - 4 808 mum -5.2 mm -2.42 m 0 eV 88 keV 1.5 mm 2.94 cm Target phot + 0 -353 mum 212 mum -2.45 m 328 keV 0 eV 0 fm 0 fm Target initStep + 1 -280 mum 198 mum -2.44 m 0 eV 88 keV 5.58 mm 5.58 mm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 6 +* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 6 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 808 mum -5.2 mm -2.42 m 1.1 MeV 0 eV 0 fm 0 fm Target initStep - 1 852 mum -5.18 mm -2.42 m 2.22e-10 eV 1.1 MeV 806 mum 806 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 239, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -81 mum -5.2 mm -2.42 m 243 keV 0 eV 0 fm 0 fm Target initStep - 1 -84.6 mum -5.21 mm -2.42 m 0 eV 243 keV 109 mum 109 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 238, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.08 mm -4.48 mm -2.42 m 587 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.1 mm -4.5 mm -2.42 m 0 eV 587 keV 372 mum 372 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 237, Parent ID = 6 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -394 mum 836 mum -2.43 m 3.09 MeV 0 eV 0 fm 0 fm Target initStep - 1 -1.04 mm 879 mum -2.43 m 1.74 MeV 975 keV 972 mum 972 mum Target eBrem - 2 -1.13 mm 1.09 mm -2.43 m 370 keV 989 keV 933 mum 1.91 mm Target eBrem - 3 -1.12 mm 1.09 mm -2.43 m 0 eV 370 keV 200 mum 2.11 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 242, Parent ID = 237 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.13 mm 1.09 mm -2.43 m 380 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.17 mm 1.08 mm -2.43 m 0 eV 88 keV 101 mum 101 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 243, Parent ID = 242 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.17 mm 1.08 mm -2.43 m 292 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.18 mm 1.07 mm -2.43 m 0 eV 292 keV 143 mum 143 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 241, Parent ID = 237 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.04 mm 879 mum -2.43 m 379 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.39 mm 6.8 mm -2.43 m 0 eV 88 keV 6.39 mm 6.39 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 244, Parent ID = 241 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -3.39 mm 6.8 mm -2.43 m 291 keV 0 eV 0 fm 0 fm Target initStep - 1 -3.4 mm 6.81 mm -2.43 m 1.11e-10 eV 291 keV 142 mum 142 mum Target eIoni + 0 -280 mum 198 mum -2.44 m 240 keV 0 eV 0 fm 0 fm Target initStep + 1 -282 mum 192 mum -2.44 m 0 eV 240 keV 108 mum 108 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 8.14 mum 121 mum -2.45 m 14.2 MeV 0 eV 0 fm 0 fm Target initStep - 1 -320 mum 616 mum -2.43 m 482 keV 0 eV 1.91 cm 1.91 cm Target compt - 2 -1.93 mm 978 mum -2.43 m 433 keV 0 eV 1.65 mm 2.08 cm Target compt - 3 -6.46 mm 3.94 mm -2.43 m 0 eV 88 keV 5.88 mm 2.67 cm Target phot + 0 -310 mum 221 mum -2.45 m 685 keV 0 eV 0 fm 0 fm Target initStep + 1 -663 mum 604 nm -2.43 m 610 keV 0 eV 1.8 cm 1.8 cm Target compt + 2 -129 mum -669 mum -2.43 m 322 keV 0 eV 2.06 mm 2.01 cm Target compt + 3 2.48 mm 2.05 mm -2.43 m 0 eV 88 keV 4 mm 2.41 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 247, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -6.46 mm 3.94 mm -2.43 m 345 keV 0 eV 0 fm 0 fm Target initStep - 1 -6.47 mm 3.94 mm -2.43 m 5.55e-11 eV 345 keV 181 mum 181 mum Target eIoni + 0 2.48 mm 2.05 mm -2.43 m 234 keV 0 eV 0 fm 0 fm Target initStep + 1 2.49 mm 2.06 mm -2.43 m 0 eV 234 keV 103 mum 103 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 246, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.93 mm 978 mum -2.43 m 49.3 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.93 mm 978 mum -2.43 m 0 eV 49.3 keV 8.71 mum 8.71 mum Target eIoni + 0 -129 mum -669 mum -2.43 m 288 keV 0 eV 0 fm 0 fm Target initStep + 1 -130 mum -675 mum -2.43 m 0 eV 288 keV 141 mum 141 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 245, Parent ID = 5 +* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -320 mum 616 mum -2.43 m 13.7 MeV 0 eV 0 fm 0 fm Target initStep - 1 -320 mum 603 mum -2.43 m 8.14 MeV 465 keV 129 mum 129 mum Target eBrem - 2 -373 mum 280 mum -2.43 m 6.31 MeV 689 keV 691 mum 820 mum Target eBrem - 3 -756 mum 1.29 mm -2.43 m 2.76 MeV 3.27 MeV 2.32 mm 3.14 mm Target eBrem - 4 -979 mum 899 mum -2.43 m 1.72 MeV 650 keV 693 mum 3.83 mm Target eBrem - 5 -920 mum 833 mum -2.43 m 0 eV 1.72 MeV 1.26 mm 5.09 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 251, Parent ID = 245 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -979 mum 899 mum -2.43 m 384 keV 0 eV 0 fm 0 fm Target initStep - 1 -944 mum 851 mum -2.43 m 0 eV 88 keV 107 mum 107 mum Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 252, Parent ID = 251 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -944 mum 851 mum -2.43 m 296 keV 0 eV 0 fm 0 fm Target initStep - 1 -942 mum 850 mum -2.43 m 0 eV 296 keV 146 mum 146 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 250, Parent ID = 245 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -756 mum 1.29 mm -2.43 m 285 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.25 mm 1.6 mm -2.43 m 0 eV 88 keV 1.34 mm 1.34 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 250 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.25 mm 1.6 mm -2.43 m 197 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.25 mm 1.6 mm -2.43 m 0 eV 197 keV 79.4 mum 79.4 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 249, Parent ID = 245 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -373 mum 280 mum -2.43 m 1.14 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.76 mm -9.15 mm -2.41 m 244 keV 0 eV 1.93 cm 1.93 cm Target compt - 2 -288 mum -9.48 mm -2.41 m 0 eV 88 keV 2.98 mm 2.23 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 255, Parent ID = 249 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -288 mum -9.48 mm -2.41 m 156 keV 0 eV 0 fm 0 fm Target initStep - 1 -292 mum -9.48 mm -2.41 m 0 eV 156 keV 55.7 mum 55.7 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 254, Parent ID = 249 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.76 mm -9.15 mm -2.41 m 894 keV 0 eV 0 fm 0 fm Target initStep - 1 1.77 mm -9.17 mm -2.41 m 0 eV 894 keV 629 mum 629 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 248, Parent ID = 245 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -320 mum 603 mum -2.43 m 5.11 MeV 0 eV 0 fm 0 fm Target initStep - 1 848 mum -1.48 mm -2.41 m 0 eV 0 eV 1.51 cm 1.51 cm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 257, Parent ID = 248 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 848 mum -1.48 mm -2.41 m 1.16 MeV 0 eV 0 fm 0 fm Target initStep - 1 686 mum -1.96 mm -2.41 m 2.22e-10 eV 1.16 MeV 870 mum 870 mum Target eIoni - 2 686 mum -1.96 mm -2.41 m 2.22e-10 eV 0 eV 0 fm 870 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 259, Parent ID = 257 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 686 mum -1.96 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.76 mm 641 mum -2.41 m 507 keV 0 eV 4.4 mm 4.4 mm Target compt - 2 -4.44 mm 2.8 mm -2.41 m 0 eV 88 keV 4.09 mm 8.5 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 261, Parent ID = 259 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -4.44 mm 2.8 mm -2.41 m 419 keV 0 eV 0 fm 0 fm Target initStep - 1 -4.45 mm 2.82 mm -2.41 m 5.55e-11 eV 419 keV 237 mum 237 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 260, Parent ID = 259 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.76 mm 641 mum -2.41 m 3.93 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.76 mm 641 mum -2.41 m 3.47e-11 eV 3.93 keV 185 nm 185 nm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 258, Parent ID = 257 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 686 mum -1.96 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 3.95 mm -5.43 mm -2.42 m 0 eV 88 keV 5.86 mm 5.86 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 262, Parent ID = 258 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 3.95 mm -5.43 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 3.95 mm -5.44 mm -2.42 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 256, Parent ID = 248 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 848 mum -1.48 mm -2.41 m 2.93 MeV 0 eV 0 fm 0 fm Target initStep - 1 1.4 mm -2.44 mm -2.41 m 1.07 MeV 1.86 MeV 1.71 mm 1.71 mm Target eIoni - 2 1.37 mm -2.38 mm -2.41 m 0 eV 1.07 MeV 750 mum 2.46 mm Target eBrem + 0 -663 mum 604 nm -2.43 m 74.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -664 mum 1.41 mum -2.43 m 0 eV 74.8 keV 17.3 mum 17.3 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -23.8 mum 112 mum -2.45 m 543 keV 0 eV 0 fm 0 fm Target initStep - 1 154 mum 142 mum -2.44 m 217 keV 0 eV 8.85 mm 8.85 mm Target compt - 2 14.4 mum 362 mum -2.44 m 0 eV 88 keV 286 mum 9.13 mm Target phot + 0 -299 mum 195 mum -2.45 m 8.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 -420 mum 258 mum -2.44 m 3.46 MeV 0 eV 9.96 mm 9.96 mm Target compt + 2 365 mum 1.59 mm -2.44 m 760 keV 0 eV 3.75 mm 1.37 cm Target compt + 3 -913 mum 8.4 mm -2.44 m 0 eV 88 keV 7.05 mm 2.08 cm Target phot ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 264, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 214, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 14.4 mum 362 mum -2.44 m 129 keV 0 eV 0 fm 0 fm Target initStep - 1 13 mum 365 mum -2.44 m 5.55e-11 eV 129 keV 41.1 mum 41.1 mum Target eIoni + 0 -913 mum 8.4 mm -2.44 m 672 keV 0 eV 0 fm 0 fm Target initStep + 1 -915 mum 8.43 mm -2.44 m 0 eV 672 keV 443 mum 443 mum Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 263, Parent ID = 4 +* G4Track Information: Particle = e-, Track ID = 213, Parent ID = 4 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 154 mum 142 mum -2.44 m 327 keV 0 eV 0 fm 0 fm Target initStep - 1 156 mum 139 mum -2.44 m 5.55e-11 eV 327 keV 168 mum 168 mum Target eIoni + 0 365 mum 1.59 mm -2.44 m 2.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 202 mum 2.31 mm -2.44 m 1.57 MeV 1.13 MeV 1.13 mm 1.13 mm Target eBrem + 2 343 mum 2.28 mm -2.44 m 830 keV 203 keV 190 mum 1.32 mm Target eBrem + 3 327 mum 2.25 mm -2.44 m 0 eV 830 keV 576 mum 1.9 mm Target eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 215, Parent ID = 213 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 1.42 mum 177 mum -2.65 m 21.5 keV 0 eV 0 fm 0 fm World initStep - 1 -2.47 mm -1.4 mm -2.65 m 10.9 keV 10.6 keV 3.25 mm 3.25 mm World eIoni - 2 -459 mum -1.21 mm -2.65 m 6.19 keV 4.66 keV 1.81 mm 5.06 mm World eIoni - 3 -849 mum -1.48 mm -2.65 m 0 eV 6.19 keV 982 mum 6.04 mm World eIoni + 0 343 mum 2.28 mm -2.44 m 539 keV 0 eV 0 fm 0 fm Target initStep + 1 287 mum 2.24 mm -2.44 m 197 keV 0 eV 126 mum 126 mum Target compt + 2 57.1 mum 3.61 mm -2.44 m 0 eV 88 keV 1.61 mm 1.73 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 57.1 mum 3.61 mm -2.44 m 109 keV 0 eV 0 fm 0 fm Target initStep + 1 55.2 mum 3.62 mm -2.44 m 0 eV 109 keV 31.8 mum 31.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 287 mum 2.24 mm -2.44 m 342 keV 0 eV 0 fm 0 fm Target initStep + 1 284 mum 2.23 mm -2.44 m 0 eV 342 keV 180 mum 180 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -420 mum 258 mum -2.44 m 5.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 74.1 mum 1.3 mm -2.44 m 1.65 MeV 2.85 MeV 1.84 mm 1.84 mm Target eBrem + 2 329 mum 1.47 mm -2.44 m 529 keV 601 keV 592 mum 2.44 mm Target eBrem + 3 334 mum 1.49 mm -2.44 m 0 eV 529 keV 326 mum 2.76 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 219, Parent ID = 212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 329 mum 1.47 mm -2.44 m 519 keV 0 eV 0 fm 0 fm Target initStep + 1 791 mum 3.6 mm -2.44 m 0 eV 88 keV 4.38 mm 4.38 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 220, Parent ID = 219 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 791 mum 3.6 mm -2.44 m 431 keV 0 eV 0 fm 0 fm Target initStep + 1 794 mum 3.61 mm -2.44 m 0 eV 431 keV 247 mum 247 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 218, Parent ID = 212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 74.1 mum 1.3 mm -2.44 m 809 keV 0 eV 0 fm 0 fm Target initStep + 1 3.91 mm 8.3 mm -2.45 m 0 eV 88 keV 1.05 cm 1.05 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.91 mm 8.3 mm -2.45 m 721 keV 0 eV 0 fm 0 fm Target initStep + 1 3.93 mm 8.29 mm -2.45 m 0 eV 721 keV 485 mum 485 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 3, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -299 mum 195 mum -2.45 m 19.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -325 mum 198 mum -2.45 m 0 eV 0 eV 2.29 mm 2.29 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 223, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -325 mum 198 mum -2.45 m 2.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -415 mum 251 mum -2.45 m 0 eV 2.02 MeV 1.6 mm 1.6 mm Target eIoni + 2 -415 mum 251 mum -2.45 m 0 eV 0 eV 0 fm 1.6 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 225, Parent ID = 223 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -415 mum 251 mum -2.45 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.03 mm -731 mum -2.45 m 314 keV 0 eV 3.58 mm 3.58 mm Target compt + 2 3.1 mm -1.38 mm -2.45 m 0 eV 88 keV 653 mum 4.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 225 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.1 mm -1.38 mm -2.45 m 226 keV 0 eV 0 fm 0 fm Target initStep + 1 3.1 mm -1.39 mm -2.45 m 0 eV 226 keV 98.5 mum 98.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 225 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.03 mm -731 mum -2.45 m 197 keV 0 eV 0 fm 0 fm Target initStep + 1 3.04 mm -729 mum -2.45 m 0 eV 197 keV 79.7 mum 79.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 224, Parent ID = 223 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -415 mum 251 mum -2.45 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.5 mm 560 mum -2.45 m 329 keV 0 eV 1.13 mm 1.13 mm Target compt + 2 -2.32 mm 3.99 mm -2.45 m 0 eV 88 keV 3.94 mm 5.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 229, Parent ID = 224 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.32 mm 3.99 mm -2.45 m 241 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.33 mm 3.99 mm -2.45 m 0 eV 241 keV 108 mum 108 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 224 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.5 mm 560 mum -2.45 m 182 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.5 mm 559 mum -2.45 m 0 eV 182 keV 70.9 mum 70.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 3 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -325 mum 198 mum -2.45 m 16.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -293 mum 213 mum -2.45 m 15.5 MeV 303 keV 230 mum 230 mum Target eBrem + 2 -144 mum 106 mum -2.45 m 13.4 MeV 1.16 MeV 767 mum 996 mum Target eBrem + 3 1.34 mm -520 mum -2.44 m 10.1 MeV 2.96 MeV 2.29 mm 3.29 mm Target eBrem + 4 1.19 mm -973 mum -2.45 m 8.66 MeV 867 keV 572 mum 3.86 mm Target eBrem + 5 1.61 mm -218 mum -2.45 m 5.87 MeV 2.37 MeV 1.75 mm 5.61 mm Target eBrem + 6 668 mum -445 mum -2.45 m 1.52 MeV 1.44 MeV 937 mum 6.54 mm Target eBrem + 7 710 mum -541 mum -2.45 m 0 eV 1.52 MeV 1.16 mm 7.7 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 235, Parent ID = 222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 668 mum -445 mum -2.45 m 2.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.29 mm -6.09 mm -2.45 m 0 eV 0 eV 7.33 mm 7.33 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 237, Parent ID = 235 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.29 mm -6.09 mm -2.45 m 672 keV 0 eV 0 fm 0 fm Target initStep + 1 5.32 mm -6.12 mm -2.45 m 0 eV 672 keV 447 mum 447 mum Target eIoni + 2 5.32 mm -6.12 mm -2.45 m 0 eV 0 eV 0 fm 447 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 239, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.32 mm -6.12 mm -2.45 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.28 mm -6.41 mm -2.45 m 0 eV 88 keV 1.38 mm 1.38 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 240, Parent ID = 239 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.28 mm -6.41 mm -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 6.28 mm -6.4 mm -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 238, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.32 mm -6.12 mm -2.45 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.89 mm -5.68 mm -2.44 m 188 keV 0 eV 2.08 mm 2.08 mm Target compt + 2 4.32 mm -5.14 mm -2.45 m 0 eV 88 keV 1.16 mm 3.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 242, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.32 mm -5.14 mm -2.45 m 100 keV 0 eV 0 fm 0 fm Target initStep + 1 4.32 mm -5.14 mm -2.45 m 0 eV 100 keV 27.6 mum 27.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 241, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.89 mm -5.68 mm -2.44 m 323 keV 0 eV 0 fm 0 fm Target initStep + 1 3.88 mm -5.68 mm -2.44 m 0 eV 323 keV 165 mum 165 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 235 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.29 mm -6.09 mm -2.45 m 1.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.33 mm -6.15 mm -2.45 m 0 eV 1.21 MeV 902 mum 902 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 234, Parent ID = 222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.61 mm -218 mum -2.45 m 425 keV 0 eV 0 fm 0 fm Target initStep + 1 1.49 mm -344 mum -2.45 m 0 eV 88 keV 175 mum 175 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 243, Parent ID = 234 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.49 mm -344 mum -2.45 m 337 keV 0 eV 0 fm 0 fm Target initStep + 1 1.48 mm -349 mum -2.45 m 0 eV 337 keV 176 mum 176 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 233, Parent ID = 222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.19 mm -973 mum -2.45 m 541 keV 0 eV 0 fm 0 fm Target initStep + 1 959 mum -965 mum -2.45 m 339 keV 0 eV 675 mum 675 mum Target compt + 2 -562 mum -1.18 mm -2.45 m 0 eV 88 keV 1.54 mm 2.22 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 245, Parent ID = 233 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -562 mum -1.18 mm -2.45 m 251 keV 0 eV 0 fm 0 fm Target initStep + 1 -566 mum -1.17 mm -2.45 m 0 eV 251 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 244, Parent ID = 233 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 959 mum -965 mum -2.45 m 202 keV 0 eV 0 fm 0 fm Target initStep + 1 960 mum -965 mum -2.45 m 0 eV 202 keV 83 mum 83 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 232, Parent ID = 222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.34 mm -520 mum -2.44 m 327 keV 0 eV 0 fm 0 fm Target initStep + 1 507 mum -2.08 mm -2.45 m 0 eV 88 keV 2.74 mm 2.74 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 246, Parent ID = 232 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 507 mum -2.08 mm -2.45 m 239 keV 0 eV 0 fm 0 fm Target initStep + 1 513 mum -2.08 mm -2.45 m 0 eV 239 keV 107 mum 107 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 231, Parent ID = 222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -144 mum 106 mum -2.45 m 959 keV 0 eV 0 fm 0 fm Target initStep + 1 -122 mum 24.1 mum -2.45 m 525 keV 0 eV 245 mum 245 mum Target compt + 2 -646 mum -1.38 mm -2.45 m 457 keV 0 eV 1.58 mm 1.82 mm Target compt + 3 -636 mum -1.64 mm -2.45 m 0 eV 88 keV 259 mum 2.08 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 249, Parent ID = 231 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -636 mum -1.64 mm -2.45 m 369 keV 0 eV 0 fm 0 fm Target initStep + 1 -628 mum -1.65 mm -2.45 m 0 eV 369 keV 199 mum 199 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 248, Parent ID = 231 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -646 mum -1.38 mm -2.45 m 68.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -646 mum -1.38 mm -2.45 m 0 eV 68.7 keV 15.1 mum 15.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 247, Parent ID = 231 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -122 mum 24.1 mum -2.45 m 434 keV 0 eV 0 fm 0 fm Target initStep + 1 -117 mum 27.3 mum -2.45 m 0 eV 434 keV 250 mum 250 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 230, Parent ID = 222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -293 mum 213 mum -2.45 m 412 keV 0 eV 0 fm 0 fm Target initStep + 1 -473 mum -818 mum -2.44 m 0 eV 88 keV 3.81 mm 3.81 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 250, Parent ID = 230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -473 mum -818 mum -2.44 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 -466 mum -819 mum -2.44 m 0 eV 324 keV 166 mum 166 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 4.52 mum 37.2 mum -2.86 m 37.7 keV 0 eV 0 fm 0 fm World initStep - 1 5.66 mm -642 mum -2.86 m 27.7 keV 10 keV 6.35 mm 6.35 mm World eIoni - 2 8.99 mm -1.15 mm -2.86 m 24.3 keV 3.38 keV 4.29 mm 1.06 cm World eIoni - 3 1.19 cm 82.3 mum -2.86 m 18.9 keV 5.45 keV 3.69 mm 1.43 cm World eIoni - 4 1.29 cm 1.2 mm -2.86 m 13.1 keV 5.82 keV 2.86 mm 1.72 cm World eIoni - 5 1.42 cm -574 mum -2.86 m 8.8 keV 4.27 keV 2.1 mm 1.93 cm World eIoni - 6 1.47 cm 557 mum -2.86 m 3.08 keV 5.73 keV 1.52 mm 2.08 cm World eIoni - 7 1.46 cm 644 mum -2.86 m 4.34e-13 eV 3.08 keV 307 mum 2.11 cm World eIoni + 0 0 fm 0 fm -2.86 m 11 keV 0 eV 0 fm 0 fm World initStep + 1 413 mum -1.25 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. @@ -2447,244 +2347,25496 @@ 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 76.6 nm -158 nm -2.53 m 1e+03 GeV 81.1 keV 37.5 cm 37.5 cm World MuIoni - 2 76.8 nm -178 nm -2.45 m 1e+03 GeV 21.7 keV 8.5 cm 46 cm World Transportation - 3 307 nm -608 nm -2.43 m 1e+03 GeV 28.4 MeV 2.02 cm 48 cm Target MuIoni - 4 -407 nm -901 nm -2.4 m 1e+03 GeV 51.3 MeV 2.98 cm 51 cm Target Transportation - 5 -18.9 mum -18 mum -1.6 m 1e+03 GeV 178 keV 80 cm 1.31 m Tracker Transportation - 6 -23.5 mum -22.2 mum -1.4 m 1e+03 GeV 121 keV 20 cm 1.51 m Chamber Transportation - 7 -37.5 mum -33.8 mum -80 cm 1e+03 GeV 139 keV 60 cm 2.11 m Tracker Transportation - 8 -42.3 mum -37.6 mum -60 cm 1e+03 GeV 136 keV 20 cm 2.31 m Chamber Transportation - 9 -53.4 mum -46.9 mum -9.17 cm 1e+03 GeV 118 keV 50.8 cm 2.82 m Tracker MuIoni - 10 -55.4 mum -48.6 mum0.0284 fm 1e+03 GeV 22.7 keV 9.18 cm 2.91 m Tracker Transportation - 11 -59.8 mum -52.1 mum 20 cm 1e+03 GeV 155 keV 20 cm 3.11 m Chamber Transportation - 12 -71.2 mum -63.5 mum 80 cm 1e+03 GeV 135 keV 60 cm 3.71 m Tracker Transportation - 13 -74.9 mum -67.3 mum 1 m 1e+03 GeV 174 keV 20 cm 3.91 m Chamber Transportation - 14 -85.4 mum -77.2 mum 1.53 m 1e+03 GeV 127 keV 52.6 cm 4.44 m Tracker MuIoni - 15 -86.9 mum -78.6 mum 1.6 m 1e+03 GeV 18.8 keV 7.44 cm 4.51 m Tracker Transportation - 16 -90.9 mum -82.3 mum 1.8 m 1e+03 GeV 128 keV 20 cm 4.71 m Chamber Transportation - 17 -103 mum -94.3 mum 2.4 m 1e+03 GeV 145 keV 60 cm 5.31 m Tracker Transportation - 18 -106 mum -96.6 mum 2.52 m 1e+03 GeV 23 keV 11.5 cm 5.43 m World MuIoni - 19 -114 mum -104 mum 2.91 m 1e+03 GeV 90.6 keV 39.5 cm 5.82 m OutOfWorld Transportation + 1 -124 nm -61.1 nm -2.59 m 1e+03 GeV 79.1 keV 31.7 cm 31.7 cm World MuIoni + 2 -107 nm -60.1 nm -2.51 m 1e+03 GeV 19 keV 8.22 cm 39.9 cm World MuIoni + 3 -94.5 nm -17.5 nm -2.45 m 1e+03 GeV 12 keV 6.09 cm 46 cm World Transportation + 4 -98.4 nm -2.54 nm -2.45 m 997 GeV 2.8 MeV 1.95 mm 46.2 cm Target MuPairProd + 5 558 nm 146 nm -2.4 m 997 GeV 82.7 MeV 4.8 cm 51 cm Target Transportation + 6 413 nm -4.21 mum -2.11 m 997 GeV 63.8 keV 29 cm 80 cm Tracker MuIoni + 7 394 nm -5.15 mum -2.05 m 997 GeV 13.9 keV 6.32 cm 86.4 cm Tracker MuIoni + 8 182 nm -11.7 mum -1.6 m 997 GeV 99.5 keV 44.7 cm 1.31 m Tracker Transportation + 9 48.1 nm -14.7 mum -1.4 m 997 GeV 172 keV 20 cm 1.51 m Chamber Transportation + 10 385 nm -23.5 mum -80 cm 997 GeV 131 keV 60 cm 2.11 m Tracker Transportation + 11 661 nm -26.5 mum -60 cm 997 GeV 232 keV 20 cm 2.31 m Chamber Transportation + 12 858 nm -29 mum -45.1 cm 997 GeV 28.5 keV 14.9 cm 2.46 m Tracker MuIoni + 13 1.46 mum -36.3 mum0.0568 fm 997 GeV 110 keV 45.1 cm 2.91 m Tracker Transportation + 14 1.58 mum -39.4 mum 20 cm 997 GeV 273 keV 20 cm 3.11 m Chamber Transportation + 15 1.88 mum -41.3 mum 33.2 cm 997 GeV 27.3 keV 13.2 cm 3.24 m Tracker MuIoni + 16 2.04 mum -42.6 mum 41.6 cm 997 GeV 23.1 keV 8.36 cm 3.33 m Tracker MuIoni + 17 2.56 mum -47.8 mum 78.8 cm 997 GeV 95.6 keV 37.2 cm 3.7 m Tracker MuIoni + 18 2.58 mum -48 mum 80 cm 997 GeV 2.07 keV 1.2 cm 3.71 m Tracker Transportation + 19 2.87 mum -50.9 mum 1 m 997 GeV 188 keV 20 cm 3.91 m Chamber Transportation + 20 2.87 mum -58 mum 1.47 m 997 GeV 104 keV 46.9 cm 4.38 m Tracker MuIoni + 21 2.81 mum -59.9 mum 1.6 m 997 GeV 37 keV 13.1 cm 4.51 m Tracker Transportation + 22 2.67 mum -63 mum 1.8 m 997 GeV 165 keV 20 cm 4.71 m Chamber Transportation + 23 2.59 mum -63.7 mum 1.85 m 997 GeV 9.53 keV 4.55 cm 4.76 m Tracker MuIoni + 24 2.54 mum -64 mum 1.87 m 997 GeV 10.4 keV 2.52 cm 4.78 m Tracker MuIoni + 25 1.53 mum -72.2 mum 2.4 m 997 GeV 124 keV 52.9 cm 5.31 m Tracker Transportation + 26 585 nm -80 mum 2.91 m 997 GeV 118 keV 51 cm 5.82 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.54 mum -64 mum 1.87 m 14.2 keV 0 eV 0 fm 0 fm Tracker initStep + 1 1.79 mm 967 mum 1.87 m 0 eV 14.2 keV 4.21 mm 4.21 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.59 mum -63.7 mum 1.85 m 8.3 keV 0 eV 0 fm 0 fm Tracker initStep + 1 138 mum -845 mum 1.85 m 0 eV 8.3 keV 1.64 mm 1.64 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 12, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.87 mum -58 mum 1.47 m 9.81 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -105 mum -1.11 mm 1.47 m 0 eV 9.81 keV 2.18 mm 2.18 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.56 mum -47.8 mum 78.8 cm 32.6 keV 0 eV 0 fm 0 fm Tracker initStep + 1 7.76 mm 3.63 mm 78.6 cm 18 keV 14.6 keV 1.23 cm 1.23 cm Tracker eIoni + 2 8.55 mm 6.68 mm 78.6 cm 0 eV 18 keV 6.36 mm 1.86 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mum -42.6 mum 41.6 cm 11.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 269 mum -1.34 mm 41.6 cm 0 eV 11.1 keV 2.72 mm 2.72 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.88 mum -41.3 mum 33.2 cm 64.3 keV 0 eV 0 fm 0 fm Tracker initStep + 1 1.6 cm 2.53 cm 34 cm 0 eV 64.3 keV 6.27 cm 6.27 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 8, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 858 nm -29 mum -45.1 cm 15.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 2.24 mm 455 mum -45.1 cm 0 eV 15.1 keV 4.67 mm 4.67 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 394 nm -5.15 mum -2.05 m 25.2 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -436 mum -2.32 mm -2.05 m 14.6 keV 2.44 keV 2.28 mm 2.28 mm Tracker eIoni + 2 352 mum -4.24 mm -2.05 m 0 eV 14.6 keV 4.4 mm 6.68 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 7 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -436 mum -2.32 mm -2.05 m 8.16 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -793 mum -2.67 mm -2.05 m 0 eV 8.16 keV 1.58 mm 1.58 mm Tracker eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 6, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -106 mum -96.6 mum 2.52 m 115 keV 0 eV 0 fm 0 fm World initStep - 1 685 mum -1.92 cm 2.53 m 95 keV 6.17 keV 2.31 cm 2.31 cm World eIoni - 2 -5.25 mm -3.91 cm 2.54 m 80.6 keV 14.5 keV 2.65 cm 4.97 cm World eIoni - 3 -1.17 cm -4.4 cm 2.56 m 70.7 keV 9.93 keV 2.02 cm 6.98 cm World eIoni - 4 -1.31 cm -3.42 cm 2.58 m 60.2 keV 10.4 keV 1.64 cm 8.62 cm World eIoni - 5 -4.84 mm -3.37 cm 2.58 m 54.2 keV 6.03 keV 1.27 cm 9.89 cm World eIoni - 6 3.4 mm -3.53 cm 2.59 m 47.9 keV 6.26 keV 1.08 cm 11 cm World eIoni - 7 7.96 mm -3.02 cm 2.59 m 38.5 keV 9.45 keV 8.93 mm 11.9 cm World eIoni - 8 5.36 mm -3.49 cm 2.6 m 33.9 keV 4.53 keV 6.51 mm 12.5 cm World eIoni - 9 766 mum -3.79 cm 2.6 m 22.6 keV 11.3 keV 5.51 mm 13.1 cm World eIoni - 10 -1.75 mm -3.81 cm 2.6 m 18.2 keV 4.46 keV 3.42 mm 13.4 cm World eIoni - 11 499 mum -3.96 cm 2.6 m 14.6 keV 3.61 keV 2.76 mm 13.7 cm World eIoni - 12 -267 mum -4.05 cm 2.6 m 9.49 keV 5.07 keV 2.29 mm 13.9 cm World eIoni - 13 -1.88 mm -3.96 cm 2.6 m 4.85 keV 4.63 keV 1.62 mm 14.1 cm World eIoni - 14 -1.87 mm -3.95 cm 2.6 m 8.67e-13 eV 4.85 keV 652 mum 14.1 cm World eIoni + 0 413 nm -4.21 mum -2.11 m 11.7 keV 0 eV 0 fm 0 fm Tracker initStep + 1 65.6 mum 1.45 mm -2.11 m 0 eV 11.7 keV 2.98 mm 2.98 mm Tracker eIoni ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 7, Parent ID = 6 +* G4Track Information: Particle = e+, Track ID = 5, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 685 mum -1.92 cm 2.53 m 13.9 keV 0 eV 0 fm 0 fm World initStep - 1 2.65 mm -1.96 cm 2.53 m 8.14 keV 5.72 keV 2.2 mm 2.2 mm World eIoni - 2 3.97 mm -1.91 cm 2.53 m 644 eV 7.49 keV 1.41 mm 3.61 mm World eIoni - 3 3.97 mm -1.91 cm 2.53 m 2.17e-13 eV 644 eV 33.9 mum 3.64 mm World eIoni + 0 -98.4 nm -2.54 nm -2.45 m 83.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 933 nm -1.92 mum -2.45 m 82.9 MeV 137 keV 113 mum 113 mum Target eBrem + 2 33.3 mum 3.73 mum -2.45 m 51.7 MeV 7.72 MeV 470 mum 584 mum Target eBrem + 3 73.2 mum -45.7 mum -2.45 m 49.4 MeV 893 keV 829 mum 1.41 mm Target eBrem + 4 566 mum -376 mum -2.44 m 43.5 MeV 4.98 MeV 3 mm 4.41 mm Target eBrem + 5 1.1 mm -560 mum -2.44 m 37.1 MeV 3.87 MeV 2.81 mm 7.22 mm Target eBrem + 6 1.21 mm -486 mum -2.44 m 34.7 MeV 1.84 MeV 1.56 mm 8.78 mm Target eBrem + 7 1.33 mm -376 mum -2.44 m 34.1 MeV 340 keV 298 mum 9.08 mm Target eBrem + 8 1.5 mm -164 mum -2.44 m 33.2 MeV 553 keV 529 mum 9.61 mm Target eBrem + 9 1.52 mm -126 mum -2.44 m 30.7 MeV 126 keV 116 mum 9.72 mm Target eBrem + 10 1.6 mm 38.2 mum -2.44 m 29.5 MeV 491 keV 463 mum 1.02 cm Target eBrem + 11 1.47 mm 395 mum -2.44 m 23.1 MeV 1.7 MeV 793 mum 1.1 cm Target eBrem + 12 995 mum 708 mum -2.44 m 20.4 MeV 2.06 MeV 1.75 mm 1.27 cm Target eBrem + 13 861 mum 2.27 mm -2.43 m 15.1 MeV 3.91 MeV 2.3 mm 1.5 cm Target eBrem + 14 874 mum 2.35 mm -2.43 m 14.7 MeV 114 keV 95.7 mum 1.51 cm Target eBrem + 15 954 mum 2.84 mm -2.43 m 11.7 MeV 708 keV 596 mum 1.57 cm Target eBrem + 16 1.18 mm 5.65 mm -2.43 m 6.02 MeV 3.29 MeV 2.73 mm 1.84 cm Target eBrem + 17 342 mum 3.09 mm -2.43 m 250 keV 5.77 MeV 4.03 mm 2.25 cm Target eBrem + 18 331 mum 3.08 mm -2.43 m 0 eV 250 keV 110 mum 2.26 cm Target eIoni + 19 331 mum 3.08 mm -2.43 m 0 eV 0 eV 0 fm 2.26 cm Target annihil ********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 5, Parent ID = 1 +* G4Track Information: Particle = gamma, Track ID = 33, Parent ID = 5 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -85.4 mum -77.2 mum 1.53 m 31.2 keV 0 eV 0 fm 0 fm Tracker initStep - 1 -4.28 mm 904 mum 1.53 m 19.1 keV 12.1 keV 4.92 mm 4.92 mm Tracker eIoni - 2 -5.78 mm 2.74 mm 1.53 m 14.8 keV 4.3 keV 2.89 mm 7.82 mm Tracker eIoni - 3 -5.69 mm 2.73 mm 1.53 m 7.06 keV 7.76 keV 2.32 mm 1.01 cm Tracker eIoni - 4 -5.52 mm 2.57 mm 1.53 m 0 eV 7.06 keV 1.2 mm 1.13 cm Tracker eIoni + 0 331 mum 3.08 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 178 mum 4.03 mm -2.43 m 0 eV 88 keV 1.09 mm 1.09 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 34, Parent ID = 33 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 178 mum 4.03 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 180 mum 4.04 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 32, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 331 mum 3.08 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 862 mum -195 mum -2.43 m 0 eV 88 keV 3.78 mm 3.78 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 35, Parent ID = 32 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 862 mum -195 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 862 mum -197 mum -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 31, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 mm 5.65 mm -2.43 m 2.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 cm -1.74 cm -2.45 m 2.38 MeV 0 eV 3.11 cm 3.11 cm Target Transportation + 2 -34.2 cm -64.5 cm -2.91 m 2.38 MeV 0 eV 84.6 cm 87.7 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 30, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 954 mum 2.84 mm -2.43 m 2.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 876 mum 2.5 cm -2.44 m 2.27 MeV 0 eV 2.35 cm 2.35 cm Target Transportation + 2 -3.79 mm 1.35 m -2.91 m 2.27 MeV 0 eV 1.41 m 1.43 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 29, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 874 mum 2.35 mm -2.43 m 326 keV 0 eV 0 fm 0 fm Target initStep + 1 917 mum 2.77 mm -2.43 m 0 eV 88 keV 457 mum 457 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 36, Parent ID = 29 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 917 mum 2.77 mm -2.43 m 238 keV 0 eV 0 fm 0 fm Target initStep + 1 922 mum 2.78 mm -2.43 m 0 eV 238 keV 106 mum 106 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 28, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 861 mum 2.27 mm -2.43 m 1.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.16 mm 4.87 mm -2.43 m 0 eV 88 keV 2.84 mm 2.84 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 37, Parent ID = 28 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm 4.87 mm -2.43 m 1.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.21 mm 4.93 mm -2.43 m 696 keV 640 keV 430 mum 430 mum Target eBrem + 2 1.19 mm 4.95 mm -2.43 m 0 eV 696 keV 463 mum 894 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 27, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 995 mum 708 mum -2.44 m 595 keV 0 eV 0 fm 0 fm Target initStep + 1 992 mum 2.38 mm -2.43 m 559 keV 0 eV 4.32 mm 4.32 mm Target compt + 2 672 mum 3.19 mm -2.43 m 209 keV 0 eV 1.39 mm 5.71 mm Target compt + 3 843 mum 3.29 mm -2.43 m 0 eV 88 keV 298 mum 6 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 40, Parent ID = 27 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 843 mum 3.29 mm -2.43 m 121 keV 0 eV 0 fm 0 fm Target initStep + 1 843 mum 3.29 mm -2.43 m 0 eV 121 keV 37.4 mum 37.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 39, Parent ID = 27 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 672 mum 3.19 mm -2.43 m 350 keV 0 eV 0 fm 0 fm Target initStep + 1 667 mum 3.19 mm -2.43 m 0 eV 350 keV 185 mum 185 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 38, Parent ID = 27 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 992 mum 2.38 mm -2.43 m 36.7 keV 0 eV 0 fm 0 fm Target initStep + 1 993 mum 2.38 mm -2.43 m 0 eV 36.7 keV 5.43 mum 5.43 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 26, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.47 mm 395 mum -2.44 m 4.71 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.34 mm 1.19 cm -2.4 m 4.71 MeV 0 eV 3.94 cm 3.94 cm Target Transportation + 2 -12.1 cm 50.4 cm -80 cm 4.71 MeV 0 eV 1.68 m 1.72 m Tracker Transportation + 3 -13.6 cm 56.6 cm -60 cm 4.71 MeV 0 eV 21 cm 1.93 m Chamber Transportation + 4 -18.1 cm 75 cm -0.114 fm 4.71 MeV 0 eV 62.9 cm 2.56 m Tracker Transportation + 5 -19.6 cm 81.2 cm 20 cm 4.71 MeV 0 eV 21 cm 2.77 m Chamber Transportation + 6 -24.1 cm 99.6 cm 80 cm 4.71 MeV 0 eV 62.9 cm 3.4 m Tracker Transportation + 7 -25.6 cm 1.06 m 1 m 4.71 MeV 0 eV 21 cm 3.61 m Chamber Transportation + 8 -30.1 cm 1.24 m 1.6 m 4.71 MeV 0 eV 62.9 cm 4.24 m Tracker Transportation + 9 -31.6 cm 1.3 m 1.8 m 4.71 MeV 0 eV 21 cm 4.44 m Chamber Transportation + 10 -36.1 cm 1.49 m 2.4 m 4.71 MeV 0 eV 62.9 cm 5.07 m Tracker Transportation + 11 -39.9 cm 1.65 m 2.91 m 4.71 MeV 0 eV 53.5 cm 5.61 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 25, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.6 mm 38.2 mum -2.44 m 703 keV 0 eV 0 fm 0 fm Target initStep + 1 1.55 mm 283 mum -2.44 m 511 keV 0 eV 714 mum 714 mum Target compt + 2 1.01 mm 367 mum -2.44 m 0 eV 88 keV 746 mum 1.46 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 42, Parent ID = 25 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.01 mm 367 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1 mm 379 mum -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 41, Parent ID = 25 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.55 mm 283 mum -2.44 m 192 keV 0 eV 0 fm 0 fm Target initStep + 1 1.56 mm 285 mum -2.44 m 0 eV 192 keV 76.7 mum 76.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 24, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.52 mm -126 mum -2.44 m 2.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.43 mm 1.41 cm -2.4 m 341 keV 0 eV 3.91 cm 3.91 cm Target compt + 2 3.22 mm 1.28 cm -2.4 m 198 keV 0 eV 1.79 mm 4.09 cm Target compt + 3 3.26 mm 1.28 cm -2.4 m 0 eV 88 keV 724 mum 4.16 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 45, Parent ID = 24 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.26 mm 1.28 cm -2.4 m 110 keV 0 eV 0 fm 0 fm Target initStep + 1 3.26 mm 1.28 cm -2.4 m 0 eV 110 keV 32.1 mum 32.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 44, Parent ID = 24 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.22 mm 1.28 cm -2.4 m 143 keV 0 eV 0 fm 0 fm Target initStep + 1 3.22 mm 1.28 cm -2.4 m 0 eV 143 keV 49.1 mum 49.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 43, Parent ID = 24 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.43 mm 1.41 cm -2.4 m 2.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.36 mm 1.41 cm -2.4 m 1.4 MeV 205 keV 192 mum 192 mum Target eBrem + 2 4.35 mm 1.42 cm -2.4 m 0 eV 1.4 MeV 1.06 mm 1.25 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 46, Parent ID = 43 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.36 mm 1.41 cm -2.4 m 462 keV 0 eV 0 fm 0 fm Target initStep + 1 3.68 mm 1.76 cm -2.4 m 0 eV 88 keV 4.13 mm 4.13 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 47, Parent ID = 46 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.68 mm 1.76 cm -2.4 m 374 keV 0 eV 0 fm 0 fm Target initStep + 1 3.68 mm 1.76 cm -2.4 m 0 eV 374 keV 203 mum 203 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 23, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.5 mm -164 mum -2.44 m 317 keV 0 eV 0 fm 0 fm Target initStep + 1 1.92 mm 868 mum -2.44 m 0 eV 88 keV 2.55 mm 2.55 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 48, Parent ID = 23 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.92 mm 868 mum -2.44 m 229 keV 0 eV 0 fm 0 fm Target initStep + 1 1.92 mm 866 mum -2.44 m 0 eV 229 keV 100 mum 100 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 22, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.33 mm -376 mum -2.44 m 293 keV 0 eV 0 fm 0 fm Target initStep + 1 1.33 mm -374 mum -2.44 m 231 keV 0 eV 6.59 mum 6.59 mum Target compt + 2 1.34 mm -187 mum -2.44 m 0 eV 88 keV 193 mum 200 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 50, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.34 mm -187 mum -2.44 m 143 keV 0 eV 0 fm 0 fm Target initStep + 1 1.33 mm -185 mum -2.44 m 0 eV 143 keV 49 mum 49 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 49, Parent ID = 22 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.33 mm -374 mum -2.44 m 61.5 keV 0 eV 0 fm 0 fm Target initStep + 1 1.33 mm -374 mum -2.44 m 0 eV 61.5 keV 12.5 mum 12.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 21, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm -486 mum -2.44 m 501 keV 0 eV 0 fm 0 fm Target initStep + 1 1.41 mm -351 mum -2.44 m 275 keV 0 eV 418 mum 418 mum Target compt + 2 -374 mum -347 mum -2.44 m 0 eV 88 keV 2.38 mm 2.8 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 52, Parent ID = 21 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -374 mum -347 mum -2.44 m 187 keV 0 eV 0 fm 0 fm Target initStep + 1 -379 mum -347 mum -2.44 m 0 eV 187 keV 73.7 mum 73.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 51, Parent ID = 21 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.41 mm -351 mum -2.44 m 226 keV 0 eV 0 fm 0 fm Target initStep + 1 1.42 mm -349 mum -2.44 m 0 eV 226 keV 98.7 mum 98.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 20, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 mm -560 mum -2.44 m 2.54 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.23 mm 781 mum -2.42 m 0 eV 0 eV 2.59 cm 2.59 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 54, Parent ID = 20 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.23 mm 781 mum -2.42 m 855 keV 0 eV 0 fm 0 fm Target initStep + 1 6.27 mm 809 mum -2.42 m 0 eV 855 keV 604 mum 604 mum Target eIoni + 2 6.27 mm 809 mum -2.42 m 0 eV 0 eV 0 fm 604 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 56, Parent ID = 54 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.27 mm 809 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.3 mm 901 mum -2.42 m 356 keV 0 eV 126 mum 126 mum Target compt + 2 5.78 mm 1.05 mm -2.42 m 160 keV 0 eV 1.24 mm 1.36 mm Target compt + 3 5.83 mm 1 mm -2.42 m 0 eV 88 keV 75.4 mum 1.44 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 59, Parent ID = 56 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.83 mm 1 mm -2.42 m 71.5 keV 0 eV 0 fm 0 fm Target initStep + 1 5.83 mm 1 mm -2.42 m 0 eV 71.5 keV 16.1 mum 16.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 58, Parent ID = 56 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.78 mm 1.05 mm -2.42 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 5.78 mm 1.05 mm -2.42 m 0 eV 196 keV 79.5 mum 79.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 57, Parent ID = 56 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.3 mm 901 mum -2.42 m 155 keV 0 eV 0 fm 0 fm Target initStep + 1 6.3 mm 904 mum -2.42 m 0 eV 155 keV 55.2 mum 55.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 55, Parent ID = 54 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.27 mm 809 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.85 mm -435 mum -2.41 m 0 eV 88 keV 1.7 mm 1.7 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 60, Parent ID = 55 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.85 mm -435 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.86 mm -444 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 53, Parent ID = 20 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.23 mm 781 mum -2.42 m 659 keV 0 eV 0 fm 0 fm Target initStep + 1 6.22 mm 769 mum -2.42 m 0 eV 659 keV 432 mum 432 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 566 mum -376 mum -2.44 m 957 keV 0 eV 0 fm 0 fm Target initStep + 1 6.36 mm -338 mum -2.43 m 0 eV 88 keV 1.66 cm 1.66 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 61, Parent ID = 19 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.36 mm -338 mum -2.43 m 869 keV 0 eV 0 fm 0 fm Target initStep + 1 6.29 mm -409 mum -2.43 m 242 keV 627 keV 157 mum 157 mum Target eBrem + 2 6.28 mm -406 mum -2.43 m 0 eV 242 keV 109 mum 266 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 73.2 mum -45.7 mum -2.45 m 1.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.21 mm 596 mum -2.43 m 345 keV 0 eV 1.84 cm 1.84 cm Target compt + 2 2.13 mm 1.04 mm -2.43 m 330 keV 0 eV 458 mum 1.89 cm Target compt + 3 549 mum 3.78 mm -2.43 m 0 eV 88 keV 3.26 mm 2.21 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 64, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 549 mum 3.78 mm -2.43 m 242 keV 0 eV 0 fm 0 fm Target initStep + 1 543 mum 3.79 mm -2.43 m 0 eV 242 keV 109 mum 109 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 63, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.13 mm 1.04 mm -2.43 m 15.2 keV 0 eV 0 fm 0 fm Target initStep + 1 2.13 mm 1.04 mm -2.43 m 0 eV 15.2 keV 1.32 mum 1.32 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 62, Parent ID = 18 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.21 mm 596 mum -2.43 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.21 mm 585 mum -2.43 m 0 eV 1.02 MeV 740 mum 740 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 17, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 33.3 mum 3.73 mum -2.45 m 23.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.2 mm -55.2 mum -2.44 m 0 eV 0 eV 1.07 cm 1.07 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 66, Parent ID = 17 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 mm -55.2 mum -2.44 m 15.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.21 mm -366 mum -2.44 m 9.25 MeV 1.53 MeV 1.22 mm 1.22 mm Target eBrem + 2 1.77 mm -601 mum -2.44 m 7.14 MeV 1.73 MeV 1.04 mm 2.26 mm Target eBrem + 3 1.59 mm -649 mum -2.43 m 4.78 MeV 877 keV 745 mum 3.01 mm Target eBrem + 4 3.36 mm -843 mum -2.43 m 2.06 MeV 2.72 MeV 2.23 mm 5.24 mm Target eBrem + 5 3.31 mm -921 mum -2.43 m 0 eV 2.06 MeV 1.63 mm 6.87 mm Target eIoni + 6 3.31 mm -921 mum -2.43 m 0 eV 0 eV 0 fm 6.87 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 71, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.31 mm -921 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -114 mum -1.24 cm -2.44 m 0 eV 88 keV 1.23 cm 1.23 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 72, Parent ID = 71 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -114 mum -1.24 cm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -110 mum -1.24 cm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 70, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.31 mm -921 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.61 mm 3.42 mm -2.43 m 221 keV 0 eV 4.66 mm 4.66 mm Target compt + 2 4.76 mm 2.61 mm -2.43 m 0 eV 88 keV 1.4 mm 6.06 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 74, Parent ID = 70 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.76 mm 2.61 mm -2.43 m 133 keV 0 eV 0 fm 0 fm Target initStep + 1 4.76 mm 2.61 mm -2.43 m 0 eV 133 keV 43.6 mum 43.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 73, Parent ID = 70 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.61 mm 3.42 mm -2.43 m 290 keV 0 eV 0 fm 0 fm Target initStep + 1 4.61 mm 3.43 mm -2.43 m 0 eV 290 keV 142 mum 142 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 69, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.59 mm -649 mum -2.43 m 1.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 5 mm 3.74 mm -2.43 m 347 keV 0 eV 5.56 mm 5.56 mm Target compt + 2 7.64 mm 835 mum -2.43 m 0 eV 88 keV 4.77 mm 1.03 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 76, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.64 mm 835 mum -2.43 m 259 keV 0 eV 0 fm 0 fm Target initStep + 1 7.64 mm 830 mum -2.43 m 0 eV 259 keV 120 mum 120 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 75, Parent ID = 69 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5 mm 3.74 mm -2.43 m 1.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.02 mm 3.78 mm -2.43 m 806 keV 43.5 keV 56.7 mum 56.7 mum Target eBrem + 2 5.14 mm 3.75 mm -2.43 m 141 keV 285 keV 267 mum 324 mum Target eBrem + 3 5.14 mm 3.75 mm -2.43 m 0 eV 141 keV 47.9 mum 372 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 78, Parent ID = 75 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.14 mm 3.75 mm -2.43 m 380 keV 0 eV 0 fm 0 fm Target initStep + 1 1.57 mm 4.34 mm -2.43 m 0 eV 88 keV 3.64 mm 3.64 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 79, Parent ID = 78 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.57 mm 4.34 mm -2.43 m 292 keV 0 eV 0 fm 0 fm Target initStep + 1 1.56 mm 4.34 mm -2.43 m 0 eV 292 keV 143 mum 143 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 77, Parent ID = 75 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.02 mm 3.78 mm -2.43 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 6.1 mm 4.16 mm -2.43 m 0 eV 88 keV 1.15 mm 1.15 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 80, Parent ID = 77 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.1 mm 4.16 mm -2.43 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 6.11 mm 4.16 mm -2.43 m 0 eV 196 keV 79.4 mum 79.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 68, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.77 mm -601 mum -2.44 m 377 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 mm 1.34 mm -2.43 m 246 keV 0 eV 6.76 mm 6.76 mm Target compt + 2 -1.17 mm 3.2 mm -2.43 m 0 eV 88 keV 3.02 mm 9.78 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 82, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.17 mm 3.2 mm -2.43 m 158 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 mm 3.2 mm -2.43 m 0 eV 158 keV 56.6 mum 56.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 81, Parent ID = 68 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm 1.34 mm -2.43 m 132 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm 1.34 mm -2.43 m 0 eV 132 keV 42.8 mum 42.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 67, Parent ID = 66 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm -366 mum -2.44 m 4.32 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.9 mm -1.02 mm -2.43 m 0 eV 0 eV 2.05 mm 2.05 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 84, Parent ID = 67 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.9 mm -1.02 mm -2.43 m 2.64 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.86 mm -1.06 mm -2.43 m 2.11 MeV 105 keV 137 mum 137 mum Target eBrem + 2 1.97 mm -1.19 mm -2.43 m 1.19 MeV 494 keV 504 mum 642 mum Target eBrem + 3 2 mm -1.08 mm -2.43 m 0 eV 1.19 MeV 895 mum 1.54 mm Target eIoni + 4 2 mm -1.08 mm -2.43 m 0 eV 0 eV 0 fm 1.54 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 88, Parent ID = 84 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2 mm -1.08 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.38 mm -2.54 mm -2.43 m 0 eV 88 keV 1.73 mm 1.73 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 89, Parent ID = 88 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.38 mm -2.54 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.37 mm -2.55 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 87, Parent ID = 84 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2 mm -1.08 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.27 mm 4.26 mm -2.43 m 0 eV 88 keV 6.34 mm 6.34 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 90, Parent ID = 87 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.27 mm 4.26 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.27 mm 4.28 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 86, Parent ID = 84 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.97 mm -1.19 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 2.3 mm -239 mum -2.43 m 0 eV 88 keV 1.01 mm 1.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 91, Parent ID = 86 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.3 mm -239 mum -2.43 m 335 keV 0 eV 0 fm 0 fm Target initStep + 1 2.3 mm -228 mum -2.43 m 0 eV 335 keV 174 mum 174 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 85, Parent ID = 84 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.86 mm -1.06 mm -2.43 m 424 keV 0 eV 0 fm 0 fm Target initStep + 1 5.66 mm 290 mum -2.43 m 0 eV 88 keV 4.56 mm 4.56 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 92, Parent ID = 85 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.66 mm 290 mum -2.43 m 336 keV 0 eV 0 fm 0 fm Target initStep + 1 5.67 mm 295 mum -2.43 m 0 eV 336 keV 175 mum 175 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 83, Parent ID = 67 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.9 mm -1.02 mm -2.43 m 666 keV 0 eV 0 fm 0 fm Target initStep + 1 1.93 mm -1.03 mm -2.43 m 0 eV 666 keV 438 mum 438 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 65, Parent ID = 17 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 mm -55.2 mum -2.44 m 7.32 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.51 mm -201 mum -2.44 m 4.59 MeV 2.33 MeV 1.77 mm 1.77 mm Target eBrem + 2 2.38 mm 330 mum -2.44 m 3.02 MeV 1.1 MeV 762 mum 2.53 mm Target eBrem + 3 3.09 mm 41.8 mum -2.44 m 709 keV 1.13 MeV 1.09 mm 3.62 mm Target eBrem + 4 3.11 mm 15.1 mum -2.44 m 0 eV 709 keV 475 mum 4.1 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 95, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.09 mm 41.8 mum -2.44 m 1.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.14 mm -4.32 mm -2.43 m 638 keV 0 eV 5.08 mm 5.08 mm Target compt + 2 4.78 mm -4.97 mm -2.43 m 0 eV 88 keV 945 mum 6.03 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 97, Parent ID = 95 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.78 mm -4.97 mm -2.43 m 550 keV 0 eV 0 fm 0 fm Target initStep + 1 4.78 mm -4.99 mm -2.43 m 0 eV 550 keV 342 mum 342 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 96, Parent ID = 95 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.14 mm -4.32 mm -2.43 m 543 keV 0 eV 0 fm 0 fm Target initStep + 1 5.16 mm -4.34 mm -2.43 m 0 eV 543 keV 337 mum 337 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 94, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.38 mm 330 mum -2.44 m 473 keV 0 eV 0 fm 0 fm Target initStep + 1 2.9 mm 759 mum -2.44 m 435 keV 0 eV 844 mum 844 mum Target compt + 2 4.35 mm 2.87 mm -2.44 m 0 eV 88 keV 2.66 mm 3.51 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 99, Parent ID = 94 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.35 mm 2.87 mm -2.44 m 347 keV 0 eV 0 fm 0 fm Target initStep + 1 4.35 mm 2.88 mm -2.44 m 0 eV 347 keV 183 mum 183 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 98, Parent ID = 94 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.9 mm 759 mum -2.44 m 38.8 keV 0 eV 0 fm 0 fm Target initStep + 1 2.9 mm 759 mum -2.44 m 0 eV 38.8 keV 5.93 mum 5.93 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 93, Parent ID = 65 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.51 mm -201 mum -2.44 m 403 keV 0 eV 0 fm 0 fm Target initStep + 1 2.8 mm 450 mum -2.43 m 240 keV 0 eV 2.74 mm 2.74 mm Target compt + 2 1.21 mm 3.7 mm -2.43 m 0 eV 88 keV 3.62 mm 6.37 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 101, Parent ID = 93 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm 3.7 mm -2.43 m 152 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 mm 3.7 mm -2.43 m 0 eV 152 keV 53.5 mum 53.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 100, Parent ID = 93 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.8 mm 450 mum -2.43 m 163 keV 0 eV 0 fm 0 fm Target initStep + 1 2.8 mm 449 mum -2.43 m 0 eV 163 keV 60 mum 60 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 16, Parent ID = 5 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 933 nm -1.92 mum -2.45 m 726 keV 0 eV 0 fm 0 fm Target initStep + 1 536 mum -170 mum -2.43 m 333 keV 0 eV 1.37 cm 1.37 cm Target compt + 2 -801 mum -3.28 mm -2.43 m 0 eV 88 keV 3.43 mm 1.72 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 103, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -801 mum -3.28 mm -2.43 m 245 keV 0 eV 0 fm 0 fm Target initStep + 1 -802 mum -3.28 mm -2.43 m 0 eV 245 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 102, Parent ID = 16 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 536 mum -170 mum -2.43 m 392 keV 0 eV 0 fm 0 fm Target initStep + 1 539 mum -164 mum -2.43 m 0 eV 392 keV 217 mum 217 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 4, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -53.4 mum -46.9 mum -9.17 cm 15.3 keV 0 eV 0 fm 0 fm Tracker initStep - 1 2.11 mm -1.51 mm -9.09 cm 10.2 keV 5.06 keV 2.38 mm 2.38 mm Tracker eIoni - 2 697 mum -2.45 mm -9.08 cm 5.82 keV 4.43 keV 1.73 mm 4.11 mm Tracker eIoni - 3 1.01 mm -2.58 mm -9.05 cm 0 eV 5.82 keV 888 mum 4.99 mm Tracker eIoni + 0 -98.4 nm -2.54 nm -2.45 m 3.18 GeV 0 eV 0 fm 0 fm Target initStep + 1 -83 nm 23.9 nm -2.45 m 3.17 GeV 57.5 keV 65 mum 65 mum Target eBrem + 2 785 nm 739 nm -2.45 m 2.97 GeV 1.48 MeV 1.12 mm 1.18 mm Target eBrem + 3 -1.93 mum -1.87 mum -2.45 m 2.79 GeV 369 keV 328 mum 1.51 mm Target eBrem + 4 -6.06 mum 1.72 mum -2.45 m 2.78 GeV 1.38 MeV 917 mum 2.43 mm Target eBrem + 5 -4.15 mum 1.64 mum -2.44 m 2.07 GeV 1.01 MeV 807 mum 3.24 mm Target eBrem + 6 -3.98 mum 1.63 mum -2.44 m 2.05 GeV 69.5 keV 48.6 mum 3.29 mm Target eBrem + 7 -6.14 mum -1.66 mum -2.44 m 2.05 GeV 1.3 MeV 1.04 mm 4.33 mm Target eBrem + 8 -9.92 mum -8.22 mum -2.44 m 2.05 GeV 1.4 MeV 1.14 mm 5.47 mm Target eBrem + 9 -10 mum -8.46 mum -2.44 m 1.47 GeV 214 keV 197 mum 5.67 mm Target eBrem + 10 -18.4 mum -16.7 mum -2.44 m 1.45 GeV 1.56 MeV 1.1 mm 6.77 mm Target eBrem + 11 -19 mum -16.1 mum -2.44 m 1.45 GeV 118 keV 90.6 mum 6.86 mm Target eBrem + 12 -20.2 mum -13.8 mum -2.44 m 1.44 GeV 416 keV 386 mum 7.24 mm Target eBrem + 13 -21 mum -13 mum -2.44 m 1.43 GeV 646 keV 437 mum 7.68 mm Target eBrem + 14 -26.6 mum -1.81 mum -2.44 m 1.33 GeV 1.56 MeV 1.15 mm 8.84 mm Target eBrem + 15 -29.1 mum -2.4 mum -2.44 m 1.31 GeV 671 keV 597 mum 9.43 mm Target eBrem + 16 -30.6 mum -2.15 mum -2.44 m 1.31 GeV 163 keV 121 mum 9.55 mm Target eBrem + 17 -29.4 mum 2.36 mum -2.44 m 1.31 GeV 2.77 MeV 1.82 mm 1.14 cm Target eBrem + 18 -26.6 mum 13.2 mum -2.44 m 1.3 GeV 1.76 MeV 1.21 mm 1.26 cm Target eBrem + 19 -28.5 mum 22 mum -2.43 m 1.3 GeV 676 keV 608 mum 1.32 cm Target eBrem + 20 -29.5 mum 26.5 mum -2.43 m 1.26 GeV 700 keV 521 mum 1.37 cm Target eBrem + 21 -29.7 mum 27.4 mum -2.43 m 1.26 GeV 68 keV 32 mum 1.37 cm Target eBrem + 22 -31.1 mum 29.7 mum -2.43 m 1.16 GeV 427 keV 333 mum 1.41 cm Target eBrem + 23 -31.1 mum 29.9 mum -2.43 m 1.16 GeV 38.7 keV 26.2 mum 1.41 cm Target eBrem + 24 -31.5 mum 30.6 mum -2.43 m 1.16 GeV 54.5 keV 67.1 mum 1.42 cm Target eBrem + 25 -32.9 mum 32.4 mum -2.43 m 1.08 GeV 556 keV 189 mum 1.44 cm Target eBrem + 26 -34.9 mum 42.8 mum -2.43 m 1.08 GeV 1.03 MeV 934 mum 1.53 cm Target eBrem + 27 -34.7 mum 43.5 mum -2.43 m 762 MeV 38 keV 34.4 mum 1.53 cm Target eBrem + 28 -34 mum 44.6 mum -2.43 m 759 MeV 155 keV 119 mum 1.54 cm Target eBrem + 29 -28.9 mum 47.4 mum -2.43 m 743 MeV 1.14 MeV 1.03 mm 1.65 cm Target eBrem + 30 -43.5 mum 58.6 mum -2.43 m 734 MeV 3.1 MeV 984 mum 1.75 cm Target eBrem + 31 -59.8 mum 66.6 mum -2.43 m 732 MeV 1.24 MeV 921 mum 1.84 cm Target eBrem + 32 -66.8 mum 73.2 mum -2.43 m 650 MeV 6.68 MeV 319 mum 1.87 cm Target eBrem + 33 -72.8 mum 82.8 mum -2.43 m 636 MeV 701 keV 544 mum 1.92 cm Target eBrem + 34 -75.1 mum 87.8 mum -2.43 m 635 MeV 563 keV 220 mum 1.95 cm Target eBrem + 35 -76 mum 90.5 mum -2.43 m 634 MeV 144 keV 110 mum 1.96 cm Target eBrem + 36 -88.1 mum 148 mum -2.43 m 628 MeV 2.33 MeV 1.51 mm 2.11 cm Target eBrem + 37 -87.5 mum 149 mum -2.43 m 562 MeV 25.7 keV 23.5 mum 2.11 cm Target eBrem + 38 -81.7 mum 158 mum -2.43 m 557 MeV 410 keV 296 mum 2.14 cm Target eBrem + 39 -46.3 mum 236 mum -2.43 m 545 MeV 1.93 MeV 1.47 mm 2.29 cm Target eBrem + 40 -32.1 mum 247 mum -2.42 m 543 MeV 594 keV 413 mum 2.33 cm Target eBrem + 41 -18 mum 259 mum -2.42 m 505 MeV 509 keV 398 mum 2.37 cm Target eBrem + 42 3.34 mum 269 mum -2.42 m 492 MeV 834 keV 717 mum 2.44 cm Target eBrem + 43 16 mum 274 mum -2.42 m 464 MeV 255 keV 206 mum 2.46 cm Target eBrem + 44 16.5 mum 274 mum -2.42 m 224 MeV 17.3 keV 10 mum 2.46 cm Target eBrem + 45 20.3 mum 275 mum -2.42 m 223 MeV 104 keV 64.1 mum 2.47 cm Target eBrem + 46 70.6 mum 269 mum -2.42 m 221 MeV 1.35 MeV 1.03 mm 2.57 cm Target eBrem + 47 135 mum 212 mum -2.42 m 219 MeV 1.93 MeV 1.64 mm 2.73 cm Target eBrem + 48 169 mum 210 mum -2.42 m 212 MeV 466 keV 270 mum 2.76 cm Target eBrem + 49 237 mum 180 mum -2.42 m 209 MeV 2.51 MeV 936 mum 2.86 cm Target eBrem + 50 270 mum 170 mum -2.42 m 135 MeV 1.96 MeV 364 mum 2.89 cm Target eBrem + 51 318 mum 161 mum -2.42 m 134 MeV 579 keV 440 mum 2.94 cm Target eBrem + 52 338 mum 172 mum -2.42 m 124 MeV 261 keV 252 mum 2.96 cm Target eBrem + 53 396 mum 256 mum -2.42 m 109 MeV 1.23 MeV 872 mum 3.05 cm Target eBrem + 54 416 mum 272 mum -2.42 m 87.7 MeV 272 keV 208 mum 3.07 cm Target eBrem + 55 425 mum 274 mum -2.42 m 83.3 MeV 121 keV 138 mum 3.08 cm Target eBrem + 56 425 mum 274 mum -2.42 m 61.4 MeV 10.9 keV 7.96 mum 3.08 cm Target eBrem + 57 458 mum 295 mum -2.42 m 60.3 MeV 578 keV 422 mum 3.13 cm Target eBrem + 58 411 mum 392 mum -2.42 m 24.7 MeV 1.18 MeV 1.02 mm 3.23 cm Target eBrem + 59 443 mum 396 mum -2.42 m 10.7 MeV 248 keV 180 mum 3.25 cm Target eBrem + 60 -387 mum 464 mum -2.41 m 7.94 MeV 2 MeV 1.64 mm 3.41 cm Target eBrem + 61 -118 mum 1.24 mm -2.41 m 4.61 MeV 2.64 MeV 1.49 mm 3.56 cm Target eBrem + 62 53.1 mum -106 mum -2.41 m 1.23 MeV 3.38 MeV 3 mm 3.86 cm Target eBrem + 63 63.4 mum -89.6 mum -2.41 m 703 keV 13.4 keV 20 mum 3.86 cm Target eBrem + 64 86 mum -67.6 mum -2.41 m 0 eV 703 keV 469 mum 3.91 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 165, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 63.4 mum -89.6 mum -2.41 m 513 keV 0 eV 0 fm 0 fm Target initStep + 1 3.45 mm 1.67 mm -2.41 m 0 eV 88 keV 3.83 mm 3.83 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 166, Parent ID = 165 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.45 mm 1.67 mm -2.41 m 425 keV 0 eV 0 fm 0 fm Target initStep + 1 3.46 mm 1.68 mm -2.41 m 0 eV 425 keV 242 mum 242 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 164, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -118 mum 1.24 mm -2.41 m 686 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.43 cm -3.67 mm -2.41 m 217 keV 0 eV 1.51 cm 1.51 cm Target compt + 2 -1.36 cm -2.66 mm -2.41 m 0 eV 88 keV 1.88 mm 1.7 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 168, Parent ID = 164 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.36 cm -2.66 mm -2.41 m 129 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.36 cm -2.66 mm -2.41 m 0 eV 129 keV 41.4 mum 41.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 167, Parent ID = 164 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.43 cm -3.67 mm -2.41 m 469 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.43 cm -3.68 mm -2.41 m 0 eV 469 keV 277 mum 277 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 163, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -387 mum 464 mum -2.41 m 719 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.33 mm 625 mum -2.41 m 0 eV 88 keV 3.34 mm 3.34 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 169, Parent ID = 163 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.33 mm 625 mum -2.41 m 631 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.33 mm 621 mum -2.41 m 0 eV 631 keV 409 mum 409 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 162, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 443 mum 396 mum -2.42 m 13.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 526 mum 524 mum -2.41 m 0 eV 0 eV 995 mum 995 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 171, Parent ID = 162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 526 mum 524 mum -2.41 m 4.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.96 mm 593 mum -2.41 m 2.3 MeV 2.07 MeV 1.77 mm 1.77 mm Target eBrem + 2 1.84 mm 836 mum -2.41 m 0 eV 2.3 MeV 1.83 mm 3.61 mm Target eIoni + 3 1.84 mm 836 mum -2.41 m 0 eV 0 eV 0 fm 3.61 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 174, Parent ID = 171 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.84 mm 836 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.78 mm 213 mum -2.42 m 251 keV 0 eV 1.96 mm 1.96 mm Target compt + 2 2.16 mm -1.09 mm -2.42 m 0 eV 88 keV 1.46 mm 3.42 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 176, Parent ID = 174 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.16 mm -1.09 mm -2.42 m 163 keV 0 eV 0 fm 0 fm Target initStep + 1 2.15 mm -1.09 mm -2.42 m 0 eV 163 keV 60 mum 60 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 175, Parent ID = 174 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.78 mm 213 mum -2.42 m 260 keV 0 eV 0 fm 0 fm Target initStep + 1 2.79 mm 214 mum -2.42 m 0 eV 260 keV 121 mum 121 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 173, Parent ID = 171 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.84 mm 836 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.57 mm 4.4 mm -2.4 m 0 eV 88 keV 1.12 cm 1.12 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 177, Parent ID = 173 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.57 mm 4.4 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.57 mm 4.41 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 172, Parent ID = 171 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.96 mm 593 mum -2.41 m 397 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.39 mm 1.1 cm -2.42 m 0 eV 88 keV 1.25 cm 1.25 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 178, Parent ID = 172 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.39 mm 1.1 cm -2.42 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.39 mm 1.1 cm -2.42 m 0 eV 309 keV 155 mum 155 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 170, Parent ID = 162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 526 mum 524 mum -2.41 m 7.99 MeV 0 eV 0 fm 0 fm Target initStep + 1 -469 mum -2.33 mm -2.41 m 1.06 MeV 6.93 MeV 3.85 mm 3.85 mm Target eBrem + 2 -490 mum -2.38 mm -2.41 m 0 eV 1.06 MeV 775 mum 4.63 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 161, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 411 mum 392 mum -2.42 m 34.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 603 mum 465 mum -2.41 m 0 eV 0 eV 1.86 mm 1.86 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 180, Parent ID = 161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 603 mum 465 mum -2.41 m 5.57 MeV 0 eV 0 fm 0 fm Target initStep + 1 831 mum 2.28 mm -2.41 m 213 keV 2.71 MeV 2.25 mm 2.25 mm Target eBrem + 2 828 mum 2.27 mm -2.41 m 0 eV 213 keV 86.7 mum 2.34 mm Target eIoni + 3 828 mum 2.27 mm -2.41 m 0 eV 0 eV 0 fm 2.34 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 183, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 828 mum 2.27 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.83 mm 2.77 mm -2.41 m 0 eV 88 keV 4.6 mm 4.6 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 184, Parent ID = 183 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.83 mm 2.77 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.84 mm 2.76 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 182, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 828 mum 2.27 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.49 mm 2.04 mm -2.41 m 0 eV 88 keV 2.09 mm 2.09 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 185, Parent ID = 182 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.49 mm 2.04 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 2.5 mm 2.05 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 181, Parent ID = 180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 831 mum 2.28 mm -2.41 m 2.65 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.62 cm -2.5 cm -2.4 m 2.65 MeV 0 eV 3.45 cm 3.45 cm Target Transportation + 2 -1.69 cm -2.61 cm -2.4 m 2.65 MeV 0 eV 1.35 mm 3.59 cm World Transportation + 3 -1.5 m -2.4 m -1.31 m 2.65 MeV 0 eV 3.01 m 3.04 m Tracker Transportation + 4 -1.82 m -2.91 m -1.07 m 2.65 MeV 0 eV 64.6 cm 3.69 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 179, Parent ID = 161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 603 mum 465 mum -2.41 m 27.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 498 mum 514 mum -2.41 m 21.4 MeV 1.45 MeV 1.23 mm 1.23 mm Target eBrem + 2 539 mum 585 mum -2.41 m 19.8 MeV 206 keV 200 mum 1.43 mm Target eBrem + 3 908 mum 624 mum -2.41 m 16.8 MeV 1.48 MeV 1.11 mm 2.54 mm Target eBrem + 4 1.55 mm 275 mum -2.41 m 14.8 MeV 1.5 MeV 1.32 mm 3.86 mm Target eBrem + 5 1.83 mm 113 mum -2.41 m 5.67 MeV 476 keV 353 mum 4.21 mm Target eBrem + 6 1.89 mm 84.2 mum -2.41 m 4.64 MeV 80.4 keV 77.7 mum 4.29 mm Target eBrem + 7 1.9 mm -1.08 mm -2.41 m 1.77 MeV 2.26 MeV 1.75 mm 6.04 mm Target eBrem + 8 1.94 mm -1.16 mm -2.41 m 0 eV 1.77 MeV 1.37 mm 7.41 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 192, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.9 mm -1.08 mm -2.41 m 607 keV 0 eV 0 fm 0 fm Target initStep + 1 3.33 mm -708 mum -2.41 m 0 eV 88 keV 2.09 mm 2.09 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 193, Parent ID = 192 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.33 mm -708 mum -2.41 m 519 keV 0 eV 0 fm 0 fm Target initStep + 1 3.35 mm -701 mum -2.41 m 0 eV 519 keV 317 mum 317 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 191, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.89 mm 84.2 mum -2.41 m 951 keV 0 eV 0 fm 0 fm Target initStep + 1 1.51 cm -1.82 cm -2.4 m 0 eV 88 keV 2.49 cm 2.49 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 194, Parent ID = 191 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.51 cm -1.82 cm -2.4 m 863 keV 0 eV 0 fm 0 fm Target initStep + 1 1.51 cm -1.82 cm -2.4 m 0 eV 863 keV 604 mum 604 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 190, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.83 mm 113 mum -2.41 m 8.66 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.06 mm -4.85 mm -2.41 m 0 eV 0 eV 8.46 mm 8.46 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 196, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.06 mm -4.85 mm -2.41 m 4.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.56 mm -5.29 mm -2.41 m 0 eV 4.37 MeV 3.46 mm 3.46 mm Target eIoni + 2 8.56 mm -5.29 mm -2.41 m 0 eV 0 eV 0 fm 3.46 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 198, Parent ID = 196 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.56 mm -5.29 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 8.23 mm -8.33 mm -2.4 m 212 keV 0 eV 5.62 mm 5.62 mm Target compt + 2 7.43 mm -7.7 mm -2.4 m 0 eV 88 keV 1.03 mm 6.65 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 200, Parent ID = 198 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.43 mm -7.7 mm -2.4 m 124 keV 0 eV 0 fm 0 fm Target initStep + 1 7.43 mm -7.7 mm -2.4 m 0 eV 124 keV 38.7 mum 38.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 199, Parent ID = 198 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.23 mm -8.33 mm -2.4 m 299 keV 0 eV 0 fm 0 fm Target initStep + 1 8.24 mm -8.33 mm -2.4 m 0 eV 299 keV 148 mum 148 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 197, Parent ID = 196 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.56 mm -5.29 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 8.89 mm -2.19 mm -2.41 m 289 keV 0 eV 5.73 mm 5.73 mm Target compt + 2 6.66 mm -2.71 mm -2.41 m 0 eV 88 keV 2.58 mm 8.31 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 202, Parent ID = 197 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.66 mm -2.71 mm -2.41 m 201 keV 0 eV 0 fm 0 fm Target initStep + 1 6.66 mm -2.7 mm -2.41 m 0 eV 201 keV 82.4 mum 82.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 201, Parent ID = 197 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.89 mm -2.19 mm -2.41 m 222 keV 0 eV 0 fm 0 fm Target initStep + 1 8.89 mm -2.18 mm -2.41 m 0 eV 222 keV 95.7 mum 95.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 195, Parent ID = 190 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.06 mm -4.85 mm -2.41 m 3.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.34 mm -5.05 mm -2.41 m 0 eV 3.27 MeV 2.57 mm 2.57 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 189, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.55 mm 275 mum -2.41 m 513 keV 0 eV 0 fm 0 fm Target initStep + 1 5.81 mm -1.22 mm -2.41 m 174 keV 0 eV 5.34 mm 5.34 mm Target compt + 2 5.41 mm -950 mum -2.41 m 0 eV 88 keV 724 mum 6.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 204, Parent ID = 189 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.41 mm -950 mum -2.41 m 86 keV 0 eV 0 fm 0 fm Target initStep + 1 5.41 mm -949 mum -2.41 m 0 eV 86 keV 21.7 mum 21.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 203, Parent ID = 189 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.81 mm -1.22 mm -2.41 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 5.82 mm -1.22 mm -2.41 m 0 eV 339 keV 177 mum 177 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 188, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 908 mum 624 mum -2.41 m 1.54 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.64 cm -8.51 mm -2.4 m 1.54 MeV 0 eV 2.14 cm 2.14 cm Target Transportation + 2 2.4 m -1.41 m -61.8 cm 1.54 MeV 0 eV 3.29 m 3.31 m Tracker Transportation + 3 2.7 m -1.59 m -39.6 cm 1.39 MeV 0 eV 40.9 cm 3.72 m World compt + 4 2.91 m -1.83 m -17.6 cm 1.39 MeV 0 eV 39.3 cm 4.11 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 205, Parent ID = 188 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.7 m -1.59 m -39.6 cm 151 keV 0 eV 0 fm 0 fm World initStep + 1 2.75 m -1.57 m -37.4 cm 99.7 keV 16.1 keV 6.11 cm 6.11 cm World eIoni + 2 2.8 m -1.56 m -32.5 cm 0 eV 99.7 keV 13.6 cm 19.7 cm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 206, Parent ID = 205 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.75 m -1.57 m -37.4 cm 35.6 keV 0 eV 0 fm 0 fm World initStep + 1 2.76 m -1.58 m -38 cm 0 eV 35.6 keV 2.17 cm 2.17 cm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 187, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 539 mum 585 mum -2.41 m 1.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.35 mm 3.71 mm -2.4 m 1.39 MeV 0 eV 1.35 cm 1.35 cm Target Transportation + 2 49 cm 40.3 cm -80 cm 1.39 MeV 0 eV 1.72 m 1.73 m Tracker Transportation + 3 55.1 cm 45.2 cm -60 cm 1.39 MeV 0 eV 21.5 cm 1.95 m Chamber Transportation + 4 73.3 cm 60.2 cm 0 fm 1.39 MeV 0 eV 64.5 cm 2.59 m Tracker Transportation + 5 79.4 cm 65.2 cm 20 cm 1.39 MeV 0 eV 21.5 cm 2.81 m Chamber Transportation + 6 97.6 cm 80.1 cm 80 cm 1.39 MeV 0 eV 64.5 cm 3.45 m Tracker Transportation + 7 1.04 m 85.1 cm 1 m 1.39 MeV 0 eV 21.5 cm 3.67 m Chamber Transportation + 8 1.22 m 1 m 1.6 m 1.39 MeV 0 eV 64.5 cm 4.31 m Tracker Transportation + 9 1.26 m 1.03 m 1.72 m 856 keV 0 eV 13 cm 4.44 m Chamber compt + 10 1.22 m 1.08 m 1.8 m 856 keV 0 eV 9.8 cm 4.54 m Chamber Transportation + 11 97.3 cm 1.43 m 2.4 m 856 keV 0 eV 74 cm 5.28 m Tracker Transportation + 12 76.1 cm 1.73 m 2.91 m 856 keV 0 eV 62.9 cm 5.91 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 207, Parent ID = 187 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.26 m 1.03 m 1.72 m 534 keV 0 eV 0 fm 0 fm Chamber initStep + 1 1.31 m 1.04 m 1.75 m 432 keV 61.3 keV 8.85 cm 8.85 cm Chamber eIoni + 2 1.31 m 1.01 m 1.7 m 109 keV 218 keV 30.8 cm 39.6 cm Chamber eIoni + 3 1.31 m 1.01 m 1.71 m 0 eV 109 keV 5.75 cm 45.4 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 209, Parent ID = 207 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 m 1.01 m 1.7 m 104 keV 0 eV 0 fm 0 fm Chamber initStep + 1 1.31 m 1.02 m 1.71 m 0 eV 104 keV 5.33 cm 5.33 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 208, Parent ID = 207 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 m 1.04 m 1.75 m 40.9 keV 0 eV 0 fm 0 fm Chamber initStep + 1 1.31 m 1.04 m 1.74 m 0 eV 40.9 keV 1.11 cm 1.11 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 186, Parent ID = 179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 498 mum 514 mum -2.41 m 4.95 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.22 mm 5.09 mm -2.4 m 4.95 MeV 0 eV 1.38 cm 1.38 cm Target Transportation + 2 34.5 cm 58 cm -80 cm 4.95 MeV 0 eV 1.73 m 1.75 m Tracker Transportation + 3 38.8 cm 65.2 cm -60 cm 4.95 MeV 0 eV 21.7 cm 1.96 m Chamber Transportation + 4 51.6 cm 86.8 cm 0.114 fm 4.95 MeV 0 eV 65 cm 2.62 m Tracker Transportation + 5 55.9 cm 93.9 cm 20 cm 4.95 MeV 0 eV 21.7 cm 2.83 m Chamber Transportation + 6 68.7 cm 1.16 m 80 cm 4.95 MeV 0 eV 65 cm 3.48 m Tracker Transportation + 7 73 cm 1.23 m 1 m 4.95 MeV 0 eV 21.7 cm 3.7 m Chamber Transportation + 8 85.8 cm 1.44 m 1.6 m 4.95 MeV 0 eV 65 cm 4.35 m Tracker Transportation + 9 90 cm 1.51 m 1.8 m 4.95 MeV 0 eV 21.7 cm 4.57 m Chamber Transportation + 10 1.03 m 1.73 m 2.4 m 4.95 MeV 0 eV 65 cm 5.22 m Tracker Transportation + 11 1.14 m 1.91 m 2.91 m 4.95 MeV 0 eV 55.3 cm 5.77 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 160, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 458 mum 295 mum -2.42 m 478 keV 0 eV 0 fm 0 fm Target initStep + 1 474 mum 426 mum -2.41 m 0 eV 88 keV 4.07 mm 4.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 210, Parent ID = 160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 474 mum 426 mum -2.41 m 390 keV 0 eV 0 fm 0 fm Target initStep + 1 469 mum 425 mum -2.41 m 0 eV 390 keV 215 mum 215 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 159, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 425 mum 274 mum -2.42 m 22 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.13 mm 511 mum -2.4 m 22 MeV 0 eV 1.73 cm 1.73 cm Target Transportation + 2 3.39 cm 1.15 cm -1.6 m 22 MeV 0 eV 80.1 cm 81.8 cm Tracker Transportation + 3 4.21 cm 1.43 cm -1.4 m 22 MeV 0 eV 20 cm 1.02 m Chamber Transportation + 4 6.67 cm 2.25 cm -80 cm 22 MeV 0 eV 60.1 cm 1.62 m Tracker Transportation + 5 7.5 cm 2.53 cm -60 cm 22 MeV 0 eV 20 cm 1.82 m Chamber Transportation + 6 9.96 cm 3.35 cm 0 fm 22 MeV 0 eV 60.1 cm 2.42 m Tracker Transportation + 7 10.8 cm 3.63 cm 20 cm 22 MeV 0 eV 20 cm 2.62 m Chamber Transportation + 8 13.2 cm 4.45 cm 80 cm 22 MeV 0 eV 60.1 cm 3.22 m Tracker Transportation + 9 14.1 cm 4.73 cm 1 m 22 MeV 0 eV 20 cm 3.42 m Chamber Transportation + 10 16.5 cm 5.55 cm 1.6 m 22 MeV 0 eV 60.1 cm 4.02 m Tracker Transportation + 11 17.3 cm 5.83 cm 1.8 m 22 MeV 0 eV 20 cm 4.22 m Chamber Transportation + 12 19.8 cm 6.65 cm 2.4 m 22 MeV 0 eV 60.1 cm 4.82 m Tracker Transportation + 13 21.9 cm 7.35 cm 2.91 m 22 MeV 0 eV 51 cm 5.33 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 158, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 425 mum 274 mum -2.42 m 4.23 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.02 mm 488 mum -2.4 m 2.83 MeV 0 eV 1.36 cm 1.36 cm Target compt + 2 2.31 mm -197 mum -2.4 m 2.83 MeV 0 eV 3.95 mm 1.75 cm Target Transportation + 3 56.2 cm -29.9 cm -80 cm 2.83 MeV 0 eV 1.72 m 1.74 m Tracker Transportation + 4 63.2 cm -33.6 cm -60 cm 2.83 MeV 0 eV 21.5 cm 1.95 m Chamber Transportation + 5 84.2 cm -44.8 cm -0.114 fm 2.83 MeV 0 eV 64.5 cm 2.6 m Tracker Transportation + 6 91.2 cm -48.6 cm 20 cm 2.83 MeV 0 eV 21.5 cm 2.81 m Chamber Transportation + 7 1.12 m -59.8 cm 80 cm 2.83 MeV 0 eV 64.5 cm 3.46 m Tracker Transportation + 8 1.19 m -63.5 cm 1 m 2.83 MeV 0 eV 21.5 cm 3.68 m Chamber Transportation + 9 1.4 m -74.7 cm 1.6 m 2.83 MeV 0 eV 64.5 cm 4.32 m Tracker Transportation + 10 1.47 m -78.4 cm 1.8 m 2.83 MeV 0 eV 21.5 cm 4.54 m Chamber Transportation + 11 1.68 m -89.6 cm 2.4 m 2.83 MeV 0 eV 64.5 cm 5.18 m Tracker Transportation + 12 1.86 m -99.1 cm 2.91 m 2.83 MeV 0 eV 54.9 cm 5.73 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 211, Parent ID = 158 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.02 mm 488 mum -2.4 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 983 mum 517 mum -2.4 m 0 eV 1.4 MeV 1.06 mm 1.06 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 157, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 416 mum 272 mum -2.42 m 21.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.56 mm 584 mum -2.4 m 21.3 MeV 0 eV 1.74 cm 1.74 cm Target Transportation + 2 5.43 cm 1.49 cm -1.6 m 21.3 MeV 0 eV 80.2 cm 81.9 cm Tracker Transportation + 3 6.75 cm 1.85 cm -1.4 m 21.3 MeV 0 eV 20 cm 1.02 m Chamber Transportation + 4 10.7 cm 2.93 cm -80 cm 21.3 MeV 0 eV 60.1 cm 1.62 m Tracker Transportation + 5 12 cm 3.28 cm -60 cm 21.3 MeV 0 eV 20 cm 1.82 m Chamber Transportation + 6 16 cm 4.36 cm -0.114 fm 21.3 MeV 0 eV 60.1 cm 2.42 m Tracker Transportation + 7 17.3 cm 4.72 cm 20 cm 21.3 MeV 0 eV 20 cm 2.62 m Chamber Transportation + 8 21.3 cm 5.79 cm 80 cm 21.3 MeV 0 eV 60.1 cm 3.22 m Tracker Transportation + 9 22.6 cm 6.15 cm 1 m 21.3 MeV 0 eV 20 cm 3.43 m Chamber Transportation + 10 26.5 cm 7.23 cm 1.6 m 21.3 MeV 0 eV 60.1 cm 4.03 m Tracker Transportation + 11 27.8 cm 7.58 cm 1.8 m 21.3 MeV 0 eV 20 cm 4.23 m Chamber Transportation + 12 31.8 cm 8.66 cm 2.4 m 21.3 MeV 0 eV 60.1 cm 4.83 m Tracker Transportation + 13 35.2 cm 9.57 cm 2.91 m 21.3 MeV 0 eV 51.1 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 156, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 396 mum 256 mum -2.42 m 13.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.53 mm 1.25 mm -2.4 m 0 eV 0 eV 1.45 cm 1.45 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 213, Parent ID = 156 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.53 mm 1.25 mm -2.4 m 2.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.04 mm 1.27 mm -2.4 m 0 eV 692 keV 756 mum 756 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 215, Parent ID = 213 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.04 mm 1.27 mm -2.4 m 2.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 -783 mum 4.24 mm -2.4 m 1.97 MeV 0 eV 3.5 mm 3.5 mm Target compt + 2 -5.28 mm 9.4 mm -2.4 m 412 keV 0 eV 6.87 mm 1.04 cm Target compt + 3 -7.78 mm 7.49 mm -2.4 m 0 eV 88 keV 3.55 mm 1.39 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 218, Parent ID = 215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.78 mm 7.49 mm -2.4 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.79 mm 7.49 mm -2.4 m 0 eV 324 keV 166 mum 166 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 217, Parent ID = 215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.28 mm 9.4 mm -2.4 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.3 mm 9.43 mm -2.4 m 1.03 MeV 36.9 keV 40.6 mum 40.6 mum Target eBrem + 2 -5.25 mm 9.46 mm -2.4 m 0 eV 1.03 MeV 745 mum 785 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 219, Parent ID = 217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.3 mm 9.43 mm -2.4 m 489 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.02 mm 1.01 cm -2.4 m 362 keV 0 eV 1.79 mm 1.79 mm Target compt + 2 -4.09 mm 1.15 cm -2.41 m 0 eV 88 keV 1.72 mm 3.51 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 221, Parent ID = 219 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.09 mm 1.15 cm -2.41 m 274 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.09 mm 1.15 cm -2.41 m 0 eV 274 keV 131 mum 131 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 220, Parent ID = 219 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.02 mm 1.01 cm -2.4 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.01 mm 1.01 cm -2.4 m 0 eV 127 keV 40.3 mum 40.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 216, Parent ID = 215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -783 mum 4.24 mm -2.4 m 113 keV 0 eV 0 fm 0 fm Target initStep + 1 -782 mum 4.24 mm -2.4 m 0 eV 113 keV 33.9 mum 33.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 214, Parent ID = 213 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.04 mm 1.27 mm -2.4 m 952 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 cm 1.17 cm -2.41 m 681 keV 0 eV 1.6 cm 1.6 cm Target compt + 2 2.5 cm 1.23 cm -2.41 m 681 keV 0 eV 1.39 cm 2.99 cm Target Transportation + 3 1.17 m 6.62 cm -2.91 m 681 keV 0 eV 1.25 m 1.28 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 222, Parent ID = 214 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 cm 1.17 cm -2.41 m 272 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 cm 1.17 cm -2.41 m 0 eV 272 keV 129 mum 129 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 212, Parent ID = 156 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.53 mm 1.25 mm -2.4 m 9.83 MeV 0 eV 0 fm 0 fm Target initStep + 1 781 mum 1.76 mm -2.4 m 6.28 MeV 2.21 MeV 1.58 mm 1.58 mm Target eBrem + 2 425 mum 2.55 mm -2.4 m 3.33 MeV 2.61 MeV 2.24 mm 3.81 mm Target eBrem + 3 451 mum 2.42 mm -2.4 m 2.63 MeV 333 keV 299 mum 4.11 mm Target eBrem + 4 361 mum 2.47 mm -2.4 m 0 eV 2.63 MeV 2.06 mm 6.18 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 225, Parent ID = 212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 451 mum 2.42 mm -2.4 m 369 keV 0 eV 0 fm 0 fm Target initStep + 1 36.9 mum 2.06 mm -2.4 m 0 eV 88 keV 810 mum 810 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 226, Parent ID = 225 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 36.9 mum 2.06 mm -2.4 m 281 keV 0 eV 0 fm 0 fm Target initStep + 1 31 mum 2.06 mm -2.4 m 0 eV 281 keV 136 mum 136 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 224, Parent ID = 212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 425 mum 2.55 mm -2.4 m 343 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.42 mm 2.06 mm -2.4 m 343 keV 0 eV 3.29 mm 3.29 mm Target Transportation + 2 -2.4 m -63.8 cm 1.08 m 343 keV 0 eV 4.27 m 4.28 m Tracker Transportation + 3 -2.91 m -77.5 cm 1.82 m 343 keV 0 eV 90.9 cm 5.19 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 223, Parent ID = 212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 781 mum 1.76 mm -2.4 m 1.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.26 mm 1.55 cm -2.42 m 474 keV 0 eV 2.1 cm 2.1 cm Target compt + 2 8.24 mm 1.56 cm -2.42 m 0 eV 88 keV 41.2 mum 2.1 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 228, Parent ID = 223 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.24 mm 1.56 cm -2.42 m 386 keV 0 eV 0 fm 0 fm Target initStep + 1 8.24 mm 1.56 cm -2.42 m 0 eV 386 keV 212 mum 212 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 227, Parent ID = 223 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.26 mm 1.55 cm -2.42 m 866 keV 0 eV 0 fm 0 fm Target initStep + 1 8.28 mm 1.56 cm -2.42 m 0 eV 866 keV 606 mum 606 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 155, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 338 mum 172 mum -2.42 m 9.72 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.17 mm 976 mum -2.41 m 0 eV 0 eV 1.35 cm 1.35 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 230, Parent ID = 155 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm 976 mum -2.41 m 6.95 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.18 mm 978 mum -2.41 m 4.09 MeV 25.2 keV 19.3 mum 19.3 mum Target eBrem + 2 1.12 mm 1.09 mm -2.4 m 2.23 MeV 1.28 MeV 294 mum 314 mum Target eBrem + 3 1.17 mm 1.34 mm -2.4 m 0 eV 2.23 MeV 1.78 mm 2.09 mm Target eIoni + 4 1.17 mm 1.34 mm -2.4 m 0 eV 0 eV 0 fm 2.09 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 234, Parent ID = 230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm 1.34 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.72 mm 1.73 mm -2.4 m 511 keV 0 eV 5.01 mm 5.01 mm Target Transportation + 2 52.5 cm 13.4 cm -80 cm 511 keV 0 eV 1.69 m 1.69 m Tracker Transportation + 3 59.1 cm 15 cm -60 cm 511 keV 0 eV 21.1 cm 1.9 m Chamber Transportation + 4 78.7 cm 20 cm 0 fm 511 keV 0 eV 63.3 cm 2.54 m Tracker Transportation + 5 85.2 cm 21.6 cm 20 cm 511 keV 0 eV 21.1 cm 2.75 m Chamber Transportation + 6 1.05 m 26.6 cm 80 cm 511 keV 0 eV 63.3 cm 3.38 m Tracker Transportation + 7 1.11 m 28.2 cm 1 m 511 keV 0 eV 21.1 cm 3.59 m Chamber Transportation + 8 1.31 m 33.2 cm 1.6 m 511 keV 0 eV 63.3 cm 4.23 m Tracker Transportation + 9 1.37 m 34.8 cm 1.8 m 511 keV 0 eV 21.1 cm 4.44 m Chamber Transportation + 10 1.57 m 39.8 cm 2.4 m 511 keV 0 eV 63.3 cm 5.07 m Tracker Transportation + 11 1.74 m 44 cm 2.91 m 511 keV 0 eV 53.8 cm 5.61 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 233, Parent ID = 230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm 1.34 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 472 mum 1.17 mm -2.41 m 0 eV 88 keV 2.25 mm 2.25 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 235, Parent ID = 233 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 472 mum 1.17 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 471 mum 1.16 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 232, Parent ID = 230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.12 mm 1.09 mm -2.4 m 583 keV 0 eV 0 fm 0 fm Target initStep + 1 1.31 mm 2.3 mm -2.4 m 0 eV 88 keV 1.34 mm 1.34 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 236, Parent ID = 232 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 mm 2.3 mm -2.4 m 495 keV 0 eV 0 fm 0 fm Target initStep + 1 1.32 mm 2.31 mm -2.4 m 0 eV 495 keV 298 mum 298 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 231, Parent ID = 230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 mm 978 mum -2.41 m 2.83 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.32 mm 2.28 mm -2.4 m 2.83 MeV 0 eV 5.32 mm 5.32 mm Target Transportation + 2 18.5 cm 21 cm -1.6 m 2.83 MeV 0 eV 84.7 cm 85.2 cm Tracker Transportation + 3 21.1 cm 24 cm -1.49 m 2.83 MeV 0 eV 12.1 cm 97.3 cm Chamber Transportation + 4 36.8 cm 41.8 cm -80 cm 2.83 MeV 0 eV 72.5 cm 1.7 m Tracker Transportation + 5 41.4 cm 47 cm -60 cm 2.83 MeV 0 eV 21.2 cm 1.91 m Chamber Transportation + 6 55.1 cm 62.6 cm 0 fm 2.83 MeV 0 eV 63.5 cm 2.54 m Tracker Transportation + 7 59.6 cm 67.8 cm 20 cm 2.83 MeV 0 eV 21.2 cm 2.76 m Chamber Transportation + 8 73.3 cm 83.4 cm 80 cm 2.83 MeV 0 eV 63.5 cm 3.39 m Tracker Transportation + 9 77.9 cm 88.6 cm 1 m 2.83 MeV 0 eV 21.2 cm 3.6 m Chamber Transportation + 10 91.6 cm 1.04 m 1.6 m 2.83 MeV 0 eV 63.5 cm 4.24 m Tracker Transportation + 11 96.2 cm 1.09 m 1.8 m 2.83 MeV 0 eV 21.2 cm 4.45 m Chamber Transportation + 12 1.1 m 1.25 m 2.4 m 2.83 MeV 0 eV 63.5 cm 5.08 m Tracker Transportation + 13 1.22 m 1.38 m 2.91 m 2.83 MeV 0 eV 54 cm 5.62 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 229, Parent ID = 155 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm 976 mum -2.41 m 1.75 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.6 mm 880 mum -2.4 m 318 keV 1.43 MeV 1.17 mm 1.17 mm Target eBrem + 2 1.61 mm 877 mum -2.4 m 0 eV 318 keV 161 mum 1.34 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 154, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 318 mum 161 mum -2.42 m 869 keV 0 eV 0 fm 0 fm Target initStep + 1 1.52 mm 1.22 mm -2.4 m 869 keV 0 eV 1.88 cm 1.88 cm Target Transportation + 2 5.28 cm 4.64 cm -1.6 m 869 keV 0 eV 80.3 cm 82.2 cm Tracker Transportation + 3 6.56 cm 5.77 cm -1.4 m 869 keV 0 eV 20.1 cm 1.02 m Chamber Transportation + 4 10.4 cm 9.15 cm -80 cm 869 keV 0 eV 60.2 cm 1.62 m Tracker Transportation + 5 11.7 cm 10.3 cm -60 cm 869 keV 0 eV 20.1 cm 1.83 m Chamber Transportation + 6 15.5 cm 13.7 cm 0 fm 869 keV 0 eV 60.2 cm 2.43 m Tracker Transportation + 7 16.8 cm 14.8 cm 20 cm 869 keV 0 eV 20.1 cm 2.63 m Chamber Transportation + 8 20.7 cm 18.2 cm 80 cm 869 keV 0 eV 60.2 cm 3.23 m Tracker Transportation + 9 21.9 cm 19.3 cm 1 m 869 keV 0 eV 20.1 cm 3.43 m Chamber Transportation + 10 25.8 cm 22.7 cm 1.6 m 869 keV 0 eV 60.2 cm 4.03 m Tracker Transportation + 11 27.1 cm 23.8 cm 1.8 m 869 keV 0 eV 20.1 cm 4.23 m Chamber Transportation + 12 30.9 cm 27.2 cm 2.4 m 869 keV 0 eV 60.2 cm 4.84 m Tracker Transportation + 13 34.2 cm 30.1 cm 2.91 m 869 keV 0 eV 51.2 cm 5.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 153, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 270 mum 170 mum -2.42 m 71.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.49 mm 152 mum -2.41 m 0 eV 0 eV 1.27 cm 1.27 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 238, Parent ID = 153 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.49 mm 152 mum -2.41 m 14.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.48 mm 159 mum -2.41 m 10.1 MeV 3.47 MeV 200 mum 200 mum Target eBrem + 2 1.09 mm 155 mum -2.41 m 1.71 MeV 585 keV 521 mum 721 mum Target eBrem + 3 662 mum -129 mum -2.41 m 353 keV 716 keV 761 mum 1.48 mm Target eBrem + 4 649 mum -120 mum -2.41 m 0 eV 353 keV 185 mum 1.67 mm Target eIoni + 5 649 mum -120 mum -2.41 m 0 eV 0 eV 0 fm 1.67 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 243, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 649 mum -120 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.84 mm 2.58 mm -2.41 m 0 eV 88 keV 2.96 mm 2.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 244, Parent ID = 243 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.84 mm 2.58 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.85 mm 2.59 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 242, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 649 mum -120 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.91 mm -2.17 cm -2.41 m 454 keV 0 eV 2.37 cm 2.37 cm Target compt + 2 -1.01 cm -2.32 cm -2.41 m 0 eV 88 keV 1.99 mm 2.57 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 246, Parent ID = 242 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.01 cm -2.32 cm -2.41 m 366 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.01 cm -2.32 cm -2.41 m 0 eV 366 keV 198 mum 198 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 245, Parent ID = 242 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.91 mm -2.17 cm -2.41 m 56.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.91 mm -2.17 cm -2.41 m 0 eV 56.8 keV 11.1 mum 11.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 241, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 662 mum -129 mum -2.41 m 645 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.15 cm 6.72 mm -2.42 m 393 keV 0 eV 2.01 cm 2.01 cm Target compt + 2 -1.17 cm 6.26 mm -2.42 m 0 eV 88 keV 779 mum 2.08 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 248, Parent ID = 241 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.17 cm 6.26 mm -2.42 m 305 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 cm 6.25 mm -2.42 m 0 eV 305 keV 152 mum 152 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 247, Parent ID = 241 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.15 cm 6.72 mm -2.42 m 252 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.15 cm 6.72 mm -2.42 m 0 eV 252 keV 115 mum 115 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 240, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 mm 155 mum -2.41 m 7.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 -289 mum 1.27 mm -2.4 m 0 eV 0 eV 2.29 mm 2.29 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 250, Parent ID = 240 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -289 mum 1.27 mm -2.4 m 1.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 -488 mum 1.34 mm -2.4 m 0 eV 1.93 MeV 1.52 mm 1.52 mm Target eIoni + 2 -488 mum 1.34 mm -2.4 m 0 eV 0 eV 0 fm 1.52 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 252, Parent ID = 250 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -488 mum 1.34 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 329 mum 1.61 mm -2.4 m 428 keV 0 eV 893 mum 893 mum Target compt + 2 2.3 mm 4.47 mm -2.4 m 197 keV 0 eV 3.58 mm 4.47 mm Target compt + 3 2.27 mm 4.42 mm -2.4 m 0 eV 88 keV 91.7 mum 4.56 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 255, Parent ID = 252 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.27 mm 4.42 mm -2.4 m 109 keV 0 eV 0 fm 0 fm Target initStep + 1 2.27 mm 4.42 mm -2.4 m 0 eV 109 keV 31.6 mum 31.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 254, Parent ID = 252 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.3 mm 4.47 mm -2.4 m 231 keV 0 eV 0 fm 0 fm Target initStep + 1 2.3 mm 4.48 mm -2.4 m 0 eV 231 keV 102 mum 102 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 253, Parent ID = 252 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 329 mum 1.61 mm -2.4 m 82.9 keV 0 eV 0 fm 0 fm Target initStep + 1 330 mum 1.61 mm -2.4 m 0 eV 82.9 keV 20.5 mum 20.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 251, Parent ID = 250 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -488 mum 1.34 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.11 mm 489 mum -2.41 m 192 keV 0 eV 2.87 mm 2.87 mm Target compt + 2 -2.25 mm 2.05 mm -2.41 m 0 eV 88 keV 1.79 mm 4.66 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 257, Parent ID = 251 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.25 mm 2.05 mm -2.41 m 104 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.25 mm 2.05 mm -2.41 m 0 eV 104 keV 29.4 mum 29.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 256, Parent ID = 251 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.11 mm 489 mum -2.41 m 319 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.12 mm 484 mum -2.41 m 0 eV 319 keV 162 mum 162 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 249, Parent ID = 240 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -289 mum 1.27 mm -2.4 m 4.87 MeV 0 eV 0 fm 0 fm Target initStep + 1 -549 mum 1.59 mm -2.4 m 0 eV 4.87 MeV 3.28 mm 3.28 mm Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 239, Parent ID = 238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.48 mm 159 mum -2.41 m 832 keV 0 eV 0 fm 0 fm Target initStep + 1 1.3 mm 221 mum -2.41 m 293 keV 0 eV 298 mum 298 mum Target compt + 2 4.73 mm 4.43 mm -2.41 m 0 eV 88 keV 5.47 mm 5.76 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 259, Parent ID = 239 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.73 mm 4.43 mm -2.41 m 205 keV 0 eV 0 fm 0 fm Target initStep + 1 4.74 mm 4.43 mm -2.41 m 0 eV 205 keV 85.1 mum 85.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 258, Parent ID = 239 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.3 mm 221 mum -2.41 m 539 keV 0 eV 0 fm 0 fm Target initStep + 1 1.3 mm 299 mum -2.41 m 343 keV 196 keV 184 mum 184 mum Target eBrem + 2 1.29 mm 293 mum -2.41 m 0 eV 343 keV 180 mum 365 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 237, Parent ID = 153 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.49 mm 152 mum -2.41 m 55.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.52 mm 138 mum -2.41 m 53.4 MeV 1.5 MeV 254 mum 254 mum Target eBrem + 2 1.62 mm 106 mum -2.41 m 45.4 MeV 1.04 MeV 687 mum 942 mum Target eBrem + 3 1.58 mm 85.1 mum -2.41 m 44.3 MeV 764 keV 458 mum 1.4 mm Target eBrem + 4 1.31 mm 167 mum -2.4 m 37 MeV 2.27 MeV 1.58 mm 2.98 mm Target eBrem + 5 1.22 mm 175 mum -2.4 m 34.6 MeV 865 keV 642 mum 3.62 mm Target eBrem + 6 1.11 mm 149 mum -2.4 m 25.1 MeV 352 keV 318 mum 3.94 mm Target eBrem + 7 967 mum 195 mum -2.4 m 22.8 MeV 503 keV 393 mum 4.33 mm Target eBrem + 8 893 mum 131 mum -2.4 m 16.7 MeV 246 keV 221 mum 4.55 mm Target eBrem + 9 795 mum 173 mum -2.4 m 11.9 MeV 3.02 MeV 1.41 mm 5.96 mm Target eBrem + 10 383 mum -151 mum -2.4 m 9.14 MeV 2.3 MeV 2.18 mm 8.14 mm Target eBrem + 11 252 mum -198 mum -2.4 m 8.5 MeV 170 keV 151 mum 8.29 mm Target eBrem + 12 250 mum -198 mum -2.4 m 8.5 MeV 1.89 keV 1.93 mum 8.3 mm Target Transportation + 13 -42.1 cm -5.73 cm -2.16 m 8.4 MeV 90.1 keV 49 cm 49.8 cm Tracker eIoni + 14 -90.8 cm -13.6 cm -1.77 m 8.27 MeV 122 keV 62.9 cm 1.13 m Tracker eIoni + 15 -1.2 m -21 cm -1.46 m 8.18 MeV 76.8 keV 43.2 cm 1.56 m Tracker eIoni + 16 -1.37 m -25.6 cm -1.27 m 7.97 MeV 39.5 keV 25.9 cm 1.82 m Tracker eIoni + 17 -2.4 m -48.1 cm -34 cm 7.72 MeV 256 keV 1.41 m 3.23 m Tracker Transportation + 18 -2.53 m -51.1 cm -21.2 cm 7.63 MeV 30.1 keV 18.4 cm 3.41 m World eIoni + 19 -2.91 m -59.6 cm 22 cm 7.52 MeV 108 keV 58.3 cm 4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 275, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.53 m -51.1 cm -21.2 cm 53.6 keV 0 eV 0 fm 0 fm World initStep + 1 -2.55 m -51.1 cm -22.3 cm 0 eV 53.6 keV 4.53 cm 4.53 cm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 274, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 m -25.6 cm -1.27 m 163 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.33 m -36.6 cm -1.17 m 0 eV 163 keV 31.8 cm 31.8 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 273, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.2 m -21 cm -1.46 m 13.4 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.2 m -20.9 cm -1.46 m 0 eV 13.4 keV 3.8 mm 3.8 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 272, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -90.8 cm -13.6 cm -1.77 m 8.9 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -90.7 cm -13.6 cm -1.77 m 0 eV 8.9 keV 1.85 mm 1.85 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 271, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -42.1 cm -5.73 cm -2.16 m 10.7 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -42.1 cm -5.61 cm -2.16 m 0 eV 10.7 keV 2.56 mm 2.56 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 270, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 252 mum -198 mum -2.4 m 474 keV 0 eV 0 fm 0 fm Target initStep + 1 251 mum -198 mum -2.4 m 474 keV 0 eV 1.87 mum 1.87 mum Target Transportation + 2 -2.4 m -53.2 cm -85.8 cm 474 keV 0 eV 2.9 m 2.9 m Tracker Transportation + 3 -2.91 m -64.5 cm -53 cm 474 keV 0 eV 61.7 cm 3.52 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 269, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 383 mum -151 mum -2.4 m 413 keV 0 eV 0 fm 0 fm Target initStep + 1 281 mum -182 mum -2.4 m 413 keV 0 eV 117 mum 117 mum Target Transportation + 2 -2.4 m -73.8 cm -1.28 m 413 keV 0 eV 2.75 m 2.75 m Tracker Transportation + 3 -2.91 m -89.4 cm -1.04 m 413 keV 0 eV 58.4 cm 3.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 268, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 795 mum 173 mum -2.4 m 1.78 MeV 0 eV 0 fm 0 fm Target initStep + 1 -247 mum -575 mum -2.4 m 1.78 MeV 0 eV 1.49 mm 1.49 mm Target Transportation + 2 -2.4 m -1.72 m -65.6 cm 1.78 MeV 0 eV 3.43 m 3.43 m Tracker Transportation + 3 -2.91 m -2.09 m -28.5 cm 1.78 MeV 0 eV 72.9 cm 4.16 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 267, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 893 mum 131 mum -2.4 m 5.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 160 mum -252 mum -2.4 m 5.89 MeV 0 eV 2.22 mm 2.22 mm Target Transportation + 2 -56.9 cm -29.7 cm -80 cm 5.89 MeV 0 eV 1.72 m 1.73 m Tracker Transportation + 3 -64 cm -33.4 cm -60 cm 5.89 MeV 0 eV 21.5 cm 1.94 m Chamber Transportation + 4 -85.3 cm -44.6 cm 0 fm 5.89 MeV 0 eV 64.6 cm 2.59 m Tracker Transportation + 5 -92.4 cm -48.3 cm 20 cm 5.89 MeV 0 eV 21.5 cm 2.8 m Chamber Transportation + 6 -1.14 m -59.4 cm 80 cm 5.89 MeV 0 eV 64.6 cm 3.45 m Tracker Transportation + 7 -1.21 m -63.1 cm 1 m 5.89 MeV 0 eV 21.5 cm 3.67 m Chamber Transportation + 8 -1.42 m -74.3 cm 1.6 m 5.89 MeV 0 eV 64.6 cm 4.31 m Tracker Transportation + 9 -1.49 m -78 cm 1.8 m 5.89 MeV 0 eV 21.5 cm 4.53 m Chamber Transportation + 10 -1.71 m -89.1 cm 2.4 m 5.89 MeV 0 eV 64.6 cm 5.17 m Tracker Transportation + 11 -1.89 m -98.6 cm 2.91 m 5.89 MeV 0 eV 54.9 cm 5.72 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 266, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 967 mum 195 mum -2.4 m 1.78 MeV 0 eV 0 fm 0 fm Target initStep + 1 102 mum -322 mum -2.4 m 1.78 MeV 0 eV 2.47 mm 2.47 mm Target Transportation + 2 -61.2 cm -36.6 cm -80 cm 1.78 MeV 0 eV 1.75 m 1.75 m Tracker Transportation + 3 -67.2 cm -40.2 cm -64.4 cm 1.78 MeV 0 eV 17.1 cm 1.93 m Chamber Transportation + 4 -91.8 cm -54.9 cm 0 fm 1.78 MeV 0 eV 70.5 cm 2.63 m Tracker Transportation + 5 -99.5 cm -59.5 cm 20 cm 1.78 MeV 0 eV 21.9 cm 2.85 m Chamber Transportation + 6 -1.22 m -73.2 cm 80 cm 1.78 MeV 0 eV 65.7 cm 3.51 m Tracker Transportation + 7 -1.3 m -77.8 cm 1 m 1.78 MeV 0 eV 21.9 cm 3.73 m Chamber Transportation + 8 -1.53 m -91.5 cm 1.6 m 1.78 MeV 0 eV 65.7 cm 4.38 m Tracker Transportation + 9 -1.61 m -96.1 cm 1.8 m 1.78 MeV 0 eV 21.9 cm 4.6 m Chamber Transportation + 10 -1.84 m -1.1 m 2.4 m 1.78 MeV 0 eV 65.7 cm 5.26 m Tracker Transportation + 11 -2.03 m -1.21 m 2.91 m 1.78 MeV 0 eV 55.8 cm 5.82 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 265, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.11 mm 149 mum -2.4 m 9.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -267 mum 213 mum -2.4 m 9.17 MeV 0 eV 2.96 mm 2.96 mm Target Transportation + 2 -1.24 mm 258 mum -2.4 m 5.18 MeV 0 eV 2.1 mm 5.06 mm Tracker compt + 3 -18.4 cm -9.99 cm -1.6 m 5.18 MeV 0 eV 82.5 cm 83 cm Tracker Transportation + 4 -23 cm -12.5 cm -1.4 m 5.18 MeV 0 eV 20.7 cm 1.04 m Chamber Transportation + 5 -36.7 cm -20 cm -80 cm 5.18 MeV 0 eV 62 cm 1.66 m Tracker Transportation + 6 -41.3 cm -22.5 cm -60 cm 5.18 MeV 0 eV 20.7 cm 1.86 m Chamber Transportation + 7 -55 cm -30.1 cm 0 fm 5.18 MeV 0 eV 62 cm 2.48 m Tracker Transportation + 8 -59.6 cm -32.6 cm 20 cm 5.18 MeV 0 eV 20.7 cm 2.69 m Chamber Transportation + 9 -73.3 cm -40.1 cm 80 cm 5.18 MeV 0 eV 62 cm 3.31 m Tracker Transportation + 10 -77.9 cm -42.6 cm 1 m 5.18 MeV 0 eV 20.7 cm 3.52 m Chamber Transportation + 11 -91.6 cm -50.1 cm 1.6 m 5.18 MeV 0 eV 62 cm 4.14 m Tracker Transportation + 12 -96.2 cm -52.6 cm 1.8 m 5.18 MeV 0 eV 20.7 cm 4.34 m Chamber Transportation + 13 -1.1 m -60.2 cm 2.4 m 5.18 MeV 0 eV 62 cm 4.96 m Tracker Transportation + 14 -1.22 m -66.6 cm 2.91 m 5.18 MeV 0 eV 52.7 cm 5.49 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 276, Parent ID = 265 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.24 mm 258 mum -2.4 m 3.98 MeV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.5 m 49.8 cm -58.9 cm 3.54 MeV 423 keV 2.49 m 2.49 m Tracker eIoni + 2 -2.17 m 53.6 cm -20.6 cm 3.36 MeV 131 keV 77.3 cm 3.26 m Tracker eIoni + 3 -2.4 m 61 cm -2.49 cm 3.31 MeV 47.7 keV 30.6 cm 3.57 m Tracker Transportation + 4 -2.91 m 78.4 cm 28.9 cm 3.21 MeV 98.7 keV 63 cm 4.2 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 278, Parent ID = 276 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.17 m 53.6 cm -20.6 cm 49.7 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -2.18 m 53.1 cm -21.8 cm 0 eV 49.7 keV 3.93 cm 3.93 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 277, Parent ID = 276 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.5 m 49.8 cm -58.9 cm 22.8 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.5 m 49.3 cm -58.9 cm 0 eV 22.8 keV 9.7 mm 9.7 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 264, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm 175 mum -2.4 m 1.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 228 mum -134 mum -2.4 m 655 keV 0 eV 2.34 mm 2.34 mm Target compt + 2 -1.69 mm 1.2 mm -2.4 m 655 keV 0 eV 2.48 mm 4.82 mm Target Transportation + 3 -2.4 m 1.67 m -1.37 m 655 keV 0 eV 3.1 m 3.1 m Tracker Transportation + 4 -2.91 m 2.02 m -1.16 m 655 keV 0 eV 65.8 cm 3.76 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 279, Parent ID = 264 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 228 mum -134 mum -2.4 m 869 keV 0 eV 0 fm 0 fm Target initStep + 1 223 mum -155 mum -2.4 m 0 eV 869 keV 609 mum 609 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 263, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 mm 167 mum -2.4 m 5.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.05 mm 456 mum -2.4 m 5.03 MeV 0 eV 3.57 mm 3.57 mm Target Transportation + 2 -5.82 cm 6.55 cm -1.6 m 5.03 MeV 0 eV 80.5 cm 80.8 cm Tracker Transportation + 3 -7.3 cm 8.18 cm -1.4 m 5.03 MeV 0 eV 20.1 cm 1.01 m Chamber Transportation + 4 -11.7 cm 13.1 cm -80 cm 5.03 MeV 0 eV 60.4 cm 1.61 m Tracker Transportation + 5 -13.2 cm 14.7 cm -60 cm 5.03 MeV 0 eV 20.1 cm 1.81 m Chamber Transportation + 6 -17.7 cm 19.6 cm 0.114 fm 5.03 MeV 0 eV 60.4 cm 2.42 m Tracker Transportation + 7 -19.1 cm 21.2 cm 20 cm 5.03 MeV 0 eV 20.1 cm 2.62 m Chamber Transportation + 8 -23.6 cm 26.1 cm 80 cm 5.03 MeV 0 eV 60.4 cm 3.22 m Tracker Transportation + 9 -25.1 cm 27.7 cm 1 m 5.03 MeV 0 eV 20.1 cm 3.42 m Chamber Transportation + 10 -29.5 cm 32.6 cm 1.6 m 5.03 MeV 0 eV 60.4 cm 4.03 m Tracker Transportation + 11 -31 cm 34.2 cm 1.8 m 5.03 MeV 0 eV 20.1 cm 4.23 m Chamber Transportation + 12 -35.4 cm 39.1 cm 2.4 m 5.03 MeV 0 eV 60.4 cm 4.83 m Tracker Transportation + 13 -39.2 cm 43.2 cm 2.91 m 5.03 MeV 0 eV 51.3 cm 5.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 262, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.58 mm 85.1 mum -2.41 m 341 keV 0 eV 0 fm 0 fm Target initStep + 1 1.32 mm -2.4 mum -2.4 m 0 eV 88 keV 3.99 mm 3.99 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 280, Parent ID = 262 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.32 mm -2.4 mum -2.4 m 253 keV 0 eV 0 fm 0 fm Target initStep + 1 1.32 mm 478 nm -2.4 m 0 eV 253 keV 116 mum 116 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 261, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.62 mm 106 mum -2.41 m 7.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.38 mm -52.1 mum -2.4 m 7.01 MeV 0 eV 5.55 mm 5.55 mm Target Transportation + 2 -3.35 cm -2.28 cm -1.6 m 7.01 MeV 0 eV 80.1 cm 80.7 cm Tracker Transportation + 3 -4.22 cm -2.85 cm -1.4 m 7.01 MeV 0 eV 20 cm 1.01 m Chamber Transportation + 4 -6.84 cm -4.55 cm -80 cm 7.01 MeV 0 eV 60.1 cm 1.61 m Tracker Transportation + 5 -7.71 cm -5.12 cm -60 cm 7.01 MeV 0 eV 20 cm 1.81 m Chamber Transportation + 6 -10.3 cm -6.83 cm 0 fm 7.01 MeV 0 eV 60.1 cm 2.41 m Tracker Transportation + 7 -11.2 cm -7.4 cm 20 cm 7.01 MeV 0 eV 20 cm 2.61 m Chamber Transportation + 8 -13.8 cm -9.1 cm 80 cm 7.01 MeV 0 eV 60.1 cm 3.21 m Tracker Transportation + 9 -14.7 cm -9.67 cm 1 m 7.01 MeV 0 eV 20 cm 3.41 m Chamber Transportation + 10 -17.3 cm -11.4 cm 1.6 m 7.01 MeV 0 eV 60.1 cm 4.01 m Tracker Transportation + 11 -18.2 cm -11.9 cm 1.8 m 7.01 MeV 0 eV 20 cm 4.21 m Chamber Transportation + 12 -20.8 cm -13.7 cm 2.4 m 7.01 MeV 0 eV 60.1 cm 4.81 m Tracker Transportation + 13 -23 cm -15.1 cm 2.91 m 7.01 MeV 0 eV 51.1 cm 5.32 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 260, Parent ID = 237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.52 mm 138 mum -2.41 m 879 keV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -243 mum -2.4 m 879 keV 0 eV 6.26 mm 6.26 mm Target Transportation + 2 6.85 cm -4.92 cm -1.6 m 879 keV 0 eV 80.4 cm 81.1 cm Tracker Transportation + 3 8.52 cm -6.14 cm -1.4 m 879 keV 0 eV 20.1 cm 1.01 m Chamber Transportation + 4 13.5 cm -9.81 cm -80 cm 879 keV 0 eV 60.3 cm 1.61 m Tracker Transportation + 5 15.2 cm -11 cm -60 cm 879 keV 0 eV 20.1 cm 1.82 m Chamber Transportation + 6 20.2 cm -14.7 cm 0 fm 879 keV 0 eV 60.3 cm 2.42 m Tracker Transportation + 7 21.8 cm -15.9 cm 20 cm 879 keV 0 eV 20.1 cm 2.62 m Chamber Transportation + 8 26.8 cm -19.6 cm 80 cm 879 keV 0 eV 60.3 cm 3.22 m Tracker Transportation + 9 28.5 cm -20.8 cm 1 m 879 keV 0 eV 20.1 cm 3.42 m Chamber Transportation + 10 33.5 cm -24.5 cm 1.6 m 879 keV 0 eV 60.3 cm 4.03 m Tracker Transportation + 11 35.1 cm -25.7 cm 1.8 m 879 keV 0 eV 20.1 cm 4.23 m Chamber Transportation + 12 40.1 cm -29.4 cm 2.4 m 879 keV 0 eV 60.3 cm 4.83 m Tracker Transportation + 13 44.3 cm -32.5 cm 2.91 m 879 keV 0 eV 51.3 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 152, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 237 mum 180 mum -2.42 m 1.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.87 mm -109 mum -2.4 m 1.07 MeV 0 eV 1.96 cm 1.96 cm Target Transportation + 2 6.88 cm -1.2 cm -1.6 m 1.07 MeV 0 eV 80.3 cm 82.2 cm Tracker Transportation + 3 8.55 cm -1.49 cm -1.4 m 1.07 MeV 0 eV 20.1 cm 1.02 m Chamber Transportation + 4 13.6 cm -2.38 cm -80 cm 1.07 MeV 0 eV 60.2 cm 1.63 m Tracker Transportation + 5 15.2 cm -2.68 cm -60 cm 1.07 MeV 0 eV 20.1 cm 1.83 m Chamber Transportation + 6 20.3 cm -3.57 cm 0 fm 1.07 MeV 0 eV 60.2 cm 2.43 m Tracker Transportation + 7 21.9 cm -3.86 cm 20 cm 1.07 MeV 0 eV 20.1 cm 2.63 m Chamber Transportation + 8 23.2 cm -4.09 cm 35.5 cm 247 keV 0 eV 15.5 cm 2.78 m Tracker compt + 9 -1.06 mm -12.7 cm 20 cm 247 keV 0 eV 29.3 cm 3.08 m Tracker Transportation + 10 -30.3 cm -23.7 cm 0 fm 247 keV 0 eV 37.8 cm 3.46 m Chamber Transportation + 11 -2.4 m -1.01 m -1.39 m 247 keV 0 eV 2.63 m 6.09 m Tracker Transportation + 12 -2.91 m -1.19 m -1.73 m 247 keV 0 eV 64 cm 6.73 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 281, Parent ID = 152 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 23.2 cm -4.09 cm 35.5 cm 822 keV 0 eV 0 fm 0 fm Tracker initStep + 1 33.9 cm -1.99 cm 80 cm 736 keV 85.9 keV 49.1 cm 49.1 cm Tracker Transportation + 2 29.3 cm 8.38 cm 87.3 cm 646 keV 89.7 keV 20.9 cm 70 cm Chamber msc + 3 32.6 cm 13.9 cm 95.1 cm 554 keV 92 keV 20.9 cm 90.9 cm Chamber msc + 4 32.6 cm 16.7 cm 92.3 cm 462 keV 48.9 keV 8.35 cm 99.2 cm Chamber eIoni + 5 28 cm 13 cm 91.7 cm 334 keV 128 keV 20.9 cm 1.2 m Chamber msc + 6 30.8 cm 16.5 cm 87.7 cm 244 keV 86.7 keV 13.4 cm 1.34 m Chamber eBrem + 7 29.6 cm 18.1 cm 87.2 cm 0 eV 244 keV 21.1 cm 1.55 m Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 283, Parent ID = 281 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 30.8 cm 16.5 cm 87.7 cm 3.74 keV 0 eV 0 fm 0 fm Chamber initStep + 1 30.5 cm 17 cm 87.7 cm 0 eV 1.15 keV 6.25 mm 6.25 mm Chamber phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 284, Parent ID = 283 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 30.5 cm 17 cm 87.7 cm 2.59 keV 0 eV 0 fm 0 fm Chamber initStep + 1 30.5 cm 17 cm 87.7 cm 0 eV 2.59 keV 143 mum 143 mum Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 282, Parent ID = 281 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 32.6 cm 16.7 cm 92.3 cm 43.5 keV 0 eV 0 fm 0 fm Chamber initStep + 1 32.6 cm 16.7 cm 92.2 cm 0 eV 43.5 keV 1.24 cm 1.24 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 151, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 169 mum 210 mum -2.42 m 6.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.03 mm -478 mum -2.4 m 0 eV 0 eV 1.95 cm 1.95 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 286, Parent ID = 151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.03 mm -478 mum -2.4 m 4.84 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -636 mum -2.4 m 649 keV 1.81 MeV 1.37 mm 1.37 mm Target eBrem + 2 2.01 mm -658 mum -2.4 m 0 eV 649 keV 427 mum 1.8 mm Target eIoni + 3 2.01 mm -658 mum -2.4 m 0 eV 0 eV 0 fm 1.8 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 289, Parent ID = 286 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.01 mm -658 mum -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.03 mm 3.79 mm -2.4 m 235 keV 0 eV 1.01 cm 1.01 cm Target compt + 2 -7.05 mm 3.72 mm -2.4 m 0 eV 88 keV 90.2 mum 1.02 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 291, Parent ID = 289 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.05 mm 3.72 mm -2.4 m 147 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.04 mm 3.72 mm -2.4 m 0 eV 147 keV 51.1 mum 51.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 290, Parent ID = 289 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.03 mm 3.79 mm -2.4 m 276 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.04 mm 3.79 mm -2.4 m 0 eV 276 keV 132 mum 132 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 288, Parent ID = 286 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.01 mm -658 mum -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.14 mm -1.22 mm -2.4 m 511 keV 0 eV 1.26 mm 1.26 mm Target Transportation + 2 2.4 m -1.18 m -2.39 m 511 keV 0 eV 2.67 m 2.67 m Tracker Transportation + 3 2.91 m -1.43 m -2.39 m 511 keV 0 eV 56.8 cm 3.24 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 287, Parent ID = 286 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mm -636 mum -2.4 m 2.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.01 mm -656 mum -2.4 m 2.38 MeV 0 eV 44.6 mum 44.6 mum Target Transportation + 2 -2.4 m -1.53 m -52.2 cm 2.38 MeV 0 eV 3.41 m 3.41 m Tracker Transportation + 3 -2.91 m -1.86 m -12.3 cm 2.38 MeV 0 eV 72.4 cm 4.14 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 285, Parent ID = 151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.03 mm -478 mum -2.4 m 267 keV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -472 mum -2.4 m 0 eV 267 keV 126 mum 126 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 150, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 135 mum 212 mum -2.42 m 379 keV 0 eV 0 fm 0 fm Target initStep + 1 2.29 mm -55.1 mum -2.4 m 257 keV 0 eV 1.75 cm 1.75 cm Target compt + 2 1.8 mm 1.16 mm -2.4 m 0 eV 88 keV 1.45 mm 1.9 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 293, Parent ID = 150 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.8 mm 1.16 mm -2.4 m 169 keV 0 eV 0 fm 0 fm Target initStep + 1 1.79 mm 1.16 mm -2.4 m 0 eV 169 keV 63.4 mum 63.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 292, Parent ID = 150 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.29 mm -55.1 mum -2.4 m 122 keV 0 eV 0 fm 0 fm Target initStep + 1 2.29 mm -56.7 mum -2.4 m 0 eV 122 keV 38 mum 38 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 149, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 70.6 mum 269 mum -2.42 m 903 keV 0 eV 0 fm 0 fm Target initStep + 1 1.54 mm -557 mum -2.4 m 903 keV 0 eV 2.24 cm 2.24 cm Target Transportation + 2 5.42 cm -3.01 cm -1.6 m 903 keV 0 eV 80.2 cm 82.5 cm Tracker Transportation + 3 6.73 cm -3.75 cm -1.4 m 903 keV 0 eV 20.1 cm 1.03 m Chamber Transportation + 4 10.7 cm -5.97 cm -80 cm 903 keV 0 eV 60.2 cm 1.63 m Tracker Transportation + 5 12 cm -6.71 cm -60 cm 903 keV 0 eV 20.1 cm 1.83 m Chamber Transportation + 6 15.9 cm -8.92 cm 0 fm 903 keV 0 eV 60.2 cm 2.43 m Tracker Transportation + 7 17.3 cm -9.66 cm 20 cm 903 keV 0 eV 20.1 cm 2.63 m Chamber Transportation + 8 21.2 cm -11.9 cm 80 cm 903 keV 0 eV 60.2 cm 3.23 m Tracker Transportation + 9 22.5 cm -12.6 cm 1 m 903 keV 0 eV 20.1 cm 3.43 m Chamber Transportation + 10 26.5 cm -14.8 cm 1.6 m 903 keV 0 eV 60.2 cm 4.03 m Tracker Transportation + 11 27.8 cm -15.6 cm 1.8 m 903 keV 0 eV 20.1 cm 4.23 m Chamber Transportation + 12 31.7 cm -17.8 cm 2.4 m 903 keV 0 eV 60.2 cm 4.84 m Tracker Transportation + 13 35.1 cm -19.7 cm 2.91 m 903 keV 0 eV 51.1 cm 5.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 148, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 20.3 mum 275 mum -2.42 m 926 keV 0 eV 0 fm 0 fm Target initStep + 1 416 mum 369 mum -2.42 m 638 keV 0 eV 6.84 mm 6.84 mm Target compt + 2 2.57 mm 50.5 mum -2.41 m 251 keV 0 eV 3.11 mm 9.95 mm Target compt + 3 -119 mum -1.37 mm -2.41 m 0 eV 88 keV 3.31 mm 1.33 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 296, Parent ID = 148 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -119 mum -1.37 mm -2.41 m 163 keV 0 eV 0 fm 0 fm Target initStep + 1 -117 mum -1.37 mm -2.41 m 0 eV 163 keV 59.6 mum 59.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 295, Parent ID = 148 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.57 mm 50.5 mum -2.41 m 387 keV 0 eV 0 fm 0 fm Target initStep + 1 2.58 mm 51.3 mum -2.41 m 0 eV 387 keV 213 mum 213 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 294, Parent ID = 148 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 416 mum 369 mum -2.42 m 287 keV 0 eV 0 fm 0 fm Target initStep + 1 410 mum 370 mum -2.42 m 0 eV 287 keV 140 mum 140 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 147, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 16.5 mum 274 mum -2.42 m 240 MeV 0 eV 0 fm 0 fm Target initStep + 1 760 mum 522 mum -2.41 m 0 eV 0 eV 1.44 cm 1.44 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 298, Parent ID = 147 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 760 mum 522 mum -2.41 m 176 MeV 0 eV 0 fm 0 fm Target initStep + 1 787 mum 524 mum -2.41 m 175 MeV 394 keV 362 mum 362 mum Target eBrem + 2 939 mum 465 mum -2.41 m 143 MeV 6.6 MeV 1.97 mm 2.33 mm Target eBrem + 3 950 mum 464 mum -2.41 m 118 MeV 84.5 keV 78.4 mum 2.41 mm Target eBrem + 4 957 mum 463 mum -2.41 m 118 MeV 46.9 keV 46.3 mum 2.46 mm Target eBrem + 5 1.2 mm 552 mum -2.41 m 113 MeV 1.87 MeV 1.6 mm 4.06 mm Target eBrem + 6 1.21 mm 584 mum -2.4 m 108 MeV 391 keV 363 mum 4.42 mm Target eBrem + 7 1.26 mm 622 mum -2.4 m 105 MeV 1.59 MeV 1.08 mm 5.5 mm Target eBrem + 8 1.25 mm 624 mum -2.4 m 104 MeV 215 keV 158 mum 5.66 mm Target eBrem + 9 1.21 mm 643 mum -2.4 m 44 MeV 547 keV 424 mum 6.09 mm Target eBrem + 10 1.21 mm 650 mum -2.4 m 39.8 MeV 3.7 MeV 410 mum 6.5 mm Target eBrem + 11 1.2 mm 649 mum -2.4 m 38.8 MeV 67.4 keV 67.3 mum 6.56 mm Target eBrem + 12 683 mum 671 mum -2.4 m 35.7 MeV 3.17 MeV 2.7 mm 9.26 mm Target Transportation + 13 -9.47 cm 7.03 cm -2.22 m 35.6 MeV 47.7 keV 21.9 cm 22.9 cm Tracker eIoni + 14 -18.2 cm 13.1 cm -2.05 m 35.5 MeV 38.9 keV 19.8 cm 42.6 cm Tracker eIoni + 15 -48.9 cm 32.7 cm -1.48 m 35.4 MeV 146 keV 67.6 cm 1.1 m Tracker eIoni + 16 -64.2 cm 42.6 cm -1.2 m 35.3 MeV 77.6 keV 33.3 cm 1.44 m Tracker eIoni + 17 -1.43 m 94.6 cm 27.6 cm 34.9 MeV 353 keV 1.75 m 3.19 m Tracker eIoni + 18 -1.44 m 96.1 cm 30.9 cm 34.9 MeV 8.51 keV 3.88 cm 3.23 m Tracker eIoni + 19 -1.91 m 1.39 m 1.3 m 27.5 MeV 235 keV 1.18 m 4.4 m Tracker eBrem + 20 -2.14 m 1.6 m 1.81 m 27.3 MeV 126 keV 59.7 cm 5 m Tracker eIoni + 21 -2.4 m 1.81 m 2.31 m 27.2 MeV 117 keV 60.2 cm 5.6 m Tracker Transportation + 22 -2.72 m 2.06 m 2.91 m 27.1 MeV 149 keV 72.4 cm 6.33 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 317, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.14 m 1.6 m 1.81 m 18.6 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -2.14 m 1.59 m 1.81 m 0 eV 18.6 keV 6.72 mm 6.72 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 316, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.91 m 1.39 m 1.3 m 7.16 MeV 0 eV 0 fm 0 fm Tracker initStep + 1 -2.4 m 1.77 m 2.26 m 7.16 MeV 0 eV 1.14 m 1.14 m Tracker Transportation + 2 -2.74 m 2.03 m 2.91 m 7.16 MeV 0 eV 77.7 cm 1.92 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 315, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.44 m 96.1 cm 30.9 cm 14.4 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.44 m 96.2 cm 30.9 cm 0 eV 14.4 keV 4.32 mm 4.32 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 314, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.43 m 94.6 cm 27.6 cm 10.5 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.43 m 94.6 cm 27.6 cm 0 eV 10.5 keV 2.48 mm 2.48 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 313, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -64.2 cm 42.6 cm -1.2 m 28.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -63.7 cm 42.8 cm -1.2 m 0 eV 28.1 keV 1.42 cm 1.42 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 312, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -48.9 cm 32.7 cm -1.48 m 9.37 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -48.8 cm 32.7 cm -1.48 m 0 eV 9.37 keV 2.02 mm 2.02 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 311, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -18.2 cm 13.1 cm -2.05 m 13.5 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -18 cm 13 cm -2.05 m 0 eV 13.5 keV 3.82 mm 3.82 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 310, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.47 cm 7.03 cm -2.22 m 30.2 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -8.88 cm 7.49 cm -2.21 m 0 eV 30.2 keV 1.61 cm 1.61 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 309, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 mm 649 mum -2.4 m 926 keV 0 eV 0 fm 0 fm Target initStep + 1 657 mum 682 mum -2.4 m 926 keV 0 eV 2.62 mm 2.62 mm Target Transportation + 2 -16.8 cm 1.1 cm -1.6 m 926 keV 0 eV 81.8 cm 82 cm Tracker Transportation + 3 -21 cm 1.35 cm -1.4 m 926 keV 0 eV 20.4 cm 1.02 m Chamber Transportation + 4 -33.6 cm 2.12 cm -80 cm 926 keV 0 eV 61.3 cm 1.64 m Tracker Transportation + 5 -37.9 cm 2.38 cm -60 cm 926 keV 0 eV 20.4 cm 1.84 m Chamber Transportation + 6 -50.5 cm 3.15 cm 0 fm 926 keV 0 eV 61.3 cm 2.46 m Tracker Transportation + 7 -54.7 cm 3.41 cm 20 cm 926 keV 0 eV 20.4 cm 2.66 m Chamber Transportation + 8 -67.3 cm 4.18 cm 80 cm 926 keV 0 eV 61.3 cm 3.27 m Tracker Transportation + 9 -71.6 cm 4.44 cm 1 m 926 keV 0 eV 20.4 cm 3.48 m Chamber Transportation + 10 -84.2 cm 5.21 cm 1.6 m 926 keV 0 eV 61.3 cm 4.09 m Tracker Transportation + 11 -88.4 cm 5.46 cm 1.8 m 926 keV 0 eV 20.4 cm 4.3 m Chamber Transportation + 12 -1.01 m 6.23 cm 2.4 m 926 keV 0 eV 61.3 cm 4.91 m Tracker Transportation + 13 -1.12 m 6.89 cm 2.91 m 926 keV 0 eV 52.1 cm 5.43 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 308, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm 650 mum -2.4 m 506 keV 0 eV 0 fm 0 fm Target initStep + 1 715 mum 574 mum -2.4 m 506 keV 0 eV 2.68 mm 2.68 mm Target Transportation + 2 -15 cm -2.26 cm -1.6 m 506 keV 0 eV 81.4 cm 81.7 cm Tracker Transportation + 3 -18.8 cm -2.83 cm -1.4 m 506 keV 0 eV 20.4 cm 1.02 m Chamber Transportation + 4 -30.1 cm -4.57 cm -80 cm 506 keV 0 eV 61.1 cm 1.63 m Tracker Transportation + 5 -33.9 cm -5.15 cm -60 cm 506 keV 0 eV 20.4 cm 1.84 m Chamber Transportation + 6 -45.2 cm -6.88 cm 0 fm 506 keV 0 eV 61.1 cm 2.45 m Tracker Transportation + 7 -48.9 cm -7.46 cm 20 cm 506 keV 0 eV 20.4 cm 2.65 m Chamber Transportation + 8 -60.2 cm -9.2 cm 80 cm 506 keV 0 eV 61.1 cm 3.26 m Tracker Transportation + 9 -64 cm -9.77 cm 1 m 506 keV 0 eV 20.4 cm 3.46 m Chamber Transportation + 10 -75.3 cm -11.5 cm 1.6 m 506 keV 0 eV 61.1 cm 4.07 m Tracker Transportation + 11 -79.1 cm -12.1 cm 1.8 m 506 keV 0 eV 20.4 cm 4.28 m Chamber Transportation + 12 -90.4 cm -13.8 cm 2.4 m 506 keV 0 eV 61.1 cm 4.89 m Tracker Transportation + 13 -1 m -15.3 cm 2.91 m 506 keV 0 eV 51.9 cm 5.41 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 307, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm 643 mum -2.4 m 59.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.16 mm 637 mum -2.4 m 0 eV 0 eV 628 mum 628 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 319, Parent ID = 307 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm 637 mum -2.4 m 2.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.61 mm 980 mum -2.4 m 467 keV 647 keV 778 mum 778 mum Target eBrem + 2 1.61 mm 989 mum -2.4 m 0 eV 467 keV 275 mum 1.05 mm Target eIoni + 3 1.61 mm 989 mum -2.4 m 0 eV 0 eV 0 fm 1.05 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 322, Parent ID = 319 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.61 mm 989 mum -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.51 mm -710 mum -2.4 m 511 keV 0 eV 3 mm 3 mm Target Transportation + 2 -14.4 cm -2.4 m 1.09 m 511 keV 0 eV 4.24 m 4.24 m Tracker Transportation + 3 -17.4 cm -2.91 m 1.83 m 511 keV 0 eV 90.1 cm 5.14 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 321, Parent ID = 319 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.61 mm 989 mum -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.64 mm 1.47 mm -2.4 m 0 eV 88 keV 848 mum 848 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 323, Parent ID = 321 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.64 mm 1.47 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.63 mm 1.47 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 320, Parent ID = 319 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.61 mm 980 mum -2.4 m 900 keV 0 eV 0 fm 0 fm Target initStep + 1 1.58 mm 4.83 mm -2.41 m 340 keV 0 eV 1.1 cm 1.1 cm Target compt + 2 2.2 mm 4.24 mm -2.41 m 0 eV 88 keV 905 mum 1.19 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 325, Parent ID = 320 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.2 mm 4.24 mm -2.41 m 252 keV 0 eV 0 fm 0 fm Target initStep + 1 2.2 mm 4.23 mm -2.41 m 0 eV 252 keV 115 mum 115 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 324, Parent ID = 320 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.58 mm 4.83 mm -2.41 m 561 keV 0 eV 0 fm 0 fm Target initStep + 1 1.57 mm 4.84 mm -2.41 m 0 eV 561 keV 351 mum 351 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 318, Parent ID = 307 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm 637 mum -2.4 m 56.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.13 mm 621 mum -2.4 m 53.3 MeV 276 keV 288 mum 288 mum Target eBrem + 2 777 mum 633 mum -2.4 m 47 MeV 6.24 MeV 2.19 mm 2.48 mm Target Transportation + 3 1.07 cm 3.92 cm -2.24 m 47 MeV 29.9 keV 16.2 cm 16.5 cm Tracker eIoni + 4 2.26 cm 8.63 cm -2.05 m 46.9 MeV 37.6 keV 19.8 cm 36.3 cm Tracker eIoni + 5 4.95 cm 19.9 cm -1.6 m 46.8 MeV 95.3 keV 46.5 cm 82.8 cm Tracker Transportation + 6 6.09 cm 24 cm -1.42 m 46.7 MeV 116 keV 18.5 cm 1.01 m Chamber Transportation + 7 9.1 cm 36 cm -95 cm 46.5 MeV 107 keV 48.6 cm 1.5 m Tracker eIoni + 8 10.1 cm 39.7 cm -80 cm 46.5 MeV 34.6 keV 15.5 cm 1.65 m Tracker Transportation + 9 11.3 cm 44.8 cm -60 cm 46.4 MeV 122 keV 20.7 cm 1.86 m Chamber Transportation + 10 14 cm 60.1 cm 0 fm 46.3 MeV 137 keV 62 cm 2.48 m Tracker Transportation + 11 15.2 cm 64.7 cm 20 cm 46.1 MeV 136 keV 20.6 cm 2.69 m Chamber Transportation + 12 18.1 cm 75.9 cm 73.5 cm 45.7 MeV 115 keV 54.7 cm 3.23 m Tracker eBrem + 13 18.4 cm 77.3 cm 80 cm 45.7 MeV 7.68 keV 6.67 cm 3.3 m Tracker Transportation + 14 19.4 cm 81.7 cm 1 m 45.6 MeV 143 keV 20.5 cm 3.51 m Chamber Transportation + 15 20 cm 84.7 cm 1.17 m 45.5 MeV 32.7 keV 16.9 cm 3.67 m Tracker eIoni + 16 20.2 cm 86.9 cm 1.29 m 45.4 MeV 22.2 keV 12.2 cm 3.8 m Tracker eIoni + 17 20.8 cm 92.7 cm 1.6 m 45.4 MeV 69 keV 31.9 cm 4.12 m Tracker Transportation + 18 21.4 cm 96.4 cm 1.8 m 45.2 MeV 163 keV 20.4 cm 4.32 m Chamber Transportation + 19 21.7 cm 97.4 cm 1.85 m 45.2 MeV 9.42 keV 5.27 cm 4.37 m Tracker eIoni + 20 25 cm 1.08 m 2.4 m 45.1 MeV 115 keV 55.9 cm 4.93 m Tracker Transportation + 21 27.5 cm 1.17 m 2.91 m 45 MeV 113 keV 51.9 cm 5.45 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 333, Parent ID = 318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 21.7 cm 97.4 cm 1.85 m 14.9 keV 0 eV 0 fm 0 fm Tracker initStep + 1 21.8 cm 97.2 cm 1.85 m 0 eV 14.9 keV 4.56 mm 4.56 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 332, Parent ID = 318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 20.2 cm 86.9 cm 1.29 m 60.4 keV 0 eV 0 fm 0 fm Tracker initStep + 1 18.2 cm 85.2 cm 1.3 m 0 eV 60.4 keV 5.61 cm 5.61 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 331, Parent ID = 318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 20 cm 84.7 cm 1.17 m 30.5 keV 0 eV 0 fm 0 fm Tracker initStep + 1 20.8 cm 84.7 cm 1.17 m 0 eV 30.5 keV 1.63 cm 1.63 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 330, Parent ID = 318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 18.1 cm 75.9 cm 73.5 cm 271 keV 0 eV 0 fm 0 fm Tracker initStep + 1 18.5 cm 77.5 cm 80 cm 271 keV 0 eV 6.72 cm 6.72 cm Tracker Transportation + 2 19.5 cm 82.6 cm 1 m 271 keV 0 eV 20.7 cm 27.4 cm Chamber Transportation + 3 22.4 cm 97.8 cm 1.6 m 271 keV 0 eV 62 cm 89.3 cm Tracker Transportation + 4 23.4 cm 1.03 m 1.8 m 271 keV 0 eV 20.7 cm 1.1 m Chamber Transportation + 5 26.4 cm 1.18 m 2.4 m 271 keV 0 eV 62 cm 1.72 m Tracker Transportation + 6 28.9 cm 1.31 m 2.91 m 271 keV 0 eV 52.7 cm 2.25 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 329, Parent ID = 318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.1 cm 36 cm -95 cm 58.4 keV 0 eV 0 fm 0 fm Tracker initStep + 1 9.37 cm 33.7 cm -93.9 cm 0 eV 58.4 keV 5.3 cm 5.3 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 328, Parent ID = 318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.26 cm 8.63 cm -2.05 m 10.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 2.37 cm 8.62 cm -2.05 m 0 eV 10.1 keV 2.3 mm 2.3 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 327, Parent ID = 318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 cm 3.92 cm -2.24 m 19 keV 0 eV 0 fm 0 fm Tracker initStep + 1 1.38 cm 4.09 cm -2.24 m 0 eV 19 keV 6.99 mm 6.99 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 326, Parent ID = 318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.13 mm 621 mum -2.4 m 3 MeV 0 eV 0 fm 0 fm Target initStep + 1 795 mum 601 mum -2.4 m 3 MeV 0 eV 2.15 mm 2.15 mm Target Transportation + 2 -12.5 cm -6.85 mm -1.6 m 3 MeV 0 eV 81 cm 81.2 cm Tracker Transportation + 3 -15.6 cm -8.71 mm -1.4 m 3 MeV 0 eV 20.2 cm 1.01 m Chamber Transportation + 4 -25 cm -1.43 cm -80 cm 3 MeV 0 eV 60.7 cm 1.62 m Tracker Transportation + 5 -28.1 cm -1.62 cm -60 cm 3 MeV 0 eV 20.2 cm 1.82 m Chamber Transportation + 6 -37.5 cm -2.17 cm 0 fm 3 MeV 0 eV 60.7 cm 2.43 m Tracker Transportation + 7 -40.6 cm -2.36 cm 20 cm 3 MeV 0 eV 20.2 cm 2.63 m Chamber Transportation + 8 -50 cm -2.92 cm 80 cm 3 MeV 0 eV 60.7 cm 3.24 m Tracker Transportation + 9 -53.2 cm -3.11 cm 1 m 3 MeV 0 eV 20.2 cm 3.44 m Chamber Transportation + 10 -62.6 cm -3.66 cm 1.6 m 3 MeV 0 eV 60.7 cm 4.05 m Tracker Transportation + 11 -65.7 cm -3.85 cm 1.8 m 3 MeV 0 eV 20.2 cm 4.25 m Chamber Transportation + 12 -75.1 cm -4.41 cm 2.4 m 3 MeV 0 eV 60.7 cm 4.86 m Tracker Transportation + 13 -83.1 cm -4.88 cm 2.91 m 3 MeV 0 eV 51.6 cm 5.38 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 306, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.25 mm 624 mum -2.4 m 501 keV 0 eV 0 fm 0 fm Target initStep + 1 1.03 mm 719 mum -2.4 m 501 keV 0 eV 3.47 mm 3.47 mm Target Transportation + 2 -5.11 cm 2.28 cm -1.6 m 501 keV 0 eV 80.2 cm 80.5 cm Tracker Transportation + 3 -6.42 cm 2.83 cm -1.4 m 501 keV 0 eV 20.1 cm 1.01 m Chamber Transportation + 4 -10.3 cm 4.48 cm -80 cm 501 keV 0 eV 60.2 cm 1.61 m Tracker Transportation + 5 -11.6 cm 5.03 cm -60 cm 501 keV 0 eV 20.1 cm 1.81 m Chamber Transportation + 6 -15.5 cm 6.68 cm 0 fm 501 keV 0 eV 60.2 cm 2.41 m Tracker Transportation + 7 -16.9 cm 7.23 cm 20 cm 501 keV 0 eV 20.1 cm 2.61 m Chamber Transportation + 8 -20.8 cm 8.89 cm 80 cm 501 keV 0 eV 60.2 cm 3.21 m Tracker Transportation + 9 -22.1 cm 9.44 cm 1 m 501 keV 0 eV 20.1 cm 3.41 m Chamber Transportation + 10 -26 cm 11.1 cm 1.6 m 501 keV 0 eV 60.2 cm 4.01 m Tracker Transportation + 11 -27.3 cm 11.6 cm 1.8 m 501 keV 0 eV 20.1 cm 4.21 m Chamber Transportation + 12 -31.2 cm 13.3 cm 2.4 m 501 keV 0 eV 60.2 cm 4.82 m Tracker Transportation + 13 -34.5 cm 14.7 cm 2.91 m 501 keV 0 eV 51.1 cm 5.33 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 305, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.26 mm 622 mum -2.4 m 1.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 972 mum 730 mum -2.4 m 1.53 MeV 0 eV 3.63 mm 3.63 mm Target Transportation + 2 -6.35 cm 2.47 cm -1.6 m 1.53 MeV 0 eV 80.3 cm 80.7 cm Tracker Transportation + 3 -7.96 cm 3.07 cm -1.4 m 1.53 MeV 0 eV 20.1 cm 1.01 m Chamber Transportation + 4 -12.8 cm 4.87 cm -80 cm 1.53 MeV 0 eV 60.2 cm 1.61 m Tracker Transportation + 5 -14.4 cm 5.47 cm -60 cm 1.53 MeV 0 eV 20.1 cm 1.81 m Chamber Transportation + 6 -19.2 cm 7.26 cm 0 fm 1.53 MeV 0 eV 60.2 cm 2.41 m Tracker Transportation + 7 -20.9 cm 7.86 cm 20 cm 1.53 MeV 0 eV 20.1 cm 2.61 m Chamber Transportation + 8 -25.7 cm 9.66 cm 80 cm 1.53 MeV 0 eV 60.2 cm 3.22 m Tracker Transportation + 9 -27.3 cm 10.3 cm 1 m 1.53 MeV 0 eV 20.1 cm 3.42 m Chamber Transportation + 10 -32.1 cm 12.1 cm 1.6 m 1.53 MeV 0 eV 60.2 cm 4.02 m Tracker Transportation + 11 -33.8 cm 12.7 cm 1.8 m 1.53 MeV 0 eV 20.1 cm 4.22 m Chamber Transportation + 12 -38.6 cm 14.5 cm 2.4 m 1.53 MeV 0 eV 60.2 cm 4.82 m Tracker Transportation + 13 -42.7 cm 16 cm 2.91 m 1.53 MeV 0 eV 51.2 cm 5.33 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 304, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm 584 mum -2.4 m 4.35 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.3 mm 801 mum -2.4 m 4.35 MeV 0 eV 4.71 mm 4.71 mm Target Transportation + 2 1.79 cm 3.78 cm -1.6 m 4.35 MeV 0 eV 80.1 cm 80.6 cm Tracker Transportation + 3 2.2 cm 4.7 cm -1.4 m 4.35 MeV 0 eV 20 cm 1.01 m Chamber Transportation + 4 3.45 cm 7.48 cm -80 cm 4.35 MeV 0 eV 60.1 cm 1.61 m Tracker Transportation + 5 3.86 cm 8.4 cm -60 cm 4.35 MeV 0 eV 20 cm 1.81 m Chamber Transportation + 6 5.11 cm 11.2 cm 0 fm 4.35 MeV 0 eV 60.1 cm 2.41 m Tracker Transportation + 7 5.52 cm 12.1 cm 20 cm 4.35 MeV 0 eV 20 cm 2.61 m Chamber Transportation + 8 6.77 cm 14.9 cm 80 cm 4.35 MeV 0 eV 60.1 cm 3.21 m Tracker Transportation + 9 7.18 cm 15.8 cm 1 m 4.35 MeV 0 eV 20 cm 3.41 m Chamber Transportation + 10 8.43 cm 18.6 cm 1.6 m 4.35 MeV 0 eV 60.1 cm 4.01 m Tracker Transportation + 11 8.84 cm 19.5 cm 1.8 m 4.35 MeV 0 eV 20 cm 4.21 m Chamber Transportation + 12 10.1 cm 22.3 cm 2.4 m 4.35 MeV 0 eV 60.1 cm 4.81 m Tracker Transportation + 13 11.1 cm 24.6 cm 2.91 m 4.35 MeV 0 eV 51.1 cm 5.32 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 303, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 mm 552 mum -2.41 m 3.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.24 mm 908 mum -2.4 m 3.07 MeV 0 eV 5.07 mm 5.07 mm Target Transportation + 2 7.72 mm 5.71 cm -1.6 m 3.07 MeV 0 eV 80.2 cm 80.7 cm Tracker Transportation + 3 9.34 mm 7.12 cm -1.4 m 3.07 MeV 0 eV 20 cm 1.01 m Chamber Transportation + 4 1.42 cm 11.3 cm -80 cm 3.07 MeV 0 eV 60.1 cm 1.61 m Tracker Transportation + 5 1.58 cm 12.7 cm -60 cm 3.07 MeV 0 eV 20 cm 1.81 m Chamber Transportation + 6 2.07 cm 17 cm 0 fm 3.07 MeV 0 eV 60.1 cm 2.41 m Tracker Transportation + 7 2.23 cm 18.4 cm 20 cm 3.07 MeV 0 eV 20 cm 2.61 m Chamber Transportation + 8 2.72 cm 22.6 cm 80 cm 3.07 MeV 0 eV 60.1 cm 3.21 m Tracker Transportation + 9 2.88 cm 24 cm 1 m 3.07 MeV 0 eV 20 cm 3.41 m Chamber Transportation + 10 3.36 cm 28.2 cm 1.6 m 3.07 MeV 0 eV 60.1 cm 4.02 m Tracker Transportation + 11 3.53 cm 29.6 cm 1.8 m 3.07 MeV 0 eV 20 cm 4.22 m Chamber Transportation + 12 4.01 cm 33.8 cm 2.4 m 3.07 MeV 0 eV 60.1 cm 4.82 m Tracker Transportation + 13 4.43 cm 37.4 cm 2.91 m 3.07 MeV 0 eV 51.1 cm 5.33 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 302, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 957 mum 463 mum -2.41 m 531 keV 0 eV 0 fm 0 fm Target initStep + 1 1.62 mm 488 mum -2.4 m 0 eV 88 keV 4.05 mm 4.05 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 334, Parent ID = 302 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.62 mm 488 mum -2.4 m 443 keV 0 eV 0 fm 0 fm Target initStep + 1 1.63 mm 493 mum -2.4 m 0 eV 443 keV 257 mum 257 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 301, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 950 mum 464 mum -2.41 m 24.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.03 mm 460 mum -2.41 m 0 eV 0 eV 475 mum 475 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 336, Parent ID = 301 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.03 mm 460 mum -2.41 m 8.56 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.49 mm 554 mum -2.41 m 5.6 MeV 1.58 MeV 942 mum 942 mum Target eBrem + 2 1.46 mm 632 mum -2.41 m 2.09 MeV 118 keV 96.1 mum 1.04 mm Target eBrem + 3 1.44 mm 1.04 mm -2.41 m 1.53 MeV 561 keV 518 mum 1.56 mm Target eBrem + 4 1.33 mm 1.04 mm -2.41 m 0 eV 1.53 MeV 1.19 mm 2.75 mm Target eIoni + 5 1.33 mm 1.04 mm -2.41 m 0 eV 0 eV 0 fm 2.75 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 340, Parent ID = 336 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.33 mm 1.04 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.5 mm 809 mum -2.4 m 459 keV 0 eV 572 mum 572 mum Target compt + 2 1.65 mm 499 mum -2.4 m 0 eV 88 keV 413 mum 984 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 342, Parent ID = 340 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.65 mm 499 mum -2.4 m 371 keV 0 eV 0 fm 0 fm Target initStep + 1 1.66 mm 489 mum -2.4 m 0 eV 371 keV 201 mum 201 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 341, Parent ID = 340 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.5 mm 809 mum -2.4 m 51.9 keV 0 eV 0 fm 0 fm Target initStep + 1 1.5 mm 810 mum -2.4 m 0 eV 51.9 keV 9.52 mum 9.52 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 339, Parent ID = 336 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.33 mm 1.04 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -189 mum 3.04 mm -2.41 m 0 eV 88 keV 5.02 mm 5.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 343, Parent ID = 339 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -189 mum 3.04 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -181 mum 3.05 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 338, Parent ID = 336 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.46 mm 632 mum -2.41 m 3.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.25 mm 2.52 mm -2.4 m 2.42 MeV 0 eV 4.33 mm 4.33 mm Target compt + 2 -1.59 mm 2.6 mm -2.4 m 898 keV 0 eV 594 mum 4.92 mm Target compt + 3 -1.24 mm 2.05 mm -2.4 m 898 keV 0 eV 2.17 mm 7.1 mm Target Transportation + 4 13.5 cm -21.2 cm -1.6 m 898 keV 0 eV 83.9 cm 84.6 cm Tracker Transportation + 5 15.3 cm -24 cm -1.5 m 898 keV 0 eV 10.9 cm 95.5 cm Chamber Transportation + 6 27.1 cm -42.7 cm -80 cm 898 keV 0 eV 73.1 cm 1.69 m Tracker Transportation + 7 30.5 cm -48 cm -60 cm 898 keV 0 eV 21 cm 1.9 m Chamber Transportation + 8 40.7 cm -64.1 cm -0.114 fm 898 keV 0 eV 63 cm 2.53 m Tracker Transportation + 9 44.2 cm -69.4 cm 20 cm 898 keV 0 eV 21 cm 2.73 m Chamber Transportation + 10 54.4 cm -85.5 cm 80 cm 898 keV 0 eV 63 cm 3.36 m Tracker Transportation + 11 57.8 cm -90.9 cm 1 m 898 keV 0 eV 21 cm 3.57 m Chamber Transportation + 12 68 cm -1.07 m 1.6 m 898 keV 0 eV 63 cm 4.2 m Tracker Transportation + 13 71.4 cm -1.12 m 1.8 m 898 keV 0 eV 21 cm 4.41 m Chamber Transportation + 14 81.6 cm -1.28 m 2.4 m 898 keV 0 eV 63 cm 5.04 m Tracker Transportation + 15 90.3 cm -1.42 m 2.91 m 898 keV 0 eV 53.5 cm 5.58 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 345, Parent ID = 338 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.59 mm 2.6 mm -2.4 m 1.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.48 mm 2.85 mm -2.4 m 622 keV 560 keV 586 mum 586 mum Target eBrem + 2 -1.48 mm 2.85 mm -2.4 m 0 eV 622 keV 401 mum 988 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 346, Parent ID = 345 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.48 mm 2.85 mm -2.4 m 343 keV 0 eV 0 fm 0 fm Target initStep + 1 540 mum 2.99 mm -2.41 m 0 eV 88 keV 5.36 mm 5.36 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 347, Parent ID = 346 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 540 mum 2.99 mm -2.41 m 255 keV 0 eV 0 fm 0 fm Target initStep + 1 548 mum 2.99 mm -2.41 m 0 eV 255 keV 118 mum 118 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 344, Parent ID = 338 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.25 mm 2.52 mm -2.4 m 964 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.28 mm 2.57 mm -2.4 m 0 eV 964 keV 690 mum 690 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 337, Parent ID = 336 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.49 mm 554 mum -2.41 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.32 mm 7.89 mm -2.4 m 1.38 MeV 0 eV 9.52 mm 9.52 mm Target Transportation + 2 -92 cm 2.4 m -64.3 cm 1.38 MeV 0 eV 3.11 m 3.12 m Tracker Transportation + 3 -1.12 m 2.91 m -26.8 cm 1.38 MeV 0 eV 66.2 cm 3.78 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 335, Parent ID = 301 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.03 mm 460 mum -2.41 m 14.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.01 mm 1.8 mm -2.4 m 6.55 MeV 4.22 MeV 2.56 mm 2.56 mm Target eBrem + 2 2.09 mm 1.75 mm -2.4 m 2.11 MeV 133 keV 105 mum 2.67 mm Target eBrem + 3 2.16 mm 1.17 mm -2.4 m 849 keV 1.26 MeV 1.06 mm 3.72 mm Target eBrem + 4 2.19 mm 1.21 mm -2.4 m 0 eV 849 keV 592 mum 4.32 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 349, Parent ID = 335 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 mm 1.75 mm -2.4 m 4.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.38 mm -2.48 mm -2.4 m 4.31 MeV 0 eV 9.44 mm 9.44 mm Target Transportation + 2 2.4 m -1.39 m -1.01 m 4.31 MeV 0 eV 3.09 m 3.1 m Tracker Transportation + 3 2.91 m -1.68 m -70.8 cm 4.31 MeV 0 eV 66 cm 3.76 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 348, Parent ID = 335 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.01 mm 1.8 mm -2.4 m 4.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.03 cm -1.63 mm -2.4 m 4.05 MeV 0 eV 9.94 mm 9.94 mm Target Transportation + 2 2.4 m -98.9 cm -1.16 m 4.05 MeV 0 eV 2.87 m 2.88 m Tracker Transportation + 3 2.91 m -1.2 m -90.1 cm 4.05 MeV 0 eV 61.2 cm 3.49 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 300, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 939 mum 465 mum -2.41 m 25.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.91 mm 395 mum -2.4 m 25.8 MeV 0 eV 6.83 mm 6.83 mm Target Transportation + 2 11.7 cm -7.87 mm -1.6 m 25.8 MeV 0 eV 80.8 cm 81.5 cm Tracker Transportation + 3 14.6 cm -9.94 mm -1.4 m 25.8 MeV 0 eV 20.2 cm 1.02 m Chamber Transportation + 4 23.3 cm -1.61 cm -80 cm 25.8 MeV 0 eV 60.6 cm 1.62 m Tracker Transportation + 5 26.2 cm -1.82 cm -60 cm 25.8 MeV 0 eV 20.2 cm 1.83 m Chamber Transportation + 6 34.8 cm -2.44 cm 0 fm 25.8 MeV 0 eV 60.6 cm 2.43 m Tracker Transportation + 7 37.7 cm -2.65 cm 20 cm 25.8 MeV 0 eV 20.2 cm 2.63 m Chamber Transportation + 8 46.4 cm -3.27 cm 80 cm 25.8 MeV 0 eV 60.6 cm 3.24 m Tracker Transportation + 9 49.2 cm -3.47 cm 1 m 25.8 MeV 0 eV 20.2 cm 3.44 m Chamber Transportation + 10 57.9 cm -4.09 cm 1.6 m 25.8 MeV 0 eV 60.6 cm 4.05 m Tracker Transportation + 11 60.8 cm -4.3 cm 1.8 m 25.8 MeV 0 eV 20.2 cm 4.25 m Chamber Transportation + 12 69.4 cm -4.92 cm 2.4 m 25.8 MeV 0 eV 60.6 cm 4.86 m Tracker Transportation + 13 76.8 cm -5.45 cm 2.91 m 25.8 MeV 0 eV 51.5 cm 5.37 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 299, Parent ID = 298 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 787 mum 524 mum -2.41 m 322 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 mm 392 mum -2.4 m 0 eV 88 keV 8.19 mm 8.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 350, Parent ID = 299 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 mm 392 mum -2.4 m 234 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 mm 387 mum -2.4 m 0 eV 234 keV 104 mum 104 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 297, Parent ID = 147 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 760 mum 522 mum -2.41 m 63 MeV 0 eV 0 fm 0 fm Target initStep + 1 474 mum 276 mum -2.41 m 57.9 MeV 4.49 MeV 3.56 mm 3.56 mm Target eBrem + 2 617 mum 301 mum -2.4 m 56 MeV 1.2 MeV 914 mum 4.47 mm Target eBrem + 3 724 mum 390 mum -2.4 m 52 MeV 708 keV 580 mum 5.05 mm Target eBrem + 4 725 mum 398 mum -2.4 m 47.5 MeV 48.7 keV 42.7 mum 5.09 mm Target eBrem + 5 808 mum 588 mum -2.4 m 42.8 MeV 967 keV 756 mum 5.85 mm Target eBrem + 6 814 mum 803 mum -2.4 m 40.5 MeV 825 keV 710 mum 6.56 mm Target eBrem + 7 792 mum 844 mum -2.4 m 39.7 MeV 122 keV 117 mum 6.68 mm Target eBrem + 8 686 mum 963 mum -2.4 m 38.8 MeV 476 keV 384 mum 7.06 mm Target eBrem + 9 459 mum 1.25 mm -2.4 m 34.7 MeV 2.97 MeV 1.06 mm 8.12 mm Target eBrem + 10 133 mum 1.88 mm -2.4 m 32.5 MeV 2.13 MeV 1.46 mm 9.57 mm Target Transportation + 11 -3.82 cm 5.12 cm -2.3 m 32.5 MeV 20.2 keV 11.6 cm 12.6 cm Tracker eIoni + 12 -12.3 cm 16.6 cm -2.08 m 32.4 MeV 67.9 keV 26.5 cm 39.1 cm Tracker eIoni + 13 -24.6 cm 33.2 cm -1.76 m 32.3 MeV 86.3 keV 38.1 cm 77.1 cm Tracker eIoni + 14 -50.3 cm 67.5 cm -1.1 m 32.1 MeV 170 keV 78.4 cm 1.56 m Tracker eIoni + 15 -53.5 cm 71.5 cm -1.02 m 32.1 MeV 19.5 keV 9.77 cm 1.65 m Tracker eIoni + 16 -57.1 cm 76.2 cm -92.4 cm 32 MeV 22.3 keV 11.3 cm 1.77 m Tracker eIoni + 17 -76.2 cm 1.02 m -41.1 cm 31.9 MeV 112 keV 60.4 cm 2.37 m Tracker eIoni + 18 -1.14 m 1.51 m 54.4 cm 31.6 MeV 224 keV 1.14 m 3.51 m Tracker eIoni + 19 -1.17 m 1.55 m 62.6 cm 31.6 MeV 19.8 keV 9.5 cm 3.61 m Tracker eIoni + 20 -1.25 m 1.65 m 84.3 cm 31.5 MeV 58.5 keV 25.3 cm 3.86 m Tracker eIoni + 21 -1.27 m 1.67 m 88.4 cm 31.5 MeV 5.27 keV 4.79 cm 3.91 m Tracker eIoni + 22 -1.53 m 1.97 m 1.55 m 31.3 MeV 163 keV 77.9 cm 4.69 m Tracker eIoni + 23 -1.63 m 2.09 m 1.82 m 31.1 MeV 64.6 keV 30.8 cm 4.99 m Tracker eIoni + 24 -1.76 m 2.23 m 2.14 m 31.1 MeV 68.8 keV 37.5 cm 5.37 m Tracker eIoni + 25 -1.85 m 2.34 m 2.4 m 31 MeV 72.4 keV 29.4 cm 5.66 m Tracker Transportation + 26 -2.04 m 2.56 m 2.91 m 30.9 MeV 115 keV 58.7 cm 6.25 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 373, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.76 m 2.23 m 2.14 m 17.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.76 m 2.22 m 2.15 m 0 eV 17.1 keV 5.83 mm 5.83 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 372, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.63 m 2.09 m 1.82 m 102 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.58 m 2.08 m 1.87 m 0 eV 102 keV 14.2 cm 14.2 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 371, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.53 m 1.97 m 1.55 m 8.14 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.53 m 1.97 m 1.55 m 0 eV 8.14 keV 1.58 mm 1.58 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 370, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.27 m 1.67 m 88.4 cm 8.13 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.27 m 1.67 m 88.4 cm 0 eV 8.13 keV 1.57 mm 1.57 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 369, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.25 m 1.65 m 84.3 cm 11.9 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.25 m 1.65 m 84.2 cm 0 eV 11.9 keV 3.08 mm 3.08 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 368, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.17 m 1.55 m 62.6 cm 24.7 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.17 m 1.55 m 62.7 cm 0 eV 24.7 keV 1.11 cm 1.11 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 367, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.14 m 1.51 m 54.4 cm 46.5 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.15 m 1.5 m 54.8 cm 0 eV 46.5 keV 3.51 cm 3.51 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 366, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -76.2 cm 1.02 m -41.1 cm 18.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -76.1 cm 1.01 m -40.9 cm 0 eV 18.1 keV 6.42 mm 6.42 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 365, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -57.1 cm 76.2 cm -92.4 cm 49.6 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -56 cm 77.8 cm -92.3 cm 0 eV 49.6 keV 3.92 cm 3.92 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 364, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -53.5 cm 71.5 cm -1.02 m 28.2 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -52.9 cm 71.8 cm -1.02 m 0 eV 28.2 keV 1.42 cm 1.42 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 363, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -50.3 cm 67.5 cm -1.1 m 11.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -50.4 cm 67.5 cm -1.1 m 0 eV 11.1 keV 2.74 mm 2.74 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 362, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -24.6 cm 33.2 cm -1.76 m 20.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -25 cm 33 cm -1.76 m 0 eV 20.1 keV 7.67 mm 7.67 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 361, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -12.3 cm 16.6 cm -2.08 m 9.49 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -12.3 cm 16.6 cm -2.08 m 0 eV 9.49 keV 2.06 mm 2.06 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 360, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.82 cm 5.12 cm -2.3 m 8.75 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -3.74 cm 5.12 cm -2.3 m 0 eV 8.75 keV 1.8 mm 1.8 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 359, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 459 mum 1.25 mm -2.4 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 128 mum 1.87 mm -2.4 m 1.19 MeV 0 eV 1.42 mm 1.42 mm Target Transportation + 2 -1.29 m 2.4 m 2.38 m 1.19 MeV 0 eV 5.5 m 5.5 m Tracker Transportation + 3 -1.43 m 2.66 m 2.91 m 1.19 MeV 0 eV 60.6 cm 6.11 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 358, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 686 mum 963 mum -2.4 m 401 keV 0 eV 0 fm 0 fm Target initStep + 1 660 mum 978 mum -2.4 m 0 eV 88 keV 82.2 mum 82.2 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 374, Parent ID = 358 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 660 mum 978 mum -2.4 m 313 keV 0 eV 0 fm 0 fm Target initStep + 1 653 mum 981 mum -2.4 m 0 eV 313 keV 158 mum 158 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 357, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 792 mum 844 mum -2.4 m 716 keV 0 eV 0 fm 0 fm Target initStep + 1 184 mum 1.77 mm -2.4 m 716 keV 0 eV 2.8 mm 2.8 mm Target Transportation + 2 -37.9 cm 58 cm -80 cm 716 keV 0 eV 1.74 m 1.75 m Tracker Transportation + 3 -42.7 cm 65.2 cm -60 cm 716 keV 0 eV 21.8 cm 1.96 m Chamber Transportation + 4 -56.9 cm 86.8 cm 0 fm 716 keV 0 eV 65.4 cm 2.62 m Tracker Transportation + 5 -61.6 cm 94.1 cm 20 cm 716 keV 0 eV 21.8 cm 2.83 m Chamber Transportation + 6 -75.8 cm 1.16 m 80 cm 716 keV 0 eV 65.4 cm 3.49 m Tracker Transportation + 7 -80.6 cm 1.23 m 1 m 716 keV 0 eV 21.8 cm 3.71 m Chamber Transportation + 8 -94.8 cm 1.45 m 1.6 m 716 keV 0 eV 65.4 cm 4.36 m Tracker Transportation + 9 -99.6 cm 1.52 m 1.8 m 716 keV 0 eV 21.8 cm 4.58 m Chamber Transportation + 10 -1.14 m 1.74 m 2.4 m 716 keV 0 eV 65.4 cm 5.23 m Tracker Transportation + 11 -1.26 m 1.92 m 2.91 m 716 keV 0 eV 55.6 cm 5.79 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 356, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 814 mum 803 mum -2.4 m 1.44 MeV 0 eV 0 fm 0 fm Target initStep + 1 357 mum 1.86 mm -2.4 m 1.44 MeV 0 eV 2.91 mm 2.91 mm Target Transportation + 2 -27.3 cm 63.3 cm -80 cm 1.44 MeV 0 eV 1.74 m 1.74 m Tracker Transportation + 3 -29 cm 67.2 cm -70.2 cm 1.44 MeV 0 eV 10.7 cm 1.85 m Chamber Transportation + 4 -41 cm 94.9 cm 0 fm 1.44 MeV 0 eV 76.4 cm 2.62 m Tracker Transportation + 5 -44.4 cm 1.03 m 20 cm 1.44 MeV 0 eV 21.8 cm 2.83 m Chamber Transportation + 6 -54.6 cm 1.26 m 80 cm 1.44 MeV 0 eV 65.3 cm 3.49 m Tracker Transportation + 7 -58.1 cm 1.34 m 1 m 1.44 MeV 0 eV 21.8 cm 3.7 m Chamber Transportation + 8 -68.3 cm 1.58 m 1.6 m 1.44 MeV 0 eV 65.3 cm 4.36 m Tracker Transportation + 9 -71.7 cm 1.66 m 1.8 m 1.44 MeV 0 eV 21.8 cm 4.57 m Chamber Transportation + 10 -82 cm 1.9 m 2.4 m 1.44 MeV 0 eV 65.3 cm 5.23 m Tracker Transportation + 11 -90.7 cm 2.1 m 2.91 m 1.44 MeV 0 eV 55.5 cm 5.78 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 355, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 808 mum 588 mum -2.4 m 3.75 MeV 0 eV 0 fm 0 fm Target initStep + 1 560 mum 1.78 mm -2.4 m 3.75 MeV 0 eV 3.56 mm 3.56 mm Target Transportation + 2 -11.8 cm 57.3 cm -80 cm 3.75 MeV 0 eV 1.7 m 1.71 m Tracker Transportation + 3 -13.3 cm 64.4 cm -60 cm 3.75 MeV 0 eV 21.3 cm 1.92 m Chamber Transportation + 4 -17.7 cm 85.8 cm 0.114 fm 3.75 MeV 0 eV 63.9 cm 2.56 m Tracker Transportation + 5 -19.2 cm 92.9 cm 20 cm 3.75 MeV 0 eV 21.3 cm 2.77 m Chamber Transportation + 6 -23.7 cm 1.14 m 80 cm 3.75 MeV 0 eV 63.9 cm 3.41 m Tracker Transportation + 7 -25.2 cm 1.21 m 1 m 3.75 MeV 0 eV 21.3 cm 3.62 m Chamber Transportation + 8 -29.6 cm 1.43 m 1.6 m 3.75 MeV 0 eV 63.9 cm 4.26 m Tracker Transportation + 9 -31.1 cm 1.5 m 1.8 m 3.75 MeV 0 eV 21.3 cm 4.47 m Chamber Transportation + 10 -35.5 cm 1.71 m 2.4 m 3.75 MeV 0 eV 63.9 cm 5.11 m Tracker Transportation + 11 -39.3 cm 1.9 m 2.91 m 3.75 MeV 0 eV 54.3 cm 5.66 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 354, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 725 mum 398 mum -2.4 m 4.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 848 mum 1.29 mm -2.4 m 4.4 MeV 0 eV 4.17 mm 4.17 mm Target Transportation + 2 2.49 cm 17.7 cm -1.6 m 4.4 MeV 0 eV 81.9 cm 82.4 cm Tracker Transportation + 3 3.09 cm 22 cm -1.4 m 4.4 MeV 0 eV 20.5 cm 1.03 m Chamber Transportation + 4 4.9 cm 35.2 cm -80 cm 4.4 MeV 0 eV 61.5 cm 1.64 m Tracker Transportation + 5 5.5 cm 39.6 cm -60 cm 4.4 MeV 0 eV 20.5 cm 1.85 m Chamber Transportation + 6 7.3 cm 52.7 cm 0 fm 4.4 MeV 0 eV 61.5 cm 2.46 m Tracker Transportation + 7 7.91 cm 57.1 cm 20 cm 4.4 MeV 0 eV 20.5 cm 2.67 m Chamber Transportation + 8 9.71 cm 70.3 cm 80 cm 4.4 MeV 0 eV 61.5 cm 3.28 m Tracker Transportation + 9 10.1 cm 73.1 cm 93.1 cm 0 eV 0 eV 13.5 cm 3.42 m Chamber conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 376, Parent ID = 354 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 10.1 cm 73.1 cm 93.1 cm 1.78 MeV 0 eV 0 fm 0 fm Chamber initStep + 1 10.9 cm 79.1 cm 1 m 1.72 MeV 53.7 keV 9.89 cm 9.89 cm Chamber Transportation + 2 -7.34 cm 41.8 cm 1.6 m 1.6 MeV 124 keV 75.3 cm 85.2 cm Tracker Transportation + 3 -20.9 cm 29.7 cm 1.8 m 1.37 MeV 226 keV 39.1 cm 1.24 m Chamber Transportation + 4 38.6 cm 46.7 cm 2.34 m 1.22 MeV 137 keV 83.4 cm 2.08 m Tracker eIoni + 5 50.5 cm 46.4 cm 2.4 m 1.2 MeV 23.7 keV 13.4 cm 2.21 m Tracker Transportation + 6 59.4 cm 45.7 cm 2.44 m 1.18 MeV 11.3 keV 9.65 cm 2.31 m World eIoni + 7 91.8 cm 51.2 cm 2.59 m 1.08 MeV 56.9 keV 37.8 cm 2.69 m World eIoni + 8 93.2 cm 50.7 cm 2.6 m 1.07 MeV 2.9 keV 1.82 cm 2.7 m World eIoni + 9 1.07 m 46.2 cm 2.71 m 1 MeV 27.1 keV 18.6 cm 2.89 m World eIoni + 10 1.44 m 36.4 cm 2.9 m 903 keV 84.3 keV 43.6 cm 3.33 m World eIoni + 11 1.48 m 35.8 cm 2.91 m 897 keV 5.31 keV 3.44 cm 3.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 382, Parent ID = 376 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.44 m 36.4 cm 2.9 m 17.6 keV 0 eV 0 fm 0 fm World initStep + 1 1.44 m 36.5 cm 2.91 m 0 eV 17.6 keV 6.13 mm 6.13 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 381, Parent ID = 376 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 m 46.2 cm 2.71 m 38.2 keV 0 eV 0 fm 0 fm World initStep + 1 1.07 m 45.9 cm 2.72 m 0 eV 38.2 keV 2.45 cm 2.45 cm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 380, Parent ID = 376 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 93.2 cm 50.7 cm 2.6 m 11 keV 0 eV 0 fm 0 fm World initStep + 1 93.2 cm 50.8 cm 2.6 m 0 eV 11 keV 2.67 mm 2.67 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 379, Parent ID = 376 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 91.8 cm 51.2 cm 2.59 m 37.5 keV 0 eV 0 fm 0 fm World initStep + 1 92.7 cm 51.6 cm 2.58 m 0 eV 37.5 keV 2.38 cm 2.38 cm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 378, Parent ID = 376 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 59.4 cm 45.7 cm 2.44 m 8.67 keV 0 eV 0 fm 0 fm World initStep + 1 59.4 cm 45.8 cm 2.44 m 0 eV 8.67 keV 1.77 mm 1.77 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 377, Parent ID = 376 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 38.6 cm 46.7 cm 2.34 m 16.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 38.6 cm 47 cm 2.34 m 0 eV 16.1 keV 5.18 mm 5.18 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 375, Parent ID = 354 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 10.1 cm 73.1 cm 93.1 cm 1.6 MeV 0 eV 0 fm 0 fm Chamber initStep + 1 9.77 cm 70.8 cm 1 m 1.56 MeV 32.1 keV 8 cm 8 cm Chamber Transportation + 2 19.2 cm 69.1 cm 1.13 m 1.52 MeV 33.1 keV 16.5 cm 24.5 cm Tracker eIoni + 3 54.3 cm 70 cm 1.6 m 1.41 MeV 107 keV 60.3 cm 84.7 cm Tracker Transportation + 4 56.3 cm 69.7 cm 1.63 m 851 keV 15.3 keV 4.05 cm 88.8 cm Chamber eBrem + 5 62.9 cm 73.8 cm 1.69 m 739 keV 52.1 keV 10.2 cm 99 cm Chamber eIoni + 6 57.7 cm 65.2 cm 1.75 m 499 keV 240 keV 47.1 cm 1.46 m Chamber msc + 7 60.1 cm 58.7 cm 1.74 m 326 keV 119 keV 20.5 cm 1.67 m Chamber eIoni + 8 61 cm 58.9 cm 1.77 m 0 eV 326 keV 33 cm 2 m Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 386, Parent ID = 375 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 60.1 cm 58.7 cm 1.74 m 54.3 keV 0 eV 0 fm 0 fm Chamber initStep + 1 60.3 cm 58.8 cm 1.74 m 0 eV 54.3 keV 1.8 cm 1.8 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 385, Parent ID = 375 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 62.9 cm 73.8 cm 1.69 m 59.5 keV 0 eV 0 fm 0 fm Chamber initStep + 1 62.9 cm 73.6 cm 1.69 m 0 eV 59.5 keV 2.09 cm 2.09 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 384, Parent ID = 375 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 56.3 cm 69.7 cm 1.63 m 548 keV 0 eV 0 fm 0 fm Chamber initStep + 1 77.8 cm 68.6 cm 1.8 m 548 keV 0 eV 27.2 cm 27.2 cm Chamber Transportation + 2 1.56 m 64.6 cm 2.4 m 548 keV 0 eV 98.5 cm 1.26 m Tracker Transportation + 3 2.22 m 61.3 cm 2.91 m 548 keV 0 eV 83.7 cm 2.09 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 383, Parent ID = 375 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 19.2 cm 69.1 cm 1.13 m 8.79 keV 0 eV 0 fm 0 fm Tracker initStep + 1 19.2 cm 69 cm 1.13 m 0 eV 8.79 keV 1.81 mm 1.81 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 353, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 724 mum 390 mum -2.4 m 3.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 867 mum 1.09 mm -2.4 m 3.3 MeV 0 eV 4.18 mm 4.18 mm Target Transportation + 2 2.87 cm 13.7 cm -1.6 m 3.3 MeV 0 eV 81.2 cm 81.6 cm Tracker Transportation + 3 3.56 cm 17.1 cm -1.4 m 3.3 MeV 0 eV 20.3 cm 1.02 m Chamber Transportation + 4 5.65 cm 27.4 cm -80 cm 3.3 MeV 0 eV 60.9 cm 1.63 m Tracker Transportation + 5 6.35 cm 30.8 cm -60 cm 3.3 MeV 0 eV 20.3 cm 1.83 m Chamber Transportation + 6 8.43 cm 41 cm 0.114 fm 3.3 MeV 0 eV 60.9 cm 2.44 m Tracker Transportation + 7 9.13 cm 44.4 cm 20 cm 3.3 MeV 0 eV 20.3 cm 2.64 m Chamber Transportation + 8 11.2 cm 54.6 cm 80 cm 3.3 MeV 0 eV 60.9 cm 3.25 m Tracker Transportation + 9 11.9 cm 58 cm 1 m 3.3 MeV 0 eV 20.3 cm 3.46 m Chamber Transportation + 10 14 cm 68.3 cm 1.6 m 3.3 MeV 0 eV 60.9 cm 4.06 m Tracker Transportation + 11 14.7 cm 71.7 cm 1.8 m 3.3 MeV 0 eV 20.3 cm 4.27 m Chamber Transportation + 12 16.8 cm 81.9 cm 2.4 m 3.3 MeV 0 eV 60.9 cm 4.88 m Tracker Transportation + 13 18.6 cm 90.6 cm 2.91 m 3.3 MeV 0 eV 51.8 cm 5.39 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 352, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 617 mum 301 mum -2.4 m 710 keV 0 eV 0 fm 0 fm Target initStep + 1 1.26 mm 987 mum -2.4 m 710 keV 0 eV 4.77 mm 4.77 mm Target Transportation + 2 11.2 cm 11.8 cm -1.6 m 710 keV 0 eV 81.6 cm 82.1 cm Tracker Transportation + 3 14 cm 14.8 cm -1.4 m 710 keV 0 eV 20.4 cm 1.02 m Chamber Transportation + 4 22.3 cm 23.6 cm -80 cm 710 keV 0 eV 61.2 cm 1.64 m Tracker Transportation + 5 25 cm 26.5 cm -60 cm 710 keV 0 eV 20.4 cm 1.84 m Chamber Transportation + 6 33.3 cm 35.3 cm 0 fm 710 keV 0 eV 61.2 cm 2.45 m Tracker Transportation + 7 36.1 cm 38.2 cm 20 cm 710 keV 0 eV 20.4 cm 2.66 m Chamber Transportation + 8 44.4 cm 47 cm 80 cm 710 keV 0 eV 61.2 cm 3.27 m Tracker Transportation + 9 47.2 cm 50 cm 1 m 710 keV 0 eV 20.4 cm 3.47 m Chamber Transportation + 10 55.5 cm 58.8 cm 1.6 m 710 keV 0 eV 61.2 cm 4.09 m Tracker Transportation + 11 58.3 cm 61.7 cm 1.8 m 710 keV 0 eV 20.4 cm 4.29 m Chamber Transportation + 12 66.6 cm 70.5 cm 2.4 m 710 keV 0 eV 61.2 cm 4.9 m Tracker Transportation + 13 73.6 cm 78 cm 2.91 m 710 keV 0 eV 52 cm 5.42 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 351, Parent ID = 297 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 474 mum 276 mum -2.41 m 639 keV 0 eV 0 fm 0 fm Target initStep + 1 1.56 mm 855 mum -2.4 m 639 keV 0 eV 5.71 mm 5.71 mm Target Transportation + 2 15.7 cm 8.4 cm -1.6 m 639 keV 0 eV 81.9 cm 82.5 cm Tracker Transportation + 3 19.6 cm 10.5 cm -1.4 m 639 keV 0 eV 20.5 cm 1.03 m Chamber Transportation + 4 31.3 cm 16.7 cm -80 cm 639 keV 0 eV 61.4 cm 1.64 m Tracker Transportation + 5 35.2 cm 18.8 cm -60 cm 639 keV 0 eV 20.5 cm 1.85 m Chamber Transportation + 6 46.8 cm 25 cm 0 fm 639 keV 0 eV 61.4 cm 2.46 m Tracker Transportation + 7 50.7 cm 27.1 cm 20 cm 639 keV 0 eV 20.5 cm 2.67 m Chamber Transportation + 8 62.4 cm 33.3 cm 80 cm 639 keV 0 eV 61.4 cm 3.28 m Tracker Transportation + 9 66.3 cm 35.4 cm 1 m 639 keV 0 eV 20.5 cm 3.49 m Chamber Transportation + 10 78 cm 41.7 cm 1.6 m 639 keV 0 eV 61.4 cm 4.1 m Tracker Transportation + 11 81.9 cm 43.7 cm 1.8 m 639 keV 0 eV 20.5 cm 4.31 m Chamber Transportation + 12 93.5 cm 50 cm 2.4 m 639 keV 0 eV 61.4 cm 4.92 m Tracker Transportation + 13 1.03 m 55.3 cm 2.91 m 639 keV 0 eV 52.2 cm 5.44 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 146, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 16 mum 274 mum -2.42 m 27.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 766 mum 515 mum -2.41 m 0 eV 0 eV 1.43 cm 1.43 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 388, Parent ID = 146 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 766 mum 515 mum -2.41 m 2.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 677 mum 520 mum -2.41 m 0 eV 2.97 MeV 2.37 mm 2.37 mm Target eIoni + 2 677 mum 520 mum -2.41 m 0 eV 0 eV 0 fm 2.37 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 390, Parent ID = 388 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 677 mum 520 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 863 mum -3.23 mm -2.41 m 179 keV 0 eV 4.37 mm 4.37 mm Target compt + 2 1.07 mm -1.67 mm -2.41 m 0 eV 88 keV 1.57 mm 5.94 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 392, Parent ID = 390 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 mm -1.67 mm -2.41 m 90.9 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 mm -1.67 mm -2.41 m 0 eV 90.9 keV 23.7 mum 23.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 391, Parent ID = 390 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 863 mum -3.23 mm -2.41 m 332 keV 0 eV 0 fm 0 fm Target initStep + 1 863 mum -3.24 mm -2.41 m 0 eV 332 keV 172 mum 172 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 389, Parent ID = 388 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 677 mum 520 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 599 mum 2.09 mm -2.41 m 203 keV 0 eV 1.83 mm 1.83 mm Target compt + 2 167 mum 1.08 mm -2.41 m 0 eV 88 keV 1.19 mm 3.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 394, Parent ID = 389 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 167 mum 1.08 mm -2.41 m 115 keV 0 eV 0 fm 0 fm Target initStep + 1 165 mum 1.08 mm -2.41 m 0 eV 115 keV 34.6 mum 34.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 393, Parent ID = 389 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 599 mum 2.09 mm -2.41 m 308 keV 0 eV 0 fm 0 fm Target initStep + 1 599 mum 2.1 mm -2.41 m 0 eV 308 keV 155 mum 155 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 387, Parent ID = 146 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 766 mum 515 mum -2.41 m 23.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 962 mum 274 mum -2.41 m 19 MeV 1.48 MeV 1.26 mm 1.26 mm Target eBrem + 2 993 mum 303 mum -2.41 m 17.7 MeV 104 keV 86.3 mum 1.34 mm Target eBrem + 3 1.1 mm 808 mum -2.41 m 14.4 MeV 1.96 MeV 1.45 mm 2.79 mm Target eBrem + 4 264 mum 1.39 mm -2.4 m 8.29 MeV 4.7 MeV 2.94 mm 5.73 mm Target eBrem + 5 266 mum 1.4 mm -2.4 m 7.55 MeV 14.6 keV 12.1 mum 5.75 mm Target eBrem + 6 -353 mum 2.84 mm -2.4 m 4.66 MeV 2.24 MeV 1.86 mm 7.6 mm Target eBrem + 7 -348 mum 2.66 mm -2.4 m 3.86 MeV 304 keV 275 mum 7.88 mm Target eBrem + 8 -693 mum 2.8 mm -2.4 m 0 eV 3.86 MeV 3.03 mm 1.09 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 401, Parent ID = 387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -348 mum 2.66 mm -2.4 m 491 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.36 mm 3.09 mm -2.4 m 0 eV 88 keV 1.32 mm 1.32 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 402, Parent ID = 401 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.36 mm 3.09 mm -2.4 m 403 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.36 mm 3.1 mm -2.4 m 0 eV 403 keV 225 mum 225 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 400, Parent ID = 387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -353 mum 2.84 mm -2.4 m 654 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.79 mm -1.73 mm -2.4 m 654 keV 0 eV 7.31 mm 7.31 mm Target Transportation + 2 -1.81 m -2.4 m -7.5 mm 654 keV 0 eV 3.84 m 3.85 m Tracker Transportation + 3 -2.19 m -2.91 m 50.1 cm 654 keV 0 eV 81.6 cm 4.66 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 399, Parent ID = 387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 266 mum 1.4 mm -2.4 m 727 keV 0 eV 0 fm 0 fm Target initStep + 1 1.51 mm 9.75 mm -2.4 m 347 keV 0 eV 8.72 mm 8.72 mm Target compt + 2 1.2 mm 1.06 cm -2.4 m 305 keV 0 eV 1.81 mm 1.05 cm Target compt + 3 1.06 mm 1.07 cm -2.4 m 0 eV 88 keV 205 mum 1.07 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 405, Parent ID = 399 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.06 mm 1.07 cm -2.4 m 217 keV 0 eV 0 fm 0 fm Target initStep + 1 1.06 mm 1.07 cm -2.4 m 0 eV 217 keV 92.6 mum 92.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 404, Parent ID = 399 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 mm 1.06 cm -2.4 m 41.9 keV 0 eV 0 fm 0 fm Target initStep + 1 1.2 mm 1.06 cm -2.4 m 0 eV 41.9 keV 6.72 mum 6.72 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 403, Parent ID = 399 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.51 mm 9.75 mm -2.4 m 380 keV 0 eV 0 fm 0 fm Target initStep + 1 1.51 mm 9.76 mm -2.4 m 0 eV 380 keV 208 mum 208 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 398, Parent ID = 387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 264 mum 1.39 mm -2.4 m 1.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.48 mm 1.39 cm -2.4 m 1.41 MeV 0 eV 1.32 cm 1.32 cm Target Transportation + 2 42.5 cm 2.4 m -1.68 m 1.41 MeV 0 eV 2.53 m 2.54 m Tracker Transportation + 3 51.6 cm 2.91 m -1.52 m 1.41 MeV 0 eV 54 cm 3.08 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 397, Parent ID = 387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 mm 808 mum -2.41 m 1.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.72 mm 1.35 mm -2.41 m 222 keV 0 eV 1.63 mm 1.63 mm Target compt + 2 -2.59 mm -1.05 mm -2.41 m 0 eV 88 keV 6.41 mm 8.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 407, Parent ID = 397 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.59 mm -1.05 mm -2.41 m 134 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.59 mm -1.05 mm -2.41 m 0 eV 134 keV 44.2 mum 44.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 406, Parent ID = 397 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.72 mm 1.35 mm -2.41 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.75 mm 1.38 mm -2.41 m 0 eV 1.17 MeV 861 mum 861 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 396, Parent ID = 387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 993 mum 303 mum -2.41 m 1.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.26 mm 1.24 mm -2.41 m 630 keV 0 eV 3.09 mm 3.09 mm Target compt + 2 103 mum 1.31 mm -2.4 m 630 keV 0 eV 5.66 mm 8.74 mm Target Transportation + 3 -65.9 cm 2.31 cm -80 cm 630 keV 0 eV 1.73 m 1.74 m Tracker Transportation + 4 -67.2 cm 2.36 cm -76.9 cm 630 keV 0 eV 3.38 cm 1.77 m Chamber Transportation + 5 -98.9 cm 3.41 cm 0 fm 630 keV 0 eV 83.2 cm 2.6 m Tracker Transportation + 6 -1.06 m 3.66 cm 18.5 cm 603 keV 0 eV 20 cm 2.8 m Chamber compt + 7 -1.07 m 4.12 cm 20 cm 603 keV 0 eV 1.79 cm 2.82 m Chamber Transportation + 8 -1.4 m 22.2 cm 80 cm 603 keV 0 eV 70.7 cm 3.53 m Tracker Transportation + 9 -1.51 m 28.2 cm 1 m 603 keV 0 eV 23.6 cm 3.77 m Chamber Transportation + 10 -1.84 m 46.3 cm 1.6 m 603 keV 0 eV 70.7 cm 4.47 m Tracker Transportation + 11 -1.95 m 52.3 cm 1.8 m 603 keV 0 eV 23.6 cm 4.71 m Chamber Transportation + 12 -2.27 m 70.4 cm 2.4 m 603 keV 0 eV 70.7 cm 5.41 m Tracker Transportation + 13 -2.55 m 85.8 cm 2.91 m 603 keV 0 eV 60.1 cm 6.02 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 409, Parent ID = 396 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.06 m 3.66 cm 18.5 cm 26.6 keV 0 eV 0 fm 0 fm Chamber initStep + 1 -1.06 m 3.6 cm 18.5 cm 0 eV 26.6 keV 5.45 mm 5.45 mm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 408, Parent ID = 396 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.26 mm 1.24 mm -2.41 m 495 keV 0 eV 0 fm 0 fm Target initStep + 1 2.27 mm 1.25 mm -2.41 m 0 eV 495 keV 298 mum 298 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 395, Parent ID = 387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 962 mum 274 mum -2.41 m 2.83 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.6 mm 753 mum -2.41 m 468 keV 0 eV 1.43 mm 1.43 mm Target compt + 2 -854 mum 1.05 mm -2.41 m 0 eV 88 keV 2.88 mm 4.32 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 411, Parent ID = 395 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -854 mum 1.05 mm -2.41 m 380 keV 0 eV 0 fm 0 fm Target initStep + 1 -864 mum 1.05 mm -2.41 m 0 eV 380 keV 208 mum 208 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 410, Parent ID = 395 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.6 mm 753 mum -2.41 m 2.36 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.86 mm 1.35 mm -2.41 m 836 keV 1.12 MeV 1.07 mm 1.07 mm Target eBrem + 2 1.87 mm 1.39 mm -2.41 m 0 eV 836 keV 582 mum 1.65 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 412, Parent ID = 410 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.86 mm 1.35 mm -2.41 m 408 keV 0 eV 0 fm 0 fm Target initStep + 1 9.01 mm 1.26 cm -2.41 m 0 eV 88 keV 1.33 cm 1.33 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 413, Parent ID = 412 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.01 mm 1.26 cm -2.41 m 320 keV 0 eV 0 fm 0 fm Target initStep + 1 9.01 mm 1.26 cm -2.41 m 0 eV 320 keV 163 mum 163 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 145, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.34 mum 269 mum -2.42 m 12.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 833 mum 639 mum -2.41 m 0 eV 0 eV 1.38 cm 1.38 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 415, Parent ID = 145 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 833 mum 639 mum -2.41 m 6.36 MeV 0 eV 0 fm 0 fm Target initStep + 1 801 mum 618 mum -2.41 m 5.31 MeV 207 keV 193 mum 193 mum Target eBrem + 2 850 mum 399 mum -2.41 m 0 eV 5.31 MeV 4.17 mm 4.37 mm Target eIoni + 3 850 mum 399 mum -2.41 m 0 eV 0 eV 0 fm 4.37 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 418, Parent ID = 415 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 850 mum 399 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.37 mm -1.28 mm -2.41 m 310 keV 0 eV 5.3 mm 5.3 mm Target compt + 2 1.27 cm 737 mum -2.42 m 253 keV 0 eV 1.22 cm 1.75 cm Target compt + 3 1.47 cm 1.11 mm -2.42 m 0 eV 88 keV 2.46 mm 1.99 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 421, Parent ID = 418 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.47 cm 1.11 mm -2.42 m 165 keV 0 eV 0 fm 0 fm Target initStep + 1 1.47 cm 1.11 mm -2.42 m 0 eV 165 keV 60.8 mum 60.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 420, Parent ID = 418 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.27 cm 737 mum -2.42 m 57.6 keV 0 eV 0 fm 0 fm Target initStep + 1 1.27 cm 737 mum -2.42 m 0 eV 57.6 keV 11.3 mum 11.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 419, Parent ID = 418 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.37 mm -1.28 mm -2.41 m 201 keV 0 eV 0 fm 0 fm Target initStep + 1 1.36 mm -1.29 mm -2.41 m 0 eV 201 keV 82 mum 82 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 417, Parent ID = 415 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 850 mum 399 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 17 mum 3.11 mm -2.4 m 0 eV 88 keV 8.55 mm 8.55 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 422, Parent ID = 417 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 17 mum 3.11 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 14 mum 3.12 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 416, Parent ID = 415 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 801 mum 618 mum -2.41 m 842 keV 0 eV 0 fm 0 fm Target initStep + 1 2.28 mm -1.21 mm -2.4 m 842 keV 0 eV 1 cm 1 cm Target Transportation + 2 12.4 cm -15.2 cm -1.6 m 842 keV 0 eV 82.3 cm 83.3 cm Tracker Transportation + 3 15.4 cm -18.9 cm -1.4 m 842 keV 0 eV 20.6 cm 1.04 m Chamber Transportation + 4 24.5 cm -30.2 cm -80 cm 842 keV 0 eV 61.7 cm 1.66 m Tracker Transportation + 5 27.6 cm -33.9 cm -60 cm 842 keV 0 eV 20.6 cm 1.86 m Chamber Transportation + 6 36.7 cm -45.2 cm 0 fm 842 keV 0 eV 61.7 cm 2.48 m Tracker Transportation + 7 39.7 cm -49 cm 20 cm 842 keV 0 eV 20.6 cm 2.68 m Chamber Transportation + 8 48.9 cm -60.2 cm 80 cm 842 keV 0 eV 61.7 cm 3.3 m Tracker Transportation + 9 51.9 cm -64 cm 1 m 842 keV 0 eV 20.6 cm 3.51 m Chamber Transportation + 10 61 cm -75.3 cm 1.6 m 842 keV 0 eV 61.7 cm 4.13 m Tracker Transportation + 11 64.1 cm -79 cm 1.8 m 842 keV 0 eV 20.6 cm 4.33 m Chamber Transportation + 12 73.2 cm -90.3 cm 2.4 m 842 keV 0 eV 61.7 cm 4.95 m Tracker Transportation + 13 80.9 cm -99.9 cm 2.91 m 842 keV 0 eV 52.5 cm 5.47 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 414, Parent ID = 145 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 833 mum 639 mum -2.41 m 5.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.11 mm 601 mum -2.41 m 2.33 MeV 699 keV 559 mum 559 mum Target eBrem + 2 1.15 mm 532 mum -2.41 m 1.56 MeV 61.7 keV 105 mum 665 mum Target eBrem + 3 1.22 mm 620 mum -2.41 m 0 eV 1.56 MeV 1.19 mm 1.86 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 424, Parent ID = 414 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 mm 532 mum -2.41 m 701 keV 0 eV 0 fm 0 fm Target initStep + 1 6.07 mm 9.4 mm -2.41 m 488 keV 0 eV 1.02 cm 1.02 cm Target compt + 2 6.93 mm 1.04 cm -2.41 m 248 keV 0 eV 2.13 mm 1.23 cm Target compt + 3 6.02 mm 1.1 cm -2.41 m 0 eV 88 keV 1.1 mm 1.34 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 427, Parent ID = 424 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.02 mm 1.1 cm -2.41 m 160 keV 0 eV 0 fm 0 fm Target initStep + 1 6.02 mm 1.1 cm -2.41 m 0 eV 160 keV 58 mum 58 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 426, Parent ID = 424 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.93 mm 1.04 cm -2.41 m 240 keV 0 eV 0 fm 0 fm Target initStep + 1 6.93 mm 1.04 cm -2.41 m 0 eV 240 keV 107 mum 107 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 425, Parent ID = 424 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.07 mm 9.4 mm -2.41 m 214 keV 0 eV 0 fm 0 fm Target initStep + 1 6.07 mm 9.4 mm -2.41 m 0 eV 214 keV 90.4 mum 90.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 423, Parent ID = 414 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.11 mm 601 mum -2.41 m 2.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.41 cm -9.42 mm -2.41 m 1.42 MeV 0 eV 1.66 cm 1.66 cm Target compt + 2 1.84 cm -1.56 cm -2.4 m 464 keV 0 eV 9.52 mm 2.62 cm Target compt + 3 1.72 cm -2.5 cm -2.41 m 464 keV 0 eV 1.05 cm 3.67 cm Target Transportation + 4 -11.9 cm -1.04 m -2.91 m 464 keV 0 eV 1.15 m 1.18 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 429, Parent ID = 423 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.84 cm -1.56 cm -2.4 m 954 keV 0 eV 0 fm 0 fm Target initStep + 1 1.84 cm -1.56 cm -2.4 m 0 eV 954 keV 682 mum 682 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 428, Parent ID = 423 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.41 cm -9.42 mm -2.41 m 990 keV 0 eV 0 fm 0 fm Target initStep + 1 1.41 cm -9.46 mm -2.41 m 417 keV 573 keV 587 mum 587 mum Target eBrem + 2 1.41 cm -9.47 mm -2.41 m 0 eV 417 keV 236 mum 823 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 144, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -18 mum 259 mum -2.42 m 37.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 23.8 mum 285 mum -2.42 m 0 eV 0 eV 1.21 mm 1.21 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 431, Parent ID = 144 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 23.8 mum 285 mum -2.42 m 12.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.58 mm -324 mum -2.42 m 3.59 MeV 8.25 MeV 5.35 mm 5.35 mm Target eBrem + 2 -4.85 mm -685 mum -2.42 m 2.18 MeV 690 keV 698 mum 6.04 mm Target eBrem + 3 -4.78 mm -924 mum -2.42 m 0 eV 2.18 MeV 1.73 mm 7.77 mm Target eIoni + 4 -4.78 mm -924 mum -2.42 m 0 eV 0 eV 0 fm 7.77 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 435, Parent ID = 431 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.78 mm -924 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.56 mm -4.94 mm -2.42 m 0 eV 88 keV 4.59 mm 4.59 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 436, Parent ID = 435 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.56 mm -4.94 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.55 mm -4.95 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 434, Parent ID = 431 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.78 mm -924 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.29 mm 1.81 mm -2.42 m 0 eV 88 keV 3.12 mm 3.12 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 437, Parent ID = 434 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.29 mm 1.81 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.3 mm 1.82 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 433, Parent ID = 431 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.85 mm -685 mum -2.42 m 728 keV 0 eV 0 fm 0 fm Target initStep + 1 1.06 cm -5.82 mm -2.42 m 503 keV 0 eV 1.67 cm 1.67 cm Target compt + 2 1.19 cm -7.41 mm -2.42 m 473 keV 0 eV 2.22 mm 1.89 cm Target compt + 3 2.21 cm -2.5 cm -2.42 m 473 keV 0 eV 2.04 cm 3.93 cm Target Transportation + 4 21 cm -35 cm -2.4 m 473 keV 0 eV 37.6 cm 41.6 cm World Transportation + 5 1.4 m -2.4 m -2.26 m 473 keV 0 eV 2.37 m 2.79 m Tracker Transportation + 6 1.69 m -2.91 m -2.23 m 473 keV 0 eV 59 cm 3.38 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 439, Parent ID = 433 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.19 cm -7.41 mm -2.42 m 29.5 keV 0 eV 0 fm 0 fm Target initStep + 1 1.19 cm -7.41 mm -2.42 m 0 eV 29.5 keV 3.81 mum 3.81 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 438, Parent ID = 433 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.06 cm -5.82 mm -2.42 m 226 keV 0 eV 0 fm 0 fm Target initStep + 1 1.06 cm -5.82 mm -2.42 m 0 eV 226 keV 98.2 mum 98.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 432, Parent ID = 431 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.58 mm -324 mum -2.42 m 603 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.05 mm -3.66 mm -2.42 m 585 keV 0 eV 4.51 mm 4.51 mm Target compt + 2 -1.35 mm -4.23 mm -2.42 m 0 eV 88 keV 959 mum 5.46 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 441, Parent ID = 432 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.35 mm -4.23 mm -2.42 m 497 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.34 mm -4.24 mm -2.42 m 0 eV 497 keV 299 mum 299 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 440, Parent ID = 432 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.05 mm -3.66 mm -2.42 m 17.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.05 mm -3.66 mm -2.42 m 0 eV 17.8 keV 1.7 mum 1.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 430, Parent ID = 144 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 23.8 mum 285 mum -2.42 m 23.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 22 mum 281 mum -2.42 m 18.2 MeV 147 keV 126 mum 126 mum Target eBrem + 2 280 mum 383 mum -2.42 m 14.5 MeV 1.99 MeV 1.06 mm 1.19 mm Target eBrem + 3 291 mum 344 mum -2.42 m 12.8 MeV 126 keV 124 mum 1.31 mm Target eBrem + 4 73.1 mum 15.8 mum -2.42 m 6.21 MeV 1.12 MeV 995 mum 2.3 mm Target eBrem + 5 88.9 mum -347 mum -2.42 m 4.02 MeV 1.35 MeV 777 mum 3.08 mm Target eBrem + 6 -270 mum -454 mum -2.42 m 1.69 MeV 1.59 MeV 819 mum 3.9 mm Target eBrem + 7 -680 mum -512 mum -2.42 m 399 keV 1.29 MeV 1.22 mm 5.12 mm Target eBrem + 8 -675 mum -519 mum -2.42 m 0 eV 399 keV 222 mum 5.34 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 447, Parent ID = 430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -270 mum -454 mum -2.42 m 733 keV 0 eV 0 fm 0 fm Target initStep + 1 -416 mum -299 mum -2.42 m 0 eV 88 keV 225 mum 225 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 448, Parent ID = 447 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -416 mum -299 mum -2.42 m 645 keV 0 eV 0 fm 0 fm Target initStep + 1 -445 mum -308 mum -2.42 m 0 eV 645 keV 420 mum 420 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 446, Parent ID = 430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 88.9 mum -347 mum -2.42 m 841 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 mm 2.45 mm -2.42 m 354 keV 0 eV 4.12 mm 4.12 mm Target compt + 2 -5.41 mm 801 mum -2.42 m 0 eV 88 keV 3.67 mm 7.8 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 450, Parent ID = 446 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.41 mm 801 mum -2.42 m 266 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.41 mm 793 mum -2.42 m 0 eV 266 keV 125 mum 125 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 449, Parent ID = 446 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.13 mm 2.45 mm -2.42 m 487 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 mm 2.47 mm -2.42 m 0 eV 487 keV 291 mum 291 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 445, Parent ID = 430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 73.1 mum 15.8 mum -2.42 m 5.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.39 mm 140 mum -2.4 m 5.45 MeV 0 eV 2.18 cm 2.18 cm Target Transportation + 2 -21.3 cm 4.86 mm -1.6 m 5.45 MeV 0 eV 82.6 cm 84.8 cm Tracker Transportation + 3 -24 cm 5.48 mm -1.49 m 5.45 MeV 0 eV 10.9 cm 95.8 cm Chamber Transportation + 4 -42 cm 9.57 mm -80 cm 5.45 MeV 0 eV 71.7 cm 1.67 m Tracker Transportation + 5 -47.2 cm 1.07 cm -60 cm 5.45 MeV 0 eV 20.7 cm 1.88 m Chamber Transportation + 6 -62.7 cm 1.43 cm 0 fm 5.45 MeV 0 eV 62 cm 2.5 m Tracker Transportation + 7 -67.9 cm 1.55 cm 20 cm 5.45 MeV 0 eV 20.7 cm 2.71 m Chamber Transportation + 8 -83.4 cm 1.9 cm 80 cm 5.45 MeV 0 eV 62 cm 3.33 m Tracker Transportation + 9 -88.6 cm 2.02 cm 1 m 5.45 MeV 0 eV 20.7 cm 3.53 m Chamber Transportation + 10 -1.04 m 2.37 cm 1.6 m 5.45 MeV 0 eV 62 cm 4.15 m Tracker Transportation + 11 -1.09 m 2.49 cm 1.8 m 5.45 MeV 0 eV 20.7 cm 4.36 m Chamber Transportation + 12 -1.25 m 2.84 cm 2.4 m 5.45 MeV 0 eV 62 cm 4.98 m Tracker Transportation + 13 -1.38 m 3.14 cm 2.91 m 5.45 MeV 0 eV 52.7 cm 5.51 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 444, Parent ID = 430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 291 mum 344 mum -2.42 m 1.56 MeV 0 eV 0 fm 0 fm Target initStep + 1 360 mum 83.3 mum -2.42 m 0 eV 0 eV 643 mum 643 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 452, Parent ID = 444 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 360 mum 83.3 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 358 mum 62 mum -2.42 m 0 eV 423 keV 240 mum 240 mum Target eIoni + 2 358 mum 62 mum -2.42 m 0 eV 0 eV 0 fm 240 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 454, Parent ID = 452 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 358 mum 62 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 422 mum -1.95 mm -2.42 m 0 eV 88 keV 4.36 mm 4.36 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 455, Parent ID = 454 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 422 mum -1.95 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 407 mum -1.95 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 453, Parent ID = 452 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 358 mum 62 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 182 mum 5.57 mm -2.43 m 0 eV 88 keV 1.19 cm 1.19 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 456, Parent ID = 453 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 182 mum 5.57 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 184 mum 5.58 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 451, Parent ID = 444 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 360 mum 83.3 mum -2.42 m 114 keV 0 eV 0 fm 0 fm Target initStep + 1 361 mum 84.6 mum -2.42 m 0 eV 114 keV 34 mum 34 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 443, Parent ID = 430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 280 mum 383 mum -2.42 m 1.75 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.62 mm -3.89 mm -2.41 m 339 keV 0 eV 1.7 cm 1.7 cm Target compt + 2 5.93 mm -3.74 mm -2.41 m 0 eV 88 keV 2.52 mm 1.95 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 458, Parent ID = 443 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.93 mm -3.74 mm -2.41 m 251 keV 0 eV 0 fm 0 fm Target initStep + 1 5.93 mm -3.74 mm -2.41 m 0 eV 251 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 457, Parent ID = 443 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.62 mm -3.89 mm -2.41 m 1.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.62 mm -3.92 mm -2.41 m 0 eV 1.41 MeV 1.07 mm 1.07 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 442, Parent ID = 430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 22 mum 281 mum -2.42 m 5.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.04 mm -1.24 mm -2.41 m 262 keV 0 eV 1.33 cm 1.33 cm Target compt + 2 1.77 mm -2.41 mm -2.41 m 0 eV 88 keV 3.42 mm 1.67 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 460, Parent ID = 442 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.77 mm -2.41 mm -2.41 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 1.77 mm -2.4 mm -2.41 m 0 eV 174 keV 66.3 mum 66.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 459, Parent ID = 442 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.04 mm -1.24 mm -2.41 m 5.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.46 mm -2.89 mm -2.41 m 1.37 MeV 3.09 MeV 2.22 mm 2.22 mm Target eBrem + 2 1.47 mm -2.96 mm -2.41 m 0 eV 1.37 MeV 1.03 mm 3.25 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 461, Parent ID = 459 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.46 mm -2.89 mm -2.41 m 563 keV 0 eV 0 fm 0 fm Target initStep + 1 725 mum -7.22 mm -2.41 m 188 keV 0 eV 5.48 mm 5.48 mm Target compt + 2 544 mum -6.5 mm -2.41 m 0 eV 88 keV 753 mum 6.23 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 463, Parent ID = 461 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 544 mum -6.5 mm -2.41 m 99.5 keV 0 eV 0 fm 0 fm Target initStep + 1 544 mum -6.5 mm -2.41 m 0 eV 99.5 keV 27.3 mum 27.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 462, Parent ID = 461 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 725 mum -7.22 mm -2.41 m 376 keV 0 eV 0 fm 0 fm Target initStep + 1 724 mum -7.24 mm -2.41 m 0 eV 376 keV 205 mum 205 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 143, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -32.1 mum 247 mum -2.42 m 1.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 807 mum 810 mum -2.4 m 1.5 MeV 0 eV 2.48 cm 2.48 cm Target Transportation + 2 2.79 cm 1.9 cm -1.6 m 1.5 MeV 0 eV 80.1 cm 82.5 cm Tracker Transportation + 3 3.47 cm 2.35 cm -1.4 m 1.5 MeV 0 eV 20 cm 1.03 m Chamber Transportation + 4 5.5 cm 3.71 cm -80 cm 1.5 MeV 0 eV 60 cm 1.63 m Tracker Transportation + 5 6.18 cm 4.17 cm -60 cm 1.5 MeV 0 eV 20 cm 1.83 m Chamber Transportation + 6 8.21 cm 5.53 cm 0.114 fm 1.5 MeV 0 eV 60 cm 2.43 m Tracker Transportation + 7 8.89 cm 5.99 cm 20 cm 1.5 MeV 0 eV 20 cm 2.63 m Chamber Transportation + 8 10.9 cm 7.35 cm 80 cm 1.5 MeV 0 eV 60 cm 3.23 m Tracker Transportation + 9 11.6 cm 7.8 cm 1 m 1.5 MeV 0 eV 20 cm 3.43 m Chamber Transportation + 10 13.6 cm 9.17 cm 1.6 m 1.5 MeV 0 eV 60 cm 4.03 m Tracker Transportation + 11 14.3 cm 9.62 cm 1.8 m 1.5 MeV 0 eV 20 cm 4.23 m Chamber Transportation + 12 16.3 cm 11 cm 2.4 m 1.5 MeV 0 eV 60 cm 4.83 m Tracker Transportation + 13 18.1 cm 12.1 cm 2.91 m 1.5 MeV 0 eV 51 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 142, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -46.3 mum 236 mum -2.43 m 9.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 165 mum 440 mum -2.42 m 0 eV 0 eV 5.96 mm 5.96 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 465, Parent ID = 142 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 165 mum 440 mum -2.42 m 1.44 MeV 0 eV 0 fm 0 fm Target initStep + 1 205 mum 365 mum -2.42 m 0 eV 1.44 MeV 1.11 mm 1.11 mm Target eIoni + 2 205 mum 365 mum -2.42 m 0 eV 0 eV 0 fm 1.11 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 467, Parent ID = 465 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 205 mum 365 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.06 mm -1.29 mm -2.42 m 237 keV 0 eV 5.95 mm 5.95 mm Target compt + 2 -82 mum -1.59 mm -2.42 m 0 eV 88 keV 1.03 mm 6.98 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 469, Parent ID = 467 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -82 mum -1.59 mm -2.42 m 149 keV 0 eV 0 fm 0 fm Target initStep + 1 -81.7 mum -1.59 mm -2.42 m 0 eV 149 keV 52.1 mum 52.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 468, Parent ID = 467 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.06 mm -1.29 mm -2.42 m 274 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.07 mm -1.29 mm -2.42 m 0 eV 274 keV 131 mum 131 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 466, Parent ID = 465 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 205 mum 365 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 522 mum 778 mum -2.42 m 0 eV 88 keV 1.49 mm 1.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 470, Parent ID = 466 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 522 mum 778 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 523 mum 771 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 464, Parent ID = 142 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 165 mum 440 mum -2.42 m 6.96 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.18 mm 2.19 mm -2.42 m 3.15 MeV 3.81 MeV 3.47 mm 3.47 mm Target eBrem + 2 -2.07 mm 1.9 mm -2.42 m 0 eV 3.15 MeV 2.48 mm 5.95 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 141, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -81.7 mum 158 mum -2.43 m 4.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 20.9 mum 307 mum -2.42 m 0 eV 0 eV 2.97 mm 2.97 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 472, Parent ID = 141 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 20.9 mum 307 mum -2.42 m 2.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.61 mum 398 mum -2.42 m 0 eV 2.24 MeV 1.78 mm 1.78 mm Target eIoni + 2 9.61 mum 398 mum -2.42 m 0 eV 0 eV 0 fm 1.78 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 474, Parent ID = 472 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.61 mum 398 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -53.6 mum -1.28 mm -2.42 m 329 keV 0 eV 1.98 mm 1.98 mm Target compt + 2 -897 mum -1.17 mm -2.43 m 0 eV 88 keV 2.03 mm 4.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 476, Parent ID = 474 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -897 mum -1.17 mm -2.43 m 241 keV 0 eV 0 fm 0 fm Target initStep + 1 -901 mum -1.17 mm -2.43 m 0 eV 241 keV 108 mum 108 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 475, Parent ID = 474 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -53.6 mum -1.28 mm -2.42 m 182 keV 0 eV 0 fm 0 fm Target initStep + 1 -52.4 mum -1.28 mm -2.42 m 0 eV 182 keV 70.7 mum 70.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 473, Parent ID = 472 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.61 mum 398 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 42.2 mum 1.26 mm -2.42 m 0 eV 88 keV 1.02 mm 1.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 477, Parent ID = 473 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 42.2 mum 1.26 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 51.2 mum 1.27 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 471, Parent ID = 141 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 20.9 mum 307 mum -2.42 m 1.67 MeV 0 eV 0 fm 0 fm Target initStep + 1 174 mum 198 mum -2.42 m 747 keV 439 keV 271 mum 271 mum Target eBrem + 2 209 mum 212 mum -2.42 m 0 eV 747 keV 506 mum 777 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 478, Parent ID = 471 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 174 mum 198 mum -2.42 m 486 keV 0 eV 0 fm 0 fm Target initStep + 1 2.22 mm 492 mum -2.43 m 298 keV 0 eV 2.61 mm 2.61 mm Target compt + 2 4.93 mm -206 mum -2.42 m 0 eV 88 keV 3.22 mm 5.83 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 480, Parent ID = 478 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.93 mm -206 mum -2.42 m 210 keV 0 eV 0 fm 0 fm Target initStep + 1 4.94 mm -204 mum -2.42 m 0 eV 210 keV 87.9 mum 87.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 479, Parent ID = 478 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.22 mm 492 mum -2.43 m 189 keV 0 eV 0 fm 0 fm Target initStep + 1 2.22 mm 493 mum -2.43 m 0 eV 189 keV 74.8 mum 74.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 140, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -87.5 mum 149 mum -2.43 m 66.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -13.4 mum 276 mum -2.42 m 0 eV 0 eV 3.5 mm 3.5 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 482, Parent ID = 140 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -13.4 mum 276 mum -2.42 m 26.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 66.6 mum 374 mum -2.42 m 18.1 MeV 1.29 MeV 710 mum 710 mum Target eBrem + 2 -172 mum 535 mum -2.42 m 16.2 MeV 1.23 MeV 1.11 mm 1.82 mm Target eBrem + 3 -292 mum 557 mum -2.42 m 13.4 MeV 420 keV 396 mum 2.21 mm Target eBrem + 4 -311 mum 158 mum -2.42 m 10.1 MeV 2.16 MeV 1.79 mm 4 mm Target eBrem + 5 9.29 mum 798 mum -2.42 m 8.67 MeV 1.04 MeV 1.04 mm 5.04 mm Target eBrem + 6 -40.5 mum 885 mum -2.42 m 7.45 MeV 118 keV 121 mum 5.16 mm Target eBrem + 7 -185 mum 1.19 mm -2.42 m 0 eV 400 keV 371 mum 5.53 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 490, Parent ID = 482 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -185 mum 1.19 mm -2.42 m 7.65 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 cm 1.87 cm -2.4 m 7.65 MeV 0 eV 2.8 cm 2.8 cm Target Transportation + 2 -1.59 m 2.4 m 14.2 cm 7.65 MeV 0 eV 3.82 m 3.85 m Tracker Transportation + 3 -1.93 m 2.91 m 68.6 cm 7.65 MeV 0 eV 81.9 cm 4.67 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 489, Parent ID = 482 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -185 mum 1.19 mm -2.42 m 427 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.52 mm 5.03 mm -2.43 m 269 keV 0 eV 1.14 cm 1.14 cm Target compt + 2 -3.5 mm 5.04 mm -2.43 m 0 eV 88 keV 35 mum 1.14 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 492, Parent ID = 489 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.5 mm 5.04 mm -2.43 m 181 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.49 mm 5.04 mm -2.43 m 0 eV 181 keV 70.2 mum 70.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 491, Parent ID = 489 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.52 mm 5.03 mm -2.43 m 158 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.53 mm 5.03 mm -2.43 m 0 eV 158 keV 56.7 mum 56.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 488, Parent ID = 482 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -40.5 mum 885 mum -2.42 m 1.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.24 mm 4.66 mm -2.42 m 247 keV 0 eV 5.12 mm 5.12 mm Target compt + 2 -2.11 mm 3.12 mm -2.42 m 0 eV 88 keV 1.78 mm 6.9 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 494, Parent ID = 488 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.11 mm 3.12 mm -2.42 m 159 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.11 mm 3.12 mm -2.42 m 0 eV 159 keV 57.5 mum 57.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 493, Parent ID = 488 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.24 mm 4.66 mm -2.42 m 857 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.24 mm 4.7 mm -2.42 m 0 eV 857 keV 599 mum 599 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 487, Parent ID = 482 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.29 mum 798 mum -2.42 m 378 keV 0 eV 0 fm 0 fm Target initStep + 1 -72.7 mum 996 mum -2.42 m 185 keV 0 eV 260 mum 260 mum Target compt + 2 513 mum 128 mum -2.42 m 0 eV 88 keV 1.21 mm 1.47 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 496, Parent ID = 487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 513 mum 128 mum -2.42 m 96.7 keV 0 eV 0 fm 0 fm Target initStep + 1 513 mum 127 mum -2.42 m 0 eV 96.7 keV 26.2 mum 26.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 495, Parent ID = 487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -72.7 mum 996 mum -2.42 m 193 keV 0 eV 0 fm 0 fm Target initStep + 1 -74.8 mum 1 mm -2.42 m 0 eV 193 keV 77.6 mum 77.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 486, Parent ID = 482 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -311 mum 158 mum -2.42 m 1.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -488 mum 2.03 mm -2.42 m 899 keV 0 eV 3.12 mm 3.12 mm Target compt + 2 -3.54 mm 1.2 cm -2.41 m 677 keV 0 eV 1.18 cm 1.49 cm Target compt + 3 -4.22 mm 1.46 cm -2.41 m 0 eV 88 keV 5.9 mm 2.08 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 499, Parent ID = 486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.22 mm 1.46 cm -2.41 m 589 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.23 mm 1.46 cm -2.41 m 0 eV 589 keV 375 mum 375 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 498, Parent ID = 486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.54 mm 1.2 cm -2.41 m 222 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.54 mm 1.2 cm -2.41 m 0 eV 222 keV 95.6 mum 95.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 497, Parent ID = 486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -488 mum 2.03 mm -2.42 m 205 keV 0 eV 0 fm 0 fm Target initStep + 1 -486 mum 2.03 mm -2.42 m 0 eV 205 keV 84.5 mum 84.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 485, Parent ID = 482 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -292 mum 557 mum -2.42 m 2.46 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.82 mm 2.57 mm -2.41 m 2.17 MeV 0 eV 1.25 cm 1.25 cm Target compt + 2 -6.4 mm 5.31 mm -2.4 m 0 eV 0 eV 7.39 mm 1.99 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 502, Parent ID = 485 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.4 mm 5.31 mm -2.4 m 528 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.39 mm 5.32 mm -2.4 m 0 eV 528 keV 325 mum 325 mum Target eIoni + 2 -6.39 mm 5.32 mm -2.4 m 0 eV 0 eV 0 fm 325 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 504, Parent ID = 502 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.39 mm 5.32 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.32 mm 5.28 mm -2.41 m 191 keV 0 eV 3.05 mm 3.05 mm Target compt + 2 -7.62 mm 5.68 mm -2.41 m 0 eV 88 keV 822 mum 3.87 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 506, Parent ID = 504 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.62 mm 5.68 mm -2.41 m 103 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.62 mm 5.69 mm -2.41 m 0 eV 103 keV 28.8 mum 28.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 505, Parent ID = 504 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.32 mm 5.28 mm -2.41 m 320 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.32 mm 5.27 mm -2.41 m 0 eV 320 keV 163 mum 163 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 503, Parent ID = 502 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.39 mm 5.32 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.75 mm 5.38 mm -2.4 m 511 keV 0 eV 4.17 mm 4.17 mm Target Transportation + 2 2.4 m 6.07 cm 54.3 cm 511 keV 0 eV 3.8 m 3.8 m Tracker Transportation + 3 2.91 m 7.24 cm 1.17 m 511 keV 0 eV 80.6 cm 4.61 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 501, Parent ID = 485 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.4 mm 5.31 mm -2.4 m 624 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.38 mm 5.3 mm -2.4 m 93.2 keV 54 keV 56.7 mum 56.7 mum Target eBrem + 2 -6.38 mm 5.3 mm -2.4 m 0 eV 93.2 keV 24.7 mum 81.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 507, Parent ID = 501 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.38 mm 5.3 mm -2.4 m 477 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.56 mm 2.52 mm -2.41 m 0 eV 88 keV 3.5 mm 3.5 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 508, Parent ID = 507 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.56 mm 2.52 mm -2.41 m 388 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.56 mm 2.5 mm -2.41 m 0 eV 388 keV 214 mum 214 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 500, Parent ID = 485 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.82 mm 2.57 mm -2.41 m 290 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.82 mm 2.57 mm -2.41 m 0 eV 290 keV 142 mum 142 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 484, Parent ID = 482 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -172 mum 535 mum -2.42 m 587 keV 0 eV 0 fm 0 fm Target initStep + 1 -463 mum 579 mum -2.42 m 0 eV 88 keV 1.72 mm 1.72 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 509, Parent ID = 484 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -463 mum 579 mum -2.42 m 499 keV 0 eV 0 fm 0 fm Target initStep + 1 -456 mum 586 mum -2.42 m 0 eV 499 keV 301 mum 301 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 483, Parent ID = 482 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 66.6 mum 374 mum -2.42 m 7.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3 mm -221 mum -2.4 m 7.21 MeV 0 eV 2.28 cm 2.28 cm Target Transportation + 2 -4.94 cm -2.11 cm -1.6 m 7.21 MeV 0 eV 80.2 cm 82.5 cm Tracker Transportation + 3 -6.14 cm -2.64 cm -1.4 m 7.21 MeV 0 eV 20 cm 1.02 m Chamber Transportation + 4 -9.75 cm -4.2 cm -80 cm 7.21 MeV 0 eV 60.1 cm 1.63 m Tracker Transportation + 5 -11 cm -4.73 cm -60 cm 7.21 MeV 0 eV 20 cm 1.83 m Chamber Transportation + 6 -14.6 cm -6.29 cm 0 fm 7.21 MeV 0 eV 60.1 cm 2.43 m Tracker Transportation + 7 -15.8 cm -6.82 cm 20 cm 7.21 MeV 0 eV 20 cm 2.63 m Chamber Transportation + 8 -19.4 cm -8.39 cm 80 cm 7.21 MeV 0 eV 60.1 cm 3.23 m Tracker Transportation + 9 -20.6 cm -8.91 cm 1 m 7.21 MeV 0 eV 20 cm 3.43 m Chamber Transportation + 10 -24.2 cm -10.5 cm 1.6 m 7.21 MeV 0 eV 60.1 cm 4.03 m Tracker Transportation + 11 -25.4 cm -11 cm 1.8 m 7.21 MeV 0 eV 20 cm 4.23 m Chamber Transportation + 12 -29 cm -12.6 cm 2.4 m 7.21 MeV 0 eV 60.1 cm 4.83 m Tracker Transportation + 13 -32.1 cm -13.9 cm 2.91 m 7.21 MeV 0 eV 51.1 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 481, Parent ID = 140 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -13.4 mum 276 mum -2.42 m 39 MeV 0 eV 0 fm 0 fm Target initStep + 1 20.3 mum 282 mum -2.42 m 37.9 MeV 427 keV 374 mum 374 mum Target eBrem + 2 54.1 mum 274 mum -2.42 m 15.4 MeV 1.9 MeV 515 mum 889 mum Target eBrem + 3 -23 mum 184 mum -2.42 m 11.4 MeV 1.07 MeV 864 mum 1.75 mm Target eBrem + 4 -163 mum 232 mum -2.42 m 10.7 MeV 227 keV 179 mum 1.93 mm Target eBrem + 5 585 mum 870 mum -2.42 m 4.79 MeV 4.14 MeV 3.14 mm 5.07 mm Target eBrem + 6 376 mum 928 mum -2.42 m 3.72 MeV 336 keV 272 mum 5.34 mm Target eBrem + 7 682 mum -341 mum -2.42 m 635 keV 3.08 MeV 2 mm 7.35 mm Target eBrem + 8 674 mum -341 mum -2.42 m 0 eV 635 keV 412 mum 7.76 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 515, Parent ID = 481 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 376 mum 928 mum -2.42 m 740 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.11 mm -2.98 mm -2.42 m 0 eV 88 keV 5.64 mm 5.64 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 516, Parent ID = 515 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.11 mm -2.98 mm -2.42 m 652 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.1 mm -3.01 mm -2.42 m 0 eV 652 keV 426 mum 426 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 514, Parent ID = 481 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 585 mum 870 mum -2.42 m 1.81 MeV 0 eV 0 fm 0 fm Target initStep + 1 -494 mum 648 mum -2.42 m 243 keV 0 eV 1.15 mm 1.15 mm Target compt + 2 959 mum 16.5 mum -2.42 m 0 eV 88 keV 1.85 mm 3 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 518, Parent ID = 514 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 959 mum 16.5 mum -2.42 m 155 keV 0 eV 0 fm 0 fm Target initStep + 1 962 mum 15.8 mum -2.42 m 0 eV 155 keV 55.4 mum 55.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 517, Parent ID = 514 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -494 mum 648 mum -2.42 m 1.56 MeV 0 eV 0 fm 0 fm Target initStep + 1 -598 mum 633 mum -2.42 m 0 eV 1.56 MeV 1.2 mm 1.2 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 513, Parent ID = 481 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -163 mum 232 mum -2.42 m 400 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.16 mm 1.29 mm -2.42 m 0 eV 88 keV 2.48 mm 2.48 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 519, Parent ID = 513 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.16 mm 1.29 mm -2.42 m 312 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.16 mm 1.3 mm -2.42 m 0 eV 312 keV 157 mum 157 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 512, Parent ID = 481 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -23 mum 184 mum -2.42 m 2.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.07 mm 2.47 mm -2.42 m 270 keV 0 eV 5.55 mm 5.55 mm Target compt + 2 -2.36 mm 3.09 mm -2.42 m 0 eV 88 keV 4.5 mm 1 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 521, Parent ID = 512 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.36 mm 3.09 mm -2.42 m 182 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.35 mm 3.09 mm -2.42 m 0 eV 182 keV 70.8 mum 70.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 520, Parent ID = 512 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.07 mm 2.47 mm -2.42 m 2.66 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.25 mm 2.57 mm -2.42 m 0 eV 2.66 MeV 2.09 mm 2.09 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 511, Parent ID = 481 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 54.1 mum 274 mum -2.42 m 20.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.92 mm -25 mum -2.4 m 20.7 MeV 0 eV 2.29 cm 2.29 cm Target Transportation + 2 14.1 cm -1.06 cm -1.6 m 20.7 MeV 0 eV 81.2 cm 83.5 cm Tracker Transportation + 3 17.5 cm -1.33 cm -1.4 m 20.7 MeV 0 eV 20.3 cm 1.04 m Chamber Transportation + 4 27.8 cm -2.13 cm -80 cm 20.7 MeV 0 eV 60.9 cm 1.65 m Tracker Transportation + 5 31.2 cm -2.39 cm -60 cm 20.7 MeV 0 eV 20.3 cm 1.85 m Chamber Transportation + 6 41.5 cm -3.19 cm 0 fm 20.7 MeV 0 eV 60.9 cm 2.46 m Tracker Transportation + 7 45 cm -3.45 cm 20 cm 20.7 MeV 0 eV 20.3 cm 2.66 m Chamber Transportation + 8 55.2 cm -4.25 cm 80 cm 20.7 MeV 0 eV 60.9 cm 3.27 m Tracker Transportation + 9 58.7 cm -4.51 cm 1 m 20.7 MeV 0 eV 20.3 cm 3.47 m Chamber Transportation + 10 69 cm -5.31 cm 1.6 m 20.7 MeV 0 eV 60.9 cm 4.08 m Tracker Transportation + 11 72.4 cm -5.58 cm 1.8 m 20.7 MeV 0 eV 20.3 cm 4.28 m Chamber Transportation + 12 82.7 cm -6.37 cm 2.4 m 20.7 MeV 0 eV 60.9 cm 4.89 m Tracker Transportation + 13 91.4 cm -7.05 cm 2.91 m 20.7 MeV 0 eV 51.7 cm 5.41 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 510, Parent ID = 481 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 20.3 mum 282 mum -2.42 m 612 keV 0 eV 0 fm 0 fm Target initStep + 1 494 mum 795 mum -2.42 m 0 eV 88 keV 7.1 mm 7.1 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 522, Parent ID = 510 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 494 mum 795 mum -2.42 m 524 keV 0 eV 0 fm 0 fm Target initStep + 1 438 mum 769 mum -2.42 m 385 keV 139 keV 136 mum 136 mum Target eBrem + 2 443 mum 768 mum -2.42 m 0 eV 385 keV 212 mum 347 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 139, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -88.1 mum 148 mum -2.43 m 2.94 MeV 0 eV 0 fm 0 fm Target initStep + 1 469 mum 1.04 mm -2.4 m 2.94 MeV 0 eV 2.7 cm 2.7 cm Target Transportation + 2 1.7 cm 2.75 cm -1.6 m 2.94 MeV 0 eV 80.1 cm 82.8 cm Tracker Transportation + 3 2.11 cm 3.42 cm -1.4 m 2.94 MeV 0 eV 20 cm 1.03 m Chamber Transportation + 4 3.35 cm 5.4 cm -80 cm 2.94 MeV 0 eV 60 cm 1.63 m Tracker Transportation + 5 3.77 cm 6.06 cm -60 cm 2.94 MeV 0 eV 20 cm 1.83 m Chamber Transportation + 6 5.01 cm 8.05 cm 0 fm 2.94 MeV 0 eV 60 cm 2.43 m Tracker Transportation + 7 5.42 cm 8.71 cm 20 cm 2.94 MeV 0 eV 20 cm 2.63 m Chamber Transportation + 8 6.66 cm 10.7 cm 80 cm 2.94 MeV 0 eV 60 cm 3.23 m Tracker Transportation + 9 7.07 cm 11.4 cm 1 m 2.94 MeV 0 eV 20 cm 3.43 m Chamber Transportation + 10 8.31 cm 13.3 cm 1.6 m 2.94 MeV 0 eV 60 cm 4.03 m Tracker Transportation + 11 8.73 cm 14 cm 1.8 m 2.94 MeV 0 eV 20 cm 4.23 m Chamber Transportation + 12 9.97 cm 16 cm 2.4 m 2.94 MeV 0 eV 60 cm 4.83 m Tracker Transportation + 13 11 cm 17.7 cm 2.91 m 2.94 MeV 0 eV 51 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 138, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -76 mum 90.5 mum -2.43 m 1.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 -256 mum 663 mum -2.41 m 891 keV 0 eV 2.12 cm 2.12 cm Target compt + 2 -1.79 mm 5.52 mm -2.4 m 672 keV 0 eV 8.67 mm 2.98 cm Target compt + 3 -1.93 mm 5.53 mm -2.4 m 672 keV 0 eV 330 mum 3.02 cm Target Transportation + 4 -1.1 m 2.04 cm 0 fm 672 keV 0 eV 2.64 m 2.67 m Tracker Transportation + 5 -1.1 m 2.04 cm 1.32 cm 672 keV 0 eV 1.45 cm 2.68 m Chamber Transportation + 6 -1.46 m 2.53 cm 80 cm 672 keV 0 eV 86.5 cm 3.55 m Tracker Transportation + 7 -1.54 m 2.63 cm 95.9 cm 672 keV 0 eV 17.5 cm 3.72 m Chamber Transportation + 8 -1.83 m 3.03 cm 1.6 m 672 keV 0 eV 70.5 cm 4.43 m Tracker Transportation + 9 -1.92 m 3.15 cm 1.8 m 672 keV 0 eV 22 cm 4.65 m Chamber Transportation + 10 -2.19 m 3.52 cm 2.4 m 672 keV 0 eV 66 cm 5.31 m Tracker Transportation + 11 -2.43 m 3.84 cm 2.91 m 672 keV 0 eV 56.1 cm 5.87 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 524, Parent ID = 138 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.79 mm 5.52 mm -2.4 m 219 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.79 mm 5.53 mm -2.4 m 0 eV 219 keV 94.2 mum 94.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 523, Parent ID = 138 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -256 mum 663 mum -2.41 m 391 keV 0 eV 0 fm 0 fm Target initStep + 1 -253 mum 654 mum -2.41 m 0 eV 391 keV 216 mum 216 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 137, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -75.1 mum 87.8 mum -2.43 m 406 keV 0 eV 0 fm 0 fm Target initStep + 1 -97.2 mum 175 mum -2.43 m 0 eV 88 keV 3.17 mm 3.17 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 525, Parent ID = 137 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -97.2 mum 175 mum -2.43 m 318 keV 0 eV 0 fm 0 fm Target initStep + 1 -89.4 mum 172 mum -2.43 m 0 eV 318 keV 161 mum 161 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 136, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -72.8 mum 82.8 mum -2.43 m 13.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -148 mum 341 mum -2.42 m 2.52 MeV 0 eV 1.12 cm 1.12 cm Target compt + 2 -4.48 mm -5.75 mm -2.41 m 500 keV 0 eV 1.39 cm 2.52 cm Target compt + 3 -4.12 mm -1.09 cm -2.41 m 0 eV 88 keV 5.34 mm 3.05 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 528, Parent ID = 136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.12 mm -1.09 cm -2.41 m 412 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.13 mm -1.09 cm -2.41 m 0 eV 412 keV 232 mum 232 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 527, Parent ID = 136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.48 mm -5.75 mm -2.41 m 2.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.07 mm -5.81 mm -2.41 m 1.06 MeV 961 keV 841 mum 841 mum Target eBrem + 2 -4.05 mm -5.76 mm -2.41 m 0 eV 1.06 MeV 774 mum 1.61 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 526, Parent ID = 136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -148 mum 341 mum -2.42 m 10.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.18 mm 290 mum -2.42 m 7.82 MeV 2.43 MeV 1.89 mm 1.89 mm Target eBrem + 2 -1.19 mm 297 mum -2.42 m 7.25 MeV 19.3 keV 17.8 mum 1.91 mm Target eBrem + 3 -1.2 mm 301 mum -2.42 m 3.4 MeV 7.34 keV 10 mum 1.92 mm Target eBrem + 4 -1.5 mm 196 mum -2.42 m 1.76 MeV 574 keV 607 mum 2.53 mm Target eBrem + 5 -1.8 mm 40.2 mum -2.42 m 751 keV 568 keV 559 mum 3.09 mm Target eBrem + 6 -1.81 mm 7.03 mum -2.42 m 0 eV 751 keV 510 mum 3.6 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 533, Parent ID = 526 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.8 mm 40.2 mum -2.42 m 442 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.45 mm -3.17 mm -2.41 m 167 keV 0 eV 1.02 cm 1.02 cm Target compt + 2 -8.14 mm -3 mm -2.41 m 0 eV 88 keV 376 mum 1.05 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 535, Parent ID = 533 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.14 mm -3 mm -2.41 m 79 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.14 mm -3 mm -2.41 m 0 eV 79 keV 18.8 mum 18.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 534, Parent ID = 533 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.45 mm -3.17 mm -2.41 m 275 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.46 mm -3.17 mm -2.41 m 0 eV 275 keV 131 mum 131 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 532, Parent ID = 526 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.5 mm 196 mum -2.42 m 1.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.01 cm 8.68 mm -2.4 m 1.07 MeV 0 eV 2.6 cm 2.6 cm Target Transportation + 2 -2.4 m 1.09 m -34 cm 1.07 MeV 0 eV 3.33 m 3.36 m Tracker Transportation + 3 -2.91 m 1.33 m 10.2 cm 1.07 MeV 0 eV 71.4 cm 4.07 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 531, Parent ID = 526 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.2 mm 301 mum -2.42 m 3.84 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 6.5 mm -2.42 m 3.84 MeV 0 eV 2.48 cm 2.48 cm Target Transportation + 2 -2.91 m 75.8 cm -2.85 m 3.84 MeV 0 eV 3.01 m 3.04 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 530, Parent ID = 526 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.19 mm 297 mum -2.42 m 545 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.87 mm 2.89 mm -2.42 m 175 keV 0 eV 5.51 mm 5.51 mm Target compt + 2 -5.64 mm 2.77 mm -2.42 m 0 eV 88 keV 262 mum 5.78 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 537, Parent ID = 530 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.64 mm 2.77 mm -2.42 m 86.5 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.63 mm 2.77 mm -2.42 m 0 eV 86.5 keV 21.9 mum 21.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 536, Parent ID = 530 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.87 mm 2.89 mm -2.42 m 370 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.88 mm 2.9 mm -2.42 m 0 eV 370 keV 200 mum 200 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 529, Parent ID = 526 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.18 mm 290 mum -2.42 m 424 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.13 cm 5.43 mm -2.42 m 181 keV 0 eV 1.16 cm 1.16 cm Target compt + 2 -1.12 cm 5.26 mm -2.42 m 0 eV 88 keV 185 mum 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 539, Parent ID = 529 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.12 cm 5.26 mm -2.42 m 92.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.12 cm 5.26 mm -2.42 m 0 eV 92.9 keV 24.6 mum 24.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 538, Parent ID = 529 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.13 cm 5.43 mm -2.42 m 243 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.13 cm 5.43 mm -2.42 m 0 eV 243 keV 109 mum 109 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 135, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -66.8 mum 73.2 mum -2.43 m 75.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -119 mum 131 mum -2.43 m 0 eV 0 eV 3.13 mm 3.13 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 541, Parent ID = 135 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -119 mum 131 mum -2.43 m 67.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -120 mum 140 mum -2.43 m 66.1 MeV 578 keV 311 mum 311 mum Target eBrem + 2 -158 mum 111 mum -2.43 m 64.8 MeV 634 keV 418 mum 729 mum Target eBrem + 3 -170 mum 114 mum -2.43 m 60.2 MeV 263 keV 212 mum 941 mum Target eBrem + 4 -176 mum 112 mum -2.43 m 58.5 MeV 73.1 keV 67.7 mum 1.01 mm Target eBrem + 5 -251 mum 8.3 mum -2.42 m 56.1 MeV 1.4 MeV 1.23 mm 2.24 mm Target eBrem + 6 -228 mum 17.4 mum -2.42 m 53.6 MeV 403 keV 338 mum 2.57 mm Target eBrem + 7 -155 mum 40 mum -2.42 m 52.1 MeV 788 keV 704 mum 3.28 mm Target eBrem + 8 -75 mum 6.16 mum -2.42 m 43.4 MeV 1.69 MeV 1.25 mm 4.53 mm Target eBrem + 9 -32.5 mum 12.6 mum -2.42 m 42.6 MeV 200 keV 143 mum 4.67 mm Target eBrem + 10 -15.6 mum 11.1 mum -2.42 m 39.4 MeV 69 keV 59.5 mum 4.73 mm Target eBrem + 11 451 mum -336 mum -2.42 m 20.8 MeV 2.52 MeV 2.07 mm 6.8 mm Target eBrem + 12 376 mum -456 mum -2.42 m 18.7 MeV 1.63 MeV 1.09 mm 7.88 mm Target eBrem + 13 246 mum 1.9 mm -2.42 m 12.2 MeV 4.55 MeV 3.46 mm 1.13 cm Target eBrem + 14 4.63 mm -807 mum -2.42 m 4.47 MeV 5.97 MeV 4.8 mm 1.61 cm Target eBrem + 15 4.51 mm -831 mum -2.42 m 2.85 MeV 210 keV 156 mum 1.63 cm Target eBrem + 16 4.14 mm -907 mum -2.42 m 0 eV 2.85 MeV 2.28 mm 1.86 cm Target eIoni + 17 4.14 mm -907 mum -2.42 m 0 eV 0 eV 0 fm 1.86 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 558, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.14 mm -907 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.11 cm -8.74 mm -2.42 m 272 keV 0 eV 1.28 cm 1.28 cm Target compt + 2 1.15 cm -8.46 mm -2.42 m 0 eV 88 keV 499 mum 1.33 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 560, Parent ID = 558 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 cm -8.46 mm -2.42 m 184 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 cm -8.46 mm -2.42 m 0 eV 184 keV 72.2 mum 72.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 559, Parent ID = 558 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.11 cm -8.74 mm -2.42 m 239 keV 0 eV 0 fm 0 fm Target initStep + 1 1.11 cm -8.75 mm -2.42 m 0 eV 239 keV 107 mum 107 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 557, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.14 mm -907 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.57 mm -256 mum -2.41 m 263 keV 0 eV 1.06 mm 1.06 mm Target compt + 2 3.7 mm -707 mum -2.41 m 158 keV 0 eV 834 mum 1.89 mm Target compt + 3 3.73 mm -1.06 mm -2.41 m 0 eV 88 keV 552 mum 2.45 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 563, Parent ID = 557 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.73 mm -1.06 mm -2.41 m 70.2 keV 0 eV 0 fm 0 fm Target initStep + 1 3.73 mm -1.06 mm -2.41 m 0 eV 70.2 keV 15.6 mum 15.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 562, Parent ID = 557 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.7 mm -707 mum -2.41 m 105 keV 0 eV 0 fm 0 fm Target initStep + 1 3.7 mm -707 mum -2.41 m 0 eV 105 keV 29.8 mum 29.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 561, Parent ID = 557 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.57 mm -256 mum -2.41 m 248 keV 0 eV 0 fm 0 fm Target initStep + 1 3.56 mm -250 mum -2.41 m 0 eV 248 keV 113 mum 113 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 556, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.51 mm -831 mum -2.42 m 1.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.38 mm -4.05 mm -2.41 m 710 keV 0 eV 1.55 cm 1.55 cm Target compt + 2 -1.45 cm 339 mum -2.4 m 710 keV 0 eV 1.14 cm 2.69 cm Target Transportation + 3 -2.4 m 2.04 m 1.83 m 710 keV 0 eV 5.27 m 5.29 m Tracker Transportation + 4 -2.91 m 2.47 m 2.74 m 710 keV 0 eV 1.13 m 6.42 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 564, Parent ID = 556 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.38 mm -4.05 mm -2.41 m 698 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.4 mm -4.07 mm -2.41 m 0 eV 698 keV 465 mum 465 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 555, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.63 mm -807 mum -2.42 m 1.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 2 mm -2.41 m 1.8 MeV 0 eV 3.11 cm 3.11 cm Target Transportation + 2 -4.58 cm 3.97 mm -2.4 m 1.8 MeV 0 eV 2.18 cm 5.29 cm World Transportation + 3 -2.4 m 22.7 cm -1.68 m 1.8 MeV 0 eV 2.47 m 2.52 m Tracker Transportation + 4 -2.91 m 27.6 cm -1.53 m 1.8 MeV 0 eV 53.5 cm 3.06 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 554, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 246 mum 1.9 mm -2.42 m 1.96 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.36 mm -1.09 cm -2.4 m 1.96 MeV 0 eV 2.13 cm 2.13 cm Target Transportation + 2 1.34 m -2.4 m 49.1 cm 1.96 MeV 0 eV 3.98 m 4 m Tracker Transportation + 3 1.62 m -2.91 m 1.11 m 1.96 MeV 0 eV 84.9 cm 4.85 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 553, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 376 mum -456 mum -2.42 m 418 keV 0 eV 0 fm 0 fm Target initStep + 1 446 mum -293 mum -2.42 m 218 keV 0 eV 942 mum 942 mum Target compt + 2 673 mum -801 mum -2.42 m 0 eV 88 keV 557 mum 1.5 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 566, Parent ID = 553 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 673 mum -801 mum -2.42 m 130 keV 0 eV 0 fm 0 fm Target initStep + 1 673 mum -803 mum -2.42 m 0 eV 130 keV 42.2 mum 42.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 565, Parent ID = 553 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 446 mum -293 mum -2.42 m 200 keV 0 eV 0 fm 0 fm Target initStep + 1 445 mum -290 mum -2.42 m 0 eV 200 keV 81.4 mum 81.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 552, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 451 mum -336 mum -2.42 m 16.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 786 mum 22.4 mum -2.41 m 0 eV 0 eV 6.1 mm 6.1 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 568, Parent ID = 552 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 786 mum 22.4 mum -2.41 m 9.96 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.59 mm -49.8 mum -2.41 m 3.2 MeV 4.96 MeV 3.39 mm 3.39 mm Target eBrem + 2 -2.58 mm 499 mum -2.41 m 635 keV 2.28 MeV 1.74 mm 5.13 mm Target eBrem + 3 -2.6 mm 531 mum -2.41 m 0 eV 635 keV 415 mum 5.54 mm Target eIoni + 4 -2.6 mm 531 mum -2.41 m 0 eV 0 eV 0 fm 5.54 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 572, Parent ID = 568 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.6 mm 531 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.39 mm 1.95 mm -2.41 m 0 eV 88 keV 2.15 mm 2.15 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 573, Parent ID = 572 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.39 mm 1.95 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.38 mm 1.96 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 571, Parent ID = 568 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.6 mm 531 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.97 mm -8.09 mm -2.42 m 0 eV 88 keV 1.31 cm 1.31 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 574, Parent ID = 571 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.97 mm -8.09 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.98 mm -8.1 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 570, Parent ID = 568 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.58 mm 499 mum -2.41 m 283 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.05 mm 1.14 mm -2.41 m 0 eV 88 keV 899 mum 899 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 575, Parent ID = 570 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.05 mm 1.14 mm -2.41 m 195 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.05 mm 1.14 mm -2.41 m 0 eV 195 keV 78.5 mum 78.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 569, Parent ID = 568 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.59 mm -49.8 mum -2.41 m 1.79 MeV 0 eV 0 fm 0 fm Target initStep + 1 80.5 mum 2.27 mm -2.41 m 650 keV 0 eV 4.15 mm 4.15 mm Target compt + 2 -1.12 mm 2.18 mm -2.4 m 0 eV 88 keV 3.13 mm 7.28 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 577, Parent ID = 569 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.12 mm 2.18 mm -2.4 m 562 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.12 mm 2.19 mm -2.4 m 0 eV 562 keV 352 mum 352 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 576, Parent ID = 569 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 80.5 mum 2.27 mm -2.41 m 1.14 MeV 0 eV 0 fm 0 fm Target initStep + 1 124 mum 2.32 mm -2.41 m 0 eV 1.14 MeV 843 mum 843 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 567, Parent ID = 552 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 786 mum 22.4 mum -2.41 m 5.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 787 mum 839 nm -2.41 m 4.17 MeV 126 keV 104 mum 104 mum Target eBrem + 2 104 mum -637 mum -2.41 m 1.63 MeV 2.55 MeV 1.25 mm 1.35 mm Target eBrem + 3 -13.4 mum -682 mum -2.41 m 1.04 MeV 232 keV 267 mum 1.62 mm Target eBrem + 4 -4.77 mum -669 mum -2.41 m 0 eV 1.04 MeV 754 mum 2.37 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 579, Parent ID = 567 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -13.4 mum -682 mum -2.41 m 355 keV 0 eV 0 fm 0 fm Target initStep + 1 259 mum 538 mum -2.41 m 352 keV 0 eV 6.4 mm 6.4 mm Target compt + 2 289 mum 1.08 mm -2.41 m 174 keV 0 eV 1.56 mm 7.96 mm Target compt + 3 87.7 mum 829 mum -2.41 m 0 eV 88 keV 332 mum 8.29 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 582, Parent ID = 579 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 87.7 mum 829 mum -2.41 m 85.5 keV 0 eV 0 fm 0 fm Target initStep + 1 87.4 mum 827 mum -2.41 m 0 eV 85.5 keV 21.5 mum 21.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 581, Parent ID = 579 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 289 mum 1.08 mm -2.41 m 178 keV 0 eV 0 fm 0 fm Target initStep + 1 290 mum 1.08 mm -2.41 m 0 eV 178 keV 68.9 mum 68.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 580, Parent ID = 579 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 259 mum 538 mum -2.41 m 3.3 keV 0 eV 0 fm 0 fm Target initStep + 1 259 mum 538 mum -2.41 m 0 eV 3.3 keV 143 nm 143 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 578, Parent ID = 567 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 787 mum 839 nm -2.41 m 851 keV 0 eV 0 fm 0 fm Target initStep + 1 474 mum -34.9 mum -2.41 m 0 eV 88 keV 1.56 mm 1.56 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 583, Parent ID = 578 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 474 mum -34.9 mum -2.41 m 763 keV 0 eV 0 fm 0 fm Target initStep + 1 468 mum 69.7 mum -2.41 m 589 keV 174 keV 184 mum 184 mum Target eBrem + 2 443 mum 70.8 mum -2.41 m 0 eV 589 keV 375 mum 559 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 551, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -15.6 mum 11.1 mum -2.42 m 3.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.57 mm -1.63 mm -2.4 m 3.06 MeV 0 eV 2.19 cm 2.19 cm Target Transportation + 2 13.7 cm -6.25 cm -1.6 m 3.06 MeV 0 eV 81.3 cm 83.5 cm Tracker Transportation + 3 17 cm -7.78 cm -1.4 m 3.06 MeV 0 eV 20.3 cm 1.04 m Chamber Transportation + 4 27 cm -12.3 cm -80 cm 3.06 MeV 0 eV 61 cm 1.65 m Tracker Transportation + 5 30.3 cm -13.9 cm -60 cm 3.06 MeV 0 eV 20.3 cm 1.85 m Chamber Transportation + 6 40.3 cm -18.4 cm 0 fm 3.06 MeV 0 eV 61 cm 2.46 m Tracker Transportation + 7 43.7 cm -20 cm 20 cm 3.06 MeV 0 eV 20.3 cm 2.67 m Chamber Transportation + 8 53.6 cm -24.5 cm 80 cm 3.06 MeV 0 eV 61 cm 3.28 m Tracker Transportation + 9 57 cm -26 cm 1 m 3.06 MeV 0 eV 20.3 cm 3.48 m Chamber Transportation + 10 67 cm -30.6 cm 1.6 m 3.06 MeV 0 eV 61 cm 4.09 m Tracker Transportation + 11 70.3 cm -32.1 cm 1.8 m 3.06 MeV 0 eV 20.3 cm 4.29 m Chamber Transportation + 12 80.3 cm -36.7 cm 2.4 m 3.06 MeV 0 eV 61 cm 4.9 m Tracker Transportation + 13 88.8 cm -40.6 cm 2.91 m 3.06 MeV 0 eV 51.8 cm 5.42 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 550, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -32.5 mum 12.6 mum -2.42 m 670 keV 0 eV 0 fm 0 fm Target initStep + 1 2.23 mm -42.8 mum -2.41 m 209 keV 0 eV 8.65 mm 8.65 mm Target compt + 2 2.05 mm -14.9 mum -2.41 m 195 keV 0 eV 208 mum 8.86 mm Target compt + 3 1.91 mm 12.4 mum -2.41 m 0 eV 88 keV 299 mum 9.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 586, Parent ID = 550 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.91 mm 12.4 mum -2.41 m 107 keV 0 eV 0 fm 0 fm Target initStep + 1 1.92 mm 12 mum -2.41 m 0 eV 107 keV 30.6 mum 30.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 585, Parent ID = 550 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.05 mm -14.9 mum -2.41 m 14.5 keV 0 eV 0 fm 0 fm Target initStep + 1 2.05 mm -14.9 mum -2.41 m 0 eV 14.5 keV 1.23 mum 1.23 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 584, Parent ID = 550 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.23 mm -42.8 mum -2.41 m 461 keV 0 eV 0 fm 0 fm Target initStep + 1 2.24 mm -43.6 mum -2.41 m 0 eV 461 keV 271 mum 271 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 549, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -75 mum 6.16 mum -2.42 m 6.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.74 mm 511 mum -2.41 m 0 eV 0 eV 1.09 cm 1.09 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 588, Parent ID = 549 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.74 mm 511 mum -2.41 m 4.22 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.99 mm 604 mum -2.41 m 0 eV 4.22 MeV 3.35 mm 3.35 mm Target eIoni + 2 2.99 mm 604 mum -2.41 m 0 eV 0 eV 0 fm 3.35 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 590, Parent ID = 588 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.99 mm 604 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.55 mm 246 mum -2.41 m 0 eV 88 keV 1.04 cm 1.04 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 591, Parent ID = 590 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.55 mm 246 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.56 mm 244 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 589, Parent ID = 588 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.99 mm 604 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.69 mm 667 mum -2.41 m 0 eV 88 keV 1.85 mm 1.85 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 592, Parent ID = 589 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.69 mm 667 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.7 mm 679 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 587, Parent ID = 549 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.74 mm 511 mum -2.41 m 1.73 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.75 mm 493 mum -2.41 m 0 eV 1.73 MeV 1.33 mm 1.33 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 548, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -155 mum 40 mum -2.42 m 679 keV 0 eV 0 fm 0 fm Target initStep + 1 1.48 mm 801 mum -2.41 m 310 keV 0 eV 1.41 cm 1.41 cm Target compt + 2 7.37 mm -2.84 mm -2.41 m 0 eV 88 keV 6.94 mm 2.1 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 594, Parent ID = 548 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.37 mm -2.84 mm -2.41 m 222 keV 0 eV 0 fm 0 fm Target initStep + 1 7.38 mm -2.85 mm -2.41 m 0 eV 222 keV 95.6 mum 95.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 593, Parent ID = 548 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.48 mm 801 mum -2.41 m 369 keV 0 eV 0 fm 0 fm Target initStep + 1 1.47 mm 804 mum -2.41 m 0 eV 369 keV 200 mum 200 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 547, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -228 mum 17.4 mum -2.42 m 2.16 MeV 0 eV 0 fm 0 fm Target initStep + 1 35.1 mum 499 mum -2.42 m 421 keV 0 eV 5.26 mm 5.26 mm Target compt + 2 7.01 mm -2.08 mm -2.42 m 252 keV 0 eV 7.43 mm 1.27 cm Target compt + 3 6.77 mm -3.8 mm -2.42 m 0 eV 88 keV 1.99 mm 1.47 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 597, Parent ID = 547 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.77 mm -3.8 mm -2.42 m 164 keV 0 eV 0 fm 0 fm Target initStep + 1 6.76 mm -3.81 mm -2.42 m 0 eV 164 keV 60.5 mum 60.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 596, Parent ID = 547 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.01 mm -2.08 mm -2.42 m 168 keV 0 eV 0 fm 0 fm Target initStep + 1 7.01 mm -2.08 mm -2.42 m 0 eV 168 keV 62.8 mum 62.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 595, Parent ID = 547 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 35.1 mum 499 mum -2.42 m 1.74 MeV 0 eV 0 fm 0 fm Target initStep + 1 18 mum 519 mum -2.42 m 0 eV 1.74 MeV 1.34 mm 1.34 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 546, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -251 mum 8.3 mum -2.42 m 982 keV 0 eV 0 fm 0 fm Target initStep + 1 94 mum 397 mum -2.4 m 982 keV 0 eV 2.4 cm 2.4 cm Target Transportation + 2 1.16 cm 1.33 cm -1.6 m 982 keV 0 eV 80 cm 82.4 cm Tracker Transportation + 3 1.44 cm 1.66 cm -1.4 m 982 keV 0 eV 20 cm 1.02 m Chamber Transportation + 4 2.31 cm 2.63 cm -80 cm 982 keV 0 eV 60 cm 1.62 m Tracker Transportation + 5 2.59 cm 2.95 cm -60 cm 982 keV 0 eV 20 cm 1.82 m Chamber Transportation + 6 3.45 cm 3.92 cm 0 fm 982 keV 0 eV 60 cm 2.42 m Tracker Transportation + 7 3.74 cm 4.25 cm 20 cm 982 keV 0 eV 20 cm 2.62 m Chamber Transportation + 8 4.6 cm 5.22 cm 80 cm 982 keV 0 eV 60 cm 3.22 m Tracker Transportation + 9 4.89 cm 5.54 cm 1 m 982 keV 0 eV 20 cm 3.42 m Chamber Transportation + 10 5.75 cm 6.51 cm 1.6 m 982 keV 0 eV 60 cm 4.02 m Tracker Transportation + 11 6.04 cm 6.84 cm 1.8 m 982 keV 0 eV 20 cm 4.22 m Chamber Transportation + 12 6.9 cm 7.81 cm 2.4 m 982 keV 0 eV 60 cm 4.83 m Tracker Transportation + 13 7.63 cm 8.63 cm 2.91 m 982 keV 0 eV 51 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 545, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -176 mum 112 mum -2.43 m 1.62 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.21 mm 214 mum -2.4 m 1.62 MeV 0 eV 2.52 cm 2.52 cm Target Transportation + 2 -3.4 cm 3.44 mm -1.6 m 1.62 MeV 0 eV 80.1 cm 82.6 cm Tracker Transportation + 3 -4.22 cm 4.24 mm -1.4 m 1.62 MeV 0 eV 20 cm 1.03 m Chamber Transportation + 4 -6.67 cm 6.66 mm -80 cm 1.62 MeV 0 eV 60.1 cm 1.63 m Tracker Transportation + 5 -7.49 cm 7.46 mm -60 cm 1.62 MeV 0 eV 20 cm 1.83 m Chamber Transportation + 6 -9.95 cm 9.88 mm 0 fm 1.62 MeV 0 eV 60.1 cm 2.43 m Tracker Transportation + 7 -10.8 cm 1.07 cm 20 cm 1.62 MeV 0 eV 20 cm 2.63 m Chamber Transportation + 8 -13.2 cm 1.31 cm 80 cm 1.62 MeV 0 eV 60.1 cm 3.23 m Tracker Transportation + 9 -14 cm 1.39 cm 1 m 1.62 MeV 0 eV 20 cm 3.43 m Chamber Transportation + 10 -16.5 cm 1.63 cm 1.6 m 1.62 MeV 0 eV 60.1 cm 4.03 m Tracker Transportation + 11 -17.3 cm 1.71 cm 1.8 m 1.62 MeV 0 eV 20 cm 4.23 m Chamber Transportation + 12 -19.8 cm 1.95 cm 2.4 m 1.62 MeV 0 eV 60.1 cm 4.83 m Tracker Transportation + 13 -21.9 cm 2.16 cm 2.91 m 1.62 MeV 0 eV 51 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 544, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -170 mum 114 mum -2.43 m 4.33 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.51 mm -91 mum -2.4 m 4.33 MeV 0 eV 2.54 cm 2.54 cm Target Transportation + 2 -7.65 cm -6.58 mm -1.6 m 4.33 MeV 0 eV 80.3 cm 82.9 cm Tracker Transportation + 3 -9.5 cm -8.21 mm -1.4 m 4.33 MeV 0 eV 20.1 cm 1.03 m Chamber Transportation + 4 -15.1 cm -1.31 cm -80 cm 4.33 MeV 0 eV 60.3 cm 1.63 m Tracker Transportation + 5 -16.9 cm -1.47 cm -60 cm 4.33 MeV 0 eV 20.1 cm 1.83 m Chamber Transportation + 6 -22.5 cm -1.96 cm 0 fm 4.33 MeV 0 eV 60.3 cm 2.44 m Tracker Transportation + 7 -24.3 cm -2.12 cm 20 cm 4.33 MeV 0 eV 20.1 cm 2.64 m Chamber Transportation + 8 -29.9 cm -2.61 cm 80 cm 4.33 MeV 0 eV 60.3 cm 3.24 m Tracker Transportation + 9 -31.7 cm -2.77 cm 1 m 4.33 MeV 0 eV 20.1 cm 3.44 m Chamber Transportation + 10 -37.3 cm -3.25 cm 1.6 m 4.33 MeV 0 eV 60.3 cm 4.04 m Tracker Transportation + 11 -39.1 cm -3.42 cm 1.8 m 4.33 MeV 0 eV 20.1 cm 4.24 m Chamber Transportation + 12 -44.7 cm -3.9 cm 2.4 m 4.33 MeV 0 eV 60.3 cm 4.85 m Tracker Transportation + 13 -49.4 cm -4.32 cm 2.91 m 4.33 MeV 0 eV 51.2 cm 5.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 543, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -158 mum 111 mum -2.43 m 645 keV 0 eV 0 fm 0 fm Target initStep + 1 -199 mum 106 mum -2.42 m 265 keV 0 eV 1.14 mm 1.14 mm Target compt + 2 -3.95 mm -3.4 mm -2.43 m 0 eV 88 keV 5.21 mm 6.35 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 599, Parent ID = 543 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.95 mm -3.4 mm -2.43 m 177 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.96 mm -3.4 mm -2.43 m 0 eV 177 keV 67.8 mum 67.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 598, Parent ID = 543 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -199 mum 106 mum -2.42 m 381 keV 0 eV 0 fm 0 fm Target initStep + 1 -196 mum 109 mum -2.42 m 0 eV 381 keV 208 mum 208 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 542, Parent ID = 541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -120 mum 140 mum -2.43 m 613 keV 0 eV 0 fm 0 fm Target initStep + 1 -624 mum -58.3 mum -2.42 m 500 keV 0 eV 5.65 mm 5.65 mm Target compt + 2 1.31 mm -1.94 mm -2.42 m 431 keV 0 eV 4.94 mm 1.06 cm Target compt + 3 798 mum -2.54 mm -2.41 m 0 eV 88 keV 6.21 mm 1.68 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 602, Parent ID = 542 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 798 mum -2.54 mm -2.41 m 343 keV 0 eV 0 fm 0 fm Target initStep + 1 799 mum -2.53 mm -2.41 m 0 eV 343 keV 180 mum 180 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 601, Parent ID = 542 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 mm -1.94 mm -2.42 m 69.6 keV 0 eV 0 fm 0 fm Target initStep + 1 1.31 mm -1.94 mm -2.42 m 0 eV 69.6 keV 15.4 mum 15.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 600, Parent ID = 542 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -624 mum -58.3 mum -2.42 m 113 keV 0 eV 0 fm 0 fm Target initStep + 1 -626 mum -57.2 mum -2.42 m 0 eV 113 keV 33.7 mum 33.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 540, Parent ID = 135 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -119 mum 131 mum -2.43 m 7.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.51 mm 1.29 mm -2.43 m 1.18 MeV 3.84 MeV 3.32 mm 3.32 mm Target eBrem + 2 2.56 mm 1.54 mm -2.43 m 129 keV 508 keV 464 mum 3.78 mm Target eBrem + 3 2.56 mm 1.54 mm -2.43 m 0 eV 129 keV 41.4 mum 3.82 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 604, Parent ID = 540 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.56 mm 1.54 mm -2.43 m 542 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm -5.23 mm -2.43 m 542 keV 0 eV 2.95 cm 2.95 cm Target Transportation + 2 -1.63 m -40 cm -2.91 m 542 keV 0 eV 1.72 m 1.75 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 603, Parent ID = 540 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.51 mm 1.29 mm -2.43 m 2.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.73 mm 3.53 mm -2.43 m 2.02 MeV 0 eV 5.05 mm 5.05 mm Target compt + 2 -1.83 mm 3.6 mm -2.43 m 644 keV 0 eV 151 mum 5.2 mm Target compt + 3 -1.59 mm 1.98 mm -2.44 m 320 keV 0 eV 1.07 cm 1.59 cm Target compt + 4 -2.08 mm 2.27 mm -2.44 m 0 eV 88 keV 604 mum 1.65 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 608, Parent ID = 603 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.08 mm 2.27 mm -2.44 m 232 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.09 mm 2.28 mm -2.44 m 0 eV 232 keV 102 mum 102 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 607, Parent ID = 603 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.59 mm 1.98 mm -2.44 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.58 mm 1.98 mm -2.44 m 0 eV 324 keV 166 mum 166 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 606, Parent ID = 603 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.83 mm 3.6 mm -2.43 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.9 mm 3.66 mm -2.43 m 0 eV 1.38 MeV 1.04 mm 1.04 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 605, Parent ID = 603 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.73 mm 3.53 mm -2.43 m 475 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.75 mm 3.53 mm -2.43 m 0 eV 475 keV 282 mum 282 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 134, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -59.8 mum 66.6 mum -2.43 m 315 keV 0 eV 0 fm 0 fm Target initStep + 1 -98.8 mum 110 mum -2.43 m 0 eV 88 keV 2.18 mm 2.18 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 609, Parent ID = 134 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -98.8 mum 110 mum -2.43 m 227 keV 0 eV 0 fm 0 fm Target initStep + 1 -95.3 mum 112 mum -2.43 m 0 eV 227 keV 98.7 mum 98.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 133, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -43.5 mum 58.6 mum -2.43 m 5.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 -152 mum 175 mum -2.42 m 326 keV 0 eV 8.05 mm 8.05 mm Target compt + 2 -1.88 mm -1.23 mm -2.42 m 0 eV 88 keV 2.54 mm 1.06 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 611, Parent ID = 133 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.88 mm -1.23 mm -2.42 m 238 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.89 mm -1.24 mm -2.42 m 0 eV 238 keV 106 mum 106 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 610, Parent ID = 133 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -152 mum 175 mum -2.42 m 5.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 302 mum 674 mum -2.42 m 2.83 MeV 971 keV 972 mum 972 mum Target eBrem + 2 202 mum 913 mum -2.42 m 1.79 MeV 381 keV 303 mum 1.28 mm Target eBrem + 3 570 mum 1.01 mm -2.42 m 534 keV 799 keV 648 mum 1.92 mm Target eBrem + 4 567 mum 1.03 mm -2.42 m 0 eV 534 keV 330 mum 2.25 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 614, Parent ID = 610 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 570 mum 1.01 mm -2.42 m 456 keV 0 eV 0 fm 0 fm Target initStep + 1 183 mum 2.31 cm -2.42 m 0 eV 88 keV 2.25 cm 2.25 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 615, Parent ID = 614 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 183 mum 2.31 cm -2.42 m 368 keV 0 eV 0 fm 0 fm Target initStep + 1 189 mum 2.31 cm -2.42 m 0 eV 368 keV 199 mum 199 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 613, Parent ID = 610 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 202 mum 913 mum -2.42 m 660 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.55 mm 7.87 mm -2.43 m 553 keV 0 eV 1.5 cm 1.5 cm Target compt + 2 1.13 mm 1.14 cm -2.44 m 453 keV 0 eV 1.05 cm 2.55 cm Target compt + 3 2.29 mm 1.1 cm -2.45 m 356 keV 0 eV 1.79 mm 2.73 cm Target compt + 4 3.33 mm 1.32 cm -2.45 m 356 keV 0 eV 5.3 mm 3.26 cm Target Transportation + 5 10.4 cm 22.5 cm -2.91 m 356 keV 0 eV 51.7 cm 54.9 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 618, Parent ID = 613 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.29 mm 1.1 cm -2.45 m 97.1 keV 0 eV 0 fm 0 fm Target initStep + 1 2.29 mm 1.1 cm -2.45 m 0 eV 97.1 keV 26.4 mum 26.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 617, Parent ID = 613 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.13 mm 1.14 cm -2.44 m 99.5 keV 0 eV 0 fm 0 fm Target initStep + 1 1.13 mm 1.14 cm -2.44 m 0 eV 99.5 keV 27.3 mum 27.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 616, Parent ID = 613 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.55 mm 7.87 mm -2.43 m 108 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.55 mm 7.87 mm -2.43 m 0 eV 108 keV 31.3 mum 31.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 612, Parent ID = 610 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 302 mum 674 mum -2.42 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.26 mm 7.17 mm -2.42 m 356 keV 0 eV 9.01 mm 9.01 mm Target compt + 2 -5.09 mm 7.14 mm -2.42 m 0 eV 88 keV 353 mum 9.36 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 620, Parent ID = 612 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.09 mm 7.14 mm -2.42 m 268 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.09 mm 7.15 mm -2.42 m 0 eV 268 keV 127 mum 127 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 619, Parent ID = 612 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.26 mm 7.17 mm -2.42 m 1.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.27 mm 7.17 mm -2.42 m 585 keV 7.75 keV 12 mum 12 mum Target eBrem + 2 -5.28 mm 7.19 mm -2.42 m 0 eV 585 keV 372 mum 384 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 621, Parent ID = 619 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.27 mm 7.17 mm -2.42 m 455 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.8 mm 7.51 mm -2.42 m 0 eV 88 keV 905 mum 905 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 622, Parent ID = 621 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.8 mm 7.51 mm -2.42 m 367 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.8 mm 7.52 mm -2.42 m 0 eV 367 keV 198 mum 198 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 132, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -28.9 mum 47.4 mum -2.43 m 15 MeV 0 eV 0 fm 0 fm Target initStep + 1 -281 mum 460 mum -2.41 m 0 eV 0 eV 2.56 cm 2.56 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 624, Parent ID = 132 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -281 mum 460 mum -2.41 m 1.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 -694 mum -331 mum -2.41 m 448 keV 1.46 MeV 1.35 mm 1.35 mm Target eBrem + 2 -743 mum -383 mum -2.41 m 0 eV 137 keV 123 mum 1.47 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 626, Parent ID = 624 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -743 mum -383 mum -2.41 m 631 keV 0 eV 0 fm 0 fm Target initStep + 1 1.1 mm -4.43 mm -2.41 m 0 eV 88 keV 4.46 mm 4.46 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 627, Parent ID = 626 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 mm -4.43 mm -2.41 m 543 keV 0 eV 0 fm 0 fm Target initStep + 1 1.12 mm -4.43 mm -2.41 m 0 eV 543 keV 337 mum 337 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 625, Parent ID = 624 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -743 mum -383 mum -2.41 m 702 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.19 mm 3.17 mm -2.4 m 702 keV 0 eV 7.25 mm 7.25 mm Target Transportation + 2 -1.65 m 2.4 m 1.54 m 702 keV 0 eV 4.9 m 4.91 m Tracker Transportation + 3 -2 m 2.91 m 2.38 m 702 keV 0 eV 1.04 m 5.95 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 623, Parent ID = 132 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -281 mum 460 mum -2.41 m 12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -696 mum 291 mum -2.41 m 9.81 MeV 1.34 MeV 1.2 mm 1.2 mm Target eBrem + 2 -2.2 mm 149 mum -2.4 m 274 keV 9.54 MeV 6.75 mm 7.94 mm Target eBrem + 3 -2.19 mm 157 mum -2.4 m 0 eV 274 keV 130 mum 8.07 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 628, Parent ID = 623 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -696 mum 291 mum -2.41 m 892 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm -1.55 mm -2.4 m 892 keV 0 eV 5.8 mm 5.8 mm Target Transportation + 2 57.3 cm -57.1 cm -80 cm 892 keV 0 eV 1.79 m 1.8 m Tracker Transportation + 3 64.5 cm -64.2 cm -60 cm 892 keV 0 eV 22.4 cm 2.02 m Chamber Transportation + 4 85.9 cm -85.5 cm 0 fm 892 keV 0 eV 67.2 cm 2.69 m Tracker Transportation + 5 93.1 cm -92.6 cm 20 cm 892 keV 0 eV 22.4 cm 2.92 m Chamber Transportation + 6 1.15 m -1.14 m 80 cm 892 keV 0 eV 67.2 cm 3.59 m Tracker Transportation + 7 1.22 m -1.21 m 1 m 892 keV 0 eV 22.4 cm 3.81 m Chamber Transportation + 8 1.43 m -1.42 m 1.6 m 892 keV 0 eV 67.2 cm 4.49 m Tracker Transportation + 9 1.5 m -1.5 m 1.8 m 892 keV 0 eV 22.4 cm 4.71 m Chamber Transportation + 10 1.72 m -1.71 m 2.4 m 892 keV 0 eV 67.2 cm 5.38 m Tracker Transportation + 11 1.9 m -1.89 m 2.91 m 892 keV 0 eV 57.1 cm 5.95 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 131, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -34 mum 44.6 mum -2.43 m 2.65 MeV 0 eV 0 fm 0 fm Target initStep + 1 63.4 mum 318 mum -2.41 m 560 keV 0 eV 2.68 cm 2.68 cm Target compt + 2 -85 mum 569 mum -2.41 m 490 keV 0 eV 303 mum 2.71 cm Target compt + 3 -2.38 mm 2.67 mm -2.41 m 0 eV 88 keV 3.15 mm 3.03 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 631, Parent ID = 131 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.38 mm 2.67 mm -2.41 m 402 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.4 mm 2.69 mm -2.41 m 332 keV 69.8 keV 66 mum 66 mum Target eBrem + 2 -2.4 mm 2.7 mm -2.41 m 0 eV 332 keV 172 mum 238 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 630, Parent ID = 131 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -85 mum 569 mum -2.41 m 70.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -84.7 mum 570 mum -2.41 m 0 eV 70.8 keV 15.8 mum 15.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 629, Parent ID = 131 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 63.4 mum 318 mum -2.41 m 2.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 -689 mum 37.9 nm -2.41 m 521 keV 1.57 MeV 1.48 mm 1.48 mm Target eBrem + 2 -697 mum -14.8 mum -2.41 m 0 eV 521 keV 319 mum 1.8 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 130, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -34.7 mum 43.5 mum -2.43 m 315 MeV 0 eV 0 fm 0 fm Target initStep + 1 55.7 mum 227 mum -2.42 m 0 eV 0 eV 1.53 cm 1.53 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 633, Parent ID = 130 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 55.7 mum 227 mum -2.42 m 269 MeV 0 eV 0 fm 0 fm Target initStep + 1 55.7 mum 227 mum -2.42 m 266 MeV 82.6 keV 29.2 mum 29.2 mum Target eBrem + 2 56.6 mum 229 mum -2.42 m 260 MeV 175 keV 131 mum 160 mum Target eBrem + 3 47.5 mum 250 mum -2.42 m 257 MeV 1.29 MeV 833 mum 993 mum Target eBrem + 4 59 mum 267 mum -2.42 m 254 MeV 1.94 MeV 531 mum 1.52 mm Target eBrem + 5 69.6 mum 277 mum -2.42 m 253 MeV 321 keV 278 mum 1.8 mm Target eBrem + 6 74 mum 293 mum -2.42 m 250 MeV 520 keV 412 mum 2.21 mm Target eBrem + 7 72.9 mum 292 mum -2.42 m 247 MeV 25.7 keV 22.2 mum 2.24 mm Target eBrem + 8 61.7 mum 289 mum -2.41 m 234 MeV 238 keV 191 mum 2.43 mm Target eBrem + 9 18.3 mum 278 mum -2.41 m 230 MeV 899 keV 679 mum 3.11 mm Target eBrem + 10 12.5 mum 275 mum -2.41 m 31.8 MeV 133 keV 106 mum 3.21 mm Target eBrem + 11 4.45 mm -2.52 mm -2.41 m 17.7 MeV 13.8 MeV 9.06 mm 1.23 cm Target eBrem + 12 4.27 mm -2.01 mm -2.41 m 9.12 MeV 578 keV 534 mum 1.28 cm Target eBrem + 13 676 mum -3.06 mm -2.41 m 2.15 MeV 6.52 MeV 4.19 mm 1.7 cm Target eBrem + 14 648 mum -3.1 mm -2.41 m 1.13 MeV 710 keV 505 mum 1.75 cm Target eBrem + 15 683 mum -3.01 mm -2.41 m 0 eV 1.13 MeV 843 mum 1.83 cm Target eIoni + 16 683 mum -3.01 mm -2.41 m 0 eV 0 eV 0 fm 1.83 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 649, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 683 mum -3.01 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -132 mum -3.32 mm -2.41 m 0 eV 88 keV 1.13 mm 1.13 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 650, Parent ID = 649 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -132 mum -3.32 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -144 mum -3.33 mm -2.41 m 0 eV 423 keV 236 mum 236 mum Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 648, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 683 mum -3.01 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 8.63 mm -18.9 mum -2.41 m 209 keV 0 eV 1.1 cm 1.1 cm Target compt + 2 9.12 mm 218 mum -2.41 m 0 eV 88 keV 2.51 mm 1.35 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 652, Parent ID = 648 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.12 mm 218 mum -2.41 m 121 keV 0 eV 0 fm 0 fm Target initStep + 1 9.12 mm 220 mum -2.41 m 0 eV 121 keV 37.2 mum 37.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 651, Parent ID = 648 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.63 mm -18.9 mum -2.41 m 302 keV 0 eV 0 fm 0 fm Target initStep + 1 8.63 mm -17 mum -2.41 m 0 eV 302 keV 151 mum 151 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 647, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 648 mum -3.1 mm -2.41 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 2.35 mm -242 mum -2.4 m 0 eV 88 keV 3.73 mm 3.73 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 653, Parent ID = 647 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.35 mm -242 mum -2.4 m 221 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm -238 mum -2.4 m 0 eV 221 keV 95.3 mum 95.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 646, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 676 mum -3.06 mm -2.41 m 453 keV 0 eV 0 fm 0 fm Target initStep + 1 -847 mum -1.6 mm -2.41 m 0 eV 88 keV 3.83 mm 3.83 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 654, Parent ID = 646 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -847 mum -1.6 mm -2.41 m 365 keV 0 eV 0 fm 0 fm Target initStep + 1 -858 mum -1.6 mm -2.41 m 0 eV 365 keV 196 mum 196 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 645, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.27 mm -2.01 mm -2.41 m 8.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.89 mm 4.59 mm -2.41 m 4.95 MeV 0 eV 9.03 mm 9.03 mm Target compt + 2 -1.05 cm 2.14 cm -2.41 m 0 eV 0 eV 1.89 cm 2.79 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 657, Parent ID = 645 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 cm 2.14 cm -2.41 m 2.63 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 cm 2.15 cm -2.41 m 1.72 MeV 72.2 keV 70 mum 70 mum Target eBrem + 2 -1.05 cm 2.16 cm -2.41 m 0 eV 1.72 MeV 1.34 mm 1.41 mm Target eIoni + 3 -1.05 cm 2.16 cm -2.41 m 0 eV 0 eV 0 fm 1.41 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 660, Parent ID = 657 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 cm 2.16 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.81 cm 2.06 cm -2.42 m 0 eV 88 keV 1.24 cm 1.24 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 661, Parent ID = 660 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.81 cm 2.06 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.81 cm 2.06 cm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 659, Parent ID = 657 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 cm 2.16 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.28 mm 2.21 cm -2.4 m 0 eV 88 keV 5.33 mm 5.33 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 662, Parent ID = 659 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.28 mm 2.21 cm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.27 mm 2.21 cm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 658, Parent ID = 657 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 cm 2.15 cm -2.41 m 838 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.33 cm 2.5 cm -2.41 m 838 keV 0 eV 4.59 mm 4.59 mm Target Transportation + 2 -3.88 cm 5.69 cm -2.4 m 838 keV 0 eV 4.15 cm 4.61 cm World Transportation + 3 -1.91 m 2.4 m -1.87 m 838 keV 0 eV 3.05 m 3.09 m Tracker Transportation + 4 -2.32 m 2.91 m -1.75 m 838 keV 0 eV 66.3 cm 3.75 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 656, Parent ID = 645 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 cm 2.14 cm -2.41 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 cm 2.15 cm -2.41 m 0 eV 1.31 MeV 980 mum 980 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 655, Parent ID = 645 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.89 mm 4.59 mm -2.41 m 3.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.29 mm 4.35 mm -2.41 m 1.59 MeV 579 keV 632 mum 632 mum Target eBrem + 2 -2.4 mm 4.29 mm -2.41 m 924 keV 214 keV 233 mum 865 mum Target eBrem + 3 -2.4 mm 4.25 mm -2.41 m 0 eV 924 keV 656 mum 1.52 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 664, Parent ID = 655 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.4 mm 4.29 mm -2.41 m 452 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.43 mm 4.21 mm -2.41 m 0 eV 88 keV 110 mum 110 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 665, Parent ID = 664 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.43 mm 4.21 mm -2.41 m 364 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.43 mm 4.19 mm -2.41 m 0 eV 364 keV 196 mum 196 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 663, Parent ID = 655 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.29 mm 4.35 mm -2.41 m 883 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.6 mm 1.69 mm -2.41 m 697 keV 0 eV 9 mm 9 mm Target compt + 2 -1.35 cm -1.24 mm -2.42 m 661 keV 0 eV 6.88 mm 1.59 cm Target compt + 3 -1.7 cm -1.94 mm -2.42 m 265 keV 0 eV 3.86 mm 1.97 cm Target compt + 4 -1.63 cm -1.87 mm -2.42 m 0 eV 88 keV 1.17 mm 2.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 669, Parent ID = 663 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.63 cm -1.87 mm -2.42 m 177 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.63 cm -1.87 mm -2.42 m 0 eV 177 keV 68.1 mum 68.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 668, Parent ID = 663 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.7 cm -1.94 mm -2.42 m 395 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.7 cm -1.94 mm -2.42 m 0 eV 395 keV 219 mum 219 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 667, Parent ID = 663 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.35 cm -1.24 mm -2.42 m 35.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 cm -1.24 mm -2.42 m 0 eV 35.9 keV 5.24 mum 5.24 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 666, Parent ID = 663 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.6 mm 1.69 mm -2.41 m 187 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.6 mm 1.69 mm -2.41 m 0 eV 187 keV 73.7 mum 73.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 644, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.45 mm -2.52 mm -2.41 m 314 keV 0 eV 0 fm 0 fm Target initStep + 1 3.15 mm 80.8 mum -2.41 m 148 keV 0 eV 2.95 mm 2.95 mm Target compt + 2 3.33 mm -20.6 mum -2.41 m 0 eV 88 keV 220 mum 3.17 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 671, Parent ID = 644 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.33 mm -20.6 mum -2.41 m 60.1 keV 0 eV 0 fm 0 fm Target initStep + 1 3.33 mm -20.1 mum -2.41 m 0 eV 60.1 keV 12.1 mum 12.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 670, Parent ID = 644 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.15 mm 80.8 mum -2.41 m 166 keV 0 eV 0 fm 0 fm Target initStep + 1 3.14 mm 84 mum -2.41 m 0 eV 166 keV 61.4 mum 61.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 643, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 12.5 mum 275 mum -2.41 m 198 MeV 0 eV 0 fm 0 fm Target initStep + 1 -282 mum 242 mum -2.41 m 0 eV 0 eV 4.84 mm 4.84 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 673, Parent ID = 643 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -282 mum 242 mum -2.41 m 111 MeV 0 eV 0 fm 0 fm Target initStep + 1 -375 mum 266 mum -2.41 m 108 MeV 2.66 MeV 1.04 mm 1.04 mm Target eBrem + 2 -346 mum 265 mum -2.41 m 103 MeV 1.62 MeV 827 mum 1.86 mm Target eBrem + 3 -339 mum 265 mum -2.41 m 102 MeV 320 keV 205 mum 2.07 mm Target eBrem + 4 -338 mum 265 mum -2.41 m 46 MeV 13.7 keV 13.7 mum 2.08 mm Target eBrem + 5 -1.09 mm -1.14 mm -2.4 m 30.5 MeV 7.03 MeV 5.47 mm 7.55 mm Target eBrem + 6 -315 mum -1.68 mm -2.4 m 24.8 MeV 2.53 MeV 2.02 mm 9.57 mm Target eBrem + 7 -268 mum -1.77 mm -2.4 m 24.7 MeV 177 keV 163 mum 9.73 mm Target Transportation + 8 1.15 cm -2.67 cm -2.36 m 24.6 MeV 6.52 keV 4.47 cm 5.45 cm Tracker eIoni + 9 35.5 cm -78.5 cm -1.37 m 24.3 MeV 267 keV 1.3 m 1.35 m Tracker eIoni + 10 46.4 cm -98.6 cm -1.08 m 24.2 MeV 61 keV 36.7 cm 1.72 m Tracker eIoni + 11 63 cm -1.3 m -64.6 cm 24.1 MeV 115 keV 56.2 cm 2.28 m Tracker eIoni + 12 88.4 cm -1.82 m 7.04 cm 23.9 MeV 187 keV 92.2 cm 3.2 m Tracker eIoni + 13 1.22 m -2.4 m 96.8 cm 23.6 MeV 237 keV 1.12 m 4.32 m Tracker Transportation + 14 1.37 m -2.67 m 1.37 m 23.5 MeV 112 keV 50.6 cm 4.83 m World eIoni + 15 1.45 m -2.81 m 1.58 m 18 MeV 49.1 keV 26.9 cm 5.1 m World eIoni + 16 1.53 m -2.91 m 1.74 m 17.9 MeV 44.3 keV 20.5 cm 5.3 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 686, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.45 m -2.81 m 1.58 m 5.47 MeV 0 eV 0 fm 0 fm World initStep + 1 1.44 m -2.91 m 1.74 m 5.44 MeV 35.1 keV 18.3 cm 18.3 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 685, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.37 m -2.67 m 1.37 m 20 keV 0 eV 0 fm 0 fm World initStep + 1 1.37 m -2.67 m 1.37 m 0 eV 20 keV 7.64 mm 7.64 mm World eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 684, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 88.4 cm -1.82 m 7.04 cm 12.9 keV 0 eV 0 fm 0 fm Tracker initStep + 1 88.5 cm -1.82 m 6.95 cm 0 eV 12.9 keV 3.53 mm 3.53 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 683, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 63 cm -1.3 m -64.6 cm 44.8 keV 0 eV 0 fm 0 fm Tracker initStep + 1 62.2 cm -1.29 m -63.4 cm 0 eV 44.8 keV 3.28 cm 3.28 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 682, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 46.4 cm -98.6 cm -1.08 m 14.2 keV 0 eV 0 fm 0 fm Tracker initStep + 1 46.2 cm -98.6 cm -1.08 m 0 eV 14.2 keV 4.2 mm 4.2 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 681, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 35.5 cm -78.5 cm -1.37 m 59.7 keV 0 eV 0 fm 0 fm Tracker initStep + 1 35.5 cm -79 cm -1.37 m 35.3 keV 5.5 keV 6 mm 6 mm Tracker eIoni + 2 35.7 cm -79.6 cm -1.38 m 0 eV 35.3 keV 2.14 cm 2.74 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 687, Parent ID = 681 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 35.5 cm -79 cm -1.37 m 18.9 keV 0 eV 0 fm 0 fm Tracker initStep + 1 35.7 cm -79.3 cm -1.37 m 0 eV 18.9 keV 6.92 mm 6.92 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 680, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 cm -2.67 cm -2.36 m 20.2 keV 0 eV 0 fm 0 fm Tracker initStep + 1 1.08 cm -2.42 cm -2.36 m 0 eV 20.2 keV 7.73 mm 7.73 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 679, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -315 mum -1.68 mm -2.4 m 3.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -264 mum -1.77 mm -2.4 m 3.1 MeV 0 eV 160 mum 160 mum Target Transportation + 2 1.39 m -2.4 m 96.1 cm 3.1 MeV 0 eV 4.36 m 4.36 m Tracker Transportation + 3 1.69 m -2.91 m 1.68 m 3.1 MeV 0 eV 92.7 cm 5.28 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 678, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.09 mm -1.14 mm -2.4 m 8.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 -96 mum -1.65 mm -2.4 m 8.48 MeV 0 eV 2.15 mm 2.15 mm Target Transportation + 2 2.4 m -1.23 m 2.07 m 8.48 MeV 0 eV 5.22 m 5.22 m Tracker Transportation + 3 2.85 m -1.46 m 2.91 m 8.48 MeV 0 eV 98.5 cm 6.2 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 677, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -338 mum 265 mum -2.41 m 56.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -111 mum 76.5 mum -2.4 m 56.2 MeV 0 eV 7.27 mm 7.27 mm Target Transportation + 2 2.49 cm -2.07 cm -1.6 m 56.2 MeV 0 eV 80.1 cm 80.8 cm Tracker Transportation + 3 3.12 cm -2.58 cm -1.4 m 56.2 MeV 0 eV 20 cm 1.01 m Chamber Transportation + 4 5 cm -4.14 cm -80 cm 56.2 MeV 0 eV 60 cm 1.61 m Tracker Transportation + 5 5.63 cm -4.66 cm -60 cm 56.2 MeV 0 eV 20 cm 1.81 m Chamber Transportation + 6 7.5 cm -6.21 cm 0 fm 56.2 MeV 0 eV 60 cm 2.41 m Tracker Transportation + 7 8.13 cm -6.73 cm 20 cm 56.2 MeV 0 eV 20 cm 2.61 m Chamber Transportation + 8 10 cm -8.29 cm 80 cm 56.2 MeV 0 eV 60 cm 3.21 m Tracker Transportation + 9 10.6 cm -8.8 cm 1 m 56.2 MeV 0 eV 20 cm 3.41 m Chamber Transportation + 10 12.5 cm -10.4 cm 1.6 m 56.2 MeV 0 eV 60 cm 4.01 m Tracker Transportation + 11 13.1 cm -10.9 cm 1.8 m 56.2 MeV 0 eV 20 cm 4.21 m Chamber Transportation + 12 15 cm -12.4 cm 2.4 m 56.2 MeV 0 eV 60 cm 4.81 m Tracker Transportation + 13 16.6 cm -13.8 cm 2.91 m 56.2 MeV 0 eV 51 cm 5.32 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 676, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -339 mum 265 mum -2.41 m 577 keV 0 eV 0 fm 0 fm Target initStep + 1 -243 mum 185 mum -2.4 m 0 eV 88 keV 3.63 mm 3.63 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 688, Parent ID = 676 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -243 mum 185 mum -2.4 m 489 keV 0 eV 0 fm 0 fm Target initStep + 1 -240 mum 176 mum -2.4 m 0 eV 489 keV 293 mum 293 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 675, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -346 mum 265 mum -2.41 m 3.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 -313 mum 299 mum -2.4 m 1.2 MeV 0 eV 2.71 mm 2.71 mm Target compt + 2 535 mum 2.3 mm -2.4 m 367 keV 0 eV 3.11 mm 5.83 mm Target compt + 3 -681 mum 2.96 mm -2.4 m 0 eV 88 keV 1.38 mm 7.21 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 691, Parent ID = 675 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -681 mum 2.96 mm -2.4 m 279 keV 0 eV 0 fm 0 fm Target initStep + 1 -687 mum 2.95 mm -2.4 m 0 eV 279 keV 134 mum 134 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 690, Parent ID = 675 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 535 mum 2.3 mm -2.4 m 837 keV 0 eV 0 fm 0 fm Target initStep + 1 558 mum 2.32 mm -2.4 m 0 eV 837 keV 582 mum 582 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 689, Parent ID = 675 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -313 mum 299 mum -2.4 m 2.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -332 mum 249 mum -2.4 m 0 eV 2.17 MeV 1.7 mm 1.7 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 674, Parent ID = 673 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -375 mum 266 mum -2.41 m 354 keV 0 eV 0 fm 0 fm Target initStep + 1 -376 mum 302 mum -2.41 m 0 eV 88 keV 1.82 mm 1.82 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 692, Parent ID = 674 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -376 mum 302 mum -2.41 m 266 keV 0 eV 0 fm 0 fm Target initStep + 1 -376 mum 294 mum -2.41 m 0 eV 266 keV 125 mum 125 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 672, Parent ID = 643 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -282 mum 242 mum -2.41 m 86.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -283 mum 242 mum -2.41 m 81.3 MeV 29.7 keV 34.1 mum 34.1 mum Target eBrem + 2 -299 mum 278 mum -2.41 m 74.2 MeV 977 keV 681 mum 716 mum Target eBrem + 3 -268 mum 259 mum -2.41 m 68.9 MeV 3.55 MeV 376 mum 1.09 mm Target eBrem + 4 -282 mum 307 mum -2.41 m 53.4 MeV 895 keV 713 mum 1.81 mm Target eBrem + 5 -286 mum 299 mum -2.41 m 51.1 MeV 87.2 keV 72.4 mum 1.88 mm Target eBrem + 6 -246 mum 298 mum -2.41 m 46.8 MeV 1.26 MeV 937 mum 2.82 mm Target eBrem + 7 -242 mum 256 mum -2.41 m 22.8 MeV 623 keV 239 mum 3.05 mm Target eBrem + 8 -279 mum -127 mum -2.41 m 18.8 MeV 1.23 MeV 1.01 mm 4.07 mm Target eBrem + 9 -393 mum -210 mum -2.41 m 17.9 MeV 399 keV 350 mum 4.42 mm Target eBrem + 10 -775 mum 32.8 mum -2.4 m 15.1 MeV 776 keV 495 mum 4.91 mm Target eBrem + 11 -2.05 mm 233 mum -2.4 m 12.2 MeV 2.01 MeV 1.71 mm 6.62 mm Target eBrem + 12 -3.06 mm 788 mum -2.4 m 6.08 MeV 1.69 MeV 1.32 mm 7.94 mm Target eBrem + 13 -2.68 mm 1.47 mm -2.4 m 4.63 MeV 1.45 MeV 1.16 mm 9.1 mm Target eBrem + 14 -2.67 mm 1.54 mm -2.4 m 3.79 MeV 220 keV 226 mum 9.32 mm Target eBrem + 15 -2.58 mm 1.86 mm -2.4 m 0 eV 3.79 MeV 2.98 mm 1.23 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 705, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.67 mm 1.54 mm -2.4 m 621 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.39 mm 4.32 mm -2.4 m 621 keV 0 eV 4.56 mm 4.56 mm Target Transportation + 2 1.11 m 2.4 m 52.7 cm 621 keV 0 eV 3.94 m 3.95 m Tracker Transportation + 3 1.35 m 2.91 m 1.15 m 621 keV 0 eV 83.9 cm 4.79 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 704, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.06 mm 788 mum -2.4 m 4.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.87 mm 6.45 mm -2.4 m 0 eV 88 keV 6.82 mm 6.82 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 706, Parent ID = 704 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.87 mm 6.45 mm -2.4 m 4.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.97 mm 6.52 mm -2.4 m 1.77 MeV 502 keV 149 mum 149 mum Target eBrem + 2 -7.05 mm 6.66 mm -2.4 m 710 keV 246 keV 309 mum 458 mum Target eBrem + 3 -7.06 mm 6.68 mm -2.4 m 0 eV 710 keV 476 mum 933 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 708, Parent ID = 706 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.05 mm 6.66 mm -2.4 m 809 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.9 mm 2.11 cm -2.41 m 624 keV 0 eV 1.5 cm 1.5 cm Target compt + 2 -246 mum 2.5 cm -2.4 m 624 keV 0 eV 5.38 mm 2.04 cm Target Transportation + 3 1.75 cm 4.38 cm -2.4 m 624 keV 0 eV 2.61 cm 4.65 cm World Transportation + 4 2.25 m 2.4 m -1.88 m 624 keV 0 eV 3.29 m 3.33 m Tracker Transportation + 5 2.73 m 2.91 m -1.76 m 624 keV 0 eV 71.1 cm 4.04 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 709, Parent ID = 708 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.9 mm 2.11 cm -2.41 m 185 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.9 mm 2.11 cm -2.41 m 0 eV 185 keV 72.7 mum 72.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 707, Parent ID = 706 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.97 mm 6.52 mm -2.4 m 2.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.5 mm 1.61 cm -2.4 m 2.07 MeV 0 eV 1.02 cm 1.02 cm Target Transportation + 2 35.7 cm 2.4 m -1.66 m 2.07 MeV 0 eV 2.52 m 2.53 m Tracker Transportation + 3 43.5 cm 2.91 m -1.51 m 2.07 MeV 0 eV 53.9 cm 3.07 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 703, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.05 mm 233 mum -2.4 m 878 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.27 mm 1.66 mm -2.4 m 368 keV 0 eV 1.91 mm 1.91 mm Target compt + 2 -2.21 mm 3.4 mm -2.4 m 0 eV 88 keV 2.24 mm 4.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 711, Parent ID = 703 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.21 mm 3.4 mm -2.4 m 280 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.2 mm 3.4 mm -2.4 m 0 eV 280 keV 135 mum 135 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 710, Parent ID = 703 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.27 mm 1.66 mm -2.4 m 510 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.28 mm 1.65 mm -2.4 m 420 keV 89.5 keV 45 mum 45 mum Target eBrem + 2 -3.29 mm 1.66 mm -2.4 m 0 eV 420 keV 239 mum 284 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 702, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -775 mum 32.8 mum -2.4 m 2.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.04 cm 5.61 mm -2.4 m 1.63 MeV 0 eV 1.19 cm 1.19 cm Target compt + 2 -1.08 cm 6.08 mm -2.4 m 1.63 MeV 0 eV 809 mum 1.27 cm Target Transportation + 3 -2.33 m 2.4 m 3.88 cm 1.63 MeV 0 eV 4.13 m 4.14 m Tracker Transportation + 4 -2.83 m 2.91 m 55.8 cm 1.63 MeV 0 eV 88 cm 5.02 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 712, Parent ID = 702 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.04 cm 5.61 mm -2.4 m 382 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.04 cm 5.61 mm -2.4 m 0 eV 382 keV 209 mum 209 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 701, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -393 mum -210 mum -2.41 m 512 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.9 mm 3.04 mm -2.4 m 0 eV 88 keV 9.73 mm 9.73 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 713, Parent ID = 701 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.9 mm 3.04 mm -2.4 m 424 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.91 mm 3.05 mm -2.4 m 0 eV 424 keV 242 mum 242 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 700, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -279 mum -127 mum -2.41 m 2.74 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.22 mm -1.78 mm -2.4 m 2.74 MeV 0 eV 5.74 mm 5.74 mm Target Transportation + 2 -27.8 cm -49 cm -80 cm 2.74 MeV 0 eV 1.7 m 1.7 m Tracker Transportation + 3 -31.3 cm -55.1 cm -60 cm 2.74 MeV 0 eV 21.2 cm 1.91 m Chamber Transportation + 4 -41.7 cm -73.4 cm 0 fm 2.74 MeV 0 eV 63.6 cm 2.55 m Tracker Transportation + 5 -45.2 cm -79.5 cm 20 cm 2.74 MeV 0 eV 21.2 cm 2.76 m Chamber Transportation + 6 -55.6 cm -97.9 cm 80 cm 2.74 MeV 0 eV 63.6 cm 3.4 m Tracker Transportation + 7 -59 cm -1.04 m 1 m 2.74 MeV 0 eV 21.2 cm 3.61 m Chamber Transportation + 8 -69.4 cm -1.22 m 1.6 m 2.74 MeV 0 eV 63.6 cm 4.24 m Tracker Transportation + 9 -72.9 cm -1.28 m 1.8 m 2.74 MeV 0 eV 21.2 cm 4.46 m Chamber Transportation + 10 -83.3 cm -1.47 m 2.4 m 2.74 MeV 0 eV 63.6 cm 5.09 m Tracker Transportation + 11 -92.1 cm -1.62 m 2.91 m 2.74 MeV 0 eV 54.1 cm 5.63 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 699, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -242 mum 256 mum -2.41 m 23.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -706 mum -988 mum -2.4 m 23.4 MeV 0 eV 6.44 mm 6.44 mm Target Transportation + 2 -5.95 cm -15.9 cm -1.6 m 23.4 MeV 0 eV 81.8 cm 82.4 cm Tracker Transportation + 3 -7.42 cm -19.8 cm -1.4 m 23.4 MeV 0 eV 20.4 cm 1.03 m Chamber Transportation + 4 -11.8 cm -31.7 cm -80 cm 23.4 MeV 0 eV 61.3 cm 1.64 m Tracker Transportation + 5 -13.3 cm -35.6 cm -60 cm 23.4 MeV 0 eV 20.4 cm 1.85 m Chamber Transportation + 6 -17.7 cm -47.4 cm 0 fm 23.4 MeV 0 eV 61.3 cm 2.46 m Tracker Transportation + 7 -19.2 cm -51.4 cm 20 cm 23.4 MeV 0 eV 20.4 cm 2.66 m Chamber Transportation + 8 -23.6 cm -63.2 cm 80 cm 23.4 MeV 0 eV 61.3 cm 3.28 m Tracker Transportation + 9 -25.1 cm -67.2 cm 1 m 23.4 MeV 0 eV 20.4 cm 3.48 m Chamber Transportation + 10 -29.5 cm -79 cm 1.6 m 23.4 MeV 0 eV 61.3 cm 4.09 m Tracker Transportation + 11 -31 cm -82.9 cm 1.8 m 23.4 MeV 0 eV 20.4 cm 4.3 m Chamber Transportation + 12 -35.4 cm -94.8 cm 2.4 m 23.4 MeV 0 eV 61.3 cm 4.91 m Tracker Transportation + 13 -39.1 cm -1.05 m 2.91 m 23.4 MeV 0 eV 52.1 cm 5.43 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 698, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -246 mum 298 mum -2.41 m 3.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 -463 mum -811 mum -2.4 m 3.03 MeV 0 eV 6.63 mm 6.63 mm Target Transportation + 2 -2.7 cm -13.7 cm -1.6 m 3.03 MeV 0 eV 81.2 cm 81.8 cm Tracker Transportation + 3 -3.37 cm -17 cm -1.4 m 3.03 MeV 0 eV 20.3 cm 1.02 m Chamber Transportation + 4 -5.36 cm -27.2 cm -80 cm 3.03 MeV 0 eV 60.9 cm 1.63 m Tracker Transportation + 5 -6.03 cm -30.6 cm -60 cm 3.03 MeV 0 eV 20.3 cm 1.83 m Chamber Transportation + 6 -8.02 cm -40.8 cm -0.114 fm 3.03 MeV 0 eV 60.9 cm 2.44 m Tracker Transportation + 7 -8.68 cm -44.2 cm 20 cm 3.03 MeV 0 eV 20.3 cm 2.65 m Chamber Transportation + 8 -10.7 cm -54.4 cm 80 cm 3.03 MeV 0 eV 60.9 cm 3.25 m Tracker Transportation + 9 -11.3 cm -57.8 cm 1 m 3.03 MeV 0 eV 20.3 cm 3.46 m Chamber Transportation + 10 -13.3 cm -67.9 cm 1.6 m 3.03 MeV 0 eV 60.9 cm 4.07 m Tracker Transportation + 11 -14 cm -71.3 cm 1.8 m 3.03 MeV 0 eV 20.3 cm 4.27 m Chamber Transportation + 12 -16 cm -81.5 cm 2.4 m 3.03 MeV 0 eV 60.9 cm 4.88 m Tracker Transportation + 13 -17.7 cm -90.2 cm 2.91 m 3.03 MeV 0 eV 51.8 cm 5.4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 697, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -286 mum 299 mum -2.41 m 2.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 -289 mum 235 mum -2.41 m 0 eV 88 keV 741 mum 741 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 714, Parent ID = 697 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -289 mum 235 mum -2.41 m 2.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -290 mum 220 mum -2.41 m 0 eV 2.1 MeV 1.64 mm 1.64 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 696, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -282 mum 307 mum -2.41 m 14.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -551 mum -396 mum -2.4 m 14.6 MeV 0 eV 7.58 mm 7.58 mm Target Transportation + 2 -2.91 cm -7.5 cm -1.6 m 14.6 MeV 0 eV 80.4 cm 81.2 cm Tracker Transportation + 3 -3.63 cm -9.36 cm -1.4 m 14.6 MeV 0 eV 20.1 cm 1.01 m Chamber Transportation + 4 -5.77 cm -15 cm -80 cm 14.6 MeV 0 eV 60.3 cm 1.62 m Tracker Transportation + 5 -6.48 cm -16.8 cm -60 cm 14.6 MeV 0 eV 20.1 cm 1.82 m Chamber Transportation + 6 -8.63 cm -22.4 cm 0 fm 14.6 MeV 0 eV 60.3 cm 2.42 m Tracker Transportation + 7 -9.34 cm -24.3 cm 20 cm 14.6 MeV 0 eV 20.1 cm 2.62 m Chamber Transportation + 8 -11.5 cm -29.9 cm 80 cm 14.6 MeV 0 eV 60.3 cm 3.22 m Tracker Transportation + 9 -12.2 cm -31.7 cm 1 m 14.6 MeV 0 eV 20.1 cm 3.42 m Chamber Transportation + 10 -14.3 cm -37.3 cm 1.6 m 14.6 MeV 0 eV 60.3 cm 4.03 m Tracker Transportation + 11 -15.1 cm -39.2 cm 1.8 m 14.6 MeV 0 eV 20.1 cm 4.23 m Chamber Transportation + 12 -17.2 cm -44.8 cm 2.4 m 14.6 MeV 0 eV 60.3 cm 4.83 m Tracker Transportation + 13 -19 cm -49.5 cm 2.91 m 14.6 MeV 0 eV 51.3 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 695, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -268 mum 259 mum -2.41 m 1.75 MeV 0 eV 0 fm 0 fm Target initStep + 1 -124 mum 358 mum -2.4 m 1.75 MeV 0 eV 8.26 mm 8.26 mm Target Transportation + 2 1.38 cm 9.95 mm -1.6 m 1.75 MeV 0 eV 80 cm 80.8 cm Tracker Transportation + 3 1.73 cm 1.23 cm -1.4 m 1.75 MeV 0 eV 20 cm 1.01 m Chamber Transportation + 4 2.77 cm 1.95 cm -80 cm 1.75 MeV 0 eV 60 cm 1.61 m Tracker Transportation + 5 3.12 cm 2.19 cm -60 cm 1.75 MeV 0 eV 20 cm 1.81 m Chamber Transportation + 6 4.16 cm 2.91 cm 0 fm 1.75 MeV 0 eV 60 cm 2.41 m Tracker Transportation + 7 4.51 cm 3.15 cm 20 cm 1.75 MeV 0 eV 20 cm 2.61 m Chamber Transportation + 8 5.55 cm 3.87 cm 80 cm 1.75 MeV 0 eV 60 cm 3.21 m Tracker Transportation + 9 5.9 cm 4.11 cm 1 m 1.75 MeV 0 eV 20 cm 3.41 m Chamber Transportation + 10 6.94 cm 4.83 cm 1.6 m 1.75 MeV 0 eV 60 cm 4.01 m Tracker Transportation + 11 7.29 cm 5.07 cm 1.8 m 1.75 MeV 0 eV 20 cm 4.21 m Chamber Transportation + 12 8.33 cm 5.79 cm 2.4 m 1.75 MeV 0 eV 60 cm 4.81 m Tracker Transportation + 13 9.22 cm 6.4 cm 2.91 m 1.75 MeV 0 eV 51 cm 5.32 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 694, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -299 mum 278 mum -2.41 m 6.14 MeV 0 eV 0 fm 0 fm Target initStep + 1 160 mum 33.2 mum -2.4 m 6.14 MeV 0 eV 8.64 mm 8.64 mm Target Transportation + 2 4.27 cm -2.27 cm -1.6 m 6.14 MeV 0 eV 80.1 cm 81 cm Tracker Transportation + 3 5.34 cm -2.84 cm -1.4 m 6.14 MeV 0 eV 20 cm 1.01 m Chamber Transportation + 4 8.53 cm -4.54 cm -80 cm 6.14 MeV 0 eV 60.1 cm 1.61 m Tracker Transportation + 5 9.59 cm -5.11 cm -60 cm 6.14 MeV 0 eV 20 cm 1.81 m Chamber Transportation + 6 12.8 cm -6.81 cm 0 fm 6.14 MeV 0 eV 60.1 cm 2.41 m Tracker Transportation + 7 13.8 cm -7.38 cm 20 cm 6.14 MeV 0 eV 20 cm 2.61 m Chamber Transportation + 8 17 cm -9.08 cm 80 cm 6.14 MeV 0 eV 60.1 cm 3.21 m Tracker Transportation + 9 18.1 cm -9.65 cm 1 m 6.14 MeV 0 eV 20 cm 3.41 m Chamber Transportation + 10 21.3 cm -11.4 cm 1.6 m 6.14 MeV 0 eV 60.1 cm 4.02 m Tracker Transportation + 11 22.4 cm -11.9 cm 1.8 m 6.14 MeV 0 eV 20 cm 4.22 m Chamber Transportation + 12 25.5 cm -13.6 cm 2.4 m 6.14 MeV 0 eV 60.1 cm 4.82 m Tracker Transportation + 13 28.3 cm -15.1 cm 2.91 m 6.14 MeV 0 eV 51.1 cm 5.33 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 693, Parent ID = 672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -283 mum 242 mum -2.41 m 4.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 -971 mum 462 mum -2.4 m 4.97 MeV 0 eV 9.34 mm 9.34 mm Target Transportation + 2 -6.01 cm 1.93 cm -1.6 m 4.97 MeV 0 eV 80.2 cm 81.2 cm Tracker Transportation + 3 -7.48 cm 2.4 cm -1.4 m 4.97 MeV 0 eV 20.1 cm 1.01 m Chamber Transportation + 4 -11.9 cm 3.82 cm -80 cm 4.97 MeV 0 eV 60.2 cm 1.61 m Tracker Transportation + 5 -13.4 cm 4.29 cm -60 cm 4.97 MeV 0 eV 20.1 cm 1.81 m Chamber Transportation + 6 -17.8 cm 5.71 cm 0.114 fm 4.97 MeV 0 eV 60.2 cm 2.42 m Tracker Transportation + 7 -19.3 cm 6.18 cm 20 cm 4.97 MeV 0 eV 20.1 cm 2.62 m Chamber Transportation + 8 -23.7 cm 7.59 cm 80 cm 4.97 MeV 0 eV 60.2 cm 3.22 m Tracker Transportation + 9 -25.2 cm 8.07 cm 1 m 4.97 MeV 0 eV 20.1 cm 3.42 m Chamber Transportation + 10 -29.6 cm 9.48 cm 1.6 m 4.97 MeV 0 eV 60.2 cm 4.02 m Tracker Transportation + 11 -31.1 cm 9.95 cm 1.8 m 4.97 MeV 0 eV 20.1 cm 4.22 m Chamber Transportation + 12 -35.6 cm 11.4 cm 2.4 m 4.97 MeV 0 eV 60.2 cm 4.82 m Tracker Transportation + 13 -39.3 cm 12.6 cm 2.91 m 4.97 MeV 0 eV 51.2 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 642, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 18.3 mum 278 mum -2.41 m 2.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 -126 mum 159 mum -2.41 m 1.92 MeV 0 eV 3.18 mm 3.18 mm Target compt + 2 -81 mum 290 mum -2.41 m 900 keV 0 eV 618 mum 3.8 mm Target compt + 3 5.01 mm -221 mum -2.41 m 604 keV 0 eV 6.96 mm 1.08 cm Target compt + 4 6.69 mm -2.02 mm -2.41 m 0 eV 88 keV 2.57 mm 1.33 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 718, Parent ID = 642 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.69 mm -2.02 mm -2.41 m 516 keV 0 eV 0 fm 0 fm Target initStep + 1 6.7 mm -2.03 mm -2.41 m 0 eV 516 keV 314 mum 314 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 717, Parent ID = 642 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.01 mm -221 mum -2.41 m 297 keV 0 eV 0 fm 0 fm Target initStep + 1 5.01 mm -215 mum -2.41 m 0 eV 297 keV 147 mum 147 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 716, Parent ID = 642 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -81 mum 290 mum -2.41 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -102 mum 310 mum -2.41 m 0 eV 1.02 MeV 736 mum 736 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 715, Parent ID = 642 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -126 mum 159 mum -2.41 m 325 keV 0 eV 0 fm 0 fm Target initStep + 1 -130 mum 151 mum -2.41 m 0 eV 325 keV 166 mum 166 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 641, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 61.7 mum 289 mum -2.41 m 12.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -287 mum 86.9 mum -2.41 m 0 eV 0 eV 6.68 mm 6.68 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 720, Parent ID = 641 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -287 mum 86.9 mum -2.41 m 830 keV 0 eV 0 fm 0 fm Target initStep + 1 -274 mum 62.8 mum -2.41 m 0 eV 830 keV 583 mum 583 mum Target eIoni + 2 -274 mum 62.8 mum -2.41 m 0 eV 0 eV 0 fm 583 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 722, Parent ID = 720 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -274 mum 62.8 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -799 mum 1.14 mm -2.41 m 0 eV 88 keV 1.56 mm 1.56 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 723, Parent ID = 722 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -799 mum 1.14 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -803 mum 1.16 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 721, Parent ID = 720 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -274 mum 62.8 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.88 mm -4.37 mm -2.4 m 0 eV 88 keV 6.42 mm 6.42 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 724, Parent ID = 721 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.88 mm -4.37 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.89 mm -4.38 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 719, Parent ID = 641 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -287 mum 86.9 mum -2.41 m 11 MeV 0 eV 0 fm 0 fm Target initStep + 1 994 mum -503 mum -2.41 m 7.93 MeV 2.71 MeV 2.28 mm 2.28 mm Target eBrem + 2 -511 mum -690 mum -2.41 m 4.25 MeV 2.46 MeV 1.98 mm 4.27 mm Target eBrem + 3 -758 mum -1.19 mm -2.4 m 864 keV 2.76 MeV 1.61 mm 5.88 mm Target eBrem + 4 -788 mum -1.16 mm -2.4 m 0 eV 864 keV 605 mum 6.49 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 727, Parent ID = 719 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -758 mum -1.19 mm -2.4 m 620 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.21 cm 6.79 mm -2.4 m 373 keV 0 eV 1.38 cm 1.38 cm Target compt + 2 -1.25 cm 6.69 mm -2.4 m 0 eV 88 keV 625 mum 1.45 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 729, Parent ID = 727 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.25 cm 6.69 mm -2.4 m 285 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.25 cm 6.69 mm -2.4 m 0 eV 285 keV 138 mum 138 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 728, Parent ID = 727 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.21 cm 6.79 mm -2.4 m 247 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.21 cm 6.79 mm -2.4 m 0 eV 247 keV 112 mum 112 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 726, Parent ID = 719 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -511 mum -690 mum -2.41 m 1.23 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.92 mm 2.59 mm -2.4 m 1.11 MeV 0 eV 6.89 mm 6.89 mm Target compt + 2 -8.89 mm 3.23 mm -2.4 m 982 keV 0 eV 3.34 mm 1.02 cm Target compt + 3 -1.02 cm 3.92 mm -2.4 m 982 keV 0 eV 1.85 mm 1.21 cm Target Transportation + 4 -2.4 m 1.3 m -26.1 cm 982 keV 0 eV 3.46 m 3.47 m Tracker Transportation + 5 -2.91 m 1.58 m 19.6 cm 982 keV 0 eV 73.8 cm 4.21 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 731, Parent ID = 726 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.89 mm 3.23 mm -2.4 m 124 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.89 mm 3.23 mm -2.4 m 0 eV 124 keV 38.7 mum 38.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 730, Parent ID = 726 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.92 mm 2.59 mm -2.4 m 123 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.92 mm 2.59 mm -2.4 m 0 eV 123 keV 38.4 mum 38.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 725, Parent ID = 719 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 994 mum -503 mum -2.41 m 370 keV 0 eV 0 fm 0 fm Target initStep + 1 897 mum -392 mum -2.41 m 0 eV 88 keV 185 mum 185 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 732, Parent ID = 725 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 897 mum -392 mum -2.41 m 282 keV 0 eV 0 fm 0 fm Target initStep + 1 893 mum -384 mum -2.41 m 0 eV 282 keV 136 mum 136 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 640, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 72.9 mum 292 mum -2.42 m 3.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -29.6 mum 265 mum -2.41 m 1.82 MeV 0 eV 2.05 mm 2.05 mm Target compt + 2 -1.06 mm -4.8 mm -2.4 m 296 keV 0 eV 1.03 cm 1.23 cm Target compt + 3 -519 mum -4.8 mm -2.4 m 0 eV 88 keV 587 mum 1.29 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 735, Parent ID = 640 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -519 mum -4.8 mm -2.4 m 208 keV 0 eV 0 fm 0 fm Target initStep + 1 -517 mum -4.81 mm -2.4 m 0 eV 208 keV 86.9 mum 86.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 734, Parent ID = 640 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.06 mm -4.8 mm -2.4 m 1.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.08 mm -4.85 mm -2.4 m 0 eV 1.53 MeV 1.17 mm 1.17 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 733, Parent ID = 640 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -29.6 mum 265 mum -2.41 m 1.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 -28.7 mum 310 mum -2.41 m 0 eV 1.47 MeV 1.12 mm 1.12 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 639, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 74 mum 293 mum -2.42 m 2.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 71 mum 292 mum -2.42 m 337 keV 0 eV 74.9 mum 74.9 mum Target compt + 2 -541 mum -1.49 mm -2.42 m 0 eV 88 keV 1.99 mm 2.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 737, Parent ID = 639 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -541 mum -1.49 mm -2.42 m 249 keV 0 eV 0 fm 0 fm Target initStep + 1 -545 mum -1.49 mm -2.42 m 0 eV 249 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 736, Parent ID = 639 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 71 mum 292 mum -2.42 m 2.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 -107 mum 189 mum -2.41 m 1.18 MeV 430 keV 347 mum 347 mum Target eBrem + 2 -138 mum 255 mum -2.41 m 0 eV 1.18 MeV 869 mum 1.22 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 738, Parent ID = 736 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -107 mum 189 mum -2.41 m 528 keV 0 eV 0 fm 0 fm Target initStep + 1 -656 mum 2.62 mm -2.41 m 0 eV 88 keV 2.49 mm 2.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 739, Parent ID = 738 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -656 mum 2.62 mm -2.41 m 440 keV 0 eV 0 fm 0 fm Target initStep + 1 -656 mum 2.64 mm -2.41 m 0 eV 440 keV 254 mum 254 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 638, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 69.6 mum 277 mum -2.42 m 608 keV 0 eV 0 fm 0 fm Target initStep + 1 84 mum 405 mum -2.41 m 471 keV 0 eV 4.55 mm 4.55 mm Target compt + 2 788 mum 456 mum -2.41 m 413 keV 0 eV 1.07 mm 5.62 mm Target compt + 3 3.58 mm -2.19 mm -2.41 m 0 eV 88 keV 5.53 mm 1.11 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 742, Parent ID = 638 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.58 mm -2.19 mm -2.41 m 325 keV 0 eV 0 fm 0 fm Target initStep + 1 3.59 mm -2.18 mm -2.41 m 0 eV 325 keV 167 mum 167 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 741, Parent ID = 638 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 788 mum 456 mum -2.41 m 57.3 keV 0 eV 0 fm 0 fm Target initStep + 1 789 mum 457 mum -2.41 m 0 eV 57.3 keV 11.2 mum 11.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 740, Parent ID = 638 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 84 mum 405 mum -2.41 m 138 keV 0 eV 0 fm 0 fm Target initStep + 1 81.6 mum 404 mum -2.41 m 0 eV 138 keV 45.9 mum 45.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 637, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 59 mum 267 mum -2.42 m 1.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 117 mum 359 mum -2.41 m 1.4 MeV 0 eV 2.19 mm 2.19 mm Target compt + 2 -194 mum 2.18 mm -2.41 m 1.24 MeV 0 eV 8.14 mm 1.03 cm Target compt + 3 729 mum 3.84 mm -2.4 m 0 eV 88 keV 4.33 mm 1.46 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 745, Parent ID = 637 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 729 mum 3.84 mm -2.4 m 1.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 816 mum 3.99 mm -2.4 m 343 keV 266 keV 291 mum 291 mum Target eBrem + 2 805 mum 3.99 mm -2.4 m 0 eV 343 keV 180 mum 471 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 746, Parent ID = 745 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 816 mum 3.99 mm -2.4 m 543 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.29 mm 4.09 mm -2.4 m 543 keV 0 eV 6.37 mm 6.37 mm Target Transportation + 2 -2.4 m 4.3 cm -1.68 m 543 keV 0 eV 2.5 m 2.51 m Tracker Transportation + 3 -2.91 m 5.13 cm -1.53 m 543 keV 0 eV 53.3 cm 3.04 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 744, Parent ID = 637 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -194 mum 2.18 mm -2.41 m 159 keV 0 eV 0 fm 0 fm Target initStep + 1 -197 mum 2.18 mm -2.41 m 0 eV 159 keV 57.6 mum 57.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 743, Parent ID = 637 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 117 mum 359 mum -2.41 m 76.6 keV 0 eV 0 fm 0 fm Target initStep + 1 117 mum 357 mum -2.41 m 0 eV 76.6 keV 18 mum 18 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 636, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 47.5 mum 250 mum -2.42 m 1.81 MeV 0 eV 0 fm 0 fm Target initStep + 1 56.9 mum 291 mum -2.42 m 247 keV 0 eV 1.25 mm 1.25 mm Target compt + 2 78.8 mum 488 mum -2.42 m 246 keV 0 eV 334 mum 1.59 mm Target compt + 3 59.9 mum 1.6 mm -2.42 m 0 eV 88 keV 1.61 mm 3.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 749, Parent ID = 636 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 59.9 mum 1.6 mm -2.42 m 158 keV 0 eV 0 fm 0 fm Target initStep + 1 56.5 mum 1.6 mm -2.42 m 0 eV 158 keV 56.7 mum 56.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 748, Parent ID = 636 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 78.8 mum 488 mum -2.42 m 1.36 keV 0 eV 0 fm 0 fm Target initStep + 1 78.8 mum 488 mum -2.42 m 0 eV 1.36 keV 39.7 nm 39.7 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 747, Parent ID = 636 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 56.9 mum 291 mum -2.42 m 1.56 MeV 0 eV 0 fm 0 fm Target initStep + 1 -135 mum 453 mum -2.42 m 805 keV 447 keV 435 mum 435 mum Target eBrem + 2 -149 mum 442 mum -2.41 m 0 eV 805 keV 555 mum 990 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 750, Parent ID = 747 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -135 mum 453 mum -2.42 m 308 keV 0 eV 0 fm 0 fm Target initStep + 1 -936 mum -905 mum -2.41 m 176 keV 0 eV 2.33 mm 2.33 mm Target compt + 2 282 mum -358 mum -2.41 m 142 keV 0 eV 1.43 mm 3.76 mm Target compt + 3 368 mum -378 mum -2.41 m 0 eV 88 keV 118 mum 3.88 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 753, Parent ID = 750 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 368 mum -378 mum -2.41 m 54 keV 0 eV 0 fm 0 fm Target initStep + 1 368 mum -378 mum -2.41 m 0 eV 54 keV 10.2 mum 10.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 752, Parent ID = 750 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 282 mum -358 mum -2.41 m 34 keV 0 eV 0 fm 0 fm Target initStep + 1 282 mum -358 mum -2.41 m 0 eV 34 keV 4.79 mum 4.79 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 751, Parent ID = 750 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -936 mum -905 mum -2.41 m 132 keV 0 eV 0 fm 0 fm Target initStep + 1 -938 mum -907 mum -2.41 m 0 eV 132 keV 43.2 mum 43.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 635, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 56.6 mum 229 mum -2.42 m 5.87 MeV 0 eV 0 fm 0 fm Target initStep + 1 -51.6 mum 262 mum -2.41 m 0 eV 0 eV 8.21 mm 8.21 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 755, Parent ID = 635 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -51.6 mum 262 mum -2.41 m 1.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 -49.7 mum 271 mum -2.41 m 0 eV 1.77 MeV 1.39 mm 1.39 mm Target eIoni + 2 -49.7 mum 271 mum -2.41 m 0 eV 0 eV 0 fm 1.39 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 757, Parent ID = 755 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -49.7 mum 271 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.96 mm -1.19 cm -2.43 m 330 keV 0 eV 2.15 cm 2.15 cm Target compt + 2 -2.51 mm -1.16 cm -2.43 m 0 eV 88 keV 2.37 mm 2.39 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 759, Parent ID = 757 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.51 mm -1.16 cm -2.43 m 242 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.51 mm -1.16 cm -2.43 m 0 eV 242 keV 108 mum 108 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 758, Parent ID = 757 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.96 mm -1.19 cm -2.43 m 181 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.96 mm -1.19 cm -2.43 m 0 eV 181 keV 70.7 mum 70.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 756, Parent ID = 755 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -49.7 mum 271 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.94 mm 6.46 mm -2.4 m 511 keV 0 eV 1.1 cm 1.1 cm Target Transportation + 2 77 cm 2.4 m 1.01 m 511 keV 0 eV 4.23 m 4.25 m Tracker Transportation + 3 93.4 cm 2.91 m 1.73 m 511 keV 0 eV 90.2 cm 5.15 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 754, Parent ID = 635 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -51.6 mum 262 mum -2.41 m 3.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 -448 mum 264 mum -2.41 m 261 keV 767 keV 600 mum 600 mum Target eBrem + 2 -449 mum 257 mum -2.41 m 0 eV 261 keV 122 mum 722 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 760, Parent ID = 754 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -448 mum 264 mum -2.41 m 2.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.93 mm -1.36 cm -2.42 m 0 eV 88 keV 1.65 cm 1.65 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 761, Parent ID = 760 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.93 mm -1.36 cm -2.42 m 1.96 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.93 mm -1.38 cm -2.42 m 695 keV 295 keV 295 mum 295 mum Target eBrem + 2 -2.93 mm -1.38 cm -2.42 m 0 eV 695 keV 462 mum 758 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 762, Parent ID = 761 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.93 mm -1.38 cm -2.42 m 974 keV 0 eV 0 fm 0 fm Target initStep + 1 -901 mum 4.81 mm -2.41 m 0 eV 88 keV 1.94 cm 1.94 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 763, Parent ID = 762 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -901 mum 4.81 mm -2.41 m 886 keV 0 eV 0 fm 0 fm Target initStep + 1 -972 mum 4.91 mm -2.41 m 675 keV 211 keV 217 mum 217 mum Target eBrem + 2 -991 mum 5 mm -2.41 m 332 keV 343 keV 160 mum 377 mum Target eBrem + 3 -995 mum 5 mm -2.41 m 0 eV 332 keV 172 mum 549 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 634, Parent ID = 633 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 55.7 mum 227 mum -2.42 m 2.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 35.4 mum 389 mum -2.4 m 2.19 MeV 0 eV 1.74 cm 1.74 cm Target Transportation + 2 -901 mum 7.84 mm -1.6 m 2.19 MeV 0 eV 80 cm 81.7 cm Tracker Transportation + 3 -1.14 mm 9.71 mm -1.4 m 2.19 MeV 0 eV 20 cm 1.02 m Chamber Transportation + 4 -1.84 mm 1.53 cm -80 cm 2.19 MeV 0 eV 60 cm 1.62 m Tracker Transportation + 5 -2.07 mm 1.72 cm -60 cm 2.19 MeV 0 eV 20 cm 1.82 m Chamber Transportation + 6 -2.78 mm 2.27 cm -0.114 fm 2.19 MeV 0 eV 60 cm 2.42 m Tracker Transportation + 7 -3.01 mm 2.46 cm 20 cm 2.19 MeV 0 eV 20 cm 2.62 m Chamber Transportation + 8 -3.71 mm 3.02 cm 80 cm 2.19 MeV 0 eV 60 cm 3.22 m Tracker Transportation + 9 -3.95 mm 3.21 cm 1 m 2.19 MeV 0 eV 20 cm 3.42 m Chamber Transportation + 10 -4.65 mm 3.77 cm 1.6 m 2.19 MeV 0 eV 60 cm 4.02 m Tracker Transportation + 11 -4.88 mm 3.95 cm 1.8 m 2.19 MeV 0 eV 20 cm 4.22 m Chamber Transportation + 12 -5.59 mm 4.51 cm 2.4 m 2.19 MeV 0 eV 60 cm 4.82 m Tracker Transportation + 13 -6.18 mm 4.99 cm 2.91 m 2.19 MeV 0 eV 51 cm 5.33 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 632, Parent ID = 130 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 55.7 mum 227 mum -2.42 m 45.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -293 mum 606 mum -2.41 m 40.7 MeV 3.85 MeV 3.08 mm 3.08 mm Target eBrem + 2 -543 mum 517 mum -2.41 m 10.3 MeV 1.31 MeV 1.13 mm 4.2 mm Target eBrem + 3 -1.96 mm 1.31 mm -2.41 m 7.21 MeV 2.49 MeV 2.25 mm 6.46 mm Target eBrem + 4 -2.22 mm 1.36 mm -2.42 m 2.38 MeV 3.32 MeV 2.86 mm 9.31 mm Target eBrem + 5 -2.15 mm 1.26 mm -2.42 m 0 eV 2.38 MeV 1.86 mm 1.12 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 767, Parent ID = 632 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.22 mm 1.36 mm -2.42 m 1.51 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.96 mm -538 mum -2.42 m 706 keV 0 eV 6.16 mm 6.16 mm Target compt + 2 -3.4 mm -1.76 mm -2.42 m 532 keV 0 eV 1.37 mm 7.53 mm Target compt + 3 -1.01 cm -9.29 mm -2.42 m 0 eV 88 keV 1.05 cm 1.8 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 770, Parent ID = 767 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.01 cm -9.29 mm -2.42 m 444 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.01 cm -9.3 mm -2.42 m 0 eV 444 keV 257 mum 257 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 769, Parent ID = 767 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.4 mm -1.76 mm -2.42 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.4 mm -1.76 mm -2.42 m 0 eV 174 keV 66.2 mum 66.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 768, Parent ID = 767 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.96 mm -538 mum -2.42 m 803 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.96 mm -532 mum -2.42 m 0 eV 803 keV 554 mum 554 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 766, Parent ID = 632 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.96 mm 1.31 mm -2.41 m 578 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.27 mm -2.98 mm -2.42 m 0 eV 88 keV 4.87 mm 4.87 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 771, Parent ID = 766 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.27 mm -2.98 mm -2.42 m 490 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.28 mm -2.99 mm -2.42 m 0 eV 490 keV 294 mum 294 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 765, Parent ID = 632 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -543 mum 517 mum -2.41 m 29.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.4 mm 135 mum -2.41 m 0 eV 0 eV 2.1 mm 2.1 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 773, Parent ID = 765 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.4 mm 135 mum -2.41 m 3.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -594 mum -773 mum -2.41 m 1.08 MeV 2.18 MeV 1.76 mm 1.76 mm Target eBrem + 2 -571 mum -728 mum -2.41 m 0 eV 1.08 MeV 801 mum 2.56 mm Target eIoni + 3 -571 mum -728 mum -2.41 m 0 eV 0 eV 0 fm 2.56 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 776, Parent ID = 773 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -571 mum -728 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.65 mm -653 mum -2.41 m 229 keV 0 eV 3.34 mm 3.34 mm Target compt + 2 -3.78 mm -856 mum -2.41 m 0 eV 88 keV 794 mum 4.13 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 778, Parent ID = 776 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.78 mm -856 mum -2.41 m 141 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.78 mm -858 mum -2.41 m 0 eV 141 keV 48 mum 48 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 777, Parent ID = 776 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.65 mm -653 mum -2.41 m 282 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.66 mm -652 mum -2.41 m 0 eV 282 keV 136 mum 136 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 775, Parent ID = 773 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -571 mum -728 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.12 cm -1.01 mm -2.42 m 0 eV 88 keV 1.28 cm 1.28 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 779, Parent ID = 775 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.12 cm -1.01 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.12 cm -1.05 mm -2.42 m 198 keV 225 keV 185 mum 185 mum Target eBrem + 2 1.12 cm -1.05 mm -2.42 m 0 eV 198 keV 80.4 mum 265 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 774, Parent ID = 773 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -594 mum -773 mum -2.41 m 432 keV 0 eV 0 fm 0 fm Target initStep + 1 732 mum 1.27 mm -2.41 m 0 eV 88 keV 3.47 mm 3.47 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 780, Parent ID = 774 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 732 mum 1.27 mm -2.41 m 344 keV 0 eV 0 fm 0 fm Target initStep + 1 733 mum 1.27 mm -2.41 m 0 eV 344 keV 181 mum 181 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 772, Parent ID = 765 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.4 mm 135 mum -2.41 m 24.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.56 mm 89.8 mum -2.41 m 13.4 MeV 601 keV 496 mum 496 mum Target eBrem + 2 -4.08 mm -490 mum -2.41 m 9.73 MeV 3.2 MeV 2.67 mm 3.17 mm Target eBrem + 3 -3.74 mm 123 mum -2.41 m 7.82 MeV 1.25 MeV 752 mum 3.92 mm Target eBrem + 4 -3.17 mm 346 mum -2.41 m 769 keV 1.08 MeV 847 mum 4.77 mm Target eBrem + 5 -3.15 mm 350 mum -2.41 m 0 eV 769 keV 525 mum 5.29 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 784, Parent ID = 772 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.17 mm 346 mum -2.41 m 5.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 550 mum 1.19 mm -2.4 m 5.97 MeV 0 eV 1.08 cm 1.08 cm Target Transportation + 2 59.1 cm 13.6 cm -80 cm 5.97 MeV 0 eV 1.71 m 1.72 m Tracker Transportation + 3 66.5 cm 15.3 cm -60 cm 5.97 MeV 0 eV 21.4 cm 1.94 m Chamber Transportation + 4 88.6 cm 20.3 cm 0 fm 5.97 MeV 0 eV 64.2 cm 2.58 m Tracker Transportation + 5 96 cm 22 cm 20 cm 5.97 MeV 0 eV 21.4 cm 2.79 m Chamber Transportation + 6 1.18 m 27 cm 80 cm 5.97 MeV 0 eV 64.2 cm 3.43 m Tracker Transportation + 7 1.26 m 28.7 cm 1 m 5.97 MeV 0 eV 21.4 cm 3.65 m Chamber Transportation + 8 1.48 m 33.8 cm 1.6 m 5.97 MeV 0 eV 64.2 cm 4.29 m Tracker Transportation + 9 1.55 m 35.5 cm 1.8 m 5.97 MeV 0 eV 21.4 cm 4.5 m Chamber Transportation + 10 1.77 m 40.5 cm 2.4 m 5.97 MeV 0 eV 64.2 cm 5.14 m Tracker Transportation + 11 1.96 m 44.8 cm 2.91 m 5.97 MeV 0 eV 54.5 cm 5.69 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 783, Parent ID = 772 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.74 mm 123 mum -2.41 m 651 keV 0 eV 0 fm 0 fm Target initStep + 1 3.14 mm 4.01 mm -2.41 m 517 keV 0 eV 8.13 mm 8.13 mm Target compt + 2 4.06 mm 4.16 mm -2.41 m 0 eV 88 keV 975 mum 9.11 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 786, Parent ID = 783 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.06 mm 4.16 mm -2.41 m 429 keV 0 eV 0 fm 0 fm Target initStep + 1 4.07 mm 4.16 mm -2.41 m 0 eV 429 keV 246 mum 246 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 785, Parent ID = 783 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.14 mm 4.01 mm -2.41 m 133 keV 0 eV 0 fm 0 fm Target initStep + 1 3.14 mm 4.01 mm -2.41 m 0 eV 133 keV 43.8 mum 43.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 782, Parent ID = 772 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.08 mm -490 mum -2.41 m 487 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.52 mm 137 mum -2.41 m 204 keV 0 eV 848 mum 848 mum Target compt + 2 -3.49 mm 9.62 mum -2.41 m 0 eV 88 keV 201 mum 1.05 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 788, Parent ID = 782 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.49 mm 9.62 mum -2.41 m 116 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.49 mm 10.5 mum -2.41 m 0 eV 116 keV 35 mum 35 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 787, Parent ID = 782 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.52 mm 137 mum -2.41 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.52 mm 144 mum -2.41 m 0 eV 284 keV 137 mum 137 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 781, Parent ID = 772 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.56 mm 89.8 mum -2.41 m 10.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.02 mm 993 mum -2.4 m 0 eV 0 eV 1.19 cm 1.19 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 790, Parent ID = 781 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.02 mm 993 mum -2.4 m 2.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.28 mm 1.21 mm -2.4 m 350 keV 1.83 MeV 1.42 mm 1.42 mm Target eBrem + 2 -7.27 mm 1.22 mm -2.4 m 0 eV 350 keV 183 mum 1.61 mm Target eIoni + 3 -7.27 mm 1.22 mm -2.4 m 0 eV 0 eV 0 fm 1.61 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 792, Parent ID = 790 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.27 mm 1.22 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.53 mm 1.52 mm -2.4 m 511 keV 0 eV 556 mum 556 mum Target Transportation + 2 -2.01 m 2.4 m 67.3 cm 511 keV 0 eV 4.38 m 4.38 m Tracker Transportation + 3 -2.44 m 2.91 m 1.33 m 511 keV 0 eV 93.2 cm 5.32 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 791, Parent ID = 790 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.27 mm 1.22 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.5 mm -908 mum -2.4 m 492 keV 0 eV 3.88 mm 3.88 mm Target compt + 2 -5.3 mm -1.13 mm -2.4 m 0 eV 88 keV 339 mum 4.22 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 794, Parent ID = 791 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.3 mm -1.13 mm -2.4 m 404 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.3 mm -1.14 mm -2.4 m 0 eV 404 keV 226 mum 226 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 793, Parent ID = 791 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.5 mm -908 mum -2.4 m 19.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.5 mm -908 mum -2.4 m 0 eV 19.4 keV 1.93 mum 1.93 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 789, Parent ID = 781 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.02 mm 993 mum -2.4 m 7.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.25 mm 1.05 mm -2.4 m 6.21 MeV 1.01 MeV 716 mum 716 mum Target Transportation + 2 -61.5 cm -40.2 cm -1.49 m 5.98 MeV 215 keV 1.17 m 1.17 m Tracker eBrem + 3 -1.36 m -78.5 cm 9.02 mm 5.63 MeV 316 keV 1.73 m 2.89 m Tracker eIoni + 4 -1.81 m -71.6 cm 79 cm 5.46 MeV 158 keV 90.9 cm 3.8 m Tracker eIoni + 5 -2.31 m -74.3 cm 1.44 m 5.3 MeV 145 keV 82.4 cm 4.63 m Tracker eIoni + 6 -2.4 m -73.5 cm 1.56 m 5.27 MeV 26.1 keV 15.2 cm 4.78 m Tracker Transportation + 7 -2.91 m -66 cm 2.18 m 5.13 MeV 143 keV 80.7 cm 5.59 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 798, Parent ID = 789 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.31 m -74.3 cm 1.44 m 13 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -2.31 m -74.3 cm 1.44 m 0 eV 13 keV 3.58 mm 3.58 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 797, Parent ID = 789 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.81 m -71.6 cm 79 cm 18.1 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.81 m -71.7 cm 79.2 cm 0 eV 18.1 keV 6.44 mm 6.44 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 796, Parent ID = 789 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.36 m -78.5 cm 9.02 mm 35 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.36 m -79.6 cm 9.78 mm 0 eV 35 keV 2.11 cm 2.11 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 795, Parent ID = 789 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -61.5 cm -40.2 cm -1.49 m 8.73 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.58 m -63.5 cm 69.9 cm 0 eV 543 eV 2.41 m 2.41 m Tracker phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 799, Parent ID = 795 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.58 m -63.5 cm 69.9 cm 8.19 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -1.58 m -63.6 cm 69.8 cm 0 eV 8.19 keV 1.59 mm 1.59 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 764, Parent ID = 632 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -293 mum 606 mum -2.41 m 536 keV 0 eV 0 fm 0 fm Target initStep + 1 -446 mum 450 mum -2.41 m 0 eV 88 keV 805 mum 805 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 800, Parent ID = 764 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -446 mum 450 mum -2.41 m 448 keV 0 eV 0 fm 0 fm Target initStep + 1 -460 mum 451 mum -2.41 m 0 eV 448 keV 260 mum 260 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 129, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -34.9 mum 42.8 mum -2.43 m 5.73 MeV 0 eV 0 fm 0 fm Target initStep + 1 56.7 mum 180 mum -2.42 m 0 eV 0 eV 1.27 cm 1.27 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 802, Parent ID = 129 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 56.7 mum 180 mum -2.42 m 1.99 MeV 0 eV 0 fm 0 fm Target initStep + 1 67.5 mum 138 mum -2.42 m 0 eV 1.99 MeV 1.57 mm 1.57 mm Target eIoni + 2 67.5 mum 138 mum -2.42 m 0 eV 0 eV 0 fm 1.57 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 804, Parent ID = 802 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 67.5 mum 138 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -614 mum -371 mum -2.42 m 0 eV 88 keV 870 mum 870 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 805, Parent ID = 804 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -614 mum -371 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -616 mum -386 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 803, Parent ID = 802 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 67.5 mum 138 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.05 mm 3.86 mm -2.42 m 255 keV 0 eV 6.36 mm 6.36 mm Target compt + 2 5.06 mm 3.83 mm -2.42 m 0 eV 88 keV 49.2 mum 6.41 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 807, Parent ID = 803 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.06 mm 3.83 mm -2.42 m 167 keV 0 eV 0 fm 0 fm Target initStep + 1 5.06 mm 3.83 mm -2.42 m 0 eV 167 keV 62.1 mum 62.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 806, Parent ID = 803 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.05 mm 3.86 mm -2.42 m 256 keV 0 eV 0 fm 0 fm Target initStep + 1 5.05 mm 3.87 mm -2.42 m 0 eV 256 keV 118 mum 118 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 801, Parent ID = 129 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 56.7 mum 180 mum -2.42 m 2.72 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.02 mm 644 mum -2.42 m 445 keV 1.94 MeV 1.93 mm 1.93 mm Target eBrem + 2 -1.01 mm 631 mum -2.42 m 0 eV 445 keV 258 mum 2.18 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 808, Parent ID = 801 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.02 mm 644 mum -2.42 m 334 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.52 mum -908 mum -2.42 m 282 keV 0 eV 2.15 mm 2.15 mm Target compt + 2 827 mum -1.05 mm -2.42 m 276 keV 0 eV 1.89 mm 4.04 mm Target compt + 3 1.01 mm -986 mum -2.42 m 219 keV 0 eV 360 mum 4.4 mm Target compt + 4 1.3 mm -386 mum -2.42 m 0 eV 88 keV 675 mum 5.08 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 812, Parent ID = 808 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.3 mm -386 mum -2.42 m 131 keV 0 eV 0 fm 0 fm Target initStep + 1 1.3 mm -384 mum -2.42 m 0 eV 131 keV 42.7 mum 42.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 811, Parent ID = 808 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.01 mm -986 mum -2.42 m 56.3 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 mm -986 mum -2.42 m 0 eV 56.3 keV 10.9 mum 10.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 810, Parent ID = 808 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 827 mum -1.05 mm -2.42 m 6.11 keV 0 eV 0 fm 0 fm Target initStep + 1 827 mum -1.05 mm -2.42 m 0 eV 6.11 keV 339 nm 339 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 809, Parent ID = 808 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.52 mum -908 mum -2.42 m 51.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.42 mum -909 mum -2.42 m 0 eV 51.9 keV 9.52 mum 9.52 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 128, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -32.9 mum 32.4 mum -2.43 m 73.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -115 mum 149 mum -2.42 m 0 eV 0 eV 1.22 cm 1.22 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 814, Parent ID = 128 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -115 mum 149 mum -2.42 m 20.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -160 mum 129 mum -2.42 m 19.1 MeV 448 keV 373 mum 373 mum Target eBrem + 2 -174 mum 127 mum -2.42 m 18.4 MeV 192 keV 103 mum 476 mum Target eBrem + 3 -238 mum 122 mum -2.42 m 16.6 MeV 255 keV 238 mum 714 mum Target eBrem + 4 -235 mum 148 mum -2.42 m 12.5 MeV 397 keV 341 mum 1.05 mm Target eBrem + 5 -374 mum -54 mum -2.42 m 10.2 MeV 1.58 MeV 1.21 mm 2.27 mm Target eBrem + 6 -461 mum 895 mum -2.42 m 1.96 MeV 7.27 MeV 2.17 mm 4.44 mm Target eBrem + 7 -556 mum 790 mum -2.42 m 0 eV 1.96 MeV 1.55 mm 5.99 mm Target eIoni + 8 -556 mum 790 mum -2.42 m 0 eV 0 eV 0 fm 5.99 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 822, Parent ID = 814 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -556 mum 790 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.62 mm 6.05 mm -2.42 m 501 keV 0 eV 5.9 mm 5.9 mm Target compt + 2 -4.74 mm 1.8 cm -2.42 m 348 keV 0 eV 1.3 cm 1.89 cm Target compt + 3 -3.85 mm 1.87 cm -2.42 m 0 eV 88 keV 1.3 mm 2.02 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 825, Parent ID = 822 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.85 mm 1.87 cm -2.42 m 260 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.84 mm 1.87 cm -2.42 m 0 eV 260 keV 121 mum 121 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 824, Parent ID = 822 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.74 mm 1.8 cm -2.42 m 153 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.74 mm 1.8 cm -2.42 m 0 eV 153 keV 53.9 mum 53.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 823, Parent ID = 822 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.62 mm 6.05 mm -2.42 m 10.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.62 mm 6.05 mm -2.42 m 0 eV 10.4 keV 746 nm 746 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 821, Parent ID = 814 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -556 mum 790 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.67 mm -1.25 cm -2.41 m 336 keV 0 eV 1.49 cm 1.49 cm Target compt + 2 4.22 mm -1.33 cm -2.41 m 0 eV 88 keV 950 mum 1.59 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 827, Parent ID = 821 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.22 mm -1.33 cm -2.41 m 248 keV 0 eV 0 fm 0 fm Target initStep + 1 4.22 mm -1.33 cm -2.41 m 0 eV 248 keV 112 mum 112 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 826, Parent ID = 821 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.67 mm -1.25 cm -2.41 m 175 keV 0 eV 0 fm 0 fm Target initStep + 1 4.67 mm -1.25 cm -2.41 m 0 eV 175 keV 67.1 mum 67.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 820, Parent ID = 814 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -461 mum 895 mum -2.42 m 1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.61 mm -1.39 mm -2.41 m 780 keV 0 eV 8.56 mm 8.56 mm Target compt + 2 -6.01 mm -1.32 mm -2.41 m 365 keV 0 eV 1.85 mm 1.04 cm Target compt + 3 -3.66 mm -3.81 mm -2.41 m 0 eV 88 keV 3.78 mm 1.42 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 830, Parent ID = 820 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.66 mm -3.81 mm -2.41 m 277 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.65 mm -3.82 mm -2.41 m 0 eV 277 keV 133 mum 133 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 829, Parent ID = 820 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.01 mm -1.32 mm -2.41 m 415 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.02 mm -1.32 mm -2.41 m 0 eV 415 keV 235 mum 235 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 828, Parent ID = 820 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.61 mm -1.39 mm -2.41 m 223 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.62 mm -1.39 mm -2.41 m 0 eV 223 keV 96.7 mum 96.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 819, Parent ID = 814 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -374 mum -54 mum -2.42 m 740 keV 0 eV 0 fm 0 fm Target initStep + 1 3.04 mm 1.61 mm -2.41 m 543 keV 0 eV 7.19 mm 7.19 mm Target compt + 2 3.8 mm 1.25 mm -2.41 m 0 eV 88 keV 1.01 mm 8.2 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 832, Parent ID = 819 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.8 mm 1.25 mm -2.41 m 455 keV 0 eV 0 fm 0 fm Target initStep + 1 3.81 mm 1.25 mm -2.41 m 0 eV 455 keV 267 mum 267 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 831, Parent ID = 819 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.04 mm 1.61 mm -2.41 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 3.04 mm 1.61 mm -2.41 m 0 eV 196 keV 79.4 mum 79.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 818, Parent ID = 814 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -235 mum 148 mum -2.42 m 3.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.37 mm 3.05 mm -2.4 m 3.69 MeV 0 eV 2.11 cm 2.11 cm Target Transportation + 2 -16.6 cm 11.7 cm -1.6 m 3.69 MeV 0 eV 82.4 cm 84.5 cm Tracker Transportation + 3 -20.7 cm 14.5 cm -1.4 m 3.69 MeV 0 eV 20.6 cm 1.05 m Chamber Transportation + 4 -32.8 cm 23.1 cm -80 cm 3.69 MeV 0 eV 61.8 cm 1.67 m Tracker Transportation + 5 -36.8 cm 25.9 cm -60 cm 3.69 MeV 0 eV 20.6 cm 1.88 m Chamber Transportation + 6 -49 cm 34.4 cm 0 fm 3.69 MeV 0 eV 61.8 cm 2.49 m Tracker Transportation + 7 -53 cm 37.3 cm 20 cm 3.69 MeV 0 eV 20.6 cm 2.7 m Chamber Transportation + 8 -65.1 cm 45.8 cm 80 cm 3.69 MeV 0 eV 61.8 cm 3.32 m Tracker Transportation + 9 -69.2 cm 48.6 cm 1 m 3.69 MeV 0 eV 20.6 cm 3.52 m Chamber Transportation + 10 -81.3 cm 57.2 cm 1.6 m 3.69 MeV 0 eV 61.8 cm 4.14 m Tracker Transportation + 11 -85.3 cm 60 cm 1.8 m 3.69 MeV 0 eV 20.6 cm 4.35 m Chamber Transportation + 12 -97.5 cm 68.5 cm 2.4 m 3.69 MeV 0 eV 61.8 cm 4.97 m Tracker Transportation + 13 -1.08 m 75.8 cm 2.91 m 3.69 MeV 0 eV 52.5 cm 5.49 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 817, Parent ID = 814 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -238 mum 122 mum -2.42 m 1.51 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.87 mm 1.79 mm -2.4 m 1.51 MeV 0 eV 2.1 cm 2.1 cm Target Transportation + 2 -10.4 cm 6.61 cm -1.6 m 1.51 MeV 0 eV 80.9 cm 83 cm Tracker Transportation + 3 -13 cm 8.22 cm -1.4 m 1.51 MeV 0 eV 20.2 cm 1.03 m Chamber Transportation + 4 -20.6 cm 13 cm -80 cm 1.51 MeV 0 eV 60.7 cm 1.64 m Tracker Transportation + 5 -23.1 cm 14.7 cm -60 cm 1.51 MeV 0 eV 20.2 cm 1.84 m Chamber Transportation + 6 -30.7 cm 19.5 cm 0 fm 1.51 MeV 0 eV 60.7 cm 2.45 m Tracker Transportation + 7 -33.3 cm 21.1 cm 20 cm 1.51 MeV 0 eV 20.2 cm 2.65 m Chamber Transportation + 8 -40.9 cm 25.9 cm 80 cm 1.51 MeV 0 eV 60.7 cm 3.26 m Tracker Transportation + 9 -43.4 cm 27.5 cm 1 m 1.51 MeV 0 eV 20.2 cm 3.46 m Chamber Transportation + 10 -51.1 cm 32.4 cm 1.6 m 1.51 MeV 0 eV 60.7 cm 4.07 m Tracker Transportation + 11 -53.6 cm 34 cm 1.8 m 1.51 MeV 0 eV 20.2 cm 4.27 m Chamber Transportation + 12 -61.2 cm 38.8 cm 2.4 m 1.51 MeV 0 eV 60.7 cm 4.87 m Tracker Transportation + 13 -67.7 cm 42.9 cm 2.91 m 1.51 MeV 0 eV 51.6 cm 5.39 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 816, Parent ID = 814 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -174 mum 127 mum -2.42 m 474 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.24 mm 312 mum -2.41 m 0 eV 88 keV 7.34 mm 7.34 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 833, Parent ID = 816 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.24 mm 312 mum -2.41 m 386 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.24 mm 305 mum -2.41 m 0 eV 386 keV 213 mum 213 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 815, Parent ID = 814 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -160 mum 129 mum -2.42 m 556 keV 0 eV 0 fm 0 fm Target initStep + 1 -363 mum -41.5 mum -2.42 m 228 keV 0 eV 3.92 mm 3.92 mm Target compt + 2 179 mum 1.37 mm -2.42 m 0 eV 88 keV 1.56 mm 5.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 835, Parent ID = 815 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 179 mum 1.37 mm -2.42 m 140 keV 0 eV 0 fm 0 fm Target initStep + 1 176 mum 1.37 mm -2.42 m 0 eV 140 keV 47.4 mum 47.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 834, Parent ID = 815 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -363 mum -41.5 mum -2.42 m 328 keV 0 eV 0 fm 0 fm Target initStep + 1 -365 mum -45.4 mum -2.42 m 0 eV 328 keV 169 mum 169 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 813, Parent ID = 128 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -115 mum 149 mum -2.42 m 52.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -131 mum 163 mum -2.42 m 18 MeV 706 keV 392 mum 392 mum Target eBrem + 2 -187 mum 219 mum -2.42 m 16.9 MeV 610 keV 569 mum 961 mum Target eBrem + 3 -171 mum 150 mum -2.42 m 5.29 MeV 518 keV 351 mum 1.31 mm Target eBrem + 4 -365 mum 51.6 mum -2.42 m 4.15 MeV 764 keV 633 mum 1.94 mm Target eBrem + 5 -146 mum 91.4 mum -2.42 m 3.6 MeV 198 keV 218 mum 2.16 mm Target eBrem + 6 -440 mum -341 mum -2.42 m 1.87 MeV 955 keV 968 mum 3.13 mm Target eBrem + 7 -545 mum -245 mum -2.42 m 0 eV 1.87 MeV 1.45 mm 4.58 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 841, Parent ID = 813 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -440 mum -341 mum -2.42 m 774 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.69 mm 5.75 mm -2.42 m 613 keV 0 eV 9.56 mm 9.56 mm Target compt + 2 -1.4 cm 9.14 mm -2.42 m 333 keV 0 eV 7.86 mm 1.74 cm Target compt + 3 -1.38 cm 9.79 mm -2.42 m 0 eV 88 keV 716 mum 1.81 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 844, Parent ID = 841 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.38 cm 9.79 mm -2.42 m 245 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.38 cm 9.79 mm -2.42 m 0 eV 245 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 843, Parent ID = 841 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.4 cm 9.14 mm -2.42 m 280 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.4 cm 9.14 mm -2.42 m 0 eV 280 keV 135 mum 135 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 842, Parent ID = 841 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.69 mm 5.75 mm -2.42 m 161 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.69 mm 5.75 mm -2.42 m 0 eV 161 keV 58.6 mum 58.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 840, Parent ID = 813 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -146 mum 91.4 mum -2.42 m 346 keV 0 eV 0 fm 0 fm Target initStep + 1 1.36 mm 313 mum -2.42 m 328 keV 0 eV 3.33 mm 3.33 mm Target compt + 2 3.37 mm -472 mum -2.41 m 240 keV 0 eV 3.12 mm 6.46 mm Target compt + 3 3.24 mm -130 mum -2.41 m 0 eV 88 keV 800 mum 7.26 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 847, Parent ID = 840 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.24 mm -130 mum -2.41 m 152 keV 0 eV 0 fm 0 fm Target initStep + 1 3.24 mm -129 mum -2.41 m 0 eV 152 keV 53.6 mum 53.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 846, Parent ID = 840 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.37 mm -472 mum -2.41 m 87.7 keV 0 eV 0 fm 0 fm Target initStep + 1 3.37 mm -473 mum -2.41 m 0 eV 87.7 keV 22.5 mum 22.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 845, Parent ID = 840 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.36 mm 313 mum -2.42 m 18.3 keV 0 eV 0 fm 0 fm Target initStep + 1 1.36 mm 313 mum -2.42 m 0 eV 18.3 keV 1.77 mum 1.77 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 839, Parent ID = 813 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -365 mum 51.6 mum -2.42 m 381 keV 0 eV 0 fm 0 fm Target initStep + 1 512 mum 444 mum -2.42 m 0 eV 88 keV 1.04 mm 1.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 848, Parent ID = 839 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 512 mum 444 mum -2.42 m 293 keV 0 eV 0 fm 0 fm Target initStep + 1 518 mum 450 mum -2.42 m 0 eV 293 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 838, Parent ID = 813 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -171 mum 150 mum -2.42 m 11.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.63 mm 6.47 mm -2.41 m 0 eV 0 eV 1.01 cm 1.01 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 850, Parent ID = 838 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.63 mm 6.47 mm -2.41 m 9.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.33 mm 7.25 mm -2.41 m 7.88 MeV 1.41 MeV 1.29 mm 1.29 mm Target eBrem + 2 2.39 mm 7.2 mm -2.41 m 5.82 MeV 195 keV 158 mum 1.45 mm Target eBrem + 3 2.65 mm 6.93 mm -2.41 m 0 eV 5.82 MeV 4.55 mm 6 mm Target eIoni + 4 2.65 mm 6.93 mm -2.41 m 0 eV 0 eV 0 fm 6 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 854, Parent ID = 850 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.65 mm 6.93 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.2 mm 8.71 mm -2.41 m 278 keV 0 eV 5.95 mm 5.95 mm Target compt + 2 -3.82 mm 1.49 cm -2.41 m 0 eV 88 keV 7.51 mm 1.35 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 856, Parent ID = 854 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.82 mm 1.49 cm -2.41 m 190 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.82 mm 1.49 cm -2.41 m 0 eV 190 keV 75.8 mum 75.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 855, Parent ID = 854 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.2 mm 8.71 mm -2.41 m 233 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.21 mm 8.71 mm -2.41 m 0 eV 233 keV 103 mum 103 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 853, Parent ID = 850 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.65 mm 6.93 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.66 mm 5.54 mm -2.41 m 0 eV 88 keV 4.65 mm 4.65 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 857, Parent ID = 853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.66 mm 5.54 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.67 mm 5.53 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 852, Parent ID = 850 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.39 mm 7.2 mm -2.41 m 1.87 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.01 mm 5.87 mm -2.41 m 0 eV 88 keV 3.61 mm 3.61 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 858, Parent ID = 852 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.01 mm 5.87 mm -2.41 m 1.78 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.01 mm 5.87 mm -2.41 m 1.48 MeV 13.3 keV 15.4 mum 15.4 mum Target eBrem + 2 3.26 mm 5.96 mm -2.41 m 737 keV 743 keV 433 mum 448 mum Target eBrem + 3 3.23 mm 5.98 mm -2.41 m 0 eV 737 keV 498 mum 946 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 859, Parent ID = 858 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.01 mm 5.87 mm -2.41 m 287 keV 0 eV 0 fm 0 fm Target initStep + 1 3.09 mm 7.96 mm -2.41 m 0 eV 88 keV 2.12 mm 2.12 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 860, Parent ID = 859 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.09 mm 7.96 mm -2.41 m 199 keV 0 eV 0 fm 0 fm Target initStep + 1 3.09 mm 7.96 mm -2.41 m 0 eV 199 keV 81.2 mum 81.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 851, Parent ID = 850 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.33 mm 7.25 mm -2.41 m 563 keV 0 eV 0 fm 0 fm Target initStep + 1 4.32 mm 5.98 mm -2.41 m 544 keV 0 eV 7.08 mm 7.08 mm Target compt + 2 6.39 mm 6.31 mm -2.4 m 544 keV 0 eV 5.72 mm 1.28 cm Target Transportation + 3 62.6 cm 10.6 cm -80 cm 544 keV 0 eV 1.72 m 1.73 m Tracker Transportation + 4 67.2 cm 11.3 cm -68.1 cm 544 keV 0 eV 12.8 cm 1.86 m Chamber Transportation + 5 93.6 cm 15.5 cm 0 fm 544 keV 0 eV 73.1 cm 2.59 m Tracker Transportation + 6 1.01 m 16.8 cm 20 cm 544 keV 0 eV 21.5 cm 2.81 m Chamber Transportation + 7 1.25 m 20.5 cm 80 cm 544 keV 0 eV 64.4 cm 3.45 m Tracker Transportation + 8 1.32 m 21.7 cm 1 m 544 keV 0 eV 21.5 cm 3.66 m Chamber Transportation + 9 1.56 m 25.5 cm 1.6 m 544 keV 0 eV 64.4 cm 4.31 m Tracker Transportation + 10 1.63 m 26.7 cm 1.8 m 544 keV 0 eV 21.5 cm 4.52 m Chamber Transportation + 11 1.86 m 30.4 cm 2.4 m 544 keV 0 eV 64.4 cm 5.17 m Tracker Transportation + 12 2.06 m 33.6 cm 2.91 m 544 keV 0 eV 54.8 cm 5.72 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 861, Parent ID = 851 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.32 mm 5.98 mm -2.41 m 18.8 keV 0 eV 0 fm 0 fm Target initStep + 1 4.32 mm 5.98 mm -2.41 m 0 eV 18.8 keV 1.85 mum 1.85 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 849, Parent ID = 838 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.63 mm 6.47 mm -2.41 m 209 keV 0 eV 0 fm 0 fm Target initStep + 1 1.63 mm 6.47 mm -2.41 m 0 eV 209 keV 87.2 mum 87.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 837, Parent ID = 813 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -187 mum 219 mum -2.42 m 459 keV 0 eV 0 fm 0 fm Target initStep + 1 -306 mum 351 mum -2.42 m 275 keV 0 eV 1.79 mm 1.79 mm Target compt + 2 78.3 mum -763 mum -2.42 m 0 eV 88 keV 1.25 mm 3.05 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 863, Parent ID = 837 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 78.3 mum -763 mum -2.42 m 187 keV 0 eV 0 fm 0 fm Target initStep + 1 79.5 mum -768 mum -2.42 m 0 eV 187 keV 73.7 mum 73.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 862, Parent ID = 837 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -306 mum 351 mum -2.42 m 184 keV 0 eV 0 fm 0 fm Target initStep + 1 -307 mum 353 mum -2.42 m 0 eV 184 keV 72.4 mum 72.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 836, Parent ID = 813 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -131 mum 163 mum -2.42 m 34 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm 798 mum -2.4 m 34 MeV 0 eV 2.11 cm 2.11 cm Target Transportation + 2 4.97 cm 2.49 cm -1.6 m 34 MeV 0 eV 80.2 cm 82.3 cm Tracker Transportation + 3 6.18 cm 3.09 cm -1.4 m 34 MeV 0 eV 20 cm 1.02 m Chamber Transportation + 4 9.82 cm 4.9 cm -80 cm 34 MeV 0 eV 60.1 cm 1.62 m Tracker Transportation + 5 11 cm 5.5 cm -60 cm 34 MeV 0 eV 20 cm 1.83 m Chamber Transportation + 6 14.7 cm 7.31 cm 0 fm 34 MeV 0 eV 60.1 cm 2.43 m Tracker Transportation + 7 15.9 cm 7.91 cm 20 cm 34 MeV 0 eV 20 cm 2.63 m Chamber Transportation + 8 19.5 cm 9.72 cm 80 cm 34 MeV 0 eV 60.1 cm 3.23 m Tracker Transportation + 9 20.7 cm 10.3 cm 1 m 34 MeV 0 eV 20 cm 3.43 m Chamber Transportation + 10 24.4 cm 12.1 cm 1.6 m 34 MeV 0 eV 60.1 cm 4.03 m Tracker Transportation + 11 25.6 cm 12.7 cm 1.8 m 34 MeV 0 eV 20 cm 4.23 m Chamber Transportation + 12 29.2 cm 14.5 cm 2.4 m 34 MeV 0 eV 60.1 cm 4.83 m Tracker Transportation + 13 32.3 cm 16.1 cm 2.91 m 34 MeV 0 eV 51.1 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 127, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -31.5 mum 30.6 mum -2.43 m 1.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 -140 mum 205 mum -2.42 m 1.64 MeV 0 eV 1.46 cm 1.46 cm Target compt + 2 936 mum 2.69 mm -2.41 m 1.06 MeV 0 eV 8.28 mm 2.29 cm Target compt + 3 7.52 mm 661 mum -2.4 m 1.06 MeV 0 eV 1.34 cm 3.62 cm Target Transportation + 4 2.4 m -73.8 cm 1.76 m 1.06 MeV 0 eV 4.86 m 4.9 m Tracker Transportation + 5 2.91 m -89.5 cm 2.65 m 1.06 MeV 0 eV 1.04 m 5.93 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 865, Parent ID = 127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 936 mum 2.69 mm -2.41 m 581 keV 0 eV 0 fm 0 fm Target initStep + 1 927 mum 2.71 mm -2.41 m 0 eV 581 keV 368 mum 368 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 864, Parent ID = 127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -140 mum 205 mum -2.42 m 331 keV 0 eV 0 fm 0 fm Target initStep + 1 -144 mum 197 mum -2.42 m 0 eV 331 keV 171 mum 171 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 126, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -31.1 mum 29.9 mum -2.43 m 1.49 MeV 0 eV 0 fm 0 fm Target initStep + 1 -110 mum 159 mum -2.42 m 0 eV 88 keV 1.27 cm 1.27 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 866, Parent ID = 126 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -110 mum 159 mum -2.42 m 1.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 136 mum 349 mum -2.42 m 100 keV 730 keV 659 mum 659 mum Target eBrem + 2 135 mum 350 mum -2.42 m 0 eV 100 keV 27.6 mum 686 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 867, Parent ID = 866 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 136 mum 349 mum -2.42 m 571 keV 0 eV 0 fm 0 fm Target initStep + 1 -500 mum 2.4 mm -2.42 m 375 keV 0 eV 2.71 mm 2.71 mm Target compt + 2 3.82 mm 5.06 mm -2.42 m 0 eV 88 keV 6.46 mm 9.17 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 869, Parent ID = 867 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.82 mm 5.06 mm -2.42 m 287 keV 0 eV 0 fm 0 fm Target initStep + 1 3.81 mm 5.07 mm -2.42 m 0 eV 287 keV 140 mum 140 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 868, Parent ID = 867 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -500 mum 2.4 mm -2.42 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 -504 mum 2.4 mm -2.42 m 0 eV 196 keV 79.1 mum 79.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 125, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -31.1 mum 29.7 mum -2.43 m 93.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -33.5 mum 44.1 mum -2.43 m 0 eV 0 eV 1.45 mm 1.45 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 871, Parent ID = 125 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -33.5 mum 44.1 mum -2.43 m 45.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.96 mum 49.1 mum -2.43 m 32.7 MeV 757 keV 453 mum 453 mum Target eBrem + 2 6.07 mum 15.2 mum -2.43 m 31.9 MeV 270 keV 220 mum 673 mum Target eBrem + 3 -14 mum -201 mum -2.43 m 30.7 MeV 1.2 MeV 891 mum 1.56 mm Target eBrem + 4 -24.4 mum -127 mum -2.43 m 21.6 MeV 538 keV 461 mum 2.03 mm Target eBrem + 5 -90.9 mum -122 mum -2.43 m 15.2 MeV 1.74 MeV 1.22 mm 3.24 mm Target eBrem + 6 -136 mum -189 mum -2.43 m 12.5 MeV 712 keV 606 mum 3.85 mm Target eBrem + 7 -171 mum -437 mum -2.43 m 9.96 MeV 784 keV 769 mum 4.62 mm Target eBrem + 8 -271 mum -442 mum -2.43 m 7.7 MeV 88.8 keV 102 mum 4.72 mm Target eBrem + 9 -810 mum -500 mum -2.43 m 6.06 MeV 860 keV 652 mum 5.37 mm Target eBrem + 10 -1.49 mm -649 mum -2.43 m 1.21 MeV 767 keV 763 mum 6.14 mm Target eBrem + 11 -1.54 mm -549 mum -2.43 m 0 eV 1.21 MeV 911 mum 7.05 mm Target eIoni + 12 -1.54 mm -549 mum -2.43 m 0 eV 0 eV 0 fm 7.05 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 882, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.54 mm -549 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.68 cm 5.71 mm -2.42 m 0 eV 88 keV 1.74 cm 1.74 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 883, Parent ID = 882 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.68 cm 5.71 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.69 cm 5.72 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 881, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.54 mm -549 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 945 mum -1.57 mm -2.43 m 385 keV 0 eV 2.83 mm 2.83 mm Target compt + 2 7.71 mm -1.88 cm -2.43 m 261 keV 0 eV 1.86 cm 2.14 cm Target compt + 3 7.77 mm -1.91 cm -2.43 m 0 eV 88 keV 601 mum 2.2 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 886, Parent ID = 881 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.77 mm -1.91 cm -2.43 m 173 keV 0 eV 0 fm 0 fm Target initStep + 1 7.77 mm -1.91 cm -2.43 m 0 eV 173 keV 65.4 mum 65.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 885, Parent ID = 881 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.71 mm -1.88 cm -2.43 m 124 keV 0 eV 0 fm 0 fm Target initStep + 1 7.71 mm -1.88 cm -2.43 m 0 eV 124 keV 39 mum 39 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 884, Parent ID = 881 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 945 mum -1.57 mm -2.43 m 126 keV 0 eV 0 fm 0 fm Target initStep + 1 948 mum -1.57 mm -2.43 m 0 eV 126 keV 40 mum 40 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 880, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.49 mm -649 mum -2.43 m 4.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.33 mm 3.53 mm -2.43 m 0 eV 0 eV 4.57 mm 4.57 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 888, Parent ID = 880 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.33 mm 3.53 mm -2.43 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.37 mm 3.63 mm -2.43 m 0 eV 1.17 MeV 877 mum 877 mum Target eIoni + 2 -3.37 mm 3.63 mm -2.43 m 0 eV 0 eV 0 fm 877 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 890, Parent ID = 888 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.37 mm 3.63 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.94 mm 2.36 mm -2.43 m 0 eV 88 keV 3.05 mm 3.05 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 891, Parent ID = 890 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.94 mm 2.36 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.95 mm 2.36 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 889, Parent ID = 888 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.37 mm 3.63 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.26 mm 4.18 mm -2.43 m 0 eV 88 keV 1.31 mm 1.31 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 892, Parent ID = 889 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.26 mm 4.18 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.25 mm 4.16 mm -2.43 m 84.2 keV 28 keV 32.6 mum 32.6 mum Target eBrem + 2 -2.25 mm 4.16 mm -2.43 m 0 eV 84.2 keV 21 mum 53.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 893, Parent ID = 892 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.25 mm 4.16 mm -2.43 m 311 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.6 mm 5.35 mm -2.43 m 266 keV 0 eV 1.62 mm 1.62 mm Target compt + 2 -2.46 mm 5.49 mm -2.43 m 256 keV 0 eV 588 mum 2.21 mm Target compt + 3 -2.45 mm 5.5 mm -2.43 m 0 eV 88 keV 35.3 mum 2.25 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 896, Parent ID = 893 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.45 mm 5.5 mm -2.43 m 168 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.45 mm 5.51 mm -2.43 m 0 eV 168 keV 62.7 mum 62.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 895, Parent ID = 893 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.46 mm 5.49 mm -2.43 m 10 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.46 mm 5.48 mm -2.43 m 0 eV 10 keV 696 nm 696 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 894, Parent ID = 893 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.6 mm 5.35 mm -2.43 m 44.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.6 mm 5.35 mm -2.43 m 0 eV 44.8 keV 7.52 mum 7.52 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 887, Parent ID = 880 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.33 mm 3.53 mm -2.43 m 1.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.03 mm 3.82 mm -2.43 m 1.01 MeV 876 keV 852 mum 852 mum Target eBrem + 2 -3.05 mm 3.87 mm -2.43 m 0 eV 1.01 MeV 732 mum 1.58 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 879, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -810 mum -500 mum -2.43 m 780 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.49 mm 691 mum -2.43 m 263 keV 0 eV 2.94 mm 2.94 mm Target compt + 2 -2.99 mm 533 mum -2.43 m 0 eV 88 keV 1.73 mm 4.67 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 898, Parent ID = 879 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.99 mm 533 mum -2.43 m 175 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.99 mm 533 mum -2.43 m 0 eV 175 keV 66.7 mum 66.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 897, Parent ID = 879 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.49 mm 691 mum -2.43 m 517 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.51 mm 700 mum -2.43 m 0 eV 517 keV 316 mum 316 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 878, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -271 mum -442 mum -2.43 m 2.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 cm 1.32 mm -2.42 m 1.96 MeV 0 eV 2.22 cm 2.22 cm Target compt + 2 -2.21 cm 1.59 mm -2.42 m 1.94 MeV 0 eV 888 mum 2.31 cm Target compt + 3 -2.21 cm 1.6 mm -2.42 m 0 eV 88 keV 24.3 mum 2.31 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 901, Parent ID = 878 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.21 cm 1.6 mm -2.42 m 1.85 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.22 cm 1.64 mm -2.42 m 0 eV 1.85 MeV 1.44 mm 1.44 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 900, Parent ID = 878 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.21 cm 1.59 mm -2.42 m 17.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.21 cm 1.59 mm -2.42 m 0 eV 17.1 keV 1.6 mum 1.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 899, Parent ID = 878 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.13 cm 1.32 mm -2.42 m 217 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 cm 1.32 mm -2.42 m 0 eV 217 keV 92.4 mum 92.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 877, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -171 mum -437 mum -2.43 m 1.71 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.72 mm -411 mum -2.43 m 340 keV 0 eV 1.61 mm 1.61 mm Target compt + 2 -466 mum -2.51 mm -2.43 m 0 eV 88 keV 3.3 mm 4.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 903, Parent ID = 877 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -466 mum -2.51 mm -2.43 m 252 keV 0 eV 0 fm 0 fm Target initStep + 1 -462 mum -2.52 mm -2.43 m 0 eV 252 keV 115 mum 115 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 902, Parent ID = 877 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm -411 mum -2.43 m 1.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.81 mm -398 mum -2.43 m 0 eV 1.37 MeV 1.03 mm 1.03 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 876, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -136 mum -189 mum -2.43 m 2.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 -831 mum -737 mum -2.43 m 0 eV 88 keV 2.27 mm 2.27 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 904, Parent ID = 876 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -831 mum -737 mum -2.43 m 1.98 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.2 mm -296 mum -2.43 m 642 keV 1.34 MeV 985 mum 985 mum Target eBrem + 2 -1.22 mm -289 mum -2.43 m 0 eV 642 keV 418 mum 1.4 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 875, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -90.9 mum -122 mum -2.43 m 4.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.39 mm -271 mum -2.42 m 0 eV 0 eV 4.81 mm 4.81 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 906, Parent ID = 875 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.39 mm -271 mum -2.42 m 2.88 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.31 mm -296 mum -2.42 m 0 eV 2.88 MeV 2.3 mm 2.3 mm Target eIoni + 2 -1.31 mm -296 mum -2.42 m 0 eV 0 eV 0 fm 2.3 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 908, Parent ID = 906 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.31 mm -296 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.27 mm -129 mum -2.42 m 224 keV 0 eV 186 mum 186 mum Target compt + 2 -2.03 mm -11.2 mum -2.42 m 144 keV 0 eV 896 mum 1.08 mm Target compt + 3 -2.03 mm -1.2 mm -2.42 m 0 eV 88 keV 1.25 mm 2.33 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 911, Parent ID = 908 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.03 mm -1.2 mm -2.42 m 55.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.03 mm -1.2 mm -2.42 m 0 eV 55.7 keV 10.7 mum 10.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 910, Parent ID = 908 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.03 mm -11.2 mum -2.42 m 80.5 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.03 mm -10.4 mum -2.42 m 0 eV 80.5 keV 19.4 mum 19.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 909, Parent ID = 908 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.27 mm -129 mum -2.42 m 287 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.26 mm -123 mum -2.42 m 0 eV 287 keV 140 mum 140 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 907, Parent ID = 906 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.31 mm -296 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.22 mm -3.59 mm -2.43 m 195 keV 0 eV 3.69 mm 3.69 mm Target compt + 2 -1.99 mm -3.52 mm -2.43 m 0 eV 88 keV 281 mum 3.97 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 913, Parent ID = 907 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.99 mm -3.52 mm -2.43 m 107 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.99 mm -3.52 mm -2.43 m 0 eV 107 keV 30.7 mum 30.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 912, Parent ID = 907 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.22 mm -3.59 mm -2.43 m 316 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.23 mm -3.6 mm -2.43 m 0 eV 316 keV 160 mum 160 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 905, Parent ID = 875 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.39 mm -271 mum -2.42 m 696 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.43 mm -269 mum -2.42 m 0 eV 696 keV 463 mum 463 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 874, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -24.4 mum -127 mum -2.43 m 8.59 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.85 mm 7.54 mm -2.4 m 8.59 MeV 0 eV 3.15 cm 3.15 cm Target Transportation + 2 -4.97 cm 20.8 cm -1.6 m 8.59 MeV 0 eV 82.6 cm 85.8 cm Tracker Transportation + 3 -5.73 cm 24 cm -1.47 m 8.59 MeV 0 eV 13 cm 98.8 cm Chamber Transportation + 4 -9.76 cm 40.9 cm -80 cm 8.59 MeV 0 eV 69.6 cm 1.68 m Tracker Transportation + 5 -11 cm 46 cm -60 cm 8.59 MeV 0 eV 20.7 cm 1.89 m Chamber Transportation + 6 -14.6 cm 61 cm 0 fm 8.59 MeV 0 eV 62 cm 2.51 m Tracker Transportation + 7 -15.7 cm 66 cm 20 cm 8.59 MeV 0 eV 20.7 cm 2.72 m Chamber Transportation + 8 -19.3 cm 81.1 cm 80 cm 8.59 MeV 0 eV 62 cm 3.34 m Tracker Transportation + 9 -20.5 cm 86.1 cm 1 m 8.59 MeV 0 eV 20.7 cm 3.54 m Chamber Transportation + 10 -24.1 cm 1.01 m 1.6 m 8.59 MeV 0 eV 62 cm 4.16 m Tracker Transportation + 11 -25.3 cm 1.06 m 1.8 m 8.59 MeV 0 eV 20.7 cm 4.37 m Chamber Transportation + 12 -28.9 cm 1.21 m 2.4 m 8.59 MeV 0 eV 62 cm 4.99 m Tracker Transportation + 13 -32 cm 1.34 m 2.91 m 8.59 MeV 0 eV 52.7 cm 5.52 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 873, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.07 mum 15.2 mum -2.43 m 565 keV 0 eV 0 fm 0 fm Target initStep + 1 7.01 mum 14.6 mum -2.43 m 499 keV 0 eV 8.7 mum 8.7 mum Target compt + 2 1.43 mm 3.09 mm -2.42 m 0 eV 88 keV 7.67 mm 7.68 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 915, Parent ID = 873 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.43 mm 3.09 mm -2.42 m 411 keV 0 eV 0 fm 0 fm Target initStep + 1 1.44 mm 3.1 mm -2.42 m 0 eV 411 keV 232 mum 232 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 914, Parent ID = 873 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.01 mum 14.6 mum -2.43 m 66.1 keV 0 eV 0 fm 0 fm Target initStep + 1 6.9 mum 13.6 mum -2.43 m 0 eV 66.1 keV 14.1 mum 14.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 872, Parent ID = 871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.96 mum 49.1 mum -2.43 m 12 MeV 0 eV 0 fm 0 fm Target initStep + 1 488 mum -584 mum -2.43 m 0 eV 0 eV 4.16 mm 4.16 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 917, Parent ID = 872 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 488 mum -584 mum -2.43 m 7.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 675 mum -889 mum -2.43 m 0 eV 7.09 MeV 3.89 mm 3.89 mm Target eBrem + 2 675 mum -889 mum -2.43 m 0 eV 0 eV 0 fm 3.89 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 919, Parent ID = 917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 675 mum -889 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.78 mm 220 mum -2.43 m 388 keV 0 eV 1.68 mm 1.68 mm Target compt + 2 6.12 mm 8.68 mum -2.43 m 0 eV 88 keV 6.63 mm 8.31 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 921, Parent ID = 919 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.12 mm 8.68 mum -2.43 m 300 keV 0 eV 0 fm 0 fm Target initStep + 1 6.13 mm 9.94 mum -2.43 m 0 eV 300 keV 149 mum 149 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 920, Parent ID = 919 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.78 mm 220 mum -2.43 m 123 keV 0 eV 0 fm 0 fm Target initStep + 1 1.78 mm 222 mum -2.43 m 0 eV 123 keV 38.4 mum 38.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 918, Parent ID = 917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 675 mum -889 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.3 mm -3.88 mm -2.42 m 0 eV 88 keV 4.52 mm 4.52 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 922, Parent ID = 918 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.3 mm -3.88 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.31 mm -3.89 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 916, Parent ID = 872 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 488 mum -584 mum -2.43 m 3.85 MeV 0 eV 0 fm 0 fm Target initStep + 1 -287 mum -401 mum -2.43 m 1.88 MeV 1.25 MeV 1.23 mm 1.23 mm Target eBrem + 2 -432 mum -425 mum -2.43 m 0 eV 1.88 MeV 1.46 mm 2.69 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 923, Parent ID = 916 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -287 mum -401 mum -2.43 m 709 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm -3.44 mm -2.43 m 709 keV 0 eV 2.49 cm 2.49 cm Target Transportation + 2 -1.23 m -15.1 cm -2.4 m 709 keV 0 eV 1.21 m 1.24 m World Transportation + 3 -2.4 m -29.5 cm -2.37 m 709 keV 0 eV 1.18 m 2.42 m Tracker Transportation + 4 -2.91 m -35.8 cm -2.36 m 709 keV 0 eV 51.4 cm 2.93 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 870, Parent ID = 125 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -33.5 mum 44.1 mum -2.43 m 47.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -33.9 mum 44.4 mum -2.43 m 46.6 MeV 52 keV 45.3 mum 45.3 mum Target eBrem + 2 27.1 mum 60.3 mum -2.43 m 41.4 MeV 1.05 MeV 686 mum 731 mum Target eBrem + 3 19.9 mum 111 mum -2.43 m 40.8 MeV 281 keV 238 mum 969 mum Target eBrem + 4 -171 mum 149 mum -2.43 m 39.1 MeV 1.15 MeV 1.06 mm 2.03 mm Target eBrem + 5 -47 mum 135 mum -2.43 m 29.6 MeV 2.04 MeV 1.46 mm 3.49 mm Target eBrem + 6 -58.8 mum 133 mum -2.43 m 27.7 MeV 935 keV 675 mum 4.17 mm Target eBrem + 7 13.2 mum 235 mum -2.43 m 25.9 MeV 814 keV 620 mum 4.79 mm Target eBrem + 8 64.3 mum 261 mum -2.43 m 23.3 MeV 160 keV 158 mum 4.94 mm Target eBrem + 9 100 mum 295 mum -2.43 m 18.7 MeV 165 keV 146 mum 5.09 mm Target eBrem + 10 251 mum 626 mum -2.43 m 17.5 MeV 745 keV 619 mum 5.71 mm Target eBrem + 11 433 mum 819 mum -2.43 m 15.2 MeV 1.93 MeV 381 mum 6.09 mm Target eBrem + 12 538 mum 1.02 mm -2.43 m 14.3 MeV 436 keV 346 mum 6.44 mm Target eBrem + 13 883 mum 1.55 mm -2.42 m 7.32 MeV 3.28 MeV 2.73 mm 9.17 mm Target eBrem + 14 -465 mum 1.15 mm -2.42 m 435 keV 3.06 MeV 2.24 mm 1.14 cm Target eBrem + 15 -469 mum 1.14 mm -2.42 m 0 eV 435 keV 250 mum 1.17 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 937, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -465 mum 1.15 mm -2.42 m 3.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.01 cm -2.5 cm -2.41 m 3.82 MeV 0 eV 3.01 cm 3.01 cm Target Transportation + 2 -1.94 cm -5.04 cm -2.4 m 3.82 MeV 0 eV 2.92 cm 5.93 cm World Transportation + 3 -88.4 cm -2.4 m -1.38 m 3.82 MeV 0 eV 2.7 m 2.76 m Tracker Transportation + 4 -1.07 m -2.91 m -1.15 m 3.82 MeV 0 eV 58.7 cm 3.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 936, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 883 mum 1.55 mm -2.42 m 3.68 MeV 0 eV 0 fm 0 fm Target initStep + 1 934 mum 2.63 mm -2.42 m 0 eV 0 eV 3.18 mm 3.18 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 939, Parent ID = 936 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 934 mum 2.63 mm -2.42 m 851 keV 0 eV 0 fm 0 fm Target initStep + 1 926 mum 2.65 mm -2.42 m 0 eV 851 keV 601 mum 601 mum Target eIoni + 2 926 mum 2.65 mm -2.42 m 0 eV 0 eV 0 fm 601 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 941, Parent ID = 939 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 926 mum 2.65 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.94 mm 1.34 mm -2.42 m 199 keV 0 eV 4.18 mm 4.18 mm Target compt + 2 -1.61 mm 3.9 mm -2.42 m 0 eV 88 keV 3.11 mm 7.28 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 943, Parent ID = 941 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.61 mm 3.9 mm -2.42 m 111 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.61 mm 3.91 mm -2.42 m 0 eV 111 keV 32.6 mum 32.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 942, Parent ID = 941 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.94 mm 1.34 mm -2.42 m 312 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.95 mm 1.34 mm -2.42 m 0 eV 312 keV 157 mum 157 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 940, Parent ID = 939 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 926 mum 2.65 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.85 mm 4.67 mm -2.42 m 253 keV 0 eV 6.41 mm 6.41 mm Target compt + 2 6.53 mm 5.73 mm -2.42 m 0 eV 88 keV 1.14 mm 7.55 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 945, Parent ID = 940 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.53 mm 5.73 mm -2.42 m 165 keV 0 eV 0 fm 0 fm Target initStep + 1 6.53 mm 5.73 mm -2.42 m 0 eV 165 keV 61.2 mum 61.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 944, Parent ID = 940 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.85 mm 4.67 mm -2.42 m 258 keV 0 eV 0 fm 0 fm Target initStep + 1 6.86 mm 4.66 mm -2.42 m 0 eV 258 keV 119 mum 119 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 938, Parent ID = 936 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 934 mum 2.63 mm -2.42 m 1.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 946 mum 2.68 mm -2.42 m 0 eV 1.8 MeV 1.39 mm 1.39 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 935, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 538 mum 1.02 mm -2.43 m 491 keV 0 eV 0 fm 0 fm Target initStep + 1 3.09 mm 4.36 mm -2.42 m 258 keV 0 eV 5.27 mm 5.27 mm Target compt + 2 2.06 mm 4.97 mm -2.42 m 0 eV 88 keV 1.23 mm 6.5 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 947, Parent ID = 935 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.06 mm 4.97 mm -2.42 m 170 keV 0 eV 0 fm 0 fm Target initStep + 1 2.06 mm 4.97 mm -2.42 m 0 eV 170 keV 63.9 mum 63.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 946, Parent ID = 935 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.09 mm 4.36 mm -2.42 m 233 keV 0 eV 0 fm 0 fm Target initStep + 1 3.09 mm 4.36 mm -2.42 m 0 eV 233 keV 103 mum 103 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 934, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 433 mum 819 mum -2.43 m 420 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm 2.05 mm -2.43 m 221 keV 0 eV 1.94 mm 1.94 mm Target compt + 2 1.17 mm 1.99 mm -2.43 m 0 eV 88 keV 76.6 mum 2.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 949, Parent ID = 934 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm 1.99 mm -2.43 m 133 keV 0 eV 0 fm 0 fm Target initStep + 1 1.17 mm 1.99 mm -2.43 m 0 eV 133 keV 43.5 mum 43.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 948, Parent ID = 934 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.14 mm 2.05 mm -2.43 m 199 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm 2.06 mm -2.43 m 0 eV 199 keV 81 mum 81 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 933, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 251 mum 626 mum -2.43 m 382 keV 0 eV 0 fm 0 fm Target initStep + 1 1.58 mm 2.86 mm -2.42 m 314 keV 0 eV 3.75 mm 3.75 mm Target compt + 2 1.76 mm 4.88 mm -2.42 m 0 eV 88 keV 2.05 mm 5.81 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 951, Parent ID = 933 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.76 mm 4.88 mm -2.42 m 226 keV 0 eV 0 fm 0 fm Target initStep + 1 1.77 mm 4.89 mm -2.42 m 0 eV 226 keV 98.5 mum 98.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 950, Parent ID = 933 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.58 mm 2.86 mm -2.42 m 67.8 keV 0 eV 0 fm 0 fm Target initStep + 1 1.58 mm 2.86 mm -2.42 m 0 eV 67.8 keV 14.8 mum 14.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 932, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 100 mum 295 mum -2.43 m 4.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 458 mum 808 mum -2.43 m 0 eV 0 eV 1.46 mm 1.46 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 953, Parent ID = 932 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 458 mum 808 mum -2.43 m 1.75 MeV 0 eV 0 fm 0 fm Target initStep + 1 585 mum 793 mum -2.43 m 0 eV 1.75 MeV 1.37 mm 1.37 mm Target eIoni + 2 585 mum 793 mum -2.43 m 0 eV 0 eV 0 fm 1.37 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 955, Parent ID = 953 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 585 mum 793 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.3 mm -6.92 mm -2.42 m 0 eV 88 keV 8.74 mm 8.74 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 956, Parent ID = 955 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.3 mm -6.92 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.31 mm -6.93 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 954, Parent ID = 953 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 585 mum 793 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 407 mum 1.16 mm -2.43 m 0 eV 88 keV 417 mum 417 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 957, Parent ID = 954 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 407 mum 1.16 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 411 mum 1.18 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 952, Parent ID = 932 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 458 mum 808 mum -2.43 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 423 mum 890 mum -2.43 m 0 eV 1.7 MeV 1.31 mm 1.31 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 931, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 64.3 mum 261 mum -2.43 m 2.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.01 mm 6.36 mm -2.4 m 1.06 MeV 0 eV 2.75 cm 2.75 cm Target compt + 2 1.34 cm 9.48 mm -2.4 m 1.06 MeV 0 eV 5.89 mm 3.34 cm Target Transportation + 3 2.4 m 1.71 m -1.1 m 1.06 MeV 0 eV 3.2 m 3.24 m Tracker Transportation + 4 2.91 m 2.07 m -82.5 cm 1.06 MeV 0 eV 68.5 cm 3.92 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 958, Parent ID = 931 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.01 mm 6.36 mm -2.4 m 1.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.01 mm 6.36 mm -2.4 m 0 eV 1.34 MeV 1.01 mm 1.01 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 930, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 13.2 mum 235 mum -2.43 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.6 mm 3.37 mm -2.4 m 992 keV 0 eV 2.62 cm 2.62 cm Target compt + 2 1.11 cm 4.35 mm -2.4 m 992 keV 0 eV 4.05 mm 3.03 cm Target Transportation + 3 1 m 65.1 cm 0 fm 992 keV 0 eV 2.68 m 2.71 m Tracker Transportation + 4 1.09 m 70.4 cm 20 cm 992 keV 0 eV 22.3 cm 2.93 m Chamber Transportation + 5 1.34 m 86.6 cm 80 cm 992 keV 0 eV 66.9 cm 3.6 m Tracker Transportation + 6 1.42 m 92 cm 1 m 992 keV 0 eV 22.3 cm 3.82 m Chamber Transportation + 7 1.67 m 1.08 m 1.6 m 992 keV 0 eV 66.9 cm 4.49 m Tracker Transportation + 8 1.75 m 1.14 m 1.8 m 992 keV 0 eV 22.3 cm 4.71 m Chamber Transportation + 9 2 m 1.3 m 2.4 m 992 keV 0 eV 66.9 cm 5.38 m Tracker Transportation + 10 2.21 m 1.43 m 2.91 m 992 keV 0 eV 56.9 cm 5.95 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 959, Parent ID = 930 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.6 mm 3.37 mm -2.4 m 15.2 keV 0 eV 0 fm 0 fm Target initStep + 1 9.6 mm 3.37 mm -2.4 m 0 eV 15.2 keV 1.33 mum 1.33 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 929, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -58.8 mum 133 mum -2.43 m 918 keV 0 eV 0 fm 0 fm Target initStep + 1 5.42 mm 2.41 mm -2.4 m 918 keV 0 eV 2.9 cm 2.9 cm Target Transportation + 2 16 cm 6.66 cm -1.6 m 918 keV 0 eV 81.7 cm 84.6 cm Tracker Transportation + 3 19.8 cm 8.27 cm -1.4 m 918 keV 0 eV 20.4 cm 1.05 m Chamber Transportation + 4 31.4 cm 13.1 cm -80 cm 918 keV 0 eV 61.3 cm 1.66 m Tracker Transportation + 5 35.2 cm 14.7 cm -60 cm 918 keV 0 eV 20.4 cm 1.87 m Chamber Transportation + 6 46.8 cm 19.5 cm 0 fm 918 keV 0 eV 61.3 cm 2.48 m Tracker Transportation + 7 50.6 cm 21.1 cm 20 cm 918 keV 0 eV 20.4 cm 2.69 m Chamber Transportation + 8 62.2 cm 25.9 cm 80 cm 918 keV 0 eV 61.3 cm 3.3 m Tracker Transportation + 9 66 cm 27.5 cm 1 m 918 keV 0 eV 20.4 cm 3.5 m Chamber Transportation + 10 77.6 cm 32.3 cm 1.6 m 918 keV 0 eV 61.3 cm 4.12 m Tracker Transportation + 11 81.4 cm 33.9 cm 1.8 m 918 keV 0 eV 20.4 cm 4.32 m Chamber Transportation + 12 93 cm 38.8 cm 2.4 m 918 keV 0 eV 61.3 cm 4.93 m Tracker Transportation + 13 1.03 m 42.8 cm 2.91 m 918 keV 0 eV 52.1 cm 5.45 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 928, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -47 mum 135 mum -2.43 m 7.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 -45 mum -74.9 mum -2.43 m 0 eV 0 eV 1.58 mm 1.58 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 961, Parent ID = 928 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -45 mum -74.9 mum -2.43 m 5.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 -16.3 mum -111 mum -2.43 m 4.9 MeV 194 keV 165 mum 165 mum Target eBrem + 2 62.8 mum 1.26 mm -2.43 m 3.22 MeV 1.68 MeV 1.64 mm 1.81 mm Target eBrem + 3 411 mum 606 mum -2.43 m 1.88 MeV 946 keV 1.01 mm 2.82 mm Target eBrem + 4 480 mum 426 mum -2.43 m 0 eV 1.88 MeV 1.48 mm 4.3 mm Target eIoni + 5 480 mum 426 mum -2.43 m 0 eV 0 eV 0 fm 4.3 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 965, Parent ID = 961 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 480 mum 426 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.17 mm -3.84 mm -2.43 m 206 keV 0 eV 4.33 mm 4.33 mm Target compt + 2 1.25 mm -3.76 mm -2.43 m 0 eV 88 keV 147 mum 4.48 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 967, Parent ID = 965 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.25 mm -3.76 mm -2.43 m 118 keV 0 eV 0 fm 0 fm Target initStep + 1 1.25 mm -3.76 mm -2.43 m 0 eV 118 keV 36.2 mum 36.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 966, Parent ID = 965 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm -3.84 mm -2.43 m 305 keV 0 eV 0 fm 0 fm Target initStep + 1 1.17 mm -3.85 mm -2.43 m 0 eV 305 keV 152 mum 152 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 964, Parent ID = 961 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 480 mum 426 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -200 mum 4.61 mm -2.43 m 405 keV 0 eV 4.25 mm 4.25 mm Target compt + 2 -3.35 mm 7.23 mm -2.42 m 401 keV 0 eV 4.3 mm 8.56 mm Target compt + 3 -7.3 mm 1.16 cm -2.42 m 289 keV 0 eV 6.4 mm 1.5 cm Target compt + 4 -6.7 mm 1.29 cm -2.42 m 0 eV 88 keV 1.64 mm 1.66 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 971, Parent ID = 964 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.7 mm 1.29 cm -2.42 m 201 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.71 mm 1.29 cm -2.42 m 0 eV 201 keV 82 mum 82 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 970, Parent ID = 964 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.3 mm 1.16 cm -2.42 m 113 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.31 mm 1.16 cm -2.42 m 0 eV 113 keV 33.5 mum 33.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 969, Parent ID = 964 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.35 mm 7.23 mm -2.42 m 3.98 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.35 mm 7.23 mm -2.42 m 0 eV 3.98 keV 185 nm 185 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 968, Parent ID = 964 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -200 mum 4.61 mm -2.43 m 106 keV 0 eV 0 fm 0 fm Target initStep + 1 -199 mum 4.61 mm -2.43 m 0 eV 106 keV 30.3 mum 30.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 963, Parent ID = 961 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 411 mum 606 mum -2.43 m 401 keV 0 eV 0 fm 0 fm Target initStep + 1 1.32 mm -4.01 mm -2.43 m 396 keV 0 eV 5.51 mm 5.51 mm Target compt + 2 2.09 mm -6.34 mm -2.43 m 373 keV 0 eV 2.66 mm 8.17 mm Target compt + 3 3.58 mm -1.27 cm -2.43 m 373 keV 0 eV 6.53 mm 1.47 cm Target compt + 4 4.28 mm -1.53 cm -2.43 m 202 keV 0 eV 2.68 mm 1.74 cm Target compt + 5 3.81 mm -1.53 cm -2.43 m 0 eV 88 keV 468 mum 1.78 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 976, Parent ID = 963 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.81 mm -1.53 cm -2.43 m 114 keV 0 eV 0 fm 0 fm Target initStep + 1 3.81 mm -1.53 cm -2.43 m 0 eV 114 keV 34 mum 34 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 975, Parent ID = 963 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.28 mm -1.53 cm -2.43 m 171 keV 0 eV 0 fm 0 fm Target initStep + 1 4.28 mm -1.53 cm -2.43 m 0 eV 171 keV 64.7 mum 64.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 974, Parent ID = 963 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.58 mm -1.27 cm -2.43 m 134 eV 0 eV 0 fm 0 fm Target initStep + 1 3.58 mm -1.27 cm -2.43 m 0 eV 134 eV 1.86 nm 1.86 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 973, Parent ID = 963 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 mm -6.34 mm -2.43 m 23.2 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 mm -6.34 mm -2.43 m 0 eV 23.2 keV 2.59 mum 2.59 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 972, Parent ID = 963 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.32 mm -4.01 mm -2.43 m 4.74 keV 0 eV 0 fm 0 fm Target initStep + 1 1.32 mm -4.01 mm -2.43 m 0 eV 4.74 keV 237 nm 237 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 962, Parent ID = 961 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -16.3 mum -111 mum -2.43 m 298 keV 0 eV 0 fm 0 fm Target initStep + 1 -587 mum 413 mum -2.42 m 0 eV 88 keV 2.83 mm 2.83 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 977, Parent ID = 962 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -587 mum 413 mum -2.42 m 210 keV 0 eV 0 fm 0 fm Target initStep + 1 -584 mum 414 mum -2.42 m 0 eV 210 keV 88.2 mum 88.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 960, Parent ID = 928 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -45 mum -74.9 mum -2.43 m 1.11 MeV 0 eV 0 fm 0 fm Target initStep + 1 -32.7 mum -90.6 mum -2.43 m 0 eV 1.11 MeV 816 mum 816 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 927, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -171 mum 149 mum -2.43 m 530 keV 0 eV 0 fm 0 fm Target initStep + 1 -175 mum 150 mum -2.43 m 424 keV 0 eV 66.7 mum 66.7 mum Target compt + 2 1.13 mm 995 mum -2.43 m 0 eV 88 keV 2.57 mm 2.64 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 979, Parent ID = 927 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.13 mm 995 mum -2.43 m 336 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm 1 mm -2.43 m 0 eV 336 keV 175 mum 175 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 978, Parent ID = 927 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -175 mum 150 mum -2.43 m 106 keV 0 eV 0 fm 0 fm Target initStep + 1 -177 mum 149 mum -2.43 m 0 eV 106 keV 30.2 mum 30.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 926, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 19.9 mum 111 mum -2.43 m 302 keV 0 eV 0 fm 0 fm Target initStep + 1 -146 mum 321 mum -2.43 m 0 eV 88 keV 2.02 mm 2.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 980, Parent ID = 926 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -146 mum 321 mum -2.43 m 214 keV 0 eV 0 fm 0 fm Target initStep + 1 -147 mum 323 mum -2.43 m 0 eV 214 keV 90.5 mum 90.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 925, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 27.1 mum 60.3 mum -2.43 m 4.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 95.2 mum 764 mum -2.43 m 2.64 MeV 0 eV 5.45 mm 5.45 mm Target compt + 2 427 mum -6.06 mm -2.4 m 2.64 MeV 0 eV 2.73 cm 3.27 cm Target Transportation + 3 1.05 cm -21.3 cm -1.6 m 2.64 MeV 0 eV 82.6 cm 85.9 cm Tracker Transportation + 4 1.18 cm -24 cm -1.5 m 2.64 MeV 0 eV 10.8 cm 96.7 cm Chamber Transportation + 5 2.05 cm -42 cm -80 cm 2.64 MeV 0 eV 71.8 cm 1.69 m Tracker Transportation + 6 2.3 cm -47.1 cm -60 cm 2.64 MeV 0 eV 20.7 cm 1.89 m Chamber Transportation + 7 3.06 cm -62.7 cm 0 fm 2.64 MeV 0 eV 62 cm 2.51 m Tracker Transportation + 8 3.31 cm -67.8 cm 20 cm 2.64 MeV 0 eV 20.7 cm 2.72 m Chamber Transportation + 9 4.06 cm -83.3 cm 80 cm 2.64 MeV 0 eV 62 cm 3.34 m Tracker Transportation + 10 4.31 cm -88.5 cm 1 m 2.64 MeV 0 eV 20.7 cm 3.54 m Chamber Transportation + 11 5.06 cm -1.04 m 1.6 m 2.64 MeV 0 eV 62 cm 4.16 m Tracker Transportation + 12 5.32 cm -1.09 m 1.8 m 2.64 MeV 0 eV 20.7 cm 4.37 m Chamber Transportation + 13 6.07 cm -1.25 m 2.4 m 2.64 MeV 0 eV 62 cm 4.99 m Tracker Transportation + 14 6.71 cm -1.38 m 2.91 m 2.64 MeV 0 eV 52.7 cm 5.52 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 981, Parent ID = 925 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 95.2 mum 764 mum -2.43 m 1.57 MeV 0 eV 0 fm 0 fm Target initStep + 1 488 mum 737 mum -2.43 m 636 keV 930 keV 751 mum 751 mum Target eBrem + 2 484 mum 709 mum -2.43 m 0 eV 636 keV 413 mum 1.16 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 924, Parent ID = 870 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -33.9 mum 44.4 mum -2.43 m 361 keV 0 eV 0 fm 0 fm Target initStep + 1 10.2 mum -71.2 mum -2.43 m 0 eV 88 keV 6.79 mm 6.79 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 982, Parent ID = 924 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 10.2 mum -71.2 mum -2.43 m 273 keV 0 eV 0 fm 0 fm Target initStep + 1 11.9 mum -65.1 mum -2.43 m 0 eV 273 keV 130 mum 130 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 124, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -29.7 mum 27.4 mum -2.43 m 6.68 MeV 0 eV 0 fm 0 fm Target initStep + 1 -109 mum 302 mum -2.4 m 6.68 MeV 0 eV 3.43 cm 3.43 cm Target Transportation + 2 -1.95 mm 6.69 mm -1.6 m 6.68 MeV 0 eV 80 cm 83.4 cm Tracker Transportation + 3 -2.41 mm 8.29 mm -1.4 m 6.68 MeV 0 eV 20 cm 1.03 m Chamber Transportation + 4 -3.79 mm 1.31 cm -80 cm 6.68 MeV 0 eV 60 cm 1.63 m Tracker Transportation + 5 -4.25 mm 1.47 cm -60 cm 6.68 MeV 0 eV 20 cm 1.83 m Chamber Transportation + 6 -5.63 mm 1.95 cm 0 fm 6.68 MeV 0 eV 60 cm 2.43 m Tracker Transportation + 7 -6.09 mm 2.11 cm 20 cm 6.68 MeV 0 eV 20 cm 2.63 m Chamber Transportation + 8 -7.47 mm 2.59 cm 80 cm 6.68 MeV 0 eV 60 cm 3.23 m Tracker Transportation + 9 -7.93 mm 2.75 cm 1 m 6.68 MeV 0 eV 20 cm 3.43 m Chamber Transportation + 10 -9.31 mm 3.23 cm 1.6 m 6.68 MeV 0 eV 60 cm 4.03 m Tracker Transportation + 11 -9.77 mm 3.39 cm 1.8 m 6.68 MeV 0 eV 20 cm 4.23 m Chamber Transportation + 12 -1.11 cm 3.87 cm 2.4 m 6.68 MeV 0 eV 60 cm 4.83 m Tracker Transportation + 13 -1.23 cm 4.27 cm 2.91 m 6.68 MeV 0 eV 51 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 123, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -29.5 mum 26.5 mum -2.43 m 36.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -26.3 mum 117 mum -2.42 m 0 eV 0 eV 1.18 cm 1.18 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 984, Parent ID = 123 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -26.3 mum 117 mum -2.42 m 21.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 40.5 mum 109 mum -2.42 m 20.9 MeV 596 keV 530 mum 530 mum Target eBrem + 2 -6.86 mum 130 mum -2.42 m 19.4 MeV 639 keV 510 mum 1.04 mm Target eBrem + 3 -52.5 mum -13.5 mum -2.42 m 13.9 MeV 2.23 MeV 1.51 mm 2.55 mm Target eBrem + 4 504 mum 758 mum -2.42 m 10.2 MeV 2.2 MeV 1.53 mm 4.08 mm Target eBrem + 5 633 mum 1.54 mm -2.42 m 4.62 MeV 1.09 MeV 947 mum 5.03 mm Target eBrem + 6 1.19 mm 935 mum -2.42 m 2.5 MeV 1.44 MeV 1.23 mm 6.26 mm Target eBrem + 7 1.17 mm 1.02 mm -2.42 m 0 eV 2.5 MeV 1.99 mm 8.26 mm Target eIoni + 8 1.17 mm 1.02 mm -2.42 m 0 eV 0 eV 0 fm 8.26 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 992, Parent ID = 984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm 1.02 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 574 mum 501 mum -2.42 m 0 eV 88 keV 2.69 mm 2.69 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 993, Parent ID = 992 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 574 mum 501 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 573 mum 495 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 991, Parent ID = 984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm 1.02 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 mm 1.05 mm -2.42 m 0 eV 88 keV 160 mum 160 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 994, Parent ID = 991 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 mm 1.05 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 mm 1.06 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 990, Parent ID = 984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.19 mm 935 mum -2.42 m 683 keV 0 eV 0 fm 0 fm Target initStep + 1 1.17 mm 1.1 mm -2.42 m 389 keV 0 eV 2 mm 2 mm Target compt + 2 1.99 mm 1.77 mm -2.42 m 0 eV 88 keV 1.16 mm 3.15 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 996, Parent ID = 990 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.99 mm 1.77 mm -2.42 m 301 keV 0 eV 0 fm 0 fm Target initStep + 1 1.99 mm 1.78 mm -2.42 m 0 eV 301 keV 150 mum 150 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 995, Parent ID = 990 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 mm 1.1 mm -2.42 m 294 keV 0 eV 0 fm 0 fm Target initStep + 1 1.16 mm 1.1 mm -2.42 m 0 eV 294 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 989, Parent ID = 984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 633 mum 1.54 mm -2.42 m 4.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.25 cm 1.46 cm -2.43 m 0 eV 0 eV 2.64 cm 2.64 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 998, Parent ID = 989 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.25 cm 1.46 cm -2.43 m 575 keV 0 eV 0 fm 0 fm Target initStep + 1 2.25 cm 1.46 cm -2.43 m 0 eV 575 keV 364 mum 364 mum Target eIoni + 2 2.25 cm 1.46 cm -2.43 m 0 eV 0 eV 0 fm 364 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1000, Parent ID = 998 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.25 cm 1.46 cm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.39 cm 1.49 cm -2.42 m 240 keV 0 eV 2.1 mm 2.1 mm Target compt + 2 2.5 cm 1.39 cm -2.43 m 240 keV 0 eV 1.82 mm 3.92 mm Target Transportation + 3 48.9 cm -42.9 cm -2.91 m 240 keV 0 eV 80.3 cm 80.7 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1001, Parent ID = 1000 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.39 cm 1.49 cm -2.42 m 271 keV 0 eV 0 fm 0 fm Target initStep + 1 2.4 cm 1.49 cm -2.42 m 0 eV 271 keV 128 mum 128 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 999, Parent ID = 998 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.25 cm 1.46 cm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.39 mm 1.02 cm -2.45 m 319 keV 0 eV 2.66 cm 2.66 cm Target compt + 2 3.54 mm 1.28 cm -2.45 m 0 eV 88 keV 3.07 mm 2.96 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1003, Parent ID = 999 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.54 mm 1.28 cm -2.45 m 231 keV 0 eV 0 fm 0 fm Target initStep + 1 3.54 mm 1.28 cm -2.45 m 0 eV 231 keV 102 mum 102 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1002, Parent ID = 999 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.39 mm 1.02 cm -2.45 m 192 keV 0 eV 0 fm 0 fm Target initStep + 1 4.39 mm 1.02 cm -2.45 m 0 eV 192 keV 76.7 mum 76.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 997, Parent ID = 989 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.25 cm 1.46 cm -2.43 m 2.88 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.28 cm 1.46 cm -2.43 m 0 eV 2.88 MeV 2.27 mm 2.27 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 988, Parent ID = 984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 504 mum 758 mum -2.42 m 1.55 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.43 mm 1.37 cm -2.42 m 1.1 MeV 0 eV 1.53 cm 1.53 cm Target compt + 2 1.03 cm 2.5 cm -2.42 m 1.1 MeV 0 eV 1.2 cm 2.74 cm Target Transportation + 3 6.24 cm 17.4 cm -2.4 m 1.1 MeV 0 eV 16 cm 18.7 cm World Transportation + 4 83.9 cm 2.4 m -2.06 m 1.1 MeV 0 eV 2.38 m 2.57 m Tracker Transportation + 5 1.02 m 2.91 m -1.98 m 1.1 MeV 0 eV 54.6 cm 3.11 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1004, Parent ID = 988 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.43 mm 1.37 cm -2.42 m 447 keV 0 eV 0 fm 0 fm Target initStep + 1 6.43 mm 1.38 cm -2.42 m 0 eV 447 keV 260 mum 260 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 987, Parent ID = 984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -52.5 mum -13.5 mum -2.42 m 3.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.09 cm 1.62 cm -2.41 m 0 eV 0 eV 2.19 cm 2.19 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1006, Parent ID = 987 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 cm 1.62 cm -2.41 m 1.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.1 cm 1.64 cm -2.41 m 0 eV 1.82 MeV 1.43 mm 1.43 mm Target eIoni + 2 1.1 cm 1.64 cm -2.41 m 0 eV 0 eV 0 fm 1.43 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1008, Parent ID = 1006 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 cm 1.64 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.04 cm 1.26 cm -2.41 m 366 keV 0 eV 4.06 mm 4.06 mm Target compt + 2 1.14 cm 1.09 cm -2.41 m 352 keV 0 eV 2 mm 6.06 mm Target compt + 3 1.23 cm 7.85 mm -2.41 m 0 eV 88 keV 3.91 mm 9.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1011, Parent ID = 1008 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.23 cm 7.85 mm -2.41 m 264 keV 0 eV 0 fm 0 fm Target initStep + 1 1.24 cm 7.85 mm -2.41 m 0 eV 264 keV 124 mum 124 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1010, Parent ID = 1008 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.14 cm 1.09 cm -2.41 m 13.3 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 cm 1.09 cm -2.41 m 0 eV 13.3 keV 1.08 mum 1.08 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1009, Parent ID = 1008 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.04 cm 1.26 cm -2.41 m 145 keV 0 eV 0 fm 0 fm Target initStep + 1 1.04 cm 1.26 cm -2.41 m 0 eV 145 keV 50 mum 50 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1007, Parent ID = 1006 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 cm 1.64 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.13 cm 1.83 cm -2.41 m 0 eV 88 keV 2.04 mm 2.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1012, Parent ID = 1007 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.13 cm 1.83 cm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.13 cm 1.83 cm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1005, Parent ID = 987 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 cm 1.62 cm -2.41 m 406 keV 0 eV 0 fm 0 fm Target initStep + 1 1.09 cm 1.62 cm -2.41 m 0 eV 406 keV 228 mum 228 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 986, Parent ID = 984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.86 mum 130 mum -2.42 m 816 keV 0 eV 0 fm 0 fm Target initStep + 1 1.43 mm 1.05 mm -2.41 m 373 keV 0 eV 1.43 cm 1.43 cm Target compt + 2 924 mum 1.54 mm -2.41 m 0 eV 88 keV 729 mum 1.5 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1014, Parent ID = 986 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 924 mum 1.54 mm -2.41 m 285 keV 0 eV 0 fm 0 fm Target initStep + 1 926 mum 1.54 mm -2.41 m 0 eV 285 keV 138 mum 138 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1013, Parent ID = 986 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.43 mm 1.05 mm -2.41 m 443 keV 0 eV 0 fm 0 fm Target initStep + 1 1.44 mm 1.05 mm -2.41 m 0 eV 443 keV 256 mum 256 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 985, Parent ID = 984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 40.5 mum 109 mum -2.42 m 318 keV 0 eV 0 fm 0 fm Target initStep + 1 -80.2 mum -657 mum -2.42 m 0 eV 88 keV 5.91 mm 5.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1015, Parent ID = 985 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -80.2 mum -657 mum -2.42 m 230 keV 0 eV 0 fm 0 fm Target initStep + 1 -80.9 mum -657 mum -2.42 m 0 eV 230 keV 101 mum 101 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 983, Parent ID = 123 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -26.3 mum 117 mum -2.42 m 13.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -67.3 mum 135 mum -2.42 m 12.9 MeV 316 keV 276 mum 276 mum Target eBrem + 2 -61 mum 131 mum -2.42 m 11.7 MeV 23.3 keV 15.7 mum 291 mum Target eBrem + 3 178 mum 94.7 mum -2.42 m 7.67 MeV 1.45 MeV 947 mum 1.24 mm Target eBrem + 4 183 mum 37.4 mum -2.42 m 7.09 MeV 247 keV 238 mum 1.48 mm Target eBrem + 5 -739 mum -76.2 mum -2.42 m 3.57 MeV 1.72 MeV 1.69 mm 3.17 mm Target eBrem + 6 -1e+03 mum -233 mum -2.42 m 2.2 MeV 766 keV 760 mum 3.93 mm Target eBrem + 7 -810 mum -79.6 mum -2.42 m 1.62 MeV 283 keV 317 mum 4.24 mm Target eBrem + 8 -750 mum -64.4 mum -2.42 m 0 eV 1.62 MeV 1.24 mm 5.49 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1022, Parent ID = 983 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -810 mum -79.6 mum -2.42 m 295 keV 0 eV 0 fm 0 fm Target initStep + 1 799 mum -1.49 mm -2.42 m 0 eV 88 keV 3.49 mm 3.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1023, Parent ID = 1022 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 799 mum -1.49 mm -2.42 m 207 keV 0 eV 0 fm 0 fm Target initStep + 1 800 mum -1.49 mm -2.42 m 0 eV 207 keV 86.4 mum 86.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1021, Parent ID = 983 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1e+03 mum -233 mum -2.42 m 609 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 cm -1.64 mm -2.42 m 355 keV 0 eV 1.14 cm 1.14 cm Target compt + 2 1.17 cm 971 mum -2.42 m 0 eV 88 keV 3.04 mm 1.45 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1025, Parent ID = 1021 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.17 cm 971 mum -2.42 m 267 keV 0 eV 0 fm 0 fm Target initStep + 1 1.17 cm 965 mum -2.42 m 0 eV 267 keV 126 mum 126 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1024, Parent ID = 1021 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.01 cm -1.64 mm -2.42 m 253 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 cm -1.64 mm -2.42 m 0 eV 253 keV 116 mum 116 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1020, Parent ID = 983 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -739 mum -76.2 mum -2.42 m 1.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.02 mm -2.5 cm -2.41 m 1.8 MeV 0 eV 2.79 cm 2.79 cm Target Transportation + 2 3.77 mm -4.08 cm -2.4 m 1.8 MeV 0 eV 1.76 cm 4.55 cm World Transportation + 3 25.6 cm -2.32 m -1.28 m 754 keV 0 eV 2.55 m 2.6 m Tracker compt + 4 16.2 cm -2.4 m -1.24 m 754 keV 0 eV 12.9 cm 2.73 m Tracker Transportation + 5 -45.5 cm -2.91 m -97.1 cm 754 keV 0 eV 84.4 cm 3.57 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1026, Parent ID = 1020 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 25.6 cm -2.32 m -1.28 m 1.04 MeV 0 eV 0 fm 0 fm Tracker initStep + 1 30.6 cm -2.4 m -1.24 m 1.02 MeV 17.9 keV 10.1 cm 10.1 cm Tracker Transportation + 2 76 cm -2.91 m -98.3 cm 891 keV 132 keV 79.2 cm 89.3 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1019, Parent ID = 983 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 183 mum 37.4 mum -2.42 m 340 keV 0 eV 0 fm 0 fm Target initStep + 1 563 mum -1.52 mm -2.42 m 0 eV 88 keV 2.59 mm 2.59 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1027, Parent ID = 1019 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 563 mum -1.52 mm -2.42 m 252 keV 0 eV 0 fm 0 fm Target initStep + 1 570 mum -1.51 mm -2.42 m 0 eV 252 keV 115 mum 115 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1018, Parent ID = 983 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 178 mum 94.7 mum -2.42 m 2.54 MeV 0 eV 0 fm 0 fm Target initStep + 1 370 mum -539 mum -2.42 m 0 eV 0 eV 1.33 mm 1.33 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1029, Parent ID = 1018 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 370 mum -539 mum -2.42 m 945 keV 0 eV 0 fm 0 fm Target initStep + 1 367 mum -603 mum -2.42 m 0 eV 945 keV 683 mum 683 mum Target eIoni + 2 367 mum -603 mum -2.42 m 0 eV 0 eV 0 fm 683 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1031, Parent ID = 1029 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 367 mum -603 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 7.24 mm -1.55 cm -2.42 m 384 keV 0 eV 1.66 cm 1.66 cm Target compt + 2 6.72 mm -1.67 cm -2.42 m 0 eV 88 keV 1.41 mm 1.8 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1033, Parent ID = 1031 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.72 mm -1.67 cm -2.42 m 296 keV 0 eV 0 fm 0 fm Target initStep + 1 6.71 mm -1.67 cm -2.42 m 0 eV 296 keV 146 mum 146 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1032, Parent ID = 1031 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.24 mm -1.55 cm -2.42 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 7.24 mm -1.55 cm -2.42 m 0 eV 127 keV 40.2 mum 40.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1030, Parent ID = 1029 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 367 mum -603 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.41 mm 3.24 mm -2.42 m 0 eV 88 keV 4.29 mm 4.29 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1034, Parent ID = 1030 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.41 mm 3.24 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.42 mm 3.25 mm -2.42 m 0 eV 423 keV 239 mum 239 mum Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1028, Parent ID = 1018 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 370 mum -539 mum -2.42 m 573 keV 0 eV 0 fm 0 fm Target initStep + 1 379 mum -536 mum -2.42 m 0 eV 573 keV 362 mum 362 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1017, Parent ID = 983 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -61 mum 131 mum -2.42 m 1.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.29 mm -3.8 mm -2.41 m 370 keV 0 eV 1.21 cm 1.21 cm Target compt + 2 2.46 mm 1.68 mm -2.41 m 0 eV 88 keV 6.55 mm 1.87 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1036, Parent ID = 1017 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.46 mm 1.68 mm -2.41 m 282 keV 0 eV 0 fm 0 fm Target initStep + 1 2.46 mm 1.67 mm -2.41 m 0 eV 282 keV 137 mum 137 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1035, Parent ID = 1017 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.29 mm -3.8 mm -2.41 m 844 keV 0 eV 0 fm 0 fm Target initStep + 1 4.31 mm -3.83 mm -2.41 m 0 eV 844 keV 588 mum 588 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1016, Parent ID = 983 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -67.3 mum 135 mum -2.42 m 341 keV 0 eV 0 fm 0 fm Target initStep + 1 1.74 mm -1.42 mm -2.42 m 0 eV 88 keV 5.2 mm 5.2 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1037, Parent ID = 1016 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.74 mm -1.42 mm -2.42 m 253 keV 0 eV 0 fm 0 fm Target initStep + 1 1.74 mm -1.42 mm -2.42 m 0 eV 253 keV 116 mum 116 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 122, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -28.5 mum 22 mum -2.43 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 -28.5 mum 22.2 mum -2.43 m 282 keV 0 eV 17.6 mum 17.6 mum Target compt + 2 466 mum -676 mum -2.44 m 0 eV 88 keV 939 mum 957 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1039, Parent ID = 122 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 466 mum -676 mum -2.44 m 194 keV 0 eV 0 fm 0 fm Target initStep + 1 468 mum -679 mum -2.44 m 0 eV 194 keV 78 mum 78 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1038, Parent ID = 122 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -28.5 mum 22.2 mum -2.43 m 1.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 -34.7 mum 31.4 mum -2.43 m 0 eV 1.03 MeV 745 mum 745 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 121, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -26.6 mum 13.2 mum -2.44 m 6.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -67.6 mum 209 mum -2.42 m 2.24 MeV 0 eV 1.84 cm 1.84 cm Target compt + 2 -9.79 mm -3.69 mm -2.4 m 1.77 MeV 0 eV 2 cm 3.84 cm Target compt + 3 -9.8 mm -3.71 mm -2.4 m 1.77 MeV 0 eV 37.9 mum 3.84 cm Target Transportation + 4 -1.55 m -2.4 m 1.5 m 1.77 MeV 0 eV 4.83 m 4.87 m Tracker Transportation + 5 -1.88 m -2.91 m 2.33 m 1.77 MeV 0 eV 1.03 m 5.9 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1041, Parent ID = 121 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.79 mm -3.69 mm -2.4 m 470 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.8 mm -3.68 mm -2.4 m 0 eV 470 keV 278 mum 278 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1040, Parent ID = 121 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -67.6 mum 209 mum -2.42 m 4.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 50.4 mum 265 mum -2.42 m 0 eV 4.25 MeV 3.33 mm 3.33 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 120, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -29.4 mum 2.36 mum -2.44 m 681 keV 0 eV 0 fm 0 fm Target initStep + 1 -47.2 mum 133 mum -2.42 m 610 keV 0 eV 1.34 cm 1.34 cm Target compt + 2 -841 mum -2.68 mm -2.42 m 0 eV 88 keV 7.32 mm 2.07 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1043, Parent ID = 120 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -841 mum -2.68 mm -2.42 m 522 keV 0 eV 0 fm 0 fm Target initStep + 1 -847 mum -2.69 mm -2.42 m 0 eV 522 keV 320 mum 320 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1042, Parent ID = 120 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -47.2 mum 133 mum -2.42 m 70.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -46.9 mum 134 mum -2.42 m 0 eV 70.3 keV 15.7 mum 15.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 119, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -30.6 mum -2.15 mum -2.44 m 585 keV 0 eV 0 fm 0 fm Target initStep + 1 -165 mum 46.7 mum -2.41 m 0 eV 88 keV 2.45 cm 2.45 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1044, Parent ID = 119 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -165 mum 46.7 mum -2.41 m 497 keV 0 eV 0 fm 0 fm Target initStep + 1 -168 mum 30.6 mum -2.41 m 0 eV 497 keV 300 mum 300 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 118, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -29.1 mum -2.4 mum -2.44 m 15.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -29.2 mum -2.38 mum -2.44 m 0 eV 0 eV 5.09 mum 5.09 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1046, Parent ID = 118 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -29.2 mum -2.38 mum -2.44 m 12.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -87.2 mum 125 mum -2.44 m 6.24 MeV 746 keV 639 mum 639 mum Target eBrem + 2 220 mum -159 mum -2.44 m 0 eV 6.24 MeV 4.86 mm 5.5 mm Target eIoni + 3 220 mum -159 mum -2.44 m 0 eV 0 eV 0 fm 5.5 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1049, Parent ID = 1046 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 220 mum -159 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 32.4 mum 345 mum -2.44 m 0 eV 88 keV 620 mum 620 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1050, Parent ID = 1049 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 32.4 mum 345 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 26.3 mum 342 mum -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1048, Parent ID = 1046 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 220 mum -159 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.03 mm -5.03 mm -2.44 m 0 eV 88 keV 5.99 mm 5.99 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1051, Parent ID = 1048 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.03 mm -5.03 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 2.02 mm -4.99 mm -2.44 m 164 keV 259 keV 173 mum 173 mum Target eBrem + 2 2.01 mm -4.99 mm -2.44 m 0 eV 164 keV 60.6 mum 234 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1047, Parent ID = 1046 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -87.2 mum 125 mum -2.44 m 5.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.64 mm -288 mum -2.43 m 483 keV 0 eV 5.3 mm 5.3 mm Target compt + 2 2.21 mm -273 mum -2.43 m 0 eV 88 keV 597 mum 5.9 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1053, Parent ID = 1047 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.21 mm -273 mum -2.43 m 395 keV 0 eV 0 fm 0 fm Target initStep + 1 2.22 mm -275 mum -2.43 m 0 eV 395 keV 219 mum 219 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1052, Parent ID = 1047 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.64 mm -288 mum -2.43 m 4.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.41 mm -369 mum -2.43 m 3.62 MeV 601 keV 553 mum 553 mum Target eBrem + 2 1.36 mm -241 mum -2.43 m 2.85 MeV 269 keV 271 mum 824 mum Target eBrem + 3 1.47 mm -452 mum -2.43 m 0 eV 2.85 MeV 2.24 mm 3.06 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1055, Parent ID = 1052 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.36 mm -241 mum -2.43 m 501 keV 0 eV 0 fm 0 fm Target initStep + 1 2.59 mm -2.43 mm -2.43 m 0 eV 88 keV 2.88 mm 2.88 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1056, Parent ID = 1055 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.59 mm -2.43 mm -2.43 m 413 keV 0 eV 0 fm 0 fm Target initStep + 1 2.59 mm -2.43 mm -2.43 m 0 eV 413 keV 233 mum 233 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1054, Parent ID = 1052 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.41 mm -369 mum -2.43 m 477 keV 0 eV 0 fm 0 fm Target initStep + 1 968 mum 87.5 mum -2.43 m 0 eV 88 keV 1.99 mm 1.99 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1057, Parent ID = 1054 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 968 mum 87.5 mum -2.43 m 389 keV 0 eV 0 fm 0 fm Target initStep + 1 965 mum 92.8 mum -2.43 m 0 eV 389 keV 215 mum 215 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1045, Parent ID = 118 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -29.2 mum -2.38 mum -2.44 m 1.99 MeV 0 eV 0 fm 0 fm Target initStep + 1 298 mum -421 mum -2.44 m 378 keV 1.01 MeV 985 mum 985 mum Target eBrem + 2 299 mum -433 mum -2.44 m 0 eV 378 keV 207 mum 1.19 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1058, Parent ID = 1045 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 298 mum -421 mum -2.44 m 602 keV 0 eV 0 fm 0 fm Target initStep + 1 3.06 mm -8.13 mm -2.45 m 187 keV 0 eV 1.39 cm 1.39 cm Target compt + 2 3.35 mm -5.55 mm -2.45 m 0 eV 88 keV 3.11 mm 1.7 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1060, Parent ID = 1058 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.35 mm -5.55 mm -2.45 m 98.9 keV 0 eV 0 fm 0 fm Target initStep + 1 3.35 mm -5.55 mm -2.45 m 0 eV 98.9 keV 27.1 mum 27.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1059, Parent ID = 1058 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.06 mm -8.13 mm -2.45 m 415 keV 0 eV 0 fm 0 fm Target initStep + 1 3.06 mm -8.14 mm -2.45 m 0 eV 415 keV 235 mum 235 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 117, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -26.6 mum -1.81 mum -2.44 m 102 MeV 0 eV 0 fm 0 fm Target initStep + 1 -28.3 mum -1.31 mum -2.44 m 0 eV 0 eV 271 mum 271 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1062, Parent ID = 117 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -28.3 mum -1.31 mum -2.44 m 94.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -28.3 mum -1.34 mum -2.44 m 6.63 MeV 5.61 keV 5.59 mum 5.59 mum Target eBrem + 2 -123 mum 453 mum -2.44 m 5.28 MeV 1.35 MeV 894 mum 900 mum Target eBrem + 3 -387 mum -16.6 mum -2.44 m 4.22 MeV 646 keV 617 mum 1.52 mm Target eBrem + 4 -963 mum 549 mum -2.44 m 1.79 MeV 1.16 MeV 1.2 mm 2.71 mm Target eBrem + 5 -914 mum 391 mum -2.44 m 0 eV 1.79 MeV 1.41 mm 4.12 mm Target eIoni + 6 -914 mum 391 mum -2.44 m 0 eV 0 eV 0 fm 4.12 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1067, Parent ID = 1062 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -914 mum 391 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 417 mum -3.33 mm -2.44 m 0 eV 88 keV 4.16 mm 4.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1068, Parent ID = 1067 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 417 mum -3.33 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 416 mum -3.34 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1066, Parent ID = 1062 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -914 mum 391 mum -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.04 mm 3.54 mm -2.44 m 496 keV 0 eV 3.52 mm 3.52 mm Target compt + 2 -3.12 mm 9.54 mm -2.43 m 0 eV 88 keV 7.01 mm 1.05 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1070, Parent ID = 1066 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.12 mm 9.54 mm -2.43 m 408 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.13 mm 9.55 mm -2.43 m 0 eV 408 keV 229 mum 229 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1069, Parent ID = 1066 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.04 mm 3.54 mm -2.44 m 15.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.04 mm 3.54 mm -2.44 m 0 eV 15.2 keV 1.32 mum 1.32 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1065, Parent ID = 1062 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -963 mum 549 mum -2.44 m 1.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 -147 mum -7.31 mm -2.44 m 0 eV 88 keV 8.81 mm 8.81 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1071, Parent ID = 1065 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -147 mum -7.31 mm -2.44 m 1.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 -172 mum -7.37 mm -2.44 m 0 eV 1.18 MeV 875 mum 875 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1064, Parent ID = 1062 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -387 mum -16.6 mum -2.44 m 416 keV 0 eV 0 fm 0 fm Target initStep + 1 -454 mum -51.1 mum -2.44 m 0 eV 88 keV 116 mum 116 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1072, Parent ID = 1064 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -454 mum -51.1 mum -2.44 m 328 keV 0 eV 0 fm 0 fm Target initStep + 1 -464 mum -51.7 mum -2.44 m 0 eV 328 keV 169 mum 169 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1063, Parent ID = 1062 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -28.3 mum -1.34 mum -2.44 m 88 MeV 0 eV 0 fm 0 fm Target initStep + 1 -58.5 mum -18 mum -2.44 m 0 eV 0 eV 1.4 mm 1.4 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1074, Parent ID = 1063 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -58.5 mum -18 mum -2.44 m 65.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -12 mum -106 mum -2.44 m 63.4 MeV 1.32 MeV 1.23 mm 1.23 mm Target eBrem + 2 20.9 mum -137 mum -2.44 m 62.8 MeV 317 keV 289 mum 1.52 mm Target eBrem + 3 55.9 mum -179 mum -2.44 m 57.3 MeV 554 keV 312 mum 1.83 mm Target eBrem + 4 96.6 mum -125 mum -2.44 m 56.2 MeV 266 keV 258 mum 2.09 mm Target eBrem + 5 175 mum -87.3 mum -2.43 m 52.5 MeV 573 keV 510 mum 2.6 mm Target eBrem + 6 217 mum -52.4 mum -2.43 m 42.5 MeV 1.21 MeV 712 mum 3.31 mm Target eBrem + 7 772 mum 501 mum -2.43 m 38.6 MeV 2.33 MeV 1.85 mm 5.16 mm Target eBrem + 8 794 mum 538 mum -2.43 m 37.7 MeV 275 keV 243 mum 5.4 mm Target eBrem + 9 806 mum 687 mum -2.43 m 30.3 MeV 1.31 MeV 806 mum 6.21 mm Target eBrem + 10 883 mum 879 mum -2.43 m 29.3 MeV 710 keV 670 mum 6.88 mm Target eBrem + 11 1.22 mm 1.31 mm -2.43 m 26.7 MeV 1.51 MeV 1.09 mm 7.97 mm Target eBrem + 12 1.48 mm 1.49 mm -2.43 m 16.5 MeV 1.1 MeV 956 mum 8.92 mm Target eBrem + 13 1.47 mm 1.62 mm -2.43 m 8.23 MeV 415 keV 351 mum 9.27 mm Target eBrem + 14 1.48 mm 1.64 mm -2.43 m 7.58 MeV 29.6 keV 39.7 mum 9.31 mm Target eBrem + 15 1.51 mm 3.3 mm -2.43 m 5.35 MeV 2.23 MeV 1.99 mm 1.13 cm Target eBrem + 16 1.52 mm 4.25 mm -2.43 m 2.79 MeV 1.19 MeV 857 mum 1.22 cm Target eBrem + 17 1.16 mm 4.34 mm -2.43 m 0 eV 2.79 MeV 2.23 mm 1.44 cm Target eIoni + 18 1.16 mm 4.34 mm -2.43 m 0 eV 0 eV 0 fm 1.44 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1091, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm 4.34 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.05 mm -8.25 mm -2.42 m 0 eV 88 keV 1.82 cm 1.82 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1092, Parent ID = 1091 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.05 mm -8.25 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.05 mm -8.26 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1090, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm 4.34 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.2 mm 4.45 mm -2.43 m 491 keV 0 eV 160 mum 160 mum Target compt + 2 1.79 mm 1.9 cm -2.44 m 0 eV 88 keV 1.8 cm 1.82 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1094, Parent ID = 1090 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.79 mm 1.9 cm -2.44 m 403 keV 0 eV 0 fm 0 fm Target initStep + 1 1.79 mm 1.9 cm -2.44 m 0 eV 403 keV 225 mum 225 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1093, Parent ID = 1090 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 mm 4.45 mm -2.43 m 20.2 keV 0 eV 0 fm 0 fm Target initStep + 1 1.2 mm 4.45 mm -2.43 m 0 eV 20.2 keV 2.07 mum 2.07 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1089, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.52 mm 4.25 mm -2.43 m 1.36 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.17 cm 9.91 mm -2.43 m 322 keV 0 eV 2.4 cm 2.4 cm Target compt + 2 -1.92 cm 8.41 mm -2.44 m 146 keV 0 eV 8.35 mm 3.24 cm Target compt + 3 -1.94 cm 8.39 mm -2.44 m 0 eV 88 keV 316 mum 3.27 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1097, Parent ID = 1089 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.94 cm 8.39 mm -2.44 m 58.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.94 cm 8.39 mm -2.44 m 0 eV 58.4 keV 11.6 mum 11.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1096, Parent ID = 1089 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.92 cm 8.41 mm -2.44 m 175 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.92 cm 8.41 mm -2.44 m 0 eV 175 keV 67 mum 67 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1095, Parent ID = 1089 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.17 cm 9.91 mm -2.43 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.17 cm 9.93 mm -2.43 m 0 eV 1.04 MeV 752 mum 752 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1088, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.48 mm 1.64 mm -2.43 m 627 keV 0 eV 0 fm 0 fm Target initStep + 1 1.51 mm 1.71 mm -2.43 m 306 keV 0 eV 278 mum 278 mum Target compt + 2 1.18 mm 2.4 mm -2.43 m 0 eV 88 keV 764 mum 1.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1099, Parent ID = 1088 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 mm 2.4 mm -2.43 m 218 keV 0 eV 0 fm 0 fm Target initStep + 1 1.18 mm 2.4 mm -2.43 m 0 eV 218 keV 93.3 mum 93.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1098, Parent ID = 1088 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.51 mm 1.71 mm -2.43 m 321 keV 0 eV 0 fm 0 fm Target initStep + 1 1.51 mm 1.71 mm -2.43 m 0 eV 321 keV 164 mum 164 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1087, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.47 mm 1.62 mm -2.43 m 7.83 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.69 mm 3.89 mm -2.42 m 0 eV 0 eV 6.41 mm 6.41 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1101, Parent ID = 1087 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.69 mm 3.89 mm -2.42 m 3.62 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.63 mm 2.58 mm -2.42 m 531 keV 3.09 MeV 2.47 mm 2.47 mm Target eBrem + 2 3.66 mm 2.57 mm -2.42 m 0 eV 531 keV 327 mum 2.8 mm Target eIoni + 3 3.66 mm 2.57 mm -2.42 m 0 eV 0 eV 0 fm 2.8 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1103, Parent ID = 1101 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.66 mm 2.57 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.69 mm 3.54 mm -2.42 m 0 eV 88 keV 1.05 mm 1.05 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1104, Parent ID = 1103 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.69 mm 3.54 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.69 mm 3.56 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1102, Parent ID = 1101 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.66 mm 2.57 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.48 mm -3.64 mm -2.42 m 346 keV 0 eV 6.68 mm 6.68 mm Target compt + 2 2.5 mm -4.11 mm -2.42 m 0 eV 88 keV 1.16 mm 7.83 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1106, Parent ID = 1102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.5 mm -4.11 mm -2.42 m 258 keV 0 eV 0 fm 0 fm Target initStep + 1 2.5 mm -4.11 mm -2.42 m 0 eV 258 keV 119 mum 119 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1105, Parent ID = 1102 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.48 mm -3.64 mm -2.42 m 165 keV 0 eV 0 fm 0 fm Target initStep + 1 3.48 mm -3.65 mm -2.42 m 0 eV 165 keV 60.9 mum 60.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1100, Parent ID = 1087 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.69 mm 3.89 mm -2.42 m 3.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.78 mm 3.86 mm -2.42 m 2.3 MeV 277 keV 239 mum 239 mum Target eBrem + 2 2.96 mm 3.93 mm -2.42 m 0 eV 2.3 MeV 1.8 mm 2.04 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1107, Parent ID = 1100 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.78 mm 3.86 mm -2.42 m 618 keV 0 eV 0 fm 0 fm Target initStep + 1 1.2 cm 6.24 mm -2.42 m 229 keV 0 eV 9.83 mm 9.83 mm Target compt + 2 1.19 cm 5.68 mm -2.42 m 0 eV 88 keV 1.11 mm 1.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1109, Parent ID = 1107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.19 cm 5.68 mm -2.42 m 141 keV 0 eV 0 fm 0 fm Target initStep + 1 1.19 cm 5.67 mm -2.42 m 0 eV 141 keV 47.7 mum 47.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1108, Parent ID = 1107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 cm 6.24 mm -2.42 m 389 keV 0 eV 0 fm 0 fm Target initStep + 1 1.2 cm 6.25 mm -2.42 m 0 eV 389 keV 215 mum 215 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1086, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.48 mm 1.49 mm -2.43 m 9.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.12 mm 1.72 cm -2.4 m 9.08 MeV 0 eV 3.31 cm 3.31 cm Target Transportation + 2 25.2 cm 2.4 m 2.03 m 9.08 MeV 0 eV 5.04 m 5.07 m Tracker Transportation + 3 30.2 cm 2.87 m 2.91 m 9.08 MeV 0 eV 99.7 cm 6.07 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1085, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm 1.31 mm -2.43 m 1.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.79 mm 2.38 mm -2.43 m 585 keV 0 eV 3.4 mm 3.4 mm Target compt + 2 7.65 mm -89.1 mum -2.42 m 546 keV 0 eV 7.9 mm 1.13 cm Target compt + 3 1.38 cm -5.32 mm -2.42 m 0 eV 88 keV 8.74 mm 2 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1112, Parent ID = 1085 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.38 cm -5.32 mm -2.42 m 458 keV 0 eV 0 fm 0 fm Target initStep + 1 1.38 cm -5.33 mm -2.42 m 0 eV 458 keV 268 mum 268 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1111, Parent ID = 1085 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.65 mm -89.1 mum -2.42 m 39 keV 0 eV 0 fm 0 fm Target initStep + 1 7.65 mm -88.8 mum -2.42 m 0 eV 39 keV 5.98 mum 5.98 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1110, Parent ID = 1085 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.79 mm 2.38 mm -2.43 m 539 keV 0 eV 0 fm 0 fm Target initStep + 1 1.79 mm 2.39 mm -2.43 m 0 eV 539 keV 334 mum 334 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1084, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 883 mum 879 mum -2.43 m 348 keV 0 eV 0 fm 0 fm Target initStep + 1 1.27 mm 1.59 mm -2.43 m 0 eV 88 keV 2.11 mm 2.11 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1113, Parent ID = 1084 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.27 mm 1.59 mm -2.43 m 260 keV 0 eV 0 fm 0 fm Target initStep + 1 1.26 mm 1.59 mm -2.43 m 0 eV 260 keV 121 mum 121 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1083, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 806 mum 687 mum -2.43 m 6.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.48 mm 5.05 mm -2.41 m 4.89 MeV 0 eV 2.52 cm 2.52 cm Target compt + 2 4.16 mm 5.2 mm -2.4 m 1.67 MeV 0 eV 2.54 mm 2.78 cm Target compt + 3 6.4 mm 2.04 mm -2.4 m 1.67 MeV 0 eV 5.9 mm 3.37 cm Target Transportation + 4 1.71 m -2.4 m 99 cm 1.67 MeV 0 eV 4.49 m 4.52 m Tracker Transportation + 5 2.07 m -2.91 m 1.71 m 1.67 MeV 0 eV 95.3 cm 5.48 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1115, Parent ID = 1083 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.16 mm 5.2 mm -2.4 m 3.23 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.28 mm 5.3 mm -2.4 m 802 keV 341 keV 224 mum 224 mum Target eBrem + 2 4.26 mm 5.32 mm -2.4 m 0 eV 802 keV 553 mum 777 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1116, Parent ID = 1115 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.28 mm 5.3 mm -2.4 m 2.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.15 mm 5.79 mm -2.4 m 356 keV 0 eV 3.74 mm 3.74 mm Target compt + 2 -9.19 mm 5.09 mm -2.41 m 265 keV 0 eV 1.4 cm 1.78 cm Target compt + 3 -9.27 mm 5.14 mm -2.41 m 0 eV 88 keV 101 mum 1.79 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1119, Parent ID = 1116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.27 mm 5.14 mm -2.41 m 177 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.27 mm 5.14 mm -2.41 m 0 eV 177 keV 68.2 mum 68.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1118, Parent ID = 1116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.19 mm 5.09 mm -2.41 m 90.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.19 mm 5.09 mm -2.41 m 0 eV 90.9 keV 23.8 mum 23.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1117, Parent ID = 1116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.15 mm 5.79 mm -2.4 m 1.73 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.15 mm 5.76 mm -2.4 m 1.26 MeV 94.4 keV 100 mum 100 mum Target eBrem + 2 3.13 mm 5.75 mm -2.4 m 0 eV 1.26 MeV 940 mum 1.04 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1120, Parent ID = 1117 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.15 mm 5.76 mm -2.4 m 376 keV 0 eV 0 fm 0 fm Target initStep + 1 2.93 mm 5.8 mm -2.4 m 376 keV 0 eV 757 mum 757 mum Target Transportation + 2 -48.5 cm 9.82 cm -80 cm 376 keV 0 eV 1.68 m 1.68 m Tracker Transportation + 3 -54.6 cm 11 cm -60 cm 376 keV 0 eV 20.9 cm 1.89 m Chamber Transportation + 4 -72.9 cm 14.4 cm -0.114 fm 376 keV 0 eV 62.8 cm 2.51 m Tracker Transportation + 5 -79 cm 15.6 cm 20 cm 376 keV 0 eV 20.9 cm 2.72 m Chamber Transportation + 6 -97.4 cm 19.1 cm 80 cm 376 keV 0 eV 62.8 cm 3.35 m Tracker Transportation + 7 -1.03 m 20.2 cm 1 m 376 keV 0 eV 20.9 cm 3.56 m Chamber Transportation + 8 -1.22 m 23.7 cm 1.6 m 376 keV 0 eV 62.8 cm 4.19 m Tracker Transportation + 9 -1.28 m 24.8 cm 1.8 m 376 keV 0 eV 20.9 cm 4.4 m Chamber Transportation + 10 -1.46 m 28.3 cm 2.4 m 376 keV 0 eV 62.8 cm 5.03 m Tracker Transportation + 11 -1.62 m 31.2 cm 2.91 m 376 keV 0 eV 53.4 cm 5.56 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1114, Parent ID = 1083 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.48 mm 5.05 mm -2.41 m 1.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.45 mm 5.09 mm -2.41 m 0 eV 1.2 MeV 888 mum 888 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1082, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 794 mum 538 mum -2.43 m 554 keV 0 eV 0 fm 0 fm Target initStep + 1 998 mum 906 mum -2.43 m 196 keV 0 eV 1.95 mm 1.95 mm Target compt + 2 790 mum 748 mum -2.43 m 0 eV 88 keV 306 mum 2.26 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1122, Parent ID = 1082 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 790 mum 748 mum -2.43 m 108 keV 0 eV 0 fm 0 fm Target initStep + 1 789 mum 747 mum -2.43 m 0 eV 108 keV 31.5 mum 31.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1121, Parent ID = 1082 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 998 mum 906 mum -2.43 m 358 keV 0 eV 0 fm 0 fm Target initStep + 1 1 mm 910 mum -2.43 m 0 eV 358 keV 191 mum 191 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1081, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 772 mum 501 mum -2.43 m 1.64 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm 1.46 mm -2.43 m 612 keV 0 eV 5.56 mm 5.56 mm Target compt + 2 2.03 mm 173 mum -2.43 m 458 keV 0 eV 1.9 mm 7.46 mm Target compt + 3 5.24 mm -1.26 mm -2.41 m 0 eV 88 keV 1.52 cm 2.27 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1125, Parent ID = 1081 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.24 mm -1.26 mm -2.41 m 370 keV 0 eV 0 fm 0 fm Target initStep + 1 5.24 mm -1.26 mm -2.41 m 0 eV 370 keV 200 mum 200 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1124, Parent ID = 1081 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.03 mm 173 mum -2.43 m 155 keV 0 eV 0 fm 0 fm Target initStep + 1 2.03 mm 169 mum -2.43 m 0 eV 155 keV 55 mum 55 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1123, Parent ID = 1081 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 mm 1.46 mm -2.43 m 1.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm 1.49 mm -2.43 m 0 eV 1.03 MeV 742 mum 742 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1080, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 217 mum -52.4 mum -2.43 m 8.73 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.82 mm 7.25 mm -2.4 m 0 eV 0 eV 3.09 cm 3.09 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1127, Parent ID = 1080 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.82 mm 7.25 mm -2.4 m 5.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.49 mm 8.25 mm -2.4 m 3.22 MeV 1.62 MeV 1.42 mm 1.42 mm Target eBrem + 2 6.47 mm 8.21 mm -2.4 m 0 eV 3.22 MeV 2.57 mm 3.99 mm Target eIoni + 3 6.47 mm 8.21 mm -2.4 m 0 eV 0 eV 0 fm 3.99 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1130, Parent ID = 1127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.47 mm 8.21 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.88 mm 9.95 mm -2.4 m 511 keV 0 eV 4.37 mm 4.37 mm Target Transportation + 2 -34.7 cm 1.06 m -0.455 fm 511 keV 0 eV 2.64 m 2.65 m Tracker Transportation + 3 -36.1 cm 1.1 m 9.87 cm 511 keV 0 eV 10.9 cm 2.76 m Chamber Transportation + 4 -46.5 cm 1.41 m 80 cm 511 keV 0 eV 77.2 cm 3.53 m Tracker Transportation + 5 -49.4 cm 1.5 m 1 m 511 keV 0 eV 22 cm 3.75 m Chamber Transportation + 6 -58.2 cm 1.76 m 1.6 m 511 keV 0 eV 66.1 cm 4.41 m Tracker Transportation + 7 -61.2 cm 1.85 m 1.8 m 511 keV 0 eV 22 cm 4.63 m Chamber Transportation + 8 -70 cm 2.11 m 2.4 m 511 keV 0 eV 66.1 cm 5.29 m Tracker Transportation + 9 -77.5 cm 2.33 m 2.91 m 511 keV 0 eV 56.2 cm 5.85 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1129, Parent ID = 1127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.47 mm 8.21 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.69 mm 7.56 mm -2.41 m 0 eV 88 keV 1.65 mm 1.65 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1131, Parent ID = 1129 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.69 mm 7.56 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 6.68 mm 7.55 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1128, Parent ID = 1127 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.49 mm 8.25 mm -2.4 m 316 keV 0 eV 0 fm 0 fm Target initStep + 1 6.19 mm 8.33 mm -2.4 m 0 eV 88 keV 3.18 mm 3.18 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1132, Parent ID = 1128 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.19 mm 8.33 mm -2.4 m 228 keV 0 eV 0 fm 0 fm Target initStep + 1 6.19 mm 8.33 mm -2.4 m 0 eV 228 keV 99.7 mum 99.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1126, Parent ID = 1080 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.82 mm 7.25 mm -2.4 m 2.56 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.84 mm 7.3 mm -2.4 m 0 eV 2.56 MeV 1.24 mm 1.24 mm Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1079, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 175 mum -87.3 mum -2.43 m 3.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 906 mum 582 mum -2.43 m 353 keV 0 eV 6.52 mm 6.52 mm Target compt + 2 2.13 mm 3.18 mm -2.43 m 0 eV 88 keV 3.16 mm 9.68 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1134, Parent ID = 1079 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.13 mm 3.18 mm -2.43 m 265 keV 0 eV 0 fm 0 fm Target initStep + 1 2.13 mm 3.19 mm -2.43 m 0 eV 265 keV 124 mum 124 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1133, Parent ID = 1079 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 906 mum 582 mum -2.43 m 2.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.12 mm 496 mum -2.43 m 1.74 MeV 356 keV 376 mum 376 mum Target eBrem + 2 1.3 mm 139 mum -2.43 m 753 keV 990 keV 790 mum 1.17 mm Target eBrem + 3 1.34 mm 146 mum -2.43 m 0 eV 753 keV 512 mum 1.68 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1135, Parent ID = 1133 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.12 mm 496 mum -2.43 m 717 keV 0 eV 0 fm 0 fm Target initStep + 1 3.76 mm 1.05 cm -2.42 m 0 eV 88 keV 1.23 cm 1.23 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1136, Parent ID = 1135 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.76 mm 1.05 cm -2.42 m 629 keV 0 eV 0 fm 0 fm Target initStep + 1 3.78 mm 1.05 cm -2.42 m 0 eV 629 keV 407 mum 407 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1078, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 96.6 mum -125 mum -2.44 m 765 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 mm 1.3 mm -2.42 m 219 keV 0 eV 1.1 cm 1.1 cm Target compt + 2 1.37 mm 662 mum -2.43 m 0 eV 88 keV 1.1 mm 1.21 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1138, Parent ID = 1078 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.37 mm 662 mum -2.43 m 131 keV 0 eV 0 fm 0 fm Target initStep + 1 1.37 mm 661 mum -2.43 m 0 eV 131 keV 42.4 mum 42.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1137, Parent ID = 1078 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 mm 1.3 mm -2.42 m 546 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 mm 1.31 mm -2.42 m 0 eV 546 keV 339 mum 339 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1077, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 55.9 mum -179 mum -2.44 m 5.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.71 mm 2.76 mm -2.42 m 503 keV 0 eV 1.7 cm 1.7 cm Target compt + 2 -982 mum 2.65 mm -2.42 m 473 keV 0 eV 3.81 mm 2.08 cm Target compt + 3 -2.01 mm 2.93 mm -2.42 m 0 eV 88 keV 1.2 mm 2.2 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1141, Parent ID = 1077 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.01 mm 2.93 mm -2.42 m 385 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.02 mm 2.94 mm -2.42 m 0 eV 385 keV 212 mum 212 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1140, Parent ID = 1077 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -982 mum 2.65 mm -2.42 m 29.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -982 mum 2.65 mm -2.42 m 0 eV 29.9 keV 3.88 mum 3.88 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1139, Parent ID = 1077 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.71 mm 2.76 mm -2.42 m 4.51 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.73 mm 2.77 mm -2.42 m 3.74 MeV 51.4 keV 59.3 mum 59.3 mum Target eBrem + 2 2.06 mm 3.65 mm -2.42 m 1.74 MeV 1.52 MeV 1.51 mm 1.57 mm Target eBrem + 3 2.13 mm 3.69 mm -2.42 m 1.3 MeV 133 keV 151 mum 1.72 mm Target eBrem + 4 2.11 mm 3.73 mm -2.42 m 0 eV 1.3 MeV 974 mum 2.69 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1144, Parent ID = 1139 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.13 mm 3.69 mm -2.42 m 303 keV 0 eV 0 fm 0 fm Target initStep + 1 2.03 mm 4.38 mm -2.42 m 0 eV 88 keV 1.18 mm 1.18 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1145, Parent ID = 1144 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.03 mm 4.38 mm -2.42 m 215 keV 0 eV 0 fm 0 fm Target initStep + 1 2.03 mm 4.39 mm -2.42 m 0 eV 215 keV 91.1 mum 91.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1143, Parent ID = 1139 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.06 mm 3.65 mm -2.42 m 488 keV 0 eV 0 fm 0 fm Target initStep + 1 1.56 mm 5.73 mm -2.42 m 0 eV 88 keV 3.27 mm 3.27 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1146, Parent ID = 1143 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.56 mm 5.73 mm -2.42 m 400 keV 0 eV 0 fm 0 fm Target initStep + 1 1.56 mm 5.74 mm -2.42 m 0 eV 400 keV 223 mum 223 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1142, Parent ID = 1139 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.73 mm 2.77 mm -2.42 m 715 keV 0 eV 0 fm 0 fm Target initStep + 1 2.81 mm 2.99 mm -2.42 m 615 keV 0 eV 616 mum 616 mum Target compt + 2 2.88 mm 4.22 mm -2.42 m 604 keV 0 eV 1.63 mm 2.24 mm Target compt + 3 2.73 mm 5.25 mm -2.42 m 199 keV 0 eV 1.53 mm 3.77 mm Target compt + 4 1.63 mm 4.7 mm -2.42 m 0 eV 88 keV 2.14 mm 5.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1150, Parent ID = 1142 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.63 mm 4.7 mm -2.42 m 111 keV 0 eV 0 fm 0 fm Target initStep + 1 1.63 mm 4.7 mm -2.42 m 0 eV 111 keV 32.7 mum 32.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1149, Parent ID = 1142 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.73 mm 5.25 mm -2.42 m 406 keV 0 eV 0 fm 0 fm Target initStep + 1 2.73 mm 5.26 mm -2.42 m 0 eV 406 keV 227 mum 227 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1148, Parent ID = 1142 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.88 mm 4.22 mm -2.42 m 10.3 keV 0 eV 0 fm 0 fm Target initStep + 1 2.88 mm 4.22 mm -2.42 m 0 eV 10.3 keV 735 nm 735 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1147, Parent ID = 1142 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.81 mm 2.99 mm -2.42 m 100 keV 0 eV 0 fm 0 fm Target initStep + 1 2.81 mm 2.99 mm -2.42 m 0 eV 100 keV 27.6 mum 27.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1076, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 20.9 mum -137 mum -2.44 m 287 keV 0 eV 0 fm 0 fm Target initStep + 1 209 mum -304 mum -2.43 m 0 eV 88 keV 1.96 mm 1.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1151, Parent ID = 1076 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 209 mum -304 mum -2.43 m 199 keV 0 eV 0 fm 0 fm Target initStep + 1 206 mum -308 mum -2.43 m 0 eV 199 keV 81.2 mum 81.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1075, Parent ID = 1074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -12 mum -106 mum -2.44 m 438 keV 0 eV 0 fm 0 fm Target initStep + 1 164 mum -386 mum -2.43 m 0 eV 88 keV 2.44 mm 2.44 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1152, Parent ID = 1075 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 164 mum -386 mum -2.43 m 350 keV 0 eV 0 fm 0 fm Target initStep + 1 156 mum -390 mum -2.43 m 0 eV 350 keV 186 mum 186 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1073, Parent ID = 1063 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -58.5 mum -18 mum -2.44 m 21.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -158 mum -207 mum -2.44 m 8.99 MeV 1.28 MeV 912 mum 912 mum Target eBrem + 2 3.66 mm 2.86 mm -2.43 m 1.48 MeV 7.51 MeV 6.27 mm 7.18 mm Target eBrem + 3 4.04 mm 2.79 mm -2.43 m 155 keV 1.32 MeV 1.06 mm 8.24 mm Target eBrem + 4 4.04 mm 2.79 mm -2.43 m 0 eV 155 keV 55.4 mum 8.3 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1153, Parent ID = 1073 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -158 mum -207 mum -2.44 m 11.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -610 mum -706 mum -2.43 m 433 keV 0 eV 3.26 mm 3.26 mm Target compt + 2 -2.3 cm 1.64 cm -2.44 m 0 eV 88 keV 2.85 cm 3.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1155, Parent ID = 1153 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.3 cm 1.64 cm -2.44 m 345 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.3 cm 1.64 cm -2.44 m 0 eV 345 keV 182 mum 182 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1154, Parent ID = 1153 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -610 mum -706 mum -2.43 m 11.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -562 mum -746 mum -2.43 m 2.44 MeV 417 keV 378 mum 378 mum Target eBrem + 2 189 mum -384 mum -2.43 m 584 keV 1.53 MeV 1.42 mm 1.8 mm Target eBrem + 3 197 mum -408 mum -2.43 m 0 eV 584 keV 370 mum 2.17 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1157, Parent ID = 1154 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 189 mum -384 mum -2.43 m 333 keV 0 eV 0 fm 0 fm Target initStep + 1 425 mum -1.33 mm -2.43 m 0 eV 88 keV 976 mum 976 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1158, Parent ID = 1157 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 425 mum -1.33 mm -2.43 m 245 keV 0 eV 0 fm 0 fm Target initStep + 1 432 mum -1.32 mm -2.43 m 0 eV 245 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1156, Parent ID = 1154 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -562 mum -746 mum -2.43 m 8.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.39 mm -1.52 cm -2.41 m 0 eV 0 eV 2.83 cm 2.83 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1160, Parent ID = 1156 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.39 mm -1.52 cm -2.41 m 5.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.38 mm -1.52 cm -2.41 m 4.91 MeV 93.5 keV 116 mum 116 mum Target eBrem + 2 6.47 mm -1.53 cm -2.41 m 4.11 MeV 461 keV 342 mum 458 mum Target eBrem + 3 6.62 mm -1.58 cm -2.41 m 3.44 MeV 676 keV 570 mum 1.03 mm Target eBrem + 4 6.15 mm -1.52 cm -2.41 m 2.17 MeV 1.27 MeV 1.08 mm 2.1 mm Target eBrem + 5 6.24 mm -1.53 cm -2.41 m 1.67 MeV 123 keV 118 mum 2.22 mm Target eBrem + 6 6.4 mm -1.52 cm -2.41 m 0 eV 1.67 MeV 1.31 mm 3.53 mm Target eIoni + 7 6.4 mm -1.52 cm -2.41 m 0 eV 0 eV 0 fm 3.53 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1165, Parent ID = 1160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.4 mm -1.52 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 cm -1.5 cm -2.4 m 511 keV 0 eV 1.06 cm 1.06 cm Target Transportation + 2 1.09 m 3.04 cm -0.455 fm 511 keV 0 eV 2.63 m 2.64 m Tracker Transportation + 3 1.1 m 3.12 cm 4.01 cm 511 keV 0 eV 4.4 cm 2.68 m Chamber Transportation + 4 1.44 m 4.56 cm 80 cm 511 keV 0 eV 83.3 cm 3.52 m Tracker Transportation + 5 1.53 m 4.94 cm 1 m 511 keV 0 eV 21.9 cm 3.74 m Chamber Transportation + 6 1.8 m 6.07 cm 1.6 m 511 keV 0 eV 65.8 cm 4.39 m Tracker Transportation + 7 1.89 m 6.45 cm 1.8 m 511 keV 0 eV 21.9 cm 4.61 m Chamber Transportation + 8 2.16 m 7.59 cm 2.4 m 511 keV 0 eV 65.8 cm 5.27 m Tracker Transportation + 9 2.39 m 8.55 cm 2.91 m 511 keV 0 eV 55.9 cm 5.83 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1164, Parent ID = 1160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.4 mm -1.52 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.94 mm -1.53 cm -2.41 m 335 keV 0 eV 3.58 mm 3.58 mm Target compt + 2 5.49 mm -1.32 cm -2.41 m 0 eV 88 keV 2.81 mm 6.39 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1167, Parent ID = 1164 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.49 mm -1.32 cm -2.41 m 247 keV 0 eV 0 fm 0 fm Target initStep + 1 5.49 mm -1.32 cm -2.41 m 0 eV 247 keV 112 mum 112 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1166, Parent ID = 1164 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.94 mm -1.53 cm -2.41 m 176 keV 0 eV 0 fm 0 fm Target initStep + 1 4.94 mm -1.53 cm -2.41 m 0 eV 176 keV 67.5 mum 67.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1163, Parent ID = 1160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.24 mm -1.53 cm -2.41 m 374 keV 0 eV 0 fm 0 fm Target initStep + 1 7.3 mm -1.49 cm -2.41 m 0 eV 88 keV 1.11 mm 1.11 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1168, Parent ID = 1163 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.3 mm -1.49 cm -2.41 m 286 keV 0 eV 0 fm 0 fm Target initStep + 1 7.3 mm -1.49 cm -2.41 m 0 eV 286 keV 139 mum 139 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1162, Parent ID = 1160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.47 mm -1.53 cm -2.41 m 338 keV 0 eV 0 fm 0 fm Target initStep + 1 8.77 mm -1.8 cm -2.41 m 0 eV 88 keV 4.25 mm 4.25 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1169, Parent ID = 1162 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.77 mm -1.8 cm -2.41 m 250 keV 0 eV 0 fm 0 fm Target initStep + 1 8.77 mm -1.8 cm -2.41 m 0 eV 250 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1161, Parent ID = 1160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.38 mm -1.52 cm -2.41 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 6.52 mm -1.56 cm -2.41 m 0 eV 88 keV 606 mum 606 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1170, Parent ID = 1161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.52 mm -1.56 cm -2.41 m 221 keV 0 eV 0 fm 0 fm Target initStep + 1 6.51 mm -1.56 cm -2.41 m 0 eV 221 keV 95.1 mum 95.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1159, Parent ID = 1156 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.39 mm -1.52 cm -2.41 m 1.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.02 mm -1.51 cm -2.41 m 278 keV 1.65 MeV 1.11 mm 1.11 mm Target eBrem + 2 7.02 mm -1.51 cm -2.41 m 0 eV 278 keV 133 mum 1.25 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1061, Parent ID = 117 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -28.3 mum -1.31 mum -2.44 m 6.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 -26.6 mum -1.63 mum -2.44 m 987 keV 34.3 keV 33.7 mum 33.7 mum Target eBrem + 2 -30.7 mum -37.4 mum -2.44 m 168 keV 77.7 keV 81 mum 115 mum Target eBrem + 3 -31.3 mum -36.1 mum -2.44 m 0 eV 168 keV 62.8 mum 177 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1172, Parent ID = 1061 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -30.7 mum -37.4 mum -2.44 m 741 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.48 mm 5.99 mm -2.45 m 741 keV 0 eV 1.29 cm 1.29 cm Target Transportation + 2 -10.4 cm 25.5 cm -2.91 m 741 keV 0 eV 53.3 cm 54.6 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1171, Parent ID = 1061 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -26.6 mum -1.63 mum -2.44 m 5.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.07 mm 1.52 mm -2.43 m 0 eV 0 eV 8.9 mm 8.9 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1174, Parent ID = 1171 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.07 mm 1.52 mm -2.43 m 3.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.23 mm 1.54 mm -2.43 m 0 eV 3.37 MeV 2.69 mm 2.69 mm Target eIoni + 2 3.23 mm 1.54 mm -2.43 m 0 eV 0 eV 0 fm 2.69 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1176, Parent ID = 1174 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.23 mm 1.54 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.82 mm -2.02 mm -2.42 m 0 eV 88 keV 1.65 cm 1.65 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1177, Parent ID = 1176 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.82 mm -2.02 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.82 mm -2.02 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1175, Parent ID = 1174 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.23 mm 1.54 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 8.16 mm 3.47 mm -2.44 m 0 eV 88 keV 9.01 mm 9.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1178, Parent ID = 1175 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.16 mm 3.47 mm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 8.17 mm 3.48 mm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1173, Parent ID = 1171 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.07 mm 1.52 mm -2.43 m 854 keV 0 eV 0 fm 0 fm Target initStep + 1 3.09 mm 1.55 mm -2.43 m 0 eV 854 keV 597 mum 597 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 116, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -21 mum -13 mum -2.44 m 2.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -114 mum 66.1 mum -2.43 m 1.13 MeV 0 eV 1.47 cm 1.47 cm Target compt + 2 6.85 mm -1.4 mm -2.42 m 1.09 MeV 0 eV 1.05 cm 2.53 cm Target compt + 3 1.09 cm -2.83 mm -2.41 m 1.03 MeV 0 eV 5.48 mm 3.07 cm Target compt + 4 1.5 cm -5.2 mm -2.41 m 338 keV 0 eV 7.27 mm 3.8 cm Target compt + 5 1.56 cm -4.59 mm -2.41 m 0 eV 88 keV 906 mum 3.89 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1183, Parent ID = 116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.56 cm -4.59 mm -2.41 m 250 keV 0 eV 0 fm 0 fm Target initStep + 1 1.56 cm -4.59 mm -2.41 m 0 eV 250 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1182, Parent ID = 116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.5 cm -5.2 mm -2.41 m 691 keV 0 eV 0 fm 0 fm Target initStep + 1 1.5 cm -5.22 mm -2.41 m 0 eV 691 keV 459 mum 459 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1181, Parent ID = 116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 cm -2.83 mm -2.41 m 62.7 keV 0 eV 0 fm 0 fm Target initStep + 1 1.09 cm -2.83 mm -2.41 m 0 eV 62.7 keV 12.9 mum 12.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1180, Parent ID = 116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.85 mm -1.4 mm -2.42 m 40.4 keV 0 eV 0 fm 0 fm Target initStep + 1 6.85 mm -1.4 mm -2.42 m 0 eV 40.4 keV 6.32 mum 6.32 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1179, Parent ID = 116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -114 mum 66.1 mum -2.43 m 1.67 MeV 0 eV 0 fm 0 fm Target initStep + 1 -159 mum 76.2 mum -2.43 m 0 eV 1.67 MeV 1.28 mm 1.28 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 115, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -20.2 mum -13.8 mum -2.44 m 15.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -21.8 mum -12 mum -2.44 m 650 keV 0 eV 527 mum 527 mum Target compt + 2 -1.16 cm -2.5 cm -2.43 m 650 keV 0 eV 2.84 cm 2.89 cm Target Transportation + 3 -6.59 cm -14.3 cm -2.4 m 650 keV 0 eV 13.4 cm 16.3 cm World Transportation + 4 -1.11 m -2.4 m -1.76 m 650 keV 0 eV 2.57 m 2.73 m Tracker Transportation + 5 -1.34 m -2.91 m -1.62 m 650 keV 0 eV 58 cm 3.31 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1184, Parent ID = 115 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -21.8 mum -12 mum -2.44 m 15.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 409 mum -169 mum -2.44 m 13 MeV 1.61 MeV 1.4 mm 1.4 mm Target eBrem + 2 583 mum 220 mum -2.44 m 5.21 MeV 1.01 MeV 767 mum 2.17 mm Target eBrem + 3 542 mum 402 mum -2.44 m 4.49 MeV 405 keV 247 mum 2.41 mm Target eBrem + 4 544 mum -407 mum -2.44 m 1.45 MeV 2.08 MeV 1.25 mm 3.66 mm Target eBrem + 5 537 mum -397 mum -2.44 m 0 eV 1.45 MeV 1.1 mm 4.76 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1188, Parent ID = 1184 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 544 mum -407 mum -2.44 m 965 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm 968 mum -2.43 m 825 keV 0 eV 5.35 mm 5.35 mm Target compt + 2 -6.01 mm -1.08 mm -2.42 m 0 eV 88 keV 1.23 cm 1.77 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1190, Parent ID = 1188 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.01 mm -1.08 mm -2.42 m 737 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.91 mm -1.02 mm -2.42 m 380 keV 357 keV 281 mum 281 mum Target eBrem + 2 -5.91 mm -1.04 mm -2.42 m 0 eV 380 keV 208 mum 489 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1189, Parent ID = 1188 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 mm 968 mum -2.43 m 140 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm 971 mum -2.43 m 0 eV 140 keV 47.2 mum 47.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1187, Parent ID = 1184 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 542 mum 402 mum -2.44 m 307 keV 0 eV 0 fm 0 fm Target initStep + 1 400 mum 561 mum -2.44 m 0 eV 88 keV 1.06 mm 1.06 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1191, Parent ID = 1187 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 400 mum 561 mum -2.44 m 219 keV 0 eV 0 fm 0 fm Target initStep + 1 398 mum 558 mum -2.44 m 0 eV 219 keV 93.8 mum 93.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1186, Parent ID = 1184 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 583 mum 220 mum -2.44 m 6.76 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.1 mm 5.97 mm -2.43 m 0 eV 0 eV 1.03 cm 1.03 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1193, Parent ID = 1186 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.1 mm 5.97 mm -2.43 m 1.85 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.12 mm 5.99 mm -2.43 m 1.26 MeV 102 keV 90.6 mum 90.6 mum Target eBrem + 2 -5.22 mm 6.07 mm -2.43 m 205 keV 251 keV 301 mum 391 mum Target eBrem + 3 -5.22 mm 6.07 mm -2.43 m 0 eV 205 keV 81.1 mum 473 mum Target eIoni + 4 -5.22 mm 6.07 mm -2.43 m 0 eV 0 eV 0 fm 473 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1197, Parent ID = 1193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.22 mm 6.07 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.13 mm 6.56 mm -2.43 m 0 eV 88 keV 1.94 mm 1.94 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1198, Parent ID = 1197 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.13 mm 6.56 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.12 mm 6.57 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1196, Parent ID = 1193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.22 mm 6.07 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.09 cm 3.57 mm -2.42 m 204 keV 0 eV 9.96 mm 9.96 mm Target compt + 2 -8.6 mm 3.22 mm -2.42 m 0 eV 88 keV 2.3 mm 1.23 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1200, Parent ID = 1196 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.6 mm 3.22 mm -2.42 m 116 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.6 mm 3.22 mm -2.42 m 0 eV 116 keV 35 mum 35 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1199, Parent ID = 1196 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.09 cm 3.57 mm -2.42 m 307 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.09 cm 3.57 mm -2.42 m 0 eV 307 keV 154 mum 154 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1195, Parent ID = 1193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.22 mm 6.07 mm -2.43 m 805 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.88 mm 5.32 mm -2.43 m 0 eV 88 keV 1.83 mm 1.83 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1201, Parent ID = 1195 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.88 mm 5.32 mm -2.43 m 717 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.99 mm 5.41 mm -2.43 m 147 keV 570 keV 470 mum 470 mum Target eBrem + 2 -6.99 mm 5.41 mm -2.43 m 0 eV 147 keV 51.1 mum 521 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1194, Parent ID = 1193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.12 mm 5.99 mm -2.43 m 484 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.88 cm 1.09 cm -2.44 m 0 eV 88 keV 1.49 cm 1.49 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1202, Parent ID = 1194 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.88 cm 1.09 cm -2.44 m 396 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.88 cm 1.09 cm -2.44 m 0 eV 396 keV 220 mum 220 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1192, Parent ID = 1186 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.1 mm 5.97 mm -2.43 m 3.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.32 mm 5.69 mm -2.43 m 1.77 MeV 1.41 MeV 1.23 mm 1.23 mm Target eBrem + 2 -5.25 mm 5.6 mm -2.43 m 0 eV 1.77 MeV 1.37 mm 2.6 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1203, Parent ID = 1192 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.32 mm 5.69 mm -2.43 m 702 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.21 mm 5.55 mm -2.43 m 250 keV 0 eV 200 mum 200 mum Target compt + 2 -3.88 mm 6.29 mm -2.43 m 0 eV 88 keV 2.75 mm 2.95 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1205, Parent ID = 1203 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.88 mm 6.29 mm -2.43 m 162 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.88 mm 6.3 mm -2.43 m 0 eV 162 keV 59.1 mum 59.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1204, Parent ID = 1203 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.21 mm 5.55 mm -2.43 m 452 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.21 mm 5.54 mm -2.43 m 0 eV 452 keV 264 mum 264 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1185, Parent ID = 1184 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 409 mum -169 mum -2.44 m 682 keV 0 eV 0 fm 0 fm Target initStep + 1 209 mum 4.57 mm -2.43 m 198 keV 0 eV 1 cm 1 cm Target compt + 2 -2.5 mm 3.13 mm -2.43 m 0 eV 88 keV 5.28 mm 1.53 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1207, Parent ID = 1185 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.5 mm 3.13 mm -2.43 m 110 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 mm 3.13 mm -2.43 m 0 eV 110 keV 32.1 mum 32.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1206, Parent ID = 1185 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 209 mum 4.57 mm -2.43 m 485 keV 0 eV 0 fm 0 fm Target initStep + 1 211 mum 4.58 mm -2.43 m 0 eV 485 keV 290 mum 290 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 114, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -19 mum -16.1 mum -2.44 m 2.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -39.2 mum 8.03 mum -2.43 m 692 keV 0 eV 6.22 mm 6.22 mm Target compt + 2 -1.77 mm -1.02 mm -2.43 m 0 eV 88 keV 2.32 mm 8.54 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1209, Parent ID = 114 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.77 mm -1.02 mm -2.43 m 604 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.79 mm -1.02 mm -2.43 m 0 eV 604 keV 387 mum 387 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1208, Parent ID = 114 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -39.2 mum 8.03 mum -2.43 m 1.51 MeV 0 eV 0 fm 0 fm Target initStep + 1 235 mum 146 mum -2.43 m 71.9 keV 521 keV 511 mum 511 mum Target eBrem + 2 234 mum 145 mum -2.43 m 0 eV 71.9 keV 16.2 mum 527 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1210, Parent ID = 1208 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 235 mum 146 mum -2.43 m 914 keV 0 eV 0 fm 0 fm Target initStep + 1 7.97 mm -1.15 cm -2.45 m 914 keV 0 eV 2.05 cm 2.05 cm Target Transportation + 2 24.5 cm -36.8 cm -2.91 m 914 keV 0 eV 62.8 cm 64.9 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 113, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -18.4 mum -16.7 mum -2.44 m 14.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -111 mum 28.2 mum -2.42 m 0 eV 0 eV 2.44 cm 2.44 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1212, Parent ID = 113 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -111 mum 28.2 mum -2.42 m 6.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 108 mum 210 mum -2.42 m 3.69 MeV 1.43 MeV 1.41 mm 1.41 mm Target eBrem + 2 537 mum 564 mum -2.42 m 0 eV 3.69 MeV 2.94 mm 4.35 mm Target eIoni + 3 537 mum 564 mum -2.42 m 0 eV 0 eV 0 fm 4.35 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1215, Parent ID = 1212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 537 mum 564 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.37 mm 6.75 mm -2.42 m 0 eV 88 keV 6.48 mm 6.48 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1216, Parent ID = 1215 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.37 mm 6.75 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm 6.77 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1214, Parent ID = 1212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 537 mum 564 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -539 mum -3.07 mm -2.42 m 308 keV 0 eV 3.81 mm 3.81 mm Target compt + 2 -145 mum -3.39 mm -2.42 m 294 keV 0 eV 529 mum 4.34 mm Target compt + 3 224 mum -4.11 mm -2.42 m 0 eV 88 keV 864 mum 5.2 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1219, Parent ID = 1214 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 224 mum -4.11 mm -2.42 m 206 keV 0 eV 0 fm 0 fm Target initStep + 1 223 mum -4.12 mm -2.42 m 0 eV 206 keV 85.4 mum 85.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1218, Parent ID = 1214 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -145 mum -3.39 mm -2.42 m 14.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -145 mum -3.39 mm -2.42 m 0 eV 14.1 keV 1.18 mum 1.18 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1217, Parent ID = 1214 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -539 mum -3.07 mm -2.42 m 203 keV 0 eV 0 fm 0 fm Target initStep + 1 -543 mum -3.08 mm -2.42 m 0 eV 203 keV 83.5 mum 83.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1213, Parent ID = 1212 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 108 mum 210 mum -2.42 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 605 mum 780 mum -2.42 m 690 keV 0 eV 764 mum 764 mum Target compt + 2 816 mum 4.76 mm -2.41 m 0 eV 88 keV 5.2 mm 5.97 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1221, Parent ID = 1213 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 816 mum 4.76 mm -2.41 m 602 keV 0 eV 0 fm 0 fm Target initStep + 1 804 mum 4.76 mm -2.41 m 0 eV 602 keV 385 mum 385 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1220, Parent ID = 1213 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 605 mum 780 mum -2.42 m 502 keV 0 eV 0 fm 0 fm Target initStep + 1 622 mum 789 mum -2.42 m 0 eV 502 keV 303 mum 303 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1211, Parent ID = 113 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -111 mum 28.2 mum -2.42 m 6.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 -841 mum 344 mum -2.42 m 5.21 MeV 1.29 MeV 1.24 mm 1.24 mm Target eBrem + 2 -464 mum -132 mum -2.42 m 1.86 MeV 2.78 MeV 1.82 mm 3.06 mm Target eBrem + 3 -464 mum -270 mum -2.42 m 0 eV 1.86 MeV 1.45 mm 4.5 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1223, Parent ID = 1211 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -464 mum -132 mum -2.42 m 565 keV 0 eV 0 fm 0 fm Target initStep + 1 -520 mum -1.97 mm -2.42 m 281 keV 0 eV 2.05 mm 2.05 mm Target compt + 2 -653 mum -1.67 mm -2.42 m 0 eV 88 keV 837 mum 2.89 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1225, Parent ID = 1223 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -653 mum -1.67 mm -2.42 m 193 keV 0 eV 0 fm 0 fm Target initStep + 1 -656 mum -1.67 mm -2.42 m 0 eV 193 keV 77.5 mum 77.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1224, Parent ID = 1223 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -520 mum -1.97 mm -2.42 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -520 mum -1.98 mm -2.42 m 0 eV 284 keV 138 mum 138 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1222, Parent ID = 1211 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -841 mum 344 mum -2.42 m 403 keV 0 eV 0 fm 0 fm Target initStep + 1 1.39 mm -837 mum -2.42 m 0 eV 88 keV 2.52 mm 2.52 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1226, Parent ID = 1222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.39 mm -837 mum -2.42 m 315 keV 0 eV 0 fm 0 fm Target initStep + 1 1.39 mm -846 mum -2.42 m 0 eV 315 keV 159 mum 159 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 112, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -10 mum -8.46 mum -2.44 m 579 MeV 0 eV 0 fm 0 fm Target initStep + 1 -32.3 mum -24.4 mum -2.44 m 0 eV 0 eV 4.06 mm 4.06 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1228, Parent ID = 112 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -32.3 mum -24.4 mum -2.44 m 474 MeV 0 eV 0 fm 0 fm Target initStep + 1 -49.2 mum -28.8 mum -2.44 m 472 MeV 1.34 MeV 971 mum 971 mum Target eBrem + 2 -51.7 mum -29.2 mum -2.44 m 467 MeV 274 keV 205 mum 1.18 mm Target eBrem + 3 -66.7 mum -28.2 mum -2.44 m 319 MeV 1.18 MeV 987 mum 2.16 mm Target eBrem + 4 -69.2 mum -42.6 mum -2.44 m 317 MeV 952 keV 692 mum 2.86 mm Target eBrem + 5 -68.6 mum -43.2 mum -2.44 m 85 MeV 71 keV 72.7 mum 2.93 mm Target eBrem + 6 -70.6 mum -65.4 mum -2.43 m 78 MeV 686 keV 523 mum 3.45 mm Target eBrem + 7 -75.3 mum -58.5 mum -2.43 m 77.1 MeV 259 keV 255 mum 3.71 mm Target eBrem + 8 -116 mum -57.1 mum -2.43 m 72.9 MeV 890 keV 671 mum 4.38 mm Target eBrem + 9 -317 mum 205 mum -2.43 m 70.2 MeV 2.24 MeV 1.23 mm 5.61 mm Target eBrem + 10 -679 mum 712 mum -2.43 m 37.8 MeV 1.06 MeV 941 mum 6.55 mm Target eBrem + 11 -1.21 mm 1.74 mm -2.43 m 30.8 MeV 1.68 MeV 1.42 mm 7.97 mm Target eBrem + 12 -1.08 mm 2.06 mm -2.43 m 1.02 MeV 755 keV 626 mum 8.6 mm Target eBrem + 13 -1.36 mm 1.9 mm -2.43 m 454 keV 562 keV 580 mum 9.17 mm Target eBrem + 14 -1.33 mm 1.91 mm -2.43 m 0 eV 454 keV 265 mum 9.44 mm Target eIoni + 15 -1.33 mm 1.91 mm -2.43 m 0 eV 0 eV 0 fm 9.44 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1242, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.33 mm 1.91 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -675 mum -660 mum -2.43 m 196 keV 0 eV 3.07 mm 3.07 mm Target compt + 2 -1.26 mm 41.1 mum -2.43 m 0 eV 88 keV 946 mum 4.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1244, Parent ID = 1242 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.26 mm 41.1 mum -2.43 m 108 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.26 mm 43.2 mum -2.43 m 0 eV 108 keV 31.2 mum 31.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1243, Parent ID = 1242 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -675 mum -660 mum -2.43 m 315 keV 0 eV 0 fm 0 fm Target initStep + 1 -672 mum -669 mum -2.43 m 0 eV 315 keV 160 mum 160 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1241, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.33 mm 1.91 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.33 mm 5.77 mm -2.43 m 474 keV 0 eV 4.62 mm 4.62 mm Target compt + 2 -7.86 mm 1.43 cm -2.42 m 0 eV 88 keV 1.54 cm 2 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1246, Parent ID = 1241 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.86 mm 1.43 cm -2.42 m 386 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.87 mm 1.43 cm -2.42 m 0 eV 386 keV 212 mum 212 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1245, Parent ID = 1241 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.33 mm 5.77 mm -2.43 m 37.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.33 mm 5.77 mm -2.43 m 0 eV 37.3 keV 5.57 mum 5.57 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1240, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.08 mm 2.06 mm -2.43 m 29 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2 mm 4.48 mm -2.43 m 0 eV 0 eV 4.47 mm 4.47 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1248, Parent ID = 1240 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2 mm 4.48 mm -2.43 m 17.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.73 mm 4.7 mm -2.43 m 8.99 MeV 2.39 MeV 2.06 mm 2.06 mm Target eBrem + 2 561 mum 6 mm -2.42 m 3.37 MeV 5.62 MeV 4.86 mm 6.92 mm Target eBrem + 3 -835 mum 6.44 mm -2.42 m 0 eV 2.2 MeV 1.98 mm 8.9 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1251, Parent ID = 1248 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -835 mum 6.44 mm -2.42 m 1.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.47 mm 2.65 mm -2.4 m 1.5 MeV 0 eV 2.3 cm 2.3 cm Target Transportation + 2 -13.4 cm -13.3 cm -1.6 m 1.5 MeV 0 eV 82.2 cm 84.5 cm Tracker Transportation + 3 -16.7 cm -16.7 cm -1.4 m 1.5 MeV 0 eV 20.5 cm 1.05 m Chamber Transportation + 4 -26.4 cm -26.9 cm -80 cm 1.5 MeV 0 eV 61.6 cm 1.67 m Tracker Transportation + 5 -29.7 cm -30.3 cm -60 cm 1.5 MeV 0 eV 20.5 cm 1.87 m Chamber Transportation + 6 -39.4 cm -40.4 cm 0 fm 1.5 MeV 0 eV 61.6 cm 2.49 m Tracker Transportation + 7 -42.7 cm -43.8 cm 20 cm 1.5 MeV 0 eV 20.5 cm 2.69 m Chamber Transportation + 8 -52.4 cm -54 cm 80 cm 1.5 MeV 0 eV 61.6 cm 3.31 m Tracker Transportation + 9 -55.7 cm -57.4 cm 1 m 1.5 MeV 0 eV 20.5 cm 3.52 m Chamber Transportation + 10 -65.4 cm -67.6 cm 1.6 m 1.5 MeV 0 eV 61.6 cm 4.13 m Tracker Transportation + 11 -68.6 cm -71 cm 1.8 m 1.5 MeV 0 eV 20.5 cm 4.34 m Chamber Transportation + 12 -78.4 cm -81.2 cm 2.4 m 1.5 MeV 0 eV 61.6 cm 4.95 m Tracker Transportation + 13 -86.7 cm -89.8 cm 2.91 m 1.5 MeV 0 eV 52.4 cm 5.48 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1250, Parent ID = 1248 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -835 mum 6.44 mm -2.42 m 702 keV 0 eV 0 fm 0 fm Target initStep + 1 -129 mum 4.64 mm -2.42 m 359 keV 0 eV 1.96 mm 1.96 mm Target compt + 2 -402 mum 3.87 mm -2.42 m 302 keV 0 eV 1.39 mm 3.35 mm Target compt + 3 -2.78 mm 2.52 mm -2.42 m 208 keV 0 eV 2.98 mm 6.33 mm Target compt + 4 -2.81 mm 2.48 mm -2.42 m 0 eV 88 keV 70.2 mum 6.4 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1255, Parent ID = 1250 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.81 mm 2.48 mm -2.42 m 120 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.81 mm 2.48 mm -2.42 m 0 eV 120 keV 37 mum 37 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1254, Parent ID = 1250 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.78 mm 2.52 mm -2.42 m 93.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.78 mm 2.52 mm -2.42 m 0 eV 93.8 keV 25 mum 25 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1253, Parent ID = 1250 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -402 mum 3.87 mm -2.42 m 57.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -401 mum 3.87 mm -2.42 m 0 eV 57.4 keV 11.3 mum 11.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1252, Parent ID = 1250 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -129 mum 4.64 mm -2.42 m 343 keV 0 eV 0 fm 0 fm Target initStep + 1 -124 mum 4.63 mm -2.42 m 0 eV 343 keV 180 mum 180 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1249, Parent ID = 1248 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.73 mm 4.7 mm -2.43 m 6.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.81 mm 4.86 mm -2.43 m 446 keV 0 eV 241 mum 241 mum Target compt + 2 -1.03 cm -1.52 mm -2.42 m 0 eV 88 keV 10 mm 1.02 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1257, Parent ID = 1249 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.03 cm -1.52 mm -2.42 m 358 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.03 cm -1.52 mm -2.42 m 0 eV 358 keV 191 mum 191 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1256, Parent ID = 1249 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.81 mm 4.86 mm -2.43 m 5.66 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.88 mm 7.08 mm -2.43 m 1.86 MeV 3.79 MeV 3.18 mm 3.18 mm Target eBrem + 2 -1.98 mm 7.24 mm -2.43 m 1.36 MeV 211 keV 225 mum 3.4 mm Target eBrem + 3 -1.98 mm 7.29 mm -2.43 m 0 eV 1.36 MeV 1.02 mm 4.43 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1258, Parent ID = 1256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.98 mm 7.24 mm -2.43 m 293 keV 0 eV 0 fm 0 fm Target initStep + 1 -2 mm 7.32 mm -2.43 m 0 eV 88 keV 138 mum 138 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1259, Parent ID = 1258 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2 mm 7.32 mm -2.43 m 205 keV 0 eV 0 fm 0 fm Target initStep + 1 -2 mm 7.32 mm -2.43 m 0 eV 205 keV 85 mum 85 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1247, Parent ID = 1240 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2 mm 4.48 mm -2.43 m 10.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.24 mm 4.93 mm -2.43 m 8.59 MeV 1.41 MeV 1.09 mm 1.09 mm Target eBrem + 2 -2.44 mm 6.04 mm -2.43 m 4.87 MeV 1.48 MeV 1.39 mm 2.48 mm Target eBrem + 3 -2.61 mm 6.2 mm -2.43 m 3.49 MeV 431 keV 232 mum 2.71 mm Target eBrem + 4 -2.73 mm 6.66 mm -2.43 m 2.08 MeV 722 keV 611 mum 3.32 mm Target eBrem + 5 -2.81 mm 6.73 mm -2.43 m 0 eV 2.08 MeV 1.63 mm 4.94 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1263, Parent ID = 1247 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.73 mm 6.66 mm -2.43 m 684 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.09 cm 1.69 cm -2.44 m 0 eV 88 keV 1.82 cm 1.82 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1264, Parent ID = 1263 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.09 cm 1.69 cm -2.44 m 596 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.09 cm 1.69 cm -2.44 m 0 eV 596 keV 380 mum 380 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1262, Parent ID = 1247 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.61 mm 6.2 mm -2.43 m 949 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.66 mm 8.62 mm -2.42 m 486 keV 0 eV 4.61 mm 4.61 mm Target compt + 2 -6.25 mm 9.91 mm -2.42 m 360 keV 0 eV 1.54 mm 6.15 mm Target compt + 3 -6.25 mm 9.95 mm -2.42 m 185 keV 0 eV 123 mum 6.27 mm Target compt + 4 -6.02 mm 9.97 mm -2.42 m 0 eV 88 keV 245 mum 6.51 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1268, Parent ID = 1262 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.02 mm 9.97 mm -2.42 m 97.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.02 mm 9.97 mm -2.42 m 0 eV 97.3 keV 26.4 mum 26.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1267, Parent ID = 1262 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.25 mm 9.95 mm -2.42 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.25 mm 9.95 mm -2.43 m 0 eV 174 keV 66.4 mum 66.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1266, Parent ID = 1262 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.25 mm 9.91 mm -2.42 m 126 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.25 mm 9.91 mm -2.42 m 0 eV 126 keV 39.8 mum 39.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1265, Parent ID = 1262 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.66 mm 8.62 mm -2.42 m 463 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.67 mm 8.62 mm -2.42 m 0 eV 463 keV 273 mum 273 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1261, Parent ID = 1247 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.44 mm 6.04 mm -2.43 m 2.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.53 mm 2.03 cm -2.42 m 0 eV 88 keV 1.6 cm 1.6 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1269, Parent ID = 1261 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.53 mm 2.03 cm -2.42 m 2.16 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.59 mm 2.05 cm -2.42 m 0 eV 2.16 MeV 1.69 mm 1.69 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1260, Parent ID = 1247 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.24 mm 4.93 mm -2.43 m 532 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.09 mm 8.46 mm -2.43 m 0 eV 88 keV 3.63 mm 3.63 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1270, Parent ID = 1260 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.09 mm 8.46 mm -2.43 m 444 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.1 mm 8.48 mm -2.43 m 0 eV 444 keV 258 mum 258 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1239, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.21 mm 1.74 mm -2.43 m 5.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -229 mum 8.29 mm -2.42 m 0 eV 0 eV 1.29 cm 1.29 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1272, Parent ID = 1239 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -229 mum 8.29 mm -2.42 m 2.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 -305 mum 8.35 mm -2.42 m 0 eV 2.34 MeV 1.86 mm 1.86 mm Target eIoni + 2 -305 mum 8.35 mm -2.42 m 0 eV 0 eV 0 fm 1.86 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1274, Parent ID = 1272 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -305 mum 8.35 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 227 mum 5.29 mm -2.42 m 0 eV 88 keV 4.07 mm 4.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1275, Parent ID = 1274 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 227 mum 5.29 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 235 mum 5.28 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1273, Parent ID = 1272 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -305 mum 8.35 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.3 mm 1.41 cm -2.42 m 295 keV 0 eV 7.64 mm 7.64 mm Target compt + 2 -1.03 mm 1.35 cm -2.41 m 0 eV 88 keV 1.36 mm 9 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1277, Parent ID = 1273 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.03 mm 1.35 cm -2.41 m 207 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.03 mm 1.35 cm -2.41 m 0 eV 207 keV 86 mum 86 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1276, Parent ID = 1273 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.3 mm 1.41 cm -2.42 m 216 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.31 mm 1.41 cm -2.42 m 0 eV 216 keV 92.1 mum 92.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1271, Parent ID = 1239 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -229 mum 8.29 mm -2.42 m 1.94 MeV 0 eV 0 fm 0 fm Target initStep + 1 -152 mum 8.32 mm -2.42 m 1.39 MeV 172 keV 115 mum 115 mum Target eBrem + 2 -410 mum 8.54 mm -2.42 m 323 keV 711 keV 652 mum 768 mum Target eBrem + 3 -402 mum 8.53 mm -2.42 m 0 eV 323 keV 166 mum 934 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1279, Parent ID = 1271 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -410 mum 8.54 mm -2.42 m 352 keV 0 eV 0 fm 0 fm Target initStep + 1 -219 mum 8.25 mm -2.42 m 199 keV 0 eV 345 mum 345 mum Target compt + 2 540 mum 8.98 mm -2.42 m 0 eV 88 keV 1.19 mm 1.53 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1281, Parent ID = 1279 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 540 mum 8.98 mm -2.42 m 111 keV 0 eV 0 fm 0 fm Target initStep + 1 540 mum 8.98 mm -2.42 m 0 eV 111 keV 32.6 mum 32.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1280, Parent ID = 1279 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -219 mum 8.25 mm -2.42 m 154 keV 0 eV 0 fm 0 fm Target initStep + 1 -219 mum 8.25 mm -2.42 m 0 eV 154 keV 54.5 mum 54.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1278, Parent ID = 1271 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -152 mum 8.32 mm -2.42 m 383 keV 0 eV 0 fm 0 fm Target initStep + 1 2.82 mm 1.42 cm -2.41 m 175 keV 0 eV 8.47 mm 8.47 mm Target compt + 2 2.71 mm 1.4 cm -2.41 m 0 eV 88 keV 258 mum 8.73 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1283, Parent ID = 1278 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.71 mm 1.4 cm -2.41 m 87.3 keV 0 eV 0 fm 0 fm Target initStep + 1 2.71 mm 1.4 cm -2.41 m 0 eV 87.3 keV 22.3 mum 22.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1282, Parent ID = 1278 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.82 mm 1.42 cm -2.41 m 207 keV 0 eV 0 fm 0 fm Target initStep + 1 2.83 mm 1.42 cm -2.41 m 0 eV 207 keV 86.3 mum 86.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1238, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -679 mum 712 mum -2.43 m 31.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.61 mm 2.48 mm -2.43 m 0 eV 0 eV 2.76 mm 2.76 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1285, Parent ID = 1238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.61 mm 2.48 mm -2.43 m 18.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.04 mm 3.14 mm -2.43 m 15.3 MeV 2.28 MeV 973 mum 973 mum Target eBrem + 2 205 mum 7.74 mm -2.43 m 7.19 MeV 5.61 MeV 4.93 mm 5.9 mm Target eBrem + 3 172 mum 7.81 mm -2.43 m 5.44 MeV 107 keV 89.2 mum 5.99 mm Target eBrem + 4 387 mum 8.66 mm -2.43 m 2.83 MeV 1.16 MeV 803 mum 6.79 mm Target eBrem + 5 816 mum 8.91 mm -2.43 m 1.52 MeV 1.31 MeV 1.25 mm 8.04 mm Target eBrem + 6 816 mum 8.91 mm -2.43 m 903 keV 6.3 keV 5.92 mum 8.05 mm Target eBrem + 7 811 mum 8.84 mm -2.43 m 0 eV 903 keV 646 mum 8.69 mm Target eIoni + 8 811 mum 8.84 mm -2.43 m 0 eV 0 eV 0 fm 8.69 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1292, Parent ID = 1285 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 811 mum 8.84 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.43 mm 9.79 mm -2.43 m 462 keV 0 eV 1.8 mm 1.8 mm Target compt + 2 4.01 mm 1.05 cm -2.44 m 369 keV 0 eV 8 mm 9.8 mm Target compt + 3 3.9 mm 1.05 cm -2.44 m 0 eV 88 keV 315 mum 1.01 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1295, Parent ID = 1292 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.9 mm 1.05 cm -2.44 m 281 keV 0 eV 0 fm 0 fm Target initStep + 1 3.9 mm 1.04 cm -2.44 m 0 eV 281 keV 136 mum 136 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1294, Parent ID = 1292 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.01 mm 1.05 cm -2.44 m 92.1 keV 0 eV 0 fm 0 fm Target initStep + 1 4.01 mm 1.05 cm -2.44 m 0 eV 92.1 keV 24.3 mum 24.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1293, Parent ID = 1292 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.43 mm 9.79 mm -2.43 m 49.4 keV 0 eV 0 fm 0 fm Target initStep + 1 1.43 mm 9.79 mm -2.43 m 0 eV 49.4 keV 8.78 mum 8.78 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1291, Parent ID = 1285 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 811 mum 8.84 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.79 mm -2.83 mm -2.41 m 0 eV 88 keV 2.22 cm 2.22 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1296, Parent ID = 1291 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.79 mm -2.83 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.79 mm -2.83 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1290, Parent ID = 1285 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 816 mum 8.91 mm -2.43 m 612 keV 0 eV 0 fm 0 fm Target initStep + 1 131 mum 3.79 mm -2.43 m 373 keV 0 eV 5.43 mm 5.43 mm Target compt + 2 1.64 mm 2.41 mm -2.43 m 0 eV 88 keV 2.08 mm 7.51 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1298, Parent ID = 1290 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.64 mm 2.41 mm -2.43 m 285 keV 0 eV 0 fm 0 fm Target initStep + 1 1.64 mm 2.41 mm -2.43 m 0 eV 285 keV 139 mum 139 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1297, Parent ID = 1290 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 131 mum 3.79 mm -2.43 m 238 keV 0 eV 0 fm 0 fm Target initStep + 1 127 mum 3.79 mm -2.43 m 0 eV 238 keV 106 mum 106 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1289, Parent ID = 1285 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 387 mum 8.66 mm -2.43 m 1.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.27 cm 2.5 cm -2.43 m 1.45 MeV 0 eV 2.78 cm 2.78 cm Target Transportation + 2 2.91 m 2.14 m -2.89 m 1.45 MeV 0 eV 3.61 m 3.64 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1288, Parent ID = 1285 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 172 mum 7.81 mm -2.43 m 1.64 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.66 mm 1.96 cm -2.42 m 504 keV 0 eV 1.37 cm 1.37 cm Target compt + 2 730 mum 2.16 cm -2.42 m 437 keV 0 eV 5.52 mm 1.92 cm Target compt + 3 3.32 mm 2.42 cm -2.42 m 319 keV 0 eV 3.64 mm 2.29 cm Target compt + 4 3.18 mm 2.5 cm -2.42 m 319 keV 0 eV 870 mum 2.37 cm Target Transportation + 5 -7.76 mm 9.21 cm -2.4 m 319 keV 0 eV 7.14 cm 9.51 cm World Transportation + 6 -38.4 cm 2.4 m -1.66 m 319 keV 0 eV 2.45 m 2.55 m Tracker Transportation + 7 -46.7 cm 2.91 m -1.49 m 319 keV 0 eV 54.2 cm 3.09 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1301, Parent ID = 1288 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.32 mm 2.42 cm -2.42 m 118 keV 0 eV 0 fm 0 fm Target initStep + 1 3.32 mm 2.42 cm -2.42 m 0 eV 118 keV 36.2 mum 36.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1300, Parent ID = 1288 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 730 mum 2.16 cm -2.42 m 66.9 keV 0 eV 0 fm 0 fm Target initStep + 1 731 mum 2.16 cm -2.42 m 0 eV 66.9 keV 14.5 mum 14.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1299, Parent ID = 1288 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.66 mm 1.96 cm -2.42 m 1.14 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.69 mm 1.97 cm -2.42 m 0 eV 1.14 MeV 836 mum 836 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1287, Parent ID = 1285 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 205 mum 7.74 mm -2.43 m 2.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.93 mm 2.5 cm -2.42 m 2.47 MeV 0 eV 2.15 cm 2.15 cm Target Transportation + 2 -1.02 cm 5.1 cm -2.4 m 2.47 MeV 0 eV 3.24 cm 5.39 cm World Transportation + 3 -57.3 cm 2.4 m -73.8 cm 2.47 MeV 0 eV 2.93 m 2.99 m Tracker Transportation + 4 -69.5 cm 2.91 m -37.7 cm 2.47 MeV 0 eV 63.7 cm 3.62 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1286, Parent ID = 1285 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.04 mm 3.14 mm -2.43 m 717 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.45 mm 2.5 cm -2.42 m 717 keV 0 eV 2.46 cm 2.46 cm Target Transportation + 2 -3.12 mm 6.03 cm -2.4 m 717 keV 0 eV 3.97 cm 6.44 cm World Transportation + 3 -4.71 cm 2.4 m -1.18 m 717 keV 0 eV 2.64 m 2.7 m Tracker Transportation + 4 -5.67 cm 2.91 m -91.7 cm 717 keV 0 eV 57.5 cm 3.28 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1284, Parent ID = 1238 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.61 mm 2.48 mm -2.43 m 12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.86 mm 5.56 mm -2.43 m 6.66 MeV 4.37 MeV 2.73 mm 2.73 mm Target eBrem + 2 -2.13 mm 5.3 mm -2.43 m 4.69 MeV 1.49 MeV 1.33 mm 4.06 mm Target eBrem + 3 -2.34 mm 5.46 mm -2.43 m 0 eV 4.69 MeV 3.66 mm 7.72 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1303, Parent ID = 1284 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.13 mm 5.3 mm -2.43 m 477 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.56 mm 7.33 mm -2.42 m 0 eV 88 keV 6.96 mm 6.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1304, Parent ID = 1303 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.56 mm 7.33 mm -2.42 m 389 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.56 mm 7.34 mm -2.42 m 0 eV 389 keV 214 mum 214 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1302, Parent ID = 1284 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.86 mm 5.56 mm -2.43 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -591 mum 8.12 mm -2.42 m 0 eV 88 keV 5.99 mm 5.99 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1305, Parent ID = 1302 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -591 mum 8.12 mm -2.42 m 918 keV 0 eV 0 fm 0 fm Target initStep + 1 -730 mum 8.28 mm -2.42 m 62.5 keV 855 keV 636 mum 636 mum Target eBrem + 2 -730 mum 8.28 mm -2.42 m 0 eV 62.5 keV 12.9 mum 649 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1237, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -317 mum 205 mum -2.43 m 448 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.3 mm 1.49 mm -2.43 m 0 eV 88 keV 2.29 mm 2.29 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1306, Parent ID = 1237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.3 mm 1.49 mm -2.43 m 360 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 mm 1.5 mm -2.43 m 0 eV 360 keV 193 mum 193 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1236, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -116 mum -57.1 mum -2.43 m 3.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 -568 mum 774 mum -2.43 m 441 keV 0 eV 4.43 mm 4.43 mm Target compt + 2 -5.19 mm 1.03 cm -2.43 m 0 eV 88 keV 1.08 cm 1.53 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1308, Parent ID = 1236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.19 mm 1.03 cm -2.43 m 353 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.19 mm 1.03 cm -2.43 m 0 eV 353 keV 187 mum 187 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1307, Parent ID = 1236 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -568 mum 774 mum -2.43 m 2.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 -581 mum 795 mum -2.43 m 0 eV 2.93 MeV 2.3 mm 2.3 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1235, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -75.3 mum -58.5 mum -2.43 m 546 keV 0 eV 0 fm 0 fm Target initStep + 1 -541 mum 250 mum -2.43 m 0 eV 88 keV 5.55 mm 5.55 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1309, Parent ID = 1235 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -541 mum 250 mum -2.43 m 458 keV 0 eV 0 fm 0 fm Target initStep + 1 -529 mum 250 mum -2.43 m 0 eV 458 keV 268 mum 268 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1234, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -70.6 mum -65.4 mum -2.43 m 6.35 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.11 mm 720 mum -2.41 m 0 eV 0 eV 2.16 cm 2.16 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1311, Parent ID = 1234 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.11 mm 720 mum -2.41 m 2.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 mm 699 mum -2.41 m 2.07 MeV 324 keV 162 mum 162 mum Target eBrem + 2 -1.41 mm 1.32 mm -2.41 m 537 keV 1.22 MeV 933 mum 1.1 mm Target eBrem + 3 -1.38 mm 1.31 mm -2.41 m 0 eV 537 keV 332 mum 1.43 mm Target eIoni + 4 -1.38 mm 1.31 mm -2.41 m 0 eV 0 eV 0 fm 1.43 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1315, Parent ID = 1311 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.38 mm 1.31 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -901 mum 2.78 mm -2.41 m 281 keV 0 eV 1.97 mm 1.97 mm Target compt + 2 -67.4 mum 2.18 mm -2.41 m 0 eV 88 keV 1.27 mm 3.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1317, Parent ID = 1315 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -67.4 mum 2.18 mm -2.41 m 193 keV 0 eV 0 fm 0 fm Target initStep + 1 -69.5 mum 2.18 mm -2.41 m 0 eV 193 keV 77.2 mum 77.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1316, Parent ID = 1315 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -901 mum 2.78 mm -2.41 m 230 keV 0 eV 0 fm 0 fm Target initStep + 1 -902 mum 2.78 mm -2.41 m 0 eV 230 keV 101 mum 101 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1314, Parent ID = 1311 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.38 mm 1.31 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.67 mm 424 mum -2.41 m 0 eV 88 keV 1.18 mm 1.18 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1318, Parent ID = 1314 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.67 mm 424 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.68 mm 409 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1313, Parent ID = 1311 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.41 mm 1.32 mm -2.41 m 322 keV 0 eV 0 fm 0 fm Target initStep + 1 -321 mum 1.1 mm -2.41 m 0 eV 88 keV 1.31 mm 1.31 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1319, Parent ID = 1313 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -321 mum 1.1 mm -2.41 m 234 keV 0 eV 0 fm 0 fm Target initStep + 1 -316 mum 1.11 mm -2.41 m 0 eV 234 keV 103 mum 103 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1312, Parent ID = 1311 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.17 mm 699 mum -2.41 m 576 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.29 mm -46.2 mum -2.41 m 344 keV 0 eV 4.79 mm 4.79 mm Target compt + 2 -5.58 mm -539 mum -2.41 m 0 eV 88 keV 599 mum 5.39 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1321, Parent ID = 1312 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.58 mm -539 mum -2.41 m 256 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.59 mm -546 mum -2.41 m 0 eV 256 keV 118 mum 118 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1320, Parent ID = 1312 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.29 mm -46.2 mum -2.41 m 232 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.3 mm -43.8 mum -2.41 m 0 eV 232 keV 102 mum 102 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1310, Parent ID = 1234 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.11 mm 720 mum -2.41 m 2.36 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.14 mm 739 mum -2.41 m 0 eV 2.36 MeV 1.85 mm 1.85 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1233, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -68.6 mum -43.2 mum -2.44 m 232 MeV 0 eV 0 fm 0 fm Target initStep + 1 51.3 mum -107 mum -2.43 m 0 eV 0 eV 8.63 mm 8.63 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1323, Parent ID = 1233 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 51.3 mum -107 mum -2.43 m 169 MeV 0 eV 0 fm 0 fm Target initStep + 1 36.8 mum -107 mum -2.43 m 147 MeV 1.34 MeV 1.03 mm 1.03 mm Target eBrem + 2 55.3 mum -172 mum -2.42 m 143 MeV 1.34 MeV 956 mum 1.99 mm Target eBrem + 3 190 mum -243 mum -2.42 m 140 MeV 1.92 MeV 1.27 mm 3.26 mm Target eBrem + 4 207 mum -345 mum -2.42 m 135 MeV 4.91 MeV 908 mum 4.16 mm Target eBrem + 5 210 mum -387 mum -2.42 m 19.7 MeV 573 keV 385 mum 4.55 mm Target eBrem + 6 186 mum -379 mum -2.42 m 18.7 MeV 494 keV 491 mum 5.04 mm Target eBrem + 7 -65 mum -578 mum -2.42 m 12.4 MeV 1.82 MeV 1.62 mm 6.66 mm Target eBrem + 8 -1.39 mm 286 mum -2.42 m 9.11 MeV 2.79 MeV 2.3 mm 8.96 mm Target eBrem + 9 -2.75 mm -201 mum -2.42 m 1.28 MeV 1.43 MeV 1.37 mm 1.03 cm Target eBrem + 10 -2.8 mm -222 mum -2.42 m 0 eV 1.28 MeV 976 mum 1.13 cm Target eIoni + 11 -2.8 mm -222 mum -2.42 m 0 eV 0 eV 0 fm 1.13 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1334, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.8 mm -222 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.46 mm -1.43 mm -2.42 m 217 keV 0 eV 2.05 mm 2.05 mm Target compt + 2 -4.46 mm -1.32 mm -2.42 m 0 eV 88 keV 213 mum 2.27 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1336, Parent ID = 1334 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.46 mm -1.32 mm -2.42 m 129 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.45 mm -1.31 mm -2.42 m 0 eV 129 keV 41.5 mum 41.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1335, Parent ID = 1334 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.46 mm -1.43 mm -2.42 m 294 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.47 mm -1.43 mm -2.42 m 0 eV 294 keV 145 mum 145 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1333, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.8 mm -222 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.7 mm 576 mum -2.42 m 0 eV 88 keV 1.36 mm 1.36 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1337, Parent ID = 1333 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.7 mm 576 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.69 mm 589 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1332, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.75 mm -201 mum -2.42 m 6.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.3 mm -1.7 mm -2.41 m 0 eV 0 eV 6.61 mm 6.61 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1339, Parent ID = 1332 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.3 mm -1.7 mm -2.41 m 3.14 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.65 mm -1.52 mm -2.41 m 0 eV 3.14 MeV 2.51 mm 2.51 mm Target eIoni + 2 -5.65 mm -1.52 mm -2.41 m 0 eV 0 eV 0 fm 2.51 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1341, Parent ID = 1339 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.65 mm -1.52 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.83 mm -5.07 mm -2.41 m 0 eV 88 keV 1.29 cm 1.29 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1342, Parent ID = 1341 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.83 mm -5.07 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.84 mm -5.07 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1340, Parent ID = 1339 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.65 mm -1.52 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.49 cm 1.35 mm -2.42 m 172 keV 0 eV 1.04 cm 1.04 cm Target compt + 2 -1.32 cm 1.24 mm -2.42 m 0 eV 88 keV 1.95 mm 1.24 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1344, Parent ID = 1340 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.32 cm 1.24 mm -2.42 m 84.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.32 cm 1.24 mm -2.42 m 0 eV 84.4 keV 21.1 mum 21.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1343, Parent ID = 1340 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.49 cm 1.35 mm -2.42 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.49 cm 1.35 mm -2.42 m 0 eV 339 keV 177 mum 177 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1338, Parent ID = 1332 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.3 mm -1.7 mm -2.41 m 2.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.3 mm -1.74 mm -2.41 m 1.24 MeV 527 keV 451 mum 451 mum Target eBrem + 2 -5.3 mm -1.72 mm -2.41 m 0 eV 1.24 MeV 925 mum 1.38 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1345, Parent ID = 1338 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.3 mm -1.74 mm -2.41 m 468 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.72 mm 327 mum -2.42 m 0 eV 88 keV 3.35 mm 3.35 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1346, Parent ID = 1345 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.72 mm 327 mum -2.42 m 380 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.72 mm 327 mum -2.42 m 0 eV 380 keV 208 mum 208 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1331, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.39 mm 286 mum -2.42 m 472 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.31 mm -129 mum -2.42 m 308 keV 0 eV 1.21 mm 1.21 mm Target compt + 2 -1.88 mm -974 mum -2.42 m 0 eV 88 keV 1.71 mm 2.92 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1348, Parent ID = 1331 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.88 mm -974 mum -2.42 m 220 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.87 mm -972 mum -2.42 m 0 eV 220 keV 94.6 mum 94.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1347, Parent ID = 1331 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.31 mm -129 mum -2.42 m 164 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.32 mm -129 mum -2.42 m 0 eV 164 keV 60.2 mum 60.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1330, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -65 mum -578 mum -2.42 m 4.54 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.72 mm -723 mum -2.41 m 0 eV 88 keV 6.14 mm 6.14 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1349, Parent ID = 1330 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.72 mm -723 mum -2.41 m 4.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.71 mm 1.32 mm -2.41 m 1.2 MeV 3.25 MeV 3.2 mm 3.2 mm Target eBrem + 2 -3.72 mm 1.38 mm -2.41 m 0 eV 1.2 MeV 893 mum 4.09 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1329, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 186 mum -379 mum -2.42 m 467 keV 0 eV 0 fm 0 fm Target initStep + 1 309 mum -451 mum -2.42 m 0 eV 88 keV 1.16 mm 1.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1350, Parent ID = 1329 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 309 mum -451 mum -2.42 m 379 keV 0 eV 0 fm 0 fm Target initStep + 1 316 mum -439 mum -2.42 m 0 eV 379 keV 207 mum 207 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1328, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 210 mum -387 mum -2.42 m 114 MeV 0 eV 0 fm 0 fm Target initStep + 1 310 mum -731 mum -2.42 m 0 eV 0 eV 3.06 mm 3.06 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1352, Parent ID = 1328 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 310 mum -731 mum -2.42 m 53.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 310 mum -736 mum -2.42 m 53.5 MeV 41.9 keV 28.9 mum 28.9 mum Target eBrem + 2 359 mum -832 mum -2.42 m 31.5 MeV 863 keV 695 mum 723 mum Target eBrem + 3 628 mum -1.53 mm -2.42 m 27.9 MeV 2.62 MeV 2.17 mm 2.89 mm Target eBrem + 4 867 mum -2.03 mm -2.42 m 22.2 MeV 3.63 MeV 1.35 mm 4.25 mm Target eBrem + 5 570 mum -2.7 mm -2.41 m 17.4 MeV 1.25 MeV 1.1 mm 5.35 mm Target eBrem + 6 376 mum -3.11 mm -2.41 m 15.6 MeV 668 keV 667 mum 6.02 mm Target eBrem + 7 493 mum -4.85 mm -2.41 m 12.7 MeV 2.43 MeV 1.77 mm 7.79 mm Target eBrem + 8 -26.9 mum -5.65 mm -2.41 m 8.14 MeV 1.47 MeV 1.02 mm 8.81 mm Target eBrem + 9 247 mum -5.97 mm -2.41 m 7.16 MeV 546 keV 482 mum 9.29 mm Target eBrem + 10 249 mum -6.09 mm -2.41 m 6.69 MeV 159 keV 193 mum 9.48 mm Target eBrem + 11 184 mum -6.95 mm -2.41 m 0 eV 6.69 MeV 5.18 mm 1.47 cm Target eIoni + 12 184 mum -6.95 mm -2.41 m 0 eV 0 eV 0 fm 1.47 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1364, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 184 mum -6.95 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 7.02 mm -5.71 mm -2.41 m 325 keV 0 eV 8.62 mm 8.62 mm Target compt + 2 1.15 cm -3.29 mm -2.41 m 0 eV 88 keV 5.68 mm 1.43 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1366, Parent ID = 1364 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 cm -3.29 mm -2.41 m 237 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 cm -3.29 mm -2.41 m 0 eV 237 keV 105 mum 105 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1365, Parent ID = 1364 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.02 mm -5.71 mm -2.41 m 186 keV 0 eV 0 fm 0 fm Target initStep + 1 7.02 mm -5.71 mm -2.41 m 0 eV 186 keV 73.6 mum 73.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1363, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 184 mum -6.95 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.59 cm -9.88 mm -2.42 m 0 eV 88 keV 2.03 cm 2.03 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1367, Parent ID = 1363 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.59 cm -9.88 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.6 cm -9.89 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1362, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 249 mum -6.09 mm -2.41 m 317 keV 0 eV 0 fm 0 fm Target initStep + 1 39.2 mum -8.09 mm -2.41 m 0 eV 88 keV 3.15 mm 3.15 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1368, Parent ID = 1362 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 39.2 mum -8.09 mm -2.41 m 229 keV 0 eV 0 fm 0 fm Target initStep + 1 38.2 mum -8.09 mm -2.41 m 0 eV 229 keV 100 mum 100 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1361, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 247 mum -5.97 mm -2.41 m 427 keV 0 eV 0 fm 0 fm Target initStep + 1 -982 mum -1.01 cm -2.41 m 0 eV 88 keV 6.56 mm 6.56 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1369, Parent ID = 1361 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -982 mum -1.01 cm -2.41 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 -974 mum -1.01 cm -2.41 m 0 eV 339 keV 177 mum 177 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1360, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -26.9 mum -5.65 mm -2.41 m 3.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.6 mm -1.35 cm -2.41 m 1.35 MeV 0 eV 1.06 cm 1.06 cm Target compt + 2 912 mum -1.95 cm -2.4 m 453 keV 0 eV 9.95 mm 2.05 cm Target compt + 3 752 mum -1.94 cm -2.4 m 453 keV 0 eV 217 mum 2.07 cm Target Transportation + 4 -2.4 m 1.57 m -90.1 cm 453 keV 0 eV 3.25 m 3.27 m Tracker Transportation + 5 -2.91 m 1.91 m -58.3 cm 453 keV 0 eV 69 cm 3.96 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1371, Parent ID = 1360 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 912 mum -1.95 cm -2.4 m 896 keV 0 eV 0 fm 0 fm Target initStep + 1 911 mum -1.96 cm -2.4 m 0 eV 896 keV 632 mum 632 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1370, Parent ID = 1360 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.6 mm -1.35 cm -2.41 m 1.75 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.68 mm -1.36 cm -2.41 m 0 eV 1.75 MeV 1.35 mm 1.35 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1359, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 493 mum -4.85 mm -2.41 m 411 keV 0 eV 0 fm 0 fm Target initStep + 1 -683 mum -7.82 mm -2.41 m 338 keV 0 eV 4.4 mm 4.4 mm Target compt + 2 933 mum -9.82 mm -2.41 m 0 eV 88 keV 3.51 mm 7.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1373, Parent ID = 1359 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 933 mum -9.82 mm -2.41 m 250 keV 0 eV 0 fm 0 fm Target initStep + 1 937 mum -9.83 mm -2.41 m 0 eV 250 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1372, Parent ID = 1359 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -683 mum -7.82 mm -2.41 m 73.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -684 mum -7.82 mm -2.41 m 0 eV 73.4 keV 16.8 mum 16.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1358, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 376 mum -3.11 mm -2.41 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.01 mm -2.5 cm -2.4 m 1.17 MeV 0 eV 2.48 cm 2.48 cm Target Transportation + 2 2.37 mm -2.99 cm -2.4 m 1.17 MeV 0 eV 5.58 mm 3.04 cm World Transportation + 3 17.9 cm -2.4 m -1.16 m 1.17 MeV 0 eV 2.68 m 2.71 m Tracker Transportation + 4 21.7 cm -2.91 m -88.8 cm 1.17 MeV 0 eV 57.7 cm 3.29 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1357, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 570 mum -2.7 mm -2.41 m 3.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.74 mm -1.84 cm -2.4 m 665 keV 0 eV 2.05 cm 2.05 cm Target compt + 2 -9.33 mm -1.76 cm -2.4 m 0 eV 88 keV 3.11 mm 2.36 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1375, Parent ID = 1357 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.33 mm -1.76 cm -2.4 m 577 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.34 mm -1.76 cm -2.4 m 0 eV 577 keV 365 mum 365 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1374, Parent ID = 1357 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.74 mm -1.84 cm -2.4 m 2.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.77 mm -1.84 cm -2.4 m 1.85 MeV 132 keV 123 mum 123 mum Target eBrem + 2 -6.67 mm -1.86 cm -2.4 m 1.21 MeV 208 keV 250 mum 373 mum Target eBrem + 3 -6.6 mm -1.86 cm -2.4 m 0 eV 1.21 MeV 902 mum 1.27 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1377, Parent ID = 1374 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.67 mm -1.86 cm -2.4 m 427 keV 0 eV 0 fm 0 fm Target initStep + 1 -613 mum -1.84 cm -2.4 m 0 eV 88 keV 6.08 mm 6.08 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1378, Parent ID = 1377 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -613 mum -1.84 cm -2.4 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 -607 mum -1.84 cm -2.4 m 0 eV 339 keV 178 mum 178 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1376, Parent ID = 1374 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.77 mm -1.84 cm -2.4 m 932 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.27 mm -2.46 cm -2.4 m 932 keV 0 eV 7.53 mm 7.53 mm Target Transportation + 2 -96.6 cm -2.4 m -1.07 m 932 keV 0 eV 2.88 m 2.89 m Tracker Transportation + 3 -1.17 m -2.91 m -78.6 cm 932 keV 0 eV 61.9 cm 3.51 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1356, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 867 mum -2.03 mm -2.42 m 2.05 MeV 0 eV 0 fm 0 fm Target initStep + 1 169 mum -3.03 mm -2.41 m 0 eV 88 keV 1.66 mm 1.66 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1379, Parent ID = 1356 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 169 mum -3.03 mm -2.41 m 1.96 MeV 0 eV 0 fm 0 fm Target initStep + 1 272 mum -3.26 mm -2.41 m 1.08 MeV 565 keV 337 mum 337 mum Target eBrem + 2 230 mum -3.25 mm -2.41 m 0 eV 1.08 MeV 789 mum 1.13 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1380, Parent ID = 1379 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 272 mum -3.26 mm -2.41 m 316 keV 0 eV 0 fm 0 fm Target initStep + 1 -659 mum -3.4 mm -2.42 m 0 eV 88 keV 1.72 mm 1.72 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1381, Parent ID = 1380 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -659 mum -3.4 mm -2.42 m 228 keV 0 eV 0 fm 0 fm Target initStep + 1 -661 mum -3.4 mm -2.42 m 0 eV 228 keV 99.4 mum 99.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1355, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 628 mum -1.53 mm -2.42 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.81 mm -8.38 mm -2.41 m 453 keV 0 eV 1.26 cm 1.26 cm Target compt + 2 6.34 mm -1.73 cm -2.41 m 0 eV 88 keV 1.02 cm 2.28 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1383, Parent ID = 1355 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.34 mm -1.73 cm -2.41 m 365 keV 0 eV 0 fm 0 fm Target initStep + 1 6.34 mm -1.73 cm -2.41 m 0 eV 365 keV 197 mum 197 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1382, Parent ID = 1355 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.81 mm -8.38 mm -2.41 m 560 keV 0 eV 0 fm 0 fm Target initStep + 1 1.81 mm -8.38 mm -2.41 m 0 eV 560 keV 351 mum 351 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1354, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 359 mum -832 mum -2.42 m 21.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 779 mum -1.72 mm -2.41 m 0 eV 0 eV 6.06 mm 6.06 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1385, Parent ID = 1354 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 779 mum -1.72 mm -2.41 m 17.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 1 mm -1.99 mm -2.41 m 7.67 MeV 1.15 MeV 957 mum 957 mum Target eBrem + 2 3.54 mm -4.04 mm -2.41 m 2.9 MeV 3.98 MeV 3.36 mm 4.32 mm Target eBrem + 3 3.18 mm -5.03 mm -2.41 m 870 keV 2.03 MeV 2.19 mm 6.51 mm Target eBrem + 4 3.18 mm -5.08 mm -2.41 m 0 eV 870 keV 618 mum 7.12 mm Target eIoni + 5 3.18 mm -5.08 mm -2.41 m 0 eV 0 eV 0 fm 7.12 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1389, Parent ID = 1385 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.18 mm -5.08 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.59 mm -7.57 mm -2.42 m 0 eV 88 keV 1.39 cm 1.39 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1390, Parent ID = 1389 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.59 mm -7.57 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.59 mm -7.56 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1388, Parent ID = 1385 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.18 mm -5.08 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.2 cm -2.25 mm -2.4 m 511 keV 0 eV 1.58 cm 1.58 cm Target Transportation + 2 2.4 m 76.4 cm 1.05 m 511 keV 0 eV 4.27 m 4.28 m Tracker Transportation + 3 2.91 m 92.7 cm 1.79 m 511 keV 0 eV 91.1 cm 5.19 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1387, Parent ID = 1385 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.54 mm -4.04 mm -2.41 m 778 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.04 cm -3.13 mm -2.41 m 532 keV 0 eV 1.39 cm 1.39 cm Target compt + 2 -1.8 cm -5.81 mm -2.42 m 516 keV 0 eV 1.04 cm 2.43 cm Target compt + 3 -2.26 cm -5.99 mm -2.42 m 0 eV 88 keV 6.58 mm 3.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1393, Parent ID = 1387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.26 cm -5.99 mm -2.42 m 428 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.26 cm -5.99 mm -2.42 m 0 eV 428 keV 245 mum 245 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1392, Parent ID = 1387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.8 cm -5.81 mm -2.42 m 15.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.8 cm -5.81 mm -2.42 m 0 eV 15.7 keV 1.39 mum 1.39 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1391, Parent ID = 1387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.04 cm -3.13 mm -2.41 m 246 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.04 cm -3.13 mm -2.41 m 0 eV 246 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1386, Parent ID = 1385 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1 mm -1.99 mm -2.41 m 8.72 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.84 mm -2.8 mm -2.4 m 8.72 MeV 0 eV 1.35 cm 1.35 cm Target Transportation + 2 2.4 m -28.6 cm 1.68 m 8.72 MeV 0 eV 4.73 m 4.75 m Tracker Transportation + 3 2.91 m -34.6 cm 2.54 m 8.72 MeV 0 eV 1.01 m 5.76 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1384, Parent ID = 1354 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 779 mum -1.72 mm -2.41 m 2.57 MeV 0 eV 0 fm 0 fm Target initStep + 1 881 mum -1.77 mm -2.41 m 1.89 MeV 400 keV 324 mum 324 mum Target eBrem + 2 1.16 mm -1.3 mm -2.41 m 397 keV 1.04 MeV 954 mum 1.28 mm Target eBrem + 3 1.15 mm -1.31 mm -2.41 m 0 eV 397 keV 221 mum 1.5 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1395, Parent ID = 1384 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm -1.3 mm -2.41 m 451 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.22 mm 664 mum -2.41 m 0 eV 88 keV 6.71 mm 6.71 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1396, Parent ID = 1395 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.22 mm 664 mum -2.41 m 363 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.22 mm 659 mum -2.41 m 0 eV 363 keV 195 mum 195 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1394, Parent ID = 1384 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 881 mum -1.77 mm -2.41 m 286 keV 0 eV 0 fm 0 fm Target initStep + 1 -105 mum -1.91 mm -2.42 m 0 eV 88 keV 3.1 mm 3.1 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1397, Parent ID = 1394 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -105 mum -1.91 mm -2.42 m 198 keV 0 eV 0 fm 0 fm Target initStep + 1 -105 mum -1.91 mm -2.42 m 0 eV 198 keV 80.5 mum 80.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1353, Parent ID = 1352 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 310 mum -736 mum -2.42 m 301 keV 0 eV 0 fm 0 fm Target initStep + 1 324 mum -822 mum -2.42 m 0 eV 88 keV 470 mum 470 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1398, Parent ID = 1353 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 324 mum -822 mum -2.42 m 213 keV 0 eV 0 fm 0 fm Target initStep + 1 325 mum -826 mum -2.42 m 0 eV 213 keV 90.3 mum 90.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1351, Parent ID = 1328 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 310 mum -731 mum -2.42 m 59.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 279 mum -885 mum -2.42 m 56.3 MeV 1.97 MeV 1.4 mm 1.4 mm Target eBrem + 2 279 mum -884 mum -2.42 m 42.7 MeV 74.1 keV 57.4 mum 1.46 mm Target eBrem + 3 261 mum -876 mum -2.42 m 23.4 MeV 519 keV 322 mum 1.78 mm Target eBrem + 4 448 mum -1.07 mm -2.42 m 22.1 MeV 992 keV 816 mum 2.59 mm Target eBrem + 5 506 mum -1.06 mm -2.42 m 11.8 MeV 192 keV 187 mum 2.78 mm Target eBrem + 6 753 mum -999 mum -2.42 m 10.9 MeV 550 keV 482 mum 3.26 mm Target eBrem + 7 691 mum -1.58 mm -2.42 m 9.38 MeV 1.54 MeV 1.32 mm 4.59 mm Target eBrem + 8 131 mum -1.36 mm -2.41 m 7.56 MeV 1.18 MeV 806 mum 5.39 mm Target eBrem + 9 109 mum -1.36 mm -2.41 m 2.23 MeV 26.9 keV 25.2 mum 5.42 mm Target eBrem + 10 90.2 mum -1.25 mm -2.42 m 1.3 MeV 601 keV 592 mum 6.01 mm Target eBrem + 11 103 mum -1.28 mm -2.42 m 0 eV 1.3 MeV 972 mum 6.98 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1407, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 90.2 mum -1.25 mm -2.42 m 330 keV 0 eV 0 fm 0 fm Target initStep + 1 132 mum -1.37 mm -2.42 m 0 eV 88 keV 194 mum 194 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1408, Parent ID = 1407 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 132 mum -1.37 mm -2.42 m 242 keV 0 eV 0 fm 0 fm Target initStep + 1 132 mum -1.38 mm -2.42 m 0 eV 242 keV 109 mum 109 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1406, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 109 mum -1.36 mm -2.41 m 5.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.33 cm -3.19 mm -2.42 m 0 eV 0 eV 1.59 cm 1.59 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1410, Parent ID = 1406 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.33 cm -3.19 mm -2.42 m 3.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 cm -3.2 mm -2.42 m 0 eV 3.53 MeV 2.81 mm 2.81 mm Target eIoni + 2 -1.37 cm -3.2 mm -2.42 m 0 eV 0 eV 0 fm 2.81 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1412, Parent ID = 1410 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 cm -3.2 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.36 mm -5.97 mm -2.42 m 0 eV 88 keV 6.39 mm 6.39 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1413, Parent ID = 1412 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.36 mm -5.97 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.34 mm -5.97 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1411, Parent ID = 1410 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 cm -3.2 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.59 cm -2.07 mm -2.42 m 449 keV 0 eV 2.62 mm 2.62 mm Target compt + 2 -1.77 cm 498 mum -2.43 m 0 eV 88 keV 3.91 mm 6.53 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1415, Parent ID = 1411 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.77 cm 498 mum -2.43 m 361 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.77 cm 511 mum -2.43 m 0 eV 361 keV 194 mum 194 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1414, Parent ID = 1411 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.59 cm -2.07 mm -2.42 m 62.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.59 cm -2.07 mm -2.42 m 0 eV 62.2 keV 12.8 mum 12.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1409, Parent ID = 1406 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.33 cm -3.19 mm -2.42 m 752 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.33 cm -3.2 mm -2.42 m 0 eV 752 keV 511 mum 511 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1405, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 131 mum -1.36 mm -2.41 m 645 keV 0 eV 0 fm 0 fm Target initStep + 1 -327 mum -1.51 mm -2.42 m 644 keV 0 eV 507 mum 507 mum Target compt + 2 -3.83 mm -2.8 mm -2.42 m 638 keV 0 eV 3.97 mm 4.47 mm Target compt + 3 -6.18 mm -3.49 mm -2.42 m 0 eV 88 keV 2.71 mm 7.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1418, Parent ID = 1405 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.18 mm -3.49 mm -2.42 m 550 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.2 mm -3.49 mm -2.42 m 0 eV 550 keV 342 mum 342 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1417, Parent ID = 1405 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.83 mm -2.8 mm -2.42 m 6.24 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.83 mm -2.8 mm -2.42 m 0 eV 6.24 keV 349 nm 349 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1416, Parent ID = 1405 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -327 mum -1.51 mm -2.42 m 701 eV 0 eV 0 fm 0 fm Target initStep + 1 -327 mum -1.51 mm -2.42 m 0 eV 701 eV 15.2 nm 15.2 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1404, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 753 mum -999 mum -2.42 m 302 keV 0 eV 0 fm 0 fm Target initStep + 1 579 mum -959 mum -2.42 m 0 eV 88 keV 1.01 mm 1.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1419, Parent ID = 1404 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 579 mum -959 mum -2.42 m 214 keV 0 eV 0 fm 0 fm Target initStep + 1 580 mum -961 mum -2.42 m 0 eV 214 keV 90.9 mum 90.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1403, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 506 mum -1.06 mm -2.42 m 10.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.31 mm -1.75 mm -2.41 m 0 eV 0 eV 6.66 mm 6.66 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1421, Parent ID = 1403 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.31 mm -1.75 mm -2.41 m 6.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.42 mm -1.32 mm -2.41 m 4.14 MeV 2.16 MeV 1.24 mm 1.24 mm Target eBrem + 2 5.11 mm -359 mum -2.41 m 914 keV 2.74 MeV 2.53 mm 3.76 mm Target eBrem + 3 5.12 mm -345 mum -2.41 m 0 eV 914 keV 655 mum 4.42 mm Target eIoni + 4 5.12 mm -345 mum -2.41 m 0 eV 0 eV 0 fm 4.42 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1424, Parent ID = 1421 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.12 mm -345 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -119 mum -4.96 mm -2.4 m 0 eV 88 keV 1.16 cm 1.16 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1425, Parent ID = 1424 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -119 mum -4.96 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -121 mum -4.97 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1423, Parent ID = 1421 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.12 mm -345 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.59 mm 947 mum -2.41 m 312 keV 0 eV 3.24 mm 3.24 mm Target compt + 2 6.95 mm 1.1 mm -2.41 m 0 eV 88 keV 400 mum 3.64 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1427, Parent ID = 1423 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.95 mm 1.1 mm -2.41 m 224 keV 0 eV 0 fm 0 fm Target initStep + 1 6.95 mm 1.1 mm -2.41 m 0 eV 224 keV 97.3 mum 97.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1426, Parent ID = 1423 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.59 mm 947 mum -2.41 m 199 keV 0 eV 0 fm 0 fm Target initStep + 1 6.59 mm 948 mum -2.41 m 0 eV 199 keV 80.8 mum 80.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1422, Parent ID = 1421 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.11 mm -359 mum -2.41 m 482 keV 0 eV 0 fm 0 fm Target initStep + 1 5.12 mm -349 mum -2.41 m 0 eV 88 keV 161 mum 161 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1428, Parent ID = 1422 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.12 mm -349 mum -2.41 m 394 keV 0 eV 0 fm 0 fm Target initStep + 1 5.12 mm -344 mum -2.41 m 0 eV 394 keV 218 mum 218 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1420, Parent ID = 1403 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.31 mm -1.75 mm -2.41 m 2.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.94 mm -818 mum -2.41 m 357 keV 2.5 MeV 1.77 mm 1.77 mm Target eBrem + 2 3.93 mm -818 mum -2.41 m 0 eV 357 keV 191 mum 1.96 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1402, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 448 mum -1.07 mm -2.42 m 290 keV 0 eV 0 fm 0 fm Target initStep + 1 578 mum -1.06 mm -2.42 m 0 eV 88 keV 527 mum 527 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1429, Parent ID = 1402 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 578 mum -1.06 mm -2.42 m 202 keV 0 eV 0 fm 0 fm Target initStep + 1 579 mum -1.06 mm -2.42 m 0 eV 202 keV 83 mum 83 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1401, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 261 mum -876 mum -2.42 m 18.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.08 mm -3.73 mm -2.4 m 18.7 MeV 0 eV 1.78 cm 1.78 cm Target Transportation + 2 8.53 cm -13.4 cm -1.6 m 18.7 MeV 0 eV 81.5 cm 83.3 cm Tracker Transportation + 3 10.6 cm -16.7 cm -1.4 m 18.7 MeV 0 eV 20.4 cm 1.04 m Chamber Transportation + 4 16.9 cm -26.5 cm -80 cm 18.7 MeV 0 eV 61.1 cm 1.65 m Tracker Transportation + 5 18.9 cm -29.8 cm -60 cm 18.7 MeV 0 eV 20.4 cm 1.85 m Chamber Transportation + 6 25.2 cm -39.6 cm 0 fm 18.7 MeV 0 eV 61.1 cm 2.46 m Tracker Transportation + 7 27.3 cm -42.8 cm 20 cm 18.7 MeV 0 eV 20.4 cm 2.67 m Chamber Transportation + 8 33.5 cm -52.6 cm 80 cm 18.7 MeV 0 eV 61.1 cm 3.28 m Tracker Transportation + 9 35.6 cm -55.9 cm 1 m 18.7 MeV 0 eV 20.4 cm 3.48 m Chamber Transportation + 10 41.8 cm -65.7 cm 1.6 m 18.7 MeV 0 eV 61.1 cm 4.09 m Tracker Transportation + 11 43.9 cm -69 cm 1.8 m 18.7 MeV 0 eV 20.4 cm 4.3 m Chamber Transportation + 12 50.1 cm -78.8 cm 2.4 m 18.7 MeV 0 eV 61.1 cm 4.91 m Tracker Transportation + 13 55.4 cm -87.1 cm 2.91 m 18.7 MeV 0 eV 51.9 cm 5.43 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1400, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 279 mum -884 mum -2.42 m 13.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 551 mum -1.09 mm -2.4 m 13.6 MeV 0 eV 1.78 cm 1.78 cm Target Transportation + 2 1.28 cm -1.05 cm -1.6 m 13.6 MeV 0 eV 80 cm 81.8 cm Tracker Transportation + 3 1.58 cm -1.29 cm -1.4 m 13.6 MeV 0 eV 20 cm 1.02 m Chamber Transportation + 4 2.5 cm -1.99 cm -80 cm 13.6 MeV 0 eV 60 cm 1.62 m Tracker Transportation + 5 2.8 cm -2.23 cm -60 cm 13.6 MeV 0 eV 20 cm 1.82 m Chamber Transportation + 6 3.72 cm -2.94 cm 0 fm 13.6 MeV 0 eV 60 cm 2.42 m Tracker Transportation + 7 4.03 cm -3.17 cm 20 cm 13.6 MeV 0 eV 20 cm 2.62 m Chamber Transportation + 8 4.94 cm -3.88 cm 80 cm 13.6 MeV 0 eV 60 cm 3.22 m Tracker Transportation + 9 5.25 cm -4.11 cm 1 m 13.6 MeV 0 eV 20 cm 3.42 m Chamber Transportation + 10 6.17 cm -4.82 cm 1.6 m 13.6 MeV 0 eV 60 cm 4.02 m Tracker Transportation + 11 6.47 cm -5.06 cm 1.8 m 13.6 MeV 0 eV 20 cm 4.22 m Chamber Transportation + 12 7.39 cm -5.76 cm 2.4 m 13.6 MeV 0 eV 60 cm 4.82 m Tracker Transportation + 13 8.17 cm -6.36 cm 2.91 m 13.6 MeV 0 eV 51 cm 5.33 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1399, Parent ID = 1351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 279 mum -885 mum -2.42 m 1.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 312 mum -892 mum -2.42 m 0 eV 88 keV 2.65 mm 2.65 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1430, Parent ID = 1399 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 312 mum -892 mum -2.42 m 1 MeV 0 eV 0 fm 0 fm Target initStep + 1 301 mum -920 mum -2.42 m 0 eV 1 MeV 722 mum 722 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1327, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 207 mum -345 mum -2.42 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 818 mum -2.68 mm -2.4 m 702 keV 0 eV 1.85 cm 1.85 cm Target compt + 2 -840 mum -6.76 mm -2.4 m 702 keV 0 eV 6.11 mm 2.47 cm Target Transportation + 3 -97.3 cm -2.4 m 8.57 cm 702 keV 0 eV 3.58 m 3.61 m Tracker Transportation + 4 -1.18 m -2.91 m 61.5 cm 702 keV 0 eV 76.4 cm 4.37 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1431, Parent ID = 1327 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 818 mum -2.68 mm -2.4 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 822 mum -2.67 mm -2.4 m 0 eV 339 keV 178 mum 178 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1326, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 190 mum -243 mum -2.42 m 937 keV 0 eV 0 fm 0 fm Target initStep + 1 256 mum -442 mum -2.42 m 209 keV 0 eV 1.84 mm 1.84 mm Target compt + 2 -491 mum -1.04 mm -2.42 m 0 eV 88 keV 2.49 mm 4.33 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1433, Parent ID = 1326 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -491 mum -1.04 mm -2.42 m 121 keV 0 eV 0 fm 0 fm Target initStep + 1 -490 mum -1.04 mm -2.42 m 0 eV 121 keV 37.4 mum 37.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1432, Parent ID = 1326 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 256 mum -442 mum -2.42 m 729 keV 0 eV 0 fm 0 fm Target initStep + 1 259 mum -443 mum -2.42 m 0 eV 729 keV 491 mum 491 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1325, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 55.3 mum -172 mum -2.42 m 2.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.53 mm -574 mum -2.4 m 2.69 MeV 0 eV 2.49 cm 2.49 cm Target Transportation + 2 8.25 cm -1.35 cm -1.6 m 2.69 MeV 0 eV 80.4 cm 82.9 cm Tracker Transportation + 3 10.2 cm -1.68 cm -1.4 m 2.69 MeV 0 eV 20.1 cm 1.03 m Chamber Transportation + 4 16.2 cm -2.65 cm -80 cm 2.69 MeV 0 eV 60.3 cm 1.63 m Tracker Transportation + 5 18.2 cm -2.97 cm -60 cm 2.69 MeV 0 eV 20.1 cm 1.83 m Chamber Transportation + 6 24.2 cm -3.95 cm -0.114 fm 2.69 MeV 0 eV 60.3 cm 2.44 m Tracker Transportation + 7 26.2 cm -4.27 cm 20 cm 2.69 MeV 0 eV 20.1 cm 2.64 m Chamber Transportation + 8 32.2 cm -5.24 cm 80 cm 2.69 MeV 0 eV 60.3 cm 3.24 m Tracker Transportation + 9 34.2 cm -5.56 cm 1 m 2.69 MeV 0 eV 20.1 cm 3.44 m Chamber Transportation + 10 40.2 cm -6.54 cm 1.6 m 2.69 MeV 0 eV 60.3 cm 4.05 m Tracker Transportation + 11 42.2 cm -6.86 cm 1.8 m 2.69 MeV 0 eV 20.1 cm 4.25 m Chamber Transportation + 12 48.2 cm -7.83 cm 2.4 m 2.69 MeV 0 eV 60.3 cm 4.85 m Tracker Transportation + 13 53.3 cm -8.66 cm 2.91 m 2.69 MeV 0 eV 51.3 cm 5.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1324, Parent ID = 1323 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 36.8 mum -107 mum -2.43 m 20.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 85.7 mum -165 mum -2.42 m 0 eV 0 eV 927 mum 927 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1435, Parent ID = 1324 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 85.7 mum -165 mum -2.42 m 907 keV 0 eV 0 fm 0 fm Target initStep + 1 80.3 mum -144 mum -2.42 m 0 eV 907 keV 649 mum 649 mum Target eIoni + 2 80.3 mum -144 mum -2.42 m 0 eV 0 eV 0 fm 649 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1437, Parent ID = 1435 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 80.3 mum -144 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 641 mum -417 mum -2.42 m 242 keV 0 eV 623 mum 623 mum Target compt + 2 556 mum -543 mum -2.42 m 0 eV 88 keV 219 mum 842 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1439, Parent ID = 1437 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 556 mum -543 mum -2.42 m 154 keV 0 eV 0 fm 0 fm Target initStep + 1 554 mum -546 mum -2.42 m 0 eV 154 keV 54.8 mum 54.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1438, Parent ID = 1437 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 641 mum -417 mum -2.42 m 269 keV 0 eV 0 fm 0 fm Target initStep + 1 648 mum -418 mum -2.42 m 0 eV 269 keV 127 mum 127 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1436, Parent ID = 1435 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 80.3 mum -144 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.7 cm 8.16 mm -2.42 m 343 keV 0 eV 1.9 cm 1.9 cm Target compt + 2 -1.73 cm 9.86 mm -2.42 m 0 eV 88 keV 2.13 mm 2.11 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1441, Parent ID = 1436 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.73 cm 9.86 mm -2.42 m 255 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.73 cm 9.87 mm -2.42 m 0 eV 255 keV 117 mum 117 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1440, Parent ID = 1436 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.7 cm 8.16 mm -2.42 m 168 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.7 cm 8.16 mm -2.42 m 0 eV 168 keV 63 mum 63 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1434, Parent ID = 1324 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 85.7 mum -165 mum -2.42 m 18.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 92.3 mum -174 mum -2.42 m 13.3 MeV 71.4 keV 68.2 mum 68.2 mum Target eBrem + 2 86.4 mum -191 mum -2.42 m 11.5 MeV 283 keV 97.1 mum 165 mum Target eBrem + 3 120 mum 29.4 mum -2.42 m 4.56 MeV 1.34 MeV 1.01 mm 1.18 mm Target eBrem + 4 -359 mum -2.24 mm -2.42 m 906 keV 3.66 MeV 3.22 mm 4.39 mm Target eBrem + 5 -393 mum -2.24 mm -2.42 m 0 eV 906 keV 641 mum 5.03 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1444, Parent ID = 1434 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 120 mum 29.4 mum -2.42 m 5.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.1 mm -3.99 mm -2.42 m 0 eV 0 eV 1.16 cm 1.16 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1446, Parent ID = 1444 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.1 mm -3.99 mm -2.42 m 687 keV 0 eV 0 fm 0 fm Target initStep + 1 7.13 mm -3.99 mm -2.42 m 0 eV 687 keV 459 mum 459 mum Target eIoni + 2 7.13 mm -3.99 mm -2.42 m 0 eV 0 eV 0 fm 459 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1448, Parent ID = 1446 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.13 mm -3.99 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.99 mm -3.99 mm -2.42 m 331 keV 0 eV 762 mum 762 mum Target compt + 2 8.02 mm -4.53 mm -2.42 m 0 eV 88 keV 1.45 mm 2.21 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1450, Parent ID = 1448 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.02 mm -4.53 mm -2.42 m 243 keV 0 eV 0 fm 0 fm Target initStep + 1 8.02 mm -4.53 mm -2.42 m 0 eV 243 keV 109 mum 109 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1449, Parent ID = 1448 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.99 mm -3.99 mm -2.42 m 180 keV 0 eV 0 fm 0 fm Target initStep + 1 6.99 mm -3.99 mm -2.42 m 0 eV 180 keV 69.8 mum 69.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1447, Parent ID = 1446 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.13 mm -3.99 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 7.25 mm -4 mm -2.41 m 0 eV 88 keV 618 mum 618 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1451, Parent ID = 1447 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.25 mm -4 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 7.25 mm -4 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1445, Parent ID = 1444 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.1 mm -3.99 mm -2.42 m 3.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.14 mm -4.13 mm -2.42 m 2.68 MeV 409 keV 339 mum 339 mum Target eBrem + 2 7.21 mm -4.13 mm -2.41 m 1.99 MeV 127 keV 95.8 mum 435 mum Target eBrem + 3 7.25 mm -4.2 mm -2.41 m 0 eV 1.99 MeV 1.55 mm 1.99 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1453, Parent ID = 1445 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.21 mm -4.13 mm -2.41 m 556 keV 0 eV 0 fm 0 fm Target initStep + 1 8.37 mm -4.97 mm -2.41 m 0 eV 88 keV 2.39 mm 2.39 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1454, Parent ID = 1453 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.37 mm -4.97 mm -2.41 m 468 keV 0 eV 0 fm 0 fm Target initStep + 1 8.38 mm -4.98 mm -2.41 m 0 eV 468 keV 276 mum 276 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1452, Parent ID = 1445 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.14 mm -4.13 mm -2.42 m 810 keV 0 eV 0 fm 0 fm Target initStep + 1 7.25 mm -4.08 mm -2.41 m 445 keV 0 eV 169 mum 169 mum Target compt + 2 8.09 mm -5.23 mm -2.41 m 0 eV 88 keV 1.63 mm 1.8 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1456, Parent ID = 1452 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.09 mm -5.23 mm -2.41 m 357 keV 0 eV 0 fm 0 fm Target initStep + 1 8.1 mm -5.23 mm -2.41 m 0 eV 357 keV 191 mum 191 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1455, Parent ID = 1452 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.25 mm -4.08 mm -2.41 m 365 keV 0 eV 0 fm 0 fm Target initStep + 1 7.25 mm -4.07 mm -2.41 m 0 eV 365 keV 197 mum 197 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1443, Parent ID = 1434 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 86.4 mum -191 mum -2.42 m 1.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.07 mm -664 mum -2.42 m 276 keV 0 eV 9.43 mm 9.43 mm Target compt + 2 4.27 mm -1.38 mm -2.42 m 0 eV 88 keV 3.18 mm 1.26 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1458, Parent ID = 1443 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.27 mm -1.38 mm -2.42 m 188 keV 0 eV 0 fm 0 fm Target initStep + 1 4.27 mm -1.38 mm -2.42 m 0 eV 188 keV 74.8 mum 74.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1457, Parent ID = 1443 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.07 mm -664 mum -2.42 m 1.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.07 mm -665 mum -2.42 m 0 eV 1.24 MeV 928 mum 928 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1442, Parent ID = 1434 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 92.3 mum -174 mum -2.42 m 5.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm -1.73 mm -2.4 m 448 keV 0 eV 2.4 cm 2.4 cm Target compt + 2 -1.9 mm -2.5 cm -2.4 m 448 keV 0 eV 2.36 cm 4.76 cm Target Transportation + 3 -38.8 cm -2.91 m -2.7 m 448 keV 0 eV 2.93 m 2.97 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1459, Parent ID = 1442 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm -1.73 mm -2.4 m 4.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.24 mm -1.88 mm -2.4 m 1.42 MeV 2.77 MeV 2.2 mm 2.2 mm Target eBrem + 2 1.28 mm -1.88 mm -2.4 m 960 keV 85.5 keV 120 mum 2.32 mm Target eBrem + 3 1.25 mm -1.83 mm -2.4 m 0 eV 960 keV 687 mum 3.01 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1461, Parent ID = 1459 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.28 mm -1.88 mm -2.4 m 379 keV 0 eV 0 fm 0 fm Target initStep + 1 1.16 mm -1.75 mm -2.4 m 320 keV 0 eV 177 mum 177 mum Target compt + 2 1.12 mm -1.73 mm -2.4 m 0 eV 88 keV 70.5 mum 247 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1463, Parent ID = 1461 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.12 mm -1.73 mm -2.4 m 232 keV 0 eV 0 fm 0 fm Target initStep + 1 1.12 mm -1.73 mm -2.4 m 0 eV 232 keV 102 mum 102 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1462, Parent ID = 1461 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm -1.75 mm -2.4 m 59.2 keV 0 eV 0 fm 0 fm Target initStep + 1 1.16 mm -1.75 mm -2.4 m 0 eV 59.2 keV 11.8 mum 11.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1460, Parent ID = 1459 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm -1.88 mm -2.4 m 611 keV 0 eV 0 fm 0 fm Target initStep + 1 1.46 mm 4.05 mm -2.4 m 0 eV 88 keV 5.97 mm 5.97 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1464, Parent ID = 1460 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.46 mm 4.05 mm -2.4 m 523 keV 0 eV 0 fm 0 fm Target initStep + 1 1.46 mm 4.06 mm -2.4 m 0 eV 523 keV 321 mum 321 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1322, Parent ID = 1233 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 51.3 mum -107 mum -2.43 m 61.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -216 mum -56.6 mum -2.42 m 57.1 MeV 3.84 MeV 2.51 mm 2.51 mm Target eBrem + 2 -155 mum -37.4 mum -2.42 m 15.3 MeV 2.34 MeV 938 mum 3.45 mm Target eBrem + 3 -199 mum -17.5 mum -2.42 m 14.9 MeV 447 keV 360 mum 3.81 mm Target eBrem + 4 -154 mum -2.55 mum -2.42 m 13.8 MeV 400 keV 278 mum 4.09 mm Target eBrem + 5 21.6 mum -261 mum -2.42 m 12.4 MeV 990 keV 811 mum 4.9 mm Target eBrem + 6 153 mum -365 mum -2.42 m 11.1 MeV 224 keV 212 mum 5.11 mm Target eBrem + 7 360 mum -489 mum -2.42 m 9.22 MeV 1.12 MeV 389 mum 5.5 mm Target eBrem + 8 1.08 mm -1.84 mm -2.42 m 5.97 MeV 2.91 MeV 2.25 mm 7.75 mm Target eBrem + 9 -344 mum -2.01 mm -2.42 m 2.67 MeV 1.82 MeV 1.69 mm 9.44 mm Target eBrem + 10 -954 mum -1.82 mm -2.42 m 928 keV 1.4 MeV 1.53 mm 1.1 cm Target eBrem + 11 -954 mum -1.77 mm -2.42 m 0 eV 928 keV 659 mum 1.16 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1473, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -954 mum -1.82 mm -2.42 m 334 keV 0 eV 0 fm 0 fm Target initStep + 1 397 mum 5.75 mm -2.42 m 0 eV 88 keV 7.7 mm 7.7 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1474, Parent ID = 1473 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 397 mum 5.75 mm -2.42 m 246 keV 0 eV 0 fm 0 fm Target initStep + 1 399 mum 5.75 mm -2.42 m 0 eV 246 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1472, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -344 mum -2.01 mm -2.42 m 1.49 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.69 mm -2.5 cm -2.43 m 1.49 MeV 0 eV 2.57 cm 2.57 cm Target Transportation + 2 -68 cm -1.67 m -2.91 m 1.49 MeV 0 eV 1.84 m 1.87 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1471, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.08 mm -1.84 mm -2.42 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 995 mum -1.73 mm -2.42 m 0 eV 88 keV 187 mum 187 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1475, Parent ID = 1471 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 995 mum -1.73 mm -2.42 m 251 keV 0 eV 0 fm 0 fm Target initStep + 1 991 mum -1.72 mm -2.42 m 0 eV 251 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1470, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 360 mum -489 mum -2.42 m 771 keV 0 eV 0 fm 0 fm Target initStep + 1 1.64 mm 43.7 mum -2.42 m 235 keV 0 eV 1.56 mm 1.56 mm Target compt + 2 1.35 mm -1.22 mm -2.42 m 159 keV 0 eV 1.3 mm 2.86 mm Target compt + 3 1.36 mm -1.22 mm -2.42 m 0 eV 88 keV 27.9 mum 2.88 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1478, Parent ID = 1470 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.36 mm -1.22 mm -2.42 m 71.3 keV 0 eV 0 fm 0 fm Target initStep + 1 1.36 mm -1.22 mm -2.42 m 0 eV 71.3 keV 16 mum 16 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1477, Parent ID = 1470 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.35 mm -1.22 mm -2.42 m 75.9 keV 0 eV 0 fm 0 fm Target initStep + 1 1.35 mm -1.22 mm -2.42 m 0 eV 75.9 keV 17.7 mum 17.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1476, Parent ID = 1470 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.64 mm 43.7 mum -2.42 m 536 keV 0 eV 0 fm 0 fm Target initStep + 1 1.66 mm 56.1 mum -2.42 m 0 eV 536 keV 331 mum 331 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1469, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 153 mum -365 mum -2.42 m 1.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.76 mm -761 mum -2.42 m 0 eV 88 keV 4.23 mm 4.23 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1479, Parent ID = 1469 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.76 mm -761 mum -2.42 m 989 keV 0 eV 0 fm 0 fm Target initStep + 1 3.81 mm -896 mum -2.42 m 777 keV 212 keV 245 mum 245 mum Target eBrem + 2 3.8 mm -908 mum -2.42 m 0 eV 777 keV 531 mum 776 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1468, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 21.6 mum -261 mum -2.42 m 408 keV 0 eV 0 fm 0 fm Target initStep + 1 253 mum -394 mum -2.42 m 280 keV 0 eV 381 mum 381 mum Target compt + 2 157 mum -566 mum -2.42 m 0 eV 88 keV 244 mum 626 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1481, Parent ID = 1468 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 157 mum -566 mum -2.42 m 192 keV 0 eV 0 fm 0 fm Target initStep + 1 154 mum -571 mum -2.42 m 0 eV 192 keV 76.9 mum 76.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1480, Parent ID = 1468 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 253 mum -394 mum -2.42 m 128 keV 0 eV 0 fm 0 fm Target initStep + 1 256 mum -394 mum -2.42 m 0 eV 128 keV 41.1 mum 41.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1467, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -154 mum -2.55 mum -2.42 m 668 keV 0 eV 0 fm 0 fm Target initStep + 1 5.32 mm -620 mum -2.41 m 0 eV 88 keV 1.73 cm 1.73 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1482, Parent ID = 1467 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.32 mm -620 mum -2.41 m 580 keV 0 eV 0 fm 0 fm Target initStep + 1 5.31 mm -628 mum -2.41 m 0 eV 580 keV 367 mum 367 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1466, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -155 mum -37.4 mum -2.42 m 39.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.9 mm -2.18 mm -2.4 m 39.5 MeV 0 eV 2.35 cm 2.35 cm Target Transportation + 2 7.23 cm -7.57 cm -1.6 m 39.5 MeV 0 eV 80.6 cm 83 cm Tracker Transportation + 3 8.99 cm -9.41 cm -1.4 m 39.5 MeV 0 eV 20.2 cm 1.03 m Chamber Transportation + 4 14.3 cm -14.9 cm -80 cm 39.5 MeV 0 eV 60.5 cm 1.64 m Tracker Transportation + 5 16 cm -16.8 cm -60 cm 39.5 MeV 0 eV 20.2 cm 1.84 m Chamber Transportation + 6 21.3 cm -22.3 cm 0.114 fm 39.5 MeV 0 eV 60.5 cm 2.44 m Tracker Transportation + 7 23.1 cm -24.1 cm 20 cm 39.5 MeV 0 eV 20.2 cm 2.64 m Chamber Transportation + 8 28.3 cm -29.6 cm 80 cm 39.5 MeV 0 eV 60.5 cm 3.25 m Tracker Transportation + 9 30.1 cm -31.5 cm 1 m 39.5 MeV 0 eV 20.2 cm 3.45 m Chamber Transportation + 10 35.4 cm -37 cm 1.6 m 39.5 MeV 0 eV 60.5 cm 4.06 m Tracker Transportation + 11 37.1 cm -38.8 cm 1.8 m 39.5 MeV 0 eV 20.2 cm 4.26 m Chamber Transportation + 12 42.4 cm -44.3 cm 2.4 m 39.5 MeV 0 eV 60.5 cm 4.86 m Tracker Transportation + 13 46.9 cm -49 cm 2.91 m 39.5 MeV 0 eV 51.4 cm 5.38 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1465, Parent ID = 1322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -216 mum -56.6 mum -2.42 m 604 keV 0 eV 0 fm 0 fm Target initStep + 1 -259 mum 102 mum -2.42 m 0 eV 88 keV 3.28 mm 3.28 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1483, Parent ID = 1465 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -259 mum 102 mum -2.42 m 516 keV 0 eV 0 fm 0 fm Target initStep + 1 -246 mum 113 mum -2.42 m 0 eV 516 keV 315 mum 315 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1232, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -69.2 mum -42.6 mum -2.44 m 613 keV 0 eV 0 fm 0 fm Target initStep + 1 -16.8 mum -81.7 mum -2.43 m 349 keV 0 eV 4.2 mm 4.2 mm Target compt + 2 209 mum 5.49 mm -2.43 m 0 eV 88 keV 6.02 mm 1.02 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1485, Parent ID = 1232 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 209 mum 5.49 mm -2.43 m 261 keV 0 eV 0 fm 0 fm Target initStep + 1 215 mum 5.48 mm -2.43 m 0 eV 261 keV 121 mum 121 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1484, Parent ID = 1232 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -16.8 mum -81.7 mum -2.43 m 264 keV 0 eV 0 fm 0 fm Target initStep + 1 -16.9 mum -86.3 mum -2.43 m 0 eV 264 keV 124 mum 124 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1231, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -66.7 mum -28.2 mum -2.44 m 147 MeV 0 eV 0 fm 0 fm Target initStep + 1 -107 mum -52.6 mum -2.43 m 0 eV 0 eV 4.27 mm 4.27 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1487, Parent ID = 1231 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -107 mum -52.6 mum -2.43 m 116 MeV 0 eV 0 fm 0 fm Target initStep + 1 -80.9 mum -63.6 mum -2.43 m 95.4 MeV 992 keV 793 mum 793 mum Target eBrem + 2 -212 mum -198 mum -2.43 m 79.6 MeV 2.05 MeV 1.68 mm 2.47 mm Target eBrem + 3 -432 mum -127 mum -2.43 m 31.7 MeV 1.57 MeV 1.41 mm 3.88 mm Target eBrem + 4 -503 mum 127 mum -2.43 m 28.3 MeV 2.52 MeV 1.87 mm 5.75 mm Target eBrem + 5 -889 mum 225 mum -2.43 m 26.1 MeV 1.48 MeV 1.31 mm 7.06 mm Target eBrem + 6 -1.19 mm 1 mm -2.42 m 18.9 MeV 3.1 MeV 2.43 mm 9.49 mm Target eBrem + 7 -1.56 mm 2 mm -2.42 m 16.6 MeV 1.87 MeV 1.61 mm 1.11 cm Target eBrem + 8 -3.27 mm 3.33 mm -2.42 m 9.99 MeV 6.57 MeV 2.63 mm 1.37 cm Target eBrem + 9 -2.38 mm 4.95 mm -2.42 m 4.01 MeV 2.33 MeV 2.14 mm 1.59 cm Target eBrem + 10 -2.7 mm 5.38 mm -2.42 m 2.84 MeV 702 keV 670 mum 1.65 cm Target eBrem + 11 -2.51 mm 5.53 mm -2.42 m 2.49 MeV 352 keV 363 mum 1.69 cm Target eBrem + 12 -1.72 mm 5.91 mm -2.42 m 688 keV 1.8 MeV 1.51 mm 1.84 cm Target eBrem + 13 -1.79 mm 6.08 mm -2.42 m 0 eV 362 keV 338 mum 1.88 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1498, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.79 mm 6.08 mm -2.42 m 503 keV 0 eV 0 fm 0 fm Target initStep + 1 5.5 mm 5.2 mm -2.41 m 0 eV 88 keV 8.2 mm 8.2 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1499, Parent ID = 1498 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.5 mm 5.2 mm -2.41 m 415 keV 0 eV 0 fm 0 fm Target initStep + 1 5.51 mm 5.19 mm -2.41 m 0 eV 415 keV 234 mum 234 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1497, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.79 mm 6.08 mm -2.42 m 846 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.25 cm 1.28 cm -2.41 m 669 keV 0 eV 1.34 cm 1.34 cm Target compt + 2 -1.71 cm 1.29 cm -2.41 m 636 keV 0 eV 5.84 mm 1.92 cm Target compt + 3 -1.97 cm 1.24 cm -2.41 m 295 keV 0 eV 4.2 mm 2.34 cm Target compt + 4 -2.03 cm 1.29 cm -2.41 m 0 eV 88 keV 844 mum 2.43 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1503, Parent ID = 1497 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.03 cm 1.29 cm -2.41 m 207 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.03 cm 1.29 cm -2.41 m 0 eV 207 keV 86.3 mum 86.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1502, Parent ID = 1497 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.97 cm 1.24 cm -2.41 m 341 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.97 cm 1.24 cm -2.41 m 0 eV 341 keV 179 mum 179 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1501, Parent ID = 1497 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.71 cm 1.29 cm -2.41 m 33 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.71 cm 1.29 cm -2.41 m 0 eV 33 keV 4.55 mum 4.55 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1500, Parent ID = 1497 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.25 cm 1.28 cm -2.41 m 177 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.25 cm 1.28 cm -2.41 m 0 eV 177 keV 67.7 mum 67.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1496, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.7 mm 5.38 mm -2.42 m 466 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm 6.78 mm -2.42 m 282 keV 0 eV 2.5 mm 2.5 mm Target compt + 2 -1.5 mm 7.9 mm -2.42 m 0 eV 88 keV 1.18 mm 3.68 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1505, Parent ID = 1496 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.5 mm 7.9 mm -2.42 m 194 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.5 mm 7.91 mm -2.42 m 0 eV 194 keV 78.2 mum 78.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1504, Parent ID = 1496 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 mm 6.78 mm -2.42 m 184 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm 6.78 mm -2.42 m 0 eV 184 keV 72.3 mum 72.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1495, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.38 mm 4.95 mm -2.42 m 3.65 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.94 mm 2.35 cm -2.41 m 0 eV 0 eV 2.23 cm 2.23 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1507, Parent ID = 1495 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.94 mm 2.35 cm -2.41 m 2.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.96 mm 2.37 cm -2.41 m 0 eV 2.03 MeV 1.61 mm 1.61 mm Target eIoni + 2 -2.96 mm 2.37 cm -2.41 m 0 eV 0 eV 0 fm 1.61 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1509, Parent ID = 1507 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.96 mm 2.37 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -975 mum 2.44 cm -2.4 m 335 keV 0 eV 3.51 mm 3.51 mm Target compt + 2 -810 mum 2.49 cm -2.4 m 0 eV 88 keV 550 mum 4.06 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1511, Parent ID = 1509 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -810 mum 2.49 cm -2.4 m 247 keV 0 eV 0 fm 0 fm Target initStep + 1 -808 mum 2.49 cm -2.4 m 0 eV 247 keV 112 mum 112 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1510, Parent ID = 1509 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -975 mum 2.44 cm -2.4 m 176 keV 0 eV 0 fm 0 fm Target initStep + 1 -973 mum 2.44 cm -2.4 m 0 eV 176 keV 67.4 mum 67.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1508, Parent ID = 1507 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.96 mm 2.37 cm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.45 mm 2.32 cm -2.41 m 0 eV 88 keV 2.64 mm 2.64 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1512, Parent ID = 1508 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.45 mm 2.32 cm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.46 mm 2.31 cm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1506, Parent ID = 1495 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.94 mm 2.35 cm -2.41 m 595 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.93 mm 2.35 cm -2.41 m 252 keV 34.4 keV 37.4 mum 37.4 mum Target eBrem + 2 -2.93 mm 2.35 cm -2.41 m 0 eV 252 keV 116 mum 153 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1513, Parent ID = 1506 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.93 mm 2.35 cm -2.41 m 308 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.23 mm 2.4 cm -2.41 m 0 eV 88 keV 2.17 mm 2.17 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1514, Parent ID = 1513 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.23 mm 2.4 cm -2.41 m 220 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.23 mm 2.4 cm -2.41 m 0 eV 220 keV 94.7 mum 94.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1494, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.56 mm 2 mm -2.42 m 500 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.5 mm 9.75 mm -2.42 m 430 keV 0 eV 9.43 mm 9.43 mm Target compt + 2 -6.08 mm 1.08 cm -2.42 m 0 eV 88 keV 2.17 mm 1.16 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1516, Parent ID = 1494 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.08 mm 1.08 cm -2.42 m 342 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.08 mm 1.08 cm -2.42 m 0 eV 342 keV 179 mum 179 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1515, Parent ID = 1494 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.5 mm 9.75 mm -2.42 m 70.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.5 mm 9.75 mm -2.42 m 0 eV 70.2 keV 15.7 mum 15.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1493, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.19 mm 1 mm -2.42 m 4.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 -719 mum 1.68 cm -2.41 m 866 keV 0 eV 2.12 cm 2.12 cm Target compt + 2 2.01 mm 1.63 cm -2.4 m 814 keV 0 eV 5.84 mm 2.7 cm Target compt + 3 3.37 mm 1.49 cm -2.4 m 814 keV 0 eV 4.18 mm 3.12 cm Target Transportation + 4 58.4 cm -55.6 cm -80 cm 814 keV 0 eV 1.8 m 1.83 m Tracker Transportation + 5 65.6 cm -62.7 cm -60 cm 814 keV 0 eV 22.4 cm 2.05 m Chamber Transportation + 6 87.4 cm -84.1 cm -0.114 fm 814 keV 0 eV 67.3 cm 2.72 m Tracker Transportation + 7 94.6 cm -91.3 cm 20 cm 814 keV 0 eV 22.4 cm 2.95 m Chamber Transportation + 8 1.16 m -1.13 m 80 cm 814 keV 0 eV 67.3 cm 3.62 m Tracker Transportation + 9 1.24 m -1.2 m 1 m 814 keV 0 eV 22.4 cm 3.85 m Chamber Transportation + 10 1.45 m -1.41 m 1.6 m 814 keV 0 eV 67.3 cm 4.52 m Tracker Transportation + 11 1.53 m -1.48 m 1.8 m 814 keV 0 eV 22.4 cm 4.74 m Chamber Transportation + 12 1.74 m -1.7 m 2.4 m 814 keV 0 eV 67.3 cm 5.42 m Tracker Transportation + 13 1.93 m -1.88 m 2.91 m 814 keV 0 eV 57.2 cm 5.99 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1518, Parent ID = 1493 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.01 mm 1.63 cm -2.4 m 52 keV 0 eV 0 fm 0 fm Target initStep + 1 2.01 mm 1.63 cm -2.4 m 0 eV 52 keV 9.57 mum 9.57 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1517, Parent ID = 1493 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -719 mum 1.68 cm -2.41 m 3.22 MeV 0 eV 0 fm 0 fm Target initStep + 1 -748 mum 1.7 cm -2.41 m 0 eV 3.22 MeV 2.54 mm 2.54 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1492, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -889 mum 225 mum -2.43 m 656 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.77 mm 558 mum -2.42 m 0 eV 88 keV 4.49 mm 4.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1519, Parent ID = 1492 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.77 mm 558 mum -2.42 m 568 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.78 mm 551 mum -2.42 m 0 eV 568 keV 357 mum 357 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1491, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -503 mum 127 mum -2.43 m 950 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.9 mm 401 mum -2.4 m 939 keV 0 eV 2.37 cm 2.37 cm Target compt + 2 -4.09 mm 195 mum -2.4 m 939 keV 0 eV 2.76 mm 2.65 cm Target Transportation + 3 -6.08 cm -5.99 cm -1.6 m 939 keV 0 eV 80.4 cm 83.1 cm Tracker Transportation + 4 -7.5 cm -7.5 cm -1.4 m 939 keV 0 eV 20.1 cm 1.03 m Chamber Transportation + 5 -11.7 cm -12 cm -80 cm 939 keV 0 eV 60.3 cm 1.64 m Tracker Transportation + 6 -13.2 cm -13.5 cm -60 cm 939 keV 0 eV 20.1 cm 1.84 m Chamber Transportation + 7 -17.4 cm -18 cm 0 fm 939 keV 0 eV 60.3 cm 2.44 m Tracker Transportation + 8 -18.8 cm -19.5 cm 20 cm 939 keV 0 eV 20.1 cm 2.64 m Chamber Transportation + 9 -23.1 cm -24 cm 80 cm 939 keV 0 eV 60.3 cm 3.24 m Tracker Transportation + 10 -24.5 cm -25.5 cm 1 m 939 keV 0 eV 20.1 cm 3.44 m Chamber Transportation + 11 -28.8 cm -30 cm 1.6 m 939 keV 0 eV 60.3 cm 4.05 m Tracker Transportation + 12 -30.2 cm -31.5 cm 1.8 m 939 keV 0 eV 20.1 cm 4.25 m Chamber Transportation + 13 -34.4 cm -36.1 cm 2.4 m 939 keV 0 eV 60.3 cm 4.85 m Tracker Transportation + 14 -38 cm -39.9 cm 2.91 m 939 keV 0 eV 51.3 cm 5.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1520, Parent ID = 1491 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.9 mm 401 mum -2.4 m 11.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.9 mm 401 mum -2.4 m 0 eV 11.1 keV 822 nm 822 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1490, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -432 mum -127 mum -2.43 m 46.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -946 mum -154 mum -2.43 m 0 eV 0 eV 2.94 mm 2.94 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1522, Parent ID = 1490 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -946 mum -154 mum -2.43 m 25.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -998 mum -600 nm -2.42 m 21.3 MeV 1.25 MeV 1.18 mm 1.18 mm Target eBrem + 2 -1.29 mm -64.2 mum -2.42 m 8.24 MeV 777 keV 658 mum 1.83 mm Target eBrem + 3 -1.28 mm -163 mum -2.42 m 5.9 MeV 515 keV 279 mum 2.11 mm Target eBrem + 4 -1.14 mm -679 mum -2.42 m 3.52 MeV 1.15 MeV 1 mm 3.11 mm Target eBrem + 5 -1.34 mm -459 mum -2.42 m 0 eV 3.52 MeV 2.81 mm 5.92 mm Target eIoni + 6 -1.34 mm -459 mum -2.42 m 0 eV 0 eV 0 fm 5.92 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1528, Parent ID = 1522 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.34 mm -459 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -517 mum -892 mum -2.42 m 0 eV 88 keV 1.56 mm 1.56 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1529, Parent ID = 1528 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -517 mum -892 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -511 mum -884 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1527, Parent ID = 1522 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.34 mm -459 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.02 mm 421 mum -2.42 m 319 keV 0 eV 3.16 mm 3.16 mm Target compt + 2 -2.26 mm 3.52 mm -2.42 m 0 eV 88 keV 3.38 mm 6.54 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1531, Parent ID = 1527 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.26 mm 3.52 mm -2.42 m 231 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.25 mm 3.52 mm -2.42 m 0 eV 231 keV 102 mum 102 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1530, Parent ID = 1527 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.02 mm 421 mum -2.42 m 192 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.02 mm 420 mum -2.42 m 0 eV 192 keV 76.7 mum 76.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1526, Parent ID = 1522 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.14 mm -679 mum -2.42 m 1.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.93 mm 9.46 mm -2.45 m 1.15 MeV 0 eV 2.63 cm 2.63 cm Target compt + 2 -1.31 cm 1.17 cm -2.45 m 606 keV 0 eV 5.72 mm 3.21 cm Target compt + 3 -1.36 cm 1.13 cm -2.45 m 606 keV 0 eV 812 mum 3.29 cm Target Transportation + 4 -55.6 cm -37.3 cm -2.91 m 606 keV 0 eV 80.8 cm 84.1 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1533, Parent ID = 1526 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.31 cm 1.17 cm -2.45 m 543 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.31 cm 1.17 cm -2.45 m 0 eV 543 keV 337 mum 337 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1532, Parent ID = 1526 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.93 mm 9.46 mm -2.45 m 86.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.93 mm 9.46 mm -2.45 m 0 eV 86.3 keV 21.8 mum 21.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1525, Parent ID = 1522 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.28 mm -163 mum -2.42 m 1.83 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.3 mm -7.02 mm -2.42 m 827 keV 0 eV 1.27 cm 1.27 cm Target compt + 2 -7.26 mm -1.48 cm -2.4 m 548 keV 0 eV 1.38 cm 2.65 cm Target compt + 3 -6.41 mm -1.94 cm -2.4 m 520 keV 0 eV 4.74 mm 3.13 cm Target compt + 4 -5.26 mm -2.5 cm -2.41 m 520 keV 0 eV 5.79 mm 3.7 cm Target Transportation + 5 56 cm -2.78 m -2.91 m 520 keV 0 eV 2.85 m 2.89 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1536, Parent ID = 1525 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.41 mm -1.94 cm -2.4 m 27.6 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.41 mm -1.94 cm -2.4 m 0 eV 27.6 keV 3.43 mum 3.43 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1535, Parent ID = 1525 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.26 mm -1.48 cm -2.4 m 279 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.26 mm -1.48 cm -2.4 m 0 eV 279 keV 134 mum 134 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1534, Parent ID = 1525 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.3 mm -7.02 mm -2.42 m 1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.28 mm -7.25 mm -2.42 m 60.6 keV 941 keV 693 mum 693 mum Target eBrem + 2 -9.28 mm -7.25 mm -2.42 m 0 eV 60.6 keV 12.3 mum 705 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1524, Parent ID = 1522 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.29 mm -64.2 mum -2.42 m 12.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.68 mm -6.74 mm -2.4 m 12.3 MeV 0 eV 2.47 cm 2.47 cm Target Transportation + 2 -15.6 cm -23.5 cm -1.6 m 12.3 MeV 0 eV 84.5 cm 87 cm Tracker Transportation + 3 -15.9 cm -24 cm -1.58 m 12.3 MeV 0 eV 1.93 cm 88.9 cm Chamber Transportation + 4 -30.6 cm -46.3 cm -80 cm 12.3 MeV 0 eV 82.6 cm 1.72 m Tracker Transportation + 5 -34.3 cm -52 cm -60 cm 12.3 MeV 0 eV 21.1 cm 1.93 m Chamber Transportation + 6 -45.6 cm -69.1 cm 0 fm 12.3 MeV 0 eV 63.4 cm 2.56 m Tracker Transportation + 7 -49.3 cm -74.8 cm 20 cm 12.3 MeV 0 eV 21.1 cm 2.77 m Chamber Transportation + 8 -60.6 cm -91.9 cm 80 cm 12.3 MeV 0 eV 63.4 cm 3.41 m Tracker Transportation + 9 -64.3 cm -97.6 cm 1 m 12.3 MeV 0 eV 21.1 cm 3.62 m Chamber Transportation + 10 -75.6 cm -1.15 m 1.6 m 12.3 MeV 0 eV 63.4 cm 4.25 m Tracker Transportation + 11 -79.3 cm -1.2 m 1.8 m 12.3 MeV 0 eV 21.1 cm 4.46 m Chamber Transportation + 12 -90.6 cm -1.38 m 2.4 m 12.3 MeV 0 eV 63.4 cm 5.1 m Tracker Transportation + 13 -1 m -1.52 m 2.91 m 12.3 MeV 0 eV 53.9 cm 5.64 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1523, Parent ID = 1522 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -998 mum -600 nm -2.42 m 2.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.89 mm -1.06 mm -2.42 m 1.89 MeV 0 eV 6.14 mm 6.14 mm Target compt + 2 -3.84 mm -650 mum -2.42 m 0 eV 88 keV 1.94 mm 8.08 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1538, Parent ID = 1523 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.84 mm -650 mum -2.42 m 1.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.46 mm -619 mum -2.42 m 443 keV 1.36 MeV 1.34 mm 1.34 mm Target eBrem + 2 -3.46 mm -625 mum -2.42 m 0 eV 443 keV 257 mum 1.59 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1537, Parent ID = 1523 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.89 mm -1.06 mm -2.42 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.89 mm -1.1 mm -2.42 m 0 eV 1.02 MeV 737 mum 737 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1521, Parent ID = 1490 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -946 mum -154 mum -2.43 m 19.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -961 mum -159 mum -2.42 m 18.3 MeV 203 keV 160 mum 160 mum Target eBrem + 2 -894 mum -95.2 mum -2.42 m 15.9 MeV 723 keV 682 mum 843 mum Target eBrem + 3 -988 mum -140 mum -2.42 m 14.3 MeV 697 keV 538 mum 1.38 mm Target eBrem + 4 -750 mum -533 mum -2.42 m 12.8 MeV 1.47 MeV 1.12 mm 2.51 mm Target eBrem + 5 -707 mum -541 mum -2.42 m 10.1 MeV 112 keV 128 mum 2.63 mm Target eBrem + 6 -1.35 mm -1.66 mm -2.42 m 4.47 MeV 2.2 MeV 2.06 mm 4.7 mm Target eBrem + 7 566 mum -760 mum -2.42 m 108 keV 3.11 MeV 3.02 mm 7.71 mm Target eBrem + 8 567 mum -759 mum -2.42 m 0 eV 108 keV 31.3 mum 7.74 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1544, Parent ID = 1521 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 566 mum -760 mum -2.42 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.31 cm 5.2 mm -2.42 m 616 keV 0 eV 1.39 cm 1.39 cm Target compt + 2 1.78 cm 6.79 mm -2.43 m 0 eV 88 keV 9.41 mm 2.33 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1546, Parent ID = 1544 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.78 cm 6.79 mm -2.43 m 528 keV 0 eV 0 fm 0 fm Target initStep + 1 1.79 cm 6.81 mm -2.43 m 0 eV 528 keV 325 mum 325 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1545, Parent ID = 1544 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 cm 5.2 mm -2.42 m 638 keV 0 eV 0 fm 0 fm Target initStep + 1 1.31 cm 5.22 mm -2.42 m 0 eV 638 keV 415 mum 415 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1543, Parent ID = 1521 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.35 mm -1.66 mm -2.42 m 3.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 96.7 mum -3.19 mm -2.42 m 1.7 MeV 0 eV 2.15 mm 2.15 mm Target compt + 2 1.22 mm -6.33 mm -2.42 m 450 keV 0 eV 4.01 mm 6.16 mm Target compt + 3 259 mum -6.01 mm -2.43 m 184 keV 0 eV 1.8 mm 7.95 mm Target compt + 4 476 mum -5.54 mm -2.43 m 0 eV 88 keV 758 mum 8.71 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1550, Parent ID = 1543 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 476 mum -5.54 mm -2.43 m 95.6 keV 0 eV 0 fm 0 fm Target initStep + 1 475 mum -5.54 mm -2.43 m 0 eV 95.6 keV 25.7 mum 25.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1549, Parent ID = 1543 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 259 mum -6.01 mm -2.43 m 266 keV 0 eV 0 fm 0 fm Target initStep + 1 254 mum -6.01 mm -2.43 m 0 eV 266 keV 125 mum 125 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1548, Parent ID = 1543 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm -6.33 mm -2.42 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.53 mm -6.28 mm -2.42 m 51.6 keV 1.2 MeV 891 mum 891 mum Target eBrem + 2 1.53 mm -6.28 mm -2.42 m 0 eV 51.6 keV 9.44 mum 900 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1547, Parent ID = 1543 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 96.7 mum -3.19 mm -2.42 m 1.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 91.6 mum -3.4 mm -2.42 m 1.03 MeV 326 keV 326 mum 326 mum Target eBrem + 2 57.7 mum -3.38 mm -2.42 m 0 eV 1.03 MeV 742 mum 1.07 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1551, Parent ID = 1547 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 91.6 mum -3.4 mm -2.42 m 336 keV 0 eV 0 fm 0 fm Target initStep + 1 9.5 mum -3.38 mm -2.42 m 0 eV 88 keV 123 mum 123 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1552, Parent ID = 1551 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.5 mum -3.38 mm -2.42 m 248 keV 0 eV 0 fm 0 fm Target initStep + 1 2.39 mum -3.38 mm -2.42 m 0 eV 248 keV 112 mum 112 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1542, Parent ID = 1521 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -707 mum -541 mum -2.42 m 2.62 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.08 cm -1.44 mm -2.4 m 2.62 MeV 0 eV 2.57 cm 2.57 cm Target Transportation + 2 2.4 m -18.7 cm 2.35 m 2.62 MeV 0 eV 5.32 m 5.34 m Tracker Transportation + 3 2.68 m -20.9 cm 2.91 m 2.62 MeV 0 eV 63 cm 5.97 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1541, Parent ID = 1521 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -988 mum -140 mum -2.42 m 954 keV 0 eV 0 fm 0 fm Target initStep + 1 9.82 mm -1.67 mm -2.4 m 954 keV 0 eV 2.62 cm 2.62 cm Target Transportation + 2 1.1 m -15.6 cm 0 fm 954 keV 0 eV 2.64 m 2.67 m Tracker Transportation + 3 1.1 m -15.7 cm 1.15 cm 954 keV 0 eV 1.27 cm 2.68 m Chamber Transportation + 4 1.46 m -20.8 cm 80 cm 954 keV 0 eV 86.7 cm 3.55 m Tracker Transportation + 5 1.54 m -21.8 cm 96.4 cm 954 keV 0 eV 18 cm 3.73 m Chamber Transportation + 6 1.82 m -25.9 cm 1.6 m 954 keV 0 eV 70 cm 4.43 m Tracker Transportation + 7 1.92 m -27.2 cm 1.8 m 954 keV 0 eV 22 cm 4.65 m Chamber Transportation + 8 2.19 m -31.1 cm 2.4 m 954 keV 0 eV 66 cm 5.31 m Tracker Transportation + 9 2.42 m -34.4 cm 2.91 m 954 keV 0 eV 56.1 cm 5.87 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1540, Parent ID = 1521 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -894 mum -95.2 mum -2.42 m 1.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 -254 mum -1.23 mm -2.4 m 1.69 MeV 0 eV 2.43 cm 2.43 cm Target Transportation + 2 2.08 cm -3.85 cm -1.6 m 1.69 MeV 0 eV 80.1 cm 82.5 cm Tracker Transportation + 3 2.61 cm -4.78 cm -1.4 m 1.69 MeV 0 eV 20 cm 1.03 m Chamber Transportation + 4 4.18 cm -7.58 cm -80 cm 1.69 MeV 0 eV 60.1 cm 1.63 m Tracker Transportation + 5 4.71 cm -8.51 cm -60 cm 1.69 MeV 0 eV 20 cm 1.83 m Chamber Transportation + 6 6.29 cm -11.3 cm 0 fm 1.69 MeV 0 eV 60.1 cm 2.43 m Tracker Transportation + 7 6.81 cm -12.2 cm 20 cm 1.69 MeV 0 eV 20 cm 2.63 m Chamber Transportation + 8 8.39 cm -15 cm 80 cm 1.69 MeV 0 eV 60.1 cm 3.23 m Tracker Transportation + 9 8.92 cm -16 cm 1 m 1.69 MeV 0 eV 20 cm 3.43 m Chamber Transportation + 10 10.5 cm -18.8 cm 1.6 m 1.69 MeV 0 eV 60.1 cm 4.03 m Tracker Transportation + 11 11 cm -19.7 cm 1.8 m 1.69 MeV 0 eV 20 cm 4.23 m Chamber Transportation + 12 12.6 cm -22.5 cm 2.4 m 1.69 MeV 0 eV 60.1 cm 4.83 m Tracker Transportation + 13 13.9 cm -24.9 cm 2.91 m 1.69 MeV 0 eV 51.1 cm 5.34 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1539, Parent ID = 1521 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -961 mum -159 mum -2.42 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.36 mm 22.8 mum -2.42 m 0 eV 88 keV 9.07 mm 9.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1553, Parent ID = 1539 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.36 mm 22.8 mum -2.42 m 1.16 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm 11 mum -2.42 m 0 eV 1.16 MeV 857 mum 857 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1489, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -212 mum -198 mum -2.43 m 13.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.09 mm 2.16 mm -2.4 m 13.8 MeV 0 eV 2.97 cm 2.97 cm Target Transportation + 2 -8.12 cm 6.61 cm -1.6 m 13.8 MeV 0 eV 80.6 cm 83.6 cm Tracker Transportation + 3 -10.1 cm 8.21 cm -1.4 m 13.8 MeV 0 eV 20.2 cm 1.04 m Chamber Transportation + 4 -15.9 cm 13 cm -80 cm 13.8 MeV 0 eV 60.5 cm 1.64 m Tracker Transportation + 5 -17.9 cm 14.6 cm -60 cm 13.8 MeV 0 eV 20.2 cm 1.84 m Chamber Transportation + 6 -23.7 cm 19.4 cm 0 fm 13.8 MeV 0 eV 60.5 cm 2.45 m Tracker Transportation + 7 -25.7 cm 21 cm 20 cm 13.8 MeV 0 eV 20.2 cm 2.65 m Chamber Transportation + 8 -31.5 cm 25.8 cm 80 cm 13.8 MeV 0 eV 60.5 cm 3.26 m Tracker Transportation + 9 -33.5 cm 27.4 cm 1 m 13.8 MeV 0 eV 20.2 cm 3.46 m Chamber Transportation + 10 -39.4 cm 32.2 cm 1.6 m 13.8 MeV 0 eV 60.5 cm 4.06 m Tracker Transportation + 11 -41.3 cm 33.8 cm 1.8 m 13.8 MeV 0 eV 20.2 cm 4.26 m Chamber Transportation + 12 -47.2 cm 38.6 cm 2.4 m 13.8 MeV 0 eV 60.5 cm 4.87 m Tracker Transportation + 13 -52.1 cm 42.7 cm 2.91 m 13.8 MeV 0 eV 51.4 cm 5.38 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1488, Parent ID = 1487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -80.9 mum -63.6 mum -2.43 m 19.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.05 mm -513 mum -2.4 m 19.6 MeV 0 eV 3.12 cm 3.12 cm Target Transportation + 2 -7.94 cm -1.21 cm -1.6 m 19.6 MeV 0 eV 80.4 cm 83.5 cm Tracker Transportation + 3 -9.84 cm -1.5 cm -1.4 m 19.6 MeV 0 eV 20.1 cm 1.04 m Chamber Transportation + 4 -15.6 cm -2.36 cm -80 cm 19.6 MeV 0 eV 60.3 cm 1.64 m Tracker Transportation + 5 -17.5 cm -2.65 cm -60 cm 19.6 MeV 0 eV 20.1 cm 1.84 m Chamber Transportation + 6 -23.2 cm -3.52 cm 0 fm 19.6 MeV 0 eV 60.3 cm 2.44 m Tracker Transportation + 7 -25.1 cm -3.81 cm 20 cm 19.6 MeV 0 eV 20.1 cm 2.64 m Chamber Transportation + 8 -30.8 cm -4.67 cm 80 cm 19.6 MeV 0 eV 60.3 cm 3.25 m Tracker Transportation + 9 -32.7 cm -4.96 cm 1 m 19.6 MeV 0 eV 20.1 cm 3.45 m Chamber Transportation + 10 -38.5 cm -5.83 cm 1.6 m 19.6 MeV 0 eV 60.3 cm 4.05 m Tracker Transportation + 11 -40.4 cm -6.12 cm 1.8 m 19.6 MeV 0 eV 20.1 cm 4.25 m Chamber Transportation + 12 -46.1 cm -6.99 cm 2.4 m 19.6 MeV 0 eV 60.3 cm 4.85 m Tracker Transportation + 13 -51 cm -7.72 cm 2.91 m 19.6 MeV 0 eV 51.2 cm 5.37 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1486, Parent ID = 1231 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -107 mum -52.6 mum -2.43 m 30.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 33.6 mum 179 mum -2.43 m 26 MeV 2.07 MeV 1.58 mm 1.58 mm Target eBrem + 2 -18.7 mum 103 mum -2.43 m 19.1 MeV 377 keV 368 mum 1.95 mm Target eBrem + 3 -54.6 mum 105 mum -2.43 m 18.1 MeV 197 keV 202 mum 2.15 mm Target eBrem + 4 -274 mum 44.9 mum -2.43 m 16.3 MeV 1.2 MeV 541 mum 2.69 mm Target eBrem + 5 -274 mum 45.1 mum -2.43 m 11.9 MeV 268 eV 715 nm 2.69 mm Target eBrem + 6 107 mum 110 mum -2.43 m 10.4 MeV 1.12 MeV 1.06 mm 3.75 mm Target eBrem + 7 231 mum 71.1 mum -2.43 m 9.49 MeV 199 keV 214 mum 3.96 mm Target eBrem + 8 -108 mum -290 mum -2.43 m 7.59 MeV 841 keV 669 mum 4.63 mm Target eBrem + 9 -238 mum -354 mum -2.43 m 5.7 MeV 980 keV 691 mum 5.32 mm Target eBrem + 10 -122 mum 252 mum -2.43 m 4.34 MeV 1.06 MeV 1.01 mm 6.33 mm Target eBrem + 11 -156 mum 238 mum -2.43 m 3.76 MeV 36.7 keV 38.8 mum 6.37 mm Target eBrem + 12 -713 mum -2.26 mum -2.43 m 2.19 MeV 672 keV 592 mum 6.96 mm Target eBrem + 13 -1.54 mm -152 mum -2.43 m 364 keV 1.45 MeV 1.45 mm 8.41 mm Target eBrem + 14 -1.54 mm -144 mum -2.43 m 0 eV 364 keV 196 mum 8.61 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1566, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.54 mm -152 mum -2.43 m 381 keV 0 eV 0 fm 0 fm Target initStep + 1 -383 mum 5.24 mm -2.42 m 334 keV 0 eV 6.78 mm 6.78 mm Target compt + 2 -173 mum 6.35 mm -2.42 m 154 keV 0 eV 3.53 mm 1.03 cm Target compt + 3 -181 mum 6.41 mm -2.42 m 0 eV 88 keV 190 mum 1.05 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1569, Parent ID = 1566 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -181 mum 6.41 mm -2.42 m 65.6 keV 0 eV 0 fm 0 fm Target initStep + 1 -181 mum 6.41 mm -2.42 m 0 eV 65.6 keV 14 mum 14 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1568, Parent ID = 1566 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -173 mum 6.35 mm -2.42 m 181 keV 0 eV 0 fm 0 fm Target initStep + 1 -173 mum 6.35 mm -2.42 m 0 eV 181 keV 70.2 mum 70.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1567, Parent ID = 1566 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -383 mum 5.24 mm -2.42 m 47 keV 0 eV 0 fm 0 fm Target initStep + 1 -383 mum 5.24 mm -2.42 m 0 eV 47 keV 8.13 mum 8.13 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1565, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -713 mum -2.26 mum -2.43 m 893 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 mm -4.26 mm -2.42 m 278 keV 0 eV 6.04 mm 6.04 mm Target compt + 2 -1.39 mm -6.01 mm -2.43 m 0 eV 88 keV 3.53 mm 9.57 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1571, Parent ID = 1565 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.39 mm -6.01 mm -2.43 m 190 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.39 mm -6.01 mm -2.43 m 0 eV 190 keV 75.8 mum 75.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1570, Parent ID = 1565 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.5 mm -4.26 mm -2.42 m 615 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.51 mm -4.28 mm -2.42 m 0 eV 615 keV 396 mum 396 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1564, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -156 mum 238 mum -2.43 m 541 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.17 mm -5.68 mm -2.43 m 0 eV 88 keV 8.02 mm 8.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1572, Parent ID = 1564 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.17 mm -5.68 mm -2.43 m 453 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.18 mm -5.7 mm -2.43 m 0 eV 453 keV 264 mum 264 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1563, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -122 mum 252 mum -2.43 m 300 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.58 mm -1.3 mm -2.43 m 178 keV 0 eV 3.79 mm 3.79 mm Target compt + 2 -3.66 mm -976 mum -2.43 m 0 eV 88 keV 353 mum 4.15 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1574, Parent ID = 1563 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.66 mm -976 mum -2.43 m 90 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.66 mm -975 mum -2.43 m 0 eV 90 keV 23.4 mum 23.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1573, Parent ID = 1563 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.58 mm -1.3 mm -2.43 m 122 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.58 mm -1.31 mm -2.43 m 0 eV 122 keV 38.1 mum 38.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1562, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -238 mum -354 mum -2.43 m 914 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.52 mm 995 mum -2.42 m 288 keV 0 eV 5.08 mm 5.08 mm Target compt + 2 -5.06 mm 1.38 mm -2.43 m 0 eV 88 keV 2.88 mm 7.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1576, Parent ID = 1562 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.06 mm 1.38 mm -2.43 m 200 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.06 mm 1.38 mm -2.43 m 0 eV 200 keV 81.3 mum 81.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1575, Parent ID = 1562 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.52 mm 995 mum -2.42 m 626 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.54 mm 1 mm -2.42 m 0 eV 626 keV 405 mum 405 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1561, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -108 mum -290 mum -2.43 m 1.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 -111 mum -291 mum -2.43 m 0 eV 88 keV 4.73 mum 4.73 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1577, Parent ID = 1561 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -111 mum -291 mum -2.43 m 967 keV 0 eV 0 fm 0 fm Target initStep + 1 -136 mum -302 mum -2.43 m 0 eV 967 keV 693 mum 693 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1560, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 231 mum 71.1 mum -2.43 m 725 keV 0 eV 0 fm 0 fm Target initStep + 1 -244 mum -661 mum -2.43 m 0 eV 88 keV 878 mum 878 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1578, Parent ID = 1560 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -244 mum -661 mum -2.43 m 637 keV 0 eV 0 fm 0 fm Target initStep + 1 -279 mum -674 mum -2.43 m 75.9 keV 50.7 keV 54.1 mum 54.1 mum Target eBrem + 2 -278 mum -675 mum -2.43 m 0 eV 75.9 keV 17.7 mum 71.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1579, Parent ID = 1578 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -279 mum -674 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -221 mum 3 mm -2.43 m 0 eV 88 keV 4.24 mm 4.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1580, Parent ID = 1579 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -221 mum 3 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -218 mum 3.02 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1559, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 107 mum 110 mum -2.43 m 343 keV 0 eV 0 fm 0 fm Target initStep + 1 475 mum -57.1 mum -2.43 m 151 keV 0 eV 1.01 mm 1.01 mm Target compt + 2 555 mum 146 mum -2.43 m 0 eV 88 keV 975 mum 1.98 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1582, Parent ID = 1559 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 555 mum 146 mum -2.43 m 62.8 keV 0 eV 0 fm 0 fm Target initStep + 1 555 mum 145 mum -2.43 m 0 eV 62.8 keV 13 mum 13 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1581, Parent ID = 1559 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 475 mum -57.1 mum -2.43 m 192 keV 0 eV 0 fm 0 fm Target initStep + 1 476 mum -58 mum -2.43 m 0 eV 192 keV 76.7 mum 76.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1558, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -274 mum 45.1 mum -2.43 m 4.44 MeV 0 eV 0 fm 0 fm Target initStep + 1 589 mum 2.92 mm -2.42 m 0 eV 0 eV 8.68 mm 8.68 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1584, Parent ID = 1558 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 589 mum 2.92 mm -2.42 m 1.98 MeV 0 eV 0 fm 0 fm Target initStep + 1 546 mum 2.88 mm -2.42 m 0 eV 1.98 MeV 1.57 mm 1.57 mm Target eIoni + 2 546 mum 2.88 mm -2.42 m 0 eV 0 eV 0 fm 1.57 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1586, Parent ID = 1584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 546 mum 2.88 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 433 mum 2.56 mm -2.42 m 0 eV 88 keV 471 mum 471 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1587, Parent ID = 1586 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 433 mum 2.56 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 421 mum 2.55 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1585, Parent ID = 1584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 546 mum 2.88 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm 4.6 mm -2.42 m 0 eV 88 keV 2.49 mm 2.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1588, Parent ID = 1585 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.14 mm 4.6 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm 4.61 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1583, Parent ID = 1558 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 589 mum 2.92 mm -2.42 m 1.44 MeV 0 eV 0 fm 0 fm Target initStep + 1 256 mum 3.12 mm -2.42 m 169 keV 1.27 MeV 784 mum 784 mum Target eBrem + 2 256 mum 3.12 mm -2.42 m 0 eV 169 keV 63.2 mum 847 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1557, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -274 mum 44.9 mum -2.43 m 546 keV 0 eV 0 fm 0 fm Target initStep + 1 2.88 mm 9.99 mm -2.4 m 225 keV 0 eV 2.93 cm 2.93 cm Target compt + 2 4.92 mm 9 mm -2.4 m 0 eV 88 keV 2.37 mm 3.17 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1590, Parent ID = 1557 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.92 mm 9 mm -2.4 m 137 keV 0 eV 0 fm 0 fm Target initStep + 1 4.92 mm 9 mm -2.4 m 0 eV 137 keV 45.7 mum 45.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1589, Parent ID = 1557 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.88 mm 9.99 mm -2.4 m 321 keV 0 eV 0 fm 0 fm Target initStep + 1 2.88 mm 9.99 mm -2.4 m 0 eV 321 keV 164 mum 164 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1556, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -54.6 mum 105 mum -2.43 m 826 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 mm -1.37 mm -2.42 m 0 eV 88 keV 8.4 mm 8.4 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1591, Parent ID = 1556 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.15 mm -1.37 mm -2.42 m 738 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.13 mm -1.4 mm -2.42 m 0 eV 738 keV 499 mum 499 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1555, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -18.7 mum 103 mum -2.43 m 6.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.65 mm -2.17 mm -2.4 m 0 eV 0 eV 2.81 cm 2.81 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1593, Parent ID = 1555 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.65 mm -2.17 mm -2.4 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.09 mm -2.26 mm -2.4 m 232 keV 644 keV 745 mum 745 mum Target eBrem + 2 -4.1 mm -2.26 mm -2.4 m 0 eV 232 keV 99.2 mum 844 mum Target eIoni + 3 -4.1 mm -2.26 mm -2.4 m 0 eV 0 eV 0 fm 844 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1596, Parent ID = 1593 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.1 mm -2.26 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.75 mm -1.35 mm -2.41 m 0 eV 88 keV 3.86 mm 3.86 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1597, Parent ID = 1596 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.75 mm -1.35 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.75 mm -1.34 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1595, Parent ID = 1593 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.1 mm -2.26 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.31 mm -2.8 mm -2.4 m 511 keV 0 eV 2.27 mm 2.27 mm Target Transportation + 2 -7.99 cm -19.9 cm -1.6 m 511 keV 0 eV 82.7 cm 82.9 cm Tracker Transportation + 3 -9.59 cm -24 cm -1.43 m 511 keV 0 eV 17.5 cm 1 m Chamber Transportation + 4 -15.5 cm -39.4 cm -80 cm 511 keV 0 eV 65.2 cm 1.66 m Tracker Transportation + 5 -17.4 cm -44.3 cm -60 cm 511 keV 0 eV 20.7 cm 1.86 m Chamber Transportation + 6 -23.1 cm -59 cm 0 fm 511 keV 0 eV 62 cm 2.48 m Tracker Transportation + 7 -25 cm -63.9 cm 20 cm 511 keV 0 eV 20.7 cm 2.69 m Chamber Transportation + 8 -30.7 cm -78.6 cm 80 cm 511 keV 0 eV 62 cm 3.31 m Tracker Transportation + 9 -32.6 cm -83.5 cm 1 m 511 keV 0 eV 20.7 cm 3.52 m Chamber Transportation + 10 -38.2 cm -98.2 cm 1.6 m 511 keV 0 eV 62 cm 4.14 m Tracker Transportation + 11 -40.1 cm -1.03 m 1.8 m 511 keV 0 eV 20.7 cm 4.34 m Chamber Transportation + 12 -45.8 cm -1.18 m 2.4 m 511 keV 0 eV 62 cm 4.96 m Tracker Transportation + 13 -50.6 cm -1.3 m 2.91 m 511 keV 0 eV 52.7 cm 5.49 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1594, Parent ID = 1593 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.09 mm -2.26 mm -2.4 m 312 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.12 mm -2.16 mm -2.4 m 0 eV 88 keV 1.05 mm 1.05 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1598, Parent ID = 1594 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.12 mm -2.16 mm -2.4 m 224 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.13 mm -2.16 mm -2.4 m 0 eV 224 keV 96.8 mum 96.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1592, Parent ID = 1555 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.65 mm -2.17 mm -2.4 m 4.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 mm -2.42 mm -2.4 m 1.8 MeV 2.29 MeV 1.77 mm 1.77 mm Target eBrem + 2 -2.63 mm -2.44 mm -2.4 m 0 eV 1.8 MeV 1.39 mm 3.16 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1599, Parent ID = 1592 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.5 mm -2.42 mm -2.4 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.03 mm -2.52 mm -2.4 m 0 eV 88 keV 1.59 mm 1.59 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1600, Parent ID = 1599 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.03 mm -2.52 mm -2.4 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.04 mm -2.52 mm -2.4 m 0 eV 196 keV 78.9 mum 78.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1554, Parent ID = 1486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 33.6 mum 179 mum -2.43 m 2.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 -456 mum -1.9 mm -2.42 m 0 eV 88 keV 7.04 mm 7.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1601, Parent ID = 1554 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -456 mum -1.9 mm -2.42 m 2.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 -467 mum -1.95 mm -2.42 m 0 eV 2.06 MeV 1.61 mm 1.61 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1230, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -51.7 mum -29.2 mum -2.44 m 4.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -143 mum -8.7 mum -2.42 m 0 eV 0 eV 1.76 cm 1.76 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1603, Parent ID = 1230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -143 mum -8.7 mum -2.42 m 414 keV 0 eV 0 fm 0 fm Target initStep + 1 -154 mum -10.7 mum -2.42 m 0 eV 414 keV 232 mum 232 mum Target eIoni + 2 -154 mum -10.7 mum -2.42 m 0 eV 0 eV 0 fm 232 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1605, Parent ID = 1603 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -154 mum -10.7 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -147 mum -1.01 mm -2.42 m 0 eV 88 keV 1.07 mm 1.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1606, Parent ID = 1605 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -147 mum -1.01 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -142 mum -1.03 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1604, Parent ID = 1603 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -154 mum -10.7 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -184 mum 4.35 mm -2.42 m 0 eV 88 keV 4.65 mm 4.65 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1607, Parent ID = 1604 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -184 mum 4.35 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -191 mum 4.36 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1602, Parent ID = 1230 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -143 mum -8.7 mum -2.42 m 2.96 MeV 0 eV 0 fm 0 fm Target initStep + 1 -985 mum -906 mum -2.42 m 103 keV 2.86 MeV 2.07 mm 2.07 mm Target eBrem + 2 -986 mum -908 mum -2.42 m 0 eV 103 keV 28.8 mum 2.1 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1229, Parent ID = 1228 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -49.2 mum -28.8 mum -2.44 m 1.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -149 mum -90.1 mum -2.43 m 1.05 MeV 0 eV 8.07 mm 8.07 mm Target compt + 2 3.08 mm 2.93 mm -2.41 m 710 keV 0 eV 1.9 cm 2.7 cm Target compt + 3 266 mum 2.65 mm -2.41 m 446 keV 0 eV 5.94 mm 3.3 cm Target compt + 4 -2.35 mm -6.2 mm -2.4 m 0 eV 88 keV 1.05 cm 4.34 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1611, Parent ID = 1229 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.35 mm -6.2 mm -2.4 m 358 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.35 mm -6.21 mm -2.4 m 0 eV 358 keV 191 mum 191 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1610, Parent ID = 1229 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 266 mum 2.65 mm -2.41 m 264 keV 0 eV 0 fm 0 fm Target initStep + 1 263 mum 2.65 mm -2.41 m 0 eV 264 keV 124 mum 124 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1609, Parent ID = 1229 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.08 mm 2.93 mm -2.41 m 340 keV 0 eV 0 fm 0 fm Target initStep + 1 3.09 mm 2.94 mm -2.41 m 0 eV 340 keV 178 mum 178 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1608, Parent ID = 1229 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -149 mum -90.1 mum -2.43 m 71.6 keV 0 eV 0 fm 0 fm Target initStep + 1 -150 mum -90.8 mum -2.43 m 0 eV 71.6 keV 16.1 mum 16.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1227, Parent ID = 112 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -32.3 mum -24.4 mum -2.44 m 104 MeV 0 eV 0 fm 0 fm Target initStep + 1 -30.1 mum -14.1 mum -2.44 m 88 MeV 794 keV 411 mum 411 mum Target eBrem + 2 -39.5 mum -14.5 mum -2.44 m 75.1 MeV 484 keV 321 mum 731 mum Target eBrem + 3 -39.6 mum -14.3 mum -2.44 m 69.3 MeV 11.1 keV 7.86 mum 739 mum Target eBrem + 4 -98.6 mum -38 mum -2.44 m 59.9 MeV 1.51 MeV 1.01 mm 1.75 mm Target eBrem + 5 -101 mum -21.2 mum -2.44 m 58.3 MeV 105 keV 85.2 mum 1.83 mm Target eBrem + 6 -98.8 mum 47.3 mum -2.44 m 56.5 MeV 453 keV 383 mum 2.21 mm Target eBrem + 7 -122 mum 108 mum -2.44 m 53.1 MeV 206 keV 174 mum 2.39 mm Target eBrem + 8 -465 mum 677 mum -2.43 m 24.3 MeV 2.67 MeV 1.95 mm 4.34 mm Target eBrem + 9 -462 mum 683 mum -2.43 m 23.6 MeV 366 keV 295 mum 4.64 mm Target eBrem + 10 -446 mum 704 mum -2.43 m 22.8 MeV 287 keV 241 mum 4.88 mm Target eBrem + 11 -271 mum 1.05 mm -2.43 m 21.2 MeV 1.2 MeV 991 mum 5.87 mm Target eBrem + 12 -1.32 mm 2.15 mm -2.43 m 15.6 MeV 3.08 MeV 2.52 mm 8.39 mm Target eBrem + 13 -1.15 mm 2.5 mm -2.43 m 10.6 MeV 707 keV 680 mum 9.07 mm Target eBrem + 14 -1.27 mm 4.57 mm -2.43 m 3.67 MeV 4.44 MeV 2.57 mm 1.16 cm Target eBrem + 15 -1.24 mm 4.44 mm -2.43 m 2.89 MeV 780 keV 636 mum 1.23 cm Target eBrem + 16 -2.12 mm 5.11 mm -2.43 m 466 keV 1.98 MeV 1.85 mm 1.41 cm Target eBrem + 17 -2.12 mm 5.11 mm -2.43 m 0 eV 466 keV 275 mum 1.44 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1626, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.12 mm 5.11 mm -2.43 m 449 keV 0 eV 0 fm 0 fm Target initStep + 1 1.33 mm 4.78 mm -2.43 m 0 eV 88 keV 4 mm 4 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1627, Parent ID = 1626 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.33 mm 4.78 mm -2.43 m 361 keV 0 eV 0 fm 0 fm Target initStep + 1 1.35 mm 4.77 mm -2.43 m 0 eV 361 keV 193 mum 193 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1625, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.27 mm 4.57 mm -2.43 m 2.44 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.6 mm 2.05 mm -2.43 m 551 keV 0 eV 4.03 mm 4.03 mm Target compt + 2 1.01 mm -4.07 mm -2.43 m 384 keV 0 eV 7.93 mm 1.2 cm Target compt + 3 1.26 cm -3.55 mm -2.44 m 0 eV 88 keV 1.4 cm 2.6 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1630, Parent ID = 1625 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.26 cm -3.55 mm -2.44 m 296 keV 0 eV 0 fm 0 fm Target initStep + 1 1.26 cm -3.55 mm -2.44 m 0 eV 296 keV 146 mum 146 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1629, Parent ID = 1625 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.01 mm -4.07 mm -2.43 m 168 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 mm -4.07 mm -2.43 m 0 eV 168 keV 62.4 mum 62.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1628, Parent ID = 1625 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.6 mm 2.05 mm -2.43 m 1.88 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.42 mm 1.39 mm -2.43 m 45.4 keV 1.49 MeV 1.23 mm 1.23 mm Target eBrem + 2 -3.42 mm 1.39 mm -2.43 m 0 eV 45.4 keV 7.69 mum 1.24 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1631, Parent ID = 1628 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.42 mm 1.39 mm -2.43 m 346 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.41 mm 1.43 mm -2.43 m 0 eV 88 keV 70.7 mum 70.7 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1632, Parent ID = 1631 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.41 mm 1.43 mm -2.43 m 258 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.41 mm 1.43 mm -2.43 m 0 eV 258 keV 120 mum 120 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1624, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.15 mm 2.5 mm -2.43 m 4.29 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.78 mm 1.52 cm -2.42 m 0 eV 0 eV 1.73 cm 1.73 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1634, Parent ID = 1624 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.78 mm 1.52 cm -2.42 m 779 keV 0 eV 0 fm 0 fm Target initStep + 1 4.77 mm 1.53 cm -2.42 m 0 eV 779 keV 538 mum 538 mum Target eIoni + 2 4.77 mm 1.53 cm -2.42 m 0 eV 0 eV 0 fm 538 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1636, Parent ID = 1634 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.77 mm 1.53 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.33 mm 1.48 cm -2.42 m 0 eV 88 keV 855 mum 855 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1637, Parent ID = 1636 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.33 mm 1.48 cm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.33 mm 1.48 cm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1635, Parent ID = 1634 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.77 mm 1.53 cm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.36 mm 2.5 cm -2.41 m 511 keV 0 eV 1.7 cm 1.7 cm Target Transportation + 2 -2.15 cm 3.82 cm -2.4 m 511 keV 0 eV 2.31 cm 4.01 cm World Transportation + 3 -2.4 m 2.11 m -59.1 cm 511 keV 0 eV 3.64 m 3.68 m Tracker Transportation + 4 -2.91 m 2.56 m -20.3 cm 511 keV 0 eV 78 cm 4.46 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1633, Parent ID = 1624 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.78 mm 1.52 cm -2.42 m 2.49 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.89 mm 1.54 cm -2.42 m 0 eV 2.49 MeV 1.96 mm 1.96 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1623, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.32 mm 2.15 mm -2.43 m 2.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.25 mm 3.17 mm -2.43 m 1.56 MeV 0 eV 1.67 mm 1.67 mm Target compt + 2 -953 mum 3.43 mm -2.43 m 1.02 MeV 0 eV 1.62 mm 3.29 mm Target compt + 3 -1.72 mm 3.77 mm -2.43 m 242 keV 0 eV 1.91 mm 5.2 mm Target compt + 4 -1.77 mm 4.51 mm -2.43 m 0 eV 88 keV 1.27 mm 6.47 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1641, Parent ID = 1623 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.77 mm 4.51 mm -2.43 m 154 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.77 mm 4.5 mm -2.43 m 0 eV 154 keV 54.5 mum 54.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1640, Parent ID = 1623 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm 3.77 mm -2.43 m 774 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.74 mm 3.77 mm -2.43 m 0 eV 774 keV 529 mum 529 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1639, Parent ID = 1623 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -953 mum 3.43 mm -2.43 m 541 keV 0 eV 0 fm 0 fm Target initStep + 1 -936 mum 3.43 mm -2.43 m 0 eV 541 keV 336 mum 336 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1638, Parent ID = 1623 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.25 mm 3.17 mm -2.43 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.26 mm 3.23 mm -2.43 m 0 eV 1.02 MeV 738 mum 738 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1622, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -271 mum 1.05 mm -2.43 m 409 keV 0 eV 0 fm 0 fm Target initStep + 1 -299 mum 1.23 mm -2.43 m 0 eV 88 keV 734 mum 734 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1642, Parent ID = 1622 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -299 mum 1.23 mm -2.43 m 321 keV 0 eV 0 fm 0 fm Target initStep + 1 -300 mum 1.24 mm -2.43 m 0 eV 321 keV 164 mum 164 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1621, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -446 mum 704 mum -2.43 m 476 keV 0 eV 0 fm 0 fm Target initStep + 1 -309 mum 1.02 mm -2.43 m 0 eV 88 keV 1.78 mm 1.78 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1643, Parent ID = 1621 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -309 mum 1.02 mm -2.43 m 388 keV 0 eV 0 fm 0 fm Target initStep + 1 -296 mum 1.02 mm -2.43 m 0 eV 388 keV 214 mum 214 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1620, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -462 mum 683 mum -2.43 m 396 keV 0 eV 0 fm 0 fm Target initStep + 1 -145 mum 1.28 mm -2.43 m 0 eV 88 keV 3.25 mm 3.25 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1644, Parent ID = 1620 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -145 mum 1.28 mm -2.43 m 308 keV 0 eV 0 fm 0 fm Target initStep + 1 -146 mum 1.28 mm -2.43 m 0 eV 308 keV 154 mum 154 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1619, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -465 mum 677 mum -2.43 m 26.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm 1.84 mm -2.42 m 0 eV 0 eV 1.53 cm 1.53 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1646, Parent ID = 1619 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm 1.84 mm -2.42 m 4.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.25 mm 560 mum -2.42 m 1.72 MeV 2.31 MeV 2.02 mm 2.02 mm Target eBrem + 2 2.19 mm 302 mum -2.42 m 1.03 MeV 309 keV 377 mum 2.39 mm Target eBrem + 3 2.19 mm 239 mum -2.42 m 0 eV 1.03 MeV 756 mum 3.15 mm Target eIoni + 4 2.19 mm 239 mum -2.42 m 0 eV 0 eV 0 fm 3.15 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1650, Parent ID = 1646 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.19 mm 239 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.54 mm 587 mum -2.41 m 351 keV 0 eV 9.53 mm 9.53 mm Target compt + 2 1.07 cm 5.13 mm -2.41 m 0 eV 88 keV 6.36 mm 1.59 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1652, Parent ID = 1650 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 cm 5.13 mm -2.41 m 263 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 cm 5.13 mm -2.41 m 0 eV 263 keV 123 mum 123 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1651, Parent ID = 1650 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.54 mm 587 mum -2.41 m 160 keV 0 eV 0 fm 0 fm Target initStep + 1 6.54 mm 585 mum -2.41 m 0 eV 160 keV 58.2 mum 58.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1649, Parent ID = 1646 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.19 mm 239 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.52 mm 185 mum -2.42 m 0 eV 88 keV 1.47 mm 1.47 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1653, Parent ID = 1649 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.52 mm 185 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.5 mm 183 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1648, Parent ID = 1646 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.19 mm 302 mum -2.42 m 378 keV 0 eV 0 fm 0 fm Target initStep + 1 2.14 mm -406 mum -2.42 m 154 keV 0 eV 886 mum 886 mum Target compt + 2 2.12 mm -290 mum -2.42 m 0 eV 88 keV 144 mum 1.03 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1655, Parent ID = 1648 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.12 mm -290 mum -2.42 m 65.8 keV 0 eV 0 fm 0 fm Target initStep + 1 2.12 mm -290 mum -2.42 m 0 eV 65.8 keV 14 mum 14 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1654, Parent ID = 1648 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.14 mm -406 mum -2.42 m 224 keV 0 eV 0 fm 0 fm Target initStep + 1 2.14 mm -411 mum -2.42 m 0 eV 224 keV 97.3 mum 97.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1647, Parent ID = 1646 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.25 mm 560 mum -2.42 m 473 keV 0 eV 0 fm 0 fm Target initStep + 1 2.82 mm -1.29 mm -2.42 m 360 keV 0 eV 2.2 mm 2.2 mm Target compt + 2 -233 mum -5.38 mm -2.41 m 0 eV 88 keV 1.11 cm 1.33 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1657, Parent ID = 1647 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -233 mum -5.38 mm -2.41 m 272 keV 0 eV 0 fm 0 fm Target initStep + 1 -236 mum -5.38 mm -2.41 m 0 eV 272 keV 130 mum 130 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1656, Parent ID = 1647 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.82 mm -1.29 mm -2.42 m 113 keV 0 eV 0 fm 0 fm Target initStep + 1 2.82 mm -1.29 mm -2.42 m 0 eV 113 keV 33.6 mum 33.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1645, Parent ID = 1619 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm 1.84 mm -2.42 m 20.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.13 mm 1.83 mm -2.42 m 13.4 MeV 988 keV 873 mum 873 mum Target eBrem + 2 1.63 mm 1.73 mm -2.42 m 10 MeV 1.58 MeV 1.25 mm 2.12 mm Target eBrem + 3 2.08 mm 2.92 mm -2.42 m 293 keV 1.84 MeV 1.64 mm 3.76 mm Target eBrem + 4 2.07 mm 2.92 mm -2.42 m 0 eV 293 keV 144 mum 3.9 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1660, Parent ID = 1645 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.08 mm 2.92 mm -2.42 m 7.88 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.99 mm 6.92 mm -2.41 m 381 keV 0 eV 8.29 mm 8.29 mm Target compt + 2 -3.04 mm 9.05 mm -2.42 m 0 eV 88 keV 3.08 mm 1.14 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1662, Parent ID = 1660 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.04 mm 9.05 mm -2.42 m 293 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.03 mm 9.05 mm -2.42 m 0 eV 293 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1661, Parent ID = 1660 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.99 mm 6.92 mm -2.41 m 7.49 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.07 mm 7.57 mm -2.42 m 4.44 MeV 2.27 MeV 1.42 mm 1.42 mm Target eBrem + 2 -6.19 mm 8.15 mm -2.41 m 1.93 MeV 1.67 MeV 1.6 mm 3.02 mm Target eBrem + 3 -6.29 mm 7.66 mm -2.41 m 710 keV 1.22 MeV 829 mum 3.85 mm Target eBrem + 4 -6.27 mm 7.69 mm -2.41 m 0 eV 710 keV 475 mum 4.32 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1664, Parent ID = 1661 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.19 mm 8.15 mm -2.41 m 845 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.23 mm 5.66 mm -2.42 m 0 eV 88 keV 4.4 mm 4.4 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1665, Parent ID = 1664 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.23 mm 5.66 mm -2.42 m 757 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.29 mm 5.61 mm -2.42 m 555 keV 202 keV 216 mum 216 mum Target eBrem + 2 -3.31 mm 5.62 mm -2.42 m 0 eV 555 keV 346 mum 562 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1663, Parent ID = 1661 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.07 mm 7.57 mm -2.42 m 792 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.95 mm 1.05 cm -2.41 m 281 keV 0 eV 3.48 mm 3.48 mm Target compt + 2 -3.6 mm 9.23 mm -2.41 m 0 eV 88 keV 4.42 mm 7.9 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1667, Parent ID = 1663 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.6 mm 9.23 mm -2.41 m 193 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.59 mm 9.23 mm -2.41 m 0 eV 193 keV 77.2 mum 77.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1666, Parent ID = 1663 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.95 mm 1.05 cm -2.41 m 512 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.96 mm 1.06 cm -2.41 m 0 eV 512 keV 311 mum 311 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1659, Parent ID = 1645 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.63 mm 1.73 mm -2.42 m 1.83 MeV 0 eV 0 fm 0 fm Target initStep + 1 -516 mum 4.33 mm -2.41 m 820 keV 0 eV 8.32 mm 8.32 mm Target compt + 2 -2.42 mm 2.5 cm -2.4 m 820 keV 0 eV 2.24 cm 3.07 cm Target Transportation + 3 -2.61 mm 2.71 cm -2.4 m 820 keV 0 eV 2.25 mm 3.3 cm World Transportation + 4 -22.1 cm 2.4 m -1.43 m 820 keV 0 eV 2.57 m 2.61 m Tracker Transportation + 5 -26.8 cm 2.91 m -1.22 m 820 keV 0 eV 55.3 cm 3.16 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1668, Parent ID = 1659 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -516 mum 4.33 mm -2.41 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -532 mum 4.32 mm -2.41 m 0 eV 1.01 MeV 732 mum 732 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1658, Parent ID = 1645 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.13 mm 1.83 mm -2.42 m 6.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.19 mm 5.34 mm -2.4 m 6.18 MeV 0 eV 1.88 cm 1.88 cm Target Transportation + 2 18.5 cm 16.1 cm -1.6 m 6.18 MeV 0 eV 83.5 cm 85.3 cm Tracker Transportation + 3 23 cm 20 cm -1.4 m 6.18 MeV 0 eV 20.9 cm 1.06 m Chamber Transportation + 4 36.5 cm 31.6 cm -80 cm 6.18 MeV 0 eV 62.6 cm 1.69 m Tracker Transportation + 5 41 cm 35.5 cm -60 cm 6.18 MeV 0 eV 20.9 cm 1.9 m Chamber Transportation + 6 54.5 cm 47.1 cm 0.114 fm 6.18 MeV 0 eV 62.6 cm 2.52 m Tracker Transportation + 7 59 cm 51 cm 20 cm 6.18 MeV 0 eV 20.9 cm 2.73 m Chamber Transportation + 8 72.5 cm 62.7 cm 80 cm 6.18 MeV 0 eV 62.6 cm 3.36 m Tracker Transportation + 9 77 cm 66.6 cm 1 m 6.18 MeV 0 eV 20.9 cm 3.57 m Chamber Transportation + 10 90.5 cm 78.2 cm 1.6 m 6.18 MeV 0 eV 62.6 cm 4.19 m Tracker Transportation + 11 95 cm 82.1 cm 1.8 m 6.18 MeV 0 eV 20.9 cm 4.4 m Chamber Transportation + 12 1.08 m 93.8 cm 2.4 m 6.18 MeV 0 eV 62.6 cm 5.03 m Tracker Transportation + 13 1.2 m 1.04 m 2.91 m 6.18 MeV 0 eV 53.2 cm 5.56 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1618, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -122 mum 108 mum -2.44 m 3.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.03 mm 1.4 cm -2.4 m 3.17 MeV 0 eV 3.87 cm 3.87 cm Target Transportation + 2 -13.2 cm 63.1 cm -80 cm 3.17 MeV 0 eV 1.72 m 1.76 m Tracker Transportation + 3 -14.1 cm 67.2 cm -69.3 cm 3.17 MeV 0 eV 11.6 cm 1.87 m Chamber Transportation + 4 -19.7 cm 93.9 cm 0 fm 3.17 MeV 0 eV 74.4 cm 2.62 m Tracker Transportation + 5 -21.3 cm 1.02 m 20 cm 3.17 MeV 0 eV 21.5 cm 2.83 m Chamber Transportation + 6 -26.1 cm 1.25 m 80 cm 3.17 MeV 0 eV 64.5 cm 3.48 m Tracker Transportation + 7 -27.8 cm 1.32 m 1 m 3.17 MeV 0 eV 21.5 cm 3.69 m Chamber Transportation + 8 -32.6 cm 1.56 m 1.6 m 3.17 MeV 0 eV 64.5 cm 4.34 m Tracker Transportation + 9 -34.2 cm 1.63 m 1.8 m 3.17 MeV 0 eV 21.5 cm 4.55 m Chamber Transportation + 10 -39.1 cm 1.86 m 2.4 m 3.17 MeV 0 eV 64.5 cm 5.2 m Tracker Transportation + 11 -43.2 cm 2.06 m 2.91 m 3.17 MeV 0 eV 54.8 cm 5.75 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1617, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -98.8 mum 47.3 mum -2.44 m 1.33 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.95 mm 4.44 mm -2.42 m 909 keV 0 eV 1.43 cm 1.43 cm Target compt + 2 -1.22 cm 2.18 mm -2.41 m 825 keV 0 eV 1.92 cm 3.34 cm Target compt + 3 -1.45 cm -496 mum -2.4 m 825 keV 0 eV 7.49 mm 4.09 cm Target Transportation + 4 -19.3 cm -21.2 cm -1.88 m 668 keV 0 eV 59.2 cm 63.3 cm Tracker compt + 5 -2.4 m -75.6 cm -3.85 mm 668 keV 0 eV 2.95 m 3.58 m Tracker Transportation + 6 -2.91 m -88.1 cm 42.9 cm 668 keV 0 eV 68.1 cm 4.26 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1671, Parent ID = 1617 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -19.3 cm -21.2 cm -1.88 m 158 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -10.7 cm -27 cm -1.77 m 0 eV 158 keV 29.8 cm 29.8 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1670, Parent ID = 1617 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.22 cm 2.18 mm -2.41 m 83.5 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.22 cm 2.18 mm -2.41 m 0 eV 83.5 keV 20.7 mum 20.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1669, Parent ID = 1617 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.95 mm 4.44 mm -2.42 m 421 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.95 mm 4.45 mm -2.42 m 0 eV 421 keV 240 mum 240 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1616, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -101 mum -21.2 mum -2.44 m 1.54 MeV 0 eV 0 fm 0 fm Target initStep + 1 -184 mum 1.4 mm -2.43 m 334 keV 0 eV 6.01 mm 6.01 mm Target compt + 2 -601 mum 1.56 mm -2.43 m 0 eV 88 keV 469 mum 6.48 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1673, Parent ID = 1616 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -601 mum 1.56 mm -2.43 m 246 keV 0 eV 0 fm 0 fm Target initStep + 1 -603 mum 1.56 mm -2.43 m 0 eV 246 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1672, Parent ID = 1616 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -184 mum 1.4 mm -2.43 m 1.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 -118 mum 1.37 mm -2.43 m 430 keV 119 keV 129 mum 129 mum Target eBrem + 2 -126 mum 1.35 mm -2.43 m 0 eV 430 keV 246 mum 375 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1674, Parent ID = 1672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -118 mum 1.37 mm -2.43 m 657 keV 0 eV 0 fm 0 fm Target initStep + 1 -569 mum -1.19 mm -2.43 m 500 keV 0 eV 2.81 mm 2.81 mm Target compt + 2 -217 mum -2.57 mm -2.43 m 0 eV 88 keV 1.44 mm 4.26 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1676, Parent ID = 1674 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -217 mum -2.57 mm -2.43 m 412 keV 0 eV 0 fm 0 fm Target initStep + 1 -208 mum -2.58 mm -2.43 m 0 eV 412 keV 232 mum 232 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1675, Parent ID = 1674 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -569 mum -1.19 mm -2.43 m 158 keV 0 eV 0 fm 0 fm Target initStep + 1 -571 mum -1.2 mm -2.43 m 0 eV 158 keV 56.6 mum 56.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1615, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -98.6 mum -38 mum -2.44 m 7.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 -86.2 mum 7.82 mm -2.4 m 7.82 MeV 0 eV 3.74 cm 3.74 cm Target Transportation + 2 185 mum 18 cm -1.6 m 7.82 MeV 0 eV 81.8 cm 85.6 cm Tracker Transportation + 3 253 mum 22.3 cm -1.4 m 7.82 MeV 0 eV 20.5 cm 1.06 m Chamber Transportation + 4 457 mum 35.2 cm -80 cm 7.82 MeV 0 eV 61.4 cm 1.67 m Tracker Transportation + 5 525 mum 39.5 cm -60 cm 7.82 MeV 0 eV 20.5 cm 1.88 m Chamber Transportation + 6 728 mum 52.4 cm 0 fm 7.82 MeV 0 eV 61.4 cm 2.49 m Tracker Transportation + 7 796 mum 56.7 cm 20 cm 7.82 MeV 0 eV 20.5 cm 2.7 m Chamber Transportation + 8 1e+03 mum 69.5 cm 80 cm 7.82 MeV 0 eV 61.4 cm 3.31 m Tracker Transportation + 9 1.07 mm 73.8 cm 1 m 7.82 MeV 0 eV 20.5 cm 3.52 m Chamber Transportation + 10 1.27 mm 86.7 cm 1.6 m 7.82 MeV 0 eV 61.4 cm 4.13 m Tracker Transportation + 11 1.34 mm 91 cm 1.8 m 7.82 MeV 0 eV 20.5 cm 4.33 m Chamber Transportation + 12 1.54 mm 1.04 m 2.4 m 7.82 MeV 0 eV 61.4 cm 4.95 m Tracker Transportation + 13 1.72 mm 1.15 m 2.91 m 7.82 MeV 0 eV 52.2 cm 5.47 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1614, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -39.6 mum -14.3 mum -2.44 m 5.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 -89.5 mum 106 mum -2.43 m 0 eV 0 eV 8.94 mm 8.94 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1678, Parent ID = 1614 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -89.5 mum 106 mum -2.43 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 -89.5 mum 106 mum -2.43 m 584 keV 0 eV 42.7 nm 42.7 nm Target eBrem + 2 -108 mum 109 mum -2.43 m 0 eV 584 keV 372 mum 372 mum Target eIoni + 3 -108 mum 109 mum -2.43 m 0 eV 0 eV 0 fm 372 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1681, Parent ID = 1678 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -108 mum 109 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.24 mm -218 mum -2.43 m 252 keV 0 eV 2.71 mm 2.71 mm Target compt + 2 -1.94 mm -1.61 mm -2.43 m 0 eV 88 keV 1.43 mm 4.14 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1683, Parent ID = 1681 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.94 mm -1.61 mm -2.43 m 164 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.95 mm -1.62 mm -2.43 m 0 eV 164 keV 60.1 mum 60.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1682, Parent ID = 1681 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.24 mm -218 mum -2.43 m 259 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.25 mm -215 mum -2.43 m 0 eV 259 keV 120 mum 120 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1680, Parent ID = 1678 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -108 mum 109 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.8 mm 401 mum -2.43 m 0 eV 88 keV 2.43 mm 2.43 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1684, Parent ID = 1680 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.8 mm 401 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.82 mm 399 mum -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1679, Parent ID = 1678 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -89.5 mum 106 mum -2.43 m 456 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.11 mm 154 mum -2.43 m 0 eV 88 keV 2.92 mm 2.92 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1685, Parent ID = 1679 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.11 mm 154 mum -2.43 m 368 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.11 mm 143 mum -2.43 m 0 eV 368 keV 199 mum 199 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1677, Parent ID = 1614 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -89.5 mum 106 mum -2.43 m 3.76 MeV 0 eV 0 fm 0 fm Target initStep + 1 41.2 mum 343 mum -2.43 m 2.82 MeV 425 keV 447 mum 447 mum Target eBrem + 2 -61.8 mum 516 mum -2.43 m 0 eV 2.82 MeV 2.22 mm 2.66 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1686, Parent ID = 1677 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 41.2 mum 343 mum -2.43 m 516 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.5 mm 3.91 mm -2.43 m 0 eV 88 keV 4.99 mm 4.99 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1687, Parent ID = 1686 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.5 mm 3.91 mm -2.43 m 428 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.52 mm 3.92 mm -2.43 m 0 eV 428 keV 245 mum 245 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1613, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -39.5 mum -14.5 mum -2.44 m 12.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 121 mum 49.8 mum -2.43 m 0 eV 0 eV 1.2 cm 1.2 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1689, Parent ID = 1613 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 121 mum 49.8 mum -2.43 m 7.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 130 mum -249 mum -2.42 m 5.41 MeV 843 keV 814 mum 814 mum Target eBrem + 2 -950 mum 611 mum -2.42 m 1.52 MeV 2.09 MeV 1.8 mm 2.61 mm Target eBrem + 3 -857 mum 716 mum -2.42 m 0 eV 1.52 MeV 1.18 mm 3.79 mm Target eIoni + 4 -857 mum 716 mum -2.42 m 0 eV 0 eV 0 fm 3.79 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1693, Parent ID = 1689 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -857 mum 716 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.24 mm 793 mum -2.42 m 218 keV 0 eV 557 mum 557 mum Target compt + 2 -1.66 mm 497 mum -2.42 m 0 eV 88 keV 973 mum 1.53 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1695, Parent ID = 1693 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.66 mm 497 mum -2.42 m 130 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.66 mm 495 mum -2.42 m 0 eV 130 keV 41.8 mum 41.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1694, Parent ID = 1693 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.24 mm 793 mum -2.42 m 293 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.25 mm 796 mum -2.42 m 0 eV 293 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1692, Parent ID = 1689 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -857 mum 716 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.16 mm 115 mum -2.43 m 427 keV 0 eV 4.35 mm 4.35 mm Target compt + 2 2.38 mm -459 mum -2.43 m 0 eV 88 keV 1.27 mm 5.62 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1697, Parent ID = 1692 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.38 mm -459 mum -2.43 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 2.38 mm -449 mum -2.43 m 0 eV 339 keV 177 mum 177 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1696, Parent ID = 1692 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.16 mm 115 mum -2.43 m 83.9 keV 0 eV 0 fm 0 fm Target initStep + 1 2.16 mm 116 mum -2.43 m 0 eV 83.9 keV 20.9 mum 20.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1691, Parent ID = 1689 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -950 mum 611 mum -2.42 m 1.79 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.7 mm 1.03 cm -2.43 m 1.27 MeV 0 eV 1.42 cm 1.42 cm Target compt + 2 2.5 cm 1.91 cm -2.45 m 1.27 MeV 0 eV 2.79 cm 4.21 cm Target Transportation + 3 42.2 cm 22.1 cm -2.91 m 1.27 MeV 0 eV 64 cm 68.3 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1698, Parent ID = 1691 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.7 mm 1.03 cm -2.43 m 527 keV 0 eV 0 fm 0 fm Target initStep + 1 7.71 mm 1.03 cm -2.43 m 0 eV 527 keV 324 mum 324 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1690, Parent ID = 1689 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 130 mum -249 mum -2.42 m 806 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.21 cm -1.13 cm -2.4 m 806 keV 0 eV 2.98 cm 2.98 cm Target Transportation + 2 -2.39 m -2.15 m 2.4 m 806 keV 0 eV 5.77 m 5.8 m Tracker Transportation + 3 -2.64 m -2.38 m 2.91 m 806 keV 0 eV 61.3 cm 6.41 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1688, Parent ID = 1613 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 121 mum 49.8 mum -2.43 m 4.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 -437 mum -455 mum -2.43 m 2.21 MeV 1.55 MeV 1.16 mm 1.16 mm Target eBrem + 2 -332 mum -426 mum -2.42 m 0 eV 2.21 MeV 1.73 mm 2.89 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1699, Parent ID = 1688 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -437 mum -455 mum -2.43 m 544 keV 0 eV 0 fm 0 fm Target initStep + 1 3.34 mm 1.2 mm -2.42 m 0 eV 88 keV 6.39 mm 6.39 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1700, Parent ID = 1699 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.34 mm 1.2 mm -2.42 m 456 keV 0 eV 0 fm 0 fm Target initStep + 1 3.35 mm 1.21 mm -2.42 m 0 eV 456 keV 267 mum 267 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1612, Parent ID = 1227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -30.1 mum -14.1 mum -2.44 m 15.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -46 mum 192 mum -2.43 m 0 eV 0 eV 8.55 mm 8.55 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1702, Parent ID = 1612 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -46 mum 192 mum -2.43 m 9.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -84.2 mum 34.1 mum -2.43 m 8.54 MeV 613 keV 392 mum 392 mum Target eBrem + 2 -116 mum -19 mum -2.43 m 3.45 MeV 179 keV 180 mum 572 mum Target eBrem + 3 -249 mum -256 mum -2.43 m 0 eV 3.45 MeV 2.75 mm 3.32 mm Target eIoni + 4 -249 mum -256 mum -2.43 m 0 eV 0 eV 0 fm 3.32 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1706, Parent ID = 1702 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -249 mum -256 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.2 mm -2.62 mm -2.43 m 299 keV 0 eV 4.29 mm 4.29 mm Target compt + 2 -1.98 mm -20.6 mum -2.44 m 0 eV 88 keV 7.31 mm 1.16 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1708, Parent ID = 1706 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.98 mm -20.6 mum -2.44 m 211 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.99 mm -19.4 mum -2.44 m 0 eV 211 keV 88.4 mum 88.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1707, Parent ID = 1706 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 mm -2.62 mm -2.43 m 212 keV 0 eV 0 fm 0 fm Target initStep + 1 1.2 mm -2.63 mm -2.43 m 0 eV 212 keV 89.7 mum 89.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1705, Parent ID = 1702 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -249 mum -256 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.57 mm 1.9 mm -2.43 m 180 keV 0 eV 3.91 mm 3.91 mm Target compt + 2 -1.5 mm 1.89 mm -2.43 m 0 eV 88 keV 177 mum 4.08 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1710, Parent ID = 1705 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.5 mm 1.89 mm -2.43 m 91.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.5 mm 1.9 mm -2.43 m 0 eV 91.7 keV 24.1 mum 24.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1709, Parent ID = 1705 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.57 mm 1.9 mm -2.43 m 331 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.57 mm 1.9 mm -2.43 m 0 eV 331 keV 171 mum 171 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1704, Parent ID = 1702 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -116 mum -19 mum -2.43 m 4.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 mm -4.99 mm -2.42 m 0 eV 0 eV 1.08 cm 1.08 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1712, Parent ID = 1704 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.15 mm -4.99 mm -2.42 m 2.74 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.34 mm -5.13 mm -2.42 m 1.34 MeV 1.4 MeV 1.15 mm 1.15 mm Target eBrem + 2 -1.55 mm -5.23 mm -2.42 m 155 keV 361 keV 358 mum 1.5 mm Target eBrem + 3 -1.55 mm -5.22 mm -2.42 m 0 eV 155 keV 52 mum 1.56 mm Target eIoni + 4 -1.55 mm -5.22 mm -2.42 m 0 eV 0 eV 0 fm 1.56 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1715, Parent ID = 1712 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.55 mm -5.22 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.51 mm 2.3 mm -2.41 m 0 eV 88 keV 1.42 cm 1.42 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1716, Parent ID = 1715 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.51 mm 2.3 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.51 mm 2.3 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1714, Parent ID = 1712 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.55 mm -5.22 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.46 mm -5.95 mm -2.42 m 387 keV 0 eV 1.38 mm 1.38 mm Target compt + 2 -1.38 mm -5.47 mm -2.42 m 0 eV 88 keV 1.88 mm 3.26 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1718, Parent ID = 1714 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.38 mm -5.47 mm -2.42 m 299 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.39 mm -5.46 mm -2.42 m 0 eV 299 keV 148 mum 148 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1717, Parent ID = 1714 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.46 mm -5.95 mm -2.42 m 124 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.46 mm -5.96 mm -2.42 m 0 eV 124 keV 38.7 mum 38.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1713, Parent ID = 1712 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.55 mm -5.23 mm -2.42 m 829 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.33 mm -968 mum -2.42 m 774 keV 0 eV 8.43 mm 8.43 mm Target compt + 2 -2.48 cm 1.35 cm -2.43 m 556 keV 0 eV 2.56 cm 3.41 cm Target compt + 3 -2.5 cm 1.38 cm -2.43 m 556 keV 0 eV 404 mum 3.45 cm Target Transportation + 4 -11.4 cm 19.9 cm -2.4 m 556 keV 0 eV 20.9 cm 24.3 cm World Transportation + 5 -1.17 m 2.4 m -1.99 m 556 keV 0 eV 2.48 m 2.72 m Tracker Transportation + 6 -1.42 m 2.91 m -1.89 m 556 keV 0 eV 57.4 cm 3.29 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1720, Parent ID = 1713 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.48 cm 1.35 cm -2.43 m 217 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.48 cm 1.35 cm -2.43 m 0 eV 217 keV 92.9 mum 92.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1719, Parent ID = 1713 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.33 mm -968 mum -2.42 m 54.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.33 mm -968 mum -2.42 m 0 eV 54.9 keV 10.5 mum 10.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1711, Parent ID = 1704 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.15 mm -4.99 mm -2.42 m 1.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.18 mm -5.05 mm -2.42 m 0 eV 1.15 MeV 847 mum 847 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1703, Parent ID = 1702 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -84.2 mum 34.1 mum -2.43 m 746 keV 0 eV 0 fm 0 fm Target initStep + 1 -987 mum -799 mum -2.43 m 547 keV 0 eV 2.22 mm 2.22 mm Target compt + 2 -1.85 cm 9.4 mm -2.4 m 0 eV 88 keV 3.24 cm 3.46 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1722, Parent ID = 1703 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.85 cm 9.4 mm -2.4 m 459 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.85 cm 9.4 mm -2.4 m 0 eV 459 keV 269 mum 269 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1721, Parent ID = 1703 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -987 mum -799 mum -2.43 m 199 keV 0 eV 0 fm 0 fm Target initStep + 1 -987 mum -803 mum -2.43 m 0 eV 199 keV 81 mum 81 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1701, Parent ID = 1612 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -46 mum 192 mum -2.43 m 4.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 -233 mum -1.08 mm -2.43 m 670 keV 2.99 MeV 2.42 mm 2.42 mm Target eBrem + 2 -250 mum -1.07 mm -2.43 m 0 eV 670 keV 442 mum 2.86 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1723, Parent ID = 1701 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -233 mum -1.08 mm -2.43 m 781 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.66 mm 4.21 mm -2.43 m 614 keV 0 eV 5.79 mm 5.79 mm Target compt + 2 -7.82 mm 9.17 mm -2.42 m 315 keV 0 eV 8.18 mm 1.4 cm Target compt + 3 -7.54 mm 9.56 mm -2.42 m 0 eV 88 keV 623 mum 1.46 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1726, Parent ID = 1723 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.54 mm 9.56 mm -2.42 m 227 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.54 mm 9.56 mm -2.42 m 0 eV 227 keV 99.2 mum 99.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1725, Parent ID = 1723 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.82 mm 9.17 mm -2.42 m 299 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.83 mm 9.17 mm -2.42 m 0 eV 299 keV 148 mum 148 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1724, Parent ID = 1723 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.66 mm 4.21 mm -2.43 m 167 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.66 mm 4.22 mm -2.43 m 0 eV 167 keV 61.9 mum 61.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 111, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.92 mum -8.22 mum -2.44 m 858 keV 0 eV 0 fm 0 fm Target initStep + 1 -66.1 mum -30.6 mum -2.43 m 731 keV 0 eV 8.09 mm 8.09 mm Target compt + 2 -807 mum -967 mum -2.43 m 0 eV 88 keV 2.67 mm 1.08 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1728, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -807 mum -967 mum -2.43 m 643 keV 0 eV 0 fm 0 fm Target initStep + 1 -802 mum -974 mum -2.43 m 0 eV 643 keV 419 mum 419 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1727, Parent ID = 111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -66.1 mum -30.6 mum -2.43 m 126 keV 0 eV 0 fm 0 fm Target initStep + 1 -64.7 mum -28.8 mum -2.43 m 0 eV 126 keV 40.1 mum 40.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 110, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.14 mum -1.66 mum -2.44 m 1.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.55 mum -2.65 mum -2.44 m 0 eV 88 keV 372 mum 372 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1729, Parent ID = 110 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.55 mum -2.65 mum -2.44 m 996 keV 0 eV 0 fm 0 fm Target initStep + 1 -23.1 mum 14.8 mum -2.44 m 0 eV 996 keV 717 mum 717 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 109, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.98 mum 1.63 mum -2.44 m 15 MeV 0 eV 0 fm 0 fm Target initStep + 1 -55.2 mum -21.3 mum -2.41 m 0 eV 0 eV 3.41 cm 3.41 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1731, Parent ID = 109 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -55.2 mum -21.3 mum -2.41 m 11.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -17.8 mum 146 mum -2.41 m 8.58 MeV 621 keV 520 mum 520 mum Target eBrem + 2 -1.41 mm 2.05 mm -2.41 m 3.91 MeV 3.87 MeV 3.62 mm 4.14 mm Target eBrem + 3 -544 mum 1.84 mm -2.41 m 0 eV 2.14 MeV 1.72 mm 5.86 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1735, Parent ID = 1731 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -544 mum 1.84 mm -2.41 m 2.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.98 mm -3.1 mm -2.41 m 526 keV 0 eV 9.23 mm 9.23 mm Target compt + 2 8.86 mm -1.95 mm -2.41 m 0 eV 88 keV 2.59 mm 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1737, Parent ID = 1735 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.86 mm -1.95 mm -2.41 m 438 keV 0 eV 0 fm 0 fm Target initStep + 1 8.87 mm -1.95 mm -2.41 m 0 eV 438 keV 253 mum 253 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1736, Parent ID = 1735 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.98 mm -3.1 mm -2.41 m 1.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.08 mm -3.2 mm -2.41 m 0 eV 1.93 MeV 1.5 mm 1.5 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1734, Parent ID = 1731 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -544 mum 1.84 mm -2.41 m 335 keV 0 eV 0 fm 0 fm Target initStep + 1 -805 mum 2.32 mm -2.41 m 228 keV 0 eV 580 mum 580 mum Target compt + 2 822 mum 3.64 mm -2.41 m 0 eV 88 keV 2.27 mm 2.85 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1739, Parent ID = 1734 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 822 mum 3.64 mm -2.41 m 140 keV 0 eV 0 fm 0 fm Target initStep + 1 821 mum 3.65 mm -2.41 m 0 eV 140 keV 47.4 mum 47.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1738, Parent ID = 1734 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -805 mum 2.32 mm -2.41 m 106 keV 0 eV 0 fm 0 fm Target initStep + 1 -807 mum 2.32 mm -2.41 m 0 eV 106 keV 30.5 mum 30.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1733, Parent ID = 1731 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.41 mm 2.05 mm -2.41 m 807 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.27 mm -6.04 mm -2.4 m 807 keV 0 eV 1.14 cm 1.14 cm Target Transportation + 2 -85.2 cm -2.4 m -18.5 cm 807 keV 0 eV 3.37 m 3.38 m Tracker Transportation + 3 -1.03 m -2.91 m 28.7 cm 807 keV 0 eV 71.8 cm 4.1 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1732, Parent ID = 1731 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -17.8 mum 146 mum -2.41 m 2.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 257 mum -3.29 mm -2.4 m 2.03 MeV 0 eV 1.08 cm 1.08 cm Target Transportation + 2 4.34 cm -54.3 cm -80 cm 2.03 MeV 0 eV 1.69 m 1.7 m Tracker Transportation + 3 4.88 cm -61.1 cm -60 cm 2.03 MeV 0 eV 21.1 cm 1.91 m Chamber Transportation + 4 6.49 cm -81.3 cm 0 fm 2.03 MeV 0 eV 63.3 cm 2.54 m Tracker Transportation + 5 7.03 cm -88.1 cm 20 cm 2.03 MeV 0 eV 21.1 cm 2.76 m Chamber Transportation + 6 8.65 cm -1.08 m 80 cm 2.03 MeV 0 eV 63.3 cm 3.39 m Tracker Transportation + 7 9.19 cm -1.15 m 1 m 2.03 MeV 0 eV 21.1 cm 3.6 m Chamber Transportation + 8 10.8 cm -1.35 m 1.6 m 2.03 MeV 0 eV 63.3 cm 4.23 m Tracker Transportation + 9 11.3 cm -1.42 m 1.8 m 2.03 MeV 0 eV 21.1 cm 4.44 m Chamber Transportation + 10 13 cm -1.62 m 2.4 m 2.03 MeV 0 eV 63.3 cm 5.08 m Tracker Transportation + 11 14.3 cm -1.8 m 2.91 m 2.03 MeV 0 eV 53.8 cm 5.62 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1730, Parent ID = 109 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -55.2 mum -21.3 mum -2.41 m 2.72 MeV 0 eV 0 fm 0 fm Target initStep + 1 -533 mum 202 mum -2.41 m 1.41 MeV 820 keV 817 mum 817 mum Target eBrem + 2 -579 mum 50.5 mum -2.41 m 79.7 keV 357 keV 303 mum 1.12 mm Target eBrem + 3 -579 mum 50.9 mum -2.41 m 0 eV 79.7 keV 19.1 mum 1.14 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1741, Parent ID = 1730 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -579 mum 50.5 mum -2.41 m 976 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.27 mm -2.82 mm -2.4 m 976 keV 0 eV 1.32 cm 1.32 cm Target Transportation + 2 -2.4 m -89.5 cm 80.2 cm 976 keV 0 eV 4.1 m 4.11 m Tracker Transportation + 3 -2.91 m -1.09 m 1.49 m 976 keV 0 eV 87.3 cm 4.98 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1740, Parent ID = 1730 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -533 mum 202 mum -2.41 m 487 keV 0 eV 0 fm 0 fm Target initStep + 1 6.83 mum 420 mum -2.41 m 0 eV 88 keV 778 mum 778 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1742, Parent ID = 1740 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.83 mum 420 mum -2.41 m 399 keV 0 eV 0 fm 0 fm Target initStep + 1 9.61 mum 430 mum -2.41 m 0 eV 399 keV 222 mum 222 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 108, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.15 mum 1.64 mum -2.44 m 712 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.71 mum 256 nm -2.44 m 0 eV 0 eV 4.38 mm 4.38 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1744, Parent ID = 108 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.71 mum 256 nm -2.44 m 614 MeV 0 eV 0 fm 0 fm Target initStep + 1 25.3 mum -22.5 mum -2.44 m 513 MeV 2.97 MeV 2.1 mm 2.1 mm Target eBrem + 2 26.6 mum -24.1 mum -2.44 m 505 MeV 212 keV 178 mum 2.28 mm Target eBrem + 3 48.8 mum -12.6 mum -2.44 m 501 MeV 3.33 MeV 2.28 mm 4.56 mm Target eBrem + 4 53.6 mum -14.3 mum -2.44 m 500 MeV 360 keV 281 mum 4.85 mm Target eBrem + 5 66.2 mum -18.8 mum -2.44 m 499 MeV 525 keV 504 mum 5.35 mm Target eBrem + 6 85.8 mum -15 mum -2.43 m 399 MeV 783 keV 710 mum 6.06 mm Target eBrem + 7 93.8 mum -18.4 mum -2.43 m 397 MeV 315 keV 227 mum 6.29 mm Target eBrem + 8 98.5 mum -18.8 mum -2.43 m 395 MeV 129 keV 124 mum 6.41 mm Target eBrem + 9 120 mum -23.2 mum -2.43 m 139 MeV 1.14 MeV 826 mum 7.24 mm Target eBrem + 10 118 mum -28 mum -2.43 m 119 MeV 12.3 MeV 205 mum 7.44 mm Target eBrem + 11 108 mum -77.6 mum -2.43 m 94.5 MeV 915 keV 576 mum 8.02 mm Target eBrem + 12 122 mum -264 mum -2.43 m 92.2 MeV 943 keV 819 mum 8.84 mm Target eBrem + 13 72.2 mum -576 mum -2.43 m 90.4 MeV 1.45 MeV 1.03 mm 9.86 mm Target eBrem + 14 245 mum -964 mum -2.43 m 86.4 MeV 2.49 MeV 1.5 mm 1.14 cm Target eBrem + 15 185 mum -1.18 mm -2.43 m 83.4 MeV 749 keV 576 mum 1.19 cm Target eBrem + 16 4.67 mum -2.27 mm -2.43 m 75.8 MeV 6.87 MeV 2.6 mm 1.45 cm Target eBrem + 17 -71.5 mum -2.6 mm -2.43 m 63.7 MeV 1.46 MeV 1.1 mm 1.56 cm Target eBrem + 18 -117 mum -3.04 mm -2.42 m 37.2 MeV 2 MeV 1.42 mm 1.71 cm Target eBrem + 19 -110 mum -3.26 mm -2.42 m 34.8 MeV 663 keV 516 mum 1.76 cm Target eBrem + 20 -86.6 mum -3.38 mm -2.42 m 32.5 MeV 324 keV 316 mum 1.79 cm Target eBrem + 21 -80.9 mum -3.4 mm -2.42 m 29.6 MeV 175 keV 133 mum 1.8 cm Target eBrem + 22 -281 mum -3.4 mm -2.42 m 25 MeV 3.79 MeV 2.93 mm 2.1 cm Target eBrem + 23 -115 mum -3.27 mm -2.42 m 23.1 MeV 1.48 MeV 1.18 mm 2.21 cm Target eBrem + 24 128 mum -3.22 mm -2.42 m 19.3 MeV 3.47 MeV 680 mum 2.28 cm Target eBrem + 25 283 mum -3.16 mm -2.42 m 7.9 MeV 296 keV 267 mum 2.31 cm Target eBrem + 26 3.33 mm -1.36 mm -2.42 m 3.46 MeV 4.14 MeV 3.76 mm 2.68 cm Target eBrem + 27 2.22 mm -352 mum -2.42 m 958 keV 2.09 MeV 1.91 mm 2.88 cm Target eBrem + 28 2.2 mm -382 mum -2.42 m 0 eV 958 keV 694 mum 2.94 cm Target eIoni + 29 2.2 mm -382 mum -2.42 m 0 eV 0 eV 0 fm 2.94 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1773, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.2 mm -382 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.6 mm -40.9 mum -2.42 m 239 keV 0 eV 9.51 mm 9.51 mm Target compt + 2 -5.57 mm -16.7 mum -2.42 m 0 eV 88 keV 38.7 mum 9.55 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1775, Parent ID = 1773 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.57 mm -16.7 mum -2.42 m 151 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.57 mm -13.8 mum -2.42 m 0 eV 151 keV 52.9 mum 52.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1774, Parent ID = 1773 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.6 mm -40.9 mum -2.42 m 272 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.6 mm -42.8 mum -2.42 m 0 eV 272 keV 130 mum 130 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1772, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.2 mm -382 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.1 mm -509 mum -2.42 m 0 eV 88 keV 3.54 mm 3.54 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1776, Parent ID = 1772 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.1 mm -509 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.11 mm -510 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1771, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.22 mm -352 mum -2.42 m 410 keV 0 eV 0 fm 0 fm Target initStep + 1 2.31 mm -749 mum -2.42 m 208 keV 0 eV 938 mum 938 mum Target compt + 2 2.52 mm -854 mum -2.42 m 0 eV 88 keV 268 mum 1.21 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1778, Parent ID = 1771 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.52 mm -854 mum -2.42 m 120 keV 0 eV 0 fm 0 fm Target initStep + 1 2.52 mm -852 mum -2.42 m 0 eV 120 keV 36.8 mum 36.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1777, Parent ID = 1771 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.31 mm -749 mum -2.42 m 203 keV 0 eV 0 fm 0 fm Target initStep + 1 2.31 mm -750 mum -2.42 m 0 eV 203 keV 83.3 mum 83.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1770, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.33 mm -1.36 mm -2.42 m 299 keV 0 eV 0 fm 0 fm Target initStep + 1 3.39 mm -1.24 mm -2.42 m 0 eV 88 keV 176 mum 176 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1779, Parent ID = 1770 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.39 mm -1.24 mm -2.42 m 211 keV 0 eV 0 fm 0 fm Target initStep + 1 3.4 mm -1.24 mm -2.42 m 0 eV 211 keV 88.5 mum 88.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1769, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 283 mum -3.16 mm -2.42 m 11.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.51 mm -2.07 mm -2.41 m 0 eV 0 eV 9.92 mm 9.92 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1781, Parent ID = 1769 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.51 mm -2.07 mm -2.41 m 7.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.79 mm -2.53 mm -2.41 m 5.6 MeV 1.13 MeV 932 mum 932 mum Target eBrem + 2 9.36 mm -3.89 mm -2.41 m 1.24 MeV 4.37 MeV 3.65 mm 4.58 mm Target eBrem + 3 9.02 mm -3.84 mm -2.41 m 581 keV 658 keV 532 mum 5.12 mm Target eBrem + 4 8.98 mm -3.85 mm -2.41 m 0 eV 581 keV 369 mum 5.49 mm Target eIoni + 5 8.98 mm -3.85 mm -2.41 m 0 eV 0 eV 0 fm 5.49 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1784, Parent ID = 1781 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.98 mm -3.85 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.05 cm -3.79 mm -2.41 m 244 keV 0 eV 1.8 mm 1.8 mm Target compt + 2 1.03 cm -3.57 mm -2.41 m 127 keV 0 eV 388 mum 2.19 mm Target compt + 3 1.05 cm -3.68 mm -2.41 m 0 eV 88 keV 472 mum 2.66 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1787, Parent ID = 1784 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.05 cm -3.68 mm -2.41 m 39.1 keV 0 eV 0 fm 0 fm Target initStep + 1 1.05 cm -3.68 mm -2.41 m 0 eV 39.1 keV 6 mum 6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1786, Parent ID = 1784 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.03 cm -3.57 mm -2.41 m 117 keV 0 eV 0 fm 0 fm Target initStep + 1 1.03 cm -3.57 mm -2.41 m 0 eV 117 keV 35.4 mum 35.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1785, Parent ID = 1784 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.05 cm -3.79 mm -2.41 m 267 keV 0 eV 0 fm 0 fm Target initStep + 1 1.05 cm -3.79 mm -2.41 m 0 eV 267 keV 126 mum 126 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1783, Parent ID = 1781 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.98 mm -3.85 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.48 mm -4.23 mm -2.41 m 0 eV 88 keV 1.25 cm 1.25 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1788, Parent ID = 1783 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.48 mm -4.23 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.5 mm -4.24 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1782, Parent ID = 1781 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.79 mm -2.53 mm -2.41 m 334 keV 0 eV 0 fm 0 fm Target initStep + 1 8.73 mm -3.01 mm -2.41 m 0 eV 88 keV 1.13 mm 1.13 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1789, Parent ID = 1782 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.73 mm -3.01 mm -2.41 m 246 keV 0 eV 0 fm 0 fm Target initStep + 1 8.73 mm -3.01 mm -2.41 m 0 eV 246 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1780, Parent ID = 1769 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.51 mm -2.07 mm -2.41 m 3.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.74 mm -1.91 mm -2.41 m 0 eV 3.04 MeV 2.39 mm 2.39 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1768, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 128 mum -3.22 mm -2.42 m 291 keV 0 eV 0 fm 0 fm Target initStep + 1 1.79 mm -3.05 mm -2.42 m 0 eV 88 keV 3.2 mm 3.2 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1790, Parent ID = 1768 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.79 mm -3.05 mm -2.42 m 203 keV 0 eV 0 fm 0 fm Target initStep + 1 1.79 mm -3.05 mm -2.42 m 0 eV 203 keV 83.7 mum 83.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1767, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -115 mum -3.27 mm -2.42 m 396 keV 0 eV 0 fm 0 fm Target initStep + 1 694 mum -3.2 mm -2.42 m 0 eV 88 keV 1.68 mm 1.68 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1791, Parent ID = 1767 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 694 mum -3.2 mm -2.42 m 308 keV 0 eV 0 fm 0 fm Target initStep + 1 696 mum -3.19 mm -2.42 m 0 eV 308 keV 154 mum 154 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1766, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -281 mum -3.4 mm -2.42 m 873 keV 0 eV 0 fm 0 fm Target initStep + 1 662 mum -3.18 mm -2.42 m 544 keV 0 eV 3.15 mm 3.15 mm Target compt + 2 2.33 mm -1.39 cm -2.41 m 0 eV 88 keV 1.51 cm 1.82 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1793, Parent ID = 1766 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.33 mm -1.39 cm -2.41 m 456 keV 0 eV 0 fm 0 fm Target initStep + 1 2.33 mm -1.39 cm -2.41 m 0 eV 456 keV 267 mum 267 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1792, Parent ID = 1766 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 662 mum -3.18 mm -2.42 m 329 keV 0 eV 0 fm 0 fm Target initStep + 1 666 mum -3.17 mm -2.42 m 0 eV 329 keV 170 mum 170 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1765, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -80.9 mum -3.4 mm -2.42 m 2.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.01 mm -7.75 mm -2.4 m 0 eV 0 eV 2.3 cm 2.3 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1795, Parent ID = 1765 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.01 mm -7.75 mm -2.4 m 821 keV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -7.79 mm -2.4 m 0 eV 821 keV 575 mum 575 mum Target eIoni + 2 2.04 mm -7.79 mm -2.4 m 0 eV 0 eV 0 fm 575 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1797, Parent ID = 1795 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mm -7.79 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm -8.79 mm -2.4 m 511 keV 0 eV 1.16 mm 1.16 mm Target Transportation + 2 77.3 cm -2.4 m -1.25 m 511 keV 0 eV 2.76 m 2.76 m Tracker Transportation + 3 93.7 cm -2.91 m -1.01 m 511 keV 0 eV 58.9 cm 3.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1796, Parent ID = 1795 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mm -7.79 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.63 mm -6.54 mm -2.4 m 0 eV 88 keV 1.44 mm 1.44 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1798, Parent ID = 1796 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.63 mm -6.54 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.63 mm -6.52 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1794, Parent ID = 1765 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.01 mm -7.75 mm -2.4 m 856 keV 0 eV 0 fm 0 fm Target initStep + 1 1.99 mm -7.74 mm -2.4 m 0 eV 856 keV 599 mum 599 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1764, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -86.6 mum -3.38 mm -2.42 m 1.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 938 mum -7.85 mm -2.4 m 1.97 MeV 0 eV 2.36 cm 2.36 cm Target Transportation + 2 3.63 cm -16.2 cm -1.6 m 1.97 MeV 0 eV 81.5 cm 83.9 cm Tracker Transportation + 3 4.51 cm -20.1 cm -1.4 m 1.97 MeV 0 eV 20.4 cm 1.04 m Chamber Transportation + 4 7.16 cm -31.6 cm -80 cm 1.97 MeV 0 eV 61.2 cm 1.65 m Tracker Transportation + 5 8.04 cm -35.5 cm -60 cm 1.97 MeV 0 eV 20.4 cm 1.86 m Chamber Transportation + 6 10.7 cm -47.1 cm 0 fm 1.97 MeV 0 eV 61.2 cm 2.47 m Tracker Transportation + 7 11.6 cm -50.9 cm 20 cm 1.97 MeV 0 eV 20.4 cm 2.67 m Chamber Transportation + 8 14.2 cm -62.5 cm 80 cm 1.97 MeV 0 eV 61.2 cm 3.29 m Tracker Transportation + 9 15.1 cm -66.3 cm 1 m 1.97 MeV 0 eV 20.4 cm 3.49 m Chamber Transportation + 10 17.8 cm -77.9 cm 1.6 m 1.97 MeV 0 eV 61.2 cm 4.1 m Tracker Transportation + 11 18.6 cm -81.8 cm 1.8 m 1.97 MeV 0 eV 20.4 cm 4.3 m Chamber Transportation + 12 21.3 cm -93.3 cm 2.4 m 1.97 MeV 0 eV 61.2 cm 4.92 m Tracker Transportation + 13 23.5 cm -1.03 m 2.91 m 1.97 MeV 0 eV 52 cm 5.44 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1763, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -110 mum -3.26 mm -2.42 m 1.74 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.4 mm -9.13 mm -2.41 m 1.12 MeV 0 eV 1.9 cm 1.9 cm Target compt + 2 3.79 mm -1.39 cm -2.4 m 293 keV 0 eV 6.84 mm 2.58 cm Target compt + 3 7.92 mm -9.85 mm -2.4 m 137 keV 0 eV 5.8 mm 3.16 cm Target compt + 4 7.68 mm -1.01 cm -2.4 m 0 eV 88 keV 329 mum 3.2 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1802, Parent ID = 1763 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.68 mm -1.01 cm -2.4 m 48.7 keV 0 eV 0 fm 0 fm Target initStep + 1 7.68 mm -1.01 cm -2.4 m 0 eV 48.7 keV 8.58 mum 8.58 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1801, Parent ID = 1763 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.92 mm -9.85 mm -2.4 m 156 keV 0 eV 0 fm 0 fm Target initStep + 1 7.92 mm -9.84 mm -2.4 m 0 eV 156 keV 55.8 mum 55.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1800, Parent ID = 1763 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.79 mm -1.39 cm -2.4 m 825 keV 0 eV 0 fm 0 fm Target initStep + 1 3.8 mm -1.39 cm -2.4 m 0 eV 825 keV 572 mum 572 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1799, Parent ID = 1763 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.4 mm -9.13 mm -2.41 m 619 keV 0 eV 0 fm 0 fm Target initStep + 1 1.4 mm -9.13 mm -2.41 m 0 eV 619 keV 399 mum 399 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1762, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -117 mum -3.04 mm -2.42 m 24.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 320 mum -7.05 mm -2.41 m 0 eV 0 eV 1.17 cm 1.17 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1804, Parent ID = 1762 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 320 mum -7.05 mm -2.41 m 20 MeV 0 eV 0 fm 0 fm Target initStep + 1 473 mum -7.22 mm -2.41 m 16.8 MeV 2.25 MeV 1.5 mm 1.5 mm Target eBrem + 2 -192 mum -7.47 mm -2.41 m 15.8 MeV 1.03 MeV 750 mum 2.25 mm Target eBrem + 3 -201 mum -7.47 mm -2.41 m 15.2 MeV 15.5 keV 11.7 mum 2.26 mm Target eBrem + 4 -740 mum -8.02 mm -2.41 m 3.07 MeV 887 keV 777 mum 3.04 mm Target eBrem + 5 -896 mum -8.46 mm -2.41 m 1.85 MeV 725 keV 647 mum 3.68 mm Target eBrem + 6 -1.01 mm -8.61 mm -2.41 m 0 eV 1.85 MeV 1.46 mm 5.14 mm Target eIoni + 7 -1.01 mm -8.61 mm -2.41 m 0 eV 0 eV 0 fm 5.14 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1810, Parent ID = 1804 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.01 mm -8.61 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -923 mum -8.73 mm -2.41 m 0 eV 88 keV 694 mum 694 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1811, Parent ID = 1810 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -923 mum -8.73 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -915 mum -8.74 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1809, Parent ID = 1804 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.01 mm -8.61 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 mm -8.57 mm -2.41 m 345 keV 0 eV 270 mum 270 mum Target compt + 2 805 mum -1.11 cm -2.41 m 0 eV 88 keV 4.31 mm 4.58 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1813, Parent ID = 1809 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 805 mum -1.11 cm -2.41 m 257 keV 0 eV 0 fm 0 fm Target initStep + 1 808 mum -1.11 cm -2.41 m 0 eV 257 keV 119 mum 119 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1812, Parent ID = 1809 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 mm -8.57 mm -2.41 m 166 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 mm -8.57 mm -2.41 m 0 eV 166 keV 61.4 mum 61.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1808, Parent ID = 1804 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -896 mum -8.46 mm -2.41 m 502 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.85 mm -8.72 mm -2.41 m 217 keV 0 eV 1.11 mm 1.11 mm Target compt + 2 -1.76 mm -8.67 mm -2.41 m 0 eV 88 keV 134 mum 1.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1815, Parent ID = 1808 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.76 mm -8.67 mm -2.41 m 129 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.76 mm -8.67 mm -2.41 m 0 eV 129 keV 41.4 mum 41.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1814, Parent ID = 1808 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.85 mm -8.72 mm -2.41 m 285 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.85 mm -8.72 mm -2.41 m 0 eV 285 keV 139 mum 139 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1807, Parent ID = 1804 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -740 mum -8.02 mm -2.41 m 11.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.3 cm -1.02 cm -2.41 m 7.71 MeV 0 eV 1.3 cm 1.3 cm Target compt + 2 -2.5 cm -1.32 cm -2.41 m 7.71 MeV 0 eV 1.25 cm 2.55 cm Target Transportation + 3 -8.16 cm -2.74 cm -2.4 m 7.71 MeV 0 eV 5.87 cm 8.42 cm World Transportation + 4 -2.4 m -60.8 cm -2.14 m 7.71 MeV 0 eV 2.4 m 2.49 m Tracker Transportation + 5 -2.91 m -73.6 cm -2.09 m 7.71 MeV 0 eV 52.9 cm 3.02 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1816, Parent ID = 1807 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.3 cm -1.02 cm -2.41 m 3.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.42 cm -9.79 mm -2.41 m 952 keV 2.63 MeV 2.31 mm 2.31 mm Target eBrem + 2 -1.41 cm -9.81 mm -2.41 m 0 eV 952 keV 680 mum 2.99 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1806, Parent ID = 1804 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -201 mum -7.47 mm -2.41 m 516 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.38 mm -9.01 mm -2.41 m 386 keV 0 eV 2.76 mm 2.76 mm Target compt + 2 -5.26 mm -1.03 cm -2.41 m 232 keV 0 eV 3.71 mm 6.47 mm Target compt + 3 -7.09 mm -9.01 mm -2.41 m 0 eV 88 keV 2.54 mm 9.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1819, Parent ID = 1806 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.09 mm -9.01 mm -2.41 m 144 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.09 mm -9.01 mm -2.41 m 0 eV 144 keV 49.6 mum 49.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1818, Parent ID = 1806 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.26 mm -1.03 cm -2.41 m 153 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.26 mm -1.03 cm -2.41 m 0 eV 153 keV 54.2 mum 54.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1817, Parent ID = 1806 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.38 mm -9.01 mm -2.41 m 130 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.39 mm -9.01 mm -2.41 m 0 eV 130 keV 42.2 mum 42.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1805, Parent ID = 1804 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 473 mum -7.22 mm -2.41 m 978 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 cm -1.56 cm -2.41 m 877 keV 0 eV 1.69 cm 1.69 cm Target compt + 2 -2.22 cm -2.5 cm -2.4 m 877 keV 0 eV 1.44 cm 3.13 cm Target Transportation + 3 -2.32 cm -2.6 cm -2.4 m 877 keV 0 eV 1.56 mm 3.29 cm World Transportation + 4 -2.21 m -2.4 m -72.3 cm 877 keV 0 eV 3.64 m 3.67 m Tracker Transportation + 5 -2.68 m -2.91 m -36.2 cm 877 keV 0 eV 78.2 cm 4.45 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1820, Parent ID = 1805 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.35 cm -1.56 cm -2.41 m 102 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.35 cm -1.56 cm -2.41 m 0 eV 102 keV 28.4 mum 28.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1803, Parent ID = 1762 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 320 mum -7.05 mm -2.41 m 3.48 MeV 0 eV 0 fm 0 fm Target initStep + 1 -104 mum -7.93 mm -2.41 m 2.03 MeV 1.45 MeV 1.36 mm 1.36 mm Target eBrem + 2 270 mum -7.91 mm -2.41 m 1.15 MeV 874 keV 676 mum 2.04 mm Target eBrem + 3 376 mum -7.76 mm -2.41 m 776 keV 376 keV 341 mum 2.38 mm Target eBrem + 4 375 mum -7.77 mm -2.41 m 0 eV 776 keV 531 mum 2.91 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1761, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -71.5 mum -2.6 mm -2.43 m 10.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -438 mum -6.42 mm -2.41 m 0 eV 0 eV 1.61 cm 1.61 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1822, Parent ID = 1761 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -438 mum -6.42 mm -2.41 m 9.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 -407 mum -6.59 mm -2.41 m 8.13 MeV 549 keV 411 mum 411 mum Target eBrem + 2 -2.87 mm -5.13 mm -2.41 m 567 keV 7.57 MeV 4.31 mm 4.72 mm Target eBrem + 3 -2.9 mm -5.12 mm -2.41 m 0 eV 567 keV 358 mum 5.08 mm Target eIoni + 4 -2.9 mm -5.12 mm -2.41 m 0 eV 0 eV 0 fm 5.08 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1825, Parent ID = 1822 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.9 mm -5.12 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.64 mm -4.16 mm -2.41 m 480 keV 0 eV 1.22 mm 1.22 mm Target compt + 2 -6.24 mm -2.29 mm -2.41 m 288 keV 0 eV 3.41 mm 4.63 mm Target compt + 3 -6.33 mm -2.46 mm -2.41 m 0 eV 88 keV 557 mum 5.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1828, Parent ID = 1825 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.33 mm -2.46 mm -2.41 m 200 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.33 mm -2.46 mm -2.41 m 0 eV 200 keV 81.5 mum 81.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1827, Parent ID = 1825 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.24 mm -2.29 mm -2.41 m 192 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.24 mm -2.29 mm -2.41 m 0 eV 192 keV 77 mum 77 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1826, Parent ID = 1825 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.64 mm -4.16 mm -2.41 m 31 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.64 mm -4.16 mm -2.41 m 0 eV 31 keV 4.1 mum 4.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1824, Parent ID = 1822 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.9 mm -5.12 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -979 mum -7.64 mm -2.41 m 188 keV 0 eV 3.2 mm 3.2 mm Target compt + 2 -957 mum -7.47 mm -2.41 m 0 eV 88 keV 174 mum 3.37 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1830, Parent ID = 1824 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -957 mum -7.47 mm -2.41 m 100 keV 0 eV 0 fm 0 fm Target initStep + 1 -958 mum -7.47 mm -2.41 m 0 eV 100 keV 27.6 mum 27.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1829, Parent ID = 1824 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -979 mum -7.64 mm -2.41 m 323 keV 0 eV 0 fm 0 fm Target initStep + 1 -974 mum -7.65 mm -2.41 m 0 eV 323 keV 165 mum 165 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1823, Parent ID = 1822 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -407 mum -6.59 mm -2.41 m 496 keV 0 eV 0 fm 0 fm Target initStep + 1 -649 mum -7.79 mm -2.41 m 0 eV 88 keV 2.15 mm 2.15 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1831, Parent ID = 1823 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -649 mum -7.79 mm -2.41 m 408 keV 0 eV 0 fm 0 fm Target initStep + 1 -651 mum -7.8 mm -2.41 m 0 eV 408 keV 229 mum 229 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1821, Parent ID = 1761 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -438 mum -6.42 mm -2.41 m 360 keV 0 eV 0 fm 0 fm Target initStep + 1 -443 mum -6.43 mm -2.41 m 0 eV 360 keV 193 mum 193 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1760, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.67 mum -2.27 mm -2.43 m 778 keV 0 eV 0 fm 0 fm Target initStep + 1 2.01 mum -2.32 mm -2.43 m 294 keV 0 eV 187 mum 187 mum Target compt + 2 362 mum -1.56 mm -2.43 m 0 eV 88 keV 851 mum 1.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1833, Parent ID = 1760 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 362 mum -1.56 mm -2.43 m 206 keV 0 eV 0 fm 0 fm Target initStep + 1 365 mum -1.56 mm -2.43 m 0 eV 206 keV 85.4 mum 85.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1832, Parent ID = 1760 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.01 mum -2.32 mm -2.43 m 484 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.14 mum -2.33 mm -2.43 m 0 eV 484 keV 289 mum 289 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1759, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 185 mum -1.18 mm -2.43 m 2.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.99 mm -1.15 cm -2.4 m 2.28 MeV 0 eV 3.06 cm 3.06 cm Target Transportation + 2 -12.4 cm -58.8 cm -80 cm 2.28 MeV 0 eV 1.7 m 1.74 m Tracker Transportation + 3 -13.9 cm -66 cm -60 cm 2.28 MeV 0 eV 21.3 cm 1.95 m Chamber Transportation + 4 -18.4 cm -87.6 cm 0 fm 2.28 MeV 0 eV 63.9 cm 2.59 m Tracker Transportation + 5 -20 cm -94.8 cm 20 cm 2.28 MeV 0 eV 21.3 cm 2.8 m Chamber Transportation + 6 -24.5 cm -1.16 m 80 cm 2.28 MeV 0 eV 63.9 cm 3.44 m Tracker Transportation + 7 -26 cm -1.24 m 1 m 2.28 MeV 0 eV 21.3 cm 3.65 m Chamber Transportation + 8 -30.6 cm -1.45 m 1.6 m 2.28 MeV 0 eV 63.9 cm 4.29 m Tracker Transportation + 9 -32.1 cm -1.52 m 1.8 m 2.28 MeV 0 eV 21.3 cm 4.51 m Chamber Transportation + 10 -36.7 cm -1.74 m 2.4 m 2.28 MeV 0 eV 63.9 cm 5.15 m Tracker Transportation + 11 -40.5 cm -1.92 m 2.91 m 2.28 MeV 0 eV 54.3 cm 5.69 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1758, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 245 mum -964 mum -2.43 m 1.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 -815 mum -6.78 mm -2.41 m 1.08 MeV 0 eV 1.6 cm 1.6 cm Target compt + 2 713 mum -8.89 mm -2.41 m 0 eV 88 keV 4.02 mm 2 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1835, Parent ID = 1758 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 713 mum -8.89 mm -2.41 m 992 keV 0 eV 0 fm 0 fm Target initStep + 1 758 mum -8.9 mm -2.41 m 0 eV 992 keV 713 mum 713 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1834, Parent ID = 1758 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -815 mum -6.78 mm -2.41 m 393 keV 0 eV 0 fm 0 fm Target initStep + 1 -825 mum -6.78 mm -2.41 m 0 eV 393 keV 217 mum 217 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1757, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 72.2 mum -576 mum -2.43 m 381 keV 0 eV 0 fm 0 fm Target initStep + 1 198 mum -1.24 mm -2.43 m 0 eV 88 keV 2.24 mm 2.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1836, Parent ID = 1757 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 198 mum -1.24 mm -2.43 m 293 keV 0 eV 0 fm 0 fm Target initStep + 1 196 mum -1.24 mm -2.43 m 0 eV 293 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1756, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 122 mum -264 mum -2.43 m 1.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 15.6 mum -1.44 mm -2.43 m 557 keV 0 eV 4.42 mm 4.42 mm Target compt + 2 6.86 mm -2.71 mm -2.42 m 0 eV 88 keV 7.78 mm 1.22 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1838, Parent ID = 1756 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.86 mm -2.71 mm -2.42 m 469 keV 0 eV 0 fm 0 fm Target initStep + 1 6.87 mm -2.71 mm -2.42 m 0 eV 469 keV 277 mum 277 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1837, Parent ID = 1756 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 15.6 mum -1.44 mm -2.43 m 829 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.78 mum -1.45 mm -2.43 m 0 eV 829 keV 576 mum 576 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1755, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 108 mum -77.6 mum -2.43 m 23.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.5 mm -8.98 mm -2.4 m 23.3 MeV 0 eV 3.37 cm 3.37 cm Target Transportation + 2 3.59 cm -22.9 cm -1.6 m 23.3 MeV 0 eV 83 cm 86.4 cm Tracker Transportation + 3 3.77 cm -24 cm -1.56 m 23.3 MeV 0 eV 4.25 cm 90.7 cm Chamber Transportation + 4 7.04 cm -44.9 cm -80 cm 23.3 MeV 0 eV 78.8 cm 1.69 m Tracker Transportation + 5 7.9 cm -50.3 cm -60 cm 23.3 MeV 0 eV 20.8 cm 1.9 m Chamber Transportation + 6 10.5 cm -66.8 cm 0 fm 23.3 MeV 0 eV 62.3 cm 2.52 m Tracker Transportation + 7 11.3 cm -72.3 cm 20 cm 23.3 MeV 0 eV 20.8 cm 2.73 m Chamber Transportation + 8 13.9 cm -88.8 cm 80 cm 23.3 MeV 0 eV 62.3 cm 3.36 m Tracker Transportation + 9 14.8 cm -94.3 cm 1 m 23.3 MeV 0 eV 20.8 cm 3.56 m Chamber Transportation + 10 17.4 cm -1.11 m 1.6 m 23.3 MeV 0 eV 62.3 cm 4.19 m Tracker Transportation + 11 18.2 cm -1.16 m 1.8 m 23.3 MeV 0 eV 20.8 cm 4.39 m Chamber Transportation + 12 20.8 cm -1.33 m 2.4 m 23.3 MeV 0 eV 62.3 cm 5.02 m Tracker Transportation + 13 23 cm -1.47 m 2.91 m 23.3 MeV 0 eV 52.9 cm 5.55 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1754, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 118 mum -28 mum -2.43 m 7.85 MeV 0 eV 0 fm 0 fm Target initStep + 1 -108 mum -1.68 mm -2.41 m 0 eV 0 eV 2.29 cm 2.29 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1840, Parent ID = 1754 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -108 mum -1.68 mm -2.41 m 871 keV 0 eV 0 fm 0 fm Target initStep + 1 -315 mum -1.88 mm -2.41 m 252 keV 619 keV 571 mum 571 mum Target eBrem + 2 -326 mum -1.88 mm -2.41 m 0 eV 252 keV 112 mum 683 mum Target eIoni + 3 -326 mum -1.88 mm -2.41 m 0 eV 0 eV 0 fm 683 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1842, Parent ID = 1840 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -326 mum -1.88 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -525 mum -925 mum -2.41 m 437 keV 0 eV 1.62 mm 1.62 mm Target compt + 2 -1.44 mm -192 mum -2.41 m 0 eV 88 keV 1.42 mm 3.04 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1844, Parent ID = 1842 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.44 mm -192 mum -2.41 m 349 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.45 mm -197 mum -2.41 m 0 eV 349 keV 185 mum 185 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1843, Parent ID = 1842 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -525 mum -925 mum -2.41 m 73.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -524 mum -924 mum -2.41 m 0 eV 73.7 keV 16.9 mum 16.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1841, Parent ID = 1840 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -326 mum -1.88 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.02 mm -8.32 mm -2.4 m 0 eV 88 keV 1.1 cm 1.1 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1845, Parent ID = 1841 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.02 mm -8.32 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 mm -8.33 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1839, Parent ID = 1754 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -108 mum -1.68 mm -2.41 m 5.95 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.25 mm -2.32 mm -2.41 m 2.21 MeV 3.33 MeV 2.71 mm 2.71 mm Target eBrem + 2 1.25 mm -2.33 mm -2.41 m 1.53 MeV 175 keV 154 mum 2.86 mm Target eBrem + 3 1.66 mm -2.31 mm -2.41 m 126 keV 935 keV 941 mum 3.8 mm Target eBrem + 4 1.66 mm -2.3 mm -2.41 m 0 eV 126 keV 40.1 mum 3.84 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1848, Parent ID = 1839 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.66 mm -2.31 mm -2.41 m 465 keV 0 eV 0 fm 0 fm Target initStep + 1 -367 mum -245 mum -2.41 m 0 eV 88 keV 3.02 mm 3.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1849, Parent ID = 1848 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -367 mum -245 mum -2.41 m 377 keV 0 eV 0 fm 0 fm Target initStep + 1 -365 mum -232 mum -2.41 m 0 eV 377 keV 206 mum 206 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1847, Parent ID = 1839 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.25 mm -2.33 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.39 mm -6.79 mm -2.41 m 423 keV 0 eV 4.96 mm 4.96 mm Target compt + 2 3.24 mm -7.5 mm -2.41 m 0 eV 88 keV 725 mum 5.69 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1851, Parent ID = 1847 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.24 mm -7.5 mm -2.41 m 335 keV 0 eV 0 fm 0 fm Target initStep + 1 3.24 mm -7.51 mm -2.41 m 0 eV 335 keV 175 mum 175 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1850, Parent ID = 1847 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.39 mm -6.79 mm -2.41 m 87.4 keV 0 eV 0 fm 0 fm Target initStep + 1 3.39 mm -6.79 mm -2.41 m 0 eV 87.4 keV 22.3 mum 22.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1846, Parent ID = 1839 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.25 mm -2.32 mm -2.41 m 410 keV 0 eV 0 fm 0 fm Target initStep + 1 1.31 mm -2.66 mm -2.41 m 0 eV 88 keV 472 mum 472 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1852, Parent ID = 1846 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 mm -2.66 mm -2.41 m 322 keV 0 eV 0 fm 0 fm Target initStep + 1 1.31 mm -2.66 mm -2.41 m 0 eV 322 keV 164 mum 164 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1753, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 120 mum -23.2 mum -2.43 m 255 MeV 0 eV 0 fm 0 fm Target initStep + 1 142 mum -83.1 mum -2.43 m 0 eV 0 eV 2.89 mm 2.89 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1854, Parent ID = 1753 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 142 mum -83.1 mum -2.43 m 8.64 MeV 0 eV 0 fm 0 fm Target initStep + 1 691 mum 1.68 mm -2.43 m 2.46 MeV 3.75 MeV 2.58 mm 2.58 mm Target eBrem + 2 722 mum 1.52 mm -2.43 m 1.51 MeV 221 keV 272 mum 2.85 mm Target eBrem + 3 802 mum 1.4 mm -2.43 m 0 eV 1.51 MeV 1.17 mm 4.02 mm Target eIoni + 4 802 mum 1.4 mm -2.43 m 0 eV 0 eV 0 fm 4.02 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1858, Parent ID = 1854 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 802 mum 1.4 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.03 mm 1.41 mm -2.43 m 0 eV 88 keV 1.18 mm 1.18 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1859, Parent ID = 1858 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.03 mm 1.41 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.03 mm 1.4 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1857, Parent ID = 1854 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 802 mum 1.4 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 528 mum 1.39 mm -2.43 m 0 eV 88 keV 1.4 mm 1.4 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1860, Parent ID = 1857 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 528 mum 1.39 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 521 mum 1.4 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1856, Parent ID = 1854 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 722 mum 1.52 mm -2.43 m 730 keV 0 eV 0 fm 0 fm Target initStep + 1 1.96 mm -2.21 mm -2.43 m 375 keV 0 eV 4.21 mm 4.21 mm Target compt + 2 1.59 mm -2.36 mm -2.43 m 0 eV 88 keV 762 mum 4.97 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1862, Parent ID = 1856 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.59 mm -2.36 mm -2.43 m 287 keV 0 eV 0 fm 0 fm Target initStep + 1 1.58 mm -2.37 mm -2.43 m 0 eV 287 keV 140 mum 140 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1861, Parent ID = 1856 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.96 mm -2.21 mm -2.43 m 355 keV 0 eV 0 fm 0 fm Target initStep + 1 1.97 mm -2.22 mm -2.43 m 0 eV 355 keV 190 mum 190 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1855, Parent ID = 1854 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 691 mum 1.68 mm -2.43 m 2.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.48 mm -2.03 mm -2.42 m 708 keV 0 eV 7.9 mm 7.9 mm Target compt + 2 9.15 mm 41.8 mum -2.42 m 689 keV 0 eV 3.85 mm 1.18 cm Target compt + 3 2.17 cm 6.2 mm -2.41 m 501 keV 0 eV 1.68 cm 2.86 cm Target compt + 4 2.32 cm 1.83 cm -2.4 m 501 keV 0 eV 1.8 cm 4.66 cm Target Transportation + 5 32.6 cm 2.4 m 21.2 cm 501 keV 0 eV 3.55 m 3.59 m Tracker Transportation + 6 39 cm 2.91 m 77.1 cm 501 keV 0 eV 76 cm 4.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1865, Parent ID = 1855 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.17 cm 6.2 mm -2.41 m 189 keV 0 eV 0 fm 0 fm Target initStep + 1 2.17 cm 6.2 mm -2.41 m 0 eV 189 keV 75 mum 75 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1864, Parent ID = 1855 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.15 mm 41.8 mum -2.42 m 18.8 keV 0 eV 0 fm 0 fm Target initStep + 1 9.15 mm 42 mum -2.42 m 0 eV 18.8 keV 1.85 mum 1.85 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1863, Parent ID = 1855 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.48 mm -2.03 mm -2.42 m 1.72 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.63 mm -2.05 mm -2.42 m 757 keV 184 keV 209 mum 209 mum Target eBrem + 2 6.54 mm -2.07 mm -2.42 m 23.5 keV 351 keV 325 mum 535 mum Target eBrem + 3 6.54 mm -2.07 mm -2.42 m 0 eV 23.5 keV 2.65 mum 537 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1867, Parent ID = 1863 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.54 mm -2.07 mm -2.42 m 383 keV 0 eV 0 fm 0 fm Target initStep + 1 6.54 mm -2.07 mm -2.42 m 0 eV 88 keV 4.9 mum 4.9 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1868, Parent ID = 1867 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.54 mm -2.07 mm -2.42 m 295 keV 0 eV 0 fm 0 fm Target initStep + 1 6.55 mm -2.07 mm -2.42 m 0 eV 295 keV 145 mum 145 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1866, Parent ID = 1863 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.63 mm -2.05 mm -2.42 m 774 keV 0 eV 0 fm 0 fm Target initStep + 1 6.52 mm -2.26 mm -2.42 m 506 keV 0 eV 257 mum 257 mum Target compt + 2 1.15 cm -1.79 cm -2.42 m 0 eV 88 keV 1.64 cm 1.67 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1870, Parent ID = 1866 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 cm -1.79 cm -2.42 m 418 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 cm -1.8 cm -2.42 m 0 eV 418 keV 237 mum 237 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1869, Parent ID = 1866 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.52 mm -2.26 mm -2.42 m 269 keV 0 eV 0 fm 0 fm Target initStep + 1 6.51 mm -2.26 mm -2.42 m 0 eV 269 keV 127 mum 127 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1853, Parent ID = 1753 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 142 mum -83.1 mum -2.43 m 245 MeV 0 eV 0 fm 0 fm Target initStep + 1 93.2 mum -114 mum -2.43 m 214 MeV 2.87 MeV 2.14 mm 2.14 mm Target eBrem + 2 179 mum -131 mum -2.43 m 204 MeV 1.52 MeV 1.06 mm 3.2 mm Target eBrem + 3 195 mum -169 mum -2.43 m 203 MeV 483 keV 435 mum 3.63 mm Target eBrem + 4 208 mum -191 mum -2.43 m 202 MeV 309 keV 285 mum 3.92 mm Target eBrem + 5 228 mum -226 mum -2.43 m 202 MeV 409 keV 374 mum 4.29 mm Target eBrem + 6 251 mum -278 mum -2.43 m 200 MeV 479 keV 452 mum 4.75 mm Target eBrem + 7 270 mum -304 mum -2.43 m 199 MeV 361 keV 271 mum 5.02 mm Target eBrem + 8 306 mum -354 mum -2.42 m 148 MeV 693 keV 530 mum 5.55 mm Target eBrem + 9 309 mum -364 mum -2.42 m 118 MeV 88.3 keV 77.4 mum 5.62 mm Target eBrem + 10 339 mum -405 mum -2.42 m 77.6 MeV 502 keV 454 mum 6.08 mm Target eBrem + 11 296 mum -555 mum -2.42 m 75.4 MeV 1.42 MeV 1.09 mm 7.17 mm Target eBrem + 12 295 mum -662 mum -2.42 m 69.4 MeV 466 keV 390 mum 7.56 mm Target eBrem + 13 305 mum -967 mum -2.42 m 29.8 MeV 6.24 MeV 1.15 mm 8.71 mm Target eBrem + 14 299 mum -1.03 mm -2.42 m 20.3 MeV 257 keV 248 mum 8.96 mm Target eBrem + 15 332 mum -1.06 mm -2.42 m 19 MeV 203 keV 160 mum 9.12 mm Target eBrem + 16 976 mum -1.88 mm -2.42 m 13.4 MeV 3.99 MeV 1.89 mm 1.1 cm Target eBrem + 17 1.42 mm -2.63 mm -2.42 m 11.7 MeV 1.22 MeV 1.08 mm 1.21 cm Target eBrem + 18 2.05 mm -3.09 mm -2.42 m 10.1 MeV 1.24 MeV 1.09 mm 1.32 cm Target eBrem + 19 2.95 mm -2.56 mm -2.42 m 4.46 MeV 3.1 MeV 2.61 mm 1.58 cm Target eBrem + 20 4.25 mm -2.99 mm -2.42 m 2.01 MeV 1.99 MeV 1.87 mm 1.77 cm Target eBrem + 21 4.37 mm -2.88 mm -2.42 m 0 eV 2.01 MeV 1.56 mm 1.92 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1890, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.25 mm -2.99 mm -2.42 m 465 keV 0 eV 0 fm 0 fm Target initStep + 1 1.05 cm 3.33 mm -2.42 m 0 eV 88 keV 8.91 mm 8.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1891, Parent ID = 1890 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.05 cm 3.33 mm -2.42 m 377 keV 0 eV 0 fm 0 fm Target initStep + 1 1.05 cm 3.34 mm -2.42 m 0 eV 377 keV 206 mum 206 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1889, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.95 mm -2.56 mm -2.42 m 2.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.62 mm -1.17 cm -2.41 m 455 keV 0 eV 1.19 cm 1.19 cm Target compt + 2 1.8 mm -1.2 cm -2.41 m 0 eV 88 keV 392 mum 1.23 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1893, Parent ID = 1889 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.8 mm -1.2 cm -2.41 m 367 keV 0 eV 0 fm 0 fm Target initStep + 1 1.82 mm -1.2 cm -2.41 m 0 eV 367 keV 198 mum 198 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1892, Parent ID = 1889 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.62 mm -1.17 cm -2.41 m 2.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.61 mm -1.22 cm -2.41 m 576 keV 732 keV 730 mum 730 mum Target eBrem + 2 1.62 mm -1.22 cm -2.41 m 0 eV 576 keV 364 mum 1.09 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1894, Parent ID = 1892 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.61 mm -1.22 cm -2.41 m 818 keV 0 eV 0 fm 0 fm Target initStep + 1 6.17 mm -1.64 cm -2.41 m 615 keV 0 eV 6.9 mm 6.9 mm Target compt + 2 6.72 mm -2.21 cm -2.42 m 0 eV 88 keV 7.53 mm 1.44 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1896, Parent ID = 1894 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.72 mm -2.21 cm -2.42 m 527 keV 0 eV 0 fm 0 fm Target initStep + 1 6.71 mm -2.21 cm -2.42 m 0 eV 527 keV 323 mum 323 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1895, Parent ID = 1894 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.17 mm -1.64 cm -2.41 m 203 keV 0 eV 0 fm 0 fm Target initStep + 1 6.18 mm -1.64 cm -2.41 m 0 eV 203 keV 83.7 mum 83.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1888, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.05 mm -3.09 mm -2.42 m 295 keV 0 eV 0 fm 0 fm Target initStep + 1 2.05 mm -3.12 mm -2.42 m 170 keV 0 eV 43.1 mum 43.1 mum Target compt + 2 2.04 mm -3.12 mm -2.42 m 0 eV 88 keV 12.2 mum 55.3 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1898, Parent ID = 1888 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mm -3.12 mm -2.42 m 81.7 keV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -3.12 mm -2.42 m 0 eV 81.7 keV 19.9 mum 19.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1897, Parent ID = 1888 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.05 mm -3.12 mm -2.42 m 125 keV 0 eV 0 fm 0 fm Target initStep + 1 2.05 mm -3.12 mm -2.42 m 0 eV 125 keV 39.5 mum 39.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1887, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.42 mm -2.63 mm -2.42 m 459 keV 0 eV 0 fm 0 fm Target initStep + 1 3.71 mm -3.96 mm -2.42 m 315 keV 0 eV 2.92 mm 2.92 mm Target compt + 2 5.71 mm -2.69 mm -2.42 m 0 eV 88 keV 2.41 mm 5.32 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1900, Parent ID = 1887 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.71 mm -2.69 mm -2.42 m 227 keV 0 eV 0 fm 0 fm Target initStep + 1 5.71 mm -2.69 mm -2.42 m 0 eV 227 keV 99.3 mum 99.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1899, Parent ID = 1887 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.71 mm -3.96 mm -2.42 m 144 keV 0 eV 0 fm 0 fm Target initStep + 1 3.72 mm -3.96 mm -2.42 m 0 eV 144 keV 49.3 mum 49.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1886, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 976 mum -1.88 mm -2.42 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.83 mm -1.2 cm -2.4 m 791 keV 0 eV 2.09 cm 2.09 cm Target compt + 2 1.11 cm -1.82 cm -2.4 m 538 keV 0 eV 7.57 mm 2.85 cm Target compt + 3 1.07 cm -2.01 cm -2.4 m 459 keV 0 eV 2.15 mm 3.06 cm Target compt + 4 1.06 cm -2.05 cm -2.4 m 459 keV 0 eV 839 mum 3.15 cm Target Transportation + 5 -49.5 cm -2.4 m 1.58 m 459 keV 0 eV 4.67 m 4.7 m Tracker Transportation + 6 -60.4 cm -2.91 m 2.44 m 459 keV 0 eV 1 m 5.7 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1903, Parent ID = 1886 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 cm -2.01 cm -2.4 m 79.5 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 cm -2.01 cm -2.4 m 0 eV 79.5 keV 19 mum 19 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1902, Parent ID = 1886 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.11 cm -1.82 cm -2.4 m 252 keV 0 eV 0 fm 0 fm Target initStep + 1 1.11 cm -1.82 cm -2.4 m 0 eV 252 keV 116 mum 116 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1901, Parent ID = 1886 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.83 mm -1.2 cm -2.4 m 906 keV 0 eV 0 fm 0 fm Target initStep + 1 6.83 mm -1.2 cm -2.4 m 0 eV 906 keV 641 mum 641 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1885, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 332 mum -1.06 mm -2.42 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 980 mum -1.83 mm -2.42 m 0 eV 88 keV 3.46 mm 3.46 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1904, Parent ID = 1885 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 980 mum -1.83 mm -2.42 m 950 keV 0 eV 0 fm 0 fm Target initStep + 1 1.01 mm -1.85 mm -2.42 m 447 keV 41.8 keV 42.7 mum 42.7 mum Target eBrem + 2 1.01 mm -1.85 mm -2.42 m 0 eV 447 keV 260 mum 303 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1905, Parent ID = 1904 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.01 mm -1.85 mm -2.42 m 461 keV 0 eV 0 fm 0 fm Target initStep + 1 1.86 mm -2.71 mm -2.42 m 422 keV 0 eV 2.72 mm 2.72 mm Target compt + 2 4.21 mm -1.17 cm -2.41 m 0 eV 88 keV 1.29 cm 1.56 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1907, Parent ID = 1905 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.21 mm -1.17 cm -2.41 m 334 keV 0 eV 0 fm 0 fm Target initStep + 1 4.22 mm -1.17 cm -2.41 m 0 eV 334 keV 174 mum 174 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1906, Parent ID = 1905 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.86 mm -2.71 mm -2.42 m 38.4 keV 0 eV 0 fm 0 fm Target initStep + 1 1.86 mm -2.71 mm -2.42 m 0 eV 38.4 keV 5.82 mum 5.82 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1884, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 299 mum -1.03 mm -2.42 m 9.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.02 mm -2.38 mm -2.42 m 0 eV 0 eV 4.39 mm 4.39 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1909, Parent ID = 1884 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.02 mm -2.38 mm -2.42 m 7.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 872 mum -233 mum -2.42 m 3.19 MeV 4 MeV 3.25 mm 3.25 mm Target eBrem + 2 -482 mum -889 mum -2.41 m 0 eV 2.08 MeV 1.97 mm 5.22 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1912, Parent ID = 1909 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -482 mum -889 mum -2.41 m 1.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.72 mm -7.96 mm -2.42 m 500 keV 0 eV 1.25 cm 1.25 cm Target compt + 2 -8.32 mm -1.31 cm -2.42 m 0 eV 88 keV 5.42 mm 1.79 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1914, Parent ID = 1912 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.32 mm -1.31 cm -2.42 m 412 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.32 mm -1.31 cm -2.42 m 0 eV 412 keV 232 mum 232 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1913, Parent ID = 1912 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.72 mm -7.96 mm -2.42 m 592 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.73 mm -7.96 mm -2.42 m 0 eV 592 keV 377 mum 377 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1911, Parent ID = 1909 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -482 mum -889 mum -2.41 m 1.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.76 mm 4.14 mm -2.41 m 0 eV 88 keV 1.11 cm 1.11 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1915, Parent ID = 1911 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.76 mm 4.14 mm -2.41 m 948 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.8 mm 4.15 mm -2.41 m 0 eV 948 keV 676 mum 676 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1910, Parent ID = 1909 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 872 mum -233 mum -2.42 m 393 keV 0 eV 0 fm 0 fm Target initStep + 1 340 mum -286 mum -2.41 m 0 eV 88 keV 2.53 mm 2.53 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1916, Parent ID = 1910 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 340 mum -286 mum -2.41 m 305 keV 0 eV 0 fm 0 fm Target initStep + 1 342 mum -286 mum -2.41 m 0 eV 305 keV 153 mum 153 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1908, Parent ID = 1884 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.02 mm -2.38 mm -2.42 m 667 keV 0 eV 0 fm 0 fm Target initStep + 1 1.03 mm -2.4 mm -2.42 m 0 eV 667 keV 439 mum 439 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1883, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 305 mum -967 mum -2.42 m 33.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.42 mum -3.05 mm -2.42 m 0 eV 0 eV 6.35 mm 6.35 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1918, Parent ID = 1883 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.42 mum -3.05 mm -2.42 m 1.92 MeV 0 eV 0 fm 0 fm Target initStep + 1 -13.9 mum -2.36 mm -2.42 m 699 keV 1.22 MeV 1.19 mm 1.19 mm Target eBrem + 2 30 mum -2.38 mm -2.42 m 0 eV 699 keV 469 mum 1.66 mm Target eIoni + 3 30 mum -2.38 mm -2.42 m 0 eV 0 eV 0 fm 1.66 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1920, Parent ID = 1918 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 30 mum -2.38 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.75 mm -4.08 mm -2.42 m 487 keV 0 eV 5.16 mm 5.16 mm Target compt + 2 -1.34 cm -1.07 cm -2.42 m 440 keV 0 eV 1.14 cm 1.65 cm Target compt + 3 -1.43 cm -1.26 cm -2.42 m 0 eV 88 keV 2.22 mm 1.88 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1923, Parent ID = 1920 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.43 cm -1.26 cm -2.42 m 352 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.43 cm -1.26 cm -2.42 m 0 eV 352 keV 187 mum 187 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1922, Parent ID = 1920 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.34 cm -1.07 cm -2.42 m 47.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.34 cm -1.07 cm -2.42 m 0 eV 47.1 keV 8.16 mum 8.16 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1921, Parent ID = 1920 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.75 mm -4.08 mm -2.42 m 24.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.75 mm -4.08 mm -2.42 m 0 eV 24.2 keV 2.76 mum 2.76 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1919, Parent ID = 1918 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 30 mum -2.38 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.41 mm -470 mum -2.41 m 0 eV 88 keV 5.81 mm 5.81 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1924, Parent ID = 1919 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.41 mm -470 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.45 mm -451 mum -2.41 m 312 keV 111 keV 78.9 mum 78.9 mum Target eBrem + 2 5.44 mm -449 mum -2.41 m 0 eV 312 keV 157 mum 236 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1917, Parent ID = 1883 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.42 mum -3.05 mm -2.42 m 30.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 -443 mum -3.6 mm -2.41 m 27.5 MeV 2.2 MeV 1.77 mm 1.77 mm Target eBrem + 2 -414 mum -3.77 mm -2.41 m 18.1 MeV 291 keV 233 mum 2.01 mm Target eBrem + 3 -422 mum -4.12 mm -2.41 m 16.3 MeV 1.01 MeV 621 mum 2.63 mm Target eBrem + 4 -495 mum -5.96 mm -2.41 m 11.8 MeV 2.82 MeV 2.03 mm 4.66 mm Target eBrem + 5 360 mum -6.35 mm -2.41 m 9.69 MeV 1.75 MeV 1.24 mm 5.9 mm Target eBrem + 6 -371 mum -7.02 mm -2.41 m 7.43 MeV 1.75 MeV 1.2 mm 7.1 mm Target eBrem + 7 -74.7 mum -7.84 mm -2.41 m 1.93 MeV 1.7 MeV 1.17 mm 8.27 mm Target eBrem + 8 -86.4 mum -8.2 mm -2.41 m 187 keV 1.04 MeV 606 mum 8.88 mm Target eBrem + 9 -83.8 mum -8.2 mm -2.41 m 0 eV 187 keV 73.7 mum 8.95 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1932, Parent ID = 1917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -86.4 mum -8.2 mm -2.41 m 704 keV 0 eV 0 fm 0 fm Target initStep + 1 5.14 mm -9.72 mm -2.41 m 0 eV 88 keV 5.58 mm 5.58 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1933, Parent ID = 1932 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.14 mm -9.72 mm -2.41 m 616 keV 0 eV 0 fm 0 fm Target initStep + 1 5.17 mm -9.72 mm -2.41 m 0 eV 616 keV 397 mum 397 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1931, Parent ID = 1917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -74.7 mum -7.84 mm -2.41 m 3.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm -1.87 cm -2.41 m 3.8 MeV 0 eV 2.72 cm 2.72 cm Target Transportation + 2 -2.91 m -1.28 m -2.5 m 3.8 MeV 0 eV 3.15 m 3.18 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1930, Parent ID = 1917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -371 mum -7.02 mm -2.41 m 506 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.68 mm -9.56 mm -2.41 m 215 keV 0 eV 3.47 mm 3.47 mm Target compt + 2 -1.72 mm -9.42 mm -2.41 m 0 eV 88 keV 163 mum 3.63 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1935, Parent ID = 1930 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm -9.42 mm -2.41 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.72 mm -9.41 mm -2.41 m 0 eV 127 keV 40.3 mum 40.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1934, Parent ID = 1930 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.68 mm -9.56 mm -2.41 m 291 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.68 mm -9.57 mm -2.41 m 0 eV 291 keV 143 mum 143 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1929, Parent ID = 1917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 360 mum -6.35 mm -2.41 m 325 keV 0 eV 0 fm 0 fm Target initStep + 1 -139 mum -6.36 mm -2.41 m 219 keV 0 eV 791 mum 791 mum Target compt + 2 419 mum -5.64 mm -2.41 m 0 eV 88 keV 1.24 mm 2.03 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1937, Parent ID = 1929 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 419 mum -5.64 mm -2.41 m 131 keV 0 eV 0 fm 0 fm Target initStep + 1 420 mum -5.64 mm -2.41 m 0 eV 131 keV 42.6 mum 42.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1936, Parent ID = 1929 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -139 mum -6.36 mm -2.41 m 106 keV 0 eV 0 fm 0 fm Target initStep + 1 -141 mum -6.36 mm -2.41 m 0 eV 106 keV 30.2 mum 30.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1928, Parent ID = 1917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -495 mum -5.96 mm -2.41 m 1.72 MeV 0 eV 0 fm 0 fm Target initStep + 1 -112 mum -6.47 mm -2.41 m 975 keV 0 eV 932 mum 932 mum Target compt + 2 -4.39 mm -1.88 cm -2.4 m 975 keV 0 eV 1.76 cm 1.86 cm Target Transportation + 3 -82.9 cm -2.4 m -11.1 cm 975 keV 0 eV 3.4 m 3.42 m Tracker Transportation + 4 -1.01 m -2.91 m 38 cm 975 keV 0 eV 72.9 cm 4.15 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1938, Parent ID = 1928 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -112 mum -6.47 mm -2.41 m 741 keV 0 eV 0 fm 0 fm Target initStep + 1 -81.8 mum -6.48 mm -2.41 m 0 eV 741 keV 502 mum 502 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1927, Parent ID = 1917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -422 mum -4.12 mm -2.41 m 811 keV 0 eV 0 fm 0 fm Target initStep + 1 -126 mum -5.23 mm -2.41 m 0 eV 88 keV 1.52 mm 1.52 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1939, Parent ID = 1927 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -126 mum -5.23 mm -2.41 m 723 keV 0 eV 0 fm 0 fm Target initStep + 1 -112 mum -5.26 mm -2.41 m 0 eV 723 keV 486 mum 486 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1926, Parent ID = 1917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -414 mum -3.77 mm -2.41 m 9.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.9 mm -1.79 cm -2.4 m 9.13 MeV 0 eV 1.99 cm 1.99 cm Target Transportation + 2 39.3 cm -2.4 m -5.2 cm 9.13 MeV 0 eV 3.37 m 3.39 m Tracker Transportation + 3 47.6 cm -2.91 m 45.1 cm 9.13 MeV 0 eV 72.1 cm 4.11 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1925, Parent ID = 1917 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -443 mum -3.6 mm -2.41 m 629 keV 0 eV 0 fm 0 fm Target initStep + 1 -407 mum -3.85 mm -2.41 m 0 eV 88 keV 356 mum 356 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1940, Parent ID = 1925 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -407 mum -3.85 mm -2.41 m 541 keV 0 eV 0 fm 0 fm Target initStep + 1 -426 mum -3.86 mm -2.41 m 0 eV 541 keV 335 mum 335 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1882, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 295 mum -662 mum -2.42 m 5.54 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.13 mm -6.62 mm -2.4 m 5.54 MeV 0 eV 2.36 cm 2.36 cm Target Transportation + 2 6.64 cm -21.6 cm -1.6 m 5.54 MeV 0 eV 82.9 cm 85.3 cm Tracker Transportation + 3 7.38 cm -24 cm -1.51 m 5.54 MeV 0 eV 9.6 cm 94.9 cm Chamber Transportation + 4 13.1 cm -42.5 cm -80 cm 5.54 MeV 0 eV 73.3 cm 1.68 m Tracker Transportation + 5 14.7 cm -47.7 cm -60 cm 5.54 MeV 0 eV 20.7 cm 1.89 m Chamber Transportation + 6 19.5 cm -63.4 cm 0 fm 5.54 MeV 0 eV 62.2 cm 2.51 m Tracker Transportation + 7 21.1 cm -68.6 cm 20 cm 5.54 MeV 0 eV 20.7 cm 2.72 m Chamber Transportation + 8 25.9 cm -84.3 cm 80 cm 5.54 MeV 0 eV 62.2 cm 3.34 m Tracker Transportation + 9 27.5 cm -89.6 cm 1 m 5.54 MeV 0 eV 20.7 cm 3.55 m Chamber Transportation + 10 32.3 cm -1.05 m 1.6 m 5.54 MeV 0 eV 62.2 cm 4.17 m Tracker Transportation + 11 34 cm -1.1 m 1.8 m 5.54 MeV 0 eV 20.7 cm 4.38 m Chamber Transportation + 12 38.8 cm -1.26 m 2.4 m 5.54 MeV 0 eV 62.2 cm 5 m Tracker Transportation + 13 42.9 cm -1.39 m 2.91 m 5.54 MeV 0 eV 52.9 cm 5.53 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1881, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 296 mum -555 mum -2.42 m 770 keV 0 eV 0 fm 0 fm Target initStep + 1 486 mum -2.75 mm -2.42 m 271 keV 0 eV 7.88 mm 7.88 mm Target compt + 2 2.2 mm -1.4 mm -2.42 m 0 eV 88 keV 2.19 mm 1.01 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1942, Parent ID = 1881 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.2 mm -1.4 mm -2.42 m 183 keV 0 eV 0 fm 0 fm Target initStep + 1 2.2 mm -1.4 mm -2.42 m 0 eV 183 keV 71.7 mum 71.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1941, Parent ID = 1881 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 486 mum -2.75 mm -2.42 m 499 keV 0 eV 0 fm 0 fm Target initStep + 1 482 mum -2.76 mm -2.42 m 0 eV 499 keV 301 mum 301 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1880, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 339 mum -405 mum -2.42 m 40.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 402 mum -746 mum -2.42 m 0 eV 0 eV 2.58 mm 2.58 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1944, Parent ID = 1880 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 402 mum -746 mum -2.42 m 11.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 405 mum -817 mum -2.42 m 10 MeV 313 keV 268 mum 268 mum Target eBrem + 2 -1.44 mm -1.2 mm -2.42 m 2.77 MeV 6.98 MeV 3.21 mm 3.48 mm Target eBrem + 3 -1.22 mm -1.72 mm -2.42 m 0 eV 837 keV 877 mum 4.36 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1948, Parent ID = 1944 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.22 mm -1.72 mm -2.42 m 2.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.87 mm -863 mum -2.42 m 0 eV 0 eV 3.21 mm 3.21 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1950, Parent ID = 1948 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.87 mm -863 mum -2.42 m 822 keV 0 eV 0 fm 0 fm Target initStep + 1 1.93 mm -854 mum -2.42 m 0 eV 822 keV 575 mum 575 mum Target eIoni + 2 1.93 mm -854 mum -2.42 m 0 eV 0 eV 0 fm 575 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1952, Parent ID = 1950 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.93 mm -854 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.38 cm -1.85 mm -2.41 m 0 eV 88 keV 1.54 cm 1.54 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1953, Parent ID = 1952 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.38 cm -1.85 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.38 cm -1.84 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1951, Parent ID = 1950 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.93 mm -854 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.66 mm -831 mum -2.42 m 0 eV 88 keV 348 mum 348 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1954, Parent ID = 1951 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.66 mm -831 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.65 mm -822 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1949, Parent ID = 1948 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.87 mm -863 mum -2.42 m 576 keV 0 eV 0 fm 0 fm Target initStep + 1 1.89 mm -853 mum -2.42 m 0 eV 576 keV 364 mum 364 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1947, Parent ID = 1944 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.22 mm -1.72 mm -2.42 m 539 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.46 mm -1.18 mm -2.42 m 440 keV 0 eV 604 mum 604 mum Target compt + 2 -3.95 mm 1.43 mm -2.42 m 0 eV 88 keV 3.83 mm 4.43 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1956, Parent ID = 1947 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.95 mm 1.43 mm -2.42 m 352 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.96 mm 1.44 mm -2.42 m 0 eV 352 keV 187 mum 187 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1955, Parent ID = 1947 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.46 mm -1.18 mm -2.42 m 99.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.46 mm -1.18 mm -2.42 m 0 eV 99.3 keV 27.3 mum 27.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1946, Parent ID = 1944 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.44 mm -1.2 mm -2.42 m 284 keV 0 eV 0 fm 0 fm Target initStep + 1 -153 mum -3.4 mm -2.42 m 169 keV 0 eV 3.42 mm 3.42 mm Target compt + 2 -275 mum -3.21 mm -2.42 m 0 eV 88 keV 276 mum 3.69 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1958, Parent ID = 1946 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -275 mum -3.21 mm -2.42 m 80.9 keV 0 eV 0 fm 0 fm Target initStep + 1 -276 mum -3.21 mm -2.42 m 0 eV 80.9 keV 19.6 mum 19.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1957, Parent ID = 1946 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -153 mum -3.4 mm -2.42 m 115 keV 0 eV 0 fm 0 fm Target initStep + 1 -152 mum -3.4 mm -2.42 m 0 eV 115 keV 34.7 mum 34.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1945, Parent ID = 1944 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 405 mum -817 mum -2.42 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.02 mm -438 mum -2.4 m 1.27 MeV 0 eV 1.9 cm 1.9 cm Target compt + 2 6.5 mm 123 mum -2.4 m 1.27 MeV 0 eV 3.46 mm 2.24 cm Target Transportation + 3 1.94 m 73.1 cm 1.6 m 1.27 MeV 0 eV 4.5 m 4.53 m Tracker Transportation + 4 1.97 m 74 cm 1.65 m 1.27 MeV 0 eV 5.64 cm 4.58 m Chamber Transportation + 5 2.33 m 87.7 cm 2.4 m 1.27 MeV 0 eV 84.4 cm 5.43 m Tracker Transportation + 6 2.58 m 97 cm 2.91 m 1.27 MeV 0 eV 57.4 cm 6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1959, Parent ID = 1945 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.02 mm -438 mum -2.4 m 107 keV 0 eV 0 fm 0 fm Target initStep + 1 5.01 mm -439 mum -2.4 m 0 eV 107 keV 30.7 mum 30.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1943, Parent ID = 1880 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 402 mum -746 mum -2.42 m 27.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 402 mum -755 mum -2.42 m 26.9 MeV 92 keV 101 mum 101 mum Target eBrem + 2 954 mum -790 mum -2.42 m 20.3 MeV 2.58 MeV 2.05 mm 2.15 mm Target eBrem + 3 1.88 mm -1 mm -2.42 m 14.2 MeV 1.36 MeV 1.16 mm 3.32 mm Target eBrem + 4 2 mm -1.12 mm -2.42 m 12.6 MeV 173 keV 173 mum 3.49 mm Target eBrem + 5 2.12 mm -1.21 mm -2.42 m 12 MeV 188 keV 166 mum 3.66 mm Target eBrem + 6 3.47 mm -1.01 mm -2.42 m 9.11 MeV 2.57 MeV 1.61 mm 5.27 mm Target eBrem + 7 3.48 mm -975 mum -2.42 m 8.31 MeV 48.6 keV 48.2 mum 5.32 mm Target eBrem + 8 3.1 mm -457 mum -2.42 m 6.37 MeV 1.09 MeV 1.08 mm 6.4 mm Target eBrem + 9 2.38 mm 411 mum -2.42 m 4.41 MeV 1.13 MeV 1.08 mm 7.47 mm Target eBrem + 10 2.29 mm 800 mum -2.42 m 2.86 MeV 615 keV 558 mum 8.03 mm Target eBrem + 11 2.42 mm 690 mum -2.42 m 0 eV 2.86 MeV 2.25 mm 1.03 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1969, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.29 mm 800 mum -2.42 m 934 keV 0 eV 0 fm 0 fm Target initStep + 1 3.9 mm -1.26 mm -2.41 m 809 keV 0 eV 4.13 mm 4.13 mm Target compt + 2 4.52 mm -2.38 mm -2.41 m 232 keV 0 eV 1.45 mm 5.58 mm Target compt + 3 4.25 mm -2.36 mm -2.41 m 0 eV 88 keV 1.13 mm 6.71 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1972, Parent ID = 1969 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.25 mm -2.36 mm -2.41 m 144 keV 0 eV 0 fm 0 fm Target initStep + 1 4.25 mm -2.36 mm -2.41 m 0 eV 144 keV 49.5 mum 49.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1971, Parent ID = 1969 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.52 mm -2.38 mm -2.41 m 577 keV 0 eV 0 fm 0 fm Target initStep + 1 4.53 mm -2.39 mm -2.41 m 0 eV 577 keV 365 mum 365 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1970, Parent ID = 1969 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.9 mm -1.26 mm -2.41 m 125 keV 0 eV 0 fm 0 fm Target initStep + 1 3.9 mm -1.26 mm -2.41 m 0 eV 125 keV 39.4 mum 39.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1968, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.38 mm 411 mum -2.42 m 826 keV 0 eV 0 fm 0 fm Target initStep + 1 6.07 mm 2.5 cm -2.42 m 826 keV 0 eV 2.49 cm 2.49 cm Target Transportation + 2 43.9 cm 2.91 m -2.53 m 826 keV 0 eV 2.92 m 2.94 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1967, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.1 mm -457 mum -2.42 m 848 keV 0 eV 0 fm 0 fm Target initStep + 1 3.11 mm 1.81 mm -2.42 m 0 eV 88 keV 2.76 mm 2.76 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1973, Parent ID = 1967 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.11 mm 1.81 mm -2.42 m 760 keV 0 eV 0 fm 0 fm Target initStep + 1 3.12 mm 1.85 mm -2.42 m 0 eV 760 keV 518 mum 518 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1966, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.48 mm -975 mum -2.42 m 751 keV 0 eV 0 fm 0 fm Target initStep + 1 6.34 mm 9.08 mm -2.41 m 0 eV 88 keV 1.39 cm 1.39 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1974, Parent ID = 1966 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.34 mm 9.08 mm -2.41 m 663 keV 0 eV 0 fm 0 fm Target initStep + 1 6.34 mm 9.1 mm -2.41 m 0 eV 663 keV 436 mum 436 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1965, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.47 mm -1.01 mm -2.42 m 333 keV 0 eV 0 fm 0 fm Target initStep + 1 4.59 mm 2.99 mm -2.42 m 145 keV 0 eV 5.46 mm 5.46 mm Target compt + 2 4.53 mm 2.79 mm -2.42 m 0 eV 88 keV 346 mum 5.81 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1976, Parent ID = 1965 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.53 mm 2.79 mm -2.42 m 57.4 keV 0 eV 0 fm 0 fm Target initStep + 1 4.53 mm 2.79 mm -2.42 m 0 eV 57.4 keV 11.3 mum 11.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1975, Parent ID = 1965 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.59 mm 2.99 mm -2.42 m 187 keV 0 eV 0 fm 0 fm Target initStep + 1 4.59 mm 2.99 mm -2.42 m 0 eV 187 keV 74.1 mum 74.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1964, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.12 mm -1.21 mm -2.42 m 349 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm -1.36 mm -2.42 m 210 keV 0 eV 302 mum 302 mum Target compt + 2 2.84 mm -732 mum -2.42 m 0 eV 88 keV 802 mum 1.1 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1978, Parent ID = 1964 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.84 mm -732 mum -2.42 m 122 keV 0 eV 0 fm 0 fm Target initStep + 1 2.84 mm -731 mum -2.42 m 0 eV 122 keV 37.9 mum 37.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1977, Parent ID = 1964 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.36 mm -1.36 mm -2.42 m 139 keV 0 eV 0 fm 0 fm Target initStep + 1 2.36 mm -1.36 mm -2.42 m 0 eV 139 keV 46.8 mum 46.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1963, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2 mm -1.12 mm -2.42 m 1.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm -1.27 cm -2.41 m 1.47 MeV 0 eV 2.75 cm 2.75 cm Target Transportation + 2 4.76 cm -2.42 cm -2.4 m 1.47 MeV 0 eV 2.7 cm 5.45 cm World Transportation + 3 2.4 m -1.21 m -1.42 m 1.47 MeV 0 eV 2.81 m 2.87 m Tracker Transportation + 4 2.91 m -1.47 m -1.21 m 1.47 MeV 0 eV 61 cm 3.48 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1962, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.88 mm -1 mm -2.42 m 4.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.18 mm -6.09 mm -2.42 m 1.98 MeV 0 eV 9.46 mm 9.46 mm Target compt + 2 1.57 cm -1.9 cm -2.41 m 1.51 MeV 0 eV 1.45 cm 2.39 cm Target compt + 3 1.83 cm -2.34 cm -2.41 m 1.26 MeV 0 eV 5.78 mm 2.97 cm Target compt + 4 1.85 cm -2.5 cm -2.41 m 1.26 MeV 0 eV 1.7 mm 3.14 cm Target Transportation + 5 2.33 cm -5.71 cm -2.4 m 1.26 MeV 0 eV 3.45 cm 6.58 cm World Transportation + 6 37.4 cm -2.4 m -1.55 m 1.26 MeV 0 eV 2.52 m 2.58 m Tracker Transportation + 7 45 cm -2.91 m -1.37 m 1.26 MeV 0 eV 54.8 cm 3.13 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1981, Parent ID = 1962 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.83 cm -2.34 cm -2.41 m 251 keV 0 eV 0 fm 0 fm Target initStep + 1 1.83 cm -2.34 cm -2.41 m 0 eV 251 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1980, Parent ID = 1962 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.57 cm -1.9 cm -2.41 m 476 keV 0 eV 0 fm 0 fm Target initStep + 1 1.57 cm -1.9 cm -2.41 m 0 eV 476 keV 282 mum 282 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1979, Parent ID = 1962 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.18 mm -6.09 mm -2.42 m 2.79 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.74 mm -6.03 mm -2.42 m 677 keV 1.21 MeV 1.02 mm 1.02 mm Target eBrem + 2 9.71 mm -6.05 mm -2.42 m 0 eV 677 keV 448 mum 1.47 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1982, Parent ID = 1979 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.74 mm -6.03 mm -2.42 m 903 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 mm -1.26 cm -2.42 m 0 eV 88 keV 1.17 cm 1.17 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1983, Parent ID = 1982 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 mm -1.26 cm -2.42 m 815 keV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -1.26 cm -2.42 m 261 keV 148 keV 134 mum 134 mum Target eBrem + 2 2.04 mm -1.26 cm -2.42 m 0 eV 261 keV 122 mum 256 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1984, Parent ID = 1983 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mm -1.26 cm -2.42 m 405 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm -1.14 cm -2.42 m 0 eV 88 keV 1.58 mm 1.58 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1985, Parent ID = 1984 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm -1.14 cm -2.42 m 317 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm -1.14 cm -2.42 m 0 eV 317 keV 161 mum 161 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1961, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 954 mum -790 mum -2.42 m 3.97 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.23 cm -7.96 mm -2.41 m 356 keV 0 eV 1.67 cm 1.67 cm Target compt + 2 1.24 cm -8.55 mm -2.41 m 0 eV 88 keV 1.32 mm 1.81 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1987, Parent ID = 1961 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 cm -8.55 mm -2.41 m 268 keV 0 eV 0 fm 0 fm Target initStep + 1 1.24 cm -8.56 mm -2.41 m 0 eV 268 keV 126 mum 126 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1986, Parent ID = 1961 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.23 cm -7.96 mm -2.41 m 3.61 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.28 cm -7.12 mm -2.41 m 1.11 MeV 1.86 MeV 1.55 mm 1.55 mm Target eBrem + 2 1.28 cm -7.12 mm -2.41 m 768 keV 60.4 keV 56.9 mum 1.61 mm Target eBrem + 3 1.28 cm -7.15 mm -2.41 m 0 eV 768 keV 524 mum 2.14 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1989, Parent ID = 1986 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.28 cm -7.12 mm -2.41 m 286 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 cm -8.57 mm -2.41 m 0 eV 88 keV 1.74 mm 1.74 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1990, Parent ID = 1989 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.21 cm -8.57 mm -2.41 m 198 keV 0 eV 0 fm 0 fm Target initStep + 1 1.21 cm -8.57 mm -2.41 m 0 eV 198 keV 80.4 mum 80.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1988, Parent ID = 1986 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.28 cm -7.12 mm -2.41 m 640 keV 0 eV 0 fm 0 fm Target initStep + 1 9.68 mm -4.95 mm -2.41 m 499 keV 0 eV 5 mm 5 mm Target compt + 2 9.51 mm -4.14 mm -2.41 m 0 eV 88 keV 912 mum 5.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1992, Parent ID = 1988 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.51 mm -4.14 mm -2.41 m 411 keV 0 eV 0 fm 0 fm Target initStep + 1 9.51 mm -4.13 mm -2.41 m 0 eV 411 keV 232 mum 232 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1991, Parent ID = 1988 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.68 mm -4.95 mm -2.41 m 141 keV 0 eV 0 fm 0 fm Target initStep + 1 9.68 mm -4.95 mm -2.41 m 0 eV 141 keV 47.6 mum 47.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1960, Parent ID = 1943 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 402 mum -755 mum -2.42 m 632 keV 0 eV 0 fm 0 fm Target initStep + 1 773 mum -1.76 mm -2.42 m 0 eV 88 keV 6.6 mm 6.6 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1993, Parent ID = 1960 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 773 mum -1.76 mm -2.42 m 544 keV 0 eV 0 fm 0 fm Target initStep + 1 762 mum -1.75 mm -2.42 m 0 eV 544 keV 338 mum 338 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1879, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 309 mum -364 mum -2.42 m 29.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.1 mm -2.17 mm -2.41 m 0 eV 0 eV 1.73 cm 1.73 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 1995, Parent ID = 1879 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 mm -2.17 mm -2.41 m 19.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 477 mum -2.05 mm -2.41 m 16.8 MeV 2.66 MeV 2.05 mm 2.05 mm Target eBrem + 2 1.39 mm -1.69 mm -2.4 m 11.1 MeV 4.22 MeV 2.67 mm 4.71 mm Target eBrem + 3 1.36 mm -1.68 mm -2.4 m 10.2 MeV 898 keV 649 mum 5.36 mm Target eBrem + 4 1.43 mm -1.55 mm -2.4 m 4.79 MeV 2.73 MeV 1.82 mm 7.18 mm Target eBrem + 5 1.24 mm -2.17 mm -2.4 m 0 eV 4.79 MeV 3.78 mm 1.1 cm Target eIoni + 6 1.24 mm -2.17 mm -2.4 m 0 eV 0 eV 0 fm 1.1 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2000, Parent ID = 1995 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm -2.17 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.26 mm -2.13 mm -2.4 m 439 keV 0 eV 374 mum 374 mum Target compt + 2 -510 mum -3.53 mm -2.41 m 0 eV 88 keV 5.05 mm 5.43 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2002, Parent ID = 2000 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -510 mum -3.53 mm -2.41 m 351 keV 0 eV 0 fm 0 fm Target initStep + 1 -517 mum -3.53 mm -2.41 m 0 eV 351 keV 186 mum 186 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2001, Parent ID = 2000 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.26 mm -2.13 mm -2.4 m 72.1 keV 0 eV 0 fm 0 fm Target initStep + 1 1.27 mm -2.13 mm -2.4 m 0 eV 72.1 keV 16.3 mum 16.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1999, Parent ID = 1995 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm -2.17 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.23 mm -2.18 mm -2.4 m 511 keV 0 eV 149 mum 149 mum Target Transportation + 2 -5.43 cm -8.26 cm -1.6 m 511 keV 0 eV 80.6 cm 80.6 cm Tracker Transportation + 3 -6.82 cm -10.3 cm -1.4 m 511 keV 0 eV 20.1 cm 1.01 m Chamber Transportation + 4 -11 cm -16.3 cm -80 cm 511 keV 0 eV 60.4 cm 1.61 m Tracker Transportation + 5 -12.4 cm -18.3 cm -60 cm 511 keV 0 eV 20.1 cm 1.81 m Chamber Transportation + 6 -16.5 cm -24.4 cm 0 fm 511 keV 0 eV 60.4 cm 2.42 m Tracker Transportation + 7 -17.9 cm -26.4 cm 20 cm 511 keV 0 eV 20.1 cm 2.62 m Chamber Transportation + 8 -22.1 cm -32.4 cm 80 cm 511 keV 0 eV 60.4 cm 3.22 m Tracker Transportation + 9 -23.5 cm -34.4 cm 1 m 511 keV 0 eV 20.1 cm 3.43 m Chamber Transportation + 10 -27.6 cm -40.4 cm 1.6 m 511 keV 0 eV 60.4 cm 4.03 m Tracker Transportation + 11 -29 cm -42.5 cm 1.8 m 511 keV 0 eV 20.1 cm 4.23 m Chamber Transportation + 12 -33.2 cm -48.5 cm 2.4 m 511 keV 0 eV 60.4 cm 4.84 m Tracker Transportation + 13 -36.7 cm -53.6 cm 2.91 m 511 keV 0 eV 51.4 cm 5.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1998, Parent ID = 1995 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.43 mm -1.55 mm -2.4 m 2.66 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.2 mm -2.35 mm -2.4 m 2.66 MeV 0 eV 1.09 mm 1.09 mm Target Transportation + 2 -69.5 cm -2.4 m -31.5 cm 2.66 MeV 0 eV 3.25 m 3.25 m Tracker Transportation + 3 -84.3 cm -2.91 m 12.8 cm 2.66 MeV 0 eV 69.2 cm 3.95 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1997, Parent ID = 1995 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.39 mm -1.69 mm -2.4 m 1.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.72 mm -2.29 mm -2.4 m 1.47 MeV 0 eV 3.16 mm 3.16 mm Target Transportation + 2 8.69 cm -15.6 cm -1.6 m 1.47 MeV 0 eV 81.9 cm 82.2 cm Tracker Transportation + 3 10.8 cm -19.5 cm -1.4 m 1.47 MeV 0 eV 20.5 cm 1.03 m Chamber Transportation + 4 17.2 cm -31 cm -80 cm 1.47 MeV 0 eV 61.4 cm 1.64 m Tracker Transportation + 5 19.3 cm -34.9 cm -60 cm 1.47 MeV 0 eV 20.5 cm 1.85 m Chamber Transportation + 6 25.7 cm -46.4 cm -0.114 fm 1.47 MeV 0 eV 61.4 cm 2.46 m Tracker Transportation + 7 27.8 cm -50.3 cm 20 cm 1.47 MeV 0 eV 20.5 cm 2.67 m Chamber Transportation + 8 34.2 cm -61.8 cm 80 cm 1.47 MeV 0 eV 61.4 cm 3.28 m Tracker Transportation + 9 36.4 cm -65.7 cm 1 m 1.47 MeV 0 eV 20.5 cm 3.48 m Chamber Transportation + 10 42.8 cm -77.2 cm 1.6 m 1.47 MeV 0 eV 61.4 cm 4.1 m Tracker Transportation + 11 44.9 cm -81.1 cm 1.8 m 1.47 MeV 0 eV 20.5 cm 4.3 m Chamber Transportation + 12 51.3 cm -92.6 cm 2.4 m 1.47 MeV 0 eV 61.4 cm 4.92 m Tracker Transportation + 13 56.7 cm -1.02 m 2.91 m 1.47 MeV 0 eV 52.2 cm 5.44 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1996, Parent ID = 1995 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 477 mum -2.05 mm -2.41 m 311 keV 0 eV 0 fm 0 fm Target initStep + 1 173 mum -1.99 mm -2.4 m 0 eV 88 keV 2.19 mm 2.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2003, Parent ID = 1996 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 173 mum -1.99 mm -2.4 m 223 keV 0 eV 0 fm 0 fm Target initStep + 1 169 mum -1.99 mm -2.4 m 0 eV 223 keV 96.4 mum 96.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1994, Parent ID = 1879 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 mm -2.17 mm -2.41 m 8.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.11 mm -2.37 mm -2.41 m 8.07 MeV 385 keV 303 mum 303 mum Target eBrem + 2 1.16 mm -2.62 mm -2.41 m 6.82 MeV 343 keV 299 mum 602 mum Target eBrem + 3 994 mum -2.82 mm -2.41 m 5.07 MeV 494 keV 332 mum 934 mum Target eBrem + 4 878 mum -3.09 mm -2.41 m 1.97 MeV 594 keV 384 mum 1.32 mm Target eBrem + 5 745 mum -3.17 mm -2.41 m 0 eV 1.97 MeV 1.53 mm 2.85 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2006, Parent ID = 1994 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 878 mum -3.09 mm -2.41 m 2.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm -1.72 cm -2.41 m 2.5 MeV 0 eV 2.98 cm 2.98 cm Target Transportation + 2 -2.91 m -1.59 m -2.88 m 2.5 MeV 0 eV 3.32 m 3.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2005, Parent ID = 1994 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 994 mum -2.82 mm -2.41 m 1.26 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.15 cm -1.58 cm -2.4 m 0 eV 88 keV 1.9 cm 1.9 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2007, Parent ID = 2005 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.15 cm -1.58 cm -2.4 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 cm -1.57 cm -2.4 m 516 keV 652 keV 506 mum 506 mum Target eBrem + 2 -1.17 cm -1.57 cm -2.4 m 0 eV 516 keV 315 mum 821 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2004, Parent ID = 1994 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.16 mm -2.62 mm -2.41 m 906 keV 0 eV 0 fm 0 fm Target initStep + 1 -64.3 mum -5.7 mm -2.4 m 0 eV 88 keV 4.3 mm 4.3 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2008, Parent ID = 2004 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -64.3 mum -5.7 mm -2.4 m 818 keV 0 eV 0 fm 0 fm Target initStep + 1 -71.5 mum -5.74 mm -2.4 m 0 eV 818 keV 566 mum 566 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1878, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 306 mum -354 mum -2.42 m 50.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 762 mum -1.47 mm -2.42 m 0 eV 0 eV 9.83 mm 9.83 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2010, Parent ID = 1878 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 762 mum -1.47 mm -2.42 m 46.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -234 mum -1.86 mm -2.41 m 29.3 MeV 6.58 MeV 4.82 mm 4.82 mm Target eBrem + 2 -111 mum -2.67 mm -2.41 m 26.2 MeV 2.61 MeV 1.86 mm 6.68 mm Target eBrem + 3 778 mum -3.76 mm -2.41 m 15.9 MeV 4.23 MeV 2.44 mm 9.12 mm Target eBrem + 4 827 mum -3.93 mm -2.41 m 12.8 MeV 713 keV 482 mum 9.6 mm Target eBrem + 5 1.18 mm -4.11 mm -2.41 m 11 MeV 642 keV 570 mum 1.02 cm Target eBrem + 6 1.31 mm -4.37 mm -2.41 m 6.67 MeV 1.66 MeV 403 mum 1.06 cm Target eBrem + 7 461 mum -4.37 mm -2.4 m 4.19 MeV 2.1 MeV 1.82 mm 1.24 cm Target eBrem + 8 325 mum -4.37 mm -2.4 m 3.59 MeV 128 keV 164 mum 1.26 cm Target eBrem + 9 93.6 mum -4.02 mm -2.4 m 1.65 MeV 527 keV 526 mum 1.31 cm Target eBrem + 10 81.2 mum -3.93 mm -2.4 m 0 eV 1.65 MeV 1.29 mm 1.44 cm Target eIoni + 11 81.2 mum -3.93 mm -2.4 m 0 eV 0 eV 0 fm 1.44 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2021, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 81.2 mum -3.93 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 800 mum -4.62 mm -2.4 m 0 eV 88 keV 999 mum 999 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2022, Parent ID = 2021 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 800 mum -4.62 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 813 mum -4.63 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2020, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 81.2 mum -3.93 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.21 mm -2.68 mm -2.4 m 0 eV 88 keV 1.8 mm 1.8 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2023, Parent ID = 2020 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.21 mm -2.68 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.22 mm -2.67 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2019, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 93.6 mum -4.02 mm -2.4 m 1.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 -504 mum -1.73 mm -2.4 m 1.41 MeV 0 eV 5.42 mm 5.42 mm Target Transportation + 2 -39.2 cm 1.5 m 80 cm 1.41 MeV 0 eV 3.56 m 3.56 m Tracker Transportation + 3 -40.2 cm 1.54 m 88.1 cm 1.41 MeV 0 eV 8.95 cm 3.65 m Chamber Transportation + 4 -49 cm 1.87 m 1.6 m 1.41 MeV 0 eV 79.9 cm 4.45 m Tracker Transportation + 5 -51.5 cm 1.97 m 1.8 m 1.41 MeV 0 eV 22.2 cm 4.67 m Chamber Transportation + 6 -58.8 cm 2.25 m 2.4 m 1.41 MeV 0 eV 66.7 cm 5.34 m Tracker Transportation + 7 -65.1 cm 2.49 m 2.91 m 1.41 MeV 0 eV 56.7 cm 5.91 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2018, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 325 mum -4.37 mm -2.4 m 473 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.02 mm -2.7 mm -2.4 m 269 keV 0 eV 2.93 mm 2.93 mm Target compt + 2 -2.42 mm -3.16 mm -2.4 m 257 keV 0 eV 792 mum 3.72 mm Target compt + 3 -2.67 mm -3.87 mm -2.4 m 0 eV 88 keV 1.51 mm 5.23 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2026, Parent ID = 2018 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.67 mm -3.87 mm -2.4 m 169 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.67 mm -3.87 mm -2.4 m 0 eV 169 keV 63.6 mum 63.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2025, Parent ID = 2018 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.42 mm -3.16 mm -2.4 m 12 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.42 mm -3.16 mm -2.4 m 0 eV 12 keV 916 nm 916 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2024, Parent ID = 2018 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.02 mm -2.7 mm -2.4 m 204 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.03 mm -2.7 mm -2.4 m 0 eV 204 keV 83.9 mum 83.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2017, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 461 mum -4.37 mm -2.4 m 386 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.95 mm -4.17 mm -2.4 m 0 eV 88 keV 2.42 mm 2.42 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2027, Parent ID = 2017 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.95 mm -4.17 mm -2.4 m 298 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.96 mm -4.17 mm -2.4 m 0 eV 298 keV 147 mum 147 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2016, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 mm -4.37 mm -2.41 m 2.71 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.86 mm -4.88 mm -2.4 m 0 eV 0 eV 3.26 mm 3.26 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2029, Parent ID = 2016 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.86 mm -4.88 mm -2.4 m 859 keV 0 eV 0 fm 0 fm Target initStep + 1 1.85 mm -4.88 mm -2.4 m 0 eV 859 keV 608 mum 608 mum Target eIoni + 2 1.85 mm -4.88 mm -2.4 m 0 eV 0 eV 0 fm 608 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2031, Parent ID = 2029 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.85 mm -4.88 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.82 mm -2.31 mm -2.4 m 511 keV 0 eV 3.72 mm 3.72 mm Target Transportation + 2 -2.99 cm 2.4 m 10.6 cm 511 keV 0 eV 3.47 m 3.48 m Tracker Transportation + 3 -3.67 cm 2.91 m 63.8 cm 511 keV 0 eV 73.7 cm 4.21 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2030, Parent ID = 2029 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.85 mm -4.88 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.87 mm -5.69 mm -2.4 m 0 eV 88 keV 1.17 mm 1.17 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2032, Parent ID = 2030 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.87 mm -5.69 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.88 mm -5.7 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2028, Parent ID = 2016 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.86 mm -4.88 mm -2.4 m 827 keV 0 eV 0 fm 0 fm Target initStep + 1 1.88 mm -4.89 mm -2.4 m 0 eV 827 keV 574 mum 574 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2015, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 mm -4.11 mm -2.41 m 1.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.27 mm -9.48 mm -2.4 m 1.12 MeV 0 eV 9.66 mm 9.66 mm Target Transportation + 2 2.27 m -2.4 m 36 cm 1.12 MeV 0 eV 4.3 m 4.31 m Tracker Transportation + 3 2.76 m -2.91 m 94.9 cm 1.12 MeV 0 eV 91.7 cm 5.23 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2014, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 827 mum -3.93 mm -2.41 m 2.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.27 mm -4.42 mm -2.4 m 928 keV 0 eV 3.62 mm 3.62 mm Target compt + 2 3.89 mm -4.26 mm -2.4 m 546 keV 0 eV 649 mum 4.27 mm Target compt + 3 1.18 cm 9.41 mm -2.41 m 0 eV 88 keV 1.73 cm 2.15 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2035, Parent ID = 2014 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 cm 9.41 mm -2.41 m 458 keV 0 eV 0 fm 0 fm Target initStep + 1 1.18 cm 9.42 mm -2.41 m 0 eV 458 keV 269 mum 269 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2034, Parent ID = 2014 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.89 mm -4.26 mm -2.4 m 382 keV 0 eV 0 fm 0 fm Target initStep + 1 3.91 mm -4.26 mm -2.4 m 0 eV 382 keV 209 mum 209 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2033, Parent ID = 2014 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.27 mm -4.42 mm -2.4 m 1.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.19 mm -4.67 mm -2.4 m 1.03 MeV 425 keV 440 mum 440 mum Target eBrem + 2 3.19 mm -4.68 mm -2.4 m 0 eV 1.03 MeV 744 mum 1.18 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2013, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 778 mum -3.76 mm -2.41 m 6.04 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.89 mm -6.93 mm -2.4 m 6.04 MeV 0 eV 7.96 mm 7.96 mm Target Transportation + 2 72.9 cm -1.09 m -0.455 fm 6.04 MeV 0 eV 2.73 m 2.74 m Tracker Transportation + 3 73.5 cm -1.1 m 2.01 cm 6.04 MeV 0 eV 2.29 cm 2.76 m Chamber Transportation + 4 97.1 cm -1.46 m 80 cm 6.04 MeV 0 eV 88.8 cm 3.65 m Tracker Transportation + 5 1.02 m -1.54 m 97.3 cm 6.04 MeV 0 eV 19.7 cm 3.85 m Chamber Transportation + 6 1.21 m -1.82 m 1.6 m 6.04 MeV 0 eV 71.4 cm 4.56 m Tracker Transportation + 7 1.27 m -1.91 m 1.8 m 6.04 MeV 0 eV 22.8 cm 4.79 m Chamber Transportation + 8 1.45 m -2.18 m 2.4 m 6.04 MeV 0 eV 68.3 cm 5.47 m Tracker Transportation + 9 1.61 m -2.41 m 2.91 m 6.04 MeV 0 eV 58.1 cm 6.06 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2012, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -111 mum -2.67 mm -2.41 m 516 keV 0 eV 0 fm 0 fm Target initStep + 1 1.39 mm -3.78 mm -2.4 m 172 keV 0 eV 4.79 mm 4.79 mm Target compt + 2 1.36 mm -3.76 mm -2.4 m 0 eV 88 keV 60.6 mum 4.85 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2037, Parent ID = 2012 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.36 mm -3.76 mm -2.4 m 83.7 keV 0 eV 0 fm 0 fm Target initStep + 1 1.36 mm -3.76 mm -2.4 m 0 eV 83.7 keV 20.8 mum 20.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2036, Parent ID = 2012 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.39 mm -3.78 mm -2.4 m 345 keV 0 eV 0 fm 0 fm Target initStep + 1 1.4 mm -3.78 mm -2.4 m 0 eV 345 keV 181 mum 181 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2011, Parent ID = 2010 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -234 mum -1.86 mm -2.41 m 10.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -189 mum -1.99 mm -2.41 m 0 eV 0 eV 464 mum 464 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2039, Parent ID = 2011 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -189 mum -1.99 mm -2.41 m 7.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 661 mum -2.93 mm -2.41 m 4.58 MeV 2.61 MeV 1.71 mm 1.71 mm Target eBrem + 2 394 mum -2.49 mm -2.41 m 2.69 MeV 1.57 MeV 1.3 mm 3.01 mm Target eBrem + 3 520 mum -2.59 mm -2.41 m 1.87 MeV 362 keV 349 mum 3.36 mm Target eBrem + 4 460 mum -2.55 mm -2.41 m 0 eV 265 keV 286 mum 3.64 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2044, Parent ID = 2039 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 460 mum -2.55 mm -2.41 m 2.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -50.6 mum -3.55 mm -2.41 m 383 keV 0 eV 2.43 mm 2.43 mm Target compt + 2 -5.76 mm -2.6 mm -2.41 m 0 eV 88 keV 5.99 mm 8.42 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2046, Parent ID = 2044 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.76 mm -2.6 mm -2.41 m 295 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.77 mm -2.59 mm -2.41 m 0 eV 295 keV 145 mum 145 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2045, Parent ID = 2044 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -50.6 mum -3.55 mm -2.41 m 1.72 MeV 0 eV 0 fm 0 fm Target initStep + 1 -55.1 mum -3.6 mm -2.41 m 0 eV 1.72 MeV 1.33 mm 1.33 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2043, Parent ID = 2039 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 460 mum -2.55 mm -2.41 m 519 keV 0 eV 0 fm 0 fm Target initStep + 1 307 mum -2.17 mm -2.41 m 314 keV 0 eV 411 mum 411 mum Target compt + 2 -1.57 mm -2.15 mm -2.41 m 301 keV 0 eV 1.92 mm 2.33 mm Target compt + 3 -2.25 mm -2.3 mm -2.41 m 0 eV 88 keV 796 mum 3.13 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2049, Parent ID = 2043 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.25 mm -2.3 mm -2.41 m 213 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.25 mm -2.31 mm -2.41 m 0 eV 213 keV 89.8 mum 89.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2048, Parent ID = 2043 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.57 mm -2.15 mm -2.41 m 13.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.57 mm -2.15 mm -2.41 m 0 eV 13.1 keV 1.06 mum 1.06 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2047, Parent ID = 2043 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 307 mum -2.17 mm -2.41 m 205 keV 0 eV 0 fm 0 fm Target initStep + 1 309 mum -2.17 mm -2.41 m 0 eV 205 keV 85.1 mum 85.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2042, Parent ID = 2039 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 520 mum -2.59 mm -2.41 m 457 keV 0 eV 0 fm 0 fm Target initStep + 1 651 mum -1.64 mm -2.41 m 0 eV 88 keV 1.49 mm 1.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2050, Parent ID = 2042 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 651 mum -1.64 mm -2.41 m 369 keV 0 eV 0 fm 0 fm Target initStep + 1 650 mum -1.63 mm -2.41 m 0 eV 369 keV 199 mum 199 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2041, Parent ID = 2039 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 394 mum -2.49 mm -2.41 m 316 keV 0 eV 0 fm 0 fm Target initStep + 1 394 mum -2.49 mm -2.41 m 312 keV 0 eV 3.23 mum 3.23 mum Target compt + 2 432 mum -3.09 mm -2.41 m 0 eV 88 keV 597 mum 600 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2052, Parent ID = 2041 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 432 mum -3.09 mm -2.41 m 224 keV 0 eV 0 fm 0 fm Target initStep + 1 430 mum -3.09 mm -2.41 m 0 eV 224 keV 97.3 mum 97.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2051, Parent ID = 2041 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 394 mum -2.49 mm -2.41 m 3.29 keV 0 eV 0 fm 0 fm Target initStep + 1 394 mum -2.49 mm -2.41 m 0 eV 3.29 keV 142 nm 142 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2040, Parent ID = 2039 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 661 mum -2.93 mm -2.41 m 697 keV 0 eV 0 fm 0 fm Target initStep + 1 1.51 mm -8.92 mm -2.4 m 697 keV 0 eV 1.04 cm 1.04 cm Target Transportation + 2 34.2 cm -2.4 m 97.6 cm 697 keV 0 eV 4.15 m 4.16 m Tracker Transportation + 3 41.5 cm -2.91 m 1.7 m 697 keV 0 eV 88.5 cm 5.05 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2038, Parent ID = 2011 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -189 mum -1.99 mm -2.41 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -166 mum -2.1 mm -2.41 m 0 eV 1.7 MeV 1.31 mm 1.31 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2009, Parent ID = 1878 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 762 mum -1.47 mm -2.42 m 3.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 733 mum -1.46 mm -2.41 m 104 keV 94.4 keV 91.8 mum 91.8 mum Target eBrem + 2 733 mum -1.46 mm -2.41 m 0 eV 104 keV 29.6 mum 121 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2053, Parent ID = 2009 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 733 mum -1.46 mm -2.41 m 3.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.35 mm -6.86 mm -2.4 m 3.19 MeV 0 eV 1.63 cm 1.63 cm Target Transportation + 2 39.2 cm -58.4 cm -80 cm 3.19 MeV 0 eV 1.74 m 1.76 m Tracker Transportation + 3 44 cm -65.6 cm -60 cm 3.19 MeV 0 eV 21.8 cm 1.98 m Chamber Transportation + 4 58.6 cm -87.3 cm 0.114 fm 3.19 MeV 0 eV 65.4 cm 2.63 m Tracker Transportation + 5 63.4 cm -94.5 cm 20 cm 3.19 MeV 0 eV 21.8 cm 2.85 m Chamber Transportation + 6 78 cm -1.16 m 80 cm 3.19 MeV 0 eV 65.4 cm 3.51 m Tracker Transportation + 7 82.8 cm -1.23 m 1 m 3.19 MeV 0 eV 21.8 cm 3.72 m Chamber Transportation + 8 97.3 cm -1.45 m 1.6 m 3.19 MeV 0 eV 65.4 cm 4.38 m Tracker Transportation + 9 1.02 m -1.52 m 1.8 m 3.19 MeV 0 eV 21.8 cm 4.6 m Chamber Transportation + 10 1.17 m -1.74 m 2.4 m 3.19 MeV 0 eV 65.4 cm 5.25 m Tracker Transportation + 11 1.29 m -1.92 m 2.91 m 3.19 MeV 0 eV 55.6 cm 5.81 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1877, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 270 mum -304 mum -2.43 m 663 keV 0 eV 0 fm 0 fm Target initStep + 1 1.24 mm -1.63 mm -2.41 m 0 eV 88 keV 1.17 cm 1.17 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2054, Parent ID = 1877 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm -1.63 mm -2.41 m 575 keV 0 eV 0 fm 0 fm Target initStep + 1 1.23 mm -1.63 mm -2.41 m 0 eV 575 keV 363 mum 363 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1876, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 251 mum -278 mum -2.43 m 750 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm -1.48 mm -2.41 m 501 keV 0 eV 1.35 cm 1.35 cm Target compt + 2 1.79 mm -876 mum -2.41 m 225 keV 0 eV 1.2 mm 1.47 cm Target compt + 3 328 mum -1.01 mm -2.41 m 0 eV 88 keV 1.62 mm 1.63 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2057, Parent ID = 1876 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 328 mum -1.01 mm -2.41 m 137 keV 0 eV 0 fm 0 fm Target initStep + 1 329 mum -1 mm -2.41 m 0 eV 137 keV 45.9 mum 45.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2056, Parent ID = 1876 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.79 mm -876 mum -2.41 m 276 keV 0 eV 0 fm 0 fm Target initStep + 1 1.8 mm -872 mum -2.41 m 0 eV 276 keV 132 mum 132 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2055, Parent ID = 1876 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 mm -1.48 mm -2.41 m 249 keV 0 eV 0 fm 0 fm Target initStep + 1 1.15 mm -1.49 mm -2.41 m 0 eV 249 keV 113 mum 113 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1875, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 228 mum -226 mum -2.43 m 382 keV 0 eV 0 fm 0 fm Target initStep + 1 365 mum -467 mum -2.42 m 0 eV 88 keV 2.5 mm 2.5 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2058, Parent ID = 1875 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 365 mum -467 mum -2.42 m 294 keV 0 eV 0 fm 0 fm Target initStep + 1 362 mum -469 mum -2.42 m 0 eV 294 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1874, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 208 mum -191 mum -2.43 m 544 keV 0 eV 0 fm 0 fm Target initStep + 1 241 mum -236 mum -2.43 m 301 keV 0 eV 560 mum 560 mum Target compt + 2 -2.22 mm 1.25 mm -2.42 m 0 eV 88 keV 3.05 mm 3.61 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2060, Parent ID = 1874 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.22 mm 1.25 mm -2.42 m 213 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.22 mm 1.25 mm -2.42 m 0 eV 213 keV 90.3 mum 90.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2059, Parent ID = 1874 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 241 mum -236 mum -2.43 m 242 keV 0 eV 0 fm 0 fm Target initStep + 1 245 mum -238 mum -2.43 m 0 eV 242 keV 109 mum 109 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1873, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 195 mum -169 mum -2.43 m 680 keV 0 eV 0 fm 0 fm Target initStep + 1 225 mum -215 mum -2.43 m 217 keV 0 eV 557 mum 557 mum Target compt + 2 301 mum -182 mum -2.43 m 0 eV 88 keV 106 mum 663 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2062, Parent ID = 1873 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 301 mum -182 mum -2.43 m 129 keV 0 eV 0 fm 0 fm Target initStep + 1 303 mum -180 mum -2.43 m 0 eV 129 keV 41.4 mum 41.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2061, Parent ID = 1873 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 225 mum -215 mum -2.43 m 463 keV 0 eV 0 fm 0 fm Target initStep + 1 222 mum -218 mum -2.43 m 0 eV 463 keV 273 mum 273 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1872, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 179 mum -131 mum -2.43 m 8.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 278 mum -324 mum -2.42 m 0 eV 0 eV 2.74 mm 2.74 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2064, Parent ID = 1872 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 278 mum -324 mum -2.42 m 868 keV 0 eV 0 fm 0 fm Target initStep + 1 270 mum -326 mum -2.42 m 0 eV 868 keV 615 mum 615 mum Target eIoni + 2 270 mum -326 mum -2.42 m 0 eV 0 eV 0 fm 615 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2066, Parent ID = 2064 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 270 mum -326 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 602 mum 1.8 mm -2.42 m 0 eV 88 keV 2.24 mm 2.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2067, Parent ID = 2066 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 602 mum 1.8 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 600 mum 1.81 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2065, Parent ID = 2064 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 270 mum -326 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -308 mum -4.01 mm -2.43 m 379 keV 0 eV 3.89 mm 3.89 mm Target compt + 2 1.97 mm -8.6 mm -2.42 m 0 eV 88 keV 5.41 mm 9.3 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2069, Parent ID = 2065 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.97 mm -8.6 mm -2.42 m 291 keV 0 eV 0 fm 0 fm Target initStep + 1 1.97 mm -8.6 mm -2.42 m 0 eV 291 keV 142 mum 142 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2068, Parent ID = 2065 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -308 mum -4.01 mm -2.43 m 132 keV 0 eV 0 fm 0 fm Target initStep + 1 -309 mum -4.02 mm -2.43 m 0 eV 132 keV 43.2 mum 43.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2063, Parent ID = 1872 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 278 mum -324 mum -2.42 m 6.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.55 mm 1.31 mm -2.42 m 816 keV 5.48 MeV 4.82 mm 4.82 mm Target eBrem + 2 3.58 mm 1.34 mm -2.42 m 0 eV 816 keV 564 mum 5.39 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1871, Parent ID = 1853 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 93.2 mum -114 mum -2.43 m 28.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 265 mum -193 mum -2.43 m 0 eV 0 eV 2.92 mm 2.92 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2071, Parent ID = 1871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 265 mum -193 mum -2.43 m 15.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.88 mm 175 mum -2.42 m 7.65 MeV 4.61 MeV 3.86 mm 3.86 mm Target eBrem + 2 2.82 mm 182 mum -2.42 m 7.07 MeV 145 keV 151 mum 4.01 mm Target eBrem + 3 6.57 mm 773 mum -2.42 m 902 keV 6.16 MeV 5.31 mm 9.32 mm Target eBrem + 4 6.54 mm 810 mum -2.42 m 0 eV 902 keV 645 mum 9.96 mm Target eIoni + 5 6.54 mm 810 mum -2.42 m 0 eV 0 eV 0 fm 9.96 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2075, Parent ID = 2071 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.54 mm 810 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.26 mm -3.85 mm -2.42 m 0 eV 88 keV 6.34 mm 6.34 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2076, Parent ID = 2075 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.26 mm -3.85 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.26 mm -3.87 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2074, Parent ID = 2071 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.54 mm 810 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.93 mm 2.24 mm -2.42 m 0 eV 88 keV 1.95 mm 1.95 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2077, Parent ID = 2074 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.93 mm 2.24 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 6.93 mm 2.26 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2073, Parent ID = 2071 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.82 mm 182 mum -2.42 m 435 keV 0 eV 0 fm 0 fm Target initStep + 1 2.38 mm -387 mum -2.42 m 398 keV 0 eV 1.83 mm 1.83 mm Target compt + 2 476 mum -5.35 mm -2.42 m 372 keV 0 eV 7.13 mm 8.96 mm Target compt + 3 694 mum -6.5 mm -2.41 m 333 keV 0 eV 2.01 mm 1.1 cm Target compt + 4 930 mum -6.55 mm -2.41 m 232 keV 0 eV 620 mum 1.16 cm Target compt + 5 812 mum -6.39 mm -2.41 m 0 eV 88 keV 256 mum 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2082, Parent ID = 2073 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 812 mum -6.39 mm -2.41 m 144 keV 0 eV 0 fm 0 fm Target initStep + 1 809 mum -6.39 mm -2.41 m 0 eV 144 keV 49.6 mum 49.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2081, Parent ID = 2073 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 930 mum -6.55 mm -2.41 m 101 keV 0 eV 0 fm 0 fm Target initStep + 1 932 mum -6.55 mm -2.41 m 0 eV 101 keV 27.9 mum 27.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2080, Parent ID = 2073 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 694 mum -6.5 mm -2.41 m 39.1 keV 0 eV 0 fm 0 fm Target initStep + 1 693 mum -6.5 mm -2.41 m 0 eV 39.1 keV 6 mum 6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2079, Parent ID = 2073 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 476 mum -5.35 mm -2.42 m 26.1 keV 0 eV 0 fm 0 fm Target initStep + 1 476 mum -5.35 mm -2.42 m 0 eV 26.1 keV 3.12 mum 3.12 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2078, Parent ID = 2073 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.38 mm -387 mum -2.42 m 36.4 keV 0 eV 0 fm 0 fm Target initStep + 1 2.38 mm -387 mum -2.42 m 0 eV 36.4 keV 5.35 mum 5.35 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2072, Parent ID = 2071 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.88 mm 175 mum -2.42 m 3.58 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7 mm -6.47 mm -2.4 m 0 eV 0 eV 2.28 cm 2.28 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2084, Parent ID = 2072 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7 mm -6.47 mm -2.4 m 1.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.01 mm -6.37 mm -2.4 m 0 eV 1.15 MeV 857 mum 857 mum Target eIoni + 2 -7.01 mm -6.37 mm -2.4 m 0 eV 0 eV 0 fm 857 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2086, Parent ID = 2084 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.01 mm -6.37 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.83 mm -7.78 mm -2.4 m 0 eV 88 keV 2 mm 2 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2087, Parent ID = 2086 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.83 mm -7.78 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.81 mm -7.78 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2085, Parent ID = 2084 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.01 mm -6.37 mm -2.4 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.61 mm -5.66 mm -2.4 m 0 eV 88 keV 1.01 mm 1.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2088, Parent ID = 2085 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.61 mm -5.66 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.62 mm -5.65 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2083, Parent ID = 2072 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7 mm -6.47 mm -2.4 m 1.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.95 mm -6.58 mm -2.4 m 992 keV 422 keV 457 mum 457 mum Target eBrem + 2 -6.95 mm -6.52 mm -2.4 m 0 eV 992 keV 713 mum 1.17 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2070, Parent ID = 1871 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 265 mum -193 mum -2.43 m 11.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 94 mum 96.2 mum -2.42 m 9.94 MeV 1.18 MeV 998 mum 998 mum Target eBrem + 2 -126 mum -1.66 mm -2.42 m 4.35 MeV 3.15 MeV 2.45 mm 3.45 mm Target eBrem + 3 264 mum -1.21 mm -2.42 m 1.39 MeV 1.09 MeV 869 mum 4.31 mm Target eBrem + 4 328 mum -1.45 mm -2.42 m 288 keV 537 keV 410 mum 4.73 mm Target eBrem + 5 320 mum -1.45 mm -2.42 m 0 eV 288 keV 140 mum 4.87 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2092, Parent ID = 2070 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 328 mum -1.45 mm -2.42 m 565 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.75 mm -1.13 mm -2.42 m 0 eV 88 keV 8.73 mm 8.73 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2093, Parent ID = 2092 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.75 mm -1.13 mm -2.42 m 477 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.75 mm -1.14 mm -2.42 m 0 eV 477 keV 284 mum 284 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2091, Parent ID = 2070 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 264 mum -1.21 mm -2.42 m 1.88 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.42 cm -1.51 mm -2.4 m 1.3 MeV 0 eV 2.49 cm 2.49 cm Target compt + 2 1.62 cm 162 mum -2.4 m 1.3 MeV 0 eV 3.61 mm 2.86 cm Target Transportation + 3 2.4 m 2.01 m 62 cm 1.3 MeV 0 eV 4.34 m 4.37 m Tracker Transportation + 4 2.91 m 2.44 m 1.27 m 1.3 MeV 0 eV 92.9 cm 5.3 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2094, Parent ID = 2091 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.42 cm -1.51 mm -2.4 m 579 keV 0 eV 0 fm 0 fm Target initStep + 1 1.42 cm -1.53 mm -2.4 m 0 eV 579 keV 366 mum 366 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2090, Parent ID = 2070 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -126 mum -1.66 mm -2.42 m 2.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.59 mm -1.27 mm -2.43 m 836 keV 0 eV 2.5 mm 2.5 mm Target compt + 2 1.56 cm 2.31 cm -2.43 m 0 eV 88 keV 2.86 cm 3.11 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2096, Parent ID = 2090 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.56 cm 2.31 cm -2.43 m 748 keV 0 eV 0 fm 0 fm Target initStep + 1 1.57 cm 2.31 cm -2.43 m 0 eV 748 keV 507 mum 507 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2095, Parent ID = 2090 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.59 mm -1.27 mm -2.43 m 1.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.66 mm -1.29 mm -2.43 m 0 eV 1.6 MeV 1.22 mm 1.22 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2089, Parent ID = 2070 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 94 mum 96.2 mum -2.42 m 421 keV 0 eV 0 fm 0 fm Target initStep + 1 625 mum -119 mum -2.42 m 305 keV 0 eV 819 mum 819 mum Target compt + 2 1.32 mm 992 mum -2.42 m 0 eV 88 keV 1.68 mm 2.5 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2098, Parent ID = 2089 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.32 mm 992 mum -2.42 m 217 keV 0 eV 0 fm 0 fm Target initStep + 1 1.32 mm 992 mum -2.42 m 0 eV 217 keV 92.8 mum 92.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2097, Parent ID = 2089 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 625 mum -119 mum -2.42 m 116 keV 0 eV 0 fm 0 fm Target initStep + 1 626 mum -122 mum -2.42 m 0 eV 116 keV 35.1 mum 35.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1752, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 98.5 mum -18.8 mum -2.43 m 1.45 MeV 0 eV 0 fm 0 fm Target initStep + 1 277 mum -84.6 mum -2.43 m 646 keV 0 eV 5.1 mm 5.1 mm Target compt + 2 6.08 mm -5.74 mm -2.42 m 241 keV 0 eV 9.58 mm 1.47 cm Target compt + 3 6.25 mm -5.59 mm -2.42 m 236 keV 0 eV 321 mum 1.5 cm Target compt + 4 7.86 mm -4.45 mm -2.43 m 0 eV 88 keV 2.26 mm 1.73 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2102, Parent ID = 1752 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.86 mm -4.45 mm -2.43 m 148 keV 0 eV 0 fm 0 fm Target initStep + 1 7.86 mm -4.45 mm -2.43 m 0 eV 148 keV 51.7 mum 51.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2101, Parent ID = 1752 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.25 mm -5.59 mm -2.42 m 4.64 keV 0 eV 0 fm 0 fm Target initStep + 1 6.25 mm -5.59 mm -2.42 m 0 eV 4.64 keV 230 nm 230 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2100, Parent ID = 1752 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.08 mm -5.74 mm -2.42 m 405 keV 0 eV 0 fm 0 fm Target initStep + 1 6.09 mm -5.75 mm -2.42 m 0 eV 405 keV 227 mum 227 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2099, Parent ID = 1752 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 277 mum -84.6 mum -2.43 m 804 keV 0 eV 0 fm 0 fm Target initStep + 1 265 mum -72.2 mum -2.43 m 0 eV 804 keV 554 mum 554 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1751, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 93.8 mum -18.4 mum -2.43 m 1.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 241 mum -51.9 mum -2.43 m 0 eV 88 keV 3.98 mm 3.98 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2103, Parent ID = 1751 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 241 mum -51.9 mum -2.43 m 1.44 MeV 0 eV 0 fm 0 fm Target initStep + 1 45.5 mum -165 mum -2.43 m 515 keV 532 keV 361 mum 361 mum Target eBrem + 2 49.1 mum -154 mum -2.43 m 0 eV 515 keV 314 mum 675 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2104, Parent ID = 2103 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 45.5 mum -165 mum -2.43 m 393 keV 0 eV 0 fm 0 fm Target initStep + 1 -160 mum 137 mum -2.43 m 0 eV 88 keV 1.16 mm 1.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2105, Parent ID = 2104 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -160 mum 137 mum -2.43 m 305 keV 0 eV 0 fm 0 fm Target initStep + 1 -165 mum 142 mum -2.43 m 0 eV 305 keV 152 mum 152 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1750, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 85.8 mum -15 mum -2.43 m 99.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 573 mum -154 mum -2.42 m 0 eV 0 eV 1.48 cm 1.48 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2107, Parent ID = 1750 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 573 mum -154 mum -2.42 m 80.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 565 mum -180 mum -2.42 m 55.7 MeV 3.22 MeV 805 mum 805 mum Target eBrem + 2 605 mum -189 mum -2.42 m 52.8 MeV 1.09 MeV 956 mum 1.76 mm Target eBrem + 3 719 mum -192 mum -2.42 m 34.2 MeV 925 keV 862 mum 2.62 mm Target eBrem + 4 779 mum -57.4 mum -2.42 m 32 MeV 951 keV 769 mum 3.39 mm Target eBrem + 5 969 mum 113 mum -2.42 m 28.2 MeV 1.26 MeV 1 mm 4.39 mm Target eBrem + 6 972 mum 105 mum -2.42 m 27.4 MeV 52.5 keV 50.9 mum 4.45 mm Target eBrem + 7 976 mum 85.9 mum -2.42 m 25.9 MeV 127 keV 113 mum 4.56 mm Target eBrem + 8 978 mum 82.2 mum -2.42 m 22.1 MeV 65 keV 43.9 mum 4.6 mm Target eBrem + 9 2.58 mm 244 mum -2.41 m 17.8 MeV 3.65 MeV 2.99 mm 7.6 mm Target eBrem + 10 2.58 mm 234 mum -2.41 m 17.4 MeV 5.69 keV 10.9 mum 7.61 mm Target eBrem + 11 2.6 mm -399 mum -2.41 m 14.5 MeV 886 keV 721 mum 8.33 mm Target eBrem + 12 3.55 mm -2.02 mm -2.41 m 8.2 MeV 5.45 MeV 3.56 mm 1.19 cm Target eBrem + 13 2.72 mm -3.63 mm -2.41 m 0 eV 8.2 MeV 6.27 mm 1.82 cm Target eIoni + 14 2.72 mm -3.63 mm -2.41 m 0 eV 0 eV 0 fm 1.82 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2121, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.72 mm -3.63 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.45 mm -6.89 mm -2.41 m 175 keV 0 eV 3.72 mm 3.72 mm Target compt + 2 3.89 mm -6.16 mm -2.41 m 0 eV 88 keV 1.04 mm 4.76 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2123, Parent ID = 2121 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.89 mm -6.16 mm -2.41 m 86.8 keV 0 eV 0 fm 0 fm Target initStep + 1 3.89 mm -6.16 mm -2.41 m 0 eV 86.8 keV 22 mum 22 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2122, Parent ID = 2121 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.45 mm -6.89 mm -2.41 m 336 keV 0 eV 0 fm 0 fm Target initStep + 1 4.46 mm -6.9 mm -2.41 m 0 eV 336 keV 175 mum 175 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2120, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.72 mm -3.63 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -867 mum 3.13 mm -2.41 m 332 keV 0 eV 7.71 mm 7.71 mm Target compt + 2 1.6 mm 6.7 mm -2.4 m 0 eV 88 keV 4.92 mm 1.26 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2125, Parent ID = 2120 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.6 mm 6.7 mm -2.4 m 244 keV 0 eV 0 fm 0 fm Target initStep + 1 1.6 mm 6.7 mm -2.4 m 0 eV 244 keV 110 mum 110 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2124, Parent ID = 2120 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -867 mum 3.13 mm -2.41 m 179 keV 0 eV 0 fm 0 fm Target initStep + 1 -871 mum 3.13 mm -2.41 m 0 eV 179 keV 69.3 mum 69.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2119, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.55 mm -2.02 mm -2.41 m 803 keV 0 eV 0 fm 0 fm Target initStep + 1 -819 mum -1.32 cm -2.4 m 803 keV 0 eV 1.48 cm 1.48 cm Target Transportation + 2 -93.6 cm -2.4 m -52 cm 803 keV 0 eV 3.18 m 3.19 m Tracker Transportation + 3 -1.14 m -2.91 m -11.9 cm 803 keV 0 eV 67.9 cm 3.87 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2118, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.6 mm -399 mum -2.41 m 2.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 9.77 mm -2.5 cm -2.4 m 2.03 MeV 0 eV 2.79 cm 2.79 cm Target Transportation + 2 1.04 cm -2.71 cm -2.4 m 2.03 MeV 0 eV 2.43 mm 3.03 cm World Transportation + 3 70.2 cm -2.4 m -1.33 m 2.03 MeV 0 eV 2.69 m 2.72 m Tracker Transportation + 4 85 cm -2.91 m -1.11 m 2.03 MeV 0 eV 57.8 cm 3.3 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2117, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.58 mm 234 mum -2.41 m 397 keV 0 eV 0 fm 0 fm Target initStep + 1 2.7 mm -242 mum -2.41 m 0 eV 88 keV 532 mum 532 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2126, Parent ID = 2117 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.7 mm -242 mum -2.41 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 2.7 mm -250 mum -2.41 m 0 eV 309 keV 155 mum 155 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2116, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.58 mm 244 mum -2.41 m 663 keV 0 eV 0 fm 0 fm Target initStep + 1 3.35 mm -3.24 mm -2.41 m 316 keV 0 eV 3.85 mm 3.85 mm Target compt + 2 2.48 mm -4.39 mm -2.41 m 0 eV 88 keV 2.06 mm 5.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2128, Parent ID = 2116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.48 mm -4.39 mm -2.41 m 228 keV 0 eV 0 fm 0 fm Target initStep + 1 2.48 mm -4.4 mm -2.41 m 0 eV 228 keV 99.7 mum 99.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2127, Parent ID = 2116 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.35 mm -3.24 mm -2.41 m 347 keV 0 eV 0 fm 0 fm Target initStep + 1 3.35 mm -3.25 mm -2.41 m 0 eV 347 keV 184 mum 184 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2115, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 978 mum 82.2 mum -2.42 m 3.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.46 mm -1.43 mm -2.4 m 3.61 MeV 0 eV 1.3 cm 1.3 cm Target compt + 2 3.74 mm -1.51 mm -2.4 m 3.61 MeV 0 eV 2.34 mm 1.54 cm Target Transportation + 3 10.3 cm -2.64 cm -1.6 m 3.61 MeV 0 eV 80.6 cm 82.2 cm Tracker Transportation + 4 12.7 cm -3.27 cm -1.4 m 3.61 MeV 0 eV 20.2 cm 1.02 m Chamber Transportation + 5 20.2 cm -5.14 cm -80 cm 3.61 MeV 0 eV 60.5 cm 1.63 m Tracker Transportation + 6 22.6 cm -5.76 cm -60 cm 3.61 MeV 0 eV 20.2 cm 1.83 m Chamber Transportation + 7 30 cm -7.63 cm 0 fm 3.61 MeV 0 eV 60.5 cm 2.43 m Tracker Transportation + 8 32.5 cm -8.26 cm 20 cm 3.61 MeV 0 eV 20.2 cm 2.64 m Chamber Transportation + 9 39.9 cm -10.1 cm 80 cm 3.61 MeV 0 eV 60.5 cm 3.24 m Tracker Transportation + 10 42.4 cm -10.8 cm 1 m 3.61 MeV 0 eV 20.2 cm 3.44 m Chamber Transportation + 11 49.8 cm -12.6 cm 1.6 m 3.61 MeV 0 eV 60.5 cm 4.05 m Tracker Transportation + 12 52.3 cm -13.2 cm 1.8 m 3.61 MeV 0 eV 20.2 cm 4.25 m Chamber Transportation + 13 59.7 cm -15.1 cm 2.4 m 3.61 MeV 0 eV 60.5 cm 4.85 m Tracker Transportation + 14 66 cm -16.7 cm 2.91 m 3.61 MeV 0 eV 51.4 cm 5.37 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2129, Parent ID = 2115 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.46 mm -1.43 mm -2.4 m 162 keV 0 eV 0 fm 0 fm Target initStep + 1 3.46 mm -1.44 mm -2.4 m 0 eV 162 keV 59.2 mum 59.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2114, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 976 mum 85.9 mum -2.42 m 1.33 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.9 mm -1.21 mm -2.4 m 1.33 MeV 0 eV 1.51 cm 1.51 cm Target Transportation + 2 5.09 cm -7.03 cm -1.6 m 1.33 MeV 0 eV 80.4 cm 82 cm Tracker Transportation + 3 6.32 cm -8.75 cm -1.4 m 1.33 MeV 0 eV 20.1 cm 1.02 m Chamber Transportation + 4 10 cm -13.9 cm -80 cm 1.33 MeV 0 eV 60.3 cm 1.62 m Tracker Transportation + 5 11.2 cm -15.7 cm -60 cm 1.33 MeV 0 eV 20.1 cm 1.83 m Chamber Transportation + 6 14.9 cm -20.8 cm 0.114 fm 1.33 MeV 0 eV 60.3 cm 2.43 m Tracker Transportation + 7 16.1 cm -22.6 cm 20 cm 1.33 MeV 0 eV 20.1 cm 2.63 m Chamber Transportation + 8 19.8 cm -27.7 cm 80 cm 1.33 MeV 0 eV 60.3 cm 3.23 m Tracker Transportation + 9 21 cm -29.5 cm 1 m 1.33 MeV 0 eV 20.1 cm 3.43 m Chamber Transportation + 10 24.7 cm -34.7 cm 1.6 m 1.33 MeV 0 eV 60.3 cm 4.04 m Tracker Transportation + 11 25.9 cm -36.4 cm 1.8 m 1.33 MeV 0 eV 20.1 cm 4.24 m Chamber Transportation + 12 29.6 cm -41.6 cm 2.4 m 1.33 MeV 0 eV 60.3 cm 4.84 m Tracker Transportation + 13 32.7 cm -46 cm 2.91 m 1.33 MeV 0 eV 51.3 cm 5.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2113, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 972 mum 105 mum -2.42 m 802 keV 0 eV 0 fm 0 fm Target initStep + 1 -74.1 mum -2.41 mm -2.4 m 802 keV 0 eV 1.54 cm 1.54 cm Target Transportation + 2 -5.52 cm -13.5 cm -1.6 m 802 keV 0 eV 81.3 cm 82.8 cm Tracker Transportation + 3 -6.9 cm -16.8 cm -1.4 m 802 keV 0 eV 20.3 cm 1.03 m Chamber Transportation + 4 -11 cm -26.8 cm -80 cm 802 keV 0 eV 61 cm 1.64 m Tracker Transportation + 5 -12.4 cm -30.1 cm -60 cm 802 keV 0 eV 20.3 cm 1.84 m Chamber Transportation + 6 -16.6 cm -40.1 cm 0.114 fm 802 keV 0 eV 61 cm 2.45 m Tracker Transportation + 7 -17.9 cm -43.4 cm 20 cm 802 keV 0 eV 20.3 cm 2.66 m Chamber Transportation + 8 -22.1 cm -53.4 cm 80 cm 802 keV 0 eV 61 cm 3.27 m Tracker Transportation + 9 -23.5 cm -56.7 cm 1 m 802 keV 0 eV 20.3 cm 3.47 m Chamber Transportation + 10 -27.6 cm -66.7 cm 1.6 m 802 keV 0 eV 61 cm 4.08 m Tracker Transportation + 11 -29 cm -70 cm 1.8 m 802 keV 0 eV 20.3 cm 4.28 m Chamber Transportation + 12 -33.1 cm -79.9 cm 2.4 m 802 keV 0 eV 61 cm 4.89 m Tracker Transportation + 13 -36.6 cm -88.4 cm 2.91 m 802 keV 0 eV 51.8 cm 5.41 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2112, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 969 mum 113 mum -2.42 m 2.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.25 mm -1.97 mm -2.4 m 2.47 MeV 0 eV 1.54 cm 1.54 cm Target Transportation + 2 1.6 cm -11.1 cm -1.6 m 2.47 MeV 0 eV 80.8 cm 82.3 cm Tracker Transportation + 3 1.97 cm -13.9 cm -1.4 m 2.47 MeV 0 eV 20.2 cm 1.02 m Chamber Transportation + 4 3.07 cm -22.1 cm -80 cm 2.47 MeV 0 eV 60.6 cm 1.63 m Tracker Transportation + 5 3.44 cm -24.8 cm -60 cm 2.47 MeV 0 eV 20.2 cm 1.83 m Chamber Transportation + 6 4.55 cm -33 cm 0 fm 2.47 MeV 0 eV 60.6 cm 2.44 m Tracker Transportation + 7 4.91 cm -35.7 cm 20 cm 2.47 MeV 0 eV 20.2 cm 2.64 m Chamber Transportation + 8 6.02 cm -43.9 cm 80 cm 2.47 MeV 0 eV 60.6 cm 3.25 m Tracker Transportation + 9 6.39 cm -46.7 cm 1 m 2.47 MeV 0 eV 20.2 cm 3.45 m Chamber Transportation + 10 7.49 cm -54.9 cm 1.6 m 2.47 MeV 0 eV 60.6 cm 4.05 m Tracker Transportation + 11 7.86 cm -57.6 cm 1.8 m 2.47 MeV 0 eV 20.2 cm 4.26 m Chamber Transportation + 12 8.97 cm -65.8 cm 2.4 m 2.47 MeV 0 eV 60.6 cm 4.86 m Tracker Transportation + 13 9.91 cm -72.8 cm 2.91 m 2.47 MeV 0 eV 51.5 cm 5.38 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2111, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 779 mum -57.4 mum -2.42 m 1.29 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.05 mm 973 mum -2.41 m 518 keV 0 eV 6.46 mm 6.46 mm Target compt + 2 -7.68 mm 3.84 mm -2.41 m 433 keV 0 eV 1.01 cm 1.65 cm Target compt + 3 -1.28 cm 3.62 mm -2.41 m 0 eV 88 keV 5.19 mm 2.17 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2132, Parent ID = 2111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.28 cm 3.62 mm -2.41 m 345 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.28 cm 3.63 mm -2.41 m 0 eV 345 keV 182 mum 182 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2131, Parent ID = 2111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.68 mm 3.84 mm -2.41 m 84.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.68 mm 3.84 mm -2.41 m 0 eV 84.8 keV 21.2 mum 21.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2130, Parent ID = 2111 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.05 mm 973 mum -2.41 m 769 keV 0 eV 0 fm 0 fm Target initStep + 1 1.07 mm 975 mum -2.41 m 0 eV 769 keV 525 mum 525 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2110, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 719 mum -192 mum -2.42 m 17.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.24 mm 449 mum -2.41 m 0 eV 0 eV 2.29 mm 2.29 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2134, Parent ID = 2110 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm 449 mum -2.41 m 8.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.56 mm 1.35 mm -2.41 m 0 eV 8.21 MeV 6.28 mm 6.28 mm Target eIoni + 2 1.56 mm 1.35 mm -2.41 m 0 eV 0 eV 0 fm 6.28 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2136, Parent ID = 2134 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.56 mm 1.35 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.41 mm 1.8 mm -2.42 m 0 eV 88 keV 1.32 cm 1.32 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2137, Parent ID = 2136 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.41 mm 1.8 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.42 mm 1.79 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2135, Parent ID = 2134 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.56 mm 1.35 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.26 mm 1.15 mm -2.41 m 0 eV 88 keV 5.99 mm 5.99 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2138, Parent ID = 2135 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.26 mm 1.15 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.27 mm 1.15 mm -2.41 m 102 keV 25.2 keV 23.6 mum 23.6 mum Target eBrem + 2 4.27 mm 1.15 mm -2.41 m 0 eV 102 keV 28.4 mum 52.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2139, Parent ID = 2138 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.27 mm 1.15 mm -2.41 m 296 keV 0 eV 0 fm 0 fm Target initStep + 1 5.66 mm -114 mum -2.41 m 0 eV 88 keV 2.73 mm 2.73 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2140, Parent ID = 2139 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.66 mm -114 mum -2.41 m 208 keV 0 eV 0 fm 0 fm Target initStep + 1 5.66 mm -119 mum -2.41 m 0 eV 208 keV 86.7 mum 86.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2133, Parent ID = 2110 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm 449 mum -2.41 m 8.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm 207 mum -2.41 m 3.76 MeV 1.44 MeV 1.16 mm 1.16 mm Target eBrem + 2 2.06 mm 232 mum -2.41 m 2.92 MeV 40.1 keV 48 mum 1.21 mm Target eBrem + 3 1.66 mm 599 mum -2.41 m 1.15 MeV 1.06 MeV 1.11 mm 2.32 mm Target eBrem + 4 1.65 mm 531 mum -2.41 m 0 eV 1.15 MeV 845 mum 3.17 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2143, Parent ID = 2133 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.66 mm 599 mum -2.41 m 718 keV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -1.71 cm -2.41 m 252 keV 0 eV 1.82 cm 1.82 cm Target compt + 2 2.88 mm -1.69 cm -2.41 m 167 keV 0 eV 997 mum 1.92 cm Target compt + 3 2.92 mm -1.68 cm -2.41 m 0 eV 88 keV 235 mum 1.94 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2146, Parent ID = 2143 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.92 mm -1.68 cm -2.41 m 78.7 keV 0 eV 0 fm 0 fm Target initStep + 1 2.92 mm -1.68 cm -2.41 m 0 eV 78.7 keV 18.7 mum 18.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2145, Parent ID = 2143 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.88 mm -1.69 cm -2.41 m 85.4 keV 0 eV 0 fm 0 fm Target initStep + 1 2.88 mm -1.69 cm -2.41 m 0 eV 85.4 keV 21.5 mum 21.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2144, Parent ID = 2143 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mm -1.71 cm -2.41 m 465 keV 0 eV 0 fm 0 fm Target initStep + 1 2.04 mm -1.72 cm -2.41 m 0 eV 465 keV 274 mum 274 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2142, Parent ID = 2133 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.06 mm 232 mum -2.41 m 802 keV 0 eV 0 fm 0 fm Target initStep + 1 1.95 mm 6.78 mm -2.41 m 0 eV 88 keV 6.59 mm 6.59 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2147, Parent ID = 2142 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.95 mm 6.78 mm -2.41 m 714 keV 0 eV 0 fm 0 fm Target initStep + 1 1.93 mm 6.81 mm -2.41 m 0 eV 714 keV 478 mum 478 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2141, Parent ID = 2133 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.04 mm 207 mum -2.41 m 3.27 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.01 mm 1.86 cm -2.43 m 303 keV 0 eV 2.32 cm 2.32 cm Target compt + 2 6.87 mm 1.51 cm -2.43 m 251 keV 0 eV 3.75 mm 2.7 cm Target compt + 3 7.63 mm 1.32 cm -2.43 m 0 eV 88 keV 2.33 mm 2.93 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2150, Parent ID = 2141 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.63 mm 1.32 cm -2.43 m 163 keV 0 eV 0 fm 0 fm Target initStep + 1 7.63 mm 1.32 cm -2.43 m 0 eV 163 keV 59.5 mum 59.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2149, Parent ID = 2141 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.87 mm 1.51 cm -2.43 m 52.1 keV 0 eV 0 fm 0 fm Target initStep + 1 6.87 mm 1.51 cm -2.43 m 0 eV 52.1 keV 9.59 mum 9.59 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2148, Parent ID = 2141 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.01 mm 1.86 cm -2.43 m 2.96 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.06 mm 1.88 cm -2.43 m 0 eV 2.96 MeV 1.99 mm 1.99 mm Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2109, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 605 mum -189 mum -2.42 m 1.84 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.13 mm -1.45 mm -2.4 m 1.84 MeV 0 eV 1.82 cm 1.82 cm Target Transportation + 2 16.3 cm -5.82 cm -1.6 m 1.84 MeV 0 eV 81.8 cm 83.6 cm Tracker Transportation + 3 20.2 cm -7.24 cm -1.4 m 1.84 MeV 0 eV 20.4 cm 1.04 m Chamber Transportation + 4 32.1 cm -11.5 cm -80 cm 1.84 MeV 0 eV 61.3 cm 1.65 m Tracker Transportation + 5 36.1 cm -12.9 cm -60 cm 1.84 MeV 0 eV 20.4 cm 1.86 m Chamber Transportation + 6 48 cm -17.2 cm 0 fm 1.84 MeV 0 eV 61.3 cm 2.47 m Tracker Transportation + 7 52 cm -18.6 cm 20 cm 1.84 MeV 0 eV 20.4 cm 2.68 m Chamber Transportation + 8 63.8 cm -22.8 cm 80 cm 1.84 MeV 0 eV 61.3 cm 3.29 m Tracker Transportation + 9 67.8 cm -24.3 cm 1 m 1.84 MeV 0 eV 20.4 cm 3.49 m Chamber Transportation + 10 79.7 cm -28.5 cm 1.6 m 1.84 MeV 0 eV 61.3 cm 4.11 m Tracker Transportation + 11 83.7 cm -29.9 cm 1.8 m 1.84 MeV 0 eV 20.4 cm 4.31 m Chamber Transportation + 12 95.6 cm -34.2 cm 2.4 m 1.84 MeV 0 eV 61.3 cm 4.92 m Tracker Transportation + 13 1.06 m -37.8 cm 2.91 m 1.84 MeV 0 eV 52.1 cm 5.44 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2108, Parent ID = 2107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 565 mum -180 mum -2.42 m 21.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 831 mum 184 mum -2.41 m 1.56 MeV 0 eV 4.67 mm 4.67 mm Target compt + 2 -2.46 mm 1.63 cm -2.4 m 1.56 MeV 0 eV 2.17 cm 2.63 cm Target Transportation + 3 -48.9 cm 2.4 m -31.6 cm 1.56 MeV 0 eV 3.2 m 3.23 m Tracker Transportation + 4 -59.3 cm 2.91 m 13 cm 1.56 MeV 0 eV 68.5 cm 3.92 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2151, Parent ID = 2108 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 831 mum 184 mum -2.41 m 19.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 980 mum 248 mum -2.41 m 18.6 MeV 728 keV 624 mum 624 mum Target eBrem + 2 1.44 mm 298 mum -2.41 m 17 MeV 1.05 MeV 928 mum 1.55 mm Target eBrem + 3 769 mum 786 mum -2.41 m 15.4 MeV 1.32 MeV 1.17 mm 2.72 mm Target eBrem + 4 521 mum 1.35 mm -2.41 m 10.9 MeV 866 keV 776 mum 3.5 mm Target eBrem + 5 -1.34 mm 2.07 mm -2.41 m 7.84 MeV 2.62 MeV 2.1 mm 5.59 mm Target eBrem + 6 -674 mum 3.46 mm -2.41 m 6.06 MeV 1.78 MeV 1.53 mm 7.13 mm Target eBrem + 7 -566 mum 3.55 mm -2.41 m 2.44 MeV 186 keV 148 mum 7.28 mm Target eBrem + 8 -465 mum 3.72 mm -2.41 m 0 eV 2.44 MeV 1.92 mm 9.2 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2157, Parent ID = 2151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -566 mum 3.55 mm -2.41 m 3.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 -108 mum 4.41 mm -2.41 m 0 eV 0 eV 1.06 mm 1.06 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2159, Parent ID = 2157 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -108 mum 4.41 mm -2.41 m 810 keV 0 eV 0 fm 0 fm Target initStep + 1 -69.9 mum 4.46 mm -2.41 m 0 eV 810 keV 565 mum 565 mum Target eIoni + 2 -69.9 mum 4.46 mm -2.41 m 0 eV 0 eV 0 fm 565 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2161, Parent ID = 2159 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -69.9 mum 4.46 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -182 mum 3.47 mm -2.41 m 240 keV 0 eV 1.04 mm 1.04 mm Target compt + 2 -268 mum 3.24 mm -2.41 m 0 eV 88 keV 1.75 mm 2.79 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2163, Parent ID = 2161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -268 mum 3.24 mm -2.41 m 152 keV 0 eV 0 fm 0 fm Target initStep + 1 -268 mum 3.24 mm -2.41 m 0 eV 152 keV 53.8 mum 53.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2162, Parent ID = 2161 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -182 mum 3.47 mm -2.41 m 271 keV 0 eV 0 fm 0 fm Target initStep + 1 -183 mum 3.46 mm -2.41 m 0 eV 271 keV 128 mum 128 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2160, Parent ID = 2159 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -69.9 mum 4.46 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -14.6 mum 4.95 mm -2.41 m 0 eV 88 keV 510 mum 510 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2164, Parent ID = 2160 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -14.6 mum 4.95 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -20.4 mum 4.97 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2158, Parent ID = 2157 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -108 mum 4.41 mm -2.41 m 1.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -74.5 mum 4.5 mm -2.41 m 0 eV 1.6 MeV 1.23 mm 1.23 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2156, Parent ID = 2151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.34 mm 2.07 mm -2.41 m 401 keV 0 eV 0 fm 0 fm Target initStep + 1 -690 mum 4.59 mm -2.41 m 0 eV 88 keV 3.27 mm 3.27 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2165, Parent ID = 2156 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -690 mum 4.59 mm -2.41 m 313 keV 0 eV 0 fm 0 fm Target initStep + 1 -697 mum 4.59 mm -2.41 m 0 eV 313 keV 158 mum 158 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2155, Parent ID = 2151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 521 mum 1.35 mm -2.41 m 3.69 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.47 mm 5.29 mm -2.41 m 0 eV 0 eV 4.56 mm 4.56 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2167, Parent ID = 2155 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.47 mm 5.29 mm -2.41 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.47 mm 5.21 mm -2.41 m 0 eV 1.02 MeV 744 mum 744 mum Target eIoni + 2 -1.47 mm 5.21 mm -2.41 m 0 eV 0 eV 0 fm 744 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2169, Parent ID = 2167 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.47 mm 5.21 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.06 mm -2.9 mm -2.41 m 258 keV 0 eV 1.08 cm 1.08 cm Target compt + 2 -7.3 mm -1.98 mm -2.4 m 200 keV 0 eV 1.73 mm 1.25 cm Target compt + 3 -7.43 mm -2 mm -2.4 m 0 eV 88 keV 150 mum 1.27 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2172, Parent ID = 2169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.43 mm -2 mm -2.4 m 112 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.44 mm -2 mm -2.4 m 0 eV 112 keV 33.2 mum 33.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2171, Parent ID = 2169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.3 mm -1.98 mm -2.4 m 57.6 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.3 mm -1.98 mm -2.4 m 0 eV 57.6 keV 11.3 mum 11.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2170, Parent ID = 2169 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.06 mm -2.9 mm -2.41 m 253 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.06 mm -2.9 mm -2.41 m 0 eV 253 keV 116 mum 116 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2168, Parent ID = 2167 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.47 mm 5.21 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.24 mm 1.2 cm -2.41 m 0 eV 88 keV 9.1 mm 9.1 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2173, Parent ID = 2168 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.24 mm 1.2 cm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.25 mm 1.2 cm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2166, Parent ID = 2155 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.47 mm 5.29 mm -2.41 m 1.66 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.41 mm 5.33 mm -2.41 m 0 eV 1.66 MeV 1.27 mm 1.27 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2154, Parent ID = 2151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 769 mum 786 mum -2.41 m 292 keV 0 eV 0 fm 0 fm Target initStep + 1 591 mum 1.2 mm -2.41 m 0 eV 88 keV 473 mum 473 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2174, Parent ID = 2154 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 591 mum 1.2 mm -2.41 m 204 keV 0 eV 0 fm 0 fm Target initStep + 1 590 mum 1.2 mm -2.41 m 0 eV 204 keV 84.2 mum 84.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2153, Parent ID = 2151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.44 mm 298 mum -2.41 m 514 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.38 mm 8.35 mm -2.4 m 0 eV 88 keV 1.34 cm 1.34 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2175, Parent ID = 2153 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.38 mm 8.35 mm -2.4 m 426 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.39 mm 8.36 mm -2.4 m 0 eV 426 keV 243 mum 243 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2152, Parent ID = 2151 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 980 mum 248 mum -2.41 m 569 keV 0 eV 0 fm 0 fm Target initStep + 1 1.75 mm 138 mum -2.41 m 233 keV 0 eV 2.65 mm 2.65 mm Target compt + 2 1.62 mm -140 mum -2.41 m 0 eV 88 keV 315 mum 2.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2177, Parent ID = 2152 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.62 mm -140 mum -2.41 m 145 keV 0 eV 0 fm 0 fm Target initStep + 1 1.62 mm -142 mum -2.41 m 0 eV 145 keV 50.2 mum 50.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2176, Parent ID = 2152 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.75 mm 138 mum -2.41 m 335 keV 0 eV 0 fm 0 fm Target initStep + 1 1.76 mm 141 mum -2.41 m 0 eV 335 keV 175 mum 175 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2106, Parent ID = 1750 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 573 mum -154 mum -2.42 m 17.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 596 mum -167 mum -2.42 m 17.3 MeV 218 keV 189 mum 189 mum Target eBrem + 2 457 mum -417 mum -2.42 m 9.13 MeV 2.51 MeV 962 mum 1.15 mm Target eBrem + 3 551 mum -301 mum -2.42 m 5.51 MeV 602 keV 544 mum 1.69 mm Target eBrem + 4 -112 mum 1.04 mm -2.42 m 2.15 MeV 2.97 MeV 2.63 mm 4.33 mm Target eBrem + 5 181 mum 1.33 mm -2.42 m 924 keV 657 keV 605 mum 4.93 mm Target eBrem + 6 155 mum 1.29 mm -2.42 m 0 eV 924 keV 656 mum 5.59 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2182, Parent ID = 2106 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 181 mum 1.33 mm -2.42 m 569 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.27 mm -6.77 mm -2.42 m 0 eV 88 keV 8.91 mm 8.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2183, Parent ID = 2182 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.27 mm -6.77 mm -2.42 m 481 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.28 mm -6.79 mm -2.42 m 0 eV 481 keV 287 mum 287 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2181, Parent ID = 2106 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -112 mum 1.04 mm -2.42 m 396 keV 0 eV 0 fm 0 fm Target initStep + 1 1.11 mm 3.88 mm -2.41 m 0 eV 88 keV 3.76 mm 3.76 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2184, Parent ID = 2181 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.11 mm 3.88 mm -2.41 m 308 keV 0 eV 0 fm 0 fm Target initStep + 1 1.12 mm 3.88 mm -2.41 m 0 eV 308 keV 155 mum 155 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2180, Parent ID = 2106 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 551 mum -301 mum -2.42 m 3.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -63.3 mum -2.37 mm -2.41 m 426 keV 0 eV 4.45 mm 4.45 mm Target compt + 2 4.61 mm 7.2 mm -2.41 m 198 keV 0 eV 1.2 cm 1.64 cm Target compt + 3 4.55 mm 7.21 mm -2.41 m 0 eV 88 keV 73.7 mum 1.65 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2187, Parent ID = 2180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.55 mm 7.21 mm -2.41 m 110 keV 0 eV 0 fm 0 fm Target initStep + 1 4.55 mm 7.22 mm -2.41 m 0 eV 110 keV 32.3 mum 32.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2186, Parent ID = 2180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.61 mm 7.2 mm -2.41 m 228 keV 0 eV 0 fm 0 fm Target initStep + 1 4.61 mm 7.2 mm -2.41 m 0 eV 228 keV 99.9 mum 99.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2185, Parent ID = 2180 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -63.3 mum -2.37 mm -2.41 m 2.59 MeV 0 eV 0 fm 0 fm Target initStep + 1 274 mum -2.1 mm -2.41 m 1.02 MeV 1.19 MeV 1.08 mm 1.08 mm Target eBrem + 2 278 mum -2.13 mm -2.41 m 0 eV 1.02 MeV 735 mum 1.81 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2188, Parent ID = 2185 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 274 mum -2.1 mm -2.41 m 387 keV 0 eV 0 fm 0 fm Target initStep + 1 204 mum -2.04 mm -2.41 m 322 keV 0 eV 373 mum 373 mum Target compt + 2 -1.76 mm -1.33 mm -2.42 m 0 eV 88 keV 2.51 mm 2.89 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2190, Parent ID = 2188 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.76 mm -1.33 mm -2.42 m 234 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.76 mm -1.33 mm -2.42 m 0 eV 234 keV 104 mum 104 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2189, Parent ID = 2188 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 204 mum -2.04 mm -2.41 m 65.6 keV 0 eV 0 fm 0 fm Target initStep + 1 204 mum -2.04 mm -2.41 m 0 eV 65.6 keV 14 mum 14 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2179, Parent ID = 2106 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 457 mum -417 mum -2.42 m 5.63 MeV 0 eV 0 fm 0 fm Target initStep + 1 -354 mum -397 mum -2.41 m 0 eV 0 eV 9.61 mm 9.61 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2192, Parent ID = 2179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -354 mum -397 mum -2.41 m 1.71 MeV 0 eV 0 fm 0 fm Target initStep + 1 -352 mum -356 mum -2.41 m 0 eV 1.71 MeV 1.34 mm 1.34 mm Target eIoni + 2 -352 mum -356 mum -2.41 m 0 eV 0 eV 0 fm 1.34 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2194, Parent ID = 2192 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -352 mum -356 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.1 mm -393 mum -2.42 m 232 keV 0 eV 1.18 cm 1.18 cm Target compt + 2 -2.56 mm -883 mum -2.42 m 134 keV 0 eV 706 mum 1.25 cm Target compt + 3 -2.46 mm -783 mum -2.42 m 0 eV 88 keV 421 mum 1.29 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2197, Parent ID = 2194 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.46 mm -783 mum -2.42 m 46.5 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.46 mm -783 mum -2.42 m 0 eV 46.5 keV 7.97 mum 7.97 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2196, Parent ID = 2194 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.56 mm -883 mum -2.42 m 97.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.56 mm -885 mum -2.42 m 0 eV 97.7 keV 26.6 mum 26.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2195, Parent ID = 2194 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.1 mm -393 mum -2.42 m 279 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.1 mm -391 mum -2.42 m 0 eV 279 keV 134 mum 134 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2193, Parent ID = 2192 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -352 mum -356 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -51.6 mum -350 mum -2.41 m 0 eV 88 keV 2.03 mm 2.03 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2198, Parent ID = 2193 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -51.6 mum -350 mum -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -56.7 mum -351 mum -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2191, Parent ID = 2179 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -354 mum -397 mum -2.41 m 2.89 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.2 mm 510 mum -2.41 m 350 keV 2.54 MeV 2.04 mm 2.04 mm Target eBrem + 2 -1.2 mm 498 mum -2.41 m 0 eV 350 keV 185 mum 2.23 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2178, Parent ID = 2106 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 596 mum -167 mum -2.42 m 424 keV 0 eV 0 fm 0 fm Target initStep + 1 1.55 mm -2.6 mm -2.4 m 213 keV 0 eV 1.74 cm 1.74 cm Target compt + 2 783 mum 603 mum -2.4 m 0 eV 88 keV 3.3 mm 2.07 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2200, Parent ID = 2178 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 783 mum 603 mum -2.4 m 125 keV 0 eV 0 fm 0 fm Target initStep + 1 784 mum 605 mum -2.4 m 0 eV 125 keV 39.2 mum 39.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2199, Parent ID = 2178 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.55 mm -2.6 mm -2.4 m 211 keV 0 eV 0 fm 0 fm Target initStep + 1 1.55 mm -2.6 mm -2.4 m 0 eV 211 keV 88.8 mum 88.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1749, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 66.2 mum -18.8 mum -2.44 m 1.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 132 mum -30.2 mum -2.43 m 550 keV 0 eV 2.66 mm 2.66 mm Target compt + 2 105 mum -179 mum -2.43 m 400 keV 0 eV 177 mum 2.84 mm Target compt + 3 -5.32 mm -2.22 mm -2.43 m 244 keV 0 eV 6.88 mm 9.72 mm Target compt + 4 -5.88 mm -2.29 mm -2.43 m 0 eV 88 keV 810 mum 1.05 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2204, Parent ID = 1749 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.88 mm -2.29 mm -2.43 m 156 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.88 mm -2.29 mm -2.43 m 0 eV 156 keV 55.7 mum 55.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2203, Parent ID = 1749 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.32 mm -2.22 mm -2.43 m 156 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.32 mm -2.22 mm -2.43 m 0 eV 156 keV 55.8 mum 55.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2202, Parent ID = 1749 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 105 mum -179 mum -2.43 m 150 keV 0 eV 0 fm 0 fm Target initStep + 1 107 mum -182 mum -2.43 m 0 eV 150 keV 52.8 mum 52.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2201, Parent ID = 1749 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 132 mum -30.2 mum -2.43 m 600 keV 0 eV 0 fm 0 fm Target initStep + 1 135 mum -17.5 mum -2.43 m 0 eV 600 keV 384 mum 384 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1748, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 53.6 mum -14.3 mum -2.44 m 413 keV 0 eV 0 fm 0 fm Target initStep + 1 180 mum -19.9 mum -2.43 m 0 eV 88 keV 5.03 mm 5.03 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2205, Parent ID = 1748 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 180 mum -19.9 mum -2.43 m 325 keV 0 eV 0 fm 0 fm Target initStep + 1 185 mum -21.5 mum -2.43 m 0 eV 325 keV 167 mum 167 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1747, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 48.8 mum -12.6 mum -2.44 m 892 keV 0 eV 0 fm 0 fm Target initStep + 1 51.8 mum -13 mum -2.44 m 870 keV 0 eV 134 mum 134 mum Target compt + 2 5.23 mm -4.44 mm -2.4 m 543 keV 0 eV 3.62 cm 3.63 cm Target compt + 3 5.28 mm -4.72 mm -2.4 m 543 keV 0 eV 338 mum 3.67 cm Target Transportation + 4 40.4 cm -2.4 m -86.7 cm 543 keV 0 eV 2.87 m 2.91 m Tracker Transportation + 5 48.9 cm -2.91 m -54 cm 543 keV 0 eV 61.1 cm 3.52 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2207, Parent ID = 1747 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.23 mm -4.44 mm -2.4 m 327 keV 0 eV 0 fm 0 fm Target initStep + 1 5.23 mm -4.43 mm -2.4 m 0 eV 327 keV 168 mum 168 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2206, Parent ID = 1747 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 51.8 mum -13 mum -2.44 m 22.2 keV 0 eV 0 fm 0 fm Target initStep + 1 51.6 mum -12.9 mum -2.44 m 0 eV 22.2 keV 2.41 mum 2.41 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1746, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 26.6 mum -24.1 mum -2.44 m 7.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 49.3 mum -40.2 mum -2.44 m 491 keV 0 eV 1.84 mm 1.84 mm Target compt + 2 1.6 mm 232 mum -2.44 m 476 keV 0 eV 1.58 mm 3.42 mm Target compt + 3 2.18 mm 363 mum -2.44 m 0 eV 88 keV 607 mum 4.02 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2210, Parent ID = 1746 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.18 mm 363 mum -2.44 m 388 keV 0 eV 0 fm 0 fm Target initStep + 1 2.18 mm 373 mum -2.44 m 0 eV 388 keV 214 mum 214 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2209, Parent ID = 1746 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.6 mm 232 mum -2.44 m 15.3 keV 0 eV 0 fm 0 fm Target initStep + 1 1.6 mm 232 mum -2.44 m 0 eV 15.3 keV 1.34 mum 1.34 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2208, Parent ID = 1746 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 49.3 mum -40.2 mum -2.44 m 6.63 MeV 0 eV 0 fm 0 fm Target initStep + 1 38 mum -107 mum -2.44 m 6.05 MeV 260 keV 221 mum 221 mum Target eBrem + 2 -310 mum -328 mum -2.44 m 3.93 MeV 736 keV 578 mum 799 mum Target eBrem + 3 -186 mum -164 mum -2.44 m 3.25 MeV 343 keV 317 mum 1.12 mm Target eBrem + 4 -1.14 mm 127 mum -2.44 m 1.24 MeV 2.01 MeV 1.55 mm 2.66 mm Target eBrem + 5 -1.1 mm 135 mum -2.44 m 0 eV 1.24 MeV 921 mum 3.58 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2213, Parent ID = 2208 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -186 mum -164 mum -2.44 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.01 mm 5.33 mm -2.44 m 0 eV 88 keV 6.05 mm 6.05 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2214, Parent ID = 2213 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.01 mm 5.33 mm -2.44 m 251 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.01 mm 5.34 mm -2.44 m 0 eV 251 keV 114 mum 114 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2212, Parent ID = 2208 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -310 mum -328 mum -2.44 m 1.38 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm 1.44 cm -2.45 m 1.38 MeV 0 eV 3.18 cm 3.18 cm Target Transportation + 2 96.7 cm 56.3 cm -2.91 m 1.38 MeV 0 eV 1.18 m 1.22 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2211, Parent ID = 2208 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 38 mum -107 mum -2.44 m 326 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.62 mm -18.9 mum -2.43 m 191 keV 0 eV 3.32 mm 3.32 mm Target compt + 2 -1.76 mm 83.5 mum -2.43 m 0 eV 88 keV 199 mum 3.52 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2216, Parent ID = 2211 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.76 mm 83.5 mum -2.43 m 103 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.76 mm 83.4 mum -2.43 m 0 eV 103 keV 29.1 mum 29.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2215, Parent ID = 2211 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.62 mm -18.9 mum -2.43 m 135 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.62 mm -19.6 mum -2.43 m 0 eV 135 keV 44.5 mum 44.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 1745, Parent ID = 1744 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 25.3 mum -22.5 mum -2.44 m 98.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 105 mum -62.1 mum -2.43 m 0 eV 0 eV 8.57 mm 8.57 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2218, Parent ID = 1745 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 105 mum -62.1 mum -2.43 m 26.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 27.1 mum -257 mum -2.43 m 24 MeV 1.77 MeV 1.13 mm 1.13 mm Target eBrem + 2 -415 mum -781 mum -2.43 m 18.7 MeV 2.19 MeV 1.48 mm 2.61 mm Target eBrem + 3 -658 mum -1.25 mm -2.43 m 17.6 MeV 639 keV 535 mum 3.15 mm Target eBrem + 4 -1.03 mm -1.67 mm -2.43 m 12.9 MeV 748 keV 593 mum 3.74 mm Target eBrem + 5 -2.95 mm -2.65 mm -2.43 m 9.87 MeV 3.02 MeV 2.22 mm 5.96 mm Target eBrem + 6 -3.04 mm -2.9 mm -2.43 m 8.87 MeV 308 keV 312 mum 6.27 mm Target eBrem + 7 -3.33 mm -3.68 mm -2.43 m 6.69 MeV 1.73 MeV 1.07 mm 7.34 mm Target eBrem + 8 -2.63 mm -3.96 mm -2.43 m 2.69 MeV 1.2 MeV 806 mum 8.15 mm Target eBrem + 9 -1.95 mm -5.09 mm -2.43 m 611 keV 2.07 MeV 1.91 mm 1.01 cm Target eBrem + 10 -1.94 mm -5.07 mm -2.43 m 0 eV 611 keV 395 mum 1.05 cm Target eIoni + 11 -1.94 mm -5.07 mm -2.43 m 0 eV 0 eV 0 fm 1.05 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2227, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.94 mm -5.07 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -363 mum -2.84 mm -2.43 m 185 keV 0 eV 3.46 mm 3.46 mm Target compt + 2 -490 mum -3.15 mm -2.43 m 0 eV 88 keV 330 mum 3.79 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2229, Parent ID = 2227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -490 mum -3.15 mm -2.43 m 97.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -489 mum -3.15 mm -2.43 m 0 eV 97.4 keV 26.5 mum 26.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2228, Parent ID = 2227 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -363 mum -2.84 mm -2.43 m 326 keV 0 eV 0 fm 0 fm Target initStep + 1 -358 mum -2.83 mm -2.43 m 0 eV 326 keV 167 mum 167 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2226, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.94 mm -5.07 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.21 mm -9.68 mm -2.42 m 311 keV 0 eV 7.18 mm 7.18 mm Target compt + 2 -2.99 mm -9.84 mm -2.42 m 0 eV 88 keV 4.78 mm 1.2 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2231, Parent ID = 2226 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.99 mm -9.84 mm -2.42 m 223 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.99 mm -9.84 mm -2.42 m 0 eV 223 keV 96.5 mum 96.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2230, Parent ID = 2226 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.21 mm -9.68 mm -2.42 m 200 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.21 mm -9.68 mm -2.42 m 0 eV 200 keV 81.5 mum 81.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2225, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.63 mm -3.96 mm -2.43 m 2.81 MeV 0 eV 0 fm 0 fm Target initStep + 1 767 mum -2.12 mm -2.45 m 2.81 MeV 0 eV 2.14 cm 2.14 cm Target Transportation + 2 7.49 cm 3.8 cm -2.91 m 2.81 MeV 0 eV 46.8 cm 48.9 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2224, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.33 mm -3.68 mm -2.43 m 448 keV 0 eV 0 fm 0 fm Target initStep + 1 -105 mum -8.9 mm -2.44 m 385 keV 0 eV 9.07 mm 9.07 mm Target compt + 2 400 mum -9.06 mm -2.44 m 360 keV 0 eV 613 mum 9.68 mm Target compt + 3 1 mm -9.02 mm -2.44 m 0 eV 88 keV 929 mum 1.06 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2234, Parent ID = 2224 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1 mm -9.02 mm -2.44 m 272 keV 0 eV 0 fm 0 fm Target initStep + 1 996 mum -9.02 mm -2.44 m 0 eV 272 keV 129 mum 129 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2233, Parent ID = 2224 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 400 mum -9.06 mm -2.44 m 24.9 keV 0 eV 0 fm 0 fm Target initStep + 1 400 mum -9.06 mm -2.44 m 0 eV 24.9 keV 2.88 mum 2.88 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2232, Parent ID = 2224 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -105 mum -8.9 mm -2.44 m 63.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -106 mum -8.9 mm -2.44 m 0 eV 63.2 keV 13.1 mum 13.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2223, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.04 mm -2.9 mm -2.43 m 694 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.93 mm -7.48 mm -2.43 m 385 keV 0 eV 6.49 mm 6.49 mm Target compt + 2 -2.96 mm -7.55 mm -2.43 m 0 eV 88 keV 87.8 mum 6.57 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2236, Parent ID = 2223 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.96 mm -7.55 mm -2.43 m 297 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.97 mm -7.56 mm -2.43 m 0 eV 297 keV 146 mum 146 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2235, Parent ID = 2223 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.93 mm -7.48 mm -2.43 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.92 mm -7.48 mm -2.43 m 0 eV 309 keV 155 mum 155 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2222, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.03 mm -1.67 mm -2.43 m 3.95 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.18 mm -6.38 mm -2.43 m 761 keV 0 eV 5.85 mm 5.85 mm Target compt + 2 -1.01 cm -5.86 mm -2.43 m 0 eV 88 keV 5.99 mm 1.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2238, Parent ID = 2222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.01 cm -5.86 mm -2.43 m 673 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.02 cm -5.85 mm -2.43 m 0 eV 673 keV 445 mum 445 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2237, Parent ID = 2222 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.18 mm -6.38 mm -2.43 m 3.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.96 mm -7.32 mm -2.43 m 429 keV 2.44 MeV 2.45 mm 2.45 mm Target eBrem + 2 -2.96 mm -7.31 mm -2.43 m 0 eV 429 keV 245 mum 2.7 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2239, Parent ID = 2237 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.96 mm -7.32 mm -2.43 m 321 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.52 mm -6.78 mm -2.43 m 213 keV 0 eV 1.68 mm 1.68 mm Target compt + 2 -3.5 mm -6.48 mm -2.43 m 0 eV 88 keV 303 mum 1.98 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2241, Parent ID = 2239 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.5 mm -6.48 mm -2.43 m 125 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.5 mm -6.47 mm -2.43 m 0 eV 125 keV 39.6 mum 39.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2240, Parent ID = 2239 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.52 mm -6.78 mm -2.43 m 107 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.52 mm -6.78 mm -2.43 m 0 eV 107 keV 31 mum 31 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2221, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -658 mum -1.25 mm -2.43 m 473 keV 0 eV 0 fm 0 fm Target initStep + 1 -919 mum -1.59 mm -2.43 m 0 eV 88 keV 425 mum 425 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2242, Parent ID = 2221 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -919 mum -1.59 mm -2.43 m 385 keV 0 eV 0 fm 0 fm Target initStep + 1 -931 mum -1.59 mm -2.43 m 0 eV 385 keV 212 mum 212 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2220, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -415 mum -781 mum -2.43 m 3.07 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.23 mm -1.88 mm -2.43 m 2.15 MeV 0 eV 1.41 mm 1.41 mm Target compt + 2 -1.62 mm -3.1 mm -2.43 m 1.28 MeV 0 eV 1.28 mm 2.69 mm Target compt + 3 -6.28 mm -7.41 mm -2.43 m 0 eV 88 keV 6.49 mm 9.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2245, Parent ID = 2220 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.28 mm -7.41 mm -2.43 m 1.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.35 mm -7.45 mm -2.43 m 0 eV 1.19 MeV 886 mum 886 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2244, Parent ID = 2220 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.62 mm -3.1 mm -2.43 m 868 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.61 mm -3.14 mm -2.43 m 0 eV 868 keV 608 mum 608 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2243, Parent ID = 2220 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.23 mm -1.88 mm -2.43 m 921 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.27 mm -1.89 mm -2.43 m 0 eV 921 keV 653 mum 653 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2219, Parent ID = 2218 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 27.1 mum -257 mum -2.43 m 460 keV 0 eV 0 fm 0 fm Target initStep + 1 -517 mum -1.11 mm -2.43 m 0 eV 88 keV 3.78 mm 3.78 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2246, Parent ID = 2219 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -517 mum -1.11 mm -2.43 m 372 keV 0 eV 0 fm 0 fm Target initStep + 1 -511 mum -1.11 mm -2.43 m 0 eV 372 keV 202 mum 202 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2217, Parent ID = 1745 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 105 mum -62.1 mum -2.43 m 71.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 116 mum -65.9 mum -2.43 m 70.5 MeV 281 keV 252 mum 252 mum Target eBrem + 2 121 mum -68 mum -2.43 m 23 MeV 70.8 keV 62.8 mum 314 mum Target eBrem + 3 273 mum -326 mum -2.43 m 4.08 MeV 1.36 MeV 1.09 mm 1.4 mm Target eBrem + 4 -529 mum -270 mum -2.43 m 2.12 MeV 1.4 MeV 1.23 mm 2.63 mm Target eBrem + 5 -784 mum -915 mum -2.43 m 408 keV 1.21 MeV 1.21 mm 3.83 mm Target eBrem + 6 -788 mum -915 mum -2.43 m 0 eV 408 keV 229 mum 4.06 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2251, Parent ID = 2217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -784 mum -915 mum -2.43 m 506 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.28 mm -769 mum -2.43 m 0 eV 88 keV 1.22 mm 1.22 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2252, Parent ID = 2251 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.28 mm -769 mum -2.43 m 418 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 mm -763 mum -2.43 m 0 eV 418 keV 237 mum 237 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2250, Parent ID = 2217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -529 mum -270 mum -2.43 m 557 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.45 mm -1.36 mm -2.43 m 477 keV 0 eV 4.55 mm 4.55 mm Target compt + 2 -1.08 cm 499 mum -2.44 m 0 eV 88 keV 8.67 mm 1.32 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2254, Parent ID = 2250 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.08 cm 499 mum -2.44 m 389 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.08 cm 507 mum -2.44 m 0 eV 389 keV 214 mum 214 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2253, Parent ID = 2250 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.45 mm -1.36 mm -2.43 m 80.6 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.45 mm -1.36 mm -2.43 m 0 eV 80.6 keV 19.5 mum 19.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2249, Parent ID = 2217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 273 mum -326 mum -2.43 m 17.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.27 mm -3.28 mm -2.4 m 17.6 MeV 0 eV 2.87 cm 2.87 cm Target Transportation + 2 8.77 cm -8.66 cm -1.6 m 17.6 MeV 0 eV 80.9 cm 83.7 cm Tracker Transportation + 3 10.9 cm -10.7 cm -1.4 m 17.6 MeV 0 eV 20.2 cm 1.04 m Chamber Transportation + 4 17.2 cm -17 cm -80 cm 17.6 MeV 0 eV 60.7 cm 1.65 m Tracker Transportation + 5 19.3 cm -19.1 cm -60 cm 17.6 MeV 0 eV 20.2 cm 1.85 m Chamber Transportation + 6 25.7 cm -25.3 cm 0 fm 17.6 MeV 0 eV 60.7 cm 2.45 m Tracker Transportation + 7 27.8 cm -27.4 cm 20 cm 17.6 MeV 0 eV 20.2 cm 2.66 m Chamber Transportation + 8 34.1 cm -33.7 cm 80 cm 17.6 MeV 0 eV 60.7 cm 3.26 m Tracker Transportation + 9 36.2 cm -35.7 cm 1 m 17.6 MeV 0 eV 20.2 cm 3.47 m Chamber Transportation + 10 42.6 cm -42 cm 1.6 m 17.6 MeV 0 eV 60.7 cm 4.07 m Tracker Transportation + 11 44.7 cm -44.1 cm 1.8 m 17.6 MeV 0 eV 20.2 cm 4.27 m Chamber Transportation + 12 51 cm -50.3 cm 2.4 m 17.6 MeV 0 eV 60.7 cm 4.88 m Tracker Transportation + 13 56.4 cm -55.6 cm 2.91 m 17.6 MeV 0 eV 51.6 cm 5.4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2248, Parent ID = 2217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 121 mum -68 mum -2.43 m 47.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 716 mum -525 mum -2.42 m 0 eV 0 eV 1.05 cm 1.05 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2256, Parent ID = 2248 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 716 mum -525 mum -2.42 m 29.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 701 mum -475 mum -2.42 m 28.9 MeV 580 keV 511 mum 511 mum Target eBrem + 2 877 mum -456 mum -2.42 m 23.3 MeV 699 keV 638 mum 1.15 mm Target eBrem + 3 1.2 mm 9.95 mum -2.42 m 21.7 MeV 1.15 MeV 1.02 mm 2.17 mm Target eBrem + 4 1.22 mm 21.8 mum -2.42 m 21.2 MeV 51.4 keV 30.9 mum 2.2 mm Target eBrem + 5 1.62 mm 781 mum -2.42 m 18 MeV 1.59 MeV 1.46 mm 3.66 mm Target eBrem + 6 940 mum 673 mum -2.42 m 16.5 MeV 711 keV 706 mum 4.37 mm Target eBrem + 7 403 mum 666 mum -2.42 m 13 MeV 643 keV 546 mum 4.92 mm Target eBrem + 8 -630 mum 497 mum -2.42 m 7.83 MeV 2 MeV 1.25 mm 6.17 mm Target eBrem + 9 -1.04 mm 307 mum -2.42 m 4.76 MeV 725 keV 622 mum 6.79 mm Target eBrem + 10 -1.41 mm 154 mum -2.42 m 252 keV 4.51 MeV 401 mum 7.19 mm Target eBrem + 11 -1.41 mm 147 mum -2.42 m 0 eV 252 keV 112 mum 7.3 mm Target eIoni + 12 -1.41 mm 147 mum -2.42 m 0 eV 0 eV 0 fm 7.3 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2267, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.41 mm 147 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.03 mm -2.51 mm -2.42 m 427 keV 0 eV 8.65 mm 8.65 mm Target compt + 2 8.76 mm -2.87 mm -2.42 m 0 eV 88 keV 5.44 mm 1.41 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2269, Parent ID = 2267 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.76 mm -2.87 mm -2.42 m 339 keV 0 eV 0 fm 0 fm Target initStep + 1 8.77 mm -2.87 mm -2.42 m 0 eV 339 keV 177 mum 177 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2268, Parent ID = 2267 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.03 mm -2.51 mm -2.42 m 83.9 keV 0 eV 0 fm 0 fm Target initStep + 1 6.03 mm -2.51 mm -2.42 m 0 eV 83.9 keV 20.8 mum 20.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2266, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.41 mm 147 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.48 mm 1.96 mm -2.41 m 478 keV 0 eV 5.9 mm 5.9 mm Target compt + 2 -1.26 cm 6.33 mm -2.41 m 0 eV 88 keV 7.61 mm 1.35 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2271, Parent ID = 2266 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.26 cm 6.33 mm -2.41 m 390 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.26 cm 6.33 mm -2.41 m 0 eV 390 keV 215 mum 215 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2270, Parent ID = 2266 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.48 mm 1.96 mm -2.41 m 33.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.48 mm 1.96 mm -2.41 m 0 eV 33.1 keV 4.59 mum 4.59 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2265, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.04 mm 307 mum -2.42 m 2.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.08 cm -1.2 mm -2.42 m 1.21 MeV 0 eV 1.02 cm 1.02 cm Target compt + 2 -1.74 cm -4.83 mm -2.43 m 455 keV 0 eV 1.12 cm 2.14 cm Target compt + 3 -2.44 cm -3.54 mm -2.43 m 210 keV 0 eV 7.41 mm 2.88 cm Target compt + 4 -2.44 cm -3.53 mm -2.43 m 0 eV 88 keV 716 mum 2.95 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2275, Parent ID = 2265 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.44 cm -3.53 mm -2.43 m 122 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.44 cm -3.53 mm -2.43 m 0 eV 122 keV 38.1 mum 38.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2274, Parent ID = 2265 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.44 cm -3.54 mm -2.43 m 245 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.44 cm -3.54 mm -2.43 m 0 eV 245 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2273, Parent ID = 2265 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.74 cm -4.83 mm -2.43 m 756 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.74 cm -4.84 mm -2.43 m 0 eV 756 keV 514 mum 514 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2272, Parent ID = 2265 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.08 cm -1.2 mm -2.42 m 1.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.09 cm -1.02 mm -2.42 m 142 keV 988 keV 671 mum 671 mum Target eBrem + 2 -1.09 cm -1.02 mm -2.42 m 0 eV 142 keV 48.2 mum 719 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2264, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -630 mum 497 mum -2.42 m 3.16 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm -6.6 mm -2.43 m 3.16 MeV 0 eV 2.7 cm 2.7 cm Target Transportation + 2 -1.3 m -37.8 cm -2.91 m 3.16 MeV 0 eV 1.41 m 1.44 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2263, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 403 mum 666 mum -2.42 m 2.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm -3.25 mm -2.42 m 2.86 MeV 0 eV 2.57 cm 2.57 cm Target Transportation + 2 -2.91 m -44.8 cm -2.57 m 2.86 MeV 0 eV 2.92 m 2.95 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2262, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 940 mum 673 mum -2.42 m 766 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.14 mm 2.07 mm -2.42 m 201 keV 0 eV 5.28 mm 5.28 mm Target compt + 2 -4.1 mm 2.04 mm -2.42 m 0 eV 88 keV 54.5 mum 5.33 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2277, Parent ID = 2262 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.1 mm 2.04 mm -2.42 m 113 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.1 mm 2.04 mm -2.42 m 0 eV 113 keV 33.8 mum 33.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2276, Parent ID = 2262 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.14 mm 2.07 mm -2.42 m 565 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.17 mm 2.08 mm -2.42 m 0 eV 565 keV 355 mum 355 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2261, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.62 mm 781 mum -2.42 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.67 cm 1.47 mm -2.42 m 0 eV 0 eV 1.83 cm 1.83 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2279, Parent ID = 2261 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.67 cm 1.47 mm -2.42 m 297 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.67 cm 1.48 mm -2.42 m 0 eV 297 keV 144 mum 144 mum Target eIoni + 2 -1.67 cm 1.48 mm -2.42 m 0 eV 0 eV 0 fm 144 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2281, Parent ID = 2279 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.67 cm 1.48 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.65 cm 5.6 mm -2.4 m 0 eV 88 keV 1.37 cm 1.37 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2282, Parent ID = 2281 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.65 cm 5.6 mm -2.4 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.65 cm 5.6 mm -2.4 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2280, Parent ID = 2279 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.67 cm 1.48 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.68 cm -88.6 mum -2.42 m 493 keV 0 eV 5.22 mm 5.22 mm Target compt + 2 -1.62 cm -2.43 mm -2.42 m 0 eV 88 keV 4.67 mm 9.9 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2284, Parent ID = 2280 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.62 cm -2.43 mm -2.42 m 405 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.62 cm -2.45 mm -2.42 m 0 eV 405 keV 227 mum 227 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2283, Parent ID = 2280 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.68 cm -88.6 mum -2.42 m 17.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.68 cm -88.5 mum -2.42 m 0 eV 17.7 keV 1.69 mum 1.69 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2278, Parent ID = 2261 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.67 cm 1.47 mm -2.42 m 377 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.67 cm 1.46 mm -2.42 m 0 eV 377 keV 206 mum 206 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2260, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm 21.8 mum -2.42 m 380 keV 0 eV 0 fm 0 fm Target initStep + 1 2.96 mm 1.49 mm -2.41 m 354 keV 0 eV 3.68 mm 3.68 mm Target compt + 2 8.01 mm 7.71 mm -2.41 m 0 eV 88 keV 9.05 mm 1.27 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2286, Parent ID = 2260 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.01 mm 7.71 mm -2.41 m 266 keV 0 eV 0 fm 0 fm Target initStep + 1 8.02 mm 7.71 mm -2.41 m 0 eV 266 keV 125 mum 125 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2285, Parent ID = 2260 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.96 mm 1.49 mm -2.41 m 25.2 keV 0 eV 0 fm 0 fm Target initStep + 1 2.96 mm 1.49 mm -2.41 m 0 eV 25.2 keV 2.93 mum 2.93 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2259, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.2 mm 9.95 mum -2.42 m 448 keV 0 eV 0 fm 0 fm Target initStep + 1 2.73 mm 1.38 mm -2.41 m 0 eV 88 keV 3.35 mm 3.35 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2287, Parent ID = 2259 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.73 mm 1.38 mm -2.41 m 360 keV 0 eV 0 fm 0 fm Target initStep + 1 2.74 mm 1.38 mm -2.41 m 0 eV 360 keV 193 mum 193 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2258, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 877 mum -456 mum -2.42 m 4.92 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.09 mm 652 mum -2.41 m 0 eV 0 eV 3.38 mm 3.38 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2289, Parent ID = 2258 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 mm 652 mum -2.41 m 705 keV 0 eV 0 fm 0 fm Target initStep + 1 2.08 mm 662 mum -2.41 m 0 eV 705 keV 475 mum 475 mum Target eIoni + 2 2.08 mm 662 mum -2.41 m 0 eV 0 eV 0 fm 475 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2291, Parent ID = 2289 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.08 mm 662 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.69 mm 1.58 mm -2.41 m 502 keV 0 eV 1.89 mm 1.89 mm Target compt + 2 5.44 mm 2.42 mm -2.41 m 227 keV 0 eV 2.11 mm 4 mm Target compt + 3 5.57 mm 1.36 mm -2.41 m 0 eV 88 keV 1.07 mm 5.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2294, Parent ID = 2291 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.57 mm 1.36 mm -2.41 m 139 keV 0 eV 0 fm 0 fm Target initStep + 1 5.58 mm 1.36 mm -2.41 m 0 eV 139 keV 46.5 mum 46.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2293, Parent ID = 2291 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.44 mm 2.42 mm -2.41 m 275 keV 0 eV 0 fm 0 fm Target initStep + 1 5.44 mm 2.42 mm -2.41 m 0 eV 275 keV 131 mum 131 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2292, Parent ID = 2291 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.69 mm 1.58 mm -2.41 m 9.43 keV 0 eV 0 fm 0 fm Target initStep + 1 3.69 mm 1.58 mm -2.41 m 0 eV 9.43 keV 640 nm 640 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2290, Parent ID = 2289 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.08 mm 662 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.66 mm 423 mum -2.41 m 380 keV 0 eV 494 mum 494 mum Target compt + 2 1.15 mm -493 mum -2.41 m 286 keV 0 eV 1.17 mm 1.67 mm Target compt + 3 3.03 mm -3.4 mm -2.41 m 0 eV 88 keV 3.76 mm 5.42 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2297, Parent ID = 2290 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.03 mm -3.4 mm -2.41 m 198 keV 0 eV 0 fm 0 fm Target initStep + 1 3.04 mm -3.4 mm -2.41 m 0 eV 198 keV 80.1 mum 80.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2296, Parent ID = 2290 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 mm -493 mum -2.41 m 94.5 keV 0 eV 0 fm 0 fm Target initStep + 1 1.14 mm -494 mum -2.41 m 0 eV 94.5 keV 25.2 mum 25.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2295, Parent ID = 2290 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.66 mm 423 mum -2.41 m 131 keV 0 eV 0 fm 0 fm Target initStep + 1 1.66 mm 423 mum -2.41 m 0 eV 131 keV 42.5 mum 42.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2288, Parent ID = 2258 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 mm 652 mum -2.41 m 3.19 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.26 mm 771 mum -2.41 m 0 eV 3.19 MeV 2.51 mm 2.51 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2257, Parent ID = 2256 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 701 mum -475 mum -2.42 m 392 keV 0 eV 0 fm 0 fm Target initStep + 1 1.27 mm -326 mum -2.41 m 0 eV 88 keV 4.49 mm 4.49 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2298, Parent ID = 2257 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.27 mm -326 mum -2.41 m 304 keV 0 eV 0 fm 0 fm Target initStep + 1 1.28 mm -324 mum -2.41 m 0 eV 304 keV 152 mum 152 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2255, Parent ID = 2248 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 716 mum -525 mum -2.42 m 16.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.09 mm -531 mum -2.42 m 14.3 MeV 1.46 MeV 1.14 mm 1.14 mm Target eBrem + 2 1.1 mm -543 mum -2.42 m 11 MeV 132 keV 133 mum 1.28 mm Target eBrem + 3 1.33 mm 433 mum -2.42 m 2.63 MeV 2.99 MeV 2.18 mm 3.45 mm Target eBrem + 4 1.23 mm 387 mum -2.42 m 2.08 MeV 139 keV 140 mum 3.6 mm Target eBrem + 5 1.17 mm 547 mum -2.42 m 0 eV 2.08 MeV 1.62 mm 5.21 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2302, Parent ID = 2255 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.23 mm 387 mum -2.42 m 415 keV 0 eV 0 fm 0 fm Target initStep + 1 301 mum 3.38 mm -2.42 m 0 eV 88 keV 3.16 mm 3.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2303, Parent ID = 2302 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 301 mum 3.38 mm -2.42 m 327 keV 0 eV 0 fm 0 fm Target initStep + 1 308 mum 3.38 mm -2.42 m 300 keV 26.4 keV 17.2 mum 17.2 mum Target eBrem + 2 308 mum 3.39 mm -2.42 m 0 eV 300 keV 149 mum 166 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2301, Parent ID = 2255 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.33 mm 433 mum -2.42 m 5.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.5 cm 3.95 mm -2.43 m 5.39 MeV 0 eV 2.85 cm 2.85 cm Target Transportation + 2 -1.26 m 16.8 cm -2.91 m 5.39 MeV 0 eV 1.33 m 1.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2300, Parent ID = 2255 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 mm -543 mum -2.42 m 3.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.14 mm -1.24 mm -2.41 m 279 keV 0 eV 7.65 mm 7.65 mm Target compt + 2 4.23 mm 2.22 mm -2.41 m 214 keV 0 eV 4.34 mm 1.2 cm Target compt + 3 4.26 mm 2.4 mm -2.41 m 0 eV 88 keV 201 mum 1.22 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2306, Parent ID = 2300 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.26 mm 2.4 mm -2.41 m 126 keV 0 eV 0 fm 0 fm Target initStep + 1 4.26 mm 2.4 mm -2.41 m 0 eV 126 keV 39.7 mum 39.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2305, Parent ID = 2300 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.23 mm 2.22 mm -2.41 m 65.5 keV 0 eV 0 fm 0 fm Target initStep + 1 4.23 mm 2.22 mm -2.41 m 0 eV 65.5 keV 13.9 mum 13.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2304, Parent ID = 2300 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.14 mm -1.24 mm -2.41 m 2.92 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.9 mm -1.97 mm -2.41 m 1.33 MeV 1.27 MeV 1.31 mm 1.31 mm Target eBrem + 2 5.93 mm -1.9 mm -2.41 m 0 eV 1.33 MeV 1 mm 2.32 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2307, Parent ID = 2304 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.9 mm -1.97 mm -2.41 m 314 keV 0 eV 0 fm 0 fm Target initStep + 1 7.53 mm 438 mum -2.41 m 0 eV 88 keV 2.92 mm 2.92 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2308, Parent ID = 2307 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.53 mm 438 mum -2.41 m 226 keV 0 eV 0 fm 0 fm Target initStep + 1 7.53 mm 444 mum -2.41 m 0 eV 226 keV 98.3 mum 98.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2299, Parent ID = 2255 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 mm -531 mum -2.42 m 651 keV 0 eV 0 fm 0 fm Target initStep + 1 2.27 mm -1.41 mm -2.41 m 587 keV 0 eV 5.14 mm 5.14 mm Target compt + 2 2.34 mm -2.09 mm -2.41 m 498 keV 0 eV 1.28 mm 6.42 mm Target compt + 3 2.39 mm -2.12 mm -2.41 m 0 eV 88 keV 84.4 mum 6.51 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2311, Parent ID = 2299 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.39 mm -2.12 mm -2.41 m 410 keV 0 eV 0 fm 0 fm Target initStep + 1 2.39 mm -2.12 mm -2.41 m 0 eV 410 keV 231 mum 231 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2310, Parent ID = 2299 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.34 mm -2.09 mm -2.41 m 88.2 keV 0 eV 0 fm 0 fm Target initStep + 1 2.34 mm -2.09 mm -2.41 m 0 eV 88.2 keV 22.6 mum 22.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2309, Parent ID = 2299 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.27 mm -1.41 mm -2.41 m 63.9 keV 0 eV 0 fm 0 fm Target initStep + 1 2.27 mm -1.41 mm -2.41 m 0 eV 63.9 keV 13.4 mum 13.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2247, Parent ID = 2217 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 116 mum -65.9 mum -2.43 m 361 keV 0 eV 0 fm 0 fm Target initStep + 1 150 mum -88.7 mum -2.43 m 0 eV 88 keV 734 mum 734 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2312, Parent ID = 2247 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 150 mum -88.7 mum -2.43 m 273 keV 0 eV 0 fm 0 fm Target initStep + 1 145 mum -89.9 mum -2.43 m 0 eV 273 keV 130 mum 130 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 1743, Parent ID = 108 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.71 mum 256 nm -2.44 m 97.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 10.1 mum 7.84 mum -2.44 m 95.8 MeV 412 keV 314 mum 314 mum Target eBrem + 2 9.68 mum 7.29 mum -2.44 m 95.2 MeV 144 keV 110 mum 424 mum Target eBrem + 3 -17.1 mum 144 nm -2.44 m 89.8 MeV 3.9 MeV 633 mum 1.06 mm Target eBrem + 4 -22.7 mum -35.9 mum -2.44 m 83.8 MeV 1.22 MeV 827 mum 1.88 mm Target eBrem + 5 44.2 mum -30.6 mum -2.44 m 81.3 MeV 1.56 MeV 1.3 mm 3.18 mm Target eBrem + 6 -7.34 mum -34.3 mum -2.44 m 30.3 MeV 1.47 MeV 773 mum 3.95 mm Target eBrem + 7 -23.4 mum -106 mum -2.44 m 11.6 MeV 2.16 MeV 1.07 mm 5.03 mm Target eBrem + 8 -28.1 mum -96.5 mum -2.44 m 10.2 MeV 88.9 keV 68.5 mum 5.09 mm Target eBrem + 9 -22.3 mum -80 mum -2.44 m 4.28 MeV 71.6 keV 72.7 mum 5.17 mm Target eBrem + 10 1.06 mm -34.2 mum -2.43 m 2.22 MeV 1.61 MeV 1.51 mm 6.68 mm Target eBrem + 11 1.73 mm -531 mum -2.44 m 610 keV 1.61 MeV 1.57 mm 8.24 mm Target eBrem + 12 1.72 mm -550 mum -2.44 m 0 eV 610 keV 392 mum 8.64 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2322, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.06 mm -34.2 mum -2.43 m 454 keV 0 eV 0 fm 0 fm Target initStep + 1 -278 mum -2.4 mm -2.44 m 412 keV 0 eV 2.78 mm 2.78 mm Target compt + 2 -3.53 mm -4.91 mm -2.44 m 0 eV 88 keV 4.12 mm 6.9 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2324, Parent ID = 2322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.53 mm -4.91 mm -2.44 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.54 mm -4.92 mm -2.44 m 0 eV 324 keV 166 mum 166 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2323, Parent ID = 2322 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -278 mum -2.4 mm -2.44 m 42.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -278 mum -2.4 mm -2.44 m 0 eV 42.3 keV 6.84 mum 6.84 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2321, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -22.3 mum -80 mum -2.44 m 5.81 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.14 mm 1.93 cm -2.4 m 5.81 MeV 0 eV 4.05 cm 4.05 cm Target Transportation + 2 51.5 cm 2.4 m 1.94 m 5.81 MeV 0 eV 4.98 m 5.02 m Tracker Transportation + 3 62.5 cm 2.91 m 2.87 m 5.81 MeV 0 eV 1.07 m 6.08 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2320, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -28.1 mum -96.5 mum -2.44 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 -558 mum 4.16 mm -2.42 m 284 keV 0 eV 1.43 cm 1.43 cm Target compt + 2 1.94 mm 3.91 mm -2.42 m 0 eV 88 keV 2.69 mm 1.7 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2326, Parent ID = 2320 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.94 mm 3.91 mm -2.42 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 1.94 mm 3.91 mm -2.42 m 0 eV 196 keV 79.4 mum 79.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2325, Parent ID = 2320 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -558 mum 4.16 mm -2.42 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 -571 mum 4.18 mm -2.42 m 0 eV 1.02 MeV 740 mum 740 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2319, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -23.4 mum -106 mum -2.44 m 16.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.26 mm 6.44 mm -2.4 m 16.6 MeV 0 eV 3.61 cm 3.61 cm Target Transportation + 2 3.03 cm 15.4 cm -1.6 m 16.6 MeV 0 eV 81.4 cm 85 cm Tracker Transportation + 3 3.76 cm 19.1 cm -1.4 m 16.6 MeV 0 eV 20.4 cm 1.05 m Chamber Transportation + 4 5.94 cm 30.2 cm -80 cm 16.6 MeV 0 eV 61.1 cm 1.66 m Tracker Transportation + 5 6.67 cm 33.9 cm -60 cm 16.6 MeV 0 eV 20.4 cm 1.87 m Chamber Transportation + 6 8.85 cm 45 cm 0.114 fm 16.6 MeV 0 eV 61.1 cm 2.48 m Tracker Transportation + 7 9.58 cm 48.7 cm 20 cm 16.6 MeV 0 eV 20.4 cm 2.68 m Chamber Transportation + 8 11.8 cm 59.8 cm 80 cm 16.6 MeV 0 eV 61.1 cm 3.29 m Tracker Transportation + 9 12.5 cm 63.4 cm 1 m 16.6 MeV 0 eV 20.4 cm 3.5 m Chamber Transportation + 10 14.7 cm 74.5 cm 1.6 m 16.6 MeV 0 eV 61.1 cm 4.11 m Tracker Transportation + 11 15.4 cm 78.2 cm 1.8 m 16.6 MeV 0 eV 20.4 cm 4.31 m Chamber Transportation + 12 17.6 cm 89.3 cm 2.4 m 16.6 MeV 0 eV 61.1 cm 4.92 m Tracker Transportation + 13 19.4 cm 98.7 cm 2.91 m 16.6 MeV 0 eV 51.9 cm 5.44 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2318, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.34 mum -34.3 mum -2.44 m 49.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 -710 mum 968 mum -2.43 m 0 eV 0 eV 1.15 cm 1.15 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2328, Parent ID = 2318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -710 mum 968 mum -2.43 m 26.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -544 mum 1.02 mm -2.42 m 19 MeV 1.74 MeV 1.41 mm 1.41 mm Target eBrem + 2 -259 mum 2.42 mm -2.42 m 13.2 MeV 2.62 MeV 2.19 mm 3.6 mm Target eBrem + 3 1.09 mm 1.14 mm -2.42 m 8.24 MeV 4.71 MeV 3.54 mm 7.14 mm Target eBrem + 4 290 mum 1.11 mm -2.42 m 5.07 MeV 1.71 MeV 1.55 mm 8.69 mm Target eBrem + 5 9.25 mum 659 mum -2.42 m 0 eV 5.07 MeV 1.62 mm 1.03 cm Target eBrem + 6 9.25 mum 659 mum -2.42 m 0 eV 0 eV 0 fm 1.03 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2334, Parent ID = 2328 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.25 mum 659 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.68 mm -2.16 mm -2.43 m 0 eV 88 keV 9.24 mm 9.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2335, Parent ID = 2334 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.68 mm -2.16 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.69 mm -2.16 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2333, Parent ID = 2328 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.25 mum 659 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -683 mum 1.19 mm -2.42 m 303 keV 0 eV 1.74 mm 1.74 mm Target compt + 2 -1.29 mm 1.81 mm -2.42 m 0 eV 88 keV 886 mum 2.63 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2337, Parent ID = 2333 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.29 mm 1.81 mm -2.42 m 215 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.29 mm 1.82 mm -2.42 m 0 eV 215 keV 91.3 mum 91.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2336, Parent ID = 2333 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -683 mum 1.19 mm -2.42 m 208 keV 0 eV 0 fm 0 fm Target initStep + 1 -683 mum 1.19 mm -2.42 m 0 eV 208 keV 86.8 mum 86.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2332, Parent ID = 2328 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 290 mum 1.11 mm -2.42 m 1.46 MeV 0 eV 0 fm 0 fm Target initStep + 1 -250 mum 215 mum -2.42 m 1.13 MeV 0 eV 1.66 mm 1.66 mm Target compt + 2 -2.31 cm -2.14 cm -2.4 m 587 keV 0 eV 3.56 cm 3.72 cm Target compt + 3 -2.34 cm -2.17 cm -2.4 m 375 keV 0 eV 388 mum 3.76 cm Target compt + 4 -2.5 cm -2.17 cm -2.4 m 375 keV 0 eV 1.64 mm 3.92 cm Target Transportation + 5 -2.81 cm -2.16 cm -2.4 m 375 keV 0 eV 3.1 mm 4.23 cm World Transportation + 6 -2.4 m 2.57 cm -2.12 m 375 keV 0 eV 2.39 m 2.43 m Tracker Transportation + 7 -2.91 m 3.59 cm -2.06 m 375 keV 0 eV 51.4 cm 2.94 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2340, Parent ID = 2332 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.34 cm -2.17 cm -2.4 m 212 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.34 cm -2.17 cm -2.4 m 0 eV 212 keV 89.1 mum 89.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2339, Parent ID = 2332 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.31 cm -2.14 cm -2.4 m 541 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.32 cm -2.14 cm -2.4 m 0 eV 541 keV 335 mum 335 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2338, Parent ID = 2332 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -250 mum 215 mum -2.42 m 328 keV 0 eV 0 fm 0 fm Target initStep + 1 -246 mum 214 mum -2.42 m 0 eV 328 keV 169 mum 169 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2331, Parent ID = 2328 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 mm 1.14 mm -2.42 m 299 keV 0 eV 0 fm 0 fm Target initStep + 1 2.05 mm 2.68 mm -2.41 m 259 keV 0 eV 9.72 mm 9.72 mm Target compt + 2 1.65 mm 5.94 mm -2.41 m 0 eV 88 keV 4.27 mm 1.4 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2342, Parent ID = 2331 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.65 mm 5.94 mm -2.41 m 171 keV 0 eV 0 fm 0 fm Target initStep + 1 1.65 mm 5.94 mm -2.41 m 0 eV 171 keV 64.6 mum 64.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2341, Parent ID = 2331 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.05 mm 2.68 mm -2.41 m 39.5 keV 0 eV 0 fm 0 fm Target initStep + 1 2.05 mm 2.68 mm -2.41 m 0 eV 39.5 keV 6.1 mum 6.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2330, Parent ID = 2328 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -259 mum 2.42 mm -2.42 m 3.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 435 mum 2.91 mm -2.42 m 0 eV 0 eV 1.31 mm 1.31 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2344, Parent ID = 2330 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 435 mum 2.91 mm -2.42 m 388 keV 0 eV 0 fm 0 fm Target initStep + 1 433 mum 2.9 mm -2.42 m 0 eV 388 keV 212 mum 212 mum Target eIoni + 2 433 mum 2.9 mm -2.42 m 0 eV 0 eV 0 fm 212 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2346, Parent ID = 2344 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 433 mum 2.9 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.16 mm -3.42 mm -2.42 m 414 keV 0 eV 7.9 mm 7.9 mm Target compt + 2 -5.6 mm -5.03 mm -2.43 m 0 eV 88 keV 4.02 mm 1.19 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2348, Parent ID = 2346 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.6 mm -5.03 mm -2.43 m 326 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.61 mm -5.03 mm -2.43 m 0 eV 326 keV 167 mum 167 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2347, Parent ID = 2346 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.16 mm -3.42 mm -2.42 m 97.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.15 mm -3.42 mm -2.42 m 0 eV 97.1 keV 26.3 mum 26.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2345, Parent ID = 2344 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 433 mum 2.9 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.1 mm 4.54 mm -2.42 m 256 keV 0 eV 2.04 mm 2.04 mm Target compt + 2 720 mum 5.23 mm -2.42 m 0 eV 88 keV 1.16 mm 3.21 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2350, Parent ID = 2345 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 720 mum 5.23 mm -2.42 m 168 keV 0 eV 0 fm 0 fm Target initStep + 1 720 mum 5.24 mm -2.42 m 0 eV 168 keV 62.6 mum 62.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2349, Parent ID = 2345 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.1 mm 4.54 mm -2.42 m 255 keV 0 eV 0 fm 0 fm Target initStep + 1 1.11 mm 4.54 mm -2.42 m 0 eV 255 keV 117 mum 117 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2343, Parent ID = 2330 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 435 mum 2.91 mm -2.42 m 1.76 MeV 0 eV 0 fm 0 fm Target initStep + 1 452 mum 2.92 mm -2.42 m 793 keV 16.8 keV 24.5 mum 24.5 mum Target eBrem + 2 475 mum 2.94 mm -2.42 m 0 eV 793 keV 545 mum 570 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2351, Parent ID = 2343 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 452 mum 2.92 mm -2.42 m 945 keV 0 eV 0 fm 0 fm Target initStep + 1 998 mum 4.35 mm -2.42 m 0 eV 88 keV 1.7 mm 1.7 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2352, Parent ID = 2351 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 998 mum 4.35 mm -2.42 m 857 keV 0 eV 0 fm 0 fm Target initStep + 1 920 mum 4.5 mm -2.42 m 123 keV 734 keV 537 mum 537 mum Target eBrem + 2 923 mum 4.5 mm -2.42 m 0 eV 123 keV 38.3 mum 576 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2329, Parent ID = 2328 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -544 mum 1.02 mm -2.42 m 6.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.7 cm 2.09 cm -2.4 m 6.15 MeV 0 eV 3.56 cm 3.56 cm Target Transportation + 2 2.11 m 2.4 m 42.9 cm 6.15 MeV 0 eV 4.25 m 4.28 m Tracker Transportation + 3 2.56 m 2.91 m 1.04 m 6.15 MeV 0 eV 91.1 cm 5.19 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2327, Parent ID = 2318 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -710 mum 968 mum -2.43 m 21.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -413 mum 1.26 mm -2.42 m 6.94 MeV 2.91 MeV 1.61 mm 1.61 mm Target eBrem + 2 -393 mum 1.3 mm -2.42 m 5.53 MeV 92.8 keV 71 mum 1.68 mm Target eBrem + 3 -626 mum 2.01 mm -2.42 m 3 MeV 1.28 MeV 966 mum 2.65 mm Target eBrem + 4 -626 mum 2.02 mm -2.42 m 1.77 MeV 467 eV 1.98 mum 2.65 mm Target eBrem + 5 -973 mum 2.44 mm -2.42 m 757 keV 1.01 MeV 1.04 mm 3.69 mm Target eBrem + 6 -1 mm 2.45 mm -2.42 m 0 eV 757 keV 515 mum 4.21 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2356, Parent ID = 2327 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -626 mum 2.02 mm -2.42 m 1.23 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.12 mm 2.5 cm -2.45 m 1.23 MeV 0 eV 3.21 cm 3.21 cm Target Transportation + 2 8.2 cm 50.9 cm -2.91 m 1.23 MeV 0 eV 67.5 cm 70.8 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2355, Parent ID = 2327 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -626 mum 2.01 mm -2.42 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 155 mum 1.15 cm -2.43 m 1.15 MeV 0 eV 1.36 cm 1.36 cm Target compt + 2 146 mum 1.87 cm -2.45 m 0 eV 88 keV 1.45 cm 2.81 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2358, Parent ID = 2355 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 146 mum 1.87 cm -2.45 m 1.06 MeV 0 eV 0 fm 0 fm Target initStep + 1 158 mum 1.87 cm -2.45 m 0 eV 1.06 MeV 774 mum 774 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2357, Parent ID = 2355 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 155 mum 1.15 cm -2.43 m 98.1 keV 0 eV 0 fm 0 fm Target initStep + 1 155 mum 1.15 cm -2.43 m 0 eV 98.1 keV 26.8 mum 26.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2354, Parent ID = 2327 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -393 mum 1.3 mm -2.42 m 1.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.78 mm 1.43 cm -2.41 m 431 keV 0 eV 1.9 cm 1.9 cm Target compt + 2 9.65 mm 1.63 cm -2.41 m 0 eV 88 keV 4.33 mm 2.33 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2360, Parent ID = 2354 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.65 mm 1.63 cm -2.41 m 343 keV 0 eV 0 fm 0 fm Target initStep + 1 9.65 mm 1.63 cm -2.41 m 0 eV 343 keV 180 mum 180 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2359, Parent ID = 2354 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.78 mm 1.43 cm -2.41 m 884 keV 0 eV 0 fm 0 fm Target initStep + 1 6.79 mm 1.43 cm -2.41 m 0 eV 884 keV 622 mum 622 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2353, Parent ID = 2327 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -413 mum 1.26 mm -2.42 m 11.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -234 mum 2.01 mm -2.42 m 0 eV 0 eV 992 mum 992 mum Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2362, Parent ID = 2353 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -234 mum 2.01 mm -2.42 m 8.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 -118 mum 2.17 mm -2.42 m 3.87 MeV 235 keV 245 mum 245 mum Target eBrem + 2 270 mum 2.67 mm -2.42 m 2.4 MeV 842 keV 824 mum 1.07 mm Target eBrem + 3 356 mum 2.46 mm -2.42 m 1.76 MeV 641 keV 327 mum 1.4 mm Target eBrem + 4 277 mum 2.34 mm -2.42 m 0 eV 1.76 MeV 1.38 mm 2.78 mm Target eIoni + 5 277 mum 2.34 mm -2.42 m 0 eV 0 eV 0 fm 2.78 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2366, Parent ID = 2362 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 277 mum 2.34 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 46.3 mum 3.09 mm -2.42 m 327 keV 0 eV 871 mum 871 mum Target compt + 2 -1.84 mm 2.91 mm -2.42 m 0 eV 88 keV 2.6 mm 3.47 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2368, Parent ID = 2366 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.84 mm 2.91 mm -2.42 m 239 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.84 mm 2.92 mm -2.42 m 0 eV 239 keV 107 mum 107 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2367, Parent ID = 2366 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 46.3 mum 3.09 mm -2.42 m 184 keV 0 eV 0 fm 0 fm Target initStep + 1 47.3 mum 3.1 mm -2.42 m 0 eV 184 keV 72.1 mum 72.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2365, Parent ID = 2362 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 277 mum 2.34 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 749 mum 822 mum -2.42 m 0 eV 88 keV 1.78 mm 1.78 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2369, Parent ID = 2365 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 749 mum 822 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 746 mum 806 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2364, Parent ID = 2362 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 270 mum 2.67 mm -2.42 m 630 keV 0 eV 0 fm 0 fm Target initStep + 1 5.49 mm 2.25 mm -2.42 m 0 eV 88 keV 6.83 mm 6.83 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2370, Parent ID = 2364 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.49 mm 2.25 mm -2.42 m 542 keV 0 eV 0 fm 0 fm Target initStep + 1 5.52 mm 2.25 mm -2.42 m 0 eV 542 keV 336 mum 336 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2363, Parent ID = 2362 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -118 mum 2.17 mm -2.42 m 4.32 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.56 mm 5.06 mm -2.41 m 922 keV 0 eV 1.46 cm 1.46 cm Target compt + 2 -1.14 mm 3.84 mm -2.41 m 0 eV 88 keV 4.23 mm 1.89 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2372, Parent ID = 2363 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.14 mm 3.84 mm -2.41 m 834 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.18 mm 3.78 mm -2.41 m 258 keV 286 keV 240 mum 240 mum Target eBrem + 2 -1.18 mm 3.78 mm -2.41 m 0 eV 258 keV 119 mum 359 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2373, Parent ID = 2372 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.18 mm 3.78 mm -2.41 m 290 keV 0 eV 0 fm 0 fm Target initStep + 1 -759 mum 4.38 mm -2.41 m 0 eV 88 keV 1.26 mm 1.26 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2374, Parent ID = 2373 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -759 mum 4.38 mm -2.41 m 202 keV 0 eV 0 fm 0 fm Target initStep + 1 -755 mum 4.38 mm -2.41 m 0 eV 202 keV 82.9 mum 82.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2371, Parent ID = 2363 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.56 mm 5.06 mm -2.41 m 3.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.97 mm 4.46 mm -2.41 m 1.63 MeV 1.39 MeV 1.14 mm 1.14 mm Target eBrem + 2 1.61 mm 4.73 mm -2.41 m 220 keV 1.41 MeV 887 mum 2.03 mm Target eBrem + 3 1.61 mm 4.73 mm -2.41 m 0 eV 220 keV 94.2 mum 2.13 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2375, Parent ID = 2371 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.97 mm 4.46 mm -2.41 m 378 keV 0 eV 0 fm 0 fm Target initStep + 1 2.29 mm 4.65 mm -2.41 m 0 eV 88 keV 1.76 mm 1.76 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2376, Parent ID = 2375 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.29 mm 4.65 mm -2.41 m 290 keV 0 eV 0 fm 0 fm Target initStep + 1 2.3 mm 4.64 mm -2.41 m 0 eV 290 keV 142 mum 142 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2361, Parent ID = 2353 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -234 mum 2.01 mm -2.42 m 2.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 -330 mum 2.17 mm -2.42 m 0 eV 2.28 MeV 1.78 mm 1.78 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2317, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 44.2 mum -30.6 mum -2.44 m 983 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.44 mm 948 mum -2.41 m 357 keV 0 eV 3.11 cm 3.11 cm Target compt + 2 -3.45 mm 3.57 mm -2.41 m 154 keV 0 eV 2.82 mm 3.4 cm Target compt + 3 -3.41 mm 3.33 mm -2.41 m 0 eV 88 keV 279 mum 3.42 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2379, Parent ID = 2317 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.41 mm 3.33 mm -2.41 m 66.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.41 mm 3.33 mm -2.41 m 0 eV 66.3 keV 14.2 mum 14.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2378, Parent ID = 2317 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.45 mm 3.57 mm -2.41 m 203 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.46 mm 3.58 mm -2.41 m 0 eV 203 keV 83.4 mum 83.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2377, Parent ID = 2317 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.44 mm 948 mum -2.41 m 626 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.44 mm 939 mum -2.41 m 0 eV 626 keV 405 mum 405 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2316, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -22.7 mum -35.9 mum -2.44 m 4.76 MeV 0 eV 0 fm 0 fm Target initStep + 1 51.7 mum -296 mum -2.43 m 0 eV 0 eV 5.36 mm 5.36 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2381, Parent ID = 2316 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 51.7 mum -296 mum -2.43 m 3.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 42.7 mum -300 mum -2.43 m 0 eV 3.13 MeV 2.5 mm 2.5 mm Target eIoni + 2 42.7 mum -300 mum -2.43 m 0 eV 0 eV 0 fm 2.5 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2383, Parent ID = 2381 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 42.7 mum -300 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 6.92 mm -1.98 mm -2.42 m 174 keV 0 eV 1.44 cm 1.44 cm Target compt + 2 6.81 mm -1.97 mm -2.42 m 0 eV 88 keV 658 mum 1.5 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2385, Parent ID = 2383 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.81 mm -1.97 mm -2.42 m 85.7 keV 0 eV 0 fm 0 fm Target initStep + 1 6.81 mm -1.97 mm -2.42 m 0 eV 85.7 keV 21.6 mum 21.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2384, Parent ID = 2383 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.92 mm -1.98 mm -2.42 m 337 keV 0 eV 0 fm 0 fm Target initStep + 1 6.93 mm -1.98 mm -2.42 m 0 eV 337 keV 176 mum 176 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2382, Parent ID = 2381 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 42.7 mum -300 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.16 mm -6.94 mum -2.43 m 0 eV 88 keV 2.51 mm 2.51 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2386, Parent ID = 2382 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.16 mm -6.94 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 mm 1.83 mum -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2380, Parent ID = 2316 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 51.7 mum -296 mum -2.43 m 608 keV 0 eV 0 fm 0 fm Target initStep + 1 55.1 mum -300 mum -2.43 m 0 eV 608 keV 390 mum 390 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2315, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -17.1 mum 144 nm -2.44 m 1.46 MeV 0 eV 0 fm 0 fm Target initStep + 1 -571 mum -131 mum -2.43 m 793 keV 0 eV 1.4 cm 1.4 cm Target compt + 2 21.4 mum -891 mum -2.42 m 628 keV 0 eV 1.38 mm 1.54 cm Target compt + 3 1.19 mm -1.12 cm -2.42 m 0 eV 88 keV 1.13 cm 2.67 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2389, Parent ID = 2315 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.19 mm -1.12 cm -2.42 m 540 keV 0 eV 0 fm 0 fm Target initStep + 1 1.18 mm -1.12 cm -2.42 m 0 eV 540 keV 335 mum 335 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2388, Parent ID = 2315 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 21.4 mum -891 mum -2.42 m 165 keV 0 eV 0 fm 0 fm Target initStep + 1 23.9 mum -890 mum -2.42 m 0 eV 165 keV 61 mum 61 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2387, Parent ID = 2315 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -571 mum -131 mum -2.43 m 668 keV 0 eV 0 fm 0 fm Target initStep + 1 -587 mum -149 mum -2.43 m 302 keV 61.2 keV 60.6 mum 60.6 mum Target eBrem + 2 -594 mum -151 mum -2.43 m 0 eV 302 keV 151 mum 211 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2390, Parent ID = 2387 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -587 mum -149 mum -2.43 m 304 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.72 mm -1.42 mm -2.42 m 0 eV 88 keV 1.96 mm 1.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2391, Parent ID = 2390 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm -1.42 mm -2.42 m 216 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.72 mm -1.42 mm -2.42 m 0 eV 216 keV 92 mum 92 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2314, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 9.68 mum 7.29 mum -2.44 m 528 keV 0 eV 0 fm 0 fm Target initStep + 1 -133 mum 185 mum -2.43 m 414 keV 0 eV 1.21 cm 1.21 cm Target compt + 2 -6.89 mm -3.15 mm -2.42 m 0 eV 88 keV 1.11 cm 2.31 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2393, Parent ID = 2314 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.89 mm -3.15 mm -2.42 m 326 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.89 mm -3.17 mm -2.42 m 0 eV 326 keV 168 mum 168 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2392, Parent ID = 2314 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -133 mum 185 mum -2.43 m 114 keV 0 eV 0 fm 0 fm Target initStep + 1 -132 mum 186 mum -2.43 m 0 eV 114 keV 34.1 mum 34.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2313, Parent ID = 1743 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 10.1 mum 7.84 mum -2.44 m 943 keV 0 eV 0 fm 0 fm Target initStep + 1 -76.2 mum -11.5 mum -2.43 m 0 eV 88 keV 5.13 mm 5.13 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2394, Parent ID = 2313 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -76.2 mum -11.5 mum -2.43 m 855 keV 0 eV 0 fm 0 fm Target initStep + 1 -81.2 mum -7.04 mum -2.43 m 0 eV 855 keV 597 mum 597 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 107, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.06 mum 1.72 mum -2.45 m 3.57 MeV 0 eV 0 fm 0 fm Target initStep + 1 10.6 mum 12.5 mum -2.43 m 3.11 MeV 0 eV 1.5 cm 1.5 cm Target compt + 2 -472 mum 737 mum -2.43 m 0 eV 0 eV 4.27 mm 1.93 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2397, Parent ID = 107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -472 mum 737 mum -2.43 m 1.67 MeV 0 eV 0 fm 0 fm Target initStep + 1 -567 mum 847 mum -2.43 m 0 eV 1.67 MeV 1.3 mm 1.3 mm Target eIoni + 2 -567 mum 847 mum -2.43 m 0 eV 0 eV 0 fm 1.3 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2399, Parent ID = 2397 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -567 mum 847 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.75 mm 3.49 mm -2.42 m 0 eV 88 keV 8.94 mm 8.94 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2400, Parent ID = 2399 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.75 mm 3.49 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.76 mm 3.51 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2398, Parent ID = 2397 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -567 mum 847 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.5 mm -2.06 mm -2.43 m 0 eV 88 keV 9.82 mm 9.82 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2401, Parent ID = 2398 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.5 mm -2.06 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.52 mm -2.06 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2396, Parent ID = 107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -472 mum 737 mum -2.43 m 422 keV 0 eV 0 fm 0 fm Target initStep + 1 -461 mum 725 mum -2.43 m 0 eV 422 keV 240 mum 240 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2395, Parent ID = 107 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 10.6 mum 12.5 mum -2.43 m 456 keV 0 eV 0 fm 0 fm Target initStep + 1 18.5 mum 800 nm -2.43 m 0 eV 456 keV 267 mum 267 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 106, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.93 mum -1.87 mum -2.45 m 186 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.14 mum -1.18 mum -2.45 m 0 eV 0 eV 1.51 mm 1.51 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2403, Parent ID = 106 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.14 mum -1.18 mum -2.45 m 29.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -31.1 mum -264 mum -2.44 m 17.5 MeV 1.98 MeV 1.57 mm 1.57 mm Target eBrem + 2 -394 mum -104 mum -2.44 m 14.5 MeV 798 keV 716 mum 2.29 mm Target eBrem + 3 -414 mum -83.9 mum -2.44 m 11.3 MeV 91.1 keV 60 mum 2.35 mm Target eBrem + 4 -4.77 mm 2.1 mm -2.44 m 356 keV 11 MeV 8.19 mm 1.05 cm Target eBrem + 5 -4.78 mm 2.11 mm -2.44 m 0 eV 356 keV 188 mum 1.07 cm Target eIoni + 6 -4.78 mm 2.11 mm -2.44 m 0 eV 0 eV 0 fm 1.07 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2408, Parent ID = 2403 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.78 mm 2.11 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -647 mum 5.26 mm -2.44 m 412 keV 0 eV 5.48 mm 5.48 mm Target compt + 2 3.8 mm 6.53 mm -2.44 m 0 eV 88 keV 4.81 mm 1.03 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2410, Parent ID = 2408 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.8 mm 6.53 mm -2.44 m 324 keV 0 eV 0 fm 0 fm Target initStep + 1 3.81 mm 6.53 mm -2.44 m 0 eV 324 keV 166 mum 166 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2409, Parent ID = 2408 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -647 mum 5.26 mm -2.44 m 99 keV 0 eV 0 fm 0 fm Target initStep + 1 -647 mum 5.26 mm -2.44 m 0 eV 99 keV 27.1 mum 27.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2407, Parent ID = 2403 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.78 mm 2.11 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.41 mm -652 mum -2.44 m 0 eV 88 keV 4.82 mm 4.82 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2411, Parent ID = 2407 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.41 mm -652 mum -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.42 mm -664 mum -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2406, Parent ID = 2403 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -414 mum -83.9 mum -2.44 m 3.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.67 mm 6.05 mm -2.41 m 0 eV 0 eV 3.75 cm 3.75 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2413, Parent ID = 2406 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.67 mm 6.05 mm -2.41 m 934 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.68 mm 6.06 mm -2.41 m 0 eV 934 keV 673 mum 673 mum Target eIoni + 2 -7.68 mm 6.06 mm -2.41 m 0 eV 0 eV 0 fm 673 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2415, Parent ID = 2413 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.68 mm 6.06 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.58 mm 3.97 mm -2.41 m 480 keV 0 eV 2.51 mm 2.51 mm Target compt + 2 -5.86 mm 510 mum -2.41 m 236 keV 0 eV 3.55 mm 6.06 mm Target compt + 3 -5.15 mm 882 mum -2.4 m 0 eV 88 keV 1.24 mm 7.3 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2418, Parent ID = 2415 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.15 mm 882 mum -2.4 m 148 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.15 mm 880 mum -2.4 m 0 eV 148 keV 51.7 mum 51.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2417, Parent ID = 2415 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.86 mm 510 mum -2.41 m 244 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.86 mm 503 mum -2.41 m 0 eV 244 keV 110 mum 110 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2416, Parent ID = 2415 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.58 mm 3.97 mm -2.41 m 31.1 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.58 mm 3.97 mm -2.41 m 0 eV 31.1 keV 4.12 mum 4.12 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2414, Parent ID = 2413 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.68 mm 6.06 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.87 mm 8.32 mm -2.41 m 0 eV 88 keV 2.7 mm 2.7 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2419, Parent ID = 2414 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -8.87 mm 8.32 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -8.88 mm 8.33 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2412, Parent ID = 2406 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.67 mm 6.05 mm -2.41 m 1.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -7.69 mm 6.07 mm -2.41 m 0 eV 1.12 MeV 822 mum 822 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2405, Parent ID = 2403 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -394 mum -104 mum -2.44 m 2.15 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.65 mm 3.23 mm -2.43 m 283 keV 0 eV 1.08 cm 1.08 cm Target compt + 2 -3.92 mm 3.99 mm -2.43 m 0 eV 88 keV 1.55 mm 1.24 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2421, Parent ID = 2405 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.92 mm 3.99 mm -2.43 m 195 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.92 mm 3.99 mm -2.43 m 0 eV 195 keV 78.9 mum 78.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2420, Parent ID = 2405 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.65 mm 3.23 mm -2.43 m 1.87 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.68 mm 3.26 mm -2.43 m 0 eV 1.87 MeV 1.45 mm 1.45 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2404, Parent ID = 2403 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -31.1 mum -264 mum -2.44 m 10.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.04 mm 1.26 mm -2.43 m 0 eV 0 eV 1.71 cm 1.71 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2423, Parent ID = 2404 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.04 mm 1.26 mm -2.43 m 3.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.12 mm 1.43 mm -2.43 m 0 eV 3.01 MeV 2.4 mm 2.4 mm Target eIoni + 2 -6.12 mm 1.43 mm -2.43 m 0 eV 0 eV 0 fm 2.4 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2425, Parent ID = 2423 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.12 mm 1.43 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.11 mm 1.46 mm -2.43 m 0 eV 88 keV 34.3 mum 34.3 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2426, Parent ID = 2425 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.11 mm 1.46 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.11 mm 1.47 mm -2.43 m 246 keV 177 keV 143 mum 143 mum Target eBrem + 2 -6.11 mm 1.47 mm -2.43 m 0 eV 246 keV 111 mum 255 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2424, Parent ID = 2423 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.12 mm 1.43 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.19 mm 1.29 mm -2.43 m 0 eV 88 keV 166 mum 166 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2427, Parent ID = 2424 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.19 mm 1.29 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.2 mm 1.28 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2422, Parent ID = 2404 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.04 mm 1.26 mm -2.43 m 6.28 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.42 mm 1.17 mm -2.43 m 0 eV 6.28 MeV 4.84 mm 4.84 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2402, Parent ID = 106 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.14 mum -1.18 mum -2.45 m 155 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.5 mum -30.7 mum -2.44 m 21.6 MeV 1.36 MeV 1 mm 1 mm Target eBrem + 2 6.64 mum -30.6 mum -2.44 m 17 MeV 3.89 keV 5.9 mum 1.01 mm Target eBrem + 3 384 mum -223 mum -2.44 m 12.3 MeV 1.68 MeV 1.31 mm 2.32 mm Target eBrem + 4 319 mum -497 mum -2.44 m 10.9 MeV 809 keV 766 mum 3.09 mm Target eBrem + 5 205 mum -668 mum -2.44 m 10.2 MeV 748 keV 569 mum 3.66 mm Target eBrem + 6 2.64 mm -3.99 mm -2.44 m 3.45 MeV 5.65 MeV 4.9 mm 8.55 mm Target eBrem + 7 3.72 mm -4.06 mm -2.44 m 634 keV 1.79 MeV 1.75 mm 1.03 cm Target eBrem + 8 3.74 mm -4.04 mm -2.44 m 0 eV 634 keV 411 mum 1.07 cm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2433, Parent ID = 2402 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.72 mm -4.06 mm -2.44 m 1.02 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.6 cm 3.79 mm -2.44 m 841 keV 0 eV 1.54 cm 1.54 cm Target compt + 2 1.8 cm 7.23 mm -2.43 m 205 keV 0 eV 4.08 mm 1.95 cm Target compt + 3 1.8 cm 6.45 mm -2.43 m 0 eV 88 keV 786 mum 2.03 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2436, Parent ID = 2433 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.8 cm 6.45 mm -2.43 m 117 keV 0 eV 0 fm 0 fm Target initStep + 1 1.8 cm 6.45 mm -2.43 m 0 eV 117 keV 35.4 mum 35.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2435, Parent ID = 2433 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.8 cm 7.23 mm -2.43 m 636 keV 0 eV 0 fm 0 fm Target initStep + 1 1.8 cm 7.26 mm -2.43 m 0 eV 636 keV 413 mum 413 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2434, Parent ID = 2433 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.6 cm 3.79 mm -2.44 m 180 keV 0 eV 0 fm 0 fm Target initStep + 1 1.6 cm 3.79 mm -2.44 m 0 eV 180 keV 69.8 mum 69.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2432, Parent ID = 2402 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.64 mm -3.99 mm -2.44 m 1.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.25 mm -1.4 cm -2.44 m 0 eV 88 keV 1.2 cm 1.2 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2437, Parent ID = 2432 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.25 mm -1.4 cm -2.44 m 1.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 8.3 mm -1.4 cm -2.44 m 0 eV 1.01 MeV 733 mum 733 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2431, Parent ID = 2402 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 319 mum -497 mum -2.44 m 546 keV 0 eV 0 fm 0 fm Target initStep + 1 512 mum -1.09 mm -2.44 m 347 keV 0 eV 3.61 mm 3.61 mm Target compt + 2 718 mum -1.95 mm -2.44 m 0 eV 88 keV 926 mum 4.53 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2439, Parent ID = 2431 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 718 mum -1.95 mm -2.44 m 259 keV 0 eV 0 fm 0 fm Target initStep + 1 719 mum -1.95 mm -2.44 m 0 eV 259 keV 120 mum 120 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2438, Parent ID = 2431 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 512 mum -1.09 mm -2.44 m 199 keV 0 eV 0 fm 0 fm Target initStep + 1 511 mum -1.09 mm -2.44 m 0 eV 199 keV 81.2 mum 81.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2430, Parent ID = 2402 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 384 mum -223 mum -2.44 m 3 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 mm -1.38 mm -2.44 m 2.86 MeV 0 eV 4.7 mm 4.7 mm Target compt + 2 -5.29 mm -5.12 mm -2.43 m 0 eV 0 eV 1.08 cm 1.55 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2442, Parent ID = 2430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.29 mm -5.12 mm -2.43 m 941 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.34 mm -5.18 mm -2.43 m 0 eV 941 keV 679 mum 679 mum Target eIoni + 2 -5.34 mm -5.18 mm -2.43 m 0 eV 0 eV 0 fm 679 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2444, Parent ID = 2442 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.34 mm -5.18 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 263 nm 2.55 mm -2.43 m 185 keV 0 eV 1.02 cm 1.02 cm Target compt + 2 -27.4 mum 2.54 mm -2.43 m 0 eV 88 keV 37.5 mum 1.03 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2446, Parent ID = 2444 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -27.4 mum 2.54 mm -2.43 m 96.7 keV 0 eV 0 fm 0 fm Target initStep + 1 -28.1 mum 2.54 mm -2.43 m 0 eV 96.7 keV 26.2 mum 26.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2445, Parent ID = 2444 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 263 nm 2.55 mm -2.43 m 326 keV 0 eV 0 fm 0 fm Target initStep + 1 7.04 mum 2.56 mm -2.43 m 0 eV 326 keV 168 mum 168 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2443, Parent ID = 2442 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.34 mm -5.18 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.04 cm -1.24 cm -2.43 m 0 eV 88 keV 9.62 mm 9.62 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2447, Parent ID = 2443 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.04 cm -1.24 cm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.04 cm -1.24 cm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2441, Parent ID = 2430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.29 mm -5.12 mm -2.43 m 900 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.27 mm -5.09 mm -2.43 m 0 eV 900 keV 635 mum 635 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2440, Parent ID = 2430 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.17 mm -1.38 mm -2.44 m 133 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.17 mm -1.38 mm -2.44 m 0 eV 133 keV 43.8 mum 43.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2429, Parent ID = 2402 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.64 mum -30.6 mum -2.44 m 4.64 MeV 0 eV 0 fm 0 fm Target initStep + 1 873 mum -266 mum -2.43 m 4.56 MeV 0 eV 1.85 cm 1.85 cm Target compt + 2 3.22 mm 426 mum -2.4 m 4.56 MeV 0 eV 2.56 cm 4.42 cm Target Transportation + 3 7.69 cm 2.22 cm -1.6 m 4.56 MeV 0 eV 80.4 cm 84.8 cm Tracker Transportation + 4 9.53 cm 2.76 cm -1.4 m 4.56 MeV 0 eV 20.1 cm 1.05 m Chamber Transportation + 5 15.1 cm 4.39 cm -80 cm 4.56 MeV 0 eV 60.3 cm 1.65 m Tracker Transportation + 6 16.9 cm 4.93 cm -60 cm 4.56 MeV 0 eV 20.1 cm 1.85 m Chamber Transportation + 7 22.4 cm 6.56 cm 0 fm 4.56 MeV 0 eV 60.3 cm 2.46 m Tracker Transportation + 8 24.3 cm 7.1 cm 20 cm 4.56 MeV 0 eV 20.1 cm 2.66 m Chamber Transportation + 9 29.8 cm 8.73 cm 80 cm 4.56 MeV 0 eV 60.3 cm 3.26 m Tracker Transportation + 10 31.6 cm 9.28 cm 1 m 4.56 MeV 0 eV 20.1 cm 3.46 m Chamber Transportation + 11 37.2 cm 10.9 cm 1.6 m 4.56 MeV 0 eV 60.3 cm 4.06 m Tracker Transportation + 12 39 cm 11.4 cm 1.8 m 4.56 MeV 0 eV 20.1 cm 4.26 m Chamber Transportation + 13 44.5 cm 13.1 cm 2.4 m 4.56 MeV 0 eV 60.3 cm 4.87 m Tracker Transportation + 14 49.2 cm 14.5 cm 2.91 m 4.56 MeV 0 eV 51.2 cm 5.38 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2448, Parent ID = 2429 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 873 mum -266 mum -2.43 m 74.8 keV 0 eV 0 fm 0 fm Target initStep + 1 872 mum -267 mum -2.43 m 0 eV 74.8 keV 17.3 mum 17.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2428, Parent ID = 2402 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.5 mum -30.7 mum -2.44 m 133 MeV 0 eV 0 fm 0 fm Target initStep + 1 144 mum 35.3 mum -2.44 m 0 eV 0 eV 3.96 mm 3.96 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2450, Parent ID = 2428 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 144 mum 35.3 mum -2.44 m 95.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 148 mum 39.1 mum -2.44 m 78.3 MeV 134 keV 127 mum 127 mum Target eBrem + 2 141 mum 48.3 mum -2.44 m 76 MeV 1.09 MeV 496 mum 623 mum Target eBrem + 3 146 mum 50.4 mum -2.44 m 72.6 MeV 118 keV 110 mum 733 mum Target eBrem + 4 168 mum 53.5 mum -2.44 m 55.8 MeV 386 keV 254 mum 987 mum Target eBrem + 5 169 mum 54.8 mum -2.44 m 49 MeV 19.6 keV 22.3 mum 1.01 mm Target eBrem + 6 176 mum 31.6 mum -2.44 m 47.2 MeV 992 keV 793 mum 1.8 mm Target eBrem + 7 -311 mum 214 mum -2.44 m 41 MeV 3.52 MeV 2.61 mm 4.41 mm Target eBrem + 8 -163 mum 213 mum -2.44 m 39.7 MeV 621 keV 580 mum 4.99 mm Target eBrem + 9 -33 mum 177 mum -2.43 m 37.8 MeV 419 keV 361 mum 5.35 mm Target eBrem + 10 3.37 mm -498 mum -2.43 m 28.6 MeV 7.62 MeV 5.26 mm 1.06 cm Target eBrem + 11 3.46 mm -453 mum -2.43 m 27.1 MeV 585 keV 458 mum 1.11 cm Target eBrem + 12 3.59 mm -361 mum -2.43 m 19.4 MeV 970 keV 739 mum 1.18 cm Target eBrem + 13 5.07 mm -271 mum -2.43 m 15.5 MeV 3.12 MeV 2.6 mm 1.44 cm Target eBrem + 14 5.06 mm -342 mum -2.43 m 12.2 MeV 188 keV 196 mum 1.46 cm Target eBrem + 15 5.04 mm -563 mum -2.43 m 10.3 MeV 560 keV 467 mum 1.51 cm Target eBrem + 16 2.83 mm 1.11 mm -2.43 m 5.12 MeV 5.21 MeV 3.66 mm 1.87 cm Target eBrem + 17 2.3 mm 1.21 mm -2.43 m 0 eV 1.06 MeV 838 mum 1.96 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2467, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.3 mm 1.21 mm -2.43 m 4.24 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.34 cm 1.94 cm -2.44 m 0 eV 0 eV 2.48 cm 2.48 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2469, Parent ID = 2467 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.34 cm 1.94 cm -2.44 m 2.63 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.3 cm 1.9 cm -2.44 m 1.01 MeV 1.62 MeV 1.41 mm 1.41 mm Target eBrem + 2 1.3 cm 1.91 cm -2.44 m 0 eV 1.01 MeV 738 mum 2.15 mm Target eIoni + 3 1.3 cm 1.91 cm -2.44 m 0 eV 0 eV 0 fm 2.15 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2471, Parent ID = 2469 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.3 cm 1.91 cm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.67 cm 1.98 cm -2.44 m 0 eV 88 keV 4.01 mm 4.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2472, Parent ID = 2471 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.67 cm 1.98 cm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.68 cm 1.98 cm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2470, Parent ID = 2469 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.3 cm 1.91 cm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.39 mm 1.71 cm -2.44 m 0 eV 88 keV 1.03 cm 1.03 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2473, Parent ID = 2470 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.39 mm 1.71 cm -2.44 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.38 mm 1.71 cm -2.44 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2468, Parent ID = 2467 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.34 cm 1.94 cm -2.44 m 590 keV 0 eV 0 fm 0 fm Target initStep + 1 1.34 cm 1.94 cm -2.44 m 0 eV 590 keV 376 mum 376 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2466, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.3 mm 1.21 mm -2.43 m 841 keV 0 eV 0 fm 0 fm Target initStep + 1 1.78 mm 1.95 mm -2.43 m 397 keV 0 eV 918 mum 918 mum Target compt + 2 -2 mm 811 mum -2.42 m 0 eV 88 keV 3.96 mm 4.88 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2475, Parent ID = 2466 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2 mm 811 mum -2.42 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 -2 mm 819 mum -2.42 m 0 eV 309 keV 155 mum 155 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2474, Parent ID = 2466 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.78 mm 1.95 mm -2.43 m 445 keV 0 eV 0 fm 0 fm Target initStep + 1 1.78 mm 1.97 mm -2.43 m 0 eV 445 keV 258 mum 258 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2465, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.04 mm -563 mum -2.43 m 1.32 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.25 mm -2.05 mm -2.42 m 0 eV 88 keV 7.07 mm 7.07 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2476, Parent ID = 2465 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.25 mm -2.05 mm -2.42 m 1.23 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.55 mm -1.97 mm -2.42 m 362 keV 871 keV 606 mum 606 mum Target eBrem + 2 4.56 mm -1.97 mm -2.42 m 0 eV 362 keV 194 mum 800 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2464, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.06 mm -342 mum -2.43 m 3.08 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.92 mm -3.62 mm -2.42 m 0 eV 0 eV 8.07 mm 8.07 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2478, Parent ID = 2464 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.92 mm -3.62 mm -2.42 m 1.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.86 mm -3.72 mm -2.42 m 0 eV 1.42 MeV 1.09 mm 1.09 mm Target eIoni + 2 2.86 mm -3.72 mm -2.42 m 0 eV 0 eV 0 fm 1.09 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2480, Parent ID = 2478 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.86 mm -3.72 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.34 mm -5.35 mm -2.42 m 0 eV 88 keV 3.91 mm 3.91 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2481, Parent ID = 2480 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.34 mm -5.35 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 2.34 mm -5.35 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2479, Parent ID = 2478 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.86 mm -3.72 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.4 mm -2.02 mm -2.42 m 0 eV 88 keV 4.09 mm 4.09 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2482, Parent ID = 2479 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.4 mm -2.02 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.38 mm -2.01 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2477, Parent ID = 2464 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.92 mm -3.62 mm -2.42 m 638 keV 0 eV 0 fm 0 fm Target initStep + 1 2.93 mm -3.61 mm -2.42 m 0 eV 638 keV 414 mum 414 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2463, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.07 mm -271 mum -2.43 m 802 keV 0 eV 0 fm 0 fm Target initStep + 1 4.44 mm -1.39 mm -2.42 m 243 keV 0 eV 3.38 mm 3.38 mm Target compt + 2 4.72 mm -1.38 mm -2.42 m 0 eV 88 keV 298 mum 3.68 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2484, Parent ID = 2463 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.72 mm -1.38 mm -2.42 m 155 keV 0 eV 0 fm 0 fm Target initStep + 1 4.72 mm -1.39 mm -2.42 m 0 eV 155 keV 55.5 mum 55.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2483, Parent ID = 2463 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.44 mm -1.39 mm -2.42 m 558 keV 0 eV 0 fm 0 fm Target initStep + 1 4.43 mm -1.4 mm -2.42 m 0 eV 558 keV 350 mum 350 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2462, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.59 mm -361 mum -2.43 m 6.71 MeV 0 eV 0 fm 0 fm Target initStep + 1 5.02 mm -1e+03 mum -2.42 m 0 eV 0 eV 5.91 mm 5.91 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2486, Parent ID = 2462 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.02 mm -1e+03 mum -2.42 m 956 keV 0 eV 0 fm 0 fm Target initStep + 1 5.04 mm -1.01 mm -2.42 m 0 eV 956 keV 692 mum 692 mum Target eIoni + 2 5.04 mm -1.01 mm -2.42 m 0 eV 0 eV 0 fm 692 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2488, Parent ID = 2486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.04 mm -1.01 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.31 mm -1.04 mm -2.42 m 0 eV 88 keV 300 mum 300 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2489, Parent ID = 2488 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.31 mm -1.04 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.32 mm -1.04 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2487, Parent ID = 2486 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.04 mm -1.01 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.02 mm -327 mum -2.43 m 0 eV 88 keV 6.8 mm 6.8 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2490, Parent ID = 2487 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.02 mm -327 mum -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.03 mm -333 mum -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2485, Parent ID = 2462 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.02 mm -1e+03 mum -2.42 m 4.73 MeV 0 eV 0 fm 0 fm Target initStep + 1 4.45 mm -1.06 mm -2.42 m 2.84 MeV 982 keV 953 mum 953 mum Target eBrem + 2 5.26 mm -1.47 mm -2.42 m 60.5 keV 2.41 MeV 1.4 mm 2.35 mm Target eBrem + 3 5.26 mm -1.47 mm -2.42 m 0 eV 60.5 keV 12.2 mum 2.36 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2492, Parent ID = 2485 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.26 mm -1.47 mm -2.42 m 374 keV 0 eV 0 fm 0 fm Target initStep + 1 5.42 mm -1.45 mm -2.42 m 0 eV 88 keV 262 mum 262 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2493, Parent ID = 2492 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.42 mm -1.45 mm -2.42 m 286 keV 0 eV 0 fm 0 fm Target initStep + 1 5.43 mm -1.46 mm -2.42 m 0 eV 286 keV 139 mum 139 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2491, Parent ID = 2485 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.45 mm -1.06 mm -2.42 m 908 keV 0 eV 0 fm 0 fm Target initStep + 1 4.34 mm -1.97 mm -2.42 m 422 keV 0 eV 1.47 mm 1.47 mm Target compt + 2 3.81 mm -1.71 mm -2.42 m 0 eV 88 keV 778 mum 2.25 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2495, Parent ID = 2491 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.81 mm -1.71 mm -2.42 m 334 keV 0 eV 0 fm 0 fm Target initStep + 1 3.8 mm -1.71 mm -2.42 m 0 eV 334 keV 173 mum 173 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2494, Parent ID = 2491 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.34 mm -1.97 mm -2.42 m 486 keV 0 eV 0 fm 0 fm Target initStep + 1 4.35 mm -1.99 mm -2.42 m 0 eV 486 keV 291 mum 291 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2461, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.46 mm -453 mum -2.43 m 931 keV 0 eV 0 fm 0 fm Target initStep + 1 3.55 mm -245 mum -2.43 m 0 eV 88 keV 1.84 mm 1.84 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2496, Parent ID = 2461 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.55 mm -245 mum -2.43 m 843 keV 0 eV 0 fm 0 fm Target initStep + 1 3.57 mm -213 mum -2.43 m 0 eV 843 keV 587 mum 587 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2460, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.37 mm -498 mum -2.43 m 1.57 MeV 0 eV 0 fm 0 fm Target initStep + 1 6.39 mm 2.72 mm -2.4 m 1.57 MeV 0 eV 3.13 cm 3.13 cm Target Transportation + 2 8.43 cm 8.57 cm -1.6 m 1.57 MeV 0 eV 80.8 cm 83.9 cm Tracker Transportation + 3 10.4 cm 10.6 cm -1.4 m 1.57 MeV 0 eV 20.2 cm 1.04 m Chamber Transportation + 4 16.2 cm 16.9 cm -80 cm 1.57 MeV 0 eV 60.6 cm 1.65 m Tracker Transportation + 5 18.2 cm 18.9 cm -60 cm 1.57 MeV 0 eV 20.2 cm 1.85 m Chamber Transportation + 6 24 cm 25.2 cm -0.114 fm 1.57 MeV 0 eV 60.6 cm 2.46 m Tracker Transportation + 7 26 cm 27.2 cm 20 cm 1.57 MeV 0 eV 20.2 cm 2.66 m Chamber Transportation + 8 31.8 cm 33.5 cm 80 cm 1.57 MeV 0 eV 60.6 cm 3.26 m Tracker Transportation + 9 33.8 cm 35.5 cm 1 m 1.57 MeV 0 eV 20.2 cm 3.47 m Chamber Transportation + 10 39.6 cm 41.8 cm 1.6 m 1.57 MeV 0 eV 60.6 cm 4.07 m Tracker Transportation + 11 41.6 cm 43.8 cm 1.8 m 1.57 MeV 0 eV 20.2 cm 4.27 m Chamber Transportation + 12 47.4 cm 50.1 cm 2.4 m 1.57 MeV 0 eV 60.6 cm 4.88 m Tracker Transportation + 13 52.4 cm 55.4 cm 2.91 m 1.57 MeV 0 eV 51.5 cm 5.39 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2459, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -33 mum 177 mum -2.43 m 1.46 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.61 mm 598 mum -2.42 m 0 eV 88 keV 1.79 cm 1.79 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2497, Parent ID = 2459 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.61 mm 598 mum -2.42 m 1.37 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.66 mm 590 mum -2.42 m 0 eV 1.37 MeV 1.03 mm 1.03 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2458, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -163 mum 213 mum -2.44 m 667 keV 0 eV 0 fm 0 fm Target initStep + 1 866 mum 28.2 mum -2.43 m 0 eV 88 keV 3.14 mm 3.14 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2498, Parent ID = 2458 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 866 mum 28.2 mum -2.43 m 579 keV 0 eV 0 fm 0 fm Target initStep + 1 862 mum 38 mum -2.43 m 0 eV 579 keV 366 mum 366 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2457, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -311 mum 214 mum -2.44 m 2.74 MeV 0 eV 0 fm 0 fm Target initStep + 1 623 mum 441 mum -2.43 m 330 keV 0 eV 5.57 mm 5.57 mm Target compt + 2 1.09 mm 441 mum -2.43 m 164 keV 0 eV 546 mum 6.12 mm Target compt + 3 861 mum 936 mum -2.43 m 0 eV 88 keV 622 mum 6.74 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2501, Parent ID = 2457 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 861 mum 936 mum -2.43 m 76.3 keV 0 eV 0 fm 0 fm Target initStep + 1 861 mum 937 mum -2.43 m 0 eV 76.3 keV 17.9 mum 17.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2500, Parent ID = 2457 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.09 mm 441 mum -2.43 m 166 keV 0 eV 0 fm 0 fm Target initStep + 1 1.1 mm 440 mum -2.43 m 0 eV 166 keV 61.5 mum 61.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2499, Parent ID = 2457 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 623 mum 441 mum -2.43 m 2.41 MeV 0 eV 0 fm 0 fm Target initStep + 1 888 mum 103 mum -2.43 m 557 keV 926 keV 677 mum 677 mum Target eBrem + 2 904 mum 86.6 mum -2.43 m 0 eV 557 keV 348 mum 1.02 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2502, Parent ID = 2499 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 888 mum 103 mum -2.43 m 924 keV 0 eV 0 fm 0 fm Target initStep + 1 6.42 mm -5.61 mm -2.43 m 267 keV 0 eV 9.07 mm 9.07 mm Target compt + 2 7.12 mm -5.21 mm -2.43 m 0 eV 88 keV 2.14 mm 1.12 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2504, Parent ID = 2502 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 7.12 mm -5.21 mm -2.43 m 179 keV 0 eV 0 fm 0 fm Target initStep + 1 7.12 mm -5.21 mm -2.43 m 0 eV 179 keV 69.1 mum 69.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2503, Parent ID = 2502 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.42 mm -5.61 mm -2.43 m 657 keV 0 eV 0 fm 0 fm Target initStep + 1 6.43 mm -5.63 mm -2.43 m 0 eV 657 keV 431 mum 431 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2456, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 176 mum 31.6 mum -2.44 m 805 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.02 mm 3.46 mm -2.41 m 235 keV 0 eV 3.03 cm 3.03 cm Target compt + 2 -2.39 mm 2.15 mm -2.41 m 0 eV 88 keV 2.19 mm 3.25 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2506, Parent ID = 2456 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.39 mm 2.15 mm -2.41 m 147 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.39 mm 2.15 mm -2.41 m 0 eV 147 keV 50.9 mum 50.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2505, Parent ID = 2456 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.02 mm 3.46 mm -2.41 m 570 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.02 mm 3.47 mm -2.41 m 0 eV 570 keV 359 mum 359 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2455, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 169 mum 54.8 mum -2.44 m 6.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 70.2 mum 715 mum -2.4 m 6.77 MeV 0 eV 3.91 cm 3.91 cm Target Transportation + 2 -1.94 mm 1.42 cm -1.6 m 6.77 MeV 0 eV 80 cm 83.9 cm Tracker Transportation + 3 -2.45 mm 1.76 cm -1.4 m 6.77 MeV 0 eV 20 cm 1.04 m Chamber Transportation + 4 -3.96 mm 2.78 cm -80 cm 6.77 MeV 0 eV 60 cm 1.64 m Tracker Transportation + 5 -4.46 mm 3.12 cm -60 cm 6.77 MeV 0 eV 20 cm 1.84 m Chamber Transportation + 6 -5.97 mm 4.13 cm -0.114 fm 6.77 MeV 0 eV 60 cm 2.44 m Tracker Transportation + 7 -6.48 mm 4.47 cm 20 cm 6.77 MeV 0 eV 20 cm 2.64 m Chamber Transportation + 8 -7.99 mm 5.48 cm 80 cm 6.77 MeV 0 eV 60 cm 3.24 m Tracker Transportation + 9 -8.49 mm 5.82 cm 1 m 6.77 MeV 0 eV 20 cm 3.44 m Chamber Transportation + 10 -1 cm 6.84 cm 1.6 m 6.77 MeV 0 eV 60 cm 4.04 m Tracker Transportation + 11 -1.05 cm 7.17 cm 1.8 m 6.77 MeV 0 eV 20 cm 4.24 m Chamber Transportation + 12 -1.2 cm 8.19 cm 2.4 m 6.77 MeV 0 eV 60 cm 4.84 m Tracker Transportation + 13 -1.33 cm 9.05 cm 2.91 m 6.77 MeV 0 eV 51 cm 5.35 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2454, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 168 mum 53.5 mum -2.44 m 16.4 MeV 0 eV 0 fm 0 fm Target initStep + 1 781 mum 1.64 mm -2.41 m 0 eV 0 eV 2.82 cm 2.82 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2508, Parent ID = 2454 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 781 mum 1.64 mm -2.41 m 4.21 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.83 mm 787 mum -2.41 m 366 keV 2.81 MeV 1.8 mm 1.8 mm Target eBrem + 2 1.84 mm 789 mum -2.41 m 0 eV 366 keV 195 mum 2 mm Target eIoni + 3 1.84 mm 789 mum -2.41 m 0 eV 0 eV 0 fm 2 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2511, Parent ID = 2508 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.84 mm 789 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 895 mum 2.78 mm -2.41 m 0 eV 88 keV 2.21 mm 2.21 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2512, Parent ID = 2511 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 895 mum 2.78 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 889 mum 2.79 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2510, Parent ID = 2508 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.84 mm 789 mum -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 5.75 mm -7.38 mm -2.41 m 0 eV 88 keV 9.08 mm 9.08 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2513, Parent ID = 2510 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5.75 mm -7.38 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 5.76 mm -7.4 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2509, Parent ID = 2508 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.83 mm 787 mum -2.41 m 1.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.05 cm -8.17 mm -2.43 m 477 keV 0 eV 2.01 cm 2.01 cm Target compt + 2 1.04 cm -7.54 mm -2.43 m 0 eV 88 keV 1.2 mm 2.13 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2515, Parent ID = 2509 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.04 cm -7.54 mm -2.43 m 389 keV 0 eV 0 fm 0 fm Target initStep + 1 1.04 cm -7.53 mm -2.43 m 0 eV 389 keV 215 mum 215 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2514, Parent ID = 2509 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.05 cm -8.17 mm -2.43 m 556 keV 0 eV 0 fm 0 fm Target initStep + 1 1.05 cm -8.19 mm -2.43 m 0 eV 556 keV 347 mum 347 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2507, Parent ID = 2454 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 781 mum 1.64 mm -2.41 m 11.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.18 mm 4.23 mm -2.41 m 4.4 MeV 6.76 MeV 3.64 mm 3.64 mm Target eBrem + 2 2.11 mm 3.81 mm -2.41 m 3.22 MeV 632 keV 553 mum 4.2 mm Target eBrem + 3 2.13 mm 4.14 mm -2.41 m 0 eV 3.22 MeV 2.53 mm 6.73 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2516, Parent ID = 2507 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.11 mm 3.81 mm -2.41 m 544 keV 0 eV 0 fm 0 fm Target initStep + 1 2.18 mm 5.02 mm -2.41 m 0 eV 88 keV 1.24 mm 1.24 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2517, Parent ID = 2516 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.18 mm 5.02 mm -2.41 m 456 keV 0 eV 0 fm 0 fm Target initStep + 1 2.18 mm 5.04 mm -2.41 m 0 eV 456 keV 266 mum 266 mum Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2453, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 146 mum 50.4 mum -2.44 m 3.35 MeV 0 eV 0 fm 0 fm Target initStep + 1 160 mum 56.4 mum -2.44 m 1.89 MeV 0 eV 237 mum 237 mum Target compt + 2 -934 mum -368 mum -2.44 m 287 keV 0 eV 2.84 mm 3.08 mm Target compt + 3 -923 mum -184 mum -2.44 m 201 keV 0 eV 199 mum 3.28 mm Target compt + 4 -1.71 mm 9.31 mum -2.44 m 0 eV 88 keV 822 mum 4.1 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2521, Parent ID = 2453 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.71 mm 9.31 mum -2.44 m 113 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.71 mm 11 mum -2.44 m 0 eV 113 keV 33.6 mum 33.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2520, Parent ID = 2453 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -923 mum -184 mum -2.44 m 86.6 keV 0 eV 0 fm 0 fm Target initStep + 1 -922 mum -183 mum -2.44 m 0 eV 86.6 keV 22 mum 22 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2519, Parent ID = 2453 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -934 mum -368 mum -2.44 m 1.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -790 mum -200 mum -2.44 m 153 keV 625 keV 524 mum 524 mum Target eBrem + 2 -793 mum -202 mum -2.44 m 0 eV 153 keV 54.3 mum 579 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2522, Parent ID = 2519 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -790 mum -200 mum -2.44 m 822 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.95 mm -3.43 mm -2.44 m 0 eV 88 keV 4.66 mm 4.66 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2523, Parent ID = 2522 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -3.95 mm -3.43 mm -2.44 m 734 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.03 mm -3.48 mm -2.44 m 98.7 keV 245 keV 218 mum 218 mum Target eBrem + 2 -4.03 mm -3.48 mm -2.44 m 0 eV 98.7 keV 27 mum 245 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2524, Parent ID = 2523 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.03 mm -3.48 mm -2.44 m 390 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.25 mm -2.46 mm -2.44 m 0 eV 88 keV 1.59 mm 1.59 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2525, Parent ID = 2524 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.25 mm -2.46 mm -2.44 m 302 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.25 mm -2.45 mm -2.44 m 0 eV 302 keV 150 mum 150 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2518, Parent ID = 2453 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 160 mum 56.4 mum -2.44 m 1.46 MeV 0 eV 0 fm 0 fm Target initStep + 1 209 mum 75.7 mum -2.44 m 0 eV 1.46 MeV 1.11 mm 1.11 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2452, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 141 mum 48.3 mum -2.44 m 1.18 MeV 0 eV 0 fm 0 fm Target initStep + 1 424 mum 120 mum -2.44 m 0 eV 88 keV 4.03 mm 4.03 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2526, Parent ID = 2452 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 424 mum 120 mum -2.44 m 1.09 MeV 0 eV 0 fm 0 fm Target initStep + 1 486 mum -63.9 mum -2.44 m 212 keV 514 keV 367 mum 367 mum Target eBrem + 2 481 mum -61.4 mum -2.44 m 0 eV 212 keV 89.4 mum 456 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2527, Parent ID = 2526 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 486 mum -63.9 mum -2.44 m 368 keV 0 eV 0 fm 0 fm Target initStep + 1 -24.2 mum -23.4 mum -2.44 m 284 keV 0 eV 512 mum 512 mum Target compt + 2 -101 mum -84.8 mum -2.44 m 0 eV 88 keV 121 mum 633 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2529, Parent ID = 2527 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -101 mum -84.8 mum -2.44 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 -104 mum -85 mum -2.44 m 0 eV 196 keV 79.4 mum 79.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2528, Parent ID = 2527 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -24.2 mum -23.4 mum -2.44 m 83.6 keV 0 eV 0 fm 0 fm Target initStep + 1 -25.1 mum -22.6 mum -2.44 m 0 eV 83.6 keV 20.8 mum 20.8 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2451, Parent ID = 2450 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 148 mum 39.1 mum -2.44 m 17.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 827 mum 190 mum -2.41 m 0 eV 88 keV 3.24 cm 3.24 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2530, Parent ID = 2451 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 827 mum 190 mum -2.41 m 17.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.31 mm 279 mum -2.41 m 10.9 MeV 1.88 MeV 1.49 mm 1.49 mm Target eBrem + 2 1.83 mm -185 mum -2.41 m 9.39 MeV 1.55 MeV 701 mum 2.19 mm Target eBrem + 3 1.82 mm -318 mum -2.41 m 7.67 MeV 916 keV 244 mum 2.43 mm Target eBrem + 4 2.03 mm -502 mum -2.41 m 4.84 MeV 2.48 MeV 333 mum 2.77 mm Target eBrem + 5 2.14 mm -1.41 mm -2.4 m 2.8 MeV 2.04 MeV 1.58 mm 4.34 mm Target eBrem + 6 1.83 mm -1.57 mm -2.4 m 1.18 MeV 979 keV 677 mum 5.02 mm Target eBrem + 7 1.87 mm -1.51 mm -2.4 m 0 eV 1.18 MeV 872 mum 5.89 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2534, Parent ID = 2530 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.83 mm -1.57 mm -2.4 m 641 keV 0 eV 0 fm 0 fm Target initStep + 1 3.24 mm 1.25 mm -2.4 m 554 keV 0 eV 3.72 mm 3.72 mm Target compt + 2 3.6 mm 6.41 mm -2.4 m 0 eV 88 keV 5.29 mm 9.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2536, Parent ID = 2534 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.6 mm 6.41 mm -2.4 m 466 keV 0 eV 0 fm 0 fm Target initStep + 1 3.61 mm 6.43 mm -2.4 m 0 eV 466 keV 275 mum 275 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2535, Parent ID = 2534 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.24 mm 1.25 mm -2.4 m 87.2 keV 0 eV 0 fm 0 fm Target initStep + 1 3.24 mm 1.25 mm -2.4 m 0 eV 87.2 keV 22.2 mum 22.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2533, Parent ID = 2530 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.03 mm -502 mum -2.41 m 352 keV 0 eV 0 fm 0 fm Target initStep + 1 3.53 mm -110 mum -2.4 m 0 eV 88 keV 2.13 mm 2.13 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2537, Parent ID = 2533 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.53 mm -110 mum -2.4 m 264 keV 0 eV 0 fm 0 fm Target initStep + 1 3.53 mm -107 mum -2.4 m 0 eV 264 keV 123 mum 123 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2532, Parent ID = 2530 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.82 mm -318 mum -2.41 m 798 keV 0 eV 0 fm 0 fm Target initStep + 1 5.62 mm -3.25 mm -2.4 m 798 keV 0 eV 7.51 mm 7.51 mm Target Transportation + 2 2.4 m -1.85 m 1.24 m 798 keV 0 eV 4.73 m 4.74 m Tracker Transportation + 3 2.91 m -2.24 m 2.02 m 798 keV 0 eV 1.01 m 5.75 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2531, Parent ID = 2530 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.31 mm 279 mum -2.41 m 4.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 3.12 mm -2.25 mm -2.4 m 2.28 MeV 0 eV 3.85 mm 3.85 mm Target compt + 2 5.44 mm -1.32 cm -2.4 m 2.28 MeV 0 eV 1.19 cm 1.57 cm Target Transportation + 3 50.8 cm -2.4 m -1.54 m 2.28 MeV 0 eV 2.59 m 2.6 m Tracker Transportation + 4 61.5 cm -2.91 m -1.36 m 2.28 MeV 0 eV 55.3 cm 3.15 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2538, Parent ID = 2531 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.12 mm -2.25 mm -2.4 m 2.03 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.95 mm -2.11 mm -2.4 m 776 keV 858 keV 790 mum 790 mum Target eBrem + 2 2.88 mm -2.1 mm -2.4 m 219 keV 557 keV 461 mum 1.25 mm Target eBrem + 3 2.88 mm -2.1 mm -2.4 m 0 eV 219 keV 94.1 mum 1.35 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2539, Parent ID = 2538 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.95 mm -2.11 mm -2.4 m 398 keV 0 eV 0 fm 0 fm Target initStep + 1 2.96 mm -2.12 mm -2.4 m 0 eV 88 keV 28.4 mum 28.4 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2540, Parent ID = 2539 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.96 mm -2.12 mm -2.4 m 310 keV 0 eV 0 fm 0 fm Target initStep + 1 2.97 mm -2.12 mm -2.4 m 0 eV 310 keV 156 mum 156 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2449, Parent ID = 2428 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 144 mum 35.3 mum -2.44 m 35.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -62.9 mum 115 mum -2.44 m 32.1 MeV 2.17 MeV 1.53 mm 1.53 mm Target eBrem + 2 -69.7 mum -87.4 mum -2.44 m 16.3 MeV 627 keV 502 mum 2.03 mm Target eBrem + 3 -1.11 mm 302 mum -2.44 m 11.6 MeV 3.06 MeV 1.87 mm 3.9 mm Target eBrem + 4 -1.51 mm -290 mum -2.44 m 5.6 MeV 2.03 MeV 933 mum 4.84 mm Target eBrem + 5 -1.42 mm -336 mum -2.44 m 3 MeV 212 keV 216 mum 5.05 mm Target eBrem + 6 -961 mum -314 mum -2.44 m 140 keV 1.33 MeV 1.08 mm 6.13 mm Target eBrem + 7 -960 mum -314 mum -2.44 m 0 eV 140 keV 47 mum 6.18 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2546, Parent ID = 2449 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -961 mum -314 mum -2.44 m 1.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.99 mm -574 mum -2.44 m 1.27 MeV 0 eV 1.04 cm 1.04 cm Target compt + 2 4.27 mm -2.59 mm -2.45 m 1.27 MeV 0 eV 5.7 mm 1.61 cm Target Transportation + 3 11.8 cm -18.2 cm -2.91 m 1.27 MeV 0 eV 50.7 cm 52.3 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2547, Parent ID = 2546 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.99 mm -574 mum -2.44 m 252 keV 0 eV 0 fm 0 fm Target initStep + 1 2.99 mm -569 mum -2.44 m 0 eV 252 keV 115 mum 115 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2545, Parent ID = 2449 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.42 mm -336 mum -2.44 m 2.39 MeV 0 eV 0 fm 0 fm Target initStep + 1 169 mum -2.34 cm -2.43 m 1.81 MeV 0 eV 2.55 cm 2.55 cm Target compt + 2 -408 mum -2.5 cm -2.42 m 1.81 MeV 0 eV 1.97 mm 2.74 cm Target Transportation + 3 -1.47 cm -6.49 cm -2.4 m 1.81 MeV 0 eV 4.88 cm 7.62 cm World Transportation + 4 -85 cm -2.4 m -98.8 cm 1.81 MeV 0 eV 2.85 m 2.93 m Tracker Transportation + 5 -1.03 m -2.91 m -67.9 cm 1.81 MeV 0 eV 62.3 cm 3.55 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2548, Parent ID = 2545 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 169 mum -2.34 cm -2.43 m 587 keV 0 eV 0 fm 0 fm Target initStep + 1 232 mum -2.34 cm -2.43 m 21.1 keV 273 keV 143 mum 143 mum Target eBrem + 2 232 mum -2.34 cm -2.43 m 0 eV 21.1 keV 2.23 mum 145 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2549, Parent ID = 2548 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 232 mum -2.34 cm -2.43 m 293 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.29 mm -2.36 cm -2.43 m 0 eV 88 keV 2.78 mm 2.78 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2550, Parent ID = 2549 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.29 mm -2.36 cm -2.43 m 205 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.29 mm -2.36 cm -2.43 m 0 eV 205 keV 85 mum 85 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2544, Parent ID = 2449 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.51 mm -290 mum -2.44 m 4.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -709 mum -2.64 mm -2.43 m 0 eV 0 eV 4.34 mm 4.34 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2552, Parent ID = 2544 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -709 mum -2.64 mm -2.43 m 1.57 MeV 0 eV 0 fm 0 fm Target initStep + 1 -600 mum -2.67 mm -2.43 m 0 eV 1.57 MeV 1.22 mm 1.22 mm Target eIoni + 2 -600 mum -2.67 mm -2.43 m 0 eV 0 eV 0 fm 1.22 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2554, Parent ID = 2552 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -600 mum -2.67 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.34 mm -1.63 cm -2.42 m 399 keV 0 eV 1.77 cm 1.77 cm Target compt + 2 -5.88 mm -1.67 cm -2.42 m 363 keV 0 eV 673 mum 1.83 cm Target compt + 3 -7.97 mm -2.06 cm -2.42 m 0 eV 88 keV 4.52 mm 2.29 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2557, Parent ID = 2554 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.97 mm -2.06 cm -2.42 m 275 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.97 mm -2.06 cm -2.42 m 0 eV 275 keV 132 mum 132 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2556, Parent ID = 2554 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.88 mm -1.67 cm -2.42 m 35.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.88 mm -1.67 cm -2.42 m 0 eV 35.3 keV 5.1 mum 5.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2555, Parent ID = 2554 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.34 mm -1.63 cm -2.42 m 112 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.34 mm -1.63 cm -2.42 m 0 eV 112 keV 33.3 mum 33.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2553, Parent ID = 2552 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -600 mum -2.67 mm -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -84 mum -1.18 mm -2.43 m 226 keV 0 eV 1.93 mm 1.93 mm Target compt + 2 597 mum -1.68 mm -2.43 m 0 eV 88 keV 845 mum 2.77 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2559, Parent ID = 2553 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 597 mum -1.68 mm -2.43 m 138 keV 0 eV 0 fm 0 fm Target initStep + 1 598 mum -1.68 mm -2.43 m 0 eV 138 keV 46.4 mum 46.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2558, Parent ID = 2553 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -84 mum -1.18 mm -2.43 m 285 keV 0 eV 0 fm 0 fm Target initStep + 1 -84.7 mum -1.18 mm -2.43 m 0 eV 285 keV 138 mum 138 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2551, Parent ID = 2544 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -709 mum -2.64 mm -2.43 m 1.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 -749 mum -2.7 mm -2.43 m 0 eV 1.42 MeV 1.08 mm 1.08 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2543, Parent ID = 2449 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.11 mm 302 mum -2.44 m 1.62 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.14 mm 21.1 mum -2.44 m 1.6 MeV 0 eV 436 mum 436 mum Target compt + 2 -1.35 mm -2.5 cm -2.41 m 1.6 MeV 0 eV 3.93 cm 3.98 cm Target Transportation + 3 -1.4 mm -2.99 cm -2.4 m 1.6 MeV 0 eV 7.77 mm 4.75 cm World Transportation + 4 -2.13 cm -2.4 m 47.4 cm 1.6 MeV 0 eV 3.73 m 3.77 m Tracker Transportation + 5 -2.56 cm -2.91 m 1.09 m 1.6 MeV 0 eV 80.2 cm 4.57 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2560, Parent ID = 2543 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.14 mm 21.1 mum -2.44 m 16.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.14 mm 21 mum -2.44 m 0 eV 16.8 keV 1.56 mum 1.56 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2542, Parent ID = 2449 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -69.7 mum -87.4 mum -2.44 m 15.1 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.68 mm -1.51 mm -2.42 m 12.4 MeV 0 eV 1.74 cm 1.74 cm Target compt + 2 -5.76 mm -1.64 mm -2.41 m 0 eV 0 eV 6.71 mm 2.41 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2563, Parent ID = 2542 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.76 mm -1.64 mm -2.41 m 1.12 MeV 0 eV 0 fm 0 fm Target initStep + 1 -5.77 mm -1.61 mm -2.41 m 0 eV 1.12 MeV 833 mum 833 mum Target eIoni + 2 -5.77 mm -1.61 mm -2.41 m 0 eV 0 eV 0 fm 833 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2565, Parent ID = 2563 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.77 mm -1.61 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.22 mm -5.29 mm -2.42 m 0 eV 88 keV 8.31 mm 8.31 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2566, Parent ID = 2565 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.22 mm -5.29 mm -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.23 mm -5.28 mm -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2564, Parent ID = 2563 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.77 mm -1.61 mm -2.41 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.7 cm 4.28 mm -2.41 m 218 keV 0 eV 1.33 cm 1.33 cm Target compt + 2 -1.69 cm 4.29 mm -2.41 m 0 eV 88 keV 51.7 mum 1.34 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2568, Parent ID = 2564 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.69 cm 4.29 mm -2.41 m 130 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.69 cm 4.29 mm -2.41 m 0 eV 130 keV 41.7 mum 41.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2567, Parent ID = 2564 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.7 cm 4.28 mm -2.41 m 293 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.7 cm 4.28 mm -2.41 m 0 eV 293 keV 144 mum 144 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2562, Parent ID = 2542 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.76 mm -1.64 mm -2.41 m 10.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 -6.3 mm -3.28 mm -2.41 m 6.35 MeV 2.75 MeV 2.32 mm 2.32 mm Target eBrem + 2 -6.58 mm -2.44 mm -2.41 m 2.96 MeV 2.63 MeV 1.21 mm 3.54 mm Target eBrem + 3 -6.85 mm -2.57 mm -2.41 m 0 eV 2.96 MeV 2.33 mm 5.86 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2570, Parent ID = 2562 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.58 mm -2.44 mm -2.41 m 763 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.31 cm -4.85 mm -2.41 m 272 keV 0 eV 7.01 mm 7.01 mm Target compt + 2 -1.23 cm -6.19 mm -2.41 m 0 eV 88 keV 1.59 mm 8.6 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2572, Parent ID = 2570 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.23 cm -6.19 mm -2.41 m 184 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.23 cm -6.19 mm -2.41 m 0 eV 184 keV 72.1 mum 72.1 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2571, Parent ID = 2570 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.31 cm -4.85 mm -2.41 m 491 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.31 cm -4.85 mm -2.41 m 0 eV 491 keV 295 mum 295 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2569, Parent ID = 2562 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.3 mm -3.28 mm -2.41 m 1.13 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.02 cm -4.3 mm -2.4 m 1.13 MeV 0 eV 1.42 cm 1.42 cm Target Transportation + 2 -23.8 cm -6.44 cm -1.6 m 1.13 MeV 0 eV 83.4 cm 84.8 cm Tracker Transportation + 3 -24 cm -6.49 cm -1.59 m 1.13 MeV 0 eV 7.11 mm 85.5 cm Chamber Transportation + 4 -46.6 cm -12.5 cm -80 cm 1.13 MeV 0 eV 82.7 cm 1.68 m Tracker Transportation + 5 -52.3 cm -14 cm -60 cm 1.13 MeV 0 eV 20.8 cm 1.89 m Chamber Transportation + 6 -59 cm -15.7 cm -36.6 cm 380 keV 0 eV 24.4 cm 2.13 m Tracker compt + 7 -2.4 m 62.2 cm -60.4 cm 380 keV 0 eV 1.99 m 4.12 m Tracker Transportation + 8 -2.91 m 84.2 cm -67.1 cm 380 keV 0 eV 55.9 cm 4.68 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2573, Parent ID = 2569 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -59 cm -15.7 cm -36.6 cm 751 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -57.8 cm -23.2 cm -0.0341 fm 684 keV 66.8 keV 39.9 cm 39.9 cm Tracker Transportation + 2 -62.8 cm -25.4 cm 10.7 cm 580 keV 104 keV 18.9 cm 58.8 cm Chamber msc + 3 -65.9 cm -31 cm 6.66 cm 478 keV 102 keV 19 cm 77.8 cm Chamber msc + 4 -64.2 cm -30.2 cm 1.15 cm 360 keV 118 keV 19 cm 96.7 cm Chamber msc + 5 -69.6 cm -30.2 cm 1.64 cm 255 keV 105 keV 19 cm 1.16 m Chamber msc + 6 -68.3 cm -31.3 cm 1.75 mm 122 keV 133 keV 19 cm 1.35 m Chamber msc + 7 -68.1 cm -30.9 cm 6.96 mm 0 eV 122 keV 6.88 cm 1.42 m Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2561, Parent ID = 2542 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.68 mm -1.51 mm -2.42 m 2.75 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.73 mm -1.63 mm -2.42 m 2.24 MeV 172 keV 212 mum 212 mum Target eBrem + 2 -4.86 mm -1.71 mm -2.42 m 1.29 MeV 135 keV 158 mum 370 mum Target eBrem + 3 -4.87 mm -1.69 mm -2.42 m 0 eV 1.29 MeV 964 mum 1.33 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2575, Parent ID = 2561 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.86 mm -1.71 mm -2.42 m 817 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.2 mm 489 mum -2.43 m 440 keV 0 eV 1.36 cm 1.36 cm Target compt + 2 -6.13 mm -1.71 mm -2.44 m 0 eV 88 keV 2.77 mm 1.64 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2577, Parent ID = 2575 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.13 mm -1.71 mm -2.44 m 352 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.13 mm -1.72 mm -2.44 m 0 eV 352 keV 187 mum 187 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2576, Parent ID = 2575 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.2 mm 489 mum -2.43 m 377 keV 0 eV 0 fm 0 fm Target initStep + 1 -6.2 mm 498 mum -2.43 m 0 eV 377 keV 205 mum 205 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2574, Parent ID = 2561 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.73 mm -1.63 mm -2.42 m 342 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.4 mm -2.46 mm -2.42 m 0 eV 88 keV 1.08 mm 1.08 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2578, Parent ID = 2574 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -5.4 mm -2.46 mm -2.42 m 254 keV 0 eV 0 fm 0 fm Target initStep + 1 -5.4 mm -2.47 mm -2.42 m 0 eV 254 keV 116 mum 116 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2541, Parent ID = 2449 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -62.9 mum 115 mum -2.44 m 1.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -667 mum -5.45 mm -2.42 m 0 eV 88 keV 1.9 cm 1.9 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2579, Parent ID = 2541 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -667 mum -5.45 mm -2.42 m 1.51 MeV 0 eV 0 fm 0 fm Target initStep + 1 -502 mum -5.39 mm -2.42 m 648 keV 401 keV 402 mum 402 mum Target eBrem + 2 -530 mum -5.38 mm -2.42 m 0 eV 648 keV 423 mum 824 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2580, Parent ID = 2579 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -502 mum -5.39 mm -2.42 m 466 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm -5 mm -2.42 m 370 keV 0 eV 1.21 mm 1.21 mm Target compt + 2 -1.69 mm -4.81 mm -2.42 m 0 eV 88 keV 375 mum 1.58 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2582, Parent ID = 2580 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.69 mm -4.81 mm -2.42 m 282 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.69 mm -4.81 mm -2.42 m 0 eV 282 keV 137 mum 137 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2581, Parent ID = 2580 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 mm -5 mm -2.42 m 95.4 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm -5 mm -2.42 m 0 eV 95.4 keV 25.6 mum 25.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 105, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 785 nm 739 nm -2.45 m 196 MeV 0 eV 0 fm 0 fm Target initStep + 1 -21.9 mum 15.1 mum -2.44 m 0 eV 0 eV 9.51 mm 9.51 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2584, Parent ID = 105 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -21.9 mum 15.1 mum -2.44 m 123 MeV 0 eV 0 fm 0 fm Target initStep + 1 -24.8 mum 20.1 mum -2.44 m 122 MeV 262 keV 243 mum 243 mum Target eBrem + 2 -57 mum -1.41 mum -2.44 m 116 MeV 677 keV 404 mum 647 mum Target eBrem + 3 -94.7 mum -43.6 mum -2.44 m 109 MeV 1.2 MeV 941 mum 1.59 mm Target eBrem + 4 -95.4 mum -45.7 mum -2.44 m 108 MeV 54.7 keV 39 mum 1.63 mm Target eBrem + 5 -96.2 mum -46.9 mum -2.44 m 105 MeV 36.6 keV 37.4 mum 1.66 mm Target eBrem + 6 -117 mum -70.3 mum -2.44 m 102 MeV 470 keV 415 mum 2.08 mm Target eBrem + 7 -53.2 mum -146 mum -2.43 m 98 MeV 2.14 MeV 1.53 mm 3.61 mm Target eBrem + 8 -6.28 mum -210 mum -2.43 m 92.6 MeV 510 keV 396 mum 4.01 mm Target eBrem + 9 15.5 mum -248 mum -2.43 m 83.4 MeV 312 keV 333 mum 4.34 mm Target eBrem + 10 226 mum -410 mum -2.43 m 78.2 MeV 4.75 MeV 2.11 mm 6.45 mm Target eBrem + 11 243 mum -430 mum -2.43 m 77.6 MeV 195 keV 164 mum 6.61 mm Target eBrem + 12 324 mum -592 mum -2.43 m 64.7 MeV 1.26 MeV 1.08 mm 7.7 mm Target eBrem + 13 263 mum -626 mum -2.43 m 35.3 MeV 875 keV 819 mum 8.52 mm Target eBrem + 14 326 mum -537 mum -2.43 m 26.9 MeV 1.01 MeV 915 mum 9.43 mm Target eBrem + 15 265 mum -595 mum -2.43 m 25.8 MeV 457 keV 321 mum 9.75 mm Target eBrem + 16 246 mum -1.06 mm -2.43 m 22.9 MeV 2.25 MeV 1.86 mm 1.16 cm Target eBrem + 17 168 mum -1.07 mm -2.43 m 14.7 MeV 271 keV 266 mum 1.19 cm Target eBrem + 18 105 mum -1.05 mm -2.43 m 9.44 MeV 574 keV 294 mum 1.22 cm Target eBrem + 19 298 mum -528 mum -2.42 m 7.87 MeV 1.57 MeV 1.17 mm 1.33 cm Target eIoni + 20 2.94 mm -1.13 mm -2.42 m 2.05 MeV 5.82 MeV 3.27 mm 1.66 cm Target eBrem + 21 3.05 mm -1.1 mm -2.42 m 0 eV 2.05 MeV 1.63 mm 1.82 cm Target eIoni + 22 3.05 mm -1.1 mm -2.42 m 0 eV 0 eV 0 fm 1.82 cm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2604, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.05 mm -1.1 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -953 mum -5.48 mm -2.42 m 326 keV 0 eV 6.82 mm 6.82 mm Target compt + 2 -956 mum -5.49 mm -2.42 m 178 keV 0 eV 11.6 mum 6.83 mm Target compt + 3 -1.08 mm -5.5 mm -2.42 m 0 eV 88 keV 280 mum 7.11 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2607, Parent ID = 2604 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.08 mm -5.5 mm -2.42 m 90.2 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.08 mm -5.5 mm -2.42 m 0 eV 90.2 keV 23.5 mum 23.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2606, Parent ID = 2604 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -956 mum -5.49 mm -2.42 m 148 keV 0 eV 0 fm 0 fm Target initStep + 1 -956 mum -5.49 mm -2.42 m 0 eV 148 keV 51.6 mum 51.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2605, Parent ID = 2604 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -953 mum -5.48 mm -2.42 m 185 keV 0 eV 0 fm 0 fm Target initStep + 1 -955 mum -5.48 mm -2.42 m 0 eV 185 keV 72.6 mum 72.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2603, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.05 mm -1.1 mm -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.2 mm 162 mum -2.42 m 0 eV 88 keV 1.96 mm 1.96 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2608, Parent ID = 2603 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.2 mm 162 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.21 mm 167 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2602, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 105 mum -1.05 mm -2.43 m 4.65 MeV 0 eV 0 fm 0 fm Target initStep + 1 -2.11 mm 1.41 mm -2.4 m 4.65 MeV 0 eV 2.56 cm 2.56 cm Target Transportation + 2 -7.2 cm 7.9 cm -1.6 m 4.65 MeV 0 eV 80.7 cm 83.2 cm Tracker Transportation + 3 -8.94 cm 9.83 cm -1.4 m 4.65 MeV 0 eV 20.2 cm 1.03 m Chamber Transportation + 4 -14.2 cm 15.7 cm -80 cm 4.65 MeV 0 eV 60.5 cm 1.64 m Tracker Transportation + 5 -15.9 cm 17.6 cm -60 cm 4.65 MeV 0 eV 20.2 cm 1.84 m Chamber Transportation + 6 -21.2 cm 23.4 cm -0.114 fm 4.65 MeV 0 eV 60.5 cm 2.45 m Tracker Transportation + 7 -22.9 cm 25.3 cm 20 cm 4.65 MeV 0 eV 20.2 cm 2.65 m Chamber Transportation + 8 -28.2 cm 31.2 cm 80 cm 4.65 MeV 0 eV 60.5 cm 3.25 m Tracker Transportation + 9 -29.9 cm 33.1 cm 1 m 4.65 MeV 0 eV 20.2 cm 3.45 m Chamber Transportation + 10 -35.1 cm 38.9 cm 1.6 m 4.65 MeV 0 eV 60.5 cm 4.06 m Tracker Transportation + 11 -36.9 cm 40.9 cm 1.8 m 4.65 MeV 0 eV 20.2 cm 4.26 m Chamber Transportation + 12 -42.1 cm 46.7 cm 2.4 m 4.65 MeV 0 eV 60.5 cm 4.87 m Tracker Transportation + 13 -46.6 cm 51.6 cm 2.91 m 4.65 MeV 0 eV 51.4 cm 5.38 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2601, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 168 mum -1.07 mm -2.43 m 8.01 MeV 0 eV 0 fm 0 fm Target initStep + 1 -475 mum -1.12 mm -2.42 m 0 eV 0 eV 8 mm 8 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2610, Parent ID = 2601 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -475 mum -1.12 mm -2.42 m 4.68 MeV 0 eV 0 fm 0 fm Target initStep + 1 -473 mum -1.11 mm -2.42 m 4.14 MeV 10.7 keV 13.3 mum 13.3 mum Target eBrem + 2 -303 mum -613 mum -2.42 m 2.22 MeV 1.45 MeV 1.17 mm 1.18 mm Target eBrem + 3 -403 mum -604 mum -2.42 m 446 keV 80.3 keV 101 mum 1.28 mm Target eBrem + 4 -418 mum -582 mum -2.42 m 0 eV 446 keV 258 mum 1.54 mm Target eIoni + 5 -418 mum -582 mum -2.42 m 0 eV 0 eV 0 fm 1.54 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2615, Parent ID = 2610 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -418 mum -582 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 913 mum -2.49 mm -2.42 m 459 keV 0 eV 2.55 mm 2.55 mm Target compt + 2 3.52 mm -1.05 cm -2.42 m 0 eV 88 keV 8.4 mm 1.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2617, Parent ID = 2615 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.52 mm -1.05 cm -2.42 m 371 keV 0 eV 0 fm 0 fm Target initStep + 1 3.53 mm -1.05 cm -2.42 m 0 eV 371 keV 201 mum 201 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2616, Parent ID = 2615 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 913 mum -2.49 mm -2.42 m 52.4 keV 0 eV 0 fm 0 fm Target initStep + 1 913 mum -2.49 mm -2.42 m 0 eV 52.4 keV 9.69 mum 9.69 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2614, Parent ID = 2610 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -418 mum -582 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -702 mum -174 mum -2.42 m 384 keV 0 eV 546 mum 546 mum Target compt + 2 -433 mum 3.02 mm -2.42 m 0 eV 88 keV 7.59 mm 8.14 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2619, Parent ID = 2614 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -433 mum 3.02 mm -2.42 m 296 keV 0 eV 0 fm 0 fm Target initStep + 1 -430 mum 3.01 mm -2.42 m 0 eV 296 keV 146 mum 146 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2618, Parent ID = 2614 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -702 mum -174 mum -2.42 m 127 keV 0 eV 0 fm 0 fm Target initStep + 1 -704 mum -173 mum -2.42 m 0 eV 127 keV 40.2 mum 40.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2613, Parent ID = 2610 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -403 mum -604 mum -2.42 m 1.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.73 cm 2.38 cm -2.41 m 1.2 MeV 0 eV 3.01 cm 3.01 cm Target compt + 2 -1.76 cm 2.5 cm -2.41 m 1.2 MeV 0 eV 1.2 mm 3.13 cm Target Transportation + 3 -59.2 cm 2.91 m -2.83 m 1.2 MeV 0 eV 2.97 m 3 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2620, Parent ID = 2613 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.73 cm 2.38 cm -2.41 m 500 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.73 cm 2.38 cm -2.41 m 0 eV 500 keV 302 mum 302 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2612, Parent ID = 2610 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -303 mum -613 mum -2.42 m 461 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.4 cm 2.23 mm -2.41 m 398 keV 0 eV 1.5 cm 1.5 cm Target compt + 2 -1.43 cm 2.61 mm -2.41 m 0 eV 88 keV 685 mum 1.57 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2622, Parent ID = 2612 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.43 cm 2.61 mm -2.41 m 310 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.43 cm 2.61 mm -2.41 m 0 eV 310 keV 156 mum 156 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2621, Parent ID = 2612 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.4 cm 2.23 mm -2.41 m 62.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.4 cm 2.23 mm -2.41 m 0 eV 62.8 keV 13 mum 13 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2611, Parent ID = 2610 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -473 mum -1.11 mm -2.42 m 528 keV 0 eV 0 fm 0 fm Target initStep + 1 -310 mum 38.7 mum -2.42 m 0 eV 88 keV 1.16 mm 1.16 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2623, Parent ID = 2611 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -310 mum 38.7 mum -2.42 m 440 keV 0 eV 0 fm 0 fm Target initStep + 1 -307 mum 55.6 mum -2.42 m 0 eV 440 keV 254 mum 254 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2609, Parent ID = 2601 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -475 mum -1.12 mm -2.42 m 2.31 MeV 0 eV 0 fm 0 fm Target initStep + 1 -742 mum -1.18 mm -2.42 m 1.44 MeV 440 keV 423 mum 423 mum Target eBrem + 2 -703 mum -1.09 mm -2.42 m 0 eV 1.44 MeV 1.09 mm 1.51 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2624, Parent ID = 2609 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -742 mum -1.18 mm -2.42 m 430 keV 0 eV 0 fm 0 fm Target initStep + 1 564 mum 1.48 mm -2.42 m 0 eV 88 keV 2.99 mm 2.99 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2625, Parent ID = 2624 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 564 mum 1.48 mm -2.42 m 342 keV 0 eV 0 fm 0 fm Target initStep + 1 563 mum 1.49 mm -2.42 m 0 eV 342 keV 179 mum 179 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2600, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 246 mum -1.06 mm -2.43 m 641 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.89 mm -2.62 mm -2.41 m 465 keV 0 eV 1.49 cm 1.49 cm Target compt + 2 3.87 mm -6.6 mm -2.4 m 462 keV 0 eV 1.3 cm 2.8 cm Target compt + 3 4.7 mm -7.1 mm -2.4 m 462 keV 0 eV 1.37 mm 2.94 cm Target Transportation + 4 2.4 m -1.46 m 42.4 cm 462 keV 0 eV 3.98 m 4.01 m Tracker Transportation + 5 2.91 m -1.77 m 1.03 m 462 keV 0 eV 84.7 cm 4.85 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2627, Parent ID = 2600 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.87 mm -6.6 mm -2.4 m 3.91 keV 0 eV 0 fm 0 fm Target initStep + 1 3.87 mm -6.6 mm -2.4 m 0 eV 3.91 keV 181 nm 181 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2626, Parent ID = 2600 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.89 mm -2.62 mm -2.41 m 175 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.89 mm -2.62 mm -2.41 m 0 eV 175 keV 67 mum 67 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2599, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 265 mum -595 mum -2.43 m 628 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.4 mm -1.8 mm -2.42 m 0 eV 88 keV 7.95 mm 7.95 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2628, Parent ID = 2599 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.4 mm -1.8 mm -2.42 m 540 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.41 mm -1.8 mm -2.42 m 0 eV 540 keV 334 mum 334 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2598, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 326 mum -537 mum -2.43 m 7.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 -3.44 mm -7.71 mm -2.4 m 7.34 MeV 0 eV 2.92 cm 2.92 cm Target Transportation + 2 -11.1 cm -21.3 cm -1.6 m 7.34 MeV 0 eV 83.3 cm 86.2 cm Tracker Transportation + 3 -12.5 cm -24 cm -1.49 m 7.34 MeV 0 eV 11.1 cm 97.3 cm Chamber Transportation + 4 -21.9 cm -41.8 cm -80 cm 7.34 MeV 0 eV 72.2 cm 1.69 m Tracker Transportation + 5 -24.6 cm -46.9 cm -60 cm 7.34 MeV 0 eV 20.8 cm 1.9 m Chamber Transportation + 6 -32.6 cm -62.3 cm 0 fm 7.34 MeV 0 eV 62.5 cm 2.53 m Tracker Transportation + 7 -34.2 cm -65.3 cm 11.8 cm 0 eV 0 eV 12.3 cm 2.65 m Chamber conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2630, Parent ID = 2598 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -34.2 cm -65.3 cm 11.8 cm 1.65 MeV 0 eV 0 fm 0 fm Chamber initStep + 1 -33.5 cm -67.2 cm 17.1 cm 1.56 MeV 86.8 keV 5.79 cm 5.79 cm Chamber eBrem + 2 -35.2 cm -72.3 cm 20 cm 1.53 MeV 34.2 keV 6.46 cm 12.3 cm Chamber Transportation + 3 -36.9 cm -81 cm 23.5 cm 1.49 MeV 14.2 keV 9.58 cm 21.8 cm Tracker eIoni + 4 -43.3 cm -1.11 m 30.3 cm 1.41 MeV 64.9 keV 31.7 cm 53.5 cm Tracker eIoni + 5 -55.5 cm -1.31 m 33.8 cm 1.35 MeV 45.2 keV 23.9 cm 77.5 cm Tracker eIoni + 6 -70.9 cm -1.85 m 46 cm 1.24 MeV 107 keV 59.3 cm 1.37 m Tracker eIoni + 7 -80.9 cm -2.16 m 38.2 cm 1.15 MeV 60.1 keV 34.3 cm 1.71 m Tracker eIoni + 8 -97.2 cm -2.4 m 26.1 cm 1.1 MeV 53.5 keV 31.9 cm 2.03 m Tracker Transportation + 9 -1.18 m -2.91 m 24.6 cm 1.01 MeV 87 keV 57.9 cm 2.61 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2636, Parent ID = 2630 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -80.9 cm -2.16 m 38.2 cm 25.2 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -80.4 cm -2.17 m 38 cm 0 eV 25.2 keV 1.15 cm 1.15 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2635, Parent ID = 2630 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -70.9 cm -1.85 m 46 cm 11.7 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -71 cm -1.85 m 46.1 cm 0 eV 11.7 keV 2.98 mm 2.98 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2634, Parent ID = 2630 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -55.5 cm -1.31 m 33.8 cm 8.92 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -55.5 cm -1.31 m 33.8 cm 0 eV 8.92 keV 1.86 mm 1.86 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2633, Parent ID = 2630 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -43.3 cm -1.11 m 30.3 cm 11.7 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -43.5 cm -1.11 m 30.4 cm 0 eV 11.7 keV 3 mm 3 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2632, Parent ID = 2630 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -36.9 cm -81 cm 23.5 cm 29.4 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -37.5 cm -80.8 cm 23.9 cm 0 eV 29.4 keV 1.53 cm 1.53 cm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2631, Parent ID = 2630 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -33.5 cm -67.2 cm 17.1 cm 3.16 keV 0 eV 0 fm 0 fm Chamber initStep + 1 -33.9 cm -68.6 cm 18.3 cm 0 eV 1.15 keV 1.87 cm 1.87 cm Chamber phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2637, Parent ID = 2631 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -33.9 cm -68.6 cm 18.3 cm 2.01 keV 0 eV 0 fm 0 fm Chamber initStep + 1 -33.9 cm -68.6 cm 18.3 cm 0 eV 2.01 keV 98.3 mum 98.3 mum Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2629, Parent ID = 2598 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -34.2 cm -65.3 cm 11.8 cm 4.66 MeV 0 eV 0 fm 0 fm Chamber initStep + 1 -35.8 cm -66.3 cm 20 cm 4.61 MeV 48.2 keV 8.6 cm 8.6 cm Chamber Transportation + 2 -42.4 cm -63.8 cm 33.9 cm 4.57 MeV 30.7 keV 15.6 cm 24.2 cm Tracker eIoni + 3 -63.3 cm -53.2 cm 80 cm 4.48 MeV 91.4 keV 52 cm 76.2 cm Tracker Transportation + 4 -69.6 cm -46.2 cm 89.4 cm 4.34 MeV 53.8 keV 13.3 cm 89.4 cm Chamber eIoni + 5 -76.7 cm -39.7 cm 1 m 4.22 MeV 120 keV 14.8 cm 1.04 m Chamber Transportation + 6 -1.31 m -39.9 cm 1.6 m 4.08 MeV 142 keV 81.9 cm 1.86 m Tracker Transportation + 7 -1.5 m -35.4 cm 1.8 m 3.92 MeV 160 keV 30 cm 2.16 m Chamber Transportation + 8 -1.56 m -1.14 cm 2.4 m 3.79 MeV 126 keV 69.9 cm 2.86 m Tracker Transportation + 9 -1.63 m 12.4 cm 2.91 m 3.71 MeV 77.3 keV 53.5 cm 3.4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2639, Parent ID = 2629 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -69.6 cm -46.2 cm 89.4 cm 86 keV 0 eV 0 fm 0 fm Chamber initStep + 1 -69.8 cm -45.9 cm 89.2 cm 0 eV 86 keV 3.87 cm 3.87 cm Chamber eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2638, Parent ID = 2629 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -42.4 cm -63.8 cm 33.9 cm 11.8 keV 0 eV 0 fm 0 fm Tracker initStep + 1 -42.3 cm -63.7 cm 33.9 cm 0 eV 11.8 keV 3.02 mm 3.02 mm Tracker eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2597, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 263 mum -626 mum -2.43 m 28.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 282 mum -649 mum -2.43 m 0 eV 0 eV 1.19 mm 1.19 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2641, Parent ID = 2597 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 282 mum -649 mum -2.43 m 15.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 289 mum -588 mum -2.43 m 11.7 MeV 672 keV 415 mum 415 mum Target eBrem + 2 481 mum -679 mum -2.43 m 1.47 MeV 547 keV 471 mum 886 mum Target eBrem + 3 574 mum -738 mum -2.43 m 0 eV 1.47 MeV 1.13 mm 2.02 mm Target eIoni + 4 574 mum -738 mum -2.43 m 0 eV 0 eV 0 fm 2.02 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2645, Parent ID = 2641 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 574 mum -738 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.57 cm 4.51 mm -2.41 m 0 eV 88 keV 2.18 cm 2.18 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2646, Parent ID = 2645 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.57 cm 4.51 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.57 cm 4.5 mm -2.41 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2644, Parent ID = 2641 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 574 mum -738 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm -8.62 mm -2.45 m 511 keV 0 eV 3.28 cm 3.28 cm Target Transportation + 2 57.9 cm -18.7 cm -2.91 m 511 keV 0 eV 74.4 cm 77.7 cm OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2643, Parent ID = 2641 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 481 mum -679 mum -2.43 m 9.64 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm -1.37 cm -2.4 m 9.64 MeV 0 eV 3.7 cm 3.7 cm Target Transportation + 2 2.75 cm -1.5 cm -2.4 m 9.64 MeV 0 eV 3.79 mm 4.07 cm World Transportation + 3 2.4 m -1.27 m -3.93 cm 9.64 MeV 0 eV 3.58 m 3.62 m Tracker Transportation + 4 2.91 m -1.54 m 46.8 cm 9.64 MeV 0 eV 76.9 cm 4.39 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2642, Parent ID = 2641 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 289 mum -588 mum -2.43 m 3.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.24 mm -658 mum -2.42 m 2.57 MeV 0 eV 3.45 mm 3.45 mm Target compt + 2 1.47 cm 2.78 mm -2.4 m 346 keV 0 eV 2.63 cm 2.98 cm Target compt + 3 1.48 cm 5.83 mm -2.4 m 0 eV 88 keV 3.49 mm 3.32 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2649, Parent ID = 2642 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.48 cm 5.83 mm -2.4 m 258 keV 0 eV 0 fm 0 fm Target initStep + 1 1.48 cm 5.83 mm -2.4 m 0 eV 258 keV 119 mum 119 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2648, Parent ID = 2642 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.47 cm 2.78 mm -2.4 m 2.23 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.47 cm 2.76 mm -2.4 m 410 keV 205 keV 213 mum 213 mum Target eBrem + 2 1.47 cm 2.75 mm -2.4 m 0 eV 410 keV 230 mum 443 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2650, Parent ID = 2648 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.47 cm 2.76 mm -2.4 m 1.62 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.42 cm 1.7 mm -2.4 m 1.62 MeV 0 eV 1.88 mm 1.88 mm Target Transportation + 2 -1.01 m -2.4 m 96.4 cm 1.62 MeV 0 eV 4.26 m 4.26 m Tracker Transportation + 3 -1.23 m -2.91 m 1.68 m 1.62 MeV 0 eV 90.4 cm 5.16 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2647, Parent ID = 2642 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.24 mm -658 mum -2.42 m 763 keV 0 eV 0 fm 0 fm Target initStep + 1 1.23 mm -671 mum -2.42 m 0 eV 763 keV 520 mum 520 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2640, Parent ID = 2597 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 282 mum -649 mum -2.43 m 11.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 494 mum -853 mum -2.43 m 9.96 MeV 965 keV 773 mum 773 mum Target eBrem + 2 810 mum -301 mum -2.43 m 6.08 MeV 3.41 MeV 2.45 mm 3.22 mm Target eBrem + 3 1.07 mm 308 mum -2.43 m 276 keV 900 keV 819 mum 4.04 mm Target eBrem + 4 1.07 mm 310 mum -2.43 m 0 eV 276 keV 132 mum 4.17 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2653, Parent ID = 2640 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.07 mm 308 mum -2.43 m 4.9 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.27 mm 2.43 mm -2.44 m 0 eV 0 eV 1.5 cm 1.5 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2655, Parent ID = 2653 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.27 mm 2.43 mm -2.44 m 3.65 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.37 mm 2.57 mm -2.44 m 0 eV 3.65 MeV 2.91 mm 2.91 mm Target eIoni + 2 -1.37 mm 2.57 mm -2.44 m 0 eV 0 eV 0 fm 2.91 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2657, Parent ID = 2655 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 mm 2.57 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.34 mm 3.98 mm -2.45 m 0 eV 88 keV 1.79 mm 1.79 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2658, Parent ID = 2657 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.34 mm 3.98 mm -2.45 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.36 mm 3.97 mm -2.45 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2656, Parent ID = 2655 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.37 mm 2.57 mm -2.44 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 mm 2.17 mm -2.44 m 448 keV 0 eV 502 mum 502 mum Target compt + 2 1.7 mm 820 mum -2.44 m 400 keV 0 eV 3.68 mm 4.18 mm Target compt + 3 2.09 mm 839 mum -2.44 m 397 keV 0 eV 411 mum 4.59 mm Target compt + 4 8.79 mm 141 mum -2.44 m 0 eV 88 keV 7.08 mm 1.17 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2662, Parent ID = 2656 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.79 mm 141 mum -2.44 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 8.8 mm 135 mum -2.44 m 0 eV 309 keV 155 mum 155 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2661, Parent ID = 2656 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.09 mm 839 mum -2.44 m 3.39 keV 0 eV 0 fm 0 fm Target initStep + 1 2.09 mm 839 mum -2.44 m 0 eV 3.39 keV 149 nm 149 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2660, Parent ID = 2656 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.7 mm 820 mum -2.44 m 47.9 keV 0 eV 0 fm 0 fm Target initStep + 1 1.7 mm 819 mum -2.44 m 0 eV 47.9 keV 8.35 mum 8.35 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2659, Parent ID = 2656 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.1 mm 2.17 mm -2.44 m 62.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.1 mm 2.17 mm -2.44 m 0 eV 62.8 keV 13 mum 13 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2654, Parent ID = 2653 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.27 mm 2.43 mm -2.44 m 225 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.27 mm 2.42 mm -2.44 m 0 eV 225 keV 97.7 mum 97.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2652, Parent ID = 2640 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 810 mum -301 mum -2.43 m 473 keV 0 eV 0 fm 0 fm Target initStep + 1 1.29 mm -2.24 mm -2.43 m 0 eV 88 keV 4.89 mm 4.89 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2663, Parent ID = 2652 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.29 mm -2.24 mm -2.43 m 385 keV 0 eV 0 fm 0 fm Target initStep + 1 1.3 mm -2.25 mm -2.43 m 0 eV 385 keV 212 mum 212 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2651, Parent ID = 2640 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 494 mum -853 mum -2.43 m 992 keV 0 eV 0 fm 0 fm Target initStep + 1 480 mum -720 mum -2.43 m 216 keV 0 eV 133 mum 133 mum Target compt + 2 51.2 mum -1.71 mm -2.43 m 0 eV 88 keV 1.12 mm 1.25 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2665, Parent ID = 2651 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 51.2 mum -1.71 mm -2.43 m 128 keV 0 eV 0 fm 0 fm Target initStep + 1 51.1 mum -1.71 mm -2.43 m 0 eV 128 keV 41 mum 41 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2664, Parent ID = 2651 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 480 mum -720 mum -2.43 m 776 keV 0 eV 0 fm 0 fm Target initStep + 1 479 mum -681 mum -2.43 m 0 eV 776 keV 530 mum 530 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2596, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 324 mum -592 mum -2.43 m 11.6 MeV 0 eV 0 fm 0 fm Target initStep + 1 -432 mum -3.33 mm -2.4 m 11.6 MeV 0 eV 2.99 cm 2.99 cm Target Transportation + 2 -2.08 cm -7.7 cm -1.6 m 11.6 MeV 0 eV 80.4 cm 83.4 cm Tracker Transportation + 3 -2.59 cm -9.55 cm -1.4 m 11.6 MeV 0 eV 20.1 cm 1.03 m Chamber Transportation + 4 -4.11 cm -15.1 cm -80 cm 11.6 MeV 0 eV 60.3 cm 1.64 m Tracker Transportation + 5 -4.62 cm -16.9 cm -60 cm 11.6 MeV 0 eV 20.1 cm 1.84 m Chamber Transportation + 6 -6.14 cm -22.4 cm -0.114 fm 11.6 MeV 0 eV 60.3 cm 2.44 m Tracker Transportation + 7 -6.65 cm -24.3 cm 20 cm 11.6 MeV 0 eV 20.1 cm 2.64 m Chamber Transportation + 8 -8.18 cm -29.8 cm 80 cm 11.6 MeV 0 eV 60.3 cm 3.24 m Tracker Transportation + 9 -8.69 cm -31.7 cm 1 m 11.6 MeV 0 eV 20.1 cm 3.45 m Chamber Transportation + 10 -10.2 cm -37.2 cm 1.6 m 11.6 MeV 0 eV 60.3 cm 4.05 m Tracker Transportation + 11 -10.7 cm -39 cm 1.8 m 11.6 MeV 0 eV 20.1 cm 4.25 m Chamber Transportation + 12 -12.2 cm -44.6 cm 2.4 m 11.6 MeV 0 eV 60.3 cm 4.85 m Tracker Transportation + 13 -13.5 cm -49.3 cm 2.91 m 11.6 MeV 0 eV 51.2 cm 5.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2595, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 243 mum -430 mum -2.43 m 359 keV 0 eV 0 fm 0 fm Target initStep + 1 247 mum -434 mum -2.43 m 0 eV 88 keV 47.2 mum 47.2 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2666, Parent ID = 2595 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 247 mum -434 mum -2.43 m 271 keV 0 eV 0 fm 0 fm Target initStep + 1 249 mum -434 mum -2.43 m 0 eV 271 keV 129 mum 129 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2594, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 226 mum -410 mum -2.43 m 478 keV 0 eV 0 fm 0 fm Target initStep + 1 258 mum -445 mum -2.43 m 0 eV 88 keV 336 mum 336 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2667, Parent ID = 2594 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 258 mum -445 mum -2.43 m 390 keV 0 eV 0 fm 0 fm Target initStep + 1 266 mum -442 mum -2.43 m 0 eV 390 keV 216 mum 216 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2593, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 15.5 mum -248 mum -2.43 m 8.91 MeV 0 eV 0 fm 0 fm Target initStep + 1 286 mum -836 mum -2.43 m 0 eV 0 eV 3.52 mm 3.52 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2669, Parent ID = 2593 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 286 mum -836 mum -2.43 m 3.52 MeV 0 eV 0 fm 0 fm Target initStep + 1 -4.73 mum -792 mum -2.43 m 2.21 MeV 757 keV 599 mum 599 mum Target eBrem + 2 -170 mum -772 mum -2.43 m 0 eV 2.21 MeV 1.76 mm 2.36 mm Target eIoni + 3 -170 mum -772 mum -2.43 m 0 eV 0 eV 0 fm 2.36 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2672, Parent ID = 2669 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -170 mum -772 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -119 mum 1.35 mm -2.43 m 466 keV 0 eV 2.35 mm 2.35 mm Target compt + 2 912 mum 3.46 mm -2.43 m 270 keV 0 eV 3.11 mm 5.46 mm Target compt + 3 227 mum 3.14 mm -2.43 m 0 eV 88 keV 1.34 mm 6.8 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2675, Parent ID = 2672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 227 mum 3.14 mm -2.43 m 182 keV 0 eV 0 fm 0 fm Target initStep + 1 227 mum 3.14 mm -2.43 m 0 eV 182 keV 71.2 mum 71.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2674, Parent ID = 2672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 912 mum 3.46 mm -2.43 m 196 keV 0 eV 0 fm 0 fm Target initStep + 1 915 mum 3.47 mm -2.43 m 0 eV 196 keV 78.9 mum 78.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2673, Parent ID = 2672 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -119 mum 1.35 mm -2.43 m 45 keV 0 eV 0 fm 0 fm Target initStep + 1 -119 mum 1.35 mm -2.43 m 0 eV 45 keV 7.59 mum 7.59 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2671, Parent ID = 2669 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -170 mum -772 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -376 mum -9.36 mm -2.42 m 417 keV 0 eV 9.53 mm 9.53 mm Target compt + 2 -415 mum -9.67 mm -2.42 m 0 eV 88 keV 319 mum 9.85 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2677, Parent ID = 2671 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -415 mum -9.67 mm -2.42 m 329 keV 0 eV 0 fm 0 fm Target initStep + 1 -423 mum -9.68 mm -2.42 m 0 eV 329 keV 170 mum 170 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2676, Parent ID = 2671 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -376 mum -9.36 mm -2.42 m 93.5 keV 0 eV 0 fm 0 fm Target initStep + 1 -376 mum -9.36 mm -2.42 m 0 eV 93.5 keV 24.9 mum 24.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2670, Parent ID = 2669 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.73 mum -792 mum -2.43 m 558 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.72 mm -639 mum -2.43 m 545 keV 0 eV 2.87 mm 2.87 mm Target compt + 2 -4.7 mm -54.7 mum -2.42 m 0 eV 88 keV 4.11 mm 6.98 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2679, Parent ID = 2670 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.7 mm -54.7 mum -2.42 m 457 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.69 mm -61.9 mum -2.42 m 0 eV 457 keV 268 mum 268 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2678, Parent ID = 2670 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.72 mm -639 mum -2.43 m 12.5 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.72 mm -639 mum -2.43 m 0 eV 12.5 keV 980 nm 980 nm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2668, Parent ID = 2593 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 286 mum -836 mum -2.43 m 4.36 MeV 0 eV 0 fm 0 fm Target initStep + 1 279 mum 552 mum -2.43 m 1.71 MeV 2.65 MeV 1.98 mm 1.98 mm Target eBrem + 2 170 mum 485 mum -2.43 m 0 eV 1.71 MeV 1.32 mm 3.3 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2592, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -6.28 mum -210 mum -2.43 m 4.86 MeV 0 eV 0 fm 0 fm Target initStep + 1 263 mum -1.41 mm -2.42 m 903 keV 0 eV 8.58 mm 8.58 mm Target compt + 2 -1.17 mm -1.92 mm -2.42 m 337 keV 0 eV 1.79 mm 1.04 cm Target compt + 3 1.18 mm -3.79 mm -2.42 m 288 keV 0 eV 4.18 mm 1.46 cm Target compt + 4 872 mum -4.8 mm -2.42 m 0 eV 88 keV 2.41 mm 1.7 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2683, Parent ID = 2592 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 872 mum -4.8 mm -2.42 m 200 keV 0 eV 0 fm 0 fm Target initStep + 1 872 mum -4.81 mm -2.42 m 0 eV 200 keV 81.7 mum 81.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2682, Parent ID = 2592 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.18 mm -3.79 mm -2.42 m 48.6 keV 0 eV 0 fm 0 fm Target initStep + 1 1.18 mm -3.79 mm -2.42 m 0 eV 48.6 keV 8.55 mum 8.55 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2681, Parent ID = 2592 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.17 mm -1.92 mm -2.42 m 566 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.19 mm -1.93 mm -2.42 m 0 eV 566 keV 356 mum 356 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2680, Parent ID = 2592 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 263 mum -1.41 mm -2.42 m 3.95 MeV 0 eV 0 fm 0 fm Target initStep + 1 -472 mum -1.36 mm -2.42 m 2.24 MeV 1.28 MeV 1.22 mm 1.22 mm Target eBrem + 2 -88.3 mum -2.08 mm -2.42 m 497 keV 1.41 MeV 1.46 mm 2.68 mm Target eBrem + 3 -102 mum -2.08 mm -2.42 m 0 eV 497 keV 299 mum 2.98 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2685, Parent ID = 2680 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -88.3 mum -2.08 mm -2.42 m 329 keV 0 eV 0 fm 0 fm Target initStep + 1 -205 mum -2 mm -2.42 m 301 keV 0 eV 164 mum 164 mum Target compt + 2 -215 mum -1.99 mm -2.42 m 0 eV 88 keV 21.3 mum 185 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2687, Parent ID = 2685 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -215 mum -1.99 mm -2.42 m 213 keV 0 eV 0 fm 0 fm Target initStep + 1 -218 mum -1.98 mm -2.42 m 0 eV 213 keV 89.9 mum 89.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2686, Parent ID = 2685 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -205 mum -2 mm -2.42 m 27.8 keV 0 eV 0 fm 0 fm Target initStep + 1 -205 mum -2 mm -2.42 m 0 eV 27.8 keV 3.46 mum 3.46 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2684, Parent ID = 2680 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -472 mum -1.36 mm -2.42 m 432 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.14 mm -3.77 mm -2.42 m 310 keV 0 eV 4.08 mm 4.08 mm Target compt + 2 -1.38 mm -3.4 mm -2.42 m 0 eV 88 keV 1.02 mm 5.1 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2689, Parent ID = 2684 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.38 mm -3.4 mm -2.42 m 222 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.39 mm -3.41 mm -2.42 m 0 eV 222 keV 95.7 mum 95.7 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2688, Parent ID = 2684 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.14 mm -3.77 mm -2.42 m 122 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.14 mm -3.77 mm -2.42 m 0 eV 122 keV 37.9 mum 37.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2591, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -53.2 mum -146 mum -2.43 m 1.5 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.81 mm -3.81 mm -2.41 m 0 eV 88 keV 2.71 cm 2.71 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2690, Parent ID = 2591 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.81 mm -3.81 mm -2.41 m 1.42 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.78 mm -3.89 mm -2.41 m 0 eV 1.42 MeV 1.07 mm 1.07 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2590, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -117 mum -70.3 mum -2.44 m 2.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 -552 mum -2.51 mm -2.4 m 2.77 MeV 0 eV 3.54 cm 3.54 cm Target Transportation + 2 -1.04 cm -5.79 cm -1.6 m 2.77 MeV 0 eV 80.2 cm 83.7 cm Tracker Transportation + 3 -1.29 cm -7.17 cm -1.4 m 2.77 MeV 0 eV 20 cm 1.04 m Chamber Transportation + 4 -2.03 cm -11.3 cm -80 cm 2.77 MeV 0 eV 60.1 cm 1.64 m Tracker Transportation + 5 -2.27 cm -12.7 cm -60 cm 2.77 MeV 0 eV 20 cm 1.84 m Chamber Transportation + 6 -3.01 cm -16.9 cm 0.114 fm 2.77 MeV 0 eV 60.1 cm 2.44 m Tracker Transportation + 7 -3.26 cm -18.3 cm 20 cm 2.77 MeV 0 eV 20 cm 2.64 m Chamber Transportation + 8 -4 cm -22.4 cm 80 cm 2.77 MeV 0 eV 60.1 cm 3.24 m Tracker Transportation + 9 -4.24 cm -23.8 cm 1 m 2.77 MeV 0 eV 20 cm 3.44 m Chamber Transportation + 10 -4.98 cm -27.9 cm 1.6 m 2.77 MeV 0 eV 60.1 cm 4.05 m Tracker Transportation + 11 -5.23 cm -29.3 cm 1.8 m 2.77 MeV 0 eV 20 cm 4.25 m Chamber Transportation + 12 -5.97 cm -33.5 cm 2.4 m 2.77 MeV 0 eV 60.1 cm 4.85 m Tracker Transportation + 13 -6.6 cm -37 cm 2.91 m 2.77 MeV 0 eV 51.1 cm 5.36 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2589, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -96.2 mum -46.9 mum -2.44 m 3.23 MeV 0 eV 0 fm 0 fm Target initStep + 1 -604 mum -1.16 mm -2.41 m 1.49 MeV 0 eV 2.34 cm 2.34 cm Target compt + 2 -5.82 mm -9.42 mm -2.4 m 1.49 MeV 0 eV 1.58 cm 3.91 cm Target Transportation + 3 -1.51 m -2.4 m 1.18 m 1.49 MeV 0 eV 4.56 m 4.6 m Tracker Transportation + 4 -1.84 m -2.91 m 1.95 m 1.49 MeV 0 eV 97.3 cm 5.57 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2691, Parent ID = 2589 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -604 mum -1.16 mm -2.41 m 1.74 MeV 0 eV 0 fm 0 fm Target initStep + 1 -579 mum -1.12 mm -2.41 m 0 eV 1.74 MeV 1.05 mm 1.05 mm Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2588, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -95.4 mum -45.7 mum -2.44 m 1.14 MeV 0 eV 0 fm 0 fm Target initStep + 1 -138 mum -104 mum -2.43 m 1.12 MeV 0 eV 1.59 mm 1.59 mm Target compt + 2 2.88 mm -1.16 mm -2.41 m 473 keV 0 eV 2.93 cm 3.09 cm Target compt + 3 5 mm 199 mum -2.4 m 0 eV 88 keV 2.65 mm 3.35 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2694, Parent ID = 2588 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 5 mm 199 mum -2.4 m 385 keV 0 eV 0 fm 0 fm Target initStep + 1 5 mm 208 mum -2.4 m 0 eV 385 keV 211 mum 211 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2693, Parent ID = 2588 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.88 mm -1.16 mm -2.41 m 646 keV 0 eV 0 fm 0 fm Target initStep + 1 2.87 mm -1.17 mm -2.41 m 0 eV 646 keV 422 mum 422 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2692, Parent ID = 2588 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -138 mum -104 mum -2.43 m 21 keV 0 eV 0 fm 0 fm Target initStep + 1 -138 mum -104 mum -2.43 m 0 eV 21 keV 2.21 mum 2.21 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2587, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -94.7 mum -43.6 mum -2.44 m 5.92 MeV 0 eV 0 fm 0 fm Target initStep + 1 -775 mum -1.62 mm -2.4 m 392 keV 0 eV 3.31 cm 3.31 cm Target compt + 2 -754 mum -1.53 mm -2.4 m 0 eV 88 keV 93.9 mum 3.32 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2696, Parent ID = 2587 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -754 mum -1.53 mm -2.4 m 304 keV 0 eV 0 fm 0 fm Target initStep + 1 -756 mum -1.52 mm -2.4 m 0 eV 304 keV 151 mum 151 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2695, Parent ID = 2587 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -775 mum -1.62 mm -2.4 m 5.53 MeV 0 eV 0 fm 0 fm Target initStep + 1 -409 mum -1.99 mm -2.4 m 3.87 MeV 868 keV 808 mum 808 mum Target eBrem + 2 -420 mum -1.97 mm -2.4 m 3.13 MeV 52 keV 47.2 mum 855 mum Target eBrem + 3 -393 mum -1.81 mm -2.4 m 0 eV 3.13 MeV 2.46 mm 3.31 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2698, Parent ID = 2695 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -420 mum -1.97 mm -2.4 m 689 keV 0 eV 0 fm 0 fm Target initStep + 1 -292 mum -1.25 mm -2.4 m 599 keV 0 eV 1.33 mm 1.33 mm Target compt + 2 42.7 mum -1.1 mm -2.4 m 599 keV 0 eV 916 mum 2.25 mm Target Transportation + 3 63.9 cm 28.1 cm -80 cm 599 keV 0 eV 1.75 m 1.75 m Tracker Transportation + 4 67.2 cm 29.6 cm -71.7 cm 599 keV 0 eV 9.05 cm 1.84 m Chamber Transportation + 5 95.8 cm 42.2 cm 0 fm 599 keV 0 eV 78.2 cm 2.62 m Tracker Transportation + 6 1.04 m 45.7 cm 20 cm 599 keV 0 eV 21.8 cm 2.84 m Chamber Transportation + 7 1.28 m 56.3 cm 80 cm 599 keV 0 eV 65.5 cm 3.49 m Tracker Transportation + 8 1.36 m 59.8 cm 1 m 599 keV 0 eV 21.8 cm 3.71 m Chamber Transportation + 9 1.6 m 70.4 cm 1.6 m 599 keV 0 eV 65.5 cm 4.37 m Tracker Transportation + 10 1.68 m 73.9 cm 1.8 m 599 keV 0 eV 21.8 cm 4.58 m Chamber Transportation + 11 1.92 m 84.5 cm 2.4 m 599 keV 0 eV 65.5 cm 5.24 m Tracker Transportation + 12 2.12 m 93.5 cm 2.91 m 599 keV 0 eV 55.6 cm 5.8 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2699, Parent ID = 2698 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -292 mum -1.25 mm -2.4 m 90.3 keV 0 eV 0 fm 0 fm Target initStep + 1 -293 mum -1.25 mm -2.4 m 0 eV 90.3 keV 23.5 mum 23.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2697, Parent ID = 2695 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -409 mum -1.99 mm -2.4 m 791 keV 0 eV 0 fm 0 fm Target initStep + 1 -610 mum -1.03 mm -2.4 m 791 keV 0 eV 2.22 mm 2.22 mm Target Transportation + 2 -40.3 cm 1.94 m 1.6 m 791 keV 0 eV 4.46 m 4.47 m Tracker Transportation + 3 -41 cm 1.97 m 1.66 m 791 keV 0 eV 7.2 cm 4.54 m Chamber Transportation + 4 -48.4 cm 2.32 m 2.4 m 791 keV 0 eV 82.1 cm 5.36 m Tracker Transportation + 5 -53.5 cm 2.57 m 2.91 m 791 keV 0 eV 56.9 cm 5.93 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2586, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -57 mum -1.41 mum -2.44 m 4.67 MeV 0 eV 0 fm 0 fm Target initStep + 1 -1.12 mm -370 mum -2.42 m 0 eV 0 eV 1.36 cm 1.36 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2701, Parent ID = 2586 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.12 mm -370 mum -2.42 m 736 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.13 mm -367 mum -2.42 m 0 eV 736 keV 501 mum 501 mum Target eIoni + 2 -1.13 mm -367 mum -2.42 m 0 eV 0 eV 0 fm 501 mum Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2703, Parent ID = 2701 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.13 mm -367 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.72 mm 953 mum -2.43 m 342 keV 0 eV 4.9 mm 4.9 mm Target compt + 2 -2.66 mm 939 mum -2.43 m 0 eV 88 keV 104 mum 5.01 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2705, Parent ID = 2703 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.66 mm 939 mum -2.43 m 254 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.65 mm 939 mum -2.43 m 0 eV 254 keV 117 mum 117 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2704, Parent ID = 2703 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -2.72 mm 953 mum -2.43 m 169 keV 0 eV 0 fm 0 fm Target initStep + 1 -2.72 mm 955 mum -2.43 m 0 eV 169 keV 63.2 mum 63.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2702, Parent ID = 2701 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.13 mm -367 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 653 mum -1.85 mm -2.42 m 388 keV 0 eV 5.51 mm 5.51 mm Target compt + 2 -707 mum -505 mum -2.41 m 0 eV 88 keV 5.07 mm 1.06 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2707, Parent ID = 2702 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -707 mum -505 mum -2.41 m 300 keV 0 eV 0 fm 0 fm Target initStep + 1 -706 mum -504 mum -2.41 m 0 eV 300 keV 148 mum 148 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2706, Parent ID = 2702 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 653 mum -1.85 mm -2.42 m 123 keV 0 eV 0 fm 0 fm Target initStep + 1 655 mum -1.85 mm -2.42 m 0 eV 123 keV 38.6 mum 38.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2700, Parent ID = 2586 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.12 mm -370 mum -2.42 m 2.92 MeV 0 eV 0 fm 0 fm Target initStep + 1 -419 mum -270 mum -2.42 m 1.26 MeV 1.19 MeV 1.26 mm 1.26 mm Target eBrem + 2 -474 mum -223 mum -2.42 m 0 eV 1.26 MeV 943 mum 2.21 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2708, Parent ID = 2700 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -419 mum -270 mum -2.42 m 468 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.71 mm 5.29 mm -2.43 m 0 eV 88 keV 1.09 cm 1.09 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2709, Parent ID = 2708 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -7.71 mm 5.29 mm -2.43 m 380 keV 0 eV 0 fm 0 fm Target initStep + 1 -7.72 mm 5.3 mm -2.43 m 0 eV 380 keV 208 mum 208 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2585, Parent ID = 2584 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -24.8 mum 20.1 mum -2.44 m 862 keV 0 eV 0 fm 0 fm Target initStep + 1 -127 mum -7.45 mum -2.44 m 503 keV 0 eV 1.21 mm 1.21 mm Target compt + 2 -66.4 mum 394 mum -2.44 m 269 keV 0 eV 510 mum 1.72 mm Target compt + 3 274 mum -31.1 mum -2.43 m 165 keV 0 eV 849 mum 2.57 mm Target compt + 4 238 mum -1.81 mum -2.43 m 0 eV 88 keV 52.7 mum 2.62 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2713, Parent ID = 2585 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 238 mum -1.81 mum -2.43 m 77.4 keV 0 eV 0 fm 0 fm Target initStep + 1 237 mum -1.46 mum -2.43 m 0 eV 77.4 keV 18.3 mum 18.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2712, Parent ID = 2585 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 274 mum -31.1 mum -2.43 m 104 keV 0 eV 0 fm 0 fm Target initStep + 1 275 mum -32.5 mum -2.43 m 0 eV 104 keV 29.4 mum 29.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2711, Parent ID = 2585 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -66.4 mum 394 mum -2.44 m 233 keV 0 eV 0 fm 0 fm Target initStep + 1 -67 mum 401 mum -2.44 m 0 eV 233 keV 103 mum 103 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2710, Parent ID = 2585 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -127 mum -7.45 mum -2.44 m 359 keV 0 eV 0 fm 0 fm Target initStep + 1 -129 mum -15 mum -2.44 m 0 eV 359 keV 192 mum 192 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2583, Parent ID = 105 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -21.9 mum 15.1 mum -2.44 m 71.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 -39.4 mum 59.1 mum -2.44 m 56.6 MeV 1.42 MeV 800 mum 800 mum Target eBrem + 2 46.8 mum -18.4 mum -2.44 m 14.2 MeV 1.36 MeV 736 mum 1.54 mm Target eBrem + 3 909 mum -817 mum -2.43 m 10.5 MeV 2.45 MeV 1.86 mm 3.39 mm Target eBrem + 4 908 mum -829 mum -2.43 m 7.04 MeV 113 keV 77.2 mum 3.47 mm Target eBrem + 5 1.15 mm -735 mum -2.43 m 6.04 MeV 664 keV 522 mum 3.99 mm Target eBrem + 6 -805 mum -91.8 mum -2.43 m 793 keV 3.78 MeV 3.35 mm 7.34 mm Target eBrem + 7 -777 mum -83.3 mum -2.43 m 0 eV 793 keV 545 mum 7.89 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2719, Parent ID = 2583 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -805 mum -91.8 mum -2.43 m 1.47 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm 1.94 mm -2.42 m 1.47 MeV 0 eV 2.92 cm 2.92 cm Target Transportation + 2 6.1 cm 4.77 mm -2.4 m 1.47 MeV 0 eV 4.07 cm 6.99 cm World Transportation + 3 2.4 m 18.9 cm -1.18 m 1.47 MeV 0 eV 2.65 m 2.72 m Tracker Transportation + 4 2.91 m 22.9 cm -91 cm 1.47 MeV 0 eV 57.7 cm 3.29 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2718, Parent ID = 2583 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.15 mm -735 mum -2.43 m 335 keV 0 eV 0 fm 0 fm Target initStep + 1 1.79 mm -2.25 mm -2.43 m 0 eV 88 keV 3.15 mm 3.15 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2720, Parent ID = 2718 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.79 mm -2.25 mm -2.43 m 247 keV 0 eV 0 fm 0 fm Target initStep + 1 1.79 mm -2.26 mm -2.43 m 0 eV 247 keV 112 mum 112 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2717, Parent ID = 2583 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 908 mum -829 mum -2.43 m 3.34 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.09 cm -4.73 mm -2.4 m 3.34 MeV 0 eV 3.61 cm 3.61 cm Target Transportation + 2 47.4 cm -18.5 cm -80 cm 3.34 MeV 0 eV 1.68 m 1.71 m Tracker Transportation + 3 53.2 cm -20.8 cm -60 cm 3.34 MeV 0 eV 20.9 cm 1.92 m Chamber Transportation + 4 70.5 cm -27.6 cm -0.114 fm 3.34 MeV 0 eV 62.8 cm 2.55 m Tracker Transportation + 5 76.3 cm -29.8 cm 20 cm 3.34 MeV 0 eV 20.9 cm 2.76 m Chamber Transportation + 6 93.7 cm -36.6 cm 80 cm 3.34 MeV 0 eV 62.8 cm 3.39 m Tracker Transportation + 7 99.4 cm -38.9 cm 1 m 3.34 MeV 0 eV 20.9 cm 3.6 m Chamber Transportation + 8 1.17 m -45.6 cm 1.6 m 3.34 MeV 0 eV 62.8 cm 4.22 m Tracker Transportation + 9 1.23 m -47.9 cm 1.8 m 3.34 MeV 0 eV 20.9 cm 4.43 m Chamber Transportation + 10 1.4 m -54.7 cm 2.4 m 3.34 MeV 0 eV 62.8 cm 5.06 m Tracker Transportation + 11 1.55 m -60.4 cm 2.91 m 3.34 MeV 0 eV 53.4 cm 5.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2716, Parent ID = 2583 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 909 mum -817 mum -2.43 m 1.25 MeV 0 eV 0 fm 0 fm Target initStep + 1 7.41 mm -3.21 mm -2.4 m 1.25 MeV 0 eV 3.53 cm 3.53 cm Target Transportation + 2 15.8 cm -5.84 cm -1.6 m 1.25 MeV 0 eV 81.6 cm 85.1 cm Tracker Transportation + 3 19.5 cm -7.22 cm -1.4 m 1.25 MeV 0 eV 20.4 cm 1.06 m Chamber Transportation + 4 30.8 cm -11.4 cm -80 cm 1.25 MeV 0 eV 61.2 cm 1.67 m Tracker Transportation + 5 34.6 cm -12.7 cm -60 cm 1.25 MeV 0 eV 20.4 cm 1.87 m Chamber Transportation + 6 45.8 cm -16.9 cm 0 fm 1.25 MeV 0 eV 61.2 cm 2.48 m Tracker Transportation + 7 49.6 cm -18.3 cm 20 cm 1.25 MeV 0 eV 20.4 cm 2.69 m Chamber Transportation + 8 60.9 cm -22.4 cm 80 cm 1.25 MeV 0 eV 61.2 cm 3.3 m Tracker Transportation + 9 64.6 cm -23.8 cm 1 m 1.25 MeV 0 eV 20.4 cm 3.5 m Chamber Transportation + 10 75.9 cm -27.9 cm 1.6 m 1.25 MeV 0 eV 61.2 cm 4.11 m Tracker Transportation + 11 79.7 cm -29.3 cm 1.8 m 1.25 MeV 0 eV 20.4 cm 4.32 m Chamber Transportation + 12 90.9 cm -33.5 cm 2.4 m 1.25 MeV 0 eV 61.2 cm 4.93 m Tracker Transportation + 13 1.01 m -37 cm 2.91 m 1.25 MeV 0 eV 52 cm 5.45 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2715, Parent ID = 2583 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 46.8 mum -18.4 mum -2.44 m 41 MeV 0 eV 0 fm 0 fm Target initStep + 1 656 mum -397 mum -2.43 m 0 eV 0 eV 3.81 mm 3.81 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2722, Parent ID = 2715 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 656 mum -397 mum -2.43 m 17.7 MeV 0 eV 0 fm 0 fm Target initStep + 1 688 mum -399 mum -2.43 m 17.1 MeV 173 keV 149 mum 149 mum Target eBrem + 2 820 mum -314 mum -2.43 m 15.3 MeV 1.22 MeV 838 mum 988 mum Target eBrem + 3 527 mum 1.23 mm -2.43 m 11.6 MeV 3.74 MeV 2.97 mm 3.96 mm Target eBrem + 4 1.57 mm -437 mum -2.43 m 4.29 MeV 3.49 MeV 2.66 mm 6.62 mm Target eBrem + 5 2.23 mm -430 mum -2.43 m 3.13 MeV 823 keV 845 mum 7.46 mm Target eBrem + 6 1.99 mm -321 mum -2.43 m 0 eV 3.13 MeV 2.5 mm 9.97 mm Target eIoni + 7 1.99 mm -321 mum -2.43 m 0 eV 0 eV 0 fm 9.97 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2728, Parent ID = 2722 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.99 mm -321 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 1.74 mm -4.86 mm -2.43 m 0 eV 88 keV 7.72 mm 7.72 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2729, Parent ID = 2728 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.74 mm -4.86 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 1.74 mm -4.87 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2727, Parent ID = 2722 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.99 mm -321 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 2 mm -231 mum -2.43 m 197 keV 0 eV 153 mum 153 mum Target compt + 2 2.75 mm 197 mum -2.43 m 0 eV 88 keV 1.99 mm 2.14 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2731, Parent ID = 2727 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.75 mm 197 mum -2.43 m 109 keV 0 eV 0 fm 0 fm Target initStep + 1 2.75 mm 198 mum -2.43 m 0 eV 109 keV 31.9 mum 31.9 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2730, Parent ID = 2727 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2 mm -231 mum -2.43 m 314 keV 0 eV 0 fm 0 fm Target initStep + 1 2 mm -227 mum -2.43 m 0 eV 314 keV 158 mum 158 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2726, Parent ID = 2722 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.23 mm -430 mum -2.43 m 334 keV 0 eV 0 fm 0 fm Target initStep + 1 833 mum 3.1 mm -2.43 m 0 eV 88 keV 6.1 mm 6.1 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2732, Parent ID = 2726 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 833 mum 3.1 mm -2.43 m 246 keV 0 eV 0 fm 0 fm Target initStep + 1 836 mum 3.1 mm -2.43 m 0 eV 246 keV 111 mum 111 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2725, Parent ID = 2722 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.57 mm -437 mum -2.43 m 3.82 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.5 cm 1.41 cm -2.42 m 3.82 MeV 0 eV 2.82 cm 2.82 cm Target Transportation + 2 11.5 cm 7.03 cm -2.4 m 3.82 MeV 0 eV 10.9 cm 13.7 cm World Transportation + 3 2.4 m 1.49 m -1.85 m 3.82 MeV 0 eV 2.75 m 2.88 m Tracker Transportation + 4 2.91 m 1.81 m -1.73 m 3.82 MeV 0 eV 61.3 cm 3.49 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2724, Parent ID = 2722 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 820 mum -314 mum -2.43 m 561 keV 0 eV 0 fm 0 fm Target initStep + 1 2.65 mm 178 mum -2.43 m 0 eV 88 keV 3.72 mm 3.72 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2733, Parent ID = 2724 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.65 mm 178 mum -2.43 m 473 keV 0 eV 0 fm 0 fm Target initStep + 1 2.67 mm 189 mum -2.43 m 0 eV 473 keV 281 mum 281 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2723, Parent ID = 2722 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 688 mum -399 mum -2.43 m 446 keV 0 eV 0 fm 0 fm Target initStep + 1 790 mum -437 mum -2.43 m 188 keV 0 eV 338 mum 338 mum Target compt + 2 713 mum -340 mum -2.43 m 0 eV 88 keV 132 mum 469 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2735, Parent ID = 2723 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 713 mum -340 mum -2.43 m 100 keV 0 eV 0 fm 0 fm Target initStep + 1 713 mum -339 mum -2.43 m 0 eV 100 keV 27.6 mum 27.6 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2734, Parent ID = 2723 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 790 mum -437 mum -2.43 m 258 keV 0 eV 0 fm 0 fm Target initStep + 1 793 mum -440 mum -2.43 m 0 eV 258 keV 120 mum 120 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2721, Parent ID = 2715 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 656 mum -397 mum -2.43 m 22.3 MeV 0 eV 0 fm 0 fm Target initStep + 1 376 mum -372 mum -2.43 m 16.8 MeV 4.23 MeV 2.03 mm 2.03 mm Target eBrem + 2 -42.1 mum -2.27 mm -2.43 m 7.28 MeV 2.72 MeV 2.21 mm 4.23 mm Target eBrem + 3 464 mum -2.64 mm -2.43 m 4.76 MeV 740 keV 651 mum 4.89 mm Target eBrem + 4 164 mum -3.17 mm -2.43 m 0 eV 4.76 MeV 3.55 mm 8.44 mm Target eBrem + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2738, Parent ID = 2721 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 464 mum -2.64 mm -2.43 m 1.77 MeV 0 eV 0 fm 0 fm Target initStep + 1 -999 mum -5.08 mm -2.43 m 1.2 MeV 0 eV 2.88 mm 2.88 mm Target compt + 2 -1.24 cm -1.17 cm -2.43 m 1.03 MeV 0 eV 1.32 cm 1.61 cm Target compt + 3 -2.45 cm -2.5 cm -2.42 m 1.03 MeV 0 eV 1.83 cm 3.44 cm Target Transportation + 4 -10.5 cm -11.3 cm -2.4 m 1.03 MeV 0 eV 12.2 cm 15.6 cm World Transportation + 5 -2.18 m -2.4 m -1.76 m 1.03 MeV 0 eV 3.16 m 3.31 m Tracker Transportation + 6 -2.65 m -2.91 m -1.62 m 1.03 MeV 0 eV 70.4 cm 4.02 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2740, Parent ID = 2738 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.24 cm -1.17 cm -2.43 m 165 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.24 cm -1.17 cm -2.43 m 0 eV 165 keV 61 mum 61 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2739, Parent ID = 2738 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -999 mum -5.08 mm -2.43 m 575 keV 0 eV 0 fm 0 fm Target initStep + 1 -995 mum -5.1 mm -2.43 m 0 eV 575 keV 363 mum 363 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2737, Parent ID = 2721 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -42.1 mum -2.27 mm -2.43 m 6.84 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.47 cm -2.5 cm -2.42 m 6.84 MeV 0 eV 2.76 cm 2.76 cm Target Transportation + 2 7.95 cm -12.5 cm -2.4 m 6.84 MeV 0 eV 12.1 cm 14.9 cm World Transportation + 3 1.55 m -2.4 m -1.87 m 6.84 MeV 0 eV 2.76 m 2.91 m Tracker Transportation + 4 1.89 m -2.91 m -1.75 m 6.84 MeV 0 eV 61.9 cm 3.53 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2736, Parent ID = 2721 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 376 mum -372 mum -2.43 m 1.2 MeV 0 eV 0 fm 0 fm Target initStep + 1 1.03 mm -2.58 mm -2.43 m 940 keV 0 eV 3.97 mm 3.97 mm Target compt + 2 3.24 mm -5.15 mm -2.42 m 668 keV 0 eV 4.02 mm 7.99 mm Target compt + 3 2.14 cm -8.97 mm -2.42 m 487 keV 0 eV 1.91 cm 2.7 cm Target compt + 4 2.25 cm -9.6 mm -2.42 m 321 keV 0 eV 1.48 mm 2.85 cm Target compt + 5 2.42 cm -1.01 cm -2.42 m 0 eV 88 keV 2.13 mm 3.07 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2745, Parent ID = 2736 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.42 cm -1.01 cm -2.42 m 233 keV 0 eV 0 fm 0 fm Target initStep + 1 2.42 cm -1.01 cm -2.42 m 0 eV 233 keV 103 mum 103 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2744, Parent ID = 2736 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.25 cm -9.6 mm -2.42 m 165 keV 0 eV 0 fm 0 fm Target initStep + 1 2.25 cm -9.6 mm -2.42 m 0 eV 165 keV 61.2 mum 61.2 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2743, Parent ID = 2736 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.14 cm -8.97 mm -2.42 m 181 keV 0 eV 0 fm 0 fm Target initStep + 1 2.14 cm -8.97 mm -2.42 m 0 eV 181 keV 70.5 mum 70.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2742, Parent ID = 2736 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.24 mm -5.15 mm -2.42 m 272 keV 0 eV 0 fm 0 fm Target initStep + 1 3.24 mm -5.16 mm -2.42 m 0 eV 272 keV 130 mum 130 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2741, Parent ID = 2736 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.03 mm -2.58 mm -2.43 m 259 keV 0 eV 0 fm 0 fm Target initStep + 1 1.02 mm -2.58 mm -2.43 m 0 eV 259 keV 120 mum 120 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2714, Parent ID = 2583 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -39.4 mum 59.1 mum -2.44 m 13.8 MeV 0 eV 0 fm 0 fm Target initStep + 1 515 mum -108 mum -2.43 m 0 eV 0 eV 5.95 mm 5.95 mm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2747, Parent ID = 2714 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 515 mum -108 mum -2.43 m 3.93 MeV 0 eV 0 fm 0 fm Target initStep + 1 499 mum -97.3 mum -2.43 m 0 eV 3.93 MeV 3.13 mm 3.13 mm Target eIoni + 2 499 mum -97.3 mum -2.43 m 0 eV 0 eV 0 fm 3.13 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2749, Parent ID = 2747 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 499 mum -97.3 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 4.27 mm -3.73 mm -2.43 m 0 eV 88 keV 6.3 mm 6.3 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2750, Parent ID = 2749 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 4.27 mm -3.73 mm -2.43 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 4.28 mm -3.74 mm -2.43 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2748, Parent ID = 2747 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 499 mum -97.3 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.4 mm 4.63 mm -2.43 m 493 keV 0 eV 8.19 mm 8.19 mm Target compt + 2 -9.27 mm 7.54 mm -2.42 m 281 keV 0 eV 8.11 mm 1.63 cm Target compt + 3 -1.05 cm 7.44 mm -2.42 m 0 eV 88 keV 1.36 mm 1.77 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2753, Parent ID = 2748 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -1.05 cm 7.44 mm -2.42 m 193 keV 0 eV 0 fm 0 fm Target initStep + 1 -1.05 cm 7.44 mm -2.42 m 0 eV 193 keV 77.3 mum 77.3 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2752, Parent ID = 2748 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.27 mm 7.54 mm -2.42 m 212 keV 0 eV 0 fm 0 fm Target initStep + 1 -9.27 mm 7.54 mm -2.42 m 0 eV 212 keV 89.5 mum 89.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2751, Parent ID = 2748 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -4.4 mm 4.63 mm -2.43 m 18 keV 0 eV 0 fm 0 fm Target initStep + 1 -4.4 mm 4.63 mm -2.43 m 0 eV 18 keV 1.74 mum 1.74 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2746, Parent ID = 2714 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 515 mum -108 mum -2.43 m 8.88 MeV 0 eV 0 fm 0 fm Target initStep + 1 518 mum -112 mum -2.43 m 7.43 MeV 25.7 keV 29.4 mum 29.4 mum Target eBrem + 2 472 mum 134 mum -2.43 m 6.12 MeV 882 keV 752 mum 782 mum Target eBrem + 3 1.93 mm -501 mum -2.43 m 3.18 MeV 2.38 MeV 1.85 mm 2.63 mm Target eBrem + 4 499 mum -513 mum -2.43 m 190 keV 2.99 MeV 2.42 mm 5.06 mm Target eBrem + 5 496 mum -509 mum -2.43 m 0 eV 190 keV 75.6 mum 5.13 mm Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2756, Parent ID = 2746 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 1.93 mm -501 mum -2.43 m 558 keV 0 eV 0 fm 0 fm Target initStep + 1 -938 mum -3.25 mm -2.43 m 457 keV 0 eV 6.19 mm 6.19 mm Target compt + 2 388 mum -7.17 mm -2.42 m 0 eV 88 keV 7.99 mm 1.42 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2758, Parent ID = 2756 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 388 mum -7.17 mm -2.42 m 369 keV 0 eV 0 fm 0 fm Target initStep + 1 389 mum -7.18 mm -2.42 m 0 eV 369 keV 199 mum 199 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2757, Parent ID = 2756 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -938 mum -3.25 mm -2.43 m 101 keV 0 eV 0 fm 0 fm Target initStep + 1 -940 mum -3.25 mm -2.43 m 0 eV 101 keV 28 mum 28 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2755, Parent ID = 2746 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 472 mum 134 mum -2.43 m 430 keV 0 eV 0 fm 0 fm Target initStep + 1 3.96 mm 1.67 mm -2.43 m 173 keV 0 eV 4.74 mm 4.74 mm Target compt + 2 3.32 mm 1.73 mm -2.43 m 155 keV 0 eV 2.36 mm 7.1 mm Target compt + 3 3.03 mm 1.35 mm -2.43 m 0 eV 88 keV 566 mum 7.67 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2761, Parent ID = 2755 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.03 mm 1.35 mm -2.43 m 66.8 keV 0 eV 0 fm 0 fm Target initStep + 1 3.03 mm 1.35 mm -2.43 m 0 eV 66.8 keV 14.4 mum 14.4 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2760, Parent ID = 2755 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.32 mm 1.73 mm -2.43 m 18.4 keV 0 eV 0 fm 0 fm Target initStep + 1 3.32 mm 1.73 mm -2.43 m 0 eV 18.4 keV 1.79 mum 1.79 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2759, Parent ID = 2755 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.96 mm 1.67 mm -2.43 m 257 keV 0 eV 0 fm 0 fm Target initStep + 1 3.96 mm 1.67 mm -2.43 m 0 eV 257 keV 119 mum 119 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2754, Parent ID = 2746 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 518 mum -112 mum -2.43 m 1.43 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.49 mm -523 mum -2.42 m 262 keV 0 eV 1.53 cm 1.53 cm Target compt + 2 359 mum -3.56 mm -2.42 m 0 eV 88 keV 4.45 mm 1.98 cm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2763, Parent ID = 2754 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 359 mum -3.56 mm -2.42 m 174 keV 0 eV 0 fm 0 fm Target initStep + 1 360 mum -3.57 mm -2.42 m 0 eV 174 keV 66.5 mum 66.5 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2762, Parent ID = 2754 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.49 mm -523 mum -2.42 m 1.17 MeV 0 eV 0 fm 0 fm Target initStep + 1 2.52 mm -460 mum -2.42 m 603 keV 135 keV 111 mum 111 mum Target eBrem + 2 2.54 mm -476 mum -2.42 m 0 eV 603 keV 386 mum 497 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2764, Parent ID = 2762 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.52 mm -460 mum -2.42 m 429 keV 0 eV 0 fm 0 fm Target initStep + 1 2.56 mm -554 mum -2.42 m 0 eV 88 keV 113 mum 113 mum Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2765, Parent ID = 2764 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 2.56 mm -554 mum -2.42 m 341 keV 0 eV 0 fm 0 fm Target initStep + 1 2.57 mm -535 mum -2.42 m 201 keV 140 keV 80.5 mum 80.5 mum Target eBrem + 2 2.56 mm -535 mum -2.42 m 0 eV 201 keV 82.3 mum 163 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 104, Parent ID = 4 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -83 nm 23.9 nm -2.45 m 4.94 MeV 0 eV 0 fm 0 fm Target initStep + 1 -9.02 mum -4.76 mum -2.42 m 0 eV 0 eV 2.87 cm 2.87 cm Target conv + +********************************************************************************************************* +* G4Track Information: Particle = e+, Track ID = 2767, Parent ID = 104 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.02 mum -4.76 mum -2.42 m 3.61 MeV 0 eV 0 fm 0 fm Target initStep + 1 -78.8 mum 59.9 mum -2.42 m 0 eV 3.61 MeV 2.88 mm 2.88 mm Target eIoni + 2 -78.8 mum 59.9 mum -2.42 m 0 eV 0 eV 0 fm 2.88 mm Target annihil + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2769, Parent ID = 2767 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -78.8 mum 59.9 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 3.33 mm 931 mum -2.42 m 0 eV 88 keV 5.44 mm 5.44 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2770, Parent ID = 2769 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 3.33 mm 931 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 3.33 mm 946 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = gamma, Track ID = 2768, Parent ID = 2767 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -78.8 mum 59.9 mum -2.42 m 511 keV 0 eV 0 fm 0 fm Target initStep + 1 -826 mum -131 mum -2.42 m 0 eV 88 keV 1.19 mm 1.19 mm Target phot + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2771, Parent ID = 2768 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -826 mum -131 mum -2.42 m 423 keV 0 eV 0 fm 0 fm Target initStep + 1 -838 mum -128 mum -2.42 m 0 eV 423 keV 241 mum 241 mum Target eIoni + +********************************************************************************************************* +* G4Track Information: Particle = e-, Track ID = 2766, Parent ID = 104 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 -9.02 mum -4.76 mum -2.42 m 309 keV 0 eV 0 fm 0 fm Target initStep + 1 -3.28 mum -10.1 mum -2.42 m 0 eV 309 keV 155 mum 155 mum Target eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 3, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 307 nm -608 nm -2.43 m 22.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 -427 mum 296 mum -2.43 m 15.6 MeV 6.73 MeV 1.65 mm 1.65 mm Target eBrem - 2 -417 mum 45 mum -2.43 m 11.5 MeV 1.16 MeV 977 mum 2.63 mm Target eBrem - 3 -558 mum 43.9 mum -2.43 m 11 MeV 234 keV 164 mum 2.79 mm Target eBrem - 4 -1.07 mm 969 mum -2.43 m 6.01 MeV 2.63 MeV 1.82 mm 4.61 mm Target eBrem - 5 -2.14 mm 2.09 mm -2.43 m 3.34 MeV 2.66 MeV 2.36 mm 6.96 mm Target eIoni - 6 -2.03 mm 2.21 mm -2.43 m 532 keV 1.91 MeV 769 mum 7.73 mm Target eBrem - 7 -2.04 mm 2.19 mm -2.43 m 1.11e-10 eV 532 keV 327 mum 8.06 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 12, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.03 mm 2.21 mm -2.43 m 900 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.02 mm -4.41 mm -2.42 m 0 eV 88 keV 9.93 mm 9.93 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 13, Parent ID = 12 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -9.02 mm -4.41 mm -2.42 m 812 keV 0 eV 0 fm 0 fm Target initStep - 1 -9.05 mm -4.43 mm -2.42 m 2.22e-10 eV 812 keV 561 mum 561 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 11, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.07 mm 969 mum -2.43 m 2.34 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.5 cm 1.79 mm -2.42 m 2.34 MeV 0 eV 2.43 cm 2.43 cm Target Transportation - 2 -14.2 cm 5.79 mm -2.4 m 2.34 MeV 0 eV 11.9 cm 14.3 cm World Transportation - 3 -2.4 m 8.33 cm -1.99 m 2.34 MeV 0 eV 2.3 m 2.44 m Tracker Transportation - 4 -2.91 m 10.1 cm -1.9 m 2.34 MeV 0 eV 51.9 cm 2.96 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 10, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -558 mum 43.9 mum -2.43 m 334 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.97 mm 733 mum -2.43 m 205 keV 0 eV 3.18 mm 3.18 mm Target compt - 2 -2.61 mm 2.62 mm -2.43 m 0 eV 88 keV 1.92 mm 5.1 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 15, Parent ID = 10 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.61 mm 2.62 mm -2.43 m 117 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.61 mm 2.62 mm -2.43 m 0 eV 117 keV 35.5 mum 35.5 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 14, Parent ID = 10 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.97 mm 733 mum -2.43 m 128 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.97 mm 732 mum -2.43 m 5.55e-11 eV 128 keV 41 mum 41 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 9, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -417 mum 45 mum -2.43 m 2.9 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.43 mm -219 mum -2.43 m 0 eV 0 eV 2.68 mm 2.68 mm Target conv - -********************************************************************************************************* -* G4Track Information: Particle = e+, Track ID = 17, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.43 mm -219 mum -2.43 m 307 keV 0 eV 0 fm 0 fm Target initStep - 1 -2.44 mm -230 mum -2.43 m 0 eV 307 keV 150 mum 150 mum Target eIoni - 2 -2.44 mm -230 mum -2.43 m 0 eV 0 eV 0 fm 150 mum Target annihil - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 19, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.44 mm -230 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 9.53 mm -3.27 mm -2.41 m 0 eV 88 keV 1.65 cm 1.65 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 20, Parent ID = 19 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 9.53 mm -3.27 mm -2.41 m 423 keV 0 eV 0 fm 0 fm Target initStep - 1 9.53 mm -3.27 mm -2.41 m 0 eV 423 keV 240 mum 240 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 18, Parent ID = 17 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.44 mm -230 mum -2.43 m 511 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.09 mm 1.2 mm -2.43 m 492 keV 0 eV 7.78 mm 7.78 mm Target compt - 2 -1.04 cm 946 mum -2.43 m 178 keV 0 eV 3.42 mm 1.12 cm Target compt - 3 -1.02 cm 1.16 mm -2.43 m 0 eV 88 keV 1.45 mm 1.26 cm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 23, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.02 cm 1.16 mm -2.43 m 89.8 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.02 cm 1.16 mm -2.43 m 1.39e-11 eV 89.8 keV 23.2 mum 23.2 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 22, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.04 cm 946 mum -2.43 m 314 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.04 cm 945 mum -2.43 m 0 eV 314 keV 158 mum 158 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 21, Parent ID = 18 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -8.09 mm 1.2 mm -2.43 m 19.1 keV 0 eV 0 fm 0 fm Target initStep - 1 -8.09 mm 1.21 mm -2.43 m 0 eV 19.1 keV 1.89 mum 1.89 mum Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 16, Parent ID = 9 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -2.43 mm -219 mum -2.43 m 1.57 MeV 0 eV 0 fm 0 fm Target initStep - 1 -2.23 mm -354 mum -2.43 m 330 keV 1.24 MeV 1.18 mm 1.18 mm Target eIoni - 2 -2.22 mm -349 mum -2.43 m 0 eV 330 keV 170 mum 1.35 mm Target eIoni - -********************************************************************************************************* -* G4Track Information: Particle = gamma, Track ID = 8, Parent ID = 3 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -427 mum 296 mum -2.43 m 579 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.2 mm -712 mum -2.43 m 0 eV 88 keV 2.68 mm 2.68 mm Target phot - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 24, Parent ID = 8 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 -1.2 mm -712 mum -2.43 m 491 keV 0 eV 0 fm 0 fm Target initStep - 1 -1.22 mm -722 mum -2.43 m 1.67e-10 eV 491 keV 294 mum 294 mum Target eIoni + 0 -107 nm -60.1 nm -2.51 m 17.2 keV 0 eV 0 fm 0 fm World initStep + 1 971 mum -2.72 mm -2.51 m 0 eV 17.2 keV 5.87 mm 5.87 mm World eIoni ********************************************************************************************************* * G4Track Information: Particle = e-, Track ID = 2, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 76.6 nm -158 nm -2.53 m 8.71 keV 0 eV 0 fm 0 fm World initStep - 1 1.61 mm -67.3 mum -2.53 m 1.82 keV 6.88 keV 1.51 mm 1.51 mm World eIoni - 2 1.57 mm -37.6 mum -2.53 m 2.17e-13 eV 1.82 keV 136 mum 1.64 mm World eIoni + 0 -124 nm -61.1 nm -2.59 m 8.12 keV 0 eV 0 fm 0 fm World initStep + 1 155 mum 744 mum -2.59 m 0 eV 8.12 keV 1.57 mm 1.57 mm World 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 165e6760ab..0af289168d 100644 --- a/examples/novice/N02/include/ExN02ChamberParameterisation.hh +++ b/examples/novice/N02/include/ExN02ChamberParameterisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02ChamberParameterisation.hh,v 1.7 2003/05/28 09:54:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02ChamberParameterisation.hh,v 1.9 2003/11/10 14:29:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // A parameterisation that describes a series of boxes along Z @@ -45,11 +45,14 @@ class G4Box; 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...... @@ -79,11 +82,13 @@ class ExN02ChamberParameterisation : public G4VPVParameterisation 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; diff --git a/examples/novice/N02/include/ExN02DetectorConstruction.hh b/examples/novice/N02/include/ExN02DetectorConstruction.hh index f2716adff7..e85908a5b0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a6d8dd6aed..5d3c9a8776 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e44339d8f9..f8f26cdbef 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 14968556cb..96279b483d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 42e314461d..f05a1013db 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0df33f7531..f8c2d2434c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 db839f64e7..4f6dd8feea 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 79cb0d9d35..ad141adec2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9818a96ce2..4510ffbab3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 707c76da9d..3fc2ec4328 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b123b1f549..ee887fcfda 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/include/ExN02VisManager.hh b/examples/novice/N02/include/ExN02VisManager.hh index 51e5f64a06..fc3ce5b409 100644 --- a/examples/novice/N02/include/ExN02VisManager.hh +++ b/examples/novice/N02/include/ExN02VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN02VisManager.hh,v 1.6 2002/01/09 17:24:09 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N02/src/ExN02ChamberParameterisation.cc b/examples/novice/N02/src/ExN02ChamberParameterisation.cc index 5ffab7a12e..33790e97a6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 82a66dd158..a75b5009ea 100644 --- a/examples/novice/N02/src/ExN02DetectorConstruction.cc +++ b/examples/novice/N02/src/ExN02DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02DetectorConstruction.cc,v 1.12 2003/03/25 16:23:24 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02DetectorConstruction.cc,v 1.13 2003/10/06 08:59:40 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -76,37 +76,31 @@ G4VPhysicalVolume* ExN02DetectorConstruction::Construct() { //--------- Material definition --------- - G4double a, iz, z, density; - G4String name, symbol; - G4double temperature, pressure; + G4double a, z; + G4double density, temperature, pressure; G4int nel; //Air - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxigen", symbol="O", iz=8., a); - density = 1.29*mg/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); + 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); - //Pb - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Pb = new G4Material(name="Pb", z=82., a, density); + //Lead + G4Material* Pb = + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); //Xenon gas - density = 5.458*mg/cm3; - pressure = 1*atmosphere; - temperature = 293.15*kelvin; - G4Material* Xenon = new G4Material(name="XenonGas", z=54., a=131.29*g/mole, - density, kStateGas,temperature,pressure); + G4Material* Xenon = + new G4Material("XenonGas", z=54., a=131.29*g/mole, density= 5.458*mg/cm3, + kStateGas, temperature= 1*atmosphere, pressure= 293.15*kelvin); // Print all the materials defined. // - G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; - G4cout << *(G4Material::GetMaterialTable()) << G4endl; + G4cout << G4endl << "The materials defined are : " << G4endl << G4endl; + G4cout << *(G4Material::GetMaterialTable()) << G4endl; //--------- Sizes of the principal geometrical components (solids) --------- diff --git a/examples/novice/N02/src/ExN02DetectorMessenger.cc b/examples/novice/N02/src/ExN02DetectorMessenger.cc index 290551fb0c..6b0baa2b90 100644 --- a/examples/novice/N02/src/ExN02DetectorMessenger.cc +++ b/examples/novice/N02/src/ExN02DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02DetectorMessenger.cc,v 1.9 2002/12/16 16:31:43 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2b80907f88..9a48479957 100644 --- a/examples/novice/N02/src/ExN02EventAction.cc +++ b/examples/novice/N02/src/ExN02EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02EventAction.cc,v 1.8 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6e8901d4a2..6cde845678 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // User Field class implementation. // diff --git a/examples/novice/N02/src/ExN02PhysicsList.cc b/examples/novice/N02/src/ExN02PhysicsList.cc index 9a149082b6..9a2be048c2 100644 --- a/examples/novice/N02/src/ExN02PhysicsList.cc +++ b/examples/novice/N02/src/ExN02PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02PhysicsList.cc,v 1.15 2003/06/16 16:49:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02PhysicsList.cc,v 1.17 2003/10/24 12:27:53 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -31,7 +31,6 @@ #include "ExN02PhysicsList.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" @@ -180,13 +179,13 @@ void ExN02PhysicsList::ConstructEM() //electron 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); } else if (particleName == "e+") { //positron 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); } else if( particleName == "mu+" || @@ -194,8 +193,8 @@ void ExN02PhysicsList::ConstructEM() //muon 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); + pmanager->AddProcess(new G4MuBremsstrahlung, -1, 3,3); + pmanager->AddProcess(new G4MuPairProduction, -1, 4,4); } else if ((!particle->IsShortLived()) && (particle->GetPDGCharge() != 0.0) && diff --git a/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc b/examples/novice/N02/src/ExN02PrimaryGeneratorAction.cc index 564980b2ed..54683cedda 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 517486a99c..c585099011 100644 --- a/examples/novice/N02/src/ExN02RunAction.cc +++ b/examples/novice/N02/src/ExN02RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02RunAction.cc,v 1.7 2002/01/09 17:24:10 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 5a40cf87cb..25c86b7aed 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 fb3c0c013b..87d81a0897 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7094a989ce..17337a4616 100644 --- a/examples/novice/N02/src/ExN02TrackerHit.cc +++ b/examples/novice/N02/src/ExN02TrackerHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN02TrackerHit.cc,v 1.8 2003/05/28 09:54:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b864c15399..a118b09814 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N02/src/ExN02VisManager.cc b/examples/novice/N02/src/ExN02VisManager.cc index 8c3a7776cf..691b3b9929 100755 --- a/examples/novice/N02/src/ExN02VisManager.cc +++ b/examples/novice/N02/src/ExN02VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN02VisManager.cc,v 1.9 2002/11/13 19:14:31 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN02VisManager.cc,v 1.10 2003/11/10 14:30:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void ExN02VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/novice/N03/History b/examples/novice/N03/History index 9f972f2e81..abf5d0c68f 100644 --- a/examples/novice/N03/History +++ b/examples/novice/N03/History @@ -1,4 +1,4 @@ -$Id: History,v 1.62 2003/06/10 12:51:47 maire Exp $ +$Id: History,v 1.72 2003/12/01 21:09:20 perl Exp $ -------------------------------------------------- ========================================================= @@ -14,7 +14,43 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- - + +01-12-03 J.Perl (exampleN03-V05-02-08) +- Removed extraneous flushes from visTutor/heprep.mac to match new + endOfRunAction behavior. +- Cleaned up vis.mac. +- Cleaned up vis part of README. + +27-11-03 G.Cosmo (exampleN03-V05-02-07) +- Removed OPACS script from visTutor. renamed scripts 6/7/8/9 to + 5/6/7/8 respectively. Added scripts to gui.mac. + +25-11-03 G.Cosmo (exampleN03-V05-02-06) +- Open the geometry before cleaning stores in ConstructCalorimeter(). + +12-11-03 J.Allison (exampleN03-V05-02-05) +- ExN03EventAction: changed drawing mode from 2000 to 1000. + +06-11-03 J.Allison (exampleN03-V05-02-04) +- ExN03RunAction: removed ApplyCommand("/vis/...") statements. + +06-11-03 J.Allison (exampleN03-V05-02-03) +- ExN03EventAction: + o changed to use G4VVisManager::Draw(const G4VTrajectory&, G4int draw_mode). + o increased drawing mode from 50 to 2000. + +06-11-03 J.Allison (exampleN03-V05-02-02) +- Removed OPACS from ExN03VisManager. + +24-10-03 mma (exampleN03-V05-02-01) +- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +15-09-03 mma (exampleN03-V05-02-00) +- suppresion of sensitive detector and hits. +- DetectorConstruction::DefineMaterials() invoked in constructor. + The UI commands /N03/det work in preInit state as well in Idle. +- suppression of specific code for curvated trajectories. + 10-06-03 mma (exampleN03-V05-01-02) - mv heprep.mac in visTutor - back to eventAction.cc 1.17 diff --git a/examples/novice/N03/README b/examples/novice/N03/README index 7bf7261439..f2f4824186 100644 --- a/examples/novice/N03/README +++ b/examples/novice/N03/README @@ -1,4 +1,4 @@ -$Id: README,v 1.10 2003/01/30 14:14:17 maire Exp $ +$Id: README,v 1.15 2003/12/02 14:22:31 maire Exp $ ------------------------------------------------------------------- ========================================================= @@ -46,37 +46,38 @@ $Id: README,v 1.10 2003/01/30 14:14:17 maire Exp $ In addition one can choose randomly the impact point of the incident particle. The corresponding interactive command is built in - PrimaryGeneratorMessenger class. + PrimaryGeneratorMessenger class (see run2.mac). A RUN is a set of events. - 3- DETECTOR RESPONSE - - A HIT is a record, event per event and volume per volume, of all the - informations needed to simulate and analyse the detector response. - - In this example a CalorHit is defined as a set of 4 informations per - layer : - - the total energy deposit in the absorber plate, - - the total tracklength of all charged particles in the absorber plate, - - the total energy deposit in the detection gap, - - the total tracklength of all charged particles in the detection gap. - - Therefore both the absorber and the detection gap are declared - 'sensitive detector' (SD), which means they can contribute to the hit. - - At the end of a run, from the CalorHitsCollection, one can study the - calorimeter performances such as : - - shower profile, - - calorimeter resolution, - - pi/e ratio ... - 4- VISUALIZATION + 3- VISUALIZATION The Visualization Manager is set in the main(). The initialisation of the drawing is done via a set of /vis/ commands in the macro vis.mac. This macro is automatically read from the main in case of interactive running mode. + + By default, vis.mac opens a DAWNFILE, suitable for viewing in DAWN, + and an OGLX for OpenGl. + You can switch to other graphics systems by commenting out this line + and instead uncommenting one of the other /vis/open statements, such as + HepRepFile or HepRepXML. + + The DAWNFILE, HepRepFile and HepRepXML drivers are always available + (since they require no external libraries), but the OGLIX driver + requires: + 1- the visualisation & interfaces categories have been compiled + with the environment variable G4VIS_BUILD_OPENGLX_DRIVER. + 2- exampleN03.cc has been compiled with G4VIS_USE_OPENGLX. + + The HepRepXML driver outputs a zip file that can be unzipped into + several individual HepRep files, each viewable in WIRED. + + For more information on visualization, including information on how to + install and run DAWN, OpenGL and WIRED, see the visualization tutorials + on the Geant4 Workshop Tutorial CD available at: + http://geant4.slac.stanford.edu/g4cd/Welcome.html The detector has a default view which is a longitudinal view of the calorimeter. @@ -84,26 +85,16 @@ $Id: README,v 1.10 2003/01/30 14:14:17 maire Exp $ 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, or neutral or none. This command is build in EventActionMessenger class. - - NB 1: the visualization (with OpenGL driver) assumes two things: - 1- the visualisation & interfaces categories have been compiled - with the environment variable G4VIS_BUILD_OPENGLX_DRIVER. - 2- exampleN03.cc has been compiled with G4VIS_USE_OPENGLX. - - NB 2: the visualization (with DAWNFILE driver) assumes two things: - 1- the visualisation & interfaces categories have been compiled - with the environment variable G4VIS_BUILD_DAWNFILE_DRIVER. - 2- exampleN03.cc has been compiled with G4VIS_USE_DAWNFILE. - NN 3: The macros "visTutor/exN03VisX.mac" are tutorial macros for - visualization. They can be tried as: + Additional visualization tutorial macros are available in the visTutor + subdirectory. They can be tried as: % $G4BINDIR/exampleN03 idle > /control/execute visTutor/exN03VisX.mac - For details, see comment lines described in the macro files. - These macros are designed to help your understanding the - User's Guide. + For details, see comment lines described in the macro files. + These macros are designed to help your understanding the User's Guide. - 5- PHYSICS DEMO + + 4- PHYSICS DEMO The particle's type and the physic processes which will be available in this example are set in PhysicsList class. @@ -113,11 +104,12 @@ $Id: README,v 1.10 2003/01/30 14:14:17 maire Exp $ allows to activate/inactivate the processes one by one. Then one can well visualize the processes one by one, especially in the bubble chamber setup with a transverse magnetic field. + (see run2.mac and newgeom.mac) As a homework try to visualize a gamma conversion alone, or the effect of the multiple scattering. - 6- RANDOM NUMBERS HANDLING + 5- RANDOM NUMBERS HANDLING CLHEP provides several random number engines. In this example the Ranecu engine is choosen at beginning of the main (exampleN03.cc). @@ -142,9 +134,9 @@ $Id: README,v 1.10 2003/01/30 14:14:17 maire Exp $ /random/resetEngineFrom fileName The macro rndmSeed.mac shows how to save and reset the random number - seed between runs, with UI commands. + seed between runs, from UI commands. - 7- USER INTERFACES + 6- USER INTERFACES The default command interface, called G4UIterminal, is done via standart cin/G4cout. @@ -156,7 +148,7 @@ $Id: README,v 1.10 2003/01/30 14:14:17 maire Exp $ 2- exampleN03.cc has been compiled with G4UI_USE_XM. - 8- HOW TO START ? + 7- HOW TO START ? - compile and link to generate an executable % cd N03 @@ -168,7 +160,11 @@ $Id: README,v 1.10 2003/01/30 14:14:17 maire Exp $ - execute N03 in 'interactive mode' with visualization % exampleN03 .... - Idle> type your commands. For instance: + Idle> ---> type your commands. For instance: + Idle> /run/beamOn + .... + Idle> /run/beamOn 10 + .... Idle> /control/execute newgeom.mac .... Idle> exit diff --git a/examples/novice/N03/exampleN03.cc b/examples/novice/N03/exampleN03.cc index 009a743b5a..93a1c3a880 100644 --- a/examples/novice/N03/exampleN03.cc +++ b/examples/novice/N03/exampleN03.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN03.cc,v 1.18 2002/12/18 15:17:55 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: exampleN03.cc,v 1.19 2003/09/15 15:38:08 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -49,7 +49,6 @@ #include "ExN03RunAction.hh" #include "ExN03EventAction.hh" #include "ExN03SteppingAction.hh" -#include "ExN03TrackingAction.hh" #include "ExN03SteppingVerbose.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -95,9 +94,9 @@ int main(int argc,char** argv) { // set user action classes runManager->SetUserAction(new ExN03PrimaryGeneratorAction(detector)); runManager->SetUserAction(new ExN03RunAction); - runManager->SetUserAction(new ExN03EventAction); - runManager->SetUserAction(new ExN03TrackingAction); - runManager->SetUserAction(new ExN03SteppingAction); + ExN03EventAction* eventaction = new ExN03EventAction; + runManager->SetUserAction(eventaction); + runManager->SetUserAction(new ExN03SteppingAction(detector, eventaction)); //Initialize G4 kernel runManager->Initialize(); diff --git a/examples/novice/N03/exampleN03.out b/examples/novice/N03/exampleN03.out index cfe2930ccc..8ac394cef0 100644 --- a/examples/novice/N03/exampleN03.out +++ b/examples/novice/N03/exampleN03.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 75 eV; @@ -51,7 +51,7 @@ G4Material: Mean excitation energy is changed for Water Iold= 70.8926eV; Inew= 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: 2.73 K pressure: 0.00 atm RadLength: 204727576.737 pc + Material: Galactic density: 0.000 mg/cm3 temperature: 0.00 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 @@ -89,54 +89,78 @@ compt: Total cross sections from a parametrisation. Good description from 10 Ke Scattered gamma energy according Klein-Nishina. PhysicsTables from 1 keV to 100 GeV in 80 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ============================== @@ -172,10 +196,8 @@ Index : 2 used in the geometry : Yes recalculation needed : No Current couple of seeds = 9876, 54321 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 289.686 MeV total track length: 19.8422 cm - Gap: total energy: 9.06254 MeV total track length: 4.31048 cm - - 10 hits are stored in ExN03CalorHitsCollection. + Absorber: total energy: 271.592 MeV total track length: 19.2058 cm + Gap: total energy: 16.7582 MeV total track length: 8.5303 cm Transportation, hIoni, msc, eIoni eBrem, annihil, conv, compt phot, MuIoni, MuBrems, MuPairProd @@ -186,24 +208,11 @@ Index : 2 used in the geometry : Yes recalculation needed : No --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 1226213735, 826559569 + Current couple of seeds = 127465985, 187731249 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 276.166 MeV total track length: 18.9134 cm - Gap: total energy: 15.6654 MeV total track length: 7.28457 cm - - 10 hits are stored in ExN03CalorHitsCollection. - ------------------------------------------------------------- ----> The calorimeter is 10 layers of: [ 10mm of Aluminium + 5mm of liquidArgon ] ------------------------------------------------------------- - ------------------------------------------------------------- ----> The calorimeter is 10 layers of: [ 10mm of Aluminium + 5mm of Aerogel ] ------------------------------------------------------------- -WARNING - Attempt to delete the physical volume store while geometry closed ! -WARNING - Attempt to delete the logical volume store while geometry closed ! -WARNING - Attempt to delete the solid store while geometry closed ! + Absorber: total energy: 276.87 MeV total track length: 19.5233 cm + Gap: total energy: 16.643 MeV total track length: 7.51866 cm ------------------------------------------------------------ ---> The calorimeter is 30 layers of: [ 20mm of Aluminium + 50mm of Aerogel ] @@ -217,66 +226,88 @@ compt: Total cross sections from a parametrisation. Good description from 10 Ke Scattered gamma energy according Klein-Nishina. PhysicsTables from 1 keV to 100 GeV in 80 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ### Run 2 start. ---> Begin of event: 0 --------- Ranecu engine status --------- Initial seed (index) = 0 - Current couple of seeds = 70762015, 1383300286 + Current couple of seeds = 372828161, 377097276 ---------------------------------------- ---> End of event: 0 - Absorber: total energy: 387.309 MeV total track length: 92.7348 cm - Gap: total energy: 84.8253 MeV total track length: 2.40318 m - - 27 hits are stored in ExN03CalorHitsCollection. + Absorber: total energy: 344.584 MeV total track length: 82.3111 cm + Gap: total energy: 67.6844 MeV total track length: 1.98559 m Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N03/include/ExN03CalorHit.hh b/examples/novice/N03/include/ExN03CalorHit.hh deleted file mode 100644 index 37ba9bc383..0000000000 --- a/examples/novice/N03/include/ExN03CalorHit.hh +++ /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. * -// ******************************************************************** -// -// -// $Id: ExN03CalorHit.hh,v 1.6 2003/05/28 10:08:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#ifndef ExN03CalorHit_h -#define ExN03CalorHit_h 1 - -#include "G4VHit.hh" -#include "G4THitsCollection.hh" -#include "G4Allocator.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class ExN03CalorHit : public G4VHit -{ - public: - - ExN03CalorHit(); - ~ExN03CalorHit(); - ExN03CalorHit(const ExN03CalorHit&); - const ExN03CalorHit& operator=(const ExN03CalorHit&); - G4int operator==(const ExN03CalorHit&) const; - - inline void* operator new(size_t); - inline void operator delete(void*); - - void Draw(); - void Print(); - - public: - - void AddAbs(G4double de, G4double dl) {EdepAbs += de; TrackLengthAbs += dl;}; - void AddGap(G4double de, G4double dl) {EdepGap += de; TrackLengthGap += dl;}; - - G4double GetEdepAbs() { return EdepAbs; }; - G4double GetTrakAbs() { return TrackLengthAbs; }; - G4double GetEdepGap() { return EdepGap; }; - G4double GetTrakGap() { return TrackLengthGap; }; - - private: - - G4double EdepAbs, TrackLengthAbs; - G4double EdepGap, TrackLengthGap; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -typedef G4THitsCollection ExN03CalorHitsCollection; - -extern G4Allocator ExN03CalorHitAllocator; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline void* ExN03CalorHit::operator new(size_t) -{ - void* aHit; - aHit = (void*) ExN03CalorHitAllocator.MallocSingle(); - return aHit; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -inline void ExN03CalorHit::operator delete(void* aHit) -{ - ExN03CalorHitAllocator.FreeSingle((ExN03CalorHit*) aHit); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif diff --git a/examples/novice/N03/include/ExN03DetectorConstruction.hh b/examples/novice/N03/include/ExN03DetectorConstruction.hh index b2c04cddc5..8efc6b4f8b 100644 --- a/examples/novice/N03/include/ExN03DetectorConstruction.hh +++ b/examples/novice/N03/include/ExN03DetectorConstruction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorConstruction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03DetectorConstruction.hh,v 1.6 2003/09/15 15:38:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,7 +41,6 @@ class G4VPhysicalVolume; class G4Material; class G4UniformMagField; class ExN03DetectorMessenger; -class ExN03CalorimeterSD; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -132,7 +131,6 @@ class ExN03DetectorConstruction : public G4VUserDetectorConstruction G4UniformMagField* magField; //pointer to the magnetic field ExN03DetectorMessenger* detectorMessenger; //pointer to the Messenger - ExN03CalorimeterSD* calorimeterSD; //pointer to the sensitive detector private: diff --git a/examples/novice/N03/include/ExN03DetectorMessenger.hh b/examples/novice/N03/include/ExN03DetectorMessenger.hh index 151139786b..7506c8a71a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/include/ExN03EventAction.hh b/examples/novice/N03/include/ExN03EventAction.hh index 0a6cbac255..d8fedd74b4 100644 --- a/examples/novice/N03/include/ExN03EventAction.hh +++ b/examples/novice/N03/include/ExN03EventAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventAction.hh,v 1.7 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03EventAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,22 +41,28 @@ class ExN03EventActionMessenger; class ExN03EventAction : public G4UserEventAction { - public: - ExN03EventAction(); - virtual ~ExN03EventAction(); + public: + ExN03EventAction(); + ~ExN03EventAction(); - public: - virtual void BeginOfEventAction(const G4Event*); - virtual void EndOfEventAction(const G4Event*); + public: + void BeginOfEventAction(const G4Event*); + void EndOfEventAction(const G4Event*); - void SetDrawFlag (G4String val) {drawFlag = val;}; - void SetPrintModulo(G4int val) {printModulo = val;}; + void AddAbs(G4double de, G4double dl) {EnergyAbs += de; TrackLAbs += dl;}; + void AddGap(G4double de, G4double dl) {EnergyGap += de; TrackLGap += dl;}; + + void SetDrawFlag (G4String val) {drawFlag = val;}; + void SetPrintModulo(G4int val) {printModulo = val;}; - private: - G4int calorimeterCollID; - G4String drawFlag; - G4int printModulo; - ExN03EventActionMessenger* eventMessenger; + private: + G4double EnergyAbs, EnergyGap; + G4double TrackLAbs, TrackLGap; + + G4String drawFlag; + G4int printModulo; + + ExN03EventActionMessenger* eventMessenger; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/include/ExN03EventActionMessenger.hh b/examples/novice/N03/include/ExN03EventActionMessenger.hh index 8c3254bb1e..8bdb7482cb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/include/ExN03PhysicsList.hh b/examples/novice/N03/include/ExN03PhysicsList.hh index 44f5565b39..8192a37d3b 100644 --- a/examples/novice/N03/include/ExN03PhysicsList.hh +++ b/examples/novice/N03/include/ExN03PhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PhysicsList.hh,v 1.10 2002/03/08 10:48:30 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03PhysicsList.hh,v 1.11 2003/09/15 15:38:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh index b536b0eee6..f976b33580 100644 --- a/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh +++ b/examples/novice/N03/include/ExN03PrimaryGeneratorAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PrimaryGeneratorAction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03PrimaryGeneratorAction.hh,v 1.6 2003/09/15 15:38:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh b/examples/novice/N03/include/ExN03PrimaryGeneratorMessenger.hh index 166dc2c037..e8b493b750 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/include/ExN03RunAction.hh b/examples/novice/N03/include/ExN03RunAction.hh index 0467e4d7a1..9d88e0f969 100644 --- a/examples/novice/N03/include/ExN03RunAction.hh +++ b/examples/novice/N03/include/ExN03RunAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03RunAction.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03RunAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/include/ExN03SteppingAction.hh b/examples/novice/N03/include/ExN03SteppingAction.hh index 38f194a983..79b3c263c3 100644 --- a/examples/novice/N03/include/ExN03SteppingAction.hh +++ b/examples/novice/N03/include/ExN03SteppingAction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingAction.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03SteppingAction.hh,v 1.8 2003/09/15 15:38:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -34,15 +34,22 @@ #include "G4UserSteppingAction.hh" +class ExN03DetectorConstruction; +class ExN03EventAction; + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... class ExN03SteppingAction : public G4UserSteppingAction { public: - ExN03SteppingAction(); + ExN03SteppingAction(ExN03DetectorConstruction*, ExN03EventAction*); ~ExN03SteppingAction(); void UserSteppingAction(const G4Step*); + + private: + ExN03DetectorConstruction* detector; + ExN03EventAction* eventaction; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/include/ExN03SteppingVerbose.hh b/examples/novice/N03/include/ExN03SteppingVerbose.hh index a1cf6e5733..b416bfb96a 100644 --- a/examples/novice/N03/include/ExN03SteppingVerbose.hh +++ b/examples/novice/N03/include/ExN03SteppingVerbose.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingVerbose.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03SteppingVerbose.hh,v 1.8 2003/09/15 15:38:15 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/include/ExN03VisManager.hh b/examples/novice/N03/include/ExN03VisManager.hh index 769b137f62..b66816cac1 100644 --- a/examples/novice/N03/include/ExN03VisManager.hh +++ b/examples/novice/N03/include/ExN03VisManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03VisManager.hh,v 1.6 2002/01/09 17:24:12 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03VisManager.hh,v 1.7 2003/09/15 15:38:15 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/newgeom.mac b/examples/novice/N03/newgeom.mac index 7c9b88aa6d..215710546a 100644 --- a/examples/novice/N03/newgeom.mac +++ b/examples/novice/N03/newgeom.mac @@ -17,8 +17,8 @@ # /N03/det/setSizeYZ 40 cm # -/N03/det/update -# /N03/det/setField 3 tesla # +/N03/det/update +# /vis/viewer/zoom 1.3 diff --git a/examples/novice/N03/src/ExN03CalorimeterSD.cc b/examples/novice/N03/src/ExN03CalorimeterSD.cc deleted file mode 100644 index e0c40c25d1..0000000000 --- a/examples/novice/N03/src/ExN03CalorimeterSD.cc +++ /dev/null @@ -1,139 +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: ExN03CalorimeterSD.cc,v 1.7 2003/05/28 10:08:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "ExN03CalorimeterSD.hh" - -#include "ExN03CalorHit.hh" -#include "ExN03DetectorConstruction.hh" - -#include "G4VPhysicalVolume.hh" -#include "G4Step.hh" -#include "G4VTouchable.hh" -#include "G4TouchableHistory.hh" -#include "G4SDManager.hh" - -#include "G4ios.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN03CalorimeterSD::ExN03CalorimeterSD(G4String name, - ExN03DetectorConstruction* det) -:G4VSensitiveDetector(name),Detector(det) -{ - collectionName.insert("CalCollection"); - HitID = new G4int[500]; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -ExN03CalorimeterSD::~ExN03CalorimeterSD() -{ - delete [] HitID; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03CalorimeterSD::Initialize(G4HCofThisEvent*) -{ - CalCollection = new ExN03CalorHitsCollection - (SensitiveDetectorName,collectionName[0]); - for (G4int j=0;jGetNbOfLayers();j++) {HitID[j] = -1;}; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool ExN03CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory*) -{ - G4double edep = aStep->GetTotalEnergyDeposit(); - - G4double stepl = 0.; - if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.) - stepl = aStep->GetStepLength(); - - if ((edep==0.)&&(stepl==0.)) return false; - - G4TouchableHistory* theTouchable - = (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable()); - - G4VPhysicalVolume* physVol = theTouchable->GetVolume(); - //theTouchable->MoveUpHistory(); - G4int LayerNumber = 0; - if(Detector->GetNbOfLayers()>1) LayerNumber=theTouchable->GetReplicaNumber(1); - - if (HitID[LayerNumber]==-1) - { - ExN03CalorHit* calHit = new ExN03CalorHit(); - if (physVol == Detector->GetAbsorber()) calHit->AddAbs(edep,stepl); - if (physVol == Detector->GetGap ()) calHit->AddGap(edep,stepl); - HitID[LayerNumber] = CalCollection->insert(calHit) - 1; - if (verboseLevel>0) - G4cout << " New Calorimeter Hit on layer: " << LayerNumber << G4endl; - } - else - { - if (physVol == Detector->GetAbsorber()) - (*CalCollection)[HitID[LayerNumber]]->AddAbs(edep,stepl); - if (physVol == Detector->GetGap()) - (*CalCollection)[HitID[LayerNumber]]->AddGap(edep,stepl); - if (verboseLevel>0) - G4cout << " Energy added to Layer: " << LayerNumber << G4endl; - } - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03CalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE) -{ - static G4int HCID = -1; - if(HCID<0) - { HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]); } - HCE->AddHitsCollection(HCID,CalCollection); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03CalorimeterSD::clear() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03CalorimeterSD::DrawAll() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void ExN03CalorimeterSD::PrintAll() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/examples/novice/N03/src/ExN03DetectorConstruction.cc b/examples/novice/N03/src/ExN03DetectorConstruction.cc index 7500415ec4..098e6c9903 100644 --- a/examples/novice/N03/src/ExN03DetectorConstruction.cc +++ b/examples/novice/N03/src/ExN03DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorConstruction.cc,v 1.17 2003/05/21 15:26:59 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03DetectorConstruction.cc,v 1.19 2003/11/25 14:23:44 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -32,21 +32,14 @@ #include "ExN03DetectorConstruction.hh" #include "ExN03DetectorMessenger.hh" -#include "ExN03CalorimeterSD.hh" - #include "G4Material.hh" #include "G4Box.hh" #include "G4LogicalVolume.hh" #include "G4PVPlacement.hh" #include "G4PVReplica.hh" -#include "G4FieldManager.hh" #include "G4UniformMagField.hh" -#include "G4TransportationManager.hh" -#include "G4IdentityTrajectoryFilter.hh" -#include "G4PropagatorInField.hh" -#include "G4SDManager.hh" -#include "G4RunManager.hh" +#include "G4GeometryManager.hh" #include "G4PhysicalVolumeStore.hh" #include "G4LogicalVolumeStore.hh" #include "G4SolidStore.hh" @@ -54,8 +47,6 @@ #include "G4VisAttributes.hh" #include "G4Colour.hh" -#include "G4ios.hh" - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... ExN03DetectorConstruction::ExN03DetectorConstruction() @@ -65,7 +56,7 @@ ExN03DetectorConstruction::ExN03DetectorConstruction() solidLayer(0),logicLayer(0),physiLayer(0), solidAbsorber(0),logicAbsorber(0),physiAbsorber(0), solidGap (0),logicGap (0),physiGap (0), - magField(0),calorimeterSD(0) + magField(0) { // default parameter values of the calorimeter AbsorberThickness = 10.*mm; @@ -73,10 +64,14 @@ ExN03DetectorConstruction::ExN03DetectorConstruction() NbOfLayers = 10; CalorSizeYZ = 10.*cm; ComputeCalorParameters(); - + + // materials + DefineMaterials(); + SetAbsorberMaterial("Lead"); + SetGapMaterial("liquidArgon"); + // create commands for interactive definition of the calorimeter detectorMessenger = new ExN03DetectorMessenger(this); - DefineMaterials(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -97,42 +92,32 @@ void ExN03DetectorConstruction::DefineMaterials() { //This function illustrates the possible ways to define materials -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; +G4String 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 ncomponents, natoms; G4double abundance, fractionmass; -G4double temperature, pressure; // // define Elements // -a = 1.01*g/mole; -G4Element* H = new G4Element(name="Hydrogen",symbol="H" , z= 1., a); - -a = 12.01*g/mole; -G4Element* C = new G4Element(name="Carbon" ,symbol="C" , z= 6., a); - -a = 14.01*g/mole; -G4Element* N = new G4Element(name="Nitrogen",symbol="N" , z= 7., a); - -a = 16.00*g/mole; -G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a); - -a = 28.09*g/mole; -G4Element* Si = new G4Element(name="Silicon",symbol="Si" , z= 14., a); +G4Element* H = new G4Element("Hydrogen",symbol="H" , z= 1., a= 1.01*g/mole); +G4Element* C = new G4Element("Carbon" ,symbol="C" , z= 6., a= 12.01*g/mole); +G4Element* N = new G4Element("Nitrogen",symbol="N" , z= 7., a= 14.01*g/mole); +G4Element* O = new G4Element("Oxygen" ,symbol="O" , z= 8., a= 16.00*g/mole); +G4Element* Si = new G4Element("Silicon",symbol="Si" , z= 14., a= 28.09*g/mole); // // define an Element from isotopes, by relative abundance // -G4Isotope* U5 = new G4Isotope(name="U235", iz=92, n=235, a=235.01*g/mole); -G4Isotope* U8 = new G4Isotope(name="U238", iz=92, n=238, a=238.03*g/mole); +G4Isotope* U5 = new G4Isotope("U235", iz=92, n=235, a=235.01*g/mole); +G4Isotope* U8 = new G4Isotope("U238", iz=92, n=238, a=238.03*g/mole); -G4Element* U = new G4Element(name="enriched Uranium",symbol="U",ncomponents=2); +G4Element* U = new G4Element("enriched Uranium",symbol="U",ncomponents=2); U->AddIsotope(U5, abundance= 90.*perCent); U->AddIsotope(U8, abundance= 10.*perCent); @@ -140,40 +125,34 @@ U->AddIsotope(U8, abundance= 10.*perCent); // define simple materials // -new G4Material(name="Aluminium", z=13., a=26.98*g/mole, density=2.700*g/cm3); - -density = 1.390*g/cm3; -a = 39.95*g/mole; -G4Material* lAr = new G4Material(name="liquidArgon", z=18., a, density); - -density = 11.35*g/cm3; -a = 207.19*g/mole; -G4Material* Pb = new G4Material(name="Lead" , z=82., a, density); +new G4Material("Aluminium", z=13., a=26.98*g/mole, density=2.700*g/cm3); +new G4Material("liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*g/cm3); +new G4Material("Lead" , z=82., a= 207.19*g/mole, density= 11.35*g/cm3); // // define a material from elements. case 1: chemical molecule // -density = 1.000*g/cm3; -G4Material* H2O = new G4Material(name="Water", density, ncomponents=2); +G4Material* H2O = +new G4Material("Water", density= 1.000*g/cm3, ncomponents=2); H2O->AddElement(H, natoms=2); H2O->AddElement(O, natoms=1); // overwrite computed meanExcitationEnergy with ICRU recommended value H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV); -density = 1.032*g/cm3; -G4Material* Sci = new G4Material(name="Scintillator", density, ncomponents=2); +G4Material* Sci = +new G4Material("Scintillator", density= 1.032*g/cm3, ncomponents=2); Sci->AddElement(C, natoms=9); Sci->AddElement(H, natoms=10); -density = 1.397*g/cm3; -G4Material* Myl = new G4Material(name="Mylar", density, ncomponents=3); +G4Material* Myl = +new G4Material("Mylar", density= 1.397*g/cm3, ncomponents=3); Myl->AddElement(C, natoms=10); Myl->AddElement(H, natoms= 8); Myl->AddElement(O, natoms= 4); -density = 2.200*g/cm3; -G4Material* SiO2 = new G4Material(name="quartz", density, ncomponents=2); +G4Material* SiO2 = +new G4Material("quartz",density= 2.200*g/cm3, ncomponents=2); SiO2->AddElement(Si, natoms=1); SiO2->AddElement(O , natoms=2); @@ -181,8 +160,8 @@ SiO2->AddElement(O , natoms=2); // define a material from elements. case 2: mixture by fractional mass // -density = 1.290*mg/cm3; -G4Material* Air = new G4Material(name="Air" , density, ncomponents=2); +G4Material* Air = +new G4Material("Air" , density= 1.290*mg/cm3, ncomponents=2); Air->AddElement(N, fractionmass=0.7); Air->AddElement(O, fractionmass=0.3); @@ -190,8 +169,8 @@ Air->AddElement(O, fractionmass=0.3); // define a material from elements and/or others materials (mixture of mixtures) // -density = 0.200*g/cm3; -G4Material* Aerog = new G4Material(name="Aerogel", density, ncomponents=3); +G4Material* Aerog = +new G4Material("Aerogel", density= 0.200*g/cm3, ncomponents=3); Aerog->AddMaterial(SiO2, fractionmass=62.5*perCent); Aerog->AddMaterial(H2O , fractionmass=37.4*perCent); Aerog->AddElement (C , fractionmass= 0.1*perCent); @@ -200,44 +179,34 @@ Aerog->AddElement (C , fractionmass= 0.1*perCent); // examples of gas in non STP conditions // -density = 27.*mg/cm3; -pressure = 50.*atmosphere; -temperature = 325.*kelvin; -G4Material* CO2 = new G4Material(name="CarbonicGas", density, ncomponents=2, - kStateGas,temperature,pressure); +G4Material* CO2 = +new G4Material("CarbonicGas", density= 27.*mg/cm3, ncomponents=2, + kStateGas, 325.*kelvin, 50.*atmosphere); CO2->AddElement(C, natoms=1); CO2->AddElement(O, natoms=2); -density = 0.3*mg/cm3; -pressure = 2.*atmosphere; -temperature = 500.*kelvin; -G4Material* steam = new G4Material(name="WaterSteam", density, ncomponents=1, - kStateGas,temperature,pressure); +G4Material* steam = +new G4Material("WaterSteam", density= 0.3*mg/cm3, ncomponents=1, + kStateGas, 500.*kelvin, 2.*atmosphere); steam->AddMaterial(H2O, fractionmass=1.); // // examples of vacuum // -density = universe_mean_density; -pressure = 3.e-18*pascal; -temperature = 2.73*kelvin; -G4Material* Vacuum = new G4Material(name="Galactic", z=1., a=1.01*g/mole, - density,kStateGas,temperature,pressure); +G4Material* Vacuum = +new G4Material("Galactic", z=1., a=1.01*g/mole,density= universe_mean_density, + kStateGas, 3.e-18*pascal, 2.73*kelvin); -density = 1.e-5*g/cm3; -pressure = 2.e-2*bar; -temperature = STP_Temperature; //from PhysicalConstants.h -G4Material* beam = new G4Material(name="Beam", density, ncomponents=1, - kStateGas,temperature,pressure); +G4Material* beam = +new G4Material("Beam", density= 1.e-5*g/cm3, ncomponents=1, + kStateGas, STP_Temperature, 2.e-2*bar); beam->AddMaterial(Air, fractionmass=1.); G4cout << *(G4Material::GetMaterialTable()) << G4endl; - //default materials of the calorimeter - AbsorberMaterial = Pb; - GapMaterial = lAr; - defaultMaterial = Vacuum; +//default materials of the World +defaultMaterial = Vacuum; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -245,6 +214,9 @@ G4cout << *(G4Material::GetMaterialTable()) << G4endl; G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter() { + // Clean old geometry, if any + // + G4GeometryManager::GetInstance()->OpenGeometry(); G4PhysicalVolumeStore::GetInstance()->Clean(); G4LogicalVolumeStore::GetInstance()->Clean(); G4SolidStore::GetInstance()->Clean(); @@ -361,22 +333,9 @@ G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter() logicLayer, //its mother false, //no boulean operat 0); //copy number - } - - // - // Sensitive Detectors: Absorber and Gap - // - G4SDManager* SDman = G4SDManager::GetSDMpointer(); - - if(!calorimeterSD) - { - calorimeterSD = new ExN03CalorimeterSD("CalorSD",this); - SDman->AddNewDetector( calorimeterSD ); - } - if (logicAbsorber) - logicAbsorber->SetSensitiveDetector(calorimeterSD); - if (logicGap) - logicGap ->SetSensitiveDetector(calorimeterSD); + } + + PrintCalorParameters(); // // Visualization attributes @@ -389,7 +348,6 @@ G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter() // //always return the physical World // - PrintCalorParameters(); return physiWorld; } @@ -411,11 +369,7 @@ void ExN03DetectorConstruction::SetAbsorberMaterial(G4String materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - {AbsorberMaterial = pttoMaterial; - if(logicAbsorber) logicAbsorber->SetMaterial(pttoMaterial); - PrintCalorParameters(); - } + if (pttoMaterial) AbsorberMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -424,11 +378,7 @@ void ExN03DetectorConstruction::SetGapMaterial(G4String materialChoice) { // search the material by its name G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice); - if (pttoMaterial) - {GapMaterial = pttoMaterial; - if(logicGap) logicGap->SetMaterial(pttoMaterial); - PrintCalorParameters(); - } + if (pttoMaterial) GapMaterial = pttoMaterial; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -464,6 +414,9 @@ void ExN03DetectorConstruction::SetNbOfLayers(G4int val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "G4FieldManager.hh" +#include "G4TransportationManager.hh" + void ExN03DetectorConstruction::SetMagField(G4double fieldValue) { //apply a global uniform magnetic field along Z axis @@ -476,8 +429,6 @@ void ExN03DetectorConstruction::SetMagField(G4double fieldValue) { magField = new G4UniformMagField(G4ThreeVector(0.,0.,fieldValue)); fieldMgr->SetDetectorField(magField); fieldMgr->CreateChordFinder(magField); - G4TransportationManager::GetTransportationManager()->GetPropagatorInField() - ->SetTrajectoryFilter(new G4IdentityTrajectoryFilter); } else { magField = 0; fieldMgr->SetDetectorField(magField); @@ -486,6 +437,8 @@ void ExN03DetectorConstruction::SetMagField(G4double fieldValue) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +#include "G4RunManager.hh" + void ExN03DetectorConstruction::UpdateGeometry() { G4RunManager::GetRunManager()->DefineWorldVolume(ConstructCalorimeter()); diff --git a/examples/novice/N03/src/ExN03DetectorMessenger.cc b/examples/novice/N03/src/ExN03DetectorMessenger.cc index 19abd3a471..040fb789f6 100644 --- a/examples/novice/N03/src/ExN03DetectorMessenger.cc +++ b/examples/novice/N03/src/ExN03DetectorMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03DetectorMessenger.cc,v 1.8 2002/12/16 16:37:27 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03DetectorMessenger.cc,v 1.9 2003/09/15 15:38:18 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -53,39 +53,39 @@ ExN03DetectorMessenger::ExN03DetectorMessenger( AbsMaterCmd = new G4UIcmdWithAString("/N03/det/setAbsMat",this); AbsMaterCmd->SetGuidance("Select Material of the Absorber."); AbsMaterCmd->SetParameterName("choice",false); - AbsMaterCmd->AvailableForStates(G4State_Idle); + AbsMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); GapMaterCmd = new G4UIcmdWithAString("/N03/det/setGapMat",this); GapMaterCmd->SetGuidance("Select Material of the Gap."); GapMaterCmd->SetParameterName("choice",false); - GapMaterCmd->AvailableForStates(G4State_Idle); + GapMaterCmd->AvailableForStates(G4State_PreInit,G4State_Idle); AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/N03/det/setAbsThick",this); AbsThickCmd->SetGuidance("Set Thickness of the Absorber"); AbsThickCmd->SetParameterName("Size",false); AbsThickCmd->SetRange("Size>=0."); AbsThickCmd->SetUnitCategory("Length"); - AbsThickCmd->AvailableForStates(G4State_Idle); + AbsThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); GapThickCmd = new G4UIcmdWithADoubleAndUnit("/N03/det/setGapThick",this); GapThickCmd->SetGuidance("Set Thickness of the Gap"); GapThickCmd->SetParameterName("Size",false); GapThickCmd->SetRange("Size>=0."); GapThickCmd->SetUnitCategory("Length"); - GapThickCmd->AvailableForStates(G4State_Idle); + GapThickCmd->AvailableForStates(G4State_PreInit,G4State_Idle); SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/N03/det/setSizeYZ",this); SizeYZCmd->SetGuidance("Set tranverse size of the calorimeter"); SizeYZCmd->SetParameterName("Size",false); SizeYZCmd->SetRange("Size>0."); SizeYZCmd->SetUnitCategory("Length"); - SizeYZCmd->AvailableForStates(G4State_Idle); + SizeYZCmd->AvailableForStates(G4State_PreInit,G4State_Idle); NbLayersCmd = new G4UIcmdWithAnInteger("/N03/det/setNbOfLayers",this); NbLayersCmd->SetGuidance("Set number of layers."); NbLayersCmd->SetParameterName("NbLayers",false); NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500"); - NbLayersCmd->AvailableForStates(G4State_Idle); + NbLayersCmd->AvailableForStates(G4State_PreInit,G4State_Idle); UpdateCmd = new G4UIcmdWithoutParameter("/N03/det/update",this); UpdateCmd->SetGuidance("Update calorimeter geometry."); @@ -98,7 +98,7 @@ ExN03DetectorMessenger::ExN03DetectorMessenger( MagFieldCmd->SetGuidance("Magnetic field will be in Z direction."); MagFieldCmd->SetParameterName("Bz",false); MagFieldCmd->SetUnitCategory("Magnetic flux density"); - MagFieldCmd->AvailableForStates(G4State_Idle); + MagFieldCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03EventAction.cc b/examples/novice/N03/src/ExN03EventAction.cc index 79e15869b5..bca1cb0d26 100644 --- a/examples/novice/N03/src/ExN03EventAction.cc +++ b/examples/novice/N03/src/ExN03EventAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03EventAction.cc,v 1.20 2003/06/16 16:49:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03EventAction.cc,v 1.23 2003/11/12 16:15:48 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -30,27 +30,21 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "ExN03EventAction.hh" - -#include "ExN03CalorHit.hh" #include "ExN03EventActionMessenger.hh" #include "G4Event.hh" -#include "G4EventManager.hh" -#include "G4HCofThisEvent.hh" -#include "G4VHitsCollection.hh" #include "G4TrajectoryContainer.hh" -#include "G4Trajectory.hh" +#include "G4VTrajectory.hh" #include "G4VVisManager.hh" -#include "G4SDManager.hh" -#include "G4UImanager.hh" -#include "G4ios.hh" #include "G4UnitsTable.hh" +#include "Randomize.hh" +#include + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... ExN03EventAction::ExN03EventAction() -:calorimeterCollID(-1),drawFlag("all"),printModulo(1), - eventMessenger(0) +:drawFlag("all"),printModulo(1),eventMessenger(0) { eventMessenger = new ExN03EventActionMessenger(this); } @@ -65,20 +59,16 @@ ExN03EventAction::~ExN03EventAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void ExN03EventAction::BeginOfEventAction(const G4Event* evt) -{ - +{ G4int evtNb = evt->GetEventID(); - if (evtNb%printModulo == 0) - { - G4cout << "\n---> Begin of event: " << evtNb << G4endl; - HepRandom::showEngineStatus(); - } - - if (calorimeterCollID==-1) - { - G4SDManager * SDman = G4SDManager::GetSDMpointer(); - calorimeterCollID = SDman->GetCollectionID("CalCollection"); - } + if (evtNb%printModulo == 0) { + G4cout << "\n---> Begin of event: " << evtNb << G4endl; + HepRandom::showEngineStatus(); + } + + // initialisation per event + EnergyAbs = EnergyGap = 0.; + TrackLAbs = TrackLGap = 0.; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -86,66 +76,47 @@ void ExN03EventAction::BeginOfEventAction(const G4Event* evt) void ExN03EventAction::EndOfEventAction(const G4Event* evt) { G4int evtNb = evt->GetEventID(); - - // extracted from hits, compute the total energy deposit (and total charged - // track length) in all absorbers and in all gaps - G4HCofThisEvent* HCE = evt->GetHCofThisEvent(); - ExN03CalorHitsCollection* CHC = 0; - G4int n_hit = 0; - G4double totEAbs=0, totLAbs=0, totEGap=0, totLGap=0; - - if (HCE) CHC = (ExN03CalorHitsCollection*)(HCE->GetHC(calorimeterCollID)); - - if (CHC) - { - n_hit = CHC->entries(); - for (G4int i=0;iGetEdepAbs(); - totLAbs += (*CHC)[i]->GetTrakAbs(); - totEGap += (*CHC)[i]->GetEdepGap(); - totLGap += (*CHC)[i]->GetTrakGap(); - } - } - - // print this information event by event (modulo n) - if (evtNb%printModulo == 0) { G4cout << "---> End of event: " << evtNb << G4endl; G4cout << " Absorber: total energy: " << std::setw(7) - << G4BestUnit(totEAbs,"Energy") + << G4BestUnit(EnergyAbs,"Energy") << " total track length: " << std::setw(7) - << G4BestUnit(totLAbs,"Length") + << G4BestUnit(TrackLAbs,"Length") << G4endl << " Gap: total energy: " << std::setw(7) - << G4BestUnit(totEGap,"Energy") + << G4BestUnit(EnergyGap,"Energy") << " total track length: " << std::setw(7) - << G4BestUnit(totLGap,"Length") + << G4BestUnit(TrackLGap,"Length") << G4endl; - G4cout << "\n " << n_hit - << " hits are stored in ExN03CalorHitsCollection." << G4endl; } // extract the trajectories and draw them + + // You can get a default drawing without this code by using, e.g., + // /vis/scene/add/trajectories 1000 + // The code here adds sophistication under control of drawFlag. + + // See comments in G4VTrajectory::DrawTrajectory for the + // interpretation of the argument, 1000. - if (G4VVisManager::GetConcreteInstance()) + G4VVisManager* pVisManager = G4VVisManager::GetConcreteInstance(); + if (pVisManager) { 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(50); + { G4VTrajectory* trj = ((*(evt->GetTrajectoryContainer()))[i]); + if (drawFlag == "all") pVisManager->Draw(*trj,1000); else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.)) - trj->DrawTrajectory(50); + pVisManager->Draw(*trj,1000); else if ((drawFlag == "neutral")&&(trj->GetCharge() == 0.)) - trj->DrawTrajectory(50); + pVisManager->Draw(*trj,1000); } } } diff --git a/examples/novice/N03/src/ExN03EventActionMessenger.cc b/examples/novice/N03/src/ExN03EventActionMessenger.cc index 42febad8f5..7000529c38 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/src/ExN03PhysicsList.cc b/examples/novice/N03/src/ExN03PhysicsList.cc index 8be6e76376..d72c0ae5eb 100644 --- a/examples/novice/N03/src/ExN03PhysicsList.cc +++ b/examples/novice/N03/src/ExN03PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PhysicsList.cc,v 1.15 2003/05/21 15:27:00 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03PhysicsList.cc,v 1.17 2003/10/24 12:34:15 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -32,7 +32,6 @@ #include "ExN03PhysicsList.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" @@ -186,6 +185,7 @@ void ExN03PhysicsList::ConstructEM() // 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); @@ -211,6 +211,7 @@ void ExN03PhysicsList::ConstructEM() // 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); @@ -235,6 +236,8 @@ void ExN03PhysicsList::ConstructEM() // 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); diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc index f9c9b7c39f..a6675a3100 100644 --- a/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc +++ b/examples/novice/N03/src/ExN03PrimaryGeneratorAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03PrimaryGeneratorAction.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03PrimaryGeneratorAction.cc,v 1.7 2003/09/15 15:38:18 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc b/examples/novice/N03/src/ExN03PrimaryGeneratorMessenger.cc index c457099759..fcdd552cb3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N03/src/ExN03RunAction.cc b/examples/novice/N03/src/ExN03RunAction.cc index f1bedb805a..c71278709f 100644 --- a/examples/novice/N03/src/ExN03RunAction.cc +++ b/examples/novice/N03/src/ExN03RunAction.cc @@ -21,11 +21,9 @@ // ******************************************************************** // // -// $Id: ExN03RunAction.cc,v 1.12 2003/01/30 14:14:19 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03RunAction.cc,v 1.15 2003/11/25 16:50:13 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -33,9 +31,6 @@ #include "G4Run.hh" #include "G4RunManager.hh" -#include "G4UImanager.hh" -#include "G4VVisManager.hh" -#include "G4ios.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -55,20 +50,10 @@ void ExN03RunAction::BeginOfRunAction(const G4Run* aRun) //inform the runManager to save random number seed G4RunManager::GetRunManager()->SetRandomNumberStore(true); - - //visualization - if (G4VVisManager::GetConcreteInstance()) { - G4UImanager::GetUIpointer()->ApplyCommand("/vis/scene/notifyHandlers"); - } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ExN03RunAction::EndOfRunAction(const G4Run* ) -{ - if (G4VVisManager::GetConcreteInstance()) { - G4UImanager::GetUIpointer()->ApplyCommand("/vis/viewer/update"); - } -} +void ExN03RunAction::EndOfRunAction(const G4Run* ) {} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03SteppingAction.cc b/examples/novice/N03/src/ExN03SteppingAction.cc index 20d073f34c..bc9a72f0d2 100644 --- a/examples/novice/N03/src/ExN03SteppingAction.cc +++ b/examples/novice/N03/src/ExN03SteppingAction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingAction.cc,v 1.7 2003/01/30 14:14:19 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03SteppingAction.cc,v 1.8 2003/09/15 15:38:18 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -31,11 +31,18 @@ #include "ExN03SteppingAction.hh" -#include "G4RunManager.hh" +#include "ExN03DetectorConstruction.hh" +#include "ExN03EventAction.hh" + +#include "G4Track.hh" + +////#include "G4RunManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -ExN03SteppingAction::ExN03SteppingAction() +ExN03SteppingAction::ExN03SteppingAction(ExN03DetectorConstruction* det, + ExN03EventAction* evt) +:detector(det), eventaction(evt) { } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -45,8 +52,23 @@ ExN03SteppingAction::~ExN03SteppingAction() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void ExN03SteppingAction::UserSteppingAction(const G4Step*) +void ExN03SteppingAction::UserSteppingAction(const G4Step* aStep) { + const G4Track* track = aStep->GetTrack(); + G4VPhysicalVolume* volume = track->GetVolume(); + + // collect energy and track length step by step + G4double edep = aStep->GetTotalEnergyDeposit(); + + G4double stepl = 0.; + if (track->GetDefinition()->GetPDGCharge() != 0.) + stepl = aStep->GetStepLength(); + + if ((edep!=0.)) { + if (volume == detector->GetAbsorber()) eventaction->AddAbs(edep,stepl); + if (volume == detector->GetGap()) eventaction->AddGap(edep,stepl); + } + // save the random number seed of this event, under condition //// if(condition) G4RunManager::GetRunManager()->rndmSaveThisEvent(); } diff --git a/examples/novice/N03/src/ExN03SteppingVerbose.cc b/examples/novice/N03/src/ExN03SteppingVerbose.cc index ea69eb5a6e..6afa087028 100644 --- a/examples/novice/N03/src/ExN03SteppingVerbose.cc +++ b/examples/novice/N03/src/ExN03SteppingVerbose.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03SteppingVerbose.cc,v 1.11 2003/06/16 16:49:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03SteppingVerbose.cc,v 1.12 2003/09/15 15:38:18 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N03/src/ExN03VisManager.cc b/examples/novice/N03/src/ExN03VisManager.cc index 03beba6eb0..5eb2012a8d 100755 --- a/examples/novice/N03/src/ExN03VisManager.cc +++ b/examples/novice/N03/src/ExN03VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN03VisManager.cc,v 1.10 2002/11/13 19:14:38 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN03VisManager.cc,v 1.12 2003/11/06 14:37:10 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void ExN03VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/novice/N03/vis.mac b/examples/novice/N03/vis.mac index 405a89019f..dff0aea735 100644 --- a/examples/novice/N03/vis.mac +++ b/examples/novice/N03/vis.mac @@ -15,9 +15,22 @@ # Create a scene handler for a specific graphics system # (Edit the next line(s) to choose another graphic system) # +# Use this open statement to get an .eps and .prim files +# suitable for viewing in DAWN. /vis/open DAWNFILE +# +# Use this open statement instead for OpenGL in immediate mode. /vis/open OGLIX # +# Use this open statement instead to get a HepRep version 1 file +# suitable for viewing in WIRED. +#/vis/open HepRepFile +# +# Use this open statement instead to get a HepRep version 2 file +# suitable for viewing in WIRED. +#/vis/open HepRepXML +# +# Output an empty detector /vis/viewer/flush # # for drawing the tracks @@ -25,3 +38,12 @@ # /tracking/storeTrajectory 1 /vis/scene/endOfEventAction accumulate +# +# At end of each run, an automatic flush causes graphical output. +#/run/beamOn 1 +# When you exit Geant4, you will find a file called scene-0.heprep.zip. +# Unzipping this will give you three separate HepRep files suitable for +# viewing in WIRED. +# The first file will contain just detector geometry. +# The second file will contain the detector plus one event. +# The third file will contain the detector plus ten events. diff --git a/examples/novice/N03/visTutor/History b/examples/novice/N03/visTutor/History index 53261f0b00..45f48c5348 100644 --- a/examples/novice/N03/visTutor/History +++ b/examples/novice/N03/visTutor/History @@ -2,6 +2,10 @@ examples/novice/N03/visTutor/History ==================================== +27-11-03 Gabriele Cosmo +- removed script exN03Vis5.mac of OPACS and renamed scripts 6/7/8/9 to + 5/6/7/8 respectively. Added scripts to gui.mac. + 14-11-01 Satoshi Tanaka (exN03VisTutor-V03-02-02) - exN03Vis8.mac : Batch visualization with the DAWNFILE driver - exN03Vis9.mac : Multi-page PostScript file generation (old exN03Vis8.mac) diff --git a/examples/novice/N03/visTutor/exN03Vis5.mac b/examples/novice/N03/visTutor/exN03Vis5.mac index 4600302e1a..3ce9e48b8e 100644 --- a/examples/novice/N03/visTutor/exN03Vis5.mac +++ b/examples/novice/N03/visTutor/exN03Vis5.mac @@ -1,69 +1,65 @@ ####################################################################### -# MACRO FILE NAME: exN03Vis5.mac # +# MACRO FILE NAME: exN03Vis6.mac # # # # AUTHOR(S): Guy Barrand # # # # DATE: June 09, 2000 # # # -# CONTENTS: A basic macro for demonstrating OPACS/Xo driver # +# CONTENTS: A basic macro for demonstrating Inventor driver # # # -# USAGE: % gmake visclean # -# % $G4BINDIR/exampleN03 visTutor/exN03Vis5.mac # +# USAGE: % $G4BINDIR/exampleN03 visTutor/exN03Vis6.mac # # # # REQUIRED PLATFORMS & SOFTWARES: Unix, Motif, X-window, OpenGL, # -# OPACS (version 3.0) # +# HEPVis # +# Inventor (TGS or SoFree) # # # # ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # # (See geant4/source/visualization/README for details.) # # # -# % setenv G4VIS_BUILD_OPACS_DRIVER 1 # +# % setenv G4VIS_BUILD_OIX_DRIVER 1 # # # # ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # # (See geant4/source/visualization/README for details.) # # # -# % setenv G4VIS_USE_OPACS 1 # +# % setenv G4VIS_USE_OIX 1 # # # # ADDITIONAL NOTES: # -# Controls on a Xo window are : # -# - Ctrl + left-button1 + move pointer : # -# move things (default is scale). # -# - right-button : popup menu to change, for example, the # -# upper behaviour. # -# - left-button : pick an object. After your can center on it # -# through the popup-menu. # -# - left-button + move pointer : collect objects. # -# - Ctrl + Shift + left-button + move pointer : # -# rubber band zoom. # -# # +# # ####################################################################### # Create "scene-0" /vis/scene/create -# Invoke the Xo driver -/vis/sceneHandler/create Xo +# Invoke the OpenInventor driver +/vis/sceneHandler/create OIX /vis/viewer/create # Add the world volume to the current scene /vis/scene/add/volume -/tracking/storeTrajectory 1 #/vis/scene/add/trajectories +/tracking/storeTrajectory 1 # Bird-eye view of events -/vis/viewer/reset +/vis/viewer/reset /vis/viewer/set/viewpointThetaPhi 45 45 +# Attach the just created Go scene graph to the viewer. +/vis/viewer/update +# Attach the just created Go scene graph to the viewer. +/vis/viewer/update +/vis/scene/notifyHandlers + /run/beamOn 1 ####################################################################### -# Controls on a Xo window are : # -# - Ctrl + left-button1 + move pointer : # -# move things (default is scale). # -# - right-button : popup menu to change, for example, the # -# upper behaviour. # -# - left-button : pick an object. After your can center on it # -# through the popup-menu. # -# - left-button + move pointer : collect objects. # -# - Ctrl + Shift + left-button + move pointer : # -# rubber band zoom. # +# Controls on an Inventor examiner viewer are : # +# - in picking mode (cursor is the upper left arrow) # +# Ctrl + pick an volume : see daughters. # +# Shift + pick an volume : see mother. # +# - in viewing mode (cursor is the hand) # +# Left-button + pointer move : rotate. # +# Ctrl+Left-button + pointer move : pane. # +# Ctrl+Shift+Left-button + pointer move : scale. # +# Middle-button + pointer move : pane. # +# # ####################################################################### diff --git a/examples/novice/N03/visTutor/exN03Vis6.mac b/examples/novice/N03/visTutor/exN03Vis6.mac index a6b0b8c5ff..a6e855fd0d 100644 --- a/examples/novice/N03/visTutor/exN03Vis6.mac +++ b/examples/novice/N03/visTutor/exN03Vis6.mac @@ -1,65 +1,68 @@ ####################################################################### -# MACRO FILE NAME: exN03Vis6.mac # +# MACRO FILE NAME: exN03Vis7.mac # # # -# AUTHOR(S): Guy Barrand # +# AUTHOR(S): Satoshi Tanaka # # # -# DATE: June 09, 2000 # +# DATE: # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # # # -# CONTENTS: A basic macro for demonstrating Inventor driver # +# CONTENTS: A macro to demonstrate the VRMLFILE driver # # # -# USAGE: % $G4BINDIR/exampleN03 visTutor/exN03Vis6.mac # +# USAGE: % gmake visclean # +# % $G4BINDIR/exampleN03 # +# Idle> /control/execute visTutor/exN03Vis7.mac # # # -# REQUIRED PLATFORMS & SOFTWARES: Unix, Motif, X-window, OpenGL, # -# HEPVis # -# Inventor (TGS or SoFree) # +# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, # +# VRML viewer (e.g. VRMLview) # # # # ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # # (See geant4/source/visualization/README for details.) # -# # -# % setenv G4VIS_BUILD_OIX_DRIVER 1 # +# * Unnecessary # # # # ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # # (See geant4/source/visualization/README for details.) # +# * Unnecessary # +# # +# RECOMMENDED ENVIRONMENTAL VARIABLES FOR VISUALIZATION: # +# # +# % setenv G4VRMLFILE_VIEWER vrmlview # +# ( The default value is "NONE".) # # # -# % setenv G4VIS_USE_OIX 1 # -# # # ADDITIONAL NOTES: # -# # +# The VRML-file viewer "vrmlview" is obtainable from the following # +# Web site: # +# http://www.sim.no/downloads.html # +# # ####################################################################### -# Create "scene-0" -/vis/scene/create +################################################### +# Visualization of detector geometry and events +# with the VRML2FILE driver. +################################################### -# Invoke the Xo driver -/vis/sceneHandler/create OIX -/vis/viewer/create - -# Add the world volume to the current scene -/vis/scene/add/volume -#/vis/scene/add/trajectories +# Store particle trajactories for visualization /tracking/storeTrajectory 1 -# Bird-eye view of events -/vis/viewer/reset -/vis/viewer/set/viewpointThetaPhi 45 45 +# Invoke the VRML2FILE driver +# Note: The VRML1FILE driver generates VRML 1.0 format files. +# The VRML2FILE driver generates VRML 2.0 format files. +/vis/open VRML2FILE -# Attach the just created Go scene graph to the viewer. -/vis/viewer/update -# Attach the just created Go scene graph to the viewer. -/vis/viewer/update -/vis/scene/notifyHandlers +# Create an empty scene and add the detector geometry to it +/vis/drawVolume -/run/beamOn 1 - -####################################################################### -# Controls on an Inventor examiner viewer are : # -# - in picking mode (cursor is the upper left arrow) # -# Ctrl + pick an volume : see daughters. # -# Shift + pick an volume : see mother. # -# - in viewing mode (cursor is the hand) # -# Left-button + pointer move : rotate. # -# Ctrl+Left-button + pointer move : pane. # -# Ctrl+Shift+Left-button + pointer move : scale. # -# Middle-button + pointer move : pane. # -# # -####################################################################### +# Visualize 3 events in the wireframe mode +# Note: The command /vis/scene/add/trajectories +# is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is +# described in the event action. +# Note: "/vis/viewer/set/style wireframe" means +# "half-transparent" in the VRML2FILE driver. +# It is a convention only for this driver. +#/vis/scene/add/trajectories +/vis/viewer/set/style wireframe +/run/beamOn 3 diff --git a/examples/novice/N03/visTutor/exN03Vis7.mac b/examples/novice/N03/visTutor/exN03Vis7.mac index a6e855fd0d..10370d856a 100644 --- a/examples/novice/N03/visTutor/exN03Vis7.mac +++ b/examples/novice/N03/visTutor/exN03Vis7.mac @@ -1,68 +1,61 @@ ####################################################################### -# MACRO FILE NAME: exN03Vis7.mac # +# MACRO FILE NAME: exN03Vis8.mac # # # # AUTHOR(S): Satoshi Tanaka # # # # DATE: # -# Nov 07, 2001 # -# Sept 08-09, 2001 (at Hebden Bridge, UK) # -# June 20, 2001 # -# November 26, 2000 # -# October 17, 2000 # +# Nov 14, 2001 # # # -# CONTENTS: A macro to demonstrate the VRMLFILE driver # +# CONTENTS: A macro to demonstrate batch visualization to generate # +# PostScript file with the DAWNFILE driver # # # -# USAGE: % gmake visclean # +# % setenv DAWN_BATCH 1 # +# % make visclean # # % $G4BINDIR/exampleN03 # -# Idle> /control/execute visTutor/exN03Vis7.mac # +# Idle> /control/execute visTutor/exN03Vis8.mac # +# Idle> exit # +# % gv g4_00.eps & # +# % gv g4_01.eps & # +# % gv g4_02.eps & # # # # REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, # -# VRML viewer (e.g. VRMLview) # +# DAWN (version 3.85 or after) # # # # ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # # (See geant4/source/visualization/README for details.) # +# # # * Unnecessary # # # # ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # # (See geant4/source/visualization/README for details.) # +# # # * Unnecessary # -# # -# RECOMMENDED ENVIRONMENTAL VARIABLES FOR VISUALIZATION: # -# # -# % setenv G4VRMLFILE_VIEWER vrmlview # -# ( The default value is "NONE".) # -# # +# # # ADDITIONAL NOTES: # -# The VRML-file viewer "vrmlview" is obtainable from the following # -# Web site: # -# http://www.sim.no/downloads.html # -# # +# # ####################################################################### -################################################### -# Visualization of detector geometry and events -# with the VRML2FILE driver. -################################################### +#################################################################### +# Creation of a multi-page PostScript file with the DAWNFILE driver +#################################################################### -# Store particle trajactories for visualization -/tracking/storeTrajectory 1 +# Invoke the DAWNFILE driver +/vis/open DAWNFILE -# Invoke the VRML2FILE driver -# Note: The VRML1FILE driver generates VRML 1.0 format files. -# The VRML2FILE driver generates VRML 2.0 format files. -/vis/open VRML2FILE - -# Create an empty scene and add the detector geometry to it +# Add the world volume to the current scene /vis/drawVolume -# Visualize 3 events in the wireframe mode -# Note: The command /vis/scene/add/trajectories -# is not necessary in exampleN03, -# since the C++ method DrawTrajectory() is +# Add trajectories to the current scene +# Note: This command is not necessary in exampleN03, +# since the C++ method DrawTrajectory() is # described in the event action. -# Note: "/vis/viewer/set/style wireframe" means -# "half-transparent" in the VRML2FILE driver. -# It is a convention only for this driver. #/vis/scene/add/trajectories -/vis/viewer/set/style wireframe + +# Set camera +/vis/viewer/reset +/vis/viewer/zoom 1.5 +/vis/viewer/set/viewpointThetaPhi 70 20 + +# Visualize events added to the current scene +/tracking/storeTrajectory 1 /run/beamOn 3 diff --git a/examples/novice/N03/visTutor/exN03Vis8.mac b/examples/novice/N03/visTutor/exN03Vis8.mac index 10370d856a..92735677d3 100644 --- a/examples/novice/N03/visTutor/exN03Vis8.mac +++ b/examples/novice/N03/visTutor/exN03Vis8.mac @@ -1,25 +1,32 @@ ####################################################################### -# MACRO FILE NAME: exN03Vis8.mac # +# MACRO FILE NAME: exN03Vis9.mac # # # # AUTHOR(S): Satoshi Tanaka # # # # DATE: # -# Nov 14, 2001 # +# Nov 14, 2001 (renamed from exN03Vis8.mac) # +# Nov 07, 2001 # +# Sept 08-09, 2001 (at Hebden Bridge, UK) # +# June 20, 2001 # +# November 26, 2000 # +# October 17, 2000 # # # -# CONTENTS: A macro to demonstrate batch visualization to generate # -# PostScript file with the DAWNFILE driver # +# CONTENTS: A macro to demonstrate creation of a "multi-page" # +# PostScript file # # # -# % setenv DAWN_BATCH 1 # -# % make visclean # +# USAGE: % setenv G4DAWNFILE_MAX_FILE_NUM 1 # +# % setenv DAWN_BATCH a # +# % gmake visclean # # % $G4BINDIR/exampleN03 # -# Idle> /control/execute visTutor/exN03Vis8.mac # +# Idle> /control/execute visTutor/exN03Vis9.mac # # Idle> exit # -# % gv g4_00.eps & # -# % gv g4_01.eps & # -# % gv g4_02.eps & # +# % gv g4_00.eps # +# # +# Then click, "<<", ">>" etc to traverse pages # # # # REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, # # DAWN (version 3.85 or after) # +# gv (Ghostview), Tcl/Tk # # # # ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # # (See geant4/source/visualization/README for details.) # @@ -32,6 +39,14 @@ # * Unnecessary # # # # ADDITIONAL NOTES: # +# * If you execute this macro plural times, all the views are # +# sequentially appended to the file "g4_00.eps". # +# For example if you execute it two times, a 6-page (3+3 page) # +# PostScript file is made. # +# Unset environmental variables to initialize your environment: # +# # +# % unsetenv G4DAWNFILE_MAX_FILE_NUM # +# % unsetenv DAWN_BATCH # # # ####################################################################### @@ -39,23 +54,34 @@ # Creation of a multi-page PostScript file with the DAWNFILE driver #################################################################### -# Invoke the DAWNFILE driver +# Invoke the DAWNFILE driver /vis/open DAWNFILE -# Add the world volume to the current scene -/vis/drawVolume +# Set viewing parameters +/vis/viewer/reset +/vis/viewer/zoom 0.9 +/vis/viewer/set/viewpointThetaPhi 35 35 -# Add trajectories to the current scene -# Note: This command is not necessary in exampleN03, -# since the C++ method DrawTrajectory() is -# described in the event action. -#/vis/scene/add/trajectories +# Generate page 1: Absorber +/vis/drawVolume Absorber +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 30 -150 -200 Page1/3:Absorber +/vis/viewer/flush -# Set camera -/vis/viewer/reset -/vis/viewer/zoom 1.5 -/vis/viewer/set/viewpointThetaPhi 70 20 +# Generate page 2: Gap +/vis/drawVolume Gap +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 30 -100 -200 Page2/3:Gap +/vis/viewer/flush -# Visualize events added to the current scene -/tracking/storeTrajectory 1 -/run/beamOn 3 +# Generate page 3: World +/vis/viewer/set/culling global false +/vis/drawVolume +/vis/scene/add/axes 0 0 0 500 mm +/vis/scene/add/text 0 0 0 mm 50 -100 -200 Page3/3:world +/vis/viewer/flush + +# Make the culling on for next visualization +# Note: You may also use "/vis/viewer/reset" +# for this initialization. +/vis/viewer/set/culling global true diff --git a/examples/novice/N03/visTutor/exN03Vis9.mac b/examples/novice/N03/visTutor/exN03Vis9.mac deleted file mode 100644 index 92735677d3..0000000000 --- a/examples/novice/N03/visTutor/exN03Vis9.mac +++ /dev/null @@ -1,87 +0,0 @@ -####################################################################### -# MACRO FILE NAME: exN03Vis9.mac # -# # -# AUTHOR(S): Satoshi Tanaka # -# # -# DATE: # -# Nov 14, 2001 (renamed from exN03Vis8.mac) # -# Nov 07, 2001 # -# Sept 08-09, 2001 (at Hebden Bridge, UK) # -# June 20, 2001 # -# November 26, 2000 # -# October 17, 2000 # -# # -# CONTENTS: A macro to demonstrate creation of a "multi-page" # -# PostScript file # -# # -# USAGE: % setenv G4DAWNFILE_MAX_FILE_NUM 1 # -# % setenv DAWN_BATCH a # -# % gmake visclean # -# % $G4BINDIR/exampleN03 # -# Idle> /control/execute visTutor/exN03Vis9.mac # -# Idle> exit # -# % gv g4_00.eps # -# # -# Then click, "<<", ">>" etc to traverse pages # -# # -# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, # -# DAWN (version 3.85 or after) # -# gv (Ghostview), Tcl/Tk # -# # -# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: # -# (See geant4/source/visualization/README for details.) # -# # -# * Unnecessary # -# # -# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: # -# (See geant4/source/visualization/README for details.) # -# # -# * Unnecessary # -# # -# ADDITIONAL NOTES: # -# * If you execute this macro plural times, all the views are # -# sequentially appended to the file "g4_00.eps". # -# For example if you execute it two times, a 6-page (3+3 page) # -# PostScript file is made. # -# Unset environmental variables to initialize your environment: # -# # -# % unsetenv G4DAWNFILE_MAX_FILE_NUM # -# % unsetenv DAWN_BATCH # -# # -####################################################################### - -#################################################################### -# Creation of a multi-page PostScript file with the DAWNFILE driver -#################################################################### - -# Invoke the DAWNFILE driver -/vis/open DAWNFILE - -# Set viewing parameters -/vis/viewer/reset -/vis/viewer/zoom 0.9 -/vis/viewer/set/viewpointThetaPhi 35 35 - -# Generate page 1: Absorber -/vis/drawVolume Absorber -/vis/scene/add/axes 0 0 0 500 mm -/vis/scene/add/text 0 0 0 mm 30 -150 -200 Page1/3:Absorber -/vis/viewer/flush - -# Generate page 2: Gap -/vis/drawVolume Gap -/vis/scene/add/axes 0 0 0 500 mm -/vis/scene/add/text 0 0 0 mm 30 -100 -200 Page2/3:Gap -/vis/viewer/flush - -# Generate page 3: World -/vis/viewer/set/culling global false -/vis/drawVolume -/vis/scene/add/axes 0 0 0 500 mm -/vis/scene/add/text 0 0 0 mm 50 -100 -200 Page3/3:world -/vis/viewer/flush - -# Make the culling on for next visualization -# Note: You may also use "/vis/viewer/reset" -# for this initialization. -/vis/viewer/set/culling global true diff --git a/examples/novice/N03/visTutor/g4Xt.xrm b/examples/novice/N03/visTutor/g4Xt.xrm index be0d65964c..c3e0b9bf2d 100644 --- a/examples/novice/N03/visTutor/g4Xt.xrm +++ b/examples/novice/N03/visTutor/g4Xt.xrm @@ -26,11 +26,6 @@ *text.fontList :*courier*-r-*--14-* *text.maxLength :8000 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!!!! OPACS/Xo/XoCamera widget -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -*XoCamera.width:400 -*XoCamera.height:400 -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! OpenInventor resources, copied from file : ! OpenInventor2.4.1/app-defaults/Inventor ! diff --git a/examples/novice/N03/visTutor/gui.mac b/examples/novice/N03/visTutor/gui.mac index c155f79806..d56a05c37e 100644 --- a/examples/novice/N03/visTutor/gui.mac +++ b/examples/novice/N03/visTutor/gui.mac @@ -22,6 +22,8 @@ /gui/addButton vis Vis4 "/control/execute visTutor/exN03Vis4.mac" /gui/addButton vis Vis5 "/control/execute visTutor/exN03Vis5.mac" /gui/addButton vis Vis6 "/control/execute visTutor/exN03Vis6.mac" +/gui/addButton vis Vis7 "/control/execute visTutor/exN03Vis7.mac" +/gui/addButton vis Vis8 "/control/execute visTutor/exN03Vis8.mac" # # To limit the output flow in the "dump" widget : /event/printModulo 100 diff --git a/examples/novice/N03/visTutor/heprep.mac b/examples/novice/N03/visTutor/heprep.mac index 3fc78cf1f5..1a5f517081 100644 --- a/examples/novice/N03/visTutor/heprep.mac +++ b/examples/novice/N03/visTutor/heprep.mac @@ -1,4 +1,4 @@ -# $Id: heprep.mac,v 1.1 2003/06/10 12:51:48 maire Exp $ +# $Id: heprep.mac,v 1.2 2003/12/01 21:09:28 perl Exp $ # # Macro file for "exampleN03.cc" # @@ -17,14 +17,27 @@ # muon 300 MeV to the direction (1.,0.,0.) # 3 events # +# Create a scene containing the detector. /vis/scene/create -/vis/open HepRepXML -#/vis/viewer/flush -/tracking/storeTrajectory 1 -/vis/scene/endOfEventAction accumulate /vis/scene/add/volume world +# +# Open a HepRep version 2 file suitable for viewing in WIRED. +/vis/open HepRepXML +# +# Output an empty detector +/vis/viewer/flush +# +# Include trajectories in the image. +/tracking/storeTrajectory 1 /vis/scene/add/trajectories +# +# If multiple events in one run, accumulate all events into a single +# graphical image. If this line is commented out, each event will instead +# appear in a separate image. +/vis/scene/endOfEventAction accumulate +# +# At end of each run, an automatic flush causes graphical output. +# This run will make an image with one event. /run/beamOn 1 -#/vis/viewer/flush +# This run will make an image with ten events. /run/beamOn 10 -#/vis/viewer/flush diff --git a/examples/novice/N04/History b/examples/novice/N04/History index 630e89cbaa..50507f964c 100644 --- a/examples/novice/N04/History +++ b/examples/novice/N04/History @@ -1,4 +1,4 @@ -$Id: History,v 1.30 2003/05/28 11:00:13 gcosmo Exp $ +$Id: History,v 1.37 2003/11/19 19:13:04 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,30 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov.19, 2003 Makoto Asai (exampleN04-V05-02-06) +- ExN04GeneralPhysics.cc: + Remove protection of assigning decay against short-lived particle + +19-11-03 V.Ivanchenko (exampleN04-V05-02-05) +- Revome extra verbose + +10-11-03 G.Cosmo (exampleN04-V05-02-04) +- Removed OPACS driver from vis-manager. +- Cleared warnings for parameterised detectors. + +30-10-03 G.Cosmo (exampleN04-V05-02-03) +- Cleared compilation warnings due to new class G4Orb. + +24-10-03 mma (exampleN04-V05-02-02) +- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +06-10-03 mma (exampleN04-V05-02-01) +- cosmetic cleanup in material definitions + +27-05-03 V.Ivanchenko (exampleN04-V05-02-00) +- Include DefineMaterials() method in the constructor of DetectorConstruction +- Clean up PhysicsLists + 28-05-03 G.Cosmo (exampleN04-V05-01-01) - Get rid of pedantic warnings ... diff --git a/examples/novice/N04/exampleN04.EMtest.out b/examples/novice/N04/exampleN04.EMtest.out index b8cf53bcfa..3d1d28fb8d 100644 --- a/examples/novice/N04/exampleN04.EMtest.out +++ b/examples/novice/N04/exampleN04.EMtest.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** @@ -36,80 +36,100 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +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: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: 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: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +hIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +msc: 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: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +MuIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ### Run 0 start. Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 0 - 5 hits are stored in ExN04TrackerHitsCollection. - 5 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.248348 (GeV) + 22 hits are stored in ExN04TrackerHitsCollection. + 4 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.219853 (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. >>> Event 0 - 8 hits are stored in ExN04TrackerHitsCollection. - 29 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 2.59273 (GeV) + 5 hits are stored in ExN04TrackerHitsCollection. + 28 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 19.6036 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 1 - 8 hits are stored in ExN04TrackerHitsCollection. - 24 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 3.37015 (GeV) + 25 hits are stored in ExN04TrackerHitsCollection. + 23 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 12.1038 (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 ac7ec32fe7..5bcc1f41d6 100644 --- a/examples/novice/N04/exampleN04.cc +++ b/examples/novice/N04/exampleN04.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: exampleN04.cc,v 1.6 2002/06/19 10:44:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: exampleN04.cc,v 1.7 2003/09/27 13:27:29 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N04/exampleN04.in b/examples/novice/N04/exampleN04.in index 463df0e899..192b8c4ead 100644 --- a/examples/novice/N04/exampleN04.in +++ b/examples/novice/N04/exampleN04.in @@ -3,6 +3,9 @@ /mydet/reqmuon 1 /mydet/isomuon 1 # +/control/verbose 1 +/run/verbose 1 +/tracking/verbose 0 /run/beamOn 3 # exit diff --git a/examples/novice/N04/exampleN04.out b/examples/novice/N04/exampleN04.out index d9cc5a268b..fe693f8976 100644 --- a/examples/novice/N04/exampleN04.out +++ b/examples/novice/N04/exampleN04.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** @@ -27,6 +27,9 @@ You are using the ExN04HadronPhysics please use one of the available physics lists by use-case. More information can also be found from the Geant4 HyperNews. +/run/verbose 1 +/tracking/verbose 0 +/run/beamOn 3 compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV. Scattered gamma energy according Klein-Nishina. @@ -36,65 +39,126 @@ conv: Total cross sections from a parametrisation. Good description from 1.5 Me e+e- energies according Bethe-Heitler PhysicsTables from 1.022 MeV to 100 GeV in 100 bins. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +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: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: 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: Total cross section from Heilter formula(annihilation into 2 photons). - gamma energies sampled according Heitler - PhysicsTables from 10 keV to 10 TeV in 100 bins. +hIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +msc: 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: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 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 : ArgonGas + 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 : 2 used in the geometry : Yes recalculation needed : No + Material : Silicon + 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 + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : Scintillator + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.36895 keV e- 355.791 keV e+ 347.138 keV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 100.511 keV e- 1.37814 MeV e+ 1.28002 MeV + Region(s) which use this couple : + DefaultRegionForTheWorld + +==================================================================== -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. ### Run 0 start. +Start Run processing. Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 1 isolated muon found. >>> Event 0 - 117 hits are stored in ExN04TrackerHitsCollection. - 49 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.644798 (GeV) + 108 hits are stored in ExN04TrackerHitsCollection. + 44 hits are stored in ExN04CalorimeterHitsCollection. + Total energy deposition in calorimeter : 0.670694 (GeV) 1 hits are stored in ExN04MuonHitsCollection. Stage 0->1 : 0 hits found in the muon chamber. ++++++++ event aborted @@ -107,9 +171,14 @@ Stage 0->1 : 1 hits found in the muon chamber. Stage 1->2 : 0 isolated muon found. ++++++++ event aborted >>> Event 2 - 76 hits are stored in ExN04TrackerHitsCollection. + 80 hits are stored in ExN04TrackerHitsCollection. 13 hits are stored in ExN04CalorimeterHitsCollection. - Total energy deposition in calorimeter : 0.331422 (GeV) + Total energy deposition in calorimeter : 0.332998 (GeV) 1 hits are stored in ExN04MuonHitsCollection. +Run terminated. +Run Summary + Number of events processed : 3 + User=7.01s Real=7.37s Sys=0.2s +G4 kernel has come to Quit state. Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N04/include/ExN04CalorimeterParametrisation.hh b/examples/novice/N04/include/ExN04CalorimeterParametrisation.hh index 29f83bc8d9..6a6f2644fa 100644 --- a/examples/novice/N04/include/ExN04CalorimeterParametrisation.hh +++ b/examples/novice/N04/include/ExN04CalorimeterParametrisation.hh @@ -34,11 +34,14 @@ class G4Tubs; class G4Trd; class G4Trap; class G4Cons; +class G4Orb; class G4Sphere; class G4Torus; class G4Para; class G4Hype; class G4Box; +class G4Polycone; +class G4Polyhedra; class ExN04CalorimeterParametrisation : public G4VPVParameterisation { @@ -57,11 +60,14 @@ class ExN04CalorimeterParametrisation : public G4VPVParameterisation 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 (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Sphere&,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 (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} private: diff --git a/examples/novice/N04/include/ExN04DetectorConstruction.hh b/examples/novice/N04/include/ExN04DetectorConstruction.hh index 3601f184e5..13ea7d698e 100644 --- a/examples/novice/N04/include/ExN04DetectorConstruction.hh +++ b/examples/novice/N04/include/ExN04DetectorConstruction.hh @@ -28,6 +28,7 @@ #include "globals.hh" class G4VPhysicalVolume; +class G4Material; class ExN04DetectorConstruction : public G4VUserDetectorConstruction { @@ -39,9 +40,16 @@ class ExN04DetectorConstruction : public G4VUserDetectorConstruction G4VPhysicalVolume* Construct(); private: + void DefineMaterials(); #include "ExN04DetectorParameterDef.hh" + G4Material* Air; + G4Material* Ar; + G4Material* Silicon; + G4Material* Scinti; + G4Material* Lead; + }; #endif diff --git a/examples/novice/N04/include/ExN04EMPhysics.hh b/examples/novice/N04/include/ExN04EMPhysics.hh index 2c07330586..5b1cd93529 100644 --- a/examples/novice/N04/include/ExN04EMPhysics.hh +++ b/examples/novice/N04/include/ExN04EMPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04EMPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04GeneralPhysics.hh b/examples/novice/N04/include/ExN04GeneralPhysics.hh index 00d840cdd8..40e0eec872 100644 --- a/examples/novice/N04/include/ExN04GeneralPhysics.hh +++ b/examples/novice/N04/include/ExN04GeneralPhysics.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04GeneralPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N04/include/ExN04HadronPhysics.hh b/examples/novice/N04/include/ExN04HadronPhysics.hh index 8337bc9d53..0d59096520 100644 --- a/examples/novice/N04/include/ExN04HadronPhysics.hh +++ b/examples/novice/N04/include/ExN04HadronPhysics.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: ExN04HadronPhysics.hh,v 1.6 2003/06/16 16:49:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/examples/novice/N04/include/ExN04IonPhysics.hh b/examples/novice/N04/include/ExN04IonPhysics.hh index 1895bc053a..cc912713c1 100644 --- a/examples/novice/N04/include/ExN04IonPhysics.hh +++ b/examples/novice/N04/include/ExN04IonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.hh,v 1.3 2002/01/09 17:24:14 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04IonPhysics.hh,v 1.4 2003/09/27 13:27:30 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -55,6 +55,7 @@ #include "G4LEAlphaInelastic.hh" #include "G4hIonisation.hh" +#include "G4ionIonisation.hh" #include "G4MultipleScattering.hh" class ExN04IonPhysics : public G4VPhysicsConstructor @@ -75,12 +76,12 @@ class ExN04IonPhysics : public G4VPhysicsConstructor protected: // Elastic Process - G4HadronElasticProcess theElasticProcess; - G4LElastic* theElasticModel; + G4HadronElasticProcess theElasticProcess; + G4LElastic* theElasticModel; // Generic Ion physics - G4MultipleScattering fIonMultipleScattering; - G4hIonisation fIonIonisation; + G4MultipleScattering fIonMultipleScattering; + G4ionIonisation fIonIonisation; // Deuteron physics G4MultipleScattering fDeuteronMultipleScattering; diff --git a/examples/novice/N04/include/ExN04MuonPhysics.hh b/examples/novice/N04/include/ExN04MuonPhysics.hh index e1e1e3fa44..95f112f46c 100644 --- a/examples/novice/N04/include/ExN04MuonPhysics.hh +++ b/examples/novice/N04/include/ExN04MuonPhysics.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.hh,v 1.4 2002/01/09 17:24:15 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04MuonPhysics.hh,v 1.5 2003/09/27 13:27:30 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -67,15 +67,15 @@ class ExN04MuonPhysics : public G4VPhysicsConstructor protected: // Muon physics + G4MuIonisation fMuPlusIonisation; G4MultipleScattering fMuPlusMultipleScattering; G4MuBremsstrahlung fMuPlusBremsstrahlung ; G4MuPairProduction fMuPlusPairProduction; - G4MuIonisation fMuPlusIonisation; + G4MuIonisation fMuMinusIonisation; G4MultipleScattering fMuMinusMultipleScattering; G4MuBremsstrahlung fMuMinusBremsstrahlung ; G4MuPairProduction fMuMinusPairProduction; - G4MuIonisation fMuMinusIonisation; G4MuonMinusCaptureAtRest fMuMinusCaptureAtRest; diff --git a/examples/novice/N04/include/ExN04RunAction.hh b/examples/novice/N04/include/ExN04RunAction.hh index 344e86076d..f62abab1f9 100644 --- a/examples/novice/N04/include/ExN04RunAction.hh +++ b/examples/novice/N04/include/ExN04RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.hh,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/include/ExN04SteppingVerbose.hh b/examples/novice/N04/include/ExN04SteppingVerbose.hh index 5303ef82ad..ac01c5b30c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // This class manages the verbose outputs in G4SteppingManager. // It inherits from G4SteppingVerbose. diff --git a/examples/novice/N04/include/ExN04TrackerParametrisation.hh b/examples/novice/N04/include/ExN04TrackerParametrisation.hh index 806a28e727..c5f4d156a0 100644 --- a/examples/novice/N04/include/ExN04TrackerParametrisation.hh +++ b/examples/novice/N04/include/ExN04TrackerParametrisation.hh @@ -34,11 +34,14 @@ class G4Tubs; class G4Trd; class G4Trap; class G4Cons; +class G4Orb; class G4Sphere; class G4Torus; class G4Para; class G4Hype; class G4Box; +class G4Polycone; +class G4Polyhedra; class ExN04TrackerParametrisation : public G4VPVParameterisation { @@ -57,11 +60,14 @@ class ExN04TrackerParametrisation : public G4VPVParameterisation 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 (G4Orb&,const G4int,const G4VPhysicalVolume*) const {} void ComputeDimensions (G4Sphere&,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 (G4Box&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int,const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int,const G4VPhysicalVolume*) const {} private: diff --git a/examples/novice/N04/include/ExN04VisManager.hh b/examples/novice/N04/include/ExN04VisManager.hh index 42245bf23c..c7adf0e03f 100644 --- a/examples/novice/N04/include/ExN04VisManager.hh +++ b/examples/novice/N04/include/ExN04VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN04VisManager.hh,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N04/src/ExN04CalorimeterSD.cc b/examples/novice/N04/src/ExN04CalorimeterSD.cc index 72cd38ed06..bcd28ee89b 100644 --- a/examples/novice/N04/src/ExN04CalorimeterSD.cc +++ b/examples/novice/N04/src/ExN04CalorimeterSD.cc @@ -52,12 +52,14 @@ void ExN04CalorimeterSD::Initialize(G4HCofThisEvent*) { CellID[j][k] = -1; } + verboseLevel = 0; } G4bool ExN04CalorimeterSD::ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) { if(!ROhist) return false; G4double edep = aStep->GetTotalEnergyDeposit(); + if(verboseLevel>1) G4cout << "Next step edep(MeV) = " << edep/MeV << G4endl; if(edep==0.) return false; G4VPhysicalVolume* physVol = ROhist->GetVolume(); diff --git a/examples/novice/N04/src/ExN04DetectorConstruction.cc b/examples/novice/N04/src/ExN04DetectorConstruction.cc index 0b0f0f65bc..c0b07ec027 100644 --- a/examples/novice/N04/src/ExN04DetectorConstruction.cc +++ b/examples/novice/N04/src/ExN04DetectorConstruction.cc @@ -52,12 +52,45 @@ ExN04DetectorConstruction::ExN04DetectorConstruction() { #include "ExN04DetectorParameterDef.icc" + DefineMaterials(); } ExN04DetectorConstruction::~ExN04DetectorConstruction() {;} +void ExN04DetectorConstruction::DefineMaterials() +{ + //------------------------------------------------------------------------- + // Materials + //------------------------------------------------------------------------- + + G4double a, z, density; + G4int nel; + + G4Element* H = new G4Element("Hydrogen", "H", z=1., a= 1.01*g/mole); + G4Element* C = new G4Element("Carbon", "C", z=6., a= 12.01*g/mole); + 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); + + Air = new G4Material("Air", density= 1.29*mg/cm3, nel=2); + Air->AddElement(N, 70.*perCent); + Air->AddElement(O, 30.*perCent); + + Lead = + new G4Material("Lead", z=82., a= 207.19*g/mole, density= 11.35*g/cm3); + + Ar = + new G4Material("ArgonGas",z=18., a= 39.95*g/mole, density=1.782*mg/cm3); + + Silicon = + new G4Material("Silicon", z=14., a= 28.09*g/mole, density= 2.33*g/cm3); + + Scinti = new G4Material("Scintillator", density= 1.032*g/cm3, nel=2); + Scinti->AddElement(C, 9); + Scinti->AddElement(H, 10); +} + G4VPhysicalVolume* ExN04DetectorConstruction::Construct() { //------------------------------------------------------------------------- @@ -76,47 +109,6 @@ G4VPhysicalVolume* ExN04DetectorConstruction::Construct() fieldIsInitialized = true; } - //------------------------------------------------------------------------- - // Materials - //------------------------------------------------------------------------- - - G4double a, iz, z, density; - G4String name, symbol; - G4int nel; - - a = 1.01*g/mole; - G4Element* elH = new G4Element(name="Hydrogen", symbol="H", iz=1., a); - - a = 12.01*g/mole; - G4Element* elC = new G4Element(name="Carbon", symbol="C", iz=6., a); - - a = 14.01*g/mole; - G4Element* elN = new G4Element(name="Nitrogen", symbol="N", iz=7., a); - - a = 16.00*g/mole; - G4Element* elO = new G4Element(name="Oxygen", symbol="O", iz=8., a); - - density = 1.29e-03*g/cm3; - G4Material* Air = new G4Material(name="Air", density, nel=2); - Air->AddElement(elN, .7); - Air->AddElement(elO, .3); - - a = 207.19*g/mole; - density = 11.35*g/cm3; - G4Material* Lead = new G4Material(name="Lead", z=82., a, density); - - a = 39.95*g/mole; - density = 1.782e-03*g/cm3; - G4Material* Ar = new G4Material(name="ArgonGas", z=18., a, density); - - a = 28.09*g/mole; - density = 2.33*g/cm3; - G4Material * Silicon = new G4Material(name="Silicon", z=14., a, density); - - density = 1.032*g/cm3; - G4Material* Scinti = new G4Material(name="Scintillator", density, nel=2); - Scinti->AddElement(elC, 9); - Scinti->AddElement(elH, 10); //------------------------------------------------------------------------- // Detector geometry diff --git a/examples/novice/N04/src/ExN04EMPhysics.cc b/examples/novice/N04/src/ExN04EMPhysics.cc index e001df6e3c..1c7add4587 100644 --- a/examples/novice/N04/src/ExN04EMPhysics.cc +++ b/examples/novice/N04/src/ExN04EMPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04EMPhysics.cc,v 1.4 2003/06/16 16:49:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04EMPhysics.cc,v 1.6 2003/10/24 12:36:14 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -81,29 +81,19 @@ void ExN04EMPhysics::ConstructProcess() // Electron Physics pManager = G4Electron::Electron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&theElectronBremsStrahlung); - pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); + pManager->AddProcess(&theElectronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&theElectronIonisation, -1, 2, 2); + pManager->AddProcess(&theElectronBremsStrahlung, -1, 3, 3); - pManager->AddProcess(&theElectronMultipleScattering); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); //Positron Physics pManager = G4Positron::Positron()->GetProcessManager(); - // add processes - pManager->AddDiscreteProcess(&thePositronBremsStrahlung); - - pManager->AddDiscreteProcess(&theAnnihilation); - - pManager->AddRestProcess(&theAnnihilation); - - pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); - - pManager->AddProcess(&thePositronMultipleScattering); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); + + pManager->AddProcess(&thePositronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&thePositronIonisation, -1, 2, 2); + pManager->AddProcess(&thePositronBremsStrahlung, -1, 3, 3); + pManager->AddProcess(&theAnnihilation, 0,-1, 4); } diff --git a/examples/novice/N04/src/ExN04GeneralPhysics.cc b/examples/novice/N04/src/ExN04GeneralPhysics.cc index 7fe048dade..c466f39553 100644 --- a/examples/novice/N04/src/ExN04GeneralPhysics.cc +++ b/examples/novice/N04/src/ExN04GeneralPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04GeneralPhysics.cc,v 1.4 2003/06/16 16:49:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04GeneralPhysics.cc,v 1.6 2003/11/19 19:09:06 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N04/src/ExN04HadronPhysics.cc b/examples/novice/N04/src/ExN04HadronPhysics.cc index 634460f833..da22b501e2 100644 --- a/examples/novice/N04/src/ExN04HadronPhysics.cc +++ b/examples/novice/N04/src/ExN04HadronPhysics.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04HadronPhysics.cc,v 1.10 2003/06/16 16:49:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN04HadronPhysics.hh" diff --git a/examples/novice/N04/src/ExN04IonPhysics.cc b/examples/novice/N04/src/ExN04IonPhysics.cc index 6849ed8357..bb954ccffb 100644 --- a/examples/novice/N04/src/ExN04IonPhysics.cc +++ b/examples/novice/N04/src/ExN04IonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04IonPhysics.cc,v 1.4 2003/06/16 16:49:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04IonPhysics.cc,v 1.5 2003/09/27 13:27:31 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -72,11 +72,8 @@ void ExN04IonPhysics::ConstructProcess() // add process pManager->AddDiscreteProcess(&theElasticProcess); - pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2); - - pManager->AddProcess(&fIonMultipleScattering); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep, 1); + pManager->AddProcess(&fIonMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fIonIonisation, -1, 2, 2); // Deuteron pManager = G4Deuteron::Deuteron()->GetProcessManager(); @@ -87,12 +84,9 @@ void ExN04IonPhysics::ConstructProcess() fDeuteronProcess.RegisterMe(fDeuteronModel); pManager->AddDiscreteProcess(&fDeuteronProcess); - pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2); + pManager->AddProcess(&fDeuteronMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fDeuteronIonisation, -1, 2, 2); - pManager->AddProcess(&fDeuteronMultipleScattering); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep, 1); - // Triton pManager = G4Triton::Triton()->GetProcessManager(); // add process @@ -102,11 +96,8 @@ void ExN04IonPhysics::ConstructProcess() 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); + pManager->AddProcess(&fTritonMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTritonIonisation, -1, 2, 2); // Alpha pManager = G4Alpha::Alpha()->GetProcessManager(); @@ -117,22 +108,17 @@ void ExN04IonPhysics::ConstructProcess() fAlphaProcess.RegisterMe(fAlphaModel); pManager->AddDiscreteProcess(&fAlphaProcess); - pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2); + pManager->AddProcess(&fAlphaMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fAlphaIonisation, -1, 2, 2); - pManager->AddProcess(&fAlphaMultipleScattering); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep, 1); - // He3 pManager = G4He3::He3()->GetProcessManager(); // add process pManager->AddDiscreteProcess(&theElasticProcess); - pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2); + pManager->AddProcess(&fHe3MultipleScattering, -1, 1, 1); + pManager->AddProcess(&fHe3Ionisation, -1, 2, 2); - pManager->AddProcess(&fHe3MultipleScattering); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); } diff --git a/examples/novice/N04/src/ExN04MuonPhysics.cc b/examples/novice/N04/src/ExN04MuonPhysics.cc index 50c59dd465..15d9843a1a 100644 --- a/examples/novice/N04/src/ExN04MuonPhysics.cc +++ b/examples/novice/N04/src/ExN04MuonPhysics.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04MuonPhysics.cc,v 1.5 2003/06/16 16:49:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04MuonPhysics.cc,v 1.8 2003/11/19 09:26:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -79,48 +79,34 @@ void ExN04MuonPhysics::ConstructProcess() // 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); + + pManager->AddProcess(&fMuPlusMultipleScattering,-1, 1, 1); + pManager->AddProcess(&fMuPlusIonisation, -1, 2, 2); + pManager->AddProcess(&fMuPlusBremsstrahlung, -1, 3, 3); + pManager->AddProcess(&fMuPlusPairProduction, -1, 4, 4); // Muon Minus Physics pManager = G4MuonMinus::MuonMinus()->GetProcessManager(); - // add processes - pManager->AddProcess(&fMuMinusIonisation, ordInActive,2, 2); + + pManager->AddProcess(&fMuMinusMultipleScattering,-1, 1, 1); + pManager->AddProcess(&fMuMinusIonisation, -1, 2, 2); + pManager->AddProcess(&fMuMinusBremsstrahlung, -1, 3, 3); + pManager->AddProcess(&fMuMinusPairProduction, -1, 4, 4); - 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); + + pManager->AddProcess(&fTauPlusMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTauPlusIonisation, -1, 2, 2); // 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); + pManager->AddProcess(&fTauMinusMultipleScattering, -1, 1, 1); + pManager->AddProcess(&fTauMinusIonisation, -1, 2, 2); } diff --git a/examples/novice/N04/src/ExN04PhysicsList.cc b/examples/novice/N04/src/ExN04PhysicsList.cc index 3691900dee..032a608bde 100644 --- a/examples/novice/N04/src/ExN04PhysicsList.cc +++ b/examples/novice/N04/src/ExN04PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04PhysicsList.cc,v 1.13 2003/06/16 16:49:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04PhysicsList.cc,v 1.15 2003/11/19 09:26:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -30,7 +30,6 @@ #include "globals.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" @@ -51,7 +50,7 @@ ExN04PhysicsList::ExN04PhysicsList(): G4VModularPhysicsList() { // default cut value (1.0mm) defaultCutValue = 1.0*mm; - SetVerboseLevel(1); + // SetVerboseLevel(1); // General Physics RegisterPhysics( new ExN04GeneralPhysics("general") ); diff --git a/examples/novice/N04/src/ExN04RunAction.cc b/examples/novice/N04/src/ExN04RunAction.cc index 42a3c43d4e..97dd71d14c 100644 --- a/examples/novice/N04/src/ExN04RunAction.cc +++ b/examples/novice/N04/src/ExN04RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN04RunAction.cc,v 1.1 2002/05/02 14:18:51 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/src/ExN04SteppingVerbose.cc b/examples/novice/N04/src/ExN04SteppingVerbose.cc index 4e346bf2bb..b933ef44a7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N04/src/ExN04VisManager.cc b/examples/novice/N04/src/ExN04VisManager.cc index 0b90ce4339..1d8a6b5c68 100755 --- a/examples/novice/N04/src/ExN04VisManager.cc +++ b/examples/novice/N04/src/ExN04VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN04VisManager.cc,v 1.2 2002/11/13 19:14:41 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN04VisManager.cc,v 1.3 2003/11/10 14:28:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void ExN04VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/novice/N05/History b/examples/novice/N05/History index eff614b005..fd04d39524 100644 --- a/examples/novice/N05/History +++ b/examples/novice/N05/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2003/05/28 11:20:40 gcosmo Exp $ +$Id: History,v 1.18 2003/12/09 08:42:05 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -14,6 +14,18 @@ track of all tags. ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +December 09, 2003 Hisaya Kurashige +- Add protection for negative proposed step in ExN05MinEkineCuts.cc + +November 10, 2003 Gabriele Cosmo (exampleN05-V05-02-01) +- Removed usage of G4ParticleWithCuts in physics-list (H.Kurasige). +- Removed OPACS driver from vis-manager. +- Cleared usage of LocateGlobalPointAndUpdateTouchable(). Use + LocateGlobalPointAndUpdateTouchableHandle() instead. +- Cleared compilation warnings. + +August 27, 2003 Vladimir Ivanchenko (exampleN05-V05-02-00) +- Migrade to cut per region May 28, 2003 Gabriele Cosmo (exampleN05-V05-01-00) - Get rid of pedantic warnings ... diff --git a/examples/novice/N05/N05.mac b/examples/novice/N05/N05.mac deleted file mode 100644 index 7e94529114..0000000000 --- a/examples/novice/N05/N05.mac +++ /dev/null @@ -1,20 +0,0 @@ -# -/gun/particle e- -/gun/energy 1 GeV -/gun/position 0 0 0 -# -/tracking/verbose 1 -# -/gun/direction 0 .6 1. -/run/beamOn 5 -# -/gun/direction 0 .3 1. -/run/beamOn 5 -# -/gun/direction 0 -.3 1. -/run/beamOn 5 -# -/gun/direction 0 -.6 1. -/run/beamOn 5 -# -exit diff --git a/examples/novice/N05/exampleN05.cc b/examples/novice/N05/exampleN05.cc index c1cff51635..b1d62aeb03 100644 --- a/examples/novice/N05/exampleN05.cc +++ b/examples/novice/N05/exampleN05.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN05.cc,v 1.10 2002/01/09 17:24:16 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/exampleN05.err b/examples/novice/N05/exampleN05.err deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/examples/novice/N05/exampleN05.out b/examples/novice/N05/exampleN05.out index 81469391fe..b4e0741fd9 100644 --- a/examples/novice/N05/exampleN05.out +++ b/examples/novice/N05/exampleN05.out @@ -1,7 +1,7 @@ RunManager construction starting.... ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** @@ -34,361 +34,384 @@ compt: Total cross sections from a parametrisation. Good description from 10 Ke Scattered gamma energy according Klein-Nishina. PhysicsTables from 1 keV to 100 GeV in 80 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ### Run 0 start. ExN05EMShowerModel::DoIt >>> Event 0 10 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.989891 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999919 (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. - Total energy deposition in EM calorimeter crytals : 0.999912 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999914 (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.999921 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999906 (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.999917 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999919 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999915 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + 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) number of event = 5 ### Run 1 start. ExN05EMShowerModel::DoIt >>> Event 0 - 8 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.999929 (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. + 11 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 2 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999919 (GeV) + 6 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999875 (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.999911 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999928 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999906 (GeV) + Total energy deposition in EM calorimeter crytals : 0.999929 (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 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999925 (GeV) + 8 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 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999892 (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 2 - 7 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999906 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999927 (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.999909 (GeV) + 13 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999928 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 4 - 8 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.9999 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999886 (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 - 11 hits are stored in EM ExN05CalorimeterHitsCollection. + 10 hits are stored in EM ExN05CalorimeterHitsCollection. Total energy deposition in EM calorimeter crytals : 0.999909 (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.999911 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999897 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) ExN05EMShowerModel::DoIt >>> Event 2 - 12 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.989914 (GeV) + 8 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.999907 (GeV) + 10 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999875 (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.999917 (GeV) + 9 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999919 (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 - 9 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.219989 (GeV) - 10 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.459977 (GeV) + 5 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.139992 (GeV) + 7 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.779954 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 14 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.319984 (GeV) + 11 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.359981 (GeV) 12 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 1.01995 (GeV) + Total energy deposition in HAD calorimeter towers : 1.47992 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 19 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.519974 (GeV) - 13 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 1.57992 (GeV) + 16 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.599967 (GeV) + 15 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 2.11988 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 21 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.679964 (GeV) - 14 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.11989 (GeV) + 22 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.819955 (GeV) + 17 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 2.87984 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 25 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.799958 (GeV) - 15 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 2.71986 (GeV) + 27 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.05993 (GeV) + 18 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 3.61978 (GeV) number of event = 5 ### Run 5 start. ExN05PionShowerModel::DoIt >>> Event 0 - 28 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.879954 (GeV) - 24 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 3.49982 (GeV) + 30 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.13993 (GeV) + 34 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 4.51973 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 28 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.879954 (GeV) - 27 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 4.37978 (GeV) + 32 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.17993 (GeV) + 37 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 5.47969 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 31 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.93995 (GeV) - 30 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 5.15973 (GeV) + 32 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.19993 (GeV) + 38 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 6.45964 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 32 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.959949 (GeV) - 31 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 6.03968 (GeV) + 33 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.21993 (GeV) + 41 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 7.43958 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 33 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.979948 (GeV) - 34 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 6.87965 (GeV) + 34 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.25992 (GeV) + 42 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 8.39954 (GeV) number of event = 5 ### Run 6 start. ExN05PionShowerModel::DoIt >>> Event 0 - 34 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.999947 (GeV) - 45 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 7.71961 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.37992 (GeV) + 55 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 9.2795 (GeV) ExN05PionShowerModel::DoIt >>> Event 1 - 36 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.03994 (GeV) - 50 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 8.53956 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.47992 (GeV) + 58 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 10.1795 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 36 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.03994 (GeV) - 53 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 9.37951 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.53991 (GeV) + 59 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 11.1194 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 37 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.07994 (GeV) - 55 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 10.2595 (GeV) + 40 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.59984 (GeV) + 60 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 12.0583 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 37 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.09994 (GeV) - 56 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 11.0594 (GeV) + 41 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.61984 (GeV) + 62 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 13.0183 (GeV) number of event = 5 ### Run 7 start. ExN05PionShowerModel::DoIt >>> Event 0 - 45 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.27991 (GeV) - 63 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 11.5393 (GeV) -ExN05PionShowerModel::DoIt + 49 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 1.79983 (GeV) + 72 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 13.6782 (GeV) >>> Event 1 - 48 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.3399 (GeV) - 66 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.1393 (GeV) + 7 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.283851 (GeV) + 4 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.489561 (GeV) ExN05PionShowerModel::DoIt >>> Event 2 - 53 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.59989 (GeV) - 67 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.5992 (GeV) + 55 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.01982 (GeV) + 74 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 14.3182 (GeV) ExN05PionShowerModel::DoIt >>> Event 3 - 56 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.79987 (GeV) - 67 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 12.9792 (GeV) + 60 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.1998 (GeV) + 75 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 15.0581 (GeV) ExN05PionShowerModel::DoIt >>> Event 4 - 57 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 1.89987 (GeV) - 67 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 13.4392 (GeV) + 63 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 2.43979 (GeV) + 75 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 15.7981 (GeV) number of event = 5 ### Run 8 start. >>> Event 0 - 32 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.996699 (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.993964 (GeV) + 4 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.00255842 (GeV) >>> Event 1 39 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.99186 (GeV) + Total energy deposition in EM calorimeter crytals : 0.998803 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 2 - 30 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.991534 (GeV) + 44 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.995253 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 3 - 39 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.987345 (GeV) - 2 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00503279 (GeV) + 45 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.98005 (GeV) + 1 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.00293465 (GeV) >>> Event 4 - 38 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.988639 (GeV) + 39 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.994904 (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 21 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.98184 (GeV) - 4 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.0160081 (GeV) ->>> Event 1 - 21 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) ->>> Event 2 - 25 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.994767 (GeV) + Total energy deposition in EM calorimeter crytals : 0.995338 (GeV) 1 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00279667 (GeV) + Total energy deposition in HAD calorimeter towers : 0.00457866 (GeV) +>>> Event 1 + 22 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.990095 (GeV) + 1 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.00222886 (GeV) +>>> Event 2 + 27 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.989794 (GeV) + 2 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0.0101051 (GeV) >>> Event 3 17 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.996532 (GeV) - 1 hits are stored in HAD ExN05CalorimeterHitsCollection. - Total energy deposition in HAD calorimeter towers : 0.00338702 (GeV) + Total energy deposition in EM calorimeter crytals : 0.998656 (GeV) + 0 hits are stored in HAD ExN05CalorimeterHitsCollection. + Total energy deposition in HAD calorimeter towers : 0 (GeV) >>> Event 4 - 21 hits are stored in EM ExN05CalorimeterHitsCollection. - Total energy deposition in EM calorimeter crytals : 0.993742 (GeV) + 20 hits are stored in EM ExN05CalorimeterHitsCollection. + Total energy deposition in EM calorimeter crytals : 0.999903 (GeV) 0 hits are stored in HAD ExN05CalorimeterHitsCollection. Total energy deposition in HAD calorimeter towers : 0 (GeV) number of event = 5 diff --git a/examples/novice/N05/include/ExN05CalorimeterHit.hh b/examples/novice/N05/include/ExN05CalorimeterHit.hh index 1af61d40f6..1aac8c8652 100644 --- a/examples/novice/N05/include/ExN05CalorimeterHit.hh +++ b/examples/novice/N05/include/ExN05CalorimeterHit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05CalorimeterHit.hh,v 1.6 2003/05/28 11:20:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN05CalorimeterHit.hh,v 1.7 2003/11/10 14:41:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05CalorimeterHit_h @@ -52,7 +52,7 @@ class ExN05CalorimeterHit : public G4VHit inline void operator delete(void *aHit); void *operator new(size_t,void*p){return p;} #ifndef G4NOT_ISO_DELETES - void operator delete(void *aHit,void*){} + void operator delete(void *,void*){} #endif void Draw(); diff --git a/examples/novice/N05/include/ExN05CalorimeterSD.hh b/examples/novice/N05/include/ExN05CalorimeterSD.hh index ddbbfb1e05..d761ccd5f2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05CalorimeterSD_h diff --git a/examples/novice/N05/include/ExN05DetectorConstruction.hh b/examples/novice/N05/include/ExN05DetectorConstruction.hh index 4a00f08c9f..506f99c984 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 05a55a3f73..70df7d43d5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N05/include/ExN05EMShowerModel.hh b/examples/novice/N05/include/ExN05EMShowerModel.hh index 2ff3da483b..d8e1c84a9a 100644 --- a/examples/novice/N05/include/ExN05EMShowerModel.hh +++ b/examples/novice/N05/include/ExN05EMShowerModel.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05EMShowerModel.hh,v 1.8 2003/06/16 16:49:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //---------------------------------------------- diff --git a/examples/novice/N05/include/ExN05EnergySpot.hh b/examples/novice/N05/include/ExN05EnergySpot.hh index 8753440437..64cd59071e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05EnergySpot_h #define ExN05EnergySpot_h diff --git a/examples/novice/N05/include/ExN05EventAction.hh b/examples/novice/N05/include/ExN05EventAction.hh index 7cd72fea8e..909736d6e8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05EventAction_h diff --git a/examples/novice/N05/include/ExN05EventActionMessenger.hh b/examples/novice/N05/include/ExN05EventActionMessenger.hh index bf0c6d7b2a..b1e281ca82 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05EventActionMessenger_h diff --git a/examples/novice/N05/include/ExN05MaxTimeCuts.hh b/examples/novice/N05/include/ExN05MaxTimeCuts.hh index b27684d632..dba29d2844 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinEkineCuts.hh b/examples/novice/N05/include/ExN05MinEkineCuts.hh index 8703cbde9c..363644c93e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05MinRangeCuts.hh b/examples/novice/N05/include/ExN05MinRangeCuts.hh index d0d1be45bd..28580a6677 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/include/ExN05PhysicsList.hh b/examples/novice/N05/include/ExN05PhysicsList.hh index d40c3bc56f..0e8db6117f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // #ifndef ExN05PhysicsList_h diff --git a/examples/novice/N05/include/ExN05PiModel.hh b/examples/novice/N05/include/ExN05PiModel.hh index 589110f47c..132afa3c0d 100644 --- a/examples/novice/N05/include/ExN05PiModel.hh +++ b/examples/novice/N05/include/ExN05PiModel.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PiModel.hh,v 1.4 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //---------------------------------------- diff --git a/examples/novice/N05/include/ExN05PionShowerModel.hh b/examples/novice/N05/include/ExN05PionShowerModel.hh index d75444a823..947c8802a6 100644 --- a/examples/novice/N05/include/ExN05PionShowerModel.hh +++ b/examples/novice/N05/include/ExN05PionShowerModel.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05PionShowerModel.hh,v 1.8 2003/06/16 16:50:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //---------------------------------------------- diff --git a/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh b/examples/novice/N05/include/ExN05PrimaryGeneratorAction.hh index cfa83a2cfe..72d0e83b9c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05PrimaryGeneratorAction_h diff --git a/examples/novice/N05/include/ExN05RunAction.hh b/examples/novice/N05/include/ExN05RunAction.hh index 553f6e4dbb..a1351f0eac 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05RunAction_h diff --git a/examples/novice/N05/include/ExN05SpecialCuts.hh b/examples/novice/N05/include/ExN05SpecialCuts.hh index c44c87b13b..10fa00177e 100644 --- a/examples/novice/N05/include/ExN05SpecialCuts.hh +++ b/examples/novice/N05/include/ExN05SpecialCuts.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05SpecialCuts.hh,v 1.6 2002/01/09 17:24:18 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN05SpecialCuts.hh,v 1.7 2003/08/27 16:15:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -83,13 +83,14 @@ class ExN05SpecialCuts : public G4VProcess // no operation in AlongStepDoIt virtual G4VParticleChange* AlongStepDoIt( const G4Track& , - const G4Step& + const G4Step& ) {return 0;}; private: - - // hide assignment operator as private - ExN05SpecialCuts& operator=(const ExN05SpecialCuts& right){return *this;}; + + // hide assignment operator as private + ExN05SpecialCuts(ExN05SpecialCuts&); + ExN05SpecialCuts& operator=(const ExN05SpecialCuts& right); }; diff --git a/examples/novice/N05/include/ExN05SteppingAction.hh b/examples/novice/N05/include/ExN05SteppingAction.hh index 2c689eded0..2a5af7bea3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05SteppingAction_h diff --git a/examples/novice/N05/include/ExN05SteppingActionMessenger.hh b/examples/novice/N05/include/ExN05SteppingActionMessenger.hh index d31e081cbb..cab658fd93 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN05SteppingActionMessenger_h diff --git a/examples/novice/N05/include/ExN05VisManager.hh b/examples/novice/N05/include/ExN05VisManager.hh index 665158bf0e..87afbe9e3c 100644 --- a/examples/novice/N05/include/ExN05VisManager.hh +++ b/examples/novice/N05/include/ExN05VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN05VisManager.hh,v 1.3 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N05/src/ExN05CalorimeterHit.cc b/examples/novice/N05/src/ExN05CalorimeterHit.cc index d2de4db044..6f7141378f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05CalorimeterHit.hh" diff --git a/examples/novice/N05/src/ExN05CalorimeterSD.cc b/examples/novice/N05/src/ExN05CalorimeterSD.cc index 6454619ea6..0b89e879f1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorConstruction.cc b/examples/novice/N05/src/ExN05DetectorConstruction.cc index 7c3ba78c45..a24d4ff771 100644 --- a/examples/novice/N05/src/ExN05DetectorConstruction.cc +++ b/examples/novice/N05/src/ExN05DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05DetectorConstruction.cc,v 1.5 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05DetectorConstruction.hh" #include "ExN05CalorimeterSD.hh" diff --git a/examples/novice/N05/src/ExN05DetectorMessenger.cc b/examples/novice/N05/src/ExN05DetectorMessenger.cc index 6ce036e1d0..947e7df8d4 100644 --- a/examples/novice/N05/src/ExN05DetectorMessenger.cc +++ b/examples/novice/N05/src/ExN05DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05DetectorMessenger.cc,v 1.6 2003/06/16 16:50:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N05/src/ExN05EMShowerModel.cc b/examples/novice/N05/src/ExN05EMShowerModel.cc index 093b778bfb..5c4551a1bd 100644 --- a/examples/novice/N05/src/ExN05EMShowerModel.cc +++ b/examples/novice/N05/src/ExN05EMShowerModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05EMShowerModel.cc,v 1.7 2002/01/09 17:24:19 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN05EMShowerModel.cc,v 1.8 2003/11/10 14:41:14 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05EMShowerModel.hh" #include "ExN05EnergySpot.hh" @@ -227,16 +227,18 @@ void ExN05EMShowerModel::FillFakeStep(const ExN05EnergySpot &eSpot) SetWorldVolume(G4TransportationManager::GetTransportationManager()-> GetNavigatorForTracking()->GetWorldVolume()); fpNavigator-> - LocateGlobalPointAndUpdateTouchable(eSpot.GetPosition(), - fTouchableHandle(), + LocateGlobalPointAndUpdateTouchableHandle(eSpot.GetPosition(), + G4ThreeVector(0.,0.,0.), + fTouchableHandle, false); fNaviSetup = true; } else { fpNavigator-> - LocateGlobalPointAndUpdateTouchable(eSpot.GetPosition(), - fTouchableHandle()); + LocateGlobalPointAndUpdateTouchableHandle(eSpot.GetPosition(), + G4ThreeVector(0.,0.,0.), + fTouchableHandle); } //-------------------------------------- // Fills attribute of the G4Step needed diff --git a/examples/novice/N05/src/ExN05EnergySpot.cc b/examples/novice/N05/src/ExN05EnergySpot.cc index 3f0e4998c6..3d8b342c61 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05EnergySpot.hh" diff --git a/examples/novice/N05/src/ExN05EventAction.cc b/examples/novice/N05/src/ExN05EventAction.cc index 58ecd22ae7..cda52d4e2f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05EventAction.hh" diff --git a/examples/novice/N05/src/ExN05EventActionMessenger.cc b/examples/novice/N05/src/ExN05EventActionMessenger.cc index 0f9258e25b..4bfb4b30b3 100644 --- a/examples/novice/N05/src/ExN05EventActionMessenger.cc +++ b/examples/novice/N05/src/ExN05EventActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05EventActionMessenger.cc,v 1.5 2003/06/16 16:50:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05EventActionMessenger.hh" diff --git a/examples/novice/N05/src/ExN05MaxTimeCuts.cc b/examples/novice/N05/src/ExN05MaxTimeCuts.cc index 267fae0f65..a1bc14cd35 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N05/src/ExN05MinEkineCuts.cc b/examples/novice/N05/src/ExN05MinEkineCuts.cc index 074b85cc8b..1a4614324c 100644 --- a/examples/novice/N05/src/ExN05MinEkineCuts.cc +++ b/examples/novice/N05/src/ExN05MinEkineCuts.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05MinEkineCuts.cc,v 1.5 2003/05/28 11:20:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN05MinEkineCuts.cc,v 1.7 2003/12/09 08:42:05 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -69,25 +69,26 @@ G4double ExN05MinEkineCuts::PostStepGetPhysicalInteractionLength( G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits(); const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); G4ParticleDefinition* aParticleDef = aTrack.GetDefinition(); - + if (pUserLimits) { //min kinetic energy G4double temp = DBL_MAX; G4double eKine = aParticle->GetKineticEnergy(); - G4Material* aMaterial = aTrack.GetMaterial(); + const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple(); G4double eMin = pUserLimits->GetUserMinEkine(aTrack); G4double rangeNow = DBL_MAX; if (aParticleDef->GetPDGCharge() != 0.0) { - rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial); + rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,couple); } if (eKine < eMin ) { proposedStep = 0.; } else if (aParticleDef->GetPDGCharge() != 0.0) { // charged particles only - G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,aMaterial); + G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,couple); temp = rangeNow - rangeMin; - if (proposedStep > temp) proposedStep = temp; + if (temp<0.) temp=0.; + if (proposedStep > temp) proposedStep = temp; } } return proposedStep; diff --git a/examples/novice/N05/src/ExN05MinRangeCuts.cc b/examples/novice/N05/src/ExN05MinRangeCuts.cc index c90ca968d3..2cf40b923c 100644 --- a/examples/novice/N05/src/ExN05MinRangeCuts.cc +++ b/examples/novice/N05/src/ExN05MinRangeCuts.cc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: ExN05MinRangeCuts.cc,v 1.5 2003/05/28 11:20:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN05MinRangeCuts.cc,v 1.6 2003/08/27 16:15:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- -// GEANT 4 class implementation file +// GEANT 4 class implementation file // -------------------------------------------------------------- // 15 April 1998 M.Maire // -------------------------------------------------------------- @@ -54,7 +54,7 @@ ExN05MinRangeCuts::ExN05MinRangeCuts(ExN05MinRangeCuts&) : ExN05SpecialCuts() {} - + G4double ExN05MinRangeCuts::PostStepGetPhysicalInteractionLength( const G4Track& aTrack, G4double , @@ -69,16 +69,16 @@ G4double ExN05MinRangeCuts::PostStepGetPhysicalInteractionLength( G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits(); const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); G4ParticleDefinition* aParticleDef = aTrack.GetDefinition(); - + if (pUserLimits) { G4double temp = DBL_MAX; //min remaining range G4double eKine = aParticle->GetKineticEnergy(); - G4Material* aMaterial = aTrack.GetMaterial(); + const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple(); G4double rangeNow = DBL_MAX; if (aParticleDef->GetPDGCharge() != 0.0) { - rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial); + rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,couple); } temp = (rangeNow - pUserLimits->GetUserMinRange(aTrack)); if (temp < 0.) { diff --git a/examples/novice/N05/src/ExN05PhysicsList.cc b/examples/novice/N05/src/ExN05PhysicsList.cc index f936a5c18b..513e39822d 100644 --- a/examples/novice/N05/src/ExN05PhysicsList.cc +++ b/examples/novice/N05/src/ExN05PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PhysicsList.cc,v 1.8 2003/06/16 16:50:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN05PhysicsList.cc,v 1.9 2003/09/29 04:54:11 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -30,7 +30,6 @@ #include "globals.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" diff --git a/examples/novice/N05/src/ExN05PiModel.cc b/examples/novice/N05/src/ExN05PiModel.cc index 8d25b5d3db..cd515ff472 100644 --- a/examples/novice/N05/src/ExN05PiModel.cc +++ b/examples/novice/N05/src/ExN05PiModel.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05PiModel.cc,v 1.4 2002/01/09 17:24:20 ranjard Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05PiModel.hh" diff --git a/examples/novice/N05/src/ExN05PionShowerModel.cc b/examples/novice/N05/src/ExN05PionShowerModel.cc index 41b1a1bb06..088530a944 100644 --- a/examples/novice/N05/src/ExN05PionShowerModel.cc +++ b/examples/novice/N05/src/ExN05PionShowerModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05PionShowerModel.cc,v 1.9 2003/05/28 11:20:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN05PionShowerModel.cc,v 1.10 2003/11/10 14:41:14 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05PionShowerModel.hh" #include "ExN05EnergySpot.hh" @@ -201,16 +201,18 @@ void ExN05PionShowerModel::FillFakeStep(const ExN05EnergySpot &eSpot) SetWorldVolume(G4TransportationManager::GetTransportationManager()-> GetNavigatorForTracking()->GetWorldVolume()); fpNavigator-> - LocateGlobalPointAndUpdateTouchable(eSpot.GetPosition(), - fTouchableHandle(), + LocateGlobalPointAndUpdateTouchableHandle(eSpot.GetPosition(), + G4ThreeVector(0.,0.,0.), + fTouchableHandle, false); fNaviSetup = true; } else { fpNavigator-> - LocateGlobalPointAndUpdateTouchable(eSpot.GetPosition(), - fTouchableHandle()); + LocateGlobalPointAndUpdateTouchableHandle(eSpot.GetPosition(), + G4ThreeVector(0.,0.,0.), + fTouchableHandle); } //-------------------------------------- // Fills attribute of the G4Step needed diff --git a/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc b/examples/novice/N05/src/ExN05PrimaryGeneratorAction.cc index 2d7f923077..5c7779e503 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05PrimaryGeneratorAction.hh" diff --git a/examples/novice/N05/src/ExN05RunAction.cc b/examples/novice/N05/src/ExN05RunAction.cc index d96312f681..08576221c1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Make this appear first! diff --git a/examples/novice/N05/src/ExN05SpecialCuts.cc b/examples/novice/N05/src/ExN05SpecialCuts.cc index 224482338d..787277e940 100644 --- a/examples/novice/N05/src/ExN05SpecialCuts.cc +++ b/examples/novice/N05/src/ExN05SpecialCuts.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SpecialCuts.cc,v 1.6 2003/05/28 11:20:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/examples/novice/N05/src/ExN05SteppingAction.cc b/examples/novice/N05/src/ExN05SteppingAction.cc index 88772b4b22..6e5dd1842a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05SteppingAction.hh" diff --git a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc index 0540739650..cf609cec8a 100644 --- a/examples/novice/N05/src/ExN05SteppingActionMessenger.cc +++ b/examples/novice/N05/src/ExN05SteppingActionMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN05SteppingActionMessenger.cc,v 1.5 2003/06/16 16:50:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN05SteppingActionMessenger.hh" diff --git a/examples/novice/N05/src/ExN05VisManager.cc b/examples/novice/N05/src/ExN05VisManager.cc index ceeb995382..e430715e67 100755 --- a/examples/novice/N05/src/ExN05VisManager.cc +++ b/examples/novice/N05/src/ExN05VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN05VisManager.cc,v 1.7 2002/11/13 19:14:43 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN05VisManager.cc,v 1.8 2003/11/10 14:40:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -50,11 +50,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -107,11 +102,6 @@ void ExN05VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/novice/N06/History b/examples/novice/N06/History index 58e92c8b1f..ce50d53f6a 100644 --- a/examples/novice/N06/History +++ b/examples/novice/N06/History @@ -1,4 +1,4 @@ -$Id: History,v 1.15 2003/04/22 12:12:03 gcosmo Exp $ +$Id: History,v 1.19 2003/12/01 16:25:27 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,18 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +December 1, 2003 Peter Gumplinger (exampleN06-V05-02-02) +- DetectorConstruction: use G4SurfaceProperty. + +November 13, 2003 John Allison +- Removed OPACS from Vis Manager. + +October 24, 2003 mma (exampleN06-V05-02-01) +- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + +October 06, 2003 mma (exampleN06-V05-02-00) +- cosmetic cleanup of material definition + April 17, 2003 Peter Gumplinger (exampleN06-V05-00-03) - changed OpWaterSurface to dielectric_dielectric in class ExN06DetectorConstruction diff --git a/examples/novice/N06/exampleN06.cc b/examples/novice/N06/exampleN06.cc index de2b3e21a6..fa771d133b 100644 --- a/examples/novice/N06/exampleN06.cc +++ b/examples/novice/N06/exampleN06.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN06.cc,v 1.7 2003/01/23 15:31:39 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/exampleN06.out b/examples/novice/N06/exampleN06.out index d1bab94e0e..6bd85b0833 100644 --- a/examples/novice/N06/exampleN06.out +++ b/examples/novice/N06/exampleN06.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** Visualization Manager instantiating... @@ -36,54 +36,78 @@ Equal # /run/beamOn 1 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 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: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 ### Run 0 start. ********************************************************************************************************* @@ -93,901 +117,993 @@ MuPairProd: theoretical cross sections 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 = 33 + Exiting from G4Cerenkov::DoIt -- NumberOfSecondaries = 39 - Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 23 - 1 289 mum -584 mum -1.25 mm 33.1 keV 467 keV 1.49 mm 1.49 mm Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 46.7 mum -94.3 mum -202 mum 2.35 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.0609896,-0.601167,-0.796793) - Old Polarization: (-0.988808,0.145287,-0.0339299) - New Momentum Direction: (-0.082191,-0.810147,-0.580437) - New Polarization: (-0.989725,0.134725,-0.0478952) - *** FresnelRefraction *** - 1 -38.3 cm -3.77 m -5 m 2.35 eV 0 eV 6.27 m 6.27 m Tank Transportation - 2 -1.01 m -10 m -9.46 m 2.35 eV 0 eV 7.69 m 14 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 28.1 mum -56.7 mum -121 mum 2.69 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.0298438,-0.999531,0.0068841) - Old Polarization: (-0.839564,0.0213288,-0.542842) - New Momentum Direction: (-0.0403382,-0.999143,0.00930484) - New Polarization: (0.516711,-0.0288298,-0.855674) - *** FresnelRefraction *** - 1 -14.9 cm -5 m 3.43 cm 2.69 eV 0 eV 5 m 5 m Tank Transportation - 2 -35.1 cm -10 m 8.09 cm 2.69 eV 0 eV 5 m 10 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 97 mum -196 mum -420 mum 3.42 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.361596,-0.285887,-0.887421) - Old Polarization: (-0.390374,0.9108,-0.134354) - New Momentum Direction: (-0.490723,-0.387979,-0.780169) - New Polarization: (-0.410693,0.892682,-0.185607) - *** FresnelRefraction *** - 1 -2.04 m -1.61 m -5 m 3.42 eV 0 eV 5.63 m 5.63 m Tank Transportation - 2 -5.18 m -4.1 m -10 m 3.42 eV 0 eV 6.41 m 12 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 16 mum -32.3 mum -69.2 mum 3.58 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.689152,0.716785,-0.106251) - Old Polarization: (-0.594966,0.476031,-0.647619) - New Momentum Direction: (0.93598,0.321118,-0.144306) - New Polarization: (-0.334859,0.685509,-0.646488) - *** FresnelRefraction *** - 1 4.81 m 5 m -74.1 cm 3.58 eV 0 eV 6.98 m 6.98 m Tank Transportation - 2 10 m 6.78 m -1.54 m 3.58 eV 0 eV 5.55 m 12.5 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 45.1 mum -91.1 mum -195 mum 3.75 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.986005,-0.0896971,0.140531) - Old Polarization: (0.0660662,0.984143,0.164613) - New Momentum Direction: (0.973997,-0.121893,0.190974) - New Polarization: (0.0899211,0.981683,0.167967) - *** FresnelRefraction *** - 1 5 m -45.5 cm 71.2 cm 3.75 eV 0 eV 5.07 m 5.07 m Tank Transportation - 2 10 m -1.08 m 1.69 m 3.75 eV 0 eV 5.13 m 10.2 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 140 mum -283 mum -605 mum 3.84 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.647721,0.114574,-0.753213) - Old Polarization: (-0.748978,-0.276913,0.601957) - New Momentum Direction: (-0.880488,0.155747,-0.447753) - New Polarization: (0.342531,-0.44395,-0.827998) - *** FresnelRefraction *** - 1 -4.3 m 76 cm -5 m 3.84 eV 0 eV 6.64 m 6.64 m Tank Transportation - 2 -10 m 1.77 m -7.9 m 3.84 eV 0 eV 6.47 m 13.1 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 265 mum -536 mum -1.15 mm 4.07 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 24.4 cm -1.16 m 1.52 m 4.07 eV 0 eV 1.93 m 1.93 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 260 mum -525 mum -1.13 mm 3.4 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.737715,-0.0467659,-0.67349) - Old Polarization: (0.0826205,-0.996353,-0.0213144) - New Momentum Direction: (0.737715,-0.0467659,-0.67349) - New Polarization: (-0.0293614,-0.998876,0.0371988) - *** FresnelReflection *** - 1 -5 m -31.8 cm -4.57 m 3.4 eV 0 eV 6.78 m 6.78 m Tank Transportation - 2 -5 m -31.8 cm -4.57 m 3.4 eV 0 eV 0 fm 6.78 m World Transportation - Photon at Boundary! - Old Momentum Direction: (0.737715,-0.0467659,-0.67349) - Old Polarization: (-0.0293614,-0.998876,0.0371988) - New Momentum Direction: (0.737715,-0.0467659,0.67349) - New Polarization: (0.0293614,0.998876,0.0371988) - *** TotalInternalReflection *** - 3 -4.52 m -34.8 cm -5 m 3.4 eV 0 eV 64.4 cm 7.42 m Tank Transportation - 4 -4.52 m -34.8 cm -5 m 3.4 eV 0 eV 0 fm 7.42 m World Transportation - -** Photon absorbed! ** - 5 -1.31 mm -63.4 cm -87 cm 3.4 eV 0 eV 6.13 m 13.6 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 135 mum -274 mum -586 mum 3.38 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.489564,0.730777,0.475702) - Old Polarization: (0.0432801,-0.565242,0.823789) - New Momentum Direction: (0.664298,0.376901,0.645488) - New Polarization: (-0.59518,0.789134,0.151748) - *** FresnelRefraction *** - 1 3.35 m 5 m 3.25 m 3.38 eV 0 eV 6.84 m 6.84 m Tank Transportation - 2 10 m 8.77 m 9.72 m 3.38 eV 0 eV 10 m 16.9 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 221 mum -447 mum -957 mum 3.32 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.245066,0.0121532,-0.96943) - Old Polarization: (-0.131953,-0.991035,0.0209328) - New Momentum Direction: (-0.332442,0.0164863,-0.94298) - New Polarization: (0.0313348,-0.999102,-0.0285145) - *** FresnelRefraction *** - 1 -1.26 m 6.22 cm -5 m 3.32 eV 0 eV 5.16 m 5.16 m Tank Transportation - 2 -3.03 m 15 cm -10 m 3.32 eV 0 eV 5.3 m 10.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 17.8 mum -36 mum -77.1 mum 3.55 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 -1.1 m 59.2 cm -4.26 m 3.55 eV 0 eV 4.44 m 4.44 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 131 mum -265 mum -567 mum 3.99 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.924114,0.330171,0.192355) - Old Polarization: (-0.139786,-0.760603,0.63399) - New Momentum Direction: (-0.854368,0.449023,0.261598) - New Polarization: (-0.192081,-0.740608,0.643897) - *** FresnelRefraction *** - 1 -5 m 1.79 m 1.04 m 3.99 eV 0 eV 5.41 m 5.41 m Tank Transportation - 2 -10 m 4.41 m 2.57 m 3.99 eV 0 eV 5.85 m 11.3 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 36.6 mum -73.8 mum -158 mum 3.03 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.88445,-0.276275,-0.376059) - Old Polarization: (-0.0686685,0.720063,-0.690502) - New Momentum Direction: (0.77491,-0.374223,-0.509383) - New Polarization: (0.0948396,0.865611,-0.491653) - *** FresnelRefraction *** - 1 5 m -1.56 m -2.13 m 3.03 eV 0 eV 5.65 m 5.65 m Tank Transportation - 2 10 m -3.98 m -5.41 m 3.03 eV 0 eV 6.45 m 12.1 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 151 mum -305 mum -653 mum 2.39 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.918113,-0.343787,-0.197175) - Old Polarization: (0.364751,-0.538408,-0.759654) - New Momentum Direction: (-0.845332,-0.46343,-0.265794) - New Polarization: (-0.4926,0.868699,0.0520305) - *** FresnelRefraction *** - 1 -5 m -1.87 m -1.07 m 2.39 eV 0 eV 5.45 m 5.45 m Tank Transportation - 2 -10 m -4.61 m -2.65 m 2.39 eV 0 eV 5.91 m 11.4 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 184 mum -371 mum -795 mum 2.49 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.93211,-0.185549,-0.311035) - Old Polarization: (0.309395,-0.854375,-0.417514) - New Momentum Direction: (-0.872448,-0.250373,-0.419699) - New Polarization: (-0.418589,-0.0603913,0.906166) - *** FresnelRefraction *** - 1 -5 m -99.6 cm -1.67 m 2.49 eV 0 eV 5.36 m 5.36 m Tank Transportation - 2 -10 m -2.43 m -4.07 m 2.49 eV 0 eV 5.73 m 11.1 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 24.4 mum -49.3 mum -106 mum 3.46 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.389908,0.25233,-0.885608) - Old Polarization: (0.164722,-0.927101,-0.336675) - New Momentum Direction: (-0.52922,0.342486,-0.776292) - New Polarization: (0.106575,-0.880838,-0.461265) - *** FresnelRefraction *** - 1 -2.2 m 1.42 m -5 m 3.46 eV 0 eV 5.65 m 5.65 m Tank Transportation - 2 -5.61 m 3.63 m -10 m 3.46 eV 0 eV 6.44 m 12.1 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 180 mum -363 mum -777 mum 2.69 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.278981,0.949592,-0.142984) - Old Polarization: (-0.848452,0.174002,-0.499852) - New Momentum Direction: (0.377098,0.905783,-0.193271) - New Polarization: (-0.828171,0.236348,-0.508205) - *** FresnelRefraction *** - 1 1.47 m 5 m -75.4 cm 2.69 eV 0 eV 5.27 m 5.27 m Tank Transportation - 2 3.55 m 10 m -1.82 m 2.69 eV 0 eV 5.52 m 10.8 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 51.8 mum -105 mum -224 mum 3.36 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 27.8 cm 29.4 cm -14.5 cm 3.36 eV 0 eV 42.9 cm 42.9 cm Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 197 mum -397 mum -851 mum 2.84 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.618444,-0.0241854,-0.785457) - Old Polarization: (0.0824315,0.992015,-0.0954496) - New Momentum Direction: (-0.618444,-0.0241854,0.785457) - New Polarization: (-0.0505926,0.998678,-0.00908425) - *** FresnelReflection *** - 1 -3.94 m -15.4 cm -5 m 2.84 eV 0 eV 6.36 m 6.36 m Tank Transportation - 2 -3.94 m -15.4 cm -5 m 2.84 eV 0 eV 0 fm 6.36 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.618444,-0.0241854,0.785457) - Old Polarization: (-0.0505926,0.998678,-0.00908425) - New Momentum Direction: (0.618444,-0.0241854,0.785457) - New Polarization: (-0.0505926,-0.998678,0.00908425) - *** TotalInternalReflection *** - 3 -5 m -19.6 cm -3.65 m 2.84 eV 0 eV 1.72 m 8.09 m Tank Transportation - 4 -5 m -19.6 cm -3.65 m 2.84 eV 0 eV 0 fm 8.09 m World Transportation - Photon at Boundary! - Old Momentum Direction: (0.618444,-0.0241854,0.785457) - Old Polarization: (-0.0505926,-0.998678,0.00908425) - New Momentum Direction: (0.836845,-0.0327264,0.54646) - New Polarization: (-0.0475304,-0.998786,0.0129725) - *** FresnelRefraction *** - 5 1.81 m -46.2 cm 5 m 2.84 eV 0 eV 11 m 19.1 m Tank Transportation - 6 9.47 m -76.2 cm 10 m 2.84 eV 0 eV 9.15 m 28.2 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 38, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 202 mum -409 mum -875 mum 2.09 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.419899,-0.209925,0.882959) - Old Polarization: (0.0601095,0.964313,0.257852) - New Momentum Direction: (-0.564472,-0.282203,0.775715) - New Polarization: (0.0146436,0.936174,0.351233) - *** FresnelRefraction *** - 1 -2.38 m -1.19 m 5 m 2.09 eV 0 eV 5.66 m 5.66 m Tank Transportation - 2 -6.02 m -3.01 m 10 m 2.09 eV 0 eV 6.45 m 12.1 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 37, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 172 mum -346 mum -742 mum 4 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (-0.887274,0.458122,0.053569) -Old Polarization: (-0.459017,-0.865619,-0.200015) -New Polarization: (-0.518288,-0.776444,-0.358487) -Polarization Change: (-0.518288,-0.776444,-0.358487) -New Momentum Direction: (-0.261537,0.543002,-0.797964) -Momentum Change: (-0.261537,0.543002,-0.797964) - 1 -1.25 m 64.5 cm 7.47 cm 4 eV 0 eV 1.41 m 1.41 m Tank OpRayleigh -Scattering Photon! -Old Momentum Direction: (-0.261537,0.543002,-0.797964) -Old Polarization: (-0.518288,-0.776444,-0.358487) -New Polarization: (0.0943035,-0.984354,0.148841) -Polarization Change: (0.0943035,-0.984354,0.148841) -New Momentum Direction: (-0.774866,-0.166443,-0.60982) -Momentum Change: (-0.774866,-0.166443,-0.60982) - 2 -2.39 m 3.02 m -3.41 m 4 eV 0 eV 4.37 m 5.78 m Tank OpRayleigh - -** Photon absorbed! ** - 3 -4.18 m 2.63 m -4.82 m 4 eV 0 eV 2.31 m 8.08 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 36, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 61 mum -123 mum -264 mum 3.11 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.787431,0.381242,-0.484362) - Old Polarization: (-0.505768,-0.848785,0.154153) - New Momentum Direction: (-0.549848,0.516607,-0.656341) - New Polarization: (-0.697019,-0.716781,0.0197468) - *** FresnelRefraction *** - 1 -5 m 2.42 m -3.08 m 3.11 eV 0 eV 6.35 m 6.35 m Tank Transportation - 2 -10 m 7.12 m -9.04 m 3.11 eV 0 eV 9.09 m 15.4 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 35, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 98 mum -198 mum -424 mum 2.36 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (-0.536569,0.0885964,0.839193) - Old Polarization: (-0.461745,0.801561,-0.379857) - New Momentum Direction: (-0.723116,0.119398,0.680328) - New Polarization: (0.591036,0.616682,0.51998) - *** FresnelRefraction *** - 1 -3.2 m 52.8 cm 5 m 2.36 eV 0 eV 5.96 m 5.96 m Tank Transportation - 2 -8.51 m 1.41 m 10 m 2.36 eV 0 eV 7.35 m 13.3 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 34, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 253 mum 0 fm 0 fm 2.47 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.859063,-0.303539,-0.412158) - Old Polarization: (-0.511869,-0.509426,-0.691719) - New Momentum Direction: (0.723289,-0.409495,-0.556028) - New Polarization: (0.690546,0.428912,0.582393) - *** FresnelRefraction *** - 1 5 m -1.77 m -2.4 m 2.47 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m -4.6 m -6.24 m 2.47 eV 0 eV 6.91 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 283 mum 0 fm 0 fm 3.12 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.855224,0.499404,0.138518) - Old Polarization: (-0.518259,0.824111,0.22858) - New Momentum Direction: (0.711877,0.676755,0.187709) - New Polarization: (0.702304,-0.685979,-0.190267) - *** FresnelRefraction *** - 1 5 m 2.92 m 81 cm 3.12 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m 7.67 m 2.13 m 3.12 eV 0 eV 7.02 m 12.9 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 53.4 mum 0 fm 0 fm 2.46 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (0.859184,-0.48836,0.152666) -Old Polarization: (-0.511666,-0.820048,0.256356) -New Polarization: (-0.362441,-0.747728,0.556362) -Polarization Change: (-0.362441,-0.747728,0.556362) -New Momentum Direction: (0.504922,0.344226,0.791557) -Momentum Change: (0.504922,0.344226,0.791557) - 1 3.52 m -2 m 62.6 cm 2.46 eV 0 eV 4.1 m 4.1 m Tank OpRayleigh - Photon at Boundary! - Old Momentum Direction: (0.504922,0.344226,0.791557) - Old Polarization: (-0.362441,-0.747728,0.556362) - New Momentum Direction: (-0.504922,0.344226,0.791557) - New Polarization: (-0.362441,0.747728,-0.556362) - *** TotalInternalReflection *** - 2 5 m -99.7 cm 2.94 m 2.46 eV 0 eV 2.92 m 7.02 m Tank Transportation - 3 5 m -99.7 cm 2.94 m 2.46 eV 0 eV 0 fm 7.02 m World Transportation - Photon at Boundary! - Old Momentum Direction: (-0.504922,0.344226,0.791557) - Old Polarization: (-0.362441,0.747728,-0.556362) - New Momentum Direction: (-0.681078,0.464319,0.566163) - New Polarization: (0.652962,0.0352686,0.756569) - *** FresnelRefraction *** - 4 3.69 m -10.1 cm 5 m 2.46 eV 0 eV 2.6 m 9.63 m Tank Transportation - 5 -2.33 m 4 m 10 m 2.46 eV 0 eV 8.83 m 18.5 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 31, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 93.8 mum 0 fm 0 fm 2.74 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.857155,-0.153195,-0.491748) - Old Polarization: (-0.515058,-0.254947,-0.818363) - New Momentum Direction: (0.717659,-0.207131,-0.664878) - New Polarization: (0.696395,0.213456,0.68518) - *** FresnelRefraction *** - 1 5 m -89.4 cm -2.87 m 2.74 eV 0 eV 5.83 m 5.83 m Tank Transportation - 2 10 m -2.34 m -7.5 m 2.74 eV 0 eV 6.97 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 289 mum 0 fm 0 fm 3.15 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (0.855116,0.093041,0.51002) -Old Polarization: (-0.518437,0.153463,0.841232) -New Polarization: (-0.724608,-0.241586,0.64543) -Polarization Change: (-0.724608,-0.241586,0.64543) -New Momentum Direction: (-0.254899,-0.776177,-0.576694) -Momentum Change: (-0.254899,-0.776177,-0.576694) - 1 57 cm 6.2 cm 34 cm 3.15 eV 0 eV 66.6 cm 66.6 cm Tank OpRayleigh - Photon at Boundary! - Old Momentum Direction: (-0.254899,-0.776177,-0.576694) - Old Polarization: (-0.724608,-0.241586,0.64543) - New Momentum Direction: (-0.345464,-0.519394,-0.781591) - New Polarization: (-0.752438,-0.344405,0.561447) - *** FresnelRefraction *** - 2 -1.09 m -5 m -3.42 m 3.15 eV 0 eV 6.52 m 7.19 m Tank Transportation - 3 -4 m -9.37 m -10 m 3.15 eV 0 eV 8.42 m 15.6 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 76.3 mum 0 fm 0 fm 2.43 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.859406,0.374558,0.348033) - Old Polarization: (-0.511293,0.629576,0.58499) - New Momentum Direction: (0.724292,0.505103,0.469332) - New Polarization: (0.689494,-0.530595,-0.493019) - *** FresnelRefraction *** - 1 5 m 2.18 m 2.02 m 2.43 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m 5.67 m 5.26 m 2.43 eV 0 eV 6.9 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 18.9 mum 0 fm 0 fm 2.41 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.859587,0.0551321,0.508006) - Old Polarization: (-0.510989,0.0927434,0.854569) - New Momentum Direction: (0.72482,0.0743315,0.684917) - New Polarization: (0.688938,-0.0782029,-0.720589) - *** FresnelRefraction *** - 1 5 m 32.1 cm 2.95 m 2.41 eV 0 eV 5.82 m 5.82 m Tank Transportation - 2 10 m 83.3 cm 7.68 m 2.41 eV 0 eV 6.9 m 12.7 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 27, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 24.9 mum 0 fm 0 fm 3.47 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.853801,-0.506427,0.120642) - Old Polarization: (-0.520599,-0.830559,0.197858) - New Momentum Direction: (0.707562,-0.687415,0.163758) - New Polarization: (0.706651,0.688301,-0.163969) - *** FresnelRefraction *** - 1 5 m -2.97 m 70.6 cm 3.47 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -7.82 m 1.86 m 3.47 eV 0 eV 7.07 m 12.9 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 37.2 mum 0 fm 0 fm 2.83 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.856498,-0.439402,0.270808) - Old Polarization: (-0.51615,-0.729143,0.449378) - New Momentum Direction: (0.715701,-0.594558,0.366432) - New Polarization: (0.698407,0.609281,-0.375506) - *** FresnelRefraction *** - 1 5 m -2.57 m 1.58 m 2.83 eV 0 eV 5.84 m 5.84 m Tank Transportation - 2 10 m -6.72 m 4.14 m 2.83 eV 0 eV 6.99 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 105 mum 0 fm 0 fm 2.27 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 21.9 cm 3.79 cm 12.4 cm 2.27 eV 0 eV 25.5 cm 25.5 cm Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 61.7 nm 0 fm 0 fm 3.98 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.852203,0.21766,-0.475788) - Old Polarization: (-0.523211,0.354524,-0.77496) - New Momentum Direction: (0.702657,0.296002,-0.647036) - New Polarization: (0.711529,-0.292311,0.638969) - *** FresnelRefraction *** - 1 5 m 1.28 m -2.79 m 3.98 eV 0 eV 5.87 m 5.87 m Tank Transportation - 2 10 m 3.38 m -7.4 m 3.98 eV 0 eV 7.12 m 13 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 23, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 216 mum 0 fm 0 fm 3.53 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.853496,-0.498904,0.150468) - Old Polarization: (-0.5211,-0.817141,0.246447) - New Momentum Direction: (0.706628,-0.677445,0.204315) - New Polarization: (0.707585,0.676529,-0.204039) - *** FresnelRefraction *** - 1 5 m -2.92 m 88.1 cm 3.53 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -7.72 m 2.33 m 3.53 eV 0 eV 7.08 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 281 mum 0 fm 0 fm 2.16 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.861464,0.185267,-0.472816) - Old Polarization: (-0.507818,0.314288,-0.802087) - New Momentum Direction: (0.730258,0.249241,-0.636083) - New Polarization: (0.683171,-0.26642,0.679925) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 262 mum 0 fm 0 fm 2.65 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.857713,0.493749,-0.143321) - Old Polarization: (-0.514129,0.823713,-0.2391) - New Momentum Direction: (0.719312,0.667149,-0.193654) - New Polarization: (0.694687,-0.690798,0.200519) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 20, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 267 mum 0 fm 0 fm 3.36 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 87.8 cm 44.9 cm 29 cm 3.36 eV 0 eV 1.03 m 1.03 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 19, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 206 mum 0 fm 0 fm 3.21 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.854862,-0.417391,0.308213) - Old Polarization: (-0.518855,-0.687691,0.50781) - New Momentum Direction: (0.710785,-0.565855,0.417843) - New Polarization: (0.70341,0.571788,-0.422224) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 18, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 203 mum 0 fm 0 fm 3.18 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.854991,0.218376,0.470428) - Old Polarization: (-0.518643,0.359995,0.775508) - New Momentum Direction: (0.711173,0.296006,0.637662) - New Polarization: (0.703017,-0.299441,-0.64506) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 17, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 85.3 mum 0 fm 0 fm 2.51 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85869,0.255203,-0.444436) - Old Polarization: (-0.512495,0.427594,-0.744655) - New Momentum Direction: (0.722193,0.344435,-0.599834) - New Polarization: (0.691691,-0.359624,0.626285) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 118 mum 0 fm 0 fm 3.44 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.853927,-0.52035,-0.00666098) - Old Polarization: (-0.520392,-0.853857,-0.0109302) - New Momentum Direction: (0.707946,-0.706208,-0.00904016) - New Polarization: (0.706266,0.707888,0.00906166) - *** FresnelRefraction *** - 1 5 m -3.05 m -3.9 cm 3.44 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -8.03 m -10.3 cm 3.44 eV 0 eV 7.06 m 12.9 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 41.8 mum 0 fm 0 fm 3.76 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 4.18 m -1.59 m -2.01 m 3.76 eV 0 eV 4.9 m 4.9 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 49.1 mum 0 fm 0 fm 2.3 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.860366,0.509488,0.0138279) - Old Polarization: (-0.509676,0.86005,0.0233425) - New Momentum Direction: (0.727087,0.686293,0.0186266) - New Polarization: (0.686546,-0.726819,-0.0197265) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 13, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 260 mum 0 fm 0 fm 2.63 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.857905,-0.373155,-0.353206) - Old Polarization: (-0.513809,-0.623056,-0.589748) - New Momentum Direction: (0.71988,-0.504091,-0.477142) - New Polarization: (0.694098,0.522815,0.494866) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 12, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 28.9 mum 0 fm 0 fm 2.31 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 1.91 m 1.13 m 14.4 cm 2.31 eV 0 eV 2.23 m 2.23 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 149 mum 0 fm 0 fm 3.94 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.852322,-0.51903,-0.0644626) - Old Polarization: (-0.523017,-0.845824,-0.10505) - New Momentum Direction: (0.703024,-0.705744,-0.0876522) - New Polarization: (0.711166,0.697664,0.0866487) - *** FresnelRefraction *** - 1 5 m -3.04 m -37.8 cm 3.94 eV 0 eV 5.87 m 5.87 m Tank Transportation - 2 10 m -8.06 m -1 m 3.94 eV 0 eV 7.11 m 13 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 10, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 130 mum 0 fm 0 fm 3.35 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.854182,-0.519639,-0.0186743) - Old Polarization: (-0.519974,-0.853631,-0.030677) - New Momentum Direction: (0.708721,-0.705034,-0.0253368) - New Polarization: (0.705489,0.708264,0.0254529) - *** FresnelRefraction *** - 1 5 m -3.04 m -10.9 cm 3.35 eV 0 eV 5.85 m 5.85 m Tank Transportation - 2 10 m -8.02 m -28.8 cm 3.35 eV 0 eV 7.05 m 12.9 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 25.6 mum 0 fm 0 fm 2.61 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 2.7 m -1.05 m -1.23 m 2.61 eV 0 eV 3.15 m 3.15 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 8, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 257 mum 0 fm 0 fm 3.87 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.8525,-0.498277,-0.157998) - Old Polarization: (-0.522727,-0.812626,-0.257675) - New Momentum Direction: (0.703574,-0.677383,-0.214791) - New Polarization: (0.710622,0.670665,0.212661) - *** FresnelRefraction *** - 1 5 m -2.92 m -92.7 cm 3.87 eV 0 eV 5.86 m 5.86 m Tank Transportation - 2 10 m -7.74 m -2.45 m 3.87 eV 0 eV 7.11 m 13 m OutOfWorld Transportation - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 47.4 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 1.21 m -12.2 cm -72.7 cm 3.56 eV 0 eV 1.41 m 1.41 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 256 mum 0 fm 0 fm 4.06 eV 0 eV 0 fm 0 fm Tank initStep -Scattering Photon! -Old Momentum Direction: (0.851952,-0.40742,-0.328917) -Old Polarization: (-0.523619,-0.66289,-0.535163) -New Polarization: (-0.19806,-0.927088,-0.318245) -Polarization Change: (-0.19806,-0.927088,-0.318245) -New Momentum Direction: (0.757814,-0.350756,0.550172) -Momentum Change: (0.757814,-0.350756,0.550172) - 1 4.4 m -2.1 m -1.7 m 4.06 eV 0 eV 5.17 m 5.17 m Tank OpRayleigh - -** Photon absorbed! ** - 2 4.69 m -2.24 m -1.49 m 4.06 eV 0 eV 37.5 cm 5.54 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 73.9 mum 0 fm 0 fm 3.56 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 3.88 m -1.25 m -2.01 m 3.56 eV 0 eV 4.54 m 4.54 m Tank OpAbsorption - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 123 mum 0 fm 0 fm 3.89 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.852429,-0.388571,0.349824) - Old Polarization: (-0.522842,-0.633517,0.570344) - New Momentum Direction: (0.703355,-0.528288,0.475609) - New Polarization: (0.710839,0.522726,-0.470601) - *** FresnelRefraction *** - 1 5 m -2.28 m 2.05 m 3.89 eV 0 eV 5.87 m 5.87 m Tank Transportation - 2 10 m -6.03 m 5.43 m 3.89 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 6.86 mum 0 fm 0 fm 3.42 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85399,-0.520013,-0.0169462) - Old Polarization: (-0.520289,-0.853537,-0.0278151) - New Momentum Direction: (0.708138,-0.7057,-0.0229974) - New Polarization: (0.706074,0.707762,0.0230646) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 228 mum 0 fm 0 fm 3.51 eV 0 eV 0 fm 0 fm Tank initStep - Photon at Boundary! - Old Momentum Direction: (0.85358,0.116025,-0.507877) - Old Polarization: (-0.520961,0.190104,-0.832142) - New Momentum Direction: (0.706887,0.157531,-0.689561) - New Polarization: (0.707327,-0.157433,0.689133) - *** 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 - -********************************************************************************************************* -* G4Track Information: Particle = e-, Track ID = 1, Parent ID = 0 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 1 289 mum -584 mum -1.25 mm 33.1 keV 0 eV 0 fm 1.49 mm Tank initStep - - Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 2 - 2 296 mum -589 mum -1.26 mm 0 eV 33.1 keV 20.7 mum 1.51 mm Tank eIoni - -********************************************************************************************************* -* G4Track Information: Particle = opticalphoton, Track ID = 59, Parent ID = 1 -********************************************************************************************************* - -Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 295 mum -588 mum -1.26 mm 3.92 eV 0 eV 0 fm 0 fm Tank initStep - -** Photon absorbed! ** - 1 63.7 cm -4.4 m -15.2 cm 3.92 eV 0 eV 4.45 m 4.45 m Tank OpAbsorption + Exiting from G4Scintillation::DoIt -- NumberOfSecondaries = 18 + 1 234 mum 0 fm 0 fm 0 eV 500 keV 1.76 mm 1.76 mm Tank eIoni + 2 234 mum 0 fm 0 fm 0 eV 0 eV 0 fm 1.76 mm Tank Scintillation ********************************************************************************************************* * G4Track Information: Particle = opticalphoton, Track ID = 58, Parent ID = 1 ********************************************************************************************************* Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process - 0 295 mum -589 mum -1.26 mm 2.18 eV 0 eV 0 fm 0 fm Tank initStep + 0 187 mum 0 fm 0 fm 3.3 eV 0 eV 0 fm 0 fm Tank initStep Photon at Boundary! - Old Momentum Direction: (-0.159332,-0.41423,-0.896117) - Old Polarization: (-0.653237,-0.636346,0.410298) - New Momentum Direction: (-0.214383,-0.557352,-0.802121) - New Polarization: (-0.0840492,0.828695,-0.553353) + Old Momentum Direction: (-0.985954,0.102222,0.132081) + Old Polarization: (0.0757615,-0.431046,0.899144) + New Momentum Direction: (-0.974006,0.138642,0.179139) + New Polarization: (-0.102904,-0.975324,0.19533) *** FresnelRefraction *** - 1 -88.8 cm -2.31 m -5 m 2.18 eV 0 eV 5.58 m 5.58 m Tank Transportation - 2 -2.22 m -5.79 m -10 m 2.18 eV 0 eV 6.23 m 11.8 m OutOfWorld Transportation -Number of optical photons produces in this event : 58 -number of event = 1 User=0.07s Real=0.23s Sys=0.16s + 1 -5 m 51.8 cm 67 cm 3.3 eV 0 eV 5.07 m 5.07 m Tank Transportation + 2 -10 m 1.23 m 1.59 m 3.3 eV 0 eV 5.13 m 10.2 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 57, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 202 mum 0 fm 0 fm 3.72 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.865392,-0.496816,-0.0653419) + Old Polarization: (-0.492637,-0.819666,-0.29233) + New Momentum Direction: (0.732374,-0.675088,-0.0887885) + New Polarization: (0.669964,0.737736,-0.0830315) + *** FresnelRefraction *** + 1 5 m -2.87 m -37.8 cm 3.72 eV 0 eV 5.78 m 5.78 m Tank Transportation + 2 10 m -7.48 m -98.4 cm 3.72 eV 0 eV 6.83 m 12.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 56, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 226 mum 0 fm 0 fm 3.36 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.692951,-0.510445,0.50918) + Old Polarization: (0.719974,0.452541,-0.526159) + New Momentum Direction: (0.207446,-0.692583,0.690865) + New Polarization: (0.977258,0.114979,-0.178176) + *** FresnelRefraction *** + 1 5 m -3.68 m 3.67 m 3.36 eV 0 eV 7.22 m 7.22 m Tank Transportation + 2 6.89 m -10 m 9.98 m 3.36 eV 0 eV 9.12 m 16.3 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 55, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 152 mum 0 fm 0 fm 2.39 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 -3.4 m 69.3 cm -39.8 cm 2.39 eV 0 eV 3.49 m 3.49 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 54, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 150 mum 0 fm 0 fm 3.07 eV 0 eV 0 fm 0 fm Tank initStep +Scattering Photon! +Old Momentum Direction: (0.0802356,-0.877503,0.472811) +Old Polarization: (-0.914317,0.124117,0.385511) +New Polarization: (-0.852608,0.380291,0.358382) +Polarization Change: (-0.852608,0.380291,0.358382) +New Momentum Direction: (0.348956,0.924859,-0.151214) +Momentum Change: (0.348956,0.924859,-0.151214) + 1 15.7 cm -1.72 m 92.4 cm 3.07 eV 0 eV 1.95 m 1.95 m Tank OpRayleigh + Photon at Boundary! + Old Momentum Direction: (0.348956,0.924859,-0.151214) + Old Polarization: (-0.852608,0.380291,0.358382) + New Momentum Direction: (0.472759,0.857048,-0.204861) + New Polarization: (-0.790346,0.515211,0.331528) + *** FresnelRefraction *** + 2 2.69 m 5 m -17.4 cm 3.07 eV 0 eV 7.26 m 9.22 m Tank Transportation + 3 5.45 m 10 m -1.37 m 3.07 eV 0 eV 5.83 m 15 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 53, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 144 mum 0 fm 0 fm 2.92 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.849208,0.346124,-0.398803) + Old Polarization: (0.364039,0.163344,0.916948) + New Momentum Direction: (0.699267,0.468566,-0.539881) + New Polarization: (0.500298,0.218672,0.837786) + *** FresnelRefraction *** + 1 5 m 2.04 m -2.35 m 2.92 eV 0 eV 5.89 m 5.89 m Tank Transportation + 2 10 m 5.39 m -6.21 m 2.92 eV 0 eV 7.15 m 13 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 52, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 169 mum 0 fm 0 fm 2.97 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 -1.25 m 38.3 cm 37.7 cm 2.97 eV 0 eV 1.36 m 1.36 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 51, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 218 mum 0 fm 0 fm 4.03 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 1.42 m 1.44 m 2.42 m 4.03 eV 0 eV 3.16 m 3.16 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 50, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 111 mum 0 fm 0 fm 3.2 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.617172,-0.085375,0.782182) + Old Polarization: (-0.742468,0.392263,-0.54302) + New Momentum Direction: (-0.836665,-0.115738,0.535347) + New Polarization: (0.403922,0.529751,0.745796) + *** FresnelRefraction *** + 1 -3.95 m -54.6 cm 5 m 3.2 eV 0 eV 6.39 m 6.39 m Tank Transportation + 2 -10 m -1.38 m 8.87 m 3.2 eV 0 eV 7.24 m 13.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 49, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 39.3 mum 0 fm 0 fm 3.15 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.504684,-0.574073,0.644775) + Old Polarization: (-0.817976,0.0791509,-0.569782) + New Momentum Direction: (-0.504684,-0.574073,-0.644775) + New Polarization: (0.817976,-0.0791509,-0.569782) + *** TotalInternalReflection *** + 1 -3.91 m -4.45 m 5 m 3.15 eV 0 eV 7.75 m 7.75 m Tank Transportation + 2 -3.91 m -4.45 m 5 m 3.15 eV 0 eV 0 fm 7.75 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.504684,-0.574073,-0.644775) + Old Polarization: (0.817976,-0.0791509,-0.569782) + New Momentum Direction: (-0.504684,0.574073,-0.644775) + New Polarization: (-0.817976,-0.0791509,0.569782) + *** TotalInternalReflection *** + 3 -4.4 m -5 m 4.38 m 3.15 eV 0 eV 95.5 cm 8.71 m Tank Transportation + 4 -4.4 m -5 m 4.38 m 3.15 eV 0 eV 0 fm 8.71 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.504684,0.574073,-0.644775) + Old Polarization: (-0.817976,-0.0791509,0.569782) + New Momentum Direction: (0.504684,0.574073,-0.644775) + New Polarization: (-0.817976,0.0791509,-0.569782) + *** TotalInternalReflection *** + 5 -5 m -4.31 m 3.61 m 3.15 eV 0 eV 1.2 m 9.91 m Tank Transportation + 6 -5 m -4.31 m 3.61 m 3.15 eV 0 eV 0 fm 9.91 m World Transportation + +** Photon absorbed! ** + 7 64.1 cm 2.1 m -3.6 m 3.15 eV 0 eV 11.2 m 21.1 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 48, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 50.9 mum 0 fm 0 fm 2.89 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 1.66 m 97.2 cm 2.24 m 2.89 eV 0 eV 2.95 m 2.95 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 47, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 158 mum 0 fm 0 fm 2.46 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.539065,-0.512335,0.668523) + Old Polarization: (0.328116,-0.858756,-0.393546) + New Momentum Direction: (-0.539065,-0.512335,-0.668523) + New Polarization: (-0.328116,0.858756,-0.393546) + *** TotalInternalReflection *** + 1 -4.03 m -3.83 m 5 m 2.46 eV 0 eV 7.48 m 7.48 m Tank Transportation + 2 -4.03 m -3.83 m 5 m 2.46 eV 0 eV 0 fm 7.48 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.539065,-0.512335,-0.668523) + Old Polarization: (-0.328116,0.858756,-0.393546) + New Momentum Direction: (0.539065,-0.512335,-0.668523) + New Polarization: (-0.328116,-0.858756,0.393546) + *** TotalInternalReflection *** + 3 -5 m -4.75 m 3.8 m 2.46 eV 0 eV 1.8 m 9.28 m Tank Transportation + 4 -5 m -4.75 m 3.8 m 2.46 eV 0 eV 0 fm 9.28 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.539065,-0.512335,-0.668523) + Old Polarization: (-0.328116,-0.858756,0.393546) + New Momentum Direction: (0.539065,0.512335,-0.668523) + New Polarization: (0.328116,-0.858756,-0.393546) + *** TotalInternalReflection *** + 5 -4.74 m -5 m 3.48 m 2.46 eV 0 eV 48.4 cm 9.76 m Tank Transportation + 6 -4.74 m -5 m 3.48 m 2.46 eV 0 eV 0 fm 9.76 m World Transportation +Scattering Photon! +Old Momentum Direction: (0.539065,0.512335,-0.668523) +Old Polarization: (0.328116,-0.858756,-0.393546) +New Polarization: (-0.35123,0.0732112,0.933422) +Polarization Change: (-0.35123,0.0732112,0.933422) +New Momentum Direction: (-0.162902,0.976955,-0.137923) +Momentum Change: (-0.162902,0.976955,-0.137923) + 7 3.71 cm -46 cm -2.45 m 2.46 eV 0 eV 8.86 m 18.6 m Tank OpRayleigh + Photon at Boundary! + Old Momentum Direction: (-0.162902,0.976955,-0.137923) + Old Polarization: (-0.35123,0.0732112,0.933422) + New Momentum Direction: (-0.219746,0.957652,-0.186051) + New Polarization: (-0.355415,0.0990168,0.929449) + *** FresnelRefraction *** + 8 -87.3 cm 5 m -3.22 m 2.46 eV 0 eV 5.59 m 24.2 m Tank Transportation + 9 -2.02 m 10 m -4.19 m 2.46 eV 0 eV 5.22 m 29.4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 46, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 73 mum 0 fm 0 fm 2.31 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.21735,0.454771,0.863679) + Old Polarization: (0.308454,-0.871491,0.381261) + New Momentum Direction: (0.292791,0.612622,0.734144) + New Polarization: (0.340146,-0.784301,0.518819) + *** FresnelRefraction *** + 1 1.26 m 2.63 m 5 m 2.31 eV 0 eV 5.79 m 5.79 m Tank Transportation + 2 3.25 m 6.81 m 10 m 2.31 eV 0 eV 6.81 m 12.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 45, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 147 mum 0 fm 0 fm 3.1 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.358336,-0.754903,-0.549287) + Old Polarization: (0.910338,-0.413033,-0.0262297) + New Momentum Direction: (-0.485537,-0.458604,-0.744269) + New Polarization: (0.795781,-0.584311,-0.159101) + *** FresnelRefraction *** + 1 -2.37 m -5 m -3.64 m 3.1 eV 0 eV 6.62 m 6.62 m Tank Transportation + 2 -6.52 m -8.92 m -10 m 3.1 eV 0 eV 8.55 m 15.2 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 44, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 89.6 mum 0 fm 0 fm 3.24 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.297264,-0.901369,-0.314908) + Old Polarization: (-0.333804,-0.210894,0.918748) + New Momentum Direction: (-0.403046,-0.809476,-0.426969) + New Polarization: (-0.358696,-0.289488,0.887431) + *** FresnelRefraction *** + 1 -1.65 m -5 m -1.75 m 3.24 eV 0 eV 5.55 m 5.55 m Tank Transportation + 2 -4.14 m -10 m -4.38 m 3.24 eV 0 eV 6.18 m 11.7 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 43, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 6.16 mum 0 fm 0 fm 2.93 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.689552,-0.454097,0.564193) + Old Polarization: (-0.034816,-0.757333,-0.6521) + New Momentum Direction: (-0.196689,-0.614754,0.7638) + New Polarization: (-0.0557067,-0.770752,-0.634695) + *** FresnelRefraction *** + 1 -5 m -3.29 m 4.09 m 2.93 eV 0 eV 7.25 m 7.25 m Tank Transportation + 2 -6.52 m -8.05 m 10 m 2.93 eV 0 eV 7.74 m 15 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 42, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 219 mum 0 fm 0 fm 2.93 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.218748,0.86911,0.443619) + Old Polarization: (-0.649592,-0.209543,0.730836) + New Momentum Direction: (0.296153,0.742683,0.600596) + New Polarization: (-0.950785,0.289211,0.111199) + *** FresnelRefraction *** + 1 1.26 m 5 m 2.55 m 2.93 eV 0 eV 5.75 m 5.75 m Tank Transportation + 2 3.25 m 10 m 6.6 m 2.93 eV 0 eV 6.73 m 12.5 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 41, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 120 mum 0 fm 0 fm 3.03 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (-0.352017,0.565119,-0.74614) + Old Polarization: (0.900738,-0.0121963,-0.434192) + New Momentum Direction: (-0.476817,0.765469,-0.432091) + New Polarization: (0.776649,0.136667,-0.614929) + *** FresnelRefraction *** + 1 -2.36 m 3.79 m -5 m 3.03 eV 0 eV 6.7 m 6.7 m Tank Transportation + 2 -6.23 m 10 m -8.51 m 3.03 eV 0 eV 8.12 m 14.8 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 40, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 35.9 mum 0 fm 0 fm 3.88 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.852472,0.129565,0.506463) + Old Polarization: (-0.522773,0.211279,0.825875) + New Momentum Direction: (0.703486,0.176144,0.688535) + New Polarization: (0.710709,-0.174354,-0.681538) + *** FresnelRefraction *** + 1 5 m 76 cm 2.97 m 3.88 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m 2.01 m 7.86 m 3.88 eV 0 eV 7.11 m 13 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 39, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 109 mum 0 fm 0 fm 3.87 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.852488,-0.382359,0.356463) + Old Polarization: (-0.522747,-0.623546,0.581314) + New Momentum Direction: (0.703535,-0.519807,0.484602) + New Polarization: (0.71066,0.514595,-0.479743) + *** FresnelRefraction *** + 1 5 m -2.24 m 2.09 m 3.87 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m -5.94 m 5.53 m 3.87 eV 0 eV 7.11 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 210 mum 0 fm 0 fm 4.09 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.851818,0.290451,-0.43594) + Old Polarization: (-0.523837,0.472305,-0.708888) + New Momentum Direction: (0.701466,0.39517,-0.593115) + New Polarization: (0.712703,-0.38894,0.583764) + *** FresnelRefraction *** + 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 = 37, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 68.6 mum 0 fm 0 fm 2.42 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.859501,-0.44788,0.246295) + Old Polarization: (-0.511133,-0.753137,0.41416) + New Momentum Direction: (0.72457,-0.603911,0.332099) + New Polarization: (0.689201,0.634903,-0.349141) + *** 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 = 36, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 164 mum 0 fm 0 fm 2.72 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.857248,-0.190039,-0.47855) + Old Polarization: (-0.514903,-0.31639,-0.796726) + New Momentum Direction: (0.717936,-0.256917,-0.646963) + New Polarization: (0.696109,0.264973,0.667249) + *** FresnelRefraction *** + 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 = 35, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 223 mum 0 fm 0 fm 4.13 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.851681,-0.0203736,0.523664) + Old Polarization: (-0.52406,-0.0331103,0.851037) + New Momentum Direction: (0.701041,-0.0277236,0.712582) + New Polarization: (0.713121,0.027254,-0.700511) + *** FresnelRefraction *** + 1 5 m -12 cm 3.07 m 4.13 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m -31.7 cm 8.16 m 4.13 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 110 mum 0 fm 0 fm 2.59 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.858135,0.501554,-0.109758) + Old Polarization: (-0.513423,0.838297,-0.18345) + New Momentum Direction: (0.720561,0.677362,-0.148232) + New Polarization: (0.693391,-0.703903,0.15404) + *** FresnelRefraction *** + 1 5 m 2.92 m -64 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 = 33, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 86.4 mum 0 fm 0 fm 2.17 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.861392,0.49239,-0.124725) + Old Polarization: (-0.507941,0.83502,-0.211514) + New Momentum Direction: (0.73005,0.662471,-0.167807) + New Polarization: (0.683394,-0.707699,0.179263) + *** FresnelRefraction *** + 1 5 m 2.86 m -72.4 cm 2.17 eV 0 eV 5.8 m 5.8 m Tank Transportation + 2 10 m 7.4 m -1.87 m 2.17 eV 0 eV 6.85 m 12.7 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 32, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 113 mum 0 fm 0 fm 2.21 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.861033,-0.504066,-0.0673759) + Old Polarization: (-0.508549,-0.853443,-0.114075) + New Momentum Direction: (0.729016,-0.678463,-0.0906867) + New Polarization: (0.684497,0.722589,0.0965849) + *** 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 = 31, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 167 mum 0 fm 0 fm 2.3 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.860335,0.158368,-0.484503) + Old Polarization: (-0.509729,0.267298,-0.817758) + New Momentum Direction: (0.726995,0.213334,-0.652662) + New Polarization: (0.686643,-0.225871,0.691017) + *** FresnelRefraction *** + 1 5 m 92 cm -2.82 m 2.3 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m 2.39 m -7.3 m 2.3 eV 0 eV 6.88 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 155 mum 0 fm 0 fm 2.8 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.856726,-0.508824,0.0843731) + Old Polarization: (-0.515771,-0.845185,0.140149) + New Momentum Direction: (0.716382,-0.68831,0.114135) + New Polarization: (0.697708,0.706732,-0.11719) + *** FresnelRefraction *** + 1 5 m -2.97 m 49.2 cm 2.8 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -7.77 m 1.29 m 2.8 eV 0 eV 6.98 m 12.8 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 29, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 106 mum 0 fm 0 fm 2.03 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.862619,0.399952,-0.309722) + Old Polarization: (-0.505855,0.682025,-0.52816) + New Momentum Direction: (0.733565,0.537338,-0.416113) + New Polarization: (0.679619,-0.57999,0.449143) + *** FresnelRefraction *** + 1 5 m 2.32 m -1.8 m 2.03 eV 0 eV 5.8 m 5.8 m Tank Transportation + 2 10 m 5.98 m -4.63 m 2.03 eV 0 eV 6.82 m 12.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 28, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 16 mum 0 fm 0 fm 3.6 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.853238,-0.506558,0.124033) + Old Polarization: (-0.521522,-0.828756,0.202924) + New Momentum Direction: (0.70584,-0.688046,0.168471) + New Polarization: (0.708372,0.685587,-0.167869) + *** FresnelRefraction *** + 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 = 27, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 165 mum 0 fm 0 fm 4.07 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 2.23 m -72.3 cm -1.17 m 4.07 eV 0 eV 2.62 m 2.62 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 26, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 13.9 mum 0 fm 0 fm 3.94 eV 0 eV 0 fm 0 fm Tank initStep +Scattering Photon! +Old Momentum Direction: (0.852315,0.507149,0.127898) +Old Polarization: (-0.523028,0.82644,0.208419) +New Polarization: (-0.351198,0.59843,0.720098) +Polarization Change: (-0.351198,0.59843,0.720098) +New Momentum Direction: (-0.414325,0.59036,-0.692683) +Momentum Change: (-0.414325,0.59036,-0.692683) + 1 2.48 m 1.47 m 37.2 cm 3.94 eV 0 eV 2.9 m 2.9 m Tank OpRayleigh +Scattering Photon! +Old Momentum Direction: (-0.414325,0.59036,-0.692683) +Old Polarization: (-0.351198,0.59843,0.720098) +New Polarization: (-0.0144855,0.900882,0.433822) +Polarization Change: (-0.0144855,0.900882,0.433822) +New Momentum Direction: (0.656587,0.335789,-0.675381) +Momentum Change: (0.656587,0.335789,-0.675381) + 2 2.37 m 1.63 m 18.9 cm 3.94 eV 0 eV 26.3 cm 3.17 m Tank OpRayleigh + Photon at Boundary! + Old Momentum Direction: (0.656587,0.335789,-0.675381) + Old Polarization: (-0.0144855,0.900882,0.433822) + New Momentum Direction: (-0.656587,0.335789,-0.675381) + New Polarization: (-0.0144855,-0.900882,-0.433822) + *** TotalInternalReflection *** + 3 5 m 2.97 m -2.52 m 3.94 eV 0 eV 4.01 m 7.18 m Tank Transportation + 4 5 m 2.97 m -2.52 m 3.94 eV 0 eV 0 fm 7.18 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.656587,0.335789,-0.675381) + Old Polarization: (-0.0144855,-0.900882,-0.433822) + New Momentum Direction: (-0.656587,0.335789,0.675381) + New Polarization: (0.0144855,0.900882,-0.433822) + *** TotalInternalReflection *** + 5 2.59 m 4.21 m -5 m 3.94 eV 0 eV 3.67 m 10.9 m Tank Transportation + 6 2.59 m 4.21 m -5 m 3.94 eV 0 eV 0 fm 10.9 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.656587,0.335789,0.675381) + Old Polarization: (0.0144855,0.900882,-0.433822) + New Momentum Direction: (-0.656587,-0.335789,0.675381) + New Polarization: (-0.0144855,0.900882,0.433822) + *** TotalInternalReflection *** + 7 1.04 m 5 m -3.41 m 3.94 eV 0 eV 2.36 m 13.2 m Tank Transportation + 8 1.04 m 5 m -3.41 m 3.94 eV 0 eV 0 fm 13.2 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.656587,-0.335789,0.675381) + Old Polarization: (-0.0144855,0.900882,0.433822) + New Momentum Direction: (0.656587,-0.335789,0.675381) + New Polarization: (-0.0144855,-0.900882,-0.433822) + *** TotalInternalReflection *** + 9 -5 m 1.91 m 2.81 m 3.94 eV 0 eV 9.2 m 22.4 m Tank Transportation + 10 -5 m 1.91 m 2.81 m 3.94 eV 0 eV 0 fm 22.4 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.656587,-0.335789,0.675381) + Old Polarization: (-0.0144855,-0.900882,-0.433822) + New Momentum Direction: (0.656587,-0.335789,-0.675381) + New Polarization: (0.0144855,0.900882,-0.433822) + *** TotalInternalReflection *** + 11 -2.87 m 82 cm 5 m 3.94 eV 0 eV 3.25 m 25.7 m Tank Transportation + 12 -2.87 m 82 cm 5 m 3.94 eV 0 eV 0 fm 25.7 m World Transportation + Photon at Boundary! + Old Momentum Direction: (0.656587,-0.335789,-0.675381) + Old Polarization: (0.0144855,0.900882,-0.433822) + New Momentum Direction: (-0.656587,-0.335789,-0.675381) + New Polarization: (0.0144855,-0.900882,0.433822) + *** TotalInternalReflection *** + 13 5 m -3.2 m -3.09 m 3.94 eV 0 eV 12 m 37.6 m Tank Transportation + 14 5 m -3.2 m -3.09 m 3.94 eV 0 eV 0 fm 37.6 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.656587,-0.335789,-0.675381) + Old Polarization: (0.0144855,-0.900882,0.433822) + New Momentum Direction: (-0.656587,-0.335789,0.675381) + New Polarization: (-0.0144855,0.900882,0.433822) + *** TotalInternalReflection *** + 15 3.14 m -4.15 m -5 m 3.94 eV 0 eV 2.83 m 40.5 m Tank Transportation + 16 3.14 m -4.15 m -5 m 3.94 eV 0 eV 0 fm 40.5 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.656587,-0.335789,0.675381) + Old Polarization: (-0.0144855,0.900882,0.433822) + New Momentum Direction: (-0.656587,0.335789,0.675381) + New Polarization: (0.0144855,0.900882,-0.433822) + *** TotalInternalReflection *** + 17 1.49 m -5 m -3.29 m 3.94 eV 0 eV 2.53 m 43 m Tank Transportation + 18 1.49 m -5 m -3.29 m 3.94 eV 0 eV 0 fm 43 m World Transportation + +** Photon absorbed! ** + 19 -24.2 cm -4.12 m -1.52 m 3.94 eV 0 eV 2.63 m 45.6 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 25, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 48 mum 0 fm 0 fm 3.97 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.852227,-0.204351,-0.481612) + Old Polarization: (-0.523172,-0.33288,-0.784526) + New Momentum Direction: (0.702731,-0.277895,-0.654938) + New Polarization: (0.711456,0.274487,0.646906) + *** FresnelRefraction *** + 1 5 m -1.2 m -2.83 m 3.97 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m -3.18 m -7.49 m 3.97 eV 0 eV 7.12 m 13 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 24, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 79.8 mum 0 fm 0 fm 4.12 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.8517,0.452362,-0.264531) + Old Polarization: (-0.52403,0.735217,-0.429939) + New Momentum Direction: (0.701099,0.615542,-0.359956) + New Polarization: (0.713064,-0.605213,0.353916) + *** FresnelRefraction *** + 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 = 23, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 153 mum 0 fm 0 fm 3.49 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.853684,-0.50525,0.126278) + Old Polarization: (-0.520792,-0.828208,0.206996) + New Momentum Direction: (0.707203,-0.685912,0.171431) + New Polarization: (0.70701,0.686099,-0.171478) + *** FresnelRefraction *** + 1 5 m -2.96 m 74 cm 3.49 eV 0 eV 5.86 m 5.86 m Tank Transportation + 2 10 m -7.81 m 1.95 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 131 mum 0 fm 0 fm 3.75 eV 0 eV 0 fm 0 fm Tank initStep +Scattering Photon! +Old Momentum Direction: (0.852808,-0.49906,0.153808) +Old Polarization: (-0.522224,-0.814981,0.251173) +New Polarization: (-0.230701,-0.089971,0.968856) +Polarization Change: (-0.230701,-0.089971,0.968856) +New Momentum Direction: (0.468511,0.862421,0.191647) +Momentum Change: (0.468511,0.862421,0.191647) + 1 1.92 m -1.12 m 34.7 cm 3.75 eV 0 eV 2.25 m 2.25 m Tank OpRayleigh + Photon at Boundary! + Old Momentum Direction: (0.468511,0.862421,0.191647) + Old Polarization: (-0.230701,-0.089971,0.968856) + New Momentum Direction: (-0.468511,0.862421,0.191647) + New Polarization: (-0.230701,0.089971,-0.968856) + *** TotalInternalReflection *** + 2 5 m 4.54 m 1.61 m 3.75 eV 0 eV 6.57 m 8.82 m Tank Transportation + 3 5 m 4.54 m 1.61 m 3.75 eV 0 eV 0 fm 8.82 m World Transportation + Photon at Boundary! + Old Momentum Direction: (-0.468511,0.862421,0.191647) + Old Polarization: (-0.230701,0.089971,-0.968856) + New Momentum Direction: (-0.636688,0.725809,0.260441) + New Polarization: (-0.249795,0.125404,-0.960144) + *** FresnelRefraction *** + 4 4.75 m 5 m 1.71 m 3.75 eV 0 eV 53.3 cm 9.36 m Tank Transportation + 5 36.4 cm 10 m 3.5 m 3.75 eV 0 eV 6.89 m 16.2 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 21, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 128 mum 0 fm 0 fm 2.4 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.859649,0.490947,0.14133) + Old Polarization: (-0.510885,0.826101,0.237811) + New Momentum Direction: (0.725001,0.661869,0.190533) + New Polarization: (0.688748,-0.696707,-0.200562) + *** FresnelRefraction *** + 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 = 20, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 53 mum 0 fm 0 fm 3.16 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.855063,0.282501,0.434811) + Old Polarization: (-0.518525,0.465853,0.717017) + New Momentum Direction: (0.71139,0.382896,0.589334) + New Polarization: (0.702798,-0.387578,-0.596539) + *** FresnelRefraction *** + 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 = 19, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 157 mum 0 fm 0 fm 3.76 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.852786,0.411303,-0.321847) + Old Polarization: (-0.52226,0.671607,-0.525536) + New Momentum Direction: (0.704454,0.558959,-0.437389) + New Polarization: (0.709749,-0.554789,0.434125) + *** 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 = 18, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 192 mum 0 fm 0 fm 2.48 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.85894,0.448102,-0.247842) + Old Polarization: (-0.512076,0.751633,-0.415724) + New Momentum Direction: (0.722928,0.604606,-0.334404) + New Polarization: (0.690923,-0.632613,0.349894) + *** 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 = 17, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 29.6 mum 0 fm 0 fm 3.72 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 2.43 m -87.7 cm -1.2 m 3.72 eV 0 eV 2.85 m 2.85 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 16, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 66.1 mum 0 fm 0 fm 2.25 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 4.81 m 1.67 m -2.3 m 2.25 eV 0 eV 5.59 m 5.59 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 15, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 31.3 mum 0 fm 0 fm 2.16 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.861511,-0.0511917,0.505151) + Old Polarization: (-0.507739,-0.08686,0.857121) + New Momentum Direction: (0.730393,-0.0688648,0.679547) + New Polarization: (0.683027,0.0736403,-0.726671) + *** FresnelRefraction *** + 1 5 m -29.7 cm 2.93 m 2.16 eV 0 eV 5.8 m 5.8 m Tank Transportation + 2 10 m -76.9 cm 7.58 m 2.16 eV 0 eV 6.85 m 12.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 14, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 212 mum 0 fm 0 fm 2.69 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.857416,0.164577,0.487598) + Old Polarization: (-0.514623,0.274202,0.812389) + New Momentum Direction: (0.718434,0.222452,0.659066) + New Polarization: (0.695595,-0.229756,-0.680706) + *** 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 = 13, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 147 mum 0 fm 0 fm 2.2 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.861128,0.268337,-0.431802) + Old Polarization: (-0.508388,0.45452,-0.731405) + New Momentum Direction: (0.72929,0.361136,-0.581133) + New Polarization: (0.684204,-0.384934,0.619428) + *** FresnelRefraction *** + 1 5 m 1.56 m -2.51 m 2.2 eV 0 eV 5.81 m 5.81 m Tank Transportation + 2 10 m 4.03 m -6.49 m 2.2 eV 0 eV 6.86 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 63.6 mum 0 fm 0 fm 2.74 eV 0 eV 0 fm 0 fm Tank initStep + +** Photon absorbed! ** + 1 2.49 m -96.2 cm -1.14 m 2.74 eV 0 eV 2.9 m 2.9 m Tank OpAbsorption + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 11, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 204 mum 0 fm 0 fm 3.12 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.855231,0.443911,-0.267438) + Old Polarization: (-0.518247,0.732559,-0.441337) + New Momentum Direction: (0.711899,0.601548,-0.362408) + New Polarization: (0.702282,-0.609786,0.367371) + *** FresnelRefraction *** + 1 5 m 2.6 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 = 10, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 170 mum 0 fm 0 fm 3.03 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.855599,-0.340601,-0.389796) + Old Polarization: (-0.517639,-0.562975,-0.644289) + New Momentum Direction: (0.713006,-0.461355,-0.527991) + New Polarization: (0.701158,0.469151,0.536913) + *** FresnelRefraction *** + 1 5 m -1.99 m -2.28 m 3.03 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -5.23 m -5.98 m 3.03 eV 0 eV 7.01 m 12.9 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 9, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 213 mum 0 fm 0 fm 2.92 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.85607,-0.0767419,-0.511132) + Old Polarization: (-0.516861,-0.127107,-0.846581) + New Momentum Direction: (0.714419,-0.103892,-0.691962) + New Polarization: (0.699718,0.106075,0.7065) + *** FresnelRefraction *** + 1 5 m -44.8 cm -2.99 m 2.92 eV 0 eV 5.84 m 5.84 m Tank Transportation + 2 10 m -1.18 m -7.83 m 2.92 eV 0 eV 7 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 148 mum 0 fm 0 fm 2.08 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.862157,-0.389689,-0.323772) + Old Polarization: (-0.506641,-0.663138,-0.550966) + New Momentum Direction: (0.732246,-0.52383,-0.435222) + New Polarization: (0.68104,0.563215,0.467946) + *** FresnelRefraction *** + 1 5 m -2.26 m -1.88 m 2.08 eV 0 eV 5.8 m 5.8 m Tank Transportation + 2 10 m -5.84 m -4.85 m 2.08 eV 0 eV 6.83 m 12.6 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 7, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 177 mum 0 fm 0 fm 3.69 eV 0 eV 0 fm 0 fm Tank initStep +Scattering Photon! +Old Momentum Direction: (0.852973,-0.337224,-0.398393) +Old Polarization: (-0.521955,-0.551088,-0.651049) +New Polarization: (0.311581,-0.0522842,0.94878) +Polarization Change: (0.311581,-0.0522842,0.94878) +New Momentum Direction: (0.436245,0.89491,-0.0939481) +Momentum Change: (0.436245,0.89491,-0.0939481) + 1 93.8 cm -37.1 cm -43.8 cm 3.69 eV 0 eV 1.1 m 1.1 m Tank OpRayleigh + Photon at Boundary! + Old Momentum Direction: (0.436245,0.89491,-0.0939481) + Old Polarization: (0.311581,-0.0522842,0.94878) + New Momentum Direction: (0.592725,0.795225,-0.127647) + New Polarization: (0.116318,0.0723062,0.990577) + *** FresnelRefraction *** + 2 3.56 m 5 m -1 m 3.69 eV 0 eV 6 m 7.1 m Tank Transportation + 3 7.28 m 10 m -1.8 m 3.69 eV 0 eV 6.29 m 13.4 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 6, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 8.36 mum 0 fm 0 fm 4.13 eV 0 eV 0 fm 0 fm Tank initStep +Scattering Photon! +Old Momentum Direction: (0.851678,-0.114134,0.511485) +Old Polarization: (-0.524065,-0.185484,0.831235) +New Polarization: (-0.775717,-0.613844,0.146488) +Polarization Change: (-0.775717,-0.613844,0.146488) +New Momentum Direction: (-0.0338356,0.272243,0.961633) +Momentum Change: (-0.0338356,0.272243,0.961633) + 1 79.8 cm -10.7 cm 47.9 cm 4.13 eV 0 eV 93.7 cm 93.7 cm Tank OpRayleigh + Photon at Boundary! + Old Momentum Direction: (-0.0338356,0.272243,0.961633) + Old Polarization: (-0.775717,-0.613844,0.146488) + New Momentum Direction: (-0.0460424,0.370459,0.927707) + New Polarization: (-0.776395,-0.597632,0.200118) + *** FresnelRefraction *** + 2 63.9 cm 1.17 m 5 m 4.13 eV 0 eV 4.7 m 5.64 m Tank Transportation + 3 39.1 cm 3.17 m 10 m 4.13 eV 0 eV 5.39 m 11 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 5, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 219 mum 0 fm 0 fm 3.19 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.854942,0.166922,0.491132) + Old Polarization: (-0.518724,0.275116,0.809467) + New Momentum Direction: (0.711025,0.226275,0.665764) + New Polarization: (0.703166,-0.228804,-0.673206) + *** FresnelRefraction *** + 1 5 m 97.6 cm 2.87 m 3.19 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m 2.57 m 7.55 m 3.19 eV 0 eV 7.03 m 12.9 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 4, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 201 mum 0 fm 0 fm 2.76 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.857073,-0.515123,0.00861918) + Old Polarization: (-0.515195,-0.856953,0.0143388) + New Momentum Direction: (0.717415,-0.696549,0.0116549) + New Polarization: (0.696646,0.717315,-0.0120023) + *** FresnelRefraction *** + 1 5 m -3.01 m 5.03 cm 2.76 eV 0 eV 5.83 m 5.83 m Tank Transportation + 2 10 m -7.86 m 13.2 cm 2.76 eV 0 eV 6.97 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 13.2 mum 0 fm 0 fm 3.95 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.852282,-0.150366,-0.501004) + Old Polarization: (-0.523082,-0.244999,-0.816309) + New Momentum Direction: (0.702901,-0.204468,-0.681266) + New Polarization: (0.711288,0.202057,0.673233) + *** FresnelRefraction *** + 1 5 m -88.2 cm -2.94 m 3.95 eV 0 eV 5.87 m 5.87 m Tank Transportation + 2 10 m -2.34 m -7.79 m 3.95 eV 0 eV 7.11 m 13 m OutOfWorld Transportation + +********************************************************************************************************* +* G4Track Information: Particle = opticalphoton, Track ID = 2, Parent ID = 1 +********************************************************************************************************* + +Step# X Y Z KineE dEStep StepLeng TrakLeng Volume Process + 0 29.5 mum 0 fm 0 fm 3.21 eV 0 eV 0 fm 0 fm Tank initStep + Photon at Boundary! + Old Momentum Direction: (0.854882,-0.427805,0.293529) + Old Polarization: (-0.518822,-0.70491,0.483659) + New Momentum Direction: (0.710844,-0.579961,0.397927) + New Polarization: (0.703349,0.586141,-0.402168) + *** FresnelRefraction *** + 1 5 m -2.5 m 1.72 m 3.21 eV 0 eV 5.85 m 5.85 m Tank Transportation + 2 10 m -6.58 m 4.52 m 3.21 eV 0 eV 7.03 m 12.9 m OutOfWorld Transportation +Number of optical photons produces in this event : 57 +number of event = 1 User=0.27s Real=0.39s Sys=0.12s Graphics systems deleted. Visualization Manager deleting... diff --git a/examples/novice/N06/include/ExN06DetectorConstruction.hh b/examples/novice/N06/include/ExN06DetectorConstruction.hh index e774432f5c..c1d280e160 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b8af013727..673ff8efec 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b29f863249..8d8e235375 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a96b2be723..f15126a071 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh b/examples/novice/N06/include/ExN06PrimaryGeneratorAction.hh index d1aba8b858..3120ce07b4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f6f9998f42..4333cc1361 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N06/include/ExN06RunAction.hh b/examples/novice/N06/include/ExN06RunAction.hh index 3a0ea8a43e..3f446a5b3a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 4b93b75d18..75f46e2506 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 bb8193c7a8..e2035af30b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/include/ExN06VisManager.hh b/examples/novice/N06/include/ExN06VisManager.hh index 5258c55472..dbda36d430 100644 --- a/examples/novice/N06/include/ExN06VisManager.hh +++ b/examples/novice/N06/include/ExN06VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN06VisManager.hh,v 1.1 2003/01/23 15:34:24 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N06/src/ExN06DetectorConstruction.cc b/examples/novice/N06/src/ExN06DetectorConstruction.cc index afef2df848..72771618d1 100644 --- a/examples/novice/N06/src/ExN06DetectorConstruction.cc +++ b/examples/novice/N06/src/ExN06DetectorConstruction.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN06DetectorConstruction.cc,v 1.11 2003/04/17 21:11:13 gum Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN06DetectorConstruction.cc,v 1.13 2003/11/28 00:48:16 gum Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -68,20 +68,20 @@ G4VPhysicalVolume* ExN06DetectorConstruction::Construct() // Air // - G4Element* elN = new G4Element("Nitrogen", "N", z=7 , a=14.01*g/mole); - G4Element* elO = new G4Element("Oxygen" , "O", z=8 , a=16.00*g/mole); + 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, nelements=2); - Air->AddElement(elN, 70*perCent); - Air->AddElement(elO, 30*perCent); + Air->AddElement(N, 70.*perCent); + Air->AddElement(O, 30.*perCent); // Water // - G4Element* elH = new G4Element("Hydrogen", "H", z=1 , a=1.01*g/mole); + G4Element* H = new G4Element("Hydrogen", "H", z=1 , a=1.01*g/mole); G4Material* Water = new G4Material("Water", density= 1.0*g/cm3, nelements=2); - Water->AddElement(elH, 2); - Water->AddElement(elO, 1); + Water->AddElement(H, 2); + Water->AddElement(O, 1); // // ------------ Generate & Add Material Properties Table ------------ @@ -220,8 +220,9 @@ G4VPhysicalVolume* ExN06DetectorConstruction::Construct() G4LogicalSkinSurface* AirSurface = new G4LogicalSkinSurface("AirSurface", bubbleAir_log, OpAirSurface); -if(AirSurface->GetLogicalVolume() == bubbleAir_log) G4cout << "Equal" << G4endl; - AirSurface->GetSurface(bubbleAir_log)->GetOpticalSurface()->DumpInfo(); + if(AirSurface->GetLogicalVolume() == bubbleAir_log) G4cout << "Equal" << G4endl; + ((G4OpticalSurface*) + (AirSurface->GetSurface(bubbleAir_log)->GetSurfaceProperty()))->DumpInfo(); // // Generate & Add Material Properties Table attached to the optical surfaces diff --git a/examples/novice/N06/src/ExN06EventAction.cc b/examples/novice/N06/src/ExN06EventAction.cc index b88f3d93af..16dddb74f2 100644 --- a/examples/novice/N06/src/ExN06EventAction.cc +++ b/examples/novice/N06/src/ExN06EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06EventAction.cc,v 1.1 2003/01/23 15:34:31 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06PhysicsList.cc b/examples/novice/N06/src/ExN06PhysicsList.cc index 5239556839..50ea43aea0 100644 --- a/examples/novice/N06/src/ExN06PhysicsList.cc +++ b/examples/novice/N06/src/ExN06PhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN06PhysicsList.cc,v 1.9 2003/06/16 16:50:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN06PhysicsList.cc,v 1.11 2003/10/24 12:38:17 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -36,7 +36,6 @@ #include "G4ParticleDefinition.hh" #include "G4ParticleTypes.hh" -#include "G4ParticleWithCuts.hh" #include "G4ParticleTable.hh" #include "G4Material.hh" @@ -204,14 +203,14 @@ void ExN06PhysicsList::ConstructEM() // Construct processes for electron 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); } else if (particleName == "e+") { //positron // Construct processes for positron 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); } else if( particleName == "mu+" || @@ -220,8 +219,8 @@ void ExN06PhysicsList::ConstructEM() // Construct processes for muon 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); + pmanager->AddProcess(new G4MuBremsstrahlung(), -1, 3, 3); + pmanager->AddProcess(new G4MuPairProduction(), -1, 4, 4); } else { if ((particle->GetPDGCharge() != 0.0) && diff --git a/examples/novice/N06/src/ExN06PhysicsListMessenger.cc b/examples/novice/N06/src/ExN06PhysicsListMessenger.cc index 5f06041f2e..4ade227545 100644 --- a/examples/novice/N06/src/ExN06PhysicsListMessenger.cc +++ b/examples/novice/N06/src/ExN06PhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06PhysicsListMessenger.cc,v 1.1 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc b/examples/novice/N06/src/ExN06PrimaryGeneratorMessenger.cc index 96c9977ea9..4520c53067 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc b/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc index 911ff3081a..597b46ad41 100644 --- a/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc +++ b/examples/novice/N06/src/ExN06PrimaryGeneratoraction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06PrimaryGeneratorAction.cc,v 1.2 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 50159ae7ee..775fc3860d 100644 --- a/examples/novice/N06/src/ExN06RunAction.cc +++ b/examples/novice/N06/src/ExN06RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN06RunAction.cc,v 1.8 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 dece7496e0..88f1298d6f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 8f984a315f..59d49d16a8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/examples/novice/N06/src/ExN06VisManager.cc b/examples/novice/N06/src/ExN06VisManager.cc index ccd123a568..b795097d40 100755 --- a/examples/novice/N06/src/ExN06VisManager.cc +++ b/examples/novice/N06/src/ExN06VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN06VisManager.cc,v 1.1 2003/01/23 15:34:32 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN06VisManager.cc,v 1.2 2003/11/13 15:11:50 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 24th January 1998. @@ -52,11 +52,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -109,11 +104,6 @@ void ExN06VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/examples/novice/N07/History b/examples/novice/N07/History index b2b3df602a..49fbcfb824 100644 --- a/examples/novice/N07/History +++ b/examples/novice/N07/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2003/05/28 11:28:19 gcosmo Exp $ +$Id: History,v 1.8 2003/12/03 14:51:56 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -15,6 +15,13 @@ track of all tags. * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +13-11-03 John Allison (exampleN07-V05-02-01) +- Removed OPACS from Vis Manager. + +24-10-03 mma (exampleN07-V05-02-00) +- PhysicsList: AddProcess(Bremsstrahlung,-1,3,3) ..etc.. + May 28, 2003 G.Cosmo (exampleN07-V05-01-01) - Get rid of more pedantic warnings ... diff --git a/examples/novice/N07/exampleN07.cc b/examples/novice/N07/exampleN07.cc index 2e348ec9ee..b327eb5348 100644 --- a/examples/novice/N07/exampleN07.cc +++ b/examples/novice/N07/exampleN07.cc @@ -22,7 +22,7 @@ // // // $Id: exampleN07.cc,v 1.3 2003/04/25 17:03:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/examples/novice/N07/exampleN07.out b/examples/novice/N07/exampleN07.out index 0ee7ef7c66..0b60833029 100644 --- a/examples/novice/N07/exampleN07.out +++ b/examples/novice/N07/exampleN07.out @@ -1,6 +1,6 @@ ********************************************** - Geant4 version $Name: geant4-05-02 $ - (27-June-2003) + Geant4 version $Name: geant4-06-00 $ + (12-December-2003) Copyright : Geant4 Collaboration ********************************************** @@ -55,15 +55,19 @@ phot: Total cross sections from Sandia parametrisation. ExN07PhysicsList::SetCuts: default cut length : 1 mm /run/verbose 1 /run/dumpRegion + Region DefaultRegionForTheWorld Materials : Galactic Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + Region Calor-A Materials : Lead liquidArgon Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + Region Calor-B Materials : Lead liquidArgon Production cuts : gamma 1 cm e- 1 cm e+ 1 cm + Region Calor-C Materials : Lead liquidArgon Production cuts : gamma 10 cm e- 10 cm e+ 10 cm @@ -77,59 +81,137 @@ compt: Total cross sections from a parametrisation. Good description from 10 Ke Scattered gamma energy according Klein-Nishina. PhysicsTables from 1 keV to 100 GeV in 80 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 100.511 keV e- 1.37814 MeV e+ 1.28002 MeV + Region(s) which use this couple : + Calor-A + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : liquidArgon + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 6.17835 keV e- 342.891 keV e+ 334.551 keV + Region(s) which use this couple : + Calor-A + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 1 cm e- 1 cm e+ 1 cm + Energy thresholds : gamma 282.478 keV e- 15.0137 MeV e+ 13.9447 MeV + Region(s) which use this couple : + Calor-B + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : liquidArgon + Range cuts : gamma 1 cm e- 1 cm e+ 1 cm + Energy thresholds : gamma 19.0521 keV e- 2.14666 MeV e+ 2.04351 MeV + Region(s) which use this couple : + Calor-B + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Energy thresholds : gamma 2.24888 MeV e- 437.915 MeV e+ 406.735 MeV + Region(s) which use this couple : + Calor-C + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : liquidArgon + Range cuts : gamma 10 cm e- 10 cm e+ 10 cm + Energy thresholds : gamma 56.6382 keV e- 24.5664 MeV e+ 22.8173 MeV + Region(s) which use this couple : + Calor-C + +==================================================================== -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=10.55s Real=12.75s Sys=1.82s + User=20.14s Real=21.29s Sys=1.14s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -137,55 +219,55 @@ Region : Calor-A Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 3.49356 GeV Gap 393.529 MeV + Absorber 2.92013 GeV Gap 363.991 MeV Number of secondaries in an event : - gamma in Absorber 1399.4 in Gap 85.8 - e- in Absorber 2262.9 in Gap 211.9 - e+ in Absorber 125.4 in Gap 3.3 + gamma in Absorber 941.8 in Gap 62.7 + e- in Absorber 1545.1 in Gap 166.8 + e+ in Absorber 88.2 in Gap 2.7 Minimum kinetic energy of generated secondaries : - gamma in Absorber 100.53 keV in Gap 6.24451 keV - e- in Absorber 32.2931 eV in Gap 39.6342 eV - e+ in Absorber 0 eV in Gap 150.656 keV + gamma in Absorber 100.511 keV in Gap 6.27261 keV + e- in Absorber 237.44 eV in Gap 59.9537 eV + e+ in Absorber 47.6203 keV in Gap 345.804 keV Total track length of e+/e- in an event : - Absorber 1.47887 m Gap 69.4646 cm + Absorber 1.08221 m Gap 58.6288 cm Total number of steps of e+/e- in an event : - Absorber 3909.5 Gap 433.7 + Absorber 2620.5 Gap 280.6 ############################################################ Region : Calor-B Production thresholds : gamma 1 cm e- 1 cm e+ 1 cm Energy deposition in an event : - Absorber 2.94872 GeV Gap 340.061 MeV + Absorber 3.02768 GeV Gap 384.157 MeV Number of secondaries in an event : - gamma in Absorber 674.8 in Gap 42.3 - e- in Absorber 1229.7 in Gap 109.3 - e+ in Absorber 88.5 in Gap 2.3 + gamma in Absorber 677.9 in Gap 55.9 + e- in Absorber 1231.1 in Gap 129.9 + e+ in Absorber 96.1 in Gap 2.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 282.484 keV in Gap 19.5278 keV - e- in Absorber 14.4371 eV in Gap 288.537 eV - e+ in Absorber 0 eV in Gap 41.4122 keV + gamma in Absorber 282.245 keV in Gap 19.3657 keV + e- in Absorber 6.32662 eV in Gap 83.9303 eV + e+ in Absorber 14.3176 keV in Gap 224.192 keV Total track length of e+/e- in an event : - Absorber 94.0935 cm Gap 45.4318 cm + Absorber 1.00619 m Gap 62.0616 cm Total number of steps of e+/e- in an event : - Absorber 2074 Gap 231.3 + Absorber 2009.9 Gap 226.8 ############################################################ Region : Calor-C Production thresholds : gamma 10 cm e- 10 cm e+ 10 cm Energy deposition in an event : - Absorber 3.30547 GeV Gap 327.191 MeV + Absorber 2.69808 GeV Gap 276.506 MeV Number of secondaries in an event : - gamma in Absorber 268.5 in Gap 24.2 - e- in Absorber 475.8 in Gap 44.9 - e+ in Absorber 72.8 in Gap 2.3 + gamma in Absorber 114 in Gap 9 + e- in Absorber 204.1 in Gap 16.8 + e+ in Absorber 31.8 in Gap 1.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 295.459 keV in Gap 57.1333 keV - e- in Absorber 10.9379 eV in Gap 981.287 eV - e+ in Absorber 0 eV in Gap 440.57 keV + gamma in Absorber 279.861 keV in Gap 61.9278 keV + e- in Absorber 824.233 eV in Gap 556.252 eV + e+ in Absorber 143.801 keV in Gap 644.066 keV Total track length of e+/e- in an event : - Absorber 65.3681 cm Gap 29.9694 cm + Absorber 28.0785 cm Gap 12.1111 cm Total number of steps of e+/e- in an event : - Absorber 942.8 Gap 120.5 + Absorber 338.7 Gap 36 ############################################################ /run/dumpCouples @@ -249,15 +331,19 @@ Index : 6 used in the geometry : Yes recalculation needed : No /run/setCutForRegion Calor-B 2 mm /run/setCutForRegion Calor-C 2 cm /run/dumpRegion + Region DefaultRegionForTheWorld Materials : Galactic Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + Region Calor-A Materials : Lead liquidArgon Production cuts : gamma 200 mum e- 200 mum e+ 200 mum + Region Calor-B Materials : Lead liquidArgon Production cuts : gamma 2 mm e- 2 mm e+ 2 mm + Region Calor-C Materials : Lead liquidArgon Production cuts : gamma 2 cm e- 2 cm e+ 2 cm @@ -271,59 +357,137 @@ compt: Total cross sections from a parametrisation. Good description from 10 Ke Scattered gamma energy according Klein-Nishina. PhysicsTables from 1 keV to 100 GeV in 80 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 200 mum e- 200 mum e+ 200 mum + Energy thresholds : gamma 47.1847 keV e- 383.065 keV e+ 364.659 keV + Region(s) which use this couple : + Calor-A + +Index : 2 used in the geometry : Yes recalculation needed : No + Material : liquidArgon + Range cuts : gamma 200 mum e- 200 mum e+ 200 mum + Energy thresholds : gamma 2.78576 keV e- 123.426 keV e+ 121.916 keV + Region(s) which use this couple : + Calor-A + +Index : 3 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 2 mm e- 2 mm e+ 2 mm + Energy thresholds : gamma 120.589 keV e- 2.614 MeV e+ 2.42788 MeV + Region(s) which use this couple : + Calor-B + +Index : 4 used in the geometry : Yes recalculation needed : No + Material : liquidArgon + Range cuts : gamma 2 mm e- 2 mm e+ 2 mm + Energy thresholds : gamma 8.59044 keV e- 561.061 keV e+ 540.718 keV + Region(s) which use this couple : + Calor-B + +Index : 5 used in the geometry : Yes recalculation needed : No + Material : Lead + Range cuts : gamma 2 cm e- 2 cm e+ 2 cm + Energy thresholds : gamma 419.689 keV e- 35.5413 MeV e+ 33.0107 MeV + Region(s) which use this couple : + Calor-C + +Index : 6 used in the geometry : Yes recalculation needed : No + Material : liquidArgon + Range cuts : gamma 2 cm e- 2 cm e+ 2 cm + Energy thresholds : gamma 26.9798 keV e- 4.2772 MeV e+ 3.97266 MeV + Region(s) which use this couple : + Calor-C + +==================================================================== -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=10.56s Real=12.95s Sys=2.04s + User=60.61s Real=63.66s Sys=3.05s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -331,55 +495,55 @@ Region : Calor-A Production thresholds : gamma 200 mum e- 200 mum e+ 200 mum Energy deposition in an event : - Absorber 2.54186 GeV Gap 316.78 MeV + Absorber 6.40504 GeV Gap 666.61 MeV Number of secondaries in an event : - gamma in Absorber 955.6 in Gap 55.7 - e- in Absorber 1635.8 in Gap 216.1 - e+ in Absorber 60.7 in Gap 1.8 + gamma in Absorber 3887 in Gap 224.1 + e- in Absorber 6191.3 in Gap 633.8 + e+ in Absorber 302 in Gap 9.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 47.1968 keV in Gap 2.80248 keV - e- in Absorber 7.24449 eV in Gap 104.367 eV - e+ in Absorber 42.1686 keV in Gap 0 eV + gamma in Absorber 47.1858 keV in Gap 2.78995 keV + e- in Absorber 1.41632 eV in Gap 18.2019 eV + e+ in Absorber 993.348 eV in Gap 927.11 eV Total track length of e+/e- in an event : - Absorber 91.5175 cm Gap 47.8247 cm + Absorber 3.67994 m Gap 1.83565 m Total number of steps of e+/e- in an event : - Absorber 3656.4 Gap 539.5 + Absorber 10844.1 Gap 1102.1 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 2.86186 GeV Gap 358.872 MeV + Absorber 2.71336 GeV Gap 346.779 MeV Number of secondaries in an event : - gamma in Absorber 886.8 in Gap 63.6 - e- in Absorber 1468.7 in Gap 149.7 - e+ in Absorber 81.8 in Gap 2.5 + gamma in Absorber 758.4 in Gap 56.7 + e- in Absorber 1277.3 in Gap 122.9 + e+ in Absorber 74.8 in Gap 3.1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 120.595 keV in Gap 8.6932 keV - e- in Absorber 2.9868 eV in Gap 43.8425 eV - e+ in Absorber 0 eV in Gap 311.721 keV + gamma in Absorber 120.614 keV in Gap 8.59828 keV + e- in Absorber 10.5334 eV in Gap 21.1872 eV + e+ in Absorber 13.3074 keV in Gap 136.596 keV Total track length of e+/e- in an event : - Absorber 98.849 cm Gap 57.602 cm + Absorber 89.4983 cm Gap 54.4804 cm Total number of steps of e+/e- in an event : - Absorber 2520.5 Gap 322.2 + Absorber 2142.1 Gap 223.2 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 2.34641 GeV Gap 298.604 MeV + Absorber 3.76194 GeV Gap 440.126 MeV Number of secondaries in an event : - gamma in Absorber 301.1 in Gap 25.1 - e- in Absorber 588.4 in Gap 56.3 - e+ in Absorber 47.5 in Gap 1.4 + gamma in Absorber 858.1 in Gap 63.1 + e- in Absorber 1567.9 in Gap 147.1 + e+ in Absorber 135.9 in Gap 5.2 Minimum kinetic energy of generated secondaries : - gamma in Absorber 292.792 keV in Gap 28.3517 keV - e- in Absorber 90.4966 eV in Gap 335.856 eV - e+ in Absorber 0 eV in Gap 932.349 keV + gamma in Absorber 260.463 keV in Gap 27.2882 keV + e- in Absorber 7.23324 eV in Gap 20.9284 eV + e+ in Absorber 16.7698 keV in Gap 115.947 keV Total track length of e+/e- in an event : - Absorber 47.7807 cm Gap 28.138 cm + Absorber 1.41421 m Gap 78.8891 cm Total number of steps of e+/e- in an event : - Absorber 986.6 Gap 130.3 + Absorber 2565.1 Gap 271.1 ############################################################ /run/dumpCouples @@ -442,15 +606,19 @@ Index : 6 used in the geometry : Yes recalculation needed : No /N07/setAbsMat Aluminium /N07/setGapMat Water /run/dumpRegion + Region DefaultRegionForTheWorld Materials : Galactic Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + Region Calor-A Materials : Aluminium Water Production cuts : gamma 200 mum e- 200 mum e+ 200 mum + Region Calor-B Materials : Aluminium Water Production cuts : gamma 2 mm e- 2 mm e+ 2 mm + Region Calor-C Materials : Aluminium Water Production cuts : gamma 2 cm e- 2 cm e+ 2 cm @@ -464,59 +632,167 @@ compt: Total cross sections from a parametrisation. Good description from 10 Ke Scattered gamma energy according Klein-Nishina. PhysicsTables from 1 keV to 100 GeV in 80 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No recalculation needed : No + Material : Lead + Range cuts : gamma 200 mum e- 200 mum e+ 200 mum + Energy thresholds : gamma 47.1847 keV e- 383.065 keV e+ 364.659 keV + +Index : 2 used in the geometry : No recalculation needed : No + Material : liquidArgon + Range cuts : gamma 200 mum e- 200 mum e+ 200 mum + Energy thresholds : gamma 2.78576 keV e- 123.426 keV e+ 121.916 keV + +Index : 3 used in the geometry : No recalculation needed : No + Material : Lead + Range cuts : gamma 2 mm e- 2 mm e+ 2 mm + Energy thresholds : gamma 120.589 keV e- 2.614 MeV e+ 2.42788 MeV + +Index : 4 used in the geometry : No recalculation needed : No + Material : liquidArgon + Range cuts : gamma 2 mm e- 2 mm e+ 2 mm + Energy thresholds : gamma 8.59044 keV e- 561.061 keV e+ 540.718 keV + +Index : 5 used in the geometry : No recalculation needed : No + Material : Lead + Range cuts : gamma 2 cm e- 2 cm e+ 2 cm + Energy thresholds : gamma 419.689 keV e- 35.5413 MeV e+ 33.0107 MeV + +Index : 6 used in the geometry : No recalculation needed : No + Material : liquidArgon + Range cuts : gamma 2 cm e- 2 cm e+ 2 cm + Energy thresholds : gamma 26.9798 keV e- 4.2772 MeV e+ 3.97266 MeV + +Index : 7 used in the geometry : Yes recalculation needed : No + Material : Aluminium + Range cuts : gamma 200 mum e- 200 mum e+ 200 mum + Energy thresholds : gamma 3.2133 keV e- 199.488 keV e+ 194.636 keV + Region(s) which use this couple : + Calor-A + +Index : 8 used in the geometry : Yes recalculation needed : No + Material : Water + Range cuts : gamma 200 mum e- 200 mum e+ 200 mum + Energy thresholds : gamma 1.47052 keV e- 126.503 keV e+ 124.955 keV + Region(s) which use this couple : + Calor-A + +Index : 9 used in the geometry : Yes recalculation needed : No + Material : Aluminium + Range cuts : gamma 2 mm e- 2 mm e+ 2 mm + Energy thresholds : gamma 9.56197 keV e- 1.02561 MeV e+ 976.329 keV + Region(s) which use this couple : + Calor-B + +Index : 10 used in the geometry : Yes recalculation needed : No + Material : Water + Range cuts : gamma 2 mm e- 2 mm e+ 2 mm + Energy thresholds : gamma 3.8945 keV e- 568.011 keV e+ 547.416 keV + Region(s) which use this couple : + Calor-B + +Index : 11 used in the geometry : Yes recalculation needed : No + Material : Aluminium + Range cuts : gamma 2 cm e- 2 cm e+ 2 cm + Energy thresholds : gamma 28.1807 keV e- 9.40429 MeV e+ 8.7347 MeV + Region(s) which use this couple : + Calor-C + +Index : 12 used in the geometry : Yes recalculation needed : No + Material : Water + Range cuts : gamma 2 cm e- 2 cm e+ 2 cm + Energy thresholds : gamma 10.3141 keV e- 4.17317 MeV e+ 3.97266 MeV + Region(s) which use this couple : + Calor-C + +==================================================================== -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=2.55s Real=2.99s Sys=0.43s + User=7.54s Real=7.75s Sys=0.21s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -524,55 +800,55 @@ Region : Calor-A Production thresholds : gamma 200 mum e- 200 mum e+ 200 mum Energy deposition in an event : - Absorber 524.451 MeV Gap 243.25 MeV + Absorber 571.412 MeV Gap 251.788 MeV Number of secondaries in an event : - gamma in Absorber 36 in Gap 14.3 - e- in Absorber 246.8 in Gap 138.3 - e+ in Absorber 0.7 in Gap 0.4 + gamma in Absorber 49.6 in Gap 15.8 + e- in Absorber 315.5 in Gap 157.6 + e+ in Absorber 1.2 in Gap 0.4 Minimum kinetic energy of generated secondaries : - gamma in Absorber 3.5122 keV in Gap 1.51724 keV - e- in Absorber 4.92947 eV in Gap 14.4274 eV - e+ in Absorber 1.05384 MeV in Gap 5.4285 MeV + gamma in Absorber 3.2465 keV in Gap 1.74683 keV + e- in Absorber 22.6309 eV in Gap 4.03186 eV + e+ in Absorber 1.38185 MeV in Gap 1.6704 MeV Total track length of e+/e- in an event : - Absorber 32.8615 cm Gap 33.0812 cm + Absorber 43.9886 cm Gap 33.7042 cm Total number of steps of e+/e- in an event : - Absorber 627.3 Gap 392.1 + Absorber 425.9 Gap 214.8 ############################################################ Region : Calor-B Production thresholds : gamma 2 mm e- 2 mm e+ 2 mm Energy deposition in an event : - Absorber 549.233 MeV Gap 244.622 MeV + Absorber 571.609 MeV Gap 254.205 MeV Number of secondaries in an event : - gamma in Absorber 29.1 in Gap 9.8 - e- in Absorber 167.1 in Gap 66.2 - e+ in Absorber 0.9 in Gap 0.2 + gamma in Absorber 40 in Gap 14.3 + e- in Absorber 207 in Gap 88.8 + e+ in Absorber 1.9 in Gap 0.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 9.58923 keV in Gap 3.93026 keV - e- in Absorber 37.3614 eV in Gap 43.1702 eV - e+ in Absorber 0 eV in Gap 7.35855 MeV + gamma in Absorber 9.61747 keV in Gap 3.95733 keV + e- in Absorber 7.14659 eV in Gap 30.951 eV + e+ in Absorber 888.937 keV in Gap 2.19459 MeV Total track length of e+/e- in an event : - Absorber 32.4769 cm Gap 28.9009 cm + Absorber 37.4107 cm Gap 32.129 cm Total number of steps of e+/e- in an event : - Absorber 287.4 Gap 149.5 + Absorber 276.2 Gap 129.6 ############################################################ Region : Calor-C Production thresholds : gamma 2 cm e- 2 cm e+ 2 cm Energy deposition in an event : - Absorber 556.303 MeV Gap 246.329 MeV + Absorber 679.854 MeV Gap 310.133 MeV Number of secondaries in an event : - gamma in Absorber 19.2 in Gap 8.5 - e- in Absorber 134 in Gap 56.8 - e+ in Absorber 1 in Gap 0.3 + gamma in Absorber 49.7 in Gap 19.6 + e- in Absorber 305.2 in Gap 121 + e+ in Absorber 4.5 in Gap 1 Minimum kinetic energy of generated secondaries : - gamma in Absorber 29.3673 keV in Gap 10.4309 keV - e- in Absorber 5.61037 eV in Gap 51.6149 eV - e+ in Absorber 925.679 keV in Gap 0 eV + gamma in Absorber 28.2933 keV in Gap 10.6762 keV + e- in Absorber 2.89082 eV in Gap 6.85873 eV + e+ in Absorber 323.253 keV in Gap 575.507 keV Total track length of e+/e- in an event : - Absorber 22.8681 cm Gap 21.8067 cm + Absorber 49.1835 cm Gap 53.4287 cm Total number of steps of e+/e- in an event : - Absorber 197.9 Gap 94.6 + Absorber 386.6 Gap 164.4 ############################################################ /run/dumpCouples @@ -666,15 +942,19 @@ Index : 12 used in the geometry : Yes recalculation needed : No /run/setCutForRegion Calor-B 0.1 mm /run/setCutForRegion Calor-C 1 mm /run/dumpRegion + Region DefaultRegionForTheWorld Materials : Galactic Production cuts : gamma 1 mm e- 1 mm e+ 1 mm + Region Calor-A Materials : Aluminium Water Production cuts : gamma 10 mum e- 10 mum e+ 10 mum + Region Calor-B Materials : Aluminium Water Production cuts : gamma 100 mum e- 100 mum e+ 100 mum + Region Calor-C Materials : Aluminium Water Production cuts : gamma 1 mm e- 1 mm e+ 1 mm @@ -688,59 +968,167 @@ compt: Total cross sections from a parametrisation. Good description from 10 Ke Scattered gamma energy according Klein-Nishina. PhysicsTables from 1 keV to 100 GeV in 80 bins. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for e- + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +eIoni: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. -eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library. - Good description from 1 KeV to 100 GeV. - log scale extrapolation above 100 GeV - Gamma energy sampled from a parametrised formula. - PhysicsTables from 1 keV to 100 TeV in 100 bins. +eBrem: 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. + Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1 + Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV. + +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: Total cross section from Heilter formula(annihilation into 2 photons). gamma energies sampled according Heitler PhysicsTables from 10 keV to 10 TeV in 100 bins. -hIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 100 TeV in 100 bins. - Step function: finalRange(mm)= 1, dRoverRange= 0.2 +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for Escaled > 2 MeV, parametrisation of Bragg peak below, Integral mode 0 -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for proton + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuIoni: Knock-on electron cross sections . - Good description above the mean excitation energy. - delta ray energy sampled from differential Xsection. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. -msc: Tables of transport mean free paths. - New model of MSC , computes the lateral - displacement of the particle , too. - PhysicsTables from 100 eV to 100 TeV in 100 bins. +msc: Model variant of multiple scattering for mu+ + Lambda tables from 100 eV to 100 TeV in 120 bins. + Boundary algorithm is active with facrange= 0.199 -MuBrems: theoretical cross section - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. +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 +### All dEdx and Range tables are built ##### + +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. + Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0 + Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below. + +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 : Galactic + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV + Region(s) which use this couple : + DefaultRegionForTheWorld + +Index : 1 used in the geometry : No recalculation needed : No + Material : Lead + Range cuts : gamma 10 mum e- 10 mum e+ 10 mum + Energy thresholds : gamma 5.97389 keV e- 57.5352 keV e+ 56.8313 keV + +Index : 2 used in the geometry : No recalculation needed : No + Material : liquidArgon + Range cuts : gamma 10 mum e- 10 mum e+ 10 mum + Energy thresholds : gamma 990 eV e- 7.67874 keV e+ 7.58479 keV + +Index : 3 used in the geometry : No recalculation needed : No + Material : Lead + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 29.3406 keV e- 239.945 keV e+ 231.245 keV + +Index : 4 used in the geometry : No recalculation needed : No + Material : liquidArgon + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 1.9853 keV e- 82.2201 keV e+ 81.2141 keV + +Index : 5 used in the geometry : No recalculation needed : No + Material : Lead + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 100.511 keV e- 1.37814 MeV e+ 1.28002 MeV + +Index : 6 used in the geometry : No recalculation needed : No + Material : liquidArgon + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 6.17835 keV e- 342.891 keV e+ 334.551 keV + +Index : 7 used in the geometry : Yes recalculation needed : No + Material : Aluminium + Range cuts : gamma 10 mum e- 10 mum e+ 10 mum + Energy thresholds : gamma 990 eV e- 33.8876 keV e+ 33.4729 keV + Region(s) which use this couple : + Calor-A + +Index : 8 used in the geometry : Yes recalculation needed : No + Material : Water + Range cuts : gamma 10 mum e- 10 mum e+ 10 mum + Energy thresholds : gamma 990 eV e- 6.44974 keV e+ 6.37083 keV + Region(s) which use this couple : + Calor-A + +Index : 9 used in the geometry : Yes recalculation needed : No + Material : Aluminium + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 2.31448 keV e- 129.656 keV e+ 128.07 keV + Region(s) which use this couple : + Calor-B + +Index : 10 used in the geometry : Yes recalculation needed : No + Material : Water + Range cuts : gamma 100 mum e- 100 mum e+ 100 mum + Energy thresholds : gamma 1.09571 keV e- 84.2696 keV e+ 83.2385 keV + Region(s) which use this couple : + Calor-B + +Index : 11 used in the geometry : Yes recalculation needed : No + Material : Aluminium + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 6.88731 keV e- 596.68 keV e+ 568.011 keV + Region(s) which use this couple : + Calor-C + +Index : 12 used in the geometry : Yes recalculation needed : No + Material : Water + Range cuts : gamma 1 mm e- 1 mm e+ 1 mm + Energy thresholds : gamma 2.90186 keV e- 347.138 keV e+ 338.695 keV + Region(s) which use this couple : + Calor-C + +==================================================================== -MuPairProd: theoretical cross sections - Good description up to 1000 PeV. - PhysicsTables from 1 keV to 1000 PeV in 150 bins. Start Run processing. Run terminated. Run Summary Number of events processed : 10 - User=10.84s Real=13.98s Sys=3.12s + User=20.34s Real=21.7s Sys=1.36s ############################################################ Run Summary - Number of events : 10 ############################################################ @@ -748,55 +1136,55 @@ Region : Calor-A Production thresholds : gamma 10 mum e- 10 mum e+ 10 mum Energy deposition in an event : - Absorber 535.297 MeV Gap 229.47 MeV + Absorber 618.553 MeV Gap 274.418 MeV Number of secondaries in an event : - gamma in Absorber 53.9 in Gap 13.8 - e- in Absorber 959.8 in Gap 1854.4 - e+ in Absorber 0.7 in Gap 0.2 + gamma in Absorber 77.2 in Gap 24 + e- in Absorber 1168.5 in Gap 2064.4 + e+ in Absorber 2.6 in Gap 0.4 Minimum kinetic energy of generated secondaries : - gamma in Absorber 1.00165 keV in Gap 1.005 keV - e- in Absorber 5.97988 eV in Gap 3.55611 eV - e+ in Absorber 1.81336 MeV in Gap 14.8289 MeV + gamma in Absorber 1.00007 keV in Gap 1.00048 keV + e- in Absorber 4.31675 eV in Gap 8.65635 eV + e+ in Absorber 591.774 keV in Gap 1.24709 MeV Total track length of e+/e- in an event : - Absorber 38.3074 cm Gap 29.6527 cm + Absorber 59.3827 cm Gap 49.4823 cm Total number of steps of e+/e- in an event : - Absorber 3971.3 Gap 3674.8 + Absorber 1613.2 Gap 2752.1 ############################################################ Region : Calor-B Production thresholds : gamma 100 mum e- 100 mum e+ 100 mum Energy deposition in an event : - Absorber 522.919 MeV Gap 233.625 MeV + Absorber 539.524 MeV Gap 247.031 MeV Number of secondaries in an event : - gamma in Absorber 36.6 in Gap 12.4 - e- in Absorber 321.2 in Gap 176.2 - e+ in Absorber 0.6 in Gap 0.1 + gamma in Absorber 35 in Gap 13.6 + e- in Absorber 341.3 in Gap 189.7 + e+ in Absorber 1 in Gap 0.3 Minimum kinetic energy of generated secondaries : - gamma in Absorber 2.39591 keV in Gap 1.18057 keV - e- in Absorber 21.5058 eV in Gap 6.4111 eV - e+ in Absorber 1.03811 MeV in Gap 4.75865 MeV + gamma in Absorber 1.14357 keV in Gap 1.12089 keV + e- in Absorber 4.36517 eV in Gap 3.76762 eV + e+ in Absorber 2.30188 MeV in Gap 1.65608 MeV Total track length of e+/e- in an event : - Absorber 32.8264 cm Gap 29.2821 cm + Absorber 53.0361 cm Gap 40.3755 cm Total number of steps of e+/e- in an event : - Absorber 962.6 Gap 547.5 + Absorber 463.3 Gap 263.6 ############################################################ Region : Calor-C Production thresholds : gamma 1 mm e- 1 mm e+ 1 mm Energy deposition in an event : - Absorber 574.548 MeV Gap 248.925 MeV + Absorber 548.983 MeV Gap 241.888 MeV Number of secondaries in an event : - gamma in Absorber 41.9 in Gap 11.8 - e- in Absorber 222.1 in Gap 99 - e+ in Absorber 1.9 in Gap 0.1 + gamma in Absorber 33.4 in Gap 12 + e- in Absorber 181.1 in Gap 79.9 + e+ in Absorber 0.7 in Gap 0 Minimum kinetic energy of generated secondaries : - gamma in Absorber 6.97856 keV in Gap 2.98708 keV - e- in Absorber 39.8329 eV in Gap 1.90004 eV - e+ in Absorber 1.74711 MeV in Gap 11.535 MeV + gamma in Absorber 6.94347 keV in Gap 3.34454 keV + e- in Absorber 34.6122 eV in Gap 16.0672 eV + e+ in Absorber 889.991 keV in Gap 2.88022e+295 J Total track length of e+/e- in an event : - Absorber 40.9874 cm Gap 32.8772 cm + Absorber 34.644 cm Gap 28.365 cm Total number of steps of e+/e- in an event : - Absorber 379.1 Gap 179.1 + Absorber 243.6 Gap 115.9 ############################################################ /run/dumpCouples diff --git a/examples/novice/N07/include/ExN07CalorHit.hh b/examples/novice/N07/include/ExN07CalorHit.hh index e50f636e7c..9809948be2 100644 --- a/examples/novice/N07/include/ExN07CalorHit.hh +++ b/examples/novice/N07/include/ExN07CalorHit.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07CalorHit.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN07CalorHit_h diff --git a/examples/novice/N07/include/ExN07CalorimeterSD.hh b/examples/novice/N07/include/ExN07CalorimeterSD.hh index 02d1d2c1ea..be1af667bc 100644 --- a/examples/novice/N07/include/ExN07CalorimeterSD.hh +++ b/examples/novice/N07/include/ExN07CalorimeterSD.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07CalorimeterSD.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN07CalorimeterSD_h diff --git a/examples/novice/N07/include/ExN07DetectorConstruction.hh b/examples/novice/N07/include/ExN07DetectorConstruction.hh index 52a43da8f1..95f40d549b 100644 --- a/examples/novice/N07/include/ExN07DetectorConstruction.hh +++ b/examples/novice/N07/include/ExN07DetectorConstruction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07DetectorConstruction.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N07/include/ExN07DetectorMessenger.hh b/examples/novice/N07/include/ExN07DetectorMessenger.hh index 1383edeb7a..22289bbeb8 100644 --- a/examples/novice/N07/include/ExN07DetectorMessenger.hh +++ b/examples/novice/N07/include/ExN07DetectorMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07DetectorMessenger.hh,v 1.2 2003/04/08 15:46:59 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN07DetectorMessenger_h diff --git a/examples/novice/N07/include/ExN07EventAction.hh b/examples/novice/N07/include/ExN07EventAction.hh index 2479277a81..62fe2abc88 100644 --- a/examples/novice/N07/include/ExN07EventAction.hh +++ b/examples/novice/N07/include/ExN07EventAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07EventAction.hh,v 1.2 2003/04/08 15:47:00 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN07EventAction_h diff --git a/examples/novice/N07/include/ExN07GapParameterisation.hh b/examples/novice/N07/include/ExN07GapParameterisation.hh index 8a50b7508d..b0c8a59bcf 100644 --- a/examples/novice/N07/include/ExN07GapParameterisation.hh +++ b/examples/novice/N07/include/ExN07GapParameterisation.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07GapParameterisation.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // A parameterisation that describes a series of boxes along Z diff --git a/examples/novice/N07/include/ExN07PhysicsList.hh b/examples/novice/N07/include/ExN07PhysicsList.hh index 80b1ed1649..5b7a23d00d 100644 --- a/examples/novice/N07/include/ExN07PhysicsList.hh +++ b/examples/novice/N07/include/ExN07PhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07PhysicsList.hh,v 1.1 2003/03/10 01:43:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN07PhysicsList_h diff --git a/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh b/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh index 97bd11748f..0db60bf212 100644 --- a/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh +++ b/examples/novice/N07/include/ExN07PrimaryGeneratorAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07PrimaryGeneratorAction.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN07PrimaryGeneratorAction_h diff --git a/examples/novice/N07/include/ExN07Run.hh b/examples/novice/N07/include/ExN07Run.hh index 84c82f47e6..d58b49b803 100644 --- a/examples/novice/N07/include/ExN07Run.hh +++ b/examples/novice/N07/include/ExN07Run.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07Run.hh,v 1.3 2003/04/09 23:20:58 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN07Run_h diff --git a/examples/novice/N07/include/ExN07RunAction.hh b/examples/novice/N07/include/ExN07RunAction.hh index 42b4f0dd0a..be4dbe3108 100644 --- a/examples/novice/N07/include/ExN07RunAction.hh +++ b/examples/novice/N07/include/ExN07RunAction.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07RunAction.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef ExN07RunAction_h diff --git a/examples/novice/N07/include/ExN07VisManager.hh b/examples/novice/N07/include/ExN07VisManager.hh index 34023da200..8bb4e63051 100644 --- a/examples/novice/N07/include/ExN07VisManager.hh +++ b/examples/novice/N07/include/ExN07VisManager.hh @@ -22,7 +22,7 @@ // // // $Id: ExN07VisManager.hh,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N07/src/ExN07CalorHit.cc b/examples/novice/N07/src/ExN07CalorHit.cc index 647ffcbfbc..71413df6f2 100644 --- a/examples/novice/N07/src/ExN07CalorHit.cc +++ b/examples/novice/N07/src/ExN07CalorHit.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07CalorHit.cc,v 1.2 2003/05/21 22:01:17 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07CalorHit.hh" diff --git a/examples/novice/N07/src/ExN07CalorimeterSD.cc b/examples/novice/N07/src/ExN07CalorimeterSD.cc index daaaaea8db..fea998bee1 100644 --- a/examples/novice/N07/src/ExN07CalorimeterSD.cc +++ b/examples/novice/N07/src/ExN07CalorimeterSD.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07CalorimeterSD.cc,v 1.2 2003/05/21 22:01:17 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07CalorimeterSD.hh" diff --git a/examples/novice/N07/src/ExN07DetectorConstruction.cc b/examples/novice/N07/src/ExN07DetectorConstruction.cc index 9d3cd0b518..38e2c7bc6d 100644 --- a/examples/novice/N07/src/ExN07DetectorConstruction.cc +++ b/examples/novice/N07/src/ExN07DetectorConstruction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07DetectorConstruction.cc,v 1.3 2003/04/08 15:47:00 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/examples/novice/N07/src/ExN07DetectorMessenger.cc b/examples/novice/N07/src/ExN07DetectorMessenger.cc index b959db6f19..fb3d51cc06 100644 --- a/examples/novice/N07/src/ExN07DetectorMessenger.cc +++ b/examples/novice/N07/src/ExN07DetectorMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07DetectorMessenger.cc,v 1.2 2003/04/08 15:47:00 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07DetectorMessenger.hh" diff --git a/examples/novice/N07/src/ExN07EventAction.cc b/examples/novice/N07/src/ExN07EventAction.cc index 38233d06ad..f67829ee7c 100644 --- a/examples/novice/N07/src/ExN07EventAction.cc +++ b/examples/novice/N07/src/ExN07EventAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07EventAction.cc,v 1.5 2003/06/16 16:50:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07EventAction.hh" diff --git a/examples/novice/N07/src/ExN07GapParameterisation.cc b/examples/novice/N07/src/ExN07GapParameterisation.cc index 0740fd63e8..884e2d03dc 100644 --- a/examples/novice/N07/src/ExN07GapParameterisation.cc +++ b/examples/novice/N07/src/ExN07GapParameterisation.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07GapParameterisation.cc,v 1.2 2003/05/28 11:24:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07GapParameterisation.hh" diff --git a/examples/novice/N07/src/ExN07PhysicsList.cc b/examples/novice/N07/src/ExN07PhysicsList.cc index 778d784e02..5fecfc5d69 100644 --- a/examples/novice/N07/src/ExN07PhysicsList.cc +++ b/examples/novice/N07/src/ExN07PhysicsList.cc @@ -21,14 +21,13 @@ // ******************************************************************** // // -// $Id: ExN07PhysicsList.cc,v 1.2 2003/04/09 23:20:59 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN07PhysicsList.cc,v 1.4 2003/10/24 12:42:10 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07PhysicsList.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleWithCuts.hh" #include "G4ProcessManager.hh" #include "G4ProcessVector.hh" #include "G4ParticleTypes.hh" @@ -157,6 +156,7 @@ void ExN07PhysicsList::ConstructEM() // 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); @@ -182,6 +182,7 @@ void ExN07PhysicsList::ConstructEM() // 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); @@ -206,6 +207,9 @@ void ExN07PhysicsList::ConstructEM() // 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); diff --git a/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc b/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc index b8e53072a7..3e07975674 100644 --- a/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc +++ b/examples/novice/N07/src/ExN07PrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07PrimaryGeneratorAction.cc,v 1.1 2003/03/10 01:43:36 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07PrimaryGeneratorAction.hh" diff --git a/examples/novice/N07/src/ExN07Run.cc b/examples/novice/N07/src/ExN07Run.cc index 0527f43d1c..e4d2a2060e 100644 --- a/examples/novice/N07/src/ExN07Run.cc +++ b/examples/novice/N07/src/ExN07Run.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07Run.cc,v 1.3 2003/04/09 23:20:59 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07Run.hh" diff --git a/examples/novice/N07/src/ExN07RunAction.cc b/examples/novice/N07/src/ExN07RunAction.cc index 767dd6f0ff..5a5b921fdd 100644 --- a/examples/novice/N07/src/ExN07RunAction.cc +++ b/examples/novice/N07/src/ExN07RunAction.cc @@ -22,7 +22,7 @@ // // // $Id: ExN07RunAction.cc,v 1.3 2003/04/09 23:20:59 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "ExN07RunAction.hh" diff --git a/examples/novice/N07/src/ExN07VisManager.cc b/examples/novice/N07/src/ExN07VisManager.cc index bd7ddf0786..e30de99a2f 100755 --- a/examples/novice/N07/src/ExN07VisManager.cc +++ b/examples/novice/N07/src/ExN07VisManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: ExN07VisManager.cc,v 1.1 2003/03/10 01:43:37 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: ExN07VisManager.cc,v 1.2 2003/11/13 15:11:55 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifdef G4VIS_USE @@ -47,11 +47,6 @@ #include "G4FukuiRenderer.hh" #endif -#ifdef G4VIS_USE_OPACS -#include "G4Wo.hh" -#include "G4Xo.hh" -#endif - #ifdef G4VIS_USE_OPENGLX #include "G4OpenGLImmediateX.hh" #include "G4OpenGLStoredX.hh" @@ -100,11 +95,6 @@ void ExN07VisManager::RegisterGraphicsSystems () { RegisterGraphicsSystem (new G4FukuiRenderer); #endif -#ifdef G4VIS_USE_OPACS - RegisterGraphicsSystem (new G4Wo); - RegisterGraphicsSystem (new G4Xo); -#endif - #ifdef G4VIS_USE_OPENGLX RegisterGraphicsSystem (new G4OpenGLImmediateX); RegisterGraphicsSystem (new G4OpenGLStoredX); diff --git a/hadronic_lists/History b/hadronic_lists/History new file mode 100644 index 0000000000..0ce2c43915 --- /dev/null +++ b/hadronic_lists/History @@ -0,0 +1,27 @@ +$Id: History,v 1.3 2003/12/05 07:33:05 gcosmo Exp $ +------------------------------------------------------------------- + + ========================================================= + Geant4 - an Object-Oriented Toolkit for Simulation in HEP + ========================================================= + + Hadronic physics-list History + ----------------------------- +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 * + ---------------------------------------------------------- + +05.12.2003, G.Cosmo - ghad-lists-V05-02-01 +- Changed LISTS_BASE to G4LISTS_BASE. + +04.12.2003, G.Cosmo - ghad-lists-V05-02-00 +- Corrected installation setup to point to default build area if + LISTS_BASE is not defined. + +03.12.2003, H.P.Wellisch +- Imported hadronic physics lists from development branch. +- Created. diff --git a/hadronic_lists/lists/FTFC/GNUmakefile b/hadronic_lists/lists/FTFC/GNUmakefile new file mode 100644 index 0000000000..126016ebcd --- /dev/null +++ b/hadronic_lists/lists/FTFC/GNUmakefile @@ -0,0 +1,2 @@ +name := FTFC +include ../common.gmk diff --git a/environments/OPACS/include/G4oState.hh b/hadronic_lists/lists/FTFC/include/FTFC.hh similarity index 77% rename from environments/OPACS/include/G4oState.hh rename to hadronic_lists/lists/FTFC/include/FTFC.hh index d8b53f1956..dd4026b53a 100644 --- a/environments/OPACS/include/G4oState.hh +++ b/hadronic_lists/lists/FTFC/include/FTFC.hh @@ -20,25 +20,34 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4oState.hh,v 1.5 2001/07/11 09:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -#ifndef G4oState_h -#define G4oState_h +#ifndef TTFTFC_h +#define TTFTFC_h 1 -#include -#include +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" -class G4oState : public G4VStateDependent, public G4UIsession { +template +class TFTFC: public T +{ public: - G4oState(G4String); - ~G4oState(); - G4bool Notify(G4ApplicationState); - void PauseSessionStart(G4String); + TFTFC(); + virtual ~TFTFC(); + +public: + // SetCuts() + virtual void SetCuts(); + private: - G4String name; + enum {ok = CompileTimeConstraints::IsA::ok }; }; +#include "FTFC.icc" + +typedef TFTFC FTFC; + +// 2002 by J.P. Wellisch #endif + + diff --git a/hadronic_lists/lists/FTFC/include/FTFC.icc b/hadronic_lists/lists/FTFC/include/FTFC.icc new file mode 100644 index 0000000000..2420a2fa66 --- /dev/null +++ b/hadronic_lists/lists/FTFC/include/FTFC.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" + +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsFTFC.hh" +#include "HadronPhysicsFTFC.hh" + +template TFTFC::TFTFC(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: FTFC 2.7"< TFTFC::~TFTFC() +{ +} + +template void TFTFC::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "FTFC::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/FTFC/include/HadronPhysicsFTFC.hh b/hadronic_lists/lists/FTFC/include/HadronPhysicsFTFC.hh new file mode 100644 index 0000000000..be4548deb7 --- /dev/null +++ b/hadronic_lists/lists/FTFC/include/HadronPhysicsFTFC.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsFTFC_h +#define HadronPhysicsFTFC_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4FTFCPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4FTFCProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4FTFCNeutronBuilder.hh" + +class HadronPhysicsFTFC : public G4VPhysicsConstructor +{ + public: + HadronPhysicsFTFC(const G4String& name ="hadron"); + virtual ~HadronPhysicsFTFC(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4FTFCNeutronBuilder theFTFCNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4FTFCPiKBuilder theFTFCPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4FTFCProtonBuilder theFTFCPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EMModelPhysics.cc b/hadronic_lists/lists/FTFC/src/HadronPhysicsFTFC.cc similarity index 59% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EMModelPhysics.cc rename to hadronic_lists/lists/FTFC/src/HadronPhysicsFTFC.cc index 3a223cdb34..79dc43cf6b 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EMModelPhysics.cc +++ b/hadronic_lists/lists/FTFC/src/HadronPhysicsFTFC.cc @@ -20,42 +20,56 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "EMModelPhysics.hh" +#include "HadronPhysicsFTFC.hh" + #include "globals.hh" #include "G4ios.hh" #include -#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 "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" -EMModelPhysics:: -EMModelPhysics(const G4String& name) : G4VPhysicsConstructor(name) {} - -EMModelPhysics:: -~EMModelPhysics() {} - -void EMModelPhysics:: -ConstructParticle() +HadronPhysicsFTFC::HadronPhysicsFTFC(const G4String& name) + : G4VPhysicsConstructor(name) { - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + theNeutrons.RegisterMe(&theFTFCNeutron); + theNeutrons.RegisterMe(&theLEPNeutron); + theLEPNeutron.SetMaxInelasticEnergy(25*GeV); + + thePro.RegisterMe(&theFTFCPro); + thePro.RegisterMe(&theLEPPro); + theLEPPro.SetMaxEnergy(25*GeV); + + thePiK.RegisterMe(&theFTFCPiK); + thePiK.RegisterMe(&theLEPPiK); + theLEPPiK.SetMaxEnergy(25*GeV); } -void EMModelPhysics:: -ConstructProcess() +HadronPhysicsFTFC::~HadronPhysicsFTFC() {} + +void HadronPhysicsFTFC::ConstructParticle() { - theEMModelPhysics.Build(); + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); } - - +#include "G4ProcessManager.hh" +void HadronPhysicsFTFC::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} // 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/FTFP/GNUmakefile b/hadronic_lists/lists/FTFP/GNUmakefile new file mode 100644 index 0000000000..4ebf4d624c --- /dev/null +++ b/hadronic_lists/lists/FTFP/GNUmakefile @@ -0,0 +1,2 @@ +name := FTFP +include ../common.gmk diff --git a/examples/advanced/composite_calorimeter/include/EMPhysics.hh b/hadronic_lists/lists/FTFP/include/FTFP.hh similarity index 79% rename from examples/advanced/composite_calorimeter/include/EMPhysics.hh rename to hadronic_lists/lists/FTFP/include/FTFP.hh index e64cce936b..444cf6f5e2 100644 --- a/examples/advanced/composite_calorimeter/include/EMPhysics.hh +++ b/hadronic_lists/lists/FTFP/include/FTFP.hh @@ -20,28 +20,29 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef EMPhysics_h -#define EMPhysics_h 1 +#ifndef TFTFP_h +#define TFTFP_h 1 +#include "G4VModularPhysicsList.hh" #include "globals.hh" -#include "G4ios.hh" -#include "G4VPhysicsConstructor.hh" -#include "G4EMBuilder.hh" +#include "CompileTimeConstraints.hh" - -class EMPhysics : public G4VPhysicsConstructor +template +class TFTFP: public T { - public: - EMPhysics(const G4String& name ="EM"); - virtual ~EMPhysics(); +public: + TFTFP(); + virtual ~TFTFP(); + +public: + // SetCuts() + virtual void SetCuts(); - public: - virtual void ConstructParticle(); - virtual void ConstructProcess(); - - private: - G4EMBuilder theEMPhysics; +private: + enum {ok = CompileTimeConstraints::IsA::ok }; }; +#include "FTFP.icc" +typedef TFTFP FTFP; // 2002 by J.P. Wellisch @@ -49,5 +50,3 @@ class EMPhysics : public G4VPhysicsConstructor - - diff --git a/hadronic_lists/lists/FTFP/include/FTFP.icc b/hadronic_lists/lists/FTFP/include/FTFP.icc new file mode 100644 index 0000000000..da56cc14f5 --- /dev/null +++ b/hadronic_lists/lists/FTFP/include/FTFP.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsFTFP.hh" + +template TFTFP::TFTFP(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: FTFP 2.7"< TFTFP::~TFTFP() +{ +} + +template void TFTFP::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "FTFP::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/FTFP/include/HadronPhysicsFTFP.hh b/hadronic_lists/lists/FTFP/include/HadronPhysicsFTFP.hh new file mode 100644 index 0000000000..dd01c0b721 --- /dev/null +++ b/hadronic_lists/lists/FTFP/include/HadronPhysicsFTFP.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsFTFP_h +#define HadronPhysicsFTFP_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4FTFPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4FTFPProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4FTFPNeutronBuilder.hh" + +class HadronPhysicsFTFP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsFTFP(const G4String& name ="hadron"); + virtual ~HadronPhysicsFTFP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4FTFPNeutronBuilder theFTFPNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4FTFPPiKBuilder theFTFPPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4FTFPProtonBuilder theFTFPPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/FTFP/src/HadronPhysicsFTFP.cc b/hadronic_lists/lists/FTFP/src/HadronPhysicsFTFP.cc new file mode 100644 index 0000000000..ed08f80486 --- /dev/null +++ b/hadronic_lists/lists/FTFP/src/HadronPhysicsFTFP.cc @@ -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. * +// ******************************************************************** +// +#include "HadronPhysicsFTFP.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsFTFP::HadronPhysicsFTFP(const G4String& name) + : G4VPhysicsConstructor(name) +{ + theNeutrons.RegisterMe(&theFTFPNeutron); + theNeutrons.RegisterMe(&theLEPNeutron); + theLEPNeutron.SetMaxInelasticEnergy(25*GeV); + + thePro.RegisterMe(&theFTFPPro); + thePro.RegisterMe(&theLEPPro); + theLEPPro.SetMaxEnergy(25*GeV); + + thePiK.RegisterMe(&theFTFPPiK); + thePiK.RegisterMe(&theLEPPiK); + theLEPPiK.SetMaxEnergy(25*GeV); +} + +HadronPhysicsFTFP::~HadronPhysicsFTFP() {} + +void HadronPhysicsFTFP::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsFTFP::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/GNUmakefile b/hadronic_lists/lists/GNUmakefile new file mode 100644 index 0000000000..5002170c2b --- /dev/null +++ b/hadronic_lists/lists/GNUmakefile @@ -0,0 +1,15 @@ +# $Id: GNUmakefile,v 1.1.1.1 2003/12/01 10:50:22 hpw 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_BIC QGSP_BIC + +.PHONY: all clean + +all: + @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE)); done;: + @for dir in $(SUBDIR2); do (cd $$dir && $(MAKE)); done;: + +clean: + @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE) clean); done;: + @for dir in $(SUBDIR2); do (cd $$dir && $(MAKE) clean); done;: diff --git a/hadronic_lists/lists/GNUmakefile.user.code.example b/hadronic_lists/lists/GNUmakefile.user.code.example new file mode 100644 index 0000000000..d608aef889 --- /dev/null +++ b/hadronic_lists/lists/GNUmakefile.user.code.example @@ -0,0 +1,130 @@ +# -------------------------------------------------------------- +# GNUmakefile for physics list user. +# JPW. Fri Jul 25 10:39:58 CEST 2003 +# -------------------------------------------------------------- + +name := MyMagicExecutable + +G4TARGET := $(name) +G4EXLIB := true + +ifndef G4INSTALL + G4INSTALL = ../.. +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 'lists'. +# +ifndef G4LISTS_BASE + EXTRALIBS += -L$(G4LIB)/.lists_build/$(G4SYSTEM) + G4LISTS_BASE = $(G4INSTALL)/hadronic_lists +else + EXTRALIBS += -L$(G4LISTS_BASE)/lists/.lists_build/lib/$(G4SYSTEM) +endif + +# +# Select your physics lists to link against. +# +# EXTRALIBS += -lFTFC +# 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 += -lQGSP_BERT +# EXTRALIBS += -lLHEP_PRECO_HP +# EXTRALIBS += -lQGSC +# EXTRALIBS += -lQGSC_LEAD +# EXTRALIBS += -lQGSC_LEAD_HP +# EXTRALIBS += -lQGSP +# EXTRALIBS += -lQGSP_GN +# EXTRALIBS += -lQGSP_HP +# EXTRALIBS += -lLHEP_BERT +# EXTRALIBS += -lLHEP_BIC +# EXTRALIBS += -lQGSP_BIC +# EXTRALIBS += -lPackaging + +EXTRALIBS += -lG4hadronic_proc +EXTRALIBS += -lG4hadronic_HE +EXTRALIBS += -lG4hadronic_LE +EXTRALIBS += -lG4hadronic_iso +EXTRALIBS += -lG4had_neu_hp +EXTRALIBS += -lG4hadronic_coherent_elastic +EXTRALIBS += -lG4hadronic_hetcpp_evaporation +EXTRALIBS += -lG4hadronic_hetcpp_utils +EXTRALIBS += -lG4hadronic_bert_cascade +EXTRALIBS += -lG4hadronic_interface_ci +EXTRALIBS += -lG4hadronic_body_ci +EXTRALIBS += -lG4hadronic_leading_particle +EXTRALIBS += -lG4hadronic_stop +EXTRALIBS += -lG4hadronic_radioactivedecay + +EXTRALIBS += -lG4had_theo_max +EXTRALIBS += -lG4hadronic_qgstring +EXTRALIBS += -lG4had_string_diff +EXTRALIBS += -lG4had_string_frag +EXTRALIBS += -lG4had_string_man + +EXTRALIBS += -lG4hadronic_binary +EXTRALIBS += -lG4had_im_r_matrix +EXTRALIBS += -lG4had_preequ_exciton +EXTRALIBS += -lG4hadronic_deex_evaporation +EXTRALIBS += -lG4hadronic_deex_fermi_breakup +EXTRALIBS += -lG4hadronic_deex_fission +EXTRALIBS += -lG4hadronic_deex_gem_evaporation +EXTRALIBS += -lG4hadronic_deex_handler +EXTRALIBS += -lG4hadronic_deex_management +EXTRALIBS += -lG4hadronic_deex_multifragmentation +EXTRALIBS += -lG4hadronic_deex_photon_evaporation +EXTRALIBS += -lG4hadronic_deex_util + +EXTRALIBS += -lG4had_mod_man +EXTRALIBS += -lG4had_mod_util + +EXTRALIBS += -lG4hadronic_mgt +EXTRALIBS += -lG4hadronic_xsect +EXTRALIBS += -lG4hadronic_util + +EXTRALIBS += -lG4shortlived + +CPPFLAGS += -I$(G4LISTS_BASE)/lists/FTFC/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/FTFP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LBE/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BERT/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BIC/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_GN/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BERT_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BIC_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_LEAD/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_LEAD_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_PRECO/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_PRECO_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/Packaging/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSC/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSC_LEAD/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSC_LEAD_HP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_BERT/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_BIC/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_GN/include +CPPFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_HP/include + +.PHONY: all + +all: lib bin + +include $(G4INSTALL)/config/binmake.gmk + +CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) +CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O)) + diff --git a/hadronic_lists/lists/LBE/GNUmakefile b/hadronic_lists/lists/LBE/GNUmakefile new file mode 100644 index 0000000000..289b2fa4c4 --- /dev/null +++ b/hadronic_lists/lists/LBE/GNUmakefile @@ -0,0 +1,3 @@ +name := LBE +include ../common.gmk + diff --git a/hadronic_lists/lists/LBE/include/LBE.hh b/hadronic_lists/lists/LBE/include/LBE.hh new file mode 100644 index 0000000000..45d407859f --- /dev/null +++ b/hadronic_lists/lists/LBE/include/LBE.hh @@ -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. * +// ******************************************************************** +// +// +// -------------------------------------------------------------- +// 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 +// +// Underground Advanced +// by A. Howard and H. Araujo +// (27th November 2001) +// +// PhysicsList header +// -------------------------------------------------------------- + +#ifndef TLBE_h +#define TLBE_h 1 + +#include "G4VUserPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +template +class TLBE: public T +{ +public: + TLBE(); + ~TLBE(); + // virtual ~TLBE(); + + +public: + virtual void SetCuts(); + + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; + +protected: + // Construct particle and physics + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + // these methods Construct physics processes and register them + virtual void ConstructGeneral(); + virtual void ConstructEM(); + virtual void ConstructHad(); + virtual void ConstructOp(); + + + /* + // these methods Construct all particles in each category + virtual void ConstructAllBosons(); + virtual void ConstructAllLeptons(); + virtual void ConstructAllMesons(); + virtual void ConstructAllBaryons(); + virtual void ConstructAllIons(); + virtual void ConstructAllShortLiveds(); + */ + + virtual void AddTransportation(); + +private: + G4int VerboseLevel; + G4int OpVerbLevel; + + G4double cutForGamma; + G4double cutForElectron; + G4double cutForPositron; + G4double cutForProton; + G4double cutForAlpha; + G4double cutForGenericIon; + + // these methods Construct particles + void ConstructMyBosons(); + void ConstructMyLeptons(); + void ConstructMyMesons(); + void ConstructMyBaryons(); + void ConstructMyIons(); + void ConstructMyShortLiveds(); + +}; +#include "LBE.icc" +typedef TLBE LBE; + +#endif diff --git a/hadronic_lists/lists/LBE/include/LBE.icc b/hadronic_lists/lists/LBE/include/LBE.icc new file mode 100644 index 0000000000..09c1001985 --- /dev/null +++ b/hadronic_lists/lists/LBE/include/LBE.icc @@ -0,0 +1,823 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * 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 +// +// Underground Advanced +// by A. Howard and H. Araujo +// (27th November 2001) +// +// PhysicsList program +// +// Modified: +// +// 14-02-03 Fix bugs in msc and hIon instanciation + cut per region +// +// -------------------------------------------------------------- + + +#include "globals.hh" +#include "G4ProcessManager.hh" +#include "G4ProcessVector.hh" + +#include "G4ParticleDefinition.hh" +#include "G4ParticleWithCuts.hh" +#include "G4ParticleTypes.hh" +#include "G4ParticleTable.hh" +#include "G4ProductionCutsTable.hh" + +#include "G4ios.hh" +#include + +#include "G4UserLimits.hh" +#include "G4DataQuestionaire.hh" + + +// Constructor ///////////////////////////////////////////////////////////// +template TLBE::TLBE() : G4VUserPhysicsList() +{ + + G4DataQuestionaire it(photon, lowenergy, neutron, radioactive); + G4cout << "You are using the simulation engine: LBE 5.2"< TLBE::~TLBE() +{;} + + +// Construct Particles ///////////////////////////////////////////////////// + template void TLBE::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. + + ConstructMyBosons(); + ConstructMyLeptons(); + ConstructMyMesons(); + ConstructMyBaryons(); + ConstructMyIons(); + ConstructMyShortLiveds(); + +} + + +// construct Bosons:///////////////////////////////////////////////////// + template void TLBE::ConstructMyBosons() +{ + // pseudo-particles + G4Geantino::GeantinoDefinition(); + G4ChargedGeantino::ChargedGeantinoDefinition(); + + // gamma + G4Gamma::GammaDefinition(); + + //OpticalPhotons + G4OpticalPhoton::OpticalPhotonDefinition(); + +} + + +// construct Leptons:///////////////////////////////////////////////////// + template void TLBE::ConstructMyLeptons() +{ + // leptons + G4Electron::ElectronDefinition(); + G4Positron::PositronDefinition(); + G4MuonPlus::MuonPlusDefinition(); + G4MuonMinus::MuonMinusDefinition(); + + G4NeutrinoE::NeutrinoEDefinition(); + G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4NeutrinoMu::NeutrinoMuDefinition(); + G4AntiNeutrinoMu::AntiNeutrinoMuDefinition(); +} + + +// construct Mesons:///////////////////////////////////////////////////// + template void TLBE::ConstructMyMesons() +{ + // mesons + G4PionPlus::PionPlusDefinition(); + G4PionMinus::PionMinusDefinition(); + G4PionZero::PionZeroDefinition(); + G4KaonPlus::KaonPlusDefinition(); + G4KaonMinus::KaonMinusDefinition(); + G4Eta::EtaDefinition(); + G4EtaPrime::EtaPrimeDefinition(); + G4KaonZero::KaonZeroDefinition(); + G4AntiKaonZero::AntiKaonZeroDefinition(); + G4KaonZeroLong::KaonZeroLongDefinition(); + G4KaonZeroShort::KaonZeroShortDefinition(); +} + + +// construct Baryons:///////////////////////////////////////////////////// + template void TLBE::ConstructMyBaryons() +{ +// barions + G4Proton::ProtonDefinition(); + G4AntiProton::AntiProtonDefinition(); + G4Neutron::NeutronDefinition(); + G4AntiNeutron::AntiNeutronDefinition(); +} + + +// construct Ions:///////////////////////////////////////////////////// + template void TLBE::ConstructMyIons() +{ +// Ions + G4Deuteron::DeuteronDefinition(); + G4Triton::TritonDefinition(); + G4He3::He3Definition(); + G4Alpha::AlphaDefinition(); + G4GenericIon::GenericIonDefinition(); +} + +// construct Shortliveds:///////////////////////////////////////////////////// + template void TLBE::ConstructMyShortLiveds() +{ + // ShortLiveds + ; +} + + + + +// Construct Processes ////////////////////////////////////////////////////// + template void TLBE::ConstructProcess() +{ + + AddTransportation(); + + ConstructEM(); + + ConstructOp(); + + ConstructHad(); + + ConstructGeneral(); + +} + + +// Transportation /////////////////////////////////////////////////////////// +#include "MaxTimeCuts.hh" +#include "MinEkineCuts.hh" + + template void TLBE::AddTransportation() { + + G4VUserPhysicsList::AddTransportation(); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + // time cuts for ONLY neutrons: + if(particleName == "neutron") + pmanager->AddDiscreteProcess(new MaxTimeCuts()); + // Energy cuts to kill charged (embedded in method) particles: + pmanager->AddDiscreteProcess(new MinEkineCuts()); + } +} + + +// Electromagnetic Processes //////////////////////////////////////////////// +// all charged particles +#include "G4MultipleScattering.hh" + +// gamma +#include "G4LowEnergyRayleigh.hh" +#include "G4LowEnergyPhotoElectric.hh" +#include "G4LowEnergyCompton.hh" +#include "G4LowEnergyGammaConversion.hh" + + +// e- +#include "G4LowEnergyIonisation.hh" +#include "G4LowEnergyBremsstrahlung.hh" + +// e+ +#include "G4eIonisation.hh" +#include "G4eBremsstrahlung.hh" +#include "G4eplusAnnihilation.hh" + + +// alpha and GenericIon and deuterons, triton, He3: +#include "G4hLowEnergyIonisation.hh" +#include "G4EnergyLossTables.hh" +// hLowEnergyIonisation uses Ziegler 1988 as the default + + +//muon: +#include "G4MuIonisation.hh" +#include "G4MuBremsstrahlung.hh" +#include "G4MuPairProduction.hh" +#include "G4MuonMinusCaptureAtRest.hh" + +//OTHERS: +//#include "G4hIonisation.hh" // standard hadron ionisation + + template void TLBE::ConstructEM() { + +// processes: + + G4LowEnergyPhotoElectric* lowePhot = new G4LowEnergyPhotoElectric(); + G4LowEnergyIonisation* loweIon = new G4LowEnergyIonisation(); + G4LowEnergyBremsstrahlung* loweBrem = new G4LowEnergyBremsstrahlung(); + + // note LowEIon uses proton as basis for its data-base, therefore + // cannot specify different LowEnergyIonisation models for different + // particles, but can change model globally for Ion, Alpha and Proton. + + + //fluorescence apply specific cut for fluorescence from photons, electrons + //and bremsstrahlung photons: + G4double fluorcut = 250*eV; + lowePhot->SetCutForLowEnSecPhotons(fluorcut); + loweIon->SetCutForLowEnSecPhotons(fluorcut); + loweBrem->SetCutForLowEnSecPhotons(fluorcut); + + // setting tables explicitly for electronic stopping power + // ahadronLowEIon->SetElectronicStoppingPowerModel + // (G4GenericIon::GenericIonDefinition(), "ICRU_R49p") ; + // ahadronLowEIon->SetElectronicStoppingPowerModel + // (G4Proton::ProtonDefinition(), "ICRU_R49p") ; + + // Switch off the Barkas and Bloch corrections + // ahadronLowEIon->SetBarkasOff(); + + + theParticleIterator->reset(); + while( (*theParticleIterator)() ){ + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + G4String particleType = particle->GetParticleType(); + G4double charge = particle->GetPDGCharge(); + + if (particleName == "gamma") + { + //gamma + pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh()); + pmanager->AddDiscreteProcess(lowePhot); + pmanager->AddDiscreteProcess(new G4LowEnergyCompton()); + pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion()); + } + else if (particleName == "e-") + { + //electron + // process ordering: AddProcess(name, at rest, along step, post step) + // -1 = not implemented, then ordering + G4MultipleScattering* aMultipleScattering = new G4MultipleScattering(); + pmanager->AddProcess(aMultipleScattering, -1, 1, 1); + pmanager->AddProcess(loweIon, -1, 2, 2); + pmanager->AddProcess(loweBrem, -1,-1, 3); + } + else if (particleName == "e+") + { + //positron + G4MultipleScattering* aMultipleScattering = new G4MultipleScattering(); + pmanager->AddProcess(aMultipleScattering, -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 + G4MultipleScattering* aMultipleScattering = new G4MultipleScattering(); + pmanager->AddProcess(aMultipleScattering, -1, 1, 1); + pmanager->AddProcess(new G4MuIonisation(), -1, 2, 2); + pmanager->AddProcess(new G4MuBremsstrahlung(), -1,-1, 3); + pmanager->AddProcess(new G4MuPairProduction(), -1,-1, 4); + if( particleName == "mu-" ) + pmanager->AddProcess(new G4MuonMinusCaptureAtRest(), 0,-1,-1); + } + else if (particleName == "proton" || + particleName == "alpha" || + particleName == "deuteron" || + particleName == "triton" || + particleName == "He3" || + particleName == "GenericIon" || + (particleType == "nucleus" && charge != 0)) + { + // OBJECT may be dynamically created as either a GenericIon or nucleus + // G4Nucleus exists and therefore has particle type nucleus + // genericIon: + G4MultipleScattering* aMultipleScattering = new G4MultipleScattering(); + G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation(); + pmanager->AddProcess(aMultipleScattering,-1,1,1); + pmanager->AddProcess(ahadronLowEIon,-1,2,2); + // ahadronLowEIon->SetNuclearStoppingOff() ; + // ahadronLowEIon->SetNuclearStoppingPowerModel("ICRU_R49") ; + // ahadronLowEIon->SetNuclearStoppingOn() ; + + //fluorescence switch off for hadrons (for now) PIXE: + ahadronLowEIon->SetFluorescence(false); + } + else if ((!particle->IsShortLived()) && + (charge != 0.0) && + (particle->GetParticleName() != "chargedgeantino")) + { + //all others charged particles except geantino + G4MultipleScattering* aMultipleScattering = new G4MultipleScattering(); + G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation(); + pmanager->AddProcess(aMultipleScattering,-1,1,1); + pmanager->AddProcess(ahadronLowEIon, -1,2,2); + // pmanager->AddProcess(new G4hIonisation(), -1,2,2); + } + + } +} + + +// Optical Processes //////////////////////////////////////////////////////// +#include "G4Scintillation.hh" +#include "G4OpAbsorption.hh" +//#include "G4OpRayleigh.hh" +#include "G4OpBoundaryProcess.hh" + + template void TLBE::ConstructOp() +{ + // default scintillation process + G4Scintillation* theScintProcessDef = new G4Scintillation("Scintillation"); + // theScintProcessDef->DumpPhysicsTable(); + theScintProcessDef->SetTrackSecondariesFirst(true); + theScintProcessDef->SetScintillationYieldFactor(1.0); // + theScintProcessDef->SetScintillationExcitationRatio(0.0); // + theScintProcessDef->SetVerboseLevel(OpVerbLevel); + + // scintillation process for alpha: + G4Scintillation* theScintProcessAlpha = new G4Scintillation("Scintillation"); + // theScintProcessNuc->DumpPhysicsTable(); + theScintProcessAlpha->SetTrackSecondariesFirst(true); + theScintProcessAlpha->SetScintillationYieldFactor(1.1); + theScintProcessAlpha->SetScintillationExcitationRatio(1.0); + theScintProcessAlpha->SetVerboseLevel(OpVerbLevel); + + // scintillation process for heavy nuclei + G4Scintillation* theScintProcessNuc = new G4Scintillation("Scintillation"); + // theScintProcessNuc->DumpPhysicsTable(); + theScintProcessNuc->SetTrackSecondariesFirst(true); + theScintProcessNuc->SetScintillationYieldFactor(0.2); + theScintProcessNuc->SetScintillationExcitationRatio(1.0); + theScintProcessNuc->SetVerboseLevel(OpVerbLevel); + + // optical processes + G4OpAbsorption* theAbsorptionProcess = new G4OpAbsorption(); + // G4OpRayleigh* theRayleighScatteringProcess = new G4OpRayleigh(); + G4OpBoundaryProcess* theBoundaryProcess = new G4OpBoundaryProcess(); + // theAbsorptionProcess->DumpPhysicsTable(); + // theRayleighScatteringProcess->DumpPhysicsTable(); + theAbsorptionProcess->SetVerboseLevel(OpVerbLevel); + // theRayleighScatteringProcess->SetVerboseLevel(OpVerbLevel); + theBoundaryProcess->SetVerboseLevel(OpVerbLevel); + G4OpticalSurfaceModel themodel = unified; + theBoundaryProcess->SetModel(themodel); + + theParticleIterator->reset(); + while( (*theParticleIterator)() ) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + if (theScintProcessDef->IsApplicable(*particle)) { + // if(particle->GetPDGMass() > 5.0*GeV) + if(particle->GetParticleName() == "GenericIon") { + pmanager->AddProcess(theScintProcessNuc); // AtRestDiscrete + pmanager->SetProcessOrderingToLast(theScintProcessNuc,idxAtRest); + pmanager->SetProcessOrderingToLast(theScintProcessNuc,idxPostStep); + } + else if(particle->GetParticleName() == "alpha") { + pmanager->AddProcess(theScintProcessAlpha); + pmanager->SetProcessOrderingToLast(theScintProcessAlpha,idxAtRest); + pmanager->SetProcessOrderingToLast(theScintProcessAlpha,idxPostStep); + } + else { + pmanager->AddProcess(theScintProcessDef); + pmanager->SetProcessOrderingToLast(theScintProcessDef,idxAtRest); + pmanager->SetProcessOrderingToLast(theScintProcessDef,idxPostStep); + } + } + + if (particleName == "opticalphoton") { + pmanager->AddDiscreteProcess(theAbsorptionProcess); + // pmanager->AddDiscreteProcess(theRayleighScatteringProcess); + pmanager->AddDiscreteProcess(theBoundaryProcess); + } + } +} + + +// Hadronic processes //////////////////////////////////////////////////////// + +// Elastic processes: +#include "G4HadronElasticProcess.hh" + +// Inelastic processes: +#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 "G4DeuteronInelasticProcess.hh" +#include "G4TritonInelasticProcess.hh" +#include "G4AlphaInelasticProcess.hh" + +// Low-energy Models: < 20GeV +#include "G4LElastic.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 "G4LEDeuteronInelastic.hh" +#include "G4LETritonInelastic.hh" +#include "G4LEAlphaInelastic.hh" + +// High-energy Models: >20 GeV +#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" + +// Neutron high-precision models: <20 MeV +#include "G4NeutronHPElastic.hh" +#include "G4NeutronHPElasticData.hh" +#include "G4NeutronHPCapture.hh" +#include "G4NeutronHPCaptureData.hh" +#include "G4NeutronHPInelastic.hh" +#include "G4NeutronHPInelasticData.hh" +#include "G4LCapture.hh" + +// Stopping processes +#include "G4PiMinusAbsorptionAtRest.hh" +#include "G4KaonMinusAbsorptionAtRest.hh" +#include "G4AntiProtonAnnihilationAtRest.hh" +#include "G4AntiNeutronAnnihilationAtRest.hh" + + +// ConstructHad() +// Makes discrete physics processes for the hadrons, at present limited +// to those particles with GHEISHA interactions (INTRC > 0). +// The processes are: Elastic scattering and Inelastic scattering. +// F.W.Jones 09-JUL-1998 + template void TLBE::ConstructHad() +{ + G4HadronElasticProcess* theElasticProcess = new G4HadronElasticProcess; + G4LElastic* theElasticModel = new G4LElastic; + theElasticProcess->RegisterMe(theElasticModel); + + theParticleIterator->reset(); + while ((*theParticleIterator)()) + { + G4ParticleDefinition* particle = theParticleIterator->value(); + G4ProcessManager* pmanager = particle->GetProcessManager(); + G4String particleName = particle->GetParticleName(); + + if (particleName == "pi+") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4PionPlusInelasticProcess* theInelasticProcess = + new G4PionPlusInelasticProcess("inelastic"); + G4LEPionPlusInelastic* theLEInelasticModel = + new G4LEPionPlusInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEPionPlusInelastic* theHEInelasticModel = + new G4HEPionPlusInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "pi-") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4PionMinusInelasticProcess* theInelasticProcess = + new G4PionMinusInelasticProcess("inelastic"); + G4LEPionMinusInelastic* theLEInelasticModel = + new G4LEPionMinusInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEPionMinusInelastic* theHEInelasticModel = + new G4HEPionMinusInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + G4String prcNam; + pmanager->AddRestProcess(new G4PiMinusAbsorptionAtRest, ordDefault); + } + + else if (particleName == "kaon+") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4KaonPlusInelasticProcess* theInelasticProcess = + new G4KaonPlusInelasticProcess("inelastic"); + G4LEKaonPlusInelastic* theLEInelasticModel = + new G4LEKaonPlusInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEKaonPlusInelastic* theHEInelasticModel = + new G4HEKaonPlusInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "kaon0S") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4KaonZeroSInelasticProcess* theInelasticProcess = + new G4KaonZeroSInelasticProcess("inelastic"); + G4LEKaonZeroSInelastic* theLEInelasticModel = + new G4LEKaonZeroSInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEKaonZeroInelastic* theHEInelasticModel = + new G4HEKaonZeroInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "kaon0L") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4KaonZeroLInelasticProcess* theInelasticProcess = + new G4KaonZeroLInelasticProcess("inelastic"); + G4LEKaonZeroLInelastic* theLEInelasticModel = + new G4LEKaonZeroLInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEKaonZeroInelastic* theHEInelasticModel = + new G4HEKaonZeroInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "kaon-") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4KaonMinusInelasticProcess* theInelasticProcess = + new G4KaonMinusInelasticProcess("inelastic"); + G4LEKaonMinusInelastic* theLEInelasticModel = + new G4LEKaonMinusInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEKaonMinusInelastic* theHEInelasticModel = + new G4HEKaonMinusInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + pmanager->AddRestProcess(new G4KaonMinusAbsorptionAtRest, ordDefault); + } + + else if (particleName == "proton") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4ProtonInelasticProcess* theInelasticProcess = + new G4ProtonInelasticProcess("inelastic"); + G4LEProtonInelastic* theLEInelasticModel = new G4LEProtonInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEProtonInelastic* theHEInelasticModel = new G4HEProtonInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "anti_proton") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4AntiProtonInelasticProcess* theInelasticProcess = + new G4AntiProtonInelasticProcess("inelastic"); + G4LEAntiProtonInelastic* theLEInelasticModel = + new G4LEAntiProtonInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEAntiProtonInelastic* theHEInelasticModel = + new G4HEAntiProtonInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "neutron") { + // elastic scattering + G4HadronElasticProcess* theNeutronElasticProcess = + new G4HadronElasticProcess; + G4LElastic* theElasticModel1 = new G4LElastic; + G4NeutronHPElastic * theElasticNeutron = new G4NeutronHPElastic; + theNeutronElasticProcess->RegisterMe(theElasticModel1); + theElasticModel1->SetMinEnergy(19*MeV); + theNeutronElasticProcess->RegisterMe(theElasticNeutron); + G4NeutronHPElasticData * theNeutronData = new G4NeutronHPElasticData; + theNeutronElasticProcess->AddDataSet(theNeutronData); + pmanager->AddDiscreteProcess(theNeutronElasticProcess); + // inelastic scattering + G4NeutronInelasticProcess* theInelasticProcess = + new G4NeutronInelasticProcess("inelastic"); + G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic; + theInelasticModel->SetMinEnergy(19*MeV); + theInelasticProcess->RegisterMe(theInelasticModel); + G4NeutronHPInelastic * theLENeutronInelasticModel = + new G4NeutronHPInelastic; + theInelasticProcess->RegisterMe(theLENeutronInelasticModel); + G4NeutronHPInelasticData * theNeutronData1 = + new G4NeutronHPInelasticData; + theInelasticProcess->AddDataSet(theNeutronData1); + pmanager->AddDiscreteProcess(theInelasticProcess); + // capture + G4HadronCaptureProcess* theCaptureProcess = + new G4HadronCaptureProcess; + G4LCapture* theCaptureModel = new G4LCapture; + theCaptureModel->SetMinEnergy(19*MeV); + theCaptureProcess->RegisterMe(theCaptureModel); + G4NeutronHPCapture * theLENeutronCaptureModel = new G4NeutronHPCapture; + theCaptureProcess->RegisterMe(theLENeutronCaptureModel); + G4NeutronHPCaptureData * theNeutronData3 = new G4NeutronHPCaptureData; + theCaptureProcess->AddDataSet(theNeutronData3); + pmanager->AddDiscreteProcess(theCaptureProcess); + // G4ProcessManager* pmanager = G4Neutron::Neutron->GetProcessManager(); + // pmanager->AddProcess(new G4UserSpecialCuts(),-1,-1,1); + } + else if (particleName == "anti_neutron") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4AntiNeutronInelasticProcess* theInelasticProcess = + new G4AntiNeutronInelasticProcess("inelastic"); + G4LEAntiNeutronInelastic* theLEInelasticModel = + new G4LEAntiNeutronInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + G4HEAntiNeutronInelastic* theHEInelasticModel = + new G4HEAntiNeutronInelastic; + theInelasticProcess->RegisterMe(theHEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "deuteron") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4DeuteronInelasticProcess* theInelasticProcess = + new G4DeuteronInelasticProcess("inelastic"); + G4LEDeuteronInelastic* theLEInelasticModel = + new G4LEDeuteronInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "triton") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4TritonInelasticProcess* theInelasticProcess = + new G4TritonInelasticProcess("inelastic"); + G4LETritonInelastic* theLEInelasticModel = + new G4LETritonInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + else if (particleName == "alpha") + { + pmanager->AddDiscreteProcess(theElasticProcess); + G4AlphaInelasticProcess* theInelasticProcess = + new G4AlphaInelasticProcess("inelastic"); + G4LEAlphaInelastic* theLEInelasticModel = + new G4LEAlphaInelastic; + theInelasticProcess->RegisterMe(theLEInelasticModel); + pmanager->AddDiscreteProcess(theInelasticProcess); + } + + } +} + + +// Decays /////////////////////////////////////////////////////////////////// +#include "G4Decay.hh" +#include "G4RadioactiveDecay.hh" +#include "G4IonTable.hh" +#include "G4Ions.hh" + + template void TLBE::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); + } + } + + // Declare radioactive decay to the GenericIon in the IonTable. + const G4IonTable *theIonTable = + G4ParticleTable::GetParticleTable()->GetIonTable(); + G4RadioactiveDecay *theRadioactiveDecay = new G4RadioactiveDecay(); + + for (G4int i=0; iEntries(); i++) + { + G4String particleName = theIonTable->GetParticle(i)->GetParticleName(); + G4String particleType = theIonTable->GetParticle(i)->GetParticleType(); + + if (particleName == "GenericIon") + { + G4ProcessManager* pmanager = + theIonTable->GetParticle(i)->GetProcessManager(); + pmanager->SetVerboseLevel(VerboseLevel); + pmanager ->AddProcess(theRadioactiveDecay); + pmanager ->SetProcessOrdering(theRadioactiveDecay, idxPostStep); + pmanager ->SetProcessOrdering(theRadioactiveDecay, idxAtRest); + } + } +} + +// Cuts ///////////////////////////////////////////////////////////////////// +template void TLBE::SetCuts() +{ + + if (verboseLevel >1) + G4cout << "LBE::SetCuts:"; + + if (verboseLevel>0){ + G4cout << "LBE::SetCuts:"; + G4cout << "CutLength : " + << G4BestUnit(defaultCutValue,"Length") << G4endl; + } + + //special for low energy physics + G4double lowlimit=250*eV; + G4ProductionCutsTable * aPCTable = G4ProductionCutsTable::GetProductionCutsTable(); + aPCTable->SetEnergyRange(lowlimit,100*GeV); + + // 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+"); + + // SetCutValue(cutForProton, "proton"); + // SetCutValue(cutForProton, "anti_proton"); + // SetCutValue(cutForAlpha, "alpha"); + // SetCutValue(cutForGenericIon, "GenericIon"); + + // SetCutValueForOthers(defaultCutValue); + + if (verboseLevel>0) DumpCutValuesTable(); +} + diff --git a/source/geometry/solids/STEPinterface/include/G4BSplineCurveWithKnotsCreator.hh b/hadronic_lists/lists/LBE/include/MaxTimeCuts.hh similarity index 61% rename from source/geometry/solids/STEPinterface/include/G4BSplineCurveWithKnotsCreator.hh rename to hadronic_lists/lists/LBE/include/MaxTimeCuts.hh index 8d7dbf95df..e0c25c4ff9 100644 --- a/source/geometry/solids/STEPinterface/include/G4BSplineCurveWithKnotsCreator.hh +++ b/hadronic_lists/lists/LBE/include/MaxTimeCuts.hh @@ -21,48 +21,52 @@ // ******************************************************************** // // -// $Id: G4BSplineCurveWithKnotsCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// -------------------------------------------------------------- +// GEANT 4 - Underground Dark Matter Detector Advanced Example // -// ---------------------------------------------------------------------- -// Class G4BSplineCurveWithKnotsCreator -// -// Class description: +// For information related to this code contact: Alex Howard +// e-mail: a.s.howard@ic.ac.uk +// -------------------------------------------------------------- +// Comments // +// Underground Advanced +// by A. Howard and H. Araujo +// (27th November 2001) // +// MaxTimeCuts header +// -------------------------------------------------------------- -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4BSPLINECURVEWITHKNOTSCREATOR_HH -#define G4BSPLINECURVEWITHKNOTSCREATOR_HH +#ifndef MaxTimeCuts_h +#define MaxTimeCuts_h 1 -#include "G4GeometryCreator.hh" +#include "G4ios.hh" +#include "globals.hh" +#include "SpecialCuts.hh" -class G4BSplineCurveWithKnotsCreator: private G4GeometryCreator + +class MaxTimeCuts : public SpecialCuts { - public: - - // Constructor & destructor + public: - G4BSplineCurveWithKnotsCreator(); - ~G4BSplineCurveWithKnotsCreator(); + MaxTimeCuts(const G4String& processName ="MaxTimeCuts" ); - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "B_Spline_Curve_With_Knots"; } - static G4BSplineCurveWithKnotsCreator GetInstance(); - - // Members + virtual ~MaxTimeCuts(); + // PostStep GPIL + virtual G4double PostStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition + ); + + private: + + // hide assignment operator as private + MaxTimeCuts(MaxTimeCuts&); + MaxTimeCuts& operator=(const MaxTimeCuts& right); - static G4BSplineCurveWithKnotsCreator csc; }; #endif + diff --git a/examples/extended/geometry/cad/include/CadDetectorConstruction.hh b/hadronic_lists/lists/LBE/include/MinEkineCuts.hh similarity index 62% rename from examples/extended/geometry/cad/include/CadDetectorConstruction.hh rename to hadronic_lists/lists/LBE/include/MinEkineCuts.hh index a72cadd1ce..5911b594e8 100644 --- a/examples/extended/geometry/cad/include/CadDetectorConstruction.hh +++ b/hadronic_lists/lists/LBE/include/MinEkineCuts.hh @@ -20,45 +20,48 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: CadDetectorConstruction.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// +// $Id: MinEkineCuts.hh,v 1.1.1.1 2003/12/01 10:50:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// ------------------------------------------------------------ +// 14 Aug. 1998 H.Kurashige // ------------------------------------------------------------ -#ifndef CadDetectorConstruction_h -#define CadDetectorConstruction_h 1 +#ifndef MinEkineCuts_h +#define MinEkineCuts_h 1 +#include "G4ios.hh" #include "globals.hh" -#include "G4VUserDetectorConstruction.hh" +#include "SpecialCuts.hh" -class CadDetectorMessenger; -class CadDetectorConstruction : public G4VUserDetectorConstruction +class MinEkineCuts : public SpecialCuts { -public: - CadDetectorConstruction(); - ~CadDetectorConstruction(); - -public: - G4VPhysicalVolume* Construct(); - void SelectDetector(G4String val); - -private: - G4double expHall_x; - G4double expHall_y; - G4double expHall_z; - - G4double calBox_x; - G4double calBox_y; - G4double calBox_z; - G4double rotAngle; - G4double calPos; + public: - G4double trackerRadius; - G4double trackerHight; - G4double trackerPos; + MinEkineCuts(const G4String& processName ="MinEkineCuts" ); + + virtual ~MinEkineCuts(); + + // PostStep GPIL + virtual G4double PostStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition + ); + + + private: + + // hide assignment operator as private + MinEkineCuts(MinEkineCuts&); + MinEkineCuts& operator=(const MinEkineCuts& right); - G4int detectorChoice; - CadDetectorMessenger* detectorMessenger; }; #endif diff --git a/hadronic_lists/lists/LBE/include/SpecialCuts.hh b/hadronic_lists/lists/LBE/include/SpecialCuts.hh new file mode 100644 index 0000000000..eba461bc27 --- /dev/null +++ b/hadronic_lists/lists/LBE/include/SpecialCuts.hh @@ -0,0 +1,101 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * 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 +// +// Underground Advanced +// by A. Howard and H. Araujo +// (27th November 2001) +// +// SpecialCuts header +// -------------------------------------------------------------- + +#ifndef SpecialCuts_h +#define SpecialCuts_h 1 + +#include "G4ios.hh" +#include "globals.hh" +#include "G4VProcess.hh" + + +class SpecialCuts : public G4VProcess +{ + public: + + SpecialCuts(const G4String& processName ="SpecialCut" ); + + virtual ~SpecialCuts(); + + virtual G4double PostStepGetPhysicalInteractionLength( + const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition + ); + + virtual G4VParticleChange* PostStepDoIt( + const G4Track& , + const G4Step& + ); + + // no operation in AtRestGPIL + virtual G4double AtRestGetPhysicalInteractionLength( + const G4Track& , + G4ForceCondition* + ){ return -1.0; }; + + // no operation in AtRestDoIt + virtual G4VParticleChange* AtRestDoIt( + const G4Track& , + const G4Step& + ){return NULL;}; + + // no operation in AlongStepGPIL + virtual G4double AlongStepGetPhysicalInteractionLength( + const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection* + ){ return -1.0; }; + + // no operation in AlongStepDoIt + virtual G4VParticleChange* AlongStepDoIt( + const G4Track& , + const G4Step& + ) {return NULL;}; + + private: + + // hide assignment operator as private + SpecialCuts& operator=(const SpecialCuts&){return *this;}; + +}; + +#endif + diff --git a/hadronic_lists/lists/LBE/src/MaxTimeCuts.cc b/hadronic_lists/lists/LBE/src/MaxTimeCuts.cc new file mode 100644 index 0000000000..2711915105 --- /dev/null +++ b/hadronic_lists/lists/LBE/src/MaxTimeCuts.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. * +// ******************************************************************** +// +// +// -------------------------------------------------------------- +// GEANT 4 +// +// For information related to this code contact: Alex Howard +// e-mail: a.s.howard@ic.ac.uk +// -------------------------------------------------------------- +// Comments +// +// by A. Howard and H. Araujo +// (27th November 2001) +// +// MaxTimeCuts program +// -------------------------------------------------------------- + +#include "MaxTimeCuts.hh" + +#include "G4Step.hh" +#include "G4UserLimits.hh" +#include "G4VParticleChange.hh" +#include "G4EnergyLossTables.hh" + + +MaxTimeCuts::MaxTimeCuts(const G4String& aName) + : SpecialCuts(aName) +{ + if (verboseLevel>1) { + G4cout << GetProcessName() << " is created "<< G4endl; + } + SetProcessType(fUserDefined); +} + +MaxTimeCuts::~MaxTimeCuts() +{} + +MaxTimeCuts::MaxTimeCuts(MaxTimeCuts&) + : SpecialCuts() +{} + + +G4double MaxTimeCuts::PostStepGetPhysicalInteractionLength( + const G4Track& aTrack, + G4double , + G4ForceCondition* condition + ) +{ + // condition is set to "Not Forced" + *condition = NotForced; + + G4double proposedStep = DBL_MAX; + // get the pointer to UserLimits + G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits(); + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + + // can apply cuts for specific particles - use if(particleDef): + // G4ParticleDefinition* aParticleDef = aTrack.GetDefinition(); + + // G4cout << " Time: " << pUserLimits->GetUserMaxTime(aTrack) << G4endl; + + if (pUserLimits) { + G4double temp = DBL_MAX; + //max time limit + G4double dTime= (pUserLimits->GetUserMaxTime(aTrack) - aTrack.GetGlobalTime()); + if (dTime < 0. ) { + proposedStep = 0.; + } else { + G4double beta = (aParticle->GetTotalMomentum())/(aParticle->GetTotalEnergy()); + temp = beta*c_light*dTime; + if (proposedStep > temp) proposedStep = temp; + } + + } + return proposedStep; +} diff --git a/hadronic_lists/lists/LBE/src/MinEkineCuts.cc b/hadronic_lists/lists/LBE/src/MinEkineCuts.cc new file mode 100644 index 0000000000..171edae9e7 --- /dev/null +++ b/hadronic_lists/lists/LBE/src/MinEkineCuts.cc @@ -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: MinEkineCuts.cc,v 1.2 2003/12/04 16:25:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// -------------------------------------------------------------- +// GEANT 4 class implementation file +// -------------------------------------------------------------- +// 15 April 1998 M.Maire +// -------------------------------------------------------------- + +#include "MinEkineCuts.hh" + +#include "G4Step.hh" +#include "G4UserLimits.hh" +#include "G4VParticleChange.hh" +#include "G4EnergyLossTables.hh" + +MinEkineCuts::MinEkineCuts(const G4String& aName) + : SpecialCuts(aName) +{ + if (verboseLevel>1) { + G4cout << GetProcessName() << " is created "<< G4endl; + } + SetProcessType(fUserDefined); +} + +MinEkineCuts::~MinEkineCuts() +{} + +MinEkineCuts::MinEkineCuts(MinEkineCuts&) + : SpecialCuts() +{} + + +G4double MinEkineCuts::PostStepGetPhysicalInteractionLength( + const G4Track& aTrack, + G4double , + G4ForceCondition* condition + ) +{ + // condition is set to "Not Forced" + *condition = NotForced; + + G4double proposedStep = DBL_MAX; + // get the pointer to UserLimits + G4UserLimits* pUserLimits = aTrack.GetVolume()->GetLogicalVolume()->GetUserLimits(); + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + G4ParticleDefinition* aParticleDef = aTrack.GetDefinition(); + + if (pUserLimits && aParticleDef->GetPDGCharge() != 0.0) { + //min kinetic energy + G4double temp = DBL_MAX; + G4double eKine = aParticle->GetKineticEnergy(); + G4Material* aMaterial = aTrack.GetMaterial(); + G4double eMin = pUserLimits->GetUserMinEkine(aTrack); + + G4double rangeNow = DBL_MAX; + + rangeNow = G4EnergyLossTables::GetRange(aParticleDef,eKine,aMaterial); + + if (eKine < eMin ) { + proposedStep = 0.; + } else { + // charged particles only + G4double rangeMin = G4EnergyLossTables::GetRange(aParticleDef,eMin,aMaterial); + temp = rangeNow - rangeMin; + if (proposedStep > temp) proposedStep = temp; + } + } + return proposedStep; +} diff --git a/source/geometry/solids/STEPinterface/src/G4Axis1PlacementCreator.cc b/hadronic_lists/lists/LBE/src/SpecialCuts.cc similarity index 54% rename from source/geometry/solids/STEPinterface/src/G4Axis1PlacementCreator.cc rename to hadronic_lists/lists/LBE/src/SpecialCuts.cc index 940ef37b69..3b4d31b8d3 100644 --- a/source/geometry/solids/STEPinterface/src/G4Axis1PlacementCreator.cc +++ b/hadronic_lists/lists/LBE/src/SpecialCuts.cc @@ -21,40 +21,58 @@ // ******************************************************************** // // -// $Id: G4Axis1PlacementCreator.cc,v 1.5 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// -------------------------------------------------------------- +// GEANT 4 // -// ---------------------------------------------------------------------- -// Class G4Axis1PlacementCreator +// For information related to this code contact: Alex Howard +// e-mail: a.s.howard@ic.ac.uk +// -------------------------------------------------------------- +// Comments // -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. +// by A. Howard and H. Araujo +// (27th November 2001) // -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- +// SpecialCuts program +// -------------------------------------------------------------- -#include "G4Axis1PlacementCreator.hh" -#include "G4GeometryTable.hh" +#include "SpecialCuts.hh" +#include "G4VParticleChange.hh" +#include "G4Track.hh" +#include "G4Step.hh" -G4Axis1PlacementCreator G4Axis1PlacementCreator::csc; - -G4Axis1PlacementCreator::G4Axis1PlacementCreator() +SpecialCuts::SpecialCuts(const G4String& aName) + : G4VProcess(aName) { - G4GeometryTable::RegisterObject(this); + if (verboseLevel>1) { + G4cout << GetProcessName() << " is created "<< G4endl; + } } -G4Axis1PlacementCreator::~G4Axis1PlacementCreator() {} +SpecialCuts::~SpecialCuts() +{ +} -G4Axis1PlacementCreator G4Axis1PlacementCreator::GetInstance() +G4VParticleChange* SpecialCuts::PostStepDoIt( + const G4Track& aTrack, + const G4Step& + ) +// +// Stop the current particle, if requested by G4UserLimits +// { - return csc; + aParticleChange.Initialize(aTrack); + aParticleChange.SetEnergyChange(0.) ; + aParticleChange.SetLocalEnergyDeposit (aTrack.GetKineticEnergy()) ; + aParticleChange.SetStatusChange(fStopButAlive); + return &aParticleChange; } -void G4Axis1PlacementCreator::CreateG4Geometry(STEPentity&) +G4double SpecialCuts::PostStepGetPhysicalInteractionLength( + const G4Track&, + G4double, + G4ForceCondition* + ) { + return DBL_MAX; } -void G4Axis1PlacementCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/hadronic_lists/lists/LHEP/GNUmakefile b/hadronic_lists/lists/LHEP/GNUmakefile new file mode 100644 index 0000000000..3ccede7cb0 --- /dev/null +++ b/hadronic_lists/lists/LHEP/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP +include ../common.gmk diff --git a/examples/advanced/composite_calorimeter/include/HadronPhysicsLHEP.hh b/hadronic_lists/lists/LHEP/include/HadronPhysicsLHEP.hh similarity index 100% rename from examples/advanced/composite_calorimeter/include/HadronPhysicsLHEP.hh rename to hadronic_lists/lists/LHEP/include/HadronPhysicsLHEP.hh diff --git a/examples/advanced/composite_calorimeter/include/LHEP.hh b/hadronic_lists/lists/LHEP/include/LHEP.hh similarity index 84% rename from examples/advanced/composite_calorimeter/include/LHEP.hh rename to hadronic_lists/lists/LHEP/include/LHEP.hh index 0405ffa302..6976dca183 100644 --- a/examples/advanced/composite_calorimeter/include/LHEP.hh +++ b/hadronic_lists/lists/LHEP/include/LHEP.hh @@ -20,25 +20,29 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef LHEP_h -#define LHEP_h 1 +#ifndef TLHEP_h +#define TLHEP_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" +#include "CompileTimeConstraints.hh" -#define kNuCut 5*m - -class LHEP: public G4VModularPhysicsList +template +class TLHEP: public T { public: - LHEP(); - virtual ~LHEP(); + TLHEP(); + virtual ~TLHEP(); public: // SetCuts() virtual void SetCuts(); +private: + enum {ok = CompileTimeConstraints::IsA::ok }; }; +#include "LHEP.icc" +typedef TLHEP LHEP; // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/LHEP.cc b/hadronic_lists/lists/LHEP/include/LHEP.icc similarity index 87% rename from examples/advanced/composite_calorimeter/src/LHEP.cc rename to hadronic_lists/lists/LHEP/include/LHEP.icc index f8cc5fb890..07e6cae514 100644 --- a/examples/advanced/composite_calorimeter/src/LHEP.cc +++ b/hadronic_lists/lists/LHEP/include/LHEP.icc @@ -20,7 +20,6 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "LHEP.hh" #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -38,16 +37,16 @@ #include "GeneralPhysics.hh" #include "EMPhysics.hh" #include "MuonPhysics.hh" -#include "HadronPhysicsLHEP.hh" #include "IonPhysics.hh" #include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP.hh" -LHEP::LHEP(): G4VModularPhysicsList() +template TLHEP::TLHEP(): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; - G4DataQuestionaire(photon); - G4cout << "You are using the simulation engine: LHEP 3.3"< TLHEP::~TLHEP() { } -void LHEP::SetCuts() +template void TLHEP::SetCuts() { if (verboseLevel >1){ G4cout << "LHEP::SetCuts:"; @@ -84,13 +83,6 @@ void LHEP::SetCuts() SetCutsWithDefault(); - SetCutValue(kNuCut,"nu_e"); - SetCutValue(kNuCut,"nu_tau"); - SetCutValue(kNuCut,"nu_mu"); - SetCutValue(kNuCut,"anti_nu_e"); - SetCutValue(kNuCut,"anti_nu_tau"); - SetCutValue(kNuCut,"anti_nu_mu"); - G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/examples/advanced/composite_calorimeter/src/HadronPhysicsLHEP.cc b/hadronic_lists/lists/LHEP/src/HadronPhysicsLHEP.cc similarity index 100% rename from examples/advanced/composite_calorimeter/src/HadronPhysicsLHEP.cc rename to hadronic_lists/lists/LHEP/src/HadronPhysicsLHEP.cc diff --git a/hadronic_lists/lists/LHEP_BERT/GNUmakefile b/hadronic_lists/lists/LHEP_BERT/GNUmakefile new file mode 100644 index 0000000000..3a688d83ae --- /dev/null +++ b/hadronic_lists/lists/LHEP_BERT/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_BERT +include ../common.gmk diff --git a/hadronic_lists/lists/LHEP_BERT/include/HadronPhysicsLHEP_BERT.hh b/hadronic_lists/lists/LHEP_BERT/include/HadronPhysicsLHEP_BERT.hh new file mode 100644 index 0000000000..cffe91f8e5 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BERT/include/HadronPhysicsLHEP_BERT.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsLHEP_BERT_h +#define HadronPhysicsLHEP_BERT_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LHEPPiKBuilder.hh" +#include "G4BertiniPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LHEPProtonBuilder.hh" +#include "G4BertiniProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LHEPNeutronBuilder.hh" +#include "G4BertiniNeutronBuilder.hh" + +class HadronPhysicsLHEP_BERT : public G4VPhysicsConstructor +{ + public: + HadronPhysicsLHEP_BERT(const G4String& name ="hadron"); + virtual ~HadronPhysicsLHEP_BERT(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LHEPNeutronBuilder theLHEPNeutron; + G4BertiniNeutronBuilder theBertiniNeutron; + + G4PiKBuilder thePiK; + G4LHEPPiKBuilder theLHEPPiK; + G4BertiniPiKBuilder theBertiniPiK; + + G4ProtonBuilder thePro; + G4LHEPProtonBuilder theLHEPPro; + G4BertiniProtonBuilder theBertiniPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/composite_calorimeter/include/EMModelPhysics.hh b/hadronic_lists/lists/LHEP_BERT/include/LHEP_BERT.hh similarity index 77% rename from examples/advanced/composite_calorimeter/include/EMModelPhysics.hh rename to hadronic_lists/lists/LHEP_BERT/include/LHEP_BERT.hh index 80a17bdaa4..eb0db05b7a 100644 --- a/examples/advanced/composite_calorimeter/include/EMModelPhysics.hh +++ b/hadronic_lists/lists/LHEP_BERT/include/LHEP_BERT.hh @@ -20,28 +20,29 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef EMModelPhysics_h -#define EMModelPhysics_h 1 +#ifndef TLHEP_BERT_h +#define TLHEP_BERT_h 1 +#include "G4VModularPhysicsList.hh" #include "globals.hh" -#include "G4ios.hh" -#include "G4VPhysicsConstructor.hh" -#include "G4EMModelBuilder.hh" +#include "CompileTimeConstraints.hh" - -class EMModelPhysics : public G4VPhysicsConstructor +template +class TLHEP_BERT: public T { - public: - EMModelPhysics(const G4String& name ="EM Model approach"); - virtual ~EMModelPhysics(); +public: + TLHEP_BERT(); + virtual ~TLHEP_BERT(); + +public: + // SetCuts() + virtual void SetCuts(); +private: + enum {ok = CompileTimeConstraints::IsA::ok }; - public: - virtual void ConstructParticle(); - virtual void ConstructProcess(); - - private: - G4EMModelBuilder theEMModelPhysics; }; +#include "LHEP_BERT.icc" +typedef TLHEP_BERT LHEP_BERT; // 2002 by J.P. Wellisch @@ -49,5 +50,3 @@ class EMModelPhysics : public G4VPhysicsConstructor - - diff --git a/hadronic_lists/lists/LHEP_BERT/include/LHEP_BERT.icc b/hadronic_lists/lists/LHEP_BERT/include/LHEP_BERT.icc new file mode 100644 index 0000000000..d45e9c70d9 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BERT/include/LHEP_BERT.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" + +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_BERT.hh" + +template TLHEP_BERT::TLHEP_BERT(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: LHEP_BERT 1.0"< TLHEP_BERT::~TLHEP_BERT() +{ +} + +template void TLHEP_BERT::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_BERT::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4LHEPProtonBuilder.cc b/hadronic_lists/lists/LHEP_BERT/src/HadronPhysicsLHEP_BERT.cc similarity index 56% rename from examples/advanced/composite_calorimeter/src/G4LHEPProtonBuilder.cc rename to hadronic_lists/lists/LHEP_BERT/src/HadronPhysicsLHEP_BERT.cc index 421070c1f0..cec2298ed5 100644 --- a/examples/advanced/composite_calorimeter/src/G4LHEPProtonBuilder.cc +++ b/hadronic_lists/lists/LHEP_BERT/src/HadronPhysicsLHEP_BERT.cc @@ -20,37 +20,60 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "G4LHEPProtonBuilder.hh" +#include "HadronPhysicsLHEP_BERT.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsLHEP_BERT::HadronPhysicsLHEP_BERT(const G4String& name) + : G4VPhysicsConstructor(name) +{ + theNeutrons.RegisterMe(&theLHEPNeutron); + theNeutrons.RegisterMe(&theBertiniNeutron); + theLHEPNeutron.SetMinInelasticEnergy(2.8*GeV); + theBertiniNeutron.SetMaxEnergy(3.2*GeV); + + thePro.RegisterMe(&theLHEPPro); + thePro.RegisterMe(&theBertiniPro); + theLHEPPro.SetMinEnergy(2.8*GeV); + theBertiniPro.SetMaxEnergy(3.2*GeV); + + thePiK.RegisterMe(&theLHEPPiK); + thePiK.RegisterMe(&theBertiniPiK); + theLHEPPiK.SetMinPionEnergy(2.8*GeV); + theBertiniPiK.SetMaxEnergy(3.2*GeV); + +} + +HadronPhysicsLHEP_BERT::~HadronPhysicsLHEP_BERT() {} + +void HadronPhysicsLHEP_BERT::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + #include "G4ProcessManager.hh" - -G4LHEPProtonBuilder:: -G4LHEPProtonBuilder() +void HadronPhysicsLHEP_BERT::ConstructProcess() { - theMin = 0; + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); } - -G4LHEPProtonBuilder:: -~G4LHEPProtonBuilder() {} - -void G4LHEPProtonBuilder:: -Build(G4HadronElasticProcess & aP) -{ - theElasticModel = new G4LElastic(); - aP.RegisterMe(theElasticModel); -} - -void G4LHEPProtonBuilder:: -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); -} - // 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_BERT_HP/GNUmakefile b/hadronic_lists/lists/LHEP_BERT_HP/GNUmakefile new file mode 100644 index 0000000000..d33be4e418 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BERT_HP/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_BERT_HP +include ../common.gmk diff --git a/hadronic_lists/lists/LHEP_BERT_HP/include/HadronPhysicsLHEP_BERT_HP.hh b/hadronic_lists/lists/LHEP_BERT_HP/include/HadronPhysicsLHEP_BERT_HP.hh new file mode 100644 index 0000000000..86323c5066 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BERT_HP/include/HadronPhysicsLHEP_BERT_HP.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsLHEP_BIC_h +#define HadronPhysicsLHEP_BIC_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LHEPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LHEPProtonBuilder.hh" +#include "G4BertiniProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LHEPNeutronBuilder.hh" +#include "G4BertiniNeutronBuilder.hh" +#include "G4NeutronHPBuilder.hh" + +class HadronPhysicsLHEP_BERT_HP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsLHEP_BERT_HP(const G4String& name ="hadron"); + virtual ~HadronPhysicsLHEP_BERT_HP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LHEPNeutronBuilder theLHEPNeutron; + G4BertiniNeutronBuilder theBertiniNeutron; + G4NeutronHPBuilder theHPNeutron; + + G4PiKBuilder thePiK; + G4LHEPPiKBuilder theLHEPPiK; + + G4ProtonBuilder thePro; + G4LHEPProtonBuilder theLHEPPro; + G4BertiniProtonBuilder theBertiniPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/LHEP_BERT_HP/include/LHEP_BERT_HP.hh b/hadronic_lists/lists/LHEP_BERT_HP/include/LHEP_BERT_HP.hh new file mode 100644 index 0000000000..bf06dee2a7 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BERT_HP/include/LHEP_BERT_HP.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TLHEP_BERT_HP_h +#define TLHEP_BERT_HP_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_BERT_HP: public T +{ +public: + TLHEP_BERT_HP(); + virtual ~TLHEP_BERT_HP(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "LHEP_BERT_HP.icc" +typedef TLHEP_BERT_HP LHEP_BERT_HP; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/LHEP_BERT_HP/include/LHEP_BERT_HP.icc b/hadronic_lists/lists/LHEP_BERT_HP/include/LHEP_BERT_HP.icc new file mode 100644 index 0000000000..a423057814 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BERT_HP/include/LHEP_BERT_HP.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" + +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_BERT_HP.hh" + +template TLHEP_BERT_HP::TLHEP_BERT_HP(): T() +{ + + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: LHEP_BERT_HP 1.0"< TLHEP_BERT_HP::~TLHEP_BERT_HP() +{ +} + +template void TLHEP_BERT_HP::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_BIC::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_BERT_HP/src/HadronPhysicsLHEP_BERT_HP.cc b/hadronic_lists/lists/LHEP_BERT_HP/src/HadronPhysicsLHEP_BERT_HP.cc new file mode 100644 index 0000000000..3c98bc007c --- /dev/null +++ b/hadronic_lists/lists/LHEP_BERT_HP/src/HadronPhysicsLHEP_BERT_HP.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. * +// ******************************************************************** +// +#include "HadronPhysicsLHEP_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" + +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(2.8*GeV); + theBertiniNeutron.SetMaxEnergy(3.2*GeV); + theBertiniNeutron.SetMinEnergy(19.9*MeV); + + thePro.RegisterMe(&theLHEPPro); + thePro.RegisterMe(&theBertiniPro); + theLHEPPro.SetMinEnergy(2.8*GeV); + theBertiniPro.SetMaxEnergy(3.2*GeV); + + thePiK.RegisterMe(&theLHEPPiK); + +} + +HadronPhysicsLHEP_BERT_HP::~HadronPhysicsLHEP_BERT_HP() {} + +void HadronPhysicsLHEP_BERT_HP::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsLHEP_BERT_HP::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_BIC/GNUmakefile b/hadronic_lists/lists/LHEP_BIC/GNUmakefile new file mode 100644 index 0000000000..fc437bda15 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_BIC +include ../common.gmk diff --git a/hadronic_lists/lists/LHEP_BIC/include/HadronPhysicsLHEP_BIC.hh b/hadronic_lists/lists/LHEP_BIC/include/HadronPhysicsLHEP_BIC.hh new file mode 100644 index 0000000000..8cc8acf182 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC/include/HadronPhysicsLHEP_BIC.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsLHEP_BIC_h +#define HadronPhysicsLHEP_BIC_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LHEPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LHEPProtonBuilder.hh" +#include "G4BinaryProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LHEPNeutronBuilder.hh" +#include "G4BinaryNeutronBuilder.hh" + +class HadronPhysicsLHEP_BIC : public G4VPhysicsConstructor +{ + public: + HadronPhysicsLHEP_BIC(const G4String& name ="hadron"); + virtual ~HadronPhysicsLHEP_BIC(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LHEPNeutronBuilder theLHEPNeutron; + G4BinaryNeutronBuilder theBinaryNeutron; + + G4PiKBuilder thePiK; + G4LHEPPiKBuilder theLHEPPiK; + + G4ProtonBuilder thePro; + G4LHEPProtonBuilder theLHEPPro; + G4BinaryProtonBuilder theBinaryPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EMModelPhysics.hh b/hadronic_lists/lists/LHEP_BIC/include/LHEP_BIC.hh similarity index 77% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EMModelPhysics.hh rename to hadronic_lists/lists/LHEP_BIC/include/LHEP_BIC.hh index 80a17bdaa4..eee4658c9f 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EMModelPhysics.hh +++ b/hadronic_lists/lists/LHEP_BIC/include/LHEP_BIC.hh @@ -20,28 +20,29 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef EMModelPhysics_h -#define EMModelPhysics_h 1 +#ifndef TLHEP_BIC_h +#define TLHEP_BIC_h 1 +#include "G4VModularPhysicsList.hh" #include "globals.hh" -#include "G4ios.hh" -#include "G4VPhysicsConstructor.hh" -#include "G4EMModelBuilder.hh" +#include "CompileTimeConstraints.hh" - -class EMModelPhysics : public G4VPhysicsConstructor +template +class TLHEP_BIC: public T { - public: - EMModelPhysics(const G4String& name ="EM Model approach"); - virtual ~EMModelPhysics(); +public: + TLHEP_BIC(); + virtual ~TLHEP_BIC(); + +public: + // SetCuts() + virtual void SetCuts(); - public: - virtual void ConstructParticle(); - virtual void ConstructProcess(); - - private: - G4EMModelBuilder theEMModelPhysics; +private: + enum {ok = CompileTimeConstraints::IsA::ok }; }; +#include "LHEP_BIC.icc" +typedef TLHEP_BIC LHEP_BIC; // 2002 by J.P. Wellisch @@ -49,5 +50,3 @@ class EMModelPhysics : public G4VPhysicsConstructor - - diff --git a/hadronic_lists/lists/LHEP_BIC/include/LHEP_BIC.icc b/hadronic_lists/lists/LHEP_BIC/include/LHEP_BIC.icc new file mode 100644 index 0000000000..2fc7762efd --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC/include/LHEP_BIC.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" + +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_BIC.hh" + +template TLHEP_BIC::TLHEP_BIC(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: LHEP_BIC 1.0"< TLHEP_BIC::~TLHEP_BIC() +{ +} + +template void TLHEP_BIC::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_BIC::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_BIC/src/HadronPhysicsLHEP_BIC.cc b/hadronic_lists/lists/LHEP_BIC/src/HadronPhysicsLHEP_BIC.cc new file mode 100644 index 0000000000..40f10d5e17 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC/src/HadronPhysicsLHEP_BIC.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 "HadronPhysicsLHEP_BIC.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsLHEP_BIC::HadronPhysicsLHEP_BIC(const G4String& name) + : G4VPhysicsConstructor(name) +{ + theNeutrons.RegisterMe(&theLHEPNeutron); + theNeutrons.RegisterMe(&theBinaryNeutron); + theLHEPNeutron.SetMinInelasticEnergy(2.8*GeV); + theBinaryNeutron.SetMaxEnergy(3.2*GeV); + + thePro.RegisterMe(&theLHEPPro); + thePro.RegisterMe(&theBinaryPro); + theLHEPPro.SetMinEnergy(2.8*GeV); + theBinaryPro.SetMaxEnergy(3.2*GeV); + + thePiK.RegisterMe(&theLHEPPiK); + +} + +HadronPhysicsLHEP_BIC::~HadronPhysicsLHEP_BIC() {} + +void HadronPhysicsLHEP_BIC::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsLHEP_BIC::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_BIC_HP/GNUmakefile b/hadronic_lists/lists/LHEP_BIC_HP/GNUmakefile new file mode 100644 index 0000000000..5354389a81 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC_HP/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_BIC_HP +include ../common.gmk diff --git a/hadronic_lists/lists/LHEP_BIC_HP/include/HadronPhysicsLHEP_BIC_HP.hh b/hadronic_lists/lists/LHEP_BIC_HP/include/HadronPhysicsLHEP_BIC_HP.hh new file mode 100644 index 0000000000..944681a57f --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC_HP/include/HadronPhysicsLHEP_BIC_HP.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsLHEP_BIC_h +#define HadronPhysicsLHEP_BIC_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LHEPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LHEPProtonBuilder.hh" +#include "G4BinaryProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LHEPNeutronBuilder.hh" +#include "G4BinaryNeutronBuilder.hh" +#include "G4NeutronHPBuilder.hh" + +class HadronPhysicsLHEP_BIC_HP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsLHEP_BIC_HP(const G4String& name ="hadron"); + virtual ~HadronPhysicsLHEP_BIC_HP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LHEPNeutronBuilder theLHEPNeutron; + G4BinaryNeutronBuilder theBinaryNeutron; + G4NeutronHPBuilder theHPNeutron; + + G4PiKBuilder thePiK; + G4LHEPPiKBuilder theLHEPPiK; + + G4ProtonBuilder thePro; + G4LHEPProtonBuilder theLHEPPro; + G4BinaryProtonBuilder theBinaryPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/LHEP_BIC_HP/include/LHEP_BIC_HP.hh b/hadronic_lists/lists/LHEP_BIC_HP/include/LHEP_BIC_HP.hh new file mode 100644 index 0000000000..8d10274796 --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC_HP/include/LHEP_BIC_HP.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TLHEP_BIC_HP_h +#define TLHEP_BIC_HP_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_BIC_HP: public T +{ +public: + TLHEP_BIC_HP(); + virtual ~TLHEP_BIC_HP(); + +public: + // SetCuts() + virtual void SetCuts(); +private: + enum {ok = CompileTimeConstraints::IsA::ok }; + +}; +#include "LHEP_BIC_HP.icc" +typedef TLHEP_BIC_HP LHEP_BIC_HP; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/LHEP_BIC_HP/include/LHEP_BIC_HP.icc b/hadronic_lists/lists/LHEP_BIC_HP/include/LHEP_BIC_HP.icc new file mode 100644 index 0000000000..8d4307921f --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC_HP/include/LHEP_BIC_HP.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" + +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_BIC_HP.hh" + +template TLHEP_BIC_HP::TLHEP_BIC_HP(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: LHEP_BIC_HP 1.0"< TLHEP_BIC_HP::~TLHEP_BIC_HP() +{ +} + +template void TLHEP_BIC_HP::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_BIC::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_BIC_HP/src/HadronPhysicsLHEP_BIC_HP.cc b/hadronic_lists/lists/LHEP_BIC_HP/src/HadronPhysicsLHEP_BIC_HP.cc new file mode 100644 index 0000000000..61f49ce5fc --- /dev/null +++ b/hadronic_lists/lists/LHEP_BIC_HP/src/HadronPhysicsLHEP_BIC_HP.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. * +// ******************************************************************** +// +#include "HadronPhysicsLHEP_BIC_HP.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +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(2.8*GeV); + theBinaryNeutron.SetMaxEnergy(3.2*GeV); + theBinaryNeutron.SetMinEnergy(19.9*MeV); + + thePro.RegisterMe(&theLHEPPro); + thePro.RegisterMe(&theBinaryPro); + theLHEPPro.SetMinEnergy(2.8*GeV); + theBinaryPro.SetMaxEnergy(3.2*GeV); + + thePiK.RegisterMe(&theLHEPPiK); + +} + +HadronPhysicsLHEP_BIC_HP::~HadronPhysicsLHEP_BIC_HP() {} + +void HadronPhysicsLHEP_BIC_HP::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsLHEP_BIC_HP::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_GN/GNUmakefile b/hadronic_lists/lists/LHEP_GN/GNUmakefile new file mode 100644 index 0000000000..56c82921f9 --- /dev/null +++ b/hadronic_lists/lists/LHEP_GN/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_GN +include ../common.gmk diff --git a/hadronic_lists/lists/LHEP_GN/include/HadronPhysicsLHEP_GN.hh b/hadronic_lists/lists/LHEP_GN/include/HadronPhysicsLHEP_GN.hh new file mode 100644 index 0000000000..80d9adc381 --- /dev/null +++ b/hadronic_lists/lists/LHEP_GN/include/HadronPhysicsLHEP_GN.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 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/hadronic_lists/lists/LHEP_GN/include/LHEP_GN.hh b/hadronic_lists/lists/LHEP_GN/include/LHEP_GN.hh new file mode 100644 index 0000000000..a34ffd51c8 --- /dev/null +++ b/hadronic_lists/lists/LHEP_GN/include/LHEP_GN.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TLHEP_GN_h +#define TLHEP_GN_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_GN: public T +{ +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 + + + diff --git a/hadronic_lists/lists/LHEP_GN/include/LHEP_GN.icc b/hadronic_lists/lists/LHEP_GN/include/LHEP_GN.icc new file mode 100644 index 0000000000..befbd5bf51 --- /dev/null +++ b/hadronic_lists/lists/LHEP_GN/include/LHEP_GN.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EM_GNPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_GN.hh" + +template TLHEP_GN::TLHEP_GN(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: LHEP_GN 2.4"< TLHEP_GN::~TLHEP_GN() +{ +} + +template void TLHEP_GN::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_GN::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/EMPhysics.cc b/hadronic_lists/lists/LHEP_GN/src/HadronPhysicsLHEP_GN.cc similarity index 64% rename from examples/advanced/composite_calorimeter/src/EMPhysics.cc rename to hadronic_lists/lists/LHEP_GN/src/HadronPhysicsLHEP_GN.cc index a3a1d5dc4b..a3358bc4fe 100644 --- a/examples/advanced/composite_calorimeter/src/EMPhysics.cc +++ b/hadronic_lists/lists/LHEP_GN/src/HadronPhysicsLHEP_GN.cc @@ -20,42 +20,49 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "EMPhysics.hh" +#include "HadronPhysicsLHEP_GN.hh" + #include "globals.hh" #include "G4ios.hh" #include -#include "G4ProcessManager.hh" + +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" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4NeutrinoE.hh" -#include "G4AntiNeutrinoE.hh" +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" -EMPhysics:: -EMPhysics(const G4String& name) : G4VPhysicsConstructor(name) {} - -EMPhysics:: -~EMPhysics() {} - -void EMPhysics:: -ConstructParticle() +void HadronPhysicsLHEP_GN::ConstructParticle() { - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); } -void EMPhysics:: -ConstructProcess() +#include "G4ProcessManager.hh" +void HadronPhysicsLHEP_GN::ConstructProcess() { - theEMPhysics.Build(); + theNeutrons.Build(); + thePiK.Build(); + theProton.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); } - - - // 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_HP/GNUmakefile b/hadronic_lists/lists/LHEP_HP/GNUmakefile new file mode 100644 index 0000000000..75e9ce70e6 --- /dev/null +++ b/hadronic_lists/lists/LHEP_HP/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_HP +include ../common.gmk diff --git a/hadronic_lists/lists/LHEP_HP/include/HadronPhysicsLHEP_HP.hh b/hadronic_lists/lists/LHEP_HP/include/HadronPhysicsLHEP_HP.hh new file mode 100644 index 0000000000..0f9c454a06 --- /dev/null +++ b/hadronic_lists/lists/LHEP_HP/include/HadronPhysicsLHEP_HP.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsLHEP_HP_h +#define HadronPhysicsLHEP_HP_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 +{ + public: + HadronPhysicsLHEP_HP(const G4String& name ="hadron"); + virtual ~HadronPhysicsLHEP_HP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LHEPNeutronBuilder theLHEPNeutron; + G4NeutronHPBuilder theHPNeutron; + + G4LHEPPiKBuilder theLHEPPiK; + G4PiKBuilder thePiK; + G4LHEPProtonBuilder theLHEPProton; + G4ProtonBuilder theProton; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/LHEP_HP/include/LHEP_HP.hh b/hadronic_lists/lists/LHEP_HP/include/LHEP_HP.hh new file mode 100644 index 0000000000..56f4bacb52 --- /dev/null +++ b/hadronic_lists/lists/LHEP_HP/include/LHEP_HP.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TLHEP_HP_h +#define TLHEP_HP_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_HP: public T +{ +public: + TLHEP_HP(); + virtual ~TLHEP_HP(); + +public: + // 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/hadronic_lists/lists/LHEP_HP/include/LHEP_HP.icc b/hadronic_lists/lists/LHEP_HP/include/LHEP_HP.icc new file mode 100644 index 0000000000..84e62a5462 --- /dev/null +++ b/hadronic_lists/lists/LHEP_HP/include/LHEP_HP.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EM_GNPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_HP.hh" + +template TLHEP_HP::TLHEP_HP(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + G4DataQuestionaire it(photon, neutron); + G4cout << "You are using the simulation engine: LHEP_HP 1.6"< TLHEP_HP::~TLHEP_HP() +{ +} + +template void TLHEP_HP::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_HP::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/EMModelPhysics.cc b/hadronic_lists/lists/LHEP_HP/src/HadronPhysicsLHEP_HP.cc similarity index 64% rename from examples/advanced/composite_calorimeter/src/EMModelPhysics.cc rename to hadronic_lists/lists/LHEP_HP/src/HadronPhysicsLHEP_HP.cc index 3a223cdb34..7f4e29cfdc 100644 --- a/examples/advanced/composite_calorimeter/src/EMModelPhysics.cc +++ b/hadronic_lists/lists/LHEP_HP/src/HadronPhysicsLHEP_HP.cc @@ -20,42 +20,52 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "EMModelPhysics.hh" +#include "HadronPhysicsLHEP_HP.hh" + #include "globals.hh" #include "G4ios.hh" #include -#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 "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" +#include "G4ProcessManager.hh" +HadronPhysicsLHEP_HP +::HadronPhysicsLHEP_HP(const G4String& name) : G4VPhysicsConstructor(name) +{ + theLHEPNeutron.SetMinEnergy(19.9*MeV); + theNeutrons.RegisterMe(&theLHEPNeutron); + theNeutrons.RegisterMe(&theHPNeutron); + thePiK.RegisterMe(&theLHEPPiK); + theProton.RegisterMe(&theLHEPProton); +} -EMModelPhysics:: -EMModelPhysics(const G4String& name) : G4VPhysicsConstructor(name) {} +HadronPhysicsLHEP_HP:: +~HadronPhysicsLHEP_HP() {} -EMModelPhysics:: -~EMModelPhysics() {} - -void EMModelPhysics:: +void HadronPhysicsLHEP_HP:: ConstructParticle() { - G4Gamma::GammaDefinition(); - G4Electron::ElectronDefinition(); - G4Positron::PositronDefinition(); - G4NeutrinoE::NeutrinoEDefinition(); - G4AntiNeutrinoE::AntiNeutrinoEDefinition(); + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); } -void EMModelPhysics:: +void HadronPhysicsLHEP_HP:: ConstructProcess() { - theEMModelPhysics.Build(); + theNeutrons.Build(); + theProton.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); } - - - // 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_LEAD/GNUmakefile b/hadronic_lists/lists/LHEP_LEAD/GNUmakefile new file mode 100644 index 0000000000..745dfed721 --- /dev/null +++ b/hadronic_lists/lists/LHEP_LEAD/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_LEAD +include ../common.gmk diff --git a/hadronic_lists/lists/LHEP_LEAD/include/HadronPhysicsLHEP_LEAD.hh b/hadronic_lists/lists/LHEP_LEAD/include/HadronPhysicsLHEP_LEAD.hh new file mode 100644 index 0000000000..c5660ff865 --- /dev/null +++ b/hadronic_lists/lists/LHEP_LEAD/include/HadronPhysicsLHEP_LEAD.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsLHEP_LEAD_h +#define HadronPhysicsLHEP_LEAD_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LHEPPiKBuilder.hh" +#include "G4LEADPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LHEPProtonBuilder.hh" +#include "G4LEADProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LHEPNeutronBuilder.hh" +#include "G4LEADNeutronBuilder.hh" + +class HadronPhysicsLHEP_LEAD : public G4VPhysicsConstructor +{ + public: + HadronPhysicsLHEP_LEAD(const G4String& name ="hadron"); + virtual ~HadronPhysicsLHEP_LEAD(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LHEPNeutronBuilder theLHEPNeutron; + G4LEADNeutronBuilder theLEADNeutron; + + G4PiKBuilder thePiK; + G4LHEPPiKBuilder theLHEPPiK; + G4LEADPiKBuilder theLEADPiK; + + G4ProtonBuilder thePro; + G4LHEPProtonBuilder theLHEPPro; + G4LEADProtonBuilder theLEADPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/LHEP_LEAD/include/LHEP_LEAD.hh b/hadronic_lists/lists/LHEP_LEAD/include/LHEP_LEAD.hh new file mode 100644 index 0000000000..8e0bd0fd96 --- /dev/null +++ b/hadronic_lists/lists/LHEP_LEAD/include/LHEP_LEAD.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TLHEP_LEAD_h +#define TLHEP_LEAD_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_LEAD: public T +{ +public: + TLHEP_LEAD(); + virtual ~TLHEP_LEAD(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "LHEP_LEAD.icc" +typedef TLHEP_LEAD LHEP_LEAD; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/LHEP_LEAD/include/LHEP_LEAD.icc b/hadronic_lists/lists/LHEP_LEAD/include/LHEP_LEAD.icc new file mode 100644 index 0000000000..850228047d --- /dev/null +++ b/hadronic_lists/lists/LHEP_LEAD/include/LHEP_LEAD.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_LEAD.hh" + +template TLHEP_LEAD::TLHEP_LEAD(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: LHEP_LEAD 1.4"< TLHEP_LEAD::~TLHEP_LEAD() +{ +} + +template void TLHEP_LEAD::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_LEAD::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_LEAD/src/HadronPhysicsLHEP_LEAD.cc b/hadronic_lists/lists/LHEP_LEAD/src/HadronPhysicsLHEP_LEAD.cc new file mode 100644 index 0000000000..8de2e9dbb1 --- /dev/null +++ b/hadronic_lists/lists/LHEP_LEAD/src/HadronPhysicsLHEP_LEAD.cc @@ -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. * +// ******************************************************************** +// +#include "HadronPhysicsLHEP_LEAD.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +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); + + thePiK.RegisterMe(&theLEADPiK); + thePiK.RegisterMe(&theLHEPPiK); + theLHEPPiK.SetMinEnergy(4.99*GeV); +} + +HadronPhysicsLHEP_LEAD::~HadronPhysicsLHEP_LEAD() {} + +void HadronPhysicsLHEP_LEAD::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsLHEP_LEAD::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/LHEP_LEAD_HP/GNUmakefile b/hadronic_lists/lists/LHEP_LEAD_HP/GNUmakefile new file mode 100644 index 0000000000..4b08bbd3e9 --- /dev/null +++ b/hadronic_lists/lists/LHEP_LEAD_HP/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_LEAD_HP +include ../common.gmk diff --git a/examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_LEAD_HP.hh b/hadronic_lists/lists/LHEP_LEAD_HP/include/HadronPhysicsLHEP_LEAD_HP.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_LEAD_HP.hh rename to hadronic_lists/lists/LHEP_LEAD_HP/include/HadronPhysicsLHEP_LEAD_HP.hh diff --git a/hadronic_lists/lists/LHEP_LEAD_HP/include/LHEP_LEAD_HP.hh b/hadronic_lists/lists/LHEP_LEAD_HP/include/LHEP_LEAD_HP.hh new file mode 100644 index 0000000000..b8e986372e --- /dev/null +++ b/hadronic_lists/lists/LHEP_LEAD_HP/include/LHEP_LEAD_HP.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TLHEP_LEAD_HP_h +#define TLHEP_LEAD_HP_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_LEAD_HP: public T +{ +public: + TLHEP_LEAD_HP(); + virtual ~TLHEP_LEAD_HP(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "LHEP_LEAD_HP.icc" +typedef TLHEP_LEAD_HP LHEP_LEAD_HP; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc b/hadronic_lists/lists/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc new file mode 100644 index 0000000000..1f4a0fea56 --- /dev/null +++ b/hadronic_lists/lists/LHEP_LEAD_HP/include/LHEP_LEAD_HP.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_LEAD_HP.hh" + +template TLHEP_LEAD_HP::TLHEP_LEAD_HP(): 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.5"< TLHEP_LEAD_HP::~TLHEP_LEAD_HP() +{ +} + +template void TLHEP_LEAD_HP::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_LEAD_HP::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_LEAD_HP.cc b/hadronic_lists/lists/LHEP_LEAD_HP/src/HadronPhysicsLHEP_LEAD_HP.cc similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_LEAD_HP.cc rename to hadronic_lists/lists/LHEP_LEAD_HP/src/HadronPhysicsLHEP_LEAD_HP.cc diff --git a/hadronic_lists/lists/LHEP_PRECO/GNUmakefile b/hadronic_lists/lists/LHEP_PRECO/GNUmakefile new file mode 100644 index 0000000000..3b4db0aad9 --- /dev/null +++ b/hadronic_lists/lists/LHEP_PRECO/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_PRECO +include ../common.gmk diff --git a/examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_PRECO.hh b/hadronic_lists/lists/LHEP_PRECO/include/HadronPhysicsLHEP_PRECO.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_PRECO.hh rename to hadronic_lists/lists/LHEP_PRECO/include/HadronPhysicsLHEP_PRECO.hh diff --git a/hadronic_lists/lists/LHEP_PRECO/include/LHEP_PRECO.hh b/hadronic_lists/lists/LHEP_PRECO/include/LHEP_PRECO.hh new file mode 100644 index 0000000000..3f6673f66d --- /dev/null +++ b/hadronic_lists/lists/LHEP_PRECO/include/LHEP_PRECO.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TLHEP_PRECO_h +#define TLHEP_PRECO_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_PRECO: public T +{ +public: + TLHEP_PRECO(); + virtual ~TLHEP_PRECO(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "LHEP_PRECO.icc" +typedef TLHEP_PRECO LHEP_PRECO; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/LHEP_PRECO/include/LHEP_PRECO.icc b/hadronic_lists/lists/LHEP_PRECO/include/LHEP_PRECO.icc new file mode 100644 index 0000000000..739af266ea --- /dev/null +++ b/hadronic_lists/lists/LHEP_PRECO/include/LHEP_PRECO.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_PRECO.hh" + +template TLHEP_PRECO::TLHEP_PRECO(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: LHEP_PRECO 2.6"< TLHEP_PRECO::~TLHEP_PRECO() +{ +} + +template void TLHEP_PRECO::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_PRECO::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_PRECO.cc b/hadronic_lists/lists/LHEP_PRECO/src/HadronPhysicsLHEP_PRECO.cc similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_PRECO.cc rename to hadronic_lists/lists/LHEP_PRECO/src/HadronPhysicsLHEP_PRECO.cc diff --git a/hadronic_lists/lists/LHEP_PRECO_HP/GNUmakefile b/hadronic_lists/lists/LHEP_PRECO_HP/GNUmakefile new file mode 100644 index 0000000000..5b525ecbd0 --- /dev/null +++ b/hadronic_lists/lists/LHEP_PRECO_HP/GNUmakefile @@ -0,0 +1,2 @@ +name := LHEP_PRECO_HP +include ../common.gmk diff --git a/examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_PRECO_HP.hh b/hadronic_lists/lists/LHEP_PRECO_HP/include/HadronPhysicsLHEP_PRECO_HP.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsLists/include/HadronPhysicsLHEP_PRECO_HP.hh rename to hadronic_lists/lists/LHEP_PRECO_HP/include/HadronPhysicsLHEP_PRECO_HP.hh diff --git a/hadronic_lists/lists/LHEP_PRECO_HP/include/LHEP_PRECO_HP.hh b/hadronic_lists/lists/LHEP_PRECO_HP/include/LHEP_PRECO_HP.hh new file mode 100644 index 0000000000..7999887a09 --- /dev/null +++ b/hadronic_lists/lists/LHEP_PRECO_HP/include/LHEP_PRECO_HP.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TLHEP_PRECO_HP_h +#define TLHEP_PRECO_HP_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TLHEP_PRECO_HP: public T +{ +public: + TLHEP_PRECO_HP(); + virtual ~TLHEP_PRECO_HP(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "LHEP_PRECO_HP.icc" +typedef TLHEP_PRECO_HP LHEP_PRECO_HP; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc b/hadronic_lists/lists/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc new file mode 100644 index 0000000000..a663a6dc60 --- /dev/null +++ b/hadronic_lists/lists/LHEP_PRECO_HP/include/LHEP_PRECO_HP.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsLHEP_PRECO_HP.hh" + +template TLHEP_PRECO_HP::TLHEP_PRECO_HP(): 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.4"< TLHEP_PRECO_HP::~TLHEP_PRECO_HP() +{ +} + +template void TLHEP_PRECO_HP::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "LHEP_PRECO_HP::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_PRECO_HP.cc b/hadronic_lists/lists/LHEP_PRECO_HP/src/HadronPhysicsLHEP_PRECO_HP.cc similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsLists/src/HadronPhysicsLHEP_PRECO_HP.cc rename to hadronic_lists/lists/LHEP_PRECO_HP/src/HadronPhysicsLHEP_PRECO_HP.cc diff --git a/hadronic_lists/lists/Packaging/GNUmakefile b/hadronic_lists/lists/Packaging/GNUmakefile new file mode 100644 index 0000000000..d223909ab8 --- /dev/null +++ b/hadronic_lists/lists/Packaging/GNUmakefile @@ -0,0 +1,2 @@ +name := Packaging +include ../common.gmk diff --git a/examples/advanced/composite_calorimeter/include/G4VProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/CompileTimeConstraints.hh similarity index 81% rename from examples/advanced/composite_calorimeter/include/G4VProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/CompileTimeConstraints.hh index 362aa0a53f..0f93645d88 100644 --- a/examples/advanced/composite_calorimeter/include/G4VProtonBuilder.hh +++ b/hadronic_lists/lists/Packaging/include/CompileTimeConstraints.hh @@ -20,19 +20,18 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4VProtonBuilder_h -#define G4VProtonBuilder_h +#ifndef CompileTimeConstraints_hh +#define CompileTimeConstraints_hh -class G4ProtonInelasticProcess; - -class G4VProtonBuilder +namespace CompileTimeConstraints { + template char InheritsFrom(Base *); + template Derived* DerivedPointer(); + template < class A, class B > struct IsA + { public: - G4VProtonBuilder() {} - virtual ~G4VProtonBuilder() {} - virtual void Build(G4HadronElasticProcess & aP) = 0; - virtual void Build(G4ProtonInelasticProcess & aP) = 0; -}; -// 2002 by J.P. Wellisch + enum { ok=(sizeof(InheritsFrom(DerivedPointer())) ) }; + }; +} #endif diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EMPhysics.hh b/hadronic_lists/lists/Packaging/include/EMPhysics.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EMPhysics.hh rename to hadronic_lists/lists/Packaging/include/EMPhysics.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EM_GNPhysics.hh b/hadronic_lists/lists/Packaging/include/EM_GNPhysics.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/EM_GNPhysics.hh rename to hadronic_lists/lists/Packaging/include/EM_GNPhysics.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4BertiniNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4BertiniNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4BertiniPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4BertiniPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4BertiniProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BertiniProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4BertiniProtonBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BinaryNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4BinaryNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BinaryNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4BinaryNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BinaryProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4BinaryProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4BinaryProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4BinaryProtonBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4DataQuestionaire.hh b/hadronic_lists/lists/Packaging/include/G4DataQuestionaire.hh similarity index 82% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4DataQuestionaire.hh rename to hadronic_lists/lists/Packaging/include/G4DataQuestionaire.hh index 5ad6f03d2e..b59759c0db 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4DataQuestionaire.hh +++ b/hadronic_lists/lists/Packaging/include/G4DataQuestionaire.hh @@ -29,8 +29,6 @@ #include "G4ProtonInelasticProcess.hh" #include "G4VPiKBuilder.hh" -#include - enum G4DataType {no, photon, neutron, radioactive, lowenergy}; class G4DataQuestionaire { @@ -38,8 +36,9 @@ class G4DataQuestionaire G4DataQuestionaire(G4DataType t1=no, G4DataType t2=no, G4DataType t3=no, G4DataType t4=no) { G4cout < theStringModel; G4QGSMFragmentation theFragmentation; G4ExcitedStringDecay * theStringDecay; + G4bool wasActivated; }; // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4FTFCNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4FTFCNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4FTFCPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4FTFCPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4FTFCProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFCProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4FTFCProtonBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4FTFPNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4FTFPNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4FTFPPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4FTFPPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4FTFPProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4FTFPProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4FTFPProtonBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4HadronQEDBuilder.hh b/hadronic_lists/lists/Packaging/include/G4HadronQEDBuilder.hh similarity index 96% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4HadronQEDBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4HadronQEDBuilder.hh index c4996cd46f..4a00ab8cbe 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4HadronQEDBuilder.hh +++ b/hadronic_lists/lists/Packaging/include/G4HadronQEDBuilder.hh @@ -25,7 +25,6 @@ #include "globals.hh" #include "G4ios.hh" -#include #include "G4MultipleScattering.hh" #include "G4hIonisation.hh" @@ -42,6 +41,7 @@ class G4HadronQEDBuilder private: void RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI); + void RemoveOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI); private: @@ -101,6 +101,7 @@ class G4HadronQEDBuilder G4MultipleScattering theAntiOmegaMinusMult; G4hIonisation theAntiOmegaMinusIonisation; + G4bool wasActivated; }; diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LEADNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LEADNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LEADPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LEADPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LEADProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEADProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LEADProtonBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LEPNeutronBuilder.hh similarity index 95% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LEPNeutronBuilder.hh index aa0ea1770c..c0e3531a24 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPNeutronBuilder.hh +++ b/hadronic_lists/lists/Packaging/include/G4LEPNeutronBuilder.hh @@ -59,13 +59,20 @@ class G4LEPNeutronBuilder : public G4VNeutronBuilder } void SetMaxEnergy(G4double aM) { + theIMax = aM; theMax=aM; } + void SetMaxInelasticEnergy(G4double aM) + { + theIMax = aM; + } private: G4double theMin; G4double theIMin; G4double theMax; + G4double theIMax; + G4LElastic * theElasticModel; G4LENeutronInelastic * theLENeutronModel; G4LFission * theNeutronFissionModel; diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LEPPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LEPPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LEPProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LEPProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LEPProtonBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LHEPNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LHEPNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LHEPPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LHEPPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4LHEPProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4LHEPProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4LHEPProtonBuilder.hh diff --git a/examples/advanced/composite_calorimeter/include/G4MiscLHEPBuilder.hh b/hadronic_lists/lists/Packaging/include/G4MiscLHEPBuilder.hh similarity index 99% rename from examples/advanced/composite_calorimeter/include/G4MiscLHEPBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4MiscLHEPBuilder.hh index d0d014373c..e99ce07b63 100644 --- a/examples/advanced/composite_calorimeter/include/G4MiscLHEPBuilder.hh +++ b/hadronic_lists/lists/Packaging/include/G4MiscLHEPBuilder.hh @@ -171,6 +171,7 @@ class G4MiscLHEPBuilder G4LEAntiOmegaMinusInelastic* theLEAntiOmegaMinusModel; G4HEAntiOmegaMinusInelastic* theHEAntiOmegaMinusModel; + G4bool wasActivated; }; // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4NeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4NeutronBuilder.hh similarity index 98% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4NeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4NeutronBuilder.hh index be3e7234b9..6bec694c63 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4NeutronBuilder.hh +++ b/hadronic_lists/lists/Packaging/include/G4NeutronBuilder.hh @@ -51,6 +51,8 @@ class G4NeutronBuilder std::vector theModelCollections; + G4bool wasActivated; + }; // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4NeutronHPBuilder.hh b/hadronic_lists/lists/Packaging/include/G4NeutronHPBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4NeutronHPBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4NeutronHPBuilder.hh diff --git a/examples/advanced/composite_calorimeter/include/G4PiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4PiKBuilder.hh similarity index 99% rename from examples/advanced/composite_calorimeter/include/G4PiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4PiKBuilder.hh index e1cf738ca1..0f11c88e1d 100644 --- a/examples/advanced/composite_calorimeter/include/G4PiKBuilder.hh +++ b/hadronic_lists/lists/Packaging/include/G4PiKBuilder.hh @@ -58,6 +58,7 @@ class G4PiKBuilder std::vector theModelCollections; + G4bool wasActivated; }; // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PrecoNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4PrecoNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PrecoNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4PrecoNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PrecoProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4PrecoProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4PrecoProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4PrecoProtonBuilder.hh diff --git a/examples/advanced/composite_calorimeter/include/G4ProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4ProtonBuilder.hh similarity index 98% rename from examples/advanced/composite_calorimeter/include/G4ProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4ProtonBuilder.hh index a3913bdce0..84394533c7 100644 --- a/examples/advanced/composite_calorimeter/include/G4ProtonBuilder.hh +++ b/hadronic_lists/lists/Packaging/include/G4ProtonBuilder.hh @@ -47,6 +47,7 @@ class G4ProtonBuilder std::vector theModelCollections; + G4bool wasActivated; }; // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4QGSCNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4QGSCNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4QGSCPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4QGSCPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4QGSCProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSCProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4QGSCProtonBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4QGSPNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4QGSPNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4QGSPPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4QGSPPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4QGSPProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4QGSPProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4QGSPProtonBuilder.hh diff --git a/examples/advanced/composite_calorimeter/include/G4StoppingHadronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4StoppingHadronBuilder.hh similarity index 98% rename from examples/advanced/composite_calorimeter/include/G4StoppingHadronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4StoppingHadronBuilder.hh index 933f5b5ded..73677de4e4 100644 --- a/examples/advanced/composite_calorimeter/include/G4StoppingHadronBuilder.hh +++ b/hadronic_lists/lists/Packaging/include/G4StoppingHadronBuilder.hh @@ -25,8 +25,6 @@ #include "globals.hh" #include "G4ios.hh" -#include - // At rest processes #include "G4AntiProtonAnnihilationAtRest.hh" @@ -57,6 +55,7 @@ class G4StoppingHadronBuilder // anti-neutron G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation; + G4bool wasActivated; }; // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VNeutronBuilder.hh b/hadronic_lists/lists/Packaging/include/G4VNeutronBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VNeutronBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4VNeutronBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VPiKBuilder.hh b/hadronic_lists/lists/Packaging/include/G4VPiKBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VPiKBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4VPiKBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VProtonBuilder.hh b/hadronic_lists/lists/Packaging/include/G4VProtonBuilder.hh similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4VProtonBuilder.hh rename to hadronic_lists/lists/Packaging/include/G4VProtonBuilder.hh diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/GeneralPhysics.hh b/hadronic_lists/lists/Packaging/include/GeneralPhysics.hh similarity index 97% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/GeneralPhysics.hh rename to hadronic_lists/lists/Packaging/include/GeneralPhysics.hh index bbb065664a..d737f8f1b4 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/GeneralPhysics.hh +++ b/hadronic_lists/lists/Packaging/include/GeneralPhysics.hh @@ -49,8 +49,10 @@ class GeneralPhysics : public G4VPhysicsConstructor protected: + G4bool wasActivated; + private: - G4Decay fDecayProcess; + G4Decay fDecayProcess; }; // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/include/IonPhysics.hh b/hadronic_lists/lists/Packaging/include/IonPhysics.hh similarity index 99% rename from examples/advanced/composite_calorimeter/include/IonPhysics.hh rename to hadronic_lists/lists/Packaging/include/IonPhysics.hh index b611739e0f..be56e53d0b 100644 --- a/examples/advanced/composite_calorimeter/include/IonPhysics.hh +++ b/hadronic_lists/lists/Packaging/include/IonPhysics.hh @@ -97,6 +97,7 @@ class IonPhysics : public G4VPhysicsConstructor G4MultipleScattering fHe3MultipleScattering; G4hIonisation fHe3Ionisation; + G4bool wasActivated; }; // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/include/MuonPhysics.hh b/hadronic_lists/lists/Packaging/include/MuonPhysics.hh similarity index 99% rename from examples/advanced/composite_calorimeter/include/MuonPhysics.hh rename to hadronic_lists/lists/Packaging/include/MuonPhysics.hh index c137b0875d..b4b0455157 100644 --- a/examples/advanced/composite_calorimeter/include/MuonPhysics.hh +++ b/hadronic_lists/lists/Packaging/include/MuonPhysics.hh @@ -72,6 +72,7 @@ class MuonPhysics : public G4VPhysicsConstructor G4MultipleScattering fTauMinusMultipleScattering; G4hIonisation fTauMinusIonisation; + G4bool wasActivated; }; // 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/Packaging/include/PortingDisclaimer.hh b/hadronic_lists/lists/Packaging/include/PortingDisclaimer.hh new file mode 100644 index 0000000000..8acb5313b0 --- /dev/null +++ b/hadronic_lists/lists/Packaging/include/PortingDisclaimer.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. * +// ******************************************************************** +// +#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 =================================="< #include "G4ProcessManager.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EM_GNPhysics.cc b/hadronic_lists/lists/Packaging/src/EM_GNPhysics.cc similarity index 99% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EM_GNPhysics.cc rename to hadronic_lists/lists/Packaging/src/EM_GNPhysics.cc index f1e436e3d7..b5aa322138 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/EM_GNPhysics.cc +++ b/hadronic_lists/lists/Packaging/src/EM_GNPhysics.cc @@ -23,7 +23,6 @@ #include "EM_GNPhysics.hh" #include "globals.hh" #include "G4ios.hh" -#include #include "G4ProcessManager.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4BertiniNeutronBuilder.cc similarity index 88% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4BertiniNeutronBuilder.cc index 34e47d2771..d3e8dd7ea4 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4BertiniNeutronBuilder.cc @@ -37,29 +37,27 @@ G4BertiniNeutronBuilder:: ~G4BertiniNeutronBuilder() {} void G4BertiniNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } void G4BertiniNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess & ) { } void G4BertiniNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess & ) { } void G4BertiniNeutronBuilder:: Build(G4NeutronInelasticProcess & aP) { - theModel->SetMinEnergy(0); + theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniPiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4BertiniPiKBuilder.cc similarity index 90% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniPiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4BertiniPiKBuilder.cc index 9394a3a9a1..370af120fd 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniPiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4BertiniPiKBuilder.cc @@ -39,7 +39,7 @@ G4BertiniPiKBuilder:: ~G4BertiniPiKBuilder() {} void G4BertiniPiKBuilder:: -Build(G4HadronElasticProcess & aP) {} +Build(G4HadronElasticProcess & ) {} void G4BertiniPiKBuilder:: Build(G4PionPlusInelasticProcess & aP) @@ -53,28 +53,28 @@ void G4BertiniPiKBuilder:: Build(G4PionMinusInelasticProcess & aP) { aP.RegisterMe(theModel); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); } void G4BertiniPiKBuilder:: -Build(G4KaonPlusInelasticProcess & aP) +Build(G4KaonPlusInelasticProcess & ) { } void G4BertiniPiKBuilder:: -Build(G4KaonMinusInelasticProcess & aP) +Build(G4KaonMinusInelasticProcess & ) { } void G4BertiniPiKBuilder:: -Build(G4KaonZeroLInelasticProcess & aP) +Build(G4KaonZeroLInelasticProcess & ) { } void G4BertiniPiKBuilder:: -Build(G4KaonZeroSInelasticProcess & aP) +Build(G4KaonZeroSInelasticProcess & ) { } diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4BertiniProtonBuilder.cc similarity index 92% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4BertiniProtonBuilder.cc index 82dfd5bd86..a80dc98d6a 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BertiniProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4BertiniProtonBuilder.cc @@ -36,7 +36,7 @@ G4BertiniProtonBuilder:: ~G4BertiniProtonBuilder() {} void G4BertiniProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } @@ -46,9 +46,7 @@ Build(G4ProtonInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BinaryNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4BinaryNeutronBuilder.cc similarity index 90% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BinaryNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4BinaryNeutronBuilder.cc index d22696b2cd..a9b1eaa53c 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BinaryNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4BinaryNeutronBuilder.cc @@ -37,17 +37,17 @@ G4BinaryNeutronBuilder:: ~G4BinaryNeutronBuilder() {} void G4BinaryNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } void G4BinaryNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess & ) { } void G4BinaryNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess & ) { } @@ -57,9 +57,7 @@ Build(G4NeutronInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BinaryProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4BinaryProtonBuilder.cc similarity index 91% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BinaryProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4BinaryProtonBuilder.cc index f571bb0934..aa680b807a 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4BinaryProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4BinaryProtonBuilder.cc @@ -29,7 +29,6 @@ G4BinaryProtonBuilder:: G4BinaryProtonBuilder() { theMin = 0; - theMax = 150.*MeV; theModel = new G4BinaryCascade; } @@ -37,7 +36,7 @@ G4BinaryProtonBuilder:: ~G4BinaryProtonBuilder() {} void G4BinaryProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } @@ -47,9 +46,7 @@ Build(G4ProtonInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4EMBuilder.cc b/hadronic_lists/lists/Packaging/src/G4EMBuilder.cc similarity index 54% rename from examples/advanced/composite_calorimeter/src/G4EMBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4EMBuilder.cc index d679385d2d..2d99fe1775 100644 --- a/examples/advanced/composite_calorimeter/src/G4EMBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4EMBuilder.cc @@ -24,14 +24,6 @@ #include "globals.hh" #include "G4ios.hh" -#include - - -G4EMBuilder:: -G4EMBuilder() {} - -G4EMBuilder:: -~G4EMBuilder() {} #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" @@ -40,10 +32,102 @@ G4EMBuilder:: #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); @@ -54,6 +138,7 @@ void G4EMBuilder::Build() 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); @@ -63,8 +148,10 @@ void G4EMBuilder::Build() 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/examples/extended/geometry/cad/src/CadVisManager.cc b/hadronic_lists/lists/Packaging/src/G4EMTailorer.cc similarity index 52% rename from examples/extended/geometry/cad/src/CadVisManager.cc rename to hadronic_lists/lists/Packaging/src/G4EMTailorer.cc index b97e6a6a3b..cc788ca794 100644 --- a/examples/extended/geometry/cad/src/CadVisManager.cc +++ b/hadronic_lists/lists/Packaging/src/G4EMTailorer.cc @@ -20,43 +20,47 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: CadVisManager.cc,v 1.2 2002/11/26 08:28:07 duns Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -------------------------------------------------------------------- +#include "G4EMTailorer.hh" +#include "G4EMBuilder.hh" -#ifdef G4VIS_USE - -#include "CadVisManager.hh" - -// Visualization drivers... - -#include "G4ASCIITree.hh" -#include "G4DAWNFILE.hh" -#include "G4GAGTree.hh" -#include "G4HepRepFile.hh" -#include "G4HepRep.hh" -#include "G4RayTracer.hh" - -CadVisManager::CadVisManager () {} - -void CadVisManager::RegisterGraphicsSystems () -{ - RegisterGraphicsSystem (new G4ASCIITree); - RegisterGraphicsSystem (new G4DAWNFILE); - RegisterGraphicsSystem (new G4GAGTree); - RegisterGraphicsSystem (new G4HepRepFile); - RegisterGraphicsSystem (new G4HepRep); - RegisterGraphicsSystem (new G4RayTracer); - - if (fVerbose > 0) +void G4EMTailorer::SetNewValue(G4UIcommand* aComm, G4String aS) +{ + if(aComm==theSynch) { - G4cout << G4endl - << "You have successfully chosen to use" - << " the following graphics systems:" - << G4endl; - PrintAvailableGraphicsSystems (); + //cout <<" ############### synched ############## "<Synch(aS); + } + if(aComm==theGN) + { + theB->GammaNuclear(aS); + //cout <<" ############### GN'ed ############## "<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. + 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); +} + diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4ElectroNuclearBuilder.cc b/hadronic_lists/lists/Packaging/src/G4ElectroNuclearBuilder.cc similarity index 80% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4ElectroNuclearBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4ElectroNuclearBuilder.cc index 4b2d969518..63fbd17a64 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4ElectroNuclearBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4ElectroNuclearBuilder.cc @@ -24,7 +24,6 @@ #include "globals.hh" #include "G4ios.hh" -#include #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" @@ -33,7 +32,7 @@ #include "G4Positron.hh" #include "G4ProcessManager.hh" -G4ElectroNuclearBuilder::G4ElectroNuclearBuilder() +G4ElectroNuclearBuilder::G4ElectroNuclearBuilder() : wasActivated(false) { theElectroReaction = new G4ElectroNuclearReaction; theGammaReaction = new G4GammaNuclearReaction; @@ -45,7 +44,24 @@ G4ElectroNuclearBuilder::G4ElectroNuclearBuilder() theStringModel.SetFragmentationModel(theStringDecay); } -G4ElectroNuclearBuilder::~G4ElectroNuclearBuilder() {delete theStringDecay;} +G4ElectroNuclearBuilder::~G4ElectroNuclearBuilder() +{ + delete theStringDecay; + delete theElectroReaction; + delete theGammaReaction; + delete theModel; + delete theCascade; + if(wasActivated) + { + G4ProcessManager * pManager = 0; + pManager = G4Gamma::Gamma()->GetProcessManager(); + if(pManager) pManager->RemoveProcess(&thePhotoNuclearProcess); + pManager = G4Electron::Electron()->GetProcessManager(); + if(pManager) pManager->RemoveProcess(&theElectronNuclearProcess); + pManager = G4Positron::Positron()->GetProcessManager(); + if(pManager) pManager->RemoveProcess(&thePositronNuclearProcess); + } +} void G4ElectroNuclearBuilder::Build() { diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4FTFCNeutronBuilder.cc similarity index 91% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4FTFCNeutronBuilder.cc index 2127b0ff4a..b5c6da993e 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4FTFCNeutronBuilder.cc @@ -44,17 +44,17 @@ G4FTFCNeutronBuilder:: } void G4FTFCNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } void G4FTFCNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess & ) { } void G4FTFCNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess & ) { } @@ -64,9 +64,7 @@ Build(G4NeutronInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCPiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4FTFCPiKBuilder.cc similarity index 95% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCPiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4FTFCPiKBuilder.cc index e972693b59..922c54133b 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCPiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4FTFCPiKBuilder.cc @@ -44,14 +44,14 @@ G4FTFCPiKBuilder:: } void G4FTFCPiKBuilder:: -Build(G4HadronElasticProcess & aP) {} +Build(G4HadronElasticProcess & ) {} void G4FTFCPiKBuilder:: Build(G4PionPlusInelasticProcess & aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); aP.RegisterMe(theModel); } @@ -60,7 +60,7 @@ Build(G4PionMinusInelasticProcess & aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); aP.RegisterMe(theModel); } diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4FTFCProtonBuilder.cc similarity index 93% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4FTFCProtonBuilder.cc index 6649435826..1a586b4cd4 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFCProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4FTFCProtonBuilder.cc @@ -44,7 +44,7 @@ G4FTFCProtonBuilder:: } void G4FTFCProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } @@ -54,9 +54,7 @@ Build(G4ProtonInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4FTFPNeutronBuilder.cc similarity index 91% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4FTFPNeutronBuilder.cc index dd65f7890a..2327bc82fb 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4FTFPNeutronBuilder.cc @@ -46,17 +46,17 @@ G4FTFPNeutronBuilder:: } void G4FTFPNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } void G4FTFPNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess & ) { } void G4FTFPNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess & ) { } @@ -66,9 +66,7 @@ Build(G4NeutronInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPPiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4FTFPPiKBuilder.cc similarity index 95% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPPiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4FTFPPiKBuilder.cc index 107714ce6b..6bf13d3a1d 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPPiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4FTFPPiKBuilder.cc @@ -46,14 +46,14 @@ G4FTFPPiKBuilder:: } void G4FTFPPiKBuilder:: -Build(G4HadronElasticProcess & aP) {} +Build(G4HadronElasticProcess & ) {} void G4FTFPPiKBuilder:: Build(G4PionPlusInelasticProcess & aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); aP.RegisterMe(theModel); } @@ -62,7 +62,7 @@ Build(G4PionMinusInelasticProcess & aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); aP.RegisterMe(theModel); } diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4FTFPProtonBuilder.cc similarity index 93% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4FTFPProtonBuilder.cc index fdbacce19b..109ca4c34c 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4FTFPProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4FTFPProtonBuilder.cc @@ -46,7 +46,7 @@ G4FTFPProtonBuilder:: } void G4FTFPProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } @@ -56,9 +56,7 @@ Build(G4ProtonInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4HadronQEDBuilder.cc b/hadronic_lists/lists/Packaging/src/G4HadronQEDBuilder.cc similarity index 66% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4HadronQEDBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4HadronQEDBuilder.cc index 40e6aaf19d..f4f0873e7a 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4HadronQEDBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4HadronQEDBuilder.cc @@ -24,13 +24,15 @@ #include "globals.hh" #include "G4ios.hh" -#include #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" #include "G4MesonConstructor.hh" #include "G4BaryonConstructor.hh" #include "G4ProcessManager.hh" +#include "G4Proton.hh" +#include "G4AntiProton.hh" + #include "G4PionPlus.hh" #include "G4PionMinus.hh" #include "G4KaonPlus.hh" @@ -44,8 +46,36 @@ #include "G4OmegaMinus.hh" #include "G4AntiOmegaMinus.hh" -G4HadronQEDBuilder::G4HadronQEDBuilder() {} -G4HadronQEDBuilder::~G4HadronQEDBuilder(){} +#include "PortingDisclaimer.hh" + +G4HadronQEDBuilder::G4HadronQEDBuilder(): wasActivated(false) +{ + if(!(PortingDisclaimer::PrintLocalDisclaimer())) + { + G4Exception("G4HadronQEDBuilder", "007", FatalException, + "library screw-up: linking went badly wrong" ); + } +} +G4HadronQEDBuilder::~G4HadronQEDBuilder() +{ + if(wasActivated) + { + RemoveOne(G4PionPlus::PionPlus()->GetProcessManager(), &thePionPlusMult, &thePionPlusIonisation); + RemoveOne(G4PionMinus::PionMinus()->GetProcessManager(), &thePionMinusMult, &thePionMinusIonisation); + RemoveOne(G4KaonPlus::KaonPlus()->GetProcessManager(), &theKaonPlusMult, &theKaonPlusIonisation); + RemoveOne(G4KaonMinus::KaonMinus()->GetProcessManager(), &theKaonMinusMult, &theKaonMinusIonisation); + RemoveOne(G4Proton::Proton()->GetProcessManager(), &theProtonMult, &theProtonIonisation); + RemoveOne(G4AntiProton::AntiProton()->GetProcessManager(), &theAntiProtonMult, &theAntiProtonIonisation); + RemoveOne(G4SigmaMinus::SigmaMinus()->GetProcessManager(), &theSigmaMinusMult, &theSigmaMinusIonisation); + RemoveOne(G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(), &theAntiSigmaMinusMult, &theAntiSigmaMinusIonisation); + RemoveOne(G4SigmaPlus::SigmaPlus()->GetProcessManager(), &theSigmaPlusMult, &theSigmaPlusIonisation); + RemoveOne(G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(), &theAntiSigmaPlusMult, &theAntiSigmaPlusIonisation); + RemoveOne(G4XiMinus::XiMinus()->GetProcessManager(), &theXiMinusMult, &theXiMinusIonisation); + RemoveOne(G4AntiXiMinus::AntiXiMinus()->GetProcessManager(), &theAntiXiMinusMult, &theAntiXiMinusIonisation); + RemoveOne(G4OmegaMinus::OmegaMinus()->GetProcessManager(), &theOmegaMinusMult, &theOmegaMinusIonisation); + RemoveOne(G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(), &theAntiOmegaMinusMult, &theAntiOmegaMinusIonisation); + } +} void G4HadronQEDBuilder:: RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI) @@ -56,8 +86,17 @@ RegisterOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI) aP->SetProcessOrdering(aM, idxPostStep, 1); } +void G4HadronQEDBuilder:: +RemoveOne(G4ProcessManager* aP, G4MultipleScattering * aM, G4hIonisation* aI) +{ + if(aP) aP->RemoveProcess(aI); + if(aP) aP->RemoveProcess(aM); +} + void G4HadronQEDBuilder::Build() { + wasActivated = true; + // PionPlus RegisterOne(G4PionPlus::PionPlus()->GetProcessManager(), &thePionPlusMult, &thePionPlusIonisation); diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LEADNeutronBuilder.cc similarity index 89% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LEADNeutronBuilder.cc index 7b48c8070d..904cd6941f 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4LEADNeutronBuilder.cc @@ -36,17 +36,17 @@ G4LEADNeutronBuilder:: ~G4LEADNeutronBuilder() {} void G4LEADNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } void G4LEADNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess & ) { } void G4LEADNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess & ) { } @@ -55,9 +55,7 @@ Build(G4NeutronInelasticProcess & aP) { theModel->SetMinEnergy(theMin); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADPiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LEADPiKBuilder.cc similarity index 94% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADPiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LEADPiKBuilder.cc index 3382fcb76f..2b10ba3c24 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADPiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4LEADPiKBuilder.cc @@ -36,7 +36,7 @@ G4LEADPiKBuilder:: ~G4LEADPiKBuilder() {} void G4LEADPiKBuilder:: -Build(G4HadronElasticProcess & aP) {} +Build(G4HadronElasticProcess & ) {} void G4LEADPiKBuilder:: Build(G4PionPlusInelasticProcess & aP) @@ -49,7 +49,7 @@ void G4LEADPiKBuilder:: Build(G4PionMinusInelasticProcess & aP) { aP.RegisterMe(theModel); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); theModel->SetMinEnergy(theMin); } @@ -57,7 +57,7 @@ void G4LEADPiKBuilder:: Build(G4KaonPlusInelasticProcess & aP) { aP.RegisterMe(theModel); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); theModel->SetMinEnergy(theMin); } diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LEADProtonBuilder.cc similarity index 92% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LEADProtonBuilder.cc index 662f27a627..55a6af168e 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEADProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4LEADProtonBuilder.cc @@ -36,7 +36,7 @@ G4LEADProtonBuilder:: ~G4LEADProtonBuilder() {} void G4LEADProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } @@ -45,9 +45,7 @@ Build(G4ProtonInelasticProcess & aP) { theModel->SetMinEnergy(theMin); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4LEPNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LEPNeutronBuilder.cc similarity index 91% rename from examples/advanced/composite_calorimeter/src/G4LEPNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LEPNeutronBuilder.cc index 357b7bf6a5..1fd1e59106 100644 --- a/examples/advanced/composite_calorimeter/src/G4LEPNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4LEPNeutronBuilder.cc @@ -29,7 +29,9 @@ G4LEPNeutronBuilder:: G4LEPNeutronBuilder() { theMin = 0; - theMax = 55*GeV; + theIMin = theMin; + theMax = 100*TeV; + theIMax = 55*GeV; } G4LEPNeutronBuilder:: @@ -40,6 +42,7 @@ Build(G4HadronElasticProcess & aP) { theElasticModel = new G4LElastic(); theElasticModel->SetMinEnergy(theMin); + theElasticModel->SetMaxEnergy(theMax); aP.RegisterMe(theElasticModel); } @@ -48,6 +51,7 @@ Build(G4HadronFissionProcess & aP) { theNeutronFissionModel = new G4LFission(); theNeutronFissionModel->SetMinEnergy(theMin); + theNeutronFissionModel->SetMaxEnergy(theMax); aP.RegisterMe(theNeutronFissionModel); } @@ -56,6 +60,7 @@ Build(G4HadronCaptureProcess & aP) { theNeutronCaptureModel = new G4LCapture(); theNeutronCaptureModel->SetMinEnergy(theMin); + theNeutronCaptureModel->SetMaxEnergy(theMax); aP.RegisterMe(theNeutronCaptureModel); } @@ -64,7 +69,7 @@ Build(G4NeutronInelasticProcess & aP) { theLENeutronModel = new G4LENeutronInelastic(); theLENeutronModel->SetMinEnergy(theIMin); - theLENeutronModel->SetMaxEnergy(theMax); + theLENeutronModel->SetMaxEnergy(theIMax); aP.RegisterMe(theLENeutronModel); } diff --git a/examples/advanced/composite_calorimeter/src/G4LEPPiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LEPPiKBuilder.cc similarity index 99% rename from examples/advanced/composite_calorimeter/src/G4LEPPiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LEPPiKBuilder.cc index 2ada910a78..f699c77c17 100644 --- a/examples/advanced/composite_calorimeter/src/G4LEPPiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4LEPPiKBuilder.cc @@ -24,7 +24,6 @@ #include "globals.hh" #include "G4ios.hh" -#include #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" #include "G4MesonConstructor.hh" diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LEPProtonBuilder.cc similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LEPProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LEPProtonBuilder.cc diff --git a/examples/advanced/composite_calorimeter/src/G4LHEPNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LHEPNeutronBuilder.cc similarity index 100% rename from examples/advanced/composite_calorimeter/src/G4LHEPNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LHEPNeutronBuilder.cc diff --git a/examples/advanced/composite_calorimeter/src/G4LHEPPiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LHEPPiKBuilder.cc similarity index 99% rename from examples/advanced/composite_calorimeter/src/G4LHEPPiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LHEPPiKBuilder.cc index 94fa4d7583..fc1aaa3995 100644 --- a/examples/advanced/composite_calorimeter/src/G4LHEPPiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4LHEPPiKBuilder.cc @@ -24,7 +24,6 @@ #include "globals.hh" #include "G4ios.hh" -#include #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" #include "G4MesonConstructor.hh" diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4LHEPProtonBuilder.cc similarity index 100% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4LHEPProtonBuilder.cc diff --git a/examples/advanced/composite_calorimeter/src/G4MiscLHEPBuilder.cc b/hadronic_lists/lists/Packaging/src/G4MiscLHEPBuilder.cc similarity index 74% rename from examples/advanced/composite_calorimeter/src/G4MiscLHEPBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4MiscLHEPBuilder.cc index 628fcf8d65..3aa627c8f8 100644 --- a/examples/advanced/composite_calorimeter/src/G4MiscLHEPBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4MiscLHEPBuilder.cc @@ -26,13 +26,62 @@ #include "G4ParticleTable.hh" #include "G4ProcessManager.hh" -G4MiscLHEPBuilder::G4MiscLHEPBuilder() {} -G4MiscLHEPBuilder::~G4MiscLHEPBuilder() {} +G4MiscLHEPBuilder::G4MiscLHEPBuilder(): wasActivated(false) {} +G4MiscLHEPBuilder::~G4MiscLHEPBuilder() +{ + if(wasActivated) + { + G4ProcessManager * aProcMan = 0; + aProcMan = G4AntiProton::AntiProton()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theAntiProtonInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theAntiProtonElasticProcess); + aProcMan = G4AntiNeutron::AntiNeutron()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theAntiNeutronInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theAntiNeutronElasticProcess); + aProcMan = G4Lambda::Lambda()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theLambdaInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theLambdaElasticProcess); + aProcMan = G4AntiLambda::AntiLambda()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theAntiLambdaInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theAntiLambdaElasticProcess); + aProcMan = G4SigmaMinus::SigmaMinus()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theSigmaMinusInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theSigmaMinusElasticProcess); + aProcMan = G4AntiSigmaMinus::AntiSigmaMinus()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theAntiSigmaMinusInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theAntiSigmaMinusElasticProcess); + aProcMan = G4SigmaPlus::SigmaPlus()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theSigmaPlusInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theSigmaPlusElasticProcess); + aProcMan = G4AntiSigmaPlus::AntiSigmaPlus()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theAntiSigmaPlusInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theAntiSigmaPlusElasticProcess); + aProcMan = G4XiMinus::XiMinus()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theXiMinusInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theXiMinusElasticProcess); + aProcMan = G4AntiXiMinus::AntiXiMinus()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theAntiXiMinusInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theAntiXiMinusElasticProcess); + aProcMan = G4XiZero::XiZero()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theXiZeroInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theXiZeroElasticProcess); + aProcMan = G4AntiXiZero::AntiXiZero()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theAntiXiZeroInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theAntiXiZeroElasticProcess); + aProcMan = G4OmegaMinus::OmegaMinus()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theOmegaMinusInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theOmegaMinusElasticProcess); + aProcMan = G4AntiOmegaMinus::AntiOmegaMinus()->GetProcessManager(); + if(aProcMan) aProcMan->RemoveProcess(&theAntiOmegaMinusInelastic); + if(aProcMan) aProcMan->RemoveProcess(&theAntiOmegaMinusElasticProcess); + } +} void G4MiscLHEPBuilder::Build() { G4ProcessManager * aProcMan = 0; theElasticModel = new G4LElastic; + wasActivated = true; // anti-Proton aProcMan = G4AntiProton::AntiProton()->GetProcessManager(); diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4NeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4NeutronBuilder.cc similarity index 83% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4NeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4NeutronBuilder.cc index a9883d0dd0..e6b89372fa 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4NeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4NeutronBuilder.cc @@ -26,14 +26,25 @@ #include "G4ProcessManager.hh" G4NeutronBuilder:: -G4NeutronBuilder() {} +G4NeutronBuilder(): wasActivated(false) {} G4NeutronBuilder:: -~G4NeutronBuilder() {} +~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); + } +} void G4NeutronBuilder:: Build() { + wasActivated = true; std::vector::iterator i; for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) { diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4NeutronHPBuilder.cc b/hadronic_lists/lists/Packaging/src/G4NeutronHPBuilder.cc similarity index 85% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4NeutronHPBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4NeutronHPBuilder.cc index 218000367f..1b5c94bab7 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4NeutronHPBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4NeutronHPBuilder.cc @@ -55,9 +55,7 @@ Build(G4HadronElasticProcess & aP) { if(theHPElastic==NULL) theHPElastic = new G4NeutronHPElastic; if(theHPElasticData == NULL) theHPElasticData = new G4NeutronHPElasticData; - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(theHPElasticData); + aP.AddDataSet(theHPElasticData); aP.RegisterMe(theHPElastic); } @@ -66,9 +64,7 @@ Build(G4HadronFissionProcess & aP) { if(theHPFission == NULL) theHPFission = new G4NeutronHPFission; if(theHPFissionData==NULL) theHPFissionData=new G4NeutronHPFissionData; - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(theHPFissionData); + aP.AddDataSet(theHPFissionData); aP.RegisterMe(theHPFission); } @@ -77,9 +73,7 @@ Build(G4HadronCaptureProcess & aP) { if(theHPCapture==NULL) theHPCapture = new G4NeutronHPCapture; if(theHPCaptureData==NULL) theHPCaptureData = new G4NeutronHPCaptureData; - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(theHPCaptureData); + aP.AddDataSet(theHPCaptureData); aP.RegisterMe(theHPCapture); } @@ -88,9 +82,7 @@ Build(G4NeutronInelasticProcess & aP) { if(theHPInelastic==NULL) theHPInelastic = new G4NeutronHPInelastic; if(theHPInelasticData==NULL) theHPInelasticData = new G4NeutronHPInelasticData; - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(theHPInelasticData); + aP.AddDataSet(theHPInelasticData); aP.RegisterMe(theHPInelastic); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4PiKBuilder.cc similarity index 71% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4PiKBuilder.cc index 9de0ec906c..59c9fe7f0b 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4PiKBuilder.cc @@ -26,14 +26,38 @@ #include "G4ProcessManager.hh" G4PiKBuilder:: -G4PiKBuilder() {} +G4PiKBuilder(): wasActivated(false) {} G4PiKBuilder:: -~G4PiKBuilder() {} +~G4PiKBuilder(){ + if(wasActivated) + { + G4ProcessManager * theProcMan; + theProcMan = G4PionPlus::PionPlus()->GetProcessManager(); + if(theProcMan) theProcMan->RemoveProcess(&thePionPlusElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(&thePionPlusInelastic); + theProcMan = G4PionMinus::PionMinus()->GetProcessManager(); + if(theProcMan) theProcMan->RemoveProcess(&thePionMinusElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(&thePionMinusInelastic); + theProcMan = G4KaonPlus::KaonPlus()->GetProcessManager(); + if(theProcMan) theProcMan->RemoveProcess(&theKaonPlusElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(&theKaonPlusInelastic); + theProcMan = G4KaonMinus::KaonMinus()->GetProcessManager(); + if(theProcMan) theProcMan->RemoveProcess(&theKaonMinusElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(&theKaonMinusInelastic); + theProcMan = G4KaonZeroLong::KaonZeroLong()->GetProcessManager(); + if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroLElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroLInelastic); + theProcMan = G4KaonZeroShort::KaonZeroShort()->GetProcessManager(); + if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroSElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(&theKaonZeroSInelastic); + } +} void G4PiKBuilder:: Build() { + wasActivated = true; std::vector::iterator i; for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) { diff --git a/examples/advanced/composite_calorimeter/src/G4PrecoNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4PrecoNeutronBuilder.cc similarity index 90% rename from examples/advanced/composite_calorimeter/src/G4PrecoNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4PrecoNeutronBuilder.cc index 8f84680f93..786bd26b77 100644 --- a/examples/advanced/composite_calorimeter/src/G4PrecoNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4PrecoNeutronBuilder.cc @@ -37,17 +37,17 @@ G4PrecoNeutronBuilder:: ~G4PrecoNeutronBuilder() {} void G4PrecoNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } void G4PrecoNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess & ) { } void G4PrecoNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess & ) { } @@ -57,9 +57,7 @@ Build(G4NeutronInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4PrecoProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4PrecoProtonBuilder.cc similarity index 92% rename from examples/advanced/composite_calorimeter/src/G4PrecoProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4PrecoProtonBuilder.cc index eb4925b73b..2c4b958d22 100644 --- a/examples/advanced/composite_calorimeter/src/G4PrecoProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4PrecoProtonBuilder.cc @@ -37,7 +37,7 @@ G4PrecoProtonBuilder:: ~G4PrecoProtonBuilder() {} void G4PrecoProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } @@ -47,9 +47,7 @@ Build(G4ProtonInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(theMax); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4ProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4ProtonBuilder.cc similarity index 86% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4ProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4ProtonBuilder.cc index 397ed3b71b..1f834dc1aa 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4ProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4ProtonBuilder.cc @@ -26,14 +26,23 @@ #include "G4ProcessManager.hh" G4ProtonBuilder:: -G4ProtonBuilder() {} +G4ProtonBuilder(): wasActivated(false) {} G4ProtonBuilder:: -~G4ProtonBuilder() {} +~G4ProtonBuilder() +{ + if(wasActivated) + { + G4ProcessManager * theProcMan = G4Proton::Proton()->GetProcessManager(); + if(theProcMan) theProcMan->RemoveProcess(&theProtonElasticProcess); + if(theProcMan) theProcMan->RemoveProcess(&theProtonInelastic); + } +} void G4ProtonBuilder:: Build() { + wasActivated = true; std::vector::iterator i; for(i=theModelCollections.begin(); i!=theModelCollections.end(); i++) { diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4QGSCNeutronBuilder.cc similarity index 91% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4QGSCNeutronBuilder.cc index 0f8e652b52..9c6acef78e 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4QGSCNeutronBuilder.cc @@ -44,17 +44,17 @@ G4QGSCNeutronBuilder:: } void G4QGSCNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } void G4QGSCNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess & ) { } void G4QGSCNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess & ) { } @@ -64,9 +64,7 @@ Build(G4NeutronInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCPiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4QGSCPiKBuilder.cc similarity index 95% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCPiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4QGSCPiKBuilder.cc index dd7c5f9328..f87c4c8762 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSCPiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4QGSCPiKBuilder.cc @@ -44,14 +44,14 @@ G4QGSCPiKBuilder:: } void G4QGSCPiKBuilder:: -Build(G4HadronElasticProcess & aP) {} +Build(G4HadronElasticProcess & ) {} void G4QGSCPiKBuilder:: Build(G4PionPlusInelasticProcess & aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiCross); + aP.AddDataSet(&thePiCross); aP.RegisterMe(theModel); } @@ -60,7 +60,7 @@ Build(G4PionMinusInelasticProcess & aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiCross); + aP.AddDataSet(&thePiCross); aP.RegisterMe(theModel); } diff --git a/examples/advanced/composite_calorimeter/src/G4QGSCProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4QGSCProtonBuilder.cc similarity index 93% rename from examples/advanced/composite_calorimeter/src/G4QGSCProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4QGSCProtonBuilder.cc index 1be233a553..f57583b880 100644 --- a/examples/advanced/composite_calorimeter/src/G4QGSCProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4QGSCProtonBuilder.cc @@ -44,7 +44,7 @@ G4QGSCProtonBuilder:: } void G4QGSCProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } @@ -54,9 +54,7 @@ Build(G4ProtonInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPNeutronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4QGSPNeutronBuilder.cc similarity index 91% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPNeutronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4QGSPNeutronBuilder.cc index 76262cda4c..3818d69cf3 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPNeutronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4QGSPNeutronBuilder.cc @@ -46,17 +46,17 @@ G4QGSPNeutronBuilder:: } void G4QGSPNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } void G4QGSPNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +Build(G4HadronFissionProcess & ) { } void G4QGSPNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +Build(G4HadronCaptureProcess & ) { } @@ -66,9 +66,7 @@ Build(G4NeutronInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPPiKBuilder.cc b/hadronic_lists/lists/Packaging/src/G4QGSPPiKBuilder.cc similarity index 95% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPPiKBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4QGSPPiKBuilder.cc index 014f468550..239f5ba24a 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4QGSPPiKBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4QGSPPiKBuilder.cc @@ -46,14 +46,14 @@ G4QGSPPiKBuilder:: } void G4QGSPPiKBuilder:: -Build(G4HadronElasticProcess & aP) {} +Build(G4HadronElasticProcess & ) {} void G4QGSPPiKBuilder:: Build(G4PionPlusInelasticProcess & aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); aP.RegisterMe(theModel); } @@ -62,7 +62,7 @@ Build(G4PionMinusInelasticProcess & aP) { theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); - aP.GetCrossSectionDataStore()->AddDataSet(&thePiData); + aP.AddDataSet(&thePiData); aP.RegisterMe(theModel); } diff --git a/examples/advanced/composite_calorimeter/src/G4QGSPProtonBuilder.cc b/hadronic_lists/lists/Packaging/src/G4QGSPProtonBuilder.cc similarity index 93% rename from examples/advanced/composite_calorimeter/src/G4QGSPProtonBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4QGSPProtonBuilder.cc index f8b49dc95e..8c13314e54 100644 --- a/examples/advanced/composite_calorimeter/src/G4QGSPProtonBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4QGSPProtonBuilder.cc @@ -46,7 +46,7 @@ G4QGSPProtonBuilder:: } void G4QGSPProtonBuilder:: -Build(G4HadronElasticProcess & aP) +Build(G4HadronElasticProcess & ) { } @@ -56,9 +56,7 @@ Build(G4ProtonInelasticProcess & aP) theModel->SetMinEnergy(theMin); theModel->SetMaxEnergy(100*TeV); aP.RegisterMe(theModel); - G4CrossSectionDataStore * thePStore; - thePStore = aP.GetCrossSectionDataStore(); - thePStore->AddDataSet(&theXSec); + aP.AddDataSet(&theXSec); } // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/G4StoppingHadronBuilder.cc b/hadronic_lists/lists/Packaging/src/G4StoppingHadronBuilder.cc similarity index 77% rename from examples/advanced/composite_calorimeter/src/G4StoppingHadronBuilder.cc rename to hadronic_lists/lists/Packaging/src/G4StoppingHadronBuilder.cc index d0b2a08264..0de13921e2 100644 --- a/examples/advanced/composite_calorimeter/src/G4StoppingHadronBuilder.cc +++ b/hadronic_lists/lists/Packaging/src/G4StoppingHadronBuilder.cc @@ -24,7 +24,6 @@ #include "globals.hh" #include "G4ios.hh" -#include #include "G4ParticleTable.hh" #include "G4ProcessManager.hh" #include "G4PionMinus.hh" @@ -33,14 +32,29 @@ #include "G4AntiNeutron.hh" G4StoppingHadronBuilder:: -G4StoppingHadronBuilder() {} +G4StoppingHadronBuilder(): wasActivated(false) {} 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); + } +} void G4StoppingHadronBuilder::Build() { G4ProcessManager * aProcMan = 0; + wasActivated=true; // PionMinus aProcMan = G4PionMinus::PionMinusDefinition()->GetProcessManager(); diff --git a/examples/advanced/composite_calorimeter/src/GeneralPhysics.cc b/hadronic_lists/lists/Packaging/src/GeneralPhysics.cc similarity index 85% rename from examples/advanced/composite_calorimeter/src/GeneralPhysics.cc rename to hadronic_lists/lists/Packaging/src/GeneralPhysics.cc index 794ac350f3..ef9730e06d 100644 --- a/examples/advanced/composite_calorimeter/src/GeneralPhysics.cc +++ b/hadronic_lists/lists/Packaging/src/GeneralPhysics.cc @@ -24,16 +24,6 @@ #include "globals.hh" #include "G4ios.hh" -#include - -GeneralPhysics::GeneralPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{ -} - -GeneralPhysics::~GeneralPhysics() -{ -} #include "G4ParticleDefinition.hh" #include "G4ProcessManager.hh" @@ -41,6 +31,26 @@ GeneralPhysics::~GeneralPhysics() #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)) { + if(pmanager) pmanager ->RemoveProcess(&fDecayProcess); + } + } + } +} + void GeneralPhysics::ConstructParticle() { // pseudo-particles diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/IonPhysics.cc b/hadronic_lists/lists/Packaging/src/IonPhysics.cc similarity index 75% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/IonPhysics.cc rename to hadronic_lists/lists/Packaging/src/IonPhysics.cc index 2c4880b3c8..e098bd0533 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/IonPhysics.cc +++ b/hadronic_lists/lists/Packaging/src/IonPhysics.cc @@ -21,27 +21,57 @@ // ******************************************************************** // #include "IonPhysics.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4ProcessManager.hh" + +// Nuclei +#include "G4IonConstructor.hh" #include "globals.hh" #include "G4ios.hh" -#include - IonPhysics::IonPhysics(const G4String& name) - : G4VPhysicsConstructor(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); + } } -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" - -// Nuclei -#include "G4IonConstructor.hh" - void IonPhysics::ConstructParticle() { // Construct light ions @@ -49,10 +79,6 @@ void IonPhysics::ConstructParticle() pConstructor.ConstructParticle(); } - -#include "G4ProcessManager.hh" - - void IonPhysics::ConstructProcess() { G4ProcessManager * pManager = 0; @@ -132,6 +158,7 @@ void IonPhysics::ConstructProcess() pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep, 1); pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep, 1); + wasActivated = true; } diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/MuonPhysics.cc b/hadronic_lists/lists/Packaging/src/MuonPhysics.cc similarity index 78% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/MuonPhysics.cc rename to hadronic_lists/lists/Packaging/src/MuonPhysics.cc index eacb83d507..30431fe57e 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/MuonPhysics.cc +++ b/hadronic_lists/lists/Packaging/src/MuonPhysics.cc @@ -21,21 +21,6 @@ // ******************************************************************** // #include "MuonPhysics.hh" - -#include "globals.hh" -#include "G4ios.hh" -#include - - -MuonPhysics::MuonPhysics(const G4String& name) - : G4VPhysicsConstructor(name) -{ -} - -MuonPhysics::~MuonPhysics() -{ -} - #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" @@ -48,6 +33,41 @@ MuonPhysics::~MuonPhysics() #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::ConstructParticle() { // Mu @@ -64,13 +84,11 @@ void MuonPhysics::ConstructParticle() } - -#include "G4ProcessManager.hh" - void MuonPhysics::ConstructProcess() { G4ProcessManager * pManager = 0; + wasActivated = true; // Muon Plus Physics pManager = G4MuonPlus::MuonPlus()->GetProcessManager(); // add processes diff --git a/hadronic_lists/lists/QGSC/GNUmakefile b/hadronic_lists/lists/QGSC/GNUmakefile new file mode 100644 index 0000000000..7a3f40548c --- /dev/null +++ b/hadronic_lists/lists/QGSC/GNUmakefile @@ -0,0 +1,2 @@ +name := QGSC +include ../common.gmk diff --git a/examples/advanced/composite_calorimeter/include/HadronPhysicsQGSC.hh b/hadronic_lists/lists/QGSC/include/HadronPhysicsQGSC.hh similarity index 100% rename from examples/advanced/composite_calorimeter/include/HadronPhysicsQGSC.hh rename to hadronic_lists/lists/QGSC/include/HadronPhysicsQGSC.hh diff --git a/examples/advanced/composite_calorimeter/include/QGSC.hh b/hadronic_lists/lists/QGSC/include/QGSC.hh similarity index 84% rename from examples/advanced/composite_calorimeter/include/QGSC.hh rename to hadronic_lists/lists/QGSC/include/QGSC.hh index 09acbe6dc6..40e0256dc7 100644 --- a/examples/advanced/composite_calorimeter/include/QGSC.hh +++ b/hadronic_lists/lists/QGSC/include/QGSC.hh @@ -20,25 +20,29 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef QGSC_h -#define QGSC_h 1 +#ifndef TQGSC_h +#define TQGSC_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" +#include "CompileTimeConstraints.hh" -#define kNuCut 5*m - -class QGSC: public G4VModularPhysicsList +template +class TQGSC: public T { public: - QGSC(); - virtual ~QGSC(); + TQGSC(); + virtual ~TQGSC(); public: // SetCuts() virtual void SetCuts(); +private: + enum {ok = CompileTimeConstraints::IsA::ok }; }; +#include "QGSC.icc" +typedef TQGSC QGSC; // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/QGSC.cc b/hadronic_lists/lists/QGSC/include/QGSC.icc similarity index 87% rename from examples/advanced/composite_calorimeter/src/QGSC.cc rename to hadronic_lists/lists/QGSC/include/QGSC.icc index e014dc7f74..613b55453d 100644 --- a/examples/advanced/composite_calorimeter/src/QGSC.cc +++ b/hadronic_lists/lists/QGSC/include/QGSC.icc @@ -20,7 +20,6 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "QGSC.hh" #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -38,16 +37,16 @@ #include "GeneralPhysics.hh" #include "EMPhysics.hh" #include "MuonPhysics.hh" -#include "HadronPhysicsQGSC.hh" #include "IonPhysics.hh" #include "G4DataQuestionaire.hh" +#include "HadronPhysicsQGSC.hh" -QGSC::QGSC(): G4VModularPhysicsList() +template TQGSC::TQGSC(): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; - G4DataQuestionaire(photon); - G4cout << "You are using the simulation engine: QGSC 2.4"< TQGSC::~TQGSC() { } -void QGSC::SetCuts() +template void TQGSC::SetCuts() { if (verboseLevel >1){ G4cout << "QGSC::SetCuts:"; @@ -84,13 +83,6 @@ void QGSC::SetCuts() SetCutsWithDefault(); - SetCutValue(kNuCut,"nu_e"); - SetCutValue(kNuCut,"nu_tau"); - SetCutValue(kNuCut,"nu_mu"); - SetCutValue(kNuCut,"anti_nu_e"); - SetCutValue(kNuCut,"anti_nu_tau"); - SetCutValue(kNuCut,"anti_nu_mu"); - G4VUserPhysicsList::DumpCutValuesTable(); } diff --git a/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSC.cc b/hadronic_lists/lists/QGSC/src/HadronPhysicsQGSC.cc similarity index 98% rename from examples/advanced/composite_calorimeter/src/HadronPhysicsQGSC.cc rename to hadronic_lists/lists/QGSC/src/HadronPhysicsQGSC.cc index 03475699cf..2618b01eb9 100644 --- a/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSC.cc +++ b/hadronic_lists/lists/QGSC/src/HadronPhysicsQGSC.cc @@ -37,7 +37,7 @@ HadronPhysicsQGSC::HadronPhysicsQGSC(const G4String& name) { theNeutrons.RegisterMe(&theQGSCNeutron); theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxEnergy(25*GeV); + theLEPNeutron.SetMaxInelasticEnergy(25*GeV); thePro.RegisterMe(&theQGSCPro); thePro.RegisterMe(&theLEPPro); diff --git a/hadronic_lists/lists/QGSC_LEAD/GNUmakefile b/hadronic_lists/lists/QGSC_LEAD/GNUmakefile new file mode 100644 index 0000000000..dd3eea6a49 --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD/GNUmakefile @@ -0,0 +1,2 @@ +name := QGSC_LEAD +include ../common.gmk diff --git a/hadronic_lists/lists/QGSC_LEAD/include/HadronPhysicsQGSC_LEAD.hh b/hadronic_lists/lists/QGSC_LEAD/include/HadronPhysicsQGSC_LEAD.hh new file mode 100644 index 0000000000..8fd8b6c752 --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD/include/HadronPhysicsQGSC_LEAD.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsQGSC_LEAD_h +#define HadronPhysicsQGSC_LEAD_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4QGSCPiKBuilder.hh" +#include "G4LEADPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4QGSCProtonBuilder.hh" +#include "G4LEADProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4QGSCNeutronBuilder.hh" +#include "G4LEADNeutronBuilder.hh" + +class HadronPhysicsQGSC_LEAD : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSC_LEAD(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSC_LEAD(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4QGSCNeutronBuilder theQGSCNeutron; + G4LEADNeutronBuilder theLEADNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4QGSCPiKBuilder theQGSCPiK; + G4LEADPiKBuilder theLEADPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4QGSCProtonBuilder theQGSCPro; + G4LEADProtonBuilder theLEADProton; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/QGSC_LEAD/include/QGSC_LEAD.hh b/hadronic_lists/lists/QGSC_LEAD/include/QGSC_LEAD.hh new file mode 100644 index 0000000000..eaf68521b7 --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD/include/QGSC_LEAD.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TQGSC_LEAD_h +#define TQGSC_LEAD_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TQGSC_LEAD: public T +{ +public: + TQGSC_LEAD(); + virtual ~TQGSC_LEAD(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "QGSC_LEAD.icc" +typedef TQGSC_LEAD QGSC_LEAD; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/QGSC_LEAD/include/QGSC_LEAD.icc b/hadronic_lists/lists/QGSC_LEAD/include/QGSC_LEAD.icc new file mode 100644 index 0000000000..a25f3ee155 --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD/include/QGSC_LEAD.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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsQGSC_LEAD.hh" + +template TQGSC_LEAD::TQGSC_LEAD(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: QGSC_LEAD 1.6"< TQGSC_LEAD::~TQGSC_LEAD() +{ +} + +template void TQGSC_LEAD::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "QGSC_LEAD::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSC_LEAD/src/HadronPhysicsQGSC_LEAD.cc b/hadronic_lists/lists/QGSC_LEAD/src/HadronPhysicsQGSC_LEAD.cc new file mode 100644 index 0000000000..1bade86451 --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD/src/HadronPhysicsQGSC_LEAD.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. * +// ******************************************************************** +// +#include "HadronPhysicsQGSC_LEAD.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsQGSC_LEAD::HadronPhysicsQGSC_LEAD(const G4String& name) + : G4VPhysicsConstructor(name) +{ + theNeutrons.RegisterMe(&theQGSCNeutron); + theNeutrons.RegisterMe(&theLEPNeutron); + theLEPNeutron.SetMaxInelasticEnergy(25*GeV); + theLEPNeutron.SetMinInelasticEnergy(4.99*GeV); + theNeutrons.RegisterMe(&theLEADNeutron); + + thePro.RegisterMe(&theQGSCPro); + thePro.RegisterMe(&theLEPPro); + theLEPPro.SetMaxEnergy(25*GeV); + theLEPPro.SetMinEnergy(4.99*GeV); + thePro.RegisterMe(&theLEADProton); + + thePiK.RegisterMe(&theQGSCPiK); + thePiK.RegisterMe(&theLEPPiK); + theLEPPiK.SetMaxEnergy(25*GeV); + theLEPPiK.SetMinEnergy(4.99*GeV); + thePiK.RegisterMe(&theLEADPiK); +} + +HadronPhysicsQGSC_LEAD::~HadronPhysicsQGSC_LEAD() {} + +void HadronPhysicsQGSC_LEAD::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSC_LEAD::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSC_LEAD_HP/GNUmakefile b/hadronic_lists/lists/QGSC_LEAD_HP/GNUmakefile new file mode 100644 index 0000000000..450b1d701a --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD_HP/GNUmakefile @@ -0,0 +1,2 @@ +name := QGSC_LEAD_HP +include ../common.gmk diff --git a/hadronic_lists/lists/QGSC_LEAD_HP/include/HadronPhysicsQGSC_LEAD_HP.hh b/hadronic_lists/lists/QGSC_LEAD_HP/include/HadronPhysicsQGSC_LEAD_HP.hh new file mode 100644 index 0000000000..560cfe0aea --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD_HP/include/HadronPhysicsQGSC_LEAD_HP.hh @@ -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. * +// ******************************************************************** +// +#ifndef HadronPhysicsQGSC_LEAD_HP_h +#define HadronPhysicsQGSC_LEAD_HP_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4QGSCPiKBuilder.hh" +#include "G4LEADPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4QGSCProtonBuilder.hh" +#include "G4LEADProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4QGSCNeutronBuilder.hh" +#include "G4LEADNeutronBuilder.hh" +#include "G4NeutronHPBuilder.hh" + +class HadronPhysicsQGSC_LEAD_HP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSC_LEAD_HP(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSC_LEAD_HP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4QGSCNeutronBuilder theQGSCNeutron; + G4LEADNeutronBuilder theLEADNeutron; + G4NeutronHPBuilder theHPNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4QGSCPiKBuilder theQGSCPiK; + G4LEADPiKBuilder theLEADPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4QGSCProtonBuilder theQGSCPro; + G4LEADProtonBuilder theLEADProton; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/QGSC_LEAD_HP/include/QGSC_LEAD_HP.hh b/hadronic_lists/lists/QGSC_LEAD_HP/include/QGSC_LEAD_HP.hh new file mode 100644 index 0000000000..a987250659 --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD_HP/include/QGSC_LEAD_HP.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TQGSC_LEAD_HP_h +#define TQGSC_LEAD_HP_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TQGSC_LEAD_HP: public T +{ +public: + TQGSC_LEAD_HP(); + virtual ~TQGSC_LEAD_HP(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "QGSC_LEAD_HP.icc" +typedef TQGSC_LEAD_HP QGSC_LEAD_HP; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc b/hadronic_lists/lists/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc new file mode 100644 index 0000000000..f54d8c5e0a --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD_HP/include/QGSC_LEAD_HP.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsQGSC_LEAD_HP.hh" + +template TQGSC_LEAD_HP::TQGSC_LEAD_HP(): 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.6"< TQGSC_LEAD_HP::~TQGSC_LEAD_HP() +{ +} + +template void TQGSC_LEAD_HP::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "QGSC_LEAD_HP::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSC_LEAD_HP/src/HadronPhysicsQGSC_LEAD_HP.cc b/hadronic_lists/lists/QGSC_LEAD_HP/src/HadronPhysicsQGSC_LEAD_HP.cc new file mode 100644 index 0000000000..1cf8cfa57a --- /dev/null +++ b/hadronic_lists/lists/QGSC_LEAD_HP/src/HadronPhysicsQGSC_LEAD_HP.cc @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 "HadronPhysicsQGSC_LEAD_HP.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +HadronPhysicsQGSC_LEAD_HP::HadronPhysicsQGSC_LEAD_HP(const G4String& name) + : G4VPhysicsConstructor(name) +{ + 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); + + thePro.RegisterMe(&theQGSCPro); + thePro.RegisterMe(&theLEPPro); + theLEPPro.SetMaxEnergy(25*GeV); + theLEPPro.SetMinEnergy(4.99*GeV); + thePro.RegisterMe(&theLEADProton); + + thePiK.RegisterMe(&theQGSCPiK); + thePiK.RegisterMe(&theLEPPiK); + theLEPPiK.SetMaxEnergy(25*GeV); + theLEPPiK.SetMinEnergy(4.99*GeV); + thePiK.RegisterMe(&theLEADPiK); +} + +HadronPhysicsQGSC_LEAD_HP::~HadronPhysicsQGSC_LEAD_HP() {} + +void HadronPhysicsQGSC_LEAD_HP::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSC_LEAD_HP::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSP/GNUmakefile b/hadronic_lists/lists/QGSP/GNUmakefile new file mode 100644 index 0000000000..33fc82f605 --- /dev/null +++ b/hadronic_lists/lists/QGSP/GNUmakefile @@ -0,0 +1,2 @@ +name := QGSP +include ../common.gmk diff --git a/examples/advanced/composite_calorimeter/include/HadronPhysicsQGSP.hh b/hadronic_lists/lists/QGSP/include/HadronPhysicsQGSP.hh similarity index 100% rename from examples/advanced/composite_calorimeter/include/HadronPhysicsQGSP.hh rename to hadronic_lists/lists/QGSP/include/HadronPhysicsQGSP.hh diff --git a/examples/advanced/composite_calorimeter/include/QGSP.hh b/hadronic_lists/lists/QGSP/include/QGSP.hh similarity index 84% rename from examples/advanced/composite_calorimeter/include/QGSP.hh rename to hadronic_lists/lists/QGSP/include/QGSP.hh index 4cd6251271..c1eae039f6 100644 --- a/examples/advanced/composite_calorimeter/include/QGSP.hh +++ b/hadronic_lists/lists/QGSP/include/QGSP.hh @@ -20,25 +20,30 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef QGSP_h -#define QGSP_h 1 +#ifndef TQGSP_h +#define TQGSP_h 1 #include "G4VModularPhysicsList.hh" #include "globals.hh" +#include "CompileTimeConstraints.hh" -#define kNuCut 5*m - -class QGSP: public G4VModularPhysicsList +template +class TQGSP: public T { public: - QGSP(); - virtual ~QGSP(); + TQGSP(); + virtual ~TQGSP(); public: // SetCuts() virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; }; +#include "QGSP.icc" +typedef TQGSP QGSP; // 2002 by J.P. Wellisch diff --git a/examples/advanced/composite_calorimeter/src/QGSP.cc b/hadronic_lists/lists/QGSP/include/QGSP.icc similarity index 87% rename from examples/advanced/composite_calorimeter/src/QGSP.cc rename to hadronic_lists/lists/QGSP/include/QGSP.icc index e393d8b982..580d536799 100644 --- a/examples/advanced/composite_calorimeter/src/QGSP.cc +++ b/hadronic_lists/lists/QGSP/include/QGSP.icc @@ -20,7 +20,6 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "QGSP.hh" #include "globals.hh" #include "G4ParticleDefinition.hh" @@ -38,18 +37,18 @@ #include "GeneralPhysics.hh" #include "EMPhysics.hh" #include "MuonPhysics.hh" -#include "HadronPhysicsQGSP.hh" #include "IonPhysics.hh" #include "G4DataQuestionaire.hh" +#include "HadronPhysicsQGSP.hh" -QGSP::QGSP(): G4VModularPhysicsList() +template TQGSP::TQGSP(): T() { // default cut value (1.0mm) // defaultCutValue = 1.0*mm; - G4DataQuestionaire(photon); - G4cout << "You are using the simulation engine: QGSP 2.3"< TQGSP::~TQGSP() { } -void QGSP::SetCuts() +template void TQGSP::SetCuts() { if (verboseLevel >1){ G4cout << "QGSP::SetCuts:"; @@ -86,14 +85,7 @@ void QGSP::SetCuts() // the default cut value for all particle types SetCutsWithDefault(); - - SetCutValue(kNuCut,"nu_e"); - SetCutValue(kNuCut,"nu_tau"); - SetCutValue(kNuCut,"nu_mu"); - SetCutValue(kNuCut,"anti_nu_e"); - SetCutValue(kNuCut,"anti_nu_tau"); - SetCutValue(kNuCut,"anti_nu_mu"); - + G4VUserPhysicsList::DumpCutValuesTable(); diff --git a/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSP.cc b/hadronic_lists/lists/QGSP/src/HadronPhysicsQGSP.cc similarity index 98% rename from examples/advanced/composite_calorimeter/src/HadronPhysicsQGSP.cc rename to hadronic_lists/lists/QGSP/src/HadronPhysicsQGSP.cc index ecb2563969..7d74aaceb9 100644 --- a/examples/advanced/composite_calorimeter/src/HadronPhysicsQGSP.cc +++ b/hadronic_lists/lists/QGSP/src/HadronPhysicsQGSP.cc @@ -37,7 +37,7 @@ HadronPhysicsQGSP::HadronPhysicsQGSP(const G4String& name) { theNeutrons.RegisterMe(&theQGSPNeutron); theNeutrons.RegisterMe(&theLEPNeutron); - theLEPNeutron.SetMaxEnergy(25*GeV); + theLEPNeutron.SetMaxInelasticEnergy(25*GeV); thePro.RegisterMe(&theQGSPPro); thePro.RegisterMe(&theLEPPro); diff --git a/hadronic_lists/lists/QGSP_BERT/GNUmakefile b/hadronic_lists/lists/QGSP_BERT/GNUmakefile new file mode 100644 index 0000000000..0befcb1721 --- /dev/null +++ b/hadronic_lists/lists/QGSP_BERT/GNUmakefile @@ -0,0 +1,2 @@ +name := QGSP_BERT +include ../common.gmk diff --git a/hadronic_lists/lists/QGSP_BERT/include/HadronPhysicsQGSP_BERT.hh b/hadronic_lists/lists/QGSP_BERT/include/HadronPhysicsQGSP_BERT.hh new file mode 100644 index 0000000000..b7887c3006 --- /dev/null +++ b/hadronic_lists/lists/QGSP_BERT/include/HadronPhysicsQGSP_BERT.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsQGSP_BERT_h +#define HadronPhysicsQGSP_BERT_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.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" +class HadronPhysicsQGSP_BERT : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSP_BERT(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSP_BERT(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4QGSPNeutronBuilder theQGSPNeutron; + G4BertiniNeutronBuilder theBertiniNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4QGSPPiKBuilder theQGSPPiK; + G4BertiniPiKBuilder theBertiniPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4QGSPProtonBuilder theQGSPPro; + G4BertiniProtonBuilder theBertiniPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/QGSP_BERT/include/QGSP_BERT.hh b/hadronic_lists/lists/QGSP_BERT/include/QGSP_BERT.hh new file mode 100644 index 0000000000..de9717d541 --- /dev/null +++ b/hadronic_lists/lists/QGSP_BERT/include/QGSP_BERT.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TQGSP_BERT_h +#define TQGSP_BERT_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TQGSP_BERT: public T +{ +public: + TQGSP_BERT(); + virtual ~TQGSP_BERT(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "QGSP_BERT.icc" +typedef TQGSP_BERT QGSP_BERT; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/QGSP_BERT/include/QGSP_BERT.icc b/hadronic_lists/lists/QGSP_BERT/include/QGSP_BERT.icc new file mode 100644 index 0000000000..c4da127f12 --- /dev/null +++ b/hadronic_lists/lists/QGSP_BERT/include/QGSP_BERT.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" + +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsQGSP_BERT.hh" + +template TQGSP_BERT::TQGSP_BERT(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: QGSP_BERT 1.1"< TQGSP_BERT::~TQGSP_BERT() +{ +} + +template void TQGSP_BERT::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "QGSP_BERT::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSP_BERT/src/HadronPhysicsQGSP_BERT.cc b/hadronic_lists/lists/QGSP_BERT/src/HadronPhysicsQGSP_BERT.cc new file mode 100644 index 0000000000..8061625310 --- /dev/null +++ b/hadronic_lists/lists/QGSP_BERT/src/HadronPhysicsQGSP_BERT.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. * +// ******************************************************************** +// +#include "HadronPhysicsQGSP_BERT.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::HadronPhysicsQGSP_BERT(const G4String& name) + : G4VPhysicsConstructor(name) +{ + theNeutrons.RegisterMe(&theQGSPNeutron); + theNeutrons.RegisterMe(&theLEPNeutron); + theNeutrons.RegisterMe(&theBertiniNeutron); + theLEPNeutron.SetMaxInelasticEnergy(25*GeV); + theLEPNeutron.SetMinInelasticEnergy(2.8*GeV); + theBertiniNeutron.SetMaxEnergy(3.2*GeV); + theBertiniNeutron.SetMinEnergy(0.0*GeV); + + thePro.RegisterMe(&theQGSPPro); + thePro.RegisterMe(&theLEPPro); + thePro.RegisterMe(&theBertiniPro); + theLEPPro.SetMaxEnergy(25*GeV); + theLEPPro.SetMinEnergy(2.8*GeV); + theBertiniPro.SetMaxEnergy(3.2*GeV); + + thePiK.RegisterMe(&theQGSPPiK); + thePiK.RegisterMe(&theLEPPiK); + thePiK.RegisterMe(&theBertiniPiK); + theLEPPiK.SetMaxEnergy(25*GeV); + theLEPPiK.SetMinPionEnergy(2.8*GeV); + theBertiniPiK.SetMaxEnergy(3.2*GeV); + +} + +HadronPhysicsQGSP_BERT::~HadronPhysicsQGSP_BERT() {} + +void HadronPhysicsQGSP_BERT::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSP_BERT::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSP_BIC/GNUmakefile b/hadronic_lists/lists/QGSP_BIC/GNUmakefile new file mode 100644 index 0000000000..99bad69c92 --- /dev/null +++ b/hadronic_lists/lists/QGSP_BIC/GNUmakefile @@ -0,0 +1,2 @@ +name := QGSP_BIC +include ../common.gmk diff --git a/hadronic_lists/lists/QGSP_BIC/include/HadronPhysicsQGSP_BIC.hh b/hadronic_lists/lists/QGSP_BIC/include/HadronPhysicsQGSP_BIC.hh new file mode 100644 index 0000000000..5de37c6812 --- /dev/null +++ b/hadronic_lists/lists/QGSP_BIC/include/HadronPhysicsQGSP_BIC.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsQGSP_BIC_h +#define HadronPhysicsQGSP_BIC_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4QGSPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4QGSPProtonBuilder.hh" +#include "G4BinaryProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4QGSPNeutronBuilder.hh" +#include "G4BinaryNeutronBuilder.hh" + +class HadronPhysicsQGSP_BIC : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSP_BIC(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSP_BIC(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4QGSPNeutronBuilder theQGSPNeutron; + G4BinaryNeutronBuilder theBinaryNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4QGSPPiKBuilder theQGSPPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4QGSPProtonBuilder theQGSPPro; + G4BinaryProtonBuilder theBinaryPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/QGSP_BIC/include/QGSP_BIC.hh b/hadronic_lists/lists/QGSP_BIC/include/QGSP_BIC.hh new file mode 100644 index 0000000000..3a5cd8dba3 --- /dev/null +++ b/hadronic_lists/lists/QGSP_BIC/include/QGSP_BIC.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TQGSP_BIC_h +#define TQGSP_BIC_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TQGSP_BIC: public T +{ +public: + TQGSP_BIC(); + virtual ~TQGSP_BIC(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "QGSP_BIC.icc" +typedef TQGSP_BIC QGSP_BIC; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/QGSP_BIC/include/QGSP_BIC.icc b/hadronic_lists/lists/QGSP_BIC/include/QGSP_BIC.icc new file mode 100644 index 0000000000..26726c01db --- /dev/null +++ b/hadronic_lists/lists/QGSP_BIC/include/QGSP_BIC.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EMPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" + +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsQGSP_BIC.hh" + +template TQGSP_BIC::TQGSP_BIC(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: QGSP_BIC 1.1"< TQGSP_BIC::~TQGSP_BIC() +{ +} + +template void TQGSP_BIC::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "QGSP_BIC::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + + +} + + + +// 2002 by J.P. Wellisch diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4EMModelBuilder.cc b/hadronic_lists/lists/QGSP_BIC/src/HadronPhysicsQGSP_BIC.cc similarity index 54% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4EMModelBuilder.cc rename to hadronic_lists/lists/QGSP_BIC/src/HadronPhysicsQGSP_BIC.cc index e027eb740e..f8fe65e82f 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4EMModelBuilder.cc +++ b/hadronic_lists/lists/QGSP_BIC/src/HadronPhysicsQGSP_BIC.cc @@ -20,51 +20,63 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "G4EMModelBuilder.hh" +#include "HadronPhysicsQGSP_BIC.hh" #include "globals.hh" #include "G4ios.hh" #include - - -G4EMModelBuilder:: -G4EMModelBuilder() {} - -G4EMModelBuilder:: -~G4EMModelBuilder() {} - #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" -#include "G4Gamma.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "G4ProcessManager.hh" +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" -void G4EMModelBuilder::Build() +HadronPhysicsQGSP_BIC::HadronPhysicsQGSP_BIC(const G4String& name) + : G4VPhysicsConstructor(name) { - G4ProcessManager * pManager = 0; + theNeutrons.RegisterMe(&theQGSPNeutron); + theNeutrons.RegisterMe(&theLEPNeutron); + theNeutrons.RegisterMe(&theBinaryNeutron); + theLEPNeutron.SetMaxInelasticEnergy(25*GeV); + theLEPNeutron.SetMinInelasticEnergy(2.8*GeV); + theBinaryNeutron.SetMaxEnergy(3.2*GeV); + + thePro.RegisterMe(&theQGSPPro); + thePro.RegisterMe(&theLEPPro); + thePro.RegisterMe(&theBinaryPro); + theLEPPro.SetMaxEnergy(25*GeV); + theLEPPro.SetMinEnergy(2.8*GeV); + theBinaryPro.SetMaxEnergy(3.2*GeV); - pManager = G4Gamma::Gamma()->GetProcessManager(); - pManager->AddDiscreteProcess(&thePhotoEffect); - pManager->AddDiscreteProcess(&theComptonEffect); - pManager->AddDiscreteProcess(&thePairProduction); + thePiK.RegisterMe(&theQGSPPiK); + thePiK.RegisterMe(&theLEPPiK); + theLEPPiK.SetMaxEnergy(25*GeV); + +} - pManager = G4Electron::Electron()->GetProcessManager(); - pManager->AddDiscreteProcess(&theElectronBremsStrahlung); - pManager->AddProcess(&theElectronIonisation, ordInActive,2, 2); - pManager->AddProcess(&theElectronMultipleScattering); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&theElectronMultipleScattering, idxPostStep, 1); +HadronPhysicsQGSP_BIC::~HadronPhysicsQGSP_BIC() {} - pManager = G4Positron::Positron()->GetProcessManager(); - pManager->AddDiscreteProcess(&thePositronBremsStrahlung); - pManager->AddDiscreteProcess(&theAnnihilation); - pManager->AddRestProcess(&theAnnihilation); - pManager->AddProcess(&thePositronIonisation, ordInActive,2, 2); - pManager->AddProcess(&thePositronMultipleScattering); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxAlongStep, 1); - pManager->SetProcessOrdering(&thePositronMultipleScattering, idxPostStep, 1); +void HadronPhysicsQGSP_BIC::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSP_BIC::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); } // 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSP_GN/GNUmakefile b/hadronic_lists/lists/QGSP_GN/GNUmakefile new file mode 100644 index 0000000000..84894c6944 --- /dev/null +++ b/hadronic_lists/lists/QGSP_GN/GNUmakefile @@ -0,0 +1,2 @@ +name := QGSP_GN +include ../common.gmk diff --git a/hadronic_lists/lists/QGSP_GN/include/HadronPhysicsQGSP.hh b/hadronic_lists/lists/QGSP_GN/include/HadronPhysicsQGSP.hh new file mode 100644 index 0000000000..3c1582be13 --- /dev/null +++ b/hadronic_lists/lists/QGSP_GN/include/HadronPhysicsQGSP.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsQGSP_h +#define HadronPhysicsQGSP_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4QGSPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4QGSPProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4QGSPNeutronBuilder.hh" + +class HadronPhysicsQGSP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSP(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4QGSPNeutronBuilder theQGSPNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4QGSPPiKBuilder theQGSPPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4QGSPProtonBuilder theQGSPPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/QGSP_GN/include/QGSP_GN.hh b/hadronic_lists/lists/QGSP_GN/include/QGSP_GN.hh new file mode 100644 index 0000000000..1cdce45a64 --- /dev/null +++ b/hadronic_lists/lists/QGSP_GN/include/QGSP_GN.hh @@ -0,0 +1,52 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 TQGSP_GN_h +#define TQGSP_GN_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TQGSP_GN: public T +{ +public: + TQGSP_GN(); + virtual ~TQGSP_GN(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "QGSP_GN.icc" +typedef TQGSP_GN QGSP_GN; + +// 2002 by J.P. Wellisch + +#endif + + + diff --git a/hadronic_lists/lists/QGSP_GN/include/QGSP_GN.icc b/hadronic_lists/lists/QGSP_GN/include/QGSP_GN.icc new file mode 100644 index 0000000000..83f20e80b9 --- /dev/null +++ b/hadronic_lists/lists/QGSP_GN/include/QGSP_GN.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EM_GNPhysics.hh" +#include "MuonPhysics.hh" +#include "HadronPhysicsQGSP.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsQGSP.hh" + +template TQGSP_GN::TQGSP_GN(): T() +{ + // default cut value (1.0mm) + // defaultCutValue = 1.0*mm; + G4DataQuestionaire it(photon); + G4cout << "You are using the simulation engine: QGSP_GN 2.5"< TQGSP_GN::~TQGSP_GN() +{ +} + +template void TQGSP_GN::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "QGSP_GN::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + +} + + + +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSP_GN/src/HadronPhysicsQGSP.cc b/hadronic_lists/lists/QGSP_GN/src/HadronPhysicsQGSP.cc new file mode 100644 index 0000000000..7d74aaceb9 --- /dev/null +++ b/hadronic_lists/lists/QGSP_GN/src/HadronPhysicsQGSP.cc @@ -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. * +// ******************************************************************** +// +#include "HadronPhysicsQGSP.hh" + +#include "globals.hh" +#include "G4ios.hh" +#include +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +#include "G4MesonConstructor.hh" +#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() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSP::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/QGSP_HP/GNUmakefile b/hadronic_lists/lists/QGSP_HP/GNUmakefile new file mode 100644 index 0000000000..57e4285ad2 --- /dev/null +++ b/hadronic_lists/lists/QGSP_HP/GNUmakefile @@ -0,0 +1,2 @@ +name := QGSP_HP +include ../common.gmk diff --git a/hadronic_lists/lists/QGSP_HP/include/HadronPhysicsQGSP_HP.hh b/hadronic_lists/lists/QGSP_HP/include/HadronPhysicsQGSP_HP.hh new file mode 100644 index 0000000000..1b24257617 --- /dev/null +++ b/hadronic_lists/lists/QGSP_HP/include/HadronPhysicsQGSP_HP.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. * +// ******************************************************************** +// +#ifndef HadronPhysicsQGSP_HP_h +#define HadronPhysicsQGSP_HP_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" +#include "G4HadronQEDBuilder.hh" +#include "G4StoppingHadronBuilder.hh" +#include "G4MiscLHEPBuilder.hh" + +#include "G4PiKBuilder.hh" +#include "G4LEPPiKBuilder.hh" +#include "G4QGSPPiKBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4LEPProtonBuilder.hh" +#include "G4QGSPProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4LEPNeutronBuilder.hh" +#include "G4QGSPNeutronBuilder.hh" +#include "G4NeutronHPBuilder.hh" + +class HadronPhysicsQGSP_HP : public G4VPhysicsConstructor +{ + public: + HadronPhysicsQGSP_HP(const G4String& name ="hadron"); + virtual ~HadronPhysicsQGSP_HP(); + + public: + virtual void ConstructParticle(); + virtual void ConstructProcess(); + + private: + G4NeutronBuilder theNeutrons; + G4LEPNeutronBuilder theLEPNeutron; + G4QGSPNeutronBuilder theQGSPNeutron; + G4NeutronHPBuilder theHPNeutron; + + G4PiKBuilder thePiK; + G4LEPPiKBuilder theLEPPiK; + G4QGSPPiKBuilder theQGSPPiK; + + G4ProtonBuilder thePro; + G4LEPProtonBuilder theLEPPro; + G4QGSPProtonBuilder theQGSPPro; + + G4MiscLHEPBuilder theMiscLHEP; + G4StoppingHadronBuilder theStoppingHadron; + G4HadronQEDBuilder theHadronQED; +}; + +// 2002 by J.P. Wellisch + +#endif + diff --git a/hadronic_lists/lists/QGSP_HP/include/QGSP_HP.hh b/hadronic_lists/lists/QGSP_HP/include/QGSP_HP.hh new file mode 100644 index 0000000000..33fe54019c --- /dev/null +++ b/hadronic_lists/lists/QGSP_HP/include/QGSP_HP.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. * +// ******************************************************************** +// +#ifndef TQGSP_HP_h +#define TQGSP_HP_h 1 + +#include "G4VModularPhysicsList.hh" +#include "globals.hh" +#include "CompileTimeConstraints.hh" + +template +class TQGSP_HP: public T +{ +public: + TQGSP_HP(); + virtual ~TQGSP_HP(); + +public: + // SetCuts() + virtual void SetCuts(); + +private: + enum {ok = CompileTimeConstraints::IsA::ok }; +}; +#include "QGSP_HP.icc" +typedef TQGSP_HP QGSP_HP; + +// 2002 by J.P. Wellisch +#endif + + + diff --git a/hadronic_lists/lists/QGSP_HP/include/QGSP_HP.icc b/hadronic_lists/lists/QGSP_HP/include/QGSP_HP.icc new file mode 100644 index 0000000000..f26c7c7ec0 --- /dev/null +++ b/hadronic_lists/lists/QGSP_HP/include/QGSP_HP.icc @@ -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. * +// ******************************************************************** +// + +#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 "GeneralPhysics.hh" +#include "EM_GNPhysics.hh" +#include "MuonPhysics.hh" +#include "IonPhysics.hh" +#include "G4DataQuestionaire.hh" +#include "HadronPhysicsQGSP_HP.hh" + +template TQGSP_HP::TQGSP_HP(): T() +{ + G4DataQuestionaire it(photon, neutron); + G4cout << "You are using the simulation engine: QGSP_HP 2.2"< TQGSP_HP::~TQGSP_HP() +{ +} + +template void TQGSP_HP::SetCuts() +{ + if (verboseLevel >1){ + G4cout << "QGSP_HP::SetCuts:"; + } + // " G4VUserPhysicsList::SetCutsWithDefault" method sets + // the default cut value for all particle types + + SetCutsWithDefault(); + + G4VUserPhysicsList::DumpCutValuesTable(); + +} +// 2002 by J.P. Wellisch + + + diff --git a/hadronic_lists/lists/QGSP_HP/src/HadronPhysicsQGSP_HP.cc b/hadronic_lists/lists/QGSP_HP/src/HadronPhysicsQGSP_HP.cc new file mode 100644 index 0000000000..e40801a23c --- /dev/null +++ b/hadronic_lists/lists/QGSP_HP/src/HadronPhysicsQGSP_HP.cc @@ -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. * +// ******************************************************************** +// +#include "HadronPhysicsQGSP_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_HP::HadronPhysicsQGSP_HP(const G4String& name) + : G4VPhysicsConstructor(name) +{ + theNeutrons.RegisterMe(&theQGSPNeutron); + theNeutrons.RegisterMe(&theLEPNeutron); + theLEPNeutron.SetMaxInelasticEnergy(25*GeV); + theLEPNeutron.SetMinEnergy(19.9*MeV); + theNeutrons.RegisterMe(&theHPNeutron); + + thePro.RegisterMe(&theQGSPPro); + thePro.RegisterMe(&theLEPPro); + theLEPPro.SetMaxEnergy(25*GeV); + + thePiK.RegisterMe(&theQGSPPiK); + thePiK.RegisterMe(&theLEPPiK); + theLEPPiK.SetMaxEnergy(25*GeV); +} + +HadronPhysicsQGSP_HP::~HadronPhysicsQGSP_HP() {} + +void HadronPhysicsQGSP_HP::ConstructParticle() +{ + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +#include "G4ProcessManager.hh" +void HadronPhysicsQGSP_HP::ConstructProcess() +{ + theNeutrons.Build(); + thePro.Build(); + thePiK.Build(); + theMiscLHEP.Build(); + theStoppingHadron.Build(); + theHadronQED.Build(); +} +// 2002 by J.P. Wellisch diff --git a/hadronic_lists/lists/README b/hadronic_lists/lists/README new file mode 100644 index 0000000000..c7f1dddb9f --- /dev/null +++ b/hadronic_lists/lists/README @@ -0,0 +1,21 @@ +Installation instructions: + + - Download the tar files of the physics simulation engine you want to use. + - 'tar -xvf', whereever you want into a diretory called 'lists'. + - set the environment: + - G4INSTALL as usual to point to your geant4 installation. + - G4LISTS_BASE to point to the directory that contains the 'lists' 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: + - The default is: defaultCutValue = 0.7*mm; + - To override this value, please call the + "void SetDefaultCutValue(G4double newCutValue)" method. diff --git a/hadronic_lists/lists/common.gmk b/hadronic_lists/lists/common.gmk new file mode 100644 index 0000000000..5dc179e25b --- /dev/null +++ b/hadronic_lists/lists/common.gmk @@ -0,0 +1,109 @@ +# $Id: common.gmk,v 1.9 2003/12/10 09:58:03 gcosmo Exp $ +# -------------------------------------------------------------- +# Setup for hadronic physics-lists libraries +# -------------------------------------------------------------- + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +# If G4LISTS_BASE is not defined, place hadronic physics-lists libraries and +# temporaries in the default G4LIB and G4TMP area (whatever they point to) +# inside a specific directory ".lists_build". +# Otherwise, create a self-consistent installation under G4LISTS_BASE. +# +ifdef G4LISTS_BASE + G4LIB = $(G4LISTS_BASE)/lists/.lists_build/lib + G4TMP = $(G4LISTS_BASE)/lists/.lists_build/tmp +else + G4LISTS_BASE = $(G4INSTALL)/hadronic_lists + ifdef G4LIB + G4LIB := $(G4LIB)/.lists_build + else + G4LIB = $(G4INSTALL)/lib/.lists_build + endif + ifdef G4TMP + G4TMP := $(G4TMP)/.lists_build + else + G4TMP = $(G4INSTALL)/tmp/.lists_build + endif +endif + +LISTS_INCLUDE = $(G4LISTS_BASE) + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/geometry/magneticfield/include \ + -I$(G4BASE)/geometry/navigation/include \ + -I$(G4BASE)/intercoms/include \ + -I$(G4BASE)/interface/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/event/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/run/include \ + -I$(G4BASE)/tracking/include \ + -I$(G4BASE)/digits_hits/hits/include \ + -I$(G4BASE)/digits_hits/digits/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/decay/include \ + -I$(G4BASE)/processes/cuts/include \ + -I$(G4BASE)/processes/optical/include \ + -I$(G4BASE)/processes/transportation/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ + -I$(G4BASE)/processes/electromagnetic/standard/include \ + -I$(G4BASE)/processes/electromagnetic/muons/include \ + -I$(G4BASE)/processes/electromagnetic/utils/include \ + -I$(G4BASE)/processes/electromagnetic/xrays/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/stopping/include \ + -I$(G4BASE)/processes/hadronic/management/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(LISTS_INCLUDE)/lists/Packaging/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/binary_cascade/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ + -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/body/include \ + -I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/interface/include \ + -I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fission/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/gem_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/handler/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/multifragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/high_energy/include \ + -I$(G4BASE)/processes/hadronic/models/im_r_matrix/include \ + -I$(G4BASE)/processes/hadronic/models/isotope_production/include \ + -I$(G4BASE)/processes/hadronic/models/leading_particle/include \ + -I$(G4BASE)/processes/hadronic/models/low_energy/include \ + -I$(G4BASE)/processes/hadronic/models/neutron_hp/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/diffraction/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/hadronization/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/management/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/qgsm/include \ + -I$(G4BASE)/processes/hadronic/models/pre_equilibrium/exciton_model/include \ + -I$(G4BASE)/processes/hadronic/models/radioactive_decay/include \ + -I$(G4BASE)/processes/hadronic/models/theo_high_energy/include \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/materials/include + + +include $(G4INSTALL)/config/common.gmk diff --git a/source/GNUmakefile b/source/GNUmakefile index d5448aee1f..e4e58bf25c 100644 --- a/source/GNUmakefile +++ b/source/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.38 2002/11/25 11:58:25 gcosmo Exp $ +# $Id: GNUmakefile,v 1.41 2003/12/05 07:44:10 gcosmo Exp $ # ----------------------------------------------------------------- # "gmake" makes default libraries for each subdomain. # "gmake global" makes global libraries for each subdomain. @@ -12,7 +12,7 @@ # # (The .o files(s) are made by implicit rules.) -SUBDIR1 = global particles processes geometry digits+hits +SUBDIR1 = global particles processes geometry digits_hits SUBDIR2 = event tracking track materials run graphics_reps intercoms SUBDIR2 += parameterisations persistency readout SUBDIR3 = interfaces visualization @@ -28,7 +28,7 @@ G4LIBDIR := $(G4LIB)/$(G4SYSTEM) G4TMPDIR := $(G4TMP)/$(G4SYSTEM) unique := $(shell echo $$$$) -.PHONY: all glob global libmap includes clean_libs clean clean_all +.PHONY: all glob global libmap includes clean_libs clean clean_lists clean_all all: @for dir in $(SUBDIR1); do (cd $$dir && $(MAKE)); done;: @@ -116,10 +116,28 @@ clean: @rm -rf $(G4LIBDIR) @rm -rf $(G4BINDIR) @rm -rf $(G4INSTALL)/.config/bin/$(G4SYSTEM) + @echo Removing physics-lists installation ... +ifndef G4LISTS_BASE + @rm -rf $(G4LIB)/.lists_build/$(G4SYSTEM) + @rm -rf $(G4TMP)/.lists_build/$(G4SYSTEM) +else + @rm -rf $(G4LISTS_BASE)/lists/.lists_build/lib/$(G4SYSTEM) + @rm -rf $(G4LISTS_BASE)/lists/.lists_build/tmp/$(G4SYSTEM) +endif ifdef CFRONT @rm -rf $(G4TREP) endif +clean_lists: + @echo Removing physics-lists installation ... +ifndef G4LISTS_BASE + @rm -rf $(G4LIB)/.lists_build/$(G4SYSTEM) + @rm -rf $(G4TMP)/.lists_build/$(G4SYSTEM) +else + @rm -rf $(G4LISTS_BASE)/lists/.lists_build/lib/$(G4SYSTEM) + @rm -rf $(G4LISTS_BASE)/lists/.lists_build/tmp/$(G4SYSTEM) +endif + # Pay _extremely_ attention before executing the following target !! # clean_all: @@ -132,5 +150,9 @@ clean_all: @rm -rf $(G4BIN) @echo Removing $(G4INCLUDE) ... @rm -rf $(G4INCLUDE) +ifdef G4LISTS_BASE + @echo Removing physics-lists installation ... + @rm -rf $(G4LISTS_BASE)/lists/.lists_build +endif @echo Removing installation configurations ... @rm -rf $(G4INSTALL)/.config diff --git a/source/digits+hits/GNUmakefile b/source/digits_hits/GNUmakefile similarity index 81% rename from source/digits+hits/GNUmakefile rename to source/digits_hits/GNUmakefile index cca2d6638b..a9ec29d701 100644 --- a/source/digits+hits/GNUmakefile +++ b/source/digits_hits/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:06:23 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/03 10:24:01 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for digits+hits library. Makoto Asai, 1/11/96. # -------------------------------------------------------------- -name := G4digits+hits +name := G4digits_hits SUBDIRS := detector hits digits SUBLIBS = G4detector G4digits G4hits diff --git a/source/digits+hits/History b/source/digits_hits/History similarity index 94% rename from source/digits+hits/History rename to source/digits_hits/History index 82e59a4501..0989edae09 100644 --- a/source/digits+hits/History +++ b/source/digits_hits/History @@ -1,4 +1,4 @@ -$Id: History,v 1.20 2003/06/03 09:00:03 gcosmo Exp $ +$Id: History,v 1.2 2003/10/03 10:27:10 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,11 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Oct 04, 2003, G.Cosmo (digits_hits-V05-02-00) +- Imported files from directory digits+hits. +- Changed name of global library to G4digits_hits. +- Added dependency on new module geometry/navigation where needed. + Jun 03, 2003, G.Cosmo (digits_hits-V05-01-01) - Fixed trivial warning in G4VHit.cc. diff --git a/source/digits+hits/detector/GNUmakefile b/source/digits_hits/detector/GNUmakefile similarity index 83% rename from source/digits+hits/detector/GNUmakefile rename to source/digits_hits/detector/GNUmakefile index 9ca94050f3..e07a60976d 100644 --- a/source/digits+hits/detector/GNUmakefile +++ b/source/digits_hits/detector/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2002/10/28 10:01:49 dressel Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/03 10:29:19 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for digits+hits library. Makoto Asai, 1/11/96. # -------------------------------------------------------------- @@ -19,9 +19,10 @@ CPPFLAGS += \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/materials/include \ -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/biasing/include \ -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/digits+hits/hits/include \ + -I$(G4BASE)/geometry/navigation/include \ + -I$(G4BASE)/geometry/biasing/include \ + -I$(G4BASE)/digits_hits/hits/include \ -I$(G4BASE)/intercoms/include include $(G4INSTALL)/config/common.gmk diff --git a/source/digits+hits/detector/History b/source/digits_hits/detector/History similarity index 76% rename from source/digits+hits/detector/History rename to source/digits_hits/detector/History index bfb5cafe6a..0495712bcc 100644 --- a/source/digits+hits/detector/History +++ b/source/digits_hits/detector/History @@ -1,4 +1,4 @@ -$Id: History,v 1.4 2002/11/04 10:51:49 dressel Exp $ +$Id: History,v 1.2 2003/10/03 10:29:19 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,12 +17,15 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Oct, 4th 2003 G.Cosmo +- Imported from digits+hits directory. + Nov, 4th 2002 M.Dressel - - remove G4std:: where it does not belong to +- Removed G4std:: where it does not belong to. Oct 28th, 2002 M.Dressel -- added G4CellScoreComposer[.hh.cc], G4CellScoreValues.hh, - G4CellStoreScorer[.hh.cc], G4TrackLogger[.hh.cc] +- Added G4CellScoreComposer[.hh.cc], G4CellScoreValues.hh, + G4CellStoreScorer[.hh.cc], G4TrackLogger[.hh.cc]. June 6, 98 M.Asai - Created. diff --git a/source/digits+hits/detector/include/G4CellScoreComposer.hh b/source/digits_hits/detector/include/G4CellScoreComposer.hh similarity index 96% rename from source/digits+hits/detector/include/G4CellScoreComposer.hh rename to source/digits_hits/detector/include/G4CellScoreComposer.hh index caf60a6abe..20620c9b44 100644 --- a/source/digits+hits/detector/include/G4CellScoreComposer.hh +++ b/source/digits_hits/detector/include/G4CellScoreComposer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CellScoreComposer.hh,v 1.2 2003/06/16 16:50:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CellScoreComposer.hh,v 1.1 2003/10/03 10:06:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CellScoreComposer diff --git a/source/digits+hits/detector/include/G4CellScoreValues.hh b/source/digits_hits/detector/include/G4CellScoreValues.hh similarity index 96% rename from source/digits+hits/detector/include/G4CellScoreValues.hh rename to source/digits_hits/detector/include/G4CellScoreValues.hh index 8ebcbeb56c..540fbfd1e0 100644 --- a/source/digits+hits/detector/include/G4CellScoreValues.hh +++ b/source/digits_hits/detector/include/G4CellScoreValues.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CellScoreValues.hh,v 1.2 2003/04/23 08:01:20 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CellScoreValues.hh,v 1.1 2003/10/03 10:07:07 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CellScoreValues diff --git a/source/digits+hits/detector/include/G4CellStoreScorer.hh b/source/digits_hits/detector/include/G4CellStoreScorer.hh similarity index 96% rename from source/digits+hits/detector/include/G4CellStoreScorer.hh rename to source/digits_hits/detector/include/G4CellStoreScorer.hh index d5fc550498..898e18da70 100644 --- a/source/digits+hits/detector/include/G4CellStoreScorer.hh +++ b/source/digits_hits/detector/include/G4CellStoreScorer.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4CellStoreScorer.hh,v 1.1 2002/10/28 10:01:50 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CellStoreScorer.hh,v 1.1 2003/10/03 10:07:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CellStoreScorer diff --git a/source/digits+hits/detector/include/G4CollectionNameVector.hh b/source/digits_hits/detector/include/G4CollectionNameVector.hh similarity index 94% rename from source/digits+hits/detector/include/G4CollectionNameVector.hh rename to source/digits_hits/detector/include/G4CollectionNameVector.hh index 1daccc7f3b..02cc3d4649 100644 --- a/source/digits+hits/detector/include/G4CollectionNameVector.hh +++ b/source/digits_hits/detector/include/G4CollectionNameVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CollectionNameVector.hh,v 1.3 2003/06/16 16:50:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CollectionNameVector.hh,v 1.1 2003/10/03 10:07:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4CollectionNameVector_H diff --git a/source/digits+hits/detector/include/G4HCtable.hh b/source/digits_hits/detector/include/G4HCtable.hh similarity index 96% rename from source/digits+hits/detector/include/G4HCtable.hh rename to source/digits_hits/detector/include/G4HCtable.hh index 394ce303a0..71ece0d6c6 100644 --- a/source/digits+hits/detector/include/G4HCtable.hh +++ b/source/digits_hits/detector/include/G4HCtable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HCtable.hh,v 1.7 2003/06/16 16:50:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HCtable.hh,v 1.1 2003/10/03 10:08:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4HCtable_H diff --git a/source/digits+hits/detector/include/G4SDManager.hh b/source/digits_hits/detector/include/G4SDManager.hh similarity index 97% rename from source/digits+hits/detector/include/G4SDManager.hh rename to source/digits_hits/detector/include/G4SDManager.hh index 657a7e83df..9a23c62545 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.4 2001/07/11 09:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SDManager.hh,v 1.1 2003/10/03 10:08:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4SDManager_h diff --git a/source/digits+hits/detector/include/G4SDStructure.hh b/source/digits_hits/detector/include/G4SDStructure.hh similarity index 96% rename from source/digits+hits/detector/include/G4SDStructure.hh rename to source/digits_hits/detector/include/G4SDStructure.hh index 2d2c0ae956..31028eda1b 100644 --- a/source/digits+hits/detector/include/G4SDStructure.hh +++ b/source/digits_hits/detector/include/G4SDStructure.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SDStructure.hh,v 1.8 2003/06/16 16:50:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SDStructure.hh,v 1.1 2003/10/03 10:08:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4SDStructure_h diff --git a/source/digits+hits/detector/include/G4SDmessenger.hh b/source/digits_hits/detector/include/G4SDmessenger.hh similarity index 95% rename from source/digits+hits/detector/include/G4SDmessenger.hh rename to source/digits_hits/detector/include/G4SDmessenger.hh index 848f3e2333..7d14e9147c 100644 --- a/source/digits+hits/detector/include/G4SDmessenger.hh +++ b/source/digits_hits/detector/include/G4SDmessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SDmessenger.hh,v 1.4 2001/07/11 09:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SDmessenger.hh,v 1.1 2003/10/03 10:09:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4SDmessenger_h diff --git a/source/digits+hits/detector/include/G4SensitiveVolumeList.hh b/source/digits_hits/detector/include/G4SensitiveVolumeList.hh similarity index 96% rename from source/digits+hits/detector/include/G4SensitiveVolumeList.hh rename to source/digits_hits/detector/include/G4SensitiveVolumeList.hh index 967c781c91..c6f46fbdf9 100644 --- a/source/digits+hits/detector/include/G4SensitiveVolumeList.hh +++ b/source/digits_hits/detector/include/G4SensitiveVolumeList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SensitiveVolumeList.hh,v 1.7 2003/06/16 16:50:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SensitiveVolumeList.hh,v 1.1 2003/10/03 10:09:17 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-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 similarity index 95% rename from source/digits+hits/detector/include/G4SensitiveVolumeList.icc rename to source/digits_hits/detector/include/G4SensitiveVolumeList.icc index 97ad6c5d03..5c38fd5af2 100644 --- a/source/digits+hits/detector/include/G4SensitiveVolumeList.icc +++ b/source/digits_hits/detector/include/G4SensitiveVolumeList.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SensitiveVolumeList.icc,v 1.6 2003/06/16 16:50:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SensitiveVolumeList.icc,v 1.1 2003/10/03 10:09:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-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 similarity index 96% rename from source/digits+hits/detector/include/G4TrackLogger.hh rename to source/digits_hits/detector/include/G4TrackLogger.hh index c5b7fc5f4b..1e8cd5f3c0 100644 --- a/source/digits+hits/detector/include/G4TrackLogger.hh +++ b/source/digits_hits/detector/include/G4TrackLogger.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4TrackLogger.hh,v 1.2 2003/06/16 16:50:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TrackLogger.hh,v 1.1 2003/10/03 10:09:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4TrackLogger diff --git a/source/digits+hits/detector/include/G4VReadOutGeometry.hh b/source/digits_hits/detector/include/G4VReadOutGeometry.hh similarity index 97% rename from source/digits+hits/detector/include/G4VReadOutGeometry.hh rename to source/digits_hits/detector/include/G4VReadOutGeometry.hh index ee0c0c68e3..d077e0aeb2 100644 --- a/source/digits+hits/detector/include/G4VReadOutGeometry.hh +++ b/source/digits_hits/detector/include/G4VReadOutGeometry.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VReadOutGeometry.hh,v 1.3 2001/07/11 09:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VReadOutGeometry.hh,v 1.1 2003/10/03 10:10:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ diff --git a/source/digits+hits/detector/include/G4VSensitiveDetector.hh b/source/digits_hits/detector/include/G4VSensitiveDetector.hh similarity index 98% rename from source/digits+hits/detector/include/G4VSensitiveDetector.hh rename to source/digits_hits/detector/include/G4VSensitiveDetector.hh index 28cdb3e488..7f24acb0be 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.8 2003/05/20 00:50:36 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSensitiveDetector.hh,v 1.1 2003/10/03 10:10:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VSensitiveDetector_h diff --git a/source/digits+hits/detector/src/G4CellScoreComposer.cc b/source/digits_hits/detector/src/G4CellScoreComposer.cc similarity index 97% rename from source/digits+hits/detector/src/G4CellScoreComposer.cc rename to source/digits_hits/detector/src/G4CellScoreComposer.cc index 215b1ea38c..6f1df48236 100644 --- a/source/digits+hits/detector/src/G4CellScoreComposer.cc +++ b/source/digits_hits/detector/src/G4CellScoreComposer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CellScoreComposer.cc,v 1.4 2003/06/16 16:50:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CellScoreComposer.cc,v 1.1 2003/10/03 10:10:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/digits+hits/detector/src/G4CellStoreScorer.cc b/source/digits_hits/detector/src/G4CellStoreScorer.cc similarity index 96% rename from source/digits+hits/detector/src/G4CellStoreScorer.cc rename to source/digits_hits/detector/src/G4CellStoreScorer.cc index 73e97717e1..9570bf12ca 100644 --- a/source/digits+hits/detector/src/G4CellStoreScorer.cc +++ b/source/digits_hits/detector/src/G4CellStoreScorer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CellStoreScorer.cc,v 1.2 2002/11/04 10:51:49 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CellStoreScorer.cc,v 1.1 2003/10/03 10:10:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/digits+hits/detector/src/G4HCtable.cc b/source/digits_hits/detector/src/G4HCtable.cc similarity index 95% rename from source/digits+hits/detector/src/G4HCtable.cc rename to source/digits_hits/detector/src/G4HCtable.cc index 356f026c29..5b88e3a83c 100644 --- a/source/digits+hits/detector/src/G4HCtable.cc +++ b/source/digits_hits/detector/src/G4HCtable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HCtable.cc,v 1.7 2003/06/16 16:50:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HCtable.cc,v 1.1 2003/10/03 10:11:12 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4HCtable.hh" diff --git a/source/digits+hits/detector/src/G4SDManager.cc b/source/digits_hits/detector/src/G4SDManager.cc similarity index 97% rename from source/digits+hits/detector/src/G4SDManager.cc rename to source/digits_hits/detector/src/G4SDManager.cc index ed557a518c..90b4fb404f 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.5 2002/11/27 19:03:42 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SDManager.cc,v 1.1 2003/10/03 10:11:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4SDManager.hh" diff --git a/source/digits+hits/detector/src/G4SDStructure.cc b/source/digits_hits/detector/src/G4SDStructure.cc similarity index 98% rename from source/digits+hits/detector/src/G4SDStructure.cc rename to source/digits_hits/detector/src/G4SDStructure.cc index eb96d518cc..e75fb00e05 100644 --- a/source/digits+hits/detector/src/G4SDStructure.cc +++ b/source/digits_hits/detector/src/G4SDStructure.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SDStructure.cc,v 1.9 2003/06/16 16:50:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SDStructure.cc,v 1.1 2003/10/03 10:11:40 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4SDStructure diff --git a/source/digits+hits/detector/src/G4SDmessenger.cc b/source/digits_hits/detector/src/G4SDmessenger.cc similarity index 96% rename from source/digits+hits/detector/src/G4SDmessenger.cc rename to source/digits_hits/detector/src/G4SDmessenger.cc index 53c991e050..9810156e40 100644 --- a/source/digits+hits/detector/src/G4SDmessenger.cc +++ b/source/digits_hits/detector/src/G4SDmessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SDmessenger.cc,v 1.3 2001/07/11 09:58:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SDmessenger.cc,v 1.1 2003/10/03 10:11:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // --------------------------------------------------------------------- diff --git a/source/digits+hits/detector/src/G4SensitiveVolumeList.cc b/source/digits_hits/detector/src/G4SensitiveVolumeList.cc similarity index 97% rename from source/digits+hits/detector/src/G4SensitiveVolumeList.cc rename to source/digits_hits/detector/src/G4SensitiveVolumeList.cc index 839c893b9e..43104a0e24 100644 --- a/source/digits+hits/detector/src/G4SensitiveVolumeList.cc +++ b/source/digits_hits/detector/src/G4SensitiveVolumeList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SensitiveVolumeList.cc,v 1.5 2001/07/13 15:00:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SensitiveVolumeList.cc,v 1.1 2003/10/03 10:12:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/digits+hits/detector/src/G4TrackLogger.cc b/source/digits_hits/detector/src/G4TrackLogger.cc similarity index 95% rename from source/digits+hits/detector/src/G4TrackLogger.cc rename to source/digits_hits/detector/src/G4TrackLogger.cc index d85c85812e..c2d008cf97 100644 --- a/source/digits+hits/detector/src/G4TrackLogger.cc +++ b/source/digits_hits/detector/src/G4TrackLogger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrackLogger.cc,v 1.2 2002/11/04 10:51:49 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TrackLogger.cc,v 1.1 2003/10/03 10:12:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/digits+hits/detector/src/G4VReadOutGeometry.cc b/source/digits_hits/detector/src/G4VReadOutGeometry.cc similarity index 98% rename from source/digits+hits/detector/src/G4VReadOutGeometry.cc rename to source/digits_hits/detector/src/G4VReadOutGeometry.cc index 1a03010683..495efab7c8 100644 --- a/source/digits+hits/detector/src/G4VReadOutGeometry.cc +++ b/source/digits_hits/detector/src/G4VReadOutGeometry.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VReadOutGeometry.cc,v 1.5 2001/07/13 15:00:09 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VReadOutGeometry.cc,v 1.1 2003/10/03 10:12:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4VReadOutGeometry.hh" diff --git a/source/digits+hits/detector/src/G4VSensitiveDetector.cc b/source/digits_hits/detector/src/G4VSensitiveDetector.cc similarity index 97% rename from source/digits+hits/detector/src/G4VSensitiveDetector.cc rename to source/digits_hits/detector/src/G4VSensitiveDetector.cc index ad81f3f0b7..b74f0ebdfe 100644 --- a/source/digits+hits/detector/src/G4VSensitiveDetector.cc +++ b/source/digits_hits/detector/src/G4VSensitiveDetector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSensitiveDetector.cc,v 1.8 2003/06/16 16:50:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSensitiveDetector.cc,v 1.1 2003/10/03 10:12:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4VSensitiveDetector #include "G4VSensitiveDetector.hh" diff --git a/source/digits+hits/digits/GNUmakefile b/source/digits_hits/digits/GNUmakefile similarity index 89% rename from source/digits+hits/digits/GNUmakefile rename to source/digits_hits/digits/GNUmakefile index fb6af36074..6978d8fd15 100644 --- a/source/digits+hits/digits/GNUmakefile +++ b/source/digits_hits/digits/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:06:27 gunter Exp $ +# $Id: GNUmakefile,v 1.1 2003/10/03 10:13:29 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for digits+hits library. Makoto Asai, 1/11/96. # -------------------------------------------------------------- diff --git a/source/digits+hits/digits/History b/source/digits_hits/digits/History similarity index 88% rename from source/digits+hits/digits/History rename to source/digits_hits/digits/History index 6cd916cddf..166a4b6e6a 100644 --- a/source/digits+hits/digits/History +++ b/source/digits_hits/digits/History @@ -1,4 +1,4 @@ -$Id: History,v 1.1 1999/01/07 16:06:27 gunter Exp $ +$Id: History,v 1.2 2003/10/03 10:30:28 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,5 +17,8 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +October 4, 03 G.Cosmo +- Imported from digits+hits directory. + June 6, 98 M.Asai - Created. diff --git a/source/digits+hits/digits/include/G4DCofThisEvent.hh b/source/digits_hits/digits/include/G4DCofThisEvent.hh similarity index 97% rename from source/digits+hits/digits/include/G4DCofThisEvent.hh rename to source/digits_hits/digits/include/G4DCofThisEvent.hh index ef087ea836..e1cd631538 100644 --- a/source/digits+hits/digits/include/G4DCofThisEvent.hh +++ b/source/digits_hits/digits/include/G4DCofThisEvent.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DCofThisEvent.hh,v 1.8 2003/06/16 16:50:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DCofThisEvent.hh,v 1.1 2003/10/03 10:14:01 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4DCofThisEvent_h diff --git a/source/digits+hits/digits/include/G4TDigiCollection.hh b/source/digits_hits/digits/include/G4TDigiCollection.hh similarity index 98% rename from source/digits+hits/digits/include/G4TDigiCollection.hh rename to source/digits_hits/digits/include/G4TDigiCollection.hh index f848a6b877..d16eab5536 100644 --- a/source/digits+hits/digits/include/G4TDigiCollection.hh +++ b/source/digits_hits/digits/include/G4TDigiCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TDigiCollection.hh,v 1.11 2003/06/16 16:50:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TDigiCollection.hh,v 1.1 2003/10/03 10:14:17 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4TDigiCollection_h diff --git a/source/digits+hits/digits/include/G4VDigi.hh b/source/digits_hits/digits/include/G4VDigi.hh similarity index 95% rename from source/digits+hits/digits/include/G4VDigi.hh rename to source/digits_hits/digits/include/G4VDigi.hh index 43e9e32de0..6a122a8d57 100644 --- a/source/digits+hits/digits/include/G4VDigi.hh +++ b/source/digits_hits/digits/include/G4VDigi.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDigi.hh,v 1.7 2001/07/13 15:00:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VDigi.hh,v 1.1 2003/10/03 10:14:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VDigi_h diff --git a/source/digits+hits/digits/include/G4VDigiCollection.hh b/source/digits_hits/digits/include/G4VDigiCollection.hh similarity index 96% rename from source/digits+hits/digits/include/G4VDigiCollection.hh rename to source/digits_hits/digits/include/G4VDigiCollection.hh index d246409358..51d14f3326 100644 --- a/source/digits+hits/digits/include/G4VDigiCollection.hh +++ b/source/digits_hits/digits/include/G4VDigiCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDigiCollection.hh,v 1.7 2001/07/13 15:00:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VDigiCollection.hh,v 1.1 2003/10/03 10:14:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VDigiCollection_h diff --git a/source/digits+hits/digits/src/G4DCofThisEvent.cc b/source/digits_hits/digits/src/G4DCofThisEvent.cc similarity index 95% rename from source/digits+hits/digits/src/G4DCofThisEvent.cc rename to source/digits_hits/digits/src/G4DCofThisEvent.cc index 3bb5573b24..163423dfef 100644 --- a/source/digits+hits/digits/src/G4DCofThisEvent.cc +++ b/source/digits_hits/digits/src/G4DCofThisEvent.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DCofThisEvent.cc,v 1.7 2003/06/16 16:50:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DCofThisEvent.cc,v 1.1 2003/10/03 10:15:09 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4DCofThisEvent.hh" diff --git a/source/digits+hits/digits/src/G4TDigiCollection.cc b/source/digits_hits/digits/src/G4TDigiCollection.cc similarity index 94% rename from source/digits+hits/digits/src/G4TDigiCollection.cc rename to source/digits_hits/digits/src/G4TDigiCollection.cc index ab79ee9be0..83c145cd6e 100644 --- a/source/digits+hits/digits/src/G4TDigiCollection.cc +++ b/source/digits_hits/digits/src/G4TDigiCollection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TDigiCollection.cc,v 1.4 2001/07/13 15:00:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TDigiCollection.cc,v 1.1 2003/10/03 10:15:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4TDigiCollection.hh" diff --git a/source/digits+hits/digits/src/G4VDigi.cc b/source/digits_hits/digits/src/G4VDigi.cc similarity index 94% rename from source/digits+hits/digits/src/G4VDigi.cc rename to source/digits_hits/digits/src/G4VDigi.cc index 813588ce69..9dfd58c5f4 100644 --- a/source/digits+hits/digits/src/G4VDigi.cc +++ b/source/digits_hits/digits/src/G4VDigi.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDigi.cc,v 1.7 2003/05/20 00:50:37 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VDigi.cc,v 1.1 2003/10/03 10:15:39 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4VDigi diff --git a/source/digits+hits/digits/src/G4VDigiCollection.cc b/source/digits_hits/digits/src/G4VDigiCollection.cc similarity index 95% rename from source/digits+hits/digits/src/G4VDigiCollection.cc rename to source/digits_hits/digits/src/G4VDigiCollection.cc index b2834e2121..5d24af9f6e 100644 --- a/source/digits+hits/digits/src/G4VDigiCollection.cc +++ b/source/digits_hits/digits/src/G4VDigiCollection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDigiCollection.cc,v 1.6 2001/07/13 15:00:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VDigiCollection.cc,v 1.1 2003/10/03 10:15:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4VDigiCollection diff --git a/source/digits+hits/hits/GNUmakefile b/source/digits_hits/hits/GNUmakefile similarity index 89% rename from source/digits+hits/hits/GNUmakefile rename to source/digits_hits/hits/GNUmakefile index 5a298be68c..d5b06a00a9 100644 --- a/source/digits+hits/hits/GNUmakefile +++ b/source/digits_hits/hits/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:06:29 gunter Exp $ +# $Id: GNUmakefile,v 1.1 2003/10/03 10:16:22 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for digits+hits library. Makoto Asai, 1/11/96. # -------------------------------------------------------------- diff --git a/source/digits+hits/hits/History b/source/digits_hits/hits/History similarity index 88% rename from source/digits+hits/hits/History rename to source/digits_hits/hits/History index ed12447554..0d516c6995 100644 --- a/source/digits+hits/hits/History +++ b/source/digits_hits/hits/History @@ -1,4 +1,4 @@ -$Id: History,v 1.2 2003/06/03 08:58:56 gcosmo Exp $ +$Id: History,v 1.2 2003/10/03 10:31:40 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +October 4, 03 G.Cosmo +- Imported from digits+hits directory. + June 3, 03 G.Cosmo - Fixed trivial warning in G4VHit.cc. diff --git a/source/digits+hits/hits/include/G4HCofThisEvent.hh b/source/digits_hits/hits/include/G4HCofThisEvent.hh similarity index 97% rename from source/digits+hits/hits/include/G4HCofThisEvent.hh rename to source/digits_hits/hits/include/G4HCofThisEvent.hh index 656bd82c56..6ac9c4dc38 100644 --- a/source/digits+hits/hits/include/G4HCofThisEvent.hh +++ b/source/digits_hits/hits/include/G4HCofThisEvent.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HCofThisEvent.hh,v 1.8 2003/06/16 16:50:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HCofThisEvent.hh,v 1.1 2003/10/03 10:16:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4HCofThisEvent_h diff --git a/source/digits+hits/hits/include/G4THitsCollection.hh b/source/digits_hits/hits/include/G4THitsCollection.hh similarity index 98% rename from source/digits+hits/hits/include/G4THitsCollection.hh rename to source/digits_hits/hits/include/G4THitsCollection.hh index 0c0f7e3e8e..ca911e72ca 100644 --- a/source/digits+hits/hits/include/G4THitsCollection.hh +++ b/source/digits_hits/hits/include/G4THitsCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4THitsCollection.hh,v 1.12 2003/06/16 16:50:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4THitsCollection.hh,v 1.1 2003/10/03 10:17:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4THitsCollection_h diff --git a/source/digits+hits/hits/include/G4VHit.hh b/source/digits_hits/hits/include/G4VHit.hh similarity index 96% rename from source/digits+hits/hits/include/G4VHit.hh rename to source/digits_hits/hits/include/G4VHit.hh index 4972e9ab23..64d8f6be30 100644 --- a/source/digits+hits/hits/include/G4VHit.hh +++ b/source/digits_hits/hits/include/G4VHit.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VHit.hh,v 1.10 2003/06/16 16:50:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VHit.hh,v 1.1 2003/10/03 10:17:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VHit_h diff --git a/source/digits+hits/hits/include/G4VHitsCollection.hh b/source/digits_hits/hits/include/G4VHitsCollection.hh similarity index 96% rename from source/digits+hits/hits/include/G4VHitsCollection.hh rename to source/digits_hits/hits/include/G4VHitsCollection.hh index e17ef4a2c9..62b022a4a2 100644 --- a/source/digits+hits/hits/include/G4VHitsCollection.hh +++ b/source/digits_hits/hits/include/G4VHitsCollection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VHitsCollection.hh,v 1.11 2003/05/20 00:50:37 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VHitsCollection.hh,v 1.1 2003/10/03 10:17:35 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VHitsCollection_h diff --git a/source/digits+hits/hits/src/G4HCofThisEvent.cc b/source/digits_hits/hits/src/G4HCofThisEvent.cc similarity index 95% rename from source/digits+hits/hits/src/G4HCofThisEvent.cc rename to source/digits_hits/hits/src/G4HCofThisEvent.cc index 170194d65e..bd1ff1a034 100644 --- a/source/digits+hits/hits/src/G4HCofThisEvent.cc +++ b/source/digits_hits/hits/src/G4HCofThisEvent.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HCofThisEvent.cc,v 1.7 2003/06/16 16:50:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HCofThisEvent.cc,v 1.1 2003/10/03 10:18:00 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4HCofThisEvent.hh" diff --git a/source/digits+hits/hits/src/G4THitsCollection.cc b/source/digits_hits/hits/src/G4THitsCollection.cc similarity index 94% rename from source/digits+hits/hits/src/G4THitsCollection.cc rename to source/digits_hits/hits/src/G4THitsCollection.cc index 5e42ac906d..85d4fe1d3c 100644 --- a/source/digits+hits/hits/src/G4THitsCollection.cc +++ b/source/digits_hits/hits/src/G4THitsCollection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4THitsCollection.cc,v 1.3 2001/07/11 09:58:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4THitsCollection.cc,v 1.1 2003/10/03 10:18:14 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4THitsCollection.hh" diff --git a/source/digits+hits/hits/src/G4VHit.cc b/source/digits_hits/hits/src/G4VHit.cc similarity index 94% rename from source/digits+hits/hits/src/G4VHit.cc rename to source/digits_hits/hits/src/G4VHit.cc index b4dcb6ed0a..0efd5a0fdb 100644 --- a/source/digits+hits/hits/src/G4VHit.cc +++ b/source/digits_hits/hits/src/G4VHit.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VHit.cc,v 1.5 2003/06/03 08:58:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VHit.cc,v 1.1 2003/10/03 10:18:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4VHit diff --git a/source/digits+hits/hits/src/G4VHitsCollection.cc b/source/digits_hits/hits/src/G4VHitsCollection.cc similarity index 95% rename from source/digits+hits/hits/src/G4VHitsCollection.cc rename to source/digits_hits/hits/src/G4VHitsCollection.cc index f642d143f1..9493f5b079 100644 --- a/source/digits+hits/hits/src/G4VHitsCollection.cc +++ b/source/digits_hits/hits/src/G4VHitsCollection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VHitsCollection.cc,v 1.4 2001/07/13 15:00:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VHitsCollection.cc,v 1.1 2003/10/03 10:20:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4VHitsCollection diff --git a/source/event/GNUmakefile b/source/event/GNUmakefile index d5d3500d46..c9b72fe800 100644 --- a/source/event/GNUmakefile +++ b/source/event/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2002/10/28 10:06:00 dressel Exp $ +# $Id: GNUmakefile,v 1.5 2003/10/03 14:12:14 gcosmo Exp $ # ------------------------------------------------------------ # GNUmakefile for events library. Makoto Asai, 5/9/95. # ------------------------------------------------------------ @@ -30,10 +30,11 @@ CPPFLAGS += \ -I$(G4BASE)/materials/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/geometry/biasing/include \ - -I$(G4BASE)/digits+hits/detector/include \ - -I$(G4BASE)/digits+hits/hits/include \ - -I$(G4BASE)/digits+hits/digits/include \ + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/digits_hits/hits/include \ + -I$(G4BASE)/digits_hits/digits/include \ -I$(G4BASE)/intercoms/include ifdef G4_STORE_TRAJECTORY diff --git a/source/event/History b/source/event/History index 544a8bdc01..7e3a327101 100644 --- a/source/event/History +++ b/source/event/History @@ -1,4 +1,4 @@ -$Id: History,v 1.59 2003/06/04 16:04:43 gcosmo Exp $ +$Id: History,v 1.69 2003/11/19 19:28:43 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,58 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 19 2003, M.Asai (event-V05-02-09) +- G4ParticleGun.cc, G4ParticleGunMessenger.cc: + - Added protection against shooting shortlived particle. + +Oct 13 2003, F.Lei (event-V05-02-08) +- increased the array size from 256 to 1024 for user defined histograms. +- Bug fix in G4GeneralParticleSource.cc: make sure the SideRefVec(1/2/3) are unit + vectors. + +Oct 03 2003, G.Cosmo (event-V05-02-07) +- GNUmakefile: + o added dependency to new module "geometry/navigation". + o replaced "digits+hits" with "digits_hits". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +Oct 01 2003, M.Asai (event-V05-02-06) +- Set G4DynamicParicle the pointer to the corresponding primary particle. + +Sep 12 2003, M.Asai (event-V05-02-05) +- Introducing G4VUserPrimaryVertexInformation and G4VUserPrimaryParticleInformation + classes, which can be associated with G4PrimaryVertex and G4PrimaryParticle, + respectively. +- Adding a treatment of "proper decay time" for preassigned decay products. +- Introducing G4StackChecker class, a utility class which can be used by a user. + +Sep 09 2003, M.Asai (event-V05-02-04) +- Introducing G4VUserEventInformation class, which can be associated with G4Event. + +Aug 13 2003, M.Asai (event-V05-02-03) +- Introducing another entry method G4EventManager::ProcessOneEvent which takes + G4TrackVector class object. +- Adding a mechanism of merging more than one kinds of primaries (HepHC and + G4PrimaryVertex or G4TrackVector and G4PrimaryVertex). +- Change the trackID numbering scheme for "PostposedToNextEvent" tracks. + Now they have negative trackID. + +Aug 11 2003, M.Asai (event-V05-02-02) +- Maintain links between pre-assigned decay products and corresponding primary + particle. Becuse of this, G4PrimaryParticle objects of pre-assigned decay + have proper track ID. + +Aug 01 2003, M.Asai (event-V05-02-01) +- Introducing a new entry method G4EventManager::ProcessOneEvent which takes + HepMC event class object instead of G4Event object. +- G4HepMCInterface::HepMC2G4 becomes a static service method. +- G4HepMCInterface::CheckVertexInsideWorld is moved to G4VPrimaryGenerator and + also becomes a static servic method. + +Aug 01 2003, M.Asai (event-V05-02-00) +- With introducing G4RunManagerKernel class in Run category, G4EventManager now + toggles the application states between G4State_GeomClosed and G4State_EventProc. + Jun 04 2003, G.Cosmo (event-V05-01-02) - Fixes for inclusion of in G4HEPEvtInterface.cc in view of the g4std wrappers migration. diff --git a/source/event/include/G4CellScorer.hh b/source/event/include/G4CellScorer.hh index 5a3bf519b5..85df0d71bd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CellScorer diff --git a/source/event/include/G4CellScorerStore.hh b/source/event/include/G4CellScorerStore.hh index ce91b625d3..6ac5a042bc 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CellScorerStore diff --git a/source/event/include/G4ClassificationOfNewTrack.hh b/source/event/include/G4ClassificationOfNewTrack.hh index 95dd281636..4637a8d046 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/event/include/G4EvManMessenger.hh b/source/event/include/G4EvManMessenger.hh index 742cc9c7b2..44b4d29e2e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4EvManMessenger_h diff --git a/source/event/include/G4Event.hh b/source/event/include/G4Event.hh index 1c9be0d570..acf0987229 100644 --- a/source/event/include/G4Event.hh +++ b/source/event/include/G4Event.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Event.hh,v 1.6 2002/08/13 18:17:53 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Event.hh,v 1.7 2003/09/09 20:09:17 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4Event_h @@ -34,6 +34,7 @@ #include "G4HCofThisEvent.hh" #include "G4DCofThisEvent.hh" #include "G4TrajectoryContainer.hh" +#include "G4VUserEventInformation.hh" // class description: // @@ -87,6 +88,9 @@ class G4Event // thus the containing information is not to be used. G4bool eventAborted; + // UserEventInformation (optional) + G4VUserEventInformation* userInfo; + public: inline void SetEventID(G4int i) { eventID = i; } @@ -146,6 +150,9 @@ class G4Event inline G4bool IsAborted() const { return eventAborted; } // Return a boolean which indicates the event has been aborted and thus // it should not be used for analysis. + inline void SetUserInformation(G4VUserEventInformation* anInfo) { userInfo = anInfo; } + inline G4VUserEventInformation* GetUserInformation() const { return userInfo; } + // Set and Get method of G4VUserEventInformation }; extern G4Allocator anEventAllocator; diff --git a/source/event/include/G4EventManager.hh b/source/event/include/G4EventManager.hh index 59cc318a43..c69caeeae2 100644 --- a/source/event/include/G4EventManager.hh +++ b/source/event/include/G4EventManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EventManager.hh,v 1.9 2001/07/19 00:14:15 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EventManager.hh,v 1.12 2003/09/09 20:09:17 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -46,6 +46,12 @@ class G4EvManMessenger; #include "G4TrackStatus.hh" class G4SDManager; #include "globals.hh" +class G4VUserEventInformation; + +#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP + // will support the HepMC module +#include "CLHEP/HepMC/GenEvent.h" +#endif // class description: // @@ -72,10 +78,42 @@ class G4EventManager public: // with description void ProcessOneEvent(G4Event* anEvent); - // This method it the main entry to this class for simulating an event. - // This method must be exclusively invoked by G4RunManager. + // This method is the main entry to this class for simulating an event. + +#ifndef WIN32 // 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 + // HepMC event class. Dummy G4Event object will be created if "anEvent" is null + // for internal use, but this dummy object will be deleted at the end of this + // method and will never be available for the use after the processing. + // Note that in this case of null G4Event pointer no output of the simulated event + // is returned by this method, but the user must implement some mechanism + // of storing output by his/herself, e.g. in his/her UserEventAction and/or + // sensitive detectors. + // If valid G4Event object is given, this object will not be deleted with + // this method and output objects such as hits collections and trajectories + // will be associated to this event object. If this event object has valid + // primary vertices/particles, they will be added to the given HepMC event input. +#endif + + void ProcessOneEvent(G4TrackVector* trackVector,G4Event* anEvent=0); + // This is an alternative entry for large HEP experiments which create G4Track + // objects by themselves directly without using G4VPrimaryGenerator or user + // primary generator action. Dummy G4Event object will be created if "anEvent" is null + // for internal use, but this dummy object will be deleted at the end of this + // method and will never be available for the use after the processing. + // Note that in this case of null G4Event pointer no output of the simulated event + // is returned by this method, but the user must implement some mechanism + // of storing output by his/herself, e.g. in his/her UserEventAction and/or + // sensitive detectors. + // If valid G4Event object is given, this object will not be deleted with + // this method and output objects such as hits collections and trajectories + // will be associated to this event object. If this event object has valid + // primary vertices/particles, they will be added to the given trackvector input. private: + void DoProcessing(G4Event* anEvent); void StackTracks(G4TrackVector *trackVector, G4bool IDhasAlreadySet=false); G4Event* currentEvent; @@ -146,6 +184,12 @@ class G4EventManager } // Set and get method of the verbose level + void SetUserInformation(G4VUserEventInformation* anInfo); + G4VUserEventInformation* GetUserInformation(); + // Set and get method of G4VUserEventInformation object associating with + // the current event. Both methods are valid only for G4State_EventProc + // application state. + }; diff --git a/source/event/include/G4GeneralParticleSource.hh b/source/event/include/G4GeneralParticleSource.hh index 62ac674837..bb205a4400 100644 --- a/source/event/include/G4GeneralParticleSource.hh +++ b/source/event/include/G4GeneralParticleSource.hh @@ -31,8 +31,8 @@ // Customer: ESA/ESTEC // /////////////////////////////////////////////////////////////////////////////// -// $Id: G4GeneralParticleSource.hh,v 1.7 2001/10/19 16:48:28 flei Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeneralParticleSource.hh,v 1.8 2003/10/13 09:21:27 flei Exp $ +// GEANT4 tag $Name: geant4-06-00 $ /////////////////////////////////////////////////////////////////////////////// // // Class Description: @@ -607,9 +607,9 @@ private: G4double CDGhist[3]; // cumulative histo for cdg G4double BBHist[10001], Bbody_x[10001]; G4String IntType; // Interpolation type - G4double Arb_grad[256], Arb_cept[256]; // grad and cept for 256 segments - G4double Arb_alpha[256], Arb_Const[256]; // alpha and constants - G4double Arb_ezero[256]; // ezero + G4double Arb_grad[1024], Arb_cept[1024]; // grad and cept for 1024 segments + G4double Arb_alpha[1024], Arb_Const[1024]; // alpha and constants + G4double Arb_ezero[1024]; // ezero G4double ArbEmin, ArbEmax; // Emin and Emax for the whole arb distribution //use primarily for debug. diff --git a/source/event/include/G4GeneralParticleSourceMessenger.hh b/source/event/include/G4GeneralParticleSourceMessenger.hh index e5af30c013..b5830b25f5 100644 --- a/source/event/include/G4GeneralParticleSourceMessenger.hh +++ b/source/event/include/G4GeneralParticleSourceMessenger.hh @@ -32,7 +32,7 @@ // /////////////////////////////////////////////////////////////////////////////// // $Id: G4GeneralParticleSourceMessenger.hh,v 1.8 2002/02/26 16:34:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ /////////////////////////////////////////////////////////////////////////////// // // Class Description: diff --git a/source/event/include/G4HEPEvtInterface.hh b/source/event/include/G4HEPEvtInterface.hh index a4f5647fd5..3721aa11ab 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4HEPEvtInterface_h diff --git a/source/event/include/G4HEPEvtParticle.hh b/source/event/include/G4HEPEvtParticle.hh index 408b191519..039dc6eebe 100644 --- a/source/event/include/G4HEPEvtParticle.hh +++ b/source/event/include/G4HEPEvtParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4HEPEvtParticle.hh,v 1.5 2001/07/13 15:01:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/event/include/G4HepMCAsciiReader.hh b/source/event/include/G4HepMCAsciiReader.hh index 77a73990a9..f4dd9d14c1 100644 --- a/source/event/include/G4HepMCAsciiReader.hh +++ b/source/event/include/G4HepMCAsciiReader.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // G4HepMCAsciiReader.hh -// $Id: G4HepMCAsciiReader.hh,v 1.2 2003/06/16 16:50:28 gunter Exp $ +// $Id: G4HepMCAsciiReader.hh,v 1.3 2003/12/09 15:35:01 gunter Exp $ // // ==================================================================== #ifndef G4_HEPMC_ASCII_READER_H diff --git a/source/event/include/G4HepMCAsciiReaderMessenger.hh b/source/event/include/G4HepMCAsciiReaderMessenger.hh index 5e911f5fad..53af6ee18e 100644 --- a/source/event/include/G4HepMCAsciiReaderMessenger.hh +++ b/source/event/include/G4HepMCAsciiReaderMessenger.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // G4HepMCAsciiReaderMessenger.hh -// $Id: G4HepMCAsciiReaderMessenger.hh,v 1.1 2002/11/18 22:43:13 asaim Exp $ +// $Id: G4HepMCAsciiReaderMessenger.hh,v 1.2 2003/12/09 15:35:02 gunter Exp $ // // ==================================================================== #ifndef G4_HEPMC_ASCII_READER_MESSENGER_H diff --git a/source/event/include/G4HepMCInterface.hh b/source/event/include/G4HepMCInterface.hh index 21a02d5748..916ae08693 100644 --- a/source/event/include/G4HepMCInterface.hh +++ b/source/event/include/G4HepMCInterface.hh @@ -19,11 +19,11 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// // ==================================================================== // // G4HepMCInterface.hh -// $Id: G4HepMCInterface.hh,v 1.1 2002/11/18 22:43:13 asaim Exp $ +// $Id: G4HepMCInterface.hh,v 1.3 2003/12/09 15:35:03 gunter Exp $ // // A base class for primary generation via HepMC object. // This class is derived from G4VPrimaryGenerator. @@ -36,21 +36,20 @@ #include "CLHEP/HepMC/GenEvent.h" 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) - // We have to take care for the position of primaries because - // primary vertices outside the world voulme give rise to G4Execption. - // If the default implementation is not adequate, an alternative - // can be implemented in your own class. - virtual G4bool CheckVertexInsideWorld(const G4ThreeVector& pos) const; - - // service method for conversion from HepMC::GenEvent to G4Event - void HepMC2G4(const HepMC::GenEvent* hepmcevt, G4Event* g4event); - // Implement this method in his/her own concrete class. // An empty event will be created in default. virtual HepMC::GenEvent* GenerateHepMCEvent(); diff --git a/source/event/include/G4ParticleGun.hh b/source/event/include/G4ParticleGun.hh index 8a3d994996..7df342f1ed 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4ParticleGun_h diff --git a/source/event/include/G4ParticleGunMessenger.hh b/source/event/include/G4ParticleGunMessenger.hh index b3ca6306e0..70d7b10cee 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/event/include/G4PrimaryParticle.hh b/source/event/include/G4PrimaryParticle.hh index d226342790..5456a01cb8 100644 --- a/source/event/include/G4PrimaryParticle.hh +++ b/source/event/include/G4PrimaryParticle.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PrimaryParticle.hh,v 1.10 2001/07/13 15:01:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PrimaryParticle.hh,v 1.11 2003/09/12 21:51:32 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -35,6 +35,7 @@ #include "G4ThreeVector.hh" class G4ParticleDefinition; +class G4VUserPrimaryParticleInformation; // class description: // @@ -105,6 +106,7 @@ class G4PrimaryParticle G4double polZ; G4double Weight0; G4double properTime; + G4VUserPrimaryParticleInformation* userInfo; public: // with description // followings are get methods available. @@ -143,6 +145,10 @@ class G4PrimaryParticle inline void SetWeight(G4double w) { Weight0 = w; } inline void SetProperTime(G4double t) { properTime = t; } inline G4double GetProperTime() const { return properTime; } + inline void SetUserInformation(G4VUserPrimaryParticleInformation* anInfo) + { userInfo = anInfo; } + inline G4VUserPrimaryParticleInformation* GetUserInformation() const + { return userInfo; } public: // with description // Followings are available Set methods. diff --git a/source/event/include/G4PrimaryTransformer.hh b/source/event/include/G4PrimaryTransformer.hh index d002e6f9c9..df5db0971f 100644 --- a/source/event/include/G4PrimaryTransformer.hh +++ b/source/event/include/G4PrimaryTransformer.hh @@ -22,7 +22,7 @@ // // // $Id: G4PrimaryTransformer.hh,v 1.6 2001/07/18 01:25:44 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4PromaryTransformer_h diff --git a/source/event/include/G4PrimaryVertex.hh b/source/event/include/G4PrimaryVertex.hh index f8196ecaf5..a667dc403f 100644 --- a/source/event/include/G4PrimaryVertex.hh +++ b/source/event/include/G4PrimaryVertex.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PrimaryVertex.hh,v 1.7 2001/07/13 15:01:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PrimaryVertex.hh,v 1.8 2003/09/12 21:51:32 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -34,6 +34,7 @@ #include "G4Allocator.hh" #include "G4ThreeVector.hh" #include "G4PrimaryParticle.hh" +class G4VUserPrimaryVertexInformation; // class description: // @@ -69,6 +70,7 @@ class G4PrimaryVertex G4PrimaryVertex* nextVertex; G4int numberOfParticle; G4double Weight0; + G4VUserPrimaryVertexInformation* userInfo; public: inline G4ThreeVector GetPosition() const @@ -131,6 +133,10 @@ class G4PrimaryVertex { return Weight0; } inline void SetWeight(G4double w) { Weight0 = w; } + inline void SetUserInformation(G4VUserPrimaryVertexInformation* anInfo) + { userInfo = anInfo; } + inline G4VUserPrimaryVertexInformation* GetUserInformation() const + { return userInfo; } }; extern G4Allocator aPrimaryVertexAllocator; diff --git a/source/event/include/G4ScoreTable.hh b/source/event/include/G4ScoreTable.hh index eb0ec1c3d2..b283f9d619 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ScoreTable diff --git a/source/event/include/G4Scorer.hh b/source/event/include/G4Scorer.hh index b63425fb36..dd159ace30 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Scorer diff --git a/source/interfaces/OPACS/include/G4UIWo.hh b/source/event/include/G4StackChecker.hh similarity index 68% rename from source/interfaces/OPACS/include/G4UIWo.hh rename to source/event/include/G4StackChecker.hh index 8ed94901cc..3de455c818 100644 --- a/source/interfaces/OPACS/include/G4UIWo.hh +++ b/source/event/include/G4StackChecker.hh @@ -21,34 +21,42 @@ // ******************************************************************** // // -// $Id: G4UIWo.hh,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StackChecker.hh,v 1.1 2003/06/12 15:14:43 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -#ifndef G4UIWo_h -#define G4UIWo_h -#if defined(G4UI_BUILD_WO_SESSION) || defined(G4UI_USE_WO) +#ifndef G4StackChecker_h +#define G4StackChecker_h 1 -#include "G4UIsession.hh" +#include "G4UserStackingAction.hh" +#include "G4ClassificationOfNewTrack.hh" +#include "G4ThreeVector.hh" -class G4WoMessenger; +// class description: +// +// This is the UserStackingAction for removing unreasonable tracks. +// -class G4UIWo : public G4UIsession { +class G4Track; + +class G4StackChecker : public G4UserStackingAction +{ public: - G4UIWo(int,char**); - ~G4UIWo(); - G4UIsession* SessionStart(); - void Prompt(G4String); - void SessionTerminate(); - void PauseSessionStart(G4String); - G4int ReceiveG4cout(G4String); - G4int ReceiveG4cerr(G4String); + G4StackChecker(); + virtual ~G4StackChecker(); + +public: // with description + + virtual G4ClassificationOfNewTrack + ClassifyNewTrack(const G4Track* track); + + virtual void NewStage() {}; + virtual void PrepareNewEvent() {}; + private: - void SecondaryLoop(G4String); - G4WoMessenger* woMessenger; + + G4ThreeVector nullDirection; + }; #endif - -#endif - diff --git a/source/event/include/G4StackManager.hh b/source/event/include/G4StackManager.hh index bb13d55615..7939e2549f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/event/include/G4StackedTrack.hh b/source/event/include/G4StackedTrack.hh index 3395ed0f16..de259b1b63 100644 --- a/source/event/include/G4StackedTrack.hh +++ b/source/event/include/G4StackedTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4StackedTrack.hh,v 1.6 2001/07/13 15:01:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/include/G4StackingMessenger.hh b/source/event/include/G4StackingMessenger.hh index 9a2e983916..84eda53790 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4StackingMessenger_h diff --git a/source/event/include/G4TrackStack.hh b/source/event/include/G4TrackStack.hh index 9432e01f53..4a098ed206 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Last Modification : 09/Dec/96 M.Asai diff --git a/source/event/include/G4TrajectoryContainer.hh b/source/event/include/G4TrajectoryContainer.hh index 05e2e2b1fc..5753dca26b 100644 --- a/source/event/include/G4TrajectoryContainer.hh +++ b/source/event/include/G4TrajectoryContainer.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryContainer.hh,v 1.11 2003/06/16 16:50:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4TrajectoryContainer diff --git a/source/event/include/G4UserEventAction.hh b/source/event/include/G4UserEventAction.hh index 6cd7907bdb..2c3da656c2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/source/event/include/G4UserStackingAction.hh b/source/event/include/G4UserStackingAction.hh index 422bace566..4f01a1f4b6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UserStackingAction_h diff --git a/source/event/include/G4VPrimaryGenerator.hh b/source/event/include/G4VPrimaryGenerator.hh index f34d11a25f..f33a3f0e00 100644 --- a/source/event/include/G4VPrimaryGenerator.hh +++ b/source/event/include/G4VPrimaryGenerator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPrimaryGenerator.hh,v 1.6 2001/11/21 13:48:40 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPrimaryGenerator.hh,v 1.7 2003/08/02 00:18:30 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VPrimaryGenerator_h @@ -42,10 +42,17 @@ class G4Event; class G4VPrimaryGenerator { - public: + public: // with description + // static service method for checking a point is included in the (current) world + static G4bool CheckVertexInsideWorld(const G4ThreeVector& pos); + + public: // with description + // Constructor and destrucot of this base class G4VPrimaryGenerator(); virtual ~G4VPrimaryGenerator(); + // Pure virtual method which a concrete class derived from this base class must + // have a concrete implementation virtual void GeneratePrimaryVertex(G4Event* evt) = 0; protected: diff --git a/source/geometry/solids/STEPinterface/include/G4ProductDefinitionShapeCreator.hh b/source/event/include/G4VUserEventInformation.hh similarity index 56% rename from source/geometry/solids/STEPinterface/include/G4ProductDefinitionShapeCreator.hh rename to source/event/include/G4VUserEventInformation.hh index 177a33f099..0d34b183a1 100644 --- a/source/geometry/solids/STEPinterface/include/G4ProductDefinitionShapeCreator.hh +++ b/source/event/include/G4VUserEventInformation.hh @@ -21,49 +21,46 @@ // ******************************************************************** // // -// $Id: G4ProductDefinitionShapeCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ProductDefinitionShapeCreator -// -// Class description: +// $Id: G4VUserEventInformation.hh,v 1.1 2003/09/09 20:09:17 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // +//--------------------------------------------------------------- +// +// G4VUserEventInformation +// +// Class Description: +// +// Abstract class which the user can derive his/her own concrete +// class for toring user's information associating with a G4Event +// class object. +// +// It is user's responsibility to construct a concrete class object +// and set the pointer to proper G4Event object. +// +// To set a pointer of a concrete class object to G4Event in +// G4UserEventingAction concrete implementation, given the G4Event +// object is available only by "pointer to const", SetUserEventInformation() +// method of G4EventManager is available. +// Alternatively, the user may modify GenerateEvent() method of +// his/her own RunManager. +// +// The concrete class object is deleted by Geant4 kernel when +// associated G4Event object is deleted. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4PRODUCTDEFINITIONSHAPECREATOR_HH -#define G4PRODUCTDEFINITIONSHAPECREATOR_HH -#include "G4GeometryCreator.hh" -#include "G4GeometryTable.hh" +#ifndef G4VUserEventInformation_H +#define G4VUserEventInformation_H 1 -class G4ProductDefinitionShapeCreator: private G4GeometryCreator +class G4VUserEventInformation { public: + G4VUserEventInformation() {;} + virtual ~G4VUserEventInformation() {;} - // Constructor & destructor - - G4ProductDefinitionShapeCreator(); - ~G4ProductDefinitionShapeCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Product_Definition_Shape"; } - static G4ProductDefinitionShapeCreator GetInstance(); - - // Members - - private: - - static G4ProductDefinitionShapeCreator csc; + public: + virtual void Print() const = 0; }; #endif + diff --git a/source/geometry/solids/STEPinterface/include/G4EdgeLoopCreator.hh b/source/event/include/G4VUserPrimaryParticleInformation.hh similarity index 61% rename from source/geometry/solids/STEPinterface/include/G4EdgeLoopCreator.hh rename to source/event/include/G4VUserPrimaryParticleInformation.hh index 01c60c7001..a394deaa4d 100644 --- a/source/geometry/solids/STEPinterface/include/G4EdgeLoopCreator.hh +++ b/source/event/include/G4VUserPrimaryParticleInformation.hh @@ -21,48 +21,39 @@ // ******************************************************************** // // -// $Id: G4EdgeLoopCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4EdgeLoopCreator -// -// Class description: +// $Id: G4VUserPrimaryParticleInformation.hh,v 1.1 2003/09/12 21:51:32 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // +//--------------------------------------------------------------- +// +// G4VUserPrimaryParticleInformation +// +// Class Description: +// +// Abstract class which the user can derive his/her own concrete +// class for toring user's information associating with a G4PrimaryParticle +// class object. +// +// It is user's responsibility to construct a concrete class object +// and set the pointer to proper G4PrimaryParticle object. +// +// The concrete class object is deleted by Geant4 kernel when +// associated G4PrimaryParticle object is deleted. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4EDGELOOPCREATOR_HH -#define G4EDGELOOPCREATOR_HH -#include "G4GeometryCreator.hh" +#ifndef G4VUserPrimaryParticleInformation_H +#define G4VUserPrimaryParticleInformation_H 1 -class G4EdgeLoopCreator: private G4GeometryCreator +class G4VUserPrimaryParticleInformation { public: + G4VUserPrimaryParticleInformation() {;} + virtual ~G4VUserPrimaryParticleInformation() {;} - // Constructor - - G4EdgeLoopCreator(); - ~G4EdgeLoopCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Edge_Loop"; } - static G4EdgeLoopCreator GetInstance(); - - // Members - - private: - - static G4EdgeLoopCreator csc; + public: + virtual void Print() const = 0; }; #endif + diff --git a/source/geometry/solids/STEPinterface/include/G4CurveCreator.hh b/source/event/include/G4VUserPrimaryVertexInformation.hh similarity index 62% rename from source/geometry/solids/STEPinterface/include/G4CurveCreator.hh rename to source/event/include/G4VUserPrimaryVertexInformation.hh index 19cc47b37b..a2ed095873 100644 --- a/source/geometry/solids/STEPinterface/include/G4CurveCreator.hh +++ b/source/event/include/G4VUserPrimaryVertexInformation.hh @@ -21,48 +21,39 @@ // ******************************************************************** // // -// $Id: G4CurveCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4CurveCreator -// -// Class description: +// $Id: G4VUserPrimaryVertexInformation.hh,v 1.1 2003/09/12 21:51:32 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // +//--------------------------------------------------------------- +// +// G4VUserPrimaryVertexInformation +// +// Class Description: +// +// Abstract class which the user can derive his/her own concrete +// class for toring user's information associating with a G4PrimaryVertex +// class object. +// +// It is user's responsibility to construct a concrete class object +// and set the pointer to proper G4PrimaryVertex object. +// +// The concrete class object is deleted by Geant4 kernel when +// associated G4PrimaryVertex object is deleted. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4CURVECREATOR_HH -#define G4CURVECREATOR_HH -#include "G4GeometryCreator.hh" +#ifndef G4VUserPrimaryVertexInformation_H +#define G4VUserPrimaryVertexInformation_H 1 -class G4CurveCreator: private G4GeometryCreator +class G4VUserPrimaryVertexInformation { public: + G4VUserPrimaryVertexInformation() {;} + virtual ~G4VUserPrimaryVertexInformation() {;} - // Constructor & destructor - - G4CurveCreator(); - ~G4CurveCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Curve"; } - static G4CurveCreator GetInstance(); - - // Members - - private: - - static G4CurveCreator csc; + public: + virtual void Print() const = 0; }; #endif + diff --git a/source/event/include/eventgendefs.hh b/source/event/include/eventgendefs.hh index 3a32faa477..a6b035697a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef EventGenerator_DEBUG #define EventGenerator_DEBUG diff --git a/source/event/include/evmandefs.hh b/source/event/include/evmandefs.hh index 435c4f5a42..7440f6be17 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // ///#define G4EVENTMANAGER_DEBUG 1 diff --git a/source/event/include/trajectoryControl.hh b/source/event/include/trajectoryControl.hh index f28c2687c7..e594070dd7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // ////#define G4_STORE_TRAJECTORY 1 diff --git a/source/event/src/G4CellScorer.cc b/source/event/src/G4CellScorer.cc index e040123d57..b9b6d5c095 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4CellScorerStore.cc b/source/event/src/G4CellScorerStore.cc index 13faf99205..203e2e1efb 100644 --- a/source/event/src/G4CellScorerStore.cc +++ b/source/event/src/G4CellScorerStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4CellScorerStore.cc,v 1.2 2002/11/04 10:52:39 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4EvManMessenger.cc b/source/event/src/G4EvManMessenger.cc index 17dc60b281..aa4795fc61 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- diff --git a/source/event/src/G4Event.cc b/source/event/src/G4Event.cc index 320890712d..383e5bbb61 100644 --- a/source/event/src/G4Event.cc +++ b/source/event/src/G4Event.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Event.cc,v 1.5 2002/08/13 18:17:53 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Event.cc,v 1.6 2003/09/09 20:09:18 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4Event @@ -40,13 +40,13 @@ G4Allocator anEventAllocator; G4Event::G4Event() :eventID(0), thePrimaryVertex(0),numberOfPrimaryVertex(0), - HC(0),DC(0),trajectoryContainer(0),eventAborted(false) + HC(0),DC(0),trajectoryContainer(0),eventAborted(false),userInfo(0) {;} G4Event::G4Event(G4int evID) :eventID(evID), thePrimaryVertex(0),numberOfPrimaryVertex(0), - HC(0),DC(0),trajectoryContainer(0),eventAborted(false) + HC(0),DC(0),trajectoryContainer(0),eventAborted(false),userInfo(0) {;} G4Event::~G4Event() @@ -59,6 +59,7 @@ G4Event::~G4Event() trajectoryContainer->clearAndDestroy(); delete trajectoryContainer; } + if(userInfo) delete userInfo; } G4int G4Event::operator==(const G4Event &right) const diff --git a/source/event/src/G4EventManager.cc b/source/event/src/G4EventManager.cc index 6633218db5..21c2529b76 100644 --- a/source/event/src/G4EventManager.cc +++ b/source/event/src/G4EventManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EventManager.cc,v 1.13 2003/05/21 20:52:53 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EventManager.cc,v 1.18 2003/09/09 20:09:18 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // @@ -34,6 +34,8 @@ #include "G4UserEventAction.hh" #include "G4UserStackingAction.hh" #include "G4SDManager.hh" +#include "G4StateManager.hh" +#include "G4ApplicationState.hh" G4EventManager* G4EventManager::fpEventManager = 0; G4EventManager* G4EventManager::GetEventManager() @@ -85,8 +87,21 @@ G4int G4EventManager::operator!=(const G4EventManager &right) const { } */ -void G4EventManager::ProcessOneEvent(G4Event* anEvent) + +void G4EventManager::DoProcessing(G4Event* anEvent) { + G4StateManager* stateManager = G4StateManager::GetStateManager(); + G4ApplicationState currentState = stateManager->GetCurrentState(); + if(currentState!=G4State_GeomClosed) + { + G4Exception("G4EventManager::ProcessOneEvent", + "IllegalApplicationState", + JustWarning, + "Geometry is not closed : cannot process an event."); + return; + } + stateManager->SetNewState(G4State_EventProc); + currentEvent = anEvent; G4Track * track; G4TrackStatus istop; @@ -100,7 +115,7 @@ void G4EventManager::ProcessOneEvent(G4Event* anEvent) } #endif - trackIDCounter = trackContainer->PrepareNewEvent(); + trackContainer->PrepareNewEvent(); #ifdef G4_STORE_TRAJECTORY trajectoryContainer = 0; @@ -226,6 +241,7 @@ void G4EventManager::ProcessOneEvent(G4Event* anEvent) if(userEventAction) userEventAction->EndOfEventAction(currentEvent); currentEvent = 0; + stateManager->SetNewState(G4State_GeomClosed); } void G4EventManager::StackTracks(G4TrackVector *trackVector,G4bool IDhasAlreadySet) @@ -241,7 +257,16 @@ void G4EventManager::StackTracks(G4TrackVector *trackVector,G4bool IDhasAlreadyS { newTrack = (*trackVector)[ i ]; trackIDCounter++; - if(!IDhasAlreadySet) newTrack->SetTrackID( trackIDCounter ); + if(!IDhasAlreadySet) + { + newTrack->SetTrackID( trackIDCounter ); + if(newTrack->GetDynamicParticle()->GetPrimaryParticle()) + { + G4PrimaryParticle* pp + = (G4PrimaryParticle*)(newTrack->GetDynamicParticle()->GetPrimaryParticle()); + pp->SetTrackID(trackIDCounter); + } + } trackContainer->PushOneTrack( newTrack ); #ifdef G4VERBOSE if ( verboseLevel > 1 ) @@ -281,4 +306,71 @@ void G4EventManager::SetUserAction(G4UserSteppingAction* userAction) trackManager->SetUserAction(userAction); } +void G4EventManager::ProcessOneEvent(G4Event* anEvent) +{ + trackIDCounter = 0; + DoProcessing(anEvent); +} + +#ifndef WIN32 // Temporarly disabled on Windows, until CLHEP + // will support the HepMC module +#include "G4HepMCInterface.hh" +void G4EventManager::ProcessOneEvent(const HepMC::GenEvent* hepmcevt,G4Event* anEvent) +{ + trackIDCounter = 0; + G4bool tempEvent = false; + if(!anEvent) + { + anEvent = new G4Event(); + tempEvent = true; + } + G4HepMCInterface::HepMC2G4(hepmcevt,anEvent); + DoProcessing(anEvent); + if(tempEvent) + { delete anEvent; } +} +#endif + +void G4EventManager::ProcessOneEvent(G4TrackVector* trackVector,G4Event* anEvent) +{ + trackIDCounter = 0; + G4bool tempEvent = false; + if(!anEvent) + { + anEvent = new G4Event(); + tempEvent = true; + } + StackTracks(trackVector,false); + DoProcessing(anEvent); + if(tempEvent) + { delete anEvent; } +} + +void G4EventManager::SetUserInformation(G4VUserEventInformation* anInfo) +{ + G4StateManager* stateManager = G4StateManager::GetStateManager(); + G4ApplicationState currentState = stateManager->GetCurrentState(); + if(currentState!=G4State_EventProc || currentEvent==0) + { + G4Exception("G4EventManager::SetUserInformation", + "IllegalApplicationState", + JustWarning, + "G4VUserEventInformation cannot be set because of ansense of G4Event."); + return; + } + + currentEvent->SetUserInformation(anInfo); +} + +G4VUserEventInformation* G4EventManager::GetUserInformation() +{ + G4StateManager* stateManager = G4StateManager::GetStateManager(); + G4ApplicationState currentState = stateManager->GetCurrentState(); + if(currentState!=G4State_EventProc || currentEvent==0) + { return 0; } + + return currentEvent->GetUserInformation(); +} + + diff --git a/source/event/src/G4GeneralParticleSource.cc b/source/event/src/G4GeneralParticleSource.cc index dc2d115a92..09623d7184 100644 --- a/source/event/src/G4GeneralParticleSource.cc +++ b/source/event/src/G4GeneralParticleSource.cc @@ -38,8 +38,8 @@ // Technical Note (TN) on the physics and algorithms // /////////////////////////////////////////////////////////////////////////////// -// $Id: G4GeneralParticleSource.cc,v 1.14 2001/10/19 16:48:28 flei Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeneralParticleSource.cc,v 1.15 2003/10/13 09:21:27 flei Exp $ +// GEANT4 tag $Name: geant4-06-00 $ /////////////////////////////////////////////////////////////////////////////// // // CHANGE HISTORY @@ -551,9 +551,9 @@ void G4GeneralParticleSource::GeneratePointsOnSurface() zdash = zdash.unit(); G4ThreeVector xdash = Rotz.cross(zdash); G4ThreeVector ydash = xdash.cross(zdash); - SideRefVec1 = xdash; - SideRefVec2 = ydash; - SideRefVec3 = zdash; + SideRefVec1 = xdash.unit(); + SideRefVec2 = ydash.unit(); + SideRefVec3 = zdash.unit(); } else if(Shape == "Ellipsoid") { @@ -652,9 +652,9 @@ void G4GeneralParticleSource::GeneratePointsOnSurface() zdash = zdash.unit(); G4ThreeVector xdash = Rotz.cross(zdash); G4ThreeVector ydash = xdash.cross(zdash); - SideRefVec1 = xdash; - SideRefVec2 = ydash; - SideRefVec3 = zdash; + SideRefVec1 = xdash.unit(); + SideRefVec2 = ydash.unit(); + SideRefVec3 = zdash.unit(); } else if(Shape == "Cylinder") { @@ -747,9 +747,9 @@ void G4GeneralParticleSource::GeneratePointsOnSurface() zdash = zdash.unit(); G4ThreeVector xdash = Rotz.cross(zdash); G4ThreeVector ydash = xdash.cross(zdash); - SideRefVec1 = xdash; - SideRefVec2 = ydash; - SideRefVec3 = zdash; + SideRefVec1 = xdash.unit(); + SideRefVec2 = ydash.unit(); + SideRefVec3 = zdash.unit(); } else G4cout << "Error: testrand " << testrand << G4endl; @@ -805,9 +805,9 @@ void G4GeneralParticleSource::GeneratePointsOnSurface() xdash = xdash.unit(); ydash = ydash.unit(); G4ThreeVector zdash = xdash.cross(ydash); - SideRefVec1 = xdash; - SideRefVec2 = ydash; - SideRefVec3 = zdash; + SideRefVec1 = xdash.unit(); + SideRefVec2 = ydash.unit(); + SideRefVec3 = zdash.unit(); } else if(testrand >= Probs[0] && testrand < Probs[1]) { @@ -823,9 +823,9 @@ void G4GeneralParticleSource::GeneratePointsOnSurface() xdash = xdash.unit(); ydash = ydash.unit(); G4ThreeVector zdash = xdash.cross(ydash); - SideRefVec1 = xdash; - SideRefVec2 = -ydash; - SideRefVec3 = -zdash; + SideRefVec1 = xdash.unit(); + SideRefVec2 = -ydash.unit(); + SideRefVec3 = -zdash.unit(); } else if(testrand >= Probs[1] && testrand < Probs[2]) { @@ -840,9 +840,9 @@ void G4GeneralParticleSource::GeneratePointsOnSurface() ydash = ydash.unit(); G4ThreeVector xdash = Roty.cross(ydash); G4ThreeVector zdash = xdash.cross(ydash); - SideRefVec1 = xdash; - SideRefVec2 = ydash; - SideRefVec3 = zdash; + SideRefVec1 = xdash.unit(); + SideRefVec2 = ydash.unit(); + SideRefVec3 = zdash.unit(); } else if(testrand >= Probs[2] && testrand < Probs[3]) { @@ -857,9 +857,9 @@ void G4GeneralParticleSource::GeneratePointsOnSurface() ydash = ydash.unit(); G4ThreeVector xdash = Roty.cross(ydash); G4ThreeVector zdash = xdash.cross(ydash); - SideRefVec1 = xdash; - SideRefVec2 = -ydash; - SideRefVec3 = -zdash; + SideRefVec1 = xdash.unit(); + SideRefVec2 = -ydash.unit(); + SideRefVec3 = -zdash.unit(); } else if(testrand >= Probs[3] && testrand < Probs[4]) { @@ -1026,9 +1026,9 @@ void G4GeneralParticleSource::GeneratePointsInVolume() zdash = zdash.unit(); G4ThreeVector xdash = Rotz.cross(zdash); G4ThreeVector ydash = xdash.cross(zdash); - SideRefVec1 = xdash; - SideRefVec2 = ydash; - SideRefVec3 = zdash; + SideRefVec1 = xdash.unit(); + SideRefVec2 = ydash.unit(); + SideRefVec3 = zdash.unit(); if(verbosityLevel == 2) { @@ -1617,7 +1617,7 @@ G4double G4GeneralParticleSource::GenerateUserDefTheta() if(IPDFThetaExist == false) { // IPDF has not been created, so create it - G4double bins[256],vals[256], sum; + G4double bins[1024],vals[1024], sum; G4int ii; G4int maxbin = G4int(UDefThetaH.GetVectorLength()); bins[0] = UDefThetaH.GetLowEdgeEnergy(size_t(0)); @@ -1663,7 +1663,7 @@ G4double G4GeneralParticleSource::GenerateUserDefPhi() if(IPDFPhiExist == false) { // IPDF has not been created, so create it - G4double bins[256],vals[256], sum; + G4double bins[1024],vals[1024], sum; G4int ii; G4int maxbin = G4int(UDefPhiH.GetVectorLength()); bins[0] = UDefPhiH.GetLowEdgeEnergy(size_t(0)); @@ -1930,11 +1930,11 @@ void G4GeneralParticleSource::ArbInterpolate(G4String IType) void G4GeneralParticleSource::LinearInterpolation() { // Method to do linear interpolation on the Arb points - // Calculate equation of each line segment, max 256. + // Calculate equation of each line segment, max 1024. // Calculate Area under each segment // Create a cumulative array which is then normalised Arb_Cum_Area - G4double Area_seg[256]; // Stores area under each segment - G4double sum = 0., Arb_x[256], Arb_y[256], Arb_Cum_Area[256]; + G4double Area_seg[1024]; // Stores area under each segment + G4double sum = 0., Arb_x[1024], Arb_y[1024], Arb_Cum_Area[1024]; G4int i, count; G4int maxi = ArbEnergyH.GetVectorLength(); for(i=0;i log y = alpha*logx + logA // Find area under line segments // create normalised, cumulative array Arb_Cum_Area - G4double Area_seg[256], Arb_x[256], Arb_y[256], Arb_Cum_Area[256]; + G4double Area_seg[1024], Arb_x[1024], Arb_y[1024], Arb_Cum_Area[1024]; G4double alp, sum=0.; Arb_Cum_Area[0] = 0.; if(verbosityLevel == 2) @@ -2160,7 +2160,7 @@ void G4GeneralParticleSource::ExpInterpolation() // y = Ae**-(x/e0) => ln y = -x/e0 + lnA // Find area under line segments // create normalised, cumulative array Arb_Cum_Area - G4double Area_seg[256], Arb_x[256], Arb_y[256], Arb_Cum_Area[256]; + G4double Area_seg[1024], Arb_x[1024], Arb_y[1024], Arb_Cum_Area[1024]; G4double sum=0.; Arb_Cum_Area[0] = 0.; if(verbosityLevel == 2) @@ -2261,7 +2261,7 @@ void G4GeneralParticleSource::SplineInterpolation() // Interpolation using Splines. // Create Normalised arrays, make x 0->1 and y hold // the function (Energy) - G4double Arb_x[256], Arb_y[256]; + G4double Arb_x[1024], Arb_y[1024]; G4double sum = 0.; G4int i, count; if(verbosityLevel == 2) @@ -2626,7 +2626,7 @@ void G4GeneralParticleSource::GenUserHistEnergies() { G4int ii; G4int maxbin = G4int(UDefEnergyH.GetVectorLength()); - G4double bins[256], vals[256], sum; + G4double bins[1024], vals[1024], sum; sum=0.; // UDefEnergyH.DumpValues(); G4double mass = particle_definition->GetPDGMass(); @@ -2635,10 +2635,10 @@ void G4GeneralParticleSource::GenUserHistEnergies() if((EnergySpec == false) && (particle_definition == NULL)) G4cout << "Error: particle definition is NULL" << G4endl; - if(maxbin > 256) + if(maxbin > 1024) { - G4cout << "Maxbin > 256" << G4endl; - G4cout << "Setting maxbin to 256, other bins are lost" << G4endl; + G4cout << "Maxbin > 1024" << G4endl; + G4cout << "Setting maxbin to 1024, other bins are lost" << G4endl; } if(DiffSpec == false) @@ -2785,7 +2785,7 @@ void G4GeneralParticleSource::GenEpnHistEnergies() if(IPDFEnergyExist == false) { // IPDF has not been created, so create it - G4double bins[256],vals[256], sum; + G4double bins[1024],vals[1024], sum; G4int ii; G4int maxbin = G4int(UDefEnergyH.GetVectorLength()); bins[0] = UDefEnergyH.GetLowEdgeEnergy(size_t(0)); @@ -2833,12 +2833,12 @@ void G4GeneralParticleSource::ConvertEPNToEnergy() G4int count, maxcount; maxcount = G4int(EpnEnergyH.GetVectorLength()); // G4cout << maxcount << G4endl; - G4double ebins[256],evals[256]; - if(maxcount > 256) + G4double ebins[1024],evals[1024]; + if(maxcount > 1024) { - G4cout << "Histogram contains more than 256 bins!" << G4endl; - G4cout << "Those above 256 will be ignored" << G4endl; - maxcount = 256; + G4cout << "Histogram contains more than 1024 bins!" << G4endl; + G4cout << "Those above 1024 will be ignored" << G4endl; + maxcount = 1024; } for(count=0;count GetNavigatorForTracking(); - - G4VPhysicalVolume* world= navigator-> GetWorldVolume(); - G4VSolid* solid= world-> GetLogicalVolume()-> GetSolid(); - EInside qinside= solid-> Inside(pos); - - if( qinside != kInside) return false; - else return true; -} - //////////////////////////////////////////////////////////////// void G4HepMCInterface::HepMC2G4(const HepMC::GenEvent* hepmcevt, G4Event* g4event) diff --git a/source/event/src/G4ParticleGun.cc b/source/event/src/G4ParticleGun.cc index 9931776d76..537e7ac3d2 100644 --- a/source/event/src/G4ParticleGun.cc +++ b/source/event/src/G4ParticleGun.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleGun.cc,v 1.6 2001/11/20 23:21:41 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParticleGun.cc,v 1.7 2003/11/19 19:28:43 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4ParticleGun @@ -73,6 +73,13 @@ G4ParticleGun::~G4ParticleGun() void G4ParticleGun::SetParticleDefinition (G4ParticleDefinition * aParticleDefinition) { + if(aParticleDefinition->IsShortLived()) + { + G4cerr << "G4ParticleGun does not support shooting short-lived particle." << G4endl; + G4cerr << "G4ParticleGun::SetParticleDefinition for " + << aParticleDefinition->GetParticleName() << " is ignored." << G4endl; + return; + } particle_definition = aParticleDefinition; particle_charge = particle_definition->GetPDGCharge(); } diff --git a/source/event/src/G4ParticleGunMessenger.cc b/source/event/src/G4ParticleGunMessenger.cc index 31a9901530..a60062c077 100644 --- a/source/event/src/G4ParticleGunMessenger.cc +++ b/source/event/src/G4ParticleGunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleGunMessenger.cc,v 1.9 2003/06/16 16:50:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParticleGunMessenger.cc,v 1.10 2003/11/19 19:28:43 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4ParticleGunMessenger.hh" @@ -66,8 +66,11 @@ G4ParticleGunMessenger::G4ParticleGunMessenger(G4ParticleGun * fPtclGun) G4int nPtcl = particleTable->entries(); for(G4int i=0;iGetParticleName(i); - candidateList += " "; + if(!(particleTable->GetParticle(i)->IsShortLived())) + { + candidateList += particleTable->GetParticleName(i); + candidateList += " "; + } } candidateList += "ion "; particleCmd->SetCandidates(candidateList); diff --git a/source/event/src/G4PrimaryParticle.cc b/source/event/src/G4PrimaryParticle.cc index 263572db57..08dd138c86 100644 --- a/source/event/src/G4PrimaryParticle.cc +++ b/source/event/src/G4PrimaryParticle.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4PrimaryParticle.cc,v 1.10 2003/05/21 20:52:53 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PrimaryParticle.cc,v 1.11 2003/09/12 21:51:34 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4PrimaryParticle.hh" #include "G4ParticleDefinition.hh" #include "G4ParticleTable.hh" #include "G4ios.hh" +#include "G4VUserPrimaryParticleInformation.hh" G4Allocator aPrimaryParticleAllocator; @@ -36,14 +37,14 @@ G4PrimaryParticle::G4PrimaryParticle() :PDGcode(0),G4code(0),Px(0.),Py(0.),Pz(0.), nextParticle(0),daughterParticle(0),trackID(-1), mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), - Weight0(1.0),properTime(0.0) + Weight0(1.0),properTime(0.0),userInfo(0) {;} G4PrimaryParticle::G4PrimaryParticle(G4int Pcode) :PDGcode(Pcode),Px(0.),Py(0.),Pz(0.), nextParticle(0),daughterParticle(0),trackID(-1), mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), - Weight0(1.0),properTime(0.0) + Weight0(1.0),properTime(0.0),userInfo(0) { G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode); } G4PrimaryParticle::G4PrimaryParticle(G4int Pcode, @@ -51,14 +52,14 @@ G4PrimaryParticle::G4PrimaryParticle(G4int Pcode, :PDGcode(Pcode),Px(px),Py(py),Pz(pz), nextParticle(0),daughterParticle(0),trackID(-1), mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), - Weight0(1.0),properTime(0.0) + Weight0(1.0),properTime(0.0),userInfo(0) { G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode); } G4PrimaryParticle::G4PrimaryParticle(G4ParticleDefinition* Gcode) :G4code(Gcode),Px(0.),Py(0.),Pz(0.), nextParticle(0),daughterParticle(0),trackID(-1), mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), - Weight0(1.0),properTime(0.0) + Weight0(1.0),properTime(0.0),userInfo(0) { PDGcode = Gcode->GetPDGEncoding(); } G4PrimaryParticle::G4PrimaryParticle(G4ParticleDefinition* Gcode, @@ -66,7 +67,7 @@ G4PrimaryParticle::G4PrimaryParticle(G4ParticleDefinition* Gcode, :G4code(Gcode),Px(px),Py(py),Pz(pz), nextParticle(0),daughterParticle(0),trackID(-1), mass(0.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.), - Weight0(1.0),properTime(0.0) + Weight0(1.0),properTime(0.0),userInfo(0) { PDGcode = Gcode->GetPDGEncoding(); } G4PrimaryParticle::~G4PrimaryParticle() @@ -75,6 +76,8 @@ G4PrimaryParticle::~G4PrimaryParticle() { delete nextParticle; } if(daughterParticle != 0) { delete daughterParticle; } + if(userInfo!=0) + { delete userInfo; } } void G4PrimaryParticle::SetPDGcode(G4int Pcode) @@ -114,6 +117,7 @@ void G4PrimaryParticle::Print() const G4cout << " Weight : " << Weight0 << G4endl; if(properTime>0.0) { G4cout << " PreAssigned proper decay time : " << properTime/ns << " (nsec)" << G4endl; } + if(userInfo != 0) userInfo->Print(); if(daughterParticle != 0) { G4cout << ">>>> Daughters" << G4endl; diff --git a/source/event/src/G4PrimaryTransformer.cc b/source/event/src/G4PrimaryTransformer.cc index 5581cb9e9f..45e35fa12a 100644 --- a/source/event/src/G4PrimaryTransformer.cc +++ b/source/event/src/G4PrimaryTransformer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PrimaryTransformer.cc,v 1.15 2002/08/19 20:20:18 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PrimaryTransformer.cc,v 1.18 2003/10/01 13:17:34 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4PrimaryTransformer.hh" @@ -135,6 +135,8 @@ void G4PrimaryTransformer::GenerateSingleTrack } // Set decay products to the DynamicParticle SetDecayProducts( primaryParticle, DP ); + // Set primary particle + DP->SetPrimaryParticle(primaryParticle); // Create G4Track object G4Track* track = new G4Track(DP,t0,G4ThreeVector(x0,y0,z0)); // Set trackID and let primary particle know it @@ -187,6 +189,10 @@ void G4PrimaryTransformer::SetDecayProducts #endif G4DynamicParticle*DP = new G4DynamicParticle(partDef,daughter->GetMomentum()); + DP->SetPrimaryParticle(daughter); + // Decay proper time for daughter + if(daughter->GetProperTime()>0.0) + { DP->SetPreAssignedDecayProperTime(daughter->GetProperTime()); } decayProducts->PushProducts(DP); SetDecayProducts(daughter,DP); } diff --git a/source/event/src/G4PrimaryVertex.cc b/source/event/src/G4PrimaryVertex.cc index 6fab2efcfc..f7c2c80786 100644 --- a/source/event/src/G4PrimaryVertex.cc +++ b/source/event/src/G4PrimaryVertex.cc @@ -21,29 +21,30 @@ // ******************************************************************** // // -// $Id: G4PrimaryVertex.cc,v 1.6 2003/05/21 20:52:54 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PrimaryVertex.cc,v 1.7 2003/09/12 21:51:34 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4PrimaryVertex.hh" +#include "G4VUserPrimaryVertexInformation.hh" #include "G4ios.hh" G4Allocator aPrimaryVertexAllocator; G4PrimaryVertex::G4PrimaryVertex() :X0(0.),Y0(0.),Z0(0.),T0(0.),theParticle(0),theTail(0), - nextVertex(0),numberOfParticle(0),Weight0(1.0) + nextVertex(0),numberOfParticle(0),Weight0(1.0),userInfo(0) {;} G4PrimaryVertex::G4PrimaryVertex( G4double x0,G4double y0,G4double z0,G4double t0) :X0(x0),Y0(y0),Z0(z0),T0(t0),theParticle(0),theTail(0), - nextVertex(0),numberOfParticle(0),Weight0(1.0) + nextVertex(0),numberOfParticle(0),Weight0(1.0),userInfo(0) {;} G4PrimaryVertex::G4PrimaryVertex(G4ThreeVector xyz0,G4double t0) :T0(t0),theParticle(0),theTail(0), - nextVertex(0),numberOfParticle(0),Weight0(1.0) + nextVertex(0),numberOfParticle(0),Weight0(1.0),userInfo(0) { X0=xyz0.x(); Y0=xyz0.y(); @@ -56,6 +57,8 @@ G4PrimaryVertex::~G4PrimaryVertex() { delete theParticle; } if(nextVertex != 0) { delete nextVertex; } + if(userInfo != 0) + { delete userInfo; } } const G4PrimaryVertex & @@ -71,6 +74,7 @@ void G4PrimaryVertex::Print() const G4cout << "Vertex ( " << X0 << ", " << Y0 << ", " << Z0 << ", " << T0 << " )" << " Weight " << Weight0 << G4endl; + if(userInfo!=0) userInfo->Print(); G4cout << "#### Primary particles" << G4endl; G4PrimaryParticle* aPrim = theParticle; if(aPrim != 0) diff --git a/source/event/src/G4ScoreTable.cc b/source/event/src/G4ScoreTable.cc index 8e6394fbc3..96e3cdd747 100644 --- a/source/event/src/G4ScoreTable.cc +++ b/source/event/src/G4ScoreTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ScoreTable.cc,v 1.3 2003/06/16 16:50:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/event/src/G4Scorer.cc b/source/event/src/G4Scorer.cc index 90d5ba1320..a398d79913 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc b/source/event/src/G4StackChecker.cc similarity index 51% rename from source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc rename to source/event/src/G4StackChecker.cc index 414a65410f..335163c7b2 100644 --- a/source/geometry/solids/STEPinterface/src/G4VertexPointCreator.cc +++ b/source/event/src/G4StackChecker.cc @@ -21,54 +21,47 @@ // ******************************************************************** // // -// $Id: G4VertexPointCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StackChecker.cc,v 1.1 2003/06/12 15:14:44 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// -// ---------------------------------------------------------------------- -// Class G4VertexPointCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#include "G4VertexPointCreator.hh" -#include "G4GeometryTable.hh" +#include "G4StackChecker.hh" +#include "G4Track.hh" +#include "G4EventManager.hh" +#include "G4Event.hh" +#include "G4ios.hh" -G4VertexPointCreator G4VertexPointCreator::csc; +G4StackChecker::G4StackChecker(): + nullDirection(G4ThreeVector(0.0,0.0,0.0)) +{} -G4VertexPointCreator::G4VertexPointCreator() +G4StackChecker::~G4StackChecker() +{} + +G4ClassificationOfNewTrack G4StackChecker::ClassifyNewTrack +(const G4Track* track) { - G4GeometryTable::RegisterObject(this); + G4ClassificationOfNewTrack result = fUrgent; + G4double e = track->GetKineticEnergy(); + if ( (!(e < 0.0) && !(e > 0.0) && !(e == 0.0)) || + track->GetMomentumDirection() == nullDirection) + { + result = fKill; + G4String nam = track->GetDefinition()->GetParticleName(); + G4cout << "### G4StackChecker: event# " + << (G4EventManager::GetEventManager())->GetConstCurrentEvent()->GetEventID() + << " unacceptable " << nam << " is killed in the stack" << G4endl; + G4cout << "### " << nam << " have been produced by the process " + << track->GetCreatorProcess()->GetProcessName() + << " trackID= " << track->GetTrackID() + << " parentID= " << track->GetParentID() + << G4endl; + G4cout << "### E= " << track->GetKineticEnergy() + << " position= " << track->GetPosition() + << " direction= " << track->GetMomentumDirection() + << " time= " << track->GetGlobalTime() + << G4endl; + } + return result; } -G4VertexPointCreator::~G4VertexPointCreator() {} - -G4VertexPointCreator G4VertexPointCreator::GetInstance() -{ - return csc; -} - -void G4VertexPointCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Point3D *point; - - G4String attrName("vertex_geometry"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - - // Get the geometric point - STEPentity* TmpEnt= *Attr->ptr.c; - void * tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (!tmp) - G4cerr << "WARNING - G4VertexPointCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL point (G4Point3D) !" << G4endl - << "\tVertex point NOT created." << G4endl; - - point = (G4Point3D*)tmp; - createdObject = point; -} - -void G4VertexPointCreator::CreateSTEPGeometry(void*) {} diff --git a/source/event/src/G4StackManager.cc b/source/event/src/G4StackManager.cc index 59207f6b52..9b2e26b37e 100644 --- a/source/event/src/G4StackManager.cc +++ b/source/event/src/G4StackManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StackManager.cc,v 1.8 2002/12/03 17:04:22 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StackManager.cc,v 1.9 2003/08/13 23:44:39 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Last Modification : 09/Dec/96 M.Asai @@ -248,7 +248,7 @@ G4int G4StackManager::PrepareNewEvent() } else { - aTrack->SetTrackID(++n_passedFromPrevious); + aTrack->SetTrackID(-(++n_passedFromPrevious)); switch (classification) { case fUrgent: diff --git a/source/event/src/G4StackedTrack.cc b/source/event/src/G4StackedTrack.cc index 441a7ae8c4..c263569c0f 100644 --- a/source/event/src/G4StackedTrack.cc +++ b/source/event/src/G4StackedTrack.cc @@ -22,7 +22,7 @@ // // // $Id: G4StackedTrack.cc,v 1.6 2003/05/21 20:52:54 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Last Modification : 02/Feb/96 M.Asai diff --git a/source/event/src/G4StackingMessenger.cc b/source/event/src/G4StackingMessenger.cc index ac26a2cf54..afb7762850 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- diff --git a/source/event/src/G4TrackStack.cc b/source/event/src/G4TrackStack.cc index e465400fbd..a7763af65b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4TrackStack.hh" diff --git a/source/event/src/G4TrajectoryContainer.cc b/source/event/src/G4TrajectoryContainer.cc index 4def0a1ba7..d75e8362cc 100644 --- a/source/event/src/G4TrajectoryContainer.cc +++ b/source/event/src/G4TrajectoryContainer.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryContainer.cc,v 1.2 2002/10/06 11:46:48 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4TrajectoryContainer.hh" diff --git a/source/event/src/G4UserEventAction.cc b/source/event/src/G4UserEventAction.cc index d9137f36f8..e6b321ae2f 100644 --- a/source/event/src/G4UserEventAction.cc +++ b/source/event/src/G4UserEventAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserEventAction.cc,v 1.5 2003/05/21 20:52:54 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UserEventAction.hh" diff --git a/source/event/src/G4UserStackingAction.cc b/source/event/src/G4UserStackingAction.cc index 1ebd791a32..84ad66a78b 100644 --- a/source/event/src/G4UserStackingAction.cc +++ b/source/event/src/G4UserStackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserStackingAction.cc,v 1.5 2003/05/21 20:52:54 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UserStackingAction.hh" diff --git a/source/event/src/G4VPrimaryGenerator.cc b/source/event/src/G4VPrimaryGenerator.cc index bca05146e9..f4a2258d38 100644 --- a/source/event/src/G4VPrimaryGenerator.cc +++ b/source/event/src/G4VPrimaryGenerator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPrimaryGenerator.cc,v 1.3 2001/07/11 09:58:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPrimaryGenerator.cc,v 1.4 2003/08/02 00:18:30 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4VPrimaryGenerator @@ -34,4 +34,22 @@ G4VPrimaryGenerator::G4VPrimaryGenerator() G4VPrimaryGenerator::~G4VPrimaryGenerator() {;} +#include "G4TransportationManager.hh" +#include "G4Navigator.hh" +#include "G4VPhysicalVolume.hh" +#include "G4VSolid.hh" + +G4bool G4VPrimaryGenerator::CheckVertexInsideWorld + (const G4ThreeVector& pos) +{ + G4Navigator* navigator= G4TransportationManager::GetTransportationManager() + -> GetNavigatorForTracking(); + + G4VPhysicalVolume* world= navigator-> GetWorldVolume(); + G4VSolid* solid= world-> GetLogicalVolume()-> GetSolid(); + EInside qinside= solid-> Inside(pos); + + if( qinside != kInside) return false; + else return true; +} diff --git a/source/g3tog4/GNUmakefile b/source/g3tog4/GNUmakefile index b61891abe7..8a80e74c16 100644 --- a/source/g3tog4/GNUmakefile +++ b/source/g3tog4/GNUmakefile @@ -40,8 +40,8 @@ CPPFLAGS += \ -I$(G4BASE)/processes/decay/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/tracking/include \ - -I$(G4BASE)/digits+hits/detector/include \ - -I$(G4BASE)/digits+hits/hits/include + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/digits_hits/hits/include ### kludge for AIX diff --git a/source/g3tog4/History b/source/g3tog4/History index f1ff4c88a8..d6a05c3625 100644 --- a/source/g3tog4/History +++ b/source/g3tog4/History @@ -1,8 +1,13 @@ -$Id: History,v 1.52 2003/06/04 16:41:51 gcosmo Exp $ +$Id: History,v 1.53 2003/10/03 14:31:40 gcosmo Exp $ G3toG4 Modification History (reverse chronological order, please !) -------------------------------------------------------------------- +g3tog4-V05-02-00 03-Oct-2003 G.Cosmo +- GNUmakefile: + o replaced "digits+hits" with "digits_hits". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + g3tog4-V05-01-00 04-Jun-2003 G.Cosmo - Fixes for inclusion of in G3EleTable.cc, G3PartTable.cc and G4gsmixt.cc in view of the g4std wrappers migration. diff --git a/source/g3tog4/include/G3DetTable.hh b/source/g3tog4/include/G3DetTable.hh index 2065b0857c..b6ca452351 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G3DetTable class diff --git a/source/g3tog4/include/G3DetTableEntry.hh b/source/g3tog4/include/G3DetTableEntry.hh index 67e2457070..6065511eb5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G3DetTableEntry class diff --git a/source/g3tog4/include/G3Division.hh b/source/g3tog4/include/G3Division.hh index a4d72d1fd5..13c6fcf321 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3EleTable.hh b/source/g3tog4/include/G3EleTable.hh index d3de9e267f..f7b601bf6b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3G4Interface.hh b/source/g3tog4/include/G3G4Interface.hh index bb4a414e48..fe9c1d2635 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Interfaces for G3 equivalent routines // diff --git a/source/g3tog4/include/G3MatTable.hh b/source/g3tog4/include/G3MatTable.hh index dd912489ad..a4b6bcd1b0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MatTableEntry.hh b/source/g3tog4/include/G3MatTableEntry.hh index bbc8f5f5c5..426dd61586 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTable.hh b/source/g3tog4/include/G3MedTable.hh index e83e628a23..424748a689 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3MedTableEntry.hh b/source/g3tog4/include/G3MedTableEntry.hh index 8b31654af2..bc171ab0c2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3PartTable.hh b/source/g3tog4/include/G3PartTable.hh index dae89997a3..51a83af142 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3Pos.hh b/source/g3tog4/include/G3Pos.hh index 3bc6db5817..5d09312962 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTable.hh b/source/g3tog4/include/G3RotTable.hh index 365de040bb..908cb2f9df 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3RotTableEntry.hh b/source/g3tog4/include/G3RotTableEntry.hh index bcf636a3c6..eea27ff265 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3SensVolVector.hh b/source/g3tog4/include/G3SensVolVector.hh index a6af73f02a..dac1cfc93a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6da7fa933f..c2dde3b2b2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3VolTableEntry.hh b/source/g3tog4/include/G3VolTableEntry.hh index 3701afc5b9..72b46398ac 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class description: diff --git a/source/g3tog4/include/G3toG4.hh b/source/g3tog4/include/G3toG4.hh index ac818a71da..1292b5038a 100644 --- a/source/g3tog4/include/G3toG4.hh +++ b/source/g3tog4/include/G3toG4.hh @@ -22,7 +22,7 @@ // // // $Id: G3toG4.hh,v 1.7 2001/07/11 09:58:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // modified by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/include/G3toG4.inc b/source/g3tog4/include/G3toG4.inc index 1f04af3814..895633212f 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-05-02 $ +* GEANT4 tag $Name: geant4-06-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 f0c17da5e6..4b60fa070b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MANY.hh b/source/g3tog4/include/G3toG4MANY.hh index f2f3af83a3..d88d39d4be 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4MakeSolid.hh b/source/g3tog4/include/G3toG4MakeSolid.hh index 850e3d0afc..87a0bf7f28 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------- // Class Description: diff --git a/source/g3tog4/include/G3toG4RotationMatrix.hh b/source/g3tog4/include/G3toG4RotationMatrix.hh index fab8628b59..45f575c548 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // ---------------------- // Class description: // diff --git a/source/g3tog4/include/gcbank.inc b/source/g3tog4/include/gcbank.inc index 380a04ee17..c38c2bde80 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-05-02 $ +* GEANT4 tag $Name: geant4-06-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 b4e401bf99..c7d9466746 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G3DetTableEntry.cc b/source/g3tog4/src/G3DetTableEntry.cc index ec93a7566f..04a54e89e4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "globals.hh" #include "G3DetTableEntry.hh" diff --git a/source/g3tog4/src/G3Division.cc b/source/g3tog4/src/G3Division.cc index 1891b7ef52..ccd994e45f 100644 --- a/source/g3tog4/src/G3Division.cc +++ b/source/g3tog4/src/G3Division.cc @@ -22,7 +22,7 @@ // // // $Id: G3Division.cc,v 1.15 2003/06/16 16:50:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, V.Berejnoi 13.10.99 diff --git a/source/g3tog4/src/G3EleTable.cc b/source/g3tog4/src/G3EleTable.cc index 71870e98e2..cc6e2b7cfe 100644 --- a/source/g3tog4/src/G3EleTable.cc +++ b/source/g3tog4/src/G3EleTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3EleTable.cc,v 1.13 2003/06/16 16:50:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Types.hh" diff --git a/source/g3tog4/src/G3MatTable.cc b/source/g3tog4/src/G3MatTable.cc index 03a9313d7d..897b5dbdc3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MatTableEntry.cc b/source/g3tog4/src/G3MatTableEntry.cc index da2930d111..40a4892d31 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTable.cc b/source/g3tog4/src/G3MedTable.cc index 30d8814096..4ebbb267b7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3MedTableEntry.cc b/source/g3tog4/src/G3MedTableEntry.cc index d245262481..f342babc4b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3NegVolPars.cc b/source/g3tog4/src/G3NegVolPars.cc index 1426340bfd..9b4451c0aa 100644 --- a/source/g3tog4/src/G3NegVolPars.cc +++ b/source/g3tog4/src/G3NegVolPars.cc @@ -22,7 +22,7 @@ // // // $Id: G3NegVolPars.cc,v 1.10 2003/06/16 16:50:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3PartTable.cc b/source/g3tog4/src/G3PartTable.cc index f2791b0d4c..5e723c4593 100644 --- a/source/g3tog4/src/G3PartTable.cc +++ b/source/g3tog4/src/G3PartTable.cc @@ -22,7 +22,7 @@ // // // $Id: G3PartTable.cc,v 1.12 2003/06/16 16:50:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Types.hh" diff --git a/source/g3tog4/src/G3Pos.cc b/source/g3tog4/src/G3Pos.cc index 9c3674f489..a1a4d3f767 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3RotTable.cc b/source/g3tog4/src/G3RotTable.cc index e58edb5bd5..3475e12385 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3RotTableEntry.cc b/source/g3tog4/src/G3RotTableEntry.cc index 2c26d5f012..6d82ed304b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G3VolTable.cc b/source/g3tog4/src/G3VolTable.cc index 228f655cf6..327f4902a5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // modified by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G3VolTableEntry.cc b/source/g3tog4/src/G3VolTableEntry.cc index 3e777bbcf2..fe7ecfc662 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 de7135efa9..842d33706c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7c2595b8de..e32b2c7286 100644 --- a/source/g3tog4/src/G3toG4BuildTree.cc +++ b/source/g3tog4/src/G3toG4BuildTree.cc @@ -22,7 +22,7 @@ // // // $Id: G3toG4BuildTree.cc,v 1.18 2001/11/21 14:25:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // modified by I. Hrivnacova, 2.8.99 diff --git a/source/g3tog4/src/G3toG4MANY.cc b/source/g3tog4/src/G3toG4MANY.cc index 8d946daffb..d1926ca46d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // By I. Hrivnacova, 22.10.01 diff --git a/source/g3tog4/src/G3toG4MakeSolid.cc b/source/g3tog4/src/G3toG4MakeSolid.cc index faccc031eb..14c59d09f4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 fd5cca08a9..fc739c520c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G3toG4RotationMatrix.hh" diff --git a/source/g3tog4/src/G4BuildGeom.cc b/source/g3tog4/src/G4BuildGeom.cc index e02da9c16f..59e3b87f4e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // modified by I. Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4ggclos.cc b/source/g3tog4/src/G4ggclos.cc index 4aeeba8f29..13f38ddb88 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsatt.cc b/source/g3tog4/src/G4gsatt.cc index e792f0787d..eb042fa6cc 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsbool.cc b/source/g3tog4/src/G4gsbool.cc index 1a5470adb2..84ebaf7e34 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 13.10.01 diff --git a/source/g3tog4/src/G4gsdet.cc b/source/g3tog4/src/G4gsdet.cc index 252d22cd67..de5fe72f13 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "globals.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdeta.cc b/source/g3tog4/src/G4gsdeta.cc index f441082ca0..23dc17a9a2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // modified by I.Hrivnacova, 6 Oct 99 diff --git a/source/g3tog4/src/G4gsdetd.cc b/source/g3tog4/src/G4gsdetd.cc index 2977fe7508..e387686070 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdeth.cc b/source/g3tog4/src/G4gsdeth.cc index 121b566113..6b990ef7d3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G3toG4.hh" #include "G3DetTable.hh" diff --git a/source/g3tog4/src/G4gsdetu.cc b/source/g3tog4/src/G4gsdetu.cc index 7db3a667b7..346bd12ccd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdetv.cc b/source/g3tog4/src/G4gsdetv.cc index 089721fa20..8881eca3a4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G4ios.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdk.cc b/source/g3tog4/src/G4gsdk.cc index 1dd0876d76..733b78fb8c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G4Decay.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gsdvn.cc b/source/g3tog4/src/G4gsdvn.cc index 54276b5868..e70bae810e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvn2.cc b/source/g3tog4/src/G4gsdvn2.cc index fdab5dbddf..ec9b898fdc 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt.cc b/source/g3tog4/src/G4gsdvt.cc index d125aba1ae..27265d0708 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvt2.cc b/source/g3tog4/src/G4gsdvt2.cc index 120cf23fa4..dfb9c524ca 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, V.Berejnoi, 29 Oct 99 diff --git a/source/g3tog4/src/G4gsdvx.cc b/source/g3tog4/src/G4gsdvx.cc index 7ebb226b4c..30c70e38d2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, V.Berejnoi, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmate.cc b/source/g3tog4/src/G4gsmate.cc index 44101b6c6c..f7f49557fd 100644 --- a/source/g3tog4/src/G4gsmate.cc +++ b/source/g3tog4/src/G4gsmate.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsmate.cc,v 1.9 2003/04/03 11:30:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G4gsmixt.cc b/source/g3tog4/src/G4gsmixt.cc index d71a3dae13..0a366337b4 100644 --- a/source/g3tog4/src/G4gsmixt.cc +++ b/source/g3tog4/src/G4gsmixt.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsmixt.cc,v 1.10 2003/06/16 16:50:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 27 Sep 99 diff --git a/source/g3tog4/src/G4gspart.cc b/source/g3tog4/src/G4gspart.cc index 3a683e78c8..87c119f471 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4ProcessManager.hh" #include "G3toG4.hh" diff --git a/source/g3tog4/src/G4gspos.cc b/source/g3tog4/src/G4gspos.cc index a77dbca7b7..0b630491c3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsposp.cc b/source/g3tog4/src/G4gsposp.cc index cede7d26bf..7a0968fe6d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/G4gsrotm.cc b/source/g3tog4/src/G4gsrotm.cc index c43c3dc064..8d19671fbe 100644 --- a/source/g3tog4/src/G4gsrotm.cc +++ b/source/g3tog4/src/G4gsrotm.cc @@ -22,7 +22,7 @@ // // // $Id: G4gsrotm.cc,v 1.9 2001/07/11 09:59:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G3toG4.hh" #include "G3RotTable.hh" diff --git a/source/g3tog4/src/G4gstmed.cc b/source/g3tog4/src/G4gstmed.cc index 7e32041342..b0a946fa7e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6c144f9af3..2c1d475f9f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G3toG4.hh" #include "G3VolTable.hh" diff --git a/source/g3tog4/src/G4gsvolu.cc b/source/g3tog4/src/G4gsvolu.cc index febebb6915..16968076d5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // by I.Hrivnacova, 13.10.99 diff --git a/source/g3tog4/src/clparse.cc b/source/g3tog4/src/clparse.cc index c608527407..7c12ad9257 100644 --- a/source/g3tog4/src/clparse.cc +++ b/source/g3tog4/src/clparse.cc @@ -22,7 +22,7 @@ // // // $Id: clparse.cc,v 1.15 2003/06/16 16:50:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // modified by I.Hrivnacova // added G3SensVol diff --git a/source/g3tog4/src/g3routines.F b/source/g3tog4/src/g3routines.F index 99fd74a5ee..fe4c29f602 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-05-02 $ +* GEANT4 tag $Name: geant4-06-00 $ * #define CALL_GEANT diff --git a/source/g3tog4/src/g3test.F.main b/source/g3tog4/src/g3test.F.main index 03bb70bedf..5c8ec95b60 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-05-02 $ +* GEANT4 tag $Name: geant4-06-00 $ * * * g3test diff --git a/source/g3tog4/src/g3tog4.F b/source/g3tog4/src/g3tog4.F index 90a9689fb7..e52c1222bf 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-05-02 $ +* GEANT4 tag $Name: geant4-06-00 $ * * * G3toG4 diff --git a/source/g3tog4/src/g4geom.cc.main b/source/g3tog4/src/g4geom.cc.main index 1714dfad01..ce11c7576b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // g4geom // diff --git a/source/g3tog4/src/jshape.F b/source/g3tog4/src/jshape.F index 028461102f..f7ad524340 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-05-02 $ +* GEANT4 tag $Name: geant4-06-00 $ * * *-- Author : Jouko Vuoskoski, CERN, Jouko.Vuoskoski@cern.ch diff --git a/source/g3tog4/src/mztog4.F b/source/g3tog4/src/mztog4.F index 345b388bb0..23fc9d3b7f 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-05-02 $ +* GEANT4 tag $Name: geant4-06-00 $ * subroutine mztog4 ************************************************************************ diff --git a/source/g3tog4/src/rztog4.F b/source/g3tog4/src/rztog4.F index 6855e9c585..acfe095810 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-05-02 $ +* GEANT4 tag $Name: geant4-06-00 $ * program rztog4 ************************************************************************ diff --git a/source/g3tog4/src/tog4.F b/source/g3tog4/src/tog4.F index 1daebe0d7c..f70c4d5728 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-05-02 $ +* GEANT4 tag $Name: geant4-06-00 $ * subroutine tog4 ************************************************************************ diff --git a/source/geometry/GNUmakefile b/source/geometry/GNUmakefile index 25e489a60c..4825f963ab 100644 --- a/source/geometry/GNUmakefile +++ b/source/geometry/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2003/06/07 16:54:23 gcosmo Exp $ +# $Id: GNUmakefile,v 1.11 2003/10/08 14:39:19 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for geometry. Gabriele Cosmo, 16/11/96. # -------------------------------------------------------------- @@ -11,13 +11,10 @@ endif include $(G4INSTALL)/config/architecture.gmk -SUBDIRS = management volumes magneticfield verification biasing +SUBDIRS = management volumes magneticfield navigation biasing divisions SUBDIRS += solids/CSG solids/specific solids/Boolean solids/BREPS -SUBLIBS = G4geometrymng G4volumes G4magneticfield G4geomver G4geombias +SUBLIBS = G4geometrymng G4volumes G4magneticfield +SUBLIBS += G4navigation G4geombias G4geomdivision SUBLIBS += G4csg G4specsolids G4geomBoolean G4brep -ifdef G4USE_STEP - SUBDIRS += solids/STEP solids/STEPinterface - SUBLIBS += G4step G4stepinterface -endif include $(G4INSTALL)/config/globlib.gmk diff --git a/source/geometry/History b/source/geometry/History index 0bebaa5809..6a35f52c5e 100644 --- a/source/geometry/History +++ b/source/geometry/History @@ -1,4 +1,4 @@ -$Id: History,v 1.28 2002/12/04 19:14:18 asaim Exp $ +$Id: History,v 1.30 2003/11/04 09:47:57 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,22 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 04, 2003 Gabriele Cosmo geometry-V05-02-01 +----------------------------- +- Includes headers review. Tags included: + field-V05-02-01, geommng-V05-02-03, geomnav-V05-02-03, geom-bool-V05-02-03, + geom-csg-V05-02-04, geom-specific-V05-02-04, geomvol-V05-02-03. + +Sep 30, 2003 Gabriele Cosmo geometry-V05-02-00 +----------------------------- +- Logical reorganisation and restructure of modules: + o Added new module "navigation" for navigation-releated classes. + o Removed module "verification" and merged classes in "navigation". + o Archived solids/STEP and solids/STEPinterface modules. + o Modified GNUmakefiles in the various modules to cope with these changes. +- Includes tags: geomvol-V05-02-01, geommng-V05-02-00, geomdiv-V05-02-02, + geombias-V05-02-02, geomnav-V05-02-00, geomsolids-V05-02-00. + Dec 04, 2002 Makoto Asai geometry-V04-01-00 -------------------------- - Migration to new G4ApplicationState diff --git a/source/geometry/biasing/GNUmakefile b/source/geometry/biasing/GNUmakefile index b24e1e3278..c73065d759 100644 --- a/source/geometry/biasing/GNUmakefile +++ b/source/geometry/biasing/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2002/07/11 16:07:07 dressel Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/01 14:51:38 gcosmo Exp $ # -------------------------------------------------------------------- # GNUmakefile for geometry/biasing library. Gabriele Cosmo, 25/03/02. # -------------------------------------------------------------------- @@ -18,6 +18,7 @@ CPPFLAGS += -I$(G4BASE)/geometry/solids/CSG/include \ -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include diff --git a/source/geometry/biasing/History b/source/geometry/biasing/History index 717499dff4..0e098f8f09 100644 --- a/source/geometry/biasing/History +++ b/source/geometry/biasing/History @@ -1,4 +1,4 @@ -$Id: History,v 1.33 2003/06/04 15:55:22 gcosmo Exp $ +$Id: History,v 1.38 2003/10/22 13:52:26 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,19 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Oct, 22nd 2003 G.Cosmo geombias-V05-02-03 + - Migrated calls to G4Exception to new scheme. + +Sep, 30th 2003 G.Cosmo geombias-V05-02-02 + - updated GNUmakefile, according to new structure introduced + in "geometry-V05-02-00". + +Aug, 22th 2003 M.Dressel geombias-V05-02-01 + - got rid off G4ImportanceFinder + +Aug, 19th 2003 M.Dressel geombias-V05-02-00 + - first implementation of weight window technique + Jun, 4th 2003 G.Cosmo geombias-V05-01-00 - Fixes for inclusion of in G4ImportanceAlgorithm.cc and G4ImportanceFinder.cc in view of the g4std wrappers migration. diff --git a/source/geometry/biasing/include/G4GeometryCell.hh b/source/geometry/biasing/include/G4GeometryCell.hh index e018b864f4..c597828739 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCell diff --git a/source/geometry/biasing/include/G4GeometryCellComp.hh b/source/geometry/biasing/include/G4GeometryCellComp.hh index f63f4c0efd..3da99c4132 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellComp diff --git a/source/geometry/biasing/include/G4GeometryCellImportance.hh b/source/geometry/biasing/include/G4GeometryCellImportance.hh index a0cf86e627..b3aadc5051 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellImportance diff --git a/source/geometry/biasing/include/G4GeometryCellStep.hh b/source/geometry/biasing/include/G4GeometryCellStep.hh index 618c596045..e79ac48516 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4GeometryCellStep diff --git a/source/geometry/biasing/include/G4GeometryCellStepStream.hh b/source/geometry/biasing/include/G4GeometryCellStepStream.hh index 4487b5ec0a..ecaed81357 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Declarations diff --git a/source/geometry/solids/STEPinterface/include/G4LineCreator.hh b/source/geometry/biasing/include/G4GeometryCellWeight.hh similarity index 68% rename from source/geometry/solids/STEPinterface/include/G4LineCreator.hh rename to source/geometry/biasing/include/G4GeometryCellWeight.hh index d51036a5e1..1fd7d69e44 100644 --- a/source/geometry/solids/STEPinterface/include/G4LineCreator.hh +++ b/source/geometry/biasing/include/G4GeometryCellWeight.hh @@ -21,48 +21,28 @@ // ******************************************************************** // // -// $Id: G4LineCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeometryCellWeight.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- -// Class G4LineCreator +// Class G4GeometryCellWeight // // Class description: // -// +// Used internally by weight window tehnique sampling. +// It is a map of geometry cells to maps of upper energy +// to lower weight bounds. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4LINECREATOR_HH -#define G4LINECREATOR_HH +#ifndef G4GeometryCellWeight_hh +#define G4GeometryCellWeight_hh G4GeometryCellWeight_hh -#include "G4GeometryCreator.hh" - -class G4LineCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4LineCreator(); - ~G4LineCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Line"; } - static G4LineCreator GetInstance(); - - // Members - - private: - - static G4LineCreator csc; -}; +#include +#include "globals.hh" +#include "G4GeometryCell.hh" +#include "G4GeometryCellComp.hh" +typedef std::map > G4UpperEnergyToLowerWeightMap; +typedef std::map G4GeometryCellWeight; #endif diff --git a/source/geometry/biasing/include/G4IStore.hh b/source/geometry/biasing/include/G4IStore.hh index 9b8f71642c..5e7110215d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4IStore diff --git a/source/geometry/biasing/include/G4ImportanceAlgorithm.hh b/source/geometry/biasing/include/G4ImportanceAlgorithm.hh index 48720f94fc..d2f079a840 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ImportanceAlgorithm diff --git a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh index 324d860af6..72828d9102 100644 --- a/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh +++ b/source/geometry/biasing/include/G4ImportanceSplitExaminer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportanceSplitExaminer.hh,v 1.5 2002/10/14 12:36:00 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ImportanceSplitExaminer.hh,v 1.7 2003/08/19 16:38:45 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ImportanceSplitExaminer @@ -41,7 +41,6 @@ #define G4ImportanceSplitExaminer_hh G4ImportanceSplitExaminer_hh #include "G4VImportanceSplitExaminer.hh" -#include "G4ImportanceFinder.hh" class G4VImportanceAlgorithm; class G4VParallelStepper; @@ -55,10 +54,8 @@ public: // with description G4ImportanceSplitExaminer(const G4VImportanceAlgorithm &aIalg, const G4VParallelStepper &astepper, const G4VIStore &istore); - // initialisation and construct G4ImportanceFinder virtual ~G4ImportanceSplitExaminer(); - // delete G4ImportanceFinder virtual G4Nsplit_Weight Examine(G4double w) const; // Get G4Nsplit_Weight for a given mother track weight. @@ -73,7 +70,7 @@ private: const G4VImportanceAlgorithm &fIalgorithm; const G4VParallelStepper &fPStepper; - G4ImportanceFinder fIfinder; + const G4VIStore &fIStore; }; diff --git a/source/geometry/biasing/include/G4Nsplit_Weight.hh b/source/geometry/biasing/include/G4Nsplit_Weight.hh index ccd7c5e4e8..9245847f1e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Nsplit_Weight diff --git a/source/geometry/biasing/include/G4ParallelNavigator.hh b/source/geometry/biasing/include/G4ParallelNavigator.hh index 356b36a8dc..d1fd00bf3a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelNavigator diff --git a/source/geometry/biasing/include/G4ParallelStepper.hh b/source/geometry/biasing/include/G4ParallelStepper.hh index ad3da542be..1c276f18e0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelStepper diff --git a/source/geometry/biasing/include/G4ParallelWorld.hh b/source/geometry/biasing/include/G4ParallelWorld.hh index 0cec9b4341..70496efa0f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelWorld diff --git a/source/geometry/biasing/include/G4VCellScorer.hh b/source/geometry/biasing/include/G4VCellScorer.hh index ed0865f8f6..82d0924b0b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VCellScorer diff --git a/source/geometry/biasing/include/G4VCellScorerStore.hh b/source/geometry/biasing/include/G4VCellScorerStore.hh index 4e213cf4ec..09bac52948 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VCellScorerStore diff --git a/source/geometry/biasing/include/G4VGCellFinder.hh b/source/geometry/biasing/include/G4VGCellFinder.hh index b4be451055..fce5760c05 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VGCellFinder diff --git a/source/geometry/biasing/include/G4VIStore.hh b/source/geometry/biasing/include/G4VIStore.hh index 06a4a68208..d98a0f961f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VIStore diff --git a/source/geometry/biasing/include/G4VImportanceAlgorithm.hh b/source/geometry/biasing/include/G4VImportanceAlgorithm.hh index 4d723ada19..88cad86e98 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VImportanceAlgorithm diff --git a/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh b/source/geometry/biasing/include/G4VImportanceSplitExaminer.hh index bec39d745d..2834d99fc3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VImportanceSplitExaminer diff --git a/source/geometry/biasing/include/G4VPGeoDriver.hh b/source/geometry/biasing/include/G4VPGeoDriver.hh index c0b91bb4e6..303646792a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VPGeoDriver diff --git a/source/geometry/biasing/include/G4VParallelStepper.hh b/source/geometry/biasing/include/G4VParallelStepper.hh index 1f25e9a14b..fbd8291fe7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VParallelStepper diff --git a/source/geometry/biasing/include/G4VScorer.hh b/source/geometry/biasing/include/G4VScorer.hh index f680bcf6e3..13c26bdf6b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VScorer diff --git a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh index 6743decfbe..cb9ee153f2 100644 --- a/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh +++ b/source/geometry/biasing/include/G4VWeightWindowAlgorithm.hh @@ -21,21 +21,18 @@ // ******************************************************************** // // -// $Id: G4VWeightWindowAlgorithm.hh,v 1.5 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VWeightWindowAlgorithm.hh,v 1.7 2003/08/19 15:44:57 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VWeightWindowAlgorithm // // Class description: // -// This is a base class for an algorithm used for -// weight window importance sampling. It calculates -// the new weight of particles and the number of copies -// it should be split into according to the initial weight -// of the track and the importance of the cell. The window -// is defined by the values of Upper and Lower. -// +// Interface class for an weight window algorithm. It calculates +// the number of tracks and their weight according to the inital +// track weight and the lower energy bound in the energy-space +// cell. // // Author: Michael Dressel (Michael.Dressel@cern.ch) @@ -51,20 +48,14 @@ class G4VWeightWindowAlgorithm public: // with description G4VWeightWindowAlgorithm(); + virtual ~G4VWeightWindowAlgorithm(); - virtual void SetUpperLimit(G4double Upper) = 0; - // set upper limiting factor for window - - virtual void SetLowerLimit(G4double Lower) = 0; - // set lower limiting facotr for window + virtual G4Nsplit_Weight Calculate(G4double init_w, + G4double lowerWeightBound) const = 0; + // calculate number of tracks and their weight according + // to the initial track weight and the lower energy bound - virtual G4Nsplit_Weight Calculate(G4double init_w, - G4double importance) const = 0; - // calculate the number of tracks and their weight according - // to the upper and lower limmiting factors of the window - // and the initial weight - }; #endif diff --git a/source/geometry/biasing/include/G4ImportanceFinder.hh b/source/geometry/biasing/include/G4VWeightWindowExaminer.hh similarity index 68% rename from source/geometry/biasing/include/G4ImportanceFinder.hh rename to source/geometry/biasing/include/G4VWeightWindowExaminer.hh index 84a0458b30..ac2afba7e6 100644 --- a/source/geometry/biasing/include/G4ImportanceFinder.hh +++ b/source/geometry/biasing/include/G4VWeightWindowExaminer.hh @@ -21,50 +21,41 @@ // ******************************************************************** // // -// $Id: G4ImportanceFinder.hh,v 1.6 2002/10/14 12:36:00 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VWeightWindowExaminer.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- -// Class G4ImportanceFinder +// Class G4VWeightWindowExaminer // // Class description: // -// This class is used internally by importance sampling in a parallel -// geometry. It derives the ratio of importances of the pre over the post -// G4GeometryCell. +// Interface class to a weight window examiner. The examiner +// has to return the number of tracks and their weight according to +// the initial track weight and the energy of the track. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4ImportanceFinder_hh -#define G4ImportanceFinder_hh G4ImportanceFinder_hh +#ifndef G4VWeightWindowExaminer_hh +#define G4VWeightWindowExaminer_hh G4VWeightWindowExaminer_hh #include "globals.hh" +#include "G4Nsplit_Weight.hh" -class G4VParallelStepper; -class G4VIStore; -class G4GeometryCell; - -class G4ImportanceFinder +class G4VWeightWindowExaminer { public: // with description + + // constructor and destructor + G4VWeightWindowExaminer(); + virtual ~G4VWeightWindowExaminer(); + + - explicit G4ImportanceFinder(const G4VIStore &aIStore); - // initialise fIStore + virtual G4Nsplit_Weight Examine(G4double w, G4double energy) const = 0; + // evaluate the number of tracks and their weight according + // to the initial track weight and energy - ~G4ImportanceFinder(); - // destruction - - G4double GetImportance(const G4GeometryCell &gCell) const; - // get the importance to a G4GeometryCell - -private: - - void Error(const G4String &m) const; - -private: - - const G4VIStore &fIStore; }; #endif diff --git a/source/geometry/solids/STEPinterface/include/G4GeometryTable.hh b/source/geometry/biasing/include/G4VWeightWindowStore.hh similarity index 60% rename from source/geometry/solids/STEPinterface/include/G4GeometryTable.hh rename to source/geometry/biasing/include/G4VWeightWindowStore.hh index eb6ef049b1..7cf8e889ec 100644 --- a/source/geometry/solids/STEPinterface/include/G4GeometryTable.hh +++ b/source/geometry/biasing/include/G4VWeightWindowStore.hh @@ -21,61 +21,48 @@ // ******************************************************************** // // -// $Id: G4GeometryTable.hh,v 1.8 2003/06/16 16:53:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VWeightWindowStore.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- -// Class G4GeometryTable +// Class G4VWeightWindowStore // // Class description: // -// +// Interface class for a weight window store. It defines how the lower +// weight window bound can be obtained from a weight window store. +// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4GEOMETRYTABLE_HH -#define G4GEOMETRYTABLE_HH +#ifndef G4VWeightWindowStore_hh +#define G4VWeightWindowStore_hh G4VWeightWindowStore_hh -#include #include "globals.hh" -#include "G4GeometryCreator.hh" -typedef std::vector G4CreatorVector; +class G4GeometryCell; +class G4VPhysicalVolume; -class G4GeometryTable +class G4VWeightWindowStore { - public: - // Destructor - - ~G4GeometryTable(); +public: // with description - // Member functions + G4VWeightWindowStore(); + virtual ~G4VWeightWindowStore(); - static void RegisterObject(G4GeometryCreator*); - static G4bool ExistsInTable(G4String&); - static G4GeometryCreator* GetObject(G4String); - static void* CreateObject(STEPentity&); - static void* CreateSTEPObject(void*, G4String&); - static void PrintObjectNames(); - static const G4GeometryTable& GetInstance(); + virtual G4double GetLowerWeitgh(const G4GeometryCell &gCell, + G4double partEnergy) const = 0; + // derive a lower weight bound value of a "cell" addresed by a + // G4GeometryCell and the coresponding energy from the store. - public: + virtual G4bool IsKnown(const G4GeometryCell &gCell) const = 0; + // returns true if the gCell is in the store, else false - // Constructor, singleton - G4GeometryTable(); - - // Members - - private: - - static G4CreatorVector RegisteredObjects; - static G4GeometryTable gt; + virtual const G4VPhysicalVolume &GetWorldVolume() const = 0; + // return a reference to the wolrd volume of the + // geometry }; #endif diff --git a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh index 2a7b708ac0..a74e7bf24f 100644 --- a/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh +++ b/source/geometry/biasing/include/G4WeightWindowAlgorithm.hh @@ -21,13 +21,27 @@ // ******************************************************************** // // -// $Id: G4WeightWindowAlgorithm.hh,v 1.4 2002/10/14 12:36:01 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4WeightWindowAlgorithm.hh,v 1.6 2003/08/19 15:44:57 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4WeightWindowAlgorithm // // Class description: +// Implementation of a weight window algorithm. +// The arguments in the constructor configure the algorithm: +// - upperLimitFaktor: the factor defining the upper weight limit +// W_u = upperLimitFaktor * W_l (W_l lower weight bound) +// - survivalFaktor: used in calculating the survival weight +// W_s = survivalFaktor * W_l +// - maxNumberOfSplits: the maximal number of splits allowed +// to be created in one go, and the reciprocal of the minimal +// survival probability in case of Russian roulette +// +// In case of upperLimitFaktor=survivalFaktor=1 the algorithm +// becomes the expected weight algorithm of the importance sampling +// technique. +// // see also G4VWeightWindowAlgorithm. // @@ -44,33 +58,21 @@ class G4WeightWindowAlgorithm : public G4VWeightWindowAlgorithm public: // with description - G4WeightWindowAlgorithm(); + G4WeightWindowAlgorithm(G4double upperLimitFaktor = 5, + G4double survivalFaktor = 3, + G4int maxNumberOfSplits = 5); virtual ~G4WeightWindowAlgorithm(); - virtual void SetUpperLimit(G4double Upper); - // set upper limiting factor for window - // - Upper is the maximum factor by which the weight of a particle may - // be higher than it should be according to the importance - - virtual void SetLowerLimit(G4double Lower); - // set lower limiting facotr for window - // - Lower is the minimal factor by which the wight may be - // lower than it should be according to the importance - - - - virtual G4Nsplit_Weight Calculate(G4double init_w, - G4double importance) const; - // calculate the number of tracks and their weight according - // to the upper and lower limmiting factors of the window - // and the initial weight - // - init_w is the initial weight of the particle - // - importance is the importance of the cell + virtual G4Nsplit_Weight Calculate(G4double init_w, + G4double lowerWeightBound) const; + // calculate number of tracks and their weight according + // to the initial track weight and the lower energy bound private: - G4double fUpper; - G4double fLower; + G4double fUpperLimitFaktor; + G4double fSurvivalFaktor; + G4int fMaxNumberOfSplits; }; #endif diff --git a/source/geometry/solids/STEPinterface/include/G4ConicalSurfaceCreator.hh b/source/geometry/biasing/include/G4WeightWindowExaminer.hh similarity index 56% rename from source/geometry/solids/STEPinterface/include/G4ConicalSurfaceCreator.hh rename to source/geometry/biasing/include/G4WeightWindowExaminer.hh index 86769d3d61..d8094c1628 100644 --- a/source/geometry/solids/STEPinterface/include/G4ConicalSurfaceCreator.hh +++ b/source/geometry/biasing/include/G4WeightWindowExaminer.hh @@ -21,48 +21,59 @@ // ******************************************************************** // // -// $Id: G4ConicalSurfaceCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4WeightWindowExaminer.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- -// Class G4ConicalSurfaceCreator +// Class G4WeightWindowExaminer // // Class description: -// -// +// +// Implementation of an weight window examiner according to +// G4VWeightWindowExaminer interface. +// See also description in G4VWeightWindowExaminer.hh -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4CONICALSURFACECREATOR_HH -#define G4CONICALSURFACECREATOR_HH +#ifndef G4WeightWindowExaminer_hh +#define G4WeightWindowExaminer_hh G4WeightWindowExaminer_hh -#include "G4GeometryCreator.hh" +#include "G4VWeightWindowExaminer.hh" -class G4ConicalSurfaceCreator: private G4GeometryCreator +class G4VWeightWindowAlgorithm; +class G4VParallelStepper; +class G4VWeightWindowStore; + +class G4WeightWindowExaminer: public G4VWeightWindowExaminer { - public: - // Constructor & destructor +public: // with description - G4ConicalSurfaceCreator(); - ~G4ConicalSurfaceCreator(); + G4WeightWindowExaminer(const G4VWeightWindowAlgorithm &aWWalg, + const G4VParallelStepper &astepper, + const G4VWeightWindowStore &wwstore); + // constructor - // Member functions + virtual ~G4WeightWindowExaminer(); + // destructor - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Conical_Surface"; } - static G4ConicalSurfaceCreator GetInstance(); - - // Members + virtual G4Nsplit_Weight Examine(G4double w, G4double energy) const; + // evaluate the number of tracks and their weight according + // to the initial track weight and energy - private: + - static G4ConicalSurfaceCreator csc; +private: + + G4WeightWindowExaminer(const G4WeightWindowExaminer &); + G4WeightWindowExaminer &operator=(const G4WeightWindowExaminer &); + +private: + + const G4VWeightWindowAlgorithm &fWWalgorithm; + const G4VParallelStepper &fPStepper; + const G4VWeightWindowStore &fWWStore; }; + #endif diff --git a/source/geometry/biasing/include/G4WeightWindowStore.hh b/source/geometry/biasing/include/G4WeightWindowStore.hh new file mode 100644 index 0000000000..0ff3423f1e --- /dev/null +++ b/source/geometry/biasing/include/G4WeightWindowStore.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: G4WeightWindowStore.hh,v 1.2 2003/08/19 15:44:57 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// Class G4WeightWindowStore +// +// Class description: +// +// Implementation of a weight window store according to the +// G4VWeightWindowStore interface. +// See G4VWeightWindowStore. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4WeightWindowStore_hh +#define G4WeightWindowStore_hh G4WeightWindowStore_hh + +#include "G4VWeightWindowStore.hh" +#include "G4GeometryCellWeight.hh" +#include +#include + +class G4WeightWindowStore: public G4VWeightWindowStore +{ + +public: // with description + + explicit G4WeightWindowStore(const G4VPhysicalVolume &worldvolume); + // initialise the weight window store for the given geometry + + virtual ~G4WeightWindowStore(); + // destruct + + virtual G4double GetLowerWeitgh(const G4GeometryCell &gCell, + G4double partEnergy) const; + // derive a lower weight bound value of a "cell" addresed by a + // G4GeometryCell and the coresponding energy from the store. + + virtual G4bool IsKnown(const G4GeometryCell &gCell) const; + // returns true if the gCell is in the store, else false + + + virtual const G4VPhysicalVolume &GetWorldVolume() const; + // return a reference to the wolrd volume of the + // geometry + + void AddLowerWeights(const G4GeometryCell &gCell, + const std::vector &lowerWeights); + // add lower weights. Only if general upper energy bounds have + // been set + + void AddUpperEboundLowerWeightPairs(const G4GeometryCell &gCell, + const G4UpperEnergyToLowerWeightMap& + enWeMap); + // set upper energy - lower weight pairs for a cell + + void SetGeneralUpperEnergyBounds(const std::set > &enBounds); + +private: + + G4bool IsInWorld(const G4VPhysicalVolume &) const; + void Error(const G4String &m) const; + void SetInternalIterator(const G4GeometryCell &gCell) const; + +private: + + const G4VPhysicalVolume &fWorldVolume; + std::set > fGeneralUpperEnergyBounds; + G4GeometryCellWeight fCellToUpEnBoundLoWePairsMap; + mutable G4GeometryCellWeight::const_iterator fCurrentIterator; + +}; + +#endif diff --git a/source/geometry/biasing/src/G4GeometryCell.cc b/source/geometry/biasing/src/G4GeometryCell.cc index 3a5101b5b4..7e17908c8e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellComp.cc b/source/geometry/biasing/src/G4GeometryCellComp.cc index 38a6cef6ba..daab19924a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellImportance.cc b/source/geometry/biasing/src/G4GeometryCellImportance.cc index 1175d8f7a9..151d4fe76a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellStep.cc b/source/geometry/biasing/src/G4GeometryCellStep.cc index 9010cb5bdd..ac22dcb149 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4GeometryCellStepStream.cc b/source/geometry/biasing/src/G4GeometryCellStepStream.cc index 6e7b737deb..46c1bc8b23 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4IStore.cc b/source/geometry/biasing/src/G4IStore.cc index 3f2e386d96..32996063d6 100644 --- a/source/geometry/biasing/src/G4IStore.cc +++ b/source/geometry/biasing/src/G4IStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IStore.cc,v 1.12 2003/04/03 10:45:51 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4IStore.cc,v 1.13 2003/10/22 13:52:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -145,6 +145,6 @@ G4bool G4IStore::IsInWorld(const G4VPhysicalVolume &aVolume) const void G4IStore::Error(const G4String &m) const { - G4cout << "ERROR - G4IStore::" << m << G4endl; - G4Exception("Program aborted."); + G4cerr << "ERROR - G4IStore::" << m << G4endl; + G4Exception("G4IStore::Error()", "FatalException", FatalException, m); } diff --git a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc index 861d39ef7f..c2180f9391 100644 --- a/source/geometry/biasing/src/G4ImportanceAlgorithm.cc +++ b/source/geometry/biasing/src/G4ImportanceAlgorithm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportanceAlgorithm.cc,v 1.11 2003/06/16 16:51:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ImportanceAlgorithm.cc,v 1.12 2003/10/22 13:52:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -57,7 +57,7 @@ G4ImportanceAlgorithm::Calculate(G4double ipre, G4Nsplit_Weight nw = {0,0}; if (ipost>0.){ if (!(ipre>0.)){ - G4Exception("Error: G4ImportanceAlgorithm::Calculate: ipre==0."); + Error("G4ImportanceAlgorithm::Calculate() - ipre==0."); } G4double ipre_over_ipost = ipre/ipost; if ((ipre_over_ipost<0.25 || ipre_over_ipost> 4) && !fWorned) { @@ -67,11 +67,11 @@ G4ImportanceAlgorithm::Calculate(G4double ipre, Warning(os.str()); fWorned = true; if (ipre_over_ipost<=0) { - Error("Calculate: ipre_over_ipost<=0"); + Error("G4ImportanceAlgorithm::Calculate() - ipre_over_ipost<=0"); } } if (init_w<=0.) { - Error("Calculate: iniitweight<= 0. found"); + Error("G4ImportanceAlgorithm::Calculate() - iniitweight<= 0. found"); } // default geometrical splitting @@ -116,11 +116,13 @@ G4ImportanceAlgorithm::Calculate(G4double ipre, void G4ImportanceAlgorithm::Error(const G4String &m) const { - G4cout << "ERROR - G4ImportanceAlgorithm::" << m << G4endl; - G4Exception("Program aborted."); + G4cerr << "ERROR - G4ImportanceAlgorithm: " << m << G4endl; + G4Exception("G4ImportanceAlgorithm::Error()", + "FatalException", FatalException, m); } void G4ImportanceAlgorithm::Warning(const G4String &m) const { - G4cout << "WARNING - G4ImportanceAlgorithm::" << m << G4endl; + G4Exception("G4ImportanceAlgorithm::Warning()", + "Notification", JustWarning, m); } diff --git a/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc b/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc index c03b286f5f..7f98020f4d 100644 --- a/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc +++ b/source/geometry/biasing/src/G4ImportanceSplitExaminer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ImportanceSplitExaminer.cc,v 1.6 2002/10/22 13:18:47 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ImportanceSplitExaminer.cc,v 1.7 2003/08/19 16:38:47 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -34,6 +34,7 @@ #include "G4ImportanceSplitExaminer.hh" #include "G4VParallelStepper.hh" #include "G4VImportanceAlgorithm.hh" +#include "G4VIStore.hh" G4ImportanceSplitExaminer:: G4ImportanceSplitExaminer(const G4VImportanceAlgorithm &aIalg, @@ -41,7 +42,7 @@ G4ImportanceSplitExaminer(const G4VImportanceAlgorithm &aIalg, const G4VIStore &istore) : fIalgorithm(aIalg), fPStepper(astepper), - fIfinder(istore) + fIStore(istore) {} G4ImportanceSplitExaminer::~G4ImportanceSplitExaminer() @@ -52,8 +53,8 @@ G4Nsplit_Weight G4ImportanceSplitExaminer::Examine(G4double w) const { G4GeometryCellStep pstep = fPStepper.GetPStep(); G4Nsplit_Weight nw = fIalgorithm. - Calculate(fIfinder.GetImportance(pstep.GetPreGeometryCell()), - fIfinder.GetImportance(pstep.GetPostGeometryCell()), + Calculate(fIStore.GetImportance(pstep.GetPreGeometryCell()), + fIStore.GetImportance(pstep.GetPostGeometryCell()), w); return nw; } diff --git a/source/geometry/biasing/src/G4Nsplit_Weight.cc b/source/geometry/biasing/src/G4Nsplit_Weight.cc index 29508db2a5..d4af6ecde0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4ParallelNavigator.cc b/source/geometry/biasing/src/G4ParallelNavigator.cc index 56be0235ab..1c14842b8f 100644 --- a/source/geometry/biasing/src/G4ParallelNavigator.cc +++ b/source/geometry/biasing/src/G4ParallelNavigator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelNavigator.cc,v 1.17 2003/06/16 16:51:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelNavigator.cc,v 1.18 2003/10/22 13:52:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -259,10 +259,11 @@ void G4ParallelNavigator::Error(const G4String &m, const G4ThreeVector &pos, const G4ThreeVector &dir) { - G4cout << "ERROR - G4ParallelNavigator::" << m << G4endl; - G4cout << "aPosition: " << pos << G4endl; - G4cout << "dir: " << dir << G4endl; - G4Exception("Program aborted."); + G4cerr << "ERROR - G4ParallelNavigator: " << m << G4endl + << " aPosition: " << pos << G4endl + << " dir: " << dir << G4endl; + G4Exception("G4ParallelNavigator::Error()", + "FatalException", FatalException, m); } G4double G4ParallelNavigator::Shift(G4double d) diff --git a/source/geometry/biasing/src/G4ParallelStepper.cc b/source/geometry/biasing/src/G4ParallelStepper.cc index 290a51ee28..e5814fff8d 100644 --- a/source/geometry/biasing/src/G4ParallelStepper.cc +++ b/source/geometry/biasing/src/G4ParallelStepper.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelStepper.cc,v 1.10 2003/04/03 08:01:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelStepper.cc,v 1.11 2003/10/22 13:52:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -107,6 +107,7 @@ void G4ParallelStepper::UnSetCrossBoundary() void G4ParallelStepper::Error(const G4String &m) { - G4cout << "ERROR: in G4ParallelStepper::" << m << G4endl; - G4Exception("Program aborted."); + G4cout << "ERROR: in G4ParallelStepper: " << m << G4endl; + G4Exception("G4ParallelStepper::Error()", + "FatalException", FatalException, m); } diff --git a/source/geometry/biasing/src/G4ParallelWorld.cc b/source/geometry/biasing/src/G4ParallelWorld.cc index 7acf1ce4ca..14c0446e01 100644 --- a/source/geometry/biasing/src/G4ParallelWorld.cc +++ b/source/geometry/biasing/src/G4ParallelWorld.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelWorld.cc,v 1.6 2002/11/04 10:43:07 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelWorld.cc,v 1.7 2003/10/22 13:52:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -41,10 +41,12 @@ G4ParallelWorld::G4ParallelWorld(G4VPhysicalVolume &worldvolume) fPdriver(new G4ParallelNavigator(worldvolume)) { if (!fPstepper) { - G4Exception("ERROR: G4ParallelWorld::G4ParallelWorld: new failed to create a G4ParallelStepper"); + G4Exception("G4ParallelWorld::G4ParallelWorld()", "FatalException", + FatalException, "NULL stepper. Failure in creation."); } if (!fPdriver) { - G4Exception("ERROR: G4ParallelWorld::G4ParallelWorld: new failed to create a G4ParallelNavigator"); + G4Exception("G4ParallelWorld::G4ParallelWorld()", "FatalException", + FatalException, "NULL navigator driver. Failure in creation."); } } diff --git a/source/geometry/biasing/src/G4VCellScorer.cc b/source/geometry/biasing/src/G4VCellScorer.cc index 94cb5d61b2..dc300e1dd9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VCellScorerStore.cc b/source/geometry/biasing/src/G4VCellScorerStore.cc index c5d0155528..7ad3bc1929 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VGCellFinder.cc b/source/geometry/biasing/src/G4VGCellFinder.cc index 8c570c2452..28b90ded0c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VIStore.cc b/source/geometry/biasing/src/G4VIStore.cc index 81f8b661ec..14fc5fc9a8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VImportanceAlgorithm.cc b/source/geometry/biasing/src/G4VImportanceAlgorithm.cc index fcd99d970d..43bf23b1ef 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc b/source/geometry/biasing/src/G4VImportanceSplitExaminer.cc index c609a3dc65..a33e6f317c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VPGeoDriver.cc b/source/geometry/biasing/src/G4VPGeoDriver.cc index 0d81873499..de44f04cbe 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VParallelStepper.cc b/source/geometry/biasing/src/G4VParallelStepper.cc index 623fd41db8..7bb84f9583 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VScorer.cc b/source/geometry/biasing/src/G4VScorer.cc index b5ee4e531b..78fb3c80e6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4VWeightWindowAlgorithm.cc index cd1227b8de..788756f74f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/examples/extended/geometry/cad/include/CadVisManager.hh b/source/geometry/biasing/src/G4VWeightWindowExaminer.cc similarity index 81% rename from examples/extended/geometry/cad/include/CadVisManager.hh rename to source/geometry/biasing/src/G4VWeightWindowExaminer.cc index 4f3e2b61a2..b0d688a241 100644 --- a/examples/extended/geometry/cad/include/CadVisManager.hh +++ b/source/geometry/biasing/src/G4VWeightWindowExaminer.cc @@ -21,30 +21,20 @@ // ******************************************************************** // // -// $Id: CadVisManager.hh,v 1.1 2002/06/20 10:00:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -------------------------------------------------------------------- +// $Id: G4VWeightWindowExaminer.cc,v 1.1 2003/08/19 15:17:26 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VWeightWindowExaminer.cc +// +// ---------------------------------------------------------------------- -#ifndef CadVisManager_h -#define CadVisManager_h 1 +#include "G4VWeightWindowExaminer.hh" -#ifdef G4VIS_USE +G4VWeightWindowExaminer::G4VWeightWindowExaminer() +{} -#include "G4VisManager.hh" - -// -------------------------------------------------------------------- - -class CadVisManager : public G4VisManager -{ - public: - - CadVisManager (); - - private: - - void RegisterGraphicsSystems (); -}; - -#endif - -#endif +G4VWeightWindowExaminer::~G4VWeightWindowExaminer() +{} diff --git a/examples/extended/analysis/A01/include/AIDA/ITupleEntry.h b/source/geometry/biasing/src/G4VWeightWindowStore.cc similarity index 76% rename from examples/extended/analysis/A01/include/AIDA/ITupleEntry.h rename to source/geometry/biasing/src/G4VWeightWindowStore.cc index 4111f0fd33..885bb9a414 100644 --- a/examples/extended/analysis/A01/include/AIDA/ITupleEntry.h +++ b/source/geometry/biasing/src/G4VWeightWindowStore.cc @@ -20,28 +20,19 @@ // * statement, and all its terms. * // ******************************************************************** // -// DUMMY CLASS -#ifndef AIDA_ITUPLEENTRY_H -#define AIDA_ITUPLEENTRY_H 1 +// +// $Id: G4VWeightWindowStore.cc,v 1.2 2003/08/19 15:44:57 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4VWeightWindowStore +// +// ---------------------------------------------------------------------- -#include -#include -namespace AIDA { +#include "G4VWeightWindowStore.hh" -/** - * User level interface to a Tuple. - * - * @author The AIDA team (http://aida.freehep.org/) - * - */ - -class ITupleEntry { - -public: - /// Destructor. - virtual ~ITupleEntry() { /* nop */; } - -}; // class -}; // namespace AIDA -#endif /* ifndef AIDA_ITUPLEENTRY_H */ +G4VWeightWindowStore::G4VWeightWindowStore(){} +G4VWeightWindowStore::~G4VWeightWindowStore(){} diff --git a/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc index 835f17a827..5a1f7189f0 100644 --- a/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc +++ b/source/geometry/biasing/src/G4WeightWindowAlgorithm.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4WeightWindowAlgorithm.cc,v 1.5 2002/10/16 14:29:07 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4WeightWindowAlgorithm.cc,v 1.7 2003/08/19 15:16:56 dressel Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -34,66 +34,76 @@ #include "Randomize.hh" -G4WeightWindowAlgorithm::G4WeightWindowAlgorithm() : - fUpper(1), - fLower(1) +G4WeightWindowAlgorithm:: +G4WeightWindowAlgorithm(G4double upperLimitFaktor, + G4double survivalFaktor, + G4int maxNumberOfSplits) : + fUpperLimitFaktor(upperLimitFaktor), + fSurvivalFaktor(survivalFaktor), + fMaxNumberOfSplits(maxNumberOfSplits) {} G4WeightWindowAlgorithm::~G4WeightWindowAlgorithm() {} -void G4WeightWindowAlgorithm::SetUpperLimit(G4double Upper){ - fUpper = Upper; -} - -void G4WeightWindowAlgorithm::SetLowerLimit(G4double Lower){ - fLower = Lower; -} - G4Nsplit_Weight -G4WeightWindowAlgorithm::Calculate(G4double init_w, - G4double importance) const { +G4WeightWindowAlgorithm::Calculate(G4double init_w, + G4double lowerWeightBound) const { + G4double survivalWeight = lowerWeightBound * fSurvivalFaktor; + G4double upperWeight = lowerWeightBound * fUpperLimitFaktor; - G4Nsplit_Weight nw = {1, init_w}; - G4double iw = importance * init_w; - if (iw>fUpper) { - // f is the factor by which the weight is greater - // than allowed by fUpper - // it is almost the number of coppies to be produced - G4double f = iw / fUpper; - // calculate new weight - nw.fW/=f; + // initialize return value for case weight in window + G4Nsplit_Weight nw; + nw.fN = 1; + nw.fW = init_w; - // calculate the number of coppies - nw.fN = static_cast(f); - // correct the number of coppies in case f is not an integer - if (static_cast(nw.fN) != f) { - // probabillity p for splitting into nw.fN+1 particles - G4double p = f - nw.fN; - // get a random number out of [0,1) - G4double r = G4UniformRand(); - if (r upperWeight) { + // splitting + + G4double wi_ws = init_w/survivalWeight; + G4int int_wi_ws = static_cast(wi_ws); + + // values in case integer mode or in csae of double + // mode and the lower number of splits will be diced + nw.fN = int_wi_ws; + nw.fW = survivalWeight; + + if (wi_ws <= fMaxNumberOfSplits) { + if (wi_ws > int_wi_ws) { + // double mode + G4double p2 = wi_ws - int_wi_ws; + G4double r = G4UniformRand(); + if (r=p) { - // kill track - nw.fN = 0; + if (r +#include "G4WeightWindowExaminer.hh" #include "G4VParallelStepper.hh" -#include "G4ImportanceFinder.hh" -#include "G4VIStore.hh" -#include "G4GeometryCellStepStream.hh" +#include "G4VWeightWindowAlgorithm.hh" +#include "G4GeometryCellStep.hh" +#include "G4VWeightWindowStore.hh" -G4ImportanceFinder::G4ImportanceFinder(const G4VIStore &aIStore) - : fIStore(aIStore) +G4WeightWindowExaminer:: +G4WeightWindowExaminer(const G4VWeightWindowAlgorithm &aWWalg, + const G4VParallelStepper &astepper, + const G4VWeightWindowStore &wwstore) + : fWWalgorithm(aWWalg), + fPStepper(astepper), + fWWStore(wwstore) {} -G4ImportanceFinder::~G4ImportanceFinder() +G4WeightWindowExaminer::~G4WeightWindowExaminer() {} -G4double -G4ImportanceFinder::GetImportance(const G4GeometryCell &gCell) const -{ - G4double imp = fIStore.GetImportance(gCell); - // importances < 0 are not allowed - if (imp < 0) { - std::ostrstream os; - os << "imp < 0: GeometryCell = " << gCell << '\0'; - Error(os.str()); - } - return imp; -} - -void G4ImportanceFinder::Error(const G4String &m) const + +G4Nsplit_Weight G4WeightWindowExaminer::Examine(G4double w, + G4double energy) const { - G4cout << "ERROR - G4ImportanceFinder::" << m << G4endl; - G4Exception("Program aborted."); + G4GeometryCellStep pstep = fPStepper.GetPStep(); + + G4Nsplit_Weight nw = fWWalgorithm. + Calculate(w, fWWStore.GetLowerWeitgh(pstep.GetPostGeometryCell(), + energy)); + + return nw; } diff --git a/source/geometry/biasing/src/G4WeightWindowStore.cc b/source/geometry/biasing/src/G4WeightWindowStore.cc new file mode 100644 index 0000000000..7870e37c2f --- /dev/null +++ b/source/geometry/biasing/src/G4WeightWindowStore.cc @@ -0,0 +1,173 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4WeightWindowStore.cc,v 1.4 2003/10/22 13:52:10 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4WeightWindowStore +// +// ---------------------------------------------------------------------- + + +#include "G4WeightWindowStore.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4GeometryCellStepStream.hh" + + +G4WeightWindowStore:: +G4WeightWindowStore(const G4VPhysicalVolume &worldvolume) : + fWorldVolume(worldvolume), + fGeneralUpperEnergyBounds(), + fCellToUpEnBoundLoWePairsMap(), + fCurrentIterator(fCellToUpEnBoundLoWePairsMap.end()) +{} + +G4WeightWindowStore::~G4WeightWindowStore() +{} + + +G4double G4WeightWindowStore::GetLowerWeitgh(const G4GeometryCell &gCell, + G4double partEnergy) const +{ + SetInternalIterator(gCell); + if (fCurrentIterator == fCellToUpEnBoundLoWePairsMap.end()) { + Error("GetLowerWitgh: Cell does not exist"); + } + G4UpperEnergyToLowerWeightMap upEnLoWeiPairs = + fCurrentIterator->second; + G4double lowerWeight = -1; + G4bool found = false; + for (G4UpperEnergyToLowerWeightMap::iterator it = + upEnLoWeiPairs.begin(); it != upEnLoWeiPairs.end(); it++) { + if (partEnergy < it->first) { + lowerWeight = it->second; + found = true; + break; + } + } + if (!found) { + G4cout << "energy: " << partEnergy << G4endl; + Error("GetLowerWitgh: couldn't find lower weight bound"); + } + return lowerWeight; + + +} + +void G4WeightWindowStore:: +SetInternalIterator(const G4GeometryCell &gCell) const +{ + fCurrentIterator = fCellToUpEnBoundLoWePairsMap.find(gCell); +} + +G4bool G4WeightWindowStore:: +IsInWorld(const G4VPhysicalVolume &aVolume) const +{ + G4bool isIn(true); + if (!(aVolume == fWorldVolume)) { + isIn = fWorldVolume.GetLogicalVolume()->IsAncestor(&aVolume); + } + return isIn; +} + + +G4bool G4WeightWindowStore::IsKnown(const G4GeometryCell &gCell) const +{ + G4bool inWorldKnown(IsInWorld(gCell.GetPhysicalVolume())); + + if ( inWorldKnown ) { + SetInternalIterator(gCell); + inWorldKnown = (fCurrentIterator!=fCellToUpEnBoundLoWePairsMap.end()); + } + return inWorldKnown; +} + + +const G4VPhysicalVolume &G4WeightWindowStore::GetWorldVolume() const +{ + return fWorldVolume; +} + + +void G4WeightWindowStore:: +AddLowerWeights(const G4GeometryCell & gCell, + const std::vector &lowerWeights) +{ + if (fGeneralUpperEnergyBounds.empty()) { + Error("AddLowerWeights: no general upper energy limits set"); + } + if (IsKnown(gCell)) { + Error("AddLowerWeights: the cell is already in the store"); + } + if (lowerWeights.size() != fGeneralUpperEnergyBounds.size()) { + Error("missmatch between number of lower weights and energy bounds"); + } + G4UpperEnergyToLowerWeightMap m; + G4int i = 0; + for (std::set >::iterator it = + fGeneralUpperEnergyBounds.begin(); + it != fGeneralUpperEnergyBounds.end(); + it++) { + m[*it] = lowerWeights[i]; + i++; + } + fCellToUpEnBoundLoWePairsMap[gCell] = m; +} + + +void G4WeightWindowStore:: +AddUpperEboundLowerWeightPairs(const G4GeometryCell &gCell, + const G4UpperEnergyToLowerWeightMap& enWeMap) +{ + if (IsKnown(gCell)) { + Error("AddUpperEboundLowerWeightPairs: the cell is already in the store"); + } + if (IsKnown(gCell)) { + Error("AddUpperEboundLowerWeightPairs: the cell is already in the store"); + } + fCellToUpEnBoundLoWePairsMap[gCell] = enWeMap; + +} + + +void G4WeightWindowStore:: +SetGeneralUpperEnergyBounds(const std::set > &enBounds) +{ + if (!fGeneralUpperEnergyBounds.empty()) { + Error("SetGeneralUpperEnergyBounds: energy bounds already set"); + } + fGeneralUpperEnergyBounds = enBounds; +} + + +void G4WeightWindowStore::Error(const G4String &m) const +{ + G4cerr << "ERROR - G4WeightWindowStore: " << m << G4endl; + G4Exception("G4WeightWindowStore::Error()", + "FatalException", FatalException, m); +} diff --git a/source/geometry/divisions/GNUmakefile b/source/geometry/divisions/GNUmakefile new file mode 100644 index 0000000000..3b7abdc278 --- /dev/null +++ b/source/geometry/divisions/GNUmakefile @@ -0,0 +1,25 @@ +# $Id: GNUmakefile,v 1.3 2003/11/19 11:51:44 gcosmo Exp $ +# ---------------------------------------------------------------------- +# GNUmakefile for geometry/divisions library. Gabriele Cosmo, 16/06/03. +# ---------------------------------------------------------------------- + +name := G4geomdivision + +ifndef G4INSTALL + G4INSTALL = ../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += \ + -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/geometry/solids/CSG/include \ + -I$(G4BASE)/geometry/solids/specific/include \ + -I$(G4BASE)/geometry/management/include + +ifdef G4DIVDEBUG + CPPFLAGS += -DG4DIVDEBUG +endif + +include $(G4INSTALL)/config/common.gmk diff --git a/source/geometry/divisions/History b/source/geometry/divisions/History new file mode 100644 index 0000000000..4ab369f88b --- /dev/null +++ b/source/geometry/divisions/History @@ -0,0 +1,61 @@ +$Id: History,v 1.10 2003/11/19 18:02:10 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 19th, 2003 G.Cosmo (geomdiv-V05-02-07) +- Moved verbose output between G4DIVDEBUG compilation flag. +- Added testing framework for divisions to be used also as base for user's example. +- General cleanup. + +Nov 18th, 2003 P.Arce (geomdiv-V05-02-06) +- Added divisions in X and Y for G4Para. +- Added divisions in Z for G4Polycone and G4Polyhedra. +- Fixed handling of offsets and added more checks. + +Nov 4th, 2003 G.Cosmo (geomdiv-V05-02-05) +- Fixes in the logic of resetting parameters in ComputeDimension() for + polycones and polyhedra. Requires tag "geom-specific-V05-02-05". +- Implementation NOT yet complete for division in Z for polycones and + for division in Phi and Z for polyhedra. + +Oct 31st, 2003 P.Arce (geomdiv-V05-02-04) +- First implementation for G4Polyhedra. + +Oct 31st, 2003 G.Cosmo (geomdiv-V05-02-03a) +- Fixed compilation errors on Windows. + +Oct 24th, 2003 G.Cosmo (geomdiv-V05-02-03) +- Completed implementation for Para, Trd. (by P.Arce) +- Corrections for cons and tubs. +- First trial implementation for polyhedra. +- Migrated calls to G4Exception to new scheme. +- Added G4Orb to dummy parameterisations. + +Sep 30th, 2003 G.Cosmo (geomdiv-V05-02-02) +- Removed concrete implementation of Setup() method, according to + changes made to base class G4VPhysicalVolume. +- Updated GNUmakefile for unit tests, according to new structure + introduced in "geometry-V05-02-00". + +Jul 4th, 2003 G.Cosmo (geomdiv-V05-02-01) +- Removed useless test header... + +Jun 16th, 2003 G.Cosmo (geomdiv-V05-02-00) +- Code cleanup and restructured. +- Created. + Original implementation by P.Arce Dubois (University of Cantabria, CMS). diff --git a/source/geometry/divisions/include/G4PVDivision.hh b/source/geometry/divisions/include/G4PVDivision.hh new file mode 100644 index 0000000000..d1d8e013ff --- /dev/null +++ b/source/geometry/divisions/include/G4PVDivision.hh @@ -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: G4PVDivision.hh,v 1.7 2003/11/19 11:51:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4PVDivision +// +// Class description: +// +// Represents many touchable detector elements differing only in their +// positioning. The elements' positions are calculated by means of a simple +// linear formula. +// +// G4PVDivision(const G4String& pName, +// G4LogicalVolume* pLogical, +// G4LogicalVolume* pMother, +// const EAxis pAxis, +// const G4int nReplicas, +// const G4double width, +// const G4double offset=0) +// +// Division may occur along: +// +// o Cartesian axes (kXAxis,kYAxis,kZAxis) +// +// The divisions, of specified width have coordinates of +// form (-width*(nReplicas-1)*0.5+n*width,0,0) where n=0.. nReplicas-1 +// for the case of kXAxis, and are unrotated. +// +// o Radial axis (cylindrical polar) (kRho) +// +// The divisions are cons/tubs sections, centred on the origin +// and are unrotated. +// They have radii of width*n+offset to width*(n+1)+offset +// where n=0..nReplicas-1 +// +// o Phi axis (cylindrical polar) (kPhi) +// The divisions are `phi sections' or wedges, and of cons/tubs form +// They have phi of offset+n*width to offset+(n+1)*width where +// n=0..nReplicas-1 + +// History: +// 09.05.01 - P.Arce Initial version +// ******************************************************************** + +#ifndef G4PVDIVISION_HH +#define G4PVDIVISION_HH + +#include "geomdefs.hh" +#include "G4VPhysicalVolume.hh" +#include "G4VDivisionParameterisation.hh" + +class G4LogicalVolume; +class G4VSolid; + +class G4PVDivision : public G4VPhysicalVolume +{ + public: // with description + + G4PVDivision(const G4String& pName, + G4LogicalVolume* pLogical, + G4LogicalVolume* pMother, + const EAxis pAxis, + const G4int nReplicas, + const G4double width, + const G4double offset ); + // Constructor with number of divisions and width + + G4PVDivision(const G4String& pName, + G4LogicalVolume* pLogical, + G4LogicalVolume* pMotherLogical, + const EAxis pAxis, + const G4int nReplicas, + const G4double offset ); + // Constructor with number of divisions + + G4PVDivision(const G4String& pName, + G4LogicalVolume* pLogical, + G4LogicalVolume* pMotherLogical, + const EAxis pAxis, + const G4double width, + const G4double offset ); + // Constructor with width + + public: // without description + + G4PVDivision(const G4String& pName, + G4LogicalVolume* pLogical, + G4VPhysicalVolume* pMother, + const EAxis pAxis, + const G4int nReplicas, + const G4double width, + const G4double offset); + // Constructor in mother physical volume + + public: // with description + + virtual ~G4PVDivision(); + + virtual G4bool IsMany() const; + virtual G4int GetCopyNo() const; + virtual void SetCopyNo(G4int CopyNo); + virtual G4bool IsReplicated() const; + virtual G4VPVParameterisation* GetParameterisation() const; + virtual void GetReplicationData( EAxis& axis, + G4int& nReplicas, + G4double& width, + G4double& offset, + G4bool& consuming ) const; + G4bool IsParameterised() const; + + private: + + void CheckAndSetParameters( const EAxis pAxis, + const G4int nDivs, + const G4double width, + const G4double offset, + DivisionType divType, + const G4LogicalVolume* pMotherLogical ); + + G4PVDivision(const G4PVDivision&); + const G4PVDivision& operator=(const G4PVDivision&); + + void SetParameterisation( G4LogicalVolume* motherLogical, + const EAxis pAxis, + const G4int nReplicas, + const G4double width, + const G4double offset, + DivisionType divType ); + void ErrorInAxis( EAxis axis, G4VSolid* solid ); + + protected: + + EAxis faxis; + G4int fnReplicas; + G4double fwidth,foffset; + G4int fcopyNo; + G4VDivisionParameterisation *fparam; +}; + +#endif diff --git a/source/geometry/divisions/include/G4ParameterisationBox.hh b/source/geometry/divisions/include/G4ParameterisationBox.hh new file mode 100644 index 0000000000..b00cc5d623 --- /dev/null +++ b/source/geometry/divisions/include/G4ParameterisationBox.hh @@ -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. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationBox.hh,v 1.3 2003/11/19 11:51:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// classes G4ParameterisationBoxX, +// G4ParameterisationBoxY, +// G4ParameterisationBoxZ +// +// Class description: +// +// These classes represent the parameterised positioning equivalent to +// dividing a G4Box along one of each axis X, Y, Z. + +// History: +// 09.05.01 - P.Arce Initial version +// ******************************************************************** + +#ifndef G4ParameterisationBox_H +#define G4ParameterisationBox_H 1 + +#include "G4VDivisionParameterisation.hh" + +class G4VSolid; +class G4VPhysicalVolume; +class HepTransform3D; + +// Dummy declarations to get rid of warnings ... +class G4Cons; +class G4Trd; +class G4Sphere; +class G4Orb; +class G4Torus; +class G4Para; +class G4Hype; +class G4Tubs; +class G4Polycone; +class G4Polyhedra; + +class G4ParameterisationBoxX : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationBoxX( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* msolid, DivisionType divType ); + + virtual ~G4ParameterisationBoxX(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions(G4Box& box, const G4int copyNo, + const G4VPhysicalVolume* physVol) const; + + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trd&,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 (G4Trap&,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 {} +}; + +class G4ParameterisationBoxY : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationBoxY( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* msolid, DivisionType divType ); + virtual ~G4ParameterisationBoxY(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + + void ComputeDimensions(G4Box& box, const G4int copyNo, + const G4VPhysicalVolume* physVol) const; + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trd&,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 (G4Trap&,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 {} +}; + +class G4ParameterisationBoxZ : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationBoxZ( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* msolid, DivisionType divType ); + virtual ~G4ParameterisationBoxZ(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions(G4Box& box, const G4int copyNo, + const G4VPhysicalVolume* physVol) const; + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trd&,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 (G4Trap&,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 {} +}; + +#endif diff --git a/source/geometry/divisions/include/G4ParameterisationCons.hh b/source/geometry/divisions/include/G4ParameterisationCons.hh new file mode 100644 index 0000000000..97990b3adb --- /dev/null +++ b/source/geometry/divisions/include/G4ParameterisationCons.hh @@ -0,0 +1,187 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationCons.hh,v 1.4 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// classes G4ParameterisationConsRho, +// G4ParameterisationConsPhi, +// G4ParameterisationConsZ +// +// Class description: +// +// These classes represent the parameterised positioning equivalent to +// dividing a G4Cons along one of each axis Rho, Phi, Z. + +// History: +// 09.05.01 - P.Arce Initial version +// ******************************************************************** + +#ifndef G4ParameterisationCons_H +#define G4ParameterisationCons_H 1 + +#include "G4VDivisionParameterisation.hh" + +class G4VSolid; +class G4VPhysicalVolume; + +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Box; +class G4Sphere; +class G4Orb; +class G4Torus; +class G4Para; +class G4Hype; +class G4Tubs; +class G4Polycone; +class G4Polyhedra; + +class G4ParameterisationConsRho : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationConsRho( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationConsRho(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Cons& tubs, 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 (G4Box&,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 {} +}; + +class G4ParameterisationConsPhi : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationConsPhi( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationConsPhi(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Cons& tubs, 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 (G4Box&,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 {} +}; + +class G4ParameterisationConsZ : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationConsZ( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationConsZ(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Cons& tubs, 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 (G4Box&,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 {} +}; + +#endif diff --git a/source/geometry/divisions/include/G4ParameterisationPara.hh b/source/geometry/divisions/include/G4ParameterisationPara.hh new file mode 100644 index 0000000000..7390b3dc4a --- /dev/null +++ b/source/geometry/divisions/include/G4ParameterisationPara.hh @@ -0,0 +1,191 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationPara.hh,v 1.5 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// classes G4ParameterisationParaX, +// G4ParameterisationParaY, +// G4ParameterisationParaZ +// +// Class description: +// +// These classes represent the parameterised positioning equivalent to +// dividing a G4Para along one of each axis X, Y, Z. + +// History: +// 09.05.01 - P.Arce First version +// ******************************************************************** + +#ifndef G4ParameterisationPara_H +#define G4ParameterisationPara_H 1 + +#include "G4VDivisionParameterisation.hh" + +class G4VSolid; +class G4VPhysicalVolume; +// Dummy declarations to get rid of warnings ... +class G4Cons; +class G4Cons; +class G4Sphere; +class G4Orb; +class G4Torus; +class G4Trd; +class G4Hype; +class G4Tubs; +class G4Polycone; +class G4Polyhedra; + + +class G4ParameterisationParaX : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationParaX( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* msolid, DivisionType divType ); + virtual ~G4ParameterisationParaX(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions(G4Para& para, const G4int copyNo, + const G4VPhysicalVolume* pv) const; + + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Box&,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 (G4Trd&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trap&,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 {} +}; + + +class G4ParameterisationParaY : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationParaY( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* msolid, DivisionType divType ); + virtual ~G4ParameterisationParaY(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions(G4Para& para, const G4int copyNo, + const G4VPhysicalVolume* pv) const; + + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Box&,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 (G4Trd&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trap&,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 {} +}; + + +class G4ParameterisationParaZ : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationParaZ( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* msolid, DivisionType divType ); + virtual ~G4ParameterisationParaZ(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions(G4Para& para, const G4int copyNo, + const G4VPhysicalVolume* pv) const; + + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Box&,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 (G4Trd&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Trap&,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 {} +}; + +#endif diff --git a/source/geometry/divisions/include/G4ParameterisationPolycone.hh b/source/geometry/divisions/include/G4ParameterisationPolycone.hh new file mode 100644 index 0000000000..50423d5b3e --- /dev/null +++ b/source/geometry/divisions/include/G4ParameterisationPolycone.hh @@ -0,0 +1,204 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationPolycone.hh,v 1.5 2003/11/18 12:15:30 arce Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// classes G4ParameterisationPolyconeRho, +// G4ParameterisationPolyconePhi, +// G4ParameterisationPolyconeZ +// +// Class description: +// +// These classes represent the parameterised positioning equivalent to +// dividing a G4Polycone along one of each axis Rho, Phi, Z. + +// History: +// 09.05.01 - P.Arce First version +//--------------------------------------------------------------------- +#ifndef G4ParameterisationPolycone_H +#define G4ParameterisationPolycone_H 1 + +#include "G4VDivisionParameterisation.hh" +#include "G4Polycone.hh" + +class G4VPhysicalVolume; + +// 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 G4Polyhedra; + +//--------------------------------------------------------------------- +// Class G4ParameterisationPolyconeRho +//--------------------------------------------------------------------- + +class G4ParameterisationPolyconeRho : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationPolyconeRho( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, + DivisionType divType ); + virtual ~G4ParameterisationPolyconeRho(); + + virtual void CheckParametersValidity(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Polycone& pcone, 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 (G4Box&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Orb&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int, + const G4VPhysicalVolume*) const {} +}; + +//--------------------------------------------------------------------- +// Class G4ParameterisationPolyconePhi +//--------------------------------------------------------------------- + +class G4ParameterisationPolyconePhi : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationPolyconePhi( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, + DivisionType divType ); + virtual ~G4ParameterisationPolyconePhi(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Polycone& pcone, 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 (G4Box&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Orb&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int, + const G4VPhysicalVolume*) const {} +}; + +//--------------------------------------------------------------------- +// Class G4ParameterisationPolyconeZ +//--------------------------------------------------------------------- + +class G4ParameterisationPolyconeZ : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationPolyconeZ( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, + DivisionType divType ); + virtual ~G4ParameterisationPolyconeZ(); + + virtual void CheckParametersValidity(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Polycone& pcone, 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 (G4Box&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Orb&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Sphere&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int, + const G4VPhysicalVolume*) const {} +}; + +#endif diff --git a/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh b/source/geometry/divisions/include/G4ParameterisationPolyhedra.hh new file mode 100644 index 0000000000..00f105fe63 --- /dev/null +++ b/source/geometry/divisions/include/G4ParameterisationPolyhedra.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: G4ParameterisationPolyhedra.hh,v 1.6 2003/11/18 12:15:30 arce Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// classes G4ParameterisationPolyhedraRho, +// G4ParameterisationPolyhedraPhi, +// G4ParameterisationPolyhedraZ +// +// Class description: +// +// These classes represent the parameterised positioning equivalent to +// dividing a G4Polyhedra along one of each axis Rho, Phi, Z. + +// History: +// 09.05.01 - P.Arce First version +//--------------------------------------------------------------------- +#ifndef G4ParameterisationPolyhedra_H +#define G4ParameterisationPolyhedra_H 1 + +#include "G4VDivisionParameterisation.hh" +#include "G4Polyhedra.hh" + +class G4VPhysicalVolume; + +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Sphere; +class G4Orb; +class G4Torus; +class G4Para; +class G4Hype; +class G4Tubs; +class G4Polycone; + +//--------------------------------------------------------------------- +// Class G4ParameterisationPolyhedraRho +//--------------------------------------------------------------------- + +class G4ParameterisationPolyhedraRho : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationPolyhedraRho( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, + DivisionType divType ); + virtual ~G4ParameterisationPolyhedraRho(); + + virtual void CheckParametersValidity(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Polyhedra& phedra, 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 (G4Box&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int, + const G4VPhysicalVolume*) const {} +}; + +//--------------------------------------------------------------------- +// Class G4ParameterisationPolyhedraPhi +//--------------------------------------------------------------------- + +class G4ParameterisationPolyhedraPhi : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationPolyhedraPhi( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, + DivisionType divType ); + virtual ~G4ParameterisationPolyhedraPhi(); + + virtual void CheckParametersValidity(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Polyhedra& phedra, 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 (G4Box&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int, + const G4VPhysicalVolume*) const {} +}; + +//--------------------------------------------------------------------- +// Class G4ParameterisationPolyhedraZ +//--------------------------------------------------------------------- + +class G4ParameterisationPolyhedraZ : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationPolyhedraZ( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, + DivisionType divType ); + virtual ~G4ParameterisationPolyhedraZ(); + + virtual void CheckParametersValidity(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume* physVol ) const; + void ComputeDimensions( G4Polyhedra& phedra, 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 (G4Box&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int, + const G4VPhysicalVolume*) const {} +}; + +#endif diff --git a/source/geometry/divisions/include/G4ParameterisationTrd.hh b/source/geometry/divisions/include/G4ParameterisationTrd.hh new file mode 100644 index 0000000000..1f4da1f00c --- /dev/null +++ b/source/geometry/divisions/include/G4ParameterisationTrd.hh @@ -0,0 +1,194 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationTrd.hh,v 1.5 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// classes G4ParameterisationTrdX +// G4ParameterisationTrdY +// G4ParameterisationTrdZ +// +// Class description: +// +// This class represents the parameterised positioning equivalent to +// dividing a trapezoid along one of each axis X, Y, Z. + +// History: +// 09.05.01 P.Arce First version +// ******************************************************************** + +#ifndef G4ParameterisationTrd_H +#define G4ParameterisationTrd_H 1 + +#include "G4VDivisionParameterisation.hh" +#include "G4VSolid.hh" + +class G4VPhysicalVolume; + +// Dummy declarations to get rid of warnings ... +class G4Cons; +class G4Box; +class G4Sphere; +class G4Orb; +class G4Torus; +class G4Para; +class G4Hype; +class G4Tubs; +class G4Polycone; +class G4Polyhedra; + +class G4ParameterisationTrdX : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationTrdX( EAxis axis, G4int nCopies, + G4double width, G4double offset, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationTrdX(); + + virtual void CheckParametersValidity(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume* physVol) const; + + void ComputeDimensions(G4Trd& trd, const G4int copyNo, + const G4VPhysicalVolume* pv) const; + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Box&,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 (G4Trap&,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 {} +}; + + +class G4ParameterisationTrdY : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationTrdY( EAxis axis, G4int nCopies, + G4double width, G4double offset, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationTrdY(); + + virtual void CheckParametersValidity(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume *physVol) const; + + void ComputeDimensions(G4Trd& trd, const G4int copyNo, + const G4VPhysicalVolume* pv) const; + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Box&,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 (G4Trap&,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 {} +}; + + +class G4ParameterisationTrdZ : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationTrdZ( EAxis axis, G4int nCopies, + G4double width, G4double offset, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationTrdZ(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume* physVol) const; + void ComputeDimensions(G4Trd& trd, const G4int copyNo, + const G4VPhysicalVolume* pv) const; + + private: // Dummy declarations to get rid of warnings ... + + void ComputeDimensions (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Box&,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 (G4Trap&,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 {} +}; + +#endif diff --git a/source/geometry/divisions/include/G4ParameterisationTubs.hh b/source/geometry/divisions/include/G4ParameterisationTubs.hh new file mode 100644 index 0000000000..7232772f89 --- /dev/null +++ b/source/geometry/divisions/include/G4ParameterisationTubs.hh @@ -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: G4ParameterisationTubs.hh,v 1.4 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// classes G4ParameterisationTubsRho +// G4ParameterisationTubsPhi +// G4ParameterisationTubsZ +// +// Class description: +// +// This class represents the parameterised positioning equivalent to +// dividing a G4Tubs along one of each axis Rho, Phi, Z. + +// History: +// 09.05.01 P.Arce First version +// ******************************************************************** + +#ifndef G4ParameterisationTubsRho_H +#define G4ParameterisationTubsRho_H 1 + +#include "G4VDivisionParameterisation.hh" + +class G4VPhysicalVolume; + +// Dummy declarations to get rid of warnings ... +class G4Trd; +class G4Trap; +class G4Cons; +class G4Sphere; +class G4Orb; +class G4Torus; +class G4Para; +class G4Hype; +class G4Polycone; +class G4Polyhedra; + + +class G4ParameterisationTubsRho : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationTubsRho( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationTubsRho(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume* physVol) const; + void ComputeDimensions(G4Tubs& tubs, 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 (G4Box&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int, + const G4VPhysicalVolume*) const {} +}; + + +class G4ParameterisationTubsPhi : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationTubsPhi( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationTubsPhi(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume* physVol) const; + void ComputeDimensions(G4Tubs& tubs, 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 (G4Box&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int, + const G4VPhysicalVolume*) const {} +}; + + +class G4ParameterisationTubsZ : public G4VDivisionParameterisation +{ + public: // with description + + G4ParameterisationTubsZ( EAxis axis, G4int nCopies, + G4double offset, G4double step, + G4VSolid* motherSolid, DivisionType divType ); + virtual ~G4ParameterisationTubsZ(); + + virtual G4double GetMaxParameter() const; + + virtual void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume* physVol) const; + void ComputeDimensions(G4Tubs& tubs, 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 (G4Box&,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 (G4Cons&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polycone&,const G4int, + const G4VPhysicalVolume*) const {} + void ComputeDimensions (G4Polyhedra&,const G4int, + const G4VPhysicalVolume*) const {} +}; + +#endif diff --git a/source/geometry/divisions/include/G4VDivisionParameterisation.hh b/source/geometry/divisions/include/G4VDivisionParameterisation.hh new file mode 100644 index 0000000000..4afa2de768 --- /dev/null +++ b/source/geometry/divisions/include/G4VDivisionParameterisation.hh @@ -0,0 +1,104 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4VDivisionParameterisation.hh,v 1.6 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4VDivisionParameterisation +// +// Class description: +// +// ...... +// +// Member data: +// + +// History: +// 09.05.01 - P.Arce Initial version +//--------------------------------------------------------------------- +#ifndef G4VDivisionParameterisation_H +#define G4VDivisionParameterisation_H 1 + +#include "G4Types.hh" +#include "geomdefs.hh" +#include "G4VPVParameterisation.hh" + +enum DivisionType { DivNDIVandWIDTH, DivNDIV, DivWIDTH }; + +class G4VPhysicalVolume; +class HepTransform3D; +class G4VSolid; + +class G4VDivisionParameterisation : public G4VPVParameterisation +{ + public: // with description + + G4VDivisionParameterisation( EAxis axis, G4int nDiv, G4double width, + G4double offset, DivisionType divType, + G4VSolid* motherSolid = 0); + virtual ~G4VDivisionParameterisation(); + + virtual void ComputeTransformation(const G4int copyNo, + G4VPhysicalVolume *physVol) const = 0; + + inline const G4String& GetType() const; + inline EAxis GetAxis() const; + inline G4int GetNoDiv() const; + inline G4double GetWidth() const; + inline G4double GetOffset() const; + inline G4VSolid* GetMotherSolid() const; + inline void SetType(const G4String& type); + inline G4int VolumeFirstCopyNo() const; + + protected: // with description + + void ChangeRotMatrix( G4VPhysicalVolume* physVol, + G4double rotZ = 0. ) const; + + G4int CalculateNDiv( G4double motherDim, G4double width, + G4double offset ) const; + G4double CalculateWidth( G4double motherDim, G4int nDiv, + G4double offset ) const; + + virtual void CheckParametersValidity(); + void CheckOffset( G4double maxPar ); + void CheckNDivAndWidth( G4double maxPar ); + virtual G4double GetMaxParameter() const = 0; + + protected: + + G4String ftype; + EAxis faxis; + G4int fnDiv; + G4double fwidth; + G4double foffset; + DivisionType fDivisionType; + G4VSolid* fmotherSolid; + + static G4int verbose; + G4int theVoluFirstCopyNo; +}; + +#include "G4VDivisionParameterisation.icc" + +#endif diff --git a/source/geometry/solids/STEPinterface/src/G4Axis2Placement2dCreator.cc b/source/geometry/divisions/include/G4VDivisionParameterisation.icc similarity index 60% rename from source/geometry/solids/STEPinterface/src/G4Axis2Placement2dCreator.cc rename to source/geometry/divisions/include/G4VDivisionParameterisation.icc index 9c950415cf..c00beb7274 100644 --- a/source/geometry/solids/STEPinterface/src/G4Axis2Placement2dCreator.cc +++ b/source/geometry/divisions/include/G4VDivisionParameterisation.icc @@ -21,40 +21,58 @@ // ******************************************************************** // // -// $Id: G4Axis2Placement2dCreator.cc,v 1.5 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VDivisionParameterisation.icc,v 1.2 2003/11/18 12:15:30 arce Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// ---------------------------------------------------------------------- -// Class G4Axis2Placement2dCreator +// class G4VDivisionParameterisation Inline Implementation file // -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- +// 26.05.03 - G.Cosmo: Created +// ******************************************************************** -#include "G4Axis2Placement2dCreator.hh" -#include "G4GeometryTable.hh" - -G4Axis2Placement2dCreator G4Axis2Placement2dCreator::csc; - -G4Axis2Placement2dCreator::G4Axis2Placement2dCreator() +inline +const G4String& G4VDivisionParameterisation::GetType() const { - G4GeometryTable::RegisterObject(this); + return ftype; } -G4Axis2Placement2dCreator::~G4Axis2Placement2dCreator() {} - -G4Axis2Placement2dCreator G4Axis2Placement2dCreator::GetInstance() +inline +EAxis G4VDivisionParameterisation::GetAxis() const { - return csc; + return faxis; } -void G4Axis2Placement2dCreator::CreateG4Geometry(STEPentity&) +inline +G4int G4VDivisionParameterisation::GetNoDiv() const { + return fnDiv; } -void G4Axis2Placement2dCreator::CreateSTEPGeometry(void*) +inline +G4double G4VDivisionParameterisation::GetWidth() const { + return fwidth; +} + +inline +G4double G4VDivisionParameterisation::GetOffset() const +{ + return foffset; +} + +inline +G4VSolid* G4VDivisionParameterisation::GetMotherSolid() const +{ + return fmotherSolid; +} + +inline +void G4VDivisionParameterisation::SetType( const G4String& type ) +{ + ftype = type; +} + +inline +G4int G4VDivisionParameterisation::VolumeFirstCopyNo() const +{ + return theVoluFirstCopyNo; } diff --git a/source/geometry/divisions/src/G4PVDivision.cc b/source/geometry/divisions/src/G4PVDivision.cc new file mode 100644 index 0000000000..f10a816939 --- /dev/null +++ b/source/geometry/divisions/src/G4PVDivision.cc @@ -0,0 +1,452 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4PVDivision.cc,v 1.10 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4PVDivision Implementation file +// +// 26.05.03 - P.Arce Initial version +// ******************************************************************** + +#include "G4PVDivision.hh" +#include "G4LogicalVolume.hh" +#include "G4VSolid.hh" +#include "G4ParameterisationBox.hh" +#include "G4ParameterisationTubs.hh" +#include "G4ParameterisationCons.hh" +#include "G4ParameterisationTrd.hh" +#include "G4ParameterisationPara.hh" +#include "G4ParameterisationPolycone.hh" +#include "G4ParameterisationPolyhedra.hh" + +//-------------------------------------------------------------------------- +G4PVDivision::G4PVDivision(const G4String& pName, + G4LogicalVolume* pLogical, + G4LogicalVolume* pMotherLogical, + const EAxis pAxis, + const G4int nDivs, + const G4double width, + const G4double offset ) + : G4VPhysicalVolume(0,G4ThreeVector(),pName,pLogical,0), + fcopyNo(-1) +{ + if (pMotherLogical) pMotherLogical->AddDaughter(this); + SetParameterisation( pMotherLogical, pAxis, nDivs, + width, offset, DivNDIVandWIDTH ); + CheckAndSetParameters (pAxis, nDivs, width, offset, + DivNDIVandWIDTH, pMotherLogical ); +} + +//-------------------------------------------------------------------------- +G4PVDivision::G4PVDivision(const G4String& pName, + G4LogicalVolume* pLogical, + G4LogicalVolume* pMotherLogical, + const EAxis pAxis, + const G4int nDivs, + const G4double offset ) + : G4VPhysicalVolume(0,G4ThreeVector(),pName,pLogical,0), + fcopyNo(-1) +{ + if (pMotherLogical) pMotherLogical->AddDaughter(this); + SetParameterisation( pMotherLogical, pAxis, nDivs, 0., offset, DivNDIV ); + CheckAndSetParameters (pAxis, nDivs, 0., offset, DivNDIV, pMotherLogical ); +} + +//-------------------------------------------------------------------------- +G4PVDivision::G4PVDivision(const G4String& pName, + G4LogicalVolume* pLogical, + G4LogicalVolume* pMotherLogical, + const EAxis pAxis, + const G4double width, + const G4double offset ) + : G4VPhysicalVolume(0,G4ThreeVector(),pName,pLogical,0), + fcopyNo(-1) +{ + if (pMotherLogical) pMotherLogical->AddDaughter(this); + SetParameterisation( pMotherLogical, pAxis, 0, width, offset, DivWIDTH ); + CheckAndSetParameters (pAxis, 0, width, offset, DivWIDTH, pMotherLogical ); +} + +//-------------------------------------------------------------------------- +void +G4PVDivision::CheckAndSetParameters( const EAxis pAxis, + const G4int nDivs, + const G4double width, + const G4double offset, + DivisionType divType, + const G4LogicalVolume* pMotherLogical ) +{ + if( divType == DivWIDTH ) + { + fnReplicas = fparam->GetNoDiv(); + } + else + { + fnReplicas = nDivs; + } + if (fnReplicas < 1 ) + { + G4Exception("G4PVDivision::G4PVDivision()", "IllegalConstruct", + FatalException, "Illegal number of replicas!"); + } + + if( divType != DivNDIV) + { + fwidth = fparam->GetWidth(); + } + else + { + fwidth = width; + } + if( fwidth < 0 ) + { + G4Exception("G4PVDivision::G4PVDivision()", "IllegalConstruct", + FatalException, "Width must be positive!"); + } + + foffset=offset; + + //!!!!! axis has to be x/y/z in G4VoxelLimits::GetMinExtent + // + if( pAxis == kRho || pAxis == kRadial3D || pAxis == kPhi ) + { + faxis = kZAxis; + } + else + { + faxis = pAxis; + } + + // Create rotation matrix: for phi axis it will be changed + // in G4VPVParameterisation::ComputeTransformation, for others + // it will stay the unity + // + G4RotationMatrix *pRMat = new G4RotationMatrix(); + SetRotation(pRMat); + + switch (faxis) + { + case kPhi: + break; + case kRho: + case kXAxis: + case kYAxis: + case kZAxis: + break; + default: + G4Exception("G4PVDivision::G4PVDivision()", "IllegalConstruct", + FatalException, "Unknown axis of replication."); + break; + } + + + //----- Check that mother solid is of the same type than + // daughter solid (otherwise, the corresponding + // Parameterisation::ComputeDimension() will not be called) + // + G4cout << " GetMotherLogical " << GetMotherLogical() << G4endl; + G4cout << " GetLogicalVolume " << GetLogicalVolume() << G4endl; + G4String msolType = pMotherLogical->GetSolid()->GetEntityType(); + G4String dsolType = GetLogicalVolume()->GetSolid()->GetEntityType(); + if( msolType != dsolType ) + { + G4cerr << "ERROR - G4PVDivision::CheckAndSetParameters()" + << G4endl + << " Incorrect solid type in call to G4PVDivision of volume " + << GetName() << G4endl + << " It is: " << msolType + << ", while it should be: " << dsolType << "." << G4endl; + G4Exception("G4VDivisionParameterisation::CheckAndSetParameters()", + "IllegalConstruct", FatalException, + "Incorrect solid type for division !"); + } +} + +//-------------------------------------------------------------------------- +G4PVDivision::~G4PVDivision() +{ + delete GetRotation(); +} + +//-------------------------------------------------------------------------- +G4bool G4PVDivision::IsParameterised() const +{ + return true; +} + +//-------------------------------------------------------------------------- +G4bool G4PVDivision::IsMany() const +{ + return false; +} + +//-------------------------------------------------------------------------- +G4int G4PVDivision::GetCopyNo() const +{ + return fcopyNo; +} + +//-------------------------------------------------------------------------- +void G4PVDivision::SetCopyNo(G4int newCopyNo) +{ + fcopyNo= newCopyNo; +} + +//-------------------------------------------------------------------------- +G4bool G4PVDivision::IsReplicated() const +{ + return true; +} + +//-------------------------------------------------------------------------- +G4VPVParameterisation* G4PVDivision::GetParameterisation() const +{ + return fparam; +} + +//-------------------------------------------------------------------------- +void G4PVDivision::GetReplicationData(EAxis& axis, + G4int& nDivs, + G4double& width, + G4double& offset, + G4bool& consuming ) const +{ + axis=faxis; + nDivs=fnReplicas; + width=fwidth; + offset=foffset; + consuming=false; +} + + +//-------------------------------------------------------------------------- +//TODO: this method should check that the child lv is of the correct type, +// else the ComputeDimensions will never be called +void G4PVDivision::SetParameterisation( G4LogicalVolume* motherLogical, + const EAxis axis, + const G4int nDivs, + const G4double width, + const G4double offset, + DivisionType divType ) +{ + // Check that solid is compatible with mother solid and axis of division + // CheckSolid( solid, motherSolid ); + // G4cout << " Axis " << axis << G4endl; + + G4VSolid* mSolid = motherLogical->GetSolid(); + G4String mSolidType = mSolid->GetEntityType(); + + // Parameterisation type depend of mother solid type and axis of division + // + if( mSolidType == "G4Box" ) + { + switch( axis ) + { + case kXAxis: + fparam = new G4ParameterisationBoxX( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kYAxis: + fparam = new G4ParameterisationBoxY( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kZAxis: + fparam = new G4ParameterisationBoxZ( axis, nDivs, width, + offset, mSolid, divType ); + break; + default: + ErrorInAxis( axis, mSolid ); + break; + } + } + else if( mSolidType == "G4Tubs" ) + { + switch( axis ) + { + case kRho: + fparam = new G4ParameterisationTubsRho( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kPhi: + fparam = new G4ParameterisationTubsPhi( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kZAxis: + fparam = new G4ParameterisationTubsZ( axis, nDivs, width, + offset, mSolid, divType ); + break; + default: + ErrorInAxis( axis, mSolid ); + break; + } + } + else if( mSolidType == "G4Cons" ) + { + switch( axis ) + { + case kRho: + fparam = new G4ParameterisationConsRho( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kPhi: + fparam = new G4ParameterisationConsPhi( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kZAxis: + fparam = new G4ParameterisationConsZ( axis, nDivs, width, + offset, mSolid, divType ); + break; + default: + ErrorInAxis( axis, mSolid ); + break; + } + } + else if( mSolidType == "G4Trd" ) + { + switch( axis ) + { + case kXAxis: + fparam = new G4ParameterisationTrdX( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kYAxis: + fparam = new G4ParameterisationTrdY( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kZAxis: + fparam = new G4ParameterisationTrdZ( axis, nDivs, width, + offset, mSolid, divType ); + break; + default: + ErrorInAxis( axis, mSolid ); + break; + } + } + else if( mSolidType == "G4Para" ) + { + switch( axis ) + { + case kXAxis: + fparam = new G4ParameterisationParaX( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kYAxis: + fparam = new G4ParameterisationParaY( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kZAxis: + fparam = new G4ParameterisationParaZ( axis, nDivs, width, + offset, mSolid, divType ); + break; + default: + ErrorInAxis( axis, mSolid ); + break; + } + } +// else if( mSolidType == "G4Trap" ) +// { +// } + else if( mSolidType == "G4Polycone" ) + { + switch( axis ) + { + case kRho: + fparam = new G4ParameterisationPolyconeRho( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kPhi: + fparam = new G4ParameterisationPolyconePhi( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kZAxis: + fparam = new G4ParameterisationPolyconeZ( axis, nDivs, width, + offset, mSolid, divType ); + break; + default: + ErrorInAxis( axis, mSolid ); + break; + } + } + else if( mSolidType == "G4Polyhedra" ) + { + switch( axis ) + { + case kRho: + fparam = new G4ParameterisationPolyhedraRho( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kPhi: + fparam = new G4ParameterisationPolyhedraPhi( axis, nDivs, width, + offset, mSolid, divType ); + break; + case kZAxis: + fparam = new G4ParameterisationPolyhedraZ( axis, nDivs, width, + offset, mSolid, divType ); + break; + default: + ErrorInAxis( axis, mSolid ); + break; + } + } + else + { + G4cerr << "ERROR - G4PVDivision::SetParameterisation()" << G4endl + << " Divisions for " << mSolidType + << " not implemented." << G4endl; + G4Exception("G4PVDivision::SetParameterisation()", "IllegalConstruct", + FatalException, "Solid type not supported."); + } +} + +//-------------------------------------------------------------------------- +void G4PVDivision::ErrorInAxis( EAxis axis, G4VSolid* solid ) +{ + G4String error = "Trying to divide solid " + solid->GetName() + + " of type " + solid->GetEntityType() + " along axis "; + switch( axis ) + { + case kXAxis: + error += "X."; + break; + case kYAxis: + error += "Y."; + break; + case kZAxis: + error += "Z."; + break; + case kRho: + error += "Rho."; + break; + case kRadial3D: + error += "Radial3D."; + break; + case kPhi: + error += "Phi."; + break; + default: + break; + } + G4Exception("G4PVDivision::ErrorInAxis()", "IllegalConstruct", + FatalException, error); +} diff --git a/source/geometry/divisions/src/G4ParameterisationBox.cc b/source/geometry/divisions/src/G4ParameterisationBox.cc new file mode 100644 index 0000000000..633c199106 --- /dev/null +++ b/source/geometry/divisions/src/G4ParameterisationBox.cc @@ -0,0 +1,354 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationBox.cc,v 1.5 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4ParameterisationBox Implementation file +// +// 26.05.03 - P.Arce Initial version +// ******************************************************************** + +#include "G4ParameterisationBox.hh" + +#include +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" +#include "G4VPhysicalVolume.hh" +#include "G4Box.hh" + +//-------------------------------------------------------------------------- +G4ParameterisationBoxX:: +G4ParameterisationBoxX( EAxis axis, G4int nDiv, G4double width, + G4double offset, G4VSolid* msolid, + DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionBoxX" ); + + if( divType == DivWIDTH ) + { + G4Box* mbox = (G4Box*)(msolid); + fnDiv = CalculateNDiv( 2*mbox->GetXHalfLength(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Box* mbox = (G4Box*)(msolid); + fwidth = CalculateWidth( 2*mbox->GetXHalfLength(), nDiv, offset ); + } +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationBoxX - no divisions " + << fnDiv << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationBoxX::~G4ParameterisationBoxX() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationBoxX::GetMaxParameter() const +{ + G4Box* msol = (G4Box*)(fmotherSolid); + return 2*msol->GetXHalfLength(); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationBoxX:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume* physVol ) const +{ + G4Box* msol = (G4Box*)(fmotherSolid ); + G4double mdx = msol->GetXHalfLength( ); + + //----- translation + G4ThreeVector origin(0.,0.,0.); + G4double posi = -mdx + foffset+(copyNo+0.5)*fwidth; + + if( faxis == kXAxis ) + { + origin.setX( posi ); + } + else + { + G4cerr << "ERROR - G4ParameterisationBoxX::ComputeTransformation()" + << G4endl + << " Axis is along " << faxis << " !" << G4endl; + G4Exception("G4ParameterisationBoxX::ComputeTransformation()", + "IllegalConstruct", FatalException, + "Only axes along X are allowed !"); + } +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationBoxX: " + << copyNo << G4endl + << " Position " << origin << " Axis " << faxis << G4endl; + } +#endif + //----- set translation + physVol->SetTranslation( origin ); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationBoxX:: +ComputeDimensions( G4Box& box, const G4int, + const G4VPhysicalVolume* ) const +{ + G4Box* msol = (G4Box*)(fmotherSolid); + + G4double pDx = fwidth/2.; + G4double pDy = msol->GetYHalfLength(); + G4double pDz = msol->GetZHalfLength(); + + box.SetXHalfLength( pDx ); + box.SetYHalfLength( pDy ); + box.SetZHalfLength( pDz ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationBoxX::ComputeDimensions()" << G4endl + << " pDx: " << pDz << G4endl; + box.DumpInfo(); + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationBoxY:: +G4ParameterisationBoxY( EAxis axis, G4int nDiv, G4double width, + G4double offset, G4VSolid* msolid, + DivisionType divType) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionBoxY" ); + + if( divType == DivWIDTH ) + { + G4Box* mbox = (G4Box*)(msolid); + fnDiv = CalculateNDiv( 2*mbox->GetYHalfLength(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Box* mbox = (G4Box*)(msolid); + fwidth = CalculateWidth( 2*mbox->GetYHalfLength(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationBoxY - no divisions " << fnDiv << " = " + << nDiv << ". Offset " << foffset << " = " << offset + << ". Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationBoxY::~G4ParameterisationBoxY() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationBoxY::GetMaxParameter() const +{ + G4Box* msol = (G4Box*)(fmotherSolid); + return 2*msol->GetYHalfLength(); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationBoxY:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume* physVol ) const +{ + G4Box* msol = (G4Box*)(fmotherSolid); + G4double mdy = msol->GetYHalfLength(); + + //----- translation + G4ThreeVector origin(0.,0.,0.); + G4double posi = -mdy + foffset + (copyNo+0.5)*fwidth; + if( faxis == kYAxis ) + { + origin.setY( posi ); + } + else + { + G4cerr << "ERROR - G4ParameterisationBoxY::ComputeTransformation()" + << G4endl + << " Axis is along " << faxis << " !" << G4endl; + G4Exception("G4ParameterisationBoxY::ComputeTransformation()", + "IllegalConstruct", FatalException, + "Only axes along Y are allowed !"); + } +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationBoxY: " + << copyNo << G4endl + << " Position " << origin << " Axis " << faxis << G4endl; + } +#endif + //----- set translation + physVol->SetTranslation( origin ); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationBoxY:: +ComputeDimensions( G4Box& box, const G4int, + const G4VPhysicalVolume* ) const +{ + G4Box* msol = (G4Box*)(fmotherSolid); + + G4double pDx = msol->GetXHalfLength(); + G4double pDy = fwidth/2.; + G4double pDz = msol->GetZHalfLength(); + + box.SetXHalfLength( pDx ); + box.SetYHalfLength( pDy ); + box.SetZHalfLength( pDz ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationBoxY::ComputeDimensions()" << G4endl + << " pDx: " << pDz << G4endl; + box.DumpInfo(); + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationBoxZ:: +G4ParameterisationBoxZ( EAxis axis, G4int nDiv, G4double width, + G4double offset, G4VSolid* msolid, + DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionBoxZ" ); + + if( divType == DivWIDTH ) + { + G4Box* mbox = (G4Box*)(msolid); + fnDiv = CalculateNDiv( 2*mbox->GetZHalfLength(), width, offset ); + } + else if ( divType == DivNDIV ) + { + G4Box* mbox = (G4Box*)(msolid); + fwidth = CalculateWidth( 2*mbox->GetZHalfLength(), nDiv, offset ); + } +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationBoxZ - no divisions " << fnDiv << " = " + << nDiv << ". Offset " << foffset << " = " << offset + << ". Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationBoxZ::~G4ParameterisationBoxZ() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationBoxZ::GetMaxParameter() const +{ + G4Box* msol = (G4Box*)(fmotherSolid); + return 2*msol->GetZHalfLength(); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationBoxZ:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume *physVol ) const +{ + G4Box* msol = (G4Box*)(fmotherSolid ); + G4double mdz = msol->GetZHalfLength(); + + //----- translation + G4ThreeVector origin(0.,0.,0.); + G4double posi = -mdz + foffset + (copyNo+0.5)*fwidth; + if( faxis == kZAxis ) + { + origin.setZ( posi ); + } + else + { + G4cerr << "ERROR - G4ParameterisationBoxZ::ComputeTransformation()" + << G4endl; + G4Exception("G4ParameterisationBoxZ::ComputeTransformation()", + "IllegalConstruct", FatalException, + "Only axes along Z are allowed !"); + } +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationBoxZ: " + << copyNo << G4endl + << " Position " << origin << " Axis " << faxis << G4endl; + } +#endif + //----- set translation + physVol->SetTranslation( origin ); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationBoxZ:: +ComputeDimensions( G4Box& box, const G4int, + const G4VPhysicalVolume* ) const +{ + G4Box* msol = (G4Box*)(fmotherSolid); + + G4double pDx = msol->GetXHalfLength(); + G4double pDy = msol->GetYHalfLength(); + G4double pDz = fwidth/2.; + + box.SetXHalfLength( pDx ); + box.SetYHalfLength( pDy ); + box.SetZHalfLength( pDz ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationBoxZ::ComputeDimensions()" << G4endl + << " pDx: " << pDz << G4endl; + box.DumpInfo(); + } +#endif +} + diff --git a/source/geometry/divisions/src/G4ParameterisationCons.cc b/source/geometry/divisions/src/G4ParameterisationCons.cc new file mode 100644 index 0000000000..c1fccd7941 --- /dev/null +++ b/source/geometry/divisions/src/G4ParameterisationCons.cc @@ -0,0 +1,393 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationCons.cc,v 1.6 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4ParameterisationCons Implementation file +// +// 26.05.03 - P.Arce Initial version +// ******************************************************************** + +#include "G4ParameterisationCons.hh" + +#include +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4Cons.hh" + +//-------------------------------------------------------------------------- +G4ParameterisationConsRho:: +G4ParameterisationConsRho( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionConsRho" ); + + G4Cons* msol = (G4Cons*)(msolid); + if( msol->GetInnerRadiusPlusZ() == 0. ) + { + G4cerr << "WARNING - G4ParameterisationConsRho, OuterRadiusMinusZ = 0. " + << G4endl + << " Width is calculated as that of OuterRadiusMinusZ !" + << G4endl; + } + + if( divType == DivWIDTH ) + { + fnDiv = CalculateNDiv( msol->GetOuterRadiusMinusZ() + - msol->GetInnerRadiusMinusZ(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Cons* msol = (G4Cons*)(msolid); + fwidth = CalculateWidth( msol->GetOuterRadiusMinusZ() + - msol->GetInnerRadiusMinusZ(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationConsRho - no divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset + << " - Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationConsRho::~G4ParameterisationConsRho() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationConsRho::GetMaxParameter() const +{ + G4Cons* msol = (G4Cons*)(fmotherSolid); + return msol->GetOuterRadiusMinusZ() - msol->GetInnerRadiusMinusZ(); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationConsRho:: +ComputeTransformation( const G4int, G4VPhysicalVolume *physVol ) const +{ + //----- translation + G4ThreeVector origin(0.,0.,0.); + //----- set translation + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix: unit + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationConsRho " << G4endl + << " Offset: " << foffset + << " - Width: " << fwidth << G4endl; + } +#endif + + ChangeRotMatrix( physVol ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationConsRho" << G4endl + << " Position: " << origin << " - Width: " << fwidth + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationConsRho:: +ComputeDimensions( G4Cons& cons, const G4int copyNo, + const G4VPhysicalVolume* ) const +{ + G4Cons* msol = (G4Cons*)(fmotherSolid); + + G4double pRMin1 = msol->GetInnerRadiusMinusZ() + foffset + fwidth * copyNo; + G4double pRMax1 = msol->GetInnerRadiusMinusZ() + foffset + fwidth * (copyNo+1); + + //width at Z Plus + //- G4double fwidthPlus = + // fwidth * ( msol->GetOuterRadiusPlusZ()/ msol->GetInnerRadiusPlusZ()) + //- / ( msol->GetOuterRadiusMinusZ() - msol->GetInnerRadiusMinusZ()); + G4double fwidthPlus = CalculateWidth( msol->GetOuterRadiusPlusZ() + - msol->GetInnerRadiusPlusZ(), fnDiv, foffset ); + G4double pRMin2 = msol->GetInnerRadiusPlusZ() + + foffset + fwidthPlus * copyNo; + G4double pRMax2 = msol->GetInnerRadiusPlusZ() + + foffset + fwidthPlus * (copyNo+1); + G4double pDz = msol->GetZHalfLength(); + + //- already rotated double pSR = foffset + copyNo*fwidth; + G4double pSPhi = msol->GetStartPhiAngle(); + G4double pDPhi = msol->GetDeltaPhiAngle();; + + cons.SetInnerRadiusMinusZ( pRMin1 ); + cons.SetOuterRadiusMinusZ( pRMax1 ); + cons.SetInnerRadiusPlusZ( pRMin2 ); + cons.SetOuterRadiusPlusZ( pRMax2 ); + cons.SetZHalfLength( pDz ); + cons.SetStartPhiAngle( pSPhi ); + cons.SetDeltaPhiAngle( pDPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationConsRho::ComputeDimensions()" << G4endl + << " pRMin: " << pRMin1 << " - pRMax: " << pRMax1 << G4endl; + if( verbose >= 4 ) cons.DumpInfo(); + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationConsPhi:: +G4ParameterisationConsPhi( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionConsPhi" ); + + if( divType == DivWIDTH ) + { + G4Cons* msol = (G4Cons*)(msolid); + fnDiv = CalculateNDiv( msol->GetDeltaPhiAngle(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Cons* msol = (G4Cons*)(msolid); + fwidth = CalculateWidth( msol->GetDeltaPhiAngle(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationConsPhi no divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationConsPhi::~G4ParameterisationConsPhi() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationConsPhi::GetMaxParameter() const +{ + G4Cons* msol = (G4Cons*)(fmotherSolid); + return msol->GetDeltaPhiAngle(); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationConsPhi:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume *physVol ) const +{ + //----- translation + G4ThreeVector origin(0.,0.,0.); + //----- set translation + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix (so that all volumes point to the centre) + G4double posi = foffset + copyNo*fwidth; + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationConsPhi - position: " << posi/deg << G4endl + << " Origin: " << origin << " copyNo: " << copyNo + << " - foffset: " << foffset/deg + << " - fwidth: " << fwidth/deg << G4endl + << " - Axis: " << faxis << G4endl; + } +#endif + + ChangeRotMatrix( physVol, -posi ); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationConsPhi:: +ComputeDimensions( G4Cons& cons, const G4int, + const G4VPhysicalVolume* ) const +{ + G4Cons* msol = (G4Cons*)(fmotherSolid); + + G4double pRMin1 = msol->GetInnerRadiusMinusZ(); + G4double pRMax1 = msol->GetOuterRadiusMinusZ(); + G4double pRMin2 = msol->GetInnerRadiusPlusZ(); + G4double pRMax2 = msol->GetOuterRadiusPlusZ(); + G4double pDz = msol->GetZHalfLength(); + + //- already rotated double pSPhi = foffset + copyNo*fwidth; + G4double pSPhi = foffset + msol->GetStartPhiAngle(); + G4double pDPhi = fwidth; + + cons.SetInnerRadiusMinusZ( pRMin1 ); + cons.SetOuterRadiusMinusZ( pRMax1 ); + cons.SetInnerRadiusPlusZ( pRMin2 ); + cons.SetOuterRadiusPlusZ( pRMax2 ); + cons.SetZHalfLength( pDz ); + cons.SetStartPhiAngle( pSPhi ); + cons.SetDeltaPhiAngle( pDPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationConsPhi::ComputeDimensions" << G4endl + << " pSPhi: " << pSPhi << " - pDPhi: " << pDPhi << G4endl; + if( verbose >= 4 ) cons.DumpInfo(); + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationConsZ:: +G4ParameterisationConsZ( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionConsZ" ); + + if( divType == DivWIDTH ) + { + G4Cons* msol = (G4Cons*)(msolid); + fnDiv = CalculateNDiv( 2*msol->GetZHalfLength(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Cons* msol = (G4Cons*)(msolid); + fwidth = CalculateWidth( 2*msol->GetZHalfLength(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationConsZ: # divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationConsZ::~G4ParameterisationConsZ() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationConsZ::GetMaxParameter() const +{ + G4Cons* msol = (G4Cons*)(fmotherSolid); + return 2*msol->GetZHalfLength(); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationConsZ:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume* physVol ) const +{ + //----- set translation: along Z axis + G4Cons* motherCons = (G4Cons*)(GetMotherSolid()); + G4double posi = - motherCons->GetZHalfLength() + foffset + + fwidth/2 + copyNo*fwidth; + G4ThreeVector origin(0.,0.,posi); + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix: unit + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationConsZ::ComputeTransformation()" << G4endl + << " Origin: " << origin << " - copyNo: " << copyNo << G4endl + << " foffset: " << foffset << " - fwidth: " << fwidth + << G4endl; + } +#endif + + ChangeRotMatrix( physVol ); +} + + +//-------------------------------------------------------------------------- +void +G4ParameterisationConsZ:: +ComputeDimensions( G4Cons& cons, const G4int copyNo, + const G4VPhysicalVolume* ) const +{ + G4Cons* msol = (G4Cons*)(fmotherSolid); + + G4double mHalfLength = msol->GetZHalfLength(); + G4double aRInner = (msol->GetInnerRadiusPlusZ() + - msol->GetInnerRadiusMinusZ()) / (2*mHalfLength); + G4double bRInner = (msol->GetInnerRadiusPlusZ() + + msol->GetInnerRadiusMinusZ()) / 2; + G4double aROuter = (msol->GetOuterRadiusPlusZ() + - msol->GetOuterRadiusMinusZ()) / (2*mHalfLength); + G4double bROuter = (msol->GetOuterRadiusPlusZ() + + msol->GetOuterRadiusMinusZ()) / 2; + G4double xMinusZ = -mHalfLength + foffset + fwidth*copyNo; + G4double xPlusZ = -mHalfLength + foffset + fwidth*(copyNo+1); + cons.SetInnerRadiusMinusZ( aRInner * xMinusZ + bRInner ); + cons.SetOuterRadiusMinusZ( aROuter * xMinusZ + bROuter ); + cons.SetInnerRadiusPlusZ( aRInner * xPlusZ + bRInner ); + cons.SetOuterRadiusPlusZ( aROuter * xPlusZ + bROuter ); + + G4double pDz = fwidth / 2.; + G4double pSPhi = msol->GetStartPhiAngle(); + G4double pDPhi = msol->GetDeltaPhiAngle(); + + cons.SetZHalfLength( pDz ); + cons.SetStartPhiAngle( pSPhi ); + cons.SetDeltaPhiAngle( pDPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationConsZ::ComputeDimensions()" << G4endl + << " pDz: " << pDz << G4endl; + if( verbose >= 4 ) cons.DumpInfo(); + } +#endif +} diff --git a/source/geometry/divisions/src/G4ParameterisationPara.cc b/source/geometry/divisions/src/G4ParameterisationPara.cc new file mode 100644 index 0000000000..a640f58fd2 --- /dev/null +++ b/source/geometry/divisions/src/G4ParameterisationPara.cc @@ -0,0 +1,345 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationPara.cc,v 1.6 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4ParameterisationPara Implementation file +// +// 26.05.03 - P.Arce Initial version +// ******************************************************************** + +#include "G4ParameterisationPara.hh" + +#include + +#include "G4ThreeVector.hh" +#include "G4Transform3D.hh" +#include "G4RotationMatrix.hh" +#include "G4VPhysicalVolume.hh" +#include "G4Para.hh" + +//------------------------------------------------------------------------ +G4ParameterisationParaX:: +G4ParameterisationParaX( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionParaX" ); + + if( divType == DivWIDTH ) + { + G4Para* mpara = (G4Para*)(msolid); + fnDiv = CalculateNDiv( 2*mpara->GetXHalfLength(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Para* mpara = (G4Para*)(msolid); + fwidth = CalculateWidth( 2*mpara->GetXHalfLength(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationParaX - # divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationParaX::GetMaxParameter() const +{ + G4Para* msol = (G4Para*)(fmotherSolid); + return 2*msol->GetXHalfLength(); +} + +//------------------------------------------------------------------------ +G4ParameterisationParaX::~G4ParameterisationParaX() +{ +} + +//------------------------------------------------------------------------ +void +G4ParameterisationParaX:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume *physVol ) const +{ + G4Para* msol = (G4Para*)(fmotherSolid ); + G4double mdx = msol->GetXHalfLength( ); + + //----- translation + G4ThreeVector origin(0.,0.,0.); + G4double posi = -mdx + foffset+(copyNo+0.5)*fwidth; + origin.setX( posi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationParaX " + << copyNo << G4endl + << " Position: " << origin << " - Axis: " << faxis << G4endl; + } +#endif + + //----- set translation + physVol->SetTranslation( origin ); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationParaX:: +ComputeDimensions(G4Para& para, const G4int, + const G4VPhysicalVolume*) const +{ + //---- The division along X of a Para will result a Para + G4Para* msol = (G4Para*)(fmotherSolid); + + //---- Get + G4double pDx = fwidth/2.; + G4double pDy = msol->GetYHalfLength(); + G4double pDz = msol->GetZHalfLength(); + G4double pAlpha = atan(msol->GetTanAlpha()); + G4double pTheta = msol->GetSymAxis().theta(); + G4double pPhi = msol->GetSymAxis().phi(); + + para.SetAllParameters ( pDx, pDy, pDz, pAlpha, pTheta, pPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationParaX::ComputeDimensions()" + << " - Mother PARA " << G4endl; + msol->DumpInfo(); + G4cout << " - Parameterised PARA: " << G4endl; + para.DumpInfo(); + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationParaY:: +G4ParameterisationParaY( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionParaY" ); + + if( divType == DivWIDTH ) + { + G4Para* mpara = (G4Para*)(msolid); + fnDiv = CalculateNDiv( 2*mpara->GetYHalfLength(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Para* mpara = (G4Para*)(msolid); + fwidth = CalculateWidth( 2*mpara->GetYHalfLength(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationParaY - # divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationParaY::~G4ParameterisationParaY() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationParaY::GetMaxParameter() const +{ + G4Para* msol = (G4Para*)(fmotherSolid); + return 2*msol->GetYHalfLength(); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationParaY:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume *physVol ) const +{ + G4Para* msol = (G4Para*)(fmotherSolid ); + G4double mdy = msol->GetYHalfLength( ); + + //----- translation + G4ThreeVector origin(0.,0.,0.); + G4double posiY = -mdy + foffset+(copyNo+0.5)*fwidth; + origin.setY( posiY ); + G4double posiX = posiY * msol->GetTanAlpha(); + origin.setX( posiX ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationParaY " + << copyNo << G4endl + << " Position: " << origin << " - Axis: " << faxis << G4endl; + } +#endif + + //----- set translation + physVol->SetTranslation( origin ); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationParaY:: +ComputeDimensions(G4Para& para, const G4int, + const G4VPhysicalVolume*) const +{ + //---- The division along Y of a Para will result a Para + G4Para* msol = (G4Para*)(fmotherSolid); + + //---- Get + G4double pDx = msol->GetXHalfLength(); + G4double pDy = fwidth/2.; + G4double pDz = msol->GetZHalfLength(); + G4double pAlpha = atan(msol->GetTanAlpha()); + G4double pTheta = msol->GetSymAxis().theta(); + G4double pPhi = msol->GetSymAxis().phi(); + + para.SetAllParameters ( pDx, pDy, pDz, pAlpha, pTheta, pPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= -1 ) + { + G4cout << " G4ParameterisationParaY::ComputeDimensions()" + << " - Mother PARA " << G4endl; + msol->DumpInfo(); + G4cout << " - Parameterised PARA: " << G4endl; + para.DumpInfo(); + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationParaZ:: +G4ParameterisationParaZ( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionParaZ" ); + + if( divType == DivWIDTH ) + { + G4Para* mpara = (G4Para*)(msolid); + fnDiv = CalculateNDiv( 2*mpara->GetZHalfLength(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Para* mpara = (G4Para*)(msolid); + fwidth = CalculateWidth( 2*mpara->GetZHalfLength(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= -1 ) + { + G4cout << " G4ParameterisationParaZ - # divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationParaZ::~G4ParameterisationParaZ() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationParaZ::GetMaxParameter() const +{ + G4Para* msol = (G4Para*)(fmotherSolid); + return 2*msol->GetZHalfLength(); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationParaZ:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume *physVol ) const +{ + G4Para* msol = (G4Para*)(fmotherSolid ); + G4double mdz = msol->GetZHalfLength( ); + + //----- translation + G4double posi = -mdz + foffset + (copyNo+0.5)*fwidth; + G4ThreeVector symAxis = msol->GetSymAxis(); + G4ThreeVector origin( symAxis * posi / symAxis.z() ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationParaZ " + << copyNo << G4endl + << " Position: " << origin << " - Axis: " << faxis << G4endl; + } +#endif + + //----- set translation + physVol->SetTranslation( origin ); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationParaZ:: +ComputeDimensions(G4Para& para, const G4int, + const G4VPhysicalVolume*) const +{ + //---- The division along Z of a Para will result a Para + G4Para* msol = (G4Para*)(fmotherSolid); + + //---- Get + G4double pDx = msol->GetXHalfLength(); + G4double pDy = msol->GetYHalfLength(); + G4double pAlpha = atan(msol->GetTanAlpha()); + G4double pTheta = msol->GetSymAxis().theta(); + G4double pPhi = msol->GetSymAxis().phi(); + G4double pDz = fwidth/2.; + + para.SetAllParameters ( pDx, pDy, pDz, pAlpha, pTheta, pPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= -1 ) + { + G4cout << " G4ParameterisationParaZ::ComputeDimensions()" + << " - Mother PARA " << G4endl; + msol->DumpInfo(); + G4cout << " - Parameterised PARA: " << G4endl; + para.DumpInfo(); + } +#endif +} diff --git a/source/geometry/divisions/src/G4ParameterisationPolycone.cc b/source/geometry/divisions/src/G4ParameterisationPolycone.cc new file mode 100644 index 0000000000..5d962acb35 --- /dev/null +++ b/source/geometry/divisions/src/G4ParameterisationPolycone.cc @@ -0,0 +1,466 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationPolycone.cc,v 1.7 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4ParameterisationPolycone Implementation file +// +// 26.05.03 - P.Arce Initial version +//--------------------------------------------------------------------- + +#include "G4ParameterisationPolycone.hh" + +#include +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" + +//--------------------------------------------------------------------- +G4ParameterisationPolyconeRho:: +G4ParameterisationPolyconeRho( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionPolyconeRho" ); + + G4Polycone* msol = (G4Polycone*)(msolid); + G4PolyconeHistorical* origparamMother = msol->GetOriginalParameters(); + + if( divType == DivWIDTH ) + { + fnDiv = CalculateNDiv( origparamMother->Rmax[0] + - origparamMother->Rmin[0], width, offset ); + } + else if( divType == DivNDIV ) + { + fwidth = CalculateWidth( origparamMother->Rmax[0] + - origparamMother->Rmin[0], nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= -1 ) + { + G4cout << " G4ParameterisationPolyconeRho - # divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//--------------------------------------------------------------------- +G4ParameterisationPolyconeRho::~G4ParameterisationPolyconeRho() +{ +} + +//--------------------------------------------------------------------- +void G4ParameterisationPolyconeRho::CheckParametersValidity() +{ + G4VDivisionParameterisation::CheckParametersValidity(); + + G4Polycone* msol = (G4Polycone*)(fmotherSolid); + + if( fDivisionType == DivNDIVandWIDTH || fDivisionType == DivWIDTH ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyconeRho::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along R will be done with a width " + << "different for each solid section." << G4endl + << " WIDTH will not be used !" << G4endl; + } + if( foffset != 0. ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyconeRho::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along R will be done with a width " + << "different for each solid section." << G4endl + << " OFFSET will not be used !" << G4endl; + } + +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationPolyconeRho::GetMaxParameter() const +{ + G4Polycone* msol = (G4Polycone*)(fmotherSolid); + G4PolyconeHistorical* original_pars = msol->GetOriginalParameters(); + return original_pars->Rmax[0] - original_pars->Rmin[0]; +} + + +//--------------------------------------------------------------------- +void +G4ParameterisationPolyconeRho:: +ComputeTransformation( const G4int, G4VPhysicalVolume* physVol ) const +{ + //----- translation + G4ThreeVector origin(0.,0.,0.); + //----- set translation + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix: unit + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationPolyconeRho " << G4endl + << " foffset: " << foffset + << " - fwidth: " << fwidth << G4endl; + } +#endif + + ChangeRotMatrix( physVol ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationPolyconeRho " + << G4endl + << " Position: " << origin/mm + << " - Width: " << fwidth/deg + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//--------------------------------------------------------------------- +void +G4ParameterisationPolyconeRho:: +ComputeDimensions( G4Polycone& pcone, const G4int copyNo, + const G4VPhysicalVolume* ) const +{ + G4Polycone* msol = (G4Polycone*)(fmotherSolid); + + G4PolyconeHistorical* origparamMother = msol->GetOriginalParameters(); + G4PolyconeHistorical origparam( *origparamMother ); + G4int nZplanes = origparamMother->Num_z_planes; + + G4double width = 0.; + for( G4int ii = 0; ii < nZplanes; ii++ ) + { + width = CalculateWidth( origparamMother->Rmax[ii] + - origparamMother->Rmin[ii], fnDiv, foffset ); + origparam.Rmin[ii] = origparamMother->Rmin[ii]+foffset+width*copyNo; + origparam.Rmax[ii] = origparamMother->Rmin[ii]+foffset+width*(copyNo+1); + } + + pcone.SetOriginalParameters(&origparam); // copy values & transfer pointers + pcone.Reset(); // reset to new solid parameters + +#ifdef G4DIVDEBUG + if( verbose >= -2 ) + { + G4cout << "G4ParameterisationPolyconeRho::ComputeDimensions()" << G4endl + << "-- Parametrised pcone copy-number: " << copyNo << G4endl; + pcone.DumpInfo(); + } +#endif +} + +//--------------------------------------------------------------------- +G4ParameterisationPolyconePhi:: +G4ParameterisationPolyconePhi( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionPolyconePhi" ); + + G4Polycone* msol = (G4Polycone*)(msolid); + G4double deltaPhi = msol->GetEndPhi() - msol->GetStartPhi(); + + if( divType == DivWIDTH ) + { + fnDiv = CalculateNDiv( deltaPhi, width, offset ); + } + else if( divType == DivNDIV ) + { + fwidth = CalculateWidth( deltaPhi, nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationPolyconePhi - # divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset/deg << " = " << offset/deg << G4endl + << " Width " << fwidth/deg << " = " << width/deg << G4endl; + } +#endif +} + +//--------------------------------------------------------------------- +G4ParameterisationPolyconePhi::~G4ParameterisationPolyconePhi() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationPolyconePhi::GetMaxParameter() const +{ + G4Polycone* msol = (G4Polycone*)(fmotherSolid); + return msol->GetEndPhi() - msol->GetStartPhi(); +} + +//--------------------------------------------------------------------- +void +G4ParameterisationPolyconePhi:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume *physVol ) const +{ + //----- translation + G4ThreeVector origin(0.,0.,0.); + //----- set translation + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix (so that all volumes point to the centre) + G4double posi = foffset + copyNo*fwidth; + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationPolyconePhi - position: " << posi/deg + << G4endl + << " copyNo: " << copyNo << " - foffset: " << foffset/deg + << " - fwidth: " << fwidth/deg << G4endl; + } +#endif + + ChangeRotMatrix( physVol, -posi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationPolyconePhi " + << copyNo << G4endl + << " Position: " << origin << " - Width: " << fwidth + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//--------------------------------------------------------------------- +void +G4ParameterisationPolyconePhi:: +ComputeDimensions( G4Polycone& pcone, const G4int, + const G4VPhysicalVolume* ) const +{ + G4Polycone* msol = (G4Polycone*)(fmotherSolid); + + G4PolyconeHistorical* origparamMother = msol->GetOriginalParameters(); + G4PolyconeHistorical origparam( *origparamMother ); + origparam.Start_angle = origparamMother->Start_angle; + origparam.Opening_angle = fwidth; + + pcone.SetOriginalParameters(&origparam); // copy values & transfer pointers + pcone.Reset(); // reset to new solid parameters + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << "G4ParameterisationPolyconePhi::ComputeDimensions():" << G4endl; + pcone.DumpInfo(); + } +#endif +} + +//--------------------------------------------------------------------- +G4ParameterisationPolyconeZ:: +G4ParameterisationPolyconeZ( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionPolyconeZ" ); + + G4Polycone* msol = (G4Polycone*)(msolid); + G4PolyconeHistorical* origparamMother = msol->GetOriginalParameters(); + + if( divType == DivWIDTH ) + { + fnDiv = + CalculateNDiv( origparamMother->Z_values[origparamMother->Num_z_planes-1] + - origparamMother->Z_values[0] , width, offset ); + } + else if( divType == DivNDIV ) + { + fwidth = + CalculateNDiv( origparamMother->Z_values[origparamMother->Num_z_planes-1] + - origparamMother->Z_values[0] , nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationPolyconeZ - # divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//--------------------------------------------------------------------- +G4ParameterisationPolyconeZ::~G4ParameterisationPolyconeZ() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationPolyconeZ::GetMaxParameter() const +{ + G4Polycone* msol = (G4Polycone*)(fmotherSolid); + G4PolyconeHistorical* origparamMother = msol->GetOriginalParameters(); + return (origparamMother->Z_values[origparamMother->Num_z_planes-1] + -origparamMother->Z_values[0]); +} + +//--------------------------------------------------------------------- +void G4ParameterisationPolyconeZ::CheckParametersValidity() +{ + G4VDivisionParameterisation::CheckParametersValidity(); + + G4Polycone* msol = (G4Polycone*)(fmotherSolid); + + if( fDivisionType == DivNDIVandWIDTH || fDivisionType == DivWIDTH ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyconeZ::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along Z will be done splitting in the " + << "defined z_planes." << G4endl + << " WIDTH will not be used !" << G4endl; + } + + if( foffset != 0. ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyconeZ::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along Z will be done splitting in the " + << "defined z_planes." << G4endl + << " OFFSET will not be used !" << G4endl; + } + + G4PolyconeHistorical* origparamMother = msol->GetOriginalParameters(); + + if( origparamMother->Num_z_planes-1 != fnDiv ) + { + G4cerr << "ERROR - " + << "G4ParameterisationPolyconeZ::CheckParametersValidity()" + << G4endl + << " Division along Z will be done splitting in the defined" + << G4endl + << " z_planes, i.e, the number of division would be :" + << " " << origparamMother->Num_z_planes-1 + << " instead of " << fnDiv << " !" + << G4endl; + G4Exception("G4ParameterisationPolyconeZ::CheckParametersValidity()", + "IllegalConstruct", FatalException, + "Not supported configuration."); + } +} + +//--------------------------------------------------------------------- +void +G4ParameterisationPolyconeZ:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume* physVol) const +{ + G4Polycone* msol = (G4Polycone*)(GetMotherSolid()); + + //----- set translation: along Z axis + G4PolyconeHistorical* origparamMother = msol->GetOriginalParameters(); + G4double posi = (origparamMother->Z_values[copyNo] + + origparamMother->Z_values[copyNo+1])/2; + G4ThreeVector origin(0.,0.,posi); + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix: unit + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationPolyconeZ - position: " << posi << G4endl + << " copyNo: " << copyNo << " - foffset: " << foffset/deg + << " - fwidth: " << fwidth/deg << G4endl; + } +#endif + + ChangeRotMatrix( physVol ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationPolyconeZ " + << copyNo << G4endl + << " Position: " << origin << " - Width: " << fwidth + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//--------------------------------------------------------------------- +void +G4ParameterisationPolyconeZ:: +ComputeDimensions( G4Polycone& pcone, const G4int copyNo, + const G4VPhysicalVolume* ) const +{ + // only for mother number of planes = 2!! + // + G4Polycone* msol = (G4Polycone*)(fmotherSolid); + + G4PolyconeHistorical* origparamMother = msol->GetOriginalParameters(); + G4PolyconeHistorical origparam( *origparamMother ); + + G4double posi = (origparamMother->Z_values[copyNo] + + origparamMother->Z_values[copyNo+1])/2; + + origparam.Num_z_planes = 2; + origparam.Z_values[0] = origparamMother->Z_values[copyNo] - posi; + origparam.Z_values[1] = origparamMother->Z_values[copyNo+1] - posi; + origparam.Rmin[0] = origparamMother->Rmin[copyNo]; + origparam.Rmin[1] = origparamMother->Rmin[copyNo+1]; + origparam.Rmax[0] = origparamMother->Rmax[copyNo]; + origparam.Rmax[1] = origparamMother->Rmax[copyNo+1]; + + pcone.SetOriginalParameters(&origparam); // copy values & transfer pointers + pcone.Reset(); // reset to new solid parameters + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << "G4ParameterisationPolyconeZ::ComputeDimensions()" << G4endl + << "-- Parametrised pcone copy-number: " << copyNo << G4endl; + pcone.DumpInfo(); + } +#endif +} diff --git a/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc b/source/geometry/divisions/src/G4ParameterisationPolyhedra.cc new file mode 100644 index 0000000000..a2bd012bfa --- /dev/null +++ b/source/geometry/divisions/src/G4ParameterisationPolyhedra.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: G4ParameterisationPolyhedra.cc,v 1.6 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4ParameterisationPolyhedra Implementation file +// +// 14.10.03 - P.Arce Initial version +//--------------------------------------------------------------------- + +#include "G4ParameterisationPolyhedra.hh" + +#include +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4Polyhedra.hh" + +//-------------------------------------------------------------------------- +G4ParameterisationPolyhedraRho:: +G4ParameterisationPolyhedraRho( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionPolyhedraRho" ); + + G4Polyhedra* msol = (G4Polyhedra*)(msolid); + G4PolyhedraHistorical* original_pars = msol->GetOriginalParameters(); + + if( divType == DivWIDTH ) + { + fnDiv = CalculateNDiv( original_pars->Rmax[0] + - original_pars->Rmin[0], width, offset ); + } + else if( divType == DivNDIV ) + { + fwidth = CalculateWidth( original_pars->Rmax[0] + - original_pars->Rmin[0], nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationPolyhedraRho - # divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationPolyhedraRho::~G4ParameterisationPolyhedraRho() +{ +} + +//--------------------------------------------------------------------- +void G4ParameterisationPolyhedraRho::CheckParametersValidity() +{ + G4VDivisionParameterisation::CheckParametersValidity(); + + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + + if( fDivisionType == DivNDIVandWIDTH || fDivisionType == DivWIDTH ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyhedraRho::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along R will be done with a width " + << "different for each solid section." << G4endl + << " WIDTH will not be used !" << G4endl; + } + if( foffset != 0. ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyhedraRho::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along R will be done with a width " + << "different for each solid section." << G4endl + << " OFFSET will not be used !" << G4endl; + } +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationPolyhedraRho::GetMaxParameter() const +{ + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + G4PolyhedraHistorical* original_pars = msol->GetOriginalParameters(); + return original_pars->Rmax[0] - original_pars->Rmin[0]; +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationPolyhedraRho:: +ComputeTransformation( const G4int, G4VPhysicalVolume* physVol ) const +{ + //----- translation + G4ThreeVector origin(0.,0.,0.); + + //----- set translation + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix: unit + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationPolyhedraRho " << G4endl + << " foffset: " << foffset/deg + << " - fwidth: " << fwidth/deg << G4endl; + } +#endif + + ChangeRotMatrix( physVol ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationPolyhedraRho " + << G4endl + << " Position: " << origin + << " - Width: " << fwidth + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationPolyhedraRho:: +ComputeDimensions( G4Polyhedra& phedra, const G4int copyNo, + const G4VPhysicalVolume* ) const +{ + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + + G4PolyhedraHistorical* origparamMother = msol->GetOriginalParameters(); + G4PolyhedraHistorical origparam( *origparamMother ); + G4int nZplanes = origparamMother->Num_z_planes; + + G4double width = 0.; + for( G4int ii = 0; ii < nZplanes; ii++ ) + { + width = CalculateWidth( origparamMother->Rmax[ii] + - origparamMother->Rmin[ii], fnDiv, foffset ); + origparam.Rmin[ii] = origparamMother->Rmin[ii]+foffset+width*copyNo; + origparam.Rmax[ii] = origparamMother->Rmin[ii]+foffset+width*(copyNo+1); + } + + phedra.SetOriginalParameters(&origparam); // copy values & transfer pointers + phedra.Reset(); // reset to new solid parameters + +#ifdef G4DIVDEBUG + if( verbose >= -2 ) + { + G4cout << "G4ParameterisationPolyhedraRho::ComputeDimensions()" << G4endl + << "-- Parametrised phedra copy-number: " << copyNo << G4endl; + phedra.DumpInfo(); + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationPolyhedraPhi:: +G4ParameterisationPolyhedraPhi( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionPolyhedraPhi" ); + + G4Polyhedra* msol = (G4Polyhedra*)(msolid); + G4double deltaPhi = msol->GetEndPhi() - msol->GetStartPhi(); + + if( divType == DivWIDTH ) + { + fnDiv = CalculateNDiv( deltaPhi, width, offset ); + } + else if( divType == DivNDIV ) + { + fwidth = CalculateWidth( deltaPhi, nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationPolyhedraPhi - # divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationPolyhedraPhi::~G4ParameterisationPolyhedraPhi() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationPolyhedraPhi::GetMaxParameter() const +{ + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + return msol->GetEndPhi() - msol->GetStartPhi(); +} + +//--------------------------------------------------------------------- +void G4ParameterisationPolyhedraPhi::CheckParametersValidity() +{ + G4VDivisionParameterisation::CheckParametersValidity(); + + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + + if( fDivisionType == DivNDIVandWIDTH || fDivisionType == DivWIDTH ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyhedraPhi::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along PHI will be done splitting " + << "in the defined numSide." << G4endl + << " WIDTH will not be used !" << G4endl; + } + if( foffset != 0. ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyhedraPhi::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along PHI will be done splitting " + << "in the defined numSide." << G4endl + << " OFFSET will not be used !" << G4endl; + } + + G4PolyhedraHistorical* origparamMother = msol->GetOriginalParameters(); + + if( origparamMother->numSide != fnDiv ) + { + G4cerr << "ERROR - " + << "G4ParameterisationPolyhedraPhi::CheckParametersValidity()" + << G4endl + << " Division along PHI will be done splitting in the defined" + << G4endl + << " numSide, i.e, the number of division would be :" + << " " << origparamMother->numSide + << " instead of " << fnDiv << " !" + << G4endl; + G4Exception("G4ParameterisationPolyhedraPhi::CheckParametersValidity()", + "IllegalConstruct", FatalException, + "Not supported configuration."); + } +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationPolyhedraPhi:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume *physVol ) const +{ + //----- translation + G4ThreeVector origin(0.,0.,0.); + //----- set translation + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix (so that all volumes point to the centre) + G4double posi = copyNo*fwidth; + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationPolyhedraPhi - position: " << posi/deg + << G4endl + << " copyNo: " << copyNo + << " - fwidth: " << fwidth/deg << G4endl; + } +#endif + + ChangeRotMatrix( physVol, -posi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationPolyhedraPhi " << copyNo + << G4endl + << " Position: " << origin << " - Width: " << fwidth + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationPolyhedraPhi:: +ComputeDimensions( G4Polyhedra& phedra, const G4int, + const G4VPhysicalVolume* ) const +{ + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + + G4PolyhedraHistorical* origparamMother = msol->GetOriginalParameters(); + G4PolyhedraHistorical origparam( *origparamMother ); + + origparam.numSide = 1; + origparam.Start_angle = origparamMother->Start_angle; + origparam.Opening_angle = fwidth; + + phedra.SetOriginalParameters(&origparam); // copy values & transfer pointers + phedra.Reset(); // reset to new solid parameters + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << "G4ParameterisationPolyhedraPhi::ComputeDimensions():" << G4endl; + phedra.DumpInfo(); + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationPolyhedraZ:: +G4ParameterisationPolyhedraZ( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionPolyhedraZ" ); + + G4Polyhedra* msol = (G4Polyhedra*)(msolid); + G4PolyhedraHistorical* origparamMother = msol->GetOriginalParameters(); + + if( divType == DivWIDTH ) + { + fnDiv = + CalculateNDiv( origparamMother->Z_values[origparamMother->Num_z_planes-1] + - origparamMother->Z_values[0] , width, offset ); + } + else if( divType == DivNDIV ) + { + fwidth = + CalculateNDiv( origparamMother->Z_values[origparamMother->Num_z_planes-1] + - origparamMother->Z_values[0] , nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationPolyhedraZ - # divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//--------------------------------------------------------------------- +G4ParameterisationPolyhedraZ::~G4ParameterisationPolyhedraZ() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationPolyhedraZ::GetMaxParameter() const +{ + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + G4PolyhedraHistorical* origparamMother = msol->GetOriginalParameters(); + return (origparamMother->Z_values[origparamMother->Num_z_planes-1] + -origparamMother->Z_values[0]); +} + +//--------------------------------------------------------------------- +void G4ParameterisationPolyhedraZ::CheckParametersValidity() +{ + G4VDivisionParameterisation::CheckParametersValidity(); + + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + + if( fDivisionType == DivNDIVandWIDTH || fDivisionType == DivWIDTH ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyhedraZ::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along Z will be done splitting " + << "in the defined z_planes." << G4endl + << " WIDTH will not be used !" << G4endl; + } + + if( foffset != 0. ) + { + G4cerr << "WARNING - " + << "G4ParameterisationPolyhedraZ::CheckParametersValidity()" + << G4endl + << " Solid " << msol->GetName() << G4endl + << " Division along Z will be done splitting " + << "in the defined z_planes." << G4endl + << " OFFSET will not be used !" << G4endl; + } + + G4PolyhedraHistorical* origparamMother = msol->GetOriginalParameters(); + + if( origparamMother->Num_z_planes-1 != fnDiv ) + { + G4cerr << "ERROR - " + << "G4ParameterisationPolyhedraZ::CheckParametersValidity()" + << G4endl + << " Division along Z will be done splitting in the defined" + << G4endl + << " z_planes, i.e, the number of division would be :" + << " " << origparamMother->Num_z_planes-1 + << " instead of " << fnDiv << " !" + << G4endl; + G4Exception("G4ParameterisationPolyhedraZ::CheckParametersValidity()", + "IllegalConstruct", FatalException, + "Not supported configuration."); + } +} + +//--------------------------------------------------------------------- +void +G4ParameterisationPolyhedraZ:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume* physVol) const +{ + G4Polyhedra* msol = (G4Polyhedra*)(GetMotherSolid()); + + //----- set translation: along Z axis + G4PolyhedraHistorical* origparamMother = msol->GetOriginalParameters(); + G4double posi = (origparamMother->Z_values[copyNo] + + origparamMother->Z_values[copyNo+1])/2; + G4ThreeVector origin(0.,0.,posi); + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix: unit + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationPolyhedraZ - position: " << posi << G4endl + << " copyNo: " << copyNo << " - foffset: " << foffset/deg + << " - fwidth: " << fwidth/deg << G4endl; + } +#endif + + ChangeRotMatrix( physVol ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationPolyhedraZ " + << copyNo << G4endl + << " Position: " << origin << " - Width: " << fwidth + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//--------------------------------------------------------------------- +void +G4ParameterisationPolyhedraZ:: +ComputeDimensions( G4Polyhedra& phedra, const G4int copyNo, + const G4VPhysicalVolume* ) const +{ + // only for mother number of planes = 2!! + // + G4Polyhedra* msol = (G4Polyhedra*)(fmotherSolid); + + G4PolyhedraHistorical* origparamMother = msol->GetOriginalParameters(); + G4PolyhedraHistorical origparam( *origparamMother ); + + G4double posi = (origparamMother->Z_values[copyNo] + + origparamMother->Z_values[copyNo+1])/2; + + origparam.Num_z_planes = 2; + origparam.Z_values[0] = origparamMother->Z_values[copyNo] - posi; + origparam.Z_values[1] = origparamMother->Z_values[copyNo+1] - posi; + origparam.Rmin[0] = origparamMother->Rmin[copyNo]; + origparam.Rmin[1] = origparamMother->Rmin[copyNo+1]; + origparam.Rmax[0] = origparamMother->Rmax[copyNo]; + origparam.Rmax[1] = origparamMother->Rmax[copyNo+1]; + + phedra.SetOriginalParameters(&origparam); // copy values & transfer pointers + phedra.Reset(); // reset to new solid parameters + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << "G4ParameterisationPolyhedraZ::ComputeDimensions()" << G4endl + << "-- Parametrised phedra copy-number: " << copyNo << G4endl; + phedra.DumpInfo(); + } +#endif +} + diff --git a/source/geometry/divisions/src/G4ParameterisationTrd.cc b/source/geometry/divisions/src/G4ParameterisationTrd.cc new file mode 100644 index 0000000000..4ba2067032 --- /dev/null +++ b/source/geometry/divisions/src/G4ParameterisationTrd.cc @@ -0,0 +1,416 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationTrd.cc,v 1.8 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4ParameterisationTrd Implementation file +// +// 26.05.03 - P.Arce Initial version +// ******************************************************************** + +#include "G4ParameterisationTrd.hh" + +#include +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4Trd.hh" +#include "G4Trap.hh" + +//------------------------------------------------------------------------ +G4ParameterisationTrdX:: +G4ParameterisationTrdX( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionTrdX" ); + + if( divType == DivWIDTH ) + { + G4Trd* mtrd = (G4Trd*)(msolid); + fnDiv = CalculateNDiv( 2*mtrd->GetXHalfLength1(), + width, offset ); + } + else if( divType == DivNDIV ) + { + G4Trd* mtrd = (G4Trd*)(msolid); + fwidth = CalculateWidth( 2*mtrd->GetXHalfLength1(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= -1 ) + { + G4cout << " G4ParameterisationTrdX - ## divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationTrdX::~G4ParameterisationTrdX() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationTrdX::GetMaxParameter() const +{ + G4Trd* msol = (G4Trd*)(fmotherSolid); + return 2*msol->GetXHalfLength1(); +} + +//------------------------------------------------------------------------ +void +G4ParameterisationTrdX:: +ComputeTransformation( const G4int copyNo, + G4VPhysicalVolume *physVol ) const +{ + G4Trd* msol = (G4Trd*)(fmotherSolid ); + G4double mdx = msol->GetXHalfLength1(); + + //----- translation + G4ThreeVector origin(0.,0.,0.); + G4double posi = -mdx + foffset + (copyNo+0.5)*fwidth; + if( faxis == kXAxis ) + { + origin.setX( posi ); + } + else + { + G4cerr << "ERROR - G4ParameterisationTrdX::ComputeTransformation()" + << G4endl + << " Axis is along " << faxis << " !" << G4endl; + G4Exception("G4ParameterisationTrdX::ComputeTransformation()", + "IllegalConstruct", FatalException, + "Only axes along X are allowed !"); + } + +#ifdef G4DIVDEBUG + if( verbose >= -2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationTrdX: " + << copyNo << G4endl + << " Position: " << origin << " - Axis: " << faxis << G4endl; + } +#endif + + //----- set translation + physVol->SetTranslation( origin ); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTrdX:: +ComputeDimensions( G4Trd& trd, const G4int, const G4VPhysicalVolume* ) const +{ + G4Trd* msol = (G4Trd*)(fmotherSolid); + + G4double pDy1 = msol->GetYHalfLength1(); + G4double pDy2 = msol->GetYHalfLength2(); + G4double pDz = msol->GetZHalfLength(); + G4double pDx = fwidth/2.; + + trd.SetAllParameters ( pDx, pDx, pDy1, pDy2, pDz ); + +#ifdef G4DIVDEBUG + if( verbose >= -2 ) + { + G4cout << " G4ParameterisationTrdX::ComputeDimensions():" << G4endl; + trd.DumpInfo(); + } +#endif +} + +//-------------------------------------------------------------------------- +void G4ParameterisationTrdX::CheckParametersValidity() +{ + G4VDivisionParameterisation::CheckParametersValidity(); + + G4Trd* msol = (G4Trd*)(fmotherSolid); + + G4double mpDx1 = msol->GetXHalfLength1(); + G4double mpDx2 = msol->GetXHalfLength2(); + + if( fabs(mpDx1 - mpDx2) > kCarTolerance ) + { + G4cerr << "ERROR - G4ParameterisationTrdX::CheckParametersValidity()" + << G4endl + << " Making a division of a TRD along axis X," << G4endl + << " while the X half lengths are not equal," << G4endl + << " is not (yet) supported. It will result" << G4endl + << " in non-equal division solids." << G4endl; + G4Exception("G4ParameterisationTrdX::CheckParametersValidity()", + "IllegalConstruct", FatalException, + "Invalid solid specification. NOT supported."); + } +} + +//-------------------------------------------------------------------------- +G4ParameterisationTrdY:: +G4ParameterisationTrdY( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionTrdY" ); + + if( divType == DivWIDTH ) + { + G4Trd* mtrd = (G4Trd*)(msolid); + fnDiv = CalculateNDiv( 2*mtrd->GetYHalfLength1(), + width, offset ); + } + else if( divType == DivNDIV ) + { + G4Trd* mtrd = (G4Trd*)(msolid); + fwidth = CalculateWidth( 2*mtrd->GetYHalfLength1(), + nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationTrdY no divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationTrdY::~G4ParameterisationTrdY() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationTrdY::GetMaxParameter() const +{ + G4Trd* msol = (G4Trd*)(fmotherSolid); + return 2*msol->GetYHalfLength1(); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTrdY:: +ComputeTransformation( const G4int copyNo, G4VPhysicalVolume* physVol ) const +{ + G4Trd* msol = (G4Trd*)(fmotherSolid ); + G4double mdy = msol->GetYHalfLength1(); + + //----- translation + G4ThreeVector origin(0.,0.,0.); + G4double posi = -mdy + foffset + (copyNo+0.5)*fwidth; + if( faxis == kYAxis ) + { + origin.setY( posi ); + } + else + { + G4Exception("G4ParameterisationTrdY::ComputeTransformation()", + "IllegalConstruct", FatalException, + "Only axes along Y are allowed !"); + } + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationTrdY " << copyNo + << " pos " << origin << " rot mat " << " axis " << faxis << G4endl; + } +#endif + + //----- set translation + physVol->SetTranslation( origin ); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTrdY:: +ComputeDimensions(G4Trd& trd, const G4int, const G4VPhysicalVolume*) const +{ + //---- The division along Y of a Trd will result a Trd, only + //--- if Y at -Z and +Z are equal, else use the G4Trap version + G4Trd* msol = (G4Trd*)(fmotherSolid); + + G4double pDx1 = msol->GetXHalfLength1(); + G4double pDx2 = msol->GetXHalfLength2(); + G4double pDz = msol->GetZHalfLength(); + G4double pDy = fwidth/2.; + + trd.SetAllParameters ( pDx1, pDx2, pDy, pDy, pDz ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationTrdY::ComputeDimensions():" << G4endl; + trd.DumpInfo(); + } +#endif +} + +//-------------------------------------------------------------------------- +void G4ParameterisationTrdY::CheckParametersValidity() +{ + G4VDivisionParameterisation::CheckParametersValidity(); + + G4Trd* msol = (G4Trd*)(fmotherSolid); + + G4double mpDy1 = msol->GetYHalfLength1(); + G4double mpDy2 = msol->GetYHalfLength2(); + + if( fabs(mpDy1 - mpDy2) > kCarTolerance ) + { + G4cerr << "ERROR - G4ParameterisationTrdY::CheckParametersValidity()" + << G4endl + << " Making a division of a TRD along axis Y while" << G4endl + << " the Y half lengths are not equal is not (yet)" << G4endl + << " supported. It will result in non-equal" << G4endl + << " division solids." << G4endl; + G4Exception("G4ParameterisationTrdY::CheckParametersValidity()", + "IllegalConstruct", FatalException, + "Invalid solid specification. NOT supported."); + } +} + +//-------------------------------------------------------------------------- +G4ParameterisationTrdZ:: +G4ParameterisationTrdZ( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivTrdZ" ); + + if( divType == DivWIDTH ) + { + G4Trd* mtrd = (G4Trd*)(msolid); + fnDiv = CalculateNDiv( 2*mtrd->GetZHalfLength(), + width, offset ); + } + else if( divType == DivNDIV ) + { + G4Trd* mtrd = (G4Trd*)(msolid); + fwidth = CalculateWidth( 2*mtrd->GetZHalfLength(), + nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationTrdZ no divisions " << fnDiv + << " = " << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//------------------------------------------------------------------------ +G4ParameterisationTrdZ::~G4ParameterisationTrdZ() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationTrdZ::GetMaxParameter() const +{ + G4Trd* msol = (G4Trd*)(fmotherSolid); + return 2*msol->GetZHalfLength(); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTrdZ:: +ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const +{ + G4Trd* msol = (G4Trd*)(fmotherSolid ); + G4double mdz = msol->GetZHalfLength(); + + //----- translation + G4ThreeVector origin(0.,0.,0.); + G4double posi = -mdz + foffset + (copyNo+0.5)*fwidth; + if( faxis == kZAxis ) + { + origin.setZ( posi ); + } + else + { + G4Exception("G4ParameterisationTrdZ::ComputeTransformation()", + "IllegalConstruct", FatalException, + "Only axes along Z are allowed !"); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationTrdZ: " + << copyNo << G4endl + << " Position: " << origin << " - Offset: " << foffset + << " - Width: " << fwidth << " Axis " << faxis << G4endl; + } +#endif + + //----- set translation + physVol->SetTranslation( origin ); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTrdZ:: +ComputeDimensions(G4Trd& trd, const G4int copyNo, + const G4VPhysicalVolume*) const +{ + //---- The division along Z of a Trd will result a Trd + G4Trd* msol = (G4Trd*)(fmotherSolid); + + G4double pDx1 = msol->GetXHalfLength1(); + G4double DDx = (msol->GetXHalfLength2() - msol->GetXHalfLength1() ); + G4double pDy1 = msol->GetYHalfLength1(); + G4double DDy = (msol->GetYHalfLength2() - msol->GetYHalfLength1() ); + G4double pDz = fwidth/2.; + G4double zLength = 2*msol->GetZHalfLength(); + + trd.SetAllParameters ( pDx1+DDx*(foffset+copyNo*fwidth)/zLength, + pDx1+DDx*(foffset+(copyNo+1)*fwidth)/zLength, + pDy1+DDy*(foffset+copyNo*fwidth)/zLength, + pDy1+DDy*(foffset+(copyNo+1)*fwidth)/zLength, pDz ); + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationTrdZ::ComputeDimensions()" + << " - Mother TRD " << G4endl; + msol->DumpInfo(); + G4cout << " - Parameterised TRD: " + << copyNo << G4endl; + trd.DumpInfo(); + } +#endif +} diff --git a/source/geometry/divisions/src/G4ParameterisationTubs.cc b/source/geometry/divisions/src/G4ParameterisationTubs.cc new file mode 100644 index 0000000000..4dbaebbfd6 --- /dev/null +++ b/source/geometry/divisions/src/G4ParameterisationTubs.cc @@ -0,0 +1,372 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParameterisationTubs.cc,v 1.5 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4ParameterisationTubs Implementation file +// +// 26.05.03 - P.Arce Initial version +// ******************************************************************** + +#include "G4ParameterisationTubs.hh" + +#include +#include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4Tubs.hh" + +//-------------------------------------------------------------------------- +G4ParameterisationTubsRho:: +G4ParameterisationTubsRho( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionTubsRho" ); + + if( divType == DivWIDTH ) + { + G4Tubs* msol = (G4Tubs*)(msolid); + fnDiv = CalculateNDiv( msol->GetOuterRadius() - msol->GetInnerRadius(), + width, offset ); + } + else if( divType == DivNDIV ) + { + G4Tubs* msol = (G4Tubs*)(msolid); + fwidth = CalculateWidth( msol->GetOuterRadius() - msol->GetInnerRadius(), + nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationTubsRho - no divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl + << " DivType " << divType << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationTubsRho::~G4ParameterisationTubsRho() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationTubsRho::GetMaxParameter() const +{ + G4Tubs* msol = (G4Tubs*)(fmotherSolid); + return msol->GetOuterRadius() - msol->GetInnerRadius(); +} + + +//-------------------------------------------------------------------------- +void +G4ParameterisationTubsRho:: +ComputeTransformation(const G4int, G4VPhysicalVolume* physVol) const +{ + //----- translation + G4ThreeVector origin(0.,0.,0.); + //----- set translation + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix: unit + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationTubsRho " << G4endl + << " Offset: " << foffset/deg + << " - Width: " << fwidth/deg << G4endl; + } +#endif + + ChangeRotMatrix( physVol ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationTubsRho " << G4endl + << " Position: " << origin << " - Width: " << fwidth + << " - Axis " << faxis << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTubsRho:: +ComputeDimensions( G4Tubs& tubs, const G4int copyNo, + const G4VPhysicalVolume* ) const +{ + G4Tubs* msol = (G4Tubs*)(fmotherSolid); + + G4double pRMin = msol->GetInnerRadius() + foffset + fwidth * copyNo; + G4double pRMax = msol->GetInnerRadius() + foffset + fwidth * (copyNo+1); + G4double pDz = msol->GetZHalfLength(); + //- already rotated G4double pSR = foffset + copyNo*fwidth; + G4double pSPhi = msol->GetStartPhiAngle(); + G4double pDPhi = msol->GetDeltaPhiAngle();; + + tubs.SetInnerRadius( pRMin ); + tubs.SetOuterRadius( pRMax ); + tubs.SetZHalfLength( pDz ); + tubs.SetStartPhiAngle( pSPhi ); + tubs.SetDeltaPhiAngle( pDPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationTubsRho::ComputeDimensions()" << G4endl + << " pRMin: " << pRMin << " - pRMax: " << pRMax << G4endl; + tubs.DumpInfo(); + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationTubsPhi:: +G4ParameterisationTubsPhi( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionTubsPhi" ); + + if( divType == DivWIDTH ) + { + G4Tubs* msol = (G4Tubs*)(msolid); + fnDiv = CalculateNDiv( msol->GetDeltaPhiAngle(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Tubs* msol = (G4Tubs*)(msolid); + fwidth = CalculateWidth( msol->GetDeltaPhiAngle(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationTubsPhi no divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationTubsPhi::~G4ParameterisationTubsPhi() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationTubsPhi::GetMaxParameter() const +{ + G4Tubs* msol = (G4Tubs*)(fmotherSolid); + return msol->GetDeltaPhiAngle(); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTubsPhi:: +ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const +{ + //----- translation + G4ThreeVector origin(0.,0.,0.); + //----- set translation + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix (so that all volumes point to the centre) + G4double posi = foffset + copyNo*fwidth; + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationTubsPhi - position: " << posi/deg << G4endl + << " copyNo: " << copyNo << " - foffset: " << foffset/deg + << " - fwidth: " << fwidth/deg << G4endl; + } +#endif + + ChangeRotMatrix( physVol, -posi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationTubsPhi " << copyNo + << G4endl + << " Position: " << origin << " - Width: " << fwidth + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTubsPhi:: +ComputeDimensions( G4Tubs& tubs, const G4int, + const G4VPhysicalVolume* ) const +{ + G4Tubs* msol = (G4Tubs*)(fmotherSolid); + + G4double pRMin = msol->GetInnerRadius(); + G4double pRMax = msol->GetOuterRadius(); + G4double pDz = msol->GetZHalfLength(); + //----- already rotated in 'ComputeTransformation' + G4double pSPhi = msol->GetStartPhiAngle(); + G4double pDPhi = fwidth; + + tubs.SetInnerRadius( pRMin ); + tubs.SetOuterRadius( pRMax ); + tubs.SetZHalfLength( pDz ); + tubs.SetStartPhiAngle( pSPhi ); + tubs.SetDeltaPhiAngle( pDPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationTubsPhi::ComputeDimensions" << G4endl + << " pSPhi: " << pSPhi << " - pDPhi: " << pDPhi << G4endl; + tubs.DumpInfo(); + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationTubsZ:: +G4ParameterisationTubsZ( EAxis axis, G4int nDiv, + G4double width, G4double offset, + G4VSolid* msolid, DivisionType divType ) + : G4VDivisionParameterisation( axis, nDiv, width, offset, divType, msolid ) +{ + CheckParametersValidity(); + SetType( "DivisionTubsZ" ); + if( divType == DivWIDTH ) + { + G4Tubs* msol = (G4Tubs*)(msolid); + fnDiv = CalculateNDiv( 2*msol->GetZHalfLength(), width, offset ); + } + else if( divType == DivNDIV ) + { + G4Tubs* msol = (G4Tubs*)(msolid); + fwidth = CalculateWidth( 2*msol->GetZHalfLength(), nDiv, offset ); + } + +#ifdef G4DIVDEBUG + if( verbose >= 1 ) + { + G4cout << " G4ParameterisationTubsZ: # divisions " << fnDiv << " = " + << nDiv << G4endl + << " Offset " << foffset << " = " << offset << G4endl + << " Width " << fwidth << " = " << width << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +G4ParameterisationTubsZ::~G4ParameterisationTubsZ() +{ +} + +//------------------------------------------------------------------------ +G4double G4ParameterisationTubsZ::GetMaxParameter() const +{ + G4Tubs* msol = (G4Tubs*)(fmotherSolid); + return 2*msol->GetZHalfLength(); +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTubsZ:: +ComputeTransformation(const G4int copyNo, G4VPhysicalVolume *physVol) const +{ + //----- set translation: along Z axis + G4Tubs* motherTubs = (G4Tubs*)(fmotherSolid); + G4double posi = - motherTubs->GetZHalfLength() + foffset + + fwidth/2 + copyNo*fwidth; + G4ThreeVector origin(0.,0.,posi); + physVol->SetTranslation( origin ); + + //----- calculate rotation matrix: unit + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationTubsZ::ComputeTransformation()" << G4endl + << " Position: " << posi << " - copyNo: " << copyNo << G4endl + << " foffset " << foffset/deg << " - fwidth " << fwidth/deg + << G4endl; + } +#endif + + ChangeRotMatrix( physVol ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << std::setprecision(8) << " G4ParameterisationTubsZ " << copyNo + << G4endl + << " Position: " << origin << " - Width: " << fwidth + << " - Axis: " << faxis << G4endl; + } +#endif +} + +//-------------------------------------------------------------------------- +void +G4ParameterisationTubsZ:: +ComputeDimensions( G4Tubs& tubs, const G4int, + const G4VPhysicalVolume* ) const +{ + G4Tubs* msol = (G4Tubs*)(fmotherSolid); + + G4double pRMin = msol->GetInnerRadius(); + G4double pRMax = msol->GetOuterRadius(); + // G4double pDz = msol->GetZHalfLength() / GetNoDiv(); + G4double pDz = fwidth/2.; + G4double pSPhi = msol->GetStartPhiAngle(); + G4double pDPhi = msol->GetDeltaPhiAngle(); + + tubs.SetInnerRadius( pRMin ); + tubs.SetOuterRadius( pRMax ); + tubs.SetZHalfLength( pDz ); + tubs.SetStartPhiAngle( pSPhi ); + tubs.SetDeltaPhiAngle( pDPhi ); + +#ifdef G4DIVDEBUG + if( verbose >= 2 ) + { + G4cout << " G4ParameterisationTubsZ::ComputeDimensions()" << G4endl + << " pDz: " << pDz << G4endl; + tubs.DumpInfo(); + } +#endif +} diff --git a/source/geometry/divisions/src/G4VDivisionParameterisation.cc b/source/geometry/divisions/src/G4VDivisionParameterisation.cc new file mode 100644 index 0000000000..ffd024749f --- /dev/null +++ b/source/geometry/divisions/src/G4VDivisionParameterisation.cc @@ -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: G4VDivisionParameterisation.cc,v 1.8 2003/11/19 11:51:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4VDivisionParameterisation Implementation file +// +// 26.05.03 - P.Arce Initial version +// ******************************************************************** + +#include "G4VDivisionParameterisation.hh" +#include "G4VSolid.hh" +#include "G4VPhysicalVolume.hh" +#include "G4RotationMatrix.hh" + +G4int G4VDivisionParameterisation::verbose = 5; + +//-------------------------------------------------------------------------- +G4VDivisionParameterisation:: +G4VDivisionParameterisation( EAxis axis, G4int nDiv, + G4double step, G4double offset, + DivisionType divType, G4VSolid* motherSolid ) + : faxis(axis), fnDiv( nDiv), fwidth(step), + foffset(offset), fDivisionType(divType), fmotherSolid( motherSolid ) +{ +#ifdef G4DIVDEBUG + if (verbose >= 1) + { + G4cout << " G4VDivisionParameterisation no divisions " << fnDiv + << " = " << nDiv << G4endl + << " offset " << foffset << " = " << offset << G4endl + << " step " << fwidth << " = " << step << G4endl; + } +#endif + + theVoluFirstCopyNo = 1; +} + +//-------------------------------------------------------------------------- +G4VDivisionParameterisation::~G4VDivisionParameterisation() +{ +} + +//-------------------------------------------------------------------------- +void +G4VDivisionParameterisation:: +ChangeRotMatrix( G4VPhysicalVolume *physVol, G4double rotZ ) const +{ + G4RotationMatrix* rm = new G4RotationMatrix(); + rm->rotateZ( rotZ ); + //----- set rotation + //----- delete first old rotation matrix + G4RotationMatrix* rmold = physVol->GetRotation(); + delete rmold; + physVol->SetRotation(rm); +} + +//-------------------------------------------------------------------------- +G4int +G4VDivisionParameterisation:: +CalculateNDiv( G4double motherDim, G4double width, G4double offset ) const +{ +#ifdef G4DIVDEBUG + G4cout << " G4VDivisionParameterisation::CalculateNDiv: " + << ( motherDim - offset ) / width + << " Motherdim: " << motherDim << ", Offset: " << offset + << ", Width: " << width << G4endl; +#endif + + return G4int( ( motherDim - offset ) / width ); +} + +//-------------------------------------------------------------------------- +G4double +G4VDivisionParameterisation:: +CalculateWidth( G4double motherDim, G4int nDiv, G4double offset ) const +{ +#ifdef G4DIVDEBUG + G4cout << " G4VDivisionParameterisation::CalculateWidth: " + << ( motherDim - offset ) / nDiv + << ", Motherdim: " << motherDim << ", Offset: " << offset + << ", Number of divisions: " << nDiv << G4endl; +#endif + + return ( motherDim - offset ) / nDiv; +} + +//-------------------------------------------------------------------------- +void G4VDivisionParameterisation::CheckParametersValidity() +{ + G4double maxPar = GetMaxParameter(); + CheckOffset( maxPar ); + CheckNDivAndWidth( maxPar ); +} + +//-------------------------------------------------------------------------- +void G4VDivisionParameterisation::CheckOffset( G4double maxPar ) +{ + if( foffset >= maxPar ) + { + G4cerr << "ERROR - G4VDivisionParameterisation::CheckOffset()" << G4endl + << " Division of solid " << fmotherSolid->GetName() + << " has too big offset = " << G4endl + << " " << foffset << " > " << maxPar << " !" << G4endl; + G4Exception("G4VDivisionParameterisation::CheckOffset()", + "IllegalConstruct", FatalException, + "Not supported configuration."); + } +} + +//-------------------------------------------------------------------------- +void G4VDivisionParameterisation::CheckNDivAndWidth( G4double maxPar ) +{ + if( (fDivisionType == DivNDIVandWIDTH) + && (foffset + fwidth*fnDiv - maxPar > kCarTolerance ) ) + { + G4cerr << "ERROR - G4VDivisionParameterisation::CheckNDivAndWidth()" + << G4endl + << " Division of solid " << fmotherSolid->GetName() + << " has too big offset + width*nDiv = " << G4endl + << " " << foffset + fwidth*fnDiv << " > " + << foffset << ". Width = " + << G4endl + << " " << fwidth << ". nDiv = " << fnDiv << " !" + << G4endl; + G4Exception("G4VDivisionParameterisation::CheckNDivAndWidth()", + "IllegalConstruct", FatalException, + "Not supported configuration."); + } +} diff --git a/source/geometry/magneticfield/History b/source/geometry/magneticfield/History index 9d0cc65591..a1bdeedc23 100644 --- a/source/geometry/magneticfield/History +++ b/source/geometry/magneticfield/History @@ -1,4 +1,4 @@ -$Id: History,v 1.80 2003/06/25 09:06:10 japost Exp $ +$Id: History,v 1.92 2003/11/13 19:48:39 japost Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,83 +17,161 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov 13th, 2003 J.Apostolakis - field-V05-02-08 +----------------------------- +- G4ChordFinder: + o extended the arguments of AdvanceChordLimited and FindNextChord + adding the current safety sphere (origin, radius), for use in optimising. + o fixed set functions which had side effect (on first fraction.) +- Added new class G4ChordFinderSaf (using above) + o which uses safety to create longer chords, so enabling + propagation in fewer steps --> performance optimisation +- G4FieldManager: + Changed default accuracy parameters to much better values: + Epsilon Min Default to 5.0e-5 from 5.0e-7 (too small) + Epsilon Max Default to 0.001 from 0.05 (far too big) + +Nov 7th, 2003 J.Apostolakis - field-V05-02-07 +----------------------------- +- G4ChordFinder + o Made this a base class + * to enable specialised implementations + * virtual methods: FindNextChord, PrintStatistics) + * new method AccumulateStatistics to aid in this + + o New default value of Accuracy!! + Delta Chord to 0.25 mm (from 3.00 mm) <----- + +- G4FieldManager + o Changed default values of + Delta One Step to 0.010 mm (from 0.25 mm) <----- + Delta Intersection to 0.001 mm (from 0.10 mm) <----- + for increased default accuracy + o Use field's DoesFieldChangesEnergy method to set relevant member variable + +Nov 7th, 2003 J.Apostolakis - field-V05-02-06 +---------------------------- +- G4ChordFinder + Created new class members for parameters used in heuristics: + fFirstFraction for first step + fFractionLast fraction of last step, if redoing + fFractionNextEstimate confidence in step est from chord + fMultipleRadius for small radii of curve + New method to Print Statistics. + Verbosity to enable optional printing of stats in destructor. + +Nov 7th, 2003 J.Apostolakis - field-V05-02-05 +---------------------------- +- G4ChordFinder + o Added simple statistics (with access methods) +- test/NTST + o Added new test, taken from D. Williams' exampleNTST + modified and maintained by J. Apostolakis + +Nov 5th, 2003 J.Apostolakis - field-V05-02-04 +---------------------------- +- G4FieldManager + o Added Get/Set Min/Max imumEpsilonStep + o Added fEpsilonMin fEpsilonMax & default to member variables. + >> Now these can be tailored for different parts of a detector or setup + +- G4Field G4ElectroMagneticField G4MagneticField + o Adding the virtual method DoesFieldChangeEnergy() [to be used later] + o So that G4ElectroMagneticField derives from G4Field + and G4MagneticField derives from G4ElectroMagneticField + +- G4MagErrorStepper and derived classes + (G4ClassicalRK4 G4SimpleRunge G4ExplicitEuler G4ImplicitEuler G4SimpleHeum) + o the constructors take G4EquationOfMotion in place of a G4Mag_EqRhs + as it these applicable to all types of equations + (not just ones for Magnetic field) + +- G4EqMagElectricField + o derives from G4EquationOfMotion + +- G4ChordFinder + o Moved simple constructor to .cc file (together with 'complex' one) + o Changed fDefaultDeltaChord to a constant member variable (from class var.) + +Nov 4th, 2003 G.Cosmo - field-V05-02-03 +---------------------- +Undocumented. + +Nov 4th, 2003 G.Cosmo - field-V05-02-02 +---------------------- +- G4ChordFinder.cc: + o Fixed compilation problem occuring when G4DEBUG_FIELD was set. + +Oct 31st, 2003 G.Cosmo - field-V05-02-01 +----------------------- +- Code cleanup and removal of redundant header includes, replaced + where necessary by forward declarations. + +Oct 24th, 2003 G.Cosmo - field-V05-02-00 +----------------------- +- Migrated to use new G4Exception scheme. +- Updated outputs of unit tests. + Jun 25th, 2003 J.Apostolakis - field-V05-01-06 ----------------------------- -Suppressed printing of statistics (by default) in MagIntegrationDriver. -Fix for unused variables warning in ChordFinder. +- Suppressed printing of statistics (by default) in MagIntegrationDriver. +- Fix for unused variables warning in ChordFinder. Jun 24th, 2003 J.Apostolakis - field-V05-01-05 ----------------------------- -Fix for problems introduced in field-V05-01-03: - -G4ChordFinder - - Fixed unitialised variable for next step (now used for optimisation). - - Protected assignment of fLastStepEstimate_Unconstrained in case of - unitialised value. +- Fix for problems introduced in field-V05-01-03: + o G4ChordFinder: + - Fixed unitialised variable for next step (now used for optimisation). + - Protected assignment of 'fLastStepEstimate_Unconstrained' in case of + unitialised value. Jun 21st, 2003 J.Apostolakis - field-V05-01-04 ----------------------------- -G4FieldManager: - - Revised into 'slightly' abstract class with one (new) virtual method: - ConfigureForTrack( const G4Track *) +- G4FieldManager: + o Revised into 'slightly' abstract class with one (new) virtual method: + ConfigureForTrack( const G4Track *) to enable the user to configure it with different accuracy parameters depending on energy, particle id, volume, or other track state. - - Currently by default, no such configuration action is undertaken. - -Note: - Requestor for such functionality: CMS (P Arce, M Stavrianakou, May/June 2003) - - Its use requires tag transport-V05-01-0? + Currently by default, no such configuration action is undertaken. Jun 21st, 2003 J.Apostolakis - field-V05-01-03 ----------------------------- -G4ChordFinder: - Revised: +- Revised G4ChordFinder: * FindNextChord now provides next Step estimate (for accuracy in Integr.) * AdvanceChordLimited to use - above extra argument to FindNextChord - the next Step argument as initial-step suggested to Accurate Advance - -G4MagIntegratorDriver +- G4MagIntegratorDriver: * Added extra argument to Accurate Advance: - hinitial: suggested initial step size - -Note: - * Purpose: performance boost with small/limited changes, - including minor revisions of interfaces. + hinitial: suggested initial step size +- Note: + * Purpose: performance boost with small/limited changes, + including minor revisions of interfaces. Jun 20th, 2003 J.Apostolakis - field-V05-01-02 ----------------------------- -G4MagIntegratorDriver Quick Advance: -- Took out two unneccessary square roots and two divisions. - -Notes: - 1) Pure magnetic, electric, spin field test are completed. - 2) Purpose: performance boost with small changes. +- G4MagIntegratorDriver Quick Advance: + o Took out two unneccessary square roots and two divisions. +- Notes: + 1) Pure magnetic, electric, spin field test are completed. + 2) Purpose: performance boost with small changes. Jun 20th, 2003 J.Apostolakis - field-V05-01-01 ----------------------------- -G4MagIntegratorDriver -- Corrected neglected conversion to from "G4std" - -tests -- Migrated to - -Note: Although tests / field01,2,3 are migrated to , but not yet checked. +- G4MagIntegratorDriver: + o Corrected neglected conversion to from "G4std". +- Migrated unit tests to . Jun 19th, 2003 J.Apostolakis - field-V05-01-00 ----------------------------- -G4ChordFinder -- Correct simple constructor to initialise several member variables +- G4ChordFinder: + o Corrected simple constructor to initialise several member variables including LastStepEstimate_Unconstrained. - -G4MagIntegratorDriver -- Keep simple statistics on number of steps, total error and step size. -- Took out an unneccessary square root (in loop) - -NOTE: tests field0X are to be migrated. -Purpose: fixes, small performance boost, simple statistics +- G4MagIntegratorDriver: + o Keep simple statistics on number of steps, total error and step size. + o Took out an unneccessary square root (in loop). +- NOTE: tests field0X are to be migrated. + Purpose: fixes, small performance boost, simple statistics. Apr 2nd, 2003 G. Cosmo - field-V05-00-01 --------------------------- diff --git a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh index 3595032a9b..5fec52385f 100644 --- a/source/geometry/magneticfield/include/G4CashKarpRKF45.hh +++ b/source/geometry/magneticfield/include/G4CashKarpRKF45.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CashKarpRKF45.hh,v 1.8 2003/04/02 08:52:32 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CashKarpRKF45.hh,v 1.9 2003/10/31 14:35:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4CashKarpRKF45 @@ -38,6 +38,7 @@ // History: // - Created. J.Apostolakis, V.Grichine - 30.1.97 +// ------------------------------------------------------------------- #ifndef G4CashKARP_RKF45 #define G4CashKARP_RKF45 diff --git a/source/geometry/magneticfield/include/G4ChordFinder.hh b/source/geometry/magneticfield/include/G4ChordFinder.hh index f1b92faab4..eb475063a8 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.hh +++ b/source/geometry/magneticfield/include/G4ChordFinder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ChordFinder.hh,v 1.10 2003/06/20 22:37:11 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ChordFinder.hh,v 1.16 2003/11/13 17:53:47 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ChordFinder @@ -36,15 +36,15 @@ // History: // - 25.02.97 John Apostolakis, design and implementation // - 05.03.97 V. Grichine , makeup to G4 'standard' +// ------------------------------------------------------------------- #ifndef G4CHORDFINDER_HH #define G4CHORDFINDER_HH #include "G4MagIntegratorDriver.hh" #include "G4FieldTrack.hh" -#include "G4MagneticField.hh" - // class G4Mag_EqRhs; - // class G4MagIntegratorStepper; + +class G4MagneticField; class G4ChordFinder { @@ -53,31 +53,33 @@ class G4ChordFinder G4ChordFinder( G4MagInt_Driver* pIntegrationDriver ); G4ChordFinder( G4MagneticField* itsMagField, - G4double stepMinimum = 1.0e-2 * mm, - G4MagIntegratorStepper* pItsStepper = 0 ); + G4double stepMinimum = 1.0e-2 * mm, + G4MagIntegratorStepper* pItsStepper = 0 ); // A constructor that creates defaults for all "children" classes. - - ~G4ChordFinder(); + + virtual ~G4ChordFinder(); G4double AdvanceChordLimited( G4FieldTrack& yCurrent, G4double stepInitial, - G4double epsStep_Relative ); + G4double epsStep_Relative, + const G4ThreeVector latestSafetyOrigin, + G4double lasestSafetyRadius); // Uses ODE solver's driver to find the endpoint that satisfies // the chord criterion: that d_chord < delta_chord // -> Returns Length of Step taken. G4FieldTrack ApproxCurvePointV(const G4FieldTrack& curveAPointVelocity, - const G4FieldTrack& curveBPointVelocity, - const G4ThreeVector& currentEPoint, - G4double epsStep); + const G4FieldTrack& curveBPointVelocity, + const G4ThreeVector& currentEPoint, + G4double epsStep); inline G4double GetDeltaChord() const; inline void SetDeltaChord(G4double newval); inline void SetChargeMomentumMass(G4double pCharge, // in e+ units - G4double pMomentum, - G4double pMass ); + G4double pMomentum, + G4double pMass ); // Function to inform integration driver of charge, speed. inline void SetIntegrationDriver(G4MagInt_Driver* IntegrationDriver); @@ -87,31 +89,66 @@ class G4ChordFinder inline void ResetStepEstimate(); // Clear internal state (last step estimate) + inline G4int GetNoCalls(); + inline G4int GetNoTrials(); // Total number of trials + inline G4int GetNoMaxTrials(); // Maximum # of trials for one call + // Get statistics about number of calls & trials in FindNextChord + + virtual void PrintStatistics(); + // A report with the above -- and possibly other stats + inline G4int SetVerbose( G4int newvalue=1); + // Set verbosity and return old value + protected: // ......................................................... + inline void AccumulateStatistics( G4int noTrials ); + // Accumulate the basic statistics + // - other specialised ones must be kept by derived classes + inline G4bool AcceptableMissDist(G4double dChordStep) const; G4double NewStep( G4double stepTrialOld, - G4double dChordStep, // Current dchord estimate + G4double dChordStep, // Current dchord estimate G4double& stepEstimate_Unconstrained ) ; - G4double FindNextChord( const G4FieldTrack yStart, - G4double stepMax, - G4FieldTrack& yEnd, - G4double& dyErr, // Error of endpoint - G4double epsStep, - G4double* pNextStepForAccuracy= 0); + virtual G4double FindNextChord( const G4FieldTrack yStart, + G4double stepMax, + G4FieldTrack& yEnd, + G4double& dyErr, // Error of endpoint + G4double epsStep, + G4double* pNextStepForAccuracy, // = 0, + const G4ThreeVector latestSafetyOrigin, + G4double latestSafetyRadius + ); void PrintDchordTrial(G4int noTrials, - G4double stepTrial, - G4double oldStepTrial, - G4double dChordStep); + G4double stepTrial, + G4double oldStepTrial, + G4double dChordStep); public: // no description void TestChordPrint( G4int noTrials, - G4int lastStepTrial, - G4double dChordStep, - G4double nextStepTrial ); + G4int lastStepTrial, + G4double dChordStep, + G4double nextStepTrial ); // Printing for monitoring ... + + inline G4double GetFirstFraction(); // Originally 0.999 + inline G4double GetFractionLast(); // Originally 1.000 + inline G4double GetFractionNextEstimate(); // Originally 0.980 + inline G4double GetMultipleRadius(); // No original value + // Parameters for adapting performance ... use with great care + + public: // with description + void SetFractions_Last_Next( G4double fractLast= 0.90, + G4double fractNext= 0.95 ); + // Parameters for performance ... change with great care + + inline void SetFirstFraction(G4double fractFirst); + // Parameter for performance ... change with great care + + protected: + inline G4double GetLastStepEstimateUnc(); + inline void SetLastStepEstimateUnc( G4double stepEst ); private: // ............................................................ @@ -123,17 +160,24 @@ class G4ChordFinder // G4int nOK, nBAD; G4MagInt_Driver* fIntgrDriver; + const G4double fDefaultDeltaChord; // SET in G4ChordFinder.cc = 0.25 mm + G4double fDeltaChord; // Maximum miss distance G4double fLastStepEstimate_Unconstrained; // State information for efficiency - - static const G4double fDefaultDeltaChord; // SET in G4ChordFinder.cc = 3 mm - // Variables used in construction/destruction G4bool fAllocatedStepper; G4EquationOfMotion* fEquation; G4MagIntegratorStepper* fDriversStepper; - G4int fNoTrials, fNoCalls; + + // Parameters + G4double fFirstFraction, fFractionLast, fFractionNextEstimate; + G4double fMultipleRadius; + + // For Statistics + // -- G4int fNoTrials, fNoCalls; + G4int fTotalNoTrials_FNC, fNoCalls_FNC, fmaxTrials_FNC; // fnoTimesMaxTrFNC; + G4int fStatsVerbose; // if > 0, print Statistics in destructor }; // Inline function implementation: diff --git a/source/geometry/magneticfield/include/G4ChordFinder.icc b/source/geometry/magneticfield/include/G4ChordFinder.icc index ba01a2bc6d..3dfa303c1c 100644 --- a/source/geometry/magneticfield/include/G4ChordFinder.icc +++ b/source/geometry/magneticfield/include/G4ChordFinder.icc @@ -21,28 +21,13 @@ // ******************************************************************** // // -// $Id: G4ChordFinder.icc,v 1.5 2003/06/12 13:06:01 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ChordFinder.icc,v 1.11 2003/11/13 18:04:48 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4ChordFinder inline implementations // // -------------------------------------------------------------------- -inline -G4ChordFinder::G4ChordFinder(G4MagInt_Driver* pIntegrationDriver) - : fDeltaChord( fDefaultDeltaChord ), - fAllocatedStepper(false), - fEquation(0), - fDriversStepper(0), - fNoTrials(0), fNoCalls(0) -{ - // Simple constructor which does not create equation, .. - - fIntgrDriver= pIntegrationDriver; - fAllocatedStepper= false; - fLastStepEstimate_Unconstrained = DBL_MAX; // Should move q, p to -} - inline void G4ChordFinder::SetIntegrationDriver(G4MagInt_Driver* IntegrationDriver) { @@ -63,8 +48,8 @@ G4bool G4ChordFinder::AcceptableMissDist(G4double dChordStep) const inline void G4ChordFinder::SetChargeMomentumMass(G4double pCharge, // in e+ units - G4double pMomentum, - G4double pMass) + G4double pMomentum, + G4double pMass) { fIntgrDriver-> SetChargeMomentumMass(pCharge, pMomentum, pMass); } @@ -82,8 +67,55 @@ void G4ChordFinder::SetDeltaChord(G4double newval) } // ...................................................................... +inline +G4double G4ChordFinder::GetLastStepEstimateUnc() +{ + return fLastStepEstimate_Unconstrained; +} +inline +void G4ChordFinder::SetLastStepEstimateUnc( G4double stepEst ) +{ + fLastStepEstimate_Unconstrained = stepEst; +} inline void G4ChordFinder::ResetStepEstimate() { fLastStepEstimate_Unconstrained = DBL_MAX; } + +// ...................................................................... +inline G4int G4ChordFinder::GetNoCalls() { return fNoCalls_FNC; } +inline G4int G4ChordFinder::GetNoTrials() { return fTotalNoTrials_FNC; } +inline G4int G4ChordFinder::GetNoMaxTrials() { return fmaxTrials_FNC; } + +inline G4double G4ChordFinder::GetFirstFraction() { return fFirstFraction; } +inline G4double G4ChordFinder::GetFractionLast() { return fFractionLast; } +inline G4double G4ChordFinder::GetFractionNextEstimate() +{ return fFractionNextEstimate; } +inline G4double G4ChordFinder::GetMultipleRadius() +{ return fMultipleRadius; } + +inline void G4ChordFinder::SetFirstFraction(G4double val){ fFirstFraction=val; } + +inline G4int G4ChordFinder::SetVerbose( G4int newvalue ) +{ + G4int oldval= fStatsVerbose; + fStatsVerbose = newvalue; + return oldval; +} + +inline +void G4ChordFinder::AccumulateStatistics( G4int noTrials ) +{ + // Statistics + fTotalNoTrials_FNC += noTrials; + fNoCalls_FNC++; + // if( noTrials >= fmaxTrials_FNC ){ + if (noTrials > fmaxTrials_FNC ) { + fmaxTrials_FNC=noTrials; + // fnoTimesMaxTrFNC=0; + } else { + // fnoTimesMaxTrFNC++; + } + // } +} diff --git a/source/geometry/solids/STEPinterface/include/G4FaceSurfaceCreator.hh b/source/geometry/magneticfield/include/G4ChordFinderSaf.hh similarity index 59% rename from source/geometry/solids/STEPinterface/include/G4FaceSurfaceCreator.hh rename to source/geometry/magneticfield/include/G4ChordFinderSaf.hh index 503081a9c2..cda2479e43 100644 --- a/source/geometry/solids/STEPinterface/include/G4FaceSurfaceCreator.hh +++ b/source/geometry/magneticfield/include/G4ChordFinderSaf.hh @@ -20,49 +20,49 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4ChordFinderSaf.hh,v 1.2 2003/12/09 15:35:07 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4FaceSurfaceCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4FaceSurfaceCreator +// +// class G4ChordFinderRad // // Class description: // -// +// A class that provides the next chord, utilising an estimate of +// the radius of curvature. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// // History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4FACESURFACECREATOR_HH -#define G4FACESURFACECREATOR_HH +// - 07.11.03 John Apostolakis, design and implementation +// ------------------------------------------------------------------- -#include "G4GeometryCreator.hh" +#include "G4ChordFinder.hh" -class G4FaceSurfaceCreator: public G4GeometryCreator +class G4ChordFinderSaf : public G4ChordFinder { - public: - // Constructor & destructor - - G4FaceSurfaceCreator(); - ~G4FaceSurfaceCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Face_Surface"; } - static G4FaceSurfaceCreator GetInstance(); +public: + G4ChordFinderSaf(G4MagInt_Driver* pIntegrationDriver); - // Members + G4ChordFinderSaf( G4MagneticField* theMagField, + G4double stepMinimum, + G4MagIntegratorStepper* pItsStepper ); + + ~G4ChordFinderSaf(); + + G4double FindNextChord( const G4FieldTrack yStart, + G4double stepMax, + G4FieldTrack& yEnd, // Endpoint + G4double& dyErrPos, // Error of endpoint + G4double epsStep, + G4double* pStepForAccuracy, + const G4ThreeVector latestSafetyOrigin, + G4double latestSafetyRadius + ); + + void PrintStatistics(); private: + // G4int fNoInitialRadBig, fNoInitialRadSmall; + // G4int fNoTrialsRadBig, fNoTrialsRadSmall; - static G4FaceSurfaceCreator csc; }; - -#endif diff --git a/source/geometry/magneticfield/include/G4ClassicalRK4.hh b/source/geometry/magneticfield/include/G4ClassicalRK4.hh index 9ce038fd94..6d6e33f139 100644 --- a/source/geometry/magneticfield/include/G4ClassicalRK4.hh +++ b/source/geometry/magneticfield/include/G4ClassicalRK4.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClassicalRK4.hh,v 1.7 2003/04/02 08:52:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ClassicalRK4.hh,v 1.9 2003/11/05 16:30:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ClassicalRK4 @@ -35,15 +35,15 @@ // History: // - Created: J.Apostolakis, V.Grichine - 30.1.97 // - Moved into G4MagErrorStepper: W.Wander - 12/09/97 +// ------------------------------------------------------------------- #include "G4MagErrorStepper.hh" -#include "G4ThreeVector.hh" class G4ClassicalRK4 : public G4MagErrorStepper { public: // with description - G4ClassicalRK4(G4Mag_EqRhs *EqRhs, G4int numberOfVariables = 6) ; + G4ClassicalRK4(G4EquationOfMotion *EquationMotion, G4int numberOfVariables = 6) ; ~G4ClassicalRK4() ; diff --git a/source/geometry/magneticfield/include/G4DELPHIMagField.hh b/source/geometry/magneticfield/include/G4DELPHIMagField.hh index de3326c9a3..95f16eec1f 100644 --- a/source/geometry/magneticfield/include/G4DELPHIMagField.hh +++ b/source/geometry/magneticfield/include/G4DELPHIMagField.hh @@ -20,38 +20,40 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: G4DELPHIMagField.hh,v 1.3 2003/10/31 14:35:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// class G4DELPHIMagField +// +// Class description: +// // Class describing the DELPHI magnetic field. This axial symmetry // field mainly directed along Z axis. The function MagneticField(yTrack,B) // calculates the magnetic induction vector B in point corresponding to // yTrack according to parametrization given in: -// P.Billoir, Precise tracking in a quasi-honogeneous magnetic field, DELPHI -// 87-6 PROG 65, 3 February 1987 -// -// 3.2.97 V. Grichine +// P.Billoir, Precise tracking in a quasi-honogeneous magnetic field, +// DELPHI 87-6 PROG 65, 1987. + +// History: +// 3.2.97 - V. Grichine, created. +// ------------------------------------------------------------------- #ifndef G4DELPHIMAGFIELD_HH #define G4DELPHIMAGFIELD_HH -#include "globals.hh" #include "G4MagneticField.hh" -#include "G4Mag_EqRhs.hh" class G4DELPHIMagField : public G4MagneticField { -public: - - G4DELPHIMagField() ; - - ~G4DELPHIMagField() ; - - void GetFieldValue(const G4double yTrack[] , - G4double B[] ) const ; - + public: // with description + + G4DELPHIMagField(); + ~G4DELPHIMagField(); -protected: - -private: - -} ; + void GetFieldValue(const G4double yTrack[], + G4double B[] ) const; +}; #endif diff --git a/source/geometry/solids/STEPinterface/include/G4VectorCreator.hh b/source/geometry/magneticfield/include/G4ElectricField.hh similarity index 61% rename from source/geometry/solids/STEPinterface/include/G4VectorCreator.hh rename to source/geometry/magneticfield/include/G4ElectricField.hh index 320dfc7b99..cf833d2b10 100644 --- a/source/geometry/solids/STEPinterface/include/G4VectorCreator.hh +++ b/source/geometry/magneticfield/include/G4ElectricField.hh @@ -21,48 +21,42 @@ // ******************************************************************** // // -// $Id: G4VectorCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ElectricField.hh,v 1.1 2003/11/05 10:35:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// ---------------------------------------------------------------------- -// Class G4VectorCreator +// +// class G4ElectricField // // Class description: // -// +// Electric Field abstract class, implements inquiry function interface. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// // History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4VECTORCREATOR_HH -#define G4VECTORCREATOR_HH +// - Created. JA, November 4th, 2003. -#include "G4GeometryCreator.hh" +#ifndef G4ELECTRIC_FIELD_DEF +#define G4ELECTRIC_FIELD_DEF -class G4VectorCreator: private G4GeometryCreator +#include "G4Types.hh" +#include "G4ElectroMagneticField.hh" + +class G4ElectricField : public G4ElectroMagneticField { - public: + public: // with description - // Constructor & destructor + G4ElectricField(); + virtual ~G4ElectricField(); + // Constructor and destructor. No actions. - G4VectorCreator(); - ~G4VectorCreator(); + G4ElectricField(const G4ElectricField &r); + G4ElectricField& operator = (const G4ElectricField &p); + // Copy constructor & assignment operator. - // Member functions + G4bool DoesFieldChangeEnergy() const { return true; } + // Since an electric field can change track energy - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Vector"; } - static G4VectorCreator GetInstance(); - - // Members - - private: - - static G4VectorCreator csc; + virtual void GetFieldValue( const G4double Point[4], + G4double *Bfield ) const = 0; }; -#endif +#endif /* G4ELECTRIC_FIELD_DEF */ diff --git a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh index 6e90955f92..72117a2298 100644 --- a/source/geometry/magneticfield/include/G4ElectroMagneticField.hh +++ b/source/geometry/magneticfield/include/G4ElectroMagneticField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ElectroMagneticField.hh,v 1.7 2003/04/02 08:49:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ElectroMagneticField.hh,v 1.9 2003/11/05 10:37:06 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ElectroMagneticField @@ -35,13 +35,14 @@ // History: // - Created: J.Apostolakis, November 12th, 1998 +// ------------------------------------------------------------------- #ifndef G4ELECTROMAGNETIC_FIELD_DEF #define G4ELECTROMAGNETIC_FIELD_DEF -#include "G4MagneticField.hh" +#include "G4Field.hh" -class G4ElectroMagneticField : public G4MagneticField +class G4ElectroMagneticField : public G4Field { public: // with description @@ -54,6 +55,12 @@ class G4ElectroMagneticField : public G4MagneticField virtual void GetFieldValue(const G4double Point[4], G4double *Bfield ) const = 0; + + virtual G4bool DoesFieldChangeEnergy() const = 0; + + // For field with an electric component this should be true + // For pure magnetic field this should be false + // Alternative: default safe implementation { return true; } }; #endif /* G4ELECTROMAGNETIC_FIELD_DEF */ diff --git a/source/geometry/magneticfield/include/G4EqMagElectricField.hh b/source/geometry/magneticfield/include/G4EqMagElectricField.hh index 7472dedb14..4b39d56bda 100644 --- a/source/geometry/magneticfield/include/G4EqMagElectricField.hh +++ b/source/geometry/magneticfield/include/G4EqMagElectricField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EqMagElectricField.hh,v 1.6 2001/07/11 09:59:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EqMagElectricField.hh,v 1.8 2003/11/05 12:46:39 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4EqMagElectricField @@ -34,29 +34,30 @@ // History: // - Created. V.Grichine, 10.11.98 +// ------------------------------------------------------------------- #ifndef G4EQMAGELECTRICFIELD_hh #define G4EQMAGELECTRICFIELD_hh -#include "G4Mag_EqRhs.hh" +#include "G4EquationOfMotion.hh" #include "G4ElectroMagneticField.hh" -class G4EqMagElectricField : public G4Mag_EqRhs +class G4EqMagElectricField : public G4EquationOfMotion { public: // with description G4EqMagElectricField(G4ElectroMagneticField *emField ) - : G4Mag_EqRhs( emField ) {;} + : G4EquationOfMotion( emField ) {;} ~G4EqMagElectricField() {;} void SetChargeMomentumMass(G4double particleCharge, // in e+ units - G4double MomentumXc, - G4double mass); + G4double MomentumXc, + G4double mass); void EvaluateRhsGivenB(const G4double y[], - const G4double Field[], - G4double dydx[] ) const; + const G4double Field[], + G4double dydx[] ) const; // Given the value of the electromagnetic field, this function // calculates the value of the derivative dydx. diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.hh b/source/geometry/magneticfield/include/G4EquationOfMotion.hh index db61ec217e..20afc056c9 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.hh +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EquationOfMotion.hh,v 1.7 2002/06/11 08:38:56 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EquationOfMotion.hh,v 1.9 2003/11/05 12:48:45 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4EquationOfMotion @@ -34,12 +34,13 @@ // History: // - Created. J.Apostolakis +// ------------------------------------------------------------------- #ifndef G4_EquationOfMotion_DEF #define G4_EquationOfMotion_DEF -#include "globals.hh" -#include "G4Field.hh" +#include "G4Types.hh" // "globals.hh" +#include "G4Field.hh" // required in inline method implementations class G4EquationOfMotion { @@ -50,8 +51,8 @@ class G4EquationOfMotion // Constructor and virtual destructor. No operations. virtual void EvaluateRhsGivenB( const G4double y[], - const G4double B[3], - G4double dydx[] ) const = 0; + const G4double B[3], + G4double dydx[] ) const = 0; // Given the value of the field "B", this function // calculates the value of the derivative dydx. // -------------------------------------------------------- @@ -66,20 +67,20 @@ class G4EquationOfMotion inline void RightHandSide( const G4double y[], - G4double dydx[] ) const; + G4double dydx[] ) const; // This calculates the value of the derivative dydx at y. // It is the usual enquiry function. // --------------------------- // (It is not virtual, but calls the virtual function above.) void EvaluateRhsReturnB( const G4double y[], - G4double dydx[], - G4double Field[] ) const; + G4double dydx[], + G4double Field[] ) const; // Same as RHS above, but also returns the value of B. // Should be made the new default ? after putting dydx & B in a class. void GetFieldValue( const G4double Point[4], - G4double Field[] ) const; + G4double Field[] ) const; // Obtain only the field - the stepper assumes it is pure Magnetic. // Not protected, because G4RKG3_Stepper uses it directly. diff --git a/source/geometry/magneticfield/include/G4EquationOfMotion.icc b/source/geometry/magneticfield/include/G4EquationOfMotion.icc index 69e6b95403..0752990b91 100644 --- a/source/geometry/magneticfield/include/G4EquationOfMotion.icc +++ b/source/geometry/magneticfield/include/G4EquationOfMotion.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4EquationOfMotion.icc,v 1.7 2002/06/11 08:39:14 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EquationOfMotion.icc,v 1.8 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Inline implementation // +// ------------------------------------------------------------------- inline G4EquationOfMotion::G4EquationOfMotion(G4Field* pField) diff --git a/source/geometry/magneticfield/include/G4ExplicitEuler.hh b/source/geometry/magneticfield/include/G4ExplicitEuler.hh index dcebf44c5b..ef8e9a2258 100644 --- a/source/geometry/magneticfield/include/G4ExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ExplicitEuler.hh @@ -21,20 +21,22 @@ // ******************************************************************** // // -// $Id: G4ExplicitEuler.hh,v 1.6 2002/11/29 13:47:49 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ExplicitEuler.hh,v 1.8 2003/11/05 16:30:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ExplicitEuler // // Class description: // -// Explicit Euler: x_1 = x_0 + h * dx_0. +// Explicit Euler stepper for magnetic field: x_1 = x_0 + h * dx_0. // The most simple approach for solving linear differential equations. // Take the current derivative and add it to the current position. // History: // - Created. W.Wander , 12/09/97 +// - Adjusted for new Equation classes, J.Apostolakis 5/11/03 +// ------------------------------------------------------------------- #ifndef G4EXPLICITEULER_HH #define G4EXPLICITEULER_HH @@ -46,13 +48,13 @@ class G4ExplicitEuler : public G4MagErrorStepper public: // with description - G4ExplicitEuler(G4Mag_EqRhs *EqRhs, G4int numberOfVariables = 6) ; + G4ExplicitEuler(G4EquationOfMotion* EqRhs, G4int numberOfVariables = 6) ; ~G4ExplicitEuler(); void DumbStepper( const G4double y[], - const G4double dydx[], - G4double h, - G4double yout[]); + const G4double dydx[], + G4double h, + G4double yout[]); public: // without description diff --git a/source/geometry/magneticfield/include/G4Field.hh b/source/geometry/magneticfield/include/G4Field.hh index ba910f2abd..8250eaf495 100644 --- a/source/geometry/magneticfield/include/G4Field.hh +++ b/source/geometry/magneticfield/include/G4Field.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Field.hh,v 1.6 2001/11/08 17:31:07 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Field.hh,v 1.8 2003/11/05 10:35:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Field @@ -35,30 +35,37 @@ // History: // - Created: John Apostolakis, 10.03.1997 +// ------------------------------------------------------------------- #ifndef G4FIELD_HH #define G4FIELD_HH +#include "G4Types.hh" + class G4Field { public: // with description virtual void GetFieldValue( const double Point[4], - double *Bfield ) const = 0; + double *Bfield ) const = 0; G4Field(){;} virtual ~G4Field(){;} + inline G4Field& operator = (const G4Field &p); // A field signature function that can be used to insure // that the Equation of motion object and the G4Field object // have the same "field signature"? + + virtual G4bool DoesFieldChangeEnergy() const= 0 ; + // For electric field this should be true + // For pure magnetic field this should be false + }; +inline G4Field& G4Field::operator = (const G4Field &p) +{ + if (&p != this) { *this = p; } + return *this; +} #endif /* G4FIELD_HH */ - - - - - - - diff --git a/source/geometry/magneticfield/include/G4FieldManager.hh b/source/geometry/magneticfield/include/G4FieldManager.hh index 0eadbd1cdb..e1319fcfe1 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.hh +++ b/source/geometry/magneticfield/include/G4FieldManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FieldManager.hh,v 1.9 2003/06/20 22:59:59 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FieldManager.hh,v 1.13 2003/11/08 03:55:16 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4FieldManager @@ -57,31 +57,32 @@ // History: // - 10.03.97 John Apostolakis, design and implementation. +// ------------------------------------------------------------------- #ifndef G4FIELDMANAGER_HH #define G4FIELDMANAGER_HH 1 -#include "G4Field.hh" -#include "G4MagneticField.hh" -#include "G4ChordFinder.hh" +#include "globals.hh" -class G4Track; // Forward reference for parameter configuration +class G4Field; +class G4MagneticField; +class G4ChordFinder; +class G4Track; // Forward reference for parameter configuration class G4FieldManager { public: // with description - - G4FieldManager(); // Useless unless SetField method is added - G4FieldManager(G4Field *detectorField, - G4ChordFinder *pChordFinder, - G4bool fieldChangesEnergy); - // New general constructor for any field + G4FieldManager(G4Field *detectorField=0, + G4ChordFinder *pChordFinder=0, + G4bool b=true ); // fieldChangesEnergy is taken from field + // General constructor for any field. + // -> Must be set with field and chordfinder for use. G4FieldManager(G4MagneticField *detectorMagneticField); // Creates ChordFinder // - assumes pure magnetic field (so Energy constant) virtual ~G4FieldManager(); - inline G4bool SetDetectorField(G4Field *detectorField); + G4bool SetDetectorField(G4Field *detectorField); inline const G4Field* GetDetectorField() const; inline G4bool DoesFieldExist() const; // Set, get and check the field object @@ -95,23 +96,15 @@ class G4FieldManager virtual void ConfigureForTrack( const G4Track * ); // Setup the choice of the configurable parameters // relying on the current track's energy, particle identity, .. - // - // Note: In addition to the values of member variables, - // a user can change the ChordFinder, the field, ... + // Note: In addition to the values of member variables, + // a user can use this to change the ChordFinder, the field, ... - // Alternative approach - // virtual G4FieldTrack* VariantConfiguration( const G4Track *) - // Return a variant field manager, only if different, - // for tracks with particular criteria (E, pT, id, ...) - - public: // without description - - // virtual ? - inline G4double GetDeltaIntersection() const; + public: // with description + + inline G4double GetDeltaIntersection() const; // virtual ? // Accuracy for boundary intersection. - // virtual ? - inline G4double GetDeltaOneStep() const; + inline G4double GetDeltaOneStep() const; // virtual ? // Accuracy for one tracking/physics step. inline void SetAccuraciesWithDeltaOneStep(G4double valDeltaOneStep); @@ -119,8 +112,18 @@ class G4FieldManager // of volume Intersection and Integration (in One Step) inline void SetDeltaOneStep(G4double valueD1step); + // Set accuracy for integration of one step. (only) inline void SetDeltaIntersection(G4double valueDintersection); + // Set accuracy of intersection of a volume. (only) + inline G4double GetMinimumEpsilonStep() const; + inline void SetMinimumEpsilonStep( G4double newEpsMin ); + // Minimum for Relative accuracy of a Step + + inline G4double GetMaximumEpsilonStep() const; + inline void SetMaximumEpsilonStep( G4double newEpsMax ); + // Maximum for Relative accuracy of a Step + inline G4bool DoesFieldChangeEnergy() const; inline void SetFieldChangesEnergy(G4bool value); // For electric field this should be true @@ -148,6 +151,14 @@ class G4FieldManager G4double fDefault_Delta_One_Step_Value; // = 0.25 * mm; G4double fDefault_Delta_Intersection_Val; // = 0.1 * mm; + + // Values for the small possible relative accuracy of a step + // (corresponding to the greatest possible integration accuracy) + + G4double fEpsilonMinDefault; // Can be 1.0e-5 to 1.0e-10 ... + G4double fEpsilonMaxDefault; // Can be 1.0e-3 to 1.0e-8 ... + G4double fEpsilonMin; + G4double fEpsilonMax; }; // Our current design envisions that one Field manager is valid for a region of the detector. diff --git a/source/geometry/magneticfield/include/G4FieldManager.icc b/source/geometry/magneticfield/include/G4FieldManager.icc index 8611d98370..fd943e49ad 100644 --- a/source/geometry/magneticfield/include/G4FieldManager.icc +++ b/source/geometry/magneticfield/include/G4FieldManager.icc @@ -21,19 +21,13 @@ // ******************************************************************** // // -// $Id: G4FieldManager.icc,v 1.6 2003/06/20 23:01:23 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FieldManager.icc,v 1.9 2003/11/08 03:39:39 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4FieldManager inline implementation // - -inline -G4bool G4FieldManager::SetDetectorField(G4Field *detectorField) -{ - fDetectorField= detectorField; - return 0; -} +// ------------------------------------------------------------------- inline const G4Field* G4FieldManager::GetDetectorField() const @@ -96,3 +90,39 @@ inline G4bool G4FieldManager::DoesFieldChangeEnergy() const inline void G4FieldManager::SetFieldChangesEnergy(G4bool value) { fFieldChangesEnergy = value; } + + + +// Minimum for Relative accuracy of any Step +inline +G4double G4FieldManager::GetMinimumEpsilonStep() const +{ + return fEpsilonMin; +} + +inline +void G4FieldManager::SetMinimumEpsilonStep( G4double newEpsMin ) +{ + if( (newEpsMin > 0.0) && (fabs(1.0+newEpsMin) > 1.0) ) + { + fEpsilonMin = newEpsMin; + } +} + +// Maximum for Relative accuracy of any Step +inline +G4double G4FieldManager::GetMaximumEpsilonStep() const +{ + return fEpsilonMax; +} + +inline +void G4FieldManager::SetMaximumEpsilonStep( G4double newEpsMax ) +{ + if( (newEpsMax > 0.0) + && (newEpsMax >= fEpsilonMin ) + && (fabs(1.0+newEpsMax)>1.0) ) + { + fEpsilonMax = newEpsMax; + } +} diff --git a/source/geometry/magneticfield/include/G4FieldTrack.hh b/source/geometry/magneticfield/include/G4FieldTrack.hh index ab9020ba34..710ac9abc3 100644 --- a/source/geometry/magneticfield/include/G4FieldTrack.hh +++ b/source/geometry/magneticfield/include/G4FieldTrack.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FieldTrack.hh,v 1.9 2003/06/16 16:51:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FieldTrack.hh,v 1.10 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4FieldTrack @@ -40,6 +40,7 @@ // - Modified: Oct 24, 1996 JA: Added dist_on_curve, deleted constructor // Nov 5, 1998 JA: Added energy, momentum, TOF, spin & // several constructor, access, set methods +// ------------------------------------------------------------------- #ifndef G4FieldTrack_HH #define G4FieldTrack_HH @@ -51,14 +52,14 @@ class G4FieldTrack public: // with description G4FieldTrack( const G4ThreeVector& pPosition, - const G4ThreeVector& pMomentumDirection, - G4double curve_length, - G4double kineticEnergy, - const G4double restMass_c2, - G4double velocity, - G4double LaboratoryTimeOfFlight=0.0, - G4double ProperTimeOfFlight=0.0, - const G4ThreeVector* pSpin=0); + const G4ThreeVector& pMomentumDirection, + G4double curve_length, + G4double kineticEnergy, + const G4double restMass_c2, + G4double velocity, + G4double LaboratoryTimeOfFlight=0.0, + G4double ProperTimeOfFlight=0.0, + const G4ThreeVector* pSpin=0); G4FieldTrack( const G4FieldTrack& pFieldTrack ); @@ -100,8 +101,8 @@ class G4FieldTrack public: // without description inline G4FieldTrack& SetCurvePnt(const G4ThreeVector& pPosition, - const G4ThreeVector& pMomentum, - G4double s_curve ); + const G4ThreeVector& pMomentum, + G4double s_curve ); // Old multi-set method G4double GetKineticEnergy() const; // Check it --> FIXME diff --git a/source/geometry/magneticfield/include/G4FieldTrack.icc b/source/geometry/magneticfield/include/G4FieldTrack.icc index da513a2564..ad8b0c082c 100644 --- a/source/geometry/magneticfield/include/G4FieldTrack.icc +++ b/source/geometry/magneticfield/include/G4FieldTrack.icc @@ -21,20 +21,21 @@ // ******************************************************************** // // -// $Id: G4FieldTrack.icc,v 1.11 2003/04/02 14:22:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FieldTrack.icc,v 1.12 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// ------------------------------------------------------------------- inline G4FieldTrack::G4FieldTrack( const G4ThreeVector& pPosition, - const G4ThreeVector& pMomentumDirection, - G4double curve_length, - G4double kineticEnergy, - const G4double restMass_c2, - G4double, // velocity - G4double pLaboratoryTimeOfFlight, - G4double pProperTimeOfFlight, - const G4ThreeVector* pSpin) + const G4ThreeVector& pMomentumDirection, + G4double curve_length, + G4double kineticEnergy, + const G4double restMass_c2, + G4double, // velocity + G4double pLaboratoryTimeOfFlight, + G4double pProperTimeOfFlight, + const G4ThreeVector* pSpin) : fKineticEnergy(kineticEnergy), fRestMass_c2(restMass_c2), fLabTimeOfFlight(pLaboratoryTimeOfFlight), @@ -70,8 +71,8 @@ G4FieldTrack::G4FieldTrack( const G4FieldTrack& rStVec ) SixVector[5]= rStVec.SixVector[5]; // Old code: // SetCurvePnt(rStVec.GetPosition(), - // rStVec.GetMomentumDir(), - // rStVec.GetCurveLength() ); // Slow, so changed it + // rStVec.GetMomentumDir(), + // rStVec.GetCurveLength() ); // Slow, so changed it } inline @@ -81,8 +82,8 @@ G4FieldTrack::~G4FieldTrack() inline G4FieldTrack& G4FieldTrack::SetCurvePnt(const G4ThreeVector& pPosition, - const G4ThreeVector& pMomentum, // Can be Unit - G4double s_curve ) + const G4ThreeVector& pMomentum, // Can be Unit + G4double s_curve ) { SixVector[0] = pPosition.x(); SixVector[1] = pPosition.y(); @@ -296,8 +297,8 @@ G4FieldTrack & G4FieldTrack::operator = ( const G4FieldTrack& rStVec ) if (&rStVec == this) return *this; // SetCurvePnt(rStVec.GetPosition(), - // rStVec.GetMomentumDir(), - // rStVec.GetCurveLength() ); + // rStVec.GetMomentumDir(), + // rStVec.GetCurveLength() ); SixVector[0]= rStVec.SixVector[0]; SixVector[1]= rStVec.SixVector[1]; SixVector[2]= rStVec.SixVector[2]; diff --git a/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh b/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh index dee27c6803..464106c0a8 100644 --- a/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh +++ b/source/geometry/magneticfield/include/G4HarmonicPolMagField.hh @@ -20,37 +20,39 @@ // * statement, and all its terms. * // ******************************************************************** // -// Class describing magnetic field parametrised by harmonic polynom up to -// 3rd order. The function MagneticField(yTrack,B) calculates the magnetic field -// induction vector B for the trajectory point yTrack according to formula given -// in: M.Metcalf, Analysis of the SFM Field, OM Development Note AP-10 (revised) -// 09.01.1974 // -// 3.2.97 V.Grichine +// $Id: G4HarmonicPolMagField.hh,v 1.3 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4HarmonicPolMagField +// +// Class description: +// +// Class describing magnetic field parametrised by harmonic polynom up to +// 3rd order. The function MagneticField(yTrack,B) calculates the magnetic +// field induction vector B for the trajectory point yTrack according to +// formula given in: +// M.Metcalf, Analysis of the SFM Field, +// OM Development Note AP-10 (revised), 1974 + +// History: +// 3.2.97 - V.Grichine, created. +// -------------------------------------------------------------------- #ifndef G4HARMONICPOLMAGFIELD_HH #define G4HARMONICPOLMAGFIELD_HH -#include "globals.hh" #include "G4MagneticField.hh" -#include "G4Mag_EqRhs.hh" class G4HarmonicPolMagField : public G4MagneticField { -public: - - G4HarmonicPolMagField() ; - - ~G4HarmonicPolMagField() ; - - void GetFieldValue(const G4double yTrack[] , - G4double B[] ) const ; - - -protected: - -private: - -} ; + public: // with description + + G4HarmonicPolMagField(); + ~G4HarmonicPolMagField(); + + void GetFieldValue(const G4double yTrack[] , + G4double B[] ) const ; +}; #endif diff --git a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh index f8a13862c1..40b7bcb13e 100644 --- a/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4HelixExplicitEuler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HelixExplicitEuler.hh,v 1.6 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HelixExplicitEuler.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4HelixExplicitEuler @@ -36,6 +36,7 @@ // History: // - Created. W.Wander , 12/09/97 +// ------------------------------------------------------------------- #ifndef G4HELIXEXPLICITEULER_HH #define G4HELIXEXPLICITEULER_HH @@ -44,18 +45,17 @@ class G4HelixExplicitEuler : public G4MagHelicalStepper { - - public: + public: // with description G4HelixExplicitEuler(G4Mag_EqRhs *EqRhs) - : G4MagHelicalStepper(EqRhs) {;} + : G4MagHelicalStepper(EqRhs) {} - ~G4HelixExplicitEuler() {;} + ~G4HelixExplicitEuler() {} void DumbStepper( const G4double y[], - G4ThreeVector Bfld, - G4double h, - G4double yout[]); + G4ThreeVector Bfld, + G4double h, + G4double yout[]); public: // without description diff --git a/source/geometry/magneticfield/include/G4HelixHeum.hh b/source/geometry/magneticfield/include/G4HelixHeum.hh index e157e8a746..f565e0f2fb 100644 --- a/source/geometry/magneticfield/include/G4HelixHeum.hh +++ b/source/geometry/magneticfield/include/G4HelixHeum.hh @@ -21,21 +21,23 @@ // ******************************************************************** // // -// $Id: G4HelixHeum.hh,v 1.6 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HelixHeum.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4HelixHeum // // Class description: // -// Simple Heum: +// Simple Heum stepper for magnetic field: // x_1 = x_0 + // h * 1/4 * dx(t0,x0) + // 3/4 * dx(t0+2/3*h, x0+2/3*h*(dx(t0+h/3,x0+h/3*dx(t0,x0)))) +// Third order solver. // History: // - Created. W.Wander , 03/11/98 +// ------------------------------------------------------------------- #ifndef G4HELIXHEUM_HH #define G4HELIXHEUM_HH @@ -48,14 +50,14 @@ class G4HelixHeum : public G4MagHelicalStepper public: // with description G4HelixHeum(G4Mag_EqRhs *EqRhs) - : G4MagHelicalStepper(EqRhs) {;} + : G4MagHelicalStepper(EqRhs) {} - ~G4HelixHeum() {;} + ~G4HelixHeum() {} void DumbStepper( const G4double y[], - G4ThreeVector Bfld, - G4double h, - G4double yout[]); + G4ThreeVector Bfld, + G4double h, + G4double yout[]); public: // without description diff --git a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh index 6592782229..2334caac10 100644 --- a/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4HelixImplicitEuler.hh @@ -21,20 +21,25 @@ // ******************************************************************** // // -// $Id: G4HelixImplicitEuler.hh,v 1.6 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HelixImplicitEuler.hh,v 1.7 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4HelixImplicitEuler // // Class description: // -// Helix Implicit Euler: +// Helix Implicit Euler stepper for magnetic field: // x_1 = x_0 + 1/2 * ( helix(h,t_0,x_0) // + helix(h,t_0+h,x_0+helix(h,t0,x0) ) ) +// Second order solver. +// Take the current derivative and add it to the current position. +// Take the output and its derivative. Add the mean of both derivatives +// to form the final output. // History: // - Created. W.Wander , 03/11/98 +// ------------------------------------------------------------------- #ifndef G4HELIXIMPLICITEULER_HH #define G4HELIXIMPLICITEULER_HH @@ -47,14 +52,14 @@ class G4HelixImplicitEuler : public G4MagHelicalStepper public: // with description G4HelixImplicitEuler(G4Mag_EqRhs *EqRhs) - : G4MagHelicalStepper(EqRhs) {;} + : G4MagHelicalStepper(EqRhs) {} - ~G4HelixImplicitEuler() {;} + ~G4HelixImplicitEuler() {} void DumbStepper( const G4double y[], - G4ThreeVector Bfld, - G4double h, - G4double yout[]); + G4ThreeVector Bfld, + G4double h, + G4double yout[]); public: // without description diff --git a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh index 1ef326ba64..ab81aadc8d 100644 --- a/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh +++ b/source/geometry/magneticfield/include/G4HelixSimpleRunge.hh @@ -21,11 +21,23 @@ // ******************************************************************** // // -// $Id: G4HelixSimpleRunge.hh,v 1.5 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HelixSimpleRunge.hh,v 1.6 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // +// class G4HelixSimpleRunge +// +// Class description: +// +// Helix Simple Runge-Kutta stepper for magnetic field: +// x_1 = x_0 + h * ( dx( t_0+h/2, x_0 + h/2 * dx( t_0, x_0) ) ) +// +// Second order solver. +// Take the derivative at a position to be assumed at the middle of the +// Step and add it to the current position. + // W. Wander 03/12/98 +// ------------------------------------------------------------------- #ifndef G4HELIXSIMPLERUNGE_HH #define G4HELIXSIMPLERUNGE_HH @@ -33,20 +45,21 @@ class G4HelixSimpleRunge : public G4MagHelicalStepper { + public: // with description - public: + G4HelixSimpleRunge(G4Mag_EqRhs *EqRhs) + : G4MagHelicalStepper(EqRhs){} - G4HelixSimpleRunge(G4Mag_EqRhs *EqRhs) - : G4MagHelicalStepper(EqRhs){} - - ~G4HelixSimpleRunge(){} + ~G4HelixSimpleRunge(){} - void DumbStepper( const G4double y[], - G4ThreeVector Bfld, - G4double h, - G4double yout[]); + void DumbStepper( const G4double y[], + G4ThreeVector Bfld, + G4double h, + G4double yout[]); + + public: // without description - G4int IntegratorOrder() const { return 2; } + G4int IntegratorOrder() const { return 2; } }; #endif /* G4HELIXSIMPLERUNGE_HH */ diff --git a/source/geometry/magneticfield/include/G4ImplicitEuler.hh b/source/geometry/magneticfield/include/G4ImplicitEuler.hh index b8984bcfc6..5653900876 100644 --- a/source/geometry/magneticfield/include/G4ImplicitEuler.hh +++ b/source/geometry/magneticfield/include/G4ImplicitEuler.hh @@ -21,35 +21,52 @@ // ******************************************************************** // // -// $Id: G4ImplicitEuler.hh,v 1.5 2002/11/29 13:48:47 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ImplicitEuler.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // +// class G4ImplicitEuler +// +// Class description: +// +// Implicit Euler stepper for magnetic field: +// x_1 = x_0 + h/2 * ( dx(t_0,x_0) + dx(t_0+h,x_0+h*dx(t_0,x_0) ) ) +// +// Second order solver. +// Takes the current derivative and add it to the current position. +// Takes the output and its derivative. Adds the mean of both +// derivatives to form the final output. + // W. Wander 12/09/97 +// ------------------------------------------------------------------- #ifndef G4IMPLICITEULER_HH #define G4IMPLICITEULER_HH + #include "G4MagErrorStepper.hh" class G4ImplicitEuler : public G4MagErrorStepper { - public: - G4ImplicitEuler(G4Mag_EqRhs *EqRhs, G4int numberOfVariables = 6) ; + public: // with description + + G4ImplicitEuler(G4EquationOfMotion *EqRhs, G4int numberOfVariables = 6) ; ~G4ImplicitEuler(); void DumbStepper( const G4double y[] , - const G4double dydx[] , - G4double h , - G4double yout[] ) ; + const G4double dydx[] , + G4double h , + G4double yout[] ) ; + + public: // without description G4int IntegratorOrder() const { return 2 ; } ; -private: // No description + private: G4double* dydxTemp; G4double* yTemp; - // Temporaries, created to avoid new/delete on every call + // Temporaries, created to avoid new/delete on every call }; #endif /* G4IMPLICITEULER_HH */ diff --git a/source/geometry/magneticfield/include/G4LineCurrentMagField.hh b/source/geometry/magneticfield/include/G4LineCurrentMagField.hh index e0404c119c..46aa372300 100644 --- a/source/geometry/magneticfield/include/G4LineCurrentMagField.hh +++ b/source/geometry/magneticfield/include/G4LineCurrentMagField.hh @@ -20,38 +20,41 @@ // * statement, and all its terms. * // ******************************************************************** // - -// Class describing line current magnetic field. -// fFieldConstant determines the coefficient in the field law. -// The line current is directed along Z axis and crosses the XY plane in the point -// (0,0) . // -// 3.2.97 V. Grichine +// $Id: G4LineCurrentMagField.hh,v 1.3 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// class G4LineCurrentMagField +// +// Class description: +// +// Class describing line current magnetic field. +// 'fFieldConstant' determines the coefficient in the field law. +// The line current is directed along Z axis and crosses the XY +// plane in the origin point (0,0). + +// History: +// 3.2.97 - V. Grichine, created. +// -------------------------------------------------------------------- #ifndef G4LINECURRENTMAGFIELD_HH #define G4LINECURRENTMAGFIELD_HH -#include "globals.hh" #include "G4MagneticField.hh" -#include "G4Mag_EqRhs.hh" class G4LineCurrentMagField : public G4MagneticField { -public: - - G4LineCurrentMagField(G4double pFieldConstant) ; - - ~G4LineCurrentMagField() ; - - void GetFieldValue(const G4double yTrack[] , - G4double B[] ) const ; - + public: // with description -protected: + G4LineCurrentMagField(G4double pFieldConstant); + ~G4LineCurrentMagField(); -private: - G4double fFieldConstant ; - -} ; + void GetFieldValue(const G4double yTrack[] , + G4double B[] ) const; + private: + + G4double fFieldConstant; +}; #endif diff --git a/source/geometry/magneticfield/include/G4LineSection.hh b/source/geometry/magneticfield/include/G4LineSection.hh index 5691d3f8dc..53b3746910 100644 --- a/source/geometry/magneticfield/include/G4LineSection.hh +++ b/source/geometry/magneticfield/include/G4LineSection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LineSection.hh,v 1.7 2001/12/05 16:40:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LineSection.hh,v 1.8 2003/10/31 14:35:51 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4LineSection @@ -34,12 +34,12 @@ // History: // - Created. J. Apostolakis. -// - Cosmetics against /0. and sqrt(<0.). V. Grichine, 25.02.00. +// -------------------------------------------------------------------- #ifndef G4LineSection_hh #define G4LineSection_hh -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" class G4LineSection @@ -53,8 +53,8 @@ class G4LineSection G4double GetABdistanceSq() const { return fABdistanceSq ; } static G4double Distline( const G4ThreeVector& OtherPnt, - const G4ThreeVector& LinePntA, - const G4ThreeVector& LinePntB ); + const G4ThreeVector& LinePntA, + const G4ThreeVector& LinePntB ); private: G4ThreeVector EndpointA; diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.hh b/source/geometry/magneticfield/include/G4MagErrorStepper.hh index 3570bd8ac2..4d652c458d 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagErrorStepper.hh,v 1.8 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagErrorStepper.hh,v 1.10 2003/11/05 12:50:00 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4MagErrorStepper @@ -34,13 +34,12 @@ // History: // 09.12.97 W.Wander Created G4MagErrorStepper -// 09.03.98 W.Wander Added AdvanceHelix functionality -// 09.11.98 J.Apostolakis Moved AdvanceHelix to G4MagHelicalStepper +// -------------------------------------------------------------------- #ifndef G4MAGERRORSTEPPER_HH #define G4MAGERRORSTEPPER_HH -#include "globals.hh" +#include "G4Types.hh" #include "G4MagIntegratorStepper.hh" #include "G4Mag_EqRhs.hh" #include "G4ThreeVector.hh" @@ -49,23 +48,24 @@ class G4MagErrorStepper : public G4MagIntegratorStepper { public: // with description - G4MagErrorStepper(G4Mag_EqRhs *EqRhs,G4int numberOfVariables); + // G4MagErrorStepper(G4Mag_EqRhs *EqRhs, G4int numberOfVariables); + G4MagErrorStepper(G4EquationOfMotion *EqRhs, G4int numberOfVariables); virtual ~G4MagErrorStepper(); void Stepper( const G4double y[], - const G4double dydx[], - G4double h, - G4double yout[], - G4double yerr[] ); + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ); // The stepper for the Runge Kutta integration. The stepsize // is fixed, with the Step size given by h. // Integrates ODE starting values y[0 to 6]. // Outputs yout[] and its estimated error yerr[]. virtual void DumbStepper( const G4double y[], - const G4double dydx[], - G4double h, - G4double yout[] ) = 0; + const G4double dydx[], + G4double h, + G4double yout[] ) = 0; // Performs a 'dump' Step without error calculation. G4double DistChord() const; diff --git a/source/geometry/magneticfield/include/G4MagErrorStepper.icc b/source/geometry/magneticfield/include/G4MagErrorStepper.icc index d24ce89868..b4307c9123 100644 --- a/source/geometry/magneticfield/include/G4MagErrorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagErrorStepper.icc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4MagErrorStepper.icc,v 1.10 2003/06/16 16:51:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagErrorStepper.icc,v 1.12 2003/11/05 12:50:36 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// -------------------------------------------------------------------- inline -G4MagErrorStepper::G4MagErrorStepper(G4Mag_EqRhs *EqRhs, - G4int numberOfVariables) - : G4MagIntegratorStepper(EqRhs,numberOfVariables) +G4MagErrorStepper::G4MagErrorStepper(G4EquationOfMotion *EquationRhs, + G4int numberOfVariables) + : G4MagIntegratorStepper(EquationRhs,numberOfVariables) { G4int nvar = std::max(this->GetNumberOfVariables(), 8); yMiddle= new G4double[nvar]; diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh index 106df4eeab..5a51807dc2 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.hh +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagHelicalStepper.hh,v 1.7 2001/07/11 09:59:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagHelicalStepper.hh,v 1.8 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4MagHelicalStepper @@ -34,11 +34,12 @@ // History: // - 05.11.98 J.Apostolakis Creation of new ABC +// -------------------------------------------------------------------- #ifndef G4MagHelicalStepper_hh #define G4MagHelicalStepper_hh -#include "globals.hh" +#include "G4Types.hh" #include "G4MagIntegratorStepper.hh" #include "G4Mag_EqRhs.hh" #include "G4ThreeVector.hh" @@ -51,19 +52,19 @@ class G4MagHelicalStepper : public G4MagIntegratorStepper virtual ~G4MagHelicalStepper(); void Stepper( const G4double y[], - const G4double dydx[], - G4double h, - G4double yout[], - G4double yerr[] ); + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ); // The stepper for the Runge Kutta integration. // The stepsize is fixed, equal to h. // Integrates ODE starting values y[0 to 6] // Outputs yout[] and its estimated error yerr[]. virtual void DumbStepper( const G4double y[], - G4ThreeVector Bfld, - G4double h, - G4double yout[] ) = 0; + G4ThreeVector Bfld, + G4double h, + G4double yout[] ) = 0; // Performs a 'dump' Step without error calculation. G4double DistChord() const; @@ -72,14 +73,14 @@ class G4MagHelicalStepper : public G4MagIntegratorStepper protected: // with description inline void LinearStep( const G4double yIn[], - G4double h, - G4double yHelix[]); + G4double h, + G4double yHelix[]); // A linear Step in regions without magnetic field. void AdvanceHelix( const G4double yIn[], - G4ThreeVector Bfld, - G4double h, - G4double yHelix[]); // output + G4ThreeVector Bfld, + G4double h, + G4double yHelix[]); // output // A first order Step along a helix inside the field. inline void MagFieldEvaluate( const G4double y[], G4ThreeVector& Bfield ); diff --git a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc index 43893a69b2..0def565563 100644 --- a/source/geometry/magneticfield/include/G4MagHelicalStepper.icc +++ b/source/geometry/magneticfield/include/G4MagHelicalStepper.icc @@ -21,16 +21,17 @@ // ******************************************************************** // // -// $Id: G4MagHelicalStepper.icc,v 1.7 2002/05/31 16:22:54 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagHelicalStepper.icc,v 1.8 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // - -// linear Step in regions of no field +// Linear Step in regions of no field +// +// -------------------------------------------------------------------- inline void G4MagHelicalStepper::LinearStep( const G4double yIn[], - G4double h, - G4double yLinear[]) + G4double h, + G4double yLinear[]) { G4double momentum_val = sqrt(yIn[3]*yIn[3] + yIn[4]*yIn[4] + yIn[5]*yIn[5]) ; G4double inv_momentum = 1.0 / momentum_val ; diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh index 505748b44a..8866fef3fa 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorDriver.hh,v 1.15 2003/06/25 09:02:29 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagIntegratorDriver.hh,v 1.16 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4MagInt_Driver @@ -34,11 +34,12 @@ // History: // - Created. J.Apostolakis. +// -------------------------------------------------------------------- #ifndef G4MagInt_Driver_Def #define G4MagInt_Driver_Def -#include "globals.hh" +#include "G4Types.hh" #include "G4FieldTrack.hh" #include "G4MagIntegratorStepper.hh" @@ -47,39 +48,37 @@ class G4MagInt_Driver public: // with description G4bool AccurateAdvance(G4FieldTrack& y_current, - G4double hstep, - G4double eps, // Requested y_err/hstep - G4double hinitial=0.0); // Suggested 1st interval + G4double hstep, + G4double eps, // Requested y_err/hstep + G4double hinitial=0.0); // Suggested 1st interval // Above drivers for integrator (Runge-Kutta) with stepsize control. // Integrates ODE starting values y_current // from current s (s=s0) to s=s0+h with accuracy eps. // On output ystart is replaced by value at end of interval. // The concept is similar to the odeint routine from NRC p.721-722. - G4bool QuickAdvance(G4FieldTrack& y_val, // INOUT - const G4double dydx[], - G4double hstep, // IN - G4double& dchord_step, - G4double& dyerr ) ; + G4bool QuickAdvance( G4FieldTrack& y_val, // INOUT + const G4double dydx[], + G4double hstep, // IN + G4double& dchord_step, + G4double& dyerr ) ; // QuickAdvance just tries one Step - it does not ensure accuracy. - G4bool QuickAdvance( G4FieldTrack& y_posvel, // INOUT - const G4double dydx[], - G4double hstep, // In - G4double& dchord_step, - G4double& dyerr_pos_sq, - G4double& dyerr_mom_rel_sq - // G4double& dyerr_ener_sq - ) ; + G4bool QuickAdvance( G4FieldTrack& y_posvel, // INOUT + const G4double dydx[], + G4double hstep, // IN + G4double& dchord_step, + G4double& dyerr_pos_sq, + G4double& dyerr_mom_rel_sq ) ; // New QuickAdvance that also just tries one Step // (so also does not ensure accuracy) // but does return the errors in position and // momentum (normalised: Delta_Integration(p^2)/(p^2) ) G4MagInt_Driver( G4double hminimum, - G4MagIntegratorStepper *pItsStepper, + G4MagIntegratorStepper *pItsStepper, G4int numberOfComponents=6, - G4int statisticsVerbosity=1); + G4int statisticsVerbosity=1); ~G4MagInt_Driver(); // Constructor, destructor. @@ -90,12 +89,12 @@ class G4MagInt_Driver inline G4double GetPgrow() const; inline G4double GetErrcon() const; inline void GetDerivatives( const G4FieldTrack y_curr, // const, INput - G4double dydx[] ); // OUTput + G4double dydx[] ); // OUTput // Accessors. inline void RenewStepperAndAdjust(G4MagIntegratorStepper *pItsStepper); // Sets a new stepper pItsStepper for this driver. Then it calls - // ReSetParameters to reset its parameters accordingly. + // ReSetParameters to reset its parameters accordingly. inline void ReSetParameters(G4double new_safety= 0.9 ); // i) sets the exponents (pgrow & pshrnk), @@ -113,33 +112,33 @@ class G4MagInt_Driver inline G4double ComputeAndSetErrcon(); inline void SetChargeMomentumMass( G4double particleCharge, - G4double MomentumXc, - G4double Mass ); + G4double MomentumXc, + G4double Mass ); // Change them in Equation. particleCharge is in e+ units. inline const G4MagIntegratorStepper* GetStepper() const; void OneGoodStep( G4double ystart[], // Like old RKF45step() - const G4double dydx[], - G4double& x, - G4double htry, - G4double eps, // memb variables ? - G4double& hdid, - G4double& hnext ) ; + const G4double dydx[], + G4double& x, + G4double htry, + G4double eps, // memb variables ? + G4double& hdid, + G4double& hnext ) ; // This takes one Step that is as large as possible while // satisfying the accuracy criterion of: - // yerr < eps * |y_end-y_start| + // yerr < eps * |y_end-y_start| G4double ComputeNewStepSize( G4double errMaxNorm, // normalised error - G4double hstepCurrent); // current step size + G4double hstepCurrent); // current step size // Taking the last step's normalised error, calculate // a step size for the next step. // Do not limit the next step's size within a factor of the - // current one. + // current one. G4double ComputeNewStepSize_WithinLimits( G4double errMaxNorm, // normalised error - G4double hstepCurrent); // current step size + G4double hstepCurrent); // current step size // Taking the last step's normalised error, calculate // a step size for the next step. // Limit the next step's size within a range around the current one. @@ -153,48 +152,48 @@ class G4MagInt_Driver public: // without description inline void SetHmin(G4double newval); - inline void SetVerboseLevel( int newLevel); + inline void SetVerboseLevel(G4int newLevel); inline G4double GetVerboseLevel() const; protected: // without description void WarnSmallStepSize( G4double hnext, G4double hstep, - G4double h, G4double xDone, - G4int noSteps); + G4double h, G4double xDone, + G4int noSteps); void WarnTooManyStep( G4double x1start, G4double x2end, G4double xCurrent); void WarnEndPointTooFar (G4double endPointDist, - G4double hStepSize , - G4double epsilonRelative, - G4int debugFlag); + G4double hStepSize , + G4double epsilonRelative, + G4int debugFlag); // Issue warnings for undesirable situations void PrintStatus( const G4double* StartArr, - G4double xstart, - const G4double* CurrentArr, - G4double xcurrent, - G4double requestStep, - G4int subStepNo); + G4double xstart, + const G4double* CurrentArr, + G4double xcurrent, + G4double requestStep, + G4int subStepNo ); void PrintStatus( const G4FieldTrack& StartFT, - const G4FieldTrack& CurrentFT, - G4double requestStep, - G4int subStepNo); - void PrintStat_Aux( const G4FieldTrack& aFieldTrack, - G4double requestStep, - G4double actualStep, - G4int subStepNo, - G4double subStepSize, - G4double dotVelocities); + const G4FieldTrack& CurrentFT, + G4double requestStep, + G4int subStepNo ); + void PrintStat_Aux( const G4FieldTrack& aFieldTrack, + G4double requestStep, + G4double actualStep, + G4int subStepNo, + G4double subStepSize, + G4double dotVelocities ); // Verbose output for debugging void PrintStatisticsReport() ; // Report on the number of steps, maximum errors etc. #ifdef QUICK_ADV_TWO - G4bool QuickAdvance( G4double yarrin[], // In - const G4double dydx[], - G4double hstep, - G4double yarrout[], // Out - G4double& dchord_step, // Out - G4double& dyerr ); // in length + G4bool QuickAdvance( G4double yarrin[], // In + const G4double dydx[], + G4double hstep, + G4double yarrout[], // Out + G4double& dchord_step, // Out + G4double& dyerr ); // in length #endif private: diff --git a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc index 2b0828e324..1c668c9f65 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorDriver.icc @@ -21,9 +21,10 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorDriver.icc,v 1.8 2003/06/05 16:13:26 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagIntegratorDriver.icc,v 1.9 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// -------------------------------------------------------------------- inline G4double G4MagInt_Driver::GetHmin() const @@ -112,8 +113,8 @@ void G4MagInt_Driver::RenewStepperAndAdjust(G4MagIntegratorStepper *pItsStepper) inline void G4MagInt_Driver::SetChargeMomentumMass(G4double particleCharge, // e+ - G4double MomentumXc, - G4double Mass ) + G4double MomentumXc, + G4double Mass ) { pIntStepper->GetEquationOfMotion() ->SetChargeMomentumMass(particleCharge, MomentumXc, Mass); @@ -139,14 +140,13 @@ void G4MagInt_Driver::SetMaxNoSteps(G4int val) inline void G4MagInt_Driver::GetDerivatives(const G4FieldTrack y_curr, // const, INput - G4double dydx[]) // OUTput + G4double dydx[]) // OUTput { G4double tmpValArr[G4FieldTrack::ncompSVEC]; y_curr.DumpToArray( tmpValArr ); pIntStepper -> RightHandSide( tmpValArr , dydx ); } - inline G4double G4MagInt_Driver::GetVerboseLevel() const { @@ -154,7 +154,7 @@ G4double G4MagInt_Driver::GetVerboseLevel() const } inline -void G4MagInt_Driver::SetVerboseLevel( int newLevel) +void G4MagInt_Driver::SetVerboseLevel(G4int newLevel) { fVerboseLevel= newLevel; } diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh index 18acf85a0e..7472d55e00 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.hh,v 1.9 2002/11/20 18:09:22 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagIntegratorStepper.hh,v 1.10 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4MagIntegratorStepper @@ -40,12 +40,12 @@ // History: // - 15.01.97 J. Apostolakis (J.Apostolakis@cern.ch) -// - 20.11.02 J. Apostolakis: Added new "State" elements +// -------------------------------------------------------------------- #ifndef G4MAGIntegratorSTEPPER #define G4MAGIntegratorSTEPPER -#include "globals.hh" +#include "G4Types.hh" #include "G4EquationOfMotion.hh" class G4MagIntegratorStepper @@ -53,16 +53,16 @@ class G4MagIntegratorStepper public: // with description G4MagIntegratorStepper(G4EquationOfMotion *Equation, - G4int numIntegrationVariables, - G4int numStateVariables=12); + G4int numIntegrationVariables, + G4int numStateVariables=12); virtual ~G4MagIntegratorStepper(); // Constructor and destructor. No actions. virtual void Stepper( const G4double y[], - const G4double dydx[], - G4double h, - G4double yout[], - G4double yerr[] ) = 0 ; + const G4double dydx[], + G4double h, + G4double yout[], + G4double yerr[] ) = 0 ; // The stepper for the Runge Kutta integration. // The stepsize is fixed, with the Step size given by h. // Integrates ODE starting values y[0 to 6]. @@ -100,7 +100,7 @@ class G4MagIntegratorStepper #if 0 void SetChargeAndMomentum( G4double particleCharge, // in e+ units - G4double MomentumXc) + G4double MomentumXc) // Supply the standard Evaluation of the Right Hand side // of the associated equation. {theEquation_Rhs -> SetChargeAndMomentum(particleCharge, MomentumXc);} diff --git a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc index 50d0c9261d..ebff672f58 100644 --- a/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc +++ b/source/geometry/magneticfield/include/G4MagIntegratorStepper.icc @@ -22,7 +22,7 @@ // // // $Id: G4MagIntegratorStepper.icc,v 1.7 2002/11/20 18:10:44 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // inline diff --git a/source/geometry/magneticfield/include/G4Mag_EqRhs.hh b/source/geometry/magneticfield/include/G4Mag_EqRhs.hh index f2c25d5412..6ea695347b 100644 --- a/source/geometry/magneticfield/include/G4Mag_EqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_EqRhs.hh @@ -21,29 +21,27 @@ // ******************************************************************** // // -// $Id: G4Mag_EqRhs.hh,v 1.6 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mag_EqRhs.hh,v 1.8 2003/11/05 12:54:13 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Mag_EqRhs // // Class description: // -// The "standard" right-hand side for the equation of motion of a particle -// in a pure magnetic field. -// Others that might be required are: -// i) when using a moving reference frame ... or -// ii) extending for other forces, eg an electric field. +// The "standard" equation of motion of a particle in a pure magnetic field. // History: -// - Created. J.Apostolakis, January 13th 1996 +// - Created. J.Apostolakis, January 13th 1997 +// -------------------------------------------------------------------- #ifndef G4_MAG_EQRHS_DEF #define G4_MAG_EQRHS_DEF -#include "globals.hh" +#include "G4Types.hh" #include "G4EquationOfMotion.hh" -#include "G4MagneticField.hh" // class G4MagneticField; not enough ?? + +class G4MagneticField; class G4Mag_EqRhs : public G4EquationOfMotion { @@ -54,8 +52,8 @@ class G4Mag_EqRhs : public G4EquationOfMotion // Constructor and destructor. No actions. virtual void EvaluateRhsGivenB( const G4double y[], - const G4double B[3], - G4double dydx[] ) const = 0; + const G4double B[3], + G4double dydx[] ) const = 0; // Given the value of the field "B", this function // calculates the value of the derivative dydx. // This is the _only_ function a subclass must define. @@ -64,15 +62,15 @@ class G4Mag_EqRhs : public G4EquationOfMotion inline G4double FCof() const; virtual void SetChargeMomentumMass( G4double particleCharge, // in e+ units - G4double MomentumXc, - G4double mass); + G4double MomentumXc, + G4double mass); private: G4double fCof_val; static const G4double fUnitConstant; // Set in G4Mag_EqRhs.cc - // to 0.299792458 + // to 0.299792458 // Coefficient in the Lorentz motion equation (Lorentz force), if the // magnetic field B is in Tesla, the particle charge in units of the // elementary (positron?) charge, the momentum P in MeV/c, and the diff --git a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh index c1df277d5b..80cec18c75 100644 --- a/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_SpinEqRhs.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mag_SpinEqRhs.hh,v 1.8 2002/06/07 18:25:09 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mag_SpinEqRhs.hh,v 1.9 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Mag_SpinEqRhs @@ -30,27 +30,27 @@ // Class description: // // This is the equation of motion for a particle with spin in a pure -// magnetic field. -// The three components of the particle's spin are treated -// utilising BMT equation. +// magnetic field. The three components of the particle's spin are +// treated utilising BMT equation. // History: // - Created: J.Apostolakis, P.Gumplinger - February 8th, 1999. -// - Modified: D. Cote-Ahern, P.Gumplinger - April 11th, 2001. +// -------------------------------------------------------------------- #ifndef G4MAG_SPIN_EQRHS #define G4MAG_SPIN_EQRHS +#include "G4Types.hh" #include "G4Mag_EqRhs.hh" -#include "G4MagneticField.hh" + +class G4MagneticField; class G4Mag_SpinEqRhs : public G4Mag_EqRhs { public: // with description - G4Mag_SpinEqRhs( G4MagneticField* MagField ) - : G4Mag_EqRhs( MagField ) {;} - ~G4Mag_SpinEqRhs() {;} + G4Mag_SpinEqRhs( G4MagneticField* MagField ); + ~G4Mag_SpinEqRhs(); // Constructor and destructor. No actions. void SetChargeMomentumMass(G4double particleCharge, // in e+ units @@ -58,8 +58,8 @@ class G4Mag_SpinEqRhs : public G4Mag_EqRhs G4double mass); void EvaluateRhsGivenB( const G4double y[], - const G4double B[3], - G4double dydx[] ) const; + const G4double B[3], + G4double dydx[] ) const; // Given the value of the magnetic field B, this function // calculates the value of the derivative dydx. @@ -72,7 +72,6 @@ class G4Mag_SpinEqRhs : public G4Mag_EqRhs G4double E; G4double gamma; G4double beta; - }; #endif /* G4MAG_SPIN_EQRHS */ diff --git a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh index fd3ad58e10..bc4184ada8 100644 --- a/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh +++ b/source/geometry/magneticfield/include/G4Mag_UsualEqRhs.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mag_UsualEqRhs.hh,v 1.5 2002/04/29 16:54:02 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mag_UsualEqRhs.hh,v 1.6 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Mag_UsualEqRhs @@ -36,33 +36,35 @@ // History: // - Created: J. Apostolakis, January 13th 1997. +// -------------------------------------------------------------------- #ifndef G4MAG_USUAL_EQRHS #define G4MAG_USUAL_EQRHS #include "G4Mag_EqRhs.hh" -#include "G4MagneticField.hh" + +class G4MagneticField; class G4Mag_UsualEqRhs : public G4Mag_EqRhs { public: // with description - G4Mag_UsualEqRhs( G4MagneticField* MagField ) - : G4Mag_EqRhs( MagField ) {;} - ~G4Mag_UsualEqRhs() {;} + G4Mag_UsualEqRhs( G4MagneticField* MagField ); + ~G4Mag_UsualEqRhs(); // Constructor and destructor. No actions. void EvaluateRhsGivenB( const G4double y[], - const G4double B[3], - G4double dydx[] ) const; + const G4double B[3], + G4double dydx[] ) const; // Given the value of the magnetic field B, this function // calculates the value of the derivative dydx. virtual void SetChargeMomentumMass( G4double particleCharge, // in e+ units - G4double MomentumXc, - G4double mass); + G4double MomentumXc, + G4double mass); -private: // without description + private: + G4double fInvCurrentMomentumXc; // This extra state enables us // to save a square root in a // critical method. diff --git a/source/geometry/magneticfield/include/G4MagneticField.hh b/source/geometry/magneticfield/include/G4MagneticField.hh index 46c84888f4..2c5a5d1253 100644 --- a/source/geometry/magneticfield/include/G4MagneticField.hh +++ b/source/geometry/magneticfield/include/G4MagneticField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagneticField.hh,v 1.11 2003/04/02 08:49:20 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagneticField.hh,v 1.13 2003/11/05 10:35:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4MagneticField @@ -33,16 +33,15 @@ // History: // - Created. JA, January 13th, 1996. -// - Added default & copy constructors, virtual destructor and -// assignment operator. G.Cosmo, November 5th, 1997. +// -------------------------------------------------------------------- #ifndef G4MAGNETIC_FIELD_DEF #define G4MAGNETIC_FIELD_DEF #include "G4Types.hh" -#include "G4Field.hh" +#include "G4ElectroMagneticField.hh" -class G4MagneticField : public G4Field +class G4MagneticField : public G4ElectroMagneticField { public: // with description @@ -54,8 +53,11 @@ class G4MagneticField : public G4Field G4MagneticField& operator = (const G4MagneticField &p); // Copy constructor & assignment operator. + G4bool DoesFieldChangeEnergy() const { return false; } + // Since a pure magnetic field does not change track energy + virtual void GetFieldValue( const G4double Point[4], - G4double *Bfield ) const = 0; + G4double *Bfield ) const = 0; }; #endif /* G4MAGNETIC_FIELD_DEF */ diff --git a/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh b/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh index 45a92ea207..72dc996da9 100644 --- a/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh +++ b/source/geometry/magneticfield/include/G4QuadrupoleMagField.hh @@ -20,40 +20,44 @@ // * statement, and all its terms. * // ******************************************************************** // -// Class for creation of quadrupole magnetic field -// fGradient - is gardient value for quadrupole magnetic lense. Then the magnetic -// field components are: -// Bx = B[0] = fGradient*X , -// By = B[1] = fGradient*Y , -// Bz = B[2] = 0 . -// Here X,Y,Z are the coordinates of a space point of interest. // -// 3.2.97 V.Grichine +// $Id: G4QuadrupoleMagField.hh,v 1.3 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// class G4QuadrupoleMagField +// +// Class description: +// +// Class for creation of quadrupole magnetic field +// fGradient - is the gradient value for quadrupole magnetic lense. +// Then the magnetic field components are: +// Bx = B[0] = fGradient*X , +// By = B[1] = fGradient*Y , +// Bz = B[2] = 0 . +// Here X,Y,Z are the coordinates of a space point of interest. + +// History: +// 3.2.97 - V.Grichine, created. +// ------------------------------------------------------------------- #ifndef G4QUADRUPOLEMAGFIELD_HH #define G4QUADRUPOLEMAGFIELD_HH -#include "globals.hh" #include "G4MagneticField.hh" -#include "G4Mag_EqRhs.hh" class G4QuadrupoleMagField : public G4MagneticField { -public: - - G4QuadrupoleMagField(G4double pGradient) ; - - ~G4QuadrupoleMagField() ; - - void GetFieldValue(const G4double yTrack[] , - G4double B[] ) const ; - + public: // with description -protected: + G4QuadrupoleMagField(G4double pGradient); + ~G4QuadrupoleMagField(); -private: - G4double fGradient ; - -} ; + void GetFieldValue(const G4double yTrack[], + G4double B[] ) const; + private: + + G4double fGradient; +}; #endif diff --git a/source/geometry/magneticfield/include/G4RKG3_Stepper.hh b/source/geometry/magneticfield/include/G4RKG3_Stepper.hh index 6e0bcec599..826cc715a3 100644 --- a/source/geometry/magneticfield/include/G4RKG3_Stepper.hh +++ b/source/geometry/magneticfield/include/G4RKG3_Stepper.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RKG3_Stepper.hh,v 1.8 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4RKG3_Stepper.hh,v 1.10 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4RKG3_Stepper @@ -33,51 +33,54 @@ // History: // - Created. J.Apostolakis, V.Grichine - 30.01.97 +// ------------------------------------------------------------------- #ifndef G4RKG3_Stepper_hh #define G4RKG3_Stepper_hh +#include "G4Types.hh" #include "G4MagIntegratorStepper.hh" #include "G4ThreeVector.hh" -#include "G4Mag_EqRhs.hh" + +class G4Mag_EqRhs; class G4RKG3_Stepper : public G4MagIntegratorStepper { public: // with description - G4RKG3_Stepper(G4Mag_EqRhs *EqRhs) - : G4MagIntegratorStepper(EqRhs,6){ G4Exception(" G4RKG3_Stepper: is not available in the current version.");} + G4RKG3_Stepper(G4Mag_EqRhs *EqRhs); // Integrate over 6 variables only: position & velocity. + // Not implemented yet ! - ~G4RKG3_Stepper(){;} + ~G4RKG3_Stepper(); void Stepper( const G4double yIn[], - const G4double dydx[], - G4double h, - G4double yOut[], - G4double yErr[] ); + const G4double dydx[], + G4double h, + G4double yOut[], + G4double yErr[] ); // The method which must be provided, even if less efficient. G4double DistChord() const ; void StepNoErr( const G4double tIn[7], - const G4double dydx[7], - G4double Step, - G4double tOut[7], - G4double B[3] ); + const G4double dydx[7], + G4double Step, + G4double tOut[7], + G4double B[3] ); // Integrator RK Stepper from G3 with only two field evaluation per // Step. It is used in propagation initial Step by small substeps // after solution error and delta geometry considerations. // B[3] is magnetic field which is passed from substep to substep. void StepWithEst( const G4double tIn[7], - const G4double dydx[7], - G4double Step, - G4double tOut[7], - G4double& alpha2, // to delete ? - G4double& beta2, - const G4double B1[3], - G4double B2[3] ); + const G4double dydx[7], + G4double Step, + G4double tOut[7], + G4double& alpha2, + G4double& beta2, + const G4double B1[3], + G4double B2[3] ); // Integrator for RK from G3 with evaluation of error in solution and delta // geometry based on naive similarity with the case of uniform magnetic field. // B1[3] is input and is the first magnetic field values @@ -86,17 +89,12 @@ class G4RKG3_Stepper : public G4MagIntegratorStepper public: // without description G4int IntegratorOrder() const { return 4; } - - protected: - // void Field( const G4double Point[3], - // G4double Bfield[3] ) const - // { EqRhs-> GetFieldValue( Point, Bfield ) ; } private: G4ThreeVector fyInitial, - fyMidPoint, - fyFinal ; + fyMidPoint, + fyFinal; }; #endif diff --git a/source/geometry/magneticfield/include/G4SimpleHeum.hh b/source/geometry/magneticfield/include/G4SimpleHeum.hh index 0c97470b5b..50175b93db 100644 --- a/source/geometry/magneticfield/include/G4SimpleHeum.hh +++ b/source/geometry/magneticfield/include/G4SimpleHeum.hh @@ -21,23 +21,24 @@ // ******************************************************************** // // -// $Id: G4SimpleHeum.hh,v 1.5 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SimpleHeum.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4SimpleHeum // // Class description: // -// Simple Heum: +// Simple Heum stepper for magnetic field: // x_1 = x_0 + // h * 1/4 * dx(t0,x0) + // 3/4 * dx(t0+2/3*h, x0+2/3*h*(dx(t0+h/3,x0+h/3*dx(t0,x0)))) // -// third order solver. +// Third order solver. // History: // - Created. W. Wander , 12/09/97 +// ------------------------------------------------------------------- #ifndef G4SIMPLEHEUM_HH #define G4SIMPLEHEUM_HH @@ -49,14 +50,14 @@ class G4SimpleHeum : public G4MagErrorStepper public: // with description - G4SimpleHeum(G4Mag_EqRhs *EqRhs, G4int num_variables=6); + G4SimpleHeum(G4EquationOfMotion *EqRhs, G4int num_variables=6); ~G4SimpleHeum(); // Constructor and destructor. void DumbStepper( const G4double y[], - const G4double dydx[], - G4double h, - G4double yout[]); + const G4double dydx[], + G4double h, + G4double yout[]); public: // without description diff --git a/source/geometry/magneticfield/include/G4SimpleRunge.hh b/source/geometry/magneticfield/include/G4SimpleRunge.hh index 9483a7269e..e88f4fab9c 100644 --- a/source/geometry/magneticfield/include/G4SimpleRunge.hh +++ b/source/geometry/magneticfield/include/G4SimpleRunge.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SimpleRunge.hh,v 1.5 2001/07/11 09:59:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SimpleRunge.hh,v 1.7 2003/11/05 16:30:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4SimpleRunge @@ -33,12 +33,13 @@ // // x_1 = x_0 + h * ( dx( t_0+h/2, x_0 + h/2 * dx( t_0, x_0) ) ) // -// second order solver. -// Take the derivative at a position to be assumed at the middle of the -// Step and add it to the current position. +// Second order solver. +// Takes the derivative at a position to be assumed at the middle of the +// Step and adds it to the current position. // History: // - Created. W.Wander , 12/09/97 +// ------------------------------------------------------------------- #ifndef G4SIMPLERUNGE_HH #define G4SIMPLERUNGE_HH @@ -50,14 +51,14 @@ class G4SimpleRunge : public G4MagErrorStepper public: // with description - G4SimpleRunge(G4Mag_EqRhs *EqRhs, G4int numberOfVariables = 6) ; + G4SimpleRunge(G4EquationOfMotion *EquationRhs, G4int numberOfVariables = 6) ; ~G4SimpleRunge(); // Constructor and destructor. void DumbStepper( const G4double y[], - const G4double dydx[], - G4double h, - G4double yout[]); + const G4double dydx[], + G4double h, + G4double yout[]); public: // without description diff --git a/source/geometry/magneticfield/include/G4UniformElectricField.hh b/source/geometry/magneticfield/include/G4UniformElectricField.hh index 8905702cde..520e9d79b0 100644 --- a/source/geometry/magneticfield/include/G4UniformElectricField.hh +++ b/source/geometry/magneticfield/include/G4UniformElectricField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UniformElectricField.hh,v 1.6 2001/12/04 17:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UniformElectricField.hh,v 1.8 2003/11/05 10:35:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4UniformElectricField @@ -33,19 +33,16 @@ // History: // - 30.01.97 V.Grichine, Created. -// - 01.08.97 J.Apostolakis, cleanup, new 3-vector constructor, -// and removal of helix-stepper (to separate file). -// - 05.11.97 G.Cosmo, added copy constructor and assignment operator. +// ------------------------------------------------------------------- #ifndef G4UNIFORMELECTRICFIELD_HH #define G4UNIFORMELECTRICFIELD_HH -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" -#include "G4ElectroMagneticField.hh" -#include "G4Mag_EqRhs.hh" +#include "G4ElectricField.hh" -class G4UniformElectricField : public G4ElectroMagneticField +class G4UniformElectricField : public G4ElectricField { public: // with description @@ -53,9 +50,9 @@ class G4UniformElectricField : public G4ElectroMagneticField // A field with value equal to FieldVector. G4UniformElectricField(G4double vField, - G4double vTheta, - G4double vPhi ) ; - + G4double vTheta, + G4double vPhi ) ; + virtual ~G4UniformElectricField() ; G4UniformElectricField(const G4UniformElectricField &p); diff --git a/source/geometry/magneticfield/include/G4UniformMagField.hh b/source/geometry/magneticfield/include/G4UniformMagField.hh index 3e4674b4be..fa2395d506 100644 --- a/source/geometry/magneticfield/include/G4UniformMagField.hh +++ b/source/geometry/magneticfield/include/G4UniformMagField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UniformMagField.hh,v 1.7 2001/12/04 17:35:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UniformMagField.hh,v 1.8 2003/10/31 14:35:52 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4UniformMagField @@ -40,10 +40,9 @@ #ifndef G4UNIFORMMAGFIELD_HH #define G4UNIFORMMAGFIELD_HH -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" #include "G4MagneticField.hh" -#include "G4Mag_EqRhs.hh" class G4UniformMagField : public G4MagneticField { @@ -53,9 +52,9 @@ class G4UniformMagField : public G4MagneticField // A field with value equal to FieldVector. G4UniformMagField(G4double vField, - G4double vTheta, - G4double vPhi ) ; - + G4double vTheta, + G4double vPhi ) ; + virtual ~G4UniformMagField() ; G4UniformMagField(const G4UniformMagField &p); @@ -63,7 +62,7 @@ class G4UniformMagField : public G4MagneticField // Copy constructor and assignment operator. virtual void GetFieldValue(const G4double yTrack[4], - G4double *MagField) const ; + G4double *MagField) const ; void SetFieldValue(const G4ThreeVector& newFieldValue); @@ -76,5 +75,3 @@ class G4UniformMagField : public G4MagneticField }; #endif - - diff --git a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc index 1a464383ad..cfd7d82cbf 100644 --- a/source/geometry/magneticfield/src/G4CashKarpRKF45.cc +++ b/source/geometry/magneticfield/src/G4CashKarpRKF45.cc @@ -21,18 +21,19 @@ // ******************************************************************** // // -// $Id: G4CashKarpRKF45.cc,v 1.11 2003/04/02 08:52:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CashKarpRKF45.cc,v 1.13 2003/10/31 14:35:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-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. Two different fourth order estimates are calculated; -// their difference gives an error estimate. -// (We use it to integrate the equations of the motion of a particle -// in a magnetic field. ) +// order method (giving fifth-order accuracy) for the solution of an ODE. +// Two different fourth order estimates are calculated; their difference +// gives an error estimate. [ref. Numerical Recipes in C, 2nd Edition] +// It is used to integrate the equations of the motion of a particle +// in a magnetic field. // -// Similar to Numerical Recipes, .... put REFerence here! +// [ref. Numerical Recipes in C, 2nd Edition] // +// ------------------------------------------------------------------- #include "G4CashKarpRKF45.hh" #include "G4LineSection.hh" @@ -207,7 +208,8 @@ G4CashKarpRKF45::StepWithEst( const G4double*, const G4double*, G4double* ) { - G4Exception("ERROR - G4CashKarpRKF45::StepWithEst(): Method no longer used."); + G4Exception("G4CashKarpRKF45::StepWithEst()", "ObsoleteMethod", + FatalException, "Method no longer used."); return ; } diff --git a/source/geometry/magneticfield/src/G4ChordFinder.cc b/source/geometry/magneticfield/src/G4ChordFinder.cc index 4b2e60601e..9196264f90 100644 --- a/source/geometry/magneticfield/src/G4ChordFinder.cc +++ b/source/geometry/magneticfield/src/G4ChordFinder.cc @@ -21,39 +21,69 @@ // ******************************************************************** // // -// $Id: G4ChordFinder.cc,v 1.36 2003/06/25 09:04:23 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ChordFinder.cc,v 1.45 2003/11/13 19:46:56 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // 25.02.97 John Apostolakis, design and implimentation // 05.03.97 V. Grichine , style modification +// ------------------------------------------------------------------- #include "G4ChordFinder.hh" -#include "G4MagIntegratorDriver.hh" +#include "G4MagneticField.hh" #include "G4Mag_UsualEqRhs.hh" #include "G4ClassicalRK4.hh" -// #include "G4Field.hh" - // #include "G4MagIntegratorStepper.hh" -#include "G4MagIntegratorDriver.hh" + #include -// For the moment fDeltaChord is a constant! +// .......................................................................... -const G4double G4ChordFinder::fDefaultDeltaChord = 3. * mm; +G4ChordFinder::G4ChordFinder(G4MagInt_Driver* pIntegrationDriver) + : fDefaultDeltaChord( 0.25 * mm ), + fDeltaChord( fDefaultDeltaChord ), + fAllocatedStepper(false), + fEquation(0), + fDriversStepper(0), + fFirstFraction(0.999), fFractionLast(1.00), fFractionNextEstimate(0.98), + fMultipleRadius(15.0), + fTotalNoTrials_FNC(0), fNoCalls_FNC(0), fmaxTrials_FNC(0), + fStatsVerbose(0) +{ + // Simple constructor which does not create equation, .. + // fDeltaChord= fDefaultDeltaChord; + fIntgrDriver= pIntegrationDriver; + fAllocatedStepper= false; + fLastStepEstimate_Unconstrained = DBL_MAX; // Should move q, p to + + SetFractions_Last_Next( fFractionLast, fFractionNextEstimate); + // check the values and set the other parameters +} // .......................................................................... G4ChordFinder::G4ChordFinder( G4MagneticField* theMagField, G4double stepMinimum, G4MagIntegratorStepper* pItsStepper ) - : fDeltaChord( fDefaultDeltaChord ) + : fDefaultDeltaChord( 0.25 * mm ), + fDeltaChord( fDefaultDeltaChord ), + fAllocatedStepper(false), + fEquation(0), + fDriversStepper(0), + fFirstFraction(0.999), fFractionLast(1.00), fFractionNextEstimate(0.98), + fMultipleRadius(15.0), + fTotalNoTrials_FNC(0), fNoCalls_FNC(0), fmaxTrials_FNC(0), + fStatsVerbose(0) { // Construct the Chord Finder // by creating in inverse order the Driver, the Stepper and EqRhs ... G4Mag_EqRhs *pEquation = new G4Mag_UsualEqRhs(theMagField); fEquation = pEquation; fLastStepEstimate_Unconstrained = DBL_MAX; // Should move q, p to - // G4FieldTrack ?? + // G4FieldTrack ?? + + SetFractions_Last_Next( fFractionLast, fFractionNextEstimate); + // check the values and set the other parameters + // --->> Charge Q = 0 // --->> Momentum P = 1 NOMINAL VALUES !!!!!!!!!!!!!!!!!! @@ -72,6 +102,41 @@ G4ChordFinder::G4ChordFinder( G4MagneticField* theMagField, // ...................................................................... +void +G4ChordFinder::SetFractions_Last_Next( G4double fractLast, G4double fractNext ) +{ + // Use -1.0 as request for Default. + if( fractLast == -1.0 ) fractLast = 1.0; // 0.9; + if( fractNext == -1.0 ) fractNext = 0.98; // 0.9; + + // fFirstFraction = 0.999; // Orig 0.999 A safe value, range: ~ 0.95 - 0.999 + // fMultipleRadius = 15.0; // For later use, range: ~ 2 - 20 + + if( fStatsVerbose ) { + G4cout << " ChordFnd> Trying to set fractions: " + << " first " << fFirstFraction + << " last " << fractLast + << " next " << fractNext + << " and multiple " << fMultipleRadius + << G4endl; + } + + if( (fractLast > 0.0) && (fractLast <=1.0) ) + { fFractionLast= fractLast; } + else + G4cerr << "G4ChordFinder:: SetFractions_Last_Next: Invalid " + << " fraction Last = " << fractLast + << " must be 0 < fractionLast <= 1 " << G4endl; + if( (fractNext > 0.0) && (fractNext <1.0) ) + { fFractionNextEstimate = fractNext; } + else + G4cerr << "G4ChordFinder:: SetFractions_Last_Next: Invalid " + << " fraction Next = " << fractNext + << " must be 0 < fractionNext < 1 " << G4endl; +} + +// ...................................................................... + G4ChordFinder::~G4ChordFinder() { delete fEquation; // fIntgrDriver->pIntStepper->theEquation_Rhs; @@ -80,6 +145,26 @@ G4ChordFinder::~G4ChordFinder() delete fDriversStepper; } // fIntgrDriver->pIntStepper;} delete fIntgrDriver; + + if( fStatsVerbose ) { PrintStatistics(); } +} + +void +G4ChordFinder::PrintStatistics() +{ + // Print Statistics + G4cout << "G4ChordFinder statistics report: " << G4endl; + G4cout + << " No trials: " << fTotalNoTrials_FNC + << " No Calls: " << fNoCalls_FNC + << " Max-trial: " << fmaxTrials_FNC + << G4endl; + G4cout + << " Parameters: " + << " fFirstFraction " << fFirstFraction + << " fFractionLast " << fFractionLast + << " fFractionNextEstimate " << fFractionNextEstimate + << G4endl; } // ...................................................................... @@ -87,7 +172,10 @@ G4ChordFinder::~G4ChordFinder() G4double G4ChordFinder::AdvanceChordLimited( G4FieldTrack& yCurrent, G4double stepMax, - G4double epsStep ) + G4double epsStep, + const G4ThreeVector latestSafetyOrigin, + G4double latestSafetyRadius + ) { G4double stepPossible; G4double dyErr; @@ -96,7 +184,9 @@ G4ChordFinder::AdvanceChordLimited( G4FieldTrack& yCurrent, G4double nextStep; // ************* - stepPossible= FindNextChord(yCurrent, stepMax, yEnd, dyErr, epsStep, &nextStep); + stepPossible= FindNextChord(yCurrent, stepMax, yEnd, dyErr, epsStep, &nextStep + , latestSafetyOrigin, latestSafetyRadius + ); // ************* G4bool good_advance; if ( dyErr < epsStep * stepPossible ) @@ -118,8 +208,8 @@ G4ChordFinder::AdvanceChordLimited( G4FieldTrack& yCurrent, } #ifdef G4DEBUG_FIELD - if( dbg ) G4cerr << "Exiting FindNextChord Limited with:\n yCurrent: " - << yCurrent<< G4endl; + G4cout << "Exiting FindNextChord Limited with:" << G4endl + << " yCurrent: " << yCurrent<< G4endl; #endif return stepPossible; @@ -135,7 +225,10 @@ G4ChordFinder::FindNextChord( const G4FieldTrack yStart, G4FieldTrack& yEnd, // Endpoint G4double& dyErrPos, // Error of endpoint G4double epsStep, - G4double* pStepForAccuracy) + G4double* pStepForAccuracy, + const G4ThreeVector, // latestSafetyOrigin, + G4double // latestSafetyRadius + ) // Returns Length of Step taken { // G4int stepRKnumber=0; @@ -153,7 +246,7 @@ G4ChordFinder::FindNextChord( const G4FieldTrack yStart, fIntgrDriver-> GetDerivatives( yCurrent, dydx ) ; G4int noTrials=0; - const G4double safetyFactor= (1-perThousand); // TO-DO: = 0.975 or 0.95; + const G4double safetyFactor= fFirstFraction; // 0.975 or 0.99 ? was 0.999 stepTrial = std::min( stepMax, safetyFactor * fLastStepEstimate_Unconstrained ); @@ -179,8 +272,12 @@ G4ChordFinder::FindNextChord( const G4FieldTrack yStart, stepForChord = NewStep(stepTrial, dChordStep, newStepEst_Uncons ); if( ! validEndPoint ) { - if( (stepForChord <= lastStepLength) || (stepTrial<=0.0) ) - stepTrial = stepForChord; + if( stepTrial<=0.0 ) + stepTrial = stepForChord; + else if (stepForChord <= stepTrial) + // Reduce by a fraction, possibly up to 20% + stepTrial = std::min( stepForChord, + fFractionLast * stepTrial); else stepTrial *= 0.1; @@ -195,9 +292,11 @@ G4ChordFinder::FindNextChord( const G4FieldTrack yStart, while( ! validEndPoint ); // End of do-while RKD if( newStepEst_Uncons > 0.0 ){ - fLastStepEstimate_Unconstrained= newStepEst_Uncons; + fLastStepEstimate_Unconstrained= newStepEst_Uncons; } + AccumulateStatistics( noTrials ); + // stepOfLastGoodChord = stepTrial; if( pStepForAccuracy ){ @@ -256,7 +355,8 @@ G4double G4ChordFinder::NewStep(G4double stepTrialOld, if (dChordStep > 0.0) { stepEstimate_Unconstrained = stepTrialOld*sqrt( fDeltaChord / dChordStep ); - stepTrial = 0.98 * stepEstimate_Unconstrained; + // stepTrial = 0.98 * stepEstimate_Unconstrained; + stepTrial = fFractionNextEstimate * stepEstimate_Unconstrained; } else { @@ -362,7 +462,8 @@ G4ChordFinder::ApproxCurvePointV( const G4FieldTrack& CurveA_PointVelocity, if( curve_length < ABdist * (1. - 10*eps_step) ) { G4cerr << " ERROR: the size of the above difference" << " exceeds allowed limits. Aborting." << G4endl; - G4Exception("G4ChordFinder::ApproxCurvePoint > Unphysical curve length."); + G4Exception("G4ChordFinder::ApproxCurvePointV()", "PrecisionError", + FatalException, "Unphysical curve length."); } #endif // Take default corrective action: diff --git a/source/geometry/magneticfield/src/G4ChordFinderSaf.cc b/source/geometry/magneticfield/src/G4ChordFinderSaf.cc new file mode 100644 index 0000000000..ebfae84f75 --- /dev/null +++ b/source/geometry/magneticfield/src/G4ChordFinderSaf.cc @@ -0,0 +1,232 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 "G4ChordFinderSaf.hh" +#include + +// .......................................................................... + +G4ChordFinderSaf::G4ChordFinderSaf(G4MagInt_Driver* pIntegrationDriver) + : G4ChordFinder(pIntegrationDriver) +{ + // check the values and set the other parameters + // fNoInitialRadBig=0; fNoInitialRadSmall=0; + // fNoTrialsRadBig=0; fNoTrialsRadSmall=0; + +} + +// .......................................................................... + +G4ChordFinderSaf::G4ChordFinderSaf( G4MagneticField* theMagField, + G4double stepMinimum, + G4MagIntegratorStepper* pItsStepper ) + : G4ChordFinder( theMagField, stepMinimum, pItsStepper ) +{ + // Let G4ChordFinder create the Driver, the Stepper and EqRhs ... + // ... +} + +// ...................................................................... + +// ...................................................................... + +G4ChordFinderSaf::~G4ChordFinderSaf() +{ + if( SetVerbose(0) ) { PrintStatistics(); } + // Set verbosity 0, so that will be called in base class again +} + +void +G4ChordFinderSaf::PrintStatistics() +{ + // Print Statistics + G4cout << "G4ChordFinderSaf statistics report: " << G4endl; + G4ChordFinder::PrintStatistics(); + +/******************* + G4cout + << " No radbig calls " << std::setw(10) << fNoInitialRadBig + << " trials " << std::setw(10) << fNoTrialsRadBig + << " - over " << std::setw(10) << fNoTrialsRadBig - fNoInitialRadBig + << G4endl + << " No radsm calls " << std::setw(10) << fNoInitialRadSmall + << " trials " << std::setw(10) << fNoTrialsRadSmall + << " - over " << std::setw(10) << fNoTrialsRadSmall - fNoInitialRadSmall + << G4endl; + G4cout + << " *** Limiting stepTrial via if Delta_chord < R_curvature " + << " for large to angle from Delta_chord / R_curv " + << " and for small with multiple " << GetMultipleRadius() + << G4endl; +********************/ +} + + +// G4SafetyDist:: +// inline +G4double +CalculatePointSafety(G4ThreeVector safetyOrigin, + G4double safetyRadius, + G4ThreeVector point) +{ + G4double pointSafety= 0.0; + + G4ThreeVector OriginShift = point - safetyOrigin ; + G4double MagSqShift = OriginShift.mag2() ; + if( MagSqShift < sqr(safetyRadius) ){ + pointSafety = safetyRadius - sqrt(MagSqShift) ; + } + + return pointSafety; +} + +// inline +G4bool +CalculatePointInside(G4ThreeVector safetyOrigin, + G4double safetyRadius, + G4ThreeVector point) +{ + G4ThreeVector OriginShift = point - safetyOrigin ; + return ( OriginShift.mag2() < safetyRadius*safetyRadius ); +} + +G4double +G4ChordFinderSaf::FindNextChord( const G4FieldTrack yStart, + G4double stepMax, + G4FieldTrack& yEnd, // Endpoint + G4double& dyErrPos, // Error of endpoint + G4double epsStep, + G4double* pStepForAccuracy, + const G4ThreeVector latestSafetyOrigin, + G4double latestSafetyRadius + ) + // Returns Length of Step taken +{ + // G4int stepRKnumber=0; + G4FieldTrack yCurrent= yStart; + G4double stepTrial, stepForAccuracy; + G4double dydx[G4FieldTrack::ncompSVEC]; + + // 1.) Try to "leap" to end of interval + // 2.) Evaluate if resulting chord gives d_chord that is good enough. + // 2a.) If d_chord is not good enough, find one that is. + + G4bool validEndPoint= false; + G4double dChordStep, lastStepLength; // stepOfLastGoodChord; + + GetIntegrationDriver()-> GetDerivatives( yCurrent, dydx ) ; + + G4int noTrials=0; + const G4double safetyFactor= GetFirstFraction(); // was 0.999 + + // Figure out the starting safety + G4double startSafety= + CalculatePointSafety( latestSafetyOrigin, + latestSafetyRadius, + yCurrent.GetPosition() ); + + G4double + likelyGood = std::max( startSafety , + safetyFactor * GetLastStepEstimateUnc() ); + + stepTrial = std::min( stepMax, likelyGood ); + + G4MagInt_Driver *pIntgrDriver= G4ChordFinder::GetIntegrationDriver(); + G4double newStepEst_Uncons= 0.0; + do + { + G4double stepForChord; + yCurrent = yStart; // Always start from initial point + + // ************ + pIntgrDriver->QuickAdvance( yCurrent, dydx, stepTrial, + dChordStep, dyErrPos); + // ************ + + G4ThreeVector EndPointCand= yCurrent.GetPosition(); + G4bool endPointInSafetySphere= + CalculatePointInside(latestSafetyOrigin, latestSafetyRadius, EndPointCand); + + // We check whether the criterion is met here. + validEndPoint = AcceptableMissDist(dChordStep) + || endPointInSafetySphere; + // && (dyErrPos < eps) ; + + lastStepLength = stepTrial; + + // This method estimates to step size for a good chord. + stepForChord = NewStep(stepTrial, dChordStep, newStepEst_Uncons ); + + if( ! validEndPoint ) { + if( stepTrial<=0.0 ) + stepTrial = stepForChord; + else if (stepForChord <= stepTrial) + // Reduce by a fraction, possibly up to 20% + stepTrial = std::min( stepForChord, + GetFractionLast() * stepTrial); + else + stepTrial *= 0.1; + + // if(dbg) G4cerr<<"Dchord too big. Try new hstep="< 0.0 ){ + SetLastStepEstimateUnc( newStepEst_Uncons ); + } + + // stepOfLastGoodChord = stepTrial; + + if( pStepForAccuracy ){ + // Calculate the step size required for accuracy, if it is needed + G4double dyErr_relative = dyErrPos/(epsStep*lastStepLength); + if( dyErr_relative > 1.0 ) { + stepForAccuracy = + pIntgrDriver->ComputeNewStepSize( dyErr_relative, + lastStepLength ); + }else{ + stepForAccuracy = 0.0; // Convention to show step was ok + } + *pStepForAccuracy = stepForAccuracy; + } + +#ifdef TEST_CHORD_PRINT + static int dbg=0; + if( dbg ) + G4cout << "ChordF/FindNextChord: NoTrials= " << noTrials + << " StepForGoodChord=" << std::setw(10) << stepTrial << G4endl; +#endif + + yEnd= yCurrent; + return stepTrial; +} diff --git a/source/geometry/magneticfield/src/G4ClassicalRK4.cc b/source/geometry/magneticfield/src/G4ClassicalRK4.cc index a85227e3c7..eb7fa1ad2f 100644 --- a/source/geometry/magneticfield/src/G4ClassicalRK4.cc +++ b/source/geometry/magneticfield/src/G4ClassicalRK4.cc @@ -21,18 +21,19 @@ // ******************************************************************** // // -// $Id: G4ClassicalRK4.cc,v 1.8 2003/06/16 16:51:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ClassicalRK4.cc,v 1.11 2003/11/05 16:31:48 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// ------------------------------------------------------------------- + #include "G4ClassicalRK4.hh" #include "G4ThreeVector.hh" - ////////////////////////////////////////////////////////////////// // // Constructor sets the number of variables (default = 6) -G4ClassicalRK4::G4ClassicalRK4(G4Mag_EqRhs *EqRhs, G4int numberOfVariables) +G4ClassicalRK4::G4ClassicalRK4(G4EquationOfMotion* EqRhs, G4int numberOfVariables) : G4MagErrorStepper(EqRhs, numberOfVariables) // fNumberOfVariables(numberOfVariables) { @@ -105,12 +106,11 @@ G4ClassicalRK4::DumbStepper( const G4double yIn[], } // NormaliseTangentVector( yOut ); - return ; } // end of DumbStepper .................................................... //////////////////////////////////////////////////////////////////// // -// +// StepWithEst void G4ClassicalRK4::StepWithEst( const G4double*, @@ -122,8 +122,8 @@ G4ClassicalRK4::StepWithEst( const G4double*, const G4double*, G4double* ) { + G4Exception("G4ClassicalRK4::StepWithEst()", "ObsoleteMethod", + FatalException, "Method no longer used."); - G4Exception("ERROR - G4ClassicalRK4::StepWithEst(): method no longer used."); - - return ; } // end of StepWithEst ...................................................... + diff --git a/source/geometry/magneticfield/src/G4DELPHIMagField.cc b/source/geometry/magneticfield/src/G4DELPHIMagField.cc index 0cecb26d5f..5be8a932d8 100644 --- a/source/geometry/magneticfield/src/G4DELPHIMagField.cc +++ b/source/geometry/magneticfield/src/G4DELPHIMagField.cc @@ -20,30 +20,29 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: G4DELPHIMagField.cc,v 1.4 2003/10/31 14:35:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// ------------------------------------------------------------------- + #include "G4DELPHIMagField.hh" #include "globals.hh" -#include "geomdefs.hh" - - G4DELPHIMagField::G4DELPHIMagField() { - ; } //////////////////////////////////////////////////////////////////////// G4DELPHIMagField::~G4DELPHIMagField() { - ; } /////////////////////////////////////////////////////////////////////// -void - G4DELPHIMagField::GetFieldValue( const G4double yTrack[7], - G4double B[3] ) const +void G4DELPHIMagField::GetFieldValue( const G4double yTrack[7], + G4double B[3] ) const { G4int i, n = 8 ; G4double a = 0.001 ; // mm -> m @@ -62,7 +61,8 @@ void P[1] = 4*rz*(r2 - 4.0*z2/3.0) ; P[2] = 6*rz*(r4 - 4*r2*z2 + 1.6*z4) ; P[3] = 8*rz*(r6 - 8*r4*z2 + 9.6*r2*z4 - 64.0*z6/35.0) ; - P[4] = 10*rz*(r8 - 40.0*r6*z2/3.0 + 32*r4*z4 - 128.0*r2*z6/7.0 + 128.0*z8/63.0); + P[4] = 10*rz*(r8 - 40.0*r6*z2/3.0 + 32*r4*z4 + - 128.0*r2*z6/7.0 + 128.0*z8/63.0); P[5] = 0 ; P[6] = 0 ; P[7] = 0 ; @@ -90,4 +90,3 @@ void } // ----------------------------------------------------------------- - diff --git a/source/geometry/magneticfield/src/G4ElectricField.cc b/source/geometry/magneticfield/src/G4ElectricField.cc new file mode 100644 index 0000000000..32ae942053 --- /dev/null +++ b/source/geometry/magneticfield/src/G4ElectricField.cc @@ -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. * +// ******************************************************************** +// +// +// $Id: G4ElectricField.cc,v 1.1 2003/11/05 10:40:59 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// -------------------------------------------------------------------- + +#include "G4ElectricField.hh" + +G4ElectricField::G4ElectricField() +{ +} + +G4ElectricField::~G4ElectricField() +{ +} + +G4ElectricField::G4ElectricField(const G4ElectricField &) + : G4ElectroMagneticField() +{ +} + +G4ElectricField& G4ElectricField::operator = (const G4ElectricField &p) +{ + if (&p == this) return *this; *this = p; return *this; +} diff --git a/source/geometry/magneticfield/src/G4ElectroMagneticField.cc b/source/geometry/magneticfield/src/G4ElectroMagneticField.cc index fbb6886dc3..5173733c41 100644 --- a/source/geometry/magneticfield/src/G4ElectroMagneticField.cc +++ b/source/geometry/magneticfield/src/G4ElectroMagneticField.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ElectroMagneticField.cc,v 1.1 2003/04/02 08:49:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ElectroMagneticField.cc,v 1.2 2003/11/05 10:41:00 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- @@ -37,7 +37,7 @@ G4ElectroMagneticField::~G4ElectroMagneticField() } G4ElectroMagneticField::G4ElectroMagneticField(const G4ElectroMagneticField &r) - : G4MagneticField(r) + : G4Field(r) { } diff --git a/source/geometry/magneticfield/src/G4EqMagElectricField.cc b/source/geometry/magneticfield/src/G4EqMagElectricField.cc index 42a2bc5359..d94ed18dfb 100644 --- a/source/geometry/magneticfield/src/G4EqMagElectricField.cc +++ b/source/geometry/magneticfield/src/G4EqMagElectricField.cc @@ -21,15 +21,22 @@ // ******************************************************************** // // +// $Id: G4EqMagElectricField.cc,v 1.11 2003/11/05 17:31:59 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// // This is the standard right-hand side for equation of motion. // -// The only case another is required is when using a moving reference -// frame ... or extending the class to include additional Forces, -// eg an electric field +// The only case another is required is when using a moving reference +// frame ... or extending the class to include additional Forces, +// eg an electric field // -// 10.11.98 V.Grichine +// 10.11.98 V.Grichine // +// ------------------------------------------------------------------- + #include "G4EqMagElectricField.hh" +#include "globals.hh" void G4EqMagElectricField::SetChargeMomentumMass(G4double particleCharge, // e+ units @@ -81,6 +88,3 @@ G4EqMagElectricField::EvaluateRhsGivenB(const G4double y[], dydx[7] = inverse_velocity; return ; } - - - diff --git a/source/geometry/magneticfield/src/G4EquationOfMotion.cc b/source/geometry/magneticfield/src/G4EquationOfMotion.cc index 107e349d79..bbfde10935 100644 --- a/source/geometry/magneticfield/src/G4EquationOfMotion.cc +++ b/source/geometry/magneticfield/src/G4EquationOfMotion.cc @@ -21,9 +21,11 @@ // ******************************************************************** // // -// $Id: G4EquationOfMotion.cc,v 1.7 2002/06/11 08:34:27 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EquationOfMotion.cc,v 1.8 2003/10/31 14:35:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// ------------------------------------------------------------------- + #include "G4EquationOfMotion.hh" G4EquationOfMotion::~G4EquationOfMotion() diff --git a/source/geometry/magneticfield/src/G4ExplicitEuler.cc b/source/geometry/magneticfield/src/G4ExplicitEuler.cc index c864f91a02..94aef68323 100644 --- a/source/geometry/magneticfield/src/G4ExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ExplicitEuler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExplicitEuler.cc,v 1.5 2002/11/29 13:50:18 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ExplicitEuler.cc,v 1.7 2003/11/05 16:31:49 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Explicit Euler: x_1 = x_0 + h * dx_0 @@ -31,6 +31,7 @@ // Take the current derivative and add it to the current position. // // W.Wander 12/09/97 +// ------------------------------------------------------------------- #include "G4ExplicitEuler.hh" #include "G4ThreeVector.hh" @@ -39,7 +40,7 @@ // // Constructor -G4ExplicitEuler::G4ExplicitEuler(G4Mag_EqRhs *EqRhs, +G4ExplicitEuler::G4ExplicitEuler(G4EquationOfMotion* EqRhs, G4int numberOfVariables) : G4MagErrorStepper(EqRhs, numberOfVariables) { diff --git a/source/geometry/magneticfield/src/G4FieldManager.cc b/source/geometry/magneticfield/src/G4FieldManager.cc index 1542a9babc..7b2d76316d 100644 --- a/source/geometry/magneticfield/src/G4FieldManager.cc +++ b/source/geometry/magneticfield/src/G4FieldManager.cc @@ -21,19 +21,15 @@ // ******************************************************************** // // -// $Id: G4FieldManager.cc,v 1.8 2003/06/20 23:02:45 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FieldManager.cc,v 1.13 2003/11/08 04:08:13 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -#include "G4FieldManager.hh" +// ------------------------------------------------------------------- -G4FieldManager::G4FieldManager() - : fDetectorField(0), fChordFinder(0), fAllocatedChordFinder(false), - fFieldChangesEnergy(false), fDefault_Delta_One_Step_Value(0.25*mm), - fDefault_Delta_Intersection_Val(0.1*mm) -{ - fDelta_One_Step_Value= fDefault_Delta_One_Step_Value; - fDelta_Intersection_Val= fDefault_Delta_Intersection_Val; -} +#include "G4FieldManager.hh" +#include "G4Field.hh" +#include "G4MagneticField.hh" +#include "G4ChordFinder.hh" G4FieldManager::G4FieldManager(G4Field *detectorField, G4ChordFinder *pChordFinder, @@ -42,18 +38,30 @@ G4FieldManager::G4FieldManager(G4Field *detectorField, : fDetectorField(detectorField), fChordFinder(pChordFinder), fAllocatedChordFinder(false), - fFieldChangesEnergy(fieldChangesEnergy), - fDefault_Delta_One_Step_Value(0.25*mm), - fDefault_Delta_Intersection_Val(0.1*mm) + fDefault_Delta_One_Step_Value(0.01*mm), + fDefault_Delta_Intersection_Val(0.001*mm), + fEpsilonMinDefault(5.0e-5), + fEpsilonMaxDefault(0.001), + fEpsilonMin( fEpsilonMinDefault ), + fEpsilonMax( fEpsilonMaxDefault) { fDelta_One_Step_Value= fDefault_Delta_One_Step_Value; fDelta_Intersection_Val= fDefault_Delta_Intersection_Val; + if ( detectorField ) + fFieldChangesEnergy= detectorField->DoesFieldChangeEnergy(); + else + fFieldChangesEnergy= fieldChangesEnergy; } G4FieldManager::G4FieldManager(G4MagneticField *detectorField) : fDetectorField(detectorField), fAllocatedChordFinder(true), - fFieldChangesEnergy(false), fDefault_Delta_One_Step_Value(0.25*mm), - fDefault_Delta_Intersection_Val(0.1*mm) + fFieldChangesEnergy(false), + fDefault_Delta_One_Step_Value(0.01*mm), + fDefault_Delta_Intersection_Val(0.001*mm), + fEpsilonMinDefault(5.0e-5), + fEpsilonMaxDefault(0.001), + fEpsilonMin( fEpsilonMinDefault ), + fEpsilonMax( fEpsilonMaxDefault) { fChordFinder= new G4ChordFinder( detectorField ); fDelta_One_Step_Value= fDefault_Delta_One_Step_Value; @@ -82,3 +90,15 @@ G4FieldManager::CreateChordFinder(G4MagneticField *detectorMagField) fAllocatedChordFinder= true; } +G4bool G4FieldManager::SetDetectorField(G4Field *pDetectorField) +{ + fDetectorField= pDetectorField; + + if ( pDetectorField ) + fFieldChangesEnergy= pDetectorField->DoesFieldChangeEnergy(); + else + fFieldChangesEnergy= false; // No field + + return false; +} + diff --git a/source/geometry/magneticfield/src/G4FieldTrack.cc b/source/geometry/magneticfield/src/G4FieldTrack.cc index 5fbbbb827f..34181c6a9c 100644 --- a/source/geometry/magneticfield/src/G4FieldTrack.cc +++ b/source/geometry/magneticfield/src/G4FieldTrack.cc @@ -21,9 +21,11 @@ // ******************************************************************** // // -// $Id: G4FieldTrack.cc,v 1.5 2003/06/16 16:51:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FieldTrack.cc,v 1.6 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// ------------------------------------------------------------------- + #include "G4FieldTrack.hh" std::ostream& operator<<( std::ostream& os, G4FieldTrack& SixVec) diff --git a/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc b/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc index 8ada3d18af..1a26db3321 100644 --- a/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc +++ b/source/geometry/magneticfield/src/G4HarmonicPolMagField.cc @@ -20,30 +20,30 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: G4HarmonicPolMagField.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------------- + #include "G4HarmonicPolMagField.hh" #include "globals.hh" -#include "geomdefs.hh" - - G4HarmonicPolMagField::G4HarmonicPolMagField() { - ; } ///////////////////////////////////////////////////////////////////////// G4HarmonicPolMagField::~G4HarmonicPolMagField() { - ; } ///////////////////////////////////////////////////////////////////////// -void - G4HarmonicPolMagField::GetFieldValue(const G4double yTrack[7], - G4double B[3] ) const +void G4HarmonicPolMagField::GetFieldValue(const G4double yTrack[7], + G4double B[3] ) const { G4int i ; G4double a = 1.00 ; // mm -> m @@ -53,12 +53,12 @@ void G4double xy = x*y, xz = x*z, yz = y*z, xyz = x*y*z ; static G4double c[24] = { - 0.010, 0.010, 0.010, // 3(0) - 0.0001, 0.0001, 0.0001, 0.0001, 0.0001, // 5(1) - 0.00001, 0.00001, 0.00001, 0.00001, 0.00001, 0.00001, 0.00001, // 7(2) - 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, 0.000001, - 0.0000001, 0.0000001, 0.0000001 // 9(3) - } ; // total : 24 + .010, .010, .010, // 3(0) + .0001, .0001, .0001, .0001, .0001, // 5(1) + .00001, .00001, .00001, .00001, .00001, .00001, .00001, // 7(2) + .000001, .000001, .000001, .000001, .000001, .000001, + .0000001, .0000001, .0000001 // 9(3) + } ; // total : 24 // for(i=0;i<24;i++) // { @@ -89,9 +89,6 @@ void { B[i] = 0.1*B[i] ; } - - return ; } // ----------------------------------------------------------------- - diff --git a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc index 32983c8ff9..869de82382 100644 --- a/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixExplicitEuler.cc @@ -21,23 +21,20 @@ // ******************************************************************** // // -// $Id: G4HelixExplicitEuler.cc,v 1.4 2001/07/11 09:59:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HelixExplicitEuler.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -#include "G4HelixExplicitEuler.hh" -#include "G4ThreeVector.hh" - // // Helix Explicit Euler: x_1 = x_0 + helix(h) // with helix(h) being a helix piece of length h +// most simple approach for solving linear differential equations. +// Take the current derivative and add it to the current position. +// // W.Wander 12/09/97 -// +// ------------------------------------------------------------------- -// ------------------------------------------------------------------------- - -// most simple approach for solving linear differential equations. -// Take the current derivative and add it to the current position. -// +#include "G4HelixExplicitEuler.hh" +#include "G4ThreeVector.hh" void G4HelixExplicitEuler::DumbStepper( const G4double yIn[], @@ -48,5 +45,4 @@ G4HelixExplicitEuler::DumbStepper( const G4double yIn[], AdvanceHelix(yIn, Bfld, h, yOut); // NormaliseTangentVector( yOut ); // this could harm more than it helps - return ; } diff --git a/source/geometry/magneticfield/src/G4HelixHeum.cc b/source/geometry/magneticfield/src/G4HelixHeum.cc index 0a92dc75f9..12c8b3a8e1 100644 --- a/source/geometry/magneticfield/src/G4HelixHeum.cc +++ b/source/geometry/magneticfield/src/G4HelixHeum.cc @@ -21,23 +21,22 @@ // ******************************************************************** // // -// $Id: G4HelixHeum.cc,v 1.4 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HelixHeum.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -#include "G4HelixHeum.hh" -#include "G4ThreeVector.hh" - // // Simple Heum: // x_1 = x_0 + h * // 1/4 * dx(t0,x0) + // 3/4 * dx(t0+2/3*h, x0+2/3*h*(dx(t0+h/3,x0+h/3*dx(t0,x0)))) +// +// Third order solver. +// // W.Wander 12/09/97 -// -// ------------------------------------------------------------------------- +// ------------------------------------------------------------------- -// third order solver -// +#include "G4HelixHeum.hh" +#include "G4ThreeVector.hh" void G4HelixHeum::DumbStepper( const G4double yIn[], @@ -68,6 +67,4 @@ G4HelixHeum::DumbStepper( const G4double yIn[], } // NormaliseTangentVector( yOut ); - - return ; } diff --git a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc index c0d8780f14..fa8101f253 100644 --- a/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4HelixImplicitEuler.cc @@ -21,26 +21,24 @@ // ******************************************************************** // // -// $Id: G4HelixImplicitEuler.cc,v 1.4 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HelixImplicitEuler.cc,v 1.5 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -#include "G4HelixImplicitEuler.hh" -#include "G4ThreeVector.hh" - // // Helix Implicit Euler: // x_1 = x_0 + 1/2 * ( helix(h,t_0,x_0) // + helix(h,t_0+h,x_0+helix(h,t0,x0) ) ) +// Second order solver. +// Take the current derivative and add it to the current position. +// Take the output and its derivative. Add the mean of both derivatives +// to form the final output +// // W.Wander 12/09/97 // - // ------------------------------------------------------------------------- -// second order solver -// Take the current derivative and add it to the current position. -// Take the output and its derivative. Add the mean of both derivatives -// to form the final output -// +#include "G4HelixImplicitEuler.hh" +#include "G4ThreeVector.hh" void G4HelixImplicitEuler::DumbStepper( const G4double yIn[], @@ -68,6 +66,4 @@ G4HelixImplicitEuler::DumbStepper( const G4double yIn[], yOut[i] = 0.5 * ( yTemp[i] + yTemp2[i] ); // NormaliseTangentVector( yOut ); - - return ; } diff --git a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc index 6cf3432eb5..b54bd6a6d1 100644 --- a/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4HelixSimpleRunge.cc @@ -21,24 +21,22 @@ // ******************************************************************** // // -// $Id: G4HelixSimpleRunge.cc,v 1.5 2001/07/11 09:59:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HelixSimpleRunge.cc,v 1.6 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -#include "G4HelixSimpleRunge.hh" -#include "G4ThreeVector.hh" - // // Simple Runge: // x_1 = x_0 + h * ( dx( t_0+h/2, x_0 + h/2 * dx( t_0, x_0) ) ) -// W.Wander 12/09/97 // - +// Second order solver. +// Take the derivative at a position to be assumed at the middle of the +// Step and add it to the current position. +// +// W.Wander 12/09/97 // ------------------------------------------------------------------------- -// second order solver -// take the derivative at a position to be assumed at the middle of the -// Step and add it to the current position. -// +#include "G4HelixSimpleRunge.hh" +#include "G4ThreeVector.hh" void G4HelixSimpleRunge::DumbStepper( const G4double yIn[], @@ -58,6 +56,4 @@ G4HelixSimpleRunge::DumbStepper( const G4double yIn[], AdvanceHelix( yIn, Bfld_midpoint, h, yOut); // NormaliseTangentVector( yOut ); - - return ; } diff --git a/source/geometry/magneticfield/src/G4ImplicitEuler.cc b/source/geometry/magneticfield/src/G4ImplicitEuler.cc index 27c308d2db..994d763492 100644 --- a/source/geometry/magneticfield/src/G4ImplicitEuler.cc +++ b/source/geometry/magneticfield/src/G4ImplicitEuler.cc @@ -21,22 +21,22 @@ // ******************************************************************** // // -// $Id: G4ImplicitEuler.cc,v 1.6 2003/06/16 16:51:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ImplicitEuler.cc,v 1.8 2003/11/05 16:31:49 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Implicit Euler: // // x_1 = x_0 + h/2 * ( dx(t_0,x_0) + dx(t_0+h,x_0+h*dx(t_0,x_0) ) ) // -// second order solver +// Second order solver. // Take the current derivative and add it to the current position. // Take the output and its derivative. Add the mean of both derivatives -// to form the final output +// to form the final output. // -// W.Wander 12/09/97 -// 6.11.98 V.Grichine, new constructor, fNumberOfVariables +// W.Wander 12/09/97 // +// -------------------------------------------------------------------- #include "G4ImplicitEuler.hh" #include "G4ThreeVector.hh" @@ -45,7 +45,7 @@ // // Constructor -G4ImplicitEuler::G4ImplicitEuler(G4Mag_EqRhs *EqRhs, +G4ImplicitEuler::G4ImplicitEuler(G4EquationOfMotion *EqRhs, G4int numberOfVariables): G4MagErrorStepper(EqRhs, numberOfVariables) { diff --git a/source/geometry/magneticfield/src/G4LineCurrentMagField.cc b/source/geometry/magneticfield/src/G4LineCurrentMagField.cc index 9a20ba65f6..2e4d98b9da 100644 --- a/source/geometry/magneticfield/src/G4LineCurrentMagField.cc +++ b/source/geometry/magneticfield/src/G4LineCurrentMagField.cc @@ -20,11 +20,12 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4LineCurrentMagField.cc,v 1.4 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// ------------------------------------------------------------------- + #include "G4LineCurrentMagField.hh" #include "globals.hh" -#include "geomdefs.hh" - - G4LineCurrentMagField::G4LineCurrentMagField(G4double pFieldConstant) { @@ -34,15 +35,13 @@ G4LineCurrentMagField::G4LineCurrentMagField(G4double pFieldConstant) G4LineCurrentMagField::~G4LineCurrentMagField() { - ; } /////////////////////////////////////////////////////////////////////////// -void - G4LineCurrentMagField::GetFieldValue( const G4double yTrack[7], - G4double B[3] ) const +void G4LineCurrentMagField::GetFieldValue( const G4double yTrack[7], + G4double B[3] ) const { // G4double fFieldConstant = 100 ; G4double a = 1.00*mm ; // mm -> m @@ -53,8 +52,6 @@ void B[0] = -Br*y/r ; B[1] = Br*x/r ; B[2] = 0 ; - return ; } // ----------------------------------------------------------------- - diff --git a/source/geometry/magneticfield/src/G4LineSection.cc b/source/geometry/magneticfield/src/G4LineSection.cc index d33ed2499b..165ff50b4a 100644 --- a/source/geometry/magneticfield/src/G4LineSection.cc +++ b/source/geometry/magneticfield/src/G4LineSection.cc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: G4LineSection.cc,v 1.6 2001/12/04 15:10:01 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LineSection.cc,v 1.8 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// typedef double G4double; +// -------------------------------------------------------------------- #include "G4LineSection.hh" @@ -38,7 +38,8 @@ G4LineSection::G4LineSection( const G4ThreeVector& PntA, G4double distABsquared = VecAtoB.mag2() ; if ( distABsquared == 0.0) { - G4Exception("Equal points in G4LineSection::G4LineSection: line->point ?") ; + G4Exception("G4LineSection::G4LineSection()", "WrongArgumentValue", + FatalException, "Equal points in input (line->point) ?") ; } else { @@ -103,5 +104,3 @@ G4double G4LineSection::Distline( const G4ThreeVector& OtherPnt, return LineAB.Dist( OtherPnt ); } - - diff --git a/source/geometry/magneticfield/src/G4MagErrorStepper.cc b/source/geometry/magneticfield/src/G4MagErrorStepper.cc index 25a648669f..3925a81141 100644 --- a/source/geometry/magneticfield/src/G4MagErrorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagErrorStepper.cc @@ -21,11 +21,12 @@ // ******************************************************************** // // -// $Id: G4MagErrorStepper.cc,v 1.11 2002/11/20 18:14:00 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagErrorStepper.cc,v 1.12 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// -------------------------------------------------------------------- + #include "G4MagErrorStepper.hh" -#include "G4ThreeVector.hh" #include "G4LineSection.hh" G4MagErrorStepper::~G4MagErrorStepper() diff --git a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc index 5e1ab276b3..062a4acca7 100644 --- a/source/geometry/magneticfield/src/G4MagHelicalStepper.cc +++ b/source/geometry/magneticfield/src/G4MagHelicalStepper.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4MagHelicalStepper.cc,v 1.12 2003/04/02 08:53:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagHelicalStepper.cc,v 1.13 2003/10/31 14:35:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// -------------------------------------------------------------------- + #include "G4MagHelicalStepper.hh" -#include "G4ThreeVector.hh" #include "G4LineSection.hh" -// #include "G4MagneticField.hh" #include "G4Mag_EqRhs.hh" // given a purely magnetic field a better approach than adding a straight line diff --git a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc index 278094d4d1..84cb4b3aad 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc @@ -21,26 +21,27 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorDriver.cc,v 1.39 2003/06/25 09:03:27 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagIntegratorDriver.cc,v 1.41 2003/10/31 14:35:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // // Implementation for class G4MagInt_Driver -// Tracking in space dependent magnetic field +// Tracking in space dependent magnetic field // // History of major changes: // 8 Nov 01 J. Apostolakis: Respect minimum step in AccurateAdvance // 27 Jul 99 J. Apostolakis: Ensured that AccurateAdvance does not loop -// due to very small eps & step size (precision) +// due to very small eps & step size (precision) // 28 Jan 98 W. Wander: Added ability for low order integrators // 7 Oct 96 V. Grichine First version -#include -#include "G4ios.hh" -#include "G4MagIntegratorDriver.hh" -#include "G4FieldTrack.hh" +// -------------------------------------------------------------------- + +#include "globals.hh" #include "geomdefs.hh" // for kCarTolerance #include +#include "G4MagIntegratorDriver.hh" +#include "G4FieldTrack.hh" // Stepsize can increase by no more than 5.0 // and decrease by no more than 1/10. = 0.1 @@ -568,7 +569,8 @@ G4bool G4MagInt_Driver::QuickAdvance( // G4double& dyerr_ener_sq // Future ) { - G4Exception("Not implemented in this version"); + G4Exception("G4MagInt_Driver::QuickAdvance()", "NotImplemented", + FatalException, "Not yet implemented."); // Use the parameters of this method, to please compiler dchord_step = dyerr_pos_sq = hstep * hstep * dydx[0]; @@ -652,7 +654,8 @@ G4bool G4MagInt_Driver::QuickAdvance( G4double& dchord_step, G4double& dyerr ) // in length { - G4Exception("Not implemented in current version"); + G4Exception("G4MagInt_Driver::QuickAdvance()", "NotImplemented", + FatalException, "Not yet implemented."); dyerr = dchord_step = hstep * yarrin[0] * dydx[0]; yarrout[0]= yarrin[0]; diff --git a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc index e6f3b884cd..dd30c488f4 100644 --- a/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc +++ b/source/geometry/magneticfield/src/G4MagIntegratorStepper.cc @@ -21,9 +21,11 @@ // ******************************************************************** // // -// $Id: G4MagIntegratorStepper.cc,v 1.9 2003/06/16 16:51:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagIntegratorStepper.cc,v 1.10 2003/10/31 14:35:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// -------------------------------------------------------------------- + #include "G4MagIntegratorStepper.hh" // Constructor for stepper abstract base class. @@ -42,4 +44,3 @@ G4MagIntegratorStepper::G4MagIntegratorStepper(G4EquationOfMotion* Equation, G4MagIntegratorStepper::~G4MagIntegratorStepper() { } - diff --git a/source/geometry/magneticfield/src/G4Mag_EqRhs.cc b/source/geometry/magneticfield/src/G4Mag_EqRhs.cc index e44fe7fbe3..40dd743e3c 100644 --- a/source/geometry/magneticfield/src/G4Mag_EqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_EqRhs.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mag_EqRhs.cc,v 1.8 2003/04/02 08:53:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mag_EqRhs.cc,v 1.10 2003/11/05 16:33:55 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // This is the standard right-hand side for equation of motion // in a pure Magnetic Field . @@ -33,9 +33,11 @@ // // J. Apostolakis, January 13th, 1997 // +// -------------------------------------------------------------------- + #include "G4MagneticField.hh" #include "G4Mag_EqRhs.hh" -#include "G4EquationOfMotion.hh" +#include "globals.hh" const G4double G4Mag_EqRhs::fUnitConstant = 0.299792458 * (GeV/(tesla*m)); diff --git a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc index 522953dcaf..7385aa41b9 100644 --- a/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_SpinEqRhs.cc @@ -21,18 +21,27 @@ // ******************************************************************** // // +// $Id: G4Mag_SpinEqRhs.cc,v 1.9 2003/10/31 14:35:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// This is the standard right-hand side for equation of motion. -// This version of the right-hand side includes -// the three components of the particle's spin. +// This is the standard right-hand side for equation of motion. +// This version of the right-hand side includes the three components +// of the particle's spin. // // J. Apostolakis, February 8th, 1999 // P. Gumplinger, February 8th, 1999 // D. Cote-Ahern, P. Gumplinger, April 11th, 2001 // +// -------------------------------------------------------------------- + #include "G4Mag_SpinEqRhs.hh" +#include "G4MagneticField.hh" #include "G4ThreeVector.hh" -#include "globals.hh" + +G4Mag_SpinEqRhs::G4Mag_SpinEqRhs( G4MagneticField* MagField ) + : G4Mag_EqRhs( MagField ) {} + +G4Mag_SpinEqRhs::~G4Mag_SpinEqRhs() {} void G4Mag_SpinEqRhs::SetChargeMomentumMass(G4double particleCharge, // in e+ units diff --git a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc index 757036adc2..434f7b587f 100644 --- a/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc +++ b/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc @@ -21,24 +21,31 @@ // ******************************************************************** // // -// $Id: G4Mag_UsualEqRhs.cc,v 1.8 2002/11/09 02:58:14 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mag_UsualEqRhs.cc,v 1.10 2003/11/05 17:31:31 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // This is the 'standard' right-hand side for the equation of motion -// of a charged particle in a magnetic field. +// of a charged particle in a magnetic field. // // Initial version: J. Apostolakis, January 13th, 1997 -// Modified: J. Apostolakis, November 9th, 2002 // +// -------------------------------------------------------------------- + #include "G4Mag_UsualEqRhs.hh" +#include "G4MagneticField.hh" + +G4Mag_UsualEqRhs::G4Mag_UsualEqRhs( G4MagneticField* MagField ) + : G4Mag_EqRhs( MagField ) {} + +G4Mag_UsualEqRhs::~G4Mag_UsualEqRhs() {} void G4Mag_UsualEqRhs::EvaluateRhsGivenB( const G4double y[], - const G4double B[3], - G4double dydx[] ) const + const G4double B[3], + G4double dydx[] ) const { - G4double momentum_mag_square = sqr(y[3]) + sqr(y[4]) + sqr(y[5]); + G4double momentum_mag_square = y[3]*y[3] + y[4]*y[4] + y[5]*y[5]; G4double inv_momentum_magnitude = 1.0 / sqrt( momentum_mag_square ); G4double cof = FCof()*inv_momentum_magnitude; diff --git a/source/geometry/magneticfield/src/G4MagneticField.cc b/source/geometry/magneticfield/src/G4MagneticField.cc index 543c10170c..cb9980cde6 100644 --- a/source/geometry/magneticfield/src/G4MagneticField.cc +++ b/source/geometry/magneticfield/src/G4MagneticField.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MagneticField.cc,v 1.1 2003/04/02 08:49:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MagneticField.cc,v 1.2 2003/11/05 10:40:59 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- @@ -37,7 +37,7 @@ G4MagneticField::~G4MagneticField() } G4MagneticField::G4MagneticField(const G4MagneticField &) - : G4Field() + : G4ElectroMagneticField() { } diff --git a/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc b/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc index bf05a5d84b..6db1f58ff3 100644 --- a/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc +++ b/source/geometry/magneticfield/src/G4QuadrupoleMagField.cc @@ -20,11 +20,13 @@ // * statement, and all its terms. * // ******************************************************************** // +// +// $Id: G4QuadrupoleMagField.cc,v 1.3 2003/10/31 14:35:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------------- + #include "G4QuadrupoleMagField.hh" -#include "globals.hh" -#include "geomdefs.hh" - - G4QuadrupoleMagField::G4QuadrupoleMagField(G4double pGradient) { @@ -35,22 +37,15 @@ G4QuadrupoleMagField::G4QuadrupoleMagField(G4double pGradient) G4QuadrupoleMagField::~G4QuadrupoleMagField() { - ; } //////////////////////////////////////////////////////////////////////// - -void - G4QuadrupoleMagField::GetFieldValue( const G4double y[7], - G4double B[3] ) const +void G4QuadrupoleMagField::GetFieldValue( const G4double y[7], + G4double B[3] ) const { // G4double fGradient = 0.001 ; // Tesla/mm B[0] = fGradient*y[1] ; B[1] = fGradient*y[0] ; B[2] = 0 ; - return ; } - - - diff --git a/source/geometry/magneticfield/src/G4RKG3_Stepper.cc b/source/geometry/magneticfield/src/G4RKG3_Stepper.cc index 731ff0c96c..20793887c7 100644 --- a/source/geometry/magneticfield/src/G4RKG3_Stepper.cc +++ b/source/geometry/magneticfield/src/G4RKG3_Stepper.cc @@ -21,12 +21,25 @@ // ******************************************************************** // // -// $Id: G4RKG3_Stepper.cc,v 1.7 2003/04/02 08:52:21 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4RKG3_Stepper.cc,v 1.9 2003/10/31 14:35:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// ------------------------------------------------------------------- + #include "G4RKG3_Stepper.hh" -#include "G4ThreeVector.hh" #include "G4LineSection.hh" +#include "G4Mag_EqRhs.hh" + +G4RKG3_Stepper::G4RKG3_Stepper(G4Mag_EqRhs *EqRhs) + : G4MagIntegratorStepper(EqRhs,6) +{ + G4Exception("G4RKG3_Stepper::G4RKG3_Stepper()", "NotImplemented", + FatalException, "Stepper not yet available."); +} + +G4RKG3_Stepper::~G4RKG3_Stepper() +{ +} void G4RKG3_Stepper::Stepper( const G4double yInput[7], const G4double dydx[7], @@ -87,7 +100,6 @@ void G4RKG3_Stepper::Stepper( const G4double yInput[7], // beta2 += beTemp2 ; // beta2 *= 0.5 ; // NormaliseTangentVector( yOut ); // Deleted - return ; } // --------------------------------------------------------------------------- @@ -107,8 +119,8 @@ void G4RKG3_Stepper::StepWithEst( const G4double*, G4double* ) { - G4Exception(" ERROR - G4RKG3_Stepper::StepWithEst(): method no longer used."); - return ; + G4Exception("G4RKG3_Stepper::StepWithEst()", "ObsoleteMethod", + FatalException, "Method no longer used."); } // ----------------------------------------------------------------- @@ -171,8 +183,6 @@ void G4RKG3_Stepper::StepNoErr(const G4double tIn[7], } // NormaliseTangentVector( tOut ); #endif - - return ; } // --------------------------------------------------------------------------- diff --git a/source/geometry/magneticfield/src/G4SimpleHeum.cc b/source/geometry/magneticfield/src/G4SimpleHeum.cc index 555cb9b7b5..916f8bf462 100644 --- a/source/geometry/magneticfield/src/G4SimpleHeum.cc +++ b/source/geometry/magneticfield/src/G4SimpleHeum.cc @@ -21,19 +21,18 @@ // ******************************************************************** // // -// $Id: G4SimpleHeum.cc,v 1.5 2001/07/11 09:59:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SimpleHeum.cc,v 1.7 2003/11/05 16:31:49 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Simple Heum: // x_1 = x_0 + h * // 1/4 * dx(t0,x0) + // 3/4 * dx(t0+2/3*h, x0+2/3*h*(dx(t0+h/3,x0+h/3*dx(t0,x0)))) // -// third order solver +// Third order solver. // // W.Wander 12/09/97 -// 6.11.98. V.Grichine new data member fNumberOfVariables - +// ------------------------------------------------------------------- #include "G4SimpleHeum.hh" #include "G4ThreeVector.hh" @@ -42,7 +41,7 @@ // // Constructor -G4SimpleHeum::G4SimpleHeum(G4Mag_EqRhs *EqRhs, G4int num_variables): +G4SimpleHeum::G4SimpleHeum(G4EquationOfMotion *EqRhs, G4int num_variables): G4MagErrorStepper(EqRhs, num_variables), fNumberOfVariables(num_variables) { @@ -101,6 +100,4 @@ G4SimpleHeum::DumbStepper( const G4double yIn[], } // NormaliseTangentVector( yOut ); - - return ; } diff --git a/source/geometry/magneticfield/src/G4SimpleRunge.cc b/source/geometry/magneticfield/src/G4SimpleRunge.cc index 6294a23e8d..deacf9d3ec 100644 --- a/source/geometry/magneticfield/src/G4SimpleRunge.cc +++ b/source/geometry/magneticfield/src/G4SimpleRunge.cc @@ -21,22 +21,20 @@ // ******************************************************************** // // -// $Id: G4SimpleRunge.cc,v 1.7 2003/06/16 16:51:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SimpleRunge.cc,v 1.9 2003/11/05 16:31:49 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Simple Runge: // // x_1 = x_0 + h * ( dx( t_0+h/2, x_0 + h/2 * dx( t_0, x_0) ) ) // -// second order solver -// take the derivative at a position to be assumed at the middle of the -// Step and add it to the current position. +// Second order solver. +// Takes the derivative at a position to be assumed at the middle of the +// Step and adds it to the current position. // // // W.Wander 12/09/97 -// 6.11.98 V.Grichine new data member fNumberOfVariables -// - +// ------------------------------------------------------------------- #include "G4SimpleRunge.hh" #include "G4ThreeVector.hh" @@ -45,7 +43,7 @@ // // Constructor -G4SimpleRunge::G4SimpleRunge(G4Mag_EqRhs *EqRhs, G4int numberOfVariables) +G4SimpleRunge::G4SimpleRunge(G4EquationOfMotion* EqRhs, G4int numberOfVariables) : G4MagErrorStepper(EqRhs, numberOfVariables), fNumberOfVariables(numberOfVariables) { @@ -94,6 +92,4 @@ G4SimpleRunge::DumbStepper( const G4double yIn[], { yOut[i] = yIn[i] + h * ( dydxTemp[i] ); } - - return ; } diff --git a/source/geometry/magneticfield/src/G4UniformElectricField.cc b/source/geometry/magneticfield/src/G4UniformElectricField.cc index af962f78b1..d26cd18ac4 100644 --- a/source/geometry/magneticfield/src/G4UniformElectricField.cc +++ b/source/geometry/magneticfield/src/G4UniformElectricField.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UniformElectricField.cc,v 1.7 2003/04/02 08:50:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UniformElectricField.cc,v 1.10 2003/11/05 10:41:00 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // @@ -30,9 +30,9 @@ // // 30.1.97 V.Grichine // +// ------------------------------------------------------------------- + #include "G4UniformElectricField.hh" -#include "globals.hh" -#include "geomdefs.hh" G4UniformElectricField::G4UniformElectricField(const G4ThreeVector FieldVector ) { @@ -61,7 +61,8 @@ G4UniformElectricField::G4UniformElectricField(G4double vField, } else { - G4Exception("Invalid parameters in G4UniformElectricField::G4UniformElectricField") ; + G4Exception("G4UniformElectricField::G4UniformElectricField()", + "WrongArgumentValue", FatalException, "Invalid parameters."); } } @@ -70,7 +71,7 @@ G4UniformElectricField::~G4UniformElectricField() } G4UniformElectricField::G4UniformElectricField (const G4UniformElectricField &p) - : G4ElectroMagneticField(p) + : G4ElectricField(p) { for (G4int i=0; i<6; i++) fFieldComponents[i] = p.fFieldComponents[i]; @@ -86,7 +87,6 @@ G4UniformElectricField::operator = (const G4UniformElectricField &p) // ------------------------------------------------------------------------ - void G4UniformElectricField::GetFieldValue (const G4double[4], G4double *fieldBandE ) const { @@ -96,6 +96,4 @@ void G4UniformElectricField::GetFieldValue (const G4double[4], fieldBandE[3]= fFieldComponents[3] ; fieldBandE[4]= fFieldComponents[4] ; fieldBandE[5]= fFieldComponents[5] ; - return ; } - diff --git a/source/geometry/magneticfield/src/G4UniformMagField.cc b/source/geometry/magneticfield/src/G4UniformMagField.cc index bb8c866adb..00e35b06c7 100644 --- a/source/geometry/magneticfield/src/G4UniformMagField.cc +++ b/source/geometry/magneticfield/src/G4UniformMagField.cc @@ -21,18 +21,17 @@ // ******************************************************************** // // -// $Id: G4UniformMagField.cc,v 1.6 2003/04/02 08:50:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UniformMagField.cc,v 1.8 2003/10/31 14:35:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// // // Class for creation of uniform Magnetic Field // // 30.1.97 V.Grichine // +// ------------------------------------------------------------------- + #include "G4UniformMagField.hh" -#include "globals.hh" -#include "geomdefs.hh" G4UniformMagField::G4UniformMagField(const G4ThreeVector& FieldVector ) { @@ -63,13 +62,13 @@ G4UniformMagField::G4UniformMagField(G4double vField, } else { - G4Exception("Invalid parameters in G4UniformMagField::G4UniformMagField") ; + G4Exception("G4UniformMagField::G4UniformMagField()", + "WrongArgumentValue", FatalException, "Invalid parameters.") ; } } G4UniformMagField::~G4UniformMagField() { - ; } G4UniformMagField::G4UniformMagField (const G4UniformMagField &p) @@ -89,13 +88,10 @@ G4UniformMagField& G4UniformMagField::operator = (const G4UniformMagField &p) // ------------------------------------------------------------------------ - void G4UniformMagField::GetFieldValue (const G4double [4], G4double *B ) const { B[0]= fFieldComponents[0] ; B[1]= fFieldComponents[1] ; B[2]= fFieldComponents[2] ; - return ; } - diff --git a/source/geometry/management/History b/source/geometry/management/History index df4c6a1f00..6638c98b8c 100644 --- a/source/geometry/management/History +++ b/source/geometry/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.60 2003/05/22 15:46:52 gcosmo Exp $ +$Id: History,v 1.66 2003/12/01 14:54:14 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,50 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 01, 2003 P.Gumplinger geommng-V05-02-05 +- G4LogicalSurface[.hh.icc]: modified to use G4SurfaceProperty instead + of G4OpticalSurface. Requires tag "materials-V05-02-00". + +Nov 04, 2003 G.Cosmo geommng-V05-02-04 +- G4LogicalVolume.hh: added inclusion of assert.h required by .icc file. + +Nov 01, 2003 G.Cosmo geommng-V05-02-03 +- Code cleanup and headers inclusion review (replaced by forward + declarations where necessary). +- G4VPVParameterisation: added G4Polycone and G4Polyhedra to list of + possible parameterisations by dimension. + +Oct 24, 2003 G.Cosmo geommng-V05-02-02 +- Migrated calls to G4Exception to new scheme. + +Oct 21, 2003 M.Asai geommng-V05-02-01 +- Introducing G4VUserRegionInformation class. +- G4VPVParameterisation: added G4Orb. (V.Grichine) + +Sep 30, 2003 G. Cosmo geommng-V05-02-00 +- Logical reorganisation and restructure of modules. + Moved files to geometry/volumes: + G4AssemblyVolume[.hh.icc.cc] + G4PVParameterised[.hh.cc] + G4PVPlacement[.hh.cc] + G4PVReplica[.hh.cc] + Moved files to new module geometry/navigation: + G4DrawVoxels[.hh.cc] + Imported files from geometry/volumes: + G4BlockingList[.hh.icc.cc] + G4IdentityTrajectoryFilter[.hh.cc] + G4VCurvedTrajectoryFilter[.hh.cc] +- G4VPhysicalVolume[.hh.icc.cc]: + o Removed pointer to mother physical volume and related accessor + methods: SetMother()/GetMother(). + o Removed pure virtual method Setup(G4VPhysicalVolume*), no longer + necessary. Subclasses will require modification as well. +- G4LogicalVolume.icc: + o Updated/fixed initialisation of data and fast-simulation manager + according to above changes. +- G4SmartVoxelHeader.cc: + o Cleared usage of PV-Setup(), according to above changes. + May 19, 2003 G. Cosmo geommng-V05-01-01 - G4LogicalVolume.cc: notify removal of root-logical-volume from G4Region in case of deletion of a logical-volume from the destructor, instead that diff --git a/source/geometry/management/include/G4AffineTransform.hh b/source/geometry/management/include/G4AffineTransform.hh index 75ed0905c9..0e32b56054 100644 --- a/source/geometry/management/include/G4AffineTransform.hh +++ b/source/geometry/management/include/G4AffineTransform.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AffineTransform.hh,v 1.4 2001/07/11 09:59:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AffineTransform.hh,v 1.5 2003/11/02 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4AffineTransform @@ -43,10 +43,10 @@ // // Member data: // -// G4double rxx,rxy,rxz; -// G4double ryx,ryy,ryz; A 3x3 rotation matrix - net rotation -// G4double rzx,rzy,rzz; -// G4double tx,ty,tz; Net translation +// G4double rxx,rxy,rxz; +// G4double ryx,ryy,ryz; A 3x3 rotation matrix - net rotation +// G4double rzx,rzy,rzz; +// G4double tx,ty,tz; Net translation // History: // Paul R C Kent 6 Aug 1996 - initial version @@ -56,11 +56,11 @@ // replaced by access via public access functions // - conversion of the rotation matrix to angle & axis used to get // a possibility to remove "friend" from the G4RotationMatrix class - +// -------------------------------------------------------------------- #ifndef G4AFFINETRANSFORM_HH #define G4AFFINETRANSFORM_HH -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" #include "G4RotationMatrix.hh" @@ -79,14 +79,14 @@ public: // with description G4AffineTransform(const G4RotationMatrix &rot); // Rotation only: under t'form rotate by rot - G4AffineTransform(const G4RotationMatrix &rot, - const G4ThreeVector &tlate); + G4AffineTransform(const G4RotationMatrix &rot, + const G4ThreeVector &tlate); // Under t'form: rotate by rot then translate by tlate G4AffineTransform(const G4RotationMatrix *rot, - const G4ThreeVector &tlate); + const G4ThreeVector &tlate); // Optionally rotate by *rot then translate by tlate - rot may be null - + G4AffineTransform operator * (const G4AffineTransform &tf) const; // Compound Transforms: // tf2=tf2*tf1 equivalent to tf2*=tf1 @@ -98,14 +98,14 @@ public: // with description G4AffineTransform& Product(const G4AffineTransform &tf1, - const G4AffineTransform &tf2); + const G4AffineTransform &tf2); // 'Products' for avoiding (potential) temporaries: // c.Product(a,b) equivalent to c=a*b // c.InverseProduct(a*b,b ) equivalent to c=a // (Modifying) Sets self=tf1*tf2; Returns self reference G4AffineTransform& InverseProduct(const G4AffineTransform &tf1, - const G4AffineTransform &tf2); + const G4AffineTransform &tf2); // (Modifying) Sets self=tf1*(tf2^-1); Returns self reference G4ThreeVector TransformPoint(const G4ThreeVector &vec) const; @@ -113,10 +113,10 @@ public: // with description G4ThreeVector TransformAxis(const G4ThreeVector &axis) const; // Transform the specified axis: returns - + void ApplyPointTransform(G4ThreeVector &vec) const; // Transform the specified point (in place): sets vec=vec*rot+tlate - + void ApplyAxisTransform(G4ThreeVector &axis) const; // Transform the specified axis (in place): sets axis=axis*rot; @@ -154,8 +154,8 @@ private: G4AffineTransform(const G4double prxx,const G4double prxy,const G4double prxz, const G4double pryx,const G4double pryy,const G4double pryz, - const G4double przx,const G4double przy,const G4double przz, - const G4double ptx, const G4double pty, const G4double ptz ); + const G4double przx,const G4double przy,const G4double przz, + const G4double ptx, const G4double pty, const G4double ptz ); G4double rxx,rxy,rxz; G4double ryx,ryy,ryz; diff --git a/source/geometry/management/include/G4AffineTransform.icc b/source/geometry/management/include/G4AffineTransform.icc index aab6668103..4a71a37538 100644 --- a/source/geometry/management/include/G4AffineTransform.icc +++ b/source/geometry/management/include/G4AffineTransform.icc @@ -21,45 +21,46 @@ // ******************************************************************** // // -// $Id: G4AffineTransform.icc,v 1.6 2002/01/08 12:38:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AffineTransform.icc,v 1.7 2003/11/02 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4AffineTransformation Inline implementation // +// -------------------------------------------------------------------- -inline G4AffineTransform::G4AffineTransform() : - rxx(1),rxy(0),rxz(0), - ryx(0),ryy(1),ryz(0), - rzx(0),rzy(0),rzz(1), - tx(0),ty(0),tz(0) +inline G4AffineTransform::G4AffineTransform() + : rxx(1),rxy(0),rxz(0), + ryx(0),ryy(1),ryz(0), + rzx(0),rzy(0),rzz(1), + tx(0),ty(0),tz(0) {} -inline G4AffineTransform::G4AffineTransform(const G4ThreeVector& tlate) : - rxx(1),rxy(0),rxz(0), - ryx(0),ryy(1),ryz(0), - rzx(0),rzy(0),rzz(1), - tx(tlate.x()),ty(tlate.y()),tz(tlate.z()) +inline G4AffineTransform::G4AffineTransform(const G4ThreeVector& tlate) + : rxx(1),rxy(0),rxz(0), + ryx(0),ryy(1),ryz(0), + rzx(0),rzy(0),rzz(1), + tx(tlate.x()),ty(tlate.y()),tz(tlate.z()) {} -inline G4AffineTransform::G4AffineTransform(const G4RotationMatrix& rot) : - rxx(rot.xx()),rxy(rot.xy()),rxz(rot.xz()), - ryx(rot.yx()),ryy(rot.yy()),ryz(rot.yz()), - rzx(rot.zx()),rzy(rot.zy()),rzz(rot.zz()), - tx(0),ty(0),tz(0) +inline G4AffineTransform::G4AffineTransform(const G4RotationMatrix& rot) + : rxx(rot.xx()),rxy(rot.xy()),rxz(rot.xz()), + ryx(rot.yx()),ryy(rot.yy()),ryz(rot.yz()), + rzx(rot.zx()),rzy(rot.zy()),rzz(rot.zz()), + tx(0),ty(0),tz(0) {} inline G4AffineTransform::G4AffineTransform( const G4RotationMatrix& rot, - const G4ThreeVector& tlate ) : - rxx(rot.xx()),rxy(rot.xy()),rxz(rot.xz()), - ryx(rot.yx()),ryy(rot.yy()),ryz(rot.yz()), - rzx(rot.zx()),rzy(rot.zy()),rzz(rot.zz()), - tx(tlate.x()),ty(tlate.y()),tz(tlate.z()) + const G4ThreeVector& tlate ) + : rxx(rot.xx()),rxy(rot.xy()),rxz(rot.xz()), + ryx(rot.yx()),ryy(rot.yy()),ryz(rot.yz()), + rzx(rot.zx()),rzy(rot.zy()),rzz(rot.zz()), + tx(tlate.x()),ty(tlate.y()),tz(tlate.z()) {} inline G4AffineTransform::G4AffineTransform( const G4RotationMatrix *rot, - const G4ThreeVector& tlate) : - tx(tlate.x()),ty(tlate.y()),tz(tlate.z()) + const G4ThreeVector& tlate) + : tx(tlate.x()),ty(tlate.y()),tz(tlate.z()) { if (rot) { @@ -78,315 +79,317 @@ inline G4AffineTransform::G4AffineTransform( const G4RotationMatrix *rot, inline G4AffineTransform:: G4AffineTransform( const G4double prxx,const G4double prxy,const G4double prxz, - const G4double pryx,const G4double pryy,const G4double pryz, - const G4double przx,const G4double przy,const G4double przz, - const G4double ptx,const G4double pty,const G4double ptz) : - rxx(prxx),rxy(prxy),rxz(prxz), - ryx(pryx),ryy(pryy),ryz(pryz), - rzx(przx),rzy(przy),rzz(przz), - tx(ptx),ty(pty),tz(ptz) + const G4double pryx,const G4double pryy,const G4double pryz, + const G4double przx,const G4double przy,const G4double przz, + const G4double ptx,const G4double pty,const G4double ptz) + : rxx(prxx),rxy(prxy),rxz(prxz), + ryx(pryx),ryy(pryy),ryz(pryz), + rzx(przx),rzy(przy),rzz(przz), + tx(ptx),ty(pty),tz(ptz) {} -inline G4AffineTransform G4AffineTransform::operator * (const G4AffineTransform& tf) const +inline G4AffineTransform +G4AffineTransform::operator * (const G4AffineTransform& tf) const { - return G4AffineTransform( - rxx*tf.rxx+rxy*tf.ryx+rxz*tf.rzx, - rxx*tf.rxy+rxy*tf.ryy+rxz*tf.rzy, - rxx*tf.rxz+rxy*tf.ryz+rxz*tf.rzz, + return G4AffineTransform( + rxx*tf.rxx+rxy*tf.ryx+rxz*tf.rzx, + rxx*tf.rxy+rxy*tf.ryy+rxz*tf.rzy, + rxx*tf.rxz+rxy*tf.ryz+rxz*tf.rzz, - ryx*tf.rxx+ryy*tf.ryx+ryz*tf.rzx, - ryx*tf.rxy+ryy*tf.ryy+ryz*tf.rzy, - ryx*tf.rxz+ryy*tf.ryz+ryz*tf.rzz, + ryx*tf.rxx+ryy*tf.ryx+ryz*tf.rzx, + ryx*tf.rxy+ryy*tf.ryy+ryz*tf.rzy, + ryx*tf.rxz+ryy*tf.ryz+ryz*tf.rzz, - rzx*tf.rxx+rzy*tf.ryx+rzz*tf.rzx, - rzx*tf.rxy+rzy*tf.ryy+rzz*tf.rzy, - rzx*tf.rxz+rzy*tf.ryz+rzz*tf.rzz, - - tx*tf.rxx+ty*tf.ryx+tz*tf.rzx+tf.tx, - tx*tf.rxy+ty*tf.ryy+tz*tf.rzy+tf.ty, - tx*tf.rxz+ty*tf.ryz+tz*tf.rzz+tf.tz); + rzx*tf.rxx+rzy*tf.ryx+rzz*tf.rzx, + rzx*tf.rxy+rzy*tf.ryy+rzz*tf.rzy, + rzx*tf.rxz+rzy*tf.ryz+rzz*tf.rzz, + + tx*tf.rxx+ty*tf.ryx+tz*tf.rzx+tf.tx, + tx*tf.rxy+ty*tf.ryy+tz*tf.rzy+tf.ty, + tx*tf.rxz+ty*tf.ryz+tz*tf.rzz+tf.tz); } -inline G4AffineTransform& G4AffineTransform::operator *= (const G4AffineTransform& tf) +inline G4AffineTransform& +G4AffineTransform::operator *= (const G4AffineTransform& tf) { // Use temporaries for `in place' compound transform computation - G4double nrxx=rxx*tf.rxx+rxy*tf.ryx+rxz*tf.rzx; - G4double nrxy=rxx*tf.rxy+rxy*tf.ryy+rxz*tf.rzy; - G4double nrxz=rxx*tf.rxz+rxy*tf.ryz+rxz*tf.rzz; + G4double nrxx=rxx*tf.rxx+rxy*tf.ryx+rxz*tf.rzx; + G4double nrxy=rxx*tf.rxy+rxy*tf.ryy+rxz*tf.rzy; + G4double nrxz=rxx*tf.rxz+rxy*tf.ryz+rxz*tf.rzz; - G4double nryx=ryx*tf.rxx+ryy*tf.ryx+ryz*tf.rzx; - G4double nryy=ryx*tf.rxy+ryy*tf.ryy+ryz*tf.rzy; - G4double nryz=ryx*tf.rxz+ryy*tf.ryz+ryz*tf.rzz; + G4double nryx=ryx*tf.rxx+ryy*tf.ryx+ryz*tf.rzx; + G4double nryy=ryx*tf.rxy+ryy*tf.ryy+ryz*tf.rzy; + G4double nryz=ryx*tf.rxz+ryy*tf.ryz+ryz*tf.rzz; - G4double nrzx=rzx*tf.rxx+rzy*tf.ryx+rzz*tf.rzx; - G4double nrzy=rzx*tf.rxy+rzy*tf.ryy+rzz*tf.rzy; - G4double nrzz=rzx*tf.rxz+rzy*tf.ryz+rzz*tf.rzz; - - G4double ntx=tx*tf.rxx+ty*tf.ryx+tz*tf.rzx+tf.tx; - G4double nty=tx*tf.rxy+ty*tf.ryy+tz*tf.rzy+tf.ty; - G4double ntz=tx*tf.rxz+ty*tf.ryz+tz*tf.rzz+tf.tz; + G4double nrzx=rzx*tf.rxx+rzy*tf.ryx+rzz*tf.rzx; + G4double nrzy=rzx*tf.rxy+rzy*tf.ryy+rzz*tf.rzy; + G4double nrzz=rzx*tf.rxz+rzy*tf.ryz+rzz*tf.rzz; + + G4double ntx=tx*tf.rxx+ty*tf.ryx+tz*tf.rzx+tf.tx; + G4double nty=tx*tf.rxy+ty*tf.ryy+tz*tf.rzy+tf.ty; + G4double ntz=tx*tf.rxz+ty*tf.ryz+tz*tf.rzz+tf.tz; - tx=ntx; ty=nty; tz=ntz; - rxx=nrxx; rxy=nrxy; rxz=nrxz; - ryx=nryx; ryy=nryy; ryz=nryz; - rzx=nrzx; rzy=nrzy; rzz=nrzz; + tx=ntx; ty=nty; tz=ntz; + rxx=nrxx; rxy=nrxy; rxz=nrxz; + ryx=nryx; ryy=nryy; ryz=nryz; + rzx=nrzx; rzy=nrzy; rzz=nrzz; - return *this; + return *this; } -inline G4AffineTransform& G4AffineTransform::Product(const G4AffineTransform& tf1, - const G4AffineTransform& tf2) +inline G4AffineTransform& +G4AffineTransform::Product(const G4AffineTransform& tf1, + const G4AffineTransform& tf2) { - rxx=tf1.rxx*tf2.rxx + tf1.rxy*tf2.ryx + tf1.rxz*tf2.rzx; - rxy=tf1.rxx*tf2.rxy + tf1.rxy*tf2.ryy + tf1.rxz*tf2.rzy; - rxz=tf1.rxx*tf2.rxz + tf1.rxy*tf2.ryz + tf1.rxz*tf2.rzz; + rxx=tf1.rxx*tf2.rxx + tf1.rxy*tf2.ryx + tf1.rxz*tf2.rzx; + rxy=tf1.rxx*tf2.rxy + tf1.rxy*tf2.ryy + tf1.rxz*tf2.rzy; + rxz=tf1.rxx*tf2.rxz + tf1.rxy*tf2.ryz + tf1.rxz*tf2.rzz; - ryx=tf1.ryx*tf2.rxx + tf1.ryy*tf2.ryx + tf1.ryz*tf2.rzx; - ryy=tf1.ryx*tf2.rxy + tf1.ryy*tf2.ryy + tf1.ryz*tf2.rzy; - ryz=tf1.ryx*tf2.rxz + tf1.ryy*tf2.ryz + tf1.ryz*tf2.rzz; + ryx=tf1.ryx*tf2.rxx + tf1.ryy*tf2.ryx + tf1.ryz*tf2.rzx; + ryy=tf1.ryx*tf2.rxy + tf1.ryy*tf2.ryy + tf1.ryz*tf2.rzy; + ryz=tf1.ryx*tf2.rxz + tf1.ryy*tf2.ryz + tf1.ryz*tf2.rzz; - rzx=tf1.rzx*tf2.rxx + tf1.rzy*tf2.ryx + tf1.rzz*tf2.rzx; - rzy=tf1.rzx*tf2.rxy + tf1.rzy*tf2.ryy + tf1.rzz*tf2.rzy; - rzz=tf1.rzx*tf2.rxz + tf1.rzy*tf2.ryz + tf1.rzz*tf2.rzz; - - tx=tf1.tx*tf2.rxx + tf1.ty*tf2.ryx + tf1.tz*tf2.rzx + tf2.tx; - ty=tf1.tx*tf2.rxy + tf1.ty*tf2.ryy + tf1.tz*tf2.rzy + tf2.ty; - tz=tf1.tx*tf2.rxz + tf1.ty*tf2.ryz + tf1.tz*tf2.rzz + tf2.tz; - - return *this; + rzx=tf1.rzx*tf2.rxx + tf1.rzy*tf2.ryx + tf1.rzz*tf2.rzx; + rzy=tf1.rzx*tf2.rxy + tf1.rzy*tf2.ryy + tf1.rzz*tf2.rzy; + rzz=tf1.rzx*tf2.rxz + tf1.rzy*tf2.ryz + tf1.rzz*tf2.rzz; + + tx=tf1.tx*tf2.rxx + tf1.ty*tf2.ryx + tf1.tz*tf2.rzx + tf2.tx; + ty=tf1.tx*tf2.rxy + tf1.ty*tf2.ryy + tf1.tz*tf2.rzy + tf2.ty; + tz=tf1.tx*tf2.rxz + tf1.ty*tf2.ryz + tf1.tz*tf2.rzz + tf2.tz; + + return *this; } inline G4AffineTransform& G4AffineTransform::InverseProduct( const G4AffineTransform& tf1, - const G4AffineTransform& tf2) + const G4AffineTransform& tf2) { - G4double itf2tx = - tf2.tx*tf2.rxx - tf2.ty*tf2.rxy - tf2.tz*tf2.rxz; - G4double itf2ty = - tf2.tx*tf2.ryx - tf2.ty*tf2.ryy - tf2.tz*tf2.ryz; - G4double itf2tz = - tf2.tx*tf2.rzx - tf2.ty*tf2.rzy - tf2.tz*tf2.rzz; + G4double itf2tx = - tf2.tx*tf2.rxx - tf2.ty*tf2.rxy - tf2.tz*tf2.rxz; + G4double itf2ty = - tf2.tx*tf2.ryx - tf2.ty*tf2.ryy - tf2.tz*tf2.ryz; + G4double itf2tz = - tf2.tx*tf2.rzx - tf2.ty*tf2.rzy - tf2.tz*tf2.rzz; - rxx=tf1.rxx*tf2.rxx+tf1.rxy*tf2.rxy+tf1.rxz*tf2.rxz; - rxy=tf1.rxx*tf2.ryx+tf1.rxy*tf2.ryy+tf1.rxz*tf2.ryz; - rxz=tf1.rxx*tf2.rzx+tf1.rxy*tf2.rzy+tf1.rxz*tf2.rzz; + rxx=tf1.rxx*tf2.rxx+tf1.rxy*tf2.rxy+tf1.rxz*tf2.rxz; + rxy=tf1.rxx*tf2.ryx+tf1.rxy*tf2.ryy+tf1.rxz*tf2.ryz; + rxz=tf1.rxx*tf2.rzx+tf1.rxy*tf2.rzy+tf1.rxz*tf2.rzz; - ryx=tf1.ryx*tf2.rxx+tf1.ryy*tf2.rxy+tf1.ryz*tf2.rxz; - ryy=tf1.ryx*tf2.ryx+tf1.ryy*tf2.ryy+tf1.ryz*tf2.ryz; - ryz=tf1.ryx*tf2.rzx+tf1.ryy*tf2.rzy+tf1.ryz*tf2.rzz; + ryx=tf1.ryx*tf2.rxx+tf1.ryy*tf2.rxy+tf1.ryz*tf2.rxz; + ryy=tf1.ryx*tf2.ryx+tf1.ryy*tf2.ryy+tf1.ryz*tf2.ryz; + ryz=tf1.ryx*tf2.rzx+tf1.ryy*tf2.rzy+tf1.ryz*tf2.rzz; - rzx=tf1.rzx*tf2.rxx+tf1.rzy*tf2.rxy+tf1.rzz*tf2.rxz; - rzy=tf1.rzx*tf2.ryx+tf1.rzy*tf2.ryy+tf1.rzz*tf2.ryz; - rzz=tf1.rzx*tf2.rzx+tf1.rzy*tf2.rzy+tf1.rzz*tf2.rzz; - - tx=tf1.tx*tf2.rxx+tf1.ty*tf2.rxy+tf1.tz*tf2.rxz+itf2tx; - ty=tf1.tx*tf2.ryx+tf1.ty*tf2.ryy+tf1.tz*tf2.ryz+itf2ty; - tz=tf1.tx*tf2.rzx+tf1.ty*tf2.rzy+tf1.tz*tf2.rzz+itf2tz; + rzx=tf1.rzx*tf2.rxx+tf1.rzy*tf2.rxy+tf1.rzz*tf2.rxz; + rzy=tf1.rzx*tf2.ryx+tf1.rzy*tf2.ryy+tf1.rzz*tf2.ryz; + rzz=tf1.rzx*tf2.rzx+tf1.rzy*tf2.rzy+tf1.rzz*tf2.rzz; + + tx=tf1.tx*tf2.rxx+tf1.ty*tf2.rxy+tf1.tz*tf2.rxz+itf2tx; + ty=tf1.tx*tf2.ryx+tf1.ty*tf2.ryy+tf1.tz*tf2.ryz+itf2ty; + tz=tf1.tx*tf2.rzx+tf1.ty*tf2.rzy+tf1.tz*tf2.rzz+itf2tz; - return *this; + return *this; } inline G4ThreeVector G4AffineTransform::TransformPoint(const G4ThreeVector& vec) const { - return G4ThreeVector( vec.x()*rxx + vec.y()*ryx + vec.z()*rzx + tx, - vec.x()*rxy + vec.y()*ryy + vec.z()*rzy + ty, - vec.x()*rxz + vec.y()*ryz + vec.z()*rzz + tz ); + return G4ThreeVector( vec.x()*rxx + vec.y()*ryx + vec.z()*rzx + tx, + vec.x()*rxy + vec.y()*ryy + vec.z()*rzy + ty, + vec.x()*rxz + vec.y()*ryz + vec.z()*rzz + tz ); } inline G4ThreeVector G4AffineTransform::TransformAxis(const G4ThreeVector& axis) const { - return G4ThreeVector( axis.x()*rxx + axis.y()*ryx + axis.z()*rzx, - axis.x()*rxy + axis.y()*ryy + axis.z()*rzy, - axis.x()*rxz + axis.y()*ryz + axis.z()*rzz ); - + return G4ThreeVector( axis.x()*rxx + axis.y()*ryx + axis.z()*rzx, + axis.x()*rxy + axis.y()*ryy + axis.z()*rzy, + axis.x()*rxz + axis.y()*ryz + axis.z()*rzz ); } inline void G4AffineTransform::ApplyPointTransform(G4ThreeVector& vec) const { - G4double x = vec.x()*rxx + vec.y()*ryx + vec.z()*rzx + tx; - G4double y = vec.x()*rxy + vec.y()*ryy + vec.z()*rzy + ty; - G4double z = vec.x()*rxz + vec.y()*ryz + vec.z()*rzz + tz; - - vec.setX(x); - vec.setY(y); - vec.setZ(z); + G4double x = vec.x()*rxx + vec.y()*ryx + vec.z()*rzx + tx; + G4double y = vec.x()*rxy + vec.y()*ryy + vec.z()*rzy + ty; + G4double z = vec.x()*rxz + vec.y()*ryz + vec.z()*rzz + tz; + + vec.setX(x); + vec.setY(y); + vec.setZ(z); } inline void G4AffineTransform::ApplyAxisTransform(G4ThreeVector& axis) const { - G4double x = axis.x()*rxx + axis.y()*ryx + axis.z()*rzx; - G4double y = axis.x()*rxy + axis.y()*ryy + axis.z()*rzy; - G4double z = axis.x()*rxz + axis.y()*ryz + axis.z()*rzz; - - axis.setX(x); - axis.setY(y); - axis.setZ(z); + G4double x = axis.x()*rxx + axis.y()*ryx + axis.z()*rzx; + G4double y = axis.x()*rxy + axis.y()*ryy + axis.z()*rzy; + G4double z = axis.x()*rxz + axis.y()*ryz + axis.z()*rzz; + + axis.setX(x); + axis.setY(y); + axis.setZ(z); } inline G4AffineTransform G4AffineTransform::Inverse() const { - return G4AffineTransform( rxx, ryx, rzx, - rxy, ryy, rzy, - rxz, ryz, rzz, - - -tx*rxx - ty*rxy - tz*rxz, - -tx*ryx - ty*ryy - tz*ryz, + return G4AffineTransform( rxx, ryx, rzx, + rxy, ryy, rzy, + rxz, ryz, rzz, + + -tx*rxx - ty*rxy - tz*rxz, + -tx*ryx - ty*ryy - tz*ryz, -tx*rzx - ty*rzy - tz*rzz ); } inline G4AffineTransform& G4AffineTransform::Invert() { - G4double v1 = -tx*rxx - ty*rxy - tz*rxz; - G4double v2 = -tx*ryx - ty*ryy - tz*ryz; - G4double v3 = -tx*rzx - ty*rzy - tz*rzz; - - tx=v1; ty=v2; tz=v3; - - G4double tmp1=ryx; ryx=rxy; rxy=tmp1; - G4double tmp2=rzx; rzx=rxz; rxz=tmp2; - G4double tmp3=rzy; rzy=ryz; ryz=tmp3; - - return *this; + G4double v1 = -tx*rxx - ty*rxy - tz*rxz; + G4double v2 = -tx*ryx - ty*ryy - tz*ryz; + G4double v3 = -tx*rzx - ty*rzy - tz*rzz; + + tx=v1; ty=v2; tz=v3; + + G4double tmp1=ryx; ryx=rxy; rxy=tmp1; + G4double tmp2=rzx; rzx=rxz; rxz=tmp2; + G4double tmp3=rzy; rzy=ryz; ryz=tmp3; + + return *this; } inline G4AffineTransform& G4AffineTransform::operator +=(const G4ThreeVector& tlate) { - tx += tlate.x(); - ty += tlate.y(); - tz += tlate.z(); - - return *this; + tx += tlate.x(); + ty += tlate.y(); + tz += tlate.z(); + + return *this; } inline G4AffineTransform& G4AffineTransform::operator -=(const G4ThreeVector& tlate) { - tx -= tlate.x(); - ty -= tlate.y(); - tz -= tlate.z(); - - return *this; + tx -= tlate.x(); + ty -= tlate.y(); + tz -= tlate.z(); + + return *this; } inline G4bool G4AffineTransform::operator == (const G4AffineTransform& tf) const { - return (tx==tf.tx&&ty==tf.ty&&tz==tf.tz&& - rxx==tf.rxx&&rxy==tf.rxy&&rxz==tf.rxz&& - ryx==tf.ryx&&ryy==tf.ryy&&ryz==tf.ryz&& - rzx==tf.rzx&&rzy==tf.rzy&&rzz==tf.rzz) ? true : false; + return (tx==tf.tx&&ty==tf.ty&&tz==tf.tz&& + rxx==tf.rxx&&rxy==tf.rxy&&rxz==tf.rxz&& + ryx==tf.ryx&&ryy==tf.ryy&&ryz==tf.ryz&& + rzx==tf.rzx&&rzy==tf.rzy&&rzz==tf.rzz) ? true : false; } inline G4bool G4AffineTransform::operator != (const G4AffineTransform& tf) const { - return (tx!=tf.tx||ty!=tf.ty||tz!=tf.tz|| - rxx!=tf.rxx||rxy!=tf.rxy||rxz!=tf.rxz|| - ryx!=tf.ryx||ryy!=tf.ryy||ryz!=tf.ryz|| - rzx!=tf.rzx||rzy!=tf.rzy||rzz!=tf.rzz) ? true : false; + return (tx!=tf.tx||ty!=tf.ty||tz!=tf.tz|| + rxx!=tf.rxx||rxy!=tf.rxy||rxz!=tf.rxz|| + ryx!=tf.ryx||ryy!=tf.ryy||ryz!=tf.ryz|| + rzx!=tf.rzx||rzy!=tf.rzy||rzz!=tf.rzz) ? true : false; } inline G4double G4AffineTransform::operator [] (const G4int n) const { - G4double v = 0.0; - switch(n) - { - case 0: - v=rxx; - break; - case 1: - v=rxy; - break; - case 2: - v=rxz; - break; - case 4: - v=ryx; - break; - case 5: - v=ryy; - break; - case 6: - v=ryz; - break; - case 8: - v=rzx; - break; - case 9: - v=rzy; - break; - case 10: - v=rzz; - break; - case 12: - v=tx; - break; - case 13: - v=ty; - break; - case 14: - v=tz; - break; - case 3: - case 7: - case 11: - break; - case 15: - v=1.0; - break; - } - return v; + G4double v = 0.0; + switch(n) + { + case 0: + v=rxx; + break; + case 1: + v=rxy; + break; + case 2: + v=rxz; + break; + case 4: + v=ryx; + break; + case 5: + v=ryy; + break; + case 6: + v=ryz; + break; + case 8: + v=rzx; + break; + case 9: + v=rzy; + break; + case 10: + v=rzz; + break; + case 12: + v=tx; + break; + case 13: + v=ty; + break; + case 14: + v=tz; + break; + case 3: + case 7: + case 11: + break; + case 15: + v=1.0; + break; + } + return v; } inline G4bool G4AffineTransform::IsRotated() const { - return (rxx==1.0 && ryy==1.0 && rzz==1.0) ? false : true; + return (rxx==1.0 && ryy==1.0 && rzz==1.0) ? false : true; } inline G4bool G4AffineTransform::IsTranslated() const { - return (tx || ty || tz) ? true:false; + return (tx || ty || tz) ? true:false; } inline G4RotationMatrix G4AffineTransform::NetRotation() const { G4RotationMatrix m; return m.rotateAxes(G4ThreeVector(rxx,ryx,rzx), - G4ThreeVector(rxy,ryy,rzy), + G4ThreeVector(rxy,ryy,rzy), G4ThreeVector(rxz,ryz,rzz)); } inline G4ThreeVector G4AffineTransform::NetTranslation() const { - return G4ThreeVector(tx,ty,tz); + return G4ThreeVector(tx,ty,tz); } inline void G4AffineTransform::SetNetRotation(const G4RotationMatrix& rot) { - rxx=rot.xx(); - rxy=rot.xy(); - rxz=rot.xz(); - ryx=rot.yx(); - ryy=rot.yy(); - ryz=rot.yz(); - rzx=rot.zx(); - rzy=rot.zy(); - rzz=rot.zz(); + rxx=rot.xx(); + rxy=rot.xy(); + rxz=rot.xz(); + ryx=rot.yx(); + ryy=rot.yy(); + ryz=rot.yz(); + rzx=rot.zx(); + rzy=rot.zy(); + rzz=rot.zz(); } inline void G4AffineTransform::SetNetTranslation(const G4ThreeVector& tlate) { - tx=tlate.x(); - ty=tlate.y(); - tz=tlate.z(); + tx=tlate.x(); + ty=tlate.y(); + tz=tlate.z(); } diff --git a/source/geometry/management/include/G4AssemblyTriplet.hh b/source/geometry/management/include/G4AssemblyTriplet.hh index eddb3b0b68..479e58099e 100644 --- a/source/geometry/management/include/G4AssemblyTriplet.hh +++ b/source/geometry/management/include/G4AssemblyTriplet.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AssemblyTriplet.hh,v 1.5 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AssemblyTriplet.hh,v 1.6 2003/11/02 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Class G4AssemblyTriplet @@ -44,10 +44,11 @@ #ifndef G4_ASSEMBLYTRIPLET_H #define G4_ASSEMBLYTRIPLET_H -#include "G4LogicalVolume.hh" #include "G4ThreeVector.hh" #include "G4RotationMatrix.hh" +class G4LogicalVolume; + class G4AssemblyTriplet { public: // with description diff --git a/source/geometry/management/include/G4AssemblyTriplet.icc b/source/geometry/management/include/G4AssemblyTriplet.icc index 280b1c894c..3f877544ce 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Class G4AssemblyTriplet - inline implementation diff --git a/source/geometry/volumes/include/G4BlockingList.hh b/source/geometry/management/include/G4BlockingList.hh similarity index 94% rename from source/geometry/volumes/include/G4BlockingList.hh rename to source/geometry/management/include/G4BlockingList.hh index c6a70d0293..09f8da478d 100644 --- a/source/geometry/volumes/include/G4BlockingList.hh +++ b/source/geometry/management/include/G4BlockingList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BlockingList.hh,v 1.8 2003/06/16 16:54:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlockingList.hh,v 1.2 2003/11/02 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4BlockingList // @@ -41,12 +41,11 @@ // History: // // 24.7.96 P.Kent Separated from G4Navigator -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4BLOCKINGLIST_HH #define G4BLOCKINGLIST_HH -#include "globals.hh" +#include "G4Types.hh" #include const G4int kBlockingListMaxDefault = 500; // Block up to 511 daughters diff --git a/source/geometry/volumes/include/G4BlockingList.icc b/source/geometry/management/include/G4BlockingList.icc similarity index 92% rename from source/geometry/volumes/include/G4BlockingList.icc rename to source/geometry/management/include/G4BlockingList.icc index cb519908b0..2f48d3a776 100644 --- a/source/geometry/volumes/include/G4BlockingList.icc +++ b/source/geometry/management/include/G4BlockingList.icc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4BlockingList.icc,v 1.7 2002/07/23 08:50:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlockingList.icc,v 1.2 2003/11/02 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4BlockingList Inlined Implementation // -// ******************************************************************** +// -------------------------------------------------------------------- inline G4int G4BlockingList::Length() const { diff --git a/source/geometry/management/include/G4GeometryManager.hh b/source/geometry/management/include/G4GeometryManager.hh index f9e1a30b7d..14f379f901 100644 --- a/source/geometry/management/include/G4GeometryManager.hh +++ b/source/geometry/management/include/G4GeometryManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryManager.hh,v 1.7 2003/06/16 16:51:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeometryManager.hh,v 1.8 2003/11/02 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4GeometryManager // @@ -40,22 +40,13 @@ // Author: // 26.07.95 P.Kent Initial version, including optimisation Build - +// -------------------------------------------------------------------- #ifndef G4GEOMETRYMANAGER_HH #define G4GEOMETRYMANAGER_HH #include -#include "globals.hh" - -// Needed for building optimisations -#include "geomdefs.hh" -#include "G4LogicalVolumeStore.hh" -#include "G4LogicalVolume.hh" +#include "G4Types.hh" #include "G4SmartVoxelStat.hh" -#include "G4SmartVoxelHeader.hh" -#ifdef G4GEOMETRY_VOXELDEBUG -#include "G4ios.hh" -#endif class G4GeometryManager { diff --git a/source/geometry/volumes/include/G4IdentityTrajectoryFilter.hh b/source/geometry/management/include/G4IdentityTrajectoryFilter.hh similarity index 95% rename from source/geometry/volumes/include/G4IdentityTrajectoryFilter.hh rename to source/geometry/management/include/G4IdentityTrajectoryFilter.hh index 499dcad2d0..d764d6d68d 100644 --- a/source/geometry/volumes/include/G4IdentityTrajectoryFilter.hh +++ b/source/geometry/management/include/G4IdentityTrajectoryFilter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IdentityTrajectoryFilter.hh,v 1.2 2003/02/06 18:53:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4IdentityTrajectoryFilter.hh,v 1.2 2003/11/02 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class GIdentityTrajectoryFilter @@ -40,11 +40,11 @@ // // - First version: Nov 19, 2002 Jacek Generowicz // ------------------------------------------------------------------------ - #ifndef G4IdentityTrajectoryFilter_hh #define G4IdentityTrajectoryFilter_hh #include "G4VCurvedTrajectoryFilter.hh" +#include "G4ThreeVector.hh" class G4IdentityTrajectoryFilter : public G4VCurvedTrajectoryFilter { diff --git a/source/geometry/management/include/G4LogicalSurface.hh b/source/geometry/management/include/G4LogicalSurface.hh index 112b92ae65..038a7a76b6 100644 --- a/source/geometry/management/include/G4LogicalSurface.hh +++ b/source/geometry/management/include/G4LogicalSurface.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalSurface.hh,v 1.6 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalSurface.hh,v 1.9 2003/12/01 14:41:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // Class G4LogicalSurface @@ -38,8 +38,8 @@ // like G4OpBoundaryProcess. // // Methods: -// G4OpticalSurface* GetOpticalSurface() const -// void SetOpticalSurface(G4OpticalSurface*) +// G4SurfaceProperty* GetSurfaceProperty() const +// void SetSurfaceProperty(G4SurfaceProperty*) // // G4String GetName() const // void SetName(const G4String&) @@ -49,18 +49,14 @@ // // Data members: // G4String theName -// G4OpticalSurface* theOpticalSurface +// G4SurfaceProperty* theSurfaceProperty // G4TransitionRadiationSurface* theTransRadSurface -// Version: 1.0 // Created: 1997, June, 4th to 17th // Author: John Apostolakis, (with help of Peter Gumplinger) // mail: japost@mail.cern.ch -// Modified: 1997, June 26th John Apostolakis // -// Id tag: -//////////////////////////////////////////////////////////////////////// - +// ------------------------------------------------------------------------ #ifndef G4LogicalSurface_h #define G4LogicalSurface_h 1 @@ -68,9 +64,10 @@ // Includes ///////////// -#include "globals.hh" +#include "G4Types.hh" +#include "G4String.hh" -class G4OpticalSurface; +class G4SurfaceProperty; class G4TransitionRadiationSurface; ///////////////////// @@ -79,12 +76,11 @@ class G4TransitionRadiationSurface; class G4LogicalSurface { - //////////// - // Methods - //////////// - public: - G4OpticalSurface* GetOpticalSurface() const; - void SetOpticalSurface(G4OpticalSurface* ptrOpticalSurface); + + public: // with description + + G4SurfaceProperty* GetSurfaceProperty() const; + void SetSurfaceProperty(G4SurfaceProperty* ptrSurfaceProperty); G4String GetName() const; void SetName(const G4String& name); @@ -92,16 +88,12 @@ class G4LogicalSurface G4TransitionRadiationSurface* GetTransitionRadiationSurface() const; void SetTransitionRadiationSurface(G4TransitionRadiationSurface* transRadSurf); - //////////////////////////////// - // Constructors and Destructor - //////////////////////////////// - protected: // There should be no instances of this class G4LogicalSurface(const G4String& name, - G4OpticalSurface* opticalSurface); + G4SurfaceProperty* surfaceProperty); // Is the name more meaningful for the properties or the logical // surface ? @@ -117,15 +109,11 @@ class G4LogicalSurface G4LogicalSurface(const G4LogicalSurface &right); // Copying restricted const G4LogicalSurface& operator=(const G4LogicalSurface& right); - // ------------------ - // Basic data members ( To define a 'logical' surface) - // ------------------ - private: - G4String theName; // Surface name + G4String theName; // Surface name - G4OpticalSurface* theOpticalSurface; + G4SurfaceProperty* theSurfaceProperty; G4TransitionRadiationSurface* theTransRadSurface; }; diff --git a/source/geometry/management/include/G4LogicalSurface.icc b/source/geometry/management/include/G4LogicalSurface.icc index 8b71952aad..55a0e0d0b8 100644 --- a/source/geometry/management/include/G4LogicalSurface.icc +++ b/source/geometry/management/include/G4LogicalSurface.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalSurface.icc,v 1.5 2001/07/11 09:59:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalSurface.icc,v 1.8 2003/12/01 14:41:28 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // Surface Class Inline Methods @@ -30,51 +30,46 @@ // // File: G4LogicalSurface.icc // Description: A Surface class -// Version: 1.0 // Created: 1997-06-26 // Author: John Apostolakis // -//////////////////////////////////////////////////////////////////////// +// ------------------------------------------------------------------------ -///////////////////////// -// Class Inline Methods -///////////////////////// - -inline G4OpticalSurface* -G4LogicalSurface::GetOpticalSurface() const +inline G4SurfaceProperty* +G4LogicalSurface::GetSurfaceProperty() const { - return theOpticalSurface; + return theSurfaceProperty; } inline void -G4LogicalSurface::SetOpticalSurface(G4OpticalSurface* ptrOpticalSurface) +G4LogicalSurface::SetSurfaceProperty(G4SurfaceProperty* ptrSurfaceProperty) { - theOpticalSurface = ptrOpticalSurface; + theSurfaceProperty = ptrSurfaceProperty; } inline G4String G4LogicalSurface::GetName() const { - return theName; + return theName; } inline void G4LogicalSurface::SetName(const G4String& name) { - theName = name; + theName = name; } inline G4TransitionRadiationSurface* G4LogicalSurface::GetTransitionRadiationSurface() const { - return theTransRadSurface; + return theTransRadSurface; } inline void G4LogicalSurface::SetTransitionRadiationSurface(G4TransitionRadiationSurface* transRadSurf ) { - theTransRadSurface= transRadSurf; + theTransRadSurface= transRadSurf; } @@ -85,24 +80,24 @@ G4LogicalSurface::SetTransitionRadiationSurface(G4TransitionRadiationSurface* inline const G4LogicalSurface & G4LogicalSurface::operator=(const G4LogicalSurface &right) { - if (&right == this) return *this; - theName = right.theName; - theOpticalSurface = right.theOpticalSurface; - theTransRadSurface = right.theTransRadSurface; - - return *this; + if (&right == this) return *this; + theName = right.theName; + theSurfaceProperty = right.theSurfaceProperty; + theTransRadSurface = right.theTransRadSurface; + + return *this; } inline G4int G4LogicalSurface::operator==(const G4LogicalSurface &right) const { - return (this == (G4LogicalSurface *) &right); + return (this == (G4LogicalSurface *) &right); } inline G4int G4LogicalSurface::operator!=(const G4LogicalSurface &right) const { - return (this != (G4LogicalSurface *) &right); + return (this != (G4LogicalSurface *) &right); } ///////////////// @@ -110,15 +105,15 @@ G4LogicalSurface::operator!=(const G4LogicalSurface &right) const ///////////////// inline G4LogicalSurface::G4LogicalSurface(const G4String& name, - G4OpticalSurface* opticalSurface) - : theName(name), - theOpticalSurface(opticalSurface) + G4SurfaceProperty* surfaceProperty) + : theName(name), + theSurfaceProperty(surfaceProperty) { } inline G4LogicalSurface::G4LogicalSurface(const G4LogicalSurface &right) { - *this = right; + *this = right; } inline G4LogicalSurface::~G4LogicalSurface() diff --git a/source/geometry/management/include/G4LogicalVolume.hh b/source/geometry/management/include/G4LogicalVolume.hh index c06647616f..94bc5b35b9 100644 --- a/source/geometry/management/include/G4LogicalVolume.hh +++ b/source/geometry/management/include/G4LogicalVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.hh,v 1.14 2003/06/16 16:51:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalVolume.hh,v 1.16 2003/11/04 15:11:11 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4LogicalVolume @@ -103,12 +103,12 @@ // 19.11.96 J.Allison: Replaced G4Visible with explicit const G4VisAttributes* // 19.08.96 P.Kent: Split -> hh/icc/cc files; G4VSensitiveDetector change // 11.07.95 P.Kent: Initial version. - +// ------------------------------------------------------------------------ #ifndef G4LOGICALVOLUME_HH #define G4LOGICALVOLUME_HH -#include "globals.hh" -#include "G4Region.hh" +#include "G4Types.hh" +#include "G4Region.hh" // Required by inline methods #include "G4VPhysicalVolume.hh" // Need operator == for vector fdaughters #include #include diff --git a/source/geometry/management/include/G4LogicalVolume.icc b/source/geometry/management/include/G4LogicalVolume.icc index 233aa5f370..1f92814d93 100644 --- a/source/geometry/management/include/G4LogicalVolume.icc +++ b/source/geometry/management/include/G4LogicalVolume.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.icc,v 1.12 2003/05/13 18:35:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalVolume.icc,v 1.15 2003/11/02 14:01:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4LogicalVolume Inline Implementation file @@ -33,7 +33,7 @@ // 12.02.99 - S.Giani: Added set/get methods for voxelization quality // 18.04.01 - G.Cosmo: Migrated to STL vector // 17.05.02 - G.Cosmo: Added IsToOptimise() method -// ******************************************************************** +// -------------------------------------------------------------------- // ******************************************************************** // GetName @@ -104,13 +104,14 @@ void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter) { if( !fDaughters.empty() && fDaughters[0]->IsReplicated() ) { - G4cout << "ERROR - Attempt to place a volume in a mother volume" << G4endl + G4cerr << "ERROR - Attempt to place a volume in a mother volume" << G4endl << " already containing a replicated volume." << G4endl << " A volume can either contain several placements" << G4endl << " or a unique replica or parameterised volume !" << G4endl << " Mother logical volume: " << GetName() << G4endl << " Placing volume: " << pNewDaughter->GetName() << G4endl; - G4Exception("G4LogicalVolume::AddDaughter() - Not a valid geometry setup !"); + G4Exception("G4LogicalVolume::AddDaughter()", "InvalidSetup", FatalException, + "Replica or parameterised volume must be the only daughter !"); } fDaughters.push_back(pNewDaughter); @@ -119,29 +120,21 @@ void G4LogicalVolume::AddDaughter(G4VPhysicalVolume* pNewDaughter) // the World logical volume, propagates only if pointer != 0. // (one could also parameterise all the World volume for a particle type!) - G4VPhysicalVolume* myPhysical = pNewDaughter->GetMother(); - G4VPhysicalVolume* pMotherPhys; - G4LogicalVolume* pDaughterLogical; + G4LogicalVolume* myLogical = pNewDaughter->GetMotherLogical(); + G4LogicalVolume* pDaughterLogical = pNewDaughter->GetLogicalVolume(); - if( myPhysical !=0 ) + if( myLogical !=0 ) { - pMotherPhys = myPhysical->GetMother(); - pDaughterLogical = pNewDaughter->GetLogicalVolume(); - - if( (pMotherPhys!=0) || ( pMotherPhys==0) && (fFastSimulationManager!=0) ) - { - if( pDaughterLogical->GetFastSimulationManager()!=fFastSimulationManager ) - pDaughterLogical->SetFastSimulationManager(fFastSimulationManager,false); - } - else - { - pDaughterLogical->SetFastSimulationManager(0, false); - } + if( pDaughterLogical->GetFastSimulationManager()!=fFastSimulationManager ) + pDaughterLogical->SetFastSimulationManager(fFastSimulationManager,false); + } + else + { + pDaughterLogical->SetFastSimulationManager(0, false); } // Propagate the Field Manager, if the daughter has no field Manager. // - pDaughterLogical = pNewDaughter->GetLogicalVolume(); G4FieldManager* pDaughterFieldManager = pDaughterLogical->GetFieldManager(); if( pDaughterFieldManager == 0 ) diff --git a/source/geometry/management/include/G4LogicalVolumeStore.hh b/source/geometry/management/include/G4LogicalVolumeStore.hh index 4893cb5b92..e001258f74 100644 --- a/source/geometry/management/include/G4LogicalVolumeStore.hh +++ b/source/geometry/management/include/G4LogicalVolumeStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolumeStore.hh,v 1.8 2003/06/16 16:51:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalVolumeStore.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4LogicalVolumeStore // @@ -48,9 +48,9 @@ // History: // 18.04.01 G.Cosmo Migrated to STL vector // 10.07.95 P.Kent Initial version - -#ifndef G4VLOGICALVOLUMESTORE_HH -#define G4VLOGICALVOLUMESTORE_HH +// -------------------------------------------------------------------- +#ifndef G4LOGICALVOLUMESTORE_HH +#define G4LOGICALVOLUMESTORE_HH #include diff --git a/source/geometry/management/include/G4PhysicalVolumeStore.hh b/source/geometry/management/include/G4PhysicalVolumeStore.hh index e252ac1af1..7fb39c8e6d 100644 --- a/source/geometry/management/include/G4PhysicalVolumeStore.hh +++ b/source/geometry/management/include/G4PhysicalVolumeStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeStore.hh,v 1.10 2003/06/16 16:51:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PhysicalVolumeStore.hh,v 1.11 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4PhysicalVolume // @@ -48,7 +48,7 @@ // History: // 18.04.01 G.Cosmo Migrated to STL vector // 25.07.95 P.Kent Initial version - +// -------------------------------------------------------------------- #ifndef G4PHYSICALVOLUMESTORE_HH #define G4PHYSICALVOLUMESTORE_HH diff --git a/source/geometry/management/include/G4Region.hh b/source/geometry/management/include/G4Region.hh index c82b384327..bc8aabb518 100644 --- a/source/geometry/management/include/G4Region.hh +++ b/source/geometry/management/include/G4Region.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Region.hh,v 1.5 2003/06/16 16:51:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Region.hh,v 1.7 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4Region // @@ -37,18 +37,19 @@ // History: // 18.09.02 G.Cosmo Initial version -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4REGION_HH #define G4REGION_HH class G4ProductionCuts; class G4LogicalVolume; class G4Material; +class G4VUserRegionInformation; #include -#include "globals.hh" +#include "G4Types.hh" +#include "G4String.hh" class G4Region { @@ -103,6 +104,10 @@ class G4Region // Scans recursively the 'lv' logical volume tree, retrieves // and places all materials in the list if becoming a region. + void SetUserInformation(G4VUserRegionInformation* ui); + G4VUserRegionInformation* GetUserInformation() const; + // Set and Get methods for user information + private: G4Region(const G4Region&); @@ -118,6 +123,8 @@ class G4Region G4bool fRegionMod; G4ProductionCuts* fCut; + + G4VUserRegionInformation* fUserInfo; }; #include "G4Region.icc" diff --git a/source/geometry/management/include/G4Region.icc b/source/geometry/management/include/G4Region.icc index 920c4de839..c67fc132b2 100644 --- a/source/geometry/management/include/G4Region.icc +++ b/source/geometry/management/include/G4Region.icc @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4Region.icc,v 1.4 2003/06/16 16:51:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Region.icc,v 1.6 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Region Inline Implementation file // // 19.09.02 - G.Cosmo: Created -// ******************************************************************** +// -------------------------------------------------------------------- // ******************************************************************** // Equality operator, defined by address only @@ -144,3 +144,25 @@ size_t G4Region::GetNumberOfRootVolumes() const { return fRootVolumes.size(); } + +// ******************************************************************** +// SetUserInformation +// ******************************************************************** +// +inline +void G4Region::SetUserInformation(G4VUserRegionInformation* ui) +{ + fUserInfo = ui; +} + +// ******************************************************************** +// GetUserInformation +// ******************************************************************** +// +inline +G4VUserRegionInformation* G4Region::GetUserInformation() const +{ + return fUserInfo; +} + + diff --git a/source/geometry/management/include/G4RegionStore.hh b/source/geometry/management/include/G4RegionStore.hh index 49ee540ab3..cd17cd88ad 100644 --- a/source/geometry/management/include/G4RegionStore.hh +++ b/source/geometry/management/include/G4RegionStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RegionStore.hh,v 1.4 2003/06/16 16:51:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4RegionStore.hh,v 1.5 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4RegionStore // @@ -46,15 +46,15 @@ // History: // 18.09.02 G.Cosmo Initial version -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4REGIONSTORE_HH #define G4REGIONSTORE_HH class G4Region; #include -#include "globals.hh" +#include "G4Types.hh" +#include "G4String.hh" class G4RegionStore : public std::vector { diff --git a/source/geometry/management/include/G4SmartVoxelHeader.hh b/source/geometry/management/include/G4SmartVoxelHeader.hh index ed77b7b56f..3ee4986ba8 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.hh +++ b/source/geometry/management/include/G4SmartVoxelHeader.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelHeader.hh,v 1.8 2003/06/16 16:51:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelHeader.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4SmartVoxelHeader // @@ -50,19 +50,16 @@ // History: // 18.04.01 G.Cosmo Migrated to STL vector // 13.07.95 P.Kent Initial version - +// -------------------------------------------------------------------- #ifndef G4SMARTVOXELHEADER_HH #define G4SMARTVOXELHEADER_HH -#include "globals.hh" +#include "G4Types.hh" #include "geomdefs.hh" -#include "voxeldefs.hh" #include "G4SmartVoxelProxy.hh" #include "G4SmartVoxelNode.hh" -#include "G4ios.hh" - #include // Forward declarations diff --git a/source/geometry/management/include/G4SmartVoxelHeader.icc b/source/geometry/management/include/G4SmartVoxelHeader.icc index e10d4fa0bf..c6172ed60e 100644 --- a/source/geometry/management/include/G4SmartVoxelHeader.icc +++ b/source/geometry/management/include/G4SmartVoxelHeader.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelHeader.icc,v 1.4 2002/05/15 10:06:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelHeader.icc,v 1.5 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4SmartVoxelHeader Inline implementation // +// -------------------------------------------------------------------- inline G4int G4SmartVoxelHeader::GetMaxEquivalentSliceNo() const diff --git a/source/geometry/management/include/G4SmartVoxelNode.hh b/source/geometry/management/include/G4SmartVoxelNode.hh index f69d255430..19192d56bc 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.hh +++ b/source/geometry/management/include/G4SmartVoxelNode.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelNode.hh,v 1.8 2003/06/16 16:51:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelNode.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4SmartVoxelNode // @@ -45,14 +45,11 @@ // History: // 18.04.01 G.Cosmo Migrated to STL vector // 12.07.95 P.Kent Initial version - +// -------------------------------------------------------------------- #ifndef G4SMARTVOXELNODE_HH #define G4SMARTVOXELNODE_HH -#include "globals.hh" -#include "voxeldefs.hh" - -#include "G4VPhysicalVolume.hh" +#include "G4Types.hh" #include typedef std::vector G4SliceVector; diff --git a/source/geometry/management/include/G4SmartVoxelNode.icc b/source/geometry/management/include/G4SmartVoxelNode.icc index 094924f9fb..2c210ad308 100644 --- a/source/geometry/management/include/G4SmartVoxelNode.icc +++ b/source/geometry/management/include/G4SmartVoxelNode.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelNode.icc,v 1.3 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelNode.icc,v 1.4 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4SmartVoxelNode Inline implementation // +// -------------------------------------------------------------------- inline G4int G4SmartVoxelNode::GetVolume(G4int pVolumeNo) const diff --git a/source/geometry/management/include/G4SmartVoxelProxy.hh b/source/geometry/management/include/G4SmartVoxelProxy.hh index 3bfb412c28..d30562e3be 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.hh +++ b/source/geometry/management/include/G4SmartVoxelProxy.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelProxy.hh,v 1.6 2002/04/19 08:20:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelProxy.hh,v 1.7 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4SmartVoxelProxy // @@ -39,11 +39,11 @@ // 12.07.95 P.Kent Initial version // 03.08.95 P.Kent Updated to become non abstract class, removing // HeaderProxy and NodeProxy derived classes - +// -------------------------------------------------------------------- #ifndef G4SMARTVOXELPROXY_HH #define G4SMARTVOXELPROXY_HH -#include "globals.hh" +#include "G4Types.hh" #include class G4SmartVoxelNode; diff --git a/source/geometry/management/include/G4SmartVoxelProxy.icc b/source/geometry/management/include/G4SmartVoxelProxy.icc index 953d392afd..4dc762f1e0 100644 --- a/source/geometry/management/include/G4SmartVoxelProxy.icc +++ b/source/geometry/management/include/G4SmartVoxelProxy.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelProxy.icc,v 1.2 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelProxy.icc,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4SmartVoxelProxy Inline implementation // +// -------------------------------------------------------------------- inline G4bool G4SmartVoxelProxy::IsHeader() const diff --git a/source/geometry/management/include/G4SmartVoxelStat.hh b/source/geometry/management/include/G4SmartVoxelStat.hh index 1f3b9d0ee1..cb7bba6b8a 100644 --- a/source/geometry/management/include/G4SmartVoxelStat.hh +++ b/source/geometry/management/include/G4SmartVoxelStat.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4SmartVoxelStat.hh,v 1.2 2003/06/16 16:51:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelStat.hh,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -30,15 +30,16 @@ // // Class description: // -// Store information on the performance of the smart voxel algorithm -// for an individual logical volume +// Stores information on the performance of the smart voxel algorithm +// for an individual logical volume. // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #ifndef G4SmartVoxelStat_hh #define G4SmartVoxelStat_hh -#include "globals.hh" +#include "G4Types.hh" #include class G4LogicalVolume; @@ -102,9 +103,9 @@ class G4SmartVoxelStat // // Functor objects for sorting // - struct ByCpu : public std::binary_function< const G4SmartVoxelStat, - const G4SmartVoxelStat, - G4bool > + struct ByCpu + : public std::binary_function< const G4SmartVoxelStat, + const G4SmartVoxelStat, G4bool > { G4bool operator()( const G4SmartVoxelStat &a, const G4SmartVoxelStat &b ) { @@ -112,9 +113,9 @@ class G4SmartVoxelStat } }; - struct ByMemory : public std::binary_function< const G4SmartVoxelStat, - const G4SmartVoxelStat, - G4bool > + struct ByMemory + : public std::binary_function< const G4SmartVoxelStat, + const G4SmartVoxelStat, G4bool > { G4bool operator()( const G4SmartVoxelStat &a, const G4SmartVoxelStat &b ) { diff --git a/source/geometry/management/include/G4SolidStore.hh b/source/geometry/management/include/G4SolidStore.hh index 5c4a031178..980916920b 100644 --- a/source/geometry/management/include/G4SolidStore.hh +++ b/source/geometry/management/include/G4SolidStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SolidStore.hh,v 1.8 2003/06/16 16:52:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SolidStore.hh,v 1.9 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4SolidStore // @@ -48,7 +48,7 @@ // History: // 18.04.01 G.Cosmo Migrated to STL vector // 10.07.95 P.Kent Initial version - +// -------------------------------------------------------------------- #ifndef G4VSOLIDSTORE_HH #define G4VSOLIDSTORE_HH diff --git a/source/geometry/management/include/G4TouchableHandle.hh b/source/geometry/management/include/G4TouchableHandle.hh index 522fc6f42a..bf1bc2660d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class G4TouchableHandle // diff --git a/source/geometry/volumes/include/G4VCurvedTrajectoryFilter.hh b/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh similarity index 95% rename from source/geometry/volumes/include/G4VCurvedTrajectoryFilter.hh rename to source/geometry/management/include/G4VCurvedTrajectoryFilter.hh index 9857063ebb..ce3be29328 100644 --- a/source/geometry/volumes/include/G4VCurvedTrajectoryFilter.hh +++ b/source/geometry/management/include/G4VCurvedTrajectoryFilter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCurvedTrajectoryFilter.hh,v 1.5 2003/06/16 16:54:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VCurvedTrajectoryFilter.hh,v 1.2 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VCurevedTrajectoryFilter @@ -45,13 +45,11 @@ // // - First version: Oct 30, 2002 Jacek Generowicz // ------------------------------------------------------------------------ - #ifndef G4VCurvedTrajectoryFilter_hh #define G4VCurvedTrajectoryFilter_hh #include "G4ThreeVector.hh" #include -#include "G4TransportationManager.hh" class G4VCurvedTrajectoryFilter { diff --git a/source/geometry/management/include/G4VPVParameterisation.hh b/source/geometry/management/include/G4VPVParameterisation.hh index 996dfc801a..0f5a955e40 100644 --- a/source/geometry/management/include/G4VPVParameterisation.hh +++ b/source/geometry/management/include/G4VPVParameterisation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPVParameterisation.hh,v 1.4 2001/07/11 09:59:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPVParameterisation.hh,v 1.6 2003/11/02 14:00:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4VPVParamterisation // @@ -37,27 +37,30 @@ // 20.09.96 V.Grichine Modifications for G4Trap/Cons/Sphere // 31.10.96 V.Grichine Modifications for G4Torus/Para // 17.02.98 J.Apostolakis Allowing the parameterisation of Solid type - +// -------------------------------------------------------------------- #ifndef G4VPVPARAMETERISATION_HH #define G4VPVPARAMETERISATION_HH -#include "globals.hh" +#include "G4Types.hh" class G4VPhysicalVolume; +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 G4VSolid; -class G4Material; class G4VPVParameterisation { @@ -94,6 +97,10 @@ class G4VPVParameterisation const G4int, const G4VPhysicalVolume *) const {} + virtual void ComputeDimensions(G4Orb &, + const G4int, + const G4VPhysicalVolume *) const {} + virtual void ComputeDimensions(G4Torus &, const G4int, const G4VPhysicalVolume *) const {} @@ -102,6 +109,14 @@ class G4VPVParameterisation 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 {} diff --git a/source/geometry/management/include/G4VPhysicalVolume.hh b/source/geometry/management/include/G4VPhysicalVolume.hh index 6f6b4c2c03..7f5455aeaf 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.hh +++ b/source/geometry/management/include/G4VPhysicalVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPhysicalVolume.hh,v 1.8 2003/05/13 18:38:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPhysicalVolume.hh,v 1.10 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VPhysicalVolume @@ -39,11 +39,13 @@ // 28.08.96 P.Kent Replaced transform by rotmat + vector // 25.07.96 P.Kent Modified interface for new `Replica' capable geometry // 24.07.95 P.Kent First non-stub version - +// -------------------------------------------------------------------- #ifndef G4VPHYSICALVOLUME_HH #define G4VPHYSICALVOLUME_HH -#include "globals.hh" +#include "G4Types.hh" +#include "G4String.hh" + #include "geomdefs.hh" #include "G4RotationMatrix.hh" @@ -116,13 +118,8 @@ class G4VPhysicalVolume inline void SetLogicalVolume(G4LogicalVolume *pLogical); // Set the logical volume. Must not be called when geometry closed. - inline G4VPhysicalVolume* GetMother() const; - // Return the current mother pointer. - inline void SetMother(G4VPhysicalVolume *pMother); - // Set the mother volume. Must not be called when geometry closed. - inline G4LogicalVolume* GetMotherLogical() const; - // Return the current mother lofigal volume pointer. + // Return the current mother logical volume pointer. inline void SetMotherLogical(G4LogicalVolume *pMother); // Set the mother logical volume. Must not be called when geometry closed. @@ -158,10 +155,6 @@ class G4VPhysicalVolume G4double& offset, G4bool& consuming) const = 0; // Return replication information. No-op for no replicated volumes. - virtual void Setup(G4VPhysicalVolume *pMother) = 0; - // Perform any initialisation/setup necessary for the given volume. - // [Set the current mother pointer to refer to the specified mother, - // by calling SetMother] private: @@ -180,7 +173,6 @@ class G4VPhysicalVolume // physical and tracking attributes of // the volume G4String fname; // The name of the volume - G4VPhysicalVolume *fpmother; // The current mother physical volume G4LogicalVolume *flmother; // The current mother logical volume }; diff --git a/source/geometry/management/include/G4VPhysicalVolume.icc b/source/geometry/management/include/G4VPhysicalVolume.icc index 05c7858927..b7625e2853 100644 --- a/source/geometry/management/include/G4VPhysicalVolume.icc +++ b/source/geometry/management/include/G4VPhysicalVolume.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4VPhysicalVolume.icc,v 1.6 2003/05/13 18:38:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPhysicalVolume.icc,v 1.8 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VPhysicalVolume Inline Implementation // +// -------------------------------------------------------------------- inline G4bool G4VPhysicalVolume::operator == (const G4VPhysicalVolume& p) const @@ -76,18 +77,6 @@ void G4VPhysicalVolume::SetLogicalVolume(G4LogicalVolume *pLogical) flogical=pLogical; } -inline -G4VPhysicalVolume* G4VPhysicalVolume::GetMother() const -{ - return fpmother; -} - -inline -void G4VPhysicalVolume::SetMother(G4VPhysicalVolume *pMother) -{ - fpmother=pMother; -} - inline G4LogicalVolume* G4VPhysicalVolume::GetMotherLogical() const { diff --git a/source/geometry/management/include/G4VSolid.hh b/source/geometry/management/include/G4VSolid.hh index 89179b4734..0b131dd11a 100644 --- a/source/geometry/management/include/G4VSolid.hh +++ b/source/geometry/management/include/G4VSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.hh,v 1.12 2003/06/16 16:52:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSolid.hh,v 1.13 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VSolid @@ -57,11 +57,12 @@ // 26.07.96 P.Kent Added ComputeDimensions for replication mechanism // 27.03.96 J.Allison Methods for visualisation // 30.06.95 P.Kent Initial version, no scoping or visualisation functions - +// -------------------------------------------------------------------- #ifndef G4VSOLID_HH #define G4VSOLID_HH -#include "globals.hh" +#include "G4Types.hh" +#include "G4String.hh" #include "geomdefs.hh" class G4AffineTransform; diff --git a/source/geometry/management/include/G4VSolid.icc b/source/geometry/management/include/G4VSolid.icc index 9e34a796e0..28108f1f72 100644 --- a/source/geometry/management/include/G4VSolid.icc +++ b/source/geometry/management/include/G4VSolid.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4VSolid.icc,v 1.6 2002/10/28 11:25:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSolid.icc,v 1.7 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4VSolid Inline implementation // +// -------------------------------------------------------------------- inline G4bool G4VSolid::operator==( const G4VSolid& s) const diff --git a/source/geometry/management/include/G4VTouchable.hh b/source/geometry/management/include/G4VTouchable.hh index 1fd68cadae..4da53ad38e 100644 --- a/source/geometry/management/include/G4VTouchable.hh +++ b/source/geometry/management/include/G4VTouchable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTouchable.hh,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VTouchable.hh,v 1.6 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VTouchable @@ -89,15 +89,11 @@ // History: // Created: Paul Kent, August 1996 -// -// Modified: John Apostolakis, July 1997: new methods to Retrieve replica -// and history information -// (intention is to hide NavigHistory) - +// -------------------------------------------------------------------- #ifndef G4VTOUCHABLE_HH #define G4VTOUCHABLE_HH -#include "globals.hh" +#include "G4Types.hh" class G4VPhysicalVolume; class G4VSolid; diff --git a/source/geometry/management/include/G4VTouchable.icc b/source/geometry/management/include/G4VTouchable.icc index 5e8c2b7dbc..55f5e8b509 100644 --- a/source/geometry/management/include/G4VTouchable.icc +++ b/source/geometry/management/include/G4VTouchable.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4VTouchable.icc,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VTouchable.icc,v 1.7 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VTouchable Inline implementation // +// -------------------------------------------------------------------- inline G4VTouchable::G4VTouchable() @@ -41,55 +42,55 @@ G4VTouchable::~G4VTouchable() inline G4VPhysicalVolume* G4VTouchable::GetVolume(G4int) const { - G4Exception("G4VTouchable::GetVolume(G4int depth) undefined"); - return NULL; + G4Exception("G4VTouchable::GetVolume()", "NotApplicable", + FatalException, "Undefined call to base class."); + return 0; } inline G4VSolid* G4VTouchable::GetSolid(G4int) const { - G4Exception("G4VTouchable::GetSolid(G4int depth) undefined"); - return NULL; + G4Exception("G4VTouchable::GetSolid()", "NotApplicable", + FatalException, "Undefined call to base class."); + return 0; } inline G4int G4VTouchable::GetReplicaNumber(G4int) const { - G4Exception("G4VTouchable::GetReplicaNumber(G4int depth) undefined"); + G4Exception("G4VTouchable::GetReplicaNumber()", "NotApplicable", + FatalException, "Undefined call to base class."); return 0; } inline -G4int G4VTouchable::MoveUpHistory( G4int ) +G4int G4VTouchable::MoveUpHistory(G4int) { - G4Exception("G4VTouchable::MoveUpHistory(G4int) undefined "); - return 0; // for this touchable subclass + G4Exception("G4VTouchable::MoveUpHistory()", "NotApplicable", + FatalException, "Undefined call to base class."); + return 0; } inline void G4VTouchable::UpdateYourself(G4VPhysicalVolume*, const G4NavigationHistory* ) { - G4Exception("G4VTouchable::UpdateYourself( G4VPhysicalVolume*, const G4NavigationHistory* ) undefined "); + G4Exception("G4VTouchable::UpdateYourself()", "NotApplicable", + FatalException, "Undefined call to base class."); } inline G4int G4VTouchable::GetHistoryDepth() const { - G4Exception("G4VTouchable::GetHistoryDepth() undefined "); + G4Exception("G4VTouchable::GetHistoryDepth()", "NotApplicable", + FatalException, "Undefined call to base class."); return 0; } inline const G4NavigationHistory* G4VTouchable::GetHistory() const { - G4Exception("G4VTouchable::GetHistory() undefined"); - return NULL; + G4Exception("G4VTouchable::GetHistory()", "NotApplicable", + FatalException, "Undefined call to base class."); + return 0; } - -#if 0 -inline void G4VTouchable::ResetLevel() -{ - G4Exception("G4VTouchable::ResetLevel() undefined"); -} -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ConicCreator.hh b/source/geometry/management/include/G4VUserRegionInformation.hh similarity index 67% rename from source/geometry/solids/STEPinterface/include/G4ConicCreator.hh rename to source/geometry/management/include/G4VUserRegionInformation.hh index 680b1b46d8..62c23eeb90 100644 --- a/source/geometry/solids/STEPinterface/include/G4ConicCreator.hh +++ b/source/geometry/management/include/G4VUserRegionInformation.hh @@ -21,48 +21,39 @@ // ******************************************************************** // // -// $Id: G4ConicCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ConicCreator -// -// Class description: +// $Id: G4VUserRegionInformation.hh,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // +// -------------------------------------------------------------------- +// +// G4VUserRegionInformation +// +// Class Description: +// +// Abstract class, the user can subclass for storing information +// associated with a G4Region class object. +// +// It is user's responsibility to construct a concrete class object +// and set the pointer to proper G4Region object. +// The concrete class object is deleted by Geant4 kernel when +// associated G4Region object is deleted. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// // History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4CONICCREATOR_HH -#define G4CONICCREATOR_HH +// 21/10/2003 - M.Asai, Created. +// -------------------------------------------------------------------- +#ifndef G4VUserRegionInformation_H +#define G4VUserRegionInformation_H 1 -#include "G4GeometryCreator.hh" - -class G4ConicCreator: private G4GeometryCreator +class G4VUserRegionInformation { - public: - - // Constructor & destructor - - G4ConicCreator(); - ~G4ConicCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Conic"; } - static G4ConicCreator GetInstance(); - - // Members + public: // with description - private: + G4VUserRegionInformation() {} + virtual ~G4VUserRegionInformation() {} - static G4ConicCreator csc; + virtual void Print() const = 0; }; #endif + diff --git a/source/geometry/management/include/G4VoxelLimits.hh b/source/geometry/management/include/G4VoxelLimits.hh index 23e730e81c..d64322e3f4 100644 --- a/source/geometry/management/include/G4VoxelLimits.hh +++ b/source/geometry/management/include/G4VoxelLimits.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VoxelLimits.hh,v 1.7 2003/06/16 16:52:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VoxelLimits.hh,v 1.8 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4VoxelLimits // @@ -46,15 +46,14 @@ // History: // 13.07.95 P.Kent Initial version. - +// -------------------------------------------------------------------- #ifndef G4VOXELLIMITS_HH #define G4VOXELLIMITS_HH -#include "globals.hh" +#include "G4Types.hh" #include "geomdefs.hh" #include "G4ThreeVector.hh" -#include #include diff --git a/source/geometry/management/include/G4VoxelLimits.icc b/source/geometry/management/include/G4VoxelLimits.icc index fdb3204869..6a656846b3 100644 --- a/source/geometry/management/include/G4VoxelLimits.icc +++ b/source/geometry/management/include/G4VoxelLimits.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4VoxelLimits.icc,v 1.2 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VoxelLimits.icc,v 1.3 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4VoxelLimits Inline implementation // +// -------------------------------------------------------------------- inline G4double G4VoxelLimits::GetMaxXExtent() const diff --git a/source/geometry/management/include/meshdefs.hh b/source/geometry/management/include/meshdefs.hh index ef0c93bf78..2f3fa11acc 100644 --- a/source/geometry/management/include/meshdefs.hh +++ b/source/geometry/management/include/meshdefs.hh @@ -21,19 +21,19 @@ // ******************************************************************** // // -// $Id: meshdefs.hh,v 1.4 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: meshdefs.hh,v 1.5 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Tube/Cone Meshing constants for extent calculations // History: // 13.08.95 P.Kent Created separate file - +// -------------------------------------------------------------------- #ifndef MESHDEFS_HH #define MESHDEFS_HH -#include "globals.hh" +#include "G4Types.hh" const G4double kMeshAngleDefault=(M_PI/4); // Angle for mesh `wedges' in rads // Works best when simple fraction of M_PI/2 diff --git a/source/geometry/management/include/voxeldefs.hh b/source/geometry/management/include/voxeldefs.hh index afe8675ade..ca16522032 100644 --- a/source/geometry/management/include/voxeldefs.hh +++ b/source/geometry/management/include/voxeldefs.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: voxeldefs.hh,v 1.5 2001/07/11 09:59:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: voxeldefs.hh,v 1.6 2003/11/02 14:01:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // @@ -31,11 +31,11 @@ // History: // 12.02.99 S.Giani made numerical values consistent with Geant3.21 // 13.08.95 P.Kent Created separate file - +// -------------------------------------------------------------------- #ifndef VOXELDEFS_HH #define VOXELDEFS_HH -#include "globals.hh" +#include "G4Types.hh" // Hard limit on no. voxel nodes per given header const G4int kMaxVoxelNodes=1000; // PK chose 2000, Geant 3.21 used 1000 diff --git a/source/geometry/volumes/src/G4BlockingList.cc b/source/geometry/management/src/G4BlockingList.cc similarity index 91% rename from source/geometry/volumes/src/G4BlockingList.cc rename to source/geometry/management/src/G4BlockingList.cc index 6a75c8fa78..734f03ab02 100644 --- a/source/geometry/volumes/src/G4BlockingList.cc +++ b/source/geometry/management/src/G4BlockingList.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4BlockingList.cc,v 1.7 2002/11/27 17:50:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BlockingList.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4BlockingList Implementation // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4BlockingList.hh" diff --git a/source/geometry/management/src/G4DrawVoxels.cc b/source/geometry/management/src/G4DrawVoxels.cc deleted file mode 100644 index 2980f34290..0000000000 --- a/source/geometry/management/src/G4DrawVoxels.cc +++ /dev/null @@ -1,248 +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: G4DrawVoxels.cc,v 1.15 2002/04/19 08:20:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// class G4DrawVoxels -// -// Implementation -// -// Define G4DrawVoxelsDebug for debugging information on G4cout -// -// History: -// 03/08/1999 The G4VisAttributes have been made member data for lifetime reasons / visualisation L.G (see John Allison for further explanation) -// 29/07/1999 first comitted version L.G. - - -//Including the necessary data -#include "G4DrawVoxels.hh" -#include "G4VVisManager.hh" -/****************************/ - - -//Private Constructor -G4DrawVoxels::G4DrawVoxels(){ - fVoxelsVisAttributes[0].SetColour(G4Colour(1.,0.,0.)); - fVoxelsVisAttributes[1].SetColour(G4Colour(0.,1.,0.)); - fVoxelsVisAttributes[2].SetColour(G4Colour(0.,0.,1.)); - fBoundingBoxVisAttributes.SetColour(G4Colour(.3,0.,.2)); -} - - -// Destructor -G4DrawVoxels::~G4DrawVoxels() -{ -} - - -//Methods that allow changing colors of the drawing -void G4DrawVoxels::SetVoxelsVisAttributes(G4VisAttributes& VA_voxelX,G4VisAttributes& VA_voxelY,G4VisAttributes& VA_voxelZ){ - fVoxelsVisAttributes[0]=VA_voxelX; //operateur de copie ... - fVoxelsVisAttributes[1]=VA_voxelY; - fVoxelsVisAttributes[2]=VA_voxelZ; -} -void G4DrawVoxels::SetBoundingBoxVisAttributes(G4VisAttributes& VA_boundingbox){ - fBoundingBoxVisAttributes=VA_boundingbox; //operateur de copie ... -} - - -//#********************************************************************************************************************# -//#********************************************************************************************************************# -void G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, - const G4SmartVoxelHeader* header, - G4VoxelLimits& limit, - G4PlacedPolyhedronList* ppl) const -{ -//###################################################################################################################### -// Let's draw the selected voxelisation now ! - - #ifdef G4DrawVoxelsDebug - G4cout << "**** !!! G4DrawVoxels::Draw_Voxels : a query for drawing voxelisation"; - G4cout << " Logical Volume:" << lv->GetName() <GetSolid(); - - G4double dx=kInfinity,dy=kInfinity,dz=kInfinity; - G4double xmax=0,xmin=0,ymax=0,ymin=0,zmax=0,zmin=0; - - 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 !!! ****" <CalculateExtent(kXAxis,limit,G4AffineTransform(),xmin,xmax); //G4AffineTransform() is identity - solid->CalculateExtent(kYAxis,limit,G4AffineTransform(),ymin,ymax); //extents according to the axis of the local frame - solid->CalculateExtent(kZAxis,limit,G4AffineTransform(),zmin,zmax); - dx=xmax-xmin; - dy=ymax-ymin; - dz=zmax-zmin; - - //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,(ymin+ymax)*0.5,(zmin+zmax)*0.5); - - //ppl->resize(ppl->entries()+1); //manual resize to avoid Rogue grabbing RW_DEFAULT - ppl->push_back(G4PlacedPolyhedron(bounding_polyhedronBox,G4Translate3D(t_centerofBoundingBox))); - - G4ThreeVector t_FirstCenterofVoxelPlane; - const G4VisAttributes* voxelsVisAttributes=0; - - G4ThreeVector unit_translation_vector; - G4ThreeVector current_translation_vector; - - switch(header->GetAxis()) - { - case kXAxis: - dx=voxel_width; - unit_translation_vector=G4ThreeVector(1,0,0); - t_FirstCenterofVoxelPlane=G4ThreeVector(xmin,(ymin+ymax)*0.5,(zmin+zmax)*0.5); - voxelsVisAttributes=&fVoxelsVisAttributes[0]; - break; - case kYAxis: - dy=voxel_width; - t_FirstCenterofVoxelPlane=G4ThreeVector((xmin+xmax)*0.5,ymin,(zmin+zmax)*0.5); - unit_translation_vector=G4ThreeVector(0,1,0); - voxelsVisAttributes=&fVoxelsVisAttributes[1]; - break; - case kZAxis: - dz=voxel_width; - t_FirstCenterofVoxelPlane=G4ThreeVector((xmin+xmax)*0.5,(ymin+ymax)*0.5,zmin); - unit_translation_vector=G4ThreeVector(0,0,1); - voxelsVisAttributes=&fVoxelsVisAttributes[2]; - break; - default: - //erreur interne - /************************/ - G4cout << "PANIC: in Draw_Voxels:DrawVoxels(...) header is decayed." <GetAxis returns an invalid axis." <GetSlice(0); - G4int slice_no=0,no_slices=header->GetNoSlices(); - 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 <IsHeader() <IsHeader()){ - G4VoxelLimits newlimit(limit); - newlimit.AddLimit(header->GetAxis(),beginning+step*slice_no, - beginning+step*(slice->GetHeader()->GetMaxEquivalentSliceNo()+1)); - ComputeVoxelPolyhedra(lv,slice->GetHeader(),newlimit,ppl); - } - current_translation_vector=unit_translation_vector; - current_translation_vector*=step*slice_no; - - //ppl->resize(ppl->entries()+1); //manual resize to avoid Rogue grabbing RW_DEFAULT - ppl->push_back(G4PlacedPolyhedron(voxel_plane,G4Translate3D(current_translation_vector+t_FirstCenterofVoxelPlane))); - - slice_no=(slice->IsHeader()?slice->GetHeader()->GetMaxEquivalentSliceNo()+1 - :slice->GetNode()->GetMaxEquivalentSliceNo()+1); - if (slice_noGetSlice(slice_no); - } -}//end of ComputeVoxelPolyhedra... -//###################################################################################################################### - -G4AffineTransform G4DrawVoxels::GetAbsoluteTransformation(const G4VPhysicalVolume* pv) const{ - //Initialisation of the transformation to be computed - G4AffineTransform transf; //default constructor ie Id - - const G4VPhysicalVolume* current= pv; - const G4VPhysicalVolume* mother = pv->GetMother(); - - //Now we loop up to the world physical volume - while (mother!=NULL){ - //the following has to be verified since it could be the inverse transformations to be used: - //the explanation is not clear in G4VPhysicalVolume.hh. - transf=G4AffineTransform(current->GetObjectRotation(),current->GetObjectTranslation())*transf; - current=mother; - mother=current->GetMother(); - } - //current is the world volume - return transf; -} - - - -G4PlacedPolyhedronList* G4DrawVoxels::CreatePlacedPolyhedra(const G4LogicalVolume* lv) const{ - G4PlacedPolyhedronList* pplist=new G4PlacedPolyhedronList; - G4VoxelLimits limits; // Working object for recursive call. - ComputeVoxelPolyhedra(lv,lv->GetVoxelHeader(),limits,pplist); - return pplist; //it s up to the calling program to destroy it then! -} - - - -void G4DrawVoxels::DrawVoxels(const G4LogicalVolume* lv) const{ - - 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 !!! ****" <GetDaughter(0)->GetMother()); - //in the hope that all daughters have same mother - //and that the 0th is indeed the first to be filled. - //G4Transform3D transf3D=GetAbsolute3DTransformation(lv->GetDaughter(0)->GetMother()); - G4Transform3D transf3D(transf.NetRotation(),transf.NetTranslation()); - - G4PlacedPolyhedronList* pplist=CreatePlacedPolyhedra(lv); - if(pVVisManager) { - //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! @@@@" < #include "G4Timer.hh" #include "G4GeometryManager.hh" +#ifdef G4GEOMETRY_VOXELDEBUG +#include "G4ios.hh" +#endif + +// Needed for building optimisations +// +#include "G4LogicalVolumeStore.hh" +#include "G4LogicalVolume.hh" +#include "G4SmartVoxelHeader.hh" +#include "voxeldefs.hh" + // *************************************************************************** // Static class variable: ptr to single instance of class // *************************************************************************** @@ -153,8 +164,9 @@ void G4GeometryManager::BuildOptimisations(G4bool allOpts, G4bool verbose) } else { - G4cout << "ERROR - VoxelHeader new failed." << G4endl; - G4Exception("ERROR - G4GeometryManager::BuildOptimisations"); + G4cerr << "ERROR - Allocation of new VoxelHeader failed." << G4endl; + G4Exception("G4GeometryManager::BuildOptimisations()", "FatalError", + FatalException, "VoxelHeader allocation error."); } if (verbose) { diff --git a/source/geometry/volumes/src/G4IdentityTrajectoryFilter.cc b/source/geometry/management/src/G4IdentityTrajectoryFilter.cc similarity index 92% rename from source/geometry/volumes/src/G4IdentityTrajectoryFilter.cc rename to source/geometry/management/src/G4IdentityTrajectoryFilter.cc index 2baa6732ee..c5cf8f231a 100644 --- a/source/geometry/volumes/src/G4IdentityTrajectoryFilter.cc +++ b/source/geometry/management/src/G4IdentityTrajectoryFilter.cc @@ -21,8 +21,10 @@ // ******************************************************************** // // -// $Id: G4IdentityTrajectoryFilter.cc,v 1.4 2003/02/06 18:53:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4IdentityTrajectoryFilter.cc,v 1.2 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------------------ #include "G4IdentityTrajectoryFilter.hh" diff --git a/source/geometry/management/src/G4LogicalVolume.cc b/source/geometry/management/src/G4LogicalVolume.cc index 87d450659c..f52eb1a03b 100644 --- a/source/geometry/management/src/G4LogicalVolume.cc +++ b/source/geometry/management/src/G4LogicalVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolume.cc,v 1.16 2003/05/22 00:50:13 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalVolume.cc,v 1.18 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4LogicalVolume Implementation @@ -33,7 +33,7 @@ // 04.08.97 P.M.DeFreitas: Added methods for parameterised simulation // 19.08.96 P.Kent: Modified for G4VSensitive Detector // 11.07.95 P.Kent: Initial version -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4LogicalVolume.hh" #include "G4LogicalVolumeStore.hh" @@ -126,32 +126,23 @@ G4LogicalVolume::ClearEnvelopeForFastSimulation( G4LogicalVolume* motherLogVol ) { motherLogVol = this->FindMotherLogicalVolumeForEnvelope(); } - else - { - // Check that "motherLogVol" is this mother. - // If not, raise exception and set it to 0. - // - if ( false ) - { - G4cerr << "ERROR - Wrong mother LogicalVolume !" << G4endl; - G4Exception("ERROR - G4LogicalVolume::ClearEnvelopeForFastSimulation"); - motherLogVol = 0; - } - } + // 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(); - this->SetFastSimulationManager(NewFastSimulationVal, false); + SetFastSimulationManager(NewFastSimulationVal, false); } } else { - G4cerr << "ERROR - Called ClearEnvelope() for non-envelope Logical Volume !" + G4cerr << "ERROR - Called ClearEnvelope() for non-envelope logical volume!" << G4endl; - G4Exception("ERROR - G4LogicalVolume::ClearEnvelope"); + G4Exception("G4LogicalVolume::ClearEnvelopeForFastSimulation()", + "NotApplicable", FatalException, + "Cannot be called for non-envelope logical volumes."); } } diff --git a/source/geometry/management/src/G4LogicalVolumeStore.cc b/source/geometry/management/src/G4LogicalVolumeStore.cc index 168d977768..ebee568699 100644 --- a/source/geometry/management/src/G4LogicalVolumeStore.cc +++ b/source/geometry/management/src/G4LogicalVolumeStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalVolumeStore.cc,v 1.11 2003/06/16 16:52:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalVolumeStore.cc,v 1.12 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4LogicalVolumeStore // @@ -30,9 +30,9 @@ // // History: // 10.07.95 P.Kent Initial version -// ******************************************************************** +// -------------------------------------------------------------------- -#include "globals.hh" +#include "G4Types.hh" #include "G4LogicalVolumeStore.hh" #include "G4GeometryManager.hh" @@ -113,7 +113,7 @@ void G4LogicalVolumeStore::Clean() // void G4LogicalVolumeStore::Register(G4LogicalVolume* pVolume) { - GetInstance()->push_back(pVolume); + GetInstance()->push_back(pVolume); } // *************************************************************************** @@ -141,10 +141,10 @@ void G4LogicalVolumeStore::DeRegister(G4LogicalVolume* pVolume) // G4LogicalVolumeStore* G4LogicalVolumeStore::GetInstance() { - static G4LogicalVolumeStore worldStore; - if (!fgInstance) - { - fgInstance = &worldStore; - } - return fgInstance; + static G4LogicalVolumeStore worldStore; + if (!fgInstance) + { + fgInstance = &worldStore; + } + return fgInstance; } diff --git a/source/geometry/management/src/G4PhysicalVolumeStore.cc b/source/geometry/management/src/G4PhysicalVolumeStore.cc index 604d366dd1..303097a9e0 100644 --- a/source/geometry/management/src/G4PhysicalVolumeStore.cc +++ b/source/geometry/management/src/G4PhysicalVolumeStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicalVolumeStore.cc,v 1.12 2003/06/16 16:52:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PhysicalVolumeStore.cc,v 1.13 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4PhysicalVolumeStore // @@ -30,11 +30,12 @@ // // History: // 25.07.95 P.Kent Initial version -// ******************************************************************** +// -------------------------------------------------------------------- -#include "globals.hh" +#include "G4Types.hh" #include "G4PhysicalVolumeStore.hh" #include "G4GeometryManager.hh" +#include "G4LogicalVolume.hh" // *************************************************************************** // Static class variables @@ -153,10 +154,10 @@ void G4PhysicalVolumeStore::DeRegister(G4VPhysicalVolume* pVolume) // G4PhysicalVolumeStore* G4PhysicalVolumeStore::GetInstance() { - static G4PhysicalVolumeStore worldStore; - if (!fgInstance) - { - fgInstance = &worldStore; - } - return fgInstance; + static G4PhysicalVolumeStore worldStore; + if (!fgInstance) + { + fgInstance = &worldStore; + } + return fgInstance; } diff --git a/source/geometry/management/src/G4Region.cc b/source/geometry/management/src/G4Region.cc index a15f11912e..e4c64b0dfa 100644 --- a/source/geometry/management/src/G4Region.cc +++ b/source/geometry/management/src/G4Region.cc @@ -21,17 +21,20 @@ // ******************************************************************** // // -// $Id: G4Region.cc,v 1.9 2003/06/16 16:52:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Region.cc,v 1.11 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Region Implementation +// +// -------------------------------------------------------------------- #include "G4RegionStore.hh" #include "G4LogicalVolume.hh" #include "G4VPhysicalVolume.hh" #include "G4Region.hh" #include "G4VPVParameterisation.hh" +#include "G4VUserRegionInformation.hh" // ******************************************************************* // Constructor: @@ -39,15 +42,16 @@ // ******************************************************************* // G4Region::G4Region(const G4String& pName) - : fName(pName), fRegionMod(true), fCut(0) + : fName(pName), fRegionMod(true), fCut(0), fUserInfo(0) { G4RegionStore* rStore = G4RegionStore::GetInstance(); if (rStore->GetRegion(pName,false)) { G4cerr << "WARNING - G4Region::G4Region()" << G4endl << " Region " << pName << " already existing in store !" - << G4endl - << " The region has NOT been registered !" << G4endl; + << G4endl; + G4Exception("G4Region::G4Region()", "InvalidSetup", JustWarning, + "The region has NOT been registered !"); } else { @@ -63,6 +67,7 @@ G4Region::G4Region(const G4String& pName) G4Region::~G4Region() { G4RegionStore::GetInstance()->DeRegister(this); + if(fUserInfo) delete fUserInfo; } // ******************************************************************* diff --git a/source/geometry/management/src/G4RegionStore.cc b/source/geometry/management/src/G4RegionStore.cc index f6965b8551..7cadabbe9e 100644 --- a/source/geometry/management/src/G4RegionStore.cc +++ b/source/geometry/management/src/G4RegionStore.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RegionStore.cc,v 1.5 2003/06/16 16:52:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4RegionStore.cc,v 1.6 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4RegionStore // @@ -30,12 +30,14 @@ // // History: // 18.09.02 G.Cosmo Initial version -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4Region.hh" #include "G4RegionStore.hh" #include "G4GeometryManager.hh" +#include "G4ios.hh" + // *************************************************************************** // Static class variables // *************************************************************************** diff --git a/source/geometry/management/src/G4SmartVoxelHeader.cc b/source/geometry/management/src/G4SmartVoxelHeader.cc index 9a465513e7..ec8cd5914f 100644 --- a/source/geometry/management/src/G4SmartVoxelHeader.cc +++ b/source/geometry/management/src/G4SmartVoxelHeader.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelHeader.cc,v 1.21 2003/06/16 16:52:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelHeader.cc,v 1.24 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4SmartVoxelHeader @@ -38,14 +38,17 @@ // 11.02.99 Voxels at lower levels are now built for collapsed slices S.G. // 21.07.95 Full implementation, supporting non divided physical volumes // 14.07.95 Initial version - stubb definitions only -// *************************************************************************** +// -------------------------------------------------------------------- #include "G4SmartVoxelHeader.hh" +#include "G4ios.hh" + #include "G4LogicalVolume.hh" #include "G4VPhysicalVolume.hh" #include "G4VoxelLimits.hh" +#include "voxeldefs.hh" #include "G4AffineTransform.hh" #include "G4VSolid.hh" #include "G4VPVParameterisation.hh" @@ -346,8 +349,11 @@ void G4SmartVoxelHeader::BuildReplicaVoxels(G4LogicalVolume* pVolume) fmaxExtent = offset+width*nReplicas; break; default: - G4cout << "ERROR - Illegal axis !" << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildReplicaVoxels"); + G4cerr << "ERROR - G4SmartVoxelHeader::BuildReplicaVoxels()" + << G4endl + << " Illegal axis !" << G4endl; + G4Exception("G4SmartVoxelHeader::BuildReplicaVoxels()", "FatalError", + FatalException, "Illegal axis."); break; } faxis = axis; // Set axis @@ -363,17 +369,23 @@ void G4SmartVoxelHeader::BuildReplicaVoxels(G4LogicalVolume* pVolume) if ( (fabs((min-fminExtent)/fminExtent) + fabs((max-fmaxExtent)/fmaxExtent)) > 0.05) { - G4cout << "ERROR - Replicated geometry, logical volume: " + G4cerr << "ERROR - G4SmartVoxelHeader::BuildReplicaVoxels()" + << G4endl + << " Replicated geometry, logical volume: " << pVolume->GetName() << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildReplicaVoxels"); + G4Exception("G4SmartVoxelHeader::BuildReplicaVoxels", "FatalError", + FatalException, "Sanity check: wrong solid extent."); } } } } else { - G4cout << "ERROR - There must be a single replicated volume !" << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildReplicaVoxels"); + G4cerr << "ERROR - G4SmartVoxelHeader::BuildReplicaVoxels()" + << G4endl + << " There must be a single replicated volume !" << G4endl; + G4Exception("G4SmartVoxelHeader::BuildReplicaVoxels", "InvalidSetup", + FatalException, "Only one replicated daughter is allowed !"); } } @@ -399,8 +411,10 @@ void G4SmartVoxelHeader::BuildConsumedNodes(G4int nReplicas) pNode=new G4SmartVoxelNode(nNode); if (!pNode) { - G4cout << "ERROR - Node allocation failed." << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildConsumedNodes"); + G4cerr << "ERROR - G4SmartVoxelHeader::BuildConsumedNodes()" << G4endl + << " Node allocation failed." << G4endl; + G4Exception("G4SmartVoxelHeader::BuildConsumedNodes()", "FatalError", + FatalException, "Node allocation error."); } nodeList.push_back(pNode); } @@ -417,8 +431,10 @@ void G4SmartVoxelHeader::BuildConsumedNodes(G4int nReplicas) pProxyNode = new G4SmartVoxelProxy(nodeList[nNode]); if (!pProxyNode) { - G4cout << "ERROR - Proxy Node allocation failed." << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildConsumedNodes"); + G4cerr << "ERROR - G4SmartVoxelHeader::BuildConsumedNodes()" << G4endl + << " Proxy node allocation failed." << G4endl; + G4Exception("G4SmartVoxelHeader::BuildConsumedNodes()", "FatalError", + FatalException, "Proxy node allocation error."); } fslices.push_back(pProxyNode); } @@ -508,8 +524,12 @@ G4SmartVoxelHeader::BuildVoxelsWithinLimits(G4LogicalVolume* pVolume, // if (!pGoodSlices) { - G4cout << "ERROR - Illegal limits: already 3 dimensions of limits !" << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildVoxelsWithinLimits"); + G4cerr << "ERROR - G4SmartVoxelHeader::BuildVoxelsWithinLimits()" + << G4endl + << " Illegal limits: only 3 dimensions allowed." << G4endl; + G4Exception("G4SmartVoxelHeader::BuildVoxelsWithinLimits()", + "InvalidSetup", FatalException, + "Cannot select more than 3 axis for optimisation."); } // @@ -778,14 +798,15 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, pParam = pDaughter->GetParameterisation(); if (!pParam) { - G4cout << "PANIC! Replicated volume with no parameterisation object !" + G4cerr << "PANIC! - G4SmartVoxelHeader::BuildNodes()" << G4endl + << " Replicated volume with no parameterisation object !" << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); + G4Exception("G4SmartVoxelHeader::BuildNodes()", "InvalidSetup", + FatalException, "Missing parameterisation."); } - // Setup volume, preserving current mother link + // Setup daughter's transformations // - pDaughter->Setup(pDaughter->GetMother()); targetTransform = G4AffineTransform(pDaughter->GetRotation(), pDaughter->GetTranslation()); replicated = true; @@ -804,9 +825,8 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, { pDaughter=pVolume->GetDaughter(targetVolNo); - // Setup volume, preserving current mother link + // Setup daughter's transformations // - pDaughter->Setup(pDaughter->GetMother()); targetTransform = G4AffineTransform(pDaughter->GetRotation(), pDaughter->GetTranslation()); // Get underlying (and setup) solid @@ -845,11 +865,13 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, if ( (!pLimits.IsLimited()) && ((targetMaxExtent<=motherMinExtent) ||(targetMinExtent>=motherMaxExtent)) ) { - G4cout << "PANIC! Daughter physical volume " + G4cerr << "PANIC! - G4SmartVoxelHeader::BuildNodes()" << G4endl + << " Daughter physical volume " << pDaughter->GetName() << G4endl - << "is entirely outside mother logical volume " + << " is entirely outside mother logical volume " << pVolume->GetName() << " !!" << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); + G4Exception("G4SmartVoxelHeader::BuildNodes()", "InvalidSetup", + FatalException, "Overlapping daughter with mother volume."); } #ifdef G4GEOMETRY_VOXELDEBUG @@ -933,8 +955,10 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, nodeList->reserve(noNodes); if (!nodeList) { - G4cout << "ERROR - NodeList allocation failed." << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); + G4cerr << "ERROR - G4SmartVoxelHeader::BuildNodes()" << G4endl + << " NodeList allocation failed." << G4endl; + G4Exception("G4SmartVoxelHeader::BuildNodes()", "FatalError", + FatalException, "NodeList allocation error."); } for (nNode=0; nNodepush_back(pNode); } @@ -992,8 +1018,10 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, proxyList->reserve(noNodes); if (!proxyList) { - G4cout << "ERROR - Proxy List allocation failed." << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); + G4cerr << "ERROR - G4SmartVoxelHeader::BuildNodes()" << G4endl + << " Proxy list allocation failed." << G4endl; + G4Exception("G4SmartVoxelHeader::BuildNodes()", "FatalError", + FatalException, "Proxy list allocation error."); } // // Fill proxy List @@ -1003,8 +1031,10 @@ G4ProxyVector* G4SmartVoxelHeader::BuildNodes(G4LogicalVolume* pVolume, G4SmartVoxelProxy* pProxyNode = new G4SmartVoxelProxy((*nodeList)[nNode]); if (!pProxyNode) { - G4cout << "ERROR - Proxy Node allocation failed." << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::BuildNodes"); + G4cerr << "ERROR - G4SmartVoxelHeader::BuildNodes()" << G4endl + << " Proxy node allocation failed." << G4endl; + G4Exception("G4SmartVoxelHeader::BuildNodes()", "FatalError", + FatalException, "Proxy node allocation failed."); } proxyList->push_back(pProxyNode); } @@ -1057,8 +1087,10 @@ G4double G4SmartVoxelHeader::CalculateQuality(G4ProxyVector *pSlice) } else { - G4cout << "ERROR - Not defined for sliced volumes." << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::CalculateQuality"); + G4cout << "ERROR - G4SmartVoxelHeader::CalculateQuality()" << G4endl + << " Not defined for sliced volumes." << G4endl; + G4Exception("G4SmartVoxelHeader::CalculateQuality()", "NotApplicable", + FatalException, "Not applicable to replicated volumes."); } } @@ -1153,8 +1185,12 @@ void G4SmartVoxelHeader::RefineNodes(G4LogicalVolume* pVolume, targetList->reserve(noContainedDaughters); if (!targetList) { - G4cout << "ERROR - Target volume no List new failed." << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::RefineNodes"); + G4cerr << "ERROR - G4SmartVoxelHeader::RefineNodes()" << G4endl + << " Target volume node list allocation failed." + << G4endl; + G4Exception("G4SmartVoxelHeader::RefineNodes()", + "FatalError", FatalException, + "Target volume node list allocation error."); } for (i=0; iSetMinEquivalentSliceNo(minNo); replaceHeader->SetMaxEquivalentSliceNo(maxNo); replaceHeaderProxy = new G4SmartVoxelProxy(replaceHeader); if (!replaceHeader) { - G4cout << "ERROR - Refined VoxelProxy new failed." << G4endl; - G4Exception("ERROR - G4SmartVoxelHeader::RefineNodes"); + G4cerr << "ERROR - G4SmartVoxelHeader::RefineNodes()" << G4endl + << " Refined VoxelProxy allocation failed." << G4endl; + G4Exception("G4SmartVoxelHeader::RefineNodes()", "FatalError", + FatalException, "Refined VoxelProxy allocation error."); } for (replaceNo=minNo; replaceNo<=maxNo; replaceNo++) { diff --git a/source/geometry/management/src/G4SmartVoxelNode.cc b/source/geometry/management/src/G4SmartVoxelNode.cc index 1bf270f5d9..27dca392cc 100644 --- a/source/geometry/management/src/G4SmartVoxelNode.cc +++ b/source/geometry/management/src/G4SmartVoxelNode.cc @@ -21,13 +21,14 @@ // ******************************************************************** // // -// $Id: G4SmartVoxelNode.cc,v 1.4 2002/04/19 08:20:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SmartVoxelNode.cc,v 1.5 2003/11/02 14:01:23 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class G4SmartVoxelNode // // Implementation // +// -------------------------------------------------------------------- #include "G4SmartVoxelNode.hh" @@ -44,17 +45,17 @@ G4SmartVoxelNode::~G4SmartVoxelNode() // Node contents were entered in the same order G4bool G4SmartVoxelNode::operator == (const G4SmartVoxelNode& v) const { - G4int maxNode=GetNoContained(); - if (maxNode==v.GetNoContained()) - { - for (G4int node=0;nodeGetLogicalVolume()->GetSolid(); + return pPhysicalVol->GetLogicalVolume()->GetSolid(); } - -G4Material* G4VPVParameterisation::ComputeMaterial(const G4int, + +G4Material* +G4VPVParameterisation::ComputeMaterial(const G4int, G4VPhysicalVolume *pPhysicalVol) { - return pPhysicalVol->GetLogicalVolume()->GetMaterial(); -} + return pPhysicalVol->GetLogicalVolume()->GetMaterial(); +} diff --git a/source/geometry/management/src/G4VPhysicalVolume.cc b/source/geometry/management/src/G4VPhysicalVolume.cc index 9f3df352f8..c066e856dc 100644 --- a/source/geometry/management/src/G4VPhysicalVolume.cc +++ b/source/geometry/management/src/G4VPhysicalVolume.cc @@ -21,14 +21,13 @@ // ******************************************************************** // // -// $Id: G4VPhysicalVolume.cc,v 1.7 2003/05/13 18:38:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPhysicalVolume.cc,v 1.9 2003/11/02 14:01:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VPhysicalVolume Implementation -// 09.11.99 J.Apostolakis Made GetObjectRotation() non-inline (it uses static) -// To be made obsolecent, in favour of more robust -// GetObjectRotationValue() +// +// -------------------------------------------------------------------- #include "G4VPhysicalVolume.hh" @@ -41,9 +40,9 @@ G4VPhysicalVolume::G4VPhysicalVolume( G4RotationMatrix *pRot, const G4ThreeVector &tlate, const G4String& pName, G4LogicalVolume* pLogical, - G4VPhysicalVolume* pMother ) + G4VPhysicalVolume* ) : frot(pRot), ftrans(tlate), flogical(pLogical), - fname(pName), fpmother(pMother), flmother(0) + fname(pName), flmother(0) { G4PhysicalVolumeStore::Register(this); } diff --git a/source/geometry/management/src/G4VSolid.cc b/source/geometry/management/src/G4VSolid.cc index 71278b5d3c..84b79e0d8d 100644 --- a/source/geometry/management/src/G4VSolid.cc +++ b/source/geometry/management/src/G4VSolid.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSolid.cc,v 1.18 2003/06/16 16:52:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSolid.cc,v 1.20 2003/11/02 14:01:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4VSolid // @@ -34,10 +34,10 @@ // 10.05.02 V.Grichine, ClipPolygon(): clip only other axis and limited voxels // 15.04.02 V.Grichine, bug fixed in ClipPolygon(): clip only one axis // 13.03.02 V.Grichine, cosmetics of voxel limit functions -// 15.11.00 D.Williams, V.Grichine fix in CalculateClippedPolygonExtent() -// 10.07.95 P.Kent Added == operator, solid Store entry -// 30.06.95 P.Kent Created. -// +// 15.11.00 D.Williams, V.Grichine, fix in CalculateClippedPolygonExtent() +// 10.07.95 P.Kent, Added == operator, solid Store entry +// 30.06.95 P.Kent, Created. +// -------------------------------------------------------------------- #include "G4VSolid.hh" #include "G4SolidStore.hh" @@ -82,14 +82,13 @@ std::ostream& operator<< ( std::ostream& os, const G4VSolid& e ) // Throw exception if ComputeDimensions called for illegal derived class void G4VSolid::ComputeDimensions(G4VPVParameterisation*, - const G4int, + const G4int, const G4VPhysicalVolume*) { - G4cout << "ERROR - Illegal call to G4VSolid::ComputeDimensions()" << G4endl - << " Method not overloaded by derived class !" << G4endl; G4cerr << "ERROR - Illegal call to G4VSolid::ComputeDimensions()" << G4endl << " Method not overloaded by derived class !" << G4endl; - G4Exception("G4VSolid::ComputeDimensions() - Illegal call"); + G4Exception("G4VSolid::ComputeDimensions()", "NotApplicable", + FatalException, "Illegal call to case class."); } /////////////////////////////////////////////////////////////////////////// @@ -106,10 +105,10 @@ void G4VSolid::ComputeDimensions(G4VPVParameterisation*, // void G4VSolid::ClipCrossSection( G4ThreeVectorList* pVertices, - const G4int pSectionIndex, - const G4VoxelLimits& pVoxelLimit, - const EAxis pAxis, - G4double& pMin, G4double& pMax) const + const G4int pSectionIndex, + const G4VoxelLimits& pVoxelLimit, + const EAxis pAxis, + G4double& pMin, G4double& pMax) const { G4ThreeVectorList polygon; @@ -136,10 +135,10 @@ void G4VSolid::ClipCrossSection( G4ThreeVectorList* pVertices, // No modifications are made to pVertices void G4VSolid::ClipBetweenSections( G4ThreeVectorList* pVertices, - const G4int pSectionIndex, - const G4VoxelLimits& pVoxelLimit, - const EAxis pAxis, - G4double& pMin, G4double& pMax) const + const G4int pSectionIndex, + const G4VoxelLimits& pVoxelLimit, + const EAxis pAxis, + G4double& pMin, G4double& pMax) const { G4ThreeVectorList polygon; polygon.push_back((*pVertices)[pSectionIndex]); @@ -182,10 +181,12 @@ void G4VSolid::ClipBetweenSections( G4ThreeVectorList* pVertices, // along the axis pAxis, within the limits pVoxelLimit // -void G4VSolid::CalculateClippedPolygonExtent(G4ThreeVectorList& pPolygon, - const G4VoxelLimits& pVoxelLimit, - const EAxis pAxis, - G4double& pMin, G4double& pMax) const +void +G4VSolid::CalculateClippedPolygonExtent(G4ThreeVectorList& pPolygon, + const G4VoxelLimits& pVoxelLimit, + const EAxis pAxis, + G4double& pMin, + G4double& pMax) const { G4int noLeft,i; G4double component; @@ -193,11 +194,12 @@ void G4VSolid::CalculateClippedPolygonExtent(G4ThreeVectorList& pPolygon, G4cout< output inside section // - // G4cout << "vStart outside, vEnd inside" << G4endl; + // G4cout << "vStart outside, vEnd inside" << G4endl; pVoxelLimit.ClipToLimits(vStart,vEnd); - outputPolygon.push_back(vStart); - outputPolygon.push_back(vEnd); + outputPolygon.push_back(vStart); + outputPolygon.push_back(vEnd); } else // Both point outside -> no output { - // outputPolygon.push_back(vStart); - // outputPolygon.push_back(vEnd); + // outputPolygon.push_back(vStart); + // outputPolygon.push_back(vEnd); } } } diff --git a/source/geometry/management/src/G4VoxelLimits.cc b/source/geometry/management/src/G4VoxelLimits.cc index 0bdf41a69c..19c9a6e7a7 100644 --- a/source/geometry/management/src/G4VoxelLimits.cc +++ b/source/geometry/management/src/G4VoxelLimits.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VoxelLimits.cc,v 1.8 2003/06/16 16:52:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VoxelLimits.cc,v 1.9 2003/11/02 14:01:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4VoxelLimits // @@ -32,6 +32,7 @@ // // 14.03.02 V. Grichine, cosmetics // 13.07.95 P.Kent Initial version +// -------------------------------------------------------------------- #include "G4VoxelLimits.hh" @@ -61,24 +62,24 @@ G4VoxelLimits::~G4VoxelLimits() void G4VoxelLimits::AddLimit( const EAxis pAxis, const G4double pMin, - const G4double pMax ) + const G4double pMax ) { if ( pAxis == kXAxis ) { if ( pMin > fxAxisMin ) fxAxisMin = pMin ; - if ( pMax < fxAxisMax ) fxAxisMax = pMax ; + if ( pMax < fxAxisMax ) fxAxisMax = pMax ; } else if ( pAxis == kYAxis ) { - if ( pMin > fyAxisMin ) fyAxisMin = pMin ; - if ( pMax < fyAxisMax ) fyAxisMax = pMax ; + if ( pMin > fyAxisMin ) fyAxisMin = pMin ; + if ( pMax < fyAxisMax ) fyAxisMax = pMax ; } else { assert( pAxis == kZAxis ) ; - if ( pMin > fzAxisMin ) fzAxisMin = pMin ; - if ( pMax < fzAxisMax ) fzAxisMax = pMax ; + if ( pMin > fzAxisMin ) fzAxisMin = pMin ; + if ( pMax < fzAxisMax ) fzAxisMax = pMax ; } } @@ -97,34 +98,33 @@ void G4VoxelLimits::AddLimit( const EAxis pAxis, // G4bool G4VoxelLimits::ClipToLimits( G4ThreeVector& pStart, - G4ThreeVector& pEnd ) const + G4ThreeVector& pEnd ) const { G4int sCode, eCode ; G4bool remainsAfterClip ; -// Determine if line is trivially inside (both outcodes==0) or outside -// (logical AND of outcodes !=0) + // Determine if line is trivially inside (both outcodes==0) or outside + // (logical AND of outcodes !=0) sCode = OutCode(pStart) ; eCode = OutCode(pEnd) ; if ( sCode & eCode ) { -// Trivially outside, no intersection with region + // Trivially outside, no intersection with region remainsAfterClip = false; } else if ( sCode == 0 && eCode == 0 ) { -// Trivially inside, no intersections + // Trivially inside, no intersections remainsAfterClip = true ; } else { - -// Line segment *may* cut volume boundaries -// At most, one end point is inside + // Line segment *may* cut volume boundaries + // At most, one end point is inside G4double x1, y1, z1, x2, y2, z2 ; @@ -151,87 +151,87 @@ G4bool G4VoxelLimits::ClipToLimits( G4ThreeVector& pStart, */ while ( sCode != eCode ) { -// Copy vectors to work variables x1-z1,x2-z2 -// Ensure x1-z1 lies outside volume, swapping vectors and outcodes -// if necessary + // Copy vectors to work variables x1-z1,x2-z2 + // Ensure x1-z1 lies outside volume, swapping vectors and outcodes + // if necessary if ( sCode ) - { + { if ( sCode & 0x01 ) // Clip against fxAxisMin - { + { z1 += (fxAxisMin-x1)*(z2-z1)/(x2-x1); - y1 += (fxAxisMin-x1)*(y2-y1)/(x2-x1); - x1 = fxAxisMin; - } - else if ( sCode & 0x02 ) // Clip against fxAxisMax - { - z1 += (fxAxisMax-x1)*(z2-z1)/(x2-x1); - y1 += (fxAxisMax-x1)*(y2-y1)/(x2-x1); - x1 = fxAxisMax ; - } - else if ( sCode & 0x04 ) // Clip against fyAxisMin - { - x1 += (fyAxisMin-y1)*(x2-x1)/(y2-y1); - z1 += (fyAxisMin-y1)*(z2-z1)/(y2-y1); - y1 = fyAxisMin; - } + y1 += (fxAxisMin-x1)*(y2-y1)/(x2-x1); + x1 = fxAxisMin; + } + else if ( sCode & 0x02 ) // Clip against fxAxisMax + { + z1 += (fxAxisMax-x1)*(z2-z1)/(x2-x1); + y1 += (fxAxisMax-x1)*(y2-y1)/(x2-x1); + x1 = fxAxisMax ; + } + else if ( sCode & 0x04 ) // Clip against fyAxisMin + { + x1 += (fyAxisMin-y1)*(x2-x1)/(y2-y1); + z1 += (fyAxisMin-y1)*(z2-z1)/(y2-y1); + y1 = fyAxisMin; + } else if ( sCode & 0x08 ) // Clip against fyAxisMax - { - x1 += (fyAxisMax-y1)*(x2-x1)/(y2-y1); - z1 += (fyAxisMax-y1)*(z2-z1)/(y2-y1); - y1 = fyAxisMax; - } + { + x1 += (fyAxisMax-y1)*(x2-x1)/(y2-y1); + z1 += (fyAxisMax-y1)*(z2-z1)/(y2-y1); + y1 = fyAxisMax; + } else if ( sCode & 0x10 ) // Clip against fzAxisMin - { - x1 += (fzAxisMin-z1)*(x2-x1)/(z2-z1); - y1 += (fzAxisMin-z1)*(y2-y1)/(z2-z1); - z1 = fzAxisMin; - } - else if ( sCode & 0x20 ) // Clip against fzAxisMax - { - x1 += (fzAxisMax-z1)*(x2-x1)/(z2-z1); - y1 += (fzAxisMax-z1)*(y2-y1)/(z2-z1); - z1 = fzAxisMax; - } + { + x1 += (fzAxisMin-z1)*(x2-x1)/(z2-z1); + y1 += (fzAxisMin-z1)*(y2-y1)/(z2-z1); + z1 = fzAxisMin; + } + else if ( sCode & 0x20 ) // Clip against fzAxisMax + { + x1 += (fzAxisMax-z1)*(x2-x1)/(z2-z1); + y1 += (fzAxisMax-z1)*(y2-y1)/(z2-z1); + z1 = fzAxisMax; + } } if ( eCode ) // Clip 2nd end: repeat of 1st, but 1<>2 { if ( eCode & 0x01 ) // Clip against fxAxisMin - { - z2 += (fxAxisMin-x2)*(z1-z2)/(x1-x2); - y2 += (fxAxisMin-x2)*(y1-y2)/(x1-x2); - x2 = fxAxisMin; - } + { + z2 += (fxAxisMin-x2)*(z1-z2)/(x1-x2); + y2 += (fxAxisMin-x2)*(y1-y2)/(x1-x2); + x2 = fxAxisMin; + } else if ( eCode & 0x02 ) // Clip against fxAxisMax - { - z2 += (fxAxisMax-x2)*(z1-z2)/(x1-x2); - y2 += (fxAxisMax-x2)*(y1-y2)/(x1-x2); - x2 = fxAxisMax; - } - else if ( eCode & 0x04 ) // Clip against fyAxisMin { - x2 += (fyAxisMin-y2)*(x1-x2)/(y1-y2); - z2 += (fyAxisMin-y2)*(z1-z2)/(y1-y2); - y2 = fyAxisMin; - } - else if (eCode&0x08) // Clip against fyAxisMax + z2 += (fxAxisMax-x2)*(z1-z2)/(x1-x2); + y2 += (fxAxisMax-x2)*(y1-y2)/(x1-x2); + x2 = fxAxisMax; + } + else if ( eCode & 0x04 ) // Clip against fyAxisMin { - x2 += (fyAxisMax-y2)*(x1-x2)/(y1-y2); - z2 += (fyAxisMax-y2)*(z1-z2)/(y1-y2); - y2 = fyAxisMax; - } - else if ( eCode & 0x10 ) // Clip against fzAxisMin - { - x2 += (fzAxisMin-z2)*(x1-x2)/(z1-z2); - y2 += (fzAxisMin-z2)*(y1-y2)/(z1-z2); - z2 = fzAxisMin; - } - else if ( eCode & 0x20 ) // Clip against fzAxisMax + x2 += (fyAxisMin-y2)*(x1-x2)/(y1-y2); + z2 += (fyAxisMin-y2)*(z1-z2)/(y1-y2); + y2 = fyAxisMin; + } + else if (eCode&0x08) // Clip against fyAxisMax { - x2 += (fzAxisMax-z2)*(x1-x2)/(z1-z2); - y2 += (fzAxisMax-z2)*(y1-y2)/(z1-z2); - z2 = fzAxisMax; - } + x2 += (fyAxisMax-y2)*(x1-x2)/(y1-y2); + z2 += (fyAxisMax-y2)*(z1-z2)/(y1-y2); + y2 = fyAxisMax; + } + else if ( eCode & 0x10 ) // Clip against fzAxisMin + { + x2 += (fzAxisMin-z2)*(x1-x2)/(z1-z2); + y2 += (fzAxisMin-z2)*(y1-y2)/(z1-z2); + z2 = fzAxisMin; + } + else if ( eCode & 0x20 ) // Clip against fzAxisMax + { + x2 += (fzAxisMax-z2)*(x1-x2)/(z1-z2); + y2 += (fzAxisMax-z2)*(y1-y2)/(z1-z2); + z2 = fzAxisMax; + } } // G4endl; G4cout<<"x1 = "< fxAxisMax ) code |= 0x02 ; + if ( pVec.x() < fxAxisMin ) code |= 0x01 ; + if ( pVec.x() > fxAxisMax ) code |= 0x02 ; } if ( IsYLimited() ) { - if ( pVec.y() < fyAxisMin ) code |= 0x04 ; + if ( pVec.y() < fyAxisMin ) code |= 0x04 ; if ( pVec.y() > fyAxisMax ) code |= 0x08 ; } if (IsZLimited()) { - if ( pVec.z() < fzAxisMin ) code |= 0x10 ; - if ( pVec.z() > fzAxisMax ) code |= 0x20 ; + if ( pVec.z() < fzAxisMin ) code |= 0x10 ; + if ( pVec.z() > fzAxisMax ) code |= 0x20 ; } return code; } @@ -285,32 +285,32 @@ std::ostream& operator << (std::ostream& os, const G4VoxelLimits& pLim) { os << "{"; if (pLim.IsXLimited()) - { - os << "(" << pLim.GetMinXExtent() - << "," << pLim.GetMaxXExtent() << ") "; - } + { + os << "(" << pLim.GetMinXExtent() + << "," << pLim.GetMaxXExtent() << ") "; + } else - { - os << "(-,-) "; - } + { + os << "(-,-) "; + } if (pLim.IsYLimited()) - { - os << "(" << pLim.GetMinYExtent() - << "," << pLim.GetMaxYExtent() << ") "; - } + { + os << "(" << pLim.GetMinYExtent() + << "," << pLim.GetMaxYExtent() << ") "; + } else - { - os << "(-,-) "; - } + { + os << "(-,-) "; + } if (pLim.IsZLimited()) - { - os << "(" << pLim.GetMinZExtent() - << "," << pLim.GetMaxZExtent() << ")"; - } + { + os << "(" << pLim.GetMinZExtent() + << "," << pLim.GetMaxZExtent() << ")"; + } else - { - os << "(-,-)"; - } + { + os << "(-,-)"; + } os << "}"; return os; } diff --git a/source/geometry/verification/GNUmakefile b/source/geometry/navigation/GNUmakefile similarity index 57% rename from source/geometry/verification/GNUmakefile rename to source/geometry/navigation/GNUmakefile index 517e0d2a51..6baf81ab1f 100644 --- a/source/geometry/verification/GNUmakefile +++ b/source/geometry/navigation/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.2 2001/10/24 15:32:14 gcosmo Exp $ +# $Id: GNUmakefile,v 1.1 2003/10/01 14:51:38 gcosmo Exp $ # -------------------------------------------------------------------- # GNUmakefile for geometry/volumes library. Gabriele Cosmo, 16/11/96. # -------------------------------------------------------------------- -name := G4geomver +name := G4navigation ifndef G4INSTALL G4INSTALL = ../../.. @@ -12,8 +12,20 @@ endif include $(G4INSTALL)/config/architecture.gmk CPPFLAGS += -I$(G4BASE)/graphics_reps/include \ + -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/geometry/magneticfield/include \ + -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include +ifdef G4DEBUG_NAVIGATION + CPPFLAGS += -DG4DEBUG_NAVIGATION +endif +ifdef G4DEBUG_FIELD + CPPFLAGS += -DG4DEBUG_FIELD +endif + include $(G4INSTALL)/config/common.gmk + diff --git a/source/geometry/navigation/History b/source/geometry/navigation/History new file mode 100644 index 0000000000..f7818b2299 --- /dev/null +++ b/source/geometry/navigation/History @@ -0,0 +1,195 @@ +$Id: History,v 1.19 2003/12/11 01:41:21 japost 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 * + ---------------------------------------------------------- + +Dec 11th, 2003 - J.Apostolakis (geomnav-V05-02-15) +------------------------------ +- G4PropagatorInField.cc + o LocateIntersectionPoint: Refined re-setting of finalSection. + --> Endpoint recalculation is returned only for final section. + (trial fix in -14 is replaced by above code) + o Fixed ReEstimateEndPoint which ignored return code of AccurateAdvance + and moved to short end-point for long requests + It now leaves the endpoint unchanged, when it cannot improve it. + o Few format changes for PrintStatus + +Dec 10th, 2003 - J.Apostolakis (geomnav-V05-02-14) +------------------------------ +- G4PropagatorInField.cc on top of latest (not 1.7): + o Fix for the case where two previous corrections are 'operational' + Problem if the current endpoint is not the final one, and it has been + recalculated, and we need to go beyond the current section to the + final one -- the recalcuted endpoint no longer valid! + +Dec 10th, 2003 - J.Apostolakis (geomnav-V05-02-13) +------------------------------ +- G4PropagatorInField.cc + o Gone back to version 1.7, without the fix in LocateIntersectionPoint + for the "long-standing error". + +Dec 5th, 2003 - G.Cosmo - (geomnav-V05-02-12) +------------------------ +- G4TransportationManager.cc: + o removed initialisation of allocators for navigation levels, where they + were introduced as workaround for solving static initialisation a long + time ago. Now moved to "volumes" module, where they should belong, in + G4TouchableHistory.cc. +- Restored original unit-tests, using inherited navigator. + --> Requires geomvol-V05-02-08 + +Dec 4th, 2003 - J.Apostolakis (geomnav-V05-02-11) +------------------------------ +- G4PropagatorInField.cc + o Corrected placement of #endif for two #ifdef VERBOSE + +Dec 2nd, 2003 - J.Apostolakis (geomnav-V05-02-10) +------------------------------ +- G4PropagatorInField[.hh.cc]: + o Fixed LocateIntersectionPoint for long-standing error. + A section of the chord was not considered in use case where + a previous chord at first appeared to have an intersection, but did not. + +Nov 26th, 2003 - J.Apostolakis (geomnav-V05-02-09) +------------------------------ +- G4PropagatorInField[.hh.cc]: + o Added argument Method LocateIntersectionPoint G4bool& recalculatedEndPt + to return 'true' if the endpoint has been recalculated. + This fixes a problem that can occasionally cause the skipping of a volume + boundary - in the case when a re-integration was done near a boundary, + because the new endpoint was previously not passed back. + o ComputeStep also changed to accept above recalculation. + o New method GetVerboseLevel(), closer to std naming than Verbose() + +Nov 14th, 2003 - J.Apostolakis (geomnav-V05-02-08) +------------------------------ +- Retagged the files of tag "geomnav-V05-02-07", due to tagging with same + name incorrectly files in another directory and, as such confusing Bonsai. + +Nov 13th, 2003 - J.Apostolakis (geomnav-V05-02-07) +------------------------------ +- G4PropagatorInField[.hh.icc.cc]: + o Pass safety sphere information to G4ChordFinder for optimisation + o Including G4ChordFinder.hh only in .cc file +- Requires and coworks with "field-V05-02-08" tag. + + +Nov 10th, 2003 - G.Cosmo (geomnav-V05-02-06) +------------------------ +- G4Navigator[.hh.icc.cc] - methods review: + o Removed obsolete methods: IsExitNormalValid(), GetLocalExitNormal(). + o Renamed method LocateGlobalPointAndSetup(p,v,history) to + ResetHistoryAndLocate(p,v,history). + o Moved to protected the following methods: GetCurrentLocalCoordinate(), + ComputeLocalPoint(), ComputeLocalAxis(), NetTranslation(), + NetRotation(), EnteredDaughterVolume(). + o Fixed consistency of inline/not-inline implementations of methods. +- Coworks with tag "tracking-V05-02-03". + +Nov 6th, 2003 - J.Apostolakis (geomnav-V05-02-05) +----------------------------- +- G4PropagatorInField[.hh.icc.cc]: + o Implements move of EpsilonMin / Max to G4FieldManager. +- Requires and coworks with "field-V05-02-04" or later tag. + +Nov 6th, 2003 - G.Cosmo (geomnav-V05-02-04) +----------------------- +- G4Navigator[.hh.icc.cc]: + o Made relevant methods virtual to verify performance impact. + If tests will behave reasonably, a further refinement in the + design of the class will be applied, in view of a more consistent + design review next year. + +Nov 3rd, 2003 - G.Cosmo (geomnav-V05-02-03) +----------------------- +- Code cleanup and headers inclusion review + (replaced by forward declarations where necessary). +- Added build system to tests. Cleared compilation warnings. + +Oct 29th, 2003 - J.Apostolakis (geomnav-V05-02-02) +------------------------------ +- G4PropagatorInField: + Added option to turn On/Off the optimisation of using the safety + in calling G4Navigator. +- Unit tests: moved test testG4NavigatorX, X=1,2,3,4,5,6 here from + "volumes" module. + +Oct 24th, 2003 - G.Cosmo (geomnav-V05-02-01) +------------------------ +- Migrated calls to G4Exception to new scheme. +- Fixed compilation warning in G4PropagationInField. + +Sep 29th, 2003 - G.Cosmo (geomnav-V05-02-00) +------------------------ +- Created. + Imported classes from "volumes", "management" and "verification" modules: + G4AuxiliaryNavServices[.hh.icc] - from geometry/volumes + G4GeometryMessenger[.hh.cc] - " " + G4Navigator[.hh.icc.cc] - " " + G4NormalNavigation[.hh.icc.cc] - " " + G4ParameterisedNavigation[.hh.icc.cc] - " " + G4PropagatorInField[.hh.icc.cc] - " " + G4ReplicaNavigation[.hh.icc.cc] - " " + G4TransportationManager[.hh.icc.cc] - " " + G4VoxelNavigation[.hh.icc.cc] - " " + G4DrawVoxels[.hh.cc] - from geometry/management + G4GeomTest*[.hh.cc] - from geometry/verification +- Cleared call to PV->Setup() according to changes in G4VPhysicalVolume. + Affected files: G4Navigator[.icc.cc], G4ParameterisedNavigation[.icc.cc], + G4VoxelNavigation[.icc.cc], G4ReplicaNavigation[.icc.cc], + G4NormalNavigation[.icc.cc]. +- G4DrawVoxels: retrieve top transformation through touchable history in + method DrawVoxels(). Removed old method GetAbsoluteTransformation(). +- G4GeomTestErrorList.cc: retrieve top transformation through touchable + history in method FindGlobalCoordinateSystem(). + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Imported History file from old geometry/verification module ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +May 20th, 2003 G.Cosmo (geomver-V05-01-00) +- G4GeomTestVolume[.hh.cc]: + o Added methods TestRecursiveLine() and TestRecursiveCylinder() for + allowing recursion on line_test and cylinder_test respectively. + o Introduced ability to control depth and starting level of recursion. + +Jul 30th, 2002 G.Cosmo (geomver-V04-01-00) +- G4GeomTestVolume.cc: fixed recursive call to G4GeomTestVolume passing also + 'tolerance' as argument in the recursive test algorithm. + +Apr 19th, 2002 G.Cosmo (geomver-V04-00-00) +- Moved inline constructors and destructors to no inline. + Affected files: G4GeomTestStreamLogger[.hh.cc]. + +Oct 24th, 2001 G.Cosmo (geomver-V03-02-02) +- Fixed compilation error and warnings on HP-aCC. Modified files: + G4GeomTestVolume.cc, G4GeomTestStreamLogger.cc. + +Oct 24th, 2001 G.Cosmo (geomver-V03-02-01) +- Moved messenger to geometry/volumes and renamed G4GeometryMessenger. +- Removed dependencies from intercoms and geometry/volumes. + +Oct 22nd, 2001 G.Cosmo (geomver-V03-02-00) +- Added "/geomtest/tolerance" command to set custom error tolerance. + Added Set/GetTolerance() methods to G4GeomTestVolume class. +- Introduced additional diagnostics in G4GeomTestStreamLogger to report + in case no intersections/overlaps are detected. + +Oct 16th, 2001 G.Cosmo +- Added messenger for geometry overlaps testing. +- General source code formatting. +- G4TestGeom* classes implementation by D.C.Williams (UCSC, BaBar). diff --git a/source/geometry/volumes/include/G4AuxiliaryNavServices.hh b/source/geometry/navigation/include/G4AuxiliaryNavServices.hh similarity index 93% rename from source/geometry/volumes/include/G4AuxiliaryNavServices.hh rename to source/geometry/navigation/include/G4AuxiliaryNavServices.hh index 2e931bcfda..1cbfec2f2b 100644 --- a/source/geometry/volumes/include/G4AuxiliaryNavServices.hh +++ b/source/geometry/navigation/include/G4AuxiliaryNavServices.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AuxiliaryNavServices.hh,v 1.5 2002/07/23 08:50:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AuxiliaryNavServices.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4NormalNavigation @@ -34,17 +34,15 @@ // History: // - Created: Paul Kent, Aug 96 -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4AuxiliaryNavServices_hh #define G4AuxiliaryNavServices_hh -#include "geomdefs.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" #include "G4VSolid.hh" #include "G4AffineTransform.hh" - class G4AuxiliaryNavServices { diff --git a/source/geometry/volumes/include/G4AuxiliaryNavServices.icc b/source/geometry/navigation/include/G4AuxiliaryNavServices.icc similarity index 94% rename from source/geometry/volumes/include/G4AuxiliaryNavServices.icc rename to source/geometry/navigation/include/G4AuxiliaryNavServices.icc index 48c24fdc8e..c5a4895d27 100644 --- a/source/geometry/volumes/include/G4AuxiliaryNavServices.icc +++ b/source/geometry/navigation/include/G4AuxiliaryNavServices.icc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4AuxiliaryNavServices.icc,v 1.6 2002/07/23 08:50:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AuxiliaryNavServices.icc,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4AuxiliaryNavServices Inline implementation // -// ******************************************************************** +// -------------------------------------------------------------------- inline G4bool G4AuxiliaryNavServices:: diff --git a/source/geometry/management/include/G4DrawVoxels.hh b/source/geometry/navigation/include/G4DrawVoxels.hh similarity index 76% rename from source/geometry/management/include/G4DrawVoxels.hh rename to source/geometry/navigation/include/G4DrawVoxels.hh index 3a0bbd645b..8fd499c27c 100644 --- a/source/geometry/management/include/G4DrawVoxels.hh +++ b/source/geometry/navigation/include/G4DrawVoxels.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DrawVoxels.hh,v 1.11 2002/04/19 08:20:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DrawVoxels.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4DrawVoxels @@ -38,24 +38,16 @@ // reasons / visualisation - L.G (ask John Allison for further // explanation). // 29/07/1999 First comitted version - L.G. - +// -------------------------------------------------------------------- #ifndef G4DrawVoxels_HH #define G4DrawVoxels_HH -// *********** what I need to use (include and forward declarations) -// FOR DRAWING VOXELS **************** -#include "G4Colour.hh" #include "G4VisAttributes.hh" -#include "G4PlacedPolyhedron.hh" //#include "G4Polyhedron.hh" included - -#include "G4SmartVoxelHeader.hh" #include "G4VoxelLimits.hh" -#include "G4AffineTransform.hh" -#include "G4Vector3D.hh" -#include "G4LogicalVolume.hh" -#include "G4VSolid.hh" +#include "G4PlacedPolyhedron.hh" -#define voxel_width 0 +class G4SmartVoxelHeader; +class G4LogicalVolume; // *********************************************************************** @@ -74,7 +66,9 @@ class G4DrawVoxels void DrawVoxels(const G4LogicalVolume* lv) const; G4PlacedPolyhedronList* CreatePlacedPolyhedra(const G4LogicalVolume*) const; - void SetVoxelsVisAttributes(G4VisAttributes&,G4VisAttributes&,G4VisAttributes&); + void SetVoxelsVisAttributes(G4VisAttributes&, + G4VisAttributes&, + G4VisAttributes&); void SetBoundingBoxVisAttributes(G4VisAttributes&); private: @@ -83,12 +77,13 @@ class G4DrawVoxels G4VisAttributes fVoxelsVisAttributes[3]; G4VisAttributes fBoundingBoxVisAttributes; - void ComputeVoxelPolyhedra(const G4LogicalVolume*,const G4SmartVoxelHeader*,G4VoxelLimits&,G4PlacedPolyhedronList*) const; + void ComputeVoxelPolyhedra(const G4LogicalVolume*, + const G4SmartVoxelHeader*, + G4VoxelLimits&, + G4PlacedPolyhedronList*) const; - G4AffineTransform GetAbsoluteTransformation(const G4VPhysicalVolume*) const; - - // Copy constructor Assignment operator not supported (array - // fvoxelcolours ...) + // Copy constructor Assignment operator not supported + // (array fvoxelcolours ...) G4DrawVoxels(const G4DrawVoxels&); G4DrawVoxels operator=(const G4DrawVoxels&); }; diff --git a/source/geometry/verification/include/G4GeomTestErrorList.hh b/source/geometry/navigation/include/G4GeomTestErrorList.hh similarity index 95% rename from source/geometry/verification/include/G4GeomTestErrorList.hh rename to source/geometry/navigation/include/G4GeomTestErrorList.hh index 0c606f1b39..a310e475ea 100644 --- a/source/geometry/verification/include/G4GeomTestErrorList.hh +++ b/source/geometry/navigation/include/G4GeomTestErrorList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestErrorList.hh,v 1.2 2003/06/16 16:54:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestErrorList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -38,13 +38,13 @@ // and assignment operator. // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestErrorList_hh #define G4GeomTestErrorList_hh #include -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" #include "G4RotationMatrix.hh" diff --git a/source/geometry/verification/include/G4GeomTestLogger.hh b/source/geometry/navigation/include/G4GeomTestLogger.hh similarity index 91% rename from source/geometry/verification/include/G4GeomTestLogger.hh rename to source/geometry/navigation/include/G4GeomTestLogger.hh index ab013ace0b..86f975910e 100644 --- a/source/geometry/verification/include/G4GeomTestLogger.hh +++ b/source/geometry/navigation/include/G4GeomTestLogger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestLogger.hh,v 1.2 2001/10/22 13:04:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestLogger.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -36,11 +36,11 @@ // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestLogger_hh #define G4GeomTestLogger_hh -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" class G4VSolid; @@ -51,8 +51,8 @@ class G4GeomTestLogger { public: // with description - G4GeomTestLogger() {;} - virtual ~G4GeomTestLogger() {;} + G4GeomTestLogger() {} + virtual ~G4GeomTestLogger() {} // Constructor and virtual destructor virtual void SolidProblem( const G4VSolid *solid, diff --git a/source/geometry/verification/include/G4GeomTestOverlapList.hh b/source/geometry/navigation/include/G4GeomTestOverlapList.hh similarity index 94% rename from source/geometry/verification/include/G4GeomTestOverlapList.hh rename to source/geometry/navigation/include/G4GeomTestOverlapList.hh index bb4ac3271c..9c24892cf3 100644 --- a/source/geometry/verification/include/G4GeomTestOverlapList.hh +++ b/source/geometry/navigation/include/G4GeomTestOverlapList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestOverlapList.hh,v 1.1 2001/10/17 12:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestOverlapList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -39,7 +39,7 @@ // and assignment operator. // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestOverlapList_hh #define G4GeomTestOverlapList_hh diff --git a/source/geometry/verification/include/G4GeomTestOvershootList.hh b/source/geometry/navigation/include/G4GeomTestOvershootList.hh similarity index 94% rename from source/geometry/verification/include/G4GeomTestOvershootList.hh rename to source/geometry/navigation/include/G4GeomTestOvershootList.hh index 9aa10d45e4..f0e7a03206 100644 --- a/source/geometry/verification/include/G4GeomTestOvershootList.hh +++ b/source/geometry/navigation/include/G4GeomTestOvershootList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestOvershootList.hh,v 1.1 2001/10/17 12:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestOvershootList.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -35,7 +35,7 @@ // but outside its mother volume, indicating a geometry error // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestOvershootList_hh #define G4GeomTestOvershootList_hh diff --git a/source/geometry/verification/include/G4GeomTestPoint.hh b/source/geometry/navigation/include/G4GeomTestPoint.hh similarity index 93% rename from source/geometry/verification/include/G4GeomTestPoint.hh rename to source/geometry/navigation/include/G4GeomTestPoint.hh index a8dc8eabeb..82f84cc382 100644 --- a/source/geometry/verification/include/G4GeomTestPoint.hh +++ b/source/geometry/navigation/include/G4GeomTestPoint.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestPoint.hh,v 1.1 2001/10/17 12:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestPoint.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -35,11 +35,11 @@ // for geometry tests // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestPoint_hh #define G4GeomTestPoint_hh -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" class G4VSolid; diff --git a/source/geometry/verification/include/G4GeomTestSegment.hh b/source/geometry/navigation/include/G4GeomTestSegment.hh similarity index 93% rename from source/geometry/verification/include/G4GeomTestSegment.hh rename to source/geometry/navigation/include/G4GeomTestSegment.hh index 3c7a37736e..ef7e9c3efa 100644 --- a/source/geometry/verification/include/G4GeomTestSegment.hh +++ b/source/geometry/navigation/include/G4GeomTestSegment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestSegment.hh,v 1.2 2003/06/16 16:54:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestSegment.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -35,11 +35,11 @@ // and return them in no particular order // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestSegment_hh #define G4GeomTestSegment_hh -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" #include "G4GeomTestPoint.hh" diff --git a/source/geometry/verification/include/G4GeomTestStreamLogger.hh b/source/geometry/navigation/include/G4GeomTestStreamLogger.hh similarity index 94% rename from source/geometry/verification/include/G4GeomTestStreamLogger.hh rename to source/geometry/navigation/include/G4GeomTestStreamLogger.hh index db59c24d01..3fa207348b 100644 --- a/source/geometry/verification/include/G4GeomTestStreamLogger.hh +++ b/source/geometry/navigation/include/G4GeomTestStreamLogger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestStreamLogger.hh,v 1.4 2003/06/16 16:54:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestStreamLogger.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -34,11 +34,11 @@ // A G4GeomTestLogger that outputs to a stream. // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestStreamLogger_hh #define G4GeomTestStreamLogger_hh -#include "globals.hh" +#include "G4Types.hh" #include "G4GeomTestLogger.hh" class G4VPhysicalVolume; diff --git a/source/geometry/verification/include/G4GeomTestVolPoint.hh b/source/geometry/navigation/include/G4GeomTestVolPoint.hh similarity index 94% rename from source/geometry/verification/include/G4GeomTestVolPoint.hh rename to source/geometry/navigation/include/G4GeomTestVolPoint.hh index e8126c60d2..6eded2c834 100644 --- a/source/geometry/verification/include/G4GeomTestVolPoint.hh +++ b/source/geometry/navigation/include/G4GeomTestVolPoint.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestVolPoint.hh,v 1.1 2001/10/17 12:59:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestVolPoint.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -36,7 +36,7 @@ // A negative daughter index indicates the mother volume itself. // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestVolPoint_hh #define G4GeomTestVolPoint_hh diff --git a/source/geometry/verification/include/G4GeomTestVolume.hh b/source/geometry/navigation/include/G4GeomTestVolume.hh similarity index 97% rename from source/geometry/verification/include/G4GeomTestVolume.hh rename to source/geometry/navigation/include/G4GeomTestVolume.hh index 0b93418f55..a8b48738bf 100644 --- a/source/geometry/verification/include/G4GeomTestVolume.hh +++ b/source/geometry/navigation/include/G4GeomTestVolume.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestVolume.hh,v 1.4 2003/06/16 16:54:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestVolume.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -35,7 +35,7 @@ // volume and the boundaries of all its immediate daughters. // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) - +// -------------------------------------------------------------------- #ifndef G4GeomTestVolume_hh #define G4GeomTestVolume_hh diff --git a/source/geometry/volumes/include/G4GeometryMessenger.hh b/source/geometry/navigation/include/G4GeometryMessenger.hh similarity index 96% rename from source/geometry/volumes/include/G4GeometryMessenger.hh rename to source/geometry/navigation/include/G4GeometryMessenger.hh index 7bd03f958b..23a7c33761 100644 --- a/source/geometry/volumes/include/G4GeometryMessenger.hh +++ b/source/geometry/navigation/include/G4GeometryMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryMessenger.hh,v 1.7 2003/05/20 07:52:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeometryMessenger.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -36,11 +36,10 @@ // Author: G.Cosmo, CERN. // -------------------------------------------------------------------- - #ifndef G4GeometryMessenger_hh #define G4GeometryMessenger_hh -#include "globals.hh" +#include "G4Types.hh" #include "G4UImessenger.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/volumes/include/G4Navigator.hh b/source/geometry/navigation/include/G4Navigator.hh similarity index 88% rename from source/geometry/volumes/include/G4Navigator.hh rename to source/geometry/navigation/include/G4Navigator.hh index 40f5d47693..c92507c705 100644 --- a/source/geometry/volumes/include/G4Navigator.hh +++ b/source/geometry/navigation/include/G4Navigator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Navigator.hh,v 1.21 2003/06/16 16:54:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Navigator.hh,v 1.4 2003/11/10 08:58:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Navigator @@ -94,14 +94,10 @@ #include "G4AffineTransform.hh" #include "G4RotationMatrix.hh" -#include "G4VPhysicalVolume.hh" -#include "G4VPVParameterisation.hh" -#include "G4LogicalVolume.hh" -#include "G4VSolid.hh" - -#include "G4GRSVolume.hh" -#include "G4GRSSolid.hh" -#include "G4TouchableHandle.hh" +#include "G4LogicalVolume.hh" // Used in inline methods +#include "G4GRSVolume.hh" // " " +#include "G4GRSSolid.hh" // " " +#include "G4TouchableHandle.hh" // " " #include "G4TouchableHistoryHandle.hh" #include "G4NavigationHistory.hh" @@ -112,6 +108,8 @@ #include +class G4VPhysicalVolume; + class G4Navigator { public: // with description @@ -121,13 +119,13 @@ class G4Navigator G4Navigator(); // Constructor - initialisers and setup. - ~G4Navigator(); + virtual ~G4Navigator(); // Destructor. No actions. - G4double ComputeStep(const G4ThreeVector &pGlobalPoint, - const G4ThreeVector &pDirection, - const G4double pCurrentProposedStepLength, - G4double &pNewSafety); + virtual G4double ComputeStep(const G4ThreeVector &pGlobalPoint, + const G4ThreeVector &pDirection, + const G4double pCurrentProposedStepLength, + G4double &pNewSafety); // Calculate the distance to the next boundary intersected // along the specified NORMALISED vector direction and // from the specified point in the global coordinate @@ -141,10 +139,19 @@ class G4Navigator // is returned together with the computed isotropic safety // distance. Geometry must be closed. - inline - G4VPhysicalVolume* LocateGlobalPointAndSetup(const G4ThreeVector &point, - const G4ThreeVector &direction, - const G4TouchableHistory &h); + virtual + G4VPhysicalVolume* ResetHierarchyAndLocate(const G4ThreeVector &point, + const G4ThreeVector &direction, + const G4TouchableHistory &h); + + // Resets the geometrical hierarchy and search for the volumes deepest + // in the hierarchy containing the point in the global coordinate space. + // The direction is used to check if a volume is entered. + // The search begin is the geometrical hierarchy at the location of the + // last located point, or the endpoint of the previous Step if + // SetGeometricallyLimitedStep() has been called immediately before. + // + // Important Note: In order to call this the geometry MUST be closed. G4VPhysicalVolume* LocateGlobalPointAndSetup(const G4ThreeVector& point, const G4ThreeVector* direction=0, @@ -166,7 +173,7 @@ class G4Navigator // // Important Note: In order to call this the geometry MUST be closed. - void LocateGlobalPointWithinVolume(const G4ThreeVector& position); + virtual void LocateGlobalPointWithinVolume(const G4ThreeVector& position); // Notify the Navigator that a track has moved to the new Global point // 'position', that is known to be within the current safety. // No check is performed to ensure that it is within the volume. @@ -175,7 +182,7 @@ class G4Navigator // same volume as the previous position. Usually this can be guaranteed // only if the point is within safety. - inline void LocateGlobalPointAndUpdateTouchableHandle( + virtual void LocateGlobalPointAndUpdateTouchableHandle( const G4ThreeVector& position, const G4ThreeVector& direction, G4TouchableHandle& oldTouchableToUpdate, @@ -204,8 +211,8 @@ class G4Navigator // Inform the navigator that the previous Step calculated // by the geometry was taken in its entirety. - G4double ComputeSafety(const G4ThreeVector &globalpoint, - const G4double pProposedMaxLength = DBL_MAX); + virtual G4double ComputeSafety(const G4ThreeVector &globalpoint, + const G4double pProposedMaxLength = DBL_MAX); // Calculate the isotropic distance to the nearest boundary from the // specified point in the global coordinate system. // The globalpoint utilised must be within the current volume. @@ -213,6 +220,52 @@ class G4Navigator // The proposed maximum length is used to avoid volume safety // calculations. The geometry must be closed. + inline G4VPhysicalVolume* GetWorldVolume() const; + // Return the current world (`topmost') volume. + + inline void SetWorldVolume(G4VPhysicalVolume* pWorld); + // Set the world (`topmost') volume. This must be positioned at + // origin (0,0,0) and unrotated. + + inline G4GRSVolume* CreateGRSVolume() const; + inline G4GRSSolid* CreateGRSSolid() const; + inline G4TouchableHistory* CreateTouchableHistory() const; + // `Touchable' creation methods: caller has deletion responsibility. + + virtual G4TouchableHistoryHandle CreateTouchableHistoryHandle() const; + // Returns a reference counted handle to a touchable history. + + virtual G4ThreeVector GetLocalExitNormal(G4bool* valid); + // Returns Exit Surface Normal and validity too. + // It can only be called if the Navigator's last Step has crossed a + // volume geometrical boundary. + // It returns the Normal to the surface pointing out of the volume that + // was left behind and/or into the volume that was entered. + // (The normal is in the coordinate system of the final volume.) + // This function takes full care about how to calculate this normal, + // but if the surfaces are not convex it will return valid=false. + + inline G4int GetVerboseLevel(); + inline void SetVerboseLevel(G4int level); + // Get/Set Verbose(ness) level. + // [if level>0 && G4VERBOSE, printout can occur] + + void PrintState(); + // Print the internal state of the Navigator (for debugging). + // The level of detail is according to the verbosity. + + inline const G4AffineTransform& GetGlobalToLocalTransform() const; + inline const G4AffineTransform GetLocalToGlobalTransform() const; + // Obtain the transformations Global/Local (and inverse). + // Clients of these methods must copy the data if they need to keep it. + + inline void ResetStackAndState(); + // Reset stack and minimum or navigator state machine necessary for reset + // as needed by LocalGlobalPointAndSetup. + // [Does not perform clears, resizes, or reset fLastLocatedPointLocal] + + protected: // with description + inline G4ThreeVector GetCurrentLocalCoordinate() const; // Return the local coordinate of the point in the reference system // of its containing volume that was found by LocalGlobalPointAndSetup. @@ -231,45 +284,6 @@ class G4Navigator inline G4RotationMatrix NetRotation() const; // Compute+return the local->global translation/rotation of current volume. - inline G4VPhysicalVolume* GetWorldVolume() const; - // Return the current world (`topmost') volume. - - inline void SetWorldVolume(G4VPhysicalVolume* pWorld); - // Set the world (`topmost') volume. This must be positioned at - // origin (0,0,0) and unrotated. - - inline G4GRSVolume* CreateGRSVolume() const; - inline G4GRSSolid* CreateGRSSolid() const; - inline G4TouchableHistory* CreateTouchableHistory() const; - // `Touchable' creation methods: caller has deletion responsibility. - - G4TouchableHistoryHandle CreateTouchableHistoryHandle() const; - // `Touchable' creation methods: caller has deletion responsibility. - - inline G4bool IsExitNormalValid(); - // Return true if the Navigator - // i) found that it is exiting the previous volume and is not - // entering a daughter volume. - // ii) has obtained the normal for the previous volume (in local - // coordinates). - - inline G4ThreeVector GetLocalExitNormal(); - // Can be called (i.e. can return a valid result) only if the Navigator - // replied true to IsExitNormalValid(). - // It returns the ExitNormal of the previous volume. - // (The normal is in the coordinate system of the final volume.) - // It is in the coordinate system of the final volume. - - G4ThreeVector GetLocalExitNormal(G4bool* valid); - // More powerful calculation of Exit Surface Normal, returns validity too. - // But it can only be called if the Navigator's last Step has crossed a - // volume geometrical boundary. - // It returns the Normal to the surface pointing out of the volume that - // was left behind and/or into the volume that was entered. - // (The normal is in the coordinate system of the final volume.) - // This function takes full care about how to calculate this normal, - // but if the surfaces are not convex it will return valid=false. - inline G4bool EnteredDaughterVolume(); // The purpose of this function is to inform the caller if the track is // entering a daughter volume while exiting from the current volume. @@ -280,27 +294,8 @@ class G4Navigator // This function is not guaranteed to work if SetGeometricallyLimitedStep() // was not called when it should have been called. - inline G4int GetVerboseLevel(); - inline void SetVerboseLevel(G4int level); - // Get/Set Verbose(ness) level. - // [if level>0 && G4VERBOSE, printout can occur] - - void PrintState(); - // Print the internal state of the Navigator (for debugging). - // The level of detail is according to the verbosity. - - inline const G4AffineTransform& GetGlobalToLocalTransform() const; - inline const G4AffineTransform GetLocalToGlobalTransform() const; - // Obtain the transformations Global/Local (and inverse). - // Clients of these methods must copy the data if they need to keep it. - - protected: // with description - - inline void ResetState(); - inline void ResetStackAndState(); - // Reset stack and minimum or navigator state machine necessary for reset - // as needed by LocalGlobalPointAndSetup. - // [Does not perform clears, resizes, or reset fLastLocatedPointLocal] + virtual void ResetState(); + // Utility method to reset the navigator state machine. inline EVolume VolumeType(const G4VPhysicalVolume *pVol) const; // Characterise `type' of volume - normal/replicated/parameterised. @@ -308,7 +303,7 @@ class G4Navigator inline EVolume CharacteriseDaughters(const G4LogicalVolume *pLog) const; // Characterise daughter of logical volume. - void SetupHierarchy(); + virtual void SetupHierarchy(); // Renavigate & reset hierarchy described by current history // o Reset volumes // o Recompute transforms and/or solids of replicated/parameterised diff --git a/source/geometry/volumes/include/G4Navigator.icc b/source/geometry/navigation/include/G4Navigator.icc similarity index 74% rename from source/geometry/volumes/include/G4Navigator.icc rename to source/geometry/navigation/include/G4Navigator.icc index edbf3955e5..ef7acbad67 100644 --- a/source/geometry/volumes/include/G4Navigator.icc +++ b/source/geometry/navigation/include/G4Navigator.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Navigator.icc,v 1.9 2002/06/03 10:17:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Navigator.icc,v 1.4 2003/11/10 08:58:42 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Navigator Inline implementation @@ -88,15 +88,16 @@ G4VPhysicalVolume* G4Navigator::GetWorldVolume() const inline void G4Navigator::SetWorldVolume(G4VPhysicalVolume* pWorld) { - pWorld->Setup(0); // No mother since world volume if ( !(pWorld->GetTranslation()==G4ThreeVector(0,0,0)) ) { - G4Exception ("G4Navigator::SetWorldVolume - Must be centred on origin"); + G4Exception ("G4Navigator::SetWorldVolume()", "InvalidSetup", + FatalException, "Volume must be centered on the origin."); } const G4RotationMatrix* rm = pWorld->GetRotation(); if ( rm && (!rm->isIdentity()) ) { - G4Exception ("G4Navigator::SetWorldVolume - Must not be rotated"); + G4Exception ("G4Navigator::SetWorldVolume()", "InvalidSetup", + FatalException, "Volume must not be rotated."); } fTopPhysical = pWorld; fHistory.SetFirstEntry(pWorld); @@ -115,33 +116,6 @@ void G4Navigator::SetGeometricallyLimitedStep() fWasLimitedByGeometry=true; } -// ******************************************************************** -// ResetState -// -// Resets stack and minimum of navigator state `machine' -// ******************************************************************** -// -inline -void G4Navigator::ResetState() -{ - fWasLimitedByGeometry=false; - fEntering=false; - fExiting=false; - fLocatedOnEdge = false; - fLastStepWasZero= false; - fEnteredDaughter = false; - fExitedMother = false; - - fValidExitNormal = false; - fExitNormal = G4ThreeVector(0,0,0); - - fPreviousSftOrigin = G4ThreeVector(0,0,0); - fPreviousSafety = 0.0; - - fBlockedPhysicalVolume=0; - fBlockedReplicaNo=-1; -} - // ******************************************************************** // ResetStackAndState // @@ -213,31 +187,6 @@ EVolume G4Navigator::CharacteriseDaughters(const G4LogicalVolume *pLog) const return type; } -// ******************************************************************** -// IsExitNormalCalid -// -// Is the Surface Normal valid? -// ******************************************************************** -// -inline -G4bool G4Navigator::IsExitNormalValid() -{ - return fExiting && fValidExitNormal; -} - -// ******************************************************************** -// GetLocalExitNormal -// -// Obtains the Normal vector to a surface (in local coordinates) -// (It is valid only if Navigator replied true to above function) -// ******************************************************************** -// -inline -G4ThreeVector G4Navigator::GetLocalExitNormal() -{ - return fExitNormal; -} - // ******************************************************************** // GetGlobalToLocalTransform // @@ -346,43 +295,6 @@ G4bool G4Navigator::EnteredDaughterVolume() return fEnteredDaughter; } -// inline -// G4bool G4Navigator::ExitedVolume() -// { -// return fExitedCurrent; -// } - -// ******************************************************************** -// LocateGlobalPointAndSetup -// ******************************************************************** -// -inline -G4VPhysicalVolume* -G4Navigator::LocateGlobalPointAndSetup(const G4ThreeVector &p, - const G4ThreeVector &direction, - const G4TouchableHistory &h) -{ - ResetState(); - fHistory = *h.GetHistory(); - SetupHierarchy(); - return LocateGlobalPointAndSetup(p, &direction, true, false); -} - -// ******************************************************************** -// LocateGlobalPointAndUpdateTouchable -// ******************************************************************** -// -inline -void G4Navigator::LocateGlobalPointAndUpdateTouchable( - const G4ThreeVector& position, - G4VTouchable* touchableToUpdate, - const G4bool RelativeSearch ) -{ - G4VPhysicalVolume* pPhysVol; - pPhysVol = LocateGlobalPointAndSetup( position, 0, RelativeSearch); - touchableToUpdate->UpdateYourself( pPhysVol, &fHistory ); -} - // ******************************************************************** // LocateGlobalPointAndUpdateTouchable // @@ -402,40 +314,18 @@ void G4Navigator::LocateGlobalPointAndUpdateTouchable( } // ******************************************************************** -// LocateGlobalPointAndUpdateTouchableHandle +// LocateGlobalPointAndUpdateTouchable // ******************************************************************** // inline -void G4Navigator::LocateGlobalPointAndUpdateTouchableHandle( - const G4ThreeVector& position, - const G4ThreeVector& direction, - G4TouchableHandle& oldTouchableToUpdate, - const G4bool RelativeSearch ) +void G4Navigator::LocateGlobalPointAndUpdateTouchable( + const G4ThreeVector& position, + G4VTouchable* touchableToUpdate, + const G4bool RelativeSearch ) { G4VPhysicalVolume* pPhysVol; - pPhysVol = LocateGlobalPointAndSetup( position,&direction,RelativeSearch ); - if( fEnteredDaughter || fExitedMother ) - { - oldTouchableToUpdate = CreateTouchableHistory(); - if( pPhysVol == 0 ) - { - // We want to ensure that the touchable is correct in this case. - // The method below should do this and recalculate a lot more .... - // - oldTouchableToUpdate->UpdateYourself( pPhysVol, &fHistory ); - } - } - return; -} - -// ******************************************************************** -// CreateTouchableHistoryHandle -// ******************************************************************** -// -inline -G4TouchableHistoryHandle G4Navigator::CreateTouchableHistoryHandle() const -{ - return G4TouchableHistoryHandle( CreateTouchableHistory() ); + pPhysVol = LocateGlobalPointAndSetup( position, 0, RelativeSearch); + touchableToUpdate->UpdateYourself( pPhysVol, &fHistory ); } // ******************************************************************** diff --git a/source/geometry/volumes/include/G4NormalNavigation.hh b/source/geometry/navigation/include/G4NormalNavigation.hh similarity index 94% rename from source/geometry/volumes/include/G4NormalNavigation.hh rename to source/geometry/navigation/include/G4NormalNavigation.hh index dc203753c5..bc1d231b69 100644 --- a/source/geometry/volumes/include/G4NormalNavigation.hh +++ b/source/geometry/navigation/include/G4NormalNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NormalNavigation.hh,v 1.5 2002/07/23 08:50:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NormalNavigation.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4NormalNavigation @@ -34,18 +34,16 @@ // History: // - Created. Paul Kent, Aug 96 -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4NORMALNAVIGATION_HH #define G4NORMALNAVIGATION_HH -#include "geomdefs.hh" #include "G4NavigationHistory.hh" -#include "G4AffineTransform.hh" #include "G4VPhysicalVolume.hh" #include "G4LogicalVolume.hh" #include "G4VSolid.hh" #include "G4ThreeVector.hh" +#include "G4AuxiliaryNavServices.hh" // Needed for inline methods class G4NormalNavigation { @@ -82,8 +80,6 @@ class G4NormalNavigation const G4double pMaxLength=DBL_MAX ); }; -#include "G4AuxiliaryNavServices.hh" // Needed for inline methods - #include "G4NormalNavigation.icc" #endif diff --git a/source/geometry/volumes/include/G4NormalNavigation.icc b/source/geometry/navigation/include/G4NormalNavigation.icc similarity index 92% rename from source/geometry/volumes/include/G4NormalNavigation.icc rename to source/geometry/navigation/include/G4NormalNavigation.icc index 690441f955..3cf126a239 100644 --- a/source/geometry/volumes/include/G4NormalNavigation.icc +++ b/source/geometry/navigation/include/G4NormalNavigation.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4NormalNavigation.icc,v 1.5 2002/05/15 10:21:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NormalNavigation.icc,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4NormalNavigation Inline Implementation -// ******************************************************************** +// +// -------------------------------------------------------------------- // ******************************************************************** // LevelLocate @@ -63,9 +64,8 @@ G4NormalNavigation::LevelLocate( G4NavigationHistory& history, samplePhysical = targetLogical->GetDaughter(sampleNo); if ( samplePhysical!=blockedVol ) { - // Setup volume with mother ptr + // Setup history // - samplePhysical->Setup(targetPhysical); history.NewLevel(samplePhysical, kNormal, samplePhysical->GetCopyNo()); sampleSolid = samplePhysical->GetLogicalVolume()->GetSolid(); samplePoint = history.GetTopTransform().TransformPoint(globalPoint); diff --git a/source/geometry/volumes/include/G4ParameterisedNavigation.hh b/source/geometry/navigation/include/G4ParameterisedNavigation.hh similarity index 95% rename from source/geometry/volumes/include/G4ParameterisedNavigation.hh rename to source/geometry/navigation/include/G4ParameterisedNavigation.hh index d2b3549156..de6fb2b628 100644 --- a/source/geometry/volumes/include/G4ParameterisedNavigation.hh +++ b/source/geometry/navigation/include/G4ParameterisedNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.hh,v 1.7 2003/06/16 16:54:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParameterisedNavigation.hh,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ParameterisedNavigation @@ -35,12 +35,11 @@ // History: // - Created. Paul Kent, Aug 96 -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4PARAMETERISEDNAVIGATION_HH #define G4PARAMETERISEDNAVIGATION_HH -#include "globals.hh" +#include "G4Types.hh" #include diff --git a/source/geometry/volumes/include/G4ParameterisedNavigation.icc b/source/geometry/navigation/include/G4ParameterisedNavigation.icc similarity index 95% rename from source/geometry/volumes/include/G4ParameterisedNavigation.icc rename to source/geometry/navigation/include/G4ParameterisedNavigation.icc index 753368e0cf..03595bc2f7 100644 --- a/source/geometry/volumes/include/G4ParameterisedNavigation.icc +++ b/source/geometry/navigation/include/G4ParameterisedNavigation.icc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.icc,v 1.7 2002/05/15 10:23:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParameterisedNavigation.icc,v 1.2 2003/11/03 17:15:20 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ParameterisedNavigation Inline implementation // -// ******************************************************************** +// -------------------------------------------------------------------- // ******************************************************************** // ParamVoxelLocate @@ -128,9 +128,8 @@ G4ParameterisedNavigation::LevelLocate( G4NavigationHistory& history, pSolid->ComputeDimensions(pParam, replicaNo, pPhysical); pParam->ComputeTransformation(replicaNo, pPhysical); - // Setup volume with mother pointer + // Setup history // - pPhysical->Setup(motherPhysical); history.NewLevel(pPhysical, kParameterised, replicaNo); samplePoint = history.GetTopTransform().TransformPoint(globalPoint); if ( !G4AuxiliaryNavServices::CheckPointOnSurface(pSolid, diff --git a/source/geometry/volumes/include/G4PropagatorInField.hh b/source/geometry/navigation/include/G4PropagatorInField.hh similarity index 83% rename from source/geometry/volumes/include/G4PropagatorInField.hh rename to source/geometry/navigation/include/G4PropagatorInField.hh index 04cfd987c2..49774851cd 100644 --- a/source/geometry/volumes/include/G4PropagatorInField.hh +++ b/source/geometry/navigation/include/G4PropagatorInField.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PropagatorInField.hh,v 1.36 2003/06/21 00:37:55 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PropagatorInField.hh,v 1.7 2003/11/26 14:45:04 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4PropagatorInField // @@ -44,12 +44,16 @@ #ifndef G4PropagatorInField_hh #define G4PropagatorInField_hh 1 -#include "globals.hh" -#include "G4FieldTrack.hh" -#include "G4Navigator.hh" -#include "G4ChordFinder.hh" -#include "G4FieldManager.hh" +#include "G4Types.hh" +#include + +#include "G4FieldTrack.hh" +#include "G4FieldManager.hh" +class G4ChordFinder; + +class G4Navigator; +class G4VPhysicalVolume; class G4VCurvedTrajectoryFilter; class G4PropagatorInField @@ -91,23 +95,9 @@ class G4PropagatorInField inline G4ChordFinder* GetChordFinder(); inline G4int SetVerboseLevel( G4int verbose ); + inline G4int GetVerboseLevel() const; inline G4int Verbose() const; - inline G4double GetDeltaIntersection() const; - // Accuracy for boundary intersection. - inline G4double GetDeltaOneStep() const; - // Accuracy for one tracking/physics step. - - inline void SetAccuraciesWithDeltaOneStep( G4double deltaOneStep ); - // Sets both accuracies for the Global (Detector) field, - // maintaining a particular ratio for accuracties - // of volume Intersection and Integration (in One Step). - - inline void SetDeltaIntersection( G4double deltaIntersection ); - // Set accuracy of intersection of a volume. (only) - inline void SetDeltaOneStep( G4double deltaOneStep ); - // Set accuracy for integration of one step. (only) - inline G4int GetMaxLoopCount() const; inline void SetMaxLoopCount( G4int new_max ); // A maximum for the number of steps that a (looping) particle can take. @@ -122,6 +112,10 @@ class G4PropagatorInField inline G4FieldTrack GetEndState() const; + // The following methods are now obsolescent but *for now* will work + // They are being replaced by same-name methods in G4FieldManager, + // allowing the specialisation in different volumes. + // Their new behaviour is to change the values for the global field manager. inline G4double GetMinimumEpsilonStep() const; inline void SetMinimumEpsilonStep( G4double newEpsMin ); // Minimum for Relative accuracy of any Step @@ -132,6 +126,17 @@ class G4PropagatorInField inline void SetLargestAcceptableStep( G4double newBigDist ); inline G4double GetLargestAcceptableStep(); + public: // with description + + // The following methods are obsolete and will not work -- + // as they have been replaced by the same methods in G4FieldManager + // since Geant4 4.0 + inline G4double GetDeltaIntersection() const; + inline G4double GetDeltaOneStep() const; + inline void SetAccuraciesWithDeltaOneStep( G4double deltaOneStep ); + inline void SetDeltaIntersection( G4double deltaIntersection ); + inline void SetDeltaOneStep( G4double deltaOneStep ); + public: // without description inline G4FieldManager* GetCurrentFieldManager(); @@ -160,6 +165,11 @@ class G4PropagatorInField inline void SetDetectorFieldManager( G4FieldManager* newGlobalFieldManager ); // Update this (dangerous) state -- for the time being + + inline void SetUseSafetyForOptimization( G4bool ); + inline G4bool GetUseSafetyForOptimization(); + // Toggle & view parameter for using safety to discard + // unneccesary calls to navigator (thus 'optimising' performance) protected: // with description @@ -167,27 +177,29 @@ class G4PropagatorInField const G4FieldTrack& curveStartPointTangent, // A const G4FieldTrack& curveEndPointTangent, // B const G4ThreeVector& trialPoint, // E - G4FieldTrack& intersectPointTangent); // Output + G4FieldTrack& intersectPointTangent, // Output + G4bool& recalculatedEndPoint); // Out: + // If such an intersection exists, this function // calculate the intersection point of the true path of the particle // with the surface of the current volume (or of one of its daughters). // (Should use lateral displacement as measure of convergence). G4bool IntersectChord( G4ThreeVector StartPointA, - G4ThreeVector EndPointB, - G4double &NewSafety, - G4double &LinearStepLength, - G4ThreeVector &IntersectionPoint); + G4ThreeVector EndPointB, + G4double &NewSafety, + G4double &LinearStepLength, + G4ThreeVector &IntersectionPoint); // Intersect the chord from StartPointA to EndPointB - // and return whether an intersection occurred + // and return whether an intersection occurred G4FieldTrack ReEstimateEndpoint( const G4FieldTrack &CurrentStateA, - const G4FieldTrack &EstimtdEndStateB, - double linearDistSq, - double curveDist); + const G4FieldTrack &EstimtdEndStateB, + G4double linearDistSq, + G4double curveDist); // Return new estimate for state after curveDist - // starting from CurrentStateA, to replace EstimtdEndStateB, - // (and report displacement -- if field is compiled verbose.) + // starting from CurrentStateA, to replace EstimtdEndStateB, + // (and report displacement -- if field is compiled verbose.) void PrintStepLengthDiagnostic( G4double currentProposedStepLength, G4double decreaseFactor, @@ -221,15 +233,7 @@ class G4PropagatorInField G4int fVerboseLevel; // For debuging purposes - // Values for the small possible relative accuracy of a step - // (corresponding to the greatest possible integration accuracy) - - G4double fEpsilonMinDefault; // Can be 1.0e-5 to 1.0e-10 ... - G4double fEpsilonMaxDefault; // Can be 1.0e-1 to 1.0e-3 ... - G4double fEpsilonMin; - G4double fEpsilonMax; - // Limits for the Relative accuracy of any Step - + // Limit for the number of sub-steps taken in one call to ComputeStep G4int fMax_loop_count; // Variables to keep track of "abnormal" case - which causes loop @@ -248,6 +252,7 @@ class G4PropagatorInField // Last safety origin & value: for optimisation G4ThreeVector fPreviousSftOrigin; G4double fPreviousSafety; + G4bool fUseSafetyForOptimisation; // Flag whether field manager has been set for the current step G4bool fSetFieldMgr; diff --git a/source/geometry/volumes/include/G4PropagatorInField.icc b/source/geometry/navigation/include/G4PropagatorInField.icc similarity index 85% rename from source/geometry/volumes/include/G4PropagatorInField.icc rename to source/geometry/navigation/include/G4PropagatorInField.icc index 8d33d07fd9..397dd47b41 100644 --- a/source/geometry/volumes/include/G4PropagatorInField.icc +++ b/source/geometry/navigation/include/G4PropagatorInField.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PropagatorInField.icc,v 1.33 2003/06/21 00:38:33 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PropagatorInField.icc,v 1.6 2003/11/26 14:45:48 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------------------ @@ -37,7 +37,7 @@ // - an object that calculates the Curved paths // - the navigator to find (linear) intersections // - and ?? also must know the value of the maximum displacement allowed -// ******************************************************************** +// ------------------------------------------------------------------------ inline G4ChordFinder* G4PropagatorInField::GetChordFinder() @@ -54,7 +54,9 @@ void G4PropagatorInField::SetChargeMomentumMass( G4double Momentum, // in GeV/c G4double Mass) // in ? units { - GetChordFinder()->SetChargeMomentumMass(Charge, Momentum, Mass); + // GetChordFinder()->SetChargeMomentumMass(Charge, Momentum, Mass); + // --> Not needed anymore, as it is done in ComputeStep for the + // ChordFinder of the current step (which is known only then). fCharge = Charge; fInitialMomentumModulus = Momentum; fMass = Mass; @@ -142,49 +144,47 @@ G4int G4PropagatorInField::SetVerboseLevel( G4int Verbose ) } inline -G4int G4PropagatorInField::Verbose() const +G4int G4PropagatorInField::GetVerboseLevel() const { return fVerboseLevel; } +inline +G4int G4PropagatorInField::Verbose() const // Obsolete +{ + return GetVerboseLevel(); +} + inline G4FieldTrack G4PropagatorInField::GetEndState() const { return End_PointAndTangent; } -// Minimum for Relative accuracy of any Step +// Minimum for Relative accuracy of a Step in volumes of global field inline G4double G4PropagatorInField::GetMinimumEpsilonStep() const { - return fEpsilonMin; + return fDetectorFieldMgr->GetMinimumEpsilonStep(); } inline void G4PropagatorInField::SetMinimumEpsilonStep( G4double newEpsMin ) { - if( (newEpsMin > 0.0) && (fabs(1.0+newEpsMin) > 1.0) ) - { - fEpsilonMin = newEpsMin; - } + fDetectorFieldMgr->SetMinimumEpsilonStep(newEpsMin); } // Maximum for Relative accuracy of any Step inline G4double G4PropagatorInField::GetMaximumEpsilonStep() const { - return fEpsilonMax; + return fDetectorFieldMgr->GetMaximumEpsilonStep(); } inline void G4PropagatorInField::SetMaximumEpsilonStep( G4double newEpsMax ) { - if( (newEpsMax > 0.0) - && (newEpsMax >= fEpsilonMin ) - && (fabs(1.0+newEpsMax)>1.0) ) - { - fEpsilonMax = newEpsMax; - } + fDetectorFieldMgr->SetMaximumEpsilonStep( newEpsMax ); } inline @@ -244,3 +244,18 @@ void G4PropagatorInField::SetDetectorFieldManager(G4FieldManager* newDetectorFie { fDetectorFieldMgr = newDetectorFieldManager; } + + +inline +void G4PropagatorInField:: SetUseSafetyForOptimization( G4bool value ) +{ + fUseSafetyForOptimisation= value; +} + +inline +G4bool G4PropagatorInField::GetUseSafetyForOptimization() +{ + return fUseSafetyForOptimisation; +} + + diff --git a/source/geometry/volumes/include/G4ReplicaNavigation.hh b/source/geometry/navigation/include/G4ReplicaNavigation.hh similarity index 87% rename from source/geometry/volumes/include/G4ReplicaNavigation.hh rename to source/geometry/navigation/include/G4ReplicaNavigation.hh index ec79ce3daa..7196997f38 100644 --- a/source/geometry/volumes/include/G4ReplicaNavigation.hh +++ b/source/geometry/navigation/include/G4ReplicaNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReplicaNavigation.hh,v 1.5 2002/07/23 08:50:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ReplicaNavigation.hh,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ReplicaNavigation @@ -35,41 +35,37 @@ // History: // - Created. Paul Kent, Aug 96 -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4REPLICANAVIGATION_HH #define G4REPLICANAVIGATION_HH -#include "globals.hh" +#include "G4Types.hh" #include "G4NavigationHistory.hh" -#include "G4AffineTransform.hh" -#include "G4VPhysicalVolume.hh" -#include "G4VPVParameterisation.hh" #include "G4LogicalVolume.hh" -#include "G4VSolid.hh" +#include "G4VPhysicalVolume.hh" #include "G4ThreeVector.hh" #include "G4BlockingList.hh" // Required for voxel handling // -#include "G4SmartVoxelProxy.hh" -#include "G4SmartVoxelNode.hh" #include "G4SmartVoxelHeader.hh" +class G4VSolid; + class G4ReplicaNavigation { friend class G4ReplicaNavigationTester; public: // with description - G4ReplicaNavigation(); - G4bool LevelLocate( G4NavigationHistory& history, - const G4VPhysicalVolume *blockedVol, - const G4int blockedNum, - const G4ThreeVector &globalPoint, - const G4ThreeVector* globalDirection, - const G4bool pLocatedOnEdge, - G4ThreeVector &localPoint ); + G4ReplicaNavigation(); + G4bool LevelLocate( G4NavigationHistory& history, + const G4VPhysicalVolume *blockedVol, + const G4int blockedNum, + const G4ThreeVector &globalPoint, + const G4ThreeVector* globalDirection, + const G4bool pLocatedOnEdge, + G4ThreeVector &localPoint ); G4double ComputeStep( const G4ThreeVector &globalPoint, const G4ThreeVector &globalDirection, diff --git a/source/geometry/volumes/include/G4ReplicaNavigation.icc b/source/geometry/navigation/include/G4ReplicaNavigation.icc similarity index 97% rename from source/geometry/volumes/include/G4ReplicaNavigation.icc rename to source/geometry/navigation/include/G4ReplicaNavigation.icc index 97274a8ec1..a6506b7a1d 100644 --- a/source/geometry/volumes/include/G4ReplicaNavigation.icc +++ b/source/geometry/navigation/include/G4ReplicaNavigation.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4ReplicaNavigation.icc,v 1.8 2003/04/02 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ReplicaNavigation.icc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ReplicaNavigation Inline implementation -// ******************************************************************** +// +// -------------------------------------------------------------------- // ******************************************************************** // VoxelLocate @@ -173,7 +174,6 @@ G4ReplicaNavigation::LevelLocate( G4NavigationHistory& history, } ComputeTransformation(nodeNo, pPhysical, localPoint); - pPhysical->Setup(motherPhysical); history.NewLevel(pPhysical, kReplica, nodeNo); pPhysical->SetCopyNo(nodeNo); diff --git a/source/geometry/volumes/include/G4TransportationManager.hh b/source/geometry/navigation/include/G4TransportationManager.hh similarity index 92% rename from source/geometry/volumes/include/G4TransportationManager.hh rename to source/geometry/navigation/include/G4TransportationManager.hh index 2c115a5890..0a32b40ef3 100644 --- a/source/geometry/volumes/include/G4TransportationManager.hh +++ b/source/geometry/navigation/include/G4TransportationManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TransportationManager.hh,v 1.9 2003/06/13 09:30:06 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TransportationManager.hh,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4TransportationManager // @@ -35,9 +35,8 @@ // The class instance is created before main() is called, and // in turn creates the navigator and the rest. -// ======================================================================= // Created: 10 March 1997, J. Apostolakis -// ======================================================================= +// -------------------------------------------------------------------- #ifndef G4TransportationManager_hh #define G4TransportationManager_hh diff --git a/source/geometry/volumes/include/G4TransportationManager.icc b/source/geometry/navigation/include/G4TransportationManager.icc similarity index 92% rename from source/geometry/volumes/include/G4TransportationManager.icc rename to source/geometry/navigation/include/G4TransportationManager.icc index a3fb734d34..b5eca44e43 100644 --- a/source/geometry/volumes/include/G4TransportationManager.icc +++ b/source/geometry/navigation/include/G4TransportationManager.icc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4TransportationManager.icc,v 1.7 2003/06/13 09:30:06 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TransportationManager.icc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // ------------------------------------------------------------ // GEANT 4 inlined function members implementation // ------------------------------------------------------------ // // Created: 10 March 1997, J. Apostolakis // -// ******************************************************************** +// -------------------------------------------------------------------- inline G4Navigator* G4TransportationManager::GetNavigatorForTracking() const diff --git a/source/geometry/volumes/include/G4VoxelNavigation.hh b/source/geometry/navigation/include/G4VoxelNavigation.hh similarity index 96% rename from source/geometry/volumes/include/G4VoxelNavigation.hh rename to source/geometry/navigation/include/G4VoxelNavigation.hh index f9b3cd4a3a..44243f09b9 100644 --- a/source/geometry/volumes/include/G4VoxelNavigation.hh +++ b/source/geometry/navigation/include/G4VoxelNavigation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.hh,v 1.12 2003/06/16 16:54:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VoxelNavigation.hh,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VoxelNavigation @@ -34,8 +34,7 @@ // History: // - Created. Paul Kent, Aug 96 -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4VOXELNAVIGATION_HH #define G4VOXELNAVIGATION_HH diff --git a/source/geometry/volumes/include/G4VoxelNavigation.icc b/source/geometry/navigation/include/G4VoxelNavigation.icc similarity index 95% rename from source/geometry/volumes/include/G4VoxelNavigation.icc rename to source/geometry/navigation/include/G4VoxelNavigation.icc index ff2a7f145a..6b4a71eded 100644 --- a/source/geometry/volumes/include/G4VoxelNavigation.icc +++ b/source/geometry/navigation/include/G4VoxelNavigation.icc @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.icc,v 1.10 2002/05/15 10:21:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VoxelNavigation.icc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VoxelNavigation Inline implementation -// ******************************************************************** +// +// -------------------------------------------------------------------- // ******************************************************************** // VoxelLocate @@ -131,9 +132,8 @@ G4VoxelNavigation::LevelLocate( G4NavigationHistory& history, GetDaughter(targetVoxelNode->GetVolume(sampleNo)); if ( samplePhysical!=blockedVol ) { - // Setup volume with mother pointer + // Setup history // - samplePhysical->Setup(targetPhysical); history.NewLevel(samplePhysical, kNormal, samplePhysical->GetCopyNo()); sampleSolid = samplePhysical->GetLogicalVolume()->GetSolid(); samplePoint = history.GetTopTransform().TransformPoint(globalPoint); diff --git a/source/geometry/volumes/src/G4AuxiliaryNavServices.cc b/source/geometry/navigation/src/G4AuxiliaryNavServices.cc similarity index 89% rename from source/geometry/volumes/src/G4AuxiliaryNavServices.cc rename to source/geometry/navigation/src/G4AuxiliaryNavServices.cc index 756a815c29..179f563759 100644 --- a/source/geometry/volumes/src/G4AuxiliaryNavServices.cc +++ b/source/geometry/navigation/src/G4AuxiliaryNavServices.cc @@ -20,13 +20,12 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4AuxiliaryNavServices.cc,v 1.3 2002/08/06 08:23:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AuxiliaryNavServices.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4AuxiliaryNavServices.hh" -#include "globals.hh" // This method currently exists only to allow compilers to find // the inline method (which are the core of this class) diff --git a/source/geometry/navigation/src/G4DrawVoxels.cc b/source/geometry/navigation/src/G4DrawVoxels.cc new file mode 100644 index 0000000000..11c1f383ea --- /dev/null +++ b/source/geometry/navigation/src/G4DrawVoxels.cc @@ -0,0 +1,265 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4DrawVoxels.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// class G4DrawVoxels +// +// Implementation +// +// Define G4DrawVoxelsDebug for debugging information on G4cout +// +// History: +// 03/08/1999 The G4VisAttributes have been made member data for +// lifetime reasons / visualisation L.G +// 29/07/1999 first comitted version L.G. +// -------------------------------------------------------------------- + +#include "G4DrawVoxels.hh" +#include "G4AffineTransform.hh" +#include "G4SmartVoxelHeader.hh" +#include "G4LogicalVolume.hh" +#include "G4VSolid.hh" +#include "G4VVisManager.hh" +#include "G4Colour.hh" +#include "G4TransportationManager.hh" +#include "G4TouchableHistoryHandle.hh" + +#define voxel_width 0 + +// Private Constructor +// +G4DrawVoxels::G4DrawVoxels() +{ + fVoxelsVisAttributes[0].SetColour(G4Colour(1.,0.,0.)); + fVoxelsVisAttributes[1].SetColour(G4Colour(0.,1.,0.)); + fVoxelsVisAttributes[2].SetColour(G4Colour(0.,0.,1.)); + fBoundingBoxVisAttributes.SetColour(G4Colour(.3,0.,.2)); +} + +// Destructor +// +G4DrawVoxels::~G4DrawVoxels() +{ +} + +// Methods that allow changing colors of the drawing +// +void G4DrawVoxels::SetVoxelsVisAttributes(G4VisAttributes& VA_voxelX, + G4VisAttributes& VA_voxelY, + G4VisAttributes& VA_voxelZ) +{ + fVoxelsVisAttributes[0]=VA_voxelX; + fVoxelsVisAttributes[1]=VA_voxelY; + fVoxelsVisAttributes[2]=VA_voxelZ; +} +void G4DrawVoxels::SetBoundingBoxVisAttributes(G4VisAttributes& VA_boundingbox) +{ + fBoundingBoxVisAttributes=VA_boundingbox; +} + +// *************************************************************** + +void +G4DrawVoxels::ComputeVoxelPolyhedra(const G4LogicalVolume* lv, + const G4SmartVoxelHeader* header, + G4VoxelLimits& limit, + G4PlacedPolyhedronList* ppl) const +{ + // 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; + G4double xmax=0,xmin=0,ymax=0,ymin=0,zmax=0,zmin=0; + + 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; + } + + // Let's get the data for the voxelisation + + solid->CalculateExtent(kXAxis,limit,G4AffineTransform(),xmin,xmax); + // G4AffineTransform() is identity + solid->CalculateExtent(kYAxis,limit,G4AffineTransform(),ymin,ymax); + // extents according to the axis of the local frame + solid->CalculateExtent(kZAxis,limit,G4AffineTransform(),zmin,zmax); + dx=xmax-xmin; + dy=ymax-ymin; + dz=zmax-zmin; + + //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, + (ymin+ymax)*0.5, + (zmin+zmax)*0.5); + + ppl->push_back(G4PlacedPolyhedron(bounding_polyhedronBox, + G4Translate3D(t_centerofBoundingBox))); + + G4ThreeVector t_FirstCenterofVoxelPlane; + const G4VisAttributes* voxelsVisAttributes=0; + + G4ThreeVector unit_translation_vector; + G4ThreeVector current_translation_vector; + + switch(header->GetAxis()) + { + case kXAxis: + dx=voxel_width; + unit_translation_vector=G4ThreeVector(1,0,0); + t_FirstCenterofVoxelPlane=G4ThreeVector(xmin,(ymin+ymax)*0.5, + (zmin+zmax)*0.5); + voxelsVisAttributes=&fVoxelsVisAttributes[0]; + break; + case kYAxis: + dy=voxel_width; + t_FirstCenterofVoxelPlane=G4ThreeVector((xmin+xmax)*0.5,ymin, + (zmin+zmax)*0.5); + unit_translation_vector=G4ThreeVector(0,1,0); + voxelsVisAttributes=&fVoxelsVisAttributes[1]; + break; + case kZAxis: + dz=voxel_width; + t_FirstCenterofVoxelPlane=G4ThreeVector((xmin+xmax)*0.5, + (ymin+ymax)*0.5,zmin); + unit_translation_vector=G4ThreeVector(0,0,1); + voxelsVisAttributes=&fVoxelsVisAttributes[2]; + break; + default: + /************************/ + G4cout << "PANIC: in Draw_Voxels:DrawVoxels(...) header is decayed." + << G4endl; + G4cout << "header->GetAxis returns an invalid axis." << G4endl; + /************************/ + break; + }; + + G4PolyhedronBox voxel_plane(dx*0.5,dy*0.5,dz*0.5); + voxel_plane.SetVisAttributes(voxelsVisAttributes); + + G4SmartVoxelProxy* slice=header->GetSlice(0); + G4int slice_no=0,no_slices=header->GetNoSlices(); + 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); + newlimit.AddLimit(header->GetAxis(),beginning+step*slice_no, + beginning+step*(slice->GetHeader()->GetMaxEquivalentSliceNo()+1)); + ComputeVoxelPolyhedra(lv,slice->GetHeader(),newlimit,ppl); + } + current_translation_vector=unit_translation_vector; + current_translation_vector*=step*slice_no; + + ppl->push_back(G4PlacedPolyhedron(voxel_plane, + G4Translate3D(current_translation_vector + +t_FirstCenterofVoxelPlane))); + slice_no=(slice->IsHeader() + ? slice->GetHeader()->GetMaxEquivalentSliceNo()+1 + : slice->GetNode()->GetMaxEquivalentSliceNo()+1); + if (slice_noGetSlice(slice_no); + } +} //end of ComputeVoxelPolyhedra... + +// ######################################################################## + +G4PlacedPolyhedronList* +G4DrawVoxels::CreatePlacedPolyhedra(const G4LogicalVolume* lv) const +{ + G4PlacedPolyhedronList* pplist=new G4PlacedPolyhedronList; + G4VoxelLimits limits; // Working object for recursive call. + ComputeVoxelPolyhedra(lv,lv->GetVoxelHeader(),limits,pplist); + return pplist; //it s up to the calling program to destroy it then! +} + +void G4DrawVoxels::DrawVoxels(const G4LogicalVolume* lv) const +{ + 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; + } + + // Computing the transformation according to the world volume + // (the drawing is directly in the world volume while the axis + // are relative to the mother volume of lv's daughter.) + + G4TouchableHistoryHandle aTouchable = + G4TransportationManager::GetTransportationManager()-> + GetNavigatorForTracking()->CreateTouchableHistoryHandle(); + G4AffineTransform globTransform = + aTouchable->GetHistory()->GetTopTransform().Inverse(); + G4Transform3D transf3D(globTransform.NetRotation(), + globTransform.NetTranslation()); + + G4PlacedPolyhedronList* pplist=CreatePlacedPolyhedra(lv); + if(pVVisManager) + { + //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; + delete pplist; +} diff --git a/source/geometry/verification/src/G4GeomTestErrorList.cc b/source/geometry/navigation/src/G4GeomTestErrorList.cc similarity index 85% rename from source/geometry/verification/src/G4GeomTestErrorList.cc rename to source/geometry/navigation/src/G4GeomTestErrorList.cc index 7706753f21..20bec2725e 100644 --- a/source/geometry/verification/src/G4GeomTestErrorList.cc +++ b/source/geometry/navigation/src/G4GeomTestErrorList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestErrorList.cc,v 1.1 2001/10/17 12:59:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestErrorList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,9 +30,12 @@ // G4GeomTestErrorList // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #include "G4GeomTestErrorList.hh" #include "G4VPhysicalVolume.hh" +#include "G4TransportationManager.hh" +#include "G4TouchableHistoryHandle.hh" // // Constructor @@ -135,29 +138,19 @@ void G4GeomTestErrorList::GetOneDaughtPoints( const G4VPhysicalVolume *daught, } - // // FindGlobalCoordinateSystem // -// Calculate translation to global coordinates +// Calculate rotation & translation to global coordinates // void G4GeomTestErrorList::FindGlobalCoordinateSystem() { - globalTranslation = G4ThreeVector(0,0,0); - globalRotation = G4RotationMatrix(); - - const G4VPhysicalVolume *vol = mother; - - for(;;) { - const G4VPhysicalVolume *parent = vol->GetMother(); - if (parent == 0) break; + G4TouchableHistoryHandle aTouchable = + G4TransportationManager::GetTransportationManager()-> + GetNavigatorForTracking()->CreateTouchableHistoryHandle(); + G4AffineTransform globTransform = + aTouchable->GetHistory()->GetTopTransform().Inverse(); - const G4RotationMatrix &rotation = vol->GetObjectRotationValue(); - const G4ThreeVector &translation = vol->GetObjectTranslation(); - - globalTranslation = translation + rotation*globalTranslation; - globalRotation = rotation*globalRotation; - - vol = parent; - } + globalTranslation = globTransform.NetTranslation(); + globalRotation = globTransform.NetRotation(); } diff --git a/source/geometry/verification/src/G4GeomTestOverlapList.cc b/source/geometry/navigation/src/G4GeomTestOverlapList.cc similarity index 94% rename from source/geometry/verification/src/G4GeomTestOverlapList.cc rename to source/geometry/navigation/src/G4GeomTestOverlapList.cc index 55bc12cb0e..68a918b277 100644 --- a/source/geometry/verification/src/G4GeomTestOverlapList.cc +++ b/source/geometry/navigation/src/G4GeomTestOverlapList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestOverlapList.cc,v 1.1 2001/10/17 12:59:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestOverlapList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,6 +30,7 @@ // G4GeomTestOverlapList // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #include "G4GeomTestOverlapList.hh" @@ -46,7 +47,7 @@ G4GeomTestOverlapList::G4GeomTestOverlapList( : G4GeomTestErrorList(theMother), daughter1(theDaughter1), daughter2(theDaughter2) -{;} +{} // @@ -56,13 +57,14 @@ G4GeomTestOverlapList::G4GeomTestOverlapList() : G4GeomTestErrorList(0), daughter1(0), daughter2(0) -{;} +{} // // Destructor // -G4GeomTestOverlapList::~G4GeomTestOverlapList() {;} +G4GeomTestOverlapList::~G4GeomTestOverlapList() +{} // diff --git a/source/geometry/verification/src/G4GeomTestOvershootList.cc b/source/geometry/navigation/src/G4GeomTestOvershootList.cc similarity index 92% rename from source/geometry/verification/src/G4GeomTestOvershootList.cc rename to source/geometry/navigation/src/G4GeomTestOvershootList.cc index 3eb9174925..cf05680eb3 100644 --- a/source/geometry/verification/src/G4GeomTestOvershootList.cc +++ b/source/geometry/navigation/src/G4GeomTestOvershootList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestOvershootList.cc,v 1.1 2001/10/17 12:59:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestOvershootList.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,6 +30,7 @@ // G4GeomTestOvershootList // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #include "G4GeomTestOvershootList.hh" @@ -44,7 +45,7 @@ G4GeomTestOvershootList::G4GeomTestOvershootList( G4int theDaughterIndex ) : G4GeomTestErrorList(theMother), daughter(theDaughterIndex) -{;} +{} // @@ -53,13 +54,14 @@ G4GeomTestOvershootList::G4GeomTestOvershootList( G4GeomTestOvershootList::G4GeomTestOvershootList() : G4GeomTestErrorList(0), daughter(0) -{;} +{} // // Destructor // -G4GeomTestOvershootList::~G4GeomTestOvershootList() {;} +G4GeomTestOvershootList::~G4GeomTestOvershootList() +{} // diff --git a/source/geometry/verification/src/G4GeomTestPoint.cc b/source/geometry/navigation/src/G4GeomTestPoint.cc similarity index 94% rename from source/geometry/verification/src/G4GeomTestPoint.cc rename to source/geometry/navigation/src/G4GeomTestPoint.cc index f87a6d2614..8a66244f1f 100644 --- a/source/geometry/verification/src/G4GeomTestPoint.cc +++ b/source/geometry/navigation/src/G4GeomTestPoint.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestPoint.cc,v 1.1 2001/10/17 12:59:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestPoint.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,6 +30,7 @@ // G4GeomTestPoint // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #include "G4GeomTestPoint.hh" diff --git a/source/geometry/verification/src/G4GeomTestSegment.cc b/source/geometry/navigation/src/G4GeomTestSegment.cc similarity index 94% rename from source/geometry/verification/src/G4GeomTestSegment.cc rename to source/geometry/navigation/src/G4GeomTestSegment.cc index f1b6e5cc11..a679d270a2 100644 --- a/source/geometry/verification/src/G4GeomTestSegment.cc +++ b/source/geometry/navigation/src/G4GeomTestSegment.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestSegment.cc,v 1.2 2003/06/16 16:54:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestSegment.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,6 +30,7 @@ // G4GeomTestSegment // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #include "G4GeomTestSegment.hh" @@ -294,7 +295,7 @@ void G4GeomTestSegment::FindSomePoints( G4GeomTestLogger *logger, // // Loop // - // nzero = the number of consequtive zeros + // nzero = the number of consecutive zeros // G4int nzero=0; @@ -304,15 +305,10 @@ void G4GeomTestSegment::FindSomePoints( G4GeomTestLogger *logger, // p = p0 + s*v; - // - // Record point - // - points.push_back( G4GeomTestPoint( p, s, entering==forward ) ); - if (nzero > 2) { // - // Oops. Infinite loop. Probably a geometry bug. - // We can give the solid a little help with a push + // Oops. In a loop. Probably along a spherical or cylindrical surface. + // Let's give the tool a little help with a push // G4double push = 1E-6; s += sign*push; @@ -320,11 +316,11 @@ void G4GeomTestSegment::FindSomePoints( G4GeomTestLogger *logger, p = p0 + s*v; EInside inside = solid->Inside(p); if (inside == kInside) { - entering = false; + entering = true; break; } else if (inside == kOutside) { - entering = true; + entering = false; break; } @@ -337,6 +333,13 @@ void G4GeomTestSegment::FindSomePoints( G4GeomTestLogger *logger, s += sign*push; } } + else { + + // + // Record point + // + points.push_back( G4GeomTestPoint( p, s, entering==forward ) ); + } // // Find next intersection diff --git a/source/geometry/verification/src/G4GeomTestStreamLogger.cc b/source/geometry/navigation/src/G4GeomTestStreamLogger.cc similarity index 97% rename from source/geometry/verification/src/G4GeomTestStreamLogger.cc rename to source/geometry/navigation/src/G4GeomTestStreamLogger.cc index 4d7f221925..dd3e15bbba 100644 --- a/source/geometry/verification/src/G4GeomTestStreamLogger.cc +++ b/source/geometry/navigation/src/G4GeomTestStreamLogger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestStreamLogger.cc,v 1.6 2003/06/16 16:54:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestStreamLogger.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,6 +30,7 @@ // G4GeomTestStreamLogger // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #include "G4GeomTestStreamLogger.hh" #include "G4VSolid.hh" diff --git a/source/geometry/verification/src/G4GeomTestVolPoint.cc b/source/geometry/navigation/src/G4GeomTestVolPoint.cc similarity index 95% rename from source/geometry/verification/src/G4GeomTestVolPoint.cc rename to source/geometry/navigation/src/G4GeomTestVolPoint.cc index 573a681ceb..1eb7f153c4 100644 --- a/source/geometry/verification/src/G4GeomTestVolPoint.cc +++ b/source/geometry/navigation/src/G4GeomTestVolPoint.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestVolPoint.cc,v 1.1 2001/10/17 13:00:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestVolPoint.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,6 +30,7 @@ // G4GeomTestVolPoint // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #include "G4GeomTestVolPoint.hh" diff --git a/source/geometry/verification/src/G4GeomTestVolume.cc b/source/geometry/navigation/src/G4GeomTestVolume.cc similarity index 98% rename from source/geometry/verification/src/G4GeomTestVolume.cc rename to source/geometry/navigation/src/G4GeomTestVolume.cc index 78ad37e2c5..7450e7e075 100644 --- a/source/geometry/verification/src/G4GeomTestVolume.cc +++ b/source/geometry/navigation/src/G4GeomTestVolume.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeomTestVolume.cc,v 1.7 2003/06/16 16:54:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeomTestVolume.cc,v 1.3 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -30,6 +30,7 @@ // G4GeomTestVolume // // Author: D.C.Williams, UCSC (davidw@scipp.ucsc.edu) +// -------------------------------------------------------------------- #include "G4GeomTestVolume.hh" @@ -333,7 +334,8 @@ void G4GeomTestVolume::TestCartGrid( const G4ThreeVector &theG1, G4int n1, G4int n2 ) { if (n1 <= 0 || n2 <= 0) - G4Exception( "G4GeomTestVolume::TestCartGrid -- n1 and n2 must be >= 1" ); + G4Exception( "G4GeomTestVolume::TestCartGrid()", "WrongArgumentValue", + FatalException, "Arguments n1 and n2 must be >= 1" ); G4ThreeVector xMin( extent.GetXmin(), extent.GetYmin(), extent.GetZmin() ); diff --git a/source/geometry/volumes/src/G4GeometryMessenger.cc b/source/geometry/navigation/src/G4GeometryMessenger.cc similarity index 99% rename from source/geometry/volumes/src/G4GeometryMessenger.cc rename to source/geometry/navigation/src/G4GeometryMessenger.cc index 90b15ba696..aa5e18a537 100644 --- a/source/geometry/volumes/src/G4GeometryMessenger.cc +++ b/source/geometry/navigation/src/G4GeometryMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GeometryMessenger.cc,v 1.12 2003/06/16 16:54:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GeometryMessenger.cc,v 1.2 2003/11/03 17:15:21 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class source file @@ -31,7 +31,7 @@ // // Author: G.Cosmo, CERN. // -// ******************************************************************** +// -------------------------------------------------------------------- #include #include "G4GeometryMessenger.hh" diff --git a/source/geometry/volumes/src/G4Navigator.cc b/source/geometry/navigation/src/G4Navigator.cc similarity index 92% rename from source/geometry/volumes/src/G4Navigator.cc rename to source/geometry/navigation/src/G4Navigator.cc index c5dea82456..ae1eccf89a 100644 --- a/source/geometry/volumes/src/G4Navigator.cc +++ b/source/geometry/navigation/src/G4Navigator.cc @@ -21,19 +21,21 @@ // ******************************************************************** // // -// $Id: G4Navigator.cc,v 1.36 2003/06/16 16:54:55 gunter Exp $ +// $Id: G4Navigator.cc,v 1.5 2003/11/10 08:58:42 gcosmo Exp $ // GEANT4 tag $ Name: $ // // class G4Navigator Implementation // // Author: Paul Kent, July 95/96 // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4Navigator.hh" #include "G4ios.hh" #include +#include "G4VPhysicalVolume.hh" + // ******************************************************************** // Constructor // ******************************************************************** @@ -51,6 +53,21 @@ G4Navigator::G4Navigator() G4Navigator::~G4Navigator() {;} +// ******************************************************************** +// ResetHierarchyAndLocate +// ******************************************************************** +// +G4VPhysicalVolume* +G4Navigator::ResetHierarchyAndLocate(const G4ThreeVector &p, + const G4ThreeVector &direction, + const G4TouchableHistory &h) +{ + ResetState(); + fHistory = *h.GetHistory(); + SetupHierarchy(); + return LocateGlobalPointAndSetup(p, &direction, true, false); +} + // ******************************************************************** // LocateGlobalPointAndSetup // @@ -129,7 +146,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, } else { - fLastLocatedPointLocal = localPoint; + fLastLocatedPointLocal = localPoint; return 0; // Have exited world volume } // A fix for the case where a volume is "entered" at an edge @@ -145,18 +162,15 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, else if ( fEntering ) { - G4VPhysicalVolume *curPhysical = fHistory.GetTopVolume(); switch (VolumeType(fBlockedPhysicalVolume)) { case kNormal: - fBlockedPhysicalVolume->Setup(curPhysical); fHistory.NewLevel(fBlockedPhysicalVolume, kNormal, fBlockedPhysicalVolume->GetCopyNo()); break; case kReplica: freplicaNav.ComputeTransformation(fBlockedReplicaNo, fBlockedPhysicalVolume); - fBlockedPhysicalVolume->Setup(curPhysical); fHistory.NewLevel(fBlockedPhysicalVolume, kReplica, fBlockedReplicaNo); fBlockedPhysicalVolume->SetCopyNo(fBlockedReplicaNo); @@ -171,7 +185,6 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, fBlockedPhysicalVolume); pParam->ComputeTransformation(fBlockedReplicaNo, fBlockedPhysicalVolume); - fBlockedPhysicalVolume->Setup(curPhysical); fHistory.NewLevel(fBlockedPhysicalVolume, kParameterised, fBlockedReplicaNo); fBlockedPhysicalVolume->SetCopyNo(fBlockedReplicaNo); @@ -237,7 +250,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, } else { - fLastLocatedPointLocal = localPoint; + fLastLocatedPointLocal = localPoint; return 0; // Have exited world volume } } @@ -274,7 +287,7 @@ G4Navigator::LocateGlobalPointAndSetup( const G4ThreeVector& globalPoint, } else { - fLastLocatedPointLocal = localPoint; + fLastLocatedPointLocal = localPoint; return 0; // Have exited world volume } } @@ -442,7 +455,8 @@ G4Navigator::LocateGlobalPointWithinVolume(const G4ThreeVector& pGlobalpoint) break; case kReplica: - G4Exception("ERROR - G4Navigator::LocateGlobalPointWithinVolume()"); + G4Exception("G4Navigator::LocateGlobalPointWithinVolume()", "NotApplicable", + FatalException, "Not applicable for replicated volumes."); break; } } @@ -489,6 +503,32 @@ G4Navigator::LocateGlobalPointWithinVolume(const G4ThreeVector& pGlobalpoint) #endif } +// ******************************************************************** +// LocateGlobalPointAndUpdateTouchableHandle +// ******************************************************************** +// +void G4Navigator::LocateGlobalPointAndUpdateTouchableHandle( + const G4ThreeVector& position, + const G4ThreeVector& direction, + G4TouchableHandle& oldTouchableToUpdate, + const G4bool RelativeSearch ) +{ + G4VPhysicalVolume* pPhysVol; + pPhysVol = LocateGlobalPointAndSetup( position,&direction,RelativeSearch ); + if( fEnteredDaughter || fExitedMother ) + { + oldTouchableToUpdate = CreateTouchableHistory(); + if( pPhysVol == 0 ) + { + // We want to ensure that the touchable is correct in this case. + // The method below should do this and recalculate a lot more .... + // + oldTouchableToUpdate->UpdateYourself( pPhysVol, &fHistory ); + } + } + return; +} + // ******************************************************************** // ComputeStep // @@ -698,7 +738,8 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint, fBlockedReplicaNo); break; case kReplica: - G4Exception("ERROR - G4Navigator::ComputeStep()"); + G4Exception("G4Navigator::ComputeStep()", "NotApplicable", + FatalException, "Not applicable for replicated volumes."); break; } } @@ -810,6 +851,32 @@ G4double G4Navigator::ComputeStep( const G4ThreeVector &pGlobalpoint, return Step; } +// ******************************************************************** +// ResetState +// +// Resets stack and minimum of navigator state `machine' +// ******************************************************************** +// +void G4Navigator::ResetState() +{ + fWasLimitedByGeometry=false; + fEntering=false; + fExiting=false; + fLocatedOnEdge = false; + fLastStepWasZero= false; + fEnteredDaughter = false; + fExitedMother = false; + + fValidExitNormal = false; + fExitNormal = G4ThreeVector(0,0,0); + + fPreviousSftOrigin = G4ThreeVector(0,0,0); + fPreviousSafety = 0.0; + + fBlockedPhysicalVolume=0; + fBlockedReplicaNo=-1; +} + // ******************************************************************** // SetupHierarchy // @@ -855,7 +922,6 @@ void G4Navigator::SetupHierarchy() pLogical->SetMaterial( pParam->ComputeMaterial(replicaNo, current)); break; } - current->Setup(mother); mother = current; } } @@ -947,7 +1013,8 @@ G4double G4Navigator::ComputeSafety( const G4ThreeVector &pGlobalpoint, newSafety = fparamNav.ComputeSafety(localPoint,fHistory,pMaxLength); break; case kReplica: - G4Exception("ERROR - G4Navigator::ComputeSafety()"); + G4Exception("G4Navigator::ComputeSafety()", "NotApplicable", + FatalException, "Not applicable for replicated volumes."); break; } } @@ -976,6 +1043,15 @@ G4double G4Navigator::ComputeSafety( const G4ThreeVector &pGlobalpoint, return newSafety; } +// ******************************************************************** +// CreateTouchableHistoryHandle +// ******************************************************************** +// +G4TouchableHistoryHandle G4Navigator::CreateTouchableHistoryHandle() const +{ + return G4TouchableHistoryHandle( CreateTouchableHistory() ); +} + // ******************************************************************** // PrintState // ******************************************************************** diff --git a/source/geometry/volumes/src/G4NormalNavigation.cc b/source/geometry/navigation/src/G4NormalNavigation.cc similarity index 95% rename from source/geometry/volumes/src/G4NormalNavigation.cc rename to source/geometry/navigation/src/G4NormalNavigation.cc index 85e00d9521..4bee38eed9 100644 --- a/source/geometry/volumes/src/G4NormalNavigation.cc +++ b/source/geometry/navigation/src/G4NormalNavigation.cc @@ -21,17 +21,18 @@ // ******************************************************************** // // -// $Id: G4NormalNavigation.cc,v 1.5 2002/08/06 10:35:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NormalNavigation.cc,v 1.2 2003/11/03 17:15:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4NormalNavigation Implementation // // Author: P.Kent, 1996 // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4NormalNavigation.hh" +#include "G4AffineTransform.hh" // ******************************************************************** // ComputeStep @@ -91,7 +92,6 @@ G4NormalNavigation::ComputeStep(const G4ThreeVector &localPoint, samplePhysical = motherLogical->GetDaughter(sampleNo); if ( samplePhysical!=blockedExitedVol ) { - samplePhysical->Setup(motherPhysical); G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); @@ -109,7 +109,7 @@ G4NormalNavigation::ComputeStep(const G4ThreeVector &localPoint, { sampleDirection = sampleTf.TransformAxis(localDirection); const G4double sampleStep = - sampleSolid->DistanceToIn(samplePoint,sampleDirection); + sampleSolid->DistanceToIn(samplePoint,sampleDirection); if ( sampleStep<=ourStep ) { ourStep = sampleStep; @@ -194,7 +194,6 @@ G4double G4NormalNavigation::ComputeSafety(const G4ThreeVector &localPoint, for ( sampleNo=localNoDaughters-1; sampleNo>=0; sampleNo-- ) { samplePhysical = motherLogical->GetDaughter(sampleNo); - samplePhysical->Setup(motherPhysical); G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); diff --git a/source/geometry/volumes/src/G4ParameterisedNavigation.cc b/source/geometry/navigation/src/G4ParameterisedNavigation.cc similarity index 98% rename from source/geometry/volumes/src/G4ParameterisedNavigation.cc rename to source/geometry/navigation/src/G4ParameterisedNavigation.cc index f8444ec9a8..0806686986 100644 --- a/source/geometry/volumes/src/G4ParameterisedNavigation.cc +++ b/source/geometry/navigation/src/G4ParameterisedNavigation.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4ParameterisedNavigation.cc,v 1.9 2003/06/16 16:54:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParameterisedNavigation.cc,v 1.2 2003/11/03 17:15:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ParameterisedNavigation Implementation // // Author: P.Kent, 1996 // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4ParameterisedNavigation.hh" @@ -150,7 +150,6 @@ G4double G4ParameterisedNavigation:: sampleSolid = sampleParam->ComputeSolid(sampleNo, samplePhysical); sampleSolid->ComputeDimensions(sampleParam, sampleNo, samplePhysical); sampleParam->ComputeTransformation(sampleNo, samplePhysical); - samplePhysical->Setup(motherPhysical); G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); diff --git a/source/geometry/volumes/src/G4PropagatorInField.cc b/source/geometry/navigation/src/G4PropagatorInField.cc similarity index 70% rename from source/geometry/volumes/src/G4PropagatorInField.cc rename to source/geometry/navigation/src/G4PropagatorInField.cc index bf15d135e9..dd1cbec209 100644 --- a/source/geometry/volumes/src/G4PropagatorInField.cc +++ b/source/geometry/navigation/src/G4PropagatorInField.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PropagatorInField.cc,v 1.49 2003/06/25 13:12:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PropagatorInField.cc,v 1.17 2003/12/11 01:30:47 japost Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // This class implements an algorithm to track a particle in a @@ -34,14 +34,18 @@ // 14.10.96 John Apostolakis, design and implementation // 17.03.97 John Apostolakis, renaming new set functions being added // -// ******************************************************************** +// --------------------------------------------------------------------------- #include "G4PropagatorInField.hh" #include "G4ios.hh" #include + #include "G4ThreeVector.hh" +#include "G4VPhysicalVolume.hh" +#include "G4Navigator.hh" #include "G4VCurvedTrajectoryFilter.hh" - +#include "G4ChordFinder.hh" + /////////////////////////////////////////////////////////////////////////// // // Constructors and destructor @@ -55,17 +59,15 @@ G4PropagatorInField::G4PropagatorInField( G4Navigator *theNavigator, G4ThreeVector(0.,0.,0.),0.0,0.0,0.0,0.0,0.0), fParticleIsLooping(false), fVerboseLevel(0), - fEpsilonMinDefault(5.0e-7), - fEpsilonMaxDefault(0.05), fMax_loop_count(1000), fNoZeroStep(0), fCharge(0.0), fInitialMomentumModulus(0.0), fMass(0.0), + fUseSafetyForOptimisation(true), // (false) is less sensitive to incorrect safety fSetFieldMgr(false), fpTrajectoryFilter( 0 ) { - fEpsilonMin = fEpsilonMinDefault; - fEpsilonMax = fEpsilonMaxDefault; - fEpsilonStep = fEpsilonMaxDefault; + if(fDetectorFieldMgr) { fEpsilonStep = fDetectorFieldMgr->GetMaximumEpsilonStep();} + else { fEpsilonStep= 1.0e-5; } fActionThreshold_NoZeroSteps = 2; fSevereActionThreshold_NoZeroSteps = 10; fAbandonThreshold_NoZeroSteps = 50; @@ -117,7 +119,7 @@ G4PropagatorInField::ComputeStep( // Set the field manager to the local one if the volume has one, // or to the global one if not // - if( !fSetFieldMgr ) FindAndSetFieldManager( pPhysVol ); + if( !fSetFieldMgr ) fCurrentFieldMgr= FindAndSetFieldManager( pPhysVol ); // For the next call, the field manager must again be set fSetFieldMgr= false; @@ -143,8 +145,10 @@ G4PropagatorInField::ComputeStep( } epsilon = GetDeltaOneStep() / CurrentProposedStepLength; // G4double raw_epsilon= epsilon; - if( epsilon < fEpsilonMin ) epsilon = fEpsilonMin; - if( epsilon > fEpsilonMax ) epsilon = fEpsilonMax; + G4double epsilonMin= fCurrentFieldMgr->GetMinimumEpsilonStep(); + G4double epsilonMax= fCurrentFieldMgr->GetMaximumEpsilonStep();; + if( epsilon < epsilonMin ) epsilon = epsilonMin; + if( epsilon > epsilonMax ) epsilon = epsilonMax; SetEpsilonStep( epsilon ); // G4cout << "G4PiF: Epsilon of current step - raw= " << raw_epsilon @@ -220,34 +224,31 @@ G4PropagatorInField::ComputeStep( fNavigator->LocateGlobalPointWithinVolume( SubStartPoint ); } - // First figure out how far to evolve the particle ! - // ------------------------------------------------- - // and (later) with what accuracy to calculate this path. + // How far to attempt to move the particle ! // h_TrialStepSize = CurrentProposedStepLength - StepTaken; - // Next evolve it as far as this allows. - // --------------------------------------- - // - // B <- Integrator - limited by the "chord miss" rule. + // Integrate as far as "chord miss" rule allows. // s_length_taken = GetChordFinder()->AdvanceChordLimited( CurrentState, // Position & velocity h_TrialStepSize, - fEpsilonStep); + fEpsilonStep, + fPreviousSftOrigin, + fPreviousSafety + ); + // CurrentState is now updated with the final position and velocity. fFull_CurveLen_of_LastAttempt = s_length_taken; - // On Exit: - // CurrentState is updated with the final position and velocity. - // G4ThreeVector EndPointB = CurrentState.GetPosition(); G4ThreeVector InterSectionPointE; G4double LinearStepLength; // Intersect chord AB with geometry - intersects= IntersectChord( SubStartPoint, EndPointB, NewSafety, - LinearStepLength, InterSectionPointE ); + intersects= IntersectChord( SubStartPoint, EndPointB, + NewSafety, LinearStepLength, + InterSectionPointE ); // E <- Intersection Point of chord AB and either volume A's surface // or a daughter volume's surface .. @@ -261,24 +262,27 @@ G4PropagatorInField::ComputeStep( // Find the intersection point of AB true path with the surface // of vol(A), if it exists. Start with point E as first "estimate". + G4bool recalculatedEndPt= false; G4bool found_intersection = LocateIntersectionPoint( SubStepStartState, CurrentState, - InterSectionPointE, IntersectPointVelct_G ); - // intersects = intersects & found_intersection; + InterSectionPointE, IntersectPointVelct_G, + recalculatedEndPt); + intersects = intersects && found_intersection; if( found_intersection ) { End_PointAndTangent= IntersectPointVelct_G; // G is our EndPoint ... - StepTaken = TruePathLength = IntersectPointVelct_G.GetCurveLength() + StepTaken = TruePathLength = IntersectPointVelct_G.GetCurveLength() - OriginalState.GetCurveLength(); } else { - intersects= false; // "Minor" chords do not intersect + // intersects= false; // "Minor" chords do not intersect + if( recalculatedEndPt ){ + CurrentState= IntersectPointVelct_G; + } } } if( !intersects ) { StepTaken += s_length_taken; - // Introducing smooth trajectory display (jacek 01/11/2002) - // The filter pointer holds a valid filter if and only if - // intermediate points should be stored. + // For smooth trajectory display (jacek 01/11/2002) if (fpTrajectoryFilter) { fpTrajectoryFilter->TakeIntermediatePoint(CurrentState.GetPosition()); } @@ -293,6 +297,16 @@ G4PropagatorInField::ComputeStep( NewSafety, do_loop_count, pPhysVol ); } #endif +#ifdef G4VERBOSE + if( (fVerboseLevel > 1) && (do_loop_count > fMax_loop_count-10 )) { + if( do_loop_count == fMax_loop_count-9 ){ + G4cout << "G4PropagatorInField::ComputeStep " + << " Difficult track - taking many sub steps." << G4endl; + } + printStatus( SubStepStartState, CurrentState, CurrentProposedStepLength, + NewSafety, do_loop_count, pPhysVol ); + } +#endif do_loop_count++; @@ -302,15 +316,19 @@ G4PropagatorInField::ComputeStep( if( do_loop_count >= fMax_loop_count ) { - G4cout << "G4PropagateInField: Warning: Particle is looping - " - << " tracking in field will be stopped. " << G4endl; -#ifdef G4VERBOSE - G4cout << " It has performed " << do_loop_count << " steps in Field " - << " while a maximum of " << GetMaxLoopCount() << " are allowed. " - << G4endl; -#endif - G4cerr << "G4PropagateInField: Warning: Looping particle. " << G4endl; fParticleIsLooping = true; + + if ( fVerboseLevel > 0 ){ + G4cout << "G4PropagateInField: Killing looping particle " + // << " of " << energy << " energy " + << " after " << do_loop_count << " field substeps " + << " totaling " << StepTaken / mm << " mm " ; + if( pPhysVol ) + G4cout << " in the volume " << pPhysVol->GetName() ; + else + G4cout << " in unknown or null volume. " ; + G4cout << G4endl; + } } if( !intersects ) @@ -341,6 +359,11 @@ G4PropagatorInField::ComputeStep( << " A difference of: " << OriginalState.GetCurveLength() + TruePathLength - End_PointAndTangent.GetCurveLength() << G4endl; + G4cerr << " Original state= " << OriginalState << G4endl + << " Proposed state= " << End_PointAndTangent << G4endl; + G4Exception("G4PropagatorInField::ComputeStep()", "IncorrectProposedEndPoint", + FatalException, + "Curve length mis-match between original state and proposed endpoint of propagation."); } #endif @@ -350,8 +373,8 @@ G4PropagatorInField::ComputeStep( // ZeroStepNumberHist[fNoZeroStep]++; if( fNoZeroStep > fActionThreshold_NoZeroSteps ){ G4cout << " PiF: Step returning=" << StepTaken << G4endl; - G4cout << " ------------------------------------------------------- " - << G4endl; + G4cout << " ------------------------------------------------------- " + << G4endl; } } #endif @@ -366,15 +389,23 @@ G4PropagatorInField::ComputeStep( fNoZeroStep = 0; if( fNoZeroStep > fAbandonThreshold_NoZeroSteps ) { + fParticleIsLooping = true; G4cout << " WARNING - G4PropagatorInField::ComputeStep():" << G4endl << " Zero progress for " << fNoZeroStep << " attempted steps." - << G4endl; + << G4endl; #ifdef G4VERBOSE - G4cout << " Particle that is stuck will be killed." << G4endl; + if ( fVerboseLevel > 2 ) + G4cout << " Particle that is stuck will be killed." << G4endl; #endif fNoZeroStep = 0; - fParticleIsLooping = true; } + +#ifdef G4VERBOSE + if ( fVerboseLevel > 3 ){ + G4cout << "G4PropagatorInField returns " << TruePathLength << G4endl; + } +#endif + return TruePathLength; } @@ -384,7 +415,8 @@ G4PropagatorInField::ComputeStep( // const G4FieldTrack& CurveStartPointVelocity, // A // const G4FieldTrack& CurveEndPointVelocity, // B // const G4ThreeVector& TrialPoint, // E -// G4FieldTrack& IntersectPointVelocity) // Output +// G4FieldTrack& IntersectedOrRecalculated // Output +// G4bool& recalculated) // Out // -------------------------------------------------------------------------- // // Function that returns the intersection of the true path with the surface @@ -402,8 +434,11 @@ G4PropagatorInField::ComputeStep( // Convention of Use : // i) If it returns "true", then IntersectionPointVelocity is set // to the approximate intersection point. -// ii) If it returns "false", no intersection was found and -// IntersectionPointVelocity is invalid. +// ii) If it returns "false", no intersection was found. +// The validity of IntersectedOrRecalculated depends on 'recalculated' +// a) if latter is false, then IntersectedOrRecalculated is invalid. +// b) if latter is true, then IntersectedOrRecalculated is +// the new endpoint, due to a re-integration. // -------------------------------------------------------------------------- G4bool @@ -411,7 +446,8 @@ G4PropagatorInField::LocateIntersectionPoint( const G4FieldTrack& CurveStartPointVelocity, // A const G4FieldTrack& CurveEndPointVelocity, // B const G4ThreeVector& TrialPoint, // E - G4FieldTrack& IntersectPointVelocity) // Output + G4FieldTrack& IntersectedOrRecalculatedFT, // Out: point found + G4bool& recalculatedEndPoint) // Out: { // Find Intersection Point ( A, B, E ) of true path AB - start at E. @@ -423,9 +459,15 @@ G4PropagatorInField::LocateIntersectionPoint( G4ThreeVector CurrentE_Point = TrialPoint; G4FieldTrack ApproxIntersecPointV(CurveEndPointVelocity); // FT-Def-Construct - G4double NewSafety; - G4bool first_step = true; + G4double NewSafety= -0.0; + G4bool final_section= true; // Shows whether current section is last (ie B=full end) + + recalculatedEndPoint= false; + + G4bool restoredFullEndpoint= false; + G4int substep_no = 0; + const G4int max_substeps= 100; do{ // REPEAT @@ -439,9 +481,8 @@ G4PropagatorInField::LocateIntersectionPoint( CurrentB_PointVelocity, CurrentE_Point, fEpsilonStep ); + // The above method is the key & most intuitive part ... - // The above function is the most difficult part ... - // G4ThreeVector CurrentF_Point= ApproxIntersecPointV.GetPosition(); // First check whether EF is small - then F is a good approx. point @@ -455,8 +496,8 @@ G4PropagatorInField::LocateIntersectionPoint( // Create the "point" return value // - IntersectPointVelocity = ApproxIntersecPointV; - IntersectPointVelocity.SetPosition( CurrentE_Point ); + IntersectedOrRecalculatedFT = ApproxIntersecPointV; + IntersectedOrRecalculatedFT.SetPosition( CurrentE_Point ); // Note: in order to return a point on the boundary, // we must return E. But it is F on the curve. @@ -470,21 +511,16 @@ G4PropagatorInField::LocateIntersectionPoint( { // Check whether any volumes are encountered by the chord AF // --------------------------------------------------------- - // First restore any Voxel etc information in the Navigator - // before calling ComputeStep -- not just if (!first_step) - + // First relocate to restore any Voxel etc information in the Navigator + // before calling ComputeStep fNavigator->LocateGlobalPointWithinVolume( Point_A ); - // This locate is needed in all cases except for the - // original point A, because - presumably - that was - // called at the start of the physical Step - first_step = false; G4ThreeVector PointG; // Candidate intersection point G4double stepLengthAF; G4bool Intersects_AF = IntersectChord( Point_A, CurrentF_Point, - NewSafety, stepLengthAF, - PointG - ); + NewSafety, stepLengthAF, + PointG + ); if( Intersects_AF ) { // G is our new Candidate for the intersection point. @@ -494,6 +530,19 @@ G4PropagatorInField::LocateIntersectionPoint( // E <- G CurrentB_PointVelocity = ApproxIntersecPointV; CurrentE_Point = PointG; + + // By moving point B, must take care if current AF has no intersection + // to try current FB!! + final_section= false; + +#ifdef G4VERBOSE + if( fVerboseLevel > 3 ){ + G4cout << "G4PiF::LI> Investigating intermediate point" + << " at s=" << ApproxIntersecPointV.GetCurveLength() + << " on way to full s=" << CurveEndPointVelocity.GetCurveLength() + << G4endl; + } +#endif } else // not Intersects_AF { @@ -502,14 +551,13 @@ G4PropagatorInField::LocateIntersectionPoint( // We must continue the search in the segment FB! fNavigator->LocateGlobalPointWithinVolume( CurrentF_Point ); - G4double stepLengthFB; - G4ThreeVector PointH; + G4double stepLengthFB; + G4ThreeVector PointH; // Check whether any volumes are encountered by the chord FB // --------------------------------------------------------- - G4bool Intersects_FB = - IntersectChord( CurrentF_Point, Point_B, - NewSafety, stepLengthFB, PointH ); - + G4bool Intersects_FB = + IntersectChord( CurrentF_Point, Point_B, + NewSafety, stepLengthFB, PointH ); if( Intersects_FB ) { // There is an intersection of FB with a volume boundary @@ -529,12 +577,19 @@ G4PropagatorInField::LocateIntersectionPoint( else // not Intersects_FB { // There is NO intersection of FB with a volume boundary - // This means that somehow a volume intersected the original - // chord but misses the chord (or series of chords) - // we have used. - // The value of IntersectPointVelocity returned is not valid - // - there_is_no_intersection = true; + if( final_section ){ + // If B is the original endpoint, this means that whatever volume(s) + // intersected the original chord, none touch the smaller chords + // we have used. + // The value of IntersectedOrRecalculatedFT returned is likely not valid + // + there_is_no_intersection = true; + }else{ + // We must restore the original endpoint + CurrentA_PointVelocity= CurrentB_PointVelocity; // We have got to B + CurrentB_PointVelocity= CurveEndPointVelocity; + restoredFullEndpoint = true; + } } // Endif (Intersects_FB) } // Endif (Intersects_AF) @@ -551,12 +606,19 @@ G4PropagatorInField::LocateIntersectionPoint( { // Re-integrate to obtain a new B // - G4FieldTrack newEndPoint= - ReEstimateEndpoint( CurrentA_PointVelocity, - CurrentB_PointVelocity, - linDistSq, // to avoid recalculation - curveDist ); - CurrentB_PointVelocity = newEndPoint; + G4FieldTrack newEndPointFT= + ReEstimateEndpoint( CurrentA_PointVelocity, + CurrentB_PointVelocity, + linDistSq, // to avoid recalculation + curveDist ); + G4FieldTrack oldPointVelB = CurrentB_PointVelocity; + CurrentB_PointVelocity = newEndPointFT; + + if( final_section ){ + recalculatedEndPoint= true; + IntersectedOrRecalculatedFT= newEndPointFT; // So that we can return it, + // if it is the endpoint! + } } if( curveDist < 0.0 ) { @@ -564,26 +626,39 @@ G4PropagatorInField::LocateIntersectionPoint( << "Error in advancing propagation." << G4endl; printStatus( CurrentA_PointVelocity, CurrentB_PointVelocity, -1.0, NewSafety, substep_no, 0); - G4cout << G4endl + G4cerr << G4endl << "The final curve point is not further along" << " than the original!" << G4endl; - G4Exception("ERROR - G4PropagatorInField::LocateIntersectionPoint()"); + G4Exception("G4PropagatorInField::LocateIntersectionPoint()", "FatalError", + FatalException, "Error in advancing propagation."); } + + if(restoredFullEndpoint) { + final_section= restoredFullEndpoint; + restoredFullEndpoint=false; + } + } // EndIf ( E is close enough to the curve, ie point F. ) // tests ChordAF_Vector.mag() <= maximum_lateral_displacement + } while ( ( ! found_approximate_intersection ) + && ( ! there_is_no_intersection ) + && ( substep_no++ < max_substeps) ); // UNTIL found or failed + #ifdef G4VERBOSE - if( Verbose() > 1 ) - printStatus( CurrentA_PointVelocity, CurrentB_PointVelocity, - -1.0, NewSafety, substep_no, 0); + if( substep_no >= max_substeps ) { + G4cerr << "Problem in G4PropagatorInField::LocateIntersectionPoint:" + << " Convergence is requiring too many substeps: " << substep_no; + G4cerr << " Will abandon effort to intersect. " << G4endl; + G4cerr << " Information on start & current step follows in cout: " << G4endl; + printStatus( CurrentA_PointVelocity, CurrentA_PointVelocity, + -1.0, NewSafety, 0, 0); + printStatus( CurrentA_PointVelocity, CurrentB_PointVelocity, + -1.0, NewSafety, substep_no, 0); + } #endif - substep_no++; - - } while ( ( ! found_approximate_intersection ) - && ( ! there_is_no_intersection ) ); // UNTIL found or failed - - return !there_is_no_intersection; // Success or failure + return !there_is_no_intersection; // Success or failure } /////////////////////////////////////////////////////////////////////////// @@ -598,7 +673,7 @@ G4PropagatorInField::printStatus( const G4FieldTrack& StartFT, G4int stepNo, G4VPhysicalVolume* startVolume) { - const G4int verboseLevel=1; + const G4int verboseLevel= fVerboseLevel; const G4ThreeVector StartPosition = StartFT.GetPosition(); const G4ThreeVector StartUnitVelocity = StartFT.GetMomentumDir(); const G4ThreeVector CurrentPosition = CurrentFT.GetPosition(); @@ -606,7 +681,8 @@ G4PropagatorInField::printStatus( const G4FieldTrack& StartFT, G4double step_len = CurrentFT.GetCurveLength() - StartFT.GetCurveLength(); - if( (stepNo == 0) && (verboseLevel <= 3) ) + if( ((stepNo == 0) && (verboseLevel <3)) + || (verboseLevel == 3) ) { static G4int noPrecision= 4; G4cout.precision(noPrecision); @@ -615,41 +691,42 @@ G4PropagatorInField::printStatus( const G4FieldTrack& StartFT, << std::setw( 25) << " Current Position and Direction" << " " << G4endl; G4cout << std::setw( 5) << "Step#" << " " - << std::setw( 9) << "X(mm)" << " " - << std::setw( 9) << "Y(mm)" << " " - << std::setw( 9) << "Z(mm)" << " " + << std::setw(10) << "X(mm)" << " " + << std::setw(10) << "Y(mm)" << " " + << std::setw(10) << "Z(mm)" << " " << std::setw( 7) << " N_x " << " " << std::setw( 7) << " N_y " << " " << std::setw( 7) << " N_z " << " " << std::setw( 9) << "StepLen" << " " - << std::setw(12) << "PhsStep" << " " << std::setw(12) << "StartSafety" << " " + << std::setw( 9) << "PhsStep" << " " << std::setw(18) << "NextVolume" << " " << G4endl; - + } + if((stepNo == 0) && (verboseLevel <=3)){ // Recurse to print the start values // printStatus( StartFT, StartFT, -1.0, safety, -1, startVolume); } if( verboseLevel <= 3 ) { - G4cout.precision(3); + G4cout.precision(8); if( stepNo >= 0) G4cout << std::setw( 5) << stepNo << " "; else G4cout << std::setw( 5) << "Start" << " "; - G4cout << std::setw( 9) << CurrentPosition.x() << " " - << std::setw( 9) << CurrentPosition.y() << " " - << std::setw( 9) << CurrentPosition.z() << " " + G4cout << std::setw(10) << CurrentPosition.x() << " " + << std::setw(10) << CurrentPosition.y() << " " + << std::setw(10) << CurrentPosition.z() << " " << std::setw( 7) << CurrentUnitVelocity.x() << " " << std::setw( 7) << CurrentUnitVelocity.y() << " " << std::setw( 7) << CurrentUnitVelocity.z() << " "; G4cout << std::setw( 9) << step_len << " "; - if( requestStep != -1.0 ) - G4cout << std::setw( 12) << requestStep << " "; - else - G4cout << std::setw( 12) << "InitialStep" << " "; G4cout << std::setw(12) << safety << " "; + if( requestStep != -1.0 ) + G4cout << std::setw( 9) << requestStep << " "; + else + G4cout << std::setw( 9) << "Init/NotKnown" << " "; if( startVolume != 0) { @@ -701,11 +778,11 @@ G4PropagatorInField::PrintStepLengthDiagnostic( G4bool G4PropagatorInField::IntersectChord( G4ThreeVector StartPointA, - G4ThreeVector EndPointB, - G4double &NewSafety, - G4double &LinearStepLength, - G4ThreeVector &IntersectionPoint - ) + G4ThreeVector EndPointB, + G4double &NewSafety, + G4double &LinearStepLength, + G4ThreeVector &IntersectionPoint + ) { // Calculate the direction and length of the chord AB G4ThreeVector ChordAB_Vector = EndPointB - StartPointA; @@ -720,12 +797,12 @@ G4PropagatorInField::IntersectChord( G4ThreeVector StartPointA, if( MagSqShift >= sqr(fPreviousSafety) ) { - currentSafety = 0.0 ; + currentSafety = 0.0 ; }else{ - currentSafety = fPreviousSafety - sqrt(MagSqShift) ; + currentSafety = fPreviousSafety - sqrt(MagSqShift) ; } - if( ChordAB_Length <= currentSafety ) + if( fUseSafetyForOptimisation && (ChordAB_Length <= currentSafety) ) { // The Step is guaranteed to be taken @@ -762,49 +839,74 @@ G4PropagatorInField::IntersectChord( G4ThreeVector StartPointA, // StartPointA, EndPointB, LinearStepLength, IntersectionPoint, NewSafety G4cout << "Start=" << std::setw(12) << StartPointA << " " - << "End= " << std::setw(8) << EndPointB << " " - << "StepIn=" << std::setw(8) << LinearStepLength << " " - << "NewSft=" << std::setw(8) << NewSafety - << "NavCall" << doCallNav << " " - << "In T/F " << intersects << " " - << "IntrPt=" << std::setw(8) << IntersectionPoint << " " - << G4endl; + << "End= " << std::setw(8) << EndPointB << " " + << "StepIn=" << std::setw(8) << LinearStepLength << " " + << "NewSft=" << std::setw(8) << NewSafety + << "NavCall" << doCallNav << " " + << "In T/F " << intersects << " " + << "IntrPt=" << std::setw(8) << IntersectionPoint << " " + << G4endl; #endif return intersects; } + + G4FieldTrack G4PropagatorInField:: ReEstimateEndpoint( const G4FieldTrack &CurrentStateA, - const G4FieldTrack &EstimatedEndStateB, - double linearDistSq, - double curveDist - ) + const G4FieldTrack &EstimatedEndStateB, + G4double linearDistSq, + G4double curveDist + ) { G4FieldTrack newEndPoint( CurrentStateA ); - GetChordFinder()->GetIntegrationDriver() - ->AccurateAdvance(newEndPoint, curveDist, fEpsilonStep); - // EstimatedEndStateB = newEndpoint; + G4MagInt_Driver* integrDriver= GetChordFinder()->GetIntegrationDriver(); + + G4bool goodAdvance= + integrDriver->AccurateAdvance(newEndPoint, curveDist, fEpsilonStep); + + if( !goodAdvance ) { + newEndPoint= EstimatedEndStateB; // Could not improve without major work !! + + if( fVerboseLevel >= 3 ){ + G4cout << "G4PropagatorInField::ReEstimateEndpoint> AccurateAdvance failed!" << G4endl; + G4cout << " went only " << newEndPoint.GetCurveLength() - CurrentStateA.GetCurveLength() + << " instead of " << curveDist << G4endl; + G4cout << " G4PropagatorInField::ReEstimateEndpoint> Reset endPoint to original value!" << G4endl; + } + } #ifdef G4DEBUG_FIELD static G4int noInaccuracyWarnings = 0; G4int maxNoWarnings = 10; if ( (noInaccuracyWarnings < maxNoWarnings ) - || (Verbose() > 1) ) + || (fVerboseLevel > 1) ) { G4cerr << "G4PropagatorInField::LocateIntersectionPoint():" - << G4endl - << " Warning: Integration inaccuracy requires" - << " an adjustment in the step's endpoint." << G4endl - << " Two mid-points are further apart than their" - << " curve length difference" << G4endl - << " Dist = " << sqrt(linearDistSq) - << " curve length = " << curveDist << G4endl; + << G4endl + << " Warning: Integration inaccuracy requires" + << " an adjustment in the step's endpoint." << G4endl + << " Two mid-points are further apart than their" + << " curve length difference" << G4endl + << " Dist = " << sqrt(linearDistSq) + << " curve length = " << curveDist << G4endl; G4cerr << " Correction applied is " - << (newEndPoint.GetPosition()-EstimatedEndStateB.GetPosition()).mag() - << G4endl; + << (newEndPoint.GetPosition()-EstimatedEndStateB.GetPosition()).mag() + << G4endl; } +#else + // Statistics on the RMS value of the corrections + static G4int noCorrections=0; + static G4double sumCorrectionsSq = 0; + noCorrections++; + if( goodAdvance ){ + sumCorrectionsSq += (EstimatedEndStateB.GetPosition() - + newEndPoint.GetPosition()).mag2(); + } + linearDistSq -= curveDist; // To use linearDistSq ... ! #endif + return newEndPoint; } @@ -837,8 +939,8 @@ G4PropagatorInField::SetTrajectoryFilter(G4VCurvedTrajectoryFilter* filter) { void G4PropagatorInField::ClearPropagatorState() { - G4Exception("G4PropagatorInField::ClearPropagatorState is not yet implemented"); - + G4Exception("G4PropagatorInField::ClearPropagatorState()", "NotImplemented", + FatalException, "Functionality not yet implemented."); } G4FieldManager* diff --git a/source/geometry/volumes/src/G4ReplicaNavigation.cc b/source/geometry/navigation/src/G4ReplicaNavigation.cc similarity index 97% rename from source/geometry/volumes/src/G4ReplicaNavigation.cc rename to source/geometry/navigation/src/G4ReplicaNavigation.cc index 1676898850..fd663ded73 100644 --- a/source/geometry/volumes/src/G4ReplicaNavigation.cc +++ b/source/geometry/navigation/src/G4ReplicaNavigation.cc @@ -21,18 +21,23 @@ // ******************************************************************** // // -// $Id: G4ReplicaNavigation.cc,v 1.12 2003/03/31 14:39:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ReplicaNavigation.cc,v 1.3 2003/11/03 17:15:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ReplicaNavigation Implementation // // Author: P.Kent, 1996 // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4ReplicaNavigation.hh" +#include "G4AffineTransform.hh" +#include "G4SmartVoxelProxy.hh" +#include "G4SmartVoxelNode.hh" +#include "G4VSolid.hh" + #include // ******************************************************************** @@ -143,7 +148,8 @@ G4ReplicaNavigation::Inside(const G4VPhysicalVolume *pVol, } break; default: - G4Exception("ERROR - G4ReplicaNavigation::Inside(). Unknown axis!"); + G4Exception("G4ReplicaNavigation::Inside()", "WrongArgumentValue", + FatalException, "Unknown axis!"); break; } return in; @@ -207,7 +213,8 @@ G4ReplicaNavigation::DistanceToOut(const G4VPhysicalVolume *pVol, } break; default: - G4Exception("ERROR - G4ReplicaNavigation::DistanceToOut(). Unknown axis!"); + G4Exception("G4ReplicaNavigation::DistanceToOut()", "WrongArgumentValue", + FatalException, "Unknown axis!"); break; } return (safety >= kCarTolerance) ? safety : 0; @@ -264,7 +271,8 @@ G4ReplicaNavigation::DistanceToOut(const G4VPhysicalVolume *pVol, Dist=DistanceToOutRad(localPoint,localDirection,width,offset,replicaNo); break; default: - G4Exception("ERROR - G4ReplicaNavigation::DistanceToOut(). Unknown axis!"); + G4Exception("G4ReplicaNavigation::DistanceToOut()", "WrongArgumentValue", + FatalException, "Unknown axis!"); break; } return Dist; @@ -369,7 +377,7 @@ G4ReplicaNavigation::DistanceToOutPhi(const G4ThreeVector &localPoint, } else { - Dist = kInfinity; + Dist = kInfinity; } } else @@ -781,7 +789,6 @@ G4ReplicaNavigation::ComputeStep(const G4ThreeVector &globalPoint, samplePhysical = repLogical->GetDaughter(sampleNo); if ( samplePhysical!=blockedExitedVol ) { - samplePhysical->Setup(repPhysical); G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); @@ -887,7 +894,6 @@ G4ReplicaNavigation::ComputeSafety(const G4ThreeVector &globalPoint, samplePhysical = repLogical->GetDaughter(sampleNo); if ( samplePhysical!=blockedExitedVol ) { - samplePhysical->Setup(repPhysical); G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); @@ -942,7 +948,8 @@ G4ReplicaNavigation::BackLocate(G4NavigationHistory &history, // This is an error, as the World volume must be a Placement // G4cerr << "The World volume must be a Placement!" << G4endl; - G4Exception("ERROR - G4ReplicaNavigation::BackLocate()"); + G4Exception("G4ReplicaNavigation::BackLocate()", "InvalidSetup", + FatalException, "The World volume must be a Placement!"); } motherSolid = pNRMother->GetLogicalVolume()->GetSolid(); diff --git a/source/geometry/volumes/src/G4TransportationManager.cc b/source/geometry/navigation/src/G4TransportationManager.cc similarity index 85% rename from source/geometry/volumes/src/G4TransportationManager.cc rename to source/geometry/navigation/src/G4TransportationManager.cc index 1e8d16b541..be0407a59b 100644 --- a/source/geometry/volumes/src/G4TransportationManager.cc +++ b/source/geometry/navigation/src/G4TransportationManager.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4TransportationManager.cc,v 1.12 2003/06/13 09:27:34 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TransportationManager.cc,v 1.4 2003/12/05 17:08:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4TransportationManager // // Author: J.Apostolakis (John.Apostolakis@cern.ch), 1997 // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4TransportationManager.hh" @@ -37,13 +37,6 @@ #include "G4PropagatorInField.hh" #include "G4FieldManager.hh" -// Ensures correct order of construction and destruption of static objects. -// -#include "G4NavigationLevel.hh" - -G4Allocator aNavigationLevelAllocator; -G4Allocator aNavigLevelRepAllocator; - G4TransportationManager* G4TransportationManager::fTransportationManager=0; G4TransportationManager::G4TransportationManager() @@ -60,7 +53,9 @@ G4TransportationManager::G4TransportationManager() { G4cerr << "Only ONE instance of G4TransportationManager is allowed!" << G4endl; - G4Exception("ERROR - G4TransportationManager::G4TransportationManager()"); + G4Exception("G4TransportationManager::G4TransportationManager()", + "InvalidSetup", FatalException, + "Only ONE instance of G4TransportationManager is allowed!"); } } diff --git a/source/geometry/volumes/src/G4VoxelNavigation.cc b/source/geometry/navigation/src/G4VoxelNavigation.cc similarity index 98% rename from source/geometry/volumes/src/G4VoxelNavigation.cc rename to source/geometry/navigation/src/G4VoxelNavigation.cc index 47c889e97e..04f466f399 100644 --- a/source/geometry/volumes/src/G4VoxelNavigation.cc +++ b/source/geometry/navigation/src/G4VoxelNavigation.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4VoxelNavigation.cc,v 1.14 2003/06/16 16:55:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VoxelNavigation.cc,v 1.2 2003/11/03 17:15:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4VoxelNavigation Implementation // // Author: P.Kent, 1996 // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4VoxelNavigation.hh" @@ -139,7 +139,6 @@ G4VoxelNavigation::ComputeStep( const G4ThreeVector& localPoint, samplePhysical = motherLogical->GetDaughter(sampleNo); if ( samplePhysical!=blockedExitedVol ) { - samplePhysical->Setup(motherPhysical); G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); @@ -540,7 +539,6 @@ G4VoxelNavigation::ComputeSafety(const G4ThreeVector& localPoint, sampleNo = curVoxelNode->GetVolume(contentNo); samplePhysical = motherLogical->GetDaughter(sampleNo); - samplePhysical->Setup(motherPhysical); G4AffineTransform sampleTf(samplePhysical->GetRotation(), samplePhysical->GetTranslation()); sampleTf.Invert(); diff --git a/source/geometry/solids/BREPS/History b/source/geometry/solids/BREPS/History index c305a19cc6..87e6537be4 100644 --- a/source/geometry/solids/BREPS/History +++ b/source/geometry/solids/BREPS/History @@ -1,4 +1,4 @@ -$Id: History,v 1.51 2003/06/04 16:00:33 gcosmo Exp $ +$Id: History,v 1.53 2003/10/28 13:42:28 gcosmo Exp $ ---------------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +28/10/2003 : G. Cosmo breps-V05-02-01 +- Migrated to use new G4Exception scheme. + +30/09/2003 : G. Cosmo breps-V05-02-00 +- Archived unit tests for STEP. + 04/06/2003 : G. Cosmo breps-V05-01-01 - Fixes for inclusion of in G4BREPSolidPCone.cc in view of the g4std wrappers migration. diff --git a/source/geometry/solids/BREPS/include/G4Assembly.hh b/source/geometry/solids/BREPS/include/G4Assembly.hh index dd37158a40..e2ddf778b9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Assembly diff --git a/source/geometry/solids/BREPS/include/G4Assembly.icc b/source/geometry/solids/BREPS/include/G4Assembly.icc index 62711c46b4..201d85e889 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0c6dd6d3f4..04dc547b25 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Axis2Placement3D diff --git a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc index 3529123c98..a1f6599c3e 100644 --- a/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc +++ b/source/geometry/solids/BREPS/include/G4Axis2Placement3D.icc @@ -22,7 +22,7 @@ // // // $Id: G4Axis2Placement3D.icc,v 1.7 2001/07/20 11:52:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.hh b/source/geometry/solids/BREPS/include/G4BREPSolid.hh index cba26f4f26..180d95ce62 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolid.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolid.hh,v 1.11 2003/06/16 16:52:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolid diff --git a/source/geometry/solids/BREPS/include/G4BREPSolid.icc b/source/geometry/solids/BREPS/include/G4BREPSolid.icc index f2fb8666fb..3aab12ff8b 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.4 2001/07/11 09:59:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 05218474d3..d67e0370a7 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidBox.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidBox.hh,v 1.7 2003/06/16 16:52:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidBox diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh index 0345af8e89..1a24d88da8 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidCone.hh,v 1.9 2003/06/16 16:52:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCone diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh index 7f1fc92eee..a0764e2d0c 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidCylinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidCylinder.hh,v 1.8 2003/06/16 16:52:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidCylinder diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh index 31f487e62e..7cf12f090c 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidOpenPCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidOpenPCone.hh,v 1.7 2003/06/16 16:52:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidOpenPCone diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh index 36367d5828..ce3e58f4eb 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidPCone.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidPCone.hh,v 1.12 2003/06/16 16:52:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPCone diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh index 87b3749c6b..0fa7ee616a 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidPolyhedra.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidPolyhedra.hh,v 1.12 2003/06/16 16:52:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidPolyhedra diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh index 028fa2e094..d572903721 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidSphere.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidSphere.hh,v 1.9 2003/06/16 16:52:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidSphere diff --git a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh index dad1839b27..a50a5b0927 100644 --- a/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh +++ b/source/geometry/solids/BREPS/include/G4BREPSolidTorus.hh @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidTorus.hh,v 1.8 2003/06/16 16:52:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BREPSolidTorus diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.hh b/source/geometry/solids/BREPS/include/G4BSplineCurve.hh index 59daa12fae..868d43846d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurve diff --git a/source/geometry/solids/BREPS/include/G4BSplineCurve.icc b/source/geometry/solids/BREPS/include/G4BSplineCurve.icc index 292a3e2d78..7bb6a53d32 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2333b08a34..3df0e7573b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineCurveWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.hh b/source/geometry/solids/BREPS/include/G4BSplineSurface.hh index b95155f328..75b49376cf 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurface diff --git a/source/geometry/solids/BREPS/include/G4BSplineSurface.icc b/source/geometry/solids/BREPS/include/G4BSplineSurface.icc index 16f4fe4c96..0ddf4b9cd3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 edede7dd71..aaf9495ba5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BSplineSurfaceWithKnots diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.hh b/source/geometry/solids/BREPS/include/G4BezierSurface.hh index 96270b15c1..ba862157de 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4BezierSurface.icc b/source/geometry/solids/BREPS/include/G4BezierSurface.icc index 93a7048183..51f2109f39 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 222f431176..0df0367532 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BoundingBox3D diff --git a/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc b/source/geometry/solids/BREPS/include/G4BoundingBox3D.icc index 1b8dd148a1..820b9559e5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f48bd9a13e..3ce63ef17e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CircularCurve diff --git a/source/geometry/solids/BREPS/include/G4CircularCurve.icc b/source/geometry/solids/BREPS/include/G4CircularCurve.icc index 27f7100691..c2ee51bf59 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b1933266ca..bf0232c752 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CompositeCurve diff --git a/source/geometry/solids/BREPS/include/G4CompositeCurve.icc b/source/geometry/solids/BREPS/include/G4CompositeCurve.icc index 2556b076d8..fd8dcf7753 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 c49ddf9139..f17de9605e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Conic diff --git a/source/geometry/solids/BREPS/include/G4Conic.icc b/source/geometry/solids/BREPS/include/G4Conic.icc index 2b859ac92b..38df7709ce 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 64b6502d92..d087fe9e29 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4ConicalSurface.icc b/source/geometry/solids/BREPS/include/G4ConicalSurface.icc index fa8b82b12c..ea96ac03b9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 162f93cc40..04dbc090d3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ControlPoints diff --git a/source/geometry/solids/BREPS/include/G4ControlPoints.icc b/source/geometry/solids/BREPS/include/G4ControlPoints.icc index 610ad9559f..58ef1e035e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 177ddfa26e..9c34855554 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ConvexHull diff --git a/source/geometry/solids/BREPS/include/G4Curve.hh b/source/geometry/solids/BREPS/include/G4Curve.hh index d3fadc8ed2..368adc8e15 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Curve diff --git a/source/geometry/solids/BREPS/include/G4Curve.icc b/source/geometry/solids/BREPS/include/G4Curve.icc index 55568c9bd6..7a0ac8ff0f 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.5 2001/07/11 09:59:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 721faed4ea..2dc73ff9ae 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CurvePoint diff --git a/source/geometry/solids/BREPS/include/G4CurvePoint.icc b/source/geometry/solids/BREPS/include/G4CurvePoint.icc index 301f81677d..358b7eef63 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7f5c67d320..01f7ba2931 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CurveRayIntersection diff --git a/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc b/source/geometry/solids/BREPS/include/G4CurveRayIntersection.icc index 99fa7dd6ad..721c8d4f1b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7c7622584c..1554838a18 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CurveVector diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh b/source/geometry/solids/BREPS/include/G4CylindricalSurface.hh index 0b137d6ec8..de0493186f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4CylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4CylindricalSurface.icc index 7c6076c7fe..8a7c56e1c4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e4db71df2a..ea7d62ecd2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Ellipse diff --git a/source/geometry/solids/BREPS/include/G4Ellipse.icc b/source/geometry/solids/BREPS/include/G4Ellipse.icc index ec477c9147..62982a1dba 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.6 2001/07/11 09:59:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 58b137df0d..7dab46c8e6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4FConicalSurface diff --git a/source/geometry/solids/BREPS/include/G4FConicalSurface.icc b/source/geometry/solids/BREPS/include/G4FConicalSurface.icc index 866f31268d..c63cef347f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e003449eaf..49bf0482de 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4FCylindricalSurface diff --git a/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc b/source/geometry/solids/BREPS/include/G4FCylindricalSurface.icc index 0b51c5908d..c3b2a397b1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 329f95a6ec..f35b78e6d2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4FPlane diff --git a/source/geometry/solids/BREPS/include/G4FPlane.icc b/source/geometry/solids/BREPS/include/G4FPlane.icc index 3e34757183..bd4965d527 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 5a31b77d9d..058212a920 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 8af2c09189..fd79747ebd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Hyperbola diff --git a/source/geometry/solids/BREPS/include/G4Hyperbola.icc b/source/geometry/solids/BREPS/include/G4Hyperbola.icc index 822034b7c9..257c6054c5 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.7 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 40f6939709..391afe8348 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.7 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4KnotVector diff --git a/source/geometry/solids/BREPS/include/G4KnotVector.icc b/source/geometry/solids/BREPS/include/G4KnotVector.icc index 94a6981a84..73b75955bb 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.3 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 ba999e4183..156f2ad78e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Line diff --git a/source/geometry/solids/BREPS/include/G4Line.icc b/source/geometry/solids/BREPS/include/G4Line.icc index dc7fd138be..bc8b016093 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.7 2001/07/11 09:59:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 478edb1257..d832285879 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4OsloMatrix diff --git a/source/geometry/solids/BREPS/include/G4OsloMatrix.icc b/source/geometry/solids/BREPS/include/G4OsloMatrix.icc index d6ff893d8d..cacd66ff22 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7855af7a97..008a38429c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Parabola diff --git a/source/geometry/solids/BREPS/include/G4Parabola.icc b/source/geometry/solids/BREPS/include/G4Parabola.icc index 17e46ae163..81ecf813cb 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.6 2001/07/11 09:59:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9b18dcbfa5..2cfd3ceb6e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4PlacedSolid diff --git a/source/geometry/solids/BREPS/include/G4PlacedSolid.icc b/source/geometry/solids/BREPS/include/G4PlacedSolid.icc index 2f61067ead..61dcc1ee19 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 1c689b9c1c..dc0cfdbc94 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4PlacementVector diff --git a/source/geometry/solids/BREPS/include/G4Plane.hh b/source/geometry/solids/BREPS/include/G4Plane.hh index e001358777..5b7bdcf6c0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Plane diff --git a/source/geometry/solids/BREPS/include/G4Point3DVector.hh b/source/geometry/solids/BREPS/include/G4Point3DVector.hh index 2910161932..f19654874a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Point3DVector diff --git a/source/geometry/solids/BREPS/include/G4PointRat.hh b/source/geometry/solids/BREPS/include/G4PointRat.hh index 3da38e7453..9dade31cc4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4PointRat diff --git a/source/geometry/solids/BREPS/include/G4PointRat.icc b/source/geometry/solids/BREPS/include/G4PointRat.icc index 15d5f3431e..4742c1957c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 fe701148c6..c3b2cdc5c6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ProjectedSurface diff --git a/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc b/source/geometry/solids/BREPS/include/G4ProjectedSurface.icc index 1db571ab31..8059eaedc9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e192a224cc..91a0b0084c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Ray diff --git a/source/geometry/solids/BREPS/include/G4Ray.icc b/source/geometry/solids/BREPS/include/G4Ray.icc index fa9c68077d..a4c009d561 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 5e6b48d764..1d5ceaddb6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4BezierSurface diff --git a/source/geometry/solids/BREPS/include/G4STEPEntity.hh b/source/geometry/solids/BREPS/include/G4STEPEntity.hh index 79ec35d561..e1e22d22a9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4STEPEntity diff --git a/source/geometry/solids/BREPS/include/G4Sort.hh b/source/geometry/solids/BREPS/include/G4Sort.hh index 29b716d353..e72a4a6c64 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.hh b/source/geometry/solids/BREPS/include/G4SphericalSurface.hh index 35ee7dfd1b..78e1b1c8b4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4SphericalSurface diff --git a/source/geometry/solids/BREPS/include/G4SphericalSurface.icc b/source/geometry/solids/BREPS/include/G4SphericalSurface.icc index c4880ea997..df27a2eac9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 c73396c9f9..879d91f079 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4Surface diff --git a/source/geometry/solids/BREPS/include/G4Surface.icc b/source/geometry/solids/BREPS/include/G4Surface.icc index 5002c9b1a6..b99dc92508 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f19027e298..6917253ea9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceBoundary diff --git a/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc b/source/geometry/solids/BREPS/include/G4SurfaceBoundary.icc index 221c6c72c0..a6964fdc9b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a9de871034..71b9281992 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceList diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfLinearExtrusion.hh index 99077728b9..85675d6d52 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfLinearExtrusion diff --git a/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh b/source/geometry/solids/BREPS/include/G4SurfaceOfRevolution.hh index c43531cc2e..f107f650a2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4SurfaceOfRevolution diff --git a/source/geometry/solids/BREPS/include/G4ThreeMat.hh b/source/geometry/solids/BREPS/include/G4ThreeMat.hh index f336453f4d..d3cbb80163 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ThreeMat diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh b/source/geometry/solids/BREPS/include/G4ToroidalSurface.hh index 83b20809f2..879d75924c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ToroidalSurface diff --git a/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc b/source/geometry/solids/BREPS/include/G4ToroidalSurface.icc index f03cfa01e4..7e91fe3698 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 c389375cf1..1fd6ff7c03 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4UVHit diff --git a/source/geometry/solids/BREPS/src/G4Assembly.cc b/source/geometry/solids/BREPS/src/G4Assembly.cc index 315895cb62..419c6591b6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7d5cdde39c..318325d626 100644 --- a/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc +++ b/source/geometry/solids/BREPS/src/G4Axis2Placement3D.cc @@ -22,7 +22,7 @@ // // // $Id: G4Axis2Placement3D.cc,v 1.6 2001/07/11 09:59:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 ff432c8292..98265bffe9 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.24 2003/06/16 16:52:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BREPSolid.cc,v 1.25 2003/10/28 13:42:29 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -726,7 +726,8 @@ G4BREPSolid::CreateRotatedVertices(const G4AffineTransform& pTransform) const } else { - G4Exception("G4BREPSolid::CreateRotatedVertices Out of memory - Cannot alloc vertices"); + G4Exception("G4BREPSolid::CreateRotatedVertices()", "FatalError", + FatalException, "Out of memory - Cannot allocate vertices!"); } return vertices; } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc index e1e01510ad..84af5e8049 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidBox.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidBox.cc,v 1.8 2003/06/16 16:52:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc index 2113cc4219..611de7578c 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCone.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BREPSolidCone.cc,v 1.12 2003/06/16 16:52:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc index bd31385351..33b6c61113 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidCylinder.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4BREPSolidCylinder.cc,v 1.9 2003/06/16 16:52:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc index 999036421f..d2b404b1b7 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidOpenPCone.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidOpenPCone.cc,v 1.8 2003/06/16 16:52:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPCone.cc index 15f8069245..803a1c9857 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.32 2003/06/16 16:52:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BREPSolidPCone.cc,v 1.33 2003/10/28 13:42:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -80,8 +80,11 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, // At the moment (11/03/2002) the phi section is not implemented // so we take a G4 application down if there is a request for such // a configuration - if( opening_angle < 2*pi-perMillion ) { - G4Exception( "G4BREPSolidPCone::G4BREPSolidPCone() - phi section not supported yet, try to use G4Polycone instead!\a\n" ); + if( opening_angle < 2*pi-perMillion ) + { + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone()", + "NotImplemented", FatalException, + "Sorry, phi-section not supported yet, try to use G4Polycone instead!"); } /////////////////////////////////////////////////// @@ -91,21 +94,29 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, // when RMIN[0] or RMIN[num_z_planes-1] are = 0 if( ((RMIN[0] == 0) && (RMAX[0] == 0)) || ((RMIN[num_z_planes-1] == 0) && (RMAX[num_z_planes-1] == 0)) ) - G4Exception("G4BREPSolidPCone::G4BREPSolidPCone() - RMIN at the extremities cannot be 0 when RMAX = 0 !"); + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone()", + "InvalidSetup", FatalException, + "RMIN at the extremities cannot be 0 when RMAX=0 !"); // only RMAX[0] and RMAX[num_z_planes-1] can be = 0 for(a = 1; a < num_z_planes-1; a++) if (RMAX[a] == 0) - G4Exception("G4BREPSolidPCone::G4BREPSolidPCone() - RMAX inside the solid cannot be 0 !"); + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone()", + "InvalidSetup", FatalException, + "RMAX inside the solid cannot be 0 !"); // RMAX[a] must be greater than RMIN[a] for(a = 1; a < num_z_planes-1; a++) if (RMIN[a] >= RMAX[a]) - G4Exception("G4BREPSolidPCone::G4BREPSolidPCone() - RMAX must be greater than RMIN in the middle Z planes !"); + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone()", + "InvalidSetup", FatalException, + "RMAX must be greater than RMIN in the middle Z planes !"); if( (RMIN[num_z_planes-1] > RMAX[num_z_planes-1] ) || (RMIN[0] > RMAX[0]) ) - G4Exception("G4BREPSolidPCone::G4BREPSolidPCone() - RMAX must be greater or equal than RMIN at the ends !"); + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone()", + "InvalidSetup", FatalException, + "RMAX must be greater or equal than RMIN at the ends !"); // Create surfaces for( a = 0; a < sections; a++) @@ -154,10 +165,13 @@ G4BREPSolidPCone::G4BREPSolidPCone(const G4String& name, if( RMIN[a] > RMAX[a+1] || RMAX[a] < RMIN[a+1] ) { char msgbuf[512]; std::ostrstream os(msgbuf,512); - os << G4endl << "G4BREPSolidPCone::G4BREPSolidPCone() - The values " - << "of RMIN[" << a << "] & RMAX[" << a+1 << "] or RMAX[" << a << "] & RMIN[" << a+1 << "] " - << "make an invalid configuration of G4BREPSolidPCone " << name.c_str() << "!" << G4endl; - G4Exception( msgbuf ); + 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; + G4Exception("G4BREPSolidPCone::G4BREPSolidPCone()", + "InvalidSetup", FatalException, msgbuf ); } ESurfaceSense UpSurfSense, LowSurfSense; diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc b/source/geometry/solids/BREPS/src/G4BREPSolidPolyhedra.cc index fbbcd55324..5dbbfe2e83 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.25 2003/06/16 16:52:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BREPSolidPolyhedra.cc,v 1.26 2003/10/28 13:42:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -101,18 +101,24 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, // Detecting minimal required number of sides if( sides < 3 ) { - G4Exception( "\nG4BREPSolidPolyhedra must have at least 3 sides!\a\n" ); + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "InvalidSetup", FatalException, + "The solid must have at least 3 sides!" ); } // Detecting minimal required number of z-sections if( num_z_planes < 2 ) { - G4Exception( "\nG4BREPSolidPolyhedra must have at least 2 z-sections!\a\n" ); + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "InvalidSetup", FatalException, + "The solid must have at least 2 z-sections!" ); } // Detect invalid configurations at the ends of polyhedra which would not lead to // a valid solid creation and likely to a crash if( z_values[0] == z_values[1] || z_values[sections-1] == z_values[sections] ) { - G4Exception( "\nG4BREPSolidPolyhedra must have the first 2 and the last 2 z-values different!\a\n" ); + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "InvalidSetup", FatalException, + "The solid must have the first 2 and the last 2 z-values different!" ); } // Find out how the z-values sequence is ordered @@ -135,11 +141,14 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, // ERROR! Invalid sequence of z-values std::ostrstream msgstr; msgstr << G4endl - << "ERROR: The unordered, non-increasing or non-decreasing sequence of z_values detected!\a" + << "ERROR: unordered, non-increasing or non-decreasing sequence" << G4endl - << "Check z_values with indexes: " - << idx << " " << (idx+1) << G4endl << std::ends; - G4Exception( msgstr.str() ); + << " of z_values detected!" + << G4endl + << " Check z_values with indexes: " + << idx << " " << (idx+1) << "." << G4endl << std::ends; + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "InvalidSetup", FatalException, msgstr.str() ); } } /////////////////////////////////////////////////// @@ -182,11 +191,15 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, // ERROR! The surface conflict! std::ostrstream msgstr; msgstr << G4endl - << "ERROR: The unordered sequence of z_values detected with conflicting RMAX or RMIN values!\a" + << "ERROR: unordered sequence of z_values detected with" << G4endl - << "Check z_values with indexes: " - << (idx-1) << " " << idx << " " << (idx+1) << G4endl << std::ends; - G4Exception( msgstr.str() ); + << " conflicting RMAX or RMIN values!" + << G4endl + << " Check z_values with indexes: " + << (idx-1) << " " << idx << " " << (idx+1) << "." + << G4endl << std::ends; + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "InvalidSetup", FatalException, msgstr.str() ); } } } @@ -254,7 +267,9 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, TmpAxis, PartAngle, ENormal ); } else { // Two consecutive RMAX values can't be zero as it's against the definition of BREP polyhedra - G4Exception( "\nTwo consecutive RMAX values can't be zero!\n" ); + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "InvalidSetup", FatalException, + "Two consecutive RMAX values cannot be zero!" ); } Count++; @@ -302,10 +317,12 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, // where i in in interval 0 < i < num_z_planes-1. So: if( RMIN[a] > RMAX[a+1] || RMAX[a] < RMIN[a+1] ) { std::strstream s; - s << G4endl << "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra() - The values " - << "of RMIN[" << a << "] & RMAX[" << a+1 << "] or RMAX[" << a << "] & RMIN[" << a+1 << "] " - << "make an invalid configuration of G4BREPSolidPolyhedra " << name.c_str() << "!" << G4endl << std::ends; - G4Exception( s.str() ); + 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; + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "InvalidSetup", FatalException, s.str() ); } // We need to clasify all the cases in order to figure out the planar surface sense @@ -408,9 +425,16 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, SurfSense = EInverse; } } else { - G4cerr << "Error in construction of G4BREPSolidPolyhedra. \n" - << "Exactly the same z, rmin and rmax given for \n" - << "consecutive indices, " << a << " and " << a+1 << G4endl; + G4cerr << "ERROR - G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()" + << G4endl + << " Error in construction." + << G4endl + << " Exactly the same z, rmin and rmax given for" + << G4endl + << " consecutive indices, " << a << " and " << a+1 + << G4endl; + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "Notification", JustWarning, "Construction Error!" ); continue; } @@ -547,14 +571,17 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, } if( sf != nb_of_surfaces ) { - G4cerr << "Bad number of surfaces!\a\n" - << "sf: " << sf - << " nb_of_surfaces: " << nb_of_surfaces - << " Count: " << Count + G4cerr << "ERROR - G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()" << G4endl + << " Bad number of surfaces!" << G4endl + << " sf : " << sf + << " nb_of_surfaces: " << nb_of_surfaces + << " Count : " << Count << G4endl; // Should we call G4Exception here ? // Yes, because it usually leads to a crash - G4Exception( "INTERNAL ERROR: Going bananas!\a\n" ); + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "FatalError", FatalException, + "INTERNAL ERROR: Going bananas!" ); } // Clean up the temporary vector of surfaces @@ -594,10 +621,13 @@ G4BREPSolidPolyhedra::G4BREPSolidPolyhedra(const G4String& name, if( z_values[0] != z_start ) { - G4cerr << "ERROR in creating G4BREPSolidPolyhedra: " << - " z_values[0]= " << z_values[0] << " is not equal to " << - " z_start= " << z_start; - // G4Exception(" Error in creating G4BREPSolidPolyhedra: z_values[0] must be equal to z_start" ); + G4cerr << "ERROR - G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()" << G4endl + << " Wrong solid parameters: " + << " z_values[0]= " << z_values[0] << " is not equal to " + << " z_start= " << z_start << "." << G4endl; + G4Exception( "G4BREPSolidPolyhedra::G4BREPSolidPolyhedra()", + "Notification", JustWarning, + "Construction Error. z_values[0] must be equal to z_start!" ); constructorParams.z_values[0]= z_start; } diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc index f7afb3d5f8..5e8493ca2e 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidSphere.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidSphere.cc,v 1.7 2003/06/16 16:52:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc index a73621165f..cd1077e1f4 100644 --- a/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc +++ b/source/geometry/solids/BREPS/src/G4BREPSolidTorus.cc @@ -22,7 +22,7 @@ // // // $Id: G4BREPSolidTorus.cc,v 1.7 2003/06/16 16:52:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurve.cc b/source/geometry/solids/BREPS/src/G4BSplineCurve.cc index dfa6b517b4..d8f346083f 100644 --- a/source/geometry/solids/BREPS/src/G4BSplineCurve.cc +++ b/source/geometry/solids/BREPS/src/G4BSplineCurve.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4BSplineCurve.cc,v 1.10 2003/03/28 13:11:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BSplineCurve.cc,v 1.11 2003/10/28 13:42:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -326,8 +326,8 @@ G4Point3d G4BSplineCurve::GetBoundMax() G4bool G4BSplineCurve::Tangent(G4CurvePoint&, G4Vector3D&) { - G4Exception("G4BSplineCurve::Tangent - Not implemented !"); + G4Exception("G4BSplineCurve::Tangent()", "NotImplemented", + FatalException, "Sorry, not implemented !"); return false; } - diff --git a/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc b/source/geometry/solids/BREPS/src/G4BSplineCurveWithKnots.cc index 7c372e26b3..635e4c77f2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e11a12c452..8e6fd1c5e3 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.12 2003/03/28 13:11:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6d6c672af8..74fb85c5bc 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 28aa7ff59a..404b39ad73 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.7 2003/03/28 13:11:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 d58eb8b93f..68d70e6bf8 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.8 2003/06/16 16:52:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 529d39f65d..f69271a78b 100644 --- a/source/geometry/solids/BREPS/src/G4CircularCurve.cc +++ b/source/geometry/solids/BREPS/src/G4CircularCurve.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CircularCurve.cc,v 1.7 2003/03/28 13:11:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CircularCurve.cc,v 1.8 2003/10/28 13:42:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -145,16 +145,19 @@ G4double G4CircularCurve::GetPPoint(const G4Point3D& pt) const /* #include "G4CurveRayIntersection.hh" -void G4CircularCurve::IntersectRay2D(const G4Ray& ray, - G4CurveRayIntersection& is) +void G4CircularCurve::IntersectRay2D(const G4Ray&, + G4CurveRayIntersection&) { - G4Exception("G4CircularCurve is always 3D!"); - exit(1); + G4Exception("G4CircularCurve::IntersectRay2D()", + "NotApplicable", FatalException, + "G4CircularCurve is always 3D!"); } */ G4int G4CircularCurve::IntersectRay2D(const G4Ray&) { - G4Exception("G4CircularCurve is always 3D!"); + G4Exception("G4CircularCurve::IntersectRay2D()", + "NotApplicable", FatalException, + "G4CircularCurve is always 3D!"); return 0; } diff --git a/source/geometry/solids/BREPS/src/G4CompositeCurve.cc b/source/geometry/solids/BREPS/src/G4CompositeCurve.cc index 8f0cc3cc2f..6e2203ac27 100644 --- a/source/geometry/solids/BREPS/src/G4CompositeCurve.cc +++ b/source/geometry/solids/BREPS/src/G4CompositeCurve.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CompositeCurve.cc,v 1.11 2003/03/28 13:11:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CompositeCurve.cc,v 1.12 2003/10/28 13:42:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -121,20 +121,23 @@ G4Curve* G4CompositeCurve::Project(const G4Transform3D& tr) G4double G4CompositeCurve::GetPMax() const { - G4Exception("G4CompositeCurve::GetPMax"); + G4Exception("G4CompositeCurve::GetPMax()", "NotApplicable", + FatalException, "Not applicable to base class."); return 0; } G4Point3D G4CompositeCurve::GetPoint(G4double) const { - G4Exception("G4CompositeCurve::GetPoint"); + G4Exception("G4CompositeCurve::GetPoint()", "NotApplicable", + FatalException, "Not applicable to base class."); // Fake return value return G4Point3D(); } G4double G4CompositeCurve::GetPPoint(const G4Point3D&) const { - G4Exception("G4CompositeCurve::GetPPoint"); + G4Exception("G4CompositeCurve::GetPPoint()", "NotApplicable", + FatalException, "Not applicable to base class."); return 0; } diff --git a/source/geometry/solids/BREPS/src/G4Conic.cc b/source/geometry/solids/BREPS/src/G4Conic.cc index 7cfce8ea73..481e871329 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 70a2f6c6d0..dc0dd2a688 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.8 2003/06/16 16:52:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b1d7da71d4..67b18ac0d3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 5cdd3a1e97..bb020cdf04 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 8009f4501d..54e4f21c62 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b369c407e2..a60a5f3760 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e8ef730f10..364ddc429d 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.5 2003/06/16 16:52:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 db0cea9191..0c2da111ee 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.9 2003/06/16 16:52:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3a3cdc3fee..f8e523020a 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.16 2003/06/16 16:52:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 c8ab91f91a..a6aaef0b0c 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.13 2003/06/16 16:52:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 549ecf598e..e572336708 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.14 2002/01/28 16:29:42 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2084ae3fe9..7aa2814428 100644 --- a/source/geometry/solids/BREPS/src/G4Hyperbola.cc +++ b/source/geometry/solids/BREPS/src/G4Hyperbola.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Hyperbola.cc,v 1.8 2003/03/28 13:11:58 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Hyperbola.cc,v 1.9 2003/10/28 13:42:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -90,7 +90,8 @@ G4Hyperbola& G4Hyperbola::operator=(const G4Hyperbola& right) G4Curve* G4Hyperbola::Project(const G4Transform3D& tr) { - G4Exception("G4Hyperbola::Project"); + G4Exception("G4Hyperbola::Project()", "NotImplemented", + FatalException, "Sorry, not yet implemented."); G4Point3D newLocation= tr*position.GetLocation(); newLocation.setZ(0); diff --git a/source/geometry/solids/BREPS/src/G4KnotVector.cc b/source/geometry/solids/BREPS/src/G4KnotVector.cc index 61da4b27b4..4116d72e5e 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.6 2001/07/11 09:59:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 800fd2ba47..5c7ad97659 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.8 2003/03/28 13:12:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2705120872..0964b1dd1f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 995ec17682..a0656f73d4 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.6 2003/03/28 13:12:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 84eb2ba31e..54899d9b64 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b5e808c6aa..b4ce474163 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 d45aff6b7a..a87079b589 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.9 2003/03/28 13:12:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 094230251a..af938234d0 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.9 2003/03/28 13:12:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 ffa2d9413b..9d94119221 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9b5a878e9a..786c7c27d1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 source file diff --git a/source/geometry/solids/BREPS/src/G4SphericalSurface.cc b/source/geometry/solids/BREPS/src/G4SphericalSurface.cc index fcb27b4668..66ebc556b5 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.7 2003/06/16 16:52:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 236ec6a8bd..6125b79527 100644 --- a/source/geometry/solids/BREPS/src/G4Surface.cc +++ b/source/geometry/solids/BREPS/src/G4Surface.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Surface.cc,v 1.12 2003/06/16 16:52:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Surface.cc,v 1.13 2003/10/28 13:42:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -135,7 +135,8 @@ G4int G4Surface::Intersect(const G4Ray&) { G4int Result = 0; - G4Exception("G4Surface::Intersect is not implemented. It should not be called. "); + G4Exception("G4Surface::Intersect()", "NotImplemented", + FatalException, "Sorry, not yet implemented."); #ifdef NEW_IMPLEMENTATION // get the intersection diff --git a/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc b/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc index 59956ce43c..98cf8ffce1 100644 --- a/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc +++ b/source/geometry/solids/BREPS/src/G4SurfaceBoundary.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SurfaceBoundary.cc,v 1.11 2003/03/28 13:12:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SurfaceBoundary.cc,v 1.12 2003/10/28 13:42:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -209,12 +209,14 @@ void G4SurfaceBoundary::SplitWithPlane(const G4Point3D&, G4SurfaceBoundary*&, G4SurfaceBoundary*&) { - G4Exception("To be implemented"); + G4Exception("G4SurfaceBoundary::SplitWithPlane()", "NotImplemented", + FatalException, "Sorry, not yet implemented."); } void G4SurfaceBoundary::SplitWithCylinder(const G4CylindricalSurface&, G4SurfaceBoundary*&, G4SurfaceBoundary*&) { - G4Exception("To be implemented"); + G4Exception("G4SurfaceBoundary::SplitWithCylinder()", "NotImplemented", + FatalException, "Sorry, not yet implemented."); } diff --git a/source/geometry/solids/BREPS/src/G4SurfaceList.cc b/source/geometry/solids/BREPS/src/G4SurfaceList.cc index d75483b4da..85cd61d0cd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 c05a7f1226..e86e1729e6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2f8aa2c21a..f89cceec7b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 bd22004120..8e904df2a7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 31ac9c2e47..e21d90856f 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.7 2003/03/28 13:12:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/geometry/solids/Boolean/History b/source/geometry/solids/Boolean/History index aec78b21d2..99a9e3ee25 100644 --- a/source/geometry/solids/Boolean/History +++ b/source/geometry/solids/Boolean/History @@ -1,5 +1,5 @@ -$Id: History,v 1.39 2003/06/12 12:47:50 gcosmo Exp $ +$Id: History,v 1.44 2003/12/01 09:32:26 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -20,6 +20,29 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + Dec 01, 2003 G.Cosmo geom-bool-V05-02-04 + - G4ReflectedSolid.cc: fixed trivial leak in constructor. + + Nov 03, 2003 G.Cosmo geom-bool-V05-02-03 + - Code cleanup and headers inclusion review + (replaced by forward declarations where necessary). + + Oct 28, 2003 G.Cosmo geom-bool-V05-02-02 + - Migration to new G4Exception scheme. + + Oct 28, 2003 J.Apostolakis + - Modified test/GNUmakefile to delete un-necessary directories. + It no longer refers to navigator (old volumes), but includes + intercoms (for G4VVisManager). + + Oct 9, 2003 V.Grichine geom-bool-V05-02-01 + - Fixes to default safety to zero in DistIn/Out(p) methods. + Note: Using previous test GNUmakefile (to be corrected). + + Sep 30, 2003 G.Cosmo geom-bool-V05-02-00 + - Updated GNUmakefile for unit tests, according to new structure + introduced in "geometry-V05-02-00". + Jun 12, 2003 G.Cosmo geom-bool-V05-01-02 - G4ReflectionFactory: o Made public accessors: GetConstituentLV(), GetReflectedLV(), diff --git a/source/geometry/solids/Boolean/include/G4BooleanSolid.hh b/source/geometry/solids/Boolean/include/G4BooleanSolid.hh index 23b8f030d3..983ef15157 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.7 2003/06/16 16:53:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BooleanSolid.hh,v 1.8 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4BooleanSolid @@ -36,19 +36,17 @@ // // 10.09.98 V.Grichine, created // -// ******************************************************************** - - +// -------------------------------------------------------------------- #ifndef G4BOOLEANSOLID_HH #define G4BOOLEANSOLID_HH -#include "G4VSolid.hh" #include "G4DisplacedSolid.hh" -#include "G4RotationMatrix.hh" #include "G4ThreeVector.hh" +#include "G4RotationMatrix.hh" #include "G4Transform3D.hh" -#include "G4AffineTransform.hh" + +class G4VSolid; class G4BooleanSolid : public G4VSolid { diff --git a/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh b/source/geometry/solids/Boolean/include/G4DisplacedSolid.hh index 18582ccb75..5237303ce3 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.14 2003/06/16 16:53:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DisplacedSolid.hh,v 1.15 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4DisplacedSolid @@ -38,8 +38,7 @@ // 28.10.98 V.Grichine: created // 22.11.00 V.Grichine: new set methods for matrix/vectors // -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4DisplacedSolid_HH #define G4DisplacedSolid_HH @@ -64,7 +63,7 @@ class G4DisplacedSolid : public G4VSolid G4DisplacedSolid( const G4String& pName, G4VSolid* pSolid , - const G4AffineTransform directTransform ); + const G4AffineTransform directTransform ); // For use in instantiating a transient instance from a persistent one. virtual ~G4DisplacedSolid() ; @@ -76,9 +75,9 @@ class G4DisplacedSolid : public G4VSolid EInside Inside( const G4ThreeVector& p ) const ; G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const ; + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const ; G4ThreeVector SurfaceNormal( const G4ThreeVector& p ) const ; @@ -88,16 +87,16 @@ class G4DisplacedSolid : public G4VSolid 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 ; + const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, + G4ThreeVector *n=0 ) const ; G4double DistanceToOut( const G4ThreeVector& p ) const ; - void ComputeDimensions( G4VPVParameterisation* p, - const G4int n, + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, const G4VPhysicalVolume* pRep ) ; void CleanTransformations(); diff --git a/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh b/source/geometry/solids/Boolean/include/G4IntersectionSolid.hh index 0c83a2fd1e..a2be73b954 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.6 2002/10/28 11:36:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4IntersectionSolid.hh,v 1.7 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4IntersectionSolid @@ -36,8 +36,7 @@ // 12.09.98 V.Grichine: initial design and implementation // 28.10.98 V.Grichine: addition of two constructors with G4PlacedSolid // -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4INTERSECTIONSOLID_HH #define G4INTERSECTIONSOLID_HH @@ -75,9 +74,9 @@ class G4IntersectionSolid : public G4BooleanSolid public: // without description G4bool CalculateExtent( const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pMin, G4double& pMax) const ; + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax) const ; EInside Inside( const G4ThreeVector& p ) const ; @@ -89,16 +88,16 @@ class G4IntersectionSolid : public G4BooleanSolid 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 ; + const G4ThreeVector& v, + const G4bool calcNorm=false, + G4bool *validNorm=0, + G4ThreeVector *n=0 ) const ; G4double DistanceToOut( const G4ThreeVector& p ) const ; - void ComputeDimensions( G4VPVParameterisation* p, - const G4int n, + void ComputeDimensions( G4VPVParameterisation* p, + const G4int n, const G4VPhysicalVolume* pRep ) ; void DescribeYourselfTo ( G4VGraphicsScene& scene ) const ; diff --git a/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh b/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh index 08a4ee7544..d898f78b5e 100644 --- a/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh +++ b/source/geometry/solids/Boolean/include/G4ReflectedSolid.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.hh,v 1.7 2003/06/16 16:53:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ReflectedSolid.hh,v 1.8 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4ReflectedSolid @@ -37,8 +37,7 @@ // 23.07.01 V.Grichine: created // 15.02.02 V.Grichine: get/set methods for fPtr(Direct)Transform3D // -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4ReflectedSolid_HH #define G4ReflectedSolid_HH diff --git a/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh b/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh index 315e98a72c..7c52a3509c 100644 --- a/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh +++ b/source/geometry/solids/Boolean/include/G4ReflectionFactory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReflectionFactory.hh,v 1.5 2003/06/16 16:53:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ReflectionFactory.hh,v 1.6 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Reflection @@ -54,17 +54,17 @@ // x(inV) = TD * x(inD); // x(inM) = TGV * x(inV) // = TV * R * x(inV) -// = TV * R * TD * x(inD) -// = TV * R*TD*R-1 * R*x(inD) -// = TV * ReflTD * x(inReflD) +// = TV * R * TD * x(inD) +// = TV * R*TD*R-1 * R*x(inD) +// = TV * ReflTD * x(inReflD) // Author: Ivana Hrivnacova, 16.10.2001 (Ivana.Hrivnacova@cern.ch) - +// -------------------------------------------------------------------- #ifndef G4_REFLECTION_FACTORY_HH #define G4_REFLECTION_FACTORY_HH +#include "G4Types.hh" #include "G4Transform3D.hh" -#include "globals.hh" #include "geomdefs.hh" #include @@ -74,9 +74,9 @@ class G4LogicalVolume; class G4VSolid; typedef std::pair G4PhysicalVolumesPair; + G4VPhysicalVolume*> G4PhysicalVolumesPair; typedef std::map > G4ReflectedVolumesMap; + std::less > G4ReflectedVolumesMap; class G4ReflectionFactory { @@ -92,10 +92,10 @@ class G4ReflectionFactory G4PhysicalVolumesPair Place(const G4Transform3D& transform3D, const G4String& name, - G4LogicalVolume* LV, - G4LogicalVolume* motherLV, - G4bool isMany, - G4int copyNo); + G4LogicalVolume* LV, + G4LogicalVolume* motherLV, + G4bool isMany, + G4int copyNo); // Evaluates the passed transformation; if it contains reflection // it performs its decomposition, creates new reflected solid and // logical volume (or retrieves them from a map if the reflected @@ -106,23 +106,23 @@ class G4ReflectionFactory // or 0 if mother LV was not reflected. G4PhysicalVolumesPair Replicate(const G4String& name, - G4LogicalVolume* LV, - G4LogicalVolume* motherLV, - EAxis axis, - G4int nofReplicas, - G4double width, - G4double offset=0); + G4LogicalVolume* LV, + G4LogicalVolume* motherLV, + EAxis axis, + G4int nofReplicas, + G4double width, + G4double offset=0); // Creates replica in the given mother. // The result is a pair of physical volumes; // the second physical volume is a replica in a reflected mother // or 0 if mother LV was not reflected. - void SetVerboseLevel(G4int verboseLevel); - G4int GetVerboseLevel() const; + void SetVerboseLevel(G4int verboseLevel); + G4int GetVerboseLevel() const; // Sets/gets verbosity level. - void SetVolumesNameExtension(const G4String& nameExtension); - G4String GetVolumesNameExtension() const; + void SetVolumesNameExtension(const G4String& nameExtension); + G4String GetVolumesNameExtension() const; // Returns the name extension for the reflected solids // and logical volumes. @@ -151,7 +151,7 @@ class G4ReflectionFactory // Returns a handle to the internal map of volumes which have // been reflected, after that placement or replication is performed. - protected: + protected: G4ReflectionFactory(); // Protected singleton constructor. @@ -160,7 +160,7 @@ class G4ReflectionFactory G4ReflectionFactory& operator=(const G4ReflectionFactory&); // Disabled copy constructor and assignment operator. - private: + private: G4LogicalVolume* ReflectLV(G4LogicalVolume* LV); // Gets/creates the reflected solid and logical volume @@ -192,9 +192,9 @@ class G4ReflectionFactory void CheckScale(const G4Scale3D& scale) const; // Checks if scale correspond to fScale, if not gives exception. - void PrintConstituentLVMap(); + void PrintConstituentLVMap(); // Temporary - for debugging purpose. - + private: static G4ReflectionFactory* fInstance; diff --git a/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh b/source/geometry/solids/Boolean/include/G4SubtractionSolid.hh index 062b0f978b..0e6fb44da4 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.6 2002/10/28 11:36:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SubtractionSolid.hh,v 1.7 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4SubtractionSolid @@ -35,8 +35,7 @@ // // 14.10.98 V.Grichine: first implementation // -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4SUBTRACTIONSOLID_HH #define G4SUBTRACTIONSOLID_HH diff --git a/source/geometry/solids/Boolean/include/G4UnionSolid.hh b/source/geometry/solids/Boolean/include/G4UnionSolid.hh index 4a43dc1a32..acb4f45ebe 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.7 2002/10/28 11:36:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UnionSolid.hh,v 1.8 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4UnionSolid @@ -35,8 +35,7 @@ // // 12.09.98 V.Grichine: created // -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4UNIONSOLID_HH #define G4UNIONSOLID_HH diff --git a/source/geometry/solids/Boolean/src/G4BooleanSolid.cc b/source/geometry/solids/Boolean/src/G4BooleanSolid.cc index f179e8318e..7edac92447 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.9 2003/06/16 16:53:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4BooleanSolid.cc,v 1.11 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Implementation for the abstract base class for solids created by boolean // operations between other solids @@ -31,15 +31,10 @@ // // 10.09.98 V.Grichine, created // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4BooleanSolid.hh" -#include "G4DisplacedSolid.hh" - -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" -#include "G4Transform3D.hh" -#include "G4AffineTransform.hh" +#include "G4VSolid.hh" ////////////////////////////////////////////////////////////////// // @@ -114,7 +109,9 @@ const G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) const else { DumpInfo(); - G4Exception("G4BooleanSolid::GetConstituentSolid() - invalid solid index"); + G4Exception("G4BooleanSolid::GetConstituentSolid()", + "WrongArgumentValue", FatalException, + "Invalid solid index."); } return subSolid; @@ -136,7 +133,9 @@ G4VSolid* G4BooleanSolid::GetConstituentSolid(G4int no) else { DumpInfo(); - G4Exception("G4BooleanSolid::GetConstituentSolid() - invalid solid index"); + G4Exception("G4BooleanSolid::GetConstituentSolid()", + "WrongArgumentValue", FatalException, + "Invalid solid index."); } return subSolid; diff --git a/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc b/source/geometry/solids/Boolean/src/G4DisplacedSolid.cc index de94394bb2..c4d3fe0bd6 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.17 2003/06/16 16:53:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DisplacedSolid.cc,v 1.19 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Implementation for G4DisplacedSolid class for boolean // operations between other solids @@ -33,19 +33,18 @@ // 14.11.99 V.Grichine: modifications in CalculateExtent(...) method // 22.11.00 V.Grichine: new set methods for matrix/vectors // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4DisplacedSolid.hh" #include "G4VoxelLimits.hh" -#include "G4AffineTransform.hh" #include "G4VPVParameterisation.hh" #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" -#include "G4NURBSbox.hh" +// #include "G4NURBSbox.hh" //////////////////////////////////////////////////////////////// // @@ -318,7 +317,9 @@ G4DisplacedSolid::ComputeDimensions( G4VPVParameterisation*, const G4VPhysicalVolume* ) { DumpInfo(); - G4Exception("G4DisplacedSolid::ComputeDimensions() - has no meaning!"); + G4Exception("G4DisplacedSolid::ComputeDimensions()", + "NotApplicable", FatalException, + "Method not applicable in this context!"); } ////////////////////////////////////////////////////////////////////////// diff --git a/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc b/source/geometry/solids/Boolean/src/G4IntersectionSolid.cc index 4833ac218e..0e8c1a19e1 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.19 2003/06/16 16:53:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4IntersectionSolid.cc,v 1.21 2003/11/03 17:48:45 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -33,22 +33,17 @@ // 16.03.01 V.Grichine: modifications in CalculateExtent() and Inside() // 29.05.01 V.Grichine: bug was fixed in DistanceToIn(p,v) // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4IntersectionSolid.hh" -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" -#include "G4Transform3D.hh" -#include "G4AffineTransform.hh" - #include "G4VoxelLimits.hh" #include "G4VPVParameterisation.hh" #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" -#include "G4NURBSbox.hh" +// #include "G4NURBSbox.hh" ///////////////////////////////////////////////////////////////////// // @@ -407,7 +402,7 @@ G4IntersectionSolid::DistanceToIn( const G4ThreeVector& p) const #endif EInside sideA = fPtrSolidA->Inside(p) ; EInside sideB = fPtrSolidB->Inside(p) ; - G4double dist ; + G4double dist=0.0 ; if( sideA != kInside && sideB != kOutside ) { @@ -509,7 +504,7 @@ G4IntersectionSolid::DistanceToOut( const G4ThreeVector& p ) const #endif return std::min(fPtrSolidA->DistanceToOut(p), - fPtrSolidB->DistanceToOut(p) ) ; + fPtrSolidB->DistanceToOut(p) ) ; } diff --git a/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc b/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc index 989505382a..0c6e3808e1 100644 --- a/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc +++ b/source/geometry/solids/Boolean/src/G4ReflectedSolid.cc @@ -21,31 +21,29 @@ // ******************************************************************** // // -// $Id: G4ReflectedSolid.cc,v 1.11 2003/06/16 16:53:17 gunter Exp $ +// $Id: G4ReflectedSolid.cc,v 1.14 2003/12/01 09:32:05 gcosmo Exp $ // -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Implementation for G4ReflectedSolid class for boolean // operations between other solids // // Author: Vladimir Grichine, 23.07.01 (Vladimir.Grichine@cern.ch) // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4ReflectedSolid.hh" #include "G4Point3D.hh" #include "G4Normal3D.hh" -#include "G4VSolid.hh" #include "G4VoxelLimits.hh" -#include "G4AffineTransform.hh" #include "G4VPVParameterisation.hh" #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" -#include "G4NURBSbox.hh" +// #include "G4NURBSbox.hh" ///////////////////////////////////////////////////////////////// @@ -77,8 +75,13 @@ G4ReflectedSolid::~G4ReflectedSolid() { if(fPtrTransform) { - delete fPtrTransform ; - delete fDirectTransform; + delete fPtrTransform; fPtrTransform=0; + delete fDirectTransform; fDirectTransform=0; + } + if(fPtrTransform3D) + { + delete fPtrTransform3D; fPtrTransform3D=0; + delete fDirectTransform3D; fDirectTransform3D=0; } } @@ -292,7 +295,9 @@ G4ReflectedSolid::CalculateExtent( const EAxis pAxis, else { DumpInfo(); - G4Exception("G4ReflectedSolid::CalculateExtent() - Out of memory !"); + G4Exception("G4ReflectedSolid::CalculateExtent()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); } ClipCrossSection(vertices,0,pVoxelLimit,pAxis,pMin,pMax) ; @@ -477,7 +482,9 @@ G4ReflectedSolid::ComputeDimensions( G4VPVParameterisation*, const G4VPhysicalVolume* ) { DumpInfo(); - G4Exception("G4ReflectedSolid::ComputeDimensions() - has no meaning!"); + G4Exception("G4BooleanSolid::ComputeDimensions()", + "NotApplicable", FatalException, + "Method not applicable in this context!"); } ////////////////////////////////////////////////////////////////////////// diff --git a/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc b/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc index 2d1d36724f..ad2a8f3c6d 100644 --- a/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc +++ b/source/geometry/solids/Boolean/src/G4ReflectionFactory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ReflectionFactory.cc,v 1.9 2003/06/12 12:47:33 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ReflectionFactory.cc,v 1.11 2003/11/03 17:48:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: Ivana Hrivnacova, 16.10.2001 (Ivana.Hrivnacova@cern.ch) @@ -49,7 +49,7 @@ // = TV * R * TD * x(inD) // = TV * R*TD*R-1 * R*x(inD) // = TV * ReflTD * x(inReflD) -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4ReflectionFactory.hh" #include "G4ReflectedSolid.hh" @@ -268,15 +268,13 @@ G4LogicalVolume* G4ReflectionFactory::CreateReflectedLV(G4LogicalVolume* LV) // if (fReflectedLVMap.find(LV) != fReflectedLVMap.end()) { - G4cout << "ERROR - G4ReflectionFactory::CreateReflectedLV(): " - << LV->GetName() << G4endl - << " Cannot be applied to an already reflected volume !" - << G4endl; G4cerr << "ERROR - G4ReflectionFactory::CreateReflectedLV(): " << LV->GetName() << G4endl << " Cannot be applied to an already reflected volume !" << G4endl; - G4Exception("G4ReflectionFactory::CreateReflectedLV() - Invalid call"); + G4Exception("G4ReflectionFactory::CreateReflectedLV()", + "NotApplicable", FatalException, + "Cannot be applied to a volume already reflected."); } G4VSolid* refSolid @@ -464,15 +462,13 @@ void G4ReflectionFactory::ReflectPVParameterised(G4VPhysicalVolume* dPV, // a constituent volume into a reflected volume. // --- - G4cout << "ERROR - G4ReflectionFactory::ReflectPVParameterised(): " - << dPV->GetName() << G4endl - << " Reflection of parameterised volumes " - << "is not yet implemented." << G4endl; G4cerr << "ERROR - G4ReflectionFactory::ReflectPVParameterised(): " << dPV->GetName() << G4endl << " Reflection of parameterised volumes " << "is not yet implemented." << G4endl; - G4Exception("G4ReflectionFactory::ReflectPVParameterised() - not implemented"); + G4Exception("G4ReflectionFactory::ReflectPVParameterised()", + "NotImplemented", FatalException, + "Sorry, not yet implemented."); } //_____________________________________________________________________________ @@ -582,11 +578,11 @@ void G4ReflectionFactory::CheckScale(const G4Scale3D& scale) const if (diff > fScalePrecision) { - G4cout << "ERROR - G4ReflectionFactory::CheckScale()" << G4endl - << " Unexpected scale. Difference: " << diff << G4endl; G4cerr << "ERROR - G4ReflectionFactory::CheckScale()" << G4endl << " Unexpected scale. Difference: " << diff << G4endl; - G4Exception("G4ReflectionFactory::CheckScale() - unexpected scale"); + G4Exception("G4ReflectionFactory::CheckScale()", + "WrongArgumentValue", FatalException, + "Unexpected scale in input !"); } } diff --git a/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc b/source/geometry/solids/Boolean/src/G4SubtractionSolid.cc index 61d9c30420..210a4634de 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.18 2003/06/16 16:53:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SubtractionSolid.cc,v 1.20 2003/11/03 17:48:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -34,22 +34,17 @@ // while -> do-while & surfaceA limitations // 13.09.00 V.Grichine: bug fixed in SurfaceNormal(p), p can be inside // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4SubtractionSolid.hh" -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" -#include "G4Transform3D.hh" -#include "G4AffineTransform.hh" - #include "G4VoxelLimits.hh" #include "G4VPVParameterisation.hh" #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" -#include "G4NURBSbox.hh" +// #include "G4NURBSbox.hh" /////////////////////////////////////////////////////////////////// // @@ -294,7 +289,7 @@ G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p, G4double G4SubtractionSolid::DistanceToIn( const G4ThreeVector& p ) const { - G4double dist; + G4double dist=0.0; #ifdef G4BOOLDEBUG if( Inside(p) == kInside ) @@ -384,7 +379,7 @@ G4SubtractionSolid::DistanceToOut( const G4ThreeVector& p, G4double G4SubtractionSolid::DistanceToOut( const G4ThreeVector& p ) const { - G4double dist=kInfinity; + G4double dist=0.0; if( Inside(p) == kOutside ) { diff --git a/source/geometry/solids/Boolean/src/G4UnionSolid.cc b/source/geometry/solids/Boolean/src/G4UnionSolid.cc index e984733e8d..525104c376 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.22 2003/06/16 16:53:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UnionSolid.cc,v 1.24 2003/11/03 17:48:46 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Implementation of methods for the class G4IntersectionSolid // @@ -33,22 +33,17 @@ // 27.07.99 V.Grichine: modifications in DistToOut(p,v,...), while -> do-while // 16.03.01 V.Grichine: modifications in CalculateExtent() // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4UnionSolid.hh" -#include "G4RotationMatrix.hh" -#include "G4ThreeVector.hh" -#include "G4Transform3D.hh" -#include "G4AffineTransform.hh" - #include "G4VoxelLimits.hh" #include "G4VPVParameterisation.hh" #include "G4VGraphicsScene.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" -#include "G4NURBSbox.hh" +// #include "G4NURBSbox.hh" /////////////////////////////////////////////////////////////////// // @@ -359,7 +354,7 @@ G4UnionSolid::DistanceToOut( const G4ThreeVector& p, G4double G4UnionSolid::DistanceToOut( const G4ThreeVector& p ) const { - G4double distout = kInfinity; + G4double distout = 0.0; if( Inside(p) == kOutside ) { #ifdef G4BOOLDEBUG diff --git a/source/geometry/solids/CSG/History b/source/geometry/solids/CSG/History index b729560202..ee6f433cf1 100644 --- a/source/geometry/solids/CSG/History +++ b/source/geometry/solids/CSG/History @@ -1,4 +1,4 @@ -$Id: History,v 1.54 2003/06/25 13:05:33 gcosmo Exp $ +$Id: History,v 1.61 2003/12/04 11:41:08 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,37 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec 4, 2003 V.Grichine geom-csg-V05-02-06 +- G4Trap.cc: fixed initialisation of planes in default constructor. +- Added new unit test for G4Sphere and new test case for G4Cons. + +Nov 5, 2003 V.Grichine geom-csg-V05-02-05 +- G4Orb[.hh.cc]: introduced relative tolerance accuracy on fRmax surface + in all methods. + +Nov 3, 2003 G.Cosmo geom-csg-V05-02-04 +- Code cleanup and headers inclusion review + (replaced by forward declarations where necessary). + +Nov 2, 2003 V.Grichine +- G4Sphere, G4Orb: revision of algorithm for Phi sections in + method Inside(). + +Oct 29, 2003 J.Apostolakis geom-csg-V05-02-03 +- G4Sphere.cc: fix for in Inside() for a point with Phi angle: + 0.5 kAngTol < phi < Phi_start + +Oct 28, 2003 G.Cosmo geom-csg-V05-02-02 +- Migrated to new G4Exception scheme. + +Oct 09, 2003 V.Grichine geom-csg-V05-02-01 +- Initialise safe=0.0 in DistanceToIn/Out(p) in all solids. +- Introduced G4Orb solid: a simple sphere with only outer radius. + +Sep 30, 2003 G.Cosmo geom-csg-V05-02-00 +- Updated GNUmakefile for unit tests, according to new structure + introduced in "geometry-V05-02-00". + Jun 25, 2003 G.Folger geom-csg-V05-01-00 - Added disclaimer of liability where needed. diff --git a/source/geometry/solids/CSG/include/G4Box.hh b/source/geometry/solids/CSG/include/G4Box.hh index e6f596368a..93c6a44854 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.9 2003/06/16 16:53:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Box.hh,v 1.10 2003/11/03 18:17:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file @@ -44,7 +44,6 @@ // 27.03.98 J.Apostolakis: Inherit from G4CSGSolid (not G4VSolid) // 18.11.99 J.Apostolakis, V.Grichine: kUndefined was added to ESide // -------------------------------------------------------------------- - #ifndef G4BOX_HH #define G4BOX_HH @@ -64,9 +63,9 @@ class G4Box : public G4CSGSolid const G4VPhysicalVolume* pRep); G4bool CalculateExtent(const EAxis pAxis, - const G4VoxelLimits& pVoxelLimit, - const G4AffineTransform& pTransform, - G4double& pmin, G4double& pmax) const; + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pmin, G4double& pmax) const; // Accessors and modifiers @@ -93,8 +92,8 @@ class G4Box : public G4CSGSolid 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; + const G4bool calcNorm=false, + G4bool *validNorm=0, G4ThreeVector *n=0) const; G4double DistanceToOut(const G4ThreeVector& p) const; diff --git a/source/geometry/solids/CSG/include/G4Box.icc b/source/geometry/solids/CSG/include/G4Box.icc index 4902ff8749..3cd599d302 100644 --- a/source/geometry/solids/CSG/include/G4Box.icc +++ b/source/geometry/solids/CSG/include/G4Box.icc @@ -22,7 +22,7 @@ // // // $Id: G4Box.icc,v 1.1 2002/10/28 11:43:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4CSGSolid.hh b/source/geometry/solids/CSG/include/G4CSGSolid.hh index 905c24fe3d..ef481190f5 100644 --- a/source/geometry/solids/CSG/include/G4CSGSolid.hh +++ b/source/geometry/solids/CSG/include/G4CSGSolid.hh @@ -22,7 +22,7 @@ // // // $Id: G4CSGSolid.hh,v 1.7 2003/06/16 16:53:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Cons.hh b/source/geometry/solids/CSG/include/G4Cons.hh index e27d9d1fd8..c83b177312 100644 --- a/source/geometry/solids/CSG/include/G4Cons.hh +++ b/source/geometry/solids/CSG/include/G4Cons.hh @@ -22,7 +22,7 @@ // // // $Id: G4Cons.hh,v 1.8 2003/06/16 16:53:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Cons.icc b/source/geometry/solids/CSG/include/G4Cons.icc index eba9027451..c9e1bb92d0 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.1 2002/10/28 11:43:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Orb.hh b/source/geometry/solids/CSG/include/G4Orb.hh new file mode 100644 index 0000000000..0382e441cc --- /dev/null +++ b/source/geometry/solids/CSG/include/G4Orb.hh @@ -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: G4Orb.hh,v 1.4 2003/11/05 10:56:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// -------------------------------------------------------------------- +// GEANT 4 class header file +// +// G4Orb +// +// Class description: +// +// A G4Orb is a simple case of G4Sphere. It has only: +// fRmax outer radius + +// History: +// 20.08.03 V.Grichine - created +// -------------------------------------------------------------------- + +#ifndef G4Orb_HH +#define G4Orb_HH + +#include "G4CSGSolid.hh" + +class G4Orb : public G4CSGSolid +{ + public: // with description + + G4Orb(const G4String& pName, G4double pRmax); + + virtual ~G4Orb() ; + + // Accessors + + inline G4double GetRadius() const { return fRmax;}; + + // Modifiers + + inline void SetRadius (G4double newRmax) {fRmax=newRmax;}; + + // Methods for solid + + 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; + + 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; + + // Visualisation functions + + void DescribeYourselfTo(G4VGraphicsScene& scene) const; + G4Polyhedron* CreatePolyhedron() const; + G4NURBS* CreateNURBS() const; + + protected: + + // Used by distanceToOut + + enum ESide {kNull,kRMax}; + + // used by normal + + enum ENorm {kNRMax}; + + private: + + static const G4double fEpsilon; + G4double fRmax; + G4double fRmaxTolerance; +}; + +#endif diff --git a/source/geometry/solids/CSG/include/G4Para.hh b/source/geometry/solids/CSG/include/G4Para.hh index 906bc3bcf2..188602a100 100644 --- a/source/geometry/solids/CSG/include/G4Para.hh +++ b/source/geometry/solids/CSG/include/G4Para.hh @@ -22,7 +22,7 @@ // // // $Id: G4Para.hh,v 1.9 2003/06/16 16:53:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Para.icc b/source/geometry/solids/CSG/include/G4Para.icc index 9d83b35272..2c40ff25f8 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.1 2002/10/28 11:43:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 82b33b3425..d7e3655e28 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.8 2003/06/16 16:53:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Sphere.hh,v 1.9 2003/10/09 14:27:02 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -69,6 +69,8 @@ #include "G4CSGSolid.hh" +class G4VisExtent; + class G4Sphere : public G4CSGSolid { public: // with description @@ -131,7 +133,7 @@ class G4Sphere : public G4CSGSolid std::ostream& StreamInfo(std::ostream& os) const; // Visualisation functions - + G4VisExtent GetExtent () const; void DescribeYourselfTo(G4VGraphicsScene& scene) const; G4Polyhedron* CreatePolyhedron() const; G4NURBS* CreateNURBS() const; @@ -146,7 +148,7 @@ class G4Sphere : public G4CSGSolid inline G4double GetDPhi() const; inline G4double GetSTheta() const; inline G4double GetDTheta() const; - + void DBG() const {return;}; protected: G4ThreeVectorList* @@ -166,8 +168,17 @@ class G4Sphere : public G4CSGSolid G4double fRmin,fRmax, fSPhi,fDPhi, fSTheta,fDTheta; + G4double fEpsilon; }; #include "G4Sphere.icc" #endif + + + + + + + + diff --git a/source/geometry/solids/CSG/include/G4Sphere.icc b/source/geometry/solids/CSG/include/G4Sphere.icc index 35b9792ef6..d78ae17e47 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.1 2002/10/28 11:43:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 753d5dd258..5dbae0e3a4 100644 --- a/source/geometry/solids/CSG/include/G4Torus.hh +++ b/source/geometry/solids/CSG/include/G4Torus.hh @@ -22,7 +22,7 @@ // // // $Id: G4Torus.hh,v 1.15 2003/06/16 16:53:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Torus.icc b/source/geometry/solids/CSG/include/G4Torus.icc index bbb3b45934..b82582b57c 100644 --- a/source/geometry/solids/CSG/include/G4Torus.icc +++ b/source/geometry/solids/CSG/include/G4Torus.icc @@ -22,7 +22,7 @@ // // // $Id: G4Torus.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Trap.hh b/source/geometry/solids/CSG/include/G4Trap.hh index 804090a45e..9a72e42f56 100644 --- a/source/geometry/solids/CSG/include/G4Trap.hh +++ b/source/geometry/solids/CSG/include/G4Trap.hh @@ -22,7 +22,7 @@ // // // $Id: G4Trap.hh,v 1.8 2003/06/16 16:53:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Trap.icc b/source/geometry/solids/CSG/include/G4Trap.icc index dfdc928728..b15884cd07 100644 --- a/source/geometry/solids/CSG/include/G4Trap.icc +++ b/source/geometry/solids/CSG/include/G4Trap.icc @@ -22,7 +22,7 @@ // // // $Id: G4Trap.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Trd.hh b/source/geometry/solids/CSG/include/G4Trd.hh index 11e7462ae9..153599a794 100644 --- a/source/geometry/solids/CSG/include/G4Trd.hh +++ b/source/geometry/solids/CSG/include/G4Trd.hh @@ -22,7 +22,7 @@ // // // $Id: G4Trd.hh,v 1.9 2003/06/16 16:53:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Trd.icc b/source/geometry/solids/CSG/include/G4Trd.icc index 29168e21ce..5548e415d1 100644 --- a/source/geometry/solids/CSG/include/G4Trd.icc +++ b/source/geometry/solids/CSG/include/G4Trd.icc @@ -22,7 +22,7 @@ // // // $Id: G4Trd.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/include/G4Tubs.hh b/source/geometry/solids/CSG/include/G4Tubs.hh index 56f7c086c3..4f400c3c8a 100644 --- a/source/geometry/solids/CSG/include/G4Tubs.hh +++ b/source/geometry/solids/CSG/include/G4Tubs.hh @@ -22,7 +22,7 @@ // // // $Id: G4Tubs.hh,v 1.8 2003/06/16 16:53:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/CSG/include/G4Tubs.icc b/source/geometry/solids/CSG/include/G4Tubs.icc index d03c8db3ca..798c455aee 100644 --- a/source/geometry/solids/CSG/include/G4Tubs.icc +++ b/source/geometry/solids/CSG/include/G4Tubs.icc @@ -22,7 +22,7 @@ // // // $Id: G4Tubs.icc,v 1.1 2002/10/28 11:43:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/CSG/src/G4Box.cc b/source/geometry/solids/CSG/src/G4Box.cc index fb809c422c..b5bb102cdd 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.20 2003/06/16 16:53:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Box.cc,v 1.24 2003/11/03 18:17:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // @@ -35,7 +35,7 @@ // and information before exception in DistanceToOut(p,v,...) // 15.11.00 - D.Williams, V.Grichine: bug fixed in CalculateExtent - change // algorithm for rotated vertices -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4Box.hh" @@ -70,13 +70,11 @@ G4Box::G4Box(const G4String& pName, } else { - G4cout << "ERROR - G4Box()::G4Box(): " << GetName() << G4endl - << " Dimensions too small ! - " - << pX << ", " << pY << ", " << pZ << G4endl; G4cerr << "ERROR - G4Box()::G4Box(): " << GetName() << G4endl << " Dimensions too small ! - " << pX << ", " << pY << ", " << pZ << G4endl; - G4Exception("G4Box::G4Box() - invalid dimensions"); + G4Exception("G4Box::G4Box()", "InvalidSetup", + FatalException, "Invalid dimensions. Too small."); } } @@ -96,13 +94,11 @@ void G4Box::SetXHalfLength(G4double dx) fDx = dx; else { - G4cout << "ERROR - G4Box()::SetXHalfLength(): " << GetName() << G4endl - << " Dimension X too small ! - " - << dx << G4endl; G4cerr << "ERROR - G4Box()::SetXHalfLength(): " << GetName() << G4endl << " Dimension X too small ! - " << dx << G4endl; - G4Exception("G4Box::SetXHalfLength() - invalid dimensions"); + G4Exception("G4Box::SetXHalfLength()", "InvalidSetup", + FatalException, "Invalid dimensions. Too small."); } } @@ -112,13 +108,11 @@ void G4Box::SetYHalfLength(G4double dy) fDy = dy; else { - G4cout << "ERROR - G4Box()::SetYHalfLength(): " << GetName() << G4endl - << " Dimension Y too small ! - " - << dy << G4endl; G4cerr << "ERROR - G4Box()::SetYHalfLength(): " << GetName() << G4endl << " Dimension Y too small ! - " << dy << G4endl; - G4Exception("G4Box::SetYHalfLength() - invalid dimensions"); + G4Exception("G4Box::SetYHalfLength()", "InvalidSetup", + FatalException, "Invalid dimensions. Too small."); } } @@ -128,13 +122,11 @@ void G4Box::SetZHalfLength(G4double dz) fDz = dz; else { - G4cout << "ERROR - G4Box()::SetZHalfLength(): " << GetName() << G4endl - << " Dimension Z too small ! - " - << dz << G4endl; G4cerr << "ERROR - G4Box()::SetZHalfLength(): " << GetName() << G4endl << " Dimension Z too small ! - " << dz << G4endl; - G4Exception("G4Box::SetZHalfLength() - invalid dimensions"); + G4Exception("G4Box::SetZHalfLength()", "InvalidSetup", + FatalException, "Invalid dimensions. Too small."); } } @@ -724,7 +716,9 @@ G4double G4Box::DistanceToOut( const G4ThreeVector& p,const G4ThreeVector& v, G4cout << "v.z() = " << v.z() << G4endl << G4endl; G4cout << "Proposed distance :" << G4endl << G4endl; G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; - G4Exception("G4Box::DistanceToOut() - Invalid enum"); + G4Exception("G4Box::DistanceToOut()", + "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); break; } } @@ -738,7 +732,7 @@ G4double G4Box::DistanceToOut( const G4ThreeVector& p,const G4ThreeVector& v, G4double G4Box::DistanceToOut(const G4ThreeVector& p) const { - G4double safx1,safx2,safy1,safy2,safz1,safz2,safe; + G4double safx1,safx2,safy1,safy2,safz1,safz2,safe=0.0; #ifdef G4CSGDEBUG if( Inside(p) == kOutside ) @@ -750,8 +744,8 @@ G4double G4Box::DistanceToOut(const G4ThreeVector& p) const 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 << "G4Box::DistanceToOut(p) - point p is outside ?!" << G4endl ; - G4cerr << "G4Box::DistanceToOut(p) - point p is outside ?!" << G4endl ; + G4Exception("G4Box::DistanceToOut(p)", + "Notification", JustWarning, "Point p is outside !?" ); } #endif @@ -813,7 +807,9 @@ G4Box::CreateRotatedVertices(const G4AffineTransform& pTransform) const else { DumpInfo(); - G4Exception("G4Box::CreateRotatedVertices() - Out of memory !"); + G4Exception("G4Box::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); } return vertices; } diff --git a/source/geometry/solids/CSG/src/G4CSGSolid.cc b/source/geometry/solids/CSG/src/G4CSGSolid.cc index ac1a0a6cc0..804467da11 100644 --- a/source/geometry/solids/CSG/src/G4CSGSolid.cc +++ b/source/geometry/solids/CSG/src/G4CSGSolid.cc @@ -21,9 +21,11 @@ // ******************************************************************** // // -// $Id: G4CSGSolid.cc,v 1.5 2003/06/16 16:53:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CSGSolid.cc,v 1.6 2003/11/03 18:17:31 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // +// -------------------------------------------------------------------- + #include "G4CSGSolid.hh" // Constructor diff --git a/source/geometry/solids/CSG/src/G4Cons.cc b/source/geometry/solids/CSG/src/G4Cons.cc index f9ef706c03..295136fbfb 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.25 2003/06/16 16:53:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Cons.cc,v 1.29 2003/11/03 18:17:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4Cons // @@ -41,7 +41,7 @@ // 17.08.00 V.Grichine: if one and only one Rmin=0, it'll be 1e3*kRadTolerance // 05.10.00 V.Grichine: bugs fixed in Distance ToIn(p,v) // 26.06.02 V.Grichine: bugs fixed in Distance ToIn(p,v) -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4Cons.hh" @@ -93,13 +93,11 @@ G4Cons::G4Cons( const G4String& pName, fDz = pDz ; else { - G4cout << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl - << " Negative Z half-length ! - " - << pDz << G4endl; G4cerr << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl << " Negative Z half-length ! - " << pDz << G4endl; - G4Exception("G4Cons::G4Cons() - invalid Z half-length"); + G4Exception("G4Cons::G4Cons()", "InvalidSetup", + FatalException, "Invalid Z half-length."); } // Check radii @@ -116,15 +114,12 @@ G4Cons::G4Cons( const G4String& pName, } else { - G4cout << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl - << " Invalid values for radii !" << G4endl - << " pRmin1 = " << pRmin1 << ", pRmin2 = " << pRmin2 - << ", pRmax1 = " << pRmax1 << ", pRmax2 = " << pRmax2 << G4endl; G4cerr << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl << " Invalide values for radii ! - " << " pRmin1 = " << pRmin1 << ", pRmin2 = " << pRmin2 << ", pRmax1 = " << pRmax1 << ", pRmax2 = " << pRmax2 << G4endl; - G4Exception("G4Cons::G4Cons() - invalid radii") ; + G4Exception("G4Cons::G4Cons()", "InvalidSetup", + FatalException, "Invalid radii.") ; } // Check angles @@ -139,13 +134,11 @@ G4Cons::G4Cons( const G4String& pName, if ( pDPhi > 0 ) fDPhi = pDPhi ; else { - G4cout << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl - << " Negative delta-Phi ! - " - << pDPhi << G4endl; G4cerr << "ERROR - G4Cons()::G4Cons(): " << GetName() << G4endl << " Negative delta-Phi ! - " << pDPhi << G4endl; - G4Exception("G4Cons::G4Cons() - invalid pDPhi") ; + G4Exception("G4Cons::G4Cons()", "InvalidSetup", + FatalException, "Invalid pDPhi.") ; } // Ensure pSPhi in 0-2PI or -2PI-0 range if shape crosses 0 @@ -657,7 +650,9 @@ G4ThreeVector G4Cons::SurfaceNormal( const G4ThreeVector& p) const break ; default: DumpInfo(); - G4Exception("G4Cons::SurfaceNormal() - Logic error") ; + G4Exception("G4Cons::SurfaceNormal()", + "LogicError", FatalException, + "Undefined side for valid surface normal to solid.") ; break ; } return norm ; @@ -1275,7 +1270,7 @@ G4double G4Cons::DistanceToIn( const G4ThreeVector& p, G4double G4Cons::DistanceToIn(const G4ThreeVector& p) const { - G4double safe, rho, safeR1, safeR2, safeZ ; + G4double safe=0.0, rho, safeR1, safeR2, safeZ ; G4double tanRMin, secRMin, pRMin ; G4double tanRMax, secRMax, pRMax ; G4double phiC, cosPhiC, sinPhiC, safePhi, ePhi ; @@ -2012,7 +2007,9 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, G4cout << "v.z() = " << v.z() << G4endl<< G4endl ; G4cout << "Proposed distance :" << G4endl<< G4endl ; G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl ; - G4Exception("G4Cons::DistanceToOut() - Invalid enum") ; + G4Exception("G4Cons::DistanceToOut()", + "LogicError", FatalException, + "Undefined side for valid surface normal to solid.") ; break ; } } @@ -2026,7 +2023,7 @@ G4double G4Cons::DistanceToOut( const G4ThreeVector& p, G4double G4Cons::DistanceToOut(const G4ThreeVector& p) const { - G4double safe,rho,safeR1,safeR2,safeZ ; + G4double safe=0.0,rho,safeR1,safeR2,safeZ ; G4double tanRMin,secRMin,pRMin ; G4double tanRMax,secRMax,pRMax ; G4double safePhi,phiC,cosPhiC,sinPhiC,ePhi ; @@ -2043,9 +2040,8 @@ G4double G4Cons::DistanceToOut(const G4ThreeVector& p) const G4cout << "p.z() = " << p.z()/mm << " mm" << G4endl << G4endl ; G4cout << "pho at z = " << sqrt( p.x()*p.x()+p.y()*p.y() )/mm << " mm" << G4endl << G4endl ; - - G4cout << "G4Cons::DistanceToOut(p) - point p is outside ?!" << G4endl ; - G4cerr << "G4Cons::DistanceToOut(p) - point p is outside ?!" << G4endl ; + G4Exception("G4Cons::DistanceToOut(p)", + "Notification", JustWarning, "Point p is outside !?" ); } #endif @@ -2185,7 +2181,9 @@ G4Cons::CreateRotatedVertices(const G4AffineTransform& pTransform) const else { DumpInfo(); - G4Exception("G4Cons::CreateRotatedVertices() - Out of memory !"); + G4Exception("G4Cons::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); } return vertices ; } diff --git a/source/geometry/solids/CSG/src/G4Orb.cc b/source/geometry/solids/CSG/src/G4Orb.cc new file mode 100644 index 0000000000..b2a40f16d6 --- /dev/null +++ b/source/geometry/solids/CSG/src/G4Orb.cc @@ -0,0 +1,612 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4Orb.cc,v 1.9 2003/11/05 10:56:58 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// class G4Orb +// +// Implementation for G4Orb class +// +// History: +// +// 20.08.03 V.Grichine - created +// -------------------------------------------------------------------- + +#include + +#include "G4Orb.hh" + +#include "G4VoxelLimits.hh" +#include "G4AffineTransform.hh" + +#include "G4VPVParameterisation.hh" + +#include "meshdefs.hh" + +#include "G4VGraphicsScene.hh" +#include "G4Polyhedron.hh" +#include "G4NURBS.hh" +#include "G4NURBSbox.hh" + +// Private enum: Not for external use - used by distanceToOut + +enum ESide {kNull,kRMax}; + +// used by normal + +enum ENorm {kNRMax}; + + +const G4double G4Orb::fEpsilon = 2.e-11; // relative tolerance of fRmax + +//////////////////////////////////////////////////////////////////////// +// +// constructor - check positive radius +// + +G4Orb::G4Orb( const G4String& pName,G4double pRmax ) +: G4CSGSolid(pName) +{ + + // Check radius + + if (pRmax >= 10*kCarTolerance ) fRmax = pRmax; + else + { + G4Exception("G4Orb::G4Orb()", "InvalidSetup", FatalException, + "Invalid radius > 10*kCarTolerance."); + } + fRmaxTolerance = std::max( kRadTolerance, fEpsilon*fRmax); + +} + +///////////////////////////////////////////////////////////////////// +// +// Destructor + +G4Orb::~G4Orb() +{ +} + + +////////////////////////////////////////////////////////////////////////// +// +// Dispatch to parameterisation for replication mechanism dimension +// computation & modification. + +void G4Orb::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep) +{ + p->ComputeDimensions(*this,n,pRep); +} + +//////////////////////////////////////////////////////////////////////////// +// +// Calculate extent under transform and specified limit + +G4bool G4Orb::CalculateExtent( const EAxis pAxis, + const G4VoxelLimits& pVoxelLimit, + const G4AffineTransform& pTransform, + G4double& pMin, G4double& pMax ) const +{ + // 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 diff1,diff2,maxDiff,newMin,newMax; + G4double xoff1,xoff2,yoff1,yoff2; + + xoffset=pTransform.NetTranslation().x(); + xMin=xoffset-fRmax; + xMax=xoffset+fRmax; + + if (pVoxelLimit.IsXLimited()) + { + if ( (xMin>pVoxelLimit.GetMaxXExtent()+kCarTolerance) + || (xMaxpVoxelLimit.GetMaxXExtent()) + { + xMax=pVoxelLimit.GetMaxXExtent(); + } + } + } + yoffset=pTransform.NetTranslation().y(); + yMin=yoffset-fRmax; + yMax=yoffset+fRmax; + + if (pVoxelLimit.IsYLimited()) + { + if ( (yMin>pVoxelLimit.GetMaxYExtent()+kCarTolerance) + || (yMaxpVoxelLimit.GetMaxYExtent()) + { + yMax=pVoxelLimit.GetMaxYExtent(); + } + } + } + zoffset=pTransform.NetTranslation().z(); + zMin=zoffset-fRmax; + zMax=zoffset+fRmax; + + if (pVoxelLimit.IsZLimited()) + { + if ( (zMin>pVoxelLimit.GetMaxZExtent()+kCarTolerance) + || (zMaxpVoxelLimit.GetMaxZExtent()) + { + zMax=pVoxelLimit.GetMaxZExtent(); + } + } + } + + // Known to cut sphere + + switch (pAxis) + { + case kXAxis: + yoff1=yoffset-yMin; + yoff2=yMax-yoffset; + + if ( yoff1 >= 0 && yoff2 >= 0 ) + { + // Y limits cross max/min x => no change + // + pMin=xMin; + pMax=xMax; + } + else + { + // Y limits don't cross max/min x => compute max delta x, + // hence new mins/maxs + // + diff1=sqrt(fRmax*fRmax-yoff1*yoff1); + diff2=sqrt(fRmax*fRmax-yoff2*yoff2); + maxDiff=(diff1>diff2) ? diff1:diff2; + newMin=xoffset-maxDiff; + newMax=xoffset+maxDiff; + pMin=(newMinxMax) ? xMax : newMax; + } + break; + case kYAxis: + xoff1=xoffset-xMin; + xoff2=xMax-xoffset; + if (xoff1>=0&&xoff2>=0) + { + // X limits cross max/min y => no change + // + pMin=yMin; + pMax=yMax; + } + else + { + // X limits don't cross max/min y => compute max delta y, + // hence new mins/maxs + // + diff1=sqrt(fRmax*fRmax-xoff1*xoff1); + diff2=sqrt(fRmax*fRmax-xoff2*xoff2); + maxDiff=(diff1>diff2) ? diff1:diff2; + newMin=yoffset-maxDiff; + newMax=yoffset+maxDiff; + pMin=(newMinyMax) ? yMax : newMax; + } + break; + case kZAxis: + pMin=zMin; + pMax=zMax; + break; + default: + break; + } + pMin -= fRmaxTolerance; + pMax += fRmaxTolerance; + + return true; + +} + +/////////////////////////////////////////////////////////////////////////// +// +// Return whether point inside/outside/on surface +// Split into radius checks +// + +EInside G4Orb::Inside( const G4ThreeVector& p ) const +{ + G4double rad2,tolRMax; + EInside in; + + + rad2 = p.x()*p.x()+p.y()*p.y()+p.z()*p.z() ; + + // G4double rad = sqrt(rad2); + // Check radial surface + // sets `in' + + tolRMax = fRmax - fRmaxTolerance*0.5 ; + + if ( rad2 <= tolRMax*tolRMax ) in = kInside ; + else + { + tolRMax = fRmax + fRmaxTolerance*0.5 ; + if ( rad2 <= tolRMax*tolRMax ) in = kSurface ; + else in = kOutside ; + } + return in; +} + +///////////////////////////////////////////////////////////////////// +// +// Return unit normal of surface closest to p +// - note if point on z axis, ignore phi divided sides +// - unsafe if point close to z axis a rmin=0 - no explicit checks + +G4ThreeVector G4Orb::SurfaceNormal( const G4ThreeVector& p ) const +{ + ENorm side = kNRMax; + G4ThreeVector norm; + G4double rad = sqrt(p.x()*p.x()+p.y()*p.y()+p.z()*p.z()); + + switch (side) + { + case kNRMax: + norm = G4ThreeVector(p.x()/rad,p.y()/rad,p.z()/rad); + break; + default: + DumpInfo(); + G4Exception("G4Orb::SurfaceNormal()", "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); + break; + } + + return norm; +} + +/////////////////////////////////////////////////////////////////////////////// +// +// Calculate distance to shape from outside, along normalised vector +// - return kInfinity if no intersection, or intersection distance <= tolerance +// +// -> If point is outside outer radius, compute intersection with rmax +// - if no intersection return +// - if valid phi,theta return intersection Dist + +G4double G4Orb::DistanceToIn( const G4ThreeVector& p, + const G4ThreeVector& v ) const +{ + G4double snxt = kInfinity ; // snxt = default return value + + G4double rad2, pDotV3d, tolORMax2, tolIRMax2 ; + G4double c, d2, s = kInfinity ; + + // General Precalcs + + rad2 = p.x()*p.x() + p.y()*p.y() + p.z()*p.z() ; + pDotV3d = p.x()*v.x() + p.y()*v.y() + p.z()*v.z() ; + + // Radial Precalcs + + tolORMax2 = (fRmax+fRmaxTolerance*0.5)*(fRmax+fRmaxTolerance*0.5) ; + tolIRMax2 = (fRmax-fRmaxTolerance*0.5)*(fRmax-fRmaxTolerance*0.5) ; + + // Outer spherical shell intersection + // - Only if outside tolerant fRmax + // - Check for if inside and outer G4Orb heading through solid (-> 0) + // - No intersect -> no intersection with G4Orb + // + // Shell eqn: x^2+y^2+z^2 = RSPH^2 + // + // => (px+svx)^2+(py+svy)^2+(pz+svz)^2=R^2 + // + // => (px^2+py^2+pz^2) +2s(pxvx+pyvy+pzvz)+s^2(vx^2+vy^2+vz^2)=R^2 + // => rad2 +2s(pDotV3d) +s^2 =R^2 + // + // => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) + + c = rad2 - fRmax*fRmax ; + + if ( c > fRmaxTolerance*fRmax ) + { + // If outside tolerant boundary of outer G4Orb + // [ should be sqrt(rad2) - fRmax > fRmaxTolerance*0.5 ] + + d2 = pDotV3d*pDotV3d - c ; + + if ( d2 >= 0 ) + { + s = -pDotV3d - sqrt(d2) ; + + if (s >= 0 ) return snxt = s; + + } + else // No intersection with G4Orb + { + return snxt = kInfinity; + } + } + else + { + if ( c > -fRmaxTolerance*fRmax ) // on surface + { + if ( pDotV3d >= 0 ) return snxt = kInfinity; + else return snxt = 0.; + } + else // inside ??? + { + G4cout<<"G4Orb::DistanceToIn(p,v) is called from inside ???"< 0) + // - No intersect -> no intersection with G4Orb + // + // Shell eqn: x^2+y^2+z^2=RSPH^2 + // + // => (px+svx)^2+(py+svy)^2+(pz+svz)^2=R^2 + // + // => (px^2+py^2+pz^2) +2s(pxvx+pyvy+pzvz)+s^2(vx^2+vy^2+vz^2)=R^2 + // => rad2 +2s(pDotV3d) +s^2 =R^2 + // + // => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) + + const G4double Rmax_plus = fRmax + fRmaxTolerance*0.5; + + if( rad2 <= Rmax_plus*Rmax_plus ) + { + c = rad2-fRmax*fRmax ; + + if ( c < fRmaxTolerance*fRmax) + { + // Within tolerant Outer radius + // + // The test is + // rad - fRmax < 0.5*fRmaxTolerance + // => rad < fRmax + 0.5*kRadTol + // => rad2 < (fRmax + 0.5*kRadTol)^2 + // => rad2 < fRmax^2 + 2.*0.5*fRmax*kRadTol + 0.25*kRadTol*kRadTol + // => rad2 - fRmax^2 <~ fRmax*kRadTol + + d2 = pDotV3d*pDotV3d - c; + + if( ( c > -fRmaxTolerance*fRmax) && // on tolerant surface + ( ( pDotV3d >= 0 ) || ( d2 < 0 )) ) // leaving outside from Rmax + // not re-entering + { + if(calcNorm) + { + *validNorm = true ; + *n = G4ThreeVector(p.x()/fRmax,p.y()/fRmax,p.z()/fRmax) ; + } + return snxt = 0; + } + else + { + snxt = -pDotV3d + sqrt(d2); // second root since inside Rmax + side = kRMax ; + } + } + } + else // p is outside ??? + { + 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 << "Rp = "<< sqrt( p.x()*p.x()+p.y()*p.y()+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 << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; + G4cout<<"G4Orb::DistanceToOut(p,v,...): snxt = kInfinity ???"< || at l.451 -// 19.06.02 V.Grichine: bug fixed in Inside(p), && -> && fDTheta - kAngTolerance // -// ******************************************************************** +// 30.10.03 J.Apostolakis: new algorithm in Inside for SPhi-sections +// 29.10.03 J.Apostolakis: fix in Inside for SPhi-0.5*kAngTol < phi < SPhi, SPhi<0 +// 19.06.02 V.Grichine: bug fixed in Inside(p), && -> && fDTheta - kAngTolerance +// 30.01.02 V.Grichine: bug fixed in Inside(p), && -> || at l.451 +// 06.03.00 V.Grichine: modifications in Distance ToOut(p,v,...) +// 18.11.99 V.Grichine: side = kNull in Distance ToOut(p,v,...) +// 25.11.98 V.Grichine: bug fixed in DistanceToIn(p,v), phi intersections +// 12.11.98 V.Grichine: bug fixed in DistanceToIn(p,v), theta intersections +// 09.10.98 V.Grichine: modifications in Distance ToOut(p,v,...) +// 17.09.96 V.Grichine: final modifications to commit +// 28.03.94 P.Kent: old C++ code converted to tolerant geometry +// -------------------------------------------------------------------- #include @@ -53,6 +55,7 @@ #include "meshdefs.hh" #include "G4VGraphicsScene.hh" +#include "G4VisExtent.hh" #include "G4Polyhedron.hh" #include "G4NURBS.hh" #include "G4NURBSbox.hh" @@ -84,6 +87,7 @@ G4Sphere::G4Sphere( const G4String& pName, G4double pSTheta, G4double pDTheta ) : G4CSGSolid(pName) { + fEpsilon = 1.0e-14; // Check radii @@ -93,13 +97,11 @@ G4Sphere::G4Sphere( const G4String& pName, } else { - G4cout << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl - << " Invalid values for radii !" << G4endl - << " pRmin = " << pRmin << ", pRmax = " << pRmax << G4endl; G4cerr << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl << " Invalide values for radii ! - " << " pRmin = " << pRmin << ", pRmax = " << pRmax << G4endl; - G4Exception("G4Sphere::G4Sphere() - invalid radii"); + G4Exception("G4Sphere::G4Sphere()", "InvalidSetup", FatalException, + "Invalid radii"); } // Check angles @@ -114,13 +116,11 @@ G4Sphere::G4Sphere( const G4String& pName, } else { - G4cout << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl - << " Negative delta-Phi ! - " - << pDPhi << G4endl; G4cerr << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl << " Negative Z delta-Phi ! - " << pDPhi << G4endl; - G4Exception("G4Sphere::G4Sphere() - invalid DPhi"); + G4Exception("G4Sphere::G4Sphere()", "InvalidSetup", FatalException, + "Invalid DPhi."); } // Convert fSPhi to 0-2PI @@ -143,9 +143,9 @@ G4Sphere::G4Sphere( const G4String& pName, if (pSTheta<0 || pSTheta>M_PI) { - G4cout << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl; G4cerr << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl; - G4Exception("G4Sphere::G4Sphere() - stheta outside 0-PI range"); + G4Exception("G4Sphere::G4Sphere()", "InvalidSetup", FatalException, + "stheta outside 0-PI range."); } else { @@ -162,13 +162,11 @@ G4Sphere::G4Sphere( const G4String& pName, } else { - G4cout << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl - << " Negative delta-Theta ! - " - << pDTheta << G4endl; G4cerr << "ERROR - G4Sphere()::G4Sphere(): " << GetName() << G4endl << " Negative delta-Theta ! - " << pDTheta << G4endl; - G4Exception("G4Sphere::G4Sphere() - invalid pDTheta"); + G4Exception("G4Sphere::G4Sphere()", "InvalidSetup", FatalException, + "Invalid pDTheta."); } } @@ -433,12 +431,13 @@ EInside G4Sphere::Inside( const G4ThreeVector& p ) const { G4double rho,rho2,rad2,tolRMin,tolRMax; G4double pPhi,pTheta; - EInside in; + EInside in=kOutside; rho2 = p.x()*p.x() + p.y()*p.y() ; rad2 = rho2 + p.z()*p.z() ; - // G4double rad = sqrt(rad2); + // if(rad2 >= 1.369e+19) DBG(); + // G4double rad = sqrt(rad2); // Check radial surfaces // sets `in' @@ -446,8 +445,19 @@ EInside G4Sphere::Inside( const G4ThreeVector& p ) const else tolRMin = 0 ; tolRMax = fRmax - kRadTolerance*0.5 ; + // const G4double fractionTolerance = 1.0e-12; + const G4double flexRadMaxTolerance = // kRadTolerance; + std::max(kRadTolerance, fEpsilon * fRmax); + + const G4double Rmax_minus = fRmax - flexRadMaxTolerance*0.5; + const G4double flexRadMinTolerance = std::max(kRadTolerance, + fEpsilon * fRmin); + const G4double Rmin_plus = (fRmin > 0) ? fRmin + flexRadMinTolerance*0.5 : 0 ; - if ( rad2 <= tolRMax*tolRMax && rad2 >= tolRMin*tolRMin ) in = kInside ; +if(rad2 <= Rmax_minus*Rmax_minus && rad2 >= Rmin_plus*Rmin_plus) in = kInside ; + +// if ( rad2 <= tolRMax*tolRMax && rad2 >= tolRMin*tolRMin ) in = kInside ; + // if ( rad <= tolRMax && rad >= tolRMin ) in = kInside ; else { tolRMax = fRmax + kRadTolerance*0.5 ; @@ -455,68 +465,32 @@ EInside G4Sphere::Inside( const G4ThreeVector& p ) const if ( tolRMin < 0.0 ) tolRMin = 0.0 ; - if ( rad2 <= tolRMax*tolRMax && rad2 >= tolRMin*tolRMin ) in = kSurface ; + if ( rad2 <= tolRMax*tolRMax && rad2 >= tolRMin*tolRMin ) in = kSurface ; + // if ( rad <= tolRMax && rad >= tolRMin ) in = kSurface ; else return in = kOutside ; } // Phi boundaries : Do not check if it has no phi boundary! - // (in != kOutside) + // (in != kOutside). It is new J.Apostolakis proposal of 30.10.03 if ( ( fDPhi < 2*M_PI - kAngTolerance ) && ( (p.x() != 0.0 ) || (p.y() != 0.0) ) ) { pPhi = atan2(p.y(),p.x()) ; - if ( pPhi < 0.0) pPhi += 2*M_PI ; // 0<=pPhi<2pi - if ( fSPhi >= 0.0 ) - { - if (in == kInside) - { - if ( (pPhi < fSPhi + kAngTolerance*0.5) - || (pPhi > fSPhi + fDPhi - kAngTolerance*0.5) ) - { - // Not `inside' tolerant bounds - // - if ( (pPhi >= fSPhi - kAngTolerance*0.5) - && (pPhi <= fSPhi + fDPhi + kAngTolerance*0.5) ) - { - in = kSurface ; - } - else - { - return in = kOutside ; - } - } - } - else // in==kSurface - { - if ( (pPhi < fSPhi - kAngTolerance*0.5) - || (pPhi > fSPhi + fDPhi + kAngTolerance*0.5) ) // && bug216 - { - return in = kOutside ; - } - } - } - else - { - if ( pPhi < fSPhi + 2*M_PI ) pPhi += 2*M_PI ; - if ( (pPhi < fSPhi + 2*M_PI + kAngTolerance*0.5) - || (pPhi > fSPhi + fDPhi + 2*M_PI - kAngTolerance*0.5) ) - { - // Not `inside' tolerant bounds - // - if ( (pPhi >= fSPhi + 2*M_PI - kAngTolerance*0.5) - && (pPhi <= fSPhi + fDPhi + 2*M_PI + kAngTolerance*0.5) ) - { - in = kSurface ; - } - else - { - return in = kOutside ; - } - } + if ( pPhi < fSPhi - kAngTolerance*0.5 ) pPhi += 2*M_PI ; + else if ( pPhi > fSPhi + fDPhi + kAngTolerance*0.5 ) pPhi -= 2*M_PI; + + if ((pPhi < fSPhi - kAngTolerance*0.5) || + (pPhi > fSPhi + fDPhi + kAngTolerance*0.5) ) return in = kOutside ; + + else if (in == kInside) // else it's kSurface anyway already + { + if ( (pPhi < fSPhi + kAngTolerance*0.5) || + (pPhi > fSPhi + fDPhi - kAngTolerance*0.5) ) in = kSurface ; } } + // Theta bondaries // (in!=kOutside) @@ -550,6 +524,7 @@ EInside G4Sphere::Inside( const G4ThreeVector& p ) const } } } + // if (in == kInside) DBG(); return in; } @@ -693,7 +668,8 @@ G4ThreeVector G4Sphere::SurfaceNormal( const G4ThreeVector& p ) const break; default: DumpInfo(); - G4Exception("G4Sphere::SurfaceNormal() - Logic error"); + G4Exception("G4Sphere::SurfaceNormal()", "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); break; } // end case @@ -832,8 +808,11 @@ G4double G4Sphere::DistanceToIn( const G4ThreeVector& p, // => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) c = rad2 - fRmax*fRmax ; + const G4double flexRadMaxTolerance = // kRadTolerance; + std::max(kRadTolerance, fEpsilon * fRmax); - if (c > kRadTolerance*fRmax) + // if (c > kRadTolerance*fRmax) + if (c > flexRadMaxTolerance*fRmax) { // If outside toleranct boundary of outer G4Sphere // [should be sqrt(rad2)-fRmax > kRadTolerance*0.5] @@ -1181,8 +1160,7 @@ G4double G4Sphere::DistanceToIn( const G4ThreeVector& p, zi = p.z() ; rhoi2 = rho2 ; radi2 = rad2 ; - } - if ( (radi2 <= tolORMax2) + } if ( (radi2 <= tolORMax2) && (radi2 >= tolORMin2) && ((yi*cosCPhi-xi*sinCPhi) >= 0) ) { @@ -1681,7 +1659,7 @@ G4double G4Sphere::DistanceToIn( const G4ThreeVector& p, G4double G4Sphere::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe,safeRMin,safeRMax,safePhi,safeTheta; + G4double safe=0.0,safeRMin,safeRMax,safePhi,safeTheta; G4double rho2,rad,rho; G4double phiC,cosPhiC,sinPhiC,cosPsi,ePhi; G4double pTheta,dTheta1,dTheta2; @@ -1820,6 +1798,8 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, rho2=p.x()*p.x()+p.y()*p.y(); rad2=rho2+p.z()*p.z(); + // G4double rad=sqrt(rad2); + pTheta=atan2(sqrt(rho2),p.z()); pDotV2d=p.x()*v.x()+p.y()*v.y(); @@ -1873,17 +1853,19 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, // // => s=-pDotV3d+-sqrt(pDotV3d^2-(rad2-R^2)) // - const G4double fractionTolerance = 1.0e-14; - const G4double flexRadMaxTolerance = std::max(kRadTolerance, - fractionTolerance * fRmax); + // const G4double fractionTolerance = 1.0e-12; + const G4double flexRadMaxTolerance = // kRadTolerance; + std::max(kRadTolerance, fEpsilon * fRmax); + const G4double Rmax_plus = fRmax + flexRadMaxTolerance*0.5; const G4double flexRadMinTolerance = std::max(kRadTolerance, - fractionTolerance * fRmin); - const G4double Rmin_minus= (fRmin>0) ? fRmin-flexRadMinTolerance*0.5 : 0 ; + fEpsilon * fRmin); + const G4double Rmin_minus= (fRmin > 0) ? fRmin-flexRadMinTolerance*0.5 : 0 ; if(rad2 <= Rmax_plus*Rmax_plus && rad2 >= Rmin_minus*Rmin_minus) + // if(rad <= Rmax_plus && rad >= Rmin_minus) { - c=rad2-fRmax*fRmax ; + c = rad2 - fRmax*fRmax; if (c < flexRadMaxTolerance*fRmax) { @@ -1896,7 +1878,7 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, // => rad2 < fRmax^2 + 2.*0.5*fRmax*kRadTol + 0.25*kRadTol*kRadTol // => rad2 - fRmax^2 <~ fRmax*kRadTol - d2=pDotV3d*pDotV3d-c ; + d2 = pDotV3d*pDotV3d - c; if( (c >- flexRadMaxTolerance*fRmax) // on tolerant surface && ((pDotV3d >=0) || (d2 < 0)) ) // leaving outside from Rmax @@ -2471,10 +2453,35 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, G4cout << "v.z() = " << v.z() << G4endl << G4endl; G4cout << "Proposed distance :" << G4endl << G4endl; G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; - G4Exception("G4Sphere::DistanceToOut() - Invalid enum"); + G4Exception("G4Sphere::DistanceToOut(p,v,...)", + "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); break; } } + if (snxt == kInfinity) + { + G4cout.precision(24); + 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 << "Rp = "<< sqrt( p.x()*p.x()+p.y()*p.y()+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 << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; + G4Exception("G4Sphere::DistanceToOut(p,v,...)", + "Notification", JustWarning, + "Logic error: snxt = kInfinity ???"); + DBG(); + } + return snxt; } @@ -2484,7 +2491,7 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p, G4double G4Sphere::DistanceToOut( const G4ThreeVector& p ) const { - G4double safe,safeRMin,safeRMax,safePhi,safeTheta; + G4double safe=0.0,safeRMin,safeRMax,safePhi,safeTheta; G4double rho2,rad,rho; G4double phiC,cosPhiC,sinPhiC,ePhi; G4double pTheta,dTheta1,dTheta2; @@ -2502,8 +2509,8 @@ G4double G4Sphere::DistanceToOut( const G4ThreeVector& p ) const 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 << "G4Sphere::DistanceToOut(p) - point p is outside ?!" << G4endl ; - G4cerr << "G4Sphere::DistanceToOut(p) - point p is outside ?!" << G4endl ; + G4Exception("G4Sphere::DistanceToOut(p)", + "Notification", JustWarning, "Point p is outside !?" ); } #endif @@ -2703,7 +2710,9 @@ G4Sphere::CreateRotatedVertices( const G4AffineTransform& pTransform, else { DumpInfo(); - G4Exception("G4Sphere::CreateRotatedVertices() - Out of memory !"); + G4Exception("G4Sphere::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); } delete[] cosCrossTheta; @@ -2747,6 +2756,12 @@ std::ostream& G4Sphere::StreamInfo( std::ostream& os ) const // // Methods for visualisation +G4VisExtent G4Sphere::GetExtent() const +{ + return G4VisExtent(-fRmax, fRmax,-fRmax, fRmax,-fRmax, fRmax ); +} + + void G4Sphere::DescribeYourselfTo ( G4VGraphicsScene& scene ) const { scene.AddThis (*this); diff --git a/source/geometry/solids/CSG/src/G4Torus.cc b/source/geometry/solids/CSG/src/G4Torus.cc index 684e2d9dff..4ee43e22f1 100644 --- a/source/geometry/solids/CSG/src/G4Torus.cc +++ b/source/geometry/solids/CSG/src/G4Torus.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Torus.cc,v 1.29 2003/06/16 16:53:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Torus.cc,v 1.33 2003/11/03 18:17:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Torus @@ -39,7 +39,7 @@ // 03.10.00 E.Medernach: SafeNewton added // 11.01.01 E.Medernach: Use G4PolynomialSolver to find roots // -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4Torus.hh" @@ -89,13 +89,11 @@ G4Torus::SetAllParameters( G4double pRmin, } else { - G4cout << "ERROR - G4Torus()::SetAllParameters(): " << GetName() << G4endl - << " Invalid swept radius !" << G4endl - << "pRtor = " << pRtor << ", pRmax = " << pRmax << G4endl; G4cerr << "ERROR - G4Torus()::SetAllParameters(): " << GetName() << G4endl << " Invalid swept radius !" << G4endl << "pRtor = " << pRtor << ", pRmax = " << pRmax << G4endl; - G4Exception("G4Torus::SetAllParameters() - invalid swept radius"); + G4Exception("G4Torus::SetAllParameters()", + "InvalidSetup", FatalException, "Invalid swept radius."); } // Check radii @@ -108,13 +106,11 @@ G4Torus::SetAllParameters( G4double pRmin, } else { - G4cout << "ERROR - G4Torus()::SetAllParameters(): " << GetName() << G4endl - << " Invalid values for radii !" << G4endl - << " pRmin = " << pRmin << ", pRmax = " << pRmax << G4endl; G4cerr << "ERROR - G4Torus()::SetAllParameters(): " << GetName() << G4endl << " Invalid values for radii !" << G4endl << " pRmin = " << pRmin << ", pRmax = " << pRmax << G4endl; - G4Exception("G4Torus::SetAllParameters() - invalid radii"); + G4Exception("G4Torus::SetAllParameters()", + "InvalidSetup", FatalException, "Invalid radii."); } // Check angles @@ -125,13 +121,11 @@ G4Torus::SetAllParameters( G4double pRmin, if (pDPhi > 0) fDPhi = pDPhi ; else { - G4cout << "ERROR - G4Torus::SetAllParameters(): " << GetName() << G4endl - << " Negative delta-Phi ! - " - << pDPhi << G4endl; G4cerr << "ERROR - G4Torus::SetAllParameters(): " << GetName() << G4endl << " Negative Z delta-Phi ! - " << pDPhi << G4endl; - G4Exception("G4Torus::SetAllParameters() - invalid dphi"); + G4Exception("G4Torus::SetAllParameters()", + "InvalidSetup", FatalException, "Invalid dphi."); } } @@ -1134,7 +1128,9 @@ G4ThreeVector G4Torus::SurfaceNormal( const G4ThreeVector& p ) const break; default: DumpInfo(); - G4Exception("G4Torus::SurfaceNormal() - Logic error"); + G4Exception("G4Torus::SurfaceNormal()", + "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); break ; } return norm ; @@ -1508,7 +1504,7 @@ G4double G4Torus::DistanceToIn( const G4ThreeVector& p, G4double G4Torus::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe, safe1, safe2 ; + G4double safe=0.0, safe1, safe2 ; G4double phiC, cosPhiC, sinPhiC, safePhi, ePhi, cosPsi ; G4double rho2, rho, pt2, pt ; @@ -2075,7 +2071,9 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, G4cout << "v.z() = " << v.z() << G4endl << G4endl; G4cout << "Proposed distance :" << G4endl << G4endl; G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl; - G4Exception("G4Torus::DistanceToOut() - Invalid enum"); + G4Exception("G4Torus::DistanceToOut()", + "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); break; } } @@ -2094,7 +2092,7 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p, G4double G4Torus::DistanceToOut( const G4ThreeVector& p ) const { - G4double safe,safeR1,safeR2; + G4double safe=0.0,safeR1,safeR2; G4double rho2,rho,pt2,pt ; G4double safePhi,phiC,cosPhiC,sinPhiC,ePhi; rho2 = p.x()*p.x() + p.y()*p.y() ; @@ -2112,8 +2110,8 @@ G4double G4Torus::DistanceToOut( const G4ThreeVector& p ) const 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 << "G4Torus::DistanceToOut(p) - point p is outside ?!" << G4endl ; - G4cerr << "G4Torus::DistanceToOut(p) - point p is outside ?!" << G4endl ; + G4Exception("G4Torus::DistanceToOut(p)", + "Notification", JustWarning, "Point p is outside !?" ); } #endif #if DEBUGTORUS @@ -2232,7 +2230,9 @@ G4Torus::CreateRotatedVertices( const G4AffineTransform& pTransform, else { DumpInfo(); - G4Exception("G4Torus::CreateRotatedVertices() - Out of memory !"); + G4Exception("G4Torus::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); } return vertices; } diff --git a/source/geometry/solids/CSG/src/G4Trap.cc b/source/geometry/solids/CSG/src/G4Trap.cc index 14fd27ab8a..17ab1c9282 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.17 2003/06/16 16:53:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Trap.cc,v 1.22 2003/12/04 10:44:07 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4Trap // @@ -36,10 +36,10 @@ // 04.06.99 S.Giani: Fixed CalculateExtent in rotated case. // 19.11.99 V.Grichine: kUndef was added to Eside enum // 13.12.99 V.Grichine: bug fixed in DistanceToIn(p,v) -// -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4Trap.hh" +#include "globals.hh" #include "G4VoxelLimits.hh" #include "G4AffineTransform.hh" @@ -106,19 +106,14 @@ G4Trap::G4Trap( const G4String& pName, } else { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl - << " Invalid dimensions !" << G4endl - << " X - " - << pDx1 << ", " << pDx2 << ", " << pDx3 << ", " << pDx4 << G4endl - << " Y - " << pDy1 << ", " << pDy2 << G4endl - << " Z - " << pDz << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl << " Invalid dimensions !" << G4endl << " X - " << pDx1 << ", " << pDx2 << ", " << pDx3 << ", " << pDx4 << G4endl << " Y - " << pDy1 << ", " << pDy2 << G4endl << " Z - " << pDz << G4endl; - G4Exception("G4Trap::G4Trap() - Invalid length G4Trap parameters"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Invalid length G4Trap parameters."); } } @@ -149,7 +144,8 @@ G4Trap::G4Trap( const G4String& pName, if (!good) { DumpInfo(); - G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~-Y not planar."); } // Top side with normal approx. +Y @@ -157,9 +153,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~+Y not planar."); } // Front side with normal approx. -X @@ -167,9 +163,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~-X not planar."); } // Back side iwth normal approx. +X @@ -177,9 +173,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~+X not planar."); } fDz = (pt[7]).z() ; @@ -199,9 +195,9 @@ G4Trap::G4Trap( const G4String& pName, } else { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - Invalid vertice coordinates"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Invalid vertice coordinates."); } } @@ -258,9 +254,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~-Y not planar."); } // Top side with normal approx. +Y @@ -268,9 +264,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~+Y not planar."); } // Front side with normal approx. -X @@ -278,9 +274,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~-X not planar."); } // Back side iwth normal approx. +X @@ -288,16 +284,16 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~+X not planar."); } } else { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - Invalid length G4Trap parameters"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Invalid length G4Trap parameters."); } } @@ -353,9 +349,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~-Y not planar."); } // Top side with normal approx. +Y @@ -363,9 +359,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~+Y not planar."); } // Front side with normal approx. -X @@ -373,9 +369,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~-X not planar."); } // Back side iwth normal approx. +X @@ -383,16 +379,16 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~+X not planar."); } } else { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - Invalid length G4Trap parameters"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Invalid length G4Trap parameters."); } } @@ -449,9 +445,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~-Y not planar."); } // Top side with normal approx. +Y @@ -459,9 +455,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~+Y not planar."); } // Front side with normal approx. -X @@ -469,9 +465,9 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~-X not planar."); } // Back side iwth normal approx. +X @@ -479,16 +475,16 @@ G4Trap::G4Trap( const G4String& pName, good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Face at ~+X not planar."); } } else { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - Invalid length G4Trap parameters"); + G4Exception("G4Trap::G4Trap()", "InvalidSetup", FatalException, + "Invalid length G4Trap parameters."); } } @@ -512,6 +508,7 @@ G4Trap::G4Trap( const G4String& pName ) fDx4 (1.), fTalpha2 (0.) { + MakePlanes(); } /////////////////////////////////////////////////////////////////////// @@ -551,19 +548,14 @@ void G4Trap::SetAllParameters ( G4double pDz, } else { - G4cout << "ERROR - G4Trap()::SetAllParameters(): " << GetName() << G4endl - << " Invalid dimensions !" << G4endl - << " X - " - << pDx1 << ", " << pDx2 << ", " << pDx3 << ", " << pDx4 << G4endl - << " Y - " << pDy1 << ", " << pDy2 << G4endl - << " Z - " << pDz << G4endl; G4cerr << "ERROR - G4Trap()::SetAllParameters(): " << GetName() << G4endl << " Invalid dimensions !" << G4endl << " X - " << pDx1 << ", " << pDx2 << ", " << pDx3 << ", " << pDx4 << G4endl << " Y - " << pDy1 << ", " << pDy2 << G4endl << " Z - " << pDz << G4endl; - G4Exception("G4Trap::SetAllParameters() - Invalid Length Parameters"); + G4Exception("G4Trap::SetAllParameters()", "InvalidSetup", + FatalException, "Invalid Length Parameters."); } } @@ -599,9 +591,9 @@ G4bool G4Trap::MakePlanes() good=MakePlane(pt[0],pt[4],pt[5],pt[1],fPlanes[0]) ; if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-Y not planar"); + G4cerr << "ERROR - G4Trap()::MakePlanes(): " << GetName() << G4endl; + G4Exception("G4Trap::MakePlanes()", "InvalidSetup", FatalException, + "Face at ~-Y not planar."); } // Top side with normal approx. +Y @@ -609,9 +601,9 @@ G4bool G4Trap::MakePlanes() good=MakePlane(pt[2],pt[3],pt[7],pt[6],fPlanes[1]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+Y not planar"); + G4cerr << "ERROR - G4Trap()::MakePlanes(): " << GetName() << G4endl; + G4Exception("G4Trap::MakePlanes()", "InvalidSetup", FatalException, + "Face at ~+Y not planar."); } // Front side with normal approx. -X @@ -619,9 +611,9 @@ G4bool G4Trap::MakePlanes() good=MakePlane(pt[0],pt[2],pt[6],pt[4],fPlanes[2]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~-X not planar"); + G4cerr << "ERROR - G4Trap()::MakePlanes(): " << GetName() << G4endl; + G4Exception("G4Trap::MakePlanes()", "InvalidSetup", FatalException, + "Face at ~-X not planar."); } // Back side iwth normal approx. +X @@ -629,9 +621,9 @@ G4bool G4Trap::MakePlanes() good=MakePlane(pt[1],pt[5],pt[7],pt[3],fPlanes[3]); if (!good) { - G4cout << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4cerr << "ERROR - G4Trap()::G4Trap(): " << GetName() << G4endl; - G4Exception("G4Trap::G4Trap() - face at ~+X not planar"); + G4cerr << "ERROR - G4Trap()::MakePlanes(): " << GetName() << G4endl; + G4Exception("G4Trap::MakePlanes()", "InvalidSetup", FatalException, + "Face at ~+X not planar"); } return good; @@ -701,9 +693,9 @@ G4bool G4Trap::MakePlane( const G4ThreeVector& p1, } else { - G4cout << "ERROR - G4Trap()::MakePlane(): " << GetName() << G4endl; G4cerr << "ERROR - G4Trap()::MakePlane(): " << GetName() << G4endl; - G4Exception("G4Trap::MakePlane() - Invalid parameters") ; + G4Exception("G4Trap::MakePlanes()", "InvalidSetup", FatalException, + "Invalid parameters.") ; } // Calculate D: p1 in in plane so D=-n.p1.Vect() @@ -1236,7 +1228,7 @@ G4double G4Trap::DistanceToIn( const G4ThreeVector& p, G4double G4Trap::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe,Dist; + G4double safe=0.0,Dist; G4int i; safe=fabs(p.z())-fDz; for (i=0;i<4;i++) @@ -1531,7 +1523,7 @@ G4double G4Trap::DistanceToOut(const G4ThreeVector& p, const G4ThreeVector& v, G4double G4Trap::DistanceToOut( const G4ThreeVector& p ) const { - G4double safe,Dist; + G4double safe=0.0,Dist; G4int i; #ifdef G4CSGDEBUG @@ -1544,8 +1536,8 @@ G4double G4Trap::DistanceToOut( const G4ThreeVector& p ) const 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 << "G4Trap::DistanceToOut(p) - point p is outside ?!" << G4endl ; - G4cerr << "G4Trap::DistanceToOut(p) - point p is outside ?!" << G4endl ; + G4Exception("G4Trap::DistanceToOut(p)", + "Notification", JustWarning, "Point p is outside !?" ); } #endif @@ -1610,7 +1602,9 @@ G4Trap::CreateRotatedVertices( const G4AffineTransform& pTransform ) const else { DumpInfo(); - G4Exception("G4Trap::CreateRotatedVertices() - Out of memory !"); + G4Exception("G4Trap::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); } return vertices; } diff --git a/source/geometry/solids/CSG/src/G4Trd.cc b/source/geometry/solids/CSG/src/G4Trd.cc index 714cacccc6..304c982fc1 100644 --- a/source/geometry/solids/CSG/src/G4Trd.cc +++ b/source/geometry/solids/CSG/src/G4Trd.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Trd.cc,v 1.13 2003/06/16 16:53:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Trd.cc,v 1.17 2003/11/03 18:17:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Implementation for G4Trd class @@ -30,8 +30,7 @@ // History: // ~1996, V.Grichine, 1st implementation based on old code of P.Kent // 07.05.00, V.Grichine, in d = DistanceToIn(p,v), if d<0.5*kCarTolerance, d=0 -// -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4Trd.hh" @@ -87,19 +86,15 @@ void G4Trd::CheckAndSetAllParameters ( G4double pdx1, G4double pdx2, } else { - G4cout << "ERROR - G4Trd()::CheckAndSetAllParameters(): " << GetName() - << G4endl - << " Invalid dimensions, some are < 0 !" << G4endl - << " X - " << pdx1 << ", " << pdx2 << G4endl - << " Y - " << pdy1 << ", " << pdy2 << G4endl - << " Z - " << pdz << G4endl; G4cerr << "ERROR - G4Trd()::CheckAndSetAllParameters(): " << GetName() << G4endl << " Invalid dimensions, some are < 0 !" << G4endl << " X - " << pdx1 << ", " << pdx2 << G4endl << " Y - " << pdy1 << ", " << pdy2 << G4endl << " Z - " << pdz << G4endl; - G4Exception("G4Trd::CheckAndSetAllParameters() - Invalid parameters"); + G4Exception("G4Trd::CheckAndSetAllParameters()", + "InvalidSetup", FatalException, + "Invalid parameters."); } } } @@ -702,7 +697,7 @@ G4double G4Trd::DistanceToIn( const G4ThreeVector& p, G4double G4Trd::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe; + G4double safe=0.0; G4double tanxz,distx,safx; G4double tanyz,disty,safy; G4double zbase; @@ -1125,7 +1120,9 @@ G4double G4Trd::DistanceToOut( const G4ThreeVector& p, break; default: DumpInfo(); - G4Exception("G4Trd::DistanceToOut() - Invalid enum"); + G4Exception("G4Trd::DistanceToOut()", + "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); break; } } @@ -1139,7 +1136,7 @@ G4double G4Trd::DistanceToOut( const G4ThreeVector& p, G4double G4Trd::DistanceToOut( const G4ThreeVector& p ) const { - G4double safe; + G4double safe=0.0; G4double tanxz,xdist,saf1; G4double tanyz,ydist,saf2; G4double zbase; @@ -1154,8 +1151,8 @@ G4double G4Trd::DistanceToOut( const G4ThreeVector& p ) const 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 << "G4Trd::DistanceToOut(p) - point p is outside ?!" << G4endl ; - G4cerr << "G4Trd::DistanceToOut(p) - point p is outside ?!" << G4endl ; + G4Exception("G4Trd::DistanceToOut(p)", + "Notification", JustWarning, "Point p is outside !?" ); } #endif @@ -1222,7 +1219,9 @@ G4Trd::CreateRotatedVertices( const G4AffineTransform& pTransform ) const else { DumpInfo(); - G4Exception("G4Trd::CreateRotatedVertices() - Out of memory"); + G4Exception("G4Trd::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); } return vertices; } diff --git a/source/geometry/solids/CSG/src/G4Tubs.cc b/source/geometry/solids/CSG/src/G4Tubs.cc index 094aa77b98..7bd9a9238f 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.36 2003/06/16 16:53:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Tubs.cc,v 1.40 2003/11/03 18:17:32 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4Tubs @@ -48,8 +48,7 @@ // 20.02.01 V.Grichine: bug fixed in Inside(p) and CalculateExtent was // simplified base on G4Box::CalculateExtent // 20.07.01 V.Grichine: bug fixed in Inside(p) -// -// ******************************************************************** +// -------------------------------------------------------------------- #include "G4Tubs.hh" @@ -85,13 +84,11 @@ G4Tubs::G4Tubs( const G4String &pName, } else { - G4cout << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl - << " Negative Z half-length ! - " - << pDz << G4endl; G4cerr << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl << " Negative Z half-length ! - " << pDz << G4endl; - G4Exception("G4Tubs::G4Tubs() - invalid Z half-length"); + G4Exception("G4Tubs::G4Tubs()", "InvalidSetup", FatalException, + "Invalid Z half-length"); } if ( pRMin < pRMax && pRMin >= 0 ) // Check radii { @@ -100,13 +97,11 @@ G4Tubs::G4Tubs( const G4String &pName, } else { - G4cout << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl - << " Invalid values for radii !" << G4endl - << " pRMin = " << pRMin << ", pRMax = " << pRMax << G4endl; G4cerr << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl << " Invalid values for radii !" << G4endl << " pRMin = " << pRMin << ", pRMax = " << pRMax << G4endl; - G4Exception("G4Tubs::G4Tubs() - invalid radii"); + G4Exception("G4Tubs::G4Tubs()", "InvalidSetup", FatalException, + "Invalid radii."); } if ( pDPhi >= 2.0*M_PI ) // Check angles { @@ -120,13 +115,11 @@ G4Tubs::G4Tubs( const G4String &pName, } else { - G4cout << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl - << " Negative delta-Phi ! - " - << pDPhi << G4endl; G4cerr << "ERROR - G4Tubs()::G4Tubs(): " << GetName() << G4endl << " Negative delta-Phi ! - " << pDPhi << G4endl; - G4Exception("G4Tubs::G4Tubs() - invalid dphi"); + G4Exception("G4Tubs::G4Tubs()", "InvalidSetup", FatalException, + "Invalid dphi."); } } @@ -656,7 +649,8 @@ G4ThreeVector G4Tubs::SurfaceNormal( const G4ThreeVector& p ) const default: { DumpInfo(); - G4Exception("G4Tubs::SurfaceNormal() - Logic error") ; + G4Exception("G4Tubs::SurfaceNormal()", "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); break ; } } @@ -1037,7 +1031,7 @@ G4double G4Tubs::DistanceToIn( const G4ThreeVector& p, G4double G4Tubs::DistanceToIn( const G4ThreeVector& p ) const { - G4double safe, rho, safe1, safe2, safe3 ; + G4double safe=0.0, rho, safe1, safe2, safe3 ; G4double phiC, cosPhiC, sinPhiC, safePhi, ePhi, cosPsi ; rho = sqrt(p.x()*p.x() + p.y()*p.y()) ; @@ -1441,8 +1435,8 @@ G4double G4Tubs::DistanceToOut( const G4ThreeVector& p, G4cout << "v.z() = " << v.z() << G4endl << G4endl ; G4cout << "Proposed distance :" << G4endl << G4endl ; G4cout << "snxt = " << snxt/mm << " mm" << G4endl << G4endl ; - - G4Exception("G4Tubs::DistanceToOut() - Invalid enum") ; + G4Exception("G4Tubs::DistanceToOut()", "LogicError", FatalException, + "Undefined side for valid surface normal to solid."); break ; } } @@ -1456,7 +1450,7 @@ G4double G4Tubs::DistanceToOut( const G4ThreeVector& p, G4double G4Tubs::DistanceToOut( const G4ThreeVector& p ) const { - G4double safe, rho, safeR1, safeR2, safeZ ; + G4double safe=0.0, rho, safeR1, safeR2, safeZ ; G4double safePhi, phiC, cosPhiC, sinPhiC, ePhi ; rho = sqrt(p.x()*p.x() + p.y()*p.y()) ; @@ -1470,8 +1464,8 @@ G4double G4Tubs::DistanceToOut( const G4ThreeVector& p ) const 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 << "G4Tubs::DistanceToOut(p) - point p is outside !?" << G4endl ; - G4cerr << "G4Tubs::DistanceToOut(p) - point p is outside !?" << G4endl ; + G4Exception("G4Tubs::DistanceToOut(p)", + "Notification", JustWarning, "Point p is outside !?"); } #endif @@ -1604,7 +1598,9 @@ G4Tubs::CreateRotatedVertices( const G4AffineTransform& pTransform ) const else { DumpInfo(); - G4Exception("G4Tubs::CreateRotatedVertices() - Out of memory !"); + G4Exception("G4Tubs::CreateRotatedVertices()", + "FatalError", FatalException, + "Error in allocation of vertices. Out of memory !"); } return vertices ; } diff --git a/source/geometry/solids/GNUmakefile b/source/geometry/solids/GNUmakefile index c0990cf6eb..9fc9706407 100644 --- a/source/geometry/solids/GNUmakefile +++ b/source/geometry/solids/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2003/06/07 16:54:39 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2003/10/01 14:51:39 gcosmo Exp $ # -------------------------------------------------------------- # Makes libraries for each subdomain: # CSG, specific, Boolean, BREPS, STEP, STEPinterface. @@ -10,9 +10,6 @@ endif include $(G4INSTALL)/config/architecture.gmk SUBDIRS = CSG specific Boolean BREPS -ifdef G4USE_STEP - SUBDIRS += STEP STEPinterface -endif all: @for dir in $(SUBDIRS); do (cd $$dir; $(MAKE)); done diff --git a/source/geometry/solids/History b/source/geometry/solids/History index 7cf8eb6f16..b5eec29268 100644 --- a/source/geometry/solids/History +++ b/source/geometry/solids/History @@ -1,4 +1,4 @@ -$Id: History,v 1.11 2003/05/28 07:56:19 gcosmo Exp $ +$Id: History,v 1.13 2003/10/28 17:22:02 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,17 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +October, 28th, 2003 G.Cosmo - geomsolids-V05-02-01 +- Include tags: + geom-specific-V05-02-03, geom-csg-V05-02-02, geom-bool-V05-02-02, + breps-V05-02-01. + +September, 30th, 2003 G.Cosmo - geomsolids-V05-02-00 +- Archived solids/STEP and solids/STEPinterface modules. + Modified GNUmakefiles to cope with this. + Include tags: breps-V05-02-00, geom-bool-V05-02-00, geom-csg-V05-02-00, + geom-specific-V05-02-01, + May 28th, 2003 G. Cosmo - geomsolids-V05-01-00 - Modified GNUmakefile to make compilation of STEP and STEPinterface modules optional. By default compilation will not be triggered, it diff --git a/source/geometry/solids/STEP/GNUmakefile b/source/geometry/solids/STEP/GNUmakefile deleted file mode 100644 index 43785d00bc..0000000000 --- a/source/geometry/solids/STEP/GNUmakefile +++ /dev/null @@ -1,57 +0,0 @@ -# $Id: GNUmakefile,v 1.6 2002/07/04 16:17:48 gcosmo Exp $ -# ------------------------------------------------------------- -# GNUmakefile for STEP library. Gabriele Cosmo, 15/11/96. -# ------------------------------------------------------------- - -name := G4step - -ifndef G4INSTALL - G4INSTALL = ../../../.. -endif - -ifneq (,$(findstring DEC-cxx,$(G4SYSTEM))) - G4DEBUG := 1 -endif - -include $(G4INSTALL)/config/architecture.gmk - -CPPFLAGS += \ - -I$(G4BASE)/global/management/include \ - -I$(G4BASE)/global/HEPRandom/include \ - -I$(G4BASE)/global/HEPGeometry/include - -# To avoid incompatibilities with ANSI standard treatment of strings, the -# NIST STEP reader on gcc-2.95.X and later must be compiled in non-ANSI mode. -# -ifneq (,$(findstring g++,$(G4SYSTEM))) - ansi_options = -Wall -ansi -pedantic - NCXX = $(filter-out $(ansi_options),$(CXXFLAGS)) - NCPP = $(CPPFLAGS) - CXXFLAGS := $(NCXX) - CPPFLAGS := $(NCPP) -w -endif - -include $(G4INSTALL)/config/common.gmk - -# Fix for ISO AP203 geometry standard files to be always compiled without optimization. -# Compilation on DEC-cxx must moreover happen with no optimisation level AND debug. -# -CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) -CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O)) - -$(G4TMP)/$(G4SYSTEM)/$(name)/SdaiCONFIG_CONTROL_DESIGN.o: src/SdaiCONFIG_CONTROL_DESIGN.cc - @$(ECHO) Compiling SdaiCONFIG_CONTROL_DESIGN.cc ... - @$(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/SdaiCONFIG_CONTROL_DESIGN.cc -$(G4TMP)/$(G4SYSTEM)/$(name)/SdaiCONFIG_CONTROL_DESIGN_init.o: src/SdaiCONFIG_CONTROL_DESIGN_init.cc - @$(ECHO) Compiling SdaiCONFIG_CONTROL_DESIGN_init.cc ... - @$(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/SdaiCONFIG_CONTROL_DESIGN_init.cc - -ifneq (,$(findstring WIN32-VC,$(G4SYSTEM))) - CXXFLAGS_WITH_ZM = $(filter-out -Zm%,$(CXXFLAGS)) -Zm500 - -$(G4TMPDIR)/SdaiCONFIG_CONTROL_DESIGN.o: src/SdaiCONFIG_CONTROL_DESIGN.cc - @$(ECHO) Compiling SdaiCONFIG_CONTROL_DESIGN.cc ... - @$(CXX) $(CXXFLAGS_WITH_ZM) $(CPPFLAGS) -c $(OUT_OBJ)$@ \ - src/SdaiCONFIG_CONTROL_DESIGN.cc -endif - diff --git a/source/geometry/solids/STEP/History b/source/geometry/solids/STEP/History deleted file mode 100644 index f41cf4f1ff..0000000000 --- a/source/geometry/solids/STEP/History +++ /dev/null @@ -1,84 +0,0 @@ -$Id: History,v 1.11 2003/06/06 17:10:38 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 ! - - Please keep a summary of these message in geometry/History! - - ---------------------------------------------------------- - * Reverse chronological order (last date on top), please * - ---------------------------------------------------------- - -June 6, 2003 Gabriele Cosmo (STEP-V05-01-00) -- STEPattribute.h: commented unused definition of 'real' since clashing - with system headers. -- STEPattribute.cc, sdaiString.cc: removed usage of G4USE_STD_NAMESPACE - macro, according to migration from g4std wrappers. -- Replaced usage of G4std:: with std:: -- Replaced inclusion of g4std wrappers with real std headers. - -July 4, 2002 Gabriele Cosmo (STEP-V04-01-00) -- GNUmakefile: parse 'g++' string in G4SYSTEM to detect non-ISO setup for - gcc-2.95 and higher. - -November 29, 2001 Gabriele Cosmo (STEP-V03-02-01) -- Fixes for compilation on gcc-2.96.98 and gcc-3.0.2 compilers to overcome warnings - produced and fix std namespace problems in sdaiString.cc. - -September 19, 2001 Gabriele Cosmo (STEP-V03-02-00) -- SdaiCONFIG_CONTROL_DESIGN.cc: cleaned up warnings on SUN-CC. -- dirobj.cc: restored usage of strdup() and force non-ansi compilation in GNUmakefile - for Linux-g++, to avoid incompatibilities on the usage of C strings operations - when "-ansi -pedantic" is adopted. - -June 18, 2001 Gabriele Cosmo (STEP-V03-01-00) -- dirobj.cc: removed usage of strdup() to allow porting on Linux-g++ -ansi - setup. Replaced with existing solution for __O3DB__. - -April 20, 2001 Gabriele Cosmo -- Minor fixes for removing some pedantic warnings from Linux-g++, - modified files: scl_hash.cc, scl_string.cc. - -November 20, 2000 Gabriele Cosmo (STEP-V02-00-00) -- Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options: - o commented out variables declared and not used. - o fixed declaration of variables used before being initialised. - o dirobj.h: protected from missing definition of MAXNAMLEN, S_IFMT and - S_IFDIR originally defined in /usr/include/sys/stat.h. - o fixed order of initialisation of member data in constructors. - -June 14, 2000 Gabriele Cosmo (STEP-V01-01-00) -- Fixes for porting on Win/NT VC++: - o dirobj[.h.cc]: deactivated Reset() and Home() functions. - o scl_cf.h: undefine HAVE_UNISTD_H for WIN32. - o stat.h: don't use hard-coded path for on WIN32. - o ExpDict.cc: don't declare external memmove() for WIN32. - o STEPcomplex.cc, SdaiCONFIG_CONTROL_DESIGN.cc: use explicit typedef - StepApplicationInstanceType for SDAI::Application_instance and - StepSelectType for SDAI::Select respectively, when invoking a method - of the base class in scope. - -February 14, 2000 Gabriele Cosmo (STEP-V01-00-01) -- Fixes for porting on supported platforms/compilers: - o STEPfile.h: removed declaration of function HeaderId(int) - since not used and NOT implemented; - o sdai[.h.cc]: replaced use of MAXLONG and MINFLOAT with LONG_MAX - and FLT_MIN respectively. - o STEPfile_inline.cc: added explicit cast to float in argument for - 'ceil' function. - -January 31, 2000 Gabriele Cosmo (STEP-V01-00-00) -- Upgraded NIST STEP Reader to SCL (STEP Class Library) 3.2. -- Implemented porting on supported platforms/compilers. -- Implemented changes for ISO-ANSI C++ compliance. -- Added README and History files. diff --git a/source/geometry/solids/STEP/README b/source/geometry/solids/STEP/README deleted file mode 100644 index f5c09a77bf..0000000000 --- a/source/geometry/solids/STEP/README +++ /dev/null @@ -1,316 +0,0 @@ -$Id: README,v 1.1 2000/02/14 12:22:47 gcosmo Exp $ ------------------------------------------------------------------------------ - - NIST STEP Reader - ---------------- - -This directory contains the source code for the NIST STEP Reader as it has -been extracted from version 3.2 of SCL (the STEP Class Library). The code -has been ported on all supported Geant4 UNIX platforms-compilers: DEC-cxx, -HP-aCC, SUN-CC and Linux-g++. Modifications have also been applied in order -to make the code compilable on compilers requiring strict ISO-ANSI C++ -compliance. Some fixes have been introduced for reason of porting. -Here also follows part of the original README document part of the SCL -distribution; please, notice that only the part related to the STEP Reader -is relevant here. The code for the Application Protocol (Configuration -controlled design) has been generated by means of the standard fedex-plus -application through the AP203 control schema provided in the SCL package. - - GC ------------------------------------------------------------------------------ -README.scl (top level README) February 1998 - -THE NIST STEP TOOLSET -===================== - -Included in this release of the NIST STEP Toolset are - - STEP Class Library (SCL) - fedex_plus - fedex_idl - fedex_os - Data Probe application - Part 21 Reader application - mkProbe script - NIST EXPRESS Toolkit - NIST EXPRESS Pretty Printing Toolkit - -The focus of our work since our last release has been on developing a -reference implementation of the binding of EXPRESS to C++ and IDL as -specified by STEP's Parts 23 and 26 respectively. To this we have -added a persistence capability (based on the ObjectStore OODB from -Object Design, Inc) and a distribution capability (based on Orbix by -Iona Technologies, Ltd). We also experimented with the Open OODB from -Texas Instruments and with DSOM from IBM. - -The STEP Class Library (SCL) and fedex_plus are used to build -STEP-related applications in C++. They support STEP Parts 21 (the -exchange file format), 22 (the functional specification of STEP's -Standard Data Access Interface, SDAI), 23 (the C++ binding to SDAI), -and 26 (the IDL interface to SDAI). fedex_plus is an application of -the NIST EXPRESS Toolkit (based on STEP Part 11) which generates a C++ -class library representation of an EXPRESS schema based on STEP's Part -23. The generated classes work with the STEP Class Library. The NIST -EXPRESS Pretty Printing Toolkit is used to format and output EXPRESS. -fedex_os is used to generate software (in addition to fedex_plus) -needed to use SCL with the ObjectStore OODB. fedex_idl translates -EXPRESS to the Interface Definition Language (according to Part 26) -for use with Orbix. - -The Data Probe software and mkProbe script are used to generate -schema-specific class libraries (a.k.a. "Schema Class Library"), Data -Probe editors, and Part 21 file readers. mkProbe generates a C++ -library representing a schema (using fedex_plus) and links the schema -library with other libraries of the SCL and Data Probe to create a -schema specific editor, known as a Data Probe. The Data Probe is a -graphical editor for STEP data; it is used to browse and edit data -instances of the objects in an EXPRESS model. It may also be used to -visually browse the objects contained in the EXPRESS schema itself. -Data Probes are X Windows-based and use the InterViews Toolkit from -Stanford University. - -The Data Probe source code was designed with reusability in mind. The -runtime-code uses three class libraries: the STEP Class Library -(developed at NIST), the InterViews Toolkit (user interface -developer's toolkit from Stanford), and a standard C++ Class Library. -The NIST STEP Class Library is divided into component libraries -including STEP Core, Editor, Utilities, Data Access Interface, -Interviews extensions, and Probe. The STEP Core, Editor, and Utils -libraries can be used without the user interface libraries (Interviews -extensions and Probe) for applications needing to represent the -EXPRESS data structures. At this point the Data Access Interface is a -partial implementation of SDAI's Session schema. - -Dependencies between these modules have been minimized so that an -executable program, the Data Probe, can be easily reconfigured to -support different conceptual schemas. - -We have experimented with replacing the Interviews-based interface -with a tcl interface with good success; however, it is not in our work -plan to complete. If anyone is interested in extending the toolkit -with a more modern interface, we would be glad to discuss it with you. - -The Part 21 Reader was originally developed to test whether a Schema -Class built and linked without problems. It is also useful for -checking Part 21 files. It displays the error messages from the STEP -Class Library as a file is read. - - -SYSTEM REQUIREMENTS -=================== - -Depending on how you want to use the toolkit, additional pieces of -software will need to be available on your local system: - - - UNIX SunOS 4.1.x or Solaris 5.x operating system. - At NIST, the SCL including the Data Probe has been built on - SunOS workstations. The SCL without the Data Probe has been - built on Solaris. (We did not build the InterViews Library - on Solaris.) NOTE: earlier versions of the SCL 2.1 without - the Data Probe had been ported to AIX, HP, linux, and Windows NT. - - - a C++ compiler -- cfront version 2.1 or higher - - NOTE: The current SCL release has been built with SUN C/C++, - and GNU's gcc/g++ compilers. Earlier versions of the SCL were - built using CenterLine on SunOS and CSet++ on AIX. - - If you successfully port the current version to other - compilers and/or operating systems (and are willing to share) - please contact us (stepcl@cme.nist.gov) so that we can point - others to it. - - - The NIST EXPRESS Toolkit -- available from NIST - Included in this release; also available as: - ftp.cme.nist.gov:pub/step/npttools/exptk.tar.Z - - - The NIST EXPRESS Pretty Printer -- available from NIST - Included in this release; also available as: - ftp.cme.nist.gov:pub/step/npttools/exppp.tar.Z - -The following components are optional: - - - Version 3.1 of the InterViews Toolkit from Stanford. - ftp://interviews.stanford.edu:pub/3.1.tar.Z - - NOTE: InterViews is only needed for the Data Probe portion of - the toolkit. The STEP Class Library without the Data Probe - and InterViews has been built on more platforms than with these - components. - - - Orbix version 2.0. Available from Iona Technologies: -http://www.iona.com - - - Object Store version 4. Available from Object Design Inc.: -http://www.odi.com. - - -FOR MORE INFORMATION -==================== - -SCL HOME PAGE -------------- - -The SCL home page is located on the world wide web at, - -http://www.nist.gov/scl - -The SCL home page will provide important, up-to-date information on -the status of the SCL, new developments and fixes, links to related -software and projects, and may eventually contain an FAQ sheet. - -SCL DOCUMENTATION ------------------ - -Documentation can be accessed from the SCL world wide web home page -located at http://www.nist.gov/scl -The following files (in postscript format) are particularly relevant: - -Design of a C++ Software Library for Implementing EXPRESS: The NIST - STEP Class Library - -Data Probe User's Guide - -Data Probe: A Tool for EXPRESS-based Data - -Architecture for the Validation Testing System Software - -Validation Testing System Software Reusable Software Component Design - -Diagrams of basic SCL data structures - - -ISO DOCUMENTATION ------------------ - -Copies of the International Standard documents (including STEP Part 11 -the EXPRESS Language Reference Manual, Part 21 the STEP Exchange File -Format, Part 22 STEP's Standard Data Access Interface, and Part 23 the -C++ language binding to SDAI) can be ordered from the ISO -International Organization of Standardization or your national -body. The United States distribution is managed by the US Product Data -Exchange Association at: - -U.S. Product Data Association (USPro) -Trident Research Center, Suite 204 -5300 International Blvd. -N. Charleston, SC 29418 - -http://www.uspro.scra.org -uspro@scra.org -Ph: 803-760-3327 -FAX: 803-760-3349 - -MAILING LIST ------------- - -Announcements of new releases or bug fixes will also be sent to the -mailing list scl@cme.nist.gov. To be added to the scl mailing list -send a request to majordomo@cme.nist.gov. Include in the body of the -message: - - subscribe scl - -For additional help, include in the body of the message: - - help - -If you use a signature within your email, end your majordomo -command sequence with the word "end". For example, - - subscribe scl - end - - -REPORTING PROBLEMS AND SUGGESTIONS -================================== - -We would like feedback on all parts of the software. Please let us -know if you - - - have problems following the instructions in the README file, - - have problems installing the software, - - have problems compiling your own valid EXPRESS schema, or - - have suggestions for improvements to the software. - - really like the software :) - -Send your comments to - - stepcl@cme.nist.gov - -(For users of version 2, note the new mailing address of "stepcl...".) - -Questions about availability or accessing the software should be -directed to the SOLIS administrator - -Gaylen Rinaudot -npt-info@cme.nist.gov -301-975-3386 - -ACKNOWLEDGMENTS -=============== - -The STEP Class Library (SCL) was developed by the Manufacturing -Systems Integration Division at the National Institute of Standards -and Technology (http://www.mel/nist.gov/msid) to support testing of -the Standard for the Exchange of Product Model Data (a.k.a STEP) and -validation of STEP's emerging implementation specifications. Funding -for the project has come from the U.S. Department of Commerce, and the -Department of Defense agencies including the Office of the Defense -CALS (Continuous Acquisition and Life-Cycle Support) Executive and the -Defense Advanced Research Projects Agency (DARPA). Recent -enhancements were sponsored by the National Industrial Information -Infrastructure Consortium (NIIIP) (http://www.niiip.org) and the NAMT -Framework project -(http://www.mel.nist.gov/msid/projs/97projs/framewrk.htm) of NIST's -Systems Integration for Manufacturing Applications (SIMA) program -(http://www.mel.nist.gov/msid/sima/sima.htm). - -LICENSING RESTRICTIONS and DISCLAIMERS -====================================== - -This software was produced by the National Institute of Standards and -Technology (NIST), an agency of the U.S. government, and by statute -is not subject to copyright in the United States. Recipients of this -software assume all responsibility associated with its operation, -modification, maintenance, and subsequent re-distribution. - -There is no warranty for the NIST STEP Toolkit. -If the NIST STEP Toolkit is modified by someone else and passed on, -NIST wants the Toolkit's recipients to know that what they have is not -what NIST originally distributed. - -Distribution Rights -1. Anyone may copy and distribute verbatim copies of the NIST STEP Toolkit - source code as received in any medium. - -2. Anyone may modify their copy or copies of the NIST STEP Toolkit source - code or any portion of it, and copy and distribute such modifications - provided that all modifications are clearly associated with the entity - that performs the modifications. - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!DISCLAIMERS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -Names of companies and products are provided in order to adequately -specify procedures and equipment used. In no case does such -identification imply recommendation or endorsement by the National -Institute of Standards and Technology, nor does it imply that the -products are necessarily the best available for the purpose. - -NO WARRANTY -=========== - -NIST PROVIDES ABSOLUTELY NO WARRANTY. THE NIST STEP TOOLKIT -IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER -EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS -WITH YOU. SHOULD ANY PORTION OF THE NIST STEP TOOLKIT PROVE DEFECTIVE, -YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. - -IN NO EVENT WILL NIST BE LIABLE FOR DAMAGES, INCLUDING ANY LOST -PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL -DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE (INCLUDING BUT NOT -LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE, OR LOSSES -SUSTAINED BY THIRD PARTIES, OR A FAILURE OF THE PROGRAM TO OPERATE -WITH PROGRAMS NOT DISTRIBUTED BY NIST) THE PROGRAMS, EVEN IF YOU HAVE -BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY -ANY OTHER PARTY. diff --git a/source/geometry/solids/STEP/include/ExpDict.h b/source/geometry/solids/STEP/include/ExpDict.h deleted file mode 100644 index d5b1b9f785..0000000000 --- a/source/geometry/solids/STEP/include/ExpDict.h +++ /dev/null @@ -1,1735 +0,0 @@ -#ifndef EXPDICT_H -#define EXPDICT_H - -/* -* NIST STEP Core Class Library -* clstepcore/ExpDict.h -* April, 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: ExpDict.h,v 1.4 2003/06/06 17:07:28 gcosmo Exp $ */ - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -#include -//class SCLP23(Application_instance); - -#if __OSTORE__ -typedef SCLP23(Application_instance) * (* Creator) (os_database *) ; -#else -typedef SCLP23(Application_instance) * (* Creator) () ; -#endif -//class StringAggregate; - -enum AttrType_Enum { - AttrType_Explicit = 0, - AttrType_Inverse, - AttrType_Deriving, - AttrType_Redefining - }; - -#include - -#include -//#include -#include -//#include -#include -#include - -/* -** I tried these variations on the TypeDescriptor to get them to be -* initialized globally. I couldn\'t do it. They are now initialized -* in the Registry constructor (in Registry.inline.cc - -extern const TypeDescriptor t_INTEGER_TYPE; -extern const TypeDescriptor t_REAL_TYPE; -extern const TypeDescriptor t_NUMBER_TYPE; -extern const TypeDescriptor t_STRING_TYPE; -extern const TypeDescriptor t_BINARY_TYPE; -extern const TypeDescriptor t_BOOLEAN_TYPE; -extern const TypeDescriptor t_LOGICAL_TYPE; - -#define t_INTEGER_TYPE &_t_INTEGER_TYPE -#define t_REAL_TYPE &_t_REAL_TYPE -#define t_NUMBER_TYPE &_t_NUMBER_TYPE -#define t_STRING_TYPE &_t_STRING_TYPE -#define t_BINARY_TYPE &_t_BINARY_TYPE -#define t_BOOLEAN_TYPE &_t_BOOLEAN_TYPE -#define t_LOGICAL_TYPE &_t_LOGICAL_TYPE - -extern const TypeDescriptor * const t_INTEGER_TYPE; -extern const TypeDescriptor * const t_REAL_TYPE; -extern const TypeDescriptor * const t_NUMBER_TYPE; -extern const TypeDescriptor * const t_STRING_TYPE; -extern const TypeDescriptor * const t_BINARY_TYPE; -extern const TypeDescriptor * const t_BOOLEAN_TYPE; -extern const TypeDescriptor * const t_LOGICAL_TYPE; -*/ - -/* -extern const TypeDescriptor * t_INTEGER_TYPE; -extern const TypeDescriptor * t_REAL_TYPE; -extern const TypeDescriptor * t_NUMBER_TYPE; -extern const TypeDescriptor * t_STRING_TYPE; -extern const TypeDescriptor * t_BINARY_TYPE; -extern const TypeDescriptor * t_BOOLEAN_TYPE; -extern const TypeDescriptor * t_LOGICAL_TYPE; -*/ - -// defined and created in Registry.inline.cc -extern const TypeDescriptor * t_sdaiINTEGER; -extern const TypeDescriptor * t_sdaiREAL; -extern const TypeDescriptor * t_sdaiNUMBER; -extern const TypeDescriptor * t_sdaiSTRING; -extern const TypeDescriptor * t_sdaiBINARY; -extern const TypeDescriptor * t_sdaiBOOLEAN; -extern const TypeDescriptor * t_sdaiLOGICAL; - -/////////////////////////////////////////////////////////////////////////////// -// Dictionary_instance -/////////////////////////////////////////////////////////////////////////////// - -class Dictionary_instance { - - protected: - Dictionary_instance() {} - Dictionary_instance(const Dictionary_instance&) {} - - virtual ~Dictionary_instance(); -}; - -/////////////////////////////////////////////////////////////////////////////// - -class TypeDescLinkNode : public SingleLinkNode { - private: - protected: - TypeDescriptor *_typeDesc; - public: - TypeDescLinkNode(); - virtual ~TypeDescLinkNode(); - - const TypeDescriptor *TypeDesc() const { return _typeDesc; } - void TypeDesc(TypeDescriptor *td) { _typeDesc = td; } -}; - -class TypeDescriptorList : public SingleLinkList { - private: - protected: - public: - TypeDescriptorList(); - virtual ~TypeDescriptorList(); - - virtual SingleLinkNode * NewNode () { return new TypeDescLinkNode; } - - TypeDescLinkNode * AddNode (TypeDescriptor * td) { - TypeDescLinkNode *node = (TypeDescLinkNode *) NewNode(); - node->TypeDesc(td); - SingleLinkList::AppendNode(node); - return node; - } -}; - -class TypeDescItr -{ - protected: - const TypeDescriptorList &tdl; - const TypeDescLinkNode *cur; - - public: - TypeDescItr (const TypeDescriptorList &tdList); - virtual ~TypeDescItr(); - - void ResetItr() { cur = (TypeDescLinkNode *)( tdl.GetHead() ); } - - const TypeDescriptor * NextTypeDesc(); -}; - -/////////////////////////////////////////////////////////////////////////////// - -class EntityDescLinkNode : public SingleLinkNode { - - private: - protected: - EntityDescriptor * _entityDesc; - - public: - EntityDescLinkNode(); - virtual ~EntityDescLinkNode(); - - EntityDescriptor *EntityDesc() const { return _entityDesc; } - void EntityDesc(EntityDescriptor *ed) { _entityDesc = ed; } -}; - -class EntityDescriptorList : public SingleLinkList { - - private: - protected: - public: - EntityDescriptorList(); - virtual ~EntityDescriptorList(); - - virtual SingleLinkNode * NewNode () { return new EntityDescLinkNode; } - - EntityDescLinkNode * AddNode (EntityDescriptor * ed) { - EntityDescLinkNode *node = (EntityDescLinkNode *) NewNode(); - node->EntityDesc(ed); - SingleLinkList::AppendNode(node); - return node; - } -}; - -typedef EntityDescriptorList * Entity__set_ptr; -typedef Entity__set_ptr Entity__set_var; - -class EntityDescItr -{ - protected: - const EntityDescriptorList &edl; - const EntityDescLinkNode *cur; - - public: - EntityDescItr(const EntityDescriptorList &edList); - virtual ~EntityDescItr(); - - void ResetItr() { cur = (EntityDescLinkNode *)( edl.GetHead() ); } - - const EntityDescriptor * NextEntityDesc(); -}; - - -/////////////////////////////////////////////////////////////////////////////// - - -/////////////////////////////////////////////////////////////////////////////// -// Interfaced_item -/////////////////////////////////////////////////////////////////////////////// - -class Interfaced_item : public Dictionary_instance { - protected: - Interfaced_item(); - Interfaced_item(const Interfaced_item&); - Interfaced_item(const char *foreign_schema); - virtual ~Interfaced_item(); - public: - Express_id _foreign_schema; - - const Express_id foreign_schema_(); -// private: - void foreign_schema_(const Express_id&); -}; - -/////////////////////////////////////////////////////////////////////////////// -// Explicit_item_id -/////////////////////////////////////////////////////////////////////////////// - -class Explicit_item_id : public Interfaced_item{ - protected: - Explicit_item_id(); - Explicit_item_id(const Explicit_item_id&); - Explicit_item_id(const char *foreign_schema, TypeDescriptor *ld, - const char *oi, const char *ni) - : Interfaced_item(foreign_schema), _local_definition(ld), _original_id(oi), _new_id(ni) {} - virtual ~Explicit_item_id(); - public: - // definition in the local schema. The TypeDescriptor (or subtype) is not - // implemented quite right - the name in it is the original (foreign - // schema) name. The USE or REFERENCED renames are listed in - // TypeDescriptor's altNames member variable. - // Warning: This is currently a null ptr for objects other than - // types and entities - that is - if this is a USEd FUNCTION or PROCEDURE - // this ptr will be null. - const TypeDescriptor * _local_definition; - - // name in originating schema - only exists if it has been renamed. - Express_id _original_id; - - Express_id _new_id; // original or renamed name via USE or REFERENCE (non-SDAI) - - const TypeDescriptor *local_definition_() const - { return _local_definition; } - - const Express_id original_id_() const - { return _original_id; } - - // non-sdai, renamed name - const Express_id new_id_() const - { return _new_id; } - - // return string "USE" or "REFERENCE" - virtual const char * EXPRESS_type()=0; - -// private: - void local_definition_(const TypeDescriptor *td) - { _local_definition = td; } - void original_id_(const Express_id& ei) - { _original_id = ei; } - - // non-sdai - void new_id_(const Express_id& ni) - { _new_id = ni; } -}; - -typedef Explicit_item_id * Explicit_item_id_ptr; - -class Used_item : public Explicit_item_id { - public: - Used_item() {} - Used_item(const char *foreign_schema, TypeDescriptor *ld, - const char *oi, const char *ni) - : Explicit_item_id(foreign_schema, ld, oi, ni) {} - virtual ~Used_item(); - - const char * EXPRESS_type() { return "USE"; } -}; - -typedef Used_item * Used_item_ptr; - -class Referenced_item : public Explicit_item_id { - public: - Referenced_item() {} - Referenced_item(const char *foreign_schema, TypeDescriptor *ld, - const char *oi, const char *ni) - : Explicit_item_id(foreign_schema, ld, oi, ni) {} - virtual ~Referenced_item(); - - const char * EXPRESS_type() { return "REFERENCE"; } -}; - -typedef Referenced_item * Referenced_item_ptr; - -class Explicit_item_id__set { -public: - Explicit_item_id__set(int = 16); - ~Explicit_item_id__set(); - - Explicit_item_id_ptr& operator[](int index); - void Insert(Explicit_item_id_ptr, int index); - void Append(Explicit_item_id_ptr); - void Remove(int index); - int Index(Explicit_item_id_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - Explicit_item_id_ptr* _buf; - int _bufsize; - int _count; -}; - -typedef Explicit_item_id__set* Explicit_item_id__set_ptr; -typedef Explicit_item_id__set_ptr Explicit_item_id__set_var; - -/////////////////////////////////////////////////////////////////////////////// -// Implicit_item_id -/////////////////////////////////////////////////////////////////////////////// - -class Implicit_item_id : public Interfaced_item { - protected: - Implicit_item_id(); - Implicit_item_id(Implicit_item_id&); - virtual ~Implicit_item_id(); - public: - const TypeDescriptor * _local_definition; - - const TypeDescriptor *local_definition_() const - { return _local_definition; } - -// private: - void local_definition_(const TypeDescriptor *td) - { _local_definition = td; } -}; - -typedef Implicit_item_id * Implicit_item_id_ptr; - -/////////////////////////////////////////////////////////////////////////////// -// Implicit_item_id__set -/////////////////////////////////////////////////////////////////////////////// - -class Implicit_item_id__set { -public: - Implicit_item_id__set(int = 16); - ~Implicit_item_id__set(); - - Implicit_item_id_ptr& operator[](int index); - void Insert(Implicit_item_id_ptr, int index); - void Append(Implicit_item_id_ptr); - void Remove(int index); - int Index(Implicit_item_id_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - Implicit_item_id_ptr* _buf; - int _bufsize; - int _count; -}; - -typedef Implicit_item_id__set* Implicit_item_id__set_ptr; -typedef Implicit_item_id__set_ptr Implicit_item_id__set_var; - -/////////////////////////////////////////////////////////////////////////////// -// Interface_spec -/////////////////////////////////////////////////////////////////////////////// - -class Interface_spec : public Dictionary_instance { - public: - Express_id _current_schema_id; // schema containing the USE/REF stmt - // set of objects from USE/REFERENCE stmt(s) - Explicit_item_id__set_var _explicit_items; - Implicit_item_id__set_var _implicit_items; //not yet initialized for schema - - // non-SDAI, not useful for SDAI use of Interface_spec (it would need to - // be a list). - // schema that defined the USE/REFd objects - Express_id _foreign_schema_id; - - // non-SDAI, not useful for SDAI use of Interface_spec (it would need to - // be a list of ints). - // schema USEs or REFERENCEs all objects from foreign schema - int _all_objects; - - Interface_spec(); - Interface_spec(Interface_spec &); // not tested - Interface_spec(const char * cur_sch_id, const char * foreign_sch_id, - int all_objects=0); - virtual ~Interface_spec(); - - Express_id current_schema_id_() { return _current_schema_id; } - Express_id foreign_schema_id_() { return _foreign_schema_id; } - - Explicit_item_id__set_var explicit_items_() - { return _explicit_items; } - - // this is not yet initialized for the schema - Implicit_item_id__set_var implicit_items_() - { return _implicit_items; } - -// private: - void current_schema_id_(const Express_id &ei) { _current_schema_id = ei; } - void foreign_schema_id_(const Express_id &fi) { _foreign_schema_id = fi; } - - int all_objects_() { return _all_objects; } - void all_objects_(int ao) { _all_objects = ao; } -}; - -typedef Interface_spec * Interface_spec_ptr; - -class Interface_spec__set { -public: - Interface_spec__set(int = 16); - ~Interface_spec__set(); - - Interface_spec_ptr& operator[](int index); - void Insert(Interface_spec_ptr, int index); - void Append(Interface_spec_ptr); - void Remove(int index); - int Index(Interface_spec_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - Interface_spec_ptr* _buf; - int _bufsize; - int _count; -}; - -typedef Interface_spec__set* Interface_spec__set_ptr; -typedef Interface_spec__set_ptr Interface_spec__set_var; - - -class Type_or_rule : public Dictionary_instance { - public: - Type_or_rule(); - Type_or_rule(const Type_or_rule&); - virtual ~Type_or_rule(); -}; - -typedef Type_or_rule* Type_or_rule_ptr; -typedef Type_or_rule_ptr Type_or_rule_var; - -class Where_rule : public Dictionary_instance { - public: - Express_id _label; - Type_or_rule_var _type_or_rule; - - // non-SDAI - SCLstring _comment; // Comment contained in the EXPRESS. - // Should be properly formatted to include (* *) - // Will be written to EXPRESS as-is (w/out formatting) - - Where_rule(); - Where_rule(const Where_rule&); - Where_rule(const char * label, Type_or_rule_var tor=0) - : _label(label), _type_or_rule(tor) { } - virtual ~Where_rule(); - - Express_id label_() const { return _label; } - const Type_or_rule_var parent_item() const { return _type_or_rule; } - SCLstring comment_() const { return _comment; } - - void label_(const Express_id& ei) { _label = ei; } - void parent_item(const Type_or_rule_var& tor) { _type_or_rule = tor; } - void comment_(const char* c) { _comment = c; } -}; - -typedef Where_rule * Where_rule_ptr; - -class Where_rule__list { -public: - Where_rule__list(int = 16); - ~Where_rule__list(); - - Where_rule_ptr& operator[](int index); - void Insert(Where_rule_ptr, int index); - void Append(Where_rule_ptr); - void Remove(int index); - int Index(Where_rule_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - Where_rule_ptr* _buf; - int _bufsize; - int _count; -}; - -typedef Where_rule__list* Where_rule__list_ptr; -typedef Where_rule__list_ptr Where_rule__list_var; - -class Global_rule : public Dictionary_instance { - public: - Express_id _name; - Entity__set_var _entities; // not implemented - Where_rule__list_var _where_rules; - Schema_ptr _parent_schema; - SCLstring _rule_text; // non-SDAI - - Global_rule(); - Global_rule(const char *n, Schema_ptr parent_sch, const char * rt); - Global_rule(Global_rule&); // not fully implemented - virtual ~Global_rule(); - - Express_id name_() const { return _name; } - const Entity__set_var entities_() const { return _entities; } - const Where_rule__list_var where_rules_() const { return _where_rules; } - const Schema_ptr parent_schema_() const { return _parent_schema; } - const char * rule_text_() { return _rule_text.chars(); } - - void name_(Express_id& n) { _name = n; } - void entities_(const Entity__set_var &e); // not implemented - void where_rules_(const Where_rule__list_var &wrl); // not implemented - void parent_schema_(const Schema_ptr &s) { _parent_schema = s; } - void rule_text_(const char * rt) { _rule_text = rt; } - -}; - -typedef Global_rule * Global_rule_ptr; - -class Global_rule__set { -public: - Global_rule__set(int = 16); - ~Global_rule__set(); - - Global_rule_ptr& operator[](int index); - void Insert(Global_rule_ptr, int index); - void Append(Global_rule_ptr); - void Remove(int index); - int Index(Global_rule_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - Global_rule_ptr* _buf; - int _bufsize; - int _count; -}; - -typedef Global_rule__set* Global_rule__set_ptr; -typedef Global_rule__set_ptr Global_rule__set_var; - -class Uniqueness_rule : public Dictionary_instance { - public: - Express_id _label; - const EntityDescriptor * _parent_entity; - - // non-SDAI - SCLstring _comment; // Comment contained in the EXPRESS. - // Should be properly formatted to include (* *) - // Will be written to EXPRESS as-is (w/out formatting) - - Uniqueness_rule(); - Uniqueness_rule(const Uniqueness_rule&); - Uniqueness_rule(const char * label, EntityDescriptor *pe=0) - : _label(label), _parent_entity(pe) { } - virtual ~Uniqueness_rule(); - - Express_id label_() const { return _label; } - const EntityDescriptor * parent_() const { return _parent_entity; } - SCLstring &comment_() { return _comment; } - - void label_(const Express_id& ei) { _label = ei; } - void parent_(const EntityDescriptor * pe) { _parent_entity = pe; } - void comment_(const char* c) { _comment = c; } - -}; - -typedef Uniqueness_rule * Uniqueness_rule_ptr; - -class Uniqueness_rule__set { -public: - Uniqueness_rule__set(int = 16); - ~Uniqueness_rule__set(); - - Uniqueness_rule_ptr& operator[](int index); - void Insert(Uniqueness_rule_ptr, int index); - void Append(Uniqueness_rule_ptr); - void Remove(int index); - int Index(Uniqueness_rule_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - Uniqueness_rule_ptr* _buf; - int _bufsize; - int _count; -}; - -typedef Uniqueness_rule__set* Uniqueness_rule__set_ptr; -typedef Uniqueness_rule__set_ptr Uniqueness_rule__set_var; - -/////////////////////////////////////////////////////////////////////////////// -// Schema (was SchemaDescriptor) - a class of this type is generated and -// contains schema info. -/////////////////////////////////////////////////////////////////////////////// - - -typedef SCLP23(Model_contents_ptr) (* ModelContentsCreator) () ; - -class Schema : public Dictionary_instance { - - protected: - const char * _name ; - EntityDescriptorList _entList; // list of entities in the schema - TypeDescriptorList _typeList; // list of types in the schema - Interface_spec _interface; // list of USE and REF interfaces (SDAI) - - // non-SDAI lists - Interface_spec__set_var _use_interface_list; // list of USE interfaces - Interface_spec__set_var _ref_interface_list; // list of REFERENCE interfaces - scl_char_str__list_var _function_list; // of EXPRESS functions - scl_char_str__list_var _procedure_list; // of EXPRESS procedures - - Global_rule__set_var _global_rules; - - public: - ModelContentsCreator CreateNewModelContents; - - Schema (const char *schemaName ); - virtual ~Schema (); - - void AssignModelContentsCreator(ModelContentsCreator f = 0) - { - CreateNewModelContents = f; - } - - const char * Name() const { return _name; } - void Name (const char * n) { _name = n; } - - Interface_spec& interface_() { return _interface; } - - Interface_spec__set_var use_interface_list_() { return - _use_interface_list; } - - Interface_spec__set_var ref_interface_list_() - { return _ref_interface_list; } - - scl_char_str__list_var function_list_() - { return _function_list; } - - void AddFunction(const char * f); - - Global_rule__set_var global_rules_() // const - { return _global_rules; } - - void AddGlobal_rule(Global_rule_ptr gr); - - void global_rules_(Global_rule__set_var &grs); // not implemented - - scl_char_str__list_var procedure_list_() - { return _procedure_list; } - - void AddProcedure(const char * p); - - EntityDescLinkNode * AddEntity (EntityDescriptor * ed) - { return _entList.AddNode(ed); } - - TypeDescLinkNode * AddType (TypeDescriptor * td) - { return _typeList.AddNode(td); } - - // the whole schema - void GenerateExpress(std::ostream& out) const; - - // USE, REFERENCE definitions - void GenerateUseRefExpress(std::ostream& out) const; - - // TYPE definitions - void GenerateTypesExpress(std::ostream& out) const; - - // Entity definitions - void GenerateEntitiesExpress(std::ostream& out) const; -}; - -typedef Schema SchemaDescriptor; - -/////////////////////////////////////////////////////////////////////////////// - -class AttrDescLinkNode : public SingleLinkNode { - private: - protected: - AttrDescriptor *_attrDesc; - public: - AttrDescLinkNode(); - virtual ~AttrDescLinkNode(); - - const AttrDescriptor *AttrDesc() const { return _attrDesc; } - void AttrDesc(AttrDescriptor *ad) { _attrDesc = ad; } -}; - -class AttrDescriptorList : public SingleLinkList { - private: - protected: - public: - AttrDescriptorList(); - virtual ~AttrDescriptorList(); - - virtual SingleLinkNode * NewNode () { return new AttrDescLinkNode; } - - AttrDescLinkNode * AddNode (AttrDescriptor * ad); -}; - -class AttrDescItr -{ - protected: - const AttrDescriptorList &adl; - const AttrDescLinkNode *cur; - - public: - AttrDescItr(const AttrDescriptorList &adList); - virtual ~AttrDescItr(); - - void ResetItr() { cur = (AttrDescLinkNode *)( adl.GetHead() ); } - - const AttrDescriptor * NextAttrDesc(); -}; - -/////////////////////////////////////////////////////////////////////////////// - -class Inverse_attributeLinkNode : public SingleLinkNode { - private: - protected: - Inverse_attribute *_invAttr; - public: - Inverse_attributeLinkNode(); - virtual ~Inverse_attributeLinkNode(); - - const Inverse_attribute *Inverse_attr() const { return _invAttr; } - void Inverse_attr(Inverse_attribute *ia) { _invAttr = ia; } -}; - -class Inverse_attributeList : public SingleLinkList { - private: - protected: - public: - Inverse_attributeList(); - virtual ~Inverse_attributeList(); - - virtual SingleLinkNode * NewNode () { return new Inverse_attributeLinkNode; } - Inverse_attributeLinkNode * AddNode (Inverse_attribute * ia); -}; - -class InverseAItr -{ - protected: - const Inverse_attributeList &ial; - const Inverse_attributeLinkNode *cur; - - public: - InverseAItr (const Inverse_attributeList &iaList); - virtual ~InverseAItr(); - - void ResetItr() - { cur = (Inverse_attributeLinkNode *)( ial.GetHead() ); } - - const Inverse_attribute * NextInverse_attribute(); -}; - -/////////////////////////////////////////////////////////////////////////////// -// AttrDescriptor -// An instance of this class will be generated for each attribute for -// an Entity. They will be pointed to by the EntityTypeDescriptors. -/////////////////////////////////////////////////////////////////////////////// - -class AttrDescriptor { - - protected: - const char * _name ; // the attributes name - // this defines the domain of the attribute - const TypeDescriptor * _domainType ; - SCLP23(LOGICAL) _optional; - SCLP23(LOGICAL) _unique; - AttrType_Enum _attrType; // former attribute _derived - -#ifdef __O3DB__ - const EntityDescriptor * _owner ; // the owning entityDescriptor -#else - const EntityDescriptor & _owner ; // the owning entityDescriptor -#endif - public: - - AttrDescriptor( - const char * name, // i.e. char * - const TypeDescriptor *domainType, - SCLLOG(Logical) optional, // i.e. F U or T - SCLLOG(Logical) unique, // i.e. F U or T - AttrType_Enum at,// AttrType_Explicit, AttrType_Inverse, - // AttrType_Deriving,AttrType_Redefining - const EntityDescriptor & owner - ); - virtual ~AttrDescriptor (); - - const char * GenerateExpress (SCLstring &buf) const; - - // the attribute Express def - virtual const char *AttrExprDefStr(SCLstring & s) const; - - // left side of attr def - const char * Name() const { return _name; } - void Name (const char * n) { _name = n; } - - // BaseType() is the underlying type of this attribute. - // NonRefType() is the first non REFERENCE_TYPE type - // e.g. Given attributes of each of the following types - // TYPE count = INTEGER; - // TYPE ref_count = count; - // TYPE count_set = SET OF ref_count; - // BaseType() will return INTEGER_TYPE for an attr of each type. - // BaseTypeDescriptor() returns the TypeDescriptor for Integer - // NonRefType() will return INTEGER_TYPE for the first two. For an - // attribute of type count_set NonRefType() would return - // AGGREGATE_TYPE - // NonRefTypeDescriptor() returns the TypeDescriptor for Integer - // for the first two and a TypeDescriptor for an - // aggregate for the last. - - const PrimitiveType BaseType() const; - const TypeDescriptor *BaseTypeDescriptor() const; - - // the first PrimitiveType that is not REFERENCE_TYPE (the first - // TypeDescriptor *_referentType that does not have REFERENCE_TYPE - // for it's fundamentalType variable). This would return the same - // as BaseType() for fundamental types. An aggregate type - // would return AGGREGATE_TYPE then you could find out the type of - // an element by calling AggrElemType(). Select types - // would work the same? - - const PrimitiveType NonRefType() const; - const TypeDescriptor *NonRefTypeDescriptor() const; - - int IsAggrType() const; - const PrimitiveType AggrElemType() const; - const TypeDescriptor *AggrElemTypeDescriptor() const; - - // The type of the attributes TypeDescriptor - const PrimitiveType Type() const; - const char * TypeName() const; // right side of attr def - - // an expanded right side of attr def - const char *ExpandedTypeName(SCLstring & s) const; - - int RefersToType() const { return !(_domainType == 0); } - - const TypeDescriptor * ReferentType() const { return _domainType; } - const TypeDescriptor * DomainType() const { return _domainType; } - void DomainType (const TypeDescriptor *td) { _domainType = td; } - void ReferentType(const TypeDescriptor *td) { _domainType = td; } - - const SCLP23(LOGICAL) & Optional() const { return _optional; } - void Optional (SCLP23(LOGICAL) &opt) { _optional.put(opt.asInt()); } - - void Optional (SCLLOG(Logical) opt) { _optional.put(opt); } - void Optional (const char *opt) { _optional.put(opt); } - - const SCLP23(LOGICAL) & Unique() const { return _unique; } - void Unique (SCLP23(LOGICAL) uniq) { _unique.put(uniq.asInt()); } - void Unique (SCLLOG(Logical) uniq) { _unique.put(uniq); } - void Unique (const char *uniq) { _unique.put(uniq); } - - void AttrType(enum AttrType_Enum ate) { _attrType = ate; } - enum AttrType_Enum AttrType() const { return _attrType; } - - SCLLOG(Logical) Explicit() const; - SCLLOG(Logical) Inverse() const; - SCLLOG(Logical) Redefining() const; - SCLLOG(Logical) Deriving() const; - - //outdated functions, use AttrType func above, new support of redefined - SCLLOG(Logical) Derived() const { return Deriving(); } - void Derived (SCLLOG(Logical) x); // outdated DAS - void Derived (SCLP23(LOGICAL) x); // outdated DAS - void Derived (const char *x); // outdated DAS - - const SCLP23(LOGICAL) & Optionality() const { return _optional; } - void Optionality (SCLP23(LOGICAL) &opt) { _optional.put(opt.asInt()); } - void Optionality (SCLLOG(Logical) opt) { _optional.put(opt); } - void Optionality (const char *opt) { _optional.put(opt); } - - const SCLP23(LOGICAL) & Uniqueness() const { return _unique; } - void Uniqueness (SCLP23(LOGICAL) uniq) { _unique.put(uniq.asInt()); } - void Uniqueness (SCLLOG(Logical) uniq) { _unique.put(uniq); } - void Uniqueness (const char *uniq) { _unique.put(uniq); } - -#ifdef __O3DB__ - const EntityDescriptor & Owner() const { return *_owner; } -#else - const EntityDescriptor & Owner() const { return _owner; } -#endif -}; - - -/////////////////////////////////////////////////////////////////////////////// -// Inverse_attribute -/////////////////////////////////////////////////////////////////////////////// - -class Derived_attribute : public AttrDescriptor { - public: - const char *_initializer; - - Derived_attribute( - const char * name, // i.e. char * - const TypeDescriptor *domainType, - SCLLOG(Logical) optional, // i.e. F U or T - SCLLOG(Logical) unique, // i.e. F U or T - AttrType_Enum at,// AttrType_Explicit, AttrType_Inverse, - // AttrType_Deriving,AttrType_Redefining - const EntityDescriptor & owner - ); - virtual ~Derived_attribute(); - const char * AttrExprDefStr(SCLstring & s) const; - - const char *initializer_() { return _initializer; } - void initializer_(const char *i) { _initializer = i; } -}; - -/////////////////////////////////////////////////////////////////////////////// -// Inverse_attribute -/////////////////////////////////////////////////////////////////////////////// - -class Inverse_attribute : public AttrDescriptor { - - public: - const char *_inverted_attr_id; - const char *_inverted_entity_id; - protected: - AttrDescriptor * _inverted_attr ; // not implemented - public: - - Inverse_attribute( - const char * name, // i.e. char * - TypeDescriptor *domainType, - SCLLOG(Logical) optional, // i.e. F U or T*/ - SCLLOG(Logical) unique, // i.e. F U or T -// AttrType_Enum at, // will always be AttrType_Inverse - const EntityDescriptor & owner, - const char *inverted_attr_id =0 - ) : AttrDescriptor( name, domainType, optional, unique, - AttrType_Inverse, owner ), - _inverted_attr_id(inverted_attr_id), - _inverted_entity_id(0), _inverted_attr(0) - { } - virtual ~Inverse_attribute () { } - - const char * AttrExprDefStr(SCLstring & s) const; - - const char * inverted_attr_id_() const - { return _inverted_attr_id; } - - void inverted_attr_id_(const char *iai ) - { _inverted_attr_id = iai; } - - const char * inverted_entity_id_() const - { return _inverted_entity_id; } - - void inverted_entity_id_(const char *iei ) - { _inverted_entity_id = iei; } - - // not implemented - class AttrDescriptor * inverted_attr_() - { return _inverted_attr; } - - void inverted_attr_(AttrDescriptor *ia ) - { _inverted_attr = ia; } - - // below are obsolete (and not implemented anyway) - class AttrDescriptor * InverseAttribute() - { return _inverted_attr; } - void InverseOf (AttrDescriptor * invAttr) - { _inverted_attr = invAttr; } -}; - -/////////////////////////////////////////////////////////////////////////////// -// SchRename is a structure which partially support the concept of USE and RE- -// FERENCE in EXPRESS. Say schema A USEs object X from schema B and renames it -// to Y (i.e., "USE (X as Y);"). SchRename stores the name of the schema (B) -// plus the new object name for that schema (Y). Each TypeDescriptor has a -// SchRename object (actually a linked list of SchRenames) corresponding to all -// the possible different names of itself depending on the current schema (the -// schema which is currently reading or writing this object). (The current -// schema is determined by the file schema section of the header section of a -// part21 file (the _headerInstances of STEPfile). -/////////////////////////////////////////////////////////////////////////////// - -class SchRename { - public: - SchRename( const char *sch="\0", const char *newnm="\0" ) : next(0) - { strcpy( schName, sch ); strcpy( newName, newnm ); } - ~SchRename() { delete next; } - const char *objName() const { return newName; } - // Added 'int' return type - GC - int operator< ( SchRename &schrnm ) - { return ( strcmp( schName, schrnm.schName ) < 0 ); } - int choice( const char *nm ) const; - // is nm one of our possible choices? - char *rename( const char *schnm, char *newnm ) const; - // given a schema name, returns new object name if exists - SchRename *next; - - private: - char schName[BUFSIZ]; - char newName[BUFSIZ]; -}; - -/////////////////////////////////////////////////////////////////////////////// -// TypeDescriptor -// This class and the classes inherited from this class are used to describe -// all types (base types and created types). There will be an instance of this -// class generated for each type found in the schema. -// A TypeDescriptor will be generated in three contexts: -// 1) to describe a base type - e.g. INTEGER, REAL, STRING. There is only one -// TypeDescriptor created for each Express base type. Each of these will -// be pointed to by several other AttrDescriptors and TypeDescriptors) -// 2) to describe a type created by an Express TYPE statement. -// e.g. TYPE label = STRING END_TYPE; -// These TypeDescriptors will be pointed to by other AttrDescriptors (and -// TypeDescriptors) representing attributes (and Express TYPEs) that are -// of the type created by this Express TYPE. -// 3) to describe a type created in an attribute definition -// e.g. part_label_grouping : ARRAY [1.10] label; -// or part_codes : ARRAY [1.10] INTEGER; -// In this #3 context there will not be a name associated with the type. -// The TypeDescriptor created in this case will only be pointed to by the -// single AttrDescriptor associated with the attribute it was created for. -/////////////////////////////////////////////////////////////////////////////// - -///// _name is the name of the type. - // In the case of the TypeDescriptors representing the Express base - // types this will be the name of the base type. - // In the case where this TypeDescriptor is representing an Express - // TYPE it is the LEFT side of an Express TYPE statement (i.e. label - // as in TYPE label = STRING END_TYPE;) This name would in turn be - // found on the RIGHT side of an Express attribute definition (e.g. - // attr defined as part_label : label; ) - // In the case where this TypeDescriptor was generated to describe a - // type created in an attr definition, it will be a null pointer (e.g - // attr defined as part_label_grouping : ARRAY [1..10] label) -///// _fundamentalType is the 'type' of the type being represented by - // the TypeDescriptor . i.e. the following 2 stmts - // would cause 2 TypeDescriptors to be generated - the 1st having - // _fundamentalType set to STRING_TYPE and for the 2nd to - // REFERENCE_TYPE. - // TYPE label = STRING END_TYPE; - // TYPE part_label = label END_TYPE; - // part_label and label would be the value of the respective - // _name member variables for the 2 TypeDescriptors. -///// _referentType will point at another TypeDescriptor furthur specifying - // the type in all cases except when the type is directly - // an enum or select. i.e. in the following... _referentType for - // the 1st type does not point at anything and for the 2nd it does: - // TYPE color = ENUMERATION OF (red, blue); END_TYPE; - // TYPE color_ref = color; END_TYPE; -////// _fundamentalType being REFERENCE_TYPE (as would be the case for - // part_label and color_ref above) means that the _referentType - // member variable points at a TypeDescriptor representing a type - // that has been defined in an Express TYPE stmt. - // Otherwise _fundamental type reflects - // the type directly as in the type label above. type label above - // has a _referentType that points at a TypeDescriptor for STRING - // described in the next sentence (also see #1 above). - // A TypeDescriptor would be generated for each of the EXPRESS base - // types (int, string, real, etc) having _fundamentalType member - // variables set to match the EXPRESS base type being represented. -//////_referentType - // For the TypeDescriptors describing the EXPRESS base types this will - // be a null pointer. For all other TypeDescriptors this will point - // to another TypeDescriptor which furthur describes the type. e.g. - // TYPE part_label = label END_TYPE; TYPE label = STRING END_TYPE; - // part_label's _referentType will point to the TypeDescriptor for - // label. label's _referentType will point to the TypeDescriptor - // for STRING. The _fundamentalType for part_label will be - // REFERENCE_TYPE and for label will be STRING_TYPE. - // The _fundamentalType for the EXPRESS base type STRING's - // TypeDescriptor will be STRING_TYPE. - // The _referentType member variable will in most cases point to - // a subtype of TypeDescriptor. -//////_description - // This is the string description of the type as found in the - // EXPRESS file. e.g. aggr of [aggr of ...] [list of ...] someType - // It is the RIGHT side of an Express TYPE statement - // (i.e. LIST OF STRING as in - // TYPE label_group = LIST OF STRING END_TYPE;) - // It is the same as _name for EXPRESS base types TypeDescriptors (with - // the possible exception of upper or lower case differences). - -class TypeDescriptor { - - protected: - - // the name of the type (see above) - // - // NOTE - memory is not allocated for this, or for _description - // below. It is assumed that at creation, _name will be made - // to point to a static location in memory. The fedex_plus - // generated code, for example, places a literal string in its - // TypeDesc constructor calls. This creates a location in me- - // mory static throughout the lifetime of the calling program. - const char * _name ; - - // an alternate name of type - such as one given by a different - // schema which USEs/ REFERENCEs this. (A complete list of - // alternate names is stored in altNames below. _altname pro- - // vides storage space for the currently used one.) - char _altname[BUFSIZ]; - - // contains list of renamings of type - used by other schemas - // which USE/ REFERENCE this - const SchRename * altNames; - - // the type of the type (see above). - // it is an enum see file clstepcore/baseType.h -// BASE_TYPE _fundamentalType ; - PrimitiveType _fundamentalType ; - - const Schema * _originatingSchema; - - // further describes the type (see above) - // most often (or always) points at a subtype. - const TypeDescriptor * _referentType ; - - // Express file description (see above) - // e.g. the right side of an Express TYPE stmt - // (See note above by _name regarding memory allocation.) - const char * _description ; - - public: - // a Where_rule may contain only a comment - Where_rule__list_var _where_rules; // initially a null pointer - - Where_rule__list_var& where_rules_() - { return _where_rules; } - - void where_rules_(Where_rule__list * wrl) - { _where_rules = wrl; } - - protected: - // Functions used to check the current name of the type (may - // != _name if altNames has diff name for current schema). - int PossName (const char *) const; - int OurName (const char *) const; - int AltName (const char *) const; - - public: - - TypeDescriptor (const char * nm, PrimitiveType ft, const char * d); - TypeDescriptor (const char * nm, PrimitiveType ft, - Schema *origSchema, const char * d); - TypeDescriptor ( ); - virtual ~TypeDescriptor () { /* if ( altNames ) delete altNames; */ } - - virtual const char * GenerateExpress (SCLstring &buf) const; - - // The name of this type. If schnm != NULL, the name we're - // referred to by schema schnm (may be diff name in our alt- - // names list (based on schnm's USE/REF list)). - const char * Name( const char *schnm =NULL ) const; - - // The name that would be found on the right side of an - // attribute definition. In the case of a type defined like - // TYPE name = STRING END_TYPE; - // with attribute definition employee_name : name; - // it would be the _name member variable. If it was a type - // defined in an attribute it will be the _description - // member variable since _name will be null. e.g. attr. def. - // project_names : ARRAY [1..10] name; - const char * AttrTypeName( SCLstring &buf, const char *schnm =NULL ) const; - - // Linked link of alternate names for the type: - const SchRename *AltNameList() const { return altNames; } - - // This is a fully expanded description of the type. - // This returns a string like the _description member variable - // except it is more thorough of a description where possible - // e.g. if the description contains a TYPE name it will also - // be explained. - const char *TypeString(SCLstring & s) const; - - // This TypeDescriptor's type - const PrimitiveType Type() const { return _fundamentalType; } - void Type(const PrimitiveType type) { _fundamentalType = type; } - - // This is the underlying Express base type of this type. It will - // be the type of the last TypeDescriptor following the - // _referentType member variable pointers. e.g. - // TYPE count = INTEGER; - // TYPE ref_count = count; - // TYPE count_set = SET OF ref_count; - // each of the above will generate a TypeDescriptor and for - // each one, PrimitiveType BaseType() will return INTEGER_TYPE. - // TypeDescriptor *BaseTypeDescriptor() returns the TypeDescriptor - // for Integer. - const PrimitiveType BaseType() const; - const TypeDescriptor *BaseTypeDescriptor() const; - const char * BaseTypeName () const; - - // the first PrimitiveType that is not REFERENCE_TYPE (the first - // TypeDescriptor *_referentType that does not have REFERENCE_TYPE - // for it's fundamentalType variable). This would return the same - // as BaseType() for fundamental types. An aggregate type - // would return AGGREGATE_TYPE then you could find out the type of - // an element by calling AggrElemType(). Select types - // would work the same? - - const PrimitiveType NonRefType() const; - const TypeDescriptor *NonRefTypeDescriptor() const; - - int IsAggrType() const; - const PrimitiveType AggrElemType() const; - const TypeDescriptor *AggrElemTypeDescriptor() const; - - const PrimitiveType FundamentalType() const { return _fundamentalType; } - void FundamentalType (PrimitiveType ftype) { _fundamentalType = ftype; } - - // The TypeDescriptor for the type this type is based on - const TypeDescriptor * ReferentType() const { return _referentType; } - void ReferentType (const TypeDescriptor * rtype) - { _referentType = rtype; } - - - const Schema * OriginatingSchema() const - { return _originatingSchema; } - void OriginatingSchema (const Schema * os) - { _originatingSchema = os; } - const char *schemaName() const { - if ( _originatingSchema ) return _originatingSchema->Name(); - else return ""; - } - - // A description of this type's type. Basically you - // get the right side of a TYPE statement minus END_TYPE. - // For base type TypeDescriptors it is the same as _name. - const char * Description() const { return _description; } - void Description (const char * desc) { _description = desc; } - - virtual const TypeDescriptor * IsA (const TypeDescriptor *) const; - virtual const TypeDescriptor * BaseTypeIsA (const TypeDescriptor *) - const; - virtual const TypeDescriptor * IsA (const char *) const; - virtual const TypeDescriptor * CanBe (const TypeDescriptor *n) const - { return TypeDescriptor::IsA (n); } - virtual const TypeDescriptor * CanBe (const char *n) const - { return TypeDescriptor::IsA (n); } - virtual const TypeDescriptor * CanBeSet (const char *n, - const char *schNm =0) const - { return ( CurrName( n, schNm ) ? this : 0 ); } - int CurrName( const char *, const char * =0 ) const; - void addAltName( const char *schnm, const char *newnm ); - // Adds an additional name, newnm, to be use when schema schnm - // is USE/REFERENCE'ing us (added to altNames). -}; - -#ifdef __OSTORE__ -typedef SCLP23(Enum) * (* EnumCreator) (os_database *db) ; -#else -typedef SCLP23(Enum) * (* EnumCreator) () ; -#endif - -class EnumTypeDescriptor : public TypeDescriptor { - public: - EnumCreator CreateNewEnum; - - const char * GenerateExpress (SCLstring &buf) const; - - void AssignEnumCreator(EnumCreator f = 0) - { - CreateNewEnum = f; - } - -#ifdef __OSTORE__ - SCLP23(Enum) *CreateEnum(os_database *db); -#else - SCLP23(Enum) *CreateEnum(); -#endif - - EnumTypeDescriptor ( ) { } - EnumTypeDescriptor (const char * nm, PrimitiveType ft, - Schema *origSchema, const char * d, - EnumCreator f =0 ); - - virtual ~EnumTypeDescriptor () { } -}; - - -/////////////////////////////////////////////////////////////////////////////// -// EntityDescriptor -// An instance of this class will be generated for each entity type -// found in the schema. This should probably be derived from the -// CreatorEntry class (see sdaiApplicaton_instance.h). Then the binary tree -// that the current software builds up containing the entities in the schema -// will be building the same thing but using the new schema info. -// nodes (i.e. EntityDesc nodes) for each entity. -/////////////////////////////////////////////////////////////////////////////// - -class EntityDescriptor : public TypeDescriptor { - - protected: -// const Schema * _originatingSchema; - SCLP23(LOGICAL) _abstractEntity; - SCLP23(LOGICAL) _extMapping; - // does external mapping have to be used to create an instance of - // us (see STEP Part 21, sect 11.2.5.1) - - EntityDescriptorList _subtypes; // OPTIONAL - EntityDescriptorList _supertypes; // OPTIONAL - - AttrDescriptorList _explicitAttr; // OPTIONAL -// StringAggregate * _derivedAttr; // OPTIONAL - Inverse_attributeList _inverseAttr; // OPTIONAL - - SCLstring _supertype_stmt; - public: - Uniqueness_rule__set_var _uniqueness_rules; // initially a null pointer - - // pointer to a function that will create a new instance of a SCLP23(Application_instance) - Creator NewSTEPentity; - - EntityDescriptor ( ); - EntityDescriptor (const char * name, // i.e. char * - Schema *origSchema, - SCLLOG(Logical) abstractEntity, // i.e. F U or T - SCLLOG(Logical) extMapping, - Creator f =0 - ); - - virtual ~EntityDescriptor (); - - const char * GenerateExpress (SCLstring &buf) const; - - const char * QualifiedName(SCLstring &s) const; - - const SCLP23(LOGICAL) & AbstractEntity() const - { return _abstractEntity;} - const SCLP23(LOGICAL) & ExtMapping() const { return _extMapping; } - void AbstractEntity (SCLP23(LOGICAL) &ae) - { _abstractEntity.put(ae.asInt()); } - void ExtMapping (SCLP23(LOGICAL) &em) - { _extMapping.put(em.asInt()); } - void AbstractEntity (SCLLOG(Logical) ae) { _abstractEntity.put(ae); } - void ExtMapping (SCLLOG(Logical) em) { _extMapping.put(em); } - void ExtMapping (const char *em) { _extMapping.put(em); } - - const EntityDescriptorList& Subtypes() const - { return _subtypes; } - - const EntityDescriptorList& Supertypes() const - { return _supertypes; } - - const EntityDescriptorList& GetSupertypes() const - { return _supertypes; } - - const AttrDescriptorList& ExplicitAttr() const - { return _explicitAttr; } - -// StringAggregate & DerivedAttr() { return *_derivedAttr; } - - const Inverse_attributeList& InverseAttr() const - { return _inverseAttr; } - - virtual const EntityDescriptor * IsA (const EntityDescriptor *) const; - virtual const TypeDescriptor * IsA (const TypeDescriptor * td) const; - virtual const TypeDescriptor * IsA (const char * n) const - { return TypeDescriptor::IsA (n); } - virtual const TypeDescriptor * CanBe (const TypeDescriptor *o) const - { return o -> IsA (this); } - - virtual const TypeDescriptor * CanBe (const char *n) const - { return TypeDescriptor::CanBe (n); } - - // The following will be used by schema initialization functions - - void AddSubtype(EntityDescriptor *ed) - { _subtypes.AddNode(ed); } - void AddSupertype_Stmt(const char *s) { _supertype_stmt = s; } - const char * Supertype_Stmt() { return _supertype_stmt.chars(); } - SCLstring& supertype_stmt_() { return _supertype_stmt; } - - void AddSupertype(EntityDescriptor *ed) - { _supertypes.AddNode(ed); } - - void AddExplicitAttr(AttrDescriptor *ad) - { _explicitAttr.AddNode(ad); } - - void AddInverseAttr(Inverse_attribute *ia) - { _inverseAttr.AddNode(ia); } - void uniqueness_rules_(Uniqueness_rule__set *urs) - { _uniqueness_rules = urs; } - Uniqueness_rule__set_var& uniqueness_rules_() - { return _uniqueness_rules; } - -}; - - -/////////////////////////////////////////////////////////////////////////////// -// EnumerationTypeDescriptor -/////////////////////////////////////////////////////////////////////////////// -#ifdef NOT_YET -class EnumerationTypeDescriptor : public TypeDescriptor { - - protected: - StringAggregate *_elements ; // of (null) - - public: - EnumerationTypeDescriptor ( ); - virtual ~EnumerationTypeDescriptor () { } - - - StringAggregate & Elements() { return *_elements; } -// void Elements (StringAggregate e); -}; -#endif - -class STEPaggregate; -class EnumAggregate; -class GenericAggregate; -class EntityAggregate; -class SelectAggregate; -class StringAggregate; -class BinaryAggregate; -class RealAggregate; -class IntAggregate; - -#ifdef __OSTORE__ -typedef STEPaggregate * (* AggregateCreator) (os_database *db) ; -typedef EnumAggregate * (* EnumAggregateCreator) (os_database *db) ; -typedef GenericAggregate * (* GenericAggregateCreator) (os_database *db) ; -typedef EntityAggregate * (* EntityAggregateCreator) (os_database *db) ; -typedef SelectAggregate * (* SelectAggregateCreator) (os_database *db) ; -typedef StringAggregate * (* StringAggregateCreator) (os_database *db) ; -typedef BinaryAggregate * (* BinaryAggregateCreator) (os_database *db) ; -typedef RealAggregate * (* RealAggregateCreator) (os_database *db) ; -typedef IntAggregate * (* IntAggregateCreator) (os_database *db) ; -#else -typedef STEPaggregate * (* AggregateCreator) () ; -typedef EnumAggregate * (* EnumAggregateCreator) () ; -typedef GenericAggregate * (* GenericAggregateCreator) () ; -typedef EntityAggregate * (* EntityAggregateCreator) () ; -typedef SelectAggregate * (* SelectAggregateCreator) () ; -typedef StringAggregate * (* StringAggregateCreator) () ; -typedef BinaryAggregate * (* BinaryAggregateCreator) () ; -typedef RealAggregate * (* RealAggregateCreator) () ; -typedef IntAggregate * (* IntAggregateCreator) () ; -#endif - -#ifdef __OSTORE__ -EnumAggregate * create_EnumAggregate(os_database *db); - -GenericAggregate * create_GenericAggregate(os_database *db); - -EntityAggregate * create_EntityAggregate(os_database *db); - -SelectAggregate * create_SelectAggregate(os_database *db); - -StringAggregate * create_StringAggregate(os_database *db); - -BinaryAggregate * create_BinaryAggregate(os_database *db); - -RealAggregate * create_RealAggregate(os_database *db); - -IntAggregate * create_IntAggregate(os_database *db); -#else -EnumAggregate * create_EnumAggregate(); - -GenericAggregate * create_GenericAggregate(); - -EntityAggregate * create_EntityAggregate(); - -SelectAggregate * create_SelectAggregate(); - -StringAggregate * create_StringAggregate(); - -BinaryAggregate * create_BinaryAggregate(); - -RealAggregate * create_RealAggregate(); - -IntAggregate * create_IntAggregate(); -#endif -/////////////////////////////////////////////////////////////////////////////// -// AggrTypeDescriptor -// I think we decided on a simplistic representation of aggr. types for now? -// i.e. just have one AggrTypeDesc for Array of [list of] [set of] someType -// the inherited variable _referentType will point to the TypeDesc for someType -// So I don't believe this class was necessary. If we were to retain -// info for each of the [aggr of]'s in the example above then there would be -// one of these for each [aggr of] above and they would be strung -// together by the _aggrDomainType variables. If you can make this -// work then go for it. -/////////////////////////////////////////////////////////////////////////////// - -class AggrTypeDescriptor : public TypeDescriptor { - - protected: - - SCLP23(Integer) _bound1 ; - SCLP23(Integer) _bound2 ; - SCLP23(LOGICAL) _uniqueElements ; - TypeDescriptor * _aggrDomainType ; - AggregateCreator CreateNewAggr; - - public: - - void AssignAggrCreator(AggregateCreator f = 0) - { - CreateNewAggr = f; - } - -#ifdef __OSTORE__ - STEPaggregate *CreateAggregate(os_database *db); -#else - STEPaggregate *CreateAggregate(); -#endif - - AggrTypeDescriptor ( ); - AggrTypeDescriptor(SCLP23(Integer) b1, SCLP23(Integer) b2, - SCLLOG(Logical) uniqElem, - TypeDescriptor *aggrDomType); - AggrTypeDescriptor (const char * nm, PrimitiveType ft, - Schema *origSchema, const char * d, - AggregateCreator f =0 ) - : TypeDescriptor (nm, ft, origSchema, d), CreateNewAggr(f) { } - virtual ~AggrTypeDescriptor (); - - - SCLP23(Integer) & Bound1() { return _bound1; } - void Bound1 (SCLP23(Integer) b1) { _bound1 = b1; } - - SCLP23(Integer) & Bound2() { return _bound2; } - void Bound2 (SCLP23(Integer) b2) { _bound2 = b2; } - - SCLP23(LOGICAL)& UniqueElements() { return _uniqueElements; } - void UniqueElements (SCLP23(LOGICAL) &ue) - { _uniqueElements.put(ue.asInt()); } - void UniqueElements (SCLLOG(Logical) ue) { _uniqueElements.put(ue); } - void UniqueElements (const char *ue) { _uniqueElements.put(ue); } - - class TypeDescriptor * AggrDomainType() { return _aggrDomainType; } - void AggrDomainType (TypeDescriptor * adt) { _aggrDomainType = adt; } -}; - -/////////////////////////////////////////////////////////////////////////////// -// ArrayTypeDescriptor -/////////////////////////////////////////////////////////////////////////////// - -class ArrayTypeDescriptor : public AggrTypeDescriptor { - - protected: - SCLP23(LOGICAL) _optionalElements ; - public: - - ArrayTypeDescriptor ( ) : _optionalElements("UNKNOWN_TYPE") { } - ArrayTypeDescriptor (SCLLOG(Logical) optElem) : _optionalElements(optElem) - { } - ArrayTypeDescriptor (const char * nm, PrimitiveType ft, - Schema *origSchema, const char * d, - AggregateCreator f =0 ) - : AggrTypeDescriptor (nm, ft, origSchema, d, f), - _optionalElements("UNKNOWN_TYPE") - { } - - virtual ~ArrayTypeDescriptor () {} - - - SCLP23(LOGICAL)& OptionalElements() { return _optionalElements; } - void OptionalElements (SCLP23(LOGICAL) &oe) - { _optionalElements.put(oe.asInt()); } - void OptionalElements (SCLLOG(Logical) oe) { _optionalElements.put(oe); } - void OptionalElements (const char *oe) { _optionalElements.put(oe); } -}; - -class ListTypeDescriptor : public AggrTypeDescriptor { - - protected: - public: - -/* void AssignAggrCreator(ListAggregateCreator f = 0) - { - CreateNewAggr = f; - } - - STEPaggregate *CreateListAggregate() - { - if(CreateNewAggr) - return CreateNewAggr(); - else - return 0; - } - */ - ListTypeDescriptor ( ) { } - ListTypeDescriptor (const char * nm, PrimitiveType ft, - Schema *origSchema, const char * d, - AggregateCreator f =0 ) - : AggrTypeDescriptor (nm, ft, origSchema, d, f) { } - virtual ~ListTypeDescriptor () { } - -}; - -class SetTypeDescriptor : public AggrTypeDescriptor { - - protected: - public: - - SetTypeDescriptor ( ) { } - SetTypeDescriptor (const char * nm, PrimitiveType ft, - Schema *origSchema, const char * d, - AggregateCreator f =0 ) - : AggrTypeDescriptor (nm, ft, origSchema, d, f) { } - virtual ~SetTypeDescriptor () { } - -}; - -class BagTypeDescriptor : public AggrTypeDescriptor { - - protected: - public: - - BagTypeDescriptor ( ) { } - BagTypeDescriptor (const char * nm, PrimitiveType ft, - Schema *origSchema, const char * d, - AggregateCreator f =0 ) - : AggrTypeDescriptor (nm, ft, origSchema, d, f) { } - virtual ~BagTypeDescriptor () { } - -}; - -#ifdef __OSTORE__ -typedef SCLP23(Select) * (* SelectCreator) (os_database *db) ; -#else -typedef SCLP23(Select) * (* SelectCreator) () ; -#endif - -class SelectTypeDescriptor : public TypeDescriptor { - - protected: - TypeDescriptorList _elements ; // of TYPE_DESCRIPTOR - int _unique_elements; - - public: - - SelectCreator CreateNewSelect; - - void AssignSelectCreator(SelectCreator f = 0) - { - CreateNewSelect = f; - } - -#ifdef __OSTORE__ - SCLP23(Select) *CreateSelect(os_database *db); -#else - SCLP23(Select) *CreateSelect(); -#endif - - SelectTypeDescriptor (int b, const char * nm, PrimitiveType ft, - Schema *origSchema, - char * d, SelectCreator f =0 ) - : TypeDescriptor (nm, ft, origSchema, d), - _unique_elements (b), CreateNewSelect(f) - { } - virtual ~SelectTypeDescriptor () { } - - TypeDescriptorList& Elements() { return _elements; } - const TypeDescriptorList& GetElements() const { return _elements; } -// void Elements (TypeDescriptorList x); - int UniqueElements () const { return _unique_elements; } - virtual const TypeDescriptor * IsA (const TypeDescriptor *) const; - virtual const TypeDescriptor * IsA (const char * n) const - { return TypeDescriptor::IsA (n); } - virtual const TypeDescriptor * CanBe (const TypeDescriptor *) const; - virtual const TypeDescriptor * CanBe (const char *n) const; - virtual const TypeDescriptor * CanBeSet (const char *, const char *) - const; -}; - -class StringTypeDescriptor : public TypeDescriptor { - - protected: - SCLP23(Integer) _width ; // OPTIONAL - SCLP23(LOGICAL) _fixedSize ; - public: - - StringTypeDescriptor ( ) : _fixedSize("UNKNOWN_TYPE") { _width = 0; } - virtual ~StringTypeDescriptor () { } - - - SCLP23(Integer) Width() { return _width; } - void Width (SCLP23(Integer) w) { _width = w; } - - SCLP23(LOGICAL)& FixedSize() { return _fixedSize; } - void FixedSize (SCLP23(LOGICAL) fs) { _fixedSize.put(fs.asInt()); } - void FixedSize (SCLLOG(Logical) fs) { _fixedSize.put(fs); } -}; - -class RealTypeDescriptor : public TypeDescriptor { - - protected: - SCLP23(Integer) _precisionSpec ; // OPTIONAL - public: - - RealTypeDescriptor ( ) { _precisionSpec = 0; } - virtual ~RealTypeDescriptor () { } - - SCLP23(Integer) PrecisionSpec() { return _precisionSpec; } - void PrecisionSpec (SCLP23(Integer) ps) { _precisionSpec = ps; } -}; - - -#endif diff --git a/source/geometry/solids/STEP/include/Registry.h b/source/geometry/solids/STEP/include/Registry.h deleted file mode 100644 index 0b04b151e4..0000000000 --- a/source/geometry/solids/STEP/include/Registry.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef _REGISTRY_H -#define _REGISTRY_H - -/* -* NIST STEP Core Class Library -* clstepcore/Registry.h -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: Registry.h,v 1.3 2000/01/21 13:42:30 gcosmo Exp $ */ - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#include -//#include -#include -#include -#include -#include - -typedef struct Hash_Table * HashTable; - -class Registry; -extern char * EntityClassName ( char *); -typedef void (* CF_init) (Registry &); // pointer to creation initialization - -class Registry { - protected: - HashTable primordialSwamp; // dictionary of EntityDescriptors - HashTable active_schemas; // dictionary of Schemas - HashTable active_types; // dictionary of TypeDescriptors - ComplexCollect *col; // struct containing all complex entity info - - int entity_cnt, - all_ents_cnt; - HashEntry cur_entity; - HashEntry cur_schema; - HashEntry cur_type; - - // used by AddEntity() and RemoveEntity() to deal with renamings of an - // entity done in a USE or REFERENCE clause - see header comments in - // file Registry.inline.cc - void AddClones (const EntityDescriptor &); - void RemoveClones (const EntityDescriptor &); - - public: - Registry (CF_init initFunct); - ~Registry (); - void DeleteContents (); // CAUTION: calls delete on all the descriptors - - const EntityDescriptor* FindEntity (const char *, const char * =0, - int check_case =0) const; - const Schema* FindSchema (const char *, int check_case =0) const; - const TypeDescriptor* FindType (const char *, int check_case =0) const; - - void AddEntity (const EntityDescriptor&); - void AddSchema (const Schema&); - void AddType (const TypeDescriptor&); - - void RemoveEntity (const char *); - void RemoveSchema (const char *); - void RemoveType (const char *); - - int GetEntityCnt (); - int GetFullEntCnt () { return all_ents_cnt; } - - void ResetEntities (); - const EntityDescriptor * NextEntity (); - - void ResetSchemas (); - const Schema * NextSchema (); - - void ResetTypes (); - const TypeDescriptor * NextType (); - - const ComplexCollect *CompCol() { return col; } - void SetCompCollect( ComplexCollect *c ) { col = c; } - -#ifdef __OSTORE__ - SCLP23(Application_instance)* ObjCreate (const char * nm, os_database *db =0, - const char * =0, int check_case =0) const; -#else - SCLP23(Application_instance)* ObjCreate (const char * nm, const char * =0, - int check_case =0) const; -#endif - -}; - -#endif /* _REGISTRY_H */ diff --git a/source/geometry/solids/STEP/include/STEPaggregate.h b/source/geometry/solids/STEP/include/STEPaggregate.h deleted file mode 100644 index 3a560c56dc..0000000000 --- a/source/geometry/solids/STEP/include/STEPaggregate.h +++ /dev/null @@ -1,741 +0,0 @@ -#ifndef STEPAGGREGATE_H -#define STEPAGGREGATE_H - -/* -* NIST STEP Core Class Library -* clstepcore/STEPaggregate.h -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPaggregate.h,v 1.5 2003/06/06 17:07:28 gcosmo Exp $ */ - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -class InstMgr; -class STEPaggregate; -#ifndef _ODI_OSSG_ -class LOGICAL; -class BOOL; -#endif -class TypeDescriptor; - -#include -#include -#include -#include -#include -#include -#include "G4ios.hh" - -//class SCLP23(Application_instance); -//#define S_ENTITY_NULL &NilSTEPentity -//extern SCLP23(Application_instance) NilSTEPentity; - - -#define AGGR_NULL &NilSTEPaggregate -extern STEPaggregate NilSTEPaggregate; - -//typedef unsigned short BOOLEAN; -class SingleLinkNode; - -/****************************************************************************** - ** - *****************************************************************************/ - -typedef STEPaggregate * STEPaggregateH; -typedef STEPaggregate * STEPaggregate_ptr; -typedef STEPaggregate_ptr STEPaggregate_var; - -class STEPaggregate : public SingleLinkList -{ - protected: - int _null; - - protected: - - virtual Severity ReadValue(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId =0, - int assignVal =1, int ExchangeFileFormat =1, - const char *currSch =0); - public: - - int is_null() { return _null; } - - virtual Severity AggrValidLevel(const char *value, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int optional, char *tokenList, int addFileId =0, - int clearError =0); - - virtual Severity AggrValidLevel(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int optional, char *tokenList, int addFileId =0, - int clearError =0); - -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err =0, - const TypeDescriptor *elem_type =0, - InstMgr *insts =0, int addFileId = 0); - virtual Severity STEPread (std::istream& in, ErrorDescriptor *err, - const TypeDescriptor *elem_type =0, - InstMgr *insts =0, int addFileId =0, - const char *currSch =0); -// OUTPUT - virtual const char *asStr(SCLstring & s) const; - virtual void STEPwrite (std::ostream& out =G4cout, const char * =0) const; - -// SingleLinkNode * GetHead () const -// { return (STEPnode *) SingleLinkList::GetHead(); } - - virtual SingleLinkNode * NewNode (); - void AddNode (SingleLinkNode *); - void Empty (); - - STEPaggregate (); - virtual ~STEPaggregate (); - -// COPY - defined in subtypes - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -/****************************************************************** - ** Class: GenericAggregate - ** Description: This class supports LIST OF: - ** SELECT_TYPE, BINARY_TYPE, GENERIC_TYPE, ENUM_TYPE, UNKNOWN_TYPE type - ******************************************************************/ - -class GenericAggregate : public STEPaggregate -{ - public: - virtual SingleLinkNode *NewNode(); - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - - GenericAggregate(); - virtual ~GenericAggregate(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef GenericAggregate * GenericAggregateH; -typedef GenericAggregate * GenericAggregate_ptr; -typedef GenericAggregate_ptr GenericAggregate_var; - -/****************************************************************************** - ** - *****************************************************************************/ - -class EntityAggregate : public STEPaggregate -{ - public: - virtual Severity ReadValue(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId =0, - int assignVal =1, int ExchangeFileFormat =1, - const char *currSch =0); - - virtual SingleLinkNode *NewNode(); - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - - EntityAggregate (); - virtual ~EntityAggregate (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef EntityAggregate * EntityAggregateH; -typedef EntityAggregate * EntityAggregate_ptr; -typedef EntityAggregate_ptr EntityAggregate_var; - -/****************************************************************** - ** Class: SelectAggregate - ** Description: this is a minimal representions for a collection of - ** SCLP23(Select) - ******************************************************************/ -class SelectAggregate : public STEPaggregate -{ - public: - virtual Severity ReadValue(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId =0, - int assignVal =1, int ExchangeFileFormat =1, - const char *currSch =0); - - virtual SingleLinkNode *NewNode (); - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - - SelectAggregate (); - virtual ~SelectAggregate (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef SelectAggregate * SelectAggregateH; -typedef SelectAggregate * SelectAggregate_ptr; -typedef SelectAggregate_ptr SelectAggregate_var; - -/****************************************************************** - ** Class: StringAggregate - ** Description: This class supports LIST OF STRING type - ******************************************************************/ -class StringAggregate : public STEPaggregate -{ - public: - virtual SingleLinkNode *NewNode(); - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - - StringAggregate(); - virtual ~StringAggregate(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef StringAggregate * StringAggregateH; -typedef StringAggregate * StringAggregate_ptr; -typedef StringAggregate_ptr StringAggregate_var; - - -/****************************************************************** - ** Class: BinaryAggregate - ** Description: This class supports LIST OF BINARY type - ******************************************************************/ -class BinaryAggregate : public STEPaggregate -{ - public: - virtual SingleLinkNode *NewNode(); - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - - BinaryAggregate(); - virtual ~BinaryAggregate(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef BinaryAggregate * BinaryAggregateH; -typedef BinaryAggregate * BinaryAggregate_ptr; -typedef BinaryAggregate_ptr BinaryAggregate_var; - -/****************************************************************** - ** Class: EnumAggregate - ** Description: this is a minimal representions for a collection of - ** SCLP23(Enum) - ******************************************************************/ -class EnumAggregate : public STEPaggregate -{ - public: - virtual SingleLinkNode *NewNode (); - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - - EnumAggregate (); - virtual ~EnumAggregate (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef EnumAggregate * EnumAggregateH; -typedef EnumAggregate * EnumAggregate_ptr; -typedef EnumAggregate_ptr EnumAggregate_var; - -class LOGICALS : public EnumAggregate -{ - public: - virtual SingleLinkNode * NewNode (); - - LOGICALS(); - virtual ~LOGICALS(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef LOGICALS * LogicalsH; -typedef LOGICALS * LOGICALS_ptr; -typedef LOGICALS_ptr LOGICALS_var; -#ifdef __OSTORE__ -LOGICALS * create_LOGICALS(os_database *db); -#else -LOGICALS * create_LOGICALS(); -#endif - - -class BOOLS : public EnumAggregate -{ - public: - virtual SingleLinkNode * NewNode (); - - BOOLS(); - virtual ~BOOLS(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -//typedef BOOLS * BooleansH; -typedef BOOLS * BOOLS_ptr; -typedef BOOLS_ptr BOOLS_var; - -#ifdef __OSTORE__ -BOOLS * create_BOOLS(os_database *db); -#else -BOOLS * create_BOOLS(); -#endif - -class RealAggregate : public STEPaggregate { - - public: - virtual SingleLinkNode *NewNode(); - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - - RealAggregate(); - virtual ~RealAggregate(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef RealAggregate * RealAggregateH; -typedef RealAggregate * RealAggregate_ptr; -typedef RealAggregate_ptr RealAggregate_var; - -class IntAggregate : public STEPaggregate { - - public: - virtual SingleLinkNode *NewNode(); - virtual STEPaggregate& ShallowCopy (const STEPaggregate&); - - IntAggregate(); - virtual ~IntAggregate(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef IntAggregate * IntAggregateH; -typedef IntAggregate * IntAggregate_ptr; -typedef IntAggregate_ptr IntAggregate_var; - -/////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// - -class STEPnode : public SingleLinkNode { - protected: - int _null; - - public: - int is_null() { return _null; } - void set_null() { _null = 1; } - -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err); - -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite(SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; -typedef STEPnode * STEPnodeH; - -/****************************************************************** - ** Class: GenericNode - ** Description: This class is for the Nodes of GenericAggregates - ******************************************************************/ - -class GenericAggrNode : public STEPnode { - public: - - SCLundefined value; - - public: -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err); - -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite(SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); - -// CONSTRUCTORS - GenericAggrNode (const char *str); - GenericAggrNode (GenericAggrNode& gan); - GenericAggrNode (); - ~GenericAggrNode (); - - virtual SingleLinkNode * NewNode (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -///////////////////////////////////////////////////////////////////////////// - -class EntityNode : public STEPnode { - public: - SCLP23(Application_instance) * node; - -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId = 0); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId = 0); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId = 0); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId = 0); -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite (SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); - -// CONSTRUCTORS - EntityNode (SCLP23(Application_instance) * e); - EntityNode(); - ~EntityNode(); - - virtual SingleLinkNode * NewNode (); - - // Calling these funtions is an error. - Severity StrToVal(const char *s, ErrorDescriptor *err) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return StrToVal(s, err, 0, 0, 0); - } - Severity StrToVal(std::istream &in, ErrorDescriptor *err) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return StrToVal(in, err, 0, 0, 0); - } - - Severity STEPread(const char *s, ErrorDescriptor *err) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return STEPread(s, err, 0, 0, 0); - } - Severity STEPread(std::istream &in, ErrorDescriptor *err) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return STEPread(in, err, 0, 0, 0); - } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -/////////////////////////////////////////////////////////////////////////// - -/****************************************************************** - ** Class: SelectNode - ** Description: this is a minimal representions for node in lists of - ** SCLP23(Select) - ******************************************************************/ - -class SelectNode : public STEPnode { - public: - - SCLP23(Select) * node; - - public: -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId = 0); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId = 0, - const char *currSch =0); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId = 0); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId = 0, - const char *currSch =0); -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite (SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); - -// CONSTRUCTORS - SelectNode(SCLP23(Select) * s); - SelectNode(); - ~SelectNode(); - - virtual SingleLinkNode * NewNode (); - - // Calling these funtions is an error. - Severity StrToVal(const char *s, ErrorDescriptor *err) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return StrToVal(s, err, 0, 0, 0); - } - Severity StrToVal(std::istream &in, ErrorDescriptor *err) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return StrToVal(in, err, 0, 0, 0); - } - - Severity STEPread(const char *s, ErrorDescriptor *err) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return STEPread(s, err, 0, 0, 0); - } - Severity STEPread(std::istream &in, ErrorDescriptor *err) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return STEPread(in, err, 0, 0, 0); - } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -/////////////////////////////////////////////////////////////////////////// - -/****************************************************************** - ** Class: StringNode - ** Description: This class is for the Nodes of StringAggregates - ******************************************************************/ - -class StringNode : public STEPnode { - public: - - SCLP23(String) value; - - public: -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err); - -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite (SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); - -// CONSTRUCTORS - StringNode(StringNode& sn); - StringNode (const char * sStr); - StringNode(); - ~StringNode(); - - virtual SingleLinkNode * NewNode (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -/////////////////////////////////////////////////////////////////////////// - -/****************************************************************** - ** Class: BinaryNode - ** Description: This class is for the Nodes of BinaryAggregates - ******************************************************************/ - -class BinaryNode : public STEPnode { - public: - - SCLP23(Binary) value; - - public: -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err); - -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite (SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); - -// CONSTRUCTORS - BinaryNode(BinaryNode& bn); - BinaryNode (const char * sStr); - BinaryNode(); - ~BinaryNode(); - - virtual SingleLinkNode * NewNode (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -/****************************************************************** - ** Class: EnumNode - ** Description: this is a minimal representions for node in lists of - ** SCLP23(Enum) - ******************************************************************/ - -class EnumNode : public STEPnode { - public: - - SCLP23(Enum) * node; - - public: -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err); - -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite (SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); - -// CONSTRUCTORS - EnumNode(SCLP23(Enum) * e); - EnumNode(); - ~EnumNode(); - - virtual SingleLinkNode * NewNode (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -class RealNode : public STEPnode { - public: - SCLP23(Real) value; // double - - public: -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err); - -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite (SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); - -// CONSTRUCTORS - RealNode(); - ~RealNode(); - - virtual SingleLinkNode * NewNode (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -class IntNode : public STEPnode { - public: - SCLP23(Integer) value; // long int - - public: -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err); - -// OUTPUT - virtual const char *asStr(SCLstring & s); - virtual const char *STEPwrite (SCLstring &s, const char * =0); - virtual void STEPwrite (std::ostream& out =G4cout); - -// CONSTRUCTORS - IntNode(); - ~IntNode(); - - virtual SingleLinkNode * NewNode (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -/****************************************************************** - ** The following classes are currently stubs - ** -**/ -/* -class Array : public STEPaggregate { - public: - int lowerBound; - int upperBound; -}; - -class Bag : public STEPaggregate { - public: - int min_ele; - int max_ele; -}; - -class List : public STEPaggregate { - int min_ele; - int max_ele; - List *prev; -}; - -class Set : -public STEPaggregate { - int cnt; -}; -*/ -#endif diff --git a/source/geometry/solids/STEP/include/STEPattribute.h b/source/geometry/solids/STEP/include/STEPattribute.h deleted file mode 100644 index 6035ca9168..0000000000 --- a/source/geometry/solids/STEP/include/STEPattribute.h +++ /dev/null @@ -1,233 +0,0 @@ -#ifndef STEPATTRIBUTE_H -#define STEPATTRIBUTE_H 1 - -/* -* NIST STEP Core Class Library -* clstepcore/STEPattribute.h -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPattribute.h,v 1.6 2003/06/06 17:07:28 gcosmo Exp $ */ - -#include - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -#include -#include -#include - -#include - -// this is used to set a const int Real_Num_Precision -// in STEPaggregate.cc and STEPattribute.cc -#define REAL_NUM_PRECISION 15 - -// Commented out following declarations, since not used and -// causing clashes with system headers on some compilers.... - GC -//typedef unsigned short BOOLEAN; -//typedef double real; - -class InstMgr; -// Commented out following declaration, since meaningless - GC -//class SCLP23(Application_instance); -class STEPaggregate; -class SCLundefined; -//class SCLP23(Enum); -//class SCLP23(Select); -//class SCLP23(Binary); -//class SCLP23(String); - -class TypeDescriptor; -class AttrDescriptor; -class EntityDescriptor; - -#include -//#include - -//#define s_String char * - -extern int SetErrOnNull(const char *attrValue, ErrorDescriptor *error); -//////////////////// -//////////////////// - -extern Severity -CheckRemainingInput(std::istream &in, ErrorDescriptor *err, - const char *typeName, // used in error message - const char *tokenList); // e.g. ",)" - -extern SCLP23(Application_instance) * -ReadEntityRef(std::istream &in, ErrorDescriptor *err, char *tokenList, - InstMgr * instances, int addFileId); - -extern SCLP23(Application_instance) * -ReadEntityRef(const char * s, ErrorDescriptor *err, char *tokenList, - InstMgr * instances, int addFileId); - -extern Severity -EntityValidLevel(SCLP23(Application_instance) *se, - const TypeDescriptor *ed, // entity type that entity se needs - // to match. (this must be an - // EntityDescriptor) - ErrorDescriptor *err); - -extern Severity -EntityValidLevel(const char *attrValue, // string contain entity ref - const TypeDescriptor *ed, // entity type that entity in - // attrValue (if it exists) needs - // to match. (this must be an - // EntityDescriptor) - ErrorDescriptor *err, InstMgr *im, int clearError); - -//////////////////// -//////////////////// - -extern SCLP23(Application_instance) *STEPread_reference (const char * s, ErrorDescriptor *err, - InstMgr * instances, int addFileId); -//////////////////// - -extern int QuoteInString(std::istream& in); - -extern void AppendChar(char c, int& index, char *&s, int& sSize); - -extern void -PushPastString (std::istream& in, SCLstring &s, ErrorDescriptor *err); - -extern void -PushPastImbedAggr (std::istream& in, SCLstring &s, ErrorDescriptor *err); - -extern void -PushPastAggr1Dim(std::istream& in, SCLstring &s, ErrorDescriptor *err); - -//extern Severity ValidateEntityType(SCLP23(Application_instance) *se, -// const AttrDescriptor *ad, -// ErrorDescriptor *error); - -class STEPattribute { - - friend std::ostream &operator<< ( std::ostream&, STEPattribute& ); - -// The CenterLine compiler couldn't handle this friend declaration. -// Here is the error -// "../../../src/clstepcore/STEPattribute.h", line 118: internal << AT&T C++ Translator 3.0.2 - ObjectCenter Version 2.1>> error: cannot find friend P23::Application_instance -// We may want to change the next two lines back at some point? DAS -// friend class SCLP23(Application_instance); -// protected: - public: - - ErrorDescriptor _error; - - const AttrDescriptor * aDesc; - - unsigned int _derive : 1; - int Derive (unsigned int n =1) { return _derive =n; } - - STEPattribute *_redefAttr; - void RedefiningAttr(STEPattribute *a) { _redefAttr = a; } - - // You know which of these to use based on the return value of - // NonRefType() - see below. BASE_TYPE is defined in baseType.h - // This variable points to an appropriate member variable in the entity - // class in the generated schema class library (the entity class is - // inherited from SCLP23(Application_instance)) - union { - SCLP23(String) *S;// STRING_TYPE - SCLP23(Integer) *i; // INTEGER_TYPE (Integer is a long int) - SCLP23(Binary) *b; // BINARY_TYPE - SCLP23(Real) *r; // REAL_TYPE and NUMBER_TYPE (Real is a double) - SCLP23(Application_instance)* *c; // ENTITY_TYPE - STEPaggregate *a; // AGGREGATE_TYPE - SCLP23(Enum) *e; // ENUM_TYPE, BOOLEAN_TYPE, and LOGICAL_TYPE - SCLP23(Select) *sh; // SELECT_TYPE - SCLundefined *u; // UNKNOWN_TYPE - void *p; - - } ptr; - - protected: - char SkipBadAttr(std::istream& in, char *StopChars); - void AddErrorInfo(); - - public: - -///////////// Read, Write, Assign attr value - - Severity StrToVal(const char *s, InstMgr *instances =0, - int addFileId =0); - Severity STEPread(std::istream& in = G4cin, InstMgr *instances =0, - int addFileId =0, const char * =NULL); - - const char * asStr(SCLstring &, const char * =0) const; - // return the attr value as a string - void STEPwrite(std::ostream& out = G4cout, const char * =0); - - int ShallowCopy(STEPattribute *sa); - - Severity set_null(); - -////////////// Return info on attr - - int Nullable() const; // may this attribute be null? - int is_null () const; // is this attribute null? - int IsDerived () const { return _derive; } - STEPattribute *RedefiningAttr() { return _redefAttr; } - - const char * Name() const; - const char * TypeName() const; - const BASE_TYPE Type() const; - const BASE_TYPE NonRefType() const; - const BASE_TYPE BaseType() const; - - const TypeDescriptor *ReferentType() const; - - ErrorDescriptor &Error() { return _error; } - void ClearErrorMsg() { _error.ClearErrorMsg(); } - - Severity ValidLevel (const char *attrValue, ErrorDescriptor *error, - InstMgr *im, int clearError = 1); -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - public: - -////////////////// Constructors - - STEPattribute (const STEPattribute& a); - STEPattribute () {}; - - ~STEPattribute () {}; - - // INTEGER - STEPattribute (const class AttrDescriptor& d, SCLP23(Integer) *p); - // BINARY - STEPattribute (const class AttrDescriptor& d, SCLP23(Binary) *p); - // STRING - STEPattribute (const class AttrDescriptor& d, SCLP23(String) *p); - // REAL & NUMBER - STEPattribute (const class AttrDescriptor& d, SCLP23(Real) *p); - // ENTITY - STEPattribute (const class AttrDescriptor& d, SCLP23(Application_instance)* *p); - // AGGREGATE - STEPattribute (const class AttrDescriptor& d, STEPaggregate *p); - // ENUMERATION and Logical - STEPattribute (const class AttrDescriptor& d, SCLP23(Enum) *p); - // SELECT - STEPattribute (const class AttrDescriptor& d, SCLP23(Select) *p); - // UNDEFINED - STEPattribute (const class AttrDescriptor& d, SCLundefined *p); - - friend int operator == (STEPattribute &a1, STEPattribute &a2); -}; - -#endif diff --git a/source/geometry/solids/STEP/include/STEPattributeList.h b/source/geometry/solids/STEP/include/STEPattributeList.h deleted file mode 100644 index 49ac471f2a..0000000000 --- a/source/geometry/solids/STEP/include/STEPattributeList.h +++ /dev/null @@ -1,87 +0,0 @@ - -#ifndef _STEPattributeList_h -#define _STEPattributeList_h 1 - -/* -* NIST STEP Core Class Library -* clstepcore/STEPattributeList.h -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPattributeList.h,v 1.3 2000/01/21 13:42:32 gcosmo Exp $ */ - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -//#ifndef _STEPattribute_typedefs -//#define _STEPattribute_typedefs 1 - -//#include -class STEPattribute; -#include - -//class STEPattribute; -class STEPattributeList; -//class AttrListNode; - -class AttrListNode : public SingleLinkNode -{ - friend class STEPattributeList; - - protected: - STEPattribute *attr; - - public: - AttrListNode(STEPattribute *a); - virtual ~AttrListNode(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -class STEPattributeList : public SingleLinkList -{ - public: - STEPattributeList(); - virtual ~STEPattributeList(); - - STEPattribute& operator [] (int n); - int list_length(); - void push(STEPattribute *a); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -/***************************************************************** -** ** -** This file defines the type STEPattributeList -- a list ** -** of pointers to STEPattribute objects. The nodes on the ** -** list point to STEPattributes. -** ** - USED TO BE - DAS -** The file was generated by using GNU's genclass.sh ** -** script with the List prototype definitions. The ** -** command to generate it was as follows: ** - - genclass.sh STEPattribute ref List STEPattribute - -** The file is dependent on the file "STEPattribute.h" ** -** which contains the definition of STEPattribute. ** -** ** -** 1/15/91 kcm ** -*****************************************************************/ - -#endif diff --git a/source/geometry/solids/STEP/include/STEPcomplex.h b/source/geometry/solids/STEP/include/STEPcomplex.h deleted file mode 100644 index 0451d69ea4..0000000000 --- a/source/geometry/solids/STEP/include/STEPcomplex.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef STEPCOMPLEX_H -#define STEPCOMPLEX_H - -#include -#include -#include -#include -//#include -#include - -class STEPcomplex : public SCLP23(Application_instance) { - - public: - STEPcomplex * sc; - STEPcomplex * head; - Registry * _registry; - int visited; // used when reading (or as you wish?) - - public: - STEPcomplex(Registry *registry, int fileid); - STEPcomplex(Registry *registry, const SCLstring **names, int fileid, - const char *schnm =0); - STEPcomplex(Registry *registry, const char **names, int fileid, - const char *schnm =0); - virtual ~STEPcomplex(); - - int EntityExists(const char *name, const char *currSch =0); - STEPcomplex *EntityPart(const char *name, const char *currSch =0); - -/* - // page 241 Stroustrup - STEPcomplex &operator[](const char *name); - STEPcomplex &operator[](const int index); -*/ - - virtual const EntityDescriptor * IsA(const EntityDescriptor *) const; - - virtual Severity ValidLevel(ErrorDescriptor *error, InstMgr *im, - int clearError = 1); -// READ - virtual Severity STEPread(int id, int addFileId, - class InstMgr * instance_set, - std::istream& in =G4cin, const char *currSch =NULL, - int useTechCor =1); - - virtual void STEPread_error(char c, int index, std::istream& in); - -// WRITE - virtual void STEPwrite(std::ostream& out =G4cout, const char *currSch =NULL, - int writeComment = 1); - virtual const char * STEPwrite(SCLstring &buf, const char *currSch =NULL); - - SCLP23(Application_instance) *Replicate(); - - virtual void WriteExtMapEntities(std::ostream& out =G4cout, - const char *currSch =NULL); - virtual const char * WriteExtMapEntities(SCLstring &buf, - const char *currSch =NULL); - virtual void AppendEntity(STEPcomplex *stepc); - - protected: - virtual void CopyAs(SCLP23(Application_instance) *); - void BuildAttrs(const char *s); - void AddEntityPart(const char *name); - void AssignDerives(); - void Initialize(const char **, const char *); -}; - -#endif diff --git a/source/geometry/solids/STEP/include/STEPfile.h b/source/geometry/solids/STEP/include/STEPfile.h deleted file mode 100644 index 1a36a00322..0000000000 --- a/source/geometry/solids/STEP/include/STEPfile.h +++ /dev/null @@ -1,249 +0,0 @@ -#ifndef _STEPFILE_H -#define _STEPFILE_H - -/* -* NIST STEP Core Class Library -* cleditor/STEPfile.h -* April 1997 -* Peter Carr -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPfile.h,v 1.6 2003/06/06 17:07:28 gcosmo Exp $ */ - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -/*#include */ -#include -#include -#include -#include -#include -#include - -#include - -//error reporting level -#define READ_COMPLETE 10 -#define READ_INCOMPLETE 20 - -enum FileTypeCode { - TYPE_UNKNOWN = -2, - VERSION_OLD = -1, - VERSION_UNKNOWN = 0, - VERSION_CURRENT = 1, - WORKING_SESSION = 2, - OLD_WORKING_SESSION = 3 - }; - -class STEPfile -{ - protected: - //data members - -#ifdef __OSTORE__ - public: - os_database *db; - void set_database(os_database *db_ptr) { db = db_ptr; } - os_database *get_database() { return db; } - protected: -#endif - -#ifdef __O3DB__ - InstMgr * _instances; - Registry * _reg; - - InstMgr & instances () { return *_instances; } - Registry & reg () { return *_reg; } -#else - InstMgr& _instances; - Registry& _reg; - - InstMgr & instances () { return _instances; } - Registry & reg () { return _reg; } -#endif - int _fileIdIncr; //Increment value to be added to FileId Numbers on input - -//header information - InstMgr* _headerInstances; - Registry *_headerRegistry; -//Registry *_headerUserDefined; -// Registry *_headerRegistryOld; - - int _headerId; //STEPfile_id given to SCLP23(Application_instance) from header section - -//file information - DirObj* _currentDir; - char* _fileName; - -//error information - ErrorDescriptor _error; - - // new errors - int _entsNotCreated; // num entities not created in first pass - int _entsInvalid; // num entities that had invalid attr values - int _entsIncomplete; // num entities that had missing attr values - // (includes entities that had invalid values - // for required attrs) - int _entsWarning; // num entities that may have had problems - // with attrs - reported as an attr user msg - - // old errors - int _errorCount; - int _warningCount; - - int _maxErrorCount; - - protected: - -//file type information - FileTypeCode _fileType; - char ENTITY_NAME_DELIM; - char* FILE_DELIM; - char* END_FILE_DELIM; - -//public member functions - public: - -//public access to member variables -//header information - InstMgr* HeaderInstances() { return _headerInstances; } - const Registry *HeaderRegistry() { return _headerRegistry; } -// to create header instances - SCLP23(Application_instance)* HeaderDefaultFileName(); - SCLP23(Application_instance)* HeaderDefaultFileDescription(); - SCLP23(Application_instance)* HeaderDefaultFileSchema(); - -//file information - const char* FileName() const { return _fileName; } - const char* SetFileName (const char* name = ""); - const char* TruncFileName (const char* name) const; - -//error information - ErrorDescriptor& Error() /* const */ { return _error; } - int ErrorCount() const { return _errorCount; } - int WarningCount() const { return _warningCount; } - Severity AppendEntityErrorMsg (ErrorDescriptor *e); - -//version information - FileTypeCode FileType() const { return _fileType; } - void FileType (FileTypeCode ft) { _fileType = ft; } - int SetFileType (FileTypeCode ft = VERSION_CURRENT); - -//Reading and Writing - Severity ReadExchangeFile (const char* filename =0, int useTechCor =1); - Severity AppendExchangeFile (const char* filename =0, int useTechCor =1); - - Severity ReadWorkingFile (const char* filename =0, int useTechCor =1); - Severity AppendWorkingFile (const char* filename =0, int useTechCor =1); - - Severity AppendFile (std::istream* in, int useTechCor =1) ; - - Severity WriteExchangeFile (std::ostream& out, int validate =1, - int clearError = 1, int writeComments = 1); - Severity WriteExchangeFile (const char* filename =0, int validate =1, - int clearError = 1, int writeComments = 1); - Severity WriteValuePairsFile(std::ostream& out, int validate =1, - int clearError =1, - int writeComments = 1, int mixedCase = 1); - - Severity WriteWorkingFile (std::ostream& out, int clearError = 1, - int writeComments = 1); - Severity WriteWorkingFile (const char* filename =0, int clearError = 1, - int writeComments = 1); - - stateEnum EntityWfState(char c); - - void Renumber (); - -//constructors - STEPfile (Registry& r, InstMgr& i, const char *filename = (const char*)0); - virtual ~STEPfile(); - - protected: -//member functions - char *schemaName( char * ); // returns and copies out schema name from - // header instances -//called by ReadExchangeFile - std::istream* OpenInputFile (const char* filename = ""); - void CloseInputFile(std::istream* in); - - Severity ReadHeader(std::istream& in); - - InstMgr* HeaderConvertToNew(InstMgr& oldinst); - Severity HeaderVerifyInstances(InstMgr* im); - void HeaderMergeInstances(InstMgr* im); - -// Commented following declaration, since NOT implemented and clashing with -// signature of function HeaderId(const char*) having default argument - GC -// int HeaderId (int increment =1); - int HeaderId (const char* nm ="\0"); - int HeaderIdOld (const char* nm ="\0"); - - int ReadData1 (std::istream& in); // first pass to create instances - // second pass to read instances - int ReadData2 (std::istream& in, int useTechCor =1); - -// obsolete - int ReadWorkingData1 (std::istream& in); - int ReadWorkingData2 (std::istream& in, int useTechCor =1); - - void ReadRestOfFile(std::istream& in); - - // create instance - used by ReadData1() - SCLP23(Application_instance) * CreateInstance(std::istream& in, std::ostream& out); - // create complex instance - used by CreateInstance() - SCLP23(Application_instance) * CreateSubSuperInstance(std::istream& in, int fileid, - ErrorDescriptor &); - - // read the instance - used by ReadData2() - SCLP23(Application_instance) * ReadInstance(std::istream& in, std::ostream& out, - SCLstring &cmtStr, int useTechCor =1); - - // reading scopes are still incomplete - // these functions are stubs - Severity CreateScopeInstances(std::istream& in, SCLP23(Application_instance_ptr) ** scopelist); - Severity ReadScopeInstances(std::istream& in); -// Severity ReadSubSuperInstance(std::istream& in); - - int FindDataSection (std::istream& in); - int FindHeaderSection (std::istream& in); - -// writing working session files - void WriteWorkingData(std::ostream& out, int writeComments = 1); - -//called by WriteExchangeFile - std::ofstream* OpenOutputFile(const char* filename =0); - void CloseOutputFile(std::ostream* out); - - void WriteHeader (std::ostream& out); - void WriteHeaderInstance (SCLP23(Application_instance) *obj, std::ostream& out); - void WriteHeaderInstanceFileName (std::ostream& out); - void WriteHeaderInstanceFileDescription (std::ostream& out); - void WriteHeaderInstanceFileSchema (std::ostream& out); - - void WriteData (std::ostream& out, int writeComments = 1); - void WriteValuePairsData(std::ostream& out, int writeComments = 1, - int mixedCase = 1); - - int IncrementFileId (int fileid); - int FileIdIncr() { return _fileIdIncr; } - void SetFileIdIncrement (); - void MakeBackupFile(); - -// void ReadWhiteSpace(std::istream& in); -}; - -//inline functions - -#endif /* _STEPFILE_H */ diff --git a/source/geometry/solids/STEP/include/STEPundefined.h b/source/geometry/solids/STEP/include/STEPundefined.h deleted file mode 100644 index 0d9d4b7a9f..0000000000 --- a/source/geometry/solids/STEP/include/STEPundefined.h +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef STEPUNDEFINED_H -#define STEPUNDEFINED_H - -/* -* NIST STEP Core Class Library -* clstepcore/STEPundefined.h -* April 1997 -* KC Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPundefined.h,v 1.5 2003/06/06 17:07:28 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -#include -#include -#include - -class SCLundefined { - protected: - SCLstring val; - - public: -// INPUT - virtual Severity StrToVal(const char *s, ErrorDescriptor *err); - virtual Severity StrToVal(std::istream &in, ErrorDescriptor *err); - - virtual Severity STEPread(const char *s, ErrorDescriptor *err); - virtual Severity STEPread(std::istream &in, ErrorDescriptor *err); - -// OUTPUT - virtual const char *asStr(SCLstring &s) const; - virtual const char *STEPwrite(SCLstring &s); - virtual void STEPwrite (std::ostream& out =G4cout); - - int set_null (); - int is_null (); - SCLundefined& operator= (const SCLundefined&); - SCLundefined& operator= (const char *str); - SCLundefined (); - virtual ~SCLundefined (); -} -; - -#endif diff --git a/source/geometry/solids/STEP/include/SdaiBinary.h b/source/geometry/solids/STEP/include/SdaiBinary.h deleted file mode 100644 index 934c0856d6..0000000000 --- a/source/geometry/solids/STEP/include/SdaiBinary.h +++ /dev/null @@ -1,83 +0,0 @@ -#ifndef SDAIBINARY_H -#define SDAIBINARY_H 1 - -/* -* NIST STEP Core Class Library -* clstepcore/sdaiBinary.h -* April 1997 -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiBinary.h,v */ - -/* -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -#include -#include -#include -#include - -class ErrorDescriptor; -#include -#include - -#ifndef BINARY_DELIM -#define BINARY_DELIM '\"' -#endif -*/ - -class SCLP23_NAME(Binary) : public SCLstring -{ - public: - - //constructor(s) & destructor - SCLP23_NAME(Binary) (const char * str = 0, int max =0) - : SCLstring (str,max) { } - -//Josh L, 3/28/95 -// SCLP23_NAME(Binary) (SCLstring& s) : SCLstring (s) { } -// SCLP23_NAME(Binary) (SCLP23_NAME(Binary)& s) : SCLstring (s) { } - SCLP23_NAME(Binary) (const SCLstring& s) : SCLstring (s) { } - - - ~SCLP23_NAME(Binary) () { } - - // operators - SCLP23_NAME(Binary)& operator= (const char* s); - - // format for STEP - const char * asStr () const { return chars (); } - void STEPwrite (std::ostream& out =G4cout) const; - const char * STEPwrite (SCLstring &s) const; - - Severity StrToVal (const char *s, ErrorDescriptor *err); - Severity STEPread (std::istream& in, ErrorDescriptor *err); - Severity STEPread (const char *s, ErrorDescriptor *err); - - Severity BinaryValidLevel (const char *value, ErrorDescriptor *err, - int optional, char *tokenList, - int needDelims = 0, int clearError = 1); - Severity BinaryValidLevel (std::istream &in, ErrorDescriptor *err, - int optional, char *tokenList, - int needDelims = 0, int clearError = 1); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - - protected: - Severity ReadBinary(std::istream& in, ErrorDescriptor *err, int AssignVal = 1, - int needDelims = 1); -}; - -#endif diff --git a/source/geometry/solids/STEP/include/SdaiCONFIG_CONTROL_DESIGN.h b/source/geometry/solids/STEP/include/SdaiCONFIG_CONTROL_DESIGN.h deleted file mode 100644 index 56ac133d06..0000000000 --- a/source/geometry/solids/STEP/include/SdaiCONFIG_CONTROL_DESIGN.h +++ /dev/null @@ -1,21604 +0,0 @@ -#ifndef SDAICONFIG_CONTROL_DESIGN_H -#define SDAICONFIG_CONTROL_DESIGN_H -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. -/* $Id: SdaiCONFIG_CONTROL_DESIGN.h,v 1.7 2003/06/06 17:07:29 gcosmo Exp $ */ - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -#ifndef SCHEMA_H -#include -#endif - -#ifdef PART26 -#include -// Create a corbaSchema.h file in this directory with a #include in -// it for your IDL generated schema-specific .hh file. -#include -#endif - -/* ************** TYPES */ - -#if __OSTORE__ -STEPaggregate * create_SdaiSet_of_reversible_topology_item (os_database *db); - -#else -STEPaggregate * create_SdaiSet_of_reversible_topology_item (); - -#endif - -////////// ENUMERATION TYPE knot_type -enum Knot_type { - Knot_type__uniform_knots, - Knot_type__quasi_uniform_knots, - Knot_type__piecewise_bezier_knots, - Knot_type__unspecified, - Knot_type_unset -}; - -class SdaiKnot_type_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiKnot_type_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiKnot_type_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_knot_type); - SdaiKnot_type_var (Knot_type e, EnumTypeDescriptor *et =config_control_designt_knot_type) - : type(et) { set_value (e); } - ~SdaiKnot_type_var () { } - SdaiKnot_type_var& operator= (const SdaiKnot_type_var& e) - { set_value (e); return *this; } - operator Knot_type () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 4; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiKnot_type_var * SdaiKnot_type_var_ptr; - -#ifdef __OSTORE__ -void SdaiKnot_type_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiKnot_type_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiKnot_type_var (); -#endif - -class SdaiKnot_type_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiKnot_type_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiKnot_type_vars( EnumTypeDescriptor * =config_control_designt_knot_type); - virtual ~SdaiKnot_type_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiKnot_type_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiKnot_type_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiKnot_type_vars * SdaiKnot_type_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiKnot_type_vars (os_database *db); -#else - STEPaggregate * create_SdaiKnot_type_vars (); -#endif - -////////// END ENUMERATION knot_type - - -////////// ENUMERATION TYPE transition_code -enum Transition_code { - Transition_code__discontinuous, - Transition_code__cont_same_gradient_same_curvature, - Transition_code__cont_same_gradient, - Transition_code__continuous, - Transition_code_unset -}; - -class SdaiTransition_code_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiTransition_code_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiTransition_code_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_transition_code); - SdaiTransition_code_var (Transition_code e, EnumTypeDescriptor *et =config_control_designt_transition_code) - : type(et) { set_value (e); } - ~SdaiTransition_code_var () { } - SdaiTransition_code_var& operator= (const SdaiTransition_code_var& e) - { set_value (e); return *this; } - operator Transition_code () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 4; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiTransition_code_var * SdaiTransition_code_var_ptr; - -#ifdef __OSTORE__ -void SdaiTransition_code_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiTransition_code_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiTransition_code_var (); -#endif - -class SdaiTransition_code_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiTransition_code_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiTransition_code_vars( EnumTypeDescriptor * =config_control_designt_transition_code); - virtual ~SdaiTransition_code_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiTransition_code_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiTransition_code_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiTransition_code_vars * SdaiTransition_code_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiTransition_code_vars (os_database *db); -#else - STEPaggregate * create_SdaiTransition_code_vars (); -#endif - -////////// END ENUMERATION transition_code - - -////////// ENUMERATION TYPE preferred_surface_curve_representation -enum Preferred_surface_curve_representation { - Preferred_surface_curve_representation__pcurve_s2, - Preferred_surface_curve_representation__pcurve_s1, - Preferred_surface_curve_representation__curve_3d, - Preferred_surface_curve_representation_unset -}; - -class SdaiPreferred_surface_curve_representation_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiPreferred_surface_curve_representation_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiPreferred_surface_curve_representation_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_preferred_surface_curve_representation); - SdaiPreferred_surface_curve_representation_var (Preferred_surface_curve_representation e, EnumTypeDescriptor *et =config_control_designt_preferred_surface_curve_representation) - : type(et) { set_value (e); } - ~SdaiPreferred_surface_curve_representation_var () { } - SdaiPreferred_surface_curve_representation_var& operator= (const SdaiPreferred_surface_curve_representation_var& e) - { set_value (e); return *this; } - operator Preferred_surface_curve_representation () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 3; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiPreferred_surface_curve_representation_var * SdaiPreferred_surface_curve_representation_var_ptr; - -#ifdef __OSTORE__ -void SdaiPreferred_surface_curve_representation_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiPreferred_surface_curve_representation_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiPreferred_surface_curve_representation_var (); -#endif - -class SdaiPreferred_surface_curve_representation_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiPreferred_surface_curve_representation_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiPreferred_surface_curve_representation_vars( EnumTypeDescriptor * =config_control_designt_preferred_surface_curve_representation); - virtual ~SdaiPreferred_surface_curve_representation_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiPreferred_surface_curve_representation_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiPreferred_surface_curve_representation_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiPreferred_surface_curve_representation_vars * SdaiPreferred_surface_curve_representation_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiPreferred_surface_curve_representation_vars (os_database *db); -#else - STEPaggregate * create_SdaiPreferred_surface_curve_representation_vars (); -#endif - -////////// END ENUMERATION preferred_surface_curve_representation - - -////////// ENUMERATION TYPE b_spline_curve_form -enum B_spline_curve_form { - B_spline_curve_form__elliptic_arc, - B_spline_curve_form__polyline_form, - B_spline_curve_form__parabolic_arc, - B_spline_curve_form__circular_arc, - B_spline_curve_form__unspecified, - B_spline_curve_form__hyperbolic_arc, - B_spline_curve_form_unset -}; - -class SdaiB_spline_curve_form_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiB_spline_curve_form_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiB_spline_curve_form_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_b_spline_curve_form); - SdaiB_spline_curve_form_var (B_spline_curve_form e, EnumTypeDescriptor *et =config_control_designt_b_spline_curve_form) - : type(et) { set_value (e); } - ~SdaiB_spline_curve_form_var () { } - SdaiB_spline_curve_form_var& operator= (const SdaiB_spline_curve_form_var& e) - { set_value (e); return *this; } - operator B_spline_curve_form () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 6; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiB_spline_curve_form_var * SdaiB_spline_curve_form_var_ptr; - -#ifdef __OSTORE__ -void SdaiB_spline_curve_form_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiB_spline_curve_form_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiB_spline_curve_form_var (); -#endif - -class SdaiB_spline_curve_form_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiB_spline_curve_form_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiB_spline_curve_form_vars( EnumTypeDescriptor * =config_control_designt_b_spline_curve_form); - virtual ~SdaiB_spline_curve_form_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiB_spline_curve_form_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiB_spline_curve_form_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiB_spline_curve_form_vars * SdaiB_spline_curve_form_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiB_spline_curve_form_vars (os_database *db); -#else - STEPaggregate * create_SdaiB_spline_curve_form_vars (); -#endif - -////////// END ENUMERATION b_spline_curve_form - - -////////// ENUMERATION TYPE si_unit_name -enum Si_unit_name { - Si_unit_name__hertz, - Si_unit_name__degree_celsius, - Si_unit_name__siemens, - Si_unit_name__sievert, - Si_unit_name__lux, - Si_unit_name__watt, - Si_unit_name__ohm, - Si_unit_name__second, - Si_unit_name__becquerel, - Si_unit_name__pascal, - Si_unit_name__henry, - Si_unit_name__tesla, - Si_unit_name__volt, - Si_unit_name__joule, - Si_unit_name__kelvin, - Si_unit_name__ampere, - Si_unit_name__gram, - Si_unit_name__steradian, - Si_unit_name__mole, - Si_unit_name__lumen, - Si_unit_name__gray, - Si_unit_name__candela, - Si_unit_name__farad, - Si_unit_name__radian, - Si_unit_name__newton, - Si_unit_name__metre, - Si_unit_name__weber, - Si_unit_name__coulomb, - Si_unit_name_unset -}; - -class SdaiSi_unit_name_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiSi_unit_name_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiSi_unit_name_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_si_unit_name); - SdaiSi_unit_name_var (Si_unit_name e, EnumTypeDescriptor *et =config_control_designt_si_unit_name) - : type(et) { set_value (e); } - ~SdaiSi_unit_name_var () { } - SdaiSi_unit_name_var& operator= (const SdaiSi_unit_name_var& e) - { set_value (e); return *this; } - operator Si_unit_name () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 28; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiSi_unit_name_var * SdaiSi_unit_name_var_ptr; - -#ifdef __OSTORE__ -void SdaiSi_unit_name_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiSi_unit_name_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiSi_unit_name_var (); -#endif - -class SdaiSi_unit_name_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiSi_unit_name_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiSi_unit_name_vars( EnumTypeDescriptor * =config_control_designt_si_unit_name); - virtual ~SdaiSi_unit_name_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiSi_unit_name_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiSi_unit_name_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiSi_unit_name_vars * SdaiSi_unit_name_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiSi_unit_name_vars (os_database *db); -#else - STEPaggregate * create_SdaiSi_unit_name_vars (); -#endif - -////////// END ENUMERATION si_unit_name - - -////////// ENUMERATION TYPE trimming_preference -enum Trimming_preference { - Trimming_preference__parameter, - Trimming_preference__unspecified, - Trimming_preference__cartesian, - Trimming_preference_unset -}; - -class SdaiTrimming_preference_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiTrimming_preference_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiTrimming_preference_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_trimming_preference); - SdaiTrimming_preference_var (Trimming_preference e, EnumTypeDescriptor *et =config_control_designt_trimming_preference) - : type(et) { set_value (e); } - ~SdaiTrimming_preference_var () { } - SdaiTrimming_preference_var& operator= (const SdaiTrimming_preference_var& e) - { set_value (e); return *this; } - operator Trimming_preference () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 3; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiTrimming_preference_var * SdaiTrimming_preference_var_ptr; - -#ifdef __OSTORE__ -void SdaiTrimming_preference_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiTrimming_preference_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiTrimming_preference_var (); -#endif - -class SdaiTrimming_preference_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiTrimming_preference_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiTrimming_preference_vars( EnumTypeDescriptor * =config_control_designt_trimming_preference); - virtual ~SdaiTrimming_preference_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiTrimming_preference_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiTrimming_preference_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiTrimming_preference_vars * SdaiTrimming_preference_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiTrimming_preference_vars (os_database *db); -#else - STEPaggregate * create_SdaiTrimming_preference_vars (); -#endif - -////////// END ENUMERATION trimming_preference - - -////////// ENUMERATION TYPE b_spline_surface_form -enum B_spline_surface_form { - B_spline_surface_form__surf_of_linear_extrusion, - B_spline_surface_form__plane_surf, - B_spline_surface_form__generalised_cone, - B_spline_surface_form__toroidal_surf, - B_spline_surface_form__conical_surf, - B_spline_surface_form__spherical_surf, - B_spline_surface_form__unspecified, - B_spline_surface_form__ruled_surf, - B_spline_surface_form__surf_of_revolution, - B_spline_surface_form__cylindrical_surf, - B_spline_surface_form__quadric_surf, - B_spline_surface_form_unset -}; - -class SdaiB_spline_surface_form_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiB_spline_surface_form_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiB_spline_surface_form_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_b_spline_surface_form); - SdaiB_spline_surface_form_var (B_spline_surface_form e, EnumTypeDescriptor *et =config_control_designt_b_spline_surface_form) - : type(et) { set_value (e); } - ~SdaiB_spline_surface_form_var () { } - SdaiB_spline_surface_form_var& operator= (const SdaiB_spline_surface_form_var& e) - { set_value (e); return *this; } - operator B_spline_surface_form () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 11; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiB_spline_surface_form_var * SdaiB_spline_surface_form_var_ptr; - -#ifdef __OSTORE__ -void SdaiB_spline_surface_form_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiB_spline_surface_form_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiB_spline_surface_form_var (); -#endif - -class SdaiB_spline_surface_form_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiB_spline_surface_form_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiB_spline_surface_form_vars( EnumTypeDescriptor * =config_control_designt_b_spline_surface_form); - virtual ~SdaiB_spline_surface_form_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiB_spline_surface_form_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiB_spline_surface_form_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiB_spline_surface_form_vars * SdaiB_spline_surface_form_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiB_spline_surface_form_vars (os_database *db); -#else - STEPaggregate * create_SdaiB_spline_surface_form_vars (); -#endif - -////////// END ENUMERATION b_spline_surface_form - - -////////// ENUMERATION TYPE ahead_or_behind -enum Ahead_or_behind { - Ahead_or_behind__ahead, - Ahead_or_behind__behind, - Ahead_or_behind_unset -}; - -class SdaiAhead_or_behind_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiAhead_or_behind_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiAhead_or_behind_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_ahead_or_behind); - SdaiAhead_or_behind_var (Ahead_or_behind e, EnumTypeDescriptor *et =config_control_designt_ahead_or_behind) - : type(et) { set_value (e); } - ~SdaiAhead_or_behind_var () { } - SdaiAhead_or_behind_var& operator= (const SdaiAhead_or_behind_var& e) - { set_value (e); return *this; } - operator Ahead_or_behind () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 2; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiAhead_or_behind_var * SdaiAhead_or_behind_var_ptr; - -#ifdef __OSTORE__ -void SdaiAhead_or_behind_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiAhead_or_behind_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiAhead_or_behind_var (); -#endif - -class SdaiAhead_or_behind_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiAhead_or_behind_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiAhead_or_behind_vars( EnumTypeDescriptor * =config_control_designt_ahead_or_behind); - virtual ~SdaiAhead_or_behind_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiAhead_or_behind_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiAhead_or_behind_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiAhead_or_behind_vars * SdaiAhead_or_behind_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiAhead_or_behind_vars (os_database *db); -#else - STEPaggregate * create_SdaiAhead_or_behind_vars (); -#endif - -////////// END ENUMERATION ahead_or_behind - - -////////// ENUMERATION TYPE source -enum Source { - Source__bought, - Source__not_known, - Source__made, - Source_unset -}; - -class SdaiSource_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiSource_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiSource_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_source); - SdaiSource_var (Source e, EnumTypeDescriptor *et =config_control_designt_source) - : type(et) { set_value (e); } - ~SdaiSource_var () { } - SdaiSource_var& operator= (const SdaiSource_var& e) - { set_value (e); return *this; } - operator Source () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 3; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiSource_var * SdaiSource_var_ptr; - -#ifdef __OSTORE__ -void SdaiSource_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiSource_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiSource_var (); -#endif - -class SdaiSource_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiSource_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiSource_vars( EnumTypeDescriptor * =config_control_designt_source); - virtual ~SdaiSource_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiSource_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiSource_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiSource_vars * SdaiSource_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiSource_vars (os_database *db); -#else - STEPaggregate * create_SdaiSource_vars (); -#endif - -////////// END ENUMERATION source - - -////////// ENUMERATION TYPE si_prefix -enum Si_prefix { - Si_prefix__exa, - Si_prefix__pico, - Si_prefix__mega, - Si_prefix__femto, - Si_prefix__atto, - Si_prefix__centi, - Si_prefix__nano, - Si_prefix__hecto, - Si_prefix__micro, - Si_prefix__tera, - Si_prefix__giga, - Si_prefix__milli, - Si_prefix__peta, - Si_prefix__deci, - Si_prefix__kilo, - Si_prefix__deca, - Si_prefix_unset -}; - -class SdaiSi_prefix_var : public SCLP23(Enum) { - -#ifdef __OSTORE__ - friend void SdaiSi_prefix_var_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *type; - - public: - SdaiSi_prefix_var (const char * n =0, EnumTypeDescriptor *et =config_control_designt_si_prefix); - SdaiSi_prefix_var (Si_prefix e, EnumTypeDescriptor *et =config_control_designt_si_prefix) - : type(et) { set_value (e); } - ~SdaiSi_prefix_var () { } - SdaiSi_prefix_var& operator= (const SdaiSi_prefix_var& e) - { set_value (e); return *this; } - operator Si_prefix () const; - - inline virtual const char * Name () const - { return type->Name(); } - inline virtual int no_elements () const { return 16; } - virtual const char * element_at (int n) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SdaiSi_prefix_var * SdaiSi_prefix_var_ptr; - -#ifdef __OSTORE__ -void SdaiSi_prefix_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#if __OSTORE__ - SCLP23(Enum) * create_SdaiSi_prefix_var (os_database *db); -#else - SCLP23(Enum) * create_SdaiSi_prefix_var (); -#endif - -class SdaiSi_prefix_vars : public EnumAggregate { - -#ifdef __OSTORE__ - friend void SdaiSi_prefix_vars_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EnumTypeDescriptor *enum_type; - - public: - SdaiSi_prefix_vars( EnumTypeDescriptor * =config_control_designt_si_prefix); - virtual ~SdaiSi_prefix_vars(); - virtual SingleLinkNode * NewNode() - { return new EnumNode (new SdaiSi_prefix_var( "", enum_type )); } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#ifdef __OSTORE__ -void SdaiSi_prefix_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -typedef SdaiSi_prefix_vars * SdaiSi_prefix_vars_ptr; - -#if __OSTORE__ - STEPaggregate * create_SdaiSi_prefix_vars (os_database *db); -#else - STEPaggregate * create_SdaiSi_prefix_vars (); -#endif - -////////// END ENUMERATION si_prefix - - -#if __OSTORE__ -STEPaggregate * create_SdaiList_of_reversible_topology_item (os_database *db); - -#else -STEPaggregate * create_SdaiList_of_reversible_topology_item (); - -#endif - -// ***** Build the SELECT Types - -////////// SELECT TYPE SdaiCharacterized_product_definition -class SdaiCharacterized_product_definition : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION -- sdaiINSTANCE - // PRODUCT_DEFINITION_RELATIONSHIP -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiCharacterized_product_definition_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiCharacterized_product_definition( const SelectTypeDescriptor * =config_control_designt_characterized_product_definition ); - // part 1 - SdaiCharacterized_product_definition( const SdaiProduct_definition_ptr&, - const SelectTypeDescriptor * =config_control_designt_characterized_product_definition ); - SdaiCharacterized_product_definition( const SdaiProduct_definition_relationship_ptr&, - const SelectTypeDescriptor * =config_control_designt_characterized_product_definition ); - virtual ~SdaiCharacterized_product_definition(); - - // part 2 - operator SdaiProduct_definition_ptr(); - operator SdaiProduct_definition_relationship_ptr(); - - // part 3 - const SdaiProduct_definition_ptr related_product_definition_() const; - void related_product_definition_ (const SdaiProduct_definition_ptr x); - - const SdaiProduct_definition_ptr relating_product_definition_() const; - void relating_product_definition_ (const SdaiProduct_definition_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiProduct_definition_context_ptr frame_of_reference_() const; - void frame_of_reference_ (const SdaiProduct_definition_context_ptr x); - - const SdaiProduct_definition_formation_ptr formation_() const; - void formation_ (const SdaiProduct_definition_formation_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiCharacterized_product_definition& operator =( const SdaiProduct_definition_ptr& ); - SdaiCharacterized_product_definition& operator =( const SdaiProduct_definition_relationship_ptr& ); - // not in SDAI - SdaiCharacterized_product_definition& ShallowCopy ( const SdaiCharacterized_product_definition& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiCharacterized_product_definition& operator =( SdaiCharacterized_product_definition * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition() const; - SCLLOG(Logical) IsProduct_definition_relationship() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiCharacterized_product_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiCharacterized_product_definition (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiCharacterized_product_definition () { return new SdaiCharacterized_product_definition; } -#endif - -typedef SdaiCharacterized_product_definition * SdaiCharacterized_product_definitionH; -typedef SdaiCharacterized_product_definition_ptr SdaiCharacterized_product_definition_var; - - -class SdaiCharacterized_product_definitions : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiCharacterized_product_definitions( SelectTypeDescriptor * =config_control_designt_characterized_product_definition ); - ~SdaiCharacterized_product_definitions(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiCharacterized_product_definition( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiCharacterized_product_definitions (os_database *db); -#else -inline STEPaggregate * create_SdaiCharacterized_product_definitions () { return new SdaiCharacterized_product_definitions; } -#endif - -typedef SdaiCharacterized_product_definitions_ptr SdaiCharacterized_product_definitions_var; - -///// END SELECT TYPE characterized_product_definition - - -////////// SELECT TYPE SdaiShape_definition -class SdaiShape_definition : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION_SHAPE -- sdaiINSTANCE - // SHAPE_ASPECT -- sdaiINSTANCE - // SHAPE_ASPECT_RELATIONSHIP -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiShape_definition_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiShape_definition( const SelectTypeDescriptor * =config_control_designt_shape_definition ); - // part 1 - SdaiShape_definition( const SdaiProduct_definition_shape_ptr&, - const SelectTypeDescriptor * =config_control_designt_shape_definition ); - SdaiShape_definition( const SdaiShape_aspect_ptr&, - const SelectTypeDescriptor * =config_control_designt_shape_definition ); - SdaiShape_definition( const SdaiShape_aspect_relationship_ptr&, - const SelectTypeDescriptor * =config_control_designt_shape_definition ); - virtual ~SdaiShape_definition(); - - // part 2 - operator SdaiProduct_definition_shape_ptr(); - operator SdaiShape_aspect_ptr(); - operator SdaiShape_aspect_relationship_ptr(); - - // part 3 - const SdaiShape_aspect_ptr related_shape_aspect_() const; - void related_shape_aspect_ (const SdaiShape_aspect_ptr x); - - const SdaiShape_aspect_ptr relating_shape_aspect_() const; - void relating_shape_aspect_ (const SdaiShape_aspect_ptr x); - - const SCLLOG(Logical) product_definitional_() const; - void product_definitional_ (const SCLLOG(Logical) x); - - const SdaiProduct_definition_shape_ptr of_shape_() const; - void of_shape_ (const SdaiProduct_definition_shape_ptr x); - - const SdaiCharacterized_definition_ptr definition_() const; - void definition_ (const SdaiCharacterized_definition_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiShape_definition& operator =( const SdaiProduct_definition_shape_ptr& ); - SdaiShape_definition& operator =( const SdaiShape_aspect_ptr& ); - SdaiShape_definition& operator =( const SdaiShape_aspect_relationship_ptr& ); - // not in SDAI - SdaiShape_definition& ShallowCopy ( const SdaiShape_definition& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiShape_definition& operator =( SdaiShape_definition * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition_shape() const; - SCLLOG(Logical) IsShape_aspect() const; - SCLLOG(Logical) IsShape_aspect_relationship() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiShape_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiShape_definition (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiShape_definition () { return new SdaiShape_definition; } -#endif - -typedef SdaiShape_definition * SdaiShape_definitionH; -typedef SdaiShape_definition_ptr SdaiShape_definition_var; - - -class SdaiShape_definitions : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiShape_definitions( SelectTypeDescriptor * =config_control_designt_shape_definition ); - ~SdaiShape_definitions(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiShape_definition( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiShape_definitions (os_database *db); -#else -inline STEPaggregate * create_SdaiShape_definitions () { return new SdaiShape_definitions; } -#endif - -typedef SdaiShape_definitions_ptr SdaiShape_definitions_var; - -///// END SELECT TYPE shape_definition - - -////////// SELECT TYPE SdaiCharacterized_definition -class SdaiCharacterized_definition : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // CHARACTERIZED_PRODUCT_DEFINITION -- sdaiSELECT - // SHAPE_DEFINITION -- sdaiSELECT - SdaiCharacterized_product_definition _sdaicharacterized_product_definition; - SdaiShape_definition _sdaishape_definition; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiCharacterized_definition_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiCharacterized_definition( const SelectTypeDescriptor * =config_control_designt_characterized_definition ); - // part 1 - SdaiCharacterized_definition( const SdaiCharacterized_product_definition_ptr&, - const SelectTypeDescriptor * =config_control_designt_characterized_definition ); - SdaiCharacterized_definition( const SdaiShape_definition_ptr&, - const SelectTypeDescriptor * =config_control_designt_characterized_definition ); - virtual ~SdaiCharacterized_definition(); - - // part 2 - operator SdaiCharacterized_product_definition_ptr(); - operator SdaiShape_definition_ptr(); - - // part 3 - - // part 4 - SdaiCharacterized_definition& operator =( const SdaiCharacterized_product_definition_ptr& ); - SdaiCharacterized_definition& operator =( const SdaiShape_definition_ptr& ); - // not in SDAI - SdaiCharacterized_definition& ShallowCopy ( const SdaiCharacterized_definition& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiCharacterized_definition& operator =( SdaiCharacterized_definition * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsCharacterized_product_definition() const; - SCLLOG(Logical) IsShape_definition() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiCharacterized_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiCharacterized_definition (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiCharacterized_definition () { return new SdaiCharacterized_definition; } -#endif - -typedef SdaiCharacterized_definition * SdaiCharacterized_definitionH; -typedef SdaiCharacterized_definition_ptr SdaiCharacterized_definition_var; - - -class SdaiCharacterized_definitions : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiCharacterized_definitions( SelectTypeDescriptor * =config_control_designt_characterized_definition ); - ~SdaiCharacterized_definitions(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiCharacterized_definition( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiCharacterized_definitions (os_database *db); -#else -inline STEPaggregate * create_SdaiCharacterized_definitions () { return new SdaiCharacterized_definitions; } -#endif - -typedef SdaiCharacterized_definitions_ptr SdaiCharacterized_definitions_var; - -///// END SELECT TYPE characterized_definition - - -////////// SELECT TYPE SdaiChange_request_item -class SdaiChange_request_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION_FORMATION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiChange_request_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiChange_request_item( const SelectTypeDescriptor * =config_control_designt_change_request_item ); - // part 1 - SdaiChange_request_item( const SdaiProduct_definition_formation_ptr&, - const SelectTypeDescriptor * =config_control_designt_change_request_item ); - virtual ~SdaiChange_request_item(); - - // part 2 - operator SdaiProduct_definition_formation_ptr(); - - // part 3 - const SdaiProduct_ptr of_product_() const; - void of_product_ (const SdaiProduct_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiChange_request_item& operator =( const SdaiProduct_definition_formation_ptr& ); - // not in SDAI - SdaiChange_request_item& ShallowCopy ( const SdaiChange_request_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiChange_request_item& operator =( SdaiChange_request_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition_formation() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiChange_request_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiChange_request_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiChange_request_item () { return new SdaiChange_request_item; } -#endif - -typedef SdaiChange_request_item * SdaiChange_request_itemH; -typedef SdaiChange_request_item_ptr SdaiChange_request_item_var; - - -class SdaiChange_request_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiChange_request_items( SelectTypeDescriptor * =config_control_designt_change_request_item ); - ~SdaiChange_request_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiChange_request_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiChange_request_items (os_database *db); -#else -inline STEPaggregate * create_SdaiChange_request_items () { return new SdaiChange_request_items; } -#endif - -typedef SdaiChange_request_items_ptr SdaiChange_request_items_var; - -///// END SELECT TYPE change_request_item - - -////////// SELECT TYPE SdaiReversible_topology_item -class SdaiReversible_topology_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // EDGE -- sdaiINSTANCE - // PATH -- sdaiINSTANCE - // FACE -- sdaiINSTANCE - // FACE_BOUND -- sdaiINSTANCE - // CLOSED_SHELL -- sdaiINSTANCE - // OPEN_SHELL -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiReversible_topology_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiReversible_topology_item( const SelectTypeDescriptor * =config_control_designt_reversible_topology_item ); - // part 1 - SdaiReversible_topology_item( const SdaiEdge_ptr&, - const SelectTypeDescriptor * =config_control_designt_reversible_topology_item ); - SdaiReversible_topology_item( const SdaiPath_ptr&, - const SelectTypeDescriptor * =config_control_designt_reversible_topology_item ); - SdaiReversible_topology_item( const SdaiFace_ptr&, - const SelectTypeDescriptor * =config_control_designt_reversible_topology_item ); - SdaiReversible_topology_item( const SdaiFace_bound_ptr&, - const SelectTypeDescriptor * =config_control_designt_reversible_topology_item ); - SdaiReversible_topology_item( const SdaiClosed_shell_ptr&, - const SelectTypeDescriptor * =config_control_designt_reversible_topology_item ); - SdaiReversible_topology_item( const SdaiOpen_shell_ptr&, - const SelectTypeDescriptor * =config_control_designt_reversible_topology_item ); - virtual ~SdaiReversible_topology_item(); - - // part 2 - operator SdaiEdge_ptr(); - operator SdaiPath_ptr(); - operator SdaiFace_ptr(); - operator SdaiFace_bound_ptr(); - operator SdaiClosed_shell_ptr(); - operator SdaiOpen_shell_ptr(); - - // part 3 - const EntityAggregate_ptr cfs_faces_() const; - void cfs_faces_ (const EntityAggregate_ptr x); - - const SCLBOOL(Bool) orientation_() const; - void orientation_ (const SCLBOOL(Bool) x); - - const SdaiLoop_ptr bound_() const; - void bound_ (const SdaiLoop_ptr x); - - const EntityAggregate_ptr bounds_() const; - void bounds_ (const EntityAggregate_ptr x); - - const EntityAggregate_ptr edge_list_() const; - void edge_list_ (const EntityAggregate_ptr x); - - const SdaiVertex_ptr edge_end_() const; - void edge_end_ (const SdaiVertex_ptr x); - - const SdaiVertex_ptr edge_start_() const; - void edge_start_ (const SdaiVertex_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiReversible_topology_item& operator =( const SdaiEdge_ptr& ); - SdaiReversible_topology_item& operator =( const SdaiPath_ptr& ); - SdaiReversible_topology_item& operator =( const SdaiFace_ptr& ); - SdaiReversible_topology_item& operator =( const SdaiFace_bound_ptr& ); - SdaiReversible_topology_item& operator =( const SdaiClosed_shell_ptr& ); - SdaiReversible_topology_item& operator =( const SdaiOpen_shell_ptr& ); - // not in SDAI - SdaiReversible_topology_item& ShallowCopy ( const SdaiReversible_topology_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiReversible_topology_item& operator =( SdaiReversible_topology_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsEdge() const; - SCLLOG(Logical) IsPath() const; - SCLLOG(Logical) IsFace() const; - SCLLOG(Logical) IsFace_bound() const; - SCLLOG(Logical) IsClosed_shell() const; - SCLLOG(Logical) IsOpen_shell() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiReversible_topology_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiReversible_topology_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiReversible_topology_item () { return new SdaiReversible_topology_item; } -#endif - -typedef SdaiReversible_topology_item * SdaiReversible_topology_itemH; -typedef SdaiReversible_topology_item_ptr SdaiReversible_topology_item_var; - - -class SdaiReversible_topology_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiReversible_topology_items( SelectTypeDescriptor * =config_control_designt_reversible_topology_item ); - ~SdaiReversible_topology_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiReversible_topology_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiReversible_topology_items (os_database *db); -#else -inline STEPaggregate * create_SdaiReversible_topology_items () { return new SdaiReversible_topology_items; } -#endif - -typedef SdaiReversible_topology_items_ptr SdaiReversible_topology_items_var; - -///// END SELECT TYPE reversible_topology_item - - -////////// SELECT TYPE SdaiAxis2_placement -class SdaiAxis2_placement : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // AXIS2_PLACEMENT_2D -- sdaiINSTANCE - // AXIS2_PLACEMENT_3D -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiAxis2_placement_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiAxis2_placement( const SelectTypeDescriptor * =config_control_designt_axis2_placement ); - // part 1 - SdaiAxis2_placement( const SdaiAxis2_placement_2d_ptr&, - const SelectTypeDescriptor * =config_control_designt_axis2_placement ); - SdaiAxis2_placement( const SdaiAxis2_placement_3d_ptr&, - const SelectTypeDescriptor * =config_control_designt_axis2_placement ); - virtual ~SdaiAxis2_placement(); - - // part 2 - operator SdaiAxis2_placement_2d_ptr(); - operator SdaiAxis2_placement_3d_ptr(); - - // part 3 - const SdaiDirection_ptr axis_() const; - void axis_ (const SdaiDirection_ptr x); - - const SdaiDirection_ptr ref_direction_() const; - void ref_direction_ (const SdaiDirection_ptr x); - - const SdaiCartesian_point_ptr location_() const; - void location_ (const SdaiCartesian_point_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiAxis2_placement& operator =( const SdaiAxis2_placement_2d_ptr& ); - SdaiAxis2_placement& operator =( const SdaiAxis2_placement_3d_ptr& ); - // not in SDAI - SdaiAxis2_placement& ShallowCopy ( const SdaiAxis2_placement& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiAxis2_placement& operator =( SdaiAxis2_placement * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsAxis2_placement_2d() const; - SCLLOG(Logical) IsAxis2_placement_3d() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiAxis2_placement_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiAxis2_placement (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiAxis2_placement () { return new SdaiAxis2_placement; } -#endif - -typedef SdaiAxis2_placement * SdaiAxis2_placementH; -typedef SdaiAxis2_placement_ptr SdaiAxis2_placement_var; - - -class SdaiAxis2_placements : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiAxis2_placements( SelectTypeDescriptor * =config_control_designt_axis2_placement ); - ~SdaiAxis2_placements(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiAxis2_placement( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiAxis2_placements (os_database *db); -#else -inline STEPaggregate * create_SdaiAxis2_placements () { return new SdaiAxis2_placements; } -#endif - -typedef SdaiAxis2_placements_ptr SdaiAxis2_placements_var; - -///// END SELECT TYPE axis2_placement - - -////////// SELECT TYPE SdaiSpecified_item -class SdaiSpecified_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION -- sdaiINSTANCE - // SHAPE_ASPECT -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiSpecified_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiSpecified_item( const SelectTypeDescriptor * =config_control_designt_specified_item ); - // part 1 - SdaiSpecified_item( const SdaiProduct_definition_ptr&, - const SelectTypeDescriptor * =config_control_designt_specified_item ); - SdaiSpecified_item( const SdaiShape_aspect_ptr&, - const SelectTypeDescriptor * =config_control_designt_specified_item ); - virtual ~SdaiSpecified_item(); - - // part 2 - operator SdaiProduct_definition_ptr(); - operator SdaiShape_aspect_ptr(); - - // part 3 - const SCLLOG(Logical) product_definitional_() const; - void product_definitional_ (const SCLLOG(Logical) x); - - const SdaiProduct_definition_shape_ptr of_shape_() const; - void of_shape_ (const SdaiProduct_definition_shape_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiProduct_definition_context_ptr frame_of_reference_() const; - void frame_of_reference_ (const SdaiProduct_definition_context_ptr x); - - const SdaiProduct_definition_formation_ptr formation_() const; - void formation_ (const SdaiProduct_definition_formation_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiSpecified_item& operator =( const SdaiProduct_definition_ptr& ); - SdaiSpecified_item& operator =( const SdaiShape_aspect_ptr& ); - // not in SDAI - SdaiSpecified_item& ShallowCopy ( const SdaiSpecified_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiSpecified_item& operator =( SdaiSpecified_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition() const; - SCLLOG(Logical) IsShape_aspect() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiSpecified_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiSpecified_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiSpecified_item () { return new SdaiSpecified_item; } -#endif - -typedef SdaiSpecified_item * SdaiSpecified_itemH; -typedef SdaiSpecified_item_ptr SdaiSpecified_item_var; - - -class SdaiSpecified_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiSpecified_items( SelectTypeDescriptor * =config_control_designt_specified_item ); - ~SdaiSpecified_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiSpecified_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiSpecified_items (os_database *db); -#else -inline STEPaggregate * create_SdaiSpecified_items () { return new SdaiSpecified_items; } -#endif - -typedef SdaiSpecified_items_ptr SdaiSpecified_items_var; - -///// END SELECT TYPE specified_item - - -////////// SELECT TYPE SdaiMeasure_value -class SdaiMeasure_value : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // AREA_MEASURE -- sdaiREAL - // CONTEXT_DEPENDENT_MEASURE -- sdaiREAL - // COUNT_MEASURE -- sdaiNUMBER - // DESCRIPTIVE_MEASURE -- sdaiSTRING - // LENGTH_MEASURE -- sdaiREAL - // MASS_MEASURE -- sdaiREAL - // PLANE_ANGLE_MEASURE -- sdaiREAL - // PARAMETER_VALUE -- sdaiREAL - // POSITIVE_LENGTH_MEASURE -- REFERENCE_TYPE - // POSITIVE_PLANE_ANGLE_MEASURE -- REFERENCE_TYPE - // SOLID_ANGLE_MEASURE -- sdaiREAL - // VOLUME_MEASURE -- sdaiREAL - SCLP23(Real) _real; - SCLP23(String) _string; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiMeasure_value_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiMeasure_value( const SelectTypeDescriptor * =config_control_designt_measure_value ); - // part 1 - SdaiMeasure_value( const SdaiDescriptive_measure&, - const SelectTypeDescriptor * =config_control_designt_measure_value ); - SdaiMeasure_value( const SCLP23(Real)&, - const SelectTypeDescriptor * =config_control_designt_measure_value ); - virtual ~SdaiMeasure_value(); - - // part 2 - operator SdaiDescriptive_measure(); - operator SCLP23(Real) (); - - // part 3 - - // part 4 - SdaiMeasure_value& operator =( const SdaiDescriptive_measure& ); - SdaiMeasure_value& operator =( const SCLP23(Real)& ); - // not in SDAI - SdaiMeasure_value& ShallowCopy ( const SdaiMeasure_value& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiMeasure_value& operator =( SdaiMeasure_value * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsArea_measure() const; - SCLLOG(Logical) IsContext_dependent_measure() const; - SCLLOG(Logical) IsCount_measure() const; - SCLLOG(Logical) IsDescriptive_measure() const; - SCLLOG(Logical) IsLength_measure() const; - SCLLOG(Logical) IsMass_measure() const; - SCLLOG(Logical) IsPlane_angle_measure() const; - SCLLOG(Logical) IsParameter_value() const; - SCLLOG(Logical) IsPositive_length_measure() const; - SCLLOG(Logical) IsPositive_plane_angle_measure() const; - SCLLOG(Logical) IsSolid_angle_measure() const; - SCLLOG(Logical) IsVolume_measure() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 - const TypeDescriptor *SetUnderlyingType ( const TypeDescriptor * td ); -}; - -#ifdef __OSTORE__ -void SdaiMeasure_value_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiMeasure_value (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiMeasure_value () { return new SdaiMeasure_value; } -#endif - -typedef SdaiMeasure_value * SdaiMeasure_valueH; -typedef SdaiMeasure_value_ptr SdaiMeasure_value_var; - - -class SdaiMeasure_values : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiMeasure_values( SelectTypeDescriptor * =config_control_designt_measure_value ); - ~SdaiMeasure_values(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiMeasure_value( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiMeasure_values (os_database *db); -#else -inline STEPaggregate * create_SdaiMeasure_values () { return new SdaiMeasure_values; } -#endif - -typedef SdaiMeasure_values_ptr SdaiMeasure_values_var; - -///// END SELECT TYPE measure_value - - -////////// SELECT TYPE SdaiPerson_organization_select -class SdaiPerson_organization_select : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PERSON_AND_ORGANIZATION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiPerson_organization_select_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiPerson_organization_select( const SelectTypeDescriptor * =config_control_designt_person_organization_select ); - // part 1 - SdaiPerson_organization_select( const SdaiPerson_and_organization_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_select ); - virtual ~SdaiPerson_organization_select(); - - // part 2 - operator SdaiPerson_and_organization_ptr(); - - // part 3 - const SdaiOrganization_ptr the_organization_() const; - void the_organization_ (const SdaiOrganization_ptr x); - - const SdaiPerson_ptr the_person_() const; - void the_person_ (const SdaiPerson_ptr x); - - - // part 4 - SdaiPerson_organization_select& operator =( const SdaiPerson_and_organization_ptr& ); - // not in SDAI - SdaiPerson_organization_select& ShallowCopy ( const SdaiPerson_organization_select& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiPerson_organization_select& operator =( SdaiPerson_organization_select * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsPerson_and_organization() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiPerson_organization_select_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiPerson_organization_select (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiPerson_organization_select () { return new SdaiPerson_organization_select; } -#endif - -typedef SdaiPerson_organization_select * SdaiPerson_organization_selectH; -typedef SdaiPerson_organization_select_ptr SdaiPerson_organization_select_var; - - -class SdaiPerson_organization_selects : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiPerson_organization_selects( SelectTypeDescriptor * =config_control_designt_person_organization_select ); - ~SdaiPerson_organization_selects(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiPerson_organization_select( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiPerson_organization_selects (os_database *db); -#else -inline STEPaggregate * create_SdaiPerson_organization_selects () { return new SdaiPerson_organization_selects; } -#endif - -typedef SdaiPerson_organization_selects_ptr SdaiPerson_organization_selects_var; - -///// END SELECT TYPE person_organization_select - - -////////// SELECT TYPE SdaiPcurve_or_surface -class SdaiPcurve_or_surface : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PCURVE -- sdaiINSTANCE - // SURFACE -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiPcurve_or_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiPcurve_or_surface( const SelectTypeDescriptor * =config_control_designt_pcurve_or_surface ); - // part 1 - SdaiPcurve_or_surface( const SdaiPcurve_ptr&, - const SelectTypeDescriptor * =config_control_designt_pcurve_or_surface ); - SdaiPcurve_or_surface( const SdaiSurface_ptr&, - const SelectTypeDescriptor * =config_control_designt_pcurve_or_surface ); - virtual ~SdaiPcurve_or_surface(); - - // part 2 - operator SdaiPcurve_ptr(); - operator SdaiSurface_ptr(); - - // part 3 - const SdaiDefinitional_representation_ptr reference_to_curve_() const; - void reference_to_curve_ (const SdaiDefinitional_representation_ptr x); - - const SdaiSurface_ptr basis_surface_() const; - void basis_surface_ (const SdaiSurface_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiPcurve_or_surface& operator =( const SdaiPcurve_ptr& ); - SdaiPcurve_or_surface& operator =( const SdaiSurface_ptr& ); - // not in SDAI - SdaiPcurve_or_surface& ShallowCopy ( const SdaiPcurve_or_surface& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiPcurve_or_surface& operator =( SdaiPcurve_or_surface * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsPcurve() const; - SCLLOG(Logical) IsSurface() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiPcurve_or_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiPcurve_or_surface (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiPcurve_or_surface () { return new SdaiPcurve_or_surface; } -#endif - -typedef SdaiPcurve_or_surface * SdaiPcurve_or_surfaceH; -typedef SdaiPcurve_or_surface_ptr SdaiPcurve_or_surface_var; - - -class SdaiPcurve_or_surfaces : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiPcurve_or_surfaces( SelectTypeDescriptor * =config_control_designt_pcurve_or_surface ); - ~SdaiPcurve_or_surfaces(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiPcurve_or_surface( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiPcurve_or_surfaces (os_database *db); -#else -inline STEPaggregate * create_SdaiPcurve_or_surfaces () { return new SdaiPcurve_or_surfaces; } -#endif - -typedef SdaiPcurve_or_surfaces_ptr SdaiPcurve_or_surfaces_var; - -///// END SELECT TYPE pcurve_or_surface - - -////////// SELECT TYPE SdaiClassified_item -class SdaiClassified_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION_FORMATION -- sdaiINSTANCE - // ASSEMBLY_COMPONENT_USAGE -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiClassified_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiClassified_item( const SelectTypeDescriptor * =config_control_designt_classified_item ); - // part 1 - SdaiClassified_item( const SdaiProduct_definition_formation_ptr&, - const SelectTypeDescriptor * =config_control_designt_classified_item ); - SdaiClassified_item( const SdaiAssembly_component_usage_ptr&, - const SelectTypeDescriptor * =config_control_designt_classified_item ); - virtual ~SdaiClassified_item(); - - // part 2 - operator SdaiProduct_definition_formation_ptr(); - operator SdaiAssembly_component_usage_ptr(); - - // part 3 - const SdaiIdentifier reference_designator_() const; - void reference_designator_ (const SdaiIdentifier x); - - const SdaiProduct_definition_ptr related_product_definition_() const; - void related_product_definition_ (const SdaiProduct_definition_ptr x); - - const SdaiProduct_definition_ptr relating_product_definition_() const; - void relating_product_definition_ (const SdaiProduct_definition_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiProduct_ptr of_product_() const; - void of_product_ (const SdaiProduct_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiClassified_item& operator =( const SdaiProduct_definition_formation_ptr& ); - SdaiClassified_item& operator =( const SdaiAssembly_component_usage_ptr& ); - // not in SDAI - SdaiClassified_item& ShallowCopy ( const SdaiClassified_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiClassified_item& operator =( SdaiClassified_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition_formation() const; - SCLLOG(Logical) IsAssembly_component_usage() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiClassified_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiClassified_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiClassified_item () { return new SdaiClassified_item; } -#endif - -typedef SdaiClassified_item * SdaiClassified_itemH; -typedef SdaiClassified_item_ptr SdaiClassified_item_var; - - -class SdaiClassified_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiClassified_items( SelectTypeDescriptor * =config_control_designt_classified_item ); - ~SdaiClassified_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiClassified_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiClassified_items (os_database *db); -#else -inline STEPaggregate * create_SdaiClassified_items () { return new SdaiClassified_items; } -#endif - -typedef SdaiClassified_items_ptr SdaiClassified_items_var; - -///// END SELECT TYPE classified_item - - -////////// SELECT TYPE SdaiVector_or_direction -class SdaiVector_or_direction : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // VECTOR -- sdaiINSTANCE - // DIRECTION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiVector_or_direction_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiVector_or_direction( const SelectTypeDescriptor * =config_control_designt_vector_or_direction ); - // part 1 - SdaiVector_or_direction( const SdaiVector_ptr&, - const SelectTypeDescriptor * =config_control_designt_vector_or_direction ); - SdaiVector_or_direction( const SdaiDirection_ptr&, - const SelectTypeDescriptor * =config_control_designt_vector_or_direction ); - virtual ~SdaiVector_or_direction(); - - // part 2 - operator SdaiVector_ptr(); - operator SdaiDirection_ptr(); - - // part 3 - const RealAggregate_ptr direction_ratios_() const; - void direction_ratios_ (const RealAggregate_ptr x); - - const SdaiLength_measure magnitude_() const; - void magnitude_ (const SdaiLength_measure x); - - const SdaiDirection_ptr orientation_() const; - void orientation_ (const SdaiDirection_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiVector_or_direction& operator =( const SdaiVector_ptr& ); - SdaiVector_or_direction& operator =( const SdaiDirection_ptr& ); - // not in SDAI - SdaiVector_or_direction& ShallowCopy ( const SdaiVector_or_direction& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiVector_or_direction& operator =( SdaiVector_or_direction * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsVector() const; - SCLLOG(Logical) IsDirection() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiVector_or_direction_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiVector_or_direction (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiVector_or_direction () { return new SdaiVector_or_direction; } -#endif - -typedef SdaiVector_or_direction * SdaiVector_or_directionH; -typedef SdaiVector_or_direction_ptr SdaiVector_or_direction_var; - - -class SdaiVector_or_directions : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiVector_or_directions( SelectTypeDescriptor * =config_control_designt_vector_or_direction ); - ~SdaiVector_or_directions(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiVector_or_direction( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiVector_or_directions (os_database *db); -#else -inline STEPaggregate * create_SdaiVector_or_directions () { return new SdaiVector_or_directions; } -#endif - -typedef SdaiVector_or_directions_ptr SdaiVector_or_directions_var; - -///// END SELECT TYPE vector_or_direction - - -////////// SELECT TYPE SdaiWireframe_model -class SdaiWireframe_model : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // SHELL_BASED_WIREFRAME_MODEL -- sdaiINSTANCE - // EDGE_BASED_WIREFRAME_MODEL -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiWireframe_model_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiWireframe_model( const SelectTypeDescriptor * =config_control_designt_wireframe_model ); - // part 1 - SdaiWireframe_model( const SdaiShell_based_wireframe_model_ptr&, - const SelectTypeDescriptor * =config_control_designt_wireframe_model ); - SdaiWireframe_model( const SdaiEdge_based_wireframe_model_ptr&, - const SelectTypeDescriptor * =config_control_designt_wireframe_model ); - virtual ~SdaiWireframe_model(); - - // part 2 - operator SdaiShell_based_wireframe_model_ptr(); - operator SdaiEdge_based_wireframe_model_ptr(); - - // part 3 - const EntityAggregate_ptr ebwm_boundary_() const; - void ebwm_boundary_ (const EntityAggregate_ptr x); - - const SdaiShells_ptr sbwm_boundary_() const; - void sbwm_boundary_ (const SdaiShells_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiWireframe_model& operator =( const SdaiShell_based_wireframe_model_ptr& ); - SdaiWireframe_model& operator =( const SdaiEdge_based_wireframe_model_ptr& ); - // not in SDAI - SdaiWireframe_model& ShallowCopy ( const SdaiWireframe_model& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiWireframe_model& operator =( SdaiWireframe_model * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsShell_based_wireframe_model() const; - SCLLOG(Logical) IsEdge_based_wireframe_model() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiWireframe_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiWireframe_model (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiWireframe_model () { return new SdaiWireframe_model; } -#endif - -typedef SdaiWireframe_model * SdaiWireframe_modelH; -typedef SdaiWireframe_model_ptr SdaiWireframe_model_var; - - -class SdaiWireframe_models : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiWireframe_models( SelectTypeDescriptor * =config_control_designt_wireframe_model ); - ~SdaiWireframe_models(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiWireframe_model( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiWireframe_models (os_database *db); -#else -inline STEPaggregate * create_SdaiWireframe_models () { return new SdaiWireframe_models; } -#endif - -typedef SdaiWireframe_models_ptr SdaiWireframe_models_var; - -///// END SELECT TYPE wireframe_model - - -////////// SELECT TYPE SdaiGeometric_set_select -class SdaiGeometric_set_select : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // POINT -- sdaiINSTANCE - // CURVE -- sdaiINSTANCE - // SURFACE -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiGeometric_set_select_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiGeometric_set_select( const SelectTypeDescriptor * =config_control_designt_geometric_set_select ); - // part 1 - SdaiGeometric_set_select( const SdaiPoint_ptr&, - const SelectTypeDescriptor * =config_control_designt_geometric_set_select ); - SdaiGeometric_set_select( const SdaiCurve_ptr&, - const SelectTypeDescriptor * =config_control_designt_geometric_set_select ); - SdaiGeometric_set_select( const SdaiSurface_ptr&, - const SelectTypeDescriptor * =config_control_designt_geometric_set_select ); - virtual ~SdaiGeometric_set_select(); - - // part 2 - operator SdaiPoint_ptr(); - operator SdaiCurve_ptr(); - operator SdaiSurface_ptr(); - - // part 3 - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiGeometric_set_select& operator =( const SdaiPoint_ptr& ); - SdaiGeometric_set_select& operator =( const SdaiCurve_ptr& ); - SdaiGeometric_set_select& operator =( const SdaiSurface_ptr& ); - // not in SDAI - SdaiGeometric_set_select& ShallowCopy ( const SdaiGeometric_set_select& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiGeometric_set_select& operator =( SdaiGeometric_set_select * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsPoint() const; - SCLLOG(Logical) IsCurve() const; - SCLLOG(Logical) IsSurface() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiGeometric_set_select_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiGeometric_set_select (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiGeometric_set_select () { return new SdaiGeometric_set_select; } -#endif - -typedef SdaiGeometric_set_select * SdaiGeometric_set_selectH; -typedef SdaiGeometric_set_select_ptr SdaiGeometric_set_select_var; - - -class SdaiGeometric_set_selects : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiGeometric_set_selects( SelectTypeDescriptor * =config_control_designt_geometric_set_select ); - ~SdaiGeometric_set_selects(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiGeometric_set_select( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiGeometric_set_selects (os_database *db); -#else -inline STEPaggregate * create_SdaiGeometric_set_selects () { return new SdaiGeometric_set_selects; } -#endif - -typedef SdaiGeometric_set_selects_ptr SdaiGeometric_set_selects_var; - -///// END SELECT TYPE geometric_set_select - - -////////// SELECT TYPE SdaiStart_request_item -class SdaiStart_request_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION_FORMATION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiStart_request_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiStart_request_item( const SelectTypeDescriptor * =config_control_designt_start_request_item ); - // part 1 - SdaiStart_request_item( const SdaiProduct_definition_formation_ptr&, - const SelectTypeDescriptor * =config_control_designt_start_request_item ); - virtual ~SdaiStart_request_item(); - - // part 2 - operator SdaiProduct_definition_formation_ptr(); - - // part 3 - const SdaiProduct_ptr of_product_() const; - void of_product_ (const SdaiProduct_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiStart_request_item& operator =( const SdaiProduct_definition_formation_ptr& ); - // not in SDAI - SdaiStart_request_item& ShallowCopy ( const SdaiStart_request_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiStart_request_item& operator =( SdaiStart_request_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition_formation() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiStart_request_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiStart_request_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiStart_request_item () { return new SdaiStart_request_item; } -#endif - -typedef SdaiStart_request_item * SdaiStart_request_itemH; -typedef SdaiStart_request_item_ptr SdaiStart_request_item_var; - - -class SdaiStart_request_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiStart_request_items( SelectTypeDescriptor * =config_control_designt_start_request_item ); - ~SdaiStart_request_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiStart_request_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiStart_request_items (os_database *db); -#else -inline STEPaggregate * create_SdaiStart_request_items () { return new SdaiStart_request_items; } -#endif - -typedef SdaiStart_request_items_ptr SdaiStart_request_items_var; - -///// END SELECT TYPE start_request_item - - -////////// SELECT TYPE SdaiPerson_organization_item -class SdaiPerson_organization_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // CHANGE -- sdaiINSTANCE - // START_WORK -- sdaiINSTANCE - // CHANGE_REQUEST -- sdaiINSTANCE - // START_REQUEST -- sdaiINSTANCE - // CONFIGURATION_ITEM -- sdaiINSTANCE - // PRODUCT -- sdaiINSTANCE - // PRODUCT_DEFINITION_FORMATION -- sdaiINSTANCE - // PRODUCT_DEFINITION -- sdaiINSTANCE - // CONTRACT -- sdaiINSTANCE - // SECURITY_CLASSIFICATION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiPerson_organization_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiPerson_organization_item( const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - // part 1 - SdaiPerson_organization_item( const SdaiChange_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiStart_work_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiChange_request_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiStart_request_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiConfiguration_item_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiProduct_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiProduct_definition_formation_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiProduct_definition_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiContract_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - SdaiPerson_organization_item( const SdaiSecurity_classification_ptr&, - const SelectTypeDescriptor * =config_control_designt_person_organization_item ); - virtual ~SdaiPerson_organization_item(); - - // part 2 - operator SdaiChange_ptr(); - operator SdaiStart_work_ptr(); - operator SdaiChange_request_ptr(); - operator SdaiStart_request_ptr(); - operator SdaiConfiguration_item_ptr(); - operator SdaiProduct_ptr(); - operator SdaiProduct_definition_formation_ptr(); - operator SdaiProduct_definition_ptr(); - operator SdaiContract_ptr(); - operator SdaiSecurity_classification_ptr(); - - // part 3 - const SdaiSecurity_classification_level_ptr security_level_() const; - void security_level_ (const SdaiSecurity_classification_level_ptr x); - - const SdaiContract_type_ptr kind_() const; - void kind_ (const SdaiContract_type_ptr x); - - const SdaiProduct_definition_formation_ptr formation_() const; - void formation_ (const SdaiProduct_definition_formation_ptr x); - - const SdaiProduct_ptr of_product_() const; - void of_product_ (const SdaiProduct_ptr x); - - const EntityAggregate_ptr frame_of_reference_() const; - void frame_of_reference_ (const EntityAggregate_ptr x); - - const SdaiLabel purpose_() const; - void purpose_ (const SdaiLabel x); - - const SdaiProduct_concept_ptr item_concept_() const; - void item_concept_ (const SdaiProduct_concept_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiVersioned_action_request_ptr assigned_action_request_() const; - void assigned_action_request_ (const SdaiVersioned_action_request_ptr x); - - const SdaiWork_items_ptr items_() const; - void items_ (const SdaiWork_items_ptr x); - - const SdaiAction_ptr assigned_action_() const; - void assigned_action_ (const SdaiAction_ptr x); - - - // part 4 - SdaiPerson_organization_item& operator =( const SdaiChange_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiStart_work_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiChange_request_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiStart_request_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiConfiguration_item_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiProduct_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiProduct_definition_formation_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiProduct_definition_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiContract_ptr& ); - SdaiPerson_organization_item& operator =( const SdaiSecurity_classification_ptr& ); - // not in SDAI - SdaiPerson_organization_item& ShallowCopy ( const SdaiPerson_organization_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiPerson_organization_item& operator =( SdaiPerson_organization_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsChange() const; - SCLLOG(Logical) IsStart_work() const; - SCLLOG(Logical) IsChange_request() const; - SCLLOG(Logical) IsStart_request() const; - SCLLOG(Logical) IsConfiguration_item() const; - SCLLOG(Logical) IsProduct() const; - SCLLOG(Logical) IsProduct_definition_formation() const; - SCLLOG(Logical) IsProduct_definition() const; - SCLLOG(Logical) IsContract() const; - SCLLOG(Logical) IsSecurity_classification() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiPerson_organization_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiPerson_organization_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiPerson_organization_item () { return new SdaiPerson_organization_item; } -#endif - -typedef SdaiPerson_organization_item * SdaiPerson_organization_itemH; -typedef SdaiPerson_organization_item_ptr SdaiPerson_organization_item_var; - - -class SdaiPerson_organization_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiPerson_organization_items( SelectTypeDescriptor * =config_control_designt_person_organization_item ); - ~SdaiPerson_organization_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiPerson_organization_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiPerson_organization_items (os_database *db); -#else -inline STEPaggregate * create_SdaiPerson_organization_items () { return new SdaiPerson_organization_items; } -#endif - -typedef SdaiPerson_organization_items_ptr SdaiPerson_organization_items_var; - -///// END SELECT TYPE person_organization_item - - -////////// SELECT TYPE SdaiDate_time_item -class SdaiDate_time_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION -- sdaiINSTANCE - // CHANGE_REQUEST -- sdaiINSTANCE - // START_REQUEST -- sdaiINSTANCE - // CHANGE -- sdaiINSTANCE - // START_WORK -- sdaiINSTANCE - // APPROVAL_PERSON_ORGANIZATION -- sdaiINSTANCE - // CONTRACT -- sdaiINSTANCE - // SECURITY_CLASSIFICATION -- sdaiINSTANCE - // CERTIFICATION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiDate_time_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiDate_time_item( const SelectTypeDescriptor * =config_control_designt_date_time_item ); - // part 1 - SdaiDate_time_item( const SdaiProduct_definition_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - SdaiDate_time_item( const SdaiChange_request_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - SdaiDate_time_item( const SdaiStart_request_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - SdaiDate_time_item( const SdaiChange_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - SdaiDate_time_item( const SdaiStart_work_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - SdaiDate_time_item( const SdaiApproval_person_organization_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - SdaiDate_time_item( const SdaiContract_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - SdaiDate_time_item( const SdaiSecurity_classification_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - SdaiDate_time_item( const SdaiCertification_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_item ); - virtual ~SdaiDate_time_item(); - - // part 2 - operator SdaiProduct_definition_ptr(); - operator SdaiChange_request_ptr(); - operator SdaiStart_request_ptr(); - operator SdaiChange_ptr(); - operator SdaiStart_work_ptr(); - operator SdaiApproval_person_organization_ptr(); - operator SdaiContract_ptr(); - operator SdaiSecurity_classification_ptr(); - operator SdaiCertification_ptr(); - - // part 3 - const SdaiSecurity_classification_level_ptr security_level_() const; - void security_level_ (const SdaiSecurity_classification_level_ptr x); - - const SdaiContract_type_ptr kind_() const; - void kind_ (const SdaiContract_type_ptr x); - - const SdaiText purpose_() const; - void purpose_ (const SdaiText x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiApproval_role_ptr role_() const; - void role_ (const SdaiApproval_role_ptr x); - - const SdaiApproval_ptr authorized_approval_() const; - void authorized_approval_ (const SdaiApproval_ptr x); - - const SdaiPerson_organization_select_ptr person_organization_() const; - void person_organization_ (const SdaiPerson_organization_select_ptr x); - - const SdaiAction_ptr assigned_action_() const; - void assigned_action_ (const SdaiAction_ptr x); - - const SdaiChange_request_items_ptr items_() const; - void items_ (const SdaiChange_request_items_ptr x); - - const SdaiVersioned_action_request_ptr assigned_action_request_() const; - void assigned_action_request_ (const SdaiVersioned_action_request_ptr x); - - const SdaiProduct_definition_context_ptr frame_of_reference_() const; - void frame_of_reference_ (const SdaiProduct_definition_context_ptr x); - - const SdaiProduct_definition_formation_ptr formation_() const; - void formation_ (const SdaiProduct_definition_formation_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiDate_time_item& operator =( const SdaiProduct_definition_ptr& ); - SdaiDate_time_item& operator =( const SdaiChange_request_ptr& ); - SdaiDate_time_item& operator =( const SdaiStart_request_ptr& ); - SdaiDate_time_item& operator =( const SdaiChange_ptr& ); - SdaiDate_time_item& operator =( const SdaiStart_work_ptr& ); - SdaiDate_time_item& operator =( const SdaiApproval_person_organization_ptr& ); - SdaiDate_time_item& operator =( const SdaiContract_ptr& ); - SdaiDate_time_item& operator =( const SdaiSecurity_classification_ptr& ); - SdaiDate_time_item& operator =( const SdaiCertification_ptr& ); - // not in SDAI - SdaiDate_time_item& ShallowCopy ( const SdaiDate_time_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiDate_time_item& operator =( SdaiDate_time_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition() const; - SCLLOG(Logical) IsChange_request() const; - SCLLOG(Logical) IsStart_request() const; - SCLLOG(Logical) IsChange() const; - SCLLOG(Logical) IsStart_work() const; - SCLLOG(Logical) IsApproval_person_organization() const; - SCLLOG(Logical) IsContract() const; - SCLLOG(Logical) IsSecurity_classification() const; - SCLLOG(Logical) IsCertification() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiDate_time_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiDate_time_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiDate_time_item () { return new SdaiDate_time_item; } -#endif - -typedef SdaiDate_time_item * SdaiDate_time_itemH; -typedef SdaiDate_time_item_ptr SdaiDate_time_item_var; - - -class SdaiDate_time_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiDate_time_items( SelectTypeDescriptor * =config_control_designt_date_time_item ); - ~SdaiDate_time_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiDate_time_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiDate_time_items (os_database *db); -#else -inline STEPaggregate * create_SdaiDate_time_items () { return new SdaiDate_time_items; } -#endif - -typedef SdaiDate_time_items_ptr SdaiDate_time_items_var; - -///// END SELECT TYPE date_time_item - - -////////// SELECT TYPE SdaiShell -class SdaiShell : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // OPEN_SHELL -- sdaiINSTANCE - // CLOSED_SHELL -- sdaiINSTANCE - // VERTEX_SHELL -- sdaiINSTANCE - // WIRE_SHELL -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiShell_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiShell( const SelectTypeDescriptor * =config_control_designt_shell ); - // part 1 - SdaiShell( const SdaiOpen_shell_ptr&, - const SelectTypeDescriptor * =config_control_designt_shell ); - SdaiShell( const SdaiClosed_shell_ptr&, - const SelectTypeDescriptor * =config_control_designt_shell ); - SdaiShell( const SdaiVertex_shell_ptr&, - const SelectTypeDescriptor * =config_control_designt_shell ); - SdaiShell( const SdaiWire_shell_ptr&, - const SelectTypeDescriptor * =config_control_designt_shell ); - virtual ~SdaiShell(); - - // part 2 - operator SdaiOpen_shell_ptr(); - operator SdaiClosed_shell_ptr(); - operator SdaiVertex_shell_ptr(); - operator SdaiWire_shell_ptr(); - - // part 3 - const EntityAggregate_ptr wire_shell_extent_() const; - void wire_shell_extent_ (const EntityAggregate_ptr x); - - const SdaiVertex_loop_ptr vertex_shell_extent_() const; - void vertex_shell_extent_ (const SdaiVertex_loop_ptr x); - - const EntityAggregate_ptr cfs_faces_() const; - void cfs_faces_ (const EntityAggregate_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiShell& operator =( const SdaiOpen_shell_ptr& ); - SdaiShell& operator =( const SdaiClosed_shell_ptr& ); - SdaiShell& operator =( const SdaiVertex_shell_ptr& ); - SdaiShell& operator =( const SdaiWire_shell_ptr& ); - // not in SDAI - SdaiShell& ShallowCopy ( const SdaiShell& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiShell& operator =( SdaiShell * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsOpen_shell() const; - SCLLOG(Logical) IsClosed_shell() const; - SCLLOG(Logical) IsVertex_shell() const; - SCLLOG(Logical) IsWire_shell() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiShell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiShell (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiShell () { return new SdaiShell; } -#endif - -typedef SdaiShell * SdaiShellH; -typedef SdaiShell_ptr SdaiShell_var; - - -class SdaiShells : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiShells( SelectTypeDescriptor * =config_control_designt_shell ); - ~SdaiShells(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiShell( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiShells (os_database *db); -#else -inline STEPaggregate * create_SdaiShells () { return new SdaiShells; } -#endif - -typedef SdaiShells_ptr SdaiShells_var; - -///// END SELECT TYPE shell - - -////////// SELECT TYPE SdaiTransformation -class SdaiTransformation : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // ITEM_DEFINED_TRANSFORMATION -- sdaiINSTANCE - // FUNCTIONALLY_DEFINED_TRANSFORMATION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiTransformation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiTransformation( const SelectTypeDescriptor * =config_control_designt_transformation ); - // part 1 - SdaiTransformation( const SdaiItem_defined_transformation_ptr&, - const SelectTypeDescriptor * =config_control_designt_transformation ); - SdaiTransformation( const SdaiFunctionally_defined_transformation_ptr&, - const SelectTypeDescriptor * =config_control_designt_transformation ); - virtual ~SdaiTransformation(); - - // part 2 - operator SdaiItem_defined_transformation_ptr(); - operator SdaiFunctionally_defined_transformation_ptr(); - - // part 3 - const SdaiRepresentation_item_ptr transform_item_2_() const; - void transform_item_2_ (const SdaiRepresentation_item_ptr x); - - const SdaiRepresentation_item_ptr transform_item_1_() const; - void transform_item_1_ (const SdaiRepresentation_item_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiTransformation& operator =( const SdaiItem_defined_transformation_ptr& ); - SdaiTransformation& operator =( const SdaiFunctionally_defined_transformation_ptr& ); - // not in SDAI - SdaiTransformation& ShallowCopy ( const SdaiTransformation& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiTransformation& operator =( SdaiTransformation * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsItem_defined_transformation() const; - SCLLOG(Logical) IsFunctionally_defined_transformation() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiTransformation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiTransformation (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiTransformation () { return new SdaiTransformation; } -#endif - -typedef SdaiTransformation * SdaiTransformationH; -typedef SdaiTransformation_ptr SdaiTransformation_var; - - -class SdaiTransformations : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiTransformations( SelectTypeDescriptor * =config_control_designt_transformation ); - ~SdaiTransformations(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiTransformation( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiTransformations (os_database *db); -#else -inline STEPaggregate * create_SdaiTransformations () { return new SdaiTransformations; } -#endif - -typedef SdaiTransformations_ptr SdaiTransformations_var; - -///// END SELECT TYPE transformation - - -////////// SELECT TYPE SdaiBoolean_operand -class SdaiBoolean_operand : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // SOLID_MODEL -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiBoolean_operand_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiBoolean_operand( const SelectTypeDescriptor * =config_control_designt_boolean_operand ); - // part 1 - SdaiBoolean_operand( const SdaiSolid_model_ptr&, - const SelectTypeDescriptor * =config_control_designt_boolean_operand ); - virtual ~SdaiBoolean_operand(); - - // part 2 - operator SdaiSolid_model_ptr(); - - // part 3 - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiBoolean_operand& operator =( const SdaiSolid_model_ptr& ); - // not in SDAI - SdaiBoolean_operand& ShallowCopy ( const SdaiBoolean_operand& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiBoolean_operand& operator =( SdaiBoolean_operand * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsSolid_model() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiBoolean_operand_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiBoolean_operand (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiBoolean_operand () { return new SdaiBoolean_operand; } -#endif - -typedef SdaiBoolean_operand * SdaiBoolean_operandH; -typedef SdaiBoolean_operand_ptr SdaiBoolean_operand_var; - - -class SdaiBoolean_operands : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiBoolean_operands( SelectTypeDescriptor * =config_control_designt_boolean_operand ); - ~SdaiBoolean_operands(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiBoolean_operand( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiBoolean_operands (os_database *db); -#else -inline STEPaggregate * create_SdaiBoolean_operands () { return new SdaiBoolean_operands; } -#endif - -typedef SdaiBoolean_operands_ptr SdaiBoolean_operands_var; - -///// END SELECT TYPE boolean_operand - - -////////// SELECT TYPE SdaiCertified_item -class SdaiCertified_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // SUPPLIED_PART_RELATIONSHIP -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiCertified_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiCertified_item( const SelectTypeDescriptor * =config_control_designt_certified_item ); - // part 1 - SdaiCertified_item( const SdaiSupplied_part_relationship_ptr&, - const SelectTypeDescriptor * =config_control_designt_certified_item ); - virtual ~SdaiCertified_item(); - - // part 2 - operator SdaiSupplied_part_relationship_ptr(); - - // part 3 - const SdaiProduct_definition_ptr related_product_definition_() const; - void related_product_definition_ (const SdaiProduct_definition_ptr x); - - const SdaiProduct_definition_ptr relating_product_definition_() const; - void relating_product_definition_ (const SdaiProduct_definition_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiCertified_item& operator =( const SdaiSupplied_part_relationship_ptr& ); - // not in SDAI - SdaiCertified_item& ShallowCopy ( const SdaiCertified_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiCertified_item& operator =( SdaiCertified_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsSupplied_part_relationship() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiCertified_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiCertified_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiCertified_item () { return new SdaiCertified_item; } -#endif - -typedef SdaiCertified_item * SdaiCertified_itemH; -typedef SdaiCertified_item_ptr SdaiCertified_item_var; - - -class SdaiCertified_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiCertified_items( SelectTypeDescriptor * =config_control_designt_certified_item ); - ~SdaiCertified_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiCertified_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiCertified_items (os_database *db); -#else -inline STEPaggregate * create_SdaiCertified_items () { return new SdaiCertified_items; } -#endif - -typedef SdaiCertified_items_ptr SdaiCertified_items_var; - -///// END SELECT TYPE certified_item - - -////////// SELECT TYPE SdaiDate_time_select -class SdaiDate_time_select : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // DATE_AND_TIME -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiDate_time_select_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiDate_time_select( const SelectTypeDescriptor * =config_control_designt_date_time_select ); - // part 1 - SdaiDate_time_select( const SdaiDate_and_time_ptr&, - const SelectTypeDescriptor * =config_control_designt_date_time_select ); - virtual ~SdaiDate_time_select(); - - // part 2 - operator SdaiDate_and_time_ptr(); - - // part 3 - const SdaiLocal_time_ptr time_component_() const; - void time_component_ (const SdaiLocal_time_ptr x); - - const SdaiDate_ptr date_component_() const; - void date_component_ (const SdaiDate_ptr x); - - - // part 4 - SdaiDate_time_select& operator =( const SdaiDate_and_time_ptr& ); - // not in SDAI - SdaiDate_time_select& ShallowCopy ( const SdaiDate_time_select& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiDate_time_select& operator =( SdaiDate_time_select * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsDate_and_time() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiDate_time_select_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiDate_time_select (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiDate_time_select () { return new SdaiDate_time_select; } -#endif - -typedef SdaiDate_time_select * SdaiDate_time_selectH; -typedef SdaiDate_time_select_ptr SdaiDate_time_select_var; - - -class SdaiDate_time_selects : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiDate_time_selects( SelectTypeDescriptor * =config_control_designt_date_time_select ); - ~SdaiDate_time_selects(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiDate_time_select( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiDate_time_selects (os_database *db); -#else -inline STEPaggregate * create_SdaiDate_time_selects () { return new SdaiDate_time_selects; } -#endif - -typedef SdaiDate_time_selects_ptr SdaiDate_time_selects_var; - -///// END SELECT TYPE date_time_select - - -////////// SELECT TYPE SdaiCurve_on_surface -class SdaiCurve_on_surface : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PCURVE -- sdaiINSTANCE - // SURFACE_CURVE -- sdaiINSTANCE - // COMPOSITE_CURVE_ON_SURFACE -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiCurve_on_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiCurve_on_surface( const SelectTypeDescriptor * =config_control_designt_curve_on_surface ); - // part 1 - SdaiCurve_on_surface( const SdaiPcurve_ptr&, - const SelectTypeDescriptor * =config_control_designt_curve_on_surface ); - SdaiCurve_on_surface( const SdaiSurface_curve_ptr&, - const SelectTypeDescriptor * =config_control_designt_curve_on_surface ); - SdaiCurve_on_surface( const SdaiComposite_curve_on_surface_ptr&, - const SelectTypeDescriptor * =config_control_designt_curve_on_surface ); - virtual ~SdaiCurve_on_surface(); - - // part 2 - operator SdaiPcurve_ptr(); - operator SdaiSurface_curve_ptr(); - operator SdaiComposite_curve_on_surface_ptr(); - - // part 3 - const SCLLOG(Logical) self_intersect_() const; - void self_intersect_ (const SCLLOG(Logical) x); - - const EntityAggregate_ptr segments_() const; - void segments_ (const EntityAggregate_ptr x); - - const SdaiPreferred_surface_curve_representation_var master_representation_() const; - void master_representation_ (const SdaiPreferred_surface_curve_representation_var x); - - const SdaiPcurve_or_surfaces_ptr associated_geometry_() const; - void associated_geometry_ (const SdaiPcurve_or_surfaces_ptr x); - - const SdaiCurve_ptr curve_3d_() const; - void curve_3d_ (const SdaiCurve_ptr x); - - const SdaiDefinitional_representation_ptr reference_to_curve_() const; - void reference_to_curve_ (const SdaiDefinitional_representation_ptr x); - - const SdaiSurface_ptr basis_surface_() const; - void basis_surface_ (const SdaiSurface_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiCurve_on_surface& operator =( const SdaiPcurve_ptr& ); - SdaiCurve_on_surface& operator =( const SdaiSurface_curve_ptr& ); - SdaiCurve_on_surface& operator =( const SdaiComposite_curve_on_surface_ptr& ); - // not in SDAI - SdaiCurve_on_surface& ShallowCopy ( const SdaiCurve_on_surface& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiCurve_on_surface& operator =( SdaiCurve_on_surface * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsPcurve() const; - SCLLOG(Logical) IsSurface_curve() const; - SCLLOG(Logical) IsComposite_curve_on_surface() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiCurve_on_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiCurve_on_surface (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiCurve_on_surface () { return new SdaiCurve_on_surface; } -#endif - -typedef SdaiCurve_on_surface * SdaiCurve_on_surfaceH; -typedef SdaiCurve_on_surface_ptr SdaiCurve_on_surface_var; - - -class SdaiCurve_on_surfaces : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiCurve_on_surfaces( SelectTypeDescriptor * =config_control_designt_curve_on_surface ); - ~SdaiCurve_on_surfaces(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiCurve_on_surface( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiCurve_on_surfaces (os_database *db); -#else -inline STEPaggregate * create_SdaiCurve_on_surfaces () { return new SdaiCurve_on_surfaces; } -#endif - -typedef SdaiCurve_on_surfaces_ptr SdaiCurve_on_surfaces_var; - -///// END SELECT TYPE curve_on_surface - - -////////// SELECT TYPE SdaiTrimming_select -class SdaiTrimming_select : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // CARTESIAN_POINT -- sdaiINSTANCE - // PARAMETER_VALUE -- sdaiREAL - SCLP23(Application_instance_ptr) _app_inst; - SCLP23(Real) _real; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiTrimming_select_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiTrimming_select( const SelectTypeDescriptor * =config_control_designt_trimming_select ); - // part 1 - SdaiTrimming_select( const SdaiCartesian_point_ptr&, - const SelectTypeDescriptor * =config_control_designt_trimming_select ); - SdaiTrimming_select( const SdaiParameter_value&, - const SelectTypeDescriptor * =config_control_designt_trimming_select ); - virtual ~SdaiTrimming_select(); - - // part 2 - operator SdaiCartesian_point_ptr(); - operator SdaiParameter_value(); - - // part 3 - const RealAggregate_ptr coordinates_() const; - void coordinates_ (const RealAggregate_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiTrimming_select& operator =( const SdaiCartesian_point_ptr& ); - SdaiTrimming_select& operator =( const SdaiParameter_value& ); - // not in SDAI - SdaiTrimming_select& ShallowCopy ( const SdaiTrimming_select& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiTrimming_select& operator =( SdaiTrimming_select * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsCartesian_point() const; - SCLLOG(Logical) IsParameter_value() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiTrimming_select_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiTrimming_select (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiTrimming_select () { return new SdaiTrimming_select; } -#endif - -typedef SdaiTrimming_select * SdaiTrimming_selectH; -typedef SdaiTrimming_select_ptr SdaiTrimming_select_var; - - -class SdaiTrimming_selects : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiTrimming_selects( SelectTypeDescriptor * =config_control_designt_trimming_select ); - ~SdaiTrimming_selects(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiTrimming_select( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiTrimming_selects (os_database *db); -#else -inline STEPaggregate * create_SdaiTrimming_selects () { return new SdaiTrimming_selects; } -#endif - -typedef SdaiTrimming_selects_ptr SdaiTrimming_selects_var; - -///// END SELECT TYPE trimming_select - - -////////// SELECT TYPE SdaiContracted_item -class SdaiContracted_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION_FORMATION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiContracted_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiContracted_item( const SelectTypeDescriptor * =config_control_designt_contracted_item ); - // part 1 - SdaiContracted_item( const SdaiProduct_definition_formation_ptr&, - const SelectTypeDescriptor * =config_control_designt_contracted_item ); - virtual ~SdaiContracted_item(); - - // part 2 - operator SdaiProduct_definition_formation_ptr(); - - // part 3 - const SdaiProduct_ptr of_product_() const; - void of_product_ (const SdaiProduct_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiContracted_item& operator =( const SdaiProduct_definition_formation_ptr& ); - // not in SDAI - SdaiContracted_item& ShallowCopy ( const SdaiContracted_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiContracted_item& operator =( SdaiContracted_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition_formation() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiContracted_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiContracted_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiContracted_item () { return new SdaiContracted_item; } -#endif - -typedef SdaiContracted_item * SdaiContracted_itemH; -typedef SdaiContracted_item_ptr SdaiContracted_item_var; - - -class SdaiContracted_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiContracted_items( SelectTypeDescriptor * =config_control_designt_contracted_item ); - ~SdaiContracted_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiContracted_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiContracted_items (os_database *db); -#else -inline STEPaggregate * create_SdaiContracted_items () { return new SdaiContracted_items; } -#endif - -typedef SdaiContracted_items_ptr SdaiContracted_items_var; - -///// END SELECT TYPE contracted_item - - -////////// SELECT TYPE SdaiUnit -class SdaiUnit : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // NAMED_UNIT -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiUnit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiUnit( const SelectTypeDescriptor * =config_control_designt_unit ); - // part 1 - SdaiUnit( const SdaiNamed_unit_ptr&, - const SelectTypeDescriptor * =config_control_designt_unit ); - virtual ~SdaiUnit(); - - // part 2 - operator SdaiNamed_unit_ptr(); - - // part 3 - const SdaiDimensional_exponents_ptr dimensions_() const; - void dimensions_ (const SdaiDimensional_exponents_ptr x); - - - // part 4 - SdaiUnit& operator =( const SdaiNamed_unit_ptr& ); - // not in SDAI - SdaiUnit& ShallowCopy ( const SdaiUnit& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiUnit& operator =( SdaiUnit * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsNamed_unit() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiUnit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiUnit (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiUnit () { return new SdaiUnit; } -#endif - -typedef SdaiUnit * SdaiUnitH; -typedef SdaiUnit_ptr SdaiUnit_var; - - -class SdaiUnits : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiUnits( SelectTypeDescriptor * =config_control_designt_unit ); - ~SdaiUnits(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiUnit( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiUnits (os_database *db); -#else -inline STEPaggregate * create_SdaiUnits () { return new SdaiUnits; } -#endif - -typedef SdaiUnits_ptr SdaiUnits_var; - -///// END SELECT TYPE unit - - -////////// SELECT TYPE SdaiReversible_topology -class SdaiReversible_topology : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // REVERSIBLE_TOPOLOGY_ITEM -- sdaiSELECT - // LIST_OF_REVERSIBLE_TOPOLOGY_ITEM -- LIST_TYPE - // SET_OF_REVERSIBLE_TOPOLOGY_ITEM -- SET_TYPE - SdaiReversible_topology_item _sdaireversible_topology_item; - SdaiReversible_topology_items _sdaireversible_topology_items; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiReversible_topology_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiReversible_topology( const SelectTypeDescriptor * =config_control_designt_reversible_topology ); - // part 1 - SdaiReversible_topology( const SdaiReversible_topology_item_ptr&, - const SelectTypeDescriptor * =config_control_designt_reversible_topology ); - SdaiReversible_topology( const SdaiSet_of_reversible_topology_item_ptr&, - const SelectTypeDescriptor * =config_control_designt_reversible_topology ); - virtual ~SdaiReversible_topology(); - - // part 2 - operator SdaiReversible_topology_item_ptr(); - operator SdaiSet_of_reversible_topology_item_ptr (); - - // part 3 - - // part 4 - SdaiReversible_topology& operator =( const SdaiReversible_topology_item_ptr& ); - SdaiReversible_topology& operator =( const SdaiSet_of_reversible_topology_item_ptr& ); - // not in SDAI - SdaiReversible_topology& ShallowCopy ( const SdaiReversible_topology& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiReversible_topology& operator =( SdaiReversible_topology * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsReversible_topology_item() const; - SCLLOG(Logical) IsList_of_reversible_topology_item() const; - SCLLOG(Logical) IsSet_of_reversible_topology_item() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 - const TypeDescriptor *SetUnderlyingType ( const TypeDescriptor * td ); -}; - -#ifdef __OSTORE__ -void SdaiReversible_topology_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiReversible_topology (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiReversible_topology () { return new SdaiReversible_topology; } -#endif - -typedef SdaiReversible_topology * SdaiReversible_topologyH; -typedef SdaiReversible_topology_ptr SdaiReversible_topology_var; - - -class SdaiReversible_topologys : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiReversible_topologys( SelectTypeDescriptor * =config_control_designt_reversible_topology ); - ~SdaiReversible_topologys(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiReversible_topology( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiReversible_topologys (os_database *db); -#else -inline STEPaggregate * create_SdaiReversible_topologys () { return new SdaiReversible_topologys; } -#endif - -typedef SdaiReversible_topologys_ptr SdaiReversible_topologys_var; - -///// END SELECT TYPE reversible_topology - - -////////// SELECT TYPE SdaiWork_item -class SdaiWork_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION_FORMATION -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiWork_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiWork_item( const SelectTypeDescriptor * =config_control_designt_work_item ); - // part 1 - SdaiWork_item( const SdaiProduct_definition_formation_ptr&, - const SelectTypeDescriptor * =config_control_designt_work_item ); - virtual ~SdaiWork_item(); - - // part 2 - operator SdaiProduct_definition_formation_ptr(); - - // part 3 - const SdaiProduct_ptr of_product_() const; - void of_product_ (const SdaiProduct_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiWork_item& operator =( const SdaiProduct_definition_formation_ptr& ); - // not in SDAI - SdaiWork_item& ShallowCopy ( const SdaiWork_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiWork_item& operator =( SdaiWork_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition_formation() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiWork_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiWork_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiWork_item () { return new SdaiWork_item; } -#endif - -typedef SdaiWork_item * SdaiWork_itemH; -typedef SdaiWork_item_ptr SdaiWork_item_var; - - -class SdaiWork_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiWork_items( SelectTypeDescriptor * =config_control_designt_work_item ); - ~SdaiWork_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiWork_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiWork_items (os_database *db); -#else -inline STEPaggregate * create_SdaiWork_items () { return new SdaiWork_items; } -#endif - -typedef SdaiWork_items_ptr SdaiWork_items_var; - -///// END SELECT TYPE work_item - - -////////// SELECT TYPE SdaiSupported_item -class SdaiSupported_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // ACTION_DIRECTIVE -- sdaiINSTANCE - // ACTION -- sdaiINSTANCE - // ACTION_METHOD -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiSupported_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiSupported_item( const SelectTypeDescriptor * =config_control_designt_supported_item ); - // part 1 - SdaiSupported_item( const SdaiAction_directive_ptr&, - const SelectTypeDescriptor * =config_control_designt_supported_item ); - SdaiSupported_item( const SdaiAction_ptr&, - const SelectTypeDescriptor * =config_control_designt_supported_item ); - SdaiSupported_item( const SdaiAction_method_ptr&, - const SelectTypeDescriptor * =config_control_designt_supported_item ); - virtual ~SdaiSupported_item(); - - // part 2 - operator SdaiAction_directive_ptr(); - operator SdaiAction_ptr(); - operator SdaiAction_method_ptr(); - - // part 3 - const SdaiText purpose_() const; - void purpose_ (const SdaiText x); - - const SdaiText consequence_() const; - void consequence_ (const SdaiText x); - - const SdaiAction_method_ptr chosen_method_() const; - void chosen_method_ (const SdaiAction_method_ptr x); - - const EntityAggregate_ptr requests_() const; - void requests_ (const EntityAggregate_ptr x); - - const SdaiText comment_() const; - void comment_ (const SdaiText x); - - const SdaiText analysis_() const; - void analysis_ (const SdaiText x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiSupported_item& operator =( const SdaiAction_directive_ptr& ); - SdaiSupported_item& operator =( const SdaiAction_ptr& ); - SdaiSupported_item& operator =( const SdaiAction_method_ptr& ); - // not in SDAI - SdaiSupported_item& ShallowCopy ( const SdaiSupported_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiSupported_item& operator =( SdaiSupported_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsAction_directive() const; - SCLLOG(Logical) IsAction() const; - SCLLOG(Logical) IsAction_method() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiSupported_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiSupported_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiSupported_item () { return new SdaiSupported_item; } -#endif - -typedef SdaiSupported_item * SdaiSupported_itemH; -typedef SdaiSupported_item_ptr SdaiSupported_item_var; - - -class SdaiSupported_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiSupported_items( SelectTypeDescriptor * =config_control_designt_supported_item ); - ~SdaiSupported_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiSupported_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiSupported_items (os_database *db); -#else -inline STEPaggregate * create_SdaiSupported_items () { return new SdaiSupported_items; } -#endif - -typedef SdaiSupported_items_ptr SdaiSupported_items_var; - -///// END SELECT TYPE supported_item - - -////////// SELECT TYPE SdaiApproved_item -class SdaiApproved_item : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // PRODUCT_DEFINITION_FORMATION -- sdaiINSTANCE - // PRODUCT_DEFINITION -- sdaiINSTANCE - // CONFIGURATION_EFFECTIVITY -- sdaiINSTANCE - // CONFIGURATION_ITEM -- sdaiINSTANCE - // SECURITY_CLASSIFICATION -- sdaiINSTANCE - // CHANGE_REQUEST -- sdaiINSTANCE - // CHANGE -- sdaiINSTANCE - // START_REQUEST -- sdaiINSTANCE - // START_WORK -- sdaiINSTANCE - // CERTIFICATION -- sdaiINSTANCE - // CONTRACT -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiApproved_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiApproved_item( const SelectTypeDescriptor * =config_control_designt_approved_item ); - // part 1 - SdaiApproved_item( const SdaiProduct_definition_formation_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiProduct_definition_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiConfiguration_effectivity_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiConfiguration_item_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiSecurity_classification_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiChange_request_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiChange_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiStart_request_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiStart_work_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiCertification_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - SdaiApproved_item( const SdaiContract_ptr&, - const SelectTypeDescriptor * =config_control_designt_approved_item ); - virtual ~SdaiApproved_item(); - - // part 2 - operator SdaiProduct_definition_formation_ptr(); - operator SdaiProduct_definition_ptr(); - operator SdaiConfiguration_effectivity_ptr(); - operator SdaiConfiguration_item_ptr(); - operator SdaiSecurity_classification_ptr(); - operator SdaiChange_request_ptr(); - operator SdaiChange_ptr(); - operator SdaiStart_request_ptr(); - operator SdaiStart_work_ptr(); - operator SdaiCertification_ptr(); - operator SdaiContract_ptr(); - - // part 3 - const SdaiCertification_type_ptr kind_() const; - void kind_ (const SdaiCertification_type_ptr x); - - const SdaiAction_ptr assigned_action_() const; - void assigned_action_ (const SdaiAction_ptr x); - - const SdaiChange_request_items_ptr items_() const; - void items_ (const SdaiChange_request_items_ptr x); - - const SdaiVersioned_action_request_ptr assigned_action_request_() const; - void assigned_action_request_ (const SdaiVersioned_action_request_ptr x); - - const SdaiSecurity_classification_level_ptr security_level_() const; - void security_level_ (const SdaiSecurity_classification_level_ptr x); - - const SdaiLabel purpose_() const; - void purpose_ (const SdaiLabel x); - - const SdaiProduct_concept_ptr item_concept_() const; - void item_concept_ (const SdaiProduct_concept_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiConfiguration_design_ptr configuration_() const; - void configuration_ (const SdaiConfiguration_design_ptr x); - - const SdaiProduct_definition_relationship_ptr usage_() const; - void usage_ (const SdaiProduct_definition_relationship_ptr x); - - const SdaiProduct_definition_context_ptr frame_of_reference_() const; - void frame_of_reference_ (const SdaiProduct_definition_context_ptr x); - - const SdaiProduct_definition_formation_ptr formation_() const; - void formation_ (const SdaiProduct_definition_formation_ptr x); - - const SdaiProduct_ptr of_product_() const; - void of_product_ (const SdaiProduct_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - - // part 4 - SdaiApproved_item& operator =( const SdaiProduct_definition_formation_ptr& ); - SdaiApproved_item& operator =( const SdaiProduct_definition_ptr& ); - SdaiApproved_item& operator =( const SdaiConfiguration_effectivity_ptr& ); - SdaiApproved_item& operator =( const SdaiConfiguration_item_ptr& ); - SdaiApproved_item& operator =( const SdaiSecurity_classification_ptr& ); - SdaiApproved_item& operator =( const SdaiChange_request_ptr& ); - SdaiApproved_item& operator =( const SdaiChange_ptr& ); - SdaiApproved_item& operator =( const SdaiStart_request_ptr& ); - SdaiApproved_item& operator =( const SdaiStart_work_ptr& ); - SdaiApproved_item& operator =( const SdaiCertification_ptr& ); - SdaiApproved_item& operator =( const SdaiContract_ptr& ); - // not in SDAI - SdaiApproved_item& ShallowCopy ( const SdaiApproved_item& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiApproved_item& operator =( SdaiApproved_item * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsProduct_definition_formation() const; - SCLLOG(Logical) IsProduct_definition() const; - SCLLOG(Logical) IsConfiguration_effectivity() const; - SCLLOG(Logical) IsConfiguration_item() const; - SCLLOG(Logical) IsSecurity_classification() const; - SCLLOG(Logical) IsChange_request() const; - SCLLOG(Logical) IsChange() const; - SCLLOG(Logical) IsStart_request() const; - SCLLOG(Logical) IsStart_work() const; - SCLLOG(Logical) IsCertification() const; - SCLLOG(Logical) IsContract() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiApproved_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiApproved_item (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiApproved_item () { return new SdaiApproved_item; } -#endif - -typedef SdaiApproved_item * SdaiApproved_itemH; -typedef SdaiApproved_item_ptr SdaiApproved_item_var; - - -class SdaiApproved_items : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiApproved_items( SelectTypeDescriptor * =config_control_designt_approved_item ); - ~SdaiApproved_items(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiApproved_item( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiApproved_items (os_database *db); -#else -inline STEPaggregate * create_SdaiApproved_items () { return new SdaiApproved_items; } -#endif - -typedef SdaiApproved_items_ptr SdaiApproved_items_var; - -///// END SELECT TYPE approved_item - - -////////// SELECT TYPE SdaiSurface_model -class SdaiSurface_model : public SCLP23(Select) { - protected: -/* union { */ - // types in SELECT - // SHELL_BASED_SURFACE_MODEL -- sdaiINSTANCE - SCLP23(Application_instance_ptr) _app_inst; -/* } ; */ /* unnamed union of select items */ - - public: - -#ifdef __OSTORE__ - friend void SdaiSurface_model_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); - static os_typespec* get_os_typespec(); -#endif - - virtual const TypeDescriptor * AssignEntity (SCLP23(Application_instance) * se); - virtual SCLP23(Select) * NewSelect (); - - virtual BASE_TYPE ValueType() const; - - -// STEP Part 21 - virtual void STEPwrite_content (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual void STEPwrite_verbose (std::ostream& out =G4cout, - const char *currSch =0) const; - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, const char *utype =0, - int addFileId =0, const char *currSch =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0); - -// STEP Part 22: SDAI - -// constructors - SdaiSurface_model( const SelectTypeDescriptor * =config_control_designt_surface_model ); - // part 1 - SdaiSurface_model( const SdaiShell_based_surface_model_ptr&, - const SelectTypeDescriptor * =config_control_designt_surface_model ); - virtual ~SdaiSurface_model(); - - // part 2 - operator SdaiShell_based_surface_model_ptr(); - - // part 3 - const SdaiShells_ptr sbsm_boundary_() const; - void sbsm_boundary_ (const SdaiShells_ptr x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - - // part 4 - SdaiSurface_model& operator =( const SdaiShell_based_surface_model_ptr& ); - // not in SDAI - SdaiSurface_model& ShallowCopy ( const SdaiSurface_model& ); - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - SdaiSurface_model& operator =( SdaiSurface_model * const & ); - SCLP23(Select)& operator =( const SCLP23(Select)& ); -#endif - - // part 5 - SCLLOG(Logical) IsShell_based_surface_model() const; - - // part 6 ... UnderlyingTypeName () implemented in SCLP23(Select) class ... - - // part 7 ... NONE only for complex selects... -}; - -#ifdef __OSTORE__ -void SdaiSurface_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -SCLP23(Select) * create_SdaiSurface_model (os_database *db); -#else - -inline SCLP23(Select) * create_SdaiSurface_model () { return new SdaiSurface_model; } -#endif - -typedef SdaiSurface_model * SdaiSurface_modelH; -typedef SdaiSurface_model_ptr SdaiSurface_model_var; - - -class SdaiSurface_models : public SelectAggregate { - protected: - SelectTypeDescriptor *sel_type; - - public: - SdaiSurface_models( SelectTypeDescriptor * =config_control_designt_surface_model ); - ~SdaiSurface_models(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual SingleLinkNode * NewNode(); -#else - virtual SingleLinkNode * NewNode() - { return new SelectNode (new SdaiSurface_model( sel_type )); } -#endif -}; - -#ifdef __OSTORE__ -STEPaggregate * create_SdaiSurface_models (os_database *db); -#else -inline STEPaggregate * create_SdaiSurface_models () { return new SdaiSurface_models; } -#endif - -typedef SdaiSurface_models_ptr SdaiSurface_models_var; - -///// END SELECT TYPE surface_model - - -/* ************** ENTITIES */ - -// ***** Print Entity Classes - -///////// ENTITY representation_item - -extern AttrDescriptor *a_0name; - -class SdaiRepresentation_item : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiRepresentation_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - public: - - SdaiRepresentation_item ( ); - SdaiRepresentation_item (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRepresentation_item (SdaiRepresentation_item& e ); - ~SdaiRepresentation_item (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 0 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRepresentation_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_item(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRepresentation_item () { return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_item ; } -#else -inline SdaiRepresentation_item * -create_SdaiRepresentation_item () { return new SdaiRepresentation_item ; } -#endif - -///////// END_ENTITY representation_item - - -///////// ENTITY geometric_representation_item - -extern Derived_attribute *a_1Ddim; - -class SdaiGeometric_representation_item : public SdaiRepresentation_item { - -#ifdef __OSTORE__ - friend void SdaiGeometric_representation_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiGeometric_representation_item ( ); - SdaiGeometric_representation_item (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiGeometric_representation_item (SdaiGeometric_representation_item& e ); - ~SdaiGeometric_representation_item (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 1 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiGeometric_representation_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiGeometric_representation_item(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiGeometric_representation_item () { return (SCLP23(Application_instance_ptr)) new SdaiGeometric_representation_item ; } -#else -inline SdaiGeometric_representation_item * -create_SdaiGeometric_representation_item () { return new SdaiGeometric_representation_item ; } -#endif - -///////// END_ENTITY geometric_representation_item - - -///////// ENTITY functionally_defined_transformation - -extern AttrDescriptor *a_2name; -extern AttrDescriptor *a_3description; - -class SdaiFunctionally_defined_transformation : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiFunctionally_defined_transformation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - public: - - SdaiFunctionally_defined_transformation ( ); - SdaiFunctionally_defined_transformation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiFunctionally_defined_transformation (SdaiFunctionally_defined_transformation& e ); - ~SdaiFunctionally_defined_transformation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 2 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiFunctionally_defined_transformation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiFunctionally_defined_transformation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiFunctionally_defined_transformation () { return (SCLP23(Application_instance_ptr)) new SdaiFunctionally_defined_transformation ; } -#else -inline SdaiFunctionally_defined_transformation * -create_SdaiFunctionally_defined_transformation () { return new SdaiFunctionally_defined_transformation ; } -#endif - -///////// END_ENTITY functionally_defined_transformation - - -///////// ENTITY cartesian_transformation_operator - -extern AttrDescriptor *a_4axis1; -extern AttrDescriptor *a_5axis2; -extern AttrDescriptor *a_6local_origin; -extern AttrDescriptor *a_7scale; -extern Derived_attribute *a_8Dscl; - -class SdaiCartesian_transformation_operator : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiCartesian_transformation_operator_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _axis1 ; // OPTIONAL - SCLP23(Application_instance_ptr) _axis2 ; // OPTIONAL - SCLP23(Application_instance_ptr) _local_origin ; - SCLP23(Real) _scale ; // OPTIONAL - public: - - SdaiCartesian_transformation_operator ( ); - SdaiCartesian_transformation_operator (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCartesian_transformation_operator (SdaiCartesian_transformation_operator& e ); - ~SdaiCartesian_transformation_operator (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 3 ; } - const SdaiDirection_ptr axis1_() const; - void axis1_ (const SdaiDirection_ptr x); - - const SdaiDirection_ptr axis2_() const; - void axis2_ (const SdaiDirection_ptr x); - - const SdaiCartesian_point_ptr local_origin_() const; - void local_origin_ (const SdaiCartesian_point_ptr x); - - const SCLP23(Real) scale_() const; - void scale_ (const SCLP23(Real) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCartesian_transformation_operator_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator () { return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator ; } -#else -inline SdaiCartesian_transformation_operator * -create_SdaiCartesian_transformation_operator () { return new SdaiCartesian_transformation_operator ; } -#endif - -///////// END_ENTITY cartesian_transformation_operator - - -///////// ENTITY cartesian_transformation_operator_3d - -extern AttrDescriptor *a_9axis3; -extern Derived_attribute *a_10Du; - -class SdaiCartesian_transformation_operator_3d : public SdaiCartesian_transformation_operator { - -#ifdef __OSTORE__ - friend void SdaiCartesian_transformation_operator_3d_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _axis3 ; // OPTIONAL - public: - - SdaiCartesian_transformation_operator_3d ( ); - SdaiCartesian_transformation_operator_3d (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCartesian_transformation_operator_3d (SdaiCartesian_transformation_operator_3d& e ); - ~SdaiCartesian_transformation_operator_3d (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 4 ; } - const SdaiDirection_ptr axis3_() const; - void axis3_ (const SdaiDirection_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCartesian_transformation_operator_3d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator_3d(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator_3d () { return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator_3d ; } -#else -inline SdaiCartesian_transformation_operator_3d * -create_SdaiCartesian_transformation_operator_3d () { return new SdaiCartesian_transformation_operator_3d ; } -#endif - -///////// END_ENTITY cartesian_transformation_operator_3d - - -///////// ENTITY versioned_action_request - -extern AttrDescriptor *a_11id; -extern AttrDescriptor *a_12version; -extern AttrDescriptor *a_13purpose; -extern AttrDescriptor *a_14description; - -class SdaiVersioned_action_request : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiVersioned_action_request_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _version ; - SCLP23(String) _purpose ; - SCLP23(String) _description ; - public: - - SdaiVersioned_action_request ( ); - SdaiVersioned_action_request (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiVersioned_action_request (SdaiVersioned_action_request& e ); - ~SdaiVersioned_action_request (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 5 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiLabel version_() const; - void version_ (const SdaiLabel x); - - const SdaiText purpose_() const; - void purpose_ (const SdaiText x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiVersioned_action_request_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiVersioned_action_request(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiVersioned_action_request () { return (SCLP23(Application_instance_ptr)) new SdaiVersioned_action_request ; } -#else -inline SdaiVersioned_action_request * -create_SdaiVersioned_action_request () { return new SdaiVersioned_action_request ; } -#endif - -///////// END_ENTITY versioned_action_request - - -///////// ENTITY representation - -extern AttrDescriptor *a_15name; -extern AttrDescriptor *a_16items; -extern AttrDescriptor *a_17context_of_items; - -class SdaiRepresentation : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiRepresentation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - EntityAggregate _items ; // of representation_item - - SCLP23(Application_instance_ptr) _context_of_items ; - public: - - SdaiRepresentation ( ); - SdaiRepresentation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRepresentation (SdaiRepresentation& e ); - ~SdaiRepresentation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 6 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const EntityAggregate_ptr items_() const; - void items_ (const EntityAggregate_ptr x); - - const SdaiRepresentation_context_ptr context_of_items_() const; - void context_of_items_ (const SdaiRepresentation_context_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRepresentation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRepresentation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRepresentation () { return (SCLP23(Application_instance_ptr)) new SdaiRepresentation ; } -#else -inline SdaiRepresentation * -create_SdaiRepresentation () { return new SdaiRepresentation ; } -#endif - -///////// END_ENTITY representation - - -///////// ENTITY shape_representation - - -class SdaiShape_representation : public SdaiRepresentation { - -#ifdef __OSTORE__ - friend void SdaiShape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiShape_representation ( ); - SdaiShape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiShape_representation (SdaiShape_representation& e ); - ~SdaiShape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 7 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiShape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiShape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiShape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiShape_representation ; } -#else -inline SdaiShape_representation * -create_SdaiShape_representation () { return new SdaiShape_representation ; } -#endif - -///////// END_ENTITY shape_representation - - -///////// ENTITY manifold_surface_shape_representation - - -class SdaiManifold_surface_shape_representation : public SdaiShape_representation { - -#ifdef __OSTORE__ - friend void SdaiManifold_surface_shape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiManifold_surface_shape_representation ( ); - SdaiManifold_surface_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiManifold_surface_shape_representation (SdaiManifold_surface_shape_representation& e ); - ~SdaiManifold_surface_shape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 8 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiManifold_surface_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiManifold_surface_shape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiManifold_surface_shape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiManifold_surface_shape_representation ; } -#else -inline SdaiManifold_surface_shape_representation * -create_SdaiManifold_surface_shape_representation () { return new SdaiManifold_surface_shape_representation ; } -#endif - -///////// END_ENTITY manifold_surface_shape_representation - - -///////// ENTITY certification - -extern AttrDescriptor *a_18name; -extern AttrDescriptor *a_19purpose; -extern AttrDescriptor *a_20kind; - -class SdaiCertification : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiCertification_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _purpose ; - SCLP23(Application_instance_ptr) _kind ; - public: - - SdaiCertification ( ); - SdaiCertification (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCertification (SdaiCertification& e ); - ~SdaiCertification (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 9 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText purpose_() const; - void purpose_ (const SdaiText x); - - const SdaiCertification_type_ptr kind_() const; - void kind_ (const SdaiCertification_type_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCertification_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCertification(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCertification () { return (SCLP23(Application_instance_ptr)) new SdaiCertification ; } -#else -inline SdaiCertification * -create_SdaiCertification () { return new SdaiCertification ; } -#endif - -///////// END_ENTITY certification - - -///////// ENTITY product_definition_relationship - -extern AttrDescriptor *a_21id; -extern AttrDescriptor *a_22name; -extern AttrDescriptor *a_23description; -extern AttrDescriptor *a_24relating_product_definition; -extern AttrDescriptor *a_25related_product_definition; - -class SdaiProduct_definition_relationship : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _relating_product_definition ; - SCLP23(Application_instance_ptr) _related_product_definition ; - public: - - SdaiProduct_definition_relationship ( ); - SdaiProduct_definition_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition_relationship (SdaiProduct_definition_relationship& e ); - ~SdaiProduct_definition_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 10 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiProduct_definition_ptr relating_product_definition_() const; - void relating_product_definition_ (const SdaiProduct_definition_ptr x); - - const SdaiProduct_definition_ptr related_product_definition_() const; - void related_product_definition_ (const SdaiProduct_definition_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_relationship ; } -#else -inline SdaiProduct_definition_relationship * -create_SdaiProduct_definition_relationship () { return new SdaiProduct_definition_relationship ; } -#endif - -///////// END_ENTITY product_definition_relationship - - -///////// ENTITY product_definition_usage - - -class SdaiProduct_definition_usage : public SdaiProduct_definition_relationship { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_usage_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiProduct_definition_usage ( ); - SdaiProduct_definition_usage (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition_usage (SdaiProduct_definition_usage& e ); - ~SdaiProduct_definition_usage (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 11 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_usage_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_usage(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_usage () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_usage ; } -#else -inline SdaiProduct_definition_usage * -create_SdaiProduct_definition_usage () { return new SdaiProduct_definition_usage ; } -#endif - -///////// END_ENTITY product_definition_usage - - -///////// ENTITY assembly_component_usage - -extern AttrDescriptor *a_26reference_designator; - -class SdaiAssembly_component_usage : public SdaiProduct_definition_usage { - -#ifdef __OSTORE__ - friend void SdaiAssembly_component_usage_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _reference_designator ; // OPTIONAL - public: - - SdaiAssembly_component_usage ( ); - SdaiAssembly_component_usage (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAssembly_component_usage (SdaiAssembly_component_usage& e ); - ~SdaiAssembly_component_usage (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 12 ; } - const SdaiIdentifier reference_designator_() const; - void reference_designator_ (const SdaiIdentifier x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAssembly_component_usage_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAssembly_component_usage(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAssembly_component_usage () { return (SCLP23(Application_instance_ptr)) new SdaiAssembly_component_usage ; } -#else -inline SdaiAssembly_component_usage * -create_SdaiAssembly_component_usage () { return new SdaiAssembly_component_usage ; } -#endif - -///////// END_ENTITY assembly_component_usage - - -///////// ENTITY quantified_assembly_component_usage - -extern AttrDescriptor *a_27quantity; - -class SdaiQuantified_assembly_component_usage : public SdaiAssembly_component_usage { - -#ifdef __OSTORE__ - friend void SdaiQuantified_assembly_component_usage_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _quantity ; - public: - - SdaiQuantified_assembly_component_usage ( ); - SdaiQuantified_assembly_component_usage (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiQuantified_assembly_component_usage (SdaiQuantified_assembly_component_usage& e ); - ~SdaiQuantified_assembly_component_usage (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 13 ; } - const SdaiMeasure_with_unit_ptr quantity_() const; - void quantity_ (const SdaiMeasure_with_unit_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiQuantified_assembly_component_usage_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiQuantified_assembly_component_usage(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiQuantified_assembly_component_usage () { return (SCLP23(Application_instance_ptr)) new SdaiQuantified_assembly_component_usage ; } -#else -inline SdaiQuantified_assembly_component_usage * -create_SdaiQuantified_assembly_component_usage () { return new SdaiQuantified_assembly_component_usage ; } -#endif - -///////// END_ENTITY quantified_assembly_component_usage - - -///////// ENTITY solid_model - - -class SdaiSolid_model : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiSolid_model_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiSolid_model ( ); - SdaiSolid_model (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSolid_model (SdaiSolid_model& e ); - ~SdaiSolid_model (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 14 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSolid_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSolid_model(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSolid_model () { return (SCLP23(Application_instance_ptr)) new SdaiSolid_model ; } -#else -inline SdaiSolid_model * -create_SdaiSolid_model () { return new SdaiSolid_model ; } -#endif - -///////// END_ENTITY solid_model - - -///////// ENTITY manifold_solid_brep - -extern AttrDescriptor *a_28outer; - -class SdaiManifold_solid_brep : public SdaiSolid_model { - -#ifdef __OSTORE__ - friend void SdaiManifold_solid_brep_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _outer ; - public: - - SdaiManifold_solid_brep ( ); - SdaiManifold_solid_brep (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiManifold_solid_brep (SdaiManifold_solid_brep& e ); - ~SdaiManifold_solid_brep (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 15 ; } - const SdaiClosed_shell_ptr outer_() const; - void outer_ (const SdaiClosed_shell_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiManifold_solid_brep_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiManifold_solid_brep(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiManifold_solid_brep () { return (SCLP23(Application_instance_ptr)) new SdaiManifold_solid_brep ; } -#else -inline SdaiManifold_solid_brep * -create_SdaiManifold_solid_brep () { return new SdaiManifold_solid_brep ; } -#endif - -///////// END_ENTITY manifold_solid_brep - - -///////// ENTITY faceted_brep - - -class SdaiFaceted_brep : public SdaiManifold_solid_brep { - -#ifdef __OSTORE__ - friend void SdaiFaceted_brep_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiFaceted_brep ( ); - SdaiFaceted_brep (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiFaceted_brep (SdaiFaceted_brep& e ); - ~SdaiFaceted_brep (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 16 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiFaceted_brep_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiFaceted_brep(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiFaceted_brep () { return (SCLP23(Application_instance_ptr)) new SdaiFaceted_brep ; } -#else -inline SdaiFaceted_brep * -create_SdaiFaceted_brep () { return new SdaiFaceted_brep ; } -#endif - -///////// END_ENTITY faceted_brep - - -///////// ENTITY action_directive - -extern AttrDescriptor *a_29name; -extern AttrDescriptor *a_30description; -extern AttrDescriptor *a_31analysis; -extern AttrDescriptor *a_32comment; -extern AttrDescriptor *a_33requests; - -class SdaiAction_directive : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAction_directive_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(String) _analysis ; - SCLP23(String) _comment ; - EntityAggregate _requests ; // of versioned_action_request - - public: - - SdaiAction_directive ( ); - SdaiAction_directive (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAction_directive (SdaiAction_directive& e ); - ~SdaiAction_directive (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 17 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiText analysis_() const; - void analysis_ (const SdaiText x); - - const SdaiText comment_() const; - void comment_ (const SdaiText x); - - const EntityAggregate_ptr requests_() const; - void requests_ (const EntityAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAction_directive_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAction_directive(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAction_directive () { return (SCLP23(Application_instance_ptr)) new SdaiAction_directive ; } -#else -inline SdaiAction_directive * -create_SdaiAction_directive () { return new SdaiAction_directive ; } -#endif - -///////// END_ENTITY action_directive - - -///////// ENTITY named_unit - -extern AttrDescriptor *a_34dimensions; - -class SdaiNamed_unit : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiNamed_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _dimensions ; - public: - - SdaiNamed_unit ( ); - SdaiNamed_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiNamed_unit (SdaiNamed_unit& e ); - ~SdaiNamed_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 18 ; } - const SdaiDimensional_exponents_ptr dimensions_() const; - void dimensions_ (const SdaiDimensional_exponents_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiNamed_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiNamed_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiNamed_unit () { return (SCLP23(Application_instance_ptr)) new SdaiNamed_unit ; } -#else -inline SdaiNamed_unit * -create_SdaiNamed_unit () { return new SdaiNamed_unit ; } -#endif - -///////// END_ENTITY named_unit - - -///////// ENTITY plane_angle_unit - - -class SdaiPlane_angle_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiPlane_angle_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiPlane_angle_unit ( ); - SdaiPlane_angle_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPlane_angle_unit (SdaiPlane_angle_unit& e ); - ~SdaiPlane_angle_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 19 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPlane_angle_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPlane_angle_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPlane_angle_unit () { return (SCLP23(Application_instance_ptr)) new SdaiPlane_angle_unit ; } -#else -inline SdaiPlane_angle_unit * -create_SdaiPlane_angle_unit () { return new SdaiPlane_angle_unit ; } -#endif - -///////// END_ENTITY plane_angle_unit - - -///////// ENTITY measure_with_unit - -extern AttrDescriptor *a_35value_component; -extern AttrDescriptor *a_36unit_component; - -class SdaiMeasure_with_unit : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiMeasure_with_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiMeasure_value _value_component ; - SdaiUnit _unit_component ; - public: - - SdaiMeasure_with_unit ( ); - SdaiMeasure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiMeasure_with_unit (SdaiMeasure_with_unit& e ); - ~SdaiMeasure_with_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 20 ; } - const SdaiMeasure_value_ptr value_component_() const; - void value_component_ (const SdaiMeasure_value_ptr x); - - const SdaiUnit_ptr unit_component_() const; - void unit_component_ (const SdaiUnit_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiMeasure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiMeasure_with_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiMeasure_with_unit () { return (SCLP23(Application_instance_ptr)) new SdaiMeasure_with_unit ; } -#else -inline SdaiMeasure_with_unit * -create_SdaiMeasure_with_unit () { return new SdaiMeasure_with_unit ; } -#endif - -///////// END_ENTITY measure_with_unit - - -///////// ENTITY area_measure_with_unit - - -class SdaiArea_measure_with_unit : public SdaiMeasure_with_unit { - -#ifdef __OSTORE__ - friend void SdaiArea_measure_with_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiArea_measure_with_unit ( ); - SdaiArea_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiArea_measure_with_unit (SdaiArea_measure_with_unit& e ); - ~SdaiArea_measure_with_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 21 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiArea_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiArea_measure_with_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiArea_measure_with_unit () { return (SCLP23(Application_instance_ptr)) new SdaiArea_measure_with_unit ; } -#else -inline SdaiArea_measure_with_unit * -create_SdaiArea_measure_with_unit () { return new SdaiArea_measure_with_unit ; } -#endif - -///////// END_ENTITY area_measure_with_unit - - -///////// ENTITY effectivity - -extern AttrDescriptor *a_37id; - -class SdaiEffectivity : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiEffectivity_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - public: - - SdaiEffectivity ( ); - SdaiEffectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiEffectivity (SdaiEffectivity& e ); - ~SdaiEffectivity (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 22 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiEffectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiEffectivity(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiEffectivity () { return (SCLP23(Application_instance_ptr)) new SdaiEffectivity ; } -#else -inline SdaiEffectivity * -create_SdaiEffectivity () { return new SdaiEffectivity ; } -#endif - -///////// END_ENTITY effectivity - - -///////// ENTITY serial_numbered_effectivity - -extern AttrDescriptor *a_38effectivity_start_id; -extern AttrDescriptor *a_39effectivity_end_id; - -class SdaiSerial_numbered_effectivity : public SdaiEffectivity { - -#ifdef __OSTORE__ - friend void SdaiSerial_numbered_effectivity_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _effectivity_start_id ; - SCLP23(String) _effectivity_end_id ; // OPTIONAL - public: - - SdaiSerial_numbered_effectivity ( ); - SdaiSerial_numbered_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSerial_numbered_effectivity (SdaiSerial_numbered_effectivity& e ); - ~SdaiSerial_numbered_effectivity (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 23 ; } - const SdaiIdentifier effectivity_start_id_() const; - void effectivity_start_id_ (const SdaiIdentifier x); - - const SdaiIdentifier effectivity_end_id_() const; - void effectivity_end_id_ (const SdaiIdentifier x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSerial_numbered_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSerial_numbered_effectivity(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSerial_numbered_effectivity () { return (SCLP23(Application_instance_ptr)) new SdaiSerial_numbered_effectivity ; } -#else -inline SdaiSerial_numbered_effectivity * -create_SdaiSerial_numbered_effectivity () { return new SdaiSerial_numbered_effectivity ; } -#endif - -///////// END_ENTITY serial_numbered_effectivity - - -///////// ENTITY surface - - -class SdaiSurface : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiSurface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiSurface ( ); - SdaiSurface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSurface (SdaiSurface& e ); - ~SdaiSurface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 24 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSurface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSurface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSurface () { return (SCLP23(Application_instance_ptr)) new SdaiSurface ; } -#else -inline SdaiSurface * -create_SdaiSurface () { return new SdaiSurface ; } -#endif - -///////// END_ENTITY surface - - -///////// ENTITY offset_surface - -extern AttrDescriptor *a_40basis_surface; -extern AttrDescriptor *a_41distance; -extern AttrDescriptor *a_42self_intersect; - -class SdaiOffset_surface : public SdaiSurface { - -#ifdef __OSTORE__ - friend void SdaiOffset_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_surface ; - SCLP23(Real) _distance ; - SCLP23(LOGICAL) _self_intersect ; - public: - - SdaiOffset_surface ( ); - SdaiOffset_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOffset_surface (SdaiOffset_surface& e ); - ~SdaiOffset_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 25 ; } - const SdaiSurface_ptr basis_surface_() const; - void basis_surface_ (const SdaiSurface_ptr x); - - const SdaiLength_measure distance_() const; - void distance_ (const SdaiLength_measure x); - - const SCLLOG(Logical) self_intersect_() const; - void self_intersect_ (const SCLLOG(Logical) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOffset_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOffset_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOffset_surface () { return (SCLP23(Application_instance_ptr)) new SdaiOffset_surface ; } -#else -inline SdaiOffset_surface * -create_SdaiOffset_surface () { return new SdaiOffset_surface ; } -#endif - -///////// END_ENTITY offset_surface - - -///////// ENTITY placement - -extern AttrDescriptor *a_43location; - -class SdaiPlacement : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiPlacement_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _location ; - public: - - SdaiPlacement ( ); - SdaiPlacement (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPlacement (SdaiPlacement& e ); - ~SdaiPlacement (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 26 ; } - const SdaiCartesian_point_ptr location_() const; - void location_ (const SdaiCartesian_point_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPlacement_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPlacement(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPlacement () { return (SCLP23(Application_instance_ptr)) new SdaiPlacement ; } -#else -inline SdaiPlacement * -create_SdaiPlacement () { return new SdaiPlacement ; } -#endif - -///////// END_ENTITY placement - - -///////// ENTITY axis2_placement_2d - -extern AttrDescriptor *a_44ref_direction; -extern Derived_attribute *a_45Dp; - -class SdaiAxis2_placement_2d : public SdaiPlacement { - -#ifdef __OSTORE__ - friend void SdaiAxis2_placement_2d_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _ref_direction ; // OPTIONAL - public: - - SdaiAxis2_placement_2d ( ); - SdaiAxis2_placement_2d (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAxis2_placement_2d (SdaiAxis2_placement_2d& e ); - ~SdaiAxis2_placement_2d (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 27 ; } - const SdaiDirection_ptr ref_direction_() const; - void ref_direction_ (const SdaiDirection_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAxis2_placement_2d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAxis2_placement_2d(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAxis2_placement_2d () { return (SCLP23(Application_instance_ptr)) new SdaiAxis2_placement_2d ; } -#else -inline SdaiAxis2_placement_2d * -create_SdaiAxis2_placement_2d () { return new SdaiAxis2_placement_2d ; } -#endif - -///////// END_ENTITY axis2_placement_2d - - -///////// ENTITY product_category - -extern AttrDescriptor *a_46name; -extern AttrDescriptor *a_47description; - -class SdaiProduct_category : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProduct_category_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; // OPTIONAL - public: - - SdaiProduct_category ( ); - SdaiProduct_category (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_category (SdaiProduct_category& e ); - ~SdaiProduct_category (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 28 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_category_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_category(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_category () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_category ; } -#else -inline SdaiProduct_category * -create_SdaiProduct_category () { return new SdaiProduct_category ; } -#endif - -///////// END_ENTITY product_category - - -///////// ENTITY product_related_product_category - -extern AttrDescriptor *a_48products; - -class SdaiProduct_related_product_category : public SdaiProduct_category { - -#ifdef __OSTORE__ - friend void SdaiProduct_related_product_category_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _products ; // of product - - public: - - SdaiProduct_related_product_category ( ); - SdaiProduct_related_product_category (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_related_product_category (SdaiProduct_related_product_category& e ); - ~SdaiProduct_related_product_category (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 29 ; } - const EntityAggregate_ptr products_() const; - void products_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_related_product_category_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_related_product_category(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_related_product_category () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_related_product_category ; } -#else -inline SdaiProduct_related_product_category * -create_SdaiProduct_related_product_category () { return new SdaiProduct_related_product_category ; } -#endif - -///////// END_ENTITY product_related_product_category - - -///////// ENTITY curve - - -class SdaiCurve : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiCurve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiCurve ( ); - SdaiCurve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCurve (SdaiCurve& e ); - ~SdaiCurve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 30 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCurve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCurve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCurve () { return (SCLP23(Application_instance_ptr)) new SdaiCurve ; } -#else -inline SdaiCurve * -create_SdaiCurve () { return new SdaiCurve ; } -#endif - -///////// END_ENTITY curve - - -///////// ENTITY conic - -extern AttrDescriptor *a_49position; - -class SdaiConic : public SdaiCurve { - -#ifdef __OSTORE__ - friend void SdaiConic_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiAxis2_placement _position ; - public: - - SdaiConic ( ); - SdaiConic (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiConic (SdaiConic& e ); - ~SdaiConic (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 31 ; } - const SdaiAxis2_placement_ptr position_() const; - void position_ (const SdaiAxis2_placement_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiConic_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiConic(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiConic () { return (SCLP23(Application_instance_ptr)) new SdaiConic ; } -#else -inline SdaiConic * -create_SdaiConic () { return new SdaiConic ; } -#endif - -///////// END_ENTITY conic - - -///////// ENTITY hyperbola - -extern AttrDescriptor *a_50semi_axis; -extern AttrDescriptor *a_51semi_imag_axis; - -class SdaiHyperbola : public SdaiConic { - -#ifdef __OSTORE__ - friend void SdaiHyperbola_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _semi_axis ; - SCLP23(Real) _semi_imag_axis ; - public: - - SdaiHyperbola ( ); - SdaiHyperbola (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiHyperbola (SdaiHyperbola& e ); - ~SdaiHyperbola (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 32 ; } - const SdaiPositive_length_measure semi_axis_() const; - void semi_axis_ (const SdaiPositive_length_measure x); - - const SdaiPositive_length_measure semi_imag_axis_() const; - void semi_imag_axis_ (const SdaiPositive_length_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiHyperbola_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiHyperbola(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiHyperbola () { return (SCLP23(Application_instance_ptr)) new SdaiHyperbola ; } -#else -inline SdaiHyperbola * -create_SdaiHyperbola () { return new SdaiHyperbola ; } -#endif - -///////// END_ENTITY hyperbola - - -///////// ENTITY address - -extern AttrDescriptor *a_52internal_location; -extern AttrDescriptor *a_53street_number; -extern AttrDescriptor *a_54street; -extern AttrDescriptor *a_55postal_box; -extern AttrDescriptor *a_56town; -extern AttrDescriptor *a_57region; -extern AttrDescriptor *a_58postal_code; -extern AttrDescriptor *a_59country; -extern AttrDescriptor *a_60facsimile_number; -extern AttrDescriptor *a_61telephone_number; -extern AttrDescriptor *a_62electronic_mail_address; -extern AttrDescriptor *a_63telex_number; - -class SdaiAddress : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAddress_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _internal_location ; // OPTIONAL - SCLP23(String) _street_number ; // OPTIONAL - SCLP23(String) _street ; // OPTIONAL - SCLP23(String) _postal_box ; // OPTIONAL - SCLP23(String) _town ; // OPTIONAL - SCLP23(String) _region ; // OPTIONAL - SCLP23(String) _postal_code ; // OPTIONAL - SCLP23(String) _country ; // OPTIONAL - SCLP23(String) _facsimile_number ; // OPTIONAL - SCLP23(String) _telephone_number ; // OPTIONAL - SCLP23(String) _electronic_mail_address ; // OPTIONAL - SCLP23(String) _telex_number ; // OPTIONAL - public: - - SdaiAddress ( ); - SdaiAddress (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAddress (SdaiAddress& e ); - ~SdaiAddress (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 33 ; } - const SdaiLabel internal_location_() const; - void internal_location_ (const SdaiLabel x); - - const SdaiLabel street_number_() const; - void street_number_ (const SdaiLabel x); - - const SdaiLabel street_() const; - void street_ (const SdaiLabel x); - - const SdaiLabel postal_box_() const; - void postal_box_ (const SdaiLabel x); - - const SdaiLabel town_() const; - void town_ (const SdaiLabel x); - - const SdaiLabel region_() const; - void region_ (const SdaiLabel x); - - const SdaiLabel postal_code_() const; - void postal_code_ (const SdaiLabel x); - - const SdaiLabel country_() const; - void country_ (const SdaiLabel x); - - const SdaiLabel facsimile_number_() const; - void facsimile_number_ (const SdaiLabel x); - - const SdaiLabel telephone_number_() const; - void telephone_number_ (const SdaiLabel x); - - const SdaiLabel electronic_mail_address_() const; - void electronic_mail_address_ (const SdaiLabel x); - - const SdaiLabel telex_number_() const; - void telex_number_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAddress_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAddress(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAddress () { return (SCLP23(Application_instance_ptr)) new SdaiAddress ; } -#else -inline SdaiAddress * -create_SdaiAddress () { return new SdaiAddress ; } -#endif - -///////// END_ENTITY address - - -///////// ENTITY organizational_address - -extern AttrDescriptor *a_64organizations; -extern AttrDescriptor *a_65description; - -class SdaiOrganizational_address : public SdaiAddress { - -#ifdef __OSTORE__ - friend void SdaiOrganizational_address_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _organizations ; // of organization - - SCLP23(String) _description ; - public: - - SdaiOrganizational_address ( ); - SdaiOrganizational_address (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOrganizational_address (SdaiOrganizational_address& e ); - ~SdaiOrganizational_address (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 34 ; } - const EntityAggregate_ptr organizations_() const; - void organizations_ (const EntityAggregate_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOrganizational_address_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOrganizational_address(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOrganizational_address () { return (SCLP23(Application_instance_ptr)) new SdaiOrganizational_address ; } -#else -inline SdaiOrganizational_address * -create_SdaiOrganizational_address () { return new SdaiOrganizational_address ; } -#endif - -///////// END_ENTITY organizational_address - - -///////// ENTITY bounded_surface - - -class SdaiBounded_surface : public SdaiSurface { - -#ifdef __OSTORE__ - friend void SdaiBounded_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiBounded_surface ( ); - SdaiBounded_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiBounded_surface (SdaiBounded_surface& e ); - ~SdaiBounded_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 35 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiBounded_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiBounded_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiBounded_surface () { return (SCLP23(Application_instance_ptr)) new SdaiBounded_surface ; } -#else -inline SdaiBounded_surface * -create_SdaiBounded_surface () { return new SdaiBounded_surface ; } -#endif - -///////// END_ENTITY bounded_surface - - -///////// ENTITY b_spline_surface - -extern AttrDescriptor *a_66u_degree; -extern AttrDescriptor *a_67v_degree; -extern AttrDescriptor *a_68control_points_list; -extern AttrDescriptor *a_69surface_form; -extern AttrDescriptor *a_70u_closed; -extern AttrDescriptor *a_71v_closed; -extern AttrDescriptor *a_72self_intersect; -extern Derived_attribute *a_73Du_upper; -extern Derived_attribute *a_74Dv_upper; -extern Derived_attribute *a_75Dcontrol_points; - -class SdaiB_spline_surface : public SdaiBounded_surface { - -#ifdef __OSTORE__ - friend void SdaiB_spline_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _u_degree ; - SCLP23(Integer) _v_degree ; - GenericAggregate _control_points_list ; // of cartesian_point - - SdaiB_spline_surface_form_var _surface_form ; - SCLP23(LOGICAL) _u_closed ; - SCLP23(LOGICAL) _v_closed ; - SCLP23(LOGICAL) _self_intersect ; - public: - - SdaiB_spline_surface ( ); - SdaiB_spline_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiB_spline_surface (SdaiB_spline_surface& e ); - ~SdaiB_spline_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 36 ; } - const SCLP23(Integer) u_degree_() const; - void u_degree_ (const SCLP23(Integer) x); - - const SCLP23(Integer) v_degree_() const; - void v_degree_ (const SCLP23(Integer) x); - - const GenericAggregate_ptr control_points_list_() const; - void control_points_list_ (const GenericAggregate_ptr x); - - const SdaiB_spline_surface_form_var surface_form_() const; - void surface_form_ (const SdaiB_spline_surface_form_var x); - - const SCLLOG(Logical) u_closed_() const; - void u_closed_ (const SCLLOG(Logical) x); - - const SCLLOG(Logical) v_closed_() const; - void v_closed_ (const SCLLOG(Logical) x); - - const SCLLOG(Logical) self_intersect_() const; - void self_intersect_ (const SCLLOG(Logical) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiB_spline_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiB_spline_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiB_spline_surface () { return (SCLP23(Application_instance_ptr)) new SdaiB_spline_surface ; } -#else -inline SdaiB_spline_surface * -create_SdaiB_spline_surface () { return new SdaiB_spline_surface ; } -#endif - -///////// END_ENTITY b_spline_surface - - -///////// ENTITY uniform_surface - - -class SdaiUniform_surface : public SdaiB_spline_surface { - -#ifdef __OSTORE__ - friend void SdaiUniform_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiUniform_surface ( ); - SdaiUniform_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiUniform_surface (SdaiUniform_surface& e ); - ~SdaiUniform_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 37 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiUniform_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiUniform_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiUniform_surface () { return (SCLP23(Application_instance_ptr)) new SdaiUniform_surface ; } -#else -inline SdaiUniform_surface * -create_SdaiUniform_surface () { return new SdaiUniform_surface ; } -#endif - -///////// END_ENTITY uniform_surface - - -///////// ENTITY geometrically_bounded_surface_shape_representation - - -class SdaiGeometrically_bounded_surface_shape_representation : public SdaiShape_representation { - -#ifdef __OSTORE__ - friend void SdaiGeometrically_bounded_surface_shape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiGeometrically_bounded_surface_shape_representation ( ); - SdaiGeometrically_bounded_surface_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiGeometrically_bounded_surface_shape_representation (SdaiGeometrically_bounded_surface_shape_representation& e ); - ~SdaiGeometrically_bounded_surface_shape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 38 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiGeometrically_bounded_surface_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiGeometrically_bounded_surface_shape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiGeometrically_bounded_surface_shape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiGeometrically_bounded_surface_shape_representation ; } -#else -inline SdaiGeometrically_bounded_surface_shape_representation * -create_SdaiGeometrically_bounded_surface_shape_representation () { return new SdaiGeometrically_bounded_surface_shape_representation ; } -#endif - -///////// END_ENTITY geometrically_bounded_surface_shape_representation - - -///////// ENTITY axis1_placement - -extern AttrDescriptor *a_76axis; -extern Derived_attribute *a_77Dz; - -class SdaiAxis1_placement : public SdaiPlacement { - -#ifdef __OSTORE__ - friend void SdaiAxis1_placement_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _axis ; // OPTIONAL - public: - - SdaiAxis1_placement ( ); - SdaiAxis1_placement (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAxis1_placement (SdaiAxis1_placement& e ); - ~SdaiAxis1_placement (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 39 ; } - const SdaiDirection_ptr axis_() const; - void axis_ (const SdaiDirection_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAxis1_placement_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAxis1_placement(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAxis1_placement () { return (SCLP23(Application_instance_ptr)) new SdaiAxis1_placement ; } -#else -inline SdaiAxis1_placement * -create_SdaiAxis1_placement () { return new SdaiAxis1_placement ; } -#endif - -///////// END_ENTITY axis1_placement - - -///////// ENTITY bounded_curve - - -class SdaiBounded_curve : public SdaiCurve { - -#ifdef __OSTORE__ - friend void SdaiBounded_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiBounded_curve ( ); - SdaiBounded_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiBounded_curve (SdaiBounded_curve& e ); - ~SdaiBounded_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 40 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiBounded_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiBounded_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiBounded_curve () { return (SCLP23(Application_instance_ptr)) new SdaiBounded_curve ; } -#else -inline SdaiBounded_curve * -create_SdaiBounded_curve () { return new SdaiBounded_curve ; } -#endif - -///////// END_ENTITY bounded_curve - - -///////// ENTITY b_spline_curve - -extern AttrDescriptor *a_78degree; -extern AttrDescriptor *a_79control_points_list; -extern AttrDescriptor *a_80curve_form; -extern AttrDescriptor *a_81closed_curve; -extern AttrDescriptor *a_82self_intersect; -extern Derived_attribute *a_83Dupper_index_on_control_points; -extern Derived_attribute *a_84Dcontrol_points; - -class SdaiB_spline_curve : public SdaiBounded_curve { - -#ifdef __OSTORE__ - friend void SdaiB_spline_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _degree ; - EntityAggregate _control_points_list ; // of cartesian_point - - SdaiB_spline_curve_form_var _curve_form ; - SCLP23(LOGICAL) _closed_curve ; - SCLP23(LOGICAL) _self_intersect ; - public: - - SdaiB_spline_curve ( ); - SdaiB_spline_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiB_spline_curve (SdaiB_spline_curve& e ); - ~SdaiB_spline_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 41 ; } - const SCLP23(Integer) degree_() const; - void degree_ (const SCLP23(Integer) x); - - const EntityAggregate_ptr control_points_list_() const; - void control_points_list_ (const EntityAggregate_ptr x); - - const SdaiB_spline_curve_form_var curve_form_() const; - void curve_form_ (const SdaiB_spline_curve_form_var x); - - const SCLLOG(Logical) closed_curve_() const; - void closed_curve_ (const SCLLOG(Logical) x); - - const SCLLOG(Logical) self_intersect_() const; - void self_intersect_ (const SCLLOG(Logical) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiB_spline_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiB_spline_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiB_spline_curve () { return (SCLP23(Application_instance_ptr)) new SdaiB_spline_curve ; } -#else -inline SdaiB_spline_curve * -create_SdaiB_spline_curve () { return new SdaiB_spline_curve ; } -#endif - -///////// END_ENTITY b_spline_curve - - -///////// ENTITY rational_b_spline_curve - -extern AttrDescriptor *a_85weights_data; -extern Derived_attribute *a_86Dweights; - -class SdaiRational_b_spline_curve : public SdaiB_spline_curve { - -#ifdef __OSTORE__ - friend void SdaiRational_b_spline_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - RealAggregate _weights_data ; - public: - - SdaiRational_b_spline_curve ( ); - SdaiRational_b_spline_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRational_b_spline_curve (SdaiRational_b_spline_curve& e ); - ~SdaiRational_b_spline_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 42 ; } - const RealAggregate_ptr weights_data_() const; - void weights_data_ (const RealAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRational_b_spline_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRational_b_spline_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRational_b_spline_curve () { return (SCLP23(Application_instance_ptr)) new SdaiRational_b_spline_curve ; } -#else -inline SdaiRational_b_spline_curve * -create_SdaiRational_b_spline_curve () { return new SdaiRational_b_spline_curve ; } -#endif - -///////// END_ENTITY rational_b_spline_curve - - -///////// ENTITY action_request_assignment - -extern AttrDescriptor *a_87assigned_action_request; - -class SdaiAction_request_assignment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAction_request_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_action_request ; - public: - - SdaiAction_request_assignment ( ); - SdaiAction_request_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAction_request_assignment (SdaiAction_request_assignment& e ); - ~SdaiAction_request_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 43 ; } - const SdaiVersioned_action_request_ptr assigned_action_request_() const; - void assigned_action_request_ (const SdaiVersioned_action_request_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAction_request_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAction_request_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAction_request_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiAction_request_assignment ; } -#else -inline SdaiAction_request_assignment * -create_SdaiAction_request_assignment () { return new SdaiAction_request_assignment ; } -#endif - -///////// END_ENTITY action_request_assignment - - -///////// ENTITY topological_representation_item - - -class SdaiTopological_representation_item : public SdaiRepresentation_item { - -#ifdef __OSTORE__ - friend void SdaiTopological_representation_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiTopological_representation_item ( ); - SdaiTopological_representation_item (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiTopological_representation_item (SdaiTopological_representation_item& e ); - ~SdaiTopological_representation_item (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 44 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiTopological_representation_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiTopological_representation_item(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiTopological_representation_item () { return (SCLP23(Application_instance_ptr)) new SdaiTopological_representation_item ; } -#else -inline SdaiTopological_representation_item * -create_SdaiTopological_representation_item () { return new SdaiTopological_representation_item ; } -#endif - -///////// END_ENTITY topological_representation_item - - -///////// ENTITY face_bound - -extern AttrDescriptor *a_88bound; -extern AttrDescriptor *a_89orientation; - -class SdaiFace_bound : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiFace_bound_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _bound ; - SCLP23(BOOL) _orientation ; - public: - - SdaiFace_bound ( ); - SdaiFace_bound (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiFace_bound (SdaiFace_bound& e ); - ~SdaiFace_bound (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 45 ; } - const SdaiLoop_ptr bound_() const; - void bound_ (const SdaiLoop_ptr x); - - const SCLBOOL(Bool) orientation_() const; - void orientation_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiFace_bound_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiFace_bound(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiFace_bound () { return (SCLP23(Application_instance_ptr)) new SdaiFace_bound ; } -#else -inline SdaiFace_bound * -create_SdaiFace_bound () { return new SdaiFace_bound ; } -#endif - -///////// END_ENTITY face_bound - - -///////// ENTITY length_measure_with_unit - - -class SdaiLength_measure_with_unit : public SdaiMeasure_with_unit { - -#ifdef __OSTORE__ - friend void SdaiLength_measure_with_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiLength_measure_with_unit ( ); - SdaiLength_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiLength_measure_with_unit (SdaiLength_measure_with_unit& e ); - ~SdaiLength_measure_with_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 46 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiLength_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiLength_measure_with_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiLength_measure_with_unit () { return (SCLP23(Application_instance_ptr)) new SdaiLength_measure_with_unit ; } -#else -inline SdaiLength_measure_with_unit * -create_SdaiLength_measure_with_unit () { return new SdaiLength_measure_with_unit ; } -#endif - -///////// END_ENTITY length_measure_with_unit - - -///////// ENTITY dated_effectivity - -extern AttrDescriptor *a_90effectivity_start_date; -extern AttrDescriptor *a_91effectivity_end_date; - -class SdaiDated_effectivity : public SdaiEffectivity { - -#ifdef __OSTORE__ - friend void SdaiDated_effectivity_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _effectivity_start_date ; - SCLP23(Application_instance_ptr) _effectivity_end_date ; // OPTIONAL - public: - - SdaiDated_effectivity ( ); - SdaiDated_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDated_effectivity (SdaiDated_effectivity& e ); - ~SdaiDated_effectivity (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 47 ; } - const SdaiDate_and_time_ptr effectivity_start_date_() const; - void effectivity_start_date_ (const SdaiDate_and_time_ptr x); - - const SdaiDate_and_time_ptr effectivity_end_date_() const; - void effectivity_end_date_ (const SdaiDate_and_time_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDated_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDated_effectivity(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDated_effectivity () { return (SCLP23(Application_instance_ptr)) new SdaiDated_effectivity ; } -#else -inline SdaiDated_effectivity * -create_SdaiDated_effectivity () { return new SdaiDated_effectivity ; } -#endif - -///////// END_ENTITY dated_effectivity - - -///////// ENTITY direction - -extern AttrDescriptor *a_92direction_ratios; - -class SdaiDirection : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiDirection_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - RealAggregate _direction_ratios ; - public: - - SdaiDirection ( ); - SdaiDirection (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDirection (SdaiDirection& e ); - ~SdaiDirection (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 48 ; } - const RealAggregate_ptr direction_ratios_() const; - void direction_ratios_ (const RealAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDirection_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDirection(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDirection () { return (SCLP23(Application_instance_ptr)) new SdaiDirection ; } -#else -inline SdaiDirection * -create_SdaiDirection () { return new SdaiDirection ; } -#endif - -///////// END_ENTITY direction - - -///////// ENTITY next_assembly_usage_occurrence - - -class SdaiNext_assembly_usage_occurrence : public SdaiAssembly_component_usage { - -#ifdef __OSTORE__ - friend void SdaiNext_assembly_usage_occurrence_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiNext_assembly_usage_occurrence ( ); - SdaiNext_assembly_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiNext_assembly_usage_occurrence (SdaiNext_assembly_usage_occurrence& e ); - ~SdaiNext_assembly_usage_occurrence (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 49 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiNext_assembly_usage_occurrence_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiNext_assembly_usage_occurrence(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiNext_assembly_usage_occurrence () { return (SCLP23(Application_instance_ptr)) new SdaiNext_assembly_usage_occurrence ; } -#else -inline SdaiNext_assembly_usage_occurrence * -create_SdaiNext_assembly_usage_occurrence () { return new SdaiNext_assembly_usage_occurrence ; } -#endif - -///////// END_ENTITY next_assembly_usage_occurrence - - -///////// ENTITY edge - -extern AttrDescriptor *a_93edge_start; -extern AttrDescriptor *a_94edge_end; - -class SdaiEdge : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiEdge_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _edge_start ; - SCLP23(Application_instance_ptr) _edge_end ; - public: - - SdaiEdge ( ); - SdaiEdge (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiEdge (SdaiEdge& e ); - ~SdaiEdge (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 50 ; } - const SdaiVertex_ptr edge_start_() const; - void edge_start_ (const SdaiVertex_ptr x); - - const SdaiVertex_ptr edge_end_() const; - void edge_end_ (const SdaiVertex_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiEdge_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiEdge(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiEdge () { return (SCLP23(Application_instance_ptr)) new SdaiEdge ; } -#else -inline SdaiEdge * -create_SdaiEdge () { return new SdaiEdge ; } -#endif - -///////// END_ENTITY edge - - -///////// ENTITY oriented_edge - -extern AttrDescriptor *a_95edge_element; -extern AttrDescriptor *a_96orientation; -extern Derived_attribute *a_97Dedge_edge_start; -extern Derived_attribute *a_98Dedge_edge_end; - -class SdaiOriented_edge : public SdaiEdge { - -#ifdef __OSTORE__ - friend void SdaiOriented_edge_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _edge_element ; - SCLP23(BOOL) _orientation ; - public: - - SdaiOriented_edge ( ); - SdaiOriented_edge (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOriented_edge (SdaiOriented_edge& e ); - ~SdaiOriented_edge (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 51 ; } - const SdaiEdge_ptr edge_element_() const; - void edge_element_ (const SdaiEdge_ptr x); - - const SCLBOOL(Bool) orientation_() const; - void orientation_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOriented_edge_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOriented_edge(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOriented_edge () { return (SCLP23(Application_instance_ptr)) new SdaiOriented_edge ; } -#else -inline SdaiOriented_edge * -create_SdaiOriented_edge () { return new SdaiOriented_edge ; } -#endif - -///////// END_ENTITY oriented_edge - - -///////// ENTITY person - -extern AttrDescriptor *a_99id; -extern AttrDescriptor *a_100last_name; -extern AttrDescriptor *a_101first_name; -extern AttrDescriptor *a_102middle_names; -extern AttrDescriptor *a_103prefix_titles; -extern AttrDescriptor *a_104suffix_titles; - -class SdaiPerson : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiPerson_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _last_name ; // OPTIONAL - SCLP23(String) _first_name ; // OPTIONAL - StringAggregate _middle_names ; // OPTIONAL // of label - - StringAggregate _prefix_titles ; // OPTIONAL // of label - - StringAggregate _suffix_titles ; // OPTIONAL // of label - - public: - - SdaiPerson ( ); - SdaiPerson (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPerson (SdaiPerson& e ); - ~SdaiPerson (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 52 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiLabel last_name_() const; - void last_name_ (const SdaiLabel x); - - const SdaiLabel first_name_() const; - void first_name_ (const SdaiLabel x); - - const StringAggregate_ptr middle_names_() const; - void middle_names_ (const StringAggregate_ptr x); - - const StringAggregate_ptr prefix_titles_() const; - void prefix_titles_ (const StringAggregate_ptr x); - - const StringAggregate_ptr suffix_titles_() const; - void suffix_titles_ (const StringAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPerson_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPerson(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPerson () { return (SCLP23(Application_instance_ptr)) new SdaiPerson ; } -#else -inline SdaiPerson * -create_SdaiPerson () { return new SdaiPerson ; } -#endif - -///////// END_ENTITY person - - -///////// ENTITY document - -extern AttrDescriptor *a_105id; -extern AttrDescriptor *a_106name; -extern AttrDescriptor *a_107description; -extern AttrDescriptor *a_108kind; - -class SdaiDocument : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDocument_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _kind ; - public: - - SdaiDocument ( ); - SdaiDocument (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDocument (SdaiDocument& e ); - ~SdaiDocument (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 53 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiDocument_type_ptr kind_() const; - void kind_ (const SdaiDocument_type_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDocument_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDocument(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDocument () { return (SCLP23(Application_instance_ptr)) new SdaiDocument ; } -#else -inline SdaiDocument * -create_SdaiDocument () { return new SdaiDocument ; } -#endif - -///////// END_ENTITY document - - -///////// ENTITY document_with_class - -extern AttrDescriptor *a_109class; - -class SdaiDocument_with_class : public SdaiDocument { - -#ifdef __OSTORE__ - friend void SdaiDocument_with_class_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _class ; - public: - - SdaiDocument_with_class ( ); - SdaiDocument_with_class (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDocument_with_class (SdaiDocument_with_class& e ); - ~SdaiDocument_with_class (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 54 ; } - const SdaiIdentifier class_() const; - void class_ (const SdaiIdentifier x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDocument_with_class_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDocument_with_class(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDocument_with_class () { return (SCLP23(Application_instance_ptr)) new SdaiDocument_with_class ; } -#else -inline SdaiDocument_with_class * -create_SdaiDocument_with_class () { return new SdaiDocument_with_class ; } -#endif - -///////// END_ENTITY document_with_class - - -///////// ENTITY conversion_based_unit - -extern AttrDescriptor *a_110name; -extern AttrDescriptor *a_111conversion_factor; - -class SdaiConversion_based_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiConversion_based_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(Application_instance_ptr) _conversion_factor ; - public: - - SdaiConversion_based_unit ( ); - SdaiConversion_based_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiConversion_based_unit (SdaiConversion_based_unit& e ); - ~SdaiConversion_based_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 55 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiMeasure_with_unit_ptr conversion_factor_() const; - void conversion_factor_ (const SdaiMeasure_with_unit_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiConversion_based_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiConversion_based_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiConversion_based_unit () { return (SCLP23(Application_instance_ptr)) new SdaiConversion_based_unit ; } -#else -inline SdaiConversion_based_unit * -create_SdaiConversion_based_unit () { return new SdaiConversion_based_unit ; } -#endif - -///////// END_ENTITY conversion_based_unit - - -///////// ENTITY point - - -class SdaiPoint : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiPoint_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiPoint ( ); - SdaiPoint (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPoint (SdaiPoint& e ); - ~SdaiPoint (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 56 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPoint_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPoint(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPoint () { return (SCLP23(Application_instance_ptr)) new SdaiPoint ; } -#else -inline SdaiPoint * -create_SdaiPoint () { return new SdaiPoint ; } -#endif - -///////// END_ENTITY point - - -///////// ENTITY point_on_surface - -extern AttrDescriptor *a_112basis_surface; -extern AttrDescriptor *a_113point_parameter_u; -extern AttrDescriptor *a_114point_parameter_v; - -class SdaiPoint_on_surface : public SdaiPoint { - -#ifdef __OSTORE__ - friend void SdaiPoint_on_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_surface ; - SCLP23(Real) _point_parameter_u ; - SCLP23(Real) _point_parameter_v ; - public: - - SdaiPoint_on_surface ( ); - SdaiPoint_on_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPoint_on_surface (SdaiPoint_on_surface& e ); - ~SdaiPoint_on_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 57 ; } - const SdaiSurface_ptr basis_surface_() const; - void basis_surface_ (const SdaiSurface_ptr x); - - const SdaiParameter_value point_parameter_u_() const; - void point_parameter_u_ (const SdaiParameter_value x); - - const SdaiParameter_value point_parameter_v_() const; - void point_parameter_v_ (const SdaiParameter_value x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPoint_on_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPoint_on_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPoint_on_surface () { return (SCLP23(Application_instance_ptr)) new SdaiPoint_on_surface ; } -#else -inline SdaiPoint_on_surface * -create_SdaiPoint_on_surface () { return new SdaiPoint_on_surface ; } -#endif - -///////// END_ENTITY point_on_surface - - -///////// ENTITY product_definition_formation - -extern AttrDescriptor *a_115id; -extern AttrDescriptor *a_116description; -extern AttrDescriptor *a_117of_product; - -class SdaiProduct_definition_formation : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_formation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _of_product ; - public: - - SdaiProduct_definition_formation ( ); - SdaiProduct_definition_formation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition_formation (SdaiProduct_definition_formation& e ); - ~SdaiProduct_definition_formation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 58 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiProduct_ptr of_product_() const; - void of_product_ (const SdaiProduct_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_formation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_formation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_formation () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_formation ; } -#else -inline SdaiProduct_definition_formation * -create_SdaiProduct_definition_formation () { return new SdaiProduct_definition_formation ; } -#endif - -///////// END_ENTITY product_definition_formation - - -///////// ENTITY person_and_organization_assignment - -extern AttrDescriptor *a_118assigned_person_and_organization; -extern AttrDescriptor *a_119role; - -class SdaiPerson_and_organization_assignment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiPerson_and_organization_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_person_and_organization ; - SCLP23(Application_instance_ptr) _role ; - public: - - SdaiPerson_and_organization_assignment ( ); - SdaiPerson_and_organization_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPerson_and_organization_assignment (SdaiPerson_and_organization_assignment& e ); - ~SdaiPerson_and_organization_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 59 ; } - const SdaiPerson_and_organization_ptr assigned_person_and_organization_() const; - void assigned_person_and_organization_ (const SdaiPerson_and_organization_ptr x); - - const SdaiPerson_and_organization_role_ptr role_() const; - void role_ (const SdaiPerson_and_organization_role_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPerson_and_organization_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization_assignment ; } -#else -inline SdaiPerson_and_organization_assignment * -create_SdaiPerson_and_organization_assignment () { return new SdaiPerson_and_organization_assignment ; } -#endif - -///////// END_ENTITY person_and_organization_assignment - - -///////// ENTITY cc_design_person_and_organization_assignment - -extern AttrDescriptor *a_120items; - -class SdaiCc_design_person_and_organization_assignment : public SdaiPerson_and_organization_assignment { - -#ifdef __OSTORE__ - friend void SdaiCc_design_person_and_organization_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiPerson_organization_items _items ; // of person_organization_item - - public: - - SdaiCc_design_person_and_organization_assignment ( ); - SdaiCc_design_person_and_organization_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCc_design_person_and_organization_assignment (SdaiCc_design_person_and_organization_assignment& e ); - ~SdaiCc_design_person_and_organization_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 60 ; } - const SdaiPerson_organization_items_ptr items_() const; - void items_ (const SdaiPerson_organization_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCc_design_person_and_organization_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCc_design_person_and_organization_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCc_design_person_and_organization_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiCc_design_person_and_organization_assignment ; } -#else -inline SdaiCc_design_person_and_organization_assignment * -create_SdaiCc_design_person_and_organization_assignment () { return new SdaiCc_design_person_and_organization_assignment ; } -#endif - -///////// END_ENTITY cc_design_person_and_organization_assignment - - -///////// ENTITY offset_curve_3d - -extern AttrDescriptor *a_121basis_curve; -extern AttrDescriptor *a_122distance; -extern AttrDescriptor *a_123self_intersect; -extern AttrDescriptor *a_124ref_direction; - -class SdaiOffset_curve_3d : public SdaiCurve { - -#ifdef __OSTORE__ - friend void SdaiOffset_curve_3d_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_curve ; - SCLP23(Real) _distance ; - SCLP23(LOGICAL) _self_intersect ; - SCLP23(Application_instance_ptr) _ref_direction ; - public: - - SdaiOffset_curve_3d ( ); - SdaiOffset_curve_3d (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOffset_curve_3d (SdaiOffset_curve_3d& e ); - ~SdaiOffset_curve_3d (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 61 ; } - const SdaiCurve_ptr basis_curve_() const; - void basis_curve_ (const SdaiCurve_ptr x); - - const SdaiLength_measure distance_() const; - void distance_ (const SdaiLength_measure x); - - const SCLLOG(Logical) self_intersect_() const; - void self_intersect_ (const SCLLOG(Logical) x); - - const SdaiDirection_ptr ref_direction_() const; - void ref_direction_ (const SdaiDirection_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOffset_curve_3d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOffset_curve_3d(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOffset_curve_3d () { return (SCLP23(Application_instance_ptr)) new SdaiOffset_curve_3d ; } -#else -inline SdaiOffset_curve_3d * -create_SdaiOffset_curve_3d () { return new SdaiOffset_curve_3d ; } -#endif - -///////// END_ENTITY offset_curve_3d - - -///////// ENTITY approval - -extern AttrDescriptor *a_125status; -extern AttrDescriptor *a_126level; - -class SdaiApproval : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApproval_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _status ; - SCLP23(String) _level ; - public: - - SdaiApproval ( ); - SdaiApproval (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApproval (SdaiApproval& e ); - ~SdaiApproval (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 62 ; } - const SdaiApproval_status_ptr status_() const; - void status_ (const SdaiApproval_status_ptr x); - - const SdaiLabel level_() const; - void level_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApproval_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApproval(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApproval () { return (SCLP23(Application_instance_ptr)) new SdaiApproval ; } -#else -inline SdaiApproval * -create_SdaiApproval () { return new SdaiApproval ; } -#endif - -///////// END_ENTITY approval - - -///////// ENTITY composite_curve - -extern AttrDescriptor *a_127segments; -extern AttrDescriptor *a_128self_intersect; -extern Derived_attribute *a_129Dn_segments; -extern Derived_attribute *a_130Dclosed_curve; - -class SdaiComposite_curve : public SdaiBounded_curve { - -#ifdef __OSTORE__ - friend void SdaiComposite_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _segments ; // of composite_curve_segment - - SCLP23(LOGICAL) _self_intersect ; - public: - - SdaiComposite_curve ( ); - SdaiComposite_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiComposite_curve (SdaiComposite_curve& e ); - ~SdaiComposite_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 63 ; } - const EntityAggregate_ptr segments_() const; - void segments_ (const EntityAggregate_ptr x); - - const SCLLOG(Logical) self_intersect_() const; - void self_intersect_ (const SCLLOG(Logical) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiComposite_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiComposite_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiComposite_curve () { return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve ; } -#else -inline SdaiComposite_curve * -create_SdaiComposite_curve () { return new SdaiComposite_curve ; } -#endif - -///////// END_ENTITY composite_curve - - -///////// ENTITY composite_curve_on_surface - -extern Derived_attribute *a_131Dbasis_surface; - -class SdaiComposite_curve_on_surface : public SdaiComposite_curve { - -#ifdef __OSTORE__ - friend void SdaiComposite_curve_on_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiComposite_curve_on_surface ( ); - SdaiComposite_curve_on_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiComposite_curve_on_surface (SdaiComposite_curve_on_surface& e ); - ~SdaiComposite_curve_on_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 64 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiComposite_curve_on_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiComposite_curve_on_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiComposite_curve_on_surface () { return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve_on_surface ; } -#else -inline SdaiComposite_curve_on_surface * -create_SdaiComposite_curve_on_surface () { return new SdaiComposite_curve_on_surface ; } -#endif - -///////// END_ENTITY composite_curve_on_surface - - -///////// ENTITY boundary_curve - - -class SdaiBoundary_curve : public SdaiComposite_curve_on_surface { - -#ifdef __OSTORE__ - friend void SdaiBoundary_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiBoundary_curve ( ); - SdaiBoundary_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiBoundary_curve (SdaiBoundary_curve& e ); - ~SdaiBoundary_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 65 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiBoundary_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiBoundary_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiBoundary_curve () { return (SCLP23(Application_instance_ptr)) new SdaiBoundary_curve ; } -#else -inline SdaiBoundary_curve * -create_SdaiBoundary_curve () { return new SdaiBoundary_curve ; } -#endif - -///////// END_ENTITY boundary_curve - - -///////// ENTITY representation_context - -extern AttrDescriptor *a_132context_identifier; -extern AttrDescriptor *a_133context_type; -extern Inverse_attribute *a_134Irepresentations_in_context; - -class SdaiRepresentation_context : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiRepresentation_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _context_identifier ; - SCLP23(String) _context_type ; - EntityAggregate _representations_in_context ; // of representation - - public: - - SdaiRepresentation_context ( ); - SdaiRepresentation_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRepresentation_context (SdaiRepresentation_context& e ); - ~SdaiRepresentation_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 66 ; } - const SdaiIdentifier context_identifier_() const; - void context_identifier_ (const SdaiIdentifier x); - - const SdaiText context_type_() const; - void context_type_ (const SdaiText x); - - const EntityAggregate_ptr representations_in_context_() const; - void representations_in_context_ (const EntityAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRepresentation_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRepresentation_context () { return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_context ; } -#else -inline SdaiRepresentation_context * -create_SdaiRepresentation_context () { return new SdaiRepresentation_context ; } -#endif - -///////// END_ENTITY representation_context - - -///////// ENTITY geometric_representation_context - -extern AttrDescriptor *a_135coordinate_space_dimension; - -class SdaiGeometric_representation_context : public SdaiRepresentation_context { - -#ifdef __OSTORE__ - friend void SdaiGeometric_representation_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _coordinate_space_dimension ; - public: - - SdaiGeometric_representation_context ( ); - SdaiGeometric_representation_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiGeometric_representation_context (SdaiGeometric_representation_context& e ); - ~SdaiGeometric_representation_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 67 ; } - const SdaiDimension_count coordinate_space_dimension_() const; - void coordinate_space_dimension_ (const SdaiDimension_count x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiGeometric_representation_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiGeometric_representation_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiGeometric_representation_context () { return (SCLP23(Application_instance_ptr)) new SdaiGeometric_representation_context ; } -#else -inline SdaiGeometric_representation_context * -create_SdaiGeometric_representation_context () { return new SdaiGeometric_representation_context ; } -#endif - -///////// END_ENTITY geometric_representation_context - - -///////// ENTITY action_status - -extern AttrDescriptor *a_136status; -extern AttrDescriptor *a_137assigned_action; - -class SdaiAction_status : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAction_status_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _status ; - SCLP23(Application_instance_ptr) _assigned_action ; - public: - - SdaiAction_status ( ); - SdaiAction_status (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAction_status (SdaiAction_status& e ); - ~SdaiAction_status (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 68 ; } - const SdaiLabel status_() const; - void status_ (const SdaiLabel x); - - const SdaiExecuted_action_ptr assigned_action_() const; - void assigned_action_ (const SdaiExecuted_action_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAction_status_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAction_status(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAction_status () { return (SCLP23(Application_instance_ptr)) new SdaiAction_status ; } -#else -inline SdaiAction_status * -create_SdaiAction_status () { return new SdaiAction_status ; } -#endif - -///////// END_ENTITY action_status - - -///////// ENTITY application_context - -extern AttrDescriptor *a_138application; -extern Inverse_attribute *a_139Icontext_elements; - -class SdaiApplication_context : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApplication_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _application ; - EntityAggregate _context_elements ; // of application_context_element - - public: - - SdaiApplication_context ( ); - SdaiApplication_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApplication_context (SdaiApplication_context& e ); - ~SdaiApplication_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 69 ; } - const SdaiText application_() const; - void application_ (const SdaiText x); - - const EntityAggregate_ptr context_elements_() const; - void context_elements_ (const EntityAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApplication_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApplication_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApplication_context () { return (SCLP23(Application_instance_ptr)) new SdaiApplication_context ; } -#else -inline SdaiApplication_context * -create_SdaiApplication_context () { return new SdaiApplication_context ; } -#endif - -///////// END_ENTITY application_context - - -///////// ENTITY change_request - -extern AttrDescriptor *a_140items; - -class SdaiChange_request : public SdaiAction_request_assignment { - -#ifdef __OSTORE__ - friend void SdaiChange_request_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiChange_request_items _items ; // of change_request_item - - public: - - SdaiChange_request ( ); - SdaiChange_request (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiChange_request (SdaiChange_request& e ); - ~SdaiChange_request (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 70 ; } - const SdaiChange_request_items_ptr items_() const; - void items_ (const SdaiChange_request_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiChange_request_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiChange_request(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiChange_request () { return (SCLP23(Application_instance_ptr)) new SdaiChange_request ; } -#else -inline SdaiChange_request * -create_SdaiChange_request () { return new SdaiChange_request ; } -#endif - -///////// END_ENTITY change_request - - -///////// ENTITY date_and_time - -extern AttrDescriptor *a_141date_component; -extern AttrDescriptor *a_142time_component; - -class SdaiDate_and_time : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDate_and_time_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _date_component ; - SCLP23(Application_instance_ptr) _time_component ; - public: - - SdaiDate_and_time ( ); - SdaiDate_and_time (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDate_and_time (SdaiDate_and_time& e ); - ~SdaiDate_and_time (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 71 ; } - const SdaiDate_ptr date_component_() const; - void date_component_ (const SdaiDate_ptr x); - - const SdaiLocal_time_ptr time_component_() const; - void time_component_ (const SdaiLocal_time_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDate_and_time_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDate_and_time(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDate_and_time () { return (SCLP23(Application_instance_ptr)) new SdaiDate_and_time ; } -#else -inline SdaiDate_and_time * -create_SdaiDate_and_time () { return new SdaiDate_and_time ; } -#endif - -///////// END_ENTITY date_and_time - - -///////// ENTITY approval_date_time - -extern AttrDescriptor *a_143date_time; -extern AttrDescriptor *a_144dated_approval; - -class SdaiApproval_date_time : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApproval_date_time_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiDate_time_select _date_time ; - SCLP23(Application_instance_ptr) _dated_approval ; - public: - - SdaiApproval_date_time ( ); - SdaiApproval_date_time (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApproval_date_time (SdaiApproval_date_time& e ); - ~SdaiApproval_date_time (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 72 ; } - const SdaiDate_time_select_ptr date_time_() const; - void date_time_ (const SdaiDate_time_select_ptr x); - - const SdaiApproval_ptr dated_approval_() const; - void dated_approval_ (const SdaiApproval_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApproval_date_time_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApproval_date_time(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApproval_date_time () { return (SCLP23(Application_instance_ptr)) new SdaiApproval_date_time ; } -#else -inline SdaiApproval_date_time * -create_SdaiApproval_date_time () { return new SdaiApproval_date_time ; } -#endif - -///////// END_ENTITY approval_date_time - - -///////// ENTITY approval_role - -extern AttrDescriptor *a_145role; - -class SdaiApproval_role : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApproval_role_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _role ; - public: - - SdaiApproval_role ( ); - SdaiApproval_role (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApproval_role (SdaiApproval_role& e ); - ~SdaiApproval_role (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 73 ; } - const SdaiLabel role_() const; - void role_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApproval_role_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApproval_role(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApproval_role () { return (SCLP23(Application_instance_ptr)) new SdaiApproval_role ; } -#else -inline SdaiApproval_role * -create_SdaiApproval_role () { return new SdaiApproval_role ; } -#endif - -///////// END_ENTITY approval_role - - -///////// ENTITY application_context_element - -extern AttrDescriptor *a_146name; -extern AttrDescriptor *a_147frame_of_reference; - -class SdaiApplication_context_element : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApplication_context_element_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(Application_instance_ptr) _frame_of_reference ; - public: - - SdaiApplication_context_element ( ); - SdaiApplication_context_element (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApplication_context_element (SdaiApplication_context_element& e ); - ~SdaiApplication_context_element (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 74 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiApplication_context_ptr frame_of_reference_() const; - void frame_of_reference_ (const SdaiApplication_context_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApplication_context_element_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApplication_context_element(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApplication_context_element () { return (SCLP23(Application_instance_ptr)) new SdaiApplication_context_element ; } -#else -inline SdaiApplication_context_element * -create_SdaiApplication_context_element () { return new SdaiApplication_context_element ; } -#endif - -///////// END_ENTITY application_context_element - - -///////// ENTITY product_context - -extern AttrDescriptor *a_148discipline_type; - -class SdaiProduct_context : public SdaiApplication_context_element { - -#ifdef __OSTORE__ - friend void SdaiProduct_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _discipline_type ; - public: - - SdaiProduct_context ( ); - SdaiProduct_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_context (SdaiProduct_context& e ); - ~SdaiProduct_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 75 ; } - const SdaiLabel discipline_type_() const; - void discipline_type_ (const SdaiLabel x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_context () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_context ; } -#else -inline SdaiProduct_context * -create_SdaiProduct_context () { return new SdaiProduct_context ; } -#endif - -///////// END_ENTITY product_context - - -///////// ENTITY elementary_surface - -extern AttrDescriptor *a_149position; - -class SdaiElementary_surface : public SdaiSurface { - -#ifdef __OSTORE__ - friend void SdaiElementary_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _position ; - public: - - SdaiElementary_surface ( ); - SdaiElementary_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiElementary_surface (SdaiElementary_surface& e ); - ~SdaiElementary_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 76 ; } - const SdaiAxis2_placement_3d_ptr position_() const; - void position_ (const SdaiAxis2_placement_3d_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiElementary_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiElementary_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiElementary_surface () { return (SCLP23(Application_instance_ptr)) new SdaiElementary_surface ; } -#else -inline SdaiElementary_surface * -create_SdaiElementary_surface () { return new SdaiElementary_surface ; } -#endif - -///////// END_ENTITY elementary_surface - - -///////// ENTITY spherical_surface - -extern AttrDescriptor *a_150radius; - -class SdaiSpherical_surface : public SdaiElementary_surface { - -#ifdef __OSTORE__ - friend void SdaiSpherical_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _radius ; - public: - - SdaiSpherical_surface ( ); - SdaiSpherical_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSpherical_surface (SdaiSpherical_surface& e ); - ~SdaiSpherical_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 77 ; } - const SdaiPositive_length_measure radius_() const; - void radius_ (const SdaiPositive_length_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSpherical_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSpherical_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSpherical_surface () { return (SCLP23(Application_instance_ptr)) new SdaiSpherical_surface ; } -#else -inline SdaiSpherical_surface * -create_SdaiSpherical_surface () { return new SdaiSpherical_surface ; } -#endif - -///////// END_ENTITY spherical_surface - - -///////// ENTITY application_protocol_definition - -extern AttrDescriptor *a_151status; -extern AttrDescriptor *a_152application_interpreted_model_schema_name; -extern AttrDescriptor *a_153application_protocol_year; -extern AttrDescriptor *a_154application; - -class SdaiApplication_protocol_definition : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApplication_protocol_definition_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _status ; - SCLP23(String) _application_interpreted_model_schema_name ; - SCLP23(Integer) _application_protocol_year ; - SCLP23(Application_instance_ptr) _application ; - public: - - SdaiApplication_protocol_definition ( ); - SdaiApplication_protocol_definition (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApplication_protocol_definition (SdaiApplication_protocol_definition& e ); - ~SdaiApplication_protocol_definition (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 78 ; } - const SdaiLabel status_() const; - void status_ (const SdaiLabel x); - - const SdaiLabel application_interpreted_model_schema_name_() const; - void application_interpreted_model_schema_name_ (const SdaiLabel x); - - const SdaiYear_number application_protocol_year_() const; - void application_protocol_year_ (const SdaiYear_number x); - - const SdaiApplication_context_ptr application_() const; - void application_ (const SdaiApplication_context_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApplication_protocol_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApplication_protocol_definition(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApplication_protocol_definition () { return (SCLP23(Application_instance_ptr)) new SdaiApplication_protocol_definition ; } -#else -inline SdaiApplication_protocol_definition * -create_SdaiApplication_protocol_definition () { return new SdaiApplication_protocol_definition ; } -#endif - -///////// END_ENTITY application_protocol_definition - - -///////// ENTITY specified_higher_usage_occurrence - -extern AttrDescriptor *a_155upper_usage; -extern AttrDescriptor *a_156next_usage; - -class SdaiSpecified_higher_usage_occurrence : public SdaiAssembly_component_usage { - -#ifdef __OSTORE__ - friend void SdaiSpecified_higher_usage_occurrence_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _upper_usage ; - SCLP23(Application_instance_ptr) _next_usage ; - public: - - SdaiSpecified_higher_usage_occurrence ( ); - SdaiSpecified_higher_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSpecified_higher_usage_occurrence (SdaiSpecified_higher_usage_occurrence& e ); - ~SdaiSpecified_higher_usage_occurrence (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 79 ; } - const SdaiAssembly_component_usage_ptr upper_usage_() const; - void upper_usage_ (const SdaiAssembly_component_usage_ptr x); - - const SdaiNext_assembly_usage_occurrence_ptr next_usage_() const; - void next_usage_ (const SdaiNext_assembly_usage_occurrence_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSpecified_higher_usage_occurrence_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSpecified_higher_usage_occurrence(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSpecified_higher_usage_occurrence () { return (SCLP23(Application_instance_ptr)) new SdaiSpecified_higher_usage_occurrence ; } -#else -inline SdaiSpecified_higher_usage_occurrence * -create_SdaiSpecified_higher_usage_occurrence () { return new SdaiSpecified_higher_usage_occurrence ; } -#endif - -///////// END_ENTITY specified_higher_usage_occurrence - - -///////// ENTITY product_definition_formation_with_specified_source - -extern AttrDescriptor *a_157make_or_buy; - -class SdaiProduct_definition_formation_with_specified_source : public SdaiProduct_definition_formation { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_formation_with_specified_source_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiSource_var _make_or_buy ; - public: - - SdaiProduct_definition_formation_with_specified_source ( ); - SdaiProduct_definition_formation_with_specified_source (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition_formation_with_specified_source (SdaiProduct_definition_formation_with_specified_source& e ); - ~SdaiProduct_definition_formation_with_specified_source (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 80 ; } - const SdaiSource_var make_or_buy_() const; - void make_or_buy_ (const SdaiSource_var x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_formation_with_specified_source_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_formation_with_specified_source(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_formation_with_specified_source () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_formation_with_specified_source ; } -#else -inline SdaiProduct_definition_formation_with_specified_source * -create_SdaiProduct_definition_formation_with_specified_source () { return new SdaiProduct_definition_formation_with_specified_source ; } -#endif - -///////// END_ENTITY product_definition_formation_with_specified_source - - -///////// ENTITY action_request_solution - -extern AttrDescriptor *a_158method; -extern AttrDescriptor *a_159request; - -class SdaiAction_request_solution : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAction_request_solution_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _method ; - SCLP23(Application_instance_ptr) _request ; - public: - - SdaiAction_request_solution ( ); - SdaiAction_request_solution (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAction_request_solution (SdaiAction_request_solution& e ); - ~SdaiAction_request_solution (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 81 ; } - const SdaiAction_method_ptr method_() const; - void method_ (const SdaiAction_method_ptr x); - - const SdaiVersioned_action_request_ptr request_() const; - void request_ (const SdaiVersioned_action_request_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAction_request_solution_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAction_request_solution(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAction_request_solution () { return (SCLP23(Application_instance_ptr)) new SdaiAction_request_solution ; } -#else -inline SdaiAction_request_solution * -create_SdaiAction_request_solution () { return new SdaiAction_request_solution ; } -#endif - -///////// END_ENTITY action_request_solution - - -///////// ENTITY uncertainty_measure_with_unit - -extern AttrDescriptor *a_160name; -extern AttrDescriptor *a_161description; - -class SdaiUncertainty_measure_with_unit : public SdaiMeasure_with_unit { - -#ifdef __OSTORE__ - friend void SdaiUncertainty_measure_with_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - public: - - SdaiUncertainty_measure_with_unit ( ); - SdaiUncertainty_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiUncertainty_measure_with_unit (SdaiUncertainty_measure_with_unit& e ); - ~SdaiUncertainty_measure_with_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 82 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiUncertainty_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiUncertainty_measure_with_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiUncertainty_measure_with_unit () { return (SCLP23(Application_instance_ptr)) new SdaiUncertainty_measure_with_unit ; } -#else -inline SdaiUncertainty_measure_with_unit * -create_SdaiUncertainty_measure_with_unit () { return new SdaiUncertainty_measure_with_unit ; } -#endif - -///////// END_ENTITY uncertainty_measure_with_unit - - -///////// ENTITY edge_based_wireframe_model - -extern AttrDescriptor *a_162ebwm_boundary; - -class SdaiEdge_based_wireframe_model : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiEdge_based_wireframe_model_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _ebwm_boundary ; // of connected_edge_set - - public: - - SdaiEdge_based_wireframe_model ( ); - SdaiEdge_based_wireframe_model (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiEdge_based_wireframe_model (SdaiEdge_based_wireframe_model& e ); - ~SdaiEdge_based_wireframe_model (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 83 ; } - const EntityAggregate_ptr ebwm_boundary_() const; - void ebwm_boundary_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiEdge_based_wireframe_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiEdge_based_wireframe_model(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiEdge_based_wireframe_model () { return (SCLP23(Application_instance_ptr)) new SdaiEdge_based_wireframe_model ; } -#else -inline SdaiEdge_based_wireframe_model * -create_SdaiEdge_based_wireframe_model () { return new SdaiEdge_based_wireframe_model ; } -#endif - -///////// END_ENTITY edge_based_wireframe_model - - -///////// ENTITY path - -extern AttrDescriptor *a_163edge_list; - -class SdaiPath : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiPath_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _edge_list ; // of oriented_edge - - public: - - SdaiPath ( ); - SdaiPath (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPath (SdaiPath& e ); - ~SdaiPath (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 84 ; } - const EntityAggregate_ptr edge_list_() const; - void edge_list_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPath_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPath(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPath () { return (SCLP23(Application_instance_ptr)) new SdaiPath ; } -#else -inline SdaiPath * -create_SdaiPath () { return new SdaiPath ; } -#endif - -///////// END_ENTITY path - - -///////// ENTITY connected_face_set - -extern AttrDescriptor *a_164cfs_faces; - -class SdaiConnected_face_set : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiConnected_face_set_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _cfs_faces ; // of face - - public: - - SdaiConnected_face_set ( ); - SdaiConnected_face_set (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiConnected_face_set (SdaiConnected_face_set& e ); - ~SdaiConnected_face_set (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 85 ; } - const EntityAggregate_ptr cfs_faces_() const; - void cfs_faces_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiConnected_face_set_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiConnected_face_set(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiConnected_face_set () { return (SCLP23(Application_instance_ptr)) new SdaiConnected_face_set ; } -#else -inline SdaiConnected_face_set * -create_SdaiConnected_face_set () { return new SdaiConnected_face_set ; } -#endif - -///////// END_ENTITY connected_face_set - - -///////// ENTITY open_shell - - -class SdaiOpen_shell : public SdaiConnected_face_set { - -#ifdef __OSTORE__ - friend void SdaiOpen_shell_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiOpen_shell ( ); - SdaiOpen_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOpen_shell (SdaiOpen_shell& e ); - ~SdaiOpen_shell (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 86 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOpen_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOpen_shell(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOpen_shell () { return (SCLP23(Application_instance_ptr)) new SdaiOpen_shell ; } -#else -inline SdaiOpen_shell * -create_SdaiOpen_shell () { return new SdaiOpen_shell ; } -#endif - -///////// END_ENTITY open_shell - - -///////// ENTITY oriented_open_shell - -extern AttrDescriptor *a_165open_shell_element; -extern AttrDescriptor *a_166orientation; -extern Derived_attribute *a_167Dconnected_face_set_cfs_faces; - -class SdaiOriented_open_shell : public SdaiOpen_shell { - -#ifdef __OSTORE__ - friend void SdaiOriented_open_shell_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _open_shell_element ; - SCLP23(BOOL) _orientation ; - public: - - SdaiOriented_open_shell ( ); - SdaiOriented_open_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOriented_open_shell (SdaiOriented_open_shell& e ); - ~SdaiOriented_open_shell (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 87 ; } - const SdaiOpen_shell_ptr open_shell_element_() const; - void open_shell_element_ (const SdaiOpen_shell_ptr x); - - const SCLBOOL(Bool) orientation_() const; - void orientation_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOriented_open_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOriented_open_shell(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOriented_open_shell () { return (SCLP23(Application_instance_ptr)) new SdaiOriented_open_shell ; } -#else -inline SdaiOriented_open_shell * -create_SdaiOriented_open_shell () { return new SdaiOriented_open_shell ; } -#endif - -///////// END_ENTITY oriented_open_shell - - -///////// ENTITY solid_angle_unit - - -class SdaiSolid_angle_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiSolid_angle_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiSolid_angle_unit ( ); - SdaiSolid_angle_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSolid_angle_unit (SdaiSolid_angle_unit& e ); - ~SdaiSolid_angle_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 88 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSolid_angle_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSolid_angle_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSolid_angle_unit () { return (SCLP23(Application_instance_ptr)) new SdaiSolid_angle_unit ; } -#else -inline SdaiSolid_angle_unit * -create_SdaiSolid_angle_unit () { return new SdaiSolid_angle_unit ; } -#endif - -///////// END_ENTITY solid_angle_unit - - -///////// ENTITY coordinated_universal_time_offset - -extern AttrDescriptor *a_168hour_offset; -extern AttrDescriptor *a_169minute_offset; -extern AttrDescriptor *a_170sense; - -class SdaiCoordinated_universal_time_offset : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiCoordinated_universal_time_offset_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _hour_offset ; - SCLP23(Integer) _minute_offset ; // OPTIONAL - SdaiAhead_or_behind_var _sense ; - public: - - SdaiCoordinated_universal_time_offset ( ); - SdaiCoordinated_universal_time_offset (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCoordinated_universal_time_offset (SdaiCoordinated_universal_time_offset& e ); - ~SdaiCoordinated_universal_time_offset (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 89 ; } - const SdaiHour_in_day hour_offset_() const; - void hour_offset_ (const SdaiHour_in_day x); - - const SdaiMinute_in_hour minute_offset_() const; - void minute_offset_ (const SdaiMinute_in_hour x); - - const SdaiAhead_or_behind_var sense_() const; - void sense_ (const SdaiAhead_or_behind_var x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCoordinated_universal_time_offset_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCoordinated_universal_time_offset(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCoordinated_universal_time_offset () { return (SCLP23(Application_instance_ptr)) new SdaiCoordinated_universal_time_offset ; } -#else -inline SdaiCoordinated_universal_time_offset * -create_SdaiCoordinated_universal_time_offset () { return new SdaiCoordinated_universal_time_offset ; } -#endif - -///////// END_ENTITY coordinated_universal_time_offset - - -///////// ENTITY curve_replica - -extern AttrDescriptor *a_171parent_curve; -extern AttrDescriptor *a_172transformation; - -class SdaiCurve_replica : public SdaiCurve { - -#ifdef __OSTORE__ - friend void SdaiCurve_replica_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _parent_curve ; - SCLP23(Application_instance_ptr) _transformation ; - public: - - SdaiCurve_replica ( ); - SdaiCurve_replica (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCurve_replica (SdaiCurve_replica& e ); - ~SdaiCurve_replica (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 90 ; } - const SdaiCurve_ptr parent_curve_() const; - void parent_curve_ (const SdaiCurve_ptr x); - - const SdaiCartesian_transformation_operator_ptr transformation_() const; - void transformation_ (const SdaiCartesian_transformation_operator_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCurve_replica_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCurve_replica(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCurve_replica () { return (SCLP23(Application_instance_ptr)) new SdaiCurve_replica ; } -#else -inline SdaiCurve_replica * -create_SdaiCurve_replica () { return new SdaiCurve_replica ; } -#endif - -///////// END_ENTITY curve_replica - - -///////// ENTITY quasi_uniform_surface - - -class SdaiQuasi_uniform_surface : public SdaiB_spline_surface { - -#ifdef __OSTORE__ - friend void SdaiQuasi_uniform_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiQuasi_uniform_surface ( ); - SdaiQuasi_uniform_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiQuasi_uniform_surface (SdaiQuasi_uniform_surface& e ); - ~SdaiQuasi_uniform_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 91 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiQuasi_uniform_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiQuasi_uniform_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiQuasi_uniform_surface () { return (SCLP23(Application_instance_ptr)) new SdaiQuasi_uniform_surface ; } -#else -inline SdaiQuasi_uniform_surface * -create_SdaiQuasi_uniform_surface () { return new SdaiQuasi_uniform_surface ; } -#endif - -///////// END_ENTITY quasi_uniform_surface - - -///////// ENTITY surface_curve - -extern AttrDescriptor *a_173curve_3d; -extern AttrDescriptor *a_174associated_geometry; -extern AttrDescriptor *a_175master_representation; -extern Derived_attribute *a_176Dbasis_surface; - -class SdaiSurface_curve : public SdaiCurve { - -#ifdef __OSTORE__ - friend void SdaiSurface_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _curve_3d ; - SdaiPcurve_or_surfaces _associated_geometry ; // of pcurve_or_surface - - SdaiPreferred_surface_curve_representation_var _master_representation ; - public: - - SdaiSurface_curve ( ); - SdaiSurface_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSurface_curve (SdaiSurface_curve& e ); - ~SdaiSurface_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 92 ; } - const SdaiCurve_ptr curve_3d_() const; - void curve_3d_ (const SdaiCurve_ptr x); - - const SdaiPcurve_or_surfaces_ptr associated_geometry_() const; - void associated_geometry_ (const SdaiPcurve_or_surfaces_ptr x); - - const SdaiPreferred_surface_curve_representation_var master_representation_() const; - void master_representation_ (const SdaiPreferred_surface_curve_representation_var x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSurface_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSurface_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSurface_curve () { return (SCLP23(Application_instance_ptr)) new SdaiSurface_curve ; } -#else -inline SdaiSurface_curve * -create_SdaiSurface_curve () { return new SdaiSurface_curve ; } -#endif - -///////// END_ENTITY surface_curve - - -///////// ENTITY action_request_status - -extern AttrDescriptor *a_177status; -extern AttrDescriptor *a_178assigned_request; - -class SdaiAction_request_status : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAction_request_status_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _status ; - SCLP23(Application_instance_ptr) _assigned_request ; - public: - - SdaiAction_request_status ( ); - SdaiAction_request_status (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAction_request_status (SdaiAction_request_status& e ); - ~SdaiAction_request_status (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 93 ; } - const SdaiLabel status_() const; - void status_ (const SdaiLabel x); - - const SdaiVersioned_action_request_ptr assigned_request_() const; - void assigned_request_ (const SdaiVersioned_action_request_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAction_request_status_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAction_request_status(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAction_request_status () { return (SCLP23(Application_instance_ptr)) new SdaiAction_request_status ; } -#else -inline SdaiAction_request_status * -create_SdaiAction_request_status () { return new SdaiAction_request_status ; } -#endif - -///////// END_ENTITY action_request_status - - -///////// ENTITY composite_curve_segment - -extern AttrDescriptor *a_179transition; -extern AttrDescriptor *a_180same_sense; -extern AttrDescriptor *a_181parent_curve; -extern Inverse_attribute *a_182Iusing_curves; - -class SdaiComposite_curve_segment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiComposite_curve_segment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiTransition_code_var _transition ; - SCLP23(BOOL) _same_sense ; - SCLP23(Application_instance_ptr) _parent_curve ; - EntityAggregate _using_curves ; // of composite_curve - - public: - - SdaiComposite_curve_segment ( ); - SdaiComposite_curve_segment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiComposite_curve_segment (SdaiComposite_curve_segment& e ); - ~SdaiComposite_curve_segment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 94 ; } - const SdaiTransition_code_var transition_() const; - void transition_ (const SdaiTransition_code_var x); - - const SCLBOOL(Bool) same_sense_() const; - void same_sense_ (const SCLBOOL(Bool) x); - - const SdaiCurve_ptr parent_curve_() const; - void parent_curve_ (const SdaiCurve_ptr x); - - const EntityAggregate_ptr using_curves_() const; - void using_curves_ (const EntityAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiComposite_curve_segment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiComposite_curve_segment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiComposite_curve_segment () { return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve_segment ; } -#else -inline SdaiComposite_curve_segment * -create_SdaiComposite_curve_segment () { return new SdaiComposite_curve_segment ; } -#endif - -///////// END_ENTITY composite_curve_segment - - -///////// ENTITY reparametrised_composite_curve_segment - -extern AttrDescriptor *a_183param_length; - -class SdaiReparametrised_composite_curve_segment : public SdaiComposite_curve_segment { - -#ifdef __OSTORE__ - friend void SdaiReparametrised_composite_curve_segment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _param_length ; - public: - - SdaiReparametrised_composite_curve_segment ( ); - SdaiReparametrised_composite_curve_segment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiReparametrised_composite_curve_segment (SdaiReparametrised_composite_curve_segment& e ); - ~SdaiReparametrised_composite_curve_segment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 95 ; } - const SdaiParameter_value param_length_() const; - void param_length_ (const SdaiParameter_value x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiReparametrised_composite_curve_segment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiReparametrised_composite_curve_segment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiReparametrised_composite_curve_segment () { return (SCLP23(Application_instance_ptr)) new SdaiReparametrised_composite_curve_segment ; } -#else -inline SdaiReparametrised_composite_curve_segment * -create_SdaiReparametrised_composite_curve_segment () { return new SdaiReparametrised_composite_curve_segment ; } -#endif - -///////// END_ENTITY reparametrised_composite_curve_segment - - -///////// ENTITY representation_relationship - -extern AttrDescriptor *a_184name; -extern AttrDescriptor *a_185description; -extern AttrDescriptor *a_186rep_1; -extern AttrDescriptor *a_187rep_2; - -class SdaiRepresentation_relationship : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiRepresentation_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _rep_1 ; - SCLP23(Application_instance_ptr) _rep_2 ; - public: - - SdaiRepresentation_relationship ( ); - SdaiRepresentation_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRepresentation_relationship (SdaiRepresentation_relationship& e ); - ~SdaiRepresentation_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 96 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiRepresentation_ptr rep_1_() const; - void rep_1_ (const SdaiRepresentation_ptr x); - - const SdaiRepresentation_ptr rep_2_() const; - void rep_2_ (const SdaiRepresentation_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRepresentation_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRepresentation_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_relationship ; } -#else -inline SdaiRepresentation_relationship * -create_SdaiRepresentation_relationship () { return new SdaiRepresentation_relationship ; } -#endif - -///////// END_ENTITY representation_relationship - - -///////// ENTITY representation_relationship_with_transformation - -extern AttrDescriptor *a_188transformation_operator; - -class SdaiRepresentation_relationship_with_transformation : public SdaiRepresentation_relationship { - -#ifdef __OSTORE__ - friend void SdaiRepresentation_relationship_with_transformation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiTransformation _transformation_operator ; - public: - - SdaiRepresentation_relationship_with_transformation ( ); - SdaiRepresentation_relationship_with_transformation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRepresentation_relationship_with_transformation (SdaiRepresentation_relationship_with_transformation& e ); - ~SdaiRepresentation_relationship_with_transformation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 97 ; } - const SdaiTransformation_ptr transformation_operator_() const; - void transformation_operator_ (const SdaiTransformation_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRepresentation_relationship_with_transformation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_relationship_with_transformation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRepresentation_relationship_with_transformation () { return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_relationship_with_transformation ; } -#else -inline SdaiRepresentation_relationship_with_transformation * -create_SdaiRepresentation_relationship_with_transformation () { return new SdaiRepresentation_relationship_with_transformation ; } -#endif - -///////// END_ENTITY representation_relationship_with_transformation - - -///////// ENTITY person_and_organization_role - -extern AttrDescriptor *a_189name; - -class SdaiPerson_and_organization_role : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiPerson_and_organization_role_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - public: - - SdaiPerson_and_organization_role ( ); - SdaiPerson_and_organization_role (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPerson_and_organization_role (SdaiPerson_and_organization_role& e ); - ~SdaiPerson_and_organization_role (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 98 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPerson_and_organization_role_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization_role(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization_role () { return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization_role ; } -#else -inline SdaiPerson_and_organization_role * -create_SdaiPerson_and_organization_role () { return new SdaiPerson_and_organization_role ; } -#endif - -///////// END_ENTITY person_and_organization_role - - -///////// ENTITY quasi_uniform_curve - - -class SdaiQuasi_uniform_curve : public SdaiB_spline_curve { - -#ifdef __OSTORE__ - friend void SdaiQuasi_uniform_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiQuasi_uniform_curve ( ); - SdaiQuasi_uniform_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiQuasi_uniform_curve (SdaiQuasi_uniform_curve& e ); - ~SdaiQuasi_uniform_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 99 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiQuasi_uniform_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiQuasi_uniform_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiQuasi_uniform_curve () { return (SCLP23(Application_instance_ptr)) new SdaiQuasi_uniform_curve ; } -#else -inline SdaiQuasi_uniform_curve * -create_SdaiQuasi_uniform_curve () { return new SdaiQuasi_uniform_curve ; } -#endif - -///////// END_ENTITY quasi_uniform_curve - - -///////// ENTITY swept_surface - -extern AttrDescriptor *a_190swept_curve; - -class SdaiSwept_surface : public SdaiSurface { - -#ifdef __OSTORE__ - friend void SdaiSwept_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _swept_curve ; - public: - - SdaiSwept_surface ( ); - SdaiSwept_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSwept_surface (SdaiSwept_surface& e ); - ~SdaiSwept_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 100 ; } - const SdaiCurve_ptr swept_curve_() const; - void swept_curve_ (const SdaiCurve_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSwept_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSwept_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSwept_surface () { return (SCLP23(Application_instance_ptr)) new SdaiSwept_surface ; } -#else -inline SdaiSwept_surface * -create_SdaiSwept_surface () { return new SdaiSwept_surface ; } -#endif - -///////// END_ENTITY swept_surface - - -///////// ENTITY property_definition - -extern AttrDescriptor *a_191name; -extern AttrDescriptor *a_192description; -extern AttrDescriptor *a_193definition; - -class SdaiProperty_definition : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProperty_definition_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SdaiCharacterized_definition _definition ; - public: - - SdaiProperty_definition ( ); - SdaiProperty_definition (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProperty_definition (SdaiProperty_definition& e ); - ~SdaiProperty_definition (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 101 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiCharacterized_definition_ptr definition_() const; - void definition_ (const SdaiCharacterized_definition_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProperty_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProperty_definition(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProperty_definition () { return (SCLP23(Application_instance_ptr)) new SdaiProperty_definition ; } -#else -inline SdaiProperty_definition * -create_SdaiProperty_definition () { return new SdaiProperty_definition ; } -#endif - -///////// END_ENTITY property_definition - - -///////// ENTITY global_uncertainty_assigned_context - -extern AttrDescriptor *a_194uncertainty; - -class SdaiGlobal_uncertainty_assigned_context : public SdaiRepresentation_context { - -#ifdef __OSTORE__ - friend void SdaiGlobal_uncertainty_assigned_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _uncertainty ; // of uncertainty_measure_with_unit - - public: - - SdaiGlobal_uncertainty_assigned_context ( ); - SdaiGlobal_uncertainty_assigned_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiGlobal_uncertainty_assigned_context (SdaiGlobal_uncertainty_assigned_context& e ); - ~SdaiGlobal_uncertainty_assigned_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 102 ; } - const EntityAggregate_ptr uncertainty_() const; - void uncertainty_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiGlobal_uncertainty_assigned_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiGlobal_uncertainty_assigned_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiGlobal_uncertainty_assigned_context () { return (SCLP23(Application_instance_ptr)) new SdaiGlobal_uncertainty_assigned_context ; } -#else -inline SdaiGlobal_uncertainty_assigned_context * -create_SdaiGlobal_uncertainty_assigned_context () { return new SdaiGlobal_uncertainty_assigned_context ; } -#endif - -///////// END_ENTITY global_uncertainty_assigned_context - - -///////// ENTITY organization_relationship - -extern AttrDescriptor *a_195name; -extern AttrDescriptor *a_196description; -extern AttrDescriptor *a_197relating_organization; -extern AttrDescriptor *a_198related_organization; - -class SdaiOrganization_relationship : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiOrganization_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _relating_organization ; - SCLP23(Application_instance_ptr) _related_organization ; - public: - - SdaiOrganization_relationship ( ); - SdaiOrganization_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOrganization_relationship (SdaiOrganization_relationship& e ); - ~SdaiOrganization_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 103 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiOrganization_ptr relating_organization_() const; - void relating_organization_ (const SdaiOrganization_ptr x); - - const SdaiOrganization_ptr related_organization_() const; - void related_organization_ (const SdaiOrganization_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOrganization_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOrganization_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOrganization_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiOrganization_relationship ; } -#else -inline SdaiOrganization_relationship * -create_SdaiOrganization_relationship () { return new SdaiOrganization_relationship ; } -#endif - -///////// END_ENTITY organization_relationship - - -///////// ENTITY parabola - -extern AttrDescriptor *a_199focal_dist; - -class SdaiParabola : public SdaiConic { - -#ifdef __OSTORE__ - friend void SdaiParabola_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _focal_dist ; - public: - - SdaiParabola ( ); - SdaiParabola (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiParabola (SdaiParabola& e ); - ~SdaiParabola (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 104 ; } - const SdaiLength_measure focal_dist_() const; - void focal_dist_ (const SdaiLength_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiParabola_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiParabola(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiParabola () { return (SCLP23(Application_instance_ptr)) new SdaiParabola ; } -#else -inline SdaiParabola * -create_SdaiParabola () { return new SdaiParabola ; } -#endif - -///////// END_ENTITY parabola - - -///////// ENTITY rectangular_composite_surface - -extern AttrDescriptor *a_200segments; -extern Derived_attribute *a_201Dn_u; -extern Derived_attribute *a_202Dn_v; - -class SdaiRectangular_composite_surface : public SdaiBounded_surface { - -#ifdef __OSTORE__ - friend void SdaiRectangular_composite_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - GenericAggregate _segments ; // of surface_patch - - public: - - SdaiRectangular_composite_surface ( ); - SdaiRectangular_composite_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRectangular_composite_surface (SdaiRectangular_composite_surface& e ); - ~SdaiRectangular_composite_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 105 ; } - const GenericAggregate_ptr segments_() const; - void segments_ (const GenericAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRectangular_composite_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRectangular_composite_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRectangular_composite_surface () { return (SCLP23(Application_instance_ptr)) new SdaiRectangular_composite_surface ; } -#else -inline SdaiRectangular_composite_surface * -create_SdaiRectangular_composite_surface () { return new SdaiRectangular_composite_surface ; } -#endif - -///////// END_ENTITY rectangular_composite_surface - - -///////// ENTITY lot_effectivity - -extern AttrDescriptor *a_203effectivity_lot_id; -extern AttrDescriptor *a_204effectivity_lot_size; - -class SdaiLot_effectivity : public SdaiEffectivity { - -#ifdef __OSTORE__ - friend void SdaiLot_effectivity_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _effectivity_lot_id ; - SCLP23(Application_instance_ptr) _effectivity_lot_size ; - public: - - SdaiLot_effectivity ( ); - SdaiLot_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiLot_effectivity (SdaiLot_effectivity& e ); - ~SdaiLot_effectivity (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 106 ; } - const SdaiIdentifier effectivity_lot_id_() const; - void effectivity_lot_id_ (const SdaiIdentifier x); - - const SdaiMeasure_with_unit_ptr effectivity_lot_size_() const; - void effectivity_lot_size_ (const SdaiMeasure_with_unit_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiLot_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiLot_effectivity(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiLot_effectivity () { return (SCLP23(Application_instance_ptr)) new SdaiLot_effectivity ; } -#else -inline SdaiLot_effectivity * -create_SdaiLot_effectivity () { return new SdaiLot_effectivity ; } -#endif - -///////// END_ENTITY lot_effectivity - - -///////// ENTITY surface_of_linear_extrusion - -extern AttrDescriptor *a_205extrusion_axis; - -class SdaiSurface_of_linear_extrusion : public SdaiSwept_surface { - -#ifdef __OSTORE__ - friend void SdaiSurface_of_linear_extrusion_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _extrusion_axis ; - public: - - SdaiSurface_of_linear_extrusion ( ); - SdaiSurface_of_linear_extrusion (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSurface_of_linear_extrusion (SdaiSurface_of_linear_extrusion& e ); - ~SdaiSurface_of_linear_extrusion (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 107 ; } - const SdaiVector_ptr extrusion_axis_() const; - void extrusion_axis_ (const SdaiVector_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSurface_of_linear_extrusion_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSurface_of_linear_extrusion(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSurface_of_linear_extrusion () { return (SCLP23(Application_instance_ptr)) new SdaiSurface_of_linear_extrusion ; } -#else -inline SdaiSurface_of_linear_extrusion * -create_SdaiSurface_of_linear_extrusion () { return new SdaiSurface_of_linear_extrusion ; } -#endif - -///////// END_ENTITY surface_of_linear_extrusion - - -///////// ENTITY shell_based_surface_model - -extern AttrDescriptor *a_206sbsm_boundary; - -class SdaiShell_based_surface_model : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiShell_based_surface_model_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiShells _sbsm_boundary ; // of shell - - public: - - SdaiShell_based_surface_model ( ); - SdaiShell_based_surface_model (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiShell_based_surface_model (SdaiShell_based_surface_model& e ); - ~SdaiShell_based_surface_model (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 108 ; } - const SdaiShells_ptr sbsm_boundary_() const; - void sbsm_boundary_ (const SdaiShells_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiShell_based_surface_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiShell_based_surface_model(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiShell_based_surface_model () { return (SCLP23(Application_instance_ptr)) new SdaiShell_based_surface_model ; } -#else -inline SdaiShell_based_surface_model * -create_SdaiShell_based_surface_model () { return new SdaiShell_based_surface_model ; } -#endif - -///////// END_ENTITY shell_based_surface_model - - -///////// ENTITY uniform_curve - - -class SdaiUniform_curve : public SdaiB_spline_curve { - -#ifdef __OSTORE__ - friend void SdaiUniform_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiUniform_curve ( ); - SdaiUniform_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiUniform_curve (SdaiUniform_curve& e ); - ~SdaiUniform_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 109 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiUniform_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiUniform_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiUniform_curve () { return (SCLP23(Application_instance_ptr)) new SdaiUniform_curve ; } -#else -inline SdaiUniform_curve * -create_SdaiUniform_curve () { return new SdaiUniform_curve ; } -#endif - -///////// END_ENTITY uniform_curve - - -///////// ENTITY bezier_curve - - -class SdaiBezier_curve : public SdaiB_spline_curve { - -#ifdef __OSTORE__ - friend void SdaiBezier_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiBezier_curve ( ); - SdaiBezier_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiBezier_curve (SdaiBezier_curve& e ); - ~SdaiBezier_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 110 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiBezier_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiBezier_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiBezier_curve () { return (SCLP23(Application_instance_ptr)) new SdaiBezier_curve ; } -#else -inline SdaiBezier_curve * -create_SdaiBezier_curve () { return new SdaiBezier_curve ; } -#endif - -///////// END_ENTITY bezier_curve - - -///////// ENTITY loop - - -class SdaiLoop : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiLoop_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiLoop ( ); - SdaiLoop (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiLoop (SdaiLoop& e ); - ~SdaiLoop (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 111 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiLoop_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiLoop(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiLoop () { return (SCLP23(Application_instance_ptr)) new SdaiLoop ; } -#else -inline SdaiLoop * -create_SdaiLoop () { return new SdaiLoop ; } -#endif - -///////// END_ENTITY loop - - -///////// ENTITY edge_loop - -extern Derived_attribute *a_207Dne; - -class SdaiEdge_loop : public SdaiLoop { - -#ifdef __OSTORE__ - friend void SdaiEdge_loop_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiEdge_loop ( ); - SdaiEdge_loop (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiEdge_loop (SdaiEdge_loop& e ); - ~SdaiEdge_loop (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 112 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - const EntityAggregate_ptr edge_list_() const; - void edge_list_ (const EntityAggregate_ptr x); - - -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiEdge_loop_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiEdge_loop(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiEdge_loop () { return (SCLP23(Application_instance_ptr)) new SdaiEdge_loop ; } -#else -inline SdaiEdge_loop * -create_SdaiEdge_loop () { return new SdaiEdge_loop ; } -#endif - -///////// END_ENTITY edge_loop - - -///////// ENTITY date - -extern AttrDescriptor *a_208year_component; - -class SdaiDate : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDate_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _year_component ; - public: - - SdaiDate ( ); - SdaiDate (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDate (SdaiDate& e ); - ~SdaiDate (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 113 ; } - const SdaiYear_number year_component_() const; - void year_component_ (const SdaiYear_number x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDate_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDate(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDate () { return (SCLP23(Application_instance_ptr)) new SdaiDate ; } -#else -inline SdaiDate * -create_SdaiDate () { return new SdaiDate ; } -#endif - -///////// END_ENTITY date - - -///////// ENTITY calendar_date - -extern AttrDescriptor *a_209day_component; -extern AttrDescriptor *a_210month_component; - -class SdaiCalendar_date : public SdaiDate { - -#ifdef __OSTORE__ - friend void SdaiCalendar_date_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _day_component ; - SCLP23(Integer) _month_component ; - public: - - SdaiCalendar_date ( ); - SdaiCalendar_date (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCalendar_date (SdaiCalendar_date& e ); - ~SdaiCalendar_date (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 114 ; } - const SdaiDay_in_month_number day_component_() const; - void day_component_ (const SdaiDay_in_month_number x); - - const SdaiMonth_in_year_number month_component_() const; - void month_component_ (const SdaiMonth_in_year_number x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCalendar_date_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCalendar_date(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCalendar_date () { return (SCLP23(Application_instance_ptr)) new SdaiCalendar_date ; } -#else -inline SdaiCalendar_date * -create_SdaiCalendar_date () { return new SdaiCalendar_date ; } -#endif - -///////// END_ENTITY calendar_date - - -///////// ENTITY toroidal_surface - -extern AttrDescriptor *a_211major_radius; -extern AttrDescriptor *a_212minor_radius; - -class SdaiToroidal_surface : public SdaiElementary_surface { - -#ifdef __OSTORE__ - friend void SdaiToroidal_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _major_radius ; - SCLP23(Real) _minor_radius ; - public: - - SdaiToroidal_surface ( ); - SdaiToroidal_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiToroidal_surface (SdaiToroidal_surface& e ); - ~SdaiToroidal_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 115 ; } - const SdaiPositive_length_measure major_radius_() const; - void major_radius_ (const SdaiPositive_length_measure x); - - const SdaiPositive_length_measure minor_radius_() const; - void minor_radius_ (const SdaiPositive_length_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiToroidal_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiToroidal_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiToroidal_surface () { return (SCLP23(Application_instance_ptr)) new SdaiToroidal_surface ; } -#else -inline SdaiToroidal_surface * -create_SdaiToroidal_surface () { return new SdaiToroidal_surface ; } -#endif - -///////// END_ENTITY toroidal_surface - - -///////// ENTITY promissory_usage_occurrence - - -class SdaiPromissory_usage_occurrence : public SdaiAssembly_component_usage { - -#ifdef __OSTORE__ - friend void SdaiPromissory_usage_occurrence_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiPromissory_usage_occurrence ( ); - SdaiPromissory_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPromissory_usage_occurrence (SdaiPromissory_usage_occurrence& e ); - ~SdaiPromissory_usage_occurrence (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 116 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPromissory_usage_occurrence_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPromissory_usage_occurrence(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPromissory_usage_occurrence () { return (SCLP23(Application_instance_ptr)) new SdaiPromissory_usage_occurrence ; } -#else -inline SdaiPromissory_usage_occurrence * -create_SdaiPromissory_usage_occurrence () { return new SdaiPromissory_usage_occurrence ; } -#endif - -///////// END_ENTITY promissory_usage_occurrence - - -///////// ENTITY approval_assignment - -extern AttrDescriptor *a_213assigned_approval; - -class SdaiApproval_assignment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApproval_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_approval ; - public: - - SdaiApproval_assignment ( ); - SdaiApproval_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApproval_assignment (SdaiApproval_assignment& e ); - ~SdaiApproval_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 117 ; } - const SdaiApproval_ptr assigned_approval_() const; - void assigned_approval_ (const SdaiApproval_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApproval_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApproval_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApproval_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiApproval_assignment ; } -#else -inline SdaiApproval_assignment * -create_SdaiApproval_assignment () { return new SdaiApproval_assignment ; } -#endif - -///////// END_ENTITY approval_assignment - - -///////// ENTITY configuration_item - -extern AttrDescriptor *a_214id; -extern AttrDescriptor *a_215name; -extern AttrDescriptor *a_216description; -extern AttrDescriptor *a_217item_concept; -extern AttrDescriptor *a_218purpose; - -class SdaiConfiguration_item : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiConfiguration_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _name ; - SCLP23(String) _description ; // OPTIONAL - SCLP23(Application_instance_ptr) _item_concept ; - SCLP23(String) _purpose ; // OPTIONAL - public: - - SdaiConfiguration_item ( ); - SdaiConfiguration_item (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiConfiguration_item (SdaiConfiguration_item& e ); - ~SdaiConfiguration_item (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 118 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiProduct_concept_ptr item_concept_() const; - void item_concept_ (const SdaiProduct_concept_ptr x); - - const SdaiLabel purpose_() const; - void purpose_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiConfiguration_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiConfiguration_item(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiConfiguration_item () { return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_item ; } -#else -inline SdaiConfiguration_item * -create_SdaiConfiguration_item () { return new SdaiConfiguration_item ; } -#endif - -///////// END_ENTITY configuration_item - - -///////// ENTITY contract_assignment - -extern AttrDescriptor *a_219assigned_contract; - -class SdaiContract_assignment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiContract_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_contract ; - public: - - SdaiContract_assignment ( ); - SdaiContract_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiContract_assignment (SdaiContract_assignment& e ); - ~SdaiContract_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 119 ; } - const SdaiContract_ptr assigned_contract_() const; - void assigned_contract_ (const SdaiContract_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiContract_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiContract_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiContract_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiContract_assignment ; } -#else -inline SdaiContract_assignment * -create_SdaiContract_assignment () { return new SdaiContract_assignment ; } -#endif - -///////// END_ENTITY contract_assignment - - -///////// ENTITY vector - -extern AttrDescriptor *a_220orientation; -extern AttrDescriptor *a_221magnitude; - -class SdaiVector : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiVector_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _orientation ; - SCLP23(Real) _magnitude ; - public: - - SdaiVector ( ); - SdaiVector (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiVector (SdaiVector& e ); - ~SdaiVector (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 120 ; } - const SdaiDirection_ptr orientation_() const; - void orientation_ (const SdaiDirection_ptr x); - - const SdaiLength_measure magnitude_() const; - void magnitude_ (const SdaiLength_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiVector_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiVector(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiVector () { return (SCLP23(Application_instance_ptr)) new SdaiVector ; } -#else -inline SdaiVector * -create_SdaiVector () { return new SdaiVector ; } -#endif - -///////// END_ENTITY vector - - -///////// ENTITY intersection_curve - - -class SdaiIntersection_curve : public SdaiSurface_curve { - -#ifdef __OSTORE__ - friend void SdaiIntersection_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiIntersection_curve ( ); - SdaiIntersection_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiIntersection_curve (SdaiIntersection_curve& e ); - ~SdaiIntersection_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 121 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiIntersection_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiIntersection_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiIntersection_curve () { return (SCLP23(Application_instance_ptr)) new SdaiIntersection_curve ; } -#else -inline SdaiIntersection_curve * -create_SdaiIntersection_curve () { return new SdaiIntersection_curve ; } -#endif - -///////// END_ENTITY intersection_curve - - -///////// ENTITY trimmed_curve - -extern AttrDescriptor *a_222basis_curve; -extern AttrDescriptor *a_223trim_1; -extern AttrDescriptor *a_224trim_2; -extern AttrDescriptor *a_225sense_agreement; -extern AttrDescriptor *a_226master_representation; - -class SdaiTrimmed_curve : public SdaiBounded_curve { - -#ifdef __OSTORE__ - friend void SdaiTrimmed_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_curve ; - SdaiTrimming_selects _trim_1 ; // of trimming_select - - SdaiTrimming_selects _trim_2 ; // of trimming_select - - SCLP23(BOOL) _sense_agreement ; - SdaiTrimming_preference_var _master_representation ; - public: - - SdaiTrimmed_curve ( ); - SdaiTrimmed_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiTrimmed_curve (SdaiTrimmed_curve& e ); - ~SdaiTrimmed_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 122 ; } - const SdaiCurve_ptr basis_curve_() const; - void basis_curve_ (const SdaiCurve_ptr x); - - const SdaiTrimming_selects_ptr trim_1_() const; - void trim_1_ (const SdaiTrimming_selects_ptr x); - - const SdaiTrimming_selects_ptr trim_2_() const; - void trim_2_ (const SdaiTrimming_selects_ptr x); - - const SCLBOOL(Bool) sense_agreement_() const; - void sense_agreement_ (const SCLBOOL(Bool) x); - - const SdaiTrimming_preference_var master_representation_() const; - void master_representation_ (const SdaiTrimming_preference_var x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiTrimmed_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiTrimmed_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiTrimmed_curve () { return (SCLP23(Application_instance_ptr)) new SdaiTrimmed_curve ; } -#else -inline SdaiTrimmed_curve * -create_SdaiTrimmed_curve () { return new SdaiTrimmed_curve ; } -#endif - -///////// END_ENTITY trimmed_curve - - -///////// ENTITY product_definition_context - -extern AttrDescriptor *a_227life_cycle_stage; - -class SdaiProduct_definition_context : public SdaiApplication_context_element { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _life_cycle_stage ; - public: - - SdaiProduct_definition_context ( ); - SdaiProduct_definition_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition_context (SdaiProduct_definition_context& e ); - ~SdaiProduct_definition_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 123 ; } - const SdaiLabel life_cycle_stage_() const; - void life_cycle_stage_ (const SdaiLabel x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_context () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_context ; } -#else -inline SdaiProduct_definition_context * -create_SdaiProduct_definition_context () { return new SdaiProduct_definition_context ; } -#endif - -///////// END_ENTITY product_definition_context - - -///////// ENTITY item_defined_transformation - -extern AttrDescriptor *a_228name; -extern AttrDescriptor *a_229description; -extern AttrDescriptor *a_230transform_item_1; -extern AttrDescriptor *a_231transform_item_2; - -class SdaiItem_defined_transformation : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiItem_defined_transformation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _transform_item_1 ; - SCLP23(Application_instance_ptr) _transform_item_2 ; - public: - - SdaiItem_defined_transformation ( ); - SdaiItem_defined_transformation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiItem_defined_transformation (SdaiItem_defined_transformation& e ); - ~SdaiItem_defined_transformation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 124 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiRepresentation_item_ptr transform_item_1_() const; - void transform_item_1_ (const SdaiRepresentation_item_ptr x); - - const SdaiRepresentation_item_ptr transform_item_2_() const; - void transform_item_2_ (const SdaiRepresentation_item_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiItem_defined_transformation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiItem_defined_transformation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiItem_defined_transformation () { return (SCLP23(Application_instance_ptr)) new SdaiItem_defined_transformation ; } -#else -inline SdaiItem_defined_transformation * -create_SdaiItem_defined_transformation () { return new SdaiItem_defined_transformation ; } -#endif - -///////// END_ENTITY item_defined_transformation - - -///////// ENTITY action_method - -extern AttrDescriptor *a_232name; -extern AttrDescriptor *a_233description; -extern AttrDescriptor *a_234consequence; -extern AttrDescriptor *a_235purpose; - -class SdaiAction_method : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAction_method_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(String) _consequence ; - SCLP23(String) _purpose ; - public: - - SdaiAction_method ( ); - SdaiAction_method (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAction_method (SdaiAction_method& e ); - ~SdaiAction_method (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 125 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiText consequence_() const; - void consequence_ (const SdaiText x); - - const SdaiText purpose_() const; - void purpose_ (const SdaiText x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAction_method_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAction_method(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAction_method () { return (SCLP23(Application_instance_ptr)) new SdaiAction_method ; } -#else -inline SdaiAction_method * -create_SdaiAction_method () { return new SdaiAction_method ; } -#endif - -///////// END_ENTITY action_method - - -///////// ENTITY product_category_relationship - -extern AttrDescriptor *a_236name; -extern AttrDescriptor *a_237description; -extern AttrDescriptor *a_238category; -extern AttrDescriptor *a_239sub_category; - -class SdaiProduct_category_relationship : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProduct_category_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _category ; - SCLP23(Application_instance_ptr) _sub_category ; - public: - - SdaiProduct_category_relationship ( ); - SdaiProduct_category_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_category_relationship (SdaiProduct_category_relationship& e ); - ~SdaiProduct_category_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 126 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiProduct_category_ptr category_() const; - void category_ (const SdaiProduct_category_ptr x); - - const SdaiProduct_category_ptr sub_category_() const; - void sub_category_ (const SdaiProduct_category_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_category_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_category_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_category_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_category_relationship ; } -#else -inline SdaiProduct_category_relationship * -create_SdaiProduct_category_relationship () { return new SdaiProduct_category_relationship ; } -#endif - -///////// END_ENTITY product_category_relationship - - -///////// ENTITY plane_angle_measure_with_unit - - -class SdaiPlane_angle_measure_with_unit : public SdaiMeasure_with_unit { - -#ifdef __OSTORE__ - friend void SdaiPlane_angle_measure_with_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiPlane_angle_measure_with_unit ( ); - SdaiPlane_angle_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPlane_angle_measure_with_unit (SdaiPlane_angle_measure_with_unit& e ); - ~SdaiPlane_angle_measure_with_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 127 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPlane_angle_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPlane_angle_measure_with_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPlane_angle_measure_with_unit () { return (SCLP23(Application_instance_ptr)) new SdaiPlane_angle_measure_with_unit ; } -#else -inline SdaiPlane_angle_measure_with_unit * -create_SdaiPlane_angle_measure_with_unit () { return new SdaiPlane_angle_measure_with_unit ; } -#endif - -///////// END_ENTITY plane_angle_measure_with_unit - - -///////// ENTITY vertex - - -class SdaiVertex : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiVertex_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiVertex ( ); - SdaiVertex (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiVertex (SdaiVertex& e ); - ~SdaiVertex (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 128 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiVertex_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiVertex(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiVertex () { return (SCLP23(Application_instance_ptr)) new SdaiVertex ; } -#else -inline SdaiVertex * -create_SdaiVertex () { return new SdaiVertex ; } -#endif - -///////// END_ENTITY vertex - - -///////// ENTITY representation_map - -extern AttrDescriptor *a_240mapping_origin; -extern AttrDescriptor *a_241mapped_representation; -extern Inverse_attribute *a_242Imap_usage; - -class SdaiRepresentation_map : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiRepresentation_map_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _mapping_origin ; - SCLP23(Application_instance_ptr) _mapped_representation ; - EntityAggregate _map_usage ; // of mapped_item - - public: - - SdaiRepresentation_map ( ); - SdaiRepresentation_map (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRepresentation_map (SdaiRepresentation_map& e ); - ~SdaiRepresentation_map (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 129 ; } - const SdaiRepresentation_item_ptr mapping_origin_() const; - void mapping_origin_ (const SdaiRepresentation_item_ptr x); - - const SdaiRepresentation_ptr mapped_representation_() const; - void mapped_representation_ (const SdaiRepresentation_ptr x); - - const EntityAggregate_ptr map_usage_() const; - void map_usage_ (const EntityAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRepresentation_map_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_map(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRepresentation_map () { return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_map ; } -#else -inline SdaiRepresentation_map * -create_SdaiRepresentation_map () { return new SdaiRepresentation_map ; } -#endif - -///////// END_ENTITY representation_map - - -///////// ENTITY product_definition_effectivity - -extern AttrDescriptor *a_243usage; - -class SdaiProduct_definition_effectivity : public SdaiEffectivity { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_effectivity_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _usage ; - public: - - SdaiProduct_definition_effectivity ( ); - SdaiProduct_definition_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition_effectivity (SdaiProduct_definition_effectivity& e ); - ~SdaiProduct_definition_effectivity (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 130 ; } - const SdaiProduct_definition_relationship_ptr usage_() const; - void usage_ (const SdaiProduct_definition_relationship_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_effectivity(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_effectivity () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_effectivity ; } -#else -inline SdaiProduct_definition_effectivity * -create_SdaiProduct_definition_effectivity () { return new SdaiProduct_definition_effectivity ; } -#endif - -///////// END_ENTITY product_definition_effectivity - - -///////// ENTITY configuration_effectivity - -extern AttrDescriptor *a_244configuration; - -class SdaiConfiguration_effectivity : public SdaiProduct_definition_effectivity { - -#ifdef __OSTORE__ - friend void SdaiConfiguration_effectivity_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _configuration ; - public: - - SdaiConfiguration_effectivity ( ); - SdaiConfiguration_effectivity (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiConfiguration_effectivity (SdaiConfiguration_effectivity& e ); - ~SdaiConfiguration_effectivity (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 131 ; } - const SdaiConfiguration_design_ptr configuration_() const; - void configuration_ (const SdaiConfiguration_design_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiConfiguration_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiConfiguration_effectivity(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiConfiguration_effectivity () { return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_effectivity ; } -#else -inline SdaiConfiguration_effectivity * -create_SdaiConfiguration_effectivity () { return new SdaiConfiguration_effectivity ; } -#endif - -///////// END_ENTITY configuration_effectivity - - -///////// ENTITY ellipse - -extern AttrDescriptor *a_245semi_axis_1; -extern AttrDescriptor *a_246semi_axis_2; - -class SdaiEllipse : public SdaiConic { - -#ifdef __OSTORE__ - friend void SdaiEllipse_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _semi_axis_1 ; - SCLP23(Real) _semi_axis_2 ; - public: - - SdaiEllipse ( ); - SdaiEllipse (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiEllipse (SdaiEllipse& e ); - ~SdaiEllipse (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 132 ; } - const SdaiPositive_length_measure semi_axis_1_() const; - void semi_axis_1_ (const SdaiPositive_length_measure x); - - const SdaiPositive_length_measure semi_axis_2_() const; - void semi_axis_2_ (const SdaiPositive_length_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiEllipse_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiEllipse(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiEllipse () { return (SCLP23(Application_instance_ptr)) new SdaiEllipse ; } -#else -inline SdaiEllipse * -create_SdaiEllipse () { return new SdaiEllipse ; } -#endif - -///////// END_ENTITY ellipse - - -///////// ENTITY context_dependent_unit - -extern AttrDescriptor *a_247name; - -class SdaiContext_dependent_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiContext_dependent_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - public: - - SdaiContext_dependent_unit ( ); - SdaiContext_dependent_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiContext_dependent_unit (SdaiContext_dependent_unit& e ); - ~SdaiContext_dependent_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 133 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiContext_dependent_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiContext_dependent_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiContext_dependent_unit () { return (SCLP23(Application_instance_ptr)) new SdaiContext_dependent_unit ; } -#else -inline SdaiContext_dependent_unit * -create_SdaiContext_dependent_unit () { return new SdaiContext_dependent_unit ; } -#endif - -///////// END_ENTITY context_dependent_unit - - -///////// ENTITY alternate_product_relationship - -extern AttrDescriptor *a_248name; -extern AttrDescriptor *a_249description; -extern AttrDescriptor *a_250alternate; -extern AttrDescriptor *a_251base; -extern AttrDescriptor *a_252basis; - -class SdaiAlternate_product_relationship : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAlternate_product_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _alternate ; - SCLP23(Application_instance_ptr) _base ; - SCLP23(String) _basis ; - public: - - SdaiAlternate_product_relationship ( ); - SdaiAlternate_product_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAlternate_product_relationship (SdaiAlternate_product_relationship& e ); - ~SdaiAlternate_product_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 134 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiProduct_ptr alternate_() const; - void alternate_ (const SdaiProduct_ptr x); - - const SdaiProduct_ptr base_() const; - void base_ (const SdaiProduct_ptr x); - - const SdaiText basis_() const; - void basis_ (const SdaiText x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAlternate_product_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAlternate_product_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAlternate_product_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiAlternate_product_relationship ; } -#else -inline SdaiAlternate_product_relationship * -create_SdaiAlternate_product_relationship () { return new SdaiAlternate_product_relationship ; } -#endif - -///////// END_ENTITY alternate_product_relationship - - -///////// ENTITY document_type - -extern AttrDescriptor *a_253product_data_type; - -class SdaiDocument_type : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDocument_type_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _product_data_type ; - public: - - SdaiDocument_type ( ); - SdaiDocument_type (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDocument_type (SdaiDocument_type& e ); - ~SdaiDocument_type (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 135 ; } - const SdaiLabel product_data_type_() const; - void product_data_type_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDocument_type_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDocument_type(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDocument_type () { return (SCLP23(Application_instance_ptr)) new SdaiDocument_type ; } -#else -inline SdaiDocument_type * -create_SdaiDocument_type () { return new SdaiDocument_type ; } -#endif - -///////// END_ENTITY document_type - - -///////// ENTITY document_reference - -extern AttrDescriptor *a_254assigned_document; -extern AttrDescriptor *a_255source; - -class SdaiDocument_reference : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDocument_reference_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_document ; - SCLP23(String) _source ; - public: - - SdaiDocument_reference ( ); - SdaiDocument_reference (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDocument_reference (SdaiDocument_reference& e ); - ~SdaiDocument_reference (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 136 ; } - const SdaiDocument_ptr assigned_document_() const; - void assigned_document_ (const SdaiDocument_ptr x); - - const SdaiLabel source_() const; - void source_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDocument_reference_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDocument_reference(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDocument_reference () { return (SCLP23(Application_instance_ptr)) new SdaiDocument_reference ; } -#else -inline SdaiDocument_reference * -create_SdaiDocument_reference () { return new SdaiDocument_reference ; } -#endif - -///////// END_ENTITY document_reference - - -///////// ENTITY mechanical_context - - -class SdaiMechanical_context : public SdaiProduct_context { - -#ifdef __OSTORE__ - friend void SdaiMechanical_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiMechanical_context ( ); - SdaiMechanical_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiMechanical_context (SdaiMechanical_context& e ); - ~SdaiMechanical_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 137 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiMechanical_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiMechanical_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiMechanical_context () { return (SCLP23(Application_instance_ptr)) new SdaiMechanical_context ; } -#else -inline SdaiMechanical_context * -create_SdaiMechanical_context () { return new SdaiMechanical_context ; } -#endif - -///////// END_ENTITY mechanical_context - - -///////// ENTITY shell_based_wireframe_model - -extern AttrDescriptor *a_256sbwm_boundary; - -class SdaiShell_based_wireframe_model : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiShell_based_wireframe_model_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiShells _sbwm_boundary ; // of shell - - public: - - SdaiShell_based_wireframe_model ( ); - SdaiShell_based_wireframe_model (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiShell_based_wireframe_model (SdaiShell_based_wireframe_model& e ); - ~SdaiShell_based_wireframe_model (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 138 ; } - const SdaiShells_ptr sbwm_boundary_() const; - void sbwm_boundary_ (const SdaiShells_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiShell_based_wireframe_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiShell_based_wireframe_model(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiShell_based_wireframe_model () { return (SCLP23(Application_instance_ptr)) new SdaiShell_based_wireframe_model ; } -#else -inline SdaiShell_based_wireframe_model * -create_SdaiShell_based_wireframe_model () { return new SdaiShell_based_wireframe_model ; } -#endif - -///////// END_ENTITY shell_based_wireframe_model - - -///////// ENTITY contract - -extern AttrDescriptor *a_257name; -extern AttrDescriptor *a_258purpose; -extern AttrDescriptor *a_259kind; - -class SdaiContract : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiContract_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _purpose ; - SCLP23(Application_instance_ptr) _kind ; - public: - - SdaiContract ( ); - SdaiContract (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiContract (SdaiContract& e ); - ~SdaiContract (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 139 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText purpose_() const; - void purpose_ (const SdaiText x); - - const SdaiContract_type_ptr kind_() const; - void kind_ (const SdaiContract_type_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiContract_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiContract(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiContract () { return (SCLP23(Application_instance_ptr)) new SdaiContract ; } -#else -inline SdaiContract * -create_SdaiContract () { return new SdaiContract ; } -#endif - -///////// END_ENTITY contract - - -///////// ENTITY dimensional_exponents - -extern AttrDescriptor *a_260length_exponent; -extern AttrDescriptor *a_261mass_exponent; -extern AttrDescriptor *a_262time_exponent; -extern AttrDescriptor *a_263electric_current_exponent; -extern AttrDescriptor *a_264thermodynamic_temperature_exponent; -extern AttrDescriptor *a_265amount_of_substance_exponent; -extern AttrDescriptor *a_266luminous_intensity_exponent; - -class SdaiDimensional_exponents : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDimensional_exponents_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _length_exponent ; - SCLP23(Real) _mass_exponent ; - SCLP23(Real) _time_exponent ; - SCLP23(Real) _electric_current_exponent ; - SCLP23(Real) _thermodynamic_temperature_exponent ; - SCLP23(Real) _amount_of_substance_exponent ; - SCLP23(Real) _luminous_intensity_exponent ; - public: - - SdaiDimensional_exponents ( ); - SdaiDimensional_exponents (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDimensional_exponents (SdaiDimensional_exponents& e ); - ~SdaiDimensional_exponents (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 140 ; } - const SCLP23(Real) length_exponent_() const; - void length_exponent_ (const SCLP23(Real) x); - - const SCLP23(Real) mass_exponent_() const; - void mass_exponent_ (const SCLP23(Real) x); - - const SCLP23(Real) time_exponent_() const; - void time_exponent_ (const SCLP23(Real) x); - - const SCLP23(Real) electric_current_exponent_() const; - void electric_current_exponent_ (const SCLP23(Real) x); - - const SCLP23(Real) thermodynamic_temperature_exponent_() const; - void thermodynamic_temperature_exponent_ (const SCLP23(Real) x); - - const SCLP23(Real) amount_of_substance_exponent_() const; - void amount_of_substance_exponent_ (const SCLP23(Real) x); - - const SCLP23(Real) luminous_intensity_exponent_() const; - void luminous_intensity_exponent_ (const SCLP23(Real) x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDimensional_exponents_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDimensional_exponents(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDimensional_exponents () { return (SCLP23(Application_instance_ptr)) new SdaiDimensional_exponents ; } -#else -inline SdaiDimensional_exponents * -create_SdaiDimensional_exponents () { return new SdaiDimensional_exponents ; } -#endif - -///////// END_ENTITY dimensional_exponents - - -///////// ENTITY start_request - -extern AttrDescriptor *a_267items; - -class SdaiStart_request : public SdaiAction_request_assignment { - -#ifdef __OSTORE__ - friend void SdaiStart_request_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiStart_request_items _items ; // of start_request_item - - public: - - SdaiStart_request ( ); - SdaiStart_request (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiStart_request (SdaiStart_request& e ); - ~SdaiStart_request (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 141 ; } - const SdaiStart_request_items_ptr items_() const; - void items_ (const SdaiStart_request_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiStart_request_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiStart_request(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiStart_request () { return (SCLP23(Application_instance_ptr)) new SdaiStart_request ; } -#else -inline SdaiStart_request * -create_SdaiStart_request () { return new SdaiStart_request ; } -#endif - -///////// END_ENTITY start_request - - -///////// ENTITY cc_design_specification_reference - -extern AttrDescriptor *a_268items; - -class SdaiCc_design_specification_reference : public SdaiDocument_reference { - -#ifdef __OSTORE__ - friend void SdaiCc_design_specification_reference_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiSpecified_items _items ; // of specified_item - - public: - - SdaiCc_design_specification_reference ( ); - SdaiCc_design_specification_reference (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCc_design_specification_reference (SdaiCc_design_specification_reference& e ); - ~SdaiCc_design_specification_reference (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 142 ; } - const SdaiSpecified_items_ptr items_() const; - void items_ (const SdaiSpecified_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCc_design_specification_reference_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCc_design_specification_reference(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCc_design_specification_reference () { return (SCLP23(Application_instance_ptr)) new SdaiCc_design_specification_reference ; } -#else -inline SdaiCc_design_specification_reference * -create_SdaiCc_design_specification_reference () { return new SdaiCc_design_specification_reference ; } -#endif - -///////// END_ENTITY cc_design_specification_reference - - -///////// ENTITY supplied_part_relationship - - -class SdaiSupplied_part_relationship : public SdaiProduct_definition_relationship { - -#ifdef __OSTORE__ - friend void SdaiSupplied_part_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiSupplied_part_relationship ( ); - SdaiSupplied_part_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSupplied_part_relationship (SdaiSupplied_part_relationship& e ); - ~SdaiSupplied_part_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 143 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSupplied_part_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSupplied_part_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSupplied_part_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiSupplied_part_relationship ; } -#else -inline SdaiSupplied_part_relationship * -create_SdaiSupplied_part_relationship () { return new SdaiSupplied_part_relationship ; } -#endif - -///////// END_ENTITY supplied_part_relationship - - -///////// ENTITY context_dependent_shape_representation - -extern AttrDescriptor *a_269representation_relation; -extern AttrDescriptor *a_270represented_product_relation; - -class SdaiContext_dependent_shape_representation : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiContext_dependent_shape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _representation_relation ; - SCLP23(Application_instance_ptr) _represented_product_relation ; - public: - - SdaiContext_dependent_shape_representation ( ); - SdaiContext_dependent_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiContext_dependent_shape_representation (SdaiContext_dependent_shape_representation& e ); - ~SdaiContext_dependent_shape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 144 ; } - const SdaiShape_representation_relationship_ptr representation_relation_() const; - void representation_relation_ (const SdaiShape_representation_relationship_ptr x); - - const SdaiProduct_definition_shape_ptr represented_product_relation_() const; - void represented_product_relation_ (const SdaiProduct_definition_shape_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiContext_dependent_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiContext_dependent_shape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiContext_dependent_shape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiContext_dependent_shape_representation ; } -#else -inline SdaiContext_dependent_shape_representation * -create_SdaiContext_dependent_shape_representation () { return new SdaiContext_dependent_shape_representation ; } -#endif - -///////// END_ENTITY context_dependent_shape_representation - - -///////// ENTITY ordinal_date - -extern AttrDescriptor *a_271day_component; - -class SdaiOrdinal_date : public SdaiDate { - -#ifdef __OSTORE__ - friend void SdaiOrdinal_date_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _day_component ; - public: - - SdaiOrdinal_date ( ); - SdaiOrdinal_date (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOrdinal_date (SdaiOrdinal_date& e ); - ~SdaiOrdinal_date (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 145 ; } - const SdaiDay_in_year_number day_component_() const; - void day_component_ (const SdaiDay_in_year_number x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOrdinal_date_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOrdinal_date(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOrdinal_date () { return (SCLP23(Application_instance_ptr)) new SdaiOrdinal_date ; } -#else -inline SdaiOrdinal_date * -create_SdaiOrdinal_date () { return new SdaiOrdinal_date ; } -#endif - -///////// END_ENTITY ordinal_date - - -///////// ENTITY face_outer_bound - - -class SdaiFace_outer_bound : public SdaiFace_bound { - -#ifdef __OSTORE__ - friend void SdaiFace_outer_bound_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiFace_outer_bound ( ); - SdaiFace_outer_bound (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiFace_outer_bound (SdaiFace_outer_bound& e ); - ~SdaiFace_outer_bound (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 146 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiFace_outer_bound_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiFace_outer_bound(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiFace_outer_bound () { return (SCLP23(Application_instance_ptr)) new SdaiFace_outer_bound ; } -#else -inline SdaiFace_outer_bound * -create_SdaiFace_outer_bound () { return new SdaiFace_outer_bound ; } -#endif - -///////// END_ENTITY face_outer_bound - - -///////// ENTITY mass_measure_with_unit - - -class SdaiMass_measure_with_unit : public SdaiMeasure_with_unit { - -#ifdef __OSTORE__ - friend void SdaiMass_measure_with_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiMass_measure_with_unit ( ); - SdaiMass_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiMass_measure_with_unit (SdaiMass_measure_with_unit& e ); - ~SdaiMass_measure_with_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 147 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiMass_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiMass_measure_with_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiMass_measure_with_unit () { return (SCLP23(Application_instance_ptr)) new SdaiMass_measure_with_unit ; } -#else -inline SdaiMass_measure_with_unit * -create_SdaiMass_measure_with_unit () { return new SdaiMass_measure_with_unit ; } -#endif - -///////// END_ENTITY mass_measure_with_unit - - -///////// ENTITY brep_with_voids - -extern AttrDescriptor *a_272voids; - -class SdaiBrep_with_voids : public SdaiManifold_solid_brep { - -#ifdef __OSTORE__ - friend void SdaiBrep_with_voids_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _voids ; // of oriented_closed_shell - - public: - - SdaiBrep_with_voids ( ); - SdaiBrep_with_voids (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiBrep_with_voids (SdaiBrep_with_voids& e ); - ~SdaiBrep_with_voids (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 148 ; } - const EntityAggregate_ptr voids_() const; - void voids_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiBrep_with_voids_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiBrep_with_voids(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiBrep_with_voids () { return (SCLP23(Application_instance_ptr)) new SdaiBrep_with_voids ; } -#else -inline SdaiBrep_with_voids * -create_SdaiBrep_with_voids () { return new SdaiBrep_with_voids ; } -#endif - -///////// END_ENTITY brep_with_voids - - -///////// ENTITY week_of_year_and_day_date - -extern AttrDescriptor *a_273week_component; -extern AttrDescriptor *a_274day_component; - -class SdaiWeek_of_year_and_day_date : public SdaiDate { - -#ifdef __OSTORE__ - friend void SdaiWeek_of_year_and_day_date_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _week_component ; - SCLP23(Integer) _day_component ; // OPTIONAL - public: - - SdaiWeek_of_year_and_day_date ( ); - SdaiWeek_of_year_and_day_date (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiWeek_of_year_and_day_date (SdaiWeek_of_year_and_day_date& e ); - ~SdaiWeek_of_year_and_day_date (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 149 ; } - const SdaiWeek_in_year_number week_component_() const; - void week_component_ (const SdaiWeek_in_year_number x); - - const SdaiDay_in_week_number day_component_() const; - void day_component_ (const SdaiDay_in_week_number x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiWeek_of_year_and_day_date_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiWeek_of_year_and_day_date(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiWeek_of_year_and_day_date () { return (SCLP23(Application_instance_ptr)) new SdaiWeek_of_year_and_day_date ; } -#else -inline SdaiWeek_of_year_and_day_date * -create_SdaiWeek_of_year_and_day_date () { return new SdaiWeek_of_year_and_day_date ; } -#endif - -///////// END_ENTITY week_of_year_and_day_date - - -///////// ENTITY point_on_curve - -extern AttrDescriptor *a_275basis_curve; -extern AttrDescriptor *a_276point_parameter; - -class SdaiPoint_on_curve : public SdaiPoint { - -#ifdef __OSTORE__ - friend void SdaiPoint_on_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_curve ; - SCLP23(Real) _point_parameter ; - public: - - SdaiPoint_on_curve ( ); - SdaiPoint_on_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPoint_on_curve (SdaiPoint_on_curve& e ); - ~SdaiPoint_on_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 150 ; } - const SdaiCurve_ptr basis_curve_() const; - void basis_curve_ (const SdaiCurve_ptr x); - - const SdaiParameter_value point_parameter_() const; - void point_parameter_ (const SdaiParameter_value x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPoint_on_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPoint_on_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPoint_on_curve () { return (SCLP23(Application_instance_ptr)) new SdaiPoint_on_curve ; } -#else -inline SdaiPoint_on_curve * -create_SdaiPoint_on_curve () { return new SdaiPoint_on_curve ; } -#endif - -///////// END_ENTITY point_on_curve - - -///////// ENTITY shell_based_wireframe_shape_representation - - -class SdaiShell_based_wireframe_shape_representation : public SdaiShape_representation { - -#ifdef __OSTORE__ - friend void SdaiShell_based_wireframe_shape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiShell_based_wireframe_shape_representation ( ); - SdaiShell_based_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiShell_based_wireframe_shape_representation (SdaiShell_based_wireframe_shape_representation& e ); - ~SdaiShell_based_wireframe_shape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 151 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiShell_based_wireframe_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiShell_based_wireframe_shape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiShell_based_wireframe_shape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiShell_based_wireframe_shape_representation ; } -#else -inline SdaiShell_based_wireframe_shape_representation * -create_SdaiShell_based_wireframe_shape_representation () { return new SdaiShell_based_wireframe_shape_representation ; } -#endif - -///////// END_ENTITY shell_based_wireframe_shape_representation - - -///////// ENTITY face - -extern AttrDescriptor *a_277bounds; - -class SdaiFace : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiFace_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _bounds ; // of face_bound - - public: - - SdaiFace ( ); - SdaiFace (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiFace (SdaiFace& e ); - ~SdaiFace (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 152 ; } - const EntityAggregate_ptr bounds_() const; - void bounds_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiFace_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiFace(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiFace () { return (SCLP23(Application_instance_ptr)) new SdaiFace ; } -#else -inline SdaiFace * -create_SdaiFace () { return new SdaiFace ; } -#endif - -///////// END_ENTITY face - - -///////// ENTITY face_surface - -extern AttrDescriptor *a_278face_geometry; -extern AttrDescriptor *a_279same_sense; - -class SdaiFace_surface : public SdaiFace { - -#ifdef __OSTORE__ - friend void SdaiFace_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _face_geometry ; - SCLP23(BOOL) _same_sense ; - public: - - SdaiFace_surface ( ); - SdaiFace_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiFace_surface (SdaiFace_surface& e ); - ~SdaiFace_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 153 ; } - const SdaiSurface_ptr face_geometry_() const; - void face_geometry_ (const SdaiSurface_ptr x); - - const SCLBOOL(Bool) same_sense_() const; - void same_sense_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiFace_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiFace_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiFace_surface () { return (SCLP23(Application_instance_ptr)) new SdaiFace_surface ; } -#else -inline SdaiFace_surface * -create_SdaiFace_surface () { return new SdaiFace_surface ; } -#endif - -///////// END_ENTITY face_surface - - -///////// ENTITY oriented_face - -extern AttrDescriptor *a_280face_element; -extern AttrDescriptor *a_281orientation; -extern Derived_attribute *a_282Dface_bounds; - -class SdaiOriented_face : public SdaiFace { - -#ifdef __OSTORE__ - friend void SdaiOriented_face_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _face_element ; - SCLP23(BOOL) _orientation ; - public: - - SdaiOriented_face ( ); - SdaiOriented_face (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOriented_face (SdaiOriented_face& e ); - ~SdaiOriented_face (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 154 ; } - const SdaiFace_ptr face_element_() const; - void face_element_ (const SdaiFace_ptr x); - - const SCLBOOL(Bool) orientation_() const; - void orientation_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOriented_face_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOriented_face(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOriented_face () { return (SCLP23(Application_instance_ptr)) new SdaiOriented_face ; } -#else -inline SdaiOriented_face * -create_SdaiOriented_face () { return new SdaiOriented_face ; } -#endif - -///////// END_ENTITY oriented_face - - -///////// ENTITY surface_of_revolution - -extern AttrDescriptor *a_283axis_position; -extern Derived_attribute *a_284Daxis_line; - -class SdaiSurface_of_revolution : public SdaiSwept_surface { - -#ifdef __OSTORE__ - friend void SdaiSurface_of_revolution_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _axis_position ; - public: - - SdaiSurface_of_revolution ( ); - SdaiSurface_of_revolution (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSurface_of_revolution (SdaiSurface_of_revolution& e ); - ~SdaiSurface_of_revolution (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 155 ; } - const SdaiAxis1_placement_ptr axis_position_() const; - void axis_position_ (const SdaiAxis1_placement_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSurface_of_revolution_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSurface_of_revolution(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSurface_of_revolution () { return (SCLP23(Application_instance_ptr)) new SdaiSurface_of_revolution ; } -#else -inline SdaiSurface_of_revolution * -create_SdaiSurface_of_revolution () { return new SdaiSurface_of_revolution ; } -#endif - -///////// END_ENTITY surface_of_revolution - - -///////// ENTITY advanced_brep_shape_representation - - -class SdaiAdvanced_brep_shape_representation : public SdaiShape_representation { - -#ifdef __OSTORE__ - friend void SdaiAdvanced_brep_shape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiAdvanced_brep_shape_representation ( ); - SdaiAdvanced_brep_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAdvanced_brep_shape_representation (SdaiAdvanced_brep_shape_representation& e ); - ~SdaiAdvanced_brep_shape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 156 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAdvanced_brep_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAdvanced_brep_shape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAdvanced_brep_shape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiAdvanced_brep_shape_representation ; } -#else -inline SdaiAdvanced_brep_shape_representation * -create_SdaiAdvanced_brep_shape_representation () { return new SdaiAdvanced_brep_shape_representation ; } -#endif - -///////// END_ENTITY advanced_brep_shape_representation - - -///////// ENTITY edge_curve - -extern AttrDescriptor *a_285edge_geometry; -extern AttrDescriptor *a_286same_sense; - -class SdaiEdge_curve : public SdaiEdge { - -#ifdef __OSTORE__ - friend void SdaiEdge_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _edge_geometry ; - SCLP23(BOOL) _same_sense ; - public: - - SdaiEdge_curve ( ); - SdaiEdge_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiEdge_curve (SdaiEdge_curve& e ); - ~SdaiEdge_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 157 ; } - const SdaiCurve_ptr edge_geometry_() const; - void edge_geometry_ (const SdaiCurve_ptr x); - - const SCLBOOL(Bool) same_sense_() const; - void same_sense_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiEdge_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiEdge_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiEdge_curve () { return (SCLP23(Application_instance_ptr)) new SdaiEdge_curve ; } -#else -inline SdaiEdge_curve * -create_SdaiEdge_curve () { return new SdaiEdge_curve ; } -#endif - -///////// END_ENTITY edge_curve - - -///////// ENTITY point_replica - -extern AttrDescriptor *a_287parent_pt; -extern AttrDescriptor *a_288transformation; - -class SdaiPoint_replica : public SdaiPoint { - -#ifdef __OSTORE__ - friend void SdaiPoint_replica_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _parent_pt ; - SCLP23(Application_instance_ptr) _transformation ; - public: - - SdaiPoint_replica ( ); - SdaiPoint_replica (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPoint_replica (SdaiPoint_replica& e ); - ~SdaiPoint_replica (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 158 ; } - const SdaiPoint_ptr parent_pt_() const; - void parent_pt_ (const SdaiPoint_ptr x); - - const SdaiCartesian_transformation_operator_ptr transformation_() const; - void transformation_ (const SdaiCartesian_transformation_operator_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPoint_replica_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPoint_replica(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPoint_replica () { return (SCLP23(Application_instance_ptr)) new SdaiPoint_replica ; } -#else -inline SdaiPoint_replica * -create_SdaiPoint_replica () { return new SdaiPoint_replica ; } -#endif - -///////// END_ENTITY point_replica - - -///////// ENTITY product - -extern AttrDescriptor *a_289id; -extern AttrDescriptor *a_290name; -extern AttrDescriptor *a_291description; -extern AttrDescriptor *a_292frame_of_reference; - -class SdaiProduct : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProduct_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _name ; - SCLP23(String) _description ; - EntityAggregate _frame_of_reference ; // of product_context - - public: - - SdaiProduct ( ); - SdaiProduct (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct (SdaiProduct& e ); - ~SdaiProduct (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 159 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const EntityAggregate_ptr frame_of_reference_() const; - void frame_of_reference_ (const EntityAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct () { return (SCLP23(Application_instance_ptr)) new SdaiProduct ; } -#else -inline SdaiProduct * -create_SdaiProduct () { return new SdaiProduct ; } -#endif - -///////// END_ENTITY product - - -///////// ENTITY shape_aspect_relationship - -extern AttrDescriptor *a_293name; -extern AttrDescriptor *a_294description; -extern AttrDescriptor *a_295relating_shape_aspect; -extern AttrDescriptor *a_296related_shape_aspect; - -class SdaiShape_aspect_relationship : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiShape_aspect_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _relating_shape_aspect ; - SCLP23(Application_instance_ptr) _related_shape_aspect ; - public: - - SdaiShape_aspect_relationship ( ); - SdaiShape_aspect_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiShape_aspect_relationship (SdaiShape_aspect_relationship& e ); - ~SdaiShape_aspect_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 160 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiShape_aspect_ptr relating_shape_aspect_() const; - void relating_shape_aspect_ (const SdaiShape_aspect_ptr x); - - const SdaiShape_aspect_ptr related_shape_aspect_() const; - void related_shape_aspect_ (const SdaiShape_aspect_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiShape_aspect_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiShape_aspect_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiShape_aspect_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiShape_aspect_relationship ; } -#else -inline SdaiShape_aspect_relationship * -create_SdaiShape_aspect_relationship () { return new SdaiShape_aspect_relationship ; } -#endif - -///////// END_ENTITY shape_aspect_relationship - - -///////// ENTITY rectangular_trimmed_surface - -extern AttrDescriptor *a_297basis_surface; -extern AttrDescriptor *a_298u1; -extern AttrDescriptor *a_299u2; -extern AttrDescriptor *a_300v1; -extern AttrDescriptor *a_301v2; -extern AttrDescriptor *a_302usense; -extern AttrDescriptor *a_303vsense; - -class SdaiRectangular_trimmed_surface : public SdaiBounded_surface { - -#ifdef __OSTORE__ - friend void SdaiRectangular_trimmed_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_surface ; - SCLP23(Real) _u1 ; - SCLP23(Real) _u2 ; - SCLP23(Real) _v1 ; - SCLP23(Real) _v2 ; - SCLP23(BOOL) _usense ; - SCLP23(BOOL) _vsense ; - public: - - SdaiRectangular_trimmed_surface ( ); - SdaiRectangular_trimmed_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRectangular_trimmed_surface (SdaiRectangular_trimmed_surface& e ); - ~SdaiRectangular_trimmed_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 161 ; } - const SdaiSurface_ptr basis_surface_() const; - void basis_surface_ (const SdaiSurface_ptr x); - - const SdaiParameter_value u1_() const; - void u1_ (const SdaiParameter_value x); - - const SdaiParameter_value u2_() const; - void u2_ (const SdaiParameter_value x); - - const SdaiParameter_value v1_() const; - void v1_ (const SdaiParameter_value x); - - const SdaiParameter_value v2_() const; - void v2_ (const SdaiParameter_value x); - - const SCLBOOL(Bool) usense_() const; - void usense_ (const SCLBOOL(Bool) x); - - const SCLBOOL(Bool) vsense_() const; - void vsense_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRectangular_trimmed_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRectangular_trimmed_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRectangular_trimmed_surface () { return (SCLP23(Application_instance_ptr)) new SdaiRectangular_trimmed_surface ; } -#else -inline SdaiRectangular_trimmed_surface * -create_SdaiRectangular_trimmed_surface () { return new SdaiRectangular_trimmed_surface ; } -#endif - -///////// END_ENTITY rectangular_trimmed_surface - - -///////// ENTITY plane - - -class SdaiPlane : public SdaiElementary_surface { - -#ifdef __OSTORE__ - friend void SdaiPlane_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiPlane ( ); - SdaiPlane (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPlane (SdaiPlane& e ); - ~SdaiPlane (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 162 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPlane_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPlane(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPlane () { return (SCLP23(Application_instance_ptr)) new SdaiPlane ; } -#else -inline SdaiPlane * -create_SdaiPlane () { return new SdaiPlane ; } -#endif - -///////// END_ENTITY plane - - -///////// ENTITY action_assignment - -extern AttrDescriptor *a_304assigned_action; - -class SdaiAction_assignment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAction_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_action ; - public: - - SdaiAction_assignment ( ); - SdaiAction_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAction_assignment (SdaiAction_assignment& e ); - ~SdaiAction_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 163 ; } - const SdaiAction_ptr assigned_action_() const; - void assigned_action_ (const SdaiAction_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAction_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAction_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAction_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiAction_assignment ; } -#else -inline SdaiAction_assignment * -create_SdaiAction_assignment () { return new SdaiAction_assignment ; } -#endif - -///////// END_ENTITY action_assignment - - -///////// ENTITY change - -extern AttrDescriptor *a_305items; - -class SdaiChange : public SdaiAction_assignment { - -#ifdef __OSTORE__ - friend void SdaiChange_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiWork_items _items ; // of work_item - - public: - - SdaiChange ( ); - SdaiChange (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiChange (SdaiChange& e ); - ~SdaiChange (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 164 ; } - const SdaiWork_items_ptr items_() const; - void items_ (const SdaiWork_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiChange_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiChange(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiChange () { return (SCLP23(Application_instance_ptr)) new SdaiChange ; } -#else -inline SdaiChange * -create_SdaiChange () { return new SdaiChange ; } -#endif - -///////// END_ENTITY change - - -///////// ENTITY circle - -extern AttrDescriptor *a_306radius; - -class SdaiCircle : public SdaiConic { - -#ifdef __OSTORE__ - friend void SdaiCircle_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _radius ; - public: - - SdaiCircle ( ); - SdaiCircle (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCircle (SdaiCircle& e ); - ~SdaiCircle (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 165 ; } - const SdaiPositive_length_measure radius_() const; - void radius_ (const SdaiPositive_length_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCircle_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCircle(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCircle () { return (SCLP23(Application_instance_ptr)) new SdaiCircle ; } -#else -inline SdaiCircle * -create_SdaiCircle () { return new SdaiCircle ; } -#endif - -///////// END_ENTITY circle - - -///////// ENTITY line - -extern AttrDescriptor *a_307pnt; -extern AttrDescriptor *a_308dir; - -class SdaiLine : public SdaiCurve { - -#ifdef __OSTORE__ - friend void SdaiLine_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _pnt ; - SCLP23(Application_instance_ptr) _dir ; - public: - - SdaiLine ( ); - SdaiLine (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiLine (SdaiLine& e ); - ~SdaiLine (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 166 ; } - const SdaiCartesian_point_ptr pnt_() const; - void pnt_ (const SdaiCartesian_point_ptr x); - - const SdaiVector_ptr dir_() const; - void dir_ (const SdaiVector_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiLine_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiLine(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiLine () { return (SCLP23(Application_instance_ptr)) new SdaiLine ; } -#else -inline SdaiLine * -create_SdaiLine () { return new SdaiLine ; } -#endif - -///////// END_ENTITY line - - -///////// ENTITY property_definition_representation - -extern AttrDescriptor *a_309definition; -extern AttrDescriptor *a_310used_representation; - -class SdaiProperty_definition_representation : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProperty_definition_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _definition ; - SCLP23(Application_instance_ptr) _used_representation ; - public: - - SdaiProperty_definition_representation ( ); - SdaiProperty_definition_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProperty_definition_representation (SdaiProperty_definition_representation& e ); - ~SdaiProperty_definition_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 167 ; } - const SdaiProperty_definition_ptr definition_() const; - void definition_ (const SdaiProperty_definition_ptr x); - - const SdaiRepresentation_ptr used_representation_() const; - void used_representation_ (const SdaiRepresentation_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProperty_definition_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProperty_definition_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProperty_definition_representation () { return (SCLP23(Application_instance_ptr)) new SdaiProperty_definition_representation ; } -#else -inline SdaiProperty_definition_representation * -create_SdaiProperty_definition_representation () { return new SdaiProperty_definition_representation ; } -#endif - -///////// END_ENTITY property_definition_representation - - -///////// ENTITY geometric_set - -extern AttrDescriptor *a_311elements; - -class SdaiGeometric_set : public SdaiGeometric_representation_item { - -#ifdef __OSTORE__ - friend void SdaiGeometric_set_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiGeometric_set_selects _elements ; // of geometric_set_select - - public: - - SdaiGeometric_set ( ); - SdaiGeometric_set (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiGeometric_set (SdaiGeometric_set& e ); - ~SdaiGeometric_set (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 168 ; } - const SdaiGeometric_set_selects_ptr elements_() const; - void elements_ (const SdaiGeometric_set_selects_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiGeometric_set_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiGeometric_set(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiGeometric_set () { return (SCLP23(Application_instance_ptr)) new SdaiGeometric_set ; } -#else -inline SdaiGeometric_set * -create_SdaiGeometric_set () { return new SdaiGeometric_set ; } -#endif - -///////// END_ENTITY geometric_set - - -///////// ENTITY geometric_curve_set - - -class SdaiGeometric_curve_set : public SdaiGeometric_set { - -#ifdef __OSTORE__ - friend void SdaiGeometric_curve_set_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiGeometric_curve_set ( ); - SdaiGeometric_curve_set (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiGeometric_curve_set (SdaiGeometric_curve_set& e ); - ~SdaiGeometric_curve_set (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 169 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiGeometric_curve_set_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiGeometric_curve_set(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiGeometric_curve_set () { return (SCLP23(Application_instance_ptr)) new SdaiGeometric_curve_set ; } -#else -inline SdaiGeometric_curve_set * -create_SdaiGeometric_curve_set () { return new SdaiGeometric_curve_set ; } -#endif - -///////// END_ENTITY geometric_curve_set - - -///////// ENTITY personal_address - -extern AttrDescriptor *a_312people; -extern AttrDescriptor *a_313description; - -class SdaiPersonal_address : public SdaiAddress { - -#ifdef __OSTORE__ - friend void SdaiPersonal_address_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _people ; // of person - - SCLP23(String) _description ; - public: - - SdaiPersonal_address ( ); - SdaiPersonal_address (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPersonal_address (SdaiPersonal_address& e ); - ~SdaiPersonal_address (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 170 ; } - const EntityAggregate_ptr people_() const; - void people_ (const EntityAggregate_ptr x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPersonal_address_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPersonal_address(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPersonal_address () { return (SCLP23(Application_instance_ptr)) new SdaiPersonal_address ; } -#else -inline SdaiPersonal_address * -create_SdaiPersonal_address () { return new SdaiPersonal_address ; } -#endif - -///////// END_ENTITY personal_address - - -///////// ENTITY document_relationship - -extern AttrDescriptor *a_314name; -extern AttrDescriptor *a_315description; -extern AttrDescriptor *a_316relating_document; -extern AttrDescriptor *a_317related_document; - -class SdaiDocument_relationship : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDocument_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _relating_document ; - SCLP23(Application_instance_ptr) _related_document ; - public: - - SdaiDocument_relationship ( ); - SdaiDocument_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDocument_relationship (SdaiDocument_relationship& e ); - ~SdaiDocument_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 171 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiDocument_ptr relating_document_() const; - void relating_document_ (const SdaiDocument_ptr x); - - const SdaiDocument_ptr related_document_() const; - void related_document_ (const SdaiDocument_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDocument_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDocument_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDocument_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiDocument_relationship ; } -#else -inline SdaiDocument_relationship * -create_SdaiDocument_relationship () { return new SdaiDocument_relationship ; } -#endif - -///////// END_ENTITY document_relationship - - -///////// ENTITY pcurve - -extern AttrDescriptor *a_318basis_surface; -extern AttrDescriptor *a_319reference_to_curve; - -class SdaiPcurve : public SdaiCurve { - -#ifdef __OSTORE__ - friend void SdaiPcurve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_surface ; - SCLP23(Application_instance_ptr) _reference_to_curve ; - public: - - SdaiPcurve ( ); - SdaiPcurve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPcurve (SdaiPcurve& e ); - ~SdaiPcurve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 172 ; } - const SdaiSurface_ptr basis_surface_() const; - void basis_surface_ (const SdaiSurface_ptr x); - - const SdaiDefinitional_representation_ptr reference_to_curve_() const; - void reference_to_curve_ (const SdaiDefinitional_representation_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPcurve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPcurve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPcurve () { return (SCLP23(Application_instance_ptr)) new SdaiPcurve ; } -#else -inline SdaiPcurve * -create_SdaiPcurve () { return new SdaiPcurve ; } -#endif - -///////// END_ENTITY pcurve - - -///////// ENTITY outer_boundary_curve - - -class SdaiOuter_boundary_curve : public SdaiBoundary_curve { - -#ifdef __OSTORE__ - friend void SdaiOuter_boundary_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiOuter_boundary_curve ( ); - SdaiOuter_boundary_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOuter_boundary_curve (SdaiOuter_boundary_curve& e ); - ~SdaiOuter_boundary_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 173 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOuter_boundary_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOuter_boundary_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOuter_boundary_curve () { return (SCLP23(Application_instance_ptr)) new SdaiOuter_boundary_curve ; } -#else -inline SdaiOuter_boundary_curve * -create_SdaiOuter_boundary_curve () { return new SdaiOuter_boundary_curve ; } -#endif - -///////// END_ENTITY outer_boundary_curve - - -///////// ENTITY shape_representation_relationship - - -class SdaiShape_representation_relationship : public SdaiRepresentation_relationship { - -#ifdef __OSTORE__ - friend void SdaiShape_representation_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiShape_representation_relationship ( ); - SdaiShape_representation_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiShape_representation_relationship (SdaiShape_representation_relationship& e ); - ~SdaiShape_representation_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 174 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiShape_representation_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiShape_representation_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiShape_representation_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiShape_representation_relationship ; } -#else -inline SdaiShape_representation_relationship * -create_SdaiShape_representation_relationship () { return new SdaiShape_representation_relationship ; } -#endif - -///////// END_ENTITY shape_representation_relationship - - -///////// ENTITY assembly_component_usage_substitute - -extern AttrDescriptor *a_320name; -extern AttrDescriptor *a_321description; -extern AttrDescriptor *a_322base; -extern AttrDescriptor *a_323substitute; - -class SdaiAssembly_component_usage_substitute : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAssembly_component_usage_substitute_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _base ; - SCLP23(Application_instance_ptr) _substitute ; - public: - - SdaiAssembly_component_usage_substitute ( ); - SdaiAssembly_component_usage_substitute (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAssembly_component_usage_substitute (SdaiAssembly_component_usage_substitute& e ); - ~SdaiAssembly_component_usage_substitute (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 175 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiAssembly_component_usage_ptr base_() const; - void base_ (const SdaiAssembly_component_usage_ptr x); - - const SdaiAssembly_component_usage_ptr substitute_() const; - void substitute_ (const SdaiAssembly_component_usage_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAssembly_component_usage_substitute_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAssembly_component_usage_substitute(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAssembly_component_usage_substitute () { return (SCLP23(Application_instance_ptr)) new SdaiAssembly_component_usage_substitute ; } -#else -inline SdaiAssembly_component_usage_substitute * -create_SdaiAssembly_component_usage_substitute () { return new SdaiAssembly_component_usage_substitute ; } -#endif - -///////// END_ENTITY assembly_component_usage_substitute - - -///////// ENTITY degenerate_pcurve - -extern AttrDescriptor *a_324basis_surface; -extern AttrDescriptor *a_325reference_to_curve; - -class SdaiDegenerate_pcurve : public SdaiPoint { - -#ifdef __OSTORE__ - friend void SdaiDegenerate_pcurve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_surface ; - SCLP23(Application_instance_ptr) _reference_to_curve ; - public: - - SdaiDegenerate_pcurve ( ); - SdaiDegenerate_pcurve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDegenerate_pcurve (SdaiDegenerate_pcurve& e ); - ~SdaiDegenerate_pcurve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 176 ; } - const SdaiSurface_ptr basis_surface_() const; - void basis_surface_ (const SdaiSurface_ptr x); - - const SdaiDefinitional_representation_ptr reference_to_curve_() const; - void reference_to_curve_ (const SdaiDefinitional_representation_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDegenerate_pcurve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDegenerate_pcurve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDegenerate_pcurve () { return (SCLP23(Application_instance_ptr)) new SdaiDegenerate_pcurve ; } -#else -inline SdaiDegenerate_pcurve * -create_SdaiDegenerate_pcurve () { return new SdaiDegenerate_pcurve ; } -#endif - -///////// END_ENTITY degenerate_pcurve - - -///////// ENTITY evaluated_degenerate_pcurve - -extern AttrDescriptor *a_326equivalent_point; - -class SdaiEvaluated_degenerate_pcurve : public SdaiDegenerate_pcurve { - -#ifdef __OSTORE__ - friend void SdaiEvaluated_degenerate_pcurve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _equivalent_point ; - public: - - SdaiEvaluated_degenerate_pcurve ( ); - SdaiEvaluated_degenerate_pcurve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiEvaluated_degenerate_pcurve (SdaiEvaluated_degenerate_pcurve& e ); - ~SdaiEvaluated_degenerate_pcurve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 177 ; } - const SdaiCartesian_point_ptr equivalent_point_() const; - void equivalent_point_ (const SdaiCartesian_point_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiEvaluated_degenerate_pcurve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiEvaluated_degenerate_pcurve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiEvaluated_degenerate_pcurve () { return (SCLP23(Application_instance_ptr)) new SdaiEvaluated_degenerate_pcurve ; } -#else -inline SdaiEvaluated_degenerate_pcurve * -create_SdaiEvaluated_degenerate_pcurve () { return new SdaiEvaluated_degenerate_pcurve ; } -#endif - -///////// END_ENTITY evaluated_degenerate_pcurve - - -///////// ENTITY solid_angle_measure_with_unit - - -class SdaiSolid_angle_measure_with_unit : public SdaiMeasure_with_unit { - -#ifdef __OSTORE__ - friend void SdaiSolid_angle_measure_with_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiSolid_angle_measure_with_unit ( ); - SdaiSolid_angle_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSolid_angle_measure_with_unit (SdaiSolid_angle_measure_with_unit& e ); - ~SdaiSolid_angle_measure_with_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 178 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSolid_angle_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSolid_angle_measure_with_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSolid_angle_measure_with_unit () { return (SCLP23(Application_instance_ptr)) new SdaiSolid_angle_measure_with_unit ; } -#else -inline SdaiSolid_angle_measure_with_unit * -create_SdaiSolid_angle_measure_with_unit () { return new SdaiSolid_angle_measure_with_unit ; } -#endif - -///////// END_ENTITY solid_angle_measure_with_unit - - -///////// ENTITY connected_edge_set - -extern AttrDescriptor *a_327ces_edges; - -class SdaiConnected_edge_set : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiConnected_edge_set_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _ces_edges ; // of edge - - public: - - SdaiConnected_edge_set ( ); - SdaiConnected_edge_set (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiConnected_edge_set (SdaiConnected_edge_set& e ); - ~SdaiConnected_edge_set (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 179 ; } - const EntityAggregate_ptr ces_edges_() const; - void ces_edges_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiConnected_edge_set_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiConnected_edge_set(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiConnected_edge_set () { return (SCLP23(Application_instance_ptr)) new SdaiConnected_edge_set ; } -#else -inline SdaiConnected_edge_set * -create_SdaiConnected_edge_set () { return new SdaiConnected_edge_set ; } -#endif - -///////// END_ENTITY connected_edge_set - - -///////// ENTITY action - -extern AttrDescriptor *a_328name; -extern AttrDescriptor *a_329description; -extern AttrDescriptor *a_330chosen_method; - -class SdaiAction : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiAction_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _chosen_method ; - public: - - SdaiAction ( ); - SdaiAction (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAction (SdaiAction& e ); - ~SdaiAction (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 180 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiAction_method_ptr chosen_method_() const; - void chosen_method_ (const SdaiAction_method_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAction_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAction(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAction () { return (SCLP23(Application_instance_ptr)) new SdaiAction ; } -#else -inline SdaiAction * -create_SdaiAction () { return new SdaiAction ; } -#endif - -///////// END_ENTITY action - - -///////// ENTITY executed_action - - -class SdaiExecuted_action : public SdaiAction { - -#ifdef __OSTORE__ - friend void SdaiExecuted_action_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiExecuted_action ( ); - SdaiExecuted_action (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiExecuted_action (SdaiExecuted_action& e ); - ~SdaiExecuted_action (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 181 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiExecuted_action_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiExecuted_action(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiExecuted_action () { return (SCLP23(Application_instance_ptr)) new SdaiExecuted_action ; } -#else -inline SdaiExecuted_action * -create_SdaiExecuted_action () { return new SdaiExecuted_action ; } -#endif - -///////// END_ENTITY executed_action - - -///////// ENTITY directed_action - -extern AttrDescriptor *a_331directive; - -class SdaiDirected_action : public SdaiExecuted_action { - -#ifdef __OSTORE__ - friend void SdaiDirected_action_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _directive ; - public: - - SdaiDirected_action ( ); - SdaiDirected_action (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDirected_action (SdaiDirected_action& e ); - ~SdaiDirected_action (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 182 ; } - const SdaiAction_directive_ptr directive_() const; - void directive_ (const SdaiAction_directive_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDirected_action_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDirected_action(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDirected_action () { return (SCLP23(Application_instance_ptr)) new SdaiDirected_action ; } -#else -inline SdaiDirected_action * -create_SdaiDirected_action () { return new SdaiDirected_action ; } -#endif - -///////// END_ENTITY directed_action - - -///////// ENTITY organizational_project - -extern AttrDescriptor *a_332name; -extern AttrDescriptor *a_333description; -extern AttrDescriptor *a_334responsible_organizations; - -class SdaiOrganizational_project : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiOrganizational_project_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - EntityAggregate _responsible_organizations ; // of organization - - public: - - SdaiOrganizational_project ( ); - SdaiOrganizational_project (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOrganizational_project (SdaiOrganizational_project& e ); - ~SdaiOrganizational_project (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 183 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const EntityAggregate_ptr responsible_organizations_() const; - void responsible_organizations_ (const EntityAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOrganizational_project_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOrganizational_project(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOrganizational_project () { return (SCLP23(Application_instance_ptr)) new SdaiOrganizational_project ; } -#else -inline SdaiOrganizational_project * -create_SdaiOrganizational_project () { return new SdaiOrganizational_project ; } -#endif - -///////// END_ENTITY organizational_project - - -///////// ENTITY date_time_role - -extern AttrDescriptor *a_335name; - -class SdaiDate_time_role : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDate_time_role_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - public: - - SdaiDate_time_role ( ); - SdaiDate_time_role (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDate_time_role (SdaiDate_time_role& e ); - ~SdaiDate_time_role (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 184 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDate_time_role_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDate_time_role(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDate_time_role () { return (SCLP23(Application_instance_ptr)) new SdaiDate_time_role ; } -#else -inline SdaiDate_time_role * -create_SdaiDate_time_role () { return new SdaiDate_time_role ; } -#endif - -///////// END_ENTITY date_time_role - - -///////// ENTITY curve_bounded_surface - -extern AttrDescriptor *a_336basis_surface; -extern AttrDescriptor *a_337boundaries; -extern AttrDescriptor *a_338implicit_outer; - -class SdaiCurve_bounded_surface : public SdaiBounded_surface { - -#ifdef __OSTORE__ - friend void SdaiCurve_bounded_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_surface ; - EntityAggregate _boundaries ; // of boundary_curve - - SCLP23(BOOL) _implicit_outer ; - public: - - SdaiCurve_bounded_surface ( ); - SdaiCurve_bounded_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCurve_bounded_surface (SdaiCurve_bounded_surface& e ); - ~SdaiCurve_bounded_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 185 ; } - const SdaiSurface_ptr basis_surface_() const; - void basis_surface_ (const SdaiSurface_ptr x); - - const EntityAggregate_ptr boundaries_() const; - void boundaries_ (const EntityAggregate_ptr x); - - const SCLBOOL(Bool) implicit_outer_() const; - void implicit_outer_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCurve_bounded_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCurve_bounded_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCurve_bounded_surface () { return (SCLP23(Application_instance_ptr)) new SdaiCurve_bounded_surface ; } -#else -inline SdaiCurve_bounded_surface * -create_SdaiCurve_bounded_surface () { return new SdaiCurve_bounded_surface ; } -#endif - -///////// END_ENTITY curve_bounded_surface - - -///////// ENTITY closed_shell - - -class SdaiClosed_shell : public SdaiConnected_face_set { - -#ifdef __OSTORE__ - friend void SdaiClosed_shell_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiClosed_shell ( ); - SdaiClosed_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiClosed_shell (SdaiClosed_shell& e ); - ~SdaiClosed_shell (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 186 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiClosed_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiClosed_shell(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiClosed_shell () { return (SCLP23(Application_instance_ptr)) new SdaiClosed_shell ; } -#else -inline SdaiClosed_shell * -create_SdaiClosed_shell () { return new SdaiClosed_shell ; } -#endif - -///////// END_ENTITY closed_shell - - -///////// ENTITY design_make_from_relationship - - -class SdaiDesign_make_from_relationship : public SdaiProduct_definition_relationship { - -#ifdef __OSTORE__ - friend void SdaiDesign_make_from_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiDesign_make_from_relationship ( ); - SdaiDesign_make_from_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDesign_make_from_relationship (SdaiDesign_make_from_relationship& e ); - ~SdaiDesign_make_from_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 187 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDesign_make_from_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDesign_make_from_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDesign_make_from_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiDesign_make_from_relationship ; } -#else -inline SdaiDesign_make_from_relationship * -create_SdaiDesign_make_from_relationship () { return new SdaiDesign_make_from_relationship ; } -#endif - -///////// END_ENTITY design_make_from_relationship - - -///////// ENTITY definitional_representation - - -class SdaiDefinitional_representation : public SdaiRepresentation { - -#ifdef __OSTORE__ - friend void SdaiDefinitional_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiDefinitional_representation ( ); - SdaiDefinitional_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDefinitional_representation (SdaiDefinitional_representation& e ); - ~SdaiDefinitional_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 188 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDefinitional_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDefinitional_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDefinitional_representation () { return (SCLP23(Application_instance_ptr)) new SdaiDefinitional_representation ; } -#else -inline SdaiDefinitional_representation * -create_SdaiDefinitional_representation () { return new SdaiDefinitional_representation ; } -#endif - -///////// END_ENTITY definitional_representation - - -///////// ENTITY product_definition_shape - - -class SdaiProduct_definition_shape : public SdaiProperty_definition { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_shape_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiProduct_definition_shape ( ); - SdaiProduct_definition_shape (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition_shape (SdaiProduct_definition_shape& e ); - ~SdaiProduct_definition_shape (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 189 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_shape_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_shape(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_shape () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_shape ; } -#else -inline SdaiProduct_definition_shape * -create_SdaiProduct_definition_shape () { return new SdaiProduct_definition_shape ; } -#endif - -///////// END_ENTITY product_definition_shape - - -///////// ENTITY si_unit - -extern AttrDescriptor *a_339prefix; -extern AttrDescriptor *a_340name; -extern Derived_attribute *a_341Dnamed_unit_dimensions; - -class SdaiSi_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiSi_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiSi_prefix_var _prefix ; // OPTIONAL - SdaiSi_unit_name_var _name ; - public: - - SdaiSi_unit ( ); - SdaiSi_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSi_unit (SdaiSi_unit& e ); - ~SdaiSi_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 190 ; } - const SdaiSi_prefix_var prefix_() const; - void prefix_ (const SdaiSi_prefix_var x); - - const SdaiSi_unit_name_var name_() const; - void name_ (const SdaiSi_unit_name_var x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSi_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSi_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSi_unit () { return (SCLP23(Application_instance_ptr)) new SdaiSi_unit ; } -#else -inline SdaiSi_unit * -create_SdaiSi_unit () { return new SdaiSi_unit ; } -#endif - -///////// END_ENTITY si_unit - - -///////// ENTITY bezier_surface - - -class SdaiBezier_surface : public SdaiB_spline_surface { - -#ifdef __OSTORE__ - friend void SdaiBezier_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiBezier_surface ( ); - SdaiBezier_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiBezier_surface (SdaiBezier_surface& e ); - ~SdaiBezier_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 191 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiBezier_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiBezier_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiBezier_surface () { return (SCLP23(Application_instance_ptr)) new SdaiBezier_surface ; } -#else -inline SdaiBezier_surface * -create_SdaiBezier_surface () { return new SdaiBezier_surface ; } -#endif - -///////// END_ENTITY bezier_surface - - -///////// ENTITY certification_assignment - -extern AttrDescriptor *a_342assigned_certification; - -class SdaiCertification_assignment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiCertification_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_certification ; - public: - - SdaiCertification_assignment ( ); - SdaiCertification_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCertification_assignment (SdaiCertification_assignment& e ); - ~SdaiCertification_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 192 ; } - const SdaiCertification_ptr assigned_certification_() const; - void assigned_certification_ (const SdaiCertification_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCertification_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCertification_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCertification_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiCertification_assignment ; } -#else -inline SdaiCertification_assignment * -create_SdaiCertification_assignment () { return new SdaiCertification_assignment ; } -#endif - -///////// END_ENTITY certification_assignment - - -///////// ENTITY start_work - -extern AttrDescriptor *a_343items; - -class SdaiStart_work : public SdaiAction_assignment { - -#ifdef __OSTORE__ - friend void SdaiStart_work_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiWork_items _items ; // of work_item - - public: - - SdaiStart_work ( ); - SdaiStart_work (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiStart_work (SdaiStart_work& e ); - ~SdaiStart_work (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 193 ; } - const SdaiWork_items_ptr items_() const; - void items_ (const SdaiWork_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiStart_work_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiStart_work(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiStart_work () { return (SCLP23(Application_instance_ptr)) new SdaiStart_work ; } -#else -inline SdaiStart_work * -create_SdaiStart_work () { return new SdaiStart_work ; } -#endif - -///////// END_ENTITY start_work - - -///////// ENTITY contract_type - -extern AttrDescriptor *a_344description; - -class SdaiContract_type : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiContract_type_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _description ; - public: - - SdaiContract_type ( ); - SdaiContract_type (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiContract_type (SdaiContract_type& e ); - ~SdaiContract_type (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 194 ; } - const SdaiLabel description_() const; - void description_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiContract_type_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiContract_type(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiContract_type () { return (SCLP23(Application_instance_ptr)) new SdaiContract_type ; } -#else -inline SdaiContract_type * -create_SdaiContract_type () { return new SdaiContract_type ; } -#endif - -///////// END_ENTITY contract_type - - -///////// ENTITY b_spline_curve_with_knots - -extern AttrDescriptor *a_345knot_multiplicities; -extern AttrDescriptor *a_346knots; -extern AttrDescriptor *a_347knot_spec; -extern Derived_attribute *a_348Dupper_index_on_knots; - -class SdaiB_spline_curve_with_knots : public SdaiB_spline_curve { - -#ifdef __OSTORE__ - friend void SdaiB_spline_curve_with_knots_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - IntAggregate _knot_multiplicities ; - RealAggregate _knots ; // of parameter_value - - SdaiKnot_type_var _knot_spec ; - public: - - SdaiB_spline_curve_with_knots ( ); - SdaiB_spline_curve_with_knots (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiB_spline_curve_with_knots (SdaiB_spline_curve_with_knots& e ); - ~SdaiB_spline_curve_with_knots (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 195 ; } - const IntAggregate_ptr knot_multiplicities_() const; - void knot_multiplicities_ (const IntAggregate_ptr x); - - const RealAggregate_ptr knots_() const; - void knots_ (const RealAggregate_ptr x); - - const SdaiKnot_type_var knot_spec_() const; - void knot_spec_ (const SdaiKnot_type_var x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiB_spline_curve_with_knots_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiB_spline_curve_with_knots(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiB_spline_curve_with_knots () { return (SCLP23(Application_instance_ptr)) new SdaiB_spline_curve_with_knots ; } -#else -inline SdaiB_spline_curve_with_knots * -create_SdaiB_spline_curve_with_knots () { return new SdaiB_spline_curve_with_knots ; } -#endif - -///////// END_ENTITY b_spline_curve_with_knots - - -///////// ENTITY cc_design_approval - -extern AttrDescriptor *a_349items; - -class SdaiCc_design_approval : public SdaiApproval_assignment { - -#ifdef __OSTORE__ - friend void SdaiCc_design_approval_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiApproved_items _items ; // of approved_item - - public: - - SdaiCc_design_approval ( ); - SdaiCc_design_approval (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCc_design_approval (SdaiCc_design_approval& e ); - ~SdaiCc_design_approval (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 196 ; } - const SdaiApproved_items_ptr items_() const; - void items_ (const SdaiApproved_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCc_design_approval_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCc_design_approval(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCc_design_approval () { return (SCLP23(Application_instance_ptr)) new SdaiCc_design_approval ; } -#else -inline SdaiCc_design_approval * -create_SdaiCc_design_approval () { return new SdaiCc_design_approval ; } -#endif - -///////// END_ENTITY cc_design_approval - - -///////// ENTITY edge_based_wireframe_shape_representation - - -class SdaiEdge_based_wireframe_shape_representation : public SdaiShape_representation { - -#ifdef __OSTORE__ - friend void SdaiEdge_based_wireframe_shape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiEdge_based_wireframe_shape_representation ( ); - SdaiEdge_based_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiEdge_based_wireframe_shape_representation (SdaiEdge_based_wireframe_shape_representation& e ); - ~SdaiEdge_based_wireframe_shape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 197 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiEdge_based_wireframe_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiEdge_based_wireframe_shape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiEdge_based_wireframe_shape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiEdge_based_wireframe_shape_representation ; } -#else -inline SdaiEdge_based_wireframe_shape_representation * -create_SdaiEdge_based_wireframe_shape_representation () { return new SdaiEdge_based_wireframe_shape_representation ; } -#endif - -///////// END_ENTITY edge_based_wireframe_shape_representation - - -///////// ENTITY geometrically_bounded_wireframe_shape_representation - - -class SdaiGeometrically_bounded_wireframe_shape_representation : public SdaiShape_representation { - -#ifdef __OSTORE__ - friend void SdaiGeometrically_bounded_wireframe_shape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiGeometrically_bounded_wireframe_shape_representation ( ); - SdaiGeometrically_bounded_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiGeometrically_bounded_wireframe_shape_representation (SdaiGeometrically_bounded_wireframe_shape_representation& e ); - ~SdaiGeometrically_bounded_wireframe_shape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 198 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiGeometrically_bounded_wireframe_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiGeometrically_bounded_wireframe_shape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiGeometrically_bounded_wireframe_shape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiGeometrically_bounded_wireframe_shape_representation ; } -#else -inline SdaiGeometrically_bounded_wireframe_shape_representation * -create_SdaiGeometrically_bounded_wireframe_shape_representation () { return new SdaiGeometrically_bounded_wireframe_shape_representation ; } -#endif - -///////// END_ENTITY geometrically_bounded_wireframe_shape_representation - - -///////// ENTITY product_concept - -extern AttrDescriptor *a_350id; -extern AttrDescriptor *a_351name; -extern AttrDescriptor *a_352description; -extern AttrDescriptor *a_353market_context; - -class SdaiProduct_concept : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProduct_concept_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _market_context ; - public: - - SdaiProduct_concept ( ); - SdaiProduct_concept (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_concept (SdaiProduct_concept& e ); - ~SdaiProduct_concept (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 199 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiProduct_concept_context_ptr market_context_() const; - void market_context_ (const SdaiProduct_concept_context_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_concept_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_concept(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_concept () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_concept ; } -#else -inline SdaiProduct_concept * -create_SdaiProduct_concept () { return new SdaiProduct_concept ; } -#endif - -///////// END_ENTITY product_concept - - -///////// ENTITY cc_design_contract - -extern AttrDescriptor *a_354items; - -class SdaiCc_design_contract : public SdaiContract_assignment { - -#ifdef __OSTORE__ - friend void SdaiCc_design_contract_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiContracted_items _items ; // of contracted_item - - public: - - SdaiCc_design_contract ( ); - SdaiCc_design_contract (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCc_design_contract (SdaiCc_design_contract& e ); - ~SdaiCc_design_contract (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 200 ; } - const SdaiContracted_items_ptr items_() const; - void items_ (const SdaiContracted_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCc_design_contract_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCc_design_contract(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCc_design_contract () { return (SCLP23(Application_instance_ptr)) new SdaiCc_design_contract ; } -#else -inline SdaiCc_design_contract * -create_SdaiCc_design_contract () { return new SdaiCc_design_contract ; } -#endif - -///////// END_ENTITY cc_design_contract - - -///////// ENTITY seam_curve - - -class SdaiSeam_curve : public SdaiSurface_curve { - -#ifdef __OSTORE__ - friend void SdaiSeam_curve_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiSeam_curve ( ); - SdaiSeam_curve (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSeam_curve (SdaiSeam_curve& e ); - ~SdaiSeam_curve (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 201 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSeam_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSeam_curve(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSeam_curve () { return (SCLP23(Application_instance_ptr)) new SdaiSeam_curve ; } -#else -inline SdaiSeam_curve * -create_SdaiSeam_curve () { return new SdaiSeam_curve ; } -#endif - -///////// END_ENTITY seam_curve - - -///////// ENTITY axis2_placement_3d - -extern AttrDescriptor *a_355axis; -extern AttrDescriptor *a_356ref_direction; -extern Derived_attribute *a_357Dp; - -class SdaiAxis2_placement_3d : public SdaiPlacement { - -#ifdef __OSTORE__ - friend void SdaiAxis2_placement_3d_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _axis ; // OPTIONAL - SCLP23(Application_instance_ptr) _ref_direction ; // OPTIONAL - public: - - SdaiAxis2_placement_3d ( ); - SdaiAxis2_placement_3d (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAxis2_placement_3d (SdaiAxis2_placement_3d& e ); - ~SdaiAxis2_placement_3d (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 202 ; } - const SdaiDirection_ptr axis_() const; - void axis_ (const SdaiDirection_ptr x); - - const SdaiDirection_ptr ref_direction_() const; - void ref_direction_ (const SdaiDirection_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAxis2_placement_3d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAxis2_placement_3d(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAxis2_placement_3d () { return (SCLP23(Application_instance_ptr)) new SdaiAxis2_placement_3d ; } -#else -inline SdaiAxis2_placement_3d * -create_SdaiAxis2_placement_3d () { return new SdaiAxis2_placement_3d ; } -#endif - -///////// END_ENTITY axis2_placement_3d - - -///////// ENTITY rational_b_spline_surface - -extern AttrDescriptor *a_358weights_data; -extern Derived_attribute *a_359Dweights; - -class SdaiRational_b_spline_surface : public SdaiB_spline_surface { - -#ifdef __OSTORE__ - friend void SdaiRational_b_spline_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - GenericAggregate _weights_data ; - public: - - SdaiRational_b_spline_surface ( ); - SdaiRational_b_spline_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiRational_b_spline_surface (SdaiRational_b_spline_surface& e ); - ~SdaiRational_b_spline_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 203 ; } - const GenericAggregate_ptr weights_data_() const; - void weights_data_ (const GenericAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiRational_b_spline_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiRational_b_spline_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiRational_b_spline_surface () { return (SCLP23(Application_instance_ptr)) new SdaiRational_b_spline_surface ; } -#else -inline SdaiRational_b_spline_surface * -create_SdaiRational_b_spline_surface () { return new SdaiRational_b_spline_surface ; } -#endif - -///////// END_ENTITY rational_b_spline_surface - - -///////// ENTITY configuration_design - -extern AttrDescriptor *a_360configuration; -extern AttrDescriptor *a_361design; - -class SdaiConfiguration_design : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiConfiguration_design_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _configuration ; - SCLP23(Application_instance_ptr) _design ; - public: - - SdaiConfiguration_design ( ); - SdaiConfiguration_design (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiConfiguration_design (SdaiConfiguration_design& e ); - ~SdaiConfiguration_design (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 204 ; } - const SdaiConfiguration_item_ptr configuration_() const; - void configuration_ (const SdaiConfiguration_item_ptr x); - - const SdaiProduct_definition_formation_ptr design_() const; - void design_ (const SdaiProduct_definition_formation_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiConfiguration_design_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiConfiguration_design(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiConfiguration_design () { return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_design ; } -#else -inline SdaiConfiguration_design * -create_SdaiConfiguration_design () { return new SdaiConfiguration_design ; } -#endif - -///////// END_ENTITY configuration_design - - -///////// ENTITY design_context - - -class SdaiDesign_context : public SdaiProduct_definition_context { - -#ifdef __OSTORE__ - friend void SdaiDesign_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiDesign_context ( ); - SdaiDesign_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDesign_context (SdaiDesign_context& e ); - ~SdaiDesign_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 205 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDesign_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDesign_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDesign_context () { return (SCLP23(Application_instance_ptr)) new SdaiDesign_context ; } -#else -inline SdaiDesign_context * -create_SdaiDesign_context () { return new SdaiDesign_context ; } -#endif - -///////// END_ENTITY design_context - - -///////// ENTITY product_definition - -extern AttrDescriptor *a_362id; -extern AttrDescriptor *a_363description; -extern AttrDescriptor *a_364formation; -extern AttrDescriptor *a_365frame_of_reference; - -class SdaiProduct_definition : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _formation ; - SCLP23(Application_instance_ptr) _frame_of_reference ; - public: - - SdaiProduct_definition ( ); - SdaiProduct_definition (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition (SdaiProduct_definition& e ); - ~SdaiProduct_definition (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 206 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiProduct_definition_formation_ptr formation_() const; - void formation_ (const SdaiProduct_definition_formation_ptr x); - - const SdaiProduct_definition_context_ptr frame_of_reference_() const; - void frame_of_reference_ (const SdaiProduct_definition_context_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition ; } -#else -inline SdaiProduct_definition * -create_SdaiProduct_definition () { return new SdaiProduct_definition ; } -#endif - -///////// END_ENTITY product_definition - - -///////// ENTITY product_definition_with_associated_documents - -extern AttrDescriptor *a_366documentation_ids; - -class SdaiProduct_definition_with_associated_documents : public SdaiProduct_definition { - -#ifdef __OSTORE__ - friend void SdaiProduct_definition_with_associated_documents_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _documentation_ids ; // of document - - public: - - SdaiProduct_definition_with_associated_documents ( ); - SdaiProduct_definition_with_associated_documents (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_definition_with_associated_documents (SdaiProduct_definition_with_associated_documents& e ); - ~SdaiProduct_definition_with_associated_documents (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 207 ; } - const EntityAggregate_ptr documentation_ids_() const; - void documentation_ids_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_definition_with_associated_documents_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_with_associated_documents(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_with_associated_documents () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_with_associated_documents ; } -#else -inline SdaiProduct_definition_with_associated_documents * -create_SdaiProduct_definition_with_associated_documents () { return new SdaiProduct_definition_with_associated_documents ; } -#endif - -///////// END_ENTITY product_definition_with_associated_documents - - -///////// ENTITY organization - -extern AttrDescriptor *a_367id; -extern AttrDescriptor *a_368name; -extern AttrDescriptor *a_369description; - -class SdaiOrganization : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiOrganization_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _id ; // OPTIONAL - SCLP23(String) _name ; - SCLP23(String) _description ; - public: - - SdaiOrganization ( ); - SdaiOrganization (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOrganization (SdaiOrganization& e ); - ~SdaiOrganization (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 208 ; } - const SdaiIdentifier id_() const; - void id_ (const SdaiIdentifier x); - - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOrganization_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOrganization(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOrganization () { return (SCLP23(Application_instance_ptr)) new SdaiOrganization ; } -#else -inline SdaiOrganization * -create_SdaiOrganization () { return new SdaiOrganization ; } -#endif - -///////// END_ENTITY organization - - -///////// ENTITY cc_design_certification - -extern AttrDescriptor *a_370items; - -class SdaiCc_design_certification : public SdaiCertification_assignment { - -#ifdef __OSTORE__ - friend void SdaiCc_design_certification_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiCertified_items _items ; // of certified_item - - public: - - SdaiCc_design_certification ( ); - SdaiCc_design_certification (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCc_design_certification (SdaiCc_design_certification& e ); - ~SdaiCc_design_certification (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 209 ; } - const SdaiCertified_items_ptr items_() const; - void items_ (const SdaiCertified_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCc_design_certification_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCc_design_certification(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCc_design_certification () { return (SCLP23(Application_instance_ptr)) new SdaiCc_design_certification ; } -#else -inline SdaiCc_design_certification * -create_SdaiCc_design_certification () { return new SdaiCc_design_certification ; } -#endif - -///////// END_ENTITY cc_design_certification - - -///////// ENTITY b_spline_surface_with_knots - -extern AttrDescriptor *a_371u_multiplicities; -extern AttrDescriptor *a_372v_multiplicities; -extern AttrDescriptor *a_373u_knots; -extern AttrDescriptor *a_374v_knots; -extern AttrDescriptor *a_375knot_spec; -extern Derived_attribute *a_376Dknot_u_upper; -extern Derived_attribute *a_377Dknot_v_upper; - -class SdaiB_spline_surface_with_knots : public SdaiB_spline_surface { - -#ifdef __OSTORE__ - friend void SdaiB_spline_surface_with_knots_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - IntAggregate _u_multiplicities ; - IntAggregate _v_multiplicities ; - RealAggregate _u_knots ; // of parameter_value - - RealAggregate _v_knots ; // of parameter_value - - SdaiKnot_type_var _knot_spec ; - public: - - SdaiB_spline_surface_with_knots ( ); - SdaiB_spline_surface_with_knots (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiB_spline_surface_with_knots (SdaiB_spline_surface_with_knots& e ); - ~SdaiB_spline_surface_with_knots (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 210 ; } - const IntAggregate_ptr u_multiplicities_() const; - void u_multiplicities_ (const IntAggregate_ptr x); - - const IntAggregate_ptr v_multiplicities_() const; - void v_multiplicities_ (const IntAggregate_ptr x); - - const RealAggregate_ptr u_knots_() const; - void u_knots_ (const RealAggregate_ptr x); - - const RealAggregate_ptr v_knots_() const; - void v_knots_ (const RealAggregate_ptr x); - - const SdaiKnot_type_var knot_spec_() const; - void knot_spec_ (const SdaiKnot_type_var x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiB_spline_surface_with_knots_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiB_spline_surface_with_knots(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiB_spline_surface_with_knots () { return (SCLP23(Application_instance_ptr)) new SdaiB_spline_surface_with_knots ; } -#else -inline SdaiB_spline_surface_with_knots * -create_SdaiB_spline_surface_with_knots () { return new SdaiB_spline_surface_with_knots ; } -#endif - -///////// END_ENTITY b_spline_surface_with_knots - - -///////// ENTITY certification_type - -extern AttrDescriptor *a_378description; - -class SdaiCertification_type : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiCertification_type_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _description ; - public: - - SdaiCertification_type ( ); - SdaiCertification_type (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCertification_type (SdaiCertification_type& e ); - ~SdaiCertification_type (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 211 ; } - const SdaiLabel description_() const; - void description_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCertification_type_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCertification_type(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCertification_type () { return (SCLP23(Application_instance_ptr)) new SdaiCertification_type ; } -#else -inline SdaiCertification_type * -create_SdaiCertification_type () { return new SdaiCertification_type ; } -#endif - -///////// END_ENTITY certification_type - - -///////// ENTITY oriented_path - -extern AttrDescriptor *a_379path_element; -extern AttrDescriptor *a_380orientation; -extern Derived_attribute *a_381Dpath_edge_list; - -class SdaiOriented_path : public SdaiPath { - -#ifdef __OSTORE__ - friend void SdaiOriented_path_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _path_element ; - SCLP23(BOOL) _orientation ; - public: - - SdaiOriented_path ( ); - SdaiOriented_path (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOriented_path (SdaiOriented_path& e ); - ~SdaiOriented_path (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 212 ; } - const SdaiPath_ptr path_element_() const; - void path_element_ (const SdaiPath_ptr x); - - const SCLBOOL(Bool) orientation_() const; - void orientation_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOriented_path_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOriented_path(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOriented_path () { return (SCLP23(Application_instance_ptr)) new SdaiOriented_path ; } -#else -inline SdaiOriented_path * -create_SdaiOriented_path () { return new SdaiOriented_path ; } -#endif - -///////// END_ENTITY oriented_path - - -///////// ENTITY security_classification - -extern AttrDescriptor *a_382name; -extern AttrDescriptor *a_383purpose; -extern AttrDescriptor *a_384security_level; - -class SdaiSecurity_classification : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiSecurity_classification_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _purpose ; - SCLP23(Application_instance_ptr) _security_level ; - public: - - SdaiSecurity_classification ( ); - SdaiSecurity_classification (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSecurity_classification (SdaiSecurity_classification& e ); - ~SdaiSecurity_classification (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 213 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText purpose_() const; - void purpose_ (const SdaiText x); - - const SdaiSecurity_classification_level_ptr security_level_() const; - void security_level_ (const SdaiSecurity_classification_level_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSecurity_classification_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification () { return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification ; } -#else -inline SdaiSecurity_classification * -create_SdaiSecurity_classification () { return new SdaiSecurity_classification ; } -#endif - -///////// END_ENTITY security_classification - - -///////// ENTITY vertex_loop - -extern AttrDescriptor *a_385loop_vertex; - -class SdaiVertex_loop : public SdaiLoop { - -#ifdef __OSTORE__ - friend void SdaiVertex_loop_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _loop_vertex ; - public: - - SdaiVertex_loop ( ); - SdaiVertex_loop (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiVertex_loop (SdaiVertex_loop& e ); - ~SdaiVertex_loop (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 214 ; } - const SdaiVertex_ptr loop_vertex_() const; - void loop_vertex_ (const SdaiVertex_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiVertex_loop_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiVertex_loop(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiVertex_loop () { return (SCLP23(Application_instance_ptr)) new SdaiVertex_loop ; } -#else -inline SdaiVertex_loop * -create_SdaiVertex_loop () { return new SdaiVertex_loop ; } -#endif - -///////// END_ENTITY vertex_loop - - -///////// ENTITY approval_status - -extern AttrDescriptor *a_386name; - -class SdaiApproval_status : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApproval_status_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - public: - - SdaiApproval_status ( ); - SdaiApproval_status (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApproval_status (SdaiApproval_status& e ); - ~SdaiApproval_status (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 215 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApproval_status_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApproval_status(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApproval_status () { return (SCLP23(Application_instance_ptr)) new SdaiApproval_status ; } -#else -inline SdaiApproval_status * -create_SdaiApproval_status () { return new SdaiApproval_status ; } -#endif - -///////// END_ENTITY approval_status - - -///////// ENTITY cartesian_point - -extern AttrDescriptor *a_387coordinates; - -class SdaiCartesian_point : public SdaiPoint { - -#ifdef __OSTORE__ - friend void SdaiCartesian_point_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - RealAggregate _coordinates ; // of length_measure - - public: - - SdaiCartesian_point ( ); - SdaiCartesian_point (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCartesian_point (SdaiCartesian_point& e ); - ~SdaiCartesian_point (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 216 ; } - const RealAggregate_ptr coordinates_() const; - void coordinates_ (const RealAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCartesian_point_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCartesian_point(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCartesian_point () { return (SCLP23(Application_instance_ptr)) new SdaiCartesian_point ; } -#else -inline SdaiCartesian_point * -create_SdaiCartesian_point () { return new SdaiCartesian_point ; } -#endif - -///////// END_ENTITY cartesian_point - - -///////// ENTITY date_and_time_assignment - -extern AttrDescriptor *a_388assigned_date_and_time; -extern AttrDescriptor *a_389role; - -class SdaiDate_and_time_assignment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDate_and_time_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_date_and_time ; - SCLP23(Application_instance_ptr) _role ; - public: - - SdaiDate_and_time_assignment ( ); - SdaiDate_and_time_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDate_and_time_assignment (SdaiDate_and_time_assignment& e ); - ~SdaiDate_and_time_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 217 ; } - const SdaiDate_and_time_ptr assigned_date_and_time_() const; - void assigned_date_and_time_ (const SdaiDate_and_time_ptr x); - - const SdaiDate_time_role_ptr role_() const; - void role_ (const SdaiDate_time_role_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDate_and_time_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDate_and_time_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDate_and_time_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiDate_and_time_assignment ; } -#else -inline SdaiDate_and_time_assignment * -create_SdaiDate_and_time_assignment () { return new SdaiDate_and_time_assignment ; } -#endif - -///////// END_ENTITY date_and_time_assignment - - -///////// ENTITY parametric_representation_context - - -class SdaiParametric_representation_context : public SdaiRepresentation_context { - -#ifdef __OSTORE__ - friend void SdaiParametric_representation_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiParametric_representation_context ( ); - SdaiParametric_representation_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiParametric_representation_context (SdaiParametric_representation_context& e ); - ~SdaiParametric_representation_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 218 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiParametric_representation_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiParametric_representation_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiParametric_representation_context () { return (SCLP23(Application_instance_ptr)) new SdaiParametric_representation_context ; } -#else -inline SdaiParametric_representation_context * -create_SdaiParametric_representation_context () { return new SdaiParametric_representation_context ; } -#endif - -///////// END_ENTITY parametric_representation_context - - -///////// ENTITY product_concept_context - -extern AttrDescriptor *a_390market_segment_type; - -class SdaiProduct_concept_context : public SdaiApplication_context_element { - -#ifdef __OSTORE__ - friend void SdaiProduct_concept_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _market_segment_type ; - public: - - SdaiProduct_concept_context ( ); - SdaiProduct_concept_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiProduct_concept_context (SdaiProduct_concept_context& e ); - ~SdaiProduct_concept_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 219 ; } - const SdaiLabel market_segment_type_() const; - void market_segment_type_ (const SdaiLabel x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiProduct_concept_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiProduct_concept_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiProduct_concept_context () { return (SCLP23(Application_instance_ptr)) new SdaiProduct_concept_context ; } -#else -inline SdaiProduct_concept_context * -create_SdaiProduct_concept_context () { return new SdaiProduct_concept_context ; } -#endif - -///////// END_ENTITY product_concept_context - - -///////// ENTITY cartesian_transformation_operator_2d - -extern Derived_attribute *a_391Du; - -class SdaiCartesian_transformation_operator_2d : public SdaiCartesian_transformation_operator { - -#ifdef __OSTORE__ - friend void SdaiCartesian_transformation_operator_2d_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiCartesian_transformation_operator_2d ( ); - SdaiCartesian_transformation_operator_2d (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCartesian_transformation_operator_2d (SdaiCartesian_transformation_operator_2d& e ); - ~SdaiCartesian_transformation_operator_2d (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 220 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCartesian_transformation_operator_2d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator_2d(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator_2d () { return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator_2d ; } -#else -inline SdaiCartesian_transformation_operator_2d * -create_SdaiCartesian_transformation_operator_2d () { return new SdaiCartesian_transformation_operator_2d ; } -#endif - -///////// END_ENTITY cartesian_transformation_operator_2d - - -///////// ENTITY surface_patch - -extern AttrDescriptor *a_392parent_surface; -extern AttrDescriptor *a_393u_transition; -extern AttrDescriptor *a_394v_transition; -extern AttrDescriptor *a_395u_sense; -extern AttrDescriptor *a_396v_sense; -extern Inverse_attribute *a_397Iusing_surfaces; - -class SdaiSurface_patch : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiSurface_patch_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _parent_surface ; - SdaiTransition_code_var _u_transition ; - SdaiTransition_code_var _v_transition ; - SCLP23(BOOL) _u_sense ; - SCLP23(BOOL) _v_sense ; - EntityAggregate _using_surfaces ; // of rectangular_composite_surface - - public: - - SdaiSurface_patch ( ); - SdaiSurface_patch (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSurface_patch (SdaiSurface_patch& e ); - ~SdaiSurface_patch (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 221 ; } - const SdaiBounded_surface_ptr parent_surface_() const; - void parent_surface_ (const SdaiBounded_surface_ptr x); - - const SdaiTransition_code_var u_transition_() const; - void u_transition_ (const SdaiTransition_code_var x); - - const SdaiTransition_code_var v_transition_() const; - void v_transition_ (const SdaiTransition_code_var x); - - const SCLBOOL(Bool) u_sense_() const; - void u_sense_ (const SCLBOOL(Bool) x); - - const SCLBOOL(Bool) v_sense_() const; - void v_sense_ (const SCLBOOL(Bool) x); - - const EntityAggregate_ptr using_surfaces_() const; - void using_surfaces_ (const EntityAggregate_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSurface_patch_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSurface_patch(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSurface_patch () { return (SCLP23(Application_instance_ptr)) new SdaiSurface_patch ; } -#else -inline SdaiSurface_patch * -create_SdaiSurface_patch () { return new SdaiSurface_patch ; } -#endif - -///////// END_ENTITY surface_patch - - -///////// ENTITY length_unit - - -class SdaiLength_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiLength_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiLength_unit ( ); - SdaiLength_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiLength_unit (SdaiLength_unit& e ); - ~SdaiLength_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 222 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiLength_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiLength_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiLength_unit () { return (SCLP23(Application_instance_ptr)) new SdaiLength_unit ; } -#else -inline SdaiLength_unit * -create_SdaiLength_unit () { return new SdaiLength_unit ; } -#endif - -///////// END_ENTITY length_unit - - -///////// ENTITY shape_aspect - -extern AttrDescriptor *a_398name; -extern AttrDescriptor *a_399description; -extern AttrDescriptor *a_400of_shape; -extern AttrDescriptor *a_401product_definitional; - -class SdaiShape_aspect : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiShape_aspect_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _of_shape ; - SCLP23(LOGICAL) _product_definitional ; - public: - - SdaiShape_aspect ( ); - SdaiShape_aspect (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiShape_aspect (SdaiShape_aspect& e ); - ~SdaiShape_aspect (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 223 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiProduct_definition_shape_ptr of_shape_() const; - void of_shape_ (const SdaiProduct_definition_shape_ptr x); - - const SCLLOG(Logical) product_definitional_() const; - void product_definitional_ (const SCLLOG(Logical) x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiShape_aspect_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiShape_aspect(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiShape_aspect () { return (SCLP23(Application_instance_ptr)) new SdaiShape_aspect ; } -#else -inline SdaiShape_aspect * -create_SdaiShape_aspect () { return new SdaiShape_aspect ; } -#endif - -///////// END_ENTITY shape_aspect - - -///////// ENTITY volume_measure_with_unit - - -class SdaiVolume_measure_with_unit : public SdaiMeasure_with_unit { - -#ifdef __OSTORE__ - friend void SdaiVolume_measure_with_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiVolume_measure_with_unit ( ); - SdaiVolume_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiVolume_measure_with_unit (SdaiVolume_measure_with_unit& e ); - ~SdaiVolume_measure_with_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 224 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiVolume_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiVolume_measure_with_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiVolume_measure_with_unit () { return (SCLP23(Application_instance_ptr)) new SdaiVolume_measure_with_unit ; } -#else -inline SdaiVolume_measure_with_unit * -create_SdaiVolume_measure_with_unit () { return new SdaiVolume_measure_with_unit ; } -#endif - -///////// END_ENTITY volume_measure_with_unit - - -///////// ENTITY advanced_face - - -class SdaiAdvanced_face : public SdaiFace_surface { - -#ifdef __OSTORE__ - friend void SdaiAdvanced_face_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiAdvanced_face ( ); - SdaiAdvanced_face (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiAdvanced_face (SdaiAdvanced_face& e ); - ~SdaiAdvanced_face (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 225 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiAdvanced_face_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiAdvanced_face(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiAdvanced_face () { return (SCLP23(Application_instance_ptr)) new SdaiAdvanced_face ; } -#else -inline SdaiAdvanced_face * -create_SdaiAdvanced_face () { return new SdaiAdvanced_face ; } -#endif - -///////// END_ENTITY advanced_face - - -///////// ENTITY security_classification_level - -extern AttrDescriptor *a_402name; - -class SdaiSecurity_classification_level : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiSecurity_classification_level_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - public: - - SdaiSecurity_classification_level ( ); - SdaiSecurity_classification_level (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSecurity_classification_level (SdaiSecurity_classification_level& e ); - ~SdaiSecurity_classification_level (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 226 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSecurity_classification_level_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification_level(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification_level () { return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification_level ; } -#else -inline SdaiSecurity_classification_level * -create_SdaiSecurity_classification_level () { return new SdaiSecurity_classification_level ; } -#endif - -///////// END_ENTITY security_classification_level - - -///////// ENTITY approval_relationship - -extern AttrDescriptor *a_403name; -extern AttrDescriptor *a_404description; -extern AttrDescriptor *a_405relating_approval; -extern AttrDescriptor *a_406related_approval; - -class SdaiApproval_relationship : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApproval_relationship_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(String) _name ; - SCLP23(String) _description ; - SCLP23(Application_instance_ptr) _relating_approval ; - SCLP23(Application_instance_ptr) _related_approval ; - public: - - SdaiApproval_relationship ( ); - SdaiApproval_relationship (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApproval_relationship (SdaiApproval_relationship& e ); - ~SdaiApproval_relationship (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 227 ; } - const SdaiLabel name_() const; - void name_ (const SdaiLabel x); - - const SdaiText description_() const; - void description_ (const SdaiText x); - - const SdaiApproval_ptr relating_approval_() const; - void relating_approval_ (const SdaiApproval_ptr x); - - const SdaiApproval_ptr related_approval_() const; - void related_approval_ (const SdaiApproval_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApproval_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApproval_relationship(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApproval_relationship () { return (SCLP23(Application_instance_ptr)) new SdaiApproval_relationship ; } -#else -inline SdaiApproval_relationship * -create_SdaiApproval_relationship () { return new SdaiApproval_relationship ; } -#endif - -///////// END_ENTITY approval_relationship - - -///////// ENTITY polyline - -extern AttrDescriptor *a_407points; - -class SdaiPolyline : public SdaiBounded_curve { - -#ifdef __OSTORE__ - friend void SdaiPolyline_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _points ; // of cartesian_point - - public: - - SdaiPolyline ( ); - SdaiPolyline (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPolyline (SdaiPolyline& e ); - ~SdaiPolyline (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 228 ; } - const EntityAggregate_ptr points_() const; - void points_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPolyline_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPolyline(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPolyline () { return (SCLP23(Application_instance_ptr)) new SdaiPolyline ; } -#else -inline SdaiPolyline * -create_SdaiPolyline () { return new SdaiPolyline ; } -#endif - -///////// END_ENTITY polyline - - -///////// ENTITY approval_person_organization - -extern AttrDescriptor *a_408person_organization; -extern AttrDescriptor *a_409authorized_approval; -extern AttrDescriptor *a_410role; - -class SdaiApproval_person_organization : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiApproval_person_organization_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiPerson_organization_select _person_organization ; - SCLP23(Application_instance_ptr) _authorized_approval ; - SCLP23(Application_instance_ptr) _role ; - public: - - SdaiApproval_person_organization ( ); - SdaiApproval_person_organization (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiApproval_person_organization (SdaiApproval_person_organization& e ); - ~SdaiApproval_person_organization (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 229 ; } - const SdaiPerson_organization_select_ptr person_organization_() const; - void person_organization_ (const SdaiPerson_organization_select_ptr x); - - const SdaiApproval_ptr authorized_approval_() const; - void authorized_approval_ (const SdaiApproval_ptr x); - - const SdaiApproval_role_ptr role_() const; - void role_ (const SdaiApproval_role_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiApproval_person_organization_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiApproval_person_organization(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiApproval_person_organization () { return (SCLP23(Application_instance_ptr)) new SdaiApproval_person_organization ; } -#else -inline SdaiApproval_person_organization * -create_SdaiApproval_person_organization () { return new SdaiApproval_person_organization ; } -#endif - -///////// END_ENTITY approval_person_organization - - -///////// ENTITY surface_replica - -extern AttrDescriptor *a_411parent_surface; -extern AttrDescriptor *a_412transformation; - -class SdaiSurface_replica : public SdaiSurface { - -#ifdef __OSTORE__ - friend void SdaiSurface_replica_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _parent_surface ; - SCLP23(Application_instance_ptr) _transformation ; - public: - - SdaiSurface_replica ( ); - SdaiSurface_replica (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSurface_replica (SdaiSurface_replica& e ); - ~SdaiSurface_replica (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 230 ; } - const SdaiSurface_ptr parent_surface_() const; - void parent_surface_ (const SdaiSurface_ptr x); - - const SdaiCartesian_transformation_operator_3d_ptr transformation_() const; - void transformation_ (const SdaiCartesian_transformation_operator_3d_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSurface_replica_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSurface_replica(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSurface_replica () { return (SCLP23(Application_instance_ptr)) new SdaiSurface_replica ; } -#else -inline SdaiSurface_replica * -create_SdaiSurface_replica () { return new SdaiSurface_replica ; } -#endif - -///////// END_ENTITY surface_replica - - -///////// ENTITY security_classification_assignment - -extern AttrDescriptor *a_413assigned_security_classification; - -class SdaiSecurity_classification_assignment : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiSecurity_classification_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _assigned_security_classification ; - public: - - SdaiSecurity_classification_assignment ( ); - SdaiSecurity_classification_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiSecurity_classification_assignment (SdaiSecurity_classification_assignment& e ); - ~SdaiSecurity_classification_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 231 ; } - const SdaiSecurity_classification_ptr assigned_security_classification_() const; - void assigned_security_classification_ (const SdaiSecurity_classification_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiSecurity_classification_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification_assignment ; } -#else -inline SdaiSecurity_classification_assignment * -create_SdaiSecurity_classification_assignment () { return new SdaiSecurity_classification_assignment ; } -#endif - -///////// END_ENTITY security_classification_assignment - - -///////// ENTITY cc_design_security_classification - -extern AttrDescriptor *a_414items; - -class SdaiCc_design_security_classification : public SdaiSecurity_classification_assignment { - -#ifdef __OSTORE__ - friend void SdaiCc_design_security_classification_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiClassified_items _items ; // of classified_item - - public: - - SdaiCc_design_security_classification ( ); - SdaiCc_design_security_classification (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCc_design_security_classification (SdaiCc_design_security_classification& e ); - ~SdaiCc_design_security_classification (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 232 ; } - const SdaiClassified_items_ptr items_() const; - void items_ (const SdaiClassified_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCc_design_security_classification_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCc_design_security_classification(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCc_design_security_classification () { return (SCLP23(Application_instance_ptr)) new SdaiCc_design_security_classification ; } -#else -inline SdaiCc_design_security_classification * -create_SdaiCc_design_security_classification () { return new SdaiCc_design_security_classification ; } -#endif - -///////// END_ENTITY cc_design_security_classification - - -///////// ENTITY faceted_brep_shape_representation - - -class SdaiFaceted_brep_shape_representation : public SdaiShape_representation { - -#ifdef __OSTORE__ - friend void SdaiFaceted_brep_shape_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiFaceted_brep_shape_representation ( ); - SdaiFaceted_brep_shape_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiFaceted_brep_shape_representation (SdaiFaceted_brep_shape_representation& e ); - ~SdaiFaceted_brep_shape_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 233 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiFaceted_brep_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiFaceted_brep_shape_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiFaceted_brep_shape_representation () { return (SCLP23(Application_instance_ptr)) new SdaiFaceted_brep_shape_representation ; } -#else -inline SdaiFaceted_brep_shape_representation * -create_SdaiFaceted_brep_shape_representation () { return new SdaiFaceted_brep_shape_representation ; } -#endif - -///////// END_ENTITY faceted_brep_shape_representation - - -///////// ENTITY document_usage_constraint - -extern AttrDescriptor *a_415source; -extern AttrDescriptor *a_416subject_element; -extern AttrDescriptor *a_417subject_element_value; - -class SdaiDocument_usage_constraint : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiDocument_usage_constraint_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _source ; - SCLP23(String) _subject_element ; - SCLP23(String) _subject_element_value ; - public: - - SdaiDocument_usage_constraint ( ); - SdaiDocument_usage_constraint (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiDocument_usage_constraint (SdaiDocument_usage_constraint& e ); - ~SdaiDocument_usage_constraint (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 234 ; } - const SdaiDocument_ptr source_() const; - void source_ (const SdaiDocument_ptr x); - - const SdaiLabel subject_element_() const; - void subject_element_ (const SdaiLabel x); - - const SdaiText subject_element_value_() const; - void subject_element_value_ (const SdaiText x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiDocument_usage_constraint_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiDocument_usage_constraint(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiDocument_usage_constraint () { return (SCLP23(Application_instance_ptr)) new SdaiDocument_usage_constraint ; } -#else -inline SdaiDocument_usage_constraint * -create_SdaiDocument_usage_constraint () { return new SdaiDocument_usage_constraint ; } -#endif - -///////// END_ENTITY document_usage_constraint - - -///////// ENTITY vertex_point - -extern AttrDescriptor *a_418vertex_geometry; - -class SdaiVertex_point : public SdaiVertex { - -#ifdef __OSTORE__ - friend void SdaiVertex_point_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _vertex_geometry ; - public: - - SdaiVertex_point ( ); - SdaiVertex_point (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiVertex_point (SdaiVertex_point& e ); - ~SdaiVertex_point (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 235 ; } - const SdaiPoint_ptr vertex_geometry_() const; - void vertex_geometry_ (const SdaiPoint_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiVertex_point_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiVertex_point(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiVertex_point () { return (SCLP23(Application_instance_ptr)) new SdaiVertex_point ; } -#else -inline SdaiVertex_point * -create_SdaiVertex_point () { return new SdaiVertex_point ; } -#endif - -///////// END_ENTITY vertex_point - - -///////// ENTITY cc_design_date_and_time_assignment - -extern AttrDescriptor *a_419items; - -class SdaiCc_design_date_and_time_assignment : public SdaiDate_and_time_assignment { - -#ifdef __OSTORE__ - friend void SdaiCc_design_date_and_time_assignment_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiDate_time_items _items ; // of date_time_item - - public: - - SdaiCc_design_date_and_time_assignment ( ); - SdaiCc_design_date_and_time_assignment (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCc_design_date_and_time_assignment (SdaiCc_design_date_and_time_assignment& e ); - ~SdaiCc_design_date_and_time_assignment (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 236 ; } - const SdaiDate_time_items_ptr items_() const; - void items_ (const SdaiDate_time_items_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCc_design_date_and_time_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCc_design_date_and_time_assignment(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCc_design_date_and_time_assignment () { return (SCLP23(Application_instance_ptr)) new SdaiCc_design_date_and_time_assignment ; } -#else -inline SdaiCc_design_date_and_time_assignment * -create_SdaiCc_design_date_and_time_assignment () { return new SdaiCc_design_date_and_time_assignment ; } -#endif - -///////// END_ENTITY cc_design_date_and_time_assignment - - -///////// ENTITY oriented_closed_shell - -extern AttrDescriptor *a_420closed_shell_element; -extern AttrDescriptor *a_421orientation; -extern Derived_attribute *a_422Dconnected_face_set_cfs_faces; - -class SdaiOriented_closed_shell : public SdaiClosed_shell { - -#ifdef __OSTORE__ - friend void SdaiOriented_closed_shell_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _closed_shell_element ; - SCLP23(BOOL) _orientation ; - public: - - SdaiOriented_closed_shell ( ); - SdaiOriented_closed_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOriented_closed_shell (SdaiOriented_closed_shell& e ); - ~SdaiOriented_closed_shell (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 237 ; } - const SdaiClosed_shell_ptr closed_shell_element_() const; - void closed_shell_element_ (const SdaiClosed_shell_ptr x); - - const SCLBOOL(Bool) orientation_() const; - void orientation_ (const SCLBOOL(Bool) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOriented_closed_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOriented_closed_shell(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOriented_closed_shell () { return (SCLP23(Application_instance_ptr)) new SdaiOriented_closed_shell ; } -#else -inline SdaiOriented_closed_shell * -create_SdaiOriented_closed_shell () { return new SdaiOriented_closed_shell ; } -#endif - -///////// END_ENTITY oriented_closed_shell - - -///////// ENTITY person_and_organization - -extern AttrDescriptor *a_423the_person; -extern AttrDescriptor *a_424the_organization; - -class SdaiPerson_and_organization : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiPerson_and_organization_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _the_person ; - SCLP23(Application_instance_ptr) _the_organization ; - public: - - SdaiPerson_and_organization ( ); - SdaiPerson_and_organization (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPerson_and_organization (SdaiPerson_and_organization& e ); - ~SdaiPerson_and_organization (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 238 ; } - const SdaiPerson_ptr the_person_() const; - void the_person_ (const SdaiPerson_ptr x); - - const SdaiOrganization_ptr the_organization_() const; - void the_organization_ (const SdaiOrganization_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPerson_and_organization_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization () { return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization ; } -#else -inline SdaiPerson_and_organization * -create_SdaiPerson_and_organization () { return new SdaiPerson_and_organization ; } -#endif - -///////// END_ENTITY person_and_organization - - -///////// ENTITY cylindrical_surface - -extern AttrDescriptor *a_425radius; - -class SdaiCylindrical_surface : public SdaiElementary_surface { - -#ifdef __OSTORE__ - friend void SdaiCylindrical_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _radius ; - public: - - SdaiCylindrical_surface ( ); - SdaiCylindrical_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiCylindrical_surface (SdaiCylindrical_surface& e ); - ~SdaiCylindrical_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 239 ; } - const SdaiPositive_length_measure radius_() const; - void radius_ (const SdaiPositive_length_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiCylindrical_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiCylindrical_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiCylindrical_surface () { return (SCLP23(Application_instance_ptr)) new SdaiCylindrical_surface ; } -#else -inline SdaiCylindrical_surface * -create_SdaiCylindrical_surface () { return new SdaiCylindrical_surface ; } -#endif - -///////// END_ENTITY cylindrical_surface - - -///////// ENTITY local_time - -extern AttrDescriptor *a_426hour_component; -extern AttrDescriptor *a_427minute_component; -extern AttrDescriptor *a_428second_component; -extern AttrDescriptor *a_429zone; - -class SdaiLocal_time : public SCLP23(Application_instance) { - -#ifdef __OSTORE__ - friend void SdaiLocal_time_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Integer) _hour_component ; - SCLP23(Integer) _minute_component ; // OPTIONAL - SCLP23(Real) _second_component ; // OPTIONAL - SCLP23(Application_instance_ptr) _zone ; - public: - - SdaiLocal_time ( ); - SdaiLocal_time (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiLocal_time (SdaiLocal_time& e ); - ~SdaiLocal_time (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 240 ; } - const SdaiHour_in_day hour_component_() const; - void hour_component_ (const SdaiHour_in_day x); - - const SdaiMinute_in_hour minute_component_() const; - void minute_component_ (const SdaiMinute_in_hour x); - - const SdaiSecond_in_minute second_component_() const; - void second_component_ (const SdaiSecond_in_minute x); - - const SdaiCoordinated_universal_time_offset_ptr zone_() const; - void zone_ (const SdaiCoordinated_universal_time_offset_ptr x); - - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiLocal_time_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiLocal_time(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiLocal_time () { return (SCLP23(Application_instance_ptr)) new SdaiLocal_time ; } -#else -inline SdaiLocal_time * -create_SdaiLocal_time () { return new SdaiLocal_time ; } -#endif - -///////// END_ENTITY local_time - - -///////// ENTITY mass_unit - - -class SdaiMass_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiMass_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiMass_unit ( ); - SdaiMass_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiMass_unit (SdaiMass_unit& e ); - ~SdaiMass_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 241 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiMass_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiMass_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiMass_unit () { return (SCLP23(Application_instance_ptr)) new SdaiMass_unit ; } -#else -inline SdaiMass_unit * -create_SdaiMass_unit () { return new SdaiMass_unit ; } -#endif - -///////// END_ENTITY mass_unit - - -///////// ENTITY vertex_shell - -extern AttrDescriptor *a_430vertex_shell_extent; - -class SdaiVertex_shell : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiVertex_shell_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _vertex_shell_extent ; - public: - - SdaiVertex_shell ( ); - SdaiVertex_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiVertex_shell (SdaiVertex_shell& e ); - ~SdaiVertex_shell (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 242 ; } - const SdaiVertex_loop_ptr vertex_shell_extent_() const; - void vertex_shell_extent_ (const SdaiVertex_loop_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiVertex_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiVertex_shell(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiVertex_shell () { return (SCLP23(Application_instance_ptr)) new SdaiVertex_shell ; } -#else -inline SdaiVertex_shell * -create_SdaiVertex_shell () { return new SdaiVertex_shell ; } -#endif - -///////// END_ENTITY vertex_shell - - -///////// ENTITY poly_loop - -extern AttrDescriptor *a_431polygon; - -class SdaiPoly_loop : public SdaiLoop { - -#ifdef __OSTORE__ - friend void SdaiPoly_loop_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _polygon ; // of cartesian_point - - public: - - SdaiPoly_loop ( ); - SdaiPoly_loop (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiPoly_loop (SdaiPoly_loop& e ); - ~SdaiPoly_loop (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 243 ; } - const EntityAggregate_ptr polygon_() const; - void polygon_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiPoly_loop_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiPoly_loop(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiPoly_loop () { return (SCLP23(Application_instance_ptr)) new SdaiPoly_loop ; } -#else -inline SdaiPoly_loop * -create_SdaiPoly_loop () { return new SdaiPoly_loop ; } -#endif - -///////// END_ENTITY poly_loop - - -///////// ENTITY wire_shell - -extern AttrDescriptor *a_432wire_shell_extent; - -class SdaiWire_shell : public SdaiTopological_representation_item { - -#ifdef __OSTORE__ - friend void SdaiWire_shell_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - EntityAggregate _wire_shell_extent ; // of loop - - public: - - SdaiWire_shell ( ); - SdaiWire_shell (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiWire_shell (SdaiWire_shell& e ); - ~SdaiWire_shell (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 244 ; } - const EntityAggregate_ptr wire_shell_extent_() const; - void wire_shell_extent_ (const EntityAggregate_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiWire_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiWire_shell(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiWire_shell () { return (SCLP23(Application_instance_ptr)) new SdaiWire_shell ; } -#else -inline SdaiWire_shell * -create_SdaiWire_shell () { return new SdaiWire_shell ; } -#endif - -///////// END_ENTITY wire_shell - - -///////// ENTITY area_unit - - -class SdaiArea_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiArea_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiArea_unit ( ); - SdaiArea_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiArea_unit (SdaiArea_unit& e ); - ~SdaiArea_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 245 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiArea_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiArea_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiArea_unit () { return (SCLP23(Application_instance_ptr)) new SdaiArea_unit ; } -#else -inline SdaiArea_unit * -create_SdaiArea_unit () { return new SdaiArea_unit ; } -#endif - -///////// END_ENTITY area_unit - - -///////// ENTITY mapped_item - -extern AttrDescriptor *a_433mapping_source; -extern AttrDescriptor *a_434mapping_target; - -class SdaiMapped_item : public SdaiRepresentation_item { - -#ifdef __OSTORE__ - friend void SdaiMapped_item_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _mapping_source ; - SCLP23(Application_instance_ptr) _mapping_target ; - public: - - SdaiMapped_item ( ); - SdaiMapped_item (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiMapped_item (SdaiMapped_item& e ); - ~SdaiMapped_item (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 246 ; } - const SdaiRepresentation_map_ptr mapping_source_() const; - void mapping_source_ (const SdaiRepresentation_map_ptr x); - - const SdaiRepresentation_item_ptr mapping_target_() const; - void mapping_target_ (const SdaiRepresentation_item_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiMapped_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiMapped_item(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiMapped_item () { return (SCLP23(Application_instance_ptr)) new SdaiMapped_item ; } -#else -inline SdaiMapped_item * -create_SdaiMapped_item () { return new SdaiMapped_item ; } -#endif - -///////// END_ENTITY mapped_item - - -///////// ENTITY offset_curve_2d - -extern AttrDescriptor *a_435basis_curve; -extern AttrDescriptor *a_436distance; -extern AttrDescriptor *a_437self_intersect; - -class SdaiOffset_curve_2d : public SdaiCurve { - -#ifdef __OSTORE__ - friend void SdaiOffset_curve_2d_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Application_instance_ptr) _basis_curve ; - SCLP23(Real) _distance ; - SCLP23(LOGICAL) _self_intersect ; - public: - - SdaiOffset_curve_2d ( ); - SdaiOffset_curve_2d (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiOffset_curve_2d (SdaiOffset_curve_2d& e ); - ~SdaiOffset_curve_2d (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 247 ; } - const SdaiCurve_ptr basis_curve_() const; - void basis_curve_ (const SdaiCurve_ptr x); - - const SdaiLength_measure distance_() const; - void distance_ (const SdaiLength_measure x); - - const SCLLOG(Logical) self_intersect_() const; - void self_intersect_ (const SCLLOG(Logical) x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiOffset_curve_2d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiOffset_curve_2d(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiOffset_curve_2d () { return (SCLP23(Application_instance_ptr)) new SdaiOffset_curve_2d ; } -#else -inline SdaiOffset_curve_2d * -create_SdaiOffset_curve_2d () { return new SdaiOffset_curve_2d ; } -#endif - -///////// END_ENTITY offset_curve_2d - - -///////// ENTITY shape_definition_representation - - -class SdaiShape_definition_representation : public SdaiProperty_definition_representation { - -#ifdef __OSTORE__ - friend void SdaiShape_definition_representation_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiShape_definition_representation ( ); - SdaiShape_definition_representation (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiShape_definition_representation (SdaiShape_definition_representation& e ); - ~SdaiShape_definition_representation (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 248 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiShape_definition_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiShape_definition_representation(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiShape_definition_representation () { return (SCLP23(Application_instance_ptr)) new SdaiShape_definition_representation ; } -#else -inline SdaiShape_definition_representation * -create_SdaiShape_definition_representation () { return new SdaiShape_definition_representation ; } -#endif - -///////// END_ENTITY shape_definition_representation - - -///////// ENTITY volume_unit - - -class SdaiVolume_unit : public SdaiNamed_unit { - -#ifdef __OSTORE__ - friend void SdaiVolume_unit_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - public: - - SdaiVolume_unit ( ); - SdaiVolume_unit (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiVolume_unit (SdaiVolume_unit& e ); - ~SdaiVolume_unit (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 249 ; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiVolume_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiVolume_unit(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiVolume_unit () { return (SCLP23(Application_instance_ptr)) new SdaiVolume_unit ; } -#else -inline SdaiVolume_unit * -create_SdaiVolume_unit () { return new SdaiVolume_unit ; } -#endif - -///////// END_ENTITY volume_unit - - -///////// ENTITY conical_surface - -extern AttrDescriptor *a_438radius; -extern AttrDescriptor *a_439semi_angle; - -class SdaiConical_surface : public SdaiElementary_surface { - -#ifdef __OSTORE__ - friend void SdaiConical_surface_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SCLP23(Real) _radius ; - SCLP23(Real) _semi_angle ; - public: - - SdaiConical_surface ( ); - SdaiConical_surface (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiConical_surface (SdaiConical_surface& e ); - ~SdaiConical_surface (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 250 ; } - const SdaiLength_measure radius_() const; - void radius_ (const SdaiLength_measure x); - - const SdaiPlane_angle_measure semi_angle_() const; - void semi_angle_ (const SdaiPlane_angle_measure x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiConical_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiConical_surface(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiConical_surface () { return (SCLP23(Application_instance_ptr)) new SdaiConical_surface ; } -#else -inline SdaiConical_surface * -create_SdaiConical_surface () { return new SdaiConical_surface ; } -#endif - -///////// END_ENTITY conical_surface - - -///////// ENTITY global_unit_assigned_context - -extern AttrDescriptor *a_440units; - -class SdaiGlobal_unit_assigned_context : public SdaiRepresentation_context { - -#ifdef __OSTORE__ - friend void SdaiGlobal_unit_assigned_context_access_hook_in(void *, - enum os_access_reason, void *, void *, void *); -#endif - protected: - SdaiUnits _units ; // of unit - - public: - - SdaiGlobal_unit_assigned_context ( ); - SdaiGlobal_unit_assigned_context (SCLP23(Application_instance) *se, int *addAttrs = 0); - SdaiGlobal_unit_assigned_context (SdaiGlobal_unit_assigned_context& e ); - ~SdaiGlobal_unit_assigned_context (); - -#ifdef __O3DB__ - void oodb_reInit(); -#endif - - int opcode () { return 251 ; } - const SdaiUnits_ptr units_() const; - void units_ (const SdaiUnits_ptr x); - - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -#ifdef __OSTORE__ -void SdaiGlobal_unit_assigned_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -#ifdef __OSTORE__ -SCLP23(Application_instance_ptr) -create_SdaiGlobal_unit_assigned_context(os_database *db); - -#elif __O3DB__ -inline SCLP23(Application_instance_ptr) -create_SdaiGlobal_unit_assigned_context () { return (SCLP23(Application_instance_ptr)) new SdaiGlobal_unit_assigned_context ; } -#else -inline SdaiGlobal_unit_assigned_context * -create_SdaiGlobal_unit_assigned_context () { return new SdaiGlobal_unit_assigned_context ; } -#endif - -///////// END_ENTITY global_unit_assigned_context - - -// ***** generate Model related pieces - -class SdaiModel_contents_config_control_design : public SCLP23(Model_contents) { - - public: - -#ifdef __OSTORE__ - SdaiModel_contents_config_control_design(os_database *db=0); -#else - SdaiModel_contents_config_control_design(); -#endif - - SdaiRepresentation_item__set_var SdaiRepresentation_item_get_extents(); - - SdaiGeometric_representation_item__set_var SdaiGeometric_representation_item_get_extents(); - - SdaiFunctionally_defined_transformation__set_var SdaiFunctionally_defined_transformation_get_extents(); - - SdaiCartesian_transformation_operator__set_var SdaiCartesian_transformation_operator_get_extents(); - - SdaiCartesian_transformation_operator_3d__set_var SdaiCartesian_transformation_operator_3d_get_extents(); - - SdaiVersioned_action_request__set_var SdaiVersioned_action_request_get_extents(); - - SdaiRepresentation__set_var SdaiRepresentation_get_extents(); - - SdaiShape_representation__set_var SdaiShape_representation_get_extents(); - - SdaiManifold_surface_shape_representation__set_var SdaiManifold_surface_shape_representation_get_extents(); - - SdaiCertification__set_var SdaiCertification_get_extents(); - - SdaiProduct_definition_relationship__set_var SdaiProduct_definition_relationship_get_extents(); - - SdaiProduct_definition_usage__set_var SdaiProduct_definition_usage_get_extents(); - - SdaiAssembly_component_usage__set_var SdaiAssembly_component_usage_get_extents(); - - SdaiQuantified_assembly_component_usage__set_var SdaiQuantified_assembly_component_usage_get_extents(); - - SdaiSolid_model__set_var SdaiSolid_model_get_extents(); - - SdaiManifold_solid_brep__set_var SdaiManifold_solid_brep_get_extents(); - - SdaiFaceted_brep__set_var SdaiFaceted_brep_get_extents(); - - SdaiAction_directive__set_var SdaiAction_directive_get_extents(); - - SdaiNamed_unit__set_var SdaiNamed_unit_get_extents(); - - SdaiPlane_angle_unit__set_var SdaiPlane_angle_unit_get_extents(); - - SdaiMeasure_with_unit__set_var SdaiMeasure_with_unit_get_extents(); - - SdaiArea_measure_with_unit__set_var SdaiArea_measure_with_unit_get_extents(); - - SdaiEffectivity__set_var SdaiEffectivity_get_extents(); - - SdaiSerial_numbered_effectivity__set_var SdaiSerial_numbered_effectivity_get_extents(); - - SdaiSurface__set_var SdaiSurface_get_extents(); - - SdaiOffset_surface__set_var SdaiOffset_surface_get_extents(); - - SdaiPlacement__set_var SdaiPlacement_get_extents(); - - SdaiAxis2_placement_2d__set_var SdaiAxis2_placement_2d_get_extents(); - - SdaiProduct_category__set_var SdaiProduct_category_get_extents(); - - SdaiProduct_related_product_category__set_var SdaiProduct_related_product_category_get_extents(); - - SdaiCurve__set_var SdaiCurve_get_extents(); - - SdaiConic__set_var SdaiConic_get_extents(); - - SdaiHyperbola__set_var SdaiHyperbola_get_extents(); - - SdaiAddress__set_var SdaiAddress_get_extents(); - - SdaiOrganizational_address__set_var SdaiOrganizational_address_get_extents(); - - SdaiBounded_surface__set_var SdaiBounded_surface_get_extents(); - - SdaiB_spline_surface__set_var SdaiB_spline_surface_get_extents(); - - SdaiUniform_surface__set_var SdaiUniform_surface_get_extents(); - - SdaiGeometrically_bounded_surface_shape_representation__set_var SdaiGeometrically_bounded_surface_shape_representation_get_extents(); - - SdaiAxis1_placement__set_var SdaiAxis1_placement_get_extents(); - - SdaiBounded_curve__set_var SdaiBounded_curve_get_extents(); - - SdaiB_spline_curve__set_var SdaiB_spline_curve_get_extents(); - - SdaiRational_b_spline_curve__set_var SdaiRational_b_spline_curve_get_extents(); - - SdaiAction_request_assignment__set_var SdaiAction_request_assignment_get_extents(); - - SdaiTopological_representation_item__set_var SdaiTopological_representation_item_get_extents(); - - SdaiFace_bound__set_var SdaiFace_bound_get_extents(); - - SdaiLength_measure_with_unit__set_var SdaiLength_measure_with_unit_get_extents(); - - SdaiDated_effectivity__set_var SdaiDated_effectivity_get_extents(); - - SdaiDirection__set_var SdaiDirection_get_extents(); - - SdaiNext_assembly_usage_occurrence__set_var SdaiNext_assembly_usage_occurrence_get_extents(); - - SdaiEdge__set_var SdaiEdge_get_extents(); - - SdaiOriented_edge__set_var SdaiOriented_edge_get_extents(); - - SdaiPerson__set_var SdaiPerson_get_extents(); - - SdaiDocument__set_var SdaiDocument_get_extents(); - - SdaiDocument_with_class__set_var SdaiDocument_with_class_get_extents(); - - SdaiConversion_based_unit__set_var SdaiConversion_based_unit_get_extents(); - - SdaiPoint__set_var SdaiPoint_get_extents(); - - SdaiPoint_on_surface__set_var SdaiPoint_on_surface_get_extents(); - - SdaiProduct_definition_formation__set_var SdaiProduct_definition_formation_get_extents(); - - SdaiPerson_and_organization_assignment__set_var SdaiPerson_and_organization_assignment_get_extents(); - - SdaiCc_design_person_and_organization_assignment__set_var SdaiCc_design_person_and_organization_assignment_get_extents(); - - SdaiOffset_curve_3d__set_var SdaiOffset_curve_3d_get_extents(); - - SdaiApproval__set_var SdaiApproval_get_extents(); - - SdaiComposite_curve__set_var SdaiComposite_curve_get_extents(); - - SdaiComposite_curve_on_surface__set_var SdaiComposite_curve_on_surface_get_extents(); - - SdaiBoundary_curve__set_var SdaiBoundary_curve_get_extents(); - - SdaiRepresentation_context__set_var SdaiRepresentation_context_get_extents(); - - SdaiGeometric_representation_context__set_var SdaiGeometric_representation_context_get_extents(); - - SdaiAction_status__set_var SdaiAction_status_get_extents(); - - SdaiApplication_context__set_var SdaiApplication_context_get_extents(); - - SdaiChange_request__set_var SdaiChange_request_get_extents(); - - SdaiDate_and_time__set_var SdaiDate_and_time_get_extents(); - - SdaiApproval_date_time__set_var SdaiApproval_date_time_get_extents(); - - SdaiApproval_role__set_var SdaiApproval_role_get_extents(); - - SdaiApplication_context_element__set_var SdaiApplication_context_element_get_extents(); - - SdaiProduct_context__set_var SdaiProduct_context_get_extents(); - - SdaiElementary_surface__set_var SdaiElementary_surface_get_extents(); - - SdaiSpherical_surface__set_var SdaiSpherical_surface_get_extents(); - - SdaiApplication_protocol_definition__set_var SdaiApplication_protocol_definition_get_extents(); - - SdaiSpecified_higher_usage_occurrence__set_var SdaiSpecified_higher_usage_occurrence_get_extents(); - - SdaiProduct_definition_formation_with_specified_source__set_var SdaiProduct_definition_formation_with_specified_source_get_extents(); - - SdaiAction_request_solution__set_var SdaiAction_request_solution_get_extents(); - - SdaiUncertainty_measure_with_unit__set_var SdaiUncertainty_measure_with_unit_get_extents(); - - SdaiEdge_based_wireframe_model__set_var SdaiEdge_based_wireframe_model_get_extents(); - - SdaiPath__set_var SdaiPath_get_extents(); - - SdaiConnected_face_set__set_var SdaiConnected_face_set_get_extents(); - - SdaiOpen_shell__set_var SdaiOpen_shell_get_extents(); - - SdaiOriented_open_shell__set_var SdaiOriented_open_shell_get_extents(); - - SdaiSolid_angle_unit__set_var SdaiSolid_angle_unit_get_extents(); - - SdaiCoordinated_universal_time_offset__set_var SdaiCoordinated_universal_time_offset_get_extents(); - - SdaiCurve_replica__set_var SdaiCurve_replica_get_extents(); - - SdaiQuasi_uniform_surface__set_var SdaiQuasi_uniform_surface_get_extents(); - - SdaiSurface_curve__set_var SdaiSurface_curve_get_extents(); - - SdaiAction_request_status__set_var SdaiAction_request_status_get_extents(); - - SdaiComposite_curve_segment__set_var SdaiComposite_curve_segment_get_extents(); - - SdaiReparametrised_composite_curve_segment__set_var SdaiReparametrised_composite_curve_segment_get_extents(); - - SdaiRepresentation_relationship__set_var SdaiRepresentation_relationship_get_extents(); - - SdaiRepresentation_relationship_with_transformation__set_var SdaiRepresentation_relationship_with_transformation_get_extents(); - - SdaiPerson_and_organization_role__set_var SdaiPerson_and_organization_role_get_extents(); - - SdaiQuasi_uniform_curve__set_var SdaiQuasi_uniform_curve_get_extents(); - - SdaiSwept_surface__set_var SdaiSwept_surface_get_extents(); - - SdaiProperty_definition__set_var SdaiProperty_definition_get_extents(); - - SdaiGlobal_uncertainty_assigned_context__set_var SdaiGlobal_uncertainty_assigned_context_get_extents(); - - SdaiOrganization_relationship__set_var SdaiOrganization_relationship_get_extents(); - - SdaiParabola__set_var SdaiParabola_get_extents(); - - SdaiRectangular_composite_surface__set_var SdaiRectangular_composite_surface_get_extents(); - - SdaiLot_effectivity__set_var SdaiLot_effectivity_get_extents(); - - SdaiSurface_of_linear_extrusion__set_var SdaiSurface_of_linear_extrusion_get_extents(); - - SdaiShell_based_surface_model__set_var SdaiShell_based_surface_model_get_extents(); - - SdaiUniform_curve__set_var SdaiUniform_curve_get_extents(); - - SdaiBezier_curve__set_var SdaiBezier_curve_get_extents(); - - SdaiLoop__set_var SdaiLoop_get_extents(); - - SdaiEdge_loop__set_var SdaiEdge_loop_get_extents(); - - SdaiDate__set_var SdaiDate_get_extents(); - - SdaiCalendar_date__set_var SdaiCalendar_date_get_extents(); - - SdaiToroidal_surface__set_var SdaiToroidal_surface_get_extents(); - - SdaiPromissory_usage_occurrence__set_var SdaiPromissory_usage_occurrence_get_extents(); - - SdaiApproval_assignment__set_var SdaiApproval_assignment_get_extents(); - - SdaiConfiguration_item__set_var SdaiConfiguration_item_get_extents(); - - SdaiContract_assignment__set_var SdaiContract_assignment_get_extents(); - - SdaiVector__set_var SdaiVector_get_extents(); - - SdaiIntersection_curve__set_var SdaiIntersection_curve_get_extents(); - - SdaiTrimmed_curve__set_var SdaiTrimmed_curve_get_extents(); - - SdaiProduct_definition_context__set_var SdaiProduct_definition_context_get_extents(); - - SdaiItem_defined_transformation__set_var SdaiItem_defined_transformation_get_extents(); - - SdaiAction_method__set_var SdaiAction_method_get_extents(); - - SdaiProduct_category_relationship__set_var SdaiProduct_category_relationship_get_extents(); - - SdaiPlane_angle_measure_with_unit__set_var SdaiPlane_angle_measure_with_unit_get_extents(); - - SdaiVertex__set_var SdaiVertex_get_extents(); - - SdaiRepresentation_map__set_var SdaiRepresentation_map_get_extents(); - - SdaiProduct_definition_effectivity__set_var SdaiProduct_definition_effectivity_get_extents(); - - SdaiConfiguration_effectivity__set_var SdaiConfiguration_effectivity_get_extents(); - - SdaiEllipse__set_var SdaiEllipse_get_extents(); - - SdaiContext_dependent_unit__set_var SdaiContext_dependent_unit_get_extents(); - - SdaiAlternate_product_relationship__set_var SdaiAlternate_product_relationship_get_extents(); - - SdaiDocument_type__set_var SdaiDocument_type_get_extents(); - - SdaiDocument_reference__set_var SdaiDocument_reference_get_extents(); - - SdaiMechanical_context__set_var SdaiMechanical_context_get_extents(); - - SdaiShell_based_wireframe_model__set_var SdaiShell_based_wireframe_model_get_extents(); - - SdaiContract__set_var SdaiContract_get_extents(); - - SdaiDimensional_exponents__set_var SdaiDimensional_exponents_get_extents(); - - SdaiStart_request__set_var SdaiStart_request_get_extents(); - - SdaiCc_design_specification_reference__set_var SdaiCc_design_specification_reference_get_extents(); - - SdaiSupplied_part_relationship__set_var SdaiSupplied_part_relationship_get_extents(); - - SdaiContext_dependent_shape_representation__set_var SdaiContext_dependent_shape_representation_get_extents(); - - SdaiOrdinal_date__set_var SdaiOrdinal_date_get_extents(); - - SdaiFace_outer_bound__set_var SdaiFace_outer_bound_get_extents(); - - SdaiMass_measure_with_unit__set_var SdaiMass_measure_with_unit_get_extents(); - - SdaiBrep_with_voids__set_var SdaiBrep_with_voids_get_extents(); - - SdaiWeek_of_year_and_day_date__set_var SdaiWeek_of_year_and_day_date_get_extents(); - - SdaiPoint_on_curve__set_var SdaiPoint_on_curve_get_extents(); - - SdaiShell_based_wireframe_shape_representation__set_var SdaiShell_based_wireframe_shape_representation_get_extents(); - - SdaiFace__set_var SdaiFace_get_extents(); - - SdaiFace_surface__set_var SdaiFace_surface_get_extents(); - - SdaiOriented_face__set_var SdaiOriented_face_get_extents(); - - SdaiSurface_of_revolution__set_var SdaiSurface_of_revolution_get_extents(); - - SdaiAdvanced_brep_shape_representation__set_var SdaiAdvanced_brep_shape_representation_get_extents(); - - SdaiEdge_curve__set_var SdaiEdge_curve_get_extents(); - - SdaiPoint_replica__set_var SdaiPoint_replica_get_extents(); - - SdaiProduct__set_var SdaiProduct_get_extents(); - - SdaiShape_aspect_relationship__set_var SdaiShape_aspect_relationship_get_extents(); - - SdaiRectangular_trimmed_surface__set_var SdaiRectangular_trimmed_surface_get_extents(); - - SdaiPlane__set_var SdaiPlane_get_extents(); - - SdaiAction_assignment__set_var SdaiAction_assignment_get_extents(); - - SdaiChange__set_var SdaiChange_get_extents(); - - SdaiCircle__set_var SdaiCircle_get_extents(); - - SdaiLine__set_var SdaiLine_get_extents(); - - SdaiProperty_definition_representation__set_var SdaiProperty_definition_representation_get_extents(); - - SdaiGeometric_set__set_var SdaiGeometric_set_get_extents(); - - SdaiGeometric_curve_set__set_var SdaiGeometric_curve_set_get_extents(); - - SdaiPersonal_address__set_var SdaiPersonal_address_get_extents(); - - SdaiDocument_relationship__set_var SdaiDocument_relationship_get_extents(); - - SdaiPcurve__set_var SdaiPcurve_get_extents(); - - SdaiOuter_boundary_curve__set_var SdaiOuter_boundary_curve_get_extents(); - - SdaiShape_representation_relationship__set_var SdaiShape_representation_relationship_get_extents(); - - SdaiAssembly_component_usage_substitute__set_var SdaiAssembly_component_usage_substitute_get_extents(); - - SdaiDegenerate_pcurve__set_var SdaiDegenerate_pcurve_get_extents(); - - SdaiEvaluated_degenerate_pcurve__set_var SdaiEvaluated_degenerate_pcurve_get_extents(); - - SdaiSolid_angle_measure_with_unit__set_var SdaiSolid_angle_measure_with_unit_get_extents(); - - SdaiConnected_edge_set__set_var SdaiConnected_edge_set_get_extents(); - - SdaiAction__set_var SdaiAction_get_extents(); - - SdaiExecuted_action__set_var SdaiExecuted_action_get_extents(); - - SdaiDirected_action__set_var SdaiDirected_action_get_extents(); - - SdaiOrganizational_project__set_var SdaiOrganizational_project_get_extents(); - - SdaiDate_time_role__set_var SdaiDate_time_role_get_extents(); - - SdaiCurve_bounded_surface__set_var SdaiCurve_bounded_surface_get_extents(); - - SdaiClosed_shell__set_var SdaiClosed_shell_get_extents(); - - SdaiDesign_make_from_relationship__set_var SdaiDesign_make_from_relationship_get_extents(); - - SdaiDefinitional_representation__set_var SdaiDefinitional_representation_get_extents(); - - SdaiProduct_definition_shape__set_var SdaiProduct_definition_shape_get_extents(); - - SdaiSi_unit__set_var SdaiSi_unit_get_extents(); - - SdaiBezier_surface__set_var SdaiBezier_surface_get_extents(); - - SdaiCertification_assignment__set_var SdaiCertification_assignment_get_extents(); - - SdaiStart_work__set_var SdaiStart_work_get_extents(); - - SdaiContract_type__set_var SdaiContract_type_get_extents(); - - SdaiB_spline_curve_with_knots__set_var SdaiB_spline_curve_with_knots_get_extents(); - - SdaiCc_design_approval__set_var SdaiCc_design_approval_get_extents(); - - SdaiEdge_based_wireframe_shape_representation__set_var SdaiEdge_based_wireframe_shape_representation_get_extents(); - - SdaiGeometrically_bounded_wireframe_shape_representation__set_var SdaiGeometrically_bounded_wireframe_shape_representation_get_extents(); - - SdaiProduct_concept__set_var SdaiProduct_concept_get_extents(); - - SdaiCc_design_contract__set_var SdaiCc_design_contract_get_extents(); - - SdaiSeam_curve__set_var SdaiSeam_curve_get_extents(); - - SdaiAxis2_placement_3d__set_var SdaiAxis2_placement_3d_get_extents(); - - SdaiRational_b_spline_surface__set_var SdaiRational_b_spline_surface_get_extents(); - - SdaiConfiguration_design__set_var SdaiConfiguration_design_get_extents(); - - SdaiDesign_context__set_var SdaiDesign_context_get_extents(); - - SdaiProduct_definition__set_var SdaiProduct_definition_get_extents(); - - SdaiProduct_definition_with_associated_documents__set_var SdaiProduct_definition_with_associated_documents_get_extents(); - - SdaiOrganization__set_var SdaiOrganization_get_extents(); - - SdaiCc_design_certification__set_var SdaiCc_design_certification_get_extents(); - - SdaiB_spline_surface_with_knots__set_var SdaiB_spline_surface_with_knots_get_extents(); - - SdaiCertification_type__set_var SdaiCertification_type_get_extents(); - - SdaiOriented_path__set_var SdaiOriented_path_get_extents(); - - SdaiSecurity_classification__set_var SdaiSecurity_classification_get_extents(); - - SdaiVertex_loop__set_var SdaiVertex_loop_get_extents(); - - SdaiApproval_status__set_var SdaiApproval_status_get_extents(); - - SdaiCartesian_point__set_var SdaiCartesian_point_get_extents(); - - SdaiDate_and_time_assignment__set_var SdaiDate_and_time_assignment_get_extents(); - - SdaiParametric_representation_context__set_var SdaiParametric_representation_context_get_extents(); - - SdaiProduct_concept_context__set_var SdaiProduct_concept_context_get_extents(); - - SdaiCartesian_transformation_operator_2d__set_var SdaiCartesian_transformation_operator_2d_get_extents(); - - SdaiSurface_patch__set_var SdaiSurface_patch_get_extents(); - - SdaiLength_unit__set_var SdaiLength_unit_get_extents(); - - SdaiShape_aspect__set_var SdaiShape_aspect_get_extents(); - - SdaiVolume_measure_with_unit__set_var SdaiVolume_measure_with_unit_get_extents(); - - SdaiAdvanced_face__set_var SdaiAdvanced_face_get_extents(); - - SdaiSecurity_classification_level__set_var SdaiSecurity_classification_level_get_extents(); - - SdaiApproval_relationship__set_var SdaiApproval_relationship_get_extents(); - - SdaiPolyline__set_var SdaiPolyline_get_extents(); - - SdaiApproval_person_organization__set_var SdaiApproval_person_organization_get_extents(); - - SdaiSurface_replica__set_var SdaiSurface_replica_get_extents(); - - SdaiSecurity_classification_assignment__set_var SdaiSecurity_classification_assignment_get_extents(); - - SdaiCc_design_security_classification__set_var SdaiCc_design_security_classification_get_extents(); - - SdaiFaceted_brep_shape_representation__set_var SdaiFaceted_brep_shape_representation_get_extents(); - - SdaiDocument_usage_constraint__set_var SdaiDocument_usage_constraint_get_extents(); - - SdaiVertex_point__set_var SdaiVertex_point_get_extents(); - - SdaiCc_design_date_and_time_assignment__set_var SdaiCc_design_date_and_time_assignment_get_extents(); - - SdaiOriented_closed_shell__set_var SdaiOriented_closed_shell_get_extents(); - - SdaiPerson_and_organization__set_var SdaiPerson_and_organization_get_extents(); - - SdaiCylindrical_surface__set_var SdaiCylindrical_surface_get_extents(); - - SdaiLocal_time__set_var SdaiLocal_time_get_extents(); - - SdaiMass_unit__set_var SdaiMass_unit_get_extents(); - - SdaiVertex_shell__set_var SdaiVertex_shell_get_extents(); - - SdaiPoly_loop__set_var SdaiPoly_loop_get_extents(); - - SdaiWire_shell__set_var SdaiWire_shell_get_extents(); - - SdaiArea_unit__set_var SdaiArea_unit_get_extents(); - - SdaiMapped_item__set_var SdaiMapped_item_get_extents(); - - SdaiOffset_curve_2d__set_var SdaiOffset_curve_2d_get_extents(); - - SdaiShape_definition_representation__set_var SdaiShape_definition_representation_get_extents(); - - SdaiVolume_unit__set_var SdaiVolume_unit_get_extents(); - - SdaiConical_surface__set_var SdaiConical_surface_get_extents(); - - SdaiGlobal_unit_assigned_context__set_var SdaiGlobal_unit_assigned_context_get_extents(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - - -typedef SdaiModel_contents_config_control_design * SdaiModel_contents_config_control_design_ptr; -typedef SdaiModel_contents_config_control_design_ptr SdaiModel_contents_config_control_design_var; - -#ifdef __OSTORE__ -SCLP23(Model_contents_ptr) create_SdaiModel_contents_config_control_design(os_database *db); -#else -SCLP23(Model_contents_ptr) create_SdaiModel_contents_config_control_design(); -#endif - -#endif diff --git a/source/geometry/solids/STEP/include/Sdaiclasses.h b/source/geometry/solids/STEP/include/Sdaiclasses.h deleted file mode 100644 index 5b2e91d929..0000000000 --- a/source/geometry/solids/STEP/include/Sdaiclasses.h +++ /dev/null @@ -1,2266 +0,0 @@ -#ifndef SDAICLASSES_H -#define SDAICLASSES_H -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. -/* $Id: Sdaiclasses.h,v 1.1 2000/01/21 13:42:36 gcosmo Exp $ */ -#include - -// Schema: SdaiCONFIG_CONTROL_DESIGN -extern Schema * s_config_control_design; - -// Types: -class SdaiCharacterized_definition; -typedef SdaiCharacterized_definition * SdaiCharacterized_definition_ptr; -class SdaiCharacterized_definitions; -typedef SdaiCharacterized_definitions * SdaiCharacterized_definitions_ptr; -extern SelectTypeDescriptor *config_control_designt_characterized_definition; -typedef SCLP23(Real) SdaiParameter_value; -extern TypeDescriptor *config_control_designt_parameter_value; -typedef SCLP23(Real) SdaiPlane_angle_measure; -extern TypeDescriptor *config_control_designt_plane_angle_measure; -class SdaiChange_request_item; -typedef SdaiChange_request_item * SdaiChange_request_item_ptr; -class SdaiChange_request_items; -typedef SdaiChange_request_items * SdaiChange_request_items_ptr; -extern SelectTypeDescriptor *config_control_designt_change_request_item; -typedef SCLP23(String) SdaiText; -extern TypeDescriptor *config_control_designt_text; -typedef SCLP23(Integer) SdaiYear_number; -extern TypeDescriptor *config_control_designt_year_number; -class SdaiCharacterized_product_definition; -typedef SdaiCharacterized_product_definition * SdaiCharacterized_product_definition_ptr; -class SdaiCharacterized_product_definitions; -typedef SdaiCharacterized_product_definitions * SdaiCharacterized_product_definitions_ptr; -extern SelectTypeDescriptor *config_control_designt_characterized_product_definition; -class SdaiReversible_topology_item; -typedef SdaiReversible_topology_item * SdaiReversible_topology_item_ptr; -class SdaiReversible_topology_items; -typedef SdaiReversible_topology_items * SdaiReversible_topology_items_ptr; -extern SelectTypeDescriptor *config_control_designt_reversible_topology_item; -class SdaiAxis2_placement; -typedef SdaiAxis2_placement * SdaiAxis2_placement_ptr; -class SdaiAxis2_placements; -typedef SdaiAxis2_placements * SdaiAxis2_placements_ptr; -extern SelectTypeDescriptor *config_control_designt_axis2_placement; -extern SetTypeDescriptor *config_control_designt_set_of_reversible_topology_item; -typedef SCLP23(Integer) SdaiWeek_in_year_number; -extern TypeDescriptor *config_control_designt_week_in_year_number; -class SdaiKnot_type_vars; -extern EnumTypeDescriptor *config_control_designt_knot_type; -class SdaiSpecified_item; -typedef SdaiSpecified_item * SdaiSpecified_item_ptr; -class SdaiSpecified_items; -typedef SdaiSpecified_items * SdaiSpecified_items_ptr; -extern SelectTypeDescriptor *config_control_designt_specified_item; -typedef SCLP23(Integer) SdaiMinute_in_hour; -extern TypeDescriptor *config_control_designt_minute_in_hour; -class SdaiTransition_code_vars; -extern EnumTypeDescriptor *config_control_designt_transition_code; -typedef SCLP23(String) SdaiIdentifier; -extern TypeDescriptor *config_control_designt_identifier; -class SdaiMeasure_value; -typedef SdaiMeasure_value * SdaiMeasure_value_ptr; -class SdaiMeasure_values; -typedef SdaiMeasure_values * SdaiMeasure_values_ptr; -extern SelectTypeDescriptor *config_control_designt_measure_value; -class SdaiPerson_organization_select; -typedef SdaiPerson_organization_select * SdaiPerson_organization_select_ptr; -class SdaiPerson_organization_selects; -typedef SdaiPerson_organization_selects * SdaiPerson_organization_selects_ptr; -extern SelectTypeDescriptor *config_control_designt_person_organization_select; -class SdaiPreferred_surface_curve_representation_vars; -extern EnumTypeDescriptor *config_control_designt_preferred_surface_curve_representation; -typedef SCLP23(Integer) SdaiDimension_count; -extern TypeDescriptor *config_control_designt_dimension_count; -class SdaiPcurve_or_surface; -typedef SdaiPcurve_or_surface * SdaiPcurve_or_surface_ptr; -class SdaiPcurve_or_surfaces; -typedef SdaiPcurve_or_surfaces * SdaiPcurve_or_surfaces_ptr; -extern SelectTypeDescriptor *config_control_designt_pcurve_or_surface; -typedef SCLP23(Real) SdaiPositive_length_measure; -extern TypeDescriptor *config_control_designt_positive_length_measure; -class SdaiB_spline_curve_form_vars; -extern EnumTypeDescriptor *config_control_designt_b_spline_curve_form; -typedef SCLP23(Integer) SdaiHour_in_day; -extern TypeDescriptor *config_control_designt_hour_in_day; -class SdaiClassified_item; -typedef SdaiClassified_item * SdaiClassified_item_ptr; -class SdaiClassified_items; -typedef SdaiClassified_items * SdaiClassified_items_ptr; -extern SelectTypeDescriptor *config_control_designt_classified_item; -class SdaiSi_unit_name_vars; -extern EnumTypeDescriptor *config_control_designt_si_unit_name; -typedef SCLP23(Integer) SdaiDay_in_month_number; -extern TypeDescriptor *config_control_designt_day_in_month_number; -class SdaiTrimming_preference_vars; -extern EnumTypeDescriptor *config_control_designt_trimming_preference; -class SdaiVector_or_direction; -typedef SdaiVector_or_direction * SdaiVector_or_direction_ptr; -class SdaiVector_or_directions; -typedef SdaiVector_or_directions * SdaiVector_or_directions_ptr; -extern SelectTypeDescriptor *config_control_designt_vector_or_direction; -class SdaiWireframe_model; -typedef SdaiWireframe_model * SdaiWireframe_model_ptr; -class SdaiWireframe_models; -typedef SdaiWireframe_models * SdaiWireframe_models_ptr; -extern SelectTypeDescriptor *config_control_designt_wireframe_model; -typedef SCLP23(Real) SdaiVolume_measure; -extern TypeDescriptor *config_control_designt_volume_measure; -class SdaiGeometric_set_select; -typedef SdaiGeometric_set_select * SdaiGeometric_set_select_ptr; -class SdaiGeometric_set_selects; -typedef SdaiGeometric_set_selects * SdaiGeometric_set_selects_ptr; -extern SelectTypeDescriptor *config_control_designt_geometric_set_select; -typedef SCLP23(Real) SdaiPositive_plane_angle_measure; -extern TypeDescriptor *config_control_designt_positive_plane_angle_measure; -class SdaiStart_request_item; -typedef SdaiStart_request_item * SdaiStart_request_item_ptr; -class SdaiStart_request_items; -typedef SdaiStart_request_items * SdaiStart_request_items_ptr; -extern SelectTypeDescriptor *config_control_designt_start_request_item; -class SdaiB_spline_surface_form_vars; -extern EnumTypeDescriptor *config_control_designt_b_spline_surface_form; -class SdaiPerson_organization_item; -typedef SdaiPerson_organization_item * SdaiPerson_organization_item_ptr; -class SdaiPerson_organization_items; -typedef SdaiPerson_organization_items * SdaiPerson_organization_items_ptr; -extern SelectTypeDescriptor *config_control_designt_person_organization_item; -class SdaiDate_time_item; -typedef SdaiDate_time_item * SdaiDate_time_item_ptr; -class SdaiDate_time_items; -typedef SdaiDate_time_items * SdaiDate_time_items_ptr; -extern SelectTypeDescriptor *config_control_designt_date_time_item; -class SdaiShell; -typedef SdaiShell * SdaiShell_ptr; -class SdaiShells; -typedef SdaiShells * SdaiShells_ptr; -extern SelectTypeDescriptor *config_control_designt_shell; -class SdaiTransformation; -typedef SdaiTransformation * SdaiTransformation_ptr; -class SdaiTransformations; -typedef SdaiTransformations * SdaiTransformations_ptr; -extern SelectTypeDescriptor *config_control_designt_transformation; -typedef SCLP23(Integer) SdaiDay_in_week_number; -extern TypeDescriptor *config_control_designt_day_in_week_number; -class SdaiBoolean_operand; -typedef SdaiBoolean_operand * SdaiBoolean_operand_ptr; -class SdaiBoolean_operands; -typedef SdaiBoolean_operands * SdaiBoolean_operands_ptr; -extern SelectTypeDescriptor *config_control_designt_boolean_operand; -class SdaiCertified_item; -typedef SdaiCertified_item * SdaiCertified_item_ptr; -class SdaiCertified_items; -typedef SdaiCertified_items * SdaiCertified_items_ptr; -extern SelectTypeDescriptor *config_control_designt_certified_item; -class SdaiDate_time_select; -typedef SdaiDate_time_select * SdaiDate_time_select_ptr; -class SdaiDate_time_selects; -typedef SdaiDate_time_selects * SdaiDate_time_selects_ptr; -extern SelectTypeDescriptor *config_control_designt_date_time_select; -typedef SCLP23(Real) SdaiSolid_angle_measure; -extern TypeDescriptor *config_control_designt_solid_angle_measure; -class SdaiCurve_on_surface; -typedef SdaiCurve_on_surface * SdaiCurve_on_surface_ptr; -class SdaiCurve_on_surfaces; -typedef SdaiCurve_on_surfaces * SdaiCurve_on_surfaces_ptr; -extern SelectTypeDescriptor *config_control_designt_curve_on_surface; -class SdaiTrimming_select; -typedef SdaiTrimming_select * SdaiTrimming_select_ptr; -class SdaiTrimming_selects; -typedef SdaiTrimming_selects * SdaiTrimming_selects_ptr; -extern SelectTypeDescriptor *config_control_designt_trimming_select; -class SdaiAhead_or_behind_vars; -extern EnumTypeDescriptor *config_control_designt_ahead_or_behind; -class SdaiContracted_item; -typedef SdaiContracted_item * SdaiContracted_item_ptr; -class SdaiContracted_items; -typedef SdaiContracted_items * SdaiContracted_items_ptr; -extern SelectTypeDescriptor *config_control_designt_contracted_item; -typedef SCLP23(Integer) SdaiDay_in_year_number; -extern TypeDescriptor *config_control_designt_day_in_year_number; -typedef SCLP23(Real) SdaiMass_measure; -extern TypeDescriptor *config_control_designt_mass_measure; -typedef SCLP23(String) SdaiDescriptive_measure; -extern TypeDescriptor *config_control_designt_descriptive_measure; -typedef SCLP23(Real) SdaiArea_measure; -extern TypeDescriptor *config_control_designt_area_measure; -typedef SCLP23(Integer) SdaiMonth_in_year_number; -extern TypeDescriptor *config_control_designt_month_in_year_number; -class SdaiSource_vars; -extern EnumTypeDescriptor *config_control_designt_source; -class SdaiUnit; -typedef SdaiUnit * SdaiUnit_ptr; -class SdaiUnits; -typedef SdaiUnits * SdaiUnits_ptr; -extern SelectTypeDescriptor *config_control_designt_unit; -class SdaiReversible_topology; -typedef SdaiReversible_topology * SdaiReversible_topology_ptr; -class SdaiReversible_topologys; -typedef SdaiReversible_topologys * SdaiReversible_topologys_ptr; -extern SelectTypeDescriptor *config_control_designt_reversible_topology; -class SdaiWork_item; -typedef SdaiWork_item * SdaiWork_item_ptr; -class SdaiWork_items; -typedef SdaiWork_items * SdaiWork_items_ptr; -extern SelectTypeDescriptor *config_control_designt_work_item; -class SdaiShape_definition; -typedef SdaiShape_definition * SdaiShape_definition_ptr; -class SdaiShape_definitions; -typedef SdaiShape_definitions * SdaiShape_definitions_ptr; -extern SelectTypeDescriptor *config_control_designt_shape_definition; -typedef SCLP23(Real) SdaiSecond_in_minute; -extern TypeDescriptor *config_control_designt_second_in_minute; -typedef SCLP23(String) SdaiLabel; -extern TypeDescriptor *config_control_designt_label; -typedef SCLP23(Real) SdaiContext_dependent_measure; -extern TypeDescriptor *config_control_designt_context_dependent_measure; -class SdaiSupported_item; -typedef SdaiSupported_item * SdaiSupported_item_ptr; -class SdaiSupported_items; -typedef SdaiSupported_items * SdaiSupported_items_ptr; -extern SelectTypeDescriptor *config_control_designt_supported_item; -class SdaiSi_prefix_vars; -extern EnumTypeDescriptor *config_control_designt_si_prefix; -typedef SCLP23(Real) SdaiLength_measure; -extern TypeDescriptor *config_control_designt_length_measure; -class SdaiApproved_item; -typedef SdaiApproved_item * SdaiApproved_item_ptr; -class SdaiApproved_items; -typedef SdaiApproved_items * SdaiApproved_items_ptr; -extern SelectTypeDescriptor *config_control_designt_approved_item; -typedef SCLP23(Real) SdaiCount_measure; -extern TypeDescriptor *config_control_designt_count_measure; -class SdaiSurface_model; -typedef SdaiSurface_model * SdaiSurface_model_ptr; -class SdaiSurface_models; -typedef SdaiSurface_models * SdaiSurface_models_ptr; -extern SelectTypeDescriptor *config_control_designt_surface_model; -extern ListTypeDescriptor *config_control_designt_list_of_reversible_topology_item; - -// Entities: -class SdaiRepresentation_item; -typedef SdaiRepresentation_item * SdaiRepresentation_itemH; -typedef SdaiRepresentation_item * SdaiRepresentation_item_ptr; -typedef SdaiRepresentation_item_ptr SdaiRepresentation_item_var; -#define SdaiRepresentation_item__set SCLP23(DAObject__set) -#define SdaiRepresentation_item__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_representation_item; - -class SdaiGeometric_representation_item; -typedef SdaiGeometric_representation_item * SdaiGeometric_representation_itemH; -typedef SdaiGeometric_representation_item * SdaiGeometric_representation_item_ptr; -typedef SdaiGeometric_representation_item_ptr SdaiGeometric_representation_item_var; -#define SdaiGeometric_representation_item__set SCLP23(DAObject__set) -#define SdaiGeometric_representation_item__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_geometric_representation_item; - -class SdaiFunctionally_defined_transformation; -typedef SdaiFunctionally_defined_transformation * SdaiFunctionally_defined_transformationH; -typedef SdaiFunctionally_defined_transformation * SdaiFunctionally_defined_transformation_ptr; -typedef SdaiFunctionally_defined_transformation_ptr SdaiFunctionally_defined_transformation_var; -#define SdaiFunctionally_defined_transformation__set SCLP23(DAObject__set) -#define SdaiFunctionally_defined_transformation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_functionally_defined_transformation; - -class SdaiCartesian_transformation_operator; -typedef SdaiCartesian_transformation_operator * SdaiCartesian_transformation_operatorH; -typedef SdaiCartesian_transformation_operator * SdaiCartesian_transformation_operator_ptr; -typedef SdaiCartesian_transformation_operator_ptr SdaiCartesian_transformation_operator_var; -#define SdaiCartesian_transformation_operator__set SCLP23(DAObject__set) -#define SdaiCartesian_transformation_operator__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cartesian_transformation_operator; - -class SdaiCartesian_transformation_operator_3d; -typedef SdaiCartesian_transformation_operator_3d * SdaiCartesian_transformation_operator_3dH; -typedef SdaiCartesian_transformation_operator_3d * SdaiCartesian_transformation_operator_3d_ptr; -typedef SdaiCartesian_transformation_operator_3d_ptr SdaiCartesian_transformation_operator_3d_var; -#define SdaiCartesian_transformation_operator_3d__set SCLP23(DAObject__set) -#define SdaiCartesian_transformation_operator_3d__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cartesian_transformation_operator_3d; - -class SdaiVersioned_action_request; -typedef SdaiVersioned_action_request * SdaiVersioned_action_requestH; -typedef SdaiVersioned_action_request * SdaiVersioned_action_request_ptr; -typedef SdaiVersioned_action_request_ptr SdaiVersioned_action_request_var; -#define SdaiVersioned_action_request__set SCLP23(DAObject__set) -#define SdaiVersioned_action_request__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_versioned_action_request; - -class SdaiRepresentation; -typedef SdaiRepresentation * SdaiRepresentationH; -typedef SdaiRepresentation * SdaiRepresentation_ptr; -typedef SdaiRepresentation_ptr SdaiRepresentation_var; -#define SdaiRepresentation__set SCLP23(DAObject__set) -#define SdaiRepresentation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_representation; - -class SdaiShape_representation; -typedef SdaiShape_representation * SdaiShape_representationH; -typedef SdaiShape_representation * SdaiShape_representation_ptr; -typedef SdaiShape_representation_ptr SdaiShape_representation_var; -#define SdaiShape_representation__set SCLP23(DAObject__set) -#define SdaiShape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_shape_representation; - -class SdaiManifold_surface_shape_representation; -typedef SdaiManifold_surface_shape_representation * SdaiManifold_surface_shape_representationH; -typedef SdaiManifold_surface_shape_representation * SdaiManifold_surface_shape_representation_ptr; -typedef SdaiManifold_surface_shape_representation_ptr SdaiManifold_surface_shape_representation_var; -#define SdaiManifold_surface_shape_representation__set SCLP23(DAObject__set) -#define SdaiManifold_surface_shape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_manifold_surface_shape_representation; - -class SdaiCertification; -typedef SdaiCertification * SdaiCertificationH; -typedef SdaiCertification * SdaiCertification_ptr; -typedef SdaiCertification_ptr SdaiCertification_var; -#define SdaiCertification__set SCLP23(DAObject__set) -#define SdaiCertification__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_certification; - -class SdaiProduct_definition_relationship; -typedef SdaiProduct_definition_relationship * SdaiProduct_definition_relationshipH; -typedef SdaiProduct_definition_relationship * SdaiProduct_definition_relationship_ptr; -typedef SdaiProduct_definition_relationship_ptr SdaiProduct_definition_relationship_var; -#define SdaiProduct_definition_relationship__set SCLP23(DAObject__set) -#define SdaiProduct_definition_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition_relationship; - -class SdaiProduct_definition_usage; -typedef SdaiProduct_definition_usage * SdaiProduct_definition_usageH; -typedef SdaiProduct_definition_usage * SdaiProduct_definition_usage_ptr; -typedef SdaiProduct_definition_usage_ptr SdaiProduct_definition_usage_var; -#define SdaiProduct_definition_usage__set SCLP23(DAObject__set) -#define SdaiProduct_definition_usage__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition_usage; - -class SdaiAssembly_component_usage; -typedef SdaiAssembly_component_usage * SdaiAssembly_component_usageH; -typedef SdaiAssembly_component_usage * SdaiAssembly_component_usage_ptr; -typedef SdaiAssembly_component_usage_ptr SdaiAssembly_component_usage_var; -#define SdaiAssembly_component_usage__set SCLP23(DAObject__set) -#define SdaiAssembly_component_usage__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_assembly_component_usage; - -class SdaiQuantified_assembly_component_usage; -typedef SdaiQuantified_assembly_component_usage * SdaiQuantified_assembly_component_usageH; -typedef SdaiQuantified_assembly_component_usage * SdaiQuantified_assembly_component_usage_ptr; -typedef SdaiQuantified_assembly_component_usage_ptr SdaiQuantified_assembly_component_usage_var; -#define SdaiQuantified_assembly_component_usage__set SCLP23(DAObject__set) -#define SdaiQuantified_assembly_component_usage__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_quantified_assembly_component_usage; - -class SdaiSolid_model; -typedef SdaiSolid_model * SdaiSolid_modelH; -typedef SdaiSolid_model * SdaiSolid_model_ptr; -typedef SdaiSolid_model_ptr SdaiSolid_model_var; -#define SdaiSolid_model__set SCLP23(DAObject__set) -#define SdaiSolid_model__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_solid_model; - -class SdaiManifold_solid_brep; -typedef SdaiManifold_solid_brep * SdaiManifold_solid_brepH; -typedef SdaiManifold_solid_brep * SdaiManifold_solid_brep_ptr; -typedef SdaiManifold_solid_brep_ptr SdaiManifold_solid_brep_var; -#define SdaiManifold_solid_brep__set SCLP23(DAObject__set) -#define SdaiManifold_solid_brep__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_manifold_solid_brep; - -class SdaiFaceted_brep; -typedef SdaiFaceted_brep * SdaiFaceted_brepH; -typedef SdaiFaceted_brep * SdaiFaceted_brep_ptr; -typedef SdaiFaceted_brep_ptr SdaiFaceted_brep_var; -#define SdaiFaceted_brep__set SCLP23(DAObject__set) -#define SdaiFaceted_brep__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_faceted_brep; - -class SdaiAction_directive; -typedef SdaiAction_directive * SdaiAction_directiveH; -typedef SdaiAction_directive * SdaiAction_directive_ptr; -typedef SdaiAction_directive_ptr SdaiAction_directive_var; -#define SdaiAction_directive__set SCLP23(DAObject__set) -#define SdaiAction_directive__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_action_directive; - -class SdaiNamed_unit; -typedef SdaiNamed_unit * SdaiNamed_unitH; -typedef SdaiNamed_unit * SdaiNamed_unit_ptr; -typedef SdaiNamed_unit_ptr SdaiNamed_unit_var; -#define SdaiNamed_unit__set SCLP23(DAObject__set) -#define SdaiNamed_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_named_unit; - -class SdaiPlane_angle_unit; -typedef SdaiPlane_angle_unit * SdaiPlane_angle_unitH; -typedef SdaiPlane_angle_unit * SdaiPlane_angle_unit_ptr; -typedef SdaiPlane_angle_unit_ptr SdaiPlane_angle_unit_var; -#define SdaiPlane_angle_unit__set SCLP23(DAObject__set) -#define SdaiPlane_angle_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_plane_angle_unit; - -class SdaiMeasure_with_unit; -typedef SdaiMeasure_with_unit * SdaiMeasure_with_unitH; -typedef SdaiMeasure_with_unit * SdaiMeasure_with_unit_ptr; -typedef SdaiMeasure_with_unit_ptr SdaiMeasure_with_unit_var; -#define SdaiMeasure_with_unit__set SCLP23(DAObject__set) -#define SdaiMeasure_with_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_measure_with_unit; - -class SdaiArea_measure_with_unit; -typedef SdaiArea_measure_with_unit * SdaiArea_measure_with_unitH; -typedef SdaiArea_measure_with_unit * SdaiArea_measure_with_unit_ptr; -typedef SdaiArea_measure_with_unit_ptr SdaiArea_measure_with_unit_var; -#define SdaiArea_measure_with_unit__set SCLP23(DAObject__set) -#define SdaiArea_measure_with_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_area_measure_with_unit; - -class SdaiEffectivity; -typedef SdaiEffectivity * SdaiEffectivityH; -typedef SdaiEffectivity * SdaiEffectivity_ptr; -typedef SdaiEffectivity_ptr SdaiEffectivity_var; -#define SdaiEffectivity__set SCLP23(DAObject__set) -#define SdaiEffectivity__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_effectivity; - -class SdaiSerial_numbered_effectivity; -typedef SdaiSerial_numbered_effectivity * SdaiSerial_numbered_effectivityH; -typedef SdaiSerial_numbered_effectivity * SdaiSerial_numbered_effectivity_ptr; -typedef SdaiSerial_numbered_effectivity_ptr SdaiSerial_numbered_effectivity_var; -#define SdaiSerial_numbered_effectivity__set SCLP23(DAObject__set) -#define SdaiSerial_numbered_effectivity__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_serial_numbered_effectivity; - -class SdaiSurface; -typedef SdaiSurface * SdaiSurfaceH; -typedef SdaiSurface * SdaiSurface_ptr; -typedef SdaiSurface_ptr SdaiSurface_var; -#define SdaiSurface__set SCLP23(DAObject__set) -#define SdaiSurface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_surface; - -class SdaiOffset_surface; -typedef SdaiOffset_surface * SdaiOffset_surfaceH; -typedef SdaiOffset_surface * SdaiOffset_surface_ptr; -typedef SdaiOffset_surface_ptr SdaiOffset_surface_var; -#define SdaiOffset_surface__set SCLP23(DAObject__set) -#define SdaiOffset_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_offset_surface; - -class SdaiPlacement; -typedef SdaiPlacement * SdaiPlacementH; -typedef SdaiPlacement * SdaiPlacement_ptr; -typedef SdaiPlacement_ptr SdaiPlacement_var; -#define SdaiPlacement__set SCLP23(DAObject__set) -#define SdaiPlacement__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_placement; - -class SdaiAxis2_placement_2d; -typedef SdaiAxis2_placement_2d * SdaiAxis2_placement_2dH; -typedef SdaiAxis2_placement_2d * SdaiAxis2_placement_2d_ptr; -typedef SdaiAxis2_placement_2d_ptr SdaiAxis2_placement_2d_var; -#define SdaiAxis2_placement_2d__set SCLP23(DAObject__set) -#define SdaiAxis2_placement_2d__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_axis2_placement_2d; - -class SdaiProduct_category; -typedef SdaiProduct_category * SdaiProduct_categoryH; -typedef SdaiProduct_category * SdaiProduct_category_ptr; -typedef SdaiProduct_category_ptr SdaiProduct_category_var; -#define SdaiProduct_category__set SCLP23(DAObject__set) -#define SdaiProduct_category__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_category; - -class SdaiProduct_related_product_category; -typedef SdaiProduct_related_product_category * SdaiProduct_related_product_categoryH; -typedef SdaiProduct_related_product_category * SdaiProduct_related_product_category_ptr; -typedef SdaiProduct_related_product_category_ptr SdaiProduct_related_product_category_var; -#define SdaiProduct_related_product_category__set SCLP23(DAObject__set) -#define SdaiProduct_related_product_category__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_related_product_category; - -class SdaiCurve; -typedef SdaiCurve * SdaiCurveH; -typedef SdaiCurve * SdaiCurve_ptr; -typedef SdaiCurve_ptr SdaiCurve_var; -#define SdaiCurve__set SCLP23(DAObject__set) -#define SdaiCurve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_curve; - -class SdaiConic; -typedef SdaiConic * SdaiConicH; -typedef SdaiConic * SdaiConic_ptr; -typedef SdaiConic_ptr SdaiConic_var; -#define SdaiConic__set SCLP23(DAObject__set) -#define SdaiConic__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_conic; - -class SdaiHyperbola; -typedef SdaiHyperbola * SdaiHyperbolaH; -typedef SdaiHyperbola * SdaiHyperbola_ptr; -typedef SdaiHyperbola_ptr SdaiHyperbola_var; -#define SdaiHyperbola__set SCLP23(DAObject__set) -#define SdaiHyperbola__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_hyperbola; - -class SdaiAddress; -typedef SdaiAddress * SdaiAddressH; -typedef SdaiAddress * SdaiAddress_ptr; -typedef SdaiAddress_ptr SdaiAddress_var; -#define SdaiAddress__set SCLP23(DAObject__set) -#define SdaiAddress__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_address; - -class SdaiOrganizational_address; -typedef SdaiOrganizational_address * SdaiOrganizational_addressH; -typedef SdaiOrganizational_address * SdaiOrganizational_address_ptr; -typedef SdaiOrganizational_address_ptr SdaiOrganizational_address_var; -#define SdaiOrganizational_address__set SCLP23(DAObject__set) -#define SdaiOrganizational_address__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_organizational_address; - -class SdaiBounded_surface; -typedef SdaiBounded_surface * SdaiBounded_surfaceH; -typedef SdaiBounded_surface * SdaiBounded_surface_ptr; -typedef SdaiBounded_surface_ptr SdaiBounded_surface_var; -#define SdaiBounded_surface__set SCLP23(DAObject__set) -#define SdaiBounded_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_bounded_surface; - -class SdaiB_spline_surface; -typedef SdaiB_spline_surface * SdaiB_spline_surfaceH; -typedef SdaiB_spline_surface * SdaiB_spline_surface_ptr; -typedef SdaiB_spline_surface_ptr SdaiB_spline_surface_var; -#define SdaiB_spline_surface__set SCLP23(DAObject__set) -#define SdaiB_spline_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_b_spline_surface; - -class SdaiUniform_surface; -typedef SdaiUniform_surface * SdaiUniform_surfaceH; -typedef SdaiUniform_surface * SdaiUniform_surface_ptr; -typedef SdaiUniform_surface_ptr SdaiUniform_surface_var; -#define SdaiUniform_surface__set SCLP23(DAObject__set) -#define SdaiUniform_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_uniform_surface; - -class SdaiGeometrically_bounded_surface_shape_representation; -typedef SdaiGeometrically_bounded_surface_shape_representation * SdaiGeometrically_bounded_surface_shape_representationH; -typedef SdaiGeometrically_bounded_surface_shape_representation * SdaiGeometrically_bounded_surface_shape_representation_ptr; -typedef SdaiGeometrically_bounded_surface_shape_representation_ptr SdaiGeometrically_bounded_surface_shape_representation_var; -#define SdaiGeometrically_bounded_surface_shape_representation__set SCLP23(DAObject__set) -#define SdaiGeometrically_bounded_surface_shape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_geometrically_bounded_surface_shape_representation; - -class SdaiAxis1_placement; -typedef SdaiAxis1_placement * SdaiAxis1_placementH; -typedef SdaiAxis1_placement * SdaiAxis1_placement_ptr; -typedef SdaiAxis1_placement_ptr SdaiAxis1_placement_var; -#define SdaiAxis1_placement__set SCLP23(DAObject__set) -#define SdaiAxis1_placement__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_axis1_placement; - -class SdaiBounded_curve; -typedef SdaiBounded_curve * SdaiBounded_curveH; -typedef SdaiBounded_curve * SdaiBounded_curve_ptr; -typedef SdaiBounded_curve_ptr SdaiBounded_curve_var; -#define SdaiBounded_curve__set SCLP23(DAObject__set) -#define SdaiBounded_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_bounded_curve; - -class SdaiB_spline_curve; -typedef SdaiB_spline_curve * SdaiB_spline_curveH; -typedef SdaiB_spline_curve * SdaiB_spline_curve_ptr; -typedef SdaiB_spline_curve_ptr SdaiB_spline_curve_var; -#define SdaiB_spline_curve__set SCLP23(DAObject__set) -#define SdaiB_spline_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_b_spline_curve; - -class SdaiRational_b_spline_curve; -typedef SdaiRational_b_spline_curve * SdaiRational_b_spline_curveH; -typedef SdaiRational_b_spline_curve * SdaiRational_b_spline_curve_ptr; -typedef SdaiRational_b_spline_curve_ptr SdaiRational_b_spline_curve_var; -#define SdaiRational_b_spline_curve__set SCLP23(DAObject__set) -#define SdaiRational_b_spline_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_rational_b_spline_curve; - -class SdaiAction_request_assignment; -typedef SdaiAction_request_assignment * SdaiAction_request_assignmentH; -typedef SdaiAction_request_assignment * SdaiAction_request_assignment_ptr; -typedef SdaiAction_request_assignment_ptr SdaiAction_request_assignment_var; -#define SdaiAction_request_assignment__set SCLP23(DAObject__set) -#define SdaiAction_request_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_action_request_assignment; - -class SdaiTopological_representation_item; -typedef SdaiTopological_representation_item * SdaiTopological_representation_itemH; -typedef SdaiTopological_representation_item * SdaiTopological_representation_item_ptr; -typedef SdaiTopological_representation_item_ptr SdaiTopological_representation_item_var; -#define SdaiTopological_representation_item__set SCLP23(DAObject__set) -#define SdaiTopological_representation_item__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_topological_representation_item; - -class SdaiFace_bound; -typedef SdaiFace_bound * SdaiFace_boundH; -typedef SdaiFace_bound * SdaiFace_bound_ptr; -typedef SdaiFace_bound_ptr SdaiFace_bound_var; -#define SdaiFace_bound__set SCLP23(DAObject__set) -#define SdaiFace_bound__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_face_bound; - -class SdaiLength_measure_with_unit; -typedef SdaiLength_measure_with_unit * SdaiLength_measure_with_unitH; -typedef SdaiLength_measure_with_unit * SdaiLength_measure_with_unit_ptr; -typedef SdaiLength_measure_with_unit_ptr SdaiLength_measure_with_unit_var; -#define SdaiLength_measure_with_unit__set SCLP23(DAObject__set) -#define SdaiLength_measure_with_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_length_measure_with_unit; - -class SdaiDated_effectivity; -typedef SdaiDated_effectivity * SdaiDated_effectivityH; -typedef SdaiDated_effectivity * SdaiDated_effectivity_ptr; -typedef SdaiDated_effectivity_ptr SdaiDated_effectivity_var; -#define SdaiDated_effectivity__set SCLP23(DAObject__set) -#define SdaiDated_effectivity__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_dated_effectivity; - -class SdaiDirection; -typedef SdaiDirection * SdaiDirectionH; -typedef SdaiDirection * SdaiDirection_ptr; -typedef SdaiDirection_ptr SdaiDirection_var; -#define SdaiDirection__set SCLP23(DAObject__set) -#define SdaiDirection__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_direction; - -class SdaiNext_assembly_usage_occurrence; -typedef SdaiNext_assembly_usage_occurrence * SdaiNext_assembly_usage_occurrenceH; -typedef SdaiNext_assembly_usage_occurrence * SdaiNext_assembly_usage_occurrence_ptr; -typedef SdaiNext_assembly_usage_occurrence_ptr SdaiNext_assembly_usage_occurrence_var; -#define SdaiNext_assembly_usage_occurrence__set SCLP23(DAObject__set) -#define SdaiNext_assembly_usage_occurrence__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_next_assembly_usage_occurrence; - -class SdaiEdge; -typedef SdaiEdge * SdaiEdgeH; -typedef SdaiEdge * SdaiEdge_ptr; -typedef SdaiEdge_ptr SdaiEdge_var; -#define SdaiEdge__set SCLP23(DAObject__set) -#define SdaiEdge__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_edge; - -class SdaiOriented_edge; -typedef SdaiOriented_edge * SdaiOriented_edgeH; -typedef SdaiOriented_edge * SdaiOriented_edge_ptr; -typedef SdaiOriented_edge_ptr SdaiOriented_edge_var; -#define SdaiOriented_edge__set SCLP23(DAObject__set) -#define SdaiOriented_edge__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_oriented_edge; - -class SdaiPerson; -typedef SdaiPerson * SdaiPersonH; -typedef SdaiPerson * SdaiPerson_ptr; -typedef SdaiPerson_ptr SdaiPerson_var; -#define SdaiPerson__set SCLP23(DAObject__set) -#define SdaiPerson__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_person; - -class SdaiDocument; -typedef SdaiDocument * SdaiDocumentH; -typedef SdaiDocument * SdaiDocument_ptr; -typedef SdaiDocument_ptr SdaiDocument_var; -#define SdaiDocument__set SCLP23(DAObject__set) -#define SdaiDocument__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_document; - -class SdaiDocument_with_class; -typedef SdaiDocument_with_class * SdaiDocument_with_classH; -typedef SdaiDocument_with_class * SdaiDocument_with_class_ptr; -typedef SdaiDocument_with_class_ptr SdaiDocument_with_class_var; -#define SdaiDocument_with_class__set SCLP23(DAObject__set) -#define SdaiDocument_with_class__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_document_with_class; - -class SdaiConversion_based_unit; -typedef SdaiConversion_based_unit * SdaiConversion_based_unitH; -typedef SdaiConversion_based_unit * SdaiConversion_based_unit_ptr; -typedef SdaiConversion_based_unit_ptr SdaiConversion_based_unit_var; -#define SdaiConversion_based_unit__set SCLP23(DAObject__set) -#define SdaiConversion_based_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_conversion_based_unit; - -class SdaiPoint; -typedef SdaiPoint * SdaiPointH; -typedef SdaiPoint * SdaiPoint_ptr; -typedef SdaiPoint_ptr SdaiPoint_var; -#define SdaiPoint__set SCLP23(DAObject__set) -#define SdaiPoint__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_point; - -class SdaiPoint_on_surface; -typedef SdaiPoint_on_surface * SdaiPoint_on_surfaceH; -typedef SdaiPoint_on_surface * SdaiPoint_on_surface_ptr; -typedef SdaiPoint_on_surface_ptr SdaiPoint_on_surface_var; -#define SdaiPoint_on_surface__set SCLP23(DAObject__set) -#define SdaiPoint_on_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_point_on_surface; - -class SdaiProduct_definition_formation; -typedef SdaiProduct_definition_formation * SdaiProduct_definition_formationH; -typedef SdaiProduct_definition_formation * SdaiProduct_definition_formation_ptr; -typedef SdaiProduct_definition_formation_ptr SdaiProduct_definition_formation_var; -#define SdaiProduct_definition_formation__set SCLP23(DAObject__set) -#define SdaiProduct_definition_formation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition_formation; - -class SdaiPerson_and_organization_assignment; -typedef SdaiPerson_and_organization_assignment * SdaiPerson_and_organization_assignmentH; -typedef SdaiPerson_and_organization_assignment * SdaiPerson_and_organization_assignment_ptr; -typedef SdaiPerson_and_organization_assignment_ptr SdaiPerson_and_organization_assignment_var; -#define SdaiPerson_and_organization_assignment__set SCLP23(DAObject__set) -#define SdaiPerson_and_organization_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_person_and_organization_assignment; - -class SdaiCc_design_person_and_organization_assignment; -typedef SdaiCc_design_person_and_organization_assignment * SdaiCc_design_person_and_organization_assignmentH; -typedef SdaiCc_design_person_and_organization_assignment * SdaiCc_design_person_and_organization_assignment_ptr; -typedef SdaiCc_design_person_and_organization_assignment_ptr SdaiCc_design_person_and_organization_assignment_var; -#define SdaiCc_design_person_and_organization_assignment__set SCLP23(DAObject__set) -#define SdaiCc_design_person_and_organization_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cc_design_person_and_organization_assignment; - -class SdaiOffset_curve_3d; -typedef SdaiOffset_curve_3d * SdaiOffset_curve_3dH; -typedef SdaiOffset_curve_3d * SdaiOffset_curve_3d_ptr; -typedef SdaiOffset_curve_3d_ptr SdaiOffset_curve_3d_var; -#define SdaiOffset_curve_3d__set SCLP23(DAObject__set) -#define SdaiOffset_curve_3d__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_offset_curve_3d; - -class SdaiApproval; -typedef SdaiApproval * SdaiApprovalH; -typedef SdaiApproval * SdaiApproval_ptr; -typedef SdaiApproval_ptr SdaiApproval_var; -#define SdaiApproval__set SCLP23(DAObject__set) -#define SdaiApproval__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_approval; - -class SdaiComposite_curve; -typedef SdaiComposite_curve * SdaiComposite_curveH; -typedef SdaiComposite_curve * SdaiComposite_curve_ptr; -typedef SdaiComposite_curve_ptr SdaiComposite_curve_var; -#define SdaiComposite_curve__set SCLP23(DAObject__set) -#define SdaiComposite_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_composite_curve; - -class SdaiComposite_curve_on_surface; -typedef SdaiComposite_curve_on_surface * SdaiComposite_curve_on_surfaceH; -typedef SdaiComposite_curve_on_surface * SdaiComposite_curve_on_surface_ptr; -typedef SdaiComposite_curve_on_surface_ptr SdaiComposite_curve_on_surface_var; -#define SdaiComposite_curve_on_surface__set SCLP23(DAObject__set) -#define SdaiComposite_curve_on_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_composite_curve_on_surface; - -class SdaiBoundary_curve; -typedef SdaiBoundary_curve * SdaiBoundary_curveH; -typedef SdaiBoundary_curve * SdaiBoundary_curve_ptr; -typedef SdaiBoundary_curve_ptr SdaiBoundary_curve_var; -#define SdaiBoundary_curve__set SCLP23(DAObject__set) -#define SdaiBoundary_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_boundary_curve; - -class SdaiRepresentation_context; -typedef SdaiRepresentation_context * SdaiRepresentation_contextH; -typedef SdaiRepresentation_context * SdaiRepresentation_context_ptr; -typedef SdaiRepresentation_context_ptr SdaiRepresentation_context_var; -#define SdaiRepresentation_context__set SCLP23(DAObject__set) -#define SdaiRepresentation_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_representation_context; - -class SdaiGeometric_representation_context; -typedef SdaiGeometric_representation_context * SdaiGeometric_representation_contextH; -typedef SdaiGeometric_representation_context * SdaiGeometric_representation_context_ptr; -typedef SdaiGeometric_representation_context_ptr SdaiGeometric_representation_context_var; -#define SdaiGeometric_representation_context__set SCLP23(DAObject__set) -#define SdaiGeometric_representation_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_geometric_representation_context; - -class SdaiAction_status; -typedef SdaiAction_status * SdaiAction_statusH; -typedef SdaiAction_status * SdaiAction_status_ptr; -typedef SdaiAction_status_ptr SdaiAction_status_var; -#define SdaiAction_status__set SCLP23(DAObject__set) -#define SdaiAction_status__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_action_status; - -class SdaiApplication_context; -typedef SdaiApplication_context * SdaiApplication_contextH; -typedef SdaiApplication_context * SdaiApplication_context_ptr; -typedef SdaiApplication_context_ptr SdaiApplication_context_var; -#define SdaiApplication_context__set SCLP23(DAObject__set) -#define SdaiApplication_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_application_context; - -class SdaiChange_request; -typedef SdaiChange_request * SdaiChange_requestH; -typedef SdaiChange_request * SdaiChange_request_ptr; -typedef SdaiChange_request_ptr SdaiChange_request_var; -#define SdaiChange_request__set SCLP23(DAObject__set) -#define SdaiChange_request__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_change_request; - -class SdaiDate_and_time; -typedef SdaiDate_and_time * SdaiDate_and_timeH; -typedef SdaiDate_and_time * SdaiDate_and_time_ptr; -typedef SdaiDate_and_time_ptr SdaiDate_and_time_var; -#define SdaiDate_and_time__set SCLP23(DAObject__set) -#define SdaiDate_and_time__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_date_and_time; - -class SdaiApproval_date_time; -typedef SdaiApproval_date_time * SdaiApproval_date_timeH; -typedef SdaiApproval_date_time * SdaiApproval_date_time_ptr; -typedef SdaiApproval_date_time_ptr SdaiApproval_date_time_var; -#define SdaiApproval_date_time__set SCLP23(DAObject__set) -#define SdaiApproval_date_time__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_approval_date_time; - -class SdaiApproval_role; -typedef SdaiApproval_role * SdaiApproval_roleH; -typedef SdaiApproval_role * SdaiApproval_role_ptr; -typedef SdaiApproval_role_ptr SdaiApproval_role_var; -#define SdaiApproval_role__set SCLP23(DAObject__set) -#define SdaiApproval_role__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_approval_role; - -class SdaiApplication_context_element; -typedef SdaiApplication_context_element * SdaiApplication_context_elementH; -typedef SdaiApplication_context_element * SdaiApplication_context_element_ptr; -typedef SdaiApplication_context_element_ptr SdaiApplication_context_element_var; -#define SdaiApplication_context_element__set SCLP23(DAObject__set) -#define SdaiApplication_context_element__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_application_context_element; - -class SdaiProduct_context; -typedef SdaiProduct_context * SdaiProduct_contextH; -typedef SdaiProduct_context * SdaiProduct_context_ptr; -typedef SdaiProduct_context_ptr SdaiProduct_context_var; -#define SdaiProduct_context__set SCLP23(DAObject__set) -#define SdaiProduct_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_context; - -class SdaiElementary_surface; -typedef SdaiElementary_surface * SdaiElementary_surfaceH; -typedef SdaiElementary_surface * SdaiElementary_surface_ptr; -typedef SdaiElementary_surface_ptr SdaiElementary_surface_var; -#define SdaiElementary_surface__set SCLP23(DAObject__set) -#define SdaiElementary_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_elementary_surface; - -class SdaiSpherical_surface; -typedef SdaiSpherical_surface * SdaiSpherical_surfaceH; -typedef SdaiSpherical_surface * SdaiSpherical_surface_ptr; -typedef SdaiSpherical_surface_ptr SdaiSpherical_surface_var; -#define SdaiSpherical_surface__set SCLP23(DAObject__set) -#define SdaiSpherical_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_spherical_surface; - -class SdaiApplication_protocol_definition; -typedef SdaiApplication_protocol_definition * SdaiApplication_protocol_definitionH; -typedef SdaiApplication_protocol_definition * SdaiApplication_protocol_definition_ptr; -typedef SdaiApplication_protocol_definition_ptr SdaiApplication_protocol_definition_var; -#define SdaiApplication_protocol_definition__set SCLP23(DAObject__set) -#define SdaiApplication_protocol_definition__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_application_protocol_definition; - -class SdaiSpecified_higher_usage_occurrence; -typedef SdaiSpecified_higher_usage_occurrence * SdaiSpecified_higher_usage_occurrenceH; -typedef SdaiSpecified_higher_usage_occurrence * SdaiSpecified_higher_usage_occurrence_ptr; -typedef SdaiSpecified_higher_usage_occurrence_ptr SdaiSpecified_higher_usage_occurrence_var; -#define SdaiSpecified_higher_usage_occurrence__set SCLP23(DAObject__set) -#define SdaiSpecified_higher_usage_occurrence__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_specified_higher_usage_occurrence; - -class SdaiProduct_definition_formation_with_specified_source; -typedef SdaiProduct_definition_formation_with_specified_source * SdaiProduct_definition_formation_with_specified_sourceH; -typedef SdaiProduct_definition_formation_with_specified_source * SdaiProduct_definition_formation_with_specified_source_ptr; -typedef SdaiProduct_definition_formation_with_specified_source_ptr SdaiProduct_definition_formation_with_specified_source_var; -#define SdaiProduct_definition_formation_with_specified_source__set SCLP23(DAObject__set) -#define SdaiProduct_definition_formation_with_specified_source__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition_formation_with_specified_source; - -class SdaiAction_request_solution; -typedef SdaiAction_request_solution * SdaiAction_request_solutionH; -typedef SdaiAction_request_solution * SdaiAction_request_solution_ptr; -typedef SdaiAction_request_solution_ptr SdaiAction_request_solution_var; -#define SdaiAction_request_solution__set SCLP23(DAObject__set) -#define SdaiAction_request_solution__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_action_request_solution; - -class SdaiUncertainty_measure_with_unit; -typedef SdaiUncertainty_measure_with_unit * SdaiUncertainty_measure_with_unitH; -typedef SdaiUncertainty_measure_with_unit * SdaiUncertainty_measure_with_unit_ptr; -typedef SdaiUncertainty_measure_with_unit_ptr SdaiUncertainty_measure_with_unit_var; -#define SdaiUncertainty_measure_with_unit__set SCLP23(DAObject__set) -#define SdaiUncertainty_measure_with_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_uncertainty_measure_with_unit; - -class SdaiEdge_based_wireframe_model; -typedef SdaiEdge_based_wireframe_model * SdaiEdge_based_wireframe_modelH; -typedef SdaiEdge_based_wireframe_model * SdaiEdge_based_wireframe_model_ptr; -typedef SdaiEdge_based_wireframe_model_ptr SdaiEdge_based_wireframe_model_var; -#define SdaiEdge_based_wireframe_model__set SCLP23(DAObject__set) -#define SdaiEdge_based_wireframe_model__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_edge_based_wireframe_model; - -class SdaiPath; -typedef SdaiPath * SdaiPathH; -typedef SdaiPath * SdaiPath_ptr; -typedef SdaiPath_ptr SdaiPath_var; -#define SdaiPath__set SCLP23(DAObject__set) -#define SdaiPath__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_path; - -class SdaiConnected_face_set; -typedef SdaiConnected_face_set * SdaiConnected_face_setH; -typedef SdaiConnected_face_set * SdaiConnected_face_set_ptr; -typedef SdaiConnected_face_set_ptr SdaiConnected_face_set_var; -#define SdaiConnected_face_set__set SCLP23(DAObject__set) -#define SdaiConnected_face_set__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_connected_face_set; - -class SdaiOpen_shell; -typedef SdaiOpen_shell * SdaiOpen_shellH; -typedef SdaiOpen_shell * SdaiOpen_shell_ptr; -typedef SdaiOpen_shell_ptr SdaiOpen_shell_var; -#define SdaiOpen_shell__set SCLP23(DAObject__set) -#define SdaiOpen_shell__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_open_shell; - -class SdaiOriented_open_shell; -typedef SdaiOriented_open_shell * SdaiOriented_open_shellH; -typedef SdaiOriented_open_shell * SdaiOriented_open_shell_ptr; -typedef SdaiOriented_open_shell_ptr SdaiOriented_open_shell_var; -#define SdaiOriented_open_shell__set SCLP23(DAObject__set) -#define SdaiOriented_open_shell__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_oriented_open_shell; - -class SdaiSolid_angle_unit; -typedef SdaiSolid_angle_unit * SdaiSolid_angle_unitH; -typedef SdaiSolid_angle_unit * SdaiSolid_angle_unit_ptr; -typedef SdaiSolid_angle_unit_ptr SdaiSolid_angle_unit_var; -#define SdaiSolid_angle_unit__set SCLP23(DAObject__set) -#define SdaiSolid_angle_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_solid_angle_unit; - -class SdaiCoordinated_universal_time_offset; -typedef SdaiCoordinated_universal_time_offset * SdaiCoordinated_universal_time_offsetH; -typedef SdaiCoordinated_universal_time_offset * SdaiCoordinated_universal_time_offset_ptr; -typedef SdaiCoordinated_universal_time_offset_ptr SdaiCoordinated_universal_time_offset_var; -#define SdaiCoordinated_universal_time_offset__set SCLP23(DAObject__set) -#define SdaiCoordinated_universal_time_offset__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_coordinated_universal_time_offset; - -class SdaiCurve_replica; -typedef SdaiCurve_replica * SdaiCurve_replicaH; -typedef SdaiCurve_replica * SdaiCurve_replica_ptr; -typedef SdaiCurve_replica_ptr SdaiCurve_replica_var; -#define SdaiCurve_replica__set SCLP23(DAObject__set) -#define SdaiCurve_replica__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_curve_replica; - -class SdaiQuasi_uniform_surface; -typedef SdaiQuasi_uniform_surface * SdaiQuasi_uniform_surfaceH; -typedef SdaiQuasi_uniform_surface * SdaiQuasi_uniform_surface_ptr; -typedef SdaiQuasi_uniform_surface_ptr SdaiQuasi_uniform_surface_var; -#define SdaiQuasi_uniform_surface__set SCLP23(DAObject__set) -#define SdaiQuasi_uniform_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_quasi_uniform_surface; - -class SdaiSurface_curve; -typedef SdaiSurface_curve * SdaiSurface_curveH; -typedef SdaiSurface_curve * SdaiSurface_curve_ptr; -typedef SdaiSurface_curve_ptr SdaiSurface_curve_var; -#define SdaiSurface_curve__set SCLP23(DAObject__set) -#define SdaiSurface_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_surface_curve; - -class SdaiAction_request_status; -typedef SdaiAction_request_status * SdaiAction_request_statusH; -typedef SdaiAction_request_status * SdaiAction_request_status_ptr; -typedef SdaiAction_request_status_ptr SdaiAction_request_status_var; -#define SdaiAction_request_status__set SCLP23(DAObject__set) -#define SdaiAction_request_status__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_action_request_status; - -class SdaiComposite_curve_segment; -typedef SdaiComposite_curve_segment * SdaiComposite_curve_segmentH; -typedef SdaiComposite_curve_segment * SdaiComposite_curve_segment_ptr; -typedef SdaiComposite_curve_segment_ptr SdaiComposite_curve_segment_var; -#define SdaiComposite_curve_segment__set SCLP23(DAObject__set) -#define SdaiComposite_curve_segment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_composite_curve_segment; - -class SdaiReparametrised_composite_curve_segment; -typedef SdaiReparametrised_composite_curve_segment * SdaiReparametrised_composite_curve_segmentH; -typedef SdaiReparametrised_composite_curve_segment * SdaiReparametrised_composite_curve_segment_ptr; -typedef SdaiReparametrised_composite_curve_segment_ptr SdaiReparametrised_composite_curve_segment_var; -#define SdaiReparametrised_composite_curve_segment__set SCLP23(DAObject__set) -#define SdaiReparametrised_composite_curve_segment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_reparametrised_composite_curve_segment; - -class SdaiRepresentation_relationship; -typedef SdaiRepresentation_relationship * SdaiRepresentation_relationshipH; -typedef SdaiRepresentation_relationship * SdaiRepresentation_relationship_ptr; -typedef SdaiRepresentation_relationship_ptr SdaiRepresentation_relationship_var; -#define SdaiRepresentation_relationship__set SCLP23(DAObject__set) -#define SdaiRepresentation_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_representation_relationship; - -class SdaiRepresentation_relationship_with_transformation; -typedef SdaiRepresentation_relationship_with_transformation * SdaiRepresentation_relationship_with_transformationH; -typedef SdaiRepresentation_relationship_with_transformation * SdaiRepresentation_relationship_with_transformation_ptr; -typedef SdaiRepresentation_relationship_with_transformation_ptr SdaiRepresentation_relationship_with_transformation_var; -#define SdaiRepresentation_relationship_with_transformation__set SCLP23(DAObject__set) -#define SdaiRepresentation_relationship_with_transformation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_representation_relationship_with_transformation; - -class SdaiPerson_and_organization_role; -typedef SdaiPerson_and_organization_role * SdaiPerson_and_organization_roleH; -typedef SdaiPerson_and_organization_role * SdaiPerson_and_organization_role_ptr; -typedef SdaiPerson_and_organization_role_ptr SdaiPerson_and_organization_role_var; -#define SdaiPerson_and_organization_role__set SCLP23(DAObject__set) -#define SdaiPerson_and_organization_role__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_person_and_organization_role; - -class SdaiQuasi_uniform_curve; -typedef SdaiQuasi_uniform_curve * SdaiQuasi_uniform_curveH; -typedef SdaiQuasi_uniform_curve * SdaiQuasi_uniform_curve_ptr; -typedef SdaiQuasi_uniform_curve_ptr SdaiQuasi_uniform_curve_var; -#define SdaiQuasi_uniform_curve__set SCLP23(DAObject__set) -#define SdaiQuasi_uniform_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_quasi_uniform_curve; - -class SdaiSwept_surface; -typedef SdaiSwept_surface * SdaiSwept_surfaceH; -typedef SdaiSwept_surface * SdaiSwept_surface_ptr; -typedef SdaiSwept_surface_ptr SdaiSwept_surface_var; -#define SdaiSwept_surface__set SCLP23(DAObject__set) -#define SdaiSwept_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_swept_surface; - -class SdaiProperty_definition; -typedef SdaiProperty_definition * SdaiProperty_definitionH; -typedef SdaiProperty_definition * SdaiProperty_definition_ptr; -typedef SdaiProperty_definition_ptr SdaiProperty_definition_var; -#define SdaiProperty_definition__set SCLP23(DAObject__set) -#define SdaiProperty_definition__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_property_definition; - -class SdaiGlobal_uncertainty_assigned_context; -typedef SdaiGlobal_uncertainty_assigned_context * SdaiGlobal_uncertainty_assigned_contextH; -typedef SdaiGlobal_uncertainty_assigned_context * SdaiGlobal_uncertainty_assigned_context_ptr; -typedef SdaiGlobal_uncertainty_assigned_context_ptr SdaiGlobal_uncertainty_assigned_context_var; -#define SdaiGlobal_uncertainty_assigned_context__set SCLP23(DAObject__set) -#define SdaiGlobal_uncertainty_assigned_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_global_uncertainty_assigned_context; - -class SdaiOrganization_relationship; -typedef SdaiOrganization_relationship * SdaiOrganization_relationshipH; -typedef SdaiOrganization_relationship * SdaiOrganization_relationship_ptr; -typedef SdaiOrganization_relationship_ptr SdaiOrganization_relationship_var; -#define SdaiOrganization_relationship__set SCLP23(DAObject__set) -#define SdaiOrganization_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_organization_relationship; - -class SdaiParabola; -typedef SdaiParabola * SdaiParabolaH; -typedef SdaiParabola * SdaiParabola_ptr; -typedef SdaiParabola_ptr SdaiParabola_var; -#define SdaiParabola__set SCLP23(DAObject__set) -#define SdaiParabola__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_parabola; - -class SdaiRectangular_composite_surface; -typedef SdaiRectangular_composite_surface * SdaiRectangular_composite_surfaceH; -typedef SdaiRectangular_composite_surface * SdaiRectangular_composite_surface_ptr; -typedef SdaiRectangular_composite_surface_ptr SdaiRectangular_composite_surface_var; -#define SdaiRectangular_composite_surface__set SCLP23(DAObject__set) -#define SdaiRectangular_composite_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_rectangular_composite_surface; - -class SdaiLot_effectivity; -typedef SdaiLot_effectivity * SdaiLot_effectivityH; -typedef SdaiLot_effectivity * SdaiLot_effectivity_ptr; -typedef SdaiLot_effectivity_ptr SdaiLot_effectivity_var; -#define SdaiLot_effectivity__set SCLP23(DAObject__set) -#define SdaiLot_effectivity__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_lot_effectivity; - -class SdaiSurface_of_linear_extrusion; -typedef SdaiSurface_of_linear_extrusion * SdaiSurface_of_linear_extrusionH; -typedef SdaiSurface_of_linear_extrusion * SdaiSurface_of_linear_extrusion_ptr; -typedef SdaiSurface_of_linear_extrusion_ptr SdaiSurface_of_linear_extrusion_var; -#define SdaiSurface_of_linear_extrusion__set SCLP23(DAObject__set) -#define SdaiSurface_of_linear_extrusion__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_surface_of_linear_extrusion; - -class SdaiShell_based_surface_model; -typedef SdaiShell_based_surface_model * SdaiShell_based_surface_modelH; -typedef SdaiShell_based_surface_model * SdaiShell_based_surface_model_ptr; -typedef SdaiShell_based_surface_model_ptr SdaiShell_based_surface_model_var; -#define SdaiShell_based_surface_model__set SCLP23(DAObject__set) -#define SdaiShell_based_surface_model__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_shell_based_surface_model; - -class SdaiUniform_curve; -typedef SdaiUniform_curve * SdaiUniform_curveH; -typedef SdaiUniform_curve * SdaiUniform_curve_ptr; -typedef SdaiUniform_curve_ptr SdaiUniform_curve_var; -#define SdaiUniform_curve__set SCLP23(DAObject__set) -#define SdaiUniform_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_uniform_curve; - -class SdaiBezier_curve; -typedef SdaiBezier_curve * SdaiBezier_curveH; -typedef SdaiBezier_curve * SdaiBezier_curve_ptr; -typedef SdaiBezier_curve_ptr SdaiBezier_curve_var; -#define SdaiBezier_curve__set SCLP23(DAObject__set) -#define SdaiBezier_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_bezier_curve; - -class SdaiLoop; -typedef SdaiLoop * SdaiLoopH; -typedef SdaiLoop * SdaiLoop_ptr; -typedef SdaiLoop_ptr SdaiLoop_var; -#define SdaiLoop__set SCLP23(DAObject__set) -#define SdaiLoop__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_loop; - -class SdaiEdge_loop; -typedef SdaiEdge_loop * SdaiEdge_loopH; -typedef SdaiEdge_loop * SdaiEdge_loop_ptr; -typedef SdaiEdge_loop_ptr SdaiEdge_loop_var; -#define SdaiEdge_loop__set SCLP23(DAObject__set) -#define SdaiEdge_loop__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_edge_loop; - -class SdaiDate; -typedef SdaiDate * SdaiDateH; -typedef SdaiDate * SdaiDate_ptr; -typedef SdaiDate_ptr SdaiDate_var; -#define SdaiDate__set SCLP23(DAObject__set) -#define SdaiDate__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_date; - -class SdaiCalendar_date; -typedef SdaiCalendar_date * SdaiCalendar_dateH; -typedef SdaiCalendar_date * SdaiCalendar_date_ptr; -typedef SdaiCalendar_date_ptr SdaiCalendar_date_var; -#define SdaiCalendar_date__set SCLP23(DAObject__set) -#define SdaiCalendar_date__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_calendar_date; - -class SdaiToroidal_surface; -typedef SdaiToroidal_surface * SdaiToroidal_surfaceH; -typedef SdaiToroidal_surface * SdaiToroidal_surface_ptr; -typedef SdaiToroidal_surface_ptr SdaiToroidal_surface_var; -#define SdaiToroidal_surface__set SCLP23(DAObject__set) -#define SdaiToroidal_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_toroidal_surface; - -class SdaiPromissory_usage_occurrence; -typedef SdaiPromissory_usage_occurrence * SdaiPromissory_usage_occurrenceH; -typedef SdaiPromissory_usage_occurrence * SdaiPromissory_usage_occurrence_ptr; -typedef SdaiPromissory_usage_occurrence_ptr SdaiPromissory_usage_occurrence_var; -#define SdaiPromissory_usage_occurrence__set SCLP23(DAObject__set) -#define SdaiPromissory_usage_occurrence__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_promissory_usage_occurrence; - -class SdaiApproval_assignment; -typedef SdaiApproval_assignment * SdaiApproval_assignmentH; -typedef SdaiApproval_assignment * SdaiApproval_assignment_ptr; -typedef SdaiApproval_assignment_ptr SdaiApproval_assignment_var; -#define SdaiApproval_assignment__set SCLP23(DAObject__set) -#define SdaiApproval_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_approval_assignment; - -class SdaiConfiguration_item; -typedef SdaiConfiguration_item * SdaiConfiguration_itemH; -typedef SdaiConfiguration_item * SdaiConfiguration_item_ptr; -typedef SdaiConfiguration_item_ptr SdaiConfiguration_item_var; -#define SdaiConfiguration_item__set SCLP23(DAObject__set) -#define SdaiConfiguration_item__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_configuration_item; - -class SdaiContract_assignment; -typedef SdaiContract_assignment * SdaiContract_assignmentH; -typedef SdaiContract_assignment * SdaiContract_assignment_ptr; -typedef SdaiContract_assignment_ptr SdaiContract_assignment_var; -#define SdaiContract_assignment__set SCLP23(DAObject__set) -#define SdaiContract_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_contract_assignment; - -class SdaiVector; -typedef SdaiVector * SdaiVectorH; -typedef SdaiVector * SdaiVector_ptr; -typedef SdaiVector_ptr SdaiVector_var; -#define SdaiVector__set SCLP23(DAObject__set) -#define SdaiVector__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_vector; - -class SdaiIntersection_curve; -typedef SdaiIntersection_curve * SdaiIntersection_curveH; -typedef SdaiIntersection_curve * SdaiIntersection_curve_ptr; -typedef SdaiIntersection_curve_ptr SdaiIntersection_curve_var; -#define SdaiIntersection_curve__set SCLP23(DAObject__set) -#define SdaiIntersection_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_intersection_curve; - -class SdaiTrimmed_curve; -typedef SdaiTrimmed_curve * SdaiTrimmed_curveH; -typedef SdaiTrimmed_curve * SdaiTrimmed_curve_ptr; -typedef SdaiTrimmed_curve_ptr SdaiTrimmed_curve_var; -#define SdaiTrimmed_curve__set SCLP23(DAObject__set) -#define SdaiTrimmed_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_trimmed_curve; - -class SdaiProduct_definition_context; -typedef SdaiProduct_definition_context * SdaiProduct_definition_contextH; -typedef SdaiProduct_definition_context * SdaiProduct_definition_context_ptr; -typedef SdaiProduct_definition_context_ptr SdaiProduct_definition_context_var; -#define SdaiProduct_definition_context__set SCLP23(DAObject__set) -#define SdaiProduct_definition_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition_context; - -class SdaiItem_defined_transformation; -typedef SdaiItem_defined_transformation * SdaiItem_defined_transformationH; -typedef SdaiItem_defined_transformation * SdaiItem_defined_transformation_ptr; -typedef SdaiItem_defined_transformation_ptr SdaiItem_defined_transformation_var; -#define SdaiItem_defined_transformation__set SCLP23(DAObject__set) -#define SdaiItem_defined_transformation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_item_defined_transformation; - -class SdaiAction_method; -typedef SdaiAction_method * SdaiAction_methodH; -typedef SdaiAction_method * SdaiAction_method_ptr; -typedef SdaiAction_method_ptr SdaiAction_method_var; -#define SdaiAction_method__set SCLP23(DAObject__set) -#define SdaiAction_method__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_action_method; - -class SdaiProduct_category_relationship; -typedef SdaiProduct_category_relationship * SdaiProduct_category_relationshipH; -typedef SdaiProduct_category_relationship * SdaiProduct_category_relationship_ptr; -typedef SdaiProduct_category_relationship_ptr SdaiProduct_category_relationship_var; -#define SdaiProduct_category_relationship__set SCLP23(DAObject__set) -#define SdaiProduct_category_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_category_relationship; - -class SdaiPlane_angle_measure_with_unit; -typedef SdaiPlane_angle_measure_with_unit * SdaiPlane_angle_measure_with_unitH; -typedef SdaiPlane_angle_measure_with_unit * SdaiPlane_angle_measure_with_unit_ptr; -typedef SdaiPlane_angle_measure_with_unit_ptr SdaiPlane_angle_measure_with_unit_var; -#define SdaiPlane_angle_measure_with_unit__set SCLP23(DAObject__set) -#define SdaiPlane_angle_measure_with_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_plane_angle_measure_with_unit; - -class SdaiVertex; -typedef SdaiVertex * SdaiVertexH; -typedef SdaiVertex * SdaiVertex_ptr; -typedef SdaiVertex_ptr SdaiVertex_var; -#define SdaiVertex__set SCLP23(DAObject__set) -#define SdaiVertex__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_vertex; - -class SdaiRepresentation_map; -typedef SdaiRepresentation_map * SdaiRepresentation_mapH; -typedef SdaiRepresentation_map * SdaiRepresentation_map_ptr; -typedef SdaiRepresentation_map_ptr SdaiRepresentation_map_var; -#define SdaiRepresentation_map__set SCLP23(DAObject__set) -#define SdaiRepresentation_map__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_representation_map; - -class SdaiProduct_definition_effectivity; -typedef SdaiProduct_definition_effectivity * SdaiProduct_definition_effectivityH; -typedef SdaiProduct_definition_effectivity * SdaiProduct_definition_effectivity_ptr; -typedef SdaiProduct_definition_effectivity_ptr SdaiProduct_definition_effectivity_var; -#define SdaiProduct_definition_effectivity__set SCLP23(DAObject__set) -#define SdaiProduct_definition_effectivity__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition_effectivity; - -class SdaiConfiguration_effectivity; -typedef SdaiConfiguration_effectivity * SdaiConfiguration_effectivityH; -typedef SdaiConfiguration_effectivity * SdaiConfiguration_effectivity_ptr; -typedef SdaiConfiguration_effectivity_ptr SdaiConfiguration_effectivity_var; -#define SdaiConfiguration_effectivity__set SCLP23(DAObject__set) -#define SdaiConfiguration_effectivity__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_configuration_effectivity; - -class SdaiEllipse; -typedef SdaiEllipse * SdaiEllipseH; -typedef SdaiEllipse * SdaiEllipse_ptr; -typedef SdaiEllipse_ptr SdaiEllipse_var; -#define SdaiEllipse__set SCLP23(DAObject__set) -#define SdaiEllipse__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_ellipse; - -class SdaiContext_dependent_unit; -typedef SdaiContext_dependent_unit * SdaiContext_dependent_unitH; -typedef SdaiContext_dependent_unit * SdaiContext_dependent_unit_ptr; -typedef SdaiContext_dependent_unit_ptr SdaiContext_dependent_unit_var; -#define SdaiContext_dependent_unit__set SCLP23(DAObject__set) -#define SdaiContext_dependent_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_context_dependent_unit; - -class SdaiAlternate_product_relationship; -typedef SdaiAlternate_product_relationship * SdaiAlternate_product_relationshipH; -typedef SdaiAlternate_product_relationship * SdaiAlternate_product_relationship_ptr; -typedef SdaiAlternate_product_relationship_ptr SdaiAlternate_product_relationship_var; -#define SdaiAlternate_product_relationship__set SCLP23(DAObject__set) -#define SdaiAlternate_product_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_alternate_product_relationship; - -class SdaiDocument_type; -typedef SdaiDocument_type * SdaiDocument_typeH; -typedef SdaiDocument_type * SdaiDocument_type_ptr; -typedef SdaiDocument_type_ptr SdaiDocument_type_var; -#define SdaiDocument_type__set SCLP23(DAObject__set) -#define SdaiDocument_type__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_document_type; - -class SdaiDocument_reference; -typedef SdaiDocument_reference * SdaiDocument_referenceH; -typedef SdaiDocument_reference * SdaiDocument_reference_ptr; -typedef SdaiDocument_reference_ptr SdaiDocument_reference_var; -#define SdaiDocument_reference__set SCLP23(DAObject__set) -#define SdaiDocument_reference__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_document_reference; - -class SdaiMechanical_context; -typedef SdaiMechanical_context * SdaiMechanical_contextH; -typedef SdaiMechanical_context * SdaiMechanical_context_ptr; -typedef SdaiMechanical_context_ptr SdaiMechanical_context_var; -#define SdaiMechanical_context__set SCLP23(DAObject__set) -#define SdaiMechanical_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_mechanical_context; - -class SdaiShell_based_wireframe_model; -typedef SdaiShell_based_wireframe_model * SdaiShell_based_wireframe_modelH; -typedef SdaiShell_based_wireframe_model * SdaiShell_based_wireframe_model_ptr; -typedef SdaiShell_based_wireframe_model_ptr SdaiShell_based_wireframe_model_var; -#define SdaiShell_based_wireframe_model__set SCLP23(DAObject__set) -#define SdaiShell_based_wireframe_model__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_shell_based_wireframe_model; - -class SdaiContract; -typedef SdaiContract * SdaiContractH; -typedef SdaiContract * SdaiContract_ptr; -typedef SdaiContract_ptr SdaiContract_var; -#define SdaiContract__set SCLP23(DAObject__set) -#define SdaiContract__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_contract; - -class SdaiDimensional_exponents; -typedef SdaiDimensional_exponents * SdaiDimensional_exponentsH; -typedef SdaiDimensional_exponents * SdaiDimensional_exponents_ptr; -typedef SdaiDimensional_exponents_ptr SdaiDimensional_exponents_var; -#define SdaiDimensional_exponents__set SCLP23(DAObject__set) -#define SdaiDimensional_exponents__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_dimensional_exponents; - -class SdaiStart_request; -typedef SdaiStart_request * SdaiStart_requestH; -typedef SdaiStart_request * SdaiStart_request_ptr; -typedef SdaiStart_request_ptr SdaiStart_request_var; -#define SdaiStart_request__set SCLP23(DAObject__set) -#define SdaiStart_request__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_start_request; - -class SdaiCc_design_specification_reference; -typedef SdaiCc_design_specification_reference * SdaiCc_design_specification_referenceH; -typedef SdaiCc_design_specification_reference * SdaiCc_design_specification_reference_ptr; -typedef SdaiCc_design_specification_reference_ptr SdaiCc_design_specification_reference_var; -#define SdaiCc_design_specification_reference__set SCLP23(DAObject__set) -#define SdaiCc_design_specification_reference__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cc_design_specification_reference; - -class SdaiSupplied_part_relationship; -typedef SdaiSupplied_part_relationship * SdaiSupplied_part_relationshipH; -typedef SdaiSupplied_part_relationship * SdaiSupplied_part_relationship_ptr; -typedef SdaiSupplied_part_relationship_ptr SdaiSupplied_part_relationship_var; -#define SdaiSupplied_part_relationship__set SCLP23(DAObject__set) -#define SdaiSupplied_part_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_supplied_part_relationship; - -class SdaiContext_dependent_shape_representation; -typedef SdaiContext_dependent_shape_representation * SdaiContext_dependent_shape_representationH; -typedef SdaiContext_dependent_shape_representation * SdaiContext_dependent_shape_representation_ptr; -typedef SdaiContext_dependent_shape_representation_ptr SdaiContext_dependent_shape_representation_var; -#define SdaiContext_dependent_shape_representation__set SCLP23(DAObject__set) -#define SdaiContext_dependent_shape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_context_dependent_shape_representation; - -class SdaiOrdinal_date; -typedef SdaiOrdinal_date * SdaiOrdinal_dateH; -typedef SdaiOrdinal_date * SdaiOrdinal_date_ptr; -typedef SdaiOrdinal_date_ptr SdaiOrdinal_date_var; -#define SdaiOrdinal_date__set SCLP23(DAObject__set) -#define SdaiOrdinal_date__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_ordinal_date; - -class SdaiFace_outer_bound; -typedef SdaiFace_outer_bound * SdaiFace_outer_boundH; -typedef SdaiFace_outer_bound * SdaiFace_outer_bound_ptr; -typedef SdaiFace_outer_bound_ptr SdaiFace_outer_bound_var; -#define SdaiFace_outer_bound__set SCLP23(DAObject__set) -#define SdaiFace_outer_bound__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_face_outer_bound; - -class SdaiMass_measure_with_unit; -typedef SdaiMass_measure_with_unit * SdaiMass_measure_with_unitH; -typedef SdaiMass_measure_with_unit * SdaiMass_measure_with_unit_ptr; -typedef SdaiMass_measure_with_unit_ptr SdaiMass_measure_with_unit_var; -#define SdaiMass_measure_with_unit__set SCLP23(DAObject__set) -#define SdaiMass_measure_with_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_mass_measure_with_unit; - -class SdaiBrep_with_voids; -typedef SdaiBrep_with_voids * SdaiBrep_with_voidsH; -typedef SdaiBrep_with_voids * SdaiBrep_with_voids_ptr; -typedef SdaiBrep_with_voids_ptr SdaiBrep_with_voids_var; -#define SdaiBrep_with_voids__set SCLP23(DAObject__set) -#define SdaiBrep_with_voids__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_brep_with_voids; - -class SdaiWeek_of_year_and_day_date; -typedef SdaiWeek_of_year_and_day_date * SdaiWeek_of_year_and_day_dateH; -typedef SdaiWeek_of_year_and_day_date * SdaiWeek_of_year_and_day_date_ptr; -typedef SdaiWeek_of_year_and_day_date_ptr SdaiWeek_of_year_and_day_date_var; -#define SdaiWeek_of_year_and_day_date__set SCLP23(DAObject__set) -#define SdaiWeek_of_year_and_day_date__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_week_of_year_and_day_date; - -class SdaiPoint_on_curve; -typedef SdaiPoint_on_curve * SdaiPoint_on_curveH; -typedef SdaiPoint_on_curve * SdaiPoint_on_curve_ptr; -typedef SdaiPoint_on_curve_ptr SdaiPoint_on_curve_var; -#define SdaiPoint_on_curve__set SCLP23(DAObject__set) -#define SdaiPoint_on_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_point_on_curve; - -class SdaiShell_based_wireframe_shape_representation; -typedef SdaiShell_based_wireframe_shape_representation * SdaiShell_based_wireframe_shape_representationH; -typedef SdaiShell_based_wireframe_shape_representation * SdaiShell_based_wireframe_shape_representation_ptr; -typedef SdaiShell_based_wireframe_shape_representation_ptr SdaiShell_based_wireframe_shape_representation_var; -#define SdaiShell_based_wireframe_shape_representation__set SCLP23(DAObject__set) -#define SdaiShell_based_wireframe_shape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_shell_based_wireframe_shape_representation; - -class SdaiFace; -typedef SdaiFace * SdaiFaceH; -typedef SdaiFace * SdaiFace_ptr; -typedef SdaiFace_ptr SdaiFace_var; -#define SdaiFace__set SCLP23(DAObject__set) -#define SdaiFace__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_face; - -class SdaiFace_surface; -typedef SdaiFace_surface * SdaiFace_surfaceH; -typedef SdaiFace_surface * SdaiFace_surface_ptr; -typedef SdaiFace_surface_ptr SdaiFace_surface_var; -#define SdaiFace_surface__set SCLP23(DAObject__set) -#define SdaiFace_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_face_surface; - -class SdaiOriented_face; -typedef SdaiOriented_face * SdaiOriented_faceH; -typedef SdaiOriented_face * SdaiOriented_face_ptr; -typedef SdaiOriented_face_ptr SdaiOriented_face_var; -#define SdaiOriented_face__set SCLP23(DAObject__set) -#define SdaiOriented_face__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_oriented_face; - -class SdaiSurface_of_revolution; -typedef SdaiSurface_of_revolution * SdaiSurface_of_revolutionH; -typedef SdaiSurface_of_revolution * SdaiSurface_of_revolution_ptr; -typedef SdaiSurface_of_revolution_ptr SdaiSurface_of_revolution_var; -#define SdaiSurface_of_revolution__set SCLP23(DAObject__set) -#define SdaiSurface_of_revolution__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_surface_of_revolution; - -class SdaiAdvanced_brep_shape_representation; -typedef SdaiAdvanced_brep_shape_representation * SdaiAdvanced_brep_shape_representationH; -typedef SdaiAdvanced_brep_shape_representation * SdaiAdvanced_brep_shape_representation_ptr; -typedef SdaiAdvanced_brep_shape_representation_ptr SdaiAdvanced_brep_shape_representation_var; -#define SdaiAdvanced_brep_shape_representation__set SCLP23(DAObject__set) -#define SdaiAdvanced_brep_shape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_advanced_brep_shape_representation; - -class SdaiEdge_curve; -typedef SdaiEdge_curve * SdaiEdge_curveH; -typedef SdaiEdge_curve * SdaiEdge_curve_ptr; -typedef SdaiEdge_curve_ptr SdaiEdge_curve_var; -#define SdaiEdge_curve__set SCLP23(DAObject__set) -#define SdaiEdge_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_edge_curve; - -class SdaiPoint_replica; -typedef SdaiPoint_replica * SdaiPoint_replicaH; -typedef SdaiPoint_replica * SdaiPoint_replica_ptr; -typedef SdaiPoint_replica_ptr SdaiPoint_replica_var; -#define SdaiPoint_replica__set SCLP23(DAObject__set) -#define SdaiPoint_replica__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_point_replica; - -class SdaiProduct; -typedef SdaiProduct * SdaiProductH; -typedef SdaiProduct * SdaiProduct_ptr; -typedef SdaiProduct_ptr SdaiProduct_var; -#define SdaiProduct__set SCLP23(DAObject__set) -#define SdaiProduct__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product; - -class SdaiShape_aspect_relationship; -typedef SdaiShape_aspect_relationship * SdaiShape_aspect_relationshipH; -typedef SdaiShape_aspect_relationship * SdaiShape_aspect_relationship_ptr; -typedef SdaiShape_aspect_relationship_ptr SdaiShape_aspect_relationship_var; -#define SdaiShape_aspect_relationship__set SCLP23(DAObject__set) -#define SdaiShape_aspect_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_shape_aspect_relationship; - -class SdaiRectangular_trimmed_surface; -typedef SdaiRectangular_trimmed_surface * SdaiRectangular_trimmed_surfaceH; -typedef SdaiRectangular_trimmed_surface * SdaiRectangular_trimmed_surface_ptr; -typedef SdaiRectangular_trimmed_surface_ptr SdaiRectangular_trimmed_surface_var; -#define SdaiRectangular_trimmed_surface__set SCLP23(DAObject__set) -#define SdaiRectangular_trimmed_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_rectangular_trimmed_surface; - -class SdaiPlane; -typedef SdaiPlane * SdaiPlaneH; -typedef SdaiPlane * SdaiPlane_ptr; -typedef SdaiPlane_ptr SdaiPlane_var; -#define SdaiPlane__set SCLP23(DAObject__set) -#define SdaiPlane__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_plane; - -class SdaiAction_assignment; -typedef SdaiAction_assignment * SdaiAction_assignmentH; -typedef SdaiAction_assignment * SdaiAction_assignment_ptr; -typedef SdaiAction_assignment_ptr SdaiAction_assignment_var; -#define SdaiAction_assignment__set SCLP23(DAObject__set) -#define SdaiAction_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_action_assignment; - -class SdaiChange; -typedef SdaiChange * SdaiChangeH; -typedef SdaiChange * SdaiChange_ptr; -typedef SdaiChange_ptr SdaiChange_var; -#define SdaiChange__set SCLP23(DAObject__set) -#define SdaiChange__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_change; - -class SdaiCircle; -typedef SdaiCircle * SdaiCircleH; -typedef SdaiCircle * SdaiCircle_ptr; -typedef SdaiCircle_ptr SdaiCircle_var; -#define SdaiCircle__set SCLP23(DAObject__set) -#define SdaiCircle__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_circle; - -class SdaiLine; -typedef SdaiLine * SdaiLineH; -typedef SdaiLine * SdaiLine_ptr; -typedef SdaiLine_ptr SdaiLine_var; -#define SdaiLine__set SCLP23(DAObject__set) -#define SdaiLine__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_line; - -class SdaiProperty_definition_representation; -typedef SdaiProperty_definition_representation * SdaiProperty_definition_representationH; -typedef SdaiProperty_definition_representation * SdaiProperty_definition_representation_ptr; -typedef SdaiProperty_definition_representation_ptr SdaiProperty_definition_representation_var; -#define SdaiProperty_definition_representation__set SCLP23(DAObject__set) -#define SdaiProperty_definition_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_property_definition_representation; - -class SdaiGeometric_set; -typedef SdaiGeometric_set * SdaiGeometric_setH; -typedef SdaiGeometric_set * SdaiGeometric_set_ptr; -typedef SdaiGeometric_set_ptr SdaiGeometric_set_var; -#define SdaiGeometric_set__set SCLP23(DAObject__set) -#define SdaiGeometric_set__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_geometric_set; - -class SdaiGeometric_curve_set; -typedef SdaiGeometric_curve_set * SdaiGeometric_curve_setH; -typedef SdaiGeometric_curve_set * SdaiGeometric_curve_set_ptr; -typedef SdaiGeometric_curve_set_ptr SdaiGeometric_curve_set_var; -#define SdaiGeometric_curve_set__set SCLP23(DAObject__set) -#define SdaiGeometric_curve_set__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_geometric_curve_set; - -class SdaiPersonal_address; -typedef SdaiPersonal_address * SdaiPersonal_addressH; -typedef SdaiPersonal_address * SdaiPersonal_address_ptr; -typedef SdaiPersonal_address_ptr SdaiPersonal_address_var; -#define SdaiPersonal_address__set SCLP23(DAObject__set) -#define SdaiPersonal_address__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_personal_address; - -class SdaiDocument_relationship; -typedef SdaiDocument_relationship * SdaiDocument_relationshipH; -typedef SdaiDocument_relationship * SdaiDocument_relationship_ptr; -typedef SdaiDocument_relationship_ptr SdaiDocument_relationship_var; -#define SdaiDocument_relationship__set SCLP23(DAObject__set) -#define SdaiDocument_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_document_relationship; - -class SdaiPcurve; -typedef SdaiPcurve * SdaiPcurveH; -typedef SdaiPcurve * SdaiPcurve_ptr; -typedef SdaiPcurve_ptr SdaiPcurve_var; -#define SdaiPcurve__set SCLP23(DAObject__set) -#define SdaiPcurve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_pcurve; - -class SdaiOuter_boundary_curve; -typedef SdaiOuter_boundary_curve * SdaiOuter_boundary_curveH; -typedef SdaiOuter_boundary_curve * SdaiOuter_boundary_curve_ptr; -typedef SdaiOuter_boundary_curve_ptr SdaiOuter_boundary_curve_var; -#define SdaiOuter_boundary_curve__set SCLP23(DAObject__set) -#define SdaiOuter_boundary_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_outer_boundary_curve; - -class SdaiShape_representation_relationship; -typedef SdaiShape_representation_relationship * SdaiShape_representation_relationshipH; -typedef SdaiShape_representation_relationship * SdaiShape_representation_relationship_ptr; -typedef SdaiShape_representation_relationship_ptr SdaiShape_representation_relationship_var; -#define SdaiShape_representation_relationship__set SCLP23(DAObject__set) -#define SdaiShape_representation_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_shape_representation_relationship; - -class SdaiAssembly_component_usage_substitute; -typedef SdaiAssembly_component_usage_substitute * SdaiAssembly_component_usage_substituteH; -typedef SdaiAssembly_component_usage_substitute * SdaiAssembly_component_usage_substitute_ptr; -typedef SdaiAssembly_component_usage_substitute_ptr SdaiAssembly_component_usage_substitute_var; -#define SdaiAssembly_component_usage_substitute__set SCLP23(DAObject__set) -#define SdaiAssembly_component_usage_substitute__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_assembly_component_usage_substitute; - -class SdaiDegenerate_pcurve; -typedef SdaiDegenerate_pcurve * SdaiDegenerate_pcurveH; -typedef SdaiDegenerate_pcurve * SdaiDegenerate_pcurve_ptr; -typedef SdaiDegenerate_pcurve_ptr SdaiDegenerate_pcurve_var; -#define SdaiDegenerate_pcurve__set SCLP23(DAObject__set) -#define SdaiDegenerate_pcurve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_degenerate_pcurve; - -class SdaiEvaluated_degenerate_pcurve; -typedef SdaiEvaluated_degenerate_pcurve * SdaiEvaluated_degenerate_pcurveH; -typedef SdaiEvaluated_degenerate_pcurve * SdaiEvaluated_degenerate_pcurve_ptr; -typedef SdaiEvaluated_degenerate_pcurve_ptr SdaiEvaluated_degenerate_pcurve_var; -#define SdaiEvaluated_degenerate_pcurve__set SCLP23(DAObject__set) -#define SdaiEvaluated_degenerate_pcurve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_evaluated_degenerate_pcurve; - -class SdaiSolid_angle_measure_with_unit; -typedef SdaiSolid_angle_measure_with_unit * SdaiSolid_angle_measure_with_unitH; -typedef SdaiSolid_angle_measure_with_unit * SdaiSolid_angle_measure_with_unit_ptr; -typedef SdaiSolid_angle_measure_with_unit_ptr SdaiSolid_angle_measure_with_unit_var; -#define SdaiSolid_angle_measure_with_unit__set SCLP23(DAObject__set) -#define SdaiSolid_angle_measure_with_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_solid_angle_measure_with_unit; - -class SdaiConnected_edge_set; -typedef SdaiConnected_edge_set * SdaiConnected_edge_setH; -typedef SdaiConnected_edge_set * SdaiConnected_edge_set_ptr; -typedef SdaiConnected_edge_set_ptr SdaiConnected_edge_set_var; -#define SdaiConnected_edge_set__set SCLP23(DAObject__set) -#define SdaiConnected_edge_set__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_connected_edge_set; - -class SdaiAction; -typedef SdaiAction * SdaiActionH; -typedef SdaiAction * SdaiAction_ptr; -typedef SdaiAction_ptr SdaiAction_var; -#define SdaiAction__set SCLP23(DAObject__set) -#define SdaiAction__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_action; - -class SdaiExecuted_action; -typedef SdaiExecuted_action * SdaiExecuted_actionH; -typedef SdaiExecuted_action * SdaiExecuted_action_ptr; -typedef SdaiExecuted_action_ptr SdaiExecuted_action_var; -#define SdaiExecuted_action__set SCLP23(DAObject__set) -#define SdaiExecuted_action__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_executed_action; - -class SdaiDirected_action; -typedef SdaiDirected_action * SdaiDirected_actionH; -typedef SdaiDirected_action * SdaiDirected_action_ptr; -typedef SdaiDirected_action_ptr SdaiDirected_action_var; -#define SdaiDirected_action__set SCLP23(DAObject__set) -#define SdaiDirected_action__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_directed_action; - -class SdaiOrganizational_project; -typedef SdaiOrganizational_project * SdaiOrganizational_projectH; -typedef SdaiOrganizational_project * SdaiOrganizational_project_ptr; -typedef SdaiOrganizational_project_ptr SdaiOrganizational_project_var; -#define SdaiOrganizational_project__set SCLP23(DAObject__set) -#define SdaiOrganizational_project__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_organizational_project; - -class SdaiDate_time_role; -typedef SdaiDate_time_role * SdaiDate_time_roleH; -typedef SdaiDate_time_role * SdaiDate_time_role_ptr; -typedef SdaiDate_time_role_ptr SdaiDate_time_role_var; -#define SdaiDate_time_role__set SCLP23(DAObject__set) -#define SdaiDate_time_role__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_date_time_role; - -class SdaiCurve_bounded_surface; -typedef SdaiCurve_bounded_surface * SdaiCurve_bounded_surfaceH; -typedef SdaiCurve_bounded_surface * SdaiCurve_bounded_surface_ptr; -typedef SdaiCurve_bounded_surface_ptr SdaiCurve_bounded_surface_var; -#define SdaiCurve_bounded_surface__set SCLP23(DAObject__set) -#define SdaiCurve_bounded_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_curve_bounded_surface; - -class SdaiClosed_shell; -typedef SdaiClosed_shell * SdaiClosed_shellH; -typedef SdaiClosed_shell * SdaiClosed_shell_ptr; -typedef SdaiClosed_shell_ptr SdaiClosed_shell_var; -#define SdaiClosed_shell__set SCLP23(DAObject__set) -#define SdaiClosed_shell__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_closed_shell; - -class SdaiDesign_make_from_relationship; -typedef SdaiDesign_make_from_relationship * SdaiDesign_make_from_relationshipH; -typedef SdaiDesign_make_from_relationship * SdaiDesign_make_from_relationship_ptr; -typedef SdaiDesign_make_from_relationship_ptr SdaiDesign_make_from_relationship_var; -#define SdaiDesign_make_from_relationship__set SCLP23(DAObject__set) -#define SdaiDesign_make_from_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_design_make_from_relationship; - -class SdaiDefinitional_representation; -typedef SdaiDefinitional_representation * SdaiDefinitional_representationH; -typedef SdaiDefinitional_representation * SdaiDefinitional_representation_ptr; -typedef SdaiDefinitional_representation_ptr SdaiDefinitional_representation_var; -#define SdaiDefinitional_representation__set SCLP23(DAObject__set) -#define SdaiDefinitional_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_definitional_representation; - -class SdaiProduct_definition_shape; -typedef SdaiProduct_definition_shape * SdaiProduct_definition_shapeH; -typedef SdaiProduct_definition_shape * SdaiProduct_definition_shape_ptr; -typedef SdaiProduct_definition_shape_ptr SdaiProduct_definition_shape_var; -#define SdaiProduct_definition_shape__set SCLP23(DAObject__set) -#define SdaiProduct_definition_shape__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition_shape; - -class SdaiSi_unit; -typedef SdaiSi_unit * SdaiSi_unitH; -typedef SdaiSi_unit * SdaiSi_unit_ptr; -typedef SdaiSi_unit_ptr SdaiSi_unit_var; -#define SdaiSi_unit__set SCLP23(DAObject__set) -#define SdaiSi_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_si_unit; - -class SdaiBezier_surface; -typedef SdaiBezier_surface * SdaiBezier_surfaceH; -typedef SdaiBezier_surface * SdaiBezier_surface_ptr; -typedef SdaiBezier_surface_ptr SdaiBezier_surface_var; -#define SdaiBezier_surface__set SCLP23(DAObject__set) -#define SdaiBezier_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_bezier_surface; - -class SdaiCertification_assignment; -typedef SdaiCertification_assignment * SdaiCertification_assignmentH; -typedef SdaiCertification_assignment * SdaiCertification_assignment_ptr; -typedef SdaiCertification_assignment_ptr SdaiCertification_assignment_var; -#define SdaiCertification_assignment__set SCLP23(DAObject__set) -#define SdaiCertification_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_certification_assignment; - -class SdaiStart_work; -typedef SdaiStart_work * SdaiStart_workH; -typedef SdaiStart_work * SdaiStart_work_ptr; -typedef SdaiStart_work_ptr SdaiStart_work_var; -#define SdaiStart_work__set SCLP23(DAObject__set) -#define SdaiStart_work__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_start_work; - -class SdaiContract_type; -typedef SdaiContract_type * SdaiContract_typeH; -typedef SdaiContract_type * SdaiContract_type_ptr; -typedef SdaiContract_type_ptr SdaiContract_type_var; -#define SdaiContract_type__set SCLP23(DAObject__set) -#define SdaiContract_type__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_contract_type; - -class SdaiB_spline_curve_with_knots; -typedef SdaiB_spline_curve_with_knots * SdaiB_spline_curve_with_knotsH; -typedef SdaiB_spline_curve_with_knots * SdaiB_spline_curve_with_knots_ptr; -typedef SdaiB_spline_curve_with_knots_ptr SdaiB_spline_curve_with_knots_var; -#define SdaiB_spline_curve_with_knots__set SCLP23(DAObject__set) -#define SdaiB_spline_curve_with_knots__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_b_spline_curve_with_knots; - -class SdaiCc_design_approval; -typedef SdaiCc_design_approval * SdaiCc_design_approvalH; -typedef SdaiCc_design_approval * SdaiCc_design_approval_ptr; -typedef SdaiCc_design_approval_ptr SdaiCc_design_approval_var; -#define SdaiCc_design_approval__set SCLP23(DAObject__set) -#define SdaiCc_design_approval__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cc_design_approval; - -class SdaiEdge_based_wireframe_shape_representation; -typedef SdaiEdge_based_wireframe_shape_representation * SdaiEdge_based_wireframe_shape_representationH; -typedef SdaiEdge_based_wireframe_shape_representation * SdaiEdge_based_wireframe_shape_representation_ptr; -typedef SdaiEdge_based_wireframe_shape_representation_ptr SdaiEdge_based_wireframe_shape_representation_var; -#define SdaiEdge_based_wireframe_shape_representation__set SCLP23(DAObject__set) -#define SdaiEdge_based_wireframe_shape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_edge_based_wireframe_shape_representation; - -class SdaiGeometrically_bounded_wireframe_shape_representation; -typedef SdaiGeometrically_bounded_wireframe_shape_representation * SdaiGeometrically_bounded_wireframe_shape_representationH; -typedef SdaiGeometrically_bounded_wireframe_shape_representation * SdaiGeometrically_bounded_wireframe_shape_representation_ptr; -typedef SdaiGeometrically_bounded_wireframe_shape_representation_ptr SdaiGeometrically_bounded_wireframe_shape_representation_var; -#define SdaiGeometrically_bounded_wireframe_shape_representation__set SCLP23(DAObject__set) -#define SdaiGeometrically_bounded_wireframe_shape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_geometrically_bounded_wireframe_shape_representation; - -class SdaiProduct_concept; -typedef SdaiProduct_concept * SdaiProduct_conceptH; -typedef SdaiProduct_concept * SdaiProduct_concept_ptr; -typedef SdaiProduct_concept_ptr SdaiProduct_concept_var; -#define SdaiProduct_concept__set SCLP23(DAObject__set) -#define SdaiProduct_concept__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_concept; - -class SdaiCc_design_contract; -typedef SdaiCc_design_contract * SdaiCc_design_contractH; -typedef SdaiCc_design_contract * SdaiCc_design_contract_ptr; -typedef SdaiCc_design_contract_ptr SdaiCc_design_contract_var; -#define SdaiCc_design_contract__set SCLP23(DAObject__set) -#define SdaiCc_design_contract__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cc_design_contract; - -class SdaiSeam_curve; -typedef SdaiSeam_curve * SdaiSeam_curveH; -typedef SdaiSeam_curve * SdaiSeam_curve_ptr; -typedef SdaiSeam_curve_ptr SdaiSeam_curve_var; -#define SdaiSeam_curve__set SCLP23(DAObject__set) -#define SdaiSeam_curve__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_seam_curve; - -class SdaiAxis2_placement_3d; -typedef SdaiAxis2_placement_3d * SdaiAxis2_placement_3dH; -typedef SdaiAxis2_placement_3d * SdaiAxis2_placement_3d_ptr; -typedef SdaiAxis2_placement_3d_ptr SdaiAxis2_placement_3d_var; -#define SdaiAxis2_placement_3d__set SCLP23(DAObject__set) -#define SdaiAxis2_placement_3d__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_axis2_placement_3d; - -class SdaiRational_b_spline_surface; -typedef SdaiRational_b_spline_surface * SdaiRational_b_spline_surfaceH; -typedef SdaiRational_b_spline_surface * SdaiRational_b_spline_surface_ptr; -typedef SdaiRational_b_spline_surface_ptr SdaiRational_b_spline_surface_var; -#define SdaiRational_b_spline_surface__set SCLP23(DAObject__set) -#define SdaiRational_b_spline_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_rational_b_spline_surface; - -class SdaiConfiguration_design; -typedef SdaiConfiguration_design * SdaiConfiguration_designH; -typedef SdaiConfiguration_design * SdaiConfiguration_design_ptr; -typedef SdaiConfiguration_design_ptr SdaiConfiguration_design_var; -#define SdaiConfiguration_design__set SCLP23(DAObject__set) -#define SdaiConfiguration_design__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_configuration_design; - -class SdaiDesign_context; -typedef SdaiDesign_context * SdaiDesign_contextH; -typedef SdaiDesign_context * SdaiDesign_context_ptr; -typedef SdaiDesign_context_ptr SdaiDesign_context_var; -#define SdaiDesign_context__set SCLP23(DAObject__set) -#define SdaiDesign_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_design_context; - -class SdaiProduct_definition; -typedef SdaiProduct_definition * SdaiProduct_definitionH; -typedef SdaiProduct_definition * SdaiProduct_definition_ptr; -typedef SdaiProduct_definition_ptr SdaiProduct_definition_var; -#define SdaiProduct_definition__set SCLP23(DAObject__set) -#define SdaiProduct_definition__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition; - -class SdaiProduct_definition_with_associated_documents; -typedef SdaiProduct_definition_with_associated_documents * SdaiProduct_definition_with_associated_documentsH; -typedef SdaiProduct_definition_with_associated_documents * SdaiProduct_definition_with_associated_documents_ptr; -typedef SdaiProduct_definition_with_associated_documents_ptr SdaiProduct_definition_with_associated_documents_var; -#define SdaiProduct_definition_with_associated_documents__set SCLP23(DAObject__set) -#define SdaiProduct_definition_with_associated_documents__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_definition_with_associated_documents; - -class SdaiOrganization; -typedef SdaiOrganization * SdaiOrganizationH; -typedef SdaiOrganization * SdaiOrganization_ptr; -typedef SdaiOrganization_ptr SdaiOrganization_var; -#define SdaiOrganization__set SCLP23(DAObject__set) -#define SdaiOrganization__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_organization; - -class SdaiCc_design_certification; -typedef SdaiCc_design_certification * SdaiCc_design_certificationH; -typedef SdaiCc_design_certification * SdaiCc_design_certification_ptr; -typedef SdaiCc_design_certification_ptr SdaiCc_design_certification_var; -#define SdaiCc_design_certification__set SCLP23(DAObject__set) -#define SdaiCc_design_certification__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cc_design_certification; - -class SdaiB_spline_surface_with_knots; -typedef SdaiB_spline_surface_with_knots * SdaiB_spline_surface_with_knotsH; -typedef SdaiB_spline_surface_with_knots * SdaiB_spline_surface_with_knots_ptr; -typedef SdaiB_spline_surface_with_knots_ptr SdaiB_spline_surface_with_knots_var; -#define SdaiB_spline_surface_with_knots__set SCLP23(DAObject__set) -#define SdaiB_spline_surface_with_knots__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_b_spline_surface_with_knots; - -class SdaiCertification_type; -typedef SdaiCertification_type * SdaiCertification_typeH; -typedef SdaiCertification_type * SdaiCertification_type_ptr; -typedef SdaiCertification_type_ptr SdaiCertification_type_var; -#define SdaiCertification_type__set SCLP23(DAObject__set) -#define SdaiCertification_type__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_certification_type; - -class SdaiOriented_path; -typedef SdaiOriented_path * SdaiOriented_pathH; -typedef SdaiOriented_path * SdaiOriented_path_ptr; -typedef SdaiOriented_path_ptr SdaiOriented_path_var; -#define SdaiOriented_path__set SCLP23(DAObject__set) -#define SdaiOriented_path__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_oriented_path; - -class SdaiSecurity_classification; -typedef SdaiSecurity_classification * SdaiSecurity_classificationH; -typedef SdaiSecurity_classification * SdaiSecurity_classification_ptr; -typedef SdaiSecurity_classification_ptr SdaiSecurity_classification_var; -#define SdaiSecurity_classification__set SCLP23(DAObject__set) -#define SdaiSecurity_classification__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_security_classification; - -class SdaiVertex_loop; -typedef SdaiVertex_loop * SdaiVertex_loopH; -typedef SdaiVertex_loop * SdaiVertex_loop_ptr; -typedef SdaiVertex_loop_ptr SdaiVertex_loop_var; -#define SdaiVertex_loop__set SCLP23(DAObject__set) -#define SdaiVertex_loop__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_vertex_loop; - -class SdaiApproval_status; -typedef SdaiApproval_status * SdaiApproval_statusH; -typedef SdaiApproval_status * SdaiApproval_status_ptr; -typedef SdaiApproval_status_ptr SdaiApproval_status_var; -#define SdaiApproval_status__set SCLP23(DAObject__set) -#define SdaiApproval_status__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_approval_status; - -class SdaiCartesian_point; -typedef SdaiCartesian_point * SdaiCartesian_pointH; -typedef SdaiCartesian_point * SdaiCartesian_point_ptr; -typedef SdaiCartesian_point_ptr SdaiCartesian_point_var; -#define SdaiCartesian_point__set SCLP23(DAObject__set) -#define SdaiCartesian_point__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cartesian_point; - -class SdaiDate_and_time_assignment; -typedef SdaiDate_and_time_assignment * SdaiDate_and_time_assignmentH; -typedef SdaiDate_and_time_assignment * SdaiDate_and_time_assignment_ptr; -typedef SdaiDate_and_time_assignment_ptr SdaiDate_and_time_assignment_var; -#define SdaiDate_and_time_assignment__set SCLP23(DAObject__set) -#define SdaiDate_and_time_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_date_and_time_assignment; - -class SdaiParametric_representation_context; -typedef SdaiParametric_representation_context * SdaiParametric_representation_contextH; -typedef SdaiParametric_representation_context * SdaiParametric_representation_context_ptr; -typedef SdaiParametric_representation_context_ptr SdaiParametric_representation_context_var; -#define SdaiParametric_representation_context__set SCLP23(DAObject__set) -#define SdaiParametric_representation_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_parametric_representation_context; - -class SdaiProduct_concept_context; -typedef SdaiProduct_concept_context * SdaiProduct_concept_contextH; -typedef SdaiProduct_concept_context * SdaiProduct_concept_context_ptr; -typedef SdaiProduct_concept_context_ptr SdaiProduct_concept_context_var; -#define SdaiProduct_concept_context__set SCLP23(DAObject__set) -#define SdaiProduct_concept_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_product_concept_context; - -class SdaiCartesian_transformation_operator_2d; -typedef SdaiCartesian_transformation_operator_2d * SdaiCartesian_transformation_operator_2dH; -typedef SdaiCartesian_transformation_operator_2d * SdaiCartesian_transformation_operator_2d_ptr; -typedef SdaiCartesian_transformation_operator_2d_ptr SdaiCartesian_transformation_operator_2d_var; -#define SdaiCartesian_transformation_operator_2d__set SCLP23(DAObject__set) -#define SdaiCartesian_transformation_operator_2d__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cartesian_transformation_operator_2d; - -class SdaiSurface_patch; -typedef SdaiSurface_patch * SdaiSurface_patchH; -typedef SdaiSurface_patch * SdaiSurface_patch_ptr; -typedef SdaiSurface_patch_ptr SdaiSurface_patch_var; -#define SdaiSurface_patch__set SCLP23(DAObject__set) -#define SdaiSurface_patch__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_surface_patch; - -class SdaiLength_unit; -typedef SdaiLength_unit * SdaiLength_unitH; -typedef SdaiLength_unit * SdaiLength_unit_ptr; -typedef SdaiLength_unit_ptr SdaiLength_unit_var; -#define SdaiLength_unit__set SCLP23(DAObject__set) -#define SdaiLength_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_length_unit; - -class SdaiShape_aspect; -typedef SdaiShape_aspect * SdaiShape_aspectH; -typedef SdaiShape_aspect * SdaiShape_aspect_ptr; -typedef SdaiShape_aspect_ptr SdaiShape_aspect_var; -#define SdaiShape_aspect__set SCLP23(DAObject__set) -#define SdaiShape_aspect__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_shape_aspect; - -class SdaiVolume_measure_with_unit; -typedef SdaiVolume_measure_with_unit * SdaiVolume_measure_with_unitH; -typedef SdaiVolume_measure_with_unit * SdaiVolume_measure_with_unit_ptr; -typedef SdaiVolume_measure_with_unit_ptr SdaiVolume_measure_with_unit_var; -#define SdaiVolume_measure_with_unit__set SCLP23(DAObject__set) -#define SdaiVolume_measure_with_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_volume_measure_with_unit; - -class SdaiAdvanced_face; -typedef SdaiAdvanced_face * SdaiAdvanced_faceH; -typedef SdaiAdvanced_face * SdaiAdvanced_face_ptr; -typedef SdaiAdvanced_face_ptr SdaiAdvanced_face_var; -#define SdaiAdvanced_face__set SCLP23(DAObject__set) -#define SdaiAdvanced_face__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_advanced_face; - -class SdaiSecurity_classification_level; -typedef SdaiSecurity_classification_level * SdaiSecurity_classification_levelH; -typedef SdaiSecurity_classification_level * SdaiSecurity_classification_level_ptr; -typedef SdaiSecurity_classification_level_ptr SdaiSecurity_classification_level_var; -#define SdaiSecurity_classification_level__set SCLP23(DAObject__set) -#define SdaiSecurity_classification_level__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_security_classification_level; - -class SdaiApproval_relationship; -typedef SdaiApproval_relationship * SdaiApproval_relationshipH; -typedef SdaiApproval_relationship * SdaiApproval_relationship_ptr; -typedef SdaiApproval_relationship_ptr SdaiApproval_relationship_var; -#define SdaiApproval_relationship__set SCLP23(DAObject__set) -#define SdaiApproval_relationship__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_approval_relationship; - -class SdaiPolyline; -typedef SdaiPolyline * SdaiPolylineH; -typedef SdaiPolyline * SdaiPolyline_ptr; -typedef SdaiPolyline_ptr SdaiPolyline_var; -#define SdaiPolyline__set SCLP23(DAObject__set) -#define SdaiPolyline__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_polyline; - -class SdaiApproval_person_organization; -typedef SdaiApproval_person_organization * SdaiApproval_person_organizationH; -typedef SdaiApproval_person_organization * SdaiApproval_person_organization_ptr; -typedef SdaiApproval_person_organization_ptr SdaiApproval_person_organization_var; -#define SdaiApproval_person_organization__set SCLP23(DAObject__set) -#define SdaiApproval_person_organization__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_approval_person_organization; - -class SdaiSurface_replica; -typedef SdaiSurface_replica * SdaiSurface_replicaH; -typedef SdaiSurface_replica * SdaiSurface_replica_ptr; -typedef SdaiSurface_replica_ptr SdaiSurface_replica_var; -#define SdaiSurface_replica__set SCLP23(DAObject__set) -#define SdaiSurface_replica__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_surface_replica; - -class SdaiSecurity_classification_assignment; -typedef SdaiSecurity_classification_assignment * SdaiSecurity_classification_assignmentH; -typedef SdaiSecurity_classification_assignment * SdaiSecurity_classification_assignment_ptr; -typedef SdaiSecurity_classification_assignment_ptr SdaiSecurity_classification_assignment_var; -#define SdaiSecurity_classification_assignment__set SCLP23(DAObject__set) -#define SdaiSecurity_classification_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_security_classification_assignment; - -class SdaiCc_design_security_classification; -typedef SdaiCc_design_security_classification * SdaiCc_design_security_classificationH; -typedef SdaiCc_design_security_classification * SdaiCc_design_security_classification_ptr; -typedef SdaiCc_design_security_classification_ptr SdaiCc_design_security_classification_var; -#define SdaiCc_design_security_classification__set SCLP23(DAObject__set) -#define SdaiCc_design_security_classification__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cc_design_security_classification; - -class SdaiFaceted_brep_shape_representation; -typedef SdaiFaceted_brep_shape_representation * SdaiFaceted_brep_shape_representationH; -typedef SdaiFaceted_brep_shape_representation * SdaiFaceted_brep_shape_representation_ptr; -typedef SdaiFaceted_brep_shape_representation_ptr SdaiFaceted_brep_shape_representation_var; -#define SdaiFaceted_brep_shape_representation__set SCLP23(DAObject__set) -#define SdaiFaceted_brep_shape_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_faceted_brep_shape_representation; - -class SdaiDocument_usage_constraint; -typedef SdaiDocument_usage_constraint * SdaiDocument_usage_constraintH; -typedef SdaiDocument_usage_constraint * SdaiDocument_usage_constraint_ptr; -typedef SdaiDocument_usage_constraint_ptr SdaiDocument_usage_constraint_var; -#define SdaiDocument_usage_constraint__set SCLP23(DAObject__set) -#define SdaiDocument_usage_constraint__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_document_usage_constraint; - -class SdaiVertex_point; -typedef SdaiVertex_point * SdaiVertex_pointH; -typedef SdaiVertex_point * SdaiVertex_point_ptr; -typedef SdaiVertex_point_ptr SdaiVertex_point_var; -#define SdaiVertex_point__set SCLP23(DAObject__set) -#define SdaiVertex_point__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_vertex_point; - -class SdaiCc_design_date_and_time_assignment; -typedef SdaiCc_design_date_and_time_assignment * SdaiCc_design_date_and_time_assignmentH; -typedef SdaiCc_design_date_and_time_assignment * SdaiCc_design_date_and_time_assignment_ptr; -typedef SdaiCc_design_date_and_time_assignment_ptr SdaiCc_design_date_and_time_assignment_var; -#define SdaiCc_design_date_and_time_assignment__set SCLP23(DAObject__set) -#define SdaiCc_design_date_and_time_assignment__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cc_design_date_and_time_assignment; - -class SdaiOriented_closed_shell; -typedef SdaiOriented_closed_shell * SdaiOriented_closed_shellH; -typedef SdaiOriented_closed_shell * SdaiOriented_closed_shell_ptr; -typedef SdaiOriented_closed_shell_ptr SdaiOriented_closed_shell_var; -#define SdaiOriented_closed_shell__set SCLP23(DAObject__set) -#define SdaiOriented_closed_shell__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_oriented_closed_shell; - -class SdaiPerson_and_organization; -typedef SdaiPerson_and_organization * SdaiPerson_and_organizationH; -typedef SdaiPerson_and_organization * SdaiPerson_and_organization_ptr; -typedef SdaiPerson_and_organization_ptr SdaiPerson_and_organization_var; -#define SdaiPerson_and_organization__set SCLP23(DAObject__set) -#define SdaiPerson_and_organization__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_person_and_organization; - -class SdaiCylindrical_surface; -typedef SdaiCylindrical_surface * SdaiCylindrical_surfaceH; -typedef SdaiCylindrical_surface * SdaiCylindrical_surface_ptr; -typedef SdaiCylindrical_surface_ptr SdaiCylindrical_surface_var; -#define SdaiCylindrical_surface__set SCLP23(DAObject__set) -#define SdaiCylindrical_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_cylindrical_surface; - -class SdaiLocal_time; -typedef SdaiLocal_time * SdaiLocal_timeH; -typedef SdaiLocal_time * SdaiLocal_time_ptr; -typedef SdaiLocal_time_ptr SdaiLocal_time_var; -#define SdaiLocal_time__set SCLP23(DAObject__set) -#define SdaiLocal_time__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_local_time; - -class SdaiMass_unit; -typedef SdaiMass_unit * SdaiMass_unitH; -typedef SdaiMass_unit * SdaiMass_unit_ptr; -typedef SdaiMass_unit_ptr SdaiMass_unit_var; -#define SdaiMass_unit__set SCLP23(DAObject__set) -#define SdaiMass_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_mass_unit; - -class SdaiVertex_shell; -typedef SdaiVertex_shell * SdaiVertex_shellH; -typedef SdaiVertex_shell * SdaiVertex_shell_ptr; -typedef SdaiVertex_shell_ptr SdaiVertex_shell_var; -#define SdaiVertex_shell__set SCLP23(DAObject__set) -#define SdaiVertex_shell__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_vertex_shell; - -class SdaiPoly_loop; -typedef SdaiPoly_loop * SdaiPoly_loopH; -typedef SdaiPoly_loop * SdaiPoly_loop_ptr; -typedef SdaiPoly_loop_ptr SdaiPoly_loop_var; -#define SdaiPoly_loop__set SCLP23(DAObject__set) -#define SdaiPoly_loop__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_poly_loop; - -class SdaiWire_shell; -typedef SdaiWire_shell * SdaiWire_shellH; -typedef SdaiWire_shell * SdaiWire_shell_ptr; -typedef SdaiWire_shell_ptr SdaiWire_shell_var; -#define SdaiWire_shell__set SCLP23(DAObject__set) -#define SdaiWire_shell__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_wire_shell; - -class SdaiArea_unit; -typedef SdaiArea_unit * SdaiArea_unitH; -typedef SdaiArea_unit * SdaiArea_unit_ptr; -typedef SdaiArea_unit_ptr SdaiArea_unit_var; -#define SdaiArea_unit__set SCLP23(DAObject__set) -#define SdaiArea_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_area_unit; - -class SdaiMapped_item; -typedef SdaiMapped_item * SdaiMapped_itemH; -typedef SdaiMapped_item * SdaiMapped_item_ptr; -typedef SdaiMapped_item_ptr SdaiMapped_item_var; -#define SdaiMapped_item__set SCLP23(DAObject__set) -#define SdaiMapped_item__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_mapped_item; - -class SdaiOffset_curve_2d; -typedef SdaiOffset_curve_2d * SdaiOffset_curve_2dH; -typedef SdaiOffset_curve_2d * SdaiOffset_curve_2d_ptr; -typedef SdaiOffset_curve_2d_ptr SdaiOffset_curve_2d_var; -#define SdaiOffset_curve_2d__set SCLP23(DAObject__set) -#define SdaiOffset_curve_2d__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_offset_curve_2d; - -class SdaiShape_definition_representation; -typedef SdaiShape_definition_representation * SdaiShape_definition_representationH; -typedef SdaiShape_definition_representation * SdaiShape_definition_representation_ptr; -typedef SdaiShape_definition_representation_ptr SdaiShape_definition_representation_var; -#define SdaiShape_definition_representation__set SCLP23(DAObject__set) -#define SdaiShape_definition_representation__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_shape_definition_representation; - -class SdaiVolume_unit; -typedef SdaiVolume_unit * SdaiVolume_unitH; -typedef SdaiVolume_unit * SdaiVolume_unit_ptr; -typedef SdaiVolume_unit_ptr SdaiVolume_unit_var; -#define SdaiVolume_unit__set SCLP23(DAObject__set) -#define SdaiVolume_unit__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_volume_unit; - -class SdaiConical_surface; -typedef SdaiConical_surface * SdaiConical_surfaceH; -typedef SdaiConical_surface * SdaiConical_surface_ptr; -typedef SdaiConical_surface_ptr SdaiConical_surface_var; -#define SdaiConical_surface__set SCLP23(DAObject__set) -#define SdaiConical_surface__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_conical_surface; - -class SdaiGlobal_unit_assigned_context; -typedef SdaiGlobal_unit_assigned_context * SdaiGlobal_unit_assigned_contextH; -typedef SdaiGlobal_unit_assigned_context * SdaiGlobal_unit_assigned_context_ptr; -typedef SdaiGlobal_unit_assigned_context_ptr SdaiGlobal_unit_assigned_context_var; -#define SdaiGlobal_unit_assigned_context__set SCLP23(DAObject__set) -#define SdaiGlobal_unit_assigned_context__set_var SCLP23(DAObject__set_var) -extern EntityDescriptor *config_control_designe_global_unit_assigned_context; - -// Aggregate types (from all schemas) which depend on other types: -typedef SdaiReversible_topology_items SdaiSet_of_reversible_topology_item; -typedef SdaiSet_of_reversible_topology_item * SdaiSet_of_reversible_topology_itemH; -typedef SdaiSet_of_reversible_topology_item * SdaiSet_of_reversible_topology_item_ptr; -typedef SdaiReversible_topology_items SdaiList_of_reversible_topology_item; -typedef SdaiList_of_reversible_topology_item * SdaiList_of_reversible_topology_itemH; -typedef SdaiList_of_reversible_topology_item * SdaiList_of_reversible_topology_item_ptr; - -#endif diff --git a/source/geometry/solids/STEP/include/Select.h b/source/geometry/solids/STEP/include/Select.h deleted file mode 100644 index 2c3ef66df7..0000000000 --- a/source/geometry/solids/STEP/include/Select.h +++ /dev/null @@ -1,28 +0,0 @@ - -#include - -class Select { - public: - SCLstring _underlying_typename; - - Select(); - //Select(const Select&); - virtual ~Select(); - - virtual char * Underlying_typeName const - { return _underlying_typename.chars(); } - -// const Named_type_ptr Underlying_type() const; - - // return 0 if unset, otherwise return 1 - virtual int exists() const=0; - - // change the receiver to an unset state. - virtual void nullify() =0; - - // Set the type of the select's immediate underlying type. This function - // shall only be used for the special case of a complex select which - // contains at least two underlying types which ultimately resolve to - // the same EXPRESS type. -// void SetUnderlying_type(const char * typename); -}; diff --git a/source/geometry/solids/STEP/include/SingleLinkList.h b/source/geometry/solids/STEP/include/SingleLinkList.h deleted file mode 100644 index 6aa51cc0f7..0000000000 --- a/source/geometry/solids/STEP/include/SingleLinkList.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef singlelinklist_h -#define singlelinklist_h - -/* -* NIST STEP Core Class Library -* clstepcore/SingleLinkList.h -* April 1997 -* David Sauder -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: SingleLinkList.h,v 1.3 2000/01/21 13:42:37 gcosmo Exp $ */ - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -class SingleLinkList { - - // node which represents the value is contained in the subclass - // since it may have different types for different lists - - protected: - - class SingleLinkNode * head; - SingleLinkNode * tail; - - public: - - virtual SingleLinkNode *NewNode(); - virtual void AppendNode (SingleLinkNode *); - virtual void DeleteNode (SingleLinkNode *); - - virtual void Empty (); - virtual void DeleteFollowingNodes (SingleLinkNode *); - virtual SingleLinkNode * GetHead () const; - - int EntryCount() const; - - SingleLinkList (); - virtual ~SingleLinkList (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -} -; - - -class SingleLinkNode { - friend class SingleLinkList; - protected: - - public: - SingleLinkList *owner; - SingleLinkNode *next; - - virtual SingleLinkNode *NextNode () const; - SingleLinkNode() : owner(0), next(0) { } - virtual ~SingleLinkNode() { } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -#endif diff --git a/source/geometry/solids/STEP/include/Str.h b/source/geometry/solids/STEP/include/Str.h deleted file mode 100644 index 29ff6e9bf5..0000000000 --- a/source/geometry/solids/STEP/include/Str.h +++ /dev/null @@ -1,51 +0,0 @@ - -#ifndef STR_H -#define STR_H - -/* -* NIST Utils Class Library -* clutils/Str.h -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: Str.h,v 1.5 2003/06/06 17:07:29 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -#include - -//#include // not found in CenterLine C++ -// the two includes stdio.h and stdlib.h below are replacing std.h since -// CenterLine doesn't have std.h - -#include // added to have the definition for BUFSIZE -#include -#include -#include -#include - -char ToLower (const char c); -char ToUpper (const char c); -char * StrToLower (const char *, char *); -const char * StrToLower (const char * word, SCLstring &s); -const char * StrToUpper (const char * word, SCLstring &s); -const char * StrToConstant (const char * word, SCLstring &s); -const char * PrettyTmpName (const char * oldname); -char * PrettyNewName (const char * oldname); -int StrCmpIns (const char *, const char *); -char * EntityClassName ( char * oldname); - -extern Severity CheckRemainingInput - (std::istream &in, ErrorDescriptor *err, - const char *typeName, // used in error message - const char *tokenList); // e.g. ",)" - - -#endif diff --git a/source/geometry/solids/STEP/include/baseType.h b/source/geometry/solids/STEP/include/baseType.h deleted file mode 100644 index e029014a31..0000000000 --- a/source/geometry/solids/STEP/include/baseType.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef BASETYPE_H -#define BASETYPE_H - -/* -* NIST STEP Core Class Library -* clstepcore/baseType.h -* April 1997 -* David Sauder -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: baseType.h,v 1.3 2000/01/21 13:42:37 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -// ************** TYPES of attributes - -// IMS, 9 Aug 95: changed values to make these values usable in a bitmask - -enum PrimitiveType { - sdaiINTEGER = 0x0001, - sdaiREAL = 0x0002, - sdaiBOOLEAN = 0x0004, - sdaiLOGICAL = 0x0008, - sdaiSTRING = 0x0010, - sdaiBINARY = 0x0020, - sdaiENUMERATION = 0x0040, - sdaiSELECT = 0x0080, - sdaiINSTANCE = 0x0100, - sdaiAGGR = 0x0200, - sdaiNUMBER = 0x0400, -// The elements defined below are not part of part 23 -// (IMS: these should not be used as bitmask fields) - ARRAY_TYPE, // DAS - BAG_TYPE, // DAS - SET_TYPE, // DAS - LIST_TYPE, // DAS - GENERIC_TYPE, - REFERENCE_TYPE, - UNKNOWN_TYPE - }; - -// for backwards compatibility with our previous implementation -typedef PrimitiveType BASE_TYPE; - -// the previous element types of the enum BASE_TYPE that have been redefined -#define INTEGER_TYPE sdaiINTEGER -#define REAL_TYPE sdaiREAL -#define BOOLEAN_TYPE sdaiBOOLEAN -#define LOGICAL_TYPE sdaiLOGICAL -#define STRING_TYPE sdaiSTRING -#define BINARY_TYPE sdaiBINARY -#define ENUM_TYPE sdaiENUMERATION -#define SELECT_TYPE sdaiSELECT -#define ENTITY_TYPE sdaiINSTANCE -#define AGGREGATE_TYPE sdaiAGGR -#define NUMBER_TYPE sdaiNUMBER - -/* not defined in part 23 - ARRAY_TYPE, // DAS - BAG_TYPE, // DAS - SET_TYPE, // DAS - LIST_TYPE, // DAS - GENERIC_TYPE, - REFERENCE_TYPE, - UNKNOWN_TYPE -*/ - -#endif diff --git a/source/geometry/solids/STEP/include/classes.h b/source/geometry/solids/STEP/include/classes.h deleted file mode 100644 index ae811c7015..0000000000 --- a/source/geometry/solids/STEP/include/classes.h +++ /dev/null @@ -1,123 +0,0 @@ - - -// - - - -// -// $Id: classes.h,v 1.3 2000/01/21 13:42:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* -** Fed-x parser output module for generating C++ class definitions -** December 5, 1989 -** release 2 17-Feb-1992 -** release 3 March 1993 -** release 4 December 1993 -** K. C. Morris -** -** Development of Fed-x was funded by the United States Government, -** and is not subject to copyright. - -******************************************************************* -The conventions used in this binding Follow the proposed specification -for the STEP Standard Data Access Interface as defined in document -N350 ( August 31, 1993 ) of ISO 10303 TC184/SC4/WG7. -*******************************************************************/ - -#include -#include -#include - - -#include "express.h" -#include "exppp.h" -#include - -#ifdef __CENTERLINE__ -#define CONST -#else -#define CONST const -#endif - -#define MAX_LEN 240 -#define DEBUG if (0) printf - -#define TD_PREFIX "t_" -#define ATTR_PREFIX "a_" -#define ENT_PREFIX "e_" -#define SCHEMA_PREFIX "s_" - -#define TYPEprefix(t) (TYPEis_entity (t) ? ENT_PREFIX : TD_PREFIX) - -#define SCHEMA_FILE_PREFIX "Sdai" -#define TYPE_PREFIX "Sdai" -#define ENTITYCLASS_PREFIX TYPE_PREFIX -#define ENUM_PREFIX "sdai" - -#define move(b) (b = (b + strlen(b))) -#define TYPEtd_name(t,s) TypeDescriptorName ((t), (s)) - -typedef struct file_holder { - FILE* inc; /* include file */ - FILE* lib; /* library file */ - FILE* incall; /* include file for collecting all include files */ - FILE* initall; /* for registering all entities from all schemas */ - FILE* make; /* for indicating schema source files in makefile */ - FILE* code; - FILE* init; /* contains function to Initialize program - to use schema's entities */ - -} File_holder, FILES; - -typedef struct EntityTag *EntityTag; -struct EntityTag { - /* these fields are used so that ENTITY types are processed in order - * when appearing in differnt schemas */ - unsigned int started :1; /* marks the beginning of processing */ - unsigned int complete :1; /* marks the end of processing */ - - Entity superclass; /* the entity being used as the supertype - * - with multiple inheritance only chose one */ -}; - -Entity ENTITYget_superclass (Entity entity); -Entity ENTITYput_superclass (Entity entity); -int ENTITYhas_explicit_attributes (Entity e); - -typedef struct SelectTag *SelectTag; -struct SelectTag { - /* these fields are used so that SELECT types are processed in order */ - unsigned int started :1; /* marks the beginning of processing */ - unsigned int complete :1; /* marks the end of processing */ - }; - -#define String const char * -const char * CheckWord( const char *); -const char * StrToLower(const char *); -const char * StrToUpper (const char *); -const char * FirstToUpper (const char *); -const char * SelectName (const char *); -FILE *FILEcreate(const char *); -void FILEclose(FILE *); -const char * ClassName(const char *); -const char * ENTITYget_classname(Entity); -void ENTITYPrint(Entity,FILES *,Schema); -const char * StrToConstant(const char *); -void TYPEprint_definition(Type, FILES *,Schema); -const char * PrettyTmpName (const char * oldname); -const char * EnumName (const char * oldname) ; -const char * TypeDescriptorName (Type , Schema ); -char * TypeDescription (const Type t); -const char * TypeName (Type t); -const char * AccessType (Type t); -const char * TYPEget_ctype (const Type t); - -/*Variable*/ -/*VARis_simple_explicit (Variable a)*/ -#define VARis_simple_explicit(a) (!VARis_type_shifter(a)) - -/*Variable*/ -/*VARis_simple_derived (Variable a)*/ -#define VARis_simple_derived(a) (!VARis_overrider(a)) - diff --git a/source/geometry/solids/STEP/include/cmdmgr.h b/source/geometry/solids/STEP/include/cmdmgr.h deleted file mode 100644 index 4d46eb4fd1..0000000000 --- a/source/geometry/solids/STEP/include/cmdmgr.h +++ /dev/null @@ -1,193 +0,0 @@ -#ifndef cmdmgr_h -#define cmdmgr_h - -/* -* NIST STEP Editor Class Library -* cleditor/cmdmgr.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: cmdmgr.h,v 1.3 2000/01/21 13:42:38 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -#include -#include -//#include -#include - -#include -#include -#include -#include -#include -#include - -typedef unsigned short BOOLEAN; - -//#define NUM_CMDMGR_CMDS 9 - // this is the number of columns that contain cmds (as opposed - // to state info) -#define NUM_CMD_COLUMNS 3 - -// **** each of CMD_CHAR must be a unique char. -#define SAVE_COMPLETE_CMD_CHAR 's' -#define SAVE_COMPLETE_CMD_COL 0 -#define SAVE_COMPLETE_STATE_CHAR ' ' -#define SAVE_COMPLETE_STATE_COL 4 - -#define SAVE_INCOMPLETE_CMD_CHAR 'i' -#define SAVE_INCOMPLETE_CMD_COL 0 -#define SAVE_INCOMPLETE_STATE_CHAR 'I' -#define SAVE_INCOMPLETE_STATE_COL 4 - -// backup to last save -//#define CANCEL_CMD_CHAR 'c' -//#define CANCEL_CMD_COL 0 - -#define NEW_STATE_CHAR 'N' -#define NEW_STATE_COL 4 - -#define DELETE_CMD_CHAR 'd' -#define DELETE_CMD_COL 0 -#define DELETE_STATE_CHAR 'D' -#define DELETE_STATE_COL 4 - - // close will try to save it to its previous status -#define CLOSE_CMD_CHAR 'c' -#define CLOSE_CMD_COL 2 - -#define MODIFY_CMD_CHAR 'm' -#define MODIFY_CMD_COL 2 -#define MODIFY_STATE_CHAR 'M' -#define MODIFY_STATE_COL 3 - -#define VIEW_CMD_CHAR 'v' -#define VIEW_CMD_COL 2 -#define VIEW_STATE_CHAR 'V' -#define VIEW_STATE_COL 3 - -#define REPLICATE_CMD_CHAR 'r' -#define REPLICATE_CMD_COL 1 - -#define EXECUTE_CMD_CHAR 'x' -#define EXECUTE_CMD_COL 5 - -#define UNMARK_CMD_CHAR 'u' -#define UNMARK_CMD_COL 5 - -/////////////////////////////////////////////////////////////////////////////// - -class ReplicateLinkNode : public SingleLinkNode { - private: - protected: - MgrNode * _repNode; - public: - ReplicateLinkNode() { _repNode = 0; } - ~ReplicateLinkNode() { } - - char *ClassName () { return (char*)("ReplicateLinkNode"); } - - MgrNode *ReplicateNode() { return _repNode; } - void ReplicateNode(MgrNode *rn) { _repNode = rn; } -}; - -class ReplicateList : public SingleLinkList { - private: - protected: - public: - ReplicateList() { } - ~ReplicateList() { } - - virtual SingleLinkNode * NewNode () { return new ReplicateLinkNode; } - - BOOLEAN IsOnList(MgrNode *mn); - ReplicateLinkNode *FindNode(MgrNode *mn); - - ReplicateLinkNode * AddNode (MgrNode * rn) { - ReplicateLinkNode *node = (ReplicateLinkNode *) NewNode(); - node->ReplicateNode(rn); - SingleLinkList::AppendNode(node); - return node; - } - - BOOLEAN Remove(ReplicateLinkNode *rln); - BOOLEAN Remove(MgrNode *rn); - - char *ClassName () { return (char*)("ReplicateList"); } -}; - -/////////////////////////////////////////////////////////////////////////////// - -class CmdMgr -{ -protected: - MgrNodeList *completeList; - MgrNodeList *incompleteList; - MgrNodeList *cancelList; - MgrNodeList *deleteList; - - DisplayNodeList *mappedWriteList; - DisplayNodeList *mappedViewList; - DisplayNodeList *closeList; - - ReplicateList *replicateList; - public: - - CmdMgr(); - -// STATE LIST OPERATIONS - MgrNode *GetHead(stateEnum listType); - DisplayNode *GetHead(displayStateEnum listType); - ReplicateLinkNode *GetReplicateHead() - { return (ReplicateLinkNode *)(replicateList->GetHead()); } - - void ClearEntries(stateEnum listType); - void ClearEntries(displayStateEnum listType); - void ClearReplicateEntries() { replicateList->Empty(); } - ReplicateList *RepList() { return replicateList; } - - // searches current list for fileId - MgrNode *StateFindFileId(stateEnum s, int fileId); - // returns stateNext or statePrev member variables - // i.e. next or previous node on curr state list - - int SaveCompleteCmdList(MgrNode *mn) - { return mn->ChangeList(completeList); } - int SaveIncompleteCmdList(MgrNode *mn) - { return mn->ChangeList(incompleteList); } - int CancelCmdList(MgrNode *mn) - { return mn->ChangeList(cancelList); } - int DeleteCmdList(MgrNode *mn) - { return mn->ChangeList(deleteList); } - int ModifyCmdList(MgrNode *mn) - { return mn->ChangeList(mappedWriteList); } - int ViewCmdList(MgrNode *mn) - { return mn->ChangeList(mappedViewList); } - int CloseCmdList(MgrNode *mn) - { return ( ( mn->DisplayState() == mappedWrite ) || - ( mn->DisplayState() == mappedView ) ) ? - mn->ChangeList(closeList) : 0; - } -/* -// { if(mn->DisplayState() == mappedWrite || -// mn->DisplayState() == mappedView) -// return mn->ChangeList(closeList); -// else return 0; -// } -*/ - int ReplicateCmdList(MgrNode *mn); - - void ClearInstances(); -protected: - -}; - -#endif diff --git a/source/geometry/solids/STEP/include/complexSupport.h b/source/geometry/solids/STEP/include/complexSupport.h deleted file mode 100644 index bcb8110450..0000000000 --- a/source/geometry/solids/STEP/include/complexSupport.h +++ /dev/null @@ -1,354 +0,0 @@ -#ifndef COMPLEXSUP_H -#define COMPLEXSUP_H - -/***************************************************************************** - * complexSupport.h * - * * - * Description: Slightly simplified version of fedex_plus's complexSupport.h.* - * This version works with the SCL and is used to validate * - * complex entities (user requests to build them). It does not * - * contain info for building these structures from a fedex * - * Express object, as the fedex_plus version. * - * * - * Created by: David Rosenfeld * - * Date: 5/9/97 * - *****************************************************************************/ - -#include -#include -/* -extern "C" -{ -#include -#include -#include -} -*/ -#include "Str.h" - -#define FALSE 0 -#define TRUE 1 -#define LISTEND 999 -// LISTEND signifies that an OrList has gone beyond its last viable choice -// among its children. - -enum MarkType { - NOMARK, ORMARK, MARK -}; -// MARK is the usual value we'd mark with. If we mark with ORMARK, it means -// an OrList marked this node, so we'll know it may become unmarked later if -// we try another choice. - -enum MatchType { - UNKNOWN, UNSATISFIED, SATISFIED, MATCHSOME, MATCHALL, NEWCHOICE, NOMORE -}; -// These are the conditions the EntList::match() functions may return. They -// are also the assigned values to EntList::viable. -// -// UNKNOWN - The default EntList::viable value - before any matching -// has been attempted. -// UNSATISFIED - EntList had conditions that EntNode did not satisfy (e.g., -// EntList specified A AND B while EntNode only contained an -// A). -// SATISFIED - EntList had no conditions EntNode did not meet. But, -// EntList did not match (mark) any nodes of EntNode which -// were not already matched. -// MATCHSOME - EntList matched some of the nodes in EntNode. -// MATCHALL - EntList matched all the nodes in EntNode (complex entity -// can be instantiated). -// MORECHOICES - Special case - when trying alternate OR paths, this return -// value signifies that we have found another choice. -// NOMORE - Special case - when trying alternate OR paths, this return -// value signifies that no more alternates within this path. - -enum JoinType { - SIMPLE, AND, OR, ANDOR -}; - -class SimpleList; -class MultList; -class JoinList; -class AndOrList; -class AndList; -class OrList; -class ComplexList; -class ComplexCollect; - -class EntNode { - friend class SimpleList; - friend class AndOrList; - friend class AndList; - friend class OrList; - friend class ComplexList; - - public: - EntNode( const char *nm="" ) : next(0), mark(NOMARK), multSupers(0) - { StrToLower( nm, name ); } - EntNode( const char ** ); // given a list, create a - ~EntNode() { if ( next ) delete next; } // linked list of EntNodes - - operator const char *() { return name; } - - // Added missing return types to following operator definitions - GC - - int operator== ( EntNode &ent ) - { return ( strcmp( name, ent.name ) == 0 ); } - int operator< ( EntNode &ent ) - { return ( strcmp( name, ent.name ) < 0 ); } - int operator> ( EntNode &ent ) - { return ( strcmp( name, ent.name ) > 0 ); } - EntNode &operator= ( EntNode &ent ); - void Name( const char *nm ) { strncpy( name, nm, BUFSIZ-1 ); } - const char *Name() { return name; } - void setmark( MarkType stamp=MARK ) { mark = stamp; } - void markAll( MarkType=MARK ); - void unmarkAll() { markAll( NOMARK ); } - int marked( MarkType base=ORMARK ) { return ( mark >= base ); } - int allMarked(); // returns TRUE if all nodes in list are marked - int unmarkedCount(); - int multSuprs() { return multSupers; } - void multSuprs( int j ) { multSupers = j; } - void sort( EntNode ** ); - - EntNode *next; - - private: - MarkType mark; - char name[BUFSIZ]; - int multSupers; // do I correspond to an entity with >1 supertype? - EntNode *lastSmaller( EntNode * ); // used by ::sort() -}; - -class EntList { - friend class MultList; - friend class JoinList; - friend class OrList; - friend class ComplexList; - friend class ComplexCollect; - friend std::ostream & operator<< ( std::ostream &, EntList & ); - friend std::ostream & operator<< ( std::ostream &, MultList & ); - - public: - // Changed order of member initialisations to match correct order - GC - EntList( JoinType j ) : join(j), next(0), prev(0), viable(UNKNOWN), - level(0) {} - virtual ~EntList() {} - MatchType viableVal() { return viable; } - virtual void setLevel( int l ) { level = l; } - virtual int contains( char * ) =0; - virtual int hit( char * ) =0; - virtual MatchType matchNonORs( EntNode * ) { return UNKNOWN; } - virtual int acceptChoice( EntNode * ) =0; - virtual void unmarkAll( EntNode * ) =0; - virtual void reset() { viable = UNKNOWN; } - int siblings(); - - // List access functions. They access desired children based on their - // join or viable values. Below is an incomplete list of possible fns, - // but all we need. - EntList *firstNot( JoinType ); - EntList *nextNot( JoinType j ) { return next->firstNot( j ); } - EntList *firstWanted( MatchType ); - EntList *nextWanted( MatchType mat ) { return next->firstWanted( mat ); } - EntList *lastNot( JoinType ); - EntList *prevNot( JoinType j ) { return prev->lastNot( j ); } - EntList *lastWanted( MatchType ); - EntList *prevWanted( MatchType mat ) { return prev->lastWanted( mat ); } - - JoinType join; - int multiple() { return ( join != SIMPLE ); } - EntList *next, *prev; - - protected: - MatchType viable; - // How does this EntList match the complex type. Used especially if Ent- - // List's parent is an OrList or AndOrList to record if this child is an - // acceptable choice or not. For an AndOr, viable children are accepted - // right away. For Or, only one is accepted, but we keep track of the - // other possible solutions in case we'll want to try them. - int level; // How many levels deep are we (main use for printing). -}; - -class SimpleList : public EntList { - friend class ComplexList; - friend std::ostream & operator<< ( std::ostream &, SimpleList & ); - - public: - // Changed order of member initialisations to match correct order - GC - SimpleList( const char *n ) : EntList(SIMPLE), I_marked(NOMARK) - { strcpy( name, n ); } - ~SimpleList() {} - - // Added missing return type - GC - int operator== ( const char *nm ) - { return ( strcmp( name, nm ) == 0 ); } - const char *Name() { return name; } - int contains( char *nm ) { return *this == nm; } - int hit( char *nm ) { return *this == nm; } - MatchType matchNonORs( EntNode * ); - int acceptChoice( EntNode * ); - void unmarkAll( EntNode * ); - void reset() { viable = UNKNOWN; I_marked = NOMARK; } - - private: - char name[BUFSIZ]; // Name of entity we correspond to. - MarkType I_marked; // Did I mark, and with what type of mark. -}; - -class MultList : public EntList { - // Supports concepts and functionality common to all the compound list - // types, especially AND and ANDOR. - - friend class ComplexList; - friend class ComplexCollect; - friend std::ostream & operator<< ( std::ostream &, MultList & ); - - public: - MultList( JoinType j ) : EntList(j), supertype(0), numchildren(0), - childList(0) {} - ~MultList(); - void setLevel( int ); - int contains( char * ); - int hit( char * ); - void appendList( EntList * ); - EntList *copyList( EntList * ); - virtual MatchType matchORs( EntNode * ) =0; - virtual MatchType tryNext( EntNode * ); - - int childCount() { return numchildren; } -// EntList *operator[]( int ); - EntList *getChild( int ); - EntList *getLast() { return ( getChild( numchildren-1 ) ); } - void unmarkAll( EntNode * ); - int prevKnown( EntList * ); - void reset(); - - protected: - int supertype; // do I represent a supertype? - int numchildren; - EntList *childList; - // Points to a list of "children" of this EntList. E.g., if join = - // AND, it would point to a list of the entity types we are AND'ing. - // The children may be SIMPLE EntLists (contain entity names) or may - // themselves be And-, Or-, or AndOrLists. -}; - -class JoinList : public MultList { - // A specialized MultList, super for subtypes AndOrList and AndList, or - // ones which join their multiple children. - public: - JoinList( JoinType j ) : MultList(j) {} - ~JoinList() {} - void setViableVal( EntNode * ); - int acceptChoice( EntNode * ); -}; - -class AndOrList : public JoinList { - friend class ComplexList; - - public: - AndOrList() : JoinList( ANDOR ) {} - ~AndOrList() {} - MatchType matchNonORs( EntNode * ); - MatchType matchORs( EntNode * ); -}; - -class AndList : public JoinList { - friend class ComplexList; - friend std::ostream & operator<< ( std::ostream &, ComplexList & ); - - public: - AndList() : JoinList( AND ) {} - ~AndList() {} - MatchType matchNonORs( EntNode * ); - MatchType matchORs( EntNode * ); -}; - -class OrList : public MultList { - public: - OrList() : MultList( OR ), choice(-1), choiceCount(0) {} - ~OrList() {} - int hit( char * ); - MatchType matchORs( EntNode * ); - MatchType tryNext( EntNode * ); - void unmarkAll( EntNode * ); - int acceptChoice( EntNode * ); - int acceptNextChoice( EntNode *ents ) - { choice++; return ( acceptChoice( ents ) ); } - void reset() { choice = -1; choiceCount = 0; MultList::reset(); } - - private: - int choice, choice1, choiceCount; - // Which choice of our childList did we select from this OrList; what's - // the first viable choice; and how many choices are there entirely. -}; - -class ComplexList { - // Contains the entire list of EntLists which describe the set of - // instantiable complex entities defined by an EXPRESS expression. - - friend class MultList; - friend class ComplexCollect; - friend std::ostream & operator<< ( std::ostream &, ComplexList & ); - - public: - - // Changed 'and' to 'andl'. 'and' is reserved word in the standard - GC - // Changed order of member initialisations to match correct order - GC - ComplexList( AndList *andl = NULL ) : list(0), head(andl), next(0), - abstract(0), dependent(0), - multSupers(0) {} - ~ComplexList(); - void buildList(); - void remove(); - - // Added missing return types to following operator definitions - GC - - int operator< ( ComplexList &c ) - { return ( strcmp( supertype(), c.supertype() ) < 0 ); } - int operator< ( char *name ) - { return ( strcmp( supertype(), name ) < 0 ); } - int operator== ( char *name ) - { return ( strcmp( supertype(), name ) == 0 ); } - const char *supertype() { return ((SimpleList *)head->childList)->name; } - // Based on knowledge that ComplexList always created by ANDing supertype - // with subtypes. - int toplevel( const char * ); - int contains( EntNode * ); - int matches( EntNode * ); - - EntNode *list; // List of all entities contained in this complex type, - // regardless of how. (Used as a quick way of determining - // if this List *may* contain a certain complex type.) - AndList *head; - ComplexList *next; - int Dependent() { return dependent; } - - private: - void addChildren( EntList * ); - int hitMultNodes( EntNode * ); - int abstract; // is our supertype abstract? - int dependent; // is our supertype also a subtype of other supertype(s)? - int multSupers; // am I a combo-CList created to test a subtype which has -}; // >1 supertypes? - -class ComplexCollect { - // The collection of all the ComplexLists defined by the current schema. - public: - ComplexCollect( ComplexList *c = NULL ) : clists(c) - { count = ( c ? 1 : 0 ); } - ~ComplexCollect() { delete clists; } - void insert( ComplexList * ); - void remove( ComplexList * ); - // Remove this list but don't delete its hierarchy structure, because - // it's used elsewhere. - ComplexList *find( char * ); - int supports( EntNode * ) const; - - ComplexList *clists; - - private: - int count; // # of clist children -}; - -#endif diff --git a/source/geometry/solids/STEP/include/dictdefs.h b/source/geometry/solids/STEP/include/dictdefs.h deleted file mode 100644 index dd257d2ea7..0000000000 --- a/source/geometry/solids/STEP/include/dictdefs.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef DICTDEFS_H -#define DICTDEFS_H 1 - -class Schema; -class AttrDescriptor; -class Inverse_attribute; -class EntityDescriptor; -class TypeDescriptor; -class EnumerationTypeDescriptor; -class AggrTypeDescriptor; -class ArrayTypeDescriptor; -class SetTypeDescriptor; -class ListTypeDescriptor; -class SelectTypeDescriptor; -class StringTypeDescriptor; -class BagTypeDescriptor; -class RealTypeDescriptor; -class EntityDescLinkNode; -class EntityDescriptorList; -class AttrDescLinkNode; -class AttrDescriptorList; -class Inverse_attributeLinkNode; -class Inverse_attributeList; -class TypeDescLinkNode; -class TypeDescriptorList; - -// These all match up to the new (CD2) Part 23 spec -// Some classes don't exist in our old dictionary implementation so they are -// currently commented out. The underlying class names should be updated -// when the new dictionary is integrated. DAS - -//typedef class Named_type* Named_type_ptr; -//typedef Named_type_ptr Named_type_var; -//typedef class Dictionary_instance* Dictionary_instance_ptr; -//typedef Dictionary_instance_ptr Dictionary_instance_var; -typedef class Schema* Schema_ptr; -typedef Schema_ptr Schema_var; -//typedef class Defined_type* Defined_type_ptr; -//typedef Defined_type_ptr Defined_type_var; -typedef class EntityDescriptor* Entity_ptr; -typedef Entity_ptr Entity_var; -typedef class AttrDescriptor* Attribute_ptr; -typedef Attribute_ptr Attribute_var; -typedef class Derived_attribute* Derived_attribute_ptr; -typedef Derived_attribute_ptr Derived_attribute_var; -typedef class AttrDescriptor* Explicit_attribute_ptr; -typedef Explicit_attribute_ptr Explicit_attribute_var; -typedef Inverse_attribute* Inverse_attribute_ptr; -typedef Inverse_attribute_ptr Inverse_attribute_var; -typedef Inverse_attribute_ptr Inverse_attribute_var; -typedef Inverse_attribute InverseAttrDescriptor; -typedef class EnumTypeDescriptor* Enumeration_type_ptr; -typedef Enumeration_type_ptr Enumeration_type_var; -typedef class SelectTypeDescriptor* Select_type_ptr; -typedef Select_type_ptr Select_type_var; -//typedef class Global_rule* Global_rule_ptr; -//typedef Global_rule_ptr Global_rule_var; -//typedef class Simple_type* Simple_type_ptr; -//typedef Simple_type_ptr Simple_type_var; -//typedef class Number_type* Number_type_ptr; -//typedef Number_type_ptr Number_type_var; -//typedef class IntTypeDescriptor* Integer_type_ptr; -//typedef Integer_type_ptr Integer_type_var; -typedef class RealTypeDescriptor* Real_type_ptr; -typedef Real_type_ptr Real_type_var; -typedef class StringTypeDescriptor* String_type_ptr; -typedef String_type_ptr String_type_var; -//typedef class BinaryTypeDescriptor* Binary_type_ptr; -//typedef Binary_type_ptr Binary_type_var; -//typedef class LogicalTypeDescriptor* Logical_type_ptr; -//typedef Logical_type_ptr Logical_type_var; -//typedef class BooleanTypeDescriptor* Boolean_type_ptr; -//typedef Boolean_type_ptr Boolean_type_var; -typedef class AggrTypeDescriptor* Aggr_type_ptr; -typedef Aggr_type_ptr Aggr_type_var; -typedef class SetTypeDescriptor* Set_type_ptr; -typedef Set_type_ptr Set_type_var; -typedef class BagTypeDescriptor* Bag_type_ptr; -typedef Bag_type_ptr Bag_type_var; -typedef class ListTypeDescriptor* List_type_ptr; -typedef List_type_ptr List_type_var; -typedef class ArrayTypeDescriptor* Array_type_ptr; -typedef Array_type_ptr Array_type_var; - -//#include - -// the following exist until everything is updated -typedef EntityDescriptor Entity; - -#endif diff --git a/source/geometry/solids/STEP/include/dirobj.h b/source/geometry/solids/STEP/include/dirobj.h deleted file mode 100644 index 68feb84b2b..0000000000 --- a/source/geometry/solids/STEP/include/dirobj.h +++ /dev/null @@ -1,225 +0,0 @@ - -#ifndef dirobj_h -#define dirobj_h - -/* -* NIST Utils Class Library -* clutils/dirobj.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: dirobj.h,v 1.6 2000/11/21 07:54:49 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - - -/* - * DirObj - This object contains a list of files in a directory. - * Can be used for interpreting a tilde, checking paths etc. - * based on InterViews FBDirectory - * Copyright (c) 1987, 1988, 1989 Stanford University from - * /depot/iv/src/libInterViews/filebrowser.c <= notice - * I commented it, changed variable and function names, added a - * few things, and made it so we can actually use it. - * David Sauder - */ - -//#include - -/////////////////////////////////////////////////////////////////////////////// -// -// These header files are a pain between compilers etc ... and -// I agree they are in a mess. You will have to CHECK them yourself -// depending on what you are using -- it works the way it is with g++ -// but you need -I/depot/gnu/lib/g++-include -// -/////////////////////////////////////////////////////////////////////////////// - -#include - - -//#include "/proj/pdevel/autoc/arch.sunCC.iv/scl_cf.h" -// This is an scl configuration file generated by the configure script -// generated using gnu's autoconf -#include - -#ifdef HAVE_UNISTD_H -// needed at least for getuid() -#include -#endif - -////extern _G_uid_t getuid _G_ARGS((void)); -//#ifdef HAVE_STAT_H -//#include -//#endif - -#ifdef HAVE_SYSENT_H -#include -#endif - -#ifdef WIN32 -# ifndef MAXNAMLEN -# define MAXNAMLEN 255 -# endif -#endif - -// sys/stat.h is apparently needed for ObjectCenter and Sun C++ ? -#ifdef HAVE_SYS_STAT_H -#include -#endif - -//#ifdef __GNUC__ -//#include // needed to declare getuid() with new GNU 2.3.3 -////extern _G_uid_t getuid _G_ARGS((void)); -//#include - -//#else -////#ifdef __OBJECTCENTER__ -////#ifdef __SUNCPLUSPLUS__ -////#ifdef __xlC__ -//#include -//#include -//#endif - -#ifndef WIN32 -# include -#endif -///#include -//#include - // the below is good for g++ - // if getting it from /usr/include change to __string_h -#ifndef _std_h -#include -#endif -#ifdef WIN32 -# ifndef MAXPATHLEN -# define MAXPATHLEN 1024 -# endif - typedef struct __dirstream DIR; -#else -# include -#endif -//#include -//#include - -#include - -typedef unsigned boolean; - -#ifndef nil -#define nil 0 -#endif - -/*****************************************************************************/ - -class DirObj { -public: - DirObj(const char* dirName); - virtual ~DirObj(); - - boolean LoadDirectory(const char*); - const char* Normalize(const char*); - const char* ValidDirectories(const char*); - - int Index(const char*); - const char* File(int index); - // check for file in the currently loaded directory - boolean FileExists(const char* file) { return Index(file) ? 1 : 0;}; - int Count(); - - boolean IsADirectory(const char*); -private: - const char* Home(const char* x = nil); - const char* ElimDot(const char*); - const char* ElimDotDot(const char*); - const char* InterpSlashSlash(const char*); - const char* InterpTilde(const char*); - const char* ExpandTilde(const char*, int); - const char* RealPath(const char*); - - boolean Reset(const char*); - void ClearFileList(); - void CheckIndex(int index); - void InsertFile(const char*, int index); - void AppendFile(const char*); - void RemoveFile(int index); - virtual int Position(const char*); -private: - char** fileList; - int fileCount; - int fileListSize; -}; - -//////////////////////////////// Count() ////////////////////////////////////// -// -// Return the number of files in the loaded directory. -// -/////////////////////////////////////////////////////////////////////////////// - -inline int DirObj::Count () { return fileCount; } - -//////////////////////////////// AppendFile() ///////////////////////////////// -// -// Insert a new file into the fileList. -// -/////////////////////////////////////////////////////////////////////////////// - -inline void DirObj::AppendFile (const char* s) { InsertFile(s, fileCount); } - -//////////////////////////////// File() /////////////////////////////////////// -// -// Return the file at the given index (starting at 0) in the fileList -// -/////////////////////////////////////////////////////////////////////////////// - -inline const char* DirObj::File (int index) { - return (0 <= index && index < fileCount) ? fileList[index] : nil; -} - -//////////////////////////////// strdup() ///////////////////////////////////// -// -// Duplicate a string. -// -/////////////////////////////////////////////////////////////////////////////// - -//inline char* strdup (const char* s) { -// char* dup = new char[strlen(s) + 1]; -// strcpy(dup, s); -// return dup; -//} - -//////////////////////////////// DotSlash() /////////////////////////////////// -// -// Return 1 if the first char in 'path' is '.' and second char is -// '/' or '\0'; otherwise return 0 -// -/////////////////////////////////////////////////////////////////////////////// - -inline boolean DotSlash (const char* path) { - return - path[0] != '\0' && path[0] == '.' && - (path[1] == '/' || path[1] == '\0'); -} - -//////////////////////////////// DotDotSlash() //////////////////////////////// -// -// Return 1 if the first char in 'path' is '.', the second char is '.', -// and the third char is '/' or '\0'; otherwise return 0 -// -/////////////////////////////////////////////////////////////////////////////// - -inline boolean DotDotSlash (const char* path) { - return - path[0] != '\0' && path[1] != '\0' && - path[0] == '.' && path[1] == '.' && - (path[2] == '/' || path[2] == '\0'); -} - -#endif diff --git a/source/geometry/solids/STEP/include/dispnode.h b/source/geometry/solids/STEP/include/dispnode.h deleted file mode 100644 index 02290f96ad..0000000000 --- a/source/geometry/solids/STEP/include/dispnode.h +++ /dev/null @@ -1,76 +0,0 @@ - -#ifndef dispnode_h -#define dispnode_h - -/* -* NIST STEP Editor Class Library -* cleditor/dispnode.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: dispnode.h,v 1.3 2000/01/21 13:42:39 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -/*#include */ -/*#include */ -#include - -#include -#include -//#include -#include -//#include -class MgrNode; - -////////////////////////////////////////////////////////////////////////////// -// class DisplayNode -////////////////////////////////////////////////////////////////////////////// - -class DisplayNode : public GenericNode -{ -protected: - friend class GenNodeList; - friend class DisplayNodeList; - - MgrNode *mn; - void *see; - displayStateEnum displayState; // = { mappedWrite, mappedView, notMapped } - -public: - // this should probably only be used to create head nodes for dispnodelists - DisplayNode() { displayState = noMapState; } - DisplayNode(MgrNode *node) { mn = node; displayState = noMapState; } - ~DisplayNode(); - - void SEE(void *s) { see = s; } - virtual void *SEE() { return see; }; - - void mgrNode(MgrNode *node) { mn = node; } - class MgrNode *mgrNode() { return mn; } - - displayStateEnum DisplayState() { return displayState; } - int DisplayListMember(displayStateEnum ds) { return (displayState == ds); } - - int ChangeState(displayStateEnum s); - int ChangeList(DisplayNodeList *cmdList); - - void Remove(); - -protected: -}; - -////////////////////////////////////////////////////////////////////////////// -// class DisplayNode inline functions -// these functions don't rely on any inline functions (its own or -// other classes) that aren't in this file except for Generic functions -////////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/source/geometry/solids/STEP/include/dispnodelist.h b/source/geometry/solids/STEP/include/dispnodelist.h deleted file mode 100644 index d718fc03eb..0000000000 --- a/source/geometry/solids/STEP/include/dispnodelist.h +++ /dev/null @@ -1,70 +0,0 @@ - -#ifndef dispnodelist_h -#define dispnodelist_h - -/* -* NIST STEP Editor Class Library -* cleditor/dispnodelist.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: dispnodelist.h,v 1.3 2000/01/21 13:42:39 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -#include -//#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////////// -// class DisplayNodeList -// This will be used to represent the display state lists. -////////////////////////////////////////////////////////////////////////////// - -class DisplayNodeList : public GenNodeList -{ -public: - DisplayNodeList(displayStateEnum type); - ~DisplayNodeList() { } - -// ADDED functions - displayStateEnum GetState() { return listType; } - -// REDEFINED functions - // deletes node from its previous list & appends - virtual void Append(GenericNode *node); - // deletes newNode from its previous list & inserts in - // relation to existNode - virtual void InsertAfter(GenericNode *newNode, GenericNode *existNode); - virtual void InsertBefore(GenericNode *newNode, GenericNode *existNode); - virtual void Remove(GenericNode *node); - -protected: -private: - displayStateEnum listType; -}; - -////////////////////////////////////////////////////////////////////////////// -// class DisplayNodeList inline functions -// these functions don't rely on any inline functions (its own or -// other classes) that aren't in this file except for Generic functions -////////////////////////////////////////////////////////////////////////////// - -inline DisplayNodeList::DisplayNodeList(displayStateEnum type) - : GenNodeList(new DisplayNode()) -{ - listType = type; - ((DisplayNode *)head)->displayState = type; -} - -#endif diff --git a/source/geometry/solids/STEP/include/editordefines.h b/source/geometry/solids/STEP/include/editordefines.h deleted file mode 100644 index 6010334ea4..0000000000 --- a/source/geometry/solids/STEP/include/editordefines.h +++ /dev/null @@ -1,57 +0,0 @@ - -#ifndef editordefines_h -#define editordefines_h - -/* -* NIST STEP Editor Class Library -* cleditor/editordefines.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: editordefines.h,v 1.3 2000/01/21 13:42:39 gcosmo Exp $ */ - -class GenericNode; -class GenNodeList; - -class MgrNode; -class MgrNodeList; - -class DisplayNode; -class DisplayNodeList; - -////////////////////////////////////////////////////////////////////////////// - -enum displayStateEnum { - mappedWrite, // has a writable SEE on the screen - mappedView, // has a view only SEE on the screen - notMapped, - noMapState - } ; - -////////////////////////////////////////////////////////////////////////////// - -enum stateEnum { - noStateSE, // state undefined, not on a list - completeSE, // on saved complete list - incompleteSE, // on saved incomplete list - deleteSE, // on delete list - newSE // on newly created list - } ; - -/* - these variable are used by the STEPfile for reading and writing - files in working session format. - None of these variable should be set to 'E' as it will disrupt - the way the read function finds the "ENDSEC;" token. -*/ -static const char wsSaveComplete = 'C'; -static const char wsSaveIncomplete = 'I'; -static const char wsDelete = 'D'; -static const char wsNew = 'N'; - -#endif diff --git a/source/geometry/solids/STEP/include/errordesc.h b/source/geometry/solids/STEP/include/errordesc.h deleted file mode 100644 index 2db97a5cf7..0000000000 --- a/source/geometry/solids/STEP/include/errordesc.h +++ /dev/null @@ -1,147 +0,0 @@ - -#ifndef ERRORDESC_H -#define ERRORDESC_H - -/* -* NIST Utils Class Library -* clutils/errordesc.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: errordesc.h,v 1.5 2003/06/06 17:07:31 gcosmo Exp $ */ - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -#include -#include - -typedef enum Severity { - SEVERITY_MAX = -5, - SEVERITY_DUMP = -4, - SEVERITY_EXIT = -3, // fatal - SEVERITY_BUG = -2, // non-recoverable error -- probably bug - SEVERITY_INPUT_ERROR = -1, // non-recoverable error - SEVERITY_WARNING = 0, // recoverable error - SEVERITY_INCOMPLETE = 1, // incomplete data - SEVERITY_USERMSG = 2, // possibly an error - SEVERITY_NULL = 3 // no error or message - } Severity; - -/* DAS not used -enum Enforcement { - ENFORCE_OFF, - ENFORCE_OPTIONALITY, - ENFORCE_ALL - - } ; -*/ - -enum DebugLevel { - DEBUG_OFF =0, - DEBUG_USR =1, - DEBUG_ALL =2 - -}; - -/****************************************************************** - ** Class: ErrorDescriptor - ** Data Members: - ** severity level of error - ** user message - ** detailed message - ** Description: - ** the error is a detailed error message + a severity level - ** also keeps a user message separately - ** detailed message gets sent to std::ostream - ** uses SCLstring class to keep the user messages - ** keeps severity of error - ** created with or without error - ** Status: - ******************************************************************/ - -class ErrorDescriptor { -// friend std::istream &operator<< ( std::istream&, ErrorDescriptor& ); - protected: - - Severity _severity; - - static DebugLevel _debug_level; - static std::ostream* _out; // note this will not be persistent - - SCLstring *_userMsg; - SCLstring *_detailMsg; - public: - - ErrorDescriptor (Severity s = SEVERITY_NULL, - DebugLevel d = DEBUG_OFF); - ~ErrorDescriptor () { delete _userMsg; delete _detailMsg; } - - void PrintContents(std::ostream &out = G4cout) const; - - void ClearErrorMsg() { - _severity = SEVERITY_NULL; - delete _userMsg; _userMsg = 0; - delete _detailMsg; _detailMsg = 0; - } - - // return the enum value of _severity - Severity severity() const { return _severity; } - // return _severity as a const char * in the SCLstring provided - const char * severity(SCLstring &s) const; - Severity severity(Severity s) { return (_severity = s); } - Severity GetCorrSeverity(const char *s); - Severity GreaterSeverity(Severity s) - { return ((s < _severity) ? _severity = s : _severity); } - - const char * UserMsg () const; // UserMsg is from String - void UserMsg ( const char *); - void AppendToUserMsg ( const char *); - void PrependToUserMsg ( const char *); - void AppendToUserMsg ( const char c); - - const char * DetailMsg () const; - void DetailMsg ( const char *); - void AppendToDetailMsg ( const char *); - void PrependToDetailMsg ( const char *); - void AppendToDetailMsg ( const char c); - - Severity AppendFromErrorArg(ErrorDescriptor *err) - { - GreaterSeverity( err->severity() ); - AppendToDetailMsg( err->DetailMsg() ); - AppendToUserMsg( err->UserMsg() ); - return severity(); - } - - DebugLevel debug_level() const { return _debug_level; } - void debug_level(DebugLevel d) { _debug_level = d; } - void SetOutput(std::ostream *o) { _out = o; } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - - // void operator = (const char* y) { SCLstring::operator = (y); } - -/* -// Enforcement _enforcement_level; - ErrorDescriptor (Severity s = SEVERITY_NULL, - Enforcement e = ENFORCE_OFF, - DebugLevel d = DEBUG_OFF); - Enforcement enforcement() const { return _enforcement_level; } - void enforcement(Enforcement e) { _enforcement_level = e; } -*/ -} ; - -#endif diff --git a/source/geometry/solids/STEP/include/gennode.h b/source/geometry/solids/STEP/include/gennode.h deleted file mode 100644 index 5e30bebb49..0000000000 --- a/source/geometry/solids/STEP/include/gennode.h +++ /dev/null @@ -1,82 +0,0 @@ - -#ifndef gennode_h -#define gennode_h - -/* -* NIST Utils Class Library -* clutils/gennode.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: gennode.h,v 1.4 2000/01/21 13:42:39 gcosmo Exp $ */ - -/* -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif -*/ - -#ifdef __O3DB__ -#include -#endif - -#include "G4ios.hh" - -class GenNodeList; -class MgrNodeList; -class DisplayNodeList; - -////////////////////////////////////////////////////////////////////////////// -// GenericNode -// If you delete this object it first removes itself from any list it is in. -////////////////////////////////////////////////////////////////////////////// - -class GenericNode -{ -friend class GenNodeList; -friend class MgrNodeList; -friend class DisplayNodeList; - -protected: - GenericNode *next; - GenericNode *prev; -public: - GenericNode(); - virtual ~GenericNode(); - - GenericNode *Next() { return next; } - GenericNode *Prev() { return prev; } - virtual void Append(GenNodeList *list); - virtual void Remove() - { - (next) ? (next->prev = prev) : 0; - (prev) ? (prev->next = next) : 0; -/* -// if(next) -// next->prev = prev; -// if(prev) -// prev->next = next; -*/ - next = 0; - prev = 0; - - } -/* -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -*/ -}; - -////////////////////////////////////////////////////////////////////////////// -// GenericNode inline functions -// these functions don't rely on any inline functions (its own or -// other classes) that aren't in this file -////////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/source/geometry/solids/STEP/include/gennodearray.h b/source/geometry/solids/STEP/include/gennodearray.h deleted file mode 100644 index b6149d4994..0000000000 --- a/source/geometry/solids/STEP/include/gennodearray.h +++ /dev/null @@ -1,102 +0,0 @@ - -#ifndef gennodearray_h -#define gennodearray_h - -/* -* NIST Utils Class Library -* clutils/gennode.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: gennodearray.h,v 1.3 2000/01/21 13:42:39 gcosmo Exp $ */ - -/* - * GenNodeArray - dynamic array object of GenericNodes. - * the array part of this is copied from Unidraws UArray - dynamic array object - * Copyright (c) 1990 Stanford University - */ - -/* -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif -*/ - -#ifdef __O3DB__ -#include -#endif - -#include -#include -#include // to get bcopy for CenterLine - -#include - - // the initial size of the array -#define ARRAY_DEFAULT_SIZE (1024) - -////////////////////////////////////////////////////////////////////////////// -// GenNodeArray -// If you delete this object, it does not delete the entries it points to. -// If you want it to delete the entries it points to you need to call -// DeleteEntries(). -////////////////////////////////////////////////////////////////////////////// - -class GenNodeArray -{ -public: - -//#ifdef __OSTORE__ -// GenNodeArray (os_database *db, int defaultSize = ARRAY_DEFAULT_SIZE); -//#else - GenNodeArray(int defaultSize = ARRAY_DEFAULT_SIZE); -//#endif - virtual ~GenNodeArray(); - - GenericNode*& operator[](int index); - virtual int Index(GenericNode* gn); - virtual int Index(GenericNode** gn); - - int Count(); - - virtual void Append(GenericNode* gn); - virtual int Insert(GenericNode* gn); - virtual int Insert(GenericNode* gn, int index); - virtual void Remove(int index); - virtual void ClearEntries(); - virtual void DeleteEntries(); - -/* -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -*/ -protected: - virtual void Check(int index); - - GenericNode** _buf; // the array - int _bufsize; // the possible number of entries in the array - int _count; // the number of entries in the array -}; - -////////////////////////////////////////////////////////////////////////////// -// class GenNodeArray inline public functions -////////////////////////////////////////////////////////////////////////////// - -inline GenericNode*& GenNodeArray::operator[] (int index) -{ - Check(index); - return _buf[index]; -} - -inline int GenNodeArray::Count () -{ - return _count; -} - -#endif diff --git a/source/geometry/solids/STEP/include/gennodelist.h b/source/geometry/solids/STEP/include/gennodelist.h deleted file mode 100644 index 8a7dfeee5d..0000000000 --- a/source/geometry/solids/STEP/include/gennodelist.h +++ /dev/null @@ -1,67 +0,0 @@ - -#ifndef gennodelist_h -#define gennodelist_h - -/* -* NIST Utils Class Library -* clutils/gennodelist.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: gennodelist.h,v 1.4 2000/01/21 13:42:39 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -#include "G4ios.hh" - -////////////////////////////////////////////////////////////////////////////// -// class GenNodeList -// this class implements a doubly linked list by default. -// If you delete this object it does not delete all of its entries, -// only its head. If you want it to delete all of its entries as well -// as its head, you need to call DeleteEntries(). -////////////////////////////////////////////////////////////////////////////// - -class GenNodeList { -public: - GenNodeList(GenericNode *headNode); - virtual ~GenNodeList() { delete head; } - - GenericNode *GetHead() { return head; } - - virtual void ClearEntries(); - virtual void DeleteEntries(); - // deletes node from its previous list & appends - virtual void Append(GenericNode *node); - // deletes newNode from its previous list & inserts in - // relation to existNode - virtual void InsertAfter(GenericNode *newNode, GenericNode *existNode); - virtual void InsertBefore(GenericNode *newNode, GenericNode *existNode); - - virtual void Remove(GenericNode *node); - -protected: - GenericNode *head; -}; - -////////////////////////////////////////////////////////////////////////////// -// class GenNodeList inline functions -// these functions don't rely on any inline functions (its own or -// other classes) that aren't in this file -////////////////////////////////////////////////////////////////////////////// - -inline GenNodeList::GenNodeList(GenericNode *headNode) -{ - head = headNode; - head->next = head; - head->prev = head; -} - -#endif diff --git a/source/geometry/solids/STEP/include/instmgr.h b/source/geometry/solids/STEP/include/instmgr.h deleted file mode 100644 index 061dc8700d..0000000000 --- a/source/geometry/solids/STEP/include/instmgr.h +++ /dev/null @@ -1,133 +0,0 @@ - -#ifndef instmgr_h -#define instmgr_h - -/* -* NIST STEP Editor Class Library -* cleditor/instmgr.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: instmgr.h,v 1.3 2000/01/21 13:42:40 gcosmo Exp $ */ - -///// future? //////////////// -// InstMgr can maintain an undo list for the last operation -// performed on a node -// InstMgr can have a startUndo() and endUndo() so it knows when to -// start a new undo list and delete the old undo list. -///////////////////// - -/* -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif -*/ - -#ifdef __O3DB__ -#include -#endif - -typedef unsigned boolean; -extern char * EntityClassName ( char *); - -// IT IS VERY IMPORTANT THAT THE ORDER OF THE FOLLOWING INCLUDE FILES -// BE PRESERVED - -#include -#include -//#include -#include - -#include -#include - -#include -#include - -#include - -class InstMgr -{ -protected: - int maxFileId; - int _ownsInstances; // if true will delete instances inside destructor - - MgrNodeArray *master; // master array of all MgrNodes made up of - // complete, incomplete, new, delete MgrNodes lists - // this corresponds to the display list object by index - MgrNodeArraySorted *sortedMaster; // master array sorted by fileId -// StateList *master; // this will be an sorted array of ptrs to MgrNodes - -public: - InstMgr(int ownsInstances = 0); - virtual ~InstMgr(); - -// MASTER LIST OPERATIONS - int InstanceCount() { return master->Count(); } - - int OwnsInstances() { return _ownsInstances; } - void OwnsInstances(int ownsInstances) { _ownsInstances = ownsInstances; } - - void ClearInstances(); //clears instance lists but doesn't delete instances - void DeleteInstances(); // deletes the instances (ignores _ownsInstances) - - Severity VerifyInstances(ErrorDescriptor& e); - - // DAS PORT possible BUG two funct's below may create a temp for the cast - MgrNode * GetMgrNode(int index) - { return (MgrNode *) *GetGenNode (index); } - GenericNode** GetGenNode(int index) - { return &(*master) [index]; } - - MgrNode *FindFileId(int fileId); - // get the index into display list given a SCLP23(Application_instance) - // called by see initiated functions - int GetIndex(SCLP23(Application_instance) *se); - int GetIndex(MgrNode *mn); - int VerifyEntity(int fileId, const char *expectedType); - -// void Append(MgrNode *node); - MgrNode *Append(SCLP23(Application_instance) *se, stateEnum listState); - // deletes node from master list structure - void Delete(MgrNode *node); - void Delete(SCLP23(Application_instance) *se); - - void ChangeState(MgrNode *node, stateEnum listState); - - int MaxFileId() { return maxFileId; } - int NextFileId() { return maxFileId = maxFileId +1; } - int EntityKeywordCount(const char* name); - - SCLP23(Application_instance) *GetApplication_instance(int index); - SCLP23(Application_instance) * - GetApplication_instance(const char* entityKeyword, - int starting_index =0); - SCLP23(Application_instance) *GetApplication_instance(MgrNode *node) - { return node->GetApplication_instance(); }; - - void *GetSEE(int index); - void *GetSEE(MgrNode *node) { return node->SEE(); }; - - void PrintSortedFileIds(); - -/* -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -*/ - - // OBSOLETE - SCLP23(Application_instance) *GetSTEPentity(int index); - SCLP23(Application_instance) *GetSTEPentity(const char* entityKeyword, - int starting_index =0); - SCLP23(Application_instance) *GetSTEPentity(MgrNode *node) - { return node->GetApplication_instance(); }; - -}; - -#endif diff --git a/source/geometry/solids/STEP/include/mgrnode.h b/source/geometry/solids/STEP/include/mgrnode.h deleted file mode 100644 index c9a3c49dae..0000000000 --- a/source/geometry/solids/STEP/include/mgrnode.h +++ /dev/null @@ -1,147 +0,0 @@ -#ifndef mgrnode_h -#define mgrnode_h - -/* -* NIST STEP Editor Class Library -* cleditor/mgrnode.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: mgrnode.h,v 1.3 2000/01/21 13:42:40 gcosmo Exp $ */ - -/* -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif -*/ - -#ifdef __O3DB__ -#include -#endif - -class GenericNode; -class DisplayNode; -#include -//class SCLP23(Application_instance); - -#include -#include -//#include - -#include - -class InstMgr; - -////////////////////////////////////////////////////////////////////////////// -// class MgrNode -// If you delete this object, it deletes the SCLP23(Application_instance) it represents, -// the DisplayNode, and removes itself from any list it is in. -////////////////////////////////////////////////////////////////////////////// - -class MgrNode : public GenericNode -{ - friend class GenNodeList; - friend class MgrNodeList; - friend class InstMgr; - -protected: - // currState, next, prev implement several lists - // based on currState: - // currState = (completeSE, incompleteSE, newSE, or deleteSE) - // every node will be on one of the four lists implemented by these: - stateEnum currState; - - // SCLP23(Application_instance) this node is representing info for - SCLP23(Application_instance) *se; - // this is the index (in the InstMgr master array) of the ptr to - // this node. - int arrayIndex; - - // display info (SEE, etc) for this node - DisplayNode *di; - -public: - // used for sentinel node on lists of MgrNodes - MgrNode(); - MgrNode(SCLP23(Application_instance) *se); - // 'listState' == - // completeSE - if reading valid exchange file - // incompleteSE or completeSE - if reading working session file - // newSE - if instance is created by user using editor (probe) - MgrNode(SCLP23(Application_instance) *se, stateEnum listState); - MgrNode(SCLP23(Application_instance) *se, stateEnum listState, MgrNodeList *list); - virtual ~MgrNode(); - -// STATE LIST OPERATIONS - int MgrNodeListMember(stateEnum s) { return (currState == s); } - stateEnum CurrState() { return currState; } - // returns next or prev member variables - // i.e. next or previous node on curr state list - // searches current list for fileId - MgrNode *StateFindFileId(int fileId); - - // deletes from previous cmd list, - // & puts on cmd list cmdList - int ChangeList(MgrNodeList *cmdList); - int ChangeState(stateEnum s); - - // Removes from current list. - // Called before adding to diff list or when destructor is called. - void Remove(); - -// DISPLAY LIST OPERATIONS - void *SEE(); - - displayStateEnum DisplayState(); - int IsDisplayState(displayStateEnum ds); - - // returns next or prev member variables - // i.e. next or previous node on display state list - GenericNode *NextDisplay(); - GenericNode *PrevDisplay(); - - // deletes from previous cmd list, - // & puts on cmd list cmdList - int ChangeList(DisplayNodeList *cmdList); - // deletes from previous display list, assigns ds to - // displayState & puts on list dsList - int ChangeState(displayStateEnum ds); - -// might not want these three? since it won't actually map them? - void MapModifiable(DisplayNodeList *dnList); - void MapViewable(DisplayNodeList *dnList); - void UnMap(DisplayNodeList *dnList); - -// ACCESS FUNCTIONS - int GetFileId(); - SCLP23(Application_instance) *GetApplication_instance() { return se; } - DisplayNode *&displayNode() { return di; } - int ArrayIndex() { return arrayIndex; } - void ArrayIndex(int index) { arrayIndex = index; } - -/* -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -*/ - - // OBSOLETE - SCLP23(Application_instance) *GetSTEPentity() { return se; } -protected: - -private: - void Init(SCLP23(Application_instance) *s, stateEnum listState, MgrNodeList *list); -}; - -////////////////////////////////////////////////////////////////////////////// -// class MgrNode inline functions -// these functions don't rely on any inline functions (its own or -// other classes) that aren't in this file except for Generic functions -////////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/source/geometry/solids/STEP/include/mgrnodearray.h b/source/geometry/solids/STEP/include/mgrnodearray.h deleted file mode 100644 index 43e292ab11..0000000000 --- a/source/geometry/solids/STEP/include/mgrnodearray.h +++ /dev/null @@ -1,125 +0,0 @@ - -#ifndef mgrnodearray_h -#define mgrnodearray_h - -/* -* NIST STEP Editor Class Library -* cleditor/mgrnodearray.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: mgrnodearray.h,v 1.4 2000/01/21 13:42:40 gcosmo Exp $ */ - -/* -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif -*/ - -#ifdef __O3DB__ -#include -#endif - -#include - -#include -#include -//#include - -#include -#include - -#include - -#define ARRAY_DEFAULT_SIZE (1024) - -////////////////////////////////////////////////////////////////////////////// -// class MgrNodeArray -// This class implements the array of MgrNodes representing the -// master list for the seInstMgr which will have a one to one -// mapping by index to the display list of corresponding STEPentities. -// If you delete this object it deletes all of the entries it points to. -////////////////////////////////////////////////////////////////////////////// - -class MgrNodeArray : public GenNodeArray -{ -public: -//#ifdef __OSTORE__ -// MgrNodeArray(os_database *db, int defaultSize = ARRAY_DEFAULT_SIZE); -//#else - MgrNodeArray(int defaultSize = ARRAY_DEFAULT_SIZE); -//#endif - ~MgrNodeArray(); - -// REDEFINED functions - // need to redefine Append() & Insert(GenericNode *) so they call - // MgrNodeArray::Insert(GenericNode *, int index); - virtual int Insert(GenericNode* gn, int index); - virtual void Append(GenericNode* gn) { Insert(gn, _count); } - virtual int Insert(GenericNode* gn) { return Insert(gn, _count); } - virtual void Remove(int index); - virtual void ClearEntries(); - virtual void DeleteEntries(); - -// ADDED functions - virtual int MgrNodeIndex(int fileId); - void AssignIndexAddress(int index); -/* -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -*/ -}; - -////////////////////////////////////////////////////////////////////////////// -// class MgrNodeArraySorted -// This class implements the array of MgrNodes representing the -// sorted master list for the seInstMgr. This list is sorted by -// STEPentity::fileId. -// If you delete this object it won't delete the entries it points to. -////////////////////////////////////////////////////////////////////////////// - -class MgrNodeArraySorted : public GenNodeArray { -public: -//#ifdef __OSTORE__ -// MgrNodeArraySorted(os_database *db, int defaultSize = ARRAY_DEFAULT_SIZE); -//#else - MgrNodeArraySorted(int defaultSize = ARRAY_DEFAULT_SIZE); -//#endif - ~MgrNodeArraySorted() { } - -// REDEFINED functions - virtual int Index(GenericNode* gn); - virtual int Index(GenericNode** gn); - - virtual int Insert(GenericNode* gn); - virtual int Insert(GenericNode* gn, int index) - { G4cerr << - "Call MgrNodeArraySorted::Insert() without index argument instead.\n" - << "index argument: " << index << " being ignored.\n"; - return Insert(gn); } - virtual void Append(GenericNode* gn) { Insert(gn); } - virtual void ClearEntries(); - virtual void DeleteEntries(); - -// ADDED functions - virtual int MgrNodeIndex(int fileId); - int FindInsertPosition (const int fileId); -/* -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -*/ -}; - - -////////////////////////////////////////////////////////////////////////////// -// class MgrNodeArray inline public functions -////////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/source/geometry/solids/STEP/include/mgrnodelist.h b/source/geometry/solids/STEP/include/mgrnodelist.h deleted file mode 100644 index 0a34f3b124..0000000000 --- a/source/geometry/solids/STEP/include/mgrnodelist.h +++ /dev/null @@ -1,62 +0,0 @@ - -#ifndef mgrnodelist_h -#define mgrnodelist_h - -/* -* NIST STEP Editor Class Library -* cleditor/mgrnodelist.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: mgrnodelist.h,v 1.3 2000/01/21 13:42:40 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -#include -//#include -#include -#include - -////////////////////////////////////////////////////////////////////////////// -// class MgrNodeList -// This will be used to represent the state lists. -////////////////////////////////////////////////////////////////////////////// - -class MgrNode; - -class MgrNodeList : public GenNodeList -{ -public: - MgrNodeList(stateEnum type); - virtual ~MgrNodeList() { } - -// ADDED functions - virtual MgrNode *FindFileId(int fileId); - -// REDEFINED functions - // deletes node from its previous list & appends - virtual void Append(GenericNode *node); - // deletes newNode from its previous list & inserts in - // relation to existNode - virtual void InsertAfter(GenericNode *newNode, GenericNode *existNode); - virtual void InsertBefore(GenericNode *newNode, GenericNode *existNode); - virtual void Remove(GenericNode *node); - -protected: - stateEnum listType; -}; - -////////////////////////////////////////////////////////////////////////////// -// class MgrNodeList inline functions -// these functions don't rely on any inline functions (its own or -// other classes) that aren't in this file except for Generic functions -////////////////////////////////////////////////////////////////////////////// - -#endif diff --git a/source/geometry/solids/STEP/include/read_func.h b/source/geometry/solids/STEP/include/read_func.h deleted file mode 100644 index cc92c2be71..0000000000 --- a/source/geometry/solids/STEP/include/read_func.h +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef READ_FUNC_H -#define READ_FUNC_H - -#include - -#define MAX_COMMENT_LENGTH 512 - -// print Error information for debugging purposes -extern void PrintErrorState(ErrorDescriptor &err); - -// print std::istream error information for debugging purposes -extern void IStreamState(std::istream &in); - -extern int -ReadInteger(SCLP23(Integer) &val, std::istream &in, ErrorDescriptor *err, - char *tokenList); - -extern int -ReadInteger(SCLP23(Integer) &val, const char *s, ErrorDescriptor *err, - char *tokenList); - -extern Severity -IntValidLevel (const char *attrValue, ErrorDescriptor *err, - int clearError, int optional, char *tokenList); - -extern char * -WriteReal(SCLP23(Real) val, SCLstring &s); - -extern void -WriteReal(SCLP23(Real) val, std::ostream &out); - -extern int -ReadReal(SCLP23(Real) &val, std::istream &in, ErrorDescriptor *err, - char *tokenList); - -extern int -ReadReal(SCLP23(Real) &val, const char *s, ErrorDescriptor *err, - char *tokenList); - -extern Severity -RealValidLevel (const char *attrValue, ErrorDescriptor *err, - int clearError, int optional, char *tokenList); - -extern int -ReadNumber(SCLP23(Real) &val, std::istream &in, ErrorDescriptor *err, - char *tokenList); - -extern int -ReadNumber(SCLP23(Real) &val, const char *s, ErrorDescriptor *err, - char *tokenList); - -extern Severity -NumberValidLevel (const char *attrValue, ErrorDescriptor *err, - int clearError, int optional, char *tokenList); - - -//////////////////// - -extern int QuoteInString(std::istream& in); - -extern void -PushPastString (std::istream& in, SCLstring &s, ErrorDescriptor *err); - -extern void -PushPastImbedAggr (std::istream& in, SCLstring &s, ErrorDescriptor *err); - -extern void -PushPastAggr1Dim(std::istream& in, SCLstring &s, ErrorDescriptor *err); - -//////////////////// - -extern Severity -FindStartOfInstance(std::istream& in, SCLstring& inst); - - // used for instances that aren\'t valid - reads to next \';\' -extern Severity -SkipInstance (std::istream& in, SCLstring & inst); - -extern const char * -SkipSimpleRecord(std::istream &in, SCLstring &buf, ErrorDescriptor *err); - - // this includes entity names -extern const char * -ReadStdKeyword(std::istream& in, SCLstring &buf, int skipInitWS = 1); - -extern const char* -GetKeyword(std::istream& in, const char* delims, ErrorDescriptor &err); - -extern int -FoundEndSecKywd(std::istream& in, ErrorDescriptor &err); - -extern const char *ReadComment(SCLstring &ss, const char *s); - -extern const char *ReadComment(std::istream& in, SCLstring &s); - -extern Severity ReadPcd(std::istream& in); //print control directive - -extern void ReadTokenSeparator(std::istream& in, SCLstring *comments = 0); - -#endif diff --git a/source/geometry/solids/STEP/include/s_HEADER_SCHEMA.h b/source/geometry/solids/STEP/include/s_HEADER_SCHEMA.h deleted file mode 100644 index acc0d1eebd..0000000000 --- a/source/geometry/solids/STEP/include/s_HEADER_SCHEMA.h +++ /dev/null @@ -1,277 +0,0 @@ -#ifndef S_HEADER_SCHEMA_H -#define S_HEADER_SCHEMA_H - -/* -* NIST STEP Editor Class Library -* cleditor/s_HEADER_SCHEMA.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. - -/* $Id: s_HEADER_SCHEMA.h,v 1.3 2000/01/21 13:42:40 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif -#include -#include -#include -//#include - -/* ************** TYPES */ -extern TypeDescriptor *HEADER_SCHEMAt_SCHEMA_NAME; -typedef SCLP23(String) p21DIS_Schema_name; - -/* ************** ENTITIES */ -extern EntityDescriptor *HEADER_SCHEMAe_FILE_IDENTIFICATION; -extern AttrDescriptor *a_0FILE_NAME; -extern AttrDescriptor *a_1DATE; -extern AttrDescriptor *a_2AUTHOR; -extern AttrDescriptor *a_3ORGANIZATION; -extern AttrDescriptor *a_4PREPROCESSOR_VERSION; -extern AttrDescriptor *a_5ORIGINATING_SYSTEM; - -class s_N279_file_identification : public SCLP23(Application_instance) { - protected: - SCLP23(String) _file_name ; - SCLP23(String) _date ; - StringAggregate _author ; - StringAggregate _organization ; - SCLP23(String) _preprocessor_version ; - SCLP23(String) _originating_system ; - public: - - s_N279_file_identification ( ); - s_N279_file_identification (s_N279_file_identification& e ); - ~s_N279_file_identification (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("File_Identification"); } - int opcode () { return 0 ; } - const SCLP23(String) & file_name() const; - void file_name (const char * x); - const SCLP23(String) & date() const; - void date (const char * x); - StringAggregate & author(); - void author (StringAggregate & x); - StringAggregate & organization(); - void organization (StringAggregate & x); - const SCLP23(String) & preprocessor_version() const; - void preprocessor_version (const char * x); - const SCLP23(String) & originating_system() const; - void originating_system (const char * x); -}; -inline SCLP23(Application_instance) * -create_s_N279_file_identification () { return (SCLP23(Application_instance)*) new s_N279_file_identification ; } -extern EntityDescriptor *HEADER_SCHEMAe_IMP_LEVEL; -extern AttrDescriptor *a_6IMPLEMENTATION_LEVEL; - -class s_N279_imp_level : public SCLP23(Application_instance) { - protected: - SCLP23(String) _implementation_level ; - public: - - s_N279_imp_level ( ); - s_N279_imp_level (s_N279_imp_level& e ); - ~s_N279_imp_level (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("Imp_Level"); } - int opcode () { return 1 ; } - const SCLP23(String) & implementation_level() const; - void implementation_level (const char * x); -}; -inline SCLP23(Application_instance) * -create_s_N279_imp_level () { return (SCLP23(Application_instance)*) new s_N279_imp_level ; } -extern EntityDescriptor *HEADER_SCHEMAe_FILE_NAME; -extern AttrDescriptor *a_7NAME; -extern AttrDescriptor *a_8TIME_STAMP; -extern AttrDescriptor *a_9AUTHOR; -extern AttrDescriptor *a_10ORGANIZATION; -extern AttrDescriptor *a_11STEP_VERSION; -extern AttrDescriptor *a_12PREPROCESSOR_VERSION; -extern AttrDescriptor *a_13ORIGINATING_SYSTEM; -extern AttrDescriptor *a_14AUTHORISATION; - -class p21DIS_File_name : public SCLP23(Application_instance) { - protected: - SCLP23(String) _name ; - SCLP23(String) _time_stamp ; - StringAggregate _author ; - StringAggregate _organization ; -// SCLP23(String) _step_version ; - SCLP23(String) _preprocessor_version ; - SCLP23(String) _originating_system ; - SCLP23(String) _authorisation ; - public: - - p21DIS_File_name ( ); - p21DIS_File_name (p21DIS_File_name& e ); - ~p21DIS_File_name (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("File_Name"); } - int opcode () { return 2 ; } - const SCLP23(String) & name() const; - void name (const char * x); - const SCLP23(String) & time_stamp() const; - void time_stamp (const char * x); - StringAggregate & author(); - void author (StringAggregate & x); - StringAggregate & organization(); - void organization (StringAggregate & x); -// const SCLP23(String) & step_version() const; -// void step_version (const char * x); - const SCLP23(String) & preprocessor_version() const; - void preprocessor_version (const char * x); - const SCLP23(String) & originating_system() const; - void originating_system (const char * x); - const SCLP23(String) & authorisation() const; - void authorisation (const char * x); -}; -inline SCLP23(Application_instance) * -create_p21DIS_File_name () { return (SCLP23(Application_instance)*) new p21DIS_File_name ; } -extern EntityDescriptor *HEADER_SCHEMAe_FILE_DESCRIPTION; -extern AttrDescriptor *a_15DESCRIPTION; -extern AttrDescriptor *a_16IMPLEMENTATION_LEVEL; - -class p21DIS_File_description : public SCLP23(Application_instance) { - protected: - StringAggregate _description ; - SCLP23(String) _implementation_level ; - public: - - p21DIS_File_description ( ); - p21DIS_File_description (p21DIS_File_description& e ); - ~p21DIS_File_description (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("File_Description"); } - int opcode () { return 3 ; } - StringAggregate & description(); - void description (StringAggregate & x); - const SCLP23(String) & implementation_level() const; - void implementation_level (const char * x); -}; -inline SCLP23(Application_instance) * -create_p21DIS_File_description () { return (SCLP23(Application_instance)*) new p21DIS_File_description ; } -extern EntityDescriptor *HEADER_SCHEMAe_S_CLASSIFICATION; -extern AttrDescriptor *a_17SECURITY_CLASSIFICATION; - -class s_N279_classification : public SCLP23(Application_instance) { - protected: - SCLP23(String) _security_classification ; - public: - - s_N279_classification ( ); - s_N279_classification (s_N279_classification& e ); - ~s_N279_classification (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("S_Classification"); } - int opcode () { return 4 ; } - const SCLP23(String) & security_classification() const; - void security_classification (const char * x); -}; -inline SCLP23(Application_instance) * -create_s_N279_classification () { return (SCLP23(Application_instance)*) new s_N279_classification ; } -extern EntityDescriptor *HEADER_SCHEMAe_S_FILE_DESCRIPTION; -extern AttrDescriptor *a_18DESCRIPTION; - -class s_N279_file_description : public SCLP23(Application_instance) { - protected: - SCLP23(String) _description ; - public: - - s_N279_file_description ( ); - s_N279_file_description (s_N279_file_description& e ); - ~s_N279_file_description (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("S_File_Description"); } - int opcode () { return 5 ; } - const SCLP23(String) & description() const; - void description (const char * x); -}; -inline SCLP23(Application_instance) * -create_s_N279_file_description () { return (SCLP23(Application_instance)*) new s_N279_file_description ; } -extern EntityDescriptor *HEADER_SCHEMAe_MAXSIG; -extern AttrDescriptor *a_19MAXIMUM_SIGNIFICANT_DIGIT; - -class p21DIS_Maxsig : public SCLP23(Application_instance) { - protected: - SCLP23(Integer) _maximum_significant_digit ; - public: - - p21DIS_Maxsig ( ); - p21DIS_Maxsig (p21DIS_Maxsig& e ); - ~p21DIS_Maxsig (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("Maxsig"); } - int opcode () { return 6 ; } - SCLP23(Integer) maximum_significant_digit(); - void maximum_significant_digit (SCLP23(Integer) x); -}; -inline SCLP23(Application_instance) * -create_p21DIS_Maxsig () { return (SCLP23(Application_instance)*) new p21DIS_Maxsig ; } -extern EntityDescriptor *HEADER_SCHEMAe_CLASSIFICATION; -extern AttrDescriptor *a_20SECURITY_CLASSIFICATION; - -class p21DIS_Classification : public SCLP23(Application_instance) { - protected: - SCLP23(String) _security_classification ; - public: - - p21DIS_Classification ( ); - p21DIS_Classification (p21DIS_Classification& e ); - ~p21DIS_Classification (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("Classification"); } - int opcode () { return 7 ; } - const SCLP23(String) & security_classification() const; - void security_classification (const char * x); -}; -inline SCLP23(Application_instance) * -create_p21DIS_Classification () { return (SCLP23(Application_instance)*) new p21DIS_Classification ; } -extern EntityDescriptor *HEADER_SCHEMAe_FILE_SCHEMA; -extern AttrDescriptor *a_21SCHEMA_IDENTIFIERS; - -class p21DIS_File_schema : public SCLP23(Application_instance) { - protected: - StringAggregate _schema_identifiers ; // of SCHEMA_NAME - - public: - - p21DIS_File_schema ( ); - p21DIS_File_schema (p21DIS_File_schema& e ); - ~p21DIS_File_schema (); -#ifdef __O3DB__ - void oodb_reInit(); -#endif - char *Name () { return (char*)("File_Schema"); } - int opcode () { return 8 ; } - StringAggregate & schema_identifiers(); - void schema_identifiers (StringAggregate & x); -}; -inline SCLP23(Application_instance) * -create_p21DIS_File_schema () { return (SCLP23(Application_instance)*) new p21DIS_File_schema ; } - -#endif diff --git a/source/geometry/solids/STEP/include/schema.h b/source/geometry/solids/STEP/include/schema.h deleted file mode 100644 index a18120bb73..0000000000 --- a/source/geometry/solids/STEP/include/schema.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef SCHEMA_H -#define SCHEMA_H -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. -/* $Id: schema.h,v 1.3 2000/01/21 13:42:41 gcosmo Exp $ */ -#ifdef SCL_LOGGING -#include -#endif - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -#include - - -#include - -#include - -#include - -#include - -#include - -#include -extern void SchemaInit (Registry &); -extern void InitSchemasAndEnts (Registry &); -#include -extern void SdaiCONFIG_CONTROL_DESIGNInit (Registry & r); - -#ifdef __OSTORE__ -#include -#endif - - -#include -ComplexCollect *gencomplex(); - -SCLP23(Model_contents_ptr) GetModelContents(char *schemaName); -#endif diff --git a/source/geometry/solids/STEP/include/scl_cf.h b/source/geometry/solids/STEP/include/scl_cf.h deleted file mode 100644 index 0ba57d9fa3..0000000000 --- a/source/geometry/solids/STEP/include/scl_cf.h +++ /dev/null @@ -1,67 +0,0 @@ -/* config/scl_cf.h. Generated automatically by configure. */ -/* - * Check for headers - */ -#ifndef __SCL_CF_H__ -#define __SCL_CF_H__ - -/* #undef DIRENT */ -/* #undef SYSNDIR */ -/* #undef SYSDIR */ -/* #undef NDIR */ - -#define HAVE_DIRENT_H 1 -/* #undef HAVE_SYS_NDIR_H */ -/* #undef HAVE_SYS_DIR_H */ -/* #undef HAVE_NDIR_H */ -#define HAVE_STDARG_H 1 - -#define HAVE_STRING_H 1 -#define HAVE_MEMORY_H 1 - -#ifndef WIN32 -#define HAVE_UNISTD_H 1 -#endif -/* #undef HAVE_SYSENT_H */ -#define HAVE_SYS_STAT_H 1 -/* #undef HAVE_STAT_H */ - -/* #undef NO_STDLIB_H */ -/* #undef HAVE_VARARGS_H */ -/* #undef HAVE_STROPTS_H */ -/* #undef HAVE_SYSCONF_H */ - -/* - * This section is for compile macros needed by - * everything else. - */ - -/* - * Check for functions - */ -#define HAVE_MEMCPY 1 -#define HAVE_SYSCONF 1 -#define HAVE_MEMMOVE 1 -#define HAVE_STRCHR 1 -#define HAVE_ABS 1 - -#ifndef HAVE_STRCHR -#define strchr(s,c) index(s,c) -#endif /* HAVE_STRCHR */ - -/* - * Check for tty/pty functions and structures - */ -/* #undef POSIX */ - -/* - * Special hacks - */ -/* #undef CONVEX */ -/* #undef SOLARIS */ - -#ifdef SOLARIS -#define __EXTENSIONS__ -#endif /* SOLARIS */ - -#endif /* __SCL_CF_H__ */ diff --git a/source/geometry/solids/STEP/include/scl_char_str_list.h b/source/geometry/solids/STEP/include/scl_char_str_list.h deleted file mode 100644 index 5a6b2efa9f..0000000000 --- a/source/geometry/solids/STEP/include/scl_char_str_list.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef SCL_CHAR_STR_LIST_H -#define SCL_CHAR_STR_LIST_H - -typedef char * scl_char_str_ptr; - -class scl_char_str__list { -public: - scl_char_str__list(int = 16); - ~scl_char_str__list(); - - scl_char_str_ptr& operator[](int index); - void Insert(scl_char_str_ptr, int index); - void Append(scl_char_str_ptr); - void Remove(int index); - int Index(scl_char_str_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - scl_char_str_ptr* _buf; - int _bufsize; - int _count; -}; - -typedef scl_char_str__list *scl_char_str__list_ptr; -typedef scl_char_str__list_ptr scl_char_str__list_var; - -#endif diff --git a/source/geometry/solids/STEP/include/scl_hash.h b/source/geometry/solids/STEP/include/scl_hash.h deleted file mode 100644 index e603d4e0af..0000000000 --- a/source/geometry/solids/STEP/include/scl_hash.h +++ /dev/null @@ -1,152 +0,0 @@ - -#ifndef SCL_HASH_H -#define SCL_HASH_H - -/* -* NIST Utils Class Library -* clutils/scl_hash.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: scl_hash.h,v 1.3 2000/01/21 13:42:41 gcosmo Exp $ */ - -/************************************************************************ -** Hash_Table: Hash_Table -** Description: -** -** Largely based on code written by ejp@ausmelb.oz -** -** Constants: -** HASH_TABLE_NULL - the null Hash_Table -** -************************************************************************/ - -/* - * This work was supported by the United States Government, and is - * not subject to copyright. - * - * $Log: scl_hash.h,v $ - * Revision 1.3 2000/01/21 13:42:41 gcosmo - * New STEP Reader SCL3.2 - * - * Revision 3.0.1.2 1997/11/05 22:33:49 sauderd - * Adding a new state DP3.1 and associated revision - * - * Revision 3.0.1.1 1997/07/28 19:35:28 sauderd - * Adding a new state DP3.0.1 and associated revision - * - * Revision 3.0.1.0 1997/04/16 19:14:12 dar - * Setting the first branch - * - * Revision 3.0 1997/04/16 19:14:11 dar - * STEP Class Library Pre Release 3.0 - * - * Revision 2.2.1.0 1997/09/20 20:59:02 sauderd - * Setting the first branch - * - * Revision 2.2 1997/09/20 20:59:01 sauderd - * STEP Class Library Pre Release 2.2 - * - * Revision 2.1.0.1 1997/05/16 14:35:29 lubell - * setting state to dp21 - * - * Revision 2.1.0.0 1997/05/12 14:13:33 lubell - * setting branch - * - * Revision 2.1 1997/05/12 14:13:32 lubell - * changing version to 2.1 - * - * Revision 2.0.1.2 1997/05/09 20:04:42 lubell - * Changed the date from 2/94 to 5/95 - * - * Revision 2.0.1.1 1994/04/05 16:44:11 sauderd - * Changed the date from 1993 to 1994 - * - * Revision 2.0.1.0 1994/02/04 21:32:20 sauderd - * Setting the first branch - * - * Revision 2.0 1994/02/04 21:32:18 sauderd - * STEP Class Library Release 2.0 - * - * Revision 1.3 1994/09/30 20:58:22 sauderd - * Administrative stuff for the release. Added the name of the file, library, - * the date, contact people, and $id $ for RCS. Did general cleaning, etc. - * - * Revision 1.2 1992/12/15 14:07:52 kc - * made parameters to HASHfind and HASHinsert const - * - * Revision 1.1 1992/10/07 18:37:20 kc - * Initial revision - * - * Revision 1.1 1992/10/06 22:06:30 kc - * Initial revision - * - * Revision 1.1 1992/09/29 15:44:19 libes - * Initial revision - * - * Revision 1.1 1992/08/19 18:49:59 libes - * Initial revision - * - * Revision 1.2 1992/05/31 08:36:48 libes - * multiple files - * - */ - -typedef enum { HASH_FIND, HASH_INSERT, HASH_DELETE } Action; - -struct Element { - char *key; - void *data; - struct Element *next; - struct Symbol *symbol;/* for debugging hash conflicts */ - char type; /* user-supplied type */ -}; - -struct Hash_Table { - short p; /* Next bucket to be split */ - short maxp; /* upper bound on p during expansion */ - long KeyCount; /* current # keys */ - short SegmentCount; /* current # segments */ - short MinLoadFactor; - short MaxLoadFactor; -#define DIRECTORY_SIZE 256 -#define DIRECTORY_SIZE_SHIFT 8 /* log2(DIRECTORY_SIZE) */ - struct Element **Directory[DIRECTORY_SIZE]; -}; - -typedef struct { - int i; /* segment index (i think) */ - int j; /* key index in segment (ditto) */ - struct Element *p; /* usually the next element to be returned */ - struct Hash_Table *table; - char type; - struct Element *e; /* originally thought of as a place for */ -/* the caller of HASHlist to temporarily stash the return value */ -/* to allow the caller (i.e., DICTdo) to be macroized, but now */ -/* conveniently used by HASHlist, which both stores the ultimate */ -/* value here as well as returns it via the return value of HASHlist */ -} HashEntry; - -#ifdef __cplusplus -extern "C" { -#endif - -struct Hash_Table *HASHcreate(unsigned); -void *HASHfind(struct Hash_Table *, char *); -void HASHinsert(struct Hash_Table *, char *,void *); -void HASHdestroy(struct Hash_Table *); -struct Element *HASHsearch(struct Hash_Table *,struct Element *, Action); -void HASHlistinit(struct Hash_Table *,HashEntry *); -void HASHlistinit_by_type(struct Hash_Table *,HashEntry *,char); -struct Element *HASHlist(HashEntry *); - -#ifdef __cplusplus -} -#endif - -#endif /* SCL_HASH_H */ diff --git a/source/geometry/solids/STEP/include/scl_osschema.h b/source/geometry/solids/STEP/include/scl_osschema.h deleted file mode 100644 index dfeabc15e3..0000000000 --- a/source/geometry/solids/STEP/include/scl_osschema.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef SCL_OSSCHEMA_H -#define SCL_OSSCHEMA_H - -//#define _ODI_OSSG_ - -/* -*/ -#include -#include - -#include - -//#include -#include -#include -#include -//#include -#include - -#include -#include -#include -#include -#include - -void scl_dummy () -{ - -OS_MARK_SCHEMA_TYPE(ErrorDescriptor) - -OS_MARK_SCHEMA_TYPE(SCLstring) -OS_MARK_SCHEMA_TYPE(SCLP23(String)) -OS_MARK_SCHEMA_TYPE(SCLP23(Binary)) -OS_MARK_SCHEMA_TYPE(SCLP23(Enum)) -OS_MARK_SCHEMA_TYPE(SCLP23(BOOL)) -OS_MARK_SCHEMA_TYPE(SCLP23(LOGICAL)) - -OS_MARK_SCHEMA_TYPE(STEPattribute) -OS_MARK_SCHEMA_TYPE(SingleLinkNode) -OS_MARK_SCHEMA_TYPE(SingleLinkList) -OS_MARK_SCHEMA_TYPE(AttrListNode) -OS_MARK_SCHEMA_TYPE(STEPattributeList) - -OS_MARK_SCHEMA_TYPE(SCLP23(sdaiObject)) -OS_MARK_SCHEMA_TYPE(SCLP23(PID)) -OS_MARK_SCHEMA_TYPE(SCLP23(PID_SDAI)) -OS_MARK_SCHEMA_TYPE(SCLP23(PID_DA)) -OS_MARK_SCHEMA_TYPE(SCLP23(DAObject)) -OS_MARK_SCHEMA_TYPE(SCLP23(DAObject_SDAI)) -OS_MARK_SCHEMA_TYPE(SCLP23(Application_instance)) - -OS_MARK_SCHEMA_TYPE(SCLP23(Select)) - -OS_MARK_SCHEMA_TYPE(SCLP23(DAObject__set)) -OS_MARK_SCHEMA_TYPE(SCLP23(Session_instance)) -OS_MARK_SCHEMA_TYPE(SCLP23(Model_contents_instances)) -OS_MARK_SCHEMA_TYPE(SCLP23(Model_contents)) -OS_MARK_SCHEMA_TYPE(SCLP23(Model_contents__list)) -OS_MARK_SCHEMA_TYPE(SCLP23(Entity_extent)) -OS_MARK_SCHEMA_TYPE(SCLP23(Entity_extent__set)) - -OS_MARK_SCHEMA_TYPE(STEPaggregate) -OS_MARK_SCHEMA_TYPE(GenericAggregate) -OS_MARK_SCHEMA_TYPE(EntityAggregate) -OS_MARK_SCHEMA_TYPE(SelectAggregate) -OS_MARK_SCHEMA_TYPE(StringAggregate) -OS_MARK_SCHEMA_TYPE(BinaryAggregate) -OS_MARK_SCHEMA_TYPE(EnumAggregate) -OS_MARK_SCHEMA_TYPE(LOGICALS) -OS_MARK_SCHEMA_TYPE(BOOLS) -OS_MARK_SCHEMA_TYPE(RealAggregate) -OS_MARK_SCHEMA_TYPE(IntAggregate) -OS_MARK_SCHEMA_TYPE(STEPnode) -OS_MARK_SCHEMA_TYPE(GenericAggrNode) -OS_MARK_SCHEMA_TYPE(EntityNode) -OS_MARK_SCHEMA_TYPE(SelectNode) -OS_MARK_SCHEMA_TYPE(StringNode) -OS_MARK_SCHEMA_TYPE(BinaryNode) -OS_MARK_SCHEMA_TYPE(EnumNode) -OS_MARK_SCHEMA_TYPE(RealNode) -OS_MARK_SCHEMA_TYPE(IntNode) - -/* -//O S_MARK_SCHEMA_TYPE(GenericNode) -//O S_MARK_SCHEMA_TYPE(GenNodeArray) -//O S_MARK_SCHEMA_TYPE(MgrNode) -//O S_MARK_SCHEMA_TYPE(MgrNodeArray) -//O S_MARK_SCHEMA_TYPE(MgrNodeArraySorted) -//O S_MARK_SCHEMA_TYPE(InstMgr) -*/ - -} - -#endif diff --git a/source/geometry/solids/STEP/include/scl_string.h b/source/geometry/solids/STEP/include/scl_string.h deleted file mode 100644 index 6d6bf68a5e..0000000000 --- a/source/geometry/solids/STEP/include/scl_string.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef _SCL_STRING_H -#define _SCL_STRING_H - -/* -* NIST Utils Class Library -* clutils/scl_string.h -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: scl_string.h,v 1.5 2003/06/06 17:07:31 gcosmo Exp $ */ - -#ifdef __O3DB__ -#include -#endif - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -/* point of contact for bug reports */ -#define _POC_ " report problem to dp2@cme.nist.gov " - -//#include // not found in CenterLine C++ -//#ifdef __OBJECTCENTER__ -// this file is not in gnu C++ but it doesn't seem to be needed. -//#include -//#endif - -// to make ObjectCenter happy? -#ifdef HAVE_STDARG_H -#include -#endif - -#include "G4ios.hh" -#include - -/****************************************************************** -b** Class: SCLstring -** Description: implements a few basic string handling functions - -** hopefully will be replaced by a standard clas - ** Status: 26-Jan-1994 kc - ******************************************************************/ - -class SCLstring { -protected: -public: - char * _strBuf; // initially empty - int _strBufSize; // size of buffer - int _max_len; // should be const, but some db\'s don\'t handle that - - int newBufSize (int len) const; - -public: - void PrintContents(std::ostream &out = G4cout) const; - // returns 1 if _strBuf is a null ptr or if it is an empty string ("") - int is_null() const; - // returns 1 if _strBuf is a null ptr, and 0 otherwise - int is_undefined() const; - // deletes _strBuf - void set_undefined() ; - // sets _strBuf space to be zeroed out - int set_null() ; - int StrBufSize() const; - int Length() const; - int MaxLength() const { return _max_len; } - void MaxLength(int i) { _max_len = i; } - - const char * chars () const - { return _strBuf ? _strBuf : ""; } - - const char * rep() const - { return _strBuf; } - -// operators - SCLstring& operator= (const char*); // must be NULL terminated string - SCLstring& operator= (char* s) // must be NULL terminated string - { operator= ((const char *)s); return *this; } - operator const char * () const; - int operator== (const char*) const; - SCLstring& Append (const char *); - SCLstring& Append (const char); - SCLstring& Append (const long int); - SCLstring& Append (const int); - -// Josh L, 4/11/95 - SCLstring& operator=(const SCLstring& s); - - SCLstring& Append (const double, const int precision =15); - SCLstring& Prepend (const char *); - -//constructor(s) & destructor - SCLstring (const char * str = 0, int max =0); - SCLstring (const SCLstring& s); - ~SCLstring (); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -typedef SCLstring String_var; - -#endif /* _SCL_STRING_H */ diff --git a/source/geometry/solids/STEP/include/scldir.h b/source/geometry/solids/STEP/include/scldir.h deleted file mode 100644 index 92542387bd..0000000000 --- a/source/geometry/solids/STEP/include/scldir.h +++ /dev/null @@ -1,79 +0,0 @@ - -#ifdef __O3DB__ -#include -#endif - -/* - * C++ interface to Unix file system dir structure - */ -#ifdef HAVE_UNISTD_H -#include -#include -#endif - - /* unistd.h defines _POSIX_VERSION on POSIX.1 systems. */ -#if defined(DIRENT) || defined(_POSIX_VERSION) -#include -#define NLENGTH(dirent) (strlen((dirent)->d_name)) -#else /* not (DIRENT or _POSIX_VERSION) */ -#define dirent direct -#define NLENGTH(dirent) ((dirent)->d_namlen) - -#ifdef HAVE_SYS_DIR_H -#include -//#elif HAVE_SYS_NDIR_H -//#include -//#elif HAVE_NDIR_H -//#include -#endif - -#endif /* not (DIRENT or _POSIX_VERSION) */ - -#if 0 -#ifndef sys_dir_h - -#if defined(__cplusplus) -extern "C" { -#endif - -#if !defined(opendir) -#define opendir sys_dir_h_opendir -#define readdir sys_dir_h_readdir -#define telldir sys_dir_h_telldir -#define seekdir sys_dir_h_seekdir -#define closedir sys_dir_h_closedir -#endif - -#if defined(SYSV) -#include "//usr/include/sys/types.h" -#include "//usr/include/dirent.h" -#else -#include "//usr/include/sys/dir.h" -#endif - -#undef opendir -#undef readdir -#undef telldir -#undef seekdir -#undef closedir - -#ifndef sys_dir_h -#define sys_dir_h -#endif - -extern DIR* opendir(const char*); -#if defined(SYSV) -extern struct dirent* readdir(DIR*); -#else -extern struct direct* readdir(DIR*); -#endif -extern long telldir(DIR*); -extern void seekdir(DIR*); -extern int closedir(DIR*); - -#if defined(__cplusplus) -} -#endif -#endif /* if 0 */ - -#endif diff --git a/source/geometry/solids/STEP/include/sclprefixes.h b/source/geometry/solids/STEP/include/sclprefixes.h deleted file mode 100644 index ee1650d094..0000000000 --- a/source/geometry/solids/STEP/include/sclprefixes.h +++ /dev/null @@ -1,353 +0,0 @@ -#ifndef SCLPREFIXES_H -#define SCLPREFIXES_H - -/* DAS - What I had in mind here is that there could be a different prefix or - namespace for some types (like the ones defined in CORBA or some other - software package). e.g. the Boolean and Logical enums are problematic - with various other software packages. They will be defined by the IDL - generated C++. In that case they should not be defined in SCL. In either - case their SCL uses are always prefixed with macros defined in this file - to help adapt the code as necessary. -*/ - -/* ********************** -If you define NO_BOOLS_LOGS when you build the SCL then SCL will not define -Bool or Logical C++ enums. You will need to: - 1. Define Bool and Logical yourself somewhere and #include the name of the - header file that defines them in a corbaIncludes.h that can be seen by - SCL Makefiles (currently found in sdaiOrbix/corbaIncludes.h) - 2. Define SCLBOOL, SCLBOOL_H, SCLLOG, and SCLLOG_H to match their non-SCL - name space or name prefix. - -If you have NO_BOOLS_LOGS turned off (the default) when building SCL -then the definitions for Bool and Logical will be defined in SCL in -clstepcore/sdaiEnum.h - -You should use the parameterized macro definition of SCLBOOL or SCLLOG below -when using Bool or Logical. - -The macro SCLP23_NAME is used in header files and for constructor/destructor -class function names in corresponding .cc files. - -The macro SCLP23 is used everywhere else. - -********************* */ - - // *note* Currently the IDL generated code is not in a namespace. -//#undef NO_P26_NAMESPACE -//#define NO_P26_NAMESPACE 1 - -// P stands for Part (yeah, it's just to make it short & unique - hopefully) -// as in Part 23 or Part 26. - -#ifdef PART26 // SCL's Part 23 is providing the implementation for the Part 26 - // Orbix-generated software interface. - -// The namespace is specified to be SDAI by Part 26 and Part 23 - // Since Part 23 and Part 26 defined objects are suppose to have the same - // names and are supposed to be defined in a namespace called SDAI, define - // the namespaces names for Part 23 and 26 to be different (to avoid conflict) - - // This is the namespace for SCL's Part 23 SDAI. - #define P23_NAMESPACE P23 - // Whenever you have something like P23_NAMESPACE##_name the preprocessor - // does the concatenation first then substitutes things. Thus you get - // P23_NAMESPACE_name instead of _name. If you - // call P23_NAMESPACE_F() like P23_NAMESPACE_F(_name) you get - // whatever P23_NAMESPACE is>_name like you want. The user never has to - // use this macro. It is used in the definition of macros the user uses like - // SCLP23() and SCLP23_NAME(). - #define P23_NAMESPACE_F(x) P23##x - - // This was used by the ITI code. It holds the same meaning as P23_NAMESPACE - #define IMP_NAMESPACE P23_NAMESPACE - #define IMP_NAMESPACE_F(x) P23_NAMESPACE_F(x) - // as defined by original ITI code - // #define IMP_NAMESPACE P26_SDAI - -// This is the namespace used by the IDL generated code implementing Part 26. -// -// define NO_P26_NAMESPACE if you are not going to define an encapsulating -// module in the idl. If you define a module named SDAI then you will have to -// refer to the class for interface PID (e.g.) as SDAI::PID and you will have -// to refer to the macros as DEF_TIE_SDAI_PID() and TIE_SDAI_PID() instead of -// DEF_TIE_PID() and TIE_PID(). DEF_TIE_IDL_MODULE() and TIE_IDL_MODULE() -// handle this problem in the code. -// You should define P26_NAMESPACE the same as the name you use for the idl -// module. Without a module you should define NO_P26_NAMESPACE -// -// DEF_TIE_IDL_MODULE handles the DEF_TIE macro depending on whether a module -// name was used in the idl. e.g. for class/interface named PID -//#define SDAI_DEF_TIE_PID(X) DEF_TIE_IDL_MODULE(PID,X) -// replaces either of these two stmts in your code depending on whether a -// module name SDAI was used. -//#define SDAI_DEF_TIE_PID(X) DEF_TIE_PID(X) -//#define SDAI_DEF_TIE_PID(X) DEF_TIE_SDAI_PID(X) -// -// TIE_IDL_MODULE handles the TIE macro depending on whether a module -// name was used in the idl. e.g. for class/interface named PID -//#define _SDAI_TIE_PID_(X) TIE_IDL_MODULE(PID,X) -// replaces either of these two stmts in your code depending on whether a -// module name SDAI was used. -//#define _SDAI_TIE_PID_(X) TIE_PID(X) -//#define _SDAI_TIE_PID_(X) TIE_SDAI_PID(X) - - #ifdef NO_P26_NAMESPACE - #define P26_NAMESPACE - #define P26_NAMESPACE_F(x) x - #define DEF_TIE_IDL_MODULE(x,y) DEF_TIE_##x(y) - #define TIE_IDL_MODULE(x,y) TIE_##x(y) - #else - // edit "SDAI" here to match the name of your module - #define P26_NAMESPACE SDAI - #define P26_NAMESPACE_F(x) SDAI##x - #define DEF_TIE_IDL_MODULE(x,y) DEF_TIE_SDAI_##x(y) - #define TIE_IDL_MODULE(x,y) TIE_SDAI_##x(y) - #endif - - // Define the namespace that contains the Bool and Logical enum definitions. - // If PART26 is defined, Bool and Logical should be in the IDL-generated - // code (and namespace). - // *note* Currently the IDL generated code is not in a namespace. - #define BOOL_LOG_NAMESPACE P26_NAMESPACE - #define BOOL_LOG_NAMESPACE_F(x) P26_NAMESPACE_F(x) - - // This would be the namespace for your application schema. - // This is for the ITI-developed code. It really shouldn't go here - DAS - #define APP_NAMESPACE P26_Simple_geometry - -#else // SCL's Part 23 is not providing the implementation for the Part 26 - // Orbix-generated software interface. - - // This is the namespace for SCL's Part 23 SDAI. - #define P23_NAMESPACE SDAI - #define P23_NAMESPACE_F(x) SDAI##x - - // This was used by the ITI code. It holds the same meaning as P23_NAMESPACE - #define IMP_NAMESPACE P23_NAMESPACE - #define IMP_NAMESPACE_F(x) P23_NAMESPACE_F(x) - // as defined by original ITI code - // #define IMP_NAMESPACE SDAI - - // This is the namespace used by the IDL generated code implementing Part 26. - // **Note this should never be used if PART26 is not defined. - #define P26_NAMESPACE - #define P26_NAMESPACE_F(x) x - - // Define the namespace that contains the Bool and Logical enum definitions. - // NO_BOOLS_LOGS is used to turn off the SCL definitions of Bool and Logical - #ifndef NO_BOOLS_LOGS - // Unless otherwise necessary, if not defined by IDL generated code use the - // SCL namespace definitions. - #define BOOL_LOG_NAMESPACE P23_NAMESPACE - #define BOOL_LOG_NAMESPACE_F(x) P23_NAMESPACE_F(x) - #else - // if you turn the definitions off you need to define how they are used. - #define BOOL_LOG_NAMESPACE - #define BOOL_LOG_NAMESPACE_F(x) x - #endif - - // This would be the namespace for your application schema. - // This is for the ITI-developed code. It really shouldn't go here - DAS - #define APP_NAMESPACE Simple_geometry - -#endif - - -#ifdef CC_NO_NESTED_CLASSES - - // SCLBOOL_H and SCLLOG_H are used in the sdaiEnum.h header file where - // the C++ enums Bool and Logical are used. - - // Use SCLBOOL_H and SCLLOG_H when Bool and Logical are used inside the - // namespace definition i.e. inside SCL header files. - // This macro should not be relevant to users of SCL (other than to - // understand the SCL header files). - #define SCLBOOL_H(x) BOOL_LOG_NAMESPACE_F(_##x) - #define SCLLOG_H(x) BOOL_LOG_NAMESPACE_F(_##x) - // or if you don't want them to use a name prefix - //#define SCLBOOL_H(x) x - //#define SCLLOG_H(x) x - - // Use SCLBOOL and SCLLOG in all other files where the C++ enums Bool and - // Logical are used. i.e. any uses outside the namespace definition. - // SCL users would always wrap uses of Bool and Logical enums inside these. - #define SCLBOOL(x) BOOL_LOG_NAMESPACE_F(_##x) - #define SCLLOG(x) BOOL_LOG_NAMESPACE_F(_##x) - // or if you don't want them to use a name prefix - //#define SCLBOOL(x) x - //#define SCLLOG(x) x - -/////////////////////// - // Use this macro to enclose objects generated from IDL interface types. - // i.e. Part 26 based generated types. - // Use this with types that will ONLY ever be Part 26 types. For types - // that can switch use PART22() macro. - // Used with the IDL compiler generated C++ - DAS - #define SCLP26(X) P26_NAMESPACE_F(_##X) - - // Used by ITI code to enclose objects generated from IDL interface types. - // This is used for function arguments and return types that need to be - // either the Part 26 version or the Part 23 version depending on whether - // the Part 23 interface is being used standalone or to implement Orbix - // implementation objects using the TIE approach. - DAS - // This one is defined to use the Part 26 defined type for use with Orbix. - #define SCLP22_NAME(X) P26_NAMESPACE_F(_##X) - #define SCLP22(X) P26_NAMESPACE_F(_##X) - // as defined by ITI - // #define SCLP22(X) SDAI_##X - - // Use this macro to enclose references to CORBA types. - // Used with the Orbix base C++ types/classes #included via CORBA.h. - // i.e. not used with types/interfaces generated from a users IDL schema. - // DAS - #define CORBA_REF(X) CORBA_##X - - // I don't understand why this is necessary - DAS - // Use this macro to enclose references to CORBA Object and Object_ptr - #define SCLP22_BASE(X) CORBA_##X - - - // SCLP23_NAME is used in header files and for constructor/destructor - // class function names in corresponding .cc files. - // Use this macro to enclose declarations of implementation types. - #define SCLP23_NAME(x) P23_NAMESPACE_F(_##x) - - // SCLP23 is used everywhere else. - // Use this macro to enclose uses of Part 23 based (implementation) types. - #define SCLP23(x) P23_NAMESPACE_F(_##x) - - // Use this macro to enclose references to implementation types - // whose names have already been qualified - // I don't understand this macros use - DAS - #define SCLP23_SPACE(x) x - - // INTEGRATION appmacros here... - #define SCLP22_SIMPLE_GEOMETRY(X) SDAI_Simple_geometry_##X - #define SCLP23_SIMPLE_GEOMETRY_NAME(x) APP_NAMESPACE##_##x - #define SCLP23_SIMPLE_GEOMETRY(x) APP_NAMESPACE##_##x -/////////////////////////////////// - -#else // nested classes are allowed by the compiler -///////////////////////////////////// - - // Use SCLBOOL_H and SCLLOG_H when Bool and Logical are used inside the - // namespace definition i.e. inside SCL header files. - // This macro should not be relevant to users of SCL (other than to - // understand the SCL header files). - #ifndef NO_BOOLS_LOGS - #define SCLBOOL_H(x) x - #define SCLLOG_H(x) x - #else - #ifdef PART26 - #ifdef NO_P26_NAMESPACE - #define SCLBOOL_H(x) x - #define SCLLOG_H(x) x - #else - #define SCLBOOL_H(x) BOOL_LOG_NAMESPACE_F(::##x) - #define SCLLOG_H(x) BOOL_LOG_NAMESPACE_F(::##x) - #endif - #else - #define SCLBOOL_H(x) BOOL_LOG_NAMESPACE_F(::##x) - #define SCLLOG_H(x) BOOL_LOG_NAMESPACE_F(::##x) - #endif - #endif - - // Use SCLBOOL and SCLLOG in all other files where the C++ enums Bool and - // Logical are used. i.e. any uses outside the namespace definition. - // SCL users would always wrap uses of Bool and Logical enums inside these. - #ifndef NO_BOOLS_LOGS - #define SCLBOOL(x) BOOL_LOG_NAMESPACE_F(::##x) - #define SCLLOG(x) BOOL_LOG_NAMESPACE_F(::##x) - #else - #ifdef PART26 - #ifdef NO_P26_NAMESPACE - #define SCLBOOL(x) x - #define SCLLOG(x) x - #else - #define SCLBOOL(x) BOOL_LOG_NAMESPACE_F(::##x) - #define SCLLOG(x) BOOL_LOG_NAMESPACE_F(::##x) - #endif - #else - #define SCLBOOL(x) BOOL_LOG_NAMESPACE_F(::##x) - #define SCLLOG(x) BOOL_LOG_NAMESPACE_F(::##x) - #endif - #endif - -/////////////////////// - // Use this macro to enclose objects generated from IDL interface types. - // i.e. Part 26 based generated types. - // Used with the IDL compiler generated C++ - DAS - #ifdef NO_P26_NAMESPACE - #define SCLP26(X) X - #else - #define SCLP26(X) P26_NAMESPACE_F(::##X) - #endif - - // Used by ITI code to enclose objects generated from IDL interface types. - // This is used for function arguments and return types that need to be - // either the Part 26 version or the Part 23 version depending on whether - // the Part 23 interface is being used standalone or to implement Orbix - // implementation objects using the TIE approach. - DAS - // This one is defined to use the Part 26 defined type for use with Orbix. - #ifdef NO_P26_NAMESPACE - #define SCLP22_NAME(X) X - #define SCLP22(X) X - #else - #define SCLP22_NAME(X) P26_NAMESPACE_F(::##X) - #define SCLP22(X) P26_NAMESPACE_F(::##X) - #endif - // as defined by ITI - // #define SCLP22(X) SDAI::##X - - // Use this macro to enclose references to CORBA types. - // Used with the Orbix base C++ types/classes #included via CORBA.h. - // i.e. not used with types/interfaces generated from a users IDL schema. - // DAS - #define CORBA_REF(X) CORBA::##X - - // I don't understand why this is necessary - DAS - // Use this macro to enclose references to CORBA Object and Object_ptr - #define SCLP22_BASE(X) CORBA::##X - - // SCLP23_NAME is used in header files and for constructor/destructor - // class function names in corresponding .cc files. - // Use this macro to enclose declarations of implementation types. - #ifdef PART26 - #define SCLP23_NAME(x) P23_NAMESPACE_F(_imp##x) -// #define SCLP23_NAME(x) imp##x - #else - #define SCLP23_NAME(x) x - #endif - - // SCLP23 is used everywhere else. - // Use this macro to enclose uses of Part 23 based (implementation) types. - #ifdef PART26 - #define SCLP23(x) P23_NAMESPACE_F(_imp##x) -// #define SCLP23(x) P23_NAMESPACE_F(::##imp##x) - #else - #define SCLP23(x) P23_NAMESPACE_F(::##x) - #endif - // as defined by ITI - // #define SCLP23(x) IMP_NAMESPACE_F(::imp##x) - - // Use this macro to enclose references to implementation types - // whose names have already been qualified - // I don't understand this macros use - DAS - #ifdef PART26 - #define SCLP23_SPACE(x) P23_NAMESPACE_F(_imp##x) -// #define SCLP23_SPACE(x) P23_NAMESPACE_F(::##imp##x) - #else - #define SCLP23_SPACE(x) IMP_NAMESPACE_F(::x) - #endif - - // INTEGRATION appmacros here... - #define SCLP22_SIMPLE_GEOMETRY(X) SDAI::Simple_geometry::##X - #define SCLP23_SIMPLE_GEOMETRY_NAME(x) imp##x - #define SCLP23_SIMPLE_GEOMETRY(x) APP_NAMESPACE::imp##x -///////////////////////////////////// - -#endif - -#endif diff --git a/source/geometry/solids/STEP/include/sdai.h b/source/geometry/solids/STEP/include/sdai.h deleted file mode 100644 index 043be77f85..0000000000 --- a/source/geometry/solids/STEP/include/sdai.h +++ /dev/null @@ -1,428 +0,0 @@ -#ifndef P23SDAI_H -#define P23SDAI_H - -/* -* NIST STEP Core Class Library -* clstepcore/sdai.h -* April 1997 -* David Sauder -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. - -* This file is included to support the proposed SDAI/C++ Language Binding -* specified in Annex D of STEP Part 22. - -* This file specifies the appropriate naming conventions and NULL -* values for the EXPRESS base types. -*/ - -/* $Id: sdai.h,v 1.5 2003/06/06 17:07:31 gcosmo Exp $ */ - -extern const char *SCLversion; - -#include -//#include -//#include -//#include - -#include - -#ifdef PART26 -// Change the name of the include file defining the defs for Bool and Logical -// inside the file corbaIncludes.h -#include -#endif - -#ifdef __OSTORE__ - -#include // Required to access ObjectStore Class Library -#include -void Application_instance_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); - -#endif - -#include -#include - -#include -#include -#include -#include - -typedef String_var Express_id; - -#ifdef __O3DB__ -/* OpenOODB.h must be the first include file. */ -#include -#endif - -//#include - -class TypeDescriptor; -class EntityDescriptor; -class SelectTypeDescriptor; -class InstMgr; - -#include - -class STEPattributeList; -class STEPattribute; - -#ifndef BINARY_DELIM -#define BINARY_DELIM '\"' -#endif - -#ifndef STRING_DELIM -#define STRING_DELIM '\'' -#endif - - // STRING -#define S_STRING_NULL "" - -#ifndef CC_NO_NESTED_CLASSES -#ifndef PART26 -struct P23_NAMESPACE { -#endif // PART26 -#endif // CC_NO_NESTED_CLASSES - -// INTEGER -//typedef long Integer; -//typedef short Short; -//typedef unsigned short UShort; -//typedef unsigned long ULong; - - -typedef long SCLP23_NAME(Integer); -typedef short SCLP23_NAME(Short); -typedef unsigned short SCLP23_NAME(UShort); -typedef unsigned long SCLP23_NAME(ULong); -typedef double SCLP23_NAME(Real); - -// C++ from values.h DAS PORT -#ifdef CC_NO_NESTED_CLASSES - extern const SCLP23_NAME(Integer) SCLP23_NAME(INT_NULL); - extern const SCLP23_NAME(Real) SCLP23_NAME(REAL_NULL); - // arbitrary choice by me for number DAS - extern const SCLP23_NAME(Real) SCLP23_NAME(NUMBER_NULL); -#else - #ifdef PART26 - extern const SCLP23_NAME(Integer) SCLP23_NAME(INT_NULL); - extern const SCLP23_NAME(Real) SCLP23_NAME(REAL_NULL); - // arbitrary choice by me for number DAS - extern const SCLP23_NAME(Real) SCLP23_NAME(NUMBER_NULL); - #else - static const SCLP23_NAME(Integer) SCLP23_NAME(INT_NULL); - static const SCLP23_NAME(Real) SCLP23_NAME(REAL_NULL); - // arbitrary choice by me for number DAS - static const SCLP23_NAME(Real) SCLP23_NAME(NUMBER_NULL); - #endif -#endif -/* -// C++ from values.h DAS PORT -//static const Integer INT_NULL = MAXLONG; -static const Integer INT_NULL; - -// REAL -typedef double Real; - -// C++ from values.h DAS PORT -//static const Real REAL_NULL = MINFLOAT; -static const Real REAL_NULL; - -// NUMBER - // arbitrary choice by me for number DAS -// C++ from values.h DAS PORT -//static const Real NUMBER_NULL = MINFLOAT; -static const Real NUMBER_NULL; -*/ - -enum SCLP23_NAME(Access_type) { - SCLP23_NAME(sdaiRO), - SCLP23_NAME(sdaiRW), - SCLP23_NAME(Access_type_unset) -}; - -enum SCLP23_NAME(Commit_mode) { - SCLP23_NAME(sdaiCOMMIT), - SCLP23_NAME(sdaiABORT) -} ; - -enum SCLP23_NAME(AttrFlag) { - SCLP23_NAME(sdaiSET), -SCLP23_NAME(sdaiUNSET) -} ; - -enum SCLP23_NAME(ImplementationClass) { - SCLP23_NAME(sdaiCLASS1), - SCLP23_NAME(sdaiCLASS2), - SCLP23_NAME(sdaiCLASS3), - SCLP23_NAME(sdaiCLASS4), - SCLP23_NAME(sdaiCLASS5) -}; // conflict with part 22 EXPRESS: - -enum SCLP23_NAME(Error_id) { - // - // error codes taken from 10303-23, Jan 28, 1997. - // ISO TC184/SC4/WG11 N 004 - // - SCLP23_NAME(sdaiNO_ERR) = 0, // No error - SCLP23_NAME(sdaiSS_OPN) = 10, // Session open - SCLP23_NAME(sdaiSS_NAVL) = 20, // Session not available - SCLP23_NAME(sdaiSS_NOPN) = 30, // Session is not open - SCLP23_NAME(sdaiRP_NEXS) = 40, // Repository does not exist - SCLP23_NAME(sdaiRP_NAVL) = 50, // Repository not available - SCLP23_NAME(sdaiRP_OPN) = 60, // Repository already opened - SCLP23_NAME(sdaiRP_NOPN) = 70, // Repository is not open - SCLP23_NAME(sdaiTR_EAB) = 80, // Transaction ended abnormally so it no longer exists - SCLP23_NAME(sdaiTR_EXS) = 90, // Transaction exists - SCLP23_NAME(sdaiTR_NAVL) = 100, // Transaction not available - SCLP23_NAME(sdaiTR_RW) = 110, // Transaction read-write - SCLP23_NAME(sdaiTR_NRW) = 120, // Transaction not read-write - SCLP23_NAME(sdaiTR_NEXS) = 130, // Transaction does not exist - SCLP23_NAME(sdaiMO_NDEQ) = 140, // SDAI-model not domain-equivalent - SCLP23_NAME(sdaiMO_NEXS) = 150, // SDAI-model does not exist - SCLP23_NAME(sdaiMO_NVLD) = 160, // SDAI-model invalid - SCLP23_NAME(sdaiMO_DUP) = 170, // SDAI-model duplicate - SCLP23_NAME(sdaiMX_NRW) = 180, // SDAI-model access not read-write - SCLP23_NAME(sdaiMX_NDEF) = 190, // SDAI-model access is not defined - SCLP23_NAME(sdaiMX_RW) = 200, // SDAI-model access read-write - SCLP23_NAME(sdaiMX_RO) = 210, // SDAI-model access read-only - SCLP23_NAME(sdaiSD_NDEF) = 220, // Schema definition is not defined - SCLP23_NAME(sdaiED_NDEF) = 230, // Entity definition not defined - SCLP23_NAME(sdaiED_NDEQ) = 240, // Entity definition not domain equivalent - SCLP23_NAME(sdaiED_NVLD) = 250, // Entity definition invalid -// SCLP23_NAME(sdaiED_NAVL) = 250, // Entity definition not available - SCLP23_NAME(sdaiRU_NDEF) = 260, // Rule not defined - SCLP23_NAME(sdaiEX_NSUP) = 270, // Expression evaluation not supported - SCLP23_NAME(sdaiAT_NVLD) = 280, // Attribute invalid - SCLP23_NAME(sdaiAT_NDEF) = 290, // Attribute not defined - SCLP23_NAME(sdaiSI_DUP) = 300, // Schema instance duplicate - SCLP23_NAME(sdaiSI_NEXS) = 310, // Schema instance does not exist - SCLP23_NAME(sdaiEI_NEXS) = 320, // Entity instance does not exist - SCLP23_NAME(sdaiEI_NAVL) = 330, // Entity instance not available - SCLP23_NAME(sdaiEI_NVLD) = 340, // Entity instance invalid - SCLP23_NAME(sdaiEI_NEXP) = 350, // Entity instance not exported - SCLP23_NAME(sdaiSC_NEXS) = 360, // Scope does not exist - SCLP23_NAME(sdaiSC_EXS) = 370, // Scope exists - SCLP23_NAME(sdaiAI_NEXS) = 380, // Aggregate instance does not exist - SCLP23_NAME(sdaiAI_NVLD) = 390, // Aggregate instance invalid - SCLP23_NAME(sdaiAI_NSET) = 400, // Aggregate instance is empty - SCLP23_NAME(sdaiVA_NVLD) = 410, // Value invalid - SCLP23_NAME(sdaiVA_NEXS) = 420, // Value does not exist - SCLP23_NAME(sdaiVA_NSET) = 430, // Value not set - SCLP23_NAME(sdaiVT_NVLD) = 440, // Value type invalid - SCLP23_NAME(sdaiIR_NEXS) = 450, // Iterator does not exist - SCLP23_NAME(sdaiIR_NSET) = 460, // Current member is not defined - SCLP23_NAME(sdaiIX_NVLD) = 470, // Index invalid - SCLP23_NAME(sdaiER_NSET) = 480, // Event recording not set - SCLP23_NAME(sdaiOP_NVLD) = 490, // Operator invalid - SCLP23_NAME(sdaiFN_NAVL) = 500, // Function not available - SCLP23_NAME(sdaiSY_ERR) = 1000 // Underlying system error -}; - -typedef char * SCLP23_NAME(Time_stamp); -typedef char * SCLP23_NAME(Entity_name); -typedef char * SCLP23_NAME(Schema_name); - -/* -enum Access_type {sdaiRO, sdaiRW}; -enum Commit_mode {sdaiCOMMIT, sdaiABORT} ; -enum AttrFlag { sdaiSET, sdaiUNSET } ; -enum ImplementationClass { sdaiCLASS1, sdaiCLASS2, sdaiCLASS3, sdaiCLASS4, sdaiCLASS5 }; // conflict with part 22 EXPRESS: -enum Error_id { -sdaiNO_ERR = 0 , // No error -sdaiSS_OPN = 10, // Session open -sdaiSS_NAVL = 20, // Session not available -sdaiSS_NOPN = 30, // Session is not open -sdaiRP_NEXS = 40, // Repository does not exist -sdaiRP_NAVL = 50, // Repository not available -sdaiRP_OPN = 60, // Repository already opened -sdaiRP_NOPN = 70, // Repository not open -sdaiTR_EXS = 80, // Transaction exists -sdaiTR_NRO = 90, // Transaction not read-only -sdaiTR_NRW = 100, // Transaction not read-write -sdaiTR_NEXS = 110, // Transaction does not exist -sdaiSD_NDEF = 120, // Schema definition is not defined -sdaiMO_NEXS = 130, // SDAI-model does not exist -sdaiMO_NAVL = 140, // SDAI-model is not active -sdaiMX_NVLD = 150, // SDAI-model access invalid -sdaiMX_NRO = 160, // SDAI-model not read-only -sdaiMX_NRW = 170, // SDAI-model not read-write -sdaiMX_NDEF = 180, // SDAI-model access is not defined -sdaiMO_NVLD = 190, // SDAI-model invalid -sdaiMO_DUP = 200, // SDAI-model duplicate -sdaiED_NDEF = 210, // Entity definition not defined -sdaiTY_NDEF = 220, // Type not defined -sdaiTY_NVLD = 230, // Type invalid -sdaiRU_NEXS = 240, // Rule does not exist -sdaiFN_NAVL = 250, // Function not available -sdaiEI_NEXS = 260, // Entity instance does not exist -sdaiAT_NDEF = 270, // Attribute not defined -sdaiSI_DUP = 280, // Schema instance duplicate -sdaiVT_NVLD = 290, // Value type invalid -sdaiAG_NEXS = 300, // Aggregate does not exist -sdaiIR_NEXS = 310, // Iterator does not exist -sdaiAG_NSET = 320, // Aggregate is empty -sdaiIR_NSET = 330, // Current member is not defined -sdaiAD_NVLD = 340, // Aggregate definition invalid -sdaiVA_NSET = 350, // Value not set -sdaiIX_NVLD = 360, // Index invalid -sdaiED_NAVL = 370, // Entity definition is not available -sdaiSI_NEXS = 380, // Schema instance does not exist -sdaiEI_NAVL = 390, // Entity instance not available -sdaiSC_DUP = 400, // Scope duplicate -sdaiEI_NEXP = 410, // Entity instance not exported -sdaiMO_NINT = 420, // SDAI-model not interoperable -sdaiSY_ERR = 1000 // Underlying system error -}; -*/ -#include - -#include - -// define Object which I am calling sdaiObject for now - DAS -#include - -/****************************************************************************** -ENUMERATION - These types do not use the interface specified. - The interface used is to enumerated values. The enumerations are - mapped in the following way: - * enumeration-item-from-schema ==> enumeration item in c++ enum clause - * all enumeration items in c++ enum are in upper case - * the value ENUM_NULL is used to represent NULL for all enumerated types - *****************************************************************************/ - -#include - -/****************************************************************************** -BOOLEAN and LOGICAL - - Logical are implemented as an enumeration in sdaiEnum.h: - - Boolean are implemented as an enumeration in sdaiEnum.h: - -******************************************************************************/ - -// ***note*** this file needs classes from sdaiEnum.h -// define DAObjectID and classes PID, PID_DA, PID_SDAI, DAObject, DAObject_SDAI -#include - - -#include -#include - -/****************************************************************************** -SELECT - - Selects are represented as subclasses of the SCLP23(Select) class in - sdaiSelect.h - -******************************************************************************/ -#include - -//typedef char * SCLP23_NAME(Entity_name); - -class SCLP23_NAME(Model_contents); -typedef SCLP23_NAME(Model_contents) * SCLP23_NAME(Model_contents_ptr); -typedef SCLP23_NAME(Model_contents_ptr) SCLP23_NAME(Model_contents_var); - -#include - -#include -#include -#include -#include - -#ifndef CC_NO_NESTED_CLASSES -#ifndef PART26 -}; // end struct P23_NAMESPACE -#endif // PART26 -#endif // CC_NO_NESTED_CLASSES - -#ifdef PART26 - -//#define SDAI_DEF_TIE_P26_Application_instance(x) DEF_TIE_P26_Application_instance(x) - -#define Application_instance_i SCLP23(Application_instance) -DEF_TIE_IDL_Application_instance(Application_instance_i) -//DEF_TIE_P26_Application_instance(Application_instance_i) -//DEF_TIE_IDL_Application_instance(SCLP23(Application_instance)) -#endif - - // ENTITY -extern SCLP23(Application_instance) NilSTEPentity; -#define ENTITY_NULL &NilSTEPentity -#define NULL_ENTITY &NilSTEPentity -#define S_ENTITY_NULL &NilSTEPentity - - -//#define STEPentity SCLP23_NAME(Application_instance); -typedef SCLP23(Application_instance) STEPentity; -typedef SCLP23(Application_instance)* STEPentity_ptr; -typedef STEPentity_ptr STEPentity_var; - -typedef SCLP23(Application_instance)* STEPentityPtr; -typedef SCLP23(Application_instance)* STEPentityH; - -extern SCLP23(Application_instance) * -ReadEntityRef(std::istream &in, ErrorDescriptor *err, char *tokenList, - InstMgr * instances, int addFileId); - -#define SdaiInteger SCLP23(Integer) -#define SdaiReal SCLP23(Real) - -#define STEPenumeration SCLP23(Enum) -#define SdaiSelect SCLP23(Select) -#define SdaiString SCLP23(String) -#define SdaiBinary SCLP23(Binary) - -#define S_INT_NULL SCLP23(INT_NULL) -#define S_REAL_NULL SCLP23(REAL_NULL) -#define S_NUMBER_NULL SCLP23(NUMBER_NULL) - -/****************************************************************************** -AGGREGATE TYPES - - Aggregate types are accessed generically. (There are not seperate - classes for the different types of aggregates.) Aggregates are - implemented through the STEPaggregate class. - -******************************************************************************/ - -#ifdef __OSTORE__ -SCLP23(BOOL) *create_BOOL(os_database *db); -#else -inline SCLP23(BOOL) *create_BOOL() { return new SCLP23(BOOL) ; } -#endif - -#ifdef __OSTORE__ -SCLP23(LOGICAL) *create_LOGICAL(os_database *db); -#else -inline SCLP23(LOGICAL) *create_LOGICAL() { return new SCLP23(LOGICAL) ; } -#endif - -// below is outdated -typedef SCLP23(Select) * SdaiSelectH; - -//#define INT_NULL MAXLONG -// C from limits.h -//#define S_INT_NULL LONG_MAX - -//#define S_REAL_NULL 10 ** DBL_MAX_10_EXP -//#define FLT_MIN 1E-37 - port 29-Mar-1994 kcm -// C++ from values.h DAS PORT - -//#define REAL_NULL MINFLOAT -// C from float.h -//#define S_REAL_NULL FLT_MIN - -//#define NUMBER_NULL MINFLOAT -// C from float.h -//#define S_NUMBER_NULL FLT_MIN - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiApplication_instance.h b/source/geometry/solids/STEP/include/sdaiApplication_instance.h deleted file mode 100644 index 84fd96829d..0000000000 --- a/source/geometry/solids/STEP/include/sdaiApplication_instance.h +++ /dev/null @@ -1,233 +0,0 @@ -#ifndef STEPENTITY_H -#define STEPENTITY_H 1 - -//#ifdef PART26 -//#include -//#include -//#endif - -/* -* NIST STEP Core Class Library -* clstepcore/sdaiApplication_instance.h -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiApplication_instance.h,v 1.2 2003/06/06 17:07:31 gcosmo Exp $ */ - -//#ifdef __OSTORE__ -//#include // Required to access ObjectStore Class Library -//void Application_instance_access_hook_in(void *object, -// enum os_access_reason reason, void *user_data, -// void *start_range, void *end_range); -//#endif - -//#ifdef __O3DB__ -//#include -//#endif - -//#include -//#include - -//#include - -//#include - -//class STEPattributeList; -//class STEPattribute; - -//#include -//#include - -//class InstMgr; -//class EntityDescriptor; - -/////////////////////////////////////////////////////////////////////////////// -// SCLP23(Application_instance) used to be STEPentity - -//class SCLP23_NAME(Application_instance) /* : public SCLP23(DAObject_SDAI) */ -class SCLP23_NAME(Application_instance) : public SCLP23_NAME(DAObject_SDAI) -{ - private: - int _cur; // provides a built-in way of accessing attributes in order. - - public: - STEPattributeList attributes; - int STEPfile_id; - ErrorDescriptor _error; - SCLstring *p21Comment; - // registry additions - EntityDescriptor *eDesc; - - // head entity for multiple inheritance. If it is null then this - // SCLP23_NAME(Application_instance) is not part of a multiply inherited entity. If it - // points to a SCLP23_NAME(Application_instance) then this SCLP23_NAME(Application_instance) is part of a mi entity - // and head points at the root SCLP23_NAME(Application_instance) of the primary inheritance - // path (the one that is the root of the leaf entity). - SCLP23_NAME(Application_instance) *headMiEntity; - // these form a chain of other entity parents for multiple inheritance - SCLP23_NAME(Application_instance) *nextMiEntity; - - protected: - int _complex; - - public: - SCLP23_NAME(Application_instance) (); - SCLP23_NAME(Application_instance) (int fileid, int complex = 0); - virtual ~SCLP23_NAME(Application_instance)(); - - int IsComplex() const { return _complex; } - -#ifdef PART26 -// virtual P26::Application_instance_ptr create_TIE(); - virtual IDL_Application_instance_ptr create_TIE(); -#endif - -#ifndef PART26 - void StepFileId (int fid) { STEPfile_id = fid; } - int StepFileId() const { return STEPfile_id; } -#else - void StepFileId (CORBA::Long fid, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) - throw (CORBA::SystemException) - { STEPfile_id = fid; } - CORBA::Long StepFileId (CORBA::Environment &IT_env= - CORBA::IT_chooseDefaultEnv ()) - throw (CORBA::SystemException) - { return STEPfile_id; } - -// The IDL for the following 2 functions -// string GetPersistentLabel() raises(SDAIException); -// string GetDescription() raises(SDAIException); - -// virtual char * GetPersistentLabel (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException, SCLP26(SDAIException)) - virtual char * GetPersistentLabel (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException, SDAIException) - { return 0; } - -// virtual char * GetDescription (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException, SCLP26(SDAIException)) - virtual char * GetDescription (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException, SDAIException) - { return 0; } - -#endif - - void AddP21Comment(SCLstring &s, int replace = 1); - void AddP21Comment(const char *s, int replace = 1); - void DeleteP21Comment() { delete p21Comment; p21Comment = 0; } - - // guaranteed a string (may be null string) - const char *P21Comment() - { return ( p21Comment ? p21Comment->chars() : "" ); } - // returns null if no comment exists - const char *P21CommentRep() - { return ( p21Comment ? p21Comment->rep() : 0 ); } - - const char *EntityName( const char *schnm =NULL) const; - - virtual const EntityDescriptor * IsA(const EntityDescriptor *) const; - - virtual Severity ValidLevel(ErrorDescriptor *error, InstMgr *im, - int clearError = 1); - ErrorDescriptor &Error() { return _error; } - // clears entity's error and optionally all attr's errors - void ClearError(int clearAttrs = 1); - // clears all attr's errors - void ClearAttrError(); -// void EnforceOptionality(int on = 1); - - virtual SCLP23_NAME(Application_instance) *Replicate(); - -// ACCESS attributes in order. - int AttributeCount(); - STEPattribute * NextAttribute(); - void ResetAttributes() { _cur =0; } - -// READ - virtual Severity STEPread(int id, int addFileId, - class InstMgr * instance_set, - std::istream& in =G4cin, const char *currSch =NULL, - int useTechCor =1); - virtual void STEPread_error(char c, int index, std::istream& in); - -// WRITE - virtual void STEPwrite(std::ostream& out =G4cout, const char *currSch =NULL, - int writeComments = 1); - virtual const char * STEPwrite(SCLstring &buf, const char *currSch =NULL); - - void WriteValuePairs(std::ostream& out, const char *currSch =NULL, - int writeComments = 1, int mixedCase = 1); - - void STEPwrite_reference (std::ostream& out =G4cout); - const char * STEPwrite_reference (SCLstring &buf); - - void beginSTEPwrite(std::ostream& out =G4cout); // writes out the SCOPE section - void endSTEPwrite(std::ostream& out =G4cout); - -// MULTIPLE INHERITANCE - int MultipleInheritance() { return !(headMiEntity == 0); } - - void HeadEntity(SCLP23_NAME(Application_instance) *se) { headMiEntity = se; } - SCLP23_NAME(Application_instance) * HeadEntity() { return headMiEntity; } - - SCLP23_NAME(Application_instance) *GetNextMiEntity() { return nextMiEntity; } - SCLP23_NAME(Application_instance) *GetMiEntity(char *EntityName); - void AppendMultInstance(SCLP23_NAME(Application_instance) *se); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - - protected: - STEPattribute * GetSTEPattribute (const char *); - STEPattribute * MakeDerived (const char *); - STEPattribute * MakeRedefined (STEPattribute *redefiningAttr, - const char * nm); - - virtual void CopyAs (SCLP23_NAME(Application_instance) *); - void PrependEntityErrMsg(); - public: - // these functions are going to go away in the future. - int SetFileId(int fid) { return STEPfile_id = fid; } - int GetFileId() const { return STEPfile_id; } - int FileId (int fid) { return STEPfile_id = fid; } - int FileId() const { return STEPfile_id; } - -} -; - -// current style of CORBA handles for Part 23 -typedef SCLP23_NAME(Application_instance)* SCLP23_NAME(Application_instance_ptr); -typedef SCLP23_NAME(Application_instance_ptr) SCLP23_NAME(Application_instance_var); - -// Everything below has been moved to sdai.h -/* -//#ifdef PART26 -//DEF_TIE_P26_IDL_Application_instance(SCLP23_NAME(Application_instance)) -//#endif -*/ -/////////////////////////////////////////////////////////////////////////////// - -//extern SCLP23_NAME(Application_instance) NilSTEPentity; -//#define ENTITY_NULL &NilSTEPentity -//#define NULL_ENTITY &NilSTEPentity - -//typedef SCLP23_NAME(Application_instance)* STEPentity_ptr; -//typedef STEPentity_ptr STEPentity_var; - -//typedef SCLP23_NAME(Application_instance)* STEPentityPtr; -//typedef SCLP23_NAME(Application_instance)* STEPentityH; - -//extern SCLP23_NAME(Application_instance) * -//ReadEntityRef(std::istream &in, ErrorDescriptor *err, char *tokenList, -// InstMgr * instances, int addFileId); - -//typedef SCLP23_NAME(Application_instance) * (* Creator) () const; -//typedef SCLP23_NAME(Application_instance) * (* Creator) () ; - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiApplication_instance_set.h b/source/geometry/solids/STEP/include/sdaiApplication_instance_set.h deleted file mode 100644 index 905261e92e..0000000000 --- a/source/geometry/solids/STEP/include/sdaiApplication_instance_set.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 1990, 1991 Stanford University - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Stanford not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Stanford makes no representations about - * the suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * UArray - dynamic array object. - */ -/* - * UArray - dynamic array object. - */ - -#ifndef SDAI_APPLICATION_INSTANCE_SET_h -#define SDAI_APPLICATION_INSTANCE_SET_h - -//#include - -class SCLP23_NAME(Application_instance__set); -typedef SCLP23_NAME(Application_instance__set) * - SCLP23_NAME(Application_instance__set_ptr); -typedef SCLP23_NAME(Application_instance__set_ptr) - SCLP23_NAME(Application_instance__set_var); - -class SCLP23_NAME(Application_instance__set) -{ -public: - SCLP23_NAME(Application_instance__set)(int = 16); - ~SCLP23_NAME(Application_instance__set)(); - - SCLP23_NAME(Application_instance_ptr)& operator[](int index); - void Insert(SCLP23_NAME(Application_instance_ptr), int index); - void Append(SCLP23_NAME(Application_instance_ptr)); - void Remove(int index); - void Remove(SCLP23_NAME(Application_instance_ptr)); - int Index(SCLP23_NAME(Application_instance_ptr)); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - SCLP23_NAME(Application_instance_ptr)* _buf; - int _bufsize; - int _count; -}; - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiDaObject.h b/source/geometry/solids/STEP/include/sdaiDaObject.h deleted file mode 100644 index fbff9e2249..0000000000 --- a/source/geometry/solids/STEP/include/sdaiDaObject.h +++ /dev/null @@ -1,662 +0,0 @@ -#ifndef SDAIDAOBJECT_H -#define SDAIDAOBJECT_H 1 - -/* -#include - -#ifdef PART26 -#include -#include -#else -typedef char* DAObjectID; -#endif - -#include -*/ - -#ifndef PART26 -typedef char* SCLP23_NAME(DAObjectID); -#endif - - // interface PID (ISO/DIS 10303-23:1996(E) 5.3.10.1) - // Also, CORBA POS specification, Section 5.4 - // - // The PID class maintains the persistent object identifier for every - // persistent object, objects of class DAObject, and objects of any class - // derived directly or indirectly from DAObject. - // - // POS: The PID identifies one or more locations within a Datastore that - // represent the persistent data of an object and generates a string - // identifier for that data. An object must have a PID in order to store - // its data persistently. - // -/* - The EXPRESS ENTITY application_instance from the SDAI_data_type_schema from - clause 10 in ISO 10303-22, shall be mapped to the C++ class - Application_instance. The class Application_instance shall be a subtype of - the C++ class DAObject and of the C++ class Entity_instance. - The class DAObject is supported by the classes PID, PID_SDAI and the type - SCLP23(DAObjectID) as follows: - */ - -class SCLP23_NAME(PID) : public SCLP23_NAME(sdaiObject) -{ - public: - -// These are in the IDL generated code for Part 26. I will have to think about -// why they should be here (for Part 23). DAS -// static PID_ptr _duplicate(PID_ptr); -// static PID_ptr _narrow(SCLP23_NAME(sdaiObject_ptr)); -// static PID_ptr _nil(); - - SCLP23_NAME(String) _datastore_type ; - SCLP23_NAME(String) _pidstring ; - - // constructor/destructor - SCLP23_NAME(PID)(); - virtual ~SCLP23_NAME(PID)(); - -#ifndef PART26 - /* - The Datestore_type attribute shall identify the type of the underlying - datastore. - */ - char* Datastore_type() const { return (char*) _datastore_type.chars(); } - void Datastore_type(char *x) { _datastore_type = x; } - - /* - This function shall return a string version of the receiver. - */ - char* get_PIDString(); -#else - virtual void datastore_type (const char * x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { _datastore_type = x; } - - virtual char * datastore_type (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { return CORBA::string_dupl(_datastore_type); } - - virtual char * get_PIDString (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { return CORBA::string_dupl(_pidstring); } -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -#ifdef PART26 -//DEF_TIE_PID( SCLP23_NAME(PID) ) -#endif - -typedef SCLP23_NAME(PID)* SCLP23_NAME(PID_ptr); -typedef SCLP23_NAME(PID_ptr) SCLP23_NAME(PID_var); - - - // interface PID_DA (ISO/DIS 10303-23:1996(E) 5.3.10.3) - // Also, CORBA POS specification, Direct Access Protocol, Section 5.10.1 - // - // The Direct Access Protocol supports direct access to persistent data - // through typed attributes organized in data objects that are defined - // in a Data Definition Language (DDL). An object using this protocol - // whould represent its persistent data as one or more interconnected - // data objects, For uniformity, the persistent data of an object is - // described as a single data object; however, that data object might be - // the root of a graph of data objects interconnected by stored data - // object references. If an object uses multiple data objects, the - // object traverses the graph by following stored data object references. - // - // The PID_DA class maintains the persistent object identifier for an - // application DAObject. - // - // POS: The Persistent Identifiers (PIDs) used by the PDS_DA contain - // an object identifier that is local to the particular PDS. This value - // may be accessed through this extension to the CosPersistencePID - // interface. - // - -class SCLP23_NAME(PID_DA): public SCLP23_NAME(PID) -{ - public: - - SCLP23_NAME(String) _oid ; - // oid (ISO/DIS 10303-23:1996(E) 5.3.10.3) - // - // This attribute shall set and return the string representation of the - // persistent identifier, local to the Model_contents, of the DAObject - // referred to by this object. - // - // POS: This returns the data object identifier used by this PDS for - // the data object specified by the PID. The SCLP23(DAObjectID) type is - // defined as an unbounded sequence of bytes that may be - // vendor-dependent. - // - - // constructor/destructor - SCLP23_NAME(PID_DA)(); - virtual ~SCLP23_NAME(PID_DA)(); - -#ifndef PART26 - virtual void oid (const SCLP23_NAME(DAObjectID) x) { _oid = x; } - virtual SCLP23_NAME(DAObjectID) oid () const - { return (char*) _oid.chars(); } -#else -// virtual void oid (const SCLP26(DAObjectID) x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - virtual void oid (const DAObjectID x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { _oid = x; } -// virtual SCLP26(DAObjectID) oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - virtual DAObjectID oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { return CORBA::string_dupl(_oid); } -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -#ifdef PART26 -//DEF_TIE_PID_DA( SCLP23(PID_DA) ) -#endif - -typedef SCLP23_NAME(PID_DA)* SCLP23_NAME(PID_DA_ptr); -typedef SCLP23_NAME(PID_DA_ptr) SCLP23_NAME(PID_DA_var); - - // interface PID_SDAI (ISO/DIS 10303-23:1996(E) 5.3.10.2) - // - // The PID_SDAI class maintains the persistent object identifier for - // a Model_contents object. - // -class SCLP23_NAME(PID_SDAI) : public SCLP23_NAME(PID) -{ - public: - SCLP23_NAME(String) _modelid ; - -// static PID_SDAI_ptr _duplicate(PID_SDAI_ptr); -// static PID_SDAI_ptr _narrow(SCLP23_NAME(sdaiObject_ptr)); -// static PID_SDAI_ptr _nil(); - - // constructor/destructor - SCLP23_NAME(PID_SDAI)(); - virtual ~SCLP23_NAME(PID_SDAI)(); - - // Modelid (ISO/DIS 10303-23:1996(E) 5.3.10.3) - // - // This attribute shall set and return the string representation of - // the persistent identifier of the cluster of data for the - // Model_contents referred to by this PID. - // -#ifndef PART26 - virtual void Modelid (const char * x) { _modelid = x; } - virtual char * Modelid () const { return (char*) _modelid.chars(); } -#else - virtual void Modelid (const char * x, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { _modelid = x; } - - virtual char * Modelid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { return CORBA::string_dupl(_modelid); } -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -#ifdef PART26 -//DEF_TIE_PID_SDAI( SCLP23(PID_SDAI) ) -#endif - -typedef SCLP23_NAME(PID_SDAI)* SCLP23_NAME(PID_SDAI_ptr); -typedef SCLP23_NAME(PID_SDAI_ptr) SCLP23_NAME(PID_SDAI_var); - - // interface DAObject (ISO/DIS 10303-23:1996(E) 5.3.10.5) - // Also, CORBA POS Section 5.10.2, Direct Access Protocol. - // - // From POS: The DAObject interface provides operations that many data - // object clients need. A Datastore implementation may provide support - // for these operations automatically for its data objects. A data object - // is not required to support this interface. A client can obtain access - // to these operations by narrowing a data object reference to the - // DAObject interface. - // - - // predefine these _ptr since they are used inside this class -class SCLP23_NAME(DAObject); -typedef SCLP23_NAME(DAObject)* SCLP23_NAME(DAObject_ptr); -typedef SCLP23_NAME(DAObject_ptr) SCLP23_NAME(DAObject_var); - -class SCLP23_NAME(DAObject) : public SCLP23_NAME(sdaiObject) -//class DAObject : public SCLP23_NAME(sdaiObject) -{ - public: - - SCLP23_NAME(String) _dado_oid; -// static DAObject_ptr _duplicate(DAObject_ptr); -// static DAObject_ptr _narrow(SCLP23_NAME(sdaiObject_ptr)); -// static DAObject_ptr _nil(); - - // dado_same (ISO/DIS 10303-23:1996(E) 5.3.10.5) - // - // Returns TRUE if obj points to the same object as self - // - // POS specification description: This returns true if the target - // data object and the parameter data object are the same data object. - // This operation can be used to test data object references for - // identity. - // - - // constructor/destructor - SCLP23_NAME(DAObject)(); - virtual ~SCLP23_NAME(DAObject)(); - -#ifdef PART26 -// virtual SCLP26(Application_instance_ptr) create_TIE(); - virtual IDL_Application_instance_ptr create_TIE(); -#endif - -#ifndef PART26 - SCLBOOL_H(Bool) dado_same(SCLP23_NAME(DAObject_ptr) obj) - { - // this will make the compiler happy that we used obj - strcmp(obj->dado_oid(),dado_oid()); - return SCLBOOL_H(BUnset); - } -#else - virtual SCLBOOL_H(Bool) dado_same (SCLP23_NAME(DAObject_ptr) obj, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) { return SCLBOOL_H(BUnset); } -#endif - - // Get persistent label (ISO/DIS 10303-22:1996(E) 10.11.6) - // - // This operation returns a persistent label for the specified - // application instance. The label shall be unique within the - // repository containing the SDAI-model containing the application - // instance. Any subsequent request for a persistent label for the - // same application instance shall return the same persistent label - // in the current or nay subsequent SDAI session. - // - // Possible Error indicators: - // - // sdaiTR_NEXS The transaction has not been started - // sdaiTR_NAVL The transaction is currently not available - // sdaiTR_EAB The transaction ended abnormally - // sdaiRP_NOPN The repository is not open - // sdaiEI_NEXS The entity instance does not exist - // sdaiFN_NAVL This function is not supported by the implementation - // sdaiSY_ERR An underlying system error occurred - // - // POS specification description: This returns the object identifier - // for the data object. The scope of data object identifiers is - // implementation-specific, but is not guaranteed to be global. - // - /* jg == The return value of this function in Part 23 is PID_DA which - seems wrong. We follow the CORBAservices specification here. - (Persistent Object Service Specification, Section 5.10). Also - note that the return value as described in the text above - should be a string type. - */ -#ifndef PART26 - SCLP23_NAME(DAObjectID) dado_oid() - { return (char*) _dado_oid.chars(); } -#else -// virtual SCLP26(DAObjectID) dado_oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - virtual DAObjectID dado_oid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { return CORBA::string_dupl(_dado_oid); } -#endif - - // dado_pid - // - // POS specification description: This returns a PID_DA for the - // data object. - // - /* jg == This function is not included in Part 23 and 26. However, it is - part of interface DAObject in the specification of the - Persistent Object Service. - */ -#ifndef PART26 - SCLP23_NAME(PID_DA_ptr) dado_pid() - { return 0; } -#else - virtual SCLP23_NAME(PID_DA_ptr) dado_pid (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { return 0; } -#endif - - // dado_remove (ISO/DIS 10303-23:1996(E) 5.3.10.5) - // - // This function shall delete the object from persistent store and - // releases its resources. The function need not delete the aggregate- - // valued attributes of an object. - // - // POS specification description: This deletes the object from the - // persistent store and deletes the in-memory data object. - // -#ifndef PART26 - void dado_remove() - { } -#else - virtual void dado_remove (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { } -#endif - - // dado_free (ISO/DIS 10303-23:1996(E) 5.3.10.5) - // - // This function shall inform the implementation that it is free - // to move the object back to the persistent store. - // - // POS specification description: This informs the PDS (Persistent - // Data Service) that the data object is not required for the time - // being, and the PDS may move it back to persistent store. The data - // object must be preserved and must be brought back the next time it is - // referenced. This operation is only a hint and is provided to improve - // performance and resource usage. - // -#ifndef PART26 - void dado_free() - { } -#else - virtual void dado_free (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) - { } -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -/* - 5.3.10.1 DAObject_SDAI -*/ - -class SCLP23_NAME(DAObject_SDAI) : public SCLP23_NAME(DAObject) { - - public: - SCLP23_NAME(DAObject_SDAI)(); -// SCLP23_NAME(DAObject_SDAI)(const SCLP23_NAME(DAObject_SDAI)&); - - virtual ~SCLP23_NAME(DAObject_SDAI)(); - -#ifdef PART26 -// virtual SCLP26(Application_instance_ptr) create_TIE(); - virtual IDL_Application_instance_ptr create_TIE(); -#endif - - /* - 5.3.10.1.1 Find entity instance SDAI-model - */ - -// Model_ptr Owning_model() const; - - /* - The Owning_model function shall implement the SDAI operation, Find - entity instance SDAI-model. - - The following specifies the coorespondence between each SDAI - input/output and its equivalent specified in this Part. - - SDAI C++ - ------ ------- - Object receiver - Model return value - - 5.3.10.1.2 Find entity instance users - */ - -// Object__list_var FindObjectUsers(const -// Schema_instance__list_var& aggr) const; - - /* - The FindObjectUsers function shall implement the SDAI operation, - Find entity instance users. - - The following specifies the coorespondence between each SDAI - input/output and its equivalent specified in this Part. - - SDAI C++ - -------- -------- - Instance receiver - Domain aggr - Result return value - - 5.3.10.1.3 Is same - */ - - SCLLOG_H(Logical) IsSame(const SCLP23_NAME(sdaiObject_ptr)& otherEntity) const; - - /* - Function: - The IsSame function shall determine whether the parameter otherEntity - refers to the same instance as the receiver. This function shall - implement the behaviour of the EXPRESS operator (:=:). - - Output: - This function shall return TRUE if the two instances are identical. - This function shall return FALSE if the two instances are not identical. - This function shall return UNKNOWN if either instance is unset. - - Possible error indicators: - sdaiMX_NDEF // SDAI-model access not defined - sdaiEI_NEXS // Entity instance does not exist - sdaiTY_NDEF // Type not defined - sdaiSY_ERR // Underlying system error - - Origin: Convenience function - - 5.3.10.1.4 Get attribute - */ - -#ifdef SDAI_CPP_LATE_BINDING - Any_var GetAttr(const Attribute_ptr& attDef); - Any_var GetAttr(const char* attName); -#endif - - /* - The GetAttr functions shall implement the SDAI operation, Get attribute. - - The following specifies the coorespondence between each SDAI - input/output and its equivalent specified in this Part. - - SDAI C++ - ------ --------- - Object receiver - Attribute attDef, attName - Value return value - - 5.3.10.1.5 Get instance type - */ - -#ifdef SDAI_CPP_LATE_BINDING - const Entity_ptr GetInstanceType() const; -#endif - - /* - Function: - - The GetInstanceType functions shall implement the SDAI operation, - Get instance type. - - The following specifies the coorespondence between each SDAI - input/output and its equivalent specified in this Part. - - SDAI C++ - ------ -------- - Object receiver - Type return value - - 5.3.10.1.6 Is instance of - */ - - SCLBOOL_H(Bool) IsInstanceOf(const char* typeName) const; -#ifdef SDAI_CPP_LATE_BINDING - SCLBOOL_H(Bool) IsInstanceOf(const Entity_ptr& otherEntity) const; -#endif - - /* - Function: - The IsInstanceOf functions shall implement the SDAI operation Is - instance of. - - The following specifies the coorespondence between each SDAI - input/output and its equivalent specified in this Part. - - SDAI C++ - ------ -------- - Object receiver - Type typeName, otherEntity - Result return value - - 5.3.10.1.7 Is kind of - */ - - SCLBOOL_H(Bool) IsKindOf(const char* typeName) const; -#ifdef SDAI_CPP_LATE_BINDING - SCLBOOL_H(Bool) IsKindOf(const Entity_ptr& theType) const; -#endif - - /* - The IsKindOf functions shall implement the SDAI operation, Is kind of. - - The following specifies the coorespondence between each SDAI - input/output and its equivalent specified in this Part. - - SDAI C++ - ------ -------- - Object receiver - Type typeName, theType - Result return value - - 5.3.10.1.8 Is SDAI kind of - */ - - SCLBOOL_H(Bool) IsSDAIKindOf(const char* typeName) const; - -#ifdef SDAI_CPP_LATE_BINDING - SCLBOOL_H(Bool) IsSDAIKindOf(const Entity_ptr& theType) const; -#endif - - /* - The IsSDAIKindOf functions shall implement the SDAI operation, - Is SDAI Kind Of. - - The following specifies the coorespondence between each SDAI - input/output and its equivalent specified in this Part. - - SDAI C++ - ------ -------- - Object receiver - Type typeName, theType - Result return value - - 5.3.10.1.9 Test attribute - */ - -#ifdef SDAI_CPP_LATE_BINDING - SCLBOOL_H(Bool) TestAttr(const Attribute_ptr& attDef); - SCLBOOL_H(Bool) TestAttr(const char* attName) const; -#endif - - /* - The TestAttr functions shall implement the SDAI operation, - Test attribute. - - The following specifies the coorespondence between each SDAI - input/output and its equivalent specified in this Part. - - SDAI C++ - ------ --------- - Object receiver - Attribute attDef, attName - Result return value - - 5.3.10.1.10 Get instance type name - */ - -#ifndef SDAI_CPP_LATE_BINDING - char * GetInstanceTypeName() const; -#endif - /* - Function: - The GetInstanceType function shall retrieve the name of the type of - the receiver. - - Output: - This function shall return a String which contains the name of the - type of the receiver. The returned name shall be the name as it - appears in the Dictionary Model. - - Possible error indicators: - sdaiMX_NDEF // SDAI-model access not defined - sdaiEI_NEXS // Entity instance does not exist - sdaiSY_ERR // Underlying system error - - Origin: Convenience function - */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -}; - -typedef SCLP23_NAME(DAObject_SDAI)* SCLP23_NAME(DAObject_SDAI_ptr); -typedef SCLP23_NAME(DAObject_SDAI_ptr) SCLP23_NAME(DAObject_SDAI_var); - -class SCLP23_NAME(DAObject__set) { -public: -#ifdef __OSTORE__ - os_Collection &_rep; - os_Cursor _cursor; - SCLBOOL_H(Bool) _first; -#endif - - SCLP23_NAME(DAObject__set)(int = 16); - ~SCLP23_NAME(DAObject__set)(); - - SCLP23_NAME(DAObject_ptr) retrieve(int index); - int is_empty(); - -#ifndef __OSTORE__ - SCLP23_NAME(DAObject_ptr)& operator[](int index); -#endif - - void Insert(SCLP23_NAME(DAObject_ptr), int index); - void Append(SCLP23_NAME(DAObject_ptr)); - void Remove(int index); -#ifndef __OSTORE__ - int Index(SCLP23_NAME(DAObject_ptr)); - - void Clear(); -#endif - int Count(); - -#ifdef __OSTORE__ -// cursor stuff - SCLP23_NAME(DAObject_ptr) first(); - SCLP23_NAME(DAObject_ptr) next(); - SCLP23_NAME(Integer) more(); -#endif - -private: - void Check(int index); -private: - SCLP23_NAME(DAObject_ptr)* _buf; - int _bufsize; - int _count; - - public: - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -typedef SCLP23_NAME(DAObject__set)* SCLP23_NAME(DAObject__set_ptr); -typedef SCLP23_NAME(DAObject__set_ptr) SCLP23_NAME(DAObject__set_var); - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiEntity_extent.h b/source/geometry/solids/STEP/include/sdaiEntity_extent.h deleted file mode 100644 index 0ff31a2a36..0000000000 --- a/source/geometry/solids/STEP/include/sdaiEntity_extent.h +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef ENTITYEXTENT_H -#define ENTITYEXTENT_H 1 - -/* -//#include -//#include -//#include -//#include -*/ - -/* - 7.3.3 Entity extent -*/ - -class SCLP23_NAME(Entity_extent); -typedef SCLP23_NAME(Entity_extent) * SCLP23_NAME(Entity_extent_ptr); -typedef SCLP23_NAME(Entity_extent_ptr) SCLP23_NAME(Entity_extent_var); - -class SCLP23_NAME(Entity_extent) : public SCLP23_NAME(Session_instance) { - -friend class SCLP23_NAME(Model_contents); - /* - NOTE - The ModelContent class is a friend so that ModelContent may add - instances to Entity_extent instances. - */ - - public: //for now -// protected: - Entity_ptr _definition ; - SCLP23_NAME(Entity_name) _definition_name ; - SCLP23_NAME(DAObject__set) _instances ; // of Application_instance -// Entity_instance__set _instances ; // of entity_instance -// EntityAggregate _instances ; // of entity_instance -// Express in part 22 - INVERSE owned_by : sdai_model_contents FOR folders; - SCLP23_NAME(Model_contents__list) _owned_by ; // ADDED in Part 22 - -// private: - SCLP23_NAME(Entity_extent)(); -// SCLP23_NAME(Entity_extent)(const SCLP23_NAME(Entity_extent)& ee); - ~SCLP23_NAME(Entity_extent)(); // not in part 23 - - public: - - SCLP23_NAME(Entity_name) definition_name_() const - { return _definition_name; } - - const Entity_ptr definition_() const; -#ifdef SDAI_CPP_LATE_BINDING -// const Entity_ptr definition_() const; -#endif - - SCLP23_NAME(DAObject__set_var) instances_() { return &_instances; } - SCLP23_NAME(DAObject__set_var) instances_() const - { - // Removed meaningless 'const' qualifier on returned casted type - GC - return (SCLP23_NAME(DAObject__set_var))&_instances; - } - -// need to implement Model_contents__list - const SCLP23_NAME(Model_contents__list_var) owned_by_() const; - -// static SCLP23_NAME(Entity_extent_ptr) -// _duplicate(SCLP23_NAME(Entity_extent_ptr) eep); -// static SCLP23_NAME(Entity_extent_ptr) _narrow(Object_ptr op); -// static SCLP23_NAME(Entity_extent_ptr) _nil(); - -// private: - void definition_(const Entity_ptr& ep); -#ifdef SDAI_CPP_LATE_BINDING -// void definition_(const Entity_ptr& ep); -#endif - void definition_name_(const SCLP23_NAME(Entity_name)& ep); - void owned_by_(SCLP23_NAME(Model_contents__list_var)& mcp); - - /* - 7.3.3.1 SDAI operation declarations - - 7.3.3.1.1 AddInstance - */ - - // this is no longer in Part 23 - void AddInstance(const SCLP23_NAME(DAObject_ptr)& appInst); - - /* - Function: - - The AddInstance function shall add the entity instance entity - handle to the instances set of the receiver. - - Possible error indicators: - sdaiSS_NOPN // Session not open - sdaiRP_NOPN // Repository not open - sdaiMO_NEXS // SDAI-model does not exist - sdaiMX_NRW // SDAI-model access not read-write - sdaiSY_ERR // Underlying system error - - Origin: Convenience function - */ - - // this is no longer in Part 23 -#ifndef __OSTORE__ - void RemoveInstance(const SCLP23_NAME(DAObject_ptr)& appInst); -#endif - - /* - 7.3.3.1.2 RemoveInstance - Function: - The RemoveInstance function shall remove the entity instance entity - handle from the instances set of the receiver. - - Possible error indicators: - sdaiSS_NOPN // Session not open - sdaiRP_NOPN // Repository not open - sdaiMO_NEXS // SDAI-model does not exist - sdaiMX_NRW // SDAI-model access not read-write - sdaiSY_ERR // Underlying system error - - Origin: Convenience function - */ - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiEntity_extent_set.h b/source/geometry/solids/STEP/include/sdaiEntity_extent_set.h deleted file mode 100644 index 0f2cd2a4b5..0000000000 --- a/source/geometry/solids/STEP/include/sdaiEntity_extent_set.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) 1990, 1991 Stanford University - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Stanford not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Stanford makes no representations about - * the suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * UArray - dynamic array object. - */ -/* - * UArray - dynamic array object. - */ - -#ifndef SDAIENTITY_EXTENT_SET_h -#define SDAIENTITY_EXTENT_SET_h - -/* -//#include -//#include -*/ - -class SCLP23_NAME(Entity_extent__set) { -public: -#ifdef __OSTORE__ - os_Collection &_rep; - os_Cursor _cursor; - SCLBOOL_H(Bool) _first; -#endif - - SCLP23_NAME(Entity_extent__set)(int = 16); - ~SCLP23_NAME(Entity_extent__set)(); - - SCLP23_NAME(Entity_extent_ptr) retrieve(int index); - int is_empty(); - -#ifndef __OSTORE__ - SCLP23_NAME(Entity_extent_ptr)& operator[](int index); -#endif - void Insert(SCLP23_NAME(Entity_extent_ptr), int index); - void Append(SCLP23_NAME(Entity_extent_ptr)); - void Remove(int index); -#ifndef __OSTORE__ - int Index(SCLP23_NAME(Entity_extent_ptr)); - - void Clear(); -#endif - int Count(); - -#ifdef __OSTORE__ -// cursor stuff - SCLP23_NAME(Entity_extent_ptr) first(); - SCLP23_NAME(Entity_extent_ptr) next(); - SCLP23_NAME(Integer) more(); -#endif - -private: - void Check(int index); -private: - SCLP23_NAME(Entity_extent_ptr)* _buf; - int _bufsize; - int _count; - - public: - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -typedef SCLP23_NAME(Entity_extent__set)* SCLP23_NAME(Entity_extent__set_ptr); -typedef SCLP23_NAME(Entity_extent__set_ptr) SCLP23_NAME(Entity_extent__set_var); - -/* -class Entity_extent__set { -public: - Entity_extent__set(int = 16); - ~Entity_extent__set(); - - Entity_extent_ptr& operator[](int index); - void Insert(Entity_extent_ptr, int index); - void Append(Entity_extent_ptr); - void Remove(int index); - int Index(Entity_extent_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - Entity_extent_ptr* _buf; - int _bufsize; - int _count; -}; -*/ -#endif diff --git a/source/geometry/solids/STEP/include/sdaiEnum.h b/source/geometry/solids/STEP/include/sdaiEnum.h deleted file mode 100644 index 24886a8ab2..0000000000 --- a/source/geometry/solids/STEP/include/sdaiEnum.h +++ /dev/null @@ -1,251 +0,0 @@ -#ifndef P23ENUM_H -#define P23ENUM_H - -/* -* NIST STEP Core Class Library -* clstepcore/Enum.h -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiEnum.h,v 1.2 2003/06/06 17:07:32 gcosmo Exp $ */ -#if 0 - -#ifdef PART26 -// Change the name of the include file defining the defs for Bool and Logical -// inside the file corbaIncludes.h -#include -#endif - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -#include - -#include -#include - -#endif - -//#define ENUM_NULL -1 - - -//class STEPenumeration { -class SCLP23_NAME(Enum) { - friend std::ostream &operator<< ( std::ostream&, const SCLP23_NAME(Enum)& ); - protected: - int v; // integer value of enumeration instance - // mapped to a symbolic value in the elements - - virtual int set_value (const char * n); - virtual int set_value (const int n); - SCLP23_NAME(Enum)(); - virtual ~SCLP23_NAME(Enum)(); - - public: - - void PrintContents(std::ostream &out = G4cout) const - { DebugDisplay(out); } - - virtual int no_elements () const =0; - virtual const char * Name () const =0; - const char * get_value_at (int n) const { return element_at (n); } - virtual const char * element_at (int n) const =0; - - Severity EnumValidLevel(const char *value, ErrorDescriptor *err, - int optional, char *tokenList, - int needDelims = 0, int clearError = 1); - - Severity EnumValidLevel(std::istream &in, ErrorDescriptor *err, - int optional, char *tokenList, - int needDelims = 0, int clearError = 1); - - const int asInt () const { return v; } - - const char * asStr (SCLstring &s) const; - void STEPwrite (std::ostream& out = G4cout) const; - const char * STEPwrite (SCLstring &s) const; - - Severity StrToVal (const char * s, ErrorDescriptor *err, int optional = 1); - Severity STEPread(std::istream& in, ErrorDescriptor *err, int optional = 1); - Severity STEPread(const char *s, ErrorDescriptor *err, int optional = 1); - - virtual int put (int val); - virtual int put (const char * n); - int is_null () const - { return ! (exists()); } - void set_null() { nullify(); } - SCLP23_NAME(Enum)& operator= (const int); - SCLP23_NAME(Enum)& operator= (const SCLP23_NAME(Enum)&); - -// operator ULong() const { return v; } // return the integer equivalent - - virtual int exists() const; // return 0 if unset otherwise return 1 - virtual void nullify(); // change the receiver to an unset status - // unset is generated to be 1 greater than last element - void DebugDisplay (std::ostream& out =G4cout) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - - protected: - virtual Severity ReadEnum(std::istream& in, ErrorDescriptor *err, - int AssignVal = 1, int needDelims = 1); -}; - - -//struct P23_NAMESPACE { - -#ifndef _ODI_OSSG_ -class SCLP23_NAME(LOGICAL); -class SCLP23_NAME(BOOL); -#endif - -// If NO_BOOLS_LOGS is defined then Bool and Logical need to be defined -// elsewhere. Namely they are specified by Part 26 to be defined within the -// context of CORBA in IDL. That means they need to have code generated for -// them by the IDL compiler so that they are understood by the compiler in the -// IDL generated code. Of course that means they can't be defined here. It also -// means that their definition needs to be included here. That is done by -// changing the file included above as #include Go to that -// file and change the name of the file included there. -// If NO_BOOL_LOGS is not defined they will be defined here and must be -// prefixed with SCLBOOL() or SCLLOG() parameterized macro when used. (see -// clstepcore/sclprefixes.h) -// If you need Logical and Bool to be prefixed with something else because it -// is defined in another name space: -// 1. define NO_BOOLS_LOGS (so they are not defined here) -// 2. change the definition of the macros defining the parameterized -// macros (SCLBOOL, SCLBOOL_H, SCLLOG, and SCLLOG_H) in -// clstepcore/sclprefixes.h -// DAS -#ifndef NO_BOOLS_LOGS -enum SCLBOOL_H(Bool) { SCLBOOL_H(BFalse), SCLBOOL_H(BTrue), SCLBOOL_H(BUnset) }; -enum SCLLOG_H(Logical) { SCLLOG_H(LFalse), SCLLOG_H(LTrue), SCLLOG_H(LUnset), SCLLOG_H(LUnknown) }; -#endif - -// old SCL definition -//enum LOGICAL { sdaiFALSE, sdaiTRUE, sdaiUNKNOWN }; - -class SCLP23_NAME(LOGICAL) : -public SCLP23_NAME(Enum) { - public: - const char * Name() const; - - SCLP23_NAME(LOGICAL) (char * val =0); - SCLP23_NAME(LOGICAL) (SCLLOG_H(Logical) state); - SCLP23_NAME(LOGICAL) (const SCLP23_NAME(LOGICAL)& source); - SCLP23_NAME(LOGICAL) (int i); - -// this is to avoid a bug? in the ossg utility for ObjectStore -#ifndef __OSTORE__ -#ifndef _ODI_OSSG_ -// this causes an error with sun C++ because SCLP23_NAME(BOOL) is not a completely -// specified type. (this is supposed to be SDAI?) DAS -// SCLP23_NAME(LOGICAL) (const SCLP23_NAME(BOOL)& boo); -#endif -#endif - virtual ~SCLP23_NAME(LOGICAL) (); - - virtual int no_elements () const; - virtual const char * element_at (int n) const; - -// operator int () const; - operator SCLLOG_H(Logical) () const; - SCLP23_NAME(LOGICAL)& operator=(const SCLP23_NAME(LOGICAL)& t); - - SCLP23_NAME(LOGICAL) operator==( const SCLP23_NAME(LOGICAL)& t ) const; - - // these 2 are redefined because LUnknown has cardinal value > LUnset - int exists() const; // return 0 if unset otherwise return 1 - void nullify(); // change the receiver to an unset status - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - - protected: - virtual int set_value (const int n); - virtual int set_value (const char * n); - virtual Severity ReadEnum(std::istream& in, ErrorDescriptor *err, - int AssignVal = 1, int needDelims = 1); - -} -; - -class SCLP23_NAME(BOOL) : -public SCLP23_NAME(Enum) { - public: - const char * Name() const; - - SCLP23_NAME(BOOL) (char * val = 0); - SCLP23_NAME(BOOL) (SCLBOOL_H(Bool) state); - SCLP23_NAME(BOOL) (const SCLP23_NAME(BOOL)& source); - SCLP23_NAME(BOOL) (int i); - SCLP23_NAME(BOOL) (const SCLP23_NAME(LOGICAL)& val); - virtual ~SCLP23_NAME(BOOL) (); - - virtual int no_elements () const; - virtual const char * element_at (int n) const; - - operator SCLBOOL_H(Bool)() const; - SCLP23_NAME(BOOL)& operator=(const SCLP23_NAME(LOGICAL)& t); - - SCLP23_NAME(BOOL)& operator=(const SCLBOOL_H(Bool) t); -// operator int () const; -// operator SCLLOG_H(Logical) () const; - SCLP23_NAME(LOGICAL) operator==( const SCLP23_NAME(LOGICAL)& t ) const; - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif - -} -; - -// Commented following declarations (porting on DEC-cxx) - GC -// static const SCLP23_NAME(BOOL) SCLP23_NAME(TRUE); -// static const SCLP23_NAME(BOOL) SCLP23_NAME(FALSE); -// static const SCLP23_NAME(BOOL) SCLP23_NAME(UNSET); -// static const SCLP23_NAME(LOGICAL) SCLP23_NAME(UNKNOWN); - -//}; // end struct P23_NAMESPACE - -#if 0 -// *********** NOTE **************** -// These are now defined in sdai.h - -#ifdef __OSTORE__ -SCLP23(BOOL) *create_BOOL(os_database *db); -#else -inline SCLP23(BOOL) *create_BOOL() { return new SCLP23(BOOL) ; } -#endif - -#ifdef __OSTORE__ -SCLP23(LOGICAL) *create_LOGICAL(os_database *db); -#else -inline SCLP23(LOGICAL) *create_LOGICAL() { return new SCLP23(LOGICAL) ; } -#endif - -#endif - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiModel_contents.h b/source/geometry/solids/STEP/include/sdaiModel_contents.h deleted file mode 100644 index 545dcca9eb..0000000000 --- a/source/geometry/solids/STEP/include/sdaiModel_contents.h +++ /dev/null @@ -1,229 +0,0 @@ -#ifndef SDAIMODEL_CONTENTS_H -#define SDAIMODEL_CONTENTS_H 1 - -//SCLP23_NAME(Model_contents) - -/* - 7.3.2 SCLP23_NAME(Model_contents) -*/ - -/* -//#include - -// for Application_instance__set -//#include -//#include - -// for Entity_extent__set -//#include -//#include - -// for supertype Session_instance -//#include -*/ - -// The class SCLP23_NAME(Model_contents)_instances shall implement convenience functions by -// SCLP23_NAME(Model_contents) in this part of ISO 10303 - -class SCLP23_NAME(Model_contents_instances) : public SCLP23_NAME(DAObject) -{ - public: - - SCLP23_NAME(DAObject__set) _instances; - - SCLP23_NAME(Model_contents_instances)(); - virtual ~SCLP23_NAME(Model_contents_instances)(); - - // This function shall return the set of DAObjects contained in - // the receiver. - SCLP23_NAME(DAObject__set_var) contents_() { return &_instances; } - const SCLP23_NAME(DAObject__set_var) contents_() const - { - // Removed meaningless 'const' qualifier on returned casted type - GC - return (SCLP23_NAME(DAObject__set_var)) &_instances; - } - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -typedef SCLP23_NAME(Model_contents_instances) * - SCLP23_NAME(Model_contents_instances_ptr); -typedef SCLP23_NAME(Model_contents_instances_ptr) - SCLP23_NAME(Model_contents_instances_var); - -// Model_contents_ptr def pushed ahead of #include for Entity_extent -//class SCLP23_NAME(Model_contents); -//typedef SCLP23_NAME(Model_contents) SCLP23_NAME(Model_contents_ptr); - -class SCLP23_NAME(Model_contents) : public SCLP23_NAME(Session_instance) { - -//friend class SCLP23_NAME(Model); - - /* - NOTE - Model is a friend so that Model may access the contents of - the Entity_extents folders. - - DATA MEMBERS - */ - public: -// protected: // for now -// contains Application_instances (i.e. STEPentities) - SCLP23_NAME(Model_contents_instances) _instances; - - SCLP23_NAME(Entity_extent__set) _folders; // of entity_extent - - SCLP23_NAME(Entity_extent__set) _populated_folders; // of entity_extent - -// EntityAggregate _instances; // of Entity_instance -// EntityAggregate _folders; // of entity_extent -// EntityAggregate _populated_folders; // of entity_extent - - /* - Constructor declarations - */ - public: // for now at least -// private: - SCLP23_NAME(Model_contents)(); -// SCLP23_NAME(Model_contents)(const SCLP23_NAME(Model_contents)& mc); - ~SCLP23_NAME(Model_contents)(); - /* - Access function declarations - */ - public: - SCLP23_NAME(Model_contents_instances_ptr) instances_(); - const SCLP23_NAME(Model_contents_instances_ptr) instances_() const; - - SCLP23_NAME(Entity_extent__set_var) folders_(); - const SCLP23_NAME(Entity_extent__set_var) folders_() const; - - //Boolean TestFolders() const; - - const SCLP23_NAME(Entity_extent__set_var) populated_folders_() const; - SCLP23_NAME(Entity_extent__set_var) populated_folders_(); - //Boolean TestPopulated_folders() const; - -// static SCLP23_NAME(Model_contents_ptr) -// _duplicate(SCLP23_NAME(Model_contents_ptr)); -// static SCLP23_NAME(Model_contents_ptr) _narrow(Object_ptr); -// static SCLP23_NAME(Model_contents_ptr) _nil(); - - SCLP23_NAME(PID_DA_ptr) - get_object_pid(const SCLP23_NAME(DAObject_ptr &d)) const; - - SCLP23_NAME(DAObject_ptr) lookup(const SCLP23_NAME(PID_DA_ptr &p)) const; - - /* - SDAI operation declarations - - 7.3.2.1 SDAI operation declarations - - 7.3.2.1.1 Add instance - */ -// private: - public: // for now at least - SCLP23_NAME(DAObject_ptr) - CreateEntityInstance(const char * Type); - - // until we find out what this should really be in the spec - void AddInstance(const SCLP23_NAME(DAObject_SDAI_ptr)& appInst); -// void AddInstance(const Entity_instance_ptr& entityHandle); - //void AddInstance(EntityInstanceH& entityHandle); - /* Function: - The AddInstance function shall add the entity instance entity handle - to the instances set of the receiver. This function shall add the - entity instance entityHandle to each Entity_extent in the folders - attribute of the receiver for which the type or a subtype of the - type contained in the folder corresponds to the type of entityHandle. - This function shall add the entity instance entityHandle to each - Entity_extent in the populated_folders attribute of the receiver for - which the type or a subtype of the type contained in the folder - corresponds to the type of entityHandle. - - Possible error indicators: - sdaiSS_NOPN // Session not open - sdaiRP_NOPN // Repository not open - sdaiMO_NEXS // SDAI-model does not exist - sdaiMX_NRW // SDAI-model access not read-write - sdaiSY_ERR // Underlying system error - - Origin: Convenience function - */ - - // until we find out what this should really be in the spec -#ifndef __OSTORE__ - void RemoveInstance(SCLP23_NAME(DAObject_SDAI_ptr)& appInst); -#endif -// void RemoveInstance(Entity_instance_ptr& entityHandle); - //void RemoveInstance(EntityInstanceH& entityHandle); - /* Function - The RemoveInstance function shall remove the entity instance entity - handle from the instances set of the receiver. This function shall - remove the entity instance entityHandle from each Entity_extent in - the folders attribute of the receiver for which the type or a - subtype of the type contained in the folder corresponds to the - type of entityHandle. This function shall remove the entity - instance entityHandle from each Entity_extent in the - populated_folders attribute of the receiver for which the type or - a subtype of the type contained in the folder corresponds to the - type of entityHandle. - - Possible error indicators - sdaiSS_NOPN // Session not open - sdaiRP_NOPN // Repository not open - sdaiMO_NEXS // SDAI-model does not exist - sdaiMX_NRW // SDAI-model access not read-write - sdaiSY_ERR // Underlying system error - - Origin: Convenience function - */ - public: - - /* - 7.3.2.1.3 Get entity extent - */ -#ifdef SDAI_CPP_LATE_BINDING -#if 0 // for now - Any_var GetEntity_extent(const String_var& entityName); - const Any_var GetEntity_extent(const String_var& entityName) const; - Any_var GetEntity_extent(const Entity_ptr& ep); - const Any_var GetEntity_extent(const Entity_ptr& ep) const; -#endif - /* Function: - The GetEntity_extent function shall retrieve an entity folder from - the folders attribute within the contents attribute of the receiver. - This folder shall contain all of the instances of a particular type - and its subtypes within the model. The type may be specified - indirectly by the entityName parameter or directly by the entity. - Subsequent access to the returned aggregate shall be restricted to - read-only functionality. - - Output: - This function shall return an aggregate handle used as an argument - for subsequent SDAI function calls. Otherwise, this function shall - return a null handle. - - Possible error indicators: - sdaiSS_NOPN // Session not open - sdaiRP_NOPN // Repository not open - sdaiMO_NEXS // SDAI-model does not exist - sdaiED_NDEF // Entity definition unknown in this model - sdaiSY_ERR // Underlying system error - - Origin: Convenience function - */ - -#endif - -// void instances (SCLP23_NAME(Model_contents_instances_ptr) x); -// void folders (Entity_extent__set x); -// void populated_folders (Entity_extent__set x); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiModel_contents_list.h b/source/geometry/solids/STEP/include/sdaiModel_contents_list.h deleted file mode 100644 index 4b8f90be1d..0000000000 --- a/source/geometry/solids/STEP/include/sdaiModel_contents_list.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef SDAIMODEL_CONTENTS_LIST_H -#define SDAIMODEL_CONTENTS_LIST_H 1 - -class SCLP23_NAME(Model_contents__list) { -public: -#ifdef __OSTORE__ - os_Collection &_rep; - os_Cursor _cursor; - SCLBOOL_H(Bool) _first; -#endif - - SCLP23_NAME(Model_contents__list)(int = 16); - ~SCLP23_NAME(Model_contents__list)(); - - SCLP23_NAME(Model_contents_ptr) retrieve(int index); - int is_empty(); - -#ifndef __OSTORE__ - SCLP23_NAME(Model_contents_ptr)& operator[](int index); -#endif - - void Insert(SCLP23_NAME(Model_contents_ptr), int index); - void Append(SCLP23_NAME(Model_contents_ptr)); - void Remove(int index); -#ifndef __OSTORE__ - int Index(SCLP23_NAME(Model_contents_ptr)); - - void Clear(); -#endif - int Count(); - -#ifdef __OSTORE__ -// cursor stuff - SCLP23_NAME(Model_contents_ptr) first(); - SCLP23_NAME(Model_contents_ptr) next(); - SCLP23_NAME(Integer) more(); -#endif - -private: - void Check(int index); -private: - SCLP23_NAME(Model_contents_ptr)* _buf; - int _bufsize; - int _count; - - public: - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; - -typedef SCLP23_NAME(Model_contents__list)* - SCLP23_NAME(Model_contents__list_ptr); -typedef SCLP23_NAME(Model_contents__list_ptr) - SCLP23_NAME(Model_contents__list_var); - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiObject.h b/source/geometry/solids/STEP/include/sdaiObject.h deleted file mode 100644 index 3eb3539508..0000000000 --- a/source/geometry/solids/STEP/include/sdaiObject.h +++ /dev/null @@ -1,68 +0,0 @@ - -#ifndef SDAIOBJECT_H -#define SDAIOBJECT_H 1 - -/* -#include -*/ -/* - The EXPRESS ENTITY entity_instance from the SDAI_data_type_schema from - clause 10 in ISO 10303-22, shall be mapped to the C++ class Entity_instance. - The class Entity_instance shall be a subtype of the C++ class Object: -*/ - -class SCLP23_NAME(sdaiObject) -{ - public: - SCLP23_NAME(sdaiObject)(); - virtual ~SCLP23_NAME(sdaiObject)(); -// static Object_ptr _duplicate(Object_ptr); -// static Object_ptr _nil(); - -#ifdef PART26 -// virtual SCLP26(Application_instance_ptr) create_TIE(); - virtual IDL_Application_instance_ptr create_TIE(); -#endif - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); - virtual void Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range); -#endif -}; - -typedef SCLP23_NAME(sdaiObject)* SCLP23_NAME(sdaiObject_ptr); -typedef SCLP23_NAME(sdaiObject_ptr) SCLP23_NAME(sdaiObject_var); - -/* - The class Object shall be accessed through the handle types Object_ptr and - Object_var. For handles to the C++ class representing a EXPRESS ENTITY data - type A, the following implicit widening operations shall be supported: - A_ptr to Object_ptr and A_var to Object_ptr. An implementation need not - support implicit widening of A_var to Object_var. - - This binding shall support the following functions: -*/ - -//void release(Object_ptr obj); - -/* - The release function indicates that the caller will no longer access the - reference obj. -*/ - -//Boolean is_nil(Object_ptr obj); - -/* - The is_nil function shall return true if obj is a nil handle; otherwise it - returns false. - - This binding does not specify that all base classes in the application - schema be virtual base classes; however, it does require that no multiply - inherited derived class contain multiple instantiations of any of its base - classes. This requirement applies to all classes, even classes used to - instantiate complex instances. -*/ - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiSelect.h b/source/geometry/solids/STEP/include/sdaiSelect.h deleted file mode 100644 index d748a2d976..0000000000 --- a/source/geometry/solids/STEP/include/sdaiSelect.h +++ /dev/null @@ -1,137 +0,0 @@ -#ifndef _STEPSELECT_H -#define _STEPSELECT_H - -/* -* NIST STEP Core Class Library -* clstepcore/sdaiSelect.h -* April 1997 -* Dave Helfrick -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiSelect.h,v 1.2 2003/06/06 17:07:32 gcosmo Exp $ */ - -/* - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -#include -#include -#include -#include -#include - -class TypeDescriptor; -class SelectTypeDescriptor; -class InstMgr; -*/ - -/********** - class definition for the select superclass SCLP23_NAME(Select). -**********/ -class SCLP23_NAME(Select) { - protected: - const SelectTypeDescriptor *_type; - const TypeDescriptor * underlying_type; - BASE_TYPE base_type; // used by the subtypes - -#ifdef __OSTORE__ - // This member is used in the access_hook function generated for - // SCLP23_NAME(Select) subtypes. It can be saved by ObjectStore where - // underlying_type cannot be since it is pointing to a transient - // TypeDescriptor. This is used to reinitialize underlying_type - // in the access hook function. - SCLP23_NAME(String) underlying_type_name; -#endif - - // it looks like this member, val, is not used anywhere 9/27/96 - DAS - SCLP23_NAME(String) val; - ErrorDescriptor _error; - - const TypeDescriptor * SetUnderlyingType (const TypeDescriptor *); - - const TypeDescriptor * CanBe (const char *) const; - const TypeDescriptor * CanBe (BASE_TYPE) const; - const TypeDescriptor * CanBe (const TypeDescriptor * td) const; - const TypeDescriptor * CanBeSet (const char *, const char *) const; - - const int IsUnique(const BASE_TYPE bt) const; - - virtual const TypeDescriptor * AssignEntity (SCLP23_NAME(Application_instance) * se) =0; - virtual SCLP23_NAME(Select) * NewSelect () =0; - public: - Severity severity() const; - Severity severity( Severity ); - const char *Error(); - void Error( char * ); - // clears select's error - void ClearError(); - // clears error - - virtual BASE_TYPE ValueType() const =0; - - // constructors - SCLP23_NAME(Select) (const SelectTypeDescriptor * s =0, - const TypeDescriptor * td =0); - virtual ~SCLP23_NAME(Select) (); - - // from SDAI binding - SCLP23_NAME(String) UnderlyingTypeName () const; - const TypeDescriptor * CurrentUnderlyingType() const; - int exists() const; - void nullify(); - - Severity SelectValidLevel(const char *attrValue, ErrorDescriptor *err, - InstMgr *im, int clearError); - - // reading and writing - const char * STEPwrite (SCLstring& s, const char *currSch =0) const; - void STEPwrite (std::ostream& out =G4cout, const char *currSch =0) const; - - // IMS 8/2/95: added as part of new select implementation - virtual void STEPwrite_verbose (std::ostream& out =G4cout, const char * =0) - const; - - virtual void STEPwrite_content (std::ostream& out, const char * =0) const =0; -// char * asStr() const; - - - Severity StrToVal(const char *val, const char *selectType, - ErrorDescriptor *err, InstMgr * instances =0); - virtual Severity StrToVal_content (const char *, - InstMgr * instances =0) =0; - - Severity STEPread(std::istream& in, ErrorDescriptor *err, - InstMgr * instances =0, const char* utype =0, - int addFileId =0, const char * =NULL); - - // abstract function - virtual Severity STEPread_content (std::istream& in =G4cin, - InstMgr * instances =0, - const char *utype =0, - int addFileId =0, - const char *currSch =0) =0; - - virtual SCLP23_NAME(Select)& operator =( const SCLP23_NAME(Select)& ) =0; - - int set_null(); - int is_null(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif -}; /** end class **/ - -typedef SCLP23_NAME(Select) * SCLP23_NAME(Select_ptr) ; -typedef SCLP23_NAME(Select_ptr) SCLP23_NAME(Select_var) ; - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiSession_instance.h b/source/geometry/solids/STEP/include/sdaiSession_instance.h deleted file mode 100644 index 1598febef4..0000000000 --- a/source/geometry/solids/STEP/include/sdaiSession_instance.h +++ /dev/null @@ -1,36 +0,0 @@ - -#ifndef SESSION_INSTANCE_H -#define SESSION_INSTANCE_H 1 - -//#include - -class SCLP23_NAME(Session_instance) : public SCLP23_NAME(sdaiObject) -{ - - public: - int x; - - SCLP23_NAME(Session_instance)(); - virtual ~SCLP23_NAME(Session_instance)(); -// SCLP23_NAME(Session_instance)(const SCLP23_NAME(Session_instance)& si) {} - -// static SCLP23_NAME(Session_instance_ptr) -// _duplicate(SCLP23_NAME(Session_instance_ptr) sip); -// static SCLP23_NAME(Session_instance_ptr) -// _narrow(SCLP23_NAME(Object_ptr) o); -// static SCLP23_NAME(Session_instance_ptr) _nil(); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -typedef SCLP23_NAME(Session_instance)* SCLP23_NAME(Session_instance_ptr); -typedef SCLP23_NAME(Session_instance_ptr) SCLP23_NAME(Session_instance_var); - -// the old names -//typedef SCLP23_NAME(Session_instance) SCLP23_NAME(SessionInstance); -//typedef SCLP23_NAME(Session_instance_ptr) SCLP23_NAME(SessionInstanceH); - -#endif diff --git a/source/geometry/solids/STEP/include/sdaiString.h b/source/geometry/solids/STEP/include/sdaiString.h deleted file mode 100644 index 4a4e36b487..0000000000 --- a/source/geometry/solids/STEP/include/sdaiString.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef STEPSTRING_H -#define STEPSTRING_H 1 - -/* -* NIST STEP Core Class Library -* clstepcore/sdaiString.h -* April 1997 -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiString.h,v 1.2 2003/06/06 17:07:32 gcosmo Exp $ */ - -/* -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#ifdef __O3DB__ -#include -#endif - -class ErrorDescriptor; -#include -#include - -#ifndef STRING_DELIM -#define STRING_DELIM '\'' -#endif -*/ - -class SCLP23_NAME(String) : public SCLstring { -public: - - //constructor(s) & destructor - SCLP23_NAME(String) (const char * str = 0, int max =0) : SCLstring (str,max) - { } - SCLP23_NAME(String) (const SCLstring& s) : SCLstring (s) { } - SCLP23_NAME(String) (const SCLP23_NAME(String)& s) : SCLstring (s) { } - ~SCLP23_NAME(String) () { } - -// operators - SCLP23_NAME(String)& operator= (const char* s); - - // format for STEP - const char * asStr (SCLstring & s) const { return s = chars (); } - void STEPwrite (std::ostream& out =G4cout) const; - void STEPwrite (SCLstring &s) const; - - Severity StrToVal (const char *s); - Severity STEPread (std::istream& in, ErrorDescriptor *err); - Severity STEPread (const char *s, ErrorDescriptor *err); - -#ifdef __OSTORE__ - static os_typespec* get_os_typespec(); -#endif - -}; - -#endif diff --git a/source/geometry/solids/STEP/include/seeinfodefault.h b/source/geometry/solids/STEP/include/seeinfodefault.h deleted file mode 100644 index 7463e785e9..0000000000 --- a/source/geometry/solids/STEP/include/seeinfodefault.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef seeinfodefault_h -#define seeinfodefault_h - -/* -* NIST STEP Editor Class Library -* cleditor/schemaheader.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -// this is a default seeinfo that does nothing... thus it is not -// dependent on a user interface toolkit - -#ifdef __O3DB__ -#include -#endif - -class MgrNode; -class DisplayNode; -class DisplayNodelist; -#include -//class SCLP23(Application_instance); - -#include - -class seeInfo : public DisplayNode -{ -public: - seeInfo(MgrNode *node, - SCLP23(Application_instance) *se, - DisplayNodeList *dnl, displayStateEnum displaySt = mappedWrite); - - void *GetSEE() { return see; } -}; - -inline seeInfo::seeInfo(MgrNode *node, SCLP23(Application_instance) *se, - DisplayNodeList *dnl, displayStateEnum displaySt) -{ - mn = node; - see = 0; - displayState = displaySt; - dnl->Append(this); -} - -#endif diff --git a/source/geometry/solids/STEP/include/stat.h b/source/geometry/solids/STEP/include/stat.h deleted file mode 100644 index 132b4fe0ca..0000000000 --- a/source/geometry/solids/STEP/include/stat.h +++ /dev/null @@ -1,59 +0,0 @@ - -#ifdef __O3DB__ -#include -#endif - -/* - * Copyright (c) 1989 Stanford University - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Stanford not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Stanford makes no representations about - * the suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * C++ interface to Unix file system stat structure - */ - -#ifndef sys_stat_h - -#if defined(__cplusplus) -extern "C" { -#endif - -#define KERNEL -#ifdef WIN32 -# include -#else -# include "//usr/include/sys/stat.h" -#endif -#undef KERNEL - -/* just in case standard header didn't */ -#ifndef sys_stat_h -#define sys_stat_h -#endif - -extern int stat(const char* path, struct stat*); -extern int fstat(int fd, struct stat*); -extern int lstat(const char* path, struct stat*); - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/source/geometry/solids/STEP/include/str_list.h b/source/geometry/solids/STEP/include/str_list.h deleted file mode 100644 index 61d4c25c99..0000000000 --- a/source/geometry/solids/STEP/include/str_list.h +++ /dev/null @@ -1,24 +0,0 @@ - -typedef char * scl_char_str; -typedef scl_char_str * scl_char_str_ptr; - -class scl_char_str__list { -public: - scl_char_str__list(int = 16); - ~scl_char_str__list(); - - scl_char_str_ptr& operator[](int index); - void Insert(scl_char_str_ptr, int index); - void Append(scl_char_str_ptr); - void Remove(int index); - int Index(scl_char_str_ptr); - - int Count(); - void Clear(); -private: - void Check(int index); -private: - scl_char_str_ptr* _buf; - int _bufsize; - int _count; -}; diff --git a/source/geometry/solids/STEP/src/ExpDict.cc b/source/geometry/solids/STEP/src/ExpDict.cc deleted file mode 100644 index 9f5ed953a7..0000000000 --- a/source/geometry/solids/STEP/src/ExpDict.cc +++ /dev/null @@ -1,2193 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/ExpDict.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: ExpDict.cc,v 1.7 2003/06/06 17:07:32 gcosmo Exp $ */ -#include -#include -#include - -#ifndef WIN32 -// to help ObjectCenter -#ifndef HAVE_MEMMOVE -extern "C" -{ -void * memmove(void *__s1, const void *__s2, size_t __n); -} -#endif -#endif - -#include -#include - -/* -const TypeDescriptor * const t_INTEGER_TYPE = & TypeDescriptor - ("INTEGER", // Name - INTEGER_TYPE, // FundamentalType - "INTEGER"); // Description -extern const TypeDescriptor _t_INTEGER_TYPE - ("INTEGER", // Name - INTEGER_TYPE, // FundamentalType - "INTEGER"); // Description - */ -/*const TypeDescriptor * const t_INTEGER_TYPE = &_t_INTEGER_TYPE;*/ - -/*extern const TypeDescriptor _t_REAL_TYPE ("REAL", REAL_TYPE, "Real");*/ -/*const TypeDescriptor * const t_REAL_TYPE = &_t_REAL_TYPE;*/ - -/*extern const TypeDescriptor _t_STRING_TYPE ("STRING", STRING_TYPE, "String");*/ -/*const TypeDescriptor * const t_STRING_TYPE = &_t_STRING_TYPE;*/ - -/*extern const TypeDescriptor _t_BINARY_TYPE ("BINARY", BINARY_TYPE, "Binary") ;*/ -/*const TypeDescriptor * const t_BINARY_TYPE = &_t_BINARY_TYPE;*/ - -/*extern const TypeDescriptor _t_BOOLEAN_TYPE ("BOOLEAN", BOOLEAN_TYPE, "Boolean") ;*/ -/*const TypeDescriptor * const t_BOOLEAN_TYPE = &_t_BOOLEAN_TYPE;*/ - -/*extern const TypeDescriptor _t_LOGICAL_TYPE ("LOGICAL", LOGICAL_TYPE, "Logical") ;*/ -/*const TypeDescriptor * const t_LOGICAL_TYPE = &_t_LOGICAL_TYPE;*/ - -/*extern const TypeDescriptor _t_NUMBER_TYPE ("NUMBER", NUMBER_TYPE, "Number") ;*/ -/*const TypeDescriptor * const t_NUMBER_TYPE = &_t_NUMBER_TYPE;*/ - -/*extern const TypeDescriptor _t_GENERIC_TYPE ("GENERIC", GENERIC_TYPE, "Generic") ;*/ -/*const TypeDescriptor * const t_GENERIC_TYPE = &_t_GENERIC_TYPE;*/ - -Explicit_item_id__set::Explicit_item_id__set (int defaultSize) { - _bufsize = defaultSize; - _buf = new Explicit_item_id_ptr[_bufsize]; - _count = 0; -} - -Explicit_item_id__set::~Explicit_item_id__set () { delete _buf; } - -void Explicit_item_id__set::Check (int index) { - Explicit_item_id_ptr* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new Explicit_item_id_ptr[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(Explicit_item_id_ptr)); - delete _buf; - _buf = newbuf; - } -} - -void Explicit_item_id__set::Insert (Explicit_item_id_ptr v, int index) { - Explicit_item_id_ptr* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Explicit_item_id_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Explicit_item_id__set::Append (Explicit_item_id_ptr v) { - int index = _count; - Explicit_item_id_ptr* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Explicit_item_id_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Explicit_item_id__set::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - Explicit_item_id_ptr* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(Explicit_item_id_ptr)); - } -} - -int Explicit_item_id__set::Index (Explicit_item_id_ptr v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -Explicit_item_id_ptr& Explicit_item_id__set::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -Explicit_item_id__set::Count() -{ - return _count; -} - -void -Explicit_item_id__set::Clear() -{ - _count = 0; -} - -/////////////////////////////////////////////////////////////////////////////// - -Implicit_item_id__set::Implicit_item_id__set (int defaultSize) { - _bufsize = defaultSize; - _buf = new Implicit_item_id_ptr[_bufsize]; - _count = 0; -} - -Implicit_item_id__set::~Implicit_item_id__set () { delete _buf; } - -void Implicit_item_id__set::Check (int index) { - Implicit_item_id_ptr* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new Implicit_item_id_ptr[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(Implicit_item_id_ptr)); - delete _buf; - _buf = newbuf; - } -} - -void Implicit_item_id__set::Insert (Implicit_item_id_ptr v, int index) { - Implicit_item_id_ptr* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Implicit_item_id_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Implicit_item_id__set::Append (Implicit_item_id_ptr v) { - int index = _count; - Implicit_item_id_ptr* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Implicit_item_id_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Implicit_item_id__set::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - Implicit_item_id_ptr* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(Implicit_item_id_ptr)); - } -} - -int Implicit_item_id__set::Index (Implicit_item_id_ptr v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -Implicit_item_id_ptr& Implicit_item_id__set::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -Implicit_item_id__set::Count() -{ - return _count; -} - -void -Implicit_item_id__set::Clear() -{ - _count = 0; -} - -/////////////////////////////////////////////////////////////////////////////// - -Interface_spec__set::Interface_spec__set (int defaultSize) { - _bufsize = defaultSize; - _buf = new Interface_spec_ptr[_bufsize]; - _count = 0; -} - -Interface_spec__set::~Interface_spec__set () { delete _buf; } - -void Interface_spec__set::Check (int index) { - Interface_spec_ptr* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new Interface_spec_ptr[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(Interface_spec_ptr)); - delete _buf; - _buf = newbuf; - } -} - -void Interface_spec__set::Insert (Interface_spec_ptr v, int index) { - Interface_spec_ptr* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Interface_spec_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Interface_spec__set::Append (Interface_spec_ptr v) { - int index = _count; - Interface_spec_ptr* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Interface_spec_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Interface_spec__set::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - Interface_spec_ptr* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(Interface_spec_ptr)); - } -} - -int Interface_spec__set::Index (Interface_spec_ptr v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -Interface_spec_ptr& Interface_spec__set::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -Interface_spec__set::Count() -{ - return _count; -} - -void -Interface_spec__set::Clear() -{ - _count = 0; -} - -/////////////////////////////////////////////////////////////////////////////// - -Interface_spec::Interface_spec() - : _explicit_items(new Explicit_item_id__set), - _implicit_items(0), _all_objects(0) -{ -} - -// not tested -Interface_spec::Interface_spec(Interface_spec &is) -{ - _explicit_items = new Explicit_item_id__set; - int count = is._explicit_items->Count(); - int i; - for (i = 0;i < count; i++) - { - (*_explicit_items)[i] = - (*(is._explicit_items))[i]; - } - _current_schema_id = is._current_schema_id; - _foreign_schema_id = is._foreign_schema_id; - _all_objects = is._all_objects; - _implicit_items = 0; -} - -Interface_spec::Interface_spec(const char * cur_sch_id, - const char * foreign_sch_id, int all_objects) - : _current_schema_id(cur_sch_id), _explicit_items(new Explicit_item_id__set), - _implicit_items(0),_foreign_schema_id(foreign_sch_id), - _all_objects(all_objects) -{ -} - -Interface_spec::~Interface_spec() -{ - delete _explicit_items; - delete _implicit_items; -} - -////////////////////////////////////////////////////////////////////////////// -void -Schema::AddFunction(const char * f) -{ - if(_function_list == 0) - _function_list = new scl_char_str__list; - _function_list->Append((char *)f); -} - -void -Schema::AddGlobal_rule(Global_rule_ptr gr) -{ - if(_global_rules == 0) _global_rules = new Global_rule__set; - _global_rules->Append(gr); -} - - // not implemented -void -Schema::global_rules_(Global_rule__set_var &grs) -{ -} - -void -Schema::AddProcedure(const char * p) -{ - if(_procedure_list == 0) - _procedure_list = new scl_char_str__list; - _procedure_list->Append((char *)p); -} - -// the whole schema -void -Schema::GenerateExpress(std::ostream& out) const -{ - SCLstring tmp; - out << G4endl << "(* Generating: " << Name() << " *)" << G4endl; - out << G4endl << "SCHEMA " << StrToLower(Name(),tmp) << ";" << G4endl; - GenerateUseRefExpress(out); - // print TYPE definitions - out << G4endl << "(* ////////////// TYPE Definitions *)" << G4endl; - GenerateTypesExpress(out); - - // print Entity definitions - out << G4endl << "(* ////////////// ENTITY Definitions *)" << G4endl; - GenerateEntitiesExpress(out); - - int count, i; - if(_global_rules != 0) - { - out << G4endl << "(* *************RULES************* *)" << G4endl; - count = _global_rules->Count(); - for(i = 0; i < count; i++) - { - out << G4endl << (*_global_rules)[i]->rule_text_() << G4endl; - } - } - if(_function_list != 0) - { - out << "(* *************FUNCTIONS************* *)" << G4endl; - count = _function_list->Count(); - for(i = 0; i < count; i++) - { - out << G4endl << (*_function_list)[i] << G4endl; - } - } - if(_procedure_list != 0) - { - out << "(* *************PROCEDURES************* *)" << G4endl; - count = _procedure_list->Count(); - for(i = 0; i < count; i++) - { - out << G4endl << (*_procedure_list)[i] << G4endl; - } - } - out << G4endl << "END_SCHEMA;" << G4endl; -} - -// USE, REFERENCE definitions -void -Schema::GenerateUseRefExpress(std::ostream& out) const -{ - int i,k; - int intf_count; - int count; - Interface_spec_ptr is; - int first_time; - SCLstring tmp; - - /////////////////////// print USE statements - - intf_count = _use_interface_list->Count(); - if(intf_count) // there is at least 1 USE interface to a foreign schema - { - for (i = 0; i < intf_count; i++) // print out each USE interface - { - is = (*_use_interface_list)[i]; // the 1st USE interface - - // count is # of USE items in interface - count = is->explicit_items_()->Count(); - - //Explicit_item_id__set_var eiis = is->explicit_items_(); - - if(count > 0) - { - out << G4endl << " USE FROM " - << StrToLower(is->foreign_schema_id_().chars(),tmp) << G4endl; - out << " ("; - - first_time = 1; - for(k = 0; k < count; k++) // print out each USE item - { - if(first_time) first_time = 0; - else out << "," << G4endl << "\t"; - if( (*(is->explicit_items_()))[k]->original_id_().is_null() ) - { // not renamed - out << (*(is->explicit_items_()))[k]->new_id_().chars(); - } else { // renamed - out << (*(is->explicit_items_()))[k]->original_id_().chars(); - out << " AS " << (*(is->explicit_items_()))[k]->new_id_().chars(); - } - } - out << ");" << G4endl; - } else if (is->all_objects_()) { - out << G4endl << " USE FROM " - << StrToLower(is->foreign_schema_id_().chars(),tmp) << ";" - << G4endl; - } - } - } - - /////////////////////// print REFERENCE stmts - - intf_count = _ref_interface_list->Count(); - if(intf_count)//there is at least 1 REFERENCE interface to a foreign schema - { - for (i = 0; i < intf_count; i++) // print out each REFERENCE interface - { - is = (*_ref_interface_list)[i]; // the 1st REFERENCE interface - - // count is # of REFERENCE items in interface - count = is->explicit_items_()->Count(); - - - if(count > 0) - { - -// out << " REFERENCE FROM " << (*(is->explicit_items_()))[0]->foreign_schema_().chars() << G4endl; - out << G4endl << " REFERENCE FROM " - << StrToLower(is->foreign_schema_id_().chars(),tmp) << G4endl; - out << " ("; - - first_time = 1; - for(k = 0; k < count; k++) // print out each REFERENCE item - { - if(first_time) first_time = 0; - else out << "," << G4endl << "\t"; - if( (*(is->explicit_items_()))[k]->original_id_().is_null() ) - { // not renamed - out << (*(is->explicit_items_()))[k]->new_id_().chars(); - } else { // renamed - out << (*(is->explicit_items_()))[k]->original_id_().chars(); - out << " AS " - << (*(is->explicit_items_()))[k]->new_id_().chars(); - } - } - out << ");" << G4endl; - } else if (is->all_objects_()) { - out << G4endl << " REFERENCE FROM " - << StrToLower(is->foreign_schema_id_().chars(),tmp) << ";" - << G4endl; - } - } - } -} - -// TYPE definitions -void -Schema::GenerateTypesExpress(std::ostream& out) const -{ - TypeDescItr tdi(_typeList); - tdi.ResetItr(); - SCLstring tmp; - - const TypeDescriptor *td = tdi.NextTypeDesc(); - while (td) - { - out << G4endl << td->GenerateExpress(tmp); - td = tdi.NextTypeDesc(); - } -} - -// Entity definitions -void -Schema::GenerateEntitiesExpress(std::ostream& out) const -{ - EntityDescItr edi(_entList); - edi.ResetItr(); - SCLstring tmp; - - const EntityDescriptor *ed = edi.NextEntityDesc(); - while (ed) - { - out << G4endl << ed->GenerateExpress(tmp); - ed = edi.NextEntityDesc(); - } -} - -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __OSTORE__ -EnumAggregate * create_EnumAggregate(os_database *db) -{ - return new (db, EnumAggregate::get_os_typespec()) EnumAggregate; -} -#else -EnumAggregate * create_EnumAggregate() -{ - return new EnumAggregate; -} -#endif - -#ifdef __OSTORE__ -GenericAggregate * create_GenericAggregate(os_database *db) -{ - return new (db, GenericAggregate::get_os_typespec()) GenericAggregate; -} -#else -GenericAggregate * create_GenericAggregate() -{ - return new GenericAggregate; -} -#endif - -#ifdef __OSTORE__ -EntityAggregate * create_EntityAggregate(os_database *db) -{ - return new (db, EntityAggregate::get_os_typespec()) EntityAggregate; -} -#else -EntityAggregate * create_EntityAggregate() -{ - return new EntityAggregate; -} -#endif - -#ifdef __OSTORE__ -SelectAggregate * create_SelectAggregate(os_database *db) -{ - return new (db, SelectAggregate::get_os_typespec()) SelectAggregate; -} -#else -SelectAggregate * create_SelectAggregate() -{ - return new SelectAggregate; -} -#endif - -#ifdef __OSTORE__ -StringAggregate * create_StringAggregate(os_database *db) -{ - return new (db, StringAggregate::get_os_typespec()) StringAggregate; -} -#else -StringAggregate * create_StringAggregate() -{ - return new StringAggregate; -} -#endif - -#ifdef __OSTORE__ -BinaryAggregate * create_BinaryAggregate(os_database *db) -{ - return new (db, BinaryAggregate::get_os_typespec()) BinaryAggregate; -} -#else -BinaryAggregate * create_BinaryAggregate() -{ - return new BinaryAggregate; -} -#endif - -#ifdef __OSTORE__ -RealAggregate * create_RealAggregate(os_database *db) -{ - return new (db, RealAggregate::get_os_typespec()) RealAggregate; -} -#else -RealAggregate * create_RealAggregate() -{ - return new RealAggregate; -} -#endif - -#ifdef __OSTORE__ -IntAggregate * create_IntAggregate(os_database *db) -{ - return new (db, IntAggregate::get_os_typespec()) IntAggregate; -} -#else -IntAggregate * create_IntAggregate() -{ - return new IntAggregate; -} -#endif - -const EntityDescriptor * -EntityDescItr::NextEntityDesc() -{ - if(cur) - { - const EntityDescriptor *ed = cur->EntityDesc(); - cur = (EntityDescLinkNode *)( cur->NextNode() ); - return ed; - } - return 0; -} - -const AttrDescriptor * -AttrDescItr::NextAttrDesc() -{ - if(cur) - { - const AttrDescriptor *ad = cur->AttrDesc(); - cur = (AttrDescLinkNode *)( cur->NextNode() ); - return ad; - } - return 0; -} - -const Inverse_attribute * -InverseAItr::NextInverse_attribute() -{ - if(cur) - { - const Inverse_attribute *ia = cur->Inverse_attr(); - cur = (Inverse_attributeLinkNode *)( cur->NextNode() ); - return ia; - } - return 0; -} - -const TypeDescriptor * -TypeDescItr::NextTypeDesc() -{ - if(cur) - { - const TypeDescriptor *td = cur->TypeDesc(); - cur = (TypeDescLinkNode *)( cur->NextNode() ); - return td; - } - return 0; -} - -/////////////////////////////////////////////////////////////////////////////// -// AttrDescriptor functions -/////////////////////////////////////////////////////////////////////////////// - -const char * -AttrDescriptor::AttrExprDefStr(SCLstring & s) const -{ - SCLstring buf; - - s = Name (); - s.Append (" : "); - if(_optional.asInt() == SCLLOG(LTrue)) - s.Append( "OPTIONAL "); - if(DomainType()) - s.Append (DomainType()->AttrTypeName(buf)); - return s.chars(); -} - -const PrimitiveType -AttrDescriptor::BaseType() const -{ - if(_domainType) - return _domainType->BaseType(); - return UNKNOWN_TYPE; -} - -int -AttrDescriptor::IsAggrType() const -{ - return ReferentType()->IsAggrType(); -} - -const PrimitiveType -AttrDescriptor::AggrElemType() const -{ - if(IsAggrType()) - { - return ReferentType()->AggrElemType(); - } - return UNKNOWN_TYPE; -} - -const TypeDescriptor * -AttrDescriptor::AggrElemTypeDescriptor() const -{ - if(IsAggrType()) - { - return ReferentType()->AggrElemTypeDescriptor(); - } - return 0; -} - -const TypeDescriptor * -AttrDescriptor::NonRefTypeDescriptor() const -{ - if(_domainType) - return _domainType->NonRefTypeDescriptor(); - return 0; -} - -const PrimitiveType -AttrDescriptor::NonRefType() const -{ - if(_domainType) - return _domainType->NonRefType(); - return UNKNOWN_TYPE; -} - -const PrimitiveType -AttrDescriptor::Type() const -{ - if(_domainType) - return _domainType->Type(); - return UNKNOWN_TYPE; -} - - // right side of attr def -// NOTE this returns a \'const char * \' instead of an SCLstring -const char * -AttrDescriptor::TypeName() const -{ - SCLstring buf; - - if(_domainType) - return _domainType->AttrTypeName(buf); - else - return ""; -} - - // an expanded right side of attr def -const char * -AttrDescriptor::ExpandedTypeName(SCLstring & s) const -{ - s.set_null(); - if (Derived() == SCLLOG(LTrue)) s = "DERIVE "; - if(_domainType) - { - SCLstring tmp; - return s.Append (_domainType->TypeString(tmp)); - } - else - return 0; -} - -const char * -AttrDescriptor::GenerateExpress (SCLstring &buf) const -{ -// char tmp[BUFSIZ]; - SCLstring sstr; - buf = AttrExprDefStr(sstr); - buf.Append(";\n"); - -/* -// buf = ""; - buf.Append(StrToLower(Name(),tmp)); - buf.Append(" : "); - if(_optional == SCLLOG(LTrue)) { - buf.Append("OPTIONAL "); - } - buf.Append(TypeName()); - buf.Append(";\n"); -*/ - return buf.chars(); -} - -/////////////////////////////////////////////////////////////////////////////// -// Derived_attribute functions -/////////////////////////////////////////////////////////////////////////////// - -const char * -Derived_attribute::AttrExprDefStr(SCLstring & s) const -{ - SCLstring buf; - - s.set_null(); - if(Name() && strchr(Name(),'.')) - { - s = "SELF\\"; - } - s.Append(Name ()); - s.Append (" : "); -/* - if(_optional.asInt() == SCLLOG(LTrue)) - s.Append( "OPTIONAL "); -*/ - if(DomainType()) - s.Append (DomainType()->AttrTypeName(buf)); - if(_initializer) // this is supposed to exist for a derived attribute. - { - s.Append(" \n\t\t:= "); - s.Append(_initializer); - } - return s.chars(); -} - -/////////////////////////////////////////////////////////////////////////////// -// Inverse_attribute functions -/////////////////////////////////////////////////////////////////////////////// - -const char * -Inverse_attribute::AttrExprDefStr(SCLstring & s) const -{ - SCLstring buf; - - s = Name (); - s.Append (" : "); - if(_optional.asInt() == SCLLOG(LTrue)) - s.Append( "OPTIONAL "); - if(DomainType()) - s.Append (DomainType()->AttrTypeName(buf)); - s.Append(" FOR "); - s.Append(_inverted_attr_id); - return s.chars(); -} -/* -const char * -Inverse_attribute::GenerateExpress (SCLstring &buf) const -{ - char tmp[BUFSIZ]; - SCLstring sstr; - buf = AttrExprDefStr(sstr); - buf.Append(";\n"); - - return buf.chars(); -} -*/ - -/////////////////////////////////////////////////////////////////////////////// -// EnumDescriptor functions -/////////////////////////////////////////////////////////////////////////////// - -EnumTypeDescriptor::EnumTypeDescriptor (const char * nm, PrimitiveType ft, - Schema *origSchema, - const char * d, EnumCreator f) -: TypeDescriptor (nm, ft, origSchema, d), CreateNewEnum(f) -{ -} - -#ifdef __OSTORE__ -SCLP23(Enum) * -EnumTypeDescriptor::CreateEnum(os_database *db) -{ - if(CreateNewEnum) - return CreateNewEnum(db); - else - return 0; -} -#else -SCLP23(Enum) * -EnumTypeDescriptor::CreateEnum() -{ - if(CreateNewEnum) - return CreateNewEnum(); - else - return 0; -} -#endif - -const char * -EnumTypeDescriptor::GenerateExpress (SCLstring &buf) const -{ - char tmp[BUFSIZ]; - buf = "TYPE "; - buf.Append(StrToLower(Name(),tmp)); - buf.Append(" = ENUMERATION OF \n ("); - const char *desc = Description(); - const char *ptr = &(desc[16]); - int count; -// Where_rule_ptr wr; - int i; - int all_comments = 1; - - while(*ptr != '\0') - { - if( *ptr == ',') - { - buf.Append(",\n "); - } else if (isupper(*ptr)){ - buf.Append((char)tolower(*ptr)); - } else { - buf.Append(*ptr); - } - ptr++; - } - buf.Append(";\n"); -/////////////// - // count is # of WHERE rules - if(_where_rules != 0) - { - count = _where_rules->Count(); - for(i = 0; i < count; i++) // print out each UNIQUE rule - { - if( !(*(_where_rules))[i]->_label.is_undefined() ) - all_comments = 0; - } - - if(all_comments) - buf.Append(" (* WHERE *)\n"); - else - buf.Append(" WHERE\n"); - - for(i = 0; i < count; i++) // print out each WHERE rule - { - if( !(*(_where_rules))[i]->_comment.is_null() ) - { - buf.Append(" "); - buf.Append( (*(_where_rules))[i]->comment_() ); - } - if( !(*(_where_rules))[i]->_label.is_null() ) - { - buf.Append(" "); - buf.Append( (*(_where_rules))[i]->label_() ); - } - } - } - - buf.Append("END_TYPE;\n"); - return buf.chars(); -} - -/////////////////////////////////////////////////////////////////////////////// -// EntityDescriptor functions -/////////////////////////////////////////////////////////////////////////////// - -EntityDescriptor::EntityDescriptor ( ) -: _abstractEntity(SCLLOG(LUnknown)), _extMapping(SCLLOG(LUnknown)), - _uniqueness_rules((Uniqueness_rule__set_var)0), NewSTEPentity(0) -{ -// _derivedAttr = new StringAggregate; -/* - _subtypes = 0; - _supertypes = 0; - _explicitAttr = 0; - _inverseAttr = 0; -*/ -} - -EntityDescriptor::EntityDescriptor (const char * name, // i.e. char * - Schema *origSchema, - SCLLOG(Logical) abstractEntity, // F U or T - SCLLOG(Logical) extMapping, - Creator f -/* - EntityDescriptorList *subtypes, - EntityDescriptorList *supertypes, - AttrDescriptorList *explicitAttr, - StringAggregate *derivedAttr, - Inverse_attributeList *inverseAttr -*/ - ) -: TypeDescriptor (name, ENTITY_TYPE, origSchema, name), - _abstractEntity(abstractEntity), _extMapping(extMapping), - _uniqueness_rules((Uniqueness_rule__set_var)0), NewSTEPentity(f) -{ -/* - _subtypes = subtypes; - _supertypes = supertypes; - _explicitAttr = explicitAttr; - _derivedAttr = derivedAttr; - _inverseAttr = inverseAttr; -*/ -} - -EntityDescriptor::~EntityDescriptor () -{ - delete _uniqueness_rules; -} - -const char * -EntityDescriptor::GenerateExpress (SCLstring &buf) const -{ -// char tmp[BUFSIZ]; - SCLstring sstr; - int count; -// Where_rule_ptr wr; - int i; - int all_comments = 1; - - buf = "ENTITY "; - buf.Append(StrToLower(Name(),sstr)); - - if(strlen(_supertype_stmt.chars()) > 0) - buf.Append("\n "); - buf.Append(_supertype_stmt.chars()); - - const EntityDescriptor * ed = 0; -/* - EntityDescItr edi_sub(_subtypes); - edi_sub.ResetItr(); - ed = edi_sub.NextEntityDesc(); - int subtypes = 0; - if(ed) { - buf.Append("\n SUPERTYPE OF (ONEOF("); - buf.Append(StrToLower(ed->Name(),sstr)); - subtypes = 1; - } - ed = edi_sub.NextEntityDesc(); - while (ed) { - buf.Append(",\n\t\t"); - buf.Append(StrToLower(ed->Name(),sstr)); - ed = edi_sub.NextEntityDesc(); - } - if(subtypes) { - buf.Append("))"); - } -*/ - - EntityDescItr edi_super(_supertypes); - edi_super.ResetItr(); - ed = edi_super.NextEntityDesc(); - int supertypes = 0; - if(ed) { - buf.Append("\n SUBTYPE OF ("); - buf.Append(StrToLower(ed->Name(),sstr)); - supertypes = 1; - } - ed = edi_super.NextEntityDesc(); - while (ed) { - buf.Append(",\n\t\t"); - buf.Append(StrToLower(ed->Name(),sstr)); - ed = edi_super.NextEntityDesc(); - } - if(supertypes) { - buf.Append(")"); - } - - buf.Append(";\n"); - - AttrDescItr adi(_explicitAttr); - - adi.ResetItr(); - const AttrDescriptor *ad = adi.NextAttrDesc(); - - while (ad) { - if(ad->AttrType() == AttrType_Explicit) - { - buf.Append(" "); - buf.Append(ad->GenerateExpress(sstr)); - } - ad = adi.NextAttrDesc(); - } - - adi.ResetItr(); - ad = adi.NextAttrDesc(); - - count = 1; - while (ad) { - if(ad->AttrType() == AttrType_Deriving) - { - if(count == 1) - buf.Append(" DERIVE\n"); - buf.Append(" "); - buf.Append(ad->GenerateExpress(sstr)); - count++; - } - ad = adi.NextAttrDesc(); - } -///////// - - InverseAItr iai(_inverseAttr); -// const char * AttrTypeName( SCLstring &buf, const char *schnm =NULL ) const; - - iai.ResetItr(); - const Inverse_attribute *ia = iai.NextInverse_attribute(); - - if(ia) - buf.Append(" INVERSE\n"); - - while (ia) { - buf.Append(" "); - buf.Append(ia->GenerateExpress(sstr)); - ia = iai.NextInverse_attribute(); - } -/////////////// - // count is # of UNIQUE rules - if(_uniqueness_rules != 0) - { - count = _uniqueness_rules->Count(); - for(i = 0; i < count; i++) // print out each UNIQUE rule - { - if( !(*(_uniqueness_rules))[i]->_label.is_undefined() ) - all_comments = 0; - } - - if(all_comments) - buf.Append(" (* UNIQUE *)\n"); - else - buf.Append(" UNIQUE\n"); - for(i = 0; i < count; i++) // print out each UNIQUE rule - { - if( !(*(_uniqueness_rules))[i]->_comment.is_null() ) - { - buf.Append(" "); - buf.Append( (*(_uniqueness_rules))[i]->comment_() ); - buf.Append("\n"); - } - if( !(*(_uniqueness_rules))[i]->_label.is_null() ) - { - buf.Append(" "); - buf.Append( (*(_uniqueness_rules))[i]->label_() ); - buf.Append("\n"); - } - } - } - -/////////////// - // count is # of WHERE rules - if(_where_rules != 0) - { - all_comments = 1; - count = _where_rules->Count(); - for(i = 0; i < count; i++) // print out each UNIQUE rule - { - if( !(*(_where_rules))[i]->_label.is_undefined() ) - all_comments = 0; - } - - if(!all_comments) - buf.Append(" WHERE\n"); - else - buf.Append(" (* WHERE *)\n"); - for(i = 0; i < count; i++) // print out each WHERE rule - { - if( !(*(_where_rules))[i]->_comment.is_null() ) - { - buf.Append(" "); - buf.Append( (*(_where_rules))[i]->comment_() ); - buf.Append("\n"); - } - if( !(*(_where_rules))[i]->_label.is_null() ) - { - buf.Append(" "); - buf.Append( (*(_where_rules))[i]->label_() ); - buf.Append("\n"); - } - } - } - - buf.Append("END_ENTITY;\n"); - - return buf.chars(); -} - -const char * -EntityDescriptor::QualifiedName(SCLstring &s) const -{ - s.set_null(); - EntityDescItr edi(_supertypes); - - int count = 1; - const EntityDescriptor * ed = 0; - while(ed = edi.NextEntityDesc()) - { - if(count > 1) - { - s.Append("&"); - } - s.Append(ed->Name()); - count++; - } - if(count > 1) s.Append("&"); - s.Append(Name()); - return s.chars(); -} - -const TypeDescriptor * -EntityDescriptor::IsA (const TypeDescriptor * td) const -{ if (td -> NonRefType () == ENTITY_TYPE) - return IsA ((EntityDescriptor *) td); - else return 0; -} - -const EntityDescriptor * -EntityDescriptor::IsA (const EntityDescriptor * other) const { - const EntityDescriptor * found =0; - const EntityDescLinkNode * link = (const EntityDescLinkNode *) (GetSupertypes ().GetHead()); - - if (this == other) return other; - else { - while (link && ! found) { - found = link -> EntityDesc() -> IsA (other); - link = (EntityDescLinkNode *) link -> NextNode (); - } - } - return found; -} - -/* -EntityDescriptor::FindLongestAttribute() -{ - AttrDescLinkNode *attrPtr = - (AttrDescLinkNode *)(ed->ExplicitAttr().GetHead()); - while( attrPtr != 0) - { - if(attrPtr->AttrDesc()->IsEntityType()) - maxAttrLen = std::max(maxAttrLen, - (strlen(attrPtr->AttrDesc()->EntityType()->Name()) + - strlen(attrPtr->AttrDesc()->Name()) + 3 - ) - ); - else - maxAttrLen = std::max(maxAttrLen, - (strlen(attrPtr->AttrDesc()->DomainType()->NameOrDescription()) + - strlen(attrPtr->AttrDesc()->Name()) + 3 - ) - ); - attrPtr = (AttrDescLinkNode *)attrPtr->NextNode(); - } -} -*/ - -Type_or_rule::Type_or_rule() -{ -} - -Type_or_rule::Type_or_rule(const Type_or_rule&tor) -{ -} - -Type_or_rule::~Type_or_rule() -{ -} - - -Where_rule::Where_rule() -{ - _type_or_rule = 0; -} - - -Where_rule::Where_rule(const Where_rule& wr) -{ - _label = wr._label; - _type_or_rule = wr._type_or_rule; -} - -Where_rule::~Where_rule() -{ -} - -/////////////////////////////////////////////////////////////////////////////// - -Where_rule__list::Where_rule__list (int defaultSize) { - _bufsize = defaultSize; - _buf = new Where_rule_ptr[_bufsize]; - _count = 0; -} - -Where_rule__list::~Where_rule__list () { delete _buf; } - -void Where_rule__list::Check (int index) { - Where_rule_ptr* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new Where_rule_ptr[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(Where_rule_ptr)); - delete _buf; - _buf = newbuf; - } -} - -void Where_rule__list::Insert (Where_rule_ptr v, int index) { - Where_rule_ptr* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Where_rule_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Where_rule__list::Append (Where_rule_ptr v) { - int index = _count; - Where_rule_ptr* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Where_rule_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Where_rule__list::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - Where_rule_ptr* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(Where_rule_ptr)); - } -} - -int Where_rule__list::Index (Where_rule_ptr v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -Where_rule_ptr& Where_rule__list::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -Where_rule__list::Count() -{ - return _count; -} - -void -Where_rule__list::Clear() -{ - _count = 0; -} - -/////////////////////////////////////////////////////////////////////////////// - -Uniqueness_rule::Uniqueness_rule() -: _parent_entity(0) -{ -} - - -Uniqueness_rule::Uniqueness_rule(const Uniqueness_rule& ur) -{ - _label = ur._label; - _parent_entity = ur._parent_entity; -} - -Uniqueness_rule::~Uniqueness_rule() -{ - // don't delete _parent_entity -} - -/////////////////////////////////////////////////////////////////////////////// - -Uniqueness_rule__set::Uniqueness_rule__set (int defaultSize) { - _bufsize = defaultSize; - _buf = new Uniqueness_rule_ptr[_bufsize]; - _count = 0; -} - -Uniqueness_rule__set::~Uniqueness_rule__set () { delete _buf; } - -void Uniqueness_rule__set::Check (int index) { - Uniqueness_rule_ptr* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new Uniqueness_rule_ptr[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(Uniqueness_rule_ptr)); - delete _buf; - _buf = newbuf; - } -} - -void Uniqueness_rule__set::Insert (Uniqueness_rule_ptr v, int index) { - Uniqueness_rule_ptr* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Uniqueness_rule_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Uniqueness_rule__set::Append (Uniqueness_rule_ptr v) { - int index = _count; - Uniqueness_rule_ptr* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Uniqueness_rule_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Uniqueness_rule__set::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - Uniqueness_rule_ptr* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(Uniqueness_rule_ptr)); - } -} - -int Uniqueness_rule__set::Index (Uniqueness_rule_ptr v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -Uniqueness_rule_ptr& Uniqueness_rule__set::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -Uniqueness_rule__set::Count() -{ - return _count; -} - -void -Uniqueness_rule__set::Clear() -{ - _count = 0; -} - -/////////////////////////////////////////////////////////////////////////////// - -Global_rule::Global_rule() -: _entities(0), _where_rules(0), _parent_schema(0) -{ -} - -Global_rule::Global_rule(const char *n, Schema_ptr parent_sch, const char * rt) -: _name(n), _entities(0), _where_rules(0), _parent_schema(parent_sch), - _rule_text(rt) -{ -} - -// not fully implemented -Global_rule::Global_rule(Global_rule& gr) -{ - _name = gr._name; - _parent_schema = gr._parent_schema; -} - -Global_rule::~Global_rule() -{ - delete _entities; - delete _where_rules; -} - -void -Global_rule::entities_(const Entity__set_var &e) -{ -} - -void -Global_rule::where_rules_(const Where_rule__list_var &wrl) -{ -} - -/////////////////////////////////////////////////////////////////////////////// - -Global_rule__set::Global_rule__set (int defaultSize) { - _bufsize = defaultSize; - _buf = new Global_rule_ptr[_bufsize]; - _count = 0; -} - -Global_rule__set::~Global_rule__set () { delete _buf; } - -void Global_rule__set::Check (int index) { - Global_rule_ptr* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new Global_rule_ptr[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(Global_rule_ptr)); - delete _buf; - _buf = newbuf; - } -} - -void Global_rule__set::Insert (Global_rule_ptr v, int index) { - Global_rule_ptr* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Global_rule_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Global_rule__set::Append (Global_rule_ptr v) { - int index = _count; - Global_rule_ptr* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Global_rule_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Global_rule__set::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - Global_rule_ptr* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(Global_rule_ptr)); - } -} - -int Global_rule__set::Index (Global_rule_ptr v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -Global_rule_ptr& Global_rule__set::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -Global_rule__set::Count() -{ - return _count; -} - -void -Global_rule__set::Clear() -{ - _count = 0; -} - - -/////////////////////////////////////////////////////////////////////////////// -// TypeDescriptor functions -/////////////////////////////////////////////////////////////////////////////// - -const char * -TypeDescriptor::AttrTypeName(SCLstring &buf, const char *schnm ) const -{ - SCLstring sstr; - buf = Name(schnm) ? StrToLower(Name(schnm),sstr) : _description; - return buf.chars(); -} - -const char * -TypeDescriptor::GenerateExpress (SCLstring &buf) const -{ - char tmp[BUFSIZ]; - buf = "TYPE "; - buf.Append(StrToLower(Name(),tmp)); - buf.Append(" = "); - const char *desc = Description(); - const char *ptr = desc; - int count; -// Where_rule_ptr wr; - int i; - int all_comments = 1; - - while(*ptr != '\0') - { - if( *ptr == ',') - { - buf.Append(",\n "); - } else if( *ptr == '(') { - buf.Append("\n ("); - } else if (isupper(*ptr)){ - buf.Append((char)tolower(*ptr)); - } else { - buf.Append(*ptr); - } - ptr++; - } - buf.Append(";\n"); -/////////////// - // count is # of WHERE rules - if(_where_rules != 0) - { - count = _where_rules->Count(); - for(i = 0; i < count; i++) // print out each UNIQUE rule - { - if( !(*(_where_rules))[i]->_label.is_undefined() ) - all_comments = 0; - } - - if(all_comments) - buf.Append(" (* WHERE *)\n"); - else - buf.Append(" WHERE\n"); - - for(i = 0; i < count; i++) // print out each WHERE rule - { - if( !(*(_where_rules))[i]->_comment.is_null() ) - { - buf.Append(" "); - buf.Append( (*(_where_rules))[i]->comment_() ); - } - if( !(*(_where_rules))[i]->_label.is_null() ) - { - buf.Append(" "); - buf.Append( (*(_where_rules))[i]->label_() ); - } - } - } - - buf.Append("END_TYPE;\n"); - return buf.chars(); - -// buf.Append(Description()); -// buf.Append("\nEND_TYPE;\n"); -} - - /////////////////////////////////////////////////////////////////////// - // This is a fully expanded description of the type. - // This returns a string like the _description member variable - // except it is more thorough of a description where possible - // e.g. if the description contains a TYPE name it will also - // be explained. - /////////////////////////////////////////////////////////////////////// -const char * -TypeDescriptor::TypeString(SCLstring & s) const -{ - switch(Type()) - { - case REFERENCE_TYPE: - if(Name()) - { - s.Append ( "TYPE "); - s.Append (Name()); - s.Append ( " = "); - } - if(Description()) - s.Append ( Description ()); - if(ReferentType()) - { - s.Append ( " -- "); - SCLstring tmp; - s.Append ( ReferentType()->TypeString(tmp)); - } - return s; - - case INTEGER_TYPE: - s.set_null(); - if(_referentType != 0) - { - s = "TYPE "; - s.Append (Name()); - s.Append ( " = "); - } - s.Append("Integer"); - break; - - case STRING_TYPE: - s.set_null(); - if(_referentType != 0) - { - s = "TYPE "; - s.Append (Name()); - s.Append ( " = "); - } - s.Append("String"); - break; - - case REAL_TYPE: - s.set_null(); - if(_referentType != 0) - { - s = "TYPE "; - s.Append (Name()); - s.Append ( " = "); - } - s.Append("Real"); - break; - - case ENUM_TYPE: - s = "Enumeration: "; - if(Name()) - { - s.Append ( "TYPE "); - s.Append (Name()); - s.Append ( " = "); - } - if(Description()) - s.Append ( Description ()); - break; - - case BOOLEAN_TYPE: - s.set_null(); - if(_referentType != 0) - { - s = "TYPE "; - s.Append (Name()); - s.Append ( " = "); - } - s.Append("Boolean: F, T"); - break; - case LOGICAL_TYPE: - s.set_null(); - if(_referentType != 0) - { - s = "TYPE "; - s.Append (Name()); - s.Append ( " = "); - } - s.Append("Logical: F, T, U"); - break; - case NUMBER_TYPE: - s.set_null(); - if(_referentType != 0) - { - s = "TYPE "; - s.Append (Name()); - s.Append ( " = "); - } - s.Append("Number"); - break; - case BINARY_TYPE: - s.set_null(); - if(_referentType != 0) - { - s = "TYPE "; - s.Append (Name()); - s.Append ( " = "); - } - s.Append("Binary"); - break; - case ENTITY_TYPE: - s = "Entity: "; - if(Name()) - s.Append (Name()); - break; - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - s = Description(); - if(ReferentType()) - { - s.Append ( " -- "); - SCLstring tmp; - s.Append ( ReferentType()->TypeString(tmp)); - } - break; - case SELECT_TYPE: - s.Append ( Description ()); - break; - case GENERIC_TYPE: - case UNKNOWN_TYPE: - s = "Unknown"; - break; - } // end switch - return s; - -} -/* this works - if( ( (ReferentType() != 0) || (ReferentEntity() != 0) ) && Name()) - { - strcat(tStr, "TYPE "); - strcat(tStr, Name()); - strcat(tStr, " = "); - } - if(Description()) - strcat(tStr, Description()); - if(ReferentType()) - { - strcat(tStr, " -- "); - SCLstring tmp; - strcat(tStr, ReferentType()->TypeString(tmp)); - } - else if(ReferentEntity()) - { - strcat(tStr, " -- "); - strcat(tStr, "Entity: "); - strcat(tStr, ReferentEntity()->Name()); - } - return tStr; -} -*/ - -const TypeDescriptor * -TypeDescriptor::IsA (const TypeDescriptor * other) const { - if (this == other) return other; - return 0; -} - -const TypeDescriptor * -TypeDescriptor::IsA (const char * other) const { - if (!Name()) return 0; - if ( !StrCmpIns( _name, other ) ) { // this is the type - return this; - } - return (ReferentType () ? ReferentType () -> IsA (other) : 0); -} - - /////////////////////////////////////////////////////////////////////// - // the first PrimitiveType that is not REFERENCE_TYPE (the first - // TypeDescriptor *_referentType that does not have REFERENCE_TYPE - // for it's fundamentalType variable). This would return the same - // as BaseType() for fundamental types. An aggregate type - // would return AGGREGATE_TYPE then you could find out the type of - // an element by calling AggrElemType(). Select types - // would work the same? - /////////////////////////////////////////////////////////////////////// - -const PrimitiveType -TypeDescriptor::NonRefType() const -{ - const TypeDescriptor *td = NonRefTypeDescriptor(); - if(td) - return td->FundamentalType(); - return UNKNOWN_TYPE; -} - - -const TypeDescriptor * -TypeDescriptor::NonRefTypeDescriptor() const -{ - const TypeDescriptor *td = this; - - while ( td->ReferentType() ) { - if (td->Type() != REFERENCE_TYPE) - return td; - td = td->ReferentType(); - } - - return td; -} - - /////////////////////////////////////////////////////////////////////// - // This returns the PrimitiveType of the first non-aggregate element of - // an aggregate - /////////////////////////////////////////////////////////////////////// - -// Added 'int' return type - GC - -int TypeDescriptor::IsAggrType() const -{ - switch(NonRefType()) - { - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - return 1; - - default: - return 0; - } -} - -const PrimitiveType -TypeDescriptor::AggrElemType() const -{ - const TypeDescriptor *aggrElemTD = AggrElemTypeDescriptor(); - if(aggrElemTD) - { - return aggrElemTD->Type(); - } - return UNKNOWN_TYPE; -} - -const TypeDescriptor * -TypeDescriptor::AggrElemTypeDescriptor() const -{ - const TypeDescriptor *aggrTD = NonRefTypeDescriptor(); - const TypeDescriptor *aggrElemTD = aggrTD->ReferentType(); - if(aggrElemTD) - { - aggrElemTD = aggrElemTD->NonRefTypeDescriptor(); - } - return aggrElemTD; -} - - //////////////////////////////////////////////////////////// - // This is the underlying type of this type. For instance: - // TYPE count = INTEGER; - // TYPE ref_count = count; - // TYPE count_set = SET OF ref_count; - // each of the above will generate a TypeDescriptor and for - // each one, PrimitiveType BaseType() will return INTEGER_TYPE - // TypeDescriptor *BaseTypeDescriptor() returns the TypeDescriptor - // for Integer - //////////////////////////////////////////////////////////// - -const PrimitiveType -TypeDescriptor::BaseType() const -{ - const TypeDescriptor *td = BaseTypeDescriptor(); - if(td) - return td->FundamentalType(); - else - return ENTITY_TYPE; -} - -const TypeDescriptor * -TypeDescriptor::BaseTypeDescriptor() const -{ - const TypeDescriptor *td = this; - - while (td -> ReferentType ()) td = td->ReferentType (); - return td; -} -#ifdef NOT_YET -/////////////////////////////////////////////////////////////////////////////// -// EnumerationTypeDescriptor functions -/////////////////////////////////////////////////////////////////////////////// -EnumerationTypeDescriptor::EnumerationTypeDescriptor( ) -{ - _elements = new StringAggregate; -} -#endif -/////////////////////////////////////////////////////////////////////////////// -// SelectTypeDescriptor functions -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __OSTORE__ -SCLP23(Select) * -SelectTypeDescriptor::CreateSelect(os_database *db) -{ - if(CreateNewSelect) - return CreateNewSelect(db); - else - return 0; -} -#else -SCLP23(Select) * -SelectTypeDescriptor::CreateSelect() -{ - if(CreateNewSelect) - return CreateNewSelect(); - else - return 0; -} -#endif - -const TypeDescriptor * -SelectTypeDescriptor::IsA (const TypeDescriptor * other) const -{ return TypeDescriptor::IsA (other); } - -// returns the td among the choices of tds describing elements of this select -// type but only at this unexpanded level. The td ultimately describing the -// type may be an element of a td for a select that is returned. - -const TypeDescriptor * -SelectTypeDescriptor::CanBe (const TypeDescriptor * other) const -{ -// const TypeDescriptor * found =0; - TypeDescItr elements (GetElements()) ; - const TypeDescriptor * td =0; - - if (this == other) return other; - while (td = elements.NextTypeDesc ()) { -// if (found = (td -> CanBe (other))) return found; - if (td -> CanBe (other)) return td; - } - return 0; -} - -// returns the td among the choices of tds describing elements of this select -// type but only at this unexpanded level. The td ultimately describing the -// type may be an element of a td for a select that is returned. - -const TypeDescriptor * -SelectTypeDescriptor::CanBe (const char * other) const -{ -// const TypeDescriptor * found =0; - TypeDescItr elements (GetElements()) ; - const TypeDescriptor * td =0; - - // see if other is the select - if ( !StrCmpIns( _name, other ) ) - return this; - - // see if other is one of the elements - while (td = elements.NextTypeDesc ()) { - if (td -> CanBe (other)) return td; -// if (found = (td -> CanBe (other))) return found; - } - return 0; -} - -// A modified CanBe, used to determine if "other", a string we have just read, -// is a possible type-choice of this. (I.e., our select "CanBeSet" to this -// choice.) This deals with the following issue, based on the Tech Corrigendum -// to Part 21: Say our select ("selP") has an item which is itself a select -// ("selQ"). Say it has another select item which is a redefinition of another -// select ("TYPE selR = selS;"). According to the T.C., if selP is set to one -// of the members of selQ, "selQ(...)" may not appear in the instantiation. -// If, however, selP is set to a member of selR, "selR(...)" must appear first. -// The code below checks if "other" = one of our possible choices. If one of -// our choices is a select like selQ, we recurse to see if other matches a -// member of selQ (and don't look for "selQ"). If we have a choice like selR, -// we check if other = "selR", but do not look at selR's members. This func- -// tion also takes into account schNm, the name of the current schema. If -// schNm does not = the schema in which this type was declared, it's possible -// that it should be referred to with a different name. This would be the case -// if schNm = a schema which USEs or REFERENCEs this and renames it (e.g., "USE -// from XX (A as B)"). - -const TypeDescriptor * -SelectTypeDescriptor::CanBeSet (const char * other, const char *schNm) const -{ - TypeDescItr elements (GetElements()) ; - const TypeDescriptor * td =0; - - while (td = elements.NextTypeDesc ()) { - if ( td->Type() == REFERENCE_TYPE && td->NonRefType() == sdaiSELECT ) { - // Just look at this level, don't look at my items (see intro). - if ( td->CurrName( other, schNm ) ) { - return td; - } - } else if ( td->CanBeSet( other, schNm ) ) { - return td; - } - } - return 0; -} - -/////////////////////////////////////////////////////////////////////////////// -// AggrTypeDescriptor functions -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __OSTORE__ -STEPaggregate * -AggrTypeDescriptor::CreateAggregate(os_database *db) -{ - if(CreateNewAggr) - return CreateNewAggr(db); - else - return 0; -} -#else -STEPaggregate * -AggrTypeDescriptor::CreateAggregate() -{ - if(CreateNewAggr) - return CreateNewAggr(); - else - return 0; -} -#endif - - -AggrTypeDescriptor::AggrTypeDescriptor( ) : - _uniqueElements((char*)("UNKNOWN_TYPE")) -{ - _bound1 = -1; - _bound2 = -1; - _aggrDomainType = 0; -} - -AggrTypeDescriptor::AggrTypeDescriptor(SCLP23(Integer) b1, - SCLP23(Integer) b2, - SCLLOG(Logical) uniqElem, - TypeDescriptor *aggrDomType) - : _bound1(b1), _bound2(b2), _uniqueElements(uniqElem) -{ - _aggrDomainType = aggrDomType; -} - -AggrTypeDescriptor::~AggrTypeDescriptor() -{ -} diff --git a/source/geometry/solids/STEP/src/ExpDict_inline.cc b/source/geometry/solids/STEP/src/ExpDict_inline.cc deleted file mode 100644 index 482fefdca1..0000000000 --- a/source/geometry/solids/STEP/src/ExpDict_inline.cc +++ /dev/null @@ -1,518 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/ExpDict.inline.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: ExpDict_inline.cc,v 1.3 2000/01/21 13:42:50 gcosmo Exp $ */ - -#include - -Dictionary_instance::~Dictionary_instance() -{} - - -Schema::Schema (const char *schemaName) - : _use_interface_list(new Interface_spec__set), - _ref_interface_list(new Interface_spec__set), - _function_list(0), _procedure_list(0), _global_rules(0) -{ - _name = schemaName; -} - -Schema::~Schema () -{ - if(_use_interface_list != 0) - delete _use_interface_list; - if(_ref_interface_list != 0) - delete _ref_interface_list; - if(_function_list != 0) - delete _function_list; - if(_procedure_list != 0) - delete _procedure_list; - if(_global_rules != 0) - delete _global_rules; -} - -Interfaced_item::Interfaced_item() -{ -} - -Interfaced_item::Interfaced_item(const Interfaced_item &ii) -{ - _foreign_schema = ii._foreign_schema; -} - -Interfaced_item::Interfaced_item(const char *foreign_schema) -: _foreign_schema(foreign_schema) -{ -} - -Interfaced_item::~Interfaced_item() -{ -} - -const Express_id -Interfaced_item::foreign_schema_() -{ - return _foreign_schema; -} - -void -Interfaced_item::foreign_schema_(const Express_id& fs) -{ - _foreign_schema = fs; -} - -Explicit_item_id::Explicit_item_id() -{ - _local_definition = 0; -} - -Explicit_item_id::Explicit_item_id(const Explicit_item_id& eii) -: Interfaced_item(eii) -{ - _local_definition = eii._local_definition; - _original_id = eii._original_id; - _new_id = eii._new_id; -} - -Explicit_item_id::~Explicit_item_id() -{ - _local_definition = 0; -} - -Used_item::~Used_item() -{ -} - -Referenced_item::~Referenced_item() -{ -} - -Implicit_item_id::Implicit_item_id() -{ - _local_definition = 0; -} - -Implicit_item_id::Implicit_item_id(Implicit_item_id& iii) -: Interfaced_item(iii) -{ - _local_definition = iii._local_definition; -} - -Implicit_item_id::~Implicit_item_id() -{ - _local_definition = 0; -} - -EntityDescLinkNode::EntityDescLinkNode() -{ - _entityDesc = 0; -} - -EntityDescLinkNode::~EntityDescLinkNode() -{ -} - -EntityDescriptorList::EntityDescriptorList() -{ -} - -EntityDescriptorList::~EntityDescriptorList() -{ -} - -EntityDescItr::EntityDescItr(const EntityDescriptorList &edList) : edl(edList) -{ - cur = (EntityDescLinkNode *)( edl.GetHead() ); -} -EntityDescItr::~EntityDescItr() -{ -} - -AttrDescLinkNode::AttrDescLinkNode() -{ - _attrDesc = 0; -} - -AttrDescLinkNode::~AttrDescLinkNode() -{ -} - -AttrDescItr::AttrDescItr(const AttrDescriptorList &adList) : adl(adList) -{ - cur = (AttrDescLinkNode *)( adl.GetHead() ); -} - -AttrDescItr::~AttrDescItr() -{ -} - -Inverse_attributeLinkNode::Inverse_attributeLinkNode() -{ - _invAttr = 0; -} - -Inverse_attributeLinkNode::~Inverse_attributeLinkNode() -{ -} - -Inverse_attributeList::Inverse_attributeList() -{ -} - -Inverse_attributeList::~Inverse_attributeList() -{ -} - -Inverse_attributeLinkNode * -Inverse_attributeList::AddNode (Inverse_attribute * ad) -{ - Inverse_attributeLinkNode *node = (Inverse_attributeLinkNode *) NewNode(); - node->Inverse_attr(ad); - SingleLinkList::AppendNode(node); - return node; -} - -InverseAItr::InverseAItr (const Inverse_attributeList &iaList) - : ial(iaList) -{ - cur = (Inverse_attributeLinkNode *)( ial.GetHead() ); -} - -InverseAItr::~InverseAItr() -{ -} - -TypeDescLinkNode::TypeDescLinkNode() -{ - _typeDesc = 0; -} - -TypeDescLinkNode::~TypeDescLinkNode() -{ -} - -TypeDescriptorList::TypeDescriptorList() -{ -} - -TypeDescriptorList::~TypeDescriptorList() -{ -} - -TypeDescItr::TypeDescItr (const TypeDescriptorList &tdList) : tdl(tdList) -{ - cur = (TypeDescLinkNode *)( tdl.GetHead() ); -} - -TypeDescItr::~TypeDescItr() -{ -} - -/////////////////////////////////////////////////////////////////////////////// -// TypeDescriptor functions -/////////////////////////////////////////////////////////////////////////////// - -AttrDescriptorList::AttrDescriptorList() -{ -} - -AttrDescriptorList::~AttrDescriptorList() -{ -} - -AttrDescLinkNode * -AttrDescriptorList::AddNode (AttrDescriptor * ad) -{ - AttrDescLinkNode *node = (AttrDescLinkNode *) NewNode(); - node->AttrDesc(ad); - SingleLinkList::AppendNode(node); - return node; -} - -TypeDescriptor::TypeDescriptor( ) -: _name (0), altNames(0), _fundamentalType(UNKNOWN_TYPE), - _originatingSchema(0), _referentType (0), _description (0), _where_rules(0) -{ -} - -TypeDescriptor::TypeDescriptor -(const char * nm, PrimitiveType ft, Schema *origSchema, - const char * d) -: _name (nm), altNames (0), _fundamentalType (ft), - _originatingSchema(origSchema), _referentType (0), _description (d), - _where_rules(0) - -{ -} - -const char * -TypeDescriptor::Name( const char *schnm ) const - /* - * Determines the current name of this. Normally, this is simply _name. - * If "schnm" is set to a value, however, then this function becomes a - * request for our name when referenced by schnm. (This will be diff from - * our original name if schnm USEs or REFERENCEs us and renames us (e.g., - * "USE (xx as yy)").) In such a case, this function searches through our - * altNames list to see if schema schnm refers to us with a different name - * and returns the new name if found. (See header comments to function - * SchRename::rename().) - */ -{ - if ( !schnm ) { - return _name; - } - if ( altNames && altNames->rename( schnm, (char *)_altname ) ) { - // If our altNames list has an alternate for schnm, copy it into - // _altname, and return it: - return _altname; - } - return _name; -} - -const char * -TypeDescriptor::BaseTypeName () const -{ - return BaseTypeDescriptor () ? BaseTypeDescriptor () -> Name () : 0; -} - -const TypeDescriptor * -TypeDescriptor::BaseTypeIsA (const TypeDescriptor * td) const -{ - switch (NonRefType ()) { - case AGGREGATE_TYPE: - return AggrElemTypeDescriptor () -> IsA (td); - case ENTITY_TYPE: - case SELECT_TYPE: - default: - return IsA (td); - } - -} - -int -TypeDescriptor::CurrName(const char *other, const char *schNm) const - /* - * Check if our "current" name = other. CurrName may be different from - * _name if schNm tells us the current schema is a different one from the - * one in which we're defined. If so, we may have an alternate name for - * that schema (it may be listed in our altNames list). This would be the - * case if schNm USEs or REFERENCEs type and renames it in the process - * (e.g., "USE (X as Y)". - */ -{ - if ( !schNm || *schNm == '\0' ) { - // If there's no current schema, accept any possible name of this. - // (I.e., accept its actual name or any substitute): - return ( PossName( other ) ); - } - if ( altNames && altNames->rename( schNm, (char *)_altname ) ) { - // If we have a different name when the current schema = schNm, then - // other better = the alt name. - return ( !StrCmpIns( _altname, other ) ); - } else { - // If we have no desginated alternate name when the current schema = - // schNm, other must = our _name. - return ( OurName( other ) ); - } -} - -int -TypeDescriptor::PossName( const char *nm ) const - /* - * return TRUE if nm is either our name or one of the possible alternates. - */ -{ - return ( OurName( nm ) || AltName( nm ) ); -} - -int -TypeDescriptor::OurName( const char *nm ) const -{ - return !StrCmpIns( nm, _name ); -} - -int -TypeDescriptor::AltName( const char *nm ) const -{ - if ( altNames ) { - return ( altNames->choice( nm ) ); - } - return 0; -} - -void -TypeDescriptor::addAltName( const char *schnm, const char *newnm ) - /* - * Creates a SchRename consisting of schnm & newnm. Places it in alphabe- - * tical order in this's altNames list. - */ -{ - SchRename *newpair = new SchRename( schnm, newnm ), - *node = (SchRename *)altNames, *prev = NULL; - - while ( node && *node < *newpair ) { - prev = node; - node = node->next; - } - newpair->next = node; // node may = NULL - if ( prev ) { - // Will be the case if new node should not be first (and above while - // loop was entered). - prev->next = newpair; - } else { - // put newpair first - altNames = newpair; - } -} - -int -SchRename::choice( const char *nm ) const - /* - * See if nm = one of our choices (either ours or that of a SchRename - * later in the list. - */ -{ - if ( !StrCmpIns( nm, newName ) ) { - return 1; - } - if ( next ) { - return ( next->choice( nm ) ); - } - return 0; -} - -char * -SchRename::rename( const char *schnm, char *newnm ) const - /* - * Check if this SchRename represents the rename of its owning TypeDesc for - * schema schnm. (This will be the case if schnm = schName.) If so, the - * new name is returned and copied into newnm. If not, ::rename is called - * on next. Thus, this function will tell us if this or any later SchRe- - * name in this list provide a new name for TypeDesc for schema schnm. - */ -{ - if ( !StrCmpIns( schnm, schName ) ) { - strcpy( newnm, newName ); - return newnm; - } - if ( next ) { - return ( next->rename( schnm, newnm ) ); - } - return NULL; -} - -/////////////////////////////////////////////////////////////////////////////// -// AttrDescriptor functions -/////////////////////////////////////////////////////////////////////////////// - -AttrDescriptor::AttrDescriptor( - const char * name, // i.e. char * - const TypeDescriptor *domainType, - SCLLOG(Logical) optional, // i.e. F U or T - SCLLOG(Logical) unique, // i.e. F U or T - AttrType_Enum at, // AttrType_Explicit,AttrType_Inverse, - // AttrType_Deriving,AttrType_Redefining - const EntityDescriptor & owner ) - : _name (name), _domainType (domainType), _optional(optional), - _unique(unique), _attrType (at), - -#ifdef __O3DB__ -_owner (&owner) -#else -_owner ((EntityDescriptor&)owner) -#endif - -{ -} - -AttrDescriptor::~AttrDescriptor () -{ } - -SCLLOG(Logical) -AttrDescriptor::Explicit() const -{ - if(_attrType == AttrType_Explicit) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) -AttrDescriptor::Inverse() const -{ - if(_attrType == AttrType_Inverse) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) -AttrDescriptor::Redefining() const -{ - if(_attrType == AttrType_Redefining) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) -AttrDescriptor::Deriving() const -{ - if(_attrType == AttrType_Deriving) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -// outdated function -void -AttrDescriptor::Derived (SCLP23(LOGICAL) x) -{ - if(x.asInt()) - _attrType = AttrType_Deriving; - else - _attrType = AttrType_Explicit; -} - -// outdated function -void -AttrDescriptor::Derived (SCLLOG(Logical) x) -{ - if(x == SCLLOG(LTrue)) - _attrType = AttrType_Deriving; - else - _attrType = AttrType_Explicit; -} - -// outdated function -void -AttrDescriptor::Derived (const char *x) -{ - if( !strcmp(x, "LTrue") || !strcmp(x, "T") ) - _attrType = AttrType_Deriving; - else - _attrType = AttrType_Explicit; -} - - -Derived_attribute::Derived_attribute( - const char * name, // i.e. char * - const TypeDescriptor *domainType, - SCLLOG(Logical) optional, // i.e. F U or T - SCLLOG(Logical) unique, // i.e. F U or T - AttrType_Enum at, // AttrType_Explicit,AttrType_Inverse, - // AttrType_Deriving,AttrType_Redefining - const EntityDescriptor & owner ) -: AttrDescriptor(name, domainType, optional, unique, at, owner) -{ - _initializer = (const char *)0; -} - -Derived_attribute::~Derived_attribute() -{ -} diff --git a/source/geometry/solids/STEP/src/Registry_inline.cc b/source/geometry/solids/STEP/src/Registry_inline.cc deleted file mode 100644 index 60bfea425c..0000000000 --- a/source/geometry/solids/STEP/src/Registry_inline.cc +++ /dev/null @@ -1,416 +0,0 @@ -#ifdef __OSTORE__ -extern int pr_obj_errors; -#endif - -/* -* NIST STEP Core Class Library -* clstepcore/Registry.inline.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: Registry_inline.cc,v 1.4 2000/11/20 18:14:56 gcosmo Exp $ */ - -#include -#include - - const TypeDescriptor * t_sdaiINTEGER; - const TypeDescriptor * t_sdaiREAL; - const TypeDescriptor * t_sdaiNUMBER; - const TypeDescriptor * t_sdaiSTRING; - const TypeDescriptor * t_sdaiBINARY; - const TypeDescriptor * t_sdaiBOOLEAN; - const TypeDescriptor * t_sdaiLOGICAL; - -static int uniqueNames( const char *, const SchRename * ); - -//#ifdef __OSTORE__ -//Registry::Registry (CF_init initFunct, os_database *db) -//#else -Registry::Registry (CF_init initFunct) -//#endif -// Changed order of member initialisations to match correct order - GC -: col(0), entity_cnt(0), all_ents_cnt(0) -{ -//#ifdef __OSTORE__ - // need to make this thing persistent in a database - DAS -/* - if(NilSTEPentity == 0) - NilSTEPentity = new (db, SCLP23(Application_instance)::get_os_typespec()) - SCLP23(Application_instance); -*/ -//#else -// if(NilSTEPentity == 0) -// NilSTEPentity = new SCLP23(Application_instance); -//#endif - - primordialSwamp = HASHcreate (1000); - active_schemas = HASHcreate (10); - active_types = HASHcreate (100); - - t_sdaiINTEGER = new TypeDescriptor("INTEGER", // Name - sdaiINTEGER, // FundamentalType - 0, // Originating Schema - "INTEGER"); // Description; - - t_sdaiREAL = new TypeDescriptor("REAL", sdaiREAL, - 0, // Originating Schema - "Real"); - - t_sdaiSTRING = new TypeDescriptor("STRING", sdaiSTRING, - 0, // Originating Schema - "String"); - - t_sdaiBINARY = new TypeDescriptor("BINARY", sdaiBINARY, - 0, // Originating Schema - "Binary"); - - t_sdaiBOOLEAN = new TypeDescriptor("BOOLEAN", sdaiBOOLEAN, - 0, // Originating Schema - "Boolean"); - - t_sdaiLOGICAL = new TypeDescriptor("LOGICAL", sdaiLOGICAL, - 0, // Originating Schema - "Logical"); - - t_sdaiNUMBER = new TypeDescriptor("NUMBER", sdaiNUMBER, - 0, // Originating Schema - "Number"); - -/* t_GENERIC_TYPE = new TypeDescriptor("GENERIC", GENERIC_TYPE, "Generic");*/ - - initFunct (*this); - HASHlistinit (active_types, &cur_type); - HASHlistinit (primordialSwamp, &cur_entity); // initialize cur\'s - HASHlistinit (active_schemas, &cur_schema); -} - -/* inline */ -Registry::~Registry () -{ - HASHdestroy (primordialSwamp); - HASHdestroy (active_schemas); - HASHdestroy (active_types); - delete col; -} - -void -Registry::DeleteContents () -{ - // entities first - HASHlistinit (primordialSwamp, &cur_entity); - while (HASHlist (&cur_entity)) - delete (EntityDescriptor *) cur_entity.e->data; - - // schemas - HASHlistinit (active_schemas, &cur_schema); - while (HASHlist (&cur_schema)) - delete (Schema *) cur_schema.e->data; - - // types - -} - -/* inline */ const EntityDescriptor * -Registry::FindEntity (const char *e, const char *schNm, int check_case) const - /* - * schNm refers to the current schema. This will have a value if we are - * reading from a Part 21 file (using a STEPfile object), and the file - * declares a schema name in the File_Schema section of the Header. (If - * >1 schema names are declared, the first is taken.) The schema name is - * significant because of the USE and REFERENCE clause. Say schema X USEs - * entity A from schema Y and renames it to B, X should only refer to A as - * B. Thus, if schNm here = "X", only e="B" would be valid but not e="A". - */ -{ - const EntityDescriptor *entd; - const SchRename *altlist; - char schformat[BUFSIZ], altName[BUFSIZ]; - - if (check_case) { - entd = (EntityDescriptor *)HASHfind (primordialSwamp, (char *)e); - } else { - entd = (EntityDescriptor *)HASHfind (primordialSwamp, - (char *)PrettyTmpName (e)); - } - if ( entd && schNm ) { - // We've now found an entity. If schNm has a value, we must ensure we - // have a valid name. - strcpy( schformat, PrettyTmpName( schNm ) ); - if ( ( (altlist = entd->AltNameList()) != 0 ) - && ( altlist->rename( schformat, altName ) ) ) { - // If entd has other name choices, and entd is referred to with a - // new name by schema schNm, then e had better = the new name. - if ( !StrCmpIns( e, altName ) ) { - return entd; - } - return NULL; - } else if ( FindSchema( schformat, 1 ) ) { - // If schema schNm exists but we had no conditions above to use an - // altName, we must use the original name: - if ( !StrCmpIns( e, entd->Name() ) ) { - return entd; - } - return NULL; - } else { - // Last choice: schNm does not exist at all. The user must have - // typed something wrong. Don't penalize him for it (so even if - // we have an altName of entd, accept it): - return entd; - } - } - return entd; -} - -/* inline */ const Schema * -Registry::FindSchema (const char * n, int check_case) const -{ - if (check_case) - return (const Schema *) HASHfind (active_schemas, (char *) n); - - return (const Schema *) HASHfind (active_schemas, - (char *)PrettyTmpName (n)); -} - -/* inline */ const TypeDescriptor * -Registry::FindType (const char * n, int check_case) const -{ - if (check_case) - return (const TypeDescriptor *) HASHfind (active_types, (char *) n); - return (const TypeDescriptor *) HASHfind (active_types, - (char *)PrettyTmpName (n)); -} - -/* inline */ void -Registry::ResetTypes () -{ - HASHlistinit (active_types, &cur_type); -} - -/* inline */ const TypeDescriptor * -Registry::NextType () -{ - if (0 == HASHlist (&cur_type)) return 0; - return (const TypeDescriptor *) cur_type.e->data; -} - -/* inline */ void -Registry::AddEntity (const EntityDescriptor& e) -{ - HASHinsert (primordialSwamp, (char *) e.Name (), (EntityDescriptor *) &e); - ++entity_cnt; - ++all_ents_cnt; - AddClones(e); -} - - -/* inline */ void -Registry::AddSchema (const Schema& d) -{ - HASHinsert (active_schemas, (char *) d.Name(), (Schema *) &d); -} - -/* inline */ void -Registry::AddType (const TypeDescriptor& d) -{ - HASHinsert (active_types, (char *) d.Name(), (TypeDescriptor *) &d); -} - -/* inline */ void -Registry::AddClones (const EntityDescriptor& e) - /* - * Purpose is to insert e into the registry hashed according to all its - * alternate names (the names it was renamed with when other schemas USEd - * or REFERENCEd it). This will make these names available to the Registry - * so that if we comes across one of them in a Part 21 file, we'll recog- - * nize it. - */ -{ - const SchRename *alts = e.AltNameList(); - - while ( alts ) { - HASHinsert( primordialSwamp, (char *)alts->objName(), - (EntityDescriptor *)&e ); - alts = alts->next; - } - all_ents_cnt += uniqueNames( e.Name(), e.AltNameList() ); -} - -static int -uniqueNames( const char *entnm, const SchRename *altlist ) - /* - * Returns the number of unique names in an entity's _altname list. If - * schema B uses ent xx from schema A and renames it to yy, and schema C - * does the same (or if C simply uses yy from B), altlist will contain 2 - * entries with the same alt name. - */ -{ - int cnt = 0; - const SchRename *alt = altlist; - - while ( alt ) { - if ( !( alt->next - && alt->next->choice( alt->objName() ) - || !StrCmpIns( alt->objName(), entnm ) ) ) { - // alt has a unique alternate name if it's not reused by a later - // alt. alt->next->choice() returns 1 if one of the later alts - // also has alt's name as its value. The final condition checks - // that our alt name is not the same as the original ent's (would - // be the case if the Express file said "USE from A (xx as xx)", - // which may not be legal and certainly isn't meaningful, but we - // check for it just in case. If none of the above conditions are - // true, we have a unique. - cnt++; - } - alt = alt->next; - } - return cnt; -} - -/* inline */ void -Registry::RemoveEntity (const char * n) -{ - const EntityDescriptor *e = FindEntity(n); - struct Element tmp; - - if ( e ) { - RemoveClones( *e ); - } - tmp.key = (char *) n; - HASHsearch (primordialSwamp, &tmp, HASH_DELETE) ? --entity_cnt : 0; - -} - -/* inline */ void -Registry::RemoveSchema (const char * n) -{ - struct Element tmp; - tmp.key = (char *) n; - HASHsearch (active_schemas, &tmp, HASH_DELETE); -} - -/* inline */ void -Registry::RemoveType (const char * n) -{ - struct Element tmp; - tmp.key = (char *) n; - HASHsearch (active_types, &tmp, HASH_DELETE); -} - -/* inline */ void -Registry::RemoveClones (const EntityDescriptor& e) - /* - * Remove all the "clones", or rename values of e. - */ -{ - const SchRename *alts = e.AltNameList(); - struct Element *tmp; - - while ( alts ) { - tmp = new Element; - tmp->key = (char *) alts->objName(); - HASHsearch (primordialSwamp, tmp, HASH_DELETE); - alts = alts->next; - } -} - -#ifdef __OSTORE__ -SCLP23(Application_instance) * -Registry::ObjCreate (const char *nm, os_database *db, const char *schnm, - int check_case) const -{ - if(pr_obj_errors > 3) - G4cout << "Registry::ObjCreate() db ptr: " << db << G4endl; - - const EntityDescriptor * entd = FindEntity (nm, schnm, check_case); - if (entd) - { - SCLP23(Application_instance) *se = - ((EntityDescriptor *)entd) -> NewSTEPentity (db); - - if(pr_obj_errors > 3) - { - G4cout << "Created entity: " << se->EntityName() << G4endl; - G4cout << "os_database::of(se) in Registry::ObjCreate(): " - << os_database::of(se) << G4endl; - } - // If se is an abstract supertype or a complex entity which requires - // external mapping it shouldn't be instantiable using ObjCreate() (but - // rather as a part of a STEPcomplex). In such cases we do create one - // here, but we check these conditions and set se's ErrorDescriptor - // field appropriately. - if ( entd->AbstractEntity().asInt() == TRUE ) { - se->Error().severity( SEVERITY_WARNING ); - se->Error().UserMsg( "ENTITY is abstract supertype" ); - } else if ( entd->ExtMapping().asInt() == TRUE ) { - se->Error().severity( SEVERITY_WARNING ); - se->Error().UserMsg( "ENTITY requires external mapping" ); - } - return se; - } - else { - return ENTITY_NULL; - } -} - -#else - -SCLP23(Application_instance) * -Registry::ObjCreate (const char *nm, const char *schnm, int check_case) const -{ - const EntityDescriptor * entd = FindEntity (nm, schnm, check_case); - if (entd) { - SCLP23(Application_instance) *se = - ((EntityDescriptor *)entd) -> NewSTEPentity (); - - // See comment in previous function. - if ( entd->AbstractEntity().asInt() == TRUE ) { - se->Error().severity( SEVERITY_WARNING ); - se->Error().UserMsg( "ENTITY is abstract supertype" ); - } else if ( entd->ExtMapping().asInt() == TRUE ) { - se->Error().severity( SEVERITY_WARNING ); - se->Error().UserMsg( "ENTITY requires external mapping" ); - } - return se; - } else { - return ENTITY_NULL; - } -} -#endif - -/* inline */ int -Registry::GetEntityCnt () -{ - return entity_cnt; -} - -/* inline */ void -Registry::ResetEntities () -{ - HASHlistinit (primordialSwamp, &cur_entity); - -} - -/* inline */ const EntityDescriptor * -Registry::NextEntity () -{ - if (0 == HASHlist (&cur_entity)) return 0; - return (const EntityDescriptor *) cur_entity.e->data; -} - -/* inline */ void -Registry::ResetSchemas () -{ - HASHlistinit (active_schemas, &cur_schema); -} - -/* inline */ const Schema * -Registry::NextSchema () -{ - if (0 == HASHlist (&cur_schema)) return 0; - return (const Schema *) cur_schema.e->data; -} diff --git a/source/geometry/solids/STEP/src/STEPaggregate.cc b/source/geometry/solids/STEP/src/STEPaggregate.cc deleted file mode 100644 index 5b8cd63aea..0000000000 --- a/source/geometry/solids/STEP/src/STEPaggregate.cc +++ /dev/null @@ -1,2105 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/STEPaggregate.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPaggregate.cc,v 1.6 2003/06/06 17:07:32 gcosmo Exp $ */ - -#include - -#include -#include -#include -//#include -#include -#include - -const int Real_Num_Precision = REAL_NUM_PRECISION; // from STEPattribute.h - -#define STRING_DELIM '\'' - -// static char rcsid[] = "$Id: STEPaggregate.cc,v 1.6 2003/06/06 17:07:32 gcosmo Exp $"; - -/****************************************************************** -** Functions for manipulating aggregate attributes - -** KNOWN BUGs: -** -- treatment of aggregates of reals or ints is inconsistent with -** other aggregates (there's no classes for these) -** -- no two- dimensional aggregates are implemented -**/ - -STEPaggregate NilSTEPaggregate; - - -/////////////////////////////////////////////////////////////////////////////// -// STEPaggregate -/////////////////////////////////////////////////////////////////////////////// - -STEPaggregate::STEPaggregate () -{ - _null = 1; -} - -STEPaggregate::~STEPaggregate () -{ -} - -STEPaggregate& -STEPaggregate::ShallowCopy (const STEPaggregate& a) -{ - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ - << "\n" << _POC_ "\n"; - G4cerr << "function: STEPaggregate::ShallowCopy \n" << "\n"; - return *this; -} - - // do not require exchange file format -Severity -STEPaggregate::AggrValidLevel(const char *value, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int optional, char *tokenList, int addFileId, - int clearError) -{ - SCLstring buf; - if(clearError) - err->ClearErrorMsg(); - - std::istrstream in ((char *)value); // sz defaults to length of s - - ReadValue(in, err, elem_type, insts, addFileId, 0, 0); - CheckRemainingInput(in, err, elem_type->AttrTypeName(buf), tokenList); - if( optional && (err->severity() == SEVERITY_INCOMPLETE) ) - err->severity(SEVERITY_NULL); - return err->severity(); -} - - // require exchange file format -Severity -STEPaggregate::AggrValidLevel(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int optional, char *tokenList, int addFileId, - int clearError) -{ - SCLstring buf; - if(clearError) - err->ClearErrorMsg(); - - ReadValue(in, err, elem_type, insts, addFileId, 0, 1); - CheckRemainingInput(in, err, elem_type->AttrTypeName(buf), tokenList); - if( optional && (err->severity() == SEVERITY_INCOMPLETE) ) - err->severity(SEVERITY_NULL); - return err->severity(); -} - -// if exchangeFileFormat == 1 then paren delims are required. - -Severity -STEPaggregate::ReadValue(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int addFileId, int assignVal, int exchangeFileFormat, - const char *) -{ - ErrorDescriptor errdesc; - char errmsg[BUFSIZ]; - int value_cnt = 0; - SCLstring buf; - - if(assignVal) - Empty (); // read new values and discard existing ones - - char c; - int validDelims = 1; - - in >> std::ws; // skip white space - - c = in.peek(); // does not advance input - - if(in.eof() || c == '$') - { - _null = 1; - err->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - - if(c == '(') - { - in.get(c); - validDelims = 0; // signal expectation for end paren delim - } - else if(exchangeFileFormat) - { // error did not find opening delim - // cannot recover so give up and let STEPattribute recover - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; - } - else if(!in.good()) - {// this should actually have been caught by skipping white space above - err->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - - STEPnode * item = 0; - - in >> std::ws; - // take a peek to see if there are any elements before committing to an - // element - c = in.peek(); // does not advance input - if(c == ')') - { - in.get(c); - } - // if not assigning values only need one node. So only one node is created. - // It is used to read the values - else if(!assignVal) - item = (STEPnode*)NewNode(); - - // ')' is the end of the aggregate - while (in.good() && (c != ')') ) - { - value_cnt++; - if(assignVal) // create a new node each time through the loop - item = (STEPnode*)NewNode(); - - errdesc.ClearErrorMsg(); - - if(exchangeFileFormat) - item->STEPread(in, &errdesc); - else - item->StrToVal(in, &errdesc); - - // read up to the next delimiter and set errors if garbage is - // found before specified delims (i.e. comma and quote) - CheckRemainingInput(in, &errdesc, elem_type->AttrTypeName(buf), ",)"); - - if (errdesc.severity() < SEVERITY_INCOMPLETE) - { - sprintf (errmsg, " index: %d\n", value_cnt ); - errdesc.PrependToDetailMsg(errmsg); - err->AppendFromErrorArg(&errdesc); - } - if(assignVal) // pass the node to STEPaggregate - AddNode (item); - - in >> std::ws; // skip white space (although should already be skipped) - in.get(c); // read delim - - // CheckRemainingInput should have left the input right at the delim - // so that it would be read in in.get() above. Since it did not find - // the delim this does not know how to find it either! - if( (c != ',') && (c != ')') ) - { - // cannot recover so give up and let STEPattribute recover - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; -/* - // error read until you find a delimiter - SCLstring tmp; - while(in.good() && !strchr(",)", c) ) - { - in.get(c); - tmp.Append(c); - } - // BUG could overwrite the error message buffer - sprintf(errmsg, "ERROR aggr. elem. followed by \'%s\' garbage.\n", - tmp.chars()); - err->AppendToDetailMsg(errmsg); - err->AppendToUserMsg(errmsg); - err->GreaterSeverity(SEVERITY_WARNING); - if(!in.good()) - return err->severity(); -*/ - } - } - if(c == ')') - { - _null = 0; -// validDelims = 1; // expectation for end paren delim is met - } - else // expectation for end paren delim has not been met - { - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - err->AppendToUserMsg("Missing close paren for aggregate value"); - return SEVERITY_INPUT_ERROR; - } - return err->severity(); -} - -Severity -STEPaggregate::StrToVal(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int addFileId) -{ - std::istrstream in((char *)s); - return ReadValue(in, err, elem_type, insts, addFileId, 1, 0); -} - -/////////////////////////////////////////////////////////////////////////////// - -Severity -STEPaggregate::STEPread(std::istream& in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int addFileId, const char *currSch) -{ - return ReadValue(in, err, elem_type, insts, addFileId, 1, 1, currSch); -} - -const char * -STEPaggregate::asStr(SCLstring & s) const -{ - s.set_null(); - - if(!_null) - { - s = "("; - STEPnode * n = (STEPnode *) head; - SCLstring tmp; - while (n) - { - s.Append( n->STEPwrite(tmp) ); - if (n = (STEPnode *) n -> NextNode ()) - s.Append(','); - } - s.Append(')'); - } - return s.chars(); -} - -void -STEPaggregate::STEPwrite(std::ostream& out, const char *currSch) const -{ - if(!_null) - { - out << '('; - STEPnode * n = (STEPnode *)head; - SCLstring s; - while (n) - { - out << n->STEPwrite (s, currSch); - if ( n = (STEPnode *)(n -> NextNode ()) ) - out << ','; - } - out << ')'; - } - else - out << '$'; -} - -SingleLinkNode * -STEPaggregate::NewNode () -{ - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - G4cerr << "function: STEPaggregate::NewNode \n" << _POC_ << "\n"; - return 0; -} - -void -STEPaggregate::AddNode(SingleLinkNode *n) -{ - SingleLinkList::AppendNode(n); - _null = 0; -} - -void -STEPaggregate::Empty() -{ - SingleLinkList::Empty(); - _null = 1; -} - - -/////////////////////////////////////////////////////////////////////////////// -// STEPnode -/////////////////////////////////////////////////////////////////////////////// - -Severity -STEPnode::StrToVal(const char *s, ErrorDescriptor *err) -{ - // defined in subtypes - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - err->AppendToDetailMsg( - " function: STEPnode::StrToVal() called instead of virtual function.\n" - ); - err->AppendToDetailMsg("Aggr. attr value: '\n"); - err->AppendToDetailMsg("not assigned.\n"); - err->AppendToDetailMsg(_POC_); - err->GreaterSeverity(SEVERITY_BUG); - return SEVERITY_BUG; -} - -Severity -STEPnode::StrToVal(std::istream &in, ErrorDescriptor *err) -{ - // defined in subtypes - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - err->AppendToDetailMsg( - " function: STEPnode::StrToVal() called instead of virtual function.\n" - ); - err->AppendToDetailMsg("Aggr. attr value: '\n"); - err->AppendToDetailMsg("not assigned.\n"); - err->AppendToDetailMsg(_POC_); - err->GreaterSeverity(SEVERITY_BUG); - return SEVERITY_BUG; -} - -Severity -STEPnode::STEPread(const char *s, ErrorDescriptor *err) -{ - // defined in subclasses - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - G4cerr << "function: STEPnode::STEPread called instead of virtual function.\n" - << _POC_ << "\n"; - - err->AppendToDetailMsg( - " function: STEPnode::STEPread() called instead of virtual function.\n" - ); - err->AppendToDetailMsg(_POC_); - err->GreaterSeverity(SEVERITY_BUG); - - return SEVERITY_BUG; -} - -Severity -STEPnode::STEPread(std::istream &in, ErrorDescriptor *err) -{ - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - G4cerr << "function: STEPnode::STEPread called instead of virtual function.\n" - << _POC_ << "\n"; - - err->AppendToDetailMsg( - " function: STEPnode::STEPread() called instead of virtual function.\n" - ); - err->AppendToDetailMsg(_POC_); - err->GreaterSeverity(SEVERITY_BUG); - return SEVERITY_BUG; -} - -const char * -STEPnode::asStr(SCLstring &s) -{ - // defined in subclasses - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - G4cerr << "function: STEPnode::asStr called instead of virtual function.\n" - << _POC_ << "\n"; - - return ""; -} - -const char * -STEPnode::STEPwrite (SCLstring &s, const char *currSch) - /* - * NOTE - second argument will contain name of current schema. We may need - * this if STEPnode belongs to an aggregate of selects. If so, each node - * will be written out by calling STEPwrite on its select, and to write a - * select out, the name of its underlying type will be written. Finally, - * the underlying type's name depends on the current schema. This is be- - * cause e.g. type X may be defined in schema A, and may be USEd in schema - * B and renamed to Y (i.e., "USE from A (X as Y)"). Thus, if currSch = B, - * Y will have to be written out rather than X. Actually, this concern - * only applies for SelectNode. To accomodate those cases, all the signa- - * tures of STEPwrite(SCLstring) contain currSch. (As an additional note, - * 2D aggregates should make use of currSch in case they are 2D aggrs of - * selects. But since currently (3/27/97) the SCL handles 2D+ aggrs using - * SCLundefined's, this is not implemented.) - */ -{ - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - G4cerr << "function: STEPnode::STEPwrite called instead of virtual function.\n" - << _POC_ << "\n"; - - return ""; -} - -void -STEPnode::STEPwrite (std::ostream& out) -{ - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - G4cerr << "function: STEPnode::STEPwrite called instead of virtual function.\n" - << _POC_ << "\n"; -} - -/////////////////////////////////////////////////////////////////////////////// -// GenericAggregate -/////////////////////////////////////////////////////////////////////////////// - -GenericAggregate::GenericAggregate() -{ -} - -GenericAggregate::~GenericAggregate() -{ -} - -SingleLinkNode * -GenericAggregate::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - GenericAggrNode::get_os_typespec()) GenericAggrNode(); -#else - return new GenericAggrNode(); -#endif -} - -STEPaggregate& -GenericAggregate::ShallowCopy (const STEPaggregate& a) -{ - Empty(); - - SingleLinkNode* next = a.GetHead(); - SingleLinkNode* copy; - - while (next) - { -#ifdef __OSTORE__ - copy = new (os_segment::of(this), - GenericAggrNode::get_os_typespec()) - GenericAggrNode (*(GenericAggrNode*)next); -#else - copy = new GenericAggrNode (*(GenericAggrNode*)next); -#endif - AddNode(copy); - next = next->NextNode(); - } - if(head) - _null = 0; - else - _null = 1; - return *this; - -} - -/////////////////////////////////////////////////////////////////////////////// -// GenericAggrNode -/////////////////////////////////////////////////////////////////////////////// - -GenericAggrNode::GenericAggrNode (const char *str) -{ - value = str; -} - -GenericAggrNode::GenericAggrNode (GenericAggrNode& gan) -{ - value = gan.value; -} - -GenericAggrNode::GenericAggrNode() -{ -} - -GenericAggrNode::~GenericAggrNode() -{ -} - -SingleLinkNode * -GenericAggrNode::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - GenericAggrNode::get_os_typespec()) GenericAggrNode(); -#else - return new GenericAggrNode(); -#endif -} - -Severity -GenericAggrNode::StrToVal(const char *s, ErrorDescriptor *err) -{ - return value.STEPread(s, err); -} - -//TODO -Severity -GenericAggrNode::StrToVal(std::istream &in, ErrorDescriptor *err) -{ - return value.STEPread(in, err); -} - -Severity -GenericAggrNode::STEPread(const char *s, ErrorDescriptor *err) -{ - std::istrstream in((char *) s); - return value.STEPread(in, err); -} - -Severity -GenericAggrNode::STEPread(std::istream &in, ErrorDescriptor *err) -{ - return value.STEPread(in, err); -} - -const char * -GenericAggrNode::asStr(SCLstring &s) -{ - s.set_null(); - value.asStr(s); - return s.chars(); -} - -const char * -GenericAggrNode::STEPwrite(SCLstring &s, const char *currSch) -{ - return value.STEPwrite(s); -/* -// CHECK do we write dollar signs for nulls within an aggregate? DAS - if(_value) - return (const char *)_value; - else - return "$"; -*/ -} - -void -GenericAggrNode::STEPwrite (std::ostream& out) -{ - value.STEPwrite(out); -} - -/////////////////////////////////////////////////////////////////////////////// -// EntityAggregate -/////////////////////////////////////////////////////////////////////////////// - -EntityAggregate::EntityAggregate () -{ -} - -EntityAggregate::~EntityAggregate () -{ -// delete v; -} - - -// if exchangeFileFormat == 1 then delims are required. - -Severity -EntityAggregate::ReadValue(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int addFileId, int assignVal, - int exchangeFileFormat, const char *) -{ - ErrorDescriptor errdesc; - char errmsg[BUFSIZ]; - int value_cnt = 0; - SCLstring buf; - - if(assignVal) - Empty (); // read new values and discard existing ones - - char c; - int validDelims = 1; - - in >> std::ws; // skip white space - - c = in.peek(); // does not advance input - - if(in.eof() || (c == '$') ) - { - _null = 1; - err->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - - if(c == '(') - { - in.get(c); - validDelims = 0; // signal expectation for end delim - } - else if(exchangeFileFormat) - { // error did not find opening delim - // give up because you do not know where to stop reading. - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; - } - else if(!in.good()) - {// this should actually have been caught by skipping white space above - err->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - - EntityNode * item = 0; - - in >> std::ws; - // take a peek to see if there are any elements before committing to an - // element - c = in.peek(); // does not advance input - if(c == ')') - { - in.get(c); - } - // if not assigning values only need one node. So only one node is created. - // It is used to read the values - else if(!assignVal) - // OSTORE note - since this is temporary and deleted anyway don't worry - // about persistent new - item = new EntityNode(); - - while (in.good() && (c != ')') ) - { - value_cnt++; - if(assignVal) // create a new node each time through the loop -#ifdef __OSTORE__ - item = new (os_segment::of(this), - EntityNode::get_os_typespec()) EntityNode(); -#else - item = new EntityNode(); -#endif - - errdesc.ClearErrorMsg(); - - if(exchangeFileFormat) - item->STEPread(in, &errdesc, elem_type, insts, addFileId); - else - item->StrToVal(in, &errdesc, elem_type, insts, addFileId); - - // read up to the next delimiter and set errors if garbage is - // found before specified delims (i.e. comma and quote) - CheckRemainingInput(in, &errdesc, elem_type->AttrTypeName(buf), ",)"); - - if (errdesc.severity() < SEVERITY_INCOMPLETE) - { - sprintf (errmsg, " index: %d\n", value_cnt ); - errdesc.PrependToDetailMsg(errmsg); - err->AppendFromErrorArg(&errdesc); - } - if(assignVal) - AddNode (item); - - in >> std::ws; // skip white space (although should already be skipped) - in.get(c); // read delim - - // CheckRemainingInput should have left the input right at the delim - // so that it would be read in in.get() above. Since it did not find - // the delim this does not know how to find it either! - if( (c != ',') && (c != ')') ) - { - // cannot recover so give up and let STEPattribute recover - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; -/* - // error read until you find a delimiter - SCLstring tmp; - while(in.good() && !strchr(",)", c) ) - { - in.get(c); - tmp.Append(c); - } - // BUG could overwrite the error message buffer - sprintf(errmsg, "ERROR aggr. elem. followed by \'%s\' garbage.\n", - tmp.chars()); - err->AppendToDetailMsg(errmsg); - err->AppendToUserMsg(errmsg); - err->GreaterSeverity(SEVERITY_WARNING); - if(!in.good()) - return err->severity(); -*/ - } - } - if(c == ')') - { - _null = 0; -// validDelims = 1; // expectation for end paren delim is met - } - else // expectation for end paren delim has not been met - { - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - err->AppendToUserMsg("Missing close paren for aggregate value"); - return SEVERITY_INPUT_ERROR; - } - return err->severity(); -} - - -STEPaggregate& -EntityAggregate::ShallowCopy (const STEPaggregate& a) -{ - const EntityNode * tmp = (const EntityNode*) a.GetHead (); - while (tmp) - { -#ifdef __OSTORE__ - AddNode (new (os_segment::of(this), - EntityNode::get_os_typespec()) EntityNode (tmp -> node)); -#else - AddNode (new EntityNode (tmp -> node)); -#endif - tmp = (const EntityNode*) tmp -> NextNode (); - } - if(head) - _null = 0; - else - _null = 1; - - return *this; -} - - -SingleLinkNode * -EntityAggregate::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - EntityNode::get_os_typespec()) EntityNode(); -#else - return new EntityNode(); -#endif -} - -/////////////////////////////////////////////////////////////////////////////// -// EntityNode -/////////////////////////////////////////////////////////////////////////////// - -EntityNode::EntityNode() -{ -} - -EntityNode::~EntityNode() -{ -} - -EntityNode::EntityNode (SCLP23(Application_instance) * e) : node (e) -{ -} - -SingleLinkNode * -EntityNode::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - EntityNode::get_os_typespec()) EntityNode(); -#else - return new EntityNode(); -#endif -} -/////////////////////////////////////////////////////////////////////////////// - -Severity -EntityNode::StrToVal(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId) -{ - SCLP23(Application_instance) *se = ReadEntityRef(s, err, (char*)(",)"), - insts, addFileId); -// SCLP23(Application_instance) *se = ReadEntityRef(s, err, 0, insts, -// addFileId); - if( se != S_ENTITY_NULL ) - { - ErrorDescriptor error; - if(EntityValidLevel(se, elem_type, &error) == SEVERITY_NULL) - node = se; - else - { - node = S_ENTITY_NULL; - err->AppendToDetailMsg(error.DetailMsg()); - err->AppendToUserMsg(error.UserMsg()); - err->GreaterSeverity(error.severity()); - } - } - else - node = S_ENTITY_NULL; - return err->severity(); -} - -Severity -EntityNode::StrToVal(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId) -{ - return STEPread(in, err, elem_type, insts, addFileId); -} - -Severity -EntityNode::STEPread(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId) -{ - std::istrstream in((char *)s); - return STEPread(in, err, elem_type, insts, addFileId); -} - -Severity -EntityNode::STEPread(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId) -{ - SCLP23(Application_instance) *se = ReadEntityRef(in, err, (char*)(",)"), - insts, addFileId); - if( se != S_ENTITY_NULL ) - { - ErrorDescriptor error; - if( EntityValidLevel(se, elem_type, &error) == SEVERITY_NULL ) - node = se; - else - { - node = S_ENTITY_NULL; - err->AppendToDetailMsg(error.DetailMsg()); - err->AppendToUserMsg(error.UserMsg()); - err->GreaterSeverity(error.severity()); - } - } - else - node = S_ENTITY_NULL; -// CheckRemainingInput(in, err, "enumeration", ",)"); - return err->severity(); -} - -const char * -EntityNode::asStr (SCLstring &s) -{ - s.set_null(); - if (!node || (node == S_ENTITY_NULL)) // nothing - return ""; - else // otherwise return entity id - { - char tmp [64]; - sprintf(tmp, "#%d", node->STEPfile_id); - s = tmp; - } - return s.chars(); -} - -const char * -EntityNode::STEPwrite(SCLstring &s, const char *) -{ - if (!node || (node == S_ENTITY_NULL) ) // nothing - { - s = "$"; - return s.chars(); - } - asStr(s); - return s.chars(); -} - -void -EntityNode::STEPwrite(std::ostream& out) -{ - if (!node || (node == S_ENTITY_NULL)) // nothing - out << "$"; - SCLstring s; - out << asStr(s); -} - - -/////////////////////////////////////////////////////////////////////////////// -// SelectAggregate -/////////////////////////////////////////////////////////////////////////////// - -SelectAggregate::SelectAggregate () -{ -} - -SelectAggregate::~SelectAggregate () -{ -// delete v; -} - - -// if exchangeFileFormat == 1 then delims are required. - -Severity -SelectAggregate::ReadValue(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, InstMgr *insts, - int addFileId, int assignVal, - int exchangeFileFormat, const char *currSch) -{ - ErrorDescriptor errdesc; - char errmsg[BUFSIZ]; - int value_cnt = 0; - SCLstring buf; - - if(assignVal) - Empty (); // read new values and discard existing ones - - char c; - int validDelims = 1; - - in >> std::ws; // skip white space - - c = in.peek(); // does not advance input - - if(in.eof() || (c == '$') ) - { - _null = 1; - err->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - - if(c == '(') - { - in.get(c); - validDelims = 0; // signal expectation for end delim - } - else if(exchangeFileFormat) - { // error did not find opening delim - // give up because you do not know where to stop reading. - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; - } - else if(!in.good()) - {// this should actually have been caught by skipping white space above - err->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - - SelectNode * item = 0; - - in >> std::ws; - // take a peek to see if there are any elements before committing to an - // element - c = in.peek(); // does not advance input - if(c == ')') - { - in.get(c); - } - // if not assigning values only need one node. So only one node is created. - // It is used to read the values - else if(!assignVal) - item = (SelectNode *) NewNode (); - - while (in.good() && (c != ')') ) - { - value_cnt++; - if(assignVal) // create a new node each time through the loop - item = (SelectNode *) NewNode (); - - errdesc.ClearErrorMsg(); - - if(exchangeFileFormat) - item->STEPread(in, &errdesc, elem_type, insts, addFileId, currSch); - else - item->StrToVal(in, &errdesc, elem_type, insts, addFileId, currSch); - - // read up to the next delimiter and set errors if garbage is - // found before specified delims (i.e. comma and quote) - CheckRemainingInput(in, &errdesc, elem_type->AttrTypeName(buf), ",)"); - - if (errdesc.severity() < SEVERITY_INCOMPLETE) - { - sprintf (errmsg, " index: %d\n", value_cnt ); - errdesc.PrependToDetailMsg(errmsg); - err->AppendFromErrorArg(&errdesc); -// err->AppendToDetailMsg(errdesc.DetailMsg()); -// err->AppendToUserMsg(errdesc.UserMsg()); - } - if(assignVal) - AddNode (item); - - in >> std::ws; // skip white space (although should already be skipped) - in.get(c); // read delim - - // CheckRemainingInput should have left the input right at the delim - // so that it would be read in in.get() above. Since it did not find - // the delim this does not know how to find it either! - if( (c != ',') && (c != ')') ) - { - // cannot recover so give up and let STEPattribute recover - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; - } - } - if(c == ')') - { - _null = 0; -// validDelims = 1; // expectation for end paren delim is met - } - else // expectation for end paren delim has not been met - { - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - err->AppendToUserMsg("Missing close paren for aggregate value"); - return SEVERITY_INPUT_ERROR; - } - return err->severity(); -} - - -STEPaggregate& -SelectAggregate::ShallowCopy (const STEPaggregate& a) -{ - const SelectNode * tmp = (const SelectNode*) a.GetHead (); - while (tmp) - { -#ifdef __OSTORE__ - AddNode (new (os_segment::of(this), - SelectNode::get_os_typespec()) SelectNode (tmp -> node)); -#else - AddNode (new SelectNode (tmp -> node)); -#endif - - tmp = (const SelectNode*) tmp -> NextNode (); - } - if(head) - _null = 0; - else - _null = 1; - - return *this; -} - - -SingleLinkNode * -SelectAggregate::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - SelectNode::get_os_typespec()) SelectNode(); -#else - return new SelectNode(); -#endif -} - -/////////////////////////////////////////////////////////////////////////////// -// SelectNode -/////////////////////////////////////////////////////////////////////////////// - -SelectNode::SelectNode(SCLP23(Select) * s) : node (s) -{ -} - -SelectNode::SelectNode() -{ -} - -SelectNode::~SelectNode() -{ -} - -SingleLinkNode * -SelectNode::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - SelectNode::get_os_typespec()) SelectNode(); -#else - return new SelectNode(); -#endif -} -/////////////////////////////////////////////////////////////////////////////// - -Severity -SelectNode::StrToVal(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId) -{ -/* - SCLP23(Application_instance) *se = ReadEntityRef(s, err, ",)", insts, - addFileId); - if( se != S_ENTITY_NULL ) - { - ErrorDescriptor error; - if(SelectValidLevel(se, elem_type, &error) == SEVERITY_NULL) - node = se; - else - { - node = S_ENTITY_NULL; - err->AppendToDetailMsg(error.DetailMsg()); - err->AppendToUserMsg(error.UserMsg()); - err->GreaterSeverity(error.severity()); - } - } - else - node = S_ENTITY_NULL; -*/ - // KC you will have to decide what to do here - std::istrstream in((char*)s); - if (err->severity( node->STEPread(in, err, insts) ) != SEVERITY_NULL) - err->AppendToDetailMsg (node ->Error ()); - return err->severity(); -} - -Severity -SelectNode::StrToVal(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId, const char *currSch) -{ - return STEPread(in, err, elem_type, insts, addFileId, currSch); -} - -Severity -SelectNode::STEPread(const char *s, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId) -{ - std::istrstream in((char *)s); - return STEPread(in, err, elem_type, insts, addFileId); -} - -Severity -SelectNode::STEPread(std::istream &in, ErrorDescriptor *err, - const TypeDescriptor *elem_type, - InstMgr *insts, int addFileId, const char *currSch) -{ - if (!node) { - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" - << _POC_ "\n"; - G4cerr << "function: SelectNode::STEPread \n" << "\n"; - return SEVERITY_BUG; - } - err->severity( node->STEPread(in, err, insts, 0, addFileId, currSch) ); - CheckRemainingInput(in, err, "select", ",)"); - return err->severity(); -} - -const char * -SelectNode::asStr (SCLstring &s) -{ - s.set_null(); - if ( !node || (node->is_null()) ) // nothing - return ""; - else // otherwise return entity id - { - node -> STEPwrite (s); - return s.chars (); - } -} - -const char * -SelectNode::STEPwrite(SCLstring &s, const char *currSch) -{ - s.set_null(); - if ( !node || (node->is_null()) ) // nothing - { - s = "$"; - return "$"; - } - node -> STEPwrite (s, currSch); - return s.chars(); -} - -void -SelectNode::STEPwrite(std::ostream& out) -{ - if ( !node || (node->is_null()) ) // nothing - out << "$"; - SCLstring s; - out << asStr(s); -} - -/////////////////////////////////////////////////////////////////////////////// -// StringAggregate -/////////////////////////////////////////////////////////////////////////////// - -/****************************************************************** -STEPaggregate& -StringAggregate::ShallowCopy (const STEPaggregate&); -******************************************************************/ - -StringAggregate::StringAggregate() -{ -} - -StringAggregate::~StringAggregate() -{ -} - -STEPaggregate& -StringAggregate::ShallowCopy (const STEPaggregate& a) -{ - Empty(); - - SingleLinkNode* next = a.GetHead(); - SingleLinkNode* copy; - - while (next) - { -#ifdef __OSTORE__ - copy = new (os_segment::of(this), - StringNode::get_os_typespec()) - StringNode (*(StringNode*)next); -#else - copy = new StringNode (*(StringNode*)next); -#endif - AddNode(copy); - next = next->NextNode(); - } - if(head) - _null = 0; - else - _null = 1; - return *this; - -} - -SingleLinkNode * -StringAggregate::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - StringNode::get_os_typespec()) StringNode(); -#else - return new StringNode(); -#endif -} - -/////////////////////////////////////////////////////////////////////////////// -// StringNode -/////////////////////////////////////////////////////////////////////////////// - -StringNode::StringNode() -{ - value = 0; -} - -StringNode::~StringNode() -{ -} - -StringNode::StringNode(StringNode& sn) -{ - value = sn.value.chars(); -} - -StringNode::StringNode(const char * sStr) -{ - // value is an SCLP23(String) (the memory is copied) - value = sStr; - -/* - // I do not think that you are expecting sStr in exchange file format - ErrorDescriptor err; - if(value.STEPread(sStr, &err) < SEVERITY_USERMSG) - value.set_null(); -*/ -} - -SingleLinkNode * -StringNode::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - StringNode::get_os_typespec()) StringNode(); -#else - return new StringNode(); -#endif -} - -/////////////////////////////////////////////////////////////////////////////// -// non-whitespace chars following s are considered garbage and is an error. -// a valid value will still be assigned if it exists before the garbage. -/////////////////////////////////////////////////////////////////////////////// - -Severity -StringNode::StrToVal(const char *s, ErrorDescriptor *err) -{ - return STEPread(s, err); -} - -// this function assumes you will check for garbage following input - -Severity -StringNode::StrToVal(std::istream &in, ErrorDescriptor *err) -{ - return value.STEPread(in, err); -} - -// non-whitespace chars following s are considered garbage and is an error. -// a valid value will still be assigned if it exists before the garbage. -Severity -StringNode::STEPread(const char *s, ErrorDescriptor *err) -{ - std::istrstream in((char *)s); - - value.STEPread(in, err); - CheckRemainingInput(in, err, "string", ",)"); - return err->severity(); -} - -// this function assumes you will check for garbage following input - -Severity -StringNode::STEPread(std::istream &in, ErrorDescriptor *err) -{ - return value.STEPread(in, err); -} - -const char * -StringNode::asStr(SCLstring &s) -{ -// return value.asStr(); // this does not put quotes around the value - - value.asStr(s); - return s.chars(); -} - -const char * -StringNode::STEPwrite (SCLstring &s, const char *) -{ - value.STEPwrite(s); - return s.chars(); -} - -void -StringNode::STEPwrite (std::ostream& out) -{ - value.STEPwrite(out); -} -/////////////////////////////////////////////////////////////////////////////// -// BinaryAggregate -/////////////////////////////////////////////////////////////////////////////// - -/****************************************************************** -STEPaggregate& -BinaryAggregate::ShallowCopy (const STEPaggregate&); -******************************************************************/ - -BinaryAggregate::BinaryAggregate() -{ -} - -BinaryAggregate::~BinaryAggregate() -{ -} - -STEPaggregate& -BinaryAggregate::ShallowCopy (const STEPaggregate& a) -{ - Empty(); - - SingleLinkNode* next = a.GetHead(); - SingleLinkNode* copy; - - while (next) - { -#ifdef __OSTORE__ - copy = new (os_segment::of(this), - BinaryNode::get_os_typespec()) - BinaryNode (*(BinaryNode*)next); -#else - copy = new BinaryNode (*(BinaryNode*)next); -#endif - AddNode(copy); - next = next->NextNode(); - } - if(head) - _null = 0; - else - _null = 1; - return *this; - -} - -SingleLinkNode * -BinaryAggregate::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - BinaryNode::get_os_typespec()) BinaryNode(); -#else - return new BinaryNode(); -#endif -} - -/////////////////////////////////////////////////////////////////////////////// -// BinaryNode -/////////////////////////////////////////////////////////////////////////////// - -BinaryNode::BinaryNode() -{ - value = 0; -} - -BinaryNode::~BinaryNode() -{ -} - -BinaryNode::BinaryNode(BinaryNode& bn) -{ - value = bn.value.chars(); -} - -BinaryNode::BinaryNode(const char *sStr) -{ - // value is an SCLP23(Binary) (the memory is copied) - value = sStr; -} - -SingleLinkNode * -BinaryNode::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - BinaryNode::get_os_typespec()) BinaryNode(); -#else - return new BinaryNode(); -#endif -} - -/////////////////////////////////////////////////////////////////////////////// -// non-whitespace chars following s are considered garbage and is an error. -// a valid value will still be assigned if it exists before the garbage. -/////////////////////////////////////////////////////////////////////////////// - -Severity -BinaryNode::StrToVal(const char *s, ErrorDescriptor *err) -{ - return STEPread(s, err); -} - -// this function assumes you will check for garbage following input - -Severity -BinaryNode::StrToVal(std::istream &in, ErrorDescriptor *err) -{ - return value.STEPread(in, err); -} - -// non-whitespace chars following s are considered garbage and is an error. -// a valid value will still be assigned if it exists before the garbage. - -Severity -BinaryNode::STEPread(const char *s, ErrorDescriptor *err) -{ - std::istrstream in((char *)s); - - value.STEPread(in, err); - CheckRemainingInput(in, err, "binary", ",)"); - return err->severity(); -} - -// this function assumes you will check for garbage following input - -Severity -BinaryNode::STEPread(std::istream &in, ErrorDescriptor *err) -{ - return value.STEPread(in, err); -} - -const char * -BinaryNode::asStr(SCLstring &s) -{ - s = value.chars(); - return s.chars(); -} - -const char * -BinaryNode::STEPwrite (SCLstring &s, const char *) -{ - value.STEPwrite(s); - return s.chars(); -} - -void -BinaryNode::STEPwrite (std::ostream& out) -{ - value.STEPwrite(out); -} - -/////////////////////////////////////////////////////////////////////////////// -// EnumAggregate -/////////////////////////////////////////////////////////////////////////////// - -// COPY -STEPaggregate& -EnumAggregate::ShallowCopy (const STEPaggregate& a) -{ - const EnumNode * tmp = (const EnumNode *) a.GetHead(); - EnumNode * to; - - while (tmp) - { - to = (EnumNode *) NewNode (); - to -> node -> put (tmp -> node ->asInt()); - AddNode (to); - tmp = (const EnumNode *) tmp -> NextNode (); - } - if(head) - _null = 0; - else - _null = 1; - - return *this; -} - -EnumAggregate::EnumAggregate () -{ - -} - -EnumAggregate::~EnumAggregate () -{ - -} - -/****************************************************************** - ** Procedure: EnumAggregate::NewNode - ** Parameters: - ** Returns: a new EnumNode which is of the correct derived type - ** Description: creates a node to put in an list of enumerated values - ** function is virtual so that the right node will be - ** created - ** Side Effects: - ** Status: ok 2/91 - ******************************************************************/ - -/*EnumNode **/ - -SingleLinkNode * -EnumAggregate::NewNode () -{ - // defined in subclass - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - G4cerr << "function: EnumAggregate::NewNode () called instead of virtual function. \n" - << _POC_ << "\n"; - return 0; -} - -/////////////////////////////////////////////////////////////////////////////// -// EnumNode -/////////////////////////////////////////////////////////////////////////////// - -EnumNode::EnumNode(SCLP23(Enum) * e) : node (e) -{ -} - -EnumNode::EnumNode() -{ -} - -EnumNode::~EnumNode() -{ -} - -SingleLinkNode * -EnumNode::NewNode () -{ - // defined in subclass - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ << "\n" ; - G4cerr << "function: EnumNode::NewNode () called instead of virtual function. \n" - << _POC_ << "\n"; - return 0; -} - -/* -// insts and addFileId are used for the EntityNode virtual definition of this -// function -Severity -EnumNode::StrToVal(const char *s, ErrorDescriptor *err) -{ - char messageBuf[BUFSIZ]; - messageBuf[0] = '\0'; - - Severity sev = SEVERITY_NULL; - int len = strlen (s); - char *val = new char [len + 1]; - val[0] = '\0'; - char *saveForDelete = val; - - int numFound = sscanf((char *)s," %s", val); - if(numFound != EOF) - { - if(val [0] == '.') // strip the delims - { - val++; - char * pos = strchr(val, '.'); - if (pos) - *pos = '\0'; - else - { - sev = SEVERITY_WARNING; - err->GreaterSeverity(SEVERITY_WARNING); - err->AppendToDetailMsg("Missing matching \'.\' delimiter.\n"); - } - } - if(elem_type) - { - if(elem_type->BaseType() == BOOLEAN_TYPE) - { - switch(val[0]) - { - case 't': - case 'f': - case 'T': - case 'F': - break; - default: - sev = SEVERITY_WARNING; - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, "Invalid Boolean value: \'%s\'.\n", - val); - err->AppendToDetailMsg(messageBuf); - break; - } - } - } - // assign based on the result of this element (the error descriptor - // contains the error level for the whole aggregate). -// if(assignVal && sev > SEVERITY_WARNING) - if(1 && sev > SEVERITY_WARNING) - node -> put (val); - } -//SCLP23(Enum)::EnumValidLevel(const char *value, ErrorDescriptor *err, -// int optional, char *tokenList, -// int needDelims, int clearError) - - node->EnumValidLevel((char *)val, err, 0, 0, 0, 0); - delete [] saveForDelete; - - // an element being null shouldn't make the aggregate incomplete!! - if(err->severity() == SEVERITY_INCOMPLETE) - err->severity(SEVERITY_NULL); - return err->severity(); -} -*/ - -/////////////////////////////////////////////////////////////////////////////// -// non-whitespace chars following s are considered garbage and is an error. -// a valid value will still be assigned if it exists before the garbage. -/////////////////////////////////////////////////////////////////////////////// - -Severity -EnumNode::StrToVal(const char *s, ErrorDescriptor *err) -{ - return STEPread(s, err); -} - -// this function assumes you will check for garbage following input - -Severity -EnumNode::StrToVal(std::istream &in, ErrorDescriptor *err) -{ - return node->STEPread(in, err); -} - -// non-whitespace chars following s are considered garbage and is an error. -// a valid value will still be assigned if it exists before the garbage. - -Severity -EnumNode::STEPread(const char *s, ErrorDescriptor *err) -{ - std::istrstream in((char *)s); // sz defaults to length of s - - int nullable = 0; - node->STEPread (in, err, nullable); - CheckRemainingInput(in, err, "enumeration", ",)"); - return err->severity(); -} - -// this function assumes you will check for garbage following input - -Severity -EnumNode::STEPread(std::istream &in, ErrorDescriptor *err) -{ - int nullable = 0; - node->STEPread (in, err, nullable); - return err->severity(); -} - -const char * -EnumNode::asStr (SCLstring &s) -{ - node -> asStr(s); - return s.chars(); -} - -const char * -EnumNode::STEPwrite (SCLstring &s, const char *) -{ - node->STEPwrite(s); - return s.chars(); - -/* - static char buf[BUFSIZ]; - buf[0] = '\0'; - -// const char *str = asStr(); -// if( (strlen(str) > 0) && (str[0] != '$') ) - - if(!(node->is_null())) - { - buf[0] = '.'; - buf[1] = '\0'; -// strcat(buf, str); - strcat(buf, asStr()); - strcat(buf, "."); - } - return buf; - */ -} - -void -EnumNode::STEPwrite (std::ostream& out) -{ -// out << '.' << asStr() << '.'; - node->STEPwrite(out); -} - -/////////////////////////////////////////////////////////////////////////////// -// LOGICALS -/////////////////////////////////////////////////////////////////////////////// - -LOGICALS::LOGICALS() -{ -} - -LOGICALS::~LOGICALS() -{ -} - -//EnumNode * -SingleLinkNode * -LOGICALS::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), EnumNode::get_os_typespec()) - EnumNode( new (os_segment::of(this), - SCLP23(LOGICAL)::get_os_typespec()) SCLP23(LOGICAL) ); -#else - return new EnumNode (new SCLP23(LOGICAL)); -#endif -} - -#ifdef __OSTORE__ -LOGICALS * -create_LOGICALS(os_database *db) -{ - return new (db, LOGICALS::get_os_typespec()) LOGICALS; -} -#else -LOGICALS * -create_LOGICALS() -{ - return new LOGICALS; -} -#endif - -/////////////////////////////////////////////////////////////////////////////// -// BOOLS -/////////////////////////////////////////////////////////////////////////////// - -BOOLS::BOOLS() -{ -} - -BOOLS::~BOOLS() -{ -} - -//EnumNode * -SingleLinkNode * -BOOLS::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), EnumNode::get_os_typespec()) - EnumNode( new (os_segment::of(this), - SCLP23(BOOL)::get_os_typespec()) SCLP23(BOOL) ); -#else - return new EnumNode (new SCLP23(BOOL)); -#endif -} - -#ifdef __OSTORE__ -BOOLS * -create_BOOLS(os_database *db) -{ - return new (db, BOOLS::get_os_typespec()) BOOLS; -} -#else -BOOLS * -create_BOOLS() -{ - return new BOOLS ; -} -#endif - -/////////////////////////////////////////////////////////////////////////////// -// RealAggregate -/////////////////////////////////////////////////////////////////////////////// - -RealAggregate::RealAggregate() -{ -} - -RealAggregate::~RealAggregate() -{ -} - -SingleLinkNode * -RealAggregate::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - RealNode::get_os_typespec()) RealNode(); -#else - return new RealNode(); -#endif -} - -// COPY -STEPaggregate& -RealAggregate::ShallowCopy (const STEPaggregate& a) -{ - const RealNode * tmp = (const RealNode *) a.GetHead(); - RealNode * to; - - while (tmp) - { - to = (RealNode *) NewNode (); - to -> value = tmp -> value; - AddNode (to); - tmp = (const RealNode *) tmp -> NextNode (); - } - if(head) - _null = 0; - else - _null = 1; - return *this; -} - -/////////////////////////////////////////////////////////////////////////////// -// IntAggregate -/////////////////////////////////////////////////////////////////////////////// - -IntAggregate::IntAggregate() -{ -} - -IntAggregate::~IntAggregate() -{ -} - -SingleLinkNode * -IntAggregate::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - IntNode::get_os_typespec()) IntNode(); -#else - return new IntNode(); -#endif -} - -// COPY -STEPaggregate& -IntAggregate::ShallowCopy (const STEPaggregate& a) -{ - const IntNode * tmp = (const IntNode *) a.GetHead(); - IntNode * to; - - while (tmp) - { - to = (IntNode *) NewNode (); - to -> value = tmp -> value; - AddNode (to); - tmp = (const IntNode *) tmp -> NextNode (); - } - if(head) - _null = 0; - else - _null = 1; - return *this; -} - -/////////////////////////////////////////////////////////////////////////////// -// RealNode -/////////////////////////////////////////////////////////////////////////////// - -RealNode::RealNode() -{ - value = S_REAL_NULL; -} - -RealNode::~RealNode() -{ -} - -SingleLinkNode * -RealNode::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - RealNode::get_os_typespec()) RealNode(); -#else - return new RealNode(); -#endif -} - -Severity -RealNode::StrToVal(const char *s, ErrorDescriptor *err) -{ - if( ReadReal(value, s, err, (char*)(",)")) ) // returns true if value is assigned - _null = 0; - else - { - set_null(); - value = S_REAL_NULL; - } - return err->severity (); -} - -Severity -RealNode::StrToVal(std::istream &in, ErrorDescriptor *err) -{ - if( ReadReal(value, in, err, (char*)(",)")) ) // returns true if value is assigned - _null = 0; - else - { - set_null(); - value = S_REAL_NULL; - } - return err->severity (); -} - - -Severity -RealNode::STEPread(const char *s, ErrorDescriptor *err) -{ - if( ReadReal(value, s, err, (char*)(",)")) ) // returns true if value is assigned - _null = 0; - else - { - set_null(); - value = S_REAL_NULL; - } - return err->severity (); -} - -Severity -RealNode::STEPread(std::istream &in, ErrorDescriptor *err) -{ - if( ReadReal(value, in, err, (char*)(",)")) ) // returns true if value is assigned - _null = 0; - else - { - set_null(); - value = S_REAL_NULL; - } - return err->severity (); -} - -const char * -RealNode::asStr(SCLstring &s) -{ - STEPwrite(s); - return s.chars(); -} - -const char * -RealNode::STEPwrite(SCLstring &s, const char *) -{ -// char tmp[BUFSIZ]; - if(value != S_REAL_NULL) - { -// sprintf(tmp, "%.15g", value); -// sprintf(tmp, "%.*g", Real_Num_Precision, value); -// s = tmp; - WriteReal(value,s); - } - else - s.set_null(); - return s.chars(); -} - -void -RealNode::STEPwrite(std::ostream& out) -{ - SCLstring s; - out << STEPwrite(s); -} - -/////////////////////////////////////////////////////////////////////////////// -// IntNode -/////////////////////////////////////////////////////////////////////////////// - -IntNode::IntNode() -{ - value = S_INT_NULL; -} - -IntNode::~IntNode() -{ -} - -SingleLinkNode * -IntNode::NewNode () -{ -#ifdef __OSTORE__ - return new (os_segment::of(this), - IntNode::get_os_typespec()) IntNode(); -#else - return new IntNode(); -#endif -} - -Severity -IntNode::StrToVal(const char *s, ErrorDescriptor *err) -{ - if( ReadInteger(value, s, err, (char*)(",)")) ) // returns true if value is assigned - _null = 0; - else - { - set_null(); - value = S_INT_NULL; - } - return err->severity (); -} - -Severity -IntNode::StrToVal(std::istream &in, ErrorDescriptor *err) -{ - if( ReadInteger(value, in, err, (char*)(",)")) )// returns true if value is assigned - _null = 0; - else - { - set_null(); - value = S_INT_NULL; - } - return err->severity (); -} - -Severity -IntNode::STEPread(const char *s, ErrorDescriptor *err) -{ - if( ReadInteger(value, s, err, (char*)(",)")) ) // returns true if value is assigned - _null = 0; - else - { - set_null(); - value = S_INT_NULL; - } - return err->severity (); -} - -Severity -IntNode::STEPread(std::istream &in, ErrorDescriptor *err) -{ - if( ReadInteger(value, in, err, (char*)(",)")) ) // returns true if value is assigned - _null = 0; - else - { - set_null(); - value = S_INT_NULL; - } - return err->severity (); -} - -const char * -IntNode::asStr(SCLstring &s) -{ - STEPwrite(s); - return s.chars(); -} - -const char * -IntNode::STEPwrite(SCLstring &s, const char *) -{ - char tmp[BUFSIZ]; - if(value != S_INT_NULL) - { - sprintf(tmp, "%d", value); - s = tmp; - } - else - s.set_null(); - return s.chars(); -} - -void -IntNode::STEPwrite(std::ostream& out) -{ - SCLstring s; - out << STEPwrite(s); -} diff --git a/source/geometry/solids/STEP/src/STEPattribute.cc b/source/geometry/solids/STEP/src/STEPattribute.cc deleted file mode 100644 index 5d75b7d546..0000000000 --- a/source/geometry/solids/STEP/src/STEPattribute.cc +++ /dev/null @@ -1,1270 +0,0 @@ -/* -* NIST STEP Core Class Library -* clstepcore/STEPattribute.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPattribute.cc,v 1.6 2003/06/06 17:07:32 gcosmo Exp $ */ - -#include -#include -//#include -#include -#include -#include -//#include -#include -#include - -// REAL_NUM_PRECISION is defined in STEPattribute.h, and is also used -// in aggregate real handling (STEPaggregate.cc) -- IMS 6 Jun 95 -const int Real_Num_Precision = REAL_NUM_PRECISION; - -/****************************************************************** -** Functions for manipulating attribute - -** KNOWN BUGS: -** -- error reporting does not include line number information -** -- null attributes are only handled through the attribute pointer class -** direct access of a null attribute will not indicate whether the -** attribute is null in all cases (although a null value is available -** for entities and enumerations.) -**/ - - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -// STEPattribute Functions -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// - -/****************************************************************** -// the value of the attribute is assigned from the supplied string - ******************************************************************/ - -Severity -STEPattribute::StrToVal (const char* s, InstMgr * instances, int addFileId) -{ - if ( RedefiningAttr() ) { - return RedefiningAttr()->StrToVal(s, instances, addFileId); - } - - _error.ClearErrorMsg(); // also sets Severity to SEVERITY_NULL - - // set the value to be null (reinitialize the attribute value) - set_null(); - - int nullable = ( aDesc->Optional().asInt() == SCLBOOL(BTrue) ); - - // an empty str gets assigned NULL - if (!s ) - { - if( nullable || IsDerived() ) // if it is derived it doesn't - return SEVERITY_NULL; // matter if it is null DAS - else { - _error.severity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - } - if (s[0] == '\0') - { - if(NonRefType() == STRING_TYPE) - { // this is interpreted as a string with no value i.e. "". - *(ptr.S) = s; // using string class - don't need to declare space - return SEVERITY_NULL; - } - if( nullable || IsDerived() ) // if it is derived it doesn't - return SEVERITY_NULL; // matter if it is null DAS - else { - _error.severity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - } - - // an overridden attribute always has a \'*\' value - if( IsDerived() ) // check to see if value contains: optional space, - { // followed by *, followed by optional space - const char * tmpSptr = s; - while( isspace( *tmpSptr ) ) tmpSptr++; - if(*tmpSptr == '*') - { - tmpSptr++; - char tmpC; - int charsFound = sscanf(tmpSptr, "%c", &tmpC); - if(charsFound == EOF) // no non-white chars followed the * - return SEVERITY_NULL; - } - _error.AppendToDetailMsg ( - "Derived attribute must have \'*\' for its value.\n"); - return _error.severity (SEVERITY_INPUT_ERROR); - } - - std::istrstream in ((char *)s); // sz defaults to length of s - int valAssigned = 0; - - // read in value for attribute - switch (NonRefType()) - { - case INTEGER_TYPE: - { - valAssigned = ReadInteger(*(ptr.i), s, &_error, 0); - break; - } - case REAL_TYPE: - { - valAssigned = ReadReal(*(ptr.r), s, &_error, 0); - break; - } - case NUMBER_TYPE: - { - valAssigned = ReadNumber(*(ptr.r), s, &_error, 0); - break; - } - - case ENTITY_TYPE: - { - STEPentity *se = ReadEntityRef(s, &_error, 0, instances, addFileId); - if( se != S_ENTITY_NULL ) - { - if(EntityValidLevel(se, aDesc->NonRefTypeDescriptor(), - &_error) - == SEVERITY_NULL) - *(ptr.c) = se; - else - *(ptr.c) = S_ENTITY_NULL; - } - else - *(ptr.c) = S_ENTITY_NULL; - break; - } - - case BINARY_TYPE: - { - ptr.b->StrToVal(s, &_error); // call class SCLP23(Binary)::StrToVal() - break; - } - case STRING_TYPE: - { - *(ptr.S) = s; // using string class - don't need to declare space - break; - } - - case BOOLEAN_TYPE: - case LOGICAL_TYPE: - case ENUM_TYPE: - { - ptr.e->StrToVal (s, &_error, nullable); - break; - } - - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - ptr.a -> StrToVal (s, &_error, - aDesc -> AggrElemTypeDescriptor (), - instances, addFileId); - break; - - case SELECT_TYPE: - if (_error.severity( ptr.sh->STEPread(in, &_error, instances, 0) ) - != SEVERITY_NULL) - _error.AppendToDetailMsg (ptr.sh ->Error ()); - break; - -// case UNKNOWN_TYPE: // should never have this case - case GENERIC_TYPE: - default: - // other cases are the same for StrToVal and file - return STEPread(in, instances, addFileId); - } - return _error.severity(); -} - - -/****************************************************************** - ** Procedure: STEPread - ** Returns: Severity, which indicates success, or failure - ** value >= SEVERITY_WARNING means program can continue parsing input, - ** value <= SEVERITY_INPUT_ERROR is fatal read error - ** Description: the value of the attribute is read from std::istream - ** the format expected is STEP exchange file - ** modified to accept '$' as value for OPTIONAL ATTRIBUTE, - ** (since this function is used for reading files in both - ** formats, the function accepts either '$' (new format), - ** or nothing (old format)) 31-Jul-1992 - ******************************************************************/ -// does not read the delimiter separating individual attributes (i.e. ',') or -// the delim separating the last attribute from the end of the entity (')'). - -Severity -STEPattribute::STEPread (std::istream& in, InstMgr * instances, int addFileId, - const char *currSch) -{ - char errStr[BUFSIZ]; - errStr[0] = '\0'; - char c ='\0'; - - // The attribute has been redefined by the attribute pointed - // to by _redefAttr so write the redefined value. - if ( RedefiningAttr() ) { - return RedefiningAttr()->STEPread(in, instances, addFileId, currSch); - } - - _error.ClearErrorMsg(); // also sets Severity to SEVERITY_NULL - - // set the value to be null (reinitialize the attribute value) - set_null(); - - in >> std::ws; // skip whitespace - in >> c; - in.putback (c); // leave input stream alone - -/* -// This precludes using this attribute to read the value for the redefined -// attr. - - // this is redefining another attr, it should not be written in a Part 21 - // file. It may be written using an asterisk. - if( aDesc->AttrType() == AttrType_Redefining ) - { - if(c == '*') - { - in.get(c); // take * off the std::istream - _error.severity(SEVERITY_WARNING); - sprintf(errStr, " WARNING: attribute %s of type %s, %s", - aDesc->Name(), aDesc->TypeName(), - "Removing asterisk for redefining attribute.\n"); - _error.AppendToDetailMsg(errStr); - CheckRemainingInput(in, &_error, aDesc->TypeName(), ",)"); - return _error.severity(); - } - else - { // The redefining attribute should not be mapped to a Part 21 file - // anyway so pretend that this function was not called and don't - // read anything. - _error.severity(SEVERITY_NULL); - return _error.severity(); - } - } -*/ - - if(IsDerived()) - { - if(c == '*') - { - in.get(c); // take * off the std::istream - _error.severity(SEVERITY_NULL); - } - else - { - _error.severity(SEVERITY_WARNING); - sprintf(errStr, " WARNING: attribute %s of type %s, %s", - aDesc->Name(), aDesc->TypeName(), - "Missing asterisk for derived attribute.\n"); - _error.AppendToDetailMsg(errStr); - } - CheckRemainingInput(in, &_error, aDesc->TypeName(), ",)"); - return _error.severity(); - } - - // check for NULL or derived attribute value, return if either - switch (c) - { - case '$': - case ',': - case ')': - if (c == '$') - { - in.get(c); - CheckRemainingInput(in, &_error, aDesc->TypeName(), ",)"); - } - if(Nullable()) { - _error.severity(SEVERITY_NULL); - } - else { - _error.severity(SEVERITY_INCOMPLETE); - sprintf(errStr, " missing and required\n"); -// " Warning: attribute '%s : %s' is missing and required.\n", -// Name(), TypeName()); - _error.AppendToDetailMsg(errStr); - } - return _error.severity(); -/* - case '*': - { - in.get(c); // take * off the std::istream - if( IsDerived() ) - _error.severity(SEVERITY_NULL); - else if( aDesc->AttrType() == AttrType_Redefining ) - _error.severity(SEVERITY_NULL); - else { - _error.severity(SEVERITY_INCOMPLETE); - sprintf(errStr, - " attribute not derived or redefining an attribute\n"); - _error.AppendToDetailMsg(errStr); - } - CheckRemainingInput(in, &_error, aDesc->TypeName(), ",)"); - return _error.severity(); - } -*/ - } - - PrimitiveType attrBaseType = NonRefType(); - switch( attrBaseType ) - { - case INTEGER_TYPE: - { - int valAssigned = ReadInteger(*(ptr.i), in, &_error, (char*)(",)")); - return _error.severity(); - } - case REAL_TYPE: - { - int valAssigned = ReadReal(*(ptr.r), in, &_error, (char*)(",)")); - return _error.severity(); - } - case NUMBER_TYPE: - { - int valAssigned = ReadNumber(*(ptr.r), in, &_error, (char*)(",)")); - return _error.severity(); - } - case STRING_TYPE: - { - ptr.S->STEPread (in, &_error); - CheckRemainingInput(in, &_error, "string", ",)"); - return _error.severity(); - } - case BINARY_TYPE: - { // call class SCLP23(Binary)::STEPread() - ptr.b->STEPread(in, &_error); - CheckRemainingInput(in, &_error, "binary", ",)"); - return _error.severity(); - } - case BOOLEAN_TYPE: - { -// int nullable = (aDesc->Optional().asInt() == OPBOOL(BTrue) ); - ptr.e->STEPread (in, &_error, Nullable()); - CheckRemainingInput(in, &_error, "boolean", ",)"); - return _error.severity(); - } - case LOGICAL_TYPE: - { - ptr.e->STEPread (in, &_error, Nullable()); - CheckRemainingInput(in, &_error, "logical", ",)"); - return _error.severity(); - } - case ENUM_TYPE: - { - ptr.e->STEPread (in, &_error, Nullable()); - CheckRemainingInput(in, &_error, "enumeration", ",)"); - return _error.severity(); - } - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - { - ptr.a->STEPread(in, &_error, - aDesc->AggrElemTypeDescriptor(), - instances, addFileId, currSch); - - // cannot recover so give up and let STEPentity recover - if(_error.severity() < SEVERITY_WARNING) - return _error.severity(); - - // check for garbage following the aggregate - CheckRemainingInput(in, &_error, "aggregate", ",)"); - return _error.severity(); - } - case ENTITY_TYPE: - { - STEPentity *se = ReadEntityRef(in, &_error, (char*)(",)"), instances, - addFileId); - if( se != S_ENTITY_NULL ) - { - if(EntityValidLevel(se, - aDesc->NonRefTypeDescriptor(), - &_error) == SEVERITY_NULL) - *(ptr.c) = se; - else - { - *(ptr.c) = S_ENTITY_NULL; - } - } - else - *(ptr.c) = S_ENTITY_NULL; -// CheckRemainingInput(in, &_error, "enumeration", ",)"); - return _error.severity(); - - } - case SELECT_TYPE: - if ( _error.severity( ptr.sh->STEPread(in, &_error, instances, 0, - addFileId, currSch) ) - != SEVERITY_NULL ) { - _error.AppendToDetailMsg (ptr.sh ->Error ()); - } - CheckRemainingInput(in, &_error, "select", ",)"); - return _error.severity(); - - case GENERIC_TYPE: - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - _error.GreaterSeverity (SEVERITY_BUG); - return _error.severity(); - } - - case UNKNOWN_TYPE: - case REFERENCE_TYPE: - default: - { - // bug - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - _error.GreaterSeverity (SEVERITY_BUG); - return _error.severity(); - } - } -} - -/********************************************************************* - ** Procedure: asStr - ** Parameters: currSch - used for select type writes. See commenting - ** in SCLP23(Select)::STEPwrite(). - ** Returns: - ** Description: the value of the attribute is returned as a string. - ** Side Effects: - ** Status: complete 3/91 - *********************************************************************/ -const char * -STEPattribute::asStr (SCLstring& str, const char *currSch) const -{ -// char attrVal[BUFSIZ]; -// attrVal[0] = '\0'; - - str.set_null(); - - // The attribute has been derived by a subtype's attribute - if (IsDerived ()) { str = "*"; return str.chars(); } - -/* - // The attribute is redefining the type of a parent's attribute so... - // If explicitly directed to write the attribute value by the - // redefined attribute then write it - indicated by writeRedefined param. - // If not explicitly directed to write value, write asterisk - see Part 21. - // got rid of param writeRedefined - // see technical corrigendum for Part 21 - if (!writeRedefined && (aDesc->AttrType() == AttrType_Redefining) ) { - str = "*"; - return str.chars(); - } -*/ - // The attribute has been redefined by the attribute pointed - // to by _redefAttr so write the redefined value. - if ( _redefAttr ) { - return _redefAttr->asStr( str, currSch ); - } - - if (is_null ()) { str = ""; return str.chars(); } - - switch (NonRefType()) { - case INTEGER_TYPE: - str.Append (*(ptr.i)); -// sprintf ( attrVal,"%ld",*(ptr.i)); - break; - - case NUMBER_TYPE: - case REAL_TYPE: - - str.Append (*(ptr.r), (int) Real_Num_Precision); -// sprintf (attrVal, "%.*G", (int) Real_Num_Precision, *(ptr.r)); - break; - - case ENTITY_TYPE: - // print instance id only if not empty pointer - // and has value assigned - if ((*(ptr.c) == S_ENTITY_NULL) || (*(ptr.c) == 0)) - break; - else - { - (*(ptr.c))->STEPwrite_reference (str); -// strncpy(attrVal, str.chars(), str.Length()+1); - } - break; - - case BINARY_TYPE: - if( !( (ptr.b)->is_null() ) ) - (ptr.b) -> STEPwrite (str); -// strncpy(attrVal, str.chars(), str.Length()+1); - break; - - case STRING_TYPE: - if( !( (ptr.S)->is_null() ) ) - return (ptr.S) -> asStr (str); - break; - - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - return ptr.a->asStr(str) ; -// sprintf ( attrVal, "%s", ptr.a->asStr() ); - - case ENUM_TYPE: - case BOOLEAN_TYPE: - case LOGICAL_TYPE: - return ptr.e -> asStr(str); - - case SELECT_TYPE: - ptr.sh -> STEPwrite ( str, currSch ); - return str; -// strncpy (attrVal, tmp.chars(), BUFSIZ); - - case REFERENCE_TYPE: - case GENERIC_TYPE: - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return 0; - - case UNKNOWN_TYPE: - default: - return (ptr.u -> asStr (str)); - } -// return (attrVal); - return str; -} - -// The value of the attribute is printed to the output stream specified by out. -// The output is in physical file format. - -void -STEPattribute::STEPwrite (std::ostream& out, const char *currSch) -{ - // The attribute has been derived by a subtype's attribute - if ( IsDerived() ) { - out << "*"; - return; - } - -/* - // The attribute is redefining the type of a parent's attribute so... - // If explicitly directed to write the attribute value by the - // redefined attribute then write it - indicated by writeRedefined param. - // If not explicitly directed to write value, write asterisk - see Part 21. - // got rid of param writeRedefined - // see technical corrigendum for Part 21 - if (!writeRedefined && (aDesc->AttrType() == AttrType_Redefining) ) { - out << "*"; - return; - } -*/ - // The attribute has been redefined by the attribute pointed - // to by _redefAttr so write the redefined value. - if ( RedefiningAttr() ) { - RedefiningAttr()->STEPwrite(out); - return; - } - - if (is_null ()) { - out << "$"; - return; - } - - switch (NonRefType()) - { - case INTEGER_TYPE: - out << *(ptr.i); - break; - - case NUMBER_TYPE: - case REAL_TYPE: - { - WriteReal(*(ptr.r),out); -/* - char rbuf[64]; - SCLP23(Real) tmp = *(ptr.r); - - // IMS (6 Jun 95): - // Previously, this code was explicitly rounding reals with - // magnitude smaller than 1e-9, by doing the following: - - // if(tmp > -.00000001 && tmp < .00000001) out << 0.0; - // else... - - // No one's quite sure why this was happening, because the %g - // style output used below should shift such things to e-notation - // automagically. - -// out << form("%.*G", (int) Real_Num_Precision,tmp); - // replace the above line with this code so that writing the '.' is - // guaranteed for reals. If you use e or E then you get many - // unnecessary trailing zeros. g and G truncates all trailing zeros - // to save space but when no non-zero precision exists it also - // truncates the decimal. The decimal is required by Part 21. - // Also use G instead of g since G writes uppercase E (E instead of e - // is also required by Part 21) when scientific notation is used - DAS - - sprintf(rbuf, "%.*G", (int) Real_Num_Precision,tmp); - if(!strchr(rbuf, '.')) - { - int rindex = strlen(rbuf); - rbuf[rindex] = '.'; - rbuf[rindex+1] = '\0'; - } - out << rbuf; -*/ - // IMS (21 Jul 95) - // Real values, according to Part 21, _must_ have a fractional part. - // So make sure we have one on integral values: - - // this works sometimes but doesn't work when the value has enough - // significant digits that the fraction gets truncated (and can't be - // represented) but is not big enough that scientific notation gets - // used. There may be other cases where it doesn't work but one is - // enough. DAS -// if (tmp == int(tmp)) // tmp doesn't have a fraction -// out << ".0"; - - break; - } - - case ENTITY_TYPE: - // print instance id only if not empty pointer - if ((*(ptr.c) == 0) || - // no value was assigned <-- this would be a BUG - (*(ptr.c) == S_ENTITY_NULL) ) - { - out << "$"; - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - - char errStr[BUFSIZ]; - errStr[0] = '\0'; - _error.GreaterSeverity(SEVERITY_BUG); - sprintf(errStr, - " Warning: attribute '%s : %s' is null and shouldn't be.\n", - Name(), TypeName()); - _error.AppendToUserMsg(errStr); - _error.AppendToDetailMsg(errStr); - } - else (*(ptr.c)) -> STEPwrite_reference (out); - break; - - case STRING_TYPE: - // if null pointer or pointer to a string of length zero - if(ptr.S) - (ptr.S) -> STEPwrite (out); - else - { - out << "$"; - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - - char errStr[BUFSIZ]; - errStr[0] = '\0'; - _error.GreaterSeverity(SEVERITY_BUG); - sprintf(errStr, - " Warning: attribute '%s : %s' should be pointing at %s", - Name(), TypeName(), "an SCLP23(String).\n"); - _error.AppendToUserMsg(errStr); - _error.AppendToDetailMsg(errStr); - } - break; - - case BINARY_TYPE: - // if null pointer or pointer to a string of length zero - if(ptr.b) - (ptr.b) -> STEPwrite (out); - else - { - out << "$"; - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ - << "\n" << _POC_ "\n"; - - char errStr[BUFSIZ]; - errStr[0] = '\0'; - _error.GreaterSeverity(SEVERITY_BUG); - sprintf(errStr, - " Warning: attribute '%s : %s' should be pointing at %s", - Name(), TypeName(), "an SCLP23(Binary).\n"); - _error.AppendToUserMsg(errStr); - _error.AppendToDetailMsg(errStr); - } - break; - - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - ptr.a -> STEPwrite (out, currSch); - break; - - case ENUM_TYPE: - case BOOLEAN_TYPE: - case LOGICAL_TYPE: - if(ptr.e) - ptr.e -> STEPwrite (out); - else - { - out << "$"; - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ - << "\n" << _POC_ "\n"; - - char errStr[BUFSIZ]; - errStr[0] = '\0'; - _error.GreaterSeverity(SEVERITY_BUG); - sprintf(errStr, - " Warning: attribute '%s : %s' should be pointing at %s", - Name(), TypeName(), "a SCLP23(Enum) class.\n"); - _error.AppendToUserMsg(errStr); - _error.AppendToDetailMsg(errStr); - } - break; - - case SELECT_TYPE: - if(ptr.sh) - ptr.sh -> STEPwrite (out, currSch); - else - { - out << "$"; - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - - char errStr[BUFSIZ]; - errStr[0] = '\0'; - _error.GreaterSeverity(SEVERITY_BUG); - sprintf(errStr, - " Warning: attribute '%s : %s' should be pointing at %s", - Name(), TypeName(), "a SCLP23(Select) class.\n"); - _error.AppendToUserMsg(errStr); - _error.AppendToDetailMsg(errStr); - } - break; - - case REFERENCE_TYPE: - case GENERIC_TYPE: - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ - << "\n" << _POC_ "\n"; - _error.GreaterSeverity (SEVERITY_BUG); - return; - - case UNKNOWN_TYPE: - default: - ptr.u -> STEPwrite (out); - break; - - } -} - - -int -STEPattribute::ShallowCopy(STEPattribute *sa) -{ - if ( RedefiningAttr() ) { - return RedefiningAttr()->ShallowCopy(sa); - } - switch(sa->NonRefType()) - { - case INTEGER_TYPE: - *ptr.i = *(sa->ptr.i); - break; - case BINARY_TYPE: - *(ptr.b) = *(sa->ptr.b); - break; - case STRING_TYPE: - *(ptr.S) = *(sa->ptr.S); - break; - case REAL_TYPE: - case NUMBER_TYPE: - *ptr.r = *(sa->ptr.r); - break; - case ENTITY_TYPE: - *ptr.c = *(sa->ptr.c); - break; - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - ptr.a -> ShallowCopy (*(sa -> ptr.a)); - break; - case SELECT_TYPE: - *ptr.sh = *(sa->ptr.sh); - break; - case ENUM_TYPE: - case BOOLEAN_TYPE: - case LOGICAL_TYPE: - ptr.e->put(sa->ptr.e->asInt()); - break; - - default: - *ptr.u = *(sa->ptr.u); - break; - } - return 1; -} - -// for a string attribute this means, make it not exist i.e. SCLP23(String) -// will exist in member variable ptr but SCLP23(string) will be told to report -// as not containing a value (even a value of no chars). - -Severity -STEPattribute::set_null() -{ - if ( RedefiningAttr() ) { - return RedefiningAttr()->set_null(); - } - switch (NonRefType()) { - case INTEGER_TYPE: - *(ptr.i) = S_INT_NULL; - break; - - case NUMBER_TYPE: - *(ptr.r) = S_NUMBER_NULL; - break; - - case REAL_TYPE: - *(ptr.r) = S_REAL_NULL; - break; - - case ENTITY_TYPE: - *(ptr.c) = S_ENTITY_NULL; - break; - - case STRING_TYPE: - ptr.S -> set_undefined (); - break; - - case BINARY_TYPE: - ptr.b -> set_null (); - break; - - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - { - ptr.a -> Empty (); - break; - } - - case ENUM_TYPE: - case BOOLEAN_TYPE: - case LOGICAL_TYPE: - ptr.e -> set_null(); - break; - - case SELECT_TYPE: - ptr.sh -> set_null(); - break; - - case REFERENCE_TYPE: - case GENERIC_TYPE: - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return SEVERITY_BUG; - - case UNKNOWN_TYPE: - default: - { - ptr.u -> set_null(); - char errStr[BUFSIZ]; - errStr[0] = '\0'; - sprintf(errStr, " Warning: attribute '%s : %s : %d' - %s.\n", - Name(), TypeName(), Type(), - "Don't know how to make attribute NULL"); - _error.AppendToDetailMsg(errStr); - _error.GreaterSeverity(SEVERITY_WARNING); - return SEVERITY_WARNING; - } - } - if(Nullable()) - return SEVERITY_NULL; - else - return SEVERITY_INCOMPLETE; -} - -// For a string value this reports whether the string exists (as reported by -// SCLP23(String) ) not whether SCLP23(String) contains a null string. - -int -STEPattribute::is_null () const -{ - if ( _redefAttr ) { - return _redefAttr->is_null(); - } - switch ( NonRefType() ) - { - case INTEGER_TYPE: - return (*(ptr.i) == S_INT_NULL); - - case NUMBER_TYPE: - return (*(ptr.r) == S_NUMBER_NULL); - - case REAL_TYPE: - return (*(ptr.r) == S_REAL_NULL); - - case ENTITY_TYPE: - return (*(ptr.c) == S_ENTITY_NULL); - - case STRING_TYPE: - return ptr.S -> is_undefined (); - - case BINARY_TYPE: - return ptr.b -> is_null (); - - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - { - return ( ptr.a -> is_null() ); - } - - case ENUM_TYPE: - case BOOLEAN_TYPE: - case LOGICAL_TYPE: - return ( ptr.e -> is_null() ); - - case SELECT_TYPE: - return( ptr.sh->is_null() ); - - case REFERENCE_TYPE: - case GENERIC_TYPE: - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ - << "\n" << _POC_ "\n"; - return SEVERITY_BUG; - - case UNKNOWN_TYPE: - default: - return (ptr.u -> is_null()); - } -} - -/****************************************************************** - ** Procedure: operator == - ** Parameters: STEPattribute & a1 and a2 - ** Returns: int -- if 0 => not equal - ** Description: evaluates the equality of two attributes - ** Side Effects: none - ** Status: stub -- needs alot of work - ******************************************************************/ - -// equality for STEPattribute -int operator == (STEPattribute &a1, STEPattribute &a2) -{ - G4cerr << "Internal error: " << __FILE__ << ": " << __LINE__ - << "\n" << _POC_ "\n"; - if (a1.aDesc->NonRefType() == a2.aDesc->NonRefType()) - ; - return 0; -} - - - -/////////////////////////////////////////////////////////////////////////////// -// returns the severity level that the parameter attrValue would pass if it -// was the value for this attribute. -// *note* for string values - (attrValue = 0) => string value does not exist, -// attrValue exists it is valid. -/////////////////////////////////////////////////////////////////////////////// - -Severity -STEPattribute::ValidLevel (const char *attrValue, ErrorDescriptor *error, - InstMgr *im, int clearError) -{ - if(clearError) - ClearErrorMsg(); - - if ( RedefiningAttr() ) { - return RedefiningAttr()->ValidLevel(attrValue, error, im, clearError); - } - int optional = Nullable(); - - if( !attrValue ) - { - if(optional) - return error->severity(); - else - { - error->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - } - if( attrValue[0] == '\0' ) - { - if(NonRefType() == STRING_TYPE) - { // this is interpreted as a string with no value i.e. "". - // Thus if it exists it has to be valid. - return SEVERITY_NULL; - } - if(optional) - return error->severity(); - else - { - error->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - } - - // an overridden attribute always has a \'*\' value - if (IsDerived ()) { - if (!strcmp (attrValue, "*")) return SEVERITY_NULL; - else { - _error.AppendToDetailMsg ("attr is derived - value not permitted\n"); - return _error.severity (SEVERITY_INPUT_ERROR); - } - } - - switch (NonRefType() ) { - case INTEGER_TYPE: - return IntValidLevel(attrValue, error, clearError, optional, 0); - - case STRING_TYPE: - // if a value exists (checked above) then that is the string value - return SEVERITY_NULL; - - case REAL_TYPE: - return RealValidLevel(attrValue, error, clearError, optional, 0); - - case NUMBER_TYPE: - return NumberValidLevel(attrValue, error, clearError, optional, 0); - - case ENTITY_TYPE: - return EntityValidLevel(attrValue, - aDesc->NonRefTypeDescriptor(), - error, im, 0); - case BINARY_TYPE: - return ptr.b->BinaryValidLevel(attrValue, &_error, optional, 0); - - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - { - return ptr.a->AggrValidLevel(attrValue, error, - aDesc->AggrElemTypeDescriptor(), im, - optional, 0, 0, 0); - } - case ENUM_TYPE: - case BOOLEAN_TYPE: - case LOGICAL_TYPE: - return ptr.e->EnumValidLevel(attrValue, error, optional, 0, 0, 1); - case SELECT_TYPE: - return ptr.sh->SelectValidLevel(attrValue, error, im, 0); - - default: - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return error->severity(); - } -} - -/****************************************************************** - ** Procedure: operator << - ** Parameters: std::ostream & out -- output stream - ** STEPattribute & a -- attribute to output - ** Returns: std::ostream & - ** Description: overloads the output operator to print an attribute - ******************************************************************/ - -std::ostream &operator<< ( std::ostream& out, STEPattribute& a ) -{ - a.STEPwrite (out); - return out; - -} - - -///////////////////////////// AddErrorInfo() ////////////////////////////////// -// This adds prepends attribute information to the detailed error msg. This -// is intended to add information to the error msgs written by Enumerations, -// Aggregates, and SCLP23(String)s which don't know they are a STEPattribute -// value. -/////////////////////////////////////////////////////////////////////////////// - -void -STEPattribute::AddErrorInfo() -{ - char errStr[BUFSIZ]; - errStr[0] = '\0'; - - if(SEVERITY_INPUT_ERROR < _error.severity() && - _error.severity() < SEVERITY_NULL) - { - sprintf(errStr, " Warning: ATTRIBUTE '%s : %s : %d' - ", - Name(), TypeName(), Type()); - _error.PrependToDetailMsg(errStr); - } - else if(_error.severity() == SEVERITY_INPUT_ERROR) - { - sprintf(errStr, " Error: ATTRIBUTE '%s : %s : %d' - ", - Name(), TypeName(), Type()); - _error.PrependToDetailMsg(errStr); - } - else if(_error.severity() <= SEVERITY_BUG) - { - sprintf(errStr, " BUG: ATTRIBUTE '%s : %s : %d' - ", - Name(), TypeName(), Type()); - _error.PrependToDetailMsg(errStr); - } -} - -/////////////////////////////////////////////////////////////////////////////// - -// this function reads until it hits eof or one of the StopChars. -// if it hits one of StopChars it puts it back. -// RETURNS: the last char it read. -char -STEPattribute::SkipBadAttr(std::istream& in, char *StopChars) -{ - - // turn skipping whitespace off - in.unsetf(std::ios::skipws); - - // read bad data until end of this attribute or entity. - char *foundCh = 0; - char c = '\0'; - char errStr[BUFSIZ]; - errStr[0] = '\0'; - - _error.GreaterSeverity(SEVERITY_WARNING); - in >> c; - while( !in.eof() && !(foundCh = strchr(StopChars, c)) ) - in >> c; - if(in.eof()) - { - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - sprintf(errStr, " Error: attribute '%s : %s : %d' - %s.\n", - Name(), TypeName(), Type(), - "Unexpected EOF when skipping bad attr value"); - _error.AppendToDetailMsg(errStr); - } - else - { - sprintf(errStr, " Error: attribute '%s : %s : %d' - %s.\n", - Name(), TypeName(), Type(), "Invalid value"); - _error.AppendToDetailMsg(errStr); - } - in.putback (c); - - // set skip whitespace to its original state - in.setf(std::ios::skipws); - - return c; -} - - -/////////////////// READ - -#ifdef OBSOLETE - -// appends char 'c' to char * 's' starting at index 'index'. 'index' is -// incremented by one and returned. If assigning 'c' will cause 's' to be -// larger than size 'sSize' then 's' is deleted and reallocated and 's' and -// 'sSize' are changed and returned appropriately. - -void -AppendChar(char c, int& index, char *&s, int& sSize) -{ - if(index >= sSize - 1) - { - char *tmp = s; - s = new char[sSize * 2]; - strcpy(s, tmp); - delete [] tmp; - sSize = sSize * 2; - } - s[index] = c; - index++; - s[index] = '\0'; -} - - -/////////////////// STEPread_reference() - -STEPentity * -STEPread_reference (const char * s, ErrorDescriptor *err, InstMgr * instances, - int addFileId) -{ - char errStr[BUFSIZ]; - errStr[0] = '\0'; - - int fileId = -1; - int numfound; - if( numfound = sscanf((char *)s, " #%d ", &fileId) ) - ; - else ( numfound = sscanf((char *)s, " @%d ", &fileId) ) - ; - if( (numfound != EOF) && (numfound > 0) ) - { - fileId = fileId + addFileId; - - if (!instances) - { - sprintf(errStr, "STEPread_reference(): %s - entity #%d %s.\n", - "BUG - cannot read reference without the InstMgr", fileId, - "is unknown to attribute"); - err->AppendToDetailMsg(errStr); - err->GreaterSeverity(SEVERITY_BUG); - return S_ENTITY_NULL; - } - - // lookup which object has id as its instance fileId - STEPentity* inst; - /* If there is a ManagerNode it should have a STEPentity */ - MgrNode* mn = 0; - mn = instances->FindFileId(fileId); - if (mn) - { - inst = mn->GetSTEPentity() ; - if (inst) { return (inst); } - else - { - sprintf(errStr, - "%s - entity #%d %s.\n", - "BUG - MgrNode::GetSTEPentity returned NULL pointer", - fileId, "is unknown to attribute"); - err->AppendToDetailMsg(errStr); - err->GreaterSeverity(SEVERITY_BUG); - return S_ENTITY_NULL; - } - } - else - { - sprintf(errStr,"Reference to non-existent ENTITY #%d.\n", fileId); - err->AppendToDetailMsg(errStr); - err->GreaterSeverity(SEVERITY_WARNING); - return S_ENTITY_NULL; - } - } - else - { - numfound = sscanf((char *)s, " %*s "); - if(numfound == EOF) - { - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - else - { - sprintf(errStr," Invalid entity identifier # %s.\n", s); - err->AppendToDetailMsg(errStr); - err->GreaterSeverity(SEVERITY_WARNING); - } - return S_ENTITY_NULL; - } -} - -#endif diff --git a/source/geometry/solids/STEP/src/STEPattributeList.cc b/source/geometry/solids/STEP/src/STEPattributeList.cc deleted file mode 100644 index d33e3f355f..0000000000 --- a/source/geometry/solids/STEP/src/STEPattributeList.cc +++ /dev/null @@ -1,96 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/STEPattributeList.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPattributeList.cc,v 1.3 2000/01/21 13:42:56 gcosmo Exp $ */ - -#include -#include - -//#include - -AttrListNode::AttrListNode(STEPattribute *a) -{ - attr = a; -} - -AttrListNode::~AttrListNode() -{ -} - - -STEPattributeList::STEPattributeList() -{ -} - -STEPattributeList::~STEPattributeList() -{ -} - -STEPattribute& STEPattributeList::operator [] (int n) -{ - int x = 0; - AttrListNode* a = (AttrListNode *)head; - int cnt = EntryCount(); - if (n < cnt) - while (a && (x < n)) - { - a = (AttrListNode *)(a->next); - x++; - } - // Fixed return value - GC - if (!a) - G4cerr << "\nERROR in STEP Core library: " << __FILE__ << ":" - << __LINE__ << "\n" << _POC_ << "\n\n"; - return *(a->attr); -} - -int STEPattributeList::list_length() -{ - return EntryCount(); -} - -void STEPattributeList::push(STEPattribute *a) -{ -#ifdef __OSTORE__ - AttrListNode *saln = new (os_database::of(this), - AttrListNode::get_os_typespec()) AttrListNode(a); -#else - AttrListNode *saln = new AttrListNode(a); -#endif - AppendNode (saln); -} - - - - - - - - - - -/* -STEPattributeListNode NilSTEPattributeListNode; - -class init_NilSTEPattributeListNode -{ -public: - inline init_NilSTEPattributeListNode() - { - NilSTEPattributeListNode.tl = &NilSTEPattributeListNode; - NilSTEPattributeListNode.ref = -1; - } -}; - -static init_NilSTEPattributeListNode NilSTEPattributeListNode_initializer; - -*/ diff --git a/source/geometry/solids/STEP/src/STEPattribute_inline.cc b/source/geometry/solids/STEP/src/STEPattribute_inline.cc deleted file mode 100644 index 7945b7a74c..0000000000 --- a/source/geometry/solids/STEP/src/STEPattribute_inline.cc +++ /dev/null @@ -1,145 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/STEPattribute.inline.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPattribute_inline.cc,v 1.3 2000/01/21 13:42:56 gcosmo Exp $ */ - -#include -#include -#include - -// This is needed so that STEPattribute's can be passed as -// references to inline functions - -STEPattribute::STEPattribute (const STEPattribute& a) -: aDesc (a.aDesc), _derive (0), _redefAttr (0) {} - -// INTEGER -STEPattribute::STEPattribute (const class AttrDescriptor& d, SCLP23(Integer) *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ ptr.i = p; } - -// BINARY -STEPattribute::STEPattribute (const class AttrDescriptor& d, SCLP23(Binary) *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ptr.b =p; } - -// STRING -STEPattribute::STEPattribute (const class AttrDescriptor& d, SCLP23(String) *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ptr.S =p; } - -// REAL & NUMBER -STEPattribute::STEPattribute (const class AttrDescriptor& d, SCLP23(Real) *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ ptr.r = p; } - -// REAL_PTR -/*STEPattribute::STEPattribute (const class AttrDescriptor& d, real **p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ ptr.rp = p; } -*/ -// ENTITY -STEPattribute::STEPattribute (const class AttrDescriptor& d, - SCLP23(Application_instance)* *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ ptr.c = p; } - -// AGGREGATE -STEPattribute::STEPattribute (const class AttrDescriptor& d, STEPaggregate *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ ptr.a = p; } - -// ENUMERATION and Logical -STEPattribute::STEPattribute (const class AttrDescriptor& d, SCLP23(Enum) *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ ptr.e = p; } - -// SELECT -STEPattribute::STEPattribute (const class AttrDescriptor& d, - class SCLP23(Select) *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ ptr.sh = p; } - -// UNDEFINED -STEPattribute::STEPattribute (const class AttrDescriptor& d, SCLundefined *p) -: aDesc (&d), _derive (0), _redefAttr (0) -{ ptr.u = p; } - - -// name is the same even if redefined -const char * -STEPattribute::Name() const -{ - return aDesc->Name(); -} - -const char * -STEPattribute::TypeName() const -{ - if ( _redefAttr ) { - return _redefAttr->TypeName(); - } - return aDesc->TypeName(); -} - -const BASE_TYPE -STEPattribute::Type() const -{ - if ( _redefAttr ) { - return _redefAttr->Type(); - } - return aDesc->Type(); -} - -const BASE_TYPE -STEPattribute::NonRefType() const -{ - if ( _redefAttr ) { - return _redefAttr->NonRefType(); - } - return aDesc->NonRefType(); -} - -const BASE_TYPE -STEPattribute::BaseType() const -{ - if ( _redefAttr ) { - return _redefAttr->BaseType(); - } - return aDesc->BaseType(); -} - -/* -const EntityDescriptor * -STEPattribute::ReferentEntity() const -{ - return aDesc->ReferentEntity(); -} -*/ - -const TypeDescriptor * -STEPattribute::ReferentType() const -{ - if ( _redefAttr ) { - return _redefAttr->ReferentType(); - } - return aDesc->ReferentType(); -} - -int -STEPattribute::Nullable() const -{ - if ( _redefAttr ) { - return _redefAttr->Nullable(); - } - return ( aDesc->Optionality().asInt() == SCLLOG(LTrue) ); -} diff --git a/source/geometry/solids/STEP/src/STEPcomplex.cc b/source/geometry/solids/STEP/src/STEPcomplex.cc deleted file mode 100644 index aa1d068e27..0000000000 --- a/source/geometry/solids/STEP/src/STEPcomplex.cc +++ /dev/null @@ -1,800 +0,0 @@ - -#include - -#include -#include -#include - -extern const char * -ReadStdKeyword(std::istream& in, SCLstring &buf, int skipInitWS); - -#ifdef WIN32 - typedef SDAI::Application_instance StepApplicationInstanceType; -#endif - -STEPcomplex::STEPcomplex(Registry *registry, int fileid) -: SCLP23(Application_instance)(fileid, 1), sc(0), _registry(registry), visited(0) -{ - head = this; -/* - _complex = 1; - _registry = registry; - sc = 0; - visited = 0; -*/ -} - -STEPcomplex::STEPcomplex(Registry *registry, const SCLstring **names, - int fileid, const char *schnm) -: SCLP23(Application_instance)(fileid, 1), sc(0), _registry(registry), visited(0) -{ - char *nms[BUFSIZ]; -// SCLstring *name; - int j, k; - - head = this; - - // Create a char ** list of names and call Initialize to build all: - for ( j=0; names[j]; j++ ) { - nms[j] = new char[ (names[j])->Length() + 1 ]; - strcpy( nms[j], names[j]->chars() ); - } - nms[j] = NULL; - Initialize( (const char **)nms, schnm ); - for ( k=0; knext; - enDesc = _registry->FindEntity( *eptr, schnm ); - if ( enDesc ) { - if ( enDesc->Supertypes().EntryCount() > 1 ) { - eptr->multSuprs( TRUE ); - } - if ( StrCmpIns( *eptr, enDesc->Name() ) ) { - // If this entity was referred by another name rather than the - // original. May be the case if FindEntity() determined that - // eptr's name was a legal renaming of enDesc's. (Entities and - // types may be renamed with the USE/REF clause - see header - // comments.) If so, change eptr's name (since the complex - // support structs only deal with the original names) and have - // ents re-ort eptr properly in the list: - eptr->Name( StrToLower( enDesc->Name(), nm ) ); - outOfOrder = 1; - } - prev = eptr; - } else { - invalid = 1; - G4cerr << "ERROR: Invalid entity \"" << eptr->Name() - << "\" found in complex entity.\n"; - if ( !prev ) { - // if we need to delete the first node, - ents = eptr->next; - } else { - prev->next = eptr->next; - } - eptr->next = NULL; - // must set eptr->next to NULL or next line would del entire list - delete eptr; - } - eptr = enext; - } - - // If we changed the name of any of the entities, resort: - if ( outOfOrder ) { - ents->sort( &ents ); - // This fn may change the value of ents if the list should have a new - // first EndNode. - } - - // Set error message according to results of above: - if ( invalid ) { - if ( !ents ) { - // not a single legal name - _error.severity(SEVERITY_WARNING); - // SEV_WARNING - we have to skip this entity altogether, but will - // continue with the next entity. - _error.UserMsg( "No legal entity names found in instance" ); - return; - } - _error.severity(SEVERITY_INCOMPLETE); - _error.UserMsg( "Some illegal entity names found in instance" ); - // some illegal entity names, but some legal - } - - // Check if a complex entity can be formed from the resulting combination: - if ( !_registry->CompCol()->supports( ents ) ) { - _error.severity(SEVERITY_WARNING); - _error.UserMsg( - "Entity combination does not represent a legal complex entity" ); - G4cerr << "ERROR: Could not create instance of the following complex" - << " entity:" << G4endl; - eptr = ents; - while ( eptr ) { - G4cerr << *eptr << G4endl; - eptr = eptr->next; - } - G4cerr << G4endl; - return; - } - - // Finally, build what we can: - BuildAttrs( *ents ); - for ( eptr = ents->next; eptr; eptr = eptr->next ) { - AddEntityPart( *eptr ); - } - AssignDerives(); - delete ents; -} - -STEPcomplex::~STEPcomplex() -{ - if(sc) - delete sc; -} - -void -STEPcomplex::AssignDerives() -{ -// const char *nm; - STEPattribute * a = 0; - STEPcomplex *scomp1 = head; - STEPcomplex *scomp2; - - const AttrDescriptorList *attrList; - AttrDescLinkNode *attrPtr; - const AttrDescriptor *ad; - - // find out how many attrs there are -// int attrCount = attrList->EntryCount(); - - while(scomp1 && scomp1->eDesc) - { - a = 0; - attrList = &( scomp1->eDesc->ExplicitAttr() ); - attrPtr = (AttrDescLinkNode *)attrList->GetHead(); - - // assign nm to be derived attr - // while( more derived attr for entity part ) - while( attrPtr != 0 ) - { - ad = attrPtr->AttrDesc(); - if( ( ad->Derived() ) == SCLLOG(LTrue) ) - { - const char *nm = ad->Name(); - const char *attrNm = 0; - if(strrchr(nm,'.')) - { - attrNm = strrchr(nm,'.'); - attrNm++; - } - else - attrNm = nm; - scomp2 = head; - while(scomp2 && !a) - { - if(scomp1 != scomp2) - { -// scomp2->MakeDerived ( ad->Name() ); - scomp2->MakeDerived ( attrNm ); -// a = scomp2->GetSTEPattribute( ad->Name() ); - a = scomp2->GetSTEPattribute( attrNm ); - } - scomp2 = scomp2->sc; - } -// if (a) a ->Derive (); - } - // increment attr - attrPtr = (AttrDescLinkNode *)attrPtr->NextNode(); - } - scomp1 = scomp1->sc; - } -} - -// this function should only be called for the head entity -// in the list of entity parts. - -void -STEPcomplex::AddEntityPart(const char *name) -{ - STEPcomplex *scomplex; - - if(name) - { - scomplex = new STEPcomplex(_registry, STEPfile_id); - scomplex->BuildAttrs(name); - if(scomplex->eDesc) - { - scomplex->head = this; -// scomplex->STEPfile_id = STEPfile_id; - AppendEntity(scomplex); - } - else - { - G4cout << scomplex->_error.DetailMsg() << G4endl; - delete scomplex; - } - } -} - -STEPcomplex * -STEPcomplex::EntityPart(const char *name, const char *currSch) -{ - STEPcomplex *scomp = head; - SCLstring s1, s2; - while(scomp) - { - if(scomp->eDesc) - { - if ( scomp->eDesc->CurrName(name, currSch) ) - return scomp; - } - else - G4cout << "Bug in STEPcomplex::EntityPart(): entity part has " - << "no EntityDescriptor\n"; - scomp = scomp->sc; - } - return 0; -} - -int -STEPcomplex::EntityExists(const char *name, const char *currSch) -{ - return (EntityPart(name, currSch) ? 1 : 0); -} - -// Check if a given entity (by descriptor) is the same as this one. -// For a complex entity, we'll check the EntityDescriptor of each entity -// in the complex 'chain' -const EntityDescriptor * -STEPcomplex::IsA(const EntityDescriptor *ed) const -{ - const EntityDescriptor *return_ed = eDesc->IsA(ed); - - if (!return_ed && sc) - return sc->IsA(ed); - else - return return_ed; -} - -Severity -STEPcomplex::ValidLevel(ErrorDescriptor *error, InstMgr *im, - int clearError) -{ - G4cout << "STEPcomplex::ValidLevel() not implemented.\n"; - return SEVERITY_NULL; -} - -void -STEPcomplex::AppendEntity(STEPcomplex *stepc) -{ - if(sc) - sc->AppendEntity(stepc); - else - sc = stepc; -} - -// READ -Severity -STEPcomplex::STEPread(int id, int addFileId, class InstMgr * instance_set, - std::istream& in, const char *currSch, int useTechCor) -{ - char c; - SCLstring typeNm; - STEPcomplex *stepc = 0; - - ClearError(1); - STEPfile_id = id; - - stepc = head; - while(stepc) - { - stepc->visited = 0; - stepc = stepc->sc; - } - - in >> std::ws; - in.get(c); - if(c == '(') // opening paren for subsuperRecord - { - in >> std::ws; - c = in.peek(); - while(c != ')') - { - typeNm.set_null(); - in >> std::ws; - ReadStdKeyword(in, typeNm, 1); // read the type name - in >> std::ws; - c = in.peek(); - if(c != '(') - { - _error.AppendToDetailMsg( - "Missing open paren before entity attr values.\n"); - G4cout << "ERROR: missing open paren\n"; - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - STEPread_error(c,0,in); - return _error.severity(); - } - - stepc = EntityPart(typeNm.chars(), currSch); - if(stepc) -#ifndef WIN32 - stepc->SCLP23(Application_instance)::STEPread(id, addFileId, - instance_set, in, - currSch); -#else - stepc->StepApplicationInstanceType::STEPread(id, addFileId, - instance_set, in, - currSch); -#endif - else - { - G4cout << "ERROR: complex entity part \"" << typeNm.chars() - << "\" does not exist.\n"; - _error.AppendToDetailMsg( - "Complex entity part of instance does not exist.\n"); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - STEPread_error(c,0,in); - return _error.severity(); - } - in >> std::ws; - c = in.peek(); - } - if(c != ')') - G4cout << - "ERROR: missing ending paren for complex entity instance.\n"; - else - in.get(c); // read the closing paren - } - return _error.severity(); -} - -#ifdef buildwhileread -// READ -Severity -STEPcomplex::STEPread(int id, int addFileId, class InstMgr * instance_set, - std::istream& in, const char *currSch) -{ - ClearError(1); - STEPfile_id = id; - - STEPcomplex stepc = head; - while(stepc) - { - stepc->visited = 0; - stepc = stepc->sc; - } - - char c; - in >> std::ws; - in.get(c); - if(c == '(') - { - SCLstring s; - in >> std::ws; - in.get(c); - while( in && (c != '(') && !isspace(c) ) // get the entity name - { - s.Append(c); - in.get(c); - } - if(isspace(c)) - { - in >> std::ws; - in.get(c); - } -// STEPcomplex *EntityPart(const char *name); - - if(c != '(') - { - _error.AppendToDetailMsg( - "Missing open paren before entity attr values.\n"); - G4cout << "ERROR: missing open paren\n"; - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - STEPread_error(c,0,in); - return _error.severity(); - } - else // c == '(' - in.putback(c); - - G4cout << s.chars() << G4endl; - BuildAttrs( s.chars() ); - SCLP23(Application_instance)::STEPread(id, addFileId, instance_set, - in, currSch); - - in >> std::ws; - in.get(c); - while(c != ')') - { - s.set_null(); - while( in && (c != '(') && !isspace(c) ) // get the entity name - { - s.Append(c); - in.get(c); - } - if(isspace(c)) - { - in >> std::ws; - in.get(c); - } - if(c != '(') - { - _error.AppendToDetailMsg( - "Missing open paren before entity attr values.\n"); - G4cout << "ERROR: missing open paren\n"; - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - STEPread_error(c,0,in); - return _error.severity(); - } - else // c == '(' - in.putback(c); - - G4cout << s.chars() << G4endl; // diagnostics DAS - - STEPcomplex *stepc = new STEPcomplex( _registry ); - AppendEntity(stepc); - stepc->BuildAttrs( s.chars() ); - stepc->SCLP23(Application_instance)::STEPread(id, addFileId, - instance_set, in, - currSch); - in >> std::ws; - in.get(c); - } - } - return _error.severity(); -} - -#endif - -void -STEPcomplex::BuildAttrs(const char *s ) -{ - // assign inherited member variable - eDesc = (class EntityDescriptor *)_registry->FindEntity(s); - - if(eDesc) - { - const AttrDescriptorList *attrList; - attrList = &( eDesc->ExplicitAttr() ); - - ////////////////////////////////////////////// - // find out how many attrs there are - ////////////////////////////////////////////// -// int attrCount = attrList->EntryCount(); - - STEPattribute * a = 0; - - AttrDescLinkNode *attrPtr = (AttrDescLinkNode *)attrList->GetHead(); - while( attrPtr != 0) - { - const AttrDescriptor *ad = attrPtr->AttrDesc(); - - if( ( ad->Derived() ) != SCLLOG(LTrue) ) - { - - switch ( ad->NonRefType() ) - { - case INTEGER_TYPE: - a = new STEPattribute (*ad, new SCLP23(Integer)); - break; - - case STRING_TYPE: - a = new STEPattribute (*ad, new SCLP23(String)); - break; - - case BINARY_TYPE: - a = new STEPattribute (*ad, new SCLP23(Binary)); - break; - - case REAL_TYPE: - case NUMBER_TYPE: - a = new STEPattribute (*ad, new SCLP23(Real)); - break; - - case BOOLEAN_TYPE: - a = new STEPattribute (*ad, new SCLP23(BOOL)); - break; - - case LOGICAL_TYPE: - a = new STEPattribute (*ad, new SCLP23(LOGICAL)); - break; - - case ENTITY_TYPE: - a = new STEPattribute(*ad, - new (SCLP23(Application_instance)*)); - break; - - case ENUM_TYPE: - { - EnumTypeDescriptor * enumD = - (EnumTypeDescriptor *)ad->ReferentType(); -#ifdef __OSTORE__ - a = new STEPattribute (*ad, enumD->CreateEnum(os_database::of(this)) ); -#else - a = new STEPattribute (*ad, enumD->CreateEnum() ); -#endif - break; - } - case SELECT_TYPE: - { - SelectTypeDescriptor * selectD = - (SelectTypeDescriptor *)ad->ReferentType(); -#ifdef __OSTORE__ - a = new STEPattribute (*ad, selectD->CreateSelect(os_database::of(this)) ); -#else - a = new STEPattribute (*ad, selectD->CreateSelect() ); -#endif - break; - } - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - { - AggrTypeDescriptor * aggrD = - (AggrTypeDescriptor *)ad->ReferentType(); -#ifdef __OSTORE__ - a = new STEPattribute (*ad, aggrD->CreateAggregate(os_database::of(this)) ); -#else - a = new STEPattribute (*ad, aggrD->CreateAggregate() ); -#endif - break; - } - default: // Added default field - GC - break; - } - - a -> set_null (); - attributes.push (a); - } - -/* // for when inverse information is included - else if( (LOGICAL)( ad->Inverse() ) == sdaiTRUE) - { - str.Append('('); - endchar = ')'; - } -*/ - attrPtr = (AttrDescLinkNode *)attrPtr->NextNode(); - } - } - else - { - _error.AppendToDetailMsg("Entity does not exist.\n"); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - } -} - -void -STEPcomplex::STEPread_error(char c, int index, std::istream& in) -{ - G4cout << "STEPcomplex::STEPread_error() \n"; -} - -// WRITE - -// These functions take into account the current schema, so that if an entity -// or attribute type is renamed in this schema (using the USE/REF clause) the -// new name is written out. They do not, however, comply with the requirement -// in the standard that the entity parts of a complex entity must be printed in -// alphabetical order. The nodes are sorted alphabetically according to their -// original names but not according to their renamed names (DAR 6/5/97). - -void -STEPcomplex::STEPwrite(std::ostream& out, const char *currSch, int writeComment) -{ - if(writeComment && p21Comment && !p21Comment->is_null() ) - out << p21Comment->chars(); - out << "#" << STEPfile_id << "=("; - WriteExtMapEntities(out, currSch); - out << ");\n"; -} - -const char * -STEPcomplex::STEPwrite(SCLstring &buf, const char *currSch) -{ - buf.set_null(); - - buf.Append('#'); - buf.Append(STEPfile_id); - buf.Append('='); - buf.Append('('); -/* - char instanceInfo[BUFSIZ]; - sprintf(instanceInfo, "#%d=", STEPfile_id ); -*/ -/* - std::strstream ss; - ss << "#" << STEPfile_id << "=("; - WriteExtMapEntities(ss, currSch); - ss << ");"; - ss << std::ends; - - char *tmpstr = ss.str(); - buf.Append(tmpstr); - delete tmpstr; -*/ - WriteExtMapEntities(buf, currSch); - buf.Append(");"); - - return buf.chars(); -} - -void -STEPcomplex::WriteExtMapEntities(std::ostream& out, const char *currSch) -{ - SCLstring tmp; - out << StrToUpper (EntityName( currSch ), tmp); - out << "("; - int n = attributes.list_length(); - - for (int i = 0 ; i < n; i++) { - (attributes[i]).STEPwrite(out, currSch); - if (i < n-1) out << ","; - } - out << ")"; - if(sc) - { - sc->WriteExtMapEntities(out, currSch); - } -} - -const char * -STEPcomplex::WriteExtMapEntities(SCLstring &buf, const char *currSch) -{ -// char instanceInfo[BUFSIZ]; - - SCLstring tmp; -// sprintf(instanceInfo, "%s(", (char *)StrToUpper( EntityName(), tmp ) ); -// buf.Append(instanceInfo); - - buf.Append( (char *)StrToUpper(EntityName( currSch ),tmp) ); - buf.Append( '(' ); - - int n = attributes.list_length(); - - for (int i = 0 ; i < n; i++) { - attributes[i].asStr(tmp, currSch) ; - buf.Append (tmp); - if (i < n-1) { - buf.Append( ',' ); - } - } - buf.Append( ")" ); - - if(sc) - { - sc->WriteExtMapEntities(buf, currSch); - } - - return buf.chars(); -} - -void -STEPcomplex::CopyAs (SCLP23(Application_instance) *se) -{ - if( !se->IsComplex() ) - { - char errStr[BUFSIZ]; - G4cerr << "STEPcomplex::CopyAs() called with non-complex entity: " - << __FILE__ << __LINE__ << "\n" << _POC_ "\n"; - sprintf(errStr, - "STEPcomplex::CopyAs(): %s - entity #%d.\n", - "Programming ERROR - called with non-complex entity", - STEPfile_id); - _error.AppendToDetailMsg(errStr); - _error.AppendToUserMsg(errStr); - _error.GreaterSeverity(SEVERITY_BUG); - return; - } - else - { -// STEPcomplex * sc = 0; - - STEPcomplex * scpartCpyTo = head; - STEPcomplex * scpartCpyFrom = ((STEPcomplex *)se)->head; - while(scpartCpyTo && scpartCpyFrom) - { -#ifndef WIN32 - scpartCpyTo->SCLP23(Application_instance)::CopyAs (scpartCpyFrom); -#else - scpartCpyTo->StepApplicationInstanceType::CopyAs (scpartCpyFrom); -#endif - scpartCpyTo = scpartCpyTo->sc; - scpartCpyFrom = scpartCpyFrom->sc; - } - } -// G4cout << "ERROR: STEPcomplex::CopyAs() not implemented.\n"; -} - -SCLP23(Application_instance) * -STEPcomplex::Replicate() -{ - if(!IsComplex()) - { -#ifndef WIN32 - return SCLP23(Application_instance)::Replicate(); -#else - return StepApplicationInstanceType::Replicate(); -#endif - } - else if (!_registry) { return S_ENTITY_NULL; } - else - { - int nameCount = 64; - -// Don't use this syntax it makes the sun compiler think it is a cast. DAS -// SCLstring **nameList = new (SCLstring *)[nameCount]; - - SCLstring **nameList = new SCLstring *[nameCount]; - STEPcomplex *scomp = this->head; - int i = 0; - while( scomp && (i < 63) ) - { - nameList[i] = new SCLstring; - nameList[i]->Append( scomp->eDesc->Name() ); - i++; - scomp = scomp->sc; - } - nameList[i] = (SCLstring *)0; - if(i == 63) - { - char errStr[BUFSIZ]; - G4cerr << "STEPcomplex::Replicate() name buffer too small: " - << __FILE__ << __LINE__ << "\n" << _POC_ "\n"; - sprintf(errStr, - "STEPcomplex::Replicate(): %s - entity #%d.\n", - "Programming ERROR - name buffer too small", - STEPfile_id); - _error.AppendToDetailMsg(errStr); - _error.AppendToUserMsg(errStr); - _error.GreaterSeverity(SEVERITY_BUG); - } - - STEPcomplex *seNew = new STEPcomplex(_registry, - (const SCLstring **)nameList, - 1111); - seNew -> CopyAs (this); - return seNew; - -// need to: -// get registry -// create list of entity names -// send them to constructor for STEPcomplex -// implement STEPcomplex::CopyAs() -// call seNew->CopyAs() - } -} diff --git a/source/geometry/solids/STEP/src/STEPfile.cc b/source/geometry/solids/STEP/src/STEPfile.cc deleted file mode 100644 index 197947059d..0000000000 --- a/source/geometry/solids/STEP/src/STEPfile.cc +++ /dev/null @@ -1,3123 +0,0 @@ -#ifdef __OSTORE__ -int pr_obj_errors = 0; -#endif - -/* -* NIST STEP Core Class Library -* cleditor/STEPfile.cc -* February, 1994 -* Peter Carr -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPfile.cc,v 1.6 2003/06/06 17:07:32 gcosmo Exp $ */ - -/******************************************************************** - TODO LIST: - - ReadHeader doesn't merge the information from more than one instance - of the same entity type name. i.e. it doesn't merge info from multiple files - - ReadWorkingFile does not handle references to entities which - aren't in the working session file. for other *incomplete* instances, - it prints error messages to cerr which may not need to be printed. It - doesn't keep track of the incomplete instances, it just puts them on the - list according to the symbol which precedes them in the working session - file -**********************************************************************/ -#include -#include -#include -#include -#include - -// STEPundefined contains -// void PushPastString (std::istream& in, SCLstring &s, ErrorDescriptor *err) -#include - -/*************************** -function: SetFileName -returns: (const char*) The new file name for the class. -parameters: (const char*) The file name to be set. -description: - This function sets the (char*)_fileName member variable to an - absolute path name to a directory on the file system. If newName - cannot be resolved to a file, then an empty char* is returned. -side effects: STEPfile::_fileName value may change. -***************************/ -const char * -STEPfile::SetFileName (const char* newName) -{ - char tmp[MAXPATHLEN+1]; - const char* path = tmp; - - // if a newName is not given or is the same as the old, use the old name - if ((!newName) || (!strcmp (newName, "")) || (newName == _fileName) ) - return FileName (); - - path = _currentDir->Normalize(newName); - if (!_currentDir->LoadDirectory(path)) - { - _error.AppendToUserMsg("Cannot Load Directory.\n"); - return (char*)0; - } - - delete [] _fileName; - _fileName = new char[strlen(newName)+1]; - if (!_fileName) { - _error.AppendToUserMsg("free store exhausted.\n"); - return (char*)0; - } - strcpy(_fileName, newName); - return _fileName; -} - -/*************************** -function: ReadHeader -returns: Severity -parameters: (std::istream&) The input stream from which the file is read. -description: - This function reads in the header section of an exchange file. It - can read it in either version (N279) or (Part 21, July 1992). It - parses the header section, popluates the _headerInstances, and - returns an error descriptor. - It expects to find the "HEADER;" symbol at the beginning of the - std::istream. -side effects: The function gobbles all characters up to and including the - next "ENDSEC;" from in. - The STEPfile::_headerInstances may change. -***************************/ - -Severity -STEPfile::ReadHeader (std::istream& in) -{ - SCLstring cmtStr; - - InstMgr *im = new InstMgr; - SCLP23(Application_instance)* obj; - Severity objsev = SEVERITY_NULL; - - int endsec = 0; - int userDefined = 0; - int fileid; - SCLstring keywd; - char c = '\0'; - char buf [BUFSIZ]; - - SCLstring strbuf; - - ReadTokenSeparator(in); - - // Read and gobble all 'junk' up to "HEADER;" - if (!FindHeaderSection(in)) - { delete im; return SEVERITY_INPUT_ERROR; } - - //read the header instances - while (!endsec) - { - ReadTokenSeparator(in, &cmtStr); - if (in.eof()) - { - _error.AppendToDetailMsg("End of file reached in reading header section.\n"); - _error.GreaterSeverity(SEVERITY_EXIT); - delete im; - return SEVERITY_EXIT; - } - - //check for user defined instances - //if it is userDefined, the '!' does not get put back on the std::istream - in.get(c); - if (c == '!') { userDefined = 1; } - else { in.putback(c); } - - //get the entity keyword - keywd = GetKeyword(in,";( /\\", _error); - ReadTokenSeparator(in, &cmtStr); - - //check for "ENDSEC" - if (!strncmp(keywd,"ENDSEC",7)) - { - //get the token delimiter - in.get(c); //should be ';' - endsec = 1; break; //from while-loop - } - else - { //create and read the header instance - // SCLP23(Application_instance)::STEPread now reads the opening parenthesis - - //create header instance - buf[0]= '\0'; - if (_fileType == VERSION_OLD) { - strcpy(buf,"N279_"); - strncat(buf,keywd, BUFSIZ-7); - } - else { strncpy (buf, keywd, BUFSIZ); } - - if (userDefined) - { - //create user defined header instance - // BUG: user defined entities are ignored - //obj = _headerUserDefined->ObjCreate (buf); - //objsev = AppendEntityErrorMsg( &(obj->Error()) ); - - SkipInstance(in, strbuf); - G4cerr << "User defined entity in header section " << - "is ignored.\n\tdata lost: !" << buf << strbuf << "\n"; - _error.GreaterSeverity(SEVERITY_WARNING); - break; //from while loop - } - else //not userDefined - { -/* -#ifdef __OSTORE__ - obj = _headerRegistry->ObjCreate (buf, db); -#else - obj = _headerRegistry->ObjCreate (buf); -#endif -*/ - obj = _headerRegistry->ObjCreate (buf); -#ifdef __O3DB__ - obj -> persist (); -#endif - } - - //read header instance - if (!obj || (obj == ENTITY_NULL) ) - { - ++_errorCount; - SkipInstance(in, strbuf); - G4cerr << "Unable to create header section entity: \'" << - keywd << "\'.\n\tdata lost: " << strbuf << "\n"; - _error.GreaterSeverity(SEVERITY_WARNING); - } - else //not ENTITY_NULL - //read the header instance - { - //check obj's Error Descriptor - objsev = AppendEntityErrorMsg( &(obj->Error()) ); - - //set file_id to reflect the appropriate Header Section Entity - switch (_fileType) - { - case VERSION_OLD: - fileid = HeaderIdOld(keywd); - break; - default: - fileid = HeaderId(keywd); - break; - } - - //read the values from the std::istream - objsev = obj->STEPread(fileid,0,(InstMgr*)0,in); - if( !cmtStr.is_null() ) - obj->AddP21Comment(cmtStr); - - in >> std::ws; - c = in.peek(); // check for semicolon or keyword 'ENDSEC' - if(c != 'E') - in >> c; // read the semicolon - - //check to see if object was successfully read - AppendEntityErrorMsg( &(obj->Error()) ); - //append to header instance manager - im->Append(obj, completeSE); - } - } - cmtStr.set_null(); - } - - if (_fileType == VERSION_OLD) { - InstMgr * tmp = HeaderConvertToNew(*im); - delete im; - im = tmp; - } - HeaderVerifyInstances(im); - HeaderMergeInstances(im); // handles delete for im - - return _error.severity(); -} - - -/*************************** -function: HeaderConvertToNew -returns: (InstMgr*) List of instances of header section entities - which semantically conform to the new version - of the exchange file format. -parameters: (InstMgr&) List of instances of header section entities - which semantically conform to the old version - of the exchange file format. -description: - This function converts the instances of the given InstMgr from the - old STEPfile format to the new file format. The InstMgr must - contain only instances of header section entities, and those entities - must be numbered in a specific way. - - OLD FORMAT (N279) - - #1=FILE_IDENTIFICATION - #2=FILE_DESCRIPTION - #3=IMP_LEVEL - #4=CLASSIFICATION - #5=MAXSIG - -side effects: This function allocates memory for an InstMgr using a - call to the new operator. - It also removes some instances from oldinst. -***************************/ -InstMgr* -STEPfile::HeaderConvertToNew(InstMgr& oldinst) -{ - InstMgr* imtmp = new InstMgr; - SCLP23(Application_instance)* oldse; - -// int count = 0; - -// FILE_NAME <== (N279)FILE_IDENTIFICATION - p21DIS_File_name * fn = 0; - oldse = oldinst.GetApplication_instance("N279_File_Identification"); - if (oldse == ENTITY_NULL) - { - G4cerr << "Warning: STEPfile::HeaderConvertToNew. Unable to get " << - "\'File_Identification\' from header instance manager.\n"; - fn = (p21DIS_File_name *) HeaderDefaultFileName(); - } - else - { - - s_N279_file_identification * fi; - fi = (s_N279_file_identification*) oldse; - - fn = new p21DIS_File_name; - - fn->name(fi->file_name()); //STRING <- STRING - fn->time_stamp(fi->date()); //STRING <- STRING - //fn->author(fi->author()); - //LIST OF STRING <- LIST OF STRING - (fn->author()).ShallowCopy(fi->author()); - //LIST OF STRING <- LIST OF STRING - (fn->organization()).ShallowCopy(fi->organization()); - fn->preprocessor_version(fi->preprocessor_version()); //STRING - fn->originating_system(fi->originating_system()); //STRING - fn->authorisation(""); //STRING - fn->STEPfile_id = HeaderId("File_Name"); - - oldinst.Delete(fi); - } - - imtmp->Append(fn, completeSE); - -// FILE_DESCRIPTION <== (N279)FILE_DESCRIPTION & (N279)IMP_LEVEL - p21DIS_File_description * fd = new p21DIS_File_description; - // Get the (N279) File_Description Instance - oldse = oldinst.GetApplication_instance("N279_File_Description"); - s_N279_file_description * ofd = (s_N279_file_description*)oldse; - if (oldse != ENTITY_NULL) - { -// DAVE, is there a new way TODO this? - // copy a SCLP23(String) value into a StringAggregate - const char* tmpstr = ofd->description(); - int l = strlen(tmpstr) + 2; - char *str = new char[l]; - str[0]='\''; str[1]='\0'; - strncat(str,tmpstr,l); - strncat(str,"\'",l); - StringNode * sn = new StringNode(str); - fd->description().AddNode(sn); - oldinst.Delete(ofd); - delete [] str; - } - else - { - StringNode * sn = new StringNode(""); - fd->description().AddNode(sn); - } - - // Get the (N279) Imp_Level Instance - oldse = oldinst.GetApplication_instance("N279_Imp_Level"); - s_N279_imp_level * il = (s_N279_imp_level*)oldse; - if (oldse != ENTITY_NULL) - { - fd->implementation_level(il->implementation_level()); - oldinst.Delete(il); - } - else - { - fd->implementation_level(""); - } - fd->STEPfile_id = HeaderId("File_Description"); - imtmp->Append(fd, completeSE); - -// FILE_SCHEMA <== default values - // There is no entity for the file_schema in the old version - // Therefore, the schema_identifiers list is left empty - imtmp->Append(HeaderDefaultFileSchema(), completeSE); - - -//append any extra instances from oldinst onto imtmp - for (int n = oldinst.InstanceCount() - 1; n>=0; --n) - { -/* imtmp->Append(oldinst.GetApplication_instance(oldinst[n]),completeSE);*/ - imtmp->Append(oldinst.GetApplication_instance (oldinst.GetMgrNode (n)),completeSE); - } - - return imtmp; -} - - -/*************************** -Verify the instances read from the header section of an exchange file. -If some required instances aren't present, then create them, -and populate them with default values. -The required instances are: - #1 = FILE_DESCRIPTION - #2 = FILE_NAME - #3 = FILE_SCHEMA -***************************/ -Severity -STEPfile::HeaderVerifyInstances(InstMgr* im) -{ - int err = 0; - int fileid; - SCLP23(Application_instance)* obj; - - //check File_Name - fileid = HeaderId("File_Name"); - if (!(im->FindFileId(fileid))) - { - ++err; - G4cerr << "FILE_NAME instance not found in header section\n"; - // create a File_Name entity and assign default values - obj = HeaderDefaultFileName(); - im->Append(obj,completeSE); - } - - //check File_Description - fileid = HeaderId("File_Description"); - if (!(im->FindFileId(fileid))) - { - ++err; - G4cerr << "FILE_DESCRIPTION instance not found in header section\n"; - // create a File_Description entity and assign default values - obj = HeaderDefaultFileDescription(); - im->Append(obj,completeSE); - } - - //check File_Schema - fileid = HeaderId("File_Schema"); - if (!(im->FindFileId(fileid))) - { - ++err; - G4cerr << "FILE_SCHEMA instance not found in header section\n"; - // create a File_Schema entity and read in default values - obj = HeaderDefaultFileSchema(); - im->Append(obj,completeSE); - } - - if (!err) return SEVERITY_NULL; - _error.AppendToUserMsg("Missing required entity in header section.\n"); - _error.GreaterSeverity(SEVERITY_WARNING); - return SEVERITY_WARNING; -} - -SCLP23(Application_instance)* -STEPfile::HeaderDefaultFileName() -{ - p21DIS_File_name * fn = new p21DIS_File_name; - - fn->name(""); - fn->time_stamp(""); - fn->author().StrToVal("", &_error, - fn->attributes[2]. - aDesc -> DomainType (), - _headerInstances); - fn->organization().StrToVal("", &_error, - fn->attributes[3]. - aDesc -> DomainType (), - _headerInstances); - fn->preprocessor_version(""); - fn->originating_system(""); - fn->authorisation(""); - - fn->STEPfile_id = HeaderId ("File_Name"); - - return fn; -} - -SCLP23(Application_instance)* -STEPfile::HeaderDefaultFileDescription() -{ - p21DIS_File_description * fd = new p21DIS_File_description; - - fd->implementation_level(""); - - fd->STEPfile_id = HeaderId ("File_Description"); - - return fd; -} - -SCLP23(Application_instance)* -STEPfile::HeaderDefaultFileSchema() -{ - p21DIS_File_schema * fs = new p21DIS_File_schema; - - fs->schema_identifiers().StrToVal("", &_error, - fs->attributes[0]. - aDesc -> DomainType (), - _headerInstances); - - fs->STEPfile_id = HeaderId ("File_Schema"); - - return fs; -} - - - -/*************************** -This function has an effect when more than one file -is being read into a working session. - -This function manages space allocation for the Instance -Manager for the header instances. If the instances in im are -copied onto the instances of _headerInstances, then im is -deleted. Otherwise no space is deleted. - -Append the values of the given instance manager onto the _headerInstances. -If the _headerInstances contain no instances, then copy the instances -from im onto the _headerInstances. -This only works for an instance manager which contains the following -header section entites. The file id numbers are important. - - #1 = FILE_DESCRIPTION - #2 = FILE_NAME - #3 = FILE_SCHEMA -***************************/ -void -STEPfile::HeaderMergeInstances(InstMgr* im) -{ - SCLP23(Application_instance)* se = 0; - SCLP23(Application_instance)* from = 0; -// SCLP23(Application_instance)* to = 0; - - int idnum; - - //check for _headerInstances - if (!_headerInstances) { - _headerInstances = im; - return; - } - - if (_headerInstances->InstanceCount() < 4) - { - delete _headerInstances; - _headerInstances = im; - return; - } - - //checking for _headerInstances::FILE_NAME - idnum = HeaderId("File_Name"); - if(se = _headerInstances->GetApplication_instance(_headerInstances->FindFileId(idnum))) - { - from = im->GetApplication_instance(im->FindFileId(idnum)); - - // name: - // time_stamp: keep the newer time_stamp - // author: append the list of authors - // organization: append the organization list - // preprocessor_version: - // originating_system: - // authorization: - } - else // No current File_Name instance - { - from = im->GetApplication_instance(im->FindFileId(idnum)); - _headerInstances->Append(from,completeSE); - } - - //checking for _headerInstances::FILE_DESCRIPTION - idnum = HeaderId("File_Description"); - if(se = _headerInstances->GetApplication_instance(_headerInstances->FindFileId(idnum))) - { - from = im->GetApplication_instance(im->FindFileId(idnum)); - - //description - //implementation_level - } - else - { - from = im->GetApplication_instance(im->FindFileId(idnum)); - _headerInstances->Append(from,completeSE); - } - - //checking for _headerInstances::FILE_SCHEMA - idnum = HeaderId("File_Schema"); - if(se = _headerInstances->GetApplication_instance(_headerInstances->FindFileId(idnum))) - { - from = im->GetApplication_instance(im->FindFileId(idnum)); - - //description - //implementation_level - } - else - { - from = im->GetApplication_instance(im->FindFileId(idnum)); - _headerInstances->Append(from,completeSE); - } - - delete im; - return; -} - - -stateEnum -STEPfile::EntityWfState(char c) -{ - switch (c) - { - case wsSaveComplete: - return completeSE; -// break; - - case wsSaveIncomplete: - return incompleteSE; -// break; - - case wsDelete: - return deleteSE; -// break; - - case wsNew: - return newSE; -// break; - - default: - return noStateSE; - } -} - -/*************************** -***************************/ - // PASS 1: create instances - // starts at the data section - -int -STEPfile::ReadData1(std::istream& in) -{ - int endsec = 0; - _entsNotCreated = 0; - - _errorCount = 0; // reset error count - _warningCount = 0; // reset error count - - char c; - int instance_count =0; - char buf[BUFSIZ]; - buf[0] = '\0'; - SCLstring tmpbuf; - - SCLP23(Application_instance) * obj = ENTITY_NULL; - stateEnum inst_state; // used if reading working file - - ErrorDescriptor e; - - // PASS 1: create instances - endsec = FoundEndSecKywd(in, _error); - while (in.good () && !endsec) - { - e.ClearErrorMsg(); - ReadTokenSeparator(in); // also skips white space - in >> c; - - if(_fileType == WORKING_SESSION) - { - inst_state = noStateSE; - if(strchr("CIND", c)) // if there is a valid char - { - inst_state = EntityWfState(c); - ReadTokenSeparator(in); - in >> c; // read the ENTITY_NAME_DELIM - } - else - { - e.AppendToDetailMsg("Invalid editing state character: "); - e.AppendToDetailMsg(c); - e.AppendToDetailMsg("\nAssigning editing state to be INCOMPLETE\n"); - e.GreaterSeverity(SEVERITY_WARNING); - inst_state = incompleteSE; - } - } - - if(c != ENTITY_NAME_DELIM) - { - in.putback(c); - while( c != ENTITY_NAME_DELIM && in.good () && - !(endsec = FoundEndSecKywd(in, _error)) ) - { - tmpbuf.set_null(); - FindStartOfInstance(in,tmpbuf); - G4cout << "ERROR: trying to recover from invalid data. skipping: " - << tmpbuf.chars() << G4endl; - in >> c; - ReadTokenSeparator(in); - } - } - - if(!endsec) - { - obj = ENTITY_NULL; - if( (_fileType == WORKING_SESSION) && (inst_state == deleteSE)) - SkipInstance(in, tmpbuf); - else - obj = CreateInstance(in, G4cout); - - if(obj != ENTITY_NULL) - { - if( obj->Error().severity() < SEVERITY_WARNING ) - ++_errorCount; - else if( obj->Error().severity() < SEVERITY_NULL ) - ++_warningCount; - obj->Error().ClearErrorMsg(); - - if(_fileType == WORKING_SESSION) - instances().Append( obj, inst_state ); - else - instances().Append( obj, newSE ); - - ++instance_count; - } - else - { - ++_entsNotCreated; - //old - ++_errorCount; - } - - if (_entsNotCreated > _maxErrorCount) - { - _error.AppendToUserMsg("Warning: Too Many Errors in File. Read function aborted.\n"); - G4cerr << Error().UserMsg(); - G4cerr << Error().DetailMsg(); - Error().ClearErrorMsg(); - Error().severity(SEVERITY_EXIT); - return instance_count; - } - - endsec = FoundEndSecKywd(in, _error); - - } - } // end while loop - -#ifdef __OSTORE__ - if (pr_obj_errors > 4) - { - int x = 0; - G4cout << - "\nSTEPfile::ReadData1(std::istream& in) os_database ptrs in entities:" - << G4endl; - SCLP23(Application_instance) *STEPent = 0; - while (x < instance_count) - { - STEPent = instances().GetApplication_instance(x); - G4cout << "os_database::of(STEPent): " << os_database::of(STEPent) - << G4endl; - x++; - } - G4cout << G4endl << "***********" << G4endl; - } -#endif - - if(_entsNotCreated) - { - // new - sprintf(buf, - "STEPfile Reading File: Unable to create %d instances.\n\tIn first pass through DATA section. Check for invalid entity types.\n", - _entsNotCreated); - // old -/* - sprintf(buf, - "STEPfile Reading File: Unable to create %d instances.\n\tIn first pass through DATA section. Check for invalid entity types.\n", - _errorCount); -*/ - _error.AppendToUserMsg(buf); - _error.GreaterSeverity(SEVERITY_WARNING); - } - if (!in.good ()) - _error.AppendToUserMsg ("Error in input file.\n"); - - return instance_count; -} - -#if bzpoibujqoiwejsdlfj - -int -STEPfile::ReadData1(std::istream& in) -{ - int endsec = 0; - _entsNotCreated = 0; - - _errorCount = 0; // reset error count - _warningCount = 0; // reset error count - - char c; - int instance_count =0; - char buf[BUFSIZ]; - buf[0] = '\0'; - SCLstring tmpbuf; - - SCLP23(Application_instance) * obj; - stateEnum inst_state; // used if reading working file - - ReadTokenSeparator(in); // also skips white space - c = in.peek(); -/// in >> c; - - if(_fileType == WORKING_SESSION) - { - if(strchr("CIND", c)) // if there is a valid editing state char - { - in >> c; // read the editing state char from the stream - inst_state = EntityWfState(c); - } - else - { - G4cout << "Invalid editing state character: " << c << G4endl; - G4cout << "Assigning editing state to be INCOMPLETE\n"; - inst_state = incompleteSE; - } - ReadTokenSeparator(in); - c = in.peek(); // read the ENTITY_NAME_DELIM - // else the character should be ENTITY_NAME_DELIM - } - while (c != ENTITY_NAME_DELIM && in.good ()) - { - tmpbuf.set_null(); - SkipInstance(in,tmpbuf); - G4cout << "ERROR: trying to recover from invalid data. skipping: " - << tmpbuf.chars() << G4endl; - ReadTokenSeparator(in); - } - - // PASS 1: create instances - while (c == ENTITY_NAME_DELIM && in.good () && !endsec) - { - if( (_fileType == WORKING_SESSION) && (inst_state == deleteSE)) - SkipInstance(in, tmpbuf); - else - obj = CreateInstance(in, G4cout); - - if(obj != ENTITY_NULL) - { - if( obj->Error().severity() < SEVERITY_WARNING ) - ++_errorCount; - else if( obj->Error().severity() < SEVERITY_NULL ) - ++_warningCount; - obj->Error().ClearErrorMsg(); - - if(_fileType == WORKING_SESSION) - instances().Append( obj, inst_state ); - else - instances().Append( obj, newSE ); - - ++instance_count; - } - else - { - ++_entsNotCreated; - //old - ++_errorCount; - } - - if (_entsNotCreated > _maxErrorCount) - { - _error.AppendToUserMsg("Warning: Too Many Errors in File. Read function aborted.\n"); - G4cerr << Error().UserMsg(); - G4cerr << Error().DetailMsg(); - Error().ClearErrorMsg(); - Error().severity(SEVERITY_EXIT); - return instance_count; - } - - ReadTokenSeparator(in); - in >> c; - - if(_fileType == WORKING_SESSION) - { - inst_state = noStateSE; - if(strchr("CIND", c)) // if there is a valid char - { - inst_state = EntityWfState(c); - ReadTokenSeparator(in); - in >> c; // read the ENTITY_NAME_DELIM - } - else if(c == 'E') - { - in.putback(c); - if(FoundEndSecKywd(in, _error)) - endsec = 1; - } - if( !endsec && (c != ENTITY_NAME_DELIM) ) - { - G4cout << "Invalid editing state character: " << c << G4endl; - G4cout << "Assigning editing state to be INCOMPLETE\n"; - ReadTokenSeparator(in); - in >> c; // read the ENTITY_NAME_DELIM - } - // else the character should be ENTITY_NAME_DELIM - } - - if(!endsec && (c != ENTITY_NAME_DELIM) ) - { - in.putback(c); - while( c != ENTITY_NAME_DELIM && in.good () && - !FoundEndSecKywd(in, _error) ) - { - tmpbuf.set_null(); - SkipInstance(in,tmpbuf); - G4cout << "ERROR: trying to recover from invalid data. skipping: " - << tmpbuf.chars() << G4endl; - ReadTokenSeparator(in); - } - if( c == ENTITY_NAME_DELIM ) - in >> c; - } - - } // end while loop - - if(_entsNotCreated) - { - // new - sprintf(buf, - "STEPfile Reading File: Unable to create %d instances.\n\tIn first pass through DATA section. Check for invalid entity types.\n", - _entsNotCreated); - // old -/* - sprintf(buf, - "STEPfile Reading File: Unable to create %d instances.\n\tIn first pass through DATA section. Check for invalid entity types.\n", - _errorCount); -*/ - _error.AppendToUserMsg(buf); - _error.GreaterSeverity(SEVERITY_WARNING); - } - if (!in.good ()) - _error.AppendToUserMsg ("Error in input file.\n"); - - return instance_count; -} -#endif - -int -STEPfile::ReadWorkingData1 (std::istream& in) -{ - return ReadData1(in); - -#ifdef junk - _errorCount = 0; // reset error count - _warningCount = 0; // reset error count - - char c; - int instance_count =0; - char errbuf[BUFSIZ]; - SCLstring tmpbuf; - - // PASS 1: create instances - SCLP23(Application_instance) * obj; - stateEnum inst_state; - - int endsec = 0; - while (!endsec) - { - //check for end of file - if (in.eof()) - { - _error.AppendToUserMsg( - "Error: in ReadWorkingData1. end of file reached.\n"); - return instance_count; - } - - //check error count - if (_errorCount > _maxErrorCount) - { - G4cerr << - "Warning: Too Many Errors in File. Read function aborted.\n"; - G4cerr << Error().UserMsg(); - G4cerr << Error().DetailMsg(); - Error().ClearErrorMsg(); - Error().severity(SEVERITY_EXIT); - return instance_count; - } - - inst_state = noStateSE; - ReadTokenSeparator(in); - in.get(c); - - inst_state = EntityWfState(c); - if( c == 'E') - { - // "ENDSEC;" expected - in.putback(c); - endsec = 1; - if (_errorCount) - { - sprintf(errbuf,"%d error(s) in second pass of DATA section.\n",_errorCount); - _error.AppendToUserMsg(errbuf); - } - return instance_count; - } - - in >> std::ws; - in >> c; - if( c != ENTITY_NAME_DELIM) - { - // error - } - -// fixing above here - switch (c) - { - case wsSaveComplete: - in >> c; - if (c == ENTITY_NAME_DELIM) - inst_state = completeSE; - break; - - case wsSaveIncomplete: - in >> c; - if (c == ENTITY_NAME_DELIM) - inst_state = incompleteSE; - break; - - case wsDelete: - in >> c; - if (c == ENTITY_NAME_DELIM) - inst_state = deleteSE; - break; - - case wsNew: - in >> c; - if (c == ENTITY_NAME_DELIM) - inst_state = newSE; - break; - - case 'E': - // "ENDSEC;" expected - in.putback(c); - endsec = 1; - if (_errorCount) - { - sprintf(errbuf,"%d error(s) in second pass of DATA section.\n",_errorCount); - _error.AppendToUserMsg(errbuf); - } - - return instance_count; - - default: - G4cerr << "Error: in ReadWorkingData1. Unexpected input. \'" << - c << "\'\n"; - endsec = 1; - return instance_count; - } - - switch (inst_state) - { - case noStateSE: - SkipInstance(in,tmpbuf); - G4cerr << "Error: in ReadWorkingData1.\n\tunexpected character was: " << c << "\n\tattempt to recover, data lost: " << tmpbuf << "\n"; - break; - - case deleteSE: - // things marked for deletion are deleted - SkipInstance(in,tmpbuf); - break; - - default: // everything else is created - obj = CreateInstance (in, G4cout); - if (obj != ENTITY_NULL) - { - if (obj->Error().severity() < SEVERITY_WARNING) - { ++_errorCount; } - else if (obj->Error().severity() < SEVERITY_NULL) - { ++_warningCount; } - instances ().Append(obj, inst_state); - ++instance_count; - } - else { ++_errorCount; } - - break; - } - } - - return instance_count; -#endif -} - -/****************************************************************** - ** Procedure: ReadData2 - ** Parameters: std::istream - ** Returns: number of valid instances read - ** Description: reads in the data portion of the instances - ** in an exchange file - ******************************************************************/ -int -STEPfile::ReadData2 (std::istream& in, int useTechCor) -{ - _entsInvalid = 0; - _entsIncomplete = 0; - _entsWarning = 0; - - int total_instances =0; - int valid_insts =0; // used for exchange file only - stateEnum inst_state; // used if reading working file - - _errorCount = 0; // reset error count - _warningCount = 0; // reset error count - - char c; - char buf[BUFSIZ]; - buf[0] = '\0'; - SCLstring tmpbuf; - - SCLP23(Application_instance) * obj = ENTITY_NULL; - SCLstring cmtStr; - -// ReadTokenSeparator(in, &cmtStr); - - int endsec = FoundEndSecKywd(in, _error); - - // PASS 2: read instances - while (in.good () && !endsec) - { - ReadTokenSeparator(in, &cmtStr); - in >> c; - - if(_fileType == WORKING_SESSION) - { - inst_state = noStateSE; - if(strchr("CIND", c)) // if there is a valid char - { - inst_state = EntityWfState(c); - ReadTokenSeparator( in, &cmtStr ); - in >> c; // read the ENTITY_NAME_DELIM - } -/* - // don't need this error msg for the 2nd pass (it was done on 1st) - else - { - G4cout << "Invalid editing state character: " << c << G4endl; - G4cout << "Assigning editing state to be INCOMPLETE\n"; - inst_state = incompleteSE; - } -*/ - } - - if(c != ENTITY_NAME_DELIM) - { - in.putback(c); - while( c != ENTITY_NAME_DELIM && in.good () && - !(endsec = FoundEndSecKywd(in, _error)) ) - { - - tmpbuf.set_null(); - FindStartOfInstance(in,tmpbuf); - G4cout << "ERROR: trying to recover from invalid data. skipping: " - << tmpbuf.chars() << G4endl; - in >> c; - ReadTokenSeparator( in, &cmtStr ); - } - } - - - if(!endsec) - { - obj = ENTITY_NULL; - if( (_fileType == WORKING_SESSION) && (inst_state == deleteSE)) - SkipInstance(in, tmpbuf); - else - obj = ReadInstance(in, G4cout, cmtStr, useTechCor); - - cmtStr.set_null(); - if(obj != ENTITY_NULL) - { - if( obj->Error().severity() < SEVERITY_INCOMPLETE ) - { - ++_entsInvalid; - // old - ++_errorCount; - } - else if( obj->Error().severity() == SEVERITY_INCOMPLETE ) - { - ++_entsIncomplete; - ++_entsInvalid; - } - else if( obj->Error().severity() == SEVERITY_USERMSG ) - ++_entsWarning; - else // i.e. if severity == SEVERITY_NULL - ++valid_insts; - - obj->Error().ClearErrorMsg(); - - ++total_instances; - } - else - { - ++_entsInvalid; - // old - ++_errorCount; - } - - if (_entsInvalid > _maxErrorCount) - { - _error.AppendToUserMsg("Warning: Too Many Errors in File. Read function aborted.\n"); - G4cerr << Error().UserMsg(); - G4cerr << Error().DetailMsg(); - Error().ClearErrorMsg(); - Error().severity(SEVERITY_EXIT); - return valid_insts; - } - - endsec = FoundEndSecKywd(in, _error); - } - } // end while loop - - if (_entsInvalid) - { - sprintf(buf, - "%s \n\tTotal instances: %d \n\tInvalid instances: %d \n\tIncomplete instances (includes invalid instances): %d \n\t%s: %d.\n", - "Second pass complete - instance summary:", total_instances, - _entsInvalid, _entsIncomplete, "Warnings", - _entsWarning); - G4cout << buf << G4endl; - _error.AppendToUserMsg(buf); - _error.AppendToDetailMsg(buf); - _error.GreaterSeverity(SEVERITY_WARNING); - } - if (!in.good ()) - _error.AppendToUserMsg ("Error in input file.\n"); - -// if( in.good() ) -// in.putback(c); - return valid_insts; -} - -#if xpqosdblkxfnvkbybbbbb -int -STEPfile::ReadData2 (std::istream& in) -{ - _entsInvalid = 0; - _entsIncomplete = 0; - _entsWarning = 0; - - int total_instances =0; - int valid_insts =0; // used for exchange file only - stateEnum inst_state; // used if reading working file - - _errorCount = 0; // reset error count - _warningCount = 0; // reset error count - - char c; - char buf[BUFSIZ]; - buf[0] = '\0'; - SCLstring tmpbuf; - - SCLP23(Application_instance) * obj; - SCLstring cmtStr; - - ReadTokenSeparator(in, &cmtStr); - in >> c; - - if(_fileType == WORKING_SESSION) - { - if(strchr("SIND", c)) // if there is a valid char - { - inst_state = EntityWfState(c); - ReadTokenSeparator( in, &cmtStr ); - in >> c; // read the ENTITY_NAME_DELIM - } - else if( c != ENTITY_NAME_DELIM ) - { - G4cout << "Invalid editing state character: " << c << G4endl; - G4cout << "Assigning editing state to be INCOMPLETE\n"; - ReadTokenSeparator( in, &cmtStr ); - in >> c; // read the ENTITY_NAME_DELIM - } - // else the character should be ENTITY_NAME_DELIM - } - - // PASS 2: read instances - while (c == ENTITY_NAME_DELIM && in.good ()) - { - if( (_fileType == WORKING_SESSION) && (inst_state == deleteSE)) - SkipInstance(in, tmpbuf); - else - obj = ReadInstance(in, G4cout, cmtStr); - - cmtStr.set_null(); - if(obj != ENTITY_NULL) - { - if( obj->Error().severity() < SEVERITY_INCOMPLETE ) - { - ++_entsInvalid; - // old - ++_errorCount; - } - else if( obj->Error().severity() == SEVERITY_INCOMPLETE ) - { - ++_entsIncomplete; - ++_entsInvalid; - } - else if( obj->Error().severity() == SEVERITY_USERMSG ) - ++_entsWarning; - else // i.e. if severity == SEVERITY_NULL - ++valid_insts; - - obj->Error().ClearErrorMsg(); - - ++total_instances; - } - else - { - ++_entsInvalid; - // old - ++_errorCount; - } - - if (_entsInvalid > _maxErrorCount) - { - _error.AppendToUserMsg("Warning: Too Many Errors in File. Read function aborted.\n"); - G4cerr << Error().UserMsg(); - G4cerr << Error().DetailMsg(); - Error().ClearErrorMsg(); - Error().severity(SEVERITY_EXIT); - return valid_insts; - } - - ReadTokenSeparator(in, &cmtStr); - in >> c; - - if(_fileType == WORKING_SESSION) - { - inst_state = noStateSE; - if(strchr("SIND", c)) // if there is a valid char - { - inst_state = EntityWfState(c); - ReadTokenSeparator( in, &cmtStr ); - in >> c; // read the ENTITY_NAME_DELIM - } - else if( c != ENTITY_NAME_DELIM ) - { - G4cout << "Invalid editing state character: " << c << G4endl; - G4cout << "Assigning editing state to be INCOMPLETE\n"; - ReadTokenSeparator( in, &cmtStr ); - in >> c; // read the ENTITY_NAME_DELIM - } - // else the character should be ENTITY_NAME_DELIM - } - while (c != ENTITY_NAME_DELIM && in.good ()) - { - tmpbuf.set_null(); - SkipInstance(in,tmpbuf); - G4cout << "ERROR: trying to recover from invalid data. skipping: " - << tmpbuf.chars() << G4endl; - ReadTokenSeparator(in); - } - - } // end while loop - - if (_entsInvalid) - { - sprintf(buf, - "STEPfile %s %d total instances, %d invalid, %d incomplete, %d %s.\n", - "Reading File 2nd pass instance summary:", total_instances, - _entsInvalid, _entsIncomplete, _entsWarning, - "issued warnings"); -// G4cout << buf << G4endl; - _error.AppendToUserMsg(buf); - _error.AppendToDetailMsg(buf); - _error.GreaterSeverity(SEVERITY_WARNING); - } - if (!in.good ()) - _error.AppendToUserMsg ("Error in input file.\n"); - -// if( in.good() ) -// in.putback(c); - return valid_insts; -} - -#endif -#ifdef junk -// old version 8/23/94 -int -STEPfile::ReadData2 (std::istream& in) -{ - _errorCount = 0; // reset error count - _warningCount = 0; // reset error count - - char c; - SCLstring tmpbuf; - - int valid_insts =0; // used for exchange file only - - SCLP23(Application_instance) * obj = ENTITY_NULL; - - ReadTokenSeparator(in); - - in >> c ; - - // PASS 2: read data - while (c == ENTITY_NAME_DELIM && in.good ()) - { - obj = ReadInstance (in, G4cout); - if (_errorCount > _maxErrorCount) - { - _error.AppendToUserMsg("Warning: Too Many Errors in File. Read function aborted.\n"); - G4cerr << Error().UserMsg(); - G4cerr << Error().DetailMsg(); - Error().ClearErrorMsg(); - Error().severity(SEVERITY_EXIT); - return valid_insts; - } - - if (obj == ENTITY_NULL) - ++_warningCount; // the object doesn\'t exist - else if (obj->Error().severity() != SEVERITY_NULL) - // there was a problem in the instance - ++_errorCount; - else // the instance is ok - ++valid_insts; - - ReadTokenSeparator(in); - in.get (c); - } - in.putback(c); - return valid_insts; -} -#endif - -int -STEPfile::ReadWorkingData2 (std::istream& in, int useTechCor) -{ - return ReadData2 (in, useTechCor); -#ifdef junk - _errorCount = 0; // reset error count - _warningCount = 0; // reset error count - - char c; - SCLstring tmpbuf; - int total_instances =0; - - SCLP23(Application_instance) * obj = ENTITY_NULL; - - // PASS 2: read data - int endsec = 0; - while (!endsec) - { - //check error count - if (_errorCount > _maxErrorCount) - { - G4cerr << - "Warning: Too Many Errors in File. Read function aborted.\n"; - G4cerr << Error().UserMsg(); - G4cerr << Error().DetailMsg(); - Error().ClearErrorMsg(); - Error().severity(SEVERITY_EXIT); - return total_instances; - } - - ReadTokenSeparator(in); - in.get(c); - - switch (c) - { - case wsSaveComplete: - case wsSaveIncomplete: - case wsNew: - ReadTokenSeparator(in); - //read in the '#' - in.get(c); - - obj = ReadInstance (in, G4cout); - if (obj != ENTITY_NULL) - { - if (obj->Error().severity() < SEVERITY_WARNING) - { ++_errorCount; } - else if (obj->Error().severity() < SEVERITY_NULL) - { ++_warningCount; } - ++total_instances; - } - else - { ++_errorCount; } - break; - - case wsDelete: - // things marked for deletion are deleted - SkipInstance(in,tmpbuf); - break; - - case 'E': - //should be "ENDSEC;" - endsec = 1; - in.putback(c); - return total_instances; - - default: - tmpbuf.Append ("Error: in ReadWorkingData2.\n\tUnexpected character in input: \'"); - tmpbuf.Append (c); - tmpbuf.Append ("\'.\n"); - _error.AppendToUserMsg(tmpbuf); - return total_instances; - } - } - return total_instances; -#endif -} - -/* Looks for the word DATA followed by optional whitespace - * followed by a semicolon. When it is looking for the word - * DATA it skips over strings and comments. - */ - -int -STEPfile::FindDataSection (std::istream& in) -{ - ErrorDescriptor errs; - SCLP23(String) tmp; - SCLstring s; // used if need to read a comment - char c; - - while( in.good() ) - { - in >> c; - if (in.eof()) - { - _error.AppendToUserMsg("Can't find \"DATA;\" section."); - return 0; //ERROR_WARNING - } - switch (c) - { - case 'D': // look for string "DATA;" with optional whitespace after "DATA" - c = in.peek(); // look at next char (for 'A') - // only peek since it may be 'D' again a we need to start over - if (c == 'A') - { - in.get(c); // read char 'A' - c = in.peek(); // look for 'T' - if (c == 'T') - { - in.get(c); // read 'T' - c = in.peek(); // look for 'A' - if (c == 'A') - { - in.get(c); // read 'A' - in >> std::ws; // may want to skip comments or print control directives? - c = in.peek(); // look for semicolon - if (c == ';') - { - in.get(c); // read the semicolon - return 1; // success - } - } - } - } - break; - - case '\'': // get past the string - in.putback (c); - tmp.STEPread (in, &errs); - break; - - case '/': // read p21 file comment - in.putback(c); // looks like a comment - ReadComment(in, s); - break; - - case '\0': // problem in input ? - return 0; - - default: - break; - } - } - return 0; -} - -int -STEPfile::FindHeaderSection (std::istream& in) -{ - char buf[BUFSIZ]; - char *b = buf; -// int rval =0; - - *b = '\0'; - - ReadTokenSeparator(in); - // find the header section - while ( !(b = strstr (buf, "HEADER"))) - { - if (in.eof()) - { - _error.AppendToUserMsg( - "Error: Unable to find HEADER section. File not read.\n"); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - return 0; - } - in.getline(buf, BUFSIZ, ';'); // reads but does not store the ; - } - return 1; -} -//dasdelete - -//dasdelete -/*************************** - description: - This function creates an instance based on the KEYWORD - read from the std::istream. - It expects an ENTITY_NAME (int) from the first set of - characters on the std::istream. If the (int) is not found, - ENTITY_NULL is returned. - - side effects: - The function leaves the std::istream set to the end of the stream - of characters representing the ENTITY_INSTANCE. It attempts to - recover on errors by reading up to and including the next ';'. - -an ENTITY_INSTANCE consists of: - '#'(int)'=' [SCOPE] SIMPLE_RECORD ';' || - '#'(int)'=' [SCOPE] SUBSUPER_RECORD ';' -The '#' is read from the std::istream before CreateInstance is called. -***************************/ -SCLP23(Application_instance) * -STEPfile::CreateInstance(std::istream& in, std::ostream &out) -{ - SCLstring tmpbuf; - SCLstring objnm; - - char c; - char schnm[BUFSIZ]; - schnm[0] = '\0'; - - int fileid = -1; - SCLP23(Application_instance_ptr) * scopelist =0; -// int n =0; - - SCLP23(Application_instance)* obj; - ErrorDescriptor result; - // Sent down to CreateSubSuperInstance() to receive error info - - ReadTokenSeparator(in); - - in >> fileid; // read instance id - fileid = IncrementFileId(fileid); - if(instances().FindFileId(fileid)) - { - SkipInstance(in, tmpbuf); - out << "ERROR: instance #" << fileid - << " already exists.\n\tData lost: " << tmpbuf << G4endl; - return ENTITY_NULL; - } - - ReadTokenSeparator(in); - in.get (c); // read equal sign - if (c != '=') - { - // ERROR: '=' expected - SkipInstance(in, tmpbuf); - out << "ERROR: instance #" << fileid - << " \'=\' expected.\n\tData lost: " << tmpbuf << G4endl; - return ENTITY_NULL; - } - - ReadTokenSeparator(in); - c = in.peek(); // peek at the next character on the std::istream - - //check for optional "&SCOPE" construct - if (c == '&') // TODO check this out - { - Severity s = CreateScopeInstances(in, &scopelist); - if (s < SEVERITY_WARNING) - { return ENTITY_NULL; } - ReadTokenSeparator(in); - c = in.peek(); // peek at next char on std::istream again - } - - //check for subtype/supertype record - //DAS todo - if (c == '(') - { // TODO: implement complex inheritance - - obj = CreateSubSuperInstance(in,fileid,result); - if (obj == ENTITY_NULL) - { - SkipInstance(in, tmpbuf); - out << "ERROR: instance #" << fileid - << " Illegal complex entity.\n" - << result.UserMsg() << ".\n\n"; - return ENTITY_NULL; - } - } - else // not a complex entity - { - // check for User Defined Entity - int userDefined = 0; - if (c == '!') - { - userDefined = 1; - in.get(c); - } - - ReadStdKeyword(in, objnm, 1); // read the type name - if(!in.good()) - { - out << "ERROR: instance #" << fileid - << " Unexpected file problem in " - << "STEPfile::CreateInstance.\n"; - } - - //create the instance using the Registry object - if (userDefined) - { - SkipInstance(in, tmpbuf); - out << "WARNING: instance #" << fileid - << " User Defined Entity in DATA section ignored.\n" - << "\tData lost: \'!" << objnm.chars() << "\': " << tmpbuf - << G4endl; - return ENTITY_NULL; - } - else - { - schemaName( schnm ); -#ifdef __OSTORE__ - if (pr_obj_errors > 3) - { - G4cout << "STEPfile::CreateInstance() db ptr: " << db << G4endl; - } - - obj = reg().ObjCreate(objnm.chars(), db, schnm); - - if (pr_obj_errors > 3) - { - G4cout << "os_database::of(obj) in STEPfile::CreateInstance(): " - << os_database::of(obj) << G4endl; - G4cout << "****" << G4endl; - } -#else - obj = reg().ObjCreate(objnm.chars(), schnm); -#endif - if ( obj == ENTITY_NULL ) { - // This will be the case if objnm does not exist in the reg. - result.UserMsg( "Unknown ENTITY type" ); - } else if ( obj->Error().severity() <= SEVERITY_WARNING ) { - // Common causes of error is that obj is an abstract supertype - // or that it can only be instantiated using external mapping. - // If neither are the case, create a generic message. - if ( *obj->Error().UserMsg() != '\0' ) { - result.UserMsg( obj->Error().UserMsg() ); - } else { - result.UserMsg( "Could not create ENTITY" ); - } - // Delete obj so that below we'll know that an error occur: - delete obj; - obj = ENTITY_NULL; - } -#ifdef __O3DB__ - if ( obj ) - obj -> persist(); -#endif - } - } - - if (obj == ENTITY_NULL) - { - SkipInstance(in, tmpbuf); - out << "ERROR: instance #" << fileid << " \'" << objnm.chars() - << "\': " << result.UserMsg() - << ".\n\tData lost: " << tmpbuf << "\n\n"; - return ENTITY_NULL; - } - obj -> STEPfile_id = fileid; -// AppendEntityErrorMsg( &(obj->Error()) ); - - // scan values - SkipInstance(in, tmpbuf); - - ReadTokenSeparator(in); - return obj; -} - - -/************************************************** - description: - This function reads the SCOPE list for an entity instance, - creates each instance on the scope list, and appending each - instance to the instance manager. - side-effects: - It first searches for "&SCOPE" and reads all characters - from the std::istream up to and including "ENDSCOPE" - returns: ErrorDescriptor - >= SEVERITY_WARNING: the std::istream was read up to and including the - "ENDSCOPE" and the export list /#1, ... #N/ - < SEVERITY_WARNING: the std::istream was read up to and including the next ";" - < SEVERITY_BUG: fatal -**************************************************/ -Severity -STEPfile::CreateScopeInstances(std::istream& in, SCLP23(Application_instance_ptr) ** scopelist) -{ - Severity rval = SEVERITY_NULL; - SCLP23(Application_instance) * se; - SCLstring tmpbuf; - char c; - int exportid; - SCLP23(Application_instance_ptr) inscope [BUFSIZ]; int i =0; - SCLstring keywd; - - keywd = GetKeyword(in," \n\t/\\#;", _error); - if (strncmp(keywd,"&SCOPE",6)) - { - //ERROR: "&SCOPE" expected - //TODO: should attempt to recover by reading through ENDSCOPE - //currently recovery is attempted by reading through next ";" - SkipInstance(in, tmpbuf); - G4cerr << "ERROR: " << "\'&SCOPE\' expected." << - "\n\tdata lost: " << tmpbuf << "\n"; - return SEVERITY_INPUT_ERROR; - } - - ReadTokenSeparator(in); - - in.get(c); - while (c == '#') - { - se = CreateInstance (in, G4cout); - if (se != ENTITY_NULL) - { - //TODO: apply scope information to se - // Add se to scopelist - if (i < BUFSIZ) { - inscope [i] = se; - ++i; - } - //append the se to the instance manager - instances ().Append (se,newSE); - } - else - { - //ERROR: instance in SCOPE not created - rval = SEVERITY_WARNING; - SkipInstance(in, tmpbuf); - G4cerr << "instance in SCOPE not created.\n\tdata lost: " - << tmpbuf << "\n"; - ++_errorCount; - } - - ReadTokenSeparator(in); - in.get(c); - } - in.putback(c); - *scopelist = new SCLP23(Application_instance_ptr) [i]; - while (i > 0) *scopelist [--i] = inscope [i]; - - //check for "ENDSCOPE" - keywd = GetKeyword(in," \t\n/\\#;", _error); - if (strncmp(keywd,"ENDSCOPE",8)) - { - //ERROR: "ENDSCOPE" expected - SkipInstance(in, tmpbuf); - G4cerr << "ERROR: " << "\'ENDSCOPE\' expected." - << "\n\tdata lost: " << tmpbuf << "\n"; - ++_errorCount; - return SEVERITY_INPUT_ERROR; - } - - //check for export list - ReadTokenSeparator(in); - in.get(c); - in.putback (c); - if (c == '/') - { - //read export list - in.get(c); - c = ','; - while (c == ',') - { - ReadTokenSeparator(in); - in.get(c); - if (c!='#') { } //ERROR - in >> exportid; - //TODO: nothing is done with the idnums on the export list - ReadTokenSeparator(in); - in.get(c); - } - if (c != '/') - { - //ERROR: '/' expected while reading export list - SkipInstance(in, tmpbuf); - G4cerr << "ERROR: \'/\' expected in export list.\n\tdata lost: " << tmpbuf << "\n"; - ++_errorCount; - rval = SEVERITY_INPUT_ERROR; - } - ReadTokenSeparator(in); - } - return rval; -} - -SCLP23(Application_instance) * -STEPfile::CreateSubSuperInstance(std::istream& in, int fileid, ErrorDescriptor &e) -{ - SCLstring tmpstr; - SCLP23(Application_instance) * obj = ENTITY_NULL; - - char c; - char schnm[BUFSIZ]; - schnm[0] = '\0'; - - SCLstring buf; // used to hold the simple record that is read - ErrorDescriptor err; // used to catch error msgs - - const int enaSize = 64; - SCLstring *entNmArr[enaSize]; // array of entity type names - int enaIndex = 0; - - in >> std::ws; - in.get(c); // read the open paren - c = in.peek(); // see if you have closed paren (ending the record) - while(in.good() && (c != ')') && (enaIndex < enaSize) ) - { - entNmArr[enaIndex] = new SCLstring; - ReadStdKeyword(in, *(entNmArr[enaIndex]), 1); // read the type name - if(entNmArr[enaIndex]->is_null()) - { - delete entNmArr[enaIndex]; - entNmArr[enaIndex] = 0; - } - else - { - SkipSimpleRecord(in, buf, &err); - buf.set_null(); - enaIndex++; - } - in >> std::ws; - c = in.peek(); // see if you have closed paren (ending the record) - // If someone separates the entities with commas (or some other - // garbage or a comment) this will keep the read function from - // infinite looping. If the entity name starts with a digit it is - // incorrect and will be invalid. - while( in.good() && (c != ')') && !isalpha(c) ) - { - in >> c; // skip the invalid char - c = in.peek(); // see if you have closed paren (ending the record) - } - } - entNmArr[enaIndex] = 0; - schemaName( schnm ); - -#ifdef __O3DB__ - obj = new STEPcomplex(_reg, (const SCLstring **)entNmArr, fileid, - schnm); -#else - obj = new STEPcomplex(&_reg, (const SCLstring **)entNmArr, fileid, - schnm); -#endif - -// SkipInstance(in, tmpstr); - - if ( obj->Error().severity() <= SEVERITY_WARNING ) { - // If obj is not legal, record its error info and delete it: - e.severity( obj->Error().severity() ); - e.UserMsg( obj->Error().UserMsg() ); - delete obj; - obj = ENTITY_NULL; - } - return obj; -} - -/************************************************** - description: - This function reads the SCOPE list for an entity instance, - and reads the values for each instance from the std::istream. - side-effects: - It first searches for "&SCOPE" and reads all characters - from the std::istream up to and including "ENDSCOPE" -**************************************************/ -Severity -STEPfile::ReadScopeInstances (std::istream& in) -{ - Severity rval = SEVERITY_NULL; - SCLP23(Application_instance) * se; - SCLstring tmpbuf; - char c; - int exportid; - SCLstring keywd; - SCLstring cmtStr; - - keywd = GetKeyword(in," \n\t/\\#;", _error); - if (strncmp(keywd,"&SCOPE",6)) - { - //ERROR: "&SCOPE" expected - SkipInstance(in, tmpbuf); - G4cerr << "\'&SCOPE\' expected.\n\tdata lost: " << tmpbuf << "\n"; - ++_errorCount; - return SEVERITY_WARNING; - } - - ReadTokenSeparator(in); - - in.get(c); - while (c == '#') - { - se = ReadInstance (in, G4cout, cmtStr); - if (se != ENTITY_NULL) - { - //apply scope information to se - //TODO: not yet implemented - } - else - { - //ERROR: unable to read instance in SCOPE - rval = SEVERITY_WARNING; - } - - ReadTokenSeparator(in); - in.get(c); - } - in.putback(c); - - //check for "ENDSCOPE" - keywd = GetKeyword(in," \t\n/\\#;", _error); - if (strncmp(keywd,"ENDSCOPE",8)) - { - //ERROR: "ENDSCOPE" expected - SkipInstance(in, tmpbuf); - G4cerr << " \'ENDSCOPE\' expected.\n\tdata lost: " << tmpbuf << "\n"; - ++_errorCount; - return SEVERITY_WARNING; - } - - //check for export list - ReadTokenSeparator(in); - in.get(c); - in.putback (c); - if (c == '/') - { - //read through export list - in.get(c); c = ','; - while (c == ',') - { - ReadTokenSeparator(in); - in.get(c); - in >> exportid; - ReadTokenSeparator(in); - in.get(c); - } - if (c != '/') - { - //ERROR: '/' expected while reading export list - SkipInstance(in, tmpbuf); - G4cerr << " \'/\' expected while reading export list.\n\tdata lost: " - << tmpbuf << "\n"; - ++_errorCount; - rval = SEVERITY_WARNING; - } - ReadTokenSeparator(in); - } - return rval; -} - - -/* -Severity -STEPfile::ReadSubSuperInstance (std::istream& in) -{ - SCLstring tmp; - SkipInstance(in, tmp); - return SEVERITY_NULL; -} -*/ - -#ifdef junk -void -ReadEntityError(char c, int i, std::istream& in) -{ - char errStr[BUFSIZ]; - errStr[0] = '\0'; - -/* sprintf(errStr, " for instance #%d : %s\n", STEPfile_id, EntityName());*/ -/* _error.AppendToDetailMsg(errStr);*/ - - if ( (i >= 0) && (i < attributes.list_length())) // i is an attribute - { - sprintf(errStr, " invalid data for type \'%s\'\n", - attributes[i].TypeName()); - _error.AppendToDetailMsg(errStr); - } - else - { - sprintf(errStr, " No more attributes were expected.\n"); - _error.AppendToDetailMsg(errStr); - } - - SCLstring tmp; - STEPwrite (tmp); // STEPwrite writes to a static buffer inside function - sprintf(errStr, - " The invalid instance to this point looks like :\n%s\n", - tmp.chars() ); - _error.AppendToDetailMsg(errStr); - - _error.AppendToDetailMsg(" data lost looking for end of entity:"); - - // scan over the rest of the instance and echo it -// G4cerr << " ERROR Trying to find the end of the ENTITY to recover...\n"; -// G4cerr << " skipping the following input:\n"; - - in.clear(); - int foundEnd = 0; - tmp = ""; - - // Search until a close paren is found followed by (skipping optional - // whitespace) a semicolon - while( in.good() && !foundEnd ) - { - while ( in.good() && (c != ')') ) - { - in.get(c); - tmp.Append(c); -// G4cerr << c; - } - if(in.good() && (c == ')') ) - { - in >> std::ws; // skip whitespace - in.get(c); - tmp.Append(c); -// G4cerr << c; -// G4cerr << "\n"; - if(c == ';') - { - foundEnd = 1; - } - } - } - _error.AppendToDetailMsg( tmp.chars() ); - sprintf (errStr, "\nfinished reading #%d\n", STEPfile_id); - _error.AppendToDetailMsg(errStr); - return; -} -#endif - -/***************************************************** - description: - This function populates a SCLP23(Application_instance) with the values read from - the std::istream. - - This function must keeps track of error messages encountered when - reading the SCLP23(Application_instance). It passes SCLP23(Application_instance) error information onto - the STEPfile ErrorDescriptor. -*****************************************************/ -SCLP23(Application_instance) * -STEPfile::ReadInstance(std::istream& in, std::ostream& out, SCLstring &cmtStr, - int useTechCor) -{ - Severity sev = SEVERITY_NULL; - - SCLstring tmpbuf; - char errbuf[BUFSIZ]; - errbuf[0] = '\0'; - char currSch[BUFSIZ]; - currSch[0] = '\0'; - SCLstring objnm; - - char c; - int fileid; -// int n =0; - SCLP23(Application_instance)* obj = ENTITY_NULL; - int idIncrNum = FileIdIncr(); - - ReadComment(in, cmtStr); - - in >> fileid; - fileid = IncrementFileId(fileid); - - // check to see that instance was created on PASS 1 - MgrNode * node = instances ().FindFileId(fileid); - if ((!node) || ((obj = node -> GetApplication_instance ()) == ENTITY_NULL)) - { - SkipInstance(in, tmpbuf); - // Changed the 2nd pass error message to report Part 21 User - // Defined Entities. STEPfile still includes them in the error count - // which is not valid. - // Check to see if an User Defined Entity has been found. - const char *ude = tmpbuf.chars(); - while ( *ude && (*ude != '=') ) ude++; - if(*ude == '=') ude++; - while (*ude && isspace(*ude)) ude++; - if(*ude == '!') - { - out << "\nWARNING: #" << fileid << - " - Ignoring User Defined Entity.\n\tData lost: " - << tmpbuf << G4endl; - } - else - out << "\nERROR: in 2nd pass, instance #" << fileid - << " not found.\n\tData lost: " << tmpbuf << G4endl; - return ENTITY_NULL; - } - else if ((_fileType != WORKING_SESSION) && (node->CurrState() != newSE)) - { - SkipInstance(in, tmpbuf); - out << "\nERROR: in 2nd pass, instance #" << fileid - << " already exists - ignoring duplicate.\n\tData lost: " - << tmpbuf << G4endl; - return ENTITY_NULL; - } - - ReadTokenSeparator(in, &cmtStr); - - in.get (c); - if (c != '=') - { - //ERROR: '=' expected - SkipInstance(in, tmpbuf); - out << "ERROR: instance #" << fileid - << " \'=\' expected.\n\tData lost: " << tmpbuf << G4endl; - return ENTITY_NULL; - } - - ReadTokenSeparator(in, &cmtStr); - - //peek at the next character on the std::istream - c = in.peek(); - - //check for optional "&SCOPE" construct - if (c == '&') - { - ReadScopeInstances(in); - ReadTokenSeparator(in, &cmtStr); - in.get(c); - in.putback(c); - } - - schemaName( currSch ); - - //check for subtype/supertype record - if (c == '(') - { - // TODO -// ReadSubSuperInstance(in); - sev = obj->STEPread (fileid, idIncrNum, &instances (), in, currSch, - useTechCor); - - ReadTokenSeparator(in, &cmtStr); - - if( !cmtStr.is_null() ) - obj->AddP21Comment(cmtStr); - - c = in.peek(); // check for semicolon or keyword 'ENDSEC' - if(c != 'E') - in >> c; // read the semicolon -// return ENTITY_NULL; - } - else - { - ReadTokenSeparator(in, &cmtStr); - c = in.peek(); - - // check for User Defined Entity - // DAS - I checked this out. It doesn't get into this code for user - // defined entities because a ude isn't created. - int userDefined = 0; - if (c == '!') { userDefined = 1; in.get(c); } - - ReadStdKeyword(in, objnm, 1); // read the type name - if(!in.good()) - { - out << "ERROR: instance #" << fileid - << " Unexpected file problem in " - << "STEPfile::CreateInstance.\n"; - } - ReadTokenSeparator(in, &cmtStr); - - // read values - if (userDefined) - { - SkipInstance(in, tmpbuf); - out << "WARNING: #" << fileid << - ". Ignoring User defined entity.\n\tdata lost: !" - << objnm.chars() << tmpbuf << "\n"; - ++_warningCount; - return ENTITY_NULL; - } - - // NOTE: this function is called for all FileTypes - // (WORKING_SESSION included) - - sev = obj->STEPread (fileid, idIncrNum, &instances (), in, currSch, - useTechCor); - - ReadTokenSeparator(in, &cmtStr); - - if( !cmtStr.is_null() ) - obj->AddP21Comment(cmtStr); - - c = in.peek(); // check for semicolon or keyword 'ENDSEC' - if(c != 'E') - in >> c; // read the semicolon - - AppendEntityErrorMsg( &(obj->Error()) ); - } - - //set the node's state, - //and set the STEPfile:_error (based on the type of file being read) - switch (sev) - { - case SEVERITY_NULL: - case SEVERITY_USERMSG: - if(_fileType != WORKING_SESSION) - node->ChangeState(completeSE); - break; - - case SEVERITY_WARNING: - case SEVERITY_INPUT_ERROR: - case SEVERITY_BUG: - - case SEVERITY_INCOMPLETE: - if( (_fileType == VERSION_CURRENT) || (_fileType == VERSION_OLD) ) - { - G4cerr << "ERROR in EXCHANGE FILE: incomplete instance #" - << obj -> STEPfile_id << ".\n"; - if(_fileType != WORKING_SESSION) - node->ChangeState(incompleteSE); - } - else - { - if (node->CurrState() == completeSE) - { - sprintf(errbuf,"WARNING in WORKING FILE: changing instance #%d state from completeSE to incompleteSE.\n",fileid); - _error.AppendToUserMsg(errbuf); - if(_fileType != WORKING_SESSION) - node->ChangeState(incompleteSE); - } - } - break; - - case SEVERITY_EXIT: - case SEVERITY_DUMP: - case SEVERITY_MAX: - if(_fileType != WORKING_SESSION) - node->ChangeState(noStateSE); - break; - - default: - break; - } - - // check ErrorDesc severity and set the state for MgrNode *node - // according to completeSE or incompleteSE - // watch how you set it based on whether you are reading an - // exchange or working file. - - return obj; - -} - - - -/****************************************************** -This function uses the C library function system to issue -a shell command which checks for the existence of the -file name and creates a backup file if the file exists. -The system command takes a string, which must be a valid -sh command. The command is: - if (test -f filename) then mv filename filename.bak; fi - -BUG: doesn't check to see if the backup command works. - the results of the system call are not used by the - by this function -******************************************************/ -void -STEPfile::MakeBackupFile() -{ -// static int i =1; - char backup_call [2*BUFSIZ]; - char backup_file [BUFSIZ]; - -// sprintf (backup_file, "%s.%d", FileName(), ++i); - sprintf (backup_file, "%s.bak", FileName()); - - sprintf (backup_call, - "if (test -f %s )" - " then mv %s %s ;", - FileName(), - FileName(), backup_file); - -// if (i > 4) -// sprintf (backup_call + strlen (backup_call), "rm %s.%d ; ", FileName (), i -2); - strcat (backup_call, "fi"); - - _error.AppendToDetailMsg ("Making backup file: "); - _error.AppendToDetailMsg (backup_file); - _error.AppendToDetailMsg("\n"); - system(backup_call); -/* - strcpy (backup_call, "if (test -f "); - strcat (backup_call, FileName()); - strcat (backup_call, ") then mv "); - strcat (backup_call, FileName()); - strcat (backup_call, " "); - strcat (backup_call, FileName()); - strcat (backup_call, ".bak ; fi ", ++i); - - _error.AppendToDetailMsg("Making backup file: executing system call:\n\t"); - _error.AppendToDetailMsg(backup_call); - _error.AppendToDetailMsg("\n"); - system(backup_call); - */ -} - - -/*************************** -***************************/ -Severity -STEPfile::WriteExchangeFile(std::ostream& out, int validate, int clearError, - int writeComments) -{ - Severity rval = SEVERITY_NULL; - SetFileType(VERSION_CURRENT); - if(clearError) - _error.ClearErrorMsg(); - - if (validate) { - rval = instances ().VerifyInstances(_error); - _error.GreaterSeverity(rval); - if (rval < SEVERITY_USERMSG) - { - _error.AppendToUserMsg("Unable to verify instances. File not written. Try saving as working session file."); - _error.GreaterSeverity(SEVERITY_INCOMPLETE); - return rval; - } - } - - out << FILE_DELIM << "\n"; - WriteHeader(out); - WriteData(out, writeComments); - out << END_FILE_DELIM << "\n"; - return rval; -} - -/*************************** -***************************/ -Severity -STEPfile::WriteExchangeFile(const char* filename, int validate, int clearError, - int writeComments) -{ - Severity rval = SEVERITY_NULL; - - if(clearError) - _error.ClearErrorMsg(); - - if (validate) { - rval = instances ().VerifyInstances(_error); - _error.GreaterSeverity(rval); - if (rval < SEVERITY_USERMSG) - { - _error.AppendToUserMsg("Unable to verify instances. File wasn't opened. Try saving as working session file.\n"); - _error.GreaterSeverity(SEVERITY_INCOMPLETE); - return rval; - } - } - - std::ostream* out = OpenOutputFile(filename); - if (_error.severity() < SEVERITY_WARNING) return _error.severity(); - rval = WriteExchangeFile(*out, 0, 0, writeComments); - CloseOutputFile(out); - return rval; -} - - -/*************************** -***************************/ -Severity -STEPfile::WriteValuePairsFile(std::ostream& out, int validate, int clearError, - int writeComments, int mixedCase) -{ - Severity rval = SEVERITY_NULL; - SetFileType(VERSION_CURRENT); - if(clearError) - _error.ClearErrorMsg(); - - if (validate) { - rval = instances ().VerifyInstances(_error); - _error.GreaterSeverity(rval); - if (rval < SEVERITY_USERMSG) - { - _error.AppendToUserMsg("Unable to verify instances. File not written. Try saving as working session file."); - _error.GreaterSeverity(SEVERITY_INCOMPLETE); - return rval; - } - } - -// out << FILE_DELIM << "\n"; -// WriteHeader(out); - WriteValuePairsData(out, writeComments, mixedCase); -// out << END_FILE_DELIM << "\n"; - return rval; -} - -/*************************** -This function returns an integer value for -the file id for a header section entity, -based on a given entity name. - -This function may change the value of the -STEPfile member variable: _headerId - -The header section entities must be numbered in the following manner: - -#1=FILE_DESCRIPTION -#2=FILE_NAME -#3=FILE_SCHEMA -***************************/ -int -STEPfile::HeaderId (const char* name) -{ - SCLstring tmp; - if(! (strcmp( (char *)StrToUpper( name, tmp ), "FILE_DESCRIPTION") ) ) - return 1; - if(! (strcmp( (char *)StrToUpper( name, tmp ), "FILE_NAME") ) ) - return 2; - if(! (strcmp( (char *)StrToUpper( name, tmp ), "FILE_SCHEMA") ) ) - return 3; - return ++_headerId; -} - -/*************************** -***************************/ -int -STEPfile::HeaderIdOld (const char* name) -{ -/* - char* nms[5] = - { - "FILE_IDENTIFICATION\0", - "FILE_DESCRIPTION\0", - "IMP_LEVEL\0", - "CLASSIFICATION\0", - "MAXSIG\0" - }; -*/ - const char* nms[5]; - nms[0] = "FILE_IDENTIFICATION", - nms[1] = "FILE_DESCRIPTION"; - nms[2] = "IMP_LEVEL"; - nms[3] = "CLASSIFICATION"; - nms[4] = "MAXSIG"; - - SCLstring tmp; - for (int i=0; i<5; ++i) - { - if (!strcmp( (char *)StrToUpper( name, tmp ), nms[i] ) ) - return ++i; - } - return ++_headerId; -} - - -/*************************** -***************************/ -void -STEPfile::WriteHeader(std::ostream& out) -{ - out << "HEADER;\n"; - - WriteHeaderInstanceFileDescription(out); - WriteHeaderInstanceFileName(out); - WriteHeaderInstanceFileSchema(out); - - // Write the rest of the header instances - SCLP23(Application_instance)* se; - int n = _headerInstances->InstanceCount(); - for (int i =0; i < n; ++i) - { -/* se = (*_headerInstances)[i]->GetApplication_instance();*/ - se = _headerInstances->GetMgrNode (i) ->GetApplication_instance(); - if(!( - ( se->StepFileId() == HeaderId("File_Name") ) || - ( se->StepFileId() == HeaderId("File_Description") ) || - ( se->StepFileId() == HeaderId("File_Schema") ) - )) - WriteHeaderInstance( - _headerInstances->GetMgrNode(i)->GetApplication_instance(), out); -/* WriteHeaderInstance((*_headerInstances)[i] -> GetApplication_instance(), - out );*/ - } - out << "ENDSEC;\n"; -} - -/*************************** -***************************/ -void -STEPfile::WriteHeaderInstance(SCLP23(Application_instance)* obj, std::ostream& out) -{ - SCLstring tmp; - if(obj->P21CommentRep()) - out << obj->P21Comment(); - out << StrToUpper( obj->EntityName(), tmp ) << "("; - int n = obj->attributes.list_length(); - for (int i = 0; i < n; ++i) - { - (obj->attributes[i]).STEPwrite(out); - if (i < n-1) out << ","; - } - out << ");\n"; -} - -/*************************** -***************************/ -void -STEPfile::WriteHeaderInstanceFileName (std::ostream& out) -{ -// Get the FileName instance from _headerInstances - SCLP23(Application_instance) *se = 0; - se = _headerInstances->GetApplication_instance("File_Name"); - if (se == ENTITY_NULL) - { - // ERROR: no File_Name instance in _headerInstances - // create a File_Name instance -// (p21DIS_File_name*)se = HeaderDefaultFileName(); - se = (SCLP23(Application_instance) *)HeaderDefaultFileName(); - } - -//set some of the attribute values at time of output - p21DIS_File_name * fn = (p21DIS_File_name*)se; - -/* I'm not sure this is a good idea that Peter did but I'll leave around - DAS - // write time_stamp (as specified in ISO Standard 8601) - // output the current system time to the file, using the following format: - // example: '1994-04-12T15:27:46' - // for Calendar Date, 12 April 1994, 27 minute 46 seconds past 15 hours -*/ - time_t t = time(NULL); - struct tm *timeptr = localtime(&t); - char time_buf[26]; - strftime(time_buf,26,"%Y-%m-%dT%H:%M:%S",timeptr); - //s_String s = fn->time_stamp(); - //strncpy((char*)s,time_buf,27); - fn->time_stamp(time_buf); - -//output the values to the file - WriteHeaderInstance(se, out); -} - - -/************************************************** - DAVE, should this section be deleted now? - - p21DIS_File_name * fn; - int fileid = HeaderId("File_Name"); - MgrNode * mn = _headerInstances->FindFileId(fileid); - if (!mn) - { - // ERROR: no File_Name instance in _headerInstances - // create a File_Name instance - (SCLP23(Application_instance)*)fn = HeaderDefaultFileName(); - } - else - { - (SCLP23(Application_instance)*)fn = _headerInstances->GetApplication_instance(mn); - } - -// Write the values for the FileName instance to the std::ostream - SCLstring tmp; - out << StrToUpper (fn->EntityName()) << "("; - - // write name - //out << "\'" << (char*)fn->name() << "\',"; - SCLP23(String) * s = new SCLP23(String)((char*)fn->name()); - s->STEPwrite(out); - delete s; - out << ","; - - // write time_stamp (as specified in ISO Standard 8601) - // output the current system time to the file, using the following format: - // example: '1994-04-12 15:27:46' - // for Calendar Date, 12 April 1994, 27 minute 46 seconds past 15 hours - time_t t = time(NULL); - struct tm *timeptr = localtime(&t); - char time_buf[26]; - strftime(time_buf,26,"%Y-%m-%d %H:%M:%S",timeptr); - out << '\'' << time_buf << "\',"; - - // write author - fn->author().STEPwrite(out); - out << ","; - - // write organization - fn->organization().STEPwrite(out); - out << ","; - - // write preprocessor_version - s = new SCLP23(String)((char*)fn->preprocessor_version()); - s->STEPwrite(out); - delete s; - out << ","; - - // write originating_system - s = new SCLP23(String)((char*)fn->originating_system()); - s->STEPwrite(out); - delete s; - out << ","; - - // write authorization - s = new SCLP23(String)((char*)fn->authorization()); - s->STEPwrite(out); - delete s; - out << ");\n"; - -} -**************************************************/ - - -void -STEPfile::WriteHeaderInstanceFileDescription (std::ostream& out) -{ -// Get the FileDescription instance from _headerInstances - SCLP23(Application_instance) *se = 0; - se = _headerInstances->GetApplication_instance("File_Description"); - if (se == ENTITY_NULL) - { - // ERROR: no File_Name instance in _headerInstances - // create a File_Name instance -// (s_File_Description*)se = HeaderDefaultFileDescription(); - se = (SCLP23(Application_instance)*)HeaderDefaultFileDescription(); - } - - WriteHeaderInstance(se, out); - -/************************************************** - - p21DIS_File_description * fd; - int fileid = HeaderId("File_Description"); - MgrNode * mn = _headerInstances->FindFileId(fileid); - if (!mn) - { - // ERROR: no File_Description instance in _headerInstances - // create a File_Description instance - (SCLP23(Application_instance)*)fd = HeaderDefaultFileDescription(); - } - else - { - (SCLP23(Application_instance)*)fd = _headerInstances->GetApplication_instance(mn); - } -// Write the values for the FileDescription instance to the std::ostream - out << StrToUpper (fd->EntityName()) << "("; - - //write description - fd->description().STEPwrite(out,&_error,a_16DESCRIPTION); - out << ","; - - //write implementation_level - SCLP23(String) *s = new SCLP23(String)((char*)fd->implementation_level()); - s->STEPwrite(out); - delete s; - out << ");\n"; - -**************************************************/ -} - -void -STEPfile::WriteHeaderInstanceFileSchema (std::ostream& out) -{ -// Get the FileName instance from _headerInstances - SCLP23(Application_instance) *se = 0; - se = _headerInstances->GetApplication_instance("File_Schema"); - if (se == ENTITY_NULL) - { - // ERROR: no File_Name instance in _headerInstances - // create a File_Name instance -// (p21DIS_File_schema*)se = HeaderDefaultFileSchema(); - se = (SCLP23(Application_instance)*) HeaderDefaultFileSchema(); - } - - WriteHeaderInstance(se, out); - -/************************************************** - - p21DIS_File_schema * fs; - int fileid = HeaderId("File_Schema"); - MgrNode * mn = _headerInstances->FindFileId(fileid); - if (!mn) - { - // ERROR: no File_Schema instance in _headerInstances - // create a File_Schema instance - (SCLP23(Application_instance)*)fs = HeaderDefaultFileSchema(); - } - else - { - (SCLP23(Application_instance)*)fs = _headerInstances->GetApplication_instance(mn); - } -// Write the values for the FileName instance to the std::ostream - out << StrToUpper (fs->EntityName()) << "("; - - // write schema_identifiers - fs->schema_identifiers().STEPwrite(out); - out << ");\n"; -**************************************************/ - -} - - -/*************************** -***************************/ - -void -STEPfile::WriteData(std::ostream& out, int writeComments) -{ - char currSch[BUFSIZ]; - currSch[0] = '\0'; - - out << "DATA;\n"; - - schemaName( currSch ); - int n = instances ().InstanceCount(); - for (int i = 0; i < n; ++i) -/* instances ()[i] -> GetApplication_instance()->STEPwrite(out);*/ - instances ().GetMgrNode (i)->GetApplication_instance()->STEPwrite(out, currSch, writeComments); - - out << "ENDSEC;\n"; -} - -/*************************** -***************************/ - -void -STEPfile::WriteValuePairsData(std::ostream& out, int writeComments, int mixedCase) -{ - char currSch[BUFSIZ]; - currSch[0] = '\0'; - -// out << "DATA;\n"; - - schemaName( currSch ); - int n = instances ().InstanceCount(); - for (int i = 0; i < n; ++i) -/* instances ()[i] -> GetApplication_instance()->STEPwrite(out);*/ - instances ().GetMgrNode (i)->GetApplication_instance()->WriteValuePairs(out, currSch, writeComments, mixedCase); - -// out << "ENDSEC;\n"; -} - -Severity -STEPfile::AppendFile (std::istream* in, int useTechCor) -{ - Severity rval = SEVERITY_NULL; - char errbuf[BUFSIZ]; - - SetFileIdIncrement (); - int total_insts =0, valid_insts =0; - int exchange_file = -1; - - ReadTokenSeparator(*in); - SCLstring keywd = GetKeyword(*in, "; #", _error); - // get the delimiter off the std::istream - char c; - in->get(c); - - if (!strncmp(keywd, "ISO-10303-21",strlen(keywd))) - { - exchange_file = 1; - SetFileType(VERSION_CURRENT); - } - else if (!strncmp(keywd, "STEP",strlen(keywd))) - { - _error.AppendToUserMsg("Reading Old Version of exchange file.\n"); - _error.GreaterSeverity(SEVERITY_USERMSG); - - exchange_file = 1; - SetFileType(VERSION_OLD); - } - else if (!strncmp(keywd, "STEP_WORKING_SESSION",strlen(keywd))) - { - exchange_file = 0; - if (_fileType != WORKING_SESSION) - { - _error.AppendToUserMsg( - "Warning: Reading in file as Working Session file.\n"); - _error.GreaterSeverity(SEVERITY_WARNING); - } - SetFileType(WORKING_SESSION); - } - - else - { - sprintf(errbuf, - "Faulty input at beginning of file. \"ISO-10303-21;\" or" - " \"STEP;\" or \"STEP_WORKING_SESSION;\" expected. File " - "not read: %s\n", FileName()); - _error.AppendToUserMsg(errbuf); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; - } - - G4cout << "Reading Data from " << FileName () << "...\n"; - - // Read header - rval = ReadHeader(*in); - G4cout << "\nHEADER read:"; - if (rval < SEVERITY_WARNING) - { - sprintf(errbuf, - "Error: non-recoverable error in reading header section. " - "There were %d errors encountered. Rest of file is ignored.\n", - _errorCount); - _error.AppendToUserMsg(errbuf); - return rval; - } - else if (rval != SEVERITY_NULL) { - sprintf(errbuf, " %d ERRORS\t %d WARNINGS\n\n", - _errorCount, _warningCount); - G4cout << errbuf; - } - else G4cout << G4endl; - - if (!FindDataSection (*in)) - { - _error.AppendToUserMsg("Error: Unable to find DATA section delimiter. Data section not read. Rest of file ignored.\n"); - return SEVERITY_INPUT_ERROR; - } - - // PASS 1 - _errorCount = 0; - total_insts = ReadData1 (*in); - - G4cout << "\nFIRST PASS complete: " << total_insts - << " instances created.\n"; - sprintf(errbuf, - " %d ERRORS\t %d WARNINGS\n\n", - _errorCount, _warningCount); - G4cout << errbuf; - - // PASS 2 - // This would be nicer if you didn't actually have to close the - // file but could just reposition the pointer back to the - // beginning of the data section. It looks like you can do this - // with the GNU File class, but that class doesn't have the - // operator >> overloaded which is used to do the rest of the - // parsing. SO we are using istreams and this works, but could - // be better. - - // reset the error count so you\'re not counting things twice: - _errorCount = 0; -// delete in; // yikes -- deleted by caller - std::istream * in2; - if (! ((in2 = OpenInputFile ()) && (in2 -> good ())) ) - { // if the stream is not readable, there's an error - _error.AppendToUserMsg ("Cannot open file for 2nd pass -- No data read.\n"); -// return total_insts; - CloseInputFile(in2); - return SEVERITY_INPUT_ERROR; - } - if (!FindDataSection (*in2)) - { - _error.AppendToUserMsg("Error: Unable to find DATA section delimiter in second pass. \nData section not read. Rest of file ignored.\n"); - CloseInputFile(in2); - return SEVERITY_INPUT_ERROR; - } - - switch (_fileType) - { - case VERSION_CURRENT: - case VERSION_OLD: - case VERSION_UNKNOWN: - valid_insts = ReadData2 (*in2, useTechCor); - break; - - case WORKING_SESSION: -// valid_insts = ReadWorkingData2 (*in2); - valid_insts = ReadData2 (*in2, useTechCor); - break; - - default: // Added default field - GC - break; - } - - //check for "ENDSEC;" - ReadTokenSeparator(*in2); -// keywd = GetKeyword(*in2,";", _error); -// if ( strncmp (keywd, "ENDSEC;",strlen(keywd)) || !in2 -> good () ) -// { -// _error.AppendToUserMsg("Unknown value in DATA section. Terminated parsing.\n\tvalue was: %s\n"); -// _error.AppendToUserMsg(keywd); -// _error.GreaterSeverity(SEVERITY_WARNING); -// } - - if (total_insts != valid_insts) - { - sprintf(errbuf,"%d invalid instances in file: %s\n", - total_insts - valid_insts, FileName()); - _error.AppendToUserMsg(errbuf); - CloseInputFile(in2); - return _error.GreaterSeverity(SEVERITY_WARNING); - } - - G4cout << "\nSECOND PASS complete: " << valid_insts - << " instances valid.\n"; - sprintf(errbuf, - " %d ERRORS\t %d WARNINGS\n\n", - _errorCount, _warningCount); - _error.AppendToUserMsg(errbuf); - G4cout << errbuf; - - - //check for "ENDSTEP;" || "END-ISO-10303-21;" - - if (in2 -> good()) - { - ReadTokenSeparator(*in2); - keywd = GetKeyword (*in2,";", _error); - //yank the ";" from the std::istream - //if (';' == in2->peek()) in2->get(); - char c; in2->get(c); if (c == ';') ; - } - - if ((strncmp (keywd, END_FILE_DELIM,strlen(keywd))) || !(in2 -> good ())) - { - _error.AppendToUserMsg(END_FILE_DELIM); - _error.AppendToUserMsg(" missing at end of file.\n"); - CloseInputFile(in2); - return _error.GreaterSeverity(SEVERITY_WARNING); - } - CloseInputFile(in2); - G4cout << "Finished reading file.\n\n"; - return SEVERITY_NULL; -} - - - - -/*************************** -***************************/ -Severity -STEPfile::WriteWorkingFile(std::ostream& out, int clearError, int writeComments) -{ - SetFileType (WORKING_SESSION); - if(clearError) - _error.ClearErrorMsg(); - - if (instances ().VerifyInstances(_error) < SEVERITY_INCOMPLETE) - { - _error.AppendToUserMsg("WARNING: some invalid instances written to working session file. Data may have been lost."); - _error.GreaterSeverity(SEVERITY_INCOMPLETE); - } - - out << FILE_DELIM << "\n"; - WriteHeader(out); - - WriteWorkingData(out, writeComments); - out << END_FILE_DELIM << "\n"; - SetFileType(); - - return _error.severity (); -} - -/*************************** -***************************/ -Severity -STEPfile::WriteWorkingFile(const char* filename, int clearError, - int writeComments) -{ - if(clearError) - _error.ClearErrorMsg(); - std::ostream* out = OpenOutputFile(filename); - if (_error.severity() < SEVERITY_WARNING) return _error.severity(); - Severity rval = WriteWorkingFile(*out, 0, writeComments); - CloseOutputFile(out); - - return rval; -} - - -/*************************** -***************************/ -void -STEPfile::WriteWorkingData(std::ostream& out, int writeComments) -{ - char currSch[BUFSIZ]; - currSch[0] = '\0'; - - schemaName( currSch ); - out << "DATA;\n"; -// SCLP23(Application_instance)* se; - int n = instances ().InstanceCount(); - for (int i = 0; i < n; ++i) { - switch (instances ().GetMgrNode (i)->CurrState()) - { - case deleteSE: - out << wsDelete; - instances ().GetMgrNode (i)->GetApplication_instance()-> - STEPwrite(out, currSch, writeComments); - break; - case completeSE: - out << wsSaveComplete; - instances ().GetMgrNode (i)->GetApplication_instance()-> - STEPwrite(out, currSch, writeComments); - break; - case incompleteSE: - out << wsSaveIncomplete; - instances ().GetMgrNode (i)->GetApplication_instance()-> - STEPwrite(out, currSch, writeComments); - break; - case newSE: - out << wsNew; - instances ().GetMgrNode (i)->GetApplication_instance()-> - STEPwrite(out, currSch, writeComments); - break; - case noStateSE: - _error.AppendToUserMsg("no state information for this node\n"); - break; - } - } - out << "ENDSEC;\n"; -} - -/************************************************** - description: - This function sends messages to 'cerr' - based on the values in the given ErrorDescriptor (e), which is - supposed to be from a SCLP23(Application_instance) object, being manipulated by one - of the STEPfile member functions. - - The given error descriptor's messages are then cleared. - - The STEPfile's error descriptor is set no lower than SEVERITY_WARNING. - -**************************************************/ -Severity -STEPfile::AppendEntityErrorMsg(ErrorDescriptor *e) -{ - ErrorDescriptor* ed = e; - - Severity sev = ed->severity(); - - if ((sev < SEVERITY_MAX) || (sev > SEVERITY_NULL)) - { - //ERROR: something wrong with ErrorDescriptor - //_error.AppendToDetailMsg("Error: in AppendEntityErrorMsg(ErrorDesriptor& e). Incomplete ErrorDescriptor, unable to report error message in SCLP23(Application_instance).\n"); - _error.GreaterSeverity(SEVERITY_WARNING); - return SEVERITY_BUG; - } - - switch (sev) - { - case SEVERITY_NULL: - return SEVERITY_NULL; - - default: - { -// G4cerr << e->UserMsg(); - G4cerr << e->DetailMsg(); - e->ClearErrorMsg(); - - if (sev < SEVERITY_USERMSG) { ++_errorCount; } - if (sev < SEVERITY_WARNING) { sev = SEVERITY_WARNING; } - - _error.GreaterSeverity(sev); - return sev; - } - } -} diff --git a/source/geometry/solids/STEP/src/STEPfile_inline.cc b/source/geometry/solids/STEP/src/STEPfile_inline.cc deleted file mode 100644 index c80cb760db..0000000000 --- a/source/geometry/solids/STEP/src/STEPfile_inline.cc +++ /dev/null @@ -1,363 +0,0 @@ - -/* -* NIST STEP Core Class Library -* cleditor/STEPfile.inline.cc -* April 1997 -* Peter Carr -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPfile_inline.cc,v 1.8 2003/06/06 17:07:33 gcosmo Exp $ */ - -#include -#include -#include - -//#ifdef __GNUG__ -//#ifdef __SUNCPLUSPLUS__ -//#ifdef __OBJECTCENTER__ -//#ifdef __xlC__ -extern "C" { -double ceil(double); -} - - -extern void HeaderSchemaInit (Registry & reg); - -//To Be inline functions - -//constructor & destructor - -STEPfile::STEPfile(Registry& r, InstMgr& i, const char *filename) - -// Changed order of member initialisations to match correct order - GC -#ifdef __O3DB__ -: _instances(&i), _reg(&r), -#else -: _instances(i), _reg(r), -#endif -#ifdef __OSTORE__ - db (0), -#endif - _fileIdIncr (0), _headerId(0), - _fileName (0), _entsNotCreated(0), _entsInvalid(0), - _entsIncomplete(0), _entsWarning(0), - _errorCount (0), _warningCount (0), _maxErrorCount(5000) - -{ - SetFileType(VERSION_CURRENT); - SetFileIdIncrement(); - _currentDir = new DirObj(""); -// _headerRegistry = new Registry(&s_HeaderSchemaInit); - _headerRegistry = new Registry(HeaderSchemaInit); - _headerInstances = new InstMgr; - if (filename) ReadExchangeFile(filename); -} - -STEPfile::~STEPfile() -{ - delete _currentDir; - -// remove everything from the Registry before deleting it - _headerRegistry -> DeleteContents (); - delete _headerRegistry; - -//DAS delete _headerRegistryOld; - _headerInstances -> ClearInstances (); - delete _headerInstances; -} - -int -STEPfile::SetFileType(FileTypeCode ft) -{ - FileType (ft); - - switch (_fileType) - { - case (VERSION_OLD): - ENTITY_NAME_DELIM = '@'; - FILE_DELIM = (char*)("STEP;"); - END_FILE_DELIM = (char*)("ENDSTEP;"); -/*DAS - if (!_headerRegistryOld) - _headerRegistryOld = - new Registry(& s_Header_Section_Schema_N279Init); -*/ - - break; - case (VERSION_UNKNOWN): - case (VERSION_CURRENT): - ENTITY_NAME_DELIM = '#'; - FILE_DELIM = (char*)("ISO-10303-21;"); - END_FILE_DELIM = (char*)("END-ISO-10303-21;"); - break; - case (WORKING_SESSION): - ENTITY_NAME_DELIM = '#'; - FILE_DELIM = (char*)("STEP_WORKING_SESSION;"); - END_FILE_DELIM = (char*)("END-STEP_WORKING_SESSION;"); - break; - - default: - // some kind of error - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return 0; - } - return 1; -} - - -/******************************************************/ -const char* -STEPfile::TruncFileName(const char* filename) const -{ - // Put a 'const' qualifier to the temporary string !! - GC - const char* tmp = strrchr(filename,'/'); - if (tmp) return tmp++; - else return filename; - -} - - -/******************************************************/ -Severity -STEPfile::ReadExchangeFile(const char* filename, int useTechCor) -{ - _error.ClearErrorMsg(); - _errorCount = 0; - std::istream* in = OpenInputFile(filename); - if (_error.severity() < SEVERITY_WARNING) - { - CloseInputFile(in); - return _error.severity(); - } - - instances ().ClearInstances (); - if (_headerInstances) - _headerInstances->ClearInstances (); - _headerId = 5; - Severity rval = AppendFile (in, useTechCor); - CloseInputFile(in); - return rval; -} - -Severity -STEPfile::AppendExchangeFile (const char* filename, int useTechCor) -{ - _error.ClearErrorMsg(); - _errorCount = 0; - std::istream* in = OpenInputFile(filename); - if (_error.severity() < SEVERITY_WARNING) - { - CloseInputFile(in); - return _error.severity(); - } - Severity rval = AppendFile (in, useTechCor); - CloseInputFile(in); - return rval; -} - -/******************************************************/ -Severity -STEPfile::ReadWorkingFile(const char* filename, int useTechCor) -{ - _error.ClearErrorMsg(); - _errorCount = 0; - std::istream* in = OpenInputFile(filename); - if (_error.severity() < SEVERITY_WARNING) - { - CloseInputFile(in); - return _error.severity(); - } - - instances ().ClearInstances(); - _headerInstances->ClearInstances (); - SetFileType(WORKING_SESSION); - - Severity rval = AppendFile (in, useTechCor); - SetFileType(); - CloseInputFile(in); - return rval; -} - - -Severity -STEPfile::AppendWorkingFile(const char* filename, int useTechCor) -{ - _error.ClearErrorMsg(); - _errorCount = 0; - std::istream* in = OpenInputFile(filename); - if (_error.severity() < SEVERITY_WARNING) - { - CloseInputFile(in); - return _error.severity(); - } - SetFileType(WORKING_SESSION); - Severity rval = AppendFile (in, useTechCor); - SetFileType(); - CloseInputFile(in); - return rval; -} - - - -/******************************************************/ -std::istream* -STEPfile::OpenInputFile (const char* filename) -{ - // if there's no filename to use, fail - if (! (strcmp (filename, "") || strcmp (FileName (), "")) ) - { - _error.AppendToUserMsg("Unable to open file for input. No current file name.\n"); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - return (0); - } - else { - if (!SetFileName (filename)) - { - char msg[BUFSIZ]; - sprintf(msg,"Unable to find file for input: \'%s\'. File not read.\n",filename); - _error.AppendToUserMsg(msg); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - return (0); - } - } - // std::istream* in = new std::istream(FileName(), io_readonly, a_useonly); - // port 29-Mar-1994 kcm - std::istream* in = new std::ifstream(FileName()); - // default for std::ostream is readonly and protections are set to 644 -// if ( !in || !(in -> readable ()) ) - if ( !in || !(in -> good ()) ) - { - char msg[BUFSIZ]; - sprintf(msg,"Unable to open file for input: \'%s\'. File not read.\n",filename); - _error.AppendToUserMsg(msg); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - return (0); - } - return in; -} - -/******************************************************/ -void -STEPfile::CloseInputFile(std::istream* in) -{ - delete in; -} - - -/******************************************************/ - -/* -void -STEPfile::ReadWhiteSpace (std::istream& in) -{ - - char c = ' '; - while ((c == ' ') || (c == '\n') || (c == '\t')) { - in >> c; - } - in.putback (c); -} -*/ - -/*************************** -***************************/ -std::ofstream* -STEPfile::OpenOutputFile(const char* filename) -{ - if (!filename) - { - if (!FileName()) - { - _error.AppendToUserMsg("No current file name.\n"); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - } - } - else - { - if (!SetFileName (filename)) - { - char msg[BUFSIZ]; - sprintf(msg,"can't find file: %s\nFile not written.\n",filename); - _error.AppendToUserMsg(msg); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - } - } - - if (_currentDir->FileExists(TruncFileName(FileName()))) - MakeBackupFile(); -// std::ostream* out = new std::ostream(FileName(), io_writeonly, a_create); - // - port 29-Mar-1994 kcm - std::ofstream* out = new std::ofstream(FileName()); - // default for std::ostream is writeonly and protections are set to 644 - if (!out) - { - _error.AppendToUserMsg("unable to open file for output\n"); - _error.GreaterSeverity(SEVERITY_INPUT_ERROR); - } - return out; -} - -void -STEPfile::CloseOutputFile(std::ostream* out) -{ - delete out; -} - - - -/******************************************************/ -int -STEPfile::IncrementFileId (int fileid) -{ - return (fileid + FileIdIncr()); -} - - -void -STEPfile::SetFileIdIncrement() -{ - // Added cast to float in argument for 'ceil' function call. This avoids - // clashes with cmath function signatures on HP-aCC - GC - if (instances ().MaxFileId() < 0) _fileIdIncr = 0; - else _fileIdIncr = (int)((ceil(float((instances ().MaxFileId() + 99)/1000) + 1)) * 1000); -} - -char *STEPfile::schemaName( char *schName ) - /* - * Returns the schema name from the file schema header section (or the 1st - * one if more than one exists). Copies this value into schName. If there - * is no header section or no value for file schema, NULL is returned and - * schName is unset. - */ -{ - p21DIS_File_schema *fs; - SCLstring tmp; - STEPnode *n; - - if ( _headerInstances == NULL ) return NULL; - fs = (p21DIS_File_schema *)_headerInstances->GetApplication_instance("File_Schema"); - if ( fs == ENTITY_NULL ) return NULL; - - n = (STEPnode *)fs->schema_identifiers().GetHead(); - // (take the first one) - if ( n == NULL ) return NULL; - n->STEPwrite(tmp); - if ( *tmp.chars() == '\0' || *tmp.chars() == '$' ) return NULL; - // tmp.chars() returns the string we want plus a beginning and ending - // quote mark ('). We remove these below. - strncpy( schName, tmp.chars()+1, BUFSIZ-1 ); - // "+1" to remove beginning '. - if ( *(schName + strlen( schName ) - 1) == '\'' ) { - // Remove trailing '. This condition checks that it wasn't removed - // already. That may have happend if strncpy had truncated schName - // (it were >= BUFSIZ). - *(schName + strlen( schName ) - 1) = '\0'; - } - return schName; -} diff --git a/source/geometry/solids/STEP/src/STEPundefined.cc b/source/geometry/solids/STEP/src/STEPundefined.cc deleted file mode 100644 index 1c715033d5..0000000000 --- a/source/geometry/solids/STEP/src/STEPundefined.cc +++ /dev/null @@ -1,244 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/STEPundefined.cc -* April 1997 -* KC Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: STEPundefined.cc,v 1.5 2003/06/06 17:07:33 gcosmo Exp $ */ - -#include // to get the BUFSIZ #define -#include -#include - - -/****************************************************************** - ** helping functions for reading unknown types **/ - - - -Severity -SCLundefined::StrToVal(const char *s, ErrorDescriptor *err) -{ - val = s; - return SEVERITY_NULL; -} - -Severity -SCLundefined::StrToVal(std::istream &in, ErrorDescriptor *err) -{ - return STEPread(in, err); -} - -Severity -SCLundefined::STEPread(const char *s, ErrorDescriptor *err) -{ - std::istrstream in((char *) s); - return STEPread(in, err); -} - -Severity -SCLundefined::STEPread(std::istream &in, ErrorDescriptor *err) -{ - char c = '\0'; - std::strstream ss; - SCLstring str; - - int terminal = 0; - - in >> std::ws; // skip white space - in >> c; - if(c == '$') - { - val = ""; - CheckRemainingInput(in, err, "aggregate item", ",)"); - } - else - in.putback(c); - - while (!terminal) - { - in.get(c); - switch (c) - { - case '(': - in.putback(c); - - PushPastImbedAggr(in, str, err); - ss << str.chars(); - break; - - case '\'': - in.putback(c); - - PushPastString(in, str, err); - ss << str.chars(); - break; - - case ',': - terminal = 1; // it's a STEPattribute separator - in.putback (c); - c = '\0'; - break; - - case ')': - in.putback (c); - terminal = 1; // found a valid delimiter - break; - - case '\0': - case EOF: - terminal = 1; // found a valid delimiter - break; - - default: - ss.put(c); - break; - } - - if (!in.good ()) { - terminal =1; - c = '\0'; - } -// if (!in.readable ()) terminal =1; - } - - ss << std::ends; - val = ss.str(); - - err->GreaterSeverity(SEVERITY_NULL); - return SEVERITY_NULL; -} - -const char * -SCLundefined::asStr(SCLstring & s) const -{ - s = val.chars(); - return s.chars(); -} - -const char * -SCLundefined::STEPwrite(SCLstring &s) -{ - if(val.rep()) - { - s = val.chars(); - } - else - s = "$"; - return s.chars(); -} - -void -SCLundefined:: STEPwrite (std::ostream& out) -{ - if(val.rep()) - out << val.chars(); - else - out << "$"; -} - -SCLundefined& -SCLundefined::operator= (const SCLundefined& x) -{ - SCLstring tmp; - val = x.asStr(tmp); - return *this; -} - -SCLundefined& -SCLundefined::operator= (const char * str) -{ - if (!str) - val.set_null(); - else - val = str; - return *this; -} - -SCLundefined::SCLundefined () -{ -} - -SCLundefined::~SCLundefined () -{ -} - -int -SCLundefined::set_null () -{ - val = ""; - return 1; -} - -int -SCLundefined::is_null () -{ - return (!strcmp (val.chars(), "")); - -} - - -/* -int -SCLundefined::STEPread(std::istream& in ) -{ - char c ='\0'; - char buf [BUFSIZ]; - int i =0; - int open_paren =0; - int terminal = 0; - - while (!terminal) - { - in >> c; - switch (c) - { - case '(': - ++open_paren; - break; - case ')': - if (open_paren) { - --open_paren; - break; - } - // otherwise treat it like a comma - case ',': - if (!open_paren) { - terminal =1; - in.putback (c); - c = '\0'; - } - - break; - case '\0': - terminal =1; - break; - - } - - if (!in) - { - terminal =1; - c = '\0'; - } - if (i < BUFSIZ) buf [i] = c; - - // BUG: read up to BUFSIZ -1 number of characters - // if more characters, NULL terminate and ignore the rest of input - if ((++i == BUFSIZ) && !terminal) { - G4cerr << "WARNING: information lost -- value of undefined type is too long\n"; - buf [i] = '\0'; - } - - } - if (i < BUFSIZ) buf [i+1] = '\0'; - val = buf; - return i; -} -*/ diff --git a/source/geometry/solids/STEP/src/SdaiAll.cc b/source/geometry/solids/STEP/src/SdaiAll.cc deleted file mode 100644 index 53c377d3fd..0000000000 --- a/source/geometry/solids/STEP/src/SdaiAll.cc +++ /dev/null @@ -1,5531 +0,0 @@ -#ifndef SDAIALL_CC -#define SDAIALL_CC -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. -/* $Id: SdaiAll.cc,v 1.4 2003/06/06 17:07:33 gcosmo Exp $ */ -#include - -#ifdef WIN32 - #define MSWIN 1 -#endif - -void -InitSchemasAndEnts (Registry & reg) -{ -// Interface_spec_ptr is; -// Used_item_ptr ui; -// Referenced_item_ptr ri; - Uniqueness_rule_ptr ur; - Where_rule_ptr wr; - Global_rule_ptr gr; - // Schema: SdaiCONFIG_CONTROL_DESIGN - s_config_control_design = new Schema("Config_Control_Design"); - s_config_control_design->AssignModelContentsCreator( - (ModelContentsCreator) create_SdaiModel_contents_config_control_design); - reg.AddSchema (*s_config_control_design); - gr = new Global_rule("change_request_requires_approval",s_config_control_design,"RULE change_request_requires_approval FOR (change_request, \n cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( cr <* change_request | (NOT (SIZEOF(\n QUERY ( ccda <* cc_design_approval | (cr IN ccda.items) )) = 1)) )) \n = 0);\n\nEND_RULE; -- change_request_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE change_request_requires_approval FOR (change_request, - cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( cr <* change_request | (NOT (SIZEOF( - QUERY ( ccda <* cc_design_approval | (cr IN ccda.items) )) = 1)) )) - = 0); - -END_RULE; -- change_request_requires_approval - -*/ - gr = new Global_rule("restrict_date_time_role",s_config_control_design,"RULE restrict_date_time_role FOR (date_time_role);\n\nWHERE\n wr1: (SIZEOF(QUERY ( dtr <* date_time_role | (NOT (dtr.name IN [\n 'creation_date','request_date','release_date','start_date',\n 'contract_date','certification_date','sign_off_date',\n 'classification_date','declassification_date'])) )) = 0);\n\nEND_RULE; -- restrict_date_time_role\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_date_time_role FOR (date_time_role); - -WHERE - wr1: (SIZEOF(QUERY ( dtr <* date_time_role | (NOT (dtr.name IN [ - 'creation_date','request_date','release_date','start_date', - 'contract_date','certification_date','sign_off_date', - 'classification_date','declassification_date'])) )) = 0); - -END_RULE; -- restrict_date_time_role - -*/ - gr = new Global_rule("versioned_action_request_requires_status",s_config_control_design,"RULE versioned_action_request_requires_status FOR (\n versioned_action_request, action_request_status);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ar <* versioned_action_request | (NOT (SIZEOF(\n QUERY ( ars <* action_request_status | (ar :=: ars.\n assigned_request) )) = 1)) )) = 0);\n\nEND_RULE; -- versioned_action_request_requires_status\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE versioned_action_request_requires_status FOR ( - versioned_action_request, action_request_status); - -WHERE - wr1: (SIZEOF(QUERY ( ar <* versioned_action_request | (NOT (SIZEOF( - QUERY ( ars <* action_request_status | (ar :=: ars. - assigned_request) )) = 1)) )) = 0); - -END_RULE; -- versioned_action_request_requires_status - -*/ - gr = new Global_rule("acu_requires_security_classification",s_config_control_design,"RULE acu_requires_security_classification FOR (assembly_component_usage, \n cc_design_security_classification);\n\nWHERE\n wr1: (SIZEOF(QUERY ( acu <* assembly_component_usage | (NOT (SIZEOF(\n QUERY ( ccdsc <* cc_design_security_classification | (acu IN \n ccdsc.items) )) = 1)) )) = 0);\n\nEND_RULE; -- acu_requires_security_classification\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE acu_requires_security_classification FOR (assembly_component_usage, - cc_design_security_classification); - -WHERE - wr1: (SIZEOF(QUERY ( acu <* assembly_component_usage | (NOT (SIZEOF( - QUERY ( ccdsc <* cc_design_security_classification | (acu IN - ccdsc.items) )) = 1)) )) = 0); - -END_RULE; -- acu_requires_security_classification - -*/ - gr = new Global_rule("no_shape_for_supplied_part",s_config_control_design,"RULE no_shape_for_supplied_part FOR (supplied_part_relationship);\n\nWHERE\n wr1: (SIZEOF(QUERY ( spr <* supplied_part_relationship | (NOT (SIZEOF(\n QUERY ( pd <* USEDIN(spr,'CONFIG_CONTROL_DESIGN.' + \n 'PROPERTY_DEFINITION.DEFINITION') | (\n 'CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) )) \n = 0)) )) = 0);\n\nEND_RULE; -- no_shape_for_supplied_part\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE no_shape_for_supplied_part FOR (supplied_part_relationship); - -WHERE - wr1: (SIZEOF(QUERY ( spr <* supplied_part_relationship | (NOT (SIZEOF( - QUERY ( pd <* USEDIN(spr,'CONFIG_CONTROL_DESIGN.' + - 'PROPERTY_DEFINITION.DEFINITION') | ( - 'CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) )) - = 0)) )) = 0); - -END_RULE; -- no_shape_for_supplied_part - -*/ - gr = new Global_rule("dependent_instantiable_person_and_organization_role",s_config_control_design,"RULE dependent_instantiable_person_and_organization_role FOR (\n person_and_organization_role);\n\nWHERE\n wr1: (SIZEOF(QUERY ( poar <* person_and_organization_role | (NOT (\n SIZEOF(USEDIN(poar,'')) >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_person_and_organization_role\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_person_and_organization_role FOR ( - person_and_organization_role); - -WHERE - wr1: (SIZEOF(QUERY ( poar <* person_and_organization_role | (NOT ( - SIZEOF(USEDIN(poar,'')) >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_person_and_organization_role - -*/ - gr = new Global_rule("product_definition_requires_date_time",s_config_control_design,"RULE product_definition_requires_date_time FOR (product_definition, \n cc_design_date_and_time_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pd <* product_definition | (NOT (SIZEOF(\n QUERY ( ccdta <* cc_design_date_and_time_assignment | (pd IN \n ccdta.items) )) = 1)) )) = 0);\n\nEND_RULE; -- product_definition_requires_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_definition_requires_date_time FOR (product_definition, - cc_design_date_and_time_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( pd <* product_definition | (NOT (SIZEOF( - QUERY ( ccdta <* cc_design_date_and_time_assignment | (pd IN - ccdta.items) )) = 1)) )) = 0); - -END_RULE; -- product_definition_requires_date_time - -*/ - gr = new Global_rule("compatible_dimension",s_config_control_design,"RULE compatible_dimension FOR (cartesian_point, direction, \n representation_context, geometric_representation_context);\n\nWHERE\n wr1: (SIZEOF(QUERY ( x <* cartesian_point | (SIZEOF(QUERY ( y <* \n geometric_representation_context | (item_in_context(x,y) AND (\n HIINDEX(x.coordinates) <> y.coordinate_space_dimension)) )) > 0) )) \n = 0);\n wr2: (SIZEOF(QUERY ( x <* direction | (SIZEOF(QUERY ( y <* \n geometric_representation_context | (item_in_context(x,y) AND (\n HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension)) )) \n > 0) )) = 0);\n\nEND_RULE; -- compatible_dimension\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE compatible_dimension FOR (cartesian_point, direction, - representation_context, geometric_representation_context); - -WHERE - wr1: (SIZEOF(QUERY ( x <* cartesian_point | (SIZEOF(QUERY ( y <* - geometric_representation_context | (item_in_context(x,y) AND ( - HIINDEX(x.coordinates) <> y.coordinate_space_dimension)) )) > 0) )) - = 0); - wr2: (SIZEOF(QUERY ( x <* direction | (SIZEOF(QUERY ( y <* - geometric_representation_context | (item_in_context(x,y) AND ( - HIINDEX(x.direction_ratios) <> y.coordinate_space_dimension)) )) - > 0) )) = 0); - -END_RULE; -- compatible_dimension - -*/ - gr = new Global_rule("product_version_requires_approval",s_config_control_design,"RULE product_version_requires_approval FOR (product_definition_formation, \n cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (SIZEOF(\n QUERY ( ccda <* cc_design_approval | (pdf IN ccda.items) )) = 1)) )) \n = 0);\n\nEND_RULE; -- product_version_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_version_requires_approval FOR (product_definition_formation, - cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (SIZEOF( - QUERY ( ccda <* cc_design_approval | (pdf IN ccda.items) )) = 1)) )) - = 0); - -END_RULE; -- product_version_requires_approval - -*/ - gr = new Global_rule("change_requires_approval",s_config_control_design,"RULE change_requires_approval FOR (change, cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( chg <* change | (NOT (SIZEOF(QUERY ( ccda <* \n cc_design_approval | (chg IN ccda.items) )) = 1)) )) = 0);\n\nEND_RULE; -- change_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE change_requires_approval FOR (change, cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( chg <* change | (NOT (SIZEOF(QUERY ( ccda <* - cc_design_approval | (chg IN ccda.items) )) = 1)) )) = 0); - -END_RULE; -- change_requires_approval - -*/ - gr = new Global_rule("product_requires_version",s_config_control_design,"RULE product_requires_version FOR (product, product_definition_formation);\n\nWHERE\n wr1: (SIZEOF(QUERY ( prod <* product | (NOT (SIZEOF(QUERY ( pdf <* \n product_definition_formation | (prod :=: pdf.of_product) )) >= 1)) )) \n = 0);\n\nEND_RULE; -- product_requires_version\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_requires_version FOR (product, product_definition_formation); - -WHERE - wr1: (SIZEOF(QUERY ( prod <* product | (NOT (SIZEOF(QUERY ( pdf <* - product_definition_formation | (prod :=: pdf.of_product) )) >= 1)) )) - = 0); - -END_RULE; -- product_requires_version - -*/ - gr = new Global_rule("product_definition_requires_person_organization",s_config_control_design,"RULE product_definition_requires_person_organization FOR (\n product_definition, cc_design_person_and_organization_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pd <* product_definition | (NOT (SIZEOF(\n QUERY ( ccdpoa <* cc_design_person_and_organization_assignment\n | (pd IN ccdpoa.items) )) = 1)) )) = 0);\n\nEND_RULE; -- product_definition_requires_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_definition_requires_person_organization FOR ( - product_definition, cc_design_person_and_organization_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( pd <* product_definition | (NOT (SIZEOF( - QUERY ( ccdpoa <* cc_design_person_and_organization_assignment - | (pd IN ccdpoa.items) )) = 1)) )) = 0); - -END_RULE; -- product_definition_requires_person_organization - -*/ - gr = new Global_rule("product_concept_requires_configuration_item",s_config_control_design,"RULE product_concept_requires_configuration_item FOR (product_concept, \n configuration_item);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pc <* product_concept | (NOT (SIZEOF(QUERY ( ci <* \n configuration_item | (pc :=: ci.item_concept) )) >= 1)) )) = 0);\n\nEND_RULE; -- product_concept_requires_configuration_item\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_concept_requires_configuration_item FOR (product_concept, - configuration_item); - -WHERE - wr1: (SIZEOF(QUERY ( pc <* product_concept | (NOT (SIZEOF(QUERY ( ci <* - configuration_item | (pc :=: ci.item_concept) )) >= 1)) )) = 0); - -END_RULE; -- product_concept_requires_configuration_item - -*/ - gr = new Global_rule("certification_requires_date_time",s_config_control_design,"RULE certification_requires_date_time FOR (certification, \n cc_design_date_and_time_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( cert <* certification | (NOT (SIZEOF(\n QUERY ( ccdta <* cc_design_date_and_time_assignment | (cert IN \n ccdta.items) )) = 1)) )) = 0);\n\nEND_RULE; -- certification_requires_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE certification_requires_date_time FOR (certification, - cc_design_date_and_time_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( cert <* certification | (NOT (SIZEOF( - QUERY ( ccdta <* cc_design_date_and_time_assignment | (cert IN - ccdta.items) )) = 1)) )) = 0); - -END_RULE; -- certification_requires_date_time - -*/ - gr = new Global_rule("certification_requires_approval",s_config_control_design,"RULE certification_requires_approval FOR (certification, \n cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( cert <* certification | (NOT (SIZEOF(\n QUERY ( ccda <* cc_design_approval | (cert IN ccda.items) )) = 1)) )) \n = 0);\n\nEND_RULE; -- certification_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE certification_requires_approval FOR (certification, - cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( cert <* certification | (NOT (SIZEOF( - QUERY ( ccda <* cc_design_approval | (cert IN ccda.items) )) = 1)) )) - = 0); - -END_RULE; -- certification_requires_approval - -*/ - gr = new Global_rule("subtype_mandatory_effectivity",s_config_control_design,"RULE subtype_mandatory_effectivity FOR (effectivity);\n\nWHERE\n wr1: (SIZEOF(QUERY ( eff <* effectivity | (NOT ((SIZEOF([\n 'CONFIG_CONTROL_DESIGN.SERIAL_NUMBERED_EFFECTIVITY',\n 'CONFIG_CONTROL_DESIGN.LOT_EFFECTIVITY',\n 'CONFIG_CONTROL_DESIGN.DATED_EFFECTIVITY'] * TYPEOF(eff)) = 1) \n AND ('CONFIG_CONTROL_DESIGN.CONFIGURATION_EFFECTIVITY' IN \n TYPEOF(eff)))) )) = 0);\n\nEND_RULE; -- subtype_mandatory_effectivity\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE subtype_mandatory_effectivity FOR (effectivity); - -WHERE - wr1: (SIZEOF(QUERY ( eff <* effectivity | (NOT ((SIZEOF([ - 'CONFIG_CONTROL_DESIGN.SERIAL_NUMBERED_EFFECTIVITY', - 'CONFIG_CONTROL_DESIGN.LOT_EFFECTIVITY', - 'CONFIG_CONTROL_DESIGN.DATED_EFFECTIVITY'] * TYPEOF(eff)) = 1) - AND ('CONFIG_CONTROL_DESIGN.CONFIGURATION_EFFECTIVITY' IN - TYPEOF(eff)))) )) = 0); - -END_RULE; -- subtype_mandatory_effectivity - -*/ - gr = new Global_rule("versioned_action_request_requires_solution",s_config_control_design,"RULE versioned_action_request_requires_solution FOR (\n versioned_action_request, action_request_solution);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ar <* versioned_action_request | (NOT (SIZEOF(\n QUERY ( ars <* action_request_solution | (ar :=: ars.request) )) \n >= 1)) )) = 0);\n\nEND_RULE; -- versioned_action_request_requires_solution\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE versioned_action_request_requires_solution FOR ( - versioned_action_request, action_request_solution); - -WHERE - wr1: (SIZEOF(QUERY ( ar <* versioned_action_request | (NOT (SIZEOF( - QUERY ( ars <* action_request_solution | (ar :=: ars.request) )) - >= 1)) )) = 0); - -END_RULE; -- versioned_action_request_requires_solution - -*/ - gr = new Global_rule("effectivity_requires_approval",s_config_control_design,"RULE effectivity_requires_approval FOR (effectivity, cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( eff <* effectivity | (NOT (SIZEOF(QUERY ( ccda <* \n cc_design_approval | (eff IN ccda.items) )) = 1)) )) = 0);\n\nEND_RULE; -- effectivity_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE effectivity_requires_approval FOR (effectivity, cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( eff <* effectivity | (NOT (SIZEOF(QUERY ( ccda <* - cc_design_approval | (eff IN ccda.items) )) = 1)) )) = 0); - -END_RULE; -- effectivity_requires_approval - -*/ - gr = new Global_rule("unique_version_change_order_rule",s_config_control_design,"RULE unique_version_change_order_rule FOR (change);\n\nWHERE\n wr1: (SIZEOF(QUERY ( c <* change | (NOT unique_version_change_order(c.\n assigned_action)) )) = 0);\n\nEND_RULE; -- unique_version_change_order_rule\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE unique_version_change_order_rule FOR (change); - -WHERE - wr1: (SIZEOF(QUERY ( c <* change | (NOT unique_version_change_order(c. - assigned_action)) )) = 0); - -END_RULE; -- unique_version_change_order_rule - -*/ - gr = new Global_rule("dependent_instantiable_named_unit",s_config_control_design,"RULE dependent_instantiable_named_unit FOR (named_unit);\n\nWHERE\n wr1: (SIZEOF(QUERY ( nu <* named_unit | (NOT (SIZEOF(USEDIN(nu,'')) >= 1)) )) \n = 0);\n\nEND_RULE; -- dependent_instantiable_named_unit\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_named_unit FOR (named_unit); - -WHERE - wr1: (SIZEOF(QUERY ( nu <* named_unit | (NOT (SIZEOF(USEDIN(nu,'')) >= 1)) )) - = 0); - -END_RULE; -- dependent_instantiable_named_unit - -*/ - gr = new Global_rule("subtype_mandatory_product_definition_formation",s_config_control_design,"RULE subtype_mandatory_product_definition_formation FOR (\n product_definition_formation);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT ((\n 'CONFIG_CONTROL_DESIGN.' + \n 'PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE') IN TYPEOF(\n pdf))) )) = 0);\n\nEND_RULE; -- subtype_mandatory_product_definition_formation\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE subtype_mandatory_product_definition_formation FOR ( - product_definition_formation); - -WHERE - wr1: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (( - 'CONFIG_CONTROL_DESIGN.' + - 'PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE') IN TYPEOF( - pdf))) )) = 0); - -END_RULE; -- subtype_mandatory_product_definition_formation - -*/ - gr = new Global_rule("approval_requires_approval_person_organization",s_config_control_design,"RULE approval_requires_approval_person_organization FOR (approval, \n approval_person_organization);\n\nWHERE\n wr1: (SIZEOF(QUERY ( app <* approval | (NOT (SIZEOF(QUERY ( apo <* \n approval_person_organization | (app :=: apo.authorized_approval) )) \n >= 1)) )) = 0);\n\nEND_RULE; -- approval_requires_approval_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE approval_requires_approval_person_organization FOR (approval, - approval_person_organization); - -WHERE - wr1: (SIZEOF(QUERY ( app <* approval | (NOT (SIZEOF(QUERY ( apo <* - approval_person_organization | (app :=: apo.authorized_approval) )) - >= 1)) )) = 0); - -END_RULE; -- approval_requires_approval_person_organization - -*/ - gr = new Global_rule("approvals_are_assigned",s_config_control_design,"RULE approvals_are_assigned FOR (approval, approval_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( app <* approval | (NOT (SIZEOF(QUERY ( aa <* \n approval_assignment | (app :=: aa.assigned_approval) )) >= 1)) )) \n = 0);\n\nEND_RULE; -- approvals_are_assigned\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE approvals_are_assigned FOR (approval, approval_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( app <* approval | (NOT (SIZEOF(QUERY ( aa <* - approval_assignment | (app :=: aa.assigned_approval) )) >= 1)) )) - = 0); - -END_RULE; -- approvals_are_assigned - -*/ - gr = new Global_rule("start_work_requires_approval",s_config_control_design,"RULE start_work_requires_approval FOR (start_work, cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sw <* start_work | (NOT (SIZEOF(QUERY ( ccda <* \n cc_design_approval | (sw IN ccda.items) )) = 1)) )) = 0);\n\nEND_RULE; -- start_work_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE start_work_requires_approval FOR (start_work, cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( sw <* start_work | (NOT (SIZEOF(QUERY ( ccda <* - cc_design_approval | (sw IN ccda.items) )) = 1)) )) = 0); - -END_RULE; -- start_work_requires_approval - -*/ - gr = new Global_rule("configuration_item_requires_approval",s_config_control_design,"RULE configuration_item_requires_approval FOR (configuration_item, \n cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ci <* configuration_item | (NOT (SIZEOF(\n QUERY ( ccda <* cc_design_approval | (ci IN ccda.items) )) = 1)) )) \n = 0);\n\nEND_RULE; -- configuration_item_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE configuration_item_requires_approval FOR (configuration_item, - cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( ci <* configuration_item | (NOT (SIZEOF( - QUERY ( ccda <* cc_design_approval | (ci IN ccda.items) )) = 1)) )) - = 0); - -END_RULE; -- configuration_item_requires_approval - -*/ - gr = new Global_rule("contract_requires_person_organization",s_config_control_design,"RULE contract_requires_person_organization FOR (contract, \n cc_design_person_and_organization_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( c <* contract | (NOT (SIZEOF(QUERY ( ccdpoa <* \n cc_design_person_and_organization_assignment | (c IN ccdpoa.\n items) )) = 1)) )) = 0);\n\nEND_RULE; -- contract_requires_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE contract_requires_person_organization FOR (contract, - cc_design_person_and_organization_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( c <* contract | (NOT (SIZEOF(QUERY ( ccdpoa <* - cc_design_person_and_organization_assignment | (c IN ccdpoa. - items) )) = 1)) )) = 0); - -END_RULE; -- contract_requires_person_organization - -*/ - gr = new Global_rule("dependent_instantiable_date_time_role",s_config_control_design,"RULE dependent_instantiable_date_time_role FOR (date_time_role);\n\nWHERE\n wr1: (SIZEOF(QUERY ( dtr <* date_time_role | (NOT (SIZEOF(USEDIN(dtr,'')) \n >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_date_time_role\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_date_time_role FOR (date_time_role); - -WHERE - wr1: (SIZEOF(QUERY ( dtr <* date_time_role | (NOT (SIZEOF(USEDIN(dtr,'')) - >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_date_time_role - -*/ - gr = new Global_rule("restrict_product_category_value",s_config_control_design,"RULE restrict_product_category_value FOR (product_related_product_category);\n\nWHERE\n wr1: (SIZEOF(QUERY ( prpc <* product_related_product_category | (NOT (\n prpc.name IN ['assembly','detail','customer_furnished_equipment',\n 'inseparable_assembly','cast','coined','drawn','extruded',\n 'forged','formed','machined','molded','rolled','sheared'])) )) =\n 0);\n\nEND_RULE; -- restrict_product_category_value\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_product_category_value FOR (product_related_product_category); - -WHERE - wr1: (SIZEOF(QUERY ( prpc <* product_related_product_category | (NOT ( - prpc.name IN ['assembly','detail','customer_furnished_equipment', - 'inseparable_assembly','cast','coined','drawn','extruded', - 'forged','formed','machined','molded','rolled','sheared'])) )) = - 0); - -END_RULE; -- restrict_product_category_value - -*/ - gr = new Global_rule("start_work_requires_date_time",s_config_control_design,"RULE start_work_requires_date_time FOR (start_work, \n cc_design_date_and_time_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sw <* start_work | (NOT (SIZEOF(QUERY ( ccdta <* \n cc_design_date_and_time_assignment | ((sw IN ccdta.items) AND (\n ccdta.role.name = 'start_date')) )) = 1)) )) = 0);\n\nEND_RULE; -- start_work_requires_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE start_work_requires_date_time FOR (start_work, - cc_design_date_and_time_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( sw <* start_work | (NOT (SIZEOF(QUERY ( ccdta <* - cc_design_date_and_time_assignment | ((sw IN ccdta.items) AND ( - ccdta.role.name = 'start_date')) )) = 1)) )) = 0); - -END_RULE; -- start_work_requires_date_time - -*/ - gr = new Global_rule("product_requires_product_category",s_config_control_design,"RULE product_requires_product_category FOR (product, \n product_related_product_category);\n\nWHERE\n wr1: (SIZEOF(QUERY ( prod <* product | (NOT (SIZEOF(QUERY ( prpc <* \n product_related_product_category | ((prod IN prpc.products) AND \n (prpc.name IN ['assembly','inseparable_assembly','detail',\n 'customer_furnished_equipment'])) )) = 1)) )) = 0);\n\nEND_RULE; -- product_requires_product_category\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_requires_product_category FOR (product, - product_related_product_category); - -WHERE - wr1: (SIZEOF(QUERY ( prod <* product | (NOT (SIZEOF(QUERY ( prpc <* - product_related_product_category | ((prod IN prpc.products) AND - (prpc.name IN ['assembly','inseparable_assembly','detail', - 'customer_furnished_equipment'])) )) = 1)) )) = 0); - -END_RULE; -- product_requires_product_category - -*/ - gr = new Global_rule("dependent_instantiable_representation_item",s_config_control_design,"RULE dependent_instantiable_representation_item FOR (representation_item);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ri <* representation_item | (NOT (SIZEOF(USEDIN(ri,\n '')) >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_representation_item\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_representation_item FOR (representation_item); - -WHERE - wr1: (SIZEOF(QUERY ( ri <* representation_item | (NOT (SIZEOF(USEDIN(ri, - '')) >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_representation_item - -*/ - gr = new Global_rule("change_request_requires_person_organization",s_config_control_design,"RULE change_request_requires_person_organization FOR (change_request, \n cc_design_person_and_organization_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( cr <* change_request | (NOT (SIZEOF(\n QUERY ( ccpoa <* cc_design_person_and_organization_assignment | \n (cr IN ccpoa.items) )) >= 1)) )) = 0);\n\nEND_RULE; -- change_request_requires_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE change_request_requires_person_organization FOR (change_request, - cc_design_person_and_organization_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( cr <* change_request | (NOT (SIZEOF( - QUERY ( ccpoa <* cc_design_person_and_organization_assignment | - (cr IN ccpoa.items) )) >= 1)) )) = 0); - -END_RULE; -- change_request_requires_person_organization - -*/ - gr = new Global_rule("product_definition_requires_approval",s_config_control_design,"RULE product_definition_requires_approval FOR (product_definition, \n cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pd <* product_definition | (NOT (SIZEOF(\n QUERY ( ccda <* cc_design_approval | (pd IN ccda.items) )) = 1)) )) \n = 0);\n\nEND_RULE; -- product_definition_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_definition_requires_approval FOR (product_definition, - cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( pd <* product_definition | (NOT (SIZEOF( - QUERY ( ccda <* cc_design_approval | (pd IN ccda.items) )) = 1)) )) - = 0); - -END_RULE; -- product_definition_requires_approval - -*/ - gr = new Global_rule("subtype_mandatory_representation_context",s_config_control_design,"RULE subtype_mandatory_representation_context FOR (representation_context);\n\nWHERE\n wr1: (SIZEOF(QUERY ( rep_cntxt <* representation_context | (NOT (\n 'CONFIG_CONTROL_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN \n TYPEOF(rep_cntxt))) )) = 0);\n\nEND_RULE; -- subtype_mandatory_representation_context\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE subtype_mandatory_representation_context FOR (representation_context); - -WHERE - wr1: (SIZEOF(QUERY ( rep_cntxt <* representation_context | (NOT ( - 'CONFIG_CONTROL_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN - TYPEOF(rep_cntxt))) )) = 0); - -END_RULE; -- subtype_mandatory_representation_context - -*/ - gr = new Global_rule("security_classification_requires_date_time",s_config_control_design,"RULE security_classification_requires_date_time FOR (\n security_classification, cc_design_date_and_time_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sc <* security_classification | (NOT (SIZEOF(\n QUERY ( ccdta <* cc_design_date_and_time_assignment | ((sc IN \n ccdta.items) AND ('classification_date' = ccdta.role.name)) )) =\n 1)) )) = 0);\n\nEND_RULE; -- security_classification_requires_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE security_classification_requires_date_time FOR ( - security_classification, cc_design_date_and_time_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( sc <* security_classification | (NOT (SIZEOF( - QUERY ( ccdta <* cc_design_date_and_time_assignment | ((sc IN - ccdta.items) AND ('classification_date' = ccdta.role.name)) )) = - 1)) )) = 0); - -END_RULE; -- security_classification_requires_date_time - -*/ - gr = new Global_rule("security_classification_optional_date_time",s_config_control_design,"RULE security_classification_optional_date_time FOR (\n security_classification, cc_design_date_and_time_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sc <* security_classification | (NOT (SIZEOF(\n QUERY ( ccdta <* cc_design_date_and_time_assignment | ((sc IN \n ccdta.items) AND ('declassification_date' = ccdta.role.name)) )) \n <= 1)) )) = 0);\n\nEND_RULE; -- security_classification_optional_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE security_classification_optional_date_time FOR ( - security_classification, cc_design_date_and_time_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( sc <* security_classification | (NOT (SIZEOF( - QUERY ( ccdta <* cc_design_date_and_time_assignment | ((sc IN - ccdta.items) AND ('declassification_date' = ccdta.role.name)) )) - <= 1)) )) = 0); - -END_RULE; -- security_classification_optional_date_time - -*/ - gr = new Global_rule("as_required_quantity",s_config_control_design,"RULE as_required_quantity FOR (measure_with_unit);\n\nWHERE\n wr1: (SIZEOF(QUERY ( m <* measure_with_unit | ((\n 'CONFIG_CONTROL_DESIGN.DESCRIPTIVE_MEASURE' IN TYPEOF(m.\n value_component)) AND (NOT (m.value_component = 'as_required'))) )) \n = 0);\n\nEND_RULE; -- as_required_quantity\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE as_required_quantity FOR (measure_with_unit); - -WHERE - wr1: (SIZEOF(QUERY ( m <* measure_with_unit | (( - 'CONFIG_CONTROL_DESIGN.DESCRIPTIVE_MEASURE' IN TYPEOF(m. - value_component)) AND (NOT (m.value_component = 'as_required'))) )) - = 0); - -END_RULE; -- as_required_quantity - -*/ - gr = new Global_rule("start_request_requires_approval",s_config_control_design,"RULE start_request_requires_approval FOR (start_request, \n cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sr <* start_request | (NOT (SIZEOF(QUERY ( ccda <* \n cc_design_approval | (sr IN ccda.items) )) = 1)) )) = 0);\n\nEND_RULE; -- start_request_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE start_request_requires_approval FOR (start_request, - cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( sr <* start_request | (NOT (SIZEOF(QUERY ( ccda <* - cc_design_approval | (sr IN ccda.items) )) = 1)) )) = 0); - -END_RULE; -- start_request_requires_approval - -*/ - gr = new Global_rule("geometric_representation_item_3d",s_config_control_design,"RULE geometric_representation_item_3d FOR (geometric_representation_item);\n\nWHERE\n wr1: (SIZEOF(QUERY ( gri <* geometric_representation_item | (NOT ((\n dimension_of(gri) = 3) OR (SIZEOF(bag_to_set(USEDIN(gri,'')) - \n bag_to_set(USEDIN(gri,\n 'CONFIG_CONTROL_DESIGN.DEFINITIONAL_REPRESENTATION.ITEMS'))) = 0))) )) \n = 0);\n\nEND_RULE; -- geometric_representation_item_3d\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE geometric_representation_item_3d FOR (geometric_representation_item); - -WHERE - wr1: (SIZEOF(QUERY ( gri <* geometric_representation_item | (NOT (( - dimension_of(gri) = 3) OR (SIZEOF(bag_to_set(USEDIN(gri,'')) - - bag_to_set(USEDIN(gri, - 'CONFIG_CONTROL_DESIGN.DEFINITIONAL_REPRESENTATION.ITEMS'))) = 0))) )) - = 0); - -END_RULE; -- geometric_representation_item_3d - -*/ - gr = new Global_rule("application_context_requires_ap_definition",s_config_control_design,"RULE application_context_requires_ap_definition FOR (application_context, \n application_protocol_definition);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ac <* application_context | (NOT (SIZEOF(\n QUERY ( apd <* application_protocol_definition | ((ac :=: apd.\n application) AND (apd.application_interpreted_model_schema_name \n = 'config_control_design')) )) = 1)) )) = 0);\n\nEND_RULE; -- application_context_requires_ap_definition\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE application_context_requires_ap_definition FOR (application_context, - application_protocol_definition); - -WHERE - wr1: (SIZEOF(QUERY ( ac <* application_context | (NOT (SIZEOF( - QUERY ( apd <* application_protocol_definition | ((ac :=: apd. - application) AND (apd.application_interpreted_model_schema_name - = 'config_control_design')) )) = 1)) )) = 0); - -END_RULE; -- application_context_requires_ap_definition - -*/ - gr = new Global_rule("subtype_mandatory_representation",s_config_control_design,"RULE subtype_mandatory_representation FOR (representation);\n\nWHERE\n wr1: (SIZEOF(QUERY ( rep <* representation | (NOT (\n 'CONFIG_CONTROL_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF(rep))) )) \n = 0);\n\nEND_RULE; -- subtype_mandatory_representation\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE subtype_mandatory_representation FOR (representation); - -WHERE - wr1: (SIZEOF(QUERY ( rep <* representation | (NOT ( - 'CONFIG_CONTROL_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF(rep))) )) - = 0); - -END_RULE; -- subtype_mandatory_representation - -*/ - gr = new Global_rule("change_requires_date_time",s_config_control_design,"RULE change_requires_date_time FOR (change, \n cc_design_date_and_time_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( chg <* change | (NOT (SIZEOF(QUERY ( ccdta <* \n cc_design_date_and_time_assignment | ((chg IN ccdta.items) AND (\n ccdta.role.name = 'start_date')) )) = 1)) )) = 0);\n\nEND_RULE; -- change_requires_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE change_requires_date_time FOR (change, - cc_design_date_and_time_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( chg <* change | (NOT (SIZEOF(QUERY ( ccdta <* - cc_design_date_and_time_assignment | ((chg IN ccdta.items) AND ( - ccdta.role.name = 'start_date')) )) = 1)) )) = 0); - -END_RULE; -- change_requires_date_time - -*/ - gr = new Global_rule("dependent_instantiable_action_directive",s_config_control_design,"RULE dependent_instantiable_action_directive FOR (action_directive);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ad <* action_directive | (NOT (SIZEOF(USEDIN(ad,'')) \n >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_action_directive\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_action_directive FOR (action_directive); - -WHERE - wr1: (SIZEOF(QUERY ( ad <* action_directive | (NOT (SIZEOF(USEDIN(ad,'')) - >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_action_directive - -*/ - gr = new Global_rule("restrict_security_classification_level",s_config_control_design,"RULE restrict_security_classification_level FOR (\n security_classification_level);\n\nWHERE\n wr1: (SIZEOF(QUERY ( scl <* security_classification_level | (NOT (scl.\n name IN ['unclassified','classified','proprietary',\n 'confidential','secret','top_secret'])) )) = 0);\n\nEND_RULE; -- restrict_security_classification_level\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_security_classification_level FOR ( - security_classification_level); - -WHERE - wr1: (SIZEOF(QUERY ( scl <* security_classification_level | (NOT (scl. - name IN ['unclassified','classified','proprietary', - 'confidential','secret','top_secret'])) )) = 0); - -END_RULE; -- restrict_security_classification_level - -*/ - gr = new Global_rule("approval_requires_approval_date_time",s_config_control_design,"RULE approval_requires_approval_date_time FOR (approval, \n approval_date_time);\n\nWHERE\n wr1: (SIZEOF(QUERY ( app <* approval | (NOT (SIZEOF(QUERY ( adt <* \n approval_date_time | (app :=: adt.dated_approval) )) = 1)) )) = \n 0);\n\nEND_RULE; -- approval_requires_approval_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE approval_requires_approval_date_time FOR (approval, - approval_date_time); - -WHERE - wr1: (SIZEOF(QUERY ( app <* approval | (NOT (SIZEOF(QUERY ( adt <* - approval_date_time | (app :=: adt.dated_approval) )) = 1)) )) = - 0); - -END_RULE; -- approval_requires_approval_date_time - -*/ - gr = new Global_rule("subtype_mandatory_product_definition_usage",s_config_control_design,"RULE subtype_mandatory_product_definition_usage FOR (\n product_definition_usage);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pdu <* product_definition_usage | (NOT ((\n 'CONFIG_CONTROL_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE') IN \n TYPEOF(pdu))) )) = 0);\n\nEND_RULE; -- subtype_mandatory_product_definition_usage\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE subtype_mandatory_product_definition_usage FOR ( - product_definition_usage); - -WHERE - wr1: (SIZEOF(QUERY ( pdu <* product_definition_usage | (NOT (( - 'CONFIG_CONTROL_DESIGN.' + 'ASSEMBLY_COMPONENT_USAGE') IN - TYPEOF(pdu))) )) = 0); - -END_RULE; -- subtype_mandatory_product_definition_usage - -*/ - gr = new Global_rule("restrict_approval_status",s_config_control_design,"RULE restrict_approval_status FOR (approval_status);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ast <* approval_status | (NOT (ast.name IN [\n 'approved','not_yet_approved','disapproved','withdrawn'])) )) = \n 0);\n\nEND_RULE; -- restrict_approval_status\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_approval_status FOR (approval_status); - -WHERE - wr1: (SIZEOF(QUERY ( ast <* approval_status | (NOT (ast.name IN [ - 'approved','not_yet_approved','disapproved','withdrawn'])) )) = - 0); - -END_RULE; -- restrict_approval_status - -*/ - gr = new Global_rule("change_request_requires_date_time",s_config_control_design,"RULE change_request_requires_date_time FOR (change_request, \n cc_design_date_and_time_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( cr <* change_request | (NOT (SIZEOF(\n QUERY ( ccdta <* cc_design_date_and_time_assignment | (cr IN \n ccdta.items) )) = 1)) )) = 0);\n\nEND_RULE; -- change_request_requires_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE change_request_requires_date_time FOR (change_request, - cc_design_date_and_time_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( cr <* change_request | (NOT (SIZEOF( - QUERY ( ccdta <* cc_design_date_and_time_assignment | (cr IN - ccdta.items) )) = 1)) )) = 0); - -END_RULE; -- change_request_requires_date_time - -*/ - gr = new Global_rule("dependent_instantiable_contract_type",s_config_control_design,"RULE dependent_instantiable_contract_type FOR (contract_type);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ct <* contract_type | (NOT (SIZEOF(USEDIN(ct,'')) \n >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_contract_type\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_contract_type FOR (contract_type); - -WHERE - wr1: (SIZEOF(QUERY ( ct <* contract_type | (NOT (SIZEOF(USEDIN(ct,'')) - >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_contract_type - -*/ - gr = new Global_rule("contract_requires_approval",s_config_control_design,"RULE contract_requires_approval FOR (contract, cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( c <* contract | (NOT (SIZEOF(QUERY ( ccda <* \n cc_design_approval | (c IN ccda.items) )) = 1)) )) = 0);\n\nEND_RULE; -- contract_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE contract_requires_approval FOR (contract, cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( c <* contract | (NOT (SIZEOF(QUERY ( ccda <* - cc_design_approval | (c IN ccda.items) )) = 1)) )) = 0); - -END_RULE; -- contract_requires_approval - -*/ - gr = new Global_rule("restrict_document_type",s_config_control_design,"RULE restrict_document_type FOR (document_type);\n\nWHERE\n wr1: (SIZEOF(QUERY ( dt <* document_type | (NOT (dt.product_data_type IN\n ['material_specification','process_specification',\n 'design_specification','surface_finish_specification',\n 'cad_filename','drawing'])) )) = 0);\n\nEND_RULE; -- restrict_document_type\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_document_type FOR (document_type); - -WHERE - wr1: (SIZEOF(QUERY ( dt <* document_type | (NOT (dt.product_data_type IN - ['material_specification','process_specification', - 'design_specification','surface_finish_specification', - 'cad_filename','drawing'])) )) = 0); - -END_RULE; -- restrict_document_type - -*/ - gr = new Global_rule("dependent_instantiable_certification_type",s_config_control_design,"RULE dependent_instantiable_certification_type FOR (certification_type);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ct <* certification_type | (NOT (SIZEOF(USEDIN(ct,\n '')) >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_certification_type\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_certification_type FOR (certification_type); - -WHERE - wr1: (SIZEOF(QUERY ( ct <* certification_type | (NOT (SIZEOF(USEDIN(ct, - '')) >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_certification_type - -*/ - gr = new Global_rule("design_context_for_property",s_config_control_design,"RULE design_context_for_property FOR (product_definition);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pd <* product_definition | ((SIZEOF(USEDIN(pd,\n 'CONFIG_CONTROL_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') + \n QUERY ( pdr <* USEDIN(pd,'CONFIG_CONTROL_DESIGN.' + \n 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | \n (SIZEOF(USEDIN(pdr,'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION.' \n + 'DEFINITION')) >= 1) )) >= 1) AND (NOT (\n 'CONFIG_CONTROL_DESIGN.DESIGN_CONTEXT' IN TYPEOF(pd.\n frame_of_reference)))) )) = 0);\n\nEND_RULE; -- design_context_for_property\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE design_context_for_property FOR (product_definition); - -WHERE - wr1: (SIZEOF(QUERY ( pd <* product_definition | ((SIZEOF(USEDIN(pd, - 'CONFIG_CONTROL_DESIGN.' + 'PROPERTY_DEFINITION.DEFINITION') + - QUERY ( pdr <* USEDIN(pd,'CONFIG_CONTROL_DESIGN.' + - 'PRODUCT_DEFINITION_RELATIONSHIP.RELATED_PRODUCT_DEFINITION') | - (SIZEOF(USEDIN(pdr,'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION.' - + 'DEFINITION')) >= 1) )) >= 1) AND (NOT ( - 'CONFIG_CONTROL_DESIGN.DESIGN_CONTEXT' IN TYPEOF(pd. - frame_of_reference)))) )) = 0); - -END_RULE; -- design_context_for_property - -*/ - gr = new Global_rule("product_version_requires_person_organization",s_config_control_design,"RULE product_version_requires_person_organization FOR (\n product_definition_formation, \n cc_design_person_and_organization_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (SIZEOF(\n QUERY ( ccdpoa <* cc_design_person_and_organization_assignment\n | ((pdf IN ccdpoa.items) AND (ccdpoa.role.name = 'creator')) )) \n = 1)) )) = 0);\n wr2: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (SIZEOF(\n QUERY ( ccdpoa <* cc_design_person_and_organization_assignment\n | ((pdf IN ccdpoa.items) AND (ccdpoa.role.name IN [\n 'design_supplier','part_supplier'])) )) >= 1)) )) = 0);\n\nEND_RULE; -- product_version_requires_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_version_requires_person_organization FOR ( - product_definition_formation, - cc_design_person_and_organization_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (SIZEOF( - QUERY ( ccdpoa <* cc_design_person_and_organization_assignment - | ((pdf IN ccdpoa.items) AND (ccdpoa.role.name = 'creator')) )) - = 1)) )) = 0); - wr2: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (SIZEOF( - QUERY ( ccdpoa <* cc_design_person_and_organization_assignment - | ((pdf IN ccdpoa.items) AND (ccdpoa.role.name IN [ - 'design_supplier','part_supplier'])) )) >= 1)) )) = 0); - -END_RULE; -- product_version_requires_person_organization - -*/ - gr = new Global_rule("dependent_instantiable_approval_status",s_config_control_design,"RULE dependent_instantiable_approval_status FOR (approval_status);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ast <* approval_status | (NOT (SIZEOF(USEDIN(ast,'')) \n >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_approval_status\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_approval_status FOR (approval_status); - -WHERE - wr1: (SIZEOF(QUERY ( ast <* approval_status | (NOT (SIZEOF(USEDIN(ast,'')) - >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_approval_status - -*/ - gr = new Global_rule("subtype_mandatory_shape_representation",s_config_control_design,"RULE subtype_mandatory_shape_representation FOR (shape_representation);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sr <* shape_representation | (NOT ((SIZEOF([\n 'CONFIG_CONTROL_DESIGN.' + 'ADVANCED_BREP_SHAPE_REPRESENTATION',\n 'CONFIG_CONTROL_DESIGN.FACETED_BREP_SHAPE_REPRESENTATION',\n 'CONFIG_CONTROL_DESIGN.MANIFOLD_SURFACE_SHAPE_REPRESENTATION','CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION','CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION',\n 'CONFIG_CONTROL_DESIGN.' + \n 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION',\n 'CONFIG_CONTROL_DESIGN.' + \n 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION'] * \n TYPEOF(sr)) = 1) OR (SIZEOF(QUERY ( it <* sr\\representation.\n items | (NOT ('CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D' IN \n TYPEOF(it))) )) = 0) OR (SIZEOF(QUERY ( sdr <* QUERY ( pdr <* \n USEDIN(sr,\n 'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.' + \n 'USED_REPRESENTATION') | (\n 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN \n TYPEOF(pdr)) ) | (NOT (SIZEOF([\n 'CONFIG_CONTROL_DESIGN.SHAPE_ASPECT',\n 'CONFIG_CONTROL_DESIGN.SHAPE_ASPECT_RELATIONSHIP'] * TYPEOF(sdr.\n definition)) = 1)) )) = 0))) )) = 0);\n\nEND_RULE; -- subtype_mandatory_shape_representation\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE subtype_mandatory_shape_representation FOR (shape_representation); - -WHERE - wr1: (SIZEOF(QUERY ( sr <* shape_representation | (NOT ((SIZEOF([ - 'CONFIG_CONTROL_DESIGN.' + 'ADVANCED_BREP_SHAPE_REPRESENTATION', - 'CONFIG_CONTROL_DESIGN.FACETED_BREP_SHAPE_REPRESENTATION', - 'CONFIG_CONTROL_DESIGN.MANIFOLD_SURFACE_SHAPE_REPRESENTATION','CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION','CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_SHAPE_REPRESENTATION', - 'CONFIG_CONTROL_DESIGN.' + - 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION', - 'CONFIG_CONTROL_DESIGN.' + - 'GEOMETRICALLY_BOUNDED_WIREFRAME_SHAPE_REPRESENTATION'] * - TYPEOF(sr)) = 1) OR (SIZEOF(QUERY ( it <* sr\representation. - items | (NOT ('CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D' IN - TYPEOF(it))) )) = 0) OR (SIZEOF(QUERY ( sdr <* QUERY ( pdr <* - USEDIN(sr, - 'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION') | ( - 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)) ) | (NOT (SIZEOF([ - 'CONFIG_CONTROL_DESIGN.SHAPE_ASPECT', - 'CONFIG_CONTROL_DESIGN.SHAPE_ASPECT_RELATIONSHIP'] * TYPEOF(sdr. - definition)) = 1)) )) = 0))) )) = 0); - -END_RULE; -- subtype_mandatory_shape_representation - -*/ - gr = new Global_rule("dependent_instantiable_date",s_config_control_design,"RULE dependent_instantiable_date FOR (date);\n\nWHERE\n wr1: (SIZEOF(QUERY ( dt <* date | (NOT (SIZEOF(USEDIN(dt,'')) >= 1)) )) \n = 0);\n\nEND_RULE; -- dependent_instantiable_date\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_date FOR (date); - -WHERE - wr1: (SIZEOF(QUERY ( dt <* date | (NOT (SIZEOF(USEDIN(dt,'')) >= 1)) )) - = 0); - -END_RULE; -- dependent_instantiable_date - -*/ - gr = new Global_rule("configuration_item_requires_person_organization",s_config_control_design,"RULE configuration_item_requires_person_organization FOR (\n configuration_item, cc_design_person_and_organization_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ci <* configuration_item | (NOT (SIZEOF(\n QUERY ( ccdpoa <* cc_design_person_and_organization_assignment\n | (ci IN ccdpoa.items) )) = 1)) )) = 0);\n\nEND_RULE; -- configuration_item_requires_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE configuration_item_requires_person_organization FOR ( - configuration_item, cc_design_person_and_organization_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( ci <* configuration_item | (NOT (SIZEOF( - QUERY ( ccdpoa <* cc_design_person_and_organization_assignment - | (ci IN ccdpoa.items) )) = 1)) )) = 0); - -END_RULE; -- configuration_item_requires_person_organization - -*/ - gr = new Global_rule("dependent_instantiable_document_type",s_config_control_design,"RULE dependent_instantiable_document_type FOR (document_type);\n\nWHERE\n wr1: (SIZEOF(QUERY ( dt <* document_type | (NOT (SIZEOF(USEDIN(dt,'')) \n >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_document_type\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_document_type FOR (document_type); - -WHERE - wr1: (SIZEOF(QUERY ( dt <* document_type | (NOT (SIZEOF(USEDIN(dt,'')) - >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_document_type - -*/ - gr = new Global_rule("restrict_contract_type",s_config_control_design,"RULE restrict_contract_type FOR (contract_type);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ct <* contract_type | (NOT (ct.description IN [\n 'fixed_price','cost_plus'])) )) = 0);\n\nEND_RULE; -- restrict_contract_type\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_contract_type FOR (contract_type); - -WHERE - wr1: (SIZEOF(QUERY ( ct <* contract_type | (NOT (ct.description IN [ - 'fixed_price','cost_plus'])) )) = 0); - -END_RULE; -- restrict_contract_type - -*/ - gr = new Global_rule("subtype_mandatory_product_context",s_config_control_design,"RULE subtype_mandatory_product_context FOR (product_context);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pc <* product_context | (NOT (\n 'CONFIG_CONTROL_DESIGN.MECHANICAL_CONTEXT' IN TYPEOF(pc))) )) = \n 0);\n\nEND_RULE; -- subtype_mandatory_product_context\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE subtype_mandatory_product_context FOR (product_context); - -WHERE - wr1: (SIZEOF(QUERY ( pc <* product_context | (NOT ( - 'CONFIG_CONTROL_DESIGN.MECHANICAL_CONTEXT' IN TYPEOF(pc))) )) = - 0); - -END_RULE; -- subtype_mandatory_product_context - -*/ - gr = new Global_rule("dependent_instantiable_parametric_representation_context",s_config_control_design,"RULE dependent_instantiable_parametric_representation_context FOR (\n parametric_representation_context);\n\nWHERE\n wr1: (SIZEOF(QUERY ( prc <* parametric_representation_context | (NOT (\n SIZEOF(USEDIN(prc,'')) >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_parametric_representation_context\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_parametric_representation_context FOR ( - parametric_representation_context); - -WHERE - wr1: (SIZEOF(QUERY ( prc <* parametric_representation_context | (NOT ( - SIZEOF(USEDIN(prc,'')) >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_parametric_representation_context - -*/ - gr = new Global_rule("security_classification_requires_person_organization",s_config_control_design,"RULE security_classification_requires_person_organization FOR (\n security_classification, \n cc_design_person_and_organization_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sc <* security_classification | (NOT (SIZEOF(\n QUERY ( ccdpoa <* cc_design_person_and_organization_assignment\n | (sc IN ccdpoa.items) )) = 1)) )) = 0);\n\nEND_RULE; -- security_classification_requires_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE security_classification_requires_person_organization FOR ( - security_classification, - cc_design_person_and_organization_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( sc <* security_classification | (NOT (SIZEOF( - QUERY ( ccdpoa <* cc_design_person_and_organization_assignment - | (sc IN ccdpoa.items) )) = 1)) )) = 0); - -END_RULE; -- security_classification_requires_person_organization - -*/ - gr = new Global_rule("dependent_instantiable_shape_representation",s_config_control_design,"RULE dependent_instantiable_shape_representation FOR (shape_representation);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sr <* shape_representation | (NOT (SIZEOF(USEDIN(sr,\n '')) >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_shape_representation\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_shape_representation FOR (shape_representation); - -WHERE - wr1: (SIZEOF(QUERY ( sr <* shape_representation | (NOT (SIZEOF(USEDIN(sr, - '')) >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_shape_representation - -*/ - gr = new Global_rule("restrict_action_request_status",s_config_control_design,"RULE restrict_action_request_status FOR (action_request_status);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ars <* action_request_status | (NOT (ars.status IN \n ['proposed','in_work','issued','hold'])) )) = 0);\n\nEND_RULE; -- restrict_action_request_status\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_action_request_status FOR (action_request_status); - -WHERE - wr1: (SIZEOF(QUERY ( ars <* action_request_status | (NOT (ars.status IN - ['proposed','in_work','issued','hold'])) )) = 0); - -END_RULE; -- restrict_action_request_status - -*/ - gr = new Global_rule("restrict_certification_type",s_config_control_design,"RULE restrict_certification_type FOR (certification_type);\n\nWHERE\n wr1: (SIZEOF(QUERY ( ct <* certification_type | (NOT (ct.description IN \n ['design_supplier','part_supplier'])) )) = 0);\n\nEND_RULE; -- restrict_certification_type\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_certification_type FOR (certification_type); - -WHERE - wr1: (SIZEOF(QUERY ( ct <* certification_type | (NOT (ct.description IN - ['design_supplier','part_supplier'])) )) = 0); - -END_RULE; -- restrict_certification_type - -*/ - gr = new Global_rule("subtype_mandatory_action",s_config_control_design,"RULE subtype_mandatory_action FOR (action);\n\nWHERE\n wr1: (SIZEOF(QUERY ( act <* action | (NOT (\n 'CONFIG_CONTROL_DESIGN.DIRECTED_ACTION' IN TYPEOF(act))) )) = 0);\n\nEND_RULE; -- subtype_mandatory_action\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE subtype_mandatory_action FOR (action); - -WHERE - wr1: (SIZEOF(QUERY ( act <* action | (NOT ( - 'CONFIG_CONTROL_DESIGN.DIRECTED_ACTION' IN TYPEOF(act))) )) = 0); - -END_RULE; -- subtype_mandatory_action - -*/ - gr = new Global_rule("product_requires_person_organization",s_config_control_design,"RULE product_requires_person_organization FOR (product, \n cc_design_person_and_organization_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( prod <* product | (NOT (SIZEOF(QUERY ( ccdpoa <* \n cc_design_person_and_organization_assignment | (prod IN ccdpoa.\n items) )) = 1)) )) = 0);\n\nEND_RULE; -- product_requires_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_requires_person_organization FOR (product, - cc_design_person_and_organization_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( prod <* product | (NOT (SIZEOF(QUERY ( ccdpoa <* - cc_design_person_and_organization_assignment | (prod IN ccdpoa. - items) )) = 1)) )) = 0); - -END_RULE; -- product_requires_person_organization - -*/ - gr = new Global_rule("product_version_requires_security_classification",s_config_control_design,"RULE product_version_requires_security_classification FOR (\n product_definition_formation, cc_design_security_classification);\n\nWHERE\n wr1: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (SIZEOF(\n QUERY ( ccdsc <* cc_design_security_classification | (pdf IN \n ccdsc.items) )) = 1)) )) = 0);\n\nEND_RULE; -- product_version_requires_security_classification\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE product_version_requires_security_classification FOR ( - product_definition_formation, cc_design_security_classification); - -WHERE - wr1: (SIZEOF(QUERY ( pdf <* product_definition_formation | (NOT (SIZEOF( - QUERY ( ccdsc <* cc_design_security_classification | (pdf IN - ccdsc.items) )) = 1)) )) = 0); - -END_RULE; -- product_version_requires_security_classification - -*/ - gr = new Global_rule("document_to_product_definition",s_config_control_design,"RULE document_to_product_definition FOR (cc_design_specification_reference, \n product_definition);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sp <* cc_design_specification_reference | (NOT ((((\n 'CONFIG_CONTROL_DESIGN.DOCUMENT_RELATIONSHIP.' + \n 'RELATING_DOCUMENT') IN ROLESOF(sp\\document_reference.\n assigned_document)) AND (SIZEOF(QUERY ( it <* sp.items | (NOT (\n 'CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(it))) )) = \n 0)) OR (NOT (('CONFIG_CONTROL_DESIGN.DOCUMENT_RELATIONSHIP.' + \n 'RELATING_DOCUMENT') IN ROLESOF(sp\\document_reference.\n assigned_document))))) )) = 0);\n\nEND_RULE; -- document_to_product_definition\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE document_to_product_definition FOR (cc_design_specification_reference, - product_definition); - -WHERE - wr1: (SIZEOF(QUERY ( sp <* cc_design_specification_reference | (NOT (((( - 'CONFIG_CONTROL_DESIGN.DOCUMENT_RELATIONSHIP.' + - 'RELATING_DOCUMENT') IN ROLESOF(sp\document_reference. - assigned_document)) AND (SIZEOF(QUERY ( it <* sp.items | (NOT ( - 'CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION' IN TYPEOF(it))) )) = - 0)) OR (NOT (('CONFIG_CONTROL_DESIGN.DOCUMENT_RELATIONSHIP.' + - 'RELATING_DOCUMENT') IN ROLESOF(sp\document_reference. - assigned_document))))) )) = 0); - -END_RULE; -- document_to_product_definition - -*/ - gr = new Global_rule("start_request_requires_date_time",s_config_control_design,"RULE start_request_requires_date_time FOR (start_request, \n cc_design_date_and_time_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sr <* start_request | (NOT (SIZEOF(\n QUERY ( ccdta <* cc_design_date_and_time_assignment | (sr IN \n ccdta.items) )) = 1)) )) = 0);\n\nEND_RULE; -- start_request_requires_date_time\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE start_request_requires_date_time FOR (start_request, - cc_design_date_and_time_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( sr <* start_request | (NOT (SIZEOF( - QUERY ( ccdta <* cc_design_date_and_time_assignment | (sr IN - ccdta.items) )) = 1)) )) = 0); - -END_RULE; -- start_request_requires_date_time - -*/ - gr = new Global_rule("dependent_instantiable_security_classification_level",s_config_control_design,"RULE dependent_instantiable_security_classification_level FOR (\n security_classification_level);\n\nWHERE\n wr1: (SIZEOF(QUERY ( scl <* security_classification_level | (NOT (\n SIZEOF(USEDIN(scl,'')) >= 1)) )) = 0);\n\nEND_RULE; -- dependent_instantiable_security_classification_level\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE dependent_instantiable_security_classification_level FOR ( - security_classification_level); - -WHERE - wr1: (SIZEOF(QUERY ( scl <* security_classification_level | (NOT ( - SIZEOF(USEDIN(scl,'')) >= 1)) )) = 0); - -END_RULE; -- dependent_instantiable_security_classification_level - -*/ - gr = new Global_rule("global_unit_assignment",s_config_control_design,"RULE global_unit_assignment FOR (global_unit_assigned_context);\n\nWHERE\n wr1: (SIZEOF(QUERY ( guac <* global_unit_assigned_context | (NOT (\n SIZEOF(guac.units) = 3)) )) = 0);\n wr2: (SIZEOF(QUERY ( guac <* global_unit_assigned_context | (NOT ((\n SIZEOF(QUERY ( u <* guac.units | (\n 'CONFIG_CONTROL_DESIGN.LENGTH_UNIT' IN TYPEOF(u)) )) = 1) AND (\n SIZEOF(QUERY ( u <* guac.units | (\n 'CONFIG_CONTROL_DESIGN.PLANE_ANGLE_UNIT' IN TYPEOF(u)) )) = 1) \n AND (SIZEOF(QUERY ( u <* guac.units | (\n 'CONFIG_CONTROL_DESIGN.SOLID_ANGLE_UNIT' IN TYPEOF(u)) )) = 1))) )) \n = 0);\n\nEND_RULE; -- global_unit_assignment\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE global_unit_assignment FOR (global_unit_assigned_context); - -WHERE - wr1: (SIZEOF(QUERY ( guac <* global_unit_assigned_context | (NOT ( - SIZEOF(guac.units) = 3)) )) = 0); - wr2: (SIZEOF(QUERY ( guac <* global_unit_assigned_context | (NOT (( - SIZEOF(QUERY ( u <* guac.units | ( - 'CONFIG_CONTROL_DESIGN.LENGTH_UNIT' IN TYPEOF(u)) )) = 1) AND ( - SIZEOF(QUERY ( u <* guac.units | ( - 'CONFIG_CONTROL_DESIGN.PLANE_ANGLE_UNIT' IN TYPEOF(u)) )) = 1) - AND (SIZEOF(QUERY ( u <* guac.units | ( - 'CONFIG_CONTROL_DESIGN.SOLID_ANGLE_UNIT' IN TYPEOF(u)) )) = 1))) )) - = 0); - -END_RULE; -- global_unit_assignment - -*/ - gr = new Global_rule("restrict_person_organization_role",s_config_control_design,"RULE restrict_person_organization_role FOR (person_and_organization_role);\n\nWHERE\n wr1: (SIZEOF(QUERY ( por <* person_and_organization_role | (NOT (por.\n name IN ['request_recipient','initiator','part_supplier',\n 'design_supplier','configuration_manager','contractor',\n 'classification_officer','creator','design_owner'])) )) = 0);\n\nEND_RULE; -- restrict_person_organization_role\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE restrict_person_organization_role FOR (person_and_organization_role); - -WHERE - wr1: (SIZEOF(QUERY ( por <* person_and_organization_role | (NOT (por. - name IN ['request_recipient','initiator','part_supplier', - 'design_supplier','configuration_manager','contractor', - 'classification_officer','creator','design_owner'])) )) = 0); - -END_RULE; -- restrict_person_organization_role - -*/ - gr = new Global_rule("coordinated_assembly_and_shape",s_config_control_design,"RULE coordinated_assembly_and_shape FOR (next_assembly_usage_occurrence);\n\nWHERE\n wr1: (SIZEOF(QUERY ( nauo <* next_assembly_usage_occurrence | (NOT \n assembly_shape_is_defined(nauo)) )) = 0);\n\nEND_RULE; -- coordinated_assembly_and_shape\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE coordinated_assembly_and_shape FOR (next_assembly_usage_occurrence); - -WHERE - wr1: (SIZEOF(QUERY ( nauo <* next_assembly_usage_occurrence | (NOT - assembly_shape_is_defined(nauo)) )) = 0); - -END_RULE; -- coordinated_assembly_and_shape - -*/ - gr = new Global_rule("start_request_requires_person_organization",s_config_control_design,"RULE start_request_requires_person_organization FOR (start_request, \n cc_design_person_and_organization_assignment);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sr <* start_request | (NOT (SIZEOF(\n QUERY ( ccdpoa <* cc_design_person_and_organization_assignment\n | (sr IN ccdpoa.items) )) >= 1)) )) = 0);\n\nEND_RULE; -- start_request_requires_person_organization\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE start_request_requires_person_organization FOR (start_request, - cc_design_person_and_organization_assignment); - -WHERE - wr1: (SIZEOF(QUERY ( sr <* start_request | (NOT (SIZEOF( - QUERY ( ccdpoa <* cc_design_person_and_organization_assignment - | (sr IN ccdpoa.items) )) >= 1)) )) = 0); - -END_RULE; -- start_request_requires_person_organization - -*/ - gr = new Global_rule("no_shape_for_make_from",s_config_control_design,"RULE no_shape_for_make_from FOR (design_make_from_relationship);\n\nWHERE\n wr1: (SIZEOF(QUERY ( dmfr <* design_make_from_relationship | (NOT (\n SIZEOF(QUERY ( pd <* USEDIN(dmfr,'CONFIG_CONTROL_DESIGN.' + \n 'PROPERTY_DEFINITION.DEFINITION') | (\n 'CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) )) \n = 0)) )) = 0);\n\nEND_RULE; -- no_shape_for_make_from\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE no_shape_for_make_from FOR (design_make_from_relationship); - -WHERE - wr1: (SIZEOF(QUERY ( dmfr <* design_make_from_relationship | (NOT ( - SIZEOF(QUERY ( pd <* USEDIN(dmfr,'CONFIG_CONTROL_DESIGN.' + - 'PROPERTY_DEFINITION.DEFINITION') | ( - 'CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION_SHAPE' IN TYPEOF(pd)) )) - = 0)) )) = 0); - -END_RULE; -- no_shape_for_make_from - -*/ - gr = new Global_rule("security_classification_requires_approval",s_config_control_design,"RULE security_classification_requires_approval FOR (\n security_classification, cc_design_approval);\n\nWHERE\n wr1: (SIZEOF(QUERY ( sc <* security_classification | (NOT (SIZEOF(\n QUERY ( ccda <* cc_design_approval | (sc IN ccda.items) )) = 1)) )) \n = 0);\n\nEND_RULE; -- security_classification_requires_approval\n"); - s_config_control_design->AddGlobal_rule(gr); -/* -RULE security_classification_requires_approval FOR ( - security_classification, cc_design_approval); - -WHERE - wr1: (SIZEOF(QUERY ( sc <* security_classification | (NOT (SIZEOF( - QUERY ( ccda <* cc_design_approval | (sc IN ccda.items) )) = 1)) )) - = 0); - -END_RULE; -- security_classification_requires_approval - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION build_2axes(\n ref_direction: direction\n ): LIST [2:2] OF direction;\n\n LOCAL\n u : LIST [2:2] OF direction;\n END_LOCAL;\n u[1] := NVL(normalise(ref_direction),direction([1,0]));\n u[2] := orthogonal_complement(u[1]);\n RETURN(u);\n\nEND_FUNCTION; -- build_2axes\n"); -#endif -/* -FUNCTION build_2axes( - ref_direction: direction - ): LIST [2:2] OF direction; - - LOCAL - u : LIST [2:2] OF direction; - END_LOCAL; - u[1] := NVL(normalise(ref_direction),direction([1,0])); - u[2] := orthogonal_complement(u[1]); - RETURN(u); - -END_FUNCTION; -- build_2axes - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION item_in_context(\n item: representation_item;\n cntxt: representation_context\n ): BOOLEAN;\n\n LOCAL\n i : INTEGER;\n y : BAG OF representation_item;\n END_LOCAL;\n IF SIZEOF(USEDIN(item,'CONFIG_CONTROL_DESIGN.REPRESENTATION.ITEMS') * \n cntxt.representations_in_context) > 0 THEN\n RETURN(TRUE);\n ELSE\n y := QUERY ( z <* USEDIN(item,'') | (\n 'CONFIG_CONTROL_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(z)) );\n IF SIZEOF(y) > 0 THEN\n REPEAT i := 1 TO HIINDEX(y) BY 1;\n IF item_in_context(y[i],cntxt) THEN\n RETURN(TRUE);\n END_IF;\n END_REPEAT;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- item_in_context\n"); -#endif -/* -FUNCTION item_in_context( - item: representation_item; - cntxt: representation_context - ): BOOLEAN; - - LOCAL - i : INTEGER; - y : BAG OF representation_item; - END_LOCAL; - IF SIZEOF(USEDIN(item,'CONFIG_CONTROL_DESIGN.REPRESENTATION.ITEMS') * - cntxt.representations_in_context) > 0 THEN - RETURN(TRUE); - ELSE - y := QUERY ( z <* USEDIN(item,'') | ( - 'CONFIG_CONTROL_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(z)) ); - IF SIZEOF(y) > 0 THEN - REPEAT i := 1 TO HIINDEX(y) BY 1; - IF item_in_context(y[i],cntxt) THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- item_in_context - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION basis_surface_check(\n surf: surface;\n schema_name: STRING\n ): BOOLEAN;\n IF SIZEOF([schema_name + '.B_SPLINE_SURFACE',schema_name + \n '.ELEMENTARY_SURFACE'] * TYPEOF(surf)) = 1 THEN\n RETURN(TRUE);\n ELSE\n IF (schema_name + '.SWEPT_SURFACE') IN TYPEOF(surf) THEN\n RETURN(basis_curve_check(surf\\swept_surface.swept_curve,schema_name));\n ELSE\n IF (schema_name + '.OFFSET_SURFACE') IN TYPEOF(surf) THEN\n RETURN(basis_surface_check(surf\\offset_surface.basis_surface,\n schema_name));\n ELSE\n IF (schema_name + '.SURFACE REPLICA') IN TYPEOF(surf) THEN\n RETURN(basis_surface_check(surf\\surface_replica.parent_surface,\n schema_name));\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- basis_surface_check\n"); -#endif -/* -FUNCTION basis_surface_check( - surf: surface; - schema_name: STRING - ): BOOLEAN; - IF SIZEOF([schema_name + '.B_SPLINE_SURFACE',schema_name + - '.ELEMENTARY_SURFACE'] * TYPEOF(surf)) = 1 THEN - RETURN(TRUE); - ELSE - IF (schema_name + '.SWEPT_SURFACE') IN TYPEOF(surf) THEN - RETURN(basis_curve_check(surf\swept_surface.swept_curve,schema_name)); - ELSE - IF (schema_name + '.OFFSET_SURFACE') IN TYPEOF(surf) THEN - RETURN(basis_surface_check(surf\offset_surface.basis_surface, - schema_name)); - ELSE - IF (schema_name + '.SURFACE REPLICA') IN TYPEOF(surf) THEN - RETURN(basis_surface_check(surf\surface_replica.parent_surface, - schema_name)); - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- basis_surface_check - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION gbsf_check_point(\n pnt: point;\n schema_name: STRING\n ): BOOLEAN;\n IF NOT ((schema_name + '.POINT') IN TYPEOF(pnt)) THEN\n RETURN(TRUE);\n END_IF;\n IF (schema_name + '.CARTESIAN_POINT') IN TYPEOF(pnt) THEN\n RETURN(TRUE);\n ELSE\n IF (schema_name + '.POINT_ON_CURVE') IN TYPEOF(pnt) THEN\n RETURN(gbsf_check_curve(pnt\\point_on_curve.basis_curve,schema_name));\n ELSE\n IF (schema_name + '.POINT_ON_SURFACE') IN TYPEOF(pnt) THEN\n RETURN(gbsf_check_surface(pnt\\point_on_surface.basis_surface,\n schema_name));\n ELSE\n IF (schema_name + '.DEGENERATE_PCURVE') IN TYPEOF(pnt) THEN\n RETURN(gbsf_check_curve(pnt\\degenerate_pcurve.reference_to_curve\n \\representation.items[1],schema_name) AND gbsf_check_surface(\n pnt\\degenerate_pcurve.basis_surface,schema_name));\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- gbsf_check_point\n"); -#endif -/* -FUNCTION gbsf_check_point( - pnt: point; - schema_name: STRING - ): BOOLEAN; - IF NOT ((schema_name + '.POINT') IN TYPEOF(pnt)) THEN - RETURN(TRUE); - END_IF; - IF (schema_name + '.CARTESIAN_POINT') IN TYPEOF(pnt) THEN - RETURN(TRUE); - ELSE - IF (schema_name + '.POINT_ON_CURVE') IN TYPEOF(pnt) THEN - RETURN(gbsf_check_curve(pnt\point_on_curve.basis_curve,schema_name)); - ELSE - IF (schema_name + '.POINT_ON_SURFACE') IN TYPEOF(pnt) THEN - RETURN(gbsf_check_surface(pnt\point_on_surface.basis_surface, - schema_name)); - ELSE - IF (schema_name + '.DEGENERATE_PCURVE') IN TYPEOF(pnt) THEN - RETURN(gbsf_check_curve(pnt\degenerate_pcurve.reference_to_curve - \representation.items[1],schema_name) AND gbsf_check_surface( - pnt\degenerate_pcurve.basis_surface,schema_name)); - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- gbsf_check_point - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION build_axes(\n axis, ref_direction: direction\n ): LIST [3:3] OF direction;\n\n LOCAL\n u : LIST [3:3] OF direction;\n END_LOCAL;\n u[3] := NVL(normalise(axis),direction([0,0,1]));\n u[1] := first_proj_axis(u[3],ref_direction);\n u[2] := normalise(cross_product(u[3],u[1])).orientation;\n RETURN(u);\n\nEND_FUNCTION; -- build_axes\n"); -#endif -/* -FUNCTION build_axes( - axis, ref_direction: direction - ): LIST [3:3] OF direction; - - LOCAL - u : LIST [3:3] OF direction; - END_LOCAL; - u[3] := NVL(normalise(axis),direction([0,0,1])); - u[1] := first_proj_axis(u[3],ref_direction); - u[2] := normalise(cross_product(u[3],u[1])).orientation; - RETURN(u); - -END_FUNCTION; -- build_axes - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION edge_reversed(\n an_edge: edge\n ): edge;\n\n LOCAL\n the_reverse : edge;\n END_LOCAL;\n IF 'CONFIG_CONTROL_DESIGN.ORIENTED_EDGE' IN TYPEOF(an_edge) THEN\n the_reverse := oriented_edge(an_edge\\oriented_edge.edge_element,NOT \n an_edge\\oriented_edge.orientation);\n ELSE\n the_reverse := oriented_edge(an_edge,FALSE);\n END_IF;\n RETURN(the_reverse);\n\nEND_FUNCTION; -- edge_reversed\n"); -#endif -/* -FUNCTION edge_reversed( - an_edge: edge - ): edge; - - LOCAL - the_reverse : edge; - END_LOCAL; - IF 'CONFIG_CONTROL_DESIGN.ORIENTED_EDGE' IN TYPEOF(an_edge) THEN - the_reverse := oriented_edge(an_edge\oriented_edge.edge_element,NOT - an_edge\oriented_edge.orientation); - ELSE - the_reverse := oriented_edge(an_edge,FALSE); - END_IF; - RETURN(the_reverse); - -END_FUNCTION; -- edge_reversed - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION cc_design_person_and_organization_correlation(\n e: cc_design_person_and_organization_assignment\n ): BOOLEAN;\n\n LOCAL\n po_role : STRING;\n END_LOCAL;\n po_role := e\\person_and_organization_assignment.role.name;\n CASE po_role OF\n 'request_recipient' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.' + \n 'CHANGE_REQUEST','CONFIG_CONTROL_DESIGN.' + 'START_REQUEST'] * \n TYPEOF(x)) = 1) )) THEN\n RETURN(FALSE);\n END_IF;\n 'initiator' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.' + \n 'CHANGE_REQUEST','CONFIG_CONTROL_DESIGN.' + 'START_REQUEST',\n 'CONFIG_CONTROL_DESIGN.' + 'START_WORK','CONFIG_CONTROL_DESIGN.' \n + 'CHANGE'] * TYPEOF(x)) = 1) )) THEN\n RETURN(FALSE);\n END_IF;\n 'creator' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.' + \n 'PRODUCT_DEFINITION_FORMATION','CONFIG_CONTROL_DESIGN.' + \n 'PRODUCT_DEFINITION'] * TYPEOF(x)) = 1) )) THEN\n RETURN(FALSE);\n END_IF;\n 'part_supplier' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + \n 'PRODUCT_DEFINITION_FORMATION') IN TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'design_supplier' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + \n 'PRODUCT_DEFINITION_FORMATION') IN TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'design_owner' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | ('CONFIG_CONTROL_DESIGN.PRODUCT' IN \n TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'configuration_manager' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + \n 'CONFIGURATION_ITEM') IN TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'contractor' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | ('CONFIG_CONTROL_DESIGN.CONTRACT' IN \n TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'classification_officer' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + \n 'SECURITY_CLASSIFICATION') IN TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n OTHERWISE : RETURN(TRUE);\n END_CASE;\n RETURN(TRUE);\n\nEND_FUNCTION; -- cc_design_person_and_organization_correlation\n"); -#endif -/* -FUNCTION cc_design_person_and_organization_correlation( - e: cc_design_person_and_organization_assignment - ): BOOLEAN; - - LOCAL - po_role : STRING; - END_LOCAL; - po_role := e\person_and_organization_assignment.role.name; - CASE po_role OF - 'request_recipient' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.' + - 'CHANGE_REQUEST','CONFIG_CONTROL_DESIGN.' + 'START_REQUEST'] * - TYPEOF(x)) = 1) )) THEN - RETURN(FALSE); - END_IF; - 'initiator' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.' + - 'CHANGE_REQUEST','CONFIG_CONTROL_DESIGN.' + 'START_REQUEST', - 'CONFIG_CONTROL_DESIGN.' + 'START_WORK','CONFIG_CONTROL_DESIGN.' - + 'CHANGE'] * TYPEOF(x)) = 1) )) THEN - RETURN(FALSE); - END_IF; - 'creator' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.' + - 'PRODUCT_DEFINITION_FORMATION','CONFIG_CONTROL_DESIGN.' + - 'PRODUCT_DEFINITION'] * TYPEOF(x)) = 1) )) THEN - RETURN(FALSE); - END_IF; - 'part_supplier' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + - 'PRODUCT_DEFINITION_FORMATION') IN TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'design_supplier' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + - 'PRODUCT_DEFINITION_FORMATION') IN TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'design_owner' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | ('CONFIG_CONTROL_DESIGN.PRODUCT' IN - TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'configuration_manager' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + - 'CONFIGURATION_ITEM') IN TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'contractor' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | ('CONFIG_CONTROL_DESIGN.CONTRACT' IN - TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'classification_officer' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + - 'SECURITY_CLASSIFICATION') IN TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - OTHERWISE : RETURN(TRUE); - END_CASE; - RETURN(TRUE); - -END_FUNCTION; -- cc_design_person_and_organization_correlation - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION constraints_composite_curve_on_surface(\n c: composite_curve_on_surface\n ): BOOLEAN;\n\n LOCAL\n n_segments : INTEGER := SIZEOF(c.segments);\n END_LOCAL;\n REPEAT k := 1 TO n_segments BY 1;\n IF (NOT ('CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF(c\\composite_curve.\n segments[k].parent_curve))) AND (NOT (\n 'CONFIG_CONTROL_DESIGN.SURFACE_CURVE' IN TYPEOF(c\\composite_curve.\n segments[k].parent_curve))) AND (NOT (\n 'CONFIG_CONTROL_DESIGN.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c\\\n composite_curve.segments[k].parent_curve))) THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n RETURN(TRUE);\n\nEND_FUNCTION; -- constraints_composite_curve_on_surface\n"); -#endif -/* -FUNCTION constraints_composite_curve_on_surface( - c: composite_curve_on_surface - ): BOOLEAN; - - LOCAL - n_segments : INTEGER := SIZEOF(c.segments); - END_LOCAL; - REPEAT k := 1 TO n_segments BY 1; - IF (NOT ('CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF(c\composite_curve. - segments[k].parent_curve))) AND (NOT ( - 'CONFIG_CONTROL_DESIGN.SURFACE_CURVE' IN TYPEOF(c\composite_curve. - segments[k].parent_curve))) AND (NOT ( - 'CONFIG_CONTROL_DESIGN.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c\ - composite_curve.segments[k].parent_curve))) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - RETURN(TRUE); - -END_FUNCTION; -- constraints_composite_curve_on_surface - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION relatives_of_product_definitions(\n definition_set: SET OF product_definition;\n relation_subtype: STRING\n ): SET OF product_definition;\n\n FUNCTION local_relatives_of_product_definitions(\n definition_set: SET OF product_definition;\n total_definitions: SET OF product_definition;\n relation_subtype: STRING\n ): SET OF product_definition;\n\n LOCAL\n i : INTEGER;\n local_def : SET OF product_definition := [];\n local_pdr : SET OF product_definition_relationship := [];\n local_total : SET OF product_definition := [];\n END_LOCAL;\n REPEAT i := 1 TO HIINDEX(definition_set) BY 1;\n local_pdr := local_pdr + bag_to_set(USEDIN(definition_set[i],\n relation_subtype + '.RELATING_PRODUCT_DEFINITION'));\n END_REPEAT;\n REPEAT i := 1 TO HIINDEX(local_pdr) BY 1;\n local_def := local_def + local_pdr[i].related_product_definition;\n END_REPEAT;\n IF (SIZEOF(local_def) - SIZEOF(total_definitions)) = 0 THEN\n RETURN(local_def);\n ELSE\n local_total := total_definitions + local_def;\n RETURN(local_def + local_relatives_of_product_definitions(local_def \n - total_definitions,local_total,relation_subtype));\n END_IF;\n\n END_FUNCTION; -- local_relatives_of_product_definitions\n RETURN(local_relatives_of_product_definitions(definition_set,\n definition_set,relation_subtype));\n\nEND_FUNCTION; -- relatives_of_product_definitions\n"); -#endif -/* -FUNCTION relatives_of_product_definitions( - definition_set: SET OF product_definition; - relation_subtype: STRING - ): SET OF product_definition; - - FUNCTION local_relatives_of_product_definitions( - definition_set: SET OF product_definition; - total_definitions: SET OF product_definition; - relation_subtype: STRING - ): SET OF product_definition; - - LOCAL - i : INTEGER; - local_def : SET OF product_definition := []; - local_pdr : SET OF product_definition_relationship := []; - local_total : SET OF product_definition := []; - END_LOCAL; - REPEAT i := 1 TO HIINDEX(definition_set) BY 1; - local_pdr := local_pdr + bag_to_set(USEDIN(definition_set[i], - relation_subtype + '.RELATING_PRODUCT_DEFINITION')); - END_REPEAT; - REPEAT i := 1 TO HIINDEX(local_pdr) BY 1; - local_def := local_def + local_pdr[i].related_product_definition; - END_REPEAT; - IF (SIZEOF(local_def) - SIZEOF(total_definitions)) = 0 THEN - RETURN(local_def); - ELSE - local_total := total_definitions + local_def; - RETURN(local_def + local_relatives_of_product_definitions(local_def - - total_definitions,local_total,relation_subtype)); - END_IF; - - END_FUNCTION; -- local_relatives_of_product_definitions - RETURN(local_relatives_of_product_definitions(definition_set, - definition_set,relation_subtype)); - -END_FUNCTION; -- relatives_of_product_definitions - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION acyclic_mapped_representation(\n parent_set: SET OF representation;\n children_set: SET OF representation_item\n ): BOOLEAN;\n\n LOCAL\n i : INTEGER;\n x : SET OF representation_item;\n y : SET OF representation_item;\n END_LOCAL;\n x := QUERY ( z <* children_set | ('CONFIG_CONTROL_DESIGN.MAPPED_ITEM' IN\n TYPEOF(z)) );\n IF SIZEOF(x) > 0 THEN\n REPEAT i := 1 TO HIINDEX(x) BY 1;\n IF x[i]\\mapped_item.mapping_source.mapped_representation IN \n parent_set THEN\n RETURN(FALSE);\n END_IF;\n IF NOT acyclic_mapped_representation(parent_set + x[i]\\mapped_item.\n mapping_source.mapped_representation,x[i]\\mapped_item.\n mapping_source.mapped_representation.items) THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n END_IF;\n x := children_set - x;\n IF SIZEOF(x) > 0 THEN\n REPEAT i := 1 TO HIINDEX(x) BY 1;\n y := QUERY ( z <* bag_to_set(USEDIN(x[i],'')) | (\n 'CONFIG_CONTROL_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(z)) );\n IF NOT acyclic_mapped_representation(parent_set,y) THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n END_IF;\n RETURN(TRUE);\n\nEND_FUNCTION; -- acyclic_mapped_representation\n"); -#endif -/* -FUNCTION acyclic_mapped_representation( - parent_set: SET OF representation; - children_set: SET OF representation_item - ): BOOLEAN; - - LOCAL - i : INTEGER; - x : SET OF representation_item; - y : SET OF representation_item; - END_LOCAL; - x := QUERY ( z <* children_set | ('CONFIG_CONTROL_DESIGN.MAPPED_ITEM' IN - TYPEOF(z)) ); - IF SIZEOF(x) > 0 THEN - REPEAT i := 1 TO HIINDEX(x) BY 1; - IF x[i]\mapped_item.mapping_source.mapped_representation IN - parent_set THEN - RETURN(FALSE); - END_IF; - IF NOT acyclic_mapped_representation(parent_set + x[i]\mapped_item. - mapping_source.mapped_representation,x[i]\mapped_item. - mapping_source.mapped_representation.items) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_IF; - x := children_set - x; - IF SIZEOF(x) > 0 THEN - REPEAT i := 1 TO HIINDEX(x) BY 1; - y := QUERY ( z <* bag_to_set(USEDIN(x[i],'')) | ( - 'CONFIG_CONTROL_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(z)) ); - IF NOT acyclic_mapped_representation(parent_set,y) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_IF; - RETURN(TRUE); - -END_FUNCTION; -- acyclic_mapped_representation - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION conditional_reverse(\n p: BOOLEAN;\n an_item: reversible_topology\n ): reversible_topology;\n IF p THEN\n RETURN(an_item);\n ELSE\n RETURN(topology_reversed(an_item));\n END_IF;\n\nEND_FUNCTION; -- conditional_reverse\n"); -#endif -/* -FUNCTION conditional_reverse( - p: BOOLEAN; - an_item: reversible_topology - ): reversible_topology; - IF p THEN - RETURN(an_item); - ELSE - RETURN(topology_reversed(an_item)); - END_IF; - -END_FUNCTION; -- conditional_reverse - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION local_relatives_of_product_definitions(\n definition_set: SET OF product_definition;\n total_definitions: SET OF product_definition;\n relation_subtype: STRING\n ): SET OF product_definition;\n\n LOCAL\n i : INTEGER;\n local_def : SET OF product_definition := [];\n local_pdr : SET OF product_definition_relationship := [];\n local_total : SET OF product_definition := [];\n END_LOCAL;\n REPEAT i := 1 TO HIINDEX(definition_set) BY 1;\n local_pdr := local_pdr + bag_to_set(USEDIN(definition_set[i],\n relation_subtype + '.RELATING_PRODUCT_DEFINITION'));\n END_REPEAT;\n REPEAT i := 1 TO HIINDEX(local_pdr) BY 1;\n local_def := local_def + local_pdr[i].related_product_definition;\n END_REPEAT;\n IF (SIZEOF(local_def) - SIZEOF(total_definitions)) = 0 THEN\n RETURN(local_def);\n ELSE\n local_total := total_definitions + local_def;\n RETURN(local_def + local_relatives_of_product_definitions(local_def - \n total_definitions,local_total,relation_subtype));\n END_IF;\n\nEND_FUNCTION; -- local_relatives_of_product_definitions\n"); -#endif -/* -FUNCTION local_relatives_of_product_definitions( - definition_set: SET OF product_definition; - total_definitions: SET OF product_definition; - relation_subtype: STRING - ): SET OF product_definition; - - LOCAL - i : INTEGER; - local_def : SET OF product_definition := []; - local_pdr : SET OF product_definition_relationship := []; - local_total : SET OF product_definition := []; - END_LOCAL; - REPEAT i := 1 TO HIINDEX(definition_set) BY 1; - local_pdr := local_pdr + bag_to_set(USEDIN(definition_set[i], - relation_subtype + '.RELATING_PRODUCT_DEFINITION')); - END_REPEAT; - REPEAT i := 1 TO HIINDEX(local_pdr) BY 1; - local_def := local_def + local_pdr[i].related_product_definition; - END_REPEAT; - IF (SIZEOF(local_def) - SIZEOF(total_definitions)) = 0 THEN - RETURN(local_def); - ELSE - local_total := total_definitions + local_def; - RETURN(local_def + local_relatives_of_product_definitions(local_def - - total_definitions,local_total,relation_subtype)); - END_IF; - -END_FUNCTION; -- local_relatives_of_product_definitions - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION gbsf_check_curve(\n cv: curve;\n schema_name: STRING\n ): BOOLEAN;\n IF NOT ((schema_name + '.CURVE') IN TYPEOF(cv)) THEN\n RETURN(TRUE);\n END_IF;\n IF SIZEOF([schema_name + '.CIRCLE',schema_name + '.ELLIPSE'] * TYPEOF(cv)) \n = 1 THEN\n RETURN(TRUE);\n ELSE\n IF (schema_name + '.B_SPLINE_CURVE') IN TYPEOF(cv) THEN\n RETURN(NOT cv\\b_spline_curve.self_intersect);\n ELSE\n IF (schema_name + '.COMPOSITE_CURVE') IN TYPEOF(cv) THEN\n RETURN(SIZEOF(QUERY ( seg <* cv\\composite_curve.segments | (NOT \n gbsf_check_curve(seg.parent_curve,schema_name)) )) = 0);\n ELSE\n IF (schema_name + '.CURVE_REPLICA') IN TYPEOF(cv) THEN\n RETURN(gbsf_check_curve(cv\\curve_replica.parent_curve,\n schema_name));\n ELSE\n IF (schema_name + '.OFFSET_CURVE_3D') IN TYPEOF(cv) THEN\n RETURN(gbsf_check_curve(cv\\offset_curve_3d.basis_curve,\n schema_name) AND (NOT cv\\offset_curve_3d.self_intersect));\n ELSE\n IF (schema_name + '.PCURVE') IN TYPEOF(cv) THEN\n RETURN(gbsf_check_curve(cv\\pcurve.reference_to_curve\\\n representation.items[1],schema_name) AND \n gbsf_check_surface(cv\\pcurve.basis_surface,schema_name));\n ELSE\n IF (schema_name + '.POLYLINE') IN TYPEOF(cv) THEN\n IF (SIZEOF(cv\\polyline.points) > 3) AND (SIZEOF(\n bag_to_set(USEDIN(cv,'')) - bag_to_set(USEDIN(cv,\n schema_name + '.INTERSECTION_CURVE.BASIS_CURVE'))) = 0)\n THEN\n RETURN(TRUE);\n END_IF;\n ELSE\n IF (schema_name + '.SURFACE_CURVE') IN TYPEOF(cv) THEN\n IF gbsf_check_curve(cv\\surface_curve.curve_3d,\n schema_name) THEN\n REPEAT i := 1 TO SIZEOF(cv\\surface_curve.\n associated_geometry) BY 1;\n IF (schema_name + '.SURFACE') IN TYPEOF(cv\\\n surface_curve.associated_geometry[i]) THEN\n IF NOT gbsf_check_surface(cv\\surface_curve.\n associated_geometry[i],schema_name) THEN\n RETURN(FALSE);\n END_IF;\n ELSE\n IF (schema_name + '.PCURVE') IN TYPEOF(cv\\\n surface_curve.associated_geometry[i]) THEN\n IF NOT gbsf_check_curve(cv\\surface_curve.\n associated_geometry[i],schema_name) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n END_IF;\n END_REPEAT;\n RETURN(TRUE);\n END_IF;\n ELSE\n IF (schema_name + '.TRIMMED_CURVE') IN TYPEOF(cv) THEN\n IF SIZEOF([schema_name + '.LINE',schema_name + \n '.PARABOLA',schema_name + '.HYPERBOLA'] * TYPEOF(cv\n \\trimmed_curve.basis_curve)) = 1 THEN\n RETURN(TRUE);\n ELSE\n RETURN(gbsf_check_curve(cv\\trimmed_curve.basis_curve,\n schema_name));\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- gbsf_check_curve\n"); -#endif -/* -FUNCTION gbsf_check_curve( - cv: curve; - schema_name: STRING - ): BOOLEAN; - IF NOT ((schema_name + '.CURVE') IN TYPEOF(cv)) THEN - RETURN(TRUE); - END_IF; - IF SIZEOF([schema_name + '.CIRCLE',schema_name + '.ELLIPSE'] * TYPEOF(cv)) - = 1 THEN - RETURN(TRUE); - ELSE - IF (schema_name + '.B_SPLINE_CURVE') IN TYPEOF(cv) THEN - RETURN(NOT cv\b_spline_curve.self_intersect); - ELSE - IF (schema_name + '.COMPOSITE_CURVE') IN TYPEOF(cv) THEN - RETURN(SIZEOF(QUERY ( seg <* cv\composite_curve.segments | (NOT - gbsf_check_curve(seg.parent_curve,schema_name)) )) = 0); - ELSE - IF (schema_name + '.CURVE_REPLICA') IN TYPEOF(cv) THEN - RETURN(gbsf_check_curve(cv\curve_replica.parent_curve, - schema_name)); - ELSE - IF (schema_name + '.OFFSET_CURVE_3D') IN TYPEOF(cv) THEN - RETURN(gbsf_check_curve(cv\offset_curve_3d.basis_curve, - schema_name) AND (NOT cv\offset_curve_3d.self_intersect)); - ELSE - IF (schema_name + '.PCURVE') IN TYPEOF(cv) THEN - RETURN(gbsf_check_curve(cv\pcurve.reference_to_curve\ - representation.items[1],schema_name) AND - gbsf_check_surface(cv\pcurve.basis_surface,schema_name)); - ELSE - IF (schema_name + '.POLYLINE') IN TYPEOF(cv) THEN - IF (SIZEOF(cv\polyline.points) > 3) AND (SIZEOF( - bag_to_set(USEDIN(cv,'')) - bag_to_set(USEDIN(cv, - schema_name + '.INTERSECTION_CURVE.BASIS_CURVE'))) = 0) - THEN - RETURN(TRUE); - END_IF; - ELSE - IF (schema_name + '.SURFACE_CURVE') IN TYPEOF(cv) THEN - IF gbsf_check_curve(cv\surface_curve.curve_3d, - schema_name) THEN - REPEAT i := 1 TO SIZEOF(cv\surface_curve. - associated_geometry) BY 1; - IF (schema_name + '.SURFACE') IN TYPEOF(cv\ - surface_curve.associated_geometry[i]) THEN - IF NOT gbsf_check_surface(cv\surface_curve. - associated_geometry[i],schema_name) THEN - RETURN(FALSE); - END_IF; - ELSE - IF (schema_name + '.PCURVE') IN TYPEOF(cv\ - surface_curve.associated_geometry[i]) THEN - IF NOT gbsf_check_curve(cv\surface_curve. - associated_geometry[i],schema_name) THEN - RETURN(FALSE); - END_IF; - END_IF; - END_IF; - END_REPEAT; - RETURN(TRUE); - END_IF; - ELSE - IF (schema_name + '.TRIMMED_CURVE') IN TYPEOF(cv) THEN - IF SIZEOF([schema_name + '.LINE',schema_name + - '.PARABOLA',schema_name + '.HYPERBOLA'] * TYPEOF(cv - \trimmed_curve.basis_curve)) = 1 THEN - RETURN(TRUE); - ELSE - RETURN(gbsf_check_curve(cv\trimmed_curve.basis_curve, - schema_name)); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- gbsf_check_curve - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION unique_version_change_order(\n c: action\n ): BOOLEAN;\n\n LOCAL\n ords : action_directive := c\\directed_action.directive;\n assign : SET OF change_request := [];\n versions : SET OF product_definition_formation := [];\n END_LOCAL;\n REPEAT i := 1 TO SIZEOF(ords.requests) BY 1;\n assign := assign + QUERY ( ara <* bag_to_set(USEDIN(ords.requests[i],\n 'CONFIG_CONTROL_DESIGN.ACTION_REQUEST_ASSIGNMENT.' + \n 'ASSIGNED_ACTION_REQUEST')) | (\n 'CONFIG_CONTROL_DESIGN.CHANGE_REQUEST' IN TYPEOF(ara)) );\n END_REPEAT;\n REPEAT k := 1 TO SIZEOF(assign) BY 1;\n versions := versions + assign[k].items;\n END_REPEAT;\n RETURN(SIZEOF(QUERY ( vers <* versions | (NOT (SIZEOF(\n QUERY ( other_vers <* (versions - vers) | (vers.of_product :=: \n other_vers.of_product) )) = 0)) )) = 0);\n\nEND_FUNCTION; -- unique_version_change_order\n"); -#endif -/* -FUNCTION unique_version_change_order( - c: action - ): BOOLEAN; - - LOCAL - ords : action_directive := c\directed_action.directive; - assign : SET OF change_request := []; - versions : SET OF product_definition_formation := []; - END_LOCAL; - REPEAT i := 1 TO SIZEOF(ords.requests) BY 1; - assign := assign + QUERY ( ara <* bag_to_set(USEDIN(ords.requests[i], - 'CONFIG_CONTROL_DESIGN.ACTION_REQUEST_ASSIGNMENT.' + - 'ASSIGNED_ACTION_REQUEST')) | ( - 'CONFIG_CONTROL_DESIGN.CHANGE_REQUEST' IN TYPEOF(ara)) ); - END_REPEAT; - REPEAT k := 1 TO SIZEOF(assign) BY 1; - versions := versions + assign[k].items; - END_REPEAT; - RETURN(SIZEOF(QUERY ( vers <* versions | (NOT (SIZEOF( - QUERY ( other_vers <* (versions - vers) | (vers.of_product :=: - other_vers.of_product) )) = 0)) )) = 0); - -END_FUNCTION; -- unique_version_change_order - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION base_axis(\n dim: INTEGER;\n axis1, axis2, axis3: direction\n ): LIST [2:3] OF direction;\n\n LOCAL\n u : LIST [2:3] OF direction;\n vec : direction;\n factor : REAL;\n END_LOCAL;\n IF dim = 3 THEN\n u[3] := NVL(normalise(axis3),direction([0,0,1]));\n u[1] := first_proj_axis(u[3],axis1);\n u[2] := second_proj_axis(u[3],u[1],axis2);\n ELSE\n u[3] := ?;\n IF EXISTS(axis1) THEN\n u[1] := normalise(axis1);\n u[2] := orthogonal_complement(u[1]);\n IF EXISTS(axis2) THEN\n factor := dot_product(axis2,u[2]);\n IF factor < 0 THEN\n u[2].direction_ratios[1] := -u[2].direction_ratios[1];\n u[2].direction_ratios[2] := -u[2].direction_ratios[2];\n END_IF;\n END_IF;\n ELSE\n IF EXISTS(axis2) THEN\n u[2] := normalise(axis2);\n u[1] := orthogonal_complement(u[2]);\n u[1].direction_ratios[1] := -u[1].direction_ratios[1];\n u[1].direction_ratios[2] := -u[1].direction_ratios[2];\n ELSE\n u[1].direction_ratios[1] := 1;\n u[1].direction_ratios[2] := 0;\n u[2].direction_ratios[1] := 0;\n u[2].direction_ratios[2] := 1;\n END_IF;\n END_IF;\n END_IF;\n RETURN(u);\n\nEND_FUNCTION; -- base_axis\n"); -#endif -/* -FUNCTION base_axis( - dim: INTEGER; - axis1, axis2, axis3: direction - ): LIST [2:3] OF direction; - - LOCAL - u : LIST [2:3] OF direction; - vec : direction; - factor : REAL; - END_LOCAL; - IF dim = 3 THEN - u[3] := NVL(normalise(axis3),direction([0,0,1])); - u[1] := first_proj_axis(u[3],axis1); - u[2] := second_proj_axis(u[3],u[1],axis2); - ELSE - u[3] := ?; - IF EXISTS(axis1) THEN - u[1] := normalise(axis1); - u[2] := orthogonal_complement(u[1]); - IF EXISTS(axis2) THEN - factor := dot_product(axis2,u[2]); - IF factor < 0 THEN - u[2].direction_ratios[1] := -u[2].direction_ratios[1]; - u[2].direction_ratios[2] := -u[2].direction_ratios[2]; - END_IF; - END_IF; - ELSE - IF EXISTS(axis2) THEN - u[2] := normalise(axis2); - u[1] := orthogonal_complement(u[2]); - u[1].direction_ratios[1] := -u[1].direction_ratios[1]; - u[1].direction_ratios[2] := -u[1].direction_ratios[2]; - ELSE - u[1].direction_ratios[1] := 1; - u[1].direction_ratios[2] := 0; - u[2].direction_ratios[1] := 0; - u[2].direction_ratios[2] := 1; - END_IF; - END_IF; - END_IF; - RETURN(u); - -END_FUNCTION; -- base_axis - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION get_basis_surface(\n c: curve_on_surface\n ): SET [0:2] OF surface;\n\n LOCAL\n surfs : SET [0:2] OF surface;\n n : INTEGER;\n END_LOCAL;\n surfs := [];\n IF 'CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF(c) THEN\n surfs := [c\\pcurve.basis_surface];\n ELSE\n IF 'CONFIG_CONTROL_DESIGN.SURFACE_CURVE' IN TYPEOF(c) THEN\n n := SIZEOF(c\\surface_curve.associated_geometry);\n REPEAT i := 1 TO n BY 1;\n surfs := surfs + associated_surface(c\\surface_curve.\n associated_geometry[i]);\n END_REPEAT;\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c) THEN\n n := SIZEOF(c\\composite_curve_on_surface.segments);\n surfs := get_basis_surface(c\\composite_curve_on_surface.segments[1].\n parent_curve);\n IF n > 1 THEN\n REPEAT i := 2 TO n BY 1;\n surfs := surfs * get_basis_surface(c\\composite_curve_on_surface.\n segments[i].parent_curve);\n END_REPEAT;\n END_IF;\n END_IF;\n RETURN(surfs);\n\nEND_FUNCTION; -- get_basis_surface\n"); -#endif -/* -FUNCTION get_basis_surface( - c: curve_on_surface - ): SET [0:2] OF surface; - - LOCAL - surfs : SET [0:2] OF surface; - n : INTEGER; - END_LOCAL; - surfs := []; - IF 'CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF(c) THEN - surfs := [c\pcurve.basis_surface]; - ELSE - IF 'CONFIG_CONTROL_DESIGN.SURFACE_CURVE' IN TYPEOF(c) THEN - n := SIZEOF(c\surface_curve.associated_geometry); - REPEAT i := 1 TO n BY 1; - surfs := surfs + associated_surface(c\surface_curve. - associated_geometry[i]); - END_REPEAT; - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.COMPOSITE_CURVE_ON_SURFACE' IN TYPEOF(c) THEN - n := SIZEOF(c\composite_curve_on_surface.segments); - surfs := get_basis_surface(c\composite_curve_on_surface.segments[1]. - parent_curve); - IF n > 1 THEN - REPEAT i := 2 TO n BY 1; - surfs := surfs * get_basis_surface(c\composite_curve_on_surface. - segments[i].parent_curve); - END_REPEAT; - END_IF; - END_IF; - RETURN(surfs); - -END_FUNCTION; -- get_basis_surface - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION cc_design_date_time_correlation(\n e: cc_design_date_and_time_assignment\n ): BOOLEAN;\n\n LOCAL\n dt_role : STRING;\n END_LOCAL;\n dt_role := e\\date_and_time_assignment.role.name;\n CASE dt_role OF\n 'creation_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + \n 'PRODUCT_DEFINITION') IN TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'request_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (SIZEOF([\n 'CONFIG_CONTROL_DESIGN.CHANGE_REQUEST' + \n 'CONFIG_CONTROL_DESIGN.START_REQUEST'] * TYPEOF(x)) = 1) )) THEN\n RETURN(FALSE);\n END_IF;\n 'release_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.CHANGE' + \n 'CONFIG_CONTROL_DESIGN.START_WORK'] * TYPEOF(x)) = 1) )) THEN\n RETURN(FALSE);\n END_IF;\n 'start_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.CHANGE' + \n 'CONFIG_CONTROL_DESIGN.START_WORK'] * TYPEOF(x)) = 1) )) THEN\n RETURN(FALSE);\n END_IF;\n 'sign_off_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + \n 'APPROVAL_PERSON_ORGANIZATION') IN TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'contract_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | ('CONFIG_CONTROL_DESIGN.CONTRACT' IN \n TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'certification_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | ('CONFIG_CONTROL_DESIGN.CERTIFICATION' IN \n TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'classification_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + \n 'SECURITY_CLASSIFICATION') IN TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n 'declassification_date' : IF SIZEOF(e.items) <> SIZEOF(\n QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + \n 'SECURITY_CLASSIFICATION') IN TYPEOF(x)) )) THEN\n RETURN(FALSE);\n END_IF;\n OTHERWISE : RETURN(TRUE);\n END_CASE;\n RETURN(TRUE);\n\nEND_FUNCTION; -- cc_design_date_time_correlation\n"); -#endif -/* -FUNCTION cc_design_date_time_correlation( - e: cc_design_date_and_time_assignment - ): BOOLEAN; - - LOCAL - dt_role : STRING; - END_LOCAL; - dt_role := e\date_and_time_assignment.role.name; - CASE dt_role OF - 'creation_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + - 'PRODUCT_DEFINITION') IN TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'request_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (SIZEOF([ - 'CONFIG_CONTROL_DESIGN.CHANGE_REQUEST' + - 'CONFIG_CONTROL_DESIGN.START_REQUEST'] * TYPEOF(x)) = 1) )) THEN - RETURN(FALSE); - END_IF; - 'release_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.CHANGE' + - 'CONFIG_CONTROL_DESIGN.START_WORK'] * TYPEOF(x)) = 1) )) THEN - RETURN(FALSE); - END_IF; - 'start_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (SIZEOF(['CONFIG_CONTROL_DESIGN.CHANGE' + - 'CONFIG_CONTROL_DESIGN.START_WORK'] * TYPEOF(x)) = 1) )) THEN - RETURN(FALSE); - END_IF; - 'sign_off_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + - 'APPROVAL_PERSON_ORGANIZATION') IN TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'contract_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | ('CONFIG_CONTROL_DESIGN.CONTRACT' IN - TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'certification_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | ('CONFIG_CONTROL_DESIGN.CERTIFICATION' IN - TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'classification_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + - 'SECURITY_CLASSIFICATION') IN TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - 'declassification_date' : IF SIZEOF(e.items) <> SIZEOF( - QUERY ( x <* e.items | (('CONFIG_CONTROL_DESIGN.' + - 'SECURITY_CLASSIFICATION') IN TYPEOF(x)) )) THEN - RETURN(FALSE); - END_IF; - OTHERWISE : RETURN(TRUE); - END_CASE; - RETURN(TRUE); - -END_FUNCTION; -- cc_design_date_time_correlation - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION list_face_loops(\n f: face\n ): LIST [0:?] OF loop;\n\n LOCAL\n loops : LIST [0:?] OF loop := [];\n END_LOCAL;\n REPEAT i := 1 TO SIZEOF(f.bounds) BY 1;\n loops := loops + f.bounds[i].bound;\n END_REPEAT;\n RETURN(loops);\n\nEND_FUNCTION; -- list_face_loops\n"); -#endif -/* -FUNCTION list_face_loops( - f: face - ): LIST [0:?] OF loop; - - LOCAL - loops : LIST [0:?] OF loop := []; - END_LOCAL; - REPEAT i := 1 TO SIZEOF(f.bounds) BY 1; - loops := loops + f.bounds[i].bound; - END_REPEAT; - RETURN(loops); - -END_FUNCTION; -- list_face_loops - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION list_of_topology_reversed(\n a_list: list_of_reversible_topology_item\n ): list_of_reversible_topology_item;\n\n LOCAL\n the_reverse : list_of_reversible_topology_item;\n END_LOCAL;\n the_reverse := [];\n REPEAT i := 1 TO SIZEOF(a_list) BY 1;\n the_reverse := topology_reversed(a_list[i]) + the_reverse;\n END_REPEAT;\n RETURN(the_reverse);\n\nEND_FUNCTION; -- list_of_topology_reversed\n"); -#endif -/* -FUNCTION list_of_topology_reversed( - a_list: list_of_reversible_topology_item - ): list_of_reversible_topology_item; - - LOCAL - the_reverse : list_of_reversible_topology_item; - END_LOCAL; - the_reverse := []; - REPEAT i := 1 TO SIZEOF(a_list) BY 1; - the_reverse := topology_reversed(a_list[i]) + the_reverse; - END_REPEAT; - RETURN(the_reverse); - -END_FUNCTION; -- list_of_topology_reversed - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION shell_reversed(\n a_shell: shell\n ): shell;\n\n LOCAL\n the_reverse : shell;\n END_LOCAL;\n IF 'CONFIG_CONTROL_DESIGN.ORIENTED_OPEN_SHELL' IN TYPEOF(a_shell) THEN\n the_reverse := oriented_open_shell(a_shell\\oriented_open_shell.\n open_shell_element,NOT a_shell\\oriented_open_shell.orientation);\n ELSE\n IF 'CONFIG_CONTROL_DESIGN.OPEN_SHELL' IN TYPEOF(a_shell) THEN\n the_reverse := oriented_open_shell(a_shell,FALSE);\n ELSE\n IF 'CONFIG_CONTROL_DESIGN.ORIENTED_CLOSED_SHELL' IN TYPEOF(a_shell)\n THEN\n the_reverse := oriented_closed_shell(a_shell\\oriented_closed_shell\n .closed_shell_element,NOT a_shell\\oriented_closed_shell.\n orientation);\n ELSE\n IF 'CONFIG_CONTROL_DESIGN.CLOSED_SHELL' IN TYPEOF(a_shell) THEN\n the_reverse := oriented_closed_shell(a_shell,FALSE);\n ELSE\n the_reverse := ?;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n RETURN(the_reverse);\n\nEND_FUNCTION; -- shell_reversed\n"); -#endif -/* -FUNCTION shell_reversed( - a_shell: shell - ): shell; - - LOCAL - the_reverse : shell; - END_LOCAL; - IF 'CONFIG_CONTROL_DESIGN.ORIENTED_OPEN_SHELL' IN TYPEOF(a_shell) THEN - the_reverse := oriented_open_shell(a_shell\oriented_open_shell. - open_shell_element,NOT a_shell\oriented_open_shell.orientation); - ELSE - IF 'CONFIG_CONTROL_DESIGN.OPEN_SHELL' IN TYPEOF(a_shell) THEN - the_reverse := oriented_open_shell(a_shell,FALSE); - ELSE - IF 'CONFIG_CONTROL_DESIGN.ORIENTED_CLOSED_SHELL' IN TYPEOF(a_shell) - THEN - the_reverse := oriented_closed_shell(a_shell\oriented_closed_shell - .closed_shell_element,NOT a_shell\oriented_closed_shell. - orientation); - ELSE - IF 'CONFIG_CONTROL_DESIGN.CLOSED_SHELL' IN TYPEOF(a_shell) THEN - the_reverse := oriented_closed_shell(a_shell,FALSE); - ELSE - the_reverse := ?; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(the_reverse); - -END_FUNCTION; -- shell_reversed - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION topology_reversed(\n an_item: reversible_topology\n ): reversible_topology;\n IF 'CONFIG_CONTROL_DESIGN.EDGE' IN TYPEOF(an_item) THEN\n RETURN(edge_reversed(an_item));\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.PATH' IN TYPEOF(an_item) THEN\n RETURN(path_reversed(an_item));\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.FACE_BOUND' IN TYPEOF(an_item) THEN\n RETURN(face_bound_reversed(an_item));\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.FACE' IN TYPEOF(an_item) THEN\n RETURN(face_reversed(an_item));\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.SHELL' IN TYPEOF(an_item) THEN\n RETURN(shell_reversed(an_item));\n END_IF;\n IF 'SET' IN TYPEOF(an_item) THEN\n RETURN(set_of_topology_reversed(an_item));\n END_IF;\n IF 'LIST' IN TYPEOF(an_item) THEN\n RETURN(list_of_topology_reversed(an_item));\n END_IF;\n RETURN(?);\n\nEND_FUNCTION; -- topology_reversed\n"); -#endif -/* -FUNCTION topology_reversed( - an_item: reversible_topology - ): reversible_topology; - IF 'CONFIG_CONTROL_DESIGN.EDGE' IN TYPEOF(an_item) THEN - RETURN(edge_reversed(an_item)); - END_IF; - IF 'CONFIG_CONTROL_DESIGN.PATH' IN TYPEOF(an_item) THEN - RETURN(path_reversed(an_item)); - END_IF; - IF 'CONFIG_CONTROL_DESIGN.FACE_BOUND' IN TYPEOF(an_item) THEN - RETURN(face_bound_reversed(an_item)); - END_IF; - IF 'CONFIG_CONTROL_DESIGN.FACE' IN TYPEOF(an_item) THEN - RETURN(face_reversed(an_item)); - END_IF; - IF 'CONFIG_CONTROL_DESIGN.SHELL' IN TYPEOF(an_item) THEN - RETURN(shell_reversed(an_item)); - END_IF; - IF 'SET' IN TYPEOF(an_item) THEN - RETURN(set_of_topology_reversed(an_item)); - END_IF; - IF 'LIST' IN TYPEOF(an_item) THEN - RETURN(list_of_topology_reversed(an_item)); - END_IF; - RETURN(?); - -END_FUNCTION; -- topology_reversed - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION first_proj_axis(\n z_axis, arg: direction\n ): direction;\n\n LOCAL\n x_vec : vector;\n v : direction;\n z : direction;\n x_axis : direction;\n END_LOCAL;\n IF (NOT EXISTS(z_axis)) OR (NOT EXISTS(arg)) OR (arg.dim <> 3) THEN\n x_axis := ?;\n ELSE\n z_axis := normalise(z_axis);\n IF NOT EXISTS(arg) THEN\n IF z_axis <> direction([1,0,0]) THEN\n v := direction([1,0,0]);\n ELSE\n v := direction([0,1,0]);\n END_IF;\n ELSE\n IF cross_product(arg,z).magnitude = 0 THEN\n RETURN(?);\n ELSE\n v := normalise(arg);\n END_IF;\n END_IF;\n x_vec := scalar_times_vector(dot_product(v,z),z_axis);\n x_axis := vector_difference(v,x_vec).orientation;\n x_axis := normalise(x_axis);\n END_IF;\n RETURN(x_axis);\n\nEND_FUNCTION; -- first_proj_axis\n"); -#endif -/* -FUNCTION first_proj_axis( - z_axis, arg: direction - ): direction; - - LOCAL - x_vec : vector; - v : direction; - z : direction; - x_axis : direction; - END_LOCAL; - IF (NOT EXISTS(z_axis)) OR (NOT EXISTS(arg)) OR (arg.dim <> 3) THEN - x_axis := ?; - ELSE - z_axis := normalise(z_axis); - IF NOT EXISTS(arg) THEN - IF z_axis <> direction([1,0,0]) THEN - v := direction([1,0,0]); - ELSE - v := direction([0,1,0]); - END_IF; - ELSE - IF cross_product(arg,z).magnitude = 0 THEN - RETURN(?); - ELSE - v := normalise(arg); - END_IF; - END_IF; - x_vec := scalar_times_vector(dot_product(v,z),z_axis); - x_axis := vector_difference(v,x_vec).orientation; - x_axis := normalise(x_axis); - END_IF; - RETURN(x_axis); - -END_FUNCTION; -- first_proj_axis - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION orthogonal_complement(\n vec: direction\n ): direction;\n\n LOCAL\n result : direction;\n END_LOCAL;\n IF (vec.dim <> 2) OR (NOT EXISTS(vec)) THEN\n RETURN(?);\n ELSE\n result.direction_ratios[1] := -vec.direction_ratios[2];\n result.direction_ratios[2] := vec.direction_ratios[1];\n RETURN(result);\n END_IF;\n\nEND_FUNCTION; -- orthogonal_complement\n"); -#endif -/* -FUNCTION orthogonal_complement( - vec: direction - ): direction; - - LOCAL - result : direction; - END_LOCAL; - IF (vec.dim <> 2) OR (NOT EXISTS(vec)) THEN - RETURN(?); - ELSE - result.direction_ratios[1] := -vec.direction_ratios[2]; - result.direction_ratios[2] := vec.direction_ratios[1]; - RETURN(result); - END_IF; - -END_FUNCTION; -- orthogonal_complement - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION make_array_of_array(\n lis: LIST [1:?] OF LIST [1:?] OF GENERIC:t;\n low1, u1, low2, u2: INTEGER\n ): ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC:t;\n\n LOCAL\n n2 : INTEGER;\n n1 : INTEGER;\n res : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC:t;\n resl : LIST [1:?] OF ARRAY [low2:u2] OF GENERIC:t;\n END_LOCAL;\n n1 := SIZEOF(lis);\n n2 := SIZEOF(lis[1]);\n IF (n1 <> ((u1 - low1) + 1)) AND (n2 <> ((u2 - low2) + 1)) THEN\n RETURN(?);\n END_IF;\n REPEAT i := 1 TO n1 BY 1;\n IF SIZEOF(lis[i]) <> n2 THEN\n RETURN(?);\n END_IF;\n END_REPEAT;\n REPEAT i := 1 TO n1 BY 1;\n resl[i] := list_to_array(lis[i],low2,u2);\n END_REPEAT;\n res := list_to_array(resl,low1,u1);\n RETURN(res);\n\nEND_FUNCTION; -- make_array_of_array\n"); -#endif -/* -FUNCTION make_array_of_array( - lis: LIST [1:?] OF LIST [1:?] OF GENERIC:t; - low1, u1, low2, u2: INTEGER - ): ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC:t; - - LOCAL - n2 : INTEGER; - n1 : INTEGER; - res : ARRAY [low1:u1] OF ARRAY [low2:u2] OF GENERIC:t; - resl : LIST [1:?] OF ARRAY [low2:u2] OF GENERIC:t; - END_LOCAL; - n1 := SIZEOF(lis); - n2 := SIZEOF(lis[1]); - IF (n1 <> ((u1 - low1) + 1)) AND (n2 <> ((u2 - low2) + 1)) THEN - RETURN(?); - END_IF; - REPEAT i := 1 TO n1 BY 1; - IF SIZEOF(lis[i]) <> n2 THEN - RETURN(?); - END_IF; - END_REPEAT; - REPEAT i := 1 TO n1 BY 1; - resl[i] := list_to_array(lis[i],low2,u2); - END_REPEAT; - res := list_to_array(resl,low1,u1); - RETURN(res); - -END_FUNCTION; -- make_array_of_array - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION second_proj_axis(\n z_axis, x_axis, arg: direction\n ): direction;\n\n LOCAL\n temp : vector;\n v : direction;\n y_axis : vector;\n END_LOCAL;\n IF NOT EXISTS(arg) THEN\n v := direction([0,1,0]);\n ELSE\n v := arg;\n END_IF;\n temp := scalar_times_vector(dot_product(v,z_axis),z_axis);\n y_axis := vector_difference(v,temp);\n temp := scalar_times_vector(dot_product(v,x_axis),x_axis);\n y_axis := vector_difference(y_axis,temp);\n y_axis := normalise(y_axis);\n RETURN(y_axis.orientation);\n\nEND_FUNCTION; -- second_proj_axis\n"); -#endif -/* -FUNCTION second_proj_axis( - z_axis, x_axis, arg: direction - ): direction; - - LOCAL - temp : vector; - v : direction; - y_axis : vector; - END_LOCAL; - IF NOT EXISTS(arg) THEN - v := direction([0,1,0]); - ELSE - v := arg; - END_IF; - temp := scalar_times_vector(dot_product(v,z_axis),z_axis); - y_axis := vector_difference(v,temp); - temp := scalar_times_vector(dot_product(v,x_axis),x_axis); - y_axis := vector_difference(y_axis,temp); - y_axis := normalise(y_axis); - RETURN(y_axis.orientation); - -END_FUNCTION; -- second_proj_axis - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION bag_to_set(\n the_bag: BAG OF GENERIC:intype\n ): SET OF GENERIC:intype;\n\n LOCAL\n i : INTEGER;\n the_set : SET OF GENERIC:intype := [];\n END_LOCAL;\n IF SIZEOF(the_bag) > 0 THEN\n REPEAT i := 1 TO HIINDEX(the_bag) BY 1;\n the_set := the_set + the_bag[i];\n END_REPEAT;\n END_IF;\n RETURN(the_set);\n\nEND_FUNCTION; -- bag_to_set\n"); -#endif -/* -FUNCTION bag_to_set( - the_bag: BAG OF GENERIC:intype - ): SET OF GENERIC:intype; - - LOCAL - i : INTEGER; - the_set : SET OF GENERIC:intype := []; - END_LOCAL; - IF SIZEOF(the_bag) > 0 THEN - REPEAT i := 1 TO HIINDEX(the_bag) BY 1; - the_set := the_set + the_bag[i]; - END_REPEAT; - END_IF; - RETURN(the_set); - -END_FUNCTION; -- bag_to_set - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION valid_wireframe_edge_curve(\n crv: curve;\n schma: STRING\n ): BOOLEAN;\n IF SIZEOF([schma + '.LINE',schma + '.CIRCLE',schma + '.ELLIPSE',schma + \n '.PARABOLA',schma + '.HYPERBOLA',schma + '.B_SPLINE_CURVE',schma + \n '.POLYLINE'] * TYPEOF(crv)) = 1 THEN\n RETURN(TRUE);\n ELSE\n IF (schma + '.CURVE_REPLICA') IN TYPEOF(crv) THEN\n RETURN(valid_wireframe_edge_curve(crv\\curve_replica.parent_curve,\n schma));\n ELSE\n IF (schma + '.OFFSET_CURVE_3D') IN TYPEOF(crv) THEN\n RETURN(valid_wireframe_edge_curve(crv\\offset_curve_3d.basis_curve,\n schma));\n END_IF;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- valid_wireframe_edge_curve\n"); -#endif -/* -FUNCTION valid_wireframe_edge_curve( - crv: curve; - schma: STRING - ): BOOLEAN; - IF SIZEOF([schma + '.LINE',schma + '.CIRCLE',schma + '.ELLIPSE',schma + - '.PARABOLA',schma + '.HYPERBOLA',schma + '.B_SPLINE_CURVE',schma + - '.POLYLINE'] * TYPEOF(crv)) = 1 THEN - RETURN(TRUE); - ELSE - IF (schma + '.CURVE_REPLICA') IN TYPEOF(crv) THEN - RETURN(valid_wireframe_edge_curve(crv\curve_replica.parent_curve, - schma)); - ELSE - IF (schma + '.OFFSET_CURVE_3D') IN TYPEOF(crv) THEN - RETURN(valid_wireframe_edge_curve(crv\offset_curve_3d.basis_curve, - schma)); - END_IF; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- valid_wireframe_edge_curve - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION acyclic_product_category_relationship(\n relation: product_category_relationship;\n children: SET OF product_category\n ): LOGICAL;\n\n LOCAL\n i : INTEGER;\n x : SET OF product_category_relationship;\n local_children : SET OF product_category;\n END_LOCAL;\n REPEAT i := 1 TO HIINDEX(children) BY 1;\n IF relation.category :=: children[i] THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n x := bag_to_set(USEDIN(relation.category,'CONFIG_CONTROL_DESIGN.' + \n 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY'));\n local_children := children + relation.category;\n IF SIZEOF(x) > 0 THEN\n REPEAT i := 1 TO HIINDEX(x) BY 1;\n IF NOT acyclic_product_category_relationship(x[i],local_children)\n THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n END_IF;\n RETURN(TRUE);\n\nEND_FUNCTION; -- acyclic_product_category_relationship\n"); -#endif -/* -FUNCTION acyclic_product_category_relationship( - relation: product_category_relationship; - children: SET OF product_category - ): LOGICAL; - - LOCAL - i : INTEGER; - x : SET OF product_category_relationship; - local_children : SET OF product_category; - END_LOCAL; - REPEAT i := 1 TO HIINDEX(children) BY 1; - IF relation.category :=: children[i] THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - x := bag_to_set(USEDIN(relation.category,'CONFIG_CONTROL_DESIGN.' + - 'PRODUCT_CATEGORY_RELATIONSHIP.SUB_CATEGORY')); - local_children := children + relation.category; - IF SIZEOF(x) > 0 THEN - REPEAT i := 1 TO HIINDEX(x) BY 1; - IF NOT acyclic_product_category_relationship(x[i],local_children) - THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_IF; - RETURN(TRUE); - -END_FUNCTION; -- acyclic_product_category_relationship - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION surface_weights_positive(\n b: rational_b_spline_surface\n ): BOOLEAN;\n\n LOCAL\n result : BOOLEAN := TRUE;\n END_LOCAL;\n REPEAT i := 0 TO b.u_upper BY 1;\n REPEAT j := 0 TO b.v_upper BY 1;\n IF b.weights[i][j] <= 0 THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n END_REPEAT;\n END_REPEAT;\n RETURN(result);\n\nEND_FUNCTION; -- surface_weights_positive\n"); -#endif -/* -FUNCTION surface_weights_positive( - b: rational_b_spline_surface - ): BOOLEAN; - - LOCAL - result : BOOLEAN := TRUE; - END_LOCAL; - REPEAT i := 0 TO b.u_upper BY 1; - REPEAT j := 0 TO b.v_upper BY 1; - IF b.weights[i][j] <= 0 THEN - result := FALSE; - RETURN(result); - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(result); - -END_FUNCTION; -- surface_weights_positive - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION vector_difference(\n arg1, arg2: vector_or_direction\n ): vector;\n\n LOCAL\n ndim : INTEGER;\n mag2 : REAL;\n mag1 : REAL;\n mag : REAL;\n res : direction;\n vec1 : direction;\n vec2 : direction;\n result : vector;\n END_LOCAL;\n IF (NOT EXISTS(arg1)) OR (NOT EXISTS(arg2)) OR (arg1.dim <> arg2.dim)\n THEN\n result := ?;\n ELSE\n BEGIN\n IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(arg1) THEN\n mag1 := arg1.magnitude;\n vec1 := arg1.orientation;\n ELSE\n mag1 := 1;\n vec1 := arg1;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(arg2) THEN\n mag2 := arg2.magnitude;\n vec2 := arg2.orientation;\n ELSE\n mag2 := 1;\n vec2 := arg2;\n END_IF;\n vec1 := normalise(vec1);\n vec2 := normalise(vec2);\n ndim := SIZEOF(vec1.direction_ratios);\n mag := 0;\n REPEAT i := 1 TO ndim BY 1;\n res.direction_ratios[i] := (mag1 * vec1.direction_ratios[i]) - (\n mag2 * vec2.direction_ratios[i]);\n mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]);\n END_REPEAT;\n IF mag > 0 THEN\n result.magnitude := SQRT(mag);\n result.orientation := res;\n ELSE\n result.magnitude := 0;\n result.orientation := vec1;\n END_IF;\n END;\n END_IF;\n RETURN(result);\n\nEND_FUNCTION; -- vector_difference\n"); -#endif -/* -FUNCTION vector_difference( - arg1, arg2: vector_or_direction - ): vector; - - LOCAL - ndim : INTEGER; - mag2 : REAL; - mag1 : REAL; - mag : REAL; - res : direction; - vec1 : direction; - vec2 : direction; - result : vector; - END_LOCAL; - IF (NOT EXISTS(arg1)) OR (NOT EXISTS(arg2)) OR (arg1.dim <> arg2.dim) - THEN - result := ?; - ELSE - BEGIN - IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(arg1) THEN - mag1 := arg1.magnitude; - vec1 := arg1.orientation; - ELSE - mag1 := 1; - vec1 := arg1; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(arg2) THEN - mag2 := arg2.magnitude; - vec2 := arg2.orientation; - ELSE - mag2 := 1; - vec2 := arg2; - END_IF; - vec1 := normalise(vec1); - vec2 := normalise(vec2); - ndim := SIZEOF(vec1.direction_ratios); - mag := 0; - REPEAT i := 1 TO ndim BY 1; - res.direction_ratios[i] := (mag1 * vec1.direction_ratios[i]) - ( - mag2 * vec2.direction_ratios[i]); - mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]); - END_REPEAT; - IF mag > 0 THEN - result.magnitude := SQRT(mag); - result.orientation := res; - ELSE - result.magnitude := 0; - result.orientation := vec1; - END_IF; - END; - END_IF; - RETURN(result); - -END_FUNCTION; -- vector_difference - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION acyclic_product_definition_relationship(\n relation: product_definition_relationship;\n relatives: SET OF product_definition;\n specific_relation: STRING\n ): LOGICAL;\n\n LOCAL\n i : INTEGER;\n x : SET OF product_definition_relationship;\n local_relatives : SET OF product_definition;\n END_LOCAL;\n REPEAT i := 1 TO HIINDEX(relatives) BY 1;\n IF relation.relating_product_definition :=: relatives[i] THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n x := bag_to_set(USEDIN(relation.relating_product_definition,\n specific_relation));\n local_relatives := relatives + relation.relating_product_definition;\n IF SIZEOF(x) > 0 THEN\n REPEAT i := 1 TO HIINDEX(x) BY 1;\n IF NOT acyclic_product_definition_relationship(x[i],local_relatives,\n specific_relation) THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n END_IF;\n RETURN(TRUE);\n\nEND_FUNCTION; -- acyclic_product_definition_relationship\n"); -#endif -/* -FUNCTION acyclic_product_definition_relationship( - relation: product_definition_relationship; - relatives: SET OF product_definition; - specific_relation: STRING - ): LOGICAL; - - LOCAL - i : INTEGER; - x : SET OF product_definition_relationship; - local_relatives : SET OF product_definition; - END_LOCAL; - REPEAT i := 1 TO HIINDEX(relatives) BY 1; - IF relation.relating_product_definition :=: relatives[i] THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - x := bag_to_set(USEDIN(relation.relating_product_definition, - specific_relation)); - local_relatives := relatives + relation.relating_product_definition; - IF SIZEOF(x) > 0 THEN - REPEAT i := 1 TO HIINDEX(x) BY 1; - IF NOT acyclic_product_definition_relationship(x[i],local_relatives, - specific_relation) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_IF; - RETURN(TRUE); - -END_FUNCTION; -- acyclic_product_definition_relationship - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION constraints_geometry_shell_based_wireframe_model(\n m: shell_based_wireframe_model\n ): BOOLEAN;\n\n LOCAL\n result : BOOLEAN := TRUE;\n END_LOCAL;\n REPEAT j := 1 TO SIZEOF(m.sbwm_boundary) BY 1;\n IF (NOT ('CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF(m.sbwm_boundary[\n j]))) AND (NOT ('CONFIG_CONTROL_DESIGN.VERTEX_SHELL' IN TYPEOF(m.\n sbwm_boundary[j]))) THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n END_REPEAT;\n RETURN(result);\n\nEND_FUNCTION; -- constraints_geometry_shell_based_wireframe_model\n"); -#endif -/* -FUNCTION constraints_geometry_shell_based_wireframe_model( - m: shell_based_wireframe_model - ): BOOLEAN; - - LOCAL - result : BOOLEAN := TRUE; - END_LOCAL; - REPEAT j := 1 TO SIZEOF(m.sbwm_boundary) BY 1; - IF (NOT ('CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF(m.sbwm_boundary[ - j]))) AND (NOT ('CONFIG_CONTROL_DESIGN.VERTEX_SHELL' IN TYPEOF(m. - sbwm_boundary[j]))) THEN - result := FALSE; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); - -END_FUNCTION; -- constraints_geometry_shell_based_wireframe_model - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION list_to_set(\n l: LIST [0:?] OF GENERIC:t\n ): SET OF GENERIC:t;\n\n LOCAL\n s : SET OF GENERIC:t := [];\n END_LOCAL;\n REPEAT i := 1 TO SIZEOF(l) BY 1;\n s := s + l[i];\n END_REPEAT;\n RETURN(s);\n\nEND_FUNCTION; -- list_to_set\n"); -#endif -/* -FUNCTION list_to_set( - l: LIST [0:?] OF GENERIC:t - ): SET OF GENERIC:t; - - LOCAL - s : SET OF GENERIC:t := []; - END_LOCAL; - REPEAT i := 1 TO SIZEOF(l) BY 1; - s := s + l[i]; - END_REPEAT; - RETURN(s); - -END_FUNCTION; -- list_to_set - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION valid_calendar_date(\n date: calendar_date\n ): LOGICAL;\n IF NOT ((1 <= date.day_component) AND (date.day_component <= 31)) THEN\n RETURN(FALSE);\n END_IF;\n CASE date.month_component OF\n 4 : RETURN((1 <= date.day_component) AND (date.\n day_component <= 30));\n 6 : RETURN((1 <= date.day_component) AND (date.\n day_component <= 30));\n 9 : RETURN((1 <= date.day_component) AND (date.\n day_component <= 30));\n 11 : RETURN((1 <= date.day_component) AND (date.\n day_component <= 30));\n 2 : BEGIN\n IF leap_year(date.year_component) THEN\n RETURN((1 <= date.day_component) AND (date.day_component <= 29));\n ELSE\n RETURN((1 <= date.day_component) AND (date.day_component <= 28));\n END_IF;\n END;\n OTHERWISE : RETURN(TRUE);\n END_CASE;\n\nEND_FUNCTION; -- valid_calendar_date\n"); -#endif -/* -FUNCTION valid_calendar_date( - date: calendar_date - ): LOGICAL; - IF NOT ((1 <= date.day_component) AND (date.day_component <= 31)) THEN - RETURN(FALSE); - END_IF; - CASE date.month_component OF - 4 : RETURN((1 <= date.day_component) AND (date. - day_component <= 30)); - 6 : RETURN((1 <= date.day_component) AND (date. - day_component <= 30)); - 9 : RETURN((1 <= date.day_component) AND (date. - day_component <= 30)); - 11 : RETURN((1 <= date.day_component) AND (date. - day_component <= 30)); - 2 : BEGIN - IF leap_year(date.year_component) THEN - RETURN((1 <= date.day_component) AND (date.day_component <= 29)); - ELSE - RETURN((1 <= date.day_component) AND (date.day_component <= 28)); - END_IF; - END; - OTHERWISE : RETURN(TRUE); - END_CASE; - -END_FUNCTION; -- valid_calendar_date - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION valid_wireframe_vertex_point(\n pnt: point;\n schma: STRING\n ): BOOLEAN;\n IF (schma + '.CARTESIAN_POINT') IN TYPEOF(pnt) THEN\n RETURN(TRUE);\n ELSE\n IF (schma + '.POINT_REPLICA') IN TYPEOF(pnt) THEN\n RETURN(valid_wireframe_vertex_point(pnt\\point_replica.parent_pt,\n schma));\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- valid_wireframe_vertex_point\n"); -#endif -/* -FUNCTION valid_wireframe_vertex_point( - pnt: point; - schma: STRING - ): BOOLEAN; - IF (schma + '.CARTESIAN_POINT') IN TYPEOF(pnt) THEN - RETURN(TRUE); - ELSE - IF (schma + '.POINT_REPLICA') IN TYPEOF(pnt) THEN - RETURN(valid_wireframe_vertex_point(pnt\point_replica.parent_pt, - schma)); - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- valid_wireframe_vertex_point - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION list_to_array(\n lis: LIST [0:?] OF GENERIC:t;\n low, u: INTEGER\n ): ARRAY [low:u] OF GENERIC:t;\n\n LOCAL\n n : INTEGER;\n res : ARRAY [low:u] OF GENERIC:t;\n END_LOCAL;\n n := SIZEOF(lis);\n IF n <> ((u - low) + 1) THEN\n RETURN(?);\n ELSE\n REPEAT i := 1 TO n BY 1;\n res[(low + i) - 1] := lis[i];\n END_REPEAT;\n RETURN(res);\n END_IF;\n\nEND_FUNCTION; -- list_to_array\n"); -#endif -/* -FUNCTION list_to_array( - lis: LIST [0:?] OF GENERIC:t; - low, u: INTEGER - ): ARRAY [low:u] OF GENERIC:t; - - LOCAL - n : INTEGER; - res : ARRAY [low:u] OF GENERIC:t; - END_LOCAL; - n := SIZEOF(lis); - IF n <> ((u - low) + 1) THEN - RETURN(?); - ELSE - REPEAT i := 1 TO n BY 1; - res[(low + i) - 1] := lis[i]; - END_REPEAT; - RETURN(res); - END_IF; - -END_FUNCTION; -- list_to_array - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION constraints_geometry_shell_based_surface_model(\n m: shell_based_surface_model\n ): BOOLEAN;\n\n LOCAL\n result : BOOLEAN := TRUE;\n END_LOCAL;\n REPEAT j := 1 TO SIZEOF(m.sbsm_boundary) BY 1;\n IF (NOT ('CONFIG_CONTROL_DESIGN.OPEN_SHELL' IN TYPEOF(m.sbsm_boundary[\n j]))) AND (NOT ('CONFIG_CONTROL_DESIGN.CLOSED_SHELL' IN TYPEOF(m.\n sbsm_boundary[j]))) THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n END_REPEAT;\n RETURN(result);\n\nEND_FUNCTION; -- constraints_geometry_shell_based_surface_model\n"); -#endif -/* -FUNCTION constraints_geometry_shell_based_surface_model( - m: shell_based_surface_model - ): BOOLEAN; - - LOCAL - result : BOOLEAN := TRUE; - END_LOCAL; - REPEAT j := 1 TO SIZEOF(m.sbsm_boundary) BY 1; - IF (NOT ('CONFIG_CONTROL_DESIGN.OPEN_SHELL' IN TYPEOF(m.sbsm_boundary[ - j]))) AND (NOT ('CONFIG_CONTROL_DESIGN.CLOSED_SHELL' IN TYPEOF(m. - sbsm_boundary[j]))) THEN - result := FALSE; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); - -END_FUNCTION; -- constraints_geometry_shell_based_surface_model - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION face_bound_reversed(\n a_face_bound: face_bound\n ): face_bound;\n\n LOCAL\n the_reverse : face_bound;\n END_LOCAL;\n IF 'CONFIG_CONTROL_DESIGN.FACE_OUTER_BOUND' IN TYPEOF(a_face_bound)\n THEN\n the_reverse := face_bound(a_face_bound\\face_bound.bound,NOT \n a_face_bound\\face_bound.orientation);\n ELSE\n the_reverse := face_bound(a_face_bound.bound,NOT a_face_bound.\n orientation);\n END_IF;\n RETURN(the_reverse);\n\nEND_FUNCTION; -- face_bound_reversed\n"); -#endif -/* -FUNCTION face_bound_reversed( - a_face_bound: face_bound - ): face_bound; - - LOCAL - the_reverse : face_bound; - END_LOCAL; - IF 'CONFIG_CONTROL_DESIGN.FACE_OUTER_BOUND' IN TYPEOF(a_face_bound) - THEN - the_reverse := face_bound(a_face_bound\face_bound.bound,NOT - a_face_bound\face_bound.orientation); - ELSE - the_reverse := face_bound(a_face_bound.bound,NOT a_face_bound. - orientation); - END_IF; - RETURN(the_reverse); - -END_FUNCTION; -- face_bound_reversed - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION set_of_topology_reversed(\n a_set: set_of_reversible_topology_item\n ): set_of_reversible_topology_item;\n\n LOCAL\n the_reverse : set_of_reversible_topology_item;\n END_LOCAL;\n the_reverse := [];\n REPEAT i := 1 TO SIZEOF(a_set) BY 1;\n the_reverse := the_reverse + topology_reversed(a_set[i]);\n END_REPEAT;\n RETURN(the_reverse);\n\nEND_FUNCTION; -- set_of_topology_reversed\n"); -#endif -/* -FUNCTION set_of_topology_reversed( - a_set: set_of_reversible_topology_item - ): set_of_reversible_topology_item; - - LOCAL - the_reverse : set_of_reversible_topology_item; - END_LOCAL; - the_reverse := []; - REPEAT i := 1 TO SIZEOF(a_set) BY 1; - the_reverse := the_reverse + topology_reversed(a_set[i]); - END_REPEAT; - RETURN(the_reverse); - -END_FUNCTION; -- set_of_topology_reversed - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION dimension_of(\n item: geometric_representation_item\n ): dimension_count;\n\n LOCAL\n x : SET OF representation;\n y : representation_context;\n END_LOCAL;\n x := using_representations(item);\n IF SIZEOF(x) > 0 THEN\n y := x[1].context_of_items;\n RETURN(y\\geometric_representation_context.coordinate_space_dimension);\n END_IF;\n\nEND_FUNCTION; -- dimension_of\n"); -#endif -/* -FUNCTION dimension_of( - item: geometric_representation_item - ): dimension_count; - - LOCAL - x : SET OF representation; - y : representation_context; - END_LOCAL; - x := using_representations(item); - IF SIZEOF(x) > 0 THEN - y := x[1].context_of_items; - RETURN(y\geometric_representation_context.coordinate_space_dimension); - END_IF; - -END_FUNCTION; -- dimension_of - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION scalar_times_vector(\n scalar: REAL;\n vec: vector_or_direction\n ): vector;\n\n LOCAL\n v : direction;\n mag : REAL;\n result : vector;\n END_LOCAL;\n IF (NOT EXISTS(scalar)) OR (NOT EXISTS(vec)) THEN\n result := ?;\n ELSE\n IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(vec) THEN\n v := vec.orientation;\n mag := scalar * vec.magnitude;\n ELSE\n v := vec;\n mag := scalar;\n END_IF;\n IF mag < 0 THEN\n REPEAT i := 1 TO SIZEOF(v.direction_ratios) BY 1;\n v.direction_ratios[i] := -v.direction_ratios[i];\n END_REPEAT;\n mag := -mag;\n END_IF;\n result.orientation := normalise(v);\n result.magnitude := mag;\n END_IF;\n RETURN(result);\n\nEND_FUNCTION; -- scalar_times_vector\n"); -#endif -/* -FUNCTION scalar_times_vector( - scalar: REAL; - vec: vector_or_direction - ): vector; - - LOCAL - v : direction; - mag : REAL; - result : vector; - END_LOCAL; - IF (NOT EXISTS(scalar)) OR (NOT EXISTS(vec)) THEN - result := ?; - ELSE - IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(vec) THEN - v := vec.orientation; - mag := scalar * vec.magnitude; - ELSE - v := vec; - mag := scalar; - END_IF; - IF mag < 0 THEN - REPEAT i := 1 TO SIZEOF(v.direction_ratios) BY 1; - v.direction_ratios[i] := -v.direction_ratios[i]; - END_REPEAT; - mag := -mag; - END_IF; - result.orientation := normalise(v); - result.magnitude := mag; - END_IF; - RETURN(result); - -END_FUNCTION; -- scalar_times_vector - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION dimensions_for_si_unit(\n n: si_unit_name\n ): dimensional_exponents;\n CASE n OF\n metre : RETURN(dimensional_exponents(1,0,0,0,0,0,0));\n gram : RETURN(dimensional_exponents(0,1,0,0,0,0,0));\n second : RETURN(dimensional_exponents(0,0,1,0,0,0,0));\n ampere : RETURN(dimensional_exponents(0,0,0,1,0,0,0));\n kelvin : RETURN(dimensional_exponents(0,0,0,0,1,0,0));\n mole : RETURN(dimensional_exponents(0,0,0,0,0,1,0));\n candela : RETURN(dimensional_exponents(0,0,0,0,0,0,1));\n radian : RETURN(dimensional_exponents(0,0,0,0,0,0,0));\n steradian : RETURN(dimensional_exponents(0,0,0,0,0,0,0));\n hertz : RETURN(dimensional_exponents(0,0,-1,0,0,0,0));\n newton : RETURN(dimensional_exponents(1,1,-2,0,0,0,0));\n pascal : RETURN(dimensional_exponents(-1,1,-2,0,0,0,0));\n joule : RETURN(dimensional_exponents(2,1,-2,0,0,0,0));\n watt : RETURN(dimensional_exponents(2,1,-3,0,0,0,0));\n coulomb : RETURN(dimensional_exponents(0,0,1,1,0,0,0));\n volt : RETURN(dimensional_exponents(2,1,-3,-1,0,0,0));\n farad : RETURN(dimensional_exponents(-2,-1,4,1,0,0,0));\n ohm : RETURN(dimensional_exponents(2,1,-3,-2,0,0,0));\n siemens : RETURN(dimensional_exponents(-2,-1,3,2,0,0,0));\n weber : RETURN(dimensional_exponents(2,1,-2,-1,0,0,0));\n tesla : RETURN(dimensional_exponents(0,1,-2,-1,0,0,0));\n henry : RETURN(dimensional_exponents(2,1,-2,-2,0,0,0));\n degree_celsius : RETURN(dimensional_exponents(0,0,0,0,1,0,0));\n lumen : RETURN(dimensional_exponents(0,0,0,0,0,0,1));\n lux : RETURN(dimensional_exponents(-2,0,0,0,0,0,1));\n becquerel : RETURN(dimensional_exponents(0,0,-1,0,0,0,0));\n gray : RETURN(dimensional_exponents(2,0,-2,0,0,0,0));\n sievert : RETURN(dimensional_exponents(2,0,-2,0,0,0,0));\n END_CASE;\n\nEND_FUNCTION; -- dimensions_for_si_unit\n"); -#endif -/* -FUNCTION dimensions_for_si_unit( - n: si_unit_name - ): dimensional_exponents; - CASE n OF - metre : RETURN(dimensional_exponents(1,0,0,0,0,0,0)); - gram : RETURN(dimensional_exponents(0,1,0,0,0,0,0)); - second : RETURN(dimensional_exponents(0,0,1,0,0,0,0)); - ampere : RETURN(dimensional_exponents(0,0,0,1,0,0,0)); - kelvin : RETURN(dimensional_exponents(0,0,0,0,1,0,0)); - mole : RETURN(dimensional_exponents(0,0,0,0,0,1,0)); - candela : RETURN(dimensional_exponents(0,0,0,0,0,0,1)); - radian : RETURN(dimensional_exponents(0,0,0,0,0,0,0)); - steradian : RETURN(dimensional_exponents(0,0,0,0,0,0,0)); - hertz : RETURN(dimensional_exponents(0,0,-1,0,0,0,0)); - newton : RETURN(dimensional_exponents(1,1,-2,0,0,0,0)); - pascal : RETURN(dimensional_exponents(-1,1,-2,0,0,0,0)); - joule : RETURN(dimensional_exponents(2,1,-2,0,0,0,0)); - watt : RETURN(dimensional_exponents(2,1,-3,0,0,0,0)); - coulomb : RETURN(dimensional_exponents(0,0,1,1,0,0,0)); - volt : RETURN(dimensional_exponents(2,1,-3,-1,0,0,0)); - farad : RETURN(dimensional_exponents(-2,-1,4,1,0,0,0)); - ohm : RETURN(dimensional_exponents(2,1,-3,-2,0,0,0)); - siemens : RETURN(dimensional_exponents(-2,-1,3,2,0,0,0)); - weber : RETURN(dimensional_exponents(2,1,-2,-1,0,0,0)); - tesla : RETURN(dimensional_exponents(0,1,-2,-1,0,0,0)); - henry : RETURN(dimensional_exponents(2,1,-2,-2,0,0,0)); - degree_celsius : RETURN(dimensional_exponents(0,0,0,0,1,0,0)); - lumen : RETURN(dimensional_exponents(0,0,0,0,0,0,1)); - lux : RETURN(dimensional_exponents(-2,0,0,0,0,0,1)); - becquerel : RETURN(dimensional_exponents(0,0,-1,0,0,0,0)); - gray : RETURN(dimensional_exponents(2,0,-2,0,0,0,0)); - sievert : RETURN(dimensional_exponents(2,0,-2,0,0,0,0)); - END_CASE; - -END_FUNCTION; -- dimensions_for_si_unit - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION assembly_shape_is_defined(\n assy: next_assembly_usage_occurrence\n ): BOOLEAN;\n\n LOCAL\n srr_set : SET OF shape_representation_relationship := [];\n sdr_set : SET OF shape_definition_representation := [];\n END_LOCAL;\n sdr_set := QUERY ( pdr <* bag_to_set(USEDIN(assy.\n related_product_definition,\n 'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.' + \n 'DEFINITION.DEFINITION')) | (\n 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)) ) \n + QUERY ( pdr <* bag_to_set(USEDIN(assy.related_product_definition,\n 'CONFIG_CONTROL_DESIGN.' + \n 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION.' + \n 'DEFINITION.RELATED_PRODUCT_DEFINITION')) | (\n 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)) );\n IF SIZEOF(sdr_set) > 0 THEN\n REPEAT i := 1 TO HIINDEX(sdr_set) BY 1;\n srr_set := QUERY ( rr <* bag_to_set(USEDIN(sdr_set[i]\\\n property_definition_representation.used_representation,\n 'CONFIG_CONTROL_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2')) | (\n 'CONFIG_CONTROL_DESIGN.SHAPE_REPRESENTATION_RELATIONSHIP' IN \n TYPEOF(rr)) );\n IF SIZEOF(srr_set) > 0 THEN\n REPEAT j := 1 TO HIINDEX(srr_set) BY 1;\n IF SIZEOF(QUERY ( pdr <* bag_to_set(USEDIN(srr_set[j]\\\n representation_relationship.rep_1,\n 'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.' +\n 'USED_REPRESENTATION')) | (\n 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN \n TYPEOF(pdr)) ) * QUERY ( pdr <* bag_to_set(USEDIN(assy.\n relating_product_definition,\n 'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.' +\n 'USED_REPRESENTATION.DEFINITION')) | (\n 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN \n TYPEOF(pdr)) )) >= 1 THEN\n IF SIZEOF(QUERY ( cdsr <* USEDIN(assy,'CONFIG_CONTROL_DESIGN.' \n + 'CONTEXT_DEPENDENT_SHAPE_REPRESENTATION.' + \n 'REPRESENTED_PRODUCT_RELATION') | (NOT ((cdsr.\n represented_product_relation.definition :=: assy) AND (cdsr\n .representation_relation :=: srr_set[j]))) )) > 0 THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n END_REPEAT;\n END_IF;\n END_REPEAT;\n END_IF;\n RETURN(TRUE);\n\nEND_FUNCTION; -- assembly_shape_is_defined\n"); -#endif -/* -FUNCTION assembly_shape_is_defined( - assy: next_assembly_usage_occurrence - ): BOOLEAN; - - LOCAL - srr_set : SET OF shape_representation_relationship := []; - sdr_set : SET OF shape_definition_representation := []; - END_LOCAL; - sdr_set := QUERY ( pdr <* bag_to_set(USEDIN(assy. - related_product_definition, - 'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.' + - 'DEFINITION.DEFINITION')) | ( - 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)) ) - + QUERY ( pdr <* bag_to_set(USEDIN(assy.related_product_definition, - 'CONFIG_CONTROL_DESIGN.' + - 'PROPERTY_DEFINITION_REPRESENTATION.DEFINITION.' + - 'DEFINITION.RELATED_PRODUCT_DEFINITION')) | ( - 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN TYPEOF(pdr)) ); - IF SIZEOF(sdr_set) > 0 THEN - REPEAT i := 1 TO HIINDEX(sdr_set) BY 1; - srr_set := QUERY ( rr <* bag_to_set(USEDIN(sdr_set[i]\ - property_definition_representation.used_representation, - 'CONFIG_CONTROL_DESIGN.REPRESENTATION_RELATIONSHIP.REP_2')) | ( - 'CONFIG_CONTROL_DESIGN.SHAPE_REPRESENTATION_RELATIONSHIP' IN - TYPEOF(rr)) ); - IF SIZEOF(srr_set) > 0 THEN - REPEAT j := 1 TO HIINDEX(srr_set) BY 1; - IF SIZEOF(QUERY ( pdr <* bag_to_set(USEDIN(srr_set[j]\ - representation_relationship.rep_1, - 'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION')) | ( - 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)) ) * QUERY ( pdr <* bag_to_set(USEDIN(assy. - relating_product_definition, - 'CONFIG_CONTROL_DESIGN.PROPERTY_DEFINITION_REPRESENTATION.' + - 'USED_REPRESENTATION.DEFINITION')) | ( - 'CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION_REPRESENTATION' IN - TYPEOF(pdr)) )) >= 1 THEN - IF SIZEOF(QUERY ( cdsr <* USEDIN(assy,'CONFIG_CONTROL_DESIGN.' - + 'CONTEXT_DEPENDENT_SHAPE_REPRESENTATION.' + - 'REPRESENTED_PRODUCT_RELATION') | (NOT ((cdsr. - represented_product_relation.definition :=: assy) AND (cdsr - .representation_relation :=: srr_set[j]))) )) > 0 THEN - RETURN(FALSE); - END_IF; - END_IF; - END_REPEAT; - END_IF; - END_REPEAT; - END_IF; - RETURN(TRUE); - -END_FUNCTION; -- assembly_shape_is_defined - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION acyclic_surface_replica(\n rep: surface_replica;\n parent: surface\n ): BOOLEAN;\n IF NOT ('CONFIG_CONTROL_DESIGN.SURFACE_REPLICA' IN TYPEOF(parent)) THEN\n RETURN(TRUE);\n END_IF;\n IF parent :=: rep THEN\n RETURN(FALSE);\n ELSE\n RETURN(acyclic_surface_replica(rep,parent\\surface_replica.\n parent_surface));\n END_IF;\n\nEND_FUNCTION; -- acyclic_surface_replica\n"); -#endif -/* -FUNCTION acyclic_surface_replica( - rep: surface_replica; - parent: surface - ): BOOLEAN; - IF NOT ('CONFIG_CONTROL_DESIGN.SURFACE_REPLICA' IN TYPEOF(parent)) THEN - RETURN(TRUE); - END_IF; - IF parent :=: rep THEN - RETURN(FALSE); - ELSE - RETURN(acyclic_surface_replica(rep,parent\surface_replica. - parent_surface)); - END_IF; - -END_FUNCTION; -- acyclic_surface_replica - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION gbsf_check_surface(\n sf: surface;\n schema_name: STRING\n ): BOOLEAN;\n IF (NOT (schema_name + '.SURFACE')) IN TYPEOF(sf) THEN\n RETURN(TRUE);\n END_IF;\n IF (schema_name + '.B_SPLINE_SURFACE') IN TYPEOF(sf) THEN\n RETURN(NOT sf\\b_spline_surface.self_intersect);\n ELSE\n IF SIZEOF([schema_name + '.SPHERICAL_SURFACE',schema_name + \n '.TOROIDAL_SURFACE'] * TYPEOF(sf)) = 3 THEN\n RETURN(TRUE);\n ELSE\n IF (schema_name + '.CURVE_BOUNDED_SURFACE') IN TYPEOF(sf) THEN\n IF SIZEOF([schema_name + '.CONICAL_SURFACE',schema_name + \n '.CYLINDRICAL_SURFACE',schema_name + '.PLANE'] * TYPEOF(sf)) = \n 1 THEN\n RETURN(SIZEOF(QUERY ( bcurve <* sf\\curve_bounded_surface.\n boundaries | (NOT gbsf_check_curve(bcurve,schema_name)) )) = \n 0);\n ELSE\n IF gbsf_check_surface(sf\\curve_bounded_surface.basis_surface,\n schema_name) THEN\n RETURN(SIZEOF(QUERY ( bcurve <* sf\\curve_bounded_surface.\n boundaries | (NOT gbsf_check_curve(bcurve,schema_name)) )) \n = 0);\n END_IF;\n END_IF;\n ELSE\n IF (schema_name + '.OFFSET_SURFACE') IN TYPEOF(sf) THEN\n RETURN(gbsf_check_surface(sf\\offset_surface.basis_surface,\n schema_name) AND (NOT sf\\offset_surface.self_intersect));\n ELSE\n IF (schema_name + '.RECTANGULAR_COMPOSITE_SURFACE') IN TYPEOF(sf)\n THEN\n REPEAT i := 1 TO SIZEOF(sf\\rectangular_composite_surface.\n segments) BY 1;\n REPEAT j := 1 TO SIZEOF(sf\\rectangular_composite_surface.\n segments[i]) BY 1;\n IF NOT gbsf_check_surface(sf\\rectangular_composite_surface\n .segments[i][j].parent_surface,schema_name) THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n END_REPEAT;\n RETURN(TRUE);\n ELSE\n IF (schema_name + '.RECTANGULAR_TRIMMED_SURFACE') IN TYPEOF(sf)\n THEN\n IF SIZEOF([schema_name + '.CONICAL_SURFACE',schema_name + \n '.CYLINDRICAL_SURFACE',schema_name + '.PLANE'] * TYPEOF(\n sf\\rectangular_trimmed_surface.basis_surface)) = 1 THEN\n RETURN(TRUE);\n ELSE\n RETURN(gbsf_check_surface(sf\\rectangular_trimmed_surface.\n basis_surface,schema_name));\n END_IF;\n ELSE\n IF (schema_name + '.SURFACE_REPLICA') IN TYPEOF(sf) THEN\n RETURN(gbsf_check_surface(sf\\surface_replica.\n parent_surface,schema_name));\n ELSE\n IF (schema_name + '.SWEPT_SURFACE') IN TYPEOF(sf) THEN\n RETURN(gbsf_check_curve(sf\\swept_surface.swept_curve,\n schema_name));\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- gbsf_check_surface\n"); -#endif -/* -FUNCTION gbsf_check_surface( - sf: surface; - schema_name: STRING - ): BOOLEAN; - IF (NOT (schema_name + '.SURFACE')) IN TYPEOF(sf) THEN - RETURN(TRUE); - END_IF; - IF (schema_name + '.B_SPLINE_SURFACE') IN TYPEOF(sf) THEN - RETURN(NOT sf\b_spline_surface.self_intersect); - ELSE - IF SIZEOF([schema_name + '.SPHERICAL_SURFACE',schema_name + - '.TOROIDAL_SURFACE'] * TYPEOF(sf)) = 3 THEN - RETURN(TRUE); - ELSE - IF (schema_name + '.CURVE_BOUNDED_SURFACE') IN TYPEOF(sf) THEN - IF SIZEOF([schema_name + '.CONICAL_SURFACE',schema_name + - '.CYLINDRICAL_SURFACE',schema_name + '.PLANE'] * TYPEOF(sf)) = - 1 THEN - RETURN(SIZEOF(QUERY ( bcurve <* sf\curve_bounded_surface. - boundaries | (NOT gbsf_check_curve(bcurve,schema_name)) )) = - 0); - ELSE - IF gbsf_check_surface(sf\curve_bounded_surface.basis_surface, - schema_name) THEN - RETURN(SIZEOF(QUERY ( bcurve <* sf\curve_bounded_surface. - boundaries | (NOT gbsf_check_curve(bcurve,schema_name)) )) - = 0); - END_IF; - END_IF; - ELSE - IF (schema_name + '.OFFSET_SURFACE') IN TYPEOF(sf) THEN - RETURN(gbsf_check_surface(sf\offset_surface.basis_surface, - schema_name) AND (NOT sf\offset_surface.self_intersect)); - ELSE - IF (schema_name + '.RECTANGULAR_COMPOSITE_SURFACE') IN TYPEOF(sf) - THEN - REPEAT i := 1 TO SIZEOF(sf\rectangular_composite_surface. - segments) BY 1; - REPEAT j := 1 TO SIZEOF(sf\rectangular_composite_surface. - segments[i]) BY 1; - IF NOT gbsf_check_surface(sf\rectangular_composite_surface - .segments[i][j].parent_surface,schema_name) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(TRUE); - ELSE - IF (schema_name + '.RECTANGULAR_TRIMMED_SURFACE') IN TYPEOF(sf) - THEN - IF SIZEOF([schema_name + '.CONICAL_SURFACE',schema_name + - '.CYLINDRICAL_SURFACE',schema_name + '.PLANE'] * TYPEOF( - sf\rectangular_trimmed_surface.basis_surface)) = 1 THEN - RETURN(TRUE); - ELSE - RETURN(gbsf_check_surface(sf\rectangular_trimmed_surface. - basis_surface,schema_name)); - END_IF; - ELSE - IF (schema_name + '.SURFACE_REPLICA') IN TYPEOF(sf) THEN - RETURN(gbsf_check_surface(sf\surface_replica. - parent_surface,schema_name)); - ELSE - IF (schema_name + '.SWEPT_SURFACE') IN TYPEOF(sf) THEN - RETURN(gbsf_check_curve(sf\swept_surface.swept_curve, - schema_name)); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- gbsf_check_surface - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION normalise(\n arg: vector_or_direction\n ): vector_or_direction;\n\n LOCAL\n ndim : INTEGER;\n v : direction;\n vec : vector;\n mag : REAL;\n result : vector_or_direction;\n END_LOCAL;\n IF NOT EXISTS(arg) THEN\n result := ?;\n ELSE\n ndim := arg.dim;\n IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(arg) THEN\n BEGIN\n vec := arg;\n v := arg.orientation;\n IF arg.magnitude = 0 THEN\n RETURN(?);\n ELSE\n vec.magnitude := 1;\n END_IF;\n END;\n ELSE\n v := arg;\n END_IF;\n mag := 0;\n REPEAT i := 1 TO ndim BY 1;\n mag := mag + (v.direction_ratios[i] * v.direction_ratios[i]);\n END_REPEAT;\n IF mag > 0 THEN\n mag := SQRT(mag);\n REPEAT i := 1 TO ndim BY 1;\n v.direction_ratios[i] := v.direction_ratios[i] / mag;\n END_REPEAT;\n IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(arg) THEN\n vec.orientation := v;\n result := vec;\n ELSE\n result := v;\n END_IF;\n ELSE\n RETURN(?);\n END_IF;\n END_IF;\n RETURN(result);\n\nEND_FUNCTION; -- normalise\n"); -#endif -/* -FUNCTION normalise( - arg: vector_or_direction - ): vector_or_direction; - - LOCAL - ndim : INTEGER; - v : direction; - vec : vector; - mag : REAL; - result : vector_or_direction; - END_LOCAL; - IF NOT EXISTS(arg) THEN - result := ?; - ELSE - ndim := arg.dim; - IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(arg) THEN - BEGIN - vec := arg; - v := arg.orientation; - IF arg.magnitude = 0 THEN - RETURN(?); - ELSE - vec.magnitude := 1; - END_IF; - END; - ELSE - v := arg; - END_IF; - mag := 0; - REPEAT i := 1 TO ndim BY 1; - mag := mag + (v.direction_ratios[i] * v.direction_ratios[i]); - END_REPEAT; - IF mag > 0 THEN - mag := SQRT(mag); - REPEAT i := 1 TO ndim BY 1; - v.direction_ratios[i] := v.direction_ratios[i] / mag; - END_REPEAT; - IF 'CONFIG_CONTROL_DESIGN.VECTOR' IN TYPEOF(arg) THEN - vec.orientation := v; - result := vec; - ELSE - result := v; - END_IF; - ELSE - RETURN(?); - END_IF; - END_IF; - RETURN(result); - -END_FUNCTION; -- normalise - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION msb_shells(\n brep: manifold_solid_brep;\n schema_name: STRING\n ): SET [1:?] OF closed_shell;\n IF (schema_name + '.BREP_WITH_VOIDS') IN TYPEOF(brep) THEN\n RETURN(brep\\brep_with_voids.voids + brep.outer);\n ELSE\n RETURN([brep.outer]);\n END_IF;\n\nEND_FUNCTION; -- msb_shells\n"); -#endif -/* -FUNCTION msb_shells( - brep: manifold_solid_brep; - schema_name: STRING - ): SET [1:?] OF closed_shell; - IF (schema_name + '.BREP_WITH_VOIDS') IN TYPEOF(brep) THEN - RETURN(brep\brep_with_voids.voids + brep.outer); - ELSE - RETURN([brep.outer]); - END_IF; - -END_FUNCTION; -- msb_shells - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION mixed_loop_type_set(\n l: SET [0:?] OF loop\n ): LOGICAL;\n\n LOCAL\n i : INTEGER;\n poly_loop_type : LOGICAL;\n END_LOCAL;\n IF SIZEOF(l) <= 1 THEN\n RETURN(FALSE);\n END_IF;\n poly_loop_type := 'CONFIG_CONTROL_DESIGN.POLY_LOOP' IN TYPEOF(l[1]);\n REPEAT i := 2 TO SIZEOF(l) BY 1;\n IF ('CONFIG_CONTROL_DESIGN.POLY_LOOP' IN TYPEOF(l[i])) <> \n poly_loop_type THEN\n RETURN(TRUE);\n END_IF;\n END_REPEAT;\n RETURN(FALSE);\n\nEND_FUNCTION; -- mixed_loop_type_set\n"); -#endif -/* -FUNCTION mixed_loop_type_set( - l: SET [0:?] OF loop - ): LOGICAL; - - LOCAL - i : INTEGER; - poly_loop_type : LOGICAL; - END_LOCAL; - IF SIZEOF(l) <= 1 THEN - RETURN(FALSE); - END_IF; - poly_loop_type := 'CONFIG_CONTROL_DESIGN.POLY_LOOP' IN TYPEOF(l[1]); - REPEAT i := 2 TO SIZEOF(l) BY 1; - IF ('CONFIG_CONTROL_DESIGN.POLY_LOOP' IN TYPEOF(l[i])) <> - poly_loop_type THEN - RETURN(TRUE); - END_IF; - END_REPEAT; - RETURN(FALSE); - -END_FUNCTION; -- mixed_loop_type_set - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION derive_dimensional_exponents(\n x: unit\n ): dimensional_exponents;\n\n LOCAL\n result : dimensional_exponents := dimensional_exponents(0,0,0,0,0,0,0);\n END_LOCAL;\n result := x.dimensions;\n RETURN(result);\n\nEND_FUNCTION; -- derive_dimensional_exponents\n"); -#endif -/* -FUNCTION derive_dimensional_exponents( - x: unit - ): dimensional_exponents; - - LOCAL - result : dimensional_exponents := dimensional_exponents(0,0,0,0,0,0,0); - END_LOCAL; - result := x.dimensions; - RETURN(result); - -END_FUNCTION; -- derive_dimensional_exponents - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION curve_weights_positive(\n b: rational_b_spline_curve\n ): BOOLEAN;\n\n LOCAL\n result : BOOLEAN := TRUE;\n END_LOCAL;\n REPEAT i := 0 TO b.upper_index_on_control_points BY 1;\n IF b.weights[i] <= 0 THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n END_REPEAT;\n RETURN(result);\n\nEND_FUNCTION; -- curve_weights_positive\n"); -#endif -/* -FUNCTION curve_weights_positive( - b: rational_b_spline_curve - ): BOOLEAN; - - LOCAL - result : BOOLEAN := TRUE; - END_LOCAL; - REPEAT i := 0 TO b.upper_index_on_control_points BY 1; - IF b.weights[i] <= 0 THEN - result := FALSE; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); - -END_FUNCTION; -- curve_weights_positive - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION valid_geometrically_bounded_wf_point(\n pnt: point;\n schma: STRING\n ): BOOLEAN;\n IF (schma + '.CARTESIAN_POINT') IN TYPEOF(pnt) THEN\n RETURN(TRUE);\n ELSE\n IF (schma + '.POINT_ON_CURVE') IN TYPEOF(pnt) THEN\n RETURN(valid_geometrically_bounded_wf_curve(pnt\\point_on_curve.\n basis_curve,schma));\n ELSE\n IF (schma + '.POINT_REPLICA') IN TYPEOF(pnt) THEN\n RETURN(valid_geometrically_bounded_wf_point(pnt\\point_replica.\n parent_pt,schma));\n END_IF;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- valid_geometrically_bounded_wf_point\n"); -#endif -/* -FUNCTION valid_geometrically_bounded_wf_point( - pnt: point; - schma: STRING - ): BOOLEAN; - IF (schma + '.CARTESIAN_POINT') IN TYPEOF(pnt) THEN - RETURN(TRUE); - ELSE - IF (schma + '.POINT_ON_CURVE') IN TYPEOF(pnt) THEN - RETURN(valid_geometrically_bounded_wf_curve(pnt\point_on_curve. - basis_curve,schma)); - ELSE - IF (schma + '.POINT_REPLICA') IN TYPEOF(pnt) THEN - RETURN(valid_geometrically_bounded_wf_point(pnt\point_replica. - parent_pt,schma)); - END_IF; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- valid_geometrically_bounded_wf_point - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION path_head_to_tail(\n a_path: path\n ): LOGICAL;\n\n LOCAL\n n : INTEGER;\n p : LOGICAL := TRUE;\n END_LOCAL;\n n := SIZEOF(a_path.edge_list);\n REPEAT i := 2 TO n BY 1;\n p := p AND (a_path.edge_list[i - 1].edge_end :=: a_path.edge_list[i].\n edge_start);\n END_REPEAT;\n RETURN(p);\n\nEND_FUNCTION; -- path_head_to_tail\n"); -#endif -/* -FUNCTION path_head_to_tail( - a_path: path - ): LOGICAL; - - LOCAL - n : INTEGER; - p : LOGICAL := TRUE; - END_LOCAL; - n := SIZEOF(a_path.edge_list); - REPEAT i := 2 TO n BY 1; - p := p AND (a_path.edge_list[i - 1].edge_end :=: a_path.edge_list[i]. - edge_start); - END_REPEAT; - RETURN(p); - -END_FUNCTION; -- path_head_to_tail - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION path_reversed(\n a_path: path\n ): path;\n\n LOCAL\n the_reverse : path;\n END_LOCAL;\n IF 'CONFIG_CONTROL_DESIGN.ORIENTED_PATH' IN TYPEOF(a_path) THEN\n the_reverse := oriented_path(a_path\\oriented_path.path_element,NOT \n a_path\\oriented_path.orientation);\n ELSE\n the_reverse := oriented_path(a_path,FALSE);\n END_IF;\n RETURN(the_reverse);\n\nEND_FUNCTION; -- path_reversed\n"); -#endif -/* -FUNCTION path_reversed( - a_path: path - ): path; - - LOCAL - the_reverse : path; - END_LOCAL; - IF 'CONFIG_CONTROL_DESIGN.ORIENTED_PATH' IN TYPEOF(a_path) THEN - the_reverse := oriented_path(a_path\oriented_path.path_element,NOT - a_path\oriented_path.orientation); - ELSE - the_reverse := oriented_path(a_path,FALSE); - END_IF; - RETURN(the_reverse); - -END_FUNCTION; -- path_reversed - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION leap_year(\n year: year_number\n ): BOOLEAN;\n IF (((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0)\n THEN\n RETURN(TRUE);\n ELSE\n RETURN(FALSE);\n END_IF;\n\nEND_FUNCTION; -- leap_year\n"); -#endif -/* -FUNCTION leap_year( - year: year_number - ): BOOLEAN; - IF (((year MOD 4) = 0) AND ((year MOD 100) <> 0)) OR ((year MOD 400) = 0) - THEN - RETURN(TRUE); - ELSE - RETURN(FALSE); - END_IF; - -END_FUNCTION; -- leap_year - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION face_reversed(\n a_face: face\n ): face;\n\n LOCAL\n the_reverse : face;\n END_LOCAL;\n IF 'CONFIG_CONTROL_DESIGN.ORIENTED_FACE' IN TYPEOF(a_face) THEN\n the_reverse := oriented_face(a_face\\oriented_face.face_element,NOT \n a_face\\oriented_face.orientation);\n ELSE\n the_reverse := oriented_face(a_face,FALSE);\n END_IF;\n RETURN(the_reverse);\n\nEND_FUNCTION; -- face_reversed\n"); -#endif -/* -FUNCTION face_reversed( - a_face: face - ): face; - - LOCAL - the_reverse : face; - END_LOCAL; - IF 'CONFIG_CONTROL_DESIGN.ORIENTED_FACE' IN TYPEOF(a_face) THEN - the_reverse := oriented_face(a_face\oriented_face.face_element,NOT - a_face\oriented_face.orientation); - ELSE - the_reverse := oriented_face(a_face,FALSE); - END_IF; - RETURN(the_reverse); - -END_FUNCTION; -- face_reversed - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION constraints_param_b_spline(\n degree, up_knots, up_cp: INTEGER;\n knot_mult: LIST OF INTEGER;\n knots: LIST OF parameter_value\n ): BOOLEAN;\n\n LOCAL\n k : INTEGER;\n l : INTEGER;\n sum : INTEGER;\n result : BOOLEAN := TRUE;\n END_LOCAL;\n sum := knot_mult[1];\n REPEAT i := 2 TO up_knots BY 1;\n sum := sum + knot_mult[i];\n END_REPEAT;\n IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR (sum <> (degree \n + up_cp + 2)) THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n k := knot_mult[1];\n IF (k < 1) OR (k > (degree + 1)) THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n REPEAT i := 2 TO up_knots BY 1;\n IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1]) THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n k := knot_mult[i];\n IF (i < up_knots) AND (k > degree) THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n IF (i = up_knots) AND (k > (degree + 1)) THEN\n result := FALSE;\n RETURN(result);\n END_IF;\n END_REPEAT;\n RETURN(result);\n\nEND_FUNCTION; -- constraints_param_b_spline\n"); -#endif -/* -FUNCTION constraints_param_b_spline( - degree, up_knots, up_cp: INTEGER; - knot_mult: LIST OF INTEGER; - knots: LIST OF parameter_value - ): BOOLEAN; - - LOCAL - k : INTEGER; - l : INTEGER; - sum : INTEGER; - result : BOOLEAN := TRUE; - END_LOCAL; - sum := knot_mult[1]; - REPEAT i := 2 TO up_knots BY 1; - sum := sum + knot_mult[i]; - END_REPEAT; - IF (degree < 1) OR (up_knots < 2) OR (up_cp < degree) OR (sum <> (degree - + up_cp + 2)) THEN - result := FALSE; - RETURN(result); - END_IF; - k := knot_mult[1]; - IF (k < 1) OR (k > (degree + 1)) THEN - result := FALSE; - RETURN(result); - END_IF; - REPEAT i := 2 TO up_knots BY 1; - IF (knot_mult[i] < 1) OR (knots[i] <= knots[i - 1]) THEN - result := FALSE; - RETURN(result); - END_IF; - k := knot_mult[i]; - IF (i < up_knots) AND (k > degree) THEN - result := FALSE; - RETURN(result); - END_IF; - IF (i = up_knots) AND (k > (degree + 1)) THEN - result := FALSE; - RETURN(result); - END_IF; - END_REPEAT; - RETURN(result); - -END_FUNCTION; -- constraints_param_b_spline - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION using_representations(\n item: representation_item\n ): SET OF representation;\n\n LOCAL\n results : SET OF representation;\n i : INTEGER;\n intermediate_items : SET OF representation_item;\n result_bag : BAG OF representation;\n END_LOCAL;\n result_bag := USEDIN(item,'CONFIG_CONTROL_DESIGN.REPRESENTATION.ITEMS');\n IF SIZEOF(result_bag) > 0 THEN\n REPEAT i := 1 TO HIINDEX(result_bag) BY 1;\n results := results + result_bag[i];\n END_REPEAT;\n END_IF;\n intermediate_items := QUERY ( z <* bag_to_set(USEDIN(item,'')) | (\n 'CONFIG_CONTROL_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(z)) );\n IF SIZEOF(intermediate_items) > 0 THEN\n REPEAT i := 1 TO HIINDEX(intermediate_items) BY 1;\n results := results + using_representations(intermediate_items[i]);\n END_REPEAT;\n END_IF;\n RETURN(results);\n\nEND_FUNCTION; -- using_representations\n"); -#endif -/* -FUNCTION using_representations( - item: representation_item - ): SET OF representation; - - LOCAL - results : SET OF representation; - i : INTEGER; - intermediate_items : SET OF representation_item; - result_bag : BAG OF representation; - END_LOCAL; - result_bag := USEDIN(item,'CONFIG_CONTROL_DESIGN.REPRESENTATION.ITEMS'); - IF SIZEOF(result_bag) > 0 THEN - REPEAT i := 1 TO HIINDEX(result_bag) BY 1; - results := results + result_bag[i]; - END_REPEAT; - END_IF; - intermediate_items := QUERY ( z <* bag_to_set(USEDIN(item,'')) | ( - 'CONFIG_CONTROL_DESIGN.REPRESENTATION_ITEM' IN TYPEOF(z)) ); - IF SIZEOF(intermediate_items) > 0 THEN - REPEAT i := 1 TO HIINDEX(intermediate_items) BY 1; - results := results + using_representations(intermediate_items[i]); - END_REPEAT; - END_IF; - RETURN(results); - -END_FUNCTION; -- using_representations - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION basis_curve_check(\n cv: curve;\n schema_name: STRING\n ): BOOLEAN;\n IF SIZEOF([schema_name + '.B_SPLINE_CURVE',schema_name + '.CONIC',\n schema_name + '.LINE',schema_name + '.POLYLINE'] * TYPEOF(cv)) = 1\n THEN\n RETURN(TRUE);\n ELSE\n IF (schema_name + '.CURVE_REPLICA') IN TYPEOF(cv) THEN\n RETURN(basis_curve_check(cv\\curve_replica.parent_curve,schema_name));\n ELSE\n IF (schema_name + '.OFFSET_CURVE_3D') IN TYPEOF(cv) THEN\n RETURN(basis_curve_check(cv\\offset_curve_3d.basis_curve,\n schema_name));\n ELSE\n IF (schema_name + '.PCURVE') IN TYPEOF(cv) THEN\n IF SIZEOF([schema_name + '.B_SPLINE_CURVE',schema_name + \n '.CONIC',schema_name + '.LINE',schema_name + '.POLYLINE'] * \n TYPEOF(cv\\pcurve.reference_to_curve\\representation.items[1])) \n = 1 THEN\n RETURN(basis_surface_check(cv\\pcurve.basis_surface,schema_name));\n ELSE\n IF (schema_name + '.CURVE_REPLICA') IN TYPEOF(cv\\pcurve.\n reference_to_curve\\representation.items[1]) THEN\n RETURN(basis_curve_check(cv\\pcurve.reference_to_curve\\\n representation.items[1],schema_name) AND \n basis_surface_check(cv\\pcurve.basis_surface,schema_name));\n END_IF;\n END_IF;\n ELSE\n IF (schema_name + '.SURFACE_CURVE') IN TYPEOF(cv) THEN\n IF SIZEOF([schema_name + '.B_SPLINE_CURVE',schema_name + \n '.CONIC',schema_name + '.LINE',schema_name + '.POLYLINE'] *\n TYPEOF(cv\\surface_curve.curve_3d)) = 1 THEN\n REPEAT i := 1 TO SIZEOF(cv\\surface_curve.associated_geometry)\n BY 1;\n IF (schema_name + '.SURFACE') IN TYPEOF(cv\\surface_curve.\n associated_geometry[i]) THEN\n IF NOT basis_surface_check(cv\\surface_curve.\n associated_geometry[i],schema_name) THEN\n RETURN(FALSE);\n END_IF;\n ELSE\n IF (schema_name + '.PCURVE') IN TYPEOF(cv\\surface_curve.\n associated_geometry[i]) THEN\n IF NOT basis_curve_check(cv\\surface_curve.\n associated_geometry[i],schema_name) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n END_IF;\n END_REPEAT;\n ELSE\n IF (schema_name + '.CURVE_REPLICA') IN TYPEOF(cv\\\n surface_curve.curve_3d) THEN\n IF NOT basis_curve_check(cv\\curve_replica.parent_curve,\n schema_name) THEN\n RETURN(FALSE);\n END_IF;\n ELSE\n IF (schema_name + '.OFFSET_CURVE_3D') IN TYPEOF(cv\\\n surface_curve.curve_3d) THEN\n IF NOT basis_curve_check(cv\\offset_curve_3d.basis_curve,\n schema_name) THEN\n RETURN(FALSE);\n END_IF;\n ELSE\n REPEAT i := 1 TO SIZEOF(cv\\surface_curve.\n associated_geometry) BY 1;\n IF (schema_name + '.SURFACE') IN TYPEOF(cv\\\n surface_curve.associated_geometry[i]) THEN\n IF NOT basis_surface_check(cv\\surface_curve.\n associated_geometry[i],schema_name) THEN\n RETURN(FALSE);\n END_IF;\n ELSE\n IF (schema_name + '.PCURVE') IN TYPEOF(cv\\\n surface_curve.associated_geometry[i]) THEN\n IF NOT basis_curve_check(cv\\surface_curve.\n associated_geometry[i],schema_name) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n END_IF;\n END_REPEAT;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- basis_curve_check\n"); -#endif -/* -FUNCTION basis_curve_check( - cv: curve; - schema_name: STRING - ): BOOLEAN; - IF SIZEOF([schema_name + '.B_SPLINE_CURVE',schema_name + '.CONIC', - schema_name + '.LINE',schema_name + '.POLYLINE'] * TYPEOF(cv)) = 1 - THEN - RETURN(TRUE); - ELSE - IF (schema_name + '.CURVE_REPLICA') IN TYPEOF(cv) THEN - RETURN(basis_curve_check(cv\curve_replica.parent_curve,schema_name)); - ELSE - IF (schema_name + '.OFFSET_CURVE_3D') IN TYPEOF(cv) THEN - RETURN(basis_curve_check(cv\offset_curve_3d.basis_curve, - schema_name)); - ELSE - IF (schema_name + '.PCURVE') IN TYPEOF(cv) THEN - IF SIZEOF([schema_name + '.B_SPLINE_CURVE',schema_name + - '.CONIC',schema_name + '.LINE',schema_name + '.POLYLINE'] * - TYPEOF(cv\pcurve.reference_to_curve\representation.items[1])) - = 1 THEN - RETURN(basis_surface_check(cv\pcurve.basis_surface,schema_name)); - ELSE - IF (schema_name + '.CURVE_REPLICA') IN TYPEOF(cv\pcurve. - reference_to_curve\representation.items[1]) THEN - RETURN(basis_curve_check(cv\pcurve.reference_to_curve\ - representation.items[1],schema_name) AND - basis_surface_check(cv\pcurve.basis_surface,schema_name)); - END_IF; - END_IF; - ELSE - IF (schema_name + '.SURFACE_CURVE') IN TYPEOF(cv) THEN - IF SIZEOF([schema_name + '.B_SPLINE_CURVE',schema_name + - '.CONIC',schema_name + '.LINE',schema_name + '.POLYLINE'] * - TYPEOF(cv\surface_curve.curve_3d)) = 1 THEN - REPEAT i := 1 TO SIZEOF(cv\surface_curve.associated_geometry) - BY 1; - IF (schema_name + '.SURFACE') IN TYPEOF(cv\surface_curve. - associated_geometry[i]) THEN - IF NOT basis_surface_check(cv\surface_curve. - associated_geometry[i],schema_name) THEN - RETURN(FALSE); - END_IF; - ELSE - IF (schema_name + '.PCURVE') IN TYPEOF(cv\surface_curve. - associated_geometry[i]) THEN - IF NOT basis_curve_check(cv\surface_curve. - associated_geometry[i],schema_name) THEN - RETURN(FALSE); - END_IF; - END_IF; - END_IF; - END_REPEAT; - ELSE - IF (schema_name + '.CURVE_REPLICA') IN TYPEOF(cv\ - surface_curve.curve_3d) THEN - IF NOT basis_curve_check(cv\curve_replica.parent_curve, - schema_name) THEN - RETURN(FALSE); - END_IF; - ELSE - IF (schema_name + '.OFFSET_CURVE_3D') IN TYPEOF(cv\ - surface_curve.curve_3d) THEN - IF NOT basis_curve_check(cv\offset_curve_3d.basis_curve, - schema_name) THEN - RETURN(FALSE); - END_IF; - ELSE - REPEAT i := 1 TO SIZEOF(cv\surface_curve. - associated_geometry) BY 1; - IF (schema_name + '.SURFACE') IN TYPEOF(cv\ - surface_curve.associated_geometry[i]) THEN - IF NOT basis_surface_check(cv\surface_curve. - associated_geometry[i],schema_name) THEN - RETURN(FALSE); - END_IF; - ELSE - IF (schema_name + '.PCURVE') IN TYPEOF(cv\ - surface_curve.associated_geometry[i]) THEN - IF NOT basis_curve_check(cv\surface_curve. - associated_geometry[i],schema_name) THEN - RETURN(FALSE); - END_IF; - END_IF; - END_IF; - END_REPEAT; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- basis_curve_check - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION associated_surface(\n arg: pcurve_or_surface\n ): surface;\n\n LOCAL\n surf : surface;\n END_LOCAL;\n IF 'CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF(arg) THEN\n surf := arg.basis_surface;\n ELSE\n surf := arg;\n END_IF;\n RETURN(surf);\n\nEND_FUNCTION; -- associated_surface\n"); -#endif -/* -FUNCTION associated_surface( - arg: pcurve_or_surface - ): surface; - - LOCAL - surf : surface; - END_LOCAL; - IF 'CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF(arg) THEN - surf := arg.basis_surface; - ELSE - surf := arg; - END_IF; - RETURN(surf); - -END_FUNCTION; -- associated_surface - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION acyclic_point_replica(\n rep: point_replica;\n parent: point\n ): BOOLEAN;\n IF NOT ('CONFIG_CONTROL_DESIGN.POINT_REPLICA' IN TYPEOF(parent)) THEN\n RETURN(TRUE);\n END_IF;\n IF parent :=: rep THEN\n RETURN(FALSE);\n ELSE\n RETURN(acyclic_point_replica(rep,parent\\point_replica.parent_pt));\n END_IF;\n\nEND_FUNCTION; -- acyclic_point_replica\n"); -#endif -/* -FUNCTION acyclic_point_replica( - rep: point_replica; - parent: point - ): BOOLEAN; - IF NOT ('CONFIG_CONTROL_DESIGN.POINT_REPLICA' IN TYPEOF(parent)) THEN - RETURN(TRUE); - END_IF; - IF parent :=: rep THEN - RETURN(FALSE); - ELSE - RETURN(acyclic_point_replica(rep,parent\point_replica.parent_pt)); - END_IF; - -END_FUNCTION; -- acyclic_point_replica - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION cross_product(\n arg1, arg2: direction\n ): vector;\n\n LOCAL\n v2 : LIST [3:3] OF REAL;\n v1 : LIST [3:3] OF REAL;\n mag : REAL;\n res : direction;\n result : vector;\n END_LOCAL;\n IF (NOT EXISTS(arg1)) OR (arg1.dim = 2) OR (NOT EXISTS(arg2)) OR (arg2.\n dim = 2) THEN\n RETURN(?);\n ELSE\n BEGIN\n v1 := normalise(arg1).direction_ratios;\n v2 := normalise(arg2).direction_ratios;\n res.direction_ratios[1] := (v1[2] * v2[3]) - (v1[3] * v2[2]);\n res.direction_ratios[2] := (v1[3] * v2[1]) - (v1[1] * v2[3]);\n res.direction_ratios[3] := (v1[1] * v2[2]) - (v1[2] * v2[1]);\n mag := 0;\n REPEAT i := 1 TO 3 BY 1;\n mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]);\n END_REPEAT;\n IF mag > 0 THEN\n result.orientation := res;\n result.magnitude := SQRT(mag);\n ELSE\n result.orientation := arg1;\n result.magnitude := 0;\n END_IF;\n RETURN(result);\n END;\n END_IF;\n\nEND_FUNCTION; -- cross_product\n"); -#endif -/* -FUNCTION cross_product( - arg1, arg2: direction - ): vector; - - LOCAL - v2 : LIST [3:3] OF REAL; - v1 : LIST [3:3] OF REAL; - mag : REAL; - res : direction; - result : vector; - END_LOCAL; - IF (NOT EXISTS(arg1)) OR (arg1.dim = 2) OR (NOT EXISTS(arg2)) OR (arg2. - dim = 2) THEN - RETURN(?); - ELSE - BEGIN - v1 := normalise(arg1).direction_ratios; - v2 := normalise(arg2).direction_ratios; - res.direction_ratios[1] := (v1[2] * v2[3]) - (v1[3] * v2[2]); - res.direction_ratios[2] := (v1[3] * v2[1]) - (v1[1] * v2[3]); - res.direction_ratios[3] := (v1[1] * v2[2]) - (v1[2] * v2[1]); - mag := 0; - REPEAT i := 1 TO 3 BY 1; - mag := mag + (res.direction_ratios[i] * res.direction_ratios[i]); - END_REPEAT; - IF mag > 0 THEN - result.orientation := res; - result.magnitude := SQRT(mag); - ELSE - result.orientation := arg1; - result.magnitude := 0; - END_IF; - RETURN(result); - END; - END_IF; - -END_FUNCTION; -- cross_product - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION valid_units(\n m: measure_with_unit\n ): BOOLEAN;\n IF 'CONFIG_CONTROL_DESIGN.LENGTH_MEASURE' IN TYPEOF(m.value_component)\n THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(1,0,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.MASS_MEASURE' IN TYPEOF(m.value_component)\n THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,1,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.TIME_MEASURE' IN TYPEOF(m.value_component)\n THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,1,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m.\n value_component) THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,0,1,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m\n .value_component) THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,0,0,1,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m.\n value_component) THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,0,0,0,1,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m.\n value_component) THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,0,0,0,0,1) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.PLANE_ANGLE_MEASURE' IN TYPEOF(m.\n value_component) THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.SOLID_ANGLE_MEASURE' IN TYPEOF(m.\n value_component) THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.AREA_MEASURE' IN TYPEOF(m.value_component)\n THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(2,0,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.VOLUME_MEASURE' IN TYPEOF(m.value_component)\n THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(3,0,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.RATIO_MEASURE' IN TYPEOF(m.value_component)\n THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m.\n value_component) THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(1,0,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n IF 'CONFIG_CONTROL_DESIGN.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m.\n value_component) THEN\n IF derive_dimensional_exponents(m.unit_component) <> \n dimensional_exponents(0,0,0,0,0,0,0) THEN\n RETURN(FALSE);\n END_IF;\n END_IF;\n RETURN(TRUE);\n\nEND_FUNCTION; -- valid_units\n"); -#endif -/* -FUNCTION valid_units( - m: measure_with_unit - ): BOOLEAN; - IF 'CONFIG_CONTROL_DESIGN.LENGTH_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(1,0,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.MASS_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,1,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.TIME_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,1,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.ELECTRIC_CURRENT_MEASURE' IN TYPEOF(m. - value_component) THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,0,1,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.THERMODYNAMIC_TEMPERATURE_MEASURE' IN TYPEOF(m - .value_component) THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,0,0,1,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.AMOUNT_OF_SUBSTANCE_MEASURE' IN TYPEOF(m. - value_component) THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,0,0,0,1,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.LUMINOUS_INTENSITY_MEASURE' IN TYPEOF(m. - value_component) THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,0,0,0,0,1) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.PLANE_ANGLE_MEASURE' IN TYPEOF(m. - value_component) THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.SOLID_ANGLE_MEASURE' IN TYPEOF(m. - value_component) THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.AREA_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(2,0,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.VOLUME_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(3,0,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.RATIO_MEASURE' IN TYPEOF(m.value_component) - THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.POSITIVE_LENGTH_MEASURE' IN TYPEOF(m. - value_component) THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(1,0,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - IF 'CONFIG_CONTROL_DESIGN.POSITIVE_PLANE_ANGLE_MEASURE' IN TYPEOF(m. - value_component) THEN - IF derive_dimensional_exponents(m.unit_component) <> - dimensional_exponents(0,0,0,0,0,0,0) THEN - RETURN(FALSE); - END_IF; - END_IF; - RETURN(TRUE); - -END_FUNCTION; -- valid_units - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION constraints_rectangular_composite_surface(\n s: rectangular_composite_surface\n ): BOOLEAN;\n REPEAT i := 1 TO s.n_u BY 1;\n REPEAT j := 1 TO s.n_v BY 1;\n IF NOT (('CONFIG_CONTROL_DESIGN.B_SPLINE_SURFACE' IN TYPEOF(s.\n segments[i][j].parent_surface)) OR (\n 'CONFIG_CONTROL_DESIGN.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF(s.\n segments[i][j].parent_surface))) THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n END_REPEAT;\n REPEAT i := 1 TO s.n_u - 1 BY 1;\n REPEAT j := 1 TO s.n_v BY 1;\n IF s.segments[i][j].u_transition = discontinuous THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n END_REPEAT;\n REPEAT i := 1 TO s.n_u BY 1;\n REPEAT j := 1 TO s.n_v - 1 BY 1;\n IF s.segments[i][j].v_transition = discontinuous THEN\n RETURN(FALSE);\n END_IF;\n END_REPEAT;\n END_REPEAT;\n RETURN(TRUE);\n\nEND_FUNCTION; -- constraints_rectangular_composite_surface\n"); -#endif -/* -FUNCTION constraints_rectangular_composite_surface( - s: rectangular_composite_surface - ): BOOLEAN; - REPEAT i := 1 TO s.n_u BY 1; - REPEAT j := 1 TO s.n_v BY 1; - IF NOT (('CONFIG_CONTROL_DESIGN.B_SPLINE_SURFACE' IN TYPEOF(s. - segments[i][j].parent_surface)) OR ( - 'CONFIG_CONTROL_DESIGN.RECTANGULAR_TRIMMED_SURFACE' IN TYPEOF(s. - segments[i][j].parent_surface))) THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - REPEAT i := 1 TO s.n_u - 1 BY 1; - REPEAT j := 1 TO s.n_v BY 1; - IF s.segments[i][j].u_transition = discontinuous THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - REPEAT i := 1 TO s.n_u BY 1; - REPEAT j := 1 TO s.n_v - 1 BY 1; - IF s.segments[i][j].v_transition = discontinuous THEN - RETURN(FALSE); - END_IF; - END_REPEAT; - END_REPEAT; - RETURN(TRUE); - -END_FUNCTION; -- constraints_rectangular_composite_surface - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION boolean_choose(\n b: BOOLEAN;\n choice1, choice2: GENERIC:item\n ): GENERIC:item;\n IF b THEN\n RETURN(choice1);\n ELSE\n RETURN(choice2);\n END_IF;\n\nEND_FUNCTION; -- boolean_choose\n"); -#endif -/* -FUNCTION boolean_choose( - b: BOOLEAN; - choice1, choice2: GENERIC:item - ): GENERIC:item; - IF b THEN - RETURN(choice1); - ELSE - RETURN(choice2); - END_IF; - -END_FUNCTION; -- boolean_choose - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION valid_time(\n time: local_time\n ): BOOLEAN;\n IF EXISTS(time.second_component) THEN\n RETURN(EXISTS(time.minute_component));\n ELSE\n RETURN(TRUE);\n END_IF;\n\nEND_FUNCTION; -- valid_time\n"); -#endif -/* -FUNCTION valid_time( - time: local_time - ): BOOLEAN; - IF EXISTS(time.second_component) THEN - RETURN(EXISTS(time.minute_component)); - ELSE - RETURN(TRUE); - END_IF; - -END_FUNCTION; -- valid_time - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION valid_geometrically_bounded_wf_curve(\n crv: curve;\n schma: STRING\n ): BOOLEAN;\n IF SIZEOF([schma + '.POLYLINE',schma + '.B_SPLINE_CURVE',schma + \n '.ELLIPSE',schma + '.CIRCLE'] * TYPEOF(crv)) = 1 THEN\n RETURN(TRUE);\n ELSE\n IF (schma + '.TRIMMED_CURVE') IN TYPEOF(crv) THEN\n IF SIZEOF([schma + '.LINE',schma + '.PARABOLA',schma + '.HYPERBOLA'] \n * TYPEOF(crv\\trimmed_curve.basis_curve)) = 1 THEN\n RETURN(TRUE);\n ELSE\n RETURN(valid_geometrically_bounded_wf_curve(crv\\trimmed_curve.\n basis_curve,schma));\n END_IF;\n ELSE\n IF (schma + '.OFFSET_CURVE_3D') IN TYPEOF(crv) THEN\n RETURN(valid_geometrically_bounded_wf_curve(crv\\offset_curve_3d.\n basis_curve,schma));\n ELSE\n IF (schma + '.CURVE_REPLICA') IN TYPEOF(crv) THEN\n RETURN(valid_geometrically_bounded_wf_curve(crv\\curve_replica.\n parent_curve,schma));\n ELSE\n IF (schma + '.COMPOSITE_CURVE') IN TYPEOF(crv) THEN\n RETURN(SIZEOF(QUERY ( ccs <* crv\\composite_curve.segments | (\n NOT valid_geometrically_bounded_wf_curve(ccs.parent_curve,\n schma)) )) = 0);\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n END_IF;\n RETURN(FALSE);\n\nEND_FUNCTION; -- valid_geometrically_bounded_wf_curve\n"); -#endif -/* -FUNCTION valid_geometrically_bounded_wf_curve( - crv: curve; - schma: STRING - ): BOOLEAN; - IF SIZEOF([schma + '.POLYLINE',schma + '.B_SPLINE_CURVE',schma + - '.ELLIPSE',schma + '.CIRCLE'] * TYPEOF(crv)) = 1 THEN - RETURN(TRUE); - ELSE - IF (schma + '.TRIMMED_CURVE') IN TYPEOF(crv) THEN - IF SIZEOF([schma + '.LINE',schma + '.PARABOLA',schma + '.HYPERBOLA'] - * TYPEOF(crv\trimmed_curve.basis_curve)) = 1 THEN - RETURN(TRUE); - ELSE - RETURN(valid_geometrically_bounded_wf_curve(crv\trimmed_curve. - basis_curve,schma)); - END_IF; - ELSE - IF (schma + '.OFFSET_CURVE_3D') IN TYPEOF(crv) THEN - RETURN(valid_geometrically_bounded_wf_curve(crv\offset_curve_3d. - basis_curve,schma)); - ELSE - IF (schma + '.CURVE_REPLICA') IN TYPEOF(crv) THEN - RETURN(valid_geometrically_bounded_wf_curve(crv\curve_replica. - parent_curve,schma)); - ELSE - IF (schma + '.COMPOSITE_CURVE') IN TYPEOF(crv) THEN - RETURN(SIZEOF(QUERY ( ccs <* crv\composite_curve.segments | ( - NOT valid_geometrically_bounded_wf_curve(ccs.parent_curve, - schma)) )) = 0); - END_IF; - END_IF; - END_IF; - END_IF; - END_IF; - RETURN(FALSE); - -END_FUNCTION; -- valid_geometrically_bounded_wf_curve - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION dot_product(\n arg1, arg2: direction\n ): REAL;\n\n LOCAL\n ndim : INTEGER;\n scalar : REAL;\n vec1 : direction;\n vec2 : direction;\n END_LOCAL;\n IF (NOT EXISTS(arg1)) OR (NOT EXISTS(arg2)) THEN\n scalar := ?;\n ELSE\n IF arg1.dim <> arg2.dim THEN\n scalar := ?;\n ELSE\n BEGIN\n vec1 := normalise(arg1);\n vec2 := normalise(arg2);\n ndim := arg1.dim;\n scalar := 0;\n REPEAT i := 1 TO ndim BY 1;\n scalar := scalar + (vec1.direction_ratios[i] * vec2.\n direction_ratios[i]);\n END_REPEAT;\n END;\n END_IF;\n END_IF;\n RETURN(scalar);\n\nEND_FUNCTION; -- dot_product\n"); -#endif -/* -FUNCTION dot_product( - arg1, arg2: direction - ): REAL; - - LOCAL - ndim : INTEGER; - scalar : REAL; - vec1 : direction; - vec2 : direction; - END_LOCAL; - IF (NOT EXISTS(arg1)) OR (NOT EXISTS(arg2)) THEN - scalar := ?; - ELSE - IF arg1.dim <> arg2.dim THEN - scalar := ?; - ELSE - BEGIN - vec1 := normalise(arg1); - vec2 := normalise(arg2); - ndim := arg1.dim; - scalar := 0; - REPEAT i := 1 TO ndim BY 1; - scalar := scalar + (vec1.direction_ratios[i] * vec2. - direction_ratios[i]); - END_REPEAT; - END; - END_IF; - END_IF; - RETURN(scalar); - -END_FUNCTION; -- dot_product - -*/ -#ifndef MSWIN - s_config_control_design->AddFunction("FUNCTION acyclic_curve_replica(\n rep: curve_replica;\n parent: curve\n ): BOOLEAN;\n IF NOT ('CONFIG_CONTROL_DESIGN.CURVE_REPLICA' IN TYPEOF(parent)) THEN\n RETURN(TRUE);\n END_IF;\n IF parent :=: rep THEN\n RETURN(FALSE);\n ELSE\n RETURN(acyclic_curve_replica(rep,parent\\curve_replica.parent_curve));\n END_IF;\n\nEND_FUNCTION; -- acyclic_curve_replica\n"); -#endif -/* -FUNCTION acyclic_curve_replica( - rep: curve_replica; - parent: curve - ): BOOLEAN; - IF NOT ('CONFIG_CONTROL_DESIGN.CURVE_REPLICA' IN TYPEOF(parent)) THEN - RETURN(TRUE); - END_IF; - IF parent :=: rep THEN - RETURN(FALSE); - ELSE - RETURN(acyclic_curve_replica(rep,parent\curve_replica.parent_curve)); - END_IF; - -END_FUNCTION; -- acyclic_curve_replica - -*/ - - // ***** Initialize the Types - config_control_designt_characterized_definition = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Characterized_Definition", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Characterized_Product_Definition, Shape_Definition)"), // Description - (SelectCreator) create_SdaiCharacterized_definition); // Creator function - s_config_control_design->AddType(config_control_designt_characterized_definition); - config_control_designt_parameter_value = new TypeDescriptor ( - "Parameter_Value", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_parameter_value); - config_control_designt_plane_angle_measure = new TypeDescriptor ( - "Plane_Angle_Measure", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_plane_angle_measure); - config_control_designt_change_request_item = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Change_Request_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition_Formation)"), // Description - (SelectCreator) create_SdaiChange_request_item); // Creator function - s_config_control_design->AddType(config_control_designt_change_request_item); - config_control_designt_text = new TypeDescriptor ( - "Text", // Name - sdaiSTRING, // FundamentalType - s_config_control_design, // Originating Schema - "STRING"); // Description - s_config_control_design->AddType(config_control_designt_text); - config_control_designt_year_number = new TypeDescriptor ( - "Year_Number", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_year_number); - config_control_designt_characterized_product_definition = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Characterized_Product_Definition", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition, Product_Definition_Relationship)"), // Description - (SelectCreator) create_SdaiCharacterized_product_definition); // Creator function - s_config_control_design->AddType(config_control_designt_characterized_product_definition); - config_control_designt_reversible_topology_item = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Reversible_Topology_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Edge, Path, Face, Face_Bound, Closed_Shell, Open_Shell)"), // Description - (SelectCreator) create_SdaiReversible_topology_item); // Creator function - s_config_control_design->AddType(config_control_designt_reversible_topology_item); - config_control_designt_axis2_placement = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Axis2_Placement", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Axis2_Placement_2d, Axis2_Placement_3d)"), // Description - (SelectCreator) create_SdaiAxis2_placement); // Creator function - s_config_control_design->AddType(config_control_designt_axis2_placement); - - config_control_designt_set_of_reversible_topology_item = new SetTypeDescriptor ( - "Set_Of_Reversible_Topology_Item", // Name - SET_TYPE, // FundamentalType - s_config_control_design, // Originating Schema - "SET [0:?] OF reversible_topology_item", // Description - (AggregateCreator) create_SdaiSet_of_reversible_topology_item); // Creator function - - s_config_control_design->AddType(config_control_designt_set_of_reversible_topology_item); - config_control_designt_week_in_year_number = new TypeDescriptor ( - "Week_In_Year_Number", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_week_in_year_number); - config_control_designt_week_in_year_number->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ((1 <= SELF) AND (SELF <= 53));\n"); - config_control_designt_week_in_year_number->_where_rules->Append(wr); - config_control_designt_knot_type = new EnumTypeDescriptor ( - "Knot_Type", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (uniform_knots, quasi_uniform_knots, piecewise_bezier_knots, unspecified)", // Description - (EnumCreator) create_SdaiKnot_type_var); // Creator function - s_config_control_design->AddType(config_control_designt_knot_type); - config_control_designt_specified_item = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Specified_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition, Shape_Aspect)"), // Description - (SelectCreator) create_SdaiSpecified_item); // Creator function - s_config_control_design->AddType(config_control_designt_specified_item); - config_control_designt_minute_in_hour = new TypeDescriptor ( - "Minute_In_Hour", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_minute_in_hour); - config_control_designt_minute_in_hour->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ((0 <= SELF) AND (SELF <= 59));\n"); - config_control_designt_minute_in_hour->_where_rules->Append(wr); - config_control_designt_transition_code = new EnumTypeDescriptor ( - "Transition_Code", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (discontinuous, cont_same_gradient_same_curvature, cont_same_gradient, continuous)", // Description - (EnumCreator) create_SdaiTransition_code_var); // Creator function - s_config_control_design->AddType(config_control_designt_transition_code); - config_control_designt_identifier = new TypeDescriptor ( - "Identifier", // Name - sdaiSTRING, // FundamentalType - s_config_control_design, // Originating Schema - "STRING"); // Description - s_config_control_design->AddType(config_control_designt_identifier); - config_control_designt_measure_value = new SelectTypeDescriptor ( - ~(sdaiREAL), //unique elements, - "Measure_Value", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Area_Measure, Context_Dependent_Measure, Count_Measure, Descriptive_Measure, Length_Measure, Mass_Measure, Plane_Angle_Measure, Parameter_Value, Positive_Length_Measure, Positive_Plane_Angle_Measure, Solid_Angle_Measure, Volume_Measure)"), // Description - (SelectCreator) create_SdaiMeasure_value); // Creator function - s_config_control_design->AddType(config_control_designt_measure_value); - config_control_designt_person_organization_select = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Person_Organization_Select", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Person_And_Organization)"), // Description - (SelectCreator) create_SdaiPerson_organization_select); // Creator function - s_config_control_design->AddType(config_control_designt_person_organization_select); - config_control_designt_preferred_surface_curve_representation = new EnumTypeDescriptor ( - "Preferred_Surface_Curve_Representation", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (pcurve_s2, pcurve_s1, curve_3d)", // Description - (EnumCreator) create_SdaiPreferred_surface_curve_representation_var); // Creator function - s_config_control_design->AddType(config_control_designt_preferred_surface_curve_representation); - config_control_designt_dimension_count = new TypeDescriptor ( - "Dimension_Count", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_dimension_count); - config_control_designt_dimension_count->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF > 0);\n"); - config_control_designt_dimension_count->_where_rules->Append(wr); - config_control_designt_pcurve_or_surface = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Pcurve_Or_Surface", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Pcurve, Surface)"), // Description - (SelectCreator) create_SdaiPcurve_or_surface); // Creator function - s_config_control_design->AddType(config_control_designt_pcurve_or_surface); - config_control_designt_positive_length_measure = new TypeDescriptor ( - "Positive_Length_Measure", // Name - REFERENCE_TYPE, // FundamentalType - s_config_control_design, // Originating Schema - "length_measure"); // Description - s_config_control_design->AddType(config_control_designt_positive_length_measure); - config_control_designt_positive_length_measure->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF > 0);\n"); - config_control_designt_positive_length_measure->_where_rules->Append(wr); - config_control_designt_b_spline_curve_form = new EnumTypeDescriptor ( - "B_Spline_Curve_Form", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (elliptic_arc, polyline_form, parabolic_arc, circular_arc, unspecified, hyperbolic_arc)", // Description - (EnumCreator) create_SdaiB_spline_curve_form_var); // Creator function - s_config_control_design->AddType(config_control_designt_b_spline_curve_form); - config_control_designt_hour_in_day = new TypeDescriptor ( - "Hour_In_Day", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_hour_in_day); - config_control_designt_hour_in_day->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ((0 <= SELF) AND (SELF < 24));\n"); - config_control_designt_hour_in_day->_where_rules->Append(wr); - config_control_designt_classified_item = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Classified_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition_Formation, Assembly_Component_Usage)"), // Description - (SelectCreator) create_SdaiClassified_item); // Creator function - s_config_control_design->AddType(config_control_designt_classified_item); - config_control_designt_si_unit_name = new EnumTypeDescriptor ( - "Si_Unit_Name", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (hertz, degree_celsius, siemens, sievert, lux, watt, ohm, second, becquerel, pascal, henry, tesla, volt, joule, kelvin, ampere, gram, steradian, mole, lumen, gray, candela, farad, radian, newton, metre, weber, coulomb)", // Description - (EnumCreator) create_SdaiSi_unit_name_var); // Creator function - s_config_control_design->AddType(config_control_designt_si_unit_name); - config_control_designt_day_in_month_number = new TypeDescriptor ( - "Day_In_Month_Number", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_day_in_month_number); - config_control_designt_trimming_preference = new EnumTypeDescriptor ( - "Trimming_Preference", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (parameter, unspecified, cartesian)", // Description - (EnumCreator) create_SdaiTrimming_preference_var); // Creator function - s_config_control_design->AddType(config_control_designt_trimming_preference); - config_control_designt_vector_or_direction = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Vector_Or_Direction", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Vector, Direction)"), // Description - (SelectCreator) create_SdaiVector_or_direction); // Creator function - s_config_control_design->AddType(config_control_designt_vector_or_direction); - config_control_designt_wireframe_model = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Wireframe_Model", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Shell_Based_Wireframe_Model, Edge_Based_Wireframe_Model)"), // Description - (SelectCreator) create_SdaiWireframe_model); // Creator function - s_config_control_design->AddType(config_control_designt_wireframe_model); - config_control_designt_volume_measure = new TypeDescriptor ( - "Volume_Measure", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_volume_measure); - config_control_designt_geometric_set_select = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Geometric_Set_Select", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Point, Curve, Surface)"), // Description - (SelectCreator) create_SdaiGeometric_set_select); // Creator function - s_config_control_design->AddType(config_control_designt_geometric_set_select); - config_control_designt_positive_plane_angle_measure = new TypeDescriptor ( - "Positive_Plane_Angle_Measure", // Name - REFERENCE_TYPE, // FundamentalType - s_config_control_design, // Originating Schema - "plane_angle_measure"); // Description - s_config_control_design->AddType(config_control_designt_positive_plane_angle_measure); - config_control_designt_positive_plane_angle_measure->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF > 0);\n"); - config_control_designt_positive_plane_angle_measure->_where_rules->Append(wr); - config_control_designt_start_request_item = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Start_Request_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition_Formation)"), // Description - (SelectCreator) create_SdaiStart_request_item); // Creator function - s_config_control_design->AddType(config_control_designt_start_request_item); - config_control_designt_b_spline_surface_form = new EnumTypeDescriptor ( - "B_Spline_Surface_Form", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (surf_of_linear_extrusion, plane_surf, generalised_cone, toroidal_surf, conical_surf, spherical_surf, unspecified, ruled_surf, surf_of_revolution, cylindrical_surf, quadric_surf)", // Description - (EnumCreator) create_SdaiB_spline_surface_form_var); // Creator function - s_config_control_design->AddType(config_control_designt_b_spline_surface_form); - config_control_designt_person_organization_item = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Person_Organization_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Change, Start_Work, Change_Request, Start_Request, Configuration_Item, Product, Product_Definition_Formation, Product_Definition, Contract, Security_Classification)"), // Description - (SelectCreator) create_SdaiPerson_organization_item); // Creator function - s_config_control_design->AddType(config_control_designt_person_organization_item); - config_control_designt_date_time_item = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Date_Time_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition, Change_Request, Start_Request, Change, Start_Work, Approval_Person_Organization, Contract, Security_Classification, Certification)"), // Description - (SelectCreator) create_SdaiDate_time_item); // Creator function - s_config_control_design->AddType(config_control_designt_date_time_item); - config_control_designt_shell = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Shell", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Open_Shell, Closed_Shell, Vertex_Shell, Wire_Shell)"), // Description - (SelectCreator) create_SdaiShell); // Creator function - s_config_control_design->AddType(config_control_designt_shell); - config_control_designt_transformation = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Transformation", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Item_Defined_Transformation, Functionally_Defined_Transformation)"), // Description - (SelectCreator) create_SdaiTransformation); // Creator function - s_config_control_design->AddType(config_control_designt_transformation); - config_control_designt_day_in_week_number = new TypeDescriptor ( - "Day_In_Week_Number", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_day_in_week_number); - config_control_designt_day_in_week_number->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ((1 <= SELF) AND (SELF <= 7));\n"); - config_control_designt_day_in_week_number->_where_rules->Append(wr); - config_control_designt_boolean_operand = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Boolean_Operand", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Solid_Model)"), // Description - (SelectCreator) create_SdaiBoolean_operand); // Creator function - s_config_control_design->AddType(config_control_designt_boolean_operand); - config_control_designt_certified_item = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Certified_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Supplied_Part_Relationship)"), // Description - (SelectCreator) create_SdaiCertified_item); // Creator function - s_config_control_design->AddType(config_control_designt_certified_item); - config_control_designt_date_time_select = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Date_Time_Select", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Date_And_Time)"), // Description - (SelectCreator) create_SdaiDate_time_select); // Creator function - s_config_control_design->AddType(config_control_designt_date_time_select); - config_control_designt_solid_angle_measure = new TypeDescriptor ( - "Solid_Angle_Measure", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_solid_angle_measure); - config_control_designt_curve_on_surface = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Curve_On_Surface", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Pcurve, Surface_Curve, Composite_Curve_On_Surface)"), // Description - (SelectCreator) create_SdaiCurve_on_surface); // Creator function - s_config_control_design->AddType(config_control_designt_curve_on_surface); - config_control_designt_trimming_select = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Trimming_Select", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Cartesian_Point, Parameter_Value)"), // Description - (SelectCreator) create_SdaiTrimming_select); // Creator function - s_config_control_design->AddType(config_control_designt_trimming_select); - config_control_designt_ahead_or_behind = new EnumTypeDescriptor ( - "Ahead_Or_Behind", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (ahead, behind)", // Description - (EnumCreator) create_SdaiAhead_or_behind_var); // Creator function - s_config_control_design->AddType(config_control_designt_ahead_or_behind); - config_control_designt_contracted_item = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Contracted_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition_Formation)"), // Description - (SelectCreator) create_SdaiContracted_item); // Creator function - s_config_control_design->AddType(config_control_designt_contracted_item); - config_control_designt_day_in_year_number = new TypeDescriptor ( - "Day_In_Year_Number", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_day_in_year_number); - config_control_designt_mass_measure = new TypeDescriptor ( - "Mass_Measure", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_mass_measure); - config_control_designt_descriptive_measure = new TypeDescriptor ( - "Descriptive_Measure", // Name - sdaiSTRING, // FundamentalType - s_config_control_design, // Originating Schema - "STRING"); // Description - s_config_control_design->AddType(config_control_designt_descriptive_measure); - config_control_designt_area_measure = new TypeDescriptor ( - "Area_Measure", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_area_measure); - config_control_designt_month_in_year_number = new TypeDescriptor ( - "Month_In_Year_Number", // Name - sdaiINTEGER, // FundamentalType - s_config_control_design, // Originating Schema - "INTEGER"); // Description - s_config_control_design->AddType(config_control_designt_month_in_year_number); - config_control_designt_month_in_year_number->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ((1 <= SELF) AND (SELF <= 12));\n"); - config_control_designt_month_in_year_number->_where_rules->Append(wr); - config_control_designt_source = new EnumTypeDescriptor ( - "Source", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (bought, not_known, made)", // Description - (EnumCreator) create_SdaiSource_var); // Creator function - s_config_control_design->AddType(config_control_designt_source); - config_control_designt_unit = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Unit", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Named_Unit)"), // Description - (SelectCreator) create_SdaiUnit); // Creator function - s_config_control_design->AddType(config_control_designt_unit); - config_control_designt_reversible_topology = new SelectTypeDescriptor ( - ~(sdaiINSTANCE | sdaiAGGR), //unique elements, - "Reversible_Topology", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Reversible_Topology_Item, List_Of_Reversible_Topology_Item, Set_Of_Reversible_Topology_Item)"), // Description - (SelectCreator) create_SdaiReversible_topology); // Creator function - s_config_control_design->AddType(config_control_designt_reversible_topology); - config_control_designt_work_item = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Work_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition_Formation)"), // Description - (SelectCreator) create_SdaiWork_item); // Creator function - s_config_control_design->AddType(config_control_designt_work_item); - config_control_designt_shape_definition = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Shape_Definition", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition_Shape, Shape_Aspect, Shape_Aspect_Relationship)"), // Description - (SelectCreator) create_SdaiShape_definition); // Creator function - s_config_control_design->AddType(config_control_designt_shape_definition); - config_control_designt_second_in_minute = new TypeDescriptor ( - "Second_In_Minute", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_second_in_minute); - config_control_designt_second_in_minute->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ((0 <= SELF) AND (SELF < 60));\n"); - config_control_designt_second_in_minute->_where_rules->Append(wr); - config_control_designt_label = new TypeDescriptor ( - "Label", // Name - sdaiSTRING, // FundamentalType - s_config_control_design, // Originating Schema - "STRING"); // Description - s_config_control_design->AddType(config_control_designt_label); - config_control_designt_context_dependent_measure = new TypeDescriptor ( - "Context_Dependent_Measure", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_context_dependent_measure); - config_control_designt_supported_item = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Supported_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Action_Directive, Action, Action_Method)"), // Description - (SelectCreator) create_SdaiSupported_item); // Creator function - s_config_control_design->AddType(config_control_designt_supported_item); - config_control_designt_si_prefix = new EnumTypeDescriptor ( - "Si_Prefix", // Name - sdaiENUMERATION, // FundamentalType - s_config_control_design, // Originating Schema - "ENUMERATION of (exa, pico, mega, femto, atto, centi, nano, hecto, micro, tera, giga, milli, peta, deci, kilo, deca)", // Description - (EnumCreator) create_SdaiSi_prefix_var); // Creator function - s_config_control_design->AddType(config_control_designt_si_prefix); - config_control_designt_length_measure = new TypeDescriptor ( - "Length_Measure", // Name - sdaiREAL, // FundamentalType - s_config_control_design, // Originating Schema - "REAL"); // Description - s_config_control_design->AddType(config_control_designt_length_measure); - config_control_designt_approved_item = new SelectTypeDescriptor ( - ~(sdaiINSTANCE), //unique elements, - "Approved_Item", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Product_Definition_Formation, Product_Definition, Configuration_Effectivity, Configuration_Item, Security_Classification, Change_Request, Change, Start_Request, Start_Work, Certification, Contract)"), // Description - (SelectCreator) create_SdaiApproved_item); // Creator function - s_config_control_design->AddType(config_control_designt_approved_item); - config_control_designt_count_measure = new TypeDescriptor ( - "Count_Measure", // Name - sdaiNUMBER, // FundamentalType - s_config_control_design, // Originating Schema - "NUMBER"); // Description - s_config_control_design->AddType(config_control_designt_count_measure); - config_control_designt_surface_model = new SelectTypeDescriptor ( - ~(0), //unique elements, - "Surface_Model", // Name - sdaiSELECT, // FundamentalType - s_config_control_design, // Originating Schema - (char*)("SELECT (Shell_Based_Surface_Model)"), // Description - (SelectCreator) create_SdaiSurface_model); // Creator function - s_config_control_design->AddType(config_control_designt_surface_model); - - config_control_designt_list_of_reversible_topology_item = new ListTypeDescriptor ( - "List_Of_Reversible_Topology_Item", // Name - LIST_TYPE, // FundamentalType - s_config_control_design, // Originating Schema - "LIST [0:?] OF reversible_topology_item", // Description - (AggregateCreator) create_SdaiList_of_reversible_topology_item); // Creator function - - s_config_control_design->AddType(config_control_designt_list_of_reversible_topology_item); - - // ***** Initialize the Entities - config_control_designe_representation_item = new EntityDescriptor( - "Representation_Item", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRepresentation_item ); - s_config_control_design->AddEntity(config_control_designe_representation_item); - config_control_designe_representation_item->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(using_representations\n\t(SELF)) > 0);\n"); - config_control_designe_representation_item->_where_rules->Append(wr); - config_control_designe_geometric_representation_item = new EntityDescriptor( - "Geometric_Representation_Item", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiGeometric_representation_item ); - s_config_control_design->AddEntity(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( using_rep <* using_representations\n\t(SELF) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.GEOMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF\n\t( using_rep.context_of_items))) )) = 0);\n"); - config_control_designe_geometric_representation_item->_where_rules->Append(wr); - config_control_designe_functionally_defined_transformation = new EntityDescriptor( - "Functionally_Defined_Transformation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiFunctionally_defined_transformation ); - s_config_control_design->AddEntity(config_control_designe_functionally_defined_transformation); - config_control_designe_cartesian_transformation_operator = new EntityDescriptor( - "Cartesian_Transformation_Operator", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCartesian_transformation_operator ); - s_config_control_design->AddEntity(config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (scl > 0);\n"); - config_control_designe_cartesian_transformation_operator->_where_rules->Append(wr); - config_control_designe_cartesian_transformation_operator_3d = new EntityDescriptor( - "Cartesian_Transformation_Operator_3d", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCartesian_transformation_operator_3d ); - s_config_control_design->AddEntity(config_control_designe_cartesian_transformation_operator_3d); - config_control_designe_cartesian_transformation_operator_3d->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\cartesian_transformation_operator.dim = 3);\n"); - config_control_designe_cartesian_transformation_operator_3d->_where_rules->Append(wr); - config_control_designe_versioned_action_request = new EntityDescriptor( - "Versioned_Action_Request", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiVersioned_action_request ); - s_config_control_design->AddEntity(config_control_designe_versioned_action_request); - config_control_designe_representation = new EntityDescriptor( - "Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRepresentation ); - s_config_control_design->AddEntity(config_control_designe_representation); - config_control_designe_shape_representation = new EntityDescriptor( - "Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiShape_representation ); - s_config_control_design->AddEntity(config_control_designe_shape_representation); - config_control_designe_manifold_surface_shape_representation = new EntityDescriptor( - "Manifold_Surface_Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiManifold_surface_shape_representation ); - s_config_control_design->AddEntity(config_control_designe_manifold_surface_shape_representation); - config_control_designe_manifold_surface_shape_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( it <* items | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM', 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF\n\t(it)) = 1)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( it <* items | \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL', 'CONFIG_CONTROL_DESIGN.MAPPED ITEM'] * TYPEOF\n\t(it)) = 1) )) > 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( mi <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.MAPPED ITEM' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.MANIFOLD_SURFACE_SHAPE_REPRESENTATION' IN TYPEOF\n\t(mi\\mapped_item.mapping_source.mapped_representation))) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( sh <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(['CONFIG_CONTROL_DESIGN.OPEN_SHELL', 'CONFIG_CONTROL_DESIGN.CLOSED_SHELL'] * TYPEOF\n\t(sh)) = 1)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr5: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( fa <* cfs.cfs_faces | \n\t(NOT \n\t( SIZEOF\n\t(['CONFIG_CONTROL_DESIGN.FACE_SURFACE', 'CONFIG_CONTROL_DESIGN.ORIENTED_FACE'] * TYPEOF\n\t(fa)) = 1)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr6: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( f_sf <* QUERY \n\t( fa <* cfs. cfs_faces | \n\t('CONFIG_CONTROL_DESIGN.FACE_SURFACE' IN TYPEOF\n\t(fa)) ) | \n\t(NOT \n\t(\n\t('CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(f_sf)) OR \n\t(SIZEOF\n\t(['CONFIG_CONTROL_DESIGN.OFFSET_SURFACE', 'CONFIG_CONTROL_DESIGN.SURFACE_REPLICA'] * TYPEOF\n\t(f_sf\\face_surface .face_geometry)) = 1))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr7: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( fa <* cfs.cfs_faces | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(fa)) OR basis_surface_check\n\t(fa\\face_surface.face_geometry, 'CONFIG_CONTROL_DESIGN'))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr8: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( fa <* cfs.cfs_faces | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(fa)) OR \n\t(SIZEOF\n\t( QUERY \n\t( bnds <* fa.bounds | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.EDGE_LOOP', 'CONFIG_CONTROL_DESIGN.VERTEX_LOOP'] * TYPEOF\n\t(bnds.bound)) = 1)) )) = 0))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr9: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( fa <* cfs.cfs_faces | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(fa)) OR \n\t(SIZEOF\n\t( QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* fa.bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(bnds)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( oe <* elp_fbnds.bound\\path.edge_list | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_CURVE' IN TYPEOF\n\t(oe.edge_element))) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr10: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( fa <* cfs.cfs_faces | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(fa)) OR \n\t(SIZEOF\n\t( QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* fa.bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE LOOP' IN TYPEOF\n\t(bnds.bound)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( oe_cv <* QUERY \n\t( oe <* elp_fbnds.bound\\path. edge_list | \n\t('CONFIG_CONTROL_DESIGN.EDGE_CURVE' IN TYPEOF\n\t(oe. edge_element)) ) | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.CURVE_REPLICA', 'CONFIG_CONTROL_DESIGN.OFFSET_CURVE_3D', 'CONFIG_CONTROL_DESIGN.SURFACE_CURVE'] * TYPEOF\n\t(oe_cv.edge_element\\ edge_curve.edge_geometry)) = 1)) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr11: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( fa <* cfs.cfs_faces | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(fa)) OR \n\t(SIZEOF\n\t( QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* fa.bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(bnds.bound)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( oe <* elp_fbnds.bound\\path.edge_list | \n\t(NOT basis_curve_check\n\t(oe.edge_element\\edge_curve.edge_geometry, 'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr12: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( fa <* cfs.cfs_faces | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(fa)) OR \n\t(SIZEOF\n\t( QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* fa.bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(bnds)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( oe <* elp_fbnds.bound\\path.edge_list | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(oe.edge_element. edge_start)) AND \n\t('CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(oe .edge_element.edge_end)))) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr13: (SIZEOF\n\t(QUERY \n\t( sbsm <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_SURFACE_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( cfs <* sbsm\\shell_based_surface_model. sbsm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( fa <* cfs.cfs_faces | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(fa)) OR \n\t(SIZEOF\n\t( QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* fa.bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(bnds.bound)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( oe <* elp_fbnds.bound\\path.edge_list | \n\t(NOT \n\t(\n\t( SIZEOF\n\t(['CONFIG_CONTROL_DESIGN.CARTESIAN_POINT', 'CONFIG_CONTROL_DESIGN.DEGENERATE_PCURVE', 'CONFIG_CONTROL_DESIGN.POINT_ON_CURVE', 'CONFIG_CONTROL_DESIGN.POINT_ON_SURFACE'] * TYPEOF\n\t(oe.edge_element. edge_start\\vertex_point.vertex_geometry)) = 1) AND \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.CARTESIAN_POINT', 'CONFIG_CONTROL_DESIGN.DEGENERATE_PCURVE', 'CONFIG_CONTROL_DESIGN.POINT_ON_CURVE', 'CONFIG_CONTROL_DESIGN.POINT_ON_SURFACE'] * TYPEOF\n\t(oe.edge_element. edge_end\\vertex_point.vertex_geometry)) = 1))) )) = 0)) )) = 0))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_manifold_surface_shape_representation->_where_rules->Append(wr); - config_control_designe_certification = new EntityDescriptor( - "Certification", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCertification ); - s_config_control_design->AddEntity(config_control_designe_certification); - config_control_designe_product_definition_relationship = new EntityDescriptor( - "Product_Definition_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition_relationship ); - s_config_control_design->AddEntity(config_control_designe_product_definition_relationship); - config_control_designe_product_definition_usage = new EntityDescriptor( - "Product_Definition_Usage", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition_usage ); - s_config_control_design->AddEntity(config_control_designe_product_definition_usage); - config_control_designe_product_definition_usage->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (acyclic_product_definition_relationship\n\t(SELF,[SELF\\ product_definition_relationship.related_product_definition], 'CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP.' + 'RELATED_PRODUCT_DEFINITION'));\n"); - config_control_designe_product_definition_usage->_where_rules->Append(wr); - config_control_designe_product_definition_usage->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : id, relating_product_definition, related_product_definition;\n"); - config_control_designe_product_definition_usage->_uniqueness_rules->Append(ur); - config_control_designe_assembly_component_usage = new EntityDescriptor( - "Assembly_Component_Usage", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAssembly_component_usage ); - s_config_control_design->AddEntity(config_control_designe_assembly_component_usage); - config_control_designe_quantified_assembly_component_usage = new EntityDescriptor( - "Quantified_Assembly_Component_Usage", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiQuantified_assembly_component_usage ); - s_config_control_design->AddEntity(config_control_designe_quantified_assembly_component_usage); - config_control_designe_solid_model = new EntityDescriptor( - "Solid_Model", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSolid_model ); - s_config_control_design->AddEntity(config_control_designe_solid_model); - config_control_designe_manifold_solid_brep = new EntityDescriptor( - "Manifold_Solid_Brep", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiManifold_solid_brep ); - s_config_control_design->AddEntity(config_control_designe_manifold_solid_brep); - config_control_designe_faceted_brep = new EntityDescriptor( - "Faceted_Brep", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiFaceted_brep ); - s_config_control_design->AddEntity(config_control_designe_faceted_brep); - config_control_designe_action_directive = new EntityDescriptor( - "Action_Directive", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAction_directive ); - s_config_control_design->AddEntity(config_control_designe_action_directive); - config_control_designe_named_unit = new EntityDescriptor( - "Named_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiNamed_unit ); - s_config_control_design->AddEntity(config_control_designe_named_unit); - config_control_designe_plane_angle_unit = new EntityDescriptor( - "Plane_Angle_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPlane_angle_unit ); - s_config_control_design->AddEntity(config_control_designe_plane_angle_unit); - config_control_designe_plane_angle_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(SELF\\named_unit.dimensions.length_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.mass_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. time_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. electric_current_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. thermodynamic_temperature_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.amount_of_substance_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.luminous_intensity_exponent = 0));\n"); - config_control_designe_plane_angle_unit->_where_rules->Append(wr); - config_control_designe_measure_with_unit = new EntityDescriptor( - "Measure_With_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiMeasure_with_unit ); - s_config_control_design->AddEntity(config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (valid_units\n\t(SELF));\n"); - config_control_designe_measure_with_unit->_where_rules->Append(wr); - config_control_designe_area_measure_with_unit = new EntityDescriptor( - "Area_Measure_With_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiArea_measure_with_unit ); - s_config_control_design->AddEntity(config_control_designe_area_measure_with_unit); - config_control_designe_area_measure_with_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.AREA_UNIT' IN TYPEOF\n\t(SELF\\measure_with_unit. unit_component));\n"); - config_control_designe_area_measure_with_unit->_where_rules->Append(wr); - config_control_designe_effectivity = new EntityDescriptor( - "Effectivity", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiEffectivity ); - s_config_control_design->AddEntity(config_control_designe_effectivity); - config_control_designe_serial_numbered_effectivity = new EntityDescriptor( - "Serial_Numbered_Effectivity", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSerial_numbered_effectivity ); - s_config_control_design->AddEntity(config_control_designe_serial_numbered_effectivity); - config_control_designe_surface = new EntityDescriptor( - "Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSurface ); - s_config_control_design->AddEntity(config_control_designe_surface); - config_control_designe_offset_surface = new EntityDescriptor( - "Offset_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOffset_surface ); - s_config_control_design->AddEntity(config_control_designe_offset_surface); - config_control_designe_placement = new EntityDescriptor( - "Placement", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPlacement ); - s_config_control_design->AddEntity(config_control_designe_placement); - config_control_designe_axis2_placement_2d = new EntityDescriptor( - "Axis2_Placement_2d", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAxis2_placement_2d ); - s_config_control_design->AddEntity(config_control_designe_axis2_placement_2d); - config_control_designe_axis2_placement_2d->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\geometric_representation_item.dim = 2);\n"); - config_control_designe_axis2_placement_2d->_where_rules->Append(wr); - config_control_designe_product_category = new EntityDescriptor( - "Product_Category", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_category ); - s_config_control_design->AddEntity(config_control_designe_product_category); - config_control_designe_product_related_product_category = new EntityDescriptor( - "Product_Related_Product_Category", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_related_product_category ); - s_config_control_design->AddEntity(config_control_designe_product_related_product_category); - config_control_designe_curve = new EntityDescriptor( - "Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCurve ); - s_config_control_design->AddEntity(config_control_designe_curve); - config_control_designe_conic = new EntityDescriptor( - "Conic", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiConic ); - s_config_control_design->AddEntity(config_control_designe_conic); - config_control_designe_hyperbola = new EntityDescriptor( - "Hyperbola", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiHyperbola ); - s_config_control_design->AddEntity(config_control_designe_hyperbola); - config_control_designe_address = new EntityDescriptor( - "Address", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAddress ); - s_config_control_design->AddEntity(config_control_designe_address); - config_control_designe_address->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (EXISTS\n\t(internal_location) OR EXISTS\n\t(street_number) OR EXISTS\n\t(street) OR EXISTS\n\t(postal_box) OR EXISTS\n\t(town) OR EXISTS\n\t(region) OR EXISTS\n\t( postal_code) OR EXISTS\n\t(country) OR EXISTS\n\t(facsimile_number) OR EXISTS\n\t(telephone_number) OR EXISTS\n\t(electronic_mail_address) OR EXISTS\n\t(telex_number));\n"); - config_control_designe_address->_where_rules->Append(wr); - config_control_designe_organizational_address = new EntityDescriptor( - "Organizational_Address", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOrganizational_address ); - s_config_control_design->AddEntity(config_control_designe_organizational_address); - config_control_designe_bounded_surface = new EntityDescriptor( - "Bounded_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiBounded_surface ); - s_config_control_design->AddEntity(config_control_designe_bounded_surface); - config_control_designe_b_spline_surface = new EntityDescriptor( - "B_Spline_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiB_spline_surface ); - s_config_control_design->AddEntity(config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t('CONFIG_CONTROL_DESIGN.UNIFORM_SURFACE' IN TYPEOF\n\t(SELF)) OR \n\t( 'CONFIG_CONTROL_DESIGN.QUASI_UNIFORM_SURFACE' IN TYPEOF\n\t(SELF)) OR \n\t( 'CONFIG_CONTROL_DESIGN.BEZIER_SURFACE' IN TYPEOF\n\t(SELF)) OR \n\t( 'CONFIG_CONTROL_DESIGN.B_SPLINE_SURFACE_WITH_KNOTS' IN TYPEOF\n\t(SELF)));\n"); - config_control_designe_b_spline_surface->_where_rules->Append(wr); - config_control_designe_uniform_surface = new EntityDescriptor( - "Uniform_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiUniform_surface ); - s_config_control_design->AddEntity(config_control_designe_uniform_surface); - config_control_designe_geometrically_bounded_surface_shape_representation = new EntityDescriptor( - "Geometrically_Bounded_Surface_Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiGeometrically_bounded_surface_shape_representation ); - s_config_control_design->AddEntity(config_control_designe_geometrically_bounded_surface_shape_representation); - config_control_designe_geometrically_bounded_surface_shape_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( it <* items | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.GEOMETRIC_SET', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM', 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF\n\t(it)) = 1)) )) = 0);\n"); - config_control_designe_geometrically_bounded_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( it <* items | \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.GEOMETRIC_SET', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM'] * TYPEOF\n\t(it)) = 1) )) > 0);\n"); - config_control_designe_geometrically_bounded_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( mi <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.' + 'GEOMETRICALLY_BOUNDED_SURFACE_SHAPE_REPRESENTATION') IN TYPEOF\n\t(mi\\ mapped_item.mapping_source.mapped_representation))) )) = 0);\n"); - config_control_designe_geometrically_bounded_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( gs <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.GEOMETRIC_SET' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( pnt <* QUERY \n\t( gsel <* gs\\geometric_set.elements | \n\t( 'CONFIG_CONTROL_DESIGN.POINT' IN TYPEOF\n\t(gsel)) ) | \n\t(NOT gbsf_check_point\n\t(pnt,'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0);\n"); - config_control_designe_geometrically_bounded_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr5: (SIZEOF\n\t(QUERY \n\t( gs <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.GEOMETRIC_SET' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( cv <* QUERY \n\t( gsel <* gs\\geometric_set.elements | \n\t( 'CONFIG_CONTROL_DESIGN.CURVE' IN TYPEOF\n\t(gsel)) ) | \n\t(NOT gbsf_check_curve\n\t(cv,'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0);\n"); - config_control_designe_geometrically_bounded_surface_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr6: (SIZEOF\n\t(QUERY \n\t( gs <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.GEOMETRIC_SET' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( sf <* QUERY \n\t( gsel <* gs\\geometric_set.elements | \n\t( 'CONFIG_CONTROL_DESIGN.SURFACE' IN TYPEOF\n\t(gsel)) ) | \n\t(NOT gbsf_check_surface\n\t(sf,'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0);\n"); - config_control_designe_geometrically_bounded_surface_shape_representation->_where_rules->Append(wr); - config_control_designe_axis1_placement = new EntityDescriptor( - "Axis1_Placement", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAxis1_placement ); - s_config_control_design->AddEntity(config_control_designe_axis1_placement); - config_control_designe_axis1_placement->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\geometric_representation_item.dim = 3);\n"); - config_control_designe_axis1_placement->_where_rules->Append(wr); - config_control_designe_bounded_curve = new EntityDescriptor( - "Bounded_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiBounded_curve ); - s_config_control_design->AddEntity(config_control_designe_bounded_curve); - config_control_designe_b_spline_curve = new EntityDescriptor( - "B_Spline_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiB_spline_curve ); - s_config_control_design->AddEntity(config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t('CONFIG_CONTROL_DESIGN.UNIFORM_CURVE' IN TYPEOF\n\t(SELF)) OR \n\t( 'CONFIG_CONTROL_DESIGN.QUASI_UNIFORM_CURVE' IN TYPEOF\n\t(SELF)) OR \n\t( 'CONFIG_CONTROL_DESIGN.BEZIER_CURVE' IN TYPEOF\n\t(SELF)) OR \n\t( 'CONFIG_CONTROL_DESIGN.B_SPLINE_CURVE_WITH_KNOTS' IN TYPEOF\n\t(SELF)));\n"); - config_control_designe_b_spline_curve->_where_rules->Append(wr); - config_control_designe_rational_b_spline_curve = new EntityDescriptor( - "Rational_B_Spline_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRational_b_spline_curve ); - s_config_control_design->AddEntity(config_control_designe_rational_b_spline_curve); - config_control_designe_rational_b_spline_curve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(weights_data) = SIZEOF\n\t(SELF\\b_spline_curve.control_points_list));\n"); - config_control_designe_rational_b_spline_curve->_where_rules->Append(wr); - wr = new Where_rule("wr2: (curve_weights_positive\n\t(SELF));\n"); - config_control_designe_rational_b_spline_curve->_where_rules->Append(wr); - config_control_designe_action_request_assignment = new EntityDescriptor( - "Action_Request_Assignment", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiAction_request_assignment ); - s_config_control_design->AddEntity(config_control_designe_action_request_assignment); - config_control_designe_topological_representation_item = new EntityDescriptor( - "Topological_Representation_Item", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiTopological_representation_item ); - s_config_control_design->AddEntity(config_control_designe_topological_representation_item); - config_control_designe_face_bound = new EntityDescriptor( - "Face_Bound", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiFace_bound ); - s_config_control_design->AddEntity(config_control_designe_face_bound); - config_control_designe_length_measure_with_unit = new EntityDescriptor( - "Length_Measure_With_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiLength_measure_with_unit ); - s_config_control_design->AddEntity(config_control_designe_length_measure_with_unit); - config_control_designe_length_measure_with_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.LENGTH_UNIT' IN TYPEOF\n\t(SELF\\measure_with_unit. unit_component));\n"); - config_control_designe_length_measure_with_unit->_where_rules->Append(wr); - config_control_designe_dated_effectivity = new EntityDescriptor( - "Dated_Effectivity", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDated_effectivity ); - s_config_control_design->AddEntity(config_control_designe_dated_effectivity); - config_control_designe_direction = new EntityDescriptor( - "Direction", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDirection ); - s_config_control_design->AddEntity(config_control_designe_direction); - config_control_designe_direction->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( tmp <* direction_ratios | \n\t(tmp <> 0) )) > 0);\n"); - config_control_designe_direction->_where_rules->Append(wr); - config_control_designe_next_assembly_usage_occurrence = new EntityDescriptor( - "Next_Assembly_Usage_Occurrence", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiNext_assembly_usage_occurrence ); - s_config_control_design->AddEntity(config_control_designe_next_assembly_usage_occurrence); - config_control_designe_edge = new EntityDescriptor( - "Edge", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiEdge ); - s_config_control_design->AddEntity(config_control_designe_edge); - config_control_designe_oriented_edge = new EntityDescriptor( - "Oriented_Edge", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOriented_edge ); - s_config_control_design->AddEntity(config_control_designe_oriented_edge); - config_control_designe_oriented_edge->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT \n\t('CONFIG_CONTROL_DESIGN.ORIENTED_EDGE' IN TYPEOF\n\t(SELF.edge_element)));\n"); - config_control_designe_oriented_edge->_where_rules->Append(wr); - config_control_designe_person = new EntityDescriptor( - "Person", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPerson ); - s_config_control_design->AddEntity(config_control_designe_person); - config_control_designe_person->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (EXISTS\n\t(last_name) OR EXISTS\n\t(first_name));\n"); - config_control_designe_person->_where_rules->Append(wr); - config_control_designe_person->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : id;\n"); - config_control_designe_person->_uniqueness_rules->Append(ur); - config_control_designe_document = new EntityDescriptor( - "Document", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDocument ); - s_config_control_design->AddEntity(config_control_designe_document); - config_control_designe_document->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : id;\n"); - config_control_designe_document->_uniqueness_rules->Append(ur); - config_control_designe_document_with_class = new EntityDescriptor( - "Document_With_Class", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDocument_with_class ); - s_config_control_design->AddEntity(config_control_designe_document_with_class); - config_control_designe_conversion_based_unit = new EntityDescriptor( - "Conversion_Based_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiConversion_based_unit ); - s_config_control_design->AddEntity(config_control_designe_conversion_based_unit); - config_control_designe_point = new EntityDescriptor( - "Point", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPoint ); - s_config_control_design->AddEntity(config_control_designe_point); - config_control_designe_point_on_surface = new EntityDescriptor( - "Point_On_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPoint_on_surface ); - s_config_control_design->AddEntity(config_control_designe_point_on_surface); - config_control_designe_product_definition_formation = new EntityDescriptor( - "Product_Definition_Formation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition_formation ); - s_config_control_design->AddEntity(config_control_designe_product_definition_formation); - config_control_designe_product_definition_formation->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : id, of_product;\n"); - config_control_designe_product_definition_formation->_uniqueness_rules->Append(ur); - config_control_designe_person_and_organization_assignment = new EntityDescriptor( - "Person_And_Organization_Assignment", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiPerson_and_organization_assignment ); - s_config_control_design->AddEntity(config_control_designe_person_and_organization_assignment); - config_control_designe_cc_design_person_and_organization_assignment = new EntityDescriptor( - "Cc_Design_Person_And_Organization_Assignment", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCc_design_person_and_organization_assignment ); - s_config_control_design->AddEntity(config_control_designe_cc_design_person_and_organization_assignment); - config_control_designe_cc_design_person_and_organization_assignment->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (cc_design_person_and_organization_correlation\n\t(SELF));\n"); - config_control_designe_cc_design_person_and_organization_assignment->_where_rules->Append(wr); - config_control_designe_offset_curve_3d = new EntityDescriptor( - "Offset_Curve_3d", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOffset_curve_3d ); - s_config_control_design->AddEntity(config_control_designe_offset_curve_3d); - config_control_designe_offset_curve_3d->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(basis_curve.dim = 3) AND \n\t(ref_direction.dim = 3));\n"); - config_control_designe_offset_curve_3d->_where_rules->Append(wr); - config_control_designe_approval = new EntityDescriptor( - "Approval", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApproval ); - s_config_control_design->AddEntity(config_control_designe_approval); - config_control_designe_composite_curve = new EntityDescriptor( - "Composite_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiComposite_curve ); - s_config_control_design->AddEntity(config_control_designe_composite_curve); - config_control_designe_composite_curve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(\n\t(NOT closed_curve) AND \n\t(SIZEOF\n\t(QUERY \n\t( temp <* segments | \n\t(temp. transition = discontinuous) )) = 1)) OR \n\t(closed_curve AND \n\t(SIZEOF\n\t( QUERY \n\t( temp <* segments | \n\t(temp.transition = discontinuous) )) = 0)));\n"); - config_control_designe_composite_curve->_where_rules->Append(wr); - config_control_designe_composite_curve_on_surface = new EntityDescriptor( - "Composite_Curve_On_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiComposite_curve_on_surface ); - s_config_control_design->AddEntity(config_control_designe_composite_curve_on_surface); - config_control_designe_composite_curve_on_surface->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(basis_surface) > 0);\n"); - config_control_designe_composite_curve_on_surface->_where_rules->Append(wr); - wr = new Where_rule("wr2: (constraints_composite_curve_on_surface\n\t(SELF));\n"); - config_control_designe_composite_curve_on_surface->_where_rules->Append(wr); - config_control_designe_boundary_curve = new EntityDescriptor( - "Boundary_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiBoundary_curve ); - s_config_control_design->AddEntity(config_control_designe_boundary_curve); - config_control_designe_boundary_curve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\composite_curve.closed_curve);\n"); - config_control_designe_boundary_curve->_where_rules->Append(wr); - config_control_designe_representation_context = new EntityDescriptor( - "Representation_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRepresentation_context ); - s_config_control_design->AddEntity(config_control_designe_representation_context); - config_control_designe_geometric_representation_context = new EntityDescriptor( - "Geometric_Representation_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiGeometric_representation_context ); - s_config_control_design->AddEntity(config_control_designe_geometric_representation_context); - config_control_designe_action_status = new EntityDescriptor( - "Action_Status", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAction_status ); - s_config_control_design->AddEntity(config_control_designe_action_status); - config_control_designe_application_context = new EntityDescriptor( - "Application_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApplication_context ); - s_config_control_design->AddEntity(config_control_designe_application_context); - config_control_designe_change_request = new EntityDescriptor( - "Change_Request", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiChange_request ); - s_config_control_design->AddEntity(config_control_designe_change_request); - config_control_designe_date_and_time = new EntityDescriptor( - "Date_And_Time", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDate_and_time ); - s_config_control_design->AddEntity(config_control_designe_date_and_time); - config_control_designe_approval_date_time = new EntityDescriptor( - "Approval_Date_Time", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApproval_date_time ); - s_config_control_design->AddEntity(config_control_designe_approval_date_time); - config_control_designe_approval_role = new EntityDescriptor( - "Approval_Role", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApproval_role ); - s_config_control_design->AddEntity(config_control_designe_approval_role); - config_control_designe_application_context_element = new EntityDescriptor( - "Application_Context_Element", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApplication_context_element ); - s_config_control_design->AddEntity(config_control_designe_application_context_element); - config_control_designe_product_context = new EntityDescriptor( - "Product_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_context ); - s_config_control_design->AddEntity(config_control_designe_product_context); - config_control_designe_elementary_surface = new EntityDescriptor( - "Elementary_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiElementary_surface ); - s_config_control_design->AddEntity(config_control_designe_elementary_surface); - config_control_designe_spherical_surface = new EntityDescriptor( - "Spherical_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSpherical_surface ); - s_config_control_design->AddEntity(config_control_designe_spherical_surface); - config_control_designe_application_protocol_definition = new EntityDescriptor( - "Application_Protocol_Definition", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApplication_protocol_definition ); - s_config_control_design->AddEntity(config_control_designe_application_protocol_definition); - config_control_designe_specified_higher_usage_occurrence = new EntityDescriptor( - "Specified_Higher_Usage_Occurrence", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSpecified_higher_usage_occurrence ); - s_config_control_design->AddEntity(config_control_designe_specified_higher_usage_occurrence); - config_control_designe_specified_higher_usage_occurrence->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF :<>: upper_usage);\n"); - config_control_designe_specified_higher_usage_occurrence->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SELF\\product_definition_relationship.relating_product_definition :=: upper_usage.relating_product_definition);\n"); - config_control_designe_specified_higher_usage_occurrence->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SELF\\product_definition_relationship.related_product_definition :=: next_usage.related_product_definition);\n"); - config_control_designe_specified_higher_usage_occurrence->_where_rules->Append(wr); - wr = new Where_rule("wr4: (upper_usage.related_product_definition :=: next_usage. relating_product_definition);\n"); - config_control_designe_specified_higher_usage_occurrence->_where_rules->Append(wr); - wr = new Where_rule("wr5: (NOT \n\t('CONFIG_CONTROL_DESIGN.PROMISSORY_USAGE_OCCURRENCE' IN TYPEOF\n\t( upper_usage)));\n"); - config_control_designe_specified_higher_usage_occurrence->_where_rules->Append(wr); - config_control_designe_specified_higher_usage_occurrence->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : upper_usage, next_usage;\n"); - config_control_designe_specified_higher_usage_occurrence->_uniqueness_rules->Append(ur); - config_control_designe_product_definition_formation_with_specified_source = new EntityDescriptor( - "Product_Definition_Formation_With_Specified_Source", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition_formation_with_specified_source ); - s_config_control_design->AddEntity(config_control_designe_product_definition_formation_with_specified_source); - config_control_designe_action_request_solution = new EntityDescriptor( - "Action_Request_Solution", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAction_request_solution ); - s_config_control_design->AddEntity(config_control_designe_action_request_solution); - config_control_designe_uncertainty_measure_with_unit = new EntityDescriptor( - "Uncertainty_Measure_With_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiUncertainty_measure_with_unit ); - s_config_control_design->AddEntity(config_control_designe_uncertainty_measure_with_unit); - config_control_designe_uncertainty_measure_with_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(NOT \n\t('NUMBER' IN TYPEOF\n\t(SELF\\measure_with_unit.value_component))) OR \n\t( SELF\\measure_with_unit.value_component >= 0));\n"); - config_control_designe_uncertainty_measure_with_unit->_where_rules->Append(wr); - config_control_designe_edge_based_wireframe_model = new EntityDescriptor( - "Edge_Based_Wireframe_Model", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiEdge_based_wireframe_model ); - s_config_control_design->AddEntity(config_control_designe_edge_based_wireframe_model); - config_control_designe_path = new EntityDescriptor( - "Path", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPath ); - s_config_control_design->AddEntity(config_control_designe_path); - config_control_designe_path->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (path_head_to_tail\n\t(SELF));\n"); - config_control_designe_path->_where_rules->Append(wr); - config_control_designe_connected_face_set = new EntityDescriptor( - "Connected_Face_Set", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiConnected_face_set ); - s_config_control_design->AddEntity(config_control_designe_connected_face_set); - config_control_designe_open_shell = new EntityDescriptor( - "Open_Shell", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOpen_shell ); - s_config_control_design->AddEntity(config_control_designe_open_shell); - config_control_designe_oriented_open_shell = new EntityDescriptor( - "Oriented_Open_Shell", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOriented_open_shell ); - s_config_control_design->AddEntity(config_control_designe_oriented_open_shell); - config_control_designe_oriented_open_shell->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT \n\t('CONFIG_CONTROL_DESIGN.ORIENTED_OPEN_SHELL' IN TYPEOF\n\t(SELF. open_shell_element)));\n"); - config_control_designe_oriented_open_shell->_where_rules->Append(wr); - config_control_designe_solid_angle_unit = new EntityDescriptor( - "Solid_Angle_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSolid_angle_unit ); - s_config_control_design->AddEntity(config_control_designe_solid_angle_unit); - config_control_designe_solid_angle_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(SELF\\named_unit.dimensions.length_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.mass_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. time_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. electric_current_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. thermodynamic_temperature_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.amount_of_substance_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.luminous_intensity_exponent = 0));\n"); - config_control_designe_solid_angle_unit->_where_rules->Append(wr); - config_control_designe_coordinated_universal_time_offset = new EntityDescriptor( - "Coordinated_Universal_Time_Offset", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCoordinated_universal_time_offset ); - s_config_control_design->AddEntity(config_control_designe_coordinated_universal_time_offset); - config_control_designe_curve_replica = new EntityDescriptor( - "Curve_Replica", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCurve_replica ); - s_config_control_design->AddEntity(config_control_designe_curve_replica); - config_control_designe_curve_replica->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (transformation.dim = parent_curve.dim);\n"); - config_control_designe_curve_replica->_where_rules->Append(wr); - wr = new Where_rule("wr2: (acyclic_curve_replica\n\t(SELF,parent_curve));\n"); - config_control_designe_curve_replica->_where_rules->Append(wr); - config_control_designe_quasi_uniform_surface = new EntityDescriptor( - "Quasi_Uniform_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiQuasi_uniform_surface ); - s_config_control_design->AddEntity(config_control_designe_quasi_uniform_surface); - config_control_designe_surface_curve = new EntityDescriptor( - "Surface_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSurface_curve ); - s_config_control_design->AddEntity(config_control_designe_surface_curve); - config_control_designe_surface_curve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (curve_3d.dim = 3);\n"); - config_control_designe_surface_curve->_where_rules->Append(wr); - wr = new Where_rule("wr2: (\n\t('CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF\n\t(associated_geometry[1])) OR \n\t( master_representation <> pcurve_s1));\n"); - config_control_designe_surface_curve->_where_rules->Append(wr); - wr = new Where_rule("wr3: (\n\t('CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF\n\t(associated_geometry[2])) OR \n\t( master_representation <> pcurve_s2));\n"); - config_control_designe_surface_curve->_where_rules->Append(wr); - wr = new Where_rule("wr4: (NOT \n\t('CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF\n\t(curve_3d)));\n"); - config_control_designe_surface_curve->_where_rules->Append(wr); - config_control_designe_action_request_status = new EntityDescriptor( - "Action_Request_Status", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAction_request_status ); - s_config_control_design->AddEntity(config_control_designe_action_request_status); - config_control_designe_composite_curve_segment = new EntityDescriptor( - "Composite_Curve_Segment", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiComposite_curve_segment ); - s_config_control_design->AddEntity(config_control_designe_composite_curve_segment); - config_control_designe_composite_curve_segment->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.BOUNDED_CURVE' IN TYPEOF\n\t(parent_curve));\n"); - config_control_designe_composite_curve_segment->_where_rules->Append(wr); - config_control_designe_reparametrised_composite_curve_segment = new EntityDescriptor( - "Reparametrised_Composite_Curve_Segment", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiReparametrised_composite_curve_segment ); - s_config_control_design->AddEntity(config_control_designe_reparametrised_composite_curve_segment); - config_control_designe_reparametrised_composite_curve_segment->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (param_length > 0);\n"); - config_control_designe_reparametrised_composite_curve_segment->_where_rules->Append(wr); - config_control_designe_representation_relationship = new EntityDescriptor( - "Representation_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRepresentation_relationship ); - s_config_control_design->AddEntity(config_control_designe_representation_relationship); - config_control_designe_representation_relationship_with_transformation = new EntityDescriptor( - "Representation_Relationship_With_Transformation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRepresentation_relationship_with_transformation ); - s_config_control_design->AddEntity(config_control_designe_representation_relationship_with_transformation); - config_control_designe_representation_relationship_with_transformation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\representation_relationship.rep_1.context_of_items :<>: SELF\\ representation_relationship.rep_2.context_of_items);\n"); - config_control_designe_representation_relationship_with_transformation->_where_rules->Append(wr); - config_control_designe_person_and_organization_role = new EntityDescriptor( - "Person_And_Organization_Role", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPerson_and_organization_role ); - s_config_control_design->AddEntity(config_control_designe_person_and_organization_role); - config_control_designe_quasi_uniform_curve = new EntityDescriptor( - "Quasi_Uniform_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiQuasi_uniform_curve ); - s_config_control_design->AddEntity(config_control_designe_quasi_uniform_curve); - config_control_designe_swept_surface = new EntityDescriptor( - "Swept_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSwept_surface ); - s_config_control_design->AddEntity(config_control_designe_swept_surface); - config_control_designe_property_definition = new EntityDescriptor( - "Property_Definition", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProperty_definition ); - s_config_control_design->AddEntity(config_control_designe_property_definition); - config_control_designe_global_uncertainty_assigned_context = new EntityDescriptor( - "Global_Uncertainty_Assigned_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiGlobal_uncertainty_assigned_context ); - s_config_control_design->AddEntity(config_control_designe_global_uncertainty_assigned_context); - config_control_designe_organization_relationship = new EntityDescriptor( - "Organization_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOrganization_relationship ); - s_config_control_design->AddEntity(config_control_designe_organization_relationship); - config_control_designe_parabola = new EntityDescriptor( - "Parabola", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiParabola ); - s_config_control_design->AddEntity(config_control_designe_parabola); - config_control_designe_parabola->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (focal_dist <> 0);\n"); - config_control_designe_parabola->_where_rules->Append(wr); - config_control_designe_rectangular_composite_surface = new EntityDescriptor( - "Rectangular_Composite_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRectangular_composite_surface ); - s_config_control_design->AddEntity(config_control_designe_rectangular_composite_surface); - config_control_designe_rectangular_composite_surface->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ([] = QUERY \n\t( s <* segments | \n\t(n_v <> SIZEOF\n\t(s)) ));\n"); - config_control_designe_rectangular_composite_surface->_where_rules->Append(wr); - wr = new Where_rule("wr2: (constraints_rectangular_composite_surface\n\t(SELF));\n"); - config_control_designe_rectangular_composite_surface->_where_rules->Append(wr); - config_control_designe_lot_effectivity = new EntityDescriptor( - "Lot_Effectivity", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiLot_effectivity ); - s_config_control_design->AddEntity(config_control_designe_lot_effectivity); - config_control_designe_surface_of_linear_extrusion = new EntityDescriptor( - "Surface_Of_Linear_Extrusion", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSurface_of_linear_extrusion ); - s_config_control_design->AddEntity(config_control_designe_surface_of_linear_extrusion); - config_control_designe_shell_based_surface_model = new EntityDescriptor( - "Shell_Based_Surface_Model", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiShell_based_surface_model ); - s_config_control_design->AddEntity(config_control_designe_shell_based_surface_model); - config_control_designe_shell_based_surface_model->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (constraints_geometry_shell_based_surface_model\n\t(SELF));\n"); - config_control_designe_shell_based_surface_model->_where_rules->Append(wr); - config_control_designe_uniform_curve = new EntityDescriptor( - "Uniform_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiUniform_curve ); - s_config_control_design->AddEntity(config_control_designe_uniform_curve); - config_control_designe_bezier_curve = new EntityDescriptor( - "Bezier_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiBezier_curve ); - s_config_control_design->AddEntity(config_control_designe_bezier_curve); - config_control_designe_loop = new EntityDescriptor( - "Loop", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiLoop ); - s_config_control_design->AddEntity(config_control_designe_loop); - config_control_designe_edge_loop = new EntityDescriptor( - "Edge_Loop", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiEdge_loop ); - s_config_control_design->AddEntity(config_control_designe_edge_loop); - config_control_designe_edge_loop->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\path.edge_list[1].edge_start :=: SELF\\path.edge_list[ne].edge_end);\n"); - config_control_designe_edge_loop->_where_rules->Append(wr); - config_control_designe_date = new EntityDescriptor( - "Date", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDate ); - s_config_control_design->AddEntity(config_control_designe_date); - config_control_designe_calendar_date = new EntityDescriptor( - "Calendar_Date", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCalendar_date ); - s_config_control_design->AddEntity(config_control_designe_calendar_date); - config_control_designe_calendar_date->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (valid_calendar_date\n\t(SELF));\n"); - config_control_designe_calendar_date->_where_rules->Append(wr); - config_control_designe_toroidal_surface = new EntityDescriptor( - "Toroidal_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiToroidal_surface ); - s_config_control_design->AddEntity(config_control_designe_toroidal_surface); - config_control_designe_promissory_usage_occurrence = new EntityDescriptor( - "Promissory_Usage_Occurrence", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPromissory_usage_occurrence ); - s_config_control_design->AddEntity(config_control_designe_promissory_usage_occurrence); - config_control_designe_approval_assignment = new EntityDescriptor( - "Approval_Assignment", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiApproval_assignment ); - s_config_control_design->AddEntity(config_control_designe_approval_assignment); - config_control_designe_configuration_item = new EntityDescriptor( - "Configuration_Item", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiConfiguration_item ); - s_config_control_design->AddEntity(config_control_designe_configuration_item); - config_control_designe_configuration_item->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : id;\n"); - config_control_designe_configuration_item->_uniqueness_rules->Append(ur); - config_control_designe_contract_assignment = new EntityDescriptor( - "Contract_Assignment", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiContract_assignment ); - s_config_control_design->AddEntity(config_control_designe_contract_assignment); - config_control_designe_vector = new EntityDescriptor( - "Vector", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiVector ); - s_config_control_design->AddEntity(config_control_designe_vector); - config_control_designe_vector->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (magnitude >= 0);\n"); - config_control_designe_vector->_where_rules->Append(wr); - config_control_designe_intersection_curve = new EntityDescriptor( - "Intersection_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiIntersection_curve ); - s_config_control_design->AddEntity(config_control_designe_intersection_curve); - config_control_designe_intersection_curve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(SELF\\surface_curve.associated_geometry) = 2);\n"); - config_control_designe_intersection_curve->_where_rules->Append(wr); - wr = new Where_rule("wr2: (associated_surface\n\t(SELF\\surface_curve.associated_geometry[1]) <> associated_surface\n\t(SELF\\surface_curve.associated_geometry[2]));\n"); - config_control_designe_intersection_curve->_where_rules->Append(wr); - config_control_designe_trimmed_curve = new EntityDescriptor( - "Trimmed_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiTrimmed_curve ); - s_config_control_design->AddEntity(config_control_designe_trimmed_curve); - config_control_designe_trimmed_curve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(HIINDEX\n\t(trim_1) = 1) OR \n\t(TYPEOF\n\t(trim_1[1]) <> TYPEOF\n\t(trim_1[2])));\n"); - config_control_designe_trimmed_curve->_where_rules->Append(wr); - wr = new Where_rule("wr2: (\n\t(HIINDEX\n\t(trim_2) = 1) OR \n\t(TYPEOF\n\t(trim_2[1]) <> TYPEOF\n\t(trim_2[2])));\n"); - config_control_designe_trimmed_curve->_where_rules->Append(wr); - config_control_designe_product_definition_context = new EntityDescriptor( - "Product_Definition_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition_context ); - s_config_control_design->AddEntity(config_control_designe_product_definition_context); - config_control_designe_item_defined_transformation = new EntityDescriptor( - "Item_Defined_Transformation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiItem_defined_transformation ); - s_config_control_design->AddEntity(config_control_designe_item_defined_transformation); - config_control_designe_action_method = new EntityDescriptor( - "Action_Method", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAction_method ); - s_config_control_design->AddEntity(config_control_designe_action_method); - config_control_designe_product_category_relationship = new EntityDescriptor( - "Product_Category_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_category_relationship ); - s_config_control_design->AddEntity(config_control_designe_product_category_relationship); - config_control_designe_product_category_relationship->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (acyclic_product_category_relationship\n\t(SELF,[SELF.sub_category]));\n"); - config_control_designe_product_category_relationship->_where_rules->Append(wr); - config_control_designe_plane_angle_measure_with_unit = new EntityDescriptor( - "Plane_Angle_Measure_With_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPlane_angle_measure_with_unit ); - s_config_control_design->AddEntity(config_control_designe_plane_angle_measure_with_unit); - config_control_designe_plane_angle_measure_with_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.PLANE_ANGLE_UNIT' IN TYPEOF\n\t(SELF\\measure_with_unit. unit_component));\n"); - config_control_designe_plane_angle_measure_with_unit->_where_rules->Append(wr); - config_control_designe_vertex = new EntityDescriptor( - "Vertex", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiVertex ); - s_config_control_design->AddEntity(config_control_designe_vertex); - config_control_designe_representation_map = new EntityDescriptor( - "Representation_Map", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRepresentation_map ); - s_config_control_design->AddEntity(config_control_designe_representation_map); - config_control_designe_representation_map->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (item_in_context\n\t(SELF.mapping_origin,SELF.mapped_representation. context_of_items));\n"); - config_control_designe_representation_map->_where_rules->Append(wr); - config_control_designe_product_definition_effectivity = new EntityDescriptor( - "Product_Definition_Effectivity", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition_effectivity ); - s_config_control_design->AddEntity(config_control_designe_product_definition_effectivity); - config_control_designe_product_definition_effectivity->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : usage, id;\n"); - config_control_designe_product_definition_effectivity->_uniqueness_rules->Append(ur); - config_control_designe_configuration_effectivity = new EntityDescriptor( - "Configuration_Effectivity", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiConfiguration_effectivity ); - s_config_control_design->AddEntity(config_control_designe_configuration_effectivity); - config_control_designe_configuration_effectivity->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\product_definition_effectivity.usage.relating_product_definition IN \n\t( USEDIN\n\t(SELF.configuration.design,'CONFIG_CONTROL_DESIGN.' + 'PRODUCT_DEFINITION.FORMATION') + relatives_of_product_definitions\n\t( bag_to_set\n\t(USEDIN\n\t(SELF.configuration.design, 'CONFIG_CONTROL_DESIGN.' + 'PRODUCT_DEFINITION.FORMATION')), 'CONFIG_CONTROL_DESIGN.' + 'PRODUCT_DEFINITION_USAGE')));\n"); - config_control_designe_configuration_effectivity->_where_rules->Append(wr); - wr = new Where_rule("wr2: ('CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION_USAGE' IN TYPEOF\n\t(SELF\\ product_definition_effectivity.usage));\n"); - config_control_designe_configuration_effectivity->_where_rules->Append(wr); - config_control_designe_configuration_effectivity->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : configuration, usage, id;\n"); - config_control_designe_configuration_effectivity->_uniqueness_rules->Append(ur); - config_control_designe_ellipse = new EntityDescriptor( - "Ellipse", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiEllipse ); - s_config_control_design->AddEntity(config_control_designe_ellipse); - config_control_designe_context_dependent_unit = new EntityDescriptor( - "Context_Dependent_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiContext_dependent_unit ); - s_config_control_design->AddEntity(config_control_designe_context_dependent_unit); - config_control_designe_alternate_product_relationship = new EntityDescriptor( - "Alternate_Product_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAlternate_product_relationship ); - s_config_control_design->AddEntity(config_control_designe_alternate_product_relationship); - config_control_designe_alternate_product_relationship->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (alternate :<>: base);\n"); - config_control_designe_alternate_product_relationship->_where_rules->Append(wr); - config_control_designe_alternate_product_relationship->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : alternate, base;\n"); - config_control_designe_alternate_product_relationship->_uniqueness_rules->Append(ur); - config_control_designe_document_type = new EntityDescriptor( - "Document_Type", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDocument_type ); - s_config_control_design->AddEntity(config_control_designe_document_type); - config_control_designe_document_reference = new EntityDescriptor( - "Document_Reference", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiDocument_reference ); - s_config_control_design->AddEntity(config_control_designe_document_reference); - config_control_designe_mechanical_context = new EntityDescriptor( - "Mechanical_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiMechanical_context ); - s_config_control_design->AddEntity(config_control_designe_mechanical_context); - config_control_designe_mechanical_context->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF.discipline_type = 'mechanical');\n"); - config_control_designe_mechanical_context->_where_rules->Append(wr); - config_control_designe_shell_based_wireframe_model = new EntityDescriptor( - "Shell_Based_Wireframe_Model", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiShell_based_wireframe_model ); - s_config_control_design->AddEntity(config_control_designe_shell_based_wireframe_model); - config_control_designe_shell_based_wireframe_model->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (constraints_geometry_shell_based_wireframe_model\n\t(SELF));\n"); - config_control_designe_shell_based_wireframe_model->_where_rules->Append(wr); - config_control_designe_contract = new EntityDescriptor( - "Contract", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiContract ); - s_config_control_design->AddEntity(config_control_designe_contract); - config_control_designe_dimensional_exponents = new EntityDescriptor( - "Dimensional_Exponents", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDimensional_exponents ); - s_config_control_design->AddEntity(config_control_designe_dimensional_exponents); - config_control_designe_start_request = new EntityDescriptor( - "Start_Request", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiStart_request ); - s_config_control_design->AddEntity(config_control_designe_start_request); - config_control_designe_cc_design_specification_reference = new EntityDescriptor( - "Cc_Design_Specification_Reference", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCc_design_specification_reference ); - s_config_control_design->AddEntity(config_control_designe_cc_design_specification_reference); - config_control_designe_supplied_part_relationship = new EntityDescriptor( - "Supplied_Part_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSupplied_part_relationship ); - s_config_control_design->AddEntity(config_control_designe_supplied_part_relationship); - config_control_designe_context_dependent_shape_representation = new EntityDescriptor( - "Context_Dependent_Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiContext_dependent_shape_representation ); - s_config_control_design->AddEntity(config_control_designe_context_dependent_shape_representation); - config_control_designe_context_dependent_shape_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION_RELATIONSHIP' IN TYPEOF\n\t(SELF. represented_product_relation.definition));\n"); - config_control_designe_context_dependent_shape_representation->_where_rules->Append(wr); - config_control_designe_ordinal_date = new EntityDescriptor( - "Ordinal_Date", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOrdinal_date ); - s_config_control_design->AddEntity(config_control_designe_ordinal_date); - config_control_designe_ordinal_date->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(\n\t(NOT leap_year\n\t(SELF.year_component)) AND \n\t(1 <= day_component) AND \n\t( day_component <= 365)) OR \n\t(leap_year\n\t(SELF.year_component) AND \n\t(1 <= day_component) AND \n\t(day_component <= 366)));\n"); - config_control_designe_ordinal_date->_where_rules->Append(wr); - config_control_designe_face_outer_bound = new EntityDescriptor( - "Face_Outer_Bound", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiFace_outer_bound ); - s_config_control_design->AddEntity(config_control_designe_face_outer_bound); - config_control_designe_mass_measure_with_unit = new EntityDescriptor( - "Mass_Measure_With_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiMass_measure_with_unit ); - s_config_control_design->AddEntity(config_control_designe_mass_measure_with_unit); - config_control_designe_mass_measure_with_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.MASS_UNIT' IN TYPEOF\n\t(SELF\\measure_with_unit. unit_component));\n"); - config_control_designe_mass_measure_with_unit->_where_rules->Append(wr); - config_control_designe_brep_with_voids = new EntityDescriptor( - "Brep_With_Voids", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiBrep_with_voids ); - s_config_control_design->AddEntity(config_control_designe_brep_with_voids); - config_control_designe_week_of_year_and_day_date = new EntityDescriptor( - "Week_Of_Year_And_Day_Date", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiWeek_of_year_and_day_date ); - s_config_control_design->AddEntity(config_control_designe_week_of_year_and_day_date); - config_control_designe_point_on_curve = new EntityDescriptor( - "Point_On_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPoint_on_curve ); - s_config_control_design->AddEntity(config_control_designe_point_on_curve); - config_control_designe_shell_based_wireframe_shape_representation = new EntityDescriptor( - "Shell_Based_Wireframe_Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiShell_based_wireframe_shape_representation ); - s_config_control_design->AddEntity(config_control_designe_shell_based_wireframe_shape_representation); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( it <* SELF\\representation.items | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM', 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF\n\t(it)) = 1)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( it <* SELF\\representation.items | \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM'] * TYPEOF\n\t(it)) = 1) )) >= 1);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( std::ws <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( eloop <* QUERY \n\t( wsb <* std::ws\\wire_shell.wire_shell_extent | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(wsb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( el <* eloop\\path.edge_list | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_CURVE' IN TYPEOF\n\t(el.edge_element))) )) = 0)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( std::ws <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( eloop <* QUERY \n\t( wsb <* std::ws\\wire_shell.wire_shell_extent | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(wsb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( pline_el <* QUERY \n\t( el <* eloop\\path.edge_list | \n\t( 'CONFIG_CONTROL_DESIGN.POLYLINE' IN TYPEOF\n\t(el.edge_element\\ edge_curve.edge_geometry)) ) | \n\t(NOT \n\t(SIZEOF\n\t(pline_el.edge_element\\ edge_curve.edge_geometry\\polyline.points) > 2)) )) = 0)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr5: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( std::ws <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( eloop <* QUERY \n\t( wsb <* std::ws\\wire_shell.wire_shell_extent | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(wsb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( el <* eloop\\path.edge_list | \n\t(NOT valid_wireframe_edge_curve\n\t(el.edge_element\\edge_curve.edge_geometry, 'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr6: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( std::ws <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( eloop <* QUERY \n\t( wsb <* std::ws\\wire_shell.wire_shell_extent | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(wsb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( el <* eloop\\path.edge_list | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(el.edge_element. edge_start)) AND \n\t('CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(el .edge_element.edge_end)))) )) = 0)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr7: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( std::ws <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( eloop <* QUERY \n\t( wsb <* std::ws\\wire_shell.wire_shell_extent | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(wsb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( el <* eloop\\path.edge_list | \n\t(NOT \n\t( valid_wireframe_vertex_point\n\t(el.edge_element.edge_start\\ vertex_point.vertex_geometry,'CONFIG_CONTROL_DESIGN') AND valid_wireframe_vertex_point\n\t(el.edge_element.edge_end\\vertex_point. vertex_geometry,'CONFIG_CONTROL_DESIGN'))) )) = 0)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr8: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( std::ws <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( eloop <* QUERY \n\t( wsb <* std::ws\\wire_shell.wire_shell_extent | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(wsb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( con_edges <* QUERY \n\t( el <* eloop\\path.edge_list | \n\t( 'CONFIG_CONTROL_DESIGN.CONIC' IN TYPEOF\n\t(el.edge_element\\edge_curve. edge_geometry)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D' IN TYPEOF\n\t(con_edges. edge_element\\edge_curve.edge_geometry\\conic.position))) )) = 0)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr9: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( std::ws <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( vloop <* QUERY \n\t( wsb <* std::ws\\wire_shell.wire_shell_extent | \n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_LOOP' IN TYPEOF\n\t(wsb)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(vloop.loop_vertex))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr10: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( std::ws <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.WIRE_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( vloop <* QUERY \n\t( wsb <* std::ws\\wire_shell.wire_shell_extent | \n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_LOOP' IN TYPEOF\n\t(wsb)) ) | \n\t(NOT valid_wireframe_vertex_point\n\t(vloop\\vertex_loop.loop_vertex\\ vertex_point.vertex_geometry,'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr11: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( vs <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(vs\\vertex_shell. vertex_shell_extent.loop_vertex))) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr12: (SIZEOF\n\t(QUERY \n\t( sbwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( vs <* QUERY \n\t( sb <* sbwm\\ shell_based_wireframe_model.sbwm_boundary | \n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_SHELL' IN TYPEOF\n\t(sb)) ) | \n\t(NOT valid_wireframe_vertex_point\n\t(vs\\vertex_shell.vertex_shell_extent. loop_vertex\\vertex_point.vertex_geometry,'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr13: (SIZEOF\n\t(QUERY \n\t( mi <* QUERY \n\t( item <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM' IN TYPEOF\n\t(item)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.SHELL_BASED_WIREFRAME_REPRESENTATION' IN TYPEOF\n\t(mi\\mapped_item.mapping_source.mapped_representation))) )) = 0);\n"); - config_control_designe_shell_based_wireframe_shape_representation->_where_rules->Append(wr); - config_control_designe_face = new EntityDescriptor( - "Face", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiFace ); - s_config_control_design->AddEntity(config_control_designe_face); - config_control_designe_face->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT mixed_loop_type_set\n\t(list_to_set\n\t(list_face_loops\n\t(SELF))));\n"); - config_control_designe_face->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( temp <* bounds | \n\t('CONFIG_CONTROL_DESIGN.FACE_OUTER_BOUND' IN TYPEOF\n\t(temp)) )) <= 1);\n"); - config_control_designe_face->_where_rules->Append(wr); - config_control_designe_face_surface = new EntityDescriptor( - "Face_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiFace_surface ); - s_config_control_design->AddEntity(config_control_designe_face_surface); - config_control_designe_oriented_face = new EntityDescriptor( - "Oriented_Face", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOriented_face ); - s_config_control_design->AddEntity(config_control_designe_oriented_face); - config_control_designe_oriented_face->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT \n\t('CONFIG_CONTROL_DESIGN.ORIENTED_FACE' IN TYPEOF\n\t(SELF.face_element)));\n"); - config_control_designe_oriented_face->_where_rules->Append(wr); - config_control_designe_surface_of_revolution = new EntityDescriptor( - "Surface_Of_Revolution", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSurface_of_revolution ); - s_config_control_design->AddEntity(config_control_designe_surface_of_revolution); - config_control_designe_advanced_brep_shape_representation = new EntityDescriptor( - "Advanced_Brep_Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAdvanced_brep_shape_representation ); - s_config_control_design->AddEntity(config_control_designe_advanced_brep_shape_representation); - config_control_designe_advanced_brep_shape_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( it <* SELF.items | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.MANIFOLD_SOLID_BREP', 'CONFIG_CONTROL_DESIGN.FACETED_BREP', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM', 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF\n\t(it)) = 1)) )) = 0);\n"); - config_control_designe_advanced_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( it <* SELF.items | \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.MANIFOLD_SOLID_BREP', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM'] * TYPEOF\n\t(it)) = 1) )) > 0);\n"); - config_control_designe_advanced_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( msb <* QUERY \n\t( it <* SELF.items | \n\t( 'CONFIG_CONTROL_DESIGN.MANIFOLD_SOLID_BREP' IN TYPEOF\n\t(it)) ) | \n\t( NOT \n\t(SIZEOF\n\t(QUERY \n\t( csh <* msb_shells\n\t(msb,'CONFIG_CONTROL_DESIGN') | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( csf <* csh.cfs_faces | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_FACE' IN TYPEOF\n\t(csf))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_advanced_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( msb <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.MANIFOLD_SOLID_BREP' IN TYPEOF\n\t(it)) ) | \n\t( 'CONFIG_CONTROL_DESIGN.ORIENTED_CLOSED_SHELL' IN TYPEOF\n\t(msb\\ manifold_solid_brep.outer)) )) = 0);\n"); - config_control_designe_advanced_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr5: (SIZEOF\n\t(QUERY \n\t( brv <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.BREP_WITH_VOIDS' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( csh <* brv\\brep_with_voids.voids | csh\\ oriented_closed_shell.orientation )) = 0)) )) = 0);\n"); - config_control_designe_advanced_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr6: (SIZEOF\n\t(QUERY \n\t( mi <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.ADVANCED_BREP_SHAPE_REPRESENTATION' IN TYPEOF\n\t(mi\\mapped_item.mapping_source.mapped_representation))) )) = 0);\n"); - config_control_designe_advanced_brep_shape_representation->_where_rules->Append(wr); - config_control_designe_edge_curve = new EntityDescriptor( - "Edge_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiEdge_curve ); - s_config_control_design->AddEntity(config_control_designe_edge_curve); - config_control_designe_point_replica = new EntityDescriptor( - "Point_Replica", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPoint_replica ); - s_config_control_design->AddEntity(config_control_designe_point_replica); - config_control_designe_point_replica->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (transformation.dim = parent_pt.dim);\n"); - config_control_designe_point_replica->_where_rules->Append(wr); - wr = new Where_rule("wr2: (acyclic_point_replica\n\t(SELF,parent_pt));\n"); - config_control_designe_point_replica->_where_rules->Append(wr); - config_control_designe_product = new EntityDescriptor( - "Product", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct ); - s_config_control_design->AddEntity(config_control_designe_product); - config_control_designe_product->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : id;\n"); - config_control_designe_product->_uniqueness_rules->Append(ur); - config_control_designe_shape_aspect_relationship = new EntityDescriptor( - "Shape_Aspect_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiShape_aspect_relationship ); - s_config_control_design->AddEntity(config_control_designe_shape_aspect_relationship); - config_control_designe_rectangular_trimmed_surface = new EntityDescriptor( - "Rectangular_Trimmed_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRectangular_trimmed_surface ); - s_config_control_design->AddEntity(config_control_designe_rectangular_trimmed_surface); - config_control_designe_rectangular_trimmed_surface->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (u1 <> u2);\n"); - config_control_designe_rectangular_trimmed_surface->_where_rules->Append(wr); - wr = new Where_rule("wr2: (v1 <> v2);\n"); - config_control_designe_rectangular_trimmed_surface->_where_rules->Append(wr); - wr = new Where_rule("wr3: (\n\t(\n\t('CONFIG_CONTROL_DESIGN.ELEMENTARY_SURFACE' IN TYPEOF\n\t(basis_surface)) AND \n\t(NOT \n\t('CONFIG_CONTROL_DESIGN.PLANE' IN TYPEOF\n\t(basis_surface)))) OR \n\t('CONFIG_CONTROL_DESIGN.SURFACE_OF_REVOLUTION' IN TYPEOF\n\t( basis_surface)) OR \n\t(usense = \n\t(u2 > u1)));\n"); - config_control_designe_rectangular_trimmed_surface->_where_rules->Append(wr); - wr = new Where_rule("wr4: (\n\t('CONFIG_CONTROL_DESIGN.SPHERICAL_SURFACE' IN TYPEOF\n\t(basis_surface)) OR \n\t( 'CONFIG_CONTROL_DESIGN.TOROIDAL_SURFACE' IN TYPEOF\n\t(basis_surface)) OR \n\t(vsense = \n\t(v2 > v1)));\n"); - config_control_designe_rectangular_trimmed_surface->_where_rules->Append(wr); - config_control_designe_plane = new EntityDescriptor( - "Plane", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPlane ); - s_config_control_design->AddEntity(config_control_designe_plane); - config_control_designe_action_assignment = new EntityDescriptor( - "Action_Assignment", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiAction_assignment ); - s_config_control_design->AddEntity(config_control_designe_action_assignment); - config_control_designe_change = new EntityDescriptor( - "Change", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiChange ); - s_config_control_design->AddEntity(config_control_designe_change); - config_control_designe_circle = new EntityDescriptor( - "Circle", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCircle ); - s_config_control_design->AddEntity(config_control_designe_circle); - config_control_designe_line = new EntityDescriptor( - "Line", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiLine ); - s_config_control_design->AddEntity(config_control_designe_line); - config_control_designe_line->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (dir.dim = pnt.dim);\n"); - config_control_designe_line->_where_rules->Append(wr); - config_control_designe_property_definition_representation = new EntityDescriptor( - "Property_Definition_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProperty_definition_representation ); - s_config_control_design->AddEntity(config_control_designe_property_definition_representation); - config_control_designe_geometric_set = new EntityDescriptor( - "Geometric_Set", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiGeometric_set ); - s_config_control_design->AddEntity(config_control_designe_geometric_set); - config_control_designe_geometric_curve_set = new EntityDescriptor( - "Geometric_Curve_Set", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiGeometric_curve_set ); - s_config_control_design->AddEntity(config_control_designe_geometric_curve_set); - config_control_designe_geometric_curve_set->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( temp <* SELF\\geometric_set.elements | \n\t( 'CONFIG_CONTROL_DESIGN.SURFACE' IN TYPEOF\n\t(temp)) )) = 0);\n"); - config_control_designe_geometric_curve_set->_where_rules->Append(wr); - config_control_designe_personal_address = new EntityDescriptor( - "Personal_Address", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPersonal_address ); - s_config_control_design->AddEntity(config_control_designe_personal_address); - config_control_designe_document_relationship = new EntityDescriptor( - "Document_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDocument_relationship ); - s_config_control_design->AddEntity(config_control_designe_document_relationship); - config_control_designe_pcurve = new EntityDescriptor( - "Pcurve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPcurve ); - s_config_control_design->AddEntity(config_control_designe_pcurve); - config_control_designe_pcurve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(reference_to_curve\\representation.items) = 1);\n"); - config_control_designe_pcurve->_where_rules->Append(wr); - wr = new Where_rule("wr2: ('CONFIG_CONTROL_DESIGN.CURVE' IN TYPEOF\n\t(reference_to_curve\\representation. items[1]));\n"); - config_control_designe_pcurve->_where_rules->Append(wr); - wr = new Where_rule("wr3: (reference_to_curve\\representation.items[1]\\geometric_representation_item. dim = 2);\n"); - config_control_designe_pcurve->_where_rules->Append(wr); - config_control_designe_outer_boundary_curve = new EntityDescriptor( - "Outer_Boundary_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOuter_boundary_curve ); - s_config_control_design->AddEntity(config_control_designe_outer_boundary_curve); - config_control_designe_shape_representation_relationship = new EntityDescriptor( - "Shape_Representation_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiShape_representation_relationship ); - s_config_control_design->AddEntity(config_control_designe_shape_representation_relationship); - config_control_designe_shape_representation_relationship->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.SHAPE_REPRESENTATION' IN \n\t(TYPEOF\n\t(SELF\\ representation_relationship.rep_1) + TYPEOF\n\t(SELF\\ representation_relationship.rep_2)));\n"); - config_control_designe_shape_representation_relationship->_where_rules->Append(wr); - config_control_designe_assembly_component_usage_substitute = new EntityDescriptor( - "Assembly_Component_Usage_Substitute", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAssembly_component_usage_substitute ); - s_config_control_design->AddEntity(config_control_designe_assembly_component_usage_substitute); - config_control_designe_assembly_component_usage_substitute->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (base.relating_product_definition :=: substitute. relating_product_definition);\n"); - config_control_designe_assembly_component_usage_substitute->_where_rules->Append(wr); - wr = new Where_rule("wr2: (base :<>: substitute);\n"); - config_control_designe_assembly_component_usage_substitute->_where_rules->Append(wr); - config_control_designe_assembly_component_usage_substitute->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : base, substitute;\n"); - config_control_designe_assembly_component_usage_substitute->_uniqueness_rules->Append(ur); - config_control_designe_degenerate_pcurve = new EntityDescriptor( - "Degenerate_Pcurve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDegenerate_pcurve ); - s_config_control_design->AddEntity(config_control_designe_degenerate_pcurve); - config_control_designe_degenerate_pcurve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(reference_to_curve\\representation.items) = 1);\n"); - config_control_designe_degenerate_pcurve->_where_rules->Append(wr); - wr = new Where_rule("wr2: ('CONFIG_CONTROL_DESIGN.CURVE' IN TYPEOF\n\t(reference_to_curve\\representation. items[1]));\n"); - config_control_designe_degenerate_pcurve->_where_rules->Append(wr); - wr = new Where_rule("wr3: (reference_to_curve\\representation.items[1]\\geometric_representation_item. dim = 2);\n"); - config_control_designe_degenerate_pcurve->_where_rules->Append(wr); - config_control_designe_evaluated_degenerate_pcurve = new EntityDescriptor( - "Evaluated_Degenerate_Pcurve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiEvaluated_degenerate_pcurve ); - s_config_control_design->AddEntity(config_control_designe_evaluated_degenerate_pcurve); - config_control_designe_solid_angle_measure_with_unit = new EntityDescriptor( - "Solid_Angle_Measure_With_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSolid_angle_measure_with_unit ); - s_config_control_design->AddEntity(config_control_designe_solid_angle_measure_with_unit); - config_control_designe_solid_angle_measure_with_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.SOLID_ANGLE_UNIT' IN TYPEOF\n\t(SELF\\measure_with_unit. unit_component));\n"); - config_control_designe_solid_angle_measure_with_unit->_where_rules->Append(wr); - config_control_designe_connected_edge_set = new EntityDescriptor( - "Connected_Edge_Set", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiConnected_edge_set ); - s_config_control_design->AddEntity(config_control_designe_connected_edge_set); - config_control_designe_action = new EntityDescriptor( - "Action", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAction ); - s_config_control_design->AddEntity(config_control_designe_action); - config_control_designe_executed_action = new EntityDescriptor( - "Executed_Action", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiExecuted_action ); - s_config_control_design->AddEntity(config_control_designe_executed_action); - config_control_designe_directed_action = new EntityDescriptor( - "Directed_Action", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDirected_action ); - s_config_control_design->AddEntity(config_control_designe_directed_action); - config_control_designe_organizational_project = new EntityDescriptor( - "Organizational_Project", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOrganizational_project ); - s_config_control_design->AddEntity(config_control_designe_organizational_project); - config_control_designe_date_time_role = new EntityDescriptor( - "Date_Time_Role", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDate_time_role ); - s_config_control_design->AddEntity(config_control_designe_date_time_role); - config_control_designe_curve_bounded_surface = new EntityDescriptor( - "Curve_Bounded_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCurve_bounded_surface ); - s_config_control_design->AddEntity(config_control_designe_curve_bounded_surface); - config_control_designe_curve_bounded_surface->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT \n\t(implicit_outer AND \n\t('CONFIG_CONTROL_DESIGN.OUTER_BOUNDARY_CURVE' IN TYPEOF\n\t(boundaries))));\n"); - config_control_designe_curve_bounded_surface->_where_rules->Append(wr); - wr = new Where_rule("wr2: (\n\t(NOT implicit_outer) OR \n\t('CONFIG_CONTROL_DESIGN.BOUNDED_SURFACE' IN TYPEOF\n\t(basis_surface)));\n"); - config_control_designe_curve_bounded_surface->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( temp <* boundaries | \n\t( 'CONFIG_CONTROL_DESIGN.OUTER_BOUNDARY_CURVE' IN TYPEOF\n\t(temp)) )) <= 1);\n"); - config_control_designe_curve_bounded_surface->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( temp <* boundaries | \n\t(temp\\composite_curve_on_surface. basis_surface[1] :<>: SELF.basis_surface) )) = 0);\n"); - config_control_designe_curve_bounded_surface->_where_rules->Append(wr); - config_control_designe_closed_shell = new EntityDescriptor( - "Closed_Shell", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiClosed_shell ); - s_config_control_design->AddEntity(config_control_designe_closed_shell); - config_control_designe_design_make_from_relationship = new EntityDescriptor( - "Design_Make_From_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDesign_make_from_relationship ); - s_config_control_design->AddEntity(config_control_designe_design_make_from_relationship); - config_control_designe_definitional_representation = new EntityDescriptor( - "Definitional_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDefinitional_representation ); - s_config_control_design->AddEntity(config_control_designe_definitional_representation); - config_control_designe_definitional_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.PARAMETRIC_REPRESENTATION_CONTEXT' IN TYPEOF\n\t(SELF\\ representation.context_of_items));\n"); - config_control_designe_definitional_representation->_where_rules->Append(wr); - config_control_designe_product_definition_shape = new EntityDescriptor( - "Product_Definition_Shape", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition_shape ); - s_config_control_design->AddEntity(config_control_designe_product_definition_shape); - config_control_designe_product_definition_shape->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.CHARACTERIZED_PRODUCT_DEFINITION' IN TYPEOF\n\t(SELF\\ property_definition.definition));\n"); - config_control_designe_product_definition_shape->_where_rules->Append(wr); - config_control_designe_product_definition_shape->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : definition;\n"); - config_control_designe_product_definition_shape->_uniqueness_rules->Append(ur); - config_control_designe_si_unit = new EntityDescriptor( - "Si_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSi_unit ); - s_config_control_design->AddEntity(config_control_designe_si_unit); - config_control_designe_bezier_surface = new EntityDescriptor( - "Bezier_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiBezier_surface ); - s_config_control_design->AddEntity(config_control_designe_bezier_surface); - config_control_designe_certification_assignment = new EntityDescriptor( - "Certification_Assignment", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiCertification_assignment ); - s_config_control_design->AddEntity(config_control_designe_certification_assignment); - config_control_designe_start_work = new EntityDescriptor( - "Start_Work", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiStart_work ); - s_config_control_design->AddEntity(config_control_designe_start_work); - config_control_designe_contract_type = new EntityDescriptor( - "Contract_Type", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiContract_type ); - s_config_control_design->AddEntity(config_control_designe_contract_type); - config_control_designe_b_spline_curve_with_knots = new EntityDescriptor( - "B_Spline_Curve_With_Knots", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiB_spline_curve_with_knots ); - s_config_control_design->AddEntity(config_control_designe_b_spline_curve_with_knots); - config_control_designe_b_spline_curve_with_knots->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (constraints_param_b_spline\n\t(degree,upper_index_on_knots, upper_index_on_control_points,knot_multiplicities,knots));\n"); - config_control_designe_b_spline_curve_with_knots->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(knot_multiplicities) = upper_index_on_knots);\n"); - config_control_designe_b_spline_curve_with_knots->_where_rules->Append(wr); - config_control_designe_cc_design_approval = new EntityDescriptor( - "Cc_Design_Approval", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCc_design_approval ); - s_config_control_design->AddEntity(config_control_designe_cc_design_approval); - config_control_designe_edge_based_wireframe_shape_representation = new EntityDescriptor( - "Edge_Based_Wireframe_Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiEdge_based_wireframe_shape_representation ); - s_config_control_design->AddEntity(config_control_designe_edge_based_wireframe_shape_representation); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( it <* SELF\\representation.items | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_MODEL', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM', 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF\n\t(it)) = 1)) )) = 0);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( it <* SELF\\representation.items | \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_MODEL', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM'] * TYPEOF\n\t(it)) = 1) )) >= 1);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( ebwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( eb <* ebwm\\edge_based_wireframe_model. ebwm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( edges <* eb.ces_edges | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_CURVE' IN TYPEOF\n\t(edges))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( ebwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( eb <* ebwm\\edge_based_wireframe_model. ebwm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( pline_edges <* QUERY \n\t( edges <* eb.ces_edges | \n\t('CONFIG_CONTROL_DESIGN.POLYLINE' IN TYPEOF\n\t(edges\\edge_curve.edge_geometry)) ) | \n\t(NOT \n\t(SIZEOF\n\t( pline_edges\\edge_curve.edge_geometry\\polyline.points) > 2)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr5: (SIZEOF\n\t(QUERY \n\t( ebwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( eb <* ebwm\\edge_based_wireframe_model. ebwm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( edges <* eb.ces_edges | \n\t(NOT \n\t( \n\t('CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(edges.edge_start)) AND \n\t('CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(edges.edge_end)))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr6: (SIZEOF\n\t(QUERY \n\t( ebwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( eb <* ebwm\\edge_based_wireframe_model. ebwm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( edges <* eb.ces_edges | \n\t(NOT valid_wireframe_edge_curve\n\t(edges\\edge_curve.edge_geometry, 'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr7: (SIZEOF\n\t(QUERY \n\t( ebwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( eb <* ebwm\\edge_based_wireframe_model. ebwm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( edges <* eb.ces_edges | \n\t(NOT \n\t( valid_wireframe_vertex_point\n\t(edges.edge_start\\vertex_point. vertex_geometry,'CONFIG_CONTROL_DESIGN') AND valid_wireframe_vertex_point\n\t(edges.edge_end\\vertex_point. vertex_geometry,'CONFIG_CONTROL_DESIGN'))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr8: (SIZEOF\n\t(QUERY \n\t( ebwm <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_BASED_WIREFRAME_MODEL' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( eb <* ebwm\\edge_based_wireframe_model. ebwm_boundary | \n\t(NOT \n\t(SIZEOF\n\t(QUERY \n\t( con_edges <* QUERY \n\t( edges <* eb.ces_edges | \n\t('CONFIG_CONTROL_DESIGN.CONIC' IN TYPEOF\n\t(edges\\ edge_curve.edge_geometry)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D' IN TYPEOF\n\t(con_edges\\ edge_curve.edge_geometry\\conic.position))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr9: (SIZEOF\n\t(QUERY \n\t( mi <* QUERY \n\t( item <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM' IN TYPEOF\n\t(item)) ) | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.' + 'EDGE_BASED_WIREFRAME_SHAPE_REPRESENTATION') IN TYPEOF\n\t(mi\\ mapped_item.mapping_source.mapped_representation))) )) = 0);\n"); - config_control_designe_edge_based_wireframe_shape_representation->_where_rules->Append(wr); - config_control_designe_geometrically_bounded_wireframe_shape_representation = new EntityDescriptor( - "Geometrically_Bounded_Wireframe_Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiGeometrically_bounded_wireframe_shape_representation ); - s_config_control_design->AddEntity(config_control_designe_geometrically_bounded_wireframe_shape_representation); - config_control_designe_geometrically_bounded_wireframe_shape_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( it <* SELF\\representation.items | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.GEOMETRIC_CURVE_SET', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM', 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF\n\t(it)) = 1)) )) = 0);\n"); - config_control_designe_geometrically_bounded_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( it <* SELF\\representation.items | \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.GEOMETRIC_CURVE_SET', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM'] * TYPEOF\n\t(it)) = 1) )) >= 1);\n"); - config_control_designe_geometrically_bounded_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( gcs <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF\n\t(it)) ) | \n\t( NOT \n\t(SIZEOF\n\t(QUERY \n\t( elem <* gcs\\geometric_set.elements | \n\t(NOT valid_geometrically_bounded_wf_curve\n\t(elem,'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0);\n"); - config_control_designe_geometrically_bounded_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( gcs <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF\n\t(it)) ) | \n\t( NOT \n\t(SIZEOF\n\t(QUERY \n\t( pnts <* QUERY \n\t( elem <* gcs\\geometric_set. elements | \n\t('CONFIG_CONTROL_DESIGN.POINT' IN TYPEOF\n\t(elem)) ) | \n\t( NOT valid_geometrically_bounded_wf_point\n\t(pnts, 'CONFIG_CONTROL_DESIGN')) )) = 0)) )) = 0);\n"); - config_control_designe_geometrically_bounded_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr5: (SIZEOF\n\t(QUERY \n\t( gcs <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF\n\t(it)) ) | \n\t( NOT \n\t(SIZEOF\n\t(QUERY \n\t( cnc <* QUERY \n\t( elem <* gcs\\geometric_set. elements | \n\t('CONFIG_CONTROL_DESIGN.CONIC' IN TYPEOF\n\t(elem)) ) | \n\t( NOT \n\t('CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D' IN TYPEOF\n\t(cnc\\conic .position))) )) = 0)) )) = 0);\n"); - config_control_designe_geometrically_bounded_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr6: (SIZEOF\n\t(QUERY \n\t( gcs <* QUERY \n\t( it <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.GEOMETRIC_CURVE_SET' IN TYPEOF\n\t(it)) ) | \n\t( NOT \n\t(SIZEOF\n\t(QUERY \n\t( pline <* QUERY \n\t( elem <* gcs\\geometric_set. elements | \n\t('CONFIG_CONTROL_DESIGN.POLYLINE' IN TYPEOF\n\t(elem)) ) | \n\t( NOT \n\t(SIZEOF\n\t(pline\\polyline.points) > 2)) )) = 0)) )) = 0);\n"); - config_control_designe_geometrically_bounded_wireframe_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr7: (SIZEOF\n\t(QUERY \n\t( mi <* QUERY \n\t( item <* SELF\\representation.items | \n\t( 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM' IN TYPEOF\n\t(item)) ) | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.' + 'GEOMETRICALLY_BOUNDED_WIREFRAME_REPRESENTATION') IN TYPEOF\n\t(mi\\ mapped_item.mapping_source.mapped_representation))) )) = 0);\n"); - config_control_designe_geometrically_bounded_wireframe_shape_representation->_where_rules->Append(wr); - config_control_designe_product_concept = new EntityDescriptor( - "Product_Concept", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_concept ); - s_config_control_design->AddEntity(config_control_designe_product_concept); - config_control_designe_product_concept->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : id;\n"); - config_control_designe_product_concept->_uniqueness_rules->Append(ur); - config_control_designe_cc_design_contract = new EntityDescriptor( - "Cc_Design_Contract", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCc_design_contract ); - s_config_control_design->AddEntity(config_control_designe_cc_design_contract); - config_control_designe_seam_curve = new EntityDescriptor( - "Seam_Curve", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSeam_curve ); - s_config_control_design->AddEntity(config_control_designe_seam_curve); - config_control_designe_seam_curve->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(SELF\\surface_curve.associated_geometry) = 2);\n"); - config_control_designe_seam_curve->_where_rules->Append(wr); - wr = new Where_rule("wr2: (associated_surface\n\t(SELF\\surface_curve.associated_geometry[1]) = associated_surface\n\t(SELF\\surface_curve.associated_geometry[2]));\n"); - config_control_designe_seam_curve->_where_rules->Append(wr); - wr = new Where_rule("wr3: ('CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF\n\t(SELF\\surface_curve. associated_geometry[1]));\n"); - config_control_designe_seam_curve->_where_rules->Append(wr); - wr = new Where_rule("wr4: ('CONFIG_CONTROL_DESIGN.PCURVE' IN TYPEOF\n\t(SELF\\surface_curve. associated_geometry[2]));\n"); - config_control_designe_seam_curve->_where_rules->Append(wr); - config_control_designe_axis2_placement_3d = new EntityDescriptor( - "Axis2_Placement_3d", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAxis2_placement_3d ); - s_config_control_design->AddEntity(config_control_designe_axis2_placement_3d); - config_control_designe_axis2_placement_3d->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\placement.location.dim = 3);\n"); - config_control_designe_axis2_placement_3d->_where_rules->Append(wr); - wr = new Where_rule("wr2: (\n\t(NOT EXISTS\n\t(axis)) OR \n\t(axis.dim = 3));\n"); - config_control_designe_axis2_placement_3d->_where_rules->Append(wr); - wr = new Where_rule("wr3: (\n\t(NOT EXISTS\n\t(ref_direction)) OR \n\t(ref_direction.dim = 3));\n"); - config_control_designe_axis2_placement_3d->_where_rules->Append(wr); - wr = new Where_rule("wr4: (\n\t(NOT EXISTS\n\t(axis)) OR \n\t(NOT EXISTS\n\t(ref_direction)) OR \n\t(cross_product\n\t(axis, ref_direction).magnitude > 0));\n"); - config_control_designe_axis2_placement_3d->_where_rules->Append(wr); - config_control_designe_rational_b_spline_surface = new EntityDescriptor( - "Rational_B_Spline_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiRational_b_spline_surface ); - s_config_control_design->AddEntity(config_control_designe_rational_b_spline_surface); - config_control_designe_rational_b_spline_surface->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(SIZEOF\n\t(weights_data) = SIZEOF\n\t(SELF\\b_spline_surface.control_points_list)) AND \n\t(SIZEOF\n\t(weights_data[1]) = SIZEOF\n\t(SELF\\b_spline_surface. control_points_list[1])));\n"); - config_control_designe_rational_b_spline_surface->_where_rules->Append(wr); - wr = new Where_rule("wr2: (surface_weights_positive\n\t(SELF));\n"); - config_control_designe_rational_b_spline_surface->_where_rules->Append(wr); - config_control_designe_configuration_design = new EntityDescriptor( - "Configuration_Design", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiConfiguration_design ); - s_config_control_design->AddEntity(config_control_designe_configuration_design); - config_control_designe_configuration_design->_uniqueness_rules = new Uniqueness_rule__set; - ur = new Uniqueness_rule("UR1 : configuration, design;\n"); - config_control_designe_configuration_design->_uniqueness_rules->Append(ur); - config_control_designe_design_context = new EntityDescriptor( - "Design_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDesign_context ); - s_config_control_design->AddEntity(config_control_designe_design_context); - config_control_designe_design_context->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF.life_cycle_stage = 'design');\n"); - config_control_designe_design_context->_where_rules->Append(wr); - config_control_designe_product_definition = new EntityDescriptor( - "Product_Definition", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition ); - s_config_control_design->AddEntity(config_control_designe_product_definition); - config_control_designe_product_definition_with_associated_documents = new EntityDescriptor( - "Product_Definition_With_Associated_Documents", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_definition_with_associated_documents ); - s_config_control_design->AddEntity(config_control_designe_product_definition_with_associated_documents); - config_control_designe_organization = new EntityDescriptor( - "Organization", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOrganization ); - s_config_control_design->AddEntity(config_control_designe_organization); - config_control_designe_cc_design_certification = new EntityDescriptor( - "Cc_Design_Certification", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCc_design_certification ); - s_config_control_design->AddEntity(config_control_designe_cc_design_certification); - config_control_designe_b_spline_surface_with_knots = new EntityDescriptor( - "B_Spline_Surface_With_Knots", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiB_spline_surface_with_knots ); - s_config_control_design->AddEntity(config_control_designe_b_spline_surface_with_knots); - config_control_designe_b_spline_surface_with_knots->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (constraints_param_b_spline\n\t(SELF\\b_spline_surface.u_degree,knot_u_upper, SELF\\b_spline_surface.u_upper,u_multiplicities,u_knots));\n"); - config_control_designe_b_spline_surface_with_knots->_where_rules->Append(wr); - wr = new Where_rule("wr2: (constraints_param_b_spline\n\t(SELF\\b_spline_surface.v_degree,knot_v_upper, SELF\\b_spline_surface.v_upper,v_multiplicities,v_knots));\n"); - config_control_designe_b_spline_surface_with_knots->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(u_multiplicities) = knot_u_upper);\n"); - config_control_designe_b_spline_surface_with_knots->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(v_multiplicities) = knot_v_upper);\n"); - config_control_designe_b_spline_surface_with_knots->_where_rules->Append(wr); - config_control_designe_certification_type = new EntityDescriptor( - "Certification_Type", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCertification_type ); - s_config_control_design->AddEntity(config_control_designe_certification_type); - config_control_designe_oriented_path = new EntityDescriptor( - "Oriented_Path", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOriented_path ); - s_config_control_design->AddEntity(config_control_designe_oriented_path); - config_control_designe_oriented_path->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT \n\t('CONFIG_CONTROL_DESIGN.ORIENTED_PATH' IN TYPEOF\n\t(SELF.path_element)));\n"); - config_control_designe_oriented_path->_where_rules->Append(wr); - config_control_designe_security_classification = new EntityDescriptor( - "Security_Classification", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSecurity_classification ); - s_config_control_design->AddEntity(config_control_designe_security_classification); - config_control_designe_vertex_loop = new EntityDescriptor( - "Vertex_Loop", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiVertex_loop ); - s_config_control_design->AddEntity(config_control_designe_vertex_loop); - config_control_designe_approval_status = new EntityDescriptor( - "Approval_Status", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApproval_status ); - s_config_control_design->AddEntity(config_control_designe_approval_status); - config_control_designe_cartesian_point = new EntityDescriptor( - "Cartesian_Point", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCartesian_point ); - s_config_control_design->AddEntity(config_control_designe_cartesian_point); - config_control_designe_date_and_time_assignment = new EntityDescriptor( - "Date_And_Time_Assignment", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiDate_and_time_assignment ); - s_config_control_design->AddEntity(config_control_designe_date_and_time_assignment); - config_control_designe_parametric_representation_context = new EntityDescriptor( - "Parametric_Representation_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiParametric_representation_context ); - s_config_control_design->AddEntity(config_control_designe_parametric_representation_context); - config_control_designe_product_concept_context = new EntityDescriptor( - "Product_Concept_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiProduct_concept_context ); - s_config_control_design->AddEntity(config_control_designe_product_concept_context); - config_control_designe_cartesian_transformation_operator_2d = new EntityDescriptor( - "Cartesian_Transformation_Operator_2d", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCartesian_transformation_operator_2d ); - s_config_control_design->AddEntity(config_control_designe_cartesian_transformation_operator_2d); - config_control_designe_cartesian_transformation_operator_2d->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SELF\\cartesian_transformation_operator.dim = 2);\n"); - config_control_designe_cartesian_transformation_operator_2d->_where_rules->Append(wr); - config_control_designe_surface_patch = new EntityDescriptor( - "Surface_Patch", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSurface_patch ); - s_config_control_design->AddEntity(config_control_designe_surface_patch); - config_control_designe_surface_patch->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT \n\t('CONFIG_CONTROL_DESIGN.CURVE_BOUNDED_SURFACE' IN TYPEOF\n\t( parent_surface)));\n"); - config_control_designe_surface_patch->_where_rules->Append(wr); - config_control_designe_length_unit = new EntityDescriptor( - "Length_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiLength_unit ); - s_config_control_design->AddEntity(config_control_designe_length_unit); - config_control_designe_length_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(SELF\\named_unit.dimensions.length_exponent = 1) AND \n\t(SELF\\named_unit. dimensions.mass_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. time_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. electric_current_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. thermodynamic_temperature_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.amount_of_substance_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.luminous_intensity_exponent = 0));\n"); - config_control_designe_length_unit->_where_rules->Append(wr); - config_control_designe_shape_aspect = new EntityDescriptor( - "Shape_Aspect", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiShape_aspect ); - s_config_control_design->AddEntity(config_control_designe_shape_aspect); - config_control_designe_volume_measure_with_unit = new EntityDescriptor( - "Volume_Measure_With_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiVolume_measure_with_unit ); - s_config_control_design->AddEntity(config_control_designe_volume_measure_with_unit); - config_control_designe_volume_measure_with_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: ('CONFIG_CONTROL_DESIGN.VOLUME_UNIT' IN TYPEOF\n\t(SELF\\measure_with_unit. unit_component));\n"); - config_control_designe_volume_measure_with_unit->_where_rules->Append(wr); - config_control_designe_advanced_face = new EntityDescriptor( - "Advanced_Face", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiAdvanced_face ); - s_config_control_design->AddEntity(config_control_designe_advanced_face); - config_control_designe_advanced_face->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(['CONFIG_CONTROL_DESIGN.ELEMENTARY_SURFACE', 'CONFIG_CONTROL_DESIGN.B_SPLINE_SURFACE', 'CONFIG_CONTROL_DESIGN.SWEPT_SURFACE'] * TYPEOF\n\t(face_geometry)) = 1);\n"); - config_control_designe_advanced_face->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( bnd <* bounds | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.EDGE_LOOP', 'CONFIG_CONTROL_DESIGN.VERTEX_LOOP'] * TYPEOF\n\t(bnd)) = 1)) )) = 0);\n"); - config_control_designe_advanced_face->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(bnds.bound)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( oe <* elp_fbnds.bound\\path.edge_list | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_CURVE' IN TYPEOF\n\t(oe.edge_element))) )) = 0)) )) = 0);\n"); - config_control_designe_advanced_face->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(bnds.bound)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( oe <* elp_fbnds.bound\\path.edge_list | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(oe.edge_start)) AND \n\t('CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(oe.edge_end)))) )) = 0)) )) = 0);\n"); - config_control_designe_advanced_face->_where_rules->Append(wr); - wr = new Where_rule("wr5: (SIZEOF\n\t(QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(bnds.bound)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( oe <* elp_fbnds.bound\\path.edge_list | \n\t(NOT \n\t(SIZEOF\n\t( ['CONFIG_CONTROL_DESIGN.LINE','CONFIG_CONTROL_DESIGN.CONIC', 'CONFIG_CONTROL_DESIGN.POLYLINE','CONFIG_CONTROL_DESIGN.PCURVE', 'CONFIG_CONTROL_DESIGN.B_SPLINE_CURVE'] * TYPEOF\n\t(oe.edge_element\\ edge_curve.edge_geometry)) = 1)) )) = 0)) )) = 0);\n"); - config_control_designe_advanced_face->_where_rules->Append(wr); - wr = new Where_rule("wr6: (SIZEOF\n\t(QUERY \n\t( elp_fbnds <* QUERY \n\t( bnds <* bounds | \n\t( 'CONFIG_CONTROL_DESIGN.EDGE_LOOP' IN TYPEOF\n\t(bnds.bound)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.ORIENTED_PATH' IN TYPEOF\n\t(elp_fbnds.bound))) )) = 0);\n"); - config_control_designe_advanced_face->_where_rules->Append(wr); - wr = new Where_rule("wr7: (\n\t(NOT \n\t('CONFIG_CONTROL_DESIGN.SWEPT_SURFACE' IN TYPEOF\n\t(face_geometry))) OR \n\t(SIZEOF\n\t(['CONFIG_CONTROL_DESIGN.LINE','CONFIG_CONTROL_DESIGN.CONIC', 'CONFIG_CONTROL_DESIGN.POLYLINE', 'CONFIG_CONTROL_DESIGN.B_SPLINE_CURVE'] * TYPEOF\n\t(face_geometry\\ swept_surface.swept_curve)) = 1));\n"); - config_control_designe_advanced_face->_where_rules->Append(wr); - wr = new Where_rule("wr8: (SIZEOF\n\t(QUERY \n\t( vlp_fbnds <* QUERY \n\t( bnds <* bounds | \n\t( 'CONFIG_CONTROL_DESIGN.VERTEX_LOOP' IN TYPEOF\n\t(bnds.bound)) ) | \n\t( NOT \n\t(\n\t('CONFIG_CONTROL_DESIGN.VERTEX_POINT' IN TYPEOF\n\t(vlp_fbnds. bound\\vertex_loop.loop_vertex)) AND \n\t( 'CONFIG_CONTROL_DESIGN.CARTESIAN_POINT' IN TYPEOF\n\t(vlp_fbnds.bound\\ vertex_loop.loop_vertex\\vertex_point.vertex_geometry)))) )) = 0);\n"); - config_control_designe_advanced_face->_where_rules->Append(wr); - config_control_designe_security_classification_level = new EntityDescriptor( - "Security_Classification_Level", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSecurity_classification_level ); - s_config_control_design->AddEntity(config_control_designe_security_classification_level); - config_control_designe_approval_relationship = new EntityDescriptor( - "Approval_Relationship", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApproval_relationship ); - s_config_control_design->AddEntity(config_control_designe_approval_relationship); - config_control_designe_polyline = new EntityDescriptor( - "Polyline", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPolyline ); - s_config_control_design->AddEntity(config_control_designe_polyline); - config_control_designe_approval_person_organization = new EntityDescriptor( - "Approval_Person_Organization", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiApproval_person_organization ); - s_config_control_design->AddEntity(config_control_designe_approval_person_organization); - config_control_designe_surface_replica = new EntityDescriptor( - "Surface_Replica", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiSurface_replica ); - s_config_control_design->AddEntity(config_control_designe_surface_replica); - config_control_designe_surface_replica->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (acyclic_surface_replica\n\t(SELF,parent_surface));\n"); - config_control_designe_surface_replica->_where_rules->Append(wr); - config_control_designe_security_classification_assignment = new EntityDescriptor( - "Security_Classification_Assignment", s_config_control_design, SCLLOG(LTrue), SCLLOG(LFalse), - (Creator) create_SdaiSecurity_classification_assignment ); - s_config_control_design->AddEntity(config_control_designe_security_classification_assignment); - config_control_designe_cc_design_security_classification = new EntityDescriptor( - "Cc_Design_Security_Classification", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCc_design_security_classification ); - s_config_control_design->AddEntity(config_control_designe_cc_design_security_classification); - config_control_designe_faceted_brep_shape_representation = new EntityDescriptor( - "Faceted_Brep_Shape_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiFaceted_brep_shape_representation ); - s_config_control_design->AddEntity(config_control_designe_faceted_brep_shape_representation); - config_control_designe_faceted_brep_shape_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (SIZEOF\n\t(QUERY \n\t( it <* items | \n\t(NOT \n\t(SIZEOF\n\t([ 'CONFIG_CONTROL_DESIGN.FACETED_BREP', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM', 'CONFIG_CONTROL_DESIGN.AXIS2_PLACEMENT_3D'] * TYPEOF\n\t(it)) = 1)) )) = 0);\n"); - config_control_designe_faceted_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr2: (SIZEOF\n\t(QUERY \n\t( it <* items | \n\t(SIZEOF\n\t(['CONFIG_CONTROL_DESIGN.FACETED_BREP', 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM'] * TYPEOF\n\t(it)) = 1) )) > 0);\n"); - config_control_designe_faceted_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr3: (SIZEOF\n\t(QUERY \n\t( fbrep <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.FACETED_BREP' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( csh <* msb_shells\n\t(fbrep,'CONFIG_CONTROL_DESIGN') | \n\t( NOT \n\t(SIZEOF\n\t(QUERY \n\t( fcs <* csh.cfs_faces | \n\t(NOT \n\t(\n\t( 'CONFIG_CONTROL_DESIGN.FACE_SURFACE' IN TYPEOF\n\t(fcs)) AND \n\t( 'CONFIG_CONTROL_DESIGN.PLANE' IN TYPEOF\n\t(fcs\\face_surface. face_geometry)) AND \n\t('CONFIG_CONTROL_DESIGN.CARTESIAN_POINT' IN TYPEOF\n\t(fcs\\face_surface.face_geometry\\plane.position.location)))) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_faceted_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr4: (SIZEOF\n\t(QUERY \n\t( fbrep <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.FACETED_BREP' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( csh <* msb_shells\n\t(fbrep,'CONFIG_CONTROL_DESIGN') | \n\t( NOT \n\t(SIZEOF\n\t(QUERY \n\t( fcs <* csh.cfs_faces | \n\t(NOT \n\t(SIZEOF\n\t( QUERY \n\t( bnds <* fcs.bounds | \n\t( 'CONFIG_CONTROL_DESIGN.FACE_OUTER_BOUND' IN TYPEOF\n\t(bnds)) )) = 1)) )) = 0)) )) = 0)) )) = 0);\n"); - config_control_designe_faceted_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr5: (SIZEOF\n\t(QUERY \n\t( msb <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.MANIFOLD_SOLID_BREP' IN TYPEOF\n\t(it)) ) | \n\t( 'CONFIG_CONTROL_DESIGN.ORIENTED_CLOSED_SHELL' IN TYPEOF\n\t(msb\\ manifold_solid_brep.outer)) )) = 0);\n"); - config_control_designe_faceted_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr6: (SIZEOF\n\t(QUERY \n\t( brv <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.BREP_WITH_VOIDS' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( SIZEOF\n\t(QUERY \n\t( csh <* brv\\brep_with_voids.voids | csh\\ oriented_closed_shell.orientation )) = 0)) )) = 0);\n"); - config_control_designe_faceted_brep_shape_representation->_where_rules->Append(wr); - wr = new Where_rule("wr7: (SIZEOF\n\t(QUERY \n\t( mi <* QUERY \n\t( it <* items | \n\t( 'CONFIG_CONTROL_DESIGN.MAPPED_ITEM' IN TYPEOF\n\t(it)) ) | \n\t(NOT \n\t( 'CONFIG_CONTROL_DESIGN.FACETED_BREP_SHAPE_REPRESENTATION' IN TYPEOF\n\t(mi\\mapped_item.mapping_source.mapped_representation))) )) = 0);\n"); - config_control_designe_faceted_brep_shape_representation->_where_rules->Append(wr); - config_control_designe_document_usage_constraint = new EntityDescriptor( - "Document_Usage_Constraint", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiDocument_usage_constraint ); - s_config_control_design->AddEntity(config_control_designe_document_usage_constraint); - config_control_designe_vertex_point = new EntityDescriptor( - "Vertex_Point", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiVertex_point ); - s_config_control_design->AddEntity(config_control_designe_vertex_point); - config_control_designe_cc_design_date_and_time_assignment = new EntityDescriptor( - "Cc_Design_Date_And_Time_Assignment", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCc_design_date_and_time_assignment ); - s_config_control_design->AddEntity(config_control_designe_cc_design_date_and_time_assignment); - config_control_designe_cc_design_date_and_time_assignment->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (cc_design_date_time_correlation\n\t(SELF));\n"); - config_control_designe_cc_design_date_and_time_assignment->_where_rules->Append(wr); - config_control_designe_oriented_closed_shell = new EntityDescriptor( - "Oriented_Closed_Shell", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOriented_closed_shell ); - s_config_control_design->AddEntity(config_control_designe_oriented_closed_shell); - config_control_designe_oriented_closed_shell->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT \n\t('CONFIG_CONTROL_DESIGN.ORIENTED_CLOSED_SHELL' IN TYPEOF\n\t(SELF. closed_shell_element)));\n"); - config_control_designe_oriented_closed_shell->_where_rules->Append(wr); - config_control_designe_person_and_organization = new EntityDescriptor( - "Person_And_Organization", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPerson_and_organization ); - s_config_control_design->AddEntity(config_control_designe_person_and_organization); - config_control_designe_cylindrical_surface = new EntityDescriptor( - "Cylindrical_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiCylindrical_surface ); - s_config_control_design->AddEntity(config_control_designe_cylindrical_surface); - config_control_designe_local_time = new EntityDescriptor( - "Local_Time", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiLocal_time ); - s_config_control_design->AddEntity(config_control_designe_local_time); - config_control_designe_local_time->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (valid_time\n\t(SELF));\n"); - config_control_designe_local_time->_where_rules->Append(wr); - config_control_designe_mass_unit = new EntityDescriptor( - "Mass_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiMass_unit ); - s_config_control_design->AddEntity(config_control_designe_mass_unit); - config_control_designe_mass_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(SELF\\named_unit.dimensions.length_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.mass_exponent = 1) AND \n\t(SELF\\named_unit.dimensions. time_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. electric_current_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. thermodynamic_temperature_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.amount_of_substance_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.luminous_intensity_exponent = 0));\n"); - config_control_designe_mass_unit->_where_rules->Append(wr); - config_control_designe_vertex_shell = new EntityDescriptor( - "Vertex_Shell", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiVertex_shell ); - s_config_control_design->AddEntity(config_control_designe_vertex_shell); - config_control_designe_poly_loop = new EntityDescriptor( - "Poly_Loop", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiPoly_loop ); - s_config_control_design->AddEntity(config_control_designe_poly_loop); - config_control_designe_wire_shell = new EntityDescriptor( - "Wire_Shell", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiWire_shell ); - s_config_control_design->AddEntity(config_control_designe_wire_shell); - config_control_designe_wire_shell->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (NOT mixed_loop_type_set\n\t(wire_shell_extent));\n"); - config_control_designe_wire_shell->_where_rules->Append(wr); - config_control_designe_area_unit = new EntityDescriptor( - "Area_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiArea_unit ); - s_config_control_design->AddEntity(config_control_designe_area_unit); - config_control_designe_area_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(SELF\\named_unit.dimensions.length_exponent = 2) AND \n\t(SELF\\named_unit. dimensions.mass_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. time_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. electric_current_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. thermodynamic_temperature_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.amount_of_substance_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.luminous_intensity_exponent = 0));\n"); - config_control_designe_area_unit->_where_rules->Append(wr); - config_control_designe_mapped_item = new EntityDescriptor( - "Mapped_Item", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiMapped_item ); - s_config_control_design->AddEntity(config_control_designe_mapped_item); - config_control_designe_mapped_item->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (acyclic_mapped_representation\n\t(using_representations\n\t(SELF),[SELF]));\n"); - config_control_designe_mapped_item->_where_rules->Append(wr); - config_control_designe_offset_curve_2d = new EntityDescriptor( - "Offset_Curve_2d", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiOffset_curve_2d ); - s_config_control_design->AddEntity(config_control_designe_offset_curve_2d); - config_control_designe_offset_curve_2d->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (basis_curve.dim = 2);\n"); - config_control_designe_offset_curve_2d->_where_rules->Append(wr); - config_control_designe_shape_definition_representation = new EntityDescriptor( - "Shape_Definition_Representation", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiShape_definition_representation ); - s_config_control_design->AddEntity(config_control_designe_shape_definition_representation); - config_control_designe_shape_definition_representation->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t('CONFIG_CONTROL_DESIGN.SHAPE_DEFINITION' IN TYPEOF\n\t(SELF.definition. definition)) OR \n\t('CONFIG_CONTROL_DESIGN.PRODUCT_DEFINITION_SHAPE' IN TYPEOF\n\t(SELF.definition)));\n"); - config_control_designe_shape_definition_representation->_where_rules->Append(wr); - wr = new Where_rule("wr2: ('CONFIG_CONTROL_DESIGN.SHAPE_REPRESENTATION' IN TYPEOF\n\t(SELF. used_representation));\n"); - config_control_designe_shape_definition_representation->_where_rules->Append(wr); - config_control_designe_volume_unit = new EntityDescriptor( - "Volume_Unit", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiVolume_unit ); - s_config_control_design->AddEntity(config_control_designe_volume_unit); - config_control_designe_volume_unit->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (\n\t(SELF\\named_unit.dimensions.length_exponent = 3) AND \n\t(SELF\\named_unit. dimensions.mass_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. time_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. electric_current_exponent = 0) AND \n\t(SELF\\named_unit.dimensions. thermodynamic_temperature_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.amount_of_substance_exponent = 0) AND \n\t(SELF\\named_unit. dimensions.luminous_intensity_exponent = 0));\n"); - config_control_designe_volume_unit->_where_rules->Append(wr); - config_control_designe_conical_surface = new EntityDescriptor( - "Conical_Surface", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiConical_surface ); - s_config_control_design->AddEntity(config_control_designe_conical_surface); - config_control_designe_conical_surface->_where_rules = new Where_rule__list; - wr = new Where_rule("wr1: (radius >= 0);\n"); - config_control_designe_conical_surface->_where_rules->Append(wr); - config_control_designe_global_unit_assigned_context = new EntityDescriptor( - "Global_Unit_Assigned_Context", s_config_control_design, SCLLOG(LFalse), SCLLOG(LFalse), - (Creator) create_SdaiGlobal_unit_assigned_context ); - s_config_control_design->AddEntity(config_control_designe_global_unit_assigned_context); - - //////////////// USE statements - //////////////// REFERENCE statements -} - -#endif diff --git a/source/geometry/solids/STEP/src/SdaiBinary.cc b/source/geometry/solids/STEP/src/SdaiBinary.cc deleted file mode 100644 index c231b53cfa..0000000000 --- a/source/geometry/solids/STEP/src/SdaiBinary.cc +++ /dev/null @@ -1,371 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/sdaiBinary.cc -* April 1997 -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiBinary.cc,v */ - -#include -#include - -extern Severity -CheckRemainingInput(std::istream &in, ErrorDescriptor *err, - const char *typeName, // used in error message - const char *tokenList); // e.g. ",)" - - -SCLP23(Binary)& -SCLP23(Binary)::operator= (const char* s) -{ - SCLstring::operator= (s); - return *this; -} - -void -SCLP23(Binary)::STEPwrite (std::ostream& out) const -{ - const char *str = 0; - if (is_null ()) - out << "$"; - else - { - out << '\"'; - str = chars (); - while (*str) - { - out << *str; - str++; - } - out << '\"'; - } -} - -const char * -SCLP23(Binary)::STEPwrite (SCLstring &s) const -{ - const char *str = 0; - if (is_null ()) - { -// s.set_null(); // this would free up space? nope - s = "$"; - } - else - { - s = "\""; - str = chars (); - while (*str) - { - s.Append(*str); - str++; - } - s.Append(BINARY_DELIM); - } - return s.chars(); -} - -Severity -SCLP23(Binary)::ReadBinary(std::istream& in, ErrorDescriptor *err, int AssignVal, - int needDelims) -{ - if(AssignVal) - set_null(); - - SCLstring str; - char c; - char messageBuf[512]; - messageBuf[0] = '\0'; - - int validDelimiters = 1; - - in >> std::ws; // skip white space - - if( in.good() ) - { - in.get(c); - if( (c == '\"') || isxdigit(c) ) - { - if( c == '\"' ) - { - in.get(c); // push past the delimiter - // since found a valid delimiter it is now invalid until the - // matching ending delim is found - validDelimiters = 0; - } - while(in.good() && isxdigit(c)) - { - str.Append(c); - in.get(c); - } - if(in.good() && (c != '\"') ) - in.putback(c); - if( AssignVal && (str.Length() > 0) ) - operator= (str.chars()); - - if(c == '\"') // if found ending delimiter - { - // if expecting delim (i.e. validDelimiter == 0) - if(!validDelimiters) - { - validDelimiters = 1; // everything is fine - } - else // found ending delimiter but no initial delimiter - { - validDelimiters = 0; - } - } - // didn't find any delimiters at all and need them. - else if(needDelims) - { - validDelimiters = 0; - } - - if (!validDelimiters) - { - err->GreaterSeverity(SEVERITY_WARNING); - if(needDelims) - sprintf(messageBuf, - "Binary value missing double quote delimiters.\n"); - else - sprintf(messageBuf, - "Mismatched double quote delimiters for binary.\n"); - err->AppendToDetailMsg(messageBuf); - err->AppendToUserMsg(messageBuf); - } -/* - else if ( !isspace(b[0]) && (b[0] != '\0') ) - { - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, "Invalid binary value.\n"); - err->AppendToDetailMsg(messageBuf); - } -*/ - } - else - { - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, "Invalid binary value.\n"); - err->AppendToDetailMsg(messageBuf); - err->AppendToUserMsg(messageBuf); - } - } - else - { - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return err->severity(); -} - -Severity -SCLP23(Binary)::StrToVal (const char * s, ErrorDescriptor *err) -{ - std::istrstream in ((char *)s); // sz defaults to length of s - return ReadBinary(in, err, 1, 0); -} - -/* - operator= (s); - if (! strcmp (chars (), s)) return SEVERITY_NULL ; - else return SEVERITY_INPUT_ERROR; -*/ -///////////////////////////////////////////////// -#ifdef bpzdofbqlvzbfxck - set_null(); - - char messageBuf[BUFSIZ]; - messageBuf[0] = '\0'; - - int validDelimiters = 1; - char *start = 0; - - char *b = s; - while( *b && isspace(*b) ) - b++; - - if( *b ) - { - if( (b[0] == '\"') || isxdigit(b[0]) ) - { - if( b[0] == '\"' ) - { - b++; // push past the delimiter - // since found a valid delimiter it is now invalid until the - // matching ending delim is found - validDelimiters = 0; - } - if(isxdigit(b[0])) - start = b; - while(isxdigit(b[0])) - { - b++; - } - - if(b[0] == '\"') // if found ending delimiter - { - // if expecting delim (i.e. validDelimiter == 0) - if(!validDelimiters) - { - validDelimiters = 1; // everything is fine - b++; // push past closing quote - } - else // found ending delimiter but no initial delimiter - { - validDelimiters = 0; - } - } - // didn't find any delimiters at all and need them. - else if(NeedDelims) - { - validDelimiters = 0; - } - - if (!validDelimiters) - { - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, - "Binary value missing double quote delimiters. \n"); - } - else if ( !isspace(b[0]) && (b[0] != '\0') ) - { - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, "Invalid binary value.\n"); - err->AppendToDetailMsg(messageBuf); - } - } - else - { - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, "Invalid binary value.\n"); - err->AppendToDetailMsg(messageBuf); - } - } - else - { - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return b; -#endif - -// STEPread reads a binary in exchange file format -// delimited by double quotes - -Severity -SCLP23(Binary)::STEPread (std::istream& in, ErrorDescriptor *err) -{ - return ReadBinary(in, err, 1, 1); -/* - int foundEndQuote = 0; // need so this string is not ok: 'hi'' - set_null (); // clear the old string - char c; - in >> std::ws; // skip white space - in >> c; - - // remember the current format state to restore the previous settings - long int flags = in.flags(); - in.unsetf(std::ios::skipws); - - if (c == BINARY_DELIM) - { - while( in.good() && in.get(c) && (c != BINARY_DELIM) ) - { - Append (c); - } - Append ('\0'); - - if(c == BINARY_DELIM) - return SEVERITY_NULL; - else - { // non-recoverable error - err->AppendToDetailMsg("Missing closing quote on binary value.\n"); - err->AppendToUserMsg("Missing closing quote on binary value.\n"); - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; - } - } - // otherwise there was not a quote - in.putback (c); - in.flags(flags); // set the format state back to previous settings - - return err -> GreaterSeverity (SEVERITY_INCOMPLETE); -*/ -} - -Severity -SCLP23(Binary)::STEPread (const char *s, ErrorDescriptor *err) -{ - std::istrstream in((char *)s); - return STEPread (in, err); -} - -/////////////////////////////////////////////////////////////////////////////// -// * attrValue is validated. -// * err is set if there is an error -// * If optional is 1 then a missing value will be valid otherwise severity -// incomplete will be set. -// * If you don\'t know if the value may be optional then set it false and -// check to see if SEVERITY_INCOMPLETE is set. You can change it later to -// SEVERITY_NULL if it is valid for the value to be missing. No error -// 'message' will be associated with the value being missing so you won\'t -// have to worry about undoing an error message. -// * tokenList contains characters that terminate the expected value. -// * If tokenList is not zero then the value is expected to terminate before -// a character found in tokenlist. All values read up to the -// terminating character (delimiter) must be valid or err will be set with an -// appropriate error message. White space between the value and the -// terminating character is not considered to be invalid. If tokenList is -// null then attrValue must only contain a valid value and nothing else -// following. -/////////////////////////////////////////////////////////////////////////////// - -Severity -SCLP23(Binary)::BinaryValidLevel (std::istream &in, ErrorDescriptor *err, - int optional, char *tokenList, - int needDelims, int clearError) -{ - if(clearError) - err->ClearErrorMsg(); - - in >> std::ws; // skip white space - char c = in.peek(); - if(c == '$' || in.eof()) - { - if(!optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - if(in) - in >> c; - CheckRemainingInput(in, err, "binary", tokenList); - return err->severity(); - } - else - { - ErrorDescriptor error; - ReadBinary(in, &error, 0, needDelims); - CheckRemainingInput(in, &error, "binary", tokenList); - - Severity sev = error.severity(); - if(sev < SEVERITY_INCOMPLETE) - { - err->AppendToDetailMsg(error.DetailMsg()); - err->AppendToUserMsg(error.UserMsg()); - err->GreaterSeverity(error.severity()); - } - else if(sev == SEVERITY_INCOMPLETE && !optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return err->severity(); -} - -Severity -SCLP23(Binary)::BinaryValidLevel (const char *value, ErrorDescriptor *err, - int optional, char *tokenList, - int needDelims, int clearError) -{ - std::istrstream in((char *)value); - return BinaryValidLevel (in, err, optional, tokenList, - needDelims, clearError); -} diff --git a/source/geometry/solids/STEP/src/SdaiCONFIG_CONTROL_DESIGN.cc b/source/geometry/solids/STEP/src/SdaiCONFIG_CONTROL_DESIGN.cc deleted file mode 100644 index 36b9d1d332..0000000000 --- a/source/geometry/solids/STEP/src/SdaiCONFIG_CONTROL_DESIGN.cc +++ /dev/null @@ -1,63278 +0,0 @@ -#ifndef SDAICONFIG_CONTROL_DESIGN_CC -#define SDAICONFIG_CONTROL_DESIGN_CC -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. -/* $Id: SdaiCONFIG_CONTROL_DESIGN.cc,v 1.8 2003/06/06 17:07:33 gcosmo Exp $ */ -#ifndef SCHEMA_H -#include -#endif - -#ifdef SCL_LOGGING -#include - extern std::ofstream *logStream; -#define SCLLOGFILE "scl.log" -#endif - -#ifdef WIN32 - typedef SDAI::Select StepSelectType; -#endif - -static int debug_access_hooks = 0; - -#ifdef PART26 - -const char * sclHostName = CORBA::Orbix.myHost(); // Default is local host -#endif - -Schema *s_config_control_design =0; - -/* ************** TYPES */ -SelectTypeDescriptor *config_control_designt_characterized_definition; -TypeDescriptor *config_control_designt_parameter_value; -TypeDescriptor *config_control_designt_plane_angle_measure; -SelectTypeDescriptor *config_control_designt_change_request_item; -TypeDescriptor *config_control_designt_text; -TypeDescriptor *config_control_designt_year_number; -SelectTypeDescriptor *config_control_designt_characterized_product_definition; -SelectTypeDescriptor *config_control_designt_reversible_topology_item; -SelectTypeDescriptor *config_control_designt_axis2_placement; -SetTypeDescriptor *config_control_designt_set_of_reversible_topology_item; - -#if __OSTORE__ -STEPaggregate * -create_SdaiSet_of_reversible_topology_item (os_database *db) { return create_SdaiReversible_topology_items(db); } -#else -STEPaggregate * -create_SdaiSet_of_reversible_topology_item () { return create_SdaiReversible_topology_items(); } -#endif -TypeDescriptor *config_control_designt_week_in_year_number; -EnumTypeDescriptor *config_control_designt_knot_type; -////////// ENUMERATION TYPE SdaiKnot_type_var -const char * -SdaiKnot_type_var::element_at (int n) const { - switch (n) { - case Knot_type__uniform_knots : return "UNIFORM_KNOTS"; - case Knot_type__quasi_uniform_knots : return "QUASI_UNIFORM_KNOTS"; - case Knot_type__piecewise_bezier_knots : return "PIECEWISE_BEZIER_KNOTS"; - case Knot_type__unspecified : return "UNSPECIFIED"; - case Knot_type_unset : - default : return "UNSET"; - } -} - -SdaiKnot_type_var::SdaiKnot_type_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiKnot_type_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiKnot_type_var: virtual access function." << G4endl; - SdaiKnot_type_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiKnot_type_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiKnot_type_var *e = (SdaiKnot_type_var *)object; - if(e->type == 0) - e->type = config_control_designt_knot_type; -} - -#endif - -SdaiKnot_type_var::operator Knot_type () const { - switch (v) { - case Knot_type__uniform_knots : return Knot_type__uniform_knots; - case Knot_type__quasi_uniform_knots : return Knot_type__quasi_uniform_knots; - case Knot_type__piecewise_bezier_knots : return Knot_type__piecewise_bezier_knots; - case Knot_type__unspecified : return Knot_type__unspecified; - case Knot_type_unset : - default : return Knot_type_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiKnot_type_var (os_database *db) -{ - if(db) - return new (db, - SdaiKnot_type_var::get_os_typespec()) SdaiKnot_type_var; - else - return new SdaiKnot_type_var( "", config_control_designt_knot_type ); -} - -#else - -SCLP23(Enum) * -create_SdaiKnot_type_var () -{ - return new SdaiKnot_type_var( "", config_control_designt_knot_type ); -} -#endif - - -SdaiKnot_type_vars::SdaiKnot_type_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiKnot_type_vars::~SdaiKnot_type_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiKnot_type_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiKnot_type_vars *e = (SdaiKnot_type_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_knot_type; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiKnot_type_vars (os_database *db) -{ - if(db) - return new (db, - SdaiKnot_type_vars::get_os_typespec()) SdaiKnot_type_vars; - else - return new SdaiKnot_type_vars( config_control_designt_knot_type ); -} - -#else - -STEPaggregate * -create_SdaiKnot_type_vars () -{ - return new SdaiKnot_type_vars( config_control_designt_knot_type ); -} -#endif - -////////// END ENUMERATION knot_type - -SelectTypeDescriptor *config_control_designt_specified_item; -TypeDescriptor *config_control_designt_minute_in_hour; -EnumTypeDescriptor *config_control_designt_transition_code; -////////// ENUMERATION TYPE SdaiTransition_code_var -const char * -SdaiTransition_code_var::element_at (int n) const { - switch (n) { - case Transition_code__discontinuous : return "DISCONTINUOUS"; - case Transition_code__cont_same_gradient_same_curvature : return "CONT_SAME_GRADIENT_SAME_CURVATURE"; - case Transition_code__cont_same_gradient : return "CONT_SAME_GRADIENT"; - case Transition_code__continuous : return "CONTINUOUS"; - case Transition_code_unset : - default : return "UNSET"; - } -} - -SdaiTransition_code_var::SdaiTransition_code_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiTransition_code_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiTransition_code_var: virtual access function." << G4endl; - SdaiTransition_code_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiTransition_code_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiTransition_code_var *e = (SdaiTransition_code_var *)object; - if(e->type == 0) - e->type = config_control_designt_transition_code; -} - -#endif - -SdaiTransition_code_var::operator Transition_code () const { - switch (v) { - case Transition_code__discontinuous : return Transition_code__discontinuous; - case Transition_code__cont_same_gradient_same_curvature : return Transition_code__cont_same_gradient_same_curvature; - case Transition_code__cont_same_gradient : return Transition_code__cont_same_gradient; - case Transition_code__continuous : return Transition_code__continuous; - case Transition_code_unset : - default : return Transition_code_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiTransition_code_var (os_database *db) -{ - if(db) - return new (db, - SdaiTransition_code_var::get_os_typespec()) SdaiTransition_code_var; - else - return new SdaiTransition_code_var( "", config_control_designt_transition_code ); -} - -#else - -SCLP23(Enum) * -create_SdaiTransition_code_var () -{ - return new SdaiTransition_code_var( "", config_control_designt_transition_code ); -} -#endif - - -SdaiTransition_code_vars::SdaiTransition_code_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiTransition_code_vars::~SdaiTransition_code_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiTransition_code_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiTransition_code_vars *e = (SdaiTransition_code_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_transition_code; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiTransition_code_vars (os_database *db) -{ - if(db) - return new (db, - SdaiTransition_code_vars::get_os_typespec()) SdaiTransition_code_vars; - else - return new SdaiTransition_code_vars( config_control_designt_transition_code ); -} - -#else - -STEPaggregate * -create_SdaiTransition_code_vars () -{ - return new SdaiTransition_code_vars( config_control_designt_transition_code ); -} -#endif - -////////// END ENUMERATION transition_code - -TypeDescriptor *config_control_designt_identifier; -SelectTypeDescriptor *config_control_designt_measure_value; -SelectTypeDescriptor *config_control_designt_person_organization_select; -EnumTypeDescriptor *config_control_designt_preferred_surface_curve_representation; -////////// ENUMERATION TYPE SdaiPreferred_surface_curve_representation_var -const char * -SdaiPreferred_surface_curve_representation_var::element_at (int n) const { - switch (n) { - case Preferred_surface_curve_representation__pcurve_s2 : return "PCURVE_S2"; - case Preferred_surface_curve_representation__pcurve_s1 : return "PCURVE_S1"; - case Preferred_surface_curve_representation__curve_3d : return "CURVE_3D"; - case Preferred_surface_curve_representation_unset : - default : return "UNSET"; - } -} - -SdaiPreferred_surface_curve_representation_var::SdaiPreferred_surface_curve_representation_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiPreferred_surface_curve_representation_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPreferred_surface_curve_representation_var: virtual access function." << G4endl; - SdaiPreferred_surface_curve_representation_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPreferred_surface_curve_representation_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiPreferred_surface_curve_representation_var *e = (SdaiPreferred_surface_curve_representation_var *)object; - if(e->type == 0) - e->type = config_control_designt_preferred_surface_curve_representation; -} - -#endif - -SdaiPreferred_surface_curve_representation_var::operator Preferred_surface_curve_representation () const { - switch (v) { - case Preferred_surface_curve_representation__pcurve_s2 : return Preferred_surface_curve_representation__pcurve_s2; - case Preferred_surface_curve_representation__pcurve_s1 : return Preferred_surface_curve_representation__pcurve_s1; - case Preferred_surface_curve_representation__curve_3d : return Preferred_surface_curve_representation__curve_3d; - case Preferred_surface_curve_representation_unset : - default : return Preferred_surface_curve_representation_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiPreferred_surface_curve_representation_var (os_database *db) -{ - if(db) - return new (db, - SdaiPreferred_surface_curve_representation_var::get_os_typespec()) SdaiPreferred_surface_curve_representation_var; - else - return new SdaiPreferred_surface_curve_representation_var( "", config_control_designt_preferred_surface_curve_representation ); -} - -#else - -SCLP23(Enum) * -create_SdaiPreferred_surface_curve_representation_var () -{ - return new SdaiPreferred_surface_curve_representation_var( "", config_control_designt_preferred_surface_curve_representation ); -} -#endif - - -SdaiPreferred_surface_curve_representation_vars::SdaiPreferred_surface_curve_representation_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiPreferred_surface_curve_representation_vars::~SdaiPreferred_surface_curve_representation_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiPreferred_surface_curve_representation_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiPreferred_surface_curve_representation_vars *e = (SdaiPreferred_surface_curve_representation_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_preferred_surface_curve_representation; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiPreferred_surface_curve_representation_vars (os_database *db) -{ - if(db) - return new (db, - SdaiPreferred_surface_curve_representation_vars::get_os_typespec()) SdaiPreferred_surface_curve_representation_vars; - else - return new SdaiPreferred_surface_curve_representation_vars( config_control_designt_preferred_surface_curve_representation ); -} - -#else - -STEPaggregate * -create_SdaiPreferred_surface_curve_representation_vars () -{ - return new SdaiPreferred_surface_curve_representation_vars( config_control_designt_preferred_surface_curve_representation ); -} -#endif - -////////// END ENUMERATION preferred_surface_curve_representation - -TypeDescriptor *config_control_designt_dimension_count; -SelectTypeDescriptor *config_control_designt_pcurve_or_surface; -TypeDescriptor *config_control_designt_positive_length_measure; -EnumTypeDescriptor *config_control_designt_b_spline_curve_form; -////////// ENUMERATION TYPE SdaiB_spline_curve_form_var -const char * -SdaiB_spline_curve_form_var::element_at (int n) const { - switch (n) { - case B_spline_curve_form__elliptic_arc : return "ELLIPTIC_ARC"; - case B_spline_curve_form__polyline_form : return "POLYLINE_FORM"; - case B_spline_curve_form__parabolic_arc : return "PARABOLIC_ARC"; - case B_spline_curve_form__circular_arc : return "CIRCULAR_ARC"; - case B_spline_curve_form__unspecified : return "UNSPECIFIED"; - case B_spline_curve_form__hyperbolic_arc : return "HYPERBOLIC_ARC"; - case B_spline_curve_form_unset : - default : return "UNSET"; - } -} - -SdaiB_spline_curve_form_var::SdaiB_spline_curve_form_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiB_spline_curve_form_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_curve_form_var: virtual access function." << G4endl; - SdaiB_spline_curve_form_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiB_spline_curve_form_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiB_spline_curve_form_var *e = (SdaiB_spline_curve_form_var *)object; - if(e->type == 0) - e->type = config_control_designt_b_spline_curve_form; -} - -#endif - -SdaiB_spline_curve_form_var::operator B_spline_curve_form () const { - switch (v) { - case B_spline_curve_form__elliptic_arc : return B_spline_curve_form__elliptic_arc; - case B_spline_curve_form__polyline_form : return B_spline_curve_form__polyline_form; - case B_spline_curve_form__parabolic_arc : return B_spline_curve_form__parabolic_arc; - case B_spline_curve_form__circular_arc : return B_spline_curve_form__circular_arc; - case B_spline_curve_form__unspecified : return B_spline_curve_form__unspecified; - case B_spline_curve_form__hyperbolic_arc : return B_spline_curve_form__hyperbolic_arc; - case B_spline_curve_form_unset : - default : return B_spline_curve_form_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiB_spline_curve_form_var (os_database *db) -{ - if(db) - return new (db, - SdaiB_spline_curve_form_var::get_os_typespec()) SdaiB_spline_curve_form_var; - else - return new SdaiB_spline_curve_form_var( "", config_control_designt_b_spline_curve_form ); -} - -#else - -SCLP23(Enum) * -create_SdaiB_spline_curve_form_var () -{ - return new SdaiB_spline_curve_form_var( "", config_control_designt_b_spline_curve_form ); -} -#endif - - -SdaiB_spline_curve_form_vars::SdaiB_spline_curve_form_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiB_spline_curve_form_vars::~SdaiB_spline_curve_form_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiB_spline_curve_form_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiB_spline_curve_form_vars *e = (SdaiB_spline_curve_form_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_b_spline_curve_form; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiB_spline_curve_form_vars (os_database *db) -{ - if(db) - return new (db, - SdaiB_spline_curve_form_vars::get_os_typespec()) SdaiB_spline_curve_form_vars; - else - return new SdaiB_spline_curve_form_vars( config_control_designt_b_spline_curve_form ); -} - -#else - -STEPaggregate * -create_SdaiB_spline_curve_form_vars () -{ - return new SdaiB_spline_curve_form_vars( config_control_designt_b_spline_curve_form ); -} -#endif - -////////// END ENUMERATION b_spline_curve_form - -TypeDescriptor *config_control_designt_hour_in_day; -SelectTypeDescriptor *config_control_designt_classified_item; -EnumTypeDescriptor *config_control_designt_si_unit_name; -////////// ENUMERATION TYPE SdaiSi_unit_name_var -const char * -SdaiSi_unit_name_var::element_at (int n) const { - switch (n) { - case Si_unit_name__hertz : return "HERTZ"; - case Si_unit_name__degree_celsius : return "DEGREE_CELSIUS"; - case Si_unit_name__siemens : return "SIEMENS"; - case Si_unit_name__sievert : return "SIEVERT"; - case Si_unit_name__lux : return "LUX"; - case Si_unit_name__watt : return "WATT"; - case Si_unit_name__ohm : return "OHM"; - case Si_unit_name__second : return "SECOND"; - case Si_unit_name__becquerel : return "BECQUEREL"; - case Si_unit_name__pascal : return "PASCAL"; - case Si_unit_name__henry : return "HENRY"; - case Si_unit_name__tesla : return "TESLA"; - case Si_unit_name__volt : return "VOLT"; - case Si_unit_name__joule : return "JOULE"; - case Si_unit_name__kelvin : return "KELVIN"; - case Si_unit_name__ampere : return "AMPERE"; - case Si_unit_name__gram : return "GRAM"; - case Si_unit_name__steradian : return "STERADIAN"; - case Si_unit_name__mole : return "MOLE"; - case Si_unit_name__lumen : return "LUMEN"; - case Si_unit_name__gray : return "GRAY"; - case Si_unit_name__candela : return "CANDELA"; - case Si_unit_name__farad : return "FARAD"; - case Si_unit_name__radian : return "RADIAN"; - case Si_unit_name__newton : return "NEWTON"; - case Si_unit_name__metre : return "METRE"; - case Si_unit_name__weber : return "WEBER"; - case Si_unit_name__coulomb : return "COULOMB"; - case Si_unit_name_unset : - default : return "UNSET"; - } -} - -SdaiSi_unit_name_var::SdaiSi_unit_name_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiSi_unit_name_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSi_unit_name_var: virtual access function." << G4endl; - SdaiSi_unit_name_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSi_unit_name_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiSi_unit_name_var *e = (SdaiSi_unit_name_var *)object; - if(e->type == 0) - e->type = config_control_designt_si_unit_name; -} - -#endif - -SdaiSi_unit_name_var::operator Si_unit_name () const { - switch (v) { - case Si_unit_name__hertz : return Si_unit_name__hertz; - case Si_unit_name__degree_celsius : return Si_unit_name__degree_celsius; - case Si_unit_name__siemens : return Si_unit_name__siemens; - case Si_unit_name__sievert : return Si_unit_name__sievert; - case Si_unit_name__lux : return Si_unit_name__lux; - case Si_unit_name__watt : return Si_unit_name__watt; - case Si_unit_name__ohm : return Si_unit_name__ohm; - case Si_unit_name__second : return Si_unit_name__second; - case Si_unit_name__becquerel : return Si_unit_name__becquerel; - case Si_unit_name__pascal : return Si_unit_name__pascal; - case Si_unit_name__henry : return Si_unit_name__henry; - case Si_unit_name__tesla : return Si_unit_name__tesla; - case Si_unit_name__volt : return Si_unit_name__volt; - case Si_unit_name__joule : return Si_unit_name__joule; - case Si_unit_name__kelvin : return Si_unit_name__kelvin; - case Si_unit_name__ampere : return Si_unit_name__ampere; - case Si_unit_name__gram : return Si_unit_name__gram; - case Si_unit_name__steradian : return Si_unit_name__steradian; - case Si_unit_name__mole : return Si_unit_name__mole; - case Si_unit_name__lumen : return Si_unit_name__lumen; - case Si_unit_name__gray : return Si_unit_name__gray; - case Si_unit_name__candela : return Si_unit_name__candela; - case Si_unit_name__farad : return Si_unit_name__farad; - case Si_unit_name__radian : return Si_unit_name__radian; - case Si_unit_name__newton : return Si_unit_name__newton; - case Si_unit_name__metre : return Si_unit_name__metre; - case Si_unit_name__weber : return Si_unit_name__weber; - case Si_unit_name__coulomb : return Si_unit_name__coulomb; - case Si_unit_name_unset : - default : return Si_unit_name_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiSi_unit_name_var (os_database *db) -{ - if(db) - return new (db, - SdaiSi_unit_name_var::get_os_typespec()) SdaiSi_unit_name_var; - else - return new SdaiSi_unit_name_var( "", config_control_designt_si_unit_name ); -} - -#else - -SCLP23(Enum) * -create_SdaiSi_unit_name_var () -{ - return new SdaiSi_unit_name_var( "", config_control_designt_si_unit_name ); -} -#endif - - -SdaiSi_unit_name_vars::SdaiSi_unit_name_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiSi_unit_name_vars::~SdaiSi_unit_name_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiSi_unit_name_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiSi_unit_name_vars *e = (SdaiSi_unit_name_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_si_unit_name; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiSi_unit_name_vars (os_database *db) -{ - if(db) - return new (db, - SdaiSi_unit_name_vars::get_os_typespec()) SdaiSi_unit_name_vars; - else - return new SdaiSi_unit_name_vars( config_control_designt_si_unit_name ); -} - -#else - -STEPaggregate * -create_SdaiSi_unit_name_vars () -{ - return new SdaiSi_unit_name_vars( config_control_designt_si_unit_name ); -} -#endif - -////////// END ENUMERATION si_unit_name - -TypeDescriptor *config_control_designt_day_in_month_number; -EnumTypeDescriptor *config_control_designt_trimming_preference; -////////// ENUMERATION TYPE SdaiTrimming_preference_var -const char * -SdaiTrimming_preference_var::element_at (int n) const { - switch (n) { - case Trimming_preference__parameter : return "PARAMETER"; - case Trimming_preference__unspecified : return "UNSPECIFIED"; - case Trimming_preference__cartesian : return "CARTESIAN"; - case Trimming_preference_unset : - default : return "UNSET"; - } -} - -SdaiTrimming_preference_var::SdaiTrimming_preference_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiTrimming_preference_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiTrimming_preference_var: virtual access function." << G4endl; - SdaiTrimming_preference_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiTrimming_preference_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiTrimming_preference_var *e = (SdaiTrimming_preference_var *)object; - if(e->type == 0) - e->type = config_control_designt_trimming_preference; -} - -#endif - -SdaiTrimming_preference_var::operator Trimming_preference () const { - switch (v) { - case Trimming_preference__parameter : return Trimming_preference__parameter; - case Trimming_preference__unspecified : return Trimming_preference__unspecified; - case Trimming_preference__cartesian : return Trimming_preference__cartesian; - case Trimming_preference_unset : - default : return Trimming_preference_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiTrimming_preference_var (os_database *db) -{ - if(db) - return new (db, - SdaiTrimming_preference_var::get_os_typespec()) SdaiTrimming_preference_var; - else - return new SdaiTrimming_preference_var( "", config_control_designt_trimming_preference ); -} - -#else - -SCLP23(Enum) * -create_SdaiTrimming_preference_var () -{ - return new SdaiTrimming_preference_var( "", config_control_designt_trimming_preference ); -} -#endif - - -SdaiTrimming_preference_vars::SdaiTrimming_preference_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiTrimming_preference_vars::~SdaiTrimming_preference_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiTrimming_preference_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiTrimming_preference_vars *e = (SdaiTrimming_preference_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_trimming_preference; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiTrimming_preference_vars (os_database *db) -{ - if(db) - return new (db, - SdaiTrimming_preference_vars::get_os_typespec()) SdaiTrimming_preference_vars; - else - return new SdaiTrimming_preference_vars( config_control_designt_trimming_preference ); -} - -#else - -STEPaggregate * -create_SdaiTrimming_preference_vars () -{ - return new SdaiTrimming_preference_vars( config_control_designt_trimming_preference ); -} -#endif - -////////// END ENUMERATION trimming_preference - -SelectTypeDescriptor *config_control_designt_vector_or_direction; -SelectTypeDescriptor *config_control_designt_wireframe_model; -TypeDescriptor *config_control_designt_volume_measure; -SelectTypeDescriptor *config_control_designt_geometric_set_select; -TypeDescriptor *config_control_designt_positive_plane_angle_measure; -SelectTypeDescriptor *config_control_designt_start_request_item; -EnumTypeDescriptor *config_control_designt_b_spline_surface_form; -////////// ENUMERATION TYPE SdaiB_spline_surface_form_var -const char * -SdaiB_spline_surface_form_var::element_at (int n) const { - switch (n) { - case B_spline_surface_form__surf_of_linear_extrusion : return "SURF_OF_LINEAR_EXTRUSION"; - case B_spline_surface_form__plane_surf : return "PLANE_SURF"; - case B_spline_surface_form__generalised_cone : return "GENERALISED_CONE"; - case B_spline_surface_form__toroidal_surf : return "TOROIDAL_SURF"; - case B_spline_surface_form__conical_surf : return "CONICAL_SURF"; - case B_spline_surface_form__spherical_surf : return "SPHERICAL_SURF"; - case B_spline_surface_form__unspecified : return "UNSPECIFIED"; - case B_spline_surface_form__ruled_surf : return "RULED_SURF"; - case B_spline_surface_form__surf_of_revolution : return "SURF_OF_REVOLUTION"; - case B_spline_surface_form__cylindrical_surf : return "CYLINDRICAL_SURF"; - case B_spline_surface_form__quadric_surf : return "QUADRIC_SURF"; - case B_spline_surface_form_unset : - default : return "UNSET"; - } -} - -SdaiB_spline_surface_form_var::SdaiB_spline_surface_form_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiB_spline_surface_form_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_surface_form_var: virtual access function." << G4endl; - SdaiB_spline_surface_form_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiB_spline_surface_form_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiB_spline_surface_form_var *e = (SdaiB_spline_surface_form_var *)object; - if(e->type == 0) - e->type = config_control_designt_b_spline_surface_form; -} - -#endif - -SdaiB_spline_surface_form_var::operator B_spline_surface_form () const { - switch (v) { - case B_spline_surface_form__surf_of_linear_extrusion : return B_spline_surface_form__surf_of_linear_extrusion; - case B_spline_surface_form__plane_surf : return B_spline_surface_form__plane_surf; - case B_spline_surface_form__generalised_cone : return B_spline_surface_form__generalised_cone; - case B_spline_surface_form__toroidal_surf : return B_spline_surface_form__toroidal_surf; - case B_spline_surface_form__conical_surf : return B_spline_surface_form__conical_surf; - case B_spline_surface_form__spherical_surf : return B_spline_surface_form__spherical_surf; - case B_spline_surface_form__unspecified : return B_spline_surface_form__unspecified; - case B_spline_surface_form__ruled_surf : return B_spline_surface_form__ruled_surf; - case B_spline_surface_form__surf_of_revolution : return B_spline_surface_form__surf_of_revolution; - case B_spline_surface_form__cylindrical_surf : return B_spline_surface_form__cylindrical_surf; - case B_spline_surface_form__quadric_surf : return B_spline_surface_form__quadric_surf; - case B_spline_surface_form_unset : - default : return B_spline_surface_form_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiB_spline_surface_form_var (os_database *db) -{ - if(db) - return new (db, - SdaiB_spline_surface_form_var::get_os_typespec()) SdaiB_spline_surface_form_var; - else - return new SdaiB_spline_surface_form_var( "", config_control_designt_b_spline_surface_form ); -} - -#else - -SCLP23(Enum) * -create_SdaiB_spline_surface_form_var () -{ - return new SdaiB_spline_surface_form_var( "", config_control_designt_b_spline_surface_form ); -} -#endif - - -SdaiB_spline_surface_form_vars::SdaiB_spline_surface_form_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiB_spline_surface_form_vars::~SdaiB_spline_surface_form_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiB_spline_surface_form_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiB_spline_surface_form_vars *e = (SdaiB_spline_surface_form_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_b_spline_surface_form; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiB_spline_surface_form_vars (os_database *db) -{ - if(db) - return new (db, - SdaiB_spline_surface_form_vars::get_os_typespec()) SdaiB_spline_surface_form_vars; - else - return new SdaiB_spline_surface_form_vars( config_control_designt_b_spline_surface_form ); -} - -#else - -STEPaggregate * -create_SdaiB_spline_surface_form_vars () -{ - return new SdaiB_spline_surface_form_vars( config_control_designt_b_spline_surface_form ); -} -#endif - -////////// END ENUMERATION b_spline_surface_form - -SelectTypeDescriptor *config_control_designt_person_organization_item; -SelectTypeDescriptor *config_control_designt_date_time_item; -SelectTypeDescriptor *config_control_designt_shell; -SelectTypeDescriptor *config_control_designt_transformation; -TypeDescriptor *config_control_designt_day_in_week_number; -SelectTypeDescriptor *config_control_designt_boolean_operand; -SelectTypeDescriptor *config_control_designt_certified_item; -SelectTypeDescriptor *config_control_designt_date_time_select; -TypeDescriptor *config_control_designt_solid_angle_measure; -SelectTypeDescriptor *config_control_designt_curve_on_surface; -SelectTypeDescriptor *config_control_designt_trimming_select; -EnumTypeDescriptor *config_control_designt_ahead_or_behind; -////////// ENUMERATION TYPE SdaiAhead_or_behind_var -const char * -SdaiAhead_or_behind_var::element_at (int n) const { - switch (n) { - case Ahead_or_behind__ahead : return "AHEAD"; - case Ahead_or_behind__behind : return "BEHIND"; - case Ahead_or_behind_unset : - default : return "UNSET"; - } -} - -SdaiAhead_or_behind_var::SdaiAhead_or_behind_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiAhead_or_behind_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAhead_or_behind_var: virtual access function." << G4endl; - SdaiAhead_or_behind_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAhead_or_behind_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiAhead_or_behind_var *e = (SdaiAhead_or_behind_var *)object; - if(e->type == 0) - e->type = config_control_designt_ahead_or_behind; -} - -#endif - -SdaiAhead_or_behind_var::operator Ahead_or_behind () const { - switch (v) { - case Ahead_or_behind__ahead : return Ahead_or_behind__ahead; - case Ahead_or_behind__behind : return Ahead_or_behind__behind; - case Ahead_or_behind_unset : - default : return Ahead_or_behind_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiAhead_or_behind_var (os_database *db) -{ - if(db) - return new (db, - SdaiAhead_or_behind_var::get_os_typespec()) SdaiAhead_or_behind_var; - else - return new SdaiAhead_or_behind_var( "", config_control_designt_ahead_or_behind ); -} - -#else - -SCLP23(Enum) * -create_SdaiAhead_or_behind_var () -{ - return new SdaiAhead_or_behind_var( "", config_control_designt_ahead_or_behind ); -} -#endif - - -SdaiAhead_or_behind_vars::SdaiAhead_or_behind_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiAhead_or_behind_vars::~SdaiAhead_or_behind_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiAhead_or_behind_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiAhead_or_behind_vars *e = (SdaiAhead_or_behind_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_ahead_or_behind; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiAhead_or_behind_vars (os_database *db) -{ - if(db) - return new (db, - SdaiAhead_or_behind_vars::get_os_typespec()) SdaiAhead_or_behind_vars; - else - return new SdaiAhead_or_behind_vars( config_control_designt_ahead_or_behind ); -} - -#else - -STEPaggregate * -create_SdaiAhead_or_behind_vars () -{ - return new SdaiAhead_or_behind_vars( config_control_designt_ahead_or_behind ); -} -#endif - -////////// END ENUMERATION ahead_or_behind - -SelectTypeDescriptor *config_control_designt_contracted_item; -TypeDescriptor *config_control_designt_day_in_year_number; -TypeDescriptor *config_control_designt_mass_measure; -TypeDescriptor *config_control_designt_descriptive_measure; -TypeDescriptor *config_control_designt_area_measure; -TypeDescriptor *config_control_designt_month_in_year_number; -EnumTypeDescriptor *config_control_designt_source; -////////// ENUMERATION TYPE SdaiSource_var -const char * -SdaiSource_var::element_at (int n) const { - switch (n) { - case Source__bought : return "BOUGHT"; - case Source__not_known : return "NOT_KNOWN"; - case Source__made : return "MADE"; - case Source_unset : - default : return "UNSET"; - } -} - -SdaiSource_var::SdaiSource_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiSource_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSource_var: virtual access function." << G4endl; - SdaiSource_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSource_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiSource_var *e = (SdaiSource_var *)object; - if(e->type == 0) - e->type = config_control_designt_source; -} - -#endif - -SdaiSource_var::operator Source () const { - switch (v) { - case Source__bought : return Source__bought; - case Source__not_known : return Source__not_known; - case Source__made : return Source__made; - case Source_unset : - default : return Source_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiSource_var (os_database *db) -{ - if(db) - return new (db, - SdaiSource_var::get_os_typespec()) SdaiSource_var; - else - return new SdaiSource_var( "", config_control_designt_source ); -} - -#else - -SCLP23(Enum) * -create_SdaiSource_var () -{ - return new SdaiSource_var( "", config_control_designt_source ); -} -#endif - - -SdaiSource_vars::SdaiSource_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiSource_vars::~SdaiSource_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiSource_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiSource_vars *e = (SdaiSource_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_source; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiSource_vars (os_database *db) -{ - if(db) - return new (db, - SdaiSource_vars::get_os_typespec()) SdaiSource_vars; - else - return new SdaiSource_vars( config_control_designt_source ); -} - -#else - -STEPaggregate * -create_SdaiSource_vars () -{ - return new SdaiSource_vars( config_control_designt_source ); -} -#endif - -////////// END ENUMERATION source - -SelectTypeDescriptor *config_control_designt_unit; -SelectTypeDescriptor *config_control_designt_reversible_topology; -SelectTypeDescriptor *config_control_designt_work_item; -SelectTypeDescriptor *config_control_designt_shape_definition; -TypeDescriptor *config_control_designt_second_in_minute; -TypeDescriptor *config_control_designt_label; -TypeDescriptor *config_control_designt_context_dependent_measure; -SelectTypeDescriptor *config_control_designt_supported_item; -EnumTypeDescriptor *config_control_designt_si_prefix; -////////// ENUMERATION TYPE SdaiSi_prefix_var -const char * -SdaiSi_prefix_var::element_at (int n) const { - switch (n) { - case Si_prefix__exa : return "EXA"; - case Si_prefix__pico : return "PICO"; - case Si_prefix__mega : return "MEGA"; - case Si_prefix__femto : return "FEMTO"; - case Si_prefix__atto : return "ATTO"; - case Si_prefix__centi : return "CENTI"; - case Si_prefix__nano : return "NANO"; - case Si_prefix__hecto : return "HECTO"; - case Si_prefix__micro : return "MICRO"; - case Si_prefix__tera : return "TERA"; - case Si_prefix__giga : return "GIGA"; - case Si_prefix__milli : return "MILLI"; - case Si_prefix__peta : return "PETA"; - case Si_prefix__deci : return "DECI"; - case Si_prefix__kilo : return "KILO"; - case Si_prefix__deca : return "DECA"; - case Si_prefix_unset : - default : return "UNSET"; - } -} - -SdaiSi_prefix_var::SdaiSi_prefix_var (const char * n, EnumTypeDescriptor *et) - : type(et) -{ - set_value (n); -} - -#ifdef __OSTORE__ -void -SdaiSi_prefix_var::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSi_prefix_var: virtual access function." << G4endl; - SdaiSi_prefix_var_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSi_prefix_var_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiSi_prefix_var *e = (SdaiSi_prefix_var *)object; - if(e->type == 0) - e->type = config_control_designt_si_prefix; -} - -#endif - -SdaiSi_prefix_var::operator Si_prefix () const { - switch (v) { - case Si_prefix__exa : return Si_prefix__exa; - case Si_prefix__pico : return Si_prefix__pico; - case Si_prefix__mega : return Si_prefix__mega; - case Si_prefix__femto : return Si_prefix__femto; - case Si_prefix__atto : return Si_prefix__atto; - case Si_prefix__centi : return Si_prefix__centi; - case Si_prefix__nano : return Si_prefix__nano; - case Si_prefix__hecto : return Si_prefix__hecto; - case Si_prefix__micro : return Si_prefix__micro; - case Si_prefix__tera : return Si_prefix__tera; - case Si_prefix__giga : return Si_prefix__giga; - case Si_prefix__milli : return Si_prefix__milli; - case Si_prefix__peta : return Si_prefix__peta; - case Si_prefix__deci : return Si_prefix__deci; - case Si_prefix__kilo : return Si_prefix__kilo; - case Si_prefix__deca : return Si_prefix__deca; - case Si_prefix_unset : - default : return Si_prefix_unset; - } -} - -#ifdef __OSTORE__ - -SCLP23(Enum) * -create_SdaiSi_prefix_var (os_database *db) -{ - if(db) - return new (db, - SdaiSi_prefix_var::get_os_typespec()) SdaiSi_prefix_var; - else - return new SdaiSi_prefix_var( "", config_control_designt_si_prefix ); -} - -#else - -SCLP23(Enum) * -create_SdaiSi_prefix_var () -{ - return new SdaiSi_prefix_var( "", config_control_designt_si_prefix ); -} -#endif - - -SdaiSi_prefix_vars::SdaiSi_prefix_vars( EnumTypeDescriptor *et ) - : enum_type(et) -{ -} - -SdaiSi_prefix_vars::~SdaiSi_prefix_vars() -{ -} - -#ifdef __OSTORE__ -void -SdaiSi_prefix_vars_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SdaiSi_prefix_vars *e = (SdaiSi_prefix_vars *)object; - if(e->enum_type == 0) - e->enum_type = config_control_designt_si_prefix; -} - -#endif - -#ifdef __OSTORE__ - -STEPaggregate * -create_SdaiSi_prefix_vars (os_database *db) -{ - if(db) - return new (db, - SdaiSi_prefix_vars::get_os_typespec()) SdaiSi_prefix_vars; - else - return new SdaiSi_prefix_vars( config_control_designt_si_prefix ); -} - -#else - -STEPaggregate * -create_SdaiSi_prefix_vars () -{ - return new SdaiSi_prefix_vars( config_control_designt_si_prefix ); -} -#endif - -////////// END ENUMERATION si_prefix - -TypeDescriptor *config_control_designt_length_measure; -SelectTypeDescriptor *config_control_designt_approved_item; -TypeDescriptor *config_control_designt_count_measure; -SelectTypeDescriptor *config_control_designt_surface_model; -ListTypeDescriptor *config_control_designt_list_of_reversible_topology_item; - -#if __OSTORE__ -STEPaggregate * -create_SdaiList_of_reversible_topology_item (os_database *db) { return create_SdaiReversible_topology_items(db); } -#else -STEPaggregate * -create_SdaiList_of_reversible_topology_item () { return create_SdaiReversible_topology_items(); } -#endif - -////////// SELECT TYPE characterized_product_definition - -const TypeDescriptor * -SdaiCharacterized_product_definition::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION - if (se -> IsA (config_control_designe_product_definition)) - { - _app_inst = (SdaiProduct_definition_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition); - } - // PRODUCT_DEFINITION_RELATIONSHIP - if (se -> IsA (config_control_designe_product_definition_relationship)) - { - _app_inst = (SdaiProduct_definition_relationship_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_relationship); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiCharacterized_product_definition::NewSelect () -{ -#ifdef __OSTORE__ - SdaiCharacterized_product_definition * tmp = - new( os_segment::of(this), - SdaiCharacterized_product_definition::get_os_typespec() ) - SdaiCharacterized_product_definition(); -#else - SdaiCharacterized_product_definition * tmp = new SdaiCharacterized_product_definition(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiCharacterized_product_definition::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_product_definition_relationship) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiCharacterized_product_definition::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_product_definition_relationship) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiCharacterized_product_definition::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_product_definition_relationship) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiCharacterized_product_definition::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_product_definition_relationship) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiCharacterized_product_definition::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiCharacterized_product_definition (os_database *db) -{ - return new (db, SdaiCharacterized_product_definition::get_os_typespec()) - SdaiCharacterized_product_definition ; -} - -void -SdaiCharacterized_product_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiCharacterized_product_definition access hook funct called." << G4endl; - } -#endif - SdaiCharacterized_product_definition *s = (SdaiCharacterized_product_definition *) object; - s->_type = config_control_designt_characterized_product_definition; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiCharacterized_product_definitions (os_database *db) -{ - return new (db, SdaiCharacterized_product_definitions::get_os_typespec()) - SdaiCharacterized_product_definitions ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiCharacterized_product_definition::SdaiCharacterized_product_definition( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCharacterized_product_definition constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCharacterized_product_definition constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiCharacterized_product_definition::SdaiCharacterized_product_definition( const SdaiProduct_definition_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCharacterized_product_definition constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCharacterized_product_definition constructor." << G4endl; - } -#endif -} - -SdaiCharacterized_product_definition::SdaiCharacterized_product_definition( const SdaiProduct_definition_relationship_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_relationship) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCharacterized_product_definition constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCharacterized_product_definition constructor." << G4endl; - } -#endif -} - -SdaiCharacterized_product_definition::~SdaiCharacterized_product_definition() -{ -} - -SdaiCharacterized_product_definitions::SdaiCharacterized_product_definitions( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiCharacterized_product_definitions::~SdaiCharacterized_product_definitions() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiCharacterized_product_definitions::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiCharacterized_product_definition::get_os_typespec() ) - SdaiCharacterized_product_definition ); -} -#endif - - - // part 2 -SdaiCharacterized_product_definition::operator SdaiProduct_definition_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return ((SdaiProduct_definition_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiCharacterized_product_definition::operator SdaiProduct_definition_relationship_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - return ((SdaiProduct_definition_relationship_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiProduct_definition_ptr -SdaiCharacterized_product_definition::related_product_definition_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - return ((SdaiProduct_definition_relationship_ptr) _app_inst) ->related_product_definition_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCharacterized_product_definition::related_product_definition_ (const SdaiProduct_definition_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - { ((SdaiProduct_definition_relationship_ptr) _app_inst) ->related_product_definition_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_ptr -SdaiCharacterized_product_definition::relating_product_definition_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - return ((SdaiProduct_definition_relationship_ptr) _app_inst) ->relating_product_definition_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCharacterized_product_definition::relating_product_definition_ (const SdaiProduct_definition_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - { ((SdaiProduct_definition_relationship_ptr) _app_inst) ->relating_product_definition_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiCharacterized_product_definition::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - return ((SdaiProduct_definition_relationship_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCharacterized_product_definition::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - { ((SdaiProduct_definition_relationship_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_context_ptr -SdaiCharacterized_product_definition::frame_of_reference_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->frame_of_reference_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCharacterized_product_definition::frame_of_reference_ (const SdaiProduct_definition_context_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->frame_of_reference_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_formation_ptr -SdaiCharacterized_product_definition::formation_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->formation_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCharacterized_product_definition::formation_ (const SdaiProduct_definition_formation_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->formation_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiCharacterized_product_definition::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - return ((SdaiProduct_definition_relationship_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCharacterized_product_definition::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - { ((SdaiProduct_definition_relationship_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiCharacterized_product_definition::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->id_(); - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - return ((SdaiProduct_definition_relationship_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCharacterized_product_definition::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->id_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - // PRODUCT_DEFINITION_RELATIONSHIP - { ((SdaiProduct_definition_relationship_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiCharacterized_product_definition& SdaiCharacterized_product_definition::operator =( const SdaiProduct_definition_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition); - return *this; -} - -SdaiCharacterized_product_definition& SdaiCharacterized_product_definition::operator =( const SdaiProduct_definition_relationship_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_relationship); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiCharacterized_product_definition& SdaiCharacterized_product_definition::operator =( const SdaiCharacterized_product_definition_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiCharacterized_product_definition::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = ((SdaiCharacterized_product_definition&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - _app_inst = ((SdaiCharacterized_product_definition&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiCharacterized_product_definition::IsProduct_definition() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiCharacterized_product_definition::IsProduct_definition_relationship() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_relationship ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiCharacterized_product_definition - - -////////// SELECT TYPE shape_definition - -const TypeDescriptor * -SdaiShape_definition::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION_SHAPE - if (se -> IsA (config_control_designe_product_definition_shape)) - { - _app_inst = (SdaiProduct_definition_shape_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_shape); - } - // SHAPE_ASPECT - if (se -> IsA (config_control_designe_shape_aspect)) - { - _app_inst = (SdaiShape_aspect_ptr) se; - return SetUnderlyingType (config_control_designe_shape_aspect); - } - // SHAPE_ASPECT_RELATIONSHIP - if (se -> IsA (config_control_designe_shape_aspect_relationship)) - { - _app_inst = (SdaiShape_aspect_relationship_ptr) se; - return SetUnderlyingType (config_control_designe_shape_aspect_relationship); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiShape_definition::NewSelect () -{ -#ifdef __OSTORE__ - SdaiShape_definition * tmp = - new( os_segment::of(this), - SdaiShape_definition::get_os_typespec() ) - SdaiShape_definition(); -#else - SdaiShape_definition * tmp = new SdaiShape_definition(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiShape_definition::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_shape) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_shape_aspect) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiShape_definition::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition_shape) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_shape_aspect) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_shape_aspect_relationship) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiShape_definition::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition_shape) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_shape_aspect) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_shape_aspect_relationship) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiShape_definition::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_shape) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_shape_aspect) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiShape_definition::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiShape_definition (os_database *db) -{ - return new (db, SdaiShape_definition::get_os_typespec()) - SdaiShape_definition ; -} - -void -SdaiShape_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiShape_definition access hook funct called." << G4endl; - } -#endif - SdaiShape_definition *s = (SdaiShape_definition *) object; - s->_type = config_control_designt_shape_definition; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiShape_definitions (os_database *db) -{ - return new (db, SdaiShape_definitions::get_os_typespec()) - SdaiShape_definitions ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiShape_definition::SdaiShape_definition( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShape_definition constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShape_definition constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiShape_definition::SdaiShape_definition( const SdaiProduct_definition_shape_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_shape) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShape_definition constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShape_definition constructor." << G4endl; - } -#endif -} - -SdaiShape_definition::SdaiShape_definition( const SdaiShape_aspect_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_shape_aspect) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShape_definition constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShape_definition constructor." << G4endl; - } -#endif -} - -SdaiShape_definition::SdaiShape_definition( const SdaiShape_aspect_relationship_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_shape_aspect_relationship) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShape_definition constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShape_definition constructor." << G4endl; - } -#endif -} - -SdaiShape_definition::~SdaiShape_definition() -{ -} - -SdaiShape_definitions::SdaiShape_definitions( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiShape_definitions::~SdaiShape_definitions() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiShape_definitions::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiShape_definition::get_os_typespec() ) - SdaiShape_definition ); -} -#endif - - - // part 2 -SdaiShape_definition::operator SdaiProduct_definition_shape_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - return ((SdaiProduct_definition_shape_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiShape_definition::operator SdaiShape_aspect_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - return ((SdaiShape_aspect_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiShape_definition::operator SdaiShape_aspect_relationship_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - return ((SdaiShape_aspect_relationship_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiShape_aspect_ptr -SdaiShape_definition::related_shape_aspect_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - // SHAPE_ASPECT_RELATIONSHIP - return ((SdaiShape_aspect_relationship_ptr) _app_inst) ->related_shape_aspect_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShape_definition::related_shape_aspect_ (const SdaiShape_aspect_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - // SHAPE_ASPECT_RELATIONSHIP - { ((SdaiShape_aspect_relationship_ptr) _app_inst) ->related_shape_aspect_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiShape_aspect_ptr -SdaiShape_definition::relating_shape_aspect_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - // SHAPE_ASPECT_RELATIONSHIP - return ((SdaiShape_aspect_relationship_ptr) _app_inst) ->relating_shape_aspect_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShape_definition::relating_shape_aspect_ (const SdaiShape_aspect_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - // SHAPE_ASPECT_RELATIONSHIP - { ((SdaiShape_aspect_relationship_ptr) _app_inst) ->relating_shape_aspect_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SCLLOG(Logical) -SdaiShape_definition::product_definitional_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - return ((SdaiShape_aspect_ptr) _app_inst) ->product_definitional_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return (SCLLOG(Logical)) 0; -} - - -void -SdaiShape_definition::product_definitional_ (const SCLLOG(Logical) x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - { ((SdaiShape_aspect_ptr) _app_inst) ->product_definitional_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_shape_ptr -SdaiShape_definition::of_shape_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - return ((SdaiShape_aspect_ptr) _app_inst) ->of_shape_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShape_definition::of_shape_ (const SdaiProduct_definition_shape_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - { ((SdaiShape_aspect_ptr) _app_inst) ->of_shape_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiCharacterized_definition_ptr -SdaiShape_definition::definition_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - // PRODUCT_DEFINITION_SHAPE - return ((SdaiProduct_definition_shape_ptr) _app_inst) ->definition_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShape_definition::definition_ (const SdaiCharacterized_definition_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - // PRODUCT_DEFINITION_SHAPE - { ((SdaiProduct_definition_shape_ptr) _app_inst) ->definition_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiShape_definition::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - // PRODUCT_DEFINITION_SHAPE - return ((SdaiProduct_definition_shape_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - return ((SdaiShape_aspect_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - // SHAPE_ASPECT_RELATIONSHIP - return ((SdaiShape_aspect_relationship_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShape_definition::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - // PRODUCT_DEFINITION_SHAPE - { ((SdaiProduct_definition_shape_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - { ((SdaiShape_aspect_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - // SHAPE_ASPECT_RELATIONSHIP - { ((SdaiShape_aspect_relationship_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiShape_definition::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - // PRODUCT_DEFINITION_SHAPE - return ((SdaiProduct_definition_shape_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - return ((SdaiShape_aspect_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - // SHAPE_ASPECT_RELATIONSHIP - return ((SdaiShape_aspect_relationship_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShape_definition::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - // PRODUCT_DEFINITION_SHAPE - { ((SdaiProduct_definition_shape_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - { ((SdaiShape_aspect_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - // SHAPE_ASPECT_RELATIONSHIP - { ((SdaiShape_aspect_relationship_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiShape_definition& SdaiShape_definition::operator =( const SdaiProduct_definition_shape_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_shape); - return *this; -} - -SdaiShape_definition& SdaiShape_definition::operator =( const SdaiShape_aspect_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_shape_aspect); - return *this; -} - -SdaiShape_definition& SdaiShape_definition::operator =( const SdaiShape_aspect_relationship_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_shape_aspect_relationship); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiShape_definition& SdaiShape_definition::operator =( const SdaiShape_definition_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_shape_aspect ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiShape_definition::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - _app_inst = ((SdaiShape_definition&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_shape_aspect ) - _app_inst = ((SdaiShape_definition&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - _app_inst = ((SdaiShape_definition&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiShape_definition::IsProduct_definition_shape() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_shape ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiShape_definition::IsShape_aspect() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiShape_definition::IsShape_aspect_relationship() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_shape_aspect_relationship ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiShape_definition - - -////////// SELECT TYPE characterized_definition - -const TypeDescriptor * -SdaiCharacterized_definition::AssignEntity (SCLP23(Application_instance) * se) -{ - // CHARACTERIZED_PRODUCT_DEFINITION - if (config_control_designt_characterized_product_definition -> CanBe (se -> eDesc)) - { - _sdaicharacterized_product_definition.AssignEntity (se); - return SetUnderlyingType (config_control_designt_characterized_product_definition); - } - // SHAPE_DEFINITION - if (config_control_designt_shape_definition -> CanBe (se -> eDesc)) - { - _sdaishape_definition.AssignEntity (se); - return SetUnderlyingType (config_control_designt_shape_definition); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiCharacterized_definition::NewSelect () -{ -#ifdef __OSTORE__ - SdaiCharacterized_definition * tmp = - new( os_segment::of(this), - SdaiCharacterized_definition::get_os_typespec() ) - SdaiCharacterized_definition(); -#else - SdaiCharacterized_definition * tmp = new SdaiCharacterized_definition(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiCharacterized_definition::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designt_characterized_product_definition) - _sdaicharacterized_product_definition.STEPwrite (out, currSch); - else if (CurrentUnderlyingType () == config_control_designt_shape_definition) - _sdaishape_definition.STEPwrite (out, currSch); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiCharacterized_definition::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designt_characterized_product_definition) - return _sdaicharacterized_product_definition.ValueType(); - else if (CurrentUnderlyingType() == config_control_designt_shape_definition) - return _sdaishape_definition.ValueType(); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiCharacterized_definition::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designt_characterized_product_definition) - { - out << tmp.chars() << "("; - _sdaicharacterized_product_definition.STEPwrite_verbose (out, currSch); - out << ")"; - } - else if (td == config_control_designt_shape_definition) - { - out << tmp.chars() << "("; - _sdaishape_definition.STEPwrite_verbose (out, currSch); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiCharacterized_definition::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designt_characterized_product_definition) { - _sdaicharacterized_product_definition.STEPread (in, &_error, instances, utype, addFileId, currSch); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_shape_definition) { - _sdaishape_definition.STEPread (in, &_error, instances, utype, addFileId, currSch); - return severity (); - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiCharacterized_definition::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiCharacterized_definition (os_database *db) -{ - return new (db, SdaiCharacterized_definition::get_os_typespec()) - SdaiCharacterized_definition ; -} - -void -SdaiCharacterized_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiCharacterized_definition access hook funct called." << G4endl; - } -#endif - SdaiCharacterized_definition *s = (SdaiCharacterized_definition *) object; - s->_type = config_control_designt_characterized_definition; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiCharacterized_definitions (os_database *db) -{ - return new (db, SdaiCharacterized_definitions::get_os_typespec()) - SdaiCharacterized_definitions ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiCharacterized_definition::SdaiCharacterized_definition( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript), - _sdaicharacterized_product_definition (config_control_designt_characterized_product_definition), - _sdaishape_definition (config_control_designt_shape_definition) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCharacterized_definition constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCharacterized_definition constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiCharacterized_definition::SdaiCharacterized_definition( const SdaiCharacterized_product_definition_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designt_characterized_product_definition), - _sdaicharacterized_product_definition (config_control_designt_characterized_product_definition), - _sdaishape_definition (config_control_designt_shape_definition) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCharacterized_definition constructor." << G4endl; - } -#endif - _sdaicharacterized_product_definition = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCharacterized_definition constructor." << G4endl; - } -#endif -} - -SdaiCharacterized_definition::SdaiCharacterized_definition( const SdaiShape_definition_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designt_shape_definition), - _sdaicharacterized_product_definition (config_control_designt_characterized_product_definition), - _sdaishape_definition (config_control_designt_shape_definition) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCharacterized_definition constructor." << G4endl; - } -#endif - _sdaishape_definition = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCharacterized_definition constructor." << G4endl; - } -#endif -} - -SdaiCharacterized_definition::~SdaiCharacterized_definition() -{ -} - -SdaiCharacterized_definitions::SdaiCharacterized_definitions( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiCharacterized_definitions::~SdaiCharacterized_definitions() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiCharacterized_definitions::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiCharacterized_definition::get_os_typespec() ) - SdaiCharacterized_definition ); -} -#endif - - - // part 2 -SdaiCharacterized_definition::operator SdaiCharacterized_product_definition_ptr() -{ - if( CurrentUnderlyingType () == config_control_designt_characterized_product_definition ) - return & _sdaicharacterized_product_definition; - - severity( SEVERITY_WARNING ); - Error( (char*)"Underlying type is not SdaiCharacterized_product_definition_ptr" ); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return 0; -} - -SdaiCharacterized_definition::operator SdaiShape_definition_ptr() -{ - if( CurrentUnderlyingType () == config_control_designt_shape_definition ) - return & _sdaishape_definition; - - severity( SEVERITY_WARNING ); - Error( (char*)"Underlying type is not SdaiShape_definition_ptr" ); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return 0; -} - - - // part 3 - - // part 4 -SdaiCharacterized_definition& SdaiCharacterized_definition::operator =( const SdaiCharacterized_product_definition_ptr& o ) -{ - nullify (); - _sdaicharacterized_product_definition = o; - SetUnderlyingType (config_control_designt_characterized_product_definition); - return *this; -} - -SdaiCharacterized_definition& SdaiCharacterized_definition::operator =( const SdaiShape_definition_ptr& o ) -{ - nullify (); - _sdaishape_definition = o; - SetUnderlyingType (config_control_designt_shape_definition); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiCharacterized_definition& SdaiCharacterized_definition::operator =( const SdaiCharacterized_definition_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designt_characterized_product_definition ) - _sdaicharacterized_product_definition = &(o -> _sdaicharacterized_product_definition); - else if ( o -> CurrentUnderlyingType () == config_control_designt_shape_definition ) - _sdaishape_definition = &(o -> _sdaishape_definition); - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiCharacterized_definition::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designt_characterized_product_definition ) - _sdaicharacterized_product_definition = &(((SdaiCharacterized_definition&) o)._sdaicharacterized_product_definition); - else if ( o.CurrentUnderlyingType () == config_control_designt_shape_definition ) - _sdaishape_definition = &(((SdaiCharacterized_definition&) o)._sdaishape_definition); - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiCharacterized_definition::IsCharacterized_product_definition() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_characterized_product_definition ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiCharacterized_definition::IsShape_definition() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_shape_definition ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiCharacterized_definition - - -////////// SELECT TYPE change_request_item - -const TypeDescriptor * -SdaiChange_request_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION_FORMATION - if (se -> IsA (config_control_designe_product_definition_formation)) - { - _app_inst = (SdaiProduct_definition_formation_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_formation); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiChange_request_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiChange_request_item * tmp = - new( os_segment::of(this), - SdaiChange_request_item::get_os_typespec() ) - SdaiChange_request_item(); -#else - SdaiChange_request_item * tmp = new SdaiChange_request_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiChange_request_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiChange_request_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition_formation) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiChange_request_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition_formation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiChange_request_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiChange_request_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiChange_request_item (os_database *db) -{ - return new (db, SdaiChange_request_item::get_os_typespec()) - SdaiChange_request_item ; -} - -void -SdaiChange_request_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiChange_request_item access hook funct called." << G4endl; - } -#endif - SdaiChange_request_item *s = (SdaiChange_request_item *) object; - s->_type = config_control_designt_change_request_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiChange_request_items (os_database *db) -{ - return new (db, SdaiChange_request_items::get_os_typespec()) - SdaiChange_request_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiChange_request_item::SdaiChange_request_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiChange_request_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiChange_request_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiChange_request_item::SdaiChange_request_item( const SdaiProduct_definition_formation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_formation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiChange_request_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiChange_request_item constructor." << G4endl; - } -#endif -} - -SdaiChange_request_item::~SdaiChange_request_item() -{ -} - -SdaiChange_request_items::SdaiChange_request_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiChange_request_items::~SdaiChange_request_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiChange_request_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiChange_request_item::get_os_typespec() ) - SdaiChange_request_item ); -} -#endif - - - // part 2 -SdaiChange_request_item::operator SdaiProduct_definition_formation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return ((SdaiProduct_definition_formation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiProduct_ptr -SdaiChange_request_item::of_product_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiChange_request_item::of_product_ (const SdaiProduct_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiChange_request_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiChange_request_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiChange_request_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiChange_request_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiChange_request_item& SdaiChange_request_item::operator =( const SdaiProduct_definition_formation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_formation); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiChange_request_item& SdaiChange_request_item::operator =( const SdaiChange_request_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiChange_request_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = ((SdaiChange_request_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiChange_request_item::IsProduct_definition_formation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiChange_request_item - - -////////// SELECT TYPE reversible_topology_item - -const TypeDescriptor * -SdaiReversible_topology_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // EDGE - if (se -> IsA (config_control_designe_edge)) - { - _app_inst = (SdaiEdge_ptr) se; - return SetUnderlyingType (config_control_designe_edge); - } - // PATH - if (se -> IsA (config_control_designe_path)) - { - _app_inst = (SdaiPath_ptr) se; - return SetUnderlyingType (config_control_designe_path); - } - // FACE - if (se -> IsA (config_control_designe_face)) - { - _app_inst = (SdaiFace_ptr) se; - return SetUnderlyingType (config_control_designe_face); - } - // FACE_BOUND - if (se -> IsA (config_control_designe_face_bound)) - { - _app_inst = (SdaiFace_bound_ptr) se; - return SetUnderlyingType (config_control_designe_face_bound); - } - // CLOSED_SHELL - if (se -> IsA (config_control_designe_closed_shell)) - { - _app_inst = (SdaiClosed_shell_ptr) se; - return SetUnderlyingType (config_control_designe_closed_shell); - } - // OPEN_SHELL - if (se -> IsA (config_control_designe_open_shell)) - { - _app_inst = (SdaiOpen_shell_ptr) se; - return SetUnderlyingType (config_control_designe_open_shell); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiReversible_topology_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiReversible_topology_item * tmp = - new( os_segment::of(this), - SdaiReversible_topology_item::get_os_typespec() ) - SdaiReversible_topology_item(); -#else - SdaiReversible_topology_item * tmp = new SdaiReversible_topology_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiReversible_topology_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_edge) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_path) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_face) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_face_bound) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_closed_shell) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_open_shell) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiReversible_topology_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_edge) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_path) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_face) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_face_bound) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_closed_shell) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_open_shell) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiReversible_topology_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_edge) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_path) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_face) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_face_bound) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_closed_shell) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_open_shell) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiReversible_topology_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_edge) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_path) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_face) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_face_bound) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_closed_shell) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_open_shell) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiReversible_topology_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiReversible_topology_item (os_database *db) -{ - return new (db, SdaiReversible_topology_item::get_os_typespec()) - SdaiReversible_topology_item ; -} - -void -SdaiReversible_topology_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiReversible_topology_item access hook funct called." << G4endl; - } -#endif - SdaiReversible_topology_item *s = (SdaiReversible_topology_item *) object; - s->_type = config_control_designt_reversible_topology_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiReversible_topology_items (os_database *db) -{ - return new (db, SdaiReversible_topology_items::get_os_typespec()) - SdaiReversible_topology_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiReversible_topology_item::SdaiReversible_topology_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiReversible_topology_item::SdaiReversible_topology_item( const SdaiEdge_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_edge) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology_item constructor." << G4endl; - } -#endif -} - -SdaiReversible_topology_item::SdaiReversible_topology_item( const SdaiPath_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_path) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology_item constructor." << G4endl; - } -#endif -} - -SdaiReversible_topology_item::SdaiReversible_topology_item( const SdaiFace_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_face) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology_item constructor." << G4endl; - } -#endif -} - -SdaiReversible_topology_item::SdaiReversible_topology_item( const SdaiFace_bound_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_face_bound) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology_item constructor." << G4endl; - } -#endif -} - -SdaiReversible_topology_item::SdaiReversible_topology_item( const SdaiClosed_shell_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_closed_shell) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology_item constructor." << G4endl; - } -#endif -} - -SdaiReversible_topology_item::SdaiReversible_topology_item( const SdaiOpen_shell_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_open_shell) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology_item constructor." << G4endl; - } -#endif -} - -SdaiReversible_topology_item::~SdaiReversible_topology_item() -{ -} - -SdaiReversible_topology_items::SdaiReversible_topology_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiReversible_topology_items::~SdaiReversible_topology_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiReversible_topology_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiReversible_topology_item::get_os_typespec() ) - SdaiReversible_topology_item ); -} -#endif - - - // part 2 -SdaiReversible_topology_item::operator SdaiEdge_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_edge ) - return ((SdaiEdge_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiReversible_topology_item::operator SdaiPath_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_path ) - return ((SdaiPath_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiReversible_topology_item::operator SdaiFace_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_face ) - return ((SdaiFace_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiReversible_topology_item::operator SdaiFace_bound_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_face_bound ) - return ((SdaiFace_bound_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiReversible_topology_item::operator SdaiClosed_shell_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - return ((SdaiClosed_shell_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiReversible_topology_item::operator SdaiOpen_shell_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - return ((SdaiOpen_shell_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const EntityAggregate_ptr -SdaiReversible_topology_item::cfs_faces_() const -{ - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - // CLOSED_SHELL - return ((SdaiClosed_shell_ptr) _app_inst) ->cfs_faces_(); - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - // OPEN_SHELL - return ((SdaiOpen_shell_ptr) _app_inst) ->cfs_faces_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiReversible_topology_item::cfs_faces_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - // CLOSED_SHELL - { ((SdaiClosed_shell_ptr) _app_inst) ->cfs_faces_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - // OPEN_SHELL - { ((SdaiOpen_shell_ptr) _app_inst) ->cfs_faces_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SCLBOOL(Bool) -SdaiReversible_topology_item::orientation_() const -{ - if( CurrentUnderlyingType () == config_control_designe_face_bound ) - // FACE_BOUND - return ((SdaiFace_bound_ptr) _app_inst) ->orientation_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return (SCLBOOL(Bool)) 0; -} - - -void -SdaiReversible_topology_item::orientation_ (const SCLBOOL(Bool) x) - -{ - if( CurrentUnderlyingType () == config_control_designe_face_bound ) - // FACE_BOUND - { ((SdaiFace_bound_ptr) _app_inst) ->orientation_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLoop_ptr -SdaiReversible_topology_item::bound_() const -{ - if( CurrentUnderlyingType () == config_control_designe_face_bound ) - // FACE_BOUND - return ((SdaiFace_bound_ptr) _app_inst) ->bound_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiReversible_topology_item::bound_ (const SdaiLoop_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_face_bound ) - // FACE_BOUND - { ((SdaiFace_bound_ptr) _app_inst) ->bound_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const EntityAggregate_ptr -SdaiReversible_topology_item::bounds_() const -{ - if( CurrentUnderlyingType () == config_control_designe_face ) - // FACE - return ((SdaiFace_ptr) _app_inst) ->bounds_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiReversible_topology_item::bounds_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_face ) - // FACE - { ((SdaiFace_ptr) _app_inst) ->bounds_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const EntityAggregate_ptr -SdaiReversible_topology_item::edge_list_() const -{ - if( CurrentUnderlyingType () == config_control_designe_path ) - // PATH - return ((SdaiPath_ptr) _app_inst) ->edge_list_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiReversible_topology_item::edge_list_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_path ) - // PATH - { ((SdaiPath_ptr) _app_inst) ->edge_list_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiVertex_ptr -SdaiReversible_topology_item::edge_end_() const -{ - if( CurrentUnderlyingType () == config_control_designe_edge ) - // EDGE - return ((SdaiEdge_ptr) _app_inst) ->edge_end_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiReversible_topology_item::edge_end_ (const SdaiVertex_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_edge ) - // EDGE - { ((SdaiEdge_ptr) _app_inst) ->edge_end_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiVertex_ptr -SdaiReversible_topology_item::edge_start_() const -{ - if( CurrentUnderlyingType () == config_control_designe_edge ) - // EDGE - return ((SdaiEdge_ptr) _app_inst) ->edge_start_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiReversible_topology_item::edge_start_ (const SdaiVertex_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_edge ) - // EDGE - { ((SdaiEdge_ptr) _app_inst) ->edge_start_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiReversible_topology_item::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_edge ) - // EDGE - return ((SdaiEdge_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_path ) - // PATH - return ((SdaiPath_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_face ) - // FACE - return ((SdaiFace_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_face_bound ) - // FACE_BOUND - return ((SdaiFace_bound_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - // CLOSED_SHELL - return ((SdaiClosed_shell_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - // OPEN_SHELL - return ((SdaiOpen_shell_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiReversible_topology_item::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_edge ) - // EDGE - { ((SdaiEdge_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_path ) - // PATH - { ((SdaiPath_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_face ) - // FACE - { ((SdaiFace_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_face_bound ) - // FACE_BOUND - { ((SdaiFace_bound_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - // CLOSED_SHELL - { ((SdaiClosed_shell_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - // OPEN_SHELL - { ((SdaiOpen_shell_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiReversible_topology_item& SdaiReversible_topology_item::operator =( const SdaiEdge_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_edge); - return *this; -} - -SdaiReversible_topology_item& SdaiReversible_topology_item::operator =( const SdaiPath_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_path); - return *this; -} - -SdaiReversible_topology_item& SdaiReversible_topology_item::operator =( const SdaiFace_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_face); - return *this; -} - -SdaiReversible_topology_item& SdaiReversible_topology_item::operator =( const SdaiFace_bound_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_face_bound); - return *this; -} - -SdaiReversible_topology_item& SdaiReversible_topology_item::operator =( const SdaiClosed_shell_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_closed_shell); - return *this; -} - -SdaiReversible_topology_item& SdaiReversible_topology_item::operator =( const SdaiOpen_shell_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_open_shell); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiReversible_topology_item& SdaiReversible_topology_item::operator =( const SdaiReversible_topology_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_edge ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_path ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_face ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_face_bound ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_closed_shell ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_open_shell ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiReversible_topology_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_edge ) - _app_inst = ((SdaiReversible_topology_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_path ) - _app_inst = ((SdaiReversible_topology_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_face ) - _app_inst = ((SdaiReversible_topology_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_face_bound ) - _app_inst = ((SdaiReversible_topology_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_closed_shell ) - _app_inst = ((SdaiReversible_topology_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_open_shell ) - _app_inst = ((SdaiReversible_topology_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiReversible_topology_item::IsEdge() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_edge ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiReversible_topology_item::IsPath() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_path ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiReversible_topology_item::IsFace() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_face ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiReversible_topology_item::IsFace_bound() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_face_bound ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiReversible_topology_item::IsClosed_shell() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiReversible_topology_item::IsOpen_shell() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiReversible_topology_item - - -////////// SELECT TYPE axis2_placement - -const TypeDescriptor * -SdaiAxis2_placement::AssignEntity (SCLP23(Application_instance) * se) -{ - // AXIS2_PLACEMENT_2D - if (se -> IsA (config_control_designe_axis2_placement_2d)) - { - _app_inst = (SdaiAxis2_placement_2d_ptr) se; - return SetUnderlyingType (config_control_designe_axis2_placement_2d); - } - // AXIS2_PLACEMENT_3D - if (se -> IsA (config_control_designe_axis2_placement_3d)) - { - _app_inst = (SdaiAxis2_placement_3d_ptr) se; - return SetUnderlyingType (config_control_designe_axis2_placement_3d); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiAxis2_placement::NewSelect () -{ -#ifdef __OSTORE__ - SdaiAxis2_placement * tmp = - new( os_segment::of(this), - SdaiAxis2_placement::get_os_typespec() ) - SdaiAxis2_placement(); -#else - SdaiAxis2_placement * tmp = new SdaiAxis2_placement(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiAxis2_placement::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_axis2_placement_2d) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_axis2_placement_3d) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiAxis2_placement::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_axis2_placement_2d) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_axis2_placement_3d) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiAxis2_placement::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_axis2_placement_2d) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_axis2_placement_3d) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiAxis2_placement::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_axis2_placement_2d) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_axis2_placement_3d) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiAxis2_placement::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiAxis2_placement (os_database *db) -{ - return new (db, SdaiAxis2_placement::get_os_typespec()) - SdaiAxis2_placement ; -} - -void -SdaiAxis2_placement_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiAxis2_placement access hook funct called." << G4endl; - } -#endif - SdaiAxis2_placement *s = (SdaiAxis2_placement *) object; - s->_type = config_control_designt_axis2_placement; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiAxis2_placements (os_database *db) -{ - return new (db, SdaiAxis2_placements::get_os_typespec()) - SdaiAxis2_placements ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiAxis2_placement::SdaiAxis2_placement( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiAxis2_placement constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiAxis2_placement constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiAxis2_placement::SdaiAxis2_placement( const SdaiAxis2_placement_2d_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_axis2_placement_2d) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiAxis2_placement constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiAxis2_placement constructor." << G4endl; - } -#endif -} - -SdaiAxis2_placement::SdaiAxis2_placement( const SdaiAxis2_placement_3d_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_axis2_placement_3d) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiAxis2_placement constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiAxis2_placement constructor." << G4endl; - } -#endif -} - -SdaiAxis2_placement::~SdaiAxis2_placement() -{ -} - -SdaiAxis2_placements::SdaiAxis2_placements( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiAxis2_placements::~SdaiAxis2_placements() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiAxis2_placements::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiAxis2_placement::get_os_typespec() ) - SdaiAxis2_placement ); -} -#endif - - - // part 2 -SdaiAxis2_placement::operator SdaiAxis2_placement_2d_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - return ((SdaiAxis2_placement_2d_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiAxis2_placement::operator SdaiAxis2_placement_3d_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - return ((SdaiAxis2_placement_3d_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiDirection_ptr -SdaiAxis2_placement::axis_() const -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - // AXIS2_PLACEMENT_3D - return ((SdaiAxis2_placement_3d_ptr) _app_inst) ->axis_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiAxis2_placement::axis_ (const SdaiDirection_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - // AXIS2_PLACEMENT_3D - { ((SdaiAxis2_placement_3d_ptr) _app_inst) ->axis_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiDirection_ptr -SdaiAxis2_placement::ref_direction_() const -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - // AXIS2_PLACEMENT_2D - return ((SdaiAxis2_placement_2d_ptr) _app_inst) ->ref_direction_(); - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - // AXIS2_PLACEMENT_3D - return ((SdaiAxis2_placement_3d_ptr) _app_inst) ->ref_direction_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiAxis2_placement::ref_direction_ (const SdaiDirection_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - // AXIS2_PLACEMENT_2D - { ((SdaiAxis2_placement_2d_ptr) _app_inst) ->ref_direction_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - // AXIS2_PLACEMENT_3D - { ((SdaiAxis2_placement_3d_ptr) _app_inst) ->ref_direction_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiCartesian_point_ptr -SdaiAxis2_placement::location_() const -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - // AXIS2_PLACEMENT_2D - return ((SdaiAxis2_placement_2d_ptr) _app_inst) ->location_(); - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - // AXIS2_PLACEMENT_3D - return ((SdaiAxis2_placement_3d_ptr) _app_inst) ->location_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiAxis2_placement::location_ (const SdaiCartesian_point_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - // AXIS2_PLACEMENT_2D - { ((SdaiAxis2_placement_2d_ptr) _app_inst) ->location_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - // AXIS2_PLACEMENT_3D - { ((SdaiAxis2_placement_3d_ptr) _app_inst) ->location_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiAxis2_placement::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - // AXIS2_PLACEMENT_2D - return ((SdaiAxis2_placement_2d_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - // AXIS2_PLACEMENT_3D - return ((SdaiAxis2_placement_3d_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiAxis2_placement::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - // AXIS2_PLACEMENT_2D - { ((SdaiAxis2_placement_2d_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - // AXIS2_PLACEMENT_3D - { ((SdaiAxis2_placement_3d_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiAxis2_placement& SdaiAxis2_placement::operator =( const SdaiAxis2_placement_2d_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_axis2_placement_2d); - return *this; -} - -SdaiAxis2_placement& SdaiAxis2_placement::operator =( const SdaiAxis2_placement_3d_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_axis2_placement_3d); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiAxis2_placement& SdaiAxis2_placement::operator =( const SdaiAxis2_placement_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiAxis2_placement::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - _app_inst = ((SdaiAxis2_placement&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - _app_inst = ((SdaiAxis2_placement&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiAxis2_placement::IsAxis2_placement_2d() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_2d ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiAxis2_placement::IsAxis2_placement_3d() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_axis2_placement_3d ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiAxis2_placement - - -////////// SELECT TYPE specified_item - -const TypeDescriptor * -SdaiSpecified_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION - if (se -> IsA (config_control_designe_product_definition)) - { - _app_inst = (SdaiProduct_definition_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition); - } - // SHAPE_ASPECT - if (se -> IsA (config_control_designe_shape_aspect)) - { - _app_inst = (SdaiShape_aspect_ptr) se; - return SetUnderlyingType (config_control_designe_shape_aspect); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiSpecified_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiSpecified_item * tmp = - new( os_segment::of(this), - SdaiSpecified_item::get_os_typespec() ) - SdaiSpecified_item(); -#else - SdaiSpecified_item * tmp = new SdaiSpecified_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiSpecified_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_shape_aspect) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiSpecified_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_shape_aspect) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiSpecified_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_shape_aspect) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiSpecified_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_shape_aspect) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiSpecified_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiSpecified_item (os_database *db) -{ - return new (db, SdaiSpecified_item::get_os_typespec()) - SdaiSpecified_item ; -} - -void -SdaiSpecified_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiSpecified_item access hook funct called." << G4endl; - } -#endif - SdaiSpecified_item *s = (SdaiSpecified_item *) object; - s->_type = config_control_designt_specified_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiSpecified_items (os_database *db) -{ - return new (db, SdaiSpecified_items::get_os_typespec()) - SdaiSpecified_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiSpecified_item::SdaiSpecified_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSpecified_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSpecified_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiSpecified_item::SdaiSpecified_item( const SdaiProduct_definition_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSpecified_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSpecified_item constructor." << G4endl; - } -#endif -} - -SdaiSpecified_item::SdaiSpecified_item( const SdaiShape_aspect_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_shape_aspect) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSpecified_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSpecified_item constructor." << G4endl; - } -#endif -} - -SdaiSpecified_item::~SdaiSpecified_item() -{ -} - -SdaiSpecified_items::SdaiSpecified_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiSpecified_items::~SdaiSpecified_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiSpecified_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiSpecified_item::get_os_typespec() ) - SdaiSpecified_item ); -} -#endif - - - // part 2 -SdaiSpecified_item::operator SdaiProduct_definition_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return ((SdaiProduct_definition_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiSpecified_item::operator SdaiShape_aspect_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - return ((SdaiShape_aspect_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SCLLOG(Logical) -SdaiSpecified_item::product_definitional_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - return ((SdaiShape_aspect_ptr) _app_inst) ->product_definitional_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return (SCLLOG(Logical)) 0; -} - - -void -SdaiSpecified_item::product_definitional_ (const SCLLOG(Logical) x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - { ((SdaiShape_aspect_ptr) _app_inst) ->product_definitional_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_shape_ptr -SdaiSpecified_item::of_shape_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - return ((SdaiShape_aspect_ptr) _app_inst) ->of_shape_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSpecified_item::of_shape_ (const SdaiProduct_definition_shape_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - { ((SdaiShape_aspect_ptr) _app_inst) ->of_shape_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiSpecified_item::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - return ((SdaiShape_aspect_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSpecified_item::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - { ((SdaiShape_aspect_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_context_ptr -SdaiSpecified_item::frame_of_reference_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->frame_of_reference_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSpecified_item::frame_of_reference_ (const SdaiProduct_definition_context_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->frame_of_reference_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_formation_ptr -SdaiSpecified_item::formation_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->formation_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSpecified_item::formation_ (const SdaiProduct_definition_formation_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->formation_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiSpecified_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - return ((SdaiShape_aspect_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSpecified_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - // SHAPE_ASPECT - { ((SdaiShape_aspect_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiSpecified_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSpecified_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiSpecified_item& SdaiSpecified_item::operator =( const SdaiProduct_definition_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition); - return *this; -} - -SdaiSpecified_item& SdaiSpecified_item::operator =( const SdaiShape_aspect_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_shape_aspect); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiSpecified_item& SdaiSpecified_item::operator =( const SdaiSpecified_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_shape_aspect ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiSpecified_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = ((SdaiSpecified_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_shape_aspect ) - _app_inst = ((SdaiSpecified_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiSpecified_item::IsProduct_definition() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiSpecified_item::IsShape_aspect() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_shape_aspect ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiSpecified_item - - -////////// SELECT TYPE measure_value - -const TypeDescriptor * -SdaiMeasure_value::AssignEntity (SCLP23(Application_instance) * se) -{ - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiMeasure_value::NewSelect () -{ -#ifdef __OSTORE__ - SdaiMeasure_value * tmp = - new( os_segment::of(this), - SdaiMeasure_value::get_os_typespec() ) - SdaiMeasure_value(); -#else - SdaiMeasure_value * tmp = new SdaiMeasure_value(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiMeasure_value::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designt_area_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_context_dependent_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_count_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_descriptive_measure) - _string.STEPwrite (out); - else if (CurrentUnderlyingType () == config_control_designt_length_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_mass_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_plane_angle_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_parameter_value) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_positive_length_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_positive_plane_angle_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_solid_angle_measure) - WriteReal(_real,out); - else if (CurrentUnderlyingType () == config_control_designt_volume_measure) - WriteReal(_real,out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiMeasure_value::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designt_area_measure) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_context_dependent_measure) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_count_measure) - return sdaiNUMBER; - else if (CurrentUnderlyingType() == config_control_designt_descriptive_measure) - return sdaiSTRING; - else if (CurrentUnderlyingType() == config_control_designt_length_measure) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_mass_measure) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_plane_angle_measure) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_parameter_value) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_positive_length_measure) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_positive_plane_angle_measure) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_solid_angle_measure) - return sdaiREAL; - else if (CurrentUnderlyingType() == config_control_designt_volume_measure) - return sdaiREAL; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiMeasure_value::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designt_area_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_context_dependent_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_count_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_descriptive_measure) - { - out << tmp.chars() << "("; - _string.STEPwrite (out); - out << ")"; - } - else if (td == config_control_designt_length_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_mass_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_plane_angle_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_parameter_value) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_positive_length_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_positive_plane_angle_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_solid_angle_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else if (td == config_control_designt_volume_measure) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiMeasure_value::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designt_area_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_context_dependent_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_count_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_descriptive_measure) { - _string.STEPread (in, &_error); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_length_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_mass_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_plane_angle_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_parameter_value) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_positive_length_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_positive_plane_angle_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_solid_angle_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_volume_measure) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiMeasure_value::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - case sdaiSTRING : - return _string.StrToVal (str); - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiMeasure_value (os_database *db) -{ - return new (db, SdaiMeasure_value::get_os_typespec()) - SdaiMeasure_value ; -} - -void -SdaiMeasure_value_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiMeasure_value access hook funct called." << G4endl; - } -#endif - SdaiMeasure_value *s = (SdaiMeasure_value *) object; - s->_type = config_control_designt_measure_value; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiMeasure_values (os_database *db) -{ - return new (db, SdaiMeasure_values::get_os_typespec()) - SdaiMeasure_values ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiMeasure_value::SdaiMeasure_value( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiMeasure_value constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiMeasure_value constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiMeasure_value::SdaiMeasure_value( const SdaiDescriptive_measure& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designt_descriptive_measure) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiMeasure_value constructor." << G4endl; - } -#endif - _string = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiMeasure_value constructor." << G4endl; - } -#endif -} - -SdaiMeasure_value::SdaiMeasure_value( const SCLP23(Real)& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) ( typedescript, config_control_designt_context_dependent_measure ) -{ - _real = o; -// NOTE: Underlying type defaults to config_control_designt_context_dependent_measure instead of NULL -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiMeasure_value constructor." << G4endl; - } -#endif -} - -SdaiMeasure_value::~SdaiMeasure_value() -{ -} - -SdaiMeasure_values::SdaiMeasure_values( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiMeasure_values::~SdaiMeasure_values() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiMeasure_values::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiMeasure_value::get_os_typespec() ) - SdaiMeasure_value ); -} -#endif - - - // part 2 -SdaiMeasure_value::operator SdaiDescriptive_measure() -{ - if( CurrentUnderlyingType () == config_control_designt_descriptive_measure ) - return _string; - - severity( SEVERITY_WARNING ); - Error( (char*)"Underlying type is not SdaiDescriptive_measure" ); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return 0; -} - -SdaiMeasure_value::operator SCLP23(Real)() -{ - if( CurrentUnderlyingType () == config_control_designt_area_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_context_dependent_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_count_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_length_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_mass_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_plane_angle_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_parameter_value ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_positive_length_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_positive_plane_angle_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_solid_angle_measure ) - return _real; - if( CurrentUnderlyingType () == config_control_designt_volume_measure ) - return _real; - - severity( SEVERITY_WARNING ); - Error( (char*)"Underlying type is not SCLP23(Real)" ); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return (SCLP23(Real))0; -} - - - // part 3 - - // part 4 -SdaiMeasure_value& SdaiMeasure_value::operator =( const SdaiDescriptive_measure& o ) -{ - nullify (); - _string = o; - SetUnderlyingType (config_control_designt_descriptive_measure); - return *this; -} - -SdaiMeasure_value& SdaiMeasure_value::operator =( const SCLP23(Real)& o ) -{ - _real = o; - underlying_type = 0; // MUST BE SET BY USER -#ifdef __OSTORE__ - underlying_type_name.set_null(); -#endif - // discriminator = UNSET - return *this; -} - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiMeasure_value& SdaiMeasure_value::operator =( const SdaiMeasure_value_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designt_area_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_context_dependent_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_count_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_descriptive_measure ) - _string = o -> _string; - else if ( o -> CurrentUnderlyingType () == config_control_designt_length_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_mass_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_plane_angle_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_parameter_value ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_positive_length_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_positive_plane_angle_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_solid_angle_measure ) - _real = o -> _real; - else if ( o -> CurrentUnderlyingType () == config_control_designt_volume_measure ) - _real = o -> _real; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiMeasure_value::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designt_area_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_context_dependent_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_count_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_descriptive_measure ) - _string = ((SdaiMeasure_value&) o)._string; - else if ( o.CurrentUnderlyingType () == config_control_designt_length_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_mass_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_plane_angle_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_parameter_value ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_positive_length_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_positive_plane_angle_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_solid_angle_measure ) - _real = ((SdaiMeasure_value&) o)._real; - else if ( o.CurrentUnderlyingType () == config_control_designt_volume_measure ) - _real = ((SdaiMeasure_value&) o)._real; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiMeasure_value::IsArea_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_area_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsContext_dependent_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_context_dependent_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsCount_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_count_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsDescriptive_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_descriptive_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsLength_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_length_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsMass_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_mass_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsPlane_angle_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_plane_angle_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsParameter_value() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_parameter_value ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsPositive_length_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_positive_length_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsPositive_plane_angle_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_positive_plane_angle_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsSolid_angle_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_solid_angle_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiMeasure_value::IsVolume_measure() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_volume_measure ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - - - // part 7 -const TypeDescriptor * -SdaiMeasure_value::SetUnderlyingType (const TypeDescriptor * td) -{ -#ifndef WIN32 - return SCLP23(Select)::SetUnderlyingType (td); -#else - return StepSelectType::SetUnderlyingType (td); -#endif -} -////////// END SELECT TYPE SdaiMeasure_value - - -////////// SELECT TYPE person_organization_select - -const TypeDescriptor * -SdaiPerson_organization_select::AssignEntity (SCLP23(Application_instance) * se) -{ - // PERSON_AND_ORGANIZATION - if (se -> IsA (config_control_designe_person_and_organization)) - { - _app_inst = (SdaiPerson_and_organization_ptr) se; - return SetUnderlyingType (config_control_designe_person_and_organization); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiPerson_organization_select::NewSelect () -{ -#ifdef __OSTORE__ - SdaiPerson_organization_select * tmp = - new( os_segment::of(this), - SdaiPerson_organization_select::get_os_typespec() ) - SdaiPerson_organization_select(); -#else - SdaiPerson_organization_select * tmp = new SdaiPerson_organization_select(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiPerson_organization_select::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_person_and_organization) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiPerson_organization_select::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_person_and_organization) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiPerson_organization_select::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_person_and_organization) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiPerson_organization_select::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_person_and_organization) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiPerson_organization_select::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiPerson_organization_select (os_database *db) -{ - return new (db, SdaiPerson_organization_select::get_os_typespec()) - SdaiPerson_organization_select ; -} - -void -SdaiPerson_organization_select_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiPerson_organization_select access hook funct called." << G4endl; - } -#endif - SdaiPerson_organization_select *s = (SdaiPerson_organization_select *) object; - s->_type = config_control_designt_person_organization_select; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiPerson_organization_selects (os_database *db) -{ - return new (db, SdaiPerson_organization_selects::get_os_typespec()) - SdaiPerson_organization_selects ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiPerson_organization_select::SdaiPerson_organization_select( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_select constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_select constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiPerson_organization_select::SdaiPerson_organization_select( const SdaiPerson_and_organization_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_person_and_organization) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_select constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_select constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_select::~SdaiPerson_organization_select() -{ -} - -SdaiPerson_organization_selects::SdaiPerson_organization_selects( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiPerson_organization_selects::~SdaiPerson_organization_selects() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiPerson_organization_selects::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiPerson_organization_select::get_os_typespec() ) - SdaiPerson_organization_select ); -} -#endif - - - // part 2 -SdaiPerson_organization_select::operator SdaiPerson_and_organization_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_person_and_organization ) - return ((SdaiPerson_and_organization_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiOrganization_ptr -SdaiPerson_organization_select::the_organization_() const -{ - if( CurrentUnderlyingType () == config_control_designe_person_and_organization ) - // PERSON_AND_ORGANIZATION - return ((SdaiPerson_and_organization_ptr) _app_inst) ->the_organization_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_select::the_organization_ (const SdaiOrganization_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_person_and_organization ) - // PERSON_AND_ORGANIZATION - { ((SdaiPerson_and_organization_ptr) _app_inst) ->the_organization_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiPerson_ptr -SdaiPerson_organization_select::the_person_() const -{ - if( CurrentUnderlyingType () == config_control_designe_person_and_organization ) - // PERSON_AND_ORGANIZATION - return ((SdaiPerson_and_organization_ptr) _app_inst) ->the_person_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_select::the_person_ (const SdaiPerson_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_person_and_organization ) - // PERSON_AND_ORGANIZATION - { ((SdaiPerson_and_organization_ptr) _app_inst) ->the_person_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiPerson_organization_select& SdaiPerson_organization_select::operator =( const SdaiPerson_and_organization_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_person_and_organization); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiPerson_organization_select& SdaiPerson_organization_select::operator =( const SdaiPerson_organization_select_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_person_and_organization ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiPerson_organization_select::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_person_and_organization ) - _app_inst = ((SdaiPerson_organization_select&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiPerson_organization_select::IsPerson_and_organization() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_person_and_organization ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiPerson_organization_select - - -////////// SELECT TYPE pcurve_or_surface - -const TypeDescriptor * -SdaiPcurve_or_surface::AssignEntity (SCLP23(Application_instance) * se) -{ - // PCURVE - if (se -> IsA (config_control_designe_pcurve)) - { - _app_inst = (SdaiPcurve_ptr) se; - return SetUnderlyingType (config_control_designe_pcurve); - } - // SURFACE - if (se -> IsA (config_control_designe_surface)) - { - _app_inst = (SdaiSurface_ptr) se; - return SetUnderlyingType (config_control_designe_surface); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiPcurve_or_surface::NewSelect () -{ -#ifdef __OSTORE__ - SdaiPcurve_or_surface * tmp = - new( os_segment::of(this), - SdaiPcurve_or_surface::get_os_typespec() ) - SdaiPcurve_or_surface(); -#else - SdaiPcurve_or_surface * tmp = new SdaiPcurve_or_surface(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiPcurve_or_surface::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_pcurve) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_surface) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiPcurve_or_surface::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_pcurve) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_surface) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiPcurve_or_surface::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_pcurve) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_surface) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiPcurve_or_surface::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_pcurve) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_surface) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiPcurve_or_surface::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiPcurve_or_surface (os_database *db) -{ - return new (db, SdaiPcurve_or_surface::get_os_typespec()) - SdaiPcurve_or_surface ; -} - -void -SdaiPcurve_or_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiPcurve_or_surface access hook funct called." << G4endl; - } -#endif - SdaiPcurve_or_surface *s = (SdaiPcurve_or_surface *) object; - s->_type = config_control_designt_pcurve_or_surface; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiPcurve_or_surfaces (os_database *db) -{ - return new (db, SdaiPcurve_or_surfaces::get_os_typespec()) - SdaiPcurve_or_surfaces ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiPcurve_or_surface::SdaiPcurve_or_surface( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPcurve_or_surface constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPcurve_or_surface constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiPcurve_or_surface::SdaiPcurve_or_surface( const SdaiPcurve_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_pcurve) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPcurve_or_surface constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPcurve_or_surface constructor." << G4endl; - } -#endif -} - -SdaiPcurve_or_surface::SdaiPcurve_or_surface( const SdaiSurface_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_surface) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPcurve_or_surface constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPcurve_or_surface constructor." << G4endl; - } -#endif -} - -SdaiPcurve_or_surface::~SdaiPcurve_or_surface() -{ -} - -SdaiPcurve_or_surfaces::SdaiPcurve_or_surfaces( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiPcurve_or_surfaces::~SdaiPcurve_or_surfaces() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiPcurve_or_surfaces::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiPcurve_or_surface::get_os_typespec() ) - SdaiPcurve_or_surface ); -} -#endif - - - // part 2 -SdaiPcurve_or_surface::operator SdaiPcurve_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - return ((SdaiPcurve_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPcurve_or_surface::operator SdaiSurface_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_surface ) - return ((SdaiSurface_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiDefinitional_representation_ptr -SdaiPcurve_or_surface::reference_to_curve_() const -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - return ((SdaiPcurve_ptr) _app_inst) ->reference_to_curve_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPcurve_or_surface::reference_to_curve_ (const SdaiDefinitional_representation_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - { ((SdaiPcurve_ptr) _app_inst) ->reference_to_curve_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiSurface_ptr -SdaiPcurve_or_surface::basis_surface_() const -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - return ((SdaiPcurve_ptr) _app_inst) ->basis_surface_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPcurve_or_surface::basis_surface_ (const SdaiSurface_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - { ((SdaiPcurve_ptr) _app_inst) ->basis_surface_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiPcurve_or_surface::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - return ((SdaiPcurve_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_surface ) - // SURFACE - return ((SdaiSurface_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPcurve_or_surface::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - { ((SdaiPcurve_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_surface ) - // SURFACE - { ((SdaiSurface_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiPcurve_or_surface& SdaiPcurve_or_surface::operator =( const SdaiPcurve_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_pcurve); - return *this; -} - -SdaiPcurve_or_surface& SdaiPcurve_or_surface::operator =( const SdaiSurface_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_surface); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiPcurve_or_surface& SdaiPcurve_or_surface::operator =( const SdaiPcurve_or_surface_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_pcurve ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_surface ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiPcurve_or_surface::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_pcurve ) - _app_inst = ((SdaiPcurve_or_surface&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_surface ) - _app_inst = ((SdaiPcurve_or_surface&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiPcurve_or_surface::IsPcurve() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPcurve_or_surface::IsSurface() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_surface ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiPcurve_or_surface - - -////////// SELECT TYPE classified_item - -const TypeDescriptor * -SdaiClassified_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION_FORMATION - if (se -> IsA (config_control_designe_product_definition_formation)) - { - _app_inst = (SdaiProduct_definition_formation_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_formation); - } - // ASSEMBLY_COMPONENT_USAGE - if (se -> IsA (config_control_designe_assembly_component_usage)) - { - _app_inst = (SdaiAssembly_component_usage_ptr) se; - return SetUnderlyingType (config_control_designe_assembly_component_usage); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiClassified_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiClassified_item * tmp = - new( os_segment::of(this), - SdaiClassified_item::get_os_typespec() ) - SdaiClassified_item(); -#else - SdaiClassified_item * tmp = new SdaiClassified_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiClassified_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_assembly_component_usage) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiClassified_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition_formation) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_assembly_component_usage) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiClassified_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition_formation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_assembly_component_usage) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiClassified_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_assembly_component_usage) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiClassified_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiClassified_item (os_database *db) -{ - return new (db, SdaiClassified_item::get_os_typespec()) - SdaiClassified_item ; -} - -void -SdaiClassified_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiClassified_item access hook funct called." << G4endl; - } -#endif - SdaiClassified_item *s = (SdaiClassified_item *) object; - s->_type = config_control_designt_classified_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiClassified_items (os_database *db) -{ - return new (db, SdaiClassified_items::get_os_typespec()) - SdaiClassified_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiClassified_item::SdaiClassified_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiClassified_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiClassified_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiClassified_item::SdaiClassified_item( const SdaiProduct_definition_formation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_formation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiClassified_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiClassified_item constructor." << G4endl; - } -#endif -} - -SdaiClassified_item::SdaiClassified_item( const SdaiAssembly_component_usage_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_assembly_component_usage) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiClassified_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiClassified_item constructor." << G4endl; - } -#endif -} - -SdaiClassified_item::~SdaiClassified_item() -{ -} - -SdaiClassified_items::SdaiClassified_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiClassified_items::~SdaiClassified_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiClassified_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiClassified_item::get_os_typespec() ) - SdaiClassified_item ); -} -#endif - - - // part 2 -SdaiClassified_item::operator SdaiProduct_definition_formation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return ((SdaiProduct_definition_formation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiClassified_item::operator SdaiAssembly_component_usage_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - return ((SdaiAssembly_component_usage_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiIdentifier -SdaiClassified_item::reference_designator_() const -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - return ((SdaiAssembly_component_usage_ptr) _app_inst) ->reference_designator_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiClassified_item::reference_designator_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - { ((SdaiAssembly_component_usage_ptr) _app_inst) ->reference_designator_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_ptr -SdaiClassified_item::related_product_definition_() const -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - return ((SdaiAssembly_component_usage_ptr) _app_inst) ->related_product_definition_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiClassified_item::related_product_definition_ (const SdaiProduct_definition_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - { ((SdaiAssembly_component_usage_ptr) _app_inst) ->related_product_definition_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_ptr -SdaiClassified_item::relating_product_definition_() const -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - return ((SdaiAssembly_component_usage_ptr) _app_inst) ->relating_product_definition_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiClassified_item::relating_product_definition_ (const SdaiProduct_definition_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - { ((SdaiAssembly_component_usage_ptr) _app_inst) ->relating_product_definition_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiClassified_item::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - return ((SdaiAssembly_component_usage_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiClassified_item::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - { ((SdaiAssembly_component_usage_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_ptr -SdaiClassified_item::of_product_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiClassified_item::of_product_ (const SdaiProduct_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiClassified_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - return ((SdaiAssembly_component_usage_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiClassified_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - { ((SdaiAssembly_component_usage_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiClassified_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_(); - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - return ((SdaiAssembly_component_usage_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiClassified_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - // ASSEMBLY_COMPONENT_USAGE - { ((SdaiAssembly_component_usage_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiClassified_item& SdaiClassified_item::operator =( const SdaiProduct_definition_formation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_formation); - return *this; -} - -SdaiClassified_item& SdaiClassified_item::operator =( const SdaiAssembly_component_usage_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_assembly_component_usage); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiClassified_item& SdaiClassified_item::operator =( const SdaiClassified_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiClassified_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = ((SdaiClassified_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - _app_inst = ((SdaiClassified_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiClassified_item::IsProduct_definition_formation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiClassified_item::IsAssembly_component_usage() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_assembly_component_usage ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiClassified_item - - -////////// SELECT TYPE vector_or_direction - -const TypeDescriptor * -SdaiVector_or_direction::AssignEntity (SCLP23(Application_instance) * se) -{ - // VECTOR - if (se -> IsA (config_control_designe_vector)) - { - _app_inst = (SdaiVector_ptr) se; - return SetUnderlyingType (config_control_designe_vector); - } - // DIRECTION - if (se -> IsA (config_control_designe_direction)) - { - _app_inst = (SdaiDirection_ptr) se; - return SetUnderlyingType (config_control_designe_direction); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiVector_or_direction::NewSelect () -{ -#ifdef __OSTORE__ - SdaiVector_or_direction * tmp = - new( os_segment::of(this), - SdaiVector_or_direction::get_os_typespec() ) - SdaiVector_or_direction(); -#else - SdaiVector_or_direction * tmp = new SdaiVector_or_direction(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiVector_or_direction::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_vector) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_direction) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiVector_or_direction::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_vector) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_direction) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiVector_or_direction::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_vector) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_direction) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiVector_or_direction::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_vector) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_direction) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiVector_or_direction::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiVector_or_direction (os_database *db) -{ - return new (db, SdaiVector_or_direction::get_os_typespec()) - SdaiVector_or_direction ; -} - -void -SdaiVector_or_direction_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiVector_or_direction access hook funct called." << G4endl; - } -#endif - SdaiVector_or_direction *s = (SdaiVector_or_direction *) object; - s->_type = config_control_designt_vector_or_direction; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiVector_or_directions (os_database *db) -{ - return new (db, SdaiVector_or_directions::get_os_typespec()) - SdaiVector_or_directions ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiVector_or_direction::SdaiVector_or_direction( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiVector_or_direction constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiVector_or_direction constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiVector_or_direction::SdaiVector_or_direction( const SdaiVector_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_vector) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiVector_or_direction constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiVector_or_direction constructor." << G4endl; - } -#endif -} - -SdaiVector_or_direction::SdaiVector_or_direction( const SdaiDirection_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_direction) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiVector_or_direction constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiVector_or_direction constructor." << G4endl; - } -#endif -} - -SdaiVector_or_direction::~SdaiVector_or_direction() -{ -} - -SdaiVector_or_directions::SdaiVector_or_directions( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiVector_or_directions::~SdaiVector_or_directions() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiVector_or_directions::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiVector_or_direction::get_os_typespec() ) - SdaiVector_or_direction ); -} -#endif - - - // part 2 -SdaiVector_or_direction::operator SdaiVector_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_vector ) - return ((SdaiVector_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiVector_or_direction::operator SdaiDirection_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_direction ) - return ((SdaiDirection_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const RealAggregate_ptr -SdaiVector_or_direction::direction_ratios_() const -{ - if( CurrentUnderlyingType () == config_control_designe_direction ) - // DIRECTION - return ((SdaiDirection_ptr) _app_inst) ->direction_ratios_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiVector_or_direction::direction_ratios_ (const RealAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_direction ) - // DIRECTION - { ((SdaiDirection_ptr) _app_inst) ->direction_ratios_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLength_measure -SdaiVector_or_direction::magnitude_() const -{ - if( CurrentUnderlyingType () == config_control_designe_vector ) - // VECTOR - return ((SdaiVector_ptr) _app_inst) ->magnitude_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiVector_or_direction::magnitude_ (const SdaiLength_measure x) - -{ - if( CurrentUnderlyingType () == config_control_designe_vector ) - // VECTOR - { ((SdaiVector_ptr) _app_inst) ->magnitude_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiDirection_ptr -SdaiVector_or_direction::orientation_() const -{ - if( CurrentUnderlyingType () == config_control_designe_vector ) - // VECTOR - return ((SdaiVector_ptr) _app_inst) ->orientation_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiVector_or_direction::orientation_ (const SdaiDirection_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_vector ) - // VECTOR - { ((SdaiVector_ptr) _app_inst) ->orientation_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiVector_or_direction::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_vector ) - // VECTOR - return ((SdaiVector_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_direction ) - // DIRECTION - return ((SdaiDirection_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiVector_or_direction::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_vector ) - // VECTOR - { ((SdaiVector_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_direction ) - // DIRECTION - { ((SdaiDirection_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiVector_or_direction& SdaiVector_or_direction::operator =( const SdaiVector_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_vector); - return *this; -} - -SdaiVector_or_direction& SdaiVector_or_direction::operator =( const SdaiDirection_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_direction); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiVector_or_direction& SdaiVector_or_direction::operator =( const SdaiVector_or_direction_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_vector ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_direction ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiVector_or_direction::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_vector ) - _app_inst = ((SdaiVector_or_direction&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_direction ) - _app_inst = ((SdaiVector_or_direction&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiVector_or_direction::IsVector() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_vector ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiVector_or_direction::IsDirection() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_direction ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiVector_or_direction - - -////////// SELECT TYPE wireframe_model - -const TypeDescriptor * -SdaiWireframe_model::AssignEntity (SCLP23(Application_instance) * se) -{ - // SHELL_BASED_WIREFRAME_MODEL - if (se -> IsA (config_control_designe_shell_based_wireframe_model)) - { - _app_inst = (SdaiShell_based_wireframe_model_ptr) se; - return SetUnderlyingType (config_control_designe_shell_based_wireframe_model); - } - // EDGE_BASED_WIREFRAME_MODEL - if (se -> IsA (config_control_designe_edge_based_wireframe_model)) - { - _app_inst = (SdaiEdge_based_wireframe_model_ptr) se; - return SetUnderlyingType (config_control_designe_edge_based_wireframe_model); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiWireframe_model::NewSelect () -{ -#ifdef __OSTORE__ - SdaiWireframe_model * tmp = - new( os_segment::of(this), - SdaiWireframe_model::get_os_typespec() ) - SdaiWireframe_model(); -#else - SdaiWireframe_model * tmp = new SdaiWireframe_model(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiWireframe_model::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiWireframe_model::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_shell_based_wireframe_model) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_edge_based_wireframe_model) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiWireframe_model::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_shell_based_wireframe_model) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_edge_based_wireframe_model) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiWireframe_model::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiWireframe_model::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiWireframe_model (os_database *db) -{ - return new (db, SdaiWireframe_model::get_os_typespec()) - SdaiWireframe_model ; -} - -void -SdaiWireframe_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiWireframe_model access hook funct called." << G4endl; - } -#endif - SdaiWireframe_model *s = (SdaiWireframe_model *) object; - s->_type = config_control_designt_wireframe_model; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiWireframe_models (os_database *db) -{ - return new (db, SdaiWireframe_models::get_os_typespec()) - SdaiWireframe_models ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiWireframe_model::SdaiWireframe_model( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiWireframe_model constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiWireframe_model constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiWireframe_model::SdaiWireframe_model( const SdaiShell_based_wireframe_model_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_shell_based_wireframe_model) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiWireframe_model constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiWireframe_model constructor." << G4endl; - } -#endif -} - -SdaiWireframe_model::SdaiWireframe_model( const SdaiEdge_based_wireframe_model_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_edge_based_wireframe_model) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiWireframe_model constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiWireframe_model constructor." << G4endl; - } -#endif -} - -SdaiWireframe_model::~SdaiWireframe_model() -{ -} - -SdaiWireframe_models::SdaiWireframe_models( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiWireframe_models::~SdaiWireframe_models() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiWireframe_models::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiWireframe_model::get_os_typespec() ) - SdaiWireframe_model ); -} -#endif - - - // part 2 -SdaiWireframe_model::operator SdaiShell_based_wireframe_model_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model ) - return ((SdaiShell_based_wireframe_model_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiWireframe_model::operator SdaiEdge_based_wireframe_model_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model ) - return ((SdaiEdge_based_wireframe_model_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const EntityAggregate_ptr -SdaiWireframe_model::ebwm_boundary_() const -{ - if( CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model ) - // EDGE_BASED_WIREFRAME_MODEL - return ((SdaiEdge_based_wireframe_model_ptr) _app_inst) ->ebwm_boundary_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiWireframe_model::ebwm_boundary_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model ) - // EDGE_BASED_WIREFRAME_MODEL - { ((SdaiEdge_based_wireframe_model_ptr) _app_inst) ->ebwm_boundary_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiShells_ptr -SdaiWireframe_model::sbwm_boundary_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model ) - // SHELL_BASED_WIREFRAME_MODEL - return ((SdaiShell_based_wireframe_model_ptr) _app_inst) ->sbwm_boundary_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiWireframe_model::sbwm_boundary_ (const SdaiShells_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model ) - // SHELL_BASED_WIREFRAME_MODEL - { ((SdaiShell_based_wireframe_model_ptr) _app_inst) ->sbwm_boundary_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiWireframe_model::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model ) - // SHELL_BASED_WIREFRAME_MODEL - return ((SdaiShell_based_wireframe_model_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model ) - // EDGE_BASED_WIREFRAME_MODEL - return ((SdaiEdge_based_wireframe_model_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiWireframe_model::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model ) - // SHELL_BASED_WIREFRAME_MODEL - { ((SdaiShell_based_wireframe_model_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model ) - // EDGE_BASED_WIREFRAME_MODEL - { ((SdaiEdge_based_wireframe_model_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiWireframe_model& SdaiWireframe_model::operator =( const SdaiShell_based_wireframe_model_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_shell_based_wireframe_model); - return *this; -} - -SdaiWireframe_model& SdaiWireframe_model::operator =( const SdaiEdge_based_wireframe_model_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_edge_based_wireframe_model); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiWireframe_model& SdaiWireframe_model::operator =( const SdaiWireframe_model_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiWireframe_model::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model ) - _app_inst = ((SdaiWireframe_model&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model ) - _app_inst = ((SdaiWireframe_model&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiWireframe_model::IsShell_based_wireframe_model() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_shell_based_wireframe_model ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiWireframe_model::IsEdge_based_wireframe_model() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_edge_based_wireframe_model ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiWireframe_model - - -////////// SELECT TYPE geometric_set_select - -const TypeDescriptor * -SdaiGeometric_set_select::AssignEntity (SCLP23(Application_instance) * se) -{ - // POINT - if (se -> IsA (config_control_designe_point)) - { - _app_inst = (SdaiPoint_ptr) se; - return SetUnderlyingType (config_control_designe_point); - } - // CURVE - if (se -> IsA (config_control_designe_curve)) - { - _app_inst = (SdaiCurve_ptr) se; - return SetUnderlyingType (config_control_designe_curve); - } - // SURFACE - if (se -> IsA (config_control_designe_surface)) - { - _app_inst = (SdaiSurface_ptr) se; - return SetUnderlyingType (config_control_designe_surface); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiGeometric_set_select::NewSelect () -{ -#ifdef __OSTORE__ - SdaiGeometric_set_select * tmp = - new( os_segment::of(this), - SdaiGeometric_set_select::get_os_typespec() ) - SdaiGeometric_set_select(); -#else - SdaiGeometric_set_select * tmp = new SdaiGeometric_set_select(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiGeometric_set_select::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_point) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_curve) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_surface) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiGeometric_set_select::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_point) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_curve) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_surface) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiGeometric_set_select::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_point) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_curve) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_surface) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiGeometric_set_select::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_point) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_curve) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_surface) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiGeometric_set_select::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiGeometric_set_select (os_database *db) -{ - return new (db, SdaiGeometric_set_select::get_os_typespec()) - SdaiGeometric_set_select ; -} - -void -SdaiGeometric_set_select_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiGeometric_set_select access hook funct called." << G4endl; - } -#endif - SdaiGeometric_set_select *s = (SdaiGeometric_set_select *) object; - s->_type = config_control_designt_geometric_set_select; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiGeometric_set_selects (os_database *db) -{ - return new (db, SdaiGeometric_set_selects::get_os_typespec()) - SdaiGeometric_set_selects ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiGeometric_set_select::SdaiGeometric_set_select( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiGeometric_set_select constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiGeometric_set_select constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiGeometric_set_select::SdaiGeometric_set_select( const SdaiPoint_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_point) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiGeometric_set_select constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiGeometric_set_select constructor." << G4endl; - } -#endif -} - -SdaiGeometric_set_select::SdaiGeometric_set_select( const SdaiCurve_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_curve) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiGeometric_set_select constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiGeometric_set_select constructor." << G4endl; - } -#endif -} - -SdaiGeometric_set_select::SdaiGeometric_set_select( const SdaiSurface_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_surface) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiGeometric_set_select constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiGeometric_set_select constructor." << G4endl; - } -#endif -} - -SdaiGeometric_set_select::~SdaiGeometric_set_select() -{ -} - -SdaiGeometric_set_selects::SdaiGeometric_set_selects( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiGeometric_set_selects::~SdaiGeometric_set_selects() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiGeometric_set_selects::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiGeometric_set_select::get_os_typespec() ) - SdaiGeometric_set_select ); -} -#endif - - - // part 2 -SdaiGeometric_set_select::operator SdaiPoint_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_point ) - return ((SdaiPoint_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiGeometric_set_select::operator SdaiCurve_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_curve ) - return ((SdaiCurve_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiGeometric_set_select::operator SdaiSurface_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_surface ) - return ((SdaiSurface_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiLabel -SdaiGeometric_set_select::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_point ) - // POINT - return ((SdaiPoint_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_curve ) - // CURVE - return ((SdaiCurve_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_surface ) - // SURFACE - return ((SdaiSurface_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiGeometric_set_select::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_point ) - // POINT - { ((SdaiPoint_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_curve ) - // CURVE - { ((SdaiCurve_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_surface ) - // SURFACE - { ((SdaiSurface_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiGeometric_set_select& SdaiGeometric_set_select::operator =( const SdaiPoint_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_point); - return *this; -} - -SdaiGeometric_set_select& SdaiGeometric_set_select::operator =( const SdaiCurve_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_curve); - return *this; -} - -SdaiGeometric_set_select& SdaiGeometric_set_select::operator =( const SdaiSurface_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_surface); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiGeometric_set_select& SdaiGeometric_set_select::operator =( const SdaiGeometric_set_select_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_point ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_curve ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_surface ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiGeometric_set_select::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_point ) - _app_inst = ((SdaiGeometric_set_select&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_curve ) - _app_inst = ((SdaiGeometric_set_select&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_surface ) - _app_inst = ((SdaiGeometric_set_select&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiGeometric_set_select::IsPoint() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_point ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiGeometric_set_select::IsCurve() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_curve ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiGeometric_set_select::IsSurface() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_surface ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiGeometric_set_select - - -////////// SELECT TYPE start_request_item - -const TypeDescriptor * -SdaiStart_request_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION_FORMATION - if (se -> IsA (config_control_designe_product_definition_formation)) - { - _app_inst = (SdaiProduct_definition_formation_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_formation); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiStart_request_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiStart_request_item * tmp = - new( os_segment::of(this), - SdaiStart_request_item::get_os_typespec() ) - SdaiStart_request_item(); -#else - SdaiStart_request_item * tmp = new SdaiStart_request_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiStart_request_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiStart_request_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition_formation) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiStart_request_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition_formation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiStart_request_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiStart_request_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiStart_request_item (os_database *db) -{ - return new (db, SdaiStart_request_item::get_os_typespec()) - SdaiStart_request_item ; -} - -void -SdaiStart_request_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiStart_request_item access hook funct called." << G4endl; - } -#endif - SdaiStart_request_item *s = (SdaiStart_request_item *) object; - s->_type = config_control_designt_start_request_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiStart_request_items (os_database *db) -{ - return new (db, SdaiStart_request_items::get_os_typespec()) - SdaiStart_request_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiStart_request_item::SdaiStart_request_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiStart_request_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiStart_request_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiStart_request_item::SdaiStart_request_item( const SdaiProduct_definition_formation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_formation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiStart_request_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiStart_request_item constructor." << G4endl; - } -#endif -} - -SdaiStart_request_item::~SdaiStart_request_item() -{ -} - -SdaiStart_request_items::SdaiStart_request_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiStart_request_items::~SdaiStart_request_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiStart_request_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiStart_request_item::get_os_typespec() ) - SdaiStart_request_item ); -} -#endif - - - // part 2 -SdaiStart_request_item::operator SdaiProduct_definition_formation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return ((SdaiProduct_definition_formation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiProduct_ptr -SdaiStart_request_item::of_product_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiStart_request_item::of_product_ (const SdaiProduct_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiStart_request_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiStart_request_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiStart_request_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiStart_request_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiStart_request_item& SdaiStart_request_item::operator =( const SdaiProduct_definition_formation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_formation); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiStart_request_item& SdaiStart_request_item::operator =( const SdaiStart_request_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiStart_request_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = ((SdaiStart_request_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiStart_request_item::IsProduct_definition_formation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiStart_request_item - - -////////// SELECT TYPE person_organization_item - -const TypeDescriptor * -SdaiPerson_organization_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // CHANGE - if (se -> IsA (config_control_designe_change)) - { - _app_inst = (SdaiChange_ptr) se; - return SetUnderlyingType (config_control_designe_change); - } - // START_WORK - if (se -> IsA (config_control_designe_start_work)) - { - _app_inst = (SdaiStart_work_ptr) se; - return SetUnderlyingType (config_control_designe_start_work); - } - // CHANGE_REQUEST - if (se -> IsA (config_control_designe_change_request)) - { - _app_inst = (SdaiChange_request_ptr) se; - return SetUnderlyingType (config_control_designe_change_request); - } - // START_REQUEST - if (se -> IsA (config_control_designe_start_request)) - { - _app_inst = (SdaiStart_request_ptr) se; - return SetUnderlyingType (config_control_designe_start_request); - } - // CONFIGURATION_ITEM - if (se -> IsA (config_control_designe_configuration_item)) - { - _app_inst = (SdaiConfiguration_item_ptr) se; - return SetUnderlyingType (config_control_designe_configuration_item); - } - // PRODUCT - if (se -> IsA (config_control_designe_product)) - { - _app_inst = (SdaiProduct_ptr) se; - return SetUnderlyingType (config_control_designe_product); - } - // PRODUCT_DEFINITION_FORMATION - if (se -> IsA (config_control_designe_product_definition_formation)) - { - _app_inst = (SdaiProduct_definition_formation_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_formation); - } - // PRODUCT_DEFINITION - if (se -> IsA (config_control_designe_product_definition)) - { - _app_inst = (SdaiProduct_definition_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition); - } - // CONTRACT - if (se -> IsA (config_control_designe_contract)) - { - _app_inst = (SdaiContract_ptr) se; - return SetUnderlyingType (config_control_designe_contract); - } - // SECURITY_CLASSIFICATION - if (se -> IsA (config_control_designe_security_classification)) - { - _app_inst = (SdaiSecurity_classification_ptr) se; - return SetUnderlyingType (config_control_designe_security_classification); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiPerson_organization_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiPerson_organization_item * tmp = - new( os_segment::of(this), - SdaiPerson_organization_item::get_os_typespec() ) - SdaiPerson_organization_item(); -#else - SdaiPerson_organization_item * tmp = new SdaiPerson_organization_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiPerson_organization_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_change) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_start_work) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_change_request) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_start_request) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_configuration_item) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_product) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_product_definition) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_contract) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_security_classification) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiPerson_organization_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_change) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_start_work) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_change_request) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_start_request) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_configuration_item) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_product) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_product_definition_formation) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_product_definition) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_contract) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_security_classification) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiPerson_organization_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_change) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_start_work) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_change_request) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_start_request) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_configuration_item) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_product) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_product_definition_formation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_product_definition) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_contract) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_security_classification) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiPerson_organization_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_change) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_start_work) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_change_request) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_start_request) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_configuration_item) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_product) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_product_definition) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_contract) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_security_classification) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiPerson_organization_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiPerson_organization_item (os_database *db) -{ - return new (db, SdaiPerson_organization_item::get_os_typespec()) - SdaiPerson_organization_item ; -} - -void -SdaiPerson_organization_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiPerson_organization_item access hook funct called." << G4endl; - } -#endif - SdaiPerson_organization_item *s = (SdaiPerson_organization_item *) object; - s->_type = config_control_designt_person_organization_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiPerson_organization_items (os_database *db) -{ - return new (db, SdaiPerson_organization_items::get_os_typespec()) - SdaiPerson_organization_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiPerson_organization_item::SdaiPerson_organization_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiChange_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_change) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiStart_work_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_start_work) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiChange_request_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_change_request) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiStart_request_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_start_request) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiConfiguration_item_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_configuration_item) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiProduct_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiProduct_definition_formation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_formation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiProduct_definition_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiContract_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_contract) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::SdaiPerson_organization_item( const SdaiSecurity_classification_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_security_classification) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiPerson_organization_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiPerson_organization_item constructor." << G4endl; - } -#endif -} - -SdaiPerson_organization_item::~SdaiPerson_organization_item() -{ -} - -SdaiPerson_organization_items::SdaiPerson_organization_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiPerson_organization_items::~SdaiPerson_organization_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiPerson_organization_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiPerson_organization_item::get_os_typespec() ) - SdaiPerson_organization_item ); -} -#endif - - - // part 2 -SdaiPerson_organization_item::operator SdaiChange_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - return ((SdaiChange_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiStart_work_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_start_work ) - return ((SdaiStart_work_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiChange_request_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - return ((SdaiChange_request_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiStart_request_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_start_request ) - return ((SdaiStart_request_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiConfiguration_item_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - return ((SdaiConfiguration_item_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiProduct_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product ) - return ((SdaiProduct_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiProduct_definition_formation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return ((SdaiProduct_definition_formation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiProduct_definition_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return ((SdaiProduct_definition_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiContract_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - return ((SdaiContract_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiPerson_organization_item::operator SdaiSecurity_classification_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - return ((SdaiSecurity_classification_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiSecurity_classification_level_ptr -SdaiPerson_organization_item::security_level_() const -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->security_level_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::security_level_ (const SdaiSecurity_classification_level_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->security_level_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiContract_type_ptr -SdaiPerson_organization_item::kind_() const -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - return ((SdaiContract_ptr) _app_inst) ->kind_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::kind_ (const SdaiContract_type_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - { ((SdaiContract_ptr) _app_inst) ->kind_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_formation_ptr -SdaiPerson_organization_item::formation_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->formation_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::formation_ (const SdaiProduct_definition_formation_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->formation_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_ptr -SdaiPerson_organization_item::of_product_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::of_product_ (const SdaiProduct_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const EntityAggregate_ptr -SdaiPerson_organization_item::frame_of_reference_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product ) - // PRODUCT - return ((SdaiProduct_ptr) _app_inst) ->frame_of_reference_(); - // PRODUCT_DEFINITION - // attribute access function has a different return type - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::frame_of_reference_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product ) - // PRODUCT - { ((SdaiProduct_ptr) _app_inst) ->frame_of_reference_( x ); - return; - } - // for PRODUCT_DEFINITION attribute access function has a different argument type - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiPerson_organization_item::purpose_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->purpose_(); - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - return ((SdaiContract_ptr) _app_inst) ->purpose_(); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->purpose_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::purpose_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->purpose_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - { ((SdaiContract_ptr) _app_inst) ->purpose_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->purpose_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_concept_ptr -SdaiPerson_organization_item::item_concept_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->item_concept_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::item_concept_ (const SdaiProduct_concept_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->item_concept_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiPerson_organization_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_product ) - // PRODUCT - return ((SdaiProduct_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product ) - // PRODUCT - { ((SdaiProduct_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiPerson_organization_item::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_product ) - // PRODUCT - return ((SdaiProduct_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - return ((SdaiContract_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product ) - // PRODUCT - { ((SdaiProduct_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - { ((SdaiContract_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiPerson_organization_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->id_(); - if( CurrentUnderlyingType () == config_control_designe_product ) - // PRODUCT - return ((SdaiProduct_ptr) _app_inst) ->id_(); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_(); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->id_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product ) - // PRODUCT - { ((SdaiProduct_ptr) _app_inst) ->id_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiVersioned_action_request_ptr -SdaiPerson_organization_item::assigned_action_request_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - return ((SdaiChange_request_ptr) _app_inst) ->assigned_action_request_(); - if( CurrentUnderlyingType () == config_control_designe_start_request ) - // START_REQUEST - return ((SdaiStart_request_ptr) _app_inst) ->assigned_action_request_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::assigned_action_request_ (const SdaiVersioned_action_request_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - { ((SdaiChange_request_ptr) _app_inst) ->assigned_action_request_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_start_request ) - // START_REQUEST - { ((SdaiStart_request_ptr) _app_inst) ->assigned_action_request_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiWork_items_ptr -SdaiPerson_organization_item::items_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - // CHANGE - return ((SdaiChange_ptr) _app_inst) ->items_(); - if( CurrentUnderlyingType () == config_control_designe_start_work ) - // START_WORK - return ((SdaiStart_work_ptr) _app_inst) ->items_(); - // CHANGE_REQUEST - // attribute access function has a different return type - // START_REQUEST - // attribute access function has a different return type - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::items_ (const SdaiWork_items_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - // CHANGE - { ((SdaiChange_ptr) _app_inst) ->items_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_start_work ) - // START_WORK - { ((SdaiStart_work_ptr) _app_inst) ->items_( x ); - return; - } - // for CHANGE_REQUEST attribute access function has a different argument type - // for START_REQUEST attribute access function has a different argument type - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiAction_ptr -SdaiPerson_organization_item::assigned_action_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - // CHANGE - return ((SdaiChange_ptr) _app_inst) ->assigned_action_(); - if( CurrentUnderlyingType () == config_control_designe_start_work ) - // START_WORK - return ((SdaiStart_work_ptr) _app_inst) ->assigned_action_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiPerson_organization_item::assigned_action_ (const SdaiAction_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - // CHANGE - { ((SdaiChange_ptr) _app_inst) ->assigned_action_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_start_work ) - // START_WORK - { ((SdaiStart_work_ptr) _app_inst) ->assigned_action_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiChange_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_change); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiStart_work_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_start_work); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiChange_request_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_change_request); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiStart_request_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_start_request); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiConfiguration_item_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_configuration_item); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiProduct_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiProduct_definition_formation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_formation); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiProduct_definition_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiContract_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_contract); - return *this; -} - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiSecurity_classification_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_security_classification); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiPerson_organization_item& SdaiPerson_organization_item::operator =( const SdaiPerson_organization_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_change ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_start_work ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_change_request ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_start_request ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_configuration_item ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_product ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_contract ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_security_classification ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiPerson_organization_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_change ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_start_work ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_change_request ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_start_request ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_configuration_item ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_product ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_contract ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_security_classification ) - _app_inst = ((SdaiPerson_organization_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiPerson_organization_item::IsChange() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_change ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsStart_work() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_start_work ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsChange_request() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_change_request ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsStart_request() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_start_request ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsConfiguration_item() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsProduct() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsProduct_definition_formation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsProduct_definition() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsContract() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_contract ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiPerson_organization_item::IsSecurity_classification() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiPerson_organization_item - - -////////// SELECT TYPE date_time_item - -const TypeDescriptor * -SdaiDate_time_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION - if (se -> IsA (config_control_designe_product_definition)) - { - _app_inst = (SdaiProduct_definition_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition); - } - // CHANGE_REQUEST - if (se -> IsA (config_control_designe_change_request)) - { - _app_inst = (SdaiChange_request_ptr) se; - return SetUnderlyingType (config_control_designe_change_request); - } - // START_REQUEST - if (se -> IsA (config_control_designe_start_request)) - { - _app_inst = (SdaiStart_request_ptr) se; - return SetUnderlyingType (config_control_designe_start_request); - } - // CHANGE - if (se -> IsA (config_control_designe_change)) - { - _app_inst = (SdaiChange_ptr) se; - return SetUnderlyingType (config_control_designe_change); - } - // START_WORK - if (se -> IsA (config_control_designe_start_work)) - { - _app_inst = (SdaiStart_work_ptr) se; - return SetUnderlyingType (config_control_designe_start_work); - } - // APPROVAL_PERSON_ORGANIZATION - if (se -> IsA (config_control_designe_approval_person_organization)) - { - _app_inst = (SdaiApproval_person_organization_ptr) se; - return SetUnderlyingType (config_control_designe_approval_person_organization); - } - // CONTRACT - if (se -> IsA (config_control_designe_contract)) - { - _app_inst = (SdaiContract_ptr) se; - return SetUnderlyingType (config_control_designe_contract); - } - // SECURITY_CLASSIFICATION - if (se -> IsA (config_control_designe_security_classification)) - { - _app_inst = (SdaiSecurity_classification_ptr) se; - return SetUnderlyingType (config_control_designe_security_classification); - } - // CERTIFICATION - if (se -> IsA (config_control_designe_certification)) - { - _app_inst = (SdaiCertification_ptr) se; - return SetUnderlyingType (config_control_designe_certification); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiDate_time_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiDate_time_item * tmp = - new( os_segment::of(this), - SdaiDate_time_item::get_os_typespec() ) - SdaiDate_time_item(); -#else - SdaiDate_time_item * tmp = new SdaiDate_time_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiDate_time_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_change_request) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_start_request) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_change) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_start_work) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_approval_person_organization) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_contract) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_security_classification) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_certification) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiDate_time_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_change_request) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_start_request) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_change) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_start_work) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_approval_person_organization) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_contract) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_security_classification) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_certification) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiDate_time_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_change_request) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_start_request) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_change) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_start_work) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_approval_person_organization) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_contract) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_security_classification) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_certification) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiDate_time_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_change_request) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_start_request) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_change) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_start_work) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_approval_person_organization) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_contract) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_security_classification) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_certification) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiDate_time_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiDate_time_item (os_database *db) -{ - return new (db, SdaiDate_time_item::get_os_typespec()) - SdaiDate_time_item ; -} - -void -SdaiDate_time_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiDate_time_item access hook funct called." << G4endl; - } -#endif - SdaiDate_time_item *s = (SdaiDate_time_item *) object; - s->_type = config_control_designt_date_time_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiDate_time_items (os_database *db) -{ - return new (db, SdaiDate_time_items::get_os_typespec()) - SdaiDate_time_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiDate_time_item::SdaiDate_time_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiDate_time_item::SdaiDate_time_item( const SdaiProduct_definition_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::SdaiDate_time_item( const SdaiChange_request_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_change_request) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::SdaiDate_time_item( const SdaiStart_request_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_start_request) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::SdaiDate_time_item( const SdaiChange_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_change) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::SdaiDate_time_item( const SdaiStart_work_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_start_work) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::SdaiDate_time_item( const SdaiApproval_person_organization_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_approval_person_organization) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::SdaiDate_time_item( const SdaiContract_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_contract) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::SdaiDate_time_item( const SdaiSecurity_classification_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_security_classification) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::SdaiDate_time_item( const SdaiCertification_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_certification) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_item constructor." << G4endl; - } -#endif -} - -SdaiDate_time_item::~SdaiDate_time_item() -{ -} - -SdaiDate_time_items::SdaiDate_time_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiDate_time_items::~SdaiDate_time_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiDate_time_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiDate_time_item::get_os_typespec() ) - SdaiDate_time_item ); -} -#endif - - - // part 2 -SdaiDate_time_item::operator SdaiProduct_definition_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return ((SdaiProduct_definition_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiDate_time_item::operator SdaiChange_request_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - return ((SdaiChange_request_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiDate_time_item::operator SdaiStart_request_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_start_request ) - return ((SdaiStart_request_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiDate_time_item::operator SdaiChange_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - return ((SdaiChange_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiDate_time_item::operator SdaiStart_work_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_start_work ) - return ((SdaiStart_work_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiDate_time_item::operator SdaiApproval_person_organization_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - return ((SdaiApproval_person_organization_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiDate_time_item::operator SdaiContract_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - return ((SdaiContract_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiDate_time_item::operator SdaiSecurity_classification_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - return ((SdaiSecurity_classification_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiDate_time_item::operator SdaiCertification_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_certification ) - return ((SdaiCertification_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiSecurity_classification_level_ptr -SdaiDate_time_item::security_level_() const -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->security_level_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::security_level_ (const SdaiSecurity_classification_level_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->security_level_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiContract_type_ptr -SdaiDate_time_item::kind_() const -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - return ((SdaiContract_ptr) _app_inst) ->kind_(); - // CERTIFICATION - // attribute access function has a different return type - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::kind_ (const SdaiContract_type_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - { ((SdaiContract_ptr) _app_inst) ->kind_( x ); - return; - } - // for CERTIFICATION attribute access function has a different argument type - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiDate_time_item::purpose_() const -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - return ((SdaiContract_ptr) _app_inst) ->purpose_(); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->purpose_(); - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - return ((SdaiCertification_ptr) _app_inst) ->purpose_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::purpose_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - { ((SdaiContract_ptr) _app_inst) ->purpose_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->purpose_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - { ((SdaiCertification_ptr) _app_inst) ->purpose_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiDate_time_item::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - return ((SdaiContract_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - return ((SdaiCertification_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - { ((SdaiContract_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - { ((SdaiCertification_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiApproval_role_ptr -SdaiDate_time_item::role_() const -{ - if( CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - // APPROVAL_PERSON_ORGANIZATION - return ((SdaiApproval_person_organization_ptr) _app_inst) ->role_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::role_ (const SdaiApproval_role_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - // APPROVAL_PERSON_ORGANIZATION - { ((SdaiApproval_person_organization_ptr) _app_inst) ->role_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiApproval_ptr -SdaiDate_time_item::authorized_approval_() const -{ - if( CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - // APPROVAL_PERSON_ORGANIZATION - return ((SdaiApproval_person_organization_ptr) _app_inst) ->authorized_approval_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::authorized_approval_ (const SdaiApproval_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - // APPROVAL_PERSON_ORGANIZATION - { ((SdaiApproval_person_organization_ptr) _app_inst) ->authorized_approval_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiPerson_organization_select_ptr -SdaiDate_time_item::person_organization_() const -{ - if( CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - // APPROVAL_PERSON_ORGANIZATION - return ((SdaiApproval_person_organization_ptr) _app_inst) ->person_organization_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::person_organization_ (const SdaiPerson_organization_select_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - // APPROVAL_PERSON_ORGANIZATION - { ((SdaiApproval_person_organization_ptr) _app_inst) ->person_organization_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiAction_ptr -SdaiDate_time_item::assigned_action_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - // CHANGE - return ((SdaiChange_ptr) _app_inst) ->assigned_action_(); - if( CurrentUnderlyingType () == config_control_designe_start_work ) - // START_WORK - return ((SdaiStart_work_ptr) _app_inst) ->assigned_action_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::assigned_action_ (const SdaiAction_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - // CHANGE - { ((SdaiChange_ptr) _app_inst) ->assigned_action_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_start_work ) - // START_WORK - { ((SdaiStart_work_ptr) _app_inst) ->assigned_action_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiChange_request_items_ptr -SdaiDate_time_item::items_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - return ((SdaiChange_request_ptr) _app_inst) ->items_(); - // START_REQUEST - // attribute access function has a different return type - // CHANGE - // attribute access function has a different return type - // START_WORK - // attribute access function has a different return type - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::items_ (const SdaiChange_request_items_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - { ((SdaiChange_request_ptr) _app_inst) ->items_( x ); - return; - } - // for START_REQUEST attribute access function has a different argument type - // for CHANGE attribute access function has a different argument type - // for START_WORK attribute access function has a different argument type - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiVersioned_action_request_ptr -SdaiDate_time_item::assigned_action_request_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - return ((SdaiChange_request_ptr) _app_inst) ->assigned_action_request_(); - if( CurrentUnderlyingType () == config_control_designe_start_request ) - // START_REQUEST - return ((SdaiStart_request_ptr) _app_inst) ->assigned_action_request_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::assigned_action_request_ (const SdaiVersioned_action_request_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - { ((SdaiChange_request_ptr) _app_inst) ->assigned_action_request_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_start_request ) - // START_REQUEST - { ((SdaiStart_request_ptr) _app_inst) ->assigned_action_request_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_context_ptr -SdaiDate_time_item::frame_of_reference_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->frame_of_reference_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::frame_of_reference_ (const SdaiProduct_definition_context_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->frame_of_reference_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_formation_ptr -SdaiDate_time_item::formation_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->formation_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::formation_ (const SdaiProduct_definition_formation_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->formation_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiDate_time_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiDate_time_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiProduct_definition_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition); - return *this; -} - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiChange_request_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_change_request); - return *this; -} - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiStart_request_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_start_request); - return *this; -} - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiChange_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_change); - return *this; -} - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiStart_work_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_start_work); - return *this; -} - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiApproval_person_organization_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_approval_person_organization); - return *this; -} - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiContract_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_contract); - return *this; -} - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiSecurity_classification_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_security_classification); - return *this; -} - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiCertification_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_certification); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiDate_time_item& SdaiDate_time_item::operator =( const SdaiDate_time_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_change_request ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_start_request ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_change ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_start_work ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_contract ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_security_classification ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_certification ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiDate_time_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_change_request ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_start_request ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_change ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_start_work ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_contract ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_security_classification ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_certification ) - _app_inst = ((SdaiDate_time_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiDate_time_item::IsProduct_definition() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiDate_time_item::IsChange_request() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_change_request ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiDate_time_item::IsStart_request() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_start_request ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiDate_time_item::IsChange() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_change ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiDate_time_item::IsStart_work() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_start_work ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiDate_time_item::IsApproval_person_organization() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_approval_person_organization ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiDate_time_item::IsContract() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_contract ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiDate_time_item::IsSecurity_classification() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiDate_time_item::IsCertification() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_certification ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiDate_time_item - - -////////// SELECT TYPE shell - -const TypeDescriptor * -SdaiShell::AssignEntity (SCLP23(Application_instance) * se) -{ - // OPEN_SHELL - if (se -> IsA (config_control_designe_open_shell)) - { - _app_inst = (SdaiOpen_shell_ptr) se; - return SetUnderlyingType (config_control_designe_open_shell); - } - // CLOSED_SHELL - if (se -> IsA (config_control_designe_closed_shell)) - { - _app_inst = (SdaiClosed_shell_ptr) se; - return SetUnderlyingType (config_control_designe_closed_shell); - } - // VERTEX_SHELL - if (se -> IsA (config_control_designe_vertex_shell)) - { - _app_inst = (SdaiVertex_shell_ptr) se; - return SetUnderlyingType (config_control_designe_vertex_shell); - } - // WIRE_SHELL - if (se -> IsA (config_control_designe_wire_shell)) - { - _app_inst = (SdaiWire_shell_ptr) se; - return SetUnderlyingType (config_control_designe_wire_shell); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiShell::NewSelect () -{ -#ifdef __OSTORE__ - SdaiShell * tmp = - new( os_segment::of(this), - SdaiShell::get_os_typespec() ) - SdaiShell(); -#else - SdaiShell * tmp = new SdaiShell(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiShell::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_open_shell) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_closed_shell) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_vertex_shell) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_wire_shell) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiShell::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_open_shell) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_closed_shell) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_vertex_shell) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_wire_shell) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiShell::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_open_shell) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_closed_shell) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_vertex_shell) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_wire_shell) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiShell::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_open_shell) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_closed_shell) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_vertex_shell) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_wire_shell) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiShell::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiShell (os_database *db) -{ - return new (db, SdaiShell::get_os_typespec()) - SdaiShell ; -} - -void -SdaiShell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiShell access hook funct called." << G4endl; - } -#endif - SdaiShell *s = (SdaiShell *) object; - s->_type = config_control_designt_shell; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiShells (os_database *db) -{ - return new (db, SdaiShells::get_os_typespec()) - SdaiShells ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiShell::SdaiShell( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShell constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShell constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiShell::SdaiShell( const SdaiOpen_shell_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_open_shell) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShell constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShell constructor." << G4endl; - } -#endif -} - -SdaiShell::SdaiShell( const SdaiClosed_shell_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_closed_shell) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShell constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShell constructor." << G4endl; - } -#endif -} - -SdaiShell::SdaiShell( const SdaiVertex_shell_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_vertex_shell) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShell constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShell constructor." << G4endl; - } -#endif -} - -SdaiShell::SdaiShell( const SdaiWire_shell_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_wire_shell) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiShell constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiShell constructor." << G4endl; - } -#endif -} - -SdaiShell::~SdaiShell() -{ -} - -SdaiShells::SdaiShells( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiShells::~SdaiShells() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiShells::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiShell::get_os_typespec() ) - SdaiShell ); -} -#endif - - - // part 2 -SdaiShell::operator SdaiOpen_shell_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - return ((SdaiOpen_shell_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiShell::operator SdaiClosed_shell_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - return ((SdaiClosed_shell_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiShell::operator SdaiVertex_shell_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_vertex_shell ) - return ((SdaiVertex_shell_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiShell::operator SdaiWire_shell_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_wire_shell ) - return ((SdaiWire_shell_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const EntityAggregate_ptr -SdaiShell::wire_shell_extent_() const -{ - if( CurrentUnderlyingType () == config_control_designe_wire_shell ) - // WIRE_SHELL - return ((SdaiWire_shell_ptr) _app_inst) ->wire_shell_extent_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShell::wire_shell_extent_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_wire_shell ) - // WIRE_SHELL - { ((SdaiWire_shell_ptr) _app_inst) ->wire_shell_extent_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiVertex_loop_ptr -SdaiShell::vertex_shell_extent_() const -{ - if( CurrentUnderlyingType () == config_control_designe_vertex_shell ) - // VERTEX_SHELL - return ((SdaiVertex_shell_ptr) _app_inst) ->vertex_shell_extent_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShell::vertex_shell_extent_ (const SdaiVertex_loop_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_vertex_shell ) - // VERTEX_SHELL - { ((SdaiVertex_shell_ptr) _app_inst) ->vertex_shell_extent_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const EntityAggregate_ptr -SdaiShell::cfs_faces_() const -{ - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - // OPEN_SHELL - return ((SdaiOpen_shell_ptr) _app_inst) ->cfs_faces_(); - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - // CLOSED_SHELL - return ((SdaiClosed_shell_ptr) _app_inst) ->cfs_faces_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShell::cfs_faces_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - // OPEN_SHELL - { ((SdaiOpen_shell_ptr) _app_inst) ->cfs_faces_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - // CLOSED_SHELL - { ((SdaiClosed_shell_ptr) _app_inst) ->cfs_faces_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiShell::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - // OPEN_SHELL - return ((SdaiOpen_shell_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - // CLOSED_SHELL - return ((SdaiClosed_shell_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_vertex_shell ) - // VERTEX_SHELL - return ((SdaiVertex_shell_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_wire_shell ) - // WIRE_SHELL - return ((SdaiWire_shell_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiShell::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - // OPEN_SHELL - { ((SdaiOpen_shell_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - // CLOSED_SHELL - { ((SdaiClosed_shell_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_vertex_shell ) - // VERTEX_SHELL - { ((SdaiVertex_shell_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_wire_shell ) - // WIRE_SHELL - { ((SdaiWire_shell_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiShell& SdaiShell::operator =( const SdaiOpen_shell_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_open_shell); - return *this; -} - -SdaiShell& SdaiShell::operator =( const SdaiClosed_shell_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_closed_shell); - return *this; -} - -SdaiShell& SdaiShell::operator =( const SdaiVertex_shell_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_vertex_shell); - return *this; -} - -SdaiShell& SdaiShell::operator =( const SdaiWire_shell_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_wire_shell); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiShell& SdaiShell::operator =( const SdaiShell_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_open_shell ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_closed_shell ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_vertex_shell ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_wire_shell ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiShell::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_open_shell ) - _app_inst = ((SdaiShell&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_closed_shell ) - _app_inst = ((SdaiShell&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_vertex_shell ) - _app_inst = ((SdaiShell&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_wire_shell ) - _app_inst = ((SdaiShell&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiShell::IsOpen_shell() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_open_shell ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiShell::IsClosed_shell() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_closed_shell ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiShell::IsVertex_shell() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_vertex_shell ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiShell::IsWire_shell() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_wire_shell ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiShell - - -////////// SELECT TYPE transformation - -const TypeDescriptor * -SdaiTransformation::AssignEntity (SCLP23(Application_instance) * se) -{ - // ITEM_DEFINED_TRANSFORMATION - if (se -> IsA (config_control_designe_item_defined_transformation)) - { - _app_inst = (SdaiItem_defined_transformation_ptr) se; - return SetUnderlyingType (config_control_designe_item_defined_transformation); - } - // FUNCTIONALLY_DEFINED_TRANSFORMATION - if (se -> IsA (config_control_designe_functionally_defined_transformation)) - { - _app_inst = (SdaiFunctionally_defined_transformation_ptr) se; - return SetUnderlyingType (config_control_designe_functionally_defined_transformation); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiTransformation::NewSelect () -{ -#ifdef __OSTORE__ - SdaiTransformation * tmp = - new( os_segment::of(this), - SdaiTransformation::get_os_typespec() ) - SdaiTransformation(); -#else - SdaiTransformation * tmp = new SdaiTransformation(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiTransformation::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_item_defined_transformation) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiTransformation::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_item_defined_transformation) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_functionally_defined_transformation) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiTransformation::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_item_defined_transformation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_functionally_defined_transformation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiTransformation::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_item_defined_transformation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiTransformation::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiTransformation (os_database *db) -{ - return new (db, SdaiTransformation::get_os_typespec()) - SdaiTransformation ; -} - -void -SdaiTransformation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiTransformation access hook funct called." << G4endl; - } -#endif - SdaiTransformation *s = (SdaiTransformation *) object; - s->_type = config_control_designt_transformation; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiTransformations (os_database *db) -{ - return new (db, SdaiTransformations::get_os_typespec()) - SdaiTransformations ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiTransformation::SdaiTransformation( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiTransformation constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiTransformation constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiTransformation::SdaiTransformation( const SdaiItem_defined_transformation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_item_defined_transformation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiTransformation constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiTransformation constructor." << G4endl; - } -#endif -} - -SdaiTransformation::SdaiTransformation( const SdaiFunctionally_defined_transformation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_functionally_defined_transformation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiTransformation constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiTransformation constructor." << G4endl; - } -#endif -} - -SdaiTransformation::~SdaiTransformation() -{ -} - -SdaiTransformations::SdaiTransformations( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiTransformations::~SdaiTransformations() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiTransformations::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiTransformation::get_os_typespec() ) - SdaiTransformation ); -} -#endif - - - // part 2 -SdaiTransformation::operator SdaiItem_defined_transformation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - return ((SdaiItem_defined_transformation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiTransformation::operator SdaiFunctionally_defined_transformation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation ) - return ((SdaiFunctionally_defined_transformation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiRepresentation_item_ptr -SdaiTransformation::transform_item_2_() const -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - // ITEM_DEFINED_TRANSFORMATION - return ((SdaiItem_defined_transformation_ptr) _app_inst) ->transform_item_2_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiTransformation::transform_item_2_ (const SdaiRepresentation_item_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - // ITEM_DEFINED_TRANSFORMATION - { ((SdaiItem_defined_transformation_ptr) _app_inst) ->transform_item_2_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiRepresentation_item_ptr -SdaiTransformation::transform_item_1_() const -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - // ITEM_DEFINED_TRANSFORMATION - return ((SdaiItem_defined_transformation_ptr) _app_inst) ->transform_item_1_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiTransformation::transform_item_1_ (const SdaiRepresentation_item_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - // ITEM_DEFINED_TRANSFORMATION - { ((SdaiItem_defined_transformation_ptr) _app_inst) ->transform_item_1_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiTransformation::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - // ITEM_DEFINED_TRANSFORMATION - return ((SdaiItem_defined_transformation_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation ) - // FUNCTIONALLY_DEFINED_TRANSFORMATION - return ((SdaiFunctionally_defined_transformation_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiTransformation::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - // ITEM_DEFINED_TRANSFORMATION - { ((SdaiItem_defined_transformation_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation ) - // FUNCTIONALLY_DEFINED_TRANSFORMATION - { ((SdaiFunctionally_defined_transformation_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiTransformation::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - // ITEM_DEFINED_TRANSFORMATION - return ((SdaiItem_defined_transformation_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation ) - // FUNCTIONALLY_DEFINED_TRANSFORMATION - return ((SdaiFunctionally_defined_transformation_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiTransformation::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - // ITEM_DEFINED_TRANSFORMATION - { ((SdaiItem_defined_transformation_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation ) - // FUNCTIONALLY_DEFINED_TRANSFORMATION - { ((SdaiFunctionally_defined_transformation_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiTransformation& SdaiTransformation::operator =( const SdaiItem_defined_transformation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_item_defined_transformation); - return *this; -} - -SdaiTransformation& SdaiTransformation::operator =( const SdaiFunctionally_defined_transformation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_functionally_defined_transformation); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiTransformation& SdaiTransformation::operator =( const SdaiTransformation_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiTransformation::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - _app_inst = ((SdaiTransformation&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation ) - _app_inst = ((SdaiTransformation&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiTransformation::IsItem_defined_transformation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_item_defined_transformation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiTransformation::IsFunctionally_defined_transformation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_functionally_defined_transformation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiTransformation - - -////////// SELECT TYPE boolean_operand - -const TypeDescriptor * -SdaiBoolean_operand::AssignEntity (SCLP23(Application_instance) * se) -{ - // SOLID_MODEL - if (se -> IsA (config_control_designe_solid_model)) - { - _app_inst = (SdaiSolid_model_ptr) se; - return SetUnderlyingType (config_control_designe_solid_model); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiBoolean_operand::NewSelect () -{ -#ifdef __OSTORE__ - SdaiBoolean_operand * tmp = - new( os_segment::of(this), - SdaiBoolean_operand::get_os_typespec() ) - SdaiBoolean_operand(); -#else - SdaiBoolean_operand * tmp = new SdaiBoolean_operand(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiBoolean_operand::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_solid_model) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiBoolean_operand::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_solid_model) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiBoolean_operand::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_solid_model) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiBoolean_operand::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_solid_model) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiBoolean_operand::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiBoolean_operand (os_database *db) -{ - return new (db, SdaiBoolean_operand::get_os_typespec()) - SdaiBoolean_operand ; -} - -void -SdaiBoolean_operand_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiBoolean_operand access hook funct called." << G4endl; - } -#endif - SdaiBoolean_operand *s = (SdaiBoolean_operand *) object; - s->_type = config_control_designt_boolean_operand; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiBoolean_operands (os_database *db) -{ - return new (db, SdaiBoolean_operands::get_os_typespec()) - SdaiBoolean_operands ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiBoolean_operand::SdaiBoolean_operand( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiBoolean_operand constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiBoolean_operand constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiBoolean_operand::SdaiBoolean_operand( const SdaiSolid_model_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_solid_model) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiBoolean_operand constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiBoolean_operand constructor." << G4endl; - } -#endif -} - -SdaiBoolean_operand::~SdaiBoolean_operand() -{ -} - -SdaiBoolean_operands::SdaiBoolean_operands( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiBoolean_operands::~SdaiBoolean_operands() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiBoolean_operands::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiBoolean_operand::get_os_typespec() ) - SdaiBoolean_operand ); -} -#endif - - - // part 2 -SdaiBoolean_operand::operator SdaiSolid_model_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_solid_model ) - return ((SdaiSolid_model_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiLabel -SdaiBoolean_operand::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_solid_model ) - // SOLID_MODEL - return ((SdaiSolid_model_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiBoolean_operand::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_solid_model ) - // SOLID_MODEL - { ((SdaiSolid_model_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiBoolean_operand& SdaiBoolean_operand::operator =( const SdaiSolid_model_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_solid_model); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiBoolean_operand& SdaiBoolean_operand::operator =( const SdaiBoolean_operand_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_solid_model ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiBoolean_operand::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_solid_model ) - _app_inst = ((SdaiBoolean_operand&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiBoolean_operand::IsSolid_model() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_solid_model ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiBoolean_operand - - -////////// SELECT TYPE certified_item - -const TypeDescriptor * -SdaiCertified_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // SUPPLIED_PART_RELATIONSHIP - if (se -> IsA (config_control_designe_supplied_part_relationship)) - { - _app_inst = (SdaiSupplied_part_relationship_ptr) se; - return SetUnderlyingType (config_control_designe_supplied_part_relationship); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiCertified_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiCertified_item * tmp = - new( os_segment::of(this), - SdaiCertified_item::get_os_typespec() ) - SdaiCertified_item(); -#else - SdaiCertified_item * tmp = new SdaiCertified_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiCertified_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_supplied_part_relationship) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiCertified_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_supplied_part_relationship) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiCertified_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_supplied_part_relationship) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiCertified_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_supplied_part_relationship) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiCertified_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiCertified_item (os_database *db) -{ - return new (db, SdaiCertified_item::get_os_typespec()) - SdaiCertified_item ; -} - -void -SdaiCertified_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiCertified_item access hook funct called." << G4endl; - } -#endif - SdaiCertified_item *s = (SdaiCertified_item *) object; - s->_type = config_control_designt_certified_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiCertified_items (os_database *db) -{ - return new (db, SdaiCertified_items::get_os_typespec()) - SdaiCertified_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiCertified_item::SdaiCertified_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCertified_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCertified_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiCertified_item::SdaiCertified_item( const SdaiSupplied_part_relationship_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_supplied_part_relationship) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCertified_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCertified_item constructor." << G4endl; - } -#endif -} - -SdaiCertified_item::~SdaiCertified_item() -{ -} - -SdaiCertified_items::SdaiCertified_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiCertified_items::~SdaiCertified_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiCertified_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiCertified_item::get_os_typespec() ) - SdaiCertified_item ); -} -#endif - - - // part 2 -SdaiCertified_item::operator SdaiSupplied_part_relationship_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - return ((SdaiSupplied_part_relationship_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiProduct_definition_ptr -SdaiCertified_item::related_product_definition_() const -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - return ((SdaiSupplied_part_relationship_ptr) _app_inst) ->related_product_definition_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCertified_item::related_product_definition_ (const SdaiProduct_definition_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - { ((SdaiSupplied_part_relationship_ptr) _app_inst) ->related_product_definition_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_ptr -SdaiCertified_item::relating_product_definition_() const -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - return ((SdaiSupplied_part_relationship_ptr) _app_inst) ->relating_product_definition_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCertified_item::relating_product_definition_ (const SdaiProduct_definition_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - { ((SdaiSupplied_part_relationship_ptr) _app_inst) ->relating_product_definition_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiCertified_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - return ((SdaiSupplied_part_relationship_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCertified_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - { ((SdaiSupplied_part_relationship_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiCertified_item::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - return ((SdaiSupplied_part_relationship_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCertified_item::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - { ((SdaiSupplied_part_relationship_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiCertified_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - return ((SdaiSupplied_part_relationship_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCertified_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - // SUPPLIED_PART_RELATIONSHIP - { ((SdaiSupplied_part_relationship_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiCertified_item& SdaiCertified_item::operator =( const SdaiSupplied_part_relationship_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_supplied_part_relationship); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiCertified_item& SdaiCertified_item::operator =( const SdaiCertified_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiCertified_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - _app_inst = ((SdaiCertified_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiCertified_item::IsSupplied_part_relationship() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_supplied_part_relationship ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiCertified_item - - -////////// SELECT TYPE date_time_select - -const TypeDescriptor * -SdaiDate_time_select::AssignEntity (SCLP23(Application_instance) * se) -{ - // DATE_AND_TIME - if (se -> IsA (config_control_designe_date_and_time)) - { - _app_inst = (SdaiDate_and_time_ptr) se; - return SetUnderlyingType (config_control_designe_date_and_time); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiDate_time_select::NewSelect () -{ -#ifdef __OSTORE__ - SdaiDate_time_select * tmp = - new( os_segment::of(this), - SdaiDate_time_select::get_os_typespec() ) - SdaiDate_time_select(); -#else - SdaiDate_time_select * tmp = new SdaiDate_time_select(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiDate_time_select::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_date_and_time) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiDate_time_select::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_date_and_time) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiDate_time_select::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_date_and_time) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiDate_time_select::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_date_and_time) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiDate_time_select::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiDate_time_select (os_database *db) -{ - return new (db, SdaiDate_time_select::get_os_typespec()) - SdaiDate_time_select ; -} - -void -SdaiDate_time_select_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiDate_time_select access hook funct called." << G4endl; - } -#endif - SdaiDate_time_select *s = (SdaiDate_time_select *) object; - s->_type = config_control_designt_date_time_select; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiDate_time_selects (os_database *db) -{ - return new (db, SdaiDate_time_selects::get_os_typespec()) - SdaiDate_time_selects ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiDate_time_select::SdaiDate_time_select( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_select constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_select constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiDate_time_select::SdaiDate_time_select( const SdaiDate_and_time_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_date_and_time) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiDate_time_select constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiDate_time_select constructor." << G4endl; - } -#endif -} - -SdaiDate_time_select::~SdaiDate_time_select() -{ -} - -SdaiDate_time_selects::SdaiDate_time_selects( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiDate_time_selects::~SdaiDate_time_selects() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiDate_time_selects::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiDate_time_select::get_os_typespec() ) - SdaiDate_time_select ); -} -#endif - - - // part 2 -SdaiDate_time_select::operator SdaiDate_and_time_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_date_and_time ) - return ((SdaiDate_and_time_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiLocal_time_ptr -SdaiDate_time_select::time_component_() const -{ - if( CurrentUnderlyingType () == config_control_designe_date_and_time ) - // DATE_AND_TIME - return ((SdaiDate_and_time_ptr) _app_inst) ->time_component_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_select::time_component_ (const SdaiLocal_time_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_date_and_time ) - // DATE_AND_TIME - { ((SdaiDate_and_time_ptr) _app_inst) ->time_component_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiDate_ptr -SdaiDate_time_select::date_component_() const -{ - if( CurrentUnderlyingType () == config_control_designe_date_and_time ) - // DATE_AND_TIME - return ((SdaiDate_and_time_ptr) _app_inst) ->date_component_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiDate_time_select::date_component_ (const SdaiDate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_date_and_time ) - // DATE_AND_TIME - { ((SdaiDate_and_time_ptr) _app_inst) ->date_component_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiDate_time_select& SdaiDate_time_select::operator =( const SdaiDate_and_time_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_date_and_time); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiDate_time_select& SdaiDate_time_select::operator =( const SdaiDate_time_select_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_date_and_time ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiDate_time_select::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_date_and_time ) - _app_inst = ((SdaiDate_time_select&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiDate_time_select::IsDate_and_time() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_date_and_time ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiDate_time_select - - -////////// SELECT TYPE curve_on_surface - -const TypeDescriptor * -SdaiCurve_on_surface::AssignEntity (SCLP23(Application_instance) * se) -{ - // PCURVE - if (se -> IsA (config_control_designe_pcurve)) - { - _app_inst = (SdaiPcurve_ptr) se; - return SetUnderlyingType (config_control_designe_pcurve); - } - // SURFACE_CURVE - if (se -> IsA (config_control_designe_surface_curve)) - { - _app_inst = (SdaiSurface_curve_ptr) se; - return SetUnderlyingType (config_control_designe_surface_curve); - } - // COMPOSITE_CURVE_ON_SURFACE - if (se -> IsA (config_control_designe_composite_curve_on_surface)) - { - _app_inst = (SdaiComposite_curve_on_surface_ptr) se; - return SetUnderlyingType (config_control_designe_composite_curve_on_surface); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiCurve_on_surface::NewSelect () -{ -#ifdef __OSTORE__ - SdaiCurve_on_surface * tmp = - new( os_segment::of(this), - SdaiCurve_on_surface::get_os_typespec() ) - SdaiCurve_on_surface(); -#else - SdaiCurve_on_surface * tmp = new SdaiCurve_on_surface(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiCurve_on_surface::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_pcurve) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_surface_curve) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiCurve_on_surface::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_pcurve) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_surface_curve) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_composite_curve_on_surface) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiCurve_on_surface::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_pcurve) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_surface_curve) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_composite_curve_on_surface) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiCurve_on_surface::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_pcurve) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_surface_curve) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiCurve_on_surface::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiCurve_on_surface (os_database *db) -{ - return new (db, SdaiCurve_on_surface::get_os_typespec()) - SdaiCurve_on_surface ; -} - -void -SdaiCurve_on_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiCurve_on_surface access hook funct called." << G4endl; - } -#endif - SdaiCurve_on_surface *s = (SdaiCurve_on_surface *) object; - s->_type = config_control_designt_curve_on_surface; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiCurve_on_surfaces (os_database *db) -{ - return new (db, SdaiCurve_on_surfaces::get_os_typespec()) - SdaiCurve_on_surfaces ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiCurve_on_surface::SdaiCurve_on_surface( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCurve_on_surface constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCurve_on_surface constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiCurve_on_surface::SdaiCurve_on_surface( const SdaiPcurve_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_pcurve) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCurve_on_surface constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCurve_on_surface constructor." << G4endl; - } -#endif -} - -SdaiCurve_on_surface::SdaiCurve_on_surface( const SdaiSurface_curve_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_surface_curve) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCurve_on_surface constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCurve_on_surface constructor." << G4endl; - } -#endif -} - -SdaiCurve_on_surface::SdaiCurve_on_surface( const SdaiComposite_curve_on_surface_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_composite_curve_on_surface) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiCurve_on_surface constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiCurve_on_surface constructor." << G4endl; - } -#endif -} - -SdaiCurve_on_surface::~SdaiCurve_on_surface() -{ -} - -SdaiCurve_on_surfaces::SdaiCurve_on_surfaces( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiCurve_on_surfaces::~SdaiCurve_on_surfaces() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiCurve_on_surfaces::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiCurve_on_surface::get_os_typespec() ) - SdaiCurve_on_surface ); -} -#endif - - - // part 2 -SdaiCurve_on_surface::operator SdaiPcurve_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - return ((SdaiPcurve_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiCurve_on_surface::operator SdaiSurface_curve_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - return ((SdaiSurface_curve_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiCurve_on_surface::operator SdaiComposite_curve_on_surface_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - return ((SdaiComposite_curve_on_surface_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SCLLOG(Logical) -SdaiCurve_on_surface::self_intersect_() const -{ - if( CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - // COMPOSITE_CURVE_ON_SURFACE - return ((SdaiComposite_curve_on_surface_ptr) _app_inst) ->self_intersect_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return (SCLLOG(Logical)) 0; -} - - -void -SdaiCurve_on_surface::self_intersect_ (const SCLLOG(Logical) x) - -{ - if( CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - // COMPOSITE_CURVE_ON_SURFACE - { ((SdaiComposite_curve_on_surface_ptr) _app_inst) ->self_intersect_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const EntityAggregate_ptr -SdaiCurve_on_surface::segments_() const -{ - if( CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - // COMPOSITE_CURVE_ON_SURFACE - return ((SdaiComposite_curve_on_surface_ptr) _app_inst) ->segments_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCurve_on_surface::segments_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - // COMPOSITE_CURVE_ON_SURFACE - { ((SdaiComposite_curve_on_surface_ptr) _app_inst) ->segments_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiPreferred_surface_curve_representation_var -SdaiCurve_on_surface::master_representation_() const -{ - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - // SURFACE_CURVE - return ((SdaiSurface_curve_ptr) _app_inst) ->master_representation_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return (Preferred_surface_curve_representation) 0; -} - - -void -SdaiCurve_on_surface::master_representation_ (const SdaiPreferred_surface_curve_representation_var x) - -{ - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - // SURFACE_CURVE - { ((SdaiSurface_curve_ptr) _app_inst) ->master_representation_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiPcurve_or_surfaces_ptr -SdaiCurve_on_surface::associated_geometry_() const -{ - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - // SURFACE_CURVE - return ((SdaiSurface_curve_ptr) _app_inst) ->associated_geometry_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCurve_on_surface::associated_geometry_ (const SdaiPcurve_or_surfaces_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - // SURFACE_CURVE - { ((SdaiSurface_curve_ptr) _app_inst) ->associated_geometry_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiCurve_ptr -SdaiCurve_on_surface::curve_3d_() const -{ - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - // SURFACE_CURVE - return ((SdaiSurface_curve_ptr) _app_inst) ->curve_3d_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCurve_on_surface::curve_3d_ (const SdaiCurve_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - // SURFACE_CURVE - { ((SdaiSurface_curve_ptr) _app_inst) ->curve_3d_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiDefinitional_representation_ptr -SdaiCurve_on_surface::reference_to_curve_() const -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - return ((SdaiPcurve_ptr) _app_inst) ->reference_to_curve_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCurve_on_surface::reference_to_curve_ (const SdaiDefinitional_representation_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - { ((SdaiPcurve_ptr) _app_inst) ->reference_to_curve_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiSurface_ptr -SdaiCurve_on_surface::basis_surface_() const -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - return ((SdaiPcurve_ptr) _app_inst) ->basis_surface_(); - // for SURFACE_CURVE attribute is derived - // for COMPOSITE_CURVE_ON_SURFACE attribute is derived - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCurve_on_surface::basis_surface_ (const SdaiSurface_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - { ((SdaiPcurve_ptr) _app_inst) ->basis_surface_( x ); - return; - } - // for SURFACE_CURVE attribute is derived - // for COMPOSITE_CURVE_ON_SURFACE attribute is derived - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiCurve_on_surface::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - return ((SdaiPcurve_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - // SURFACE_CURVE - return ((SdaiSurface_curve_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - // COMPOSITE_CURVE_ON_SURFACE - return ((SdaiComposite_curve_on_surface_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiCurve_on_surface::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - // PCURVE - { ((SdaiPcurve_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - // SURFACE_CURVE - { ((SdaiSurface_curve_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - // COMPOSITE_CURVE_ON_SURFACE - { ((SdaiComposite_curve_on_surface_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiCurve_on_surface& SdaiCurve_on_surface::operator =( const SdaiPcurve_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_pcurve); - return *this; -} - -SdaiCurve_on_surface& SdaiCurve_on_surface::operator =( const SdaiSurface_curve_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_surface_curve); - return *this; -} - -SdaiCurve_on_surface& SdaiCurve_on_surface::operator =( const SdaiComposite_curve_on_surface_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_composite_curve_on_surface); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiCurve_on_surface& SdaiCurve_on_surface::operator =( const SdaiCurve_on_surface_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_pcurve ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_surface_curve ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiCurve_on_surface::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_pcurve ) - _app_inst = ((SdaiCurve_on_surface&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_surface_curve ) - _app_inst = ((SdaiCurve_on_surface&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - _app_inst = ((SdaiCurve_on_surface&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiCurve_on_surface::IsPcurve() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_pcurve ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiCurve_on_surface::IsSurface_curve() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_surface_curve ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiCurve_on_surface::IsComposite_curve_on_surface() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_composite_curve_on_surface ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiCurve_on_surface - - -////////// SELECT TYPE trimming_select - -const TypeDescriptor * -SdaiTrimming_select::AssignEntity (SCLP23(Application_instance) * se) -{ - // CARTESIAN_POINT - if (se -> IsA (config_control_designe_cartesian_point)) - { - _app_inst = (SdaiCartesian_point_ptr) se; - return SetUnderlyingType (config_control_designe_cartesian_point); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiTrimming_select::NewSelect () -{ -#ifdef __OSTORE__ - SdaiTrimming_select * tmp = - new( os_segment::of(this), - SdaiTrimming_select::get_os_typespec() ) - SdaiTrimming_select(); -#else - SdaiTrimming_select * tmp = new SdaiTrimming_select(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiTrimming_select::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_cartesian_point) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designt_parameter_value) - WriteReal(_real,out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiTrimming_select::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_cartesian_point) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designt_parameter_value) - return sdaiREAL; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiTrimming_select::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_cartesian_point) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designt_parameter_value) - { - out << tmp.chars() << "("; - WriteReal(_real,out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiTrimming_select::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_cartesian_point) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designt_parameter_value) { - ReadReal (_real, in, &_error, (char*)"),"); - return severity (); - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiTrimming_select::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiTrimming_select (os_database *db) -{ - return new (db, SdaiTrimming_select::get_os_typespec()) - SdaiTrimming_select ; -} - -void -SdaiTrimming_select_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiTrimming_select access hook funct called." << G4endl; - } -#endif - SdaiTrimming_select *s = (SdaiTrimming_select *) object; - s->_type = config_control_designt_trimming_select; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiTrimming_selects (os_database *db) -{ - return new (db, SdaiTrimming_selects::get_os_typespec()) - SdaiTrimming_selects ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiTrimming_select::SdaiTrimming_select( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiTrimming_select constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiTrimming_select constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiTrimming_select::SdaiTrimming_select( const SdaiCartesian_point_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_cartesian_point) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiTrimming_select constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiTrimming_select constructor." << G4endl; - } -#endif -} - -SdaiTrimming_select::SdaiTrimming_select( const SdaiParameter_value& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designt_parameter_value) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiTrimming_select constructor." << G4endl; - } -#endif - _real = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiTrimming_select constructor." << G4endl; - } -#endif -} - -SdaiTrimming_select::~SdaiTrimming_select() -{ -} - -SdaiTrimming_selects::SdaiTrimming_selects( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiTrimming_selects::~SdaiTrimming_selects() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiTrimming_selects::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiTrimming_select::get_os_typespec() ) - SdaiTrimming_select ); -} -#endif - - - // part 2 -SdaiTrimming_select::operator SdaiCartesian_point_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_cartesian_point ) - return ((SdaiCartesian_point_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiTrimming_select::operator SdaiParameter_value() -{ - if( CurrentUnderlyingType () == config_control_designt_parameter_value ) - return _real; - - severity( SEVERITY_WARNING ); - Error( (char*)"Underlying type is not SdaiParameter_value" ); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return 0; -} - - - // part 3 - -const RealAggregate_ptr -SdaiTrimming_select::coordinates_() const -{ - if( CurrentUnderlyingType () == config_control_designe_cartesian_point ) - // CARTESIAN_POINT - return ((SdaiCartesian_point_ptr) _app_inst) ->coordinates_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiTrimming_select::coordinates_ (const RealAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_cartesian_point ) - // CARTESIAN_POINT - { ((SdaiCartesian_point_ptr) _app_inst) ->coordinates_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiTrimming_select::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_cartesian_point ) - // CARTESIAN_POINT - return ((SdaiCartesian_point_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiTrimming_select::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_cartesian_point ) - // CARTESIAN_POINT - { ((SdaiCartesian_point_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiTrimming_select& SdaiTrimming_select::operator =( const SdaiCartesian_point_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_cartesian_point); - return *this; -} - -SdaiTrimming_select& SdaiTrimming_select::operator =( const SdaiParameter_value& o ) -{ - nullify (); - _real = o; - SetUnderlyingType (config_control_designt_parameter_value); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiTrimming_select& SdaiTrimming_select::operator =( const SdaiTrimming_select_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_cartesian_point ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designt_parameter_value ) - _real = o -> _real; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiTrimming_select::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_cartesian_point ) - _app_inst = ((SdaiTrimming_select&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designt_parameter_value ) - _real = ((SdaiTrimming_select&) o)._real; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiTrimming_select::IsCartesian_point() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_cartesian_point ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiTrimming_select::IsParameter_value() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_parameter_value ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiTrimming_select - - -////////// SELECT TYPE contracted_item - -const TypeDescriptor * -SdaiContracted_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION_FORMATION - if (se -> IsA (config_control_designe_product_definition_formation)) - { - _app_inst = (SdaiProduct_definition_formation_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_formation); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiContracted_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiContracted_item * tmp = - new( os_segment::of(this), - SdaiContracted_item::get_os_typespec() ) - SdaiContracted_item(); -#else - SdaiContracted_item * tmp = new SdaiContracted_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiContracted_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiContracted_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition_formation) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiContracted_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition_formation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiContracted_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiContracted_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiContracted_item (os_database *db) -{ - return new (db, SdaiContracted_item::get_os_typespec()) - SdaiContracted_item ; -} - -void -SdaiContracted_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiContracted_item access hook funct called." << G4endl; - } -#endif - SdaiContracted_item *s = (SdaiContracted_item *) object; - s->_type = config_control_designt_contracted_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiContracted_items (os_database *db) -{ - return new (db, SdaiContracted_items::get_os_typespec()) - SdaiContracted_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiContracted_item::SdaiContracted_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiContracted_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiContracted_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiContracted_item::SdaiContracted_item( const SdaiProduct_definition_formation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_formation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiContracted_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiContracted_item constructor." << G4endl; - } -#endif -} - -SdaiContracted_item::~SdaiContracted_item() -{ -} - -SdaiContracted_items::SdaiContracted_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiContracted_items::~SdaiContracted_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiContracted_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiContracted_item::get_os_typespec() ) - SdaiContracted_item ); -} -#endif - - - // part 2 -SdaiContracted_item::operator SdaiProduct_definition_formation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return ((SdaiProduct_definition_formation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiProduct_ptr -SdaiContracted_item::of_product_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiContracted_item::of_product_ (const SdaiProduct_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiContracted_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiContracted_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiContracted_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiContracted_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiContracted_item& SdaiContracted_item::operator =( const SdaiProduct_definition_formation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_formation); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiContracted_item& SdaiContracted_item::operator =( const SdaiContracted_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiContracted_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = ((SdaiContracted_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiContracted_item::IsProduct_definition_formation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiContracted_item - - -////////// SELECT TYPE unit - -const TypeDescriptor * -SdaiUnit::AssignEntity (SCLP23(Application_instance) * se) -{ - // NAMED_UNIT - if (se -> IsA (config_control_designe_named_unit)) - { - _app_inst = (SdaiNamed_unit_ptr) se; - return SetUnderlyingType (config_control_designe_named_unit); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiUnit::NewSelect () -{ -#ifdef __OSTORE__ - SdaiUnit * tmp = - new( os_segment::of(this), - SdaiUnit::get_os_typespec() ) - SdaiUnit(); -#else - SdaiUnit * tmp = new SdaiUnit(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiUnit::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_named_unit) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiUnit::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_named_unit) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiUnit::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_named_unit) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiUnit::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_named_unit) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiUnit::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiUnit (os_database *db) -{ - return new (db, SdaiUnit::get_os_typespec()) - SdaiUnit ; -} - -void -SdaiUnit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiUnit access hook funct called." << G4endl; - } -#endif - SdaiUnit *s = (SdaiUnit *) object; - s->_type = config_control_designt_unit; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiUnits (os_database *db) -{ - return new (db, SdaiUnits::get_os_typespec()) - SdaiUnits ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiUnit::SdaiUnit( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiUnit constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiUnit constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiUnit::SdaiUnit( const SdaiNamed_unit_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_named_unit) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiUnit constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiUnit constructor." << G4endl; - } -#endif -} - -SdaiUnit::~SdaiUnit() -{ -} - -SdaiUnits::SdaiUnits( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiUnits::~SdaiUnits() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiUnits::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiUnit::get_os_typespec() ) - SdaiUnit ); -} -#endif - - - // part 2 -SdaiUnit::operator SdaiNamed_unit_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_named_unit ) - return ((SdaiNamed_unit_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiDimensional_exponents_ptr -SdaiUnit::dimensions_() const -{ - if( CurrentUnderlyingType () == config_control_designe_named_unit ) - // NAMED_UNIT - return ((SdaiNamed_unit_ptr) _app_inst) ->dimensions_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiUnit::dimensions_ (const SdaiDimensional_exponents_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_named_unit ) - // NAMED_UNIT - { ((SdaiNamed_unit_ptr) _app_inst) ->dimensions_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiUnit& SdaiUnit::operator =( const SdaiNamed_unit_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_named_unit); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiUnit& SdaiUnit::operator =( const SdaiUnit_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_named_unit ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiUnit::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_named_unit ) - _app_inst = ((SdaiUnit&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiUnit::IsNamed_unit() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_named_unit ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiUnit - - -////////// SELECT TYPE reversible_topology - -const TypeDescriptor * -SdaiReversible_topology::AssignEntity (SCLP23(Application_instance) * se) -{ - // REVERSIBLE_TOPOLOGY_ITEM - if (config_control_designt_reversible_topology_item -> CanBe (se -> eDesc)) - { - _sdaireversible_topology_item.AssignEntity (se); - return SetUnderlyingType (config_control_designt_reversible_topology_item); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiReversible_topology::NewSelect () -{ -#ifdef __OSTORE__ - SdaiReversible_topology * tmp = - new( os_segment::of(this), - SdaiReversible_topology::get_os_typespec() ) - SdaiReversible_topology(); -#else - SdaiReversible_topology * tmp = new SdaiReversible_topology(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiReversible_topology::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designt_reversible_topology_item) - _sdaireversible_topology_item.STEPwrite (out, currSch); - else if (CurrentUnderlyingType () == config_control_designt_list_of_reversible_topology_item) - _sdaireversible_topology_items.STEPwrite (out); - else if (CurrentUnderlyingType () == config_control_designt_set_of_reversible_topology_item) - _sdaireversible_topology_items.STEPwrite (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiReversible_topology::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designt_reversible_topology_item) - return _sdaireversible_topology_item.ValueType(); - else if (CurrentUnderlyingType() == config_control_designt_list_of_reversible_topology_item) - return LIST_TYPE; - else if (CurrentUnderlyingType() == config_control_designt_set_of_reversible_topology_item) - return SET_TYPE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiReversible_topology::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designt_reversible_topology_item) - { - out << tmp.chars() << "("; - _sdaireversible_topology_item.STEPwrite_verbose (out, currSch); - out << ")"; - } - else if (td == config_control_designt_list_of_reversible_topology_item) - { - out << tmp.chars() << "("; - _sdaireversible_topology_items.STEPwrite (out, currSch); - out << ")"; - } - else if (td == config_control_designt_set_of_reversible_topology_item) - { - out << tmp.chars() << "("; - _sdaireversible_topology_items.STEPwrite (out, currSch); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiReversible_topology::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designt_reversible_topology_item) { - _sdaireversible_topology_item.STEPread (in, &_error, instances, utype, addFileId, currSch); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_list_of_reversible_topology_item) { - _sdaireversible_topology_items.STEPread (in, &_error, - config_control_designt_list_of_reversible_topology_item -> AggrElemTypeDescriptor (), - instances, addFileId, currSch); - return severity (); - } - if (CurrentUnderlyingType () == config_control_designt_set_of_reversible_topology_item) { - _sdaireversible_topology_items.STEPread (in, &_error, - config_control_designt_set_of_reversible_topology_item -> AggrElemTypeDescriptor (), - instances, addFileId, currSch); - return severity (); - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiReversible_topology::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - case LIST_TYPE : - return _sdaireversible_topology_items.StrToVal (str, &_error, config_control_designt_list_of_reversible_topology_item -> AggrElemTypeDescriptor ()); - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiReversible_topology (os_database *db) -{ - return new (db, SdaiReversible_topology::get_os_typespec()) - SdaiReversible_topology ; -} - -void -SdaiReversible_topology_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiReversible_topology access hook funct called." << G4endl; - } -#endif - SdaiReversible_topology *s = (SdaiReversible_topology *) object; - s->_type = config_control_designt_reversible_topology; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiReversible_topologys (os_database *db) -{ - return new (db, SdaiReversible_topologys::get_os_typespec()) - SdaiReversible_topologys ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiReversible_topology::SdaiReversible_topology( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript), - _sdaireversible_topology_item (config_control_designt_reversible_topology_item) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiReversible_topology::SdaiReversible_topology( const SdaiReversible_topology_item_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designt_reversible_topology_item), - _sdaireversible_topology_item (config_control_designt_reversible_topology_item) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology constructor." << G4endl; - } -#endif - _sdaireversible_topology_item = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology constructor." << G4endl; - } -#endif -} - -SdaiReversible_topology::SdaiReversible_topology( const SdaiSet_of_reversible_topology_item_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) ( typedescript, config_control_designt_set_of_reversible_topology_item ), - _sdaireversible_topology_item (config_control_designt_reversible_topology_item) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiReversible_topology constructor." << G4endl; - } -#endif - _sdaireversible_topology_items.ShallowCopy (*o); -// NOTE: Underlying type defaults to config_control_designt_set_of_reversible_topology_item instead of NULL -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiReversible_topology constructor." << G4endl; - } -#endif -} - -SdaiReversible_topology::~SdaiReversible_topology() -{ -} - -SdaiReversible_topologys::SdaiReversible_topologys( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiReversible_topologys::~SdaiReversible_topologys() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiReversible_topologys::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiReversible_topology::get_os_typespec() ) - SdaiReversible_topology ); -} -#endif - - - // part 2 -SdaiReversible_topology::operator SdaiReversible_topology_item_ptr() -{ - if( CurrentUnderlyingType () == config_control_designt_reversible_topology_item ) - return & _sdaireversible_topology_item; - - severity( SEVERITY_WARNING ); - Error( (char*)"Underlying type is not SdaiReversible_topology_item_ptr" ); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return 0; -} - -SdaiReversible_topology::operator SdaiSet_of_reversible_topology_item_ptr() -{ - if( CurrentUnderlyingType () == config_control_designt_list_of_reversible_topology_item ) - return & _sdaireversible_topology_items; - if( CurrentUnderlyingType () == config_control_designt_set_of_reversible_topology_item ) - return & _sdaireversible_topology_items; - - severity( SEVERITY_WARNING ); - Error( (char*)"Underlying type is not SdaiSet_of_reversible_topology_item_ptr" ); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return (SdaiSet_of_reversible_topology_item_ptr)0; -} - - - // part 3 - - // part 4 -SdaiReversible_topology& SdaiReversible_topology::operator =( const SdaiReversible_topology_item_ptr& o ) -{ - nullify (); - _sdaireversible_topology_item = o; - SetUnderlyingType (config_control_designt_reversible_topology_item); - return *this; -} - -SdaiReversible_topology& SdaiReversible_topology::operator =( const SdaiSet_of_reversible_topology_item_ptr& o ) -{ - _sdaireversible_topology_items.ShallowCopy (*o); - underlying_type = 0; // MUST BE SET BY USER -#ifdef __OSTORE__ - underlying_type_name.set_null(); -#endif - // discriminator = UNSET - return *this; -} - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiReversible_topology& SdaiReversible_topology::operator =( const SdaiReversible_topology_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designt_reversible_topology_item ) - _sdaireversible_topology_item = &(o -> _sdaireversible_topology_item); - else if ( o -> CurrentUnderlyingType () == config_control_designt_list_of_reversible_topology_item ) - _sdaireversible_topology_items = o -> _sdaireversible_topology_items; - else if ( o -> CurrentUnderlyingType () == config_control_designt_set_of_reversible_topology_item ) - _sdaireversible_topology_items = o -> _sdaireversible_topology_items; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiReversible_topology::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designt_reversible_topology_item ) - _sdaireversible_topology_item = &(((SdaiReversible_topology&) o)._sdaireversible_topology_item); - else if ( o.CurrentUnderlyingType () == config_control_designt_list_of_reversible_topology_item ) - _sdaireversible_topology_items = ((SdaiReversible_topology&) o)._sdaireversible_topology_items; - else if ( o.CurrentUnderlyingType () == config_control_designt_set_of_reversible_topology_item ) - _sdaireversible_topology_items = ((SdaiReversible_topology&) o)._sdaireversible_topology_items; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiReversible_topology::IsReversible_topology_item() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_reversible_topology_item ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiReversible_topology::IsList_of_reversible_topology_item() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_list_of_reversible_topology_item ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiReversible_topology::IsSet_of_reversible_topology_item() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designt_set_of_reversible_topology_item ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - - - // part 7 -const TypeDescriptor * -SdaiReversible_topology::SetUnderlyingType (const TypeDescriptor * td) -{ -#ifndef WIN32 - return SCLP23(Select)::SetUnderlyingType (td); -#else - return StepSelectType::SetUnderlyingType (td); -#endif -} -////////// END SELECT TYPE SdaiReversible_topology - - -////////// SELECT TYPE work_item - -const TypeDescriptor * -SdaiWork_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION_FORMATION - if (se -> IsA (config_control_designe_product_definition_formation)) - { - _app_inst = (SdaiProduct_definition_formation_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_formation); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiWork_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiWork_item * tmp = - new( os_segment::of(this), - SdaiWork_item::get_os_typespec() ) - SdaiWork_item(); -#else - SdaiWork_item * tmp = new SdaiWork_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiWork_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiWork_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition_formation) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiWork_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition_formation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiWork_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiWork_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiWork_item (os_database *db) -{ - return new (db, SdaiWork_item::get_os_typespec()) - SdaiWork_item ; -} - -void -SdaiWork_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiWork_item access hook funct called." << G4endl; - } -#endif - SdaiWork_item *s = (SdaiWork_item *) object; - s->_type = config_control_designt_work_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiWork_items (os_database *db) -{ - return new (db, SdaiWork_items::get_os_typespec()) - SdaiWork_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiWork_item::SdaiWork_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiWork_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiWork_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiWork_item::SdaiWork_item( const SdaiProduct_definition_formation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_formation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiWork_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiWork_item constructor." << G4endl; - } -#endif -} - -SdaiWork_item::~SdaiWork_item() -{ -} - -SdaiWork_items::SdaiWork_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiWork_items::~SdaiWork_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiWork_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiWork_item::get_os_typespec() ) - SdaiWork_item ); -} -#endif - - - // part 2 -SdaiWork_item::operator SdaiProduct_definition_formation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return ((SdaiProduct_definition_formation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiProduct_ptr -SdaiWork_item::of_product_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiWork_item::of_product_ (const SdaiProduct_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiWork_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiWork_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiWork_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiWork_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiWork_item& SdaiWork_item::operator =( const SdaiProduct_definition_formation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_formation); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiWork_item& SdaiWork_item::operator =( const SdaiWork_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiWork_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = ((SdaiWork_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiWork_item::IsProduct_definition_formation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiWork_item - - -////////// SELECT TYPE supported_item - -const TypeDescriptor * -SdaiSupported_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // ACTION_DIRECTIVE - if (se -> IsA (config_control_designe_action_directive)) - { - _app_inst = (SdaiAction_directive_ptr) se; - return SetUnderlyingType (config_control_designe_action_directive); - } - // ACTION - if (se -> IsA (config_control_designe_action)) - { - _app_inst = (SdaiAction_ptr) se; - return SetUnderlyingType (config_control_designe_action); - } - // ACTION_METHOD - if (se -> IsA (config_control_designe_action_method)) - { - _app_inst = (SdaiAction_method_ptr) se; - return SetUnderlyingType (config_control_designe_action_method); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiSupported_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiSupported_item * tmp = - new( os_segment::of(this), - SdaiSupported_item::get_os_typespec() ) - SdaiSupported_item(); -#else - SdaiSupported_item * tmp = new SdaiSupported_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiSupported_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_action_directive) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_action) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_action_method) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiSupported_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_action_directive) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_action) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_action_method) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiSupported_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_action_directive) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_action) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_action_method) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiSupported_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_action_directive) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_action) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_action_method) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiSupported_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiSupported_item (os_database *db) -{ - return new (db, SdaiSupported_item::get_os_typespec()) - SdaiSupported_item ; -} - -void -SdaiSupported_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiSupported_item access hook funct called." << G4endl; - } -#endif - SdaiSupported_item *s = (SdaiSupported_item *) object; - s->_type = config_control_designt_supported_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiSupported_items (os_database *db) -{ - return new (db, SdaiSupported_items::get_os_typespec()) - SdaiSupported_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiSupported_item::SdaiSupported_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSupported_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSupported_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiSupported_item::SdaiSupported_item( const SdaiAction_directive_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_action_directive) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSupported_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSupported_item constructor." << G4endl; - } -#endif -} - -SdaiSupported_item::SdaiSupported_item( const SdaiAction_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_action) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSupported_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSupported_item constructor." << G4endl; - } -#endif -} - -SdaiSupported_item::SdaiSupported_item( const SdaiAction_method_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_action_method) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSupported_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSupported_item constructor." << G4endl; - } -#endif -} - -SdaiSupported_item::~SdaiSupported_item() -{ -} - -SdaiSupported_items::SdaiSupported_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiSupported_items::~SdaiSupported_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiSupported_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiSupported_item::get_os_typespec() ) - SdaiSupported_item ); -} -#endif - - - // part 2 -SdaiSupported_item::operator SdaiAction_directive_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - return ((SdaiAction_directive_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiSupported_item::operator SdaiAction_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_action ) - return ((SdaiAction_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiSupported_item::operator SdaiAction_method_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_action_method ) - return ((SdaiAction_method_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiText -SdaiSupported_item::purpose_() const -{ - if( CurrentUnderlyingType () == config_control_designe_action_method ) - // ACTION_METHOD - return ((SdaiAction_method_ptr) _app_inst) ->purpose_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSupported_item::purpose_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_action_method ) - // ACTION_METHOD - { ((SdaiAction_method_ptr) _app_inst) ->purpose_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiSupported_item::consequence_() const -{ - if( CurrentUnderlyingType () == config_control_designe_action_method ) - // ACTION_METHOD - return ((SdaiAction_method_ptr) _app_inst) ->consequence_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSupported_item::consequence_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_action_method ) - // ACTION_METHOD - { ((SdaiAction_method_ptr) _app_inst) ->consequence_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiAction_method_ptr -SdaiSupported_item::chosen_method_() const -{ - if( CurrentUnderlyingType () == config_control_designe_action ) - // ACTION - return ((SdaiAction_ptr) _app_inst) ->chosen_method_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSupported_item::chosen_method_ (const SdaiAction_method_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_action ) - // ACTION - { ((SdaiAction_ptr) _app_inst) ->chosen_method_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const EntityAggregate_ptr -SdaiSupported_item::requests_() const -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - return ((SdaiAction_directive_ptr) _app_inst) ->requests_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSupported_item::requests_ (const EntityAggregate_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - { ((SdaiAction_directive_ptr) _app_inst) ->requests_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiSupported_item::comment_() const -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - return ((SdaiAction_directive_ptr) _app_inst) ->comment_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSupported_item::comment_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - { ((SdaiAction_directive_ptr) _app_inst) ->comment_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiSupported_item::analysis_() const -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - return ((SdaiAction_directive_ptr) _app_inst) ->analysis_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSupported_item::analysis_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - { ((SdaiAction_directive_ptr) _app_inst) ->analysis_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiSupported_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - return ((SdaiAction_directive_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_action ) - // ACTION - return ((SdaiAction_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_action_method ) - // ACTION_METHOD - return ((SdaiAction_method_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSupported_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - { ((SdaiAction_directive_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_action ) - // ACTION - { ((SdaiAction_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_action_method ) - // ACTION_METHOD - { ((SdaiAction_method_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiSupported_item::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - return ((SdaiAction_directive_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_action ) - // ACTION - return ((SdaiAction_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_action_method ) - // ACTION_METHOD - return ((SdaiAction_method_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSupported_item::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - // ACTION_DIRECTIVE - { ((SdaiAction_directive_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_action ) - // ACTION - { ((SdaiAction_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_action_method ) - // ACTION_METHOD - { ((SdaiAction_method_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiSupported_item& SdaiSupported_item::operator =( const SdaiAction_directive_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_action_directive); - return *this; -} - -SdaiSupported_item& SdaiSupported_item::operator =( const SdaiAction_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_action); - return *this; -} - -SdaiSupported_item& SdaiSupported_item::operator =( const SdaiAction_method_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_action_method); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiSupported_item& SdaiSupported_item::operator =( const SdaiSupported_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_action_directive ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_action ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_action_method ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiSupported_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_action_directive ) - _app_inst = ((SdaiSupported_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_action ) - _app_inst = ((SdaiSupported_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_action_method ) - _app_inst = ((SdaiSupported_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiSupported_item::IsAction_directive() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_action_directive ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiSupported_item::IsAction() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_action ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiSupported_item::IsAction_method() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_action_method ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiSupported_item - - -////////// SELECT TYPE approved_item - -const TypeDescriptor * -SdaiApproved_item::AssignEntity (SCLP23(Application_instance) * se) -{ - // PRODUCT_DEFINITION_FORMATION - if (se -> IsA (config_control_designe_product_definition_formation)) - { - _app_inst = (SdaiProduct_definition_formation_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition_formation); - } - // PRODUCT_DEFINITION - if (se -> IsA (config_control_designe_product_definition)) - { - _app_inst = (SdaiProduct_definition_ptr) se; - return SetUnderlyingType (config_control_designe_product_definition); - } - // CONFIGURATION_EFFECTIVITY - if (se -> IsA (config_control_designe_configuration_effectivity)) - { - _app_inst = (SdaiConfiguration_effectivity_ptr) se; - return SetUnderlyingType (config_control_designe_configuration_effectivity); - } - // CONFIGURATION_ITEM - if (se -> IsA (config_control_designe_configuration_item)) - { - _app_inst = (SdaiConfiguration_item_ptr) se; - return SetUnderlyingType (config_control_designe_configuration_item); - } - // SECURITY_CLASSIFICATION - if (se -> IsA (config_control_designe_security_classification)) - { - _app_inst = (SdaiSecurity_classification_ptr) se; - return SetUnderlyingType (config_control_designe_security_classification); - } - // CHANGE_REQUEST - if (se -> IsA (config_control_designe_change_request)) - { - _app_inst = (SdaiChange_request_ptr) se; - return SetUnderlyingType (config_control_designe_change_request); - } - // CHANGE - if (se -> IsA (config_control_designe_change)) - { - _app_inst = (SdaiChange_ptr) se; - return SetUnderlyingType (config_control_designe_change); - } - // START_REQUEST - if (se -> IsA (config_control_designe_start_request)) - { - _app_inst = (SdaiStart_request_ptr) se; - return SetUnderlyingType (config_control_designe_start_request); - } - // START_WORK - if (se -> IsA (config_control_designe_start_work)) - { - _app_inst = (SdaiStart_work_ptr) se; - return SetUnderlyingType (config_control_designe_start_work); - } - // CERTIFICATION - if (se -> IsA (config_control_designe_certification)) - { - _app_inst = (SdaiCertification_ptr) se; - return SetUnderlyingType (config_control_designe_certification); - } - // CONTRACT - if (se -> IsA (config_control_designe_contract)) - { - _app_inst = (SdaiContract_ptr) se; - return SetUnderlyingType (config_control_designe_contract); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiApproved_item::NewSelect () -{ -#ifdef __OSTORE__ - SdaiApproved_item * tmp = - new( os_segment::of(this), - SdaiApproved_item::get_os_typespec() ) - SdaiApproved_item(); -#else - SdaiApproved_item * tmp = new SdaiApproved_item(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiApproved_item::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_product_definition) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_configuration_effectivity) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_configuration_item) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_security_classification) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_change_request) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_change) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_start_request) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_start_work) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_certification) - _app_inst -> STEPwrite_reference (out); - else if (CurrentUnderlyingType () == config_control_designe_contract) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiApproved_item::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_product_definition_formation) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_product_definition) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_configuration_effectivity) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_configuration_item) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_security_classification) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_change_request) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_change) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_start_request) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_start_work) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_certification) - return sdaiINSTANCE; - else if (CurrentUnderlyingType() == config_control_designe_contract) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiApproved_item::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_product_definition_formation) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_product_definition) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_configuration_effectivity) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_configuration_item) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_security_classification) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_change_request) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_change) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_start_request) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_start_work) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_certification) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else if (td == config_control_designe_contract) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiApproved_item::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_product_definition_formation) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_product_definition) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_configuration_effectivity) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_configuration_item) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_security_classification) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_change_request) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_change) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_start_request) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_start_work) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_certification) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - if (CurrentUnderlyingType () == config_control_designe_contract) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiApproved_item::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiApproved_item (os_database *db) -{ - return new (db, SdaiApproved_item::get_os_typespec()) - SdaiApproved_item ; -} - -void -SdaiApproved_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiApproved_item access hook funct called." << G4endl; - } -#endif - SdaiApproved_item *s = (SdaiApproved_item *) object; - s->_type = config_control_designt_approved_item; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiApproved_items (os_database *db) -{ - return new (db, SdaiApproved_items::get_os_typespec()) - SdaiApproved_items ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiApproved_item::SdaiApproved_item( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiApproved_item::SdaiApproved_item( const SdaiProduct_definition_formation_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition_formation) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiProduct_definition_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_product_definition) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiConfiguration_effectivity_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_configuration_effectivity) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiConfiguration_item_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_configuration_item) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiSecurity_classification_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_security_classification) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiChange_request_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_change_request) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiChange_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_change) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiStart_request_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_start_request) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiStart_work_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_start_work) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiCertification_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_certification) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::SdaiApproved_item( const SdaiContract_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_contract) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiApproved_item constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiApproved_item constructor." << G4endl; - } -#endif -} - -SdaiApproved_item::~SdaiApproved_item() -{ -} - -SdaiApproved_items::SdaiApproved_items( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiApproved_items::~SdaiApproved_items() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiApproved_items::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiApproved_item::get_os_typespec() ) - SdaiApproved_item ); -} -#endif - - - // part 2 -SdaiApproved_item::operator SdaiProduct_definition_formation_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return ((SdaiProduct_definition_formation_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiProduct_definition_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return ((SdaiProduct_definition_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiConfiguration_effectivity_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - return ((SdaiConfiguration_effectivity_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiConfiguration_item_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - return ((SdaiConfiguration_item_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiSecurity_classification_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - return ((SdaiSecurity_classification_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiChange_request_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - return ((SdaiChange_request_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiChange_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - return ((SdaiChange_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiStart_request_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_start_request ) - return ((SdaiStart_request_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiStart_work_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_start_work ) - return ((SdaiStart_work_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiCertification_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_certification ) - return ((SdaiCertification_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - -SdaiApproved_item::operator SdaiContract_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_contract ) - return ((SdaiContract_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiCertification_type_ptr -SdaiApproved_item::kind_() const -{ - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - return ((SdaiCertification_ptr) _app_inst) ->kind_(); - // CONTRACT - // attribute access function has a different return type - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::kind_ (const SdaiCertification_type_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - { ((SdaiCertification_ptr) _app_inst) ->kind_( x ); - return; - } - // for CONTRACT attribute access function has a different argument type - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiAction_ptr -SdaiApproved_item::assigned_action_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - // CHANGE - return ((SdaiChange_ptr) _app_inst) ->assigned_action_(); - if( CurrentUnderlyingType () == config_control_designe_start_work ) - // START_WORK - return ((SdaiStart_work_ptr) _app_inst) ->assigned_action_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::assigned_action_ (const SdaiAction_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change ) - // CHANGE - { ((SdaiChange_ptr) _app_inst) ->assigned_action_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_start_work ) - // START_WORK - { ((SdaiStart_work_ptr) _app_inst) ->assigned_action_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiChange_request_items_ptr -SdaiApproved_item::items_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - return ((SdaiChange_request_ptr) _app_inst) ->items_(); - // CHANGE - // attribute access function has a different return type - // START_REQUEST - // attribute access function has a different return type - // START_WORK - // attribute access function has a different return type - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::items_ (const SdaiChange_request_items_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - { ((SdaiChange_request_ptr) _app_inst) ->items_( x ); - return; - } - // for CHANGE attribute access function has a different argument type - // for START_REQUEST attribute access function has a different argument type - // for START_WORK attribute access function has a different argument type - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiVersioned_action_request_ptr -SdaiApproved_item::assigned_action_request_() const -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - return ((SdaiChange_request_ptr) _app_inst) ->assigned_action_request_(); - if( CurrentUnderlyingType () == config_control_designe_start_request ) - // START_REQUEST - return ((SdaiStart_request_ptr) _app_inst) ->assigned_action_request_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::assigned_action_request_ (const SdaiVersioned_action_request_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_change_request ) - // CHANGE_REQUEST - { ((SdaiChange_request_ptr) _app_inst) ->assigned_action_request_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_start_request ) - // START_REQUEST - { ((SdaiStart_request_ptr) _app_inst) ->assigned_action_request_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiSecurity_classification_level_ptr -SdaiApproved_item::security_level_() const -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->security_level_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::security_level_ (const SdaiSecurity_classification_level_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->security_level_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiApproved_item::purpose_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->purpose_(); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->purpose_(); - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - return ((SdaiCertification_ptr) _app_inst) ->purpose_(); - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - return ((SdaiContract_ptr) _app_inst) ->purpose_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::purpose_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->purpose_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->purpose_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - { ((SdaiCertification_ptr) _app_inst) ->purpose_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - { ((SdaiContract_ptr) _app_inst) ->purpose_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_concept_ptr -SdaiApproved_item::item_concept_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->item_concept_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::item_concept_ (const SdaiProduct_concept_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->item_concept_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiApproved_item::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - return ((SdaiSecurity_classification_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - return ((SdaiCertification_ptr) _app_inst) ->name_(); - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - return ((SdaiContract_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - // SECURITY_CLASSIFICATION - { ((SdaiSecurity_classification_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_certification ) - // CERTIFICATION - { ((SdaiCertification_ptr) _app_inst) ->name_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_contract ) - // CONTRACT - { ((SdaiContract_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiConfiguration_design_ptr -SdaiApproved_item::configuration_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - // CONFIGURATION_EFFECTIVITY - return ((SdaiConfiguration_effectivity_ptr) _app_inst) ->configuration_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::configuration_ (const SdaiConfiguration_design_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - // CONFIGURATION_EFFECTIVITY - { ((SdaiConfiguration_effectivity_ptr) _app_inst) ->configuration_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_relationship_ptr -SdaiApproved_item::usage_() const -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - // CONFIGURATION_EFFECTIVITY - return ((SdaiConfiguration_effectivity_ptr) _app_inst) ->usage_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::usage_ (const SdaiProduct_definition_relationship_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - // CONFIGURATION_EFFECTIVITY - { ((SdaiConfiguration_effectivity_ptr) _app_inst) ->usage_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_context_ptr -SdaiApproved_item::frame_of_reference_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->frame_of_reference_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::frame_of_reference_ (const SdaiProduct_definition_context_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->frame_of_reference_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_definition_formation_ptr -SdaiApproved_item::formation_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->formation_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::formation_ (const SdaiProduct_definition_formation_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->formation_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiProduct_ptr -SdaiApproved_item::of_product_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::of_product_ (const SdaiProduct_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->of_product_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiText -SdaiApproved_item::description_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->description_(); - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->description_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::description_ (const SdaiText x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->description_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->description_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiIdentifier -SdaiApproved_item::id_() const -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - return ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_(); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - return ((SdaiProduct_definition_ptr) _app_inst) ->id_(); - if( CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - // CONFIGURATION_EFFECTIVITY - return ((SdaiConfiguration_effectivity_ptr) _app_inst) ->id_(); - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - return ((SdaiConfiguration_item_ptr) _app_inst) ->id_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiApproved_item::id_ (const SdaiIdentifier x) - -{ - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - // PRODUCT_DEFINITION_FORMATION - { ((SdaiProduct_definition_formation_ptr) _app_inst) ->id_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - // PRODUCT_DEFINITION - { ((SdaiProduct_definition_ptr) _app_inst) ->id_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - // CONFIGURATION_EFFECTIVITY - { ((SdaiConfiguration_effectivity_ptr) _app_inst) ->id_( x ); - return; - } - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - // CONFIGURATION_ITEM - { ((SdaiConfiguration_item_ptr) _app_inst) ->id_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiProduct_definition_formation_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition_formation); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiProduct_definition_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_product_definition); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiConfiguration_effectivity_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_configuration_effectivity); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiConfiguration_item_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_configuration_item); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiSecurity_classification_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_security_classification); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiChange_request_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_change_request); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiChange_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_change); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiStart_request_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_start_request); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiStart_work_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_start_work); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiCertification_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_certification); - return *this; -} - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiContract_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_contract); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiApproved_item& SdaiApproved_item::operator =( const SdaiApproved_item_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_configuration_item ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_security_classification ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_change_request ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_change ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_start_request ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_start_work ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_certification ) - _app_inst = o -> _app_inst; - else if ( o -> CurrentUnderlyingType () == config_control_designe_contract ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiApproved_item::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_product_definition ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_configuration_item ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_security_classification ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_change_request ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_change ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_start_request ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_start_work ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_certification ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - else if ( o.CurrentUnderlyingType () == config_control_designe_contract ) - _app_inst = ((SdaiApproved_item&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiApproved_item::IsProduct_definition_formation() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition_formation ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsProduct_definition() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_product_definition ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsConfiguration_effectivity() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_configuration_effectivity ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsConfiguration_item() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_configuration_item ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsSecurity_classification() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_security_classification ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsChange_request() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_change_request ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsChange() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_change ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsStart_request() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_start_request ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsStart_work() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_start_work ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsCertification() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_certification ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -SCLLOG(Logical) SdaiApproved_item::IsContract() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_contract ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiApproved_item - - -////////// SELECT TYPE surface_model - -const TypeDescriptor * -SdaiSurface_model::AssignEntity (SCLP23(Application_instance) * se) -{ - // SHELL_BASED_SURFACE_MODEL - if (se -> IsA (config_control_designe_shell_based_surface_model)) - { - _app_inst = (SdaiShell_based_surface_model_ptr) se; - return SetUnderlyingType (config_control_designe_shell_based_surface_model); - } - // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ - G4cerr << se -> EntityName () << G4endl; -#endif - return 0; -} - -SCLP23(Select) * -SdaiSurface_model::NewSelect () -{ -#ifdef __OSTORE__ - SdaiSurface_model * tmp = - new( os_segment::of(this), - SdaiSurface_model::get_os_typespec() ) - SdaiSurface_model(); -#else - SdaiSurface_model * tmp = new SdaiSurface_model(); -#endif - return tmp; -} - - -// STEP Part 21 - -void -SdaiSurface_model::STEPwrite_content (std::ostream& out, const char * currSch) const -{ - if (CurrentUnderlyingType () == config_control_designe_shell_based_surface_model) - _app_inst -> STEPwrite_reference (out); - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -BASE_TYPE -SdaiSurface_model::ValueType() const -{ - if (CurrentUnderlyingType() == config_control_designe_shell_based_surface_model) - return sdaiINSTANCE; - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return (BASE_TYPE)0; -} - -void -SdaiSurface_model::STEPwrite_verbose (std::ostream& out, const char *currSch) const -{ - const TypeDescriptor *td = CurrentUnderlyingType(); - SCLstring tmp; - - if ( td ) { - // If we have a legal underlying type, get its name acc - // to the current schema. - StrToUpper( td->Name(currSch), tmp ); - } - if (td == config_control_designe_shell_based_surface_model) - { - out << tmp.chars() << "("; - _app_inst -> STEPwrite_reference (out); - out << ")"; - } - else { - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - } - return; -} - -Severity -SdaiSurface_model::STEPread_content (std::istream& in, InstMgr * instances, - const char *utype, int addFileId, const char *currSch) -{ - if (CurrentUnderlyingType () == config_control_designe_shell_based_surface_model) { - // set Underlying Type in Select class - _app_inst = ReadEntityRef (in, &_error, (char*)",)", instances, addFileId); - if (_app_inst && (_app_inst != S_ENTITY_NULL) - && (CurrentUnderlyingType () -> CanBe (_app_inst -> eDesc )) ) - return severity (); - else { - Error ((char*)"Reference to instance that is not indicated type\n"); - _app_inst = 0; - nullify (); - return severity (SEVERITY_USERMSG); - } - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << instances << " " << addFileId << G4endl; -#endif - - return severity (); -} - -Severity -SdaiSurface_model::StrToVal_content (const char * str, InstMgr * instances) -{ - switch (base_type) { - default: // should never be here - done in Select class - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -#ifdef __SUNCPLUSPLUS__ -G4cerr << str << " " << instances << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef __GNUG__ - - return SEVERITY_NULL; -#endif -} - -#ifdef __OSTORE__ -SCLP23(Select) * -create_SdaiSurface_model (os_database *db) -{ - return new (db, SdaiSurface_model::get_os_typespec()) - SdaiSurface_model ; -} - -void -SdaiSurface_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "SdaiSurface_model access hook funct called." << G4endl; - } -#endif - SdaiSurface_model *s = (SdaiSurface_model *) object; - s->_type = config_control_designt_surface_model; -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "underlying type set to " << s->UnderlyingTypeName() << G4endl << G4endl; - } -#endif - const TypeDescriptor *td = s->CanBe(s->UnderlyingTypeName()); - s->SetUnderlyingType(td); - if(!td) - G4cerr << "ERROR: can't reinitialize underlying select TypeDescriptor." - << G4endl; -} -#endif - - -#ifdef __OSTORE__ -STEPaggregate * -create_SdaiSurface_models (os_database *db) -{ - return new (db, SdaiSurface_models::get_os_typespec()) - SdaiSurface_models ; -} -#endif - - -// STEP Part 22: SDAI - - // part 0 -SdaiSurface_model::SdaiSurface_model( const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSurface_model constructor." << G4endl; - } -#endif - nullify(); -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSurface_model constructor." << G4endl; - } -#endif -} - - // part 1 -SdaiSurface_model::SdaiSurface_model( const SdaiShell_based_surface_model_ptr& o, - const SelectTypeDescriptor *typedescript ) - : SCLP23(Select) (typedescript, config_control_designe_shell_based_surface_model) -{ -#ifdef SCL_LOGGING - if( *logStream ) - { - *logStream << "DAVE ERR entering SdaiSurface_model constructor." << G4endl; - } -#endif - _app_inst = o; -#ifdef SCL_LOGGING - if( *logStream ) - { -// *logStream << "DAVE ERR exiting SdaiSurface_model constructor." << G4endl; - } -#endif -} - -SdaiSurface_model::~SdaiSurface_model() -{ -} - -SdaiSurface_models::SdaiSurface_models( SelectTypeDescriptor *s) - : SelectAggregate(), sel_type(s) -{ -} - -SdaiSurface_models::~SdaiSurface_models() { } - - -#ifdef __OSTORE__ -SingleLinkNode * -SdaiSurface_models::NewNode() -{ - return new( os_segment::of(this), SelectNode::get_os_typespec() ) - SelectNode( new( os_segment::of(this), - SdaiSurface_model::get_os_typespec() ) - SdaiSurface_model ); -} -#endif - - - // part 2 -SdaiSurface_model::operator SdaiShell_based_surface_model_ptr() -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_surface_model ) - return ((SdaiShell_based_surface_model_ptr) _app_inst); - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); - return NULL; -} - - - // part 3 - -const SdaiShells_ptr -SdaiSurface_model::sbsm_boundary_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_surface_model ) - // SHELL_BASED_SURFACE_MODEL - return ((SdaiShell_based_surface_model_ptr) _app_inst) ->sbsm_boundary_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSurface_model::sbsm_boundary_ (const SdaiShells_ptr x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_surface_model ) - // SHELL_BASED_SURFACE_MODEL - { ((SdaiShell_based_surface_model_ptr) _app_inst) ->sbsm_boundary_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - -const SdaiLabel -SdaiSurface_model::name_() const -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_surface_model ) - // SHELL_BASED_SURFACE_MODEL - return ((SdaiShell_based_surface_model_ptr) _app_inst) ->name_(); - G4cerr << __FILE__ << ":" << __LINE__ << ": ERROR in schema library: \n" - << _POC_ << "\n\n"; - return 0; -} - - -void -SdaiSurface_model::name_ (const SdaiLabel x) - -{ - if( CurrentUnderlyingType () == config_control_designe_shell_based_surface_model ) - // SHELL_BASED_SURFACE_MODEL - { ((SdaiShell_based_surface_model_ptr) _app_inst) ->name_( x ); - return; - } - - severity( SEVERITY_WARNING ); - G4cerr << __FILE__ << ":" << __LINE__ << ": WARNING: possible misuse of" - << " SELECT TYPE from schema library.\n"; - Error( (char*)"Mismatch in underlying type." ); -} - - // part 4 -SdaiSurface_model& SdaiSurface_model::operator =( const SdaiShell_based_surface_model_ptr& o ) -{ - nullify (); - _app_inst = o; - SetUnderlyingType (config_control_designe_shell_based_surface_model); - return *this; -} - - -#ifdef COMPILER_DEFINES_OPERATOR_EQ -#else - -SdaiSurface_model& SdaiSurface_model::operator =( const SdaiSurface_model_ptr& o ) -{ - if ( o -> CurrentUnderlyingType () == config_control_designe_shell_based_surface_model ) - _app_inst = o -> _app_inst; - underlying_type = o -> CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o -> UnderlyingTypeName(); -#endif - return *this; -} - -SCLP23(Select)& SdaiSurface_model::operator =( const SCLP23(Select)& o ) -{ - if ( o.CurrentUnderlyingType () == config_control_designe_shell_based_surface_model ) - _app_inst = ((SdaiSurface_model&) o)._app_inst; - underlying_type = o.CurrentUnderlyingType (); -#ifdef __OSTORE__ - underlying_type_name = o.UnderlyingTypeName(); -#endif - return *this; -} - -#endif - - // part 5 -SCLLOG(Logical) SdaiSurface_model::IsShell_based_surface_model() const -{ - if( !exists() ) - return SCLLOG(LUnknown); - if( CurrentUnderlyingType () == config_control_designe_shell_based_surface_model ) - return SCLLOG(LTrue); - return SCLLOG(LFalse); -} - -////////// END SELECT TYPE SdaiSurface_model - - -/* ************** ENTITIES */ - -///////// ENTITY representation_item - -EntityDescriptor *config_control_designe_representation_item =0; -AttrDescriptor *a_0name =0; -SdaiRepresentation_item::SdaiRepresentation_item( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_representation_item; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_0name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_0name, &_name); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiRepresentation_item::SdaiRepresentation_item (SdaiRepresentation_item& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRepresentation_item::~SdaiRepresentation_item () { } - -#ifdef __OSTORE__ - -void -SdaiRepresentation_item::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_item: virtual access function." << G4endl; - SdaiRepresentation_item_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRepresentation_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_item: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRepresentation_item *ent = (SdaiRepresentation_item *)sent; -// SdaiRepresentation_item *ent = (SdaiRepresentation_item *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_representation_item; - ent->attributes[0].aDesc = a_0name; -} - -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_item(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRepresentation_item::get_os_typespec()) - SdaiRepresentation_item; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRepresentation_item::get_os_typespec()) -// SdaiRepresentation_item; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_item; -} -#endif - -#ifdef __O3DB__ -void -SdaiRepresentation_item::oodb_reInit () -{ eDesc = config_control_designe_representation_item; - attributes [0].aDesc = a_0name; -} -#endif - -SdaiRepresentation_item::SdaiRepresentation_item( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_representation_item; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_0name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_0name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiRepresentation_item::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiRepresentation_item::name_ (const SdaiLabel x) - -{ - _name = x; -} - -///////// END_ENTITY representation_item - - -///////// ENTITY geometric_representation_item - -EntityDescriptor *config_control_designe_geometric_representation_item =0; -Derived_attribute *a_1Ddim =0; -SdaiGeometric_representation_item::SdaiGeometric_representation_item( ) -{ - - /* parent: SdaiRepresentation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometric_representation_item; - MakeDerived ("dim"); -} -SdaiGeometric_representation_item::SdaiGeometric_representation_item (SdaiGeometric_representation_item& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiGeometric_representation_item::~SdaiGeometric_representation_item () { } - -#ifdef __OSTORE__ - -void -SdaiGeometric_representation_item::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometric_representation_item: virtual access function." << G4endl; - SdaiGeometric_representation_item_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiGeometric_representation_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometric_representation_item: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiGeometric_representation_item *ent = (SdaiGeometric_representation_item *)sent; -// SdaiGeometric_representation_item *ent = (SdaiGeometric_representation_item *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_geometric_representation_item; -} - -SCLP23(Application_instance_ptr) -create_SdaiGeometric_representation_item(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiGeometric_representation_item::get_os_typespec()) - SdaiGeometric_representation_item; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiGeometric_representation_item::get_os_typespec()) -// SdaiGeometric_representation_item; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiGeometric_representation_item; -} -#endif - -#ifdef __O3DB__ -void -SdaiGeometric_representation_item::oodb_reInit () -{ eDesc = config_control_designe_geometric_representation_item; -} -#endif - -SdaiGeometric_representation_item::SdaiGeometric_representation_item (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometric_representation_item; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY geometric_representation_item - - -///////// ENTITY functionally_defined_transformation - -EntityDescriptor *config_control_designe_functionally_defined_transformation =0; -AttrDescriptor *a_2name =0; -AttrDescriptor *a_3description =0; -SdaiFunctionally_defined_transformation::SdaiFunctionally_defined_transformation( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_functionally_defined_transformation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_2name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_2name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_3description, &_description); -#else - a = new STEPattribute(*a_3description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiFunctionally_defined_transformation::SdaiFunctionally_defined_transformation (SdaiFunctionally_defined_transformation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiFunctionally_defined_transformation::~SdaiFunctionally_defined_transformation () { } - -#ifdef __OSTORE__ - -void -SdaiFunctionally_defined_transformation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFunctionally_defined_transformation: virtual access function." << G4endl; - SdaiFunctionally_defined_transformation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiFunctionally_defined_transformation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFunctionally_defined_transformation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiFunctionally_defined_transformation *ent = (SdaiFunctionally_defined_transformation *)sent; -// SdaiFunctionally_defined_transformation *ent = (SdaiFunctionally_defined_transformation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_functionally_defined_transformation; - ent->attributes[0].aDesc = a_2name; - ent->attributes[1].aDesc = a_3description; -} - -SCLP23(Application_instance_ptr) -create_SdaiFunctionally_defined_transformation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiFunctionally_defined_transformation::get_os_typespec()) - SdaiFunctionally_defined_transformation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiFunctionally_defined_transformation::get_os_typespec()) -// SdaiFunctionally_defined_transformation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiFunctionally_defined_transformation; -} -#endif - -#ifdef __O3DB__ -void -SdaiFunctionally_defined_transformation::oodb_reInit () -{ eDesc = config_control_designe_functionally_defined_transformation; - attributes [0].aDesc = a_2name; - attributes [1].aDesc = a_3description; -} -#endif - -SdaiFunctionally_defined_transformation::SdaiFunctionally_defined_transformation( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_functionally_defined_transformation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_2name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_2name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_3description, &_description); -#else - a = new STEPattribute(*a_3description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiFunctionally_defined_transformation::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiFunctionally_defined_transformation::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiFunctionally_defined_transformation::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiFunctionally_defined_transformation::description_ (const SdaiText x) - -{ - _description = x; -} - -///////// END_ENTITY functionally_defined_transformation - - -///////// ENTITY cartesian_transformation_operator - -EntityDescriptor *config_control_designe_cartesian_transformation_operator =0; -AttrDescriptor *a_4axis1 =0; -AttrDescriptor *a_5axis2 =0; -AttrDescriptor *a_6local_origin =0; -AttrDescriptor *a_7scale =0; -Derived_attribute *a_8Dscl =0; -SdaiCartesian_transformation_operator::SdaiCartesian_transformation_operator( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiFunctionally_defined_transformation */ - HeadEntity(this); -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - AppendMultInstance(new SdaiFunctionally_defined_transformation(this, attrFlags)); -#endif - AppendMultInstance(new SdaiFunctionally_defined_transformation(this)); - - eDesc = config_control_designe_cartesian_transformation_operator; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_4axis1, (SCLP23(Application_instance_ptr) *) &_axis1); -#else - STEPattribute *a = new STEPattribute(*a_4axis1, (SCLP23(Application_instance_ptr) *) &_axis1); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_5axis2, (SCLP23(Application_instance_ptr) *) &_axis2); -#else - a = new STEPattribute(*a_5axis2, (SCLP23(Application_instance_ptr) *) &_axis2); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_6local_origin, (SCLP23(Application_instance_ptr) *) &_local_origin); -#else - a = new STEPattribute(*a_6local_origin, (SCLP23(Application_instance_ptr) *) &_local_origin); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_7scale, &_scale); -#else - a = new STEPattribute(*a_7scale, &_scale); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("scl"); -} -SdaiCartesian_transformation_operator::SdaiCartesian_transformation_operator (SdaiCartesian_transformation_operator& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCartesian_transformation_operator::~SdaiCartesian_transformation_operator () { } - -#ifdef __OSTORE__ - -void -SdaiCartesian_transformation_operator::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCartesian_transformation_operator: virtual access function." << G4endl; - SdaiCartesian_transformation_operator_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCartesian_transformation_operator_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCartesian_transformation_operator: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCartesian_transformation_operator *ent = (SdaiCartesian_transformation_operator *)sent; -// SdaiCartesian_transformation_operator *ent = (SdaiCartesian_transformation_operator *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cartesian_transformation_operator; - ent->attributes[3].aDesc = a_4axis1; - if(ent->_axis1 == 0) - ent->_axis1 = S_ENTITY_NULL; - ent->attributes[4].aDesc = a_5axis2; - if(ent->_axis2 == 0) - ent->_axis2 = S_ENTITY_NULL; - ent->attributes[5].aDesc = a_6local_origin; - if(ent->_local_origin == 0) - ent->_local_origin = S_ENTITY_NULL; - ent->attributes[6].aDesc = a_7scale; -} - -SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCartesian_transformation_operator::get_os_typespec()) - SdaiCartesian_transformation_operator; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCartesian_transformation_operator::get_os_typespec()) -// SdaiCartesian_transformation_operator; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator; -} -#endif - -#ifdef __O3DB__ -void -SdaiCartesian_transformation_operator::oodb_reInit () -{ eDesc = config_control_designe_cartesian_transformation_operator; - attributes [3].aDesc = a_4axis1; - attributes [4].aDesc = a_5axis2; - attributes [5].aDesc = a_6local_origin; - attributes [6].aDesc = a_7scale; -} -#endif - -SdaiCartesian_transformation_operator::SdaiCartesian_transformation_operator (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiFunctionally_defined_transformation */ -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - se->AppendMultInstance(new SdaiFunctionally_defined_transformation(se, attrFlags)); -#endif - se->AppendMultInstance(new SdaiFunctionally_defined_transformation(se, 0)); - - eDesc = config_control_designe_cartesian_transformation_operator; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_4axis1, (SCLP23(Application_instance_ptr) *) &_axis1); -#else - STEPattribute *a = new STEPattribute(*a_4axis1, (SCLP23(Application_instance_ptr) *) &_axis1); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_5axis2, (SCLP23(Application_instance_ptr) *) &_axis2); -#else - a = new STEPattribute(*a_5axis2, (SCLP23(Application_instance_ptr) *) &_axis2); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_6local_origin, (SCLP23(Application_instance_ptr) *) &_local_origin); -#else - a = new STEPattribute(*a_6local_origin, (SCLP23(Application_instance_ptr) *) &_local_origin); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_7scale, &_scale); -#else - a = new STEPattribute(*a_7scale, &_scale); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("scl"); -} - -const SdaiDirection_ptr -SdaiCartesian_transformation_operator::axis1_() const -{ - return (SdaiDirection_ptr) _axis1; -} - -void -SdaiCartesian_transformation_operator::axis1_ (const SdaiDirection_ptr x) - -{ - _axis1 = x; -} - -const SdaiDirection_ptr -SdaiCartesian_transformation_operator::axis2_() const -{ - return (SdaiDirection_ptr) _axis2; -} - -void -SdaiCartesian_transformation_operator::axis2_ (const SdaiDirection_ptr x) - -{ - _axis2 = x; -} - -const SdaiCartesian_point_ptr -SdaiCartesian_transformation_operator::local_origin_() const -{ - return (SdaiCartesian_point_ptr) _local_origin; -} - -void -SdaiCartesian_transformation_operator::local_origin_ (const SdaiCartesian_point_ptr x) - -{ - _local_origin = x; -} - -const SCLP23(Real) -SdaiCartesian_transformation_operator::scale_() const -{ - return (SCLP23(Real)) _scale; -} - -void -SdaiCartesian_transformation_operator::scale_ (const SCLP23(Real) x) - -{ - _scale = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -const SdaiLabel -SdaiCartesian_transformation_operator::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiCartesian_transformation_operator::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiCartesian_transformation_operator::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiCartesian_transformation_operator::description_ (const SdaiText x) - -{ - _description = x; -} - -#endif - -///////// END_ENTITY cartesian_transformation_operator - - -///////// ENTITY cartesian_transformation_operator_3d - -EntityDescriptor *config_control_designe_cartesian_transformation_operator_3d =0; -AttrDescriptor *a_9axis3 =0; -Derived_attribute *a_10Du =0; -SdaiCartesian_transformation_operator_3d::SdaiCartesian_transformation_operator_3d( ) -{ - - /* parent: SdaiCartesian_transformation_operator */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cartesian_transformation_operator_3d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_9axis3, (SCLP23(Application_instance_ptr) *) &_axis3); -#else - STEPattribute *a = new STEPattribute(*a_9axis3, (SCLP23(Application_instance_ptr) *) &_axis3); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("scl"); - MakeDerived ("u"); -} -SdaiCartesian_transformation_operator_3d::SdaiCartesian_transformation_operator_3d (SdaiCartesian_transformation_operator_3d& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCartesian_transformation_operator_3d::~SdaiCartesian_transformation_operator_3d () { } - -#ifdef __OSTORE__ - -void -SdaiCartesian_transformation_operator_3d::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCartesian_transformation_operator_3d: virtual access function." << G4endl; - SdaiCartesian_transformation_operator_3d_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCartesian_transformation_operator_3d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCartesian_transformation_operator_3d: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCartesian_transformation_operator_3d *ent = (SdaiCartesian_transformation_operator_3d *)sent; -// SdaiCartesian_transformation_operator_3d *ent = (SdaiCartesian_transformation_operator_3d *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cartesian_transformation_operator_3d; - ent->attributes[7].aDesc = a_9axis3; - if(ent->_axis3 == 0) - ent->_axis3 = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator_3d(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCartesian_transformation_operator_3d::get_os_typespec()) - SdaiCartesian_transformation_operator_3d; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCartesian_transformation_operator_3d::get_os_typespec()) -// SdaiCartesian_transformation_operator_3d; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator_3d; -} -#endif - -#ifdef __O3DB__ -void -SdaiCartesian_transformation_operator_3d::oodb_reInit () -{ eDesc = config_control_designe_cartesian_transformation_operator_3d; - attributes [7].aDesc = a_9axis3; -} -#endif - -SdaiCartesian_transformation_operator_3d::SdaiCartesian_transformation_operator_3d (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCartesian_transformation_operator(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCartesian_transformation_operator */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cartesian_transformation_operator_3d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_9axis3, (SCLP23(Application_instance_ptr) *) &_axis3); -#else - STEPattribute *a = new STEPattribute(*a_9axis3, (SCLP23(Application_instance_ptr) *) &_axis3); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("scl"); - MakeDerived ("u"); -} - -const SdaiDirection_ptr -SdaiCartesian_transformation_operator_3d::axis3_() const -{ - return (SdaiDirection_ptr) _axis3; -} - -void -SdaiCartesian_transformation_operator_3d::axis3_ (const SdaiDirection_ptr x) - -{ - _axis3 = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cartesian_transformation_operator_3d - - -///////// ENTITY versioned_action_request - -EntityDescriptor *config_control_designe_versioned_action_request =0; -AttrDescriptor *a_11id =0; -AttrDescriptor *a_12version =0; -AttrDescriptor *a_13purpose =0; -AttrDescriptor *a_14description =0; -SdaiVersioned_action_request::SdaiVersioned_action_request( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_versioned_action_request; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_11id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_11id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_12version, &_version); -#else - a = new STEPattribute(*a_12version, &_version); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_13purpose, &_purpose); -#else - a = new STEPattribute(*a_13purpose, &_purpose); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_14description, &_description); -#else - a = new STEPattribute(*a_14description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiVersioned_action_request::SdaiVersioned_action_request (SdaiVersioned_action_request& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiVersioned_action_request::~SdaiVersioned_action_request () { } - -#ifdef __OSTORE__ - -void -SdaiVersioned_action_request::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVersioned_action_request: virtual access function." << G4endl; - SdaiVersioned_action_request_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiVersioned_action_request_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVersioned_action_request: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiVersioned_action_request *ent = (SdaiVersioned_action_request *)sent; -// SdaiVersioned_action_request *ent = (SdaiVersioned_action_request *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_versioned_action_request; - ent->attributes[0].aDesc = a_11id; - ent->attributes[1].aDesc = a_12version; - ent->attributes[2].aDesc = a_13purpose; - ent->attributes[3].aDesc = a_14description; -} - -SCLP23(Application_instance_ptr) -create_SdaiVersioned_action_request(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiVersioned_action_request::get_os_typespec()) - SdaiVersioned_action_request; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiVersioned_action_request::get_os_typespec()) -// SdaiVersioned_action_request; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiVersioned_action_request; -} -#endif - -#ifdef __O3DB__ -void -SdaiVersioned_action_request::oodb_reInit () -{ eDesc = config_control_designe_versioned_action_request; - attributes [0].aDesc = a_11id; - attributes [1].aDesc = a_12version; - attributes [2].aDesc = a_13purpose; - attributes [3].aDesc = a_14description; -} -#endif - -SdaiVersioned_action_request::SdaiVersioned_action_request( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_versioned_action_request; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_11id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_11id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_12version, &_version); -#else - a = new STEPattribute(*a_12version, &_version); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_13purpose, &_purpose); -#else - a = new STEPattribute(*a_13purpose, &_purpose); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_14description, &_description); -#else - a = new STEPattribute(*a_14description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiVersioned_action_request::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiVersioned_action_request::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiLabel -SdaiVersioned_action_request::version_() const -{ - return (SdaiLabel) _version; -} - -void -SdaiVersioned_action_request::version_ (const SdaiLabel x) - -{ - _version = x; -} - -const SdaiText -SdaiVersioned_action_request::purpose_() const -{ - return (SdaiText) _purpose; -} - -void -SdaiVersioned_action_request::purpose_ (const SdaiText x) - -{ - _purpose = x; -} - -const SdaiText -SdaiVersioned_action_request::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiVersioned_action_request::description_ (const SdaiText x) - -{ - _description = x; -} - -///////// END_ENTITY versioned_action_request - - -///////// ENTITY representation - -EntityDescriptor *config_control_designe_representation =0; -AttrDescriptor *a_15name =0; -AttrDescriptor *a_16items =0; -AttrDescriptor *a_17context_of_items =0; -SdaiRepresentation::SdaiRepresentation( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_representation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_15name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_15name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_16items, &_items); -#else - a = new STEPattribute(*a_16items, &_items); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_17context_of_items, (SCLP23(Application_instance_ptr) *) &_context_of_items); -#else - a = new STEPattribute(*a_17context_of_items, (SCLP23(Application_instance_ptr) *) &_context_of_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiRepresentation::SdaiRepresentation (SdaiRepresentation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRepresentation::~SdaiRepresentation () { } - -#ifdef __OSTORE__ - -void -SdaiRepresentation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation: virtual access function." << G4endl; - SdaiRepresentation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRepresentation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRepresentation *ent = (SdaiRepresentation *)sent; -// SdaiRepresentation *ent = (SdaiRepresentation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_representation; - ent->attributes[0].aDesc = a_15name; - ent->attributes[1].aDesc = a_16items; - ent->attributes[2].aDesc = a_17context_of_items; - if(ent->_context_of_items == 0) - ent->_context_of_items = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiRepresentation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRepresentation::get_os_typespec()) - SdaiRepresentation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRepresentation::get_os_typespec()) -// SdaiRepresentation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRepresentation; -} -#endif - -#ifdef __O3DB__ -void -SdaiRepresentation::oodb_reInit () -{ eDesc = config_control_designe_representation; - attributes [0].aDesc = a_15name; - attributes [1].aDesc = a_16items; - attributes [2].aDesc = a_17context_of_items; -} -#endif - -SdaiRepresentation::SdaiRepresentation( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_representation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_15name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_15name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_16items, &_items); -#else - a = new STEPattribute(*a_16items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_17context_of_items, (SCLP23(Application_instance_ptr) *) &_context_of_items); -#else - a = new STEPattribute(*a_17context_of_items, (SCLP23(Application_instance_ptr) *) &_context_of_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiRepresentation::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiRepresentation::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const EntityAggregate_ptr -SdaiRepresentation::items_() const -{ - return (EntityAggregate_ptr) &_items; -} - -void -SdaiRepresentation::items_ (const EntityAggregate_ptr x) - - { _items.ShallowCopy (*x); } - -const SdaiRepresentation_context_ptr -SdaiRepresentation::context_of_items_() const -{ - return (SdaiRepresentation_context_ptr) _context_of_items; -} - -void -SdaiRepresentation::context_of_items_ (const SdaiRepresentation_context_ptr x) - -{ - _context_of_items = x; -} - -///////// END_ENTITY representation - - -///////// ENTITY shape_representation - -EntityDescriptor *config_control_designe_shape_representation =0; -SdaiShape_representation::SdaiShape_representation( ) -{ - - /* parent: SdaiRepresentation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shape_representation; -} -SdaiShape_representation::SdaiShape_representation (SdaiShape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiShape_representation::~SdaiShape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiShape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_representation: virtual access function." << G4endl; - SdaiShape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiShape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiShape_representation *ent = (SdaiShape_representation *)sent; -// SdaiShape_representation *ent = (SdaiShape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_shape_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiShape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiShape_representation::get_os_typespec()) - SdaiShape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiShape_representation::get_os_typespec()) -// SdaiShape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiShape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiShape_representation::oodb_reInit () -{ eDesc = config_control_designe_shape_representation; -} -#endif - -SdaiShape_representation::SdaiShape_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shape_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY shape_representation - - -///////// ENTITY manifold_surface_shape_representation - -EntityDescriptor *config_control_designe_manifold_surface_shape_representation =0; -SdaiManifold_surface_shape_representation::SdaiManifold_surface_shape_representation( ) -{ - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_manifold_surface_shape_representation; -} -SdaiManifold_surface_shape_representation::SdaiManifold_surface_shape_representation (SdaiManifold_surface_shape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiManifold_surface_shape_representation::~SdaiManifold_surface_shape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiManifold_surface_shape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiManifold_surface_shape_representation: virtual access function." << G4endl; - SdaiManifold_surface_shape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiManifold_surface_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiManifold_surface_shape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiManifold_surface_shape_representation *ent = (SdaiManifold_surface_shape_representation *)sent; -// SdaiManifold_surface_shape_representation *ent = (SdaiManifold_surface_shape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_manifold_surface_shape_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiManifold_surface_shape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiManifold_surface_shape_representation::get_os_typespec()) - SdaiManifold_surface_shape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiManifold_surface_shape_representation::get_os_typespec()) -// SdaiManifold_surface_shape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiManifold_surface_shape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiManifold_surface_shape_representation::oodb_reInit () -{ eDesc = config_control_designe_manifold_surface_shape_representation; -} -#endif - -SdaiManifold_surface_shape_representation::SdaiManifold_surface_shape_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiShape_representation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_manifold_surface_shape_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY manifold_surface_shape_representation - - -///////// ENTITY certification - -EntityDescriptor *config_control_designe_certification =0; -AttrDescriptor *a_18name =0; -AttrDescriptor *a_19purpose =0; -AttrDescriptor *a_20kind =0; -SdaiCertification::SdaiCertification( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_certification; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_18name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_18name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_19purpose, &_purpose); -#else - a = new STEPattribute(*a_19purpose, &_purpose); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_20kind, (SCLP23(Application_instance_ptr) *) &_kind); -#else - a = new STEPattribute(*a_20kind, (SCLP23(Application_instance_ptr) *) &_kind); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCertification::SdaiCertification (SdaiCertification& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCertification::~SdaiCertification () { } - -#ifdef __OSTORE__ - -void -SdaiCertification::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCertification: virtual access function." << G4endl; - SdaiCertification_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCertification_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCertification: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCertification *ent = (SdaiCertification *)sent; -// SdaiCertification *ent = (SdaiCertification *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_certification; - ent->attributes[0].aDesc = a_18name; - ent->attributes[1].aDesc = a_19purpose; - ent->attributes[2].aDesc = a_20kind; - if(ent->_kind == 0) - ent->_kind = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiCertification(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCertification::get_os_typespec()) - SdaiCertification; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCertification::get_os_typespec()) -// SdaiCertification; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCertification; -} -#endif - -#ifdef __O3DB__ -void -SdaiCertification::oodb_reInit () -{ eDesc = config_control_designe_certification; - attributes [0].aDesc = a_18name; - attributes [1].aDesc = a_19purpose; - attributes [2].aDesc = a_20kind; -} -#endif - -SdaiCertification::SdaiCertification( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_certification; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_18name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_18name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_19purpose, &_purpose); -#else - a = new STEPattribute(*a_19purpose, &_purpose); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_20kind, (SCLP23(Application_instance_ptr) *) &_kind); -#else - a = new STEPattribute(*a_20kind, (SCLP23(Application_instance_ptr) *) &_kind); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiCertification::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiCertification::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiCertification::purpose_() const -{ - return (SdaiText) _purpose; -} - -void -SdaiCertification::purpose_ (const SdaiText x) - -{ - _purpose = x; -} - -const SdaiCertification_type_ptr -SdaiCertification::kind_() const -{ - return (SdaiCertification_type_ptr) _kind; -} - -void -SdaiCertification::kind_ (const SdaiCertification_type_ptr x) - -{ - _kind = x; -} - -///////// END_ENTITY certification - - -///////// ENTITY product_definition_relationship - -EntityDescriptor *config_control_designe_product_definition_relationship =0; -AttrDescriptor *a_21id =0; -AttrDescriptor *a_22name =0; -AttrDescriptor *a_23description =0; -AttrDescriptor *a_24relating_product_definition =0; -AttrDescriptor *a_25related_product_definition =0; -SdaiProduct_definition_relationship::SdaiProduct_definition_relationship( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_product_definition_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_21id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_21id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_22name, &_name); -#else - a = new STEPattribute(*a_22name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_23description, &_description); -#else - a = new STEPattribute(*a_23description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_24relating_product_definition, (SCLP23(Application_instance_ptr) *) &_relating_product_definition); -#else - a = new STEPattribute(*a_24relating_product_definition, (SCLP23(Application_instance_ptr) *) &_relating_product_definition); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_25related_product_definition, (SCLP23(Application_instance_ptr) *) &_related_product_definition); -#else - a = new STEPattribute(*a_25related_product_definition, (SCLP23(Application_instance_ptr) *) &_related_product_definition); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_definition_relationship::SdaiProduct_definition_relationship (SdaiProduct_definition_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition_relationship::~SdaiProduct_definition_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_relationship: virtual access function." << G4endl; - SdaiProduct_definition_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition_relationship *ent = (SdaiProduct_definition_relationship *)sent; -// SdaiProduct_definition_relationship *ent = (SdaiProduct_definition_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition_relationship; - ent->attributes[0].aDesc = a_21id; - ent->attributes[1].aDesc = a_22name; - ent->attributes[2].aDesc = a_23description; - ent->attributes[3].aDesc = a_24relating_product_definition; - if(ent->_relating_product_definition == 0) - ent->_relating_product_definition = S_ENTITY_NULL; - ent->attributes[4].aDesc = a_25related_product_definition; - if(ent->_related_product_definition == 0) - ent->_related_product_definition = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition_relationship::get_os_typespec()) - SdaiProduct_definition_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition_relationship::get_os_typespec()) -// SdaiProduct_definition_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition_relationship::oodb_reInit () -{ eDesc = config_control_designe_product_definition_relationship; - attributes [0].aDesc = a_21id; - attributes [1].aDesc = a_22name; - attributes [2].aDesc = a_23description; - attributes [3].aDesc = a_24relating_product_definition; - attributes [4].aDesc = a_25related_product_definition; -} -#endif - -SdaiProduct_definition_relationship::SdaiProduct_definition_relationship( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_product_definition_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_21id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_21id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_22name, &_name); -#else - a = new STEPattribute(*a_22name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_23description, &_description); -#else - a = new STEPattribute(*a_23description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_24relating_product_definition, (SCLP23(Application_instance_ptr) *) &_relating_product_definition); -#else - a = new STEPattribute(*a_24relating_product_definition, (SCLP23(Application_instance_ptr) *) &_relating_product_definition); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_25related_product_definition, (SCLP23(Application_instance_ptr) *) &_related_product_definition); -#else - a = new STEPattribute(*a_25related_product_definition, (SCLP23(Application_instance_ptr) *) &_related_product_definition); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiProduct_definition_relationship::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiProduct_definition_relationship::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiLabel -SdaiProduct_definition_relationship::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiProduct_definition_relationship::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiProduct_definition_relationship::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiProduct_definition_relationship::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiProduct_definition_ptr -SdaiProduct_definition_relationship::relating_product_definition_() const -{ - return (SdaiProduct_definition_ptr) _relating_product_definition; -} - -void -SdaiProduct_definition_relationship::relating_product_definition_ (const SdaiProduct_definition_ptr x) - -{ - _relating_product_definition = x; -} - -const SdaiProduct_definition_ptr -SdaiProduct_definition_relationship::related_product_definition_() const -{ - return (SdaiProduct_definition_ptr) _related_product_definition; -} - -void -SdaiProduct_definition_relationship::related_product_definition_ (const SdaiProduct_definition_ptr x) - -{ - _related_product_definition = x; -} - -///////// END_ENTITY product_definition_relationship - - -///////// ENTITY product_definition_usage - -EntityDescriptor *config_control_designe_product_definition_usage =0; -SdaiProduct_definition_usage::SdaiProduct_definition_usage( ) -{ - - /* parent: SdaiProduct_definition_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_usage; -} -SdaiProduct_definition_usage::SdaiProduct_definition_usage (SdaiProduct_definition_usage& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition_usage::~SdaiProduct_definition_usage () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition_usage::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_usage: virtual access function." << G4endl; - SdaiProduct_definition_usage_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_usage_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_usage: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition_usage *ent = (SdaiProduct_definition_usage *)sent; -// SdaiProduct_definition_usage *ent = (SdaiProduct_definition_usage *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition_usage; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_usage(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition_usage::get_os_typespec()) - SdaiProduct_definition_usage; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition_usage::get_os_typespec()) -// SdaiProduct_definition_usage; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_usage; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition_usage::oodb_reInit () -{ eDesc = config_control_designe_product_definition_usage; -} -#endif - -SdaiProduct_definition_usage::SdaiProduct_definition_usage (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_definition_relationship(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_definition_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_usage; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_definition_usage - - -///////// ENTITY assembly_component_usage - -EntityDescriptor *config_control_designe_assembly_component_usage =0; -AttrDescriptor *a_26reference_designator =0; -SdaiAssembly_component_usage::SdaiAssembly_component_usage( ) -{ - - /* parent: SdaiProduct_definition_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_assembly_component_usage; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_26reference_designator, &_reference_designator); -#else - STEPattribute *a = new STEPattribute(*a_26reference_designator, &_reference_designator); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAssembly_component_usage::SdaiAssembly_component_usage (SdaiAssembly_component_usage& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAssembly_component_usage::~SdaiAssembly_component_usage () { } - -#ifdef __OSTORE__ - -void -SdaiAssembly_component_usage::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAssembly_component_usage: virtual access function." << G4endl; - SdaiAssembly_component_usage_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAssembly_component_usage_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAssembly_component_usage: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAssembly_component_usage *ent = (SdaiAssembly_component_usage *)sent; -// SdaiAssembly_component_usage *ent = (SdaiAssembly_component_usage *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_assembly_component_usage; - ent->attributes[5].aDesc = a_26reference_designator; -} - -SCLP23(Application_instance_ptr) -create_SdaiAssembly_component_usage(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAssembly_component_usage::get_os_typespec()) - SdaiAssembly_component_usage; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAssembly_component_usage::get_os_typespec()) -// SdaiAssembly_component_usage; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAssembly_component_usage; -} -#endif - -#ifdef __O3DB__ -void -SdaiAssembly_component_usage::oodb_reInit () -{ eDesc = config_control_designe_assembly_component_usage; - attributes [5].aDesc = a_26reference_designator; -} -#endif - -SdaiAssembly_component_usage::SdaiAssembly_component_usage (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_definition_usage(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_definition_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_assembly_component_usage; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_26reference_designator, &_reference_designator); -#else - STEPattribute *a = new STEPattribute(*a_26reference_designator, &_reference_designator); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiAssembly_component_usage::reference_designator_() const -{ - return (SdaiIdentifier) _reference_designator; -} - -void -SdaiAssembly_component_usage::reference_designator_ (const SdaiIdentifier x) - -{ - _reference_designator = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY assembly_component_usage - - -///////// ENTITY quantified_assembly_component_usage - -EntityDescriptor *config_control_designe_quantified_assembly_component_usage =0; -AttrDescriptor *a_27quantity =0; -SdaiQuantified_assembly_component_usage::SdaiQuantified_assembly_component_usage( ) -{ - - /* parent: SdaiAssembly_component_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_quantified_assembly_component_usage; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_27quantity, (SCLP23(Application_instance_ptr) *) &_quantity); -#else - STEPattribute *a = new STEPattribute(*a_27quantity, (SCLP23(Application_instance_ptr) *) &_quantity); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiQuantified_assembly_component_usage::SdaiQuantified_assembly_component_usage (SdaiQuantified_assembly_component_usage& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiQuantified_assembly_component_usage::~SdaiQuantified_assembly_component_usage () { } - -#ifdef __OSTORE__ - -void -SdaiQuantified_assembly_component_usage::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiQuantified_assembly_component_usage: virtual access function." << G4endl; - SdaiQuantified_assembly_component_usage_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiQuantified_assembly_component_usage_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiQuantified_assembly_component_usage: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiQuantified_assembly_component_usage *ent = (SdaiQuantified_assembly_component_usage *)sent; -// SdaiQuantified_assembly_component_usage *ent = (SdaiQuantified_assembly_component_usage *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_quantified_assembly_component_usage; - ent->attributes[6].aDesc = a_27quantity; - if(ent->_quantity == 0) - ent->_quantity = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiQuantified_assembly_component_usage(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiQuantified_assembly_component_usage::get_os_typespec()) - SdaiQuantified_assembly_component_usage; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiQuantified_assembly_component_usage::get_os_typespec()) -// SdaiQuantified_assembly_component_usage; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiQuantified_assembly_component_usage; -} -#endif - -#ifdef __O3DB__ -void -SdaiQuantified_assembly_component_usage::oodb_reInit () -{ eDesc = config_control_designe_quantified_assembly_component_usage; - attributes [6].aDesc = a_27quantity; -} -#endif - -SdaiQuantified_assembly_component_usage::SdaiQuantified_assembly_component_usage (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAssembly_component_usage(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAssembly_component_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_quantified_assembly_component_usage; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_27quantity, (SCLP23(Application_instance_ptr) *) &_quantity); -#else - STEPattribute *a = new STEPattribute(*a_27quantity, (SCLP23(Application_instance_ptr) *) &_quantity); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiMeasure_with_unit_ptr -SdaiQuantified_assembly_component_usage::quantity_() const -{ - return (SdaiMeasure_with_unit_ptr) _quantity; -} - -void -SdaiQuantified_assembly_component_usage::quantity_ (const SdaiMeasure_with_unit_ptr x) - -{ - _quantity = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY quantified_assembly_component_usage - - -///////// ENTITY solid_model - -EntityDescriptor *config_control_designe_solid_model =0; -SdaiSolid_model::SdaiSolid_model( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_solid_model; - MakeDerived ("dim"); -} -SdaiSolid_model::SdaiSolid_model (SdaiSolid_model& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSolid_model::~SdaiSolid_model () { } - -#ifdef __OSTORE__ - -void -SdaiSolid_model::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSolid_model: virtual access function." << G4endl; - SdaiSolid_model_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSolid_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSolid_model: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSolid_model *ent = (SdaiSolid_model *)sent; -// SdaiSolid_model *ent = (SdaiSolid_model *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_solid_model; -} - -SCLP23(Application_instance_ptr) -create_SdaiSolid_model(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSolid_model::get_os_typespec()) - SdaiSolid_model; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSolid_model::get_os_typespec()) -// SdaiSolid_model; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSolid_model; -} -#endif - -#ifdef __O3DB__ -void -SdaiSolid_model::oodb_reInit () -{ eDesc = config_control_designe_solid_model; -} -#endif - -SdaiSolid_model::SdaiSolid_model (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_solid_model; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY solid_model - - -///////// ENTITY manifold_solid_brep - -EntityDescriptor *config_control_designe_manifold_solid_brep =0; -AttrDescriptor *a_28outer =0; -SdaiManifold_solid_brep::SdaiManifold_solid_brep( ) -{ - - /* parent: SdaiSolid_model */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_manifold_solid_brep; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_28outer, (SCLP23(Application_instance_ptr) *) &_outer); -#else - STEPattribute *a = new STEPattribute(*a_28outer, (SCLP23(Application_instance_ptr) *) &_outer); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiManifold_solid_brep::SdaiManifold_solid_brep (SdaiManifold_solid_brep& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiManifold_solid_brep::~SdaiManifold_solid_brep () { } - -#ifdef __OSTORE__ - -void -SdaiManifold_solid_brep::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiManifold_solid_brep: virtual access function." << G4endl; - SdaiManifold_solid_brep_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiManifold_solid_brep_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiManifold_solid_brep: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiManifold_solid_brep *ent = (SdaiManifold_solid_brep *)sent; -// SdaiManifold_solid_brep *ent = (SdaiManifold_solid_brep *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_manifold_solid_brep; - ent->attributes[1].aDesc = a_28outer; - if(ent->_outer == 0) - ent->_outer = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiManifold_solid_brep(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiManifold_solid_brep::get_os_typespec()) - SdaiManifold_solid_brep; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiManifold_solid_brep::get_os_typespec()) -// SdaiManifold_solid_brep; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiManifold_solid_brep; -} -#endif - -#ifdef __O3DB__ -void -SdaiManifold_solid_brep::oodb_reInit () -{ eDesc = config_control_designe_manifold_solid_brep; - attributes [1].aDesc = a_28outer; -} -#endif - -SdaiManifold_solid_brep::SdaiManifold_solid_brep (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSolid_model(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSolid_model */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_manifold_solid_brep; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_28outer, (SCLP23(Application_instance_ptr) *) &_outer); -#else - STEPattribute *a = new STEPattribute(*a_28outer, (SCLP23(Application_instance_ptr) *) &_outer); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiClosed_shell_ptr -SdaiManifold_solid_brep::outer_() const -{ - return (SdaiClosed_shell_ptr) _outer; -} - -void -SdaiManifold_solid_brep::outer_ (const SdaiClosed_shell_ptr x) - -{ - _outer = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY manifold_solid_brep - - -///////// ENTITY faceted_brep - -EntityDescriptor *config_control_designe_faceted_brep =0; -SdaiFaceted_brep::SdaiFaceted_brep( ) -{ - - /* parent: SdaiManifold_solid_brep */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_faceted_brep; - MakeDerived ("dim"); -} -SdaiFaceted_brep::SdaiFaceted_brep (SdaiFaceted_brep& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiFaceted_brep::~SdaiFaceted_brep () { } - -#ifdef __OSTORE__ - -void -SdaiFaceted_brep::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFaceted_brep: virtual access function." << G4endl; - SdaiFaceted_brep_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiFaceted_brep_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFaceted_brep: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiFaceted_brep *ent = (SdaiFaceted_brep *)sent; -// SdaiFaceted_brep *ent = (SdaiFaceted_brep *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_faceted_brep; -} - -SCLP23(Application_instance_ptr) -create_SdaiFaceted_brep(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiFaceted_brep::get_os_typespec()) - SdaiFaceted_brep; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiFaceted_brep::get_os_typespec()) -// SdaiFaceted_brep; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiFaceted_brep; -} -#endif - -#ifdef __O3DB__ -void -SdaiFaceted_brep::oodb_reInit () -{ eDesc = config_control_designe_faceted_brep; -} -#endif - -SdaiFaceted_brep::SdaiFaceted_brep (SCLP23(Application_instance) *se, int *addAttrs) : SdaiManifold_solid_brep(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiManifold_solid_brep */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_faceted_brep; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY faceted_brep - - -///////// ENTITY action_directive - -EntityDescriptor *config_control_designe_action_directive =0; -AttrDescriptor *a_29name =0; -AttrDescriptor *a_30description =0; -AttrDescriptor *a_31analysis =0; -AttrDescriptor *a_32comment =0; -AttrDescriptor *a_33requests =0; -SdaiAction_directive::SdaiAction_directive( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_action_directive; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_29name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_29name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_30description, &_description); -#else - a = new STEPattribute(*a_30description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_31analysis, &_analysis); -#else - a = new STEPattribute(*a_31analysis, &_analysis); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_32comment, &_comment); -#else - a = new STEPattribute(*a_32comment, &_comment); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_33requests, &_requests); -#else - a = new STEPattribute(*a_33requests, &_requests); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAction_directive::SdaiAction_directive (SdaiAction_directive& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAction_directive::~SdaiAction_directive () { } - -#ifdef __OSTORE__ - -void -SdaiAction_directive::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_directive: virtual access function." << G4endl; - SdaiAction_directive_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAction_directive_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_directive: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAction_directive *ent = (SdaiAction_directive *)sent; -// SdaiAction_directive *ent = (SdaiAction_directive *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_action_directive; - ent->attributes[0].aDesc = a_29name; - ent->attributes[1].aDesc = a_30description; - ent->attributes[2].aDesc = a_31analysis; - ent->attributes[3].aDesc = a_32comment; - ent->attributes[4].aDesc = a_33requests; -} - -SCLP23(Application_instance_ptr) -create_SdaiAction_directive(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAction_directive::get_os_typespec()) - SdaiAction_directive; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAction_directive::get_os_typespec()) -// SdaiAction_directive; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAction_directive; -} -#endif - -#ifdef __O3DB__ -void -SdaiAction_directive::oodb_reInit () -{ eDesc = config_control_designe_action_directive; - attributes [0].aDesc = a_29name; - attributes [1].aDesc = a_30description; - attributes [2].aDesc = a_31analysis; - attributes [3].aDesc = a_32comment; - attributes [4].aDesc = a_33requests; -} -#endif - -SdaiAction_directive::SdaiAction_directive( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_action_directive; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_29name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_29name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_30description, &_description); -#else - a = new STEPattribute(*a_30description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_31analysis, &_analysis); -#else - a = new STEPattribute(*a_31analysis, &_analysis); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_32comment, &_comment); -#else - a = new STEPattribute(*a_32comment, &_comment); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_33requests, &_requests); -#else - a = new STEPattribute(*a_33requests, &_requests); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiAction_directive::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiAction_directive::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiAction_directive::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiAction_directive::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiText -SdaiAction_directive::analysis_() const -{ - return (SdaiText) _analysis; -} - -void -SdaiAction_directive::analysis_ (const SdaiText x) - -{ - _analysis = x; -} - -const SdaiText -SdaiAction_directive::comment_() const -{ - return (SdaiText) _comment; -} - -void -SdaiAction_directive::comment_ (const SdaiText x) - -{ - _comment = x; -} - -const EntityAggregate_ptr -SdaiAction_directive::requests_() const -{ - return (EntityAggregate_ptr) &_requests; -} - -void -SdaiAction_directive::requests_ (const EntityAggregate_ptr x) - - { _requests.ShallowCopy (*x); } - -///////// END_ENTITY action_directive - - -///////// ENTITY named_unit - -EntityDescriptor *config_control_designe_named_unit =0; -AttrDescriptor *a_34dimensions =0; -SdaiNamed_unit::SdaiNamed_unit( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_named_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_34dimensions, (SCLP23(Application_instance_ptr) *) &_dimensions); -#else - STEPattribute *a = new STEPattribute(*a_34dimensions, (SCLP23(Application_instance_ptr) *) &_dimensions); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiNamed_unit::SdaiNamed_unit (SdaiNamed_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiNamed_unit::~SdaiNamed_unit () { } - -#ifdef __OSTORE__ - -void -SdaiNamed_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiNamed_unit: virtual access function." << G4endl; - SdaiNamed_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiNamed_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiNamed_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiNamed_unit *ent = (SdaiNamed_unit *)sent; -// SdaiNamed_unit *ent = (SdaiNamed_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_named_unit; - ent->attributes[0].aDesc = a_34dimensions; - if(ent->_dimensions == 0) - ent->_dimensions = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiNamed_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiNamed_unit::get_os_typespec()) - SdaiNamed_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiNamed_unit::get_os_typespec()) -// SdaiNamed_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiNamed_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiNamed_unit::oodb_reInit () -{ eDesc = config_control_designe_named_unit; - attributes [0].aDesc = a_34dimensions; -} -#endif - -SdaiNamed_unit::SdaiNamed_unit( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_named_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_34dimensions, (SCLP23(Application_instance_ptr) *) &_dimensions); -#else - STEPattribute *a = new STEPattribute(*a_34dimensions, (SCLP23(Application_instance_ptr) *) &_dimensions); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDimensional_exponents_ptr -SdaiNamed_unit::dimensions_() const -{ - return (SdaiDimensional_exponents_ptr) _dimensions; -} - -void -SdaiNamed_unit::dimensions_ (const SdaiDimensional_exponents_ptr x) - -{ - _dimensions = x; -} - -///////// END_ENTITY named_unit - - -///////// ENTITY plane_angle_unit - -EntityDescriptor *config_control_designe_plane_angle_unit =0; -SdaiPlane_angle_unit::SdaiPlane_angle_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_plane_angle_unit; -} -SdaiPlane_angle_unit::SdaiPlane_angle_unit (SdaiPlane_angle_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPlane_angle_unit::~SdaiPlane_angle_unit () { } - -#ifdef __OSTORE__ - -void -SdaiPlane_angle_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPlane_angle_unit: virtual access function." << G4endl; - SdaiPlane_angle_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPlane_angle_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPlane_angle_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPlane_angle_unit *ent = (SdaiPlane_angle_unit *)sent; -// SdaiPlane_angle_unit *ent = (SdaiPlane_angle_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_plane_angle_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiPlane_angle_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPlane_angle_unit::get_os_typespec()) - SdaiPlane_angle_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPlane_angle_unit::get_os_typespec()) -// SdaiPlane_angle_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPlane_angle_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiPlane_angle_unit::oodb_reInit () -{ eDesc = config_control_designe_plane_angle_unit; -} -#endif - -SdaiPlane_angle_unit::SdaiPlane_angle_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_plane_angle_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY plane_angle_unit - - -///////// ENTITY measure_with_unit - -EntityDescriptor *config_control_designe_measure_with_unit =0; -AttrDescriptor *a_35value_component =0; -AttrDescriptor *a_36unit_component =0; -SdaiMeasure_with_unit::SdaiMeasure_with_unit( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_measure_with_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_35value_component, &_value_component); -#else - STEPattribute *a = new STEPattribute(*a_35value_component, &_value_component); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_36unit_component, &_unit_component); -#else - a = new STEPattribute(*a_36unit_component, &_unit_component); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiMeasure_with_unit::SdaiMeasure_with_unit (SdaiMeasure_with_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiMeasure_with_unit::~SdaiMeasure_with_unit () { } - -#ifdef __OSTORE__ - -void -SdaiMeasure_with_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMeasure_with_unit: virtual access function." << G4endl; - SdaiMeasure_with_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiMeasure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMeasure_with_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiMeasure_with_unit *ent = (SdaiMeasure_with_unit *)sent; -// SdaiMeasure_with_unit *ent = (SdaiMeasure_with_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_measure_with_unit; - ent->attributes[0].aDesc = a_35value_component; - ent->attributes[1].aDesc = a_36unit_component; -} - -SCLP23(Application_instance_ptr) -create_SdaiMeasure_with_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiMeasure_with_unit::get_os_typespec()) - SdaiMeasure_with_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiMeasure_with_unit::get_os_typespec()) -// SdaiMeasure_with_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiMeasure_with_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiMeasure_with_unit::oodb_reInit () -{ eDesc = config_control_designe_measure_with_unit; - attributes [0].aDesc = a_35value_component; - attributes [1].aDesc = a_36unit_component; -} -#endif - -SdaiMeasure_with_unit::SdaiMeasure_with_unit( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_measure_with_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_35value_component, &_value_component); -#else - STEPattribute *a = new STEPattribute(*a_35value_component, &_value_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_36unit_component, &_unit_component); -#else - a = new STEPattribute(*a_36unit_component, &_unit_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiMeasure_value_ptr -SdaiMeasure_with_unit::value_component_() const - { return (SdaiMeasure_value_ptr) &_value_component; } - -void -SdaiMeasure_with_unit::value_component_ (const SdaiMeasure_value_ptr x) - - { _value_component = x; } - -const SdaiUnit_ptr -SdaiMeasure_with_unit::unit_component_() const - { return (SdaiUnit_ptr) &_unit_component; } - -void -SdaiMeasure_with_unit::unit_component_ (const SdaiUnit_ptr x) - - { _unit_component = x; } - -///////// END_ENTITY measure_with_unit - - -///////// ENTITY area_measure_with_unit - -EntityDescriptor *config_control_designe_area_measure_with_unit =0; -SdaiArea_measure_with_unit::SdaiArea_measure_with_unit( ) -{ - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_area_measure_with_unit; -} -SdaiArea_measure_with_unit::SdaiArea_measure_with_unit (SdaiArea_measure_with_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiArea_measure_with_unit::~SdaiArea_measure_with_unit () { } - -#ifdef __OSTORE__ - -void -SdaiArea_measure_with_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiArea_measure_with_unit: virtual access function." << G4endl; - SdaiArea_measure_with_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiArea_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiArea_measure_with_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiArea_measure_with_unit *ent = (SdaiArea_measure_with_unit *)sent; -// SdaiArea_measure_with_unit *ent = (SdaiArea_measure_with_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_area_measure_with_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiArea_measure_with_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiArea_measure_with_unit::get_os_typespec()) - SdaiArea_measure_with_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiArea_measure_with_unit::get_os_typespec()) -// SdaiArea_measure_with_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiArea_measure_with_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiArea_measure_with_unit::oodb_reInit () -{ eDesc = config_control_designe_area_measure_with_unit; -} -#endif - -SdaiArea_measure_with_unit::SdaiArea_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiMeasure_with_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_area_measure_with_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY area_measure_with_unit - - -///////// ENTITY effectivity - -EntityDescriptor *config_control_designe_effectivity =0; -AttrDescriptor *a_37id =0; -SdaiEffectivity::SdaiEffectivity( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_37id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_37id, &_id); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiEffectivity::SdaiEffectivity (SdaiEffectivity& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiEffectivity::~SdaiEffectivity () { } - -#ifdef __OSTORE__ - -void -SdaiEffectivity::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEffectivity: virtual access function." << G4endl; - SdaiEffectivity_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiEffectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEffectivity: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiEffectivity *ent = (SdaiEffectivity *)sent; -// SdaiEffectivity *ent = (SdaiEffectivity *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_effectivity; - ent->attributes[0].aDesc = a_37id; -} - -SCLP23(Application_instance_ptr) -create_SdaiEffectivity(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiEffectivity::get_os_typespec()) - SdaiEffectivity; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiEffectivity::get_os_typespec()) -// SdaiEffectivity; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiEffectivity; -} -#endif - -#ifdef __O3DB__ -void -SdaiEffectivity::oodb_reInit () -{ eDesc = config_control_designe_effectivity; - attributes [0].aDesc = a_37id; -} -#endif - -SdaiEffectivity::SdaiEffectivity( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_37id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_37id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiEffectivity::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiEffectivity::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -///////// END_ENTITY effectivity - - -///////// ENTITY serial_numbered_effectivity - -EntityDescriptor *config_control_designe_serial_numbered_effectivity =0; -AttrDescriptor *a_38effectivity_start_id =0; -AttrDescriptor *a_39effectivity_end_id =0; -SdaiSerial_numbered_effectivity::SdaiSerial_numbered_effectivity( ) -{ - - /* parent: SdaiEffectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_serial_numbered_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_38effectivity_start_id, &_effectivity_start_id); -#else - STEPattribute *a = new STEPattribute(*a_38effectivity_start_id, &_effectivity_start_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_39effectivity_end_id, &_effectivity_end_id); -#else - a = new STEPattribute(*a_39effectivity_end_id, &_effectivity_end_id); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiSerial_numbered_effectivity::SdaiSerial_numbered_effectivity (SdaiSerial_numbered_effectivity& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSerial_numbered_effectivity::~SdaiSerial_numbered_effectivity () { } - -#ifdef __OSTORE__ - -void -SdaiSerial_numbered_effectivity::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSerial_numbered_effectivity: virtual access function." << G4endl; - SdaiSerial_numbered_effectivity_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSerial_numbered_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSerial_numbered_effectivity: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSerial_numbered_effectivity *ent = (SdaiSerial_numbered_effectivity *)sent; -// SdaiSerial_numbered_effectivity *ent = (SdaiSerial_numbered_effectivity *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_serial_numbered_effectivity; - ent->attributes[1].aDesc = a_38effectivity_start_id; - ent->attributes[2].aDesc = a_39effectivity_end_id; -} - -SCLP23(Application_instance_ptr) -create_SdaiSerial_numbered_effectivity(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSerial_numbered_effectivity::get_os_typespec()) - SdaiSerial_numbered_effectivity; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSerial_numbered_effectivity::get_os_typespec()) -// SdaiSerial_numbered_effectivity; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSerial_numbered_effectivity; -} -#endif - -#ifdef __O3DB__ -void -SdaiSerial_numbered_effectivity::oodb_reInit () -{ eDesc = config_control_designe_serial_numbered_effectivity; - attributes [1].aDesc = a_38effectivity_start_id; - attributes [2].aDesc = a_39effectivity_end_id; -} -#endif - -SdaiSerial_numbered_effectivity::SdaiSerial_numbered_effectivity (SCLP23(Application_instance) *se, int *addAttrs) : SdaiEffectivity(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiEffectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_serial_numbered_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_38effectivity_start_id, &_effectivity_start_id); -#else - STEPattribute *a = new STEPattribute(*a_38effectivity_start_id, &_effectivity_start_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_39effectivity_end_id, &_effectivity_end_id); -#else - a = new STEPattribute(*a_39effectivity_end_id, &_effectivity_end_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiSerial_numbered_effectivity::effectivity_start_id_() const -{ - return (SdaiIdentifier) _effectivity_start_id; -} - -void -SdaiSerial_numbered_effectivity::effectivity_start_id_ (const SdaiIdentifier x) - -{ - _effectivity_start_id = x; -} - -const SdaiIdentifier -SdaiSerial_numbered_effectivity::effectivity_end_id_() const -{ - return (SdaiIdentifier) _effectivity_end_id; -} - -void -SdaiSerial_numbered_effectivity::effectivity_end_id_ (const SdaiIdentifier x) - -{ - _effectivity_end_id = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY serial_numbered_effectivity - - -///////// ENTITY surface - -EntityDescriptor *config_control_designe_surface =0; -SdaiSurface::SdaiSurface( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface; - MakeDerived ("dim"); -} -SdaiSurface::SdaiSurface (SdaiSurface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSurface::~SdaiSurface () { } - -#ifdef __OSTORE__ - -void -SdaiSurface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface: virtual access function." << G4endl; - SdaiSurface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSurface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSurface *ent = (SdaiSurface *)sent; -// SdaiSurface *ent = (SdaiSurface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_surface; -} - -SCLP23(Application_instance_ptr) -create_SdaiSurface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSurface::get_os_typespec()) - SdaiSurface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSurface::get_os_typespec()) -// SdaiSurface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSurface; -} -#endif - -#ifdef __O3DB__ -void -SdaiSurface::oodb_reInit () -{ eDesc = config_control_designe_surface; -} -#endif - -SdaiSurface::SdaiSurface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY surface - - -///////// ENTITY offset_surface - -EntityDescriptor *config_control_designe_offset_surface =0; -AttrDescriptor *a_40basis_surface =0; -AttrDescriptor *a_41distance =0; -AttrDescriptor *a_42self_intersect =0; -SdaiOffset_surface::SdaiOffset_surface( ) -{ - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_offset_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_40basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_40basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_41distance, &_distance); -#else - a = new STEPattribute(*a_41distance, &_distance); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_42self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_42self_intersect, &_self_intersect); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiOffset_surface::SdaiOffset_surface (SdaiOffset_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOffset_surface::~SdaiOffset_surface () { } - -#ifdef __OSTORE__ - -void -SdaiOffset_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOffset_surface: virtual access function." << G4endl; - SdaiOffset_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOffset_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOffset_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOffset_surface *ent = (SdaiOffset_surface *)sent; -// SdaiOffset_surface *ent = (SdaiOffset_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_offset_surface; - ent->attributes[1].aDesc = a_40basis_surface; - if(ent->_basis_surface == 0) - ent->_basis_surface = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_41distance; - ent->attributes[3].aDesc = a_42self_intersect; -} - -SCLP23(Application_instance_ptr) -create_SdaiOffset_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOffset_surface::get_os_typespec()) - SdaiOffset_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOffset_surface::get_os_typespec()) -// SdaiOffset_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOffset_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiOffset_surface::oodb_reInit () -{ eDesc = config_control_designe_offset_surface; - attributes [1].aDesc = a_40basis_surface; - attributes [2].aDesc = a_41distance; - attributes [3].aDesc = a_42self_intersect; -} -#endif - -SdaiOffset_surface::SdaiOffset_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSurface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_offset_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_40basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_40basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_41distance, &_distance); -#else - a = new STEPattribute(*a_41distance, &_distance); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_42self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_42self_intersect, &_self_intersect); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiSurface_ptr -SdaiOffset_surface::basis_surface_() const -{ - return (SdaiSurface_ptr) _basis_surface; -} - -void -SdaiOffset_surface::basis_surface_ (const SdaiSurface_ptr x) - -{ - _basis_surface = x; -} - -const SdaiLength_measure -SdaiOffset_surface::distance_() const -{ - return (SdaiLength_measure) _distance; -} - -void -SdaiOffset_surface::distance_ (const SdaiLength_measure x) - -{ - _distance = x; -} - -const SCLLOG(Logical) -SdaiOffset_surface::self_intersect_() const -{ - return (SCLLOG(Logical)) _self_intersect; -} - -void -SdaiOffset_surface::self_intersect_ (const SCLLOG(Logical) x) - -{ - _self_intersect.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY offset_surface - - -///////// ENTITY placement - -EntityDescriptor *config_control_designe_placement =0; -AttrDescriptor *a_43location =0; -SdaiPlacement::SdaiPlacement( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_placement; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_43location, (SCLP23(Application_instance_ptr) *) &_location); -#else - STEPattribute *a = new STEPattribute(*a_43location, (SCLP23(Application_instance_ptr) *) &_location); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiPlacement::SdaiPlacement (SdaiPlacement& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPlacement::~SdaiPlacement () { } - -#ifdef __OSTORE__ - -void -SdaiPlacement::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPlacement: virtual access function." << G4endl; - SdaiPlacement_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPlacement_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPlacement: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPlacement *ent = (SdaiPlacement *)sent; -// SdaiPlacement *ent = (SdaiPlacement *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_placement; - ent->attributes[1].aDesc = a_43location; - if(ent->_location == 0) - ent->_location = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiPlacement(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPlacement::get_os_typespec()) - SdaiPlacement; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPlacement::get_os_typespec()) -// SdaiPlacement; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPlacement; -} -#endif - -#ifdef __O3DB__ -void -SdaiPlacement::oodb_reInit () -{ eDesc = config_control_designe_placement; - attributes [1].aDesc = a_43location; -} -#endif - -SdaiPlacement::SdaiPlacement (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_placement; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_43location, (SCLP23(Application_instance_ptr) *) &_location); -#else - STEPattribute *a = new STEPattribute(*a_43location, (SCLP23(Application_instance_ptr) *) &_location); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCartesian_point_ptr -SdaiPlacement::location_() const -{ - return (SdaiCartesian_point_ptr) _location; -} - -void -SdaiPlacement::location_ (const SdaiCartesian_point_ptr x) - -{ - _location = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY placement - - -///////// ENTITY axis2_placement_2d - -EntityDescriptor *config_control_designe_axis2_placement_2d =0; -AttrDescriptor *a_44ref_direction =0; -Derived_attribute *a_45Dp =0; -SdaiAxis2_placement_2d::SdaiAxis2_placement_2d( ) -{ - - /* parent: SdaiPlacement */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_axis2_placement_2d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_44ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#else - STEPattribute *a = new STEPattribute(*a_44ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("p"); -} -SdaiAxis2_placement_2d::SdaiAxis2_placement_2d (SdaiAxis2_placement_2d& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAxis2_placement_2d::~SdaiAxis2_placement_2d () { } - -#ifdef __OSTORE__ - -void -SdaiAxis2_placement_2d::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAxis2_placement_2d: virtual access function." << G4endl; - SdaiAxis2_placement_2d_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAxis2_placement_2d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAxis2_placement_2d: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAxis2_placement_2d *ent = (SdaiAxis2_placement_2d *)sent; -// SdaiAxis2_placement_2d *ent = (SdaiAxis2_placement_2d *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_axis2_placement_2d; - ent->attributes[2].aDesc = a_44ref_direction; - if(ent->_ref_direction == 0) - ent->_ref_direction = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAxis2_placement_2d(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAxis2_placement_2d::get_os_typespec()) - SdaiAxis2_placement_2d; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAxis2_placement_2d::get_os_typespec()) -// SdaiAxis2_placement_2d; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAxis2_placement_2d; -} -#endif - -#ifdef __O3DB__ -void -SdaiAxis2_placement_2d::oodb_reInit () -{ eDesc = config_control_designe_axis2_placement_2d; - attributes [2].aDesc = a_44ref_direction; -} -#endif - -SdaiAxis2_placement_2d::SdaiAxis2_placement_2d (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPlacement(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPlacement */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_axis2_placement_2d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_44ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#else - STEPattribute *a = new STEPattribute(*a_44ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("p"); -} - -const SdaiDirection_ptr -SdaiAxis2_placement_2d::ref_direction_() const -{ - return (SdaiDirection_ptr) _ref_direction; -} - -void -SdaiAxis2_placement_2d::ref_direction_ (const SdaiDirection_ptr x) - -{ - _ref_direction = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY axis2_placement_2d - - -///////// ENTITY product_category - -EntityDescriptor *config_control_designe_product_category =0; -AttrDescriptor *a_46name =0; -AttrDescriptor *a_47description =0; -SdaiProduct_category::SdaiProduct_category( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_product_category; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_46name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_46name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_47description, &_description); -#else - a = new STEPattribute(*a_47description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_category::SdaiProduct_category (SdaiProduct_category& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_category::~SdaiProduct_category () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_category::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_category: virtual access function." << G4endl; - SdaiProduct_category_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_category_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_category: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_category *ent = (SdaiProduct_category *)sent; -// SdaiProduct_category *ent = (SdaiProduct_category *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_category; - ent->attributes[0].aDesc = a_46name; - ent->attributes[1].aDesc = a_47description; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_category(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_category::get_os_typespec()) - SdaiProduct_category; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_category::get_os_typespec()) -// SdaiProduct_category; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_category; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_category::oodb_reInit () -{ eDesc = config_control_designe_product_category; - attributes [0].aDesc = a_46name; - attributes [1].aDesc = a_47description; -} -#endif - -SdaiProduct_category::SdaiProduct_category( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_product_category; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_46name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_46name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_47description, &_description); -#else - a = new STEPattribute(*a_47description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiProduct_category::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiProduct_category::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiProduct_category::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiProduct_category::description_ (const SdaiText x) - -{ - _description = x; -} - -///////// END_ENTITY product_category - - -///////// ENTITY product_related_product_category - -EntityDescriptor *config_control_designe_product_related_product_category =0; -AttrDescriptor *a_48products =0; -SdaiProduct_related_product_category::SdaiProduct_related_product_category( ) -{ - - /* parent: SdaiProduct_category */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_related_product_category; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_48products, &_products); -#else - STEPattribute *a = new STEPattribute(*a_48products, &_products); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_related_product_category::SdaiProduct_related_product_category (SdaiProduct_related_product_category& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_related_product_category::~SdaiProduct_related_product_category () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_related_product_category::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_related_product_category: virtual access function." << G4endl; - SdaiProduct_related_product_category_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_related_product_category_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_related_product_category: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_related_product_category *ent = (SdaiProduct_related_product_category *)sent; -// SdaiProduct_related_product_category *ent = (SdaiProduct_related_product_category *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_related_product_category; - ent->attributes[2].aDesc = a_48products; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_related_product_category(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_related_product_category::get_os_typespec()) - SdaiProduct_related_product_category; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_related_product_category::get_os_typespec()) -// SdaiProduct_related_product_category; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_related_product_category; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_related_product_category::oodb_reInit () -{ eDesc = config_control_designe_product_related_product_category; - attributes [2].aDesc = a_48products; -} -#endif - -SdaiProduct_related_product_category::SdaiProduct_related_product_category (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_category(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_category */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_related_product_category; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_48products, &_products); -#else - STEPattribute *a = new STEPattribute(*a_48products, &_products); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiProduct_related_product_category::products_() const -{ - return (EntityAggregate_ptr) &_products; -} - -void -SdaiProduct_related_product_category::products_ (const EntityAggregate_ptr x) - - { _products.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_related_product_category - - -///////// ENTITY curve - -EntityDescriptor *config_control_designe_curve =0; -SdaiCurve::SdaiCurve( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_curve; - MakeDerived ("dim"); -} -SdaiCurve::SdaiCurve (SdaiCurve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCurve::~SdaiCurve () { } - -#ifdef __OSTORE__ - -void -SdaiCurve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCurve: virtual access function." << G4endl; - SdaiCurve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCurve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCurve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCurve *ent = (SdaiCurve *)sent; -// SdaiCurve *ent = (SdaiCurve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiCurve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCurve::get_os_typespec()) - SdaiCurve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCurve::get_os_typespec()) -// SdaiCurve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCurve; -} -#endif - -#ifdef __O3DB__ -void -SdaiCurve::oodb_reInit () -{ eDesc = config_control_designe_curve; -} -#endif - -SdaiCurve::SdaiCurve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_curve; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY curve - - -///////// ENTITY conic - -EntityDescriptor *config_control_designe_conic =0; -AttrDescriptor *a_49position =0; -SdaiConic::SdaiConic( ) -{ - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_conic; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_49position, &_position); -#else - STEPattribute *a = new STEPattribute(*a_49position, &_position); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiConic::SdaiConic (SdaiConic& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiConic::~SdaiConic () { } - -#ifdef __OSTORE__ - -void -SdaiConic::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConic: virtual access function." << G4endl; - SdaiConic_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiConic_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConic: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiConic *ent = (SdaiConic *)sent; -// SdaiConic *ent = (SdaiConic *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_conic; - ent->attributes[1].aDesc = a_49position; -} - -SCLP23(Application_instance_ptr) -create_SdaiConic(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiConic::get_os_typespec()) - SdaiConic; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiConic::get_os_typespec()) -// SdaiConic; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiConic; -} -#endif - -#ifdef __O3DB__ -void -SdaiConic::oodb_reInit () -{ eDesc = config_control_designe_conic; - attributes [1].aDesc = a_49position; -} -#endif - -SdaiConic::SdaiConic (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_conic; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_49position, &_position); -#else - STEPattribute *a = new STEPattribute(*a_49position, &_position); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiAxis2_placement_ptr -SdaiConic::position_() const - { return (SdaiAxis2_placement_ptr) &_position; } - -void -SdaiConic::position_ (const SdaiAxis2_placement_ptr x) - - { _position = x; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY conic - - -///////// ENTITY hyperbola - -EntityDescriptor *config_control_designe_hyperbola =0; -AttrDescriptor *a_50semi_axis =0; -AttrDescriptor *a_51semi_imag_axis =0; -SdaiHyperbola::SdaiHyperbola( ) -{ - - /* parent: SdaiConic */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_hyperbola; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_50semi_axis, &_semi_axis); -#else - STEPattribute *a = new STEPattribute(*a_50semi_axis, &_semi_axis); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_51semi_imag_axis, &_semi_imag_axis); -#else - a = new STEPattribute(*a_51semi_imag_axis, &_semi_imag_axis); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiHyperbola::SdaiHyperbola (SdaiHyperbola& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiHyperbola::~SdaiHyperbola () { } - -#ifdef __OSTORE__ - -void -SdaiHyperbola::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiHyperbola: virtual access function." << G4endl; - SdaiHyperbola_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiHyperbola_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiHyperbola: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiHyperbola *ent = (SdaiHyperbola *)sent; -// SdaiHyperbola *ent = (SdaiHyperbola *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_hyperbola; - ent->attributes[2].aDesc = a_50semi_axis; - ent->attributes[3].aDesc = a_51semi_imag_axis; -} - -SCLP23(Application_instance_ptr) -create_SdaiHyperbola(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiHyperbola::get_os_typespec()) - SdaiHyperbola; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiHyperbola::get_os_typespec()) -// SdaiHyperbola; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiHyperbola; -} -#endif - -#ifdef __O3DB__ -void -SdaiHyperbola::oodb_reInit () -{ eDesc = config_control_designe_hyperbola; - attributes [2].aDesc = a_50semi_axis; - attributes [3].aDesc = a_51semi_imag_axis; -} -#endif - -SdaiHyperbola::SdaiHyperbola (SCLP23(Application_instance) *se, int *addAttrs) : SdaiConic(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiConic */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_hyperbola; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_50semi_axis, &_semi_axis); -#else - STEPattribute *a = new STEPattribute(*a_50semi_axis, &_semi_axis); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_51semi_imag_axis, &_semi_imag_axis); -#else - a = new STEPattribute(*a_51semi_imag_axis, &_semi_imag_axis); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiPositive_length_measure -SdaiHyperbola::semi_axis_() const -{ - return (SdaiPositive_length_measure) _semi_axis; -} - -void -SdaiHyperbola::semi_axis_ (const SdaiPositive_length_measure x) - -{ - _semi_axis = x; -} - -const SdaiPositive_length_measure -SdaiHyperbola::semi_imag_axis_() const -{ - return (SdaiPositive_length_measure) _semi_imag_axis; -} - -void -SdaiHyperbola::semi_imag_axis_ (const SdaiPositive_length_measure x) - -{ - _semi_imag_axis = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY hyperbola - - -///////// ENTITY address - -EntityDescriptor *config_control_designe_address =0; -AttrDescriptor *a_52internal_location =0; -AttrDescriptor *a_53street_number =0; -AttrDescriptor *a_54street =0; -AttrDescriptor *a_55postal_box =0; -AttrDescriptor *a_56town =0; -AttrDescriptor *a_57region =0; -AttrDescriptor *a_58postal_code =0; -AttrDescriptor *a_59country =0; -AttrDescriptor *a_60facsimile_number =0; -AttrDescriptor *a_61telephone_number =0; -AttrDescriptor *a_62electronic_mail_address =0; -AttrDescriptor *a_63telex_number =0; -SdaiAddress::SdaiAddress( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_address; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_52internal_location, &_internal_location); -#else - STEPattribute *a = new STEPattribute(*a_52internal_location, &_internal_location); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_53street_number, &_street_number); -#else - a = new STEPattribute(*a_53street_number, &_street_number); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_54street, &_street); -#else - a = new STEPattribute(*a_54street, &_street); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_55postal_box, &_postal_box); -#else - a = new STEPattribute(*a_55postal_box, &_postal_box); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_56town, &_town); -#else - a = new STEPattribute(*a_56town, &_town); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_57region, &_region); -#else - a = new STEPattribute(*a_57region, &_region); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_58postal_code, &_postal_code); -#else - a = new STEPattribute(*a_58postal_code, &_postal_code); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_59country, &_country); -#else - a = new STEPattribute(*a_59country, &_country); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_60facsimile_number, &_facsimile_number); -#else - a = new STEPattribute(*a_60facsimile_number, &_facsimile_number); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_61telephone_number, &_telephone_number); -#else - a = new STEPattribute(*a_61telephone_number, &_telephone_number); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_62electronic_mail_address, &_electronic_mail_address); -#else - a = new STEPattribute(*a_62electronic_mail_address, &_electronic_mail_address); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_63telex_number, &_telex_number); -#else - a = new STEPattribute(*a_63telex_number, &_telex_number); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAddress::SdaiAddress (SdaiAddress& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAddress::~SdaiAddress () { } - -#ifdef __OSTORE__ - -void -SdaiAddress::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAddress: virtual access function." << G4endl; - SdaiAddress_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAddress_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAddress: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAddress *ent = (SdaiAddress *)sent; -// SdaiAddress *ent = (SdaiAddress *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_address; - ent->attributes[0].aDesc = a_52internal_location; - ent->attributes[1].aDesc = a_53street_number; - ent->attributes[2].aDesc = a_54street; - ent->attributes[3].aDesc = a_55postal_box; - ent->attributes[4].aDesc = a_56town; - ent->attributes[5].aDesc = a_57region; - ent->attributes[6].aDesc = a_58postal_code; - ent->attributes[7].aDesc = a_59country; - ent->attributes[8].aDesc = a_60facsimile_number; - ent->attributes[9].aDesc = a_61telephone_number; - ent->attributes[10].aDesc = a_62electronic_mail_address; - ent->attributes[11].aDesc = a_63telex_number; -} - -SCLP23(Application_instance_ptr) -create_SdaiAddress(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAddress::get_os_typespec()) - SdaiAddress; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAddress::get_os_typespec()) -// SdaiAddress; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAddress; -} -#endif - -#ifdef __O3DB__ -void -SdaiAddress::oodb_reInit () -{ eDesc = config_control_designe_address; - attributes [0].aDesc = a_52internal_location; - attributes [1].aDesc = a_53street_number; - attributes [2].aDesc = a_54street; - attributes [3].aDesc = a_55postal_box; - attributes [4].aDesc = a_56town; - attributes [5].aDesc = a_57region; - attributes [6].aDesc = a_58postal_code; - attributes [7].aDesc = a_59country; - attributes [8].aDesc = a_60facsimile_number; - attributes [9].aDesc = a_61telephone_number; - attributes [10].aDesc = a_62electronic_mail_address; - attributes [11].aDesc = a_63telex_number; -} -#endif - -SdaiAddress::SdaiAddress( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_address; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_52internal_location, &_internal_location); -#else - STEPattribute *a = new STEPattribute(*a_52internal_location, &_internal_location); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_53street_number, &_street_number); -#else - a = new STEPattribute(*a_53street_number, &_street_number); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_54street, &_street); -#else - a = new STEPattribute(*a_54street, &_street); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_55postal_box, &_postal_box); -#else - a = new STEPattribute(*a_55postal_box, &_postal_box); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_56town, &_town); -#else - a = new STEPattribute(*a_56town, &_town); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_57region, &_region); -#else - a = new STEPattribute(*a_57region, &_region); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_58postal_code, &_postal_code); -#else - a = new STEPattribute(*a_58postal_code, &_postal_code); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_59country, &_country); -#else - a = new STEPattribute(*a_59country, &_country); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_60facsimile_number, &_facsimile_number); -#else - a = new STEPattribute(*a_60facsimile_number, &_facsimile_number); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_61telephone_number, &_telephone_number); -#else - a = new STEPattribute(*a_61telephone_number, &_telephone_number); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_62electronic_mail_address, &_electronic_mail_address); -#else - a = new STEPattribute(*a_62electronic_mail_address, &_electronic_mail_address); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_63telex_number, &_telex_number); -#else - a = new STEPattribute(*a_63telex_number, &_telex_number); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiAddress::internal_location_() const -{ - return (SdaiLabel) _internal_location; -} - -void -SdaiAddress::internal_location_ (const SdaiLabel x) - -{ - _internal_location = x; -} - -const SdaiLabel -SdaiAddress::street_number_() const -{ - return (SdaiLabel) _street_number; -} - -void -SdaiAddress::street_number_ (const SdaiLabel x) - -{ - _street_number = x; -} - -const SdaiLabel -SdaiAddress::street_() const -{ - return (SdaiLabel) _street; -} - -void -SdaiAddress::street_ (const SdaiLabel x) - -{ - _street = x; -} - -const SdaiLabel -SdaiAddress::postal_box_() const -{ - return (SdaiLabel) _postal_box; -} - -void -SdaiAddress::postal_box_ (const SdaiLabel x) - -{ - _postal_box = x; -} - -const SdaiLabel -SdaiAddress::town_() const -{ - return (SdaiLabel) _town; -} - -void -SdaiAddress::town_ (const SdaiLabel x) - -{ - _town = x; -} - -const SdaiLabel -SdaiAddress::region_() const -{ - return (SdaiLabel) _region; -} - -void -SdaiAddress::region_ (const SdaiLabel x) - -{ - _region = x; -} - -const SdaiLabel -SdaiAddress::postal_code_() const -{ - return (SdaiLabel) _postal_code; -} - -void -SdaiAddress::postal_code_ (const SdaiLabel x) - -{ - _postal_code = x; -} - -const SdaiLabel -SdaiAddress::country_() const -{ - return (SdaiLabel) _country; -} - -void -SdaiAddress::country_ (const SdaiLabel x) - -{ - _country = x; -} - -const SdaiLabel -SdaiAddress::facsimile_number_() const -{ - return (SdaiLabel) _facsimile_number; -} - -void -SdaiAddress::facsimile_number_ (const SdaiLabel x) - -{ - _facsimile_number = x; -} - -const SdaiLabel -SdaiAddress::telephone_number_() const -{ - return (SdaiLabel) _telephone_number; -} - -void -SdaiAddress::telephone_number_ (const SdaiLabel x) - -{ - _telephone_number = x; -} - -const SdaiLabel -SdaiAddress::electronic_mail_address_() const -{ - return (SdaiLabel) _electronic_mail_address; -} - -void -SdaiAddress::electronic_mail_address_ (const SdaiLabel x) - -{ - _electronic_mail_address = x; -} - -const SdaiLabel -SdaiAddress::telex_number_() const -{ - return (SdaiLabel) _telex_number; -} - -void -SdaiAddress::telex_number_ (const SdaiLabel x) - -{ - _telex_number = x; -} - -///////// END_ENTITY address - - -///////// ENTITY organizational_address - -EntityDescriptor *config_control_designe_organizational_address =0; -AttrDescriptor *a_64organizations =0; -AttrDescriptor *a_65description =0; -SdaiOrganizational_address::SdaiOrganizational_address( ) -{ - - /* parent: SdaiAddress */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_organizational_address; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_64organizations, &_organizations); -#else - STEPattribute *a = new STEPattribute(*a_64organizations, &_organizations); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_65description, &_description); -#else - a = new STEPattribute(*a_65description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiOrganizational_address::SdaiOrganizational_address (SdaiOrganizational_address& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOrganizational_address::~SdaiOrganizational_address () { } - -#ifdef __OSTORE__ - -void -SdaiOrganizational_address::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrganizational_address: virtual access function." << G4endl; - SdaiOrganizational_address_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOrganizational_address_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrganizational_address: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOrganizational_address *ent = (SdaiOrganizational_address *)sent; -// SdaiOrganizational_address *ent = (SdaiOrganizational_address *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_organizational_address; - ent->attributes[12].aDesc = a_64organizations; - ent->attributes[13].aDesc = a_65description; -} - -SCLP23(Application_instance_ptr) -create_SdaiOrganizational_address(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOrganizational_address::get_os_typespec()) - SdaiOrganizational_address; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOrganizational_address::get_os_typespec()) -// SdaiOrganizational_address; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOrganizational_address; -} -#endif - -#ifdef __O3DB__ -void -SdaiOrganizational_address::oodb_reInit () -{ eDesc = config_control_designe_organizational_address; - attributes [12].aDesc = a_64organizations; - attributes [13].aDesc = a_65description; -} -#endif - -SdaiOrganizational_address::SdaiOrganizational_address (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAddress(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAddress */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_organizational_address; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_64organizations, &_organizations); -#else - STEPattribute *a = new STEPattribute(*a_64organizations, &_organizations); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_65description, &_description); -#else - a = new STEPattribute(*a_65description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiOrganizational_address::organizations_() const -{ - return (EntityAggregate_ptr) &_organizations; -} - -void -SdaiOrganizational_address::organizations_ (const EntityAggregate_ptr x) - - { _organizations.ShallowCopy (*x); } - -const SdaiText -SdaiOrganizational_address::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiOrganizational_address::description_ (const SdaiText x) - -{ - _description = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY organizational_address - - -///////// ENTITY bounded_surface - -EntityDescriptor *config_control_designe_bounded_surface =0; -SdaiBounded_surface::SdaiBounded_surface( ) -{ - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_bounded_surface; - MakeDerived ("dim"); -} -SdaiBounded_surface::SdaiBounded_surface (SdaiBounded_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiBounded_surface::~SdaiBounded_surface () { } - -#ifdef __OSTORE__ - -void -SdaiBounded_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBounded_surface: virtual access function." << G4endl; - SdaiBounded_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiBounded_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBounded_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiBounded_surface *ent = (SdaiBounded_surface *)sent; -// SdaiBounded_surface *ent = (SdaiBounded_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_bounded_surface; -} - -SCLP23(Application_instance_ptr) -create_SdaiBounded_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiBounded_surface::get_os_typespec()) - SdaiBounded_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiBounded_surface::get_os_typespec()) -// SdaiBounded_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiBounded_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiBounded_surface::oodb_reInit () -{ eDesc = config_control_designe_bounded_surface; -} -#endif - -SdaiBounded_surface::SdaiBounded_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSurface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_bounded_surface; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY bounded_surface - - -///////// ENTITY b_spline_surface - -EntityDescriptor *config_control_designe_b_spline_surface =0; -AttrDescriptor *a_66u_degree =0; -AttrDescriptor *a_67v_degree =0; -AttrDescriptor *a_68control_points_list =0; -AttrDescriptor *a_69surface_form =0; -AttrDescriptor *a_70u_closed =0; -AttrDescriptor *a_71v_closed =0; -AttrDescriptor *a_72self_intersect =0; -Derived_attribute *a_73Du_upper =0; -Derived_attribute *a_74Dv_upper =0; -Derived_attribute *a_75Dcontrol_points =0; -SdaiB_spline_surface::SdaiB_spline_surface( ) -{ - - /* parent: SdaiBounded_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_b_spline_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_66u_degree, &_u_degree); -#else - STEPattribute *a = new STEPattribute(*a_66u_degree, &_u_degree); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_67v_degree, &_v_degree); -#else - a = new STEPattribute(*a_67v_degree, &_v_degree); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_68control_points_list, &_control_points_list); -#else - a = new STEPattribute(*a_68control_points_list, &_control_points_list); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_69surface_form, &_surface_form); -#else - a = new STEPattribute(*a_69surface_form, &_surface_form); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_70u_closed, &_u_closed); -#else - a = new STEPattribute(*a_70u_closed, &_u_closed); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_71v_closed, &_v_closed); -#else - a = new STEPattribute(*a_71v_closed, &_v_closed); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_72self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_72self_intersect, &_self_intersect); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); -} -SdaiB_spline_surface::SdaiB_spline_surface (SdaiB_spline_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiB_spline_surface::~SdaiB_spline_surface () { } - -#ifdef __OSTORE__ - -void -SdaiB_spline_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_surface: virtual access function." << G4endl; - SdaiB_spline_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiB_spline_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiB_spline_surface *ent = (SdaiB_spline_surface *)sent; -// SdaiB_spline_surface *ent = (SdaiB_spline_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_b_spline_surface; - ent->attributes[1].aDesc = a_66u_degree; - ent->attributes[2].aDesc = a_67v_degree; - ent->attributes[3].aDesc = a_68control_points_list; - ent->attributes[4].aDesc = a_69surface_form; - ent->attributes[5].aDesc = a_70u_closed; - ent->attributes[6].aDesc = a_71v_closed; - ent->attributes[7].aDesc = a_72self_intersect; -} - -SCLP23(Application_instance_ptr) -create_SdaiB_spline_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiB_spline_surface::get_os_typespec()) - SdaiB_spline_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiB_spline_surface::get_os_typespec()) -// SdaiB_spline_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiB_spline_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiB_spline_surface::oodb_reInit () -{ eDesc = config_control_designe_b_spline_surface; - attributes [1].aDesc = a_66u_degree; - attributes [2].aDesc = a_67v_degree; - attributes [3].aDesc = a_68control_points_list; - attributes [4].aDesc = a_69surface_form; - attributes [5].aDesc = a_70u_closed; - attributes [6].aDesc = a_71v_closed; - attributes [7].aDesc = a_72self_intersect; -} -#endif - -SdaiB_spline_surface::SdaiB_spline_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBounded_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBounded_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_b_spline_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_66u_degree, &_u_degree); -#else - STEPattribute *a = new STEPattribute(*a_66u_degree, &_u_degree); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_67v_degree, &_v_degree); -#else - a = new STEPattribute(*a_67v_degree, &_v_degree); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_68control_points_list, &_control_points_list); -#else - a = new STEPattribute(*a_68control_points_list, &_control_points_list); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_69surface_form, &_surface_form); -#else - a = new STEPattribute(*a_69surface_form, &_surface_form); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_70u_closed, &_u_closed); -#else - a = new STEPattribute(*a_70u_closed, &_u_closed); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_71v_closed, &_v_closed); -#else - a = new STEPattribute(*a_71v_closed, &_v_closed); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_72self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_72self_intersect, &_self_intersect); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); -} - -const SCLP23(Integer) -SdaiB_spline_surface::u_degree_() const -{ - return (SCLP23(Integer)) _u_degree; -} - -void -SdaiB_spline_surface::u_degree_ (const SCLP23(Integer) x) - -{ - _u_degree = x; -} - -const SCLP23(Integer) -SdaiB_spline_surface::v_degree_() const -{ - return (SCLP23(Integer)) _v_degree; -} - -void -SdaiB_spline_surface::v_degree_ (const SCLP23(Integer) x) - -{ - _v_degree = x; -} - -const GenericAggregate_ptr -SdaiB_spline_surface::control_points_list_() const -{ - return (GenericAggregate_ptr) &_control_points_list; -} - -void -SdaiB_spline_surface::control_points_list_ (const GenericAggregate_ptr x) - - { _control_points_list.ShallowCopy (*x); } - -const SdaiB_spline_surface_form_var -SdaiB_spline_surface::surface_form_() const -{ - return (B_spline_surface_form) _surface_form; -} - -void -SdaiB_spline_surface::surface_form_ (const SdaiB_spline_surface_form_var x) - -{ - _surface_form.put (x); -} - -const SCLLOG(Logical) -SdaiB_spline_surface::u_closed_() const -{ - return (SCLLOG(Logical)) _u_closed; -} - -void -SdaiB_spline_surface::u_closed_ (const SCLLOG(Logical) x) - -{ - _u_closed.put (x); -} - -const SCLLOG(Logical) -SdaiB_spline_surface::v_closed_() const -{ - return (SCLLOG(Logical)) _v_closed; -} - -void -SdaiB_spline_surface::v_closed_ (const SCLLOG(Logical) x) - -{ - _v_closed.put (x); -} - -const SCLLOG(Logical) -SdaiB_spline_surface::self_intersect_() const -{ - return (SCLLOG(Logical)) _self_intersect; -} - -void -SdaiB_spline_surface::self_intersect_ (const SCLLOG(Logical) x) - -{ - _self_intersect.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY b_spline_surface - - -///////// ENTITY uniform_surface - -EntityDescriptor *config_control_designe_uniform_surface =0; -SdaiUniform_surface::SdaiUniform_surface( ) -{ - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_uniform_surface; - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); -} -SdaiUniform_surface::SdaiUniform_surface (SdaiUniform_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiUniform_surface::~SdaiUniform_surface () { } - -#ifdef __OSTORE__ - -void -SdaiUniform_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiUniform_surface: virtual access function." << G4endl; - SdaiUniform_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiUniform_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiUniform_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiUniform_surface *ent = (SdaiUniform_surface *)sent; -// SdaiUniform_surface *ent = (SdaiUniform_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_uniform_surface; -} - -SCLP23(Application_instance_ptr) -create_SdaiUniform_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiUniform_surface::get_os_typespec()) - SdaiUniform_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiUniform_surface::get_os_typespec()) -// SdaiUniform_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiUniform_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiUniform_surface::oodb_reInit () -{ eDesc = config_control_designe_uniform_surface; -} -#endif - -SdaiUniform_surface::SdaiUniform_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_uniform_surface; - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY uniform_surface - - -///////// ENTITY geometrically_bounded_surface_shape_representation - -EntityDescriptor *config_control_designe_geometrically_bounded_surface_shape_representation =0; -SdaiGeometrically_bounded_surface_shape_representation::SdaiGeometrically_bounded_surface_shape_representation( ) -{ - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometrically_bounded_surface_shape_representation; -} -SdaiGeometrically_bounded_surface_shape_representation::SdaiGeometrically_bounded_surface_shape_representation (SdaiGeometrically_bounded_surface_shape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiGeometrically_bounded_surface_shape_representation::~SdaiGeometrically_bounded_surface_shape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiGeometrically_bounded_surface_shape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometrically_bounded_surface_shape_representation: virtual access function." << G4endl; - SdaiGeometrically_bounded_surface_shape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiGeometrically_bounded_surface_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometrically_bounded_surface_shape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiGeometrically_bounded_surface_shape_representation *ent = (SdaiGeometrically_bounded_surface_shape_representation *)sent; -// SdaiGeometrically_bounded_surface_shape_representation *ent = (SdaiGeometrically_bounded_surface_shape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_geometrically_bounded_surface_shape_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiGeometrically_bounded_surface_shape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiGeometrically_bounded_surface_shape_representation::get_os_typespec()) - SdaiGeometrically_bounded_surface_shape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiGeometrically_bounded_surface_shape_representation::get_os_typespec()) -// SdaiGeometrically_bounded_surface_shape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiGeometrically_bounded_surface_shape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiGeometrically_bounded_surface_shape_representation::oodb_reInit () -{ eDesc = config_control_designe_geometrically_bounded_surface_shape_representation; -} -#endif - -SdaiGeometrically_bounded_surface_shape_representation::SdaiGeometrically_bounded_surface_shape_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiShape_representation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometrically_bounded_surface_shape_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY geometrically_bounded_surface_shape_representation - - -///////// ENTITY axis1_placement - -EntityDescriptor *config_control_designe_axis1_placement =0; -AttrDescriptor *a_76axis =0; -Derived_attribute *a_77Dz =0; -SdaiAxis1_placement::SdaiAxis1_placement( ) -{ - - /* parent: SdaiPlacement */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_axis1_placement; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_76axis, (SCLP23(Application_instance_ptr) *) &_axis); -#else - STEPattribute *a = new STEPattribute(*a_76axis, (SCLP23(Application_instance_ptr) *) &_axis); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("z"); -} -SdaiAxis1_placement::SdaiAxis1_placement (SdaiAxis1_placement& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAxis1_placement::~SdaiAxis1_placement () { } - -#ifdef __OSTORE__ - -void -SdaiAxis1_placement::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAxis1_placement: virtual access function." << G4endl; - SdaiAxis1_placement_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAxis1_placement_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAxis1_placement: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAxis1_placement *ent = (SdaiAxis1_placement *)sent; -// SdaiAxis1_placement *ent = (SdaiAxis1_placement *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_axis1_placement; - ent->attributes[2].aDesc = a_76axis; - if(ent->_axis == 0) - ent->_axis = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAxis1_placement(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAxis1_placement::get_os_typespec()) - SdaiAxis1_placement; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAxis1_placement::get_os_typespec()) -// SdaiAxis1_placement; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAxis1_placement; -} -#endif - -#ifdef __O3DB__ -void -SdaiAxis1_placement::oodb_reInit () -{ eDesc = config_control_designe_axis1_placement; - attributes [2].aDesc = a_76axis; -} -#endif - -SdaiAxis1_placement::SdaiAxis1_placement (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPlacement(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPlacement */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_axis1_placement; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_76axis, (SCLP23(Application_instance_ptr) *) &_axis); -#else - STEPattribute *a = new STEPattribute(*a_76axis, (SCLP23(Application_instance_ptr) *) &_axis); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("z"); -} - -const SdaiDirection_ptr -SdaiAxis1_placement::axis_() const -{ - return (SdaiDirection_ptr) _axis; -} - -void -SdaiAxis1_placement::axis_ (const SdaiDirection_ptr x) - -{ - _axis = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY axis1_placement - - -///////// ENTITY bounded_curve - -EntityDescriptor *config_control_designe_bounded_curve =0; -SdaiBounded_curve::SdaiBounded_curve( ) -{ - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_bounded_curve; - MakeDerived ("dim"); -} -SdaiBounded_curve::SdaiBounded_curve (SdaiBounded_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiBounded_curve::~SdaiBounded_curve () { } - -#ifdef __OSTORE__ - -void -SdaiBounded_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBounded_curve: virtual access function." << G4endl; - SdaiBounded_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiBounded_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBounded_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiBounded_curve *ent = (SdaiBounded_curve *)sent; -// SdaiBounded_curve *ent = (SdaiBounded_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_bounded_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiBounded_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiBounded_curve::get_os_typespec()) - SdaiBounded_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiBounded_curve::get_os_typespec()) -// SdaiBounded_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiBounded_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiBounded_curve::oodb_reInit () -{ eDesc = config_control_designe_bounded_curve; -} -#endif - -SdaiBounded_curve::SdaiBounded_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_bounded_curve; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY bounded_curve - - -///////// ENTITY b_spline_curve - -EntityDescriptor *config_control_designe_b_spline_curve =0; -AttrDescriptor *a_78degree =0; -AttrDescriptor *a_79control_points_list =0; -AttrDescriptor *a_80curve_form =0; -AttrDescriptor *a_81closed_curve =0; -AttrDescriptor *a_82self_intersect =0; -Derived_attribute *a_83Dupper_index_on_control_points =0; -Derived_attribute *a_84Dcontrol_points =0; -SdaiB_spline_curve::SdaiB_spline_curve( ) -{ - - /* parent: SdaiBounded_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_b_spline_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_78degree, &_degree); -#else - STEPattribute *a = new STEPattribute(*a_78degree, &_degree); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_79control_points_list, &_control_points_list); -#else - a = new STEPattribute(*a_79control_points_list, &_control_points_list); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_80curve_form, &_curve_form); -#else - a = new STEPattribute(*a_80curve_form, &_curve_form); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_81closed_curve, &_closed_curve); -#else - a = new STEPattribute(*a_81closed_curve, &_closed_curve); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_82self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_82self_intersect, &_self_intersect); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); -} -SdaiB_spline_curve::SdaiB_spline_curve (SdaiB_spline_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiB_spline_curve::~SdaiB_spline_curve () { } - -#ifdef __OSTORE__ - -void -SdaiB_spline_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_curve: virtual access function." << G4endl; - SdaiB_spline_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiB_spline_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiB_spline_curve *ent = (SdaiB_spline_curve *)sent; -// SdaiB_spline_curve *ent = (SdaiB_spline_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_b_spline_curve; - ent->attributes[1].aDesc = a_78degree; - ent->attributes[2].aDesc = a_79control_points_list; - ent->attributes[3].aDesc = a_80curve_form; - ent->attributes[4].aDesc = a_81closed_curve; - ent->attributes[5].aDesc = a_82self_intersect; -} - -SCLP23(Application_instance_ptr) -create_SdaiB_spline_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiB_spline_curve::get_os_typespec()) - SdaiB_spline_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiB_spline_curve::get_os_typespec()) -// SdaiB_spline_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiB_spline_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiB_spline_curve::oodb_reInit () -{ eDesc = config_control_designe_b_spline_curve; - attributes [1].aDesc = a_78degree; - attributes [2].aDesc = a_79control_points_list; - attributes [3].aDesc = a_80curve_form; - attributes [4].aDesc = a_81closed_curve; - attributes [5].aDesc = a_82self_intersect; -} -#endif - -SdaiB_spline_curve::SdaiB_spline_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBounded_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBounded_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_b_spline_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_78degree, &_degree); -#else - STEPattribute *a = new STEPattribute(*a_78degree, &_degree); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_79control_points_list, &_control_points_list); -#else - a = new STEPattribute(*a_79control_points_list, &_control_points_list); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_80curve_form, &_curve_form); -#else - a = new STEPattribute(*a_80curve_form, &_curve_form); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_81closed_curve, &_closed_curve); -#else - a = new STEPattribute(*a_81closed_curve, &_closed_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_82self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_82self_intersect, &_self_intersect); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); -} - -const SCLP23(Integer) -SdaiB_spline_curve::degree_() const -{ - return (SCLP23(Integer)) _degree; -} - -void -SdaiB_spline_curve::degree_ (const SCLP23(Integer) x) - -{ - _degree = x; -} - -const EntityAggregate_ptr -SdaiB_spline_curve::control_points_list_() const -{ - return (EntityAggregate_ptr) &_control_points_list; -} - -void -SdaiB_spline_curve::control_points_list_ (const EntityAggregate_ptr x) - - { _control_points_list.ShallowCopy (*x); } - -const SdaiB_spline_curve_form_var -SdaiB_spline_curve::curve_form_() const -{ - return (B_spline_curve_form) _curve_form; -} - -void -SdaiB_spline_curve::curve_form_ (const SdaiB_spline_curve_form_var x) - -{ - _curve_form.put (x); -} - -const SCLLOG(Logical) -SdaiB_spline_curve::closed_curve_() const -{ - return (SCLLOG(Logical)) _closed_curve; -} - -void -SdaiB_spline_curve::closed_curve_ (const SCLLOG(Logical) x) - -{ - _closed_curve.put (x); -} - -const SCLLOG(Logical) -SdaiB_spline_curve::self_intersect_() const -{ - return (SCLLOG(Logical)) _self_intersect; -} - -void -SdaiB_spline_curve::self_intersect_ (const SCLLOG(Logical) x) - -{ - _self_intersect.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY b_spline_curve - - -///////// ENTITY rational_b_spline_curve - -EntityDescriptor *config_control_designe_rational_b_spline_curve =0; -AttrDescriptor *a_85weights_data =0; -Derived_attribute *a_86Dweights =0; -SdaiRational_b_spline_curve::SdaiRational_b_spline_curve( ) -{ - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_rational_b_spline_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_85weights_data, &_weights_data); -#else - STEPattribute *a = new STEPattribute(*a_85weights_data, &_weights_data); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); - MakeDerived ("weights"); -} -SdaiRational_b_spline_curve::SdaiRational_b_spline_curve (SdaiRational_b_spline_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRational_b_spline_curve::~SdaiRational_b_spline_curve () { } - -#ifdef __OSTORE__ - -void -SdaiRational_b_spline_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRational_b_spline_curve: virtual access function." << G4endl; - SdaiRational_b_spline_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRational_b_spline_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRational_b_spline_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRational_b_spline_curve *ent = (SdaiRational_b_spline_curve *)sent; -// SdaiRational_b_spline_curve *ent = (SdaiRational_b_spline_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_rational_b_spline_curve; - ent->attributes[6].aDesc = a_85weights_data; -} - -SCLP23(Application_instance_ptr) -create_SdaiRational_b_spline_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRational_b_spline_curve::get_os_typespec()) - SdaiRational_b_spline_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRational_b_spline_curve::get_os_typespec()) -// SdaiRational_b_spline_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRational_b_spline_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiRational_b_spline_curve::oodb_reInit () -{ eDesc = config_control_designe_rational_b_spline_curve; - attributes [6].aDesc = a_85weights_data; -} -#endif - -SdaiRational_b_spline_curve::SdaiRational_b_spline_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_rational_b_spline_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_85weights_data, &_weights_data); -#else - STEPattribute *a = new STEPattribute(*a_85weights_data, &_weights_data); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); - MakeDerived ("weights"); -} - -const RealAggregate_ptr -SdaiRational_b_spline_curve::weights_data_() const -{ - return (RealAggregate_ptr) &_weights_data; -} - -void -SdaiRational_b_spline_curve::weights_data_ (const RealAggregate_ptr x) - - { _weights_data.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY rational_b_spline_curve - - -///////// ENTITY action_request_assignment - -EntityDescriptor *config_control_designe_action_request_assignment =0; -AttrDescriptor *a_87assigned_action_request =0; -SdaiAction_request_assignment::SdaiAction_request_assignment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_action_request_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_87assigned_action_request, (SCLP23(Application_instance_ptr) *) &_assigned_action_request); -#else - STEPattribute *a = new STEPattribute(*a_87assigned_action_request, (SCLP23(Application_instance_ptr) *) &_assigned_action_request); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAction_request_assignment::SdaiAction_request_assignment (SdaiAction_request_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAction_request_assignment::~SdaiAction_request_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiAction_request_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_request_assignment: virtual access function." << G4endl; - SdaiAction_request_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAction_request_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_request_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAction_request_assignment *ent = (SdaiAction_request_assignment *)sent; -// SdaiAction_request_assignment *ent = (SdaiAction_request_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_action_request_assignment; - ent->attributes[0].aDesc = a_87assigned_action_request; - if(ent->_assigned_action_request == 0) - ent->_assigned_action_request = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAction_request_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAction_request_assignment::get_os_typespec()) - SdaiAction_request_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAction_request_assignment::get_os_typespec()) -// SdaiAction_request_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAction_request_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiAction_request_assignment::oodb_reInit () -{ eDesc = config_control_designe_action_request_assignment; - attributes [0].aDesc = a_87assigned_action_request; -} -#endif - -SdaiAction_request_assignment::SdaiAction_request_assignment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_action_request_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_87assigned_action_request, (SCLP23(Application_instance_ptr) *) &_assigned_action_request); -#else - STEPattribute *a = new STEPattribute(*a_87assigned_action_request, (SCLP23(Application_instance_ptr) *) &_assigned_action_request); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiVersioned_action_request_ptr -SdaiAction_request_assignment::assigned_action_request_() const -{ - return (SdaiVersioned_action_request_ptr) _assigned_action_request; -} - -void -SdaiAction_request_assignment::assigned_action_request_ (const SdaiVersioned_action_request_ptr x) - -{ - _assigned_action_request = x; -} - -///////// END_ENTITY action_request_assignment - - -///////// ENTITY topological_representation_item - -EntityDescriptor *config_control_designe_topological_representation_item =0; -SdaiTopological_representation_item::SdaiTopological_representation_item( ) -{ - - /* parent: SdaiRepresentation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_topological_representation_item; -} -SdaiTopological_representation_item::SdaiTopological_representation_item (SdaiTopological_representation_item& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiTopological_representation_item::~SdaiTopological_representation_item () { } - -#ifdef __OSTORE__ - -void -SdaiTopological_representation_item::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiTopological_representation_item: virtual access function." << G4endl; - SdaiTopological_representation_item_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiTopological_representation_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiTopological_representation_item: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiTopological_representation_item *ent = (SdaiTopological_representation_item *)sent; -// SdaiTopological_representation_item *ent = (SdaiTopological_representation_item *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_topological_representation_item; -} - -SCLP23(Application_instance_ptr) -create_SdaiTopological_representation_item(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiTopological_representation_item::get_os_typespec()) - SdaiTopological_representation_item; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiTopological_representation_item::get_os_typespec()) -// SdaiTopological_representation_item; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiTopological_representation_item; -} -#endif - -#ifdef __O3DB__ -void -SdaiTopological_representation_item::oodb_reInit () -{ eDesc = config_control_designe_topological_representation_item; -} -#endif - -SdaiTopological_representation_item::SdaiTopological_representation_item (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_topological_representation_item; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY topological_representation_item - - -///////// ENTITY face_bound - -EntityDescriptor *config_control_designe_face_bound =0; -AttrDescriptor *a_88bound =0; -AttrDescriptor *a_89orientation =0; -SdaiFace_bound::SdaiFace_bound( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_face_bound; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_88bound, (SCLP23(Application_instance_ptr) *) &_bound); -#else - STEPattribute *a = new STEPattribute(*a_88bound, (SCLP23(Application_instance_ptr) *) &_bound); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_89orientation, &_orientation); -#else - a = new STEPattribute(*a_89orientation, &_orientation); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiFace_bound::SdaiFace_bound (SdaiFace_bound& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiFace_bound::~SdaiFace_bound () { } - -#ifdef __OSTORE__ - -void -SdaiFace_bound::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFace_bound: virtual access function." << G4endl; - SdaiFace_bound_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiFace_bound_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFace_bound: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiFace_bound *ent = (SdaiFace_bound *)sent; -// SdaiFace_bound *ent = (SdaiFace_bound *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_face_bound; - ent->attributes[1].aDesc = a_88bound; - if(ent->_bound == 0) - ent->_bound = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_89orientation; -} - -SCLP23(Application_instance_ptr) -create_SdaiFace_bound(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiFace_bound::get_os_typespec()) - SdaiFace_bound; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiFace_bound::get_os_typespec()) -// SdaiFace_bound; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiFace_bound; -} -#endif - -#ifdef __O3DB__ -void -SdaiFace_bound::oodb_reInit () -{ eDesc = config_control_designe_face_bound; - attributes [1].aDesc = a_88bound; - attributes [2].aDesc = a_89orientation; -} -#endif - -SdaiFace_bound::SdaiFace_bound (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_face_bound; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_88bound, (SCLP23(Application_instance_ptr) *) &_bound); -#else - STEPattribute *a = new STEPattribute(*a_88bound, (SCLP23(Application_instance_ptr) *) &_bound); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_89orientation, &_orientation); -#else - a = new STEPattribute(*a_89orientation, &_orientation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLoop_ptr -SdaiFace_bound::bound_() const -{ - return (SdaiLoop_ptr) _bound; -} - -void -SdaiFace_bound::bound_ (const SdaiLoop_ptr x) - -{ - _bound = x; -} - -const SCLBOOL(Bool) -SdaiFace_bound::orientation_() const -{ - return (SCLBOOL(Bool)) _orientation; -} - -void -SdaiFace_bound::orientation_ (const SCLBOOL(Bool) x) - -{ - _orientation.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY face_bound - - -///////// ENTITY length_measure_with_unit - -EntityDescriptor *config_control_designe_length_measure_with_unit =0; -SdaiLength_measure_with_unit::SdaiLength_measure_with_unit( ) -{ - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_length_measure_with_unit; -} -SdaiLength_measure_with_unit::SdaiLength_measure_with_unit (SdaiLength_measure_with_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiLength_measure_with_unit::~SdaiLength_measure_with_unit () { } - -#ifdef __OSTORE__ - -void -SdaiLength_measure_with_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLength_measure_with_unit: virtual access function." << G4endl; - SdaiLength_measure_with_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiLength_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLength_measure_with_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiLength_measure_with_unit *ent = (SdaiLength_measure_with_unit *)sent; -// SdaiLength_measure_with_unit *ent = (SdaiLength_measure_with_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_length_measure_with_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiLength_measure_with_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiLength_measure_with_unit::get_os_typespec()) - SdaiLength_measure_with_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiLength_measure_with_unit::get_os_typespec()) -// SdaiLength_measure_with_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiLength_measure_with_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiLength_measure_with_unit::oodb_reInit () -{ eDesc = config_control_designe_length_measure_with_unit; -} -#endif - -SdaiLength_measure_with_unit::SdaiLength_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiMeasure_with_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_length_measure_with_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY length_measure_with_unit - - -///////// ENTITY dated_effectivity - -EntityDescriptor *config_control_designe_dated_effectivity =0; -AttrDescriptor *a_90effectivity_start_date =0; -AttrDescriptor *a_91effectivity_end_date =0; -SdaiDated_effectivity::SdaiDated_effectivity( ) -{ - - /* parent: SdaiEffectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_dated_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_90effectivity_start_date, (SCLP23(Application_instance_ptr) *) &_effectivity_start_date); -#else - STEPattribute *a = new STEPattribute(*a_90effectivity_start_date, (SCLP23(Application_instance_ptr) *) &_effectivity_start_date); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_91effectivity_end_date, (SCLP23(Application_instance_ptr) *) &_effectivity_end_date); -#else - a = new STEPattribute(*a_91effectivity_end_date, (SCLP23(Application_instance_ptr) *) &_effectivity_end_date); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDated_effectivity::SdaiDated_effectivity (SdaiDated_effectivity& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDated_effectivity::~SdaiDated_effectivity () { } - -#ifdef __OSTORE__ - -void -SdaiDated_effectivity::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDated_effectivity: virtual access function." << G4endl; - SdaiDated_effectivity_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDated_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDated_effectivity: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDated_effectivity *ent = (SdaiDated_effectivity *)sent; -// SdaiDated_effectivity *ent = (SdaiDated_effectivity *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_dated_effectivity; - ent->attributes[1].aDesc = a_90effectivity_start_date; - if(ent->_effectivity_start_date == 0) - ent->_effectivity_start_date = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_91effectivity_end_date; - if(ent->_effectivity_end_date == 0) - ent->_effectivity_end_date = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiDated_effectivity(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDated_effectivity::get_os_typespec()) - SdaiDated_effectivity; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDated_effectivity::get_os_typespec()) -// SdaiDated_effectivity; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDated_effectivity; -} -#endif - -#ifdef __O3DB__ -void -SdaiDated_effectivity::oodb_reInit () -{ eDesc = config_control_designe_dated_effectivity; - attributes [1].aDesc = a_90effectivity_start_date; - attributes [2].aDesc = a_91effectivity_end_date; -} -#endif - -SdaiDated_effectivity::SdaiDated_effectivity (SCLP23(Application_instance) *se, int *addAttrs) : SdaiEffectivity(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiEffectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_dated_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_90effectivity_start_date, (SCLP23(Application_instance_ptr) *) &_effectivity_start_date); -#else - STEPattribute *a = new STEPattribute(*a_90effectivity_start_date, (SCLP23(Application_instance_ptr) *) &_effectivity_start_date); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_91effectivity_end_date, (SCLP23(Application_instance_ptr) *) &_effectivity_end_date); -#else - a = new STEPattribute(*a_91effectivity_end_date, (SCLP23(Application_instance_ptr) *) &_effectivity_end_date); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDate_and_time_ptr -SdaiDated_effectivity::effectivity_start_date_() const -{ - return (SdaiDate_and_time_ptr) _effectivity_start_date; -} - -void -SdaiDated_effectivity::effectivity_start_date_ (const SdaiDate_and_time_ptr x) - -{ - _effectivity_start_date = x; -} - -const SdaiDate_and_time_ptr -SdaiDated_effectivity::effectivity_end_date_() const -{ - return (SdaiDate_and_time_ptr) _effectivity_end_date; -} - -void -SdaiDated_effectivity::effectivity_end_date_ (const SdaiDate_and_time_ptr x) - -{ - _effectivity_end_date = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY dated_effectivity - - -///////// ENTITY direction - -EntityDescriptor *config_control_designe_direction =0; -AttrDescriptor *a_92direction_ratios =0; -SdaiDirection::SdaiDirection( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_direction; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_92direction_ratios, &_direction_ratios); -#else - STEPattribute *a = new STEPattribute(*a_92direction_ratios, &_direction_ratios); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiDirection::SdaiDirection (SdaiDirection& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDirection::~SdaiDirection () { } - -#ifdef __OSTORE__ - -void -SdaiDirection::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDirection: virtual access function." << G4endl; - SdaiDirection_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDirection_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDirection: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDirection *ent = (SdaiDirection *)sent; -// SdaiDirection *ent = (SdaiDirection *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_direction; - ent->attributes[1].aDesc = a_92direction_ratios; -} - -SCLP23(Application_instance_ptr) -create_SdaiDirection(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDirection::get_os_typespec()) - SdaiDirection; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDirection::get_os_typespec()) -// SdaiDirection; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDirection; -} -#endif - -#ifdef __O3DB__ -void -SdaiDirection::oodb_reInit () -{ eDesc = config_control_designe_direction; - attributes [1].aDesc = a_92direction_ratios; -} -#endif - -SdaiDirection::SdaiDirection (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_direction; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_92direction_ratios, &_direction_ratios); -#else - STEPattribute *a = new STEPattribute(*a_92direction_ratios, &_direction_ratios); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const RealAggregate_ptr -SdaiDirection::direction_ratios_() const -{ - return (RealAggregate_ptr) &_direction_ratios; -} - -void -SdaiDirection::direction_ratios_ (const RealAggregate_ptr x) - - { _direction_ratios.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY direction - - -///////// ENTITY next_assembly_usage_occurrence - -EntityDescriptor *config_control_designe_next_assembly_usage_occurrence =0; -SdaiNext_assembly_usage_occurrence::SdaiNext_assembly_usage_occurrence( ) -{ - - /* parent: SdaiAssembly_component_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_next_assembly_usage_occurrence; -} -SdaiNext_assembly_usage_occurrence::SdaiNext_assembly_usage_occurrence (SdaiNext_assembly_usage_occurrence& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiNext_assembly_usage_occurrence::~SdaiNext_assembly_usage_occurrence () { } - -#ifdef __OSTORE__ - -void -SdaiNext_assembly_usage_occurrence::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiNext_assembly_usage_occurrence: virtual access function." << G4endl; - SdaiNext_assembly_usage_occurrence_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiNext_assembly_usage_occurrence_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiNext_assembly_usage_occurrence: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiNext_assembly_usage_occurrence *ent = (SdaiNext_assembly_usage_occurrence *)sent; -// SdaiNext_assembly_usage_occurrence *ent = (SdaiNext_assembly_usage_occurrence *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_next_assembly_usage_occurrence; -} - -SCLP23(Application_instance_ptr) -create_SdaiNext_assembly_usage_occurrence(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiNext_assembly_usage_occurrence::get_os_typespec()) - SdaiNext_assembly_usage_occurrence; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiNext_assembly_usage_occurrence::get_os_typespec()) -// SdaiNext_assembly_usage_occurrence; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiNext_assembly_usage_occurrence; -} -#endif - -#ifdef __O3DB__ -void -SdaiNext_assembly_usage_occurrence::oodb_reInit () -{ eDesc = config_control_designe_next_assembly_usage_occurrence; -} -#endif - -SdaiNext_assembly_usage_occurrence::SdaiNext_assembly_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAssembly_component_usage(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAssembly_component_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_next_assembly_usage_occurrence; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY next_assembly_usage_occurrence - - -///////// ENTITY edge - -EntityDescriptor *config_control_designe_edge =0; -AttrDescriptor *a_93edge_start =0; -AttrDescriptor *a_94edge_end =0; -SdaiEdge::SdaiEdge( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_edge; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_93edge_start, (SCLP23(Application_instance_ptr) *) &_edge_start); -#else - STEPattribute *a = new STEPattribute(*a_93edge_start, (SCLP23(Application_instance_ptr) *) &_edge_start); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_94edge_end, (SCLP23(Application_instance_ptr) *) &_edge_end); -#else - a = new STEPattribute(*a_94edge_end, (SCLP23(Application_instance_ptr) *) &_edge_end); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiEdge::SdaiEdge (SdaiEdge& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiEdge::~SdaiEdge () { } - -#ifdef __OSTORE__ - -void -SdaiEdge::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge: virtual access function." << G4endl; - SdaiEdge_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiEdge_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiEdge *ent = (SdaiEdge *)sent; -// SdaiEdge *ent = (SdaiEdge *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_edge; - ent->attributes[1].aDesc = a_93edge_start; - if(ent->_edge_start == 0) - ent->_edge_start = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_94edge_end; - if(ent->_edge_end == 0) - ent->_edge_end = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiEdge(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiEdge::get_os_typespec()) - SdaiEdge; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiEdge::get_os_typespec()) -// SdaiEdge; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiEdge; -} -#endif - -#ifdef __O3DB__ -void -SdaiEdge::oodb_reInit () -{ eDesc = config_control_designe_edge; - attributes [1].aDesc = a_93edge_start; - attributes [2].aDesc = a_94edge_end; -} -#endif - -SdaiEdge::SdaiEdge (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_edge; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_93edge_start, (SCLP23(Application_instance_ptr) *) &_edge_start); -#else - STEPattribute *a = new STEPattribute(*a_93edge_start, (SCLP23(Application_instance_ptr) *) &_edge_start); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_94edge_end, (SCLP23(Application_instance_ptr) *) &_edge_end); -#else - a = new STEPattribute(*a_94edge_end, (SCLP23(Application_instance_ptr) *) &_edge_end); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiVertex_ptr -SdaiEdge::edge_start_() const -{ - return (SdaiVertex_ptr) _edge_start; -} - -void -SdaiEdge::edge_start_ (const SdaiVertex_ptr x) - -{ - _edge_start = x; -} - -const SdaiVertex_ptr -SdaiEdge::edge_end_() const -{ - return (SdaiVertex_ptr) _edge_end; -} - -void -SdaiEdge::edge_end_ (const SdaiVertex_ptr x) - -{ - _edge_end = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY edge - - -///////// ENTITY oriented_edge - -EntityDescriptor *config_control_designe_oriented_edge =0; -AttrDescriptor *a_95edge_element =0; -AttrDescriptor *a_96orientation =0; -Derived_attribute *a_97Dedge_edge_start =0; -Derived_attribute *a_98Dedge_edge_end =0; -SdaiOriented_edge::SdaiOriented_edge( ) -{ - - /* parent: SdaiEdge */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_edge; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_95edge_element, (SCLP23(Application_instance_ptr) *) &_edge_element); -#else - STEPattribute *a = new STEPattribute(*a_95edge_element, (SCLP23(Application_instance_ptr) *) &_edge_element); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_96orientation, &_orientation); -#else - a = new STEPattribute(*a_96orientation, &_orientation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("edge_start"); - MakeDerived ("edge_end"); -} -SdaiOriented_edge::SdaiOriented_edge (SdaiOriented_edge& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOriented_edge::~SdaiOriented_edge () { } - -#ifdef __OSTORE__ - -void -SdaiOriented_edge::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_edge: virtual access function." << G4endl; - SdaiOriented_edge_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOriented_edge_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_edge: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOriented_edge *ent = (SdaiOriented_edge *)sent; -// SdaiOriented_edge *ent = (SdaiOriented_edge *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_oriented_edge; - ent->attributes[3].aDesc = a_95edge_element; - if(ent->_edge_element == 0) - ent->_edge_element = S_ENTITY_NULL; - ent->attributes[4].aDesc = a_96orientation; -} - -SCLP23(Application_instance_ptr) -create_SdaiOriented_edge(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOriented_edge::get_os_typespec()) - SdaiOriented_edge; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOriented_edge::get_os_typespec()) -// SdaiOriented_edge; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOriented_edge; -} -#endif - -#ifdef __O3DB__ -void -SdaiOriented_edge::oodb_reInit () -{ eDesc = config_control_designe_oriented_edge; - attributes [3].aDesc = a_95edge_element; - attributes [4].aDesc = a_96orientation; -} -#endif - -SdaiOriented_edge::SdaiOriented_edge (SCLP23(Application_instance) *se, int *addAttrs) : SdaiEdge(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiEdge */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_edge; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_95edge_element, (SCLP23(Application_instance_ptr) *) &_edge_element); -#else - STEPattribute *a = new STEPattribute(*a_95edge_element, (SCLP23(Application_instance_ptr) *) &_edge_element); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_96orientation, &_orientation); -#else - a = new STEPattribute(*a_96orientation, &_orientation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("edge_start"); - MakeDerived ("edge_end"); -} - -const SdaiEdge_ptr -SdaiOriented_edge::edge_element_() const -{ - return (SdaiEdge_ptr) _edge_element; -} - -void -SdaiOriented_edge::edge_element_ (const SdaiEdge_ptr x) - -{ - _edge_element = x; -} - -const SCLBOOL(Bool) -SdaiOriented_edge::orientation_() const -{ - return (SCLBOOL(Bool)) _orientation; -} - -void -SdaiOriented_edge::orientation_ (const SCLBOOL(Bool) x) - -{ - _orientation.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY oriented_edge - - -///////// ENTITY person - -EntityDescriptor *config_control_designe_person =0; -AttrDescriptor *a_99id =0; -AttrDescriptor *a_100last_name =0; -AttrDescriptor *a_101first_name =0; -AttrDescriptor *a_102middle_names =0; -AttrDescriptor *a_103prefix_titles =0; -AttrDescriptor *a_104suffix_titles =0; -SdaiPerson::SdaiPerson( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_person; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_99id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_99id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_100last_name, &_last_name); -#else - a = new STEPattribute(*a_100last_name, &_last_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_101first_name, &_first_name); -#else - a = new STEPattribute(*a_101first_name, &_first_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_102middle_names, &_middle_names); -#else - a = new STEPattribute(*a_102middle_names, &_middle_names); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_103prefix_titles, &_prefix_titles); -#else - a = new STEPattribute(*a_103prefix_titles, &_prefix_titles); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_104suffix_titles, &_suffix_titles); -#else - a = new STEPattribute(*a_104suffix_titles, &_suffix_titles); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiPerson::SdaiPerson (SdaiPerson& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPerson::~SdaiPerson () { } - -#ifdef __OSTORE__ - -void -SdaiPerson::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPerson: virtual access function." << G4endl; - SdaiPerson_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPerson_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPerson: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPerson *ent = (SdaiPerson *)sent; -// SdaiPerson *ent = (SdaiPerson *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_person; - ent->attributes[0].aDesc = a_99id; - ent->attributes[1].aDesc = a_100last_name; - ent->attributes[2].aDesc = a_101first_name; - ent->attributes[3].aDesc = a_102middle_names; - ent->attributes[4].aDesc = a_103prefix_titles; - ent->attributes[5].aDesc = a_104suffix_titles; -} - -SCLP23(Application_instance_ptr) -create_SdaiPerson(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPerson::get_os_typespec()) - SdaiPerson; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPerson::get_os_typespec()) -// SdaiPerson; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPerson; -} -#endif - -#ifdef __O3DB__ -void -SdaiPerson::oodb_reInit () -{ eDesc = config_control_designe_person; - attributes [0].aDesc = a_99id; - attributes [1].aDesc = a_100last_name; - attributes [2].aDesc = a_101first_name; - attributes [3].aDesc = a_102middle_names; - attributes [4].aDesc = a_103prefix_titles; - attributes [5].aDesc = a_104suffix_titles; -} -#endif - -SdaiPerson::SdaiPerson( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_person; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_99id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_99id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_100last_name, &_last_name); -#else - a = new STEPattribute(*a_100last_name, &_last_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_101first_name, &_first_name); -#else - a = new STEPattribute(*a_101first_name, &_first_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_102middle_names, &_middle_names); -#else - a = new STEPattribute(*a_102middle_names, &_middle_names); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_103prefix_titles, &_prefix_titles); -#else - a = new STEPattribute(*a_103prefix_titles, &_prefix_titles); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_104suffix_titles, &_suffix_titles); -#else - a = new STEPattribute(*a_104suffix_titles, &_suffix_titles); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiPerson::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiPerson::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiLabel -SdaiPerson::last_name_() const -{ - return (SdaiLabel) _last_name; -} - -void -SdaiPerson::last_name_ (const SdaiLabel x) - -{ - _last_name = x; -} - -const SdaiLabel -SdaiPerson::first_name_() const -{ - return (SdaiLabel) _first_name; -} - -void -SdaiPerson::first_name_ (const SdaiLabel x) - -{ - _first_name = x; -} - -const StringAggregate_ptr -SdaiPerson::middle_names_() const -{ - return (StringAggregate_ptr) &_middle_names; -} - -void -SdaiPerson::middle_names_ (const StringAggregate_ptr x) - - { _middle_names.ShallowCopy (*x); } - -const StringAggregate_ptr -SdaiPerson::prefix_titles_() const -{ - return (StringAggregate_ptr) &_prefix_titles; -} - -void -SdaiPerson::prefix_titles_ (const StringAggregate_ptr x) - - { _prefix_titles.ShallowCopy (*x); } - -const StringAggregate_ptr -SdaiPerson::suffix_titles_() const -{ - return (StringAggregate_ptr) &_suffix_titles; -} - -void -SdaiPerson::suffix_titles_ (const StringAggregate_ptr x) - - { _suffix_titles.ShallowCopy (*x); } - -///////// END_ENTITY person - - -///////// ENTITY document - -EntityDescriptor *config_control_designe_document =0; -AttrDescriptor *a_105id =0; -AttrDescriptor *a_106name =0; -AttrDescriptor *a_107description =0; -AttrDescriptor *a_108kind =0; -SdaiDocument::SdaiDocument( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_document; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_105id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_105id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_106name, &_name); -#else - a = new STEPattribute(*a_106name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_107description, &_description); -#else - a = new STEPattribute(*a_107description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_108kind, (SCLP23(Application_instance_ptr) *) &_kind); -#else - a = new STEPattribute(*a_108kind, (SCLP23(Application_instance_ptr) *) &_kind); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDocument::SdaiDocument (SdaiDocument& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDocument::~SdaiDocument () { } - -#ifdef __OSTORE__ - -void -SdaiDocument::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument: virtual access function." << G4endl; - SdaiDocument_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDocument_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDocument *ent = (SdaiDocument *)sent; -// SdaiDocument *ent = (SdaiDocument *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_document; - ent->attributes[0].aDesc = a_105id; - ent->attributes[1].aDesc = a_106name; - ent->attributes[2].aDesc = a_107description; - ent->attributes[3].aDesc = a_108kind; - if(ent->_kind == 0) - ent->_kind = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiDocument(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDocument::get_os_typespec()) - SdaiDocument; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDocument::get_os_typespec()) -// SdaiDocument; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDocument; -} -#endif - -#ifdef __O3DB__ -void -SdaiDocument::oodb_reInit () -{ eDesc = config_control_designe_document; - attributes [0].aDesc = a_105id; - attributes [1].aDesc = a_106name; - attributes [2].aDesc = a_107description; - attributes [3].aDesc = a_108kind; -} -#endif - -SdaiDocument::SdaiDocument( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_document; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_105id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_105id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_106name, &_name); -#else - a = new STEPattribute(*a_106name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_107description, &_description); -#else - a = new STEPattribute(*a_107description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_108kind, (SCLP23(Application_instance_ptr) *) &_kind); -#else - a = new STEPattribute(*a_108kind, (SCLP23(Application_instance_ptr) *) &_kind); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiDocument::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiDocument::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiLabel -SdaiDocument::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiDocument::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiDocument::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiDocument::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiDocument_type_ptr -SdaiDocument::kind_() const -{ - return (SdaiDocument_type_ptr) _kind; -} - -void -SdaiDocument::kind_ (const SdaiDocument_type_ptr x) - -{ - _kind = x; -} - -///////// END_ENTITY document - - -///////// ENTITY document_with_class - -EntityDescriptor *config_control_designe_document_with_class =0; -AttrDescriptor *a_109class =0; -SdaiDocument_with_class::SdaiDocument_with_class( ) -{ - - /* parent: SdaiDocument */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_document_with_class; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_109class, &_class); -#else - STEPattribute *a = new STEPattribute(*a_109class, &_class); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDocument_with_class::SdaiDocument_with_class (SdaiDocument_with_class& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDocument_with_class::~SdaiDocument_with_class () { } - -#ifdef __OSTORE__ - -void -SdaiDocument_with_class::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_with_class: virtual access function." << G4endl; - SdaiDocument_with_class_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDocument_with_class_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_with_class: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDocument_with_class *ent = (SdaiDocument_with_class *)sent; -// SdaiDocument_with_class *ent = (SdaiDocument_with_class *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_document_with_class; - ent->attributes[4].aDesc = a_109class; -} - -SCLP23(Application_instance_ptr) -create_SdaiDocument_with_class(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDocument_with_class::get_os_typespec()) - SdaiDocument_with_class; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDocument_with_class::get_os_typespec()) -// SdaiDocument_with_class; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDocument_with_class; -} -#endif - -#ifdef __O3DB__ -void -SdaiDocument_with_class::oodb_reInit () -{ eDesc = config_control_designe_document_with_class; - attributes [4].aDesc = a_109class; -} -#endif - -SdaiDocument_with_class::SdaiDocument_with_class (SCLP23(Application_instance) *se, int *addAttrs) : SdaiDocument(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiDocument */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_document_with_class; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_109class, &_class); -#else - STEPattribute *a = new STEPattribute(*a_109class, &_class); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiDocument_with_class::class_() const -{ - return (SdaiIdentifier) _class; -} - -void -SdaiDocument_with_class::class_ (const SdaiIdentifier x) - -{ - _class = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY document_with_class - - -///////// ENTITY conversion_based_unit - -EntityDescriptor *config_control_designe_conversion_based_unit =0; -AttrDescriptor *a_110name =0; -AttrDescriptor *a_111conversion_factor =0; -SdaiConversion_based_unit::SdaiConversion_based_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_conversion_based_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_110name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_110name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_111conversion_factor, (SCLP23(Application_instance_ptr) *) &_conversion_factor); -#else - a = new STEPattribute(*a_111conversion_factor, (SCLP23(Application_instance_ptr) *) &_conversion_factor); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiConversion_based_unit::SdaiConversion_based_unit (SdaiConversion_based_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiConversion_based_unit::~SdaiConversion_based_unit () { } - -#ifdef __OSTORE__ - -void -SdaiConversion_based_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConversion_based_unit: virtual access function." << G4endl; - SdaiConversion_based_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiConversion_based_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConversion_based_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiConversion_based_unit *ent = (SdaiConversion_based_unit *)sent; -// SdaiConversion_based_unit *ent = (SdaiConversion_based_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_conversion_based_unit; - ent->attributes[1].aDesc = a_110name; - ent->attributes[2].aDesc = a_111conversion_factor; - if(ent->_conversion_factor == 0) - ent->_conversion_factor = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiConversion_based_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiConversion_based_unit::get_os_typespec()) - SdaiConversion_based_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiConversion_based_unit::get_os_typespec()) -// SdaiConversion_based_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiConversion_based_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiConversion_based_unit::oodb_reInit () -{ eDesc = config_control_designe_conversion_based_unit; - attributes [1].aDesc = a_110name; - attributes [2].aDesc = a_111conversion_factor; -} -#endif - -SdaiConversion_based_unit::SdaiConversion_based_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_conversion_based_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_110name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_110name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_111conversion_factor, (SCLP23(Application_instance_ptr) *) &_conversion_factor); -#else - a = new STEPattribute(*a_111conversion_factor, (SCLP23(Application_instance_ptr) *) &_conversion_factor); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiConversion_based_unit::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiConversion_based_unit::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiMeasure_with_unit_ptr -SdaiConversion_based_unit::conversion_factor_() const -{ - return (SdaiMeasure_with_unit_ptr) _conversion_factor; -} - -void -SdaiConversion_based_unit::conversion_factor_ (const SdaiMeasure_with_unit_ptr x) - -{ - _conversion_factor = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY conversion_based_unit - - -///////// ENTITY point - -EntityDescriptor *config_control_designe_point =0; -SdaiPoint::SdaiPoint( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_point; - MakeDerived ("dim"); -} -SdaiPoint::SdaiPoint (SdaiPoint& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPoint::~SdaiPoint () { } - -#ifdef __OSTORE__ - -void -SdaiPoint::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoint: virtual access function." << G4endl; - SdaiPoint_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPoint_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoint: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPoint *ent = (SdaiPoint *)sent; -// SdaiPoint *ent = (SdaiPoint *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_point; -} - -SCLP23(Application_instance_ptr) -create_SdaiPoint(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPoint::get_os_typespec()) - SdaiPoint; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPoint::get_os_typespec()) -// SdaiPoint; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPoint; -} -#endif - -#ifdef __O3DB__ -void -SdaiPoint::oodb_reInit () -{ eDesc = config_control_designe_point; -} -#endif - -SdaiPoint::SdaiPoint (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_point; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY point - - -///////// ENTITY point_on_surface - -EntityDescriptor *config_control_designe_point_on_surface =0; -AttrDescriptor *a_112basis_surface =0; -AttrDescriptor *a_113point_parameter_u =0; -AttrDescriptor *a_114point_parameter_v =0; -SdaiPoint_on_surface::SdaiPoint_on_surface( ) -{ - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_point_on_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_112basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_112basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_113point_parameter_u, &_point_parameter_u); -#else - a = new STEPattribute(*a_113point_parameter_u, &_point_parameter_u); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_114point_parameter_v, &_point_parameter_v); -#else - a = new STEPattribute(*a_114point_parameter_v, &_point_parameter_v); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiPoint_on_surface::SdaiPoint_on_surface (SdaiPoint_on_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPoint_on_surface::~SdaiPoint_on_surface () { } - -#ifdef __OSTORE__ - -void -SdaiPoint_on_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoint_on_surface: virtual access function." << G4endl; - SdaiPoint_on_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPoint_on_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoint_on_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPoint_on_surface *ent = (SdaiPoint_on_surface *)sent; -// SdaiPoint_on_surface *ent = (SdaiPoint_on_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_point_on_surface; - ent->attributes[1].aDesc = a_112basis_surface; - if(ent->_basis_surface == 0) - ent->_basis_surface = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_113point_parameter_u; - ent->attributes[3].aDesc = a_114point_parameter_v; -} - -SCLP23(Application_instance_ptr) -create_SdaiPoint_on_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPoint_on_surface::get_os_typespec()) - SdaiPoint_on_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPoint_on_surface::get_os_typespec()) -// SdaiPoint_on_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPoint_on_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiPoint_on_surface::oodb_reInit () -{ eDesc = config_control_designe_point_on_surface; - attributes [1].aDesc = a_112basis_surface; - attributes [2].aDesc = a_113point_parameter_u; - attributes [3].aDesc = a_114point_parameter_v; -} -#endif - -SdaiPoint_on_surface::SdaiPoint_on_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPoint(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_point_on_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_112basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_112basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_113point_parameter_u, &_point_parameter_u); -#else - a = new STEPattribute(*a_113point_parameter_u, &_point_parameter_u); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_114point_parameter_v, &_point_parameter_v); -#else - a = new STEPattribute(*a_114point_parameter_v, &_point_parameter_v); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiSurface_ptr -SdaiPoint_on_surface::basis_surface_() const -{ - return (SdaiSurface_ptr) _basis_surface; -} - -void -SdaiPoint_on_surface::basis_surface_ (const SdaiSurface_ptr x) - -{ - _basis_surface = x; -} - -const SdaiParameter_value -SdaiPoint_on_surface::point_parameter_u_() const -{ - return (SdaiParameter_value) _point_parameter_u; -} - -void -SdaiPoint_on_surface::point_parameter_u_ (const SdaiParameter_value x) - -{ - _point_parameter_u = x; -} - -const SdaiParameter_value -SdaiPoint_on_surface::point_parameter_v_() const -{ - return (SdaiParameter_value) _point_parameter_v; -} - -void -SdaiPoint_on_surface::point_parameter_v_ (const SdaiParameter_value x) - -{ - _point_parameter_v = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY point_on_surface - - -///////// ENTITY product_definition_formation - -EntityDescriptor *config_control_designe_product_definition_formation =0; -AttrDescriptor *a_115id =0; -AttrDescriptor *a_116description =0; -AttrDescriptor *a_117of_product =0; -SdaiProduct_definition_formation::SdaiProduct_definition_formation( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_product_definition_formation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_115id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_115id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_116description, &_description); -#else - a = new STEPattribute(*a_116description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_117of_product, (SCLP23(Application_instance_ptr) *) &_of_product); -#else - a = new STEPattribute(*a_117of_product, (SCLP23(Application_instance_ptr) *) &_of_product); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_definition_formation::SdaiProduct_definition_formation (SdaiProduct_definition_formation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition_formation::~SdaiProduct_definition_formation () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition_formation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_formation: virtual access function." << G4endl; - SdaiProduct_definition_formation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_formation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_formation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition_formation *ent = (SdaiProduct_definition_formation *)sent; -// SdaiProduct_definition_formation *ent = (SdaiProduct_definition_formation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition_formation; - ent->attributes[0].aDesc = a_115id; - ent->attributes[1].aDesc = a_116description; - ent->attributes[2].aDesc = a_117of_product; - if(ent->_of_product == 0) - ent->_of_product = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_formation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition_formation::get_os_typespec()) - SdaiProduct_definition_formation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition_formation::get_os_typespec()) -// SdaiProduct_definition_formation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_formation; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition_formation::oodb_reInit () -{ eDesc = config_control_designe_product_definition_formation; - attributes [0].aDesc = a_115id; - attributes [1].aDesc = a_116description; - attributes [2].aDesc = a_117of_product; -} -#endif - -SdaiProduct_definition_formation::SdaiProduct_definition_formation( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_product_definition_formation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_115id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_115id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_116description, &_description); -#else - a = new STEPattribute(*a_116description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_117of_product, (SCLP23(Application_instance_ptr) *) &_of_product); -#else - a = new STEPattribute(*a_117of_product, (SCLP23(Application_instance_ptr) *) &_of_product); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiProduct_definition_formation::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiProduct_definition_formation::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiText -SdaiProduct_definition_formation::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiProduct_definition_formation::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiProduct_ptr -SdaiProduct_definition_formation::of_product_() const -{ - return (SdaiProduct_ptr) _of_product; -} - -void -SdaiProduct_definition_formation::of_product_ (const SdaiProduct_ptr x) - -{ - _of_product = x; -} - -///////// END_ENTITY product_definition_formation - - -///////// ENTITY person_and_organization_assignment - -EntityDescriptor *config_control_designe_person_and_organization_assignment =0; -AttrDescriptor *a_118assigned_person_and_organization =0; -AttrDescriptor *a_119role =0; -SdaiPerson_and_organization_assignment::SdaiPerson_and_organization_assignment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_person_and_organization_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_118assigned_person_and_organization, (SCLP23(Application_instance_ptr) *) &_assigned_person_and_organization); -#else - STEPattribute *a = new STEPattribute(*a_118assigned_person_and_organization, (SCLP23(Application_instance_ptr) *) &_assigned_person_and_organization); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_119role, (SCLP23(Application_instance_ptr) *) &_role); -#else - a = new STEPattribute(*a_119role, (SCLP23(Application_instance_ptr) *) &_role); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiPerson_and_organization_assignment::SdaiPerson_and_organization_assignment (SdaiPerson_and_organization_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPerson_and_organization_assignment::~SdaiPerson_and_organization_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiPerson_and_organization_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPerson_and_organization_assignment: virtual access function." << G4endl; - SdaiPerson_and_organization_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPerson_and_organization_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPerson_and_organization_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPerson_and_organization_assignment *ent = (SdaiPerson_and_organization_assignment *)sent; -// SdaiPerson_and_organization_assignment *ent = (SdaiPerson_and_organization_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_person_and_organization_assignment; - ent->attributes[0].aDesc = a_118assigned_person_and_organization; - if(ent->_assigned_person_and_organization == 0) - ent->_assigned_person_and_organization = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_119role; - if(ent->_role == 0) - ent->_role = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPerson_and_organization_assignment::get_os_typespec()) - SdaiPerson_and_organization_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPerson_and_organization_assignment::get_os_typespec()) -// SdaiPerson_and_organization_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiPerson_and_organization_assignment::oodb_reInit () -{ eDesc = config_control_designe_person_and_organization_assignment; - attributes [0].aDesc = a_118assigned_person_and_organization; - attributes [1].aDesc = a_119role; -} -#endif - -SdaiPerson_and_organization_assignment::SdaiPerson_and_organization_assignment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_person_and_organization_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_118assigned_person_and_organization, (SCLP23(Application_instance_ptr) *) &_assigned_person_and_organization); -#else - STEPattribute *a = new STEPattribute(*a_118assigned_person_and_organization, (SCLP23(Application_instance_ptr) *) &_assigned_person_and_organization); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_119role, (SCLP23(Application_instance_ptr) *) &_role); -#else - a = new STEPattribute(*a_119role, (SCLP23(Application_instance_ptr) *) &_role); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiPerson_and_organization_ptr -SdaiPerson_and_organization_assignment::assigned_person_and_organization_() const -{ - return (SdaiPerson_and_organization_ptr) _assigned_person_and_organization; -} - -void -SdaiPerson_and_organization_assignment::assigned_person_and_organization_ (const SdaiPerson_and_organization_ptr x) - -{ - _assigned_person_and_organization = x; -} - -const SdaiPerson_and_organization_role_ptr -SdaiPerson_and_organization_assignment::role_() const -{ - return (SdaiPerson_and_organization_role_ptr) _role; -} - -void -SdaiPerson_and_organization_assignment::role_ (const SdaiPerson_and_organization_role_ptr x) - -{ - _role = x; -} - -///////// END_ENTITY person_and_organization_assignment - - -///////// ENTITY cc_design_person_and_organization_assignment - -EntityDescriptor *config_control_designe_cc_design_person_and_organization_assignment =0; -AttrDescriptor *a_120items =0; -SdaiCc_design_person_and_organization_assignment::SdaiCc_design_person_and_organization_assignment( ) -{ - - /* parent: SdaiPerson_and_organization_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_person_and_organization_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_120items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_120items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCc_design_person_and_organization_assignment::SdaiCc_design_person_and_organization_assignment (SdaiCc_design_person_and_organization_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCc_design_person_and_organization_assignment::~SdaiCc_design_person_and_organization_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiCc_design_person_and_organization_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_person_and_organization_assignment: virtual access function." << G4endl; - SdaiCc_design_person_and_organization_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCc_design_person_and_organization_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_person_and_organization_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCc_design_person_and_organization_assignment *ent = (SdaiCc_design_person_and_organization_assignment *)sent; -// SdaiCc_design_person_and_organization_assignment *ent = (SdaiCc_design_person_and_organization_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cc_design_person_and_organization_assignment; - ent->attributes[2].aDesc = a_120items; -} - -SCLP23(Application_instance_ptr) -create_SdaiCc_design_person_and_organization_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCc_design_person_and_organization_assignment::get_os_typespec()) - SdaiCc_design_person_and_organization_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCc_design_person_and_organization_assignment::get_os_typespec()) -// SdaiCc_design_person_and_organization_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCc_design_person_and_organization_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiCc_design_person_and_organization_assignment::oodb_reInit () -{ eDesc = config_control_designe_cc_design_person_and_organization_assignment; - attributes [2].aDesc = a_120items; -} -#endif - -SdaiCc_design_person_and_organization_assignment::SdaiCc_design_person_and_organization_assignment (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPerson_and_organization_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPerson_and_organization_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_person_and_organization_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_120items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_120items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiPerson_organization_items_ptr -SdaiCc_design_person_and_organization_assignment::items_() const -{ - return (SdaiPerson_organization_items_ptr) &_items; -} - -void -SdaiCc_design_person_and_organization_assignment::items_ (const SdaiPerson_organization_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cc_design_person_and_organization_assignment - - -///////// ENTITY offset_curve_3d - -EntityDescriptor *config_control_designe_offset_curve_3d =0; -AttrDescriptor *a_121basis_curve =0; -AttrDescriptor *a_122distance =0; -AttrDescriptor *a_123self_intersect =0; -AttrDescriptor *a_124ref_direction =0; -SdaiOffset_curve_3d::SdaiOffset_curve_3d( ) -{ - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_offset_curve_3d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_121basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#else - STEPattribute *a = new STEPattribute(*a_121basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_122distance, &_distance); -#else - a = new STEPattribute(*a_122distance, &_distance); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_123self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_123self_intersect, &_self_intersect); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_124ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#else - a = new STEPattribute(*a_124ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiOffset_curve_3d::SdaiOffset_curve_3d (SdaiOffset_curve_3d& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOffset_curve_3d::~SdaiOffset_curve_3d () { } - -#ifdef __OSTORE__ - -void -SdaiOffset_curve_3d::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOffset_curve_3d: virtual access function." << G4endl; - SdaiOffset_curve_3d_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOffset_curve_3d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOffset_curve_3d: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOffset_curve_3d *ent = (SdaiOffset_curve_3d *)sent; -// SdaiOffset_curve_3d *ent = (SdaiOffset_curve_3d *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_offset_curve_3d; - ent->attributes[1].aDesc = a_121basis_curve; - if(ent->_basis_curve == 0) - ent->_basis_curve = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_122distance; - ent->attributes[3].aDesc = a_123self_intersect; - ent->attributes[4].aDesc = a_124ref_direction; - if(ent->_ref_direction == 0) - ent->_ref_direction = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiOffset_curve_3d(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOffset_curve_3d::get_os_typespec()) - SdaiOffset_curve_3d; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOffset_curve_3d::get_os_typespec()) -// SdaiOffset_curve_3d; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOffset_curve_3d; -} -#endif - -#ifdef __O3DB__ -void -SdaiOffset_curve_3d::oodb_reInit () -{ eDesc = config_control_designe_offset_curve_3d; - attributes [1].aDesc = a_121basis_curve; - attributes [2].aDesc = a_122distance; - attributes [3].aDesc = a_123self_intersect; - attributes [4].aDesc = a_124ref_direction; -} -#endif - -SdaiOffset_curve_3d::SdaiOffset_curve_3d (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_offset_curve_3d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_121basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#else - STEPattribute *a = new STEPattribute(*a_121basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_122distance, &_distance); -#else - a = new STEPattribute(*a_122distance, &_distance); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_123self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_123self_intersect, &_self_intersect); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_124ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#else - a = new STEPattribute(*a_124ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCurve_ptr -SdaiOffset_curve_3d::basis_curve_() const -{ - return (SdaiCurve_ptr) _basis_curve; -} - -void -SdaiOffset_curve_3d::basis_curve_ (const SdaiCurve_ptr x) - -{ - _basis_curve = x; -} - -const SdaiLength_measure -SdaiOffset_curve_3d::distance_() const -{ - return (SdaiLength_measure) _distance; -} - -void -SdaiOffset_curve_3d::distance_ (const SdaiLength_measure x) - -{ - _distance = x; -} - -const SCLLOG(Logical) -SdaiOffset_curve_3d::self_intersect_() const -{ - return (SCLLOG(Logical)) _self_intersect; -} - -void -SdaiOffset_curve_3d::self_intersect_ (const SCLLOG(Logical) x) - -{ - _self_intersect.put (x); -} - -const SdaiDirection_ptr -SdaiOffset_curve_3d::ref_direction_() const -{ - return (SdaiDirection_ptr) _ref_direction; -} - -void -SdaiOffset_curve_3d::ref_direction_ (const SdaiDirection_ptr x) - -{ - _ref_direction = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY offset_curve_3d - - -///////// ENTITY approval - -EntityDescriptor *config_control_designe_approval =0; -AttrDescriptor *a_125status =0; -AttrDescriptor *a_126level =0; -SdaiApproval::SdaiApproval( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_approval; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_125status, (SCLP23(Application_instance_ptr) *) &_status); -#else - STEPattribute *a = new STEPattribute(*a_125status, (SCLP23(Application_instance_ptr) *) &_status); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_126level, &_level); -#else - a = new STEPattribute(*a_126level, &_level); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApproval::SdaiApproval (SdaiApproval& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApproval::~SdaiApproval () { } - -#ifdef __OSTORE__ - -void -SdaiApproval::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval: virtual access function." << G4endl; - SdaiApproval_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApproval_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApproval *ent = (SdaiApproval *)sent; -// SdaiApproval *ent = (SdaiApproval *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_approval; - ent->attributes[0].aDesc = a_125status; - if(ent->_status == 0) - ent->_status = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_126level; -} - -SCLP23(Application_instance_ptr) -create_SdaiApproval(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApproval::get_os_typespec()) - SdaiApproval; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApproval::get_os_typespec()) -// SdaiApproval; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApproval; -} -#endif - -#ifdef __O3DB__ -void -SdaiApproval::oodb_reInit () -{ eDesc = config_control_designe_approval; - attributes [0].aDesc = a_125status; - attributes [1].aDesc = a_126level; -} -#endif - -SdaiApproval::SdaiApproval( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_approval; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_125status, (SCLP23(Application_instance_ptr) *) &_status); -#else - STEPattribute *a = new STEPattribute(*a_125status, (SCLP23(Application_instance_ptr) *) &_status); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_126level, &_level); -#else - a = new STEPattribute(*a_126level, &_level); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiApproval_status_ptr -SdaiApproval::status_() const -{ - return (SdaiApproval_status_ptr) _status; -} - -void -SdaiApproval::status_ (const SdaiApproval_status_ptr x) - -{ - _status = x; -} - -const SdaiLabel -SdaiApproval::level_() const -{ - return (SdaiLabel) _level; -} - -void -SdaiApproval::level_ (const SdaiLabel x) - -{ - _level = x; -} - -///////// END_ENTITY approval - - -///////// ENTITY composite_curve - -EntityDescriptor *config_control_designe_composite_curve =0; -AttrDescriptor *a_127segments =0; -AttrDescriptor *a_128self_intersect =0; -Derived_attribute *a_129Dn_segments =0; -Derived_attribute *a_130Dclosed_curve =0; -SdaiComposite_curve::SdaiComposite_curve( ) -{ - - /* parent: SdaiBounded_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_composite_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_127segments, &_segments); -#else - STEPattribute *a = new STEPattribute(*a_127segments, &_segments); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_128self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_128self_intersect, &_self_intersect); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("n_segments"); - MakeDerived ("closed_curve"); -} -SdaiComposite_curve::SdaiComposite_curve (SdaiComposite_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiComposite_curve::~SdaiComposite_curve () { } - -#ifdef __OSTORE__ - -void -SdaiComposite_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiComposite_curve: virtual access function." << G4endl; - SdaiComposite_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiComposite_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiComposite_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiComposite_curve *ent = (SdaiComposite_curve *)sent; -// SdaiComposite_curve *ent = (SdaiComposite_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_composite_curve; - ent->attributes[1].aDesc = a_127segments; - ent->attributes[2].aDesc = a_128self_intersect; -} - -SCLP23(Application_instance_ptr) -create_SdaiComposite_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiComposite_curve::get_os_typespec()) - SdaiComposite_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiComposite_curve::get_os_typespec()) -// SdaiComposite_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiComposite_curve::oodb_reInit () -{ eDesc = config_control_designe_composite_curve; - attributes [1].aDesc = a_127segments; - attributes [2].aDesc = a_128self_intersect; -} -#endif - -SdaiComposite_curve::SdaiComposite_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBounded_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBounded_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_composite_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_127segments, &_segments); -#else - STEPattribute *a = new STEPattribute(*a_127segments, &_segments); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_128self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_128self_intersect, &_self_intersect); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("n_segments"); - MakeDerived ("closed_curve"); -} - -const EntityAggregate_ptr -SdaiComposite_curve::segments_() const -{ - return (EntityAggregate_ptr) &_segments; -} - -void -SdaiComposite_curve::segments_ (const EntityAggregate_ptr x) - - { _segments.ShallowCopy (*x); } - -const SCLLOG(Logical) -SdaiComposite_curve::self_intersect_() const -{ - return (SCLLOG(Logical)) _self_intersect; -} - -void -SdaiComposite_curve::self_intersect_ (const SCLLOG(Logical) x) - -{ - _self_intersect.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY composite_curve - - -///////// ENTITY composite_curve_on_surface - -EntityDescriptor *config_control_designe_composite_curve_on_surface =0; -Derived_attribute *a_131Dbasis_surface =0; -SdaiComposite_curve_on_surface::SdaiComposite_curve_on_surface( ) -{ - - /* parent: SdaiComposite_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_composite_curve_on_surface; - MakeDerived ("dim"); - MakeDerived ("n_segments"); - MakeDerived ("closed_curve"); - MakeDerived ("basis_surface"); -} -SdaiComposite_curve_on_surface::SdaiComposite_curve_on_surface (SdaiComposite_curve_on_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiComposite_curve_on_surface::~SdaiComposite_curve_on_surface () { } - -#ifdef __OSTORE__ - -void -SdaiComposite_curve_on_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiComposite_curve_on_surface: virtual access function." << G4endl; - SdaiComposite_curve_on_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiComposite_curve_on_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiComposite_curve_on_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiComposite_curve_on_surface *ent = (SdaiComposite_curve_on_surface *)sent; -// SdaiComposite_curve_on_surface *ent = (SdaiComposite_curve_on_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_composite_curve_on_surface; -} - -SCLP23(Application_instance_ptr) -create_SdaiComposite_curve_on_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiComposite_curve_on_surface::get_os_typespec()) - SdaiComposite_curve_on_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiComposite_curve_on_surface::get_os_typespec()) -// SdaiComposite_curve_on_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve_on_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiComposite_curve_on_surface::oodb_reInit () -{ eDesc = config_control_designe_composite_curve_on_surface; -} -#endif - -SdaiComposite_curve_on_surface::SdaiComposite_curve_on_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiComposite_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiComposite_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_composite_curve_on_surface; - MakeDerived ("dim"); - MakeDerived ("n_segments"); - MakeDerived ("closed_curve"); - MakeDerived ("basis_surface"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY composite_curve_on_surface - - -///////// ENTITY boundary_curve - -EntityDescriptor *config_control_designe_boundary_curve =0; -SdaiBoundary_curve::SdaiBoundary_curve( ) -{ - - /* parent: SdaiComposite_curve_on_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_boundary_curve; - MakeDerived ("dim"); - MakeDerived ("n_segments"); - MakeDerived ("closed_curve"); - MakeDerived ("basis_surface"); -} -SdaiBoundary_curve::SdaiBoundary_curve (SdaiBoundary_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiBoundary_curve::~SdaiBoundary_curve () { } - -#ifdef __OSTORE__ - -void -SdaiBoundary_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBoundary_curve: virtual access function." << G4endl; - SdaiBoundary_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiBoundary_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBoundary_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiBoundary_curve *ent = (SdaiBoundary_curve *)sent; -// SdaiBoundary_curve *ent = (SdaiBoundary_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_boundary_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiBoundary_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiBoundary_curve::get_os_typespec()) - SdaiBoundary_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiBoundary_curve::get_os_typespec()) -// SdaiBoundary_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiBoundary_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiBoundary_curve::oodb_reInit () -{ eDesc = config_control_designe_boundary_curve; -} -#endif - -SdaiBoundary_curve::SdaiBoundary_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiComposite_curve_on_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiComposite_curve_on_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_boundary_curve; - MakeDerived ("dim"); - MakeDerived ("n_segments"); - MakeDerived ("closed_curve"); - MakeDerived ("basis_surface"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY boundary_curve - - -///////// ENTITY representation_context - -EntityDescriptor *config_control_designe_representation_context =0; -AttrDescriptor *a_132context_identifier =0; -AttrDescriptor *a_133context_type =0; -Inverse_attribute *a_134Irepresentations_in_context =0; -SdaiRepresentation_context::SdaiRepresentation_context( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_representation_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_132context_identifier, &_context_identifier); -#else - STEPattribute *a = new STEPattribute(*a_132context_identifier, &_context_identifier); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_133context_type, &_context_type); -#else - a = new STEPattribute(*a_133context_type, &_context_type); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiRepresentation_context::SdaiRepresentation_context (SdaiRepresentation_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRepresentation_context::~SdaiRepresentation_context () { } - -#ifdef __OSTORE__ - -void -SdaiRepresentation_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_context: virtual access function." << G4endl; - SdaiRepresentation_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRepresentation_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRepresentation_context *ent = (SdaiRepresentation_context *)sent; -// SdaiRepresentation_context *ent = (SdaiRepresentation_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_representation_context; - ent->attributes[0].aDesc = a_132context_identifier; - ent->attributes[1].aDesc = a_133context_type; -} - -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRepresentation_context::get_os_typespec()) - SdaiRepresentation_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRepresentation_context::get_os_typespec()) -// SdaiRepresentation_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiRepresentation_context::oodb_reInit () -{ eDesc = config_control_designe_representation_context; - attributes [0].aDesc = a_132context_identifier; - attributes [1].aDesc = a_133context_type; -} -#endif - -SdaiRepresentation_context::SdaiRepresentation_context( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_representation_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_132context_identifier, &_context_identifier); -#else - STEPattribute *a = new STEPattribute(*a_132context_identifier, &_context_identifier); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_133context_type, &_context_type); -#else - a = new STEPattribute(*a_133context_type, &_context_type); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiRepresentation_context::context_identifier_() const -{ - return (SdaiIdentifier) _context_identifier; -} - -void -SdaiRepresentation_context::context_identifier_ (const SdaiIdentifier x) - -{ - _context_identifier = x; -} - -const SdaiText -SdaiRepresentation_context::context_type_() const -{ - return (SdaiText) _context_type; -} - -void -SdaiRepresentation_context::context_type_ (const SdaiText x) - -{ - _context_type = x; -} - -const EntityAggregate_ptr -SdaiRepresentation_context::representations_in_context_() const -{ - return (EntityAggregate_ptr) &_representations_in_context; -} - -void -SdaiRepresentation_context::representations_in_context_ (const EntityAggregate_ptr x) - - { _representations_in_context.ShallowCopy (*x); } - -///////// END_ENTITY representation_context - - -///////// ENTITY geometric_representation_context - -EntityDescriptor *config_control_designe_geometric_representation_context =0; -AttrDescriptor *a_135coordinate_space_dimension =0; -SdaiGeometric_representation_context::SdaiGeometric_representation_context( ) -{ - - /* parent: SdaiRepresentation_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometric_representation_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_135coordinate_space_dimension, &_coordinate_space_dimension); -#else - STEPattribute *a = new STEPattribute(*a_135coordinate_space_dimension, &_coordinate_space_dimension); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiGeometric_representation_context::SdaiGeometric_representation_context (SdaiGeometric_representation_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiGeometric_representation_context::~SdaiGeometric_representation_context () { } - -#ifdef __OSTORE__ - -void -SdaiGeometric_representation_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometric_representation_context: virtual access function." << G4endl; - SdaiGeometric_representation_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiGeometric_representation_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometric_representation_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiGeometric_representation_context *ent = (SdaiGeometric_representation_context *)sent; -// SdaiGeometric_representation_context *ent = (SdaiGeometric_representation_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_geometric_representation_context; - ent->attributes[2].aDesc = a_135coordinate_space_dimension; -} - -SCLP23(Application_instance_ptr) -create_SdaiGeometric_representation_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiGeometric_representation_context::get_os_typespec()) - SdaiGeometric_representation_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiGeometric_representation_context::get_os_typespec()) -// SdaiGeometric_representation_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiGeometric_representation_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiGeometric_representation_context::oodb_reInit () -{ eDesc = config_control_designe_geometric_representation_context; - attributes [2].aDesc = a_135coordinate_space_dimension; -} -#endif - -SdaiGeometric_representation_context::SdaiGeometric_representation_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_context(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometric_representation_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_135coordinate_space_dimension, &_coordinate_space_dimension); -#else - STEPattribute *a = new STEPattribute(*a_135coordinate_space_dimension, &_coordinate_space_dimension); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDimension_count -SdaiGeometric_representation_context::coordinate_space_dimension_() const -{ - return (SdaiDimension_count) _coordinate_space_dimension; -} - -void -SdaiGeometric_representation_context::coordinate_space_dimension_ (const SdaiDimension_count x) - -{ - _coordinate_space_dimension = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY geometric_representation_context - - -///////// ENTITY action_status - -EntityDescriptor *config_control_designe_action_status =0; -AttrDescriptor *a_136status =0; -AttrDescriptor *a_137assigned_action =0; -SdaiAction_status::SdaiAction_status( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_action_status; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_136status, &_status); -#else - STEPattribute *a = new STEPattribute(*a_136status, &_status); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_137assigned_action, (SCLP23(Application_instance_ptr) *) &_assigned_action); -#else - a = new STEPattribute(*a_137assigned_action, (SCLP23(Application_instance_ptr) *) &_assigned_action); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAction_status::SdaiAction_status (SdaiAction_status& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAction_status::~SdaiAction_status () { } - -#ifdef __OSTORE__ - -void -SdaiAction_status::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_status: virtual access function." << G4endl; - SdaiAction_status_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAction_status_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_status: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAction_status *ent = (SdaiAction_status *)sent; -// SdaiAction_status *ent = (SdaiAction_status *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_action_status; - ent->attributes[0].aDesc = a_136status; - ent->attributes[1].aDesc = a_137assigned_action; - if(ent->_assigned_action == 0) - ent->_assigned_action = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAction_status(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAction_status::get_os_typespec()) - SdaiAction_status; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAction_status::get_os_typespec()) -// SdaiAction_status; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAction_status; -} -#endif - -#ifdef __O3DB__ -void -SdaiAction_status::oodb_reInit () -{ eDesc = config_control_designe_action_status; - attributes [0].aDesc = a_136status; - attributes [1].aDesc = a_137assigned_action; -} -#endif - -SdaiAction_status::SdaiAction_status( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_action_status; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_136status, &_status); -#else - STEPattribute *a = new STEPattribute(*a_136status, &_status); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_137assigned_action, (SCLP23(Application_instance_ptr) *) &_assigned_action); -#else - a = new STEPattribute(*a_137assigned_action, (SCLP23(Application_instance_ptr) *) &_assigned_action); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiAction_status::status_() const -{ - return (SdaiLabel) _status; -} - -void -SdaiAction_status::status_ (const SdaiLabel x) - -{ - _status = x; -} - -const SdaiExecuted_action_ptr -SdaiAction_status::assigned_action_() const -{ - return (SdaiExecuted_action_ptr) _assigned_action; -} - -void -SdaiAction_status::assigned_action_ (const SdaiExecuted_action_ptr x) - -{ - _assigned_action = x; -} - -///////// END_ENTITY action_status - - -///////// ENTITY application_context - -EntityDescriptor *config_control_designe_application_context =0; -AttrDescriptor *a_138application =0; -Inverse_attribute *a_139Icontext_elements =0; -SdaiApplication_context::SdaiApplication_context( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_application_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_138application, &_application); -#else - STEPattribute *a = new STEPattribute(*a_138application, &_application); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApplication_context::SdaiApplication_context (SdaiApplication_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApplication_context::~SdaiApplication_context () { } - -#ifdef __OSTORE__ - -void -SdaiApplication_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApplication_context: virtual access function." << G4endl; - SdaiApplication_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApplication_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApplication_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApplication_context *ent = (SdaiApplication_context *)sent; -// SdaiApplication_context *ent = (SdaiApplication_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_application_context; - ent->attributes[0].aDesc = a_138application; -} - -SCLP23(Application_instance_ptr) -create_SdaiApplication_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApplication_context::get_os_typespec()) - SdaiApplication_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApplication_context::get_os_typespec()) -// SdaiApplication_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApplication_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiApplication_context::oodb_reInit () -{ eDesc = config_control_designe_application_context; - attributes [0].aDesc = a_138application; -} -#endif - -SdaiApplication_context::SdaiApplication_context( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_application_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_138application, &_application); -#else - STEPattribute *a = new STEPattribute(*a_138application, &_application); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiText -SdaiApplication_context::application_() const -{ - return (SdaiText) _application; -} - -void -SdaiApplication_context::application_ (const SdaiText x) - -{ - _application = x; -} - -const EntityAggregate_ptr -SdaiApplication_context::context_elements_() const -{ - return (EntityAggregate_ptr) &_context_elements; -} - -void -SdaiApplication_context::context_elements_ (const EntityAggregate_ptr x) - - { _context_elements.ShallowCopy (*x); } - -///////// END_ENTITY application_context - - -///////// ENTITY change_request - -EntityDescriptor *config_control_designe_change_request =0; -AttrDescriptor *a_140items =0; -SdaiChange_request::SdaiChange_request( ) -{ - - /* parent: SdaiAction_request_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_change_request; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_140items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_140items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiChange_request::SdaiChange_request (SdaiChange_request& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiChange_request::~SdaiChange_request () { } - -#ifdef __OSTORE__ - -void -SdaiChange_request::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiChange_request: virtual access function." << G4endl; - SdaiChange_request_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiChange_request_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiChange_request: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiChange_request *ent = (SdaiChange_request *)sent; -// SdaiChange_request *ent = (SdaiChange_request *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_change_request; - ent->attributes[1].aDesc = a_140items; -} - -SCLP23(Application_instance_ptr) -create_SdaiChange_request(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiChange_request::get_os_typespec()) - SdaiChange_request; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiChange_request::get_os_typespec()) -// SdaiChange_request; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiChange_request; -} -#endif - -#ifdef __O3DB__ -void -SdaiChange_request::oodb_reInit () -{ eDesc = config_control_designe_change_request; - attributes [1].aDesc = a_140items; -} -#endif - -SdaiChange_request::SdaiChange_request (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAction_request_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAction_request_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_change_request; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_140items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_140items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiChange_request_items_ptr -SdaiChange_request::items_() const -{ - return (SdaiChange_request_items_ptr) &_items; -} - -void -SdaiChange_request::items_ (const SdaiChange_request_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY change_request - - -///////// ENTITY date_and_time - -EntityDescriptor *config_control_designe_date_and_time =0; -AttrDescriptor *a_141date_component =0; -AttrDescriptor *a_142time_component =0; -SdaiDate_and_time::SdaiDate_and_time( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_date_and_time; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_141date_component, (SCLP23(Application_instance_ptr) *) &_date_component); -#else - STEPattribute *a = new STEPattribute(*a_141date_component, (SCLP23(Application_instance_ptr) *) &_date_component); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_142time_component, (SCLP23(Application_instance_ptr) *) &_time_component); -#else - a = new STEPattribute(*a_142time_component, (SCLP23(Application_instance_ptr) *) &_time_component); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDate_and_time::SdaiDate_and_time (SdaiDate_and_time& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDate_and_time::~SdaiDate_and_time () { } - -#ifdef __OSTORE__ - -void -SdaiDate_and_time::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDate_and_time: virtual access function." << G4endl; - SdaiDate_and_time_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDate_and_time_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDate_and_time: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDate_and_time *ent = (SdaiDate_and_time *)sent; -// SdaiDate_and_time *ent = (SdaiDate_and_time *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_date_and_time; - ent->attributes[0].aDesc = a_141date_component; - if(ent->_date_component == 0) - ent->_date_component = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_142time_component; - if(ent->_time_component == 0) - ent->_time_component = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiDate_and_time(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDate_and_time::get_os_typespec()) - SdaiDate_and_time; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDate_and_time::get_os_typespec()) -// SdaiDate_and_time; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDate_and_time; -} -#endif - -#ifdef __O3DB__ -void -SdaiDate_and_time::oodb_reInit () -{ eDesc = config_control_designe_date_and_time; - attributes [0].aDesc = a_141date_component; - attributes [1].aDesc = a_142time_component; -} -#endif - -SdaiDate_and_time::SdaiDate_and_time( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_date_and_time; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_141date_component, (SCLP23(Application_instance_ptr) *) &_date_component); -#else - STEPattribute *a = new STEPattribute(*a_141date_component, (SCLP23(Application_instance_ptr) *) &_date_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_142time_component, (SCLP23(Application_instance_ptr) *) &_time_component); -#else - a = new STEPattribute(*a_142time_component, (SCLP23(Application_instance_ptr) *) &_time_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDate_ptr -SdaiDate_and_time::date_component_() const -{ - return (SdaiDate_ptr) _date_component; -} - -void -SdaiDate_and_time::date_component_ (const SdaiDate_ptr x) - -{ - _date_component = x; -} - -const SdaiLocal_time_ptr -SdaiDate_and_time::time_component_() const -{ - return (SdaiLocal_time_ptr) _time_component; -} - -void -SdaiDate_and_time::time_component_ (const SdaiLocal_time_ptr x) - -{ - _time_component = x; -} - -///////// END_ENTITY date_and_time - - -///////// ENTITY approval_date_time - -EntityDescriptor *config_control_designe_approval_date_time =0; -AttrDescriptor *a_143date_time =0; -AttrDescriptor *a_144dated_approval =0; -SdaiApproval_date_time::SdaiApproval_date_time( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_date_time; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_143date_time, &_date_time); -#else - STEPattribute *a = new STEPattribute(*a_143date_time, &_date_time); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_144dated_approval, (SCLP23(Application_instance_ptr) *) &_dated_approval); -#else - a = new STEPattribute(*a_144dated_approval, (SCLP23(Application_instance_ptr) *) &_dated_approval); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApproval_date_time::SdaiApproval_date_time (SdaiApproval_date_time& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApproval_date_time::~SdaiApproval_date_time () { } - -#ifdef __OSTORE__ - -void -SdaiApproval_date_time::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_date_time: virtual access function." << G4endl; - SdaiApproval_date_time_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApproval_date_time_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_date_time: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApproval_date_time *ent = (SdaiApproval_date_time *)sent; -// SdaiApproval_date_time *ent = (SdaiApproval_date_time *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_approval_date_time; - ent->attributes[0].aDesc = a_143date_time; - ent->attributes[1].aDesc = a_144dated_approval; - if(ent->_dated_approval == 0) - ent->_dated_approval = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiApproval_date_time(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApproval_date_time::get_os_typespec()) - SdaiApproval_date_time; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApproval_date_time::get_os_typespec()) -// SdaiApproval_date_time; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApproval_date_time; -} -#endif - -#ifdef __O3DB__ -void -SdaiApproval_date_time::oodb_reInit () -{ eDesc = config_control_designe_approval_date_time; - attributes [0].aDesc = a_143date_time; - attributes [1].aDesc = a_144dated_approval; -} -#endif - -SdaiApproval_date_time::SdaiApproval_date_time( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_date_time; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_143date_time, &_date_time); -#else - STEPattribute *a = new STEPattribute(*a_143date_time, &_date_time); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_144dated_approval, (SCLP23(Application_instance_ptr) *) &_dated_approval); -#else - a = new STEPattribute(*a_144dated_approval, (SCLP23(Application_instance_ptr) *) &_dated_approval); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDate_time_select_ptr -SdaiApproval_date_time::date_time_() const - { return (SdaiDate_time_select_ptr) &_date_time; } - -void -SdaiApproval_date_time::date_time_ (const SdaiDate_time_select_ptr x) - - { _date_time = x; } - -const SdaiApproval_ptr -SdaiApproval_date_time::dated_approval_() const -{ - return (SdaiApproval_ptr) _dated_approval; -} - -void -SdaiApproval_date_time::dated_approval_ (const SdaiApproval_ptr x) - -{ - _dated_approval = x; -} - -///////// END_ENTITY approval_date_time - - -///////// ENTITY approval_role - -EntityDescriptor *config_control_designe_approval_role =0; -AttrDescriptor *a_145role =0; -SdaiApproval_role::SdaiApproval_role( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_role; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_145role, &_role); -#else - STEPattribute *a = new STEPattribute(*a_145role, &_role); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApproval_role::SdaiApproval_role (SdaiApproval_role& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApproval_role::~SdaiApproval_role () { } - -#ifdef __OSTORE__ - -void -SdaiApproval_role::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_role: virtual access function." << G4endl; - SdaiApproval_role_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApproval_role_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_role: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApproval_role *ent = (SdaiApproval_role *)sent; -// SdaiApproval_role *ent = (SdaiApproval_role *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_approval_role; - ent->attributes[0].aDesc = a_145role; -} - -SCLP23(Application_instance_ptr) -create_SdaiApproval_role(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApproval_role::get_os_typespec()) - SdaiApproval_role; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApproval_role::get_os_typespec()) -// SdaiApproval_role; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApproval_role; -} -#endif - -#ifdef __O3DB__ -void -SdaiApproval_role::oodb_reInit () -{ eDesc = config_control_designe_approval_role; - attributes [0].aDesc = a_145role; -} -#endif - -SdaiApproval_role::SdaiApproval_role( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_role; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_145role, &_role); -#else - STEPattribute *a = new STEPattribute(*a_145role, &_role); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiApproval_role::role_() const -{ - return (SdaiLabel) _role; -} - -void -SdaiApproval_role::role_ (const SdaiLabel x) - -{ - _role = x; -} - -///////// END_ENTITY approval_role - - -///////// ENTITY application_context_element - -EntityDescriptor *config_control_designe_application_context_element =0; -AttrDescriptor *a_146name =0; -AttrDescriptor *a_147frame_of_reference =0; -SdaiApplication_context_element::SdaiApplication_context_element( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_application_context_element; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_146name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_146name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_147frame_of_reference, (SCLP23(Application_instance_ptr) *) &_frame_of_reference); -#else - a = new STEPattribute(*a_147frame_of_reference, (SCLP23(Application_instance_ptr) *) &_frame_of_reference); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApplication_context_element::SdaiApplication_context_element (SdaiApplication_context_element& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApplication_context_element::~SdaiApplication_context_element () { } - -#ifdef __OSTORE__ - -void -SdaiApplication_context_element::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApplication_context_element: virtual access function." << G4endl; - SdaiApplication_context_element_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApplication_context_element_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApplication_context_element: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApplication_context_element *ent = (SdaiApplication_context_element *)sent; -// SdaiApplication_context_element *ent = (SdaiApplication_context_element *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_application_context_element; - ent->attributes[0].aDesc = a_146name; - ent->attributes[1].aDesc = a_147frame_of_reference; - if(ent->_frame_of_reference == 0) - ent->_frame_of_reference = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiApplication_context_element(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApplication_context_element::get_os_typespec()) - SdaiApplication_context_element; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApplication_context_element::get_os_typespec()) -// SdaiApplication_context_element; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApplication_context_element; -} -#endif - -#ifdef __O3DB__ -void -SdaiApplication_context_element::oodb_reInit () -{ eDesc = config_control_designe_application_context_element; - attributes [0].aDesc = a_146name; - attributes [1].aDesc = a_147frame_of_reference; -} -#endif - -SdaiApplication_context_element::SdaiApplication_context_element( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_application_context_element; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_146name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_146name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_147frame_of_reference, (SCLP23(Application_instance_ptr) *) &_frame_of_reference); -#else - a = new STEPattribute(*a_147frame_of_reference, (SCLP23(Application_instance_ptr) *) &_frame_of_reference); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiApplication_context_element::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiApplication_context_element::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiApplication_context_ptr -SdaiApplication_context_element::frame_of_reference_() const -{ - return (SdaiApplication_context_ptr) _frame_of_reference; -} - -void -SdaiApplication_context_element::frame_of_reference_ (const SdaiApplication_context_ptr x) - -{ - _frame_of_reference = x; -} - -///////// END_ENTITY application_context_element - - -///////// ENTITY product_context - -EntityDescriptor *config_control_designe_product_context =0; -AttrDescriptor *a_148discipline_type =0; -SdaiProduct_context::SdaiProduct_context( ) -{ - - /* parent: SdaiApplication_context_element */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_148discipline_type, &_discipline_type); -#else - STEPattribute *a = new STEPattribute(*a_148discipline_type, &_discipline_type); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_context::SdaiProduct_context (SdaiProduct_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_context::~SdaiProduct_context () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_context: virtual access function." << G4endl; - SdaiProduct_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_context *ent = (SdaiProduct_context *)sent; -// SdaiProduct_context *ent = (SdaiProduct_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_context; - ent->attributes[2].aDesc = a_148discipline_type; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_context::get_os_typespec()) - SdaiProduct_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_context::get_os_typespec()) -// SdaiProduct_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_context::oodb_reInit () -{ eDesc = config_control_designe_product_context; - attributes [2].aDesc = a_148discipline_type; -} -#endif - -SdaiProduct_context::SdaiProduct_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiApplication_context_element(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiApplication_context_element */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_148discipline_type, &_discipline_type); -#else - STEPattribute *a = new STEPattribute(*a_148discipline_type, &_discipline_type); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiProduct_context::discipline_type_() const -{ - return (SdaiLabel) _discipline_type; -} - -void -SdaiProduct_context::discipline_type_ (const SdaiLabel x) - -{ - _discipline_type = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_context - - -///////// ENTITY elementary_surface - -EntityDescriptor *config_control_designe_elementary_surface =0; -AttrDescriptor *a_149position =0; -SdaiElementary_surface::SdaiElementary_surface( ) -{ - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_elementary_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_149position, (SCLP23(Application_instance_ptr) *) &_position); -#else - STEPattribute *a = new STEPattribute(*a_149position, (SCLP23(Application_instance_ptr) *) &_position); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiElementary_surface::SdaiElementary_surface (SdaiElementary_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiElementary_surface::~SdaiElementary_surface () { } - -#ifdef __OSTORE__ - -void -SdaiElementary_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiElementary_surface: virtual access function." << G4endl; - SdaiElementary_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiElementary_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiElementary_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiElementary_surface *ent = (SdaiElementary_surface *)sent; -// SdaiElementary_surface *ent = (SdaiElementary_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_elementary_surface; - ent->attributes[1].aDesc = a_149position; - if(ent->_position == 0) - ent->_position = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiElementary_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiElementary_surface::get_os_typespec()) - SdaiElementary_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiElementary_surface::get_os_typespec()) -// SdaiElementary_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiElementary_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiElementary_surface::oodb_reInit () -{ eDesc = config_control_designe_elementary_surface; - attributes [1].aDesc = a_149position; -} -#endif - -SdaiElementary_surface::SdaiElementary_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSurface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_elementary_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_149position, (SCLP23(Application_instance_ptr) *) &_position); -#else - STEPattribute *a = new STEPattribute(*a_149position, (SCLP23(Application_instance_ptr) *) &_position); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiAxis2_placement_3d_ptr -SdaiElementary_surface::position_() const -{ - return (SdaiAxis2_placement_3d_ptr) _position; -} - -void -SdaiElementary_surface::position_ (const SdaiAxis2_placement_3d_ptr x) - -{ - _position = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY elementary_surface - - -///////// ENTITY spherical_surface - -EntityDescriptor *config_control_designe_spherical_surface =0; -AttrDescriptor *a_150radius =0; -SdaiSpherical_surface::SdaiSpherical_surface( ) -{ - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_spherical_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_150radius, &_radius); -#else - STEPattribute *a = new STEPattribute(*a_150radius, &_radius); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiSpherical_surface::SdaiSpherical_surface (SdaiSpherical_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSpherical_surface::~SdaiSpherical_surface () { } - -#ifdef __OSTORE__ - -void -SdaiSpherical_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSpherical_surface: virtual access function." << G4endl; - SdaiSpherical_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSpherical_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSpherical_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSpherical_surface *ent = (SdaiSpherical_surface *)sent; -// SdaiSpherical_surface *ent = (SdaiSpherical_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_spherical_surface; - ent->attributes[2].aDesc = a_150radius; -} - -SCLP23(Application_instance_ptr) -create_SdaiSpherical_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSpherical_surface::get_os_typespec()) - SdaiSpherical_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSpherical_surface::get_os_typespec()) -// SdaiSpherical_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSpherical_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiSpherical_surface::oodb_reInit () -{ eDesc = config_control_designe_spherical_surface; - attributes [2].aDesc = a_150radius; -} -#endif - -SdaiSpherical_surface::SdaiSpherical_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiElementary_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_spherical_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_150radius, &_radius); -#else - STEPattribute *a = new STEPattribute(*a_150radius, &_radius); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiPositive_length_measure -SdaiSpherical_surface::radius_() const -{ - return (SdaiPositive_length_measure) _radius; -} - -void -SdaiSpherical_surface::radius_ (const SdaiPositive_length_measure x) - -{ - _radius = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY spherical_surface - - -///////// ENTITY application_protocol_definition - -EntityDescriptor *config_control_designe_application_protocol_definition =0; -AttrDescriptor *a_151status =0; -AttrDescriptor *a_152application_interpreted_model_schema_name =0; -AttrDescriptor *a_153application_protocol_year =0; -AttrDescriptor *a_154application =0; -SdaiApplication_protocol_definition::SdaiApplication_protocol_definition( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_application_protocol_definition; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_151status, &_status); -#else - STEPattribute *a = new STEPattribute(*a_151status, &_status); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_152application_interpreted_model_schema_name, &_application_interpreted_model_schema_name); -#else - a = new STEPattribute(*a_152application_interpreted_model_schema_name, &_application_interpreted_model_schema_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_153application_protocol_year, &_application_protocol_year); -#else - a = new STEPattribute(*a_153application_protocol_year, &_application_protocol_year); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_154application, (SCLP23(Application_instance_ptr) *) &_application); -#else - a = new STEPattribute(*a_154application, (SCLP23(Application_instance_ptr) *) &_application); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApplication_protocol_definition::SdaiApplication_protocol_definition (SdaiApplication_protocol_definition& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApplication_protocol_definition::~SdaiApplication_protocol_definition () { } - -#ifdef __OSTORE__ - -void -SdaiApplication_protocol_definition::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApplication_protocol_definition: virtual access function." << G4endl; - SdaiApplication_protocol_definition_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApplication_protocol_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApplication_protocol_definition: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApplication_protocol_definition *ent = (SdaiApplication_protocol_definition *)sent; -// SdaiApplication_protocol_definition *ent = (SdaiApplication_protocol_definition *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_application_protocol_definition; - ent->attributes[0].aDesc = a_151status; - ent->attributes[1].aDesc = a_152application_interpreted_model_schema_name; - ent->attributes[2].aDesc = a_153application_protocol_year; - ent->attributes[3].aDesc = a_154application; - if(ent->_application == 0) - ent->_application = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiApplication_protocol_definition(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApplication_protocol_definition::get_os_typespec()) - SdaiApplication_protocol_definition; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApplication_protocol_definition::get_os_typespec()) -// SdaiApplication_protocol_definition; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApplication_protocol_definition; -} -#endif - -#ifdef __O3DB__ -void -SdaiApplication_protocol_definition::oodb_reInit () -{ eDesc = config_control_designe_application_protocol_definition; - attributes [0].aDesc = a_151status; - attributes [1].aDesc = a_152application_interpreted_model_schema_name; - attributes [2].aDesc = a_153application_protocol_year; - attributes [3].aDesc = a_154application; -} -#endif - -SdaiApplication_protocol_definition::SdaiApplication_protocol_definition( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_application_protocol_definition; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_151status, &_status); -#else - STEPattribute *a = new STEPattribute(*a_151status, &_status); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_152application_interpreted_model_schema_name, &_application_interpreted_model_schema_name); -#else - a = new STEPattribute(*a_152application_interpreted_model_schema_name, &_application_interpreted_model_schema_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_153application_protocol_year, &_application_protocol_year); -#else - a = new STEPattribute(*a_153application_protocol_year, &_application_protocol_year); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_154application, (SCLP23(Application_instance_ptr) *) &_application); -#else - a = new STEPattribute(*a_154application, (SCLP23(Application_instance_ptr) *) &_application); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiApplication_protocol_definition::status_() const -{ - return (SdaiLabel) _status; -} - -void -SdaiApplication_protocol_definition::status_ (const SdaiLabel x) - -{ - _status = x; -} - -const SdaiLabel -SdaiApplication_protocol_definition::application_interpreted_model_schema_name_() const -{ - return (SdaiLabel) _application_interpreted_model_schema_name; -} - -void -SdaiApplication_protocol_definition::application_interpreted_model_schema_name_ (const SdaiLabel x) - -{ - _application_interpreted_model_schema_name = x; -} - -const SdaiYear_number -SdaiApplication_protocol_definition::application_protocol_year_() const -{ - return (SdaiYear_number) _application_protocol_year; -} - -void -SdaiApplication_protocol_definition::application_protocol_year_ (const SdaiYear_number x) - -{ - _application_protocol_year = x; -} - -const SdaiApplication_context_ptr -SdaiApplication_protocol_definition::application_() const -{ - return (SdaiApplication_context_ptr) _application; -} - -void -SdaiApplication_protocol_definition::application_ (const SdaiApplication_context_ptr x) - -{ - _application = x; -} - -///////// END_ENTITY application_protocol_definition - - -///////// ENTITY specified_higher_usage_occurrence - -EntityDescriptor *config_control_designe_specified_higher_usage_occurrence =0; -AttrDescriptor *a_155upper_usage =0; -AttrDescriptor *a_156next_usage =0; -SdaiSpecified_higher_usage_occurrence::SdaiSpecified_higher_usage_occurrence( ) -{ - - /* parent: SdaiAssembly_component_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_specified_higher_usage_occurrence; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_155upper_usage, (SCLP23(Application_instance_ptr) *) &_upper_usage); -#else - STEPattribute *a = new STEPattribute(*a_155upper_usage, (SCLP23(Application_instance_ptr) *) &_upper_usage); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_156next_usage, (SCLP23(Application_instance_ptr) *) &_next_usage); -#else - a = new STEPattribute(*a_156next_usage, (SCLP23(Application_instance_ptr) *) &_next_usage); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiSpecified_higher_usage_occurrence::SdaiSpecified_higher_usage_occurrence (SdaiSpecified_higher_usage_occurrence& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSpecified_higher_usage_occurrence::~SdaiSpecified_higher_usage_occurrence () { } - -#ifdef __OSTORE__ - -void -SdaiSpecified_higher_usage_occurrence::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSpecified_higher_usage_occurrence: virtual access function." << G4endl; - SdaiSpecified_higher_usage_occurrence_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSpecified_higher_usage_occurrence_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSpecified_higher_usage_occurrence: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSpecified_higher_usage_occurrence *ent = (SdaiSpecified_higher_usage_occurrence *)sent; -// SdaiSpecified_higher_usage_occurrence *ent = (SdaiSpecified_higher_usage_occurrence *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_specified_higher_usage_occurrence; - ent->attributes[6].aDesc = a_155upper_usage; - if(ent->_upper_usage == 0) - ent->_upper_usage = S_ENTITY_NULL; - ent->attributes[7].aDesc = a_156next_usage; - if(ent->_next_usage == 0) - ent->_next_usage = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiSpecified_higher_usage_occurrence(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSpecified_higher_usage_occurrence::get_os_typespec()) - SdaiSpecified_higher_usage_occurrence; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSpecified_higher_usage_occurrence::get_os_typespec()) -// SdaiSpecified_higher_usage_occurrence; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSpecified_higher_usage_occurrence; -} -#endif - -#ifdef __O3DB__ -void -SdaiSpecified_higher_usage_occurrence::oodb_reInit () -{ eDesc = config_control_designe_specified_higher_usage_occurrence; - attributes [6].aDesc = a_155upper_usage; - attributes [7].aDesc = a_156next_usage; -} -#endif - -SdaiSpecified_higher_usage_occurrence::SdaiSpecified_higher_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAssembly_component_usage(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAssembly_component_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_specified_higher_usage_occurrence; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_155upper_usage, (SCLP23(Application_instance_ptr) *) &_upper_usage); -#else - STEPattribute *a = new STEPattribute(*a_155upper_usage, (SCLP23(Application_instance_ptr) *) &_upper_usage); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_156next_usage, (SCLP23(Application_instance_ptr) *) &_next_usage); -#else - a = new STEPattribute(*a_156next_usage, (SCLP23(Application_instance_ptr) *) &_next_usage); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiAssembly_component_usage_ptr -SdaiSpecified_higher_usage_occurrence::upper_usage_() const -{ - return (SdaiAssembly_component_usage_ptr) _upper_usage; -} - -void -SdaiSpecified_higher_usage_occurrence::upper_usage_ (const SdaiAssembly_component_usage_ptr x) - -{ - _upper_usage = x; -} - -const SdaiNext_assembly_usage_occurrence_ptr -SdaiSpecified_higher_usage_occurrence::next_usage_() const -{ - return (SdaiNext_assembly_usage_occurrence_ptr) _next_usage; -} - -void -SdaiSpecified_higher_usage_occurrence::next_usage_ (const SdaiNext_assembly_usage_occurrence_ptr x) - -{ - _next_usage = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY specified_higher_usage_occurrence - - -///////// ENTITY product_definition_formation_with_specified_source - -EntityDescriptor *config_control_designe_product_definition_formation_with_specified_source =0; -AttrDescriptor *a_157make_or_buy =0; -SdaiProduct_definition_formation_with_specified_source::SdaiProduct_definition_formation_with_specified_source( ) -{ - - /* parent: SdaiProduct_definition_formation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_formation_with_specified_source; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_157make_or_buy, &_make_or_buy); -#else - STEPattribute *a = new STEPattribute(*a_157make_or_buy, &_make_or_buy); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_definition_formation_with_specified_source::SdaiProduct_definition_formation_with_specified_source (SdaiProduct_definition_formation_with_specified_source& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition_formation_with_specified_source::~SdaiProduct_definition_formation_with_specified_source () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition_formation_with_specified_source::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_formation_with_specified_source: virtual access function." << G4endl; - SdaiProduct_definition_formation_with_specified_source_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_formation_with_specified_source_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_formation_with_specified_source: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition_formation_with_specified_source *ent = (SdaiProduct_definition_formation_with_specified_source *)sent; -// SdaiProduct_definition_formation_with_specified_source *ent = (SdaiProduct_definition_formation_with_specified_source *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition_formation_with_specified_source; - ent->attributes[3].aDesc = a_157make_or_buy; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_formation_with_specified_source(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition_formation_with_specified_source::get_os_typespec()) - SdaiProduct_definition_formation_with_specified_source; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition_formation_with_specified_source::get_os_typespec()) -// SdaiProduct_definition_formation_with_specified_source; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_formation_with_specified_source; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition_formation_with_specified_source::oodb_reInit () -{ eDesc = config_control_designe_product_definition_formation_with_specified_source; - attributes [3].aDesc = a_157make_or_buy; -} -#endif - -SdaiProduct_definition_formation_with_specified_source::SdaiProduct_definition_formation_with_specified_source (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_definition_formation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_definition_formation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_formation_with_specified_source; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_157make_or_buy, &_make_or_buy); -#else - STEPattribute *a = new STEPattribute(*a_157make_or_buy, &_make_or_buy); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiSource_var -SdaiProduct_definition_formation_with_specified_source::make_or_buy_() const -{ - return (Source) _make_or_buy; -} - -void -SdaiProduct_definition_formation_with_specified_source::make_or_buy_ (const SdaiSource_var x) - -{ - _make_or_buy.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_definition_formation_with_specified_source - - -///////// ENTITY action_request_solution - -EntityDescriptor *config_control_designe_action_request_solution =0; -AttrDescriptor *a_158method =0; -AttrDescriptor *a_159request =0; -SdaiAction_request_solution::SdaiAction_request_solution( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_action_request_solution; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_158method, (SCLP23(Application_instance_ptr) *) &_method); -#else - STEPattribute *a = new STEPattribute(*a_158method, (SCLP23(Application_instance_ptr) *) &_method); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_159request, (SCLP23(Application_instance_ptr) *) &_request); -#else - a = new STEPattribute(*a_159request, (SCLP23(Application_instance_ptr) *) &_request); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAction_request_solution::SdaiAction_request_solution (SdaiAction_request_solution& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAction_request_solution::~SdaiAction_request_solution () { } - -#ifdef __OSTORE__ - -void -SdaiAction_request_solution::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_request_solution: virtual access function." << G4endl; - SdaiAction_request_solution_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAction_request_solution_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_request_solution: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAction_request_solution *ent = (SdaiAction_request_solution *)sent; -// SdaiAction_request_solution *ent = (SdaiAction_request_solution *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_action_request_solution; - ent->attributes[0].aDesc = a_158method; - if(ent->_method == 0) - ent->_method = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_159request; - if(ent->_request == 0) - ent->_request = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAction_request_solution(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAction_request_solution::get_os_typespec()) - SdaiAction_request_solution; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAction_request_solution::get_os_typespec()) -// SdaiAction_request_solution; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAction_request_solution; -} -#endif - -#ifdef __O3DB__ -void -SdaiAction_request_solution::oodb_reInit () -{ eDesc = config_control_designe_action_request_solution; - attributes [0].aDesc = a_158method; - attributes [1].aDesc = a_159request; -} -#endif - -SdaiAction_request_solution::SdaiAction_request_solution( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_action_request_solution; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_158method, (SCLP23(Application_instance_ptr) *) &_method); -#else - STEPattribute *a = new STEPattribute(*a_158method, (SCLP23(Application_instance_ptr) *) &_method); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_159request, (SCLP23(Application_instance_ptr) *) &_request); -#else - a = new STEPattribute(*a_159request, (SCLP23(Application_instance_ptr) *) &_request); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiAction_method_ptr -SdaiAction_request_solution::method_() const -{ - return (SdaiAction_method_ptr) _method; -} - -void -SdaiAction_request_solution::method_ (const SdaiAction_method_ptr x) - -{ - _method = x; -} - -const SdaiVersioned_action_request_ptr -SdaiAction_request_solution::request_() const -{ - return (SdaiVersioned_action_request_ptr) _request; -} - -void -SdaiAction_request_solution::request_ (const SdaiVersioned_action_request_ptr x) - -{ - _request = x; -} - -///////// END_ENTITY action_request_solution - - -///////// ENTITY uncertainty_measure_with_unit - -EntityDescriptor *config_control_designe_uncertainty_measure_with_unit =0; -AttrDescriptor *a_160name =0; -AttrDescriptor *a_161description =0; -SdaiUncertainty_measure_with_unit::SdaiUncertainty_measure_with_unit( ) -{ - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_uncertainty_measure_with_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_160name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_160name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_161description, &_description); -#else - a = new STEPattribute(*a_161description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiUncertainty_measure_with_unit::SdaiUncertainty_measure_with_unit (SdaiUncertainty_measure_with_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiUncertainty_measure_with_unit::~SdaiUncertainty_measure_with_unit () { } - -#ifdef __OSTORE__ - -void -SdaiUncertainty_measure_with_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiUncertainty_measure_with_unit: virtual access function." << G4endl; - SdaiUncertainty_measure_with_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiUncertainty_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiUncertainty_measure_with_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiUncertainty_measure_with_unit *ent = (SdaiUncertainty_measure_with_unit *)sent; -// SdaiUncertainty_measure_with_unit *ent = (SdaiUncertainty_measure_with_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_uncertainty_measure_with_unit; - ent->attributes[2].aDesc = a_160name; - ent->attributes[3].aDesc = a_161description; -} - -SCLP23(Application_instance_ptr) -create_SdaiUncertainty_measure_with_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiUncertainty_measure_with_unit::get_os_typespec()) - SdaiUncertainty_measure_with_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiUncertainty_measure_with_unit::get_os_typespec()) -// SdaiUncertainty_measure_with_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiUncertainty_measure_with_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiUncertainty_measure_with_unit::oodb_reInit () -{ eDesc = config_control_designe_uncertainty_measure_with_unit; - attributes [2].aDesc = a_160name; - attributes [3].aDesc = a_161description; -} -#endif - -SdaiUncertainty_measure_with_unit::SdaiUncertainty_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiMeasure_with_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_uncertainty_measure_with_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_160name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_160name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_161description, &_description); -#else - a = new STEPattribute(*a_161description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiUncertainty_measure_with_unit::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiUncertainty_measure_with_unit::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiUncertainty_measure_with_unit::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiUncertainty_measure_with_unit::description_ (const SdaiText x) - -{ - _description = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY uncertainty_measure_with_unit - - -///////// ENTITY edge_based_wireframe_model - -EntityDescriptor *config_control_designe_edge_based_wireframe_model =0; -AttrDescriptor *a_162ebwm_boundary =0; -SdaiEdge_based_wireframe_model::SdaiEdge_based_wireframe_model( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_edge_based_wireframe_model; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_162ebwm_boundary, &_ebwm_boundary); -#else - STEPattribute *a = new STEPattribute(*a_162ebwm_boundary, &_ebwm_boundary); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiEdge_based_wireframe_model::SdaiEdge_based_wireframe_model (SdaiEdge_based_wireframe_model& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiEdge_based_wireframe_model::~SdaiEdge_based_wireframe_model () { } - -#ifdef __OSTORE__ - -void -SdaiEdge_based_wireframe_model::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge_based_wireframe_model: virtual access function." << G4endl; - SdaiEdge_based_wireframe_model_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiEdge_based_wireframe_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge_based_wireframe_model: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiEdge_based_wireframe_model *ent = (SdaiEdge_based_wireframe_model *)sent; -// SdaiEdge_based_wireframe_model *ent = (SdaiEdge_based_wireframe_model *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_edge_based_wireframe_model; - ent->attributes[1].aDesc = a_162ebwm_boundary; -} - -SCLP23(Application_instance_ptr) -create_SdaiEdge_based_wireframe_model(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiEdge_based_wireframe_model::get_os_typespec()) - SdaiEdge_based_wireframe_model; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiEdge_based_wireframe_model::get_os_typespec()) -// SdaiEdge_based_wireframe_model; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiEdge_based_wireframe_model; -} -#endif - -#ifdef __O3DB__ -void -SdaiEdge_based_wireframe_model::oodb_reInit () -{ eDesc = config_control_designe_edge_based_wireframe_model; - attributes [1].aDesc = a_162ebwm_boundary; -} -#endif - -SdaiEdge_based_wireframe_model::SdaiEdge_based_wireframe_model (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_edge_based_wireframe_model; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_162ebwm_boundary, &_ebwm_boundary); -#else - STEPattribute *a = new STEPattribute(*a_162ebwm_boundary, &_ebwm_boundary); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const EntityAggregate_ptr -SdaiEdge_based_wireframe_model::ebwm_boundary_() const -{ - return (EntityAggregate_ptr) &_ebwm_boundary; -} - -void -SdaiEdge_based_wireframe_model::ebwm_boundary_ (const EntityAggregate_ptr x) - - { _ebwm_boundary.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY edge_based_wireframe_model - - -///////// ENTITY path - -EntityDescriptor *config_control_designe_path =0; -AttrDescriptor *a_163edge_list =0; -SdaiPath::SdaiPath( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_path; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_163edge_list, &_edge_list); -#else - STEPattribute *a = new STEPattribute(*a_163edge_list, &_edge_list); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiPath::SdaiPath (SdaiPath& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPath::~SdaiPath () { } - -#ifdef __OSTORE__ - -void -SdaiPath::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPath: virtual access function." << G4endl; - SdaiPath_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPath_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPath: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPath *ent = (SdaiPath *)sent; -// SdaiPath *ent = (SdaiPath *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_path; - ent->attributes[1].aDesc = a_163edge_list; -} - -SCLP23(Application_instance_ptr) -create_SdaiPath(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPath::get_os_typespec()) - SdaiPath; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPath::get_os_typespec()) -// SdaiPath; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPath; -} -#endif - -#ifdef __O3DB__ -void -SdaiPath::oodb_reInit () -{ eDesc = config_control_designe_path; - attributes [1].aDesc = a_163edge_list; -} -#endif - -SdaiPath::SdaiPath (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_path; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_163edge_list, &_edge_list); -#else - STEPattribute *a = new STEPattribute(*a_163edge_list, &_edge_list); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiPath::edge_list_() const -{ - return (EntityAggregate_ptr) &_edge_list; -} - -void -SdaiPath::edge_list_ (const EntityAggregate_ptr x) - - { _edge_list.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY path - - -///////// ENTITY connected_face_set - -EntityDescriptor *config_control_designe_connected_face_set =0; -AttrDescriptor *a_164cfs_faces =0; -SdaiConnected_face_set::SdaiConnected_face_set( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_connected_face_set; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_164cfs_faces, &_cfs_faces); -#else - STEPattribute *a = new STEPattribute(*a_164cfs_faces, &_cfs_faces); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiConnected_face_set::SdaiConnected_face_set (SdaiConnected_face_set& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiConnected_face_set::~SdaiConnected_face_set () { } - -#ifdef __OSTORE__ - -void -SdaiConnected_face_set::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConnected_face_set: virtual access function." << G4endl; - SdaiConnected_face_set_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiConnected_face_set_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConnected_face_set: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiConnected_face_set *ent = (SdaiConnected_face_set *)sent; -// SdaiConnected_face_set *ent = (SdaiConnected_face_set *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_connected_face_set; - ent->attributes[1].aDesc = a_164cfs_faces; -} - -SCLP23(Application_instance_ptr) -create_SdaiConnected_face_set(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiConnected_face_set::get_os_typespec()) - SdaiConnected_face_set; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiConnected_face_set::get_os_typespec()) -// SdaiConnected_face_set; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiConnected_face_set; -} -#endif - -#ifdef __O3DB__ -void -SdaiConnected_face_set::oodb_reInit () -{ eDesc = config_control_designe_connected_face_set; - attributes [1].aDesc = a_164cfs_faces; -} -#endif - -SdaiConnected_face_set::SdaiConnected_face_set (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_connected_face_set; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_164cfs_faces, &_cfs_faces); -#else - STEPattribute *a = new STEPattribute(*a_164cfs_faces, &_cfs_faces); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiConnected_face_set::cfs_faces_() const -{ - return (EntityAggregate_ptr) &_cfs_faces; -} - -void -SdaiConnected_face_set::cfs_faces_ (const EntityAggregate_ptr x) - - { _cfs_faces.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY connected_face_set - - -///////// ENTITY open_shell - -EntityDescriptor *config_control_designe_open_shell =0; -SdaiOpen_shell::SdaiOpen_shell( ) -{ - - /* parent: SdaiConnected_face_set */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_open_shell; -} -SdaiOpen_shell::SdaiOpen_shell (SdaiOpen_shell& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOpen_shell::~SdaiOpen_shell () { } - -#ifdef __OSTORE__ - -void -SdaiOpen_shell::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOpen_shell: virtual access function." << G4endl; - SdaiOpen_shell_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOpen_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOpen_shell: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOpen_shell *ent = (SdaiOpen_shell *)sent; -// SdaiOpen_shell *ent = (SdaiOpen_shell *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_open_shell; -} - -SCLP23(Application_instance_ptr) -create_SdaiOpen_shell(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOpen_shell::get_os_typespec()) - SdaiOpen_shell; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOpen_shell::get_os_typespec()) -// SdaiOpen_shell; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOpen_shell; -} -#endif - -#ifdef __O3DB__ -void -SdaiOpen_shell::oodb_reInit () -{ eDesc = config_control_designe_open_shell; -} -#endif - -SdaiOpen_shell::SdaiOpen_shell (SCLP23(Application_instance) *se, int *addAttrs) : SdaiConnected_face_set(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiConnected_face_set */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_open_shell; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY open_shell - - -///////// ENTITY oriented_open_shell - -EntityDescriptor *config_control_designe_oriented_open_shell =0; -AttrDescriptor *a_165open_shell_element =0; -AttrDescriptor *a_166orientation =0; -Derived_attribute *a_167Dconnected_face_set_cfs_faces =0; -SdaiOriented_open_shell::SdaiOriented_open_shell( ) -{ - - /* parent: SdaiOpen_shell */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_open_shell; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_165open_shell_element, (SCLP23(Application_instance_ptr) *) &_open_shell_element); -#else - STEPattribute *a = new STEPattribute(*a_165open_shell_element, (SCLP23(Application_instance_ptr) *) &_open_shell_element); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_166orientation, &_orientation); -#else - a = new STEPattribute(*a_166orientation, &_orientation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("cfs_faces"); -} -SdaiOriented_open_shell::SdaiOriented_open_shell (SdaiOriented_open_shell& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOriented_open_shell::~SdaiOriented_open_shell () { } - -#ifdef __OSTORE__ - -void -SdaiOriented_open_shell::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_open_shell: virtual access function." << G4endl; - SdaiOriented_open_shell_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOriented_open_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_open_shell: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOriented_open_shell *ent = (SdaiOriented_open_shell *)sent; -// SdaiOriented_open_shell *ent = (SdaiOriented_open_shell *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_oriented_open_shell; - ent->attributes[2].aDesc = a_165open_shell_element; - if(ent->_open_shell_element == 0) - ent->_open_shell_element = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_166orientation; -} - -SCLP23(Application_instance_ptr) -create_SdaiOriented_open_shell(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOriented_open_shell::get_os_typespec()) - SdaiOriented_open_shell; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOriented_open_shell::get_os_typespec()) -// SdaiOriented_open_shell; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOriented_open_shell; -} -#endif - -#ifdef __O3DB__ -void -SdaiOriented_open_shell::oodb_reInit () -{ eDesc = config_control_designe_oriented_open_shell; - attributes [2].aDesc = a_165open_shell_element; - attributes [3].aDesc = a_166orientation; -} -#endif - -SdaiOriented_open_shell::SdaiOriented_open_shell (SCLP23(Application_instance) *se, int *addAttrs) : SdaiOpen_shell(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiOpen_shell */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_open_shell; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_165open_shell_element, (SCLP23(Application_instance_ptr) *) &_open_shell_element); -#else - STEPattribute *a = new STEPattribute(*a_165open_shell_element, (SCLP23(Application_instance_ptr) *) &_open_shell_element); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_166orientation, &_orientation); -#else - a = new STEPattribute(*a_166orientation, &_orientation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("cfs_faces"); -} - -const SdaiOpen_shell_ptr -SdaiOriented_open_shell::open_shell_element_() const -{ - return (SdaiOpen_shell_ptr) _open_shell_element; -} - -void -SdaiOriented_open_shell::open_shell_element_ (const SdaiOpen_shell_ptr x) - -{ - _open_shell_element = x; -} - -const SCLBOOL(Bool) -SdaiOriented_open_shell::orientation_() const -{ - return (SCLBOOL(Bool)) _orientation; -} - -void -SdaiOriented_open_shell::orientation_ (const SCLBOOL(Bool) x) - -{ - _orientation.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY oriented_open_shell - - -///////// ENTITY solid_angle_unit - -EntityDescriptor *config_control_designe_solid_angle_unit =0; -SdaiSolid_angle_unit::SdaiSolid_angle_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_solid_angle_unit; -} -SdaiSolid_angle_unit::SdaiSolid_angle_unit (SdaiSolid_angle_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSolid_angle_unit::~SdaiSolid_angle_unit () { } - -#ifdef __OSTORE__ - -void -SdaiSolid_angle_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSolid_angle_unit: virtual access function." << G4endl; - SdaiSolid_angle_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSolid_angle_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSolid_angle_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSolid_angle_unit *ent = (SdaiSolid_angle_unit *)sent; -// SdaiSolid_angle_unit *ent = (SdaiSolid_angle_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_solid_angle_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiSolid_angle_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSolid_angle_unit::get_os_typespec()) - SdaiSolid_angle_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSolid_angle_unit::get_os_typespec()) -// SdaiSolid_angle_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSolid_angle_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiSolid_angle_unit::oodb_reInit () -{ eDesc = config_control_designe_solid_angle_unit; -} -#endif - -SdaiSolid_angle_unit::SdaiSolid_angle_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_solid_angle_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY solid_angle_unit - - -///////// ENTITY coordinated_universal_time_offset - -EntityDescriptor *config_control_designe_coordinated_universal_time_offset =0; -AttrDescriptor *a_168hour_offset =0; -AttrDescriptor *a_169minute_offset =0; -AttrDescriptor *a_170sense =0; -SdaiCoordinated_universal_time_offset::SdaiCoordinated_universal_time_offset( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_coordinated_universal_time_offset; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_168hour_offset, &_hour_offset); -#else - STEPattribute *a = new STEPattribute(*a_168hour_offset, &_hour_offset); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_169minute_offset, &_minute_offset); -#else - a = new STEPattribute(*a_169minute_offset, &_minute_offset); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_170sense, &_sense); -#else - a = new STEPattribute(*a_170sense, &_sense); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCoordinated_universal_time_offset::SdaiCoordinated_universal_time_offset (SdaiCoordinated_universal_time_offset& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCoordinated_universal_time_offset::~SdaiCoordinated_universal_time_offset () { } - -#ifdef __OSTORE__ - -void -SdaiCoordinated_universal_time_offset::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCoordinated_universal_time_offset: virtual access function." << G4endl; - SdaiCoordinated_universal_time_offset_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCoordinated_universal_time_offset_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCoordinated_universal_time_offset: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCoordinated_universal_time_offset *ent = (SdaiCoordinated_universal_time_offset *)sent; -// SdaiCoordinated_universal_time_offset *ent = (SdaiCoordinated_universal_time_offset *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_coordinated_universal_time_offset; - ent->attributes[0].aDesc = a_168hour_offset; - ent->attributes[1].aDesc = a_169minute_offset; - ent->attributes[2].aDesc = a_170sense; -} - -SCLP23(Application_instance_ptr) -create_SdaiCoordinated_universal_time_offset(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCoordinated_universal_time_offset::get_os_typespec()) - SdaiCoordinated_universal_time_offset; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCoordinated_universal_time_offset::get_os_typespec()) -// SdaiCoordinated_universal_time_offset; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCoordinated_universal_time_offset; -} -#endif - -#ifdef __O3DB__ -void -SdaiCoordinated_universal_time_offset::oodb_reInit () -{ eDesc = config_control_designe_coordinated_universal_time_offset; - attributes [0].aDesc = a_168hour_offset; - attributes [1].aDesc = a_169minute_offset; - attributes [2].aDesc = a_170sense; -} -#endif - -SdaiCoordinated_universal_time_offset::SdaiCoordinated_universal_time_offset( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_coordinated_universal_time_offset; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_168hour_offset, &_hour_offset); -#else - STEPattribute *a = new STEPattribute(*a_168hour_offset, &_hour_offset); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_169minute_offset, &_minute_offset); -#else - a = new STEPattribute(*a_169minute_offset, &_minute_offset); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_170sense, &_sense); -#else - a = new STEPattribute(*a_170sense, &_sense); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiHour_in_day -SdaiCoordinated_universal_time_offset::hour_offset_() const -{ - return (SdaiHour_in_day) _hour_offset; -} - -void -SdaiCoordinated_universal_time_offset::hour_offset_ (const SdaiHour_in_day x) - -{ - _hour_offset = x; -} - -const SdaiMinute_in_hour -SdaiCoordinated_universal_time_offset::minute_offset_() const -{ - return (SdaiMinute_in_hour) _minute_offset; -} - -void -SdaiCoordinated_universal_time_offset::minute_offset_ (const SdaiMinute_in_hour x) - -{ - _minute_offset = x; -} - -const SdaiAhead_or_behind_var -SdaiCoordinated_universal_time_offset::sense_() const -{ - return (Ahead_or_behind) _sense; -} - -void -SdaiCoordinated_universal_time_offset::sense_ (const SdaiAhead_or_behind_var x) - -{ - _sense.put (x); -} - -///////// END_ENTITY coordinated_universal_time_offset - - -///////// ENTITY curve_replica - -EntityDescriptor *config_control_designe_curve_replica =0; -AttrDescriptor *a_171parent_curve =0; -AttrDescriptor *a_172transformation =0; -SdaiCurve_replica::SdaiCurve_replica( ) -{ - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_curve_replica; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_171parent_curve, (SCLP23(Application_instance_ptr) *) &_parent_curve); -#else - STEPattribute *a = new STEPattribute(*a_171parent_curve, (SCLP23(Application_instance_ptr) *) &_parent_curve); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_172transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#else - a = new STEPattribute(*a_172transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiCurve_replica::SdaiCurve_replica (SdaiCurve_replica& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCurve_replica::~SdaiCurve_replica () { } - -#ifdef __OSTORE__ - -void -SdaiCurve_replica::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCurve_replica: virtual access function." << G4endl; - SdaiCurve_replica_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCurve_replica_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCurve_replica: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCurve_replica *ent = (SdaiCurve_replica *)sent; -// SdaiCurve_replica *ent = (SdaiCurve_replica *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_curve_replica; - ent->attributes[1].aDesc = a_171parent_curve; - if(ent->_parent_curve == 0) - ent->_parent_curve = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_172transformation; - if(ent->_transformation == 0) - ent->_transformation = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiCurve_replica(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCurve_replica::get_os_typespec()) - SdaiCurve_replica; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCurve_replica::get_os_typespec()) -// SdaiCurve_replica; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCurve_replica; -} -#endif - -#ifdef __O3DB__ -void -SdaiCurve_replica::oodb_reInit () -{ eDesc = config_control_designe_curve_replica; - attributes [1].aDesc = a_171parent_curve; - attributes [2].aDesc = a_172transformation; -} -#endif - -SdaiCurve_replica::SdaiCurve_replica (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_curve_replica; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_171parent_curve, (SCLP23(Application_instance_ptr) *) &_parent_curve); -#else - STEPattribute *a = new STEPattribute(*a_171parent_curve, (SCLP23(Application_instance_ptr) *) &_parent_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_172transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#else - a = new STEPattribute(*a_172transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCurve_ptr -SdaiCurve_replica::parent_curve_() const -{ - return (SdaiCurve_ptr) _parent_curve; -} - -void -SdaiCurve_replica::parent_curve_ (const SdaiCurve_ptr x) - -{ - _parent_curve = x; -} - -const SdaiCartesian_transformation_operator_ptr -SdaiCurve_replica::transformation_() const -{ - return (SdaiCartesian_transformation_operator_ptr) _transformation; -} - -void -SdaiCurve_replica::transformation_ (const SdaiCartesian_transformation_operator_ptr x) - -{ - _transformation = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY curve_replica - - -///////// ENTITY quasi_uniform_surface - -EntityDescriptor *config_control_designe_quasi_uniform_surface =0; -SdaiQuasi_uniform_surface::SdaiQuasi_uniform_surface( ) -{ - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_quasi_uniform_surface; - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); -} -SdaiQuasi_uniform_surface::SdaiQuasi_uniform_surface (SdaiQuasi_uniform_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiQuasi_uniform_surface::~SdaiQuasi_uniform_surface () { } - -#ifdef __OSTORE__ - -void -SdaiQuasi_uniform_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiQuasi_uniform_surface: virtual access function." << G4endl; - SdaiQuasi_uniform_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiQuasi_uniform_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiQuasi_uniform_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiQuasi_uniform_surface *ent = (SdaiQuasi_uniform_surface *)sent; -// SdaiQuasi_uniform_surface *ent = (SdaiQuasi_uniform_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_quasi_uniform_surface; -} - -SCLP23(Application_instance_ptr) -create_SdaiQuasi_uniform_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiQuasi_uniform_surface::get_os_typespec()) - SdaiQuasi_uniform_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiQuasi_uniform_surface::get_os_typespec()) -// SdaiQuasi_uniform_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiQuasi_uniform_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiQuasi_uniform_surface::oodb_reInit () -{ eDesc = config_control_designe_quasi_uniform_surface; -} -#endif - -SdaiQuasi_uniform_surface::SdaiQuasi_uniform_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_quasi_uniform_surface; - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY quasi_uniform_surface - - -///////// ENTITY surface_curve - -EntityDescriptor *config_control_designe_surface_curve =0; -AttrDescriptor *a_173curve_3d =0; -AttrDescriptor *a_174associated_geometry =0; -AttrDescriptor *a_175master_representation =0; -Derived_attribute *a_176Dbasis_surface =0; -SdaiSurface_curve::SdaiSurface_curve( ) -{ - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_173curve_3d, (SCLP23(Application_instance_ptr) *) &_curve_3d); -#else - STEPattribute *a = new STEPattribute(*a_173curve_3d, (SCLP23(Application_instance_ptr) *) &_curve_3d); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_174associated_geometry, &_associated_geometry); -#else - a = new STEPattribute(*a_174associated_geometry, &_associated_geometry); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_175master_representation, &_master_representation); -#else - a = new STEPattribute(*a_175master_representation, &_master_representation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("basis_surface"); -} -SdaiSurface_curve::SdaiSurface_curve (SdaiSurface_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSurface_curve::~SdaiSurface_curve () { } - -#ifdef __OSTORE__ - -void -SdaiSurface_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_curve: virtual access function." << G4endl; - SdaiSurface_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSurface_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSurface_curve *ent = (SdaiSurface_curve *)sent; -// SdaiSurface_curve *ent = (SdaiSurface_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_surface_curve; - ent->attributes[1].aDesc = a_173curve_3d; - if(ent->_curve_3d == 0) - ent->_curve_3d = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_174associated_geometry; - ent->attributes[3].aDesc = a_175master_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiSurface_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSurface_curve::get_os_typespec()) - SdaiSurface_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSurface_curve::get_os_typespec()) -// SdaiSurface_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSurface_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiSurface_curve::oodb_reInit () -{ eDesc = config_control_designe_surface_curve; - attributes [1].aDesc = a_173curve_3d; - attributes [2].aDesc = a_174associated_geometry; - attributes [3].aDesc = a_175master_representation; -} -#endif - -SdaiSurface_curve::SdaiSurface_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_173curve_3d, (SCLP23(Application_instance_ptr) *) &_curve_3d); -#else - STEPattribute *a = new STEPattribute(*a_173curve_3d, (SCLP23(Application_instance_ptr) *) &_curve_3d); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_174associated_geometry, &_associated_geometry); -#else - a = new STEPattribute(*a_174associated_geometry, &_associated_geometry); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_175master_representation, &_master_representation); -#else - a = new STEPattribute(*a_175master_representation, &_master_representation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("basis_surface"); -} - -const SdaiCurve_ptr -SdaiSurface_curve::curve_3d_() const -{ - return (SdaiCurve_ptr) _curve_3d; -} - -void -SdaiSurface_curve::curve_3d_ (const SdaiCurve_ptr x) - -{ - _curve_3d = x; -} - -const SdaiPcurve_or_surfaces_ptr -SdaiSurface_curve::associated_geometry_() const -{ - return (SdaiPcurve_or_surfaces_ptr) &_associated_geometry; -} - -void -SdaiSurface_curve::associated_geometry_ (const SdaiPcurve_or_surfaces_ptr x) - - { _associated_geometry.ShallowCopy (*x); } - -const SdaiPreferred_surface_curve_representation_var -SdaiSurface_curve::master_representation_() const -{ - return (Preferred_surface_curve_representation) _master_representation; -} - -void -SdaiSurface_curve::master_representation_ (const SdaiPreferred_surface_curve_representation_var x) - -{ - _master_representation.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY surface_curve - - -///////// ENTITY action_request_status - -EntityDescriptor *config_control_designe_action_request_status =0; -AttrDescriptor *a_177status =0; -AttrDescriptor *a_178assigned_request =0; -SdaiAction_request_status::SdaiAction_request_status( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_action_request_status; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_177status, &_status); -#else - STEPattribute *a = new STEPattribute(*a_177status, &_status); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_178assigned_request, (SCLP23(Application_instance_ptr) *) &_assigned_request); -#else - a = new STEPattribute(*a_178assigned_request, (SCLP23(Application_instance_ptr) *) &_assigned_request); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAction_request_status::SdaiAction_request_status (SdaiAction_request_status& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAction_request_status::~SdaiAction_request_status () { } - -#ifdef __OSTORE__ - -void -SdaiAction_request_status::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_request_status: virtual access function." << G4endl; - SdaiAction_request_status_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAction_request_status_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_request_status: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAction_request_status *ent = (SdaiAction_request_status *)sent; -// SdaiAction_request_status *ent = (SdaiAction_request_status *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_action_request_status; - ent->attributes[0].aDesc = a_177status; - ent->attributes[1].aDesc = a_178assigned_request; - if(ent->_assigned_request == 0) - ent->_assigned_request = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAction_request_status(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAction_request_status::get_os_typespec()) - SdaiAction_request_status; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAction_request_status::get_os_typespec()) -// SdaiAction_request_status; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAction_request_status; -} -#endif - -#ifdef __O3DB__ -void -SdaiAction_request_status::oodb_reInit () -{ eDesc = config_control_designe_action_request_status; - attributes [0].aDesc = a_177status; - attributes [1].aDesc = a_178assigned_request; -} -#endif - -SdaiAction_request_status::SdaiAction_request_status( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_action_request_status; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_177status, &_status); -#else - STEPattribute *a = new STEPattribute(*a_177status, &_status); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_178assigned_request, (SCLP23(Application_instance_ptr) *) &_assigned_request); -#else - a = new STEPattribute(*a_178assigned_request, (SCLP23(Application_instance_ptr) *) &_assigned_request); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiAction_request_status::status_() const -{ - return (SdaiLabel) _status; -} - -void -SdaiAction_request_status::status_ (const SdaiLabel x) - -{ - _status = x; -} - -const SdaiVersioned_action_request_ptr -SdaiAction_request_status::assigned_request_() const -{ - return (SdaiVersioned_action_request_ptr) _assigned_request; -} - -void -SdaiAction_request_status::assigned_request_ (const SdaiVersioned_action_request_ptr x) - -{ - _assigned_request = x; -} - -///////// END_ENTITY action_request_status - - -///////// ENTITY composite_curve_segment - -EntityDescriptor *config_control_designe_composite_curve_segment =0; -AttrDescriptor *a_179transition =0; -AttrDescriptor *a_180same_sense =0; -AttrDescriptor *a_181parent_curve =0; -Inverse_attribute *a_182Iusing_curves =0; -SdaiComposite_curve_segment::SdaiComposite_curve_segment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_composite_curve_segment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_179transition, &_transition); -#else - STEPattribute *a = new STEPattribute(*a_179transition, &_transition); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_180same_sense, &_same_sense); -#else - a = new STEPattribute(*a_180same_sense, &_same_sense); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_181parent_curve, (SCLP23(Application_instance_ptr) *) &_parent_curve); -#else - a = new STEPattribute(*a_181parent_curve, (SCLP23(Application_instance_ptr) *) &_parent_curve); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiComposite_curve_segment::SdaiComposite_curve_segment (SdaiComposite_curve_segment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiComposite_curve_segment::~SdaiComposite_curve_segment () { } - -#ifdef __OSTORE__ - -void -SdaiComposite_curve_segment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiComposite_curve_segment: virtual access function." << G4endl; - SdaiComposite_curve_segment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiComposite_curve_segment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiComposite_curve_segment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiComposite_curve_segment *ent = (SdaiComposite_curve_segment *)sent; -// SdaiComposite_curve_segment *ent = (SdaiComposite_curve_segment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_composite_curve_segment; - ent->attributes[0].aDesc = a_179transition; - ent->attributes[1].aDesc = a_180same_sense; - ent->attributes[2].aDesc = a_181parent_curve; - if(ent->_parent_curve == 0) - ent->_parent_curve = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiComposite_curve_segment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiComposite_curve_segment::get_os_typespec()) - SdaiComposite_curve_segment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiComposite_curve_segment::get_os_typespec()) -// SdaiComposite_curve_segment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiComposite_curve_segment; -} -#endif - -#ifdef __O3DB__ -void -SdaiComposite_curve_segment::oodb_reInit () -{ eDesc = config_control_designe_composite_curve_segment; - attributes [0].aDesc = a_179transition; - attributes [1].aDesc = a_180same_sense; - attributes [2].aDesc = a_181parent_curve; -} -#endif - -SdaiComposite_curve_segment::SdaiComposite_curve_segment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_composite_curve_segment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_179transition, &_transition); -#else - STEPattribute *a = new STEPattribute(*a_179transition, &_transition); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_180same_sense, &_same_sense); -#else - a = new STEPattribute(*a_180same_sense, &_same_sense); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_181parent_curve, (SCLP23(Application_instance_ptr) *) &_parent_curve); -#else - a = new STEPattribute(*a_181parent_curve, (SCLP23(Application_instance_ptr) *) &_parent_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiTransition_code_var -SdaiComposite_curve_segment::transition_() const -{ - return (Transition_code) _transition; -} - -void -SdaiComposite_curve_segment::transition_ (const SdaiTransition_code_var x) - -{ - _transition.put (x); -} - -const SCLBOOL(Bool) -SdaiComposite_curve_segment::same_sense_() const -{ - return (SCLBOOL(Bool)) _same_sense; -} - -void -SdaiComposite_curve_segment::same_sense_ (const SCLBOOL(Bool) x) - -{ - _same_sense.put (x); -} - -const SdaiCurve_ptr -SdaiComposite_curve_segment::parent_curve_() const -{ - return (SdaiCurve_ptr) _parent_curve; -} - -void -SdaiComposite_curve_segment::parent_curve_ (const SdaiCurve_ptr x) - -{ - _parent_curve = x; -} - -const EntityAggregate_ptr -SdaiComposite_curve_segment::using_curves_() const -{ - return (EntityAggregate_ptr) &_using_curves; -} - -void -SdaiComposite_curve_segment::using_curves_ (const EntityAggregate_ptr x) - - { _using_curves.ShallowCopy (*x); } - -///////// END_ENTITY composite_curve_segment - - -///////// ENTITY reparametrised_composite_curve_segment - -EntityDescriptor *config_control_designe_reparametrised_composite_curve_segment =0; -AttrDescriptor *a_183param_length =0; -SdaiReparametrised_composite_curve_segment::SdaiReparametrised_composite_curve_segment( ) -{ - - /* parent: SdaiComposite_curve_segment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_reparametrised_composite_curve_segment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_183param_length, &_param_length); -#else - STEPattribute *a = new STEPattribute(*a_183param_length, &_param_length); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiReparametrised_composite_curve_segment::SdaiReparametrised_composite_curve_segment (SdaiReparametrised_composite_curve_segment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiReparametrised_composite_curve_segment::~SdaiReparametrised_composite_curve_segment () { } - -#ifdef __OSTORE__ - -void -SdaiReparametrised_composite_curve_segment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiReparametrised_composite_curve_segment: virtual access function." << G4endl; - SdaiReparametrised_composite_curve_segment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiReparametrised_composite_curve_segment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiReparametrised_composite_curve_segment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiReparametrised_composite_curve_segment *ent = (SdaiReparametrised_composite_curve_segment *)sent; -// SdaiReparametrised_composite_curve_segment *ent = (SdaiReparametrised_composite_curve_segment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_reparametrised_composite_curve_segment; - ent->attributes[3].aDesc = a_183param_length; -} - -SCLP23(Application_instance_ptr) -create_SdaiReparametrised_composite_curve_segment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiReparametrised_composite_curve_segment::get_os_typespec()) - SdaiReparametrised_composite_curve_segment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiReparametrised_composite_curve_segment::get_os_typespec()) -// SdaiReparametrised_composite_curve_segment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiReparametrised_composite_curve_segment; -} -#endif - -#ifdef __O3DB__ -void -SdaiReparametrised_composite_curve_segment::oodb_reInit () -{ eDesc = config_control_designe_reparametrised_composite_curve_segment; - attributes [3].aDesc = a_183param_length; -} -#endif - -SdaiReparametrised_composite_curve_segment::SdaiReparametrised_composite_curve_segment (SCLP23(Application_instance) *se, int *addAttrs) : SdaiComposite_curve_segment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiComposite_curve_segment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_reparametrised_composite_curve_segment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_183param_length, &_param_length); -#else - STEPattribute *a = new STEPattribute(*a_183param_length, &_param_length); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiParameter_value -SdaiReparametrised_composite_curve_segment::param_length_() const -{ - return (SdaiParameter_value) _param_length; -} - -void -SdaiReparametrised_composite_curve_segment::param_length_ (const SdaiParameter_value x) - -{ - _param_length = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY reparametrised_composite_curve_segment - - -///////// ENTITY representation_relationship - -EntityDescriptor *config_control_designe_representation_relationship =0; -AttrDescriptor *a_184name =0; -AttrDescriptor *a_185description =0; -AttrDescriptor *a_186rep_1 =0; -AttrDescriptor *a_187rep_2 =0; -SdaiRepresentation_relationship::SdaiRepresentation_relationship( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_representation_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_184name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_184name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_185description, &_description); -#else - a = new STEPattribute(*a_185description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_186rep_1, (SCLP23(Application_instance_ptr) *) &_rep_1); -#else - a = new STEPattribute(*a_186rep_1, (SCLP23(Application_instance_ptr) *) &_rep_1); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_187rep_2, (SCLP23(Application_instance_ptr) *) &_rep_2); -#else - a = new STEPattribute(*a_187rep_2, (SCLP23(Application_instance_ptr) *) &_rep_2); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiRepresentation_relationship::SdaiRepresentation_relationship (SdaiRepresentation_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRepresentation_relationship::~SdaiRepresentation_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiRepresentation_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_relationship: virtual access function." << G4endl; - SdaiRepresentation_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRepresentation_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRepresentation_relationship *ent = (SdaiRepresentation_relationship *)sent; -// SdaiRepresentation_relationship *ent = (SdaiRepresentation_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_representation_relationship; - ent->attributes[0].aDesc = a_184name; - ent->attributes[1].aDesc = a_185description; - ent->attributes[2].aDesc = a_186rep_1; - if(ent->_rep_1 == 0) - ent->_rep_1 = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_187rep_2; - if(ent->_rep_2 == 0) - ent->_rep_2 = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRepresentation_relationship::get_os_typespec()) - SdaiRepresentation_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRepresentation_relationship::get_os_typespec()) -// SdaiRepresentation_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiRepresentation_relationship::oodb_reInit () -{ eDesc = config_control_designe_representation_relationship; - attributes [0].aDesc = a_184name; - attributes [1].aDesc = a_185description; - attributes [2].aDesc = a_186rep_1; - attributes [3].aDesc = a_187rep_2; -} -#endif - -SdaiRepresentation_relationship::SdaiRepresentation_relationship( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_representation_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_184name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_184name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_185description, &_description); -#else - a = new STEPattribute(*a_185description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_186rep_1, (SCLP23(Application_instance_ptr) *) &_rep_1); -#else - a = new STEPattribute(*a_186rep_1, (SCLP23(Application_instance_ptr) *) &_rep_1); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_187rep_2, (SCLP23(Application_instance_ptr) *) &_rep_2); -#else - a = new STEPattribute(*a_187rep_2, (SCLP23(Application_instance_ptr) *) &_rep_2); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiRepresentation_relationship::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiRepresentation_relationship::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiRepresentation_relationship::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiRepresentation_relationship::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiRepresentation_ptr -SdaiRepresentation_relationship::rep_1_() const -{ - return (SdaiRepresentation_ptr) _rep_1; -} - -void -SdaiRepresentation_relationship::rep_1_ (const SdaiRepresentation_ptr x) - -{ - _rep_1 = x; -} - -const SdaiRepresentation_ptr -SdaiRepresentation_relationship::rep_2_() const -{ - return (SdaiRepresentation_ptr) _rep_2; -} - -void -SdaiRepresentation_relationship::rep_2_ (const SdaiRepresentation_ptr x) - -{ - _rep_2 = x; -} - -///////// END_ENTITY representation_relationship - - -///////// ENTITY representation_relationship_with_transformation - -EntityDescriptor *config_control_designe_representation_relationship_with_transformation =0; -AttrDescriptor *a_188transformation_operator =0; -SdaiRepresentation_relationship_with_transformation::SdaiRepresentation_relationship_with_transformation( ) -{ - - /* parent: SdaiRepresentation_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_representation_relationship_with_transformation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_188transformation_operator, &_transformation_operator); -#else - STEPattribute *a = new STEPattribute(*a_188transformation_operator, &_transformation_operator); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiRepresentation_relationship_with_transformation::SdaiRepresentation_relationship_with_transformation (SdaiRepresentation_relationship_with_transformation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRepresentation_relationship_with_transformation::~SdaiRepresentation_relationship_with_transformation () { } - -#ifdef __OSTORE__ - -void -SdaiRepresentation_relationship_with_transformation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_relationship_with_transformation: virtual access function." << G4endl; - SdaiRepresentation_relationship_with_transformation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRepresentation_relationship_with_transformation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_relationship_with_transformation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRepresentation_relationship_with_transformation *ent = (SdaiRepresentation_relationship_with_transformation *)sent; -// SdaiRepresentation_relationship_with_transformation *ent = (SdaiRepresentation_relationship_with_transformation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_representation_relationship_with_transformation; - ent->attributes[4].aDesc = a_188transformation_operator; -} - -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_relationship_with_transformation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRepresentation_relationship_with_transformation::get_os_typespec()) - SdaiRepresentation_relationship_with_transformation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRepresentation_relationship_with_transformation::get_os_typespec()) -// SdaiRepresentation_relationship_with_transformation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_relationship_with_transformation; -} -#endif - -#ifdef __O3DB__ -void -SdaiRepresentation_relationship_with_transformation::oodb_reInit () -{ eDesc = config_control_designe_representation_relationship_with_transformation; - attributes [4].aDesc = a_188transformation_operator; -} -#endif - -SdaiRepresentation_relationship_with_transformation::SdaiRepresentation_relationship_with_transformation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_relationship(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_representation_relationship_with_transformation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_188transformation_operator, &_transformation_operator); -#else - STEPattribute *a = new STEPattribute(*a_188transformation_operator, &_transformation_operator); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiTransformation_ptr -SdaiRepresentation_relationship_with_transformation::transformation_operator_() const - { return (SdaiTransformation_ptr) &_transformation_operator; } - -void -SdaiRepresentation_relationship_with_transformation::transformation_operator_ (const SdaiTransformation_ptr x) - - { _transformation_operator = x; } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY representation_relationship_with_transformation - - -///////// ENTITY person_and_organization_role - -EntityDescriptor *config_control_designe_person_and_organization_role =0; -AttrDescriptor *a_189name =0; -SdaiPerson_and_organization_role::SdaiPerson_and_organization_role( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_person_and_organization_role; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_189name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_189name, &_name); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiPerson_and_organization_role::SdaiPerson_and_organization_role (SdaiPerson_and_organization_role& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPerson_and_organization_role::~SdaiPerson_and_organization_role () { } - -#ifdef __OSTORE__ - -void -SdaiPerson_and_organization_role::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPerson_and_organization_role: virtual access function." << G4endl; - SdaiPerson_and_organization_role_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPerson_and_organization_role_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPerson_and_organization_role: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPerson_and_organization_role *ent = (SdaiPerson_and_organization_role *)sent; -// SdaiPerson_and_organization_role *ent = (SdaiPerson_and_organization_role *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_person_and_organization_role; - ent->attributes[0].aDesc = a_189name; -} - -SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization_role(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPerson_and_organization_role::get_os_typespec()) - SdaiPerson_and_organization_role; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPerson_and_organization_role::get_os_typespec()) -// SdaiPerson_and_organization_role; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization_role; -} -#endif - -#ifdef __O3DB__ -void -SdaiPerson_and_organization_role::oodb_reInit () -{ eDesc = config_control_designe_person_and_organization_role; - attributes [0].aDesc = a_189name; -} -#endif - -SdaiPerson_and_organization_role::SdaiPerson_and_organization_role( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_person_and_organization_role; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_189name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_189name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiPerson_and_organization_role::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiPerson_and_organization_role::name_ (const SdaiLabel x) - -{ - _name = x; -} - -///////// END_ENTITY person_and_organization_role - - -///////// ENTITY quasi_uniform_curve - -EntityDescriptor *config_control_designe_quasi_uniform_curve =0; -SdaiQuasi_uniform_curve::SdaiQuasi_uniform_curve( ) -{ - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_quasi_uniform_curve; - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); -} -SdaiQuasi_uniform_curve::SdaiQuasi_uniform_curve (SdaiQuasi_uniform_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiQuasi_uniform_curve::~SdaiQuasi_uniform_curve () { } - -#ifdef __OSTORE__ - -void -SdaiQuasi_uniform_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiQuasi_uniform_curve: virtual access function." << G4endl; - SdaiQuasi_uniform_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiQuasi_uniform_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiQuasi_uniform_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiQuasi_uniform_curve *ent = (SdaiQuasi_uniform_curve *)sent; -// SdaiQuasi_uniform_curve *ent = (SdaiQuasi_uniform_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_quasi_uniform_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiQuasi_uniform_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiQuasi_uniform_curve::get_os_typespec()) - SdaiQuasi_uniform_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiQuasi_uniform_curve::get_os_typespec()) -// SdaiQuasi_uniform_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiQuasi_uniform_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiQuasi_uniform_curve::oodb_reInit () -{ eDesc = config_control_designe_quasi_uniform_curve; -} -#endif - -SdaiQuasi_uniform_curve::SdaiQuasi_uniform_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_quasi_uniform_curve; - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY quasi_uniform_curve - - -///////// ENTITY swept_surface - -EntityDescriptor *config_control_designe_swept_surface =0; -AttrDescriptor *a_190swept_curve =0; -SdaiSwept_surface::SdaiSwept_surface( ) -{ - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_swept_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_190swept_curve, (SCLP23(Application_instance_ptr) *) &_swept_curve); -#else - STEPattribute *a = new STEPattribute(*a_190swept_curve, (SCLP23(Application_instance_ptr) *) &_swept_curve); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiSwept_surface::SdaiSwept_surface (SdaiSwept_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSwept_surface::~SdaiSwept_surface () { } - -#ifdef __OSTORE__ - -void -SdaiSwept_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSwept_surface: virtual access function." << G4endl; - SdaiSwept_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSwept_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSwept_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSwept_surface *ent = (SdaiSwept_surface *)sent; -// SdaiSwept_surface *ent = (SdaiSwept_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_swept_surface; - ent->attributes[1].aDesc = a_190swept_curve; - if(ent->_swept_curve == 0) - ent->_swept_curve = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiSwept_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSwept_surface::get_os_typespec()) - SdaiSwept_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSwept_surface::get_os_typespec()) -// SdaiSwept_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSwept_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiSwept_surface::oodb_reInit () -{ eDesc = config_control_designe_swept_surface; - attributes [1].aDesc = a_190swept_curve; -} -#endif - -SdaiSwept_surface::SdaiSwept_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSurface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_swept_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_190swept_curve, (SCLP23(Application_instance_ptr) *) &_swept_curve); -#else - STEPattribute *a = new STEPattribute(*a_190swept_curve, (SCLP23(Application_instance_ptr) *) &_swept_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCurve_ptr -SdaiSwept_surface::swept_curve_() const -{ - return (SdaiCurve_ptr) _swept_curve; -} - -void -SdaiSwept_surface::swept_curve_ (const SdaiCurve_ptr x) - -{ - _swept_curve = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY swept_surface - - -///////// ENTITY property_definition - -EntityDescriptor *config_control_designe_property_definition =0; -AttrDescriptor *a_191name =0; -AttrDescriptor *a_192description =0; -AttrDescriptor *a_193definition =0; -SdaiProperty_definition::SdaiProperty_definition( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_property_definition; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_191name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_191name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_192description, &_description); -#else - a = new STEPattribute(*a_192description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_193definition, &_definition); -#else - a = new STEPattribute(*a_193definition, &_definition); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProperty_definition::SdaiProperty_definition (SdaiProperty_definition& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProperty_definition::~SdaiProperty_definition () { } - -#ifdef __OSTORE__ - -void -SdaiProperty_definition::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProperty_definition: virtual access function." << G4endl; - SdaiProperty_definition_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProperty_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProperty_definition: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProperty_definition *ent = (SdaiProperty_definition *)sent; -// SdaiProperty_definition *ent = (SdaiProperty_definition *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_property_definition; - ent->attributes[0].aDesc = a_191name; - ent->attributes[1].aDesc = a_192description; - ent->attributes[2].aDesc = a_193definition; -} - -SCLP23(Application_instance_ptr) -create_SdaiProperty_definition(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProperty_definition::get_os_typespec()) - SdaiProperty_definition; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProperty_definition::get_os_typespec()) -// SdaiProperty_definition; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProperty_definition; -} -#endif - -#ifdef __O3DB__ -void -SdaiProperty_definition::oodb_reInit () -{ eDesc = config_control_designe_property_definition; - attributes [0].aDesc = a_191name; - attributes [1].aDesc = a_192description; - attributes [2].aDesc = a_193definition; -} -#endif - -SdaiProperty_definition::SdaiProperty_definition( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_property_definition; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_191name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_191name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_192description, &_description); -#else - a = new STEPattribute(*a_192description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_193definition, &_definition); -#else - a = new STEPattribute(*a_193definition, &_definition); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiProperty_definition::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiProperty_definition::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiProperty_definition::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiProperty_definition::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiCharacterized_definition_ptr -SdaiProperty_definition::definition_() const - { return (SdaiCharacterized_definition_ptr) &_definition; } - -void -SdaiProperty_definition::definition_ (const SdaiCharacterized_definition_ptr x) - - { _definition = x; } - -///////// END_ENTITY property_definition - - -///////// ENTITY global_uncertainty_assigned_context - -EntityDescriptor *config_control_designe_global_uncertainty_assigned_context =0; -AttrDescriptor *a_194uncertainty =0; -SdaiGlobal_uncertainty_assigned_context::SdaiGlobal_uncertainty_assigned_context( ) -{ - - /* parent: SdaiRepresentation_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_global_uncertainty_assigned_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_194uncertainty, &_uncertainty); -#else - STEPattribute *a = new STEPattribute(*a_194uncertainty, &_uncertainty); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiGlobal_uncertainty_assigned_context::SdaiGlobal_uncertainty_assigned_context (SdaiGlobal_uncertainty_assigned_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiGlobal_uncertainty_assigned_context::~SdaiGlobal_uncertainty_assigned_context () { } - -#ifdef __OSTORE__ - -void -SdaiGlobal_uncertainty_assigned_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGlobal_uncertainty_assigned_context: virtual access function." << G4endl; - SdaiGlobal_uncertainty_assigned_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiGlobal_uncertainty_assigned_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGlobal_uncertainty_assigned_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiGlobal_uncertainty_assigned_context *ent = (SdaiGlobal_uncertainty_assigned_context *)sent; -// SdaiGlobal_uncertainty_assigned_context *ent = (SdaiGlobal_uncertainty_assigned_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_global_uncertainty_assigned_context; - ent->attributes[2].aDesc = a_194uncertainty; -} - -SCLP23(Application_instance_ptr) -create_SdaiGlobal_uncertainty_assigned_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiGlobal_uncertainty_assigned_context::get_os_typespec()) - SdaiGlobal_uncertainty_assigned_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiGlobal_uncertainty_assigned_context::get_os_typespec()) -// SdaiGlobal_uncertainty_assigned_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiGlobal_uncertainty_assigned_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiGlobal_uncertainty_assigned_context::oodb_reInit () -{ eDesc = config_control_designe_global_uncertainty_assigned_context; - attributes [2].aDesc = a_194uncertainty; -} -#endif - -SdaiGlobal_uncertainty_assigned_context::SdaiGlobal_uncertainty_assigned_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_context(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_global_uncertainty_assigned_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_194uncertainty, &_uncertainty); -#else - STEPattribute *a = new STEPattribute(*a_194uncertainty, &_uncertainty); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiGlobal_uncertainty_assigned_context::uncertainty_() const -{ - return (EntityAggregate_ptr) &_uncertainty; -} - -void -SdaiGlobal_uncertainty_assigned_context::uncertainty_ (const EntityAggregate_ptr x) - - { _uncertainty.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY global_uncertainty_assigned_context - - -///////// ENTITY organization_relationship - -EntityDescriptor *config_control_designe_organization_relationship =0; -AttrDescriptor *a_195name =0; -AttrDescriptor *a_196description =0; -AttrDescriptor *a_197relating_organization =0; -AttrDescriptor *a_198related_organization =0; -SdaiOrganization_relationship::SdaiOrganization_relationship( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_organization_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_195name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_195name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_196description, &_description); -#else - a = new STEPattribute(*a_196description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_197relating_organization, (SCLP23(Application_instance_ptr) *) &_relating_organization); -#else - a = new STEPattribute(*a_197relating_organization, (SCLP23(Application_instance_ptr) *) &_relating_organization); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_198related_organization, (SCLP23(Application_instance_ptr) *) &_related_organization); -#else - a = new STEPattribute(*a_198related_organization, (SCLP23(Application_instance_ptr) *) &_related_organization); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiOrganization_relationship::SdaiOrganization_relationship (SdaiOrganization_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOrganization_relationship::~SdaiOrganization_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiOrganization_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrganization_relationship: virtual access function." << G4endl; - SdaiOrganization_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOrganization_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrganization_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOrganization_relationship *ent = (SdaiOrganization_relationship *)sent; -// SdaiOrganization_relationship *ent = (SdaiOrganization_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_organization_relationship; - ent->attributes[0].aDesc = a_195name; - ent->attributes[1].aDesc = a_196description; - ent->attributes[2].aDesc = a_197relating_organization; - if(ent->_relating_organization == 0) - ent->_relating_organization = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_198related_organization; - if(ent->_related_organization == 0) - ent->_related_organization = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiOrganization_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOrganization_relationship::get_os_typespec()) - SdaiOrganization_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOrganization_relationship::get_os_typespec()) -// SdaiOrganization_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOrganization_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiOrganization_relationship::oodb_reInit () -{ eDesc = config_control_designe_organization_relationship; - attributes [0].aDesc = a_195name; - attributes [1].aDesc = a_196description; - attributes [2].aDesc = a_197relating_organization; - attributes [3].aDesc = a_198related_organization; -} -#endif - -SdaiOrganization_relationship::SdaiOrganization_relationship( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_organization_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_195name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_195name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_196description, &_description); -#else - a = new STEPattribute(*a_196description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_197relating_organization, (SCLP23(Application_instance_ptr) *) &_relating_organization); -#else - a = new STEPattribute(*a_197relating_organization, (SCLP23(Application_instance_ptr) *) &_relating_organization); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_198related_organization, (SCLP23(Application_instance_ptr) *) &_related_organization); -#else - a = new STEPattribute(*a_198related_organization, (SCLP23(Application_instance_ptr) *) &_related_organization); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiOrganization_relationship::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiOrganization_relationship::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiOrganization_relationship::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiOrganization_relationship::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiOrganization_ptr -SdaiOrganization_relationship::relating_organization_() const -{ - return (SdaiOrganization_ptr) _relating_organization; -} - -void -SdaiOrganization_relationship::relating_organization_ (const SdaiOrganization_ptr x) - -{ - _relating_organization = x; -} - -const SdaiOrganization_ptr -SdaiOrganization_relationship::related_organization_() const -{ - return (SdaiOrganization_ptr) _related_organization; -} - -void -SdaiOrganization_relationship::related_organization_ (const SdaiOrganization_ptr x) - -{ - _related_organization = x; -} - -///////// END_ENTITY organization_relationship - - -///////// ENTITY parabola - -EntityDescriptor *config_control_designe_parabola =0; -AttrDescriptor *a_199focal_dist =0; -SdaiParabola::SdaiParabola( ) -{ - - /* parent: SdaiConic */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_parabola; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_199focal_dist, &_focal_dist); -#else - STEPattribute *a = new STEPattribute(*a_199focal_dist, &_focal_dist); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiParabola::SdaiParabola (SdaiParabola& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiParabola::~SdaiParabola () { } - -#ifdef __OSTORE__ - -void -SdaiParabola::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiParabola: virtual access function." << G4endl; - SdaiParabola_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiParabola_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiParabola: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiParabola *ent = (SdaiParabola *)sent; -// SdaiParabola *ent = (SdaiParabola *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_parabola; - ent->attributes[2].aDesc = a_199focal_dist; -} - -SCLP23(Application_instance_ptr) -create_SdaiParabola(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiParabola::get_os_typespec()) - SdaiParabola; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiParabola::get_os_typespec()) -// SdaiParabola; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiParabola; -} -#endif - -#ifdef __O3DB__ -void -SdaiParabola::oodb_reInit () -{ eDesc = config_control_designe_parabola; - attributes [2].aDesc = a_199focal_dist; -} -#endif - -SdaiParabola::SdaiParabola (SCLP23(Application_instance) *se, int *addAttrs) : SdaiConic(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiConic */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_parabola; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_199focal_dist, &_focal_dist); -#else - STEPattribute *a = new STEPattribute(*a_199focal_dist, &_focal_dist); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiLength_measure -SdaiParabola::focal_dist_() const -{ - return (SdaiLength_measure) _focal_dist; -} - -void -SdaiParabola::focal_dist_ (const SdaiLength_measure x) - -{ - _focal_dist = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY parabola - - -///////// ENTITY rectangular_composite_surface - -EntityDescriptor *config_control_designe_rectangular_composite_surface =0; -AttrDescriptor *a_200segments =0; -Derived_attribute *a_201Dn_u =0; -Derived_attribute *a_202Dn_v =0; -SdaiRectangular_composite_surface::SdaiRectangular_composite_surface( ) -{ - - /* parent: SdaiBounded_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_rectangular_composite_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_200segments, &_segments); -#else - STEPattribute *a = new STEPattribute(*a_200segments, &_segments); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("n_u"); - MakeDerived ("n_v"); -} -SdaiRectangular_composite_surface::SdaiRectangular_composite_surface (SdaiRectangular_composite_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRectangular_composite_surface::~SdaiRectangular_composite_surface () { } - -#ifdef __OSTORE__ - -void -SdaiRectangular_composite_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRectangular_composite_surface: virtual access function." << G4endl; - SdaiRectangular_composite_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRectangular_composite_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRectangular_composite_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRectangular_composite_surface *ent = (SdaiRectangular_composite_surface *)sent; -// SdaiRectangular_composite_surface *ent = (SdaiRectangular_composite_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_rectangular_composite_surface; - ent->attributes[1].aDesc = a_200segments; -} - -SCLP23(Application_instance_ptr) -create_SdaiRectangular_composite_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRectangular_composite_surface::get_os_typespec()) - SdaiRectangular_composite_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRectangular_composite_surface::get_os_typespec()) -// SdaiRectangular_composite_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRectangular_composite_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiRectangular_composite_surface::oodb_reInit () -{ eDesc = config_control_designe_rectangular_composite_surface; - attributes [1].aDesc = a_200segments; -} -#endif - -SdaiRectangular_composite_surface::SdaiRectangular_composite_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBounded_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBounded_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_rectangular_composite_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_200segments, &_segments); -#else - STEPattribute *a = new STEPattribute(*a_200segments, &_segments); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("n_u"); - MakeDerived ("n_v"); -} - -const GenericAggregate_ptr -SdaiRectangular_composite_surface::segments_() const -{ - return (GenericAggregate_ptr) &_segments; -} - -void -SdaiRectangular_composite_surface::segments_ (const GenericAggregate_ptr x) - - { _segments.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY rectangular_composite_surface - - -///////// ENTITY lot_effectivity - -EntityDescriptor *config_control_designe_lot_effectivity =0; -AttrDescriptor *a_203effectivity_lot_id =0; -AttrDescriptor *a_204effectivity_lot_size =0; -SdaiLot_effectivity::SdaiLot_effectivity( ) -{ - - /* parent: SdaiEffectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_lot_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_203effectivity_lot_id, &_effectivity_lot_id); -#else - STEPattribute *a = new STEPattribute(*a_203effectivity_lot_id, &_effectivity_lot_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_204effectivity_lot_size, (SCLP23(Application_instance_ptr) *) &_effectivity_lot_size); -#else - a = new STEPattribute(*a_204effectivity_lot_size, (SCLP23(Application_instance_ptr) *) &_effectivity_lot_size); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiLot_effectivity::SdaiLot_effectivity (SdaiLot_effectivity& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiLot_effectivity::~SdaiLot_effectivity () { } - -#ifdef __OSTORE__ - -void -SdaiLot_effectivity::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLot_effectivity: virtual access function." << G4endl; - SdaiLot_effectivity_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiLot_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLot_effectivity: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiLot_effectivity *ent = (SdaiLot_effectivity *)sent; -// SdaiLot_effectivity *ent = (SdaiLot_effectivity *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_lot_effectivity; - ent->attributes[1].aDesc = a_203effectivity_lot_id; - ent->attributes[2].aDesc = a_204effectivity_lot_size; - if(ent->_effectivity_lot_size == 0) - ent->_effectivity_lot_size = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiLot_effectivity(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiLot_effectivity::get_os_typespec()) - SdaiLot_effectivity; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiLot_effectivity::get_os_typespec()) -// SdaiLot_effectivity; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiLot_effectivity; -} -#endif - -#ifdef __O3DB__ -void -SdaiLot_effectivity::oodb_reInit () -{ eDesc = config_control_designe_lot_effectivity; - attributes [1].aDesc = a_203effectivity_lot_id; - attributes [2].aDesc = a_204effectivity_lot_size; -} -#endif - -SdaiLot_effectivity::SdaiLot_effectivity (SCLP23(Application_instance) *se, int *addAttrs) : SdaiEffectivity(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiEffectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_lot_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_203effectivity_lot_id, &_effectivity_lot_id); -#else - STEPattribute *a = new STEPattribute(*a_203effectivity_lot_id, &_effectivity_lot_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_204effectivity_lot_size, (SCLP23(Application_instance_ptr) *) &_effectivity_lot_size); -#else - a = new STEPattribute(*a_204effectivity_lot_size, (SCLP23(Application_instance_ptr) *) &_effectivity_lot_size); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiLot_effectivity::effectivity_lot_id_() const -{ - return (SdaiIdentifier) _effectivity_lot_id; -} - -void -SdaiLot_effectivity::effectivity_lot_id_ (const SdaiIdentifier x) - -{ - _effectivity_lot_id = x; -} - -const SdaiMeasure_with_unit_ptr -SdaiLot_effectivity::effectivity_lot_size_() const -{ - return (SdaiMeasure_with_unit_ptr) _effectivity_lot_size; -} - -void -SdaiLot_effectivity::effectivity_lot_size_ (const SdaiMeasure_with_unit_ptr x) - -{ - _effectivity_lot_size = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY lot_effectivity - - -///////// ENTITY surface_of_linear_extrusion - -EntityDescriptor *config_control_designe_surface_of_linear_extrusion =0; -AttrDescriptor *a_205extrusion_axis =0; -SdaiSurface_of_linear_extrusion::SdaiSurface_of_linear_extrusion( ) -{ - - /* parent: SdaiSwept_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface_of_linear_extrusion; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_205extrusion_axis, (SCLP23(Application_instance_ptr) *) &_extrusion_axis); -#else - STEPattribute *a = new STEPattribute(*a_205extrusion_axis, (SCLP23(Application_instance_ptr) *) &_extrusion_axis); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiSurface_of_linear_extrusion::SdaiSurface_of_linear_extrusion (SdaiSurface_of_linear_extrusion& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSurface_of_linear_extrusion::~SdaiSurface_of_linear_extrusion () { } - -#ifdef __OSTORE__ - -void -SdaiSurface_of_linear_extrusion::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_of_linear_extrusion: virtual access function." << G4endl; - SdaiSurface_of_linear_extrusion_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSurface_of_linear_extrusion_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_of_linear_extrusion: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSurface_of_linear_extrusion *ent = (SdaiSurface_of_linear_extrusion *)sent; -// SdaiSurface_of_linear_extrusion *ent = (SdaiSurface_of_linear_extrusion *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_surface_of_linear_extrusion; - ent->attributes[2].aDesc = a_205extrusion_axis; - if(ent->_extrusion_axis == 0) - ent->_extrusion_axis = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiSurface_of_linear_extrusion(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSurface_of_linear_extrusion::get_os_typespec()) - SdaiSurface_of_linear_extrusion; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSurface_of_linear_extrusion::get_os_typespec()) -// SdaiSurface_of_linear_extrusion; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSurface_of_linear_extrusion; -} -#endif - -#ifdef __O3DB__ -void -SdaiSurface_of_linear_extrusion::oodb_reInit () -{ eDesc = config_control_designe_surface_of_linear_extrusion; - attributes [2].aDesc = a_205extrusion_axis; -} -#endif - -SdaiSurface_of_linear_extrusion::SdaiSurface_of_linear_extrusion (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSwept_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSwept_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface_of_linear_extrusion; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_205extrusion_axis, (SCLP23(Application_instance_ptr) *) &_extrusion_axis); -#else - STEPattribute *a = new STEPattribute(*a_205extrusion_axis, (SCLP23(Application_instance_ptr) *) &_extrusion_axis); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiVector_ptr -SdaiSurface_of_linear_extrusion::extrusion_axis_() const -{ - return (SdaiVector_ptr) _extrusion_axis; -} - -void -SdaiSurface_of_linear_extrusion::extrusion_axis_ (const SdaiVector_ptr x) - -{ - _extrusion_axis = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY surface_of_linear_extrusion - - -///////// ENTITY shell_based_surface_model - -EntityDescriptor *config_control_designe_shell_based_surface_model =0; -AttrDescriptor *a_206sbsm_boundary =0; -SdaiShell_based_surface_model::SdaiShell_based_surface_model( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shell_based_surface_model; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_206sbsm_boundary, &_sbsm_boundary); -#else - STEPattribute *a = new STEPattribute(*a_206sbsm_boundary, &_sbsm_boundary); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiShell_based_surface_model::SdaiShell_based_surface_model (SdaiShell_based_surface_model& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiShell_based_surface_model::~SdaiShell_based_surface_model () { } - -#ifdef __OSTORE__ - -void -SdaiShell_based_surface_model::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShell_based_surface_model: virtual access function." << G4endl; - SdaiShell_based_surface_model_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiShell_based_surface_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShell_based_surface_model: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiShell_based_surface_model *ent = (SdaiShell_based_surface_model *)sent; -// SdaiShell_based_surface_model *ent = (SdaiShell_based_surface_model *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_shell_based_surface_model; - ent->attributes[1].aDesc = a_206sbsm_boundary; -} - -SCLP23(Application_instance_ptr) -create_SdaiShell_based_surface_model(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiShell_based_surface_model::get_os_typespec()) - SdaiShell_based_surface_model; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiShell_based_surface_model::get_os_typespec()) -// SdaiShell_based_surface_model; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiShell_based_surface_model; -} -#endif - -#ifdef __O3DB__ -void -SdaiShell_based_surface_model::oodb_reInit () -{ eDesc = config_control_designe_shell_based_surface_model; - attributes [1].aDesc = a_206sbsm_boundary; -} -#endif - -SdaiShell_based_surface_model::SdaiShell_based_surface_model (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shell_based_surface_model; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_206sbsm_boundary, &_sbsm_boundary); -#else - STEPattribute *a = new STEPattribute(*a_206sbsm_boundary, &_sbsm_boundary); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiShells_ptr -SdaiShell_based_surface_model::sbsm_boundary_() const -{ - return (SdaiShells_ptr) &_sbsm_boundary; -} - -void -SdaiShell_based_surface_model::sbsm_boundary_ (const SdaiShells_ptr x) - - { _sbsm_boundary.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY shell_based_surface_model - - -///////// ENTITY uniform_curve - -EntityDescriptor *config_control_designe_uniform_curve =0; -SdaiUniform_curve::SdaiUniform_curve( ) -{ - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_uniform_curve; - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); -} -SdaiUniform_curve::SdaiUniform_curve (SdaiUniform_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiUniform_curve::~SdaiUniform_curve () { } - -#ifdef __OSTORE__ - -void -SdaiUniform_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiUniform_curve: virtual access function." << G4endl; - SdaiUniform_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiUniform_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiUniform_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiUniform_curve *ent = (SdaiUniform_curve *)sent; -// SdaiUniform_curve *ent = (SdaiUniform_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_uniform_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiUniform_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiUniform_curve::get_os_typespec()) - SdaiUniform_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiUniform_curve::get_os_typespec()) -// SdaiUniform_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiUniform_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiUniform_curve::oodb_reInit () -{ eDesc = config_control_designe_uniform_curve; -} -#endif - -SdaiUniform_curve::SdaiUniform_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_uniform_curve; - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY uniform_curve - - -///////// ENTITY bezier_curve - -EntityDescriptor *config_control_designe_bezier_curve =0; -SdaiBezier_curve::SdaiBezier_curve( ) -{ - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_bezier_curve; - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); -} -SdaiBezier_curve::SdaiBezier_curve (SdaiBezier_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiBezier_curve::~SdaiBezier_curve () { } - -#ifdef __OSTORE__ - -void -SdaiBezier_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBezier_curve: virtual access function." << G4endl; - SdaiBezier_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiBezier_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBezier_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiBezier_curve *ent = (SdaiBezier_curve *)sent; -// SdaiBezier_curve *ent = (SdaiBezier_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_bezier_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiBezier_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiBezier_curve::get_os_typespec()) - SdaiBezier_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiBezier_curve::get_os_typespec()) -// SdaiBezier_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiBezier_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiBezier_curve::oodb_reInit () -{ eDesc = config_control_designe_bezier_curve; -} -#endif - -SdaiBezier_curve::SdaiBezier_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_bezier_curve; - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY bezier_curve - - -///////// ENTITY loop - -EntityDescriptor *config_control_designe_loop =0; -SdaiLoop::SdaiLoop( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_loop; -} -SdaiLoop::SdaiLoop (SdaiLoop& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiLoop::~SdaiLoop () { } - -#ifdef __OSTORE__ - -void -SdaiLoop::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLoop: virtual access function." << G4endl; - SdaiLoop_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiLoop_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLoop: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiLoop *ent = (SdaiLoop *)sent; -// SdaiLoop *ent = (SdaiLoop *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_loop; -} - -SCLP23(Application_instance_ptr) -create_SdaiLoop(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiLoop::get_os_typespec()) - SdaiLoop; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiLoop::get_os_typespec()) -// SdaiLoop; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiLoop; -} -#endif - -#ifdef __O3DB__ -void -SdaiLoop::oodb_reInit () -{ eDesc = config_control_designe_loop; -} -#endif - -SdaiLoop::SdaiLoop (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_loop; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY loop - - -///////// ENTITY edge_loop - -EntityDescriptor *config_control_designe_edge_loop =0; -Derived_attribute *a_207Dne =0; -SdaiEdge_loop::SdaiEdge_loop( ) -{ - - /* parent: SdaiLoop */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiPath */ - HeadEntity(this); -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - AppendMultInstance(new SdaiPath(this, attrFlags)); -#endif - AppendMultInstance(new SdaiPath(this)); - - eDesc = config_control_designe_edge_loop; - MakeDerived ("ne"); -} -SdaiEdge_loop::SdaiEdge_loop (SdaiEdge_loop& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiEdge_loop::~SdaiEdge_loop () { } - -#ifdef __OSTORE__ - -void -SdaiEdge_loop::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge_loop: virtual access function." << G4endl; - SdaiEdge_loop_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiEdge_loop_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge_loop: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiEdge_loop *ent = (SdaiEdge_loop *)sent; -// SdaiEdge_loop *ent = (SdaiEdge_loop *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_edge_loop; -} - -SCLP23(Application_instance_ptr) -create_SdaiEdge_loop(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiEdge_loop::get_os_typespec()) - SdaiEdge_loop; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiEdge_loop::get_os_typespec()) -// SdaiEdge_loop; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiEdge_loop; -} -#endif - -#ifdef __O3DB__ -void -SdaiEdge_loop::oodb_reInit () -{ eDesc = config_control_designe_edge_loop; -} -#endif - -SdaiEdge_loop::SdaiEdge_loop (SCLP23(Application_instance) *se, int *addAttrs) : SdaiLoop(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiLoop */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiPath */ -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - se->AppendMultInstance(new SdaiPath(se, attrFlags)); -#endif - se->AppendMultInstance(new SdaiPath(se, 0)); - - eDesc = config_control_designe_edge_loop; - MakeDerived ("ne"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -const EntityAggregate_ptr -SdaiEdge_loop::edge_list_() const -{ - return (EntityAggregate_ptr) &_edge_list; -} - -void -SdaiEdge_loop::edge_list_ (const EntityAggregate_ptr x) - - { _edge_list.ShallowCopy (*x); } - -#endif - -///////// END_ENTITY edge_loop - - -///////// ENTITY date - -EntityDescriptor *config_control_designe_date =0; -AttrDescriptor *a_208year_component =0; -SdaiDate::SdaiDate( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_date; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_208year_component, &_year_component); -#else - STEPattribute *a = new STEPattribute(*a_208year_component, &_year_component); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDate::SdaiDate (SdaiDate& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDate::~SdaiDate () { } - -#ifdef __OSTORE__ - -void -SdaiDate::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDate: virtual access function." << G4endl; - SdaiDate_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDate_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDate: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDate *ent = (SdaiDate *)sent; -// SdaiDate *ent = (SdaiDate *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_date; - ent->attributes[0].aDesc = a_208year_component; -} - -SCLP23(Application_instance_ptr) -create_SdaiDate(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDate::get_os_typespec()) - SdaiDate; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDate::get_os_typespec()) -// SdaiDate; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDate; -} -#endif - -#ifdef __O3DB__ -void -SdaiDate::oodb_reInit () -{ eDesc = config_control_designe_date; - attributes [0].aDesc = a_208year_component; -} -#endif - -SdaiDate::SdaiDate( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_date; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_208year_component, &_year_component); -#else - STEPattribute *a = new STEPattribute(*a_208year_component, &_year_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiYear_number -SdaiDate::year_component_() const -{ - return (SdaiYear_number) _year_component; -} - -void -SdaiDate::year_component_ (const SdaiYear_number x) - -{ - _year_component = x; -} - -///////// END_ENTITY date - - -///////// ENTITY calendar_date - -EntityDescriptor *config_control_designe_calendar_date =0; -AttrDescriptor *a_209day_component =0; -AttrDescriptor *a_210month_component =0; -SdaiCalendar_date::SdaiCalendar_date( ) -{ - - /* parent: SdaiDate */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_calendar_date; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_209day_component, &_day_component); -#else - STEPattribute *a = new STEPattribute(*a_209day_component, &_day_component); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_210month_component, &_month_component); -#else - a = new STEPattribute(*a_210month_component, &_month_component); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCalendar_date::SdaiCalendar_date (SdaiCalendar_date& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCalendar_date::~SdaiCalendar_date () { } - -#ifdef __OSTORE__ - -void -SdaiCalendar_date::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCalendar_date: virtual access function." << G4endl; - SdaiCalendar_date_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCalendar_date_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCalendar_date: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCalendar_date *ent = (SdaiCalendar_date *)sent; -// SdaiCalendar_date *ent = (SdaiCalendar_date *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_calendar_date; - ent->attributes[1].aDesc = a_209day_component; - ent->attributes[2].aDesc = a_210month_component; -} - -SCLP23(Application_instance_ptr) -create_SdaiCalendar_date(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCalendar_date::get_os_typespec()) - SdaiCalendar_date; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCalendar_date::get_os_typespec()) -// SdaiCalendar_date; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCalendar_date; -} -#endif - -#ifdef __O3DB__ -void -SdaiCalendar_date::oodb_reInit () -{ eDesc = config_control_designe_calendar_date; - attributes [1].aDesc = a_209day_component; - attributes [2].aDesc = a_210month_component; -} -#endif - -SdaiCalendar_date::SdaiCalendar_date (SCLP23(Application_instance) *se, int *addAttrs) : SdaiDate(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiDate */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_calendar_date; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_209day_component, &_day_component); -#else - STEPattribute *a = new STEPattribute(*a_209day_component, &_day_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_210month_component, &_month_component); -#else - a = new STEPattribute(*a_210month_component, &_month_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDay_in_month_number -SdaiCalendar_date::day_component_() const -{ - return (SdaiDay_in_month_number) _day_component; -} - -void -SdaiCalendar_date::day_component_ (const SdaiDay_in_month_number x) - -{ - _day_component = x; -} - -const SdaiMonth_in_year_number -SdaiCalendar_date::month_component_() const -{ - return (SdaiMonth_in_year_number) _month_component; -} - -void -SdaiCalendar_date::month_component_ (const SdaiMonth_in_year_number x) - -{ - _month_component = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY calendar_date - - -///////// ENTITY toroidal_surface - -EntityDescriptor *config_control_designe_toroidal_surface =0; -AttrDescriptor *a_211major_radius =0; -AttrDescriptor *a_212minor_radius =0; -SdaiToroidal_surface::SdaiToroidal_surface( ) -{ - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_toroidal_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_211major_radius, &_major_radius); -#else - STEPattribute *a = new STEPattribute(*a_211major_radius, &_major_radius); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_212minor_radius, &_minor_radius); -#else - a = new STEPattribute(*a_212minor_radius, &_minor_radius); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiToroidal_surface::SdaiToroidal_surface (SdaiToroidal_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiToroidal_surface::~SdaiToroidal_surface () { } - -#ifdef __OSTORE__ - -void -SdaiToroidal_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiToroidal_surface: virtual access function." << G4endl; - SdaiToroidal_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiToroidal_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiToroidal_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiToroidal_surface *ent = (SdaiToroidal_surface *)sent; -// SdaiToroidal_surface *ent = (SdaiToroidal_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_toroidal_surface; - ent->attributes[2].aDesc = a_211major_radius; - ent->attributes[3].aDesc = a_212minor_radius; -} - -SCLP23(Application_instance_ptr) -create_SdaiToroidal_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiToroidal_surface::get_os_typespec()) - SdaiToroidal_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiToroidal_surface::get_os_typespec()) -// SdaiToroidal_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiToroidal_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiToroidal_surface::oodb_reInit () -{ eDesc = config_control_designe_toroidal_surface; - attributes [2].aDesc = a_211major_radius; - attributes [3].aDesc = a_212minor_radius; -} -#endif - -SdaiToroidal_surface::SdaiToroidal_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiElementary_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_toroidal_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_211major_radius, &_major_radius); -#else - STEPattribute *a = new STEPattribute(*a_211major_radius, &_major_radius); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_212minor_radius, &_minor_radius); -#else - a = new STEPattribute(*a_212minor_radius, &_minor_radius); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiPositive_length_measure -SdaiToroidal_surface::major_radius_() const -{ - return (SdaiPositive_length_measure) _major_radius; -} - -void -SdaiToroidal_surface::major_radius_ (const SdaiPositive_length_measure x) - -{ - _major_radius = x; -} - -const SdaiPositive_length_measure -SdaiToroidal_surface::minor_radius_() const -{ - return (SdaiPositive_length_measure) _minor_radius; -} - -void -SdaiToroidal_surface::minor_radius_ (const SdaiPositive_length_measure x) - -{ - _minor_radius = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY toroidal_surface - - -///////// ENTITY promissory_usage_occurrence - -EntityDescriptor *config_control_designe_promissory_usage_occurrence =0; -SdaiPromissory_usage_occurrence::SdaiPromissory_usage_occurrence( ) -{ - - /* parent: SdaiAssembly_component_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_promissory_usage_occurrence; -} -SdaiPromissory_usage_occurrence::SdaiPromissory_usage_occurrence (SdaiPromissory_usage_occurrence& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPromissory_usage_occurrence::~SdaiPromissory_usage_occurrence () { } - -#ifdef __OSTORE__ - -void -SdaiPromissory_usage_occurrence::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPromissory_usage_occurrence: virtual access function." << G4endl; - SdaiPromissory_usage_occurrence_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPromissory_usage_occurrence_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPromissory_usage_occurrence: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPromissory_usage_occurrence *ent = (SdaiPromissory_usage_occurrence *)sent; -// SdaiPromissory_usage_occurrence *ent = (SdaiPromissory_usage_occurrence *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_promissory_usage_occurrence; -} - -SCLP23(Application_instance_ptr) -create_SdaiPromissory_usage_occurrence(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPromissory_usage_occurrence::get_os_typespec()) - SdaiPromissory_usage_occurrence; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPromissory_usage_occurrence::get_os_typespec()) -// SdaiPromissory_usage_occurrence; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPromissory_usage_occurrence; -} -#endif - -#ifdef __O3DB__ -void -SdaiPromissory_usage_occurrence::oodb_reInit () -{ eDesc = config_control_designe_promissory_usage_occurrence; -} -#endif - -SdaiPromissory_usage_occurrence::SdaiPromissory_usage_occurrence (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAssembly_component_usage(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAssembly_component_usage */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_promissory_usage_occurrence; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY promissory_usage_occurrence - - -///////// ENTITY approval_assignment - -EntityDescriptor *config_control_designe_approval_assignment =0; -AttrDescriptor *a_213assigned_approval =0; -SdaiApproval_assignment::SdaiApproval_assignment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_213assigned_approval, (SCLP23(Application_instance_ptr) *) &_assigned_approval); -#else - STEPattribute *a = new STEPattribute(*a_213assigned_approval, (SCLP23(Application_instance_ptr) *) &_assigned_approval); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApproval_assignment::SdaiApproval_assignment (SdaiApproval_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApproval_assignment::~SdaiApproval_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiApproval_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_assignment: virtual access function." << G4endl; - SdaiApproval_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApproval_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApproval_assignment *ent = (SdaiApproval_assignment *)sent; -// SdaiApproval_assignment *ent = (SdaiApproval_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_approval_assignment; - ent->attributes[0].aDesc = a_213assigned_approval; - if(ent->_assigned_approval == 0) - ent->_assigned_approval = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiApproval_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApproval_assignment::get_os_typespec()) - SdaiApproval_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApproval_assignment::get_os_typespec()) -// SdaiApproval_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApproval_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiApproval_assignment::oodb_reInit () -{ eDesc = config_control_designe_approval_assignment; - attributes [0].aDesc = a_213assigned_approval; -} -#endif - -SdaiApproval_assignment::SdaiApproval_assignment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_213assigned_approval, (SCLP23(Application_instance_ptr) *) &_assigned_approval); -#else - STEPattribute *a = new STEPattribute(*a_213assigned_approval, (SCLP23(Application_instance_ptr) *) &_assigned_approval); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiApproval_ptr -SdaiApproval_assignment::assigned_approval_() const -{ - return (SdaiApproval_ptr) _assigned_approval; -} - -void -SdaiApproval_assignment::assigned_approval_ (const SdaiApproval_ptr x) - -{ - _assigned_approval = x; -} - -///////// END_ENTITY approval_assignment - - -///////// ENTITY configuration_item - -EntityDescriptor *config_control_designe_configuration_item =0; -AttrDescriptor *a_214id =0; -AttrDescriptor *a_215name =0; -AttrDescriptor *a_216description =0; -AttrDescriptor *a_217item_concept =0; -AttrDescriptor *a_218purpose =0; -SdaiConfiguration_item::SdaiConfiguration_item( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_configuration_item; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_214id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_214id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_215name, &_name); -#else - a = new STEPattribute(*a_215name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_216description, &_description); -#else - a = new STEPattribute(*a_216description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_217item_concept, (SCLP23(Application_instance_ptr) *) &_item_concept); -#else - a = new STEPattribute(*a_217item_concept, (SCLP23(Application_instance_ptr) *) &_item_concept); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_218purpose, &_purpose); -#else - a = new STEPattribute(*a_218purpose, &_purpose); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiConfiguration_item::SdaiConfiguration_item (SdaiConfiguration_item& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiConfiguration_item::~SdaiConfiguration_item () { } - -#ifdef __OSTORE__ - -void -SdaiConfiguration_item::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConfiguration_item: virtual access function." << G4endl; - SdaiConfiguration_item_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiConfiguration_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConfiguration_item: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiConfiguration_item *ent = (SdaiConfiguration_item *)sent; -// SdaiConfiguration_item *ent = (SdaiConfiguration_item *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_configuration_item; - ent->attributes[0].aDesc = a_214id; - ent->attributes[1].aDesc = a_215name; - ent->attributes[2].aDesc = a_216description; - ent->attributes[3].aDesc = a_217item_concept; - if(ent->_item_concept == 0) - ent->_item_concept = S_ENTITY_NULL; - ent->attributes[4].aDesc = a_218purpose; -} - -SCLP23(Application_instance_ptr) -create_SdaiConfiguration_item(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiConfiguration_item::get_os_typespec()) - SdaiConfiguration_item; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiConfiguration_item::get_os_typespec()) -// SdaiConfiguration_item; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_item; -} -#endif - -#ifdef __O3DB__ -void -SdaiConfiguration_item::oodb_reInit () -{ eDesc = config_control_designe_configuration_item; - attributes [0].aDesc = a_214id; - attributes [1].aDesc = a_215name; - attributes [2].aDesc = a_216description; - attributes [3].aDesc = a_217item_concept; - attributes [4].aDesc = a_218purpose; -} -#endif - -SdaiConfiguration_item::SdaiConfiguration_item( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_configuration_item; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_214id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_214id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_215name, &_name); -#else - a = new STEPattribute(*a_215name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_216description, &_description); -#else - a = new STEPattribute(*a_216description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_217item_concept, (SCLP23(Application_instance_ptr) *) &_item_concept); -#else - a = new STEPattribute(*a_217item_concept, (SCLP23(Application_instance_ptr) *) &_item_concept); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_218purpose, &_purpose); -#else - a = new STEPattribute(*a_218purpose, &_purpose); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiConfiguration_item::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiConfiguration_item::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiLabel -SdaiConfiguration_item::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiConfiguration_item::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiConfiguration_item::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiConfiguration_item::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiProduct_concept_ptr -SdaiConfiguration_item::item_concept_() const -{ - return (SdaiProduct_concept_ptr) _item_concept; -} - -void -SdaiConfiguration_item::item_concept_ (const SdaiProduct_concept_ptr x) - -{ - _item_concept = x; -} - -const SdaiLabel -SdaiConfiguration_item::purpose_() const -{ - return (SdaiLabel) _purpose; -} - -void -SdaiConfiguration_item::purpose_ (const SdaiLabel x) - -{ - _purpose = x; -} - -///////// END_ENTITY configuration_item - - -///////// ENTITY contract_assignment - -EntityDescriptor *config_control_designe_contract_assignment =0; -AttrDescriptor *a_219assigned_contract =0; -SdaiContract_assignment::SdaiContract_assignment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_contract_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_219assigned_contract, (SCLP23(Application_instance_ptr) *) &_assigned_contract); -#else - STEPattribute *a = new STEPattribute(*a_219assigned_contract, (SCLP23(Application_instance_ptr) *) &_assigned_contract); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiContract_assignment::SdaiContract_assignment (SdaiContract_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiContract_assignment::~SdaiContract_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiContract_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContract_assignment: virtual access function." << G4endl; - SdaiContract_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiContract_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContract_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiContract_assignment *ent = (SdaiContract_assignment *)sent; -// SdaiContract_assignment *ent = (SdaiContract_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_contract_assignment; - ent->attributes[0].aDesc = a_219assigned_contract; - if(ent->_assigned_contract == 0) - ent->_assigned_contract = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiContract_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiContract_assignment::get_os_typespec()) - SdaiContract_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiContract_assignment::get_os_typespec()) -// SdaiContract_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiContract_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiContract_assignment::oodb_reInit () -{ eDesc = config_control_designe_contract_assignment; - attributes [0].aDesc = a_219assigned_contract; -} -#endif - -SdaiContract_assignment::SdaiContract_assignment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_contract_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_219assigned_contract, (SCLP23(Application_instance_ptr) *) &_assigned_contract); -#else - STEPattribute *a = new STEPattribute(*a_219assigned_contract, (SCLP23(Application_instance_ptr) *) &_assigned_contract); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiContract_ptr -SdaiContract_assignment::assigned_contract_() const -{ - return (SdaiContract_ptr) _assigned_contract; -} - -void -SdaiContract_assignment::assigned_contract_ (const SdaiContract_ptr x) - -{ - _assigned_contract = x; -} - -///////// END_ENTITY contract_assignment - - -///////// ENTITY vector - -EntityDescriptor *config_control_designe_vector =0; -AttrDescriptor *a_220orientation =0; -AttrDescriptor *a_221magnitude =0; -SdaiVector::SdaiVector( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_vector; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_220orientation, (SCLP23(Application_instance_ptr) *) &_orientation); -#else - STEPattribute *a = new STEPattribute(*a_220orientation, (SCLP23(Application_instance_ptr) *) &_orientation); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_221magnitude, &_magnitude); -#else - a = new STEPattribute(*a_221magnitude, &_magnitude); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiVector::SdaiVector (SdaiVector& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiVector::~SdaiVector () { } - -#ifdef __OSTORE__ - -void -SdaiVector::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVector: virtual access function." << G4endl; - SdaiVector_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiVector_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVector: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiVector *ent = (SdaiVector *)sent; -// SdaiVector *ent = (SdaiVector *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_vector; - ent->attributes[1].aDesc = a_220orientation; - if(ent->_orientation == 0) - ent->_orientation = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_221magnitude; -} - -SCLP23(Application_instance_ptr) -create_SdaiVector(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiVector::get_os_typespec()) - SdaiVector; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiVector::get_os_typespec()) -// SdaiVector; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiVector; -} -#endif - -#ifdef __O3DB__ -void -SdaiVector::oodb_reInit () -{ eDesc = config_control_designe_vector; - attributes [1].aDesc = a_220orientation; - attributes [2].aDesc = a_221magnitude; -} -#endif - -SdaiVector::SdaiVector (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_vector; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_220orientation, (SCLP23(Application_instance_ptr) *) &_orientation); -#else - STEPattribute *a = new STEPattribute(*a_220orientation, (SCLP23(Application_instance_ptr) *) &_orientation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_221magnitude, &_magnitude); -#else - a = new STEPattribute(*a_221magnitude, &_magnitude); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiDirection_ptr -SdaiVector::orientation_() const -{ - return (SdaiDirection_ptr) _orientation; -} - -void -SdaiVector::orientation_ (const SdaiDirection_ptr x) - -{ - _orientation = x; -} - -const SdaiLength_measure -SdaiVector::magnitude_() const -{ - return (SdaiLength_measure) _magnitude; -} - -void -SdaiVector::magnitude_ (const SdaiLength_measure x) - -{ - _magnitude = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY vector - - -///////// ENTITY intersection_curve - -EntityDescriptor *config_control_designe_intersection_curve =0; -SdaiIntersection_curve::SdaiIntersection_curve( ) -{ - - /* parent: SdaiSurface_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_intersection_curve; - MakeDerived ("dim"); - MakeDerived ("basis_surface"); -} -SdaiIntersection_curve::SdaiIntersection_curve (SdaiIntersection_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiIntersection_curve::~SdaiIntersection_curve () { } - -#ifdef __OSTORE__ - -void -SdaiIntersection_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiIntersection_curve: virtual access function." << G4endl; - SdaiIntersection_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiIntersection_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiIntersection_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiIntersection_curve *ent = (SdaiIntersection_curve *)sent; -// SdaiIntersection_curve *ent = (SdaiIntersection_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_intersection_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiIntersection_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiIntersection_curve::get_os_typespec()) - SdaiIntersection_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiIntersection_curve::get_os_typespec()) -// SdaiIntersection_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiIntersection_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiIntersection_curve::oodb_reInit () -{ eDesc = config_control_designe_intersection_curve; -} -#endif - -SdaiIntersection_curve::SdaiIntersection_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSurface_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSurface_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_intersection_curve; - MakeDerived ("dim"); - MakeDerived ("basis_surface"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY intersection_curve - - -///////// ENTITY trimmed_curve - -EntityDescriptor *config_control_designe_trimmed_curve =0; -AttrDescriptor *a_222basis_curve =0; -AttrDescriptor *a_223trim_1 =0; -AttrDescriptor *a_224trim_2 =0; -AttrDescriptor *a_225sense_agreement =0; -AttrDescriptor *a_226master_representation =0; -SdaiTrimmed_curve::SdaiTrimmed_curve( ) -{ - - /* parent: SdaiBounded_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_trimmed_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_222basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#else - STEPattribute *a = new STEPattribute(*a_222basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_223trim_1, &_trim_1); -#else - a = new STEPattribute(*a_223trim_1, &_trim_1); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_224trim_2, &_trim_2); -#else - a = new STEPattribute(*a_224trim_2, &_trim_2); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_225sense_agreement, &_sense_agreement); -#else - a = new STEPattribute(*a_225sense_agreement, &_sense_agreement); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_226master_representation, &_master_representation); -#else - a = new STEPattribute(*a_226master_representation, &_master_representation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiTrimmed_curve::SdaiTrimmed_curve (SdaiTrimmed_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiTrimmed_curve::~SdaiTrimmed_curve () { } - -#ifdef __OSTORE__ - -void -SdaiTrimmed_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiTrimmed_curve: virtual access function." << G4endl; - SdaiTrimmed_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiTrimmed_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiTrimmed_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiTrimmed_curve *ent = (SdaiTrimmed_curve *)sent; -// SdaiTrimmed_curve *ent = (SdaiTrimmed_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_trimmed_curve; - ent->attributes[1].aDesc = a_222basis_curve; - if(ent->_basis_curve == 0) - ent->_basis_curve = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_223trim_1; - ent->attributes[3].aDesc = a_224trim_2; - ent->attributes[4].aDesc = a_225sense_agreement; - ent->attributes[5].aDesc = a_226master_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiTrimmed_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiTrimmed_curve::get_os_typespec()) - SdaiTrimmed_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiTrimmed_curve::get_os_typespec()) -// SdaiTrimmed_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiTrimmed_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiTrimmed_curve::oodb_reInit () -{ eDesc = config_control_designe_trimmed_curve; - attributes [1].aDesc = a_222basis_curve; - attributes [2].aDesc = a_223trim_1; - attributes [3].aDesc = a_224trim_2; - attributes [4].aDesc = a_225sense_agreement; - attributes [5].aDesc = a_226master_representation; -} -#endif - -SdaiTrimmed_curve::SdaiTrimmed_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBounded_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBounded_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_trimmed_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_222basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#else - STEPattribute *a = new STEPattribute(*a_222basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_223trim_1, &_trim_1); -#else - a = new STEPattribute(*a_223trim_1, &_trim_1); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_224trim_2, &_trim_2); -#else - a = new STEPattribute(*a_224trim_2, &_trim_2); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_225sense_agreement, &_sense_agreement); -#else - a = new STEPattribute(*a_225sense_agreement, &_sense_agreement); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_226master_representation, &_master_representation); -#else - a = new STEPattribute(*a_226master_representation, &_master_representation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCurve_ptr -SdaiTrimmed_curve::basis_curve_() const -{ - return (SdaiCurve_ptr) _basis_curve; -} - -void -SdaiTrimmed_curve::basis_curve_ (const SdaiCurve_ptr x) - -{ - _basis_curve = x; -} - -const SdaiTrimming_selects_ptr -SdaiTrimmed_curve::trim_1_() const -{ - return (SdaiTrimming_selects_ptr) &_trim_1; -} - -void -SdaiTrimmed_curve::trim_1_ (const SdaiTrimming_selects_ptr x) - - { _trim_1.ShallowCopy (*x); } - -const SdaiTrimming_selects_ptr -SdaiTrimmed_curve::trim_2_() const -{ - return (SdaiTrimming_selects_ptr) &_trim_2; -} - -void -SdaiTrimmed_curve::trim_2_ (const SdaiTrimming_selects_ptr x) - - { _trim_2.ShallowCopy (*x); } - -const SCLBOOL(Bool) -SdaiTrimmed_curve::sense_agreement_() const -{ - return (SCLBOOL(Bool)) _sense_agreement; -} - -void -SdaiTrimmed_curve::sense_agreement_ (const SCLBOOL(Bool) x) - -{ - _sense_agreement.put (x); -} - -const SdaiTrimming_preference_var -SdaiTrimmed_curve::master_representation_() const -{ - return (Trimming_preference) _master_representation; -} - -void -SdaiTrimmed_curve::master_representation_ (const SdaiTrimming_preference_var x) - -{ - _master_representation.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY trimmed_curve - - -///////// ENTITY product_definition_context - -EntityDescriptor *config_control_designe_product_definition_context =0; -AttrDescriptor *a_227life_cycle_stage =0; -SdaiProduct_definition_context::SdaiProduct_definition_context( ) -{ - - /* parent: SdaiApplication_context_element */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_227life_cycle_stage, &_life_cycle_stage); -#else - STEPattribute *a = new STEPattribute(*a_227life_cycle_stage, &_life_cycle_stage); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_definition_context::SdaiProduct_definition_context (SdaiProduct_definition_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition_context::~SdaiProduct_definition_context () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_context: virtual access function." << G4endl; - SdaiProduct_definition_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition_context *ent = (SdaiProduct_definition_context *)sent; -// SdaiProduct_definition_context *ent = (SdaiProduct_definition_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition_context; - ent->attributes[2].aDesc = a_227life_cycle_stage; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition_context::get_os_typespec()) - SdaiProduct_definition_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition_context::get_os_typespec()) -// SdaiProduct_definition_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition_context::oodb_reInit () -{ eDesc = config_control_designe_product_definition_context; - attributes [2].aDesc = a_227life_cycle_stage; -} -#endif - -SdaiProduct_definition_context::SdaiProduct_definition_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiApplication_context_element(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiApplication_context_element */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_227life_cycle_stage, &_life_cycle_stage); -#else - STEPattribute *a = new STEPattribute(*a_227life_cycle_stage, &_life_cycle_stage); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiProduct_definition_context::life_cycle_stage_() const -{ - return (SdaiLabel) _life_cycle_stage; -} - -void -SdaiProduct_definition_context::life_cycle_stage_ (const SdaiLabel x) - -{ - _life_cycle_stage = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_definition_context - - -///////// ENTITY item_defined_transformation - -EntityDescriptor *config_control_designe_item_defined_transformation =0; -AttrDescriptor *a_228name =0; -AttrDescriptor *a_229description =0; -AttrDescriptor *a_230transform_item_1 =0; -AttrDescriptor *a_231transform_item_2 =0; -SdaiItem_defined_transformation::SdaiItem_defined_transformation( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_item_defined_transformation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_228name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_228name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_229description, &_description); -#else - a = new STEPattribute(*a_229description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_230transform_item_1, (SCLP23(Application_instance_ptr) *) &_transform_item_1); -#else - a = new STEPattribute(*a_230transform_item_1, (SCLP23(Application_instance_ptr) *) &_transform_item_1); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_231transform_item_2, (SCLP23(Application_instance_ptr) *) &_transform_item_2); -#else - a = new STEPattribute(*a_231transform_item_2, (SCLP23(Application_instance_ptr) *) &_transform_item_2); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiItem_defined_transformation::SdaiItem_defined_transformation (SdaiItem_defined_transformation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiItem_defined_transformation::~SdaiItem_defined_transformation () { } - -#ifdef __OSTORE__ - -void -SdaiItem_defined_transformation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiItem_defined_transformation: virtual access function." << G4endl; - SdaiItem_defined_transformation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiItem_defined_transformation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiItem_defined_transformation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiItem_defined_transformation *ent = (SdaiItem_defined_transformation *)sent; -// SdaiItem_defined_transformation *ent = (SdaiItem_defined_transformation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_item_defined_transformation; - ent->attributes[0].aDesc = a_228name; - ent->attributes[1].aDesc = a_229description; - ent->attributes[2].aDesc = a_230transform_item_1; - if(ent->_transform_item_1 == 0) - ent->_transform_item_1 = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_231transform_item_2; - if(ent->_transform_item_2 == 0) - ent->_transform_item_2 = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiItem_defined_transformation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiItem_defined_transformation::get_os_typespec()) - SdaiItem_defined_transformation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiItem_defined_transformation::get_os_typespec()) -// SdaiItem_defined_transformation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiItem_defined_transformation; -} -#endif - -#ifdef __O3DB__ -void -SdaiItem_defined_transformation::oodb_reInit () -{ eDesc = config_control_designe_item_defined_transformation; - attributes [0].aDesc = a_228name; - attributes [1].aDesc = a_229description; - attributes [2].aDesc = a_230transform_item_1; - attributes [3].aDesc = a_231transform_item_2; -} -#endif - -SdaiItem_defined_transformation::SdaiItem_defined_transformation( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_item_defined_transformation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_228name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_228name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_229description, &_description); -#else - a = new STEPattribute(*a_229description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_230transform_item_1, (SCLP23(Application_instance_ptr) *) &_transform_item_1); -#else - a = new STEPattribute(*a_230transform_item_1, (SCLP23(Application_instance_ptr) *) &_transform_item_1); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_231transform_item_2, (SCLP23(Application_instance_ptr) *) &_transform_item_2); -#else - a = new STEPattribute(*a_231transform_item_2, (SCLP23(Application_instance_ptr) *) &_transform_item_2); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiItem_defined_transformation::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiItem_defined_transformation::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiItem_defined_transformation::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiItem_defined_transformation::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiRepresentation_item_ptr -SdaiItem_defined_transformation::transform_item_1_() const -{ - return (SdaiRepresentation_item_ptr) _transform_item_1; -} - -void -SdaiItem_defined_transformation::transform_item_1_ (const SdaiRepresentation_item_ptr x) - -{ - _transform_item_1 = x; -} - -const SdaiRepresentation_item_ptr -SdaiItem_defined_transformation::transform_item_2_() const -{ - return (SdaiRepresentation_item_ptr) _transform_item_2; -} - -void -SdaiItem_defined_transformation::transform_item_2_ (const SdaiRepresentation_item_ptr x) - -{ - _transform_item_2 = x; -} - -///////// END_ENTITY item_defined_transformation - - -///////// ENTITY action_method - -EntityDescriptor *config_control_designe_action_method =0; -AttrDescriptor *a_232name =0; -AttrDescriptor *a_233description =0; -AttrDescriptor *a_234consequence =0; -AttrDescriptor *a_235purpose =0; -SdaiAction_method::SdaiAction_method( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_action_method; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_232name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_232name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_233description, &_description); -#else - a = new STEPattribute(*a_233description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_234consequence, &_consequence); -#else - a = new STEPattribute(*a_234consequence, &_consequence); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_235purpose, &_purpose); -#else - a = new STEPattribute(*a_235purpose, &_purpose); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAction_method::SdaiAction_method (SdaiAction_method& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAction_method::~SdaiAction_method () { } - -#ifdef __OSTORE__ - -void -SdaiAction_method::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_method: virtual access function." << G4endl; - SdaiAction_method_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAction_method_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_method: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAction_method *ent = (SdaiAction_method *)sent; -// SdaiAction_method *ent = (SdaiAction_method *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_action_method; - ent->attributes[0].aDesc = a_232name; - ent->attributes[1].aDesc = a_233description; - ent->attributes[2].aDesc = a_234consequence; - ent->attributes[3].aDesc = a_235purpose; -} - -SCLP23(Application_instance_ptr) -create_SdaiAction_method(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAction_method::get_os_typespec()) - SdaiAction_method; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAction_method::get_os_typespec()) -// SdaiAction_method; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAction_method; -} -#endif - -#ifdef __O3DB__ -void -SdaiAction_method::oodb_reInit () -{ eDesc = config_control_designe_action_method; - attributes [0].aDesc = a_232name; - attributes [1].aDesc = a_233description; - attributes [2].aDesc = a_234consequence; - attributes [3].aDesc = a_235purpose; -} -#endif - -SdaiAction_method::SdaiAction_method( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_action_method; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_232name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_232name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_233description, &_description); -#else - a = new STEPattribute(*a_233description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_234consequence, &_consequence); -#else - a = new STEPattribute(*a_234consequence, &_consequence); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_235purpose, &_purpose); -#else - a = new STEPattribute(*a_235purpose, &_purpose); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiAction_method::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiAction_method::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiAction_method::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiAction_method::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiText -SdaiAction_method::consequence_() const -{ - return (SdaiText) _consequence; -} - -void -SdaiAction_method::consequence_ (const SdaiText x) - -{ - _consequence = x; -} - -const SdaiText -SdaiAction_method::purpose_() const -{ - return (SdaiText) _purpose; -} - -void -SdaiAction_method::purpose_ (const SdaiText x) - -{ - _purpose = x; -} - -///////// END_ENTITY action_method - - -///////// ENTITY product_category_relationship - -EntityDescriptor *config_control_designe_product_category_relationship =0; -AttrDescriptor *a_236name =0; -AttrDescriptor *a_237description =0; -AttrDescriptor *a_238category =0; -AttrDescriptor *a_239sub_category =0; -SdaiProduct_category_relationship::SdaiProduct_category_relationship( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_product_category_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_236name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_236name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_237description, &_description); -#else - a = new STEPattribute(*a_237description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_238category, (SCLP23(Application_instance_ptr) *) &_category); -#else - a = new STEPattribute(*a_238category, (SCLP23(Application_instance_ptr) *) &_category); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_239sub_category, (SCLP23(Application_instance_ptr) *) &_sub_category); -#else - a = new STEPattribute(*a_239sub_category, (SCLP23(Application_instance_ptr) *) &_sub_category); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_category_relationship::SdaiProduct_category_relationship (SdaiProduct_category_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_category_relationship::~SdaiProduct_category_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_category_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_category_relationship: virtual access function." << G4endl; - SdaiProduct_category_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_category_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_category_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_category_relationship *ent = (SdaiProduct_category_relationship *)sent; -// SdaiProduct_category_relationship *ent = (SdaiProduct_category_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_category_relationship; - ent->attributes[0].aDesc = a_236name; - ent->attributes[1].aDesc = a_237description; - ent->attributes[2].aDesc = a_238category; - if(ent->_category == 0) - ent->_category = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_239sub_category; - if(ent->_sub_category == 0) - ent->_sub_category = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_category_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_category_relationship::get_os_typespec()) - SdaiProduct_category_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_category_relationship::get_os_typespec()) -// SdaiProduct_category_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_category_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_category_relationship::oodb_reInit () -{ eDesc = config_control_designe_product_category_relationship; - attributes [0].aDesc = a_236name; - attributes [1].aDesc = a_237description; - attributes [2].aDesc = a_238category; - attributes [3].aDesc = a_239sub_category; -} -#endif - -SdaiProduct_category_relationship::SdaiProduct_category_relationship( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_product_category_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_236name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_236name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_237description, &_description); -#else - a = new STEPattribute(*a_237description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_238category, (SCLP23(Application_instance_ptr) *) &_category); -#else - a = new STEPattribute(*a_238category, (SCLP23(Application_instance_ptr) *) &_category); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_239sub_category, (SCLP23(Application_instance_ptr) *) &_sub_category); -#else - a = new STEPattribute(*a_239sub_category, (SCLP23(Application_instance_ptr) *) &_sub_category); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiProduct_category_relationship::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiProduct_category_relationship::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiProduct_category_relationship::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiProduct_category_relationship::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiProduct_category_ptr -SdaiProduct_category_relationship::category_() const -{ - return (SdaiProduct_category_ptr) _category; -} - -void -SdaiProduct_category_relationship::category_ (const SdaiProduct_category_ptr x) - -{ - _category = x; -} - -const SdaiProduct_category_ptr -SdaiProduct_category_relationship::sub_category_() const -{ - return (SdaiProduct_category_ptr) _sub_category; -} - -void -SdaiProduct_category_relationship::sub_category_ (const SdaiProduct_category_ptr x) - -{ - _sub_category = x; -} - -///////// END_ENTITY product_category_relationship - - -///////// ENTITY plane_angle_measure_with_unit - -EntityDescriptor *config_control_designe_plane_angle_measure_with_unit =0; -SdaiPlane_angle_measure_with_unit::SdaiPlane_angle_measure_with_unit( ) -{ - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_plane_angle_measure_with_unit; -} -SdaiPlane_angle_measure_with_unit::SdaiPlane_angle_measure_with_unit (SdaiPlane_angle_measure_with_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPlane_angle_measure_with_unit::~SdaiPlane_angle_measure_with_unit () { } - -#ifdef __OSTORE__ - -void -SdaiPlane_angle_measure_with_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPlane_angle_measure_with_unit: virtual access function." << G4endl; - SdaiPlane_angle_measure_with_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPlane_angle_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPlane_angle_measure_with_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPlane_angle_measure_with_unit *ent = (SdaiPlane_angle_measure_with_unit *)sent; -// SdaiPlane_angle_measure_with_unit *ent = (SdaiPlane_angle_measure_with_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_plane_angle_measure_with_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiPlane_angle_measure_with_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPlane_angle_measure_with_unit::get_os_typespec()) - SdaiPlane_angle_measure_with_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPlane_angle_measure_with_unit::get_os_typespec()) -// SdaiPlane_angle_measure_with_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPlane_angle_measure_with_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiPlane_angle_measure_with_unit::oodb_reInit () -{ eDesc = config_control_designe_plane_angle_measure_with_unit; -} -#endif - -SdaiPlane_angle_measure_with_unit::SdaiPlane_angle_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiMeasure_with_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_plane_angle_measure_with_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY plane_angle_measure_with_unit - - -///////// ENTITY vertex - -EntityDescriptor *config_control_designe_vertex =0; -SdaiVertex::SdaiVertex( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_vertex; -} -SdaiVertex::SdaiVertex (SdaiVertex& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiVertex::~SdaiVertex () { } - -#ifdef __OSTORE__ - -void -SdaiVertex::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVertex: virtual access function." << G4endl; - SdaiVertex_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiVertex_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVertex: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiVertex *ent = (SdaiVertex *)sent; -// SdaiVertex *ent = (SdaiVertex *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_vertex; -} - -SCLP23(Application_instance_ptr) -create_SdaiVertex(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiVertex::get_os_typespec()) - SdaiVertex; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiVertex::get_os_typespec()) -// SdaiVertex; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiVertex; -} -#endif - -#ifdef __O3DB__ -void -SdaiVertex::oodb_reInit () -{ eDesc = config_control_designe_vertex; -} -#endif - -SdaiVertex::SdaiVertex (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_vertex; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY vertex - - -///////// ENTITY representation_map - -EntityDescriptor *config_control_designe_representation_map =0; -AttrDescriptor *a_240mapping_origin =0; -AttrDescriptor *a_241mapped_representation =0; -Inverse_attribute *a_242Imap_usage =0; -SdaiRepresentation_map::SdaiRepresentation_map( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_representation_map; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_240mapping_origin, (SCLP23(Application_instance_ptr) *) &_mapping_origin); -#else - STEPattribute *a = new STEPattribute(*a_240mapping_origin, (SCLP23(Application_instance_ptr) *) &_mapping_origin); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_241mapped_representation, (SCLP23(Application_instance_ptr) *) &_mapped_representation); -#else - a = new STEPattribute(*a_241mapped_representation, (SCLP23(Application_instance_ptr) *) &_mapped_representation); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiRepresentation_map::SdaiRepresentation_map (SdaiRepresentation_map& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRepresentation_map::~SdaiRepresentation_map () { } - -#ifdef __OSTORE__ - -void -SdaiRepresentation_map::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_map: virtual access function." << G4endl; - SdaiRepresentation_map_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRepresentation_map_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRepresentation_map: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRepresentation_map *ent = (SdaiRepresentation_map *)sent; -// SdaiRepresentation_map *ent = (SdaiRepresentation_map *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_representation_map; - ent->attributes[0].aDesc = a_240mapping_origin; - if(ent->_mapping_origin == 0) - ent->_mapping_origin = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_241mapped_representation; - if(ent->_mapped_representation == 0) - ent->_mapped_representation = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiRepresentation_map(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRepresentation_map::get_os_typespec()) - SdaiRepresentation_map; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRepresentation_map::get_os_typespec()) -// SdaiRepresentation_map; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRepresentation_map; -} -#endif - -#ifdef __O3DB__ -void -SdaiRepresentation_map::oodb_reInit () -{ eDesc = config_control_designe_representation_map; - attributes [0].aDesc = a_240mapping_origin; - attributes [1].aDesc = a_241mapped_representation; -} -#endif - -SdaiRepresentation_map::SdaiRepresentation_map( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_representation_map; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_240mapping_origin, (SCLP23(Application_instance_ptr) *) &_mapping_origin); -#else - STEPattribute *a = new STEPattribute(*a_240mapping_origin, (SCLP23(Application_instance_ptr) *) &_mapping_origin); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_241mapped_representation, (SCLP23(Application_instance_ptr) *) &_mapped_representation); -#else - a = new STEPattribute(*a_241mapped_representation, (SCLP23(Application_instance_ptr) *) &_mapped_representation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiRepresentation_item_ptr -SdaiRepresentation_map::mapping_origin_() const -{ - return (SdaiRepresentation_item_ptr) _mapping_origin; -} - -void -SdaiRepresentation_map::mapping_origin_ (const SdaiRepresentation_item_ptr x) - -{ - _mapping_origin = x; -} - -const SdaiRepresentation_ptr -SdaiRepresentation_map::mapped_representation_() const -{ - return (SdaiRepresentation_ptr) _mapped_representation; -} - -void -SdaiRepresentation_map::mapped_representation_ (const SdaiRepresentation_ptr x) - -{ - _mapped_representation = x; -} - -const EntityAggregate_ptr -SdaiRepresentation_map::map_usage_() const -{ - return (EntityAggregate_ptr) &_map_usage; -} - -void -SdaiRepresentation_map::map_usage_ (const EntityAggregate_ptr x) - - { _map_usage.ShallowCopy (*x); } - -///////// END_ENTITY representation_map - - -///////// ENTITY product_definition_effectivity - -EntityDescriptor *config_control_designe_product_definition_effectivity =0; -AttrDescriptor *a_243usage =0; -SdaiProduct_definition_effectivity::SdaiProduct_definition_effectivity( ) -{ - - /* parent: SdaiEffectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_243usage, (SCLP23(Application_instance_ptr) *) &_usage); -#else - STEPattribute *a = new STEPattribute(*a_243usage, (SCLP23(Application_instance_ptr) *) &_usage); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_definition_effectivity::SdaiProduct_definition_effectivity (SdaiProduct_definition_effectivity& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition_effectivity::~SdaiProduct_definition_effectivity () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition_effectivity::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_effectivity: virtual access function." << G4endl; - SdaiProduct_definition_effectivity_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_effectivity: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition_effectivity *ent = (SdaiProduct_definition_effectivity *)sent; -// SdaiProduct_definition_effectivity *ent = (SdaiProduct_definition_effectivity *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition_effectivity; - ent->attributes[1].aDesc = a_243usage; - if(ent->_usage == 0) - ent->_usage = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_effectivity(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition_effectivity::get_os_typespec()) - SdaiProduct_definition_effectivity; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition_effectivity::get_os_typespec()) -// SdaiProduct_definition_effectivity; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_effectivity; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition_effectivity::oodb_reInit () -{ eDesc = config_control_designe_product_definition_effectivity; - attributes [1].aDesc = a_243usage; -} -#endif - -SdaiProduct_definition_effectivity::SdaiProduct_definition_effectivity (SCLP23(Application_instance) *se, int *addAttrs) : SdaiEffectivity(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiEffectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_243usage, (SCLP23(Application_instance_ptr) *) &_usage); -#else - STEPattribute *a = new STEPattribute(*a_243usage, (SCLP23(Application_instance_ptr) *) &_usage); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiProduct_definition_relationship_ptr -SdaiProduct_definition_effectivity::usage_() const -{ - return (SdaiProduct_definition_relationship_ptr) _usage; -} - -void -SdaiProduct_definition_effectivity::usage_ (const SdaiProduct_definition_relationship_ptr x) - -{ - _usage = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_definition_effectivity - - -///////// ENTITY configuration_effectivity - -EntityDescriptor *config_control_designe_configuration_effectivity =0; -AttrDescriptor *a_244configuration =0; -SdaiConfiguration_effectivity::SdaiConfiguration_effectivity( ) -{ - - /* parent: SdaiProduct_definition_effectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_configuration_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_244configuration, (SCLP23(Application_instance_ptr) *) &_configuration); -#else - STEPattribute *a = new STEPattribute(*a_244configuration, (SCLP23(Application_instance_ptr) *) &_configuration); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiConfiguration_effectivity::SdaiConfiguration_effectivity (SdaiConfiguration_effectivity& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiConfiguration_effectivity::~SdaiConfiguration_effectivity () { } - -#ifdef __OSTORE__ - -void -SdaiConfiguration_effectivity::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConfiguration_effectivity: virtual access function." << G4endl; - SdaiConfiguration_effectivity_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiConfiguration_effectivity_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConfiguration_effectivity: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiConfiguration_effectivity *ent = (SdaiConfiguration_effectivity *)sent; -// SdaiConfiguration_effectivity *ent = (SdaiConfiguration_effectivity *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_configuration_effectivity; - ent->attributes[2].aDesc = a_244configuration; - if(ent->_configuration == 0) - ent->_configuration = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiConfiguration_effectivity(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiConfiguration_effectivity::get_os_typespec()) - SdaiConfiguration_effectivity; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiConfiguration_effectivity::get_os_typespec()) -// SdaiConfiguration_effectivity; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_effectivity; -} -#endif - -#ifdef __O3DB__ -void -SdaiConfiguration_effectivity::oodb_reInit () -{ eDesc = config_control_designe_configuration_effectivity; - attributes [2].aDesc = a_244configuration; -} -#endif - -SdaiConfiguration_effectivity::SdaiConfiguration_effectivity (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_definition_effectivity(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_definition_effectivity */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_configuration_effectivity; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_244configuration, (SCLP23(Application_instance_ptr) *) &_configuration); -#else - STEPattribute *a = new STEPattribute(*a_244configuration, (SCLP23(Application_instance_ptr) *) &_configuration); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiConfiguration_design_ptr -SdaiConfiguration_effectivity::configuration_() const -{ - return (SdaiConfiguration_design_ptr) _configuration; -} - -void -SdaiConfiguration_effectivity::configuration_ (const SdaiConfiguration_design_ptr x) - -{ - _configuration = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY configuration_effectivity - - -///////// ENTITY ellipse - -EntityDescriptor *config_control_designe_ellipse =0; -AttrDescriptor *a_245semi_axis_1 =0; -AttrDescriptor *a_246semi_axis_2 =0; -SdaiEllipse::SdaiEllipse( ) -{ - - /* parent: SdaiConic */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_ellipse; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_245semi_axis_1, &_semi_axis_1); -#else - STEPattribute *a = new STEPattribute(*a_245semi_axis_1, &_semi_axis_1); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_246semi_axis_2, &_semi_axis_2); -#else - a = new STEPattribute(*a_246semi_axis_2, &_semi_axis_2); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiEllipse::SdaiEllipse (SdaiEllipse& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiEllipse::~SdaiEllipse () { } - -#ifdef __OSTORE__ - -void -SdaiEllipse::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEllipse: virtual access function." << G4endl; - SdaiEllipse_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiEllipse_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEllipse: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiEllipse *ent = (SdaiEllipse *)sent; -// SdaiEllipse *ent = (SdaiEllipse *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_ellipse; - ent->attributes[2].aDesc = a_245semi_axis_1; - ent->attributes[3].aDesc = a_246semi_axis_2; -} - -SCLP23(Application_instance_ptr) -create_SdaiEllipse(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiEllipse::get_os_typespec()) - SdaiEllipse; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiEllipse::get_os_typespec()) -// SdaiEllipse; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiEllipse; -} -#endif - -#ifdef __O3DB__ -void -SdaiEllipse::oodb_reInit () -{ eDesc = config_control_designe_ellipse; - attributes [2].aDesc = a_245semi_axis_1; - attributes [3].aDesc = a_246semi_axis_2; -} -#endif - -SdaiEllipse::SdaiEllipse (SCLP23(Application_instance) *se, int *addAttrs) : SdaiConic(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiConic */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_ellipse; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_245semi_axis_1, &_semi_axis_1); -#else - STEPattribute *a = new STEPattribute(*a_245semi_axis_1, &_semi_axis_1); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_246semi_axis_2, &_semi_axis_2); -#else - a = new STEPattribute(*a_246semi_axis_2, &_semi_axis_2); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiPositive_length_measure -SdaiEllipse::semi_axis_1_() const -{ - return (SdaiPositive_length_measure) _semi_axis_1; -} - -void -SdaiEllipse::semi_axis_1_ (const SdaiPositive_length_measure x) - -{ - _semi_axis_1 = x; -} - -const SdaiPositive_length_measure -SdaiEllipse::semi_axis_2_() const -{ - return (SdaiPositive_length_measure) _semi_axis_2; -} - -void -SdaiEllipse::semi_axis_2_ (const SdaiPositive_length_measure x) - -{ - _semi_axis_2 = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY ellipse - - -///////// ENTITY context_dependent_unit - -EntityDescriptor *config_control_designe_context_dependent_unit =0; -AttrDescriptor *a_247name =0; -SdaiContext_dependent_unit::SdaiContext_dependent_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_context_dependent_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_247name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_247name, &_name); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiContext_dependent_unit::SdaiContext_dependent_unit (SdaiContext_dependent_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiContext_dependent_unit::~SdaiContext_dependent_unit () { } - -#ifdef __OSTORE__ - -void -SdaiContext_dependent_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContext_dependent_unit: virtual access function." << G4endl; - SdaiContext_dependent_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiContext_dependent_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContext_dependent_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiContext_dependent_unit *ent = (SdaiContext_dependent_unit *)sent; -// SdaiContext_dependent_unit *ent = (SdaiContext_dependent_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_context_dependent_unit; - ent->attributes[1].aDesc = a_247name; -} - -SCLP23(Application_instance_ptr) -create_SdaiContext_dependent_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiContext_dependent_unit::get_os_typespec()) - SdaiContext_dependent_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiContext_dependent_unit::get_os_typespec()) -// SdaiContext_dependent_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiContext_dependent_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiContext_dependent_unit::oodb_reInit () -{ eDesc = config_control_designe_context_dependent_unit; - attributes [1].aDesc = a_247name; -} -#endif - -SdaiContext_dependent_unit::SdaiContext_dependent_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_context_dependent_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_247name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_247name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiContext_dependent_unit::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiContext_dependent_unit::name_ (const SdaiLabel x) - -{ - _name = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY context_dependent_unit - - -///////// ENTITY alternate_product_relationship - -EntityDescriptor *config_control_designe_alternate_product_relationship =0; -AttrDescriptor *a_248name =0; -AttrDescriptor *a_249description =0; -AttrDescriptor *a_250alternate =0; -AttrDescriptor *a_251base =0; -AttrDescriptor *a_252basis =0; -SdaiAlternate_product_relationship::SdaiAlternate_product_relationship( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_alternate_product_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_248name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_248name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_249description, &_description); -#else - a = new STEPattribute(*a_249description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_250alternate, (SCLP23(Application_instance_ptr) *) &_alternate); -#else - a = new STEPattribute(*a_250alternate, (SCLP23(Application_instance_ptr) *) &_alternate); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_251base, (SCLP23(Application_instance_ptr) *) &_base); -#else - a = new STEPattribute(*a_251base, (SCLP23(Application_instance_ptr) *) &_base); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_252basis, &_basis); -#else - a = new STEPattribute(*a_252basis, &_basis); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAlternate_product_relationship::SdaiAlternate_product_relationship (SdaiAlternate_product_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAlternate_product_relationship::~SdaiAlternate_product_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiAlternate_product_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAlternate_product_relationship: virtual access function." << G4endl; - SdaiAlternate_product_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAlternate_product_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAlternate_product_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAlternate_product_relationship *ent = (SdaiAlternate_product_relationship *)sent; -// SdaiAlternate_product_relationship *ent = (SdaiAlternate_product_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_alternate_product_relationship; - ent->attributes[0].aDesc = a_248name; - ent->attributes[1].aDesc = a_249description; - ent->attributes[2].aDesc = a_250alternate; - if(ent->_alternate == 0) - ent->_alternate = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_251base; - if(ent->_base == 0) - ent->_base = S_ENTITY_NULL; - ent->attributes[4].aDesc = a_252basis; -} - -SCLP23(Application_instance_ptr) -create_SdaiAlternate_product_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAlternate_product_relationship::get_os_typespec()) - SdaiAlternate_product_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAlternate_product_relationship::get_os_typespec()) -// SdaiAlternate_product_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAlternate_product_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiAlternate_product_relationship::oodb_reInit () -{ eDesc = config_control_designe_alternate_product_relationship; - attributes [0].aDesc = a_248name; - attributes [1].aDesc = a_249description; - attributes [2].aDesc = a_250alternate; - attributes [3].aDesc = a_251base; - attributes [4].aDesc = a_252basis; -} -#endif - -SdaiAlternate_product_relationship::SdaiAlternate_product_relationship( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_alternate_product_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_248name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_248name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_249description, &_description); -#else - a = new STEPattribute(*a_249description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_250alternate, (SCLP23(Application_instance_ptr) *) &_alternate); -#else - a = new STEPattribute(*a_250alternate, (SCLP23(Application_instance_ptr) *) &_alternate); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_251base, (SCLP23(Application_instance_ptr) *) &_base); -#else - a = new STEPattribute(*a_251base, (SCLP23(Application_instance_ptr) *) &_base); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_252basis, &_basis); -#else - a = new STEPattribute(*a_252basis, &_basis); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiAlternate_product_relationship::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiAlternate_product_relationship::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiAlternate_product_relationship::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiAlternate_product_relationship::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiProduct_ptr -SdaiAlternate_product_relationship::alternate_() const -{ - return (SdaiProduct_ptr) _alternate; -} - -void -SdaiAlternate_product_relationship::alternate_ (const SdaiProduct_ptr x) - -{ - _alternate = x; -} - -const SdaiProduct_ptr -SdaiAlternate_product_relationship::base_() const -{ - return (SdaiProduct_ptr) _base; -} - -void -SdaiAlternate_product_relationship::base_ (const SdaiProduct_ptr x) - -{ - _base = x; -} - -const SdaiText -SdaiAlternate_product_relationship::basis_() const -{ - return (SdaiText) _basis; -} - -void -SdaiAlternate_product_relationship::basis_ (const SdaiText x) - -{ - _basis = x; -} - -///////// END_ENTITY alternate_product_relationship - - -///////// ENTITY document_type - -EntityDescriptor *config_control_designe_document_type =0; -AttrDescriptor *a_253product_data_type =0; -SdaiDocument_type::SdaiDocument_type( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_document_type; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_253product_data_type, &_product_data_type); -#else - STEPattribute *a = new STEPattribute(*a_253product_data_type, &_product_data_type); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDocument_type::SdaiDocument_type (SdaiDocument_type& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDocument_type::~SdaiDocument_type () { } - -#ifdef __OSTORE__ - -void -SdaiDocument_type::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_type: virtual access function." << G4endl; - SdaiDocument_type_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDocument_type_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_type: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDocument_type *ent = (SdaiDocument_type *)sent; -// SdaiDocument_type *ent = (SdaiDocument_type *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_document_type; - ent->attributes[0].aDesc = a_253product_data_type; -} - -SCLP23(Application_instance_ptr) -create_SdaiDocument_type(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDocument_type::get_os_typespec()) - SdaiDocument_type; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDocument_type::get_os_typespec()) -// SdaiDocument_type; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDocument_type; -} -#endif - -#ifdef __O3DB__ -void -SdaiDocument_type::oodb_reInit () -{ eDesc = config_control_designe_document_type; - attributes [0].aDesc = a_253product_data_type; -} -#endif - -SdaiDocument_type::SdaiDocument_type( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_document_type; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_253product_data_type, &_product_data_type); -#else - STEPattribute *a = new STEPattribute(*a_253product_data_type, &_product_data_type); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiDocument_type::product_data_type_() const -{ - return (SdaiLabel) _product_data_type; -} - -void -SdaiDocument_type::product_data_type_ (const SdaiLabel x) - -{ - _product_data_type = x; -} - -///////// END_ENTITY document_type - - -///////// ENTITY document_reference - -EntityDescriptor *config_control_designe_document_reference =0; -AttrDescriptor *a_254assigned_document =0; -AttrDescriptor *a_255source =0; -SdaiDocument_reference::SdaiDocument_reference( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_document_reference; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_254assigned_document, (SCLP23(Application_instance_ptr) *) &_assigned_document); -#else - STEPattribute *a = new STEPattribute(*a_254assigned_document, (SCLP23(Application_instance_ptr) *) &_assigned_document); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_255source, &_source); -#else - a = new STEPattribute(*a_255source, &_source); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDocument_reference::SdaiDocument_reference (SdaiDocument_reference& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDocument_reference::~SdaiDocument_reference () { } - -#ifdef __OSTORE__ - -void -SdaiDocument_reference::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_reference: virtual access function." << G4endl; - SdaiDocument_reference_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDocument_reference_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_reference: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDocument_reference *ent = (SdaiDocument_reference *)sent; -// SdaiDocument_reference *ent = (SdaiDocument_reference *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_document_reference; - ent->attributes[0].aDesc = a_254assigned_document; - if(ent->_assigned_document == 0) - ent->_assigned_document = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_255source; -} - -SCLP23(Application_instance_ptr) -create_SdaiDocument_reference(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDocument_reference::get_os_typespec()) - SdaiDocument_reference; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDocument_reference::get_os_typespec()) -// SdaiDocument_reference; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDocument_reference; -} -#endif - -#ifdef __O3DB__ -void -SdaiDocument_reference::oodb_reInit () -{ eDesc = config_control_designe_document_reference; - attributes [0].aDesc = a_254assigned_document; - attributes [1].aDesc = a_255source; -} -#endif - -SdaiDocument_reference::SdaiDocument_reference( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_document_reference; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_254assigned_document, (SCLP23(Application_instance_ptr) *) &_assigned_document); -#else - STEPattribute *a = new STEPattribute(*a_254assigned_document, (SCLP23(Application_instance_ptr) *) &_assigned_document); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_255source, &_source); -#else - a = new STEPattribute(*a_255source, &_source); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDocument_ptr -SdaiDocument_reference::assigned_document_() const -{ - return (SdaiDocument_ptr) _assigned_document; -} - -void -SdaiDocument_reference::assigned_document_ (const SdaiDocument_ptr x) - -{ - _assigned_document = x; -} - -const SdaiLabel -SdaiDocument_reference::source_() const -{ - return (SdaiLabel) _source; -} - -void -SdaiDocument_reference::source_ (const SdaiLabel x) - -{ - _source = x; -} - -///////// END_ENTITY document_reference - - -///////// ENTITY mechanical_context - -EntityDescriptor *config_control_designe_mechanical_context =0; -SdaiMechanical_context::SdaiMechanical_context( ) -{ - - /* parent: SdaiProduct_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_mechanical_context; -} -SdaiMechanical_context::SdaiMechanical_context (SdaiMechanical_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiMechanical_context::~SdaiMechanical_context () { } - -#ifdef __OSTORE__ - -void -SdaiMechanical_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMechanical_context: virtual access function." << G4endl; - SdaiMechanical_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiMechanical_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMechanical_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiMechanical_context *ent = (SdaiMechanical_context *)sent; -// SdaiMechanical_context *ent = (SdaiMechanical_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_mechanical_context; -} - -SCLP23(Application_instance_ptr) -create_SdaiMechanical_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiMechanical_context::get_os_typespec()) - SdaiMechanical_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiMechanical_context::get_os_typespec()) -// SdaiMechanical_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiMechanical_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiMechanical_context::oodb_reInit () -{ eDesc = config_control_designe_mechanical_context; -} -#endif - -SdaiMechanical_context::SdaiMechanical_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_context(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_mechanical_context; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY mechanical_context - - -///////// ENTITY shell_based_wireframe_model - -EntityDescriptor *config_control_designe_shell_based_wireframe_model =0; -AttrDescriptor *a_256sbwm_boundary =0; -SdaiShell_based_wireframe_model::SdaiShell_based_wireframe_model( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shell_based_wireframe_model; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_256sbwm_boundary, &_sbwm_boundary); -#else - STEPattribute *a = new STEPattribute(*a_256sbwm_boundary, &_sbwm_boundary); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiShell_based_wireframe_model::SdaiShell_based_wireframe_model (SdaiShell_based_wireframe_model& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiShell_based_wireframe_model::~SdaiShell_based_wireframe_model () { } - -#ifdef __OSTORE__ - -void -SdaiShell_based_wireframe_model::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShell_based_wireframe_model: virtual access function." << G4endl; - SdaiShell_based_wireframe_model_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiShell_based_wireframe_model_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShell_based_wireframe_model: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiShell_based_wireframe_model *ent = (SdaiShell_based_wireframe_model *)sent; -// SdaiShell_based_wireframe_model *ent = (SdaiShell_based_wireframe_model *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_shell_based_wireframe_model; - ent->attributes[1].aDesc = a_256sbwm_boundary; -} - -SCLP23(Application_instance_ptr) -create_SdaiShell_based_wireframe_model(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiShell_based_wireframe_model::get_os_typespec()) - SdaiShell_based_wireframe_model; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiShell_based_wireframe_model::get_os_typespec()) -// SdaiShell_based_wireframe_model; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiShell_based_wireframe_model; -} -#endif - -#ifdef __O3DB__ -void -SdaiShell_based_wireframe_model::oodb_reInit () -{ eDesc = config_control_designe_shell_based_wireframe_model; - attributes [1].aDesc = a_256sbwm_boundary; -} -#endif - -SdaiShell_based_wireframe_model::SdaiShell_based_wireframe_model (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shell_based_wireframe_model; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_256sbwm_boundary, &_sbwm_boundary); -#else - STEPattribute *a = new STEPattribute(*a_256sbwm_boundary, &_sbwm_boundary); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiShells_ptr -SdaiShell_based_wireframe_model::sbwm_boundary_() const -{ - return (SdaiShells_ptr) &_sbwm_boundary; -} - -void -SdaiShell_based_wireframe_model::sbwm_boundary_ (const SdaiShells_ptr x) - - { _sbwm_boundary.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY shell_based_wireframe_model - - -///////// ENTITY contract - -EntityDescriptor *config_control_designe_contract =0; -AttrDescriptor *a_257name =0; -AttrDescriptor *a_258purpose =0; -AttrDescriptor *a_259kind =0; -SdaiContract::SdaiContract( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_contract; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_257name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_257name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_258purpose, &_purpose); -#else - a = new STEPattribute(*a_258purpose, &_purpose); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_259kind, (SCLP23(Application_instance_ptr) *) &_kind); -#else - a = new STEPattribute(*a_259kind, (SCLP23(Application_instance_ptr) *) &_kind); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiContract::SdaiContract (SdaiContract& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiContract::~SdaiContract () { } - -#ifdef __OSTORE__ - -void -SdaiContract::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContract: virtual access function." << G4endl; - SdaiContract_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiContract_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContract: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiContract *ent = (SdaiContract *)sent; -// SdaiContract *ent = (SdaiContract *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_contract; - ent->attributes[0].aDesc = a_257name; - ent->attributes[1].aDesc = a_258purpose; - ent->attributes[2].aDesc = a_259kind; - if(ent->_kind == 0) - ent->_kind = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiContract(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiContract::get_os_typespec()) - SdaiContract; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiContract::get_os_typespec()) -// SdaiContract; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiContract; -} -#endif - -#ifdef __O3DB__ -void -SdaiContract::oodb_reInit () -{ eDesc = config_control_designe_contract; - attributes [0].aDesc = a_257name; - attributes [1].aDesc = a_258purpose; - attributes [2].aDesc = a_259kind; -} -#endif - -SdaiContract::SdaiContract( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_contract; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_257name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_257name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_258purpose, &_purpose); -#else - a = new STEPattribute(*a_258purpose, &_purpose); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_259kind, (SCLP23(Application_instance_ptr) *) &_kind); -#else - a = new STEPattribute(*a_259kind, (SCLP23(Application_instance_ptr) *) &_kind); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiContract::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiContract::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiContract::purpose_() const -{ - return (SdaiText) _purpose; -} - -void -SdaiContract::purpose_ (const SdaiText x) - -{ - _purpose = x; -} - -const SdaiContract_type_ptr -SdaiContract::kind_() const -{ - return (SdaiContract_type_ptr) _kind; -} - -void -SdaiContract::kind_ (const SdaiContract_type_ptr x) - -{ - _kind = x; -} - -///////// END_ENTITY contract - - -///////// ENTITY dimensional_exponents - -EntityDescriptor *config_control_designe_dimensional_exponents =0; -AttrDescriptor *a_260length_exponent =0; -AttrDescriptor *a_261mass_exponent =0; -AttrDescriptor *a_262time_exponent =0; -AttrDescriptor *a_263electric_current_exponent =0; -AttrDescriptor *a_264thermodynamic_temperature_exponent =0; -AttrDescriptor *a_265amount_of_substance_exponent =0; -AttrDescriptor *a_266luminous_intensity_exponent =0; -SdaiDimensional_exponents::SdaiDimensional_exponents( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_dimensional_exponents; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_260length_exponent, &_length_exponent); -#else - STEPattribute *a = new STEPattribute(*a_260length_exponent, &_length_exponent); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_261mass_exponent, &_mass_exponent); -#else - a = new STEPattribute(*a_261mass_exponent, &_mass_exponent); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_262time_exponent, &_time_exponent); -#else - a = new STEPattribute(*a_262time_exponent, &_time_exponent); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_263electric_current_exponent, &_electric_current_exponent); -#else - a = new STEPattribute(*a_263electric_current_exponent, &_electric_current_exponent); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_264thermodynamic_temperature_exponent, &_thermodynamic_temperature_exponent); -#else - a = new STEPattribute(*a_264thermodynamic_temperature_exponent, &_thermodynamic_temperature_exponent); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_265amount_of_substance_exponent, &_amount_of_substance_exponent); -#else - a = new STEPattribute(*a_265amount_of_substance_exponent, &_amount_of_substance_exponent); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_266luminous_intensity_exponent, &_luminous_intensity_exponent); -#else - a = new STEPattribute(*a_266luminous_intensity_exponent, &_luminous_intensity_exponent); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDimensional_exponents::SdaiDimensional_exponents (SdaiDimensional_exponents& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDimensional_exponents::~SdaiDimensional_exponents () { } - -#ifdef __OSTORE__ - -void -SdaiDimensional_exponents::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDimensional_exponents: virtual access function." << G4endl; - SdaiDimensional_exponents_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDimensional_exponents_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDimensional_exponents: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDimensional_exponents *ent = (SdaiDimensional_exponents *)sent; -// SdaiDimensional_exponents *ent = (SdaiDimensional_exponents *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_dimensional_exponents; - ent->attributes[0].aDesc = a_260length_exponent; - ent->attributes[1].aDesc = a_261mass_exponent; - ent->attributes[2].aDesc = a_262time_exponent; - ent->attributes[3].aDesc = a_263electric_current_exponent; - ent->attributes[4].aDesc = a_264thermodynamic_temperature_exponent; - ent->attributes[5].aDesc = a_265amount_of_substance_exponent; - ent->attributes[6].aDesc = a_266luminous_intensity_exponent; -} - -SCLP23(Application_instance_ptr) -create_SdaiDimensional_exponents(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDimensional_exponents::get_os_typespec()) - SdaiDimensional_exponents; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDimensional_exponents::get_os_typespec()) -// SdaiDimensional_exponents; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDimensional_exponents; -} -#endif - -#ifdef __O3DB__ -void -SdaiDimensional_exponents::oodb_reInit () -{ eDesc = config_control_designe_dimensional_exponents; - attributes [0].aDesc = a_260length_exponent; - attributes [1].aDesc = a_261mass_exponent; - attributes [2].aDesc = a_262time_exponent; - attributes [3].aDesc = a_263electric_current_exponent; - attributes [4].aDesc = a_264thermodynamic_temperature_exponent; - attributes [5].aDesc = a_265amount_of_substance_exponent; - attributes [6].aDesc = a_266luminous_intensity_exponent; -} -#endif - -SdaiDimensional_exponents::SdaiDimensional_exponents( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_dimensional_exponents; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_260length_exponent, &_length_exponent); -#else - STEPattribute *a = new STEPattribute(*a_260length_exponent, &_length_exponent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_261mass_exponent, &_mass_exponent); -#else - a = new STEPattribute(*a_261mass_exponent, &_mass_exponent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_262time_exponent, &_time_exponent); -#else - a = new STEPattribute(*a_262time_exponent, &_time_exponent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_263electric_current_exponent, &_electric_current_exponent); -#else - a = new STEPattribute(*a_263electric_current_exponent, &_electric_current_exponent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_264thermodynamic_temperature_exponent, &_thermodynamic_temperature_exponent); -#else - a = new STEPattribute(*a_264thermodynamic_temperature_exponent, &_thermodynamic_temperature_exponent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_265amount_of_substance_exponent, &_amount_of_substance_exponent); -#else - a = new STEPattribute(*a_265amount_of_substance_exponent, &_amount_of_substance_exponent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_266luminous_intensity_exponent, &_luminous_intensity_exponent); -#else - a = new STEPattribute(*a_266luminous_intensity_exponent, &_luminous_intensity_exponent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SCLP23(Real) -SdaiDimensional_exponents::length_exponent_() const -{ - return (SCLP23(Real)) _length_exponent; -} - -void -SdaiDimensional_exponents::length_exponent_ (const SCLP23(Real) x) - -{ - _length_exponent = x; -} - -const SCLP23(Real) -SdaiDimensional_exponents::mass_exponent_() const -{ - return (SCLP23(Real)) _mass_exponent; -} - -void -SdaiDimensional_exponents::mass_exponent_ (const SCLP23(Real) x) - -{ - _mass_exponent = x; -} - -const SCLP23(Real) -SdaiDimensional_exponents::time_exponent_() const -{ - return (SCLP23(Real)) _time_exponent; -} - -void -SdaiDimensional_exponents::time_exponent_ (const SCLP23(Real) x) - -{ - _time_exponent = x; -} - -const SCLP23(Real) -SdaiDimensional_exponents::electric_current_exponent_() const -{ - return (SCLP23(Real)) _electric_current_exponent; -} - -void -SdaiDimensional_exponents::electric_current_exponent_ (const SCLP23(Real) x) - -{ - _electric_current_exponent = x; -} - -const SCLP23(Real) -SdaiDimensional_exponents::thermodynamic_temperature_exponent_() const -{ - return (SCLP23(Real)) _thermodynamic_temperature_exponent; -} - -void -SdaiDimensional_exponents::thermodynamic_temperature_exponent_ (const SCLP23(Real) x) - -{ - _thermodynamic_temperature_exponent = x; -} - -const SCLP23(Real) -SdaiDimensional_exponents::amount_of_substance_exponent_() const -{ - return (SCLP23(Real)) _amount_of_substance_exponent; -} - -void -SdaiDimensional_exponents::amount_of_substance_exponent_ (const SCLP23(Real) x) - -{ - _amount_of_substance_exponent = x; -} - -const SCLP23(Real) -SdaiDimensional_exponents::luminous_intensity_exponent_() const -{ - return (SCLP23(Real)) _luminous_intensity_exponent; -} - -void -SdaiDimensional_exponents::luminous_intensity_exponent_ (const SCLP23(Real) x) - -{ - _luminous_intensity_exponent = x; -} - -///////// END_ENTITY dimensional_exponents - - -///////// ENTITY start_request - -EntityDescriptor *config_control_designe_start_request =0; -AttrDescriptor *a_267items =0; -SdaiStart_request::SdaiStart_request( ) -{ - - /* parent: SdaiAction_request_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_start_request; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_267items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_267items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiStart_request::SdaiStart_request (SdaiStart_request& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiStart_request::~SdaiStart_request () { } - -#ifdef __OSTORE__ - -void -SdaiStart_request::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiStart_request: virtual access function." << G4endl; - SdaiStart_request_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiStart_request_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiStart_request: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiStart_request *ent = (SdaiStart_request *)sent; -// SdaiStart_request *ent = (SdaiStart_request *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_start_request; - ent->attributes[1].aDesc = a_267items; -} - -SCLP23(Application_instance_ptr) -create_SdaiStart_request(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiStart_request::get_os_typespec()) - SdaiStart_request; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiStart_request::get_os_typespec()) -// SdaiStart_request; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiStart_request; -} -#endif - -#ifdef __O3DB__ -void -SdaiStart_request::oodb_reInit () -{ eDesc = config_control_designe_start_request; - attributes [1].aDesc = a_267items; -} -#endif - -SdaiStart_request::SdaiStart_request (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAction_request_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAction_request_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_start_request; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_267items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_267items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiStart_request_items_ptr -SdaiStart_request::items_() const -{ - return (SdaiStart_request_items_ptr) &_items; -} - -void -SdaiStart_request::items_ (const SdaiStart_request_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY start_request - - -///////// ENTITY cc_design_specification_reference - -EntityDescriptor *config_control_designe_cc_design_specification_reference =0; -AttrDescriptor *a_268items =0; -SdaiCc_design_specification_reference::SdaiCc_design_specification_reference( ) -{ - - /* parent: SdaiDocument_reference */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_specification_reference; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_268items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_268items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCc_design_specification_reference::SdaiCc_design_specification_reference (SdaiCc_design_specification_reference& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCc_design_specification_reference::~SdaiCc_design_specification_reference () { } - -#ifdef __OSTORE__ - -void -SdaiCc_design_specification_reference::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_specification_reference: virtual access function." << G4endl; - SdaiCc_design_specification_reference_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCc_design_specification_reference_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_specification_reference: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCc_design_specification_reference *ent = (SdaiCc_design_specification_reference *)sent; -// SdaiCc_design_specification_reference *ent = (SdaiCc_design_specification_reference *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cc_design_specification_reference; - ent->attributes[2].aDesc = a_268items; -} - -SCLP23(Application_instance_ptr) -create_SdaiCc_design_specification_reference(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCc_design_specification_reference::get_os_typespec()) - SdaiCc_design_specification_reference; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCc_design_specification_reference::get_os_typespec()) -// SdaiCc_design_specification_reference; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCc_design_specification_reference; -} -#endif - -#ifdef __O3DB__ -void -SdaiCc_design_specification_reference::oodb_reInit () -{ eDesc = config_control_designe_cc_design_specification_reference; - attributes [2].aDesc = a_268items; -} -#endif - -SdaiCc_design_specification_reference::SdaiCc_design_specification_reference (SCLP23(Application_instance) *se, int *addAttrs) : SdaiDocument_reference(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiDocument_reference */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_specification_reference; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_268items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_268items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiSpecified_items_ptr -SdaiCc_design_specification_reference::items_() const -{ - return (SdaiSpecified_items_ptr) &_items; -} - -void -SdaiCc_design_specification_reference::items_ (const SdaiSpecified_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cc_design_specification_reference - - -///////// ENTITY supplied_part_relationship - -EntityDescriptor *config_control_designe_supplied_part_relationship =0; -SdaiSupplied_part_relationship::SdaiSupplied_part_relationship( ) -{ - - /* parent: SdaiProduct_definition_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_supplied_part_relationship; -} -SdaiSupplied_part_relationship::SdaiSupplied_part_relationship (SdaiSupplied_part_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSupplied_part_relationship::~SdaiSupplied_part_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiSupplied_part_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSupplied_part_relationship: virtual access function." << G4endl; - SdaiSupplied_part_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSupplied_part_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSupplied_part_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSupplied_part_relationship *ent = (SdaiSupplied_part_relationship *)sent; -// SdaiSupplied_part_relationship *ent = (SdaiSupplied_part_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_supplied_part_relationship; -} - -SCLP23(Application_instance_ptr) -create_SdaiSupplied_part_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSupplied_part_relationship::get_os_typespec()) - SdaiSupplied_part_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSupplied_part_relationship::get_os_typespec()) -// SdaiSupplied_part_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSupplied_part_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiSupplied_part_relationship::oodb_reInit () -{ eDesc = config_control_designe_supplied_part_relationship; -} -#endif - -SdaiSupplied_part_relationship::SdaiSupplied_part_relationship (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_definition_relationship(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_definition_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_supplied_part_relationship; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY supplied_part_relationship - - -///////// ENTITY context_dependent_shape_representation - -EntityDescriptor *config_control_designe_context_dependent_shape_representation =0; -AttrDescriptor *a_269representation_relation =0; -AttrDescriptor *a_270represented_product_relation =0; -SdaiContext_dependent_shape_representation::SdaiContext_dependent_shape_representation( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_context_dependent_shape_representation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_269representation_relation, (SCLP23(Application_instance_ptr) *) &_representation_relation); -#else - STEPattribute *a = new STEPattribute(*a_269representation_relation, (SCLP23(Application_instance_ptr) *) &_representation_relation); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_270represented_product_relation, (SCLP23(Application_instance_ptr) *) &_represented_product_relation); -#else - a = new STEPattribute(*a_270represented_product_relation, (SCLP23(Application_instance_ptr) *) &_represented_product_relation); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiContext_dependent_shape_representation::SdaiContext_dependent_shape_representation (SdaiContext_dependent_shape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiContext_dependent_shape_representation::~SdaiContext_dependent_shape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiContext_dependent_shape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContext_dependent_shape_representation: virtual access function." << G4endl; - SdaiContext_dependent_shape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiContext_dependent_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContext_dependent_shape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiContext_dependent_shape_representation *ent = (SdaiContext_dependent_shape_representation *)sent; -// SdaiContext_dependent_shape_representation *ent = (SdaiContext_dependent_shape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_context_dependent_shape_representation; - ent->attributes[0].aDesc = a_269representation_relation; - if(ent->_representation_relation == 0) - ent->_representation_relation = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_270represented_product_relation; - if(ent->_represented_product_relation == 0) - ent->_represented_product_relation = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiContext_dependent_shape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiContext_dependent_shape_representation::get_os_typespec()) - SdaiContext_dependent_shape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiContext_dependent_shape_representation::get_os_typespec()) -// SdaiContext_dependent_shape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiContext_dependent_shape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiContext_dependent_shape_representation::oodb_reInit () -{ eDesc = config_control_designe_context_dependent_shape_representation; - attributes [0].aDesc = a_269representation_relation; - attributes [1].aDesc = a_270represented_product_relation; -} -#endif - -SdaiContext_dependent_shape_representation::SdaiContext_dependent_shape_representation( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_context_dependent_shape_representation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_269representation_relation, (SCLP23(Application_instance_ptr) *) &_representation_relation); -#else - STEPattribute *a = new STEPattribute(*a_269representation_relation, (SCLP23(Application_instance_ptr) *) &_representation_relation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_270represented_product_relation, (SCLP23(Application_instance_ptr) *) &_represented_product_relation); -#else - a = new STEPattribute(*a_270represented_product_relation, (SCLP23(Application_instance_ptr) *) &_represented_product_relation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiShape_representation_relationship_ptr -SdaiContext_dependent_shape_representation::representation_relation_() const -{ - return (SdaiShape_representation_relationship_ptr) _representation_relation; -} - -void -SdaiContext_dependent_shape_representation::representation_relation_ (const SdaiShape_representation_relationship_ptr x) - -{ - _representation_relation = x; -} - -const SdaiProduct_definition_shape_ptr -SdaiContext_dependent_shape_representation::represented_product_relation_() const -{ - return (SdaiProduct_definition_shape_ptr) _represented_product_relation; -} - -void -SdaiContext_dependent_shape_representation::represented_product_relation_ (const SdaiProduct_definition_shape_ptr x) - -{ - _represented_product_relation = x; -} - -///////// END_ENTITY context_dependent_shape_representation - - -///////// ENTITY ordinal_date - -EntityDescriptor *config_control_designe_ordinal_date =0; -AttrDescriptor *a_271day_component =0; -SdaiOrdinal_date::SdaiOrdinal_date( ) -{ - - /* parent: SdaiDate */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_ordinal_date; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_271day_component, &_day_component); -#else - STEPattribute *a = new STEPattribute(*a_271day_component, &_day_component); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiOrdinal_date::SdaiOrdinal_date (SdaiOrdinal_date& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOrdinal_date::~SdaiOrdinal_date () { } - -#ifdef __OSTORE__ - -void -SdaiOrdinal_date::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrdinal_date: virtual access function." << G4endl; - SdaiOrdinal_date_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOrdinal_date_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrdinal_date: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOrdinal_date *ent = (SdaiOrdinal_date *)sent; -// SdaiOrdinal_date *ent = (SdaiOrdinal_date *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_ordinal_date; - ent->attributes[1].aDesc = a_271day_component; -} - -SCLP23(Application_instance_ptr) -create_SdaiOrdinal_date(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOrdinal_date::get_os_typespec()) - SdaiOrdinal_date; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOrdinal_date::get_os_typespec()) -// SdaiOrdinal_date; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOrdinal_date; -} -#endif - -#ifdef __O3DB__ -void -SdaiOrdinal_date::oodb_reInit () -{ eDesc = config_control_designe_ordinal_date; - attributes [1].aDesc = a_271day_component; -} -#endif - -SdaiOrdinal_date::SdaiOrdinal_date (SCLP23(Application_instance) *se, int *addAttrs) : SdaiDate(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiDate */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_ordinal_date; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_271day_component, &_day_component); -#else - STEPattribute *a = new STEPattribute(*a_271day_component, &_day_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDay_in_year_number -SdaiOrdinal_date::day_component_() const -{ - return (SdaiDay_in_year_number) _day_component; -} - -void -SdaiOrdinal_date::day_component_ (const SdaiDay_in_year_number x) - -{ - _day_component = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY ordinal_date - - -///////// ENTITY face_outer_bound - -EntityDescriptor *config_control_designe_face_outer_bound =0; -SdaiFace_outer_bound::SdaiFace_outer_bound( ) -{ - - /* parent: SdaiFace_bound */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_face_outer_bound; -} -SdaiFace_outer_bound::SdaiFace_outer_bound (SdaiFace_outer_bound& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiFace_outer_bound::~SdaiFace_outer_bound () { } - -#ifdef __OSTORE__ - -void -SdaiFace_outer_bound::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFace_outer_bound: virtual access function." << G4endl; - SdaiFace_outer_bound_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiFace_outer_bound_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFace_outer_bound: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiFace_outer_bound *ent = (SdaiFace_outer_bound *)sent; -// SdaiFace_outer_bound *ent = (SdaiFace_outer_bound *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_face_outer_bound; -} - -SCLP23(Application_instance_ptr) -create_SdaiFace_outer_bound(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiFace_outer_bound::get_os_typespec()) - SdaiFace_outer_bound; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiFace_outer_bound::get_os_typespec()) -// SdaiFace_outer_bound; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiFace_outer_bound; -} -#endif - -#ifdef __O3DB__ -void -SdaiFace_outer_bound::oodb_reInit () -{ eDesc = config_control_designe_face_outer_bound; -} -#endif - -SdaiFace_outer_bound::SdaiFace_outer_bound (SCLP23(Application_instance) *se, int *addAttrs) : SdaiFace_bound(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiFace_bound */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_face_outer_bound; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY face_outer_bound - - -///////// ENTITY mass_measure_with_unit - -EntityDescriptor *config_control_designe_mass_measure_with_unit =0; -SdaiMass_measure_with_unit::SdaiMass_measure_with_unit( ) -{ - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_mass_measure_with_unit; -} -SdaiMass_measure_with_unit::SdaiMass_measure_with_unit (SdaiMass_measure_with_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiMass_measure_with_unit::~SdaiMass_measure_with_unit () { } - -#ifdef __OSTORE__ - -void -SdaiMass_measure_with_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMass_measure_with_unit: virtual access function." << G4endl; - SdaiMass_measure_with_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiMass_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMass_measure_with_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiMass_measure_with_unit *ent = (SdaiMass_measure_with_unit *)sent; -// SdaiMass_measure_with_unit *ent = (SdaiMass_measure_with_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_mass_measure_with_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiMass_measure_with_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiMass_measure_with_unit::get_os_typespec()) - SdaiMass_measure_with_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiMass_measure_with_unit::get_os_typespec()) -// SdaiMass_measure_with_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiMass_measure_with_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiMass_measure_with_unit::oodb_reInit () -{ eDesc = config_control_designe_mass_measure_with_unit; -} -#endif - -SdaiMass_measure_with_unit::SdaiMass_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiMeasure_with_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_mass_measure_with_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY mass_measure_with_unit - - -///////// ENTITY brep_with_voids - -EntityDescriptor *config_control_designe_brep_with_voids =0; -AttrDescriptor *a_272voids =0; -SdaiBrep_with_voids::SdaiBrep_with_voids( ) -{ - - /* parent: SdaiManifold_solid_brep */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_brep_with_voids; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_272voids, &_voids); -#else - STEPattribute *a = new STEPattribute(*a_272voids, &_voids); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiBrep_with_voids::SdaiBrep_with_voids (SdaiBrep_with_voids& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiBrep_with_voids::~SdaiBrep_with_voids () { } - -#ifdef __OSTORE__ - -void -SdaiBrep_with_voids::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBrep_with_voids: virtual access function." << G4endl; - SdaiBrep_with_voids_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiBrep_with_voids_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBrep_with_voids: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiBrep_with_voids *ent = (SdaiBrep_with_voids *)sent; -// SdaiBrep_with_voids *ent = (SdaiBrep_with_voids *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_brep_with_voids; - ent->attributes[2].aDesc = a_272voids; -} - -SCLP23(Application_instance_ptr) -create_SdaiBrep_with_voids(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiBrep_with_voids::get_os_typespec()) - SdaiBrep_with_voids; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiBrep_with_voids::get_os_typespec()) -// SdaiBrep_with_voids; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiBrep_with_voids; -} -#endif - -#ifdef __O3DB__ -void -SdaiBrep_with_voids::oodb_reInit () -{ eDesc = config_control_designe_brep_with_voids; - attributes [2].aDesc = a_272voids; -} -#endif - -SdaiBrep_with_voids::SdaiBrep_with_voids (SCLP23(Application_instance) *se, int *addAttrs) : SdaiManifold_solid_brep(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiManifold_solid_brep */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_brep_with_voids; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_272voids, &_voids); -#else - STEPattribute *a = new STEPattribute(*a_272voids, &_voids); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const EntityAggregate_ptr -SdaiBrep_with_voids::voids_() const -{ - return (EntityAggregate_ptr) &_voids; -} - -void -SdaiBrep_with_voids::voids_ (const EntityAggregate_ptr x) - - { _voids.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY brep_with_voids - - -///////// ENTITY week_of_year_and_day_date - -EntityDescriptor *config_control_designe_week_of_year_and_day_date =0; -AttrDescriptor *a_273week_component =0; -AttrDescriptor *a_274day_component =0; -SdaiWeek_of_year_and_day_date::SdaiWeek_of_year_and_day_date( ) -{ - - /* parent: SdaiDate */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_week_of_year_and_day_date; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_273week_component, &_week_component); -#else - STEPattribute *a = new STEPattribute(*a_273week_component, &_week_component); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_274day_component, &_day_component); -#else - a = new STEPattribute(*a_274day_component, &_day_component); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiWeek_of_year_and_day_date::SdaiWeek_of_year_and_day_date (SdaiWeek_of_year_and_day_date& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiWeek_of_year_and_day_date::~SdaiWeek_of_year_and_day_date () { } - -#ifdef __OSTORE__ - -void -SdaiWeek_of_year_and_day_date::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiWeek_of_year_and_day_date: virtual access function." << G4endl; - SdaiWeek_of_year_and_day_date_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiWeek_of_year_and_day_date_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiWeek_of_year_and_day_date: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiWeek_of_year_and_day_date *ent = (SdaiWeek_of_year_and_day_date *)sent; -// SdaiWeek_of_year_and_day_date *ent = (SdaiWeek_of_year_and_day_date *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_week_of_year_and_day_date; - ent->attributes[1].aDesc = a_273week_component; - ent->attributes[2].aDesc = a_274day_component; -} - -SCLP23(Application_instance_ptr) -create_SdaiWeek_of_year_and_day_date(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiWeek_of_year_and_day_date::get_os_typespec()) - SdaiWeek_of_year_and_day_date; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiWeek_of_year_and_day_date::get_os_typespec()) -// SdaiWeek_of_year_and_day_date; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiWeek_of_year_and_day_date; -} -#endif - -#ifdef __O3DB__ -void -SdaiWeek_of_year_and_day_date::oodb_reInit () -{ eDesc = config_control_designe_week_of_year_and_day_date; - attributes [1].aDesc = a_273week_component; - attributes [2].aDesc = a_274day_component; -} -#endif - -SdaiWeek_of_year_and_day_date::SdaiWeek_of_year_and_day_date (SCLP23(Application_instance) *se, int *addAttrs) : SdaiDate(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiDate */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_week_of_year_and_day_date; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_273week_component, &_week_component); -#else - STEPattribute *a = new STEPattribute(*a_273week_component, &_week_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_274day_component, &_day_component); -#else - a = new STEPattribute(*a_274day_component, &_day_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiWeek_in_year_number -SdaiWeek_of_year_and_day_date::week_component_() const -{ - return (SdaiWeek_in_year_number) _week_component; -} - -void -SdaiWeek_of_year_and_day_date::week_component_ (const SdaiWeek_in_year_number x) - -{ - _week_component = x; -} - -const SdaiDay_in_week_number -SdaiWeek_of_year_and_day_date::day_component_() const -{ - return (SdaiDay_in_week_number) _day_component; -} - -void -SdaiWeek_of_year_and_day_date::day_component_ (const SdaiDay_in_week_number x) - -{ - _day_component = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY week_of_year_and_day_date - - -///////// ENTITY point_on_curve - -EntityDescriptor *config_control_designe_point_on_curve =0; -AttrDescriptor *a_275basis_curve =0; -AttrDescriptor *a_276point_parameter =0; -SdaiPoint_on_curve::SdaiPoint_on_curve( ) -{ - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_point_on_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_275basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#else - STEPattribute *a = new STEPattribute(*a_275basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_276point_parameter, &_point_parameter); -#else - a = new STEPattribute(*a_276point_parameter, &_point_parameter); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiPoint_on_curve::SdaiPoint_on_curve (SdaiPoint_on_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPoint_on_curve::~SdaiPoint_on_curve () { } - -#ifdef __OSTORE__ - -void -SdaiPoint_on_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoint_on_curve: virtual access function." << G4endl; - SdaiPoint_on_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPoint_on_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoint_on_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPoint_on_curve *ent = (SdaiPoint_on_curve *)sent; -// SdaiPoint_on_curve *ent = (SdaiPoint_on_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_point_on_curve; - ent->attributes[1].aDesc = a_275basis_curve; - if(ent->_basis_curve == 0) - ent->_basis_curve = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_276point_parameter; -} - -SCLP23(Application_instance_ptr) -create_SdaiPoint_on_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPoint_on_curve::get_os_typespec()) - SdaiPoint_on_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPoint_on_curve::get_os_typespec()) -// SdaiPoint_on_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPoint_on_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiPoint_on_curve::oodb_reInit () -{ eDesc = config_control_designe_point_on_curve; - attributes [1].aDesc = a_275basis_curve; - attributes [2].aDesc = a_276point_parameter; -} -#endif - -SdaiPoint_on_curve::SdaiPoint_on_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPoint(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_point_on_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_275basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#else - STEPattribute *a = new STEPattribute(*a_275basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_276point_parameter, &_point_parameter); -#else - a = new STEPattribute(*a_276point_parameter, &_point_parameter); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCurve_ptr -SdaiPoint_on_curve::basis_curve_() const -{ - return (SdaiCurve_ptr) _basis_curve; -} - -void -SdaiPoint_on_curve::basis_curve_ (const SdaiCurve_ptr x) - -{ - _basis_curve = x; -} - -const SdaiParameter_value -SdaiPoint_on_curve::point_parameter_() const -{ - return (SdaiParameter_value) _point_parameter; -} - -void -SdaiPoint_on_curve::point_parameter_ (const SdaiParameter_value x) - -{ - _point_parameter = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY point_on_curve - - -///////// ENTITY shell_based_wireframe_shape_representation - -EntityDescriptor *config_control_designe_shell_based_wireframe_shape_representation =0; -SdaiShell_based_wireframe_shape_representation::SdaiShell_based_wireframe_shape_representation( ) -{ - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shell_based_wireframe_shape_representation; -} -SdaiShell_based_wireframe_shape_representation::SdaiShell_based_wireframe_shape_representation (SdaiShell_based_wireframe_shape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiShell_based_wireframe_shape_representation::~SdaiShell_based_wireframe_shape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiShell_based_wireframe_shape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShell_based_wireframe_shape_representation: virtual access function." << G4endl; - SdaiShell_based_wireframe_shape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiShell_based_wireframe_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShell_based_wireframe_shape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiShell_based_wireframe_shape_representation *ent = (SdaiShell_based_wireframe_shape_representation *)sent; -// SdaiShell_based_wireframe_shape_representation *ent = (SdaiShell_based_wireframe_shape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_shell_based_wireframe_shape_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiShell_based_wireframe_shape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiShell_based_wireframe_shape_representation::get_os_typespec()) - SdaiShell_based_wireframe_shape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiShell_based_wireframe_shape_representation::get_os_typespec()) -// SdaiShell_based_wireframe_shape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiShell_based_wireframe_shape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiShell_based_wireframe_shape_representation::oodb_reInit () -{ eDesc = config_control_designe_shell_based_wireframe_shape_representation; -} -#endif - -SdaiShell_based_wireframe_shape_representation::SdaiShell_based_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiShape_representation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shell_based_wireframe_shape_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY shell_based_wireframe_shape_representation - - -///////// ENTITY face - -EntityDescriptor *config_control_designe_face =0; -AttrDescriptor *a_277bounds =0; -SdaiFace::SdaiFace( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_face; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_277bounds, &_bounds); -#else - STEPattribute *a = new STEPattribute(*a_277bounds, &_bounds); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiFace::SdaiFace (SdaiFace& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiFace::~SdaiFace () { } - -#ifdef __OSTORE__ - -void -SdaiFace::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFace: virtual access function." << G4endl; - SdaiFace_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiFace_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFace: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiFace *ent = (SdaiFace *)sent; -// SdaiFace *ent = (SdaiFace *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_face; - ent->attributes[1].aDesc = a_277bounds; -} - -SCLP23(Application_instance_ptr) -create_SdaiFace(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiFace::get_os_typespec()) - SdaiFace; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiFace::get_os_typespec()) -// SdaiFace; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiFace; -} -#endif - -#ifdef __O3DB__ -void -SdaiFace::oodb_reInit () -{ eDesc = config_control_designe_face; - attributes [1].aDesc = a_277bounds; -} -#endif - -SdaiFace::SdaiFace (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_face; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_277bounds, &_bounds); -#else - STEPattribute *a = new STEPattribute(*a_277bounds, &_bounds); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiFace::bounds_() const -{ - return (EntityAggregate_ptr) &_bounds; -} - -void -SdaiFace::bounds_ (const EntityAggregate_ptr x) - - { _bounds.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY face - - -///////// ENTITY face_surface - -EntityDescriptor *config_control_designe_face_surface =0; -AttrDescriptor *a_278face_geometry =0; -AttrDescriptor *a_279same_sense =0; -SdaiFace_surface::SdaiFace_surface( ) -{ - - /* parent: SdaiFace */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiGeometric_representation_item */ - HeadEntity(this); -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - AppendMultInstance(new SdaiGeometric_representation_item(this, attrFlags)); -#endif - AppendMultInstance(new SdaiGeometric_representation_item(this)); - - eDesc = config_control_designe_face_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_278face_geometry, (SCLP23(Application_instance_ptr) *) &_face_geometry); -#else - STEPattribute *a = new STEPattribute(*a_278face_geometry, (SCLP23(Application_instance_ptr) *) &_face_geometry); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_279same_sense, &_same_sense); -#else - a = new STEPattribute(*a_279same_sense, &_same_sense); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiFace_surface::SdaiFace_surface (SdaiFace_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiFace_surface::~SdaiFace_surface () { } - -#ifdef __OSTORE__ - -void -SdaiFace_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFace_surface: virtual access function." << G4endl; - SdaiFace_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiFace_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFace_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiFace_surface *ent = (SdaiFace_surface *)sent; -// SdaiFace_surface *ent = (SdaiFace_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_face_surface; - ent->attributes[3].aDesc = a_278face_geometry; - if(ent->_face_geometry == 0) - ent->_face_geometry = S_ENTITY_NULL; - ent->attributes[4].aDesc = a_279same_sense; -} - -SCLP23(Application_instance_ptr) -create_SdaiFace_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiFace_surface::get_os_typespec()) - SdaiFace_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiFace_surface::get_os_typespec()) -// SdaiFace_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiFace_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiFace_surface::oodb_reInit () -{ eDesc = config_control_designe_face_surface; - attributes [3].aDesc = a_278face_geometry; - attributes [4].aDesc = a_279same_sense; -} -#endif - -SdaiFace_surface::SdaiFace_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiFace(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiFace */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiGeometric_representation_item */ -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - se->AppendMultInstance(new SdaiGeometric_representation_item(se, attrFlags)); -#endif - se->AppendMultInstance(new SdaiGeometric_representation_item(se, 0)); - - eDesc = config_control_designe_face_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_278face_geometry, (SCLP23(Application_instance_ptr) *) &_face_geometry); -#else - STEPattribute *a = new STEPattribute(*a_278face_geometry, (SCLP23(Application_instance_ptr) *) &_face_geometry); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_279same_sense, &_same_sense); -#else - a = new STEPattribute(*a_279same_sense, &_same_sense); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiSurface_ptr -SdaiFace_surface::face_geometry_() const -{ - return (SdaiSurface_ptr) _face_geometry; -} - -void -SdaiFace_surface::face_geometry_ (const SdaiSurface_ptr x) - -{ - _face_geometry = x; -} - -const SCLBOOL(Bool) -SdaiFace_surface::same_sense_() const -{ - return (SCLBOOL(Bool)) _same_sense; -} - -void -SdaiFace_surface::same_sense_ (const SCLBOOL(Bool) x) - -{ - _same_sense.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -#endif - -///////// END_ENTITY face_surface - - -///////// ENTITY oriented_face - -EntityDescriptor *config_control_designe_oriented_face =0; -AttrDescriptor *a_280face_element =0; -AttrDescriptor *a_281orientation =0; -Derived_attribute *a_282Dface_bounds =0; -SdaiOriented_face::SdaiOriented_face( ) -{ - - /* parent: SdaiFace */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_face; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_280face_element, (SCLP23(Application_instance_ptr) *) &_face_element); -#else - STEPattribute *a = new STEPattribute(*a_280face_element, (SCLP23(Application_instance_ptr) *) &_face_element); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_281orientation, &_orientation); -#else - a = new STEPattribute(*a_281orientation, &_orientation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("bounds"); -} -SdaiOriented_face::SdaiOriented_face (SdaiOriented_face& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOriented_face::~SdaiOriented_face () { } - -#ifdef __OSTORE__ - -void -SdaiOriented_face::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_face: virtual access function." << G4endl; - SdaiOriented_face_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOriented_face_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_face: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOriented_face *ent = (SdaiOriented_face *)sent; -// SdaiOriented_face *ent = (SdaiOriented_face *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_oriented_face; - ent->attributes[2].aDesc = a_280face_element; - if(ent->_face_element == 0) - ent->_face_element = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_281orientation; -} - -SCLP23(Application_instance_ptr) -create_SdaiOriented_face(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOriented_face::get_os_typespec()) - SdaiOriented_face; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOriented_face::get_os_typespec()) -// SdaiOriented_face; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOriented_face; -} -#endif - -#ifdef __O3DB__ -void -SdaiOriented_face::oodb_reInit () -{ eDesc = config_control_designe_oriented_face; - attributes [2].aDesc = a_280face_element; - attributes [3].aDesc = a_281orientation; -} -#endif - -SdaiOriented_face::SdaiOriented_face (SCLP23(Application_instance) *se, int *addAttrs) : SdaiFace(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiFace */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_face; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_280face_element, (SCLP23(Application_instance_ptr) *) &_face_element); -#else - STEPattribute *a = new STEPattribute(*a_280face_element, (SCLP23(Application_instance_ptr) *) &_face_element); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_281orientation, &_orientation); -#else - a = new STEPattribute(*a_281orientation, &_orientation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("bounds"); -} - -const SdaiFace_ptr -SdaiOriented_face::face_element_() const -{ - return (SdaiFace_ptr) _face_element; -} - -void -SdaiOriented_face::face_element_ (const SdaiFace_ptr x) - -{ - _face_element = x; -} - -const SCLBOOL(Bool) -SdaiOriented_face::orientation_() const -{ - return (SCLBOOL(Bool)) _orientation; -} - -void -SdaiOriented_face::orientation_ (const SCLBOOL(Bool) x) - -{ - _orientation.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY oriented_face - - -///////// ENTITY surface_of_revolution - -EntityDescriptor *config_control_designe_surface_of_revolution =0; -AttrDescriptor *a_283axis_position =0; -Derived_attribute *a_284Daxis_line =0; -SdaiSurface_of_revolution::SdaiSurface_of_revolution( ) -{ - - /* parent: SdaiSwept_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface_of_revolution; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_283axis_position, (SCLP23(Application_instance_ptr) *) &_axis_position); -#else - STEPattribute *a = new STEPattribute(*a_283axis_position, (SCLP23(Application_instance_ptr) *) &_axis_position); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("axis_line"); -} -SdaiSurface_of_revolution::SdaiSurface_of_revolution (SdaiSurface_of_revolution& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSurface_of_revolution::~SdaiSurface_of_revolution () { } - -#ifdef __OSTORE__ - -void -SdaiSurface_of_revolution::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_of_revolution: virtual access function." << G4endl; - SdaiSurface_of_revolution_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSurface_of_revolution_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_of_revolution: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSurface_of_revolution *ent = (SdaiSurface_of_revolution *)sent; -// SdaiSurface_of_revolution *ent = (SdaiSurface_of_revolution *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_surface_of_revolution; - ent->attributes[2].aDesc = a_283axis_position; - if(ent->_axis_position == 0) - ent->_axis_position = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiSurface_of_revolution(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSurface_of_revolution::get_os_typespec()) - SdaiSurface_of_revolution; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSurface_of_revolution::get_os_typespec()) -// SdaiSurface_of_revolution; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSurface_of_revolution; -} -#endif - -#ifdef __O3DB__ -void -SdaiSurface_of_revolution::oodb_reInit () -{ eDesc = config_control_designe_surface_of_revolution; - attributes [2].aDesc = a_283axis_position; -} -#endif - -SdaiSurface_of_revolution::SdaiSurface_of_revolution (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSwept_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSwept_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface_of_revolution; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_283axis_position, (SCLP23(Application_instance_ptr) *) &_axis_position); -#else - STEPattribute *a = new STEPattribute(*a_283axis_position, (SCLP23(Application_instance_ptr) *) &_axis_position); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("axis_line"); -} - -const SdaiAxis1_placement_ptr -SdaiSurface_of_revolution::axis_position_() const -{ - return (SdaiAxis1_placement_ptr) _axis_position; -} - -void -SdaiSurface_of_revolution::axis_position_ (const SdaiAxis1_placement_ptr x) - -{ - _axis_position = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY surface_of_revolution - - -///////// ENTITY advanced_brep_shape_representation - -EntityDescriptor *config_control_designe_advanced_brep_shape_representation =0; -SdaiAdvanced_brep_shape_representation::SdaiAdvanced_brep_shape_representation( ) -{ - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_advanced_brep_shape_representation; -} -SdaiAdvanced_brep_shape_representation::SdaiAdvanced_brep_shape_representation (SdaiAdvanced_brep_shape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAdvanced_brep_shape_representation::~SdaiAdvanced_brep_shape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiAdvanced_brep_shape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAdvanced_brep_shape_representation: virtual access function." << G4endl; - SdaiAdvanced_brep_shape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAdvanced_brep_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAdvanced_brep_shape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAdvanced_brep_shape_representation *ent = (SdaiAdvanced_brep_shape_representation *)sent; -// SdaiAdvanced_brep_shape_representation *ent = (SdaiAdvanced_brep_shape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_advanced_brep_shape_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiAdvanced_brep_shape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAdvanced_brep_shape_representation::get_os_typespec()) - SdaiAdvanced_brep_shape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAdvanced_brep_shape_representation::get_os_typespec()) -// SdaiAdvanced_brep_shape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAdvanced_brep_shape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiAdvanced_brep_shape_representation::oodb_reInit () -{ eDesc = config_control_designe_advanced_brep_shape_representation; -} -#endif - -SdaiAdvanced_brep_shape_representation::SdaiAdvanced_brep_shape_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiShape_representation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_advanced_brep_shape_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY advanced_brep_shape_representation - - -///////// ENTITY edge_curve - -EntityDescriptor *config_control_designe_edge_curve =0; -AttrDescriptor *a_285edge_geometry =0; -AttrDescriptor *a_286same_sense =0; -SdaiEdge_curve::SdaiEdge_curve( ) -{ - - /* parent: SdaiEdge */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiGeometric_representation_item */ - HeadEntity(this); -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - AppendMultInstance(new SdaiGeometric_representation_item(this, attrFlags)); -#endif - AppendMultInstance(new SdaiGeometric_representation_item(this)); - - eDesc = config_control_designe_edge_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_285edge_geometry, (SCLP23(Application_instance_ptr) *) &_edge_geometry); -#else - STEPattribute *a = new STEPattribute(*a_285edge_geometry, (SCLP23(Application_instance_ptr) *) &_edge_geometry); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_286same_sense, &_same_sense); -#else - a = new STEPattribute(*a_286same_sense, &_same_sense); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiEdge_curve::SdaiEdge_curve (SdaiEdge_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiEdge_curve::~SdaiEdge_curve () { } - -#ifdef __OSTORE__ - -void -SdaiEdge_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge_curve: virtual access function." << G4endl; - SdaiEdge_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiEdge_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiEdge_curve *ent = (SdaiEdge_curve *)sent; -// SdaiEdge_curve *ent = (SdaiEdge_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_edge_curve; - ent->attributes[4].aDesc = a_285edge_geometry; - if(ent->_edge_geometry == 0) - ent->_edge_geometry = S_ENTITY_NULL; - ent->attributes[5].aDesc = a_286same_sense; -} - -SCLP23(Application_instance_ptr) -create_SdaiEdge_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiEdge_curve::get_os_typespec()) - SdaiEdge_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiEdge_curve::get_os_typespec()) -// SdaiEdge_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiEdge_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiEdge_curve::oodb_reInit () -{ eDesc = config_control_designe_edge_curve; - attributes [4].aDesc = a_285edge_geometry; - attributes [5].aDesc = a_286same_sense; -} -#endif - -SdaiEdge_curve::SdaiEdge_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiEdge(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiEdge */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiGeometric_representation_item */ -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - se->AppendMultInstance(new SdaiGeometric_representation_item(se, attrFlags)); -#endif - se->AppendMultInstance(new SdaiGeometric_representation_item(se, 0)); - - eDesc = config_control_designe_edge_curve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_285edge_geometry, (SCLP23(Application_instance_ptr) *) &_edge_geometry); -#else - STEPattribute *a = new STEPattribute(*a_285edge_geometry, (SCLP23(Application_instance_ptr) *) &_edge_geometry); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_286same_sense, &_same_sense); -#else - a = new STEPattribute(*a_286same_sense, &_same_sense); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCurve_ptr -SdaiEdge_curve::edge_geometry_() const -{ - return (SdaiCurve_ptr) _edge_geometry; -} - -void -SdaiEdge_curve::edge_geometry_ (const SdaiCurve_ptr x) - -{ - _edge_geometry = x; -} - -const SCLBOOL(Bool) -SdaiEdge_curve::same_sense_() const -{ - return (SCLBOOL(Bool)) _same_sense; -} - -void -SdaiEdge_curve::same_sense_ (const SCLBOOL(Bool) x) - -{ - _same_sense.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -#endif - -///////// END_ENTITY edge_curve - - -///////// ENTITY point_replica - -EntityDescriptor *config_control_designe_point_replica =0; -AttrDescriptor *a_287parent_pt =0; -AttrDescriptor *a_288transformation =0; -SdaiPoint_replica::SdaiPoint_replica( ) -{ - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_point_replica; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_287parent_pt, (SCLP23(Application_instance_ptr) *) &_parent_pt); -#else - STEPattribute *a = new STEPattribute(*a_287parent_pt, (SCLP23(Application_instance_ptr) *) &_parent_pt); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_288transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#else - a = new STEPattribute(*a_288transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiPoint_replica::SdaiPoint_replica (SdaiPoint_replica& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPoint_replica::~SdaiPoint_replica () { } - -#ifdef __OSTORE__ - -void -SdaiPoint_replica::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoint_replica: virtual access function." << G4endl; - SdaiPoint_replica_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPoint_replica_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoint_replica: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPoint_replica *ent = (SdaiPoint_replica *)sent; -// SdaiPoint_replica *ent = (SdaiPoint_replica *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_point_replica; - ent->attributes[1].aDesc = a_287parent_pt; - if(ent->_parent_pt == 0) - ent->_parent_pt = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_288transformation; - if(ent->_transformation == 0) - ent->_transformation = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiPoint_replica(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPoint_replica::get_os_typespec()) - SdaiPoint_replica; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPoint_replica::get_os_typespec()) -// SdaiPoint_replica; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPoint_replica; -} -#endif - -#ifdef __O3DB__ -void -SdaiPoint_replica::oodb_reInit () -{ eDesc = config_control_designe_point_replica; - attributes [1].aDesc = a_287parent_pt; - attributes [2].aDesc = a_288transformation; -} -#endif - -SdaiPoint_replica::SdaiPoint_replica (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPoint(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_point_replica; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_287parent_pt, (SCLP23(Application_instance_ptr) *) &_parent_pt); -#else - STEPattribute *a = new STEPattribute(*a_287parent_pt, (SCLP23(Application_instance_ptr) *) &_parent_pt); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_288transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#else - a = new STEPattribute(*a_288transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiPoint_ptr -SdaiPoint_replica::parent_pt_() const -{ - return (SdaiPoint_ptr) _parent_pt; -} - -void -SdaiPoint_replica::parent_pt_ (const SdaiPoint_ptr x) - -{ - _parent_pt = x; -} - -const SdaiCartesian_transformation_operator_ptr -SdaiPoint_replica::transformation_() const -{ - return (SdaiCartesian_transformation_operator_ptr) _transformation; -} - -void -SdaiPoint_replica::transformation_ (const SdaiCartesian_transformation_operator_ptr x) - -{ - _transformation = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY point_replica - - -///////// ENTITY product - -EntityDescriptor *config_control_designe_product =0; -AttrDescriptor *a_289id =0; -AttrDescriptor *a_290name =0; -AttrDescriptor *a_291description =0; -AttrDescriptor *a_292frame_of_reference =0; -SdaiProduct::SdaiProduct( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_product; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_289id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_289id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_290name, &_name); -#else - a = new STEPattribute(*a_290name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_291description, &_description); -#else - a = new STEPattribute(*a_291description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_292frame_of_reference, &_frame_of_reference); -#else - a = new STEPattribute(*a_292frame_of_reference, &_frame_of_reference); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct::SdaiProduct (SdaiProduct& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct::~SdaiProduct () { } - -#ifdef __OSTORE__ - -void -SdaiProduct::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct: virtual access function." << G4endl; - SdaiProduct_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct *ent = (SdaiProduct *)sent; -// SdaiProduct *ent = (SdaiProduct *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product; - ent->attributes[0].aDesc = a_289id; - ent->attributes[1].aDesc = a_290name; - ent->attributes[2].aDesc = a_291description; - ent->attributes[3].aDesc = a_292frame_of_reference; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct::get_os_typespec()) - SdaiProduct; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct::get_os_typespec()) -// SdaiProduct; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct::oodb_reInit () -{ eDesc = config_control_designe_product; - attributes [0].aDesc = a_289id; - attributes [1].aDesc = a_290name; - attributes [2].aDesc = a_291description; - attributes [3].aDesc = a_292frame_of_reference; -} -#endif - -SdaiProduct::SdaiProduct( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_product; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_289id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_289id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_290name, &_name); -#else - a = new STEPattribute(*a_290name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_291description, &_description); -#else - a = new STEPattribute(*a_291description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_292frame_of_reference, &_frame_of_reference); -#else - a = new STEPattribute(*a_292frame_of_reference, &_frame_of_reference); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiProduct::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiProduct::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiLabel -SdaiProduct::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiProduct::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiProduct::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiProduct::description_ (const SdaiText x) - -{ - _description = x; -} - -const EntityAggregate_ptr -SdaiProduct::frame_of_reference_() const -{ - return (EntityAggregate_ptr) &_frame_of_reference; -} - -void -SdaiProduct::frame_of_reference_ (const EntityAggregate_ptr x) - - { _frame_of_reference.ShallowCopy (*x); } - -///////// END_ENTITY product - - -///////// ENTITY shape_aspect_relationship - -EntityDescriptor *config_control_designe_shape_aspect_relationship =0; -AttrDescriptor *a_293name =0; -AttrDescriptor *a_294description =0; -AttrDescriptor *a_295relating_shape_aspect =0; -AttrDescriptor *a_296related_shape_aspect =0; -SdaiShape_aspect_relationship::SdaiShape_aspect_relationship( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_shape_aspect_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_293name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_293name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_294description, &_description); -#else - a = new STEPattribute(*a_294description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_295relating_shape_aspect, (SCLP23(Application_instance_ptr) *) &_relating_shape_aspect); -#else - a = new STEPattribute(*a_295relating_shape_aspect, (SCLP23(Application_instance_ptr) *) &_relating_shape_aspect); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_296related_shape_aspect, (SCLP23(Application_instance_ptr) *) &_related_shape_aspect); -#else - a = new STEPattribute(*a_296related_shape_aspect, (SCLP23(Application_instance_ptr) *) &_related_shape_aspect); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiShape_aspect_relationship::SdaiShape_aspect_relationship (SdaiShape_aspect_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiShape_aspect_relationship::~SdaiShape_aspect_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiShape_aspect_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_aspect_relationship: virtual access function." << G4endl; - SdaiShape_aspect_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiShape_aspect_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_aspect_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiShape_aspect_relationship *ent = (SdaiShape_aspect_relationship *)sent; -// SdaiShape_aspect_relationship *ent = (SdaiShape_aspect_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_shape_aspect_relationship; - ent->attributes[0].aDesc = a_293name; - ent->attributes[1].aDesc = a_294description; - ent->attributes[2].aDesc = a_295relating_shape_aspect; - if(ent->_relating_shape_aspect == 0) - ent->_relating_shape_aspect = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_296related_shape_aspect; - if(ent->_related_shape_aspect == 0) - ent->_related_shape_aspect = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiShape_aspect_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiShape_aspect_relationship::get_os_typespec()) - SdaiShape_aspect_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiShape_aspect_relationship::get_os_typespec()) -// SdaiShape_aspect_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiShape_aspect_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiShape_aspect_relationship::oodb_reInit () -{ eDesc = config_control_designe_shape_aspect_relationship; - attributes [0].aDesc = a_293name; - attributes [1].aDesc = a_294description; - attributes [2].aDesc = a_295relating_shape_aspect; - attributes [3].aDesc = a_296related_shape_aspect; -} -#endif - -SdaiShape_aspect_relationship::SdaiShape_aspect_relationship( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_shape_aspect_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_293name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_293name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_294description, &_description); -#else - a = new STEPattribute(*a_294description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_295relating_shape_aspect, (SCLP23(Application_instance_ptr) *) &_relating_shape_aspect); -#else - a = new STEPattribute(*a_295relating_shape_aspect, (SCLP23(Application_instance_ptr) *) &_relating_shape_aspect); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_296related_shape_aspect, (SCLP23(Application_instance_ptr) *) &_related_shape_aspect); -#else - a = new STEPattribute(*a_296related_shape_aspect, (SCLP23(Application_instance_ptr) *) &_related_shape_aspect); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiShape_aspect_relationship::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiShape_aspect_relationship::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiShape_aspect_relationship::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiShape_aspect_relationship::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiShape_aspect_ptr -SdaiShape_aspect_relationship::relating_shape_aspect_() const -{ - return (SdaiShape_aspect_ptr) _relating_shape_aspect; -} - -void -SdaiShape_aspect_relationship::relating_shape_aspect_ (const SdaiShape_aspect_ptr x) - -{ - _relating_shape_aspect = x; -} - -const SdaiShape_aspect_ptr -SdaiShape_aspect_relationship::related_shape_aspect_() const -{ - return (SdaiShape_aspect_ptr) _related_shape_aspect; -} - -void -SdaiShape_aspect_relationship::related_shape_aspect_ (const SdaiShape_aspect_ptr x) - -{ - _related_shape_aspect = x; -} - -///////// END_ENTITY shape_aspect_relationship - - -///////// ENTITY rectangular_trimmed_surface - -EntityDescriptor *config_control_designe_rectangular_trimmed_surface =0; -AttrDescriptor *a_297basis_surface =0; -AttrDescriptor *a_298u1 =0; -AttrDescriptor *a_299u2 =0; -AttrDescriptor *a_300v1 =0; -AttrDescriptor *a_301v2 =0; -AttrDescriptor *a_302usense =0; -AttrDescriptor *a_303vsense =0; -SdaiRectangular_trimmed_surface::SdaiRectangular_trimmed_surface( ) -{ - - /* parent: SdaiBounded_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_rectangular_trimmed_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_297basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_297basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_298u1, &_u1); -#else - a = new STEPattribute(*a_298u1, &_u1); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_299u2, &_u2); -#else - a = new STEPattribute(*a_299u2, &_u2); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_300v1, &_v1); -#else - a = new STEPattribute(*a_300v1, &_v1); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_301v2, &_v2); -#else - a = new STEPattribute(*a_301v2, &_v2); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_302usense, &_usense); -#else - a = new STEPattribute(*a_302usense, &_usense); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_303vsense, &_vsense); -#else - a = new STEPattribute(*a_303vsense, &_vsense); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiRectangular_trimmed_surface::SdaiRectangular_trimmed_surface (SdaiRectangular_trimmed_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRectangular_trimmed_surface::~SdaiRectangular_trimmed_surface () { } - -#ifdef __OSTORE__ - -void -SdaiRectangular_trimmed_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRectangular_trimmed_surface: virtual access function." << G4endl; - SdaiRectangular_trimmed_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRectangular_trimmed_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRectangular_trimmed_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRectangular_trimmed_surface *ent = (SdaiRectangular_trimmed_surface *)sent; -// SdaiRectangular_trimmed_surface *ent = (SdaiRectangular_trimmed_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_rectangular_trimmed_surface; - ent->attributes[1].aDesc = a_297basis_surface; - if(ent->_basis_surface == 0) - ent->_basis_surface = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_298u1; - ent->attributes[3].aDesc = a_299u2; - ent->attributes[4].aDesc = a_300v1; - ent->attributes[5].aDesc = a_301v2; - ent->attributes[6].aDesc = a_302usense; - ent->attributes[7].aDesc = a_303vsense; -} - -SCLP23(Application_instance_ptr) -create_SdaiRectangular_trimmed_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRectangular_trimmed_surface::get_os_typespec()) - SdaiRectangular_trimmed_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRectangular_trimmed_surface::get_os_typespec()) -// SdaiRectangular_trimmed_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRectangular_trimmed_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiRectangular_trimmed_surface::oodb_reInit () -{ eDesc = config_control_designe_rectangular_trimmed_surface; - attributes [1].aDesc = a_297basis_surface; - attributes [2].aDesc = a_298u1; - attributes [3].aDesc = a_299u2; - attributes [4].aDesc = a_300v1; - attributes [5].aDesc = a_301v2; - attributes [6].aDesc = a_302usense; - attributes [7].aDesc = a_303vsense; -} -#endif - -SdaiRectangular_trimmed_surface::SdaiRectangular_trimmed_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBounded_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBounded_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_rectangular_trimmed_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_297basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_297basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_298u1, &_u1); -#else - a = new STEPattribute(*a_298u1, &_u1); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_299u2, &_u2); -#else - a = new STEPattribute(*a_299u2, &_u2); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_300v1, &_v1); -#else - a = new STEPattribute(*a_300v1, &_v1); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_301v2, &_v2); -#else - a = new STEPattribute(*a_301v2, &_v2); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_302usense, &_usense); -#else - a = new STEPattribute(*a_302usense, &_usense); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_303vsense, &_vsense); -#else - a = new STEPattribute(*a_303vsense, &_vsense); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiSurface_ptr -SdaiRectangular_trimmed_surface::basis_surface_() const -{ - return (SdaiSurface_ptr) _basis_surface; -} - -void -SdaiRectangular_trimmed_surface::basis_surface_ (const SdaiSurface_ptr x) - -{ - _basis_surface = x; -} - -const SdaiParameter_value -SdaiRectangular_trimmed_surface::u1_() const -{ - return (SdaiParameter_value) _u1; -} - -void -SdaiRectangular_trimmed_surface::u1_ (const SdaiParameter_value x) - -{ - _u1 = x; -} - -const SdaiParameter_value -SdaiRectangular_trimmed_surface::u2_() const -{ - return (SdaiParameter_value) _u2; -} - -void -SdaiRectangular_trimmed_surface::u2_ (const SdaiParameter_value x) - -{ - _u2 = x; -} - -const SdaiParameter_value -SdaiRectangular_trimmed_surface::v1_() const -{ - return (SdaiParameter_value) _v1; -} - -void -SdaiRectangular_trimmed_surface::v1_ (const SdaiParameter_value x) - -{ - _v1 = x; -} - -const SdaiParameter_value -SdaiRectangular_trimmed_surface::v2_() const -{ - return (SdaiParameter_value) _v2; -} - -void -SdaiRectangular_trimmed_surface::v2_ (const SdaiParameter_value x) - -{ - _v2 = x; -} - -const SCLBOOL(Bool) -SdaiRectangular_trimmed_surface::usense_() const -{ - return (SCLBOOL(Bool)) _usense; -} - -void -SdaiRectangular_trimmed_surface::usense_ (const SCLBOOL(Bool) x) - -{ - _usense.put (x); -} - -const SCLBOOL(Bool) -SdaiRectangular_trimmed_surface::vsense_() const -{ - return (SCLBOOL(Bool)) _vsense; -} - -void -SdaiRectangular_trimmed_surface::vsense_ (const SCLBOOL(Bool) x) - -{ - _vsense.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY rectangular_trimmed_surface - - -///////// ENTITY plane - -EntityDescriptor *config_control_designe_plane =0; -SdaiPlane::SdaiPlane( ) -{ - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_plane; - MakeDerived ("dim"); -} -SdaiPlane::SdaiPlane (SdaiPlane& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPlane::~SdaiPlane () { } - -#ifdef __OSTORE__ - -void -SdaiPlane::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPlane: virtual access function." << G4endl; - SdaiPlane_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPlane_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPlane: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPlane *ent = (SdaiPlane *)sent; -// SdaiPlane *ent = (SdaiPlane *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_plane; -} - -SCLP23(Application_instance_ptr) -create_SdaiPlane(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPlane::get_os_typespec()) - SdaiPlane; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPlane::get_os_typespec()) -// SdaiPlane; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPlane; -} -#endif - -#ifdef __O3DB__ -void -SdaiPlane::oodb_reInit () -{ eDesc = config_control_designe_plane; -} -#endif - -SdaiPlane::SdaiPlane (SCLP23(Application_instance) *se, int *addAttrs) : SdaiElementary_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_plane; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY plane - - -///////// ENTITY action_assignment - -EntityDescriptor *config_control_designe_action_assignment =0; -AttrDescriptor *a_304assigned_action =0; -SdaiAction_assignment::SdaiAction_assignment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_action_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_304assigned_action, (SCLP23(Application_instance_ptr) *) &_assigned_action); -#else - STEPattribute *a = new STEPattribute(*a_304assigned_action, (SCLP23(Application_instance_ptr) *) &_assigned_action); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAction_assignment::SdaiAction_assignment (SdaiAction_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAction_assignment::~SdaiAction_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiAction_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_assignment: virtual access function." << G4endl; - SdaiAction_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAction_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAction_assignment *ent = (SdaiAction_assignment *)sent; -// SdaiAction_assignment *ent = (SdaiAction_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_action_assignment; - ent->attributes[0].aDesc = a_304assigned_action; - if(ent->_assigned_action == 0) - ent->_assigned_action = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAction_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAction_assignment::get_os_typespec()) - SdaiAction_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAction_assignment::get_os_typespec()) -// SdaiAction_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAction_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiAction_assignment::oodb_reInit () -{ eDesc = config_control_designe_action_assignment; - attributes [0].aDesc = a_304assigned_action; -} -#endif - -SdaiAction_assignment::SdaiAction_assignment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_action_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_304assigned_action, (SCLP23(Application_instance_ptr) *) &_assigned_action); -#else - STEPattribute *a = new STEPattribute(*a_304assigned_action, (SCLP23(Application_instance_ptr) *) &_assigned_action); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiAction_ptr -SdaiAction_assignment::assigned_action_() const -{ - return (SdaiAction_ptr) _assigned_action; -} - -void -SdaiAction_assignment::assigned_action_ (const SdaiAction_ptr x) - -{ - _assigned_action = x; -} - -///////// END_ENTITY action_assignment - - -///////// ENTITY change - -EntityDescriptor *config_control_designe_change =0; -AttrDescriptor *a_305items =0; -SdaiChange::SdaiChange( ) -{ - - /* parent: SdaiAction_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_change; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_305items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_305items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiChange::SdaiChange (SdaiChange& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiChange::~SdaiChange () { } - -#ifdef __OSTORE__ - -void -SdaiChange::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiChange: virtual access function." << G4endl; - SdaiChange_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiChange_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiChange: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiChange *ent = (SdaiChange *)sent; -// SdaiChange *ent = (SdaiChange *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_change; - ent->attributes[1].aDesc = a_305items; -} - -SCLP23(Application_instance_ptr) -create_SdaiChange(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiChange::get_os_typespec()) - SdaiChange; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiChange::get_os_typespec()) -// SdaiChange; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiChange; -} -#endif - -#ifdef __O3DB__ -void -SdaiChange::oodb_reInit () -{ eDesc = config_control_designe_change; - attributes [1].aDesc = a_305items; -} -#endif - -SdaiChange::SdaiChange (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAction_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAction_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_change; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_305items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_305items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiWork_items_ptr -SdaiChange::items_() const -{ - return (SdaiWork_items_ptr) &_items; -} - -void -SdaiChange::items_ (const SdaiWork_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY change - - -///////// ENTITY circle - -EntityDescriptor *config_control_designe_circle =0; -AttrDescriptor *a_306radius =0; -SdaiCircle::SdaiCircle( ) -{ - - /* parent: SdaiConic */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_circle; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_306radius, &_radius); -#else - STEPattribute *a = new STEPattribute(*a_306radius, &_radius); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiCircle::SdaiCircle (SdaiCircle& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCircle::~SdaiCircle () { } - -#ifdef __OSTORE__ - -void -SdaiCircle::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCircle: virtual access function." << G4endl; - SdaiCircle_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCircle_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCircle: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCircle *ent = (SdaiCircle *)sent; -// SdaiCircle *ent = (SdaiCircle *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_circle; - ent->attributes[2].aDesc = a_306radius; -} - -SCLP23(Application_instance_ptr) -create_SdaiCircle(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCircle::get_os_typespec()) - SdaiCircle; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCircle::get_os_typespec()) -// SdaiCircle; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCircle; -} -#endif - -#ifdef __O3DB__ -void -SdaiCircle::oodb_reInit () -{ eDesc = config_control_designe_circle; - attributes [2].aDesc = a_306radius; -} -#endif - -SdaiCircle::SdaiCircle (SCLP23(Application_instance) *se, int *addAttrs) : SdaiConic(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiConic */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_circle; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_306radius, &_radius); -#else - STEPattribute *a = new STEPattribute(*a_306radius, &_radius); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiPositive_length_measure -SdaiCircle::radius_() const -{ - return (SdaiPositive_length_measure) _radius; -} - -void -SdaiCircle::radius_ (const SdaiPositive_length_measure x) - -{ - _radius = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY circle - - -///////// ENTITY line - -EntityDescriptor *config_control_designe_line =0; -AttrDescriptor *a_307pnt =0; -AttrDescriptor *a_308dir =0; -SdaiLine::SdaiLine( ) -{ - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_line; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_307pnt, (SCLP23(Application_instance_ptr) *) &_pnt); -#else - STEPattribute *a = new STEPattribute(*a_307pnt, (SCLP23(Application_instance_ptr) *) &_pnt); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_308dir, (SCLP23(Application_instance_ptr) *) &_dir); -#else - a = new STEPattribute(*a_308dir, (SCLP23(Application_instance_ptr) *) &_dir); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiLine::SdaiLine (SdaiLine& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiLine::~SdaiLine () { } - -#ifdef __OSTORE__ - -void -SdaiLine::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLine: virtual access function." << G4endl; - SdaiLine_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiLine_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLine: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiLine *ent = (SdaiLine *)sent; -// SdaiLine *ent = (SdaiLine *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_line; - ent->attributes[1].aDesc = a_307pnt; - if(ent->_pnt == 0) - ent->_pnt = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_308dir; - if(ent->_dir == 0) - ent->_dir = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiLine(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiLine::get_os_typespec()) - SdaiLine; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiLine::get_os_typespec()) -// SdaiLine; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiLine; -} -#endif - -#ifdef __O3DB__ -void -SdaiLine::oodb_reInit () -{ eDesc = config_control_designe_line; - attributes [1].aDesc = a_307pnt; - attributes [2].aDesc = a_308dir; -} -#endif - -SdaiLine::SdaiLine (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_line; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_307pnt, (SCLP23(Application_instance_ptr) *) &_pnt); -#else - STEPattribute *a = new STEPattribute(*a_307pnt, (SCLP23(Application_instance_ptr) *) &_pnt); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_308dir, (SCLP23(Application_instance_ptr) *) &_dir); -#else - a = new STEPattribute(*a_308dir, (SCLP23(Application_instance_ptr) *) &_dir); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCartesian_point_ptr -SdaiLine::pnt_() const -{ - return (SdaiCartesian_point_ptr) _pnt; -} - -void -SdaiLine::pnt_ (const SdaiCartesian_point_ptr x) - -{ - _pnt = x; -} - -const SdaiVector_ptr -SdaiLine::dir_() const -{ - return (SdaiVector_ptr) _dir; -} - -void -SdaiLine::dir_ (const SdaiVector_ptr x) - -{ - _dir = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY line - - -///////// ENTITY property_definition_representation - -EntityDescriptor *config_control_designe_property_definition_representation =0; -AttrDescriptor *a_309definition =0; -AttrDescriptor *a_310used_representation =0; -SdaiProperty_definition_representation::SdaiProperty_definition_representation( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_property_definition_representation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_309definition, (SCLP23(Application_instance_ptr) *) &_definition); -#else - STEPattribute *a = new STEPattribute(*a_309definition, (SCLP23(Application_instance_ptr) *) &_definition); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_310used_representation, (SCLP23(Application_instance_ptr) *) &_used_representation); -#else - a = new STEPattribute(*a_310used_representation, (SCLP23(Application_instance_ptr) *) &_used_representation); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProperty_definition_representation::SdaiProperty_definition_representation (SdaiProperty_definition_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProperty_definition_representation::~SdaiProperty_definition_representation () { } - -#ifdef __OSTORE__ - -void -SdaiProperty_definition_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProperty_definition_representation: virtual access function." << G4endl; - SdaiProperty_definition_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProperty_definition_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProperty_definition_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProperty_definition_representation *ent = (SdaiProperty_definition_representation *)sent; -// SdaiProperty_definition_representation *ent = (SdaiProperty_definition_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_property_definition_representation; - ent->attributes[0].aDesc = a_309definition; - if(ent->_definition == 0) - ent->_definition = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_310used_representation; - if(ent->_used_representation == 0) - ent->_used_representation = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiProperty_definition_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProperty_definition_representation::get_os_typespec()) - SdaiProperty_definition_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProperty_definition_representation::get_os_typespec()) -// SdaiProperty_definition_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProperty_definition_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiProperty_definition_representation::oodb_reInit () -{ eDesc = config_control_designe_property_definition_representation; - attributes [0].aDesc = a_309definition; - attributes [1].aDesc = a_310used_representation; -} -#endif - -SdaiProperty_definition_representation::SdaiProperty_definition_representation( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_property_definition_representation; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_309definition, (SCLP23(Application_instance_ptr) *) &_definition); -#else - STEPattribute *a = new STEPattribute(*a_309definition, (SCLP23(Application_instance_ptr) *) &_definition); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_310used_representation, (SCLP23(Application_instance_ptr) *) &_used_representation); -#else - a = new STEPattribute(*a_310used_representation, (SCLP23(Application_instance_ptr) *) &_used_representation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiProperty_definition_ptr -SdaiProperty_definition_representation::definition_() const -{ - return (SdaiProperty_definition_ptr) _definition; -} - -void -SdaiProperty_definition_representation::definition_ (const SdaiProperty_definition_ptr x) - -{ - _definition = x; -} - -const SdaiRepresentation_ptr -SdaiProperty_definition_representation::used_representation_() const -{ - return (SdaiRepresentation_ptr) _used_representation; -} - -void -SdaiProperty_definition_representation::used_representation_ (const SdaiRepresentation_ptr x) - -{ - _used_representation = x; -} - -///////// END_ENTITY property_definition_representation - - -///////// ENTITY geometric_set - -EntityDescriptor *config_control_designe_geometric_set =0; -AttrDescriptor *a_311elements =0; -SdaiGeometric_set::SdaiGeometric_set( ) -{ - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometric_set; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_311elements, &_elements); -#else - STEPattribute *a = new STEPattribute(*a_311elements, &_elements); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiGeometric_set::SdaiGeometric_set (SdaiGeometric_set& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiGeometric_set::~SdaiGeometric_set () { } - -#ifdef __OSTORE__ - -void -SdaiGeometric_set::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometric_set: virtual access function." << G4endl; - SdaiGeometric_set_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiGeometric_set_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometric_set: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiGeometric_set *ent = (SdaiGeometric_set *)sent; -// SdaiGeometric_set *ent = (SdaiGeometric_set *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_geometric_set; - ent->attributes[1].aDesc = a_311elements; -} - -SCLP23(Application_instance_ptr) -create_SdaiGeometric_set(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiGeometric_set::get_os_typespec()) - SdaiGeometric_set; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiGeometric_set::get_os_typespec()) -// SdaiGeometric_set; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiGeometric_set; -} -#endif - -#ifdef __O3DB__ -void -SdaiGeometric_set::oodb_reInit () -{ eDesc = config_control_designe_geometric_set; - attributes [1].aDesc = a_311elements; -} -#endif - -SdaiGeometric_set::SdaiGeometric_set (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometric_set; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_311elements, &_elements); -#else - STEPattribute *a = new STEPattribute(*a_311elements, &_elements); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiGeometric_set_selects_ptr -SdaiGeometric_set::elements_() const -{ - return (SdaiGeometric_set_selects_ptr) &_elements; -} - -void -SdaiGeometric_set::elements_ (const SdaiGeometric_set_selects_ptr x) - - { _elements.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY geometric_set - - -///////// ENTITY geometric_curve_set - -EntityDescriptor *config_control_designe_geometric_curve_set =0; -SdaiGeometric_curve_set::SdaiGeometric_curve_set( ) -{ - - /* parent: SdaiGeometric_set */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometric_curve_set; - MakeDerived ("dim"); -} -SdaiGeometric_curve_set::SdaiGeometric_curve_set (SdaiGeometric_curve_set& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiGeometric_curve_set::~SdaiGeometric_curve_set () { } - -#ifdef __OSTORE__ - -void -SdaiGeometric_curve_set::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometric_curve_set: virtual access function." << G4endl; - SdaiGeometric_curve_set_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiGeometric_curve_set_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometric_curve_set: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiGeometric_curve_set *ent = (SdaiGeometric_curve_set *)sent; -// SdaiGeometric_curve_set *ent = (SdaiGeometric_curve_set *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_geometric_curve_set; -} - -SCLP23(Application_instance_ptr) -create_SdaiGeometric_curve_set(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiGeometric_curve_set::get_os_typespec()) - SdaiGeometric_curve_set; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiGeometric_curve_set::get_os_typespec()) -// SdaiGeometric_curve_set; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiGeometric_curve_set; -} -#endif - -#ifdef __O3DB__ -void -SdaiGeometric_curve_set::oodb_reInit () -{ eDesc = config_control_designe_geometric_curve_set; -} -#endif - -SdaiGeometric_curve_set::SdaiGeometric_curve_set (SCLP23(Application_instance) *se, int *addAttrs) : SdaiGeometric_set(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiGeometric_set */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometric_curve_set; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY geometric_curve_set - - -///////// ENTITY personal_address - -EntityDescriptor *config_control_designe_personal_address =0; -AttrDescriptor *a_312people =0; -AttrDescriptor *a_313description =0; -SdaiPersonal_address::SdaiPersonal_address( ) -{ - - /* parent: SdaiAddress */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_personal_address; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_312people, &_people); -#else - STEPattribute *a = new STEPattribute(*a_312people, &_people); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_313description, &_description); -#else - a = new STEPattribute(*a_313description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiPersonal_address::SdaiPersonal_address (SdaiPersonal_address& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPersonal_address::~SdaiPersonal_address () { } - -#ifdef __OSTORE__ - -void -SdaiPersonal_address::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPersonal_address: virtual access function." << G4endl; - SdaiPersonal_address_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPersonal_address_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPersonal_address: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPersonal_address *ent = (SdaiPersonal_address *)sent; -// SdaiPersonal_address *ent = (SdaiPersonal_address *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_personal_address; - ent->attributes[12].aDesc = a_312people; - ent->attributes[13].aDesc = a_313description; -} - -SCLP23(Application_instance_ptr) -create_SdaiPersonal_address(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPersonal_address::get_os_typespec()) - SdaiPersonal_address; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPersonal_address::get_os_typespec()) -// SdaiPersonal_address; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPersonal_address; -} -#endif - -#ifdef __O3DB__ -void -SdaiPersonal_address::oodb_reInit () -{ eDesc = config_control_designe_personal_address; - attributes [12].aDesc = a_312people; - attributes [13].aDesc = a_313description; -} -#endif - -SdaiPersonal_address::SdaiPersonal_address (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAddress(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAddress */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_personal_address; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_312people, &_people); -#else - STEPattribute *a = new STEPattribute(*a_312people, &_people); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_313description, &_description); -#else - a = new STEPattribute(*a_313description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiPersonal_address::people_() const -{ - return (EntityAggregate_ptr) &_people; -} - -void -SdaiPersonal_address::people_ (const EntityAggregate_ptr x) - - { _people.ShallowCopy (*x); } - -const SdaiText -SdaiPersonal_address::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiPersonal_address::description_ (const SdaiText x) - -{ - _description = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY personal_address - - -///////// ENTITY document_relationship - -EntityDescriptor *config_control_designe_document_relationship =0; -AttrDescriptor *a_314name =0; -AttrDescriptor *a_315description =0; -AttrDescriptor *a_316relating_document =0; -AttrDescriptor *a_317related_document =0; -SdaiDocument_relationship::SdaiDocument_relationship( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_document_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_314name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_314name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_315description, &_description); -#else - a = new STEPattribute(*a_315description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_316relating_document, (SCLP23(Application_instance_ptr) *) &_relating_document); -#else - a = new STEPattribute(*a_316relating_document, (SCLP23(Application_instance_ptr) *) &_relating_document); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_317related_document, (SCLP23(Application_instance_ptr) *) &_related_document); -#else - a = new STEPattribute(*a_317related_document, (SCLP23(Application_instance_ptr) *) &_related_document); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDocument_relationship::SdaiDocument_relationship (SdaiDocument_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDocument_relationship::~SdaiDocument_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiDocument_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_relationship: virtual access function." << G4endl; - SdaiDocument_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDocument_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDocument_relationship *ent = (SdaiDocument_relationship *)sent; -// SdaiDocument_relationship *ent = (SdaiDocument_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_document_relationship; - ent->attributes[0].aDesc = a_314name; - ent->attributes[1].aDesc = a_315description; - ent->attributes[2].aDesc = a_316relating_document; - if(ent->_relating_document == 0) - ent->_relating_document = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_317related_document; - if(ent->_related_document == 0) - ent->_related_document = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiDocument_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDocument_relationship::get_os_typespec()) - SdaiDocument_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDocument_relationship::get_os_typespec()) -// SdaiDocument_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDocument_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiDocument_relationship::oodb_reInit () -{ eDesc = config_control_designe_document_relationship; - attributes [0].aDesc = a_314name; - attributes [1].aDesc = a_315description; - attributes [2].aDesc = a_316relating_document; - attributes [3].aDesc = a_317related_document; -} -#endif - -SdaiDocument_relationship::SdaiDocument_relationship( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_document_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_314name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_314name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_315description, &_description); -#else - a = new STEPattribute(*a_315description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_316relating_document, (SCLP23(Application_instance_ptr) *) &_relating_document); -#else - a = new STEPattribute(*a_316relating_document, (SCLP23(Application_instance_ptr) *) &_relating_document); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_317related_document, (SCLP23(Application_instance_ptr) *) &_related_document); -#else - a = new STEPattribute(*a_317related_document, (SCLP23(Application_instance_ptr) *) &_related_document); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiDocument_relationship::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiDocument_relationship::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiDocument_relationship::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiDocument_relationship::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiDocument_ptr -SdaiDocument_relationship::relating_document_() const -{ - return (SdaiDocument_ptr) _relating_document; -} - -void -SdaiDocument_relationship::relating_document_ (const SdaiDocument_ptr x) - -{ - _relating_document = x; -} - -const SdaiDocument_ptr -SdaiDocument_relationship::related_document_() const -{ - return (SdaiDocument_ptr) _related_document; -} - -void -SdaiDocument_relationship::related_document_ (const SdaiDocument_ptr x) - -{ - _related_document = x; -} - -///////// END_ENTITY document_relationship - - -///////// ENTITY pcurve - -EntityDescriptor *config_control_designe_pcurve =0; -AttrDescriptor *a_318basis_surface =0; -AttrDescriptor *a_319reference_to_curve =0; -SdaiPcurve::SdaiPcurve( ) -{ - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_pcurve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_318basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_318basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_319reference_to_curve, (SCLP23(Application_instance_ptr) *) &_reference_to_curve); -#else - a = new STEPattribute(*a_319reference_to_curve, (SCLP23(Application_instance_ptr) *) &_reference_to_curve); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiPcurve::SdaiPcurve (SdaiPcurve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPcurve::~SdaiPcurve () { } - -#ifdef __OSTORE__ - -void -SdaiPcurve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPcurve: virtual access function." << G4endl; - SdaiPcurve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPcurve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPcurve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPcurve *ent = (SdaiPcurve *)sent; -// SdaiPcurve *ent = (SdaiPcurve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_pcurve; - ent->attributes[1].aDesc = a_318basis_surface; - if(ent->_basis_surface == 0) - ent->_basis_surface = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_319reference_to_curve; - if(ent->_reference_to_curve == 0) - ent->_reference_to_curve = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiPcurve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPcurve::get_os_typespec()) - SdaiPcurve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPcurve::get_os_typespec()) -// SdaiPcurve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPcurve; -} -#endif - -#ifdef __O3DB__ -void -SdaiPcurve::oodb_reInit () -{ eDesc = config_control_designe_pcurve; - attributes [1].aDesc = a_318basis_surface; - attributes [2].aDesc = a_319reference_to_curve; -} -#endif - -SdaiPcurve::SdaiPcurve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_pcurve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_318basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_318basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_319reference_to_curve, (SCLP23(Application_instance_ptr) *) &_reference_to_curve); -#else - a = new STEPattribute(*a_319reference_to_curve, (SCLP23(Application_instance_ptr) *) &_reference_to_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiSurface_ptr -SdaiPcurve::basis_surface_() const -{ - return (SdaiSurface_ptr) _basis_surface; -} - -void -SdaiPcurve::basis_surface_ (const SdaiSurface_ptr x) - -{ - _basis_surface = x; -} - -const SdaiDefinitional_representation_ptr -SdaiPcurve::reference_to_curve_() const -{ - return (SdaiDefinitional_representation_ptr) _reference_to_curve; -} - -void -SdaiPcurve::reference_to_curve_ (const SdaiDefinitional_representation_ptr x) - -{ - _reference_to_curve = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY pcurve - - -///////// ENTITY outer_boundary_curve - -EntityDescriptor *config_control_designe_outer_boundary_curve =0; -SdaiOuter_boundary_curve::SdaiOuter_boundary_curve( ) -{ - - /* parent: SdaiBoundary_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_outer_boundary_curve; - MakeDerived ("dim"); - MakeDerived ("n_segments"); - MakeDerived ("closed_curve"); - MakeDerived ("basis_surface"); -} -SdaiOuter_boundary_curve::SdaiOuter_boundary_curve (SdaiOuter_boundary_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOuter_boundary_curve::~SdaiOuter_boundary_curve () { } - -#ifdef __OSTORE__ - -void -SdaiOuter_boundary_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOuter_boundary_curve: virtual access function." << G4endl; - SdaiOuter_boundary_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOuter_boundary_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOuter_boundary_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOuter_boundary_curve *ent = (SdaiOuter_boundary_curve *)sent; -// SdaiOuter_boundary_curve *ent = (SdaiOuter_boundary_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_outer_boundary_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiOuter_boundary_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOuter_boundary_curve::get_os_typespec()) - SdaiOuter_boundary_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOuter_boundary_curve::get_os_typespec()) -// SdaiOuter_boundary_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOuter_boundary_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiOuter_boundary_curve::oodb_reInit () -{ eDesc = config_control_designe_outer_boundary_curve; -} -#endif - -SdaiOuter_boundary_curve::SdaiOuter_boundary_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBoundary_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBoundary_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_outer_boundary_curve; - MakeDerived ("dim"); - MakeDerived ("n_segments"); - MakeDerived ("closed_curve"); - MakeDerived ("basis_surface"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY outer_boundary_curve - - -///////// ENTITY shape_representation_relationship - -EntityDescriptor *config_control_designe_shape_representation_relationship =0; -SdaiShape_representation_relationship::SdaiShape_representation_relationship( ) -{ - - /* parent: SdaiRepresentation_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shape_representation_relationship; -} -SdaiShape_representation_relationship::SdaiShape_representation_relationship (SdaiShape_representation_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiShape_representation_relationship::~SdaiShape_representation_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiShape_representation_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_representation_relationship: virtual access function." << G4endl; - SdaiShape_representation_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiShape_representation_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_representation_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiShape_representation_relationship *ent = (SdaiShape_representation_relationship *)sent; -// SdaiShape_representation_relationship *ent = (SdaiShape_representation_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_shape_representation_relationship; -} - -SCLP23(Application_instance_ptr) -create_SdaiShape_representation_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiShape_representation_relationship::get_os_typespec()) - SdaiShape_representation_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiShape_representation_relationship::get_os_typespec()) -// SdaiShape_representation_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiShape_representation_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiShape_representation_relationship::oodb_reInit () -{ eDesc = config_control_designe_shape_representation_relationship; -} -#endif - -SdaiShape_representation_relationship::SdaiShape_representation_relationship (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_relationship(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shape_representation_relationship; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY shape_representation_relationship - - -///////// ENTITY assembly_component_usage_substitute - -EntityDescriptor *config_control_designe_assembly_component_usage_substitute =0; -AttrDescriptor *a_320name =0; -AttrDescriptor *a_321description =0; -AttrDescriptor *a_322base =0; -AttrDescriptor *a_323substitute =0; -SdaiAssembly_component_usage_substitute::SdaiAssembly_component_usage_substitute( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_assembly_component_usage_substitute; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_320name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_320name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_321description, &_description); -#else - a = new STEPattribute(*a_321description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_322base, (SCLP23(Application_instance_ptr) *) &_base); -#else - a = new STEPattribute(*a_322base, (SCLP23(Application_instance_ptr) *) &_base); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_323substitute, (SCLP23(Application_instance_ptr) *) &_substitute); -#else - a = new STEPattribute(*a_323substitute, (SCLP23(Application_instance_ptr) *) &_substitute); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAssembly_component_usage_substitute::SdaiAssembly_component_usage_substitute (SdaiAssembly_component_usage_substitute& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAssembly_component_usage_substitute::~SdaiAssembly_component_usage_substitute () { } - -#ifdef __OSTORE__ - -void -SdaiAssembly_component_usage_substitute::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAssembly_component_usage_substitute: virtual access function." << G4endl; - SdaiAssembly_component_usage_substitute_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAssembly_component_usage_substitute_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAssembly_component_usage_substitute: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAssembly_component_usage_substitute *ent = (SdaiAssembly_component_usage_substitute *)sent; -// SdaiAssembly_component_usage_substitute *ent = (SdaiAssembly_component_usage_substitute *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_assembly_component_usage_substitute; - ent->attributes[0].aDesc = a_320name; - ent->attributes[1].aDesc = a_321description; - ent->attributes[2].aDesc = a_322base; - if(ent->_base == 0) - ent->_base = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_323substitute; - if(ent->_substitute == 0) - ent->_substitute = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAssembly_component_usage_substitute(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAssembly_component_usage_substitute::get_os_typespec()) - SdaiAssembly_component_usage_substitute; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAssembly_component_usage_substitute::get_os_typespec()) -// SdaiAssembly_component_usage_substitute; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAssembly_component_usage_substitute; -} -#endif - -#ifdef __O3DB__ -void -SdaiAssembly_component_usage_substitute::oodb_reInit () -{ eDesc = config_control_designe_assembly_component_usage_substitute; - attributes [0].aDesc = a_320name; - attributes [1].aDesc = a_321description; - attributes [2].aDesc = a_322base; - attributes [3].aDesc = a_323substitute; -} -#endif - -SdaiAssembly_component_usage_substitute::SdaiAssembly_component_usage_substitute( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_assembly_component_usage_substitute; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_320name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_320name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_321description, &_description); -#else - a = new STEPattribute(*a_321description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_322base, (SCLP23(Application_instance_ptr) *) &_base); -#else - a = new STEPattribute(*a_322base, (SCLP23(Application_instance_ptr) *) &_base); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_323substitute, (SCLP23(Application_instance_ptr) *) &_substitute); -#else - a = new STEPattribute(*a_323substitute, (SCLP23(Application_instance_ptr) *) &_substitute); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiAssembly_component_usage_substitute::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiAssembly_component_usage_substitute::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiAssembly_component_usage_substitute::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiAssembly_component_usage_substitute::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiAssembly_component_usage_ptr -SdaiAssembly_component_usage_substitute::base_() const -{ - return (SdaiAssembly_component_usage_ptr) _base; -} - -void -SdaiAssembly_component_usage_substitute::base_ (const SdaiAssembly_component_usage_ptr x) - -{ - _base = x; -} - -const SdaiAssembly_component_usage_ptr -SdaiAssembly_component_usage_substitute::substitute_() const -{ - return (SdaiAssembly_component_usage_ptr) _substitute; -} - -void -SdaiAssembly_component_usage_substitute::substitute_ (const SdaiAssembly_component_usage_ptr x) - -{ - _substitute = x; -} - -///////// END_ENTITY assembly_component_usage_substitute - - -///////// ENTITY degenerate_pcurve - -EntityDescriptor *config_control_designe_degenerate_pcurve =0; -AttrDescriptor *a_324basis_surface =0; -AttrDescriptor *a_325reference_to_curve =0; -SdaiDegenerate_pcurve::SdaiDegenerate_pcurve( ) -{ - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_degenerate_pcurve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_324basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_324basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_325reference_to_curve, (SCLP23(Application_instance_ptr) *) &_reference_to_curve); -#else - a = new STEPattribute(*a_325reference_to_curve, (SCLP23(Application_instance_ptr) *) &_reference_to_curve); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiDegenerate_pcurve::SdaiDegenerate_pcurve (SdaiDegenerate_pcurve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDegenerate_pcurve::~SdaiDegenerate_pcurve () { } - -#ifdef __OSTORE__ - -void -SdaiDegenerate_pcurve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDegenerate_pcurve: virtual access function." << G4endl; - SdaiDegenerate_pcurve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDegenerate_pcurve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDegenerate_pcurve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDegenerate_pcurve *ent = (SdaiDegenerate_pcurve *)sent; -// SdaiDegenerate_pcurve *ent = (SdaiDegenerate_pcurve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_degenerate_pcurve; - ent->attributes[1].aDesc = a_324basis_surface; - if(ent->_basis_surface == 0) - ent->_basis_surface = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_325reference_to_curve; - if(ent->_reference_to_curve == 0) - ent->_reference_to_curve = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiDegenerate_pcurve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDegenerate_pcurve::get_os_typespec()) - SdaiDegenerate_pcurve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDegenerate_pcurve::get_os_typespec()) -// SdaiDegenerate_pcurve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDegenerate_pcurve; -} -#endif - -#ifdef __O3DB__ -void -SdaiDegenerate_pcurve::oodb_reInit () -{ eDesc = config_control_designe_degenerate_pcurve; - attributes [1].aDesc = a_324basis_surface; - attributes [2].aDesc = a_325reference_to_curve; -} -#endif - -SdaiDegenerate_pcurve::SdaiDegenerate_pcurve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPoint(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_degenerate_pcurve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_324basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_324basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_325reference_to_curve, (SCLP23(Application_instance_ptr) *) &_reference_to_curve); -#else - a = new STEPattribute(*a_325reference_to_curve, (SCLP23(Application_instance_ptr) *) &_reference_to_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiSurface_ptr -SdaiDegenerate_pcurve::basis_surface_() const -{ - return (SdaiSurface_ptr) _basis_surface; -} - -void -SdaiDegenerate_pcurve::basis_surface_ (const SdaiSurface_ptr x) - -{ - _basis_surface = x; -} - -const SdaiDefinitional_representation_ptr -SdaiDegenerate_pcurve::reference_to_curve_() const -{ - return (SdaiDefinitional_representation_ptr) _reference_to_curve; -} - -void -SdaiDegenerate_pcurve::reference_to_curve_ (const SdaiDefinitional_representation_ptr x) - -{ - _reference_to_curve = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY degenerate_pcurve - - -///////// ENTITY evaluated_degenerate_pcurve - -EntityDescriptor *config_control_designe_evaluated_degenerate_pcurve =0; -AttrDescriptor *a_326equivalent_point =0; -SdaiEvaluated_degenerate_pcurve::SdaiEvaluated_degenerate_pcurve( ) -{ - - /* parent: SdaiDegenerate_pcurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_evaluated_degenerate_pcurve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_326equivalent_point, (SCLP23(Application_instance_ptr) *) &_equivalent_point); -#else - STEPattribute *a = new STEPattribute(*a_326equivalent_point, (SCLP23(Application_instance_ptr) *) &_equivalent_point); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiEvaluated_degenerate_pcurve::SdaiEvaluated_degenerate_pcurve (SdaiEvaluated_degenerate_pcurve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiEvaluated_degenerate_pcurve::~SdaiEvaluated_degenerate_pcurve () { } - -#ifdef __OSTORE__ - -void -SdaiEvaluated_degenerate_pcurve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEvaluated_degenerate_pcurve: virtual access function." << G4endl; - SdaiEvaluated_degenerate_pcurve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiEvaluated_degenerate_pcurve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEvaluated_degenerate_pcurve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiEvaluated_degenerate_pcurve *ent = (SdaiEvaluated_degenerate_pcurve *)sent; -// SdaiEvaluated_degenerate_pcurve *ent = (SdaiEvaluated_degenerate_pcurve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_evaluated_degenerate_pcurve; - ent->attributes[3].aDesc = a_326equivalent_point; - if(ent->_equivalent_point == 0) - ent->_equivalent_point = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiEvaluated_degenerate_pcurve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiEvaluated_degenerate_pcurve::get_os_typespec()) - SdaiEvaluated_degenerate_pcurve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiEvaluated_degenerate_pcurve::get_os_typespec()) -// SdaiEvaluated_degenerate_pcurve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiEvaluated_degenerate_pcurve; -} -#endif - -#ifdef __O3DB__ -void -SdaiEvaluated_degenerate_pcurve::oodb_reInit () -{ eDesc = config_control_designe_evaluated_degenerate_pcurve; - attributes [3].aDesc = a_326equivalent_point; -} -#endif - -SdaiEvaluated_degenerate_pcurve::SdaiEvaluated_degenerate_pcurve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiDegenerate_pcurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiDegenerate_pcurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_evaluated_degenerate_pcurve; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_326equivalent_point, (SCLP23(Application_instance_ptr) *) &_equivalent_point); -#else - STEPattribute *a = new STEPattribute(*a_326equivalent_point, (SCLP23(Application_instance_ptr) *) &_equivalent_point); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCartesian_point_ptr -SdaiEvaluated_degenerate_pcurve::equivalent_point_() const -{ - return (SdaiCartesian_point_ptr) _equivalent_point; -} - -void -SdaiEvaluated_degenerate_pcurve::equivalent_point_ (const SdaiCartesian_point_ptr x) - -{ - _equivalent_point = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY evaluated_degenerate_pcurve - - -///////// ENTITY solid_angle_measure_with_unit - -EntityDescriptor *config_control_designe_solid_angle_measure_with_unit =0; -SdaiSolid_angle_measure_with_unit::SdaiSolid_angle_measure_with_unit( ) -{ - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_solid_angle_measure_with_unit; -} -SdaiSolid_angle_measure_with_unit::SdaiSolid_angle_measure_with_unit (SdaiSolid_angle_measure_with_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSolid_angle_measure_with_unit::~SdaiSolid_angle_measure_with_unit () { } - -#ifdef __OSTORE__ - -void -SdaiSolid_angle_measure_with_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSolid_angle_measure_with_unit: virtual access function." << G4endl; - SdaiSolid_angle_measure_with_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSolid_angle_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSolid_angle_measure_with_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSolid_angle_measure_with_unit *ent = (SdaiSolid_angle_measure_with_unit *)sent; -// SdaiSolid_angle_measure_with_unit *ent = (SdaiSolid_angle_measure_with_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_solid_angle_measure_with_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiSolid_angle_measure_with_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSolid_angle_measure_with_unit::get_os_typespec()) - SdaiSolid_angle_measure_with_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSolid_angle_measure_with_unit::get_os_typespec()) -// SdaiSolid_angle_measure_with_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSolid_angle_measure_with_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiSolid_angle_measure_with_unit::oodb_reInit () -{ eDesc = config_control_designe_solid_angle_measure_with_unit; -} -#endif - -SdaiSolid_angle_measure_with_unit::SdaiSolid_angle_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiMeasure_with_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_solid_angle_measure_with_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY solid_angle_measure_with_unit - - -///////// ENTITY connected_edge_set - -EntityDescriptor *config_control_designe_connected_edge_set =0; -AttrDescriptor *a_327ces_edges =0; -SdaiConnected_edge_set::SdaiConnected_edge_set( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_connected_edge_set; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_327ces_edges, &_ces_edges); -#else - STEPattribute *a = new STEPattribute(*a_327ces_edges, &_ces_edges); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiConnected_edge_set::SdaiConnected_edge_set (SdaiConnected_edge_set& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiConnected_edge_set::~SdaiConnected_edge_set () { } - -#ifdef __OSTORE__ - -void -SdaiConnected_edge_set::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConnected_edge_set: virtual access function." << G4endl; - SdaiConnected_edge_set_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiConnected_edge_set_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConnected_edge_set: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiConnected_edge_set *ent = (SdaiConnected_edge_set *)sent; -// SdaiConnected_edge_set *ent = (SdaiConnected_edge_set *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_connected_edge_set; - ent->attributes[1].aDesc = a_327ces_edges; -} - -SCLP23(Application_instance_ptr) -create_SdaiConnected_edge_set(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiConnected_edge_set::get_os_typespec()) - SdaiConnected_edge_set; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiConnected_edge_set::get_os_typespec()) -// SdaiConnected_edge_set; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiConnected_edge_set; -} -#endif - -#ifdef __O3DB__ -void -SdaiConnected_edge_set::oodb_reInit () -{ eDesc = config_control_designe_connected_edge_set; - attributes [1].aDesc = a_327ces_edges; -} -#endif - -SdaiConnected_edge_set::SdaiConnected_edge_set (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_connected_edge_set; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_327ces_edges, &_ces_edges); -#else - STEPattribute *a = new STEPattribute(*a_327ces_edges, &_ces_edges); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiConnected_edge_set::ces_edges_() const -{ - return (EntityAggregate_ptr) &_ces_edges; -} - -void -SdaiConnected_edge_set::ces_edges_ (const EntityAggregate_ptr x) - - { _ces_edges.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY connected_edge_set - - -///////// ENTITY action - -EntityDescriptor *config_control_designe_action =0; -AttrDescriptor *a_328name =0; -AttrDescriptor *a_329description =0; -AttrDescriptor *a_330chosen_method =0; -SdaiAction::SdaiAction( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_action; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_328name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_328name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_329description, &_description); -#else - a = new STEPattribute(*a_329description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_330chosen_method, (SCLP23(Application_instance_ptr) *) &_chosen_method); -#else - a = new STEPattribute(*a_330chosen_method, (SCLP23(Application_instance_ptr) *) &_chosen_method); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiAction::SdaiAction (SdaiAction& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAction::~SdaiAction () { } - -#ifdef __OSTORE__ - -void -SdaiAction::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction: virtual access function." << G4endl; - SdaiAction_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAction_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAction: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAction *ent = (SdaiAction *)sent; -// SdaiAction *ent = (SdaiAction *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_action; - ent->attributes[0].aDesc = a_328name; - ent->attributes[1].aDesc = a_329description; - ent->attributes[2].aDesc = a_330chosen_method; - if(ent->_chosen_method == 0) - ent->_chosen_method = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAction(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAction::get_os_typespec()) - SdaiAction; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAction::get_os_typespec()) -// SdaiAction; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAction; -} -#endif - -#ifdef __O3DB__ -void -SdaiAction::oodb_reInit () -{ eDesc = config_control_designe_action; - attributes [0].aDesc = a_328name; - attributes [1].aDesc = a_329description; - attributes [2].aDesc = a_330chosen_method; -} -#endif - -SdaiAction::SdaiAction( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_action; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_328name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_328name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_329description, &_description); -#else - a = new STEPattribute(*a_329description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_330chosen_method, (SCLP23(Application_instance_ptr) *) &_chosen_method); -#else - a = new STEPattribute(*a_330chosen_method, (SCLP23(Application_instance_ptr) *) &_chosen_method); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiAction::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiAction::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiAction::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiAction::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiAction_method_ptr -SdaiAction::chosen_method_() const -{ - return (SdaiAction_method_ptr) _chosen_method; -} - -void -SdaiAction::chosen_method_ (const SdaiAction_method_ptr x) - -{ - _chosen_method = x; -} - -///////// END_ENTITY action - - -///////// ENTITY executed_action - -EntityDescriptor *config_control_designe_executed_action =0; -SdaiExecuted_action::SdaiExecuted_action( ) -{ - - /* parent: SdaiAction */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_executed_action; -} -SdaiExecuted_action::SdaiExecuted_action (SdaiExecuted_action& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiExecuted_action::~SdaiExecuted_action () { } - -#ifdef __OSTORE__ - -void -SdaiExecuted_action::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiExecuted_action: virtual access function." << G4endl; - SdaiExecuted_action_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiExecuted_action_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiExecuted_action: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiExecuted_action *ent = (SdaiExecuted_action *)sent; -// SdaiExecuted_action *ent = (SdaiExecuted_action *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_executed_action; -} - -SCLP23(Application_instance_ptr) -create_SdaiExecuted_action(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiExecuted_action::get_os_typespec()) - SdaiExecuted_action; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiExecuted_action::get_os_typespec()) -// SdaiExecuted_action; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiExecuted_action; -} -#endif - -#ifdef __O3DB__ -void -SdaiExecuted_action::oodb_reInit () -{ eDesc = config_control_designe_executed_action; -} -#endif - -SdaiExecuted_action::SdaiExecuted_action (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAction(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAction */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_executed_action; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY executed_action - - -///////// ENTITY directed_action - -EntityDescriptor *config_control_designe_directed_action =0; -AttrDescriptor *a_331directive =0; -SdaiDirected_action::SdaiDirected_action( ) -{ - - /* parent: SdaiExecuted_action */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_directed_action; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_331directive, (SCLP23(Application_instance_ptr) *) &_directive); -#else - STEPattribute *a = new STEPattribute(*a_331directive, (SCLP23(Application_instance_ptr) *) &_directive); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDirected_action::SdaiDirected_action (SdaiDirected_action& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDirected_action::~SdaiDirected_action () { } - -#ifdef __OSTORE__ - -void -SdaiDirected_action::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDirected_action: virtual access function." << G4endl; - SdaiDirected_action_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDirected_action_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDirected_action: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDirected_action *ent = (SdaiDirected_action *)sent; -// SdaiDirected_action *ent = (SdaiDirected_action *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_directed_action; - ent->attributes[3].aDesc = a_331directive; - if(ent->_directive == 0) - ent->_directive = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiDirected_action(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDirected_action::get_os_typespec()) - SdaiDirected_action; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDirected_action::get_os_typespec()) -// SdaiDirected_action; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDirected_action; -} -#endif - -#ifdef __O3DB__ -void -SdaiDirected_action::oodb_reInit () -{ eDesc = config_control_designe_directed_action; - attributes [3].aDesc = a_331directive; -} -#endif - -SdaiDirected_action::SdaiDirected_action (SCLP23(Application_instance) *se, int *addAttrs) : SdaiExecuted_action(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiExecuted_action */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_directed_action; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_331directive, (SCLP23(Application_instance_ptr) *) &_directive); -#else - STEPattribute *a = new STEPattribute(*a_331directive, (SCLP23(Application_instance_ptr) *) &_directive); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiAction_directive_ptr -SdaiDirected_action::directive_() const -{ - return (SdaiAction_directive_ptr) _directive; -} - -void -SdaiDirected_action::directive_ (const SdaiAction_directive_ptr x) - -{ - _directive = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY directed_action - - -///////// ENTITY organizational_project - -EntityDescriptor *config_control_designe_organizational_project =0; -AttrDescriptor *a_332name =0; -AttrDescriptor *a_333description =0; -AttrDescriptor *a_334responsible_organizations =0; -SdaiOrganizational_project::SdaiOrganizational_project( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_organizational_project; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_332name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_332name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_333description, &_description); -#else - a = new STEPattribute(*a_333description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_334responsible_organizations, &_responsible_organizations); -#else - a = new STEPattribute(*a_334responsible_organizations, &_responsible_organizations); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiOrganizational_project::SdaiOrganizational_project (SdaiOrganizational_project& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOrganizational_project::~SdaiOrganizational_project () { } - -#ifdef __OSTORE__ - -void -SdaiOrganizational_project::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrganizational_project: virtual access function." << G4endl; - SdaiOrganizational_project_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOrganizational_project_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrganizational_project: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOrganizational_project *ent = (SdaiOrganizational_project *)sent; -// SdaiOrganizational_project *ent = (SdaiOrganizational_project *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_organizational_project; - ent->attributes[0].aDesc = a_332name; - ent->attributes[1].aDesc = a_333description; - ent->attributes[2].aDesc = a_334responsible_organizations; -} - -SCLP23(Application_instance_ptr) -create_SdaiOrganizational_project(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOrganizational_project::get_os_typespec()) - SdaiOrganizational_project; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOrganizational_project::get_os_typespec()) -// SdaiOrganizational_project; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOrganizational_project; -} -#endif - -#ifdef __O3DB__ -void -SdaiOrganizational_project::oodb_reInit () -{ eDesc = config_control_designe_organizational_project; - attributes [0].aDesc = a_332name; - attributes [1].aDesc = a_333description; - attributes [2].aDesc = a_334responsible_organizations; -} -#endif - -SdaiOrganizational_project::SdaiOrganizational_project( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_organizational_project; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_332name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_332name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_333description, &_description); -#else - a = new STEPattribute(*a_333description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_334responsible_organizations, &_responsible_organizations); -#else - a = new STEPattribute(*a_334responsible_organizations, &_responsible_organizations); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiOrganizational_project::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiOrganizational_project::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiOrganizational_project::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiOrganizational_project::description_ (const SdaiText x) - -{ - _description = x; -} - -const EntityAggregate_ptr -SdaiOrganizational_project::responsible_organizations_() const -{ - return (EntityAggregate_ptr) &_responsible_organizations; -} - -void -SdaiOrganizational_project::responsible_organizations_ (const EntityAggregate_ptr x) - - { _responsible_organizations.ShallowCopy (*x); } - -///////// END_ENTITY organizational_project - - -///////// ENTITY date_time_role - -EntityDescriptor *config_control_designe_date_time_role =0; -AttrDescriptor *a_335name =0; -SdaiDate_time_role::SdaiDate_time_role( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_date_time_role; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_335name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_335name, &_name); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDate_time_role::SdaiDate_time_role (SdaiDate_time_role& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDate_time_role::~SdaiDate_time_role () { } - -#ifdef __OSTORE__ - -void -SdaiDate_time_role::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDate_time_role: virtual access function." << G4endl; - SdaiDate_time_role_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDate_time_role_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDate_time_role: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDate_time_role *ent = (SdaiDate_time_role *)sent; -// SdaiDate_time_role *ent = (SdaiDate_time_role *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_date_time_role; - ent->attributes[0].aDesc = a_335name; -} - -SCLP23(Application_instance_ptr) -create_SdaiDate_time_role(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDate_time_role::get_os_typespec()) - SdaiDate_time_role; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDate_time_role::get_os_typespec()) -// SdaiDate_time_role; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDate_time_role; -} -#endif - -#ifdef __O3DB__ -void -SdaiDate_time_role::oodb_reInit () -{ eDesc = config_control_designe_date_time_role; - attributes [0].aDesc = a_335name; -} -#endif - -SdaiDate_time_role::SdaiDate_time_role( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_date_time_role; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_335name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_335name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiDate_time_role::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiDate_time_role::name_ (const SdaiLabel x) - -{ - _name = x; -} - -///////// END_ENTITY date_time_role - - -///////// ENTITY curve_bounded_surface - -EntityDescriptor *config_control_designe_curve_bounded_surface =0; -AttrDescriptor *a_336basis_surface =0; -AttrDescriptor *a_337boundaries =0; -AttrDescriptor *a_338implicit_outer =0; -SdaiCurve_bounded_surface::SdaiCurve_bounded_surface( ) -{ - - /* parent: SdaiBounded_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_curve_bounded_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_336basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_336basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_337boundaries, &_boundaries); -#else - a = new STEPattribute(*a_337boundaries, &_boundaries); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_338implicit_outer, &_implicit_outer); -#else - a = new STEPattribute(*a_338implicit_outer, &_implicit_outer); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiCurve_bounded_surface::SdaiCurve_bounded_surface (SdaiCurve_bounded_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCurve_bounded_surface::~SdaiCurve_bounded_surface () { } - -#ifdef __OSTORE__ - -void -SdaiCurve_bounded_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCurve_bounded_surface: virtual access function." << G4endl; - SdaiCurve_bounded_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCurve_bounded_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCurve_bounded_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCurve_bounded_surface *ent = (SdaiCurve_bounded_surface *)sent; -// SdaiCurve_bounded_surface *ent = (SdaiCurve_bounded_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_curve_bounded_surface; - ent->attributes[1].aDesc = a_336basis_surface; - if(ent->_basis_surface == 0) - ent->_basis_surface = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_337boundaries; - ent->attributes[3].aDesc = a_338implicit_outer; -} - -SCLP23(Application_instance_ptr) -create_SdaiCurve_bounded_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCurve_bounded_surface::get_os_typespec()) - SdaiCurve_bounded_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCurve_bounded_surface::get_os_typespec()) -// SdaiCurve_bounded_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCurve_bounded_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiCurve_bounded_surface::oodb_reInit () -{ eDesc = config_control_designe_curve_bounded_surface; - attributes [1].aDesc = a_336basis_surface; - attributes [2].aDesc = a_337boundaries; - attributes [3].aDesc = a_338implicit_outer; -} -#endif - -SdaiCurve_bounded_surface::SdaiCurve_bounded_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBounded_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBounded_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_curve_bounded_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_336basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#else - STEPattribute *a = new STEPattribute(*a_336basis_surface, (SCLP23(Application_instance_ptr) *) &_basis_surface); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_337boundaries, &_boundaries); -#else - a = new STEPattribute(*a_337boundaries, &_boundaries); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_338implicit_outer, &_implicit_outer); -#else - a = new STEPattribute(*a_338implicit_outer, &_implicit_outer); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiSurface_ptr -SdaiCurve_bounded_surface::basis_surface_() const -{ - return (SdaiSurface_ptr) _basis_surface; -} - -void -SdaiCurve_bounded_surface::basis_surface_ (const SdaiSurface_ptr x) - -{ - _basis_surface = x; -} - -const EntityAggregate_ptr -SdaiCurve_bounded_surface::boundaries_() const -{ - return (EntityAggregate_ptr) &_boundaries; -} - -void -SdaiCurve_bounded_surface::boundaries_ (const EntityAggregate_ptr x) - - { _boundaries.ShallowCopy (*x); } - -const SCLBOOL(Bool) -SdaiCurve_bounded_surface::implicit_outer_() const -{ - return (SCLBOOL(Bool)) _implicit_outer; -} - -void -SdaiCurve_bounded_surface::implicit_outer_ (const SCLBOOL(Bool) x) - -{ - _implicit_outer.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY curve_bounded_surface - - -///////// ENTITY closed_shell - -EntityDescriptor *config_control_designe_closed_shell =0; -SdaiClosed_shell::SdaiClosed_shell( ) -{ - - /* parent: SdaiConnected_face_set */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_closed_shell; -} -SdaiClosed_shell::SdaiClosed_shell (SdaiClosed_shell& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiClosed_shell::~SdaiClosed_shell () { } - -#ifdef __OSTORE__ - -void -SdaiClosed_shell::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiClosed_shell: virtual access function." << G4endl; - SdaiClosed_shell_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiClosed_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiClosed_shell: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiClosed_shell *ent = (SdaiClosed_shell *)sent; -// SdaiClosed_shell *ent = (SdaiClosed_shell *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_closed_shell; -} - -SCLP23(Application_instance_ptr) -create_SdaiClosed_shell(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiClosed_shell::get_os_typespec()) - SdaiClosed_shell; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiClosed_shell::get_os_typespec()) -// SdaiClosed_shell; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiClosed_shell; -} -#endif - -#ifdef __O3DB__ -void -SdaiClosed_shell::oodb_reInit () -{ eDesc = config_control_designe_closed_shell; -} -#endif - -SdaiClosed_shell::SdaiClosed_shell (SCLP23(Application_instance) *se, int *addAttrs) : SdaiConnected_face_set(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiConnected_face_set */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_closed_shell; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY closed_shell - - -///////// ENTITY design_make_from_relationship - -EntityDescriptor *config_control_designe_design_make_from_relationship =0; -SdaiDesign_make_from_relationship::SdaiDesign_make_from_relationship( ) -{ - - /* parent: SdaiProduct_definition_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_design_make_from_relationship; -} -SdaiDesign_make_from_relationship::SdaiDesign_make_from_relationship (SdaiDesign_make_from_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDesign_make_from_relationship::~SdaiDesign_make_from_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiDesign_make_from_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDesign_make_from_relationship: virtual access function." << G4endl; - SdaiDesign_make_from_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDesign_make_from_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDesign_make_from_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDesign_make_from_relationship *ent = (SdaiDesign_make_from_relationship *)sent; -// SdaiDesign_make_from_relationship *ent = (SdaiDesign_make_from_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_design_make_from_relationship; -} - -SCLP23(Application_instance_ptr) -create_SdaiDesign_make_from_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDesign_make_from_relationship::get_os_typespec()) - SdaiDesign_make_from_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDesign_make_from_relationship::get_os_typespec()) -// SdaiDesign_make_from_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDesign_make_from_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiDesign_make_from_relationship::oodb_reInit () -{ eDesc = config_control_designe_design_make_from_relationship; -} -#endif - -SdaiDesign_make_from_relationship::SdaiDesign_make_from_relationship (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_definition_relationship(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_definition_relationship */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_design_make_from_relationship; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY design_make_from_relationship - - -///////// ENTITY definitional_representation - -EntityDescriptor *config_control_designe_definitional_representation =0; -SdaiDefinitional_representation::SdaiDefinitional_representation( ) -{ - - /* parent: SdaiRepresentation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_definitional_representation; -} -SdaiDefinitional_representation::SdaiDefinitional_representation (SdaiDefinitional_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDefinitional_representation::~SdaiDefinitional_representation () { } - -#ifdef __OSTORE__ - -void -SdaiDefinitional_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDefinitional_representation: virtual access function." << G4endl; - SdaiDefinitional_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDefinitional_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDefinitional_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDefinitional_representation *ent = (SdaiDefinitional_representation *)sent; -// SdaiDefinitional_representation *ent = (SdaiDefinitional_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_definitional_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiDefinitional_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDefinitional_representation::get_os_typespec()) - SdaiDefinitional_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDefinitional_representation::get_os_typespec()) -// SdaiDefinitional_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDefinitional_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiDefinitional_representation::oodb_reInit () -{ eDesc = config_control_designe_definitional_representation; -} -#endif - -SdaiDefinitional_representation::SdaiDefinitional_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_definitional_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY definitional_representation - - -///////// ENTITY product_definition_shape - -EntityDescriptor *config_control_designe_product_definition_shape =0; -SdaiProduct_definition_shape::SdaiProduct_definition_shape( ) -{ - - /* parent: SdaiProperty_definition */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_shape; -} -SdaiProduct_definition_shape::SdaiProduct_definition_shape (SdaiProduct_definition_shape& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition_shape::~SdaiProduct_definition_shape () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition_shape::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_shape: virtual access function." << G4endl; - SdaiProduct_definition_shape_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_shape_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_shape: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition_shape *ent = (SdaiProduct_definition_shape *)sent; -// SdaiProduct_definition_shape *ent = (SdaiProduct_definition_shape *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition_shape; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_shape(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition_shape::get_os_typespec()) - SdaiProduct_definition_shape; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition_shape::get_os_typespec()) -// SdaiProduct_definition_shape; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_shape; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition_shape::oodb_reInit () -{ eDesc = config_control_designe_product_definition_shape; -} -#endif - -SdaiProduct_definition_shape::SdaiProduct_definition_shape (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProperty_definition(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProperty_definition */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_shape; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_definition_shape - - -///////// ENTITY si_unit - -EntityDescriptor *config_control_designe_si_unit =0; -AttrDescriptor *a_339prefix =0; -AttrDescriptor *a_340name =0; -Derived_attribute *a_341Dnamed_unit_dimensions =0; -SdaiSi_unit::SdaiSi_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_si_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_339prefix, &_prefix); -#else - STEPattribute *a = new STEPattribute(*a_339prefix, &_prefix); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_340name, &_name); -#else - a = new STEPattribute(*a_340name, &_name); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dimensions"); -} -SdaiSi_unit::SdaiSi_unit (SdaiSi_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSi_unit::~SdaiSi_unit () { } - -#ifdef __OSTORE__ - -void -SdaiSi_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSi_unit: virtual access function." << G4endl; - SdaiSi_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSi_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSi_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSi_unit *ent = (SdaiSi_unit *)sent; -// SdaiSi_unit *ent = (SdaiSi_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_si_unit; - ent->attributes[1].aDesc = a_339prefix; - ent->attributes[2].aDesc = a_340name; -} - -SCLP23(Application_instance_ptr) -create_SdaiSi_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSi_unit::get_os_typespec()) - SdaiSi_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSi_unit::get_os_typespec()) -// SdaiSi_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSi_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiSi_unit::oodb_reInit () -{ eDesc = config_control_designe_si_unit; - attributes [1].aDesc = a_339prefix; - attributes [2].aDesc = a_340name; -} -#endif - -SdaiSi_unit::SdaiSi_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_si_unit; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_339prefix, &_prefix); -#else - STEPattribute *a = new STEPattribute(*a_339prefix, &_prefix); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_340name, &_name); -#else - a = new STEPattribute(*a_340name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dimensions"); -} - -const SdaiSi_prefix_var -SdaiSi_unit::prefix_() const -{ - return (Si_prefix) _prefix; -} - -void -SdaiSi_unit::prefix_ (const SdaiSi_prefix_var x) - -{ - _prefix.put (x); -} - -const SdaiSi_unit_name_var -SdaiSi_unit::name_() const -{ - return (Si_unit_name) _name; -} - -void -SdaiSi_unit::name_ (const SdaiSi_unit_name_var x) - -{ - _name.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY si_unit - - -///////// ENTITY bezier_surface - -EntityDescriptor *config_control_designe_bezier_surface =0; -SdaiBezier_surface::SdaiBezier_surface( ) -{ - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_bezier_surface; - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); -} -SdaiBezier_surface::SdaiBezier_surface (SdaiBezier_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiBezier_surface::~SdaiBezier_surface () { } - -#ifdef __OSTORE__ - -void -SdaiBezier_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBezier_surface: virtual access function." << G4endl; - SdaiBezier_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiBezier_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiBezier_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiBezier_surface *ent = (SdaiBezier_surface *)sent; -// SdaiBezier_surface *ent = (SdaiBezier_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_bezier_surface; -} - -SCLP23(Application_instance_ptr) -create_SdaiBezier_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiBezier_surface::get_os_typespec()) - SdaiBezier_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiBezier_surface::get_os_typespec()) -// SdaiBezier_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiBezier_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiBezier_surface::oodb_reInit () -{ eDesc = config_control_designe_bezier_surface; -} -#endif - -SdaiBezier_surface::SdaiBezier_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_bezier_surface; - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY bezier_surface - - -///////// ENTITY certification_assignment - -EntityDescriptor *config_control_designe_certification_assignment =0; -AttrDescriptor *a_342assigned_certification =0; -SdaiCertification_assignment::SdaiCertification_assignment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_certification_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_342assigned_certification, (SCLP23(Application_instance_ptr) *) &_assigned_certification); -#else - STEPattribute *a = new STEPattribute(*a_342assigned_certification, (SCLP23(Application_instance_ptr) *) &_assigned_certification); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCertification_assignment::SdaiCertification_assignment (SdaiCertification_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCertification_assignment::~SdaiCertification_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiCertification_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCertification_assignment: virtual access function." << G4endl; - SdaiCertification_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCertification_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCertification_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCertification_assignment *ent = (SdaiCertification_assignment *)sent; -// SdaiCertification_assignment *ent = (SdaiCertification_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_certification_assignment; - ent->attributes[0].aDesc = a_342assigned_certification; - if(ent->_assigned_certification == 0) - ent->_assigned_certification = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiCertification_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCertification_assignment::get_os_typespec()) - SdaiCertification_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCertification_assignment::get_os_typespec()) -// SdaiCertification_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCertification_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiCertification_assignment::oodb_reInit () -{ eDesc = config_control_designe_certification_assignment; - attributes [0].aDesc = a_342assigned_certification; -} -#endif - -SdaiCertification_assignment::SdaiCertification_assignment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_certification_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_342assigned_certification, (SCLP23(Application_instance_ptr) *) &_assigned_certification); -#else - STEPattribute *a = new STEPattribute(*a_342assigned_certification, (SCLP23(Application_instance_ptr) *) &_assigned_certification); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiCertification_ptr -SdaiCertification_assignment::assigned_certification_() const -{ - return (SdaiCertification_ptr) _assigned_certification; -} - -void -SdaiCertification_assignment::assigned_certification_ (const SdaiCertification_ptr x) - -{ - _assigned_certification = x; -} - -///////// END_ENTITY certification_assignment - - -///////// ENTITY start_work - -EntityDescriptor *config_control_designe_start_work =0; -AttrDescriptor *a_343items =0; -SdaiStart_work::SdaiStart_work( ) -{ - - /* parent: SdaiAction_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_start_work; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_343items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_343items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiStart_work::SdaiStart_work (SdaiStart_work& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiStart_work::~SdaiStart_work () { } - -#ifdef __OSTORE__ - -void -SdaiStart_work::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiStart_work: virtual access function." << G4endl; - SdaiStart_work_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiStart_work_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiStart_work: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiStart_work *ent = (SdaiStart_work *)sent; -// SdaiStart_work *ent = (SdaiStart_work *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_start_work; - ent->attributes[1].aDesc = a_343items; -} - -SCLP23(Application_instance_ptr) -create_SdaiStart_work(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiStart_work::get_os_typespec()) - SdaiStart_work; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiStart_work::get_os_typespec()) -// SdaiStart_work; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiStart_work; -} -#endif - -#ifdef __O3DB__ -void -SdaiStart_work::oodb_reInit () -{ eDesc = config_control_designe_start_work; - attributes [1].aDesc = a_343items; -} -#endif - -SdaiStart_work::SdaiStart_work (SCLP23(Application_instance) *se, int *addAttrs) : SdaiAction_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiAction_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_start_work; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_343items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_343items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiWork_items_ptr -SdaiStart_work::items_() const -{ - return (SdaiWork_items_ptr) &_items; -} - -void -SdaiStart_work::items_ (const SdaiWork_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY start_work - - -///////// ENTITY contract_type - -EntityDescriptor *config_control_designe_contract_type =0; -AttrDescriptor *a_344description =0; -SdaiContract_type::SdaiContract_type( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_contract_type; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_344description, &_description); -#else - STEPattribute *a = new STEPattribute(*a_344description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiContract_type::SdaiContract_type (SdaiContract_type& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiContract_type::~SdaiContract_type () { } - -#ifdef __OSTORE__ - -void -SdaiContract_type::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContract_type: virtual access function." << G4endl; - SdaiContract_type_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiContract_type_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiContract_type: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiContract_type *ent = (SdaiContract_type *)sent; -// SdaiContract_type *ent = (SdaiContract_type *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_contract_type; - ent->attributes[0].aDesc = a_344description; -} - -SCLP23(Application_instance_ptr) -create_SdaiContract_type(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiContract_type::get_os_typespec()) - SdaiContract_type; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiContract_type::get_os_typespec()) -// SdaiContract_type; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiContract_type; -} -#endif - -#ifdef __O3DB__ -void -SdaiContract_type::oodb_reInit () -{ eDesc = config_control_designe_contract_type; - attributes [0].aDesc = a_344description; -} -#endif - -SdaiContract_type::SdaiContract_type( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_contract_type; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_344description, &_description); -#else - STEPattribute *a = new STEPattribute(*a_344description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiContract_type::description_() const -{ - return (SdaiLabel) _description; -} - -void -SdaiContract_type::description_ (const SdaiLabel x) - -{ - _description = x; -} - -///////// END_ENTITY contract_type - - -///////// ENTITY b_spline_curve_with_knots - -EntityDescriptor *config_control_designe_b_spline_curve_with_knots =0; -AttrDescriptor *a_345knot_multiplicities =0; -AttrDescriptor *a_346knots =0; -AttrDescriptor *a_347knot_spec =0; -Derived_attribute *a_348Dupper_index_on_knots =0; -SdaiB_spline_curve_with_knots::SdaiB_spline_curve_with_knots( ) -{ - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_b_spline_curve_with_knots; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_345knot_multiplicities, &_knot_multiplicities); -#else - STEPattribute *a = new STEPattribute(*a_345knot_multiplicities, &_knot_multiplicities); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_346knots, &_knots); -#else - a = new STEPattribute(*a_346knots, &_knots); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_347knot_spec, &_knot_spec); -#else - a = new STEPattribute(*a_347knot_spec, &_knot_spec); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); - MakeDerived ("upper_index_on_knots"); -} -SdaiB_spline_curve_with_knots::SdaiB_spline_curve_with_knots (SdaiB_spline_curve_with_knots& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiB_spline_curve_with_knots::~SdaiB_spline_curve_with_knots () { } - -#ifdef __OSTORE__ - -void -SdaiB_spline_curve_with_knots::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_curve_with_knots: virtual access function." << G4endl; - SdaiB_spline_curve_with_knots_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiB_spline_curve_with_knots_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_curve_with_knots: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiB_spline_curve_with_knots *ent = (SdaiB_spline_curve_with_knots *)sent; -// SdaiB_spline_curve_with_knots *ent = (SdaiB_spline_curve_with_knots *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_b_spline_curve_with_knots; - ent->attributes[6].aDesc = a_345knot_multiplicities; - ent->attributes[7].aDesc = a_346knots; - ent->attributes[8].aDesc = a_347knot_spec; -} - -SCLP23(Application_instance_ptr) -create_SdaiB_spline_curve_with_knots(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiB_spline_curve_with_knots::get_os_typespec()) - SdaiB_spline_curve_with_knots; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiB_spline_curve_with_knots::get_os_typespec()) -// SdaiB_spline_curve_with_knots; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiB_spline_curve_with_knots; -} -#endif - -#ifdef __O3DB__ -void -SdaiB_spline_curve_with_knots::oodb_reInit () -{ eDesc = config_control_designe_b_spline_curve_with_knots; - attributes [6].aDesc = a_345knot_multiplicities; - attributes [7].aDesc = a_346knots; - attributes [8].aDesc = a_347knot_spec; -} -#endif - -SdaiB_spline_curve_with_knots::SdaiB_spline_curve_with_knots (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_b_spline_curve_with_knots; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_345knot_multiplicities, &_knot_multiplicities); -#else - STEPattribute *a = new STEPattribute(*a_345knot_multiplicities, &_knot_multiplicities); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_346knots, &_knots); -#else - a = new STEPattribute(*a_346knots, &_knots); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_347knot_spec, &_knot_spec); -#else - a = new STEPattribute(*a_347knot_spec, &_knot_spec); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("upper_index_on_control_points"); - MakeDerived ("control_points"); - MakeDerived ("upper_index_on_knots"); -} - -const IntAggregate_ptr -SdaiB_spline_curve_with_knots::knot_multiplicities_() const -{ - return (IntAggregate_ptr) &_knot_multiplicities; -} - -void -SdaiB_spline_curve_with_knots::knot_multiplicities_ (const IntAggregate_ptr x) - - { _knot_multiplicities.ShallowCopy (*x); } - -const RealAggregate_ptr -SdaiB_spline_curve_with_knots::knots_() const -{ - return (RealAggregate_ptr) &_knots; -} - -void -SdaiB_spline_curve_with_knots::knots_ (const RealAggregate_ptr x) - - { _knots.ShallowCopy (*x); } - -const SdaiKnot_type_var -SdaiB_spline_curve_with_knots::knot_spec_() const -{ - return (Knot_type) _knot_spec; -} - -void -SdaiB_spline_curve_with_knots::knot_spec_ (const SdaiKnot_type_var x) - -{ - _knot_spec.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY b_spline_curve_with_knots - - -///////// ENTITY cc_design_approval - -EntityDescriptor *config_control_designe_cc_design_approval =0; -AttrDescriptor *a_349items =0; -SdaiCc_design_approval::SdaiCc_design_approval( ) -{ - - /* parent: SdaiApproval_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_approval; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_349items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_349items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCc_design_approval::SdaiCc_design_approval (SdaiCc_design_approval& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCc_design_approval::~SdaiCc_design_approval () { } - -#ifdef __OSTORE__ - -void -SdaiCc_design_approval::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_approval: virtual access function." << G4endl; - SdaiCc_design_approval_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCc_design_approval_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_approval: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCc_design_approval *ent = (SdaiCc_design_approval *)sent; -// SdaiCc_design_approval *ent = (SdaiCc_design_approval *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cc_design_approval; - ent->attributes[1].aDesc = a_349items; -} - -SCLP23(Application_instance_ptr) -create_SdaiCc_design_approval(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCc_design_approval::get_os_typespec()) - SdaiCc_design_approval; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCc_design_approval::get_os_typespec()) -// SdaiCc_design_approval; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCc_design_approval; -} -#endif - -#ifdef __O3DB__ -void -SdaiCc_design_approval::oodb_reInit () -{ eDesc = config_control_designe_cc_design_approval; - attributes [1].aDesc = a_349items; -} -#endif - -SdaiCc_design_approval::SdaiCc_design_approval (SCLP23(Application_instance) *se, int *addAttrs) : SdaiApproval_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiApproval_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_approval; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_349items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_349items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiApproved_items_ptr -SdaiCc_design_approval::items_() const -{ - return (SdaiApproved_items_ptr) &_items; -} - -void -SdaiCc_design_approval::items_ (const SdaiApproved_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cc_design_approval - - -///////// ENTITY edge_based_wireframe_shape_representation - -EntityDescriptor *config_control_designe_edge_based_wireframe_shape_representation =0; -SdaiEdge_based_wireframe_shape_representation::SdaiEdge_based_wireframe_shape_representation( ) -{ - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_edge_based_wireframe_shape_representation; -} -SdaiEdge_based_wireframe_shape_representation::SdaiEdge_based_wireframe_shape_representation (SdaiEdge_based_wireframe_shape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiEdge_based_wireframe_shape_representation::~SdaiEdge_based_wireframe_shape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiEdge_based_wireframe_shape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge_based_wireframe_shape_representation: virtual access function." << G4endl; - SdaiEdge_based_wireframe_shape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiEdge_based_wireframe_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiEdge_based_wireframe_shape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiEdge_based_wireframe_shape_representation *ent = (SdaiEdge_based_wireframe_shape_representation *)sent; -// SdaiEdge_based_wireframe_shape_representation *ent = (SdaiEdge_based_wireframe_shape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_edge_based_wireframe_shape_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiEdge_based_wireframe_shape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiEdge_based_wireframe_shape_representation::get_os_typespec()) - SdaiEdge_based_wireframe_shape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiEdge_based_wireframe_shape_representation::get_os_typespec()) -// SdaiEdge_based_wireframe_shape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiEdge_based_wireframe_shape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiEdge_based_wireframe_shape_representation::oodb_reInit () -{ eDesc = config_control_designe_edge_based_wireframe_shape_representation; -} -#endif - -SdaiEdge_based_wireframe_shape_representation::SdaiEdge_based_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiShape_representation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_edge_based_wireframe_shape_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY edge_based_wireframe_shape_representation - - -///////// ENTITY geometrically_bounded_wireframe_shape_representation - -EntityDescriptor *config_control_designe_geometrically_bounded_wireframe_shape_representation =0; -SdaiGeometrically_bounded_wireframe_shape_representation::SdaiGeometrically_bounded_wireframe_shape_representation( ) -{ - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometrically_bounded_wireframe_shape_representation; -} -SdaiGeometrically_bounded_wireframe_shape_representation::SdaiGeometrically_bounded_wireframe_shape_representation (SdaiGeometrically_bounded_wireframe_shape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiGeometrically_bounded_wireframe_shape_representation::~SdaiGeometrically_bounded_wireframe_shape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiGeometrically_bounded_wireframe_shape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometrically_bounded_wireframe_shape_representation: virtual access function." << G4endl; - SdaiGeometrically_bounded_wireframe_shape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiGeometrically_bounded_wireframe_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGeometrically_bounded_wireframe_shape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiGeometrically_bounded_wireframe_shape_representation *ent = (SdaiGeometrically_bounded_wireframe_shape_representation *)sent; -// SdaiGeometrically_bounded_wireframe_shape_representation *ent = (SdaiGeometrically_bounded_wireframe_shape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_geometrically_bounded_wireframe_shape_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiGeometrically_bounded_wireframe_shape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiGeometrically_bounded_wireframe_shape_representation::get_os_typespec()) - SdaiGeometrically_bounded_wireframe_shape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiGeometrically_bounded_wireframe_shape_representation::get_os_typespec()) -// SdaiGeometrically_bounded_wireframe_shape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiGeometrically_bounded_wireframe_shape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiGeometrically_bounded_wireframe_shape_representation::oodb_reInit () -{ eDesc = config_control_designe_geometrically_bounded_wireframe_shape_representation; -} -#endif - -SdaiGeometrically_bounded_wireframe_shape_representation::SdaiGeometrically_bounded_wireframe_shape_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiShape_representation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_geometrically_bounded_wireframe_shape_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY geometrically_bounded_wireframe_shape_representation - - -///////// ENTITY product_concept - -EntityDescriptor *config_control_designe_product_concept =0; -AttrDescriptor *a_350id =0; -AttrDescriptor *a_351name =0; -AttrDescriptor *a_352description =0; -AttrDescriptor *a_353market_context =0; -SdaiProduct_concept::SdaiProduct_concept( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_product_concept; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_350id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_350id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_351name, &_name); -#else - a = new STEPattribute(*a_351name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_352description, &_description); -#else - a = new STEPattribute(*a_352description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_353market_context, (SCLP23(Application_instance_ptr) *) &_market_context); -#else - a = new STEPattribute(*a_353market_context, (SCLP23(Application_instance_ptr) *) &_market_context); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_concept::SdaiProduct_concept (SdaiProduct_concept& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_concept::~SdaiProduct_concept () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_concept::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_concept: virtual access function." << G4endl; - SdaiProduct_concept_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_concept_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_concept: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_concept *ent = (SdaiProduct_concept *)sent; -// SdaiProduct_concept *ent = (SdaiProduct_concept *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_concept; - ent->attributes[0].aDesc = a_350id; - ent->attributes[1].aDesc = a_351name; - ent->attributes[2].aDesc = a_352description; - ent->attributes[3].aDesc = a_353market_context; - if(ent->_market_context == 0) - ent->_market_context = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_concept(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_concept::get_os_typespec()) - SdaiProduct_concept; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_concept::get_os_typespec()) -// SdaiProduct_concept; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_concept; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_concept::oodb_reInit () -{ eDesc = config_control_designe_product_concept; - attributes [0].aDesc = a_350id; - attributes [1].aDesc = a_351name; - attributes [2].aDesc = a_352description; - attributes [3].aDesc = a_353market_context; -} -#endif - -SdaiProduct_concept::SdaiProduct_concept( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_product_concept; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_350id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_350id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_351name, &_name); -#else - a = new STEPattribute(*a_351name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_352description, &_description); -#else - a = new STEPattribute(*a_352description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_353market_context, (SCLP23(Application_instance_ptr) *) &_market_context); -#else - a = new STEPattribute(*a_353market_context, (SCLP23(Application_instance_ptr) *) &_market_context); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiProduct_concept::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiProduct_concept::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiLabel -SdaiProduct_concept::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiProduct_concept::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiProduct_concept::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiProduct_concept::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiProduct_concept_context_ptr -SdaiProduct_concept::market_context_() const -{ - return (SdaiProduct_concept_context_ptr) _market_context; -} - -void -SdaiProduct_concept::market_context_ (const SdaiProduct_concept_context_ptr x) - -{ - _market_context = x; -} - -///////// END_ENTITY product_concept - - -///////// ENTITY cc_design_contract - -EntityDescriptor *config_control_designe_cc_design_contract =0; -AttrDescriptor *a_354items =0; -SdaiCc_design_contract::SdaiCc_design_contract( ) -{ - - /* parent: SdaiContract_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_contract; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_354items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_354items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCc_design_contract::SdaiCc_design_contract (SdaiCc_design_contract& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCc_design_contract::~SdaiCc_design_contract () { } - -#ifdef __OSTORE__ - -void -SdaiCc_design_contract::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_contract: virtual access function." << G4endl; - SdaiCc_design_contract_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCc_design_contract_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_contract: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCc_design_contract *ent = (SdaiCc_design_contract *)sent; -// SdaiCc_design_contract *ent = (SdaiCc_design_contract *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cc_design_contract; - ent->attributes[1].aDesc = a_354items; -} - -SCLP23(Application_instance_ptr) -create_SdaiCc_design_contract(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCc_design_contract::get_os_typespec()) - SdaiCc_design_contract; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCc_design_contract::get_os_typespec()) -// SdaiCc_design_contract; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCc_design_contract; -} -#endif - -#ifdef __O3DB__ -void -SdaiCc_design_contract::oodb_reInit () -{ eDesc = config_control_designe_cc_design_contract; - attributes [1].aDesc = a_354items; -} -#endif - -SdaiCc_design_contract::SdaiCc_design_contract (SCLP23(Application_instance) *se, int *addAttrs) : SdaiContract_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiContract_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_contract; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_354items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_354items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiContracted_items_ptr -SdaiCc_design_contract::items_() const -{ - return (SdaiContracted_items_ptr) &_items; -} - -void -SdaiCc_design_contract::items_ (const SdaiContracted_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cc_design_contract - - -///////// ENTITY seam_curve - -EntityDescriptor *config_control_designe_seam_curve =0; -SdaiSeam_curve::SdaiSeam_curve( ) -{ - - /* parent: SdaiSurface_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_seam_curve; - MakeDerived ("dim"); - MakeDerived ("basis_surface"); -} -SdaiSeam_curve::SdaiSeam_curve (SdaiSeam_curve& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSeam_curve::~SdaiSeam_curve () { } - -#ifdef __OSTORE__ - -void -SdaiSeam_curve::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSeam_curve: virtual access function." << G4endl; - SdaiSeam_curve_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSeam_curve_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSeam_curve: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSeam_curve *ent = (SdaiSeam_curve *)sent; -// SdaiSeam_curve *ent = (SdaiSeam_curve *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_seam_curve; -} - -SCLP23(Application_instance_ptr) -create_SdaiSeam_curve(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSeam_curve::get_os_typespec()) - SdaiSeam_curve; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSeam_curve::get_os_typespec()) -// SdaiSeam_curve; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSeam_curve; -} -#endif - -#ifdef __O3DB__ -void -SdaiSeam_curve::oodb_reInit () -{ eDesc = config_control_designe_seam_curve; -} -#endif - -SdaiSeam_curve::SdaiSeam_curve (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSurface_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSurface_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_seam_curve; - MakeDerived ("dim"); - MakeDerived ("basis_surface"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY seam_curve - - -///////// ENTITY axis2_placement_3d - -EntityDescriptor *config_control_designe_axis2_placement_3d =0; -AttrDescriptor *a_355axis =0; -AttrDescriptor *a_356ref_direction =0; -Derived_attribute *a_357Dp =0; -SdaiAxis2_placement_3d::SdaiAxis2_placement_3d( ) -{ - - /* parent: SdaiPlacement */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_axis2_placement_3d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_355axis, (SCLP23(Application_instance_ptr) *) &_axis); -#else - STEPattribute *a = new STEPattribute(*a_355axis, (SCLP23(Application_instance_ptr) *) &_axis); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_356ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#else - a = new STEPattribute(*a_356ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("p"); -} -SdaiAxis2_placement_3d::SdaiAxis2_placement_3d (SdaiAxis2_placement_3d& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAxis2_placement_3d::~SdaiAxis2_placement_3d () { } - -#ifdef __OSTORE__ - -void -SdaiAxis2_placement_3d::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAxis2_placement_3d: virtual access function." << G4endl; - SdaiAxis2_placement_3d_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAxis2_placement_3d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAxis2_placement_3d: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAxis2_placement_3d *ent = (SdaiAxis2_placement_3d *)sent; -// SdaiAxis2_placement_3d *ent = (SdaiAxis2_placement_3d *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_axis2_placement_3d; - ent->attributes[2].aDesc = a_355axis; - if(ent->_axis == 0) - ent->_axis = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_356ref_direction; - if(ent->_ref_direction == 0) - ent->_ref_direction = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiAxis2_placement_3d(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAxis2_placement_3d::get_os_typespec()) - SdaiAxis2_placement_3d; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAxis2_placement_3d::get_os_typespec()) -// SdaiAxis2_placement_3d; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAxis2_placement_3d; -} -#endif - -#ifdef __O3DB__ -void -SdaiAxis2_placement_3d::oodb_reInit () -{ eDesc = config_control_designe_axis2_placement_3d; - attributes [2].aDesc = a_355axis; - attributes [3].aDesc = a_356ref_direction; -} -#endif - -SdaiAxis2_placement_3d::SdaiAxis2_placement_3d (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPlacement(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPlacement */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_axis2_placement_3d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_355axis, (SCLP23(Application_instance_ptr) *) &_axis); -#else - STEPattribute *a = new STEPattribute(*a_355axis, (SCLP23(Application_instance_ptr) *) &_axis); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_356ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#else - a = new STEPattribute(*a_356ref_direction, (SCLP23(Application_instance_ptr) *) &_ref_direction); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("p"); -} - -const SdaiDirection_ptr -SdaiAxis2_placement_3d::axis_() const -{ - return (SdaiDirection_ptr) _axis; -} - -void -SdaiAxis2_placement_3d::axis_ (const SdaiDirection_ptr x) - -{ - _axis = x; -} - -const SdaiDirection_ptr -SdaiAxis2_placement_3d::ref_direction_() const -{ - return (SdaiDirection_ptr) _ref_direction; -} - -void -SdaiAxis2_placement_3d::ref_direction_ (const SdaiDirection_ptr x) - -{ - _ref_direction = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY axis2_placement_3d - - -///////// ENTITY rational_b_spline_surface - -EntityDescriptor *config_control_designe_rational_b_spline_surface =0; -AttrDescriptor *a_358weights_data =0; -Derived_attribute *a_359Dweights =0; -SdaiRational_b_spline_surface::SdaiRational_b_spline_surface( ) -{ - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_rational_b_spline_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_358weights_data, &_weights_data); -#else - STEPattribute *a = new STEPattribute(*a_358weights_data, &_weights_data); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); - MakeDerived ("weights"); -} -SdaiRational_b_spline_surface::SdaiRational_b_spline_surface (SdaiRational_b_spline_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiRational_b_spline_surface::~SdaiRational_b_spline_surface () { } - -#ifdef __OSTORE__ - -void -SdaiRational_b_spline_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRational_b_spline_surface: virtual access function." << G4endl; - SdaiRational_b_spline_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiRational_b_spline_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiRational_b_spline_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiRational_b_spline_surface *ent = (SdaiRational_b_spline_surface *)sent; -// SdaiRational_b_spline_surface *ent = (SdaiRational_b_spline_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_rational_b_spline_surface; - ent->attributes[8].aDesc = a_358weights_data; -} - -SCLP23(Application_instance_ptr) -create_SdaiRational_b_spline_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiRational_b_spline_surface::get_os_typespec()) - SdaiRational_b_spline_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiRational_b_spline_surface::get_os_typespec()) -// SdaiRational_b_spline_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiRational_b_spline_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiRational_b_spline_surface::oodb_reInit () -{ eDesc = config_control_designe_rational_b_spline_surface; - attributes [8].aDesc = a_358weights_data; -} -#endif - -SdaiRational_b_spline_surface::SdaiRational_b_spline_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_rational_b_spline_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_358weights_data, &_weights_data); -#else - STEPattribute *a = new STEPattribute(*a_358weights_data, &_weights_data); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); - MakeDerived ("weights"); -} - -const GenericAggregate_ptr -SdaiRational_b_spline_surface::weights_data_() const -{ - return (GenericAggregate_ptr) &_weights_data; -} - -void -SdaiRational_b_spline_surface::weights_data_ (const GenericAggregate_ptr x) - - { _weights_data.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY rational_b_spline_surface - - -///////// ENTITY configuration_design - -EntityDescriptor *config_control_designe_configuration_design =0; -AttrDescriptor *a_360configuration =0; -AttrDescriptor *a_361design =0; -SdaiConfiguration_design::SdaiConfiguration_design( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_configuration_design; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_360configuration, (SCLP23(Application_instance_ptr) *) &_configuration); -#else - STEPattribute *a = new STEPattribute(*a_360configuration, (SCLP23(Application_instance_ptr) *) &_configuration); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_361design, (SCLP23(Application_instance_ptr) *) &_design); -#else - a = new STEPattribute(*a_361design, (SCLP23(Application_instance_ptr) *) &_design); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiConfiguration_design::SdaiConfiguration_design (SdaiConfiguration_design& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiConfiguration_design::~SdaiConfiguration_design () { } - -#ifdef __OSTORE__ - -void -SdaiConfiguration_design::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConfiguration_design: virtual access function." << G4endl; - SdaiConfiguration_design_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiConfiguration_design_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConfiguration_design: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiConfiguration_design *ent = (SdaiConfiguration_design *)sent; -// SdaiConfiguration_design *ent = (SdaiConfiguration_design *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_configuration_design; - ent->attributes[0].aDesc = a_360configuration; - if(ent->_configuration == 0) - ent->_configuration = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_361design; - if(ent->_design == 0) - ent->_design = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiConfiguration_design(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiConfiguration_design::get_os_typespec()) - SdaiConfiguration_design; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiConfiguration_design::get_os_typespec()) -// SdaiConfiguration_design; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiConfiguration_design; -} -#endif - -#ifdef __O3DB__ -void -SdaiConfiguration_design::oodb_reInit () -{ eDesc = config_control_designe_configuration_design; - attributes [0].aDesc = a_360configuration; - attributes [1].aDesc = a_361design; -} -#endif - -SdaiConfiguration_design::SdaiConfiguration_design( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_configuration_design; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_360configuration, (SCLP23(Application_instance_ptr) *) &_configuration); -#else - STEPattribute *a = new STEPattribute(*a_360configuration, (SCLP23(Application_instance_ptr) *) &_configuration); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_361design, (SCLP23(Application_instance_ptr) *) &_design); -#else - a = new STEPattribute(*a_361design, (SCLP23(Application_instance_ptr) *) &_design); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiConfiguration_item_ptr -SdaiConfiguration_design::configuration_() const -{ - return (SdaiConfiguration_item_ptr) _configuration; -} - -void -SdaiConfiguration_design::configuration_ (const SdaiConfiguration_item_ptr x) - -{ - _configuration = x; -} - -const SdaiProduct_definition_formation_ptr -SdaiConfiguration_design::design_() const -{ - return (SdaiProduct_definition_formation_ptr) _design; -} - -void -SdaiConfiguration_design::design_ (const SdaiProduct_definition_formation_ptr x) - -{ - _design = x; -} - -///////// END_ENTITY configuration_design - - -///////// ENTITY design_context - -EntityDescriptor *config_control_designe_design_context =0; -SdaiDesign_context::SdaiDesign_context( ) -{ - - /* parent: SdaiProduct_definition_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_design_context; -} -SdaiDesign_context::SdaiDesign_context (SdaiDesign_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDesign_context::~SdaiDesign_context () { } - -#ifdef __OSTORE__ - -void -SdaiDesign_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDesign_context: virtual access function." << G4endl; - SdaiDesign_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDesign_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDesign_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDesign_context *ent = (SdaiDesign_context *)sent; -// SdaiDesign_context *ent = (SdaiDesign_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_design_context; -} - -SCLP23(Application_instance_ptr) -create_SdaiDesign_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDesign_context::get_os_typespec()) - SdaiDesign_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDesign_context::get_os_typespec()) -// SdaiDesign_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDesign_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiDesign_context::oodb_reInit () -{ eDesc = config_control_designe_design_context; -} -#endif - -SdaiDesign_context::SdaiDesign_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_definition_context(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_definition_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_design_context; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY design_context - - -///////// ENTITY product_definition - -EntityDescriptor *config_control_designe_product_definition =0; -AttrDescriptor *a_362id =0; -AttrDescriptor *a_363description =0; -AttrDescriptor *a_364formation =0; -AttrDescriptor *a_365frame_of_reference =0; -SdaiProduct_definition::SdaiProduct_definition( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_product_definition; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_362id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_362id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_363description, &_description); -#else - a = new STEPattribute(*a_363description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_364formation, (SCLP23(Application_instance_ptr) *) &_formation); -#else - a = new STEPattribute(*a_364formation, (SCLP23(Application_instance_ptr) *) &_formation); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_365frame_of_reference, (SCLP23(Application_instance_ptr) *) &_frame_of_reference); -#else - a = new STEPattribute(*a_365frame_of_reference, (SCLP23(Application_instance_ptr) *) &_frame_of_reference); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_definition::SdaiProduct_definition (SdaiProduct_definition& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition::~SdaiProduct_definition () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition: virtual access function." << G4endl; - SdaiProduct_definition_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition *ent = (SdaiProduct_definition *)sent; -// SdaiProduct_definition *ent = (SdaiProduct_definition *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition; - ent->attributes[0].aDesc = a_362id; - ent->attributes[1].aDesc = a_363description; - ent->attributes[2].aDesc = a_364formation; - if(ent->_formation == 0) - ent->_formation = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_365frame_of_reference; - if(ent->_frame_of_reference == 0) - ent->_frame_of_reference = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition::get_os_typespec()) - SdaiProduct_definition; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition::get_os_typespec()) -// SdaiProduct_definition; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition::oodb_reInit () -{ eDesc = config_control_designe_product_definition; - attributes [0].aDesc = a_362id; - attributes [1].aDesc = a_363description; - attributes [2].aDesc = a_364formation; - attributes [3].aDesc = a_365frame_of_reference; -} -#endif - -SdaiProduct_definition::SdaiProduct_definition( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_product_definition; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_362id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_362id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_363description, &_description); -#else - a = new STEPattribute(*a_363description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_364formation, (SCLP23(Application_instance_ptr) *) &_formation); -#else - a = new STEPattribute(*a_364formation, (SCLP23(Application_instance_ptr) *) &_formation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_365frame_of_reference, (SCLP23(Application_instance_ptr) *) &_frame_of_reference); -#else - a = new STEPattribute(*a_365frame_of_reference, (SCLP23(Application_instance_ptr) *) &_frame_of_reference); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiProduct_definition::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiProduct_definition::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiText -SdaiProduct_definition::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiProduct_definition::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiProduct_definition_formation_ptr -SdaiProduct_definition::formation_() const -{ - return (SdaiProduct_definition_formation_ptr) _formation; -} - -void -SdaiProduct_definition::formation_ (const SdaiProduct_definition_formation_ptr x) - -{ - _formation = x; -} - -const SdaiProduct_definition_context_ptr -SdaiProduct_definition::frame_of_reference_() const -{ - return (SdaiProduct_definition_context_ptr) _frame_of_reference; -} - -void -SdaiProduct_definition::frame_of_reference_ (const SdaiProduct_definition_context_ptr x) - -{ - _frame_of_reference = x; -} - -///////// END_ENTITY product_definition - - -///////// ENTITY product_definition_with_associated_documents - -EntityDescriptor *config_control_designe_product_definition_with_associated_documents =0; -AttrDescriptor *a_366documentation_ids =0; -SdaiProduct_definition_with_associated_documents::SdaiProduct_definition_with_associated_documents( ) -{ - - /* parent: SdaiProduct_definition */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_with_associated_documents; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_366documentation_ids, &_documentation_ids); -#else - STEPattribute *a = new STEPattribute(*a_366documentation_ids, &_documentation_ids); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_definition_with_associated_documents::SdaiProduct_definition_with_associated_documents (SdaiProduct_definition_with_associated_documents& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_definition_with_associated_documents::~SdaiProduct_definition_with_associated_documents () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_definition_with_associated_documents::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_with_associated_documents: virtual access function." << G4endl; - SdaiProduct_definition_with_associated_documents_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_definition_with_associated_documents_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_definition_with_associated_documents: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_definition_with_associated_documents *ent = (SdaiProduct_definition_with_associated_documents *)sent; -// SdaiProduct_definition_with_associated_documents *ent = (SdaiProduct_definition_with_associated_documents *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_definition_with_associated_documents; - ent->attributes[4].aDesc = a_366documentation_ids; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_definition_with_associated_documents(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_definition_with_associated_documents::get_os_typespec()) - SdaiProduct_definition_with_associated_documents; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_definition_with_associated_documents::get_os_typespec()) -// SdaiProduct_definition_with_associated_documents; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_definition_with_associated_documents; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_definition_with_associated_documents::oodb_reInit () -{ eDesc = config_control_designe_product_definition_with_associated_documents; - attributes [4].aDesc = a_366documentation_ids; -} -#endif - -SdaiProduct_definition_with_associated_documents::SdaiProduct_definition_with_associated_documents (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProduct_definition(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProduct_definition */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_definition_with_associated_documents; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_366documentation_ids, &_documentation_ids); -#else - STEPattribute *a = new STEPattribute(*a_366documentation_ids, &_documentation_ids); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiProduct_definition_with_associated_documents::documentation_ids_() const -{ - return (EntityAggregate_ptr) &_documentation_ids; -} - -void -SdaiProduct_definition_with_associated_documents::documentation_ids_ (const EntityAggregate_ptr x) - - { _documentation_ids.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_definition_with_associated_documents - - -///////// ENTITY organization - -EntityDescriptor *config_control_designe_organization =0; -AttrDescriptor *a_367id =0; -AttrDescriptor *a_368name =0; -AttrDescriptor *a_369description =0; -SdaiOrganization::SdaiOrganization( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_organization; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_367id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_367id, &_id); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_368name, &_name); -#else - a = new STEPattribute(*a_368name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_369description, &_description); -#else - a = new STEPattribute(*a_369description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiOrganization::SdaiOrganization (SdaiOrganization& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOrganization::~SdaiOrganization () { } - -#ifdef __OSTORE__ - -void -SdaiOrganization::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrganization: virtual access function." << G4endl; - SdaiOrganization_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOrganization_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOrganization: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOrganization *ent = (SdaiOrganization *)sent; -// SdaiOrganization *ent = (SdaiOrganization *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_organization; - ent->attributes[0].aDesc = a_367id; - ent->attributes[1].aDesc = a_368name; - ent->attributes[2].aDesc = a_369description; -} - -SCLP23(Application_instance_ptr) -create_SdaiOrganization(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOrganization::get_os_typespec()) - SdaiOrganization; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOrganization::get_os_typespec()) -// SdaiOrganization; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOrganization; -} -#endif - -#ifdef __O3DB__ -void -SdaiOrganization::oodb_reInit () -{ eDesc = config_control_designe_organization; - attributes [0].aDesc = a_367id; - attributes [1].aDesc = a_368name; - attributes [2].aDesc = a_369description; -} -#endif - -SdaiOrganization::SdaiOrganization( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_organization; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_367id, &_id); -#else - STEPattribute *a = new STEPattribute(*a_367id, &_id); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_368name, &_name); -#else - a = new STEPattribute(*a_368name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_369description, &_description); -#else - a = new STEPattribute(*a_369description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiIdentifier -SdaiOrganization::id_() const -{ - return (SdaiIdentifier) _id; -} - -void -SdaiOrganization::id_ (const SdaiIdentifier x) - -{ - _id = x; -} - -const SdaiLabel -SdaiOrganization::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiOrganization::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiOrganization::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiOrganization::description_ (const SdaiText x) - -{ - _description = x; -} - -///////// END_ENTITY organization - - -///////// ENTITY cc_design_certification - -EntityDescriptor *config_control_designe_cc_design_certification =0; -AttrDescriptor *a_370items =0; -SdaiCc_design_certification::SdaiCc_design_certification( ) -{ - - /* parent: SdaiCertification_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_certification; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_370items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_370items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCc_design_certification::SdaiCc_design_certification (SdaiCc_design_certification& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCc_design_certification::~SdaiCc_design_certification () { } - -#ifdef __OSTORE__ - -void -SdaiCc_design_certification::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_certification: virtual access function." << G4endl; - SdaiCc_design_certification_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCc_design_certification_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_certification: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCc_design_certification *ent = (SdaiCc_design_certification *)sent; -// SdaiCc_design_certification *ent = (SdaiCc_design_certification *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cc_design_certification; - ent->attributes[1].aDesc = a_370items; -} - -SCLP23(Application_instance_ptr) -create_SdaiCc_design_certification(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCc_design_certification::get_os_typespec()) - SdaiCc_design_certification; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCc_design_certification::get_os_typespec()) -// SdaiCc_design_certification; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCc_design_certification; -} -#endif - -#ifdef __O3DB__ -void -SdaiCc_design_certification::oodb_reInit () -{ eDesc = config_control_designe_cc_design_certification; - attributes [1].aDesc = a_370items; -} -#endif - -SdaiCc_design_certification::SdaiCc_design_certification (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCertification_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCertification_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_certification; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_370items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_370items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiCertified_items_ptr -SdaiCc_design_certification::items_() const -{ - return (SdaiCertified_items_ptr) &_items; -} - -void -SdaiCc_design_certification::items_ (const SdaiCertified_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cc_design_certification - - -///////// ENTITY b_spline_surface_with_knots - -EntityDescriptor *config_control_designe_b_spline_surface_with_knots =0; -AttrDescriptor *a_371u_multiplicities =0; -AttrDescriptor *a_372v_multiplicities =0; -AttrDescriptor *a_373u_knots =0; -AttrDescriptor *a_374v_knots =0; -AttrDescriptor *a_375knot_spec =0; -Derived_attribute *a_376Dknot_u_upper =0; -Derived_attribute *a_377Dknot_v_upper =0; -SdaiB_spline_surface_with_knots::SdaiB_spline_surface_with_knots( ) -{ - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_b_spline_surface_with_knots; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_371u_multiplicities, &_u_multiplicities); -#else - STEPattribute *a = new STEPattribute(*a_371u_multiplicities, &_u_multiplicities); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_372v_multiplicities, &_v_multiplicities); -#else - a = new STEPattribute(*a_372v_multiplicities, &_v_multiplicities); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_373u_knots, &_u_knots); -#else - a = new STEPattribute(*a_373u_knots, &_u_knots); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_374v_knots, &_v_knots); -#else - a = new STEPattribute(*a_374v_knots, &_v_knots); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_375knot_spec, &_knot_spec); -#else - a = new STEPattribute(*a_375knot_spec, &_knot_spec); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); - MakeDerived ("knot_u_upper"); - MakeDerived ("knot_v_upper"); -} -SdaiB_spline_surface_with_knots::SdaiB_spline_surface_with_knots (SdaiB_spline_surface_with_knots& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiB_spline_surface_with_knots::~SdaiB_spline_surface_with_knots () { } - -#ifdef __OSTORE__ - -void -SdaiB_spline_surface_with_knots::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_surface_with_knots: virtual access function." << G4endl; - SdaiB_spline_surface_with_knots_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiB_spline_surface_with_knots_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiB_spline_surface_with_knots: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiB_spline_surface_with_knots *ent = (SdaiB_spline_surface_with_knots *)sent; -// SdaiB_spline_surface_with_knots *ent = (SdaiB_spline_surface_with_knots *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_b_spline_surface_with_knots; - ent->attributes[8].aDesc = a_371u_multiplicities; - ent->attributes[9].aDesc = a_372v_multiplicities; - ent->attributes[10].aDesc = a_373u_knots; - ent->attributes[11].aDesc = a_374v_knots; - ent->attributes[12].aDesc = a_375knot_spec; -} - -SCLP23(Application_instance_ptr) -create_SdaiB_spline_surface_with_knots(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiB_spline_surface_with_knots::get_os_typespec()) - SdaiB_spline_surface_with_knots; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiB_spline_surface_with_knots::get_os_typespec()) -// SdaiB_spline_surface_with_knots; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiB_spline_surface_with_knots; -} -#endif - -#ifdef __O3DB__ -void -SdaiB_spline_surface_with_knots::oodb_reInit () -{ eDesc = config_control_designe_b_spline_surface_with_knots; - attributes [8].aDesc = a_371u_multiplicities; - attributes [9].aDesc = a_372v_multiplicities; - attributes [10].aDesc = a_373u_knots; - attributes [11].aDesc = a_374v_knots; - attributes [12].aDesc = a_375knot_spec; -} -#endif - -SdaiB_spline_surface_with_knots::SdaiB_spline_surface_with_knots (SCLP23(Application_instance) *se, int *addAttrs) : SdaiB_spline_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiB_spline_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_b_spline_surface_with_knots; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_371u_multiplicities, &_u_multiplicities); -#else - STEPattribute *a = new STEPattribute(*a_371u_multiplicities, &_u_multiplicities); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_372v_multiplicities, &_v_multiplicities); -#else - a = new STEPattribute(*a_372v_multiplicities, &_v_multiplicities); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_373u_knots, &_u_knots); -#else - a = new STEPattribute(*a_373u_knots, &_u_knots); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_374v_knots, &_v_knots); -#else - a = new STEPattribute(*a_374v_knots, &_v_knots); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_375knot_spec, &_knot_spec); -#else - a = new STEPattribute(*a_375knot_spec, &_knot_spec); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); - MakeDerived ("u_upper"); - MakeDerived ("v_upper"); - MakeDerived ("control_points"); - MakeDerived ("knot_u_upper"); - MakeDerived ("knot_v_upper"); -} - -const IntAggregate_ptr -SdaiB_spline_surface_with_knots::u_multiplicities_() const -{ - return (IntAggregate_ptr) &_u_multiplicities; -} - -void -SdaiB_spline_surface_with_knots::u_multiplicities_ (const IntAggregate_ptr x) - - { _u_multiplicities.ShallowCopy (*x); } - -const IntAggregate_ptr -SdaiB_spline_surface_with_knots::v_multiplicities_() const -{ - return (IntAggregate_ptr) &_v_multiplicities; -} - -void -SdaiB_spline_surface_with_knots::v_multiplicities_ (const IntAggregate_ptr x) - - { _v_multiplicities.ShallowCopy (*x); } - -const RealAggregate_ptr -SdaiB_spline_surface_with_knots::u_knots_() const -{ - return (RealAggregate_ptr) &_u_knots; -} - -void -SdaiB_spline_surface_with_knots::u_knots_ (const RealAggregate_ptr x) - - { _u_knots.ShallowCopy (*x); } - -const RealAggregate_ptr -SdaiB_spline_surface_with_knots::v_knots_() const -{ - return (RealAggregate_ptr) &_v_knots; -} - -void -SdaiB_spline_surface_with_knots::v_knots_ (const RealAggregate_ptr x) - - { _v_knots.ShallowCopy (*x); } - -const SdaiKnot_type_var -SdaiB_spline_surface_with_knots::knot_spec_() const -{ - return (Knot_type) _knot_spec; -} - -void -SdaiB_spline_surface_with_knots::knot_spec_ (const SdaiKnot_type_var x) - -{ - _knot_spec.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY b_spline_surface_with_knots - - -///////// ENTITY certification_type - -EntityDescriptor *config_control_designe_certification_type =0; -AttrDescriptor *a_378description =0; -SdaiCertification_type::SdaiCertification_type( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_certification_type; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_378description, &_description); -#else - STEPattribute *a = new STEPattribute(*a_378description, &_description); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCertification_type::SdaiCertification_type (SdaiCertification_type& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCertification_type::~SdaiCertification_type () { } - -#ifdef __OSTORE__ - -void -SdaiCertification_type::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCertification_type: virtual access function." << G4endl; - SdaiCertification_type_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCertification_type_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCertification_type: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCertification_type *ent = (SdaiCertification_type *)sent; -// SdaiCertification_type *ent = (SdaiCertification_type *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_certification_type; - ent->attributes[0].aDesc = a_378description; -} - -SCLP23(Application_instance_ptr) -create_SdaiCertification_type(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCertification_type::get_os_typespec()) - SdaiCertification_type; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCertification_type::get_os_typespec()) -// SdaiCertification_type; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCertification_type; -} -#endif - -#ifdef __O3DB__ -void -SdaiCertification_type::oodb_reInit () -{ eDesc = config_control_designe_certification_type; - attributes [0].aDesc = a_378description; -} -#endif - -SdaiCertification_type::SdaiCertification_type( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_certification_type; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_378description, &_description); -#else - STEPattribute *a = new STEPattribute(*a_378description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiCertification_type::description_() const -{ - return (SdaiLabel) _description; -} - -void -SdaiCertification_type::description_ (const SdaiLabel x) - -{ - _description = x; -} - -///////// END_ENTITY certification_type - - -///////// ENTITY oriented_path - -EntityDescriptor *config_control_designe_oriented_path =0; -AttrDescriptor *a_379path_element =0; -AttrDescriptor *a_380orientation =0; -Derived_attribute *a_381Dpath_edge_list =0; -SdaiOriented_path::SdaiOriented_path( ) -{ - - /* parent: SdaiPath */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_path; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_379path_element, (SCLP23(Application_instance_ptr) *) &_path_element); -#else - STEPattribute *a = new STEPattribute(*a_379path_element, (SCLP23(Application_instance_ptr) *) &_path_element); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_380orientation, &_orientation); -#else - a = new STEPattribute(*a_380orientation, &_orientation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("edge_list"); -} -SdaiOriented_path::SdaiOriented_path (SdaiOriented_path& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOriented_path::~SdaiOriented_path () { } - -#ifdef __OSTORE__ - -void -SdaiOriented_path::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_path: virtual access function." << G4endl; - SdaiOriented_path_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOriented_path_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_path: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOriented_path *ent = (SdaiOriented_path *)sent; -// SdaiOriented_path *ent = (SdaiOriented_path *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_oriented_path; - ent->attributes[2].aDesc = a_379path_element; - if(ent->_path_element == 0) - ent->_path_element = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_380orientation; -} - -SCLP23(Application_instance_ptr) -create_SdaiOriented_path(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOriented_path::get_os_typespec()) - SdaiOriented_path; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOriented_path::get_os_typespec()) -// SdaiOriented_path; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOriented_path; -} -#endif - -#ifdef __O3DB__ -void -SdaiOriented_path::oodb_reInit () -{ eDesc = config_control_designe_oriented_path; - attributes [2].aDesc = a_379path_element; - attributes [3].aDesc = a_380orientation; -} -#endif - -SdaiOriented_path::SdaiOriented_path (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPath(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPath */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_path; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_379path_element, (SCLP23(Application_instance_ptr) *) &_path_element); -#else - STEPattribute *a = new STEPattribute(*a_379path_element, (SCLP23(Application_instance_ptr) *) &_path_element); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_380orientation, &_orientation); -#else - a = new STEPattribute(*a_380orientation, &_orientation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("edge_list"); -} - -const SdaiPath_ptr -SdaiOriented_path::path_element_() const -{ - return (SdaiPath_ptr) _path_element; -} - -void -SdaiOriented_path::path_element_ (const SdaiPath_ptr x) - -{ - _path_element = x; -} - -const SCLBOOL(Bool) -SdaiOriented_path::orientation_() const -{ - return (SCLBOOL(Bool)) _orientation; -} - -void -SdaiOriented_path::orientation_ (const SCLBOOL(Bool) x) - -{ - _orientation.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY oriented_path - - -///////// ENTITY security_classification - -EntityDescriptor *config_control_designe_security_classification =0; -AttrDescriptor *a_382name =0; -AttrDescriptor *a_383purpose =0; -AttrDescriptor *a_384security_level =0; -SdaiSecurity_classification::SdaiSecurity_classification( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_security_classification; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_382name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_382name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_383purpose, &_purpose); -#else - a = new STEPattribute(*a_383purpose, &_purpose); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_384security_level, (SCLP23(Application_instance_ptr) *) &_security_level); -#else - a = new STEPattribute(*a_384security_level, (SCLP23(Application_instance_ptr) *) &_security_level); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiSecurity_classification::SdaiSecurity_classification (SdaiSecurity_classification& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSecurity_classification::~SdaiSecurity_classification () { } - -#ifdef __OSTORE__ - -void -SdaiSecurity_classification::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSecurity_classification: virtual access function." << G4endl; - SdaiSecurity_classification_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSecurity_classification_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSecurity_classification: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSecurity_classification *ent = (SdaiSecurity_classification *)sent; -// SdaiSecurity_classification *ent = (SdaiSecurity_classification *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_security_classification; - ent->attributes[0].aDesc = a_382name; - ent->attributes[1].aDesc = a_383purpose; - ent->attributes[2].aDesc = a_384security_level; - if(ent->_security_level == 0) - ent->_security_level = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSecurity_classification::get_os_typespec()) - SdaiSecurity_classification; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSecurity_classification::get_os_typespec()) -// SdaiSecurity_classification; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification; -} -#endif - -#ifdef __O3DB__ -void -SdaiSecurity_classification::oodb_reInit () -{ eDesc = config_control_designe_security_classification; - attributes [0].aDesc = a_382name; - attributes [1].aDesc = a_383purpose; - attributes [2].aDesc = a_384security_level; -} -#endif - -SdaiSecurity_classification::SdaiSecurity_classification( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_security_classification; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_382name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_382name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_383purpose, &_purpose); -#else - a = new STEPattribute(*a_383purpose, &_purpose); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_384security_level, (SCLP23(Application_instance_ptr) *) &_security_level); -#else - a = new STEPattribute(*a_384security_level, (SCLP23(Application_instance_ptr) *) &_security_level); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiSecurity_classification::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiSecurity_classification::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiSecurity_classification::purpose_() const -{ - return (SdaiText) _purpose; -} - -void -SdaiSecurity_classification::purpose_ (const SdaiText x) - -{ - _purpose = x; -} - -const SdaiSecurity_classification_level_ptr -SdaiSecurity_classification::security_level_() const -{ - return (SdaiSecurity_classification_level_ptr) _security_level; -} - -void -SdaiSecurity_classification::security_level_ (const SdaiSecurity_classification_level_ptr x) - -{ - _security_level = x; -} - -///////// END_ENTITY security_classification - - -///////// ENTITY vertex_loop - -EntityDescriptor *config_control_designe_vertex_loop =0; -AttrDescriptor *a_385loop_vertex =0; -SdaiVertex_loop::SdaiVertex_loop( ) -{ - - /* parent: SdaiLoop */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_vertex_loop; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_385loop_vertex, (SCLP23(Application_instance_ptr) *) &_loop_vertex); -#else - STEPattribute *a = new STEPattribute(*a_385loop_vertex, (SCLP23(Application_instance_ptr) *) &_loop_vertex); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiVertex_loop::SdaiVertex_loop (SdaiVertex_loop& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiVertex_loop::~SdaiVertex_loop () { } - -#ifdef __OSTORE__ - -void -SdaiVertex_loop::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVertex_loop: virtual access function." << G4endl; - SdaiVertex_loop_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiVertex_loop_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVertex_loop: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiVertex_loop *ent = (SdaiVertex_loop *)sent; -// SdaiVertex_loop *ent = (SdaiVertex_loop *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_vertex_loop; - ent->attributes[1].aDesc = a_385loop_vertex; - if(ent->_loop_vertex == 0) - ent->_loop_vertex = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiVertex_loop(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiVertex_loop::get_os_typespec()) - SdaiVertex_loop; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiVertex_loop::get_os_typespec()) -// SdaiVertex_loop; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiVertex_loop; -} -#endif - -#ifdef __O3DB__ -void -SdaiVertex_loop::oodb_reInit () -{ eDesc = config_control_designe_vertex_loop; - attributes [1].aDesc = a_385loop_vertex; -} -#endif - -SdaiVertex_loop::SdaiVertex_loop (SCLP23(Application_instance) *se, int *addAttrs) : SdaiLoop(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiLoop */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_vertex_loop; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_385loop_vertex, (SCLP23(Application_instance_ptr) *) &_loop_vertex); -#else - STEPattribute *a = new STEPattribute(*a_385loop_vertex, (SCLP23(Application_instance_ptr) *) &_loop_vertex); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiVertex_ptr -SdaiVertex_loop::loop_vertex_() const -{ - return (SdaiVertex_ptr) _loop_vertex; -} - -void -SdaiVertex_loop::loop_vertex_ (const SdaiVertex_ptr x) - -{ - _loop_vertex = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY vertex_loop - - -///////// ENTITY approval_status - -EntityDescriptor *config_control_designe_approval_status =0; -AttrDescriptor *a_386name =0; -SdaiApproval_status::SdaiApproval_status( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_status; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_386name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_386name, &_name); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApproval_status::SdaiApproval_status (SdaiApproval_status& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApproval_status::~SdaiApproval_status () { } - -#ifdef __OSTORE__ - -void -SdaiApproval_status::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_status: virtual access function." << G4endl; - SdaiApproval_status_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApproval_status_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_status: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApproval_status *ent = (SdaiApproval_status *)sent; -// SdaiApproval_status *ent = (SdaiApproval_status *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_approval_status; - ent->attributes[0].aDesc = a_386name; -} - -SCLP23(Application_instance_ptr) -create_SdaiApproval_status(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApproval_status::get_os_typespec()) - SdaiApproval_status; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApproval_status::get_os_typespec()) -// SdaiApproval_status; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApproval_status; -} -#endif - -#ifdef __O3DB__ -void -SdaiApproval_status::oodb_reInit () -{ eDesc = config_control_designe_approval_status; - attributes [0].aDesc = a_386name; -} -#endif - -SdaiApproval_status::SdaiApproval_status( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_status; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_386name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_386name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiApproval_status::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiApproval_status::name_ (const SdaiLabel x) - -{ - _name = x; -} - -///////// END_ENTITY approval_status - - -///////// ENTITY cartesian_point - -EntityDescriptor *config_control_designe_cartesian_point =0; -AttrDescriptor *a_387coordinates =0; -SdaiCartesian_point::SdaiCartesian_point( ) -{ - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cartesian_point; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_387coordinates, &_coordinates); -#else - STEPattribute *a = new STEPattribute(*a_387coordinates, &_coordinates); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiCartesian_point::SdaiCartesian_point (SdaiCartesian_point& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCartesian_point::~SdaiCartesian_point () { } - -#ifdef __OSTORE__ - -void -SdaiCartesian_point::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCartesian_point: virtual access function." << G4endl; - SdaiCartesian_point_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCartesian_point_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCartesian_point: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCartesian_point *ent = (SdaiCartesian_point *)sent; -// SdaiCartesian_point *ent = (SdaiCartesian_point *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cartesian_point; - ent->attributes[1].aDesc = a_387coordinates; -} - -SCLP23(Application_instance_ptr) -create_SdaiCartesian_point(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCartesian_point::get_os_typespec()) - SdaiCartesian_point; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCartesian_point::get_os_typespec()) -// SdaiCartesian_point; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCartesian_point; -} -#endif - -#ifdef __O3DB__ -void -SdaiCartesian_point::oodb_reInit () -{ eDesc = config_control_designe_cartesian_point; - attributes [1].aDesc = a_387coordinates; -} -#endif - -SdaiCartesian_point::SdaiCartesian_point (SCLP23(Application_instance) *se, int *addAttrs) : SdaiPoint(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiPoint */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cartesian_point; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_387coordinates, &_coordinates); -#else - STEPattribute *a = new STEPattribute(*a_387coordinates, &_coordinates); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const RealAggregate_ptr -SdaiCartesian_point::coordinates_() const -{ - return (RealAggregate_ptr) &_coordinates; -} - -void -SdaiCartesian_point::coordinates_ (const RealAggregate_ptr x) - - { _coordinates.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cartesian_point - - -///////// ENTITY date_and_time_assignment - -EntityDescriptor *config_control_designe_date_and_time_assignment =0; -AttrDescriptor *a_388assigned_date_and_time =0; -AttrDescriptor *a_389role =0; -SdaiDate_and_time_assignment::SdaiDate_and_time_assignment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_date_and_time_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_388assigned_date_and_time, (SCLP23(Application_instance_ptr) *) &_assigned_date_and_time); -#else - STEPattribute *a = new STEPattribute(*a_388assigned_date_and_time, (SCLP23(Application_instance_ptr) *) &_assigned_date_and_time); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_389role, (SCLP23(Application_instance_ptr) *) &_role); -#else - a = new STEPattribute(*a_389role, (SCLP23(Application_instance_ptr) *) &_role); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDate_and_time_assignment::SdaiDate_and_time_assignment (SdaiDate_and_time_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDate_and_time_assignment::~SdaiDate_and_time_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiDate_and_time_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDate_and_time_assignment: virtual access function." << G4endl; - SdaiDate_and_time_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDate_and_time_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDate_and_time_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDate_and_time_assignment *ent = (SdaiDate_and_time_assignment *)sent; -// SdaiDate_and_time_assignment *ent = (SdaiDate_and_time_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_date_and_time_assignment; - ent->attributes[0].aDesc = a_388assigned_date_and_time; - if(ent->_assigned_date_and_time == 0) - ent->_assigned_date_and_time = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_389role; - if(ent->_role == 0) - ent->_role = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiDate_and_time_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDate_and_time_assignment::get_os_typespec()) - SdaiDate_and_time_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDate_and_time_assignment::get_os_typespec()) -// SdaiDate_and_time_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDate_and_time_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiDate_and_time_assignment::oodb_reInit () -{ eDesc = config_control_designe_date_and_time_assignment; - attributes [0].aDesc = a_388assigned_date_and_time; - attributes [1].aDesc = a_389role; -} -#endif - -SdaiDate_and_time_assignment::SdaiDate_and_time_assignment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_date_and_time_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_388assigned_date_and_time, (SCLP23(Application_instance_ptr) *) &_assigned_date_and_time); -#else - STEPattribute *a = new STEPattribute(*a_388assigned_date_and_time, (SCLP23(Application_instance_ptr) *) &_assigned_date_and_time); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_389role, (SCLP23(Application_instance_ptr) *) &_role); -#else - a = new STEPattribute(*a_389role, (SCLP23(Application_instance_ptr) *) &_role); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDate_and_time_ptr -SdaiDate_and_time_assignment::assigned_date_and_time_() const -{ - return (SdaiDate_and_time_ptr) _assigned_date_and_time; -} - -void -SdaiDate_and_time_assignment::assigned_date_and_time_ (const SdaiDate_and_time_ptr x) - -{ - _assigned_date_and_time = x; -} - -const SdaiDate_time_role_ptr -SdaiDate_and_time_assignment::role_() const -{ - return (SdaiDate_time_role_ptr) _role; -} - -void -SdaiDate_and_time_assignment::role_ (const SdaiDate_time_role_ptr x) - -{ - _role = x; -} - -///////// END_ENTITY date_and_time_assignment - - -///////// ENTITY parametric_representation_context - -EntityDescriptor *config_control_designe_parametric_representation_context =0; -SdaiParametric_representation_context::SdaiParametric_representation_context( ) -{ - - /* parent: SdaiRepresentation_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_parametric_representation_context; -} -SdaiParametric_representation_context::SdaiParametric_representation_context (SdaiParametric_representation_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiParametric_representation_context::~SdaiParametric_representation_context () { } - -#ifdef __OSTORE__ - -void -SdaiParametric_representation_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiParametric_representation_context: virtual access function." << G4endl; - SdaiParametric_representation_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiParametric_representation_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiParametric_representation_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiParametric_representation_context *ent = (SdaiParametric_representation_context *)sent; -// SdaiParametric_representation_context *ent = (SdaiParametric_representation_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_parametric_representation_context; -} - -SCLP23(Application_instance_ptr) -create_SdaiParametric_representation_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiParametric_representation_context::get_os_typespec()) - SdaiParametric_representation_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiParametric_representation_context::get_os_typespec()) -// SdaiParametric_representation_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiParametric_representation_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiParametric_representation_context::oodb_reInit () -{ eDesc = config_control_designe_parametric_representation_context; -} -#endif - -SdaiParametric_representation_context::SdaiParametric_representation_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_context(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_parametric_representation_context; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY parametric_representation_context - - -///////// ENTITY product_concept_context - -EntityDescriptor *config_control_designe_product_concept_context =0; -AttrDescriptor *a_390market_segment_type =0; -SdaiProduct_concept_context::SdaiProduct_concept_context( ) -{ - - /* parent: SdaiApplication_context_element */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_concept_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_390market_segment_type, &_market_segment_type); -#else - STEPattribute *a = new STEPattribute(*a_390market_segment_type, &_market_segment_type); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiProduct_concept_context::SdaiProduct_concept_context (SdaiProduct_concept_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiProduct_concept_context::~SdaiProduct_concept_context () { } - -#ifdef __OSTORE__ - -void -SdaiProduct_concept_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_concept_context: virtual access function." << G4endl; - SdaiProduct_concept_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiProduct_concept_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiProduct_concept_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiProduct_concept_context *ent = (SdaiProduct_concept_context *)sent; -// SdaiProduct_concept_context *ent = (SdaiProduct_concept_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_product_concept_context; - ent->attributes[2].aDesc = a_390market_segment_type; -} - -SCLP23(Application_instance_ptr) -create_SdaiProduct_concept_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiProduct_concept_context::get_os_typespec()) - SdaiProduct_concept_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiProduct_concept_context::get_os_typespec()) -// SdaiProduct_concept_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiProduct_concept_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiProduct_concept_context::oodb_reInit () -{ eDesc = config_control_designe_product_concept_context; - attributes [2].aDesc = a_390market_segment_type; -} -#endif - -SdaiProduct_concept_context::SdaiProduct_concept_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiApplication_context_element(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiApplication_context_element */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_product_concept_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_390market_segment_type, &_market_segment_type); -#else - STEPattribute *a = new STEPattribute(*a_390market_segment_type, &_market_segment_type); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiProduct_concept_context::market_segment_type_() const -{ - return (SdaiLabel) _market_segment_type; -} - -void -SdaiProduct_concept_context::market_segment_type_ (const SdaiLabel x) - -{ - _market_segment_type = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY product_concept_context - - -///////// ENTITY cartesian_transformation_operator_2d - -EntityDescriptor *config_control_designe_cartesian_transformation_operator_2d =0; -Derived_attribute *a_391Du =0; -SdaiCartesian_transformation_operator_2d::SdaiCartesian_transformation_operator_2d( ) -{ - - /* parent: SdaiCartesian_transformation_operator */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cartesian_transformation_operator_2d; - MakeDerived ("dim"); - MakeDerived ("scl"); - MakeDerived ("u"); -} -SdaiCartesian_transformation_operator_2d::SdaiCartesian_transformation_operator_2d (SdaiCartesian_transformation_operator_2d& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCartesian_transformation_operator_2d::~SdaiCartesian_transformation_operator_2d () { } - -#ifdef __OSTORE__ - -void -SdaiCartesian_transformation_operator_2d::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCartesian_transformation_operator_2d: virtual access function." << G4endl; - SdaiCartesian_transformation_operator_2d_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCartesian_transformation_operator_2d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCartesian_transformation_operator_2d: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCartesian_transformation_operator_2d *ent = (SdaiCartesian_transformation_operator_2d *)sent; -// SdaiCartesian_transformation_operator_2d *ent = (SdaiCartesian_transformation_operator_2d *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cartesian_transformation_operator_2d; -} - -SCLP23(Application_instance_ptr) -create_SdaiCartesian_transformation_operator_2d(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCartesian_transformation_operator_2d::get_os_typespec()) - SdaiCartesian_transformation_operator_2d; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCartesian_transformation_operator_2d::get_os_typespec()) -// SdaiCartesian_transformation_operator_2d; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCartesian_transformation_operator_2d; -} -#endif - -#ifdef __O3DB__ -void -SdaiCartesian_transformation_operator_2d::oodb_reInit () -{ eDesc = config_control_designe_cartesian_transformation_operator_2d; -} -#endif - -SdaiCartesian_transformation_operator_2d::SdaiCartesian_transformation_operator_2d (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCartesian_transformation_operator(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCartesian_transformation_operator */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cartesian_transformation_operator_2d; - MakeDerived ("dim"); - MakeDerived ("scl"); - MakeDerived ("u"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cartesian_transformation_operator_2d - - -///////// ENTITY surface_patch - -EntityDescriptor *config_control_designe_surface_patch =0; -AttrDescriptor *a_392parent_surface =0; -AttrDescriptor *a_393u_transition =0; -AttrDescriptor *a_394v_transition =0; -AttrDescriptor *a_395u_sense =0; -AttrDescriptor *a_396v_sense =0; -Inverse_attribute *a_397Iusing_surfaces =0; -SdaiSurface_patch::SdaiSurface_patch( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_surface_patch; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_392parent_surface, (SCLP23(Application_instance_ptr) *) &_parent_surface); -#else - STEPattribute *a = new STEPattribute(*a_392parent_surface, (SCLP23(Application_instance_ptr) *) &_parent_surface); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_393u_transition, &_u_transition); -#else - a = new STEPattribute(*a_393u_transition, &_u_transition); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_394v_transition, &_v_transition); -#else - a = new STEPattribute(*a_394v_transition, &_v_transition); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_395u_sense, &_u_sense); -#else - a = new STEPattribute(*a_395u_sense, &_u_sense); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_396v_sense, &_v_sense); -#else - a = new STEPattribute(*a_396v_sense, &_v_sense); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiSurface_patch::SdaiSurface_patch (SdaiSurface_patch& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSurface_patch::~SdaiSurface_patch () { } - -#ifdef __OSTORE__ - -void -SdaiSurface_patch::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_patch: virtual access function." << G4endl; - SdaiSurface_patch_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSurface_patch_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_patch: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSurface_patch *ent = (SdaiSurface_patch *)sent; -// SdaiSurface_patch *ent = (SdaiSurface_patch *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_surface_patch; - ent->attributes[0].aDesc = a_392parent_surface; - if(ent->_parent_surface == 0) - ent->_parent_surface = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_393u_transition; - ent->attributes[2].aDesc = a_394v_transition; - ent->attributes[3].aDesc = a_395u_sense; - ent->attributes[4].aDesc = a_396v_sense; -} - -SCLP23(Application_instance_ptr) -create_SdaiSurface_patch(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSurface_patch::get_os_typespec()) - SdaiSurface_patch; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSurface_patch::get_os_typespec()) -// SdaiSurface_patch; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSurface_patch; -} -#endif - -#ifdef __O3DB__ -void -SdaiSurface_patch::oodb_reInit () -{ eDesc = config_control_designe_surface_patch; - attributes [0].aDesc = a_392parent_surface; - attributes [1].aDesc = a_393u_transition; - attributes [2].aDesc = a_394v_transition; - attributes [3].aDesc = a_395u_sense; - attributes [4].aDesc = a_396v_sense; -} -#endif - -SdaiSurface_patch::SdaiSurface_patch( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_surface_patch; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_392parent_surface, (SCLP23(Application_instance_ptr) *) &_parent_surface); -#else - STEPattribute *a = new STEPattribute(*a_392parent_surface, (SCLP23(Application_instance_ptr) *) &_parent_surface); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_393u_transition, &_u_transition); -#else - a = new STEPattribute(*a_393u_transition, &_u_transition); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_394v_transition, &_v_transition); -#else - a = new STEPattribute(*a_394v_transition, &_v_transition); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_395u_sense, &_u_sense); -#else - a = new STEPattribute(*a_395u_sense, &_u_sense); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_396v_sense, &_v_sense); -#else - a = new STEPattribute(*a_396v_sense, &_v_sense); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiBounded_surface_ptr -SdaiSurface_patch::parent_surface_() const -{ - return (SdaiBounded_surface_ptr) _parent_surface; -} - -void -SdaiSurface_patch::parent_surface_ (const SdaiBounded_surface_ptr x) - -{ - _parent_surface = x; -} - -const SdaiTransition_code_var -SdaiSurface_patch::u_transition_() const -{ - return (Transition_code) _u_transition; -} - -void -SdaiSurface_patch::u_transition_ (const SdaiTransition_code_var x) - -{ - _u_transition.put (x); -} - -const SdaiTransition_code_var -SdaiSurface_patch::v_transition_() const -{ - return (Transition_code) _v_transition; -} - -void -SdaiSurface_patch::v_transition_ (const SdaiTransition_code_var x) - -{ - _v_transition.put (x); -} - -const SCLBOOL(Bool) -SdaiSurface_patch::u_sense_() const -{ - return (SCLBOOL(Bool)) _u_sense; -} - -void -SdaiSurface_patch::u_sense_ (const SCLBOOL(Bool) x) - -{ - _u_sense.put (x); -} - -const SCLBOOL(Bool) -SdaiSurface_patch::v_sense_() const -{ - return (SCLBOOL(Bool)) _v_sense; -} - -void -SdaiSurface_patch::v_sense_ (const SCLBOOL(Bool) x) - -{ - _v_sense.put (x); -} - -const EntityAggregate_ptr -SdaiSurface_patch::using_surfaces_() const -{ - return (EntityAggregate_ptr) &_using_surfaces; -} - -void -SdaiSurface_patch::using_surfaces_ (const EntityAggregate_ptr x) - - { _using_surfaces.ShallowCopy (*x); } - -///////// END_ENTITY surface_patch - - -///////// ENTITY length_unit - -EntityDescriptor *config_control_designe_length_unit =0; -SdaiLength_unit::SdaiLength_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_length_unit; -} -SdaiLength_unit::SdaiLength_unit (SdaiLength_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiLength_unit::~SdaiLength_unit () { } - -#ifdef __OSTORE__ - -void -SdaiLength_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLength_unit: virtual access function." << G4endl; - SdaiLength_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiLength_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLength_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiLength_unit *ent = (SdaiLength_unit *)sent; -// SdaiLength_unit *ent = (SdaiLength_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_length_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiLength_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiLength_unit::get_os_typespec()) - SdaiLength_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiLength_unit::get_os_typespec()) -// SdaiLength_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiLength_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiLength_unit::oodb_reInit () -{ eDesc = config_control_designe_length_unit; -} -#endif - -SdaiLength_unit::SdaiLength_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_length_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY length_unit - - -///////// ENTITY shape_aspect - -EntityDescriptor *config_control_designe_shape_aspect =0; -AttrDescriptor *a_398name =0; -AttrDescriptor *a_399description =0; -AttrDescriptor *a_400of_shape =0; -AttrDescriptor *a_401product_definitional =0; -SdaiShape_aspect::SdaiShape_aspect( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_shape_aspect; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_398name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_398name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_399description, &_description); -#else - a = new STEPattribute(*a_399description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_400of_shape, (SCLP23(Application_instance_ptr) *) &_of_shape); -#else - a = new STEPattribute(*a_400of_shape, (SCLP23(Application_instance_ptr) *) &_of_shape); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_401product_definitional, &_product_definitional); -#else - a = new STEPattribute(*a_401product_definitional, &_product_definitional); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiShape_aspect::SdaiShape_aspect (SdaiShape_aspect& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiShape_aspect::~SdaiShape_aspect () { } - -#ifdef __OSTORE__ - -void -SdaiShape_aspect::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_aspect: virtual access function." << G4endl; - SdaiShape_aspect_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiShape_aspect_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_aspect: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiShape_aspect *ent = (SdaiShape_aspect *)sent; -// SdaiShape_aspect *ent = (SdaiShape_aspect *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_shape_aspect; - ent->attributes[0].aDesc = a_398name; - ent->attributes[1].aDesc = a_399description; - ent->attributes[2].aDesc = a_400of_shape; - if(ent->_of_shape == 0) - ent->_of_shape = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_401product_definitional; -} - -SCLP23(Application_instance_ptr) -create_SdaiShape_aspect(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiShape_aspect::get_os_typespec()) - SdaiShape_aspect; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiShape_aspect::get_os_typespec()) -// SdaiShape_aspect; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiShape_aspect; -} -#endif - -#ifdef __O3DB__ -void -SdaiShape_aspect::oodb_reInit () -{ eDesc = config_control_designe_shape_aspect; - attributes [0].aDesc = a_398name; - attributes [1].aDesc = a_399description; - attributes [2].aDesc = a_400of_shape; - attributes [3].aDesc = a_401product_definitional; -} -#endif - -SdaiShape_aspect::SdaiShape_aspect( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_shape_aspect; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_398name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_398name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_399description, &_description); -#else - a = new STEPattribute(*a_399description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_400of_shape, (SCLP23(Application_instance_ptr) *) &_of_shape); -#else - a = new STEPattribute(*a_400of_shape, (SCLP23(Application_instance_ptr) *) &_of_shape); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_401product_definitional, &_product_definitional); -#else - a = new STEPattribute(*a_401product_definitional, &_product_definitional); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiShape_aspect::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiShape_aspect::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiShape_aspect::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiShape_aspect::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiProduct_definition_shape_ptr -SdaiShape_aspect::of_shape_() const -{ - return (SdaiProduct_definition_shape_ptr) _of_shape; -} - -void -SdaiShape_aspect::of_shape_ (const SdaiProduct_definition_shape_ptr x) - -{ - _of_shape = x; -} - -const SCLLOG(Logical) -SdaiShape_aspect::product_definitional_() const -{ - return (SCLLOG(Logical)) _product_definitional; -} - -void -SdaiShape_aspect::product_definitional_ (const SCLLOG(Logical) x) - -{ - _product_definitional.put (x); -} - -///////// END_ENTITY shape_aspect - - -///////// ENTITY volume_measure_with_unit - -EntityDescriptor *config_control_designe_volume_measure_with_unit =0; -SdaiVolume_measure_with_unit::SdaiVolume_measure_with_unit( ) -{ - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_volume_measure_with_unit; -} -SdaiVolume_measure_with_unit::SdaiVolume_measure_with_unit (SdaiVolume_measure_with_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiVolume_measure_with_unit::~SdaiVolume_measure_with_unit () { } - -#ifdef __OSTORE__ - -void -SdaiVolume_measure_with_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVolume_measure_with_unit: virtual access function." << G4endl; - SdaiVolume_measure_with_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiVolume_measure_with_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVolume_measure_with_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiVolume_measure_with_unit *ent = (SdaiVolume_measure_with_unit *)sent; -// SdaiVolume_measure_with_unit *ent = (SdaiVolume_measure_with_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_volume_measure_with_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiVolume_measure_with_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiVolume_measure_with_unit::get_os_typespec()) - SdaiVolume_measure_with_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiVolume_measure_with_unit::get_os_typespec()) -// SdaiVolume_measure_with_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiVolume_measure_with_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiVolume_measure_with_unit::oodb_reInit () -{ eDesc = config_control_designe_volume_measure_with_unit; -} -#endif - -SdaiVolume_measure_with_unit::SdaiVolume_measure_with_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiMeasure_with_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiMeasure_with_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_volume_measure_with_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY volume_measure_with_unit - - -///////// ENTITY advanced_face - -EntityDescriptor *config_control_designe_advanced_face =0; -SdaiAdvanced_face::SdaiAdvanced_face( ) -{ - - /* parent: SdaiFace_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_advanced_face; - MakeDerived ("dim"); -} -SdaiAdvanced_face::SdaiAdvanced_face (SdaiAdvanced_face& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiAdvanced_face::~SdaiAdvanced_face () { } - -#ifdef __OSTORE__ - -void -SdaiAdvanced_face::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAdvanced_face: virtual access function." << G4endl; - SdaiAdvanced_face_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiAdvanced_face_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiAdvanced_face: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiAdvanced_face *ent = (SdaiAdvanced_face *)sent; -// SdaiAdvanced_face *ent = (SdaiAdvanced_face *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_advanced_face; -} - -SCLP23(Application_instance_ptr) -create_SdaiAdvanced_face(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiAdvanced_face::get_os_typespec()) - SdaiAdvanced_face; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiAdvanced_face::get_os_typespec()) -// SdaiAdvanced_face; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiAdvanced_face; -} -#endif - -#ifdef __O3DB__ -void -SdaiAdvanced_face::oodb_reInit () -{ eDesc = config_control_designe_advanced_face; -} -#endif - -SdaiAdvanced_face::SdaiAdvanced_face (SCLP23(Application_instance) *se, int *addAttrs) : SdaiFace_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiFace_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_advanced_face; - MakeDerived ("dim"); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY advanced_face - - -///////// ENTITY security_classification_level - -EntityDescriptor *config_control_designe_security_classification_level =0; -AttrDescriptor *a_402name =0; -SdaiSecurity_classification_level::SdaiSecurity_classification_level( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_security_classification_level; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_402name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_402name, &_name); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiSecurity_classification_level::SdaiSecurity_classification_level (SdaiSecurity_classification_level& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSecurity_classification_level::~SdaiSecurity_classification_level () { } - -#ifdef __OSTORE__ - -void -SdaiSecurity_classification_level::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSecurity_classification_level: virtual access function." << G4endl; - SdaiSecurity_classification_level_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSecurity_classification_level_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSecurity_classification_level: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSecurity_classification_level *ent = (SdaiSecurity_classification_level *)sent; -// SdaiSecurity_classification_level *ent = (SdaiSecurity_classification_level *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_security_classification_level; - ent->attributes[0].aDesc = a_402name; -} - -SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification_level(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSecurity_classification_level::get_os_typespec()) - SdaiSecurity_classification_level; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSecurity_classification_level::get_os_typespec()) -// SdaiSecurity_classification_level; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification_level; -} -#endif - -#ifdef __O3DB__ -void -SdaiSecurity_classification_level::oodb_reInit () -{ eDesc = config_control_designe_security_classification_level; - attributes [0].aDesc = a_402name; -} -#endif - -SdaiSecurity_classification_level::SdaiSecurity_classification_level( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_security_classification_level; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_402name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_402name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiSecurity_classification_level::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiSecurity_classification_level::name_ (const SdaiLabel x) - -{ - _name = x; -} - -///////// END_ENTITY security_classification_level - - -///////// ENTITY approval_relationship - -EntityDescriptor *config_control_designe_approval_relationship =0; -AttrDescriptor *a_403name =0; -AttrDescriptor *a_404description =0; -AttrDescriptor *a_405relating_approval =0; -AttrDescriptor *a_406related_approval =0; -SdaiApproval_relationship::SdaiApproval_relationship( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_403name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_403name, &_name); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_404description, &_description); -#else - a = new STEPattribute(*a_404description, &_description); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_405relating_approval, (SCLP23(Application_instance_ptr) *) &_relating_approval); -#else - a = new STEPattribute(*a_405relating_approval, (SCLP23(Application_instance_ptr) *) &_relating_approval); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_406related_approval, (SCLP23(Application_instance_ptr) *) &_related_approval); -#else - a = new STEPattribute(*a_406related_approval, (SCLP23(Application_instance_ptr) *) &_related_approval); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApproval_relationship::SdaiApproval_relationship (SdaiApproval_relationship& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApproval_relationship::~SdaiApproval_relationship () { } - -#ifdef __OSTORE__ - -void -SdaiApproval_relationship::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_relationship: virtual access function." << G4endl; - SdaiApproval_relationship_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApproval_relationship_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_relationship: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApproval_relationship *ent = (SdaiApproval_relationship *)sent; -// SdaiApproval_relationship *ent = (SdaiApproval_relationship *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_approval_relationship; - ent->attributes[0].aDesc = a_403name; - ent->attributes[1].aDesc = a_404description; - ent->attributes[2].aDesc = a_405relating_approval; - if(ent->_relating_approval == 0) - ent->_relating_approval = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_406related_approval; - if(ent->_related_approval == 0) - ent->_related_approval = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiApproval_relationship(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApproval_relationship::get_os_typespec()) - SdaiApproval_relationship; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApproval_relationship::get_os_typespec()) -// SdaiApproval_relationship; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApproval_relationship; -} -#endif - -#ifdef __O3DB__ -void -SdaiApproval_relationship::oodb_reInit () -{ eDesc = config_control_designe_approval_relationship; - attributes [0].aDesc = a_403name; - attributes [1].aDesc = a_404description; - attributes [2].aDesc = a_405relating_approval; - attributes [3].aDesc = a_406related_approval; -} -#endif - -SdaiApproval_relationship::SdaiApproval_relationship( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_relationship; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_403name, &_name); -#else - STEPattribute *a = new STEPattribute(*a_403name, &_name); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_404description, &_description); -#else - a = new STEPattribute(*a_404description, &_description); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_405relating_approval, (SCLP23(Application_instance_ptr) *) &_relating_approval); -#else - a = new STEPattribute(*a_405relating_approval, (SCLP23(Application_instance_ptr) *) &_relating_approval); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_406related_approval, (SCLP23(Application_instance_ptr) *) &_related_approval); -#else - a = new STEPattribute(*a_406related_approval, (SCLP23(Application_instance_ptr) *) &_related_approval); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiLabel -SdaiApproval_relationship::name_() const -{ - return (SdaiLabel) _name; -} - -void -SdaiApproval_relationship::name_ (const SdaiLabel x) - -{ - _name = x; -} - -const SdaiText -SdaiApproval_relationship::description_() const -{ - return (SdaiText) _description; -} - -void -SdaiApproval_relationship::description_ (const SdaiText x) - -{ - _description = x; -} - -const SdaiApproval_ptr -SdaiApproval_relationship::relating_approval_() const -{ - return (SdaiApproval_ptr) _relating_approval; -} - -void -SdaiApproval_relationship::relating_approval_ (const SdaiApproval_ptr x) - -{ - _relating_approval = x; -} - -const SdaiApproval_ptr -SdaiApproval_relationship::related_approval_() const -{ - return (SdaiApproval_ptr) _related_approval; -} - -void -SdaiApproval_relationship::related_approval_ (const SdaiApproval_ptr x) - -{ - _related_approval = x; -} - -///////// END_ENTITY approval_relationship - - -///////// ENTITY polyline - -EntityDescriptor *config_control_designe_polyline =0; -AttrDescriptor *a_407points =0; -SdaiPolyline::SdaiPolyline( ) -{ - - /* parent: SdaiBounded_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_polyline; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_407points, &_points); -#else - STEPattribute *a = new STEPattribute(*a_407points, &_points); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiPolyline::SdaiPolyline (SdaiPolyline& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPolyline::~SdaiPolyline () { } - -#ifdef __OSTORE__ - -void -SdaiPolyline::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPolyline: virtual access function." << G4endl; - SdaiPolyline_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPolyline_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPolyline: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPolyline *ent = (SdaiPolyline *)sent; -// SdaiPolyline *ent = (SdaiPolyline *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_polyline; - ent->attributes[1].aDesc = a_407points; -} - -SCLP23(Application_instance_ptr) -create_SdaiPolyline(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPolyline::get_os_typespec()) - SdaiPolyline; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPolyline::get_os_typespec()) -// SdaiPolyline; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPolyline; -} -#endif - -#ifdef __O3DB__ -void -SdaiPolyline::oodb_reInit () -{ eDesc = config_control_designe_polyline; - attributes [1].aDesc = a_407points; -} -#endif - -SdaiPolyline::SdaiPolyline (SCLP23(Application_instance) *se, int *addAttrs) : SdaiBounded_curve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiBounded_curve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_polyline; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_407points, &_points); -#else - STEPattribute *a = new STEPattribute(*a_407points, &_points); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const EntityAggregate_ptr -SdaiPolyline::points_() const -{ - return (EntityAggregate_ptr) &_points; -} - -void -SdaiPolyline::points_ (const EntityAggregate_ptr x) - - { _points.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY polyline - - -///////// ENTITY approval_person_organization - -EntityDescriptor *config_control_designe_approval_person_organization =0; -AttrDescriptor *a_408person_organization =0; -AttrDescriptor *a_409authorized_approval =0; -AttrDescriptor *a_410role =0; -SdaiApproval_person_organization::SdaiApproval_person_organization( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_person_organization; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_408person_organization, &_person_organization); -#else - STEPattribute *a = new STEPattribute(*a_408person_organization, &_person_organization); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_409authorized_approval, (SCLP23(Application_instance_ptr) *) &_authorized_approval); -#else - a = new STEPattribute(*a_409authorized_approval, (SCLP23(Application_instance_ptr) *) &_authorized_approval); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_410role, (SCLP23(Application_instance_ptr) *) &_role); -#else - a = new STEPattribute(*a_410role, (SCLP23(Application_instance_ptr) *) &_role); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiApproval_person_organization::SdaiApproval_person_organization (SdaiApproval_person_organization& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiApproval_person_organization::~SdaiApproval_person_organization () { } - -#ifdef __OSTORE__ - -void -SdaiApproval_person_organization::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_person_organization: virtual access function." << G4endl; - SdaiApproval_person_organization_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiApproval_person_organization_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiApproval_person_organization: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiApproval_person_organization *ent = (SdaiApproval_person_organization *)sent; -// SdaiApproval_person_organization *ent = (SdaiApproval_person_organization *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_approval_person_organization; - ent->attributes[0].aDesc = a_408person_organization; - ent->attributes[1].aDesc = a_409authorized_approval; - if(ent->_authorized_approval == 0) - ent->_authorized_approval = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_410role; - if(ent->_role == 0) - ent->_role = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiApproval_person_organization(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiApproval_person_organization::get_os_typespec()) - SdaiApproval_person_organization; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiApproval_person_organization::get_os_typespec()) -// SdaiApproval_person_organization; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiApproval_person_organization; -} -#endif - -#ifdef __O3DB__ -void -SdaiApproval_person_organization::oodb_reInit () -{ eDesc = config_control_designe_approval_person_organization; - attributes [0].aDesc = a_408person_organization; - attributes [1].aDesc = a_409authorized_approval; - attributes [2].aDesc = a_410role; -} -#endif - -SdaiApproval_person_organization::SdaiApproval_person_organization( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_approval_person_organization; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_408person_organization, &_person_organization); -#else - STEPattribute *a = new STEPattribute(*a_408person_organization, &_person_organization); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_409authorized_approval, (SCLP23(Application_instance_ptr) *) &_authorized_approval); -#else - a = new STEPattribute(*a_409authorized_approval, (SCLP23(Application_instance_ptr) *) &_authorized_approval); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_410role, (SCLP23(Application_instance_ptr) *) &_role); -#else - a = new STEPattribute(*a_410role, (SCLP23(Application_instance_ptr) *) &_role); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiPerson_organization_select_ptr -SdaiApproval_person_organization::person_organization_() const - { return (SdaiPerson_organization_select_ptr) &_person_organization; } - -void -SdaiApproval_person_organization::person_organization_ (const SdaiPerson_organization_select_ptr x) - - { _person_organization = x; } - -const SdaiApproval_ptr -SdaiApproval_person_organization::authorized_approval_() const -{ - return (SdaiApproval_ptr) _authorized_approval; -} - -void -SdaiApproval_person_organization::authorized_approval_ (const SdaiApproval_ptr x) - -{ - _authorized_approval = x; -} - -const SdaiApproval_role_ptr -SdaiApproval_person_organization::role_() const -{ - return (SdaiApproval_role_ptr) _role; -} - -void -SdaiApproval_person_organization::role_ (const SdaiApproval_role_ptr x) - -{ - _role = x; -} - -///////// END_ENTITY approval_person_organization - - -///////// ENTITY surface_replica - -EntityDescriptor *config_control_designe_surface_replica =0; -AttrDescriptor *a_411parent_surface =0; -AttrDescriptor *a_412transformation =0; -SdaiSurface_replica::SdaiSurface_replica( ) -{ - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface_replica; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_411parent_surface, (SCLP23(Application_instance_ptr) *) &_parent_surface); -#else - STEPattribute *a = new STEPattribute(*a_411parent_surface, (SCLP23(Application_instance_ptr) *) &_parent_surface); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_412transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#else - a = new STEPattribute(*a_412transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiSurface_replica::SdaiSurface_replica (SdaiSurface_replica& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSurface_replica::~SdaiSurface_replica () { } - -#ifdef __OSTORE__ - -void -SdaiSurface_replica::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_replica: virtual access function." << G4endl; - SdaiSurface_replica_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSurface_replica_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSurface_replica: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSurface_replica *ent = (SdaiSurface_replica *)sent; -// SdaiSurface_replica *ent = (SdaiSurface_replica *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_surface_replica; - ent->attributes[1].aDesc = a_411parent_surface; - if(ent->_parent_surface == 0) - ent->_parent_surface = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_412transformation; - if(ent->_transformation == 0) - ent->_transformation = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiSurface_replica(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSurface_replica::get_os_typespec()) - SdaiSurface_replica; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSurface_replica::get_os_typespec()) -// SdaiSurface_replica; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSurface_replica; -} -#endif - -#ifdef __O3DB__ -void -SdaiSurface_replica::oodb_reInit () -{ eDesc = config_control_designe_surface_replica; - attributes [1].aDesc = a_411parent_surface; - attributes [2].aDesc = a_412transformation; -} -#endif - -SdaiSurface_replica::SdaiSurface_replica (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSurface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSurface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_surface_replica; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_411parent_surface, (SCLP23(Application_instance_ptr) *) &_parent_surface); -#else - STEPattribute *a = new STEPattribute(*a_411parent_surface, (SCLP23(Application_instance_ptr) *) &_parent_surface); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_412transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#else - a = new STEPattribute(*a_412transformation, (SCLP23(Application_instance_ptr) *) &_transformation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiSurface_ptr -SdaiSurface_replica::parent_surface_() const -{ - return (SdaiSurface_ptr) _parent_surface; -} - -void -SdaiSurface_replica::parent_surface_ (const SdaiSurface_ptr x) - -{ - _parent_surface = x; -} - -const SdaiCartesian_transformation_operator_3d_ptr -SdaiSurface_replica::transformation_() const -{ - return (SdaiCartesian_transformation_operator_3d_ptr) _transformation; -} - -void -SdaiSurface_replica::transformation_ (const SdaiCartesian_transformation_operator_3d_ptr x) - -{ - _transformation = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY surface_replica - - -///////// ENTITY security_classification_assignment - -EntityDescriptor *config_control_designe_security_classification_assignment =0; -AttrDescriptor *a_413assigned_security_classification =0; -SdaiSecurity_classification_assignment::SdaiSecurity_classification_assignment( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_security_classification_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_413assigned_security_classification, (SCLP23(Application_instance_ptr) *) &_assigned_security_classification); -#else - STEPattribute *a = new STEPattribute(*a_413assigned_security_classification, (SCLP23(Application_instance_ptr) *) &_assigned_security_classification); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiSecurity_classification_assignment::SdaiSecurity_classification_assignment (SdaiSecurity_classification_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiSecurity_classification_assignment::~SdaiSecurity_classification_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiSecurity_classification_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSecurity_classification_assignment: virtual access function." << G4endl; - SdaiSecurity_classification_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiSecurity_classification_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiSecurity_classification_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiSecurity_classification_assignment *ent = (SdaiSecurity_classification_assignment *)sent; -// SdaiSecurity_classification_assignment *ent = (SdaiSecurity_classification_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_security_classification_assignment; - ent->attributes[0].aDesc = a_413assigned_security_classification; - if(ent->_assigned_security_classification == 0) - ent->_assigned_security_classification = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiSecurity_classification_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiSecurity_classification_assignment::get_os_typespec()) - SdaiSecurity_classification_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiSecurity_classification_assignment::get_os_typespec()) -// SdaiSecurity_classification_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiSecurity_classification_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiSecurity_classification_assignment::oodb_reInit () -{ eDesc = config_control_designe_security_classification_assignment; - attributes [0].aDesc = a_413assigned_security_classification; -} -#endif - -SdaiSecurity_classification_assignment::SdaiSecurity_classification_assignment( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_security_classification_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_413assigned_security_classification, (SCLP23(Application_instance_ptr) *) &_assigned_security_classification); -#else - STEPattribute *a = new STEPattribute(*a_413assigned_security_classification, (SCLP23(Application_instance_ptr) *) &_assigned_security_classification); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiSecurity_classification_ptr -SdaiSecurity_classification_assignment::assigned_security_classification_() const -{ - return (SdaiSecurity_classification_ptr) _assigned_security_classification; -} - -void -SdaiSecurity_classification_assignment::assigned_security_classification_ (const SdaiSecurity_classification_ptr x) - -{ - _assigned_security_classification = x; -} - -///////// END_ENTITY security_classification_assignment - - -///////// ENTITY cc_design_security_classification - -EntityDescriptor *config_control_designe_cc_design_security_classification =0; -AttrDescriptor *a_414items =0; -SdaiCc_design_security_classification::SdaiCc_design_security_classification( ) -{ - - /* parent: SdaiSecurity_classification_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_security_classification; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_414items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_414items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCc_design_security_classification::SdaiCc_design_security_classification (SdaiCc_design_security_classification& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCc_design_security_classification::~SdaiCc_design_security_classification () { } - -#ifdef __OSTORE__ - -void -SdaiCc_design_security_classification::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_security_classification: virtual access function." << G4endl; - SdaiCc_design_security_classification_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCc_design_security_classification_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_security_classification: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCc_design_security_classification *ent = (SdaiCc_design_security_classification *)sent; -// SdaiCc_design_security_classification *ent = (SdaiCc_design_security_classification *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cc_design_security_classification; - ent->attributes[1].aDesc = a_414items; -} - -SCLP23(Application_instance_ptr) -create_SdaiCc_design_security_classification(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCc_design_security_classification::get_os_typespec()) - SdaiCc_design_security_classification; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCc_design_security_classification::get_os_typespec()) -// SdaiCc_design_security_classification; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCc_design_security_classification; -} -#endif - -#ifdef __O3DB__ -void -SdaiCc_design_security_classification::oodb_reInit () -{ eDesc = config_control_designe_cc_design_security_classification; - attributes [1].aDesc = a_414items; -} -#endif - -SdaiCc_design_security_classification::SdaiCc_design_security_classification (SCLP23(Application_instance) *se, int *addAttrs) : SdaiSecurity_classification_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiSecurity_classification_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_security_classification; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_414items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_414items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiClassified_items_ptr -SdaiCc_design_security_classification::items_() const -{ - return (SdaiClassified_items_ptr) &_items; -} - -void -SdaiCc_design_security_classification::items_ (const SdaiClassified_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cc_design_security_classification - - -///////// ENTITY faceted_brep_shape_representation - -EntityDescriptor *config_control_designe_faceted_brep_shape_representation =0; -SdaiFaceted_brep_shape_representation::SdaiFaceted_brep_shape_representation( ) -{ - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_faceted_brep_shape_representation; -} -SdaiFaceted_brep_shape_representation::SdaiFaceted_brep_shape_representation (SdaiFaceted_brep_shape_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiFaceted_brep_shape_representation::~SdaiFaceted_brep_shape_representation () { } - -#ifdef __OSTORE__ - -void -SdaiFaceted_brep_shape_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFaceted_brep_shape_representation: virtual access function." << G4endl; - SdaiFaceted_brep_shape_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiFaceted_brep_shape_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiFaceted_brep_shape_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiFaceted_brep_shape_representation *ent = (SdaiFaceted_brep_shape_representation *)sent; -// SdaiFaceted_brep_shape_representation *ent = (SdaiFaceted_brep_shape_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_faceted_brep_shape_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiFaceted_brep_shape_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiFaceted_brep_shape_representation::get_os_typespec()) - SdaiFaceted_brep_shape_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiFaceted_brep_shape_representation::get_os_typespec()) -// SdaiFaceted_brep_shape_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiFaceted_brep_shape_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiFaceted_brep_shape_representation::oodb_reInit () -{ eDesc = config_control_designe_faceted_brep_shape_representation; -} -#endif - -SdaiFaceted_brep_shape_representation::SdaiFaceted_brep_shape_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiShape_representation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiShape_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_faceted_brep_shape_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY faceted_brep_shape_representation - - -///////// ENTITY document_usage_constraint - -EntityDescriptor *config_control_designe_document_usage_constraint =0; -AttrDescriptor *a_415source =0; -AttrDescriptor *a_416subject_element =0; -AttrDescriptor *a_417subject_element_value =0; -SdaiDocument_usage_constraint::SdaiDocument_usage_constraint( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_document_usage_constraint; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_415source, (SCLP23(Application_instance_ptr) *) &_source); -#else - STEPattribute *a = new STEPattribute(*a_415source, (SCLP23(Application_instance_ptr) *) &_source); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_416subject_element, &_subject_element); -#else - a = new STEPattribute(*a_416subject_element, &_subject_element); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_417subject_element_value, &_subject_element_value); -#else - a = new STEPattribute(*a_417subject_element_value, &_subject_element_value); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiDocument_usage_constraint::SdaiDocument_usage_constraint (SdaiDocument_usage_constraint& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiDocument_usage_constraint::~SdaiDocument_usage_constraint () { } - -#ifdef __OSTORE__ - -void -SdaiDocument_usage_constraint::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_usage_constraint: virtual access function." << G4endl; - SdaiDocument_usage_constraint_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiDocument_usage_constraint_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiDocument_usage_constraint: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiDocument_usage_constraint *ent = (SdaiDocument_usage_constraint *)sent; -// SdaiDocument_usage_constraint *ent = (SdaiDocument_usage_constraint *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_document_usage_constraint; - ent->attributes[0].aDesc = a_415source; - if(ent->_source == 0) - ent->_source = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_416subject_element; - ent->attributes[2].aDesc = a_417subject_element_value; -} - -SCLP23(Application_instance_ptr) -create_SdaiDocument_usage_constraint(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiDocument_usage_constraint::get_os_typespec()) - SdaiDocument_usage_constraint; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiDocument_usage_constraint::get_os_typespec()) -// SdaiDocument_usage_constraint; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiDocument_usage_constraint; -} -#endif - -#ifdef __O3DB__ -void -SdaiDocument_usage_constraint::oodb_reInit () -{ eDesc = config_control_designe_document_usage_constraint; - attributes [0].aDesc = a_415source; - attributes [1].aDesc = a_416subject_element; - attributes [2].aDesc = a_417subject_element_value; -} -#endif - -SdaiDocument_usage_constraint::SdaiDocument_usage_constraint( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_document_usage_constraint; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_415source, (SCLP23(Application_instance_ptr) *) &_source); -#else - STEPattribute *a = new STEPattribute(*a_415source, (SCLP23(Application_instance_ptr) *) &_source); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_416subject_element, &_subject_element); -#else - a = new STEPattribute(*a_416subject_element, &_subject_element); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_417subject_element_value, &_subject_element_value); -#else - a = new STEPattribute(*a_417subject_element_value, &_subject_element_value); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDocument_ptr -SdaiDocument_usage_constraint::source_() const -{ - return (SdaiDocument_ptr) _source; -} - -void -SdaiDocument_usage_constraint::source_ (const SdaiDocument_ptr x) - -{ - _source = x; -} - -const SdaiLabel -SdaiDocument_usage_constraint::subject_element_() const -{ - return (SdaiLabel) _subject_element; -} - -void -SdaiDocument_usage_constraint::subject_element_ (const SdaiLabel x) - -{ - _subject_element = x; -} - -const SdaiText -SdaiDocument_usage_constraint::subject_element_value_() const -{ - return (SdaiText) _subject_element_value; -} - -void -SdaiDocument_usage_constraint::subject_element_value_ (const SdaiText x) - -{ - _subject_element_value = x; -} - -///////// END_ENTITY document_usage_constraint - - -///////// ENTITY vertex_point - -EntityDescriptor *config_control_designe_vertex_point =0; -AttrDescriptor *a_418vertex_geometry =0; -SdaiVertex_point::SdaiVertex_point( ) -{ - - /* parent: SdaiVertex */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiGeometric_representation_item */ - HeadEntity(this); -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - AppendMultInstance(new SdaiGeometric_representation_item(this, attrFlags)); -#endif - AppendMultInstance(new SdaiGeometric_representation_item(this)); - - eDesc = config_control_designe_vertex_point; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_418vertex_geometry, (SCLP23(Application_instance_ptr) *) &_vertex_geometry); -#else - STEPattribute *a = new STEPattribute(*a_418vertex_geometry, (SCLP23(Application_instance_ptr) *) &_vertex_geometry); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiVertex_point::SdaiVertex_point (SdaiVertex_point& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiVertex_point::~SdaiVertex_point () { } - -#ifdef __OSTORE__ - -void -SdaiVertex_point::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVertex_point: virtual access function." << G4endl; - SdaiVertex_point_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiVertex_point_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVertex_point: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiVertex_point *ent = (SdaiVertex_point *)sent; -// SdaiVertex_point *ent = (SdaiVertex_point *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_vertex_point; - ent->attributes[2].aDesc = a_418vertex_geometry; - if(ent->_vertex_geometry == 0) - ent->_vertex_geometry = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiVertex_point(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiVertex_point::get_os_typespec()) - SdaiVertex_point; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiVertex_point::get_os_typespec()) -// SdaiVertex_point; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiVertex_point; -} -#endif - -#ifdef __O3DB__ -void -SdaiVertex_point::oodb_reInit () -{ eDesc = config_control_designe_vertex_point; - attributes [2].aDesc = a_418vertex_geometry; -} -#endif - -SdaiVertex_point::SdaiVertex_point (SCLP23(Application_instance) *se, int *addAttrs) : SdaiVertex(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiVertex */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiGeometric_representation_item */ -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - se->AppendMultInstance(new SdaiGeometric_representation_item(se, attrFlags)); -#endif - se->AppendMultInstance(new SdaiGeometric_representation_item(se, 0)); - - eDesc = config_control_designe_vertex_point; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_418vertex_geometry, (SCLP23(Application_instance_ptr) *) &_vertex_geometry); -#else - STEPattribute *a = new STEPattribute(*a_418vertex_geometry, (SCLP23(Application_instance_ptr) *) &_vertex_geometry); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiPoint_ptr -SdaiVertex_point::vertex_geometry_() const -{ - return (SdaiPoint_ptr) _vertex_geometry; -} - -void -SdaiVertex_point::vertex_geometry_ (const SdaiPoint_ptr x) - -{ - _vertex_geometry = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -#endif - -///////// END_ENTITY vertex_point - - -///////// ENTITY cc_design_date_and_time_assignment - -EntityDescriptor *config_control_designe_cc_design_date_and_time_assignment =0; -AttrDescriptor *a_419items =0; -SdaiCc_design_date_and_time_assignment::SdaiCc_design_date_and_time_assignment( ) -{ - - /* parent: SdaiDate_and_time_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_date_and_time_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_419items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_419items, &_items); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiCc_design_date_and_time_assignment::SdaiCc_design_date_and_time_assignment (SdaiCc_design_date_and_time_assignment& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCc_design_date_and_time_assignment::~SdaiCc_design_date_and_time_assignment () { } - -#ifdef __OSTORE__ - -void -SdaiCc_design_date_and_time_assignment::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_date_and_time_assignment: virtual access function." << G4endl; - SdaiCc_design_date_and_time_assignment_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCc_design_date_and_time_assignment_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCc_design_date_and_time_assignment: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCc_design_date_and_time_assignment *ent = (SdaiCc_design_date_and_time_assignment *)sent; -// SdaiCc_design_date_and_time_assignment *ent = (SdaiCc_design_date_and_time_assignment *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cc_design_date_and_time_assignment; - ent->attributes[2].aDesc = a_419items; -} - -SCLP23(Application_instance_ptr) -create_SdaiCc_design_date_and_time_assignment(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCc_design_date_and_time_assignment::get_os_typespec()) - SdaiCc_design_date_and_time_assignment; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCc_design_date_and_time_assignment::get_os_typespec()) -// SdaiCc_design_date_and_time_assignment; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCc_design_date_and_time_assignment; -} -#endif - -#ifdef __O3DB__ -void -SdaiCc_design_date_and_time_assignment::oodb_reInit () -{ eDesc = config_control_designe_cc_design_date_and_time_assignment; - attributes [2].aDesc = a_419items; -} -#endif - -SdaiCc_design_date_and_time_assignment::SdaiCc_design_date_and_time_assignment (SCLP23(Application_instance) *se, int *addAttrs) : SdaiDate_and_time_assignment(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiDate_and_time_assignment */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cc_design_date_and_time_assignment; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_419items, &_items); -#else - STEPattribute *a = new STEPattribute(*a_419items, &_items); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiDate_time_items_ptr -SdaiCc_design_date_and_time_assignment::items_() const -{ - return (SdaiDate_time_items_ptr) &_items; -} - -void -SdaiCc_design_date_and_time_assignment::items_ (const SdaiDate_time_items_ptr x) - - { _items.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cc_design_date_and_time_assignment - - -///////// ENTITY oriented_closed_shell - -EntityDescriptor *config_control_designe_oriented_closed_shell =0; -AttrDescriptor *a_420closed_shell_element =0; -AttrDescriptor *a_421orientation =0; -Derived_attribute *a_422Dconnected_face_set_cfs_faces =0; -SdaiOriented_closed_shell::SdaiOriented_closed_shell( ) -{ - - /* parent: SdaiClosed_shell */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_closed_shell; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_420closed_shell_element, (SCLP23(Application_instance_ptr) *) &_closed_shell_element); -#else - STEPattribute *a = new STEPattribute(*a_420closed_shell_element, (SCLP23(Application_instance_ptr) *) &_closed_shell_element); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_421orientation, &_orientation); -#else - a = new STEPattribute(*a_421orientation, &_orientation); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("cfs_faces"); -} -SdaiOriented_closed_shell::SdaiOriented_closed_shell (SdaiOriented_closed_shell& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOriented_closed_shell::~SdaiOriented_closed_shell () { } - -#ifdef __OSTORE__ - -void -SdaiOriented_closed_shell::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_closed_shell: virtual access function." << G4endl; - SdaiOriented_closed_shell_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOriented_closed_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOriented_closed_shell: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOriented_closed_shell *ent = (SdaiOriented_closed_shell *)sent; -// SdaiOriented_closed_shell *ent = (SdaiOriented_closed_shell *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_oriented_closed_shell; - ent->attributes[2].aDesc = a_420closed_shell_element; - if(ent->_closed_shell_element == 0) - ent->_closed_shell_element = S_ENTITY_NULL; - ent->attributes[3].aDesc = a_421orientation; -} - -SCLP23(Application_instance_ptr) -create_SdaiOriented_closed_shell(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOriented_closed_shell::get_os_typespec()) - SdaiOriented_closed_shell; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOriented_closed_shell::get_os_typespec()) -// SdaiOriented_closed_shell; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOriented_closed_shell; -} -#endif - -#ifdef __O3DB__ -void -SdaiOriented_closed_shell::oodb_reInit () -{ eDesc = config_control_designe_oriented_closed_shell; - attributes [2].aDesc = a_420closed_shell_element; - attributes [3].aDesc = a_421orientation; -} -#endif - -SdaiOriented_closed_shell::SdaiOriented_closed_shell (SCLP23(Application_instance) *se, int *addAttrs) : SdaiClosed_shell(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiClosed_shell */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_oriented_closed_shell; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_420closed_shell_element, (SCLP23(Application_instance_ptr) *) &_closed_shell_element); -#else - STEPattribute *a = new STEPattribute(*a_420closed_shell_element, (SCLP23(Application_instance_ptr) *) &_closed_shell_element); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_421orientation, &_orientation); -#else - a = new STEPattribute(*a_421orientation, &_orientation); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("cfs_faces"); -} - -const SdaiClosed_shell_ptr -SdaiOriented_closed_shell::closed_shell_element_() const -{ - return (SdaiClosed_shell_ptr) _closed_shell_element; -} - -void -SdaiOriented_closed_shell::closed_shell_element_ (const SdaiClosed_shell_ptr x) - -{ - _closed_shell_element = x; -} - -const SCLBOOL(Bool) -SdaiOriented_closed_shell::orientation_() const -{ - return (SCLBOOL(Bool)) _orientation; -} - -void -SdaiOriented_closed_shell::orientation_ (const SCLBOOL(Bool) x) - -{ - _orientation.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY oriented_closed_shell - - -///////// ENTITY person_and_organization - -EntityDescriptor *config_control_designe_person_and_organization =0; -AttrDescriptor *a_423the_person =0; -AttrDescriptor *a_424the_organization =0; -SdaiPerson_and_organization::SdaiPerson_and_organization( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_person_and_organization; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_423the_person, (SCLP23(Application_instance_ptr) *) &_the_person); -#else - STEPattribute *a = new STEPattribute(*a_423the_person, (SCLP23(Application_instance_ptr) *) &_the_person); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_424the_organization, (SCLP23(Application_instance_ptr) *) &_the_organization); -#else - a = new STEPattribute(*a_424the_organization, (SCLP23(Application_instance_ptr) *) &_the_organization); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiPerson_and_organization::SdaiPerson_and_organization (SdaiPerson_and_organization& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPerson_and_organization::~SdaiPerson_and_organization () { } - -#ifdef __OSTORE__ - -void -SdaiPerson_and_organization::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPerson_and_organization: virtual access function." << G4endl; - SdaiPerson_and_organization_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPerson_and_organization_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPerson_and_organization: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPerson_and_organization *ent = (SdaiPerson_and_organization *)sent; -// SdaiPerson_and_organization *ent = (SdaiPerson_and_organization *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_person_and_organization; - ent->attributes[0].aDesc = a_423the_person; - if(ent->_the_person == 0) - ent->_the_person = S_ENTITY_NULL; - ent->attributes[1].aDesc = a_424the_organization; - if(ent->_the_organization == 0) - ent->_the_organization = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiPerson_and_organization(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPerson_and_organization::get_os_typespec()) - SdaiPerson_and_organization; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPerson_and_organization::get_os_typespec()) -// SdaiPerson_and_organization; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPerson_and_organization; -} -#endif - -#ifdef __O3DB__ -void -SdaiPerson_and_organization::oodb_reInit () -{ eDesc = config_control_designe_person_and_organization; - attributes [0].aDesc = a_423the_person; - attributes [1].aDesc = a_424the_organization; -} -#endif - -SdaiPerson_and_organization::SdaiPerson_and_organization( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_person_and_organization; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_423the_person, (SCLP23(Application_instance_ptr) *) &_the_person); -#else - STEPattribute *a = new STEPattribute(*a_423the_person, (SCLP23(Application_instance_ptr) *) &_the_person); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_424the_organization, (SCLP23(Application_instance_ptr) *) &_the_organization); -#else - a = new STEPattribute(*a_424the_organization, (SCLP23(Application_instance_ptr) *) &_the_organization); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiPerson_ptr -SdaiPerson_and_organization::the_person_() const -{ - return (SdaiPerson_ptr) _the_person; -} - -void -SdaiPerson_and_organization::the_person_ (const SdaiPerson_ptr x) - -{ - _the_person = x; -} - -const SdaiOrganization_ptr -SdaiPerson_and_organization::the_organization_() const -{ - return (SdaiOrganization_ptr) _the_organization; -} - -void -SdaiPerson_and_organization::the_organization_ (const SdaiOrganization_ptr x) - -{ - _the_organization = x; -} - -///////// END_ENTITY person_and_organization - - -///////// ENTITY cylindrical_surface - -EntityDescriptor *config_control_designe_cylindrical_surface =0; -AttrDescriptor *a_425radius =0; -SdaiCylindrical_surface::SdaiCylindrical_surface( ) -{ - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cylindrical_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_425radius, &_radius); -#else - STEPattribute *a = new STEPattribute(*a_425radius, &_radius); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiCylindrical_surface::SdaiCylindrical_surface (SdaiCylindrical_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiCylindrical_surface::~SdaiCylindrical_surface () { } - -#ifdef __OSTORE__ - -void -SdaiCylindrical_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCylindrical_surface: virtual access function." << G4endl; - SdaiCylindrical_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiCylindrical_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiCylindrical_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiCylindrical_surface *ent = (SdaiCylindrical_surface *)sent; -// SdaiCylindrical_surface *ent = (SdaiCylindrical_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_cylindrical_surface; - ent->attributes[2].aDesc = a_425radius; -} - -SCLP23(Application_instance_ptr) -create_SdaiCylindrical_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiCylindrical_surface::get_os_typespec()) - SdaiCylindrical_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiCylindrical_surface::get_os_typespec()) -// SdaiCylindrical_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiCylindrical_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiCylindrical_surface::oodb_reInit () -{ eDesc = config_control_designe_cylindrical_surface; - attributes [2].aDesc = a_425radius; -} -#endif - -SdaiCylindrical_surface::SdaiCylindrical_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiElementary_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_cylindrical_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_425radius, &_radius); -#else - STEPattribute *a = new STEPattribute(*a_425radius, &_radius); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiPositive_length_measure -SdaiCylindrical_surface::radius_() const -{ - return (SdaiPositive_length_measure) _radius; -} - -void -SdaiCylindrical_surface::radius_ (const SdaiPositive_length_measure x) - -{ - _radius = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY cylindrical_surface - - -///////// ENTITY local_time - -EntityDescriptor *config_control_designe_local_time =0; -AttrDescriptor *a_426hour_component =0; -AttrDescriptor *a_427minute_component =0; -AttrDescriptor *a_428second_component =0; -AttrDescriptor *a_429zone =0; -SdaiLocal_time::SdaiLocal_time( ) -{ - - /* no SuperTypes */ - - eDesc = config_control_designe_local_time; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_426hour_component, &_hour_component); -#else - STEPattribute *a = new STEPattribute(*a_426hour_component, &_hour_component); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_427minute_component, &_minute_component); -#else - a = new STEPattribute(*a_427minute_component, &_minute_component); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_428second_component, &_second_component); -#else - a = new STEPattribute(*a_428second_component, &_second_component); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_429zone, (SCLP23(Application_instance_ptr) *) &_zone); -#else - a = new STEPattribute(*a_429zone, (SCLP23(Application_instance_ptr) *) &_zone); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiLocal_time::SdaiLocal_time (SdaiLocal_time& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiLocal_time::~SdaiLocal_time () { } - -#ifdef __OSTORE__ - -void -SdaiLocal_time::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLocal_time: virtual access function." << G4endl; - SdaiLocal_time_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiLocal_time_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiLocal_time: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiLocal_time *ent = (SdaiLocal_time *)sent; -// SdaiLocal_time *ent = (SdaiLocal_time *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_local_time; - ent->attributes[0].aDesc = a_426hour_component; - ent->attributes[1].aDesc = a_427minute_component; - ent->attributes[2].aDesc = a_428second_component; - ent->attributes[3].aDesc = a_429zone; - if(ent->_zone == 0) - ent->_zone = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiLocal_time(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiLocal_time::get_os_typespec()) - SdaiLocal_time; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiLocal_time::get_os_typespec()) -// SdaiLocal_time; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiLocal_time; -} -#endif - -#ifdef __O3DB__ -void -SdaiLocal_time::oodb_reInit () -{ eDesc = config_control_designe_local_time; - attributes [0].aDesc = a_426hour_component; - attributes [1].aDesc = a_427minute_component; - attributes [2].aDesc = a_428second_component; - attributes [3].aDesc = a_429zone; -} -#endif - -SdaiLocal_time::SdaiLocal_time( SCLP23(Application_instance) *se, int *addAttrs) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* no SuperTypes */ - - eDesc = config_control_designe_local_time; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_426hour_component, &_hour_component); -#else - STEPattribute *a = new STEPattribute(*a_426hour_component, &_hour_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_427minute_component, &_minute_component); -#else - a = new STEPattribute(*a_427minute_component, &_minute_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_428second_component, &_second_component); -#else - a = new STEPattribute(*a_428second_component, &_second_component); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_429zone, (SCLP23(Application_instance_ptr) *) &_zone); -#else - a = new STEPattribute(*a_429zone, (SCLP23(Application_instance_ptr) *) &_zone); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiHour_in_day -SdaiLocal_time::hour_component_() const -{ - return (SdaiHour_in_day) _hour_component; -} - -void -SdaiLocal_time::hour_component_ (const SdaiHour_in_day x) - -{ - _hour_component = x; -} - -const SdaiMinute_in_hour -SdaiLocal_time::minute_component_() const -{ - return (SdaiMinute_in_hour) _minute_component; -} - -void -SdaiLocal_time::minute_component_ (const SdaiMinute_in_hour x) - -{ - _minute_component = x; -} - -const SdaiSecond_in_minute -SdaiLocal_time::second_component_() const -{ - return (SdaiSecond_in_minute) _second_component; -} - -void -SdaiLocal_time::second_component_ (const SdaiSecond_in_minute x) - -{ - _second_component = x; -} - -const SdaiCoordinated_universal_time_offset_ptr -SdaiLocal_time::zone_() const -{ - return (SdaiCoordinated_universal_time_offset_ptr) _zone; -} - -void -SdaiLocal_time::zone_ (const SdaiCoordinated_universal_time_offset_ptr x) - -{ - _zone = x; -} - -///////// END_ENTITY local_time - - -///////// ENTITY mass_unit - -EntityDescriptor *config_control_designe_mass_unit =0; -SdaiMass_unit::SdaiMass_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_mass_unit; -} -SdaiMass_unit::SdaiMass_unit (SdaiMass_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiMass_unit::~SdaiMass_unit () { } - -#ifdef __OSTORE__ - -void -SdaiMass_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMass_unit: virtual access function." << G4endl; - SdaiMass_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiMass_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMass_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiMass_unit *ent = (SdaiMass_unit *)sent; -// SdaiMass_unit *ent = (SdaiMass_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_mass_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiMass_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiMass_unit::get_os_typespec()) - SdaiMass_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiMass_unit::get_os_typespec()) -// SdaiMass_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiMass_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiMass_unit::oodb_reInit () -{ eDesc = config_control_designe_mass_unit; -} -#endif - -SdaiMass_unit::SdaiMass_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_mass_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY mass_unit - - -///////// ENTITY vertex_shell - -EntityDescriptor *config_control_designe_vertex_shell =0; -AttrDescriptor *a_430vertex_shell_extent =0; -SdaiVertex_shell::SdaiVertex_shell( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_vertex_shell; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_430vertex_shell_extent, (SCLP23(Application_instance_ptr) *) &_vertex_shell_extent); -#else - STEPattribute *a = new STEPattribute(*a_430vertex_shell_extent, (SCLP23(Application_instance_ptr) *) &_vertex_shell_extent); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiVertex_shell::SdaiVertex_shell (SdaiVertex_shell& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiVertex_shell::~SdaiVertex_shell () { } - -#ifdef __OSTORE__ - -void -SdaiVertex_shell::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVertex_shell: virtual access function." << G4endl; - SdaiVertex_shell_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiVertex_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVertex_shell: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiVertex_shell *ent = (SdaiVertex_shell *)sent; -// SdaiVertex_shell *ent = (SdaiVertex_shell *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_vertex_shell; - ent->attributes[1].aDesc = a_430vertex_shell_extent; - if(ent->_vertex_shell_extent == 0) - ent->_vertex_shell_extent = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiVertex_shell(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiVertex_shell::get_os_typespec()) - SdaiVertex_shell; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiVertex_shell::get_os_typespec()) -// SdaiVertex_shell; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiVertex_shell; -} -#endif - -#ifdef __O3DB__ -void -SdaiVertex_shell::oodb_reInit () -{ eDesc = config_control_designe_vertex_shell; - attributes [1].aDesc = a_430vertex_shell_extent; -} -#endif - -SdaiVertex_shell::SdaiVertex_shell (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_vertex_shell; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_430vertex_shell_extent, (SCLP23(Application_instance_ptr) *) &_vertex_shell_extent); -#else - STEPattribute *a = new STEPattribute(*a_430vertex_shell_extent, (SCLP23(Application_instance_ptr) *) &_vertex_shell_extent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiVertex_loop_ptr -SdaiVertex_shell::vertex_shell_extent_() const -{ - return (SdaiVertex_loop_ptr) _vertex_shell_extent; -} - -void -SdaiVertex_shell::vertex_shell_extent_ (const SdaiVertex_loop_ptr x) - -{ - _vertex_shell_extent = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY vertex_shell - - -///////// ENTITY poly_loop - -EntityDescriptor *config_control_designe_poly_loop =0; -AttrDescriptor *a_431polygon =0; -SdaiPoly_loop::SdaiPoly_loop( ) -{ - - /* parent: SdaiLoop */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiGeometric_representation_item */ - HeadEntity(this); -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - AppendMultInstance(new SdaiGeometric_representation_item(this, attrFlags)); -#endif - AppendMultInstance(new SdaiGeometric_representation_item(this)); - - eDesc = config_control_designe_poly_loop; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_431polygon, &_polygon); -#else - STEPattribute *a = new STEPattribute(*a_431polygon, &_polygon); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiPoly_loop::SdaiPoly_loop (SdaiPoly_loop& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiPoly_loop::~SdaiPoly_loop () { } - -#ifdef __OSTORE__ - -void -SdaiPoly_loop::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoly_loop: virtual access function." << G4endl; - SdaiPoly_loop_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiPoly_loop_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiPoly_loop: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiPoly_loop *ent = (SdaiPoly_loop *)sent; -// SdaiPoly_loop *ent = (SdaiPoly_loop *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_poly_loop; - ent->attributes[2].aDesc = a_431polygon; -} - -SCLP23(Application_instance_ptr) -create_SdaiPoly_loop(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiPoly_loop::get_os_typespec()) - SdaiPoly_loop; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiPoly_loop::get_os_typespec()) -// SdaiPoly_loop; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiPoly_loop; -} -#endif - -#ifdef __O3DB__ -void -SdaiPoly_loop::oodb_reInit () -{ eDesc = config_control_designe_poly_loop; - attributes [2].aDesc = a_431polygon; -} -#endif - -SdaiPoly_loop::SdaiPoly_loop (SCLP23(Application_instance) *se, int *addAttrs) : SdaiLoop(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiLoop */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - /* parent: SdaiGeometric_representation_item */ -#if 0 - /* Optionally use the following to replace the line following - the endif. Use this to turn off adding attributes in - diamond shaped hierarchies for each additional parent at this - level. You currently must hand edit this for it to work. */ - int attrFlags[3]; // e.g. - attrFlags[0] = 1; // add parents attrs - attrFlags[1] = 1; // add parent of parents attrs - attrFlags[2] = 0; // do not add parent of parent of parents attrs - // In *imaginary* hierarchy turn off attrFlags[2] since it - // would be the parent that has more than one path to it. - se->AppendMultInstance(new SdaiGeometric_representation_item(se, attrFlags)); -#endif - se->AppendMultInstance(new SdaiGeometric_representation_item(se, 0)); - - eDesc = config_control_designe_poly_loop; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_431polygon, &_polygon); -#else - STEPattribute *a = new STEPattribute(*a_431polygon, &_polygon); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const EntityAggregate_ptr -SdaiPoly_loop::polygon_() const -{ - return (EntityAggregate_ptr) &_polygon; -} - -void -SdaiPoly_loop::polygon_ (const EntityAggregate_ptr x) - - { _polygon.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -#if 0 - -#endif - -///////// END_ENTITY poly_loop - - -///////// ENTITY wire_shell - -EntityDescriptor *config_control_designe_wire_shell =0; -AttrDescriptor *a_432wire_shell_extent =0; -SdaiWire_shell::SdaiWire_shell( ) -{ - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_wire_shell; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_432wire_shell_extent, &_wire_shell_extent); -#else - STEPattribute *a = new STEPattribute(*a_432wire_shell_extent, &_wire_shell_extent); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiWire_shell::SdaiWire_shell (SdaiWire_shell& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiWire_shell::~SdaiWire_shell () { } - -#ifdef __OSTORE__ - -void -SdaiWire_shell::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiWire_shell: virtual access function." << G4endl; - SdaiWire_shell_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiWire_shell_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiWire_shell: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiWire_shell *ent = (SdaiWire_shell *)sent; -// SdaiWire_shell *ent = (SdaiWire_shell *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_wire_shell; - ent->attributes[1].aDesc = a_432wire_shell_extent; -} - -SCLP23(Application_instance_ptr) -create_SdaiWire_shell(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiWire_shell::get_os_typespec()) - SdaiWire_shell; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiWire_shell::get_os_typespec()) -// SdaiWire_shell; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiWire_shell; -} -#endif - -#ifdef __O3DB__ -void -SdaiWire_shell::oodb_reInit () -{ eDesc = config_control_designe_wire_shell; - attributes [1].aDesc = a_432wire_shell_extent; -} -#endif - -SdaiWire_shell::SdaiWire_shell (SCLP23(Application_instance) *se, int *addAttrs) : SdaiTopological_representation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiTopological_representation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_wire_shell; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_432wire_shell_extent, &_wire_shell_extent); -#else - STEPattribute *a = new STEPattribute(*a_432wire_shell_extent, &_wire_shell_extent); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const EntityAggregate_ptr -SdaiWire_shell::wire_shell_extent_() const -{ - return (EntityAggregate_ptr) &_wire_shell_extent; -} - -void -SdaiWire_shell::wire_shell_extent_ (const EntityAggregate_ptr x) - - { _wire_shell_extent.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY wire_shell - - -///////// ENTITY area_unit - -EntityDescriptor *config_control_designe_area_unit =0; -SdaiArea_unit::SdaiArea_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_area_unit; -} -SdaiArea_unit::SdaiArea_unit (SdaiArea_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiArea_unit::~SdaiArea_unit () { } - -#ifdef __OSTORE__ - -void -SdaiArea_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiArea_unit: virtual access function." << G4endl; - SdaiArea_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiArea_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiArea_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiArea_unit *ent = (SdaiArea_unit *)sent; -// SdaiArea_unit *ent = (SdaiArea_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_area_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiArea_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiArea_unit::get_os_typespec()) - SdaiArea_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiArea_unit::get_os_typespec()) -// SdaiArea_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiArea_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiArea_unit::oodb_reInit () -{ eDesc = config_control_designe_area_unit; -} -#endif - -SdaiArea_unit::SdaiArea_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_area_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY area_unit - - -///////// ENTITY mapped_item - -EntityDescriptor *config_control_designe_mapped_item =0; -AttrDescriptor *a_433mapping_source =0; -AttrDescriptor *a_434mapping_target =0; -SdaiMapped_item::SdaiMapped_item( ) -{ - - /* parent: SdaiRepresentation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_mapped_item; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_433mapping_source, (SCLP23(Application_instance_ptr) *) &_mapping_source); -#else - STEPattribute *a = new STEPattribute(*a_433mapping_source, (SCLP23(Application_instance_ptr) *) &_mapping_source); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_434mapping_target, (SCLP23(Application_instance_ptr) *) &_mapping_target); -#else - a = new STEPattribute(*a_434mapping_target, (SCLP23(Application_instance_ptr) *) &_mapping_target); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiMapped_item::SdaiMapped_item (SdaiMapped_item& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiMapped_item::~SdaiMapped_item () { } - -#ifdef __OSTORE__ - -void -SdaiMapped_item::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMapped_item: virtual access function." << G4endl; - SdaiMapped_item_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiMapped_item_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiMapped_item: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiMapped_item *ent = (SdaiMapped_item *)sent; -// SdaiMapped_item *ent = (SdaiMapped_item *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_mapped_item; - ent->attributes[1].aDesc = a_433mapping_source; - if(ent->_mapping_source == 0) - ent->_mapping_source = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_434mapping_target; - if(ent->_mapping_target == 0) - ent->_mapping_target = S_ENTITY_NULL; -} - -SCLP23(Application_instance_ptr) -create_SdaiMapped_item(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiMapped_item::get_os_typespec()) - SdaiMapped_item; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiMapped_item::get_os_typespec()) -// SdaiMapped_item; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiMapped_item; -} -#endif - -#ifdef __O3DB__ -void -SdaiMapped_item::oodb_reInit () -{ eDesc = config_control_designe_mapped_item; - attributes [1].aDesc = a_433mapping_source; - attributes [2].aDesc = a_434mapping_target; -} -#endif - -SdaiMapped_item::SdaiMapped_item (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_item(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_item */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_mapped_item; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_433mapping_source, (SCLP23(Application_instance_ptr) *) &_mapping_source); -#else - STEPattribute *a = new STEPattribute(*a_433mapping_source, (SCLP23(Application_instance_ptr) *) &_mapping_source); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_434mapping_target, (SCLP23(Application_instance_ptr) *) &_mapping_target); -#else - a = new STEPattribute(*a_434mapping_target, (SCLP23(Application_instance_ptr) *) &_mapping_target); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiRepresentation_map_ptr -SdaiMapped_item::mapping_source_() const -{ - return (SdaiRepresentation_map_ptr) _mapping_source; -} - -void -SdaiMapped_item::mapping_source_ (const SdaiRepresentation_map_ptr x) - -{ - _mapping_source = x; -} - -const SdaiRepresentation_item_ptr -SdaiMapped_item::mapping_target_() const -{ - return (SdaiRepresentation_item_ptr) _mapping_target; -} - -void -SdaiMapped_item::mapping_target_ (const SdaiRepresentation_item_ptr x) - -{ - _mapping_target = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY mapped_item - - -///////// ENTITY offset_curve_2d - -EntityDescriptor *config_control_designe_offset_curve_2d =0; -AttrDescriptor *a_435basis_curve =0; -AttrDescriptor *a_436distance =0; -AttrDescriptor *a_437self_intersect =0; -SdaiOffset_curve_2d::SdaiOffset_curve_2d( ) -{ - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_offset_curve_2d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_435basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#else - STEPattribute *a = new STEPattribute(*a_435basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_436distance, &_distance); -#else - a = new STEPattribute(*a_436distance, &_distance); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_437self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_437self_intersect, &_self_intersect); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiOffset_curve_2d::SdaiOffset_curve_2d (SdaiOffset_curve_2d& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiOffset_curve_2d::~SdaiOffset_curve_2d () { } - -#ifdef __OSTORE__ - -void -SdaiOffset_curve_2d::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOffset_curve_2d: virtual access function." << G4endl; - SdaiOffset_curve_2d_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiOffset_curve_2d_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiOffset_curve_2d: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiOffset_curve_2d *ent = (SdaiOffset_curve_2d *)sent; -// SdaiOffset_curve_2d *ent = (SdaiOffset_curve_2d *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_offset_curve_2d; - ent->attributes[1].aDesc = a_435basis_curve; - if(ent->_basis_curve == 0) - ent->_basis_curve = S_ENTITY_NULL; - ent->attributes[2].aDesc = a_436distance; - ent->attributes[3].aDesc = a_437self_intersect; -} - -SCLP23(Application_instance_ptr) -create_SdaiOffset_curve_2d(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiOffset_curve_2d::get_os_typespec()) - SdaiOffset_curve_2d; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiOffset_curve_2d::get_os_typespec()) -// SdaiOffset_curve_2d; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiOffset_curve_2d; -} -#endif - -#ifdef __O3DB__ -void -SdaiOffset_curve_2d::oodb_reInit () -{ eDesc = config_control_designe_offset_curve_2d; - attributes [1].aDesc = a_435basis_curve; - attributes [2].aDesc = a_436distance; - attributes [3].aDesc = a_437self_intersect; -} -#endif - -SdaiOffset_curve_2d::SdaiOffset_curve_2d (SCLP23(Application_instance) *se, int *addAttrs) : SdaiCurve(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiCurve */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_offset_curve_2d; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_435basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#else - STEPattribute *a = new STEPattribute(*a_435basis_curve, (SCLP23(Application_instance_ptr) *) &_basis_curve); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_436distance, &_distance); -#else - a = new STEPattribute(*a_436distance, &_distance); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_437self_intersect, &_self_intersect); -#else - a = new STEPattribute(*a_437self_intersect, &_self_intersect); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiCurve_ptr -SdaiOffset_curve_2d::basis_curve_() const -{ - return (SdaiCurve_ptr) _basis_curve; -} - -void -SdaiOffset_curve_2d::basis_curve_ (const SdaiCurve_ptr x) - -{ - _basis_curve = x; -} - -const SdaiLength_measure -SdaiOffset_curve_2d::distance_() const -{ - return (SdaiLength_measure) _distance; -} - -void -SdaiOffset_curve_2d::distance_ (const SdaiLength_measure x) - -{ - _distance = x; -} - -const SCLLOG(Logical) -SdaiOffset_curve_2d::self_intersect_() const -{ - return (SCLLOG(Logical)) _self_intersect; -} - -void -SdaiOffset_curve_2d::self_intersect_ (const SCLLOG(Logical) x) - -{ - _self_intersect.put (x); -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY offset_curve_2d - - -///////// ENTITY shape_definition_representation - -EntityDescriptor *config_control_designe_shape_definition_representation =0; -SdaiShape_definition_representation::SdaiShape_definition_representation( ) -{ - - /* parent: SdaiProperty_definition_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shape_definition_representation; -} -SdaiShape_definition_representation::SdaiShape_definition_representation (SdaiShape_definition_representation& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiShape_definition_representation::~SdaiShape_definition_representation () { } - -#ifdef __OSTORE__ - -void -SdaiShape_definition_representation::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_definition_representation: virtual access function." << G4endl; - SdaiShape_definition_representation_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiShape_definition_representation_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiShape_definition_representation: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiShape_definition_representation *ent = (SdaiShape_definition_representation *)sent; -// SdaiShape_definition_representation *ent = (SdaiShape_definition_representation *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_shape_definition_representation; -} - -SCLP23(Application_instance_ptr) -create_SdaiShape_definition_representation(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiShape_definition_representation::get_os_typespec()) - SdaiShape_definition_representation; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiShape_definition_representation::get_os_typespec()) -// SdaiShape_definition_representation; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiShape_definition_representation; -} -#endif - -#ifdef __O3DB__ -void -SdaiShape_definition_representation::oodb_reInit () -{ eDesc = config_control_designe_shape_definition_representation; -} -#endif - -SdaiShape_definition_representation::SdaiShape_definition_representation (SCLP23(Application_instance) *se, int *addAttrs) : SdaiProperty_definition_representation(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiProperty_definition_representation */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_shape_definition_representation; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY shape_definition_representation - - -///////// ENTITY volume_unit - -EntityDescriptor *config_control_designe_volume_unit =0; -SdaiVolume_unit::SdaiVolume_unit( ) -{ - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_volume_unit; -} -SdaiVolume_unit::SdaiVolume_unit (SdaiVolume_unit& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiVolume_unit::~SdaiVolume_unit () { } - -#ifdef __OSTORE__ - -void -SdaiVolume_unit::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVolume_unit: virtual access function." << G4endl; - SdaiVolume_unit_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiVolume_unit_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiVolume_unit: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiVolume_unit *ent = (SdaiVolume_unit *)sent; -// SdaiVolume_unit *ent = (SdaiVolume_unit *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_volume_unit; -} - -SCLP23(Application_instance_ptr) -create_SdaiVolume_unit(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiVolume_unit::get_os_typespec()) - SdaiVolume_unit; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiVolume_unit::get_os_typespec()) -// SdaiVolume_unit; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiVolume_unit; -} -#endif - -#ifdef __O3DB__ -void -SdaiVolume_unit::oodb_reInit () -{ eDesc = config_control_designe_volume_unit; -} -#endif - -SdaiVolume_unit::SdaiVolume_unit (SCLP23(Application_instance) *se, int *addAttrs) : SdaiNamed_unit(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiNamed_unit */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_volume_unit; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY volume_unit - - -///////// ENTITY conical_surface - -EntityDescriptor *config_control_designe_conical_surface =0; -AttrDescriptor *a_438radius =0; -AttrDescriptor *a_439semi_angle =0; -SdaiConical_surface::SdaiConical_surface( ) -{ - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_conical_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_438radius, &_radius); -#else - STEPattribute *a = new STEPattribute(*a_438radius, &_radius); -#endif - a -> set_null (); - attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_439semi_angle, &_semi_angle); -#else - a = new STEPattribute(*a_439semi_angle, &_semi_angle); -#endif - a -> set_null (); - attributes.push (a); - MakeDerived ("dim"); -} -SdaiConical_surface::SdaiConical_surface (SdaiConical_surface& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiConical_surface::~SdaiConical_surface () { } - -#ifdef __OSTORE__ - -void -SdaiConical_surface::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConical_surface: virtual access function." << G4endl; - SdaiConical_surface_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiConical_surface_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiConical_surface: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiConical_surface *ent = (SdaiConical_surface *)sent; -// SdaiConical_surface *ent = (SdaiConical_surface *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_conical_surface; - ent->attributes[2].aDesc = a_438radius; - ent->attributes[3].aDesc = a_439semi_angle; -} - -SCLP23(Application_instance_ptr) -create_SdaiConical_surface(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiConical_surface::get_os_typespec()) - SdaiConical_surface; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiConical_surface::get_os_typespec()) -// SdaiConical_surface; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiConical_surface; -} -#endif - -#ifdef __O3DB__ -void -SdaiConical_surface::oodb_reInit () -{ eDesc = config_control_designe_conical_surface; - attributes [2].aDesc = a_438radius; - attributes [3].aDesc = a_439semi_angle; -} -#endif - -SdaiConical_surface::SdaiConical_surface (SCLP23(Application_instance) *se, int *addAttrs) : SdaiElementary_surface(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiElementary_surface */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_conical_surface; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_438radius, &_radius); -#else - STEPattribute *a = new STEPattribute(*a_438radius, &_radius); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - -#ifdef __OSTORE__ - a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_439semi_angle, &_semi_angle); -#else - a = new STEPattribute(*a_439semi_angle, &_semi_angle); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); - MakeDerived ("dim"); -} - -const SdaiLength_measure -SdaiConical_surface::radius_() const -{ - return (SdaiLength_measure) _radius; -} - -void -SdaiConical_surface::radius_ (const SdaiLength_measure x) - -{ - _radius = x; -} - -const SdaiPlane_angle_measure -SdaiConical_surface::semi_angle_() const -{ - return (SdaiPlane_angle_measure) _semi_angle; -} - -void -SdaiConical_surface::semi_angle_ (const SdaiPlane_angle_measure x) - -{ - _semi_angle = x; -} - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY conical_surface - - -///////// ENTITY global_unit_assigned_context - -EntityDescriptor *config_control_designe_global_unit_assigned_context =0; -AttrDescriptor *a_440units =0; -SdaiGlobal_unit_assigned_context::SdaiGlobal_unit_assigned_context( ) -{ - - /* parent: SdaiRepresentation_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_global_unit_assigned_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_440units, &_units); -#else - STEPattribute *a = new STEPattribute(*a_440units, &_units); -#endif - a -> set_null (); - attributes.push (a); -} -SdaiGlobal_unit_assigned_context::SdaiGlobal_unit_assigned_context (SdaiGlobal_unit_assigned_context& e ) - { CopyAs((SCLP23(Application_instance_ptr)) &e); } -SdaiGlobal_unit_assigned_context::~SdaiGlobal_unit_assigned_context () { } - -#ifdef __OSTORE__ - -void -SdaiGlobal_unit_assigned_context::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGlobal_unit_assigned_context: virtual access function." << G4endl; - SdaiGlobal_unit_assigned_context_access_hook_in(object, reason, user_data, start_range, end_range); -} - -void -SdaiGlobal_unit_assigned_context_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - if(debug_access_hooks) - G4cout << "SdaiGlobal_unit_assigned_context: non-virtual access function." << G4endl; - SCLP23(Application_instance) *sent = (SCLP23(Application_instance) *)object; - if(debug_access_hooks) - G4cout << "STEPfile_id: " << sent->STEPfile_id << G4endl; - SdaiGlobal_unit_assigned_context *ent = (SdaiGlobal_unit_assigned_context *)sent; -// SdaiGlobal_unit_assigned_context *ent = (SdaiGlobal_unit_assigned_context *)object; - if(ent->eDesc == 0) - ent->eDesc = config_control_designe_global_unit_assigned_context; - ent->attributes[2].aDesc = a_440units; -} - -SCLP23(Application_instance_ptr) -create_SdaiGlobal_unit_assigned_context(os_database *db) -{ - if(db) - { - SCLP23(DAObject_ptr) ap = new (db, SdaiGlobal_unit_assigned_context::get_os_typespec()) - SdaiGlobal_unit_assigned_context; - return (SCLP23(Application_instance_ptr)) ap; -// return (SCLP23(Application_instance_ptr)) new (db, SdaiGlobal_unit_assigned_context::get_os_typespec()) -// SdaiGlobal_unit_assigned_context; - } - else - return (SCLP23(Application_instance_ptr)) new SdaiGlobal_unit_assigned_context; -} -#endif - -#ifdef __O3DB__ -void -SdaiGlobal_unit_assigned_context::oodb_reInit () -{ eDesc = config_control_designe_global_unit_assigned_context; - attributes [2].aDesc = a_440units; -} -#endif - -SdaiGlobal_unit_assigned_context::SdaiGlobal_unit_assigned_context (SCLP23(Application_instance) *se, int *addAttrs) : SdaiRepresentation_context(se, (addAttrs ? &addAttrs[1] : 0)) -{ - /* Set this to point to the head entity. */ - HeadEntity(se); - - /* parent: SdaiRepresentation_context */ - /* Ignore the first parent since it is */ - /* part of the main inheritance hierarchy */ - - eDesc = config_control_designe_global_unit_assigned_context; - -#ifdef __OSTORE__ - STEPattribute *a = new (os_segment::of(this), - STEPattribute::get_os_typespec()) - STEPattribute(*a_440units, &_units); -#else - STEPattribute *a = new STEPattribute(*a_440units, &_units); -#endif - a -> set_null (); - /* Put attribute on this class' attributes list so the */ - /*access functions still work. */ - attributes.push (a); - /* Put attribute on the attributes list for the */ - /* main inheritance heirarchy. */ - if(!addAttrs || addAttrs[0]) - se->attributes.push (a); -} - -const SdaiUnits_ptr -SdaiGlobal_unit_assigned_context::units_() const -{ - return (SdaiUnits_ptr) &_units; -} - -void -SdaiGlobal_unit_assigned_context::units_ (const SdaiUnits_ptr x) - - { _units.ShallowCopy (*x); } - /* The first parent's access functions are */ - /* above or covered by inherited functions. */ - -///////// END_ENTITY global_unit_assigned_context - - -#ifdef __OSTORE__ -SCLP23(Model_contents_ptr) create_SdaiModel_contents_config_control_design(os_database *db) -{ - if(db) - return (SCLP23(Model_contents_ptr)) new (db, SdaiModel_contents_config_control_design::get_os_typespec()) - SdaiModel_contents_config_control_design(db); - else{ - return (SCLP23(Model_contents_ptr)) new SdaiModel_contents_config_control_design(0); - } -} -#else - -SCLP23(Model_contents_ptr) create_SdaiModel_contents_config_control_design() -{ return new SdaiModel_contents_config_control_design ; } -#endif - - -#ifdef __OSTORE__ -SdaiModel_contents_config_control_design::SdaiModel_contents_config_control_design(os_database *db) -#else -SdaiModel_contents_config_control_design::SdaiModel_contents_config_control_design() -#endif -{ - SCLP23(Entity_extent_ptr) eep = (SCLP23(Entity_extent_ptr))0; - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_representation_item); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_geometric_representation_item); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_functionally_defined_transformation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cartesian_transformation_operator); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cartesian_transformation_operator_3d); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_versioned_action_request); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_manifold_surface_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_certification); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition_usage); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_assembly_component_usage); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_quantified_assembly_component_usage); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_solid_model); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_manifold_solid_brep); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_faceted_brep); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_action_directive); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_named_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_plane_angle_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_measure_with_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_area_measure_with_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_effectivity); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_serial_numbered_effectivity); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_offset_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_placement); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_axis2_placement_2d); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_category); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_related_product_category); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_conic); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_hyperbola); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_address); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_organizational_address); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_bounded_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_b_spline_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_uniform_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_geometrically_bounded_surface_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_axis1_placement); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_bounded_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_b_spline_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_rational_b_spline_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_action_request_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_topological_representation_item); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_face_bound); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_length_measure_with_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_dated_effectivity); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_direction); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_next_assembly_usage_occurrence); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_edge); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_oriented_edge); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_person); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_document); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_document_with_class); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_conversion_based_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_point); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_point_on_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition_formation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_person_and_organization_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cc_design_person_and_organization_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_offset_curve_3d); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_approval); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_composite_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_composite_curve_on_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_boundary_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_representation_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_geometric_representation_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_action_status); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_application_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_change_request); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_date_and_time); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_approval_date_time); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_approval_role); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_application_context_element); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_elementary_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_spherical_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_application_protocol_definition); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_specified_higher_usage_occurrence); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition_formation_with_specified_source); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_action_request_solution); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_uncertainty_measure_with_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_edge_based_wireframe_model); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_path); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_connected_face_set); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_open_shell); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_oriented_open_shell); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_solid_angle_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_coordinated_universal_time_offset); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_curve_replica); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_quasi_uniform_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_surface_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_action_request_status); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_composite_curve_segment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_reparametrised_composite_curve_segment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_representation_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_representation_relationship_with_transformation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_person_and_organization_role); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_quasi_uniform_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_swept_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_property_definition); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_global_uncertainty_assigned_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_organization_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_parabola); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_rectangular_composite_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_lot_effectivity); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_surface_of_linear_extrusion); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_shell_based_surface_model); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_uniform_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_bezier_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_loop); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_edge_loop); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_date); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_calendar_date); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_toroidal_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_promissory_usage_occurrence); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_approval_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_configuration_item); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_contract_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_vector); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_intersection_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_trimmed_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_item_defined_transformation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_action_method); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_category_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_plane_angle_measure_with_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_vertex); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_representation_map); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition_effectivity); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_configuration_effectivity); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_ellipse); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_context_dependent_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_alternate_product_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_document_type); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_document_reference); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_mechanical_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_shell_based_wireframe_model); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_contract); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_dimensional_exponents); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_start_request); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cc_design_specification_reference); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_supplied_part_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_context_dependent_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_ordinal_date); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_face_outer_bound); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_mass_measure_with_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_brep_with_voids); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_week_of_year_and_day_date); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_point_on_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_shell_based_wireframe_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_face); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_face_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_oriented_face); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_surface_of_revolution); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_advanced_brep_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_edge_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_point_replica); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_shape_aspect_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_rectangular_trimmed_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_plane); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_action_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_change); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_circle); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_line); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_property_definition_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_geometric_set); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_geometric_curve_set); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_personal_address); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_document_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_pcurve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_outer_boundary_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_shape_representation_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_assembly_component_usage_substitute); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_degenerate_pcurve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_evaluated_degenerate_pcurve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_solid_angle_measure_with_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_connected_edge_set); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_action); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_executed_action); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_directed_action); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_organizational_project); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_date_time_role); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_curve_bounded_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_closed_shell); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_design_make_from_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_definitional_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition_shape); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_si_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_bezier_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_certification_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_start_work); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_contract_type); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_b_spline_curve_with_knots); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cc_design_approval); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_edge_based_wireframe_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_geometrically_bounded_wireframe_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_concept); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cc_design_contract); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_seam_curve); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_axis2_placement_3d); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_rational_b_spline_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_configuration_design); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_design_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_definition_with_associated_documents); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_organization); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cc_design_certification); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_b_spline_surface_with_knots); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_certification_type); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_oriented_path); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_security_classification); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_vertex_loop); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_approval_status); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cartesian_point); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_date_and_time_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_parametric_representation_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_product_concept_context); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cartesian_transformation_operator_2d); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_surface_patch); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_length_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_shape_aspect); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_volume_measure_with_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_advanced_face); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_security_classification_level); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_approval_relationship); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_polyline); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_approval_person_organization); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_surface_replica); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_security_classification_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cc_design_security_classification); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_faceted_brep_shape_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_document_usage_constraint); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_vertex_point); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cc_design_date_and_time_assignment); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_oriented_closed_shell); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_person_and_organization); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_cylindrical_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_local_time); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_mass_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_vertex_shell); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_poly_loop); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_wire_shell); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_area_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_mapped_item); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_offset_curve_2d); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_shape_definition_representation); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_volume_unit); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_conical_surface); - _folders.Append(eep); - -#ifdef __OSTORE__ - if(db) - eep = new (db, - SCLP23(Entity_extent)::get_os_typespec()) SCLP23(Entity_extent); - else - eep = new SCLP23(Entity_extent); -#else - eep = new SCLP23(Entity_extent); -#endif - eep->definition_(config_control_designe_global_unit_assigned_context); - _folders.Append(eep); - -} - -SdaiRepresentation_item__set_var SdaiModel_contents_config_control_design::SdaiRepresentation_item_get_extents() -{ - return (SdaiRepresentation_item__set_var)((_folders.retrieve(0))->instances_()); -} - -SdaiGeometric_representation_item__set_var SdaiModel_contents_config_control_design::SdaiGeometric_representation_item_get_extents() -{ - return (SdaiGeometric_representation_item__set_var)((_folders.retrieve(1))->instances_()); -} - -SdaiFunctionally_defined_transformation__set_var SdaiModel_contents_config_control_design::SdaiFunctionally_defined_transformation_get_extents() -{ - return (SdaiFunctionally_defined_transformation__set_var)((_folders.retrieve(2))->instances_()); -} - -SdaiCartesian_transformation_operator__set_var SdaiModel_contents_config_control_design::SdaiCartesian_transformation_operator_get_extents() -{ - return (SdaiCartesian_transformation_operator__set_var)((_folders.retrieve(3))->instances_()); -} - -SdaiCartesian_transformation_operator_3d__set_var SdaiModel_contents_config_control_design::SdaiCartesian_transformation_operator_3d_get_extents() -{ - return (SdaiCartesian_transformation_operator_3d__set_var)((_folders.retrieve(4))->instances_()); -} - -SdaiVersioned_action_request__set_var SdaiModel_contents_config_control_design::SdaiVersioned_action_request_get_extents() -{ - return (SdaiVersioned_action_request__set_var)((_folders.retrieve(5))->instances_()); -} - -SdaiRepresentation__set_var SdaiModel_contents_config_control_design::SdaiRepresentation_get_extents() -{ - return (SdaiRepresentation__set_var)((_folders.retrieve(6))->instances_()); -} - -SdaiShape_representation__set_var SdaiModel_contents_config_control_design::SdaiShape_representation_get_extents() -{ - return (SdaiShape_representation__set_var)((_folders.retrieve(7))->instances_()); -} - -SdaiManifold_surface_shape_representation__set_var SdaiModel_contents_config_control_design::SdaiManifold_surface_shape_representation_get_extents() -{ - return (SdaiManifold_surface_shape_representation__set_var)((_folders.retrieve(8))->instances_()); -} - -SdaiCertification__set_var SdaiModel_contents_config_control_design::SdaiCertification_get_extents() -{ - return (SdaiCertification__set_var)((_folders.retrieve(9))->instances_()); -} - -SdaiProduct_definition_relationship__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_relationship_get_extents() -{ - return (SdaiProduct_definition_relationship__set_var)((_folders.retrieve(10))->instances_()); -} - -SdaiProduct_definition_usage__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_usage_get_extents() -{ - return (SdaiProduct_definition_usage__set_var)((_folders.retrieve(11))->instances_()); -} - -SdaiAssembly_component_usage__set_var SdaiModel_contents_config_control_design::SdaiAssembly_component_usage_get_extents() -{ - return (SdaiAssembly_component_usage__set_var)((_folders.retrieve(12))->instances_()); -} - -SdaiQuantified_assembly_component_usage__set_var SdaiModel_contents_config_control_design::SdaiQuantified_assembly_component_usage_get_extents() -{ - return (SdaiQuantified_assembly_component_usage__set_var)((_folders.retrieve(13))->instances_()); -} - -SdaiSolid_model__set_var SdaiModel_contents_config_control_design::SdaiSolid_model_get_extents() -{ - return (SdaiSolid_model__set_var)((_folders.retrieve(14))->instances_()); -} - -SdaiManifold_solid_brep__set_var SdaiModel_contents_config_control_design::SdaiManifold_solid_brep_get_extents() -{ - return (SdaiManifold_solid_brep__set_var)((_folders.retrieve(15))->instances_()); -} - -SdaiFaceted_brep__set_var SdaiModel_contents_config_control_design::SdaiFaceted_brep_get_extents() -{ - return (SdaiFaceted_brep__set_var)((_folders.retrieve(16))->instances_()); -} - -SdaiAction_directive__set_var SdaiModel_contents_config_control_design::SdaiAction_directive_get_extents() -{ - return (SdaiAction_directive__set_var)((_folders.retrieve(17))->instances_()); -} - -SdaiNamed_unit__set_var SdaiModel_contents_config_control_design::SdaiNamed_unit_get_extents() -{ - return (SdaiNamed_unit__set_var)((_folders.retrieve(18))->instances_()); -} - -SdaiPlane_angle_unit__set_var SdaiModel_contents_config_control_design::SdaiPlane_angle_unit_get_extents() -{ - return (SdaiPlane_angle_unit__set_var)((_folders.retrieve(19))->instances_()); -} - -SdaiMeasure_with_unit__set_var SdaiModel_contents_config_control_design::SdaiMeasure_with_unit_get_extents() -{ - return (SdaiMeasure_with_unit__set_var)((_folders.retrieve(20))->instances_()); -} - -SdaiArea_measure_with_unit__set_var SdaiModel_contents_config_control_design::SdaiArea_measure_with_unit_get_extents() -{ - return (SdaiArea_measure_with_unit__set_var)((_folders.retrieve(21))->instances_()); -} - -SdaiEffectivity__set_var SdaiModel_contents_config_control_design::SdaiEffectivity_get_extents() -{ - return (SdaiEffectivity__set_var)((_folders.retrieve(22))->instances_()); -} - -SdaiSerial_numbered_effectivity__set_var SdaiModel_contents_config_control_design::SdaiSerial_numbered_effectivity_get_extents() -{ - return (SdaiSerial_numbered_effectivity__set_var)((_folders.retrieve(23))->instances_()); -} - -SdaiSurface__set_var SdaiModel_contents_config_control_design::SdaiSurface_get_extents() -{ - return (SdaiSurface__set_var)((_folders.retrieve(24))->instances_()); -} - -SdaiOffset_surface__set_var SdaiModel_contents_config_control_design::SdaiOffset_surface_get_extents() -{ - return (SdaiOffset_surface__set_var)((_folders.retrieve(25))->instances_()); -} - -SdaiPlacement__set_var SdaiModel_contents_config_control_design::SdaiPlacement_get_extents() -{ - return (SdaiPlacement__set_var)((_folders.retrieve(26))->instances_()); -} - -SdaiAxis2_placement_2d__set_var SdaiModel_contents_config_control_design::SdaiAxis2_placement_2d_get_extents() -{ - return (SdaiAxis2_placement_2d__set_var)((_folders.retrieve(27))->instances_()); -} - -SdaiProduct_category__set_var SdaiModel_contents_config_control_design::SdaiProduct_category_get_extents() -{ - return (SdaiProduct_category__set_var)((_folders.retrieve(28))->instances_()); -} - -SdaiProduct_related_product_category__set_var SdaiModel_contents_config_control_design::SdaiProduct_related_product_category_get_extents() -{ - return (SdaiProduct_related_product_category__set_var)((_folders.retrieve(29))->instances_()); -} - -SdaiCurve__set_var SdaiModel_contents_config_control_design::SdaiCurve_get_extents() -{ - return (SdaiCurve__set_var)((_folders.retrieve(30))->instances_()); -} - -SdaiConic__set_var SdaiModel_contents_config_control_design::SdaiConic_get_extents() -{ - return (SdaiConic__set_var)((_folders.retrieve(31))->instances_()); -} - -SdaiHyperbola__set_var SdaiModel_contents_config_control_design::SdaiHyperbola_get_extents() -{ - return (SdaiHyperbola__set_var)((_folders.retrieve(32))->instances_()); -} - -SdaiAddress__set_var SdaiModel_contents_config_control_design::SdaiAddress_get_extents() -{ - return (SdaiAddress__set_var)((_folders.retrieve(33))->instances_()); -} - -SdaiOrganizational_address__set_var SdaiModel_contents_config_control_design::SdaiOrganizational_address_get_extents() -{ - return (SdaiOrganizational_address__set_var)((_folders.retrieve(34))->instances_()); -} - -SdaiBounded_surface__set_var SdaiModel_contents_config_control_design::SdaiBounded_surface_get_extents() -{ - return (SdaiBounded_surface__set_var)((_folders.retrieve(35))->instances_()); -} - -SdaiB_spline_surface__set_var SdaiModel_contents_config_control_design::SdaiB_spline_surface_get_extents() -{ - return (SdaiB_spline_surface__set_var)((_folders.retrieve(36))->instances_()); -} - -SdaiUniform_surface__set_var SdaiModel_contents_config_control_design::SdaiUniform_surface_get_extents() -{ - return (SdaiUniform_surface__set_var)((_folders.retrieve(37))->instances_()); -} - -SdaiGeometrically_bounded_surface_shape_representation__set_var SdaiModel_contents_config_control_design::SdaiGeometrically_bounded_surface_shape_representation_get_extents() -{ - return (SdaiGeometrically_bounded_surface_shape_representation__set_var)((_folders.retrieve(38))->instances_()); -} - -SdaiAxis1_placement__set_var SdaiModel_contents_config_control_design::SdaiAxis1_placement_get_extents() -{ - return (SdaiAxis1_placement__set_var)((_folders.retrieve(39))->instances_()); -} - -SdaiBounded_curve__set_var SdaiModel_contents_config_control_design::SdaiBounded_curve_get_extents() -{ - return (SdaiBounded_curve__set_var)((_folders.retrieve(40))->instances_()); -} - -SdaiB_spline_curve__set_var SdaiModel_contents_config_control_design::SdaiB_spline_curve_get_extents() -{ - return (SdaiB_spline_curve__set_var)((_folders.retrieve(41))->instances_()); -} - -SdaiRational_b_spline_curve__set_var SdaiModel_contents_config_control_design::SdaiRational_b_spline_curve_get_extents() -{ - return (SdaiRational_b_spline_curve__set_var)((_folders.retrieve(42))->instances_()); -} - -SdaiAction_request_assignment__set_var SdaiModel_contents_config_control_design::SdaiAction_request_assignment_get_extents() -{ - return (SdaiAction_request_assignment__set_var)((_folders.retrieve(43))->instances_()); -} - -SdaiTopological_representation_item__set_var SdaiModel_contents_config_control_design::SdaiTopological_representation_item_get_extents() -{ - return (SdaiTopological_representation_item__set_var)((_folders.retrieve(44))->instances_()); -} - -SdaiFace_bound__set_var SdaiModel_contents_config_control_design::SdaiFace_bound_get_extents() -{ - return (SdaiFace_bound__set_var)((_folders.retrieve(45))->instances_()); -} - -SdaiLength_measure_with_unit__set_var SdaiModel_contents_config_control_design::SdaiLength_measure_with_unit_get_extents() -{ - return (SdaiLength_measure_with_unit__set_var)((_folders.retrieve(46))->instances_()); -} - -SdaiDated_effectivity__set_var SdaiModel_contents_config_control_design::SdaiDated_effectivity_get_extents() -{ - return (SdaiDated_effectivity__set_var)((_folders.retrieve(47))->instances_()); -} - -SdaiDirection__set_var SdaiModel_contents_config_control_design::SdaiDirection_get_extents() -{ - return (SdaiDirection__set_var)((_folders.retrieve(48))->instances_()); -} - -SdaiNext_assembly_usage_occurrence__set_var SdaiModel_contents_config_control_design::SdaiNext_assembly_usage_occurrence_get_extents() -{ - return (SdaiNext_assembly_usage_occurrence__set_var)((_folders.retrieve(49))->instances_()); -} - -SdaiEdge__set_var SdaiModel_contents_config_control_design::SdaiEdge_get_extents() -{ - return (SdaiEdge__set_var)((_folders.retrieve(50))->instances_()); -} - -SdaiOriented_edge__set_var SdaiModel_contents_config_control_design::SdaiOriented_edge_get_extents() -{ - return (SdaiOriented_edge__set_var)((_folders.retrieve(51))->instances_()); -} - -SdaiPerson__set_var SdaiModel_contents_config_control_design::SdaiPerson_get_extents() -{ - return (SdaiPerson__set_var)((_folders.retrieve(52))->instances_()); -} - -SdaiDocument__set_var SdaiModel_contents_config_control_design::SdaiDocument_get_extents() -{ - return (SdaiDocument__set_var)((_folders.retrieve(53))->instances_()); -} - -SdaiDocument_with_class__set_var SdaiModel_contents_config_control_design::SdaiDocument_with_class_get_extents() -{ - return (SdaiDocument_with_class__set_var)((_folders.retrieve(54))->instances_()); -} - -SdaiConversion_based_unit__set_var SdaiModel_contents_config_control_design::SdaiConversion_based_unit_get_extents() -{ - return (SdaiConversion_based_unit__set_var)((_folders.retrieve(55))->instances_()); -} - -SdaiPoint__set_var SdaiModel_contents_config_control_design::SdaiPoint_get_extents() -{ - return (SdaiPoint__set_var)((_folders.retrieve(56))->instances_()); -} - -SdaiPoint_on_surface__set_var SdaiModel_contents_config_control_design::SdaiPoint_on_surface_get_extents() -{ - return (SdaiPoint_on_surface__set_var)((_folders.retrieve(57))->instances_()); -} - -SdaiProduct_definition_formation__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_formation_get_extents() -{ - return (SdaiProduct_definition_formation__set_var)((_folders.retrieve(58))->instances_()); -} - -SdaiPerson_and_organization_assignment__set_var SdaiModel_contents_config_control_design::SdaiPerson_and_organization_assignment_get_extents() -{ - return (SdaiPerson_and_organization_assignment__set_var)((_folders.retrieve(59))->instances_()); -} - -SdaiCc_design_person_and_organization_assignment__set_var SdaiModel_contents_config_control_design::SdaiCc_design_person_and_organization_assignment_get_extents() -{ - return (SdaiCc_design_person_and_organization_assignment__set_var)((_folders.retrieve(60))->instances_()); -} - -SdaiOffset_curve_3d__set_var SdaiModel_contents_config_control_design::SdaiOffset_curve_3d_get_extents() -{ - return (SdaiOffset_curve_3d__set_var)((_folders.retrieve(61))->instances_()); -} - -SdaiApproval__set_var SdaiModel_contents_config_control_design::SdaiApproval_get_extents() -{ - return (SdaiApproval__set_var)((_folders.retrieve(62))->instances_()); -} - -SdaiComposite_curve__set_var SdaiModel_contents_config_control_design::SdaiComposite_curve_get_extents() -{ - return (SdaiComposite_curve__set_var)((_folders.retrieve(63))->instances_()); -} - -SdaiComposite_curve_on_surface__set_var SdaiModel_contents_config_control_design::SdaiComposite_curve_on_surface_get_extents() -{ - return (SdaiComposite_curve_on_surface__set_var)((_folders.retrieve(64))->instances_()); -} - -SdaiBoundary_curve__set_var SdaiModel_contents_config_control_design::SdaiBoundary_curve_get_extents() -{ - return (SdaiBoundary_curve__set_var)((_folders.retrieve(65))->instances_()); -} - -SdaiRepresentation_context__set_var SdaiModel_contents_config_control_design::SdaiRepresentation_context_get_extents() -{ - return (SdaiRepresentation_context__set_var)((_folders.retrieve(66))->instances_()); -} - -SdaiGeometric_representation_context__set_var SdaiModel_contents_config_control_design::SdaiGeometric_representation_context_get_extents() -{ - return (SdaiGeometric_representation_context__set_var)((_folders.retrieve(67))->instances_()); -} - -SdaiAction_status__set_var SdaiModel_contents_config_control_design::SdaiAction_status_get_extents() -{ - return (SdaiAction_status__set_var)((_folders.retrieve(68))->instances_()); -} - -SdaiApplication_context__set_var SdaiModel_contents_config_control_design::SdaiApplication_context_get_extents() -{ - return (SdaiApplication_context__set_var)((_folders.retrieve(69))->instances_()); -} - -SdaiChange_request__set_var SdaiModel_contents_config_control_design::SdaiChange_request_get_extents() -{ - return (SdaiChange_request__set_var)((_folders.retrieve(70))->instances_()); -} - -SdaiDate_and_time__set_var SdaiModel_contents_config_control_design::SdaiDate_and_time_get_extents() -{ - return (SdaiDate_and_time__set_var)((_folders.retrieve(71))->instances_()); -} - -SdaiApproval_date_time__set_var SdaiModel_contents_config_control_design::SdaiApproval_date_time_get_extents() -{ - return (SdaiApproval_date_time__set_var)((_folders.retrieve(72))->instances_()); -} - -SdaiApproval_role__set_var SdaiModel_contents_config_control_design::SdaiApproval_role_get_extents() -{ - return (SdaiApproval_role__set_var)((_folders.retrieve(73))->instances_()); -} - -SdaiApplication_context_element__set_var SdaiModel_contents_config_control_design::SdaiApplication_context_element_get_extents() -{ - return (SdaiApplication_context_element__set_var)((_folders.retrieve(74))->instances_()); -} - -SdaiProduct_context__set_var SdaiModel_contents_config_control_design::SdaiProduct_context_get_extents() -{ - return (SdaiProduct_context__set_var)((_folders.retrieve(75))->instances_()); -} - -SdaiElementary_surface__set_var SdaiModel_contents_config_control_design::SdaiElementary_surface_get_extents() -{ - return (SdaiElementary_surface__set_var)((_folders.retrieve(76))->instances_()); -} - -SdaiSpherical_surface__set_var SdaiModel_contents_config_control_design::SdaiSpherical_surface_get_extents() -{ - return (SdaiSpherical_surface__set_var)((_folders.retrieve(77))->instances_()); -} - -SdaiApplication_protocol_definition__set_var SdaiModel_contents_config_control_design::SdaiApplication_protocol_definition_get_extents() -{ - return (SdaiApplication_protocol_definition__set_var)((_folders.retrieve(78))->instances_()); -} - -SdaiSpecified_higher_usage_occurrence__set_var SdaiModel_contents_config_control_design::SdaiSpecified_higher_usage_occurrence_get_extents() -{ - return (SdaiSpecified_higher_usage_occurrence__set_var)((_folders.retrieve(79))->instances_()); -} - -SdaiProduct_definition_formation_with_specified_source__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_formation_with_specified_source_get_extents() -{ - return (SdaiProduct_definition_formation_with_specified_source__set_var)((_folders.retrieve(80))->instances_()); -} - -SdaiAction_request_solution__set_var SdaiModel_contents_config_control_design::SdaiAction_request_solution_get_extents() -{ - return (SdaiAction_request_solution__set_var)((_folders.retrieve(81))->instances_()); -} - -SdaiUncertainty_measure_with_unit__set_var SdaiModel_contents_config_control_design::SdaiUncertainty_measure_with_unit_get_extents() -{ - return (SdaiUncertainty_measure_with_unit__set_var)((_folders.retrieve(82))->instances_()); -} - -SdaiEdge_based_wireframe_model__set_var SdaiModel_contents_config_control_design::SdaiEdge_based_wireframe_model_get_extents() -{ - return (SdaiEdge_based_wireframe_model__set_var)((_folders.retrieve(83))->instances_()); -} - -SdaiPath__set_var SdaiModel_contents_config_control_design::SdaiPath_get_extents() -{ - return (SdaiPath__set_var)((_folders.retrieve(84))->instances_()); -} - -SdaiConnected_face_set__set_var SdaiModel_contents_config_control_design::SdaiConnected_face_set_get_extents() -{ - return (SdaiConnected_face_set__set_var)((_folders.retrieve(85))->instances_()); -} - -SdaiOpen_shell__set_var SdaiModel_contents_config_control_design::SdaiOpen_shell_get_extents() -{ - return (SdaiOpen_shell__set_var)((_folders.retrieve(86))->instances_()); -} - -SdaiOriented_open_shell__set_var SdaiModel_contents_config_control_design::SdaiOriented_open_shell_get_extents() -{ - return (SdaiOriented_open_shell__set_var)((_folders.retrieve(87))->instances_()); -} - -SdaiSolid_angle_unit__set_var SdaiModel_contents_config_control_design::SdaiSolid_angle_unit_get_extents() -{ - return (SdaiSolid_angle_unit__set_var)((_folders.retrieve(88))->instances_()); -} - -SdaiCoordinated_universal_time_offset__set_var SdaiModel_contents_config_control_design::SdaiCoordinated_universal_time_offset_get_extents() -{ - return (SdaiCoordinated_universal_time_offset__set_var)((_folders.retrieve(89))->instances_()); -} - -SdaiCurve_replica__set_var SdaiModel_contents_config_control_design::SdaiCurve_replica_get_extents() -{ - return (SdaiCurve_replica__set_var)((_folders.retrieve(90))->instances_()); -} - -SdaiQuasi_uniform_surface__set_var SdaiModel_contents_config_control_design::SdaiQuasi_uniform_surface_get_extents() -{ - return (SdaiQuasi_uniform_surface__set_var)((_folders.retrieve(91))->instances_()); -} - -SdaiSurface_curve__set_var SdaiModel_contents_config_control_design::SdaiSurface_curve_get_extents() -{ - return (SdaiSurface_curve__set_var)((_folders.retrieve(92))->instances_()); -} - -SdaiAction_request_status__set_var SdaiModel_contents_config_control_design::SdaiAction_request_status_get_extents() -{ - return (SdaiAction_request_status__set_var)((_folders.retrieve(93))->instances_()); -} - -SdaiComposite_curve_segment__set_var SdaiModel_contents_config_control_design::SdaiComposite_curve_segment_get_extents() -{ - return (SdaiComposite_curve_segment__set_var)((_folders.retrieve(94))->instances_()); -} - -SdaiReparametrised_composite_curve_segment__set_var SdaiModel_contents_config_control_design::SdaiReparametrised_composite_curve_segment_get_extents() -{ - return (SdaiReparametrised_composite_curve_segment__set_var)((_folders.retrieve(95))->instances_()); -} - -SdaiRepresentation_relationship__set_var SdaiModel_contents_config_control_design::SdaiRepresentation_relationship_get_extents() -{ - return (SdaiRepresentation_relationship__set_var)((_folders.retrieve(96))->instances_()); -} - -SdaiRepresentation_relationship_with_transformation__set_var SdaiModel_contents_config_control_design::SdaiRepresentation_relationship_with_transformation_get_extents() -{ - return (SdaiRepresentation_relationship_with_transformation__set_var)((_folders.retrieve(97))->instances_()); -} - -SdaiPerson_and_organization_role__set_var SdaiModel_contents_config_control_design::SdaiPerson_and_organization_role_get_extents() -{ - return (SdaiPerson_and_organization_role__set_var)((_folders.retrieve(98))->instances_()); -} - -SdaiQuasi_uniform_curve__set_var SdaiModel_contents_config_control_design::SdaiQuasi_uniform_curve_get_extents() -{ - return (SdaiQuasi_uniform_curve__set_var)((_folders.retrieve(99))->instances_()); -} - -SdaiSwept_surface__set_var SdaiModel_contents_config_control_design::SdaiSwept_surface_get_extents() -{ - return (SdaiSwept_surface__set_var)((_folders.retrieve(100))->instances_()); -} - -SdaiProperty_definition__set_var SdaiModel_contents_config_control_design::SdaiProperty_definition_get_extents() -{ - return (SdaiProperty_definition__set_var)((_folders.retrieve(101))->instances_()); -} - -SdaiGlobal_uncertainty_assigned_context__set_var SdaiModel_contents_config_control_design::SdaiGlobal_uncertainty_assigned_context_get_extents() -{ - return (SdaiGlobal_uncertainty_assigned_context__set_var)((_folders.retrieve(102))->instances_()); -} - -SdaiOrganization_relationship__set_var SdaiModel_contents_config_control_design::SdaiOrganization_relationship_get_extents() -{ - return (SdaiOrganization_relationship__set_var)((_folders.retrieve(103))->instances_()); -} - -SdaiParabola__set_var SdaiModel_contents_config_control_design::SdaiParabola_get_extents() -{ - return (SdaiParabola__set_var)((_folders.retrieve(104))->instances_()); -} - -SdaiRectangular_composite_surface__set_var SdaiModel_contents_config_control_design::SdaiRectangular_composite_surface_get_extents() -{ - return (SdaiRectangular_composite_surface__set_var)((_folders.retrieve(105))->instances_()); -} - -SdaiLot_effectivity__set_var SdaiModel_contents_config_control_design::SdaiLot_effectivity_get_extents() -{ - return (SdaiLot_effectivity__set_var)((_folders.retrieve(106))->instances_()); -} - -SdaiSurface_of_linear_extrusion__set_var SdaiModel_contents_config_control_design::SdaiSurface_of_linear_extrusion_get_extents() -{ - return (SdaiSurface_of_linear_extrusion__set_var)((_folders.retrieve(107))->instances_()); -} - -SdaiShell_based_surface_model__set_var SdaiModel_contents_config_control_design::SdaiShell_based_surface_model_get_extents() -{ - return (SdaiShell_based_surface_model__set_var)((_folders.retrieve(108))->instances_()); -} - -SdaiUniform_curve__set_var SdaiModel_contents_config_control_design::SdaiUniform_curve_get_extents() -{ - return (SdaiUniform_curve__set_var)((_folders.retrieve(109))->instances_()); -} - -SdaiBezier_curve__set_var SdaiModel_contents_config_control_design::SdaiBezier_curve_get_extents() -{ - return (SdaiBezier_curve__set_var)((_folders.retrieve(110))->instances_()); -} - -SdaiLoop__set_var SdaiModel_contents_config_control_design::SdaiLoop_get_extents() -{ - return (SdaiLoop__set_var)((_folders.retrieve(111))->instances_()); -} - -SdaiEdge_loop__set_var SdaiModel_contents_config_control_design::SdaiEdge_loop_get_extents() -{ - return (SdaiEdge_loop__set_var)((_folders.retrieve(112))->instances_()); -} - -SdaiDate__set_var SdaiModel_contents_config_control_design::SdaiDate_get_extents() -{ - return (SdaiDate__set_var)((_folders.retrieve(113))->instances_()); -} - -SdaiCalendar_date__set_var SdaiModel_contents_config_control_design::SdaiCalendar_date_get_extents() -{ - return (SdaiCalendar_date__set_var)((_folders.retrieve(114))->instances_()); -} - -SdaiToroidal_surface__set_var SdaiModel_contents_config_control_design::SdaiToroidal_surface_get_extents() -{ - return (SdaiToroidal_surface__set_var)((_folders.retrieve(115))->instances_()); -} - -SdaiPromissory_usage_occurrence__set_var SdaiModel_contents_config_control_design::SdaiPromissory_usage_occurrence_get_extents() -{ - return (SdaiPromissory_usage_occurrence__set_var)((_folders.retrieve(116))->instances_()); -} - -SdaiApproval_assignment__set_var SdaiModel_contents_config_control_design::SdaiApproval_assignment_get_extents() -{ - return (SdaiApproval_assignment__set_var)((_folders.retrieve(117))->instances_()); -} - -SdaiConfiguration_item__set_var SdaiModel_contents_config_control_design::SdaiConfiguration_item_get_extents() -{ - return (SdaiConfiguration_item__set_var)((_folders.retrieve(118))->instances_()); -} - -SdaiContract_assignment__set_var SdaiModel_contents_config_control_design::SdaiContract_assignment_get_extents() -{ - return (SdaiContract_assignment__set_var)((_folders.retrieve(119))->instances_()); -} - -SdaiVector__set_var SdaiModel_contents_config_control_design::SdaiVector_get_extents() -{ - return (SdaiVector__set_var)((_folders.retrieve(120))->instances_()); -} - -SdaiIntersection_curve__set_var SdaiModel_contents_config_control_design::SdaiIntersection_curve_get_extents() -{ - return (SdaiIntersection_curve__set_var)((_folders.retrieve(121))->instances_()); -} - -SdaiTrimmed_curve__set_var SdaiModel_contents_config_control_design::SdaiTrimmed_curve_get_extents() -{ - return (SdaiTrimmed_curve__set_var)((_folders.retrieve(122))->instances_()); -} - -SdaiProduct_definition_context__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_context_get_extents() -{ - return (SdaiProduct_definition_context__set_var)((_folders.retrieve(123))->instances_()); -} - -SdaiItem_defined_transformation__set_var SdaiModel_contents_config_control_design::SdaiItem_defined_transformation_get_extents() -{ - return (SdaiItem_defined_transformation__set_var)((_folders.retrieve(124))->instances_()); -} - -SdaiAction_method__set_var SdaiModel_contents_config_control_design::SdaiAction_method_get_extents() -{ - return (SdaiAction_method__set_var)((_folders.retrieve(125))->instances_()); -} - -SdaiProduct_category_relationship__set_var SdaiModel_contents_config_control_design::SdaiProduct_category_relationship_get_extents() -{ - return (SdaiProduct_category_relationship__set_var)((_folders.retrieve(126))->instances_()); -} - -SdaiPlane_angle_measure_with_unit__set_var SdaiModel_contents_config_control_design::SdaiPlane_angle_measure_with_unit_get_extents() -{ - return (SdaiPlane_angle_measure_with_unit__set_var)((_folders.retrieve(127))->instances_()); -} - -SdaiVertex__set_var SdaiModel_contents_config_control_design::SdaiVertex_get_extents() -{ - return (SdaiVertex__set_var)((_folders.retrieve(128))->instances_()); -} - -SdaiRepresentation_map__set_var SdaiModel_contents_config_control_design::SdaiRepresentation_map_get_extents() -{ - return (SdaiRepresentation_map__set_var)((_folders.retrieve(129))->instances_()); -} - -SdaiProduct_definition_effectivity__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_effectivity_get_extents() -{ - return (SdaiProduct_definition_effectivity__set_var)((_folders.retrieve(130))->instances_()); -} - -SdaiConfiguration_effectivity__set_var SdaiModel_contents_config_control_design::SdaiConfiguration_effectivity_get_extents() -{ - return (SdaiConfiguration_effectivity__set_var)((_folders.retrieve(131))->instances_()); -} - -SdaiEllipse__set_var SdaiModel_contents_config_control_design::SdaiEllipse_get_extents() -{ - return (SdaiEllipse__set_var)((_folders.retrieve(132))->instances_()); -} - -SdaiContext_dependent_unit__set_var SdaiModel_contents_config_control_design::SdaiContext_dependent_unit_get_extents() -{ - return (SdaiContext_dependent_unit__set_var)((_folders.retrieve(133))->instances_()); -} - -SdaiAlternate_product_relationship__set_var SdaiModel_contents_config_control_design::SdaiAlternate_product_relationship_get_extents() -{ - return (SdaiAlternate_product_relationship__set_var)((_folders.retrieve(134))->instances_()); -} - -SdaiDocument_type__set_var SdaiModel_contents_config_control_design::SdaiDocument_type_get_extents() -{ - return (SdaiDocument_type__set_var)((_folders.retrieve(135))->instances_()); -} - -SdaiDocument_reference__set_var SdaiModel_contents_config_control_design::SdaiDocument_reference_get_extents() -{ - return (SdaiDocument_reference__set_var)((_folders.retrieve(136))->instances_()); -} - -SdaiMechanical_context__set_var SdaiModel_contents_config_control_design::SdaiMechanical_context_get_extents() -{ - return (SdaiMechanical_context__set_var)((_folders.retrieve(137))->instances_()); -} - -SdaiShell_based_wireframe_model__set_var SdaiModel_contents_config_control_design::SdaiShell_based_wireframe_model_get_extents() -{ - return (SdaiShell_based_wireframe_model__set_var)((_folders.retrieve(138))->instances_()); -} - -SdaiContract__set_var SdaiModel_contents_config_control_design::SdaiContract_get_extents() -{ - return (SdaiContract__set_var)((_folders.retrieve(139))->instances_()); -} - -SdaiDimensional_exponents__set_var SdaiModel_contents_config_control_design::SdaiDimensional_exponents_get_extents() -{ - return (SdaiDimensional_exponents__set_var)((_folders.retrieve(140))->instances_()); -} - -SdaiStart_request__set_var SdaiModel_contents_config_control_design::SdaiStart_request_get_extents() -{ - return (SdaiStart_request__set_var)((_folders.retrieve(141))->instances_()); -} - -SdaiCc_design_specification_reference__set_var SdaiModel_contents_config_control_design::SdaiCc_design_specification_reference_get_extents() -{ - return (SdaiCc_design_specification_reference__set_var)((_folders.retrieve(142))->instances_()); -} - -SdaiSupplied_part_relationship__set_var SdaiModel_contents_config_control_design::SdaiSupplied_part_relationship_get_extents() -{ - return (SdaiSupplied_part_relationship__set_var)((_folders.retrieve(143))->instances_()); -} - -SdaiContext_dependent_shape_representation__set_var SdaiModel_contents_config_control_design::SdaiContext_dependent_shape_representation_get_extents() -{ - return (SdaiContext_dependent_shape_representation__set_var)((_folders.retrieve(144))->instances_()); -} - -SdaiOrdinal_date__set_var SdaiModel_contents_config_control_design::SdaiOrdinal_date_get_extents() -{ - return (SdaiOrdinal_date__set_var)((_folders.retrieve(145))->instances_()); -} - -SdaiFace_outer_bound__set_var SdaiModel_contents_config_control_design::SdaiFace_outer_bound_get_extents() -{ - return (SdaiFace_outer_bound__set_var)((_folders.retrieve(146))->instances_()); -} - -SdaiMass_measure_with_unit__set_var SdaiModel_contents_config_control_design::SdaiMass_measure_with_unit_get_extents() -{ - return (SdaiMass_measure_with_unit__set_var)((_folders.retrieve(147))->instances_()); -} - -SdaiBrep_with_voids__set_var SdaiModel_contents_config_control_design::SdaiBrep_with_voids_get_extents() -{ - return (SdaiBrep_with_voids__set_var)((_folders.retrieve(148))->instances_()); -} - -SdaiWeek_of_year_and_day_date__set_var SdaiModel_contents_config_control_design::SdaiWeek_of_year_and_day_date_get_extents() -{ - return (SdaiWeek_of_year_and_day_date__set_var)((_folders.retrieve(149))->instances_()); -} - -SdaiPoint_on_curve__set_var SdaiModel_contents_config_control_design::SdaiPoint_on_curve_get_extents() -{ - return (SdaiPoint_on_curve__set_var)((_folders.retrieve(150))->instances_()); -} - -SdaiShell_based_wireframe_shape_representation__set_var SdaiModel_contents_config_control_design::SdaiShell_based_wireframe_shape_representation_get_extents() -{ - return (SdaiShell_based_wireframe_shape_representation__set_var)((_folders.retrieve(151))->instances_()); -} - -SdaiFace__set_var SdaiModel_contents_config_control_design::SdaiFace_get_extents() -{ - return (SdaiFace__set_var)((_folders.retrieve(152))->instances_()); -} - -SdaiFace_surface__set_var SdaiModel_contents_config_control_design::SdaiFace_surface_get_extents() -{ - return (SdaiFace_surface__set_var)((_folders.retrieve(153))->instances_()); -} - -SdaiOriented_face__set_var SdaiModel_contents_config_control_design::SdaiOriented_face_get_extents() -{ - return (SdaiOriented_face__set_var)((_folders.retrieve(154))->instances_()); -} - -SdaiSurface_of_revolution__set_var SdaiModel_contents_config_control_design::SdaiSurface_of_revolution_get_extents() -{ - return (SdaiSurface_of_revolution__set_var)((_folders.retrieve(155))->instances_()); -} - -SdaiAdvanced_brep_shape_representation__set_var SdaiModel_contents_config_control_design::SdaiAdvanced_brep_shape_representation_get_extents() -{ - return (SdaiAdvanced_brep_shape_representation__set_var)((_folders.retrieve(156))->instances_()); -} - -SdaiEdge_curve__set_var SdaiModel_contents_config_control_design::SdaiEdge_curve_get_extents() -{ - return (SdaiEdge_curve__set_var)((_folders.retrieve(157))->instances_()); -} - -SdaiPoint_replica__set_var SdaiModel_contents_config_control_design::SdaiPoint_replica_get_extents() -{ - return (SdaiPoint_replica__set_var)((_folders.retrieve(158))->instances_()); -} - -SdaiProduct__set_var SdaiModel_contents_config_control_design::SdaiProduct_get_extents() -{ - return (SdaiProduct__set_var)((_folders.retrieve(159))->instances_()); -} - -SdaiShape_aspect_relationship__set_var SdaiModel_contents_config_control_design::SdaiShape_aspect_relationship_get_extents() -{ - return (SdaiShape_aspect_relationship__set_var)((_folders.retrieve(160))->instances_()); -} - -SdaiRectangular_trimmed_surface__set_var SdaiModel_contents_config_control_design::SdaiRectangular_trimmed_surface_get_extents() -{ - return (SdaiRectangular_trimmed_surface__set_var)((_folders.retrieve(161))->instances_()); -} - -SdaiPlane__set_var SdaiModel_contents_config_control_design::SdaiPlane_get_extents() -{ - return (SdaiPlane__set_var)((_folders.retrieve(162))->instances_()); -} - -SdaiAction_assignment__set_var SdaiModel_contents_config_control_design::SdaiAction_assignment_get_extents() -{ - return (SdaiAction_assignment__set_var)((_folders.retrieve(163))->instances_()); -} - -SdaiChange__set_var SdaiModel_contents_config_control_design::SdaiChange_get_extents() -{ - return (SdaiChange__set_var)((_folders.retrieve(164))->instances_()); -} - -SdaiCircle__set_var SdaiModel_contents_config_control_design::SdaiCircle_get_extents() -{ - return (SdaiCircle__set_var)((_folders.retrieve(165))->instances_()); -} - -SdaiLine__set_var SdaiModel_contents_config_control_design::SdaiLine_get_extents() -{ - return (SdaiLine__set_var)((_folders.retrieve(166))->instances_()); -} - -SdaiProperty_definition_representation__set_var SdaiModel_contents_config_control_design::SdaiProperty_definition_representation_get_extents() -{ - return (SdaiProperty_definition_representation__set_var)((_folders.retrieve(167))->instances_()); -} - -SdaiGeometric_set__set_var SdaiModel_contents_config_control_design::SdaiGeometric_set_get_extents() -{ - return (SdaiGeometric_set__set_var)((_folders.retrieve(168))->instances_()); -} - -SdaiGeometric_curve_set__set_var SdaiModel_contents_config_control_design::SdaiGeometric_curve_set_get_extents() -{ - return (SdaiGeometric_curve_set__set_var)((_folders.retrieve(169))->instances_()); -} - -SdaiPersonal_address__set_var SdaiModel_contents_config_control_design::SdaiPersonal_address_get_extents() -{ - return (SdaiPersonal_address__set_var)((_folders.retrieve(170))->instances_()); -} - -SdaiDocument_relationship__set_var SdaiModel_contents_config_control_design::SdaiDocument_relationship_get_extents() -{ - return (SdaiDocument_relationship__set_var)((_folders.retrieve(171))->instances_()); -} - -SdaiPcurve__set_var SdaiModel_contents_config_control_design::SdaiPcurve_get_extents() -{ - return (SdaiPcurve__set_var)((_folders.retrieve(172))->instances_()); -} - -SdaiOuter_boundary_curve__set_var SdaiModel_contents_config_control_design::SdaiOuter_boundary_curve_get_extents() -{ - return (SdaiOuter_boundary_curve__set_var)((_folders.retrieve(173))->instances_()); -} - -SdaiShape_representation_relationship__set_var SdaiModel_contents_config_control_design::SdaiShape_representation_relationship_get_extents() -{ - return (SdaiShape_representation_relationship__set_var)((_folders.retrieve(174))->instances_()); -} - -SdaiAssembly_component_usage_substitute__set_var SdaiModel_contents_config_control_design::SdaiAssembly_component_usage_substitute_get_extents() -{ - return (SdaiAssembly_component_usage_substitute__set_var)((_folders.retrieve(175))->instances_()); -} - -SdaiDegenerate_pcurve__set_var SdaiModel_contents_config_control_design::SdaiDegenerate_pcurve_get_extents() -{ - return (SdaiDegenerate_pcurve__set_var)((_folders.retrieve(176))->instances_()); -} - -SdaiEvaluated_degenerate_pcurve__set_var SdaiModel_contents_config_control_design::SdaiEvaluated_degenerate_pcurve_get_extents() -{ - return (SdaiEvaluated_degenerate_pcurve__set_var)((_folders.retrieve(177))->instances_()); -} - -SdaiSolid_angle_measure_with_unit__set_var SdaiModel_contents_config_control_design::SdaiSolid_angle_measure_with_unit_get_extents() -{ - return (SdaiSolid_angle_measure_with_unit__set_var)((_folders.retrieve(178))->instances_()); -} - -SdaiConnected_edge_set__set_var SdaiModel_contents_config_control_design::SdaiConnected_edge_set_get_extents() -{ - return (SdaiConnected_edge_set__set_var)((_folders.retrieve(179))->instances_()); -} - -SdaiAction__set_var SdaiModel_contents_config_control_design::SdaiAction_get_extents() -{ - return (SdaiAction__set_var)((_folders.retrieve(180))->instances_()); -} - -SdaiExecuted_action__set_var SdaiModel_contents_config_control_design::SdaiExecuted_action_get_extents() -{ - return (SdaiExecuted_action__set_var)((_folders.retrieve(181))->instances_()); -} - -SdaiDirected_action__set_var SdaiModel_contents_config_control_design::SdaiDirected_action_get_extents() -{ - return (SdaiDirected_action__set_var)((_folders.retrieve(182))->instances_()); -} - -SdaiOrganizational_project__set_var SdaiModel_contents_config_control_design::SdaiOrganizational_project_get_extents() -{ - return (SdaiOrganizational_project__set_var)((_folders.retrieve(183))->instances_()); -} - -SdaiDate_time_role__set_var SdaiModel_contents_config_control_design::SdaiDate_time_role_get_extents() -{ - return (SdaiDate_time_role__set_var)((_folders.retrieve(184))->instances_()); -} - -SdaiCurve_bounded_surface__set_var SdaiModel_contents_config_control_design::SdaiCurve_bounded_surface_get_extents() -{ - return (SdaiCurve_bounded_surface__set_var)((_folders.retrieve(185))->instances_()); -} - -SdaiClosed_shell__set_var SdaiModel_contents_config_control_design::SdaiClosed_shell_get_extents() -{ - return (SdaiClosed_shell__set_var)((_folders.retrieve(186))->instances_()); -} - -SdaiDesign_make_from_relationship__set_var SdaiModel_contents_config_control_design::SdaiDesign_make_from_relationship_get_extents() -{ - return (SdaiDesign_make_from_relationship__set_var)((_folders.retrieve(187))->instances_()); -} - -SdaiDefinitional_representation__set_var SdaiModel_contents_config_control_design::SdaiDefinitional_representation_get_extents() -{ - return (SdaiDefinitional_representation__set_var)((_folders.retrieve(188))->instances_()); -} - -SdaiProduct_definition_shape__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_shape_get_extents() -{ - return (SdaiProduct_definition_shape__set_var)((_folders.retrieve(189))->instances_()); -} - -SdaiSi_unit__set_var SdaiModel_contents_config_control_design::SdaiSi_unit_get_extents() -{ - return (SdaiSi_unit__set_var)((_folders.retrieve(190))->instances_()); -} - -SdaiBezier_surface__set_var SdaiModel_contents_config_control_design::SdaiBezier_surface_get_extents() -{ - return (SdaiBezier_surface__set_var)((_folders.retrieve(191))->instances_()); -} - -SdaiCertification_assignment__set_var SdaiModel_contents_config_control_design::SdaiCertification_assignment_get_extents() -{ - return (SdaiCertification_assignment__set_var)((_folders.retrieve(192))->instances_()); -} - -SdaiStart_work__set_var SdaiModel_contents_config_control_design::SdaiStart_work_get_extents() -{ - return (SdaiStart_work__set_var)((_folders.retrieve(193))->instances_()); -} - -SdaiContract_type__set_var SdaiModel_contents_config_control_design::SdaiContract_type_get_extents() -{ - return (SdaiContract_type__set_var)((_folders.retrieve(194))->instances_()); -} - -SdaiB_spline_curve_with_knots__set_var SdaiModel_contents_config_control_design::SdaiB_spline_curve_with_knots_get_extents() -{ - return (SdaiB_spline_curve_with_knots__set_var)((_folders.retrieve(195))->instances_()); -} - -SdaiCc_design_approval__set_var SdaiModel_contents_config_control_design::SdaiCc_design_approval_get_extents() -{ - return (SdaiCc_design_approval__set_var)((_folders.retrieve(196))->instances_()); -} - -SdaiEdge_based_wireframe_shape_representation__set_var SdaiModel_contents_config_control_design::SdaiEdge_based_wireframe_shape_representation_get_extents() -{ - return (SdaiEdge_based_wireframe_shape_representation__set_var)((_folders.retrieve(197))->instances_()); -} - -SdaiGeometrically_bounded_wireframe_shape_representation__set_var SdaiModel_contents_config_control_design::SdaiGeometrically_bounded_wireframe_shape_representation_get_extents() -{ - return (SdaiGeometrically_bounded_wireframe_shape_representation__set_var)((_folders.retrieve(198))->instances_()); -} - -SdaiProduct_concept__set_var SdaiModel_contents_config_control_design::SdaiProduct_concept_get_extents() -{ - return (SdaiProduct_concept__set_var)((_folders.retrieve(199))->instances_()); -} - -SdaiCc_design_contract__set_var SdaiModel_contents_config_control_design::SdaiCc_design_contract_get_extents() -{ - return (SdaiCc_design_contract__set_var)((_folders.retrieve(200))->instances_()); -} - -SdaiSeam_curve__set_var SdaiModel_contents_config_control_design::SdaiSeam_curve_get_extents() -{ - return (SdaiSeam_curve__set_var)((_folders.retrieve(201))->instances_()); -} - -SdaiAxis2_placement_3d__set_var SdaiModel_contents_config_control_design::SdaiAxis2_placement_3d_get_extents() -{ - return (SdaiAxis2_placement_3d__set_var)((_folders.retrieve(202))->instances_()); -} - -SdaiRational_b_spline_surface__set_var SdaiModel_contents_config_control_design::SdaiRational_b_spline_surface_get_extents() -{ - return (SdaiRational_b_spline_surface__set_var)((_folders.retrieve(203))->instances_()); -} - -SdaiConfiguration_design__set_var SdaiModel_contents_config_control_design::SdaiConfiguration_design_get_extents() -{ - return (SdaiConfiguration_design__set_var)((_folders.retrieve(204))->instances_()); -} - -SdaiDesign_context__set_var SdaiModel_contents_config_control_design::SdaiDesign_context_get_extents() -{ - return (SdaiDesign_context__set_var)((_folders.retrieve(205))->instances_()); -} - -SdaiProduct_definition__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_get_extents() -{ - return (SdaiProduct_definition__set_var)((_folders.retrieve(206))->instances_()); -} - -SdaiProduct_definition_with_associated_documents__set_var SdaiModel_contents_config_control_design::SdaiProduct_definition_with_associated_documents_get_extents() -{ - return (SdaiProduct_definition_with_associated_documents__set_var)((_folders.retrieve(207))->instances_()); -} - -SdaiOrganization__set_var SdaiModel_contents_config_control_design::SdaiOrganization_get_extents() -{ - return (SdaiOrganization__set_var)((_folders.retrieve(208))->instances_()); -} - -SdaiCc_design_certification__set_var SdaiModel_contents_config_control_design::SdaiCc_design_certification_get_extents() -{ - return (SdaiCc_design_certification__set_var)((_folders.retrieve(209))->instances_()); -} - -SdaiB_spline_surface_with_knots__set_var SdaiModel_contents_config_control_design::SdaiB_spline_surface_with_knots_get_extents() -{ - return (SdaiB_spline_surface_with_knots__set_var)((_folders.retrieve(210))->instances_()); -} - -SdaiCertification_type__set_var SdaiModel_contents_config_control_design::SdaiCertification_type_get_extents() -{ - return (SdaiCertification_type__set_var)((_folders.retrieve(211))->instances_()); -} - -SdaiOriented_path__set_var SdaiModel_contents_config_control_design::SdaiOriented_path_get_extents() -{ - return (SdaiOriented_path__set_var)((_folders.retrieve(212))->instances_()); -} - -SdaiSecurity_classification__set_var SdaiModel_contents_config_control_design::SdaiSecurity_classification_get_extents() -{ - return (SdaiSecurity_classification__set_var)((_folders.retrieve(213))->instances_()); -} - -SdaiVertex_loop__set_var SdaiModel_contents_config_control_design::SdaiVertex_loop_get_extents() -{ - return (SdaiVertex_loop__set_var)((_folders.retrieve(214))->instances_()); -} - -SdaiApproval_status__set_var SdaiModel_contents_config_control_design::SdaiApproval_status_get_extents() -{ - return (SdaiApproval_status__set_var)((_folders.retrieve(215))->instances_()); -} - -SdaiCartesian_point__set_var SdaiModel_contents_config_control_design::SdaiCartesian_point_get_extents() -{ - return (SdaiCartesian_point__set_var)((_folders.retrieve(216))->instances_()); -} - -SdaiDate_and_time_assignment__set_var SdaiModel_contents_config_control_design::SdaiDate_and_time_assignment_get_extents() -{ - return (SdaiDate_and_time_assignment__set_var)((_folders.retrieve(217))->instances_()); -} - -SdaiParametric_representation_context__set_var SdaiModel_contents_config_control_design::SdaiParametric_representation_context_get_extents() -{ - return (SdaiParametric_representation_context__set_var)((_folders.retrieve(218))->instances_()); -} - -SdaiProduct_concept_context__set_var SdaiModel_contents_config_control_design::SdaiProduct_concept_context_get_extents() -{ - return (SdaiProduct_concept_context__set_var)((_folders.retrieve(219))->instances_()); -} - -SdaiCartesian_transformation_operator_2d__set_var SdaiModel_contents_config_control_design::SdaiCartesian_transformation_operator_2d_get_extents() -{ - return (SdaiCartesian_transformation_operator_2d__set_var)((_folders.retrieve(220))->instances_()); -} - -SdaiSurface_patch__set_var SdaiModel_contents_config_control_design::SdaiSurface_patch_get_extents() -{ - return (SdaiSurface_patch__set_var)((_folders.retrieve(221))->instances_()); -} - -SdaiLength_unit__set_var SdaiModel_contents_config_control_design::SdaiLength_unit_get_extents() -{ - return (SdaiLength_unit__set_var)((_folders.retrieve(222))->instances_()); -} - -SdaiShape_aspect__set_var SdaiModel_contents_config_control_design::SdaiShape_aspect_get_extents() -{ - return (SdaiShape_aspect__set_var)((_folders.retrieve(223))->instances_()); -} - -SdaiVolume_measure_with_unit__set_var SdaiModel_contents_config_control_design::SdaiVolume_measure_with_unit_get_extents() -{ - return (SdaiVolume_measure_with_unit__set_var)((_folders.retrieve(224))->instances_()); -} - -SdaiAdvanced_face__set_var SdaiModel_contents_config_control_design::SdaiAdvanced_face_get_extents() -{ - return (SdaiAdvanced_face__set_var)((_folders.retrieve(225))->instances_()); -} - -SdaiSecurity_classification_level__set_var SdaiModel_contents_config_control_design::SdaiSecurity_classification_level_get_extents() -{ - return (SdaiSecurity_classification_level__set_var)((_folders.retrieve(226))->instances_()); -} - -SdaiApproval_relationship__set_var SdaiModel_contents_config_control_design::SdaiApproval_relationship_get_extents() -{ - return (SdaiApproval_relationship__set_var)((_folders.retrieve(227))->instances_()); -} - -SdaiPolyline__set_var SdaiModel_contents_config_control_design::SdaiPolyline_get_extents() -{ - return (SdaiPolyline__set_var)((_folders.retrieve(228))->instances_()); -} - -SdaiApproval_person_organization__set_var SdaiModel_contents_config_control_design::SdaiApproval_person_organization_get_extents() -{ - return (SdaiApproval_person_organization__set_var)((_folders.retrieve(229))->instances_()); -} - -SdaiSurface_replica__set_var SdaiModel_contents_config_control_design::SdaiSurface_replica_get_extents() -{ - return (SdaiSurface_replica__set_var)((_folders.retrieve(230))->instances_()); -} - -SdaiSecurity_classification_assignment__set_var SdaiModel_contents_config_control_design::SdaiSecurity_classification_assignment_get_extents() -{ - return (SdaiSecurity_classification_assignment__set_var)((_folders.retrieve(231))->instances_()); -} - -SdaiCc_design_security_classification__set_var SdaiModel_contents_config_control_design::SdaiCc_design_security_classification_get_extents() -{ - return (SdaiCc_design_security_classification__set_var)((_folders.retrieve(232))->instances_()); -} - -SdaiFaceted_brep_shape_representation__set_var SdaiModel_contents_config_control_design::SdaiFaceted_brep_shape_representation_get_extents() -{ - return (SdaiFaceted_brep_shape_representation__set_var)((_folders.retrieve(233))->instances_()); -} - -SdaiDocument_usage_constraint__set_var SdaiModel_contents_config_control_design::SdaiDocument_usage_constraint_get_extents() -{ - return (SdaiDocument_usage_constraint__set_var)((_folders.retrieve(234))->instances_()); -} - -SdaiVertex_point__set_var SdaiModel_contents_config_control_design::SdaiVertex_point_get_extents() -{ - return (SdaiVertex_point__set_var)((_folders.retrieve(235))->instances_()); -} - -SdaiCc_design_date_and_time_assignment__set_var SdaiModel_contents_config_control_design::SdaiCc_design_date_and_time_assignment_get_extents() -{ - return (SdaiCc_design_date_and_time_assignment__set_var)((_folders.retrieve(236))->instances_()); -} - -SdaiOriented_closed_shell__set_var SdaiModel_contents_config_control_design::SdaiOriented_closed_shell_get_extents() -{ - return (SdaiOriented_closed_shell__set_var)((_folders.retrieve(237))->instances_()); -} - -SdaiPerson_and_organization__set_var SdaiModel_contents_config_control_design::SdaiPerson_and_organization_get_extents() -{ - return (SdaiPerson_and_organization__set_var)((_folders.retrieve(238))->instances_()); -} - -SdaiCylindrical_surface__set_var SdaiModel_contents_config_control_design::SdaiCylindrical_surface_get_extents() -{ - return (SdaiCylindrical_surface__set_var)((_folders.retrieve(239))->instances_()); -} - -SdaiLocal_time__set_var SdaiModel_contents_config_control_design::SdaiLocal_time_get_extents() -{ - return (SdaiLocal_time__set_var)((_folders.retrieve(240))->instances_()); -} - -SdaiMass_unit__set_var SdaiModel_contents_config_control_design::SdaiMass_unit_get_extents() -{ - return (SdaiMass_unit__set_var)((_folders.retrieve(241))->instances_()); -} - -SdaiVertex_shell__set_var SdaiModel_contents_config_control_design::SdaiVertex_shell_get_extents() -{ - return (SdaiVertex_shell__set_var)((_folders.retrieve(242))->instances_()); -} - -SdaiPoly_loop__set_var SdaiModel_contents_config_control_design::SdaiPoly_loop_get_extents() -{ - return (SdaiPoly_loop__set_var)((_folders.retrieve(243))->instances_()); -} - -SdaiWire_shell__set_var SdaiModel_contents_config_control_design::SdaiWire_shell_get_extents() -{ - return (SdaiWire_shell__set_var)((_folders.retrieve(244))->instances_()); -} - -SdaiArea_unit__set_var SdaiModel_contents_config_control_design::SdaiArea_unit_get_extents() -{ - return (SdaiArea_unit__set_var)((_folders.retrieve(245))->instances_()); -} - -SdaiMapped_item__set_var SdaiModel_contents_config_control_design::SdaiMapped_item_get_extents() -{ - return (SdaiMapped_item__set_var)((_folders.retrieve(246))->instances_()); -} - -SdaiOffset_curve_2d__set_var SdaiModel_contents_config_control_design::SdaiOffset_curve_2d_get_extents() -{ - return (SdaiOffset_curve_2d__set_var)((_folders.retrieve(247))->instances_()); -} - -SdaiShape_definition_representation__set_var SdaiModel_contents_config_control_design::SdaiShape_definition_representation_get_extents() -{ - return (SdaiShape_definition_representation__set_var)((_folders.retrieve(248))->instances_()); -} - -SdaiVolume_unit__set_var SdaiModel_contents_config_control_design::SdaiVolume_unit_get_extents() -{ - return (SdaiVolume_unit__set_var)((_folders.retrieve(249))->instances_()); -} - -SdaiConical_surface__set_var SdaiModel_contents_config_control_design::SdaiConical_surface_get_extents() -{ - return (SdaiConical_surface__set_var)((_folders.retrieve(250))->instances_()); -} - -SdaiGlobal_unit_assigned_context__set_var SdaiModel_contents_config_control_design::SdaiGlobal_unit_assigned_context_get_extents() -{ - return (SdaiGlobal_unit_assigned_context__set_var)((_folders.retrieve(251))->instances_()); -} -#endif diff --git a/source/geometry/solids/STEP/src/SdaiCONFIG_CONTROL_DESIGN_init.cc b/source/geometry/solids/STEP/src/SdaiCONFIG_CONTROL_DESIGN_init.cc deleted file mode 100644 index 2ddce6f894..0000000000 --- a/source/geometry/solids/STEP/src/SdaiCONFIG_CONTROL_DESIGN_init.cc +++ /dev/null @@ -1,4681 +0,0 @@ -#ifndef SDAICONFIG_CONTROL_DESIGN_INIT_CC -#define SDAICONFIG_CONTROL_DESIGN_INIT_CC -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. -/* $Id: SdaiCONFIG_CONTROL_DESIGN_init.cc,v 1.3 2000/01/21 13:43:04 gcosmo Exp $ */ -#ifndef SCHEMA_H -#include -#endif -#include -void -SdaiCONFIG_CONTROL_DESIGNInit (Registry& reg) -{ - config_control_designt_characterized_definition -> Elements ().AddNode (config_control_designt_characterized_product_definition); - config_control_designt_characterized_definition -> Elements ().AddNode (config_control_designt_shape_definition); - reg.AddType (*config_control_designt_characterized_definition); - config_control_designt_parameter_value->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_parameter_value); - config_control_designt_plane_angle_measure->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_plane_angle_measure); - config_control_designt_change_request_item -> Elements ().AddNode (config_control_designe_product_definition_formation); - reg.AddType (*config_control_designt_change_request_item); - config_control_designt_text->ReferentType(t_sdaiSTRING); - reg.AddType (*config_control_designt_text); - config_control_designt_year_number->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_year_number); - config_control_designt_characterized_product_definition -> Elements ().AddNode (config_control_designe_product_definition); - config_control_designt_characterized_product_definition -> Elements ().AddNode (config_control_designe_product_definition_relationship); - reg.AddType (*config_control_designt_characterized_product_definition); - config_control_designt_reversible_topology_item -> Elements ().AddNode (config_control_designe_edge); - config_control_designt_reversible_topology_item -> Elements ().AddNode (config_control_designe_path); - config_control_designt_reversible_topology_item -> Elements ().AddNode (config_control_designe_face); - config_control_designt_reversible_topology_item -> Elements ().AddNode (config_control_designe_face_bound); - config_control_designt_reversible_topology_item -> Elements ().AddNode (config_control_designe_closed_shell); - config_control_designt_reversible_topology_item -> Elements ().AddNode (config_control_designe_open_shell); - reg.AddType (*config_control_designt_reversible_topology_item); - config_control_designt_axis2_placement -> Elements ().AddNode (config_control_designe_axis2_placement_2d); - config_control_designt_axis2_placement -> Elements ().AddNode (config_control_designe_axis2_placement_3d); - reg.AddType (*config_control_designt_axis2_placement); - config_control_designt_set_of_reversible_topology_item->Bound1(0); - config_control_designt_set_of_reversible_topology_item->Bound2(2147483647); - config_control_designt_set_of_reversible_topology_item->ReferentType(config_control_designt_reversible_topology_item); - reg.AddType (*config_control_designt_set_of_reversible_topology_item); - config_control_designt_week_in_year_number->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_week_in_year_number); - reg.AddType (*config_control_designt_knot_type); - config_control_designt_specified_item -> Elements ().AddNode (config_control_designe_product_definition); - config_control_designt_specified_item -> Elements ().AddNode (config_control_designe_shape_aspect); - reg.AddType (*config_control_designt_specified_item); - config_control_designt_minute_in_hour->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_minute_in_hour); - reg.AddType (*config_control_designt_transition_code); - config_control_designt_identifier->ReferentType(t_sdaiSTRING); - reg.AddType (*config_control_designt_identifier); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_area_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_context_dependent_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_count_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_descriptive_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_length_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_mass_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_plane_angle_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_parameter_value); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_positive_length_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_positive_plane_angle_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_solid_angle_measure); - config_control_designt_measure_value -> Elements ().AddNode (config_control_designt_volume_measure); - reg.AddType (*config_control_designt_measure_value); - config_control_designt_person_organization_select -> Elements ().AddNode (config_control_designe_person_and_organization); - reg.AddType (*config_control_designt_person_organization_select); - reg.AddType (*config_control_designt_preferred_surface_curve_representation); - config_control_designt_dimension_count->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_dimension_count); - config_control_designt_pcurve_or_surface -> Elements ().AddNode (config_control_designe_pcurve); - config_control_designt_pcurve_or_surface -> Elements ().AddNode (config_control_designe_surface); - reg.AddType (*config_control_designt_pcurve_or_surface); - config_control_designt_positive_length_measure->ReferentType(config_control_designt_length_measure); - reg.AddType (*config_control_designt_positive_length_measure); - reg.AddType (*config_control_designt_b_spline_curve_form); - config_control_designt_hour_in_day->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_hour_in_day); - config_control_designt_classified_item -> Elements ().AddNode (config_control_designe_product_definition_formation); - config_control_designt_classified_item -> Elements ().AddNode (config_control_designe_assembly_component_usage); - reg.AddType (*config_control_designt_classified_item); - reg.AddType (*config_control_designt_si_unit_name); - config_control_designt_day_in_month_number->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_day_in_month_number); - reg.AddType (*config_control_designt_trimming_preference); - config_control_designt_vector_or_direction -> Elements ().AddNode (config_control_designe_vector); - config_control_designt_vector_or_direction -> Elements ().AddNode (config_control_designe_direction); - reg.AddType (*config_control_designt_vector_or_direction); - config_control_designt_wireframe_model -> Elements ().AddNode (config_control_designe_shell_based_wireframe_model); - config_control_designt_wireframe_model -> Elements ().AddNode (config_control_designe_edge_based_wireframe_model); - reg.AddType (*config_control_designt_wireframe_model); - config_control_designt_volume_measure->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_volume_measure); - config_control_designt_geometric_set_select -> Elements ().AddNode (config_control_designe_point); - config_control_designt_geometric_set_select -> Elements ().AddNode (config_control_designe_curve); - config_control_designt_geometric_set_select -> Elements ().AddNode (config_control_designe_surface); - reg.AddType (*config_control_designt_geometric_set_select); - config_control_designt_positive_plane_angle_measure->ReferentType(config_control_designt_plane_angle_measure); - reg.AddType (*config_control_designt_positive_plane_angle_measure); - config_control_designt_start_request_item -> Elements ().AddNode (config_control_designe_product_definition_formation); - reg.AddType (*config_control_designt_start_request_item); - reg.AddType (*config_control_designt_b_spline_surface_form); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_change); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_start_work); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_change_request); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_start_request); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_configuration_item); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_product); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_product_definition_formation); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_product_definition); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_contract); - config_control_designt_person_organization_item -> Elements ().AddNode (config_control_designe_security_classification); - reg.AddType (*config_control_designt_person_organization_item); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_product_definition); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_change_request); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_start_request); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_change); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_start_work); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_approval_person_organization); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_contract); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_security_classification); - config_control_designt_date_time_item -> Elements ().AddNode (config_control_designe_certification); - reg.AddType (*config_control_designt_date_time_item); - config_control_designt_shell -> Elements ().AddNode (config_control_designe_open_shell); - config_control_designt_shell -> Elements ().AddNode (config_control_designe_closed_shell); - config_control_designt_shell -> Elements ().AddNode (config_control_designe_vertex_shell); - config_control_designt_shell -> Elements ().AddNode (config_control_designe_wire_shell); - reg.AddType (*config_control_designt_shell); - config_control_designt_transformation -> Elements ().AddNode (config_control_designe_item_defined_transformation); - config_control_designt_transformation -> Elements ().AddNode (config_control_designe_functionally_defined_transformation); - reg.AddType (*config_control_designt_transformation); - config_control_designt_day_in_week_number->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_day_in_week_number); - config_control_designt_boolean_operand -> Elements ().AddNode (config_control_designe_solid_model); - reg.AddType (*config_control_designt_boolean_operand); - config_control_designt_certified_item -> Elements ().AddNode (config_control_designe_supplied_part_relationship); - reg.AddType (*config_control_designt_certified_item); - config_control_designt_date_time_select -> Elements ().AddNode (config_control_designe_date_and_time); - reg.AddType (*config_control_designt_date_time_select); - config_control_designt_solid_angle_measure->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_solid_angle_measure); - config_control_designt_curve_on_surface -> Elements ().AddNode (config_control_designe_pcurve); - config_control_designt_curve_on_surface -> Elements ().AddNode (config_control_designe_surface_curve); - config_control_designt_curve_on_surface -> Elements ().AddNode (config_control_designe_composite_curve_on_surface); - reg.AddType (*config_control_designt_curve_on_surface); - config_control_designt_trimming_select -> Elements ().AddNode (config_control_designe_cartesian_point); - config_control_designt_trimming_select -> Elements ().AddNode (config_control_designt_parameter_value); - reg.AddType (*config_control_designt_trimming_select); - reg.AddType (*config_control_designt_ahead_or_behind); - config_control_designt_contracted_item -> Elements ().AddNode (config_control_designe_product_definition_formation); - reg.AddType (*config_control_designt_contracted_item); - config_control_designt_day_in_year_number->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_day_in_year_number); - config_control_designt_mass_measure->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_mass_measure); - config_control_designt_descriptive_measure->ReferentType(t_sdaiSTRING); - reg.AddType (*config_control_designt_descriptive_measure); - config_control_designt_area_measure->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_area_measure); - config_control_designt_month_in_year_number->ReferentType(t_sdaiINTEGER); - reg.AddType (*config_control_designt_month_in_year_number); - reg.AddType (*config_control_designt_source); - config_control_designt_unit -> Elements ().AddNode (config_control_designe_named_unit); - reg.AddType (*config_control_designt_unit); - config_control_designt_reversible_topology -> Elements ().AddNode (config_control_designt_reversible_topology_item); - config_control_designt_reversible_topology -> Elements ().AddNode (config_control_designt_list_of_reversible_topology_item); - config_control_designt_reversible_topology -> Elements ().AddNode (config_control_designt_set_of_reversible_topology_item); - reg.AddType (*config_control_designt_reversible_topology); - config_control_designt_work_item -> Elements ().AddNode (config_control_designe_product_definition_formation); - reg.AddType (*config_control_designt_work_item); - config_control_designt_shape_definition -> Elements ().AddNode (config_control_designe_product_definition_shape); - config_control_designt_shape_definition -> Elements ().AddNode (config_control_designe_shape_aspect); - config_control_designt_shape_definition -> Elements ().AddNode (config_control_designe_shape_aspect_relationship); - reg.AddType (*config_control_designt_shape_definition); - config_control_designt_second_in_minute->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_second_in_minute); - config_control_designt_label->ReferentType(t_sdaiSTRING); - reg.AddType (*config_control_designt_label); - config_control_designt_context_dependent_measure->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_context_dependent_measure); - config_control_designt_supported_item -> Elements ().AddNode (config_control_designe_action_directive); - config_control_designt_supported_item -> Elements ().AddNode (config_control_designe_action); - config_control_designt_supported_item -> Elements ().AddNode (config_control_designe_action_method); - reg.AddType (*config_control_designt_supported_item); - reg.AddType (*config_control_designt_si_prefix); - config_control_designt_length_measure->ReferentType(t_sdaiREAL); - reg.AddType (*config_control_designt_length_measure); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_product_definition_formation); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_product_definition); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_configuration_effectivity); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_configuration_item); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_security_classification); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_change_request); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_change); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_start_request); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_start_work); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_certification); - config_control_designt_approved_item -> Elements ().AddNode (config_control_designe_contract); - reg.AddType (*config_control_designt_approved_item); - config_control_designt_count_measure->ReferentType(t_sdaiNUMBER); - reg.AddType (*config_control_designt_count_measure); - config_control_designt_surface_model -> Elements ().AddNode (config_control_designe_shell_based_surface_model); - reg.AddType (*config_control_designt_surface_model); - config_control_designt_list_of_reversible_topology_item->Bound1(0); - config_control_designt_list_of_reversible_topology_item->Bound2(2147483647); - config_control_designt_list_of_reversible_topology_item->ReferentType(config_control_designt_reversible_topology_item); - reg.AddType (*config_control_designt_list_of_reversible_topology_item); - -///////// ENTITY representation_item - - a_0name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_item); - config_control_designe_representation_item->AddExplicitAttr (a_0name); - reg.AddEntity (*config_control_designe_representation_item); -///////// END_ENTITY representation_item - -///////// ENTITY geometric_representation_item - - config_control_designe_geometric_representation_item->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (point,direction,vector,placement,cartesian_transformation_operator,\n curve,surface,edge_curve,face_surface,vertex_point,poly_loop,\n solid_model,shell_based_surface_model,shell_based_wireframe_model,\n edge_based_wireframe_model,geometric_set))"); - config_control_designe_geometric_representation_item->AddSupertype(config_control_designe_representation_item); - config_control_designe_representation_item->AddSubtype(config_control_designe_geometric_representation_item); - a_1Ddim = - new Derived_attribute("dim",config_control_designt_dimension_count, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddExplicitAttr (a_1Ddim); - a_1Ddim->initializer_("dimension_of(SELF)"); - reg.AddEntity (*config_control_designe_geometric_representation_item); -///////// END_ENTITY geometric_representation_item - -///////// ENTITY functionally_defined_transformation - - a_2name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_functionally_defined_transformation); - config_control_designe_functionally_defined_transformation->AddExplicitAttr (a_2name); - a_3description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_functionally_defined_transformation); - config_control_designe_functionally_defined_transformation->AddExplicitAttr (a_3description); - reg.AddEntity (*config_control_designe_functionally_defined_transformation); -///////// END_ENTITY functionally_defined_transformation - -///////// ENTITY cartesian_transformation_operator - - config_control_designe_cartesian_transformation_operator->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (cartesian_transformation_operator_2d,\n cartesian_transformation_operator_3d))"); - config_control_designe_cartesian_transformation_operator->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->AddSupertype(config_control_designe_functionally_defined_transformation); - config_control_designe_functionally_defined_transformation->AddSubtype(config_control_designe_cartesian_transformation_operator); - a_4axis1 = - new AttrDescriptor("axis1",config_control_designe_direction, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->AddExplicitAttr (a_4axis1); - a_5axis2 = - new AttrDescriptor("axis2",config_control_designe_direction, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->AddExplicitAttr (a_5axis2); - a_6local_origin = - new AttrDescriptor("local_origin",config_control_designe_cartesian_point, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->AddExplicitAttr (a_6local_origin); - a_7scale = - new AttrDescriptor("scale",t_sdaiREAL, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->AddExplicitAttr (a_7scale); - a_8Dscl = - new Derived_attribute("scl",t_sdaiREAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->AddExplicitAttr (a_8Dscl); - a_8Dscl->initializer_("NVL(scale,1)"); - reg.AddEntity (*config_control_designe_cartesian_transformation_operator); -///////// END_ENTITY cartesian_transformation_operator - -///////// ENTITY cartesian_transformation_operator_3d - - config_control_designe_cartesian_transformation_operator_3d->AddSupertype(config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->AddSubtype(config_control_designe_cartesian_transformation_operator_3d); - a_9axis3 = - new AttrDescriptor("axis3",config_control_designe_direction, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cartesian_transformation_operator_3d); - config_control_designe_cartesian_transformation_operator_3d->AddExplicitAttr (a_9axis3); - ListTypeDescriptor * t_0 = new ListTypeDescriptor; - t_0->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_0->Bound1(3); - t_0->Bound2(3); - t_0->FundamentalType(LIST_TYPE); - t_0->Description("LIST [3:3] OF direction"); - t_0->OriginatingSchema(s_config_control_design); - t_0->ReferentType(config_control_designe_direction); - a_10Du = - new Derived_attribute("u",t_0,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_cartesian_transformation_operator_3d); - config_control_designe_cartesian_transformation_operator_3d->AddExplicitAttr (a_10Du); - a_10Du->initializer_("base_axis(3,SELF\\cartesian_transformation_operator.axis1,SELF\\\n cartesian_transformation_operator.axis2,axis3)"); - reg.AddEntity (*config_control_designe_cartesian_transformation_operator_3d); -///////// END_ENTITY cartesian_transformation_operator_3d - -///////// ENTITY versioned_action_request - - a_11id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_versioned_action_request); - config_control_designe_versioned_action_request->AddExplicitAttr (a_11id); - a_12version = - new AttrDescriptor("version",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_versioned_action_request); - config_control_designe_versioned_action_request->AddExplicitAttr (a_12version); - a_13purpose = - new AttrDescriptor("purpose",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_versioned_action_request); - config_control_designe_versioned_action_request->AddExplicitAttr (a_13purpose); - a_14description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_versioned_action_request); - config_control_designe_versioned_action_request->AddExplicitAttr (a_14description); - reg.AddEntity (*config_control_designe_versioned_action_request); -///////// END_ENTITY versioned_action_request - -///////// ENTITY representation - - a_15name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation); - config_control_designe_representation->AddExplicitAttr (a_15name); - SetTypeDescriptor * t_1 = new SetTypeDescriptor; - t_1->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_1->Bound1(1); - t_1->Bound2(2147483647); - t_1->FundamentalType(SET_TYPE); - t_1->Description("SET [1:?] OF representation_item"); - t_1->OriginatingSchema(s_config_control_design); - t_1->ReferentType(config_control_designe_representation_item); - a_16items = - new AttrDescriptor("items",t_1,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation); - config_control_designe_representation->AddExplicitAttr (a_16items); - a_17context_of_items = - new AttrDescriptor("context_of_items",config_control_designe_representation_context, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation); - config_control_designe_representation->AddExplicitAttr (a_17context_of_items); - reg.AddEntity (*config_control_designe_representation); -///////// END_ENTITY representation - -///////// ENTITY shape_representation - - config_control_designe_shape_representation->AddSupertype(config_control_designe_representation); - config_control_designe_representation->AddSubtype(config_control_designe_shape_representation); - reg.AddEntity (*config_control_designe_shape_representation); -///////// END_ENTITY shape_representation - -///////// ENTITY manifold_surface_shape_representation - - config_control_designe_manifold_surface_shape_representation->AddSupertype(config_control_designe_shape_representation); - config_control_designe_shape_representation->AddSubtype(config_control_designe_manifold_surface_shape_representation); - reg.AddEntity (*config_control_designe_manifold_surface_shape_representation); -///////// END_ENTITY manifold_surface_shape_representation - -///////// ENTITY certification - - a_18name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_certification); - config_control_designe_certification->AddExplicitAttr (a_18name); - a_19purpose = - new AttrDescriptor("purpose",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_certification); - config_control_designe_certification->AddExplicitAttr (a_19purpose); - a_20kind = - new AttrDescriptor("kind",config_control_designe_certification_type, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_certification); - config_control_designe_certification->AddExplicitAttr (a_20kind); - reg.AddEntity (*config_control_designe_certification); -///////// END_ENTITY certification - -///////// ENTITY product_definition_relationship - - a_21id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_relationship); - config_control_designe_product_definition_relationship->AddExplicitAttr (a_21id); - a_22name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_relationship); - config_control_designe_product_definition_relationship->AddExplicitAttr (a_22name); - a_23description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_relationship); - config_control_designe_product_definition_relationship->AddExplicitAttr (a_23description); - a_24relating_product_definition = - new AttrDescriptor("relating_product_definition",config_control_designe_product_definition, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_relationship); - config_control_designe_product_definition_relationship->AddExplicitAttr (a_24relating_product_definition); - a_25related_product_definition = - new AttrDescriptor("related_product_definition",config_control_designe_product_definition, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_relationship); - config_control_designe_product_definition_relationship->AddExplicitAttr (a_25related_product_definition); - reg.AddEntity (*config_control_designe_product_definition_relationship); -///////// END_ENTITY product_definition_relationship - -///////// ENTITY product_definition_usage - - config_control_designe_product_definition_usage->AddSupertype_Stmt("SUPERTYPE OF (assembly_component_usage)"); - config_control_designe_product_definition_usage->AddSupertype(config_control_designe_product_definition_relationship); - config_control_designe_product_definition_relationship->AddSubtype(config_control_designe_product_definition_usage); - reg.AddEntity (*config_control_designe_product_definition_usage); -///////// END_ENTITY product_definition_usage - -///////// ENTITY assembly_component_usage - - config_control_designe_assembly_component_usage->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (next_assembly_usage_occurrence,specified_higher_usage_occurrence,\n promissory_usage_occurrence))"); - config_control_designe_assembly_component_usage->AddSupertype(config_control_designe_product_definition_usage); - config_control_designe_product_definition_usage->AddSubtype(config_control_designe_assembly_component_usage); - a_26reference_designator = - new AttrDescriptor("reference_designator",config_control_designt_identifier, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_assembly_component_usage); - config_control_designe_assembly_component_usage->AddExplicitAttr (a_26reference_designator); - reg.AddEntity (*config_control_designe_assembly_component_usage); -///////// END_ENTITY assembly_component_usage - -///////// ENTITY quantified_assembly_component_usage - - config_control_designe_quantified_assembly_component_usage->AddSupertype(config_control_designe_assembly_component_usage); - config_control_designe_assembly_component_usage->AddSubtype(config_control_designe_quantified_assembly_component_usage); - a_27quantity = - new AttrDescriptor("quantity",config_control_designe_measure_with_unit, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_quantified_assembly_component_usage); - config_control_designe_quantified_assembly_component_usage->AddExplicitAttr (a_27quantity); - reg.AddEntity (*config_control_designe_quantified_assembly_component_usage); -///////// END_ENTITY quantified_assembly_component_usage - -///////// ENTITY solid_model - - config_control_designe_solid_model->AddSupertype_Stmt("SUPERTYPE OF (manifold_solid_brep)"); - config_control_designe_solid_model->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_solid_model); - reg.AddEntity (*config_control_designe_solid_model); -///////// END_ENTITY solid_model - -///////// ENTITY manifold_solid_brep - - config_control_designe_manifold_solid_brep->AddSupertype(config_control_designe_solid_model); - config_control_designe_solid_model->AddSubtype(config_control_designe_manifold_solid_brep); - a_28outer = - new AttrDescriptor("outer",config_control_designe_closed_shell, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_manifold_solid_brep); - config_control_designe_manifold_solid_brep->AddExplicitAttr (a_28outer); - reg.AddEntity (*config_control_designe_manifold_solid_brep); -///////// END_ENTITY manifold_solid_brep - -///////// ENTITY faceted_brep - - config_control_designe_faceted_brep->AddSupertype(config_control_designe_manifold_solid_brep); - config_control_designe_manifold_solid_brep->AddSubtype(config_control_designe_faceted_brep); - reg.AddEntity (*config_control_designe_faceted_brep); -///////// END_ENTITY faceted_brep - -///////// ENTITY action_directive - - a_29name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_directive); - config_control_designe_action_directive->AddExplicitAttr (a_29name); - a_30description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_directive); - config_control_designe_action_directive->AddExplicitAttr (a_30description); - a_31analysis = - new AttrDescriptor("analysis",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_directive); - config_control_designe_action_directive->AddExplicitAttr (a_31analysis); - a_32comment = - new AttrDescriptor("comment",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_directive); - config_control_designe_action_directive->AddExplicitAttr (a_32comment); - SetTypeDescriptor * t_2 = new SetTypeDescriptor; - t_2->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_2->Bound1(1); - t_2->Bound2(2147483647); - t_2->FundamentalType(SET_TYPE); - t_2->Description("SET [1:?] OF versioned_action_request"); - t_2->OriginatingSchema(s_config_control_design); - t_2->ReferentType(config_control_designe_versioned_action_request); - a_33requests = - new AttrDescriptor("requests",t_2,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_directive); - config_control_designe_action_directive->AddExplicitAttr (a_33requests); - reg.AddEntity (*config_control_designe_action_directive); -///////// END_ENTITY action_directive - -///////// ENTITY named_unit - - config_control_designe_named_unit->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (si_unit,conversion_based_unit,context_dependent_unit) ANDOR ONEOF (\n length_unit,mass_unit,plane_angle_unit,solid_angle_unit,area_unit,\n volume_unit))"); - a_34dimensions = - new AttrDescriptor("dimensions",config_control_designe_dimensional_exponents, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_named_unit); - config_control_designe_named_unit->AddExplicitAttr (a_34dimensions); - reg.AddEntity (*config_control_designe_named_unit); -///////// END_ENTITY named_unit - -///////// ENTITY plane_angle_unit - - config_control_designe_plane_angle_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_plane_angle_unit); - reg.AddEntity (*config_control_designe_plane_angle_unit); -///////// END_ENTITY plane_angle_unit - -///////// ENTITY measure_with_unit - - config_control_designe_measure_with_unit->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (length_measure_with_unit,mass_measure_with_unit,\n plane_angle_measure_with_unit,solid_angle_measure_with_unit,\n area_measure_with_unit,volume_measure_with_unit))"); - a_35value_component = - new AttrDescriptor("value_component",config_control_designt_measure_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddExplicitAttr (a_35value_component); - a_36unit_component = - new AttrDescriptor("unit_component",config_control_designt_unit, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddExplicitAttr (a_36unit_component); - reg.AddEntity (*config_control_designe_measure_with_unit); -///////// END_ENTITY measure_with_unit - -///////// ENTITY area_measure_with_unit - - config_control_designe_area_measure_with_unit->AddSupertype(config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddSubtype(config_control_designe_area_measure_with_unit); - reg.AddEntity (*config_control_designe_area_measure_with_unit); -///////// END_ENTITY area_measure_with_unit - -///////// ENTITY effectivity - - config_control_designe_effectivity->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (serial_numbered_effectivity,dated_effectivity,lot_effectivity))"); - a_37id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_effectivity); - config_control_designe_effectivity->AddExplicitAttr (a_37id); - reg.AddEntity (*config_control_designe_effectivity); -///////// END_ENTITY effectivity - -///////// ENTITY serial_numbered_effectivity - - config_control_designe_serial_numbered_effectivity->AddSupertype(config_control_designe_effectivity); - config_control_designe_effectivity->AddSubtype(config_control_designe_serial_numbered_effectivity); - a_38effectivity_start_id = - new AttrDescriptor("effectivity_start_id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_serial_numbered_effectivity); - config_control_designe_serial_numbered_effectivity->AddExplicitAttr (a_38effectivity_start_id); - a_39effectivity_end_id = - new AttrDescriptor("effectivity_end_id",config_control_designt_identifier, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_serial_numbered_effectivity); - config_control_designe_serial_numbered_effectivity->AddExplicitAttr (a_39effectivity_end_id); - reg.AddEntity (*config_control_designe_serial_numbered_effectivity); -///////// END_ENTITY serial_numbered_effectivity - -///////// ENTITY surface - - config_control_designe_surface->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (elementary_surface,swept_surface,bounded_surface,offset_surface,\n surface_replica))"); - config_control_designe_surface->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_surface); - reg.AddEntity (*config_control_designe_surface); -///////// END_ENTITY surface - -///////// ENTITY offset_surface - - config_control_designe_offset_surface->AddSupertype(config_control_designe_surface); - config_control_designe_surface->AddSubtype(config_control_designe_offset_surface); - a_40basis_surface = - new AttrDescriptor("basis_surface",config_control_designe_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_surface); - config_control_designe_offset_surface->AddExplicitAttr (a_40basis_surface); - a_41distance = - new AttrDescriptor("distance",config_control_designt_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_surface); - config_control_designe_offset_surface->AddExplicitAttr (a_41distance); - a_42self_intersect = - new AttrDescriptor("self_intersect",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_surface); - config_control_designe_offset_surface->AddExplicitAttr (a_42self_intersect); - reg.AddEntity (*config_control_designe_offset_surface); -///////// END_ENTITY offset_surface - -///////// ENTITY placement - - config_control_designe_placement->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (axis1_placement,axis2_placement_2d,axis2_placement_3d))"); - config_control_designe_placement->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_placement); - a_43location = - new AttrDescriptor("location",config_control_designe_cartesian_point, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_placement); - config_control_designe_placement->AddExplicitAttr (a_43location); - reg.AddEntity (*config_control_designe_placement); -///////// END_ENTITY placement - -///////// ENTITY axis2_placement_2d - - config_control_designe_axis2_placement_2d->AddSupertype(config_control_designe_placement); - config_control_designe_placement->AddSubtype(config_control_designe_axis2_placement_2d); - a_44ref_direction = - new AttrDescriptor("ref_direction",config_control_designe_direction, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_axis2_placement_2d); - config_control_designe_axis2_placement_2d->AddExplicitAttr (a_44ref_direction); - ListTypeDescriptor * t_3 = new ListTypeDescriptor; - t_3->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_3->Bound1(2); - t_3->Bound2(2); - t_3->FundamentalType(LIST_TYPE); - t_3->Description("LIST [2:2] OF direction"); - t_3->OriginatingSchema(s_config_control_design); - t_3->ReferentType(config_control_designe_direction); - a_45Dp = - new Derived_attribute("p",t_3,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_axis2_placement_2d); - config_control_designe_axis2_placement_2d->AddExplicitAttr (a_45Dp); - a_45Dp->initializer_("build_2axes(ref_direction)"); - reg.AddEntity (*config_control_designe_axis2_placement_2d); -///////// END_ENTITY axis2_placement_2d - -///////// ENTITY product_category - - a_46name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_category); - config_control_designe_product_category->AddExplicitAttr (a_46name); - a_47description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_category); - config_control_designe_product_category->AddExplicitAttr (a_47description); - reg.AddEntity (*config_control_designe_product_category); -///////// END_ENTITY product_category - -///////// ENTITY product_related_product_category - - config_control_designe_product_related_product_category->AddSupertype(config_control_designe_product_category); - config_control_designe_product_category->AddSubtype(config_control_designe_product_related_product_category); - SetTypeDescriptor * t_4 = new SetTypeDescriptor; - t_4->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_4->Bound1(1); - t_4->Bound2(2147483647); - t_4->FundamentalType(SET_TYPE); - t_4->Description("SET [1:?] OF product"); - t_4->OriginatingSchema(s_config_control_design); - t_4->ReferentType(config_control_designe_product); - a_48products = - new AttrDescriptor("products",t_4,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_related_product_category); - config_control_designe_product_related_product_category->AddExplicitAttr (a_48products); - reg.AddEntity (*config_control_designe_product_related_product_category); -///////// END_ENTITY product_related_product_category - -///////// ENTITY curve - - config_control_designe_curve->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (line,conic,pcurve,surface_curve,offset_curve_2d,offset_curve_3d,\n curve_replica))"); - config_control_designe_curve->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_curve); - reg.AddEntity (*config_control_designe_curve); -///////// END_ENTITY curve - -///////// ENTITY conic - - config_control_designe_conic->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (circle,ellipse,hyperbola,parabola))"); - config_control_designe_conic->AddSupertype(config_control_designe_curve); - config_control_designe_curve->AddSubtype(config_control_designe_conic); - a_49position = - new AttrDescriptor("position",config_control_designt_axis2_placement, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_conic); - config_control_designe_conic->AddExplicitAttr (a_49position); - reg.AddEntity (*config_control_designe_conic); -///////// END_ENTITY conic - -///////// ENTITY hyperbola - - config_control_designe_hyperbola->AddSupertype(config_control_designe_conic); - config_control_designe_conic->AddSubtype(config_control_designe_hyperbola); - a_50semi_axis = - new AttrDescriptor("semi_axis",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_hyperbola); - config_control_designe_hyperbola->AddExplicitAttr (a_50semi_axis); - a_51semi_imag_axis = - new AttrDescriptor("semi_imag_axis",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_hyperbola); - config_control_designe_hyperbola->AddExplicitAttr (a_51semi_imag_axis); - reg.AddEntity (*config_control_designe_hyperbola); -///////// END_ENTITY hyperbola - -///////// ENTITY address - - a_52internal_location = - new AttrDescriptor("internal_location",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_52internal_location); - a_53street_number = - new AttrDescriptor("street_number",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_53street_number); - a_54street = - new AttrDescriptor("street",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_54street); - a_55postal_box = - new AttrDescriptor("postal_box",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_55postal_box); - a_56town = - new AttrDescriptor("town",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_56town); - a_57region = - new AttrDescriptor("region",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_57region); - a_58postal_code = - new AttrDescriptor("postal_code",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_58postal_code); - a_59country = - new AttrDescriptor("country",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_59country); - a_60facsimile_number = - new AttrDescriptor("facsimile_number",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_60facsimile_number); - a_61telephone_number = - new AttrDescriptor("telephone_number",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_61telephone_number); - a_62electronic_mail_address = - new AttrDescriptor("electronic_mail_address",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_62electronic_mail_address); - a_63telex_number = - new AttrDescriptor("telex_number",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_address); - config_control_designe_address->AddExplicitAttr (a_63telex_number); - reg.AddEntity (*config_control_designe_address); -///////// END_ENTITY address - -///////// ENTITY organizational_address - - config_control_designe_organizational_address->AddSupertype(config_control_designe_address); - config_control_designe_address->AddSubtype(config_control_designe_organizational_address); - SetTypeDescriptor * t_5 = new SetTypeDescriptor; - t_5->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_5->Bound1(1); - t_5->Bound2(2147483647); - t_5->FundamentalType(SET_TYPE); - t_5->Description("SET [1:?] OF organization"); - t_5->OriginatingSchema(s_config_control_design); - t_5->ReferentType(config_control_designe_organization); - a_64organizations = - new AttrDescriptor("organizations",t_5,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organizational_address); - config_control_designe_organizational_address->AddExplicitAttr (a_64organizations); - a_65description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organizational_address); - config_control_designe_organizational_address->AddExplicitAttr (a_65description); - reg.AddEntity (*config_control_designe_organizational_address); -///////// END_ENTITY organizational_address - -///////// ENTITY bounded_surface - - config_control_designe_bounded_surface->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (b_spline_surface,rectangular_trimmed_surface,curve_bounded_surface,\n rectangular_composite_surface))"); - config_control_designe_bounded_surface->AddSupertype(config_control_designe_surface); - config_control_designe_surface->AddSubtype(config_control_designe_bounded_surface); - reg.AddEntity (*config_control_designe_bounded_surface); -///////// END_ENTITY bounded_surface - -///////// ENTITY b_spline_surface - - config_control_designe_b_spline_surface->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (b_spline_surface_with_knots,uniform_surface,quasi_uniform_surface,\n bezier_surface) ANDOR rational_b_spline_surface)"); - config_control_designe_b_spline_surface->AddSupertype(config_control_designe_bounded_surface); - config_control_designe_bounded_surface->AddSubtype(config_control_designe_b_spline_surface); - a_66u_degree = - new AttrDescriptor("u_degree",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_66u_degree); - a_67v_degree = - new AttrDescriptor("v_degree",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_67v_degree); - ListTypeDescriptor * t_6 = new ListTypeDescriptor; - t_6->AssignAggrCreator((AggregateCreator) create_GenericAggregate); // Creator function - t_6->Bound1(2); - t_6->Bound2(2147483647); - t_6->FundamentalType(LIST_TYPE); - t_6->Description("LIST [2:?] OF LIST [2:?] OF cartesian_point"); - t_6->OriginatingSchema(s_config_control_design); - ListTypeDescriptor * t_7 = new ListTypeDescriptor; - t_7->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_7->Bound1(2); - t_7->Bound2(2147483647); - t_7->FundamentalType(LIST_TYPE); - t_7->Description("LIST [2:?] OF cartesian_point"); - t_7->OriginatingSchema(s_config_control_design); - t_7->ReferentType(config_control_designe_cartesian_point); - t_6->ReferentType(t_7); - a_68control_points_list = - new AttrDescriptor("control_points_list",t_6,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_68control_points_list); - a_69surface_form = - new AttrDescriptor("surface_form",config_control_designt_b_spline_surface_form, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_69surface_form); - a_70u_closed = - new AttrDescriptor("u_closed",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_70u_closed); - a_71v_closed = - new AttrDescriptor("v_closed",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_71v_closed); - a_72self_intersect = - new AttrDescriptor("self_intersect",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_72self_intersect); - a_73Du_upper = - new Derived_attribute("u_upper",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_73Du_upper); - a_73Du_upper->initializer_("SIZEOF(control_points_list) - 1"); - a_74Dv_upper = - new Derived_attribute("v_upper",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_74Dv_upper); - a_74Dv_upper->initializer_("SIZEOF(control_points_list[1]) - 1"); - ArrayTypeDescriptor * t_8 = new ArrayTypeDescriptor; - t_8->AssignAggrCreator((AggregateCreator) create_GenericAggregate); // Creator function - t_8->Bound1(0); - t_8->Bound2(1025168); - t_8->FundamentalType(ARRAY_TYPE); - t_8->Description("ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF cartesian_point"); - t_8->OriginatingSchema(s_config_control_design); - ArrayTypeDescriptor * t_9 = new ArrayTypeDescriptor; - t_9->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_9->Bound1(0); - t_9->Bound2(1025208); - t_9->FundamentalType(ARRAY_TYPE); - t_9->Description("ARRAY [0:v_upper] OF cartesian_point"); - t_9->OriginatingSchema(s_config_control_design); - t_9->ReferentType(config_control_designe_cartesian_point); - t_8->ReferentType(t_9); - a_75Dcontrol_points = - new Derived_attribute("control_points",t_8,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddExplicitAttr (a_75Dcontrol_points); - a_75Dcontrol_points->initializer_("make_array_of_array(control_points_list,0,u_upper,0,v_upper)"); - reg.AddEntity (*config_control_designe_b_spline_surface); -///////// END_ENTITY b_spline_surface - -///////// ENTITY uniform_surface - - config_control_designe_uniform_surface->AddSupertype(config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddSubtype(config_control_designe_uniform_surface); - reg.AddEntity (*config_control_designe_uniform_surface); -///////// END_ENTITY uniform_surface - -///////// ENTITY geometrically_bounded_surface_shape_representation - - config_control_designe_geometrically_bounded_surface_shape_representation->AddSupertype(config_control_designe_shape_representation); - config_control_designe_shape_representation->AddSubtype(config_control_designe_geometrically_bounded_surface_shape_representation); - reg.AddEntity (*config_control_designe_geometrically_bounded_surface_shape_representation); -///////// END_ENTITY geometrically_bounded_surface_shape_representation - -///////// ENTITY axis1_placement - - config_control_designe_axis1_placement->AddSupertype(config_control_designe_placement); - config_control_designe_placement->AddSubtype(config_control_designe_axis1_placement); - a_76axis = - new AttrDescriptor("axis",config_control_designe_direction, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_axis1_placement); - config_control_designe_axis1_placement->AddExplicitAttr (a_76axis); - a_77Dz = - new Derived_attribute("z",config_control_designe_direction, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_axis1_placement); - config_control_designe_axis1_placement->AddExplicitAttr (a_77Dz); - a_77Dz->initializer_("NVL(normalise(axis),direction([0,0,1]))"); - reg.AddEntity (*config_control_designe_axis1_placement); -///////// END_ENTITY axis1_placement - -///////// ENTITY bounded_curve - - config_control_designe_bounded_curve->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (polyline,b_spline_curve,trimmed_curve,composite_curve))"); - config_control_designe_bounded_curve->AddSupertype(config_control_designe_curve); - config_control_designe_curve->AddSubtype(config_control_designe_bounded_curve); - reg.AddEntity (*config_control_designe_bounded_curve); -///////// END_ENTITY bounded_curve - -///////// ENTITY b_spline_curve - - config_control_designe_b_spline_curve->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (uniform_curve,b_spline_curve_with_knots,quasi_uniform_curve,\n bezier_curve) ANDOR rational_b_spline_curve)"); - config_control_designe_b_spline_curve->AddSupertype(config_control_designe_bounded_curve); - config_control_designe_bounded_curve->AddSubtype(config_control_designe_b_spline_curve); - a_78degree = - new AttrDescriptor("degree",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddExplicitAttr (a_78degree); - ListTypeDescriptor * t_10 = new ListTypeDescriptor; - t_10->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_10->Bound1(2); - t_10->Bound2(2147483647); - t_10->FundamentalType(LIST_TYPE); - t_10->Description("LIST [2:?] OF cartesian_point"); - t_10->OriginatingSchema(s_config_control_design); - t_10->ReferentType(config_control_designe_cartesian_point); - a_79control_points_list = - new AttrDescriptor("control_points_list",t_10,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddExplicitAttr (a_79control_points_list); - a_80curve_form = - new AttrDescriptor("curve_form",config_control_designt_b_spline_curve_form, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddExplicitAttr (a_80curve_form); - a_81closed_curve = - new AttrDescriptor("closed_curve",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddExplicitAttr (a_81closed_curve); - a_82self_intersect = - new AttrDescriptor("self_intersect",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddExplicitAttr (a_82self_intersect); - a_83Dupper_index_on_control_points = - new Derived_attribute("upper_index_on_control_points",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddExplicitAttr (a_83Dupper_index_on_control_points); - a_83Dupper_index_on_control_points->initializer_("SIZEOF(control_points_list) - 1"); - ArrayTypeDescriptor * t_11 = new ArrayTypeDescriptor; - t_11->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_11->Bound1(0); - t_11->Bound2(1024368); - t_11->FundamentalType(ARRAY_TYPE); - t_11->Description("ARRAY [0:upper_index_on_control_points] OF cartesian_point"); - t_11->OriginatingSchema(s_config_control_design); - t_11->ReferentType(config_control_designe_cartesian_point); - a_84Dcontrol_points = - new Derived_attribute("control_points",t_11,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddExplicitAttr (a_84Dcontrol_points); - a_84Dcontrol_points->initializer_("list_to_array(control_points_list,0,upper_index_on_control_points)"); - reg.AddEntity (*config_control_designe_b_spline_curve); -///////// END_ENTITY b_spline_curve - -///////// ENTITY rational_b_spline_curve - - config_control_designe_rational_b_spline_curve->AddSupertype(config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddSubtype(config_control_designe_rational_b_spline_curve); - ListTypeDescriptor * t_12 = new ListTypeDescriptor; - t_12->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_12->Bound1(2); - t_12->Bound2(2147483647); - t_12->FundamentalType(LIST_TYPE); - t_12->Description("LIST [2:?] OF REAL"); - t_12->OriginatingSchema(s_config_control_design); - t_12->ReferentType(t_sdaiREAL); - a_85weights_data = - new AttrDescriptor("weights_data",t_12,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rational_b_spline_curve); - config_control_designe_rational_b_spline_curve->AddExplicitAttr (a_85weights_data); - ArrayTypeDescriptor * t_13 = new ArrayTypeDescriptor; - t_13->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_13->Bound1(0); - t_13->Bound2(1024368); - t_13->FundamentalType(ARRAY_TYPE); - t_13->Description("ARRAY [0:upper_index_on_control_points] OF REAL"); - t_13->OriginatingSchema(s_config_control_design); - t_13->ReferentType(t_sdaiREAL); - a_86Dweights = - new Derived_attribute("weights",t_13,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_rational_b_spline_curve); - config_control_designe_rational_b_spline_curve->AddExplicitAttr (a_86Dweights); - a_86Dweights->initializer_("list_to_array(weights_data,0,upper_index_on_control_points)"); - reg.AddEntity (*config_control_designe_rational_b_spline_curve); -///////// END_ENTITY rational_b_spline_curve - -///////// ENTITY action_request_assignment - - config_control_designe_action_request_assignment->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_87assigned_action_request = - new AttrDescriptor("assigned_action_request",config_control_designe_versioned_action_request, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_request_assignment); - config_control_designe_action_request_assignment->AddExplicitAttr (a_87assigned_action_request); - reg.AddEntity (*config_control_designe_action_request_assignment); -///////// END_ENTITY action_request_assignment - -///////// ENTITY topological_representation_item - - config_control_designe_topological_representation_item->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (vertex,edge,face_bound,face,connected_edge_set,connected_face_set,\n vertex_shell,wire_shell,loop ANDOR path))"); - config_control_designe_topological_representation_item->AddSupertype(config_control_designe_representation_item); - config_control_designe_representation_item->AddSubtype(config_control_designe_topological_representation_item); - reg.AddEntity (*config_control_designe_topological_representation_item); -///////// END_ENTITY topological_representation_item - -///////// ENTITY face_bound - - config_control_designe_face_bound->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_face_bound); - a_88bound = - new AttrDescriptor("bound",config_control_designe_loop, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_face_bound); - config_control_designe_face_bound->AddExplicitAttr (a_88bound); - a_89orientation = - new AttrDescriptor("orientation",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_face_bound); - config_control_designe_face_bound->AddExplicitAttr (a_89orientation); - reg.AddEntity (*config_control_designe_face_bound); -///////// END_ENTITY face_bound - -///////// ENTITY length_measure_with_unit - - config_control_designe_length_measure_with_unit->AddSupertype(config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddSubtype(config_control_designe_length_measure_with_unit); - reg.AddEntity (*config_control_designe_length_measure_with_unit); -///////// END_ENTITY length_measure_with_unit - -///////// ENTITY dated_effectivity - - config_control_designe_dated_effectivity->AddSupertype(config_control_designe_effectivity); - config_control_designe_effectivity->AddSubtype(config_control_designe_dated_effectivity); - a_90effectivity_start_date = - new AttrDescriptor("effectivity_start_date",config_control_designe_date_and_time, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dated_effectivity); - config_control_designe_dated_effectivity->AddExplicitAttr (a_90effectivity_start_date); - a_91effectivity_end_date = - new AttrDescriptor("effectivity_end_date",config_control_designe_date_and_time, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dated_effectivity); - config_control_designe_dated_effectivity->AddExplicitAttr (a_91effectivity_end_date); - reg.AddEntity (*config_control_designe_dated_effectivity); -///////// END_ENTITY dated_effectivity - -///////// ENTITY direction - - config_control_designe_direction->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_direction); - ListTypeDescriptor * t_14 = new ListTypeDescriptor; - t_14->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_14->Bound1(2); - t_14->Bound2(3); - t_14->FundamentalType(LIST_TYPE); - t_14->Description("LIST [2:3] OF REAL"); - t_14->OriginatingSchema(s_config_control_design); - t_14->ReferentType(t_sdaiREAL); - a_92direction_ratios = - new AttrDescriptor("direction_ratios",t_14,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_direction); - config_control_designe_direction->AddExplicitAttr (a_92direction_ratios); - reg.AddEntity (*config_control_designe_direction); -///////// END_ENTITY direction - -///////// ENTITY next_assembly_usage_occurrence - - config_control_designe_next_assembly_usage_occurrence->AddSupertype(config_control_designe_assembly_component_usage); - config_control_designe_assembly_component_usage->AddSubtype(config_control_designe_next_assembly_usage_occurrence); - reg.AddEntity (*config_control_designe_next_assembly_usage_occurrence); -///////// END_ENTITY next_assembly_usage_occurrence - -///////// ENTITY edge - - config_control_designe_edge->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (edge_curve,oriented_edge))"); - config_control_designe_edge->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_edge); - a_93edge_start = - new AttrDescriptor("edge_start",config_control_designe_vertex, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_edge); - config_control_designe_edge->AddExplicitAttr (a_93edge_start); - a_94edge_end = - new AttrDescriptor("edge_end",config_control_designe_vertex, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_edge); - config_control_designe_edge->AddExplicitAttr (a_94edge_end); - reg.AddEntity (*config_control_designe_edge); -///////// END_ENTITY edge - -///////// ENTITY oriented_edge - - config_control_designe_oriented_edge->AddSupertype(config_control_designe_edge); - config_control_designe_edge->AddSubtype(config_control_designe_oriented_edge); - a_95edge_element = - new AttrDescriptor("edge_element",config_control_designe_edge, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_edge); - config_control_designe_oriented_edge->AddExplicitAttr (a_95edge_element); - a_96orientation = - new AttrDescriptor("orientation",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_edge); - config_control_designe_oriented_edge->AddExplicitAttr (a_96orientation); - a_97Dedge_edge_start = - new Derived_attribute("edge.edge_start",config_control_designe_vertex, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_oriented_edge); - config_control_designe_oriented_edge->AddExplicitAttr (a_97Dedge_edge_start); - a_97Dedge_edge_start->initializer_("boolean_choose(SELF.orientation,SELF.edge_element.edge_start,SELF.\n edge_element.edge_end)"); - a_98Dedge_edge_end = - new Derived_attribute("edge.edge_end",config_control_designe_vertex, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_oriented_edge); - config_control_designe_oriented_edge->AddExplicitAttr (a_98Dedge_edge_end); - a_98Dedge_edge_end->initializer_("boolean_choose(SELF.orientation,SELF.edge_element.edge_end,SELF.\n edge_element.edge_start)"); - reg.AddEntity (*config_control_designe_oriented_edge); -///////// END_ENTITY oriented_edge - -///////// ENTITY person - - a_99id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_person); - config_control_designe_person->AddExplicitAttr (a_99id); - a_100last_name = - new AttrDescriptor("last_name",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person); - config_control_designe_person->AddExplicitAttr (a_100last_name); - a_101first_name = - new AttrDescriptor("first_name",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person); - config_control_designe_person->AddExplicitAttr (a_101first_name); - ListTypeDescriptor * t_15 = new ListTypeDescriptor; - t_15->AssignAggrCreator((AggregateCreator) create_StringAggregate); // Creator function - t_15->Bound1(1); - t_15->Bound2(2147483647); - t_15->FundamentalType(LIST_TYPE); - t_15->Description("LIST [1:?] OF label"); - t_15->OriginatingSchema(s_config_control_design); - t_15->ReferentType(config_control_designt_label); - a_102middle_names = - new AttrDescriptor("middle_names",t_15,SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person); - config_control_designe_person->AddExplicitAttr (a_102middle_names); - ListTypeDescriptor * t_16 = new ListTypeDescriptor; - t_16->AssignAggrCreator((AggregateCreator) create_StringAggregate); // Creator function - t_16->Bound1(1); - t_16->Bound2(2147483647); - t_16->FundamentalType(LIST_TYPE); - t_16->Description("LIST [1:?] OF label"); - t_16->OriginatingSchema(s_config_control_design); - t_16->ReferentType(config_control_designt_label); - a_103prefix_titles = - new AttrDescriptor("prefix_titles",t_16,SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person); - config_control_designe_person->AddExplicitAttr (a_103prefix_titles); - ListTypeDescriptor * t_17 = new ListTypeDescriptor; - t_17->AssignAggrCreator((AggregateCreator) create_StringAggregate); // Creator function - t_17->Bound1(1); - t_17->Bound2(2147483647); - t_17->FundamentalType(LIST_TYPE); - t_17->Description("LIST [1:?] OF label"); - t_17->OriginatingSchema(s_config_control_design); - t_17->ReferentType(config_control_designt_label); - a_104suffix_titles = - new AttrDescriptor("suffix_titles",t_17,SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person); - config_control_designe_person->AddExplicitAttr (a_104suffix_titles); - reg.AddEntity (*config_control_designe_person); -///////// END_ENTITY person - -///////// ENTITY document - - a_105id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_document); - config_control_designe_document->AddExplicitAttr (a_105id); - a_106name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document); - config_control_designe_document->AddExplicitAttr (a_106name); - a_107description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document); - config_control_designe_document->AddExplicitAttr (a_107description); - a_108kind = - new AttrDescriptor("kind",config_control_designe_document_type, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document); - config_control_designe_document->AddExplicitAttr (a_108kind); - reg.AddEntity (*config_control_designe_document); -///////// END_ENTITY document - -///////// ENTITY document_with_class - - config_control_designe_document_with_class->AddSupertype(config_control_designe_document); - config_control_designe_document->AddSubtype(config_control_designe_document_with_class); - a_109class = - new AttrDescriptor("class",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_with_class); - config_control_designe_document_with_class->AddExplicitAttr (a_109class); - reg.AddEntity (*config_control_designe_document_with_class); -///////// END_ENTITY document_with_class - -///////// ENTITY conversion_based_unit - - config_control_designe_conversion_based_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_conversion_based_unit); - a_110name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_conversion_based_unit); - config_control_designe_conversion_based_unit->AddExplicitAttr (a_110name); - a_111conversion_factor = - new AttrDescriptor("conversion_factor",config_control_designe_measure_with_unit, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_conversion_based_unit); - config_control_designe_conversion_based_unit->AddExplicitAttr (a_111conversion_factor); - reg.AddEntity (*config_control_designe_conversion_based_unit); -///////// END_ENTITY conversion_based_unit - -///////// ENTITY point - - config_control_designe_point->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (cartesian_point,point_on_curve,point_on_surface,point_replica,\n degenerate_pcurve))"); - config_control_designe_point->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_point); - reg.AddEntity (*config_control_designe_point); -///////// END_ENTITY point - -///////// ENTITY point_on_surface - - config_control_designe_point_on_surface->AddSupertype(config_control_designe_point); - config_control_designe_point->AddSubtype(config_control_designe_point_on_surface); - a_112basis_surface = - new AttrDescriptor("basis_surface",config_control_designe_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_point_on_surface); - config_control_designe_point_on_surface->AddExplicitAttr (a_112basis_surface); - a_113point_parameter_u = - new AttrDescriptor("point_parameter_u",config_control_designt_parameter_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_point_on_surface); - config_control_designe_point_on_surface->AddExplicitAttr (a_113point_parameter_u); - a_114point_parameter_v = - new AttrDescriptor("point_parameter_v",config_control_designt_parameter_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_point_on_surface); - config_control_designe_point_on_surface->AddExplicitAttr (a_114point_parameter_v); - reg.AddEntity (*config_control_designe_point_on_surface); -///////// END_ENTITY point_on_surface - -///////// ENTITY product_definition_formation - - a_115id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_product_definition_formation); - config_control_designe_product_definition_formation->AddExplicitAttr (a_115id); - a_116description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_formation); - config_control_designe_product_definition_formation->AddExplicitAttr (a_116description); - a_117of_product = - new AttrDescriptor("of_product",config_control_designe_product, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_product_definition_formation); - config_control_designe_product_definition_formation->AddExplicitAttr (a_117of_product); - reg.AddEntity (*config_control_designe_product_definition_formation); -///////// END_ENTITY product_definition_formation - -///////// ENTITY person_and_organization_assignment - - config_control_designe_person_and_organization_assignment->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_118assigned_person_and_organization = - new AttrDescriptor("assigned_person_and_organization",config_control_designe_person_and_organization, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person_and_organization_assignment); - config_control_designe_person_and_organization_assignment->AddExplicitAttr (a_118assigned_person_and_organization); - a_119role = - new AttrDescriptor("role",config_control_designe_person_and_organization_role, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person_and_organization_assignment); - config_control_designe_person_and_organization_assignment->AddExplicitAttr (a_119role); - reg.AddEntity (*config_control_designe_person_and_organization_assignment); -///////// END_ENTITY person_and_organization_assignment - -///////// ENTITY cc_design_person_and_organization_assignment - - config_control_designe_cc_design_person_and_organization_assignment->AddSupertype(config_control_designe_person_and_organization_assignment); - config_control_designe_person_and_organization_assignment->AddSubtype(config_control_designe_cc_design_person_and_organization_assignment); - SetTypeDescriptor * t_18 = new SetTypeDescriptor; - t_18->AssignAggrCreator((AggregateCreator) create_SdaiPerson_organization_items); // Creator function - t_18->Bound1(1); - t_18->Bound2(2147483647); - t_18->FundamentalType(SET_TYPE); - t_18->Description("SET [1:?] OF person_organization_item"); - t_18->OriginatingSchema(s_config_control_design); - t_18->ReferentType(config_control_designt_person_organization_item); - a_120items = - new AttrDescriptor("items",t_18,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cc_design_person_and_organization_assignment); - config_control_designe_cc_design_person_and_organization_assignment->AddExplicitAttr (a_120items); - reg.AddEntity (*config_control_designe_cc_design_person_and_organization_assignment); -///////// END_ENTITY cc_design_person_and_organization_assignment - -///////// ENTITY offset_curve_3d - - config_control_designe_offset_curve_3d->AddSupertype(config_control_designe_curve); - config_control_designe_curve->AddSubtype(config_control_designe_offset_curve_3d); - a_121basis_curve = - new AttrDescriptor("basis_curve",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_curve_3d); - config_control_designe_offset_curve_3d->AddExplicitAttr (a_121basis_curve); - a_122distance = - new AttrDescriptor("distance",config_control_designt_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_curve_3d); - config_control_designe_offset_curve_3d->AddExplicitAttr (a_122distance); - a_123self_intersect = - new AttrDescriptor("self_intersect",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_curve_3d); - config_control_designe_offset_curve_3d->AddExplicitAttr (a_123self_intersect); - a_124ref_direction = - new AttrDescriptor("ref_direction",config_control_designe_direction, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_curve_3d); - config_control_designe_offset_curve_3d->AddExplicitAttr (a_124ref_direction); - reg.AddEntity (*config_control_designe_offset_curve_3d); -///////// END_ENTITY offset_curve_3d - -///////// ENTITY approval - - a_125status = - new AttrDescriptor("status",config_control_designe_approval_status, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval); - config_control_designe_approval->AddExplicitAttr (a_125status); - a_126level = - new AttrDescriptor("level",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval); - config_control_designe_approval->AddExplicitAttr (a_126level); - reg.AddEntity (*config_control_designe_approval); -///////// END_ENTITY approval - -///////// ENTITY composite_curve - - config_control_designe_composite_curve->AddSupertype(config_control_designe_bounded_curve); - config_control_designe_bounded_curve->AddSubtype(config_control_designe_composite_curve); - ListTypeDescriptor * t_19 = new ListTypeDescriptor; - t_19->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_19->Bound1(1); - t_19->Bound2(2147483647); - t_19->FundamentalType(LIST_TYPE); - t_19->Description("LIST [1:?] OF composite_curve_segment"); - t_19->OriginatingSchema(s_config_control_design); - t_19->ReferentType(config_control_designe_composite_curve_segment); - a_127segments = - new AttrDescriptor("segments",t_19,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_composite_curve); - config_control_designe_composite_curve->AddExplicitAttr (a_127segments); - a_128self_intersect = - new AttrDescriptor("self_intersect",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_composite_curve); - config_control_designe_composite_curve->AddExplicitAttr (a_128self_intersect); - a_129Dn_segments = - new Derived_attribute("n_segments",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_composite_curve); - config_control_designe_composite_curve->AddExplicitAttr (a_129Dn_segments); - a_129Dn_segments->initializer_("SIZEOF(segments)"); - a_130Dclosed_curve = - new Derived_attribute("closed_curve",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_composite_curve); - config_control_designe_composite_curve->AddExplicitAttr (a_130Dclosed_curve); - a_130Dclosed_curve->initializer_("segments[n_segments].transition <> discontinuous"); - reg.AddEntity (*config_control_designe_composite_curve); -///////// END_ENTITY composite_curve - -///////// ENTITY composite_curve_on_surface - - config_control_designe_composite_curve_on_surface->AddSupertype_Stmt("SUPERTYPE OF (boundary_curve)"); - config_control_designe_composite_curve_on_surface->AddSupertype(config_control_designe_composite_curve); - config_control_designe_composite_curve->AddSubtype(config_control_designe_composite_curve_on_surface); - SetTypeDescriptor * t_20 = new SetTypeDescriptor; - t_20->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_20->Bound1(0); - t_20->Bound2(2); - t_20->FundamentalType(SET_TYPE); - t_20->Description("SET [0:2] OF surface"); - t_20->OriginatingSchema(s_config_control_design); - t_20->ReferentType(config_control_designe_surface); - a_131Dbasis_surface = - new Derived_attribute("basis_surface",t_20,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_composite_curve_on_surface); - config_control_designe_composite_curve_on_surface->AddExplicitAttr (a_131Dbasis_surface); - a_131Dbasis_surface->initializer_("get_basis_surface(SELF)"); - reg.AddEntity (*config_control_designe_composite_curve_on_surface); -///////// END_ENTITY composite_curve_on_surface - -///////// ENTITY boundary_curve - - config_control_designe_boundary_curve->AddSupertype(config_control_designe_composite_curve_on_surface); - config_control_designe_composite_curve_on_surface->AddSubtype(config_control_designe_boundary_curve); - reg.AddEntity (*config_control_designe_boundary_curve); -///////// END_ENTITY boundary_curve - -///////// ENTITY representation_context - - a_132context_identifier = - new AttrDescriptor("context_identifier",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_context); - config_control_designe_representation_context->AddExplicitAttr (a_132context_identifier); - a_133context_type = - new AttrDescriptor("context_type",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_context); - config_control_designe_representation_context->AddExplicitAttr (a_133context_type); - SetTypeDescriptor * t_21 = new SetTypeDescriptor; - t_21->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_21->Bound1(1); - t_21->Bound2(2147483647); - t_21->FundamentalType(SET_TYPE); - t_21->Description("SET [1:?] OF representation"); - t_21->OriginatingSchema(s_config_control_design); - t_21->ReferentType(config_control_designe_representation); - a_134Irepresentations_in_context = - new Inverse_attribute("representations_in_context",t_21,SCLLOG(LFalse),SCLLOG(LFalse), - *config_control_designe_representation_context); - config_control_designe_representation_context->AddInverseAttr (a_134Irepresentations_in_context); - a_134Irepresentations_in_context->inverted_attr_id_("context_of_items"); - a_134Irepresentations_in_context->inverted_entity_id_("representation"); -// inverse entity 3 representation - reg.AddEntity (*config_control_designe_representation_context); -///////// END_ENTITY representation_context - -///////// ENTITY geometric_representation_context - - config_control_designe_geometric_representation_context->AddSupertype(config_control_designe_representation_context); - config_control_designe_representation_context->AddSubtype(config_control_designe_geometric_representation_context); - a_135coordinate_space_dimension = - new AttrDescriptor("coordinate_space_dimension",config_control_designt_dimension_count, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_geometric_representation_context); - config_control_designe_geometric_representation_context->AddExplicitAttr (a_135coordinate_space_dimension); - reg.AddEntity (*config_control_designe_geometric_representation_context); -///////// END_ENTITY geometric_representation_context - -///////// ENTITY action_status - - a_136status = - new AttrDescriptor("status",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_status); - config_control_designe_action_status->AddExplicitAttr (a_136status); - a_137assigned_action = - new AttrDescriptor("assigned_action",config_control_designe_executed_action, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_status); - config_control_designe_action_status->AddExplicitAttr (a_137assigned_action); - reg.AddEntity (*config_control_designe_action_status); -///////// END_ENTITY action_status - -///////// ENTITY application_context - - a_138application = - new AttrDescriptor("application",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_application_context); - config_control_designe_application_context->AddExplicitAttr (a_138application); - SetTypeDescriptor * t_22 = new SetTypeDescriptor; - t_22->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_22->Bound1(1); - t_22->Bound2(2147483647); - t_22->FundamentalType(SET_TYPE); - t_22->Description("SET [1:?] OF application_context_element"); - t_22->OriginatingSchema(s_config_control_design); - t_22->ReferentType(config_control_designe_application_context_element); - a_139Icontext_elements = - new Inverse_attribute("context_elements",t_22,SCLLOG(LFalse),SCLLOG(LFalse), - *config_control_designe_application_context); - config_control_designe_application_context->AddInverseAttr (a_139Icontext_elements); - a_139Icontext_elements->inverted_attr_id_("frame_of_reference"); - a_139Icontext_elements->inverted_entity_id_("application_context_element"); -// inverse entity 3 application_context_element - reg.AddEntity (*config_control_designe_application_context); -///////// END_ENTITY application_context - -///////// ENTITY change_request - - config_control_designe_change_request->AddSupertype(config_control_designe_action_request_assignment); - config_control_designe_action_request_assignment->AddSubtype(config_control_designe_change_request); - SetTypeDescriptor * t_23 = new SetTypeDescriptor; - t_23->AssignAggrCreator((AggregateCreator) create_SdaiChange_request_items); // Creator function - t_23->Bound1(1); - t_23->Bound2(2147483647); - t_23->FundamentalType(SET_TYPE); - t_23->Description("SET [1:?] OF change_request_item"); - t_23->OriginatingSchema(s_config_control_design); - t_23->ReferentType(config_control_designt_change_request_item); - a_140items = - new AttrDescriptor("items",t_23,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_change_request); - config_control_designe_change_request->AddExplicitAttr (a_140items); - reg.AddEntity (*config_control_designe_change_request); -///////// END_ENTITY change_request - -///////// ENTITY date_and_time - - a_141date_component = - new AttrDescriptor("date_component",config_control_designe_date, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_date_and_time); - config_control_designe_date_and_time->AddExplicitAttr (a_141date_component); - a_142time_component = - new AttrDescriptor("time_component",config_control_designe_local_time, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_date_and_time); - config_control_designe_date_and_time->AddExplicitAttr (a_142time_component); - reg.AddEntity (*config_control_designe_date_and_time); -///////// END_ENTITY date_and_time - -///////// ENTITY approval_date_time - - a_143date_time = - new AttrDescriptor("date_time",config_control_designt_date_time_select, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_date_time); - config_control_designe_approval_date_time->AddExplicitAttr (a_143date_time); - a_144dated_approval = - new AttrDescriptor("dated_approval",config_control_designe_approval, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_date_time); - config_control_designe_approval_date_time->AddExplicitAttr (a_144dated_approval); - reg.AddEntity (*config_control_designe_approval_date_time); -///////// END_ENTITY approval_date_time - -///////// ENTITY approval_role - - a_145role = - new AttrDescriptor("role",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_role); - config_control_designe_approval_role->AddExplicitAttr (a_145role); - reg.AddEntity (*config_control_designe_approval_role); -///////// END_ENTITY approval_role - -///////// ENTITY application_context_element - - config_control_designe_application_context_element->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (product_context,product_definition_context,product_concept_context))"); - a_146name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_application_context_element); - config_control_designe_application_context_element->AddExplicitAttr (a_146name); - a_147frame_of_reference = - new AttrDescriptor("frame_of_reference",config_control_designe_application_context, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_application_context_element); - config_control_designe_application_context_element->AddExplicitAttr (a_147frame_of_reference); - reg.AddEntity (*config_control_designe_application_context_element); -///////// END_ENTITY application_context_element - -///////// ENTITY product_context - - config_control_designe_product_context->AddSupertype(config_control_designe_application_context_element); - config_control_designe_application_context_element->AddSubtype(config_control_designe_product_context); - a_148discipline_type = - new AttrDescriptor("discipline_type",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_context); - config_control_designe_product_context->AddExplicitAttr (a_148discipline_type); - reg.AddEntity (*config_control_designe_product_context); -///////// END_ENTITY product_context - -///////// ENTITY elementary_surface - - config_control_designe_elementary_surface->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (plane,cylindrical_surface,conical_surface,spherical_surface,\n toroidal_surface))"); - config_control_designe_elementary_surface->AddSupertype(config_control_designe_surface); - config_control_designe_surface->AddSubtype(config_control_designe_elementary_surface); - a_149position = - new AttrDescriptor("position",config_control_designe_axis2_placement_3d, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_elementary_surface); - config_control_designe_elementary_surface->AddExplicitAttr (a_149position); - reg.AddEntity (*config_control_designe_elementary_surface); -///////// END_ENTITY elementary_surface - -///////// ENTITY spherical_surface - - config_control_designe_spherical_surface->AddSupertype(config_control_designe_elementary_surface); - config_control_designe_elementary_surface->AddSubtype(config_control_designe_spherical_surface); - a_150radius = - new AttrDescriptor("radius",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_spherical_surface); - config_control_designe_spherical_surface->AddExplicitAttr (a_150radius); - reg.AddEntity (*config_control_designe_spherical_surface); -///////// END_ENTITY spherical_surface - -///////// ENTITY application_protocol_definition - - a_151status = - new AttrDescriptor("status",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_application_protocol_definition); - config_control_designe_application_protocol_definition->AddExplicitAttr (a_151status); - a_152application_interpreted_model_schema_name = - new AttrDescriptor("application_interpreted_model_schema_name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_application_protocol_definition); - config_control_designe_application_protocol_definition->AddExplicitAttr (a_152application_interpreted_model_schema_name); - a_153application_protocol_year = - new AttrDescriptor("application_protocol_year",config_control_designt_year_number, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_application_protocol_definition); - config_control_designe_application_protocol_definition->AddExplicitAttr (a_153application_protocol_year); - a_154application = - new AttrDescriptor("application",config_control_designe_application_context, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_application_protocol_definition); - config_control_designe_application_protocol_definition->AddExplicitAttr (a_154application); - reg.AddEntity (*config_control_designe_application_protocol_definition); -///////// END_ENTITY application_protocol_definition - -///////// ENTITY specified_higher_usage_occurrence - - config_control_designe_specified_higher_usage_occurrence->AddSupertype(config_control_designe_assembly_component_usage); - config_control_designe_assembly_component_usage->AddSubtype(config_control_designe_specified_higher_usage_occurrence); - a_155upper_usage = - new AttrDescriptor("upper_usage",config_control_designe_assembly_component_usage, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_specified_higher_usage_occurrence); - config_control_designe_specified_higher_usage_occurrence->AddExplicitAttr (a_155upper_usage); - a_156next_usage = - new AttrDescriptor("next_usage",config_control_designe_next_assembly_usage_occurrence, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_specified_higher_usage_occurrence); - config_control_designe_specified_higher_usage_occurrence->AddExplicitAttr (a_156next_usage); - reg.AddEntity (*config_control_designe_specified_higher_usage_occurrence); -///////// END_ENTITY specified_higher_usage_occurrence - -///////// ENTITY product_definition_formation_with_specified_source - - config_control_designe_product_definition_formation_with_specified_source->AddSupertype(config_control_designe_product_definition_formation); - config_control_designe_product_definition_formation->AddSubtype(config_control_designe_product_definition_formation_with_specified_source); - a_157make_or_buy = - new AttrDescriptor("make_or_buy",config_control_designt_source, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_formation_with_specified_source); - config_control_designe_product_definition_formation_with_specified_source->AddExplicitAttr (a_157make_or_buy); - reg.AddEntity (*config_control_designe_product_definition_formation_with_specified_source); -///////// END_ENTITY product_definition_formation_with_specified_source - -///////// ENTITY action_request_solution - - a_158method = - new AttrDescriptor("method",config_control_designe_action_method, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_request_solution); - config_control_designe_action_request_solution->AddExplicitAttr (a_158method); - a_159request = - new AttrDescriptor("request",config_control_designe_versioned_action_request, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_request_solution); - config_control_designe_action_request_solution->AddExplicitAttr (a_159request); - reg.AddEntity (*config_control_designe_action_request_solution); -///////// END_ENTITY action_request_solution - -///////// ENTITY uncertainty_measure_with_unit - - config_control_designe_uncertainty_measure_with_unit->AddSupertype(config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddSubtype(config_control_designe_uncertainty_measure_with_unit); - a_160name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_uncertainty_measure_with_unit); - config_control_designe_uncertainty_measure_with_unit->AddExplicitAttr (a_160name); - a_161description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_uncertainty_measure_with_unit); - config_control_designe_uncertainty_measure_with_unit->AddExplicitAttr (a_161description); - reg.AddEntity (*config_control_designe_uncertainty_measure_with_unit); -///////// END_ENTITY uncertainty_measure_with_unit - -///////// ENTITY edge_based_wireframe_model - - config_control_designe_edge_based_wireframe_model->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_edge_based_wireframe_model); - SetTypeDescriptor * t_24 = new SetTypeDescriptor; - t_24->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_24->Bound1(1); - t_24->Bound2(2147483647); - t_24->FundamentalType(SET_TYPE); - t_24->Description("SET [1:?] OF connected_edge_set"); - t_24->OriginatingSchema(s_config_control_design); - t_24->ReferentType(config_control_designe_connected_edge_set); - a_162ebwm_boundary = - new AttrDescriptor("ebwm_boundary",t_24,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_edge_based_wireframe_model); - config_control_designe_edge_based_wireframe_model->AddExplicitAttr (a_162ebwm_boundary); - reg.AddEntity (*config_control_designe_edge_based_wireframe_model); -///////// END_ENTITY edge_based_wireframe_model - -///////// ENTITY path - - config_control_designe_path->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (edge_loop,oriented_path))"); - config_control_designe_path->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_path); - ListTypeDescriptor * t_25 = new ListTypeDescriptor; - t_25->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_25->Bound1(1); - t_25->Bound2(2147483647); - t_25->UniqueElements(SCLLOG(LTrue)); - t_25->FundamentalType(LIST_TYPE); - t_25->Description("LIST [1:?] OF UNIQUE oriented_edge"); - t_25->OriginatingSchema(s_config_control_design); - t_25->ReferentType(config_control_designe_oriented_edge); - a_163edge_list = - new AttrDescriptor("edge_list",t_25,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_path); - config_control_designe_path->AddExplicitAttr (a_163edge_list); - reg.AddEntity (*config_control_designe_path); -///////// END_ENTITY path - -///////// ENTITY connected_face_set - - config_control_designe_connected_face_set->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (closed_shell,open_shell))"); - config_control_designe_connected_face_set->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_connected_face_set); - SetTypeDescriptor * t_26 = new SetTypeDescriptor; - t_26->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_26->Bound1(1); - t_26->Bound2(2147483647); - t_26->FundamentalType(SET_TYPE); - t_26->Description("SET [1:?] OF face"); - t_26->OriginatingSchema(s_config_control_design); - t_26->ReferentType(config_control_designe_face); - a_164cfs_faces = - new AttrDescriptor("cfs_faces",t_26,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_connected_face_set); - config_control_designe_connected_face_set->AddExplicitAttr (a_164cfs_faces); - reg.AddEntity (*config_control_designe_connected_face_set); -///////// END_ENTITY connected_face_set - -///////// ENTITY open_shell - - config_control_designe_open_shell->AddSupertype(config_control_designe_connected_face_set); - config_control_designe_connected_face_set->AddSubtype(config_control_designe_open_shell); - reg.AddEntity (*config_control_designe_open_shell); -///////// END_ENTITY open_shell - -///////// ENTITY oriented_open_shell - - config_control_designe_oriented_open_shell->AddSupertype(config_control_designe_open_shell); - config_control_designe_open_shell->AddSubtype(config_control_designe_oriented_open_shell); - a_165open_shell_element = - new AttrDescriptor("open_shell_element",config_control_designe_open_shell, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_open_shell); - config_control_designe_oriented_open_shell->AddExplicitAttr (a_165open_shell_element); - a_166orientation = - new AttrDescriptor("orientation",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_open_shell); - config_control_designe_oriented_open_shell->AddExplicitAttr (a_166orientation); - SetTypeDescriptor * t_27 = new SetTypeDescriptor; - t_27->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_27->Bound1(1); - t_27->Bound2(2147483647); - t_27->FundamentalType(SET_TYPE); - t_27->Description("SET [1:?] OF face"); - t_27->OriginatingSchema(s_config_control_design); - t_27->ReferentType(config_control_designe_face); - a_167Dconnected_face_set_cfs_faces = - new Derived_attribute("connected_face_set.cfs_faces",t_27,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_oriented_open_shell); - config_control_designe_oriented_open_shell->AddExplicitAttr (a_167Dconnected_face_set_cfs_faces); - a_167Dconnected_face_set_cfs_faces->initializer_("conditional_reverse(SELF.orientation,SELF.open_shell_element.cfs_faces)"); - reg.AddEntity (*config_control_designe_oriented_open_shell); -///////// END_ENTITY oriented_open_shell - -///////// ENTITY solid_angle_unit - - config_control_designe_solid_angle_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_solid_angle_unit); - reg.AddEntity (*config_control_designe_solid_angle_unit); -///////// END_ENTITY solid_angle_unit - -///////// ENTITY coordinated_universal_time_offset - - a_168hour_offset = - new AttrDescriptor("hour_offset",config_control_designt_hour_in_day, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_coordinated_universal_time_offset); - config_control_designe_coordinated_universal_time_offset->AddExplicitAttr (a_168hour_offset); - a_169minute_offset = - new AttrDescriptor("minute_offset",config_control_designt_minute_in_hour, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_coordinated_universal_time_offset); - config_control_designe_coordinated_universal_time_offset->AddExplicitAttr (a_169minute_offset); - a_170sense = - new AttrDescriptor("sense",config_control_designt_ahead_or_behind, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_coordinated_universal_time_offset); - config_control_designe_coordinated_universal_time_offset->AddExplicitAttr (a_170sense); - reg.AddEntity (*config_control_designe_coordinated_universal_time_offset); -///////// END_ENTITY coordinated_universal_time_offset - -///////// ENTITY curve_replica - - config_control_designe_curve_replica->AddSupertype(config_control_designe_curve); - config_control_designe_curve->AddSubtype(config_control_designe_curve_replica); - a_171parent_curve = - new AttrDescriptor("parent_curve",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_curve_replica); - config_control_designe_curve_replica->AddExplicitAttr (a_171parent_curve); - a_172transformation = - new AttrDescriptor("transformation",config_control_designe_cartesian_transformation_operator, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_curve_replica); - config_control_designe_curve_replica->AddExplicitAttr (a_172transformation); - reg.AddEntity (*config_control_designe_curve_replica); -///////// END_ENTITY curve_replica - -///////// ENTITY quasi_uniform_surface - - config_control_designe_quasi_uniform_surface->AddSupertype(config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddSubtype(config_control_designe_quasi_uniform_surface); - reg.AddEntity (*config_control_designe_quasi_uniform_surface); -///////// END_ENTITY quasi_uniform_surface - -///////// ENTITY surface_curve - - config_control_designe_surface_curve->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (intersection_curve,seam_curve))"); - config_control_designe_surface_curve->AddSupertype(config_control_designe_curve); - config_control_designe_curve->AddSubtype(config_control_designe_surface_curve); - a_173curve_3d = - new AttrDescriptor("curve_3d",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_curve); - config_control_designe_surface_curve->AddExplicitAttr (a_173curve_3d); - ListTypeDescriptor * t_28 = new ListTypeDescriptor; - t_28->AssignAggrCreator((AggregateCreator) create_SdaiPcurve_or_surfaces); // Creator function - t_28->Bound1(1); - t_28->Bound2(2); - t_28->FundamentalType(LIST_TYPE); - t_28->Description("LIST [1:2] OF pcurve_or_surface"); - t_28->OriginatingSchema(s_config_control_design); - t_28->ReferentType(config_control_designt_pcurve_or_surface); - a_174associated_geometry = - new AttrDescriptor("associated_geometry",t_28,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_curve); - config_control_designe_surface_curve->AddExplicitAttr (a_174associated_geometry); - a_175master_representation = - new AttrDescriptor("master_representation",config_control_designt_preferred_surface_curve_representation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_curve); - config_control_designe_surface_curve->AddExplicitAttr (a_175master_representation); - SetTypeDescriptor * t_29 = new SetTypeDescriptor; - t_29->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_29->Bound1(1); - t_29->Bound2(2); - t_29->FundamentalType(SET_TYPE); - t_29->Description("SET [1:2] OF surface"); - t_29->OriginatingSchema(s_config_control_design); - t_29->ReferentType(config_control_designe_surface); - a_176Dbasis_surface = - new Derived_attribute("basis_surface",t_29,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_surface_curve); - config_control_designe_surface_curve->AddExplicitAttr (a_176Dbasis_surface); - a_176Dbasis_surface->initializer_("get_basis_surface(SELF)"); - reg.AddEntity (*config_control_designe_surface_curve); -///////// END_ENTITY surface_curve - -///////// ENTITY action_request_status - - a_177status = - new AttrDescriptor("status",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_request_status); - config_control_designe_action_request_status->AddExplicitAttr (a_177status); - a_178assigned_request = - new AttrDescriptor("assigned_request",config_control_designe_versioned_action_request, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_request_status); - config_control_designe_action_request_status->AddExplicitAttr (a_178assigned_request); - reg.AddEntity (*config_control_designe_action_request_status); -///////// END_ENTITY action_request_status - -///////// ENTITY composite_curve_segment - - a_179transition = - new AttrDescriptor("transition",config_control_designt_transition_code, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_composite_curve_segment); - config_control_designe_composite_curve_segment->AddExplicitAttr (a_179transition); - a_180same_sense = - new AttrDescriptor("same_sense",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_composite_curve_segment); - config_control_designe_composite_curve_segment->AddExplicitAttr (a_180same_sense); - a_181parent_curve = - new AttrDescriptor("parent_curve",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_composite_curve_segment); - config_control_designe_composite_curve_segment->AddExplicitAttr (a_181parent_curve); - BagTypeDescriptor * t_30 = new BagTypeDescriptor; - t_30->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_30->Bound1(1); - t_30->Bound2(2147483647); - t_30->FundamentalType(BAG_TYPE); - t_30->Description("BAG [1:?] OF composite_curve"); - t_30->OriginatingSchema(s_config_control_design); - t_30->ReferentType(config_control_designe_composite_curve); - a_182Iusing_curves = - new Inverse_attribute("using_curves",t_30,SCLLOG(LFalse),SCLLOG(LFalse), - *config_control_designe_composite_curve_segment); - config_control_designe_composite_curve_segment->AddInverseAttr (a_182Iusing_curves); - a_182Iusing_curves->inverted_attr_id_("segments"); - a_182Iusing_curves->inverted_entity_id_("composite_curve"); -// inverse entity 3 composite_curve - reg.AddEntity (*config_control_designe_composite_curve_segment); -///////// END_ENTITY composite_curve_segment - -///////// ENTITY reparametrised_composite_curve_segment - - config_control_designe_reparametrised_composite_curve_segment->AddSupertype(config_control_designe_composite_curve_segment); - config_control_designe_composite_curve_segment->AddSubtype(config_control_designe_reparametrised_composite_curve_segment); - a_183param_length = - new AttrDescriptor("param_length",config_control_designt_parameter_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_reparametrised_composite_curve_segment); - config_control_designe_reparametrised_composite_curve_segment->AddExplicitAttr (a_183param_length); - reg.AddEntity (*config_control_designe_reparametrised_composite_curve_segment); -///////// END_ENTITY reparametrised_composite_curve_segment - -///////// ENTITY representation_relationship - - a_184name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_relationship); - config_control_designe_representation_relationship->AddExplicitAttr (a_184name); - a_185description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_relationship); - config_control_designe_representation_relationship->AddExplicitAttr (a_185description); - a_186rep_1 = - new AttrDescriptor("rep_1",config_control_designe_representation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_relationship); - config_control_designe_representation_relationship->AddExplicitAttr (a_186rep_1); - a_187rep_2 = - new AttrDescriptor("rep_2",config_control_designe_representation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_relationship); - config_control_designe_representation_relationship->AddExplicitAttr (a_187rep_2); - reg.AddEntity (*config_control_designe_representation_relationship); -///////// END_ENTITY representation_relationship - -///////// ENTITY representation_relationship_with_transformation - - config_control_designe_representation_relationship_with_transformation->AddSupertype(config_control_designe_representation_relationship); - config_control_designe_representation_relationship->AddSubtype(config_control_designe_representation_relationship_with_transformation); - a_188transformation_operator = - new AttrDescriptor("transformation_operator",config_control_designt_transformation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_relationship_with_transformation); - config_control_designe_representation_relationship_with_transformation->AddExplicitAttr (a_188transformation_operator); - reg.AddEntity (*config_control_designe_representation_relationship_with_transformation); -///////// END_ENTITY representation_relationship_with_transformation - -///////// ENTITY person_and_organization_role - - a_189name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person_and_organization_role); - config_control_designe_person_and_organization_role->AddExplicitAttr (a_189name); - reg.AddEntity (*config_control_designe_person_and_organization_role); -///////// END_ENTITY person_and_organization_role - -///////// ENTITY quasi_uniform_curve - - config_control_designe_quasi_uniform_curve->AddSupertype(config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddSubtype(config_control_designe_quasi_uniform_curve); - reg.AddEntity (*config_control_designe_quasi_uniform_curve); -///////// END_ENTITY quasi_uniform_curve - -///////// ENTITY swept_surface - - config_control_designe_swept_surface->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (surface_of_linear_extrusion,surface_of_revolution))"); - config_control_designe_swept_surface->AddSupertype(config_control_designe_surface); - config_control_designe_surface->AddSubtype(config_control_designe_swept_surface); - a_190swept_curve = - new AttrDescriptor("swept_curve",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_swept_surface); - config_control_designe_swept_surface->AddExplicitAttr (a_190swept_curve); - reg.AddEntity (*config_control_designe_swept_surface); -///////// END_ENTITY swept_surface - -///////// ENTITY property_definition - - a_191name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_property_definition); - config_control_designe_property_definition->AddExplicitAttr (a_191name); - a_192description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_property_definition); - config_control_designe_property_definition->AddExplicitAttr (a_192description); - a_193definition = - new AttrDescriptor("definition",config_control_designt_characterized_definition, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_property_definition); - config_control_designe_property_definition->AddExplicitAttr (a_193definition); - reg.AddEntity (*config_control_designe_property_definition); -///////// END_ENTITY property_definition - -///////// ENTITY global_uncertainty_assigned_context - - config_control_designe_global_uncertainty_assigned_context->AddSupertype(config_control_designe_representation_context); - config_control_designe_representation_context->AddSubtype(config_control_designe_global_uncertainty_assigned_context); - SetTypeDescriptor * t_31 = new SetTypeDescriptor; - t_31->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_31->Bound1(1); - t_31->Bound2(2147483647); - t_31->FundamentalType(SET_TYPE); - t_31->Description("SET [1:?] OF uncertainty_measure_with_unit"); - t_31->OriginatingSchema(s_config_control_design); - t_31->ReferentType(config_control_designe_uncertainty_measure_with_unit); - a_194uncertainty = - new AttrDescriptor("uncertainty",t_31,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_global_uncertainty_assigned_context); - config_control_designe_global_uncertainty_assigned_context->AddExplicitAttr (a_194uncertainty); - reg.AddEntity (*config_control_designe_global_uncertainty_assigned_context); -///////// END_ENTITY global_uncertainty_assigned_context - -///////// ENTITY organization_relationship - - a_195name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organization_relationship); - config_control_designe_organization_relationship->AddExplicitAttr (a_195name); - a_196description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organization_relationship); - config_control_designe_organization_relationship->AddExplicitAttr (a_196description); - a_197relating_organization = - new AttrDescriptor("relating_organization",config_control_designe_organization, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organization_relationship); - config_control_designe_organization_relationship->AddExplicitAttr (a_197relating_organization); - a_198related_organization = - new AttrDescriptor("related_organization",config_control_designe_organization, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organization_relationship); - config_control_designe_organization_relationship->AddExplicitAttr (a_198related_organization); - reg.AddEntity (*config_control_designe_organization_relationship); -///////// END_ENTITY organization_relationship - -///////// ENTITY parabola - - config_control_designe_parabola->AddSupertype(config_control_designe_conic); - config_control_designe_conic->AddSubtype(config_control_designe_parabola); - a_199focal_dist = - new AttrDescriptor("focal_dist",config_control_designt_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_parabola); - config_control_designe_parabola->AddExplicitAttr (a_199focal_dist); - reg.AddEntity (*config_control_designe_parabola); -///////// END_ENTITY parabola - -///////// ENTITY rectangular_composite_surface - - config_control_designe_rectangular_composite_surface->AddSupertype(config_control_designe_bounded_surface); - config_control_designe_bounded_surface->AddSubtype(config_control_designe_rectangular_composite_surface); - ListTypeDescriptor * t_32 = new ListTypeDescriptor; - t_32->AssignAggrCreator((AggregateCreator) create_GenericAggregate); // Creator function - t_32->Bound1(1); - t_32->Bound2(2147483647); - t_32->FundamentalType(LIST_TYPE); - t_32->Description("LIST [1:?] OF LIST [1:?] OF surface_patch"); - t_32->OriginatingSchema(s_config_control_design); - ListTypeDescriptor * t_33 = new ListTypeDescriptor; - t_33->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_33->Bound1(1); - t_33->Bound2(2147483647); - t_33->FundamentalType(LIST_TYPE); - t_33->Description("LIST [1:?] OF surface_patch"); - t_33->OriginatingSchema(s_config_control_design); - t_33->ReferentType(config_control_designe_surface_patch); - t_32->ReferentType(t_33); - a_200segments = - new AttrDescriptor("segments",t_32,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rectangular_composite_surface); - config_control_designe_rectangular_composite_surface->AddExplicitAttr (a_200segments); - a_201Dn_u = - new Derived_attribute("n_u",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_rectangular_composite_surface); - config_control_designe_rectangular_composite_surface->AddExplicitAttr (a_201Dn_u); - a_201Dn_u->initializer_("SIZEOF(segments)"); - a_202Dn_v = - new Derived_attribute("n_v",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_rectangular_composite_surface); - config_control_designe_rectangular_composite_surface->AddExplicitAttr (a_202Dn_v); - a_202Dn_v->initializer_("SIZEOF(segments[1])"); - reg.AddEntity (*config_control_designe_rectangular_composite_surface); -///////// END_ENTITY rectangular_composite_surface - -///////// ENTITY lot_effectivity - - config_control_designe_lot_effectivity->AddSupertype(config_control_designe_effectivity); - config_control_designe_effectivity->AddSubtype(config_control_designe_lot_effectivity); - a_203effectivity_lot_id = - new AttrDescriptor("effectivity_lot_id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_lot_effectivity); - config_control_designe_lot_effectivity->AddExplicitAttr (a_203effectivity_lot_id); - a_204effectivity_lot_size = - new AttrDescriptor("effectivity_lot_size",config_control_designe_measure_with_unit, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_lot_effectivity); - config_control_designe_lot_effectivity->AddExplicitAttr (a_204effectivity_lot_size); - reg.AddEntity (*config_control_designe_lot_effectivity); -///////// END_ENTITY lot_effectivity - -///////// ENTITY surface_of_linear_extrusion - - config_control_designe_surface_of_linear_extrusion->AddSupertype(config_control_designe_swept_surface); - config_control_designe_swept_surface->AddSubtype(config_control_designe_surface_of_linear_extrusion); - a_205extrusion_axis = - new AttrDescriptor("extrusion_axis",config_control_designe_vector, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_of_linear_extrusion); - config_control_designe_surface_of_linear_extrusion->AddExplicitAttr (a_205extrusion_axis); - reg.AddEntity (*config_control_designe_surface_of_linear_extrusion); -///////// END_ENTITY surface_of_linear_extrusion - -///////// ENTITY shell_based_surface_model - - config_control_designe_shell_based_surface_model->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_shell_based_surface_model); - SetTypeDescriptor * t_34 = new SetTypeDescriptor; - t_34->AssignAggrCreator((AggregateCreator) create_SdaiShells); // Creator function - t_34->Bound1(1); - t_34->Bound2(2147483647); - t_34->FundamentalType(SET_TYPE); - t_34->Description("SET [1:?] OF shell"); - t_34->OriginatingSchema(s_config_control_design); - t_34->ReferentType(config_control_designt_shell); - a_206sbsm_boundary = - new AttrDescriptor("sbsm_boundary",t_34,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shell_based_surface_model); - config_control_designe_shell_based_surface_model->AddExplicitAttr (a_206sbsm_boundary); - reg.AddEntity (*config_control_designe_shell_based_surface_model); -///////// END_ENTITY shell_based_surface_model - -///////// ENTITY uniform_curve - - config_control_designe_uniform_curve->AddSupertype(config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddSubtype(config_control_designe_uniform_curve); - reg.AddEntity (*config_control_designe_uniform_curve); -///////// END_ENTITY uniform_curve - -///////// ENTITY bezier_curve - - config_control_designe_bezier_curve->AddSupertype(config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddSubtype(config_control_designe_bezier_curve); - reg.AddEntity (*config_control_designe_bezier_curve); -///////// END_ENTITY bezier_curve - -///////// ENTITY loop - - config_control_designe_loop->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (vertex_loop,edge_loop,poly_loop))"); - config_control_designe_loop->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_loop); - reg.AddEntity (*config_control_designe_loop); -///////// END_ENTITY loop - -///////// ENTITY edge_loop - - config_control_designe_edge_loop->AddSupertype(config_control_designe_loop); - config_control_designe_loop->AddSubtype(config_control_designe_edge_loop); - config_control_designe_edge_loop->AddSupertype(config_control_designe_path); - config_control_designe_path->AddSubtype(config_control_designe_edge_loop); - a_207Dne = - new Derived_attribute("ne",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_edge_loop); - config_control_designe_edge_loop->AddExplicitAttr (a_207Dne); - a_207Dne->initializer_("SIZEOF(SELF\\path.edge_list)"); - reg.AddEntity (*config_control_designe_edge_loop); -///////// END_ENTITY edge_loop - -///////// ENTITY date - - config_control_designe_date->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (calendar_date,ordinal_date,week_of_year_and_day_date))"); - a_208year_component = - new AttrDescriptor("year_component",config_control_designt_year_number, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_date); - config_control_designe_date->AddExplicitAttr (a_208year_component); - reg.AddEntity (*config_control_designe_date); -///////// END_ENTITY date - -///////// ENTITY calendar_date - - config_control_designe_calendar_date->AddSupertype(config_control_designe_date); - config_control_designe_date->AddSubtype(config_control_designe_calendar_date); - a_209day_component = - new AttrDescriptor("day_component",config_control_designt_day_in_month_number, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_calendar_date); - config_control_designe_calendar_date->AddExplicitAttr (a_209day_component); - a_210month_component = - new AttrDescriptor("month_component",config_control_designt_month_in_year_number, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_calendar_date); - config_control_designe_calendar_date->AddExplicitAttr (a_210month_component); - reg.AddEntity (*config_control_designe_calendar_date); -///////// END_ENTITY calendar_date - -///////// ENTITY toroidal_surface - - config_control_designe_toroidal_surface->AddSupertype(config_control_designe_elementary_surface); - config_control_designe_elementary_surface->AddSubtype(config_control_designe_toroidal_surface); - a_211major_radius = - new AttrDescriptor("major_radius",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_toroidal_surface); - config_control_designe_toroidal_surface->AddExplicitAttr (a_211major_radius); - a_212minor_radius = - new AttrDescriptor("minor_radius",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_toroidal_surface); - config_control_designe_toroidal_surface->AddExplicitAttr (a_212minor_radius); - reg.AddEntity (*config_control_designe_toroidal_surface); -///////// END_ENTITY toroidal_surface - -///////// ENTITY promissory_usage_occurrence - - config_control_designe_promissory_usage_occurrence->AddSupertype(config_control_designe_assembly_component_usage); - config_control_designe_assembly_component_usage->AddSubtype(config_control_designe_promissory_usage_occurrence); - reg.AddEntity (*config_control_designe_promissory_usage_occurrence); -///////// END_ENTITY promissory_usage_occurrence - -///////// ENTITY approval_assignment - - config_control_designe_approval_assignment->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_213assigned_approval = - new AttrDescriptor("assigned_approval",config_control_designe_approval, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_assignment); - config_control_designe_approval_assignment->AddExplicitAttr (a_213assigned_approval); - reg.AddEntity (*config_control_designe_approval_assignment); -///////// END_ENTITY approval_assignment - -///////// ENTITY configuration_item - - a_214id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_configuration_item); - config_control_designe_configuration_item->AddExplicitAttr (a_214id); - a_215name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_configuration_item); - config_control_designe_configuration_item->AddExplicitAttr (a_215name); - a_216description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_configuration_item); - config_control_designe_configuration_item->AddExplicitAttr (a_216description); - a_217item_concept = - new AttrDescriptor("item_concept",config_control_designe_product_concept, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_configuration_item); - config_control_designe_configuration_item->AddExplicitAttr (a_217item_concept); - a_218purpose = - new AttrDescriptor("purpose",config_control_designt_label, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_configuration_item); - config_control_designe_configuration_item->AddExplicitAttr (a_218purpose); - reg.AddEntity (*config_control_designe_configuration_item); -///////// END_ENTITY configuration_item - -///////// ENTITY contract_assignment - - config_control_designe_contract_assignment->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_219assigned_contract = - new AttrDescriptor("assigned_contract",config_control_designe_contract, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_contract_assignment); - config_control_designe_contract_assignment->AddExplicitAttr (a_219assigned_contract); - reg.AddEntity (*config_control_designe_contract_assignment); -///////// END_ENTITY contract_assignment - -///////// ENTITY vector - - config_control_designe_vector->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_vector); - a_220orientation = - new AttrDescriptor("orientation",config_control_designe_direction, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_vector); - config_control_designe_vector->AddExplicitAttr (a_220orientation); - a_221magnitude = - new AttrDescriptor("magnitude",config_control_designt_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_vector); - config_control_designe_vector->AddExplicitAttr (a_221magnitude); - reg.AddEntity (*config_control_designe_vector); -///////// END_ENTITY vector - -///////// ENTITY intersection_curve - - config_control_designe_intersection_curve->AddSupertype(config_control_designe_surface_curve); - config_control_designe_surface_curve->AddSubtype(config_control_designe_intersection_curve); - reg.AddEntity (*config_control_designe_intersection_curve); -///////// END_ENTITY intersection_curve - -///////// ENTITY trimmed_curve - - config_control_designe_trimmed_curve->AddSupertype(config_control_designe_bounded_curve); - config_control_designe_bounded_curve->AddSubtype(config_control_designe_trimmed_curve); - a_222basis_curve = - new AttrDescriptor("basis_curve",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_trimmed_curve); - config_control_designe_trimmed_curve->AddExplicitAttr (a_222basis_curve); - SetTypeDescriptor * t_35 = new SetTypeDescriptor; - t_35->AssignAggrCreator((AggregateCreator) create_SdaiTrimming_selects); // Creator function - t_35->Bound1(1); - t_35->Bound2(2); - t_35->FundamentalType(SET_TYPE); - t_35->Description("SET [1:2] OF trimming_select"); - t_35->OriginatingSchema(s_config_control_design); - t_35->ReferentType(config_control_designt_trimming_select); - a_223trim_1 = - new AttrDescriptor("trim_1",t_35,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_trimmed_curve); - config_control_designe_trimmed_curve->AddExplicitAttr (a_223trim_1); - SetTypeDescriptor * t_36 = new SetTypeDescriptor; - t_36->AssignAggrCreator((AggregateCreator) create_SdaiTrimming_selects); // Creator function - t_36->Bound1(1); - t_36->Bound2(2); - t_36->FundamentalType(SET_TYPE); - t_36->Description("SET [1:2] OF trimming_select"); - t_36->OriginatingSchema(s_config_control_design); - t_36->ReferentType(config_control_designt_trimming_select); - a_224trim_2 = - new AttrDescriptor("trim_2",t_36,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_trimmed_curve); - config_control_designe_trimmed_curve->AddExplicitAttr (a_224trim_2); - a_225sense_agreement = - new AttrDescriptor("sense_agreement",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_trimmed_curve); - config_control_designe_trimmed_curve->AddExplicitAttr (a_225sense_agreement); - a_226master_representation = - new AttrDescriptor("master_representation",config_control_designt_trimming_preference, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_trimmed_curve); - config_control_designe_trimmed_curve->AddExplicitAttr (a_226master_representation); - reg.AddEntity (*config_control_designe_trimmed_curve); -///////// END_ENTITY trimmed_curve - -///////// ENTITY product_definition_context - - config_control_designe_product_definition_context->AddSupertype(config_control_designe_application_context_element); - config_control_designe_application_context_element->AddSubtype(config_control_designe_product_definition_context); - a_227life_cycle_stage = - new AttrDescriptor("life_cycle_stage",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_context); - config_control_designe_product_definition_context->AddExplicitAttr (a_227life_cycle_stage); - reg.AddEntity (*config_control_designe_product_definition_context); -///////// END_ENTITY product_definition_context - -///////// ENTITY item_defined_transformation - - a_228name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_item_defined_transformation); - config_control_designe_item_defined_transformation->AddExplicitAttr (a_228name); - a_229description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_item_defined_transformation); - config_control_designe_item_defined_transformation->AddExplicitAttr (a_229description); - a_230transform_item_1 = - new AttrDescriptor("transform_item_1",config_control_designe_representation_item, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_item_defined_transformation); - config_control_designe_item_defined_transformation->AddExplicitAttr (a_230transform_item_1); - a_231transform_item_2 = - new AttrDescriptor("transform_item_2",config_control_designe_representation_item, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_item_defined_transformation); - config_control_designe_item_defined_transformation->AddExplicitAttr (a_231transform_item_2); - reg.AddEntity (*config_control_designe_item_defined_transformation); -///////// END_ENTITY item_defined_transformation - -///////// ENTITY action_method - - a_232name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_method); - config_control_designe_action_method->AddExplicitAttr (a_232name); - a_233description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_method); - config_control_designe_action_method->AddExplicitAttr (a_233description); - a_234consequence = - new AttrDescriptor("consequence",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_method); - config_control_designe_action_method->AddExplicitAttr (a_234consequence); - a_235purpose = - new AttrDescriptor("purpose",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_method); - config_control_designe_action_method->AddExplicitAttr (a_235purpose); - reg.AddEntity (*config_control_designe_action_method); -///////// END_ENTITY action_method - -///////// ENTITY product_category_relationship - - a_236name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_category_relationship); - config_control_designe_product_category_relationship->AddExplicitAttr (a_236name); - a_237description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_category_relationship); - config_control_designe_product_category_relationship->AddExplicitAttr (a_237description); - a_238category = - new AttrDescriptor("category",config_control_designe_product_category, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_category_relationship); - config_control_designe_product_category_relationship->AddExplicitAttr (a_238category); - a_239sub_category = - new AttrDescriptor("sub_category",config_control_designe_product_category, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_category_relationship); - config_control_designe_product_category_relationship->AddExplicitAttr (a_239sub_category); - reg.AddEntity (*config_control_designe_product_category_relationship); -///////// END_ENTITY product_category_relationship - -///////// ENTITY plane_angle_measure_with_unit - - config_control_designe_plane_angle_measure_with_unit->AddSupertype(config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddSubtype(config_control_designe_plane_angle_measure_with_unit); - reg.AddEntity (*config_control_designe_plane_angle_measure_with_unit); -///////// END_ENTITY plane_angle_measure_with_unit - -///////// ENTITY vertex - - config_control_designe_vertex->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_vertex); - reg.AddEntity (*config_control_designe_vertex); -///////// END_ENTITY vertex - -///////// ENTITY representation_map - - a_240mapping_origin = - new AttrDescriptor("mapping_origin",config_control_designe_representation_item, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_map); - config_control_designe_representation_map->AddExplicitAttr (a_240mapping_origin); - a_241mapped_representation = - new AttrDescriptor("mapped_representation",config_control_designe_representation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_representation_map); - config_control_designe_representation_map->AddExplicitAttr (a_241mapped_representation); - SetTypeDescriptor * t_37 = new SetTypeDescriptor; - t_37->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_37->Bound1(1); - t_37->Bound2(2147483647); - t_37->FundamentalType(SET_TYPE); - t_37->Description("SET [1:?] OF mapped_item"); - t_37->OriginatingSchema(s_config_control_design); - t_37->ReferentType(config_control_designe_mapped_item); - a_242Imap_usage = - new Inverse_attribute("map_usage",t_37,SCLLOG(LFalse),SCLLOG(LFalse), - *config_control_designe_representation_map); - config_control_designe_representation_map->AddInverseAttr (a_242Imap_usage); - a_242Imap_usage->inverted_attr_id_("mapping_source"); - a_242Imap_usage->inverted_entity_id_("mapped_item"); -// inverse entity 3 mapped_item - reg.AddEntity (*config_control_designe_representation_map); -///////// END_ENTITY representation_map - -///////// ENTITY product_definition_effectivity - - config_control_designe_product_definition_effectivity->AddSupertype(config_control_designe_effectivity); - config_control_designe_effectivity->AddSubtype(config_control_designe_product_definition_effectivity); - a_243usage = - new AttrDescriptor("usage",config_control_designe_product_definition_relationship, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_product_definition_effectivity); - config_control_designe_product_definition_effectivity->AddExplicitAttr (a_243usage); - reg.AddEntity (*config_control_designe_product_definition_effectivity); -///////// END_ENTITY product_definition_effectivity - -///////// ENTITY configuration_effectivity - - config_control_designe_configuration_effectivity->AddSupertype(config_control_designe_product_definition_effectivity); - config_control_designe_product_definition_effectivity->AddSubtype(config_control_designe_configuration_effectivity); - a_244configuration = - new AttrDescriptor("configuration",config_control_designe_configuration_design, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_configuration_effectivity); - config_control_designe_configuration_effectivity->AddExplicitAttr (a_244configuration); - reg.AddEntity (*config_control_designe_configuration_effectivity); -///////// END_ENTITY configuration_effectivity - -///////// ENTITY ellipse - - config_control_designe_ellipse->AddSupertype(config_control_designe_conic); - config_control_designe_conic->AddSubtype(config_control_designe_ellipse); - a_245semi_axis_1 = - new AttrDescriptor("semi_axis_1",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_ellipse); - config_control_designe_ellipse->AddExplicitAttr (a_245semi_axis_1); - a_246semi_axis_2 = - new AttrDescriptor("semi_axis_2",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_ellipse); - config_control_designe_ellipse->AddExplicitAttr (a_246semi_axis_2); - reg.AddEntity (*config_control_designe_ellipse); -///////// END_ENTITY ellipse - -///////// ENTITY context_dependent_unit - - config_control_designe_context_dependent_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_context_dependent_unit); - a_247name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_context_dependent_unit); - config_control_designe_context_dependent_unit->AddExplicitAttr (a_247name); - reg.AddEntity (*config_control_designe_context_dependent_unit); -///////// END_ENTITY context_dependent_unit - -///////// ENTITY alternate_product_relationship - - a_248name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_alternate_product_relationship); - config_control_designe_alternate_product_relationship->AddExplicitAttr (a_248name); - a_249description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_alternate_product_relationship); - config_control_designe_alternate_product_relationship->AddExplicitAttr (a_249description); - a_250alternate = - new AttrDescriptor("alternate",config_control_designe_product, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_alternate_product_relationship); - config_control_designe_alternate_product_relationship->AddExplicitAttr (a_250alternate); - a_251base = - new AttrDescriptor("base",config_control_designe_product, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_alternate_product_relationship); - config_control_designe_alternate_product_relationship->AddExplicitAttr (a_251base); - a_252basis = - new AttrDescriptor("basis",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_alternate_product_relationship); - config_control_designe_alternate_product_relationship->AddExplicitAttr (a_252basis); - reg.AddEntity (*config_control_designe_alternate_product_relationship); -///////// END_ENTITY alternate_product_relationship - -///////// ENTITY document_type - - a_253product_data_type = - new AttrDescriptor("product_data_type",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_type); - config_control_designe_document_type->AddExplicitAttr (a_253product_data_type); - reg.AddEntity (*config_control_designe_document_type); -///////// END_ENTITY document_type - -///////// ENTITY document_reference - - config_control_designe_document_reference->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_254assigned_document = - new AttrDescriptor("assigned_document",config_control_designe_document, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_reference); - config_control_designe_document_reference->AddExplicitAttr (a_254assigned_document); - a_255source = - new AttrDescriptor("source",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_reference); - config_control_designe_document_reference->AddExplicitAttr (a_255source); - reg.AddEntity (*config_control_designe_document_reference); -///////// END_ENTITY document_reference - -///////// ENTITY mechanical_context - - config_control_designe_mechanical_context->AddSupertype(config_control_designe_product_context); - config_control_designe_product_context->AddSubtype(config_control_designe_mechanical_context); - reg.AddEntity (*config_control_designe_mechanical_context); -///////// END_ENTITY mechanical_context - -///////// ENTITY shell_based_wireframe_model - - config_control_designe_shell_based_wireframe_model->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_shell_based_wireframe_model); - SetTypeDescriptor * t_38 = new SetTypeDescriptor; - t_38->AssignAggrCreator((AggregateCreator) create_SdaiShells); // Creator function - t_38->Bound1(1); - t_38->Bound2(2147483647); - t_38->FundamentalType(SET_TYPE); - t_38->Description("SET [1:?] OF shell"); - t_38->OriginatingSchema(s_config_control_design); - t_38->ReferentType(config_control_designt_shell); - a_256sbwm_boundary = - new AttrDescriptor("sbwm_boundary",t_38,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shell_based_wireframe_model); - config_control_designe_shell_based_wireframe_model->AddExplicitAttr (a_256sbwm_boundary); - reg.AddEntity (*config_control_designe_shell_based_wireframe_model); -///////// END_ENTITY shell_based_wireframe_model - -///////// ENTITY contract - - a_257name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_contract); - config_control_designe_contract->AddExplicitAttr (a_257name); - a_258purpose = - new AttrDescriptor("purpose",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_contract); - config_control_designe_contract->AddExplicitAttr (a_258purpose); - a_259kind = - new AttrDescriptor("kind",config_control_designe_contract_type, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_contract); - config_control_designe_contract->AddExplicitAttr (a_259kind); - reg.AddEntity (*config_control_designe_contract); -///////// END_ENTITY contract - -///////// ENTITY dimensional_exponents - - a_260length_exponent = - new AttrDescriptor("length_exponent",t_sdaiREAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dimensional_exponents); - config_control_designe_dimensional_exponents->AddExplicitAttr (a_260length_exponent); - a_261mass_exponent = - new AttrDescriptor("mass_exponent",t_sdaiREAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dimensional_exponents); - config_control_designe_dimensional_exponents->AddExplicitAttr (a_261mass_exponent); - a_262time_exponent = - new AttrDescriptor("time_exponent",t_sdaiREAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dimensional_exponents); - config_control_designe_dimensional_exponents->AddExplicitAttr (a_262time_exponent); - a_263electric_current_exponent = - new AttrDescriptor("electric_current_exponent",t_sdaiREAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dimensional_exponents); - config_control_designe_dimensional_exponents->AddExplicitAttr (a_263electric_current_exponent); - a_264thermodynamic_temperature_exponent = - new AttrDescriptor("thermodynamic_temperature_exponent",t_sdaiREAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dimensional_exponents); - config_control_designe_dimensional_exponents->AddExplicitAttr (a_264thermodynamic_temperature_exponent); - a_265amount_of_substance_exponent = - new AttrDescriptor("amount_of_substance_exponent",t_sdaiREAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dimensional_exponents); - config_control_designe_dimensional_exponents->AddExplicitAttr (a_265amount_of_substance_exponent); - a_266luminous_intensity_exponent = - new AttrDescriptor("luminous_intensity_exponent",t_sdaiREAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_dimensional_exponents); - config_control_designe_dimensional_exponents->AddExplicitAttr (a_266luminous_intensity_exponent); - reg.AddEntity (*config_control_designe_dimensional_exponents); -///////// END_ENTITY dimensional_exponents - -///////// ENTITY start_request - - config_control_designe_start_request->AddSupertype(config_control_designe_action_request_assignment); - config_control_designe_action_request_assignment->AddSubtype(config_control_designe_start_request); - SetTypeDescriptor * t_39 = new SetTypeDescriptor; - t_39->AssignAggrCreator((AggregateCreator) create_SdaiStart_request_items); // Creator function - t_39->Bound1(1); - t_39->Bound2(2147483647); - t_39->FundamentalType(SET_TYPE); - t_39->Description("SET [1:?] OF start_request_item"); - t_39->OriginatingSchema(s_config_control_design); - t_39->ReferentType(config_control_designt_start_request_item); - a_267items = - new AttrDescriptor("items",t_39,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_start_request); - config_control_designe_start_request->AddExplicitAttr (a_267items); - reg.AddEntity (*config_control_designe_start_request); -///////// END_ENTITY start_request - -///////// ENTITY cc_design_specification_reference - - config_control_designe_cc_design_specification_reference->AddSupertype(config_control_designe_document_reference); - config_control_designe_document_reference->AddSubtype(config_control_designe_cc_design_specification_reference); - SetTypeDescriptor * t_40 = new SetTypeDescriptor; - t_40->AssignAggrCreator((AggregateCreator) create_SdaiSpecified_items); // Creator function - t_40->Bound1(1); - t_40->Bound2(2147483647); - t_40->FundamentalType(SET_TYPE); - t_40->Description("SET [1:?] OF specified_item"); - t_40->OriginatingSchema(s_config_control_design); - t_40->ReferentType(config_control_designt_specified_item); - a_268items = - new AttrDescriptor("items",t_40,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cc_design_specification_reference); - config_control_designe_cc_design_specification_reference->AddExplicitAttr (a_268items); - reg.AddEntity (*config_control_designe_cc_design_specification_reference); -///////// END_ENTITY cc_design_specification_reference - -///////// ENTITY supplied_part_relationship - - config_control_designe_supplied_part_relationship->AddSupertype(config_control_designe_product_definition_relationship); - config_control_designe_product_definition_relationship->AddSubtype(config_control_designe_supplied_part_relationship); - reg.AddEntity (*config_control_designe_supplied_part_relationship); -///////// END_ENTITY supplied_part_relationship - -///////// ENTITY context_dependent_shape_representation - - a_269representation_relation = - new AttrDescriptor("representation_relation",config_control_designe_shape_representation_relationship, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_context_dependent_shape_representation); - config_control_designe_context_dependent_shape_representation->AddExplicitAttr (a_269representation_relation); - a_270represented_product_relation = - new AttrDescriptor("represented_product_relation",config_control_designe_product_definition_shape, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_context_dependent_shape_representation); - config_control_designe_context_dependent_shape_representation->AddExplicitAttr (a_270represented_product_relation); - reg.AddEntity (*config_control_designe_context_dependent_shape_representation); -///////// END_ENTITY context_dependent_shape_representation - -///////// ENTITY ordinal_date - - config_control_designe_ordinal_date->AddSupertype(config_control_designe_date); - config_control_designe_date->AddSubtype(config_control_designe_ordinal_date); - a_271day_component = - new AttrDescriptor("day_component",config_control_designt_day_in_year_number, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_ordinal_date); - config_control_designe_ordinal_date->AddExplicitAttr (a_271day_component); - reg.AddEntity (*config_control_designe_ordinal_date); -///////// END_ENTITY ordinal_date - -///////// ENTITY face_outer_bound - - config_control_designe_face_outer_bound->AddSupertype(config_control_designe_face_bound); - config_control_designe_face_bound->AddSubtype(config_control_designe_face_outer_bound); - reg.AddEntity (*config_control_designe_face_outer_bound); -///////// END_ENTITY face_outer_bound - -///////// ENTITY mass_measure_with_unit - - config_control_designe_mass_measure_with_unit->AddSupertype(config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddSubtype(config_control_designe_mass_measure_with_unit); - reg.AddEntity (*config_control_designe_mass_measure_with_unit); -///////// END_ENTITY mass_measure_with_unit - -///////// ENTITY brep_with_voids - - config_control_designe_brep_with_voids->AddSupertype(config_control_designe_manifold_solid_brep); - config_control_designe_manifold_solid_brep->AddSubtype(config_control_designe_brep_with_voids); - SetTypeDescriptor * t_41 = new SetTypeDescriptor; - t_41->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_41->Bound1(1); - t_41->Bound2(2147483647); - t_41->FundamentalType(SET_TYPE); - t_41->Description("SET [1:?] OF oriented_closed_shell"); - t_41->OriginatingSchema(s_config_control_design); - t_41->ReferentType(config_control_designe_oriented_closed_shell); - a_272voids = - new AttrDescriptor("voids",t_41,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_brep_with_voids); - config_control_designe_brep_with_voids->AddExplicitAttr (a_272voids); - reg.AddEntity (*config_control_designe_brep_with_voids); -///////// END_ENTITY brep_with_voids - -///////// ENTITY week_of_year_and_day_date - - config_control_designe_week_of_year_and_day_date->AddSupertype(config_control_designe_date); - config_control_designe_date->AddSubtype(config_control_designe_week_of_year_and_day_date); - a_273week_component = - new AttrDescriptor("week_component",config_control_designt_week_in_year_number, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_week_of_year_and_day_date); - config_control_designe_week_of_year_and_day_date->AddExplicitAttr (a_273week_component); - a_274day_component = - new AttrDescriptor("day_component",config_control_designt_day_in_week_number, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_week_of_year_and_day_date); - config_control_designe_week_of_year_and_day_date->AddExplicitAttr (a_274day_component); - reg.AddEntity (*config_control_designe_week_of_year_and_day_date); -///////// END_ENTITY week_of_year_and_day_date - -///////// ENTITY point_on_curve - - config_control_designe_point_on_curve->AddSupertype(config_control_designe_point); - config_control_designe_point->AddSubtype(config_control_designe_point_on_curve); - a_275basis_curve = - new AttrDescriptor("basis_curve",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_point_on_curve); - config_control_designe_point_on_curve->AddExplicitAttr (a_275basis_curve); - a_276point_parameter = - new AttrDescriptor("point_parameter",config_control_designt_parameter_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_point_on_curve); - config_control_designe_point_on_curve->AddExplicitAttr (a_276point_parameter); - reg.AddEntity (*config_control_designe_point_on_curve); -///////// END_ENTITY point_on_curve - -///////// ENTITY shell_based_wireframe_shape_representation - - config_control_designe_shell_based_wireframe_shape_representation->AddSupertype(config_control_designe_shape_representation); - config_control_designe_shape_representation->AddSubtype(config_control_designe_shell_based_wireframe_shape_representation); - reg.AddEntity (*config_control_designe_shell_based_wireframe_shape_representation); -///////// END_ENTITY shell_based_wireframe_shape_representation - -///////// ENTITY face - - config_control_designe_face->AddSupertype_Stmt("SUPERTYPE OF (ONEOF (face_surface,oriented_face))"); - config_control_designe_face->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_face); - SetTypeDescriptor * t_42 = new SetTypeDescriptor; - t_42->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_42->Bound1(1); - t_42->Bound2(2147483647); - t_42->FundamentalType(SET_TYPE); - t_42->Description("SET [1:?] OF face_bound"); - t_42->OriginatingSchema(s_config_control_design); - t_42->ReferentType(config_control_designe_face_bound); - a_277bounds = - new AttrDescriptor("bounds",t_42,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_face); - config_control_designe_face->AddExplicitAttr (a_277bounds); - reg.AddEntity (*config_control_designe_face); -///////// END_ENTITY face - -///////// ENTITY face_surface - - config_control_designe_face_surface->AddSupertype(config_control_designe_face); - config_control_designe_face->AddSubtype(config_control_designe_face_surface); - config_control_designe_face_surface->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_face_surface); - a_278face_geometry = - new AttrDescriptor("face_geometry",config_control_designe_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_face_surface); - config_control_designe_face_surface->AddExplicitAttr (a_278face_geometry); - a_279same_sense = - new AttrDescriptor("same_sense",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_face_surface); - config_control_designe_face_surface->AddExplicitAttr (a_279same_sense); - reg.AddEntity (*config_control_designe_face_surface); -///////// END_ENTITY face_surface - -///////// ENTITY oriented_face - - config_control_designe_oriented_face->AddSupertype(config_control_designe_face); - config_control_designe_face->AddSubtype(config_control_designe_oriented_face); - a_280face_element = - new AttrDescriptor("face_element",config_control_designe_face, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_face); - config_control_designe_oriented_face->AddExplicitAttr (a_280face_element); - a_281orientation = - new AttrDescriptor("orientation",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_face); - config_control_designe_oriented_face->AddExplicitAttr (a_281orientation); - SetTypeDescriptor * t_43 = new SetTypeDescriptor; - t_43->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_43->Bound1(1); - t_43->Bound2(2147483647); - t_43->FundamentalType(SET_TYPE); - t_43->Description("SET [1:?] OF face_bound"); - t_43->OriginatingSchema(s_config_control_design); - t_43->ReferentType(config_control_designe_face_bound); - a_282Dface_bounds = - new Derived_attribute("face.bounds",t_43,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_oriented_face); - config_control_designe_oriented_face->AddExplicitAttr (a_282Dface_bounds); - a_282Dface_bounds->initializer_("conditional_reverse(SELF.orientation,SELF.face_element.bounds)"); - reg.AddEntity (*config_control_designe_oriented_face); -///////// END_ENTITY oriented_face - -///////// ENTITY surface_of_revolution - - config_control_designe_surface_of_revolution->AddSupertype(config_control_designe_swept_surface); - config_control_designe_swept_surface->AddSubtype(config_control_designe_surface_of_revolution); - a_283axis_position = - new AttrDescriptor("axis_position",config_control_designe_axis1_placement, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_of_revolution); - config_control_designe_surface_of_revolution->AddExplicitAttr (a_283axis_position); - a_284Daxis_line = - new Derived_attribute("axis_line",config_control_designe_line, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_surface_of_revolution); - config_control_designe_surface_of_revolution->AddExplicitAttr (a_284Daxis_line); - a_284Daxis_line->initializer_("line(axis_position.location,vector(axis_position.z,1))"); - reg.AddEntity (*config_control_designe_surface_of_revolution); -///////// END_ENTITY surface_of_revolution - -///////// ENTITY advanced_brep_shape_representation - - config_control_designe_advanced_brep_shape_representation->AddSupertype(config_control_designe_shape_representation); - config_control_designe_shape_representation->AddSubtype(config_control_designe_advanced_brep_shape_representation); - reg.AddEntity (*config_control_designe_advanced_brep_shape_representation); -///////// END_ENTITY advanced_brep_shape_representation - -///////// ENTITY edge_curve - - config_control_designe_edge_curve->AddSupertype(config_control_designe_edge); - config_control_designe_edge->AddSubtype(config_control_designe_edge_curve); - config_control_designe_edge_curve->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_edge_curve); - a_285edge_geometry = - new AttrDescriptor("edge_geometry",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_edge_curve); - config_control_designe_edge_curve->AddExplicitAttr (a_285edge_geometry); - a_286same_sense = - new AttrDescriptor("same_sense",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_edge_curve); - config_control_designe_edge_curve->AddExplicitAttr (a_286same_sense); - reg.AddEntity (*config_control_designe_edge_curve); -///////// END_ENTITY edge_curve - -///////// ENTITY point_replica - - config_control_designe_point_replica->AddSupertype(config_control_designe_point); - config_control_designe_point->AddSubtype(config_control_designe_point_replica); - a_287parent_pt = - new AttrDescriptor("parent_pt",config_control_designe_point, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_point_replica); - config_control_designe_point_replica->AddExplicitAttr (a_287parent_pt); - a_288transformation = - new AttrDescriptor("transformation",config_control_designe_cartesian_transformation_operator, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_point_replica); - config_control_designe_point_replica->AddExplicitAttr (a_288transformation); - reg.AddEntity (*config_control_designe_point_replica); -///////// END_ENTITY point_replica - -///////// ENTITY product - - a_289id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_product); - config_control_designe_product->AddExplicitAttr (a_289id); - a_290name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product); - config_control_designe_product->AddExplicitAttr (a_290name); - a_291description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product); - config_control_designe_product->AddExplicitAttr (a_291description); - SetTypeDescriptor * t_44 = new SetTypeDescriptor; - t_44->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_44->Bound1(1); - t_44->Bound2(2147483647); - t_44->FundamentalType(SET_TYPE); - t_44->Description("SET [1:?] OF product_context"); - t_44->OriginatingSchema(s_config_control_design); - t_44->ReferentType(config_control_designe_product_context); - a_292frame_of_reference = - new AttrDescriptor("frame_of_reference",t_44,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product); - config_control_designe_product->AddExplicitAttr (a_292frame_of_reference); - reg.AddEntity (*config_control_designe_product); -///////// END_ENTITY product - -///////// ENTITY shape_aspect_relationship - - a_293name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shape_aspect_relationship); - config_control_designe_shape_aspect_relationship->AddExplicitAttr (a_293name); - a_294description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shape_aspect_relationship); - config_control_designe_shape_aspect_relationship->AddExplicitAttr (a_294description); - a_295relating_shape_aspect = - new AttrDescriptor("relating_shape_aspect",config_control_designe_shape_aspect, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shape_aspect_relationship); - config_control_designe_shape_aspect_relationship->AddExplicitAttr (a_295relating_shape_aspect); - a_296related_shape_aspect = - new AttrDescriptor("related_shape_aspect",config_control_designe_shape_aspect, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shape_aspect_relationship); - config_control_designe_shape_aspect_relationship->AddExplicitAttr (a_296related_shape_aspect); - reg.AddEntity (*config_control_designe_shape_aspect_relationship); -///////// END_ENTITY shape_aspect_relationship - -///////// ENTITY rectangular_trimmed_surface - - config_control_designe_rectangular_trimmed_surface->AddSupertype(config_control_designe_bounded_surface); - config_control_designe_bounded_surface->AddSubtype(config_control_designe_rectangular_trimmed_surface); - a_297basis_surface = - new AttrDescriptor("basis_surface",config_control_designe_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rectangular_trimmed_surface); - config_control_designe_rectangular_trimmed_surface->AddExplicitAttr (a_297basis_surface); - a_298u1 = - new AttrDescriptor("u1",config_control_designt_parameter_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rectangular_trimmed_surface); - config_control_designe_rectangular_trimmed_surface->AddExplicitAttr (a_298u1); - a_299u2 = - new AttrDescriptor("u2",config_control_designt_parameter_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rectangular_trimmed_surface); - config_control_designe_rectangular_trimmed_surface->AddExplicitAttr (a_299u2); - a_300v1 = - new AttrDescriptor("v1",config_control_designt_parameter_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rectangular_trimmed_surface); - config_control_designe_rectangular_trimmed_surface->AddExplicitAttr (a_300v1); - a_301v2 = - new AttrDescriptor("v2",config_control_designt_parameter_value, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rectangular_trimmed_surface); - config_control_designe_rectangular_trimmed_surface->AddExplicitAttr (a_301v2); - a_302usense = - new AttrDescriptor("usense",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rectangular_trimmed_surface); - config_control_designe_rectangular_trimmed_surface->AddExplicitAttr (a_302usense); - a_303vsense = - new AttrDescriptor("vsense",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rectangular_trimmed_surface); - config_control_designe_rectangular_trimmed_surface->AddExplicitAttr (a_303vsense); - reg.AddEntity (*config_control_designe_rectangular_trimmed_surface); -///////// END_ENTITY rectangular_trimmed_surface - -///////// ENTITY plane - - config_control_designe_plane->AddSupertype(config_control_designe_elementary_surface); - config_control_designe_elementary_surface->AddSubtype(config_control_designe_plane); - reg.AddEntity (*config_control_designe_plane); -///////// END_ENTITY plane - -///////// ENTITY action_assignment - - config_control_designe_action_assignment->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_304assigned_action = - new AttrDescriptor("assigned_action",config_control_designe_action, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action_assignment); - config_control_designe_action_assignment->AddExplicitAttr (a_304assigned_action); - reg.AddEntity (*config_control_designe_action_assignment); -///////// END_ENTITY action_assignment - -///////// ENTITY change - - config_control_designe_change->AddSupertype(config_control_designe_action_assignment); - config_control_designe_action_assignment->AddSubtype(config_control_designe_change); - SetTypeDescriptor * t_45 = new SetTypeDescriptor; - t_45->AssignAggrCreator((AggregateCreator) create_SdaiWork_items); // Creator function - t_45->Bound1(1); - t_45->Bound2(2147483647); - t_45->FundamentalType(SET_TYPE); - t_45->Description("SET [1:?] OF work_item"); - t_45->OriginatingSchema(s_config_control_design); - t_45->ReferentType(config_control_designt_work_item); - a_305items = - new AttrDescriptor("items",t_45,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_change); - config_control_designe_change->AddExplicitAttr (a_305items); - reg.AddEntity (*config_control_designe_change); -///////// END_ENTITY change - -///////// ENTITY circle - - config_control_designe_circle->AddSupertype(config_control_designe_conic); - config_control_designe_conic->AddSubtype(config_control_designe_circle); - a_306radius = - new AttrDescriptor("radius",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_circle); - config_control_designe_circle->AddExplicitAttr (a_306radius); - reg.AddEntity (*config_control_designe_circle); -///////// END_ENTITY circle - -///////// ENTITY line - - config_control_designe_line->AddSupertype(config_control_designe_curve); - config_control_designe_curve->AddSubtype(config_control_designe_line); - a_307pnt = - new AttrDescriptor("pnt",config_control_designe_cartesian_point, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_line); - config_control_designe_line->AddExplicitAttr (a_307pnt); - a_308dir = - new AttrDescriptor("dir",config_control_designe_vector, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_line); - config_control_designe_line->AddExplicitAttr (a_308dir); - reg.AddEntity (*config_control_designe_line); -///////// END_ENTITY line - -///////// ENTITY property_definition_representation - - a_309definition = - new AttrDescriptor("definition",config_control_designe_property_definition, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_property_definition_representation); - config_control_designe_property_definition_representation->AddExplicitAttr (a_309definition); - a_310used_representation = - new AttrDescriptor("used_representation",config_control_designe_representation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_property_definition_representation); - config_control_designe_property_definition_representation->AddExplicitAttr (a_310used_representation); - reg.AddEntity (*config_control_designe_property_definition_representation); -///////// END_ENTITY property_definition_representation - -///////// ENTITY geometric_set - - config_control_designe_geometric_set->AddSupertype_Stmt("SUPERTYPE OF (geometric_curve_set)"); - config_control_designe_geometric_set->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_geometric_set); - SetTypeDescriptor * t_46 = new SetTypeDescriptor; - t_46->AssignAggrCreator((AggregateCreator) create_SdaiGeometric_set_selects); // Creator function - t_46->Bound1(1); - t_46->Bound2(2147483647); - t_46->FundamentalType(SET_TYPE); - t_46->Description("SET [1:?] OF geometric_set_select"); - t_46->OriginatingSchema(s_config_control_design); - t_46->ReferentType(config_control_designt_geometric_set_select); - a_311elements = - new AttrDescriptor("elements",t_46,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_geometric_set); - config_control_designe_geometric_set->AddExplicitAttr (a_311elements); - reg.AddEntity (*config_control_designe_geometric_set); -///////// END_ENTITY geometric_set - -///////// ENTITY geometric_curve_set - - config_control_designe_geometric_curve_set->AddSupertype(config_control_designe_geometric_set); - config_control_designe_geometric_set->AddSubtype(config_control_designe_geometric_curve_set); - reg.AddEntity (*config_control_designe_geometric_curve_set); -///////// END_ENTITY geometric_curve_set - -///////// ENTITY personal_address - - config_control_designe_personal_address->AddSupertype(config_control_designe_address); - config_control_designe_address->AddSubtype(config_control_designe_personal_address); - SetTypeDescriptor * t_47 = new SetTypeDescriptor; - t_47->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_47->Bound1(1); - t_47->Bound2(2147483647); - t_47->FundamentalType(SET_TYPE); - t_47->Description("SET [1:?] OF person"); - t_47->OriginatingSchema(s_config_control_design); - t_47->ReferentType(config_control_designe_person); - a_312people = - new AttrDescriptor("people",t_47,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_personal_address); - config_control_designe_personal_address->AddExplicitAttr (a_312people); - a_313description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_personal_address); - config_control_designe_personal_address->AddExplicitAttr (a_313description); - reg.AddEntity (*config_control_designe_personal_address); -///////// END_ENTITY personal_address - -///////// ENTITY document_relationship - - a_314name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_relationship); - config_control_designe_document_relationship->AddExplicitAttr (a_314name); - a_315description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_relationship); - config_control_designe_document_relationship->AddExplicitAttr (a_315description); - a_316relating_document = - new AttrDescriptor("relating_document",config_control_designe_document, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_relationship); - config_control_designe_document_relationship->AddExplicitAttr (a_316relating_document); - a_317related_document = - new AttrDescriptor("related_document",config_control_designe_document, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_relationship); - config_control_designe_document_relationship->AddExplicitAttr (a_317related_document); - reg.AddEntity (*config_control_designe_document_relationship); -///////// END_ENTITY document_relationship - -///////// ENTITY pcurve - - config_control_designe_pcurve->AddSupertype(config_control_designe_curve); - config_control_designe_curve->AddSubtype(config_control_designe_pcurve); - a_318basis_surface = - new AttrDescriptor("basis_surface",config_control_designe_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_pcurve); - config_control_designe_pcurve->AddExplicitAttr (a_318basis_surface); - a_319reference_to_curve = - new AttrDescriptor("reference_to_curve",config_control_designe_definitional_representation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_pcurve); - config_control_designe_pcurve->AddExplicitAttr (a_319reference_to_curve); - reg.AddEntity (*config_control_designe_pcurve); -///////// END_ENTITY pcurve - -///////// ENTITY outer_boundary_curve - - config_control_designe_outer_boundary_curve->AddSupertype(config_control_designe_boundary_curve); - config_control_designe_boundary_curve->AddSubtype(config_control_designe_outer_boundary_curve); - reg.AddEntity (*config_control_designe_outer_boundary_curve); -///////// END_ENTITY outer_boundary_curve - -///////// ENTITY shape_representation_relationship - - config_control_designe_shape_representation_relationship->AddSupertype(config_control_designe_representation_relationship); - config_control_designe_representation_relationship->AddSubtype(config_control_designe_shape_representation_relationship); - reg.AddEntity (*config_control_designe_shape_representation_relationship); -///////// END_ENTITY shape_representation_relationship - -///////// ENTITY assembly_component_usage_substitute - - a_320name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_assembly_component_usage_substitute); - config_control_designe_assembly_component_usage_substitute->AddExplicitAttr (a_320name); - a_321description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_assembly_component_usage_substitute); - config_control_designe_assembly_component_usage_substitute->AddExplicitAttr (a_321description); - a_322base = - new AttrDescriptor("base",config_control_designe_assembly_component_usage, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_assembly_component_usage_substitute); - config_control_designe_assembly_component_usage_substitute->AddExplicitAttr (a_322base); - a_323substitute = - new AttrDescriptor("substitute",config_control_designe_assembly_component_usage, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_assembly_component_usage_substitute); - config_control_designe_assembly_component_usage_substitute->AddExplicitAttr (a_323substitute); - reg.AddEntity (*config_control_designe_assembly_component_usage_substitute); -///////// END_ENTITY assembly_component_usage_substitute - -///////// ENTITY degenerate_pcurve - - config_control_designe_degenerate_pcurve->AddSupertype(config_control_designe_point); - config_control_designe_point->AddSubtype(config_control_designe_degenerate_pcurve); - a_324basis_surface = - new AttrDescriptor("basis_surface",config_control_designe_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_degenerate_pcurve); - config_control_designe_degenerate_pcurve->AddExplicitAttr (a_324basis_surface); - a_325reference_to_curve = - new AttrDescriptor("reference_to_curve",config_control_designe_definitional_representation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_degenerate_pcurve); - config_control_designe_degenerate_pcurve->AddExplicitAttr (a_325reference_to_curve); - reg.AddEntity (*config_control_designe_degenerate_pcurve); -///////// END_ENTITY degenerate_pcurve - -///////// ENTITY evaluated_degenerate_pcurve - - config_control_designe_evaluated_degenerate_pcurve->AddSupertype(config_control_designe_degenerate_pcurve); - config_control_designe_degenerate_pcurve->AddSubtype(config_control_designe_evaluated_degenerate_pcurve); - a_326equivalent_point = - new AttrDescriptor("equivalent_point",config_control_designe_cartesian_point, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_evaluated_degenerate_pcurve); - config_control_designe_evaluated_degenerate_pcurve->AddExplicitAttr (a_326equivalent_point); - reg.AddEntity (*config_control_designe_evaluated_degenerate_pcurve); -///////// END_ENTITY evaluated_degenerate_pcurve - -///////// ENTITY solid_angle_measure_with_unit - - config_control_designe_solid_angle_measure_with_unit->AddSupertype(config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddSubtype(config_control_designe_solid_angle_measure_with_unit); - reg.AddEntity (*config_control_designe_solid_angle_measure_with_unit); -///////// END_ENTITY solid_angle_measure_with_unit - -///////// ENTITY connected_edge_set - - config_control_designe_connected_edge_set->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_connected_edge_set); - SetTypeDescriptor * t_48 = new SetTypeDescriptor; - t_48->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_48->Bound1(1); - t_48->Bound2(2147483647); - t_48->FundamentalType(SET_TYPE); - t_48->Description("SET [1:?] OF edge"); - t_48->OriginatingSchema(s_config_control_design); - t_48->ReferentType(config_control_designe_edge); - a_327ces_edges = - new AttrDescriptor("ces_edges",t_48,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_connected_edge_set); - config_control_designe_connected_edge_set->AddExplicitAttr (a_327ces_edges); - reg.AddEntity (*config_control_designe_connected_edge_set); -///////// END_ENTITY connected_edge_set - -///////// ENTITY action - - a_328name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action); - config_control_designe_action->AddExplicitAttr (a_328name); - a_329description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action); - config_control_designe_action->AddExplicitAttr (a_329description); - a_330chosen_method = - new AttrDescriptor("chosen_method",config_control_designe_action_method, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_action); - config_control_designe_action->AddExplicitAttr (a_330chosen_method); - reg.AddEntity (*config_control_designe_action); -///////// END_ENTITY action - -///////// ENTITY executed_action - - config_control_designe_executed_action->AddSupertype(config_control_designe_action); - config_control_designe_action->AddSubtype(config_control_designe_executed_action); - reg.AddEntity (*config_control_designe_executed_action); -///////// END_ENTITY executed_action - -///////// ENTITY directed_action - - config_control_designe_directed_action->AddSupertype(config_control_designe_executed_action); - config_control_designe_executed_action->AddSubtype(config_control_designe_directed_action); - a_331directive = - new AttrDescriptor("directive",config_control_designe_action_directive, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_directed_action); - config_control_designe_directed_action->AddExplicitAttr (a_331directive); - reg.AddEntity (*config_control_designe_directed_action); -///////// END_ENTITY directed_action - -///////// ENTITY organizational_project - - a_332name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organizational_project); - config_control_designe_organizational_project->AddExplicitAttr (a_332name); - a_333description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organizational_project); - config_control_designe_organizational_project->AddExplicitAttr (a_333description); - SetTypeDescriptor * t_49 = new SetTypeDescriptor; - t_49->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_49->Bound1(1); - t_49->Bound2(2147483647); - t_49->FundamentalType(SET_TYPE); - t_49->Description("SET [1:?] OF organization"); - t_49->OriginatingSchema(s_config_control_design); - t_49->ReferentType(config_control_designe_organization); - a_334responsible_organizations = - new AttrDescriptor("responsible_organizations",t_49,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organizational_project); - config_control_designe_organizational_project->AddExplicitAttr (a_334responsible_organizations); - reg.AddEntity (*config_control_designe_organizational_project); -///////// END_ENTITY organizational_project - -///////// ENTITY date_time_role - - a_335name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_date_time_role); - config_control_designe_date_time_role->AddExplicitAttr (a_335name); - reg.AddEntity (*config_control_designe_date_time_role); -///////// END_ENTITY date_time_role - -///////// ENTITY curve_bounded_surface - - config_control_designe_curve_bounded_surface->AddSupertype(config_control_designe_bounded_surface); - config_control_designe_bounded_surface->AddSubtype(config_control_designe_curve_bounded_surface); - a_336basis_surface = - new AttrDescriptor("basis_surface",config_control_designe_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_curve_bounded_surface); - config_control_designe_curve_bounded_surface->AddExplicitAttr (a_336basis_surface); - SetTypeDescriptor * t_50 = new SetTypeDescriptor; - t_50->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_50->Bound1(1); - t_50->Bound2(2147483647); - t_50->FundamentalType(SET_TYPE); - t_50->Description("SET [1:?] OF boundary_curve"); - t_50->OriginatingSchema(s_config_control_design); - t_50->ReferentType(config_control_designe_boundary_curve); - a_337boundaries = - new AttrDescriptor("boundaries",t_50,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_curve_bounded_surface); - config_control_designe_curve_bounded_surface->AddExplicitAttr (a_337boundaries); - a_338implicit_outer = - new AttrDescriptor("implicit_outer",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_curve_bounded_surface); - config_control_designe_curve_bounded_surface->AddExplicitAttr (a_338implicit_outer); - reg.AddEntity (*config_control_designe_curve_bounded_surface); -///////// END_ENTITY curve_bounded_surface - -///////// ENTITY closed_shell - - config_control_designe_closed_shell->AddSupertype(config_control_designe_connected_face_set); - config_control_designe_connected_face_set->AddSubtype(config_control_designe_closed_shell); - reg.AddEntity (*config_control_designe_closed_shell); -///////// END_ENTITY closed_shell - -///////// ENTITY design_make_from_relationship - - config_control_designe_design_make_from_relationship->AddSupertype(config_control_designe_product_definition_relationship); - config_control_designe_product_definition_relationship->AddSubtype(config_control_designe_design_make_from_relationship); - reg.AddEntity (*config_control_designe_design_make_from_relationship); -///////// END_ENTITY design_make_from_relationship - -///////// ENTITY definitional_representation - - config_control_designe_definitional_representation->AddSupertype(config_control_designe_representation); - config_control_designe_representation->AddSubtype(config_control_designe_definitional_representation); - reg.AddEntity (*config_control_designe_definitional_representation); -///////// END_ENTITY definitional_representation - -///////// ENTITY product_definition_shape - - config_control_designe_product_definition_shape->AddSupertype(config_control_designe_property_definition); - config_control_designe_property_definition->AddSubtype(config_control_designe_product_definition_shape); - reg.AddEntity (*config_control_designe_product_definition_shape); -///////// END_ENTITY product_definition_shape - -///////// ENTITY si_unit - - config_control_designe_si_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_si_unit); - a_339prefix = - new AttrDescriptor("prefix",config_control_designt_si_prefix, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_si_unit); - config_control_designe_si_unit->AddExplicitAttr (a_339prefix); - a_340name = - new AttrDescriptor("name",config_control_designt_si_unit_name, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_si_unit); - config_control_designe_si_unit->AddExplicitAttr (a_340name); - a_341Dnamed_unit_dimensions = - new Derived_attribute("named_unit.dimensions",config_control_designe_dimensional_exponents, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_si_unit); - config_control_designe_si_unit->AddExplicitAttr (a_341Dnamed_unit_dimensions); - a_341Dnamed_unit_dimensions->initializer_("dimensions_for_si_unit(SELF.name)"); - reg.AddEntity (*config_control_designe_si_unit); -///////// END_ENTITY si_unit - -///////// ENTITY bezier_surface - - config_control_designe_bezier_surface->AddSupertype(config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddSubtype(config_control_designe_bezier_surface); - reg.AddEntity (*config_control_designe_bezier_surface); -///////// END_ENTITY bezier_surface - -///////// ENTITY certification_assignment - - config_control_designe_certification_assignment->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_342assigned_certification = - new AttrDescriptor("assigned_certification",config_control_designe_certification, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_certification_assignment); - config_control_designe_certification_assignment->AddExplicitAttr (a_342assigned_certification); - reg.AddEntity (*config_control_designe_certification_assignment); -///////// END_ENTITY certification_assignment - -///////// ENTITY start_work - - config_control_designe_start_work->AddSupertype(config_control_designe_action_assignment); - config_control_designe_action_assignment->AddSubtype(config_control_designe_start_work); - SetTypeDescriptor * t_51 = new SetTypeDescriptor; - t_51->AssignAggrCreator((AggregateCreator) create_SdaiWork_items); // Creator function - t_51->Bound1(1); - t_51->Bound2(2147483647); - t_51->FundamentalType(SET_TYPE); - t_51->Description("SET [1:?] OF work_item"); - t_51->OriginatingSchema(s_config_control_design); - t_51->ReferentType(config_control_designt_work_item); - a_343items = - new AttrDescriptor("items",t_51,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_start_work); - config_control_designe_start_work->AddExplicitAttr (a_343items); - reg.AddEntity (*config_control_designe_start_work); -///////// END_ENTITY start_work - -///////// ENTITY contract_type - - a_344description = - new AttrDescriptor("description",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_contract_type); - config_control_designe_contract_type->AddExplicitAttr (a_344description); - reg.AddEntity (*config_control_designe_contract_type); -///////// END_ENTITY contract_type - -///////// ENTITY b_spline_curve_with_knots - - config_control_designe_b_spline_curve_with_knots->AddSupertype(config_control_designe_b_spline_curve); - config_control_designe_b_spline_curve->AddSubtype(config_control_designe_b_spline_curve_with_knots); - ListTypeDescriptor * t_52 = new ListTypeDescriptor; - t_52->AssignAggrCreator((AggregateCreator) create_IntAggregate); // Creator function - t_52->Bound1(2); - t_52->Bound2(2147483647); - t_52->FundamentalType(LIST_TYPE); - t_52->Description("LIST [2:?] OF INTEGER"); - t_52->OriginatingSchema(s_config_control_design); - t_52->ReferentType(t_sdaiINTEGER); - a_345knot_multiplicities = - new AttrDescriptor("knot_multiplicities",t_52,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_curve_with_knots); - config_control_designe_b_spline_curve_with_knots->AddExplicitAttr (a_345knot_multiplicities); - ListTypeDescriptor * t_53 = new ListTypeDescriptor; - t_53->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_53->Bound1(2); - t_53->Bound2(2147483647); - t_53->FundamentalType(LIST_TYPE); - t_53->Description("LIST [2:?] OF parameter_value"); - t_53->OriginatingSchema(s_config_control_design); - t_53->ReferentType(config_control_designt_parameter_value); - a_346knots = - new AttrDescriptor("knots",t_53,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_curve_with_knots); - config_control_designe_b_spline_curve_with_knots->AddExplicitAttr (a_346knots); - a_347knot_spec = - new AttrDescriptor("knot_spec",config_control_designt_knot_type, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_curve_with_knots); - config_control_designe_b_spline_curve_with_knots->AddExplicitAttr (a_347knot_spec); - a_348Dupper_index_on_knots = - new Derived_attribute("upper_index_on_knots",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_b_spline_curve_with_knots); - config_control_designe_b_spline_curve_with_knots->AddExplicitAttr (a_348Dupper_index_on_knots); - a_348Dupper_index_on_knots->initializer_("SIZEOF(knots)"); - reg.AddEntity (*config_control_designe_b_spline_curve_with_knots); -///////// END_ENTITY b_spline_curve_with_knots - -///////// ENTITY cc_design_approval - - config_control_designe_cc_design_approval->AddSupertype(config_control_designe_approval_assignment); - config_control_designe_approval_assignment->AddSubtype(config_control_designe_cc_design_approval); - SetTypeDescriptor * t_54 = new SetTypeDescriptor; - t_54->AssignAggrCreator((AggregateCreator) create_SdaiApproved_items); // Creator function - t_54->Bound1(1); - t_54->Bound2(2147483647); - t_54->FundamentalType(SET_TYPE); - t_54->Description("SET [1:?] OF approved_item"); - t_54->OriginatingSchema(s_config_control_design); - t_54->ReferentType(config_control_designt_approved_item); - a_349items = - new AttrDescriptor("items",t_54,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cc_design_approval); - config_control_designe_cc_design_approval->AddExplicitAttr (a_349items); - reg.AddEntity (*config_control_designe_cc_design_approval); -///////// END_ENTITY cc_design_approval - -///////// ENTITY edge_based_wireframe_shape_representation - - config_control_designe_edge_based_wireframe_shape_representation->AddSupertype(config_control_designe_shape_representation); - config_control_designe_shape_representation->AddSubtype(config_control_designe_edge_based_wireframe_shape_representation); - reg.AddEntity (*config_control_designe_edge_based_wireframe_shape_representation); -///////// END_ENTITY edge_based_wireframe_shape_representation - -///////// ENTITY geometrically_bounded_wireframe_shape_representation - - config_control_designe_geometrically_bounded_wireframe_shape_representation->AddSupertype(config_control_designe_shape_representation); - config_control_designe_shape_representation->AddSubtype(config_control_designe_geometrically_bounded_wireframe_shape_representation); - reg.AddEntity (*config_control_designe_geometrically_bounded_wireframe_shape_representation); -///////// END_ENTITY geometrically_bounded_wireframe_shape_representation - -///////// ENTITY product_concept - - a_350id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_product_concept); - config_control_designe_product_concept->AddExplicitAttr (a_350id); - a_351name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_concept); - config_control_designe_product_concept->AddExplicitAttr (a_351name); - a_352description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_concept); - config_control_designe_product_concept->AddExplicitAttr (a_352description); - a_353market_context = - new AttrDescriptor("market_context",config_control_designe_product_concept_context, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_concept); - config_control_designe_product_concept->AddExplicitAttr (a_353market_context); - reg.AddEntity (*config_control_designe_product_concept); -///////// END_ENTITY product_concept - -///////// ENTITY cc_design_contract - - config_control_designe_cc_design_contract->AddSupertype(config_control_designe_contract_assignment); - config_control_designe_contract_assignment->AddSubtype(config_control_designe_cc_design_contract); - SetTypeDescriptor * t_55 = new SetTypeDescriptor; - t_55->AssignAggrCreator((AggregateCreator) create_SdaiContracted_items); // Creator function - t_55->Bound1(1); - t_55->Bound2(2147483647); - t_55->FundamentalType(SET_TYPE); - t_55->Description("SET [1:?] OF contracted_item"); - t_55->OriginatingSchema(s_config_control_design); - t_55->ReferentType(config_control_designt_contracted_item); - a_354items = - new AttrDescriptor("items",t_55,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cc_design_contract); - config_control_designe_cc_design_contract->AddExplicitAttr (a_354items); - reg.AddEntity (*config_control_designe_cc_design_contract); -///////// END_ENTITY cc_design_contract - -///////// ENTITY seam_curve - - config_control_designe_seam_curve->AddSupertype(config_control_designe_surface_curve); - config_control_designe_surface_curve->AddSubtype(config_control_designe_seam_curve); - reg.AddEntity (*config_control_designe_seam_curve); -///////// END_ENTITY seam_curve - -///////// ENTITY axis2_placement_3d - - config_control_designe_axis2_placement_3d->AddSupertype(config_control_designe_placement); - config_control_designe_placement->AddSubtype(config_control_designe_axis2_placement_3d); - a_355axis = - new AttrDescriptor("axis",config_control_designe_direction, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_axis2_placement_3d); - config_control_designe_axis2_placement_3d->AddExplicitAttr (a_355axis); - a_356ref_direction = - new AttrDescriptor("ref_direction",config_control_designe_direction, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_axis2_placement_3d); - config_control_designe_axis2_placement_3d->AddExplicitAttr (a_356ref_direction); - ListTypeDescriptor * t_56 = new ListTypeDescriptor; - t_56->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_56->Bound1(3); - t_56->Bound2(3); - t_56->FundamentalType(LIST_TYPE); - t_56->Description("LIST [3:3] OF direction"); - t_56->OriginatingSchema(s_config_control_design); - t_56->ReferentType(config_control_designe_direction); - a_357Dp = - new Derived_attribute("p",t_56,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_axis2_placement_3d); - config_control_designe_axis2_placement_3d->AddExplicitAttr (a_357Dp); - a_357Dp->initializer_("build_axes(axis,ref_direction)"); - reg.AddEntity (*config_control_designe_axis2_placement_3d); -///////// END_ENTITY axis2_placement_3d - -///////// ENTITY rational_b_spline_surface - - config_control_designe_rational_b_spline_surface->AddSupertype(config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddSubtype(config_control_designe_rational_b_spline_surface); - ListTypeDescriptor * t_57 = new ListTypeDescriptor; - t_57->AssignAggrCreator((AggregateCreator) create_GenericAggregate); // Creator function - t_57->Bound1(2); - t_57->Bound2(2147483647); - t_57->FundamentalType(LIST_TYPE); - t_57->Description("LIST [2:?] OF LIST [2:?] OF REAL"); - t_57->OriginatingSchema(s_config_control_design); - ListTypeDescriptor * t_58 = new ListTypeDescriptor; - t_58->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_58->Bound1(2); - t_58->Bound2(2147483647); - t_58->FundamentalType(LIST_TYPE); - t_58->Description("LIST [2:?] OF REAL"); - t_58->OriginatingSchema(s_config_control_design); - t_58->ReferentType(t_sdaiREAL); - t_57->ReferentType(t_58); - a_358weights_data = - new AttrDescriptor("weights_data",t_57,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_rational_b_spline_surface); - config_control_designe_rational_b_spline_surface->AddExplicitAttr (a_358weights_data); - ArrayTypeDescriptor * t_59 = new ArrayTypeDescriptor; - t_59->AssignAggrCreator((AggregateCreator) create_GenericAggregate); // Creator function - t_59->Bound1(0); - t_59->Bound2(1025168); - t_59->FundamentalType(ARRAY_TYPE); - t_59->Description("ARRAY [0:u_upper] OF ARRAY [0:v_upper] OF REAL"); - t_59->OriginatingSchema(s_config_control_design); - ArrayTypeDescriptor * t_60 = new ArrayTypeDescriptor; - t_60->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_60->Bound1(0); - t_60->Bound2(1025208); - t_60->FundamentalType(ARRAY_TYPE); - t_60->Description("ARRAY [0:v_upper] OF REAL"); - t_60->OriginatingSchema(s_config_control_design); - t_60->ReferentType(t_sdaiREAL); - t_59->ReferentType(t_60); - a_359Dweights = - new Derived_attribute("weights",t_59,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_rational_b_spline_surface); - config_control_designe_rational_b_spline_surface->AddExplicitAttr (a_359Dweights); - a_359Dweights->initializer_("make_array_of_array(weights_data,0,u_upper,0,v_upper)"); - reg.AddEntity (*config_control_designe_rational_b_spline_surface); -///////// END_ENTITY rational_b_spline_surface - -///////// ENTITY configuration_design - - a_360configuration = - new AttrDescriptor("configuration",config_control_designe_configuration_item, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_configuration_design); - config_control_designe_configuration_design->AddExplicitAttr (a_360configuration); - a_361design = - new AttrDescriptor("design",config_control_designe_product_definition_formation, - SCLLOG(LFalse),SCLLOG(LTrue), AttrType_Explicit, - *config_control_designe_configuration_design); - config_control_designe_configuration_design->AddExplicitAttr (a_361design); - reg.AddEntity (*config_control_designe_configuration_design); -///////// END_ENTITY configuration_design - -///////// ENTITY design_context - - config_control_designe_design_context->AddSupertype(config_control_designe_product_definition_context); - config_control_designe_product_definition_context->AddSubtype(config_control_designe_design_context); - reg.AddEntity (*config_control_designe_design_context); -///////// END_ENTITY design_context - -///////// ENTITY product_definition - - a_362id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition); - config_control_designe_product_definition->AddExplicitAttr (a_362id); - a_363description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition); - config_control_designe_product_definition->AddExplicitAttr (a_363description); - a_364formation = - new AttrDescriptor("formation",config_control_designe_product_definition_formation, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition); - config_control_designe_product_definition->AddExplicitAttr (a_364formation); - a_365frame_of_reference = - new AttrDescriptor("frame_of_reference",config_control_designe_product_definition_context, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition); - config_control_designe_product_definition->AddExplicitAttr (a_365frame_of_reference); - reg.AddEntity (*config_control_designe_product_definition); -///////// END_ENTITY product_definition - -///////// ENTITY product_definition_with_associated_documents - - config_control_designe_product_definition_with_associated_documents->AddSupertype(config_control_designe_product_definition); - config_control_designe_product_definition->AddSubtype(config_control_designe_product_definition_with_associated_documents); - SetTypeDescriptor * t_61 = new SetTypeDescriptor; - t_61->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_61->Bound1(1); - t_61->Bound2(2147483647); - t_61->FundamentalType(SET_TYPE); - t_61->Description("SET [1:?] OF document"); - t_61->OriginatingSchema(s_config_control_design); - t_61->ReferentType(config_control_designe_document); - a_366documentation_ids = - new AttrDescriptor("documentation_ids",t_61,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_definition_with_associated_documents); - config_control_designe_product_definition_with_associated_documents->AddExplicitAttr (a_366documentation_ids); - reg.AddEntity (*config_control_designe_product_definition_with_associated_documents); -///////// END_ENTITY product_definition_with_associated_documents - -///////// ENTITY organization - - a_367id = - new AttrDescriptor("id",config_control_designt_identifier, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organization); - config_control_designe_organization->AddExplicitAttr (a_367id); - a_368name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organization); - config_control_designe_organization->AddExplicitAttr (a_368name); - a_369description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_organization); - config_control_designe_organization->AddExplicitAttr (a_369description); - reg.AddEntity (*config_control_designe_organization); -///////// END_ENTITY organization - -///////// ENTITY cc_design_certification - - config_control_designe_cc_design_certification->AddSupertype(config_control_designe_certification_assignment); - config_control_designe_certification_assignment->AddSubtype(config_control_designe_cc_design_certification); - SetTypeDescriptor * t_62 = new SetTypeDescriptor; - t_62->AssignAggrCreator((AggregateCreator) create_SdaiCertified_items); // Creator function - t_62->Bound1(1); - t_62->Bound2(2147483647); - t_62->FundamentalType(SET_TYPE); - t_62->Description("SET [1:?] OF certified_item"); - t_62->OriginatingSchema(s_config_control_design); - t_62->ReferentType(config_control_designt_certified_item); - a_370items = - new AttrDescriptor("items",t_62,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cc_design_certification); - config_control_designe_cc_design_certification->AddExplicitAttr (a_370items); - reg.AddEntity (*config_control_designe_cc_design_certification); -///////// END_ENTITY cc_design_certification - -///////// ENTITY b_spline_surface_with_knots - - config_control_designe_b_spline_surface_with_knots->AddSupertype(config_control_designe_b_spline_surface); - config_control_designe_b_spline_surface->AddSubtype(config_control_designe_b_spline_surface_with_knots); - ListTypeDescriptor * t_63 = new ListTypeDescriptor; - t_63->AssignAggrCreator((AggregateCreator) create_IntAggregate); // Creator function - t_63->Bound1(2); - t_63->Bound2(2147483647); - t_63->FundamentalType(LIST_TYPE); - t_63->Description("LIST [2:?] OF INTEGER"); - t_63->OriginatingSchema(s_config_control_design); - t_63->ReferentType(t_sdaiINTEGER); - a_371u_multiplicities = - new AttrDescriptor("u_multiplicities",t_63,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface_with_knots); - config_control_designe_b_spline_surface_with_knots->AddExplicitAttr (a_371u_multiplicities); - ListTypeDescriptor * t_64 = new ListTypeDescriptor; - t_64->AssignAggrCreator((AggregateCreator) create_IntAggregate); // Creator function - t_64->Bound1(2); - t_64->Bound2(2147483647); - t_64->FundamentalType(LIST_TYPE); - t_64->Description("LIST [2:?] OF INTEGER"); - t_64->OriginatingSchema(s_config_control_design); - t_64->ReferentType(t_sdaiINTEGER); - a_372v_multiplicities = - new AttrDescriptor("v_multiplicities",t_64,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface_with_knots); - config_control_designe_b_spline_surface_with_knots->AddExplicitAttr (a_372v_multiplicities); - ListTypeDescriptor * t_65 = new ListTypeDescriptor; - t_65->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_65->Bound1(2); - t_65->Bound2(2147483647); - t_65->FundamentalType(LIST_TYPE); - t_65->Description("LIST [2:?] OF parameter_value"); - t_65->OriginatingSchema(s_config_control_design); - t_65->ReferentType(config_control_designt_parameter_value); - a_373u_knots = - new AttrDescriptor("u_knots",t_65,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface_with_knots); - config_control_designe_b_spline_surface_with_knots->AddExplicitAttr (a_373u_knots); - ListTypeDescriptor * t_66 = new ListTypeDescriptor; - t_66->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_66->Bound1(2); - t_66->Bound2(2147483647); - t_66->FundamentalType(LIST_TYPE); - t_66->Description("LIST [2:?] OF parameter_value"); - t_66->OriginatingSchema(s_config_control_design); - t_66->ReferentType(config_control_designt_parameter_value); - a_374v_knots = - new AttrDescriptor("v_knots",t_66,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface_with_knots); - config_control_designe_b_spline_surface_with_knots->AddExplicitAttr (a_374v_knots); - a_375knot_spec = - new AttrDescriptor("knot_spec",config_control_designt_knot_type, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_b_spline_surface_with_knots); - config_control_designe_b_spline_surface_with_knots->AddExplicitAttr (a_375knot_spec); - a_376Dknot_u_upper = - new Derived_attribute("knot_u_upper",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_b_spline_surface_with_knots); - config_control_designe_b_spline_surface_with_knots->AddExplicitAttr (a_376Dknot_u_upper); - a_376Dknot_u_upper->initializer_("SIZEOF(u_knots)"); - a_377Dknot_v_upper = - new Derived_attribute("knot_v_upper",t_sdaiINTEGER, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_b_spline_surface_with_knots); - config_control_designe_b_spline_surface_with_knots->AddExplicitAttr (a_377Dknot_v_upper); - a_377Dknot_v_upper->initializer_("SIZEOF(v_knots)"); - reg.AddEntity (*config_control_designe_b_spline_surface_with_knots); -///////// END_ENTITY b_spline_surface_with_knots - -///////// ENTITY certification_type - - a_378description = - new AttrDescriptor("description",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_certification_type); - config_control_designe_certification_type->AddExplicitAttr (a_378description); - reg.AddEntity (*config_control_designe_certification_type); -///////// END_ENTITY certification_type - -///////// ENTITY oriented_path - - config_control_designe_oriented_path->AddSupertype(config_control_designe_path); - config_control_designe_path->AddSubtype(config_control_designe_oriented_path); - a_379path_element = - new AttrDescriptor("path_element",config_control_designe_path, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_path); - config_control_designe_oriented_path->AddExplicitAttr (a_379path_element); - a_380orientation = - new AttrDescriptor("orientation",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_path); - config_control_designe_oriented_path->AddExplicitAttr (a_380orientation); - ListTypeDescriptor * t_67 = new ListTypeDescriptor; - t_67->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_67->Bound1(1); - t_67->Bound2(2147483647); - t_67->UniqueElements(SCLLOG(LTrue)); - t_67->FundamentalType(LIST_TYPE); - t_67->Description("LIST [1:?] OF UNIQUE oriented_edge"); - t_67->OriginatingSchema(s_config_control_design); - t_67->ReferentType(config_control_designe_oriented_edge); - a_381Dpath_edge_list = - new Derived_attribute("path.edge_list",t_67,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_oriented_path); - config_control_designe_oriented_path->AddExplicitAttr (a_381Dpath_edge_list); - a_381Dpath_edge_list->initializer_("conditional_reverse(SELF.orientation,SELF.path_element.edge_list)"); - reg.AddEntity (*config_control_designe_oriented_path); -///////// END_ENTITY oriented_path - -///////// ENTITY security_classification - - a_382name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_security_classification); - config_control_designe_security_classification->AddExplicitAttr (a_382name); - a_383purpose = - new AttrDescriptor("purpose",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_security_classification); - config_control_designe_security_classification->AddExplicitAttr (a_383purpose); - a_384security_level = - new AttrDescriptor("security_level",config_control_designe_security_classification_level, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_security_classification); - config_control_designe_security_classification->AddExplicitAttr (a_384security_level); - reg.AddEntity (*config_control_designe_security_classification); -///////// END_ENTITY security_classification - -///////// ENTITY vertex_loop - - config_control_designe_vertex_loop->AddSupertype(config_control_designe_loop); - config_control_designe_loop->AddSubtype(config_control_designe_vertex_loop); - a_385loop_vertex = - new AttrDescriptor("loop_vertex",config_control_designe_vertex, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_vertex_loop); - config_control_designe_vertex_loop->AddExplicitAttr (a_385loop_vertex); - reg.AddEntity (*config_control_designe_vertex_loop); -///////// END_ENTITY vertex_loop - -///////// ENTITY approval_status - - a_386name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_status); - config_control_designe_approval_status->AddExplicitAttr (a_386name); - reg.AddEntity (*config_control_designe_approval_status); -///////// END_ENTITY approval_status - -///////// ENTITY cartesian_point - - config_control_designe_cartesian_point->AddSupertype(config_control_designe_point); - config_control_designe_point->AddSubtype(config_control_designe_cartesian_point); - ListTypeDescriptor * t_68 = new ListTypeDescriptor; - t_68->AssignAggrCreator((AggregateCreator) create_RealAggregate); // Creator function - t_68->Bound1(1); - t_68->Bound2(3); - t_68->FundamentalType(LIST_TYPE); - t_68->Description("LIST [1:3] OF length_measure"); - t_68->OriginatingSchema(s_config_control_design); - t_68->ReferentType(config_control_designt_length_measure); - a_387coordinates = - new AttrDescriptor("coordinates",t_68,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cartesian_point); - config_control_designe_cartesian_point->AddExplicitAttr (a_387coordinates); - reg.AddEntity (*config_control_designe_cartesian_point); -///////// END_ENTITY cartesian_point - -///////// ENTITY date_and_time_assignment - - config_control_designe_date_and_time_assignment->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_388assigned_date_and_time = - new AttrDescriptor("assigned_date_and_time",config_control_designe_date_and_time, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_date_and_time_assignment); - config_control_designe_date_and_time_assignment->AddExplicitAttr (a_388assigned_date_and_time); - a_389role = - new AttrDescriptor("role",config_control_designe_date_time_role, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_date_and_time_assignment); - config_control_designe_date_and_time_assignment->AddExplicitAttr (a_389role); - reg.AddEntity (*config_control_designe_date_and_time_assignment); -///////// END_ENTITY date_and_time_assignment - -///////// ENTITY parametric_representation_context - - config_control_designe_parametric_representation_context->AddSupertype(config_control_designe_representation_context); - config_control_designe_representation_context->AddSubtype(config_control_designe_parametric_representation_context); - reg.AddEntity (*config_control_designe_parametric_representation_context); -///////// END_ENTITY parametric_representation_context - -///////// ENTITY product_concept_context - - config_control_designe_product_concept_context->AddSupertype(config_control_designe_application_context_element); - config_control_designe_application_context_element->AddSubtype(config_control_designe_product_concept_context); - a_390market_segment_type = - new AttrDescriptor("market_segment_type",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_product_concept_context); - config_control_designe_product_concept_context->AddExplicitAttr (a_390market_segment_type); - reg.AddEntity (*config_control_designe_product_concept_context); -///////// END_ENTITY product_concept_context - -///////// ENTITY cartesian_transformation_operator_2d - - config_control_designe_cartesian_transformation_operator_2d->AddSupertype(config_control_designe_cartesian_transformation_operator); - config_control_designe_cartesian_transformation_operator->AddSubtype(config_control_designe_cartesian_transformation_operator_2d); - ListTypeDescriptor * t_69 = new ListTypeDescriptor; - t_69->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_69->Bound1(2); - t_69->Bound2(2); - t_69->FundamentalType(LIST_TYPE); - t_69->Description("LIST [2:2] OF direction"); - t_69->OriginatingSchema(s_config_control_design); - t_69->ReferentType(config_control_designe_direction); - a_391Du = - new Derived_attribute("u",t_69,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_cartesian_transformation_operator_2d); - config_control_designe_cartesian_transformation_operator_2d->AddExplicitAttr (a_391Du); - a_391Du->initializer_("base_axis(2,SELF\\cartesian_transformation_operator.axis1,SELF\\\n cartesian_transformation_operator.axis2,?)"); - reg.AddEntity (*config_control_designe_cartesian_transformation_operator_2d); -///////// END_ENTITY cartesian_transformation_operator_2d - -///////// ENTITY surface_patch - - a_392parent_surface = - new AttrDescriptor("parent_surface",config_control_designe_bounded_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_patch); - config_control_designe_surface_patch->AddExplicitAttr (a_392parent_surface); - a_393u_transition = - new AttrDescriptor("u_transition",config_control_designt_transition_code, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_patch); - config_control_designe_surface_patch->AddExplicitAttr (a_393u_transition); - a_394v_transition = - new AttrDescriptor("v_transition",config_control_designt_transition_code, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_patch); - config_control_designe_surface_patch->AddExplicitAttr (a_394v_transition); - a_395u_sense = - new AttrDescriptor("u_sense",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_patch); - config_control_designe_surface_patch->AddExplicitAttr (a_395u_sense); - a_396v_sense = - new AttrDescriptor("v_sense",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_patch); - config_control_designe_surface_patch->AddExplicitAttr (a_396v_sense); - BagTypeDescriptor * t_70 = new BagTypeDescriptor; - t_70->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_70->Bound1(1); - t_70->Bound2(2147483647); - t_70->FundamentalType(BAG_TYPE); - t_70->Description("BAG [1:?] OF rectangular_composite_surface"); - t_70->OriginatingSchema(s_config_control_design); - t_70->ReferentType(config_control_designe_rectangular_composite_surface); - a_397Iusing_surfaces = - new Inverse_attribute("using_surfaces",t_70,SCLLOG(LFalse),SCLLOG(LFalse), - *config_control_designe_surface_patch); - config_control_designe_surface_patch->AddInverseAttr (a_397Iusing_surfaces); - a_397Iusing_surfaces->inverted_attr_id_("segments"); - a_397Iusing_surfaces->inverted_entity_id_("rectangular_composite_surface"); -// inverse entity 3 rectangular_composite_surface - reg.AddEntity (*config_control_designe_surface_patch); -///////// END_ENTITY surface_patch - -///////// ENTITY length_unit - - config_control_designe_length_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_length_unit); - reg.AddEntity (*config_control_designe_length_unit); -///////// END_ENTITY length_unit - -///////// ENTITY shape_aspect - - a_398name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shape_aspect); - config_control_designe_shape_aspect->AddExplicitAttr (a_398name); - a_399description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shape_aspect); - config_control_designe_shape_aspect->AddExplicitAttr (a_399description); - a_400of_shape = - new AttrDescriptor("of_shape",config_control_designe_product_definition_shape, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shape_aspect); - config_control_designe_shape_aspect->AddExplicitAttr (a_400of_shape); - a_401product_definitional = - new AttrDescriptor("product_definitional",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_shape_aspect); - config_control_designe_shape_aspect->AddExplicitAttr (a_401product_definitional); - reg.AddEntity (*config_control_designe_shape_aspect); -///////// END_ENTITY shape_aspect - -///////// ENTITY volume_measure_with_unit - - config_control_designe_volume_measure_with_unit->AddSupertype(config_control_designe_measure_with_unit); - config_control_designe_measure_with_unit->AddSubtype(config_control_designe_volume_measure_with_unit); - reg.AddEntity (*config_control_designe_volume_measure_with_unit); -///////// END_ENTITY volume_measure_with_unit - -///////// ENTITY advanced_face - - config_control_designe_advanced_face->AddSupertype(config_control_designe_face_surface); - config_control_designe_face_surface->AddSubtype(config_control_designe_advanced_face); - reg.AddEntity (*config_control_designe_advanced_face); -///////// END_ENTITY advanced_face - -///////// ENTITY security_classification_level - - a_402name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_security_classification_level); - config_control_designe_security_classification_level->AddExplicitAttr (a_402name); - reg.AddEntity (*config_control_designe_security_classification_level); -///////// END_ENTITY security_classification_level - -///////// ENTITY approval_relationship - - a_403name = - new AttrDescriptor("name",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_relationship); - config_control_designe_approval_relationship->AddExplicitAttr (a_403name); - a_404description = - new AttrDescriptor("description",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_relationship); - config_control_designe_approval_relationship->AddExplicitAttr (a_404description); - a_405relating_approval = - new AttrDescriptor("relating_approval",config_control_designe_approval, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_relationship); - config_control_designe_approval_relationship->AddExplicitAttr (a_405relating_approval); - a_406related_approval = - new AttrDescriptor("related_approval",config_control_designe_approval, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_relationship); - config_control_designe_approval_relationship->AddExplicitAttr (a_406related_approval); - reg.AddEntity (*config_control_designe_approval_relationship); -///////// END_ENTITY approval_relationship - -///////// ENTITY polyline - - config_control_designe_polyline->AddSupertype(config_control_designe_bounded_curve); - config_control_designe_bounded_curve->AddSubtype(config_control_designe_polyline); - ListTypeDescriptor * t_71 = new ListTypeDescriptor; - t_71->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_71->Bound1(2); - t_71->Bound2(2147483647); - t_71->FundamentalType(LIST_TYPE); - t_71->Description("LIST [2:?] OF cartesian_point"); - t_71->OriginatingSchema(s_config_control_design); - t_71->ReferentType(config_control_designe_cartesian_point); - a_407points = - new AttrDescriptor("points",t_71,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_polyline); - config_control_designe_polyline->AddExplicitAttr (a_407points); - reg.AddEntity (*config_control_designe_polyline); -///////// END_ENTITY polyline - -///////// ENTITY approval_person_organization - - a_408person_organization = - new AttrDescriptor("person_organization",config_control_designt_person_organization_select, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_person_organization); - config_control_designe_approval_person_organization->AddExplicitAttr (a_408person_organization); - a_409authorized_approval = - new AttrDescriptor("authorized_approval",config_control_designe_approval, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_person_organization); - config_control_designe_approval_person_organization->AddExplicitAttr (a_409authorized_approval); - a_410role = - new AttrDescriptor("role",config_control_designe_approval_role, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_approval_person_organization); - config_control_designe_approval_person_organization->AddExplicitAttr (a_410role); - reg.AddEntity (*config_control_designe_approval_person_organization); -///////// END_ENTITY approval_person_organization - -///////// ENTITY surface_replica - - config_control_designe_surface_replica->AddSupertype(config_control_designe_surface); - config_control_designe_surface->AddSubtype(config_control_designe_surface_replica); - a_411parent_surface = - new AttrDescriptor("parent_surface",config_control_designe_surface, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_replica); - config_control_designe_surface_replica->AddExplicitAttr (a_411parent_surface); - a_412transformation = - new AttrDescriptor("transformation",config_control_designe_cartesian_transformation_operator_3d, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_surface_replica); - config_control_designe_surface_replica->AddExplicitAttr (a_412transformation); - reg.AddEntity (*config_control_designe_surface_replica); -///////// END_ENTITY surface_replica - -///////// ENTITY security_classification_assignment - - config_control_designe_security_classification_assignment->AddSupertype_Stmt("ABSTRACT SUPERTYPE"); - a_413assigned_security_classification = - new AttrDescriptor("assigned_security_classification",config_control_designe_security_classification, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_security_classification_assignment); - config_control_designe_security_classification_assignment->AddExplicitAttr (a_413assigned_security_classification); - reg.AddEntity (*config_control_designe_security_classification_assignment); -///////// END_ENTITY security_classification_assignment - -///////// ENTITY cc_design_security_classification - - config_control_designe_cc_design_security_classification->AddSupertype(config_control_designe_security_classification_assignment); - config_control_designe_security_classification_assignment->AddSubtype(config_control_designe_cc_design_security_classification); - SetTypeDescriptor * t_72 = new SetTypeDescriptor; - t_72->AssignAggrCreator((AggregateCreator) create_SdaiClassified_items); // Creator function - t_72->Bound1(1); - t_72->Bound2(2147483647); - t_72->FundamentalType(SET_TYPE); - t_72->Description("SET [1:?] OF classified_item"); - t_72->OriginatingSchema(s_config_control_design); - t_72->ReferentType(config_control_designt_classified_item); - a_414items = - new AttrDescriptor("items",t_72,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cc_design_security_classification); - config_control_designe_cc_design_security_classification->AddExplicitAttr (a_414items); - reg.AddEntity (*config_control_designe_cc_design_security_classification); -///////// END_ENTITY cc_design_security_classification - -///////// ENTITY faceted_brep_shape_representation - - config_control_designe_faceted_brep_shape_representation->AddSupertype(config_control_designe_shape_representation); - config_control_designe_shape_representation->AddSubtype(config_control_designe_faceted_brep_shape_representation); - reg.AddEntity (*config_control_designe_faceted_brep_shape_representation); -///////// END_ENTITY faceted_brep_shape_representation - -///////// ENTITY document_usage_constraint - - a_415source = - new AttrDescriptor("source",config_control_designe_document, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_usage_constraint); - config_control_designe_document_usage_constraint->AddExplicitAttr (a_415source); - a_416subject_element = - new AttrDescriptor("subject_element",config_control_designt_label, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_usage_constraint); - config_control_designe_document_usage_constraint->AddExplicitAttr (a_416subject_element); - a_417subject_element_value = - new AttrDescriptor("subject_element_value",config_control_designt_text, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_document_usage_constraint); - config_control_designe_document_usage_constraint->AddExplicitAttr (a_417subject_element_value); - reg.AddEntity (*config_control_designe_document_usage_constraint); -///////// END_ENTITY document_usage_constraint - -///////// ENTITY vertex_point - - config_control_designe_vertex_point->AddSupertype(config_control_designe_vertex); - config_control_designe_vertex->AddSubtype(config_control_designe_vertex_point); - config_control_designe_vertex_point->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_vertex_point); - a_418vertex_geometry = - new AttrDescriptor("vertex_geometry",config_control_designe_point, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_vertex_point); - config_control_designe_vertex_point->AddExplicitAttr (a_418vertex_geometry); - reg.AddEntity (*config_control_designe_vertex_point); -///////// END_ENTITY vertex_point - -///////// ENTITY cc_design_date_and_time_assignment - - config_control_designe_cc_design_date_and_time_assignment->AddSupertype(config_control_designe_date_and_time_assignment); - config_control_designe_date_and_time_assignment->AddSubtype(config_control_designe_cc_design_date_and_time_assignment); - SetTypeDescriptor * t_73 = new SetTypeDescriptor; - t_73->AssignAggrCreator((AggregateCreator) create_SdaiDate_time_items); // Creator function - t_73->Bound1(1); - t_73->Bound2(2147483647); - t_73->FundamentalType(SET_TYPE); - t_73->Description("SET [1:?] OF date_time_item"); - t_73->OriginatingSchema(s_config_control_design); - t_73->ReferentType(config_control_designt_date_time_item); - a_419items = - new AttrDescriptor("items",t_73,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cc_design_date_and_time_assignment); - config_control_designe_cc_design_date_and_time_assignment->AddExplicitAttr (a_419items); - reg.AddEntity (*config_control_designe_cc_design_date_and_time_assignment); -///////// END_ENTITY cc_design_date_and_time_assignment - -///////// ENTITY oriented_closed_shell - - config_control_designe_oriented_closed_shell->AddSupertype(config_control_designe_closed_shell); - config_control_designe_closed_shell->AddSubtype(config_control_designe_oriented_closed_shell); - a_420closed_shell_element = - new AttrDescriptor("closed_shell_element",config_control_designe_closed_shell, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_closed_shell); - config_control_designe_oriented_closed_shell->AddExplicitAttr (a_420closed_shell_element); - a_421orientation = - new AttrDescriptor("orientation",t_sdaiBOOLEAN, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_oriented_closed_shell); - config_control_designe_oriented_closed_shell->AddExplicitAttr (a_421orientation); - SetTypeDescriptor * t_74 = new SetTypeDescriptor; - t_74->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_74->Bound1(1); - t_74->Bound2(2147483647); - t_74->FundamentalType(SET_TYPE); - t_74->Description("SET [1:?] OF face"); - t_74->OriginatingSchema(s_config_control_design); - t_74->ReferentType(config_control_designe_face); - a_422Dconnected_face_set_cfs_faces = - new Derived_attribute("connected_face_set.cfs_faces",t_74,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Deriving, - *config_control_designe_oriented_closed_shell); - config_control_designe_oriented_closed_shell->AddExplicitAttr (a_422Dconnected_face_set_cfs_faces); - a_422Dconnected_face_set_cfs_faces->initializer_("conditional_reverse(SELF.orientation,SELF.closed_shell_element.cfs_faces)"); - reg.AddEntity (*config_control_designe_oriented_closed_shell); -///////// END_ENTITY oriented_closed_shell - -///////// ENTITY person_and_organization - - a_423the_person = - new AttrDescriptor("the_person",config_control_designe_person, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person_and_organization); - config_control_designe_person_and_organization->AddExplicitAttr (a_423the_person); - a_424the_organization = - new AttrDescriptor("the_organization",config_control_designe_organization, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_person_and_organization); - config_control_designe_person_and_organization->AddExplicitAttr (a_424the_organization); - reg.AddEntity (*config_control_designe_person_and_organization); -///////// END_ENTITY person_and_organization - -///////// ENTITY cylindrical_surface - - config_control_designe_cylindrical_surface->AddSupertype(config_control_designe_elementary_surface); - config_control_designe_elementary_surface->AddSubtype(config_control_designe_cylindrical_surface); - a_425radius = - new AttrDescriptor("radius",config_control_designt_positive_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_cylindrical_surface); - config_control_designe_cylindrical_surface->AddExplicitAttr (a_425radius); - reg.AddEntity (*config_control_designe_cylindrical_surface); -///////// END_ENTITY cylindrical_surface - -///////// ENTITY local_time - - a_426hour_component = - new AttrDescriptor("hour_component",config_control_designt_hour_in_day, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_local_time); - config_control_designe_local_time->AddExplicitAttr (a_426hour_component); - a_427minute_component = - new AttrDescriptor("minute_component",config_control_designt_minute_in_hour, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_local_time); - config_control_designe_local_time->AddExplicitAttr (a_427minute_component); - a_428second_component = - new AttrDescriptor("second_component",config_control_designt_second_in_minute, - SCLLOG(LTrue),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_local_time); - config_control_designe_local_time->AddExplicitAttr (a_428second_component); - a_429zone = - new AttrDescriptor("zone",config_control_designe_coordinated_universal_time_offset, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_local_time); - config_control_designe_local_time->AddExplicitAttr (a_429zone); - reg.AddEntity (*config_control_designe_local_time); -///////// END_ENTITY local_time - -///////// ENTITY mass_unit - - config_control_designe_mass_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_mass_unit); - reg.AddEntity (*config_control_designe_mass_unit); -///////// END_ENTITY mass_unit - -///////// ENTITY vertex_shell - - config_control_designe_vertex_shell->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_vertex_shell); - a_430vertex_shell_extent = - new AttrDescriptor("vertex_shell_extent",config_control_designe_vertex_loop, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_vertex_shell); - config_control_designe_vertex_shell->AddExplicitAttr (a_430vertex_shell_extent); - reg.AddEntity (*config_control_designe_vertex_shell); -///////// END_ENTITY vertex_shell - -///////// ENTITY poly_loop - - config_control_designe_poly_loop->AddSupertype(config_control_designe_loop); - config_control_designe_loop->AddSubtype(config_control_designe_poly_loop); - config_control_designe_poly_loop->AddSupertype(config_control_designe_geometric_representation_item); - config_control_designe_geometric_representation_item->AddSubtype(config_control_designe_poly_loop); - ListTypeDescriptor * t_75 = new ListTypeDescriptor; - t_75->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_75->Bound1(3); - t_75->Bound2(2147483647); - t_75->UniqueElements(SCLLOG(LTrue)); - t_75->FundamentalType(LIST_TYPE); - t_75->Description("LIST [3:?] OF UNIQUE cartesian_point"); - t_75->OriginatingSchema(s_config_control_design); - t_75->ReferentType(config_control_designe_cartesian_point); - a_431polygon = - new AttrDescriptor("polygon",t_75,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_poly_loop); - config_control_designe_poly_loop->AddExplicitAttr (a_431polygon); - reg.AddEntity (*config_control_designe_poly_loop); -///////// END_ENTITY poly_loop - -///////// ENTITY wire_shell - - config_control_designe_wire_shell->AddSupertype(config_control_designe_topological_representation_item); - config_control_designe_topological_representation_item->AddSubtype(config_control_designe_wire_shell); - SetTypeDescriptor * t_76 = new SetTypeDescriptor; - t_76->AssignAggrCreator((AggregateCreator) create_EntityAggregate); // Creator function - t_76->Bound1(1); - t_76->Bound2(2147483647); - t_76->FundamentalType(SET_TYPE); - t_76->Description("SET [1:?] OF loop"); - t_76->OriginatingSchema(s_config_control_design); - t_76->ReferentType(config_control_designe_loop); - a_432wire_shell_extent = - new AttrDescriptor("wire_shell_extent",t_76,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_wire_shell); - config_control_designe_wire_shell->AddExplicitAttr (a_432wire_shell_extent); - reg.AddEntity (*config_control_designe_wire_shell); -///////// END_ENTITY wire_shell - -///////// ENTITY area_unit - - config_control_designe_area_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_area_unit); - reg.AddEntity (*config_control_designe_area_unit); -///////// END_ENTITY area_unit - -///////// ENTITY mapped_item - - config_control_designe_mapped_item->AddSupertype(config_control_designe_representation_item); - config_control_designe_representation_item->AddSubtype(config_control_designe_mapped_item); - a_433mapping_source = - new AttrDescriptor("mapping_source",config_control_designe_representation_map, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_mapped_item); - config_control_designe_mapped_item->AddExplicitAttr (a_433mapping_source); - a_434mapping_target = - new AttrDescriptor("mapping_target",config_control_designe_representation_item, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_mapped_item); - config_control_designe_mapped_item->AddExplicitAttr (a_434mapping_target); - reg.AddEntity (*config_control_designe_mapped_item); -///////// END_ENTITY mapped_item - -///////// ENTITY offset_curve_2d - - config_control_designe_offset_curve_2d->AddSupertype(config_control_designe_curve); - config_control_designe_curve->AddSubtype(config_control_designe_offset_curve_2d); - a_435basis_curve = - new AttrDescriptor("basis_curve",config_control_designe_curve, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_curve_2d); - config_control_designe_offset_curve_2d->AddExplicitAttr (a_435basis_curve); - a_436distance = - new AttrDescriptor("distance",config_control_designt_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_curve_2d); - config_control_designe_offset_curve_2d->AddExplicitAttr (a_436distance); - a_437self_intersect = - new AttrDescriptor("self_intersect",t_sdaiLOGICAL, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_offset_curve_2d); - config_control_designe_offset_curve_2d->AddExplicitAttr (a_437self_intersect); - reg.AddEntity (*config_control_designe_offset_curve_2d); -///////// END_ENTITY offset_curve_2d - -///////// ENTITY shape_definition_representation - - config_control_designe_shape_definition_representation->AddSupertype(config_control_designe_property_definition_representation); - config_control_designe_property_definition_representation->AddSubtype(config_control_designe_shape_definition_representation); - reg.AddEntity (*config_control_designe_shape_definition_representation); -///////// END_ENTITY shape_definition_representation - -///////// ENTITY volume_unit - - config_control_designe_volume_unit->AddSupertype(config_control_designe_named_unit); - config_control_designe_named_unit->AddSubtype(config_control_designe_volume_unit); - reg.AddEntity (*config_control_designe_volume_unit); -///////// END_ENTITY volume_unit - -///////// ENTITY conical_surface - - config_control_designe_conical_surface->AddSupertype(config_control_designe_elementary_surface); - config_control_designe_elementary_surface->AddSubtype(config_control_designe_conical_surface); - a_438radius = - new AttrDescriptor("radius",config_control_designt_length_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_conical_surface); - config_control_designe_conical_surface->AddExplicitAttr (a_438radius); - a_439semi_angle = - new AttrDescriptor("semi_angle",config_control_designt_plane_angle_measure, - SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_conical_surface); - config_control_designe_conical_surface->AddExplicitAttr (a_439semi_angle); - reg.AddEntity (*config_control_designe_conical_surface); -///////// END_ENTITY conical_surface - -///////// ENTITY global_unit_assigned_context - - config_control_designe_global_unit_assigned_context->AddSupertype(config_control_designe_representation_context); - config_control_designe_representation_context->AddSubtype(config_control_designe_global_unit_assigned_context); - SetTypeDescriptor * t_77 = new SetTypeDescriptor; - t_77->AssignAggrCreator((AggregateCreator) create_SdaiUnits); // Creator function - t_77->Bound1(1); - t_77->Bound2(2147483647); - t_77->FundamentalType(SET_TYPE); - t_77->Description("SET [1:?] OF unit"); - t_77->OriginatingSchema(s_config_control_design); - t_77->ReferentType(config_control_designt_unit); - a_440units = - new AttrDescriptor("units",t_77,SCLLOG(LFalse),SCLLOG(LFalse), AttrType_Explicit, - *config_control_designe_global_unit_assigned_context); - config_control_designe_global_unit_assigned_context->AddExplicitAttr (a_440units); - reg.AddEntity (*config_control_designe_global_unit_assigned_context); -///////// END_ENTITY global_unit_assigned_context - -} -#endif diff --git a/source/geometry/solids/STEP/src/SingleLinkList.cc b/source/geometry/solids/STEP/src/SingleLinkList.cc deleted file mode 100644 index a0d390bbcf..0000000000 --- a/source/geometry/solids/STEP/src/SingleLinkList.cc +++ /dev/null @@ -1,81 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/SingleLinkList.cc -* April 1997 -* David Sauder -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: SingleLinkList.cc,v 1.3 2000/01/21 13:43:05 gcosmo Exp $ */ - -#include - -void -SingleLinkList::DeleteFollowingNodes (SingleLinkNode *item) -{ - if (head) { - SingleLinkNode * trailer = 0; - SingleLinkNode * leader = head; - while (leader) { - if (leader == item) { - while(leader) - { - if(trailer) trailer->next = leader->next; - else if(leader == head) - { - head = leader->next; - trailer = head; - } - if(leader == tail) tail = trailer; - delete leader; - leader = trailer->next; - } - } - else { - if(trailer) - trailer = trailer->NextNode(); - else trailer = leader; - leader = leader->NextNode(); - } - } - } -} - -void -SingleLinkList::AppendNode (SingleLinkNode * item) -{ - if (head) { - tail -> next = item; - tail = item; - } - else head = tail = item; - item->owner = this; -} - -void -SingleLinkList::DeleteNode (SingleLinkNode * item) -{ - if (head) { - SingleLinkNode * trailer = 0; - SingleLinkNode * leader = head; - while (leader) { - if (leader == item) { - if(trailer) trailer->next = leader->next; - leader = leader->next; - if(item == head) head = item->next; - if(item == tail) tail = trailer; - delete item; - } - else { - if(trailer) - trailer = trailer->NextNode(); - else trailer = leader; - leader = leader->NextNode(); - } - } - } -} diff --git a/source/geometry/solids/STEP/src/SingleLinkList_inline.cc b/source/geometry/solids/STEP/src/SingleLinkList_inline.cc deleted file mode 100644 index fba5bdb262..0000000000 --- a/source/geometry/solids/STEP/src/SingleLinkList_inline.cc +++ /dev/null @@ -1,73 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/SingleLinkList.inline.cc -* April 1997 -* David Sauder -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: SingleLinkList_inline.cc,v 1.5 2000/01/21 13:43:06 gcosmo Exp $ */ - -#include - -#include "G4ios.hh" - -SingleLinkNode * -SingleLinkNode::NextNode () const -{ - return next; -} - -SingleLinkList::SingleLinkList () - : head (0), tail (0) -{ -} - -SingleLinkList::~SingleLinkList () -{ - Empty (); -} - -void -SingleLinkList::Empty () -{ - SingleLinkNode * tmp = head; - while (tmp) - { - tmp = head -> NextNode (); - delete head; - head = tmp; - } -} - -SingleLinkNode * -SingleLinkList::NewNode () -{ - // defined in subtypes - G4cerr << "\n\n******BUG****** a virtually defined function should \n" - << "be called for SingleLinkList::NewNode()\n\n"; - return new SingleLinkNode(); -} - -SingleLinkNode * -SingleLinkList::GetHead () const -{ - return (head); -} - -int SingleLinkList::EntryCount() const -{ - int entryCount = 0; - SingleLinkNode *entryPtr = head; - - while( entryPtr != 0 ) - { - entryPtr = entryPtr->NextNode(); - entryCount++; - } - return entryCount; -} diff --git a/source/geometry/solids/STEP/src/Str.cc b/source/geometry/solids/STEP/src/Str.cc deleted file mode 100644 index 1d990db904..0000000000 --- a/source/geometry/solids/STEP/src/Str.cc +++ /dev/null @@ -1,313 +0,0 @@ - -/* -* NIST Utils Class Library -* clutils/Str.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: Str.cc,v 1.5 2003/06/06 17:07:35 gcosmo Exp $ */ - -#include - -/****************************************************************** - ** Procedure: string functions - ** Description: These functions take a character or a string and return - ** a temporary copy of the string with the function applied to it. - ** Parameters: - ** Returns: temporary copy of characters - ** Side Effects: - ** Status: complete - ******************************************************************/ - -char -ToLower (const char c) -{ - if (isupper (c)) return (tolower (c)); - else return (c); - -} - -char -ToUpper (const char c) -{ - if (islower (c)) return (toupper (c)); - else return (c); -} - -char * -StrToLower (const char *strOld, char *strNew) - /* - * Place in strNew a lowercase version of strOld. - */ -{ - int i = 0; - - while ( strOld[i] != '\0' ) { - strNew[i] = ToLower( strOld[i] ); - i++; - } - strNew[i] = '\0'; - return strNew; -} - -const char * -StrToLower (const char * word, SCLstring &s) -{ - char newword [BUFSIZ]; - int i =0; -// char ToLower (char c); - - while (word [i] != '\0') { - newword [i] = ToLower (word [i]); - ++i; - } - newword [i] = '\0'; - s = newword; - return s.chars(); -} - -const char * -StrToUpper (const char * word, SCLstring &s) -{ - char newword [BUFSIZ]; - int i =0; -// char ToUpper (char c); - - while (word [i] != '\0') { - newword [i] = ToUpper (word [i]); - ++i; - - } - newword [i] = '\0'; - s = newword; - return s.chars(); -} - -const char * -StrToConstant (const char * word, SCLstring &s) -{ - char newword [BUFSIZ]; - int i =0; -// char ToUpper (char c); - - while (word [i] != '\0') { - if (word [i] == '/' || word [i] == '.') newword [i] = '_'; - else newword [i] = ToUpper (word [i]); - ++i; - - } - newword [i] = '\0'; - s = newword; - return s.chars(); -} - -/****************************************************************** - ** Procedure: PrettyName (char * oldname) - ** Parameters: oldname - ** Returns: a new capitalized name - ** Description: creates a new name with first character's in caps - ** Side Effects: PrettyNewName allocates memory for the new name - PrettyTmpName returns new name in a static buffer - ** Status: OK 7-Oct-1992 kcm - ******************************************************************/ -const char * -PrettyTmpName (const char * oldname) -{ - int i= 0; - static char newname [BUFSIZ]; - newname [0] = '\0'; - while (( oldname [i] != '\0') && (i < BUFSIZ)) { - newname [i] = ToLower (oldname [i]); - if (oldname [i] == '_') /* character is '_' */ - { - ++i; - newname [i] = ToUpper (oldname [i]); - } - if (oldname [i] != '\0') ++i; - } - - newname [0] = ToUpper (oldname [0]); - newname [i] = '\0'; - return newname; -} - -char * -PrettyNewName (const char * oldname) -{ - - char * name = new char [strlen (oldname) +1]; - strcpy (name, PrettyTmpName (oldname)); - return name; -} - -int -StrCmpIns( const char *strA, const char *strB ) - /* - * An insensitive string compare function. Used most often to compare - * names of objects where case is not known and not significant. - * - * NOTE - cygnus does not define strcmpi/stricmp. I'm sure there's a nifty - * way to add preprocessor commands to check if it exists, and if so to - * use it, but I didn't bother. - */ -{ - char str1[BUFSIZ], str2[BUFSIZ]; - - strncpy( str1, PrettyTmpName( strA ), BUFSIZ-1 ); - strncpy( str2, PrettyTmpName( strB ), BUFSIZ-1 ); - return ( strcmp( str1, str2 ) ); -} - -// This function is used to check an input stream following a read. It writes -// error messages in the 'ErrorDescriptor &err' argument as appropriate. -// 'const char *tokenList' argument contains a string made up of delimiters -// that are used to move the file pointer in the input stream to the end of -// the value you are reading (i.e. the ending marked by the presence of the -// delimiter). The file pointer is moved just prior to the delimiter. If the -// tokenList argument is a null pointer then this function expects to find EOF. -// -// If input is being read from a stream then a tokenList should be provided so -// this function can push the file pointer up to but not past the delimiter -// (i.e. not removing the delimiter from the input stream). If you have a -// string containing a single value and you expect the whole string to contain -// a valid value, you can change the string to an std::istrstream, read the value -// then send the std::istrstream to this function with tokenList set to null -// and this function will set an error for you if any input remains following -// the value. - -// If the input stream can be readable again then -// - any error states set for the the stream are cleared. -// - white space skipped in the input stream -// - if EOF is encountered it returns -// otherwise it peeks at the next character -// - if the tokenList argument exists (i.e. is not null) -// then if looks to see if the char peeked at is in the tokenList string -// if it is then no error is set in the ErrorDescriptor -// if the char peeked at is not in the tokenList string that implies -// that there is garbage following the value that was successfully -// or unsuccessfully read. The garbage is read until EOF or a -// delimiter in the tokenList is found. -// - EOF is found you did not recover -> SEVERITY_INPUT_ERROR -// - delimiter found you recovered successfully => SEVERITY_WARNING -// - if tokenList does not exist then it expects to find EOF, if it does -// not then it is an error but the bad chars are not read since you have -// no way to know when to stop. - -Severity -CheckRemainingInput(std::istream &in, ErrorDescriptor *err, - const char *typeName, // used in error message - const char *tokenList) // e.g. ",)" -{ - SCLstring skipBuf; - char name[64]; - name[0] = 0; - - // 1. CHECK to see if there is invalid input following what you read. - // good or fail means you can still read from the input stream. - - if( in.good() || in.fail() ) - // fail means that the input did not match the expected input. - { // check for bad input following what you read (or tried to read) but - // preceding a delimiter if you are expecting one. - - in.clear(); // clear the istreams error - in >> std::ws; // skip whitespace - if(in.eof()) // no input following the desired input (or following the - { // missing desired input) - return err->severity(); - } - char c; - c = in.peek(); - - if( tokenList ) // are expecting a delim so read till you find it - { - - // 3. FIND a delimiter - - if( strchr(tokenList, c) ) - { // next char peeked at was delim expected => success - return err->severity(); - } - else // next character was not a delim and thus is garbage - { // read bad input until you find the delim - in.get(c); - while(in && !strchr(tokenList, c) ) - { // this could chew up the remainder of the input unless you - // give it the delim to end an entity value and it knows - // about strings - skipBuf.Append(c); - in.get(c); - } - // ENHANCEMENT may want to add the bad data to the err msg. - - if(strchr(tokenList, c)) - { // congratulations you recovered - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(name, - "\tFound invalid %s value...\n", - typeName); - err->AppendToUserMsg(name); - err->AppendToDetailMsg(name); - err->AppendToDetailMsg( - "\tdata lost looking for end of attribute: "); - err->AppendToDetailMsg( skipBuf.chars() ); - err->AppendToDetailMsg( "\n" ); - in.putback(c); - // invalid input - // (though a valid value may have been assigned) - return err->severity(); - } - else - { // could not recover (of course) - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - sprintf(name, - "Unable to recover from input error while reading %s %s", - typeName, "value.\n"); - err->AppendToUserMsg(name); - err->AppendToDetailMsg(name); - // invalid input - // (though a valid value may have been assigned) - return err->severity(); - } - } - } - else if(in.good()) // found a char => error - // i.e. skipping whitespace did not cause EOF so must have hit a char - { // remember we are not expecting more input since no tokenList - - // or 3. since not expecting a delimiter and there is input there - // is an error - - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(name, "Invalid %s value.\n", typeName); - err->AppendToUserMsg(name); - err->AppendToDetailMsg(name); - // invalid input - // (though a valid value may have been assigned) - return err->severity(); - } - } - else if (in.eof()) - { - // hit EOF when reading for a value - // don\'t set any error - return err->severity(); - } - else - { // badbit set (in.bad()) means there was a problem when reading std::istream - // this is bad news... it means the input stream is hopelessly messed up - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - sprintf(name, "Invalid %s value.\n", typeName); - err->AppendToUserMsg(name); - err->AppendToDetailMsg(name); - // invalid input - // (though a valid value may have been assigned) - return err->severity(); - } - return err->severity(); -} diff --git a/source/geometry/solids/STEP/src/cmdmgr.cc b/source/geometry/solids/STEP/src/cmdmgr.cc deleted file mode 100644 index 8e32339a96..0000000000 --- a/source/geometry/solids/STEP/src/cmdmgr.cc +++ /dev/null @@ -1,230 +0,0 @@ - -/* -* NIST STEP Editor Class Library -* cleditor/cmdmgr.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: cmdmgr.cc,v 1.3 2000/01/21 13:43:06 gcosmo Exp $ */ - -#include - - -ReplicateLinkNode *ReplicateList::FindNode(MgrNode *mn) -{ - ReplicateLinkNode *rln = (ReplicateLinkNode *)GetHead(); - int numEntries = EntryCount(); - while(numEntries--) - { - if(rln->ReplicateNode() == mn) - { - return rln; - } - rln = (ReplicateLinkNode *)rln->NextNode(); - } - return 0; -} - -BOOLEAN ReplicateList::IsOnList(MgrNode *mn) -{ - return (FindNode(mn) != 0); -/* - ReplicateLinkNode *rln = (ReplicateLinkNode *)GetHead(); - int numEntries = EntryCount(); - int found = 0; - while(numEntries--) - { - if(rln->ReplicateNode() == mn) - { - found = 1; - numEntries = 0; - } - rln = (ReplicateLinkNode *)rln->NextNode(); - } - return found; -*/ -} - -/////////////////////////////////////////////////////////////////////////////// -// returns true if it could delete the node -/////////////////////////////////////////////////////////////////////////////// -BOOLEAN ReplicateList::Remove(ReplicateLinkNode *rln) -{ - ReplicateLinkNode *rnFollow = (ReplicateLinkNode *)GetHead(); - if(!rnFollow || !rln) - return 0; - else - { - if(rnFollow == rln) - { - head = rln->NextNode(); - delete rln; - return 1; - } - else - { - ReplicateLinkNode *rn = (ReplicateLinkNode *)rnFollow->NextNode(); - while(rn) - { - if(rn == rln) - { - rnFollow->next = (SingleLinkNode *)rln->NextNode(); - delete rln; - return 1; - } - rnFollow = rn; - rn = (ReplicateLinkNode *)rn->NextNode(); - } // end while(rn) - } // end else - } // end else - return 0; -} - -BOOLEAN ReplicateList::Remove(MgrNode *rn) -{ - return Remove(FindNode(rn)); -} - -CmdMgr::CmdMgr() -{ - completeList = new MgrNodeList(completeSE); - incompleteList = new MgrNodeList(incompleteSE); -// newList = new MgrNodeList(newSE); - deleteList = new MgrNodeList(deleteSE); - - mappedWriteList = new DisplayNodeList(mappedWrite); - mappedViewList = new DisplayNodeList(mappedView); - closeList = new DisplayNodeList(notMapped); - replicateList = new ReplicateList(); -} - -int CmdMgr::ReplicateCmdList(MgrNode *mn) -{ - if(!(replicateList->IsOnList(mn))) - { - replicateList->AddNode(mn); - } - return 1; -} - -/* -void CmdMgr::ModifyCmdList(MgrNode *mn) -{ - mn->ChangeList(mappedWriteList); -} - -void CmdMgr::ViewCmdList(MgrNode *mn) -{ - mn->ChangeList(mappedViewList); -} - -void CmdMgr::CloseCmdList(MgrNode *mn) -{ - mn->ChangeList(closeList); -} -*/ - -void CmdMgr::ClearInstances() -{ - completeList->ClearEntries(); - incompleteList->ClearEntries(); - cancelList->ClearEntries(); - deleteList->ClearEntries(); - replicateList->Empty(); - -// newList->ClearEntries(); -} - // searches current list for fileId -MgrNode *CmdMgr::StateFindFileId(stateEnum s, int fileId) -{ - switch(s){ - case completeSE: - return completeList->FindFileId(fileId); - case incompleteSE: - return incompleteList->FindFileId(fileId); - case deleteSE: - return deleteList->FindFileId(fileId); - case newSE: // there is no new list - case noStateSE: - default: - G4cout << "ERROR can't find the node containing fileid " << - fileId << " from this node\n"; - return 0; - } -} - -MgrNode *CmdMgr::GetHead(stateEnum listType) -{ - switch(listType) - { - case completeSE: // saved complete list - return (MgrNode *)completeList->GetHead(); - case incompleteSE: // saved incomplete list - return (MgrNode *)incompleteList->GetHead(); - case deleteSE: // delete list - return (MgrNode *)deleteList->GetHead(); - default: - return 0; - } -} - -DisplayNode *CmdMgr::GetHead(displayStateEnum listType) -{ - switch(listType) - { - case mappedWrite: - return (DisplayNode *)mappedWriteList->GetHead(); - - case mappedView: - return (DisplayNode *)mappedViewList->GetHead(); - - case notMapped: - return (DisplayNode *)closeList->GetHead(); - - case noMapState: - default: - return 0; - } -} - -void CmdMgr::ClearEntries(stateEnum listType) -{ - switch(listType) - { - case completeSE: // saved complete list - completeList->ClearEntries(); - break; - case incompleteSE: // saved incomplete list - incompleteList->ClearEntries(); - break; - case deleteSE: // delete list - deleteList->ClearEntries(); - break; - default: - break; - } -} - -void CmdMgr::ClearEntries(displayStateEnum listType) -{ - switch(listType) - { - case mappedWrite: - mappedWriteList->ClearEntries(); - break; - case mappedView: - mappedViewList->ClearEntries(); - break; - case notMapped: - closeList->ClearEntries(); - break; - case noMapState: - default: - break; - } -} diff --git a/source/geometry/solids/STEP/src/collect.cc b/source/geometry/solids/STEP/src/collect.cc deleted file mode 100644 index a9fd1b491b..0000000000 --- a/source/geometry/solids/STEP/src/collect.cc +++ /dev/null @@ -1,175 +0,0 @@ -/***************************************************************************** - * collect.cc * - * * - * Description: ComplexCollect is the container structure for all ofthe com- * - * plex entity information in a schema. It contains a list of * - * ComplexList structures each of which corresponds to one set * - * of subtype/supertype information about the schema. This file * - * contains many of the ComplexCollect member functions. * - * * - * Created by: David Rosenfeld * - * Date: 11/14/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -void ComplexCollect::insert( ComplexList *c ) - /* - * Inserts a new ComplexList to our list. The ComplexLists are ordered by - * supertype name. Increments count. - */ -{ - ComplexList *prev = NULL, *cl = clists; - - while ( cl && *cl < *c ) { - prev = cl; - cl = cl->next; - } - if ( prev == NULL ) { - // I.e., c belongs before the first cl so the above loop was never - // entered. (This may also be the case if there's nothing in the - // collect yet and cl also = NULL.) - clists = c; - c->next = cl; - } else { - prev->next = c; - c->next = cl; - } - count++; -} - -void ComplexCollect::remove( ComplexList *c ) - /* - * Removes the ComplexList whose supertype name = supername. "Removing" - * deletes the list and removes it from this, but does not delete its - * subtype structure. This is done when a subtype of other supertypes - * was temporarily stored in the Collect so that its supertypes would - * be able to find it, and now that all its supers have accessed it, we - * remove it from the Collect. - */ -{ - ComplexList *cl = clists, *prev = NULL; - - while ( cl && *cl < *c ) { - prev = cl; - cl = cl->next; - } - if ( cl == NULL || cl != c ) { - // Just in case c isn't in the list. - return; - } - if ( prev == NULL ) { - // c is the first thing in clists (so prev while loop never entered) - clists = c->next; - } else { - prev->next = cl->next; - } - cl->next = NULL; - cl->remove(); - count--; -} - -ComplexList *ComplexCollect::find( char *name ) - /* - * Searches for and returns the ComplexList whose supertype name = name. - */ -{ - ComplexList *cl = clists; - - while ( cl && *cl < name ) { - cl = cl->next; - } - if ( cl && *cl == name ) { - return cl; - } - return NULL; -} - -int ComplexCollect::supports( EntNode *ents ) const - /* - * Determines if the parent schema supports the instantiation of a complex - * type consisting of the the entities named in ents. Does so by attempt- - * ing to match ents against the ComplexLists in clists. If one of the - * nodes of ents has multSupers set to TRUE (it has >1 supertype), it - * should be included in >1 CList. A more complicated algorithm is applied - * to match it, as described in the commenting. - */ -{ - // Changed 'and' to 'andl'. 'and' is reserved word in the standard - GC - - EntNode *node = ents, *nextnode; - AndList *andl=0; - ComplexList *clist = clists, *cl = NULL, *current; - int retval; - EntList *elist, *next; - - // Loop through the nodes of ents. If 1+ of them have >1 supertype, build - // a combo-CList to handle it. - while ( node ) { - if ( node->multSuprs() ) { - // Temporarily slice out node from its list (so that CList-> - // contains() will work properly below): - nextnode = node->next; - node->next = NULL; - if ( !cl ) { - // We may have created cl already in an earlier pass. - andl = new AndList; - cl = new ComplexList( andl ); - } - current = clists; - while ( current ) { - if ( current->contains( node ) ) { - // Must add current CList to new CList. First check if we - // added current already (while testing an earlier node). - if ( ! cl->toplevel( current->supertype() ) ) { - // Below line adds current to cl. "current->head-> - // childList" points to the EntLists directly under the - // top-level AND. We'll add that list right under the - // new AND we created at cl's top level. - andl->appendList( current->head->childList ); - } - } - current = current->next; - } - node->next = nextnode; - } - node = node->next; - } - - // Now figure out if we match ents or not. Done differently depending on - // if we had a sub of >1 supers (and built cl as a combo). - if ( !cl ) { - // If we never built up cl in the above loop, there were no entities - // which had mult supers. Simply go through each CList separately: - while ( clist != NULL ) { - if ( clist->matches( ents ) ) { - return TRUE; - } - clist = clist->next; - } - // Went through whole list without match: - return FALSE; - } else { - // Use cl to test that the conditions of all supertypes are met: - cl->multSupers = TRUE; - cl->buildList(); - retval = cl->matches( ents ); - - // We have our return value. Now get rid of cl: - // Unlink all the EntLists (gotten from other CLists) which were joined - // to make cl: - elist = cl->head->childList; - while ( elist ) { - elist->prev = NULL; - elist = elist->next; - next = elist->next; - elist->next = NULL; - elist = next; - } - cl->head->childList = NULL; - // Separate the childList from head. We don't want to delete any of the - // sublists when we delete cl - they still belong to other sublists. - delete cl; - return retval; - } -} diff --git a/source/geometry/solids/STEP/src/complexlist.cc b/source/geometry/solids/STEP/src/complexlist.cc deleted file mode 100644 index eeeb944f0e..0000000000 --- a/source/geometry/solids/STEP/src/complexlist.cc +++ /dev/null @@ -1,260 +0,0 @@ -/***************************************************************************** - * complexlist.cc * - * * - * Description: ComplexList is a class type which represents inheritance * - * information for a set of entities related through supertype * - * and subtype information. This file contains many of the * - * ComplexList member functions. * - * * - * Created by: David Rosenfeld * - * Date: 01/07/97 * - *****************************************************************************/ - -#include "complexSupport.h" - -ComplexList::~ComplexList() - /* - * Destructor for ComplexList. - */ -{ - if ( next ) delete next; - delete head; - delete list; -} - -void ComplexList::remove() - /* - * Delete myself but don't take my sublist too. Done when a ComplexList - * was temporarily created to represent a complex structure which later - * became a subtype of other supertypes. After being incorporated into - * the supertypes' ComplexLists, this temp one can be deleted. Its sub- - * structure, however, cannot be deleted since it's still being used. - */ -{ - head = NULL; - // Only the overall AND will be deleted. - delete this; -} - -int ComplexList::toplevel( const char *name ) - /* - * Returns TRUE if name is already contained at the top level of our - * EntList hierarchy. By top level, we mean the level under head. This - * is a highly specialized function which is used during the building of - * a temporary CList to test entities which are subtypes of >1 supertype. - */ -{ - EntList *slist = head->childList; - - while ( slist ) { - if ( *(SimpleList *)slist == name ) return TRUE; - slist = slist->next; - if ( slist ) slist = slist->next; - } - return FALSE; -} - -void ComplexList::buildList() - /* - * Constructs this's list member. Contains an alphabetically-ordered - * linked list of EntNodes corresponding to all the leaf nodes in this. - * Used as a quick method of determining if this *may* allow a complex - * entity to be instantiated. If the user wants to construct a complex - * entity which contains an entity which is not contained in list, this - * ComplexList certainly can't support it. - */ -{ - EntList *sibling = head->childList->next; - // sibling = the first EntList (below the overall AND) after the supertype. - - // If there was a list before, delete it: - if ( list ) delete list; - - // Add first node based on supertype: - list = new EntNode( ((SimpleList *)head->childList)->name ); - - // Recursively add all descendents: - while ( sibling ) { - addChildren( sibling ); - sibling = sibling->next; - // Note - a CList usually has no more than 1 sibling, corresponding to - // the subtype info of a supertype. But this may be a combo-CList used - // to test sub's with >1 supertype. If so, there will be more siblings. - } - -} - -void ComplexList::addChildren( EntList *ent ) - /* - * Recursive function to add all the SimpleList descendents of ent into - * this's list. - */ -{ - EntList *child; - char *nm; - EntNode *prev = list, *prev2 = NULL, *newnode; - int comp=0; - - if ( ent->multiple() ) { - child = ((MultList *)ent)->childList; - while ( child ) { - addChildren( child ); - child = child->next; - } - } else { - nm = ((SimpleList *)ent)->name; - while ( prev != NULL && (comp = strcmp( prev->name, nm )) < 0 ) { - prev2 = prev; - prev = prev->next; - } - // One exceptional case: If new name is same as prev, skip it: - if ( comp != 0 ) { - // At this point, we know the new node belongs between prev2 and - // prev. prev or prev2 may = NULL if newnode belongs at the end - // of the list or before the beginning, respectively. - newnode = new EntNode( nm ); - newnode->next = prev; - if ( prev2 == NULL ) { - // This will be the case if the inner while was never entered. - // That happens when newnode belonged at the beginning of the - // list. If so, reset firstnode. - list = newnode; - } else { - prev2->next = newnode; - } - } - } -} - -int ComplexList::contains( EntNode *ents ) - /* - * Does a simple search to determine if this contains all the nodes of an - * EntNode list. If not, there's no way this will match ents. If so, - * we'll have to run matches() (below) to check more closely. This func- - * tion is simplified greatly because both EntNodes are ordered alphabeti- - * cally. - */ -{ - EntNode *ours = list, *theirs = ents; - - while ( theirs != NULL ) { - while ( ours != NULL && *ours < *theirs ) { - ours = ours->next; - } - if ( ours == NULL || *ours > *theirs ) { - // If either of these occured, we couldn't find one of ours which - // matched the current "theirs". - return FALSE; - } - theirs = theirs->next; - ours = ours->next; - } - // At this point we must have matched them all. (We may have extra, but - // there's nothing wrong with that.) - return TRUE; -} - -int ComplexList::matches( EntNode *ents ) - /* - * Receives as input an EntNode list, corresponding to a user request to - * instantiate the corresponding complex type. Returns TRUE if such a list - * can be instantiated based on the list of EntLists which were generated - * when the schema was read; FALSE otherwise. - */ -{ - MatchType retval, otherChoices = NEWCHOICE; - int result = FALSE; - - // First check if this ComplexList at least contains all the nodes of ents. - // If it does, we'll search in detail. If not, we're done. - if (! contains( ents ) ) { - return FALSE; - } - - // Now start a thorough search through this ComplexList: - if ( (retval = head->matchNonORs( ents )) == MATCHALL ) { - result = TRUE; - } else if ( retval != UNKNOWN ) { - result = FALSE; - // UNKNOWN is the return val if there are ORs matchNonORs can't - // analyze. Unless we got a MATCHALL already, that's our only hope. - } else { - if ( ( (retval = head->matchORs( ents )) == MATCHALL ) && - ( hitMultNodes( ents ) ) ) { - // hitMultNodes() checks that in case we're a combo-CList (see - // CColect->supports()) we have a legal choice (see comments in - // hitMultNodes()). - result = TRUE; - } else if ( retval >= MATCHSOME ) { - // We have a partial answer. Check if other solutions exist (i.e., - // if there are OR's with other choices): - while ( otherChoices == NEWCHOICE ) { - otherChoices = head->tryNext( ents ); - if ( otherChoices == MATCHALL ) { - if ( hitMultNodes( ents ) ) { - result = TRUE; - } else { - otherChoices = NEWCHOICE; - } - } - } - } - } - head->reset(); - // This recursively sets all EntLists in our list. - ents->unmarkAll(); - // NOTE - may want to put this at ComplexCollect level. - return result; -} - -int ComplexList::hitMultNodes( EntNode *ents ) - /* - * This function has a specialized application. If the user wants to - * instantiate a complex type containing an entity with >1 supertype (call - * it C), we temporarily join all the ComplexLists together corresponding - * to the supertypes of C into a big CList (this). We then test the user - * request as normal. If the regular matches() functions return MATCHALL, - * we must check if each MultList corresponding to a CList hit C. If not, - * we do not have a valid match. We only have the right to join the CLists - * together (and make use of all the matching they afford) in order to - * create a complete instance of C. Matches which do not contain C are not - * valid. (This function is actually slightly more complicated because it - * also deals with the possibility that >1 entities like C exist.) - */ -{ - EntNode *node; - EntList *child; - - // First get rid of the trivial case: If this is not a combo-CList at all, - // we have nothing to check for. (CList::matches() routinely checks for - // hitMultNodes in case we're a combo.) - if ( !multSupers ) { - return TRUE; - } - - for ( node = ents; node != NULL; node = node->next ) { - if ( node->multSuprs() ) { - child = head->childList->next; - // child points to the sublist of the first CList. (head is the - // AndList which AND's them all together.) - while ( child ) { - // child is one of the EntList members of this which corre- - // sponds to one of the combined CLists. If child has node as - // a member, it must have matched node, or we do not have a - // legal match (see function header comments). We check this - // below. - if ( child->contains( node->name ) ) { - if ( ! child->hit( node->name ) ) { - return FALSE; - } - } - child = child->next; - if ( child ) child = child->next; - // We increment child twice. We know this is how CLists are - // joined: super1 -> sublist1 -> super2 -> sublist2 -> ... - } - } - } - return TRUE; - // If we got here, we didn't find any unmatched complex subtypes. -} diff --git a/source/geometry/solids/STEP/src/compstructs.cc b/source/geometry/solids/STEP/src/compstructs.cc deleted file mode 100644 index 7429461a2f..0000000000 --- a/source/geometry/solids/STEP/src/compstructs.cc +++ /dev/null @@ -1,1696 +0,0 @@ -/* - * This file contains instantiation statements to create complex - * support structures. The structures will be used in the SCL to - * validate user requests to instantiate complex entities. - */ - -#include "complexSupport.h" - -ComplexCollect *gencomplex() - /* - * This function contains instantiation statments for all the - * ComplexLists and EntLists in a ComplexCollect. The instan- - * stiation statements were generated in order of lower to - * higher, and last to first to simplify creating some of the - * links between structures. Because of this, the code is not - * very readable, but does the trick. - */ -{ - ComplexCollect *cc; - ComplexList *cl; - EntList *node, *child, *next1, *next2, *next3, *next4, - *next5, *next6, *next7, *next8, *next9, *next10, - *next11, *next12, *next13, *next14, *next15, - *next16, *next17, *next18; //, *next19, *next20, -// *next21, *next22, *next23, *next24, *next25, -// *next26, *next27, *next28, *next29, *next30; - - cc = new ComplexCollect; - - // ComplexList with supertype "action": - node = new SimpleList( "directed_action" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "executed_action" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "executed_action" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "action" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "action_assignment": - node = new SimpleList( "start_work" ); - next2 = node; - node = new SimpleList( "change" ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "action_assignment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "action_request_assignment": - node = new SimpleList( "start_request" ); - next2 = node; - node = new SimpleList( "change_request" ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "action_request_assignment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "address": - node = new SimpleList( "personal_address" ); - next2 = node; - node = new SimpleList( "organizational_address" ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "address" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "application_context_element": - node = new SimpleList( "product_concept_context" ); - next2 = node; - node = new SimpleList( "design_context" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "product_definition_context" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "product_definition_context" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2->prev = node; - node->next = next2; - next2 = node; - node = new SimpleList( "mechanical_context" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "product_context" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "product_context" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2->prev = node; - node->next = next2; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "application_context_element" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "approval_assignment": - node = new SimpleList( "cc_design_approval" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "approval_assignment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "certification_assignment": - node = new SimpleList( "cc_design_certification" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "certification_assignment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "composite_curve_segment": - node = new SimpleList( "reparametrised_composite_curve_segment" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "composite_curve_segment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "contract_assignment": - node = new SimpleList( "cc_design_contract" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "contract_assignment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "date": - node = new SimpleList( "week_of_year_and_day_date" ); - next2 = node; - node = new SimpleList( "ordinal_date" ); - next2->prev = node; - node->next = next2; - next2 = node; - node = new SimpleList( "calendar_date" ); - next2->prev = node; - node->next = next2; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "date" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "date_and_time_assignment": - node = new SimpleList( "cc_design_date_and_time_assignment" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "date_and_time_assignment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "document": - node = new SimpleList( "document_with_class" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "document" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "document_reference": - node = new SimpleList( "cc_design_specification_reference" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "document_reference" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "effectivity": - node = new SimpleList( "configuration_effectivity" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "product_definition_effectivity" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "product_definition_effectivity" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2 = node; - node = new SimpleList( "lot_effectivity" ); - next3 = node; - node = new SimpleList( "dated_effectivity" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "serial_numbered_effectivity" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "effectivity" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "functionally_defined_transformation": - node = new SimpleList( "cartesian_transformation_operator_3d" ); - next5 = node; - node = new SimpleList( "cartesian_transformation_operator_2d" ); - next5->prev = node; - node->next = next5; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "cartesian_transformation_operator" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "cartesian_transformation_operator" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "functionally_defined_transformation" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "measure_with_unit": - node = new SimpleList( "uncertainty_measure_with_unit" ); - next2 = node; - node = new SimpleList( "volume_measure_with_unit" ); - next3 = node; - node = new SimpleList( "area_measure_with_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "solid_angle_measure_with_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "plane_angle_measure_with_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "mass_measure_with_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "length_measure_with_unit" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "measure_with_unit" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "named_unit": - node = new SimpleList( "volume_unit" ); - next3 = node; - node = new SimpleList( "area_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "solid_angle_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "plane_angle_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "mass_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "length_unit" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2 = node; - node = new SimpleList( "context_dependent_unit" ); - next3 = node; - node = new SimpleList( "conversion_based_unit" ); - next3->prev = node; - node->next = next3; - next3 = node; - node = new SimpleList( "si_unit" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "named_unit" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "person_and_organization_assignment": - node = new SimpleList( "cc_design_person_and_organization_assignment" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "person_and_organization_assignment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "product_category": - node = new SimpleList( "product_related_product_category" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "product_category" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "product_definition": - node = new SimpleList( "product_definition_with_associated_documents" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "product_definition" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "product_definition_formation": - node = new SimpleList( "product_definition_formation_with_specified_source" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "product_definition_formation" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "product_definition_relationship": - node = new SimpleList( "quantified_assembly_component_usage" ); - next7 = node; - node = new SimpleList( "promissory_usage_occurrence" ); - next8 = node; - node = new SimpleList( "specified_higher_usage_occurrence" ); - next8->prev = node; - node->next = next8; - next8 = node; - node = new SimpleList( "next_assembly_usage_occurrence" ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "assembly_component_usage" ); - next6->prev = node; - node->next = next6; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next5 = node; - node = new SimpleList( "assembly_component_usage" ); - next5->prev = node; - node->next = next5; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "product_definition_usage" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "product_definition_usage" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2 = node; - node = new SimpleList( "design_make_from_relationship" ); - next2->prev = node; - node->next = next2; - next2 = node; - node = new SimpleList( "supplied_part_relationship" ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "product_definition_relationship" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "property_definition": - node = new SimpleList( "product_definition_shape" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "property_definition" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "property_definition_representation": - node = new SimpleList( "shape_definition_representation" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "property_definition_representation" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "representation": - node = new SimpleList( "faceted_brep_shape_representation" ); - next5 = node; - node = new SimpleList( "geometrically_bounded_wireframe_shape_representation" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "edge_based_wireframe_shape_representation" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "advanced_brep_shape_representation" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "shell_based_wireframe_shape_representation" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "geometrically_bounded_surface_shape_representation" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "manifold_surface_shape_representation" ); - next5->prev = node; - node->next = next5; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "shape_representation" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "shape_representation" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2 = node; - node = new SimpleList( "definitional_representation" ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "representation" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "representation_context": - node = new SimpleList( "global_unit_assigned_context" ); - next2 = node; - node = new SimpleList( "parametric_representation_context" ); - next2->prev = node; - node->next = next2; - next2 = node; - node = new SimpleList( "global_uncertainty_assigned_context" ); - next2->prev = node; - node->next = next2; - next2 = node; - node = new SimpleList( "geometric_representation_context" ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "representation_context" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "representation_item": - node = new SimpleList( "mapped_item" ); - next2 = node; - node = new SimpleList( "geometric_curve_set" ); - next7 = node; - node = new SimpleList( "geometric_set" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "geometric_set" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5 = node; - node = new SimpleList( "edge_based_wireframe_model" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "shell_based_wireframe_model" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "shell_based_surface_model" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "brep_with_voids" ); - next10 = node; - node = new SimpleList( "faceted_brep" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "manifold_solid_brep" ); - next9->prev = node; - node->next = next9; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next8 = node; - node = new SimpleList( "manifold_solid_brep" ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "solid_model" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "solid_model" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "poly_loop" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "vertex_point" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "advanced_face" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "face_surface" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "face_surface" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "edge_curve" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "surface_replica" ); - next8 = node; - node = new SimpleList( "offset_surface" ); - next8->prev = node; - node->next = next8; - next8 = node; - node = new SimpleList( "rectangular_composite_surface" ); - next11 = node; - node = new SimpleList( "curve_bounded_surface" ); - next11->prev = node; - node->next = next11; - next11 = node; - node = new SimpleList( "rectangular_trimmed_surface" ); - next11->prev = node; - node->next = next11; - next11 = node; - node = new SimpleList( "rational_b_spline_surface" ); - next14 = node; - node = new SimpleList( "bezier_surface" ); - next15 = node; - node = new SimpleList( "quasi_uniform_surface" ); - next15->prev = node; - node->next = next15; - next15 = node; - node = new SimpleList( "uniform_surface" ); - next15->prev = node; - node->next = next15; - next15 = node; - node = new SimpleList( "b_spline_surface_with_knots" ); - next15->prev = node; - node->next = next15; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next14->prev = node; - node->next = next14; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next13 = node; - node = new SimpleList( "b_spline_surface" ); - next13->prev = node; - node->next = next13; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next12 = node; - node = new SimpleList( "b_spline_surface" ); - next12->prev = node; - node->next = next12; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next11->prev = node; - node->next = next11; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "bounded_surface" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "bounded_surface" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8->prev = node; - node->next = next8; - next8 = node; - node = new SimpleList( "surface_of_revolution" ); - next11 = node; - node = new SimpleList( "surface_of_linear_extrusion" ); - next11->prev = node; - node->next = next11; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "swept_surface" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "swept_surface" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8->prev = node; - node->next = next8; - next8 = node; - node = new SimpleList( "toroidal_surface" ); - next11 = node; - node = new SimpleList( "spherical_surface" ); - next11->prev = node; - node->next = next11; - next11 = node; - node = new SimpleList( "conical_surface" ); - next11->prev = node; - node->next = next11; - next11 = node; - node = new SimpleList( "cylindrical_surface" ); - next11->prev = node; - node->next = next11; - next11 = node; - node = new SimpleList( "plane" ); - next11->prev = node; - node->next = next11; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "elementary_surface" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "elementary_surface" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "surface" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "surface" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "outer_boundary_curve" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next18 = node; - node = new SimpleList( "boundary_curve" ); - next18->prev = node; - node->next = next18; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next17 = node; - node = new SimpleList( "boundary_curve" ); - next17->prev = node; - node->next = next17; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next16 = node; - node = new SimpleList( "composite_curve_on_surface" ); - next16->prev = node; - node->next = next16; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next15 = node; - node = new SimpleList( "composite_curve_on_surface" ); - next15->prev = node; - node->next = next15; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next13 = node; - node = new SimpleList( "composite_curve" ); - next13->prev = node; - node->next = next13; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next12 = node; - node = new SimpleList( "composite_curve" ); - next12->prev = node; - node->next = next12; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next11 = node; - node = new SimpleList( "trimmed_curve" ); - next11->prev = node; - node->next = next11; - next11 = node; - node = new SimpleList( "rational_b_spline_curve" ); - next14 = node; - node = new SimpleList( "bezier_curve" ); - next15 = node; - node = new SimpleList( "quasi_uniform_curve" ); - next15->prev = node; - node->next = next15; - next15 = node; - node = new SimpleList( "b_spline_curve_with_knots" ); - next15->prev = node; - node->next = next15; - next15 = node; - node = new SimpleList( "uniform_curve" ); - next15->prev = node; - node->next = next15; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next14->prev = node; - node->next = next14; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next13 = node; - node = new SimpleList( "b_spline_curve" ); - next13->prev = node; - node->next = next13; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next12 = node; - node = new SimpleList( "b_spline_curve" ); - next12->prev = node; - node->next = next12; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next11->prev = node; - node->next = next11; - next11 = node; - node = new SimpleList( "polyline" ); - next11->prev = node; - node->next = next11; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "bounded_curve" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "bounded_curve" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8 = node; - node = new SimpleList( "curve_replica" ); - next9 = node; - node = new SimpleList( "offset_curve_3d" ); - next9->prev = node; - node->next = next9; - next9 = node; - node = new SimpleList( "offset_curve_2d" ); - next9->prev = node; - node->next = next9; - next9 = node; - node = new SimpleList( "seam_curve" ); - next12 = node; - node = new SimpleList( "intersection_curve" ); - next12->prev = node; - node->next = next12; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next11 = node; - node = new SimpleList( "surface_curve" ); - next11->prev = node; - node->next = next11; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "surface_curve" ); - next10->prev = node; - node->next = next10; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next9->prev = node; - node->next = next9; - next9 = node; - node = new SimpleList( "pcurve" ); - next9->prev = node; - node->next = next9; - next9 = node; - node = new SimpleList( "parabola" ); - next12 = node; - node = new SimpleList( "hyperbola" ); - next12->prev = node; - node->next = next12; - next12 = node; - node = new SimpleList( "ellipse" ); - next12->prev = node; - node->next = next12; - next12 = node; - node = new SimpleList( "circle" ); - next12->prev = node; - node->next = next12; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next11 = node; - node = new SimpleList( "conic" ); - next11->prev = node; - node->next = next11; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "conic" ); - next10->prev = node; - node->next = next10; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next9->prev = node; - node->next = next9; - next9 = node; - node = new SimpleList( "line" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8->prev = node; - node->next = next8; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "curve" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "curve" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "cartesian_transformation_operator_3d" ); - next8 = node; - node = new SimpleList( "cartesian_transformation_operator_2d" ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "cartesian_transformation_operator" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "cartesian_transformation_operator" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "axis2_placement_3d" ); - next8 = node; - node = new SimpleList( "axis2_placement_2d" ); - next8->prev = node; - node->next = next8; - next8 = node; - node = new SimpleList( "axis1_placement" ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "placement" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "placement" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "vector" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "direction" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "evaluated_degenerate_pcurve" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "degenerate_pcurve" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "degenerate_pcurve" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8 = node; - node = new SimpleList( "point_replica" ); - next8->prev = node; - node->next = next8; - next8 = node; - node = new SimpleList( "point_on_surface" ); - next8->prev = node; - node->next = next8; - next8 = node; - node = new SimpleList( "point_on_curve" ); - next8->prev = node; - node->next = next8; - next8 = node; - node = new SimpleList( "cartesian_point" ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "point" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "point" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "geometric_representation_item" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "geometric_representation_item" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2->prev = node; - node->next = next2; - next2 = node; - node = new SimpleList( "oriented_path" ); - next9 = node; - node = new SimpleList( "edge_loop" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8 = node; - node = new SimpleList( "path" ); - next8->prev = node; - node->next = next8; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "path" ); - next7->prev = node; - node->next = next7; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "poly_loop" ); - next9 = node; - node = new SimpleList( "edge_loop" ); - next9->prev = node; - node->next = next9; - next9 = node; - node = new SimpleList( "vertex_loop" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8 = node; - node = new SimpleList( "loop" ); - next8->prev = node; - node->next = next8; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "loop" ); - next7->prev = node; - node->next = next7; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next6->prev = node; - node->next = next6; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next5 = node; - node = new SimpleList( "wire_shell" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "vertex_shell" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "oriented_open_shell" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "open_shell" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "open_shell" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8 = node; - node = new SimpleList( "oriented_closed_shell" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "closed_shell" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "closed_shell" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "connected_face_set" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "connected_face_set" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "connected_edge_set" ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "oriented_face" ); - next8 = node; - node = new SimpleList( "advanced_face" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next10 = node; - node = new SimpleList( "face_surface" ); - next10->prev = node; - node->next = next10; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next9 = node; - node = new SimpleList( "face_surface" ); - next9->prev = node; - node->next = next9; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "face" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "face" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "face_outer_bound" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "face_bound" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "face_bound" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "oriented_edge" ); - next8 = node; - node = new SimpleList( "edge_curve" ); - next8->prev = node; - node->next = next8; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "edge" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "edge" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - next5 = node; - node = new SimpleList( "vertex_point" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next7 = node; - node = new SimpleList( "vertex" ); - next7->prev = node; - node->next = next7; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next6 = node; - node = new SimpleList( "vertex" ); - next6->prev = node; - node->next = next6; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next5->prev = node; - node->next = next5; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next4 = node; - node = new SimpleList( "topological_representation_item" ); - next4->prev = node; - node->next = next4; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - next3 = node; - node = new SimpleList( "topological_representation_item" ); - next3->prev = node; - node->next = next3; - child = node; - node = new OrList; - ((MultList *)node)->appendList( child ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "representation_item" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "representation_relationship": - node = new SimpleList( "shape_representation_relationship" ); - next2 = node; - node = new SimpleList( "representation_relationship_with_transformation" ); - next2->prev = node; - node->next = next2; - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "representation_relationship" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - // ComplexList with supertype "security_classification_assignment": - node = new SimpleList( "cc_design_security_classification" ); - child = node; - node = new AndOrList; - ((MultList *)node)->appendList( child ); - next1 = node; - node = new SimpleList( "security_classification_assignment" ); - next1->prev = node; - node->next = next1; - child = node; - node = new AndList; - ((MultList *)node)->appendList( child ); - cl = new ComplexList((AndList *)node); - cl->buildList(); - cl->head->setLevel( 0 ); - cc->insert( cl ); - - return cc; -} diff --git a/source/geometry/solids/STEP/src/dirobj.cc b/source/geometry/solids/STEP/src/dirobj.cc deleted file mode 100644 index d0fe4621ee..0000000000 --- a/source/geometry/solids/STEP/src/dirobj.cc +++ /dev/null @@ -1,563 +0,0 @@ - -/* -* NIST Utils Class Library -* clutils/dirobj.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: dirobj.cc,v 1.8 2001/09/19 09:52:46 gcosmo Exp $ */ - -/* - * DirObj implementation - * based on FBDirectory from /depot/iv/src/libInterViews/filebrowser.c - * David Sauder - */ -/* - * Copyright (c) 1987, 1988, 1989 Stanford University - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Stanford not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Stanford makes no representations about - * the suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include - - -#ifndef MAXNAMLEN -# define MAXNAMLEN 255 -#endif - -#ifndef S_IFMT -# define S_IFMT __S_IFMT -#endif - -#ifndef S_IFDIR -# define S_IFDIR __S_IFDIR -#endif - -// to help ObjectCenter -#ifndef HAVE_MEMMOVE -extern "C" -{ -void * memmove(void *__s1, const void *__s2, size_t __n); -} -#endif - -//#ifdef __OBJECTCENTER__ -//extern "C" -//{ -//void * memmove(void *__s1, const void *__s2, size_t __n); -//} -//#endif - -/////////////////////////////////////////////////////////////////////////////// -// -// Create a new DirObj object. -// -/////////////////////////////////////////////////////////////////////////////// - -DirObj::DirObj (const char* dirName) { - const int defaultSize = 256; - - fileListSize = defaultSize; - fileList = new char*[fileListSize]; - fileCount = 0; - LoadDirectory(dirName); -} - -/////////////////////////////////////////////////////////////////////////////// -// -// DirObj object destructor. -// -/////////////////////////////////////////////////////////////////////////////// - -DirObj::~DirObj () { - ClearFileList(); -} - -//////////////////////////////// RealPath() /////////////////////////////////// -// -// Returns a real path. -// if 'path' is a null string ("\0") or nil (0) return ./ -// otherwise return the path remaining after the following is done: -// send the remaining path after the first '/' in the last occurence -// of '//' to InterpTilde() where the last tilde will be expanded -// to a full path. -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::RealPath (const char* path) { - const char* realpath; - - if (path == 0 || *path == '\0') { - realpath = "./"; - } else { - realpath = InterpTilde(InterpSlashSlash(path)); - } - return realpath; -} - -//////////////////////////////// LoadDirectory() ////////////////////////////// -// -// Load the directory at the end of the longest path given by 'name' -// -/////////////////////////////////////////////////////////////////////////////// - -boolean DirObj::LoadDirectory (const char* name) { - char buf[MAXPATHLEN+2]; -// const char* path = buf; - - strcpy(buf, ValidDirectories(RealPath(name))); - return Reset(buf); -} - -//////////////////////////////// Index() ////////////////////////////////////// -// -// Returns the index position of 'name' in the fileList; otherwise returns -1 -// index starts at zero. -// -/////////////////////////////////////////////////////////////////////////////// - -int DirObj::Index (const char* name) { - for (int i = 0; i < fileCount; ++i) { - if (strcmp(fileList[i], name) == 0) { - return i; - } - } - return -1; -} - -//////////////////////////////// Reset() ////////////////////////////////////// -// -// Clears existing fileList and fills it again with the names of entries in -// the directory at the supplied 'path'. -// for type 'DIR' and 'direct' see /usr/include/sys/dirent.h -// -/////////////////////////////////////////////////////////////////////////////// - -boolean DirObj::Reset (const char* path) { - boolean successful = IsADirectory(path); - if (successful) { - ClearFileList(); - // temporary fix for Windows/NT !!!!!!!!!!!!!!!!!!!!!!! -#ifndef WIN32 - DIR* dir = opendir(path); - for (struct dirent* d = readdir(dir); d != NULL; d = readdir(dir)) { -//#if defined(SYSV) -// for (struct dirent* d = readdir(dir); d != NULL; d = readdir(dir)) { -//#else -// for (struct direct* d = readdir(dir); d != NULL; d = readdir(dir)) { -//#endif - InsertFile(d->d_name, Position(d->d_name)); - } - closedir(dir); -#endif - } - return successful; -} - -//////////////////////////////// IsADirectory() /////////////////////////////// -// -// Return 1 if file named by 'path' is a directory; otherwise 0. -// 'path' must not have tildes -- can send path to Normalize() first -// /usr/include/sys/stat.h -// -/////////////////////////////////////////////////////////////////////////////// - -boolean DirObj::IsADirectory (const char* path) { - struct stat st; - return stat(path, &st) == 0 && (st.st_mode & S_IFMT) == S_IFDIR; -} - -//////////////////////////////// Home() /////////////////////////////////////// -// -// Return the home directory (complete path) for user with login name 'name'. -// If 'name' is nil, it returns the home directory of the logged-in user who -// ran the program. Returns nil on error - (name not in password file). -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::Home (const char* name) { - // temporary fix for Windows/NT !!!!!!!!!!!!!!!!!!!!!!! -#ifndef WIN32 - struct passwd* pw = - (name == nil) ? getpwuid(getuid()) : getpwnam((char *)name); - return (pw == nil) ? nil : pw->pw_dir; -#else - return nil; -#endif -} - -//////////////////////////////// Normalize() ////////////////////////////////// -// -// Normalize path in order in the following way: -// set path to: -// 1) remaining path starting at the last '/' in multiple '/'s in a row -// 2) path with all './'s removed from path except a possible leading './' -// 2) path with all '../'s collapsed from path except a possible leading '../' -// 3) path with the last ~ or ~name expanded fully followed by the path -// remaining after the last ~ or ~name (if any). -// 4) if path[0] is now '\0' set path to "./" or -// if path doesn't start with './' or '../' or '/' -// make it start with './' or -// if path doesn't end with '/' -// make it end with '/' -// Soooooo, should end up with a path: -// 1) starting with './', '..', or '/' -// 2) with all internal './'and '../' removed and collapsed respectively -// 3) the last ~ or ~name expanded fully -// 4) ending with '/' -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::Normalize (const char* path) { - static char newpath[MAXPATHLEN+1]; - const char* buf; - - buf = InterpSlashSlash(path); - buf = ElimDot(buf); - buf = ElimDotDot(buf); - buf = InterpTilde(buf); - - if (*buf == '\0') { - strcpy(newpath, "./"); - - // if buf doesn't start with '.' or '..' and buf[0] != '/' - } else if (!DotSlash(buf) && !DotDotSlash(buf) && *buf != '/') { - strcpy(newpath, "./"); - strcat(newpath, buf); - - // if buf is a path to a directory and doesn't end with '/' - } else if (IsADirectory(buf) && buf[strlen(buf)-1] != '/') { - strcpy(newpath, buf); - strcat(newpath, "/"); - - } else { - strcpy(newpath, buf); - } - return newpath; -} - -//////////////////////////////// ValidDirectories() /////////////////////////// -// -// Return the longest valid path possible from the given 'path' -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::ValidDirectories (const char* path) { - static char buf[MAXPATHLEN+1]; - strcpy(buf, path); - int i = strlen(path); - - while (!IsADirectory(RealPath(buf)) && i >= 0) { - for (--i; buf[i] != '/' && i >= 0; --i); - buf[i+1] = '\0'; - } - return buf; -} - -//////////////////////////////// InterpSlashSlash() /////////////////////////// -// -// Searches from the end of 'path' backwards for the first occurence of -// a double slash and returns the remaining path starting at the -// second / of a double / -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::InterpSlashSlash (const char* path) { - for (int i = strlen(path)-1; i > 0; --i) { - if (path[i] == '/' && path[i-1] == '/') { - return &path[i]; - } - } - return path; -} - -//////////////////////////////// ElimDot() //////////////////////////////////// -// -// Removes all './' from path unless it's the first two char's in the path -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::ElimDot (const char* path) { - static char newpath[MAXPATHLEN+1]; - const char* src; - char* dest = newpath; - - for (src = path; src < &path[strlen(path)]; ++src) { - // if not (src[0] == '.' and src[1] == ('/' or '\0')) - if (!DotSlash(src)) { - *dest++ = *src; - - // if path preceeds DotSlash skip '.' now and '/' at loop - } else if (*(dest-1) == '/') { - ++src; - - // if no path preceeds DotSlash copy '.' now and '/' next loop - } else { - *dest++ = *src; - } - } - *dest = '\0'; - return newpath; -} - -//////////////////////////////// CollapsedDotDotSlash() /////////////////////// -// -// path = char * to path being collapsed -// start = char * to 1 char past the last char in 'path' -// (where the ../ would be) -// This should be called CollapsedDotDotSlashIfPossible() -// Return 1 -// if collapsed ../ and should have -// if didn't collapse ../ and should not have (for path = /) -// (should maybe return an error but this object seems to try to -// correct the path in this case or find the longest correct path -// in other cases) -// Return 0 -// if didn't collapse ../ and should have -// -/////////////////////////////////////////////////////////////////////////////// - -//static boolean CollapsedDotDotSlash (const char* path, const char*& start) { -// Josh L, 5/2/95 -static boolean CollapsedDotDotSlash (const char* path, const char* start) { - // fail if 'start' is at beginning of path (there is no path) or - // if no directory is before start (no '/' before '../') - if (path == start || *(start-1) != '/') { - return 0; - - // succeed if 1st char in path is '/' and start points to the - // next char (didn't collapse path and shouldn't have - } else if (path == start-1 && *path == '/') { - return 1; - - } else if (path == start-2) { // NB: won't handle '//' right - start = path; - return *start != '.'; - - } else if (path < start-2 && !DotDotSlash(start-3)) { - for (start -= 2; path <= start; --start) { - if (*start == '/') { - ++start; - return 1; - } - } - start = path; - return 1; - } - return 0; -} - -//////////////////////////////// ElimDotDot() ///////////////////////////////// -// -// Removes all '../' from path unless it's the first three char's in the path -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::ElimDotDot (const char* path) { - static char newpath[MAXPATHLEN+1]; - const char* src; - char* dest = newpath; - - for (src = path; src < &path[strlen(path)]; ++src) { - // if found ../ and could collapse it, skip the '..' now and - // the '/' at loop -// if (DotDotSlash(src) && CollapsedDotDotSlash(newpath, dest)) { -// Josh L, 5/2/95 - if (DotDotSlash(src) && - CollapsedDotDotSlash(newpath, (const char *)dest)) { - src += 2; - } else { // copy char in path - *dest++ = *src; - } - } - *dest = '\0'; - return newpath; -} - -//////////////////////////////// InterpTilde() //////////////////////////////// -// -// if 'path' has no tilde or an error happens when expanding the tilde, -// return 'path'. -// if 'path' has a tilde, it must be at the beginning of 'path' or -// follow a '/' -// if a 'name' follows tilde, return a new path consisting of the -// last ~ in 'path' expanded to the 'name's home directory -// followed by the remaining path after name (if such exists) -// if no 'name' follows tilde, return a new path consisting of the -// last ~ in 'path' expanded to the home directory of the -// logged-in user who ran the process followed by the remaining -// path after ~ (if such exists) -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::InterpTilde (const char* path) { - static char realpath[MAXPATHLEN+1]; - const char* beg = strrchr(path, '~'); - boolean validTilde = beg != NULL && (beg == path || *(beg-1) == '/'); - - if (validTilde) { - const char* end = strchr(beg, '/'); - int length = (end == nil) ? strlen(beg) : end - beg; - const char* expandedTilde = ExpandTilde(beg, length); - - if (expandedTilde == nil) { - validTilde = 0; - } else { - strcpy(realpath, expandedTilde); - if (end != nil) { - strcat(realpath, end); - } - } - } - return validTilde ? realpath : path; -} - -//////////////////////////////// ExpandTilde() //////////////////////////////// -// -// 'tildeName' must start with a tilde. -// if a name immediately follows ~ return a path expanded to the -// name's home directory. -// if tildeName is only a ~ or if a '/' immediately follows ~ -// return a path expanded to the home directory of the logged-in -// user who ran the program. -// return nil on error (if the name is not in the password file) -// -/////////////////////////////////////////////////////////////////////////////// - -const char* DirObj::ExpandTilde (const char* tildeName, int length) { - const char* name = nil; - - if (length > 1) { - static char buf[MAXNAMLEN+1]; - strncpy(buf, tildeName+1, length-1); - buf[length-1] = '\0'; - name = buf; - } - return Home(name); -} - -//////////////////////////////// CheckIndex() ///////////////////////////////// -// -// Check to see if index is within fileListSize. If not, make the number of -// pointers in fileList and fileListSize double that of index+1. -// -/////////////////////////////////////////////////////////////////////////////// - -void DirObj::CheckIndex (int index) { - char** newstrbuf; - - if (index >= fileListSize) { - fileListSize = (index+1) * 2; - newstrbuf = new char*[fileListSize]; -// bcopy(fileList, newstrbuf, fileCount*sizeof(char*)); -// Josh L, 5/2/95 -// memcpy(newstrbuf, fileList, fileCount*sizeof(char*)); -// Dave memcpy is not working since memory areas overlap - memmove(newstrbuf, fileList, fileCount*sizeof(char*)); - delete fileList; - fileList = newstrbuf; - } -} - -//////////////////////////////// InsertFile() ///////////////////////////////// -// -// Insert a file into the fileList. -// -/////////////////////////////////////////////////////////////////////////////// - -void DirObj::InsertFile (const char* f, int index) { - char** spot; - index = (index < 0) ? fileCount : index; - - if (index < fileCount) { - CheckIndex(fileCount+1); - spot = &fileList[index]; -// memcpy(spot+1, spot, (fileCount - index)*sizeof(char*)); -// Dave memcpy is not working since memory areas overlap - memmove(spot+1, spot, (fileCount - index)*sizeof(char*)); - } else { - CheckIndex(index); - spot = &fileList[index]; - } -#ifdef __O3DB__ // strdup() should be removed for ANSI porting - GC - char* string = new char [strlen (f)]; - strcpy (string, f); -#else - char* string = strdup(f); -#endif - *spot = string; - ++fileCount; -} - -//////////////////////////////// RemoveFile() ///////////////////////////////// -// -// Delete a file from the fileList -// -/////////////////////////////////////////////////////////////////////////////// - -void DirObj::RemoveFile (int index) { - if (index < --fileCount) { -// const char** spot = &fileList[index]; -// Josh L, 5/2/95 - const char** spot = (const char**)&fileList[index]; - delete spot; -// bcopy(spot+1, spot, (fileCount - index)*sizeof(char*)); -// Josh L, 5/2/95 -// memcpy(spot, spot+1, (fileCount - index)*sizeof(char*)); -// Dave memcpy is not working since memory areas overlap - memmove(spot, spot+1, (fileCount - index)*sizeof(char*)); - } -} - -//////////////////////////////// ClearFileList() ////////////////////////////// -// -// Delete memory areas pointed to by fileList. -// -/////////////////////////////////////////////////////////////////////////////// - -void DirObj::ClearFileList () { - for (int i = 0; i < fileCount; ++i) { - delete fileList[i]; - } - fileCount = 0; -} - -//////////////////////////////// Position() /////////////////////////////////// -// -// Find the index where the file would go into an alphabetically sorted -// fileList. -// -/////////////////////////////////////////////////////////////////////////////// - -int DirObj::Position (const char* f) { - int i; - - for (i = 0; i < fileCount; ++i) { - if (strcmp(f, fileList[i]) < 0) { - return i; - } - } - return fileCount; -} - diff --git a/source/geometry/solids/STEP/src/dispnode.cc b/source/geometry/solids/STEP/src/dispnode.cc deleted file mode 100644 index 93311301d3..0000000000 --- a/source/geometry/solids/STEP/src/dispnode.cc +++ /dev/null @@ -1,60 +0,0 @@ - -/* -* NIST STEP Editor Class Library -* cleditor/dispnode.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: dispnode.cc,v 1.3 2000/01/21 13:43:08 gcosmo Exp $ */ - -#include -#include -//#include - -#include -#include - -// define this to be the name of the display object -// class StepEntityEditor; - -// This function needs to be defined outside the SCL libraries. It needs to do -// two things: -// 1) unmap the StepEntityEditor window if it is mapped. -// 2) delete the StepEntityEditor window -// To see an example of this function used with the Data Probe look in -// ../clprobe-ui/StepEntEditor.cc Look at DeleteSEE() and ~StepEntityEditor(). -// extern void DeleteSEE(StepEntityEditor *se); - -DisplayNode::~DisplayNode() -{ - Remove(); - if(see) - { -// DeleteSEE((StepEntityEditor *)see); -//DAS PORT need the cast from void* DeleteSEE(see); - } -} - -void DisplayNode::Remove() -{ - GenericNode::Remove(); -// DON'T DO THIS!! displayState = noMapState; -} - -int DisplayNode::ChangeState(displayStateEnum s) -{ - displayState = s; - return 1; -} - -int DisplayNode::ChangeList(DisplayNodeList *cmdList) -{ - Remove(); - cmdList->Append(this); - return 1; -} diff --git a/source/geometry/solids/STEP/src/dispnodelist.cc b/source/geometry/solids/STEP/src/dispnodelist.cc deleted file mode 100644 index 53ab7000d7..0000000000 --- a/source/geometry/solids/STEP/src/dispnodelist.cc +++ /dev/null @@ -1,60 +0,0 @@ - -/* -* NIST STEP Editor Class Library -* cleditor/dispnodelist.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: dispnodelist.cc,v 1.3 2000/01/21 13:43:08 gcosmo Exp $ */ - -#include -#include - -#include -#include -#include -#include - - -void DisplayNodeList::Remove(GenericNode *node) -{ - GenNodeList::Remove(node); -// DON'T DO THIS ((DisplayNode *)node)->displayState = noMapState; -} - - // deletes node from its previous list & appends - // actually it puts it at the front of the list. -void DisplayNodeList::Append(GenericNode *node) -{ - InsertBefore(node, head); -} - - // deletes newNode from its previous list & inserts after - // existNode -void DisplayNodeList::InsertAfter(GenericNode *newNode, - GenericNode *existNode) -{ - if(newNode->next != 0){ // remove the node from its previous - newNode->Remove(); // display state list - } - GenNodeList::InsertAfter(newNode, existNode); -// DON'T DO THIS ((DisplayNode *)newNode)->displayState = listType; -} - - // deletes newNode from its previous list & inserts before - // existNode -void DisplayNodeList::InsertBefore(GenericNode *newNode, - GenericNode *existNode) -{ - if(newNode->next != 0){ // remove the node from its previous - newNode->Remove(); // display state list - } - GenNodeList::InsertBefore(newNode, existNode); -// DON'T DO THIS!!! ((DisplayNode *)newNode)->displayState = listType; -} - diff --git a/source/geometry/solids/STEP/src/entlist.cc b/source/geometry/solids/STEP/src/entlist.cc deleted file mode 100644 index 8cac8c434b..0000000000 --- a/source/geometry/solids/STEP/src/entlist.cc +++ /dev/null @@ -1,140 +0,0 @@ -/***************************************************************************** - * entlist.cc * - * * - * Description: EntList is a class type which supports the concept of com- * - * plex inheritance. EntLists capture information on the * - * allowable types of complex entities. They represent this * - * information internally and may be used to validate a user * - * attempt to instantiate a complex instance. This file con- * - * tains member function definitions for EntList and for its * - * SimpleList subtype. * - * * - * Created by: David Rosenfeld * - * Date: 9/18/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -int EntList::siblings() - /* - * Returns the number of EntLists in this's list (EntList->next, next->next - * etc.) including this. - */ -{ - int count; - EntList *el; - - for ( count=1, el=next; el; count++, el= el->next ) - ; - return count; -} - -EntList *EntList::firstNot( JoinType j ) - /* - * Returns the first EntList not of type join, starting from this. - */ -{ - EntList *sibling = this; - - while ( sibling != NULL && sibling->join == j ) { - sibling = sibling->next; - } - return sibling; // (may = NULL) -} - -EntList *EntList::firstWanted( MatchType match ) - /* - * Returns the first EntList where viable = match, starting from this. - */ -{ - EntList *sibling = this; - - while ( sibling != NULL && sibling->viable != match ) { - sibling = sibling->next; - } - return sibling; // (may = NULL) -} - -EntList *EntList::lastNot( JoinType j ) - /* - * Returns the last EntList not of type join, searching backwards from - * this. - */ -{ - EntList *sibling = this; - - while ( sibling != NULL && sibling->join == j ) { - sibling = sibling->prev; - } - return sibling; // (may = NULL) -} - -EntList *EntList::lastWanted( MatchType match ) - /* - * Returns the last EntList where viable = match, searching backwards from - * this. - */ -{ - EntList *sibling = this; - - while ( sibling != NULL && sibling->viable != match ) { - sibling = sibling->prev; - } - return sibling; // (may = NULL) -} - - -void SimpleList::unmarkAll( EntNode *ents ) - /* - * Unmarks the node that was marked by this List. Normally called when - * undoing an OR choice to try out another. - */ -{ - EntNode *eptr = ents; - int comp = -1; - - if ( viable < MATCHSOME ) return; - - while ( eptr != NULL && (comp = strcmp( eptr->name, name )) < 0 ) { - eptr = eptr->next; - } - // (We assume we have a match now since viable >= MATCHSOME.) - if ( eptr->mark <= I_marked ) { - // Only unmark if we gave it the strongest mark: - eptr->setmark( NOMARK ); - } - // Either way (whether or not another List's mark remains), we no longer - // marked: - I_marked = NOMARK; -} - -int SimpleList::acceptChoice( EntNode *ents ) - /* - * Marks whichever node we can mark. We assume there is a match because - * this function is only called by a parent MultList if its child had a - * viable val of MATCHSOME. Return TRUE if we mark a previously unmarked - * node; otherwise FALSE. - */ -{ - EntNode *eptr = ents; - int comp; - - while ( eptr != NULL ) { - if ( (comp = strcmp( name, eptr->name )) == 0 ) { - if ( ! eptr->marked() ) { - eptr->setmark( ORMARK ); - I_marked = ORMARK; - // Remember that we're the one who marked this. (Nec. in case - // we have to unmark later to try out another OR branch.) - return TRUE; - } - return FALSE; // we didn't mark - } - if ( comp < 0 ) { - // We're beyond name in the ents list. No more checking to do. - return FALSE; - } - eptr = eptr->next; - } - return FALSE; -} diff --git a/source/geometry/solids/STEP/src/entnode.cc b/source/geometry/solids/STEP/src/entnode.cc deleted file mode 100644 index 122aae707b..0000000000 --- a/source/geometry/solids/STEP/src/entnode.cc +++ /dev/null @@ -1,198 +0,0 @@ -/***************************************************************************** - * entnode.cc * - * * - * Description: The EntNode class is used to store a collection of entity * - * names. It stores them in alphabetical order. It is the key * - * component of the EntList classes, which are used to store * - * information on the instantiable complex entity types. This * - * file contains EntNode member function definitions. * - * * - * Created by: David Rosenfeld * - * Date: 9/18/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -EntNode::EntNode( const char **names ) - /* - * Given a list of entity names, creates a sorted linked list of EntNodes - * corresponding to the list. A name which = "*" is a dummy trailer - * implying the list has been completed. This function first builds the - * list, then sets this to the first element, and then deletes the first - * element. This ensures that `this' points to the start of the list. - */ -{ - int j = 1, comp = 0; - EntNode *prev, *prev2 = NULL, // prev2 - the one before prev - *newnode, *firstnode; - const char *nm; - - // Create a first EntNode: - firstnode = prev = new EntNode( names[0] ); - - while ( names[j] && *names[j] != '*' ) { - nm = names[j]; - while ( prev != NULL && (comp = StrCmpIns( prev->name, nm )) < 0 ) { - prev2 = prev; - prev = prev->next; - } - - // One exceptional case: If new name is same as prev, skip it: - if ( comp != 0 ) { - // At this point, we know the new node belongs between prev2 and - // prev. prev or prev2 may = NULL if newnode belongs at the end of - // the list or before the beginning, respectively. - newnode = new EntNode( nm ); - newnode->next = prev; - if ( prev2 == NULL ) { - // This will be the case if the inner while was never entered. - // That happens when newnode belonged at the beginning of the - // list. If so, reset firstnode. - firstnode = newnode; - } else { - prev2->next = newnode; - } - } - // Reset for next name: - prev = firstnode; - prev2 = NULL; - j++; - } - - // Finally, place the contents of firstnode in 'this', and delete first- - // node. This ensures that 'this' is first. - *this = *firstnode; - firstnode->next = NULL; - // (Otherwise, deleting firstnode would delete entire list.) - delete firstnode; -} - -EntNode &EntNode::operator= ( EntNode &ent ) - /* - * Copies all of ent's values here. - */ -{ - Name( ent.name ); - setmark( ent.mark ); - multSuprs( ent.multSupers ); - next = ent.next; - return *this; -} - -void EntNode::markAll( MarkType stamp ) - /* - * Marks/unmarks all the nodes in this's list (default is to mark). - */ -{ - EntNode *node = this; - - while ( node != NULL ) { - node->mark = stamp; - node = node->next; - } -} - -int EntNode::allMarked() - /* - * Returns TRUE if this and all nodes following it are marked. - */ -{ - EntNode *node = this; - - while ( node != NULL ) { - if ( node->mark == NOMARK ) { - return FALSE; - } - node = node->next; - } - return TRUE; -} - -int EntNode::unmarkedCount() - /* - * Returns the number of unmarked nodes in this's list. - */ -{ - int count = 0; - EntNode *node = this; - - while ( node != NULL ) { - if ( node->mark == NOMARK ) { - count++; - } - node = node->next; - } - return count; -} - -EntNode *EntNode::lastSmaller( EntNode *ent ) - /* - * Starting from `this', search for the last node (along our next's) which - * alphabetically precedes ent. - */ -{ - EntNode *eptr = next, *prev = this; - - if ( *this > *ent ) { - return NULL; - } - while ( eptr && *eptr > *prev && *eptr < *ent ) { - prev = eptr; - eptr = eptr->next; - } - return prev; -} - -void EntNode::sort( EntNode **first ) - /* - * Check if our nodes are in order. If not, re-sort. The earlier part of - * the list has been sorted but not necessarily the remainder. This algo- - * rithm sorts our nodes in chunks, and is fairly efficient when we know - * our nodes are basically in order. (sort() is called from STEPcomplex:: - * Initialize() when we are creating a complex entity and have renamed a - * few of the nodes. The nodes at first were in order; only the renamed - * ones may be out of place.) - */ -{ - EntNode *eptr1, *eptr2, *temp1, *temp2; - - while ( next && *this > *next ) { - - // Find the earliest node greater than next. (I.e., is not only this > - // next but also some of this's preceding nodes. Since the nodes - // earlier in the list are sorted already, we can easily determine the - // ordered chunk of nodes which next should precede.) (eptr1 is - // actually set to the one before, so that we'll know that eptr1->next - // should now be set to next.) - eptr1 = (*first)->lastSmaller( next ); - - // Take the latest node eptr1 is greater than. (I.e., beyond next are - // there more nodes which should be immediately after eptr1.) (The - // succeeding nodes are not necessarily in order, so lastSmaller() also - // checks that nodes later than next are also > their prev's.) - if ( eptr1 ) { - eptr2 = next->lastSmaller( eptr1->next ); - } else { - eptr2= next->lastSmaller( *first ); - } - - // Switch the two lists: - if ( eptr1 ) { - temp1 = eptr1->next; - eptr1->next = next; - temp2 = eptr2->next; - eptr2->next = temp1; - next = temp2; - } else { - // `this' should be first in the list. - temp2 = eptr2->next; - eptr2->next = *first; - *first = next; - next = temp2; - } - } - - if ( next ) { - next->sort( first ); - } -} diff --git a/source/geometry/solids/STEP/src/errordesc.cc b/source/geometry/solids/STEP/src/errordesc.cc deleted file mode 100644 index fc30776a70..0000000000 --- a/source/geometry/solids/STEP/src/errordesc.cc +++ /dev/null @@ -1,298 +0,0 @@ - -/* -* NIST Utils Class Library -* clutils/errordesc.cc -* February, 1993 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: errordesc.cc,v 1.5 2003/06/06 17:07:35 gcosmo Exp $ */ - -#include -#include - -DebugLevel ErrorDescriptor::_debug_level = DEBUG_OFF; -std::ostream * ErrorDescriptor::_out = 0; - -void -ErrorDescriptor::PrintContents(std::ostream &out) const -{ - SCLstring s; - out << "Severity: " << severity(s) << G4endl; - if(_userMsg) - { - out << "User message in parens:" << G4endl << "("; - out << UserMsg() << ")" << G4endl; - } - if(_detailMsg) - { - out << "Detailed message in parens:" << G4endl << "("; - out << DetailMsg() << ")" << G4endl; - } -} - -const char * -ErrorDescriptor::severity(SCLstring &s) const -{ - s.set_null(); - switch(severity()) - { - case SEVERITY_NULL : - { - s = "SEVERITY_NULL"; - break; - } - case SEVERITY_USERMSG : - { - s = "SEVERITY_USERMSG"; - break; - } - case SEVERITY_INCOMPLETE : - { - s = "SEVERITY_INCOMPLETE"; - break; - } - case SEVERITY_WARNING : - { - s = "SEVERITY_WARNING"; - break; - } - case SEVERITY_INPUT_ERROR : - { - s = "SEVERITY_INPUT_ERROR"; - break; - } - case SEVERITY_BUG : - { - s = "SEVERITY_BUG"; - break; - } - case SEVERITY_EXIT : - { - s = "SEVERITY_EXIT"; - break; - } - case SEVERITY_DUMP : - { - s = "SEVERITY_DUMP"; - break; - } - case SEVERITY_MAX : - { - s = "SEVERITY_MAX"; - break; - } - } - return s.chars(); -} - - -Severity -ErrorDescriptor::GetCorrSeverity(const char *s) -{ -// G4cout << "s is (" << s << ") \n"; - if(s && s[0] != 0) - { - SCLstring s2; - StrToUpper(s,s2); -// G4cout << "s after if is (" << s << ") \n" << "s2 is (" << s2.chars() << ")\n"; - if(!strcmp(s2.chars(),"SEVERITY_NULL")) - { -// G4cout << "SEVERITY_NULL" << G4endl; - return SEVERITY_NULL; - } - if(!strcmp(s2.chars(),"SEVERITY_USERMSG")) - { -// G4cout << "SEVERITY_USERMSG" << G4endl; - return SEVERITY_USERMSG; - } - if(!strcmp(s2.chars(),"SEVERITY_INCOMPLETE")) - { -// G4cout << "SEVERITY_INCOMPLETE" << G4endl; - return SEVERITY_INCOMPLETE; - } - if(!strcmp(s2.chars(),"SEVERITY_WARNING")) - { -// G4cout << "SEVERITY_WARNING" << G4endl; - return SEVERITY_WARNING; - } - if(!strcmp(s2.chars(),"SEVERITY_INPUT_ERROR")) - { -// G4cout << "SEVERITY_INPUT_ERROR" << G4endl; - return SEVERITY_INPUT_ERROR; - } - if(!strcmp(s2.chars(),"SEVERITY_BUG")) - { -// G4cout << "SEVERITY_BUG" << G4endl; - return SEVERITY_BUG; - } - if(!strcmp(s2.chars(),"SEVERITY_EXIT")) - { -// G4cout << "SEVERITY_EXIT" << G4endl; - return SEVERITY_EXIT; - } - if(!strcmp(s2.chars(),"SEVERITY_DUMP")) - { -// G4cout << "SEVERITY_DUMP" << G4endl; - return SEVERITY_DUMP; - } - if(!strcmp(s2.chars(),"SEVERITY_MAX")) - { -// G4cout << "SEVERITY_MAX" << G4endl; - return SEVERITY_MAX; - } - } - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - G4cerr << "Calling ErrorDescriptor::GetCorrSeverity() with null string\n"; - return SEVERITY_BUG; -} - -ErrorDescriptor::ErrorDescriptor ( Severity s, DebugLevel d) -: _severity (s), - _userMsg (0), - _detailMsg (0) -{ - if (d != DEBUG_OFF) - _debug_level = d; -} - -/* -ErrorDescriptor::ErrorDescriptor ( Severity s, Enforcement e, DebugLevel d) -: _severity (s), - _enforcement_level (e), - _userMsg (0), - _detailMsg (0) -{ - if (d != DEBUG_OFF) - _debug_level = d; -} -*/ - -const char * -ErrorDescriptor::UserMsg () const -{ - if(_userMsg) - return _userMsg->chars(); - else - return ""; -} - -void -ErrorDescriptor::UserMsg ( const char * msg) -{ - if(!_userMsg) -#ifdef __OSTORE__ - _userMsg = new (os_database::of(this), - SCLstring::get_os_typespec()) SCLstring; -#else - _userMsg = new SCLstring; -#endif - *_userMsg = msg; -} - -void -ErrorDescriptor::PrependToUserMsg ( const char * msg) -{ - if(!_userMsg) -#ifdef __OSTORE__ - _userMsg = new (os_database::of(this), - SCLstring::get_os_typespec()) SCLstring; -#else - _userMsg = new SCLstring; -#endif - _userMsg -> Prepend (msg); -} - -void -ErrorDescriptor::AppendToUserMsg ( const char c) -{ - if(!_userMsg) -#ifdef __OSTORE__ - _userMsg = new (os_database::of(this), - SCLstring::get_os_typespec()) SCLstring; -#else - _userMsg = new SCLstring; -#endif - _userMsg -> Append(c); -} - -void -ErrorDescriptor::AppendToUserMsg ( const char * msg) -{ - if(!_userMsg) -#ifdef __OSTORE__ - _userMsg = new (os_database::of(this), - SCLstring::get_os_typespec()) SCLstring; -#else - _userMsg = new SCLstring; -#endif - _userMsg -> Append (msg); -} - - -const char * -ErrorDescriptor::DetailMsg () const -{ - if(_detailMsg) - return _detailMsg->chars(); - else - return ""; -} - -void -ErrorDescriptor::DetailMsg ( const char * msg) -{ - if(!_detailMsg) -#ifdef __OSTORE__ - _detailMsg = new (os_database::of(this), - SCLstring::get_os_typespec()) SCLstring; -#else - _detailMsg = new SCLstring; -#endif - *_detailMsg = msg; - // G4cerr << "D " << _detailMsg->chars() << '\n'; -} - -void -ErrorDescriptor::PrependToDetailMsg (const char * msg) -{ - if(!_detailMsg) -#ifdef __OSTORE__ - _detailMsg = new (os_database::of(this), - SCLstring::get_os_typespec()) SCLstring; -#else - _detailMsg = new SCLstring; -#endif - _detailMsg -> Prepend (msg); -} - -void -ErrorDescriptor::AppendToDetailMsg ( const char c) -{ - if(!_detailMsg) -#ifdef __OSTORE__ - _detailMsg = new (os_database::of(this), - SCLstring::get_os_typespec()) SCLstring; -#else - _detailMsg = new SCLstring; -#endif - _detailMsg -> Append(c); -} - -void -ErrorDescriptor::AppendToDetailMsg (const char * msg) -{ - if(!_detailMsg) -#ifdef __OSTORE__ - _detailMsg = new (os_database::of(this), - SCLstring::get_os_typespec()) SCLstring; -#else - _detailMsg = new SCLstring; -#endif - _detailMsg -> Append (msg); -} diff --git a/source/geometry/solids/STEP/src/gennode.cc b/source/geometry/solids/STEP/src/gennode.cc deleted file mode 100644 index a9c4cfe6d7..0000000000 --- a/source/geometry/solids/STEP/src/gennode.cc +++ /dev/null @@ -1,37 +0,0 @@ - -/* -* NIST Utils Class Library -* clutils/gennode.cc -* September 1996 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: gennode.cc,v 1.1 2000/01/21 13:43:10 gcosmo Exp $ */ - -#include -#include - -#ifdef __O3DB__ -#include -#endif -////////////////////////////////////////////////////////////////////////////// -// class GenericNode inline functions that depend on other classes -// inline functions -// -// depends on: -// void GenNodeList::Append(GenericNode *node) from the gennodelist.h -////////////////////////////////////////////////////////////////////////////// - -void GenericNode::Append(GenNodeList *list) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "GenericNode::Append()\n"; -// if(debug_level >= PrintValues) -// G4cout << "GenericNode::this : '" << this << "'\n"; - list->Append(this); -} - diff --git a/source/geometry/solids/STEP/src/gennodearray.cc b/source/geometry/solids/STEP/src/gennodearray.cc deleted file mode 100644 index d70d57f8bb..0000000000 --- a/source/geometry/solids/STEP/src/gennodearray.cc +++ /dev/null @@ -1,201 +0,0 @@ - -/* -* NIST Utils Class Library -* clutils/gennodearray.h -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: gennodearray.cc,v 1.4 2000/11/20 18:15:02 gcosmo Exp $ */ - -//#include "/proj/pdevel/autoc/arch.sunCC.iv/scl_cf.h" -// This is an scl configuration file generated by the configure script -// generated using gnu's autoconf -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include -#include - -#ifndef HAVE_MEMMOVE -extern "C" { -//#ifdef __OSTORE__ -//#include -//#else - extern void * memmove(void *, const void *, size_t); -/* extern char * memset(char *, int, int); */ -//#endif -} -#endif - -GenericNode::GenericNode() -{ - next = 0; - prev = 0; -} - -GenericNode::~GenericNode() -{ - Remove(); -} - -//#ifdef __OSTORE__ -//GenNodeArray::GenNodeArray (os_database *db, int defaultSize) -//#else -GenNodeArray::GenNodeArray (int defaultSize) -//#endif -{ - _bufsize = defaultSize; -/* -#ifdef __OSTORE__ - { - os_typespec tmp_ts("GenericNode*"); - _buf = new (os_segment::of(this), &tmp_ts, _bufsize) - GenericNode*[_bufsize]; - } -#else -*/ - _buf = new GenericNode*[_bufsize]; -//#endif - memset(_buf, 0, _bufsize*sizeof(GenericNode*)); - _count = 0; -} - -GenNodeArray::~GenNodeArray () -{ - -// int i; - // this is dangerous because several things point at these nodes - // also whatever is derived from this thing might do this -// for(i = 0; i < _count; i++) -// delete _buf[i]; - delete [] _buf; -} - -int GenNodeArray::Index (GenericNode** gn) -{ - return ((gn - _buf) / sizeof(GenericNode*)); -} - -void GenNodeArray::Append(GenericNode* gn) -{ - Insert(gn, _count); -} - -int GenNodeArray::Insert(GenericNode* gn) -{ - return Insert(gn, _count); -} - -void -GenNodeArray::Check (int index) -{ - GenericNode** newbuf; - - if (index >= _bufsize) { -// int oldBufSize = _bufsize; - _bufsize = (index+1) * 2; -/* -#ifdef __OSTORE__ - { - os_typespec tmp_ts("GenericNode*"); - newbuf = new (os_segment::of(this), &tmp_ts, _bufsize) - GenericNode*[_bufsize]; - } -#else -*/ - newbuf = new GenericNode*[_bufsize]; -//#endif - - - memset(newbuf, 0, _bufsize); -// memset(newbuf[oldBufSize], 0, -// (_bufsize - oldBufSize)*sizeof(GenericNode*) ); -// bcopy(_buf, newbuf, _count*sizeof(GenericNode*)); -// Josh L, 5/2/95 -// memcpy(newbuf, _buf, _count*sizeof(GenericNode*)); -// Dave memcpy is not working since memory areas overlap - memmove(newbuf, _buf, _count*sizeof(GenericNode*)); - delete [] _buf; - _buf = newbuf; - } -} - -int -GenNodeArray::Insert (GenericNode* gn, int index) -{ - const GenericNode** spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = (const GenericNode**)&_buf[index]; -// bcopy(spot, spot+1, (_count - index)*sizeof(GenericNode*)); -// Josh L, 5/2/95 -// memcpy(spot+1, spot, (_count - index)*sizeof(GenericNode*)); -// Dave memcpy is not working since memory areas overlap - memmove(spot+1, spot, (_count - index)*sizeof(GenericNode*)); - - } else { - Check(index); - spot = (const GenericNode**)&_buf[index]; - } - *spot = gn; - ++_count; - return index; -} - -void -GenNodeArray::Remove (int index) -{ - if (0 <= index && index < _count) { - --_count; - const GenericNode** spot = (const GenericNode**)&_buf[index]; -// bcopy(spot+1, spot, (_count - index)*sizeof(GenericNode*)); -// Josh L, 5/2/95 -// memcpy(spot, spot+1, (_count - index)*sizeof(GenericNode*)); -// Dave memcpy is not working since memory areas overlap - memmove(spot, spot+1, (_count - index)*sizeof(GenericNode*)); - _buf[_count] = 0; - } -} - -void GenNodeArray::ClearEntries () -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "GenNodeArray::Clear()\n"; - int i; - for(i = 0 ; i < _count; i++) - _buf[i] = 0; - _count = 0; -} - -void GenNodeArray::DeleteEntries() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "GenNodeArray::DeleteEntries()\n"; - int i; - for(i = 0 ; i < _count; i++) - delete (_buf[i]); - _count = 0; -} - - -int GenNodeArray::Index (GenericNode* gn) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "GenNodeArray::Index()\n"; - for (int i = 0; i < _count; ++i) { - if (_buf[i] == gn) { - return i; - } - } - return -1; -} - diff --git a/source/geometry/solids/STEP/src/gennodelist.cc b/source/geometry/solids/STEP/src/gennodelist.cc deleted file mode 100644 index ad6323dc9e..0000000000 --- a/source/geometry/solids/STEP/src/gennodelist.cc +++ /dev/null @@ -1,93 +0,0 @@ - -/* -* NIST Utils Class Library -* clutils/gennodelist.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: gennodelist.cc,v 1.1 2000/01/21 13:43:11 gcosmo Exp $ */ - -#include -#include -//#include -#include - - // inserts after existNode -void GenNodeList::InsertAfter(GenericNode *newNode, - GenericNode *existNode) -{ - newNode->next = existNode->next; - newNode->next->prev = newNode; - - newNode->prev = existNode; - existNode->next = newNode; -} - - // inserts before existNode -void GenNodeList::InsertBefore(GenericNode *newNode, - GenericNode *existNode) -{ - existNode->prev->next = newNode; - newNode->prev = existNode->prev; - - newNode->next = existNode; - existNode->prev = newNode; -} - - // inserts before the head node -void GenNodeList::Append(GenericNode *node) -{ - InsertBefore(node, head); -} - -void -GenNodeList::Remove(GenericNode *node) -{ - if(node != head){ - node->next->prev = node->prev; - node->prev->next = node->next; - node->next = 0; - node->prev = 0; - } -} - -void GenNodeList::ClearEntries() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "GenNodeList::ClearEntries()\n"; - GenericNode *gnPrev = head->Next(); - GenericNode *gn = gnPrev->Next(); - - while(gnPrev != head) - { - gnPrev->prev = 0; - gnPrev->next = 0; - gnPrev = gn; - gn = gn->Next(); - } - head->next = head; - head->prev = head; -} - -void GenNodeList::DeleteEntries() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "GenNodeList::DeleteEntries()\n"; - GenericNode *gnPrev = head->Next(); - GenericNode *gn; - head->next = 0; - - while(gnPrev != head) - { - gn = gnPrev->Next(); - delete gnPrev; - gnPrev = gn; - } - head->next = head; - head->prev = head; -} diff --git a/source/geometry/solids/STEP/src/instmgr.cc b/source/geometry/solids/STEP/src/instmgr.cc deleted file mode 100644 index 098d72641e..0000000000 --- a/source/geometry/solids/STEP/src/instmgr.cc +++ /dev/null @@ -1,445 +0,0 @@ - -/* -* NIST STEP Editor Class Library -* cleditor/instmgr.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: instmgr.cc,v 1.6 2003/06/06 17:07:35 gcosmo Exp $ */ - -////////////////////////////////////////////////////////////////////////////// -// -// InstMgr member functions -// -////////////////////////////////////////////////////////////////////////////// - -#include -//#include -#include - -/////////////////////////////////////////////////////////////////////////////// -// debug_level >= 2 => tells when a command is chosen -// debug_level >= 3 => prints values within functions: -/////////////////////////////////////////////////////////////////////////////// -static int debug_level = 2; - // if debug_level is greater than this number then - // function names get printed out when executed -//static int PrintFunctionTrace = 2; - // if debug_level is greater than this number then - // values within functions get printed out -//static int PrintValues = 3; - - -/////////////////////////////////////////////////////////////////////////////// - -void -InstMgr::PrintSortedFileIds() -{ - MgrNode *mn = 0; - int count = InstanceCount(); - int i = 0; - for(i = 0; i < count; i++) - { - mn = (MgrNode *)((*sortedMaster)[i]); - G4cout << i << " " << mn->GetFileId() << G4endl; - } -} - -InstMgr::InstMgr(int ownsInstances) - : maxFileId(-1), _ownsInstances(ownsInstances) -{ - -/* -#ifdef __OSTORE__ - master = new (os_segment::of(this), MgrNodeArray::get_os_typespec()) - MgrNodeArray(); - sortedMaster = new (os_segment::of(this), - MgrNodeArraySorted::get_os_typespec()) - MgrNodeArraySorted(); -#else -*/ - master = new MgrNodeArray(); - sortedMaster = new MgrNodeArraySorted(); -//#endif -} - -InstMgr::~InstMgr() -{ - if(_ownsInstances) - { - master->DeleteEntries(); - } -} - -/////////////////////////////////////////////////////////////////////////////// - -void InstMgr::ClearInstances() -{ -// delete master; -// master = new MgrNodeArray(); - master->ClearEntries(); - sortedMaster->ClearEntries(); - maxFileId = -1; -} - -void InstMgr::DeleteInstances() -{ -// delete master; -// master = new MgrNodeArray(); - master->DeleteEntries(); - sortedMaster->ClearEntries(); - maxFileId = -1; -} - -/////////////////////////////////////////////////////////////////////////////// - -/************************************************** - description: - returns: - SEVERITY_NULL: if all instances are complete - SEVERITY_INCOMPLETE: if at least one instance is missing a required attribute - SEVERITY_WARNING: - SEVERITY_INPUT_ERROR: if at least one instance can not be fetched - from the instance list. -**************************************************/ - -enum Severity -InstMgr::VerifyInstances(ErrorDescriptor& err) -{ - int errorCount = 0; - char errbuf[BUFSIZ]; - - int n = InstanceCount(); - MgrNode* mn; - SCLP23(Application_instance)* se; - enum Severity rval = SEVERITY_NULL; - - //for each instance on the list, - //check the MgrNode state. - //if the state is complete then do nothing - //if the state is not complete, - // then check if it is valid - // if it is valid then increment the warning count, - // and set the rval to SEVERITY_INCOMPLETE - // if it is not valid, then increment the error count - // and set the rval to - - for (int i = 0; i < n; ++i) - { - mn = GetMgrNode(i); - if (!mn) - { - ++errorCount; - if (errorCount == 1) - sprintf(errbuf, - "VerifyInstances: Unable to verify the following instances: node %d", - i); - else - sprintf(errbuf,", node %d",i); - - err.AppendToDetailMsg(errbuf); - rval = SEVERITY_INPUT_ERROR; - err.GreaterSeverity(SEVERITY_INPUT_ERROR); - continue; - } - if (debug_level > 3) - G4cerr << "In VerifyInstances: " - << "new MgrNode for " << mn->GetFileId() << " with state " - << mn->CurrState () << G4endl; - if (!mn->MgrNodeListMember(completeSE)) - { - se = mn->GetApplication_instance(); - if (se->ValidLevel(&err,this,0) < SEVERITY_USERMSG) - { - if (rval > SEVERITY_INCOMPLETE) - rval = SEVERITY_INCOMPLETE; - ++errorCount; - if (errorCount == 1) - sprintf(errbuf, - "VerifyInstances: Unable to verify the following instances: #%d", - se->StepFileId()); - else - sprintf(errbuf,", #%d",se->StepFileId()); - err.AppendToDetailMsg(errbuf); - } - } - } - if (errorCount) - { - sprintf(errbuf, - "VerifyInstances: %d invalid instances in list.\n", - errorCount); - err.AppendToUserMsg(errbuf); - err.AppendToDetailMsg(".\n"); - err.GreaterSeverity(SEVERITY_INCOMPLETE); - } - - return rval; -} - -/////////////////////////////////////////////////////////////////////////////// - -MgrNode *InstMgr::FindFileId(int fileId) -{ - int index = sortedMaster->MgrNodeIndex(fileId); - if(index >= 0) - return (MgrNode *)(*sortedMaster)[index]; - else - return (MgrNode *)0; -} - -/////////////////////////////////////////////////////////////////////////////// - - // get the index into display list given a SCLP23(Application_instance) - // called by see initiated functions -int InstMgr::GetIndex(MgrNode *mn) -{ - return mn->ArrayIndex(); -} - -/////////////////////////////////////////////////////////////////////////////// - -int InstMgr::GetIndex(SCLP23(Application_instance) *se) -{ - int fileId = se->StepFileId(); - return sortedMaster->MgrNodeIndex(fileId); -} - -/////////////////////////////////////////////////////////////////////////////// - -int InstMgr::VerifyEntity(int fileId, const char *expectedType) -{ - MgrNode *mn = FindFileId(fileId); - if(mn) - { - if(!strcmp(expectedType, mn->GetApplication_instance()->EntityName())) - return 2; // types match - else - return 1; // possible mismatch depending on descendants - } - else - return 0; -} - -/////////////////////////////////////////////////////////////////////////////// -// Append instance to the list of instances. Checks the file id and -// sets it if 1) it is not set already or 2) it already exists in the list. - -MgrNode *InstMgr::Append(SCLP23(Application_instance) *se, stateEnum listState) -{ - if (debug_level > 3) - G4cout << "#" << se->StepFileId() << " append node to InstMgr" << G4endl; - - MgrNode *mn =0; - - if (se->StepFileId () == 0) // no id assigned - se->StepFileId( NextFileId () ); // assign a file id - - if (mn = FindFileId (se->StepFileId())) // if id already in list - // and it's because instance is already in list - if (GetApplication_instance (mn) == se) - return 0; // return 0 or mn? - else se->StepFileId( NextFileId () ); // otherwise assign a new file id - - // update the maxFileId if needed - if (se->StepFileId() > MaxFileId()) maxFileId = se->StepFileId(); - -/* -#ifdef __OSTORE__ - mn = new (os_segment::of(this), MgrNode::get_os_typespec()) - MgrNode(se, listState); - G4cout << "Appended entity: " << std::flush; - G4cout << se->EntityName() << G4endl << std::flush; -#else -*/ - mn = new MgrNode(se, listState); -//#endif - if (debug_level > 3) - G4cerr << "new MgrNode for " << mn->GetFileId() << " with state " - << mn->CurrState () << G4endl; - if(listState == noStateSE) - G4cout << "append to InstMgr **ERROR ** node #" << se->StepFileId() << - " doesn't have state information" << G4endl; - master->Append(mn); - sortedMaster->Insert(mn); -//PrintSortedFileIds(); - return mn; -} - -/////////////////////////////////////////////////////////////////////////////// - -void InstMgr::Delete(MgrNode *node) -{ - // delete the node from its current state list - node->Remove(); - - int index; - - // get the index of the node in the sorted master array - index = sortedMaster->MgrNodeIndex(node->GetFileId()); - // remove the node from the sorted master array - sortedMaster->Remove(index); - - // get the index into the master array by ptr arithmetic - index = node->ArrayIndex(); - master->Remove(index); - - delete node; -} - -/////////////////////////////////////////////////////////////////////////////// - -void InstMgr::Delete(SCLP23(Application_instance) *se) -{ - Delete (FindFileId (se->StepFileId())); -} - -/////////////////////////////////////////////////////////////////////////////// - -void InstMgr::ChangeState(MgrNode *node, stateEnum listState) -{ - switch(listState){ - case completeSE: - if (debug_level > 3) - G4cout << "#" << node->GetApplication_instance()->StepFileId() << - " change node to InstMgr's complete list\n"; - node->ChangeState(listState); - break; - case incompleteSE: - if (debug_level > 3) - G4cout << "#" << node->GetApplication_instance()->StepFileId() << - " change node to InstMgr's incomplete list\n"; - node->ChangeState(listState); - break; - case newSE: - if (debug_level > 3) - G4cout << "#" << node->GetApplication_instance()->StepFileId() << - " change node to InstMgr's new list\n"; - node->ChangeState(listState); - break; - case deleteSE: - if (debug_level > 3) - G4cout << "#" << node->GetApplication_instance()->StepFileId() << - " change node to InstMgr's delete list\n"; - node->ChangeState(listState); - break; - case noStateSE: - G4cout << "#" << node->GetApplication_instance()->StepFileId() << - "ERROR can't change this node state\n"; - node->Remove(); - break; - } -} - -/////////////////////////////////////////////////////////////////////////////// - -/************************************************** - description: - This function returns an integer value indicating - the number of instances with the given name appearing - on the instance manager. -**************************************************/ -int -InstMgr::EntityKeywordCount(const char* name) -{ - int count = 0; - MgrNode* node; - SCLP23(Application_instance)* se; - int n = InstanceCount(); - for (int j = 0; jGetApplication_instance(); - if (!strcmp(se->EntityName(), - PrettyTmpName(name))) - ++count; - } - return count; -} - -/////////////////////////////////////////////////////////////////////////////// - -SCLP23(Application_instance) * -InstMgr::GetApplication_instance(int index) -{ - MgrNode *mn = (MgrNode*)(*master)[index]; - if(mn) - return mn->GetApplication_instance(); - else - return 0; -} - -SCLP23(Application_instance) * -InstMgr::GetSTEPentity(int index) -{ - MgrNode *mn = (MgrNode*)(*master)[index]; - if(mn) - return mn->GetApplication_instance(); - else - return 0; -} - -/////////////////////////////////////////////////////////////////////////////// - -/************************************************** - description: - This function returns the first entity (by index) - on the instance manager, which has the given - entity name. It starts its search at starting_index, - and returns ENTITY_NULL if a match does not occur - before the last index is reached. This function - does not wrap around to search indices before the - starting_index. -**************************************************/ -SCLP23(Application_instance)* -InstMgr::GetApplication_instance(const char* entityKeyword, int starting_index) -{ - MgrNode *node; - SCLP23(Application_instance) *se; - - int count = InstanceCount(); - for (int j = starting_index; jGetApplication_instance(); - if (!strcmp(se->EntityName(), - PrettyTmpName(entityKeyword))) - return se; - } - return ENTITY_NULL; -} - -SCLP23(Application_instance)* -InstMgr::GetSTEPentity(const char* entityKeyword, int starting_index) -{ - MgrNode *node; - SCLP23(Application_instance) *se; - - int count = InstanceCount(); - for (int j = starting_index; jGetApplication_instance(); - if (!strcmp(se->EntityName(), - PrettyTmpName(entityKeyword))) - return se; - } - return ENTITY_NULL; -} - -/////////////////////////////////////////////////////////////////////////////// - -void * -InstMgr::GetSEE(int index) -{ - MgrNode *mn = (MgrNode*)(*master)[index]; - if(mn) - return mn->SEE(); - else - return 0; -} diff --git a/source/geometry/solids/STEP/src/match_ors.cc b/source/geometry/solids/STEP/src/match_ors.cc deleted file mode 100644 index 5d56eb8d99..0000000000 --- a/source/geometry/solids/STEP/src/match_ors.cc +++ /dev/null @@ -1,163 +0,0 @@ -/***************************************************************************** - * match-ors.cc * - * * - * Description: Contains the matchORs() functions for the EntList descen- * - * dants. The matchORs() of AndOrList and AndList recursively * - * loop through their non-SIMPLE EntList children to determine * - * how well their OR descendants match an EntNode. OrList's * - * matchORs() function checks its children one at a time for * - * both complete and incomplete matches of EntNode and stores * - * the resulting information. * - * * - * Created by: David Rosenfeld * - * Date: 10/17/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -MatchType AndOrList::matchORs( EntNode *ents ) - /* - * Loops through descendants of this, invoking their matchOR functions. - * Returns the status of how well this's OR descendants match the nodes of - * ents. We only check our children whose viable values = UNKNOWN. This - * signifies that when we checked them previously with matchNonORs(), we - * couldn't determine their match value. And that happens when there are - * OR descendants we didn't test. Thus, UNKNOWN tells us that this child - * is an OR, or has an OR somewhere beneath it which we must process now. - */ -{ - EntList *child = childList->firstWanted( UNKNOWN ); - - while ( child != NULL ) { - if ( ((MultList *)child)->matchORs( ents ) == UNSATISFIED ) { - // Unmark whatever we may have marked. (E.g., there may have - // been an AND beneath and it started marking and then found one - // it couldn't match.) - child->unmarkAll( ents ); - } - child = child->nextWanted( UNKNOWN ); - } - // NOTE - We went through entire loop above even if we found a MATCHALL - // sometime in the middle. After finding a bug, I realized we couldn't - // stop in the middle. So long as there are more UNKNOWN children, one - // of those children may become UNSAT later and we'll have to unmark all - // its descendants. If so, some of the marks we have now may disappear. - setViableVal( ents ); - return viable; -} - -MatchType AndList::matchORs( EntNode *ents ) - /* - * Loops through the descendants of this with viable val = UNKNOWN, invo- - * king their matchOR functions. Returns the status of how well this's OR - * descendants match the nodes of ents. We only take UNKNOWN's because - * they will lead us to OR's, as explained in AndOrList::matchORs(). - */ -{ - EntList *child = childList->firstWanted( UNKNOWN ); - - while ( child != NULL ) { - if ( ((MultList *)child)->matchORs( ents ) == UNSATISFIED ) { - viable = UNSATISFIED; - return UNSATISFIED; - // This means the whole AndList has failed, by definition. - } - child = child->nextWanted( UNKNOWN ); - // Note - we loop through all even if one of our children returned - // MATCHALL. Since we're an AND, we must look through all branches - - // to search for any other conditions we can't meet. If one of our - // children did MATCHALL, its viable val will be set to MATCHALL and - // we'll catch it in setViableVal() called below. - } - setViableVal( ents ); - return viable; -} - -MatchType OrList::matchORs( EntNode *ents ) - /* - * Checks the branches of an OrList to search for a match to the nodes of - * ents. This function searches this's children and marks all the viable - * paths, or paths which mark off at least some of the remaining nodes of - * ents. It then selects the first one, marking it only with an ORMARK to - * retain the info that these were only conditionally marked. Also, if a - * MATCHALL solution was found, that is returned immediately. - */ -{ - int count; - EntList *child = childList; - MatchType retval; - - for ( count=0; countnext ) { - - // First call (recursively) matchNonORs() to check off all nodes that - // the descendants of this branch can definitely mark off: - if ( child->join != OR ) { - retval = child->matchNonORs( ents ); - } - - // Then try the OR's. At this point, any OR's that we get to (in - // recursively checking the descendants of child) will know that if - // it can mark new node(s), it's a viable option. - if ( child->viable == UNKNOWN ) { - // If viable = UNKNOWN, this child must either be an OR or a Mult - // with an OR underneath. Only ORs are still indeterminate after - // running matchNonORs() above. (We also exclude the case of an - // AND child who may have OR desc's, but already determined that - // it can't satisfy one of its paths and so returned UNSAT.) - retval = ((MultList *)child)->matchORs( ents ); - } - - // Now register the result: - if ( retval >= MATCHSOME ) { - // Note: In the past I would return immediately if retval = - // MATCHALL, thinking our job was done. I changed it when we - // started dealing with combo-CLists (sub w/ >1 super). I realized - // that even if down here we got a MATCHALL, we may have to reject - // above, so we must keep searching. - if ( choice == -1 ) { - choice1 = choice = count; - } - choiceCount++; - if ( viable < retval ) { - viable = retval; - } - } else { - // At this point, retval must = SATISFIED or UNSAT. Neither - // result gives us a possible solution since neither marks any - // new nodes. He we keep track of the best retval we've gotten - // between the two remaining values. It's important to know if - // retval = SATISFIED. In case there is no better result, this - // Will cause us to tell our parent that we have at least one - // satisfactory path. Thus, if our parent is an AND, it'll know - // that this branch doesn't violate anything. - if ( viable < retval ) { - viable = retval; - } - } - - // Undo this choice before we try the next: - child->unmarkAll( ents ); - } - - // Accept the first viable solution, if there is one: - if ( viable >= MATCHSOME ) { - // If there are some MATCHSOME solutions, accept the first. accept- - // Choice() begins by accepting the child at "choice". But if this - // does not mark anything new, it loops until it finds a choice that - // does mark (if there is one). There's no point marking any earlier - // ones. There may be earlier children which are set to MATCHSOME - // because they *may* mark (since they match nodes which are only - // conditionally marked). But now we're looking for a child which - // *actually* marks under the current circumstances. - acceptChoice( ents ); - } - if ( viable == MATCHALL ) { - return getChild( choice1 )->viable; - // viable == MATCHALL because we found a MATCHALL sol'n along the way, - // but that wasn't necessarily the choice acceptChoice() took now. - // (See note above why we don't drop everything and just accept the - // MATCHALL.) - } else { - return viable; - } -} diff --git a/source/geometry/solids/STEP/src/mgrnode.cc b/source/geometry/solids/STEP/src/mgrnode.cc deleted file mode 100644 index 59a85ff895..0000000000 --- a/source/geometry/solids/STEP/src/mgrnode.cc +++ /dev/null @@ -1,220 +0,0 @@ - -/* -* NIST STEP Editor Class Library -* cleditor/mgrnode.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: mgrnode.cc,v 1.4 2000/01/21 13:43:12 gcosmo Exp $ */ - -#include -#include -#include -#include - -#include -//#include -#include - -#include "G4ios.hh" - -void *MgrNode::SEE() -{ - return (di ? di->SEE() : 0); -} - -int MgrNode::GetFileId() -{ - return (se ? se->GetFileId() : -1); -} - -void MgrNode::Remove() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::Remove()\n"; -// if(debug_level >= PrintValues) -// G4cout << "MgrNode::this : '" << this << "'\n"; - GenericNode::Remove(); -// DON'T DO THIS!! currState = noStateSE; -} - - // searches current list for fileId -MgrNode *MgrNode::StateFindFileId(int fileId) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::StateFindFileId()\n"; - MgrNode *startNode = this; - if(startNode->GetFileId() == fileId) return this; - else - { - // mn is really a MgrNode - MgrNode *mn = (MgrNode *)(startNode->Next()); - while(mn != startNode) - { - if( mn->GetFileId() == fileId) - return (MgrNode *)mn; - mn = ((MgrNode *)mn->Next()); - } - return (MgrNode *)0; - } -} - -MgrNode::~MgrNode() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::~MgrNode()\n"; -// if(debug_level >= PrintValues) -// G4cout << "MgrNode::this : '" << this << "'\n"; - if(se) - delete se; - if(di) - delete di; -// GenericNode::Remove(); // this is called by default. -} - -///////////////////// class MgrNode Display Functions ///////////////////////// - -displayStateEnum MgrNode::DisplayState() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::DisplayState()\n"; - return (di ? di->DisplayState() : noMapState); -} - -int MgrNode::IsDisplayState(displayStateEnum ds) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::IsDisplayState()\n"; - return (di ? di->DisplayListMember(ds) : 0); -} - -GenericNode *MgrNode::NextDisplay() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::NextDisplay()\n"; -// return (di ? ((DisplayNode *)di->Next()) : (DisplayNode *)0); - if(di) - { -// GenericNode *dn = di->Next(); -// return (DisplayNode *)dn; -// return (DisplayNode *)(di->Next()); - return di->Next(); - } - else - return 0; -} - -GenericNode *MgrNode::PrevDisplay() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::PrevDisplay()\n"; -// return (di ? ((DisplayNode *)di->Prev()) : 0); - if(di) - return di->Prev(); - else - return 0; -} - -// STATE LIST OPERATIONS - -// deletes from previous cmd list & puts on cmd list cmdList -int MgrNode::ChangeList(DisplayNodeList *cmdList) -{ - if(!di) - di = new class DisplayNode(this); - return di->ChangeList(cmdList); -} - -// deletes from previous cmd list & puts on cmd list cmdList -int MgrNode::ChangeList(MgrNodeList *cmdList) -{ - Remove(); - cmdList->Append(this); - return 1; -} - -int MgrNode::ChangeState(displayStateEnum s) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::ChangeState()\n"; - if(di) - { - return di->ChangeState(s); - } - return 0; -} - -int MgrNode::ChangeState(stateEnum s) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::ChangeState()\n"; - currState = s; - // for now, later need to type check somehow and return success or failure - return 1; -} - -void MgrNode::Init(SCLP23(Application_instance) *s, - stateEnum listState, - MgrNodeList *list) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::Init()\n"; - se = s; - arrayIndex = -1; - di = 0; - currState = listState; - if(list) - { - list->Append(this); - } -} - - // used for sentinel node on lists of MgrNodes -MgrNode::MgrNode() -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::MgrNode()\n"; -// if(debug_level >= PrintValues) -// G4cout << "MgrNode::this : '" << this << "'\n"; - Init(0, noStateSE, 0); -} - -MgrNode::MgrNode(SCLP23(Application_instance) *StepEntPtr) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::MgrNode()\n"; -// if(debug_level >= PrintValues) -// G4cout << "MgrNode::this : '" << this << "'\n"; - Init(StepEntPtr, noStateSE, 0); -} - - // 'listState' == - // completeSE - if reading valid exchange file - // incompleteSE or completeSE - if reading working session file - // newSE - if instance is created by user using editor (probe) -MgrNode::MgrNode(SCLP23(Application_instance) *StepEntPtr, stateEnum listState) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::MgrNode()\n"; -// if(debug_level >= PrintValues) -// G4cout << "MgrNode::this : '" << this << "'\n"; - Init(StepEntPtr, listState, 0); -} - // 'listState' == - // completeSE - if reading valid exchange file - // incompleteSE or completeSE - if reading working session file - // newSE - if instance is created by user using editor (probe) -MgrNode::MgrNode(SCLP23(Application_instance) *StepEntPtr, stateEnum listState, MgrNodeList *list) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNode::MgrNode()\n"; -// if(debug_level >= PrintValues) -// G4cout << "MgrNode::this : '" << this << "'\n"; - Init(StepEntPtr, listState, list); - -} diff --git a/source/geometry/solids/STEP/src/mgrnodearray.cc b/source/geometry/solids/STEP/src/mgrnodearray.cc deleted file mode 100644 index abb38e3efb..0000000000 --- a/source/geometry/solids/STEP/src/mgrnodearray.cc +++ /dev/null @@ -1,257 +0,0 @@ - -/* -* NIST STEP Editor Class Library -* cleditor/mgrnodearray.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: mgrnodearray.cc,v 1.4 2000/11/20 18:15:02 gcosmo Exp $ */ - -/* - * MgrNodeArray - dynamic array object of MgrNodes. - * the array part of this is copied from Unidraws UArray - dynamic array object - * Copyright (c) 1990 Stanford University - */ - -/////////////////////////////////////////////////////////////////////////////// -// debug_level >= 2 => tells when a command is chosen -// debug_level >= 3 => prints values within functions: -// e.g. 1) entity type list when read -// 2) entity instance list when read -/////////////////////////////////////////////////////////////////////////////// -static int debug_level = 1; - // if debug_level is greater than this number then - // function names get printed out when executed -static int PrintFunctionTrace = 2; - // if debug_level is greater than this number then - // values within functions get printed out -//static int PrintValues = 3; - -#include -//#include -#include - -#include // to get bcopy() - ANSI - - -////////////////////////////////////////////////////////////////////////////// -// class MgrNodeArray member functions -////////////////////////////////////////////////////////////////////////////// - -//#ifdef __OSTORE__ -//MgrNodeArray::MgrNodeArray(os_database *db, int defaultSize) -// : GenNodeArray(db, defaultSize) -//{ -//} -//#endif - -MgrNodeArray::MgrNodeArray(int defaultSize) - : GenNodeArray(defaultSize) -{ -} - -void MgrNodeArray::AssignIndexAddress(int index) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNodeArray::AssignIndexAddress()\n"; - ((MgrNode *)_buf[index])->ArrayIndex(index); -} - -MgrNodeArray::~MgrNodeArray() -{ - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArray::~MgrNodeArray()\n"; - DeleteEntries(); -} - -/*****************************************************************************/ - -void MgrNodeArray::ClearEntries() -{ - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArray::ClearEntries()\n"; - int i; - for(i = 0 ; i < _count; i++) - _buf[i] = 0; - _count = 0; -} - -/*****************************************************************************/ - -void MgrNodeArray::DeleteEntries() -{ - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArray::DeleteEntries()\n"; - int i; - for(i = 0 ; i < _count; i++) - delete ((MgrNode *)_buf[i]); - _count = 0; -} - -/*****************************************************************************/ - -int MgrNodeArray::Insert(GenericNode* gn, int index) -{ - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArray::Insert()\n"; - int AssignedIndex = GenNodeArray::Insert(gn, index); - int i; - for(i = AssignedIndex ; i < _count; i++) - ((MgrNode *)_buf[i])->ArrayIndex(i); - return AssignedIndex; -} - -/*****************************************************************************/ - -void MgrNodeArray::Remove(int index) { - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArray::Remove()\n"; - if (0 <= index && index < _count) { - GenNodeArray::Remove(index); - int i; - for(i = index; i < _count; i++) - ((MgrNode *)_buf[i])->ArrayIndex(i); - } -} - -/*****************************************************************************/ - -int MgrNodeArray::MgrNodeIndex(int fileId) -{ - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArray::MgrNodeIndex()\n"; - int i; - for (i = 0; i < _count; ++i) { - if( ((MgrNode *)_buf[i])->GetApplication_instance()->GetFileId() == fileId) { - return i; - } - } - return -1; -} - -////////////////////////////////////////////////////////////////////////////// -// class MgrNodeArraySorted member functions -////////////////////////////////////////////////////////////////////////////// - -//#ifdef __OSTORE__ -//MgrNodeArraySorted::MgrNodeArraySorted(os_database *db, int defaultSize) -// : GenNodeArray(db, defaultSize) -//{ -//} -//#endif - -MgrNodeArraySorted::MgrNodeArraySorted(int defaultSize) - : GenNodeArray(defaultSize) -{ -} - -int MgrNodeArraySorted::Insert (GenericNode* gn) { -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNodeArraySorted::Insert()\n"; - - // since gn is really a MgrNode - int fileId = ((MgrNode *)gn)->GetApplication_instance()->GetFileId(); - - int index = FindInsertPosition(fileId); - - return GenNodeArray::Insert(gn, index); -} - -int MgrNodeArraySorted::Index (GenericNode* gn) { -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNodeArraySorted::Index()\n"; - // since gn is really a MgrNode - return MgrNodeIndex(((MgrNode *)gn)->GetFileId()); -} - -int MgrNodeArraySorted::Index (GenericNode** gn) { -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNodeArraySorted::Index()\n"; - // since gn is really a MgrNode - return MgrNodeIndex(((MgrNode *)(*gn))->GetFileId()); -} - -void MgrNodeArraySorted::ClearEntries() -{ - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArraySorted::ClearEntries()\n"; - int i; - for(i = 0 ; i < _count; i++) - _buf[i] = 0; - _count = 0; -} - -/*****************************************************************************/ - -void MgrNodeArraySorted::DeleteEntries() -{ - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArraySorted::DeleteEntries()\n"; - int i; - for(i = 0 ; i < _count; i++) - delete ((MgrNode *)_buf[i]); - _count = 0; -} - -/*****************************************************************************/ - - // the reason this is written this way is because most of the - // time the file id will be higher than any seen so far and - // thus the insert position will be at the end -int MgrNodeArraySorted::FindInsertPosition(const int fileId) -{ - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArraySorted::FindInsertPosition()\n"; - int i; - int curFileId; - - for (i = _count-1; i >= 0; --i) { - curFileId = ((MgrNode *)_buf[i])->GetApplication_instance()->GetFileId(); - if (curFileId < fileId /*|| curFileId == fileId*/) - { - return i + 1; - } - } - return 0; -} - -/*****************************************************************************/ - -int MgrNodeArraySorted::MgrNodeIndex(int fileId) { -// this function assumes that _buf[0] to _buf[_count] ALL point to MgrNodes -// that are sorted by fileId - - if(debug_level >= PrintFunctionTrace) - G4cout << "MgrNodeArraySorted::MgrNodeIndex()\n"; - int low = 0; - int high = _count - 1; - int mid = 0; - int found = 0; - int curFileId; - - while(!found && (low <= high)) - { - mid = (low + high) / 2; - curFileId = ((MgrNode *)_buf[mid])->GetApplication_instance()->GetFileId(); - if(curFileId == fileId) - { - found = 1; - } - else if(curFileId < fileId) - { - low = mid + 1; - } - else - { - high = mid - 1; - } - } - if(found) - return mid; - return -1; -} diff --git a/source/geometry/solids/STEP/src/mgrnodelist.cc b/source/geometry/solids/STEP/src/mgrnodelist.cc deleted file mode 100644 index e03d6b8e3a..0000000000 --- a/source/geometry/solids/STEP/src/mgrnodelist.cc +++ /dev/null @@ -1,79 +0,0 @@ - -/* -* NIST STEP Editor Class Library -* cleditor/mgrnodelist.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: mgrnodelist.cc,v 1.3 2000/01/21 13:43:12 gcosmo Exp $ */ - -#include -#include -#include -#include - - -MgrNodeList::MgrNodeList(stateEnum type) : GenNodeList(new MgrNode()) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNodeList::MgrNodeList()\n"; - listType = type; - ((MgrNode *)head)->currState = type; -} - -void MgrNodeList::Remove(GenericNode *node) -{ -// if(debug_level >= PrintFunctionTrace) -// G4cout << "MgrNodeList::Remove()\n"; - GenNodeList::Remove(node); -// DON'T DO THIS ((MgrNode *)node)->currState = noStateSE; -} - - // deletes node from its previous list & appends... - // actually it puts it at the front of the list. -void MgrNodeList::Append(GenericNode *node) -{ - InsertBefore(node, head); -} - - // deletes newNode from its previous list & inserts after - // existNode -void MgrNodeList::InsertAfter(GenericNode *newNode, - GenericNode *existNode) -{ - if(newNode->next != 0){ // remove the node from its previous list - newNode->Remove(); - } - GenNodeList::InsertAfter(newNode, existNode); -// DON'T DO THIS ((MgrNode *)newNode)->currState = listType; -} - - // deletes newNode from its previous list & inserts before - // existNode -void MgrNodeList::InsertBefore(GenericNode *newNode, - GenericNode *existNode) -{ - if(newNode->next != 0){ // remove the node from its previous - newNode->Remove(); // state list - } - GenNodeList::InsertBefore(newNode, existNode); -// DON'T DO THIS!! ((MgrNode *)newNode)->currState = listType; -} - -MgrNode *MgrNodeList::FindFileId(int fileId) -{ - MgrNode *mn = (MgrNode *)head->next; - while(mn != head) - { - if(mn->GetFileId() == fileId) - return mn; - mn = (MgrNode *)mn->next; - } - return (MgrNode *)0; -} - diff --git a/source/geometry/solids/STEP/src/multlist.cc b/source/geometry/solids/STEP/src/multlist.cc deleted file mode 100644 index 8cb204f3a0..0000000000 --- a/source/geometry/solids/STEP/src/multlist.cc +++ /dev/null @@ -1,261 +0,0 @@ -/***************************************************************************** - * multlist.cc * - * * - * Description: MultList is a class type derived from EntList which is the * - * parent class to the compound list types, AND, OR and ANDOR. * - * It supports the concepts and functionality which is shared * - * by all compound types, especially And- and AndOr-List's. * - * This file contains many of the MultList and JoinList member * - * functions. * - * * - * Created by: David Rosenfeld * - * Date: 9/18/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -MultList::~MultList() - /* - * Deletes the childList of this, before this is deleted. - */ -{ - EntList *child = childList, *cnext; - - while ( child ) { - cnext = child->next; - delete child; - child = cnext; - } -} - -void MultList::setLevel( int l ) - /* - * Sets this's level, and tells all its children to set their level to our - * level +1. - */ -{ - EntList *child = childList; - - level = l; - for ( ; child != NULL; child = child->next ) { - child->setLevel( l+1 ); - } -} - -int MultList::contains( char *nm ) - /* - * Check if one of this's descendants matches nm. - */ -{ - EntList *child = childList; - - while ( child ) { - if ( child->contains( nm ) ) return TRUE; - child = child->next; - } - return FALSE; -} - -int MultList::hit( char *nm ) - /* - * Check if one of our descendants matches nm. - */ -{ - EntList *child = childList; - - while ( child ) { - if ( child->viable > UNSATISFIED && child->hit( nm ) ) { - // For most child->join types ruling out UNSATs just saves us - // trouble - we know nm won't be hit since child didn't hit any- - // thing. If child->join = AND, we must skip child. One of its - // children may "hit" nm, but it wouldn't be valid because overall - // child is an UNSAT. - return TRUE; - } - child = child->next; - } - return FALSE; -} - -EntList *MultList::getChild( int num ) - /* - * Returns a pointer to the num'th child of MultList. - */ -{ - EntList *child = childList; - int j; - - if ( num < 0 || num >= numchildren ) { - // Check for error situations (shouldn't normally occur): - return NULL; - } - for ( j=0; jnext ) - ; - return child; -} - -void MultList::appendList( EntList *ent ) - /* - * Appends a new entry into this's childList. The siblings of ent (ent-> - * next ...) are automatically also appended. - */ -{ - EntList *eprev; - - if ( numchildren == 0 ) { - childList = ent; - } else { - eprev = getLast(); - eprev->next = ent; - ent->prev = eprev; - } - numchildren += ent->siblings(); -} - -EntList *MultList::copyList( EntList *ent ) - /* - * Makes a copy of ent (and its children if it's a MultList) and appends it - * to the end of our list. - */ -{ - EntList *newlist=0, *child; - - switch ( ent->join ) { - case SIMPLE: - newlist = new SimpleList( ((SimpleList *)ent)->Name() ); - break; - case AND: - newlist = new AndList; - break; - case OR: - newlist = new OrList; - break; - case ANDOR: - newlist = new AndOrList; - break; - }; - appendList( newlist ); - if ( ent->multiple() ) { - // For the multlists, we must recurse for all their children: - child = ((MultList *)ent)->childList; - while ( child ) { - ((MultList *)newlist)->copyList( child ); - child = child->next; - } - } - return newlist; -} - -void MultList::unmarkAll( EntNode *ents ) - /* - * Unmarks all nodes of ents marked by any of the descendants of this. - * This function is invoked by AndList and AndOrList. It is redefined for - * OrList. - */ -{ - EntList *child = childList; - - while ( child != NULL ) { - child->unmarkAll( ents ); - child = child->next; - } -} - -void MultList::reset() - /* - * Resets this to default values. Iterates through child list, calling - * each child's reset function. - */ -{ - EntList *child; - - viable = UNKNOWN; - for ( child = childList; child; child = child->next ) { - child->reset(); - } -} - -void JoinList::setViableVal( EntNode *ents ) - /* - * Sets this's viable value based on the value of its children. This is - * called at the end of matchNonOR() and matchOR() to determine the result - * of the matching. Since matchNonOR() is always called first and it - * skips OR children, some of the children may still be UNKNOWN. In that - * case, we still don't know the overall result and set viable to UNKNOWN. - * As an important note, for an AndList the match fns themselves check for - * children which are UNSATISFIED and return UNSAT if found, we don't - * worry about coming across them down here. - */ -{ - EntList *child = childList; - - viable = UNKNOWN; - // Start viable at UNKNOWN. This is default val and the lowest enum val. - - while ( child != NULL ) { - if ( child->viable == UNKNOWN ) { - viable = UNKNOWN; - return; - } - if ( child->viable > viable ) { - viable = child->viable; - } - child = child->next; - } - if ( viable == MATCHALL && !ents->allMarked() ) { - // There are some situations where this may happen - a child claims - // MATCHALL while that is not the case. If child #2 was checked and - // later child #1 was unmarked (because we tried its OR's and ran into - // problems), child #2's MATCHALL may no longer be true. - viable = MATCHSOME; - } -} - -int JoinList::acceptChoice( EntNode *ents ) - /* - * Accept the path we're a part of: Mark all nodes of ents we can. Mark - * value will = mark (either MARK or ORMARK). Return TRUE if we mark any- - * thing; FALSE otherwise. - */ -{ - EntList *child; - int result = FALSE; - - for ( child = childList; child != NULL; child = child->next ) { - if ( child->viable >= MATCHSOME ) { - // Only mark children which have new nodes they can mark. (This - // condition is important. Sometimes, there will be children who - // can mark but whose vaiable val = SATISFIED. This will be the - // case if there's another EntList with higher priority which can - // also mark this node. (For example, if an AND has an OR and a - // SIMPLE child, the SIMPLE wins so that we'll have fewer OR - // choices, and so that a node we can mark with an unconditional - // EntList we won't mark with a conditional which may be undone - // later.) Thus, our test here is - is this child the one who - // MATCHSOME'd when we originally went through the hierarchy.) - result = child->acceptChoice( ents ) || result; - // (NOTE - must run acceptChoice() first in above line. If result - // were TRUE and we ||'ed it with acceptChoice(), aC() would never - // be run.) - } - } - return result; -} - -int MultList::prevKnown( EntList *desc ) - /* - * Specialized function to test that none of the children prior to desc - * (a pointer to one of the EntLists of childList) have viable = UNKNOWN. - * Used in MatchNonORs() (see). - */ -{ - EntList *child = childList; - - while ( child != NULL && child != desc ) { - if ( child->viable == UNKNOWN ) { - return FALSE; - } - child = child->next; - } - return TRUE; -} diff --git a/source/geometry/solids/STEP/src/non_ors.cc b/source/geometry/solids/STEP/src/non_ors.cc deleted file mode 100644 index 27ca042893..0000000000 --- a/source/geometry/solids/STEP/src/non_ors.cc +++ /dev/null @@ -1,146 +0,0 @@ -/***************************************************************************** - * non-ors.cc * - * * - * Description: Contains the matchNonORs() functions for the EntList descen- * - * dants. matchNonORs() functions loop through the EntList * - * children of this whose JoinType != OR (and check a Simple- * - * List itself) to determine how well they match an EntNode. * - * * - * Created by: David Rosenfeld * - * Date: 10/17/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -MatchType SimpleList::matchNonORs( EntNode *ents ) - /* - * Checks if we match the nodes of ents. If only one unmarked is left - * and we match it, return MATCHALL. More likely, we'll return one of the - * other return values. (See descript of MatchType values in complex- - * Support.h.) - */ -{ - EntNode *eptr = ents; - int comp; - - while ( eptr != NULL ) { - if ( (comp = strcmp( name, eptr->name )) == 0 ) { - if ( ! eptr->marked( MARK ) ) { - // NOTE - this cond also returns TRUE if eptr did have an OR- - // MARK. We don't want to remark now (since we're also trying - // out OR choices -- we know this because no OR's are done - // until after all the non-OR's). But, we do want to return - // MATCHSOME, as below. Since The prev OR which marked this - // may one time later try another path, we want to record that - // our OR can also mark it. So we return MATCHSOME saying - // this is a viable option we may one time want to try. - if ( eptr->mark == NOMARK ) { - eptr->setmark(); - I_marked = MARK; - // Remember that we're the one who marked this. (Nec. in - // case we have to unmark later to try out another OR - // branch.) - if ( ents->allMarked() ) { - // If this was the only unmarked left, - viable = MATCHALL; - return MATCHALL; - } - } - viable = MATCHSOME; - return MATCHSOME; - } - viable = SATISFIED; - return SATISFIED; - // Couldn't mark any more, but at least we're not placing a re- - // quirement ents couldn't meet. - } - if ( comp < 0 ) { - // We're beyond name in the ents list. No more checking to do. - break; - } - eptr = eptr->next; - } - - // At this point, we went through the list without finding a match. Result - // = UNSATISFIED - no match. - viable = UNSATISFIED; - return UNSATISFIED; -} - -MatchType AndOrList::matchNonORs( EntNode *ents ) - /* - * Loop through the children of this matching as many of the nodes of ents - * as we can. We skip all OrList descendants. Those are processed later - * only after all the non-conditional descendants, so that when we start - * processing them we'll be able to tell which OR choices are viable, and - * which are unnec. - */ -{ - EntList *child = childList->firstNot( OR ); - MatchType retval; - - while ( child != NULL ) { - if ( (retval = child->matchNonORs( ents )) == MATCHALL ) { - if ( prevKnown( child ) ) { - viable = MATCHALL; - return MATCHALL; - // We found a good solution. Nothing else to do. (Some higher - // AND may have some other req's ents can't meet, but that's - // not our problem. If that happens, AND will return UNSATIS- - // FIED, or an even higher OR will undo all and will try - // another path.) - // The prevKnown() fn is used to check that we haven't come - // across any UNKNOWNs yet. If we have, we can't be sure the - // MATCHALL is valid. An illustration: One of our previous - // children was an AND who had a SIMPLE child and an OR child. - // The SIMPLE child matched one EntNode. The OR child is - // UNKNOWN, since we haven't matchOR()'ed yet. Possibly, our - // retval of MATCHALL is in part due to the SIMPLE child of - // the AND. But if the OR child of the AND returns UNSAT when - // we run matchOR(), we'll unmark the SIMPLE child too. Thus, - // we can only be sure of a MATCHALL if nothing is UNKNOWN. - // (Note that future UNKNOWN children don't bother us (in fact - // all future children are UNKNOWN by default since they have - // not been touched). This is because we're an ANDOR and can - // skip them altogether. But previous children we have visi- - // ted already, and we can't ignore, as above. Compare to - // AndOrList::matchORs(), where since all children had been - // visited already in matchNonORs(), we were not able to stop - // in process as here at all.) - } - } else if ( retval == UNSATISFIED ) { - // Unmark whatever we may have marked. (E.g., there may have - // been an AND beneath and it started marking and then found one - // it couldn't match.) - child->unmarkAll( ents ); - } - child = child->nextNot( OR ); - } - setViableVal( ents ); - return viable; -} - -MatchType AndList::matchNonORs( EntNode *ents ) - /* - * Checks if the AndList contains the set of nodes in ents. Skip OrList - * descendants. - */ -{ - EntList *child = childList->firstNot( OR ); - - while ( child != NULL ) { - if ( child->matchNonORs( ents ) == UNSATISFIED ) { - viable = UNSATISFIED; - return UNSATISFIED; - // This means the whole AndList has failed, by definition. - } - child = child->nextNot( OR ); - // Note - we loop through all even if one of our children returned - // MATCHALL. Since we're an AND, we must look through all branches - - // to search for any other conditions we can't meet. If one of our - // children did MATCHALL, its viable val will be set to MATCHALL and - // we'll catch it in setViableVal() called below. - } - setViableVal( ents ); - return viable; -} diff --git a/source/geometry/solids/STEP/src/orlist.cc b/source/geometry/solids/STEP/src/orlist.cc deleted file mode 100644 index 11b9b7d155..0000000000 --- a/source/geometry/solids/STEP/src/orlist.cc +++ /dev/null @@ -1,87 +0,0 @@ -/***************************************************************************** - * orlist.cc * - * * - * Description: OrList is a specialized class type which supports OR lists. * - * This file contains the OrList member functions, which pro- * - * vide the capability to undo previous choices, and select new * - * ones. * - * * - * Created by: David Rosenfeld * - * Date: 9/18/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -int OrList::hit( char *nm ) - /* - * Check if we matched nm. We have two possibilities here: If we have a - * choice selected, we only check the selected choice. Say we're an OR - * between SimpleLists C and D, and nm = C. If choice = D, we can't check - * C. This is because we're already using this OR to match D, and it can - * not match C. If however, this OR doesn't have any choice selected (it - * = SATISFIED), we can check all our children. Since we don't need to - * have a particular choice selected (D), so long as we could be used to - * match C, we potentially have a match. (This all makes sense in the - * context of a sub w/ >1 super, in which case we build a combo-CList and - * may need to check if all sub-CLists matched the multi-sub, C.) - */ -{ - EntList *child = getChild( choice ); - - if ( child ) { - // I.e., if we have a choice selected, check it only. - return ( child->hit( nm ) ); - } else { - child = childList; - while ( child ) { - if ( child->viable > UNSATISFIED && child->hit( nm ) ) { - // See MultList::hit() on why we must skip UNSATs. - return TRUE; - } - child = child->next; - } - } - return FALSE; -} - -void OrList::unmarkAll( EntNode *ents ) - /* - * Unmarks all the nodes of ents marked by the descendants of this. - */ -{ - EntList *child; -// int j; - - if ( (child = getChild( choice )) != NULL ) { - // choice = the last selected path which we'll now undo. - child->unmarkAll( ents ); - } -} - -int OrList::acceptChoice( EntNode *ents ) - /* - * Accepts the first choice of our childList which marks any unmarked - * nodes. If none of our current choices mark anything, choice is set to - * LISTEND. If choice was set to LISTEND before calling aC(), we reset - * choice to choice1, and search again. - */ -{ - EntList *child; - - if ( choice == LISTEND ) { - choice = choice1; - } - child = getChild( choice ); - while ( child ) { - if ( child->viable >= MATCHSOME && child->acceptChoice( ents ) ) { - // acceptChoice() returns TRUE if we marked something. - return TRUE; - } - child = child->next; - choice++; - } - // If we got here, we must have gotten to the end of the childList without - // finding a choice which marks something. - choice = LISTEND; - return FALSE; -} diff --git a/source/geometry/solids/STEP/src/print.cc b/source/geometry/solids/STEP/src/print.cc deleted file mode 100644 index 9ce90920aa..0000000000 --- a/source/geometry/solids/STEP/src/print.cc +++ /dev/null @@ -1,113 +0,0 @@ -/***************************************************************************** - * print.cc * - * * - * Description: Contains the "<<" functions for all the EntList types. * - * * - * Created by: David Rosenfeld * - * Date: 10/31/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -// Local function prototypes: -static char *joinText( JoinType, char * ); - -std::ostream & operator << ( std::ostream &os, ComplexList &clist ) - /* - * Prints out a ComplexList, by iterating through its children. - */ -{ - os << "ComplexList - \"" << *(SimpleList *)clist.head->childList - << "\" supertype\n"; - // head->childList will call << for head's 1st child. We know by def - // that this is the supertype. - os << *clist.head; - return os; -} - -std::ostream & operator << ( std::ostream &os, EntList &list ) - /* - * Prints out an EntList. Calls appropriate function based on JoinType. - */ -{ - if ( list.join == SIMPLE ) { - os << *(SimpleList *)&list; - } else { - os << *(MultList *)&list; - } - return os; -} - -std::ostream & operator << ( std::ostream &os, SimpleList &slist ) - /* - * Prints out a SimpleList. - */ -{ - os << slist.name; - return os; -} - -std::ostream & operator << ( std::ostream &os, MultList &mlist ) - /* - * Prints out a MultList. - */ -{ - char jointype[7]; - int k, lastSimple=0; - // lastSimple - is the last child simple? If so, we need to print another - // line at the end. If not, the children of last child did already. - EntList *child = mlist.childList; - - os << joinText( mlist.join, jointype ) << G4endl; - for ( k=0; k<=mlist.level; k++ ) { - // Indent 1 more than our level (hence the "<=" ): - os << " "; - } - while ( child != NULL ) { - os << *child; - if ( child->next == NULL ) { - lastSimple = ( child->join == SIMPLE ); - break; - // We don't want to do the conditions below if we're done. - } - if ( child->join == SIMPLE ) { - // If so, we're just going to continue printing the next child - // (if exists) in same line. - os << " "; - } else { - // If another MultList is coming, it printed a new line for its - // childList (as we're doing). We must now start a new line at - // our indent level: - for ( k=0; k<=mlist.level; k++ ) { - os << " "; - } - } - child = child->next; - } - if ( lastSimple ) { - os << G4endl; - } - return os; -} - -static char *joinText( JoinType j, char *buf ) - /* - * Copies and returns the string equivalent of a JoinType. - */ -{ - switch ( j ) { - case SIMPLE: - strcpy( buf, "SIMPLE" ); - return buf; - case AND: - strcpy( buf, "AND" ); - return buf; - case OR: - strcpy( buf, "OR" ); - return buf; - case ANDOR: - strcpy( buf, "ANDOR" ); - return buf; - }; - return NULL; -} diff --git a/source/geometry/solids/STEP/src/read_func.cc b/source/geometry/solids/STEP/src/read_func.cc deleted file mode 100644 index 3b61b7f491..0000000000 --- a/source/geometry/solids/STEP/src/read_func.cc +++ /dev/null @@ -1,1217 +0,0 @@ -#ifdef __O3DB__ -#include -#endif - -#include -#include -#include -#include -#include - -const int RealNumPrecision = REAL_NUM_PRECISION; - -// print Error information for debugging purposes -void -PrintErrorState(ErrorDescriptor &err) -{ - G4cout << "** severity: "; - switch(err.severity()) - { - case SEVERITY_NULL : - G4cout << "\n Null\n"; - break; - case SEVERITY_USERMSG : - G4cout << "\n User Message\n"; - break; - case SEVERITY_INCOMPLETE : - G4cout << "\n Incomplete\n"; - break; - case SEVERITY_WARNING : - G4cout << "\n Warning\n"; - break; - case SEVERITY_INPUT_ERROR : - G4cout << "\n Input Error\n"; - break; - default: - G4cout << "\n Other\n"; - break; - } - G4cout << err.DetailMsg() << "\n"; -} - -// print std::istream error information for debugging purposes -void IStreamState(std::istream &in) -{ - if( in.good()) - { - G4cerr << "istream GOOD\n" << std::flush; - } - if( in.fail() ) - { - G4cerr << "istream FAIL\n" << std::flush; - } - if( in.eof() ) - { - G4cerr << "istream EOF\n" << std::flush; - } -} - -/////////////////////////////////////////////////////////////////////////////// -// ReadInteger -// * This function reads an integer if possible -// * If an integer is read it is assigned to val and 1 (true) is returned. -// * If an integer is not read because of an error then val is left unchanged -// and 0 (false) is returned. -// * If there is an error then the ErrorDescriptor err is set accordingly with -// a severity level and error message (no error MESSAGE is set for severity -// incomplete). -// * tokenList contains characters that terminate reading the value. -// * If tokenList is not zero then the std::istream will be read until a character -// is found matching a character in tokenlist. All values read up to the -// terminating character (delimiter) must be valid or err will be set with an -// appropriate error message. A valid value may still have been assigned -// but it may be followed by garbage thus an error will result. White -// space between the value and the terminating character is not considered -// to be invalid. If tokenList is null then the value must not be followed -// by any characters other than white space (i.e. EOF must happen) -// -/////////////////////////////////////////////////////////////////////////////// - -int -ReadInteger(SCLP23(Integer) &val, std::istream &in, ErrorDescriptor *err, - char *tokenList) -{ - SCLP23(Integer) i = 0; - in >> std::ws; - in >> i; - - int valAssigned = 0; - -// IStreamState(in); - - if(!in.fail()) - { - valAssigned = 1; - val = i; - } - Severity s = CheckRemainingInput(in, err, "Integer", tokenList); - return valAssigned; -} - -/////////////////////////////////////////////////////////////////////////////// -// same as above but reads from a const char * -/////////////////////////////////////////////////////////////////////////////// - -int -ReadInteger(SCLP23(Integer) &val, const char *s, ErrorDescriptor *err, - char *tokenList) -{ - std::istrstream in((char *)s); - return ReadInteger(val, in, err, tokenList); -} - -/////////////////////////////////////////////////////////////////////////////// -// * attrValue is validated. -// * err is set if there is an error -// * If optional is 1 then a missing value will be valid otherwise severity -// incomplete will be set. -// * If you don\'t know if the value may be optional then set it false and -// check to see if SEVERITY_INCOMPLETE is set. You can change it later to -// SEVERITY_NULL if it is valid for the value to be missing. No error -// 'message' will be associated with the value being missing so you won\'t -// have to worry about undoing an error message. -// * tokenList contains characters that terminate the expected value. -// * If tokenList is not zero then the value is expected to terminate before -// a character found in tokenlist. All values read up to the -// terminating character (delimiter) must be valid or err will be set with an -// appropriate error message. White space between the value and the -// terminating character is not considered to be invalid. If tokenList is -// null then attrValue must only contain a valid value and nothing else -// following. -/////////////////////////////////////////////////////////////////////////////// - -Severity -IntValidLevel (const char *attrValue, ErrorDescriptor *err, - int clearError, int optional, char *tokenList) -{ - if(clearError) - err->ClearErrorMsg(); - - std::istrstream in((char *)attrValue); - in >> std::ws; // skip white space - char c = in.peek(); - if(in.eof()) - { - if(!optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - else if(c == '$') - { - if(!optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - in >> c; - CheckRemainingInput(in, err, "integer", tokenList); - return err->severity(); - } - else - { - SCLP23(Integer) val = 0; - int valAssigned = ReadInteger(val, in, err, tokenList); - if(!valAssigned && !optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return err->severity(); -} - -char * -WriteReal(SCLP23(Real) val, SCLstring &s) -{ - - char rbuf[64]; - -// out << form("%.*G", (int) Real_Num_Precision,tmp); - // replace the above line with this code so that writing the '.' is - // guaranteed for reals. If you use e or E then you get many - // unnecessary trailing zeros. g and G truncates all trailing zeros - // to save space but when no non-zero precision exists it also - // truncates the decimal. The decimal is required by Part 21. - // Also use G instead of g since G writes uppercase E (E instead of e - // is also required by Part 21) when scientific notation is used - DAS - - sprintf(rbuf, "%.*G", (int) RealNumPrecision,val); - if(!strchr(rbuf, '.')) - { - if(strchr(rbuf, 'E') || strchr(rbuf, 'e')) - { - char *expon = strchr(rbuf, 'E'); - - if( !expon) - { - expon = strchr(rbuf, 'e'); - } - *expon = '\0'; - s = rbuf; - s.Append('.'); - s.Append('E'); - expon++; - s.Append(expon); - } - else - { - int rindex = strlen(rbuf); - rbuf[rindex] = '.'; - rbuf[rindex+1] = '\0'; - s = rbuf; - } - } - else - s = rbuf; - return (char *)(s.chars()); -} - -void -WriteReal(SCLP23(Real) val, std::ostream &out) -{ - SCLstring s; - - out << WriteReal(val,s); -#if 0 - char rbuf[64]; - -// out << form("%.*G", (int) Real_Num_Precision,tmp); - // replace the above line with this code so that writing the '.' is - // guaranteed for reals. If you use e or E then you get many - // unnecessary trailing zeros. g and G truncates all trailing zeros - // to save space but when no non-zero precision exists it also - // truncates the decimal. The decimal is required by Part 21. - // Also use G instead of g since G writes uppercase E (E instead of e - // is also required by Part 21) when scientific notation is used - DAS - - sprintf(rbuf, "%.*G", (int) RealNumPrecision,val); - if(!strchr(rbuf, '.')) - { - if(strchr(rbuf, 'E') || strchr(rbuf, 'e')) - { - char *expon = strchr(rbuf, 'E'); - - if( !expon) - { - expon = strchr(rbuf, 'e'); - } - *expon = '\0'; - s = rbuf; - s.Append('.'); - s.Append('E'); - expon++; - s.Append(expon); - } - else - { - int rindex = strlen(rbuf); - rbuf[rindex] = '.'; - rbuf[rindex+1] = '\0'; - s = rbuf; - } - } - else - s = rbuf; - - out << (char *)(s.chars()); -#endif -} - -/////////////////////////////////////////////////////////////////////////////// -// ReadReal -// * This function reads a real if possible -// * If a real is read it is assigned to val and 1 (true) is returned. -// * If a real is not read because of an error then val is left unchanged -// and 0 (false) is returned. -// * If there is an error then the ErrorDescriptor err is set accordingly with -// a severity level and error message (no error MESSAGE is set for severity -// incomplete). -// * tokenList contains characters that terminate reading the value. -// * If tokenList is not zero then the std::istream will be read until a character -// is found matching a character in tokenlist. All values read up to the -// terminating character (delimiter) must be valid or err will be set with an -// appropriate error message. A valid value may still have been assigned -// but it may be followed by garbage thus an error will result. White -// space between the value and the terminating character is not considered -// to be invalid. If tokenList is null then the value must not be followed -// by any characters other than white space (i.e. EOF must happen) - -// skip any leading whitespace characters -// read: optional sign, at least one decimal digit, required decimal point, -// zero or more decimal digits, optional letter e or E (but lower case e is -// an error), optional sign, at least one decimal digit if there is an E. - -/////////////////////////////////////////////////////////////////////////////// - -int -ReadReal(SCLP23(Real) &val, std::istream &in, ErrorDescriptor *err, - char *tokenList) -{ - SCLP23(Real) d = 0; - - // Read the real's value into a string so we can make sure it is properly - // formatted. e.g. a decimal point is present. If you use the stream to - // read the real, it won't complain if the decimal place is missing. - char buf[64]; - int i = 0; - char c; - ErrorDescriptor e; - - in >> std::ws; // skip white space - - // read optional sign - c = in.peek(); - if(c == '+' || c == '-') { in.get(buf[i++]); c = in.peek(); } - - // check for required initial decimal digit - if(!isdigit(c)) - { - e.severity(SEVERITY_WARNING); - e.DetailMsg("Real must have an initial digit.\n"); - } - // read one or more decimal digits - while(isdigit(c)) - { - in.get(buf[i++]); - c = in.peek(); - } - - // read Part 21 required decimal point - if(c == '.') - { - in.get(buf[i++]); - c = in.peek(); - } - else - { - // It may be the number they wanted but it is incompletely specified - // without a decimal and thus it is an error - e.GreaterSeverity(SEVERITY_WARNING); - e.AppendToDetailMsg("Reals are required to have a decimal point.\n"); - } - - // read optional decimal digits - while(isdigit(c)) - { - in.get(buf[i++]); - c = in.peek(); - } - - // try to read an optional E for scientific notation - if( (c == 'e') || (c == 'E') ) - { - if(c == 'e') - { - // this is incorrectly specified and thus is an error - e.GreaterSeverity(SEVERITY_WARNING); -// e.GreaterSeverity(SEVERITY_USERMSG); // not flagged as an error - e.AppendToDetailMsg( - "Reals using scientific notation must use upper case E.\n"); - } - in.get(buf[i++]); // read the E - c = in.peek(); - - // read optional sign - if(c == '+' || c == '-') - { in.get(buf[i++]); c = in.peek(); } - - // read required decimal digit (since it has an E) - if(!isdigit(c)) - { - e.GreaterSeverity(SEVERITY_WARNING); - e.AppendToDetailMsg( - "Real must have at least one digit following E for scientific notation.\n"); - } - // read one or more decimal digits - while(isdigit(c)) - { - in.get(buf[i++]); - c = in.peek(); - } - } - buf[i] = '\0'; - -/* - int success = 0; - success = sscanf(buf," %G", &d); -*/ - std::istrstream in2((char *)buf); - - // now that we have the real the stream will be able to salvage reading - // whatever kind of format was used to represent the real. - in2 >> d; -// G4cout << "buffer: " << buf << G4endl << "value: " << d << G4endl << G4endl; - - int valAssigned = 0; -// PrintErrorState(err); - -// if(success > 0) - if(!in2.fail()) - { - valAssigned = 1; - val = d; - err->GreaterSeverity(e.severity()); - err->AppendToDetailMsg(e.DetailMsg()); - } - else - val = S_REAL_NULL; - - Severity s = CheckRemainingInput(in, err, "Real", tokenList); - return valAssigned; - -/* old way - much easier but not thorough enough */ -/* - in >> d; - -// IStreamState(in); - - int valAssigned = 0; -// PrintErrorState(err); - - if(!in.fail()) - { - valAssigned = 1; - val = d; - } - Severity s = CheckRemainingInput(in, err, "Real", tokenList); - return valAssigned; -*/ -} - -/////////////////////////////////////////////////////////////////////////////// -// same as above but reads from a const char * -/////////////////////////////////////////////////////////////////////////////// - -int -ReadReal(SCLP23(Real) &val, const char *s, ErrorDescriptor *err, - char *tokenList) -{ - std::istrstream in((char *)s); - return ReadReal(val, in, err, tokenList); -} - -/////////////////////////////////////////////////////////////////////////////// -// * attrValue is validated. -// * err is set if there is an error -// * If optional is 1 then a missing value will be valid otherwise severity -// incomplete will be set. -// * If you don\'t know if the value may be optional then set it false and -// check to see if SEVERITY_INCOMPLETE is set. You can change it later to -// SEVERITY_NULL if it is valid for the value to be missing. No error -// 'message' will be associated with the value being missing so you won\'t -// have to worry about undoing an error message. -// * tokenList contains characters that terminate the expected value. -// * If tokenList is not zero then the value is expected to terminate before -// a character found in tokenlist. All values read up to the -// terminating character (delimiter) must be valid or err will be set with an -// appropriate error message. White space between the value and the -// terminating character is not considered to be invalid. If tokenList is -// null then attrValue must only contain a valid value and nothing else -// following. -/////////////////////////////////////////////////////////////////////////////// - -Severity -RealValidLevel (const char *attrValue, ErrorDescriptor *err, - int clearError, int optional, char *tokenList) -{ - if(clearError) - err->ClearErrorMsg(); - - std::istrstream in((char *)attrValue); - in >> std::ws; // skip white space - char c = in.peek(); - if(in.eof()) - { - if(!optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - else if(c == '$') - { - if(!optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - in >> c; - CheckRemainingInput(in, err, "real", tokenList); - return err->severity(); - } - else - { - SCLP23(Real) val = 0; - int valAssigned = ReadReal(val, in, err, tokenList); - if(!valAssigned && !optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return err->severity(); -} - -/////////////////////////////////////////////////////////////////////////////// -// ReadNumber - read as a real number -// * This function reads a number if possible -// * If a number is read it is assigned to val and 1 (true) is returned. -// * If a number is not read because of an error then val is left unchanged -// and 0 (false) is returned. -// * If there is an error then the ErrorDescriptor err is set accordingly with -// a severity level and error message (no error MESSAGE is set for severity -// incomplete). -// * tokenList contains characters that terminate reading the value. -// * If tokenList is not zero then the std::istream will be read until a character -// is found matching a character in tokenlist. All values read up to the -// terminating character (delimiter) must be valid or err will be set with an -// appropriate error message. A valid value may still have been assigned -// but it may be followed by garbage thus an error will result. White -// space between the value and the terminating character is not considered -// to be invalid. If tokenList is null then the value must not be followed -// by any characters other than white space (i.e. EOF must happen) -/////////////////////////////////////////////////////////////////////////////// - -int -ReadNumber(SCLP23(Real) &val, std::istream &in, ErrorDescriptor *err, - char *tokenList) -{ - SCLP23(Real) d = 0; - in >> std::ws; - in >> d; - -// IStreamState(in); - - int valAssigned = 0; - if(!in.fail()) - { - valAssigned = 1; - val = d; - } - Severity s = CheckRemainingInput(in, err, "Number", tokenList); - return valAssigned; -} - -/////////////////////////////////////////////////////////////////////////////// -// same as above but reads from a const char * -/////////////////////////////////////////////////////////////////////////////// - -int -ReadNumber(SCLP23(Real) &val, const char *s, ErrorDescriptor *err, - char *tokenList) -{ - std::istrstream in((char *)s); - return ReadNumber(val, in, err, tokenList); -} - - -/////////////////////////////////////////////////////////////////////////////// -// * attrValue is validated. -// * err is set if there is an error -// * If optional is 1 then a missing value will be valid otherwise severity -// incomplete will be set. -// * If you don\'t know if the value may be optional then set it false and -// check to see if SEVERITY_INCOMPLETE is set. You can change it later to -// SEVERITY_NULL if it is valid for the value to be missing. No error -// 'message' will be associated with the value being missing so you won\'t -// have to worry about undoing an error message. -// * tokenList contains characters that terminate the expected value. -// * If tokenList is not zero then the value is expected to terminate before -// a character found in tokenlist. All values read up to the -// terminating character (delimiter) must be valid or err will be set with an -// appropriate error message. White space between the value and the -// terminating character is not considered to be invalid. If tokenList is -// null then attrValue must only contain a valid value and nothing else -// following. -/////////////////////////////////////////////////////////////////////////////// - -Severity -NumberValidLevel (const char *attrValue, ErrorDescriptor *err, - int clearError, int optional, char *tokenList) -{ - if(clearError) - err->ClearErrorMsg(); - - std::istrstream in((char *)attrValue); - in >> std::ws; // skip white space - char c = in.peek(); - if(in.eof()) - { - if(!optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - else if(c == '$') - { - if(!optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - in >> c; - CheckRemainingInput(in, err, "number", tokenList); - return err->severity(); - } - else - { - SCLP23(Real) val = 0; - int valAssigned = ReadNumber(val, in, err, tokenList); - if(!valAssigned && !optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return err->severity(); -} - - -// return 1 if 'in' points at a quoted quote otherwise return 0 - -int -QuoteInString(std::istream& in) -{ - char c1, c2; - if( in.good() ) - { - in >> c1; - in >> c2; - in.putback(c2); - in.putback(c1); - if (c1 == STRING_DELIM) - { - if(c2 == STRING_DELIM) - return 1; - } - } - return 0; -} - -// assign 's' so that it contains an exchange file format string read from -// 'in'. - -void -PushPastString (std::istream& in, SCLstring &s, ErrorDescriptor *err) -{ - char messageBuf[BUFSIZ]; - messageBuf[0] = '\0'; - - char c; - in >> std::ws; // skip whitespace - in >> c; - if(c == STRING_DELIM) - { - s.Append(c); - while(QuoteInString(in)) // to handle a string like '''hi' - { - in.get(c); - s.Append(c); - in.get(c); - s.Append(c); - } -// int sk = in.skip(0); - while( in.get(c) && (c != STRING_DELIM) ) - { - s.Append(c); - while(QuoteInString(in)) - { // to handle a string like 'hi''' - in.get(c); - s.Append(c); - in.get(c); - s.Append(c); - } - } -// in.skip(sk); - - if(c != STRING_DELIM) - { - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - sprintf(messageBuf, "Invalid string value.\n"); - err->AppendToDetailMsg(messageBuf); - s.Append('\''); - } - else - s.Append(c); - } -} - -// assign 's' so that it contains an exchange file format aggregate read from -// 'in'. -// This is used to read aggregates that are part of multidimensional -// aggregates. - -void -PushPastImbedAggr (std::istream& in, SCLstring &s, ErrorDescriptor *err) -{ - char messageBuf[BUFSIZ]; - messageBuf[0] = '\0'; - - char c; - in >> std::ws; - in.get(c); - - if(c == '(') - { - s.Append(c); - in.get(c); - while( in.good() && (c != ')') ) - { - if ( c == '(' ) - { - in.putback(c); - PushPastImbedAggr(in, s, err); - } - else if (c == STRING_DELIM) - { - in.putback(c); - PushPastString(in, s, err); - } - else - s.Append(c); - in.get(c); - } - if(c != ')') - { - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - sprintf(messageBuf, "Invalid aggregate value.\n"); - err->AppendToDetailMsg(messageBuf); - s.Append(')'); - } - else - s.Append(c); - } -} - - -// assign 's' so that it contains an exchange file format aggregate read from -// 'in'. -// This is used to read a single dimensional aggregate (i.e. it is not allowed -// to contain an aggregate as an element. - -void -PushPastAggr1Dim(std::istream& in, SCLstring &s, ErrorDescriptor *err) -{ - char messageBuf[BUFSIZ]; - messageBuf[0] = '\0'; - - char c; - in >> std::ws; - in.get(c); - - if(c == '(') - { - s.Append(c); - in.get(c); - while( in.good() && (c != ')') ) - { - if ( c == '(' ) - { - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, "Invalid aggregate value.\n"); - err->AppendToDetailMsg(messageBuf); - } - - if (c == STRING_DELIM) - { - in.putback(c); - PushPastString(in, s, err); - } - else - s.Append(c); - in.get(c); - } - if(c != ')') - { - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - sprintf(messageBuf, "Invalid aggregate value.\n"); - err->AppendToDetailMsg(messageBuf); - s.Append(')'); - } - else - s.Append(c); - } -} - -/*************************** -* FindStartOfInstance reads to the beginning of an instance marked by # -* it copies what is read to the SCLstring inst. It leaves the # on the -* std::istream. -***************************/ - -Severity -FindStartOfInstance(std::istream& in, SCLstring& inst) -{ - char c =0; - ErrorDescriptor errs; - SCLP23(String) tmp; -// SCLstring tmp; - - while (in.good ()) - { - in >> c; - switch (c) { - case '#': // found char looking for. - in.putback(c); - return SEVERITY_NULL; - - case '\'': // get past the string - in.putback (c); - tmp.STEPread (in, &errs); - inst.Append (tmp); - -// PushPastString(in, tmp, &errs); -// inst.Append( tmp->chars() ); - break; - - case '\0': // problem in input ? - return SEVERITY_INPUT_ERROR; - - default: - inst.Append (c); - } - } - return SEVERITY_INPUT_ERROR; -} - -/*************************** -* SkipInstance reads in an instance terminated with ;. it copies -* what is read to the SCLstring inst. -***************************/ - -Severity -SkipInstance (std::istream& in, SCLstring& inst) -{ - char c =0; - ErrorDescriptor errs; - SCLP23(String) tmp; -// SCLstring tmp; - - while (in.good ()) - { - in >> c; - switch (c) { - case ';': // end of instance reached - return SEVERITY_NULL; - - case '\'': // get past the string - in.putback (c); - tmp.STEPread (in, &errs); - inst.Append (tmp); - -// PushPastString(in, tmp, &errs); -// inst.Append( tmp->chars() ); - break; - - case '\0': // problem in input ? - return SEVERITY_INPUT_ERROR; - - default: - inst.Append (c); - } - } - return SEVERITY_INPUT_ERROR; -} - - -/*************************** -// This reads a simple record. It is used when parsing externally mapped -// entities to skip to the next entity type name part of the externally mapped -// record. It does not expect a semicolon at the end since the pieces in an -// external mapping don't have them. If you are reading a simple record in the -// form of an internal mapping you will have to read the semicolon. -***************************/ - -const char * -SkipSimpleRecord(std::istream &in, SCLstring &buf, ErrorDescriptor *err) -{ - char c; - SCLstring s; - - in >> std::ws; - in.get(c); - if(c == '(') // beginning of record - { - buf.Append(c); - while(in.get(c) && (c != ')') && (err->severity() > SEVERITY_INPUT_ERROR) ) - { - if(c == '\'') - { - in.putback(c); - s.set_null(); - PushPastString(in, s, err); - buf.Append(s.chars()); - } - else if(c == '(') - { - in.putback(c); - s.set_null(); - PushPastImbedAggr(in, s, err); - buf.Append(s.chars()); - } - else - buf.Append(c); - } - if( !in.good() ) - { - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - err->DetailMsg("File problems reading simple record.\n"); - } - buf.Append(')'); - } - else - in.putback(c); // put back open paren - return buf.chars(); -} - -/*************************** -// This reads a part 21 definition of keyword. This includes the name of -// entity types. To read a user-defined keyword: read the '!' then call -// this function with skipInitWS turned off. -***************************/ - -const char * -ReadStdKeyword(std::istream& in, SCLstring &buf, int skipInitWS) -{ - char c; - if(skipInitWS) - in >> std::ws; - - while( in.get(c) && !isspace(c) && ( isalnum(c) || (c == '_') ) ) - { - buf.Append(c); - } - - if( in.eof() || in.good() ) - in.putback(c); - - return buf.chars(); -} - -/*************************** -This function returns a null terminated const char* for the -characters read from the std::istream up to, but not including -the first character found in the set of delimiters, or the -whitespace character. It leaves the delimiter on the std::istream. - -The string is returned in a static buffer, so it will change -the next time the function is called. - -Keywords are special strings of characters indicating the instance -of an entity of a specific type. They shall consist of uppercase letters, -digits, underscore characters, and possibly an exclamation mark. -The "!" shall appear only once, and only as the first character. -***************************/ -const char* -GetKeyword(std::istream& in, const char* delims, ErrorDescriptor &err) -{ - char c; - int sz = 1; - static SCLstring str; - - str = ""; - in.get(c); - while ( !((isspace(c)) || (strchr(delims,c)) ) ) - { - //check to see if the char is valid - if (!( (isupper(c)) || - (isdigit(c)) || - (c == '_') || - (c == '-') || //for reading 'ISO-10303-21' - ((c == '!') && (sz == 1)) ) ) - { - G4cerr << "Error: Invalid character \'" << c << - "\' in GetKeyword.\nkeyword was: " << str << "\n"; - err.GreaterSeverity(SEVERITY_WARNING); - in.putback(c); - return str; - } - if (!in.good()) break; //BUG: should do something on eof() - str.Append (c); - ++sz; - in.get(c); - } - in.putback(c); - return str; -} - -// return 1 if found the keyword 'ENDSEC' with optional space and a ';' -// otherwise return 0. This gobbles up the input stream until it knows -// that it does or does not have the ENDSEC keyword (and semicolon). i.e. -// the first character that stops matching the keyword ENDSEC; (including the -// semicolon) will be put back onto the std::istream, everything else will remain -// read. It is this way so that checking for the keywd the next time will -// start with the correct char or if it doesn't find it the non-matching char -// may be what you are looking for next (e.g. someone typed in END; and the -// next chars are DATA; for the beginning of the data section). - -int -FoundEndSecKywd(std::istream& in, ErrorDescriptor &err) -{ - char c; - in >> std::ws; - in.get(c); - - if(c == 'E') - { - in.get(c); - if(c == 'N') - { - in.get(c); - if(c == 'D') - { - in.get(c); - if(c == 'S') - { - in.get(c); - if(c == 'E') - { - in.get(c); - if(c == 'C') - { - in >> std::ws; - in.get(c); - if(c == ';') - { - return 1; - } - else - in.putback(c); - } - else - in.putback(c); - } - else - in.putback(c); - } - else - in.putback(c); - } - else - in.putback(c); - } - else - in.putback(c); - } - else - in.putback(c); - // error - return 0; -} - -// Skip over everything in s until the start of a comment. If it is a well -// formatted comment append the comment (including delimiters) to -// SCLstring ss. Return a pointer in s just past what was read as a comment. -// If no well formed comment was found, a pointer to the null char in s is -// returned. If one is found ss is appended with it and a pointer just -// past the comment in s is returned. Note* a carraige return ('\n') is added -// after the comment that is appended. -const char * ReadComment(SCLstring &ss, const char *s) -{ - SCLstring ssTmp; - int endComment = 0; - - if(s) - { - while(*s && *s != '/') s++; // skip leading everything - if(*s == '/') - { - s++; - if(*s == '*') // found a comment - { - ssTmp.Append("/*"); - s++; - while(*s && !endComment) - { - if(*s == '*') - { - ssTmp.Append(*s); - s++; - if(*s == '/') - { - endComment = 1; - ssTmp.Append(*s); - ssTmp.Append('\n'); - } - else - s--; - } - else - ssTmp.Append(*s); - s++; - } - } - } - if(endComment) - ss.Append(ssTmp.chars()); - } - return s; -} - -/*************************** - * Reads a comment. If there is a comment it is returned as - * char * in space provided in SCLstring s. - * If there is not a comment returns null pointer. - * After skipping white space it expects a slash followed by - * an asterisk (which I didn't type to avoid messing up the - * compiler). It ends with asterisk followed by slash. - * If first char from 'in' is a slash it will remain read - * whether or not there was a comment. If there is no comment - * only the slash will be read from 'in'. -***************************/ - -const char * -ReadComment(std::istream& in, SCLstring &s) -{ - char c = '\0'; - int commentLength = 0; - in >> std::ws; - in >> c; - - // it looks like a comment so far - if (c == '/') // leave slash read from stream - { - in.get(c); // won't skip space - if (c == '*') // it is a comment - { - in >> std::ws; // skip leading comment space - - // only to keep it from completely gobbling up input - while( commentLength <= MAX_COMMENT_LENGTH ) - { - in.get (c); - if(c == '*') // looks like start of end comment - { - in.get(c); - if(c == '/') // it is end of comment - return s.chars(); // return comment as a string - else // it is not end of comment - { // so store the * and put back the other char - s.Append('*'); - in.putback(c); - commentLength++; - } - } - else - { - s.Append(c); - commentLength++; - } - } // end while - G4cout << "ERROR comment longer than maximum comment length of " - << MAX_COMMENT_LENGTH << "\n" - << "Will try to recover...\n"; - SCLstring tmp; - SkipInstance(in, tmp); - return s.chars(); - } - // leave slash read from stream... assume caller already knew there was - // a slash, leave it off stream so they don't think this funct needs - // to be called again - else // not a comment - in.putback(c); // put non asterisk char back on input stream - } - else // first non-white char is not a slash - in.putback(c); // put non slash char back on input stream - - return 0; // no comment string to return -} - -/*************************** - ** Read a Print Control Directive from the std::istream - ** "\F\" == formfeed - ** "\N\" == newline - ***************************/ -Severity -ReadPcd(std::istream& in) -{ - char c; - in.get(c); - if (c == '\\') { - in.get(c); - if (c == 'F' || c == 'N') - { - in.get(c); - if (c == '\\') { in.get(c); return SEVERITY_NULL; } - } - } - G4cerr << "Print control directive expected.\n"; - return SEVERITY_WARNING; -} - - -/****************************** -This function reads through token separators -from an std::istream. It returns when a token -separator is not the next thing on the std::istream. -The token separators are blanks, explicit print control directives, -and comments. -Part 21 considers the blank to be the space character, -but this function considers blanks to be the return value of isspace(c) -******************************/ -void -ReadTokenSeparator(std::istream& in, SCLstring *comments) -{ - char c; - SCLstring s; // used if need to read a comment -// const char *cstr = 0; - - if (in.eof()) - { - //BUG: no error message is reported - return; - } - - while (in) - { - in >> std::ws; // skip white space. - c = in.peek(); // look at next char on input stream - - switch (c) - { - case '/': // read p21 file comment - s.set_null(); - ReadComment(in, s); - if(!s.is_null() && comments) - { - comments->Append("/*"); - comments->Append(s.chars()); - comments->Append("*/\n"); - } - break; - - case '\\': // try to read a print control directive - ReadPcd(in); - break; - - default: - return; - } - } -} diff --git a/source/geometry/solids/STEP/src/s_HEADER_SCHEMA.cc b/source/geometry/solids/STEP/src/s_HEADER_SCHEMA.cc deleted file mode 100644 index 81c60c4db5..0000000000 --- a/source/geometry/solids/STEP/src/s_HEADER_SCHEMA.cc +++ /dev/null @@ -1,471 +0,0 @@ -#ifndef S_HEADER_SCHEMA_CC -#define S_HEADER_SCHEMA_CC - -/* -* NIST STEP Editor Class Library -* cleditor/s_HEADER_SCHEMA.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. - -/* $Id: s_HEADER_SCHEMA.cc,v 1.3 2000/01/21 13:43:13 gcosmo Exp $ */ - -#include -#include -#include - -/* ************** TYPES */ -TypeDescriptor *HEADER_SCHEMAt_SCHEMA_NAME; - -/* ************** ENTITIES */ -EntityDescriptor *HEADER_SCHEMAe_FILE_IDENTIFICATION =0; -AttrDescriptor *a_0FILE_NAME =0; -AttrDescriptor *a_1DATE =0; -AttrDescriptor *a_2AUTHOR =0; -AttrDescriptor *a_3ORGANIZATION =0; -AttrDescriptor *a_4PREPROCESSOR_VERSION =0; -AttrDescriptor *a_5ORIGINATING_SYSTEM =0; - -s_N279_file_identification::s_N279_file_identification( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_FILE_IDENTIFICATION; - - a = new STEPattribute (*a_0FILE_NAME, &_file_name); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_1DATE, &_date); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_2AUTHOR, &_author); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_3ORGANIZATION, &_organization); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_4PREPROCESSOR_VERSION, &_preprocessor_version); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_5ORIGINATING_SYSTEM, &_originating_system); - a -> set_null (); - attributes.push (a); - } -s_N279_file_identification::~s_N279_file_identification () { } - -#ifdef __O3DB__ -void -s_N279_file_identification::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_FILE_IDENTIFICATION; - } -#endif - -const SCLP23(String) & -s_N279_file_identification::file_name() const - { return _file_name; } - -void -s_N279_file_identification::file_name (const char * x) - { _file_name = x; } - -const SCLP23(String) & -s_N279_file_identification::date() const - { return _date; } - -void -s_N279_file_identification::date (const char * x) - { _date = x; } - -StringAggregate & -s_N279_file_identification::author() - { return (StringAggregate &) _author; } - -void -s_N279_file_identification::author (StringAggregate & x) - { _author = x; } - -StringAggregate & -s_N279_file_identification::organization() - { return (StringAggregate &) _organization; } - -void -s_N279_file_identification::organization (StringAggregate & x) - { _organization = x; } - -const SCLP23(String) & -s_N279_file_identification::preprocessor_version() const - { return _preprocessor_version; } - -void -s_N279_file_identification::preprocessor_version (const char * x) - { _preprocessor_version = x; } - -const SCLP23(String) & -s_N279_file_identification::originating_system() const - { return _originating_system; } - -void -s_N279_file_identification::originating_system (const char * x) - { _originating_system = x; } -EntityDescriptor *HEADER_SCHEMAe_IMP_LEVEL =0; -AttrDescriptor *a_6IMPLEMENTATION_LEVEL =0; - -s_N279_imp_level::s_N279_imp_level( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_IMP_LEVEL; - - a = new STEPattribute (*a_6IMPLEMENTATION_LEVEL, &_implementation_level); - a -> set_null (); - attributes.push (a); - } -s_N279_imp_level::~s_N279_imp_level () { } - -#ifdef __O3DB__ -void -s_N279_imp_level::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_IMP_LEVEL; -} -#endif - -const SCLP23(String) & -s_N279_imp_level::implementation_level() const - { return _implementation_level; } - -void -s_N279_imp_level::implementation_level (const char * x) - { _implementation_level = x; } -EntityDescriptor *HEADER_SCHEMAe_FILE_NAME =0; -AttrDescriptor *a_7NAME =0; -AttrDescriptor *a_8TIME_STAMP =0; -AttrDescriptor *a_9AUTHOR =0; -AttrDescriptor *a_10ORGANIZATION =0; -AttrDescriptor *a_11STEP_VERSION =0; -AttrDescriptor *a_12PREPROCESSOR_VERSION =0; -AttrDescriptor *a_13ORIGINATING_SYSTEM =0; -AttrDescriptor *a_14AUTHORISATION =0; - -p21DIS_File_name::p21DIS_File_name( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_FILE_NAME; - - a = new STEPattribute (*a_7NAME, &_name); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_8TIME_STAMP, &_time_stamp); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_9AUTHOR, &_author); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_10ORGANIZATION, &_organization); - a -> set_null (); - attributes.push (a); - -/* - a = new STEPattribute (*a_11STEP_VERSION, &_step_version); - a -> set_null (); - attributes.push (a); -*/ - - a = new STEPattribute (*a_12PREPROCESSOR_VERSION, &_preprocessor_version); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_13ORIGINATING_SYSTEM, &_originating_system); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_14AUTHORISATION, &_authorisation); - a -> set_null (); - attributes.push (a); - } -p21DIS_File_name::~p21DIS_File_name () { } - -#ifdef __O3DB__ -void -p21DIS_File_name::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_FILE_NAME; - } -#endif -const SCLP23(String) & -p21DIS_File_name::name() const - { return _name; } - -void -p21DIS_File_name::name (const char * x) - { _name = x; } - -const SCLP23(String) & -p21DIS_File_name::time_stamp() const - { return _time_stamp; } - -void -p21DIS_File_name::time_stamp (const char * x) - { _time_stamp = x; } - -StringAggregate & -p21DIS_File_name::author() - { return (StringAggregate &) _author; } - -void -p21DIS_File_name::author (StringAggregate & x) - { _author = x; } - -StringAggregate & -p21DIS_File_name::organization() - { return (StringAggregate &) _organization; } - -void -p21DIS_File_name::organization (StringAggregate & x) - { _organization = x; } - -/* -const SCLP23(String) & -p21DIS_File_name::step_version() const - { return _step_version; } - -void -p21DIS_File_name::step_version (const char * x) - { _step_version = x; } -*/ - -const SCLP23(String) & -p21DIS_File_name::preprocessor_version() const - { return _preprocessor_version; } - -void -p21DIS_File_name::preprocessor_version (const char * x) - { _preprocessor_version = x; } - -const SCLP23(String) & -p21DIS_File_name::originating_system() const - { return _originating_system; } - -void -p21DIS_File_name::originating_system (const char * x) - { _originating_system = x; } - -const SCLP23(String) & -p21DIS_File_name::authorisation() const - { return _authorisation; } - -void -p21DIS_File_name::authorisation (const char * x) - { _authorisation = x; } -EntityDescriptor *HEADER_SCHEMAe_FILE_DESCRIPTION =0; -AttrDescriptor *a_15DESCRIPTION =0; -AttrDescriptor *a_16IMPLEMENTATION_LEVEL =0; - -p21DIS_File_description::p21DIS_File_description( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_FILE_DESCRIPTION; - - a = new STEPattribute (*a_15DESCRIPTION, &_description); - a -> set_null (); - attributes.push (a); - - a = new STEPattribute (*a_16IMPLEMENTATION_LEVEL, &_implementation_level); - a -> set_null (); - attributes.push (a); - } -p21DIS_File_description::~p21DIS_File_description () { } - -#ifdef __O3DB__ -void -p21DIS_File_description::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_FILE_DESCRIPTION; - } -#endif - -StringAggregate & -p21DIS_File_description::description() - { return (StringAggregate &) _description; } - -void -p21DIS_File_description::description (StringAggregate & x) - { _description = x; } - -const SCLP23(String) & -p21DIS_File_description::implementation_level() const - { return _implementation_level; } - -void -p21DIS_File_description::implementation_level (const char * x) - { _implementation_level = x; } -EntityDescriptor *HEADER_SCHEMAe_S_CLASSIFICATION =0; -AttrDescriptor *a_17SECURITY_CLASSIFICATION =0; - -s_N279_classification::s_N279_classification( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_S_CLASSIFICATION; - - a = new STEPattribute (*a_17SECURITY_CLASSIFICATION, &_security_classification); - a -> set_null (); - attributes.push (a); - } -s_N279_classification::~s_N279_classification () { } - -#ifdef __O3DB__ -void -s_N279_classification::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_S_CLASSIFICATION; - } -#endif - -const SCLP23(String) & -s_N279_classification::security_classification() const - { return _security_classification; } - -void -s_N279_classification::security_classification (const char * x) - { _security_classification = x; } - EntityDescriptor *HEADER_SCHEMAe_S_FILE_DESCRIPTION =0; -AttrDescriptor *a_18DESCRIPTION =0; - -s_N279_file_description::s_N279_file_description( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_S_FILE_DESCRIPTION; - - a = new STEPattribute (*a_18DESCRIPTION, &_description); - a -> set_null (); - attributes.push (a); - } -s_N279_file_description::~s_N279_file_description () { } - -#ifdef __O3DB__ -void -s_N279_file_description::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_S_FILE_DESCRIPTION; - } -#endif - -const SCLP23(String) & -s_N279_file_description::description() const - { return _description; } - -void -s_N279_file_description::description (const char * x) - { _description = x; } -EntityDescriptor *HEADER_SCHEMAe_MAXSIG =0; -AttrDescriptor *a_19MAXIMUM_SIGNIFICANT_DIGIT =0; - -p21DIS_Maxsig::p21DIS_Maxsig( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_MAXSIG; - - a = new STEPattribute (*a_19MAXIMUM_SIGNIFICANT_DIGIT, &_maximum_significant_digit); - a -> set_null (); - attributes.push (a); - } -p21DIS_Maxsig::~p21DIS_Maxsig () { } - -#ifdef __O3DB__ -void -p21DIS_Maxsig::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_MAXSIG; - } -#endif - -SCLP23(Integer) -p21DIS_Maxsig::maximum_significant_digit() - { return (SCLP23(Integer) ) _maximum_significant_digit; } - -void -p21DIS_Maxsig::maximum_significant_digit (SCLP23(Integer) x) - { _maximum_significant_digit = x; } -EntityDescriptor *HEADER_SCHEMAe_CLASSIFICATION =0; -AttrDescriptor *a_20SECURITY_CLASSIFICATION =0; - -p21DIS_Classification::p21DIS_Classification( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_CLASSIFICATION; - - a = new STEPattribute (*a_20SECURITY_CLASSIFICATION, &_security_classification); - a -> set_null (); - attributes.push (a); - } -p21DIS_Classification::~p21DIS_Classification () { } - -#ifdef __O3DB__ -void -p21DIS_Classification::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_CLASSIFICATION; - } -#endif - -const SCLP23(String) & -p21DIS_Classification::security_classification() const - { return _security_classification; } - -void -p21DIS_Classification::security_classification (const char * x) - { _security_classification = x; } -EntityDescriptor *HEADER_SCHEMAe_FILE_SCHEMA =0; -AttrDescriptor *a_21SCHEMA_IDENTIFIERS =0; - -p21DIS_File_schema::p21DIS_File_schema( ) - { - STEPattribute * a; - - eDesc = HEADER_SCHEMAe_FILE_SCHEMA; - - a = new STEPattribute (*a_21SCHEMA_IDENTIFIERS, &_schema_identifiers); - a -> set_null (); - attributes.push (a); - } -p21DIS_File_schema::~p21DIS_File_schema () { } - -#ifdef __O3DB__ -void -p21DIS_File_schema::oodb_reInit () -{ - eDesc = HEADER_SCHEMAe_FILE_SCHEMA; -} -#endif - -StringAggregate & -p21DIS_File_schema::schema_identifiers() - { return (StringAggregate &) _schema_identifiers; } - -void -p21DIS_File_schema::schema_identifiers (StringAggregate & x) - { _schema_identifiers = x; } -#endif diff --git a/source/geometry/solids/STEP/src/s_HEADER_SCHEMA_init.cc b/source/geometry/solids/STEP/src/s_HEADER_SCHEMA_init.cc deleted file mode 100644 index a2c8f7458d..0000000000 --- a/source/geometry/solids/STEP/src/s_HEADER_SCHEMA_init.cc +++ /dev/null @@ -1,193 +0,0 @@ -#ifndef S_HEADER_SCHEMA_INIT_CC -#define S_HEADER_SCHEMA_INIT_CC - -/* -* NIST STEP Editor Class Library -* cleditor/s_HEADER_SCHEMA.inline.cc -* April 1997 -* David Sauder -* K. C. Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. - -/* $Id: s_HEADER_SCHEMA_init.cc,v 1.3 2000/01/21 13:43:14 gcosmo Exp $ */ - -#include -#include -#include -#include -void -HeaderSchemaInit (Registry & reg) -{ - SchemaDescriptor * z_HEADER_SCHEMA = new SchemaDescriptor("Header_Schema"); - reg.AddSchema (*z_HEADER_SCHEMA); - HEADER_SCHEMAt_SCHEMA_NAME = new TypeDescriptor ( - "Schema_Name", // Name - STRING_TYPE, // FundamentalType - z_HEADER_SCHEMA, // Originating Schema - "STRING"); // Description - HEADER_SCHEMAe_FILE_IDENTIFICATION = new EntityDescriptor("File_Identification",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_s_N279_file_identification); - HEADER_SCHEMAe_IMP_LEVEL = new EntityDescriptor("Imp_Level",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_s_N279_imp_level); - HEADER_SCHEMAe_FILE_NAME = new EntityDescriptor("File_Name",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_p21DIS_File_name); - HEADER_SCHEMAe_FILE_DESCRIPTION = new EntityDescriptor("File_Description",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_p21DIS_File_description); - HEADER_SCHEMAe_S_CLASSIFICATION = new EntityDescriptor("S_Classification",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_s_N279_classification); - HEADER_SCHEMAe_S_FILE_DESCRIPTION = new EntityDescriptor("S_File_Description",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_s_N279_file_description); - HEADER_SCHEMAe_MAXSIG = new EntityDescriptor("Maxsig",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_p21DIS_Maxsig); - HEADER_SCHEMAe_CLASSIFICATION = new EntityDescriptor("Classification",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_p21DIS_Classification); - HEADER_SCHEMAe_FILE_SCHEMA = new EntityDescriptor("File_Schema",z_HEADER_SCHEMA, -SCLLOG(LFalse), SCLLOG(LFalse), -(Creator) create_p21DIS_File_schema); - HEADER_SCHEMAt_SCHEMA_NAME->ReferentType(t_sdaiSTRING); - reg.AddType (*HEADER_SCHEMAt_SCHEMA_NAME); - reg.AddEntity (*HEADER_SCHEMAe_FILE_IDENTIFICATION); - a_0FILE_NAME = new AttrDescriptor("file_name",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_IDENTIFICATION); - HEADER_SCHEMAe_FILE_IDENTIFICATION->AddExplicitAttr(a_0FILE_NAME); - a_1DATE = new AttrDescriptor("date",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_IDENTIFICATION); - HEADER_SCHEMAe_FILE_IDENTIFICATION->AddExplicitAttr(a_1DATE); - TypeDescriptor * t_0 = new TypeDescriptor; - t_0->FundamentalType(AGGREGATE_TYPE); - t_0->Description("LIST of STRING"); - t_0->OriginatingSchema(z_HEADER_SCHEMA); - t_0->ReferentType(t_sdaiSTRING); - a_2AUTHOR = new AttrDescriptor("author",t_0, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_IDENTIFICATION); - HEADER_SCHEMAe_FILE_IDENTIFICATION->AddExplicitAttr(a_2AUTHOR); - TypeDescriptor * t_1 = new TypeDescriptor; - t_1->FundamentalType(AGGREGATE_TYPE); - t_1->Description("LIST of STRING"); - t_1->OriginatingSchema(z_HEADER_SCHEMA); - t_1->ReferentType(t_sdaiSTRING); - a_3ORGANIZATION = new AttrDescriptor("organization",t_1, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_IDENTIFICATION); - HEADER_SCHEMAe_FILE_IDENTIFICATION->AddExplicitAttr(a_3ORGANIZATION); - a_4PREPROCESSOR_VERSION = new AttrDescriptor("preprocessor_version",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_IDENTIFICATION); - HEADER_SCHEMAe_FILE_IDENTIFICATION->AddExplicitAttr(a_4PREPROCESSOR_VERSION); - a_5ORIGINATING_SYSTEM = new AttrDescriptor("originating_system",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_IDENTIFICATION); - HEADER_SCHEMAe_FILE_IDENTIFICATION->AddExplicitAttr(a_5ORIGINATING_SYSTEM); - reg.AddEntity (*HEADER_SCHEMAe_IMP_LEVEL); - a_6IMPLEMENTATION_LEVEL = new AttrDescriptor("implementation_level",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_IMP_LEVEL); - HEADER_SCHEMAe_IMP_LEVEL->AddExplicitAttr(a_6IMPLEMENTATION_LEVEL); - reg.AddEntity (*HEADER_SCHEMAe_FILE_NAME); - a_7NAME = new AttrDescriptor("name",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_NAME); - HEADER_SCHEMAe_FILE_NAME->AddExplicitAttr(a_7NAME); - a_8TIME_STAMP = new AttrDescriptor("time_stamp",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_NAME); - HEADER_SCHEMAe_FILE_NAME->AddExplicitAttr(a_8TIME_STAMP); - TypeDescriptor * t_2 = new TypeDescriptor; - t_2->FundamentalType(AGGREGATE_TYPE); - t_2->Description("LIST [1:?] of STRING (256)"); - t_2->OriginatingSchema(z_HEADER_SCHEMA); - t_2->ReferentType(t_sdaiSTRING); - a_9AUTHOR = new AttrDescriptor("author",t_2, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_NAME); - HEADER_SCHEMAe_FILE_NAME->AddExplicitAttr(a_9AUTHOR); - TypeDescriptor * t_3 = new TypeDescriptor; - t_3->FundamentalType(AGGREGATE_TYPE); - t_3->Description("LIST [1:?] of STRING (256)"); - t_3->OriginatingSchema(z_HEADER_SCHEMA); - t_3->ReferentType(t_sdaiSTRING); - a_10ORGANIZATION = new AttrDescriptor("organization",t_3, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_NAME); - HEADER_SCHEMAe_FILE_NAME->AddExplicitAttr(a_10ORGANIZATION); -/* - a_11STEP_VERSION = new AttrDescriptor("step_version",t_sdaiSTRING,SCLLOG(LFalse),SCLLOG(LFalse),AttrType_Explicit,*HEADER_SCHEMAe_FILE_NAME); - HEADER_SCHEMAe_FILE_NAME->AddExplicitAttr(a_11STEP_VERSION); -*/ - a_12PREPROCESSOR_VERSION = new AttrDescriptor("preprocessor_version",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_NAME); - HEADER_SCHEMAe_FILE_NAME->AddExplicitAttr(a_12PREPROCESSOR_VERSION); - a_13ORIGINATING_SYSTEM = new AttrDescriptor("originating_system",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_NAME); - HEADER_SCHEMAe_FILE_NAME->AddExplicitAttr(a_13ORIGINATING_SYSTEM); - a_14AUTHORISATION = new AttrDescriptor("authorisation",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_NAME); - HEADER_SCHEMAe_FILE_NAME->AddExplicitAttr(a_14AUTHORISATION); - reg.AddEntity (*HEADER_SCHEMAe_FILE_DESCRIPTION); - TypeDescriptor * t_4 = new TypeDescriptor; - t_4->FundamentalType(AGGREGATE_TYPE); - t_4->Description("LIST [1:?] of STRING (256)"); - t_4->OriginatingSchema(z_HEADER_SCHEMA); - t_4->ReferentType(t_sdaiSTRING); - a_15DESCRIPTION = new AttrDescriptor("description",t_4, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_DESCRIPTION); - HEADER_SCHEMAe_FILE_DESCRIPTION->AddExplicitAttr(a_15DESCRIPTION); - a_16IMPLEMENTATION_LEVEL = new AttrDescriptor("implementation_level",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_DESCRIPTION); - HEADER_SCHEMAe_FILE_DESCRIPTION->AddExplicitAttr(a_16IMPLEMENTATION_LEVEL); - reg.AddEntity (*HEADER_SCHEMAe_S_CLASSIFICATION); - a_17SECURITY_CLASSIFICATION = new AttrDescriptor("security_classification",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_S_CLASSIFICATION); - HEADER_SCHEMAe_S_CLASSIFICATION->AddExplicitAttr(a_17SECURITY_CLASSIFICATION); - reg.AddEntity (*HEADER_SCHEMAe_S_FILE_DESCRIPTION); - a_18DESCRIPTION = new AttrDescriptor("description",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_S_FILE_DESCRIPTION); - HEADER_SCHEMAe_S_FILE_DESCRIPTION->AddExplicitAttr(a_18DESCRIPTION); - reg.AddEntity (*HEADER_SCHEMAe_MAXSIG); - a_19MAXIMUM_SIGNIFICANT_DIGIT = new AttrDescriptor("maximum_significant_digit",t_sdaiINTEGER, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_MAXSIG); - HEADER_SCHEMAe_MAXSIG->AddExplicitAttr(a_19MAXIMUM_SIGNIFICANT_DIGIT); - reg.AddEntity (*HEADER_SCHEMAe_CLASSIFICATION); - a_20SECURITY_CLASSIFICATION = new AttrDescriptor("security_classification",t_sdaiSTRING, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_CLASSIFICATION); - HEADER_SCHEMAe_CLASSIFICATION->AddExplicitAttr(a_20SECURITY_CLASSIFICATION); - reg.AddEntity (*HEADER_SCHEMAe_FILE_SCHEMA); - TypeDescriptor * t_5 = new TypeDescriptor; - t_5->FundamentalType(AGGREGATE_TYPE); - t_5->Description("LIST [1:?] of Schema_Name"); - t_5->OriginatingSchema(z_HEADER_SCHEMA); - t_5->ReferentType(t_sdaiSTRING); - a_21SCHEMA_IDENTIFIERS = new AttrDescriptor("schema_identifiers",t_5, -SCLLOG(LFalse),SCLLOG(LFalse), -AttrType_Explicit,*HEADER_SCHEMAe_FILE_SCHEMA); - HEADER_SCHEMAe_FILE_SCHEMA->AddExplicitAttr(a_21SCHEMA_IDENTIFIERS); - -} -#endif diff --git a/source/geometry/solids/STEP/src/schema.cc b/source/geometry/solids/STEP/src/schema.cc deleted file mode 100644 index e283e9ba0b..0000000000 --- a/source/geometry/solids/STEP/src/schema.cc +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef SCHEMA_CC -#define SCHEMA_CC -// This file was generated by fedex_plus. You probably don't want to edit -// it since your modifications will be lost if fedex_plus is used to -// regenerate it. -/* $Id: schema.cc,v 1.3 2000/01/21 13:43:14 gcosmo Exp $ */ -#include -class Registry; - -void -SchemaInit (Registry & reg) -{ - extern void InitSchemasAndEnts (Registry & r); - InitSchemasAndEnts (reg); - extern void SdaiCONFIG_CONTROL_DESIGNInit (Registry & r); - SdaiCONFIG_CONTROL_DESIGNInit (reg); - reg.SetCompCollect( gencomplex() ); -} - -// Generate a function to be called by Model to help it -// create the necessary Model_contents without the -// dictionary (Registry) handle since it doesn't have a -// predetermined way to access to the handle. - -SCLP23(Model_contents_ptr) GetModelContents(char *schemaName) -{ - if(!strcmp(schemaName, "config_control_design")) - return (SCLP23(Model_contents_ptr)) new SdaiModel_contents_config_control_design; - // Added default return type - GC - return 0; -} -#endif diff --git a/source/geometry/solids/STEP/src/scl_char_str_list.cc b/source/geometry/solids/STEP/src/scl_char_str_list.cc deleted file mode 100644 index 0d9b0587fb..0000000000 --- a/source/geometry/solids/STEP/src/scl_char_str_list.cc +++ /dev/null @@ -1,115 +0,0 @@ - -/////////////////////////////////////////////////////////////////////////////// - -//#include "/proj/pdevel/autoc/arch.sunCC.iv/scl_cf.h" -// This is an scl configuration file generated by the configure script -// generated using gnu's autoconf -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include - -// to help ObjectCenter -#ifndef HAVE_MEMMOVE -extern "C" -{ -void * memmove(void *__s1, const void *__s2, size_t __n); -} -#endif - -#include - - -scl_char_str__list::scl_char_str__list (int defaultSize) { - _bufsize = defaultSize; - _buf = new scl_char_str_ptr[_bufsize]; - _count = 0; -} - -scl_char_str__list::~scl_char_str__list () { delete _buf; } - -void scl_char_str__list::Check (int index) { - scl_char_str_ptr* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new scl_char_str_ptr[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(scl_char_str_ptr)); - delete _buf; - _buf = newbuf; - } -} - -void scl_char_str__list::Insert (scl_char_str_ptr v, int index) { - scl_char_str_ptr* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(scl_char_str_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void scl_char_str__list::Append (scl_char_str_ptr v) { - int index = _count; - scl_char_str_ptr* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(scl_char_str_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void scl_char_str__list::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - scl_char_str_ptr* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(scl_char_str_ptr)); - } -} - -int scl_char_str__list::Index (scl_char_str_ptr v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -scl_char_str_ptr& scl_char_str__list::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -scl_char_str__list::Count() -{ - return _count; -} - -void -scl_char_str__list::Clear() -{ - _count = 0; -} diff --git a/source/geometry/solids/STEP/src/scl_hash.cc b/source/geometry/solids/STEP/src/scl_hash.cc deleted file mode 100644 index b842a3f983..0000000000 --- a/source/geometry/solids/STEP/src/scl_hash.cc +++ /dev/null @@ -1,446 +0,0 @@ -/* "$Id: scl_hash.cc,v 1.4 2001/04/20 19:07:14 gcosmo Exp $"; */ - -/* - * Dynamic hashing, after CACM April 1988 pp 446-457, by Per-Ake Larson. - * Coded into C, with minor code improvements, and with hsearch(3) interface, - * by ejp@ausmelb.oz, Jul 26, 1988: 13:16; - * also, hcreate/hdestroy routines added to simulate hsearch(3). - */ - -#ifdef __O3DB__ -#include -#endif -#include -#include -#include -#include - -/*************/ -/* constants */ -/*************/ - -/*#define NULL 0*/ -#define HASH_NULL (Hash_TableP)NULL - -#define SEGMENT_SIZE 256 -#define SEGMENT_SIZE_SHIFT 8 /* log2(SEGMENT_SIZE) */ -#define PRIME1 37 -#define PRIME2 1048583 -#define MAX_LOAD_FACTOR 5 - -/*void *malloc(unsigned);*/ -/*void *calloc(unsigned,unsigned);*/ - -/************/ -/* typedefs */ -/************/ - -typedef unsigned long Address; - -/******************************/ -/* macro function definitions */ -/******************************/ - -/* -** Fast arithmetic, relying on powers of 2 -*/ - -#define MUL(x,y) ((x) << (y##_SHIFT)) -#define DIV(x,y) ((x) >> (y##_SHIFT)) -#define MOD(x,y) ((x) & ((y)-1)) - -/*#define HASH_Table_new() malloc(sizeof(struct Hash_Table))*/ -#define HASH_Table_new() new Hash_Table -/*#define HASH_Table_destroy(x) free((char *) x)*/ -#define HASH_Table_destroy(x) delete x -/*#define HASH_Element_new() malloc(sizeof(struct Element))*/ -#define HASH_Element_new() new Element -/*#define HASH_Element_destroy(x) free((char *) x)*/ -#define HASH_Element_destroy(x) delete x - -typedef struct Element *ElementP; -typedef struct Hash_Table *Hash_TableP; - -/* -** Internal routines -*/ - -Address HASHhash(char*, Hash_TableP); -static void HASHexpand_table(Hash_TableP); - -# if HASH_STATISTICS -static long HashAccesses, HashCollisions; -# endif - -void * -HASHfind(Hash_TableP t,char *s) -{ - struct Element e; - struct Element *ep; - - e.key = s; - e.symbol =0; /* initialize to 0 - 25-Apr-1994 - kcm */ - ep = HASHsearch(t,&e,HASH_FIND); - return(ep?ep->data:0); -} - -void -HASHinsert(Hash_TableP t,char *s,void *data) -{ - struct Element e, *e2; - - e.key = s; - e.data = data; - e.symbol =0; /* initialize to 0 - 25-Apr-1994 - kcm */ - e2 = HASHsearch(t,&e,HASH_INSERT); - if (e2) { - printf("Redeclaration of %s\n",s); - } -} - -Hash_TableP -HASHcreate(unsigned count) -{ - int i; - Hash_TableP table; - - /* - ** Adjust Count to be nearest higher power of 2, - ** minimum SEGMENT_SIZE, then convert into segments. - */ - i = SEGMENT_SIZE; - while (i < int(count)) - i <<= 1; - count = DIV(i, SEGMENT_SIZE); - - table = (Hash_TableP) HASH_Table_new(); - table->SegmentCount = table->p = (short) (table->KeyCount = 0); - /* - ** First initialize directory to 0\'s - ** DIRECTORY_SIZE must be same as in header - */ - for (i = 0; i < DIRECTORY_SIZE; i++) - table->Directory[i] = 0; - /* - ** Allocate initial 'i' segments of buckets - */ - for (i = 0; i < int(count); i++) -/* table->Directory[i] = (struct Element **) calloc(SEGMENT_SIZE,sizeof(struct Element));*/ - { - table->Directory[i] = new struct Element * [SEGMENT_SIZE]; - for (int h =0; h < SEGMENT_SIZE; h++) // initialize to NULL - table->Directory[i][h] = 0; - } - - table->SegmentCount = count; - table->maxp = MUL(count, SEGMENT_SIZE); - table->MinLoadFactor = 1; - table->MaxLoadFactor = MAX_LOAD_FACTOR; -# if DEBUG - fprintf(stderr, - "[HASHcreate] table %x count %d maxp %d SegmentCount %d\n", - table, - count, - table->maxp, - table->SegmentCount); -# endif -# if HASH_STATISTICS - HashAccesses = HashCollisions = 0; -# endif - return(table); -} - -/* initialize pointer to beginning of hash table so we can step through it */ -/* on repeated calls to HASHlist - DEL */ -void -HASHlistinit(Hash_TableP table,HashEntry *he) -{ - he->i = he->j = 0; - he->p = 0; - he->table = table; - he->type = '*'; - he->e =0; /* initialize to 0 - 25-Apr-1994 - kcm */ -} - -void -HASHlistinit_by_type(Hash_TableP table,HashEntry *he,char type) -{ - he->i = he->j = 0; - he->p = 0; - he->table = table; - he->type = type; - he->e =0; /* initialize to 0 - 25-Apr-1994 - kcm */ -} - -/* provide a way to step through the hash */ -struct Element * -HASHlist(HashEntry *he) -{ - int i2 = he->i; - int j2 = he->j; - struct Element **s; - - he->e = 0; - - for (he->i = i2; he->i < he->table->SegmentCount; he->i++) { - /* test probably unnecessary */ - if ((s = he->table->Directory[he->i]) != NULL) { - for (he->j = j2; he->j < SEGMENT_SIZE; he->j++) { - if (!he->p) he->p = s[he->j]; - - /* if he->p is defined, prepare to return it (by - setting it to he->e) and begin looking for a new value - for he->p - */ - retry: - if (he->p) { - if ((he->type != '*') && - (he->type != he->p->type)) { - he->p = he->p->next; - goto retry; - } - if (he->e) return(he->e); - he->e = he->p; - he->p = he->p->next; - } - - /* avoid incrementing he->j by returning here */ - if (he->p) return(he->e); - } - j2 = 0; - } - } - /* if he->e was set then it is last one */ - return(he->e); -} - -void -HASHdestroy(Hash_TableP table) -{ - int i, j; - struct Element **s; - struct Element *p, *q; - - if (table != HASH_NULL) { - for (i = 0; i < table->SegmentCount; i++) { - /* test probably unnecessary */ - if ((s = table->Directory[i]) != NULL) { - for (j = 0; j < SEGMENT_SIZE; j++) { - p = s[j]; - while (p != NULL) { - q = p->next; - HASH_Element_destroy(p); - p = q; - } - } -/* free((char *) table->Directory[i]);*/ - delete [] table->Directory[i]; - } - } - HASH_Table_destroy(table); -# if HASH_STATISTICS && DEBUG - fprintf(stderr, - "[hdestroy] Accesses %ld Collisions %ld\n", - HashAccesses, - HashCollisions); -# endif - } -} - -struct Element * -HASHsearch(Hash_TableP table, struct Element *item, Action action) -{ - Address h; - struct Element **CurrentSegment; - int SegmentIndex; - int SegmentDir; - struct Element **p; - struct Element *q; - struct Element *deleteme; - -# if HASH_STATISTICS - HashAccesses++; -# endif - h = HASHhash(item->key, table); - SegmentDir = (int) DIV(h, SEGMENT_SIZE); - SegmentIndex = (int) MOD(h, SEGMENT_SIZE); - /* - ** valid segment ensured by HASHhash() - */ - CurrentSegment = table->Directory[SegmentDir]; - p = CurrentSegment + SegmentIndex; - q = *p; - /* - ** Follow collision chain - ** Now and after we finish this loop - ** p = &element, and - ** q = element - */ - while (q != NULL && strcmp(q->key, item->key)) - { - p = &q->next; - q = *p; -# if HASH_STATISTICS - HashCollisions++; -# endif - } - /* at this point, we have either found the element or it doesn't exist */ - switch (action) { - case HASH_FIND: - return((struct Element *)q); - case HASH_DELETE: - if (!q) return(0); - /* at this point, element exists and action == DELETE */ - deleteme = q; - *p = q->next; - /*STRINGfree(deleteme->key);*/ - HASH_Element_destroy(deleteme); - --table->KeyCount; - return(deleteme); /* of course, user shouldn't deref this! */ - case HASH_INSERT: - /* if trying to insert it (twice), let them know */ - if (q != NULL) return(q); /* was return(0);!!!!!?!?! */ - - /* at this point, element does not exist and action == INSERT */ - q = (ElementP) HASH_Element_new(); - *p = q; /* link into chain */ - /* - ** Initialize new element - */ -/* I don't see the point of copying the key!!!! */ -/* q->key = STRINGcopy(item->key);*/ - q->key = item->key; - q->data = item->data; - q->symbol = item->symbol; - q->type = item->type; - q->next = NULL; - /* - ** table over-full? - */ - if (++table->KeyCount / MUL(table->SegmentCount, SEGMENT_SIZE) > table->MaxLoadFactor) - HASHexpand_table(table); /* doesn't affect q */ - } - return((struct Element *)0); /* was return (Element)q */ -} - -/* -** Internal routines -*/ - -Address -HASHhash(char* Key, Hash_TableP table) -{ - Address h, address; - register unsigned char *k = (unsigned char*)Key; - - h = 0; - /* - ** Convert string to integer - */ - /*SUPPRESS 112*/ - while (*k) - /*SUPPRESS 8*/ /*SUPPRESS 112*/ - h = h*PRIME1 ^ (*k++ - ' '); - h %= PRIME2; - address = MOD(h, table->maxp); - if (address < table->p) - address = MOD(h, (table->maxp << 1)); /* h % (2*table->maxp) */ - return(address); -} - -static -void -HASHexpand_table(Hash_TableP table) -{ - Address NewAddress; - int OldSegmentIndex, NewSegmentIndex; - int OldSegmentDir, NewSegmentDir; - struct Element **OldSegment, **NewSegment; - struct Element *Current, **Previous, **LastOfNew; - - if (table->maxp + table->p < MUL(DIRECTORY_SIZE, SEGMENT_SIZE)) { - /* - ** Locate the bucket to be split - */ - OldSegmentDir = DIV(table->p, SEGMENT_SIZE); - OldSegment = table->Directory[OldSegmentDir]; - OldSegmentIndex = MOD(table->p, SEGMENT_SIZE); - /* - ** Expand address space; if necessary create a new segment - */ - NewAddress = table->maxp + table->p; - NewSegmentDir = (int) DIV(NewAddress, SEGMENT_SIZE); - NewSegmentIndex = (int) MOD(NewAddress, SEGMENT_SIZE); - if (NewSegmentIndex == 0) -/* table->Directory[NewSegmentDir] = (struct Element **) calloc(SEGMENT_SIZE,sizeof(struct Element));*/ - { - table->Directory[NewSegmentDir] = new struct Element * [SEGMENT_SIZE]; - for (int h =0; h < SEGMENT_SIZE; h++) // initialize to NULL - table->Directory[NewSegmentDir][h] = 0; - } - - NewSegment = table->Directory[NewSegmentDir]; - /* - ** Adjust state variables - */ - table->p++; - if (table->p == table->maxp) { - table->maxp <<= 1; /* table->maxp *= 2 */ - table->p = 0; - } - table->SegmentCount++; - /* - ** Relocate records to the new bucket - */ - Previous = &OldSegment[OldSegmentIndex]; - Current = *Previous; - LastOfNew = &NewSegment[NewSegmentIndex]; - *LastOfNew = NULL; - while (Current != NULL) { - if (HASHhash(Current->key, table) == NewAddress) { - /* - ** Attach it to the end of the new chain - */ - *LastOfNew = Current; - /* - ** Remove it from old chain - */ - *Previous = Current->next; - LastOfNew = &Current->next; - Current = Current->next; - *LastOfNew = NULL; - } else { - /* - ** leave it on the old chain - */ - Previous = &Current->next; - Current = Current->next; - } - } - } -} - -/* following code is for testing hash package */ -#ifdef HASHTEST -struct Element e1, e2, e3, *e; -struct Hash_Table *t; -HashEntry he; - -main() -{ - e1.key = "foo"; e1.data = (char *)1; - e2.key = "bar"; e2.data = (char *)2; - e3.key = "herschel"; e3.data = (char *)3; - - t = HASHcreate(100); - e = HASHsearch(t,&e1,HASH_INSERT); - e = HASHsearch(t,&e2,HASH_INSERT); - e = HASHsearch(t,&e3,HASH_INSERT); - HASHlistinit(t,&he); - for (;;) { - e = HASHlist(&he); - if (!e) exit(0); - printf("found key %s, data %d\n",e->key,(int)e->data); - } -} -#endif diff --git a/source/geometry/solids/STEP/src/scl_string.cc b/source/geometry/solids/STEP/src/scl_string.cc deleted file mode 100644 index 04d3e93cd8..0000000000 --- a/source/geometry/solids/STEP/src/scl_string.cc +++ /dev/null @@ -1,330 +0,0 @@ - -/* -* NIST Utils Class Library -* clutils/scl_string.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: scl_string.cc,v 1.5 2003/06/06 17:07:35 gcosmo Exp $ */ - -#include -#include -/*******************************************************************/ -void -SCLstring::PrintContents(std::ostream &out) const -{ - if(_strBuf) - { - out << "_strBuf in parens" << G4endl << "("; - out << _strBuf << ")" << G4endl; - } - else - out << "_strBuf is a null pointer" << G4endl; - out << "_strBufSize: " << _strBufSize << G4endl; - out << "_max_len: " << _max_len << G4endl; -} - -int SCLstring::newBufSize (int l) const -{ - int rval = (((l + 1)/32) +1) * 32; - - // if there\'s a max and rval > max return max +1 - return (MaxLength () && (rval > MaxLength ())) ? MaxLength ()+1 : rval; -} - -//constructor -SCLstring::SCLstring (const char * str, int lim) -: _max_len (lim) -{ - - if (!str) { _strBufSize = 0; _strBuf = 0; return; } - - // check the length - int l; - if (lim && (int(strlen (str)) > lim)) l = lim; - else l = strlen (str); - - _strBufSize = newBufSize (l); -#ifdef __OSTORE__ - _strBuf = new (os_database::of(this), os_typespec::get_char(), _strBufSize) - char[_strBufSize]; -#else - _strBuf = new char[_strBufSize]; -#endif - strncpy (_strBuf, str, l); - _strBuf [l] = '\0'; - -} - -SCLstring::SCLstring (const SCLstring& s) -: _max_len (s.MaxLength ()) -{ - if (s.is_undefined ()) { _strBufSize = 0; _strBuf = 0; return; } -// int len = newBufSize (s.Length ()); -// _strBuf = new char [len]; -// strncpy (_strBuf, s, len); -// _strBuf [len] = '\0'; - _strBufSize = newBufSize (s.Length ()); - -#ifdef __OSTORE__ - _strBuf = new (os_database::of(this), os_typespec::get_char(), _strBufSize) - char[_strBufSize]; -#else - _strBuf = new char[_strBufSize]; -#endif - strncpy (_strBuf, s, _strBufSize); - _strBuf [_strBufSize-1] = '\0'; -} - -//destructor -SCLstring::~SCLstring() -{ - if(_strBufSize) - { - delete [] _strBuf; -// _strbuf = 0; - } -} - -//operators - -SCLstring& SCLstring::operator= (const char* str) -{ - if (!str) { - _strBufSize = 0; delete [] _strBuf; _strBuf =0; - } - else { - int slen = strlen (str); - if(!_strBuf || (StrBufSize () < newBufSize(slen+1) ) ) { - // make more room - // first clean up the space - if (_strBuf) delete [] _strBuf; - _strBufSize = newBufSize (slen+1); -#ifdef __OSTORE__ - _strBuf = new (os_database::of(this), os_typespec::get_char(), - _strBufSize) char[_strBufSize]; -#else - _strBuf = new char[_strBufSize]; -#endif - } - strncpy (_strBuf, str, _strBufSize -1); - _strBuf [_strBufSize -1] = '\0'; - } - return *this; -} - -// Josh L, 4/11/95 -SCLstring& SCLstring::operator= (const SCLstring& s) -{ - // changed from sending s.chars() so undefined will be set correctly - DAS -// _max_len = s.MaxLength(); // Do we want this to happen? - DAS - operator=(s.rep()); -// _strBufSize = s.StrBufSize(); // this seems wrong - DAS - return *this; -} - -SCLstring::operator const char * () const -{ - if (_strBuf) return _strBuf; - else return ""; -} - -SCLstring& -SCLstring::Append (const char * s) -{ - if (!s) return *this; - int oldlen = Length (); - int slen = strlen (s); - int l = oldlen + slen +1; - if (_strBuf && (l < _strBufSize)) strncat (_strBuf, s, slen+1); - else { // make more space - int sz = newBufSize (l); - -#ifdef __OSTORE__ - char * tmp = new (os_database::of(this), os_typespec::get_char(), sz) - char[sz]; -#else - char * tmp = new char [sz]; -#endif - tmp [0] ='\0'; - - _strBufSize = sz; - if (_strBuf) strcpy (tmp, _strBuf ); - l = (( slen > (sz-oldlen) ) ? sz-oldlen : slen); - strncat (tmp, s, l); - *(tmp+oldlen+l) = '\0'; - delete [] _strBuf; - _strBuf = tmp; - } - return *this; -} - -SCLstring& -SCLstring::Append (const char c) -{ - char tmp [2]; - tmp [0] = c; - tmp [1] = '\0'; - return Append (tmp); -} - -SCLstring& -SCLstring::Append (const long int i) -{ - char tmp [BUFSIZ]; - sprintf (tmp, "%ld", i); - return Append (tmp); -} - -SCLstring& -SCLstring::Append (const int i) -{ - char tmp [BUFSIZ]; - sprintf (tmp, "%d", i); - return Append (tmp); -} - -SCLstring& -SCLstring::Append (const double i, const int prec) -{ - char tmp [BUFSIZ]; -// sprintf (tmp, "%.*g", prec, i); - // replace the above line with this code so that writing the '.' is - // guaranteed for reals. If you use e or E then you get many - // unnecessary trailing zeros. g and G truncates all trailing zeros - // to save space but when no non-zero precision exists it also - // truncates the decimal. The decimal is required by Part 21. - // Also use G instead of g since G writes uppercase E (E instead of e - // is also required by Part 21) when scientific notation is used - DAS - - sprintf(tmp, "%.*G", prec, i); - if(!strchr(tmp, '.')) - { - if(strchr(tmp, 'E') || strchr(tmp, 'e')) - { - char *expon = strchr(tmp, 'E'); - - if( !expon) - { - expon = strchr(tmp, 'e'); - } - *expon = '\0'; - Append(tmp); - Append('.'); - Append('E'); - expon++; - Append(expon); - } - else - { - int rindex = strlen(tmp); - tmp[rindex] = '.'; - tmp[rindex+1] = '\0'; - Append(tmp); - } - return *this; - } - return Append (tmp); -} - -SCLstring& -SCLstring::Prepend (const char * s) -{ - if (!_strBuf) { // no string - int sz = newBufSize (strlen (s)); -#ifdef __OSTORE__ - _strBuf = new (os_database::of(this), os_typespec::get_char(), sz) - char[sz]; -#else - _strBuf = new char [sz]; -#endif - - sz = sz-1; - strncpy (_strBuf, s, sz); - _strBuf [sz-1] = '\0'; - return *this; - } - // otherwise make some space - int slen = strlen (s); - int sz = newBufSize (slen + Length () ); - -#ifdef __OSTORE__ - char * nstr = new (os_database::of(this), os_typespec::get_char(), sz) - char[sz]; -#else - char * nstr = new char [sz]; -#endif - - strncpy (nstr, s, sz-1); - if (slen < sz) // copy the rest - strncat (nstr, _strBuf, sz-slen); - nstr [sz -1] = '\0'; // make sure it\'s null terminated - delete [] _strBuf; - _strBuf = nstr; - return *this; -} - - -int -SCLstring::operator== (const char* s) const -{ - return !strcmp (_strBuf, s); -} - -// is_null returns true if the string doesn't exist or if it is empty. -// If is_null() returns true you may also want to call is_undefined() to -// see if it is undefined. -int -SCLstring::is_null() const -{ - if (_strBuf) return _strBuf[0] == '\0'; - else return 1; -} - -// If the buffer doesn't exist SCLstring returns true for is_null() and -// and is_undefined(). -int -SCLstring::is_undefined() const -{ - return !_strBuf; -} - -// see also set_null() -void -SCLstring::set_undefined() -{ - delete [] _strBuf; - _strBuf = 0; - _strBufSize = 0; -} - -// see also set_undefined() -int -SCLstring::set_null() -{ - for (int i =0; i < _strBufSize; ++i) - *(_strBuf +i) = '\0'; - return 1; -/* - delete [] _strBuf; - _strBuf =0; - _strBufSize = 0; - return 1; - */ -} - -int -SCLstring::StrBufSize() const -{ return _strBufSize; } - -int -SCLstring::Length() const -{ - if (_strBuf) return strlen (_strBuf); - else return 0; -} diff --git a/source/geometry/solids/STEP/src/sdai.cc b/source/geometry/solids/STEP/src/sdai.cc deleted file mode 100644 index 23a508a025..0000000000 --- a/source/geometry/solids/STEP/src/sdai.cc +++ /dev/null @@ -1,15 +0,0 @@ - -// Use limits.h instead of values.h for portability. Therefore, -// use FLT_MIN instead of MINFLOAT, LONG_MAX instead of MAXLONG. -// Also commented inclusion of values.h in sdai.h - GC -#include -#include -#include "globals.hh" -// The values used here to represent NULL values for numeric types come from -// the ANSI C standard - -const char *SCLversion = "STEP Class Library version 3.1"; - -const SCLP23(Integer) SCLP23(INT_NULL) = LONG_MAX; -const SCLP23(Real) SCLP23(REAL_NULL) = FLT_MIN; -const SCLP23(Real) SCLP23(NUMBER_NULL) = FLT_MIN; diff --git a/source/geometry/solids/STEP/src/sdaiApplication_instance.cc b/source/geometry/solids/STEP/src/sdaiApplication_instance.cc deleted file mode 100644 index c8b178ab23..0000000000 --- a/source/geometry/solids/STEP/src/sdaiApplication_instance.cc +++ /dev/null @@ -1,1300 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/sdaiApplication_instance.cc -* July, 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiApplication_instance.cc,v 1.3 2003/06/06 17:07:35 gcosmo Exp $ */ - -//static char rcsid[] ="$Id: sdaiApplication_instance.cc,v 1.3 2003/06/06 17:07:35 gcosmo Exp $"; - -#include -//#include -#include -#include -#include - -SCLP23(Application_instance) NilSTEPentity; - -/****************************************************************** -** Functions for manipulating entities - -** KNOWN BUGs: the SCLP23(Application_instance) is not aware of the STEPfile; -** therefore it can not read comments which may be embedded in the instance. -** The following are known problems: -** -- does not handle comments embedded in an instance ==> bombs -** -- ignores embedded entities ==> does not bomb -** -- error reporting does not include line number information -**/ - -SCLP23(Application_instance)::SCLP23_NAME(Application_instance) () -: _cur(0), STEPfile_id(0), p21Comment(0), headMiEntity(0), nextMiEntity(0), - _complex(0) -{ -} - -SCLP23(Application_instance)::SCLP23_NAME(Application_instance) (int fileid, int complex) -: _cur(0), STEPfile_id(fileid), p21Comment(0), - headMiEntity(0), nextMiEntity(0), _complex (complex) -{ -} - -SCLP23(Application_instance)::~SCLP23_NAME(Application_instance) () -{ - STEPattribute * next =0; - ResetAttributes (); - while (next = NextAttribute ()) - delete next; - - if(MultipleInheritance()) - { - delete nextMiEntity; - } - - delete p21Comment; - -/* -// this is not necessary since each will call delete on its -// own nextMiEntity - DAS - SCLP23(Application_instance) * nextMI = nextMiEntity; - SCLP23(Application_instance) * nextMItrail = 0; - while(nextMI) - { - nextMItrail = nextMI; - nextMI = nextMI->nextMiEntity; - // this is ok since STEPattribute doesn't explicitly delete its attr - delete nextMItrail; - } -*/ -} - -#ifdef PART26 -//SCLP26(Application_instance_ptr) -IDL_Application_instance_ptr -SCLP23(Application_instance)::create_TIE() -{ - G4cout << "ERROR SCLP23(Application_instance)::create_TIE() called." << G4endl; - return 0; -} -#endif - -SCLP23(Application_instance) * -SCLP23(Application_instance)::Replicate() -{ - char errStr[BUFSIZ]; - if(IsComplex()) - { - G4cerr << "STEPcomplex::Replicate() should be called: " << __FILE__ - << __LINE__ << "\n" << _POC_ "\n"; - sprintf(errStr, - "SCLP23(Application_instance)::Replicate(): %s - entity #%d.\n", - "Programming ERROR - STEPcomplex::Replicate() should be called", - STEPfile_id); - _error.AppendToDetailMsg(errStr); - _error.AppendToUserMsg(errStr); - _error.GreaterSeverity(SEVERITY_BUG); - return S_ENTITY_NULL; - } - else - { -#ifdef __OSTORE__ - SCLP23(Application_instance) *seNew = eDesc->NewSTEPentity(os_database::of(this)); -#else - SCLP23(Application_instance) *seNew = eDesc->NewSTEPentity(); -#endif - seNew -> CopyAs (this); - return seNew; - } -} - -void SCLP23(Application_instance)::AddP21Comment(const char *s, int replace) -{ - if(replace) - { - delete p21Comment; - p21Comment = 0; - } - if(s) - { - if(!p21Comment) - { -#ifdef __OSTORE__ - p21Comment = new (os_segment::of(this), SCLstring::get_os_typespec()) - SCLstring; -#else - p21Comment = new SCLstring; -#endif - } - else - p21Comment->set_null(); - p21Comment->Append( s ); - } -} - -void -SCLP23(Application_instance)::AddP21Comment(SCLstring &s, int replace) -{ - if(replace) - { - delete p21Comment; - p21Comment = 0; - } - if(!s.is_null()) - { - if(!p21Comment) - { -#ifdef __OSTORE__ - p21Comment = new (os_segment::of(this), - SCLstring::get_os_typespec()) - SCLstring; -#else - p21Comment = new SCLstring; -#endif - } - else - p21Comment->set_null(); - p21Comment->Append( s.chars() ); - } -} - -void -SCLP23(Application_instance)::STEPwrite_reference (std::ostream& out) -{ - out << "#" << STEPfile_id; -} - -const char * -SCLP23(Application_instance)::STEPwrite_reference (SCLstring &buf) -{ - char tmp[64]; - sprintf ( tmp,"#%d", STEPfile_id); - buf = tmp; - return buf.chars(); -} - -void -SCLP23(Application_instance)::AppendMultInstance(SCLP23(Application_instance) *se) -{ - if(nextMiEntity == 0) - nextMiEntity = se; - else - { - SCLP23(Application_instance) *link = nextMiEntity; - SCLP23(Application_instance) *linkTrailing = 0; - while(link) - { - linkTrailing = link; - link = link->nextMiEntity; - } - linkTrailing->nextMiEntity = se; - } -} - -// BUG implement this - -SCLP23(Application_instance) * -SCLP23(Application_instance)::GetMiEntity(char *EntityName) -{ - SCLstring s1, s2; - - const EntityDescLinkNode *edln = 0; - const EntityDescriptor *ed = eDesc; - - // compare up the *leftmost* parent path - while(ed) - { - if( !strcmp( StrToLower(ed->Name(),s1), StrToLower(EntityName,s2) ) ) - return this; // return this parent path - edln = (EntityDescLinkNode *)( ed->Supertypes().GetHead() ); - if(edln) - ed = edln->EntityDesc(); - else - ed = 0; - } - // search alternate parent path since didn't find it in this one. - if(nextMiEntity) - return nextMiEntity->GetMiEntity(EntityName); - return 0; -} - - -#ifdef __OSTORE__ -void Application_instance_access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - G4cout << "ObjectStore called non-member function Application_instance Access_hook" - << G4endl; - SCLP23(Application_instance) *ent = (SCLP23(Application_instance) *)object; - G4cout << "STEPfile_id: " << ent->STEPfile_id << G4endl; - ent->Access_hook_in(object, reason, user_data, start_range, end_range); - -// SdaiEb_person *ent = (SdaiEb_person *)object; -// SdaiEb_person_access_hook_in(object, reason, user_data, -// start_range, end_range); -} - -void -SCLP23(Application_instance)::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - SCLP23(Application_instance) *ent = (SCLP23(Application_instance) *)object; - G4cout << "****WARNING: virtual SCLP23(Application_instance)::Access_hook_in() called" << G4endl; - ent->Access_hook_in(object, reason, user_data, start_range, end_range); -} -#endif - -STEPattribute * -SCLP23(Application_instance)::GetSTEPattribute (const char * nm) -{ - if (!nm) return 0; - STEPattribute *a =0; - - ResetAttributes(); - while ((a = NextAttribute () ) - && strcmp (nm, a ->Name())) - ; // keep going until no more attributes or attribute is found - - return a; -} - -STEPattribute * -SCLP23(Application_instance)::MakeRedefined (STEPattribute *redefiningAttr, const char * nm) -{ - // find the attribute being redefined - STEPattribute * a = GetSTEPattribute (nm); - - // assign its pointer to the redefining attribute - if (a) a->RedefiningAttr(redefiningAttr); - return a; -} - -STEPattribute * -SCLP23(Application_instance)::MakeDerived (const char * nm) -{ - STEPattribute * a = GetSTEPattribute (nm); - if (a) a ->Derive (); - return a; -} - -void -SCLP23(Application_instance)::CopyAs (SCLP23(Application_instance) * other) -{ - int numAttrs = AttributeCount(); - ResetAttributes(); - other -> ResetAttributes(); - - STEPattribute *this_attr = 0; - STEPattribute *other_attr = 0; - while((this_attr = NextAttribute()) && numAttrs) - { - other_attr = other -> NextAttribute(); - this_attr -> ShallowCopy(other_attr); - numAttrs--; - } -} - - -const char * -SCLP23(Application_instance)::EntityName( const char *schnm) const -{ - return eDesc->Name( schnm ); -} - -/***************************************************************** - Checks if a given SCLP23(Application_instance) is the same type as this one - ****************************************************************/ - -const EntityDescriptor* SCLP23(Application_instance)::IsA(const EntityDescriptor *ed) const -{ - return (eDesc->IsA(ed)); -} - -/****************************************************************** -// Checks the validity of the current attribute values for the entity - ******************************************************************/ - -Severity SCLP23(Application_instance)::ValidLevel(ErrorDescriptor *error, InstMgr *im, - int clearError) -{ - ErrorDescriptor err; - if(clearError) - ClearError(); - int n = attributes.list_length(); - SCLstring tmp; - for (int i = 0 ; i < n; i++) { - if( !(attributes[i].aDesc->AttrType() == AttrType_Redefining) ) - error->GreaterSeverity(attributes[i].ValidLevel( - attributes[i].asStr(tmp), &err, im, 0)); - } - return error->severity(); -} - -/****************************************************************** - // clears all attr's errors - ******************************************************************/ -void SCLP23(Application_instance)::ClearAttrError() -{ - int n = attributes.list_length(); - for (int i = 0 ; i < n; i++) { - attributes[i].Error().ClearErrorMsg(); - } -} - -/****************************************************************** - // clears entity's error and optionally all attr's errors - ******************************************************************/ - -void SCLP23(Application_instance)::ClearError(int clearAttrs) -{ - _error.ClearErrorMsg(); - if(clearAttrs) - ClearAttrError(); -} - -/****************************************************************** - ******************************************************************/ - -/* -void SCLP23(Application_instance)::EnforceOptionality(int on) -{ - Enforcement e; - if(on) e = ENFORCE_OPTIONALITY; - else e = ENFORCE_OFF; - - Error().enforcement(e); - int n = attributes.list_length(); - for (int i = 0 ; i < n; i++) { - attributes[i].Error().enforcement(e); - } -} -*/ -/****************************************************************** - ** Procedure: beginSTEPwrite - ** Parameters: std::ostream& out -- stream to write to - ** Returns: - ** Side Effects: writes out the SCOPE section for an entity - ** Status: stub - ******************************************************************/ - -void SCLP23(Application_instance)::beginSTEPwrite(std::ostream& out) -{ - out << "begin STEPwrite ... \n" ; - out.flush(); - - int n = attributes.list_length(); - for (int i = 0 ; i < n; i++) { - if (attributes[i].Type () == ENTITY_TYPE - && *(attributes[i].ptr.c) != S_ENTITY_NULL) - (*(attributes[i].ptr.c)) -> STEPwrite(); - } -} - -/****************************************************************** - ** Procedure: STEPwrite - ** Parameters: std::ostream& out -- stream to write to - ** Returns: - ** Side Effects: writes out the data associated with an instance - in STEP format - ** Problems: does not print out the SCOPE section of an entity - ** - ******************************************************************/ - -void -SCLP23(Application_instance)::STEPwrite(std::ostream& out, const char *currSch, - int writeComments) -{ - SCLstring tmp; - if(writeComments && p21Comment && !p21Comment->is_null() ) - out << p21Comment->chars(); - out << "#" << STEPfile_id << "=" << StrToUpper(EntityName( currSch ), tmp) - << "("; - int n = attributes.list_length(); - - for (int i = 0 ; i < n; i++) { - if( !(attributes[i].aDesc->AttrType() == AttrType_Redefining) ) - { - if (i > 0) out << ","; - (attributes[i]).STEPwrite( out, currSch ); - } - } - out << ");\n"; -} - -void SCLP23(Application_instance)::endSTEPwrite(std::ostream& out) -{ - out << "end STEPwrite ... \n" ; - out.flush(); -} - -void -SCLP23(Application_instance)::WriteValuePairs(std::ostream& out, - const char *currSch, - int writeComments, int mixedCase) -{ -/* - const EntityDescriptorList &edl = eDesc->Supertypes(); - EntityDescItr &edi((EntityDescriptorList &)(eDesc->Supertypes())); - - int count = 1; - const EntityDescriptor * ed = 0; - while(ed = edi.NextEntityDesc()) - { - if(count > 1) - { - out << "&"; - } - out << ed->Name(); - count++; - } -*/ - -// const AttrDescriptorList& adl = ed->ExplicitAttr(); - -/* - out << "Attributes are: " << G4endl; - edi.ResetItr(); - AttrDescItr *adi = 0; - const AttrDescriptor * ad; - while(ed = edi.NextEntityDesc()) - { - adi = new AttrDescItr((AttrDescriptorList&)ed->ExplicitAttr()); - ad = 0; - while(ad = adi->NextAttrDesc()) - { - out << ed->Name() << "." << ad->Name() << G4endl; - } - delete adi; - } - out << G4endl; - out << "finished writing attribute names." << G4endl; - edi.ResetItr(); -*/ - SCLstring s; -// out << eDesc->QualifiedName(s) << G4endl; - - SCLstring tmp, tmp2; - if(writeComments && p21Comment && !p21Comment->is_null() ) - out << p21Comment->chars(); - if(mixedCase) - { - out << "#" << STEPfile_id << " " - << eDesc->QualifiedName(s) << G4endl; - } - else - { - out << "#" << STEPfile_id << " " - << StrToUpper(eDesc->QualifiedName(s),tmp) << G4endl; - } - int n = attributes.list_length(); - - for (int i = 0 ; i < n; i++) { - if( !(attributes[i].aDesc->AttrType() == AttrType_Redefining) ) - { -// if (i > 0) out << ","; - if(mixedCase) - { - out << "\t" - << attributes[i].aDesc->Owner().Name(s) - << "." << attributes[i].aDesc->Name() << " "; - } - else - { - out << "\t" - << StrToUpper(attributes[i].aDesc->Owner().Name(s),tmp) - << "." << StrToUpper(attributes[i].aDesc->Name(),tmp2) << " "; - } - (attributes[i]).STEPwrite( out, currSch ); - out << G4endl; - } - } - out << G4endl; -} - - -/****************************************************************** - ** Procedure: STEPwrite - ** Problems: does not print out the SCOPE section of an entity - ** - ******************************************************************/ - -const char * -SCLP23(Application_instance)::STEPwrite(SCLstring &buf, const char *currSch) -{ - buf.set_null(); - - char instanceInfo[BUFSIZ]; - - SCLstring tmp; - sprintf(instanceInfo, "#%d=%s(", STEPfile_id, - (char *)StrToUpper( EntityName( currSch ), tmp ) ); - buf.Append(instanceInfo); - - int n = attributes.list_length(); - - for (int i = 0 ; i < n; i++) { - if( !(attributes[i].aDesc->AttrType() == AttrType_Redefining) ) - { - if (i > 0) buf.Append( ',' ); - attributes[i].asStr( tmp, currSch ) ; - buf.Append (tmp); - } - } - buf.Append( ");" ); - return buf.chars(); -} - -void -SCLP23(Application_instance)::PrependEntityErrMsg() -{ - char errStr[BUFSIZ]; - errStr[0] = '\0'; - - if(_error.severity() == SEVERITY_NULL) - { // if there is not an error already - sprintf(errStr, "\nERROR: ENTITY #%d %s\n", GetFileId(), - EntityName()); - _error.PrependToDetailMsg(errStr); - } -} - -/****************************************************************** - ** Procedure: SCLP23(Application_instance)::STEPread_error - ** Parameters: char c -- character which caused error - ** int i -- index of attribute which caused error - ** std::istream& in -- input stream for recovery - ** Returns: - ** Description: reports the error found, reads until it finds the end of an - ** instance. i.e. a close quote followed by a semicolon optionally having - ** whitespace between them. - ******************************************************************/ -void -SCLP23(Application_instance)::STEPread_error(char c, int i, std::istream& in) -{ - char errStr[BUFSIZ]; - errStr[0] = '\0'; - - if(_error.severity() == SEVERITY_NULL) - { // if there is not an error already - sprintf(errStr, "\nERROR: ENTITY #%d %s\n", GetFileId(), - EntityName()); - _error.PrependToDetailMsg(errStr); - } - -/* sprintf(errStr, " for instance #%d : %s\n", STEPfile_id, EntityName());*/ -/* _error.AppendToDetailMsg(errStr);*/ - - if ( (i >= 0) && (i < attributes.list_length())) // i is an attribute - { - Error ().GreaterSeverity (SEVERITY_WARNING); - sprintf(errStr, " invalid data before type \'%s\'\n", - attributes[i].TypeName()); - _error.AppendToDetailMsg(errStr); - } - else - { - Error ().GreaterSeverity (SEVERITY_INPUT_ERROR); - _error.AppendToDetailMsg(" No more attributes were expected.\n"); - } - - SCLstring tmp; - STEPwrite (tmp); // STEPwrite writes to a static buffer inside function - sprintf(errStr, - " The invalid instance to this point looks like :\n%s\n", - tmp.chars() ); - _error.AppendToDetailMsg(errStr); - -// _error.AppendToDetailMsg(" data lost looking for end of entity:"); - - // scan over the rest of the instance and echo it -// G4cerr << " ERROR Trying to find the end of the ENTITY to recover...\n"; -// G4cerr << " skipping the following input:\n"; - -#ifdef OBSOLETE - in.clear(); - int foundEnd = 0; - tmp = ""; - - // Search until a close paren is found followed by (skipping optional - // whitespace) a semicolon - while( in.good() && !foundEnd ) - { - while ( in.good() && (c != ')') ) - { - in.get(c); - tmp.Append(c); -// G4cerr << c; - } - if(in.good() && (c == ')') ) - { - in >> std::ws; // skip whitespace - in.get(c); - tmp.Append(c); -// G4cerr << c; -// G4cerr << "\n"; - if(c == ';') - { - foundEnd = 1; - } - } - } - _error.AppendToDetailMsg( tmp.chars() ); -#endif - sprintf (errStr, "\nfinished reading #%d\n", STEPfile_id); - _error.AppendToDetailMsg(errStr); - return; -} - -/****************************************************************** - ** Procedure: STEPread - ** Returns: Severity, error information - ** SEVERITY_NULL - no errors - ** SEVERITY_USERMSG - checked as much as possible, could still - ** be error - e.g. entity didn't match base entity type. - ** SEVERITY_INCOMPLETE - data is missing and required. - ** SEVERITY_WARNING - errors, but can recover - ** <= SEVERITY_INPUT_ERROR - fatal error, can't recover - ** Description: reads the values for an entity from an input stream - ** in STEP file format starting at the open paren and - ** ending with the semi-colon - ** Parameters: int id - ** int idIncrement - ** InstMgr instances - ** std::istream& in - ** Side Effects: gobbles up input stream - ** Status: - ******************************************************************/ - -Severity -SCLP23(Application_instance)::STEPread(int id, int idIncr, - InstMgr * instance_set, std::istream& in, - const char *currSch, int useTechCor) -{ - STEPfile_id = id; - char c ='\0'; - char errStr[BUFSIZ]; - errStr[0] = '\0'; - Severity severe; - int i = 0; - - ClearError(1); - - in >> std::ws; - in >> c; // read the open paren - if( c != '(' ) - { - PrependEntityErrMsg(); - _error.AppendToDetailMsg( - " Missing initial open paren... Trying to recover.\n"); - in.putback(c); // assume you can recover by reading 1st attr value - } - in >> std::ws; - - int n = attributes.list_length(); - if( n == 0) // no attributes - { - in >> c; // look for the close paren - if( c == ')' ) - return _error.severity(); - } - - for (i = 0 ; i < n; i++) { - if( attributes[i].aDesc->AttrType() == AttrType_Redefining ) - { - in >> std::ws; - c = in.peek(); - if(!useTechCor) // i.e. use pre-technical corrigendum encoding - { - in >> c; // read what should be the '*' - in >> std::ws; - if(c == '*') - { - in >> c; // read the delimiter i.e. ',' or ')' - } - else - { - severe = SEVERITY_INCOMPLETE; - PrependEntityErrMsg(); // adds entity info if necessary - - // set the severity for this entity - _error.GreaterSeverity(severe); - sprintf (errStr, " %s : ", attributes[i].Name()); - _error.AppendToDetailMsg(errStr); // add attr name - _error.AppendToDetailMsg( - "Since using pre-technical corrigendum... missing asterisk for redefined attr.\n"); - _error.AppendToUserMsg( - "Since using pre-technical corrigendum... missing asterisk for redefined attr. "); - } -/* - if( ! ( (c == ',') || (c == ')') ) ) - { // input is not a delimiter - an error - PrependEntityErrMsg(); - - _error.AppendToDetailMsg( - "Delimiter expected after redefined asterisk attribute encoding (since using pre-technical corregendum.\n"); - CheckRemainingInput(in, &_error, "ENTITY", ",)"); - if(!in.good()) - return _error.severity(); - if(_error.severity() <= SEVERITY_INPUT_ERROR) - { -// STEPread_error(c,i,in); - return _error.severity(); - } - } -*/ - } - else // using technical corrigendum - { - // should be nothing to do except loop again unless... - // if at end need to have read the closing paren. - if(c == ')') // assume you are at the end so read last char - in >> c; - G4cout << "Entity #" << STEPfile_id - << " skipping redefined attribute " - << attributes[i].aDesc->Name() << G4endl << G4endl << std::flush; - } - // increment counter to read following attr since these attrs - // aren't written or read => there won't be a delimiter either -// i++; - } - else - { - attributes[i].STEPread(in, instance_set, idIncr, currSch); - in >> c; // read the , or ) following the attr read - - severe = attributes[i].Error().severity(); - - if(severe <= SEVERITY_USERMSG) - { // if there is some type of error - PrependEntityErrMsg(); - - // set the severity for this entity - _error.GreaterSeverity(severe); - sprintf (errStr, " %s : ", attributes[i].Name()); - _error.AppendToDetailMsg(errStr); // add attr name - _error.AppendToDetailMsg((char *) // add attr error - attributes[i].Error().DetailMsg()); - _error.AppendToUserMsg((char*)attributes[i].Error().UserMsg()); - } - } - -/* - if(severe <= SEVERITY_INPUT_ERROR) - { // attribute\'s error is non-recoverable - // I believe if this error occurs then you cannot recover - - // TODO: can you just read to the next comma and try to continue ? - STEPread_error(c,i,in); - return _error.severity(); - } -*/ - // if technical corrigendum redefined, input is at next attribute value - // if pre-technical corrigendum redefined, don't process - if ( (!( attributes[i].aDesc->AttrType() == AttrType_Redefining ) || - !useTechCor) && - ! ((c == ',') || (c == ')' )) ) { // input is not a delimiter - PrependEntityErrMsg(); - - _error.AppendToDetailMsg( - "Delimiter expected after attribute value.\n"); - if(!useTechCor) - { - _error.AppendToDetailMsg( - "I.e. since using pre-technical corrigendum, redefined "); - _error.AppendToDetailMsg( - "attribute is mapped as an asterisk so needs delimiter.\n"); - } - CheckRemainingInput(in, &_error, "ENTITY", ",)"); - if(!in.good()) - return _error.severity(); - if(_error.severity() <= SEVERITY_INPUT_ERROR) - { -// STEPread_error(c,i,in); - return _error.severity(); - } - } - else if(c == ')') - { - while (i < n-1) - { - i++; // check if following attributes are redefined - if( !(attributes[i].aDesc->AttrType() == AttrType_Redefining) ) - { - PrependEntityErrMsg(); - _error.AppendToDetailMsg("Missing attribute value[s].\n"); - // recoverable error - _error.GreaterSeverity(SEVERITY_WARNING); - return _error.severity(); - } - i++; - } - return _error.severity(); - } - } - STEPread_error(c,i,in); -// code fragment imported from STEPread_error -// for some currently unknown reason it was commented out of STEPread_error - errStr[0] = '\0'; - in.clear(); - int foundEnd = 0; - SCLstring tmp; - tmp = ""; - - // Search until a close paren is found followed by (skipping optional - // whitespace) a semicolon - while( in.good() && !foundEnd ) - { - while ( in.good() && (c != ')') ) - { - in.get(c); - tmp.Append(c); -// G4cerr << c; - } - if(in.good() && (c == ')') ) - { - in >> std::ws; // skip whitespace - in.get(c); - tmp.Append(c); -// G4cerr << c; -// G4cerr << "\n"; - if(c == ';') - { - foundEnd = 1; - } - } - } - _error.AppendToDetailMsg( tmp.chars() ); - sprintf (errStr, "\nfinished reading #%d\n", STEPfile_id); - _error.AppendToDetailMsg(errStr); -// end of imported code - return _error.severity(); -} - -/////////////////////////////////////////////////////////////////////////////// -// read an entity reference and return a pointer to the SCLP23(Application_instance) -/////////////////////////////////////////////////////////////////////////////// - -SCLP23(Application_instance) * -ReadEntityRef(std::istream &in, ErrorDescriptor *err, char *tokenList, - InstMgr * instances, int addFileId) -{ - char c; - char errStr[BUFSIZ]; - errStr[0] = '\0'; - - in >> std::ws; - in >> c; - switch (c) - { - case '@': - err->AppendToDetailMsg( - "Use of @ instead of # to identify entity.\n"); - err->GreaterSeverity(SEVERITY_WARNING); - // no break statement here on purpose - case '#': - { - int id = -1; -// int n = 0; - in >> id; - if (in.fail ()) // there's been an error in input - { -// in.clear(); - sprintf(errStr,"Invalid entity reference value.\n"); - err->AppendToDetailMsg(errStr); - err->AppendToUserMsg(errStr); - err->GreaterSeverity(SEVERITY_WARNING); - CheckRemainingInput(in, err, "Entity Reference", tokenList); - return S_ENTITY_NULL; - } - else // found an entity id - { - // check to make sure garbage does not follow the id - CheckRemainingInput(in, err, "Entity Reference", tokenList); - - id += addFileId; - if (!instances) - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - sprintf(errStr, - "STEPread_reference(): %s - entity #%d %s.\n", - "BUG - cannot read reference without the InstMgr", - id, "is unknown"); - err->AppendToDetailMsg(errStr); - err->AppendToUserMsg(errStr); - err->GreaterSeverity(SEVERITY_BUG); - return S_ENTITY_NULL; - } - - // lookup which object has id as its instance id - SCLP23(Application_instance)* inst; - /* If there is a ManagerNode it should have a SCLP23(Application_instance) */ - MgrNode* mn =0; - mn = instances->FindFileId(id); - if (mn) - { - inst = mn->GetSTEPentity() ; - if (inst) { return (inst); } - else - { - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - sprintf(errStr, - "STEPread_reference(): %s - entity #%d %s.\n", - "BUG - MgrNode::GetSTEPentity returned NULL pointer", - id, "is unknown"); - err->AppendToDetailMsg(errStr); - err->AppendToUserMsg(errStr); - err->GreaterSeverity(SEVERITY_BUG); - return S_ENTITY_NULL; - } - } - else - { - sprintf(errStr,"Reference to non-existent ENTITY #%d.\n", - id); - err->AppendToDetailMsg(errStr); - err->AppendToUserMsg(errStr); - err->GreaterSeverity(SEVERITY_WARNING); - return S_ENTITY_NULL; - } - } - } - default: - { - in.putback(c); - // read past garbage up to delim in tokenList - // if tokenList is null it will not read anything - CheckRemainingInput(in, err, "Entity Reference", tokenList); - return S_ENTITY_NULL; - } - } -} - -/////////////////////////////////////////////////////////////////////////////// -// same as above but reads from a const char * -/////////////////////////////////////////////////////////////////////////////// - -SCLP23(Application_instance) * -ReadEntityRef(const char * s, ErrorDescriptor *err, char *tokenList, - InstMgr * instances, int addFileId) -{ - std::istrstream in((char *)s); - return ReadEntityRef(in, err, tokenList, instances, addFileId); -} - -/////////////////////////////////////////////////////////////////////////////// -// return SEVERITY_NULL if se's entity type matches the supplied entity type -/////////////////////////////////////////////////////////////////////////////// - -Severity -EntityValidLevel(SCLP23(Application_instance) *se, - const TypeDescriptor *ed, // entity type that entity se needs - // to match. (this must be an - // EntityDescriptor) - ErrorDescriptor *err) -{ - char messageBuf [BUFSIZ]; - messageBuf[0] = '\0'; - - if( !ed || (ed->NonRefType() != ENTITY_TYPE) ) - { - err->GreaterSeverity(SEVERITY_BUG); - sprintf(messageBuf, - " BUG: EntityValidLevel() called with %s", - "missing or invalid EntityDescriptor\n"); - err->AppendToUserMsg(messageBuf); - err->AppendToDetailMsg(messageBuf); - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return SEVERITY_BUG; - } - if(!se || (se == S_ENTITY_NULL)) - { - err->GreaterSeverity(SEVERITY_BUG); - sprintf(messageBuf, - " BUG: EntityValidLevel() called with null pointer %s\n", - "for SCLP23(Application_instance) argument."); - err->AppendToUserMsg(messageBuf); - err->AppendToDetailMsg(messageBuf); - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return SEVERITY_BUG; - } - - // DAVE: Can an entity be used in an Express TYPE so that this - // EntityDescriptor would have type REFERENCE_TYPE -- it looks like NO - - else if(se->eDesc) - { - // is se a descendant of ed? - if ( se->eDesc->IsA(ed) ) - { - return SEVERITY_NULL; - } - else - { - if(se->IsComplex()) - { - // This way assumes that the complex has all it's parts i.e. the - // complete hierarchy so it should be able to find ed's part if - // it is an ed. - STEPcomplex *sc = ((STEPcomplex *)se)->sc; - if(sc->EntityExists(ed->Name())) - return SEVERITY_NULL; -/* -*/ - - // This way checks to see if it is an ed based on the dictionary - // It is much less efficient but does not depend on the instance - // having all the parts it needs to be valid. -/* - STEPcomplex *sc = ((STEPcomplex *)se)->sc; - while (sc) - { - if( sc->eDesc->IsA(ed) ) - return SEVERITY_NULL; - sc = sc->sc; - } -*/ - } - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, - " Entity #%d exists but is not a %s or descendant.\n", - se->STEPfile_id, ed->Name()); - err->AppendToUserMsg(messageBuf); - err->AppendToDetailMsg(messageBuf); - return SEVERITY_WARNING; - } - } - else - { - err->GreaterSeverity(SEVERITY_BUG); - sprintf(messageBuf, - " BUG: EntityValidLevel(): SCLP23(Application_instance) #%d has a %s", - se->STEPfile_id, "missing or invalid EntityDescriptor\n"); - err->AppendToUserMsg(messageBuf); - err->AppendToDetailMsg(messageBuf); - G4cerr << "Internal error: " << __FILE__ << __LINE__ - << "\n" << _POC_ "\n"; - return SEVERITY_BUG; - } -} - -/////////////////////////////////////////////////////////////////////////////// -// return 1 if attrValue has the equivalent of a null value. -/////////////////////////////////////////////////////////////////////////////// - -int -SetErrOnNull (const char *attrValue, ErrorDescriptor *error) -{ -// DAVE: Is this needed will sscanf return 1 if assignment suppression is used? - char scanBuf[BUFSIZ]; - scanBuf[0] = '\0'; - - int numFound = sscanf((char *)attrValue," %s", scanBuf); - if (numFound == EOF) { -/* - if(Nullable()) { - error->GreaterSeverity (SEVERITY_NULL); - } - else { - error->GreaterSeverity (SEVERITY_INCOMPLETE); - } -*/ - error->GreaterSeverity (SEVERITY_INCOMPLETE); - return 1; - } - return 0; -} - -/////////////////////////////////////////////////////////////////////////////// -// return SEVERITY_NULL if attrValue has a valid entity reference -// This function accepts an entity reference in two forms that is with or -// without the # sign: e.g. either #23 or 23 will be read. -// If non-whitespace characters follow the entity reference an error is set. -/////////////////////////////////////////////////////////////////////////////// - -Severity -EntityValidLevel(const char *attrValue, // string contain entity ref - const TypeDescriptor *ed, // entity type that entity in - // attrValue (if it exists) needs - // to match. (this must be an - // EntityDescriptor) - ErrorDescriptor *err, InstMgr *im, int clearError) -{ - char tmp [BUFSIZ]; - tmp[0] = '\0'; - char messageBuf [BUFSIZ]; - messageBuf[0] = '\0'; - - if(clearError) - err->ClearErrorMsg(); - -/* - // the problem with doing this is that it will require having a # in front - // of the entity ref. - SCLP23(Application_instance) se = ReadEntityRef(attrValue, err, 0, im, 0); - return EntityValidLevel(se, ed, err); -*/ - - int fileId; - MgrNode *mn = 0; - - // check for both forms: #id or id - int found1 = sscanf((char *)attrValue, " #%d %s", &fileId, tmp); - int found2 = sscanf((char *)attrValue, " %d %s", &fileId, tmp); - - if( (found1 > 0) || (found2 > 0) ) - { - if ( (found1 == 2) || (found2 == 2) ) - { - sprintf(messageBuf, - " Attribute's Entity Reference %s is %s data \'%s\'.\n", - attrValue, "followed by invalid", tmp); - err->AppendToUserMsg(messageBuf); - err->AppendToDetailMsg(messageBuf); - err->GreaterSeverity(SEVERITY_WARNING); - } - mn = im->FindFileId(fileId); - if(mn) - { - SCLP23(Application_instance) *se = mn->GetSTEPentity(); - return EntityValidLevel(se, ed, err); - } - else { - sprintf(messageBuf, - " Attribute's Entity Reference %s does not exist.\n", - attrValue); - err->AppendToUserMsg(messageBuf); - err->AppendToDetailMsg(messageBuf); - err->GreaterSeverity(SEVERITY_WARNING); - return SEVERITY_WARNING; - } - } - - // if the attrValue contains no value return - if (SetErrOnNull (attrValue, err)) - return err->severity(); - - sprintf(messageBuf, "Invalid attribute entity reference value: '%s'.\n", - attrValue); - err->AppendToUserMsg(messageBuf); - err->AppendToDetailMsg(messageBuf); - err->GreaterSeverity(SEVERITY_WARNING); - return SEVERITY_WARNING; -} - -/****************************************************************** - ** Procedure: NextAttribute - ** Parameters: - ** Returns: reference to an attribute pointer - ** Description: used to cycle through the list of attributes - ** Side Effects: increments the current position in the attribute list - ** Status: untested 7/31/90 - ******************************************************************/ - -STEPattribute * -SCLP23(Application_instance)::NextAttribute () { - int i = AttributeCount (); - ++_cur; - if (i < _cur) return 0; - return &attributes [_cur-1]; - -} - -int -SCLP23(Application_instance)::AttributeCount () { - return attributes.list_length (); -} - -#ifdef OBSOLETE -Severity -SCLP23(Application_instance)::ReadAttrs(int id, int addFileId, - class InstMgr * instance_set, std::istream& in) -{ - char c ='\0'; - char errStr[BUFSIZ]; - errStr[0] = '\0'; - Severity severe; - - ClearError(1); - - int n = attributes.list_length(); - for (int i = 0 ; i < n; i++) { - attributes[i].STEPread(in, instance_set, addFileId); - - severe = attributes[i].Error().severity(); - - if(severe <= SEVERITY_USERMSG) - { // if there\'s some type of error - if(_error.severity() == SEVERITY_NULL) - { // if there is not an error already - sprintf(errStr, "\nERROR: ENTITY #%d %s\n", GetFileId(), - EntityName()); - _error.PrependToDetailMsg(errStr); - } - // set the severity for this entity - sprintf (errStr, " %s : ", attributes[i].Name()); - _error.AppendToDetailMsg(errStr); - _error.GreaterSeverity(severe); - _error.AppendToDetailMsg((char *) - attributes[i].Error().DetailMsg()); - _error.AppendToUserMsg((char *)attributes[i].Error().UserMsg()); - - } -/* - if(severe <= SEVERITY_INPUT_ERROR) - { // attribute\'s error is non-recoverable - // I believe if this error occurs then you cannot recover - - // TODO: can you just read to the next comma and try to continue ? - STEPread_error(c,i,in); - return _error.severity(); - } -*/ - in >> c; - if ( ! ((c == ',') || (c == ')' ))) { // input is not a delimiter - if(_error.severity() == SEVERITY_NULL) - { // if there is not an error already - sprintf(errStr, "\nERROR: ENTITY #%d %s\n", GetFileId(), - EntityName()); - _error.PrependToDetailMsg(errStr); - } - _error.AppendToDetailMsg( - "delimiter expected after attribute value.\n"); - CheckRemainingInput(in, &_error, "ENTITY", ",)"); - if(!in.good()) - return _error.severity(); - if(_error.severity() <= SEVERITY_INPUT_ERROR) - { - STEPread_error(c,i,in); - return _error.severity(); - } - } - else if(c == ')') - { - in >> std::ws; - char z = in.peek(); - if (z == ';') - { - in.get(c); - return _error.severity(); - } - } - } - if(c != ')' ) - { - STEPread_error(c,i,in); - return _error.severity(); - } - return SEVERITY_NULL; -} -#endif diff --git a/source/geometry/solids/STEP/src/sdaiApplication_instance_set.cc b/source/geometry/solids/STEP/src/sdaiApplication_instance_set.cc deleted file mode 100644 index e5bb25af9b..0000000000 --- a/source/geometry/solids/STEP/src/sdaiApplication_instance_set.cc +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Copyright (c) 1990, 1991 Stanford University - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Stanford not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Stanford makes no representations about - * the suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * UArray implementation. - */ - -//#include "/proj/pdevel/autoc/arch.sunCC.iv/scl_cf.h" -// This is an scl configuration file generated by the configure script -// generated using gnu's autoconf -#ifdef HAVE_CONFIG_H -#include -#endif - -//#include -#include - -#include -#include - -// to help ObjectCenter -#ifndef HAVE_MEMMOVE -extern "C" -{ -void * memmove(void *__s1, const void *__s2, size_t __n); -} -#endif - -/*****************************************************************************/ - -SCLP23(Application_instance__set)::SCLP23_NAME(Application_instance__set) (int defaultSize) { - _bufsize = defaultSize; - _buf = new SCLP23(Application_instance_ptr)[_bufsize]; - _count = 0; -} - -SCLP23(Application_instance__set)::~SCLP23_NAME(Application_instance__set) () { delete _buf; } - -void SCLP23(Application_instance__set)::Check (int index) { - SCLP23(Application_instance_ptr)* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new SCLP23(Application_instance_ptr)[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(SCLP23(Application_instance_ptr))); - delete _buf; - _buf = newbuf; - } -} - -void SCLP23(Application_instance__set)::Insert (SCLP23(Application_instance_ptr) v, int index) { - SCLP23(Application_instance_ptr)* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(SCLP23(Application_instance_ptr))); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void SCLP23(Application_instance__set)::Append (SCLP23(Application_instance_ptr) v) { - int index = _count; - SCLP23(Application_instance_ptr)* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(SCLP23(Application_instance_ptr))); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void SCLP23(Application_instance__set)::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - SCLP23(Application_instance_ptr)* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(SCLP23(Application_instance_ptr))); - } -} - -void SCLP23(Application_instance__set)::Remove (SCLP23(Application_instance_ptr) a) { - int index = Index(a); - if( !(index < 0) ) - Remove(index); -} - -int SCLP23(Application_instance__set)::Index (SCLP23(Application_instance_ptr) v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -SCLP23(Application_instance_ptr)& SCLP23(Application_instance__set)::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -SCLP23(Application_instance__set)::Count() -{ - return _count; -} - -void -SCLP23(Application_instance__set)::Clear() -{ - _count = 0; -} diff --git a/source/geometry/solids/STEP/src/sdaiDaObject.cc b/source/geometry/solids/STEP/src/sdaiDaObject.cc deleted file mode 100644 index 648fb70197..0000000000 --- a/source/geometry/solids/STEP/src/sdaiDaObject.cc +++ /dev/null @@ -1,336 +0,0 @@ - -//#include "/proj/pdevel/autoc/arch.sunCC.iv/scl_cf.h" -// This is an scl configuration file generated by the configure script -// generated using gnu's autoconf -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#ifdef __OSTORE__ -#include // Required to access ObjectStore Class Library -#endif - -#include - -// to help ObjectCenter -#ifndef HAVE_MEMMOVE -extern "C" -{ -void * memmove(void *__s1, const void *__s2, size_t __n); -} -#endif - -#ifdef __OSTORE__ -void force_vfts (void*){ - force_vfts(new os_Array); - force_vfts(new os_Bag); - force_vfts(new os_Collection); - force_vfts(new os_List); - force_vfts(new os_Set); -} -#endif - -SCLP23(PID)::SCLP23_NAME(PID)() -{ -} - -SCLP23(PID)::~SCLP23_NAME(PID)() -{ -} - -SCLP23(PID_DA)::SCLP23_NAME(PID_DA)() -{ -} - -SCLP23(PID_DA)::~SCLP23_NAME(PID_DA)() -{ -} - -SCLP23(PID_SDAI)::SCLP23_NAME(PID_SDAI)() -{ -} - -SCLP23(PID_SDAI)::~SCLP23_NAME(PID_SDAI)() -{ -} - -SCLP23(DAObject)::SCLP23_NAME(DAObject)() -{ -} - -SCLP23(DAObject)::~SCLP23_NAME(DAObject)() -{ -} - -#ifdef __OSTORE__ -void -SCLP23(DAObject)::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - G4cout << "****WARNING: virtual DAObject::Access_hook_in() called" << G4endl; - SCLP23(DAObject_ptr) ent = (SCLP23(DAObject_ptr))object; -/* - ent->Access_hook_in(object, reason, user_data, start_range, end_range); -*/ -} -#endif - -#ifdef PART26 -//SCLP26(Application_instance_ptr) -IDL_Application_instance_ptr -SCLP23(DAObject)::create_TIE() -{ - G4cout << "ERROR DAObject::create_TIE() called." << G4endl; - return 0; -} -#endif - -SCLP23(DAObject_SDAI)::SCLP23_NAME(DAObject_SDAI)() -{ -} - -/* -SCLP23(DAObject_SDAI)::SCLP23_NAME(DAObject_SDAI)(const DAObject_SDAI&) -{ -} -*/ - -SCLP23(DAObject_SDAI)::~SCLP23_NAME(DAObject_SDAI)() -{ -} - -#ifdef __OSTORE__ -void -SCLP23(DAObject_SDAI)::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - G4cout << "****WARNING: virtual DAObject_SDAI::Access_hook_in() called" << G4endl; - SCLP23(DAObject_SDAI_ptr) ent = (SCLP23(DAObject_SDAI_ptr))object; -/* - ent->Access_hook_in(object, reason, user_data, start_range, end_range); -*/ -} -#endif - -#ifdef PART26 -//SCLP26(Application_instance_ptr) -IDL_Application_instance_ptr -SCLP23(DAObject_SDAI)::create_TIE() -{ - G4cout << "ERROR DAObject_SDAI::create_TIE() called." << G4endl; - return 0; -} -#endif - -/* - * Copyright (c) 1990, 1991 Stanford University - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Stanford not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Stanford makes no representations about - * the suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * UArray implementation. - */ - -/*****************************************************************************/ - -SCLP23(DAObject__set)::SCLP23_NAME(DAObject__set) (int defaultSize) -#ifdef __OSTORE__ -// : _rep(os_Collection::create(os_database::of(this)) ), - : _rep(os_List::create(os_database::of(this)) ), - _cursor(_rep), - _first(SCLBOOL(BTrue)) -{ -// _rep = os_Set::create(os_database::of(this)); -} -#else -{ - _bufsize = defaultSize; - _buf = new SCLP23(DAObject_ptr)[_bufsize]; - _count = 0; -} -#endif - -SCLP23(DAObject__set)::~SCLP23_NAME(DAObject__set) () -{ -#ifndef __OSTORE__ - delete _buf; -#endif -} - -void SCLP23(DAObject__set)::Check (int index) { - -#ifdef __OSTORE__ -#else - SCLP23(DAObject_ptr)* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new SCLP23(DAObject_ptr)[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(SCLP23(DAObject_ptr))); - delete _buf; - _buf = newbuf; - } -#endif -} - -void -SCLP23(DAObject__set)::Insert (SCLP23(DAObject_ptr) v, int index) { - -#ifdef __OSTORE__ - _rep.insert_before( (SCLP23(DAObject_ptr)) v, index); -#else - SCLP23(DAObject_ptr)* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(SCLP23(DAObject_ptr))); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -#endif -} - -void SCLP23(DAObject__set)::Append (SCLP23(DAObject_ptr) v) { - -#ifdef __OSTORE__ - _rep.insert_last( (SCLP23(DAObject_ptr)) v); -#else - int index = _count; - SCLP23(DAObject_ptr)* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(SCLP23(DAObject_ptr))); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -#endif -} - -void SCLP23(DAObject__set)::Remove (int index) { - -#ifdef __OSTORE__ - _rep.remove_at( index ); -#else - if (0 <= index && index < _count) { - --_count; - SCLP23(DAObject_ptr)* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(SCLP23(DAObject_ptr))); - } -#endif -} - -#ifndef __OSTORE__ -int SCLP23(DAObject__set)::Index (SCLP23(DAObject_ptr) v) { - - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} -#endif - -SCLP23(DAObject_ptr) -SCLP23(DAObject__set)::retrieve(int index) -{ -#ifdef __OSTORE__ - return _rep.retrieve(index); -#else - return operator[](index); -#endif -} - -#ifndef __OSTORE__ -SCLP23(DAObject_ptr)& SCLP23(DAObject__set)::operator[] (int index) { - - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} -#endif - -int -SCLP23(DAObject__set)::Count() -{ -#ifdef __OSTORE__ - return _rep.cardinality(); -#else - return _count; -#endif -} - -int -SCLP23(DAObject__set)::is_empty() -{ -#ifdef __OSTORE__ - return _rep.empty(); -#else - return _count; -#endif -} - -#ifndef __OSTORE__ -void -SCLP23(DAObject__set)::Clear() -{ - _count = 0; -} -#endif - -#ifdef __OSTORE__ - -SCLP23(DAObject_ptr) -SCLP23(DAObject__set)::first() -{ - return _cursor.first(); -} - -SCLP23(DAObject_ptr) -SCLP23(DAObject__set)::next() -{ - return _cursor.next(); -} - -SCLP23(Integer) -SCLP23(DAObject__set)::more() -{ - return _cursor.more(); -} - -#endif diff --git a/source/geometry/solids/STEP/src/sdaiEntity_extent.cc b/source/geometry/solids/STEP/src/sdaiEntity_extent.cc deleted file mode 100644 index 64ef5096d6..0000000000 --- a/source/geometry/solids/STEP/src/sdaiEntity_extent.cc +++ /dev/null @@ -1,138 +0,0 @@ -///////// ENTITY entity_extent - -//#include - -#include - -SCLP23(Entity_extent)::SCLP23_NAME(Entity_extent)( ) -: _definition(0), _definition_name(0), _owned_by(0) -{ -/* - _definition = 0; - _definition_name = 0; - _owned_by = 0; -*/ -} - -/* -SCLP23(Entity_extent)::SCLP23_NAME(Entity_extent)(const SCLP23(Entity_extent)& ee) -{ -// { CopyAs((STEPentityH) &e); } - _definition = 0; - _owned_by = 0; -} -*/ - -SCLP23(Entity_extent)::~SCLP23_NAME(Entity_extent) () -{ - delete _definition_name; -} - -const Entity_ptr -SCLP23(Entity_extent)::definition_() const -{ - return _definition; -} - -/* -const SCLP23(Entity_name) -SCLP23(Entity_extent)::definition_name_() const -{ - return _definition_name; -} -*/ - -void -SCLP23(Entity_extent)::definition_(const Entity_ptr& ep) -{ - _definition = ep; -} - -void -SCLP23(Entity_extent)::definition_name_(const SCLP23(Entity_name)& en) -{ -#ifdef __OSTORE__ - _definition_name = new (os_database::of(this), os_typespec::get_char(), - strlen(en)+1) char[strlen(en)+1]; -#else - _definition_name = new char[strlen(en)+1]; -#endif - strncpy (_definition_name, en, strlen(en)+1); -} - -void -SCLP23(Entity_extent)::owned_by_(SCLP23_NAME(Model_contents__list_var)& mclv) -{ -// _owned_by = mcp; -} - -const SCLP23(Model_contents__list_var) -SCLP23(Entity_extent)::owned_by_() const -{ - // removed 'const' qualifier from return type since meaningless - GC - return (SCLP23(Model_contents__list_var)) &_owned_by; -} - -/* -SCLP23(DAObject__set_var) instances_() -{ - return &_instances; -} - -const -SCLP23(DAObject__set_var) instances_() const -{ - return (const SCLP23(DAObject__set_var))&_instances; -} -*/ - -/* - 7.3.3.1 SDAI operation declarations - - 7.3.3.1.1 AddInstance - Function: - The AddInstance function shall add the entity instance entity - handle to the instances set of the receiver. - - Possible error indicators: - sdaiSS_NOPN // Session not open - sdaiRP_NOPN // Repository not open - sdaiMO_NEXS // SDAI-model does not exist - sdaiMX_NRW // SDAI-model access not read-write - sdaiSY_ERR // Underlying system error - - Origin: Convenience function -*/ - -void -SCLP23(Entity_extent)::AddInstance(const SCLP23(DAObject_ptr)& appInst) -{ - _instances.Append(appInst); -} - -/* - 7.3.3.1.2 RemoveInstance - Function: - The RemoveInstance function shall remove the entity instance entity - handle from the instances set of the receiver. - - Possible error indicators: - sdaiSS_NOPN // Session not open - sdaiRP_NOPN // Repository not open - sdaiMO_NEXS // SDAI-model does not exist - sdaiMX_NRW // SDAI-model access not read-write - sdaiSY_ERR // Underlying system error - - Origin: Convenience function -*/ - - -#ifndef __OSTORE__ -void -SCLP23(Entity_extent)::RemoveInstance(const SCLP23(DAObject_ptr)& appInst) -{ - _instances.Remove( _instances.Index(appInst) ); -} -#endif - -///////// END_ENTITY SCLP23(Entity_extent) diff --git a/source/geometry/solids/STEP/src/sdaiEntity_extent_set.cc b/source/geometry/solids/STEP/src/sdaiEntity_extent_set.cc deleted file mode 100644 index 7e9b942beb..0000000000 --- a/source/geometry/solids/STEP/src/sdaiEntity_extent_set.cc +++ /dev/null @@ -1,327 +0,0 @@ -/* - * Copyright (c) 1990, 1991 Stanford University - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Stanford not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Stanford makes no representations about - * the suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * UArray implementation. - */ - -//#include "/proj/pdevel/autoc/arch.sunCC.iv/scl_cf.h" -// This is an scl configuration file generated by the configure script -// generated using gnu's autoconf -#ifdef HAVE_CONFIG_H -#include -#endif - -#include -#include - -#include - -/* -#include -#include -*/ - -// to help ObjectCenter -#ifndef HAVE_MEMMOVE -extern "C" -{ -void * memmove(void *__s1, const void *__s2, size_t __n); -} -#endif - -/*****************************************************************************/ - -SCLP23(Entity_extent__set)::SCLP23_NAME(Entity_extent__set) (int defaultSize) -#ifdef __OSTORE__ -// : _rep(os_Collection::create(os_database::of(this)) ), - : _rep(os_List::create(os_database::of(this)) ), - _cursor(_rep), - _first(SCLBOOL(BTrue)) -{ -// _rep = os_Set::create(os_database::of(this)); -} -#else -{ - _bufsize = defaultSize; - _buf = new SCLP23(Entity_extent_ptr)[_bufsize]; - _count = 0; -} -#endif - -SCLP23(Entity_extent__set)::~SCLP23_NAME(Entity_extent__set) () -{ -#ifndef __OSTORE__ - delete _buf; -#endif -} - -void SCLP23(Entity_extent__set)::Check (int index) { - -#ifdef __OSTORE__ -#else - SCLP23(Entity_extent_ptr)* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new SCLP23(Entity_extent_ptr)[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(SCLP23(Entity_extent_ptr))); - delete _buf; - _buf = newbuf; - } -#endif -} - -void -SCLP23(Entity_extent__set)::Insert (SCLP23(Entity_extent_ptr) v, int index) { - -#ifdef __OSTORE__ - _rep.insert_before( (SCLP23(Entity_extent_ptr)) v, index); -#else - SCLP23(Entity_extent_ptr)* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(SCLP23(Entity_extent_ptr))); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -#endif -} - -void SCLP23(Entity_extent__set)::Append (SCLP23(Entity_extent_ptr) v) { - -#ifdef __OSTORE__ - _rep.insert_last( (SCLP23(Entity_extent_ptr)) v); -#else - int index = _count; - SCLP23(Entity_extent_ptr)* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(SCLP23(Entity_extent_ptr))); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -#endif -} - -void SCLP23(Entity_extent__set)::Remove (int index) { - -#ifdef __OSTORE__ - _rep.remove_at( index ); -#else - if (0 <= index && index < _count) { - --_count; - SCLP23(Entity_extent_ptr)* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(SCLP23(Entity_extent_ptr))); - } -#endif -} - -#ifndef __OSTORE__ -int SCLP23(Entity_extent__set)::Index (SCLP23(Entity_extent_ptr) v) { - - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} -#endif - -SCLP23(Entity_extent_ptr) -SCLP23(Entity_extent__set)::retrieve(int index) -{ -#ifdef __OSTORE__ - return _rep.retrieve(index); -#else - return operator[](index); -#endif -} - -#ifndef __OSTORE__ -SCLP23(Entity_extent_ptr)& SCLP23(Entity_extent__set)::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} -#endif - -int -SCLP23(Entity_extent__set)::Count() -{ -#ifdef __OSTORE__ - return _rep.cardinality(); -#else - return _count; -#endif -} - -int -SCLP23(Entity_extent__set)::is_empty() -{ -#ifdef __OSTORE__ - return _rep.empty(); -#else - return _count; -#endif -} - -#ifndef __OSTORE__ -void -SCLP23(Entity_extent__set)::Clear() -{ - _count = 0; -} -#endif - -#ifdef __OSTORE__ - -SCLP23(Entity_extent_ptr) -SCLP23(Entity_extent__set)::first() -{ - return _cursor.first(); -} - -SCLP23(Entity_extent_ptr) -SCLP23(Entity_extent__set)::next() -{ - return _cursor.next(); -} - -SCLP23(Integer) -SCLP23(Entity_extent__set)::more() -{ - return _cursor.more(); -} - -#endif - -/*****************************************************************************/ - - -#if 0 -Entity_extent__set::Entity_extent__set (int defaultSize) { - _bufsize = defaultSize; - _buf = new Entity_extent_ptr[_bufsize]; - _count = 0; -} - -Entity_extent__set::~Entity_extent__set () { delete _buf; } - -void Entity_extent__set::Check (int index) { - Entity_extent_ptr* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new Entity_extent_ptr[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(Entity_extent_ptr)); - delete _buf; - _buf = newbuf; - } -} - -void Entity_extent__set::Insert (Entity_extent_ptr v, int index) { - Entity_extent_ptr* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Entity_extent_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Entity_extent__set::Append (Entity_extent_ptr v) { - int index = _count; - Entity_extent_ptr* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(Entity_extent_ptr)); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -} - -void Entity_extent__set::Remove (int index) { - if (0 <= index && index < _count) { - --_count; - Entity_extent_ptr* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(Entity_extent_ptr)); - } -} - -int Entity_extent__set::Index (Entity_extent_ptr v) { - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} - -Entity_extent_ptr& Entity_extent__set::operator[] (int index) { - Check(index); -// _count = std::max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} - -int -Entity_extent__set::Count() -{ - return _count; -} - -void -Entity_extent__set::Clear() -{ - _count = 0; -} - -#endif diff --git a/source/geometry/solids/STEP/src/sdaiEnum.cc b/source/geometry/solids/STEP/src/sdaiEnum.cc deleted file mode 100644 index 620c9767aa..0000000000 --- a/source/geometry/solids/STEP/src/sdaiEnum.cc +++ /dev/null @@ -1,1136 +0,0 @@ - -//#include -//#include - -#include - -/* -* NIST STEP Core Class Library -* clstepcore/Enumeration.cc -* April 1997 -* K. C. Morris -* David Sauder - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiEnum.cc,v 1.2 2003/06/06 17:07:36 gcosmo Exp $ */ - -//static char rcsid[] ="$Id: sdaiEnum.cc,v 1.2 2003/06/06 17:07:36 gcosmo Exp $"; - -#include - -//#ifndef SCLP23(TRUE) -//#ifndef SCLP23(FALSE) -// Josh L, 3/31/95 -// These constants have to be initialized outside the SDAI struct. They -// are initialized here instead of in the header file in order to avoid -// multiple inclusions when building SCL applications. -/* -const SCLP23(BOOL) SCLP23(TRUE)( SCLBOOL(BTrue) ); -const SCLP23(BOOL) SCLP23(FALSE)( SCLBOOL(BFalse) ); -const SCLP23(BOOL) SCLP23(UNSET)( SCLBOOL(BUnset) ); -const SCLP23(LOGICAL) SCLP23(UNKNOWN)( SCLLOG(LUnknown) ); -*/ -//#endif -//#endif - - -/////////////////////////////////////////////////////////////////////////////// -// class Logical -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __OSTORE__ -SCLP23(LOGICAL) * create_LOGICAL(os_database *db) -{ - return new (db, SCLP23(LOGICAL)::get_os_typespec()) SCLP23(LOGICAL); -} -#endif - -SCLP23(LOGICAL)::SCLP23_NAME(LOGICAL) (char * val) -{ - set_value (val); -} - -SCLP23(LOGICAL)::SCLP23_NAME(LOGICAL) (SCLLOG(Logical) state) -{ - set_value (state); -} - -SCLP23(LOGICAL)::SCLP23_NAME(LOGICAL) (const SCLP23(LOGICAL)& source) -{ - set_value (source.asInt()); -} - -SCLP23(LOGICAL)::SCLP23_NAME(LOGICAL) (int i) -{ - if (i == 0) - v = SCLLOG(LFalse) ; - else - v = SCLLOG(LTrue) ; -} - -/* -SCLP23(LOGICAL)::SCLP23_NAME(LOGICAL) (const BOOL& boo) -{ - v = boo.asInt(); -} -*/ - -SCLP23(LOGICAL)::~SCLP23_NAME(LOGICAL) () -{ -} - -#ifdef __OSTORE__ -void -SCLP23(LOGICAL)::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - G4cout << "ObjectStore called LOGICAL::Access_hook_in()" - << G4endl; -} -#endif - -const char * -SCLP23(LOGICAL)::Name() const -{ - return "Logical"; -} - -int -SCLP23(LOGICAL)::no_elements () const -{ - return 3; -} - -const char * -SCLP23(LOGICAL)::element_at (int n) const -{ - switch (n) { - case SCLLOG(LUnknown) : return "U"; - case SCLLOG(LFalse) : return "F"; - case SCLLOG(LTrue) : return "T"; - default: return "UNSET"; - } -} - -int -SCLP23(LOGICAL)::exists() const // return 0 if unset otherwise return 1 -{ - return !(v == 2); -} - -void -SCLP23(LOGICAL)::nullify() // change the receiver to an unset status -{ - v = 2; -} - -#if 0 - -SCLP23(LOGICAL)::operator int () const { - // anything other than BFalse should return 1 according to Part 23 - if (v == SCLLOG(LFalse) ) return 0; - //#endif - else return 1; -/* - switch (v) { - case LFalse: return 0; - case LTrue: return 1; - - case LUnknown: - case LUnset: // BUnset or anything other than t or f should set error - // sdaiVA_NSET i.e. value unset - default: return 1; -} -*/ -} - -#endif - -SCLP23(LOGICAL)::operator SCLLOG(Logical) () const { - switch (v) { - case SCLLOG(LFalse) : return SCLLOG(LFalse) ; - case SCLLOG(LTrue) : return SCLLOG(LTrue) ; - case SCLLOG(LUnknown) : return SCLLOG(LUnknown) ; - case SCLLOG(LUnset) : - default: return SCLLOG(LUnset) ; -}} - - - -SCLP23(LOGICAL)& -SCLP23(LOGICAL)::operator= (const SCLP23(LOGICAL)& t) -{ - set_value (t.asInt()); - return *this; -} - -SCLP23(LOGICAL) SCLP23(LOGICAL)::operator ==( const SCLP23(LOGICAL)& t ) const -{ - if( v == t.asInt() ) - return SCLLOG(LTrue) ; - return SCLLOG(LFalse) ; -} - -int -SCLP23(LOGICAL)::set_value (const int i) { - if (i > no_elements() + 1) { - v = 2; - return v; - } - const char *tmp = element_at( i ); - if ( tmp[0] != '\0' ) return (v =i); - // otherwise - G4cerr << "(OLD Warning:) invalid enumeration value " << i - << " for " << Name () << "\n"; - DebugDisplay (); - return no_elements() + 1 ; -// return ENUM_NULL ; - -} - -int -SCLP23(LOGICAL)::set_value (const char * n) { - // assigns the appropriate value based on n -// if ( !n || (!strcmp (n, "")) ) return set_value (ENUM_NULL); - if ( !n || (!strcmp (n, "")) ) { nullify(); return asInt(); } - - int i =0; - SCLstring tmp; - while ((i < (no_elements() + 1)) && - (strcmp ( (char *)StrToUpper( n, tmp ), element_at (i)) != 0 ) ) - ++i; - if ( (no_elements() + 1) == i) // exhausted all the possible values - { - nullify(); - return v; -// return set_value (ENUM_NULL); - } - v = i; - return v; - -} - - -Severity -SCLP23(LOGICAL)::ReadEnum(std::istream& in, ErrorDescriptor *err, int AssignVal, - int needDelims) -{ - if(AssignVal) - set_null(); - - SCLstring str; - char c; - char messageBuf[512]; - messageBuf[0] = '\0'; - - int validDelimiters = 1; - - in >> std::ws; // skip white space - - if( in.good() ) - { - in.get(c); - if( c == '.' || isalpha(c)) - { - if( c == '.' ) - { - in.get(c); // push past the delimiter - // since found a valid delimiter it is now invalid until the - // matching ending delim is found - validDelimiters = 0; - } - - // look for UPPER - if( in.good() && ( isalpha(c) || c == '_' ) ) - { - str.Append(c); - in.get(c); - } - - // look for UPPER or DIGIT - while( in.good() && ( isalnum(c) || c == '_' ) ) - { - str.Append(c); - in.get(c); - } - // if character is not the delimiter unread it - if(in.good() && (c != '.') ) - in.putback(c); - - // a value was read - if(str.Length() > 0) - { - int i =0; - const char *strval = str.chars(); - SCLstring tmp; - while( (i < (no_elements()+1)) && - (strcmp( (char *)StrToUpper( strval, tmp ), - element_at (i) ) != 0) ) - ++i; - if ( (no_elements()+1) == i) - { // exhausted all the possible values - err->GreaterSeverity(SEVERITY_WARNING); - err->AppendToDetailMsg("Invalid Enumeration value.\n"); - err->AppendToUserMsg("Invalid Enumeration value.\n"); - } - else - { - if(AssignVal) - v = i; - } - - // now also check the delimiter situation - if(c == '.') // if found ending delimiter - { - // if expecting delim (i.e. validDelimiter == 0) - if(!validDelimiters) - { - validDelimiters = 1; // everything is fine - } - else // found ending delimiter but no initial delimiter - { - validDelimiters = 0; - } - } - // didn't find any delimiters at all and need them. - else if(needDelims) - { - validDelimiters = 0; - } - - if (!validDelimiters) - { - err->GreaterSeverity(SEVERITY_WARNING); - if(needDelims) - sprintf(messageBuf, - "Enumerated value has invalid period delimiters.\n"); - else - sprintf(messageBuf, - "Mismatched period delimiters for enumeration.\n"); - err->AppendToDetailMsg(messageBuf); - err->AppendToUserMsg(messageBuf); - } - return err->severity(); - } - // found valid or invalid delimiters with no associated value - else if( (c == '.') || !validDelimiters) - { - err->GreaterSeverity(SEVERITY_WARNING); - err->AppendToDetailMsg( - "Enumerated has valid or invalid period delimiters with no value.\n" - ); - err->AppendToUserMsg( - "Enumerated has valid or invalid period delimiters with no value.\n" - ); - return err->severity(); - } - else // no delims and no value - err->GreaterSeverity(SEVERITY_INCOMPLETE); - - } - else if( (c == ',') || (c == ')') ) - { - in.putback(c); - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - else - { - in.putback(c); - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, "Invalid enumeration value.\n"); - err->AppendToDetailMsg(messageBuf); - err->AppendToUserMsg(messageBuf); - } - } - else // hit eof (assuming there was no error state for std::istream passed in) - { - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return err->severity(); -} - -/////////////////////////////////////////////////////////////////////////////// -// class BOOL Jan 97 -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __OSTORE__ -SCLP23(BOOL) * -create_BOOL(os_database *db) -{ - return new (db, SCLP23(BOOL)::get_os_typespec()) SCLP23(BOOL); -} -#endif - -const char * -SCLP23(BOOL)::Name() const -{ - return "Bool"; -} - -SCLP23(BOOL)::SCLP23_NAME(BOOL) (char * val) -{ - set_value (val); -} - -SCLP23(BOOL)::SCLP23_NAME(BOOL) (SCLBOOL(Bool) state) -{ - set_value (state); -} - -SCLP23(BOOL)::SCLP23_NAME(BOOL) (const SCLP23_NAME(BOOL)& source) -{ - set_value (source.asInt()); -} - -SCLP23(BOOL)::~SCLP23_NAME(BOOL)() -{ -} - -int -SCLP23(BOOL)::no_elements () const -{ - return 2; -} - -SCLP23(BOOL)::SCLP23_NAME(BOOL) (int i) -{ - if (i == 0) - v = SCLBOOL(BFalse) ; - else - v = SCLBOOL(BTrue) ; -} - -SCLP23(BOOL)::SCLP23_NAME(BOOL) (const SCLP23(LOGICAL)& val) { - if (val.asInt() == SCLLOG(LUnknown)) - { // this should set error code sdaiVT_NVLD i.e. Invalid value type. - v = SCLBOOL(BUnset); return; - } - set_value (val); -} - -#ifdef __OSTORE__ -void -SCLP23(BOOL)::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - G4cout << "ObjectStore called BOOL::Access_hook_in()" - << G4endl; -} -#endif - -SCLP23(BOOL)::operator SCLBOOL(Bool) () const { - switch (v) { - case SCLBOOL(BFalse) : return SCLBOOL(BFalse) ; - case SCLBOOL(BTrue) : return SCLBOOL(BTrue) ; - case SCLBOOL(BUnset) : - default: return SCLBOOL(BUnset) ; -}} - -SCLP23(BOOL)& -SCLP23(BOOL)::operator= (const SCLP23(LOGICAL)& t) -{ - set_value (t.asInt()); - return *this; -} - -SCLP23(BOOL)& -SCLP23(BOOL)::operator= (const SCLBOOL(Bool) t) -{ - v = t; - return *this; -} - -#if 0 - -SCLP23(BOOL)::operator int () const { - // anything other than BFalse should return 1 according to Part 23 - switch (v) { - case SCLBOOL(BFalse) : return 0; - case SCLBOOL(BTrue) : return 1; - case SCLBOOL(BUnset) : // BUnset or anything other than t or f should set - // error sdaiVA_NSET i.e. value unset - default: return 1; -}} - -SCLP23(BOOL)::operator SCLLOG(Logical) () const { - switch (v) { - case SCLBOOL(BFalse) : return SCLLOG(LFalse) ; - case SCLBOOL(BTrue) : return SCLLOG(LTrue) ; - case SCLBOOL(BUnset) : return SCLLOG(LUnset) ; - default: return SCLLOG(LUnknown) ; -}} - -#endif - -const char * -SCLP23(BOOL)::element_at (int n) const { - switch (n) { - case SCLBOOL(BFalse) : return "F"; - case SCLBOOL(BTrue) : return "T"; - default: return "UNSET"; - } -} - -SCLP23(LOGICAL) SCLP23(BOOL)::operator ==( const SCLP23(LOGICAL)& t ) const -{ - if( v == t.asInt() ) - return SCLLOG(LTrue) ; - return SCLLOG(LFalse) ; -} - -/////////////////////////////////////////////////////////////////////////////// - -SCLP23(Enum)::SCLP23_NAME(Enum)() -{ - v = 0; -} - -SCLP23(Enum)::~SCLP23_NAME(Enum)() -{ -} - -#ifdef __OSTORE__ -void -SCLP23(Enum)::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - G4cout << "ObjectStore called Enum::Access_hook_in()" - << G4endl; -} -#endif - -int -SCLP23(Enum)::put(int val) -{ - return set_value (val); -} - -int -SCLP23(Enum)::put(const char * n) -{ - return set_value (n); -} - -int -SCLP23(Enum)::exists() const // return 0 if unset otherwise return 1 -{ - return ! (v > no_elements()); -} - -void -SCLP23(Enum)::nullify() // change the receiver to an unset status - // unset is generated to be 1 greater than last element -{ - set_value (no_elements()+1); -} - -/****************************************************************** - ** Procedure: DebugDisplay - ** Parameters: std::ostream& out - ** Returns: - ** Description: prints out some information on the enumerated - ** item for debugging purposes - ** Side Effects: - ** Status: ok 2/1/91 - ******************************************************************/ -void -SCLP23(Enum)::DebugDisplay (std::ostream& out) const -{ - SCLstring tmp; - out << "Current " << Name() << " value: " << G4endl - << " cardinal: " << v << G4endl - << " string: " << asStr(tmp) << G4endl - << " Part 21 file format: "; - STEPwrite (out); - out << G4endl; - - out << "Valid values are: " << G4endl; - int i =0; - while (i < (no_elements() + 1)) - { - out << i << " " << element_at (i) << G4endl; - i++; - } - out << "\n"; -} - -// Read an Enumeration value -// ENUMERATION = "." UPPER { UPPER | DIGIT } "." -// *note* UPPER is defined as alpha or underscore. -// returns: Severity of the error. -// error message and error Severity is written to ErrorDescriptor *err. -// int AssignVal is: -// true => value is assigned to the SCLP23(Enum); -// true or false => value is read and appropriate error info is set and -// returned. -// int needDelims is: -// false => absence of the period delimiters is not an error; -// true => delimiters must be valid; -// true or false => non-matching delimiters are flagged as an error - -Severity -SCLP23(Enum)::ReadEnum(std::istream& in, ErrorDescriptor *err, int AssignVal, - int needDelims) -{ - if(AssignVal) - set_null(); - - SCLstring str; - char c; - char messageBuf[512]; - messageBuf[0] = '\0'; - - int validDelimiters = 1; - - in >> std::ws; // skip white space - - if( in.good() ) - { - in.get(c); - if( c == '.' || isalpha(c)) - { - if( c == '.' ) - { - in.get(c); // push past the delimiter - // since found a valid delimiter it is now invalid until the - // matching ending delim is found - validDelimiters = 0; - } - - // look for UPPER - if( in.good() && ( isalpha(c) || c == '_' ) ) - { - str.Append(c); - in.get(c); - } - - // look for UPPER or DIGIT - while( in.good() && ( isalnum(c) || c == '_' ) ) - { - str.Append(c); - in.get(c); - } - // if character is not the delimiter unread it - if(in.good() && (c != '.') ) - in.putback(c); - - // a value was read - if(str.Length() > 0) - { - int i =0; - const char *strval = str.chars(); - SCLstring tmp; - while( (i < no_elements ()) && - (strcmp( (char *)StrToUpper( strval, tmp ), - element_at (i) ) != 0) ) - ++i; - if ( no_elements () == i) - { // exhausted all the possible values - err->GreaterSeverity(SEVERITY_WARNING); - err->AppendToDetailMsg("Invalid Enumeration value.\n"); - err->AppendToUserMsg("Invalid Enumeration value.\n"); - } - else - { - if(AssignVal) - v = i; - } - - // now also check the delimiter situation - if(c == '.') // if found ending delimiter - { - // if expecting delim (i.e. validDelimiter == 0) - if(!validDelimiters) - { - validDelimiters = 1; // everything is fine - } - else // found ending delimiter but no initial delimiter - { - validDelimiters = 0; - } - } - // didn't find any delimiters at all and need them. - else if(needDelims) - { - validDelimiters = 0; - } - - if (!validDelimiters) - { - err->GreaterSeverity(SEVERITY_WARNING); - if(needDelims) - sprintf(messageBuf, - "Enumerated value has invalid period delimiters.\n"); - else - sprintf(messageBuf, - "Mismatched period delimiters for enumeration.\n"); - err->AppendToDetailMsg(messageBuf); - err->AppendToUserMsg(messageBuf); - } - return err->severity(); - } - // found valid or invalid delimiters with no associated value - else if( (c == '.') || !validDelimiters) - { - err->GreaterSeverity(SEVERITY_WARNING); - err->AppendToDetailMsg( - "Enumerated has valid or invalid period delimiters with no value.\n" - ); - err->AppendToUserMsg( - "Enumerated has valid or invalid period delimiters with no value.\n" - ); - return err->severity(); - } - else // no delims and no value - err->GreaterSeverity(SEVERITY_INCOMPLETE); - - } - else if( (c == ',') || (c == ')') ) - { - in.putback(c); - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - else - { - in.putback(c); - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, "Invalid enumeration value.\n"); - err->AppendToDetailMsg(messageBuf); - err->AppendToUserMsg(messageBuf); - } - } - else // hit eof (assuming there was no error state for std::istream passed in) - { - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return err->severity(); -} - -/* -Severity -SCLP23(Enum)::StrToVal (const char * s) -{ - put (s); - return SEVERITY_NULL; -} -*/ - -Severity -SCLP23(Enum)::StrToVal (const char * s, ErrorDescriptor *err, int optional) -{ - std::istrstream in ((char *)s); // sz defaults to length of s - - Severity sev = ReadEnum(in, err, 1, 0); - if( (err->severity() == SEVERITY_INCOMPLETE) && optional) - err->severity(SEVERITY_NULL); - - return err->severity(); -} - -// reads an enumerated value in STEP file format -Severity -SCLP23(Enum)::STEPread (const char *s, ErrorDescriptor *err, int optional) -{ - std::istrstream in((char *)s); - return STEPread (in, err, optional); -} - -// reads an enumerated value in STEP file format -Severity -SCLP23(Enum)::STEPread (std::istream& in, ErrorDescriptor *err, int optional) -{ - Severity sev = ReadEnum(in, err, 1, 1); - if( (err->severity() == SEVERITY_INCOMPLETE) && optional) - err->severity(SEVERITY_NULL); - - return err->severity(); -} - - -const char * -SCLP23(Enum)::asStr (SCLstring &s) const { -// if (v != ENUM_NULL) - if (exists()) - { -// s = elements[v]; - return s = element_at (v); -// return s.chars(); - } - else return ""; -} - -void -SCLP23(Enum)::STEPwrite (std::ostream& out) const { - if( is_null() ) - out << '$'; - else - { - SCLstring tmp; - out << "." << asStr (tmp) << "."; - } -} - -const char * -SCLP23(Enum)::STEPwrite (SCLstring &s) const -{ - if( is_null() ) - { - s.set_null(); - } - else - { - SCLstring tmp; - s = "."; - s.Append(asStr(tmp)); - s.Append('.'); - } - return s.chars(); -} - -//SCLP23(Enum)::SCLP23_NAME(Enum) (const char * const e) -//: elements (e) -//{ -//} - -/****************************************************************** - ** Procedure: set_elements - ** Parameters: - ** Returns: - ** Description: - ** Side Effects: - ** Status: - ******************************************************************/ -#ifdef OBSOLETE -void -SCLP23(Enum)::set_elements (const char * const e []) { - elements = e; -} -#endif -Severity -SCLP23(Enum)::EnumValidLevel(std::istream &in, ErrorDescriptor *err, - int optional, char *tokenList, - int needDelims, int clearError) -{ - if(clearError) - err->ClearErrorMsg(); - - in >> std::ws; // skip white space - char c = ' '; - c = in.peek(); - if(c == '$' || in.eof()) - { - if(!optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - if(in) - in >> c; - CheckRemainingInput(in, err, "enumeration", tokenList); - return err->severity(); - } - else - { - ErrorDescriptor error; - - ReadEnum(in, &error, 0, needDelims); - CheckRemainingInput(in, &error, "enumeration", tokenList); - - Severity sev = error.severity(); - if(sev < SEVERITY_INCOMPLETE) - { - err->AppendToDetailMsg(error.DetailMsg()); - err->AppendToUserMsg(error.UserMsg()); - err->GreaterSeverity(error.severity()); - } - else if(sev == SEVERITY_INCOMPLETE && !optional) - err->GreaterSeverity(SEVERITY_INCOMPLETE); - } - return err->severity(); -} - -Severity -SCLP23(Enum)::EnumValidLevel(const char *value, ErrorDescriptor *err, - int optional, char *tokenList, - int needDelims, int clearError) -{ - std::istrstream in((char *)value); - return EnumValidLevel (in, err, optional, tokenList, needDelims, - clearError); -/* - - char messageBuf[BUFSIZ]; - messageBuf[0] = '\0'; - - if(attrValue) - { - int len = strlen (attrValue); - char *valstart = new char [len + 1]; - char *val = valstart; - - int numFound = sscanf(attrValue," %s", val); - if(numFound != EOF) - { - int i = 0; - if(val [0] == '.') // strip the delims - { - - val++; - char * pos = strchr(val, '.'); - if (pos) - *pos = '\0'; - else - { - err->AppendToDetailMsg( - "Missing ending period delimiter for enumerated value.\n"); - err->AppendToUserMsg( - "Missing ending period delimiter for enumerated value.\n"); - err->GreaterSeverity(SEVERITY_WARNING); - } - } - - SCLstring tmp; - while((i < no_elements() ) && - (strcmp( (char *)StrToUpper(val, tmp), element_at (i) ) != 0)) - ++i; - if(no_elements() == i) // exhausted all the possible values - { - err->GreaterSeverity(SEVERITY_WARNING); - sprintf(messageBuf, - "attribute %s: Invalid enumeration value: '%s'", - Name(), val); - err->AppendToUserMsg(messageBuf); - err->AppendToDetailMsg(messageBuf); -// DebugDisplay (); - return SEVERITY_WARNING; - } - err->GreaterSeverity(SEVERITY_NULL); - return SEVERITY_NULL; - } - delete [] valstart; - } - if(optional) - { - err->GreaterSeverity(SEVERITY_NULL); - return SEVERITY_NULL; - } - else - { - err->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } -*/ -} - -/****************************************************************** - ** Procedure: set_value - ** Parameters: char * n OR in i -- value to be set - ** Returns: value set - ** Description: sets the value of an enumerated attribute - ** case is not important in the character based version - ** if value is not acceptable, a warning is printed and - ** processing continues - ** Side Effects: - ** Status: ok 2.91 - ******************************************************************/ -int -SCLP23(Enum)::set_value (const char * n) { - // assigns the appropriate value based on n -// if ( !n || (!strcmp (n, "")) ) return set_value (ENUM_NULL); - if ( !n || (!strcmp (n, "")) ) { nullify(); return asInt(); } - - int i =0; - SCLstring tmp; - while ((i < no_elements ()) && - (strcmp ( (char *)StrToUpper( n, tmp ), element_at (i)) != 0 ) ) - ++i; - if ( no_elements () == i) { // exhausted all the possible values - return v = no_elements() + 1; // defined as UNSET -// return set_value (ENUM_NULL); - } - v = i; - return v; - -} - -// set_value is the same function as put -int -SCLP23(Enum)::set_value (const int i) { -/* - if (i == ENUM_NULL) { - v = ENUM_NULL; - return ENUM_NULL; - } -*/ - if (i > no_elements()) { - v = no_elements() + 1; - return v; - } - const char *tmp = element_at( i ); - if ( tmp[0] != '\0' ) return (v =i); - // otherwise - G4cerr << "(OLD Warning:) invalid enumeration value " << i - << " for " << Name () << "\n"; - DebugDisplay (); - return no_elements() + 1 ; -// return ENUM_NULL ; - -} - -SCLP23(Enum)& -SCLP23(Enum)::operator= (const int i) -{ - put (i); - return *this; -} - -SCLP23(Enum)& -SCLP23(Enum)::operator= (const SCLP23(Enum)& Senum) -{ - put (Senum.asInt()); - return *this; -} - -std::ostream &operator<< ( std::ostream& out, const SCLP23(Enum)& a ) -{ - SCLstring tmp; - out << a.asStr( tmp ); - return out; - -} - - -#ifdef pojoldStrToValNstepRead - -Severity -SCLP23(Enum)::StrToVal (const char * s, ErrorDescriptor *err, int optional) -{ - const char *sPtr = s; - while(isspace(*sPtr)) sPtr++; - if(*sPtr == '\0') - { - if(optional) - { - err->GreaterSeverity(SEVERITY_NULL); - return SEVERITY_NULL; - } - else - { - err->GreaterSeverity(SEVERITY_INCOMPLETE); - return SEVERITY_INCOMPLETE; - } - } - else if(*sPtr == '.') // look for initial period delimiter - { - return STEPread(sPtr, err); - } - else - { - // look for ending period delimiter (an error) - char *periodLoc = strchr(sPtr, '.'); - if (periodLoc) - { // found an ending period w/out initial period - char *tmp = new char[strlen(sPtr) + 1]; - strcpy(tmp, sPtr); - tmp[periodLoc - sPtr] = '\0'; // write over ending period - err->GreaterSeverity(SEVERITY_WARNING); - err->AppendToDetailMsg( - "Ending period delimiter without initial period delimiter.\n"); - err->AppendToUserMsg( - "Ending period delimiter without initial period delimiter.\n"); - delete [] tmp; - if( ValidLevel(sPtr, err, optional) ) - { // remaining value is valid so assign it - put(tmp); - return SEVERITY_WARNING; - } - else - { - err->AppendToDetailMsg("Invalid Enumerated value.\n"); - err->AppendToUserMsg("Invalid Enumerated value.\n"); - return SEVERITY_WARNING; - } - } - // no surrounding delimiters - else if( ValidLevel(sPtr, err, optional) ) - { // value is valid so assign it - put (sPtr); - return SEVERITY_NULL; - } - else - { - err->AppendToDetailMsg("Invalid Enumerated value.\n"); - err->AppendToUserMsg("Invalid Enumerated value.\n"); - return SEVERITY_WARNING; - } - } -} - - -Severity -SCLP23(Enum)::STEPread (std::istream& in, ErrorDescriptor *err, int optional) -{ - char enumValue [BUFSIZ]; - char c; - char errStr[BUFSIZ]; - errStr[0] = '\0'; - - err->severity(SEVERITY_NULL); // assume ok until error happens - in >> c; - switch (c) - { - case '.': - in.getline (enumValue, BUFSIZ, '.');// reads but does not store the . -/* - // gcc 2.3.3 - It does and should read the . It doesn't store it DAS 4/27/93 - char * pos = index(enumValue, '.'); - if (pos) *pos = '\0'; - // NON-STANDARD (GNUism) getline should not retrieve . - // function gcount is unavailable -*/ - if(in.fail()) - { - err->GreaterSeverity(SEVERITY_WARNING); - err->AppendToUserMsg( - "Missing ending period delimiter for enumerated value.\n"); - err->AppendToDetailMsg( - "Missing ending period delimiter for enumerated value.\n"); - } - if(ValidLevel(enumValue, err, optional) == SEVERITY_NULL) - set_value (enumValue); - else - { - err->AppendToDetailMsg("Invalid enumerated value.\n"); - err->GreaterSeverity(SEVERITY_WARNING); - set_value(ENUM_NULL); - } - break; - - case ',': // for next attribute or next aggregate value? - case ')': // for end of aggregate value? - default: - in.putback (c); - set_value (ENUM_NULL); - if(optional) err->GreaterSeverity(SEVERITY_NULL); - else err->GreaterSeverity(SEVERITY_INCOMPLETE); - break; - -/* - default: - set_value (ENUM_NULL); - // read didn't know what to do - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - sprintf(errStr, - "SCLP23(Enum)::STEPread(): warning : poorly delimited %s %s", - Name(), "enumerated value was ignored."); - err->AppendToDetailMsg(errStr); -*/ - } - return err->severity(); -} - -#endif - diff --git a/source/geometry/solids/STEP/src/sdaiModel_contents.cc b/source/geometry/solids/STEP/src/sdaiModel_contents.cc deleted file mode 100644 index 1194704aa6..0000000000 --- a/source/geometry/solids/STEP/src/sdaiModel_contents.cc +++ /dev/null @@ -1,161 +0,0 @@ - -#include - -///////// SCLP23(Model_contents_instances) - -SCLP23(Model_contents_instances)::SCLP23_NAME(Model_contents_instances)( ) -{ -} - -/* -SCLP23(Model_contents_instances)::SCLP23_NAME(Model_contents_instances) (const SCLP23(Model_contents_instances)& e ) -{ -} -*/ - -SCLP23(Model_contents_instances)::~SCLP23_NAME(Model_contents_instances)() -{ -} - -///////// SCLP23(Model_contents) - -SCLP23(Model_contents)::SCLP23_NAME(Model_contents)( ) -{ -} - -/* -SCLP23(Model_contents)::SCLP23_NAME(Model_contents) (const SCLP23(Model_contents)& e ) -{ -// CopyAs((STEPentityH) &e); -} -*/ - -SCLP23(Model_contents)::~SCLP23_NAME(Model_contents)() -{ -} - -// const Entity_instance__set_var instances() const; - //const SDAIAGGRH(Set, EntityInstanceH) Instances() const; -SCLP23(Model_contents_instances_ptr) -SCLP23(Model_contents)::instances_() -{ - return &_instances; -} - -const SCLP23(Model_contents_instances_ptr) -SCLP23(Model_contents)::instances_() const -{ - // removed 'const' qualifier from return type since meaningless - GC - return (SCLP23(Model_contents_instances_ptr)) &_instances; -} - -SCLP23(Entity_extent__set_var) -SCLP23(Model_contents)::folders_() -{ - return &_folders; -} - -const SCLP23(Entity_extent__set_var) -SCLP23(Model_contents)::folders_() const -{ - // removed 'const' qualifier from return type since meaningless - GC - return (SCLP23(Entity_extent__set_var))&_folders; -} - -SCLP23(Entity_extent__set_var) -SCLP23(Model_contents)::populated_folders_() -{ - return &_populated_folders; -} - -const SCLP23(Entity_extent__set_var) -SCLP23(Model_contents)::populated_folders_() const -{ - // removed 'const' qualifier from return type since meaningless - GC - return (SCLP23(Entity_extent__set_var))&_populated_folders; -} - -SCLP23(PID_DA_ptr) -SCLP23(Model_contents)::get_object_pid(const SCLP23(DAObject_ptr &d)) - const -{ - return 0; -} - -SCLP23(DAObject_ptr) -SCLP23(Model_contents)::lookup(const SCLP23(PID_DA_ptr &p)) const -{ - return 0; -} - -SCLP23(DAObject_ptr) -SCLP23(Model_contents)::CreateEntityInstance(const char * Type) -{ - return 0; -} - -void -SCLP23(Model_contents)::AddInstance(const SCLP23(DAObject_SDAI_ptr)& appInst) -{ - _instances.contents_()->Append(appInst); -} - -#ifndef __OSTORE__ -void -SCLP23(Model_contents)::RemoveInstance(SCLP23(DAObject_SDAI_ptr)& appInst) -{ - _instances.contents_()->Remove(_instances.contents_()->Index(appInst)); -} -#endif - - -#ifdef SDAI_CPP_LATE_BINDING -#if 0 // for now - -Any_var -SCLP23(Model_contents)::GetEntity_extent(const String_var& entityName) -{ -} - -const Any_var -SCLP23(Model_contents)::GetEntity_extent(const String_var& entityName) const -{ -} - -Any_var -SCLP23(Model_contents)::GetEntity_extent(const Entity_ptr& ep) -{ -} - -const Any_var -SCLP23(Model_contents)::GetEntity_extent(const Entity_ptr& ep) const -{ -} - -#endif - /* Function: - The GetEntity_extent function shall retrieve an entity folder from - the folders attribute within the contents attribute of the receiver. - This folder shall contain all of the instances of a particular type - and its subtypes within the model. The type may be specified - indirectly by the entityName parameter or directly by the entity. - Subsequent access to the returned aggregate shall be restricted to - read-only functionality. - - Output: - This function shall return an aggregate handle used as an argument - for subsequent SDAI function calls. Otherwise, this function shall - return a null handle. - - Possible error indicators: - sdaiSS_NOPN // Session not open - sdaiRP_NOPN // Repository not open - sdaiMO_NEXS // SDAI-model does not exist - sdaiED_NDEF // Entity definition unknown in this model - sdaiSY_ERR // Underlying system error - - Origin: Convenience function - */ - -#endif -//////// END SCLP23(Model_contents) diff --git a/source/geometry/solids/STEP/src/sdaiModel_contents_list.cc b/source/geometry/solids/STEP/src/sdaiModel_contents_list.cc deleted file mode 100644 index 48d21ca1b8..0000000000 --- a/source/geometry/solids/STEP/src/sdaiModel_contents_list.cc +++ /dev/null @@ -1,225 +0,0 @@ -/* - * Copyright (c) 1990, 1991 Stanford University - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided - * that the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Stanford not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. Stanford makes no representations about - * the suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * STANFORD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. - * IN NO EVENT SHALL STANFORD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION - * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -/* - * UArray implementation. - */ - -//#include "/proj/pdevel/autoc/arch.sunCC.iv/scl_cf.h" -// This is an scl configuration file generated by the configure script -// generated using gnu's autoconf -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -// to help ObjectCenter -#ifndef HAVE_MEMMOVE -extern "C" -{ -void * memmove(void *__s1, const void *__s2, size_t __n); -} -#endif - -/*****************************************************************************/ - -SCLP23(Model_contents__list)::SCLP23_NAME(Model_contents__list) (int defaultSize) -#ifdef __OSTORE__ - : _rep(os_List::create(os_database::of(this)) ), - _cursor(_rep), - _first(SCLBOOL(BTrue)) -{ -// _rep = os_List::create(os_database::of(this)); -#else -{ - _bufsize = defaultSize; - _buf = new SCLP23(Model_contents_ptr)[_bufsize]; - _count = 0; -#endif - -} - -SCLP23(Model_contents__list)::~SCLP23_NAME(Model_contents__list) () -{ -#ifndef __OSTORE__ - delete _buf; -#endif -} - -void SCLP23(Model_contents__list)::Check (int index) { - -#ifdef __OSTORE__ -#else - SCLP23(Model_contents_ptr)* newbuf; - - if (index >= _bufsize) { - _bufsize = (index+1) * 2; - newbuf = new SCLP23(Model_contents_ptr)[_bufsize]; - memmove(newbuf, _buf, _count*sizeof(SCLP23(Model_contents_ptr))); - delete _buf; - _buf = newbuf; - } -#endif -} - -void -SCLP23(Model_contents__list)::Insert (SCLP23(Model_contents_ptr) v, int index) { - -#ifdef __OSTORE__ - _rep.insert_before( (SCLP23(Model_contents_ptr)) v, index); -#else - SCLP23(Model_contents_ptr)* spot; - index = (index < 0) ? _count : index; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(SCLP23(Model_contents_ptr))); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -#endif -} - -void SCLP23(Model_contents__list)::Append (SCLP23(Model_contents_ptr) v) { - -#ifdef __OSTORE__ - _rep.insert_last( (SCLP23(Model_contents_ptr)) v); -#else - int index = _count; - SCLP23(Model_contents_ptr)* spot; - - if (index < _count) { - Check(_count+1); - spot = &_buf[index]; - memmove(spot+1, spot, (_count - index)*sizeof(SCLP23(Model_contents_ptr))); - - } else { - Check(index); - spot = &_buf[index]; - } - *spot = v; - ++_count; -#endif -} - -void SCLP23(Model_contents__list)::Remove (int index) { - -#ifdef __OSTORE__ - _rep.remove_at( index ); -#else - if (0 <= index && index < _count) { - --_count; - SCLP23(Model_contents_ptr)* spot = &_buf[index]; - memmove(spot, spot+1, (_count - index)*sizeof(SCLP23(Model_contents_ptr))); - } -#endif -} - -#ifndef __OSTORE__ -int SCLP23(Model_contents__list)::Index (SCLP23(Model_contents_ptr) v) { - - for (int i = 0; i < _count; ++i) { - if (_buf[i] == v) { - return i; - } - } - return -1; -} -#endif - -SCLP23(Model_contents_ptr) -SCLP23(Model_contents__list)::retrieve(int index) -{ -#ifdef __OSTORE__ - return _rep.retrieve(index); -#else - return operator[](index); -#endif -} - -#ifndef __OSTORE__ -SCLP23(Model_contents_ptr)& -SCLP23(Model_contents__list)::operator[] (int index) -{ - - Check(index); -// _count = max(_count, index+1); - _count = ( (_count > index+1) ? _count : (index+1) ); - return _buf[index]; -} -#endif - -int -SCLP23(Model_contents__list)::Count() -{ -#ifdef __OSTORE__ - return _rep.cardinality(); -#else - return _count; -#endif -} - -int -SCLP23(Model_contents__list)::is_empty() -{ -#ifdef __OSTORE__ - return _rep.empty(); -#else - return _count; -#endif -} - -#ifndef __OSTORE__ -void -SCLP23(Model_contents__list)::Clear() -{ - _count = 0; -} -#endif - -#ifdef __OSTORE__ - -SCLP23(Model_contents_ptr) -SCLP23(Model_contents__list)::first() -{ - return _cursor.first(); -} - -SCLP23(Model_contents_ptr) -SCLP23(Model_contents__list)::next() -{ - return _cursor.next(); -} - -SCLP23(Integer) -SCLP23(Model_contents__list)::more() -{ - return _cursor.more(); -} - -#endif diff --git a/source/geometry/solids/STEP/src/sdaiObject.cc b/source/geometry/solids/STEP/src/sdaiObject.cc deleted file mode 100644 index ba47761d65..0000000000 --- a/source/geometry/solids/STEP/src/sdaiObject.cc +++ /dev/null @@ -1,33 +0,0 @@ -#include - -SCLP23(sdaiObject)::SCLP23_NAME(sdaiObject)() -{ -} - -SCLP23(sdaiObject)::~SCLP23_NAME(sdaiObject)() -{ -} - -#ifdef PART26 -//SCLP26(Application_instance_ptr) -IDL_Application_instance_ptr -SCLP23(sdaiObject)::create_TIE() -{ - G4cout << "ERROR sdaiObject::create_TIE() called." << G4endl; - return 0; -} -#endif - -#ifdef __OSTORE__ -void -SCLP23(sdaiObject)::Access_hook_in(void *object, - enum os_access_reason reason, void *user_data, - void *start_range, void *end_range) -{ - G4cout << "****WARNING: virtual sdaiObject::Access_hook_in() called" << G4endl; - SCLP23(sdaiObject_ptr) ent = (SCLP23(sdaiObject_ptr))object; -/* - ent->Access_hook_in(object, reason, user_data, start_range, end_range); -*/ -} -#endif diff --git a/source/geometry/solids/STEP/src/sdaiSelect.cc b/source/geometry/solids/STEP/src/sdaiSelect.cc deleted file mode 100644 index 429aa0004f..0000000000 --- a/source/geometry/solids/STEP/src/sdaiSelect.cc +++ /dev/null @@ -1,722 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/sdaiSelect.cc -* April 1997 -* Dave Helfrick -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiSelect.cc,v 1.2 2003/06/06 17:07:36 gcosmo Exp $ */ - -#include // to get the BUFSIZ #define -#include -#include -//#include -#include -#include -#include - -#ifdef SCL_LOGGING -#include - extern std::ofstream *logStream; -#endif - -/********** - (member) functions for the select class SCLP23(Select) -**********/ -SCLP23(Select)::SCLP23_NAME(Select) (const SelectTypeDescriptor *s, - const TypeDescriptor *td) - : _type (s), underlying_type (td) -{ -#ifdef __OSTORE__ - if(td) - underlying_type_name = td->Name(); - else - underlying_type_name.set_null(); -#endif -#ifdef SCL_LOGGING - *logStream << "Exiting SCLP23(Select) constructor." << G4endl; -#endif -} - -SCLP23(Select)::~SCLP23_NAME(Select) () -{ -} - -Severity SCLP23(Select)::severity() const -{ /** fn Severity **/ - return _error.severity(); -} /** end function **/ - -Severity SCLP23(Select)::severity( Severity s ) -{ /** fn Severity **/ - return _error.severity( s ); -} /** end function **/ - -const char * SCLP23(Select)::Error() -{ /** fn Error **/ - return _error.DetailMsg(); -} /** end function **/ - -void SCLP23(Select)::Error( char * e ) -{ /** fn Error **/ - _error.DetailMsg( e ); -} /** end function **/ - -void SCLP23(Select)::ClearError() -{ /** end function **/ - _error.ClearErrorMsg(); -} /** end function **/ - -const TypeDescriptor * -SCLP23(Select)::CanBe (const char * n) const -{ - return _type -> CanBe (n); -/* - const TypeDescLinkNode * tdn = - (const TypeDescLinkNode *) _type -> GetElements ().GetHead (); - const TypeDescriptor *td = tdn -> TypeDesc (); - - SCLstring tmp1; - SCLstring tmp2; - - while (tdn) { - td = tdn -> TypeDesc (); - if (strcmp( (char *)StrToUpper( n, tmp1 ), - (char *)StrToUpper( td->Name(), tmp2 ) )) - ; - else - return td; // they are the same - tdn = (TypeDescLinkNode *) (tdn -> NextNode ()); - } - return 0; -*/ -} - - -const TypeDescriptor * -SCLP23(Select)::CanBe (BASE_TYPE bt) const -{ - const TypeDescLinkNode * tdn = - (const TypeDescLinkNode *) _type -> GetElements ().GetHead (); - const TypeDescriptor *td = tdn -> TypeDesc (); - BASE_TYPE bt_thisnode; - - while (tdn) { - td = tdn -> TypeDesc (); - if (((bt_thisnode = td -> NonRefType ()) == bt) || - (bt == AGGREGATE_TYPE && ((bt_thisnode == ARRAY_TYPE) || - (bt_thisnode == LIST_TYPE) || - (bt_thisnode == SET_TYPE) || - (bt_thisnode == BAG_TYPE)))) - return td; // they are the same - tdn = (TypeDescLinkNode *) (tdn -> NextNode ()); - } - return 0; -} - -const TypeDescriptor * -SCLP23(Select)::CanBe (const TypeDescriptor * td) const -{ - return _type -> CanBe (td); -} - -const TypeDescriptor * -SCLP23(Select)::CanBeSet (const char * n, const char *schnm) const -{ - return _type -> CanBeSet (n, schnm); -} - -const int -SCLP23(Select)::IsUnique (const BASE_TYPE bt) const -{ - if (bt == ARRAY_TYPE || - bt == LIST_TYPE || - bt == BAG_TYPE || - bt == SET_TYPE) - return ((_type->UniqueElements()) & AGGREGATE_TYPE); - else - return ((_type->UniqueElements()) & bt); -} - - -SCLP23(String) SCLP23(Select)::UnderlyingTypeName () const -{ -#ifdef __OSTORE__ - return underlying_type_name.chars(); -#else - return underlying_type -> Name (); -#endif -} - -const TypeDescriptor * SCLP23(Select)::CurrentUnderlyingType() const -{ - return underlying_type; -} - -const TypeDescriptor * -SCLP23(Select)::SetUnderlyingType (const TypeDescriptor * td) -{ - // don\'t do anything if the descriptor is bad - if (!td || !(_type -> CanBe (td))) return 0; - - base_type = td -> NonRefType (); -#ifdef __OSTORE__ - underlying_type_name = td->Name(); -#endif - - return underlying_type = td; -} - -int SCLP23(Select)::exists() const -{ - // changed cast from 'int' to 'long' - GC - return (long) underlying_type; -} - -void SCLP23(Select)::nullify() -{ - underlying_type = 0; -#ifdef __OSTORE__ - underlying_type_name.set_null(); -#endif -} - -Severity -SCLP23(Select)::SelectValidLevel(const char *attrValue, ErrorDescriptor *err, - InstMgr *im, int clearError) -{ - SCLP23(Select) * tmp = NewSelect(); - Severity s = SEVERITY_NULL; - -// COMMENTED OUT TO ALLOW FOR TYPE RESOLUTION WHEN TYPE CHANGES -// if (CurrentUnderlyingType ()) -// s = tmp -> StrToVal -// (attrValue, CurrentUnderlyingType () -> Name (), err, im); -// else - - std::istrstream strtmp (attrValue); - s = tmp -> STEPread (strtmp, err, im); - delete tmp; - return s; -} - -Severity -SCLP23(Select)::StrToVal(const char *Val, const char *selectType, - ErrorDescriptor *err, InstMgr * instances) -{ - severity(SEVERITY_NULL); - if (SetUnderlyingType (CanBe (selectType))) - - // the underlying type is set to a valid type - // call read on underlying type in subclass - - switch (base_type) { - case ENTITY_TYPE: - { - STEPentity * tmp = - ReadEntityRef (Val, err, (char*)(",)"), instances, 0); - if ( tmp && ( tmp != ENTITY_NULL )) - { - AssignEntity(tmp); - return severity(); - } - else - { - err->AppendToDetailMsg( - "Reference to entity that is not a valid type for SELECT.\n" ); - nullify (); - err->GreaterSeverity( SEVERITY_WARNING ); - return SEVERITY_WARNING; - } - } - - // call StrToVal on the contents - case STRING_TYPE: - case AGGREGATE_TYPE: - case ARRAY_TYPE: // DAS - case BAG_TYPE: // DAS - case SET_TYPE: // DAS - case LIST_TYPE: // DAS - case ENUM_TYPE: - case SELECT_TYPE: - case BOOLEAN_TYPE: - case LOGICAL_TYPE: - { - err->GreaterSeverity( StrToVal_content (Val, instances) ); - if(_error.severity() != SEVERITY_NULL) - err->AppendFromErrorArg(&_error); - return err->severity(); - } - - // do the same as STEPread_content - case BINARY_TYPE: - case NUMBER_TYPE: - case REAL_TYPE: - case INTEGER_TYPE: - default: - { - std::istrstream strtmp (Val); - err->GreaterSeverity( STEPread_content (strtmp) ); - if(_error.severity() != SEVERITY_NULL) - err->AppendFromErrorArg(&_error); - return err->severity(); - } - } - return SEVERITY_INPUT_ERROR; -} - -// updated to Technical Corrigendum. DAS 2/4/97 -Severity -SCLP23(Select)::STEPread (std::istream& in, ErrorDescriptor *err, - InstMgr *instances, const char* utype, - int addFileId, const char *currSch) -{ - char c ='\0'; - SCLstring tmp; - -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Entering SCLP23(Select)::STEPread." << G4endl; -#endif - // find out what case we have - // NOTE case C falls out of recursive calls in cases A and B - - // This section of code is used to read a value belonging to a select - // contained in another select. If you have read the text part of the - // TYPED_PARAMETER and it needs to fall down thru some levels of contained - // select types, then the text is passed down to each select in the utype - // parameter as STEPread is called on each contained select type.DAS 2/4/97 - if(utype) - { - if( SetUnderlyingType( CanBeSet( utype, currSch ) ) ) - { // assign the value to the underlying type - in >> std::ws; // skip white space - if( (underlying_type->Type() == REFERENCE_TYPE) && - (underlying_type->NonRefType() == sdaiSELECT) ) - { // See comments below for a similar code segment. - STEPread_content (in, instances, 0, addFileId, currSch); - } - else - STEPread_content (in, instances, utype, addFileId, currSch); - err->AppendToDetailMsg (Error ()); - err->GreaterSeverity( severity () ); - } - return err->severity(); - } - in >> std::ws; - in >> c; -// c = in.peek(); - - // the if part of this code reads a value according to the Technical - // Corrigendum for Part 21 (except for Entity instance refs which are read - // in the else part - everything else in the else stmt is invalid). The - // idea here is to read text and find out if it is specifying the final - // type or is a simple defined type which is typed to be a select some - // number of levels down. The first case will cause the value to be read - // directly by STEPread_content() or will cause STEPread_content() to pass - // the text naming the type to the underlying Select containing it. When - // the latter is the case, STEPread_content calls STEPread for the - // contained select and passes in the text. The convoluted case is when - // the text describes a simple defined type that translates directly into - // a select some number of levels down. In this case there will be more - // text inside the containing parens to indicate the type. Since the text - // specifying the type still needs to be read utype is passed as null which - // will cause the contained Select STEPread function to read it. DAS 2/4/97 - - if( isalpha(c) ) // case B - { - int eot =0; // end of token flag - // token is a type name - get the type - while( (c != '(') && in.good() ) - { - if (!eot && ! (eot = isspace (c)) ) - // as long as eot hasn\'t been reached keep appending - tmp.Append(c); - in >> c; - } - - // check for valid type and set the underlying type - if( SetUnderlyingType( CanBeSet( tmp.chars(), currSch ) ) ) - { // Assign the value to the underlying type. CanBeSet() is a - // slightly modified CanBe(). It ensures that a renamed select - // type (see big comment below) "CantBe" one of its member items. - // This is because such a select type requires its own name to - // appear first ("selX("), so even if we read a valid element of - // selX, selX can't be the underlying type. That can only be the - // case if "selX" appears first and is what we just read. - in >> std::ws; // skip white space - if( (underlying_type->Type() == REFERENCE_TYPE) && - (underlying_type->NonRefType() == sdaiSELECT) ) - { - // This means (1) that the underlying type is itself a select - // (cond 2), and (2) it's not defined in the EXPRESS as a - // select, but as a renamed select. (E.g., TYPE sel2 = sel1.) - // In such a case, according to the TC, "sel2(" must appear in - // the text. (We must have found one for SetUnderlyingType() - // above to set underlying_type to sel2.) If all of the above - // is true, we read "sel2" but not the value of sel2. We - // therefore do not pass down what we read to STEPread_content - // below, so that we can still read the value of sel2. If, - // however, under_type was a non-renamed select, no "sel1" - // would appear (according to TC) and we already read the value - // of sel1. If so, we pass the already-read value down. - STEPread_content (in, instances, 0, addFileId, currSch); - } - else - { - // In most cases (see above note), we've already read the value - // we're interested in. - // This also handles all other cases? other than the if part - // above and elements of type entity ref? - STEPread_content (in, instances, tmp.chars(), addFileId, - currSch); - // STEPread_content uses the ErrorDesc data member from the - // SCLP23(Select) class - } - err->AppendToDetailMsg (Error ()); - err->GreaterSeverity( severity () ); - in >> std::ws >> c; - if( c != ')' ) - { - err->AppendToDetailMsg( - "Bad data or missing closing ')' for SELECT type.\n" ); - err->GreaterSeverity( SEVERITY_WARNING ); - in.putback (c); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_WARNING; - } -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return err->severity(); - } - else // ERROR -- the type wasn't one of the choices - { - if( !in.good() ) - { - err->GreaterSeverity( SEVERITY_INPUT_ERROR ); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_INPUT_ERROR; - } - else - { - err->AppendToDetailMsg ( - "The type name for the SELECT type is not valid.\n"); - err->GreaterSeverity (SEVERITY_WARNING); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_WARNING; - } - } -/* if (!in.good()) - { - err->GreaterSeverity( SEVERITY_INPUT_ERROR ); - return SEVERITY_INPUT_ERROR; - } -*/ - } -// NOTE **** anything that gets read below here is invalid according to the -// Technical Corrigendum for Part 21 (except for reading an entity instance -// where below is the only place they get read). I am leaving all of this -// here since it is valuable to 'read what you can' and flag an error which -// is what it does (for every type but entity instance refs). DAS 2/4/97 - - else // case A - { // the type can be determined from the value -// if (_type && ! _type -> UniqueElements ()) { -// err->AppendToDetailMsg("Type for value of SELECT is ambiguous.\n" ); -// err->GreaterSeverity( SEVERITY_WARNING ); -// } - switch (c) - { - case '$': - nullify (); - err->GreaterSeverity (SEVERITY_INCOMPLETE); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_INCOMPLETE; - - case ',': - case '\0': - // ERROR IN INPUT - in.putback (c); - err->AppendToDetailMsg( "No value found for SELECT type.\n" ); - err->GreaterSeverity( SEVERITY_WARNING ); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_WARNING; - - case '.': // assign enum - base_type = ENUM_TYPE; - err->AppendToDetailMsg( "Invalid Enumeration, Logical, or Boolean value in SELECT type.\n" ); - err->GreaterSeverity( SEVERITY_WARNING ); - break; - // set the underlying type - // call STEPread - // return - - case '\'': // assign string - base_type = STRING_TYPE; - err->AppendToDetailMsg( "Invalid String value in SELECT type.\n" ); - err->GreaterSeverity( SEVERITY_WARNING ); - break; - - case '"': // assign string - base_type = BINARY_TYPE; - err->AppendToDetailMsg( "Invalid Binary value in SELECT type.\n" ); - err->GreaterSeverity( SEVERITY_WARNING ); - break; - - case '#': - base_type = ENTITY_TYPE; - break; - // call STEPread_reference - // set the underlying type - - // assign entity - // read the reference - // match type to underlying type - // assign the value - // set the underlying type - - case '(': - { - err->AppendToDetailMsg( "Invalid aggregate value in SELECT type.\n" ); - err->GreaterSeverity( SEVERITY_WARNING ); - char n; - in >> n; - in.putback(n); - if( isalpha(n) ) - base_type = SELECT_TYPE; - else - base_type = AGGREGATE_TYPE; - break; - } - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - case '-': - // **************************************************************** - // The following check is commented out for compatibility with STEP - // entities with single attributes for aggregates. See definition - // for TRIMMED_CURVE. Part of ISO 10303-203 AIM EXPRESS schema - GC - // **************************************************************** - // err->AppendToDetailMsg( "Invalid Integer or Real value in SELECT type.\n" ); - // err->GreaterSeverity( SEVERITY_WARNING ); - if( CanBe( REAL_TYPE ) ) - base_type = REAL_TYPE; - else - base_type = INTEGER_TYPE; - break; - - default: - // ambiguous - ERROR: underlying type should have been set - // STEPread_error (); - err->AppendToDetailMsg( - "type for SELECT could not be determined from value.\n" ); - nullify (); - in.putback (c); - err->GreaterSeverity( SEVERITY_WARNING ); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_WARNING; - } - - in.putback (c); - - // now the type descriptor should be derivable from the base_type - - // if it\'s not issue a warning - if (_type && ! (IsUnique(base_type))) { - err->AppendToDetailMsg("Value for SELECT will be assigned to first possible choice.\n" ); -// err->GreaterSeverity( SEVERITY_INCOMPLETE ); - err->GreaterSeverity( SEVERITY_USERMSG ); - } - - if( base_type == ENTITY_TYPE ) - { // you don\'t know if this is an ENTITY or a SELECT - // have to do this here - not in STEPread_content - STEPentity * tmp = - ReadEntityRef (in, err, (char*)(",)"), instances, addFileId); - if( tmp && ( tmp != ENTITY_NULL ) && AssignEntity(tmp) ) - { -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_NULL; - } - else - { - err->AppendToDetailMsg( - "Reference to entity that is not a valid type for SELECT.\n" ); - nullify (); - err->GreaterSeverity( SEVERITY_WARNING ); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_WARNING; - } - } - else if ( SetUnderlyingType( CanBe(base_type) ) ) - STEPread_content( in, instances, 0, addFileId ); - - else // ERROR -- the type wasn\'t one of the choices - { - err->AppendToDetailMsg( - "The type of the SELECT type is not valid.\n"); - err->GreaterSeverity( SEVERITY_WARNING ); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return SEVERITY_WARNING; - } - } -// if (!in.good()) severity (SEVERITY_INPUT_ERROR); -#ifdef SCL_LOGGING -// *logStream << "DAVE ERR Exiting SCLP23(Select)::STEPread for " << _type->Name() << G4endl; -#endif - return err->severity (); -} - - -// updated to Technical Corrigendum DAS Feb 4, 1997 -void -SCLP23(Select)::STEPwrite(std::ostream& out, const char *currSch) const -{ - if (!exists ()) { - out << "$"; - return; - } -// switch(ValueType()) // This doesn't work DAS 2/4/97 - switch(underlying_type->NonRefType()) - { - case sdaiINSTANCE: - { - STEPwrite_content( out ); - break; - } - case sdaiSELECT: // The name of a select is never written DAS 1/31/97 - { - if(underlying_type->Type() == REFERENCE_TYPE) - { -// if(underlying_type->NonRefType() == sdaiSELECT) - SCLstring s; - out << StrToUpper(underlying_type->Name(currSch),s) << "("; - STEPwrite_content( out, currSch ); - out << ")"; - } - else - STEPwrite_content( out, currSch ); - break; - } - case sdaiNUMBER: - case sdaiREAL: - case sdaiINTEGER: - case sdaiSTRING: - case sdaiBOOLEAN: - case sdaiLOGICAL: - case sdaiBINARY: - case sdaiENUMERATION: - case sdaiAGGR: - case ARRAY_TYPE: - case BAG_TYPE: - case SET_TYPE: - case LIST_TYPE: - { - STEPwrite_verbose( out, currSch ); - break; - } - case REFERENCE_TYPE: // this should never happen? DAS - default: - out << "ERROR Should not have gone here in SCLP23(Select)::STEPwrite()" - << G4endl; - } -/* - if (IsUnique(ValueType()) || (ValueType() == ENTITY_TYPE)) - STEPwrite_content( out ); - else - STEPwrite_verbose(out); -*/ -/* - { - SCLstring tmp; - out << StrToUpper( CurrentUnderlyingType()->Name(), tmp ) << "("; - STEPwrite_content (out); - out << ")"; - } -*/ -} - -void -SCLP23(Select)::STEPwrite_verbose(std::ostream& out, const char *currSch) const -{ - SCLstring tmp; - out << StrToUpper( CurrentUnderlyingType()->Name(currSch), tmp) << "("; - STEPwrite_content (out); - out << ")"; -} - -const char * -SCLP23(Select)::STEPwrite(SCLstring& s, const char *currSch) const -{ - std::strstream buf; - STEPwrite (buf, currSch); - buf << std::ends; // have to add the terminating \0 char - char * tmp; - tmp = buf.str (); - s = tmp; - delete tmp; - return s; -} - - -//SCLP23(Select)& -//SCLP23(Select)::operator= (SCLP23(Select)& x) -//{ -// return *this; -//} - -#ifdef OBSOLETE -char* -SCLP23(Select)::asStr() const -{ - std::strstream buf; - STEPwrite (buf); -/* STEPwrite_content (buf);*/ - buf << std::ends; // have to add the terminating \0 char - return buf.str (); // need to delete this space -} -#endif - -int -SCLP23(Select)::set_null () -{ - nullify (); - return 1; -} - -int -SCLP23(Select)::is_null () -{ - return (!exists ()); -} diff --git a/source/geometry/solids/STEP/src/sdaiSession_instance.cc b/source/geometry/solids/STEP/src/sdaiSession_instance.cc deleted file mode 100644 index e3aa53f695..0000000000 --- a/source/geometry/solids/STEP/src/sdaiSession_instance.cc +++ /dev/null @@ -1,9 +0,0 @@ -#include - -SCLP23(Session_instance)::SCLP23_NAME(Session_instance)() -{ -} - -SCLP23(Session_instance)::~SCLP23_NAME(Session_instance)() -{ -} diff --git a/source/geometry/solids/STEP/src/sdaiString.cc b/source/geometry/solids/STEP/src/sdaiString.cc deleted file mode 100644 index 0d5aa3d1ab..0000000000 --- a/source/geometry/solids/STEP/src/sdaiString.cc +++ /dev/null @@ -1,149 +0,0 @@ - -/* -* NIST STEP Core Class Library -* clstepcore/sdaiString.cc -* April 1997 -* KC Morris - -* Development of this software was funded by the United States Government, -* and is not subject to copyright. -*/ - -/* $Id: sdaiString.cc,v 1.3 2003/06/06 17:07:36 gcosmo Exp $ */ - -#include -#include - - -SCLP23(String)& -SCLP23(String)::operator= (const char* s) -{ - SCLstring::operator= (s); - return *this; -} - -void -SCLP23(String)::STEPwrite (std::ostream& out) const -{ - const char *str = 0; -// strings that exist but do not contain any chars should be written as '', -// not $ --Josh L, 4/28/95 -// if (is_null ()) - if (is_undefined ()) - out << "$"; - else - { - out << "\'"; - str = chars (); - while (*str) - { - if(*str == STRING_DELIM) - out << STRING_DELIM; - out << *str; - str++; - } - out << "\'"; - } -} - -void -SCLP23(String)::STEPwrite (SCLstring &s) const -{ - const char *str = 0; -// null strings should be represented by '', not $ --Josh L, 4/28/95 -// if (is_null ()) - if (is_undefined ()) - { -// s.set_null(); // this would free up space? nope - s = "$"; - } - else - { - s = "\'"; - str = chars (); - while (*str) - { - if(*str == STRING_DELIM) - s.Append(STRING_DELIM); - s.Append(*str); - str++; - } - s.Append(STRING_DELIM); - } -} - -Severity -SCLP23(String)::StrToVal (const char * s) -{ - operator= (s); - if (! strcmp (chars (), s)) return SEVERITY_NULL ; - else return SEVERITY_INPUT_ERROR; -} - -// STEPread reads a string in exchange file format -// starting with a single quote -Severity -SCLP23(String)::STEPread (std::istream& in, ErrorDescriptor *err) -{ - int foundEndQuote = 0; // need so this string is not ok: 'hi'' - set_null (); // clear the old string - char c; - in >> std::ws; // skip white space - in >> c; - - // remember the current format state to restore the previous settings - std::ios::fmtflags flags = in.flags(); - in.unsetf(std::ios::skipws); - - if (c == STRING_DELIM) - { - Append("\0"); // this will make sure that this will not be undefined. - // It will handle the case where '' is read. It will be an - // empty string rather than one that is undefined. - - while( (c != '\0') && in.good() && in.get(c) ) - { - if (c == STRING_DELIM) { - in.get (c); - if( ! in.good() ) - { // it is the final quote and no extra char was read - foundEndQuote = 1; - c = '\0'; - } - else if( !(c == STRING_DELIM) ) - { // it is the final quote and extra char was read - in.putback (c); // put back non-quote extra char - foundEndQuote = 1; - c = '\0'; - } - // else { ; } // do nothing it is an embedded quote - } - Append (c); - } - Append ('\0'); - - if(foundEndQuote) - return SEVERITY_NULL; - else - { // non-recoverable error - err->AppendToDetailMsg("Missing closing quote on string value.\n"); - err->AppendToUserMsg("Missing closing quote on string value.\n"); - err->GreaterSeverity(SEVERITY_INPUT_ERROR); - return SEVERITY_INPUT_ERROR; - } - } - // otherwise there was not a quote - in.putback (c); - in.flags(flags); // set the format state back to previous settings - - set_undefined(); - - return err -> GreaterSeverity (SEVERITY_INCOMPLETE); -} - -Severity -SCLP23(String)::STEPread (const char *s, ErrorDescriptor *err) -{ - std::istrstream in((char *)s); - return STEPread (in, err); -} diff --git a/source/geometry/solids/STEP/src/trynext.cc b/source/geometry/solids/STEP/src/trynext.cc deleted file mode 100644 index 60c6b8404a..0000000000 --- a/source/geometry/solids/STEP/src/trynext.cc +++ /dev/null @@ -1,161 +0,0 @@ -/***************************************************************************** - * trynext.cc * - * * - * Description: Contains the tryNext() functions for the EntList descen- * - * dants. Their purpose is to search for additional branches * - * of OrList's to try the next available untried solution. AND * - * and ANDOR iterate through their children looking for OR's. * - * OR tries the next branch of its children if more remain. * - * * - * Created by: David Rosenfeld * - * Date: 10/24/96 * - *****************************************************************************/ - -#include "complexSupport.h" - -// Local function prototypes: -static EntList *firstCandidate( EntList * ); -static EntList *nextCandidate( EntList * ); - -MatchType MultList::tryNext( EntNode *ents ) - /* - * Loops backwards through the children of this, recursively searching for - * alternate solutions (i.e., OR's which have alternate paths we haven't - * tried yet). We loop through all MultList type children which may have - * an OR with additional choices. (Which children to try is determined in - * a local function. We loop backwards because this is the reverse of the - * order we set the OR's. Later choices must be redone before earlier - * (reasons discussed in notes, 10/17). This function is the tryNext() - * for AND and ANDOR; the OR version is redefined. - */ -{ - MatchType retval; - EntList *child = getLast(); - - child = firstCandidate( child ); - while ( child != NULL ) { - if ( (retval = ((MultList *)child)->tryNext( ents )) == MATCHALL ) { - // We're done - a good solution was found. - return MATCHALL; - } - if ( retval == NEWCHOICE ) { - // If a new viable choice was found below, we must now reset all - // later OR's to their first choice. (That's what acceptChoice() - // does when choice = LISTEND.) This is necessary so that we can - // exhaust every possibility with this new choice. To do this we - // first reset all our children, and then return NEWCHOICE so that - // our parent (if exists) will also know to reset all its later OR - // children. - while ( (child = nextCandidate( child )) != NULL ) { - if ( child->acceptChoice( ents ) && ents->allMarked() ) { - return MATCHALL; - } - } - return NEWCHOICE; - } - child = firstCandidate( child->prev ); - } - // If we got here, we didn't find any new OR choices: - return NOMORE; -} - -static EntList *firstCandidate( EntList *child ) - /* - * Finds an EntList from child's list which may have an OR with more - * choices below it. The acceptable choices are described in commenting - * below. - */ -{ - EntList *ent = child->lastNot( SIMPLE ); - - while ( ent != NULL ) { - if ( ent->viableVal() >= MATCHSOME ) { - // Return any non-SIMPLE ent where viable >= MATCHSOME. We even - // want to check an OR where numChoices = 1, because it may have - // an OR descendant with more choices. - return ent; - } - ent = ent->prevNot( SIMPLE ); - } - return ent; -} - -static EntList *nextCandidate( EntList *child ) - /* - * Same as prev function, searches forwards from ent after child. - */ -{ - EntList *ent = child->nextNot( SIMPLE ); - - while ( ent != NULL ) { - if ( ent->viableVal() >= MATCHSOME ) { - return ent; - } - ent = ent->nextNot( SIMPLE ); - } - return ent; -} - -MatchType OrList::tryNext( EntNode *ents ) - /* - * Tries out the next choice of this. Basic algorithm is to first recurse - * to check for other solutions in the descendants of the current choice, - * and then to try our next choice. - */ -{ - MatchType retval; - EntList *child; - - - if ( choice == LISTEND ) { - // if we've already exhausted all the choices in this OR, - return NOMORE; - } - - // First try other choices of descendants of current choice: - child = getChild( choice ); - if ( child->multiple() ) { - // I.e., if there are (or may be) more choices within the current - // choice, try those first. We must be sure to exhaust all choices in - // our descendants before moving on. - retval = ((MultList *)child)->tryNext( ents ); - if ( retval == MATCHALL ) { - return MATCHALL; - } - if ( retval == NEWCHOICE ) { - // I.e., we found a next choice to go to, return so that the - // EntLists on the higher levels (if there are) can retry all the - // later choices with the new choice we just found. Otherwise, - // we'll continue below looking into our next choice. - return NEWCHOICE; - } - } - - // No other choices among our descendants. Look for new choice at our - // level: - child->unmarkAll( ents ); - if ( choiceCount == 1 ) { - // Quick way to determine that there won't be any more choices here. - // (Also, it's nec. to unmark now, as we did above before returning and - // before the calling tryNext() tries earlier OR's - see notes, 11/12.) - choice = LISTEND; - return NOMORE; - } - - // Otherwise, try our next: - if ( acceptNextChoice( ents ) ) { - if ( ents->allMarked() ) { - return MATCHALL; - } - return NEWCHOICE; - } else { - // Must have been no next choice (or none which mark anything new). - // acceptNextChoice() has set choice to LISTEND. We leave this OR - // unset and return NOMORE. If our calling function finds another - // choice elsewhere, it will reloop forwards and set all later OR's to - // their first choices, so that we'll be able to test every possibility - // with the new choice. At that time, this OrList will be reset to its - // first choice too. - return NOMORE; - } -} diff --git a/source/geometry/solids/STEPinterface/GNUmakefile b/source/geometry/solids/STEPinterface/GNUmakefile deleted file mode 100644 index eb6215bc74..0000000000 --- a/source/geometry/solids/STEPinterface/GNUmakefile +++ /dev/null @@ -1,35 +0,0 @@ -# $Id: GNUmakefile,v 1.4 2003/03/28 15:49:56 gcosmo Exp $ -# ------------------------------------------------------------- -# GNUmakefile for STEP library. Gabriele Cosmo, 15/11/96. -# ------------------------------------------------------------- - -name := G4stepinterface - -ifndef G4INSTALL - G4INSTALL = ../../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -CPPFLAGS += \ - -I$(G4BASE)/geometry/solids/STEP/include \ - -I$(G4BASE)/geometry/solids/BREPS/include \ - -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/global/management/include \ - -I$(G4BASE)/global/HEPRandom/include \ - -I$(G4BASE)/global/HEPGeometry/include \ - -I$(G4BASE)/graphics_reps/include - -# To avoid incompatibilities with ANSI standard treatment of strings, the -# NIST STEP reader on gcc-2.95.X and later must be compiled in non-ANSI mode. -# -ifneq (,$(findstring g++,$(G4SYSTEM))) - ansi_options = -ansi -pedantic - NCXX = $(filter-out $(ansi_options),$(CXXFLAGS)) - NCPP = $(CPPFLAGS) - CXXFLAGS := $(NCXX) - CPPFLAGS := $(NCPP) -w -endif - -include $(G4INSTALL)/config/common.gmk diff --git a/source/geometry/solids/STEPinterface/History b/source/geometry/solids/STEPinterface/History deleted file mode 100644 index 226c84b9c4..0000000000 --- a/source/geometry/solids/STEPinterface/History +++ /dev/null @@ -1,192 +0,0 @@ -$Id: History,v 1.15 2003/03/28 15:50:13 gcosmo Exp $ ----------------------------------------------------------------------------- - - ========================================================= - Geant4 - an Object-Oriented Toolkit for Simulation in HEP - ========================================================= - - History file for geometry/solids/STEPinterface - ---------------------------------------------- -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 * - ---------------------------------------------------------- - -28th March 2003 Gabriele Cosmo (stepinterface-V05-00-00) -- Cleared trivial strict pedantic warnings. - -21st November 2002 Gabriele Cosmo (stepinterface-V04-01-01) -- Made all static inline methods not inlined, to allow porting on - Windows DLLs. - -4th July 2002 Gabriele Cosmo (stepinterface-V04-01-00) -- GNUmakefile: parse 'g++' string in G4SYSTEM to detect non-ISO setup for - gcc-2.95 and higher. - -26th February 2002 Gabriele Cosmo (stepinterface-V04-00-00) -- G4RepresentationRelationshipCreator.cc: fixed unsafe usage of '<' operator. - -30th November 2001 Gabriele Cosmo (stepinterface-V03-02-01) -- Fix to GNUmakefile for compilation on gcc-2.96.98 and gcc-3.0.2 compilers to - overcome warnings produced by strict ANSI compilation. - -21st Septmber 2001 Gabriele Cosmo (stepinterface-V03-02-00) -- G4Axis2Placement3dCreator::CreateG4Geometry(): added check to - attribute validity for 'direction'. - -20th April 2001 Gabriele Cosmo (stepinterface-V03-01-00) -- Migration to STL vector: - o G4GeometryCreator, migrated typedefs: G4PlacedSolidVector, - G4SurfaceVector, G4SolidVector. - o G4GeometryTable, migrated typedef G4CreatorVector. - -20th November 2000 Gabriele Cosmo (stepinterface-V02-00-02) -- Fixes to remove warnings from "-Wall -ansi -pedantic" g++ compiler options: - o commented out variables declared and not used. - o fixed declaration of variables used before being initialised. - o fixed order of initialisation of member data in constructors. - o fixed usage of unsigned-int (size_t) for array indeces. - -10th November 2000 Gabriele Cosmo (stepinterface-V02-00-01) -- Added GetInstanceManager() method to G4GeometryCreator. - -09th November 2000 Gabriele Cosmo (stepinterface-V02-00-00) -- QA code revision and cleanup (+fixes from CodeWizard filtering): - o Changed return value to "const char*" to method Name() and made - post-const in all creator classes. - o Made virtual methods not inlined in G4GeometryCreator. - o Moved public data members to protected/private in G4GeometryCreator - and G4AssemblyCreator. - o G4AssemblyCreator: defined private copy-constructor and operator=. - o Fix in G4Axis2Placement3dCreator::CreateSTEPGeometry(void*) where - G4Point3D was casted to G4Vector3D by mistake (!). - -25th February 2000 Gabriele Cosmo (stepinterface-V01-00-01) -- Improved overall diagnostics. -- Fixed internal memory-leaks. -- Added protections for NULL pointers generated by missing geometry creators. - Updated files: G4VectorCreator.cc, G4ToroidalSurfaceCreator.cc, - G4SphericalSurfaceCreator.cc, G4ShapeRepresentationCreator.cc, - G4RationalBSplineSurfaceCreator.cc, G4PlaneCreator.cc, - G4OrientedEdgeCreator.cc, G4LineCreator.cc, - G4ItemDefinedTransformationCreator.cc, G4EllipseCreator.cc, - G4EdgeLoopCreator.cc, G4EdgeCurveCreator.cc, G4CylindricalSurfaceCreator.cc, - G4ConicalSurfaceCreator.cc, G4ClosedShellCreator.cc, G4CircleCreator.cc, - G4BoundedSurfaceCreator.cc, G4BSplineCurveWithKnotsCreator.cc, - G4Axis2Placement3dCreator.cc, G4AdvancedFaceCreator.cc, - G4AdvancedBrepShapeRepresentationCreator.cc -- G4AdvancedFaceCreator.cc, G4EdgeLoopCreator.cc - o added check over the number of allocated curves for composition. -- G4ClosedShellCreator.cc - o added check over the number of allocated surfaces for composition. -- G4BSplineSurfaceWithKnotsCreator.cc - o created object is now a G4BSplineSurface. No G4 object was returned before. -- G4RepresentationRelationshipCreator[.hh.cc]: - o fixed bound-overflow problem on array of placements. - o implemented temporary solution for association of placements and - manifolded solids for advanced BREP shape representations. - o added protections for NULL pointers. -- G4GeometryTable.cc: - o added extra-debug verbosity protected by G4_STEPINTERFACE_DEBUG flag. -- G4AssemblyCreator.cc: - o STEPfile_id is now retrieved through direct call to STEP reader function - GetApplication_instance(keyw, index). - o added extra-debug verbosity protected by G4_STEPINTERFACE_DEBUG flag. - o added protection for NULL pointers. -- test/GNUmakefile: - o moved to use granular libraries. - -21st January 2000 Gabriele Cosmo (stepinterface-V01-00-00) -- Code migrated to handle new NIST STEP Reader SCL 3.2. -- Reduced inter-class dependencies by reorganising include statements and - removing unnecessary ones. -- Added standard class header description and CVS identifiers. -- Code porting to supported UNIX platforms/compilers. - -8th November 1999 Gabriele Cosmo (stepinterface-V00-01-00) -- Added files G4NISTStepReader[.hh.cc] and G4StepFileReader[.hh] from BREPS. -- Added inclusion of STEPcomplex.h in G4BoundedSurfaceCreator.cc, - G4GeometryCreator.cc and G4RepresentationRelationshipCreator.cc. - -6th February 1999 John Allison stepinterface-01-00-00 on ONE FILE ONLY... -- Commented out some troublesome printing in G4GeometryTable.cc. Changes - (a) in branch stepintf-geant4-00-branch (from geant4-00), (b) in branch - stepintf-01-00-00-branch, and (c) in head of G4GeometryTable.cc. - ----------------------------- -revision 1.9 -date: 1998/12/09 12:00:42; author: broglia; state: Exp; lines: +22 -37 -December 9, 1998 : L. Broglia - - Make the possibility to read a STEP file containing - an assembly of assemblies. - - G4AdvancedBrepShapeRepresentation can have 1 or more - Manifold solid, so the creator return an array of - G4BREPSolid (class G4BREPSolidVector) - - G4ContextDependentShapeRepresentationCreator and - G4RepresentationRelationshipCreator create G4AdvancedBrepShapeRepresentation, - so I modified the 'return' type (now G4BREPSolidVector) - - G4AssemblyCreator create an assembly of solids, so a STEP file containing - an assembly of assemblies is saved into an assembly of solids. - ----------------------------- -revision 1.6 - -November 17, 1998 : L. Broglia - - Modify G4AssemblyCreator, made of 0 or 1 Axis2Placement3D - and 1 or more ManifoldSolidBrep - - -November 6, 1998 L. Broglia - - - Implement CreateG4Geometry in G4CircleCreator, G4CylindricalSurfaceCreator, - G4CylindricalSurfaceCreator.cc, G4SphericalSurfaceCreator.cc - ----------------------------- -revision 1.4 -date: 1998/07/29 00:45:22; author: gcosmo; state: Exp; lines: +2 -1 -Porting on DEC-cxx 6.0: for-loop usage fixed ----------------------------- -revision 1.3 -date: 1998/07/12 02:58:03; author: urbi; state: Exp; lines: +1 -1 -branches: 1.3.6; -Renaming methods. ----------------------------- -revision 1.2 -date: 1998/07/10 20:55:42; author: japost; state: Exp; lines: +4 -4 - Changed - ::G4GeometryTable::Register - to - G4GeometryTable::Register - in order to allow it to compile on DEC-AFS. - - Also deleted unneeded ";" after {} of functions. (Warnings on DEC) - ----------------------------- -revision 1.1 -date: 1998/07/08 15:26:35; author: jsulkimo; state: Exp; -First version of STEPinterface. - Compiled on AIX & Linux ----------------------------- -revision 1.3.6.1 -date: 1998/08/21 14:37:27; author: allison; state: Exp; lines: +2 -1 -HEAD version now temporarily in beta01-02-branch. -============================================================================= - - - - - - - - - - - diff --git a/source/geometry/solids/STEPinterface/include/G4AdvancedBrepShapeRepresentationCreator.hh b/source/geometry/solids/STEPinterface/include/G4AdvancedBrepShapeRepresentationCreator.hh deleted file mode 100644 index f455446edd..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4AdvancedBrepShapeRepresentationCreator.hh +++ /dev/null @@ -1,68 +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: G4AdvancedBrepShapeRepresentationCreator.hh,v 1.5 2002/11/21 16:49:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4AdvancedBrepShapeRepresentationCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4ADVANCEDBREPSHAPEREPRESENTATIONCREATOR_HH -#define G4ADVANCEDBREPSHAPEREPRESENTATIONCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4AdvancedBrepShapeRepresentationCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4AdvancedBrepShapeRepresentationCreator(); - ~G4AdvancedBrepShapeRepresentationCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Advanced_Brep_Shape_Representation"; } - static G4AdvancedBrepShapeRepresentationCreator GetInstance(); - - // Members - - private: - - static G4AdvancedBrepShapeRepresentationCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4AdvancedFaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4AdvancedFaceCreator.hh deleted file mode 100644 index f5de984a68..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4AdvancedFaceCreator.hh +++ /dev/null @@ -1,68 +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: G4AdvancedFaceCreator.hh,v 1.5 2002/11/21 16:49:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4AdvancedFaceCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4ADVANCEDFACECREATOR_HH -#define G4ADVANCEDFACECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4AdvancedFaceCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4AdvancedFaceCreator(); - ~G4AdvancedFaceCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Advanced_Face"; } - static G4AdvancedFaceCreator GetInstance(); - - // Members - - private: - - static G4AdvancedFaceCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4Axis2Placement2dCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis2Placement2dCreator.hh deleted file mode 100644 index 72f3d4d8cd..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4Axis2Placement2dCreator.hh +++ /dev/null @@ -1,67 +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: G4Axis2Placement2dCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4Axis2Placement2dCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4AXIS2PLACEMENT2DCREATOR_HH -#define G4AXIS2PLACEMENT2DCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4Axis2Placement2dCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - G4Axis2Placement2dCreator(); - ~G4Axis2Placement2dCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Axis2_Placement_2d"; } - static G4Axis2Placement2dCreator GetInstance(); - - //Members - - private: - - static G4Axis2Placement2dCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4Axis2Placement3dCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis2Placement3dCreator.hh deleted file mode 100644 index 99fad25f5e..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4Axis2Placement3dCreator.hh +++ /dev/null @@ -1,68 +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: G4Axis2Placement3dCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4Axis2Placement3dCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4AXIS2PLACEMENT3DCREATOR_HH -#define G4AXIS2PLACEMENT3DCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4Axis2Placement3dCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4Axis2Placement3dCreator(); - ~G4Axis2Placement3dCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Axis2_Placement_3d"; } - static G4Axis2Placement3dCreator GetInstance(); - - // Members - - private: - - static G4Axis2Placement3dCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4Axis2PlacementCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis2PlacementCreator.hh deleted file mode 100644 index 184937985d..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4Axis2PlacementCreator.hh +++ /dev/null @@ -1,68 +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: G4Axis2PlacementCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4Axis2PlacementCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4AXIS2PLACEMENTCREATOR_HH -#define G4AXIS2PLACEMENTCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4Axis2PlacementCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4Axis2PlacementCreator(); - ~G4Axis2PlacementCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Axis2_Placement"; } - static G4Axis2PlacementCreator GetInstance(); - - // Members - - private: - - static G4Axis2PlacementCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4Axis2PlacementsCreator.hh b/source/geometry/solids/STEPinterface/include/G4Axis2PlacementsCreator.hh deleted file mode 100644 index 108b8d3285..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4Axis2PlacementsCreator.hh +++ /dev/null @@ -1,68 +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: G4Axis2PlacementsCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4Axis2PlacementsCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4AXIS2PLACEMENTSCREATOR_HH -#define G4AXIS2PLACEMENTSCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4Axis2PlacementsCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4Axis2PlacementsCreator(); - ~G4Axis2PlacementsCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Axis2_Placements"; } - static G4Axis2PlacementsCreator GetInstance(); - - // Members - - private: - - static G4Axis2PlacementsCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceCreator.hh deleted file mode 100644 index 7857f8efd0..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceCreator.hh +++ /dev/null @@ -1,68 +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: G4BSplineSurfaceCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4BSplineSurfaceCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4BSPLINESURFACECREATOR_HH -#define G4BSPLINESURFACECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4BSplineSurfaceCreator: public G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4BSplineSurfaceCreator(); - ~G4BSplineSurfaceCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "B_Spline_Surface"; } - static G4BSplineSurfaceCreator GetInstance(); - - // Members - - private: - - static G4BSplineSurfaceCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4BoundedSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4BoundedSurfaceCreator.hh deleted file mode 100644 index 002af11c50..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4BoundedSurfaceCreator.hh +++ /dev/null @@ -1,68 +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: G4BoundedSurfaceCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4BoundedSurfaceCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4BOUNDEDSURFACECREATOR_HH -#define G4BOUNDEDSURFACECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4BoundedSurfaceCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4BoundedSurfaceCreator(); - ~G4BoundedSurfaceCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Bounded_Surface"; } - static G4BoundedSurfaceCreator GetInstance(); - - // Members - - private: - - static G4BoundedSurfaceCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4CartesianPointCreator.hh b/source/geometry/solids/STEPinterface/include/G4CartesianPointCreator.hh deleted file mode 100644 index 18052be963..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4CartesianPointCreator.hh +++ /dev/null @@ -1,68 +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: G4CartesianPointCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4CartesianPointCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4CARTESIANPOINTCREATOR_HH -#define G4CARTESIANPOINTCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4CartesianPointCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4CartesianPointCreator(); - ~G4CartesianPointCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Cartesian_Point"; } - static G4CartesianPointCreator GetInstance(); - - // Members - - private: - - static G4CartesianPointCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ClosedShellCreator.hh b/source/geometry/solids/STEPinterface/include/G4ClosedShellCreator.hh deleted file mode 100644 index d3c4cf2ae1..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ClosedShellCreator.hh +++ /dev/null @@ -1,68 +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: G4ClosedShellCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ClosedShellCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4CLOSEDSHELLCREATOR_HH -#define G4CLOSEDSHELLCREATOR_HH - -#include "G4ConnectedFaceSetCreator.hh" - -class G4ClosedShellCreator: public G4ConnectedFaceSetCreator -{ - public: - - // Constructor & destructor - - G4ClosedShellCreator(); - ~G4ClosedShellCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Closed_Shell"; } - static G4ClosedShellCreator GetInstance(); - - //Members - - private: - - static G4ClosedShellCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ContextDependentShapeRepresentationCreator.hh b/source/geometry/solids/STEPinterface/include/G4ContextDependentShapeRepresentationCreator.hh deleted file mode 100644 index 144da54d39..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ContextDependentShapeRepresentationCreator.hh +++ /dev/null @@ -1,68 +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: G4ContextDependentShapeRepresentationCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ContextDependentShapeRepresentationCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4CONTEXTDEPENDENTSHAPEREPRESENTATIONCREATOR_HH -#define G4CONTEXTDEPENDENTSHAPEREPRESENTATIONCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4ContextDependentShapeRepresentationCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4ContextDependentShapeRepresentationCreator(); - ~G4ContextDependentShapeRepresentationCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Context_Dependent_Shape_Representation"; } - static G4ContextDependentShapeRepresentationCreator GetInstance(); - - // Members - - private: - - static G4ContextDependentShapeRepresentationCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4EdgeCurveCreator.hh b/source/geometry/solids/STEPinterface/include/G4EdgeCurveCreator.hh deleted file mode 100644 index 001540065c..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4EdgeCurveCreator.hh +++ /dev/null @@ -1,68 +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: G4EdgeCurveCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4EdgeCurveCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4EDGECURVECREATOR_HH -#define G4EDGECURVECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4EdgeCurveCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4EdgeCurveCreator(); - ~G4EdgeCurveCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Edge_Curve"; } - static G4EdgeCurveCreator GetInstance(); - - // Members - - private: - - static G4EdgeCurveCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4EllipseCreator.hh b/source/geometry/solids/STEPinterface/include/G4EllipseCreator.hh deleted file mode 100644 index b93dead3d8..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4EllipseCreator.hh +++ /dev/null @@ -1,68 +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: G4EllipseCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4EllipseCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4ELLIPSECREATOR_HH -#define G4ELLIPSECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4EllipseCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4EllipseCreator(); - ~G4EllipseCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Ellipse"; } - static G4EllipseCreator GetInstance(); - - //Members - - private: - - static G4EllipseCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4FaceBoundCreator.hh b/source/geometry/solids/STEPinterface/include/G4FaceBoundCreator.hh deleted file mode 100644 index bb5a28cc27..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4FaceBoundCreator.hh +++ /dev/null @@ -1,68 +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: G4FaceBoundCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4FaceBoundCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4FACEBOUNDCREATOR_HH -#define G4FACEBOUNDCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4FaceBoundCreator: public G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4FaceBoundCreator(); - ~G4FaceBoundCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Face_Bound"; } - static G4FaceBoundCreator GetInstance(); - - // Members - - private: - - static G4FaceBoundCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4FaceOuterBoundCreator.hh b/source/geometry/solids/STEPinterface/include/G4FaceOuterBoundCreator.hh deleted file mode 100644 index da3701a191..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4FaceOuterBoundCreator.hh +++ /dev/null @@ -1,67 +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: G4FaceOuterBoundCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4FaceOuterBoundCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4FACEOUTERBOUNDCREATOR_HH -#define G4FACEOUTERBOUNDCREATOR_HH - -#include "G4FaceBoundCreator.hh" - -class G4FaceOuterBoundCreator: public G4FaceBoundCreator -{ - public: - - // Constructor & destructor - - G4FaceOuterBoundCreator(); - ~G4FaceOuterBoundCreator(); - - // Member functions - - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Face_Outer_Bound"; } - static G4FaceOuterBoundCreator GetInstance(); - - // Members - - private: - - static G4FaceOuterBoundCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4GeometricRepresentationContextCreator.hh b/source/geometry/solids/STEPinterface/include/G4GeometricRepresentationContextCreator.hh deleted file mode 100644 index e373fd27af..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4GeometricRepresentationContextCreator.hh +++ /dev/null @@ -1,68 +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: G4GeometricRepresentationContextCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4GeometricRepresentationContextCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4GEOMETRICREPRESENTATIONCONTEXTCREATOR_HH -#define G4GEOMETRICREPRESENTATIONCONTEXTCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4GeometricRepresentationContextCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4GeometricRepresentationContextCreator(); - ~G4GeometricRepresentationContextCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Geometric_Representation_Context"; } - static G4GeometricRepresentationContextCreator GetInstance(); - - // Members - - private: - - static G4GeometricRepresentationContextCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4HyperbolaCreator.hh b/source/geometry/solids/STEPinterface/include/G4HyperbolaCreator.hh deleted file mode 100644 index c5907bf389..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4HyperbolaCreator.hh +++ /dev/null @@ -1,68 +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: G4HyperbolaCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4HyperbolaCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4HYPERBOLACREATOR_HH -#define G4HYPERBOLACREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4HyperbolaCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4HyperbolaCreator(); - ~G4HyperbolaCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Hyperbola"; } - static G4HyperbolaCreator GetInstance(); - - // Members - - private: - - static G4HyperbolaCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ItemDefinedTransformationCreator.hh b/source/geometry/solids/STEPinterface/include/G4ItemDefinedTransformationCreator.hh deleted file mode 100644 index 4ddc5881cf..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ItemDefinedTransformationCreator.hh +++ /dev/null @@ -1,68 +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: G4ItemDefinedTransformationCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ItemDefinedTransformationCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4ITEMDEFINEDTRANSFORMATIONCREATOR_HH -#define G4ITEMDEFINEDTRANSFORMATIONCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4ItemDefinedTransformationCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4ItemDefinedTransformationCreator(); - ~G4ItemDefinedTransformationCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Item_Defined_Transformation"; } - static G4ItemDefinedTransformationCreator GetInstance(); - - // Members - - private: - - static G4ItemDefinedTransformationCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ManifoldSolidBrepCreator.hh b/source/geometry/solids/STEPinterface/include/G4ManifoldSolidBrepCreator.hh deleted file mode 100644 index 83247db16c..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ManifoldSolidBrepCreator.hh +++ /dev/null @@ -1,68 +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: G4ManifoldSolidBrepCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ManifoldSolidBrepCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4MANIFOLDSOLIDBREPCREATOR_HH -#define G4MANIFOLDSOLIDBREPCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4ManifoldSolidBrepCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4ManifoldSolidBrepCreator(); - ~G4ManifoldSolidBrepCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Manifold_Solid_Brep"; } - static G4ManifoldSolidBrepCreator GetInstance(); - - // Members - - private: - - static G4ManifoldSolidBrepCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4NISTStepReader.hh b/source/geometry/solids/STEPinterface/include/G4NISTStepReader.hh deleted file mode 100644 index 24229445c1..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4NISTStepReader.hh +++ /dev/null @@ -1,101 +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: G4NISTStepReader.hh,v 1.5 2001/07/11 10:00:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4NISTStepReader -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4NISTSTEPFILEREADER_HH -#define G4NISTSTEPFILEREADER_HH - -#include -#include "G4StepFileReader.hh" - -/////////////////////////////////////////////////////////////////////////////// -// Function defined as a stub (necessary to use the scl) -// The purpose of this function is to allow the DisplayNode object to delete -// an object that it knows nothing about. It was made generic so that the scl -// could be used with any display toolkit. -// -// This function is called by the DisplayNode object -// This function needs to be defined outside the SCL libraries. It needs to do -// two things: -// 1) unmap the StepEntityEditor window if it is mapped. -// 2) delete the StepEntityEditor window -// To see an example of this function used with the Data Probe look in -// ../clprobe-ui/StepEntEditor.cc Look at DeleteSEE() and ~StepEntityEditor(). -/////////////////////////////////////////////////////////////////////////////// - -// this function illustrates a good way to Generate and assign file identifiers -/* -void AssignFileId (STEPentity *se, InstMgr& instance_list) -{ - int fId = instance_list.MaxFileId() + 1; - se->STEPfile_id = (fId > 0) ? fId : 1; -} -*/ - -// define this to be the name of the display window object for -// STEP entity instance editing or define your own. -// This is only needed as there's a link to these from the toolkit - -class StepEntityEditor -{ - public: - StepEntityEditor() {;} - ~StepEntityEditor() {;} -}; - -extern void AssignFileId (STEPentity *se, InstMgr& instance_list); -extern STEPentity *GetEntity (STEPnode *node, InstMgr *im); - -// This needs to be defined for the STEPfile reader -extern void SchemaInit (Registry &); - -class G4NISTStepReader : public G4StepFileReader -{ - public: - - void ReadSTEPFile(const char*); - void SaveSTEPFile(); - void UpdateSTEPFile(); - InstMgr GetInstanceManager() const { return InstanceList; } - - private: - - InstMgr InstanceList; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4OpenShellCreator.hh b/source/geometry/solids/STEPinterface/include/G4OpenShellCreator.hh deleted file mode 100644 index 0a7075754e..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4OpenShellCreator.hh +++ /dev/null @@ -1,68 +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: G4OpenShellCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4OpenShellCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4OPENSHELLCREATOR_HH -#define G4OPENSHELLCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4OpenShellCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4OpenShellCreator(); - ~G4OpenShellCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Open_Shell"; } - static G4OpenShellCreator GetInstance(); - - // Members - - private: - - static G4OpenShellCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4OrientedEdgeCreator.hh b/source/geometry/solids/STEPinterface/include/G4OrientedEdgeCreator.hh deleted file mode 100644 index 9340ac3e9f..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4OrientedEdgeCreator.hh +++ /dev/null @@ -1,68 +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: G4OrientedEdgeCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4OrientedEdgeCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4ORIENTEDEDGECREATOR_HH -#define G4ORIENTEDEDGECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4OrientedEdgeCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4OrientedEdgeCreator(); - ~G4OrientedEdgeCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Oriented_Edge"; } - static G4OrientedEdgeCreator GetInstance(); - - // Members - - private: - - static G4OrientedEdgeCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ParabolaCreator.hh b/source/geometry/solids/STEPinterface/include/G4ParabolaCreator.hh deleted file mode 100644 index 17b7ad6003..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ParabolaCreator.hh +++ /dev/null @@ -1,68 +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: G4ParabolaCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ParabolaCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4PARABOLACREATOR_HH -#define G4PARABOLACREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4ParabolaCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4ParabolaCreator(); - ~G4ParabolaCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Parabola"; } - static G4ParabolaCreator GetInstance(); - - // Members - - private: - - static G4ParabolaCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4PlaneCreator.hh b/source/geometry/solids/STEPinterface/include/G4PlaneCreator.hh deleted file mode 100644 index e628bf438b..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4PlaneCreator.hh +++ /dev/null @@ -1,68 +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: G4PlaneCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4PlaneCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4PLANECREATOR_HH -#define G4PLANECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4PlaneCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4PlaneCreator(); - ~G4PlaneCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Plane"; } - static G4PlaneCreator GetInstance(); - - // Members - - private: - - static G4PlaneCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4PointCreator.hh b/source/geometry/solids/STEPinterface/include/G4PointCreator.hh deleted file mode 100644 index 7fe5e891b1..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4PointCreator.hh +++ /dev/null @@ -1,68 +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: G4PointCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4PointCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4POINTCREATOR_HH -#define G4POINTCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4PointCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4PointCreator(); - ~G4PointCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Point"; } - static G4PointCreator GetInstance(); - - // Members - - private: - - static G4PointCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4PointOnCurveCreator.hh b/source/geometry/solids/STEPinterface/include/G4PointOnCurveCreator.hh deleted file mode 100644 index b341222b40..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4PointOnCurveCreator.hh +++ /dev/null @@ -1,68 +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: G4PointOnCurveCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4PointOnCurveCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4POINTONCURVECREATOR_HH -#define G4POINTONCURVECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4PointOnCurveCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4PointOnCurveCreator(); - ~G4PointOnCurveCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Point_On_Curve"; } - static G4PointOnCurveCreator GetInstance(); - - // Members - - private: - - static G4PointOnCurveCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4PointOnSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4PointOnSurfaceCreator.hh deleted file mode 100644 index 0c86a2cf81..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4PointOnSurfaceCreator.hh +++ /dev/null @@ -1,68 +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: G4PointOnSurfaceCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4PointOnSurfaceCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4POINTONSURFACECREATOR_HH -#define G4POINTONSURFACECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4PointOnSurfaceCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4PointOnSurfaceCreator(); - ~G4PointOnSurfaceCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Point_On_Surface"; } - static G4PointOnSurfaceCreator GetInstance(); - - // Members - - private: - - static G4PointOnSurfaceCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4PointReplicaCreator.hh b/source/geometry/solids/STEPinterface/include/G4PointReplicaCreator.hh deleted file mode 100644 index bbcd4d3839..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4PointReplicaCreator.hh +++ /dev/null @@ -1,68 +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: G4PointReplicaCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4PointReplicaCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4POINTREPLICACREATOR_HH -#define G4POINTREPLICACREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4PointReplicaCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4PointReplicaCreator(); - ~G4PointReplicaCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Point_Replica"; } - static G4PointReplicaCreator GetInstance(); - - // Members - - private: - - static G4PointReplicaCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4RationalBSplineSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4RationalBSplineSurfaceCreator.hh deleted file mode 100644 index f6fd07f5fd..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4RationalBSplineSurfaceCreator.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. * -// ******************************************************************** -// -// -// $Id: G4RationalBSplineSurfaceCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4RationalBSplineSurfaceCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4RATIONALBSPLINESURFACECREATOR_HH -#define G4RATIONALBSPLINESURFACECREATOR_HH - -#include "G4GeometryCreator.hh" -#include "G4BSplineSurfaceCreator.hh" - -class G4RationalBSplineSurfaceCreator: public G4BSplineSurfaceCreator -{ - public: - - // Constructor & destructor - - G4RationalBSplineSurfaceCreator(); - ~G4RationalBSplineSurfaceCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Rational_B_Spline_Surface"; } - static G4RationalBSplineSurfaceCreator GetInstance(); - - // Members - - private: - - static G4RationalBSplineSurfaceCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipCreator.hh b/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipCreator.hh deleted file mode 100644 index 28613461f4..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipCreator.hh +++ /dev/null @@ -1,68 +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: G4RepresentationRelationshipCreator.hh,v 1.6 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4RepresentationRelationshipCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4REPRESENTATIONRELATIONSHIPCREATOR_HH -#define G4REPRESENTATIONRELATIONSHIPCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4RepresentationRelationshipCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4RepresentationRelationshipCreator(); - ~G4RepresentationRelationshipCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Representation_Relationship"; } - static G4RepresentationRelationshipCreator GetInstance(); - - // Members - - private: - - static G4RepresentationRelationshipCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipWithTransformationCreator.hh b/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipWithTransformationCreator.hh deleted file mode 100644 index 64bb094b00..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4RepresentationRelationshipWithTransformationCreator.hh +++ /dev/null @@ -1,70 +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: G4RepresentationRelationshipWithTransformationCreator.hh,v 1.5 2002/11/21 16:49:45 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4RepresentationRelationshipWithTransformationCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4REPRESENTATIONRELATIONSHIPWITHTRANSFORMATIONCREATOR_HH -#define G4REPRESENTATIONRELATIONSHIPWITHTRANSFORMATIONCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4RepresentationRelationshipWithTransformationCreator - : private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4RepresentationRelationshipWithTransformationCreator(); - ~G4RepresentationRelationshipWithTransformationCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const - { return "Representation_Relationship_With_Transformation"; } - static G4RepresentationRelationshipWithTransformationCreator GetInstance(); - - // Members - - private: - - static G4RepresentationRelationshipWithTransformationCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ShapeDefinitionRepresentationCreator.hh b/source/geometry/solids/STEPinterface/include/G4ShapeDefinitionRepresentationCreator.hh deleted file mode 100644 index 4dbad0d3ef..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ShapeDefinitionRepresentationCreator.hh +++ /dev/null @@ -1,68 +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: G4ShapeDefinitionRepresentationCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ShapeDefinitionRepresentationCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4SHAPEDEFINITIONREPRESENTATIONCREATOR_HH -#define G4SHAPEDEFINITIONREPRESENTATIONCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4ShapeDefinitionRepresentationCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4ShapeDefinitionRepresentationCreator(); - ~G4ShapeDefinitionRepresentationCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Shape_Definition_Representation"; } - static G4ShapeDefinitionRepresentationCreator GetInstance(); - - // Members - - private: - - static G4ShapeDefinitionRepresentationCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationCreator.hh b/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationCreator.hh deleted file mode 100644 index bcf9df7ad4..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationCreator.hh +++ /dev/null @@ -1,68 +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: G4ShapeRepresentationCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ShapeRepresentationCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4SHAPEREPRESENTATIONCREATOR_HH -#define G4SHAPEREPRESENTATIONCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4ShapeRepresentationCreator: private G4GeometryCreator -{ - public: - - // Constructor - - G4ShapeRepresentationCreator(); - ~G4ShapeRepresentationCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Shape_Representation"; } - static G4ShapeRepresentationCreator GetInstance(); - - // Members - - private: - - static G4ShapeRepresentationCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationRelationshipCreator.hh b/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationRelationshipCreator.hh deleted file mode 100644 index ce6ef5d2ee..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ShapeRepresentationRelationshipCreator.hh +++ /dev/null @@ -1,68 +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: G4ShapeRepresentationRelationshipCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ShapeRepresentationRelationshipCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4SHAPEREPRESENTATIONRELATIONSHIPCREATOR_HH -#define G4SHAPEREPRESENTATIONRELATIONSHIPCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4ShapeRepresentationRelationshipCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4ShapeRepresentationRelationshipCreator(); - ~G4ShapeRepresentationRelationshipCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Shape_Representation_Relationship"; } - static G4ShapeRepresentationRelationshipCreator GetInstance(); - - // Members - - private: - - static G4ShapeRepresentationRelationshipCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4SphericalSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4SphericalSurfaceCreator.hh deleted file mode 100644 index 75a9be9f7b..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4SphericalSurfaceCreator.hh +++ /dev/null @@ -1,68 +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: G4SphericalSurfaceCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4SphericalSurfaceCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4SPHERICALSURFACECREATOR_HH -#define G4SPHERICALSURFACECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4SphericalSurfaceCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4SphericalSurfaceCreator(); - ~G4SphericalSurfaceCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "Spherical_Surface"; } - static G4SphericalSurfaceCreator GetInstance(); - - // Members - - private: - - static G4SphericalSurfaceCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/G4ToroidalSurfaceCreator.hh b/source/geometry/solids/STEPinterface/include/G4ToroidalSurfaceCreator.hh deleted file mode 100644 index efdef15583..0000000000 --- a/source/geometry/solids/STEPinterface/include/G4ToroidalSurfaceCreator.hh +++ /dev/null @@ -1,68 +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: G4ToroidalSurfaceCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ToroidalSurfaceCreator -// -// Class description: -// -// - -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4TOROIDALSURFACECREATOR_HH -#define G4TOROIDALSURFACECREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4ToroidalSurfaceCreator: private G4GeometryCreator -{ - public: - - // Constructor & destructor - - G4ToroidalSurfaceCreator(); - ~G4ToroidalSurfaceCreator(); - - // Member functions - - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Toroidal_Surface"; } - static G4ToroidalSurfaceCreator GetInstance(); - - // Members - - private: - - static G4ToroidalSurfaceCreator csc; -}; - -#endif diff --git a/source/geometry/solids/STEPinterface/include/includes b/source/geometry/solids/STEPinterface/include/includes deleted file mode 100644 index ff946803b3..0000000000 --- a/source/geometry/solids/STEPinterface/include/includes +++ /dev/null @@ -1,369 +0,0 @@ -#include -#include "G4PointCreator.hh" -#include "G4PointOnSurfaceCreator.hh" -#include "G4PointOnCurveCreator.hh" -#include "G4PointReplicaCreator.hh" -#include "G4CartesianPointCreator.hh" -#include "G4VertexPointCreator.hh" - -#include "G4CurveCreator.hh" -#include "G4ConicCreator.hh" -#include "G4HyperbolaCreator.hh" -#include "G4EllipseCreator.hh" -#include "G4CircleCreator.hh" -#include "G4LineCreator.hh" -#include "G4ParabolaCreator.hh" -#include "G4BSplineCurveWithKnotsCreator.hh" -#include "G4EdgeCurveCreator.hh" - -#include "G4EdgeLoopCreator.hh" -#include "G4OrientedEdgeCreator.hh" -#include "G4FaceBoundCreator.hh" -#include "G4FaceOuterBoundCreator.hh" - -#include "G4VectorCreator.hh" -#include "G4DirectionCreator.hh" -#include "G4Axis1PlacementCreator.hh" -#include "G4Axis2Placement2dCreator.hh" -#include "G4Axis2Placement3dCreator.hh" -#include "G4Axis2PlacementCreator.hh" -#include "G4Axis2PlacementsCreator.hh" - -#include "G4ItemDefinedTransformationCreator.hh" - -#include "G4AdvancedFaceCreator.hh" -#include "G4PlaneCreator.hh" -#include "G4CylindricalSurfaceCreator.hh" -#include "G4FaceSurfaceCreator.hh" -#include "G4ToroidalSurfaceCreator.hh" -#include "G4SphericalSurfaceCreator.hh" -#include "G4ConicalSurfaceCreator.hh" -#include "G4BSplineSurfaceCreator.hh" -#include "G4BoundedSurfaceCreator.hh" -#include "G4RationalBSplineSurfaceCreator.hh" -#include "G4BSplineSurfaceWithKnotsCreator.hh" - -#include "G4OpenShellCreator.hh" -#include "G4ClosedShellCreator.hh" - -#include "G4AdvancedBrepShapeRepresentationCreator.hh" -#include "G4ManifoldSolidBrepCreator.hh" - -#include "G4ConnectedFaceSetCreator.hh" - -#include "G4RepresentationRelationshipCreator.hh" -#include "G4ContextDependentShapeRepresentationCreator.hh" - - -#include "G4ShapeRepresentationCreator.hh" -#include "G4ShapeRepresentationRelationshipCreator.hh" -#include "G4ShapeDefinitionRepresentationCreator.hh" -#include "G4ProductDefinitionShapeCreator.hh" - -#include "G4RepresentationRelationshipWithTransformationCreator.hh" -#include "G4GeometricRepresentationContextCreator.hh" - - - -//#include "G4RepresentationItemCreator.hh" -//#include "G4GeometricRepresentationItemCreator.hh" -//#include "G4FunctionallyDefinedTransformationCreator.hh" -//#include "G4CartesianTransformationOperatorCreator.hh" -//#include "G4CartesianTransformationOperator_3dCreator.hh" -//#include "G4VersionedActionRequestCreator.hh" -//#include "G4RepresentationCreator.hh" - -//#include "G4ManifoldSurfaceShapeRepresentationCreator.hh" -//#include "G4CertificationCreator.hh" -//#include "G4ProductDefinitionRelationshipCreator.hh" -//#include "G4ProductDefinitionUsageCreator.hh" -//#include "G4AssemblyComponentUsageCreator.hh" -//#include "G4QuantifiedAssemblyComponentUsageCreator.hh" -//#include "G4SolidModelCreator.hh" - -//#include "G4FacetedBrepCreator.hh" -//#include "G4ActionDirectiveCreator.hh" -//#include "G4NamedUnitCreator.hh" -//#include "G4PlaneAngleUnitCreator.hh" -//#include "G4MeasureWithUnitCreator.hh" -//#include "G4AreaMeasureWithUnitCreator.hh" -//#include "G4EffectivityCreator.hh" -//#include "G4SerialNumberedEffectivityCreator.hh" -//#include "G4SurfaceCreator.hh" -//#include "G4OffsetSurfaceCreator.hh" -//#include "G4PlacementCreator.hh" - -//#include "G4ProductCategoryCreator.hh" -//#include "G4ProductRelatedProductCategoryCreator.hh" - -//#include "G4AddressCreator.hh" -//#include "G4OrganizationalAddressCreator.hh" - - -//#include "G4UniformSurfaceCreator.hh" -//#include "G4GeometricallyBoundedSurfaceShapeRepresentationCreator.hh" - -//#include "G4BoundedCurveCreator.hh" -//#include "G4BSplineCurveCreator.hh" -//#include "G4RationalBSplineCurveCreator.hh" -//#include "G4ActionRequestAssignmentCreator.hh" -//#include "G4TopologicalRepresentationItemCreator.hh" - -//#include "G4LengthMeasureWithUnitCreator.hh" -//#include "G4DatedEffectivityCreator.hh" - -//#include "G4NextAssemblyUsageOccurrenceCreator.hh" -//#include "G4EdgeCreator.hh" - -//#include "G4PersonCreator.hh" -//#include "G4DocumentCreator.hh" -//#include "G4DocumentWithClassCreator.hh" -//#include "G4ConversionBasedUnitCreator.hh" -//#include "G4ProductDefinitionFormationCreator.hh" -//#include "G4PersonAndOrganizationAssignmentCreator.hh" -//#include "G4CcDesignPersonAndOrganizationAssignmentCreator.hh" -//#include "G4OffsetCurve_3dCreator.hh" -//#include "G4ApprovalCreator.hh" -//#include "G4CompositeCurveCreator.hh" -//#include "G4CompositeCurveOnSurfaceCreator.hh" -//#include "G4BoundaryCurveCreator.hh" -//#include "G4RepresentationContextCreator.hh" - -//#include "G4ActionStatusCreator.hh" -//#include "G4ApplicationContextCreator.hh" -//#include "G4ChangeRequestCreator.hh" -//#include "G4DateAndTimeCreator.hh" -//#include "G4ApprovalDateTimeCreator.hh" -//#include "G4ApprovalRoleCreator.hh" -//#include "G4ApplicationContextElementCreator.hh" -//#include "G4ProductContextCreator.hh" -//#include "G4ElementarySurfaceCreator.hh" - -//#include "G4ApplicationProtocolDefinitionCreator.hh" -//#include "G4SpecifiedHigherUsageOccurrenceCreator.hh" -//#include "G4ProductDefinitionFormationWithSpecifiedSourceCreator.hh" -//#include "G4ActionRequestSolutionCreator.hh" -//#include "G4UncertaintyMeasureWithUnitCreator.hh" -//#include "G4EdgeBasedWireframeModelCreator.hh" -//#include "G4PathCreator.hh" - - -//#include "G4OrientedOpenShellCreator.hh" -//#include "G4SolidAngleUnitCreator.hh" -//#include "G4CoordinatedUniversalTimeOffsetCreator.hh" -//#include "G4CurveReplicaCreator.hh" -//#include "G4QuasiUniformSurfaceCreator.hh" -//#include "G4SurfaceCurveCreator.hh" -//#include "G4ActionRequestStatusCreator.hh" -//#include "G4CompositeCurveSegmentCreator.hh" -//#include "G4ReparametrisedCompositeCurveSegmentCreator.hh" - - -//#include "G4PersonAndOrganizationRoleCreator.hh" -//#include "G4QuasiUniformCurveCreator.hh" -//#include "G4SweptSurfaceCreator.hh" -//#include "G4PropertyDefinitionCreator.hh" -//#include "G4GlobalUncertaintyAssignedContextCreator.hh" -//#include "G4OrganizationRelationshipCreator.hh" - -//#include "G4RectangularCompositeSurfaceCreator.hh" -//#include "G4LotEffectivityCreator.hh" -//#include "G4SurfaceOfLinearExtrusionCreator.hh" -//#include "G4ShellBasedSurfaceModelCreator.hh" -//#include "G4UniformCurveCreator.hh" -//#include "G4BezierCurveCreator.hh" -//#include "G4LoopCreator.hh" -//#include "G4DateCreator.hh" -//#include "G4CalendarDateCreator.hh" - -//#include "G4PromissoryUsageOccurrenceCreator.hh" -//#include "G4ApprovalAssignmentCreator.hh" -//#include "G4ConfigurationItemCreator.hh" -//#include "G4ContractAssignmentCreator.hh" - -//#include "G4IntersectionCurveCreator.hh" -//#include "G4TrimmedCurveCreator.hh" -//#include "G4ProductDefinitionContextCreator.hh" - -//#include "G4ActionMethodCreator.hh" -//#include "G4ProductCategoryRelationshipCreator.hh" -//#include "G4PlaneAngleMeasureWithUnitCreator.hh" -//#include "G4VertexCreator.hh" -//#include "G4RepresentationMapCreator.hh" -//#include "G4ProductDefinitionEffectivityCreator.hh" -//#include "G4ConfigurationEffectivityCreator.hh" - -//#include "G4ContextDependentUnitCreator.hh" -//#include "G4AlternateProductRelationshipCreator.hh" -//#include "G4DocumentTypeCreator.hh" -//#include "G4DocumentReferenceCreator.hh" -//#include "G4MechanicalContextCreator.hh" -//#include "G4ShellBasedWireframeModelCreator.hh" -//#include "G4ContractCreator.hh" -//#include "G4DimensionalExponentsCreator.hh" -//#include "G4StartRequestCreator.hh" -//#include "G4CcDesignSpecificationReferenceCreator.hh" -//#include "G4SuppliedPartRelationshipCreator.hh" - -//#include "G4OrdinalDateCreator.hh" - -//#include "G4MassMeasureWithUnitCreator.hh" -//#include "G4BrepWithVoidsCreator.hh" -//#include "G4WeekOfYearAndDayDateCreator.hh" -//#include "G4ShellBasedWireframeShapeRepresentationCreator.hh" -//#include "G4FaceCreator.hh" - -//#include "G4OrientedFaceCreator.hh" -//#include "G4SurfaceOfRevolutionCreator.hh" - - -//#include "G4ProductCreator.hh" -//#include "G4ShapeAspectRelationshipCreator.hh" -//#include "G4RectangularTrimmedSurfaceCreator.hh" - -//#include "G4ActionAssignmentCreator.hh" -//#include "G4ChangeCreator.hh" - -//#include "G4PropertyDefinitionRepresentationCreator.hh" -//#include "G4GeometricSetCreator.hh" -//#include "G4GeometricCurveSetCreator.hh" -//#include "G4PersonalAddressCreator.hh" -//#include "G4DocumentRelationshipCreator.hh" -//#include "G4PcurveCreator.hh" -//#include "G4OuterBoundaryCurveCreator.hh" - -//#include "G4AssemblyComponentUsageSubstituteCreator.hh" -//#include "G4DegeneratePcurveCreator.hh" -//#include "G4EvaluatedDegeneratePcurveCreator.hh" -//#include "G4SolidAngleMeasureWithUnitCreator.hh" -//#include "G4ConnectedEdgeSetCreator.hh" -//#include "G4ActionCreator.hh" -//#include "G4ExecutedActionCreator.hh" -//#include "G4DirectedActionCreator.hh" -//#include "G4OrganizationalProjectCreator.hh" -//#include "G4DateTimeRoleCreator.hh" -//#include "G4CurveBoundedSurfaceCreator.hh" - -//#include "G4DesignMakeFromRelationshipCreator.hh" -//#include "G4DefinitionalRepresentationCreator.hh" - -//#include "G4SiUnitCreator.hh" -//#include "G4BezierSurfaceCreator.hh" -//#include "G4CertificationAssignmentCreator.hh" -//#include "G4StartWorkCreator.hh" -//#include "G4ContractTypeCreator.hh" - -//#include "G4CcDesignApprovalCreator.hh" -//#include "G4EdgeBasedWireframeShapeRepresentationCreator.hh" -//#include "G4GeometricallyBoundedWireframeShapeRepresentationCreator.hh" -//#include "G4ProductConceptCreator.hh" -//#include "G4CcDesignContractCreator.hh" -//#include "G4SeamCurveCreator.hh" - - -//#include "G4ConfigurationDesignCreator.hh" -//#include "G4DesignContextCreator.hh" -//#include "G4ProductDefinitionCreator.hh" -//#include "G4ProductDefinitionWithAssociatedDocumentsCreator.hh" -//#include "G4OrganizationCreator.hh" -//#include "G4CcDesignCertificationCreator.hh" - -//#include "G4CertificationTypeCreator.hh" -//#include "G4OrientedPathCreator.hh" -//#include "G4SecurityClassificationCreator.hh" -//#include "G4VertexLoopCreator.hh" -//#include "G4ApprovalStatusCreator.hh" -//#include "G4DateAndTimeAssignmentCreator.hh" -//#include "G4ParametricRepresentationContextCreator.hh" -//#include "G4ProductConceptContextCreator.hh" -//#include "G4CartesianTransformationOperator_2dCreator.hh" -//#include "G4SurfacePatchCreator.hh" -//#include "G4LengthUnitCreator.hh" -//#include "G4ShapeAspectCreator.hh" -//#include "G4VolumeMeasureWithUnitCreator.hh" - -//#include "G4SecurityClassificationLevelCreator.hh" -//#include "G4ApprovalRelationshipCreator.hh" -//#include "G4PolylineCreator.hh" -//#include "G4ApprovalPersonOrganizationCreator.hh" -//#include "G4SurfaceReplicaCreator.hh" -//#include "G4SecurityClassificationAssignmentCreator.hh" -//#include "G4CcDesignSecurityClassificationCreator.hh" -//#include "G4FacetedBrepShapeRepresentationCreator.hh" -//#include "G4DocumentUsageConstraintCreator.hh" -//#include "G4CcDesignDateAndTimeAssignmentCreator.hh" -//#include "G4OrientedClosedShellCreator.hh" -//#include "G4PersonAndOrganizationCreator.hh" - -//#include "G4LocalTimeCreator.hh" -//#include "G4MassUnitCreator.hh" -//#include "G4VertexShellCreator.hh" -//#include "G4PolyLoopCreator.hh" -//#include "G4WireShellCreator.hh" -//#include "G4AreaUnitCreator.hh" -//#include "G4MappedItemCreator.hh" -//#include "G4OffsetCurve_2dCreator.hh" - -//#include "G4VolumeUnitCreator.hh" - -//#include "G4GlobalUnitAssignedContextCreator.hh" -//#include "G4CharacterizedDefinitionCreator.hh" -//#include "G4CharacterizedDefinitionsCreator.hh" -//#include "G4ChangeRequestItemCreator.hh" -//#include "G4ChangeRequestItemsCreator.hh" -//#include "G4CharacterizedProductDefinitionCreator.hh" -//#include "G4CharacterizedProductDefinitionsCreator.hh" -//#include "G4ReversibleTopologyItemCreator.hh" -//#include "G4ReversibleTopologyItemsCreator.hh" -//#include "G4SpecifiedItemCreator.hh" -//#include "G4SpecifiedItemsCreator.hh" -//#include "G4MeasureValueCreator.hh" -//#include "G4MeasureValuesCreator.hh" -//#include "G4PersonOrganizationSelectCreator.hh" -//#include "G4PersonOrganizationSelectsCreator.hh" -//#include "G4PcurveOrSurfaceCreator.hh" -//#include "G4PcurveOrSurfacesCreator.hh" -//#include "G4ClassifiedItemCreator.hh" -//#include "G4ClassifiedItemsCreator.hh" -//#include "G4VectorOrDirectionCreator.hh" -//#include "G4VectorOrDirectionsCreator.hh" -//#include "G4WireframeModelCreator.hh" -//#include "G4WireframeModelsCreator.hh" -//#include "G4GeometricSetSelectCreator.hh" -//#include "G4GeometricSetSelectsCreator.hh" -//#include "G4StartRequestItemCreator.hh" -//#include "G4StartRequestItemsCreator.hh" -//#include "G4PersonOrganizationItemCreator.hh" -//#include "G4PersonOrganizationItemsCreator.hh" -//#include "G4DateTimeItemCreator.hh" -//#include "G4DateTimeItemsCreator.hh" -//#include "G4ShellCreator.hh" -//#include "G4ShellsCreator.hh" -//#include "G4TransformationCreator.hh" -//#include "G4TransformationsCreator.hh" -//#include "G4BooleanOperandCreator.hh" -//#include "G4BooleanOperandsCreator.hh" -//#include "G4CertifiedItemCreator.hh" -//#include "G4CertifiedItemsCreator.hh" -//#include "G4DateTimeSelectCreator.hh" -//#include "G4DateTimeSelectsCreator.hh" -//#include "G4CurveOnSurfaceCreator.hh" -//#include "G4CurveOnSurfacesCreator.hh" -//#include "G4TrimmingSelectCreator.hh" -//#include "G4TrimmingSelectsCreator.hh" -//#include "G4ContractedItemCreator.hh" -//#include "G4ContractedItemsCreator.hh" -//#include "G4UnitCreator.hh" -//#include "G4UnitsCreator.hh" -//#include "G4ReversibleTopologyCreator.hh" -//#include "G4ReversibleTopologysCreator.hh" -//#include "G4WorkItemCreator.hh" -//#include "G4WorkItemsCreator.hh" -//#include "G4ShapeDefinitionCreator.hh" -//#include "G4ShapeDefinitionsCreator.hh" -//#include "G4SupportedItemCreator.hh" -//#include "G4SupportedItemsCreator.hh" -//#include "G4ApprovedItemCreator.hh" -//#include "G4ApprovedItemsCreator.hh" -//#include "G4SurfaceModelCreator.hh" -//#include "G4SurfaceModelsCreator.hh" diff --git a/source/geometry/solids/STEPinterface/src/G4AdvancedBrepShapeRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4AdvancedBrepShapeRepresentationCreator.cc deleted file mode 100644 index 38b93f103b..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4AdvancedBrepShapeRepresentationCreator.cc +++ /dev/null @@ -1,138 +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: G4AdvancedBrepShapeRepresentationCreator.cc,v 1.8 2003/03/28 15:47:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4AdvancedBrepShapeRepresentationCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include - -#include "G4AdvancedBrepShapeRepresentationCreator.hh" -#include "G4GeometryTable.hh" - -G4AdvancedBrepShapeRepresentationCreator - G4AdvancedBrepShapeRepresentationCreator::csc; - - -G4AdvancedBrepShapeRepresentationCreator:: - G4AdvancedBrepShapeRepresentationCreator() -{ - G4GeometryTable::RegisterObject(this); -} - - -G4AdvancedBrepShapeRepresentationCreator:: - ~G4AdvancedBrepShapeRepresentationCreator(){} - -G4AdvancedBrepShapeRepresentationCreator -G4AdvancedBrepShapeRepresentationCreator::GetInstance() -{ - return csc; -} - -void G4AdvancedBrepShapeRepresentationCreator::CreateG4Geometry(STEPentity& sEnt) -{ - G4String attrName("items"); - STEPattribute *Attr = GetNamedAttribute(attrName, sEnt); - EntityAggregate *ea = (EntityAggregate*)Attr->ptr.a; - - // Get parts of this shape - G4int partCount = ea->EntryCount(); - EntityNode* en = (EntityNode*)ea->GetHead(); - - // An Advaced_BREP_Shape_Representation is made of - // 0 or 1 G4Axis2Placement3D and - // 1 or more Manifold_Solid_BREP - - G4int placement = 0, nbofsolids = 0; - G4PlacedSolidVector* placedSldV = new G4PlacedSolidVector(); - G4PlacedSolid* placedSld; - G4BREPSolid* sld; - STEPentity* ent; - G4Axis2Placement3D* place = 0; - - // default place - G4Axis2Placement3D* place0 = new (G4Axis2Placement3D)( G4Vector3D(1, 0, 0), - G4Vector3D(0, 1, 0), - G4Point3D(0, 0, 0) ); - - - for(G4int a = 0; a < partCount; a++) - { - ent = en->node; - void *tmp = G4GeometryTable::CreateObject(*ent); - - if (tmp) - { - if( !strcmp(ent->EntityName(), "Axis2_Placement_3d") ) - { - // Get placement - place = (G4Axis2Placement3D*)tmp; - placement = 1; - } - else - if( !strcmp(ent->EntityName(), "Manifold_Solid_Brep") ) - { - // Get solid - sld = (G4BREPSolid*)tmp; - nbofsolids++; - - G4int id = ent->GetFileId(); - sld->SetId(id); - - // Create the placed solid - if(placement) - placedSld = new G4PlacedSolid(sld, place); - else - placedSld = new G4PlacedSolid(sld, place0); - - placedSldV->push_back(placedSld); - } - } - else - G4cerr << "WARNING - G4AdvancedBrepShapeRepresentationCreator::CreateG4Geometry" << G4endl - << "\tEntity part for " << ent->EntityName() << " NOT found." << G4endl; - - en = (EntityNode*)en->NextNode(); - } - - // Get geometric_representation_context, but it is not used - attrName = "context_of_items"; - Attr = GetNamedAttribute(attrName, sEnt); - - createdObject = placedSldV; -} - - -void G4AdvancedBrepShapeRepresentationCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4AdvancedFaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4AdvancedFaceCreator.cc deleted file mode 100644 index 833530de5f..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4AdvancedFaceCreator.cc +++ /dev/null @@ -1,127 +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: G4AdvancedFaceCreator.cc,v 1.7 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4AdvancedFaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4AdvancedFaceCreator.hh" -#include "G4GeometryTable.hh" -#include "G4CurveVector.hh" -#include "G4CompositeCurve.hh" -#include "G4Surface.hh" - -G4AdvancedFaceCreator G4AdvancedFaceCreator::csc; - -G4AdvancedFaceCreator::G4AdvancedFaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4AdvancedFaceCreator::~G4AdvancedFaceCreator(){} - -G4AdvancedFaceCreator G4AdvancedFaceCreator::GetInstance() -{ - return csc; -} - -void G4AdvancedFaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Surface* srf=0; - G4int sense; - - STEPentity* TmpEnt=0; - G4String attrName("bounds"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - STEPaggregate *Aggr = Attr->ptr.a; - SingleLinkNode *Node = Aggr->GetHead(); - - G4int boundaryCount = Aggr->EntryCount(); - G4CurveVector* boundaryVec = new G4CurveVector; - void *tmp; - - for(G4int a=0; anode; - tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) - { - G4CompositeCurve* pcc= new G4CompositeCurve; - pcc->Init(*((G4CurveVector*)tmp)); - boundaryVec->push_back(pcc); - } - Node = Node->NextNode(); - } - - G4int boundNum = boundaryVec->size(); - if (boundNum != boundaryCount) - G4cerr << "WARNING - G4AdvancedFaceCreator::CreateG4Geometry" << G4endl - << "\tTotal of " << boundNum << " G4CompositeCurve components created, out of " - << boundaryCount << " expected !" << G4endl; - - attrName = "face_geometry"; - Attr = GetNamedAttribute(attrName, Ent); - - TmpEnt = *Attr->ptr.c; - tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) - { - srf = (G4Surface*)tmp; - - Attr = Ent.NextAttribute(); - // if(*Attr->ptr.b) // BINARY_TYPE - // sense = 1; - // else - // sense = 0; - - // Utilize the INTEGER_TYPE attribute which is 0 or 1 - sense = *Attr->ptr.i; - - // L. Broglia - srf->SetSameSense(sense); - - // Now, re-calculate the normal of the plane - srf->CalcNormal(); - - srf->SetBoundaries(boundaryVec); - } - else - G4cerr << "WARNING - G4AdvancedFaceCreator::CreateG4Geometry" << G4endl - << "\tNULL pointer to G4Surface. Advanced Face NOT instantiated." - << G4endl; - - createdObject= srf; -} - -void G4AdvancedFaceCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4AssemblyCreator.cc b/source/geometry/solids/STEPinterface/src/G4AssemblyCreator.cc deleted file mode 100644 index a73f3b5b48..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4AssemblyCreator.cc +++ /dev/null @@ -1,259 +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: G4AssemblyCreator.cc,v 1.12 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4AssemblyCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4AssemblyCreator.hh" -#include "G4Assembly.hh" - -#include "G4GeometryTable.hh" -#include "G4StepFileReader.hh" -#include "G4NISTStepReader.hh" -#include "G4ToroidalSurface.hh" - -extern void HeaderSchemaInit (Registry & reg); - -G4AssemblyCreator G4AssemblyCreator::ci; - -G4AssemblyCreator::G4AssemblyCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4AssemblyCreator G4AssemblyCreator::GetInstance() -{ - return ci; -} - -G4AssemblyCreator::G4AssemblyCreator(const G4AssemblyCreator& c) - : G4GeometryCreator() -{ - index = c.index; - StepReader = c.StepReader; - STEPfileName = c.STEPfileName; -} - -G4AssemblyCreator& G4AssemblyCreator::operator=(const G4AssemblyCreator& c) -{ - if (&c == this) return *this; - - index = c.index; - StepReader = c.StepReader; - STEPfileName = c.STEPfileName; - - return *this; -} - -G4AssemblyCreator::G4AssemblyCreator(const G4String& fileName, - const G4String& readerName) -{ - // Name of STEP file to read in, existance of file should be checked... - // - STEPfileName = fileName; - - // define type of STEP file reader to use (use else...) - // - if (readerName == "NIST") StepReader = new G4NISTStepReader(); - -} - -G4AssemblyCreator::~G4AssemblyCreator() -{ - delete StepReader; -} - - -void G4AssemblyCreator::ReadStepFile() -{ - StepReader->ReadSTEPFile(STEPfileName); - instanceManager = StepReader->GetInstanceManager(); -} - -void G4AssemblyCreator::CreateG4Geometry(STEPentity&) -{ - G4cout << G4endl - << "Creating assembly of G4 solids ..." << G4endl; - - // Advanced_Brep_Shape_Representation are created into - // Context_Dependent_Shape_Representation and - // Shape_Definition_Representation - // G4int AdvancedBrepShapes = instanceManager.EntityKeywordCount - // ("Advanced_Brep_Shape_Representation"); - - - G4int ConDepShapes = instanceManager.EntityKeywordCount - ("Context_Dependent_Shape_Representation"); - - G4int ShapeDefReps = instanceManager.EntityKeywordCount - ("Shape_Definition_Representation"); - - // G4int instanceCount = instanceManager.InstanceCount(); - - STEPentity* ent=0; - index = 0; - int tmpindex = 0; - - void *tmp = 0; - G4PlacedSolidVector* psv = new G4PlacedSolidVector(); - G4PlacedSolid* ps = new G4PlacedSolid(); - G4int a; - - // L. Broglia - if(ConDepShapes>0) - { - index = 0; - const char* keyw = "Context_Dependent_Shape_Representation"; - -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << "\n\n Creating the " << keyw << G4endl; -#endif - - for( a=0; a< ConDepShapes; a++) - { -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << "loop " << a+1 << " of " << ConDepShapes << G4endl; -#endif - - ent = instanceManager.GetApplication_instance(keyw, index); - - if(ent!= ENTITY_NULL) - { - // Be careful, tmpindex not correspond to STEPfile_id ! - tmpindex = instanceManager.GetIndex(ent); - - tmp = G4GeometryTable::CreateObject(*ent); - if (!tmp) - { - G4cerr << "--- GeometryTable::CreateG4Geometry()" << G4endl; - G4cerr << " No correspondent G4 geometry created for entity: " - << ent->EntityName() << G4endl; - } - else - { - G4PlacedSolidVector* tmpV = (G4PlacedSolidVector*)tmp; - G4int entr = tmpV->size(); - - for(G4int b=0; bpush_back(ps); - } - } - - index = ent->STEPfile_id ; - -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << keyw << " found in index " << index << G4endl; -#endif - - } - // Set index to the true value - index = tmpindex + 1; - ent=0; - } - - } - else if (ShapeDefReps>0) - { - - const char* key = "Shape_Definition_Representation"; - -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << "\n Creating the " << key << G4endl; -#endif - - for(a=0; a< ShapeDefReps ; a++) - { -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << "loop " << a+1 << " of " << ShapeDefReps << G4endl; -#endif - - ent = instanceManager.GetApplication_instance(key, index); - - if(ent!= ENTITY_NULL) - { - // Be careful, tmpindex not correspond to STEPfile_id ! - tmpindex = instanceManager.GetIndex(ent); - - tmp = G4GeometryTable::CreateObject(*ent); - if (!tmp) - { - G4cerr << "--- GeometryTable::CreateG4Geometry()" << G4endl; - G4cerr << " No correspondent G4 geometry created for entity: " - << ent->EntityName() << G4endl; - } - else - { - G4PlacedSolidVector* tmpV = (G4PlacedSolidVector*)tmp; - G4int entr = tmpV->size(); - - for(G4int b=0; bpush_back(ps); - } - } - index = ent->STEPfile_id ; - -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << key << " found in index "<< index << G4endl; -#endif - - } - - // Set index to the true value - index = tmpindex + 1; - ent=0; - } - } - - createdObject = psv; -} - - -void G4AssemblyCreator::CreateSTEPGeometry(void* G4obj) -{ - Registry reg(&::HeaderSchemaInit); - SdaiCONFIG_CONTROL_DESIGNInit (reg); - - // G4Placement* plc = (G4Placement*)G4obj; - // G4String name("Axis2Placement3d"); - // G4FCylindricalSurface *fCyl = (G4FCylindricalSurface *)G4obj; - // G4String name("Cylindrical_Surface"); - // G4ToroidalSurface *tor = (G4ToroidalSurface *)G4obj; - G4String name("Toroidal_Surface"); - - G4GeometryTable::CreateSTEPObject(G4obj, name); - -} diff --git a/source/geometry/solids/STEPinterface/src/G4Axis2Placement3dCreator.cc b/source/geometry/solids/STEPinterface/src/G4Axis2Placement3dCreator.cc deleted file mode 100644 index e9ef5be29a..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4Axis2Placement3dCreator.cc +++ /dev/null @@ -1,140 +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: G4Axis2Placement3dCreator.cc,v 1.7 2002/11/21 16:49:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4Axis2Placement3dCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4Axis2Placement3dCreator.hh" -#include "G4GeometryTable.hh" - -G4Axis2Placement3dCreator G4Axis2Placement3dCreator::csc; - -G4Axis2Placement3dCreator::G4Axis2Placement3dCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4Axis2Placement3dCreator::~G4Axis2Placement3dCreator() {} - -G4Axis2Placement3dCreator G4Axis2Placement3dCreator::GetInstance() -{ - return csc; -} - -void G4Axis2Placement3dCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Axis2Placement3D place; - G4Vector3D dir; - G4Vector3D axis; - G4Point3D srfPoint; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - if(Attr->NonRefType() != ENTITY_TYPE) Attr = Ent.NextAttribute(); - - // Get point on surface - STEPentity* TmpEnt = *Attr->ptr.c; - void * tmp = G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) - srfPoint = *(G4Point3D*)tmp; - else - G4cerr << "WARNING - G4Axis2Placement3dCreator::CreateG4Geometry" << G4endl - << "\tPoint on surface (G4Point3D) NULL !" << G4endl - << "\tThis will result as an incorrect placement." << G4endl; - - // Get axis - Attr = Ent.NextAttribute(); - TmpEnt = *Attr->ptr.c; - tmp = G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) - axis = *(G4Vector3D*)tmp; - else - G4cerr << "WARNING - G4Axis2Placement3dCreator::CreateG4Geometry" << G4endl - << "\tPlacement axis (G4Vector3D) NULL !" << G4endl - << "\tThis will result as an incorrect placement." << G4endl; - - // Get direction - Attr = Ent.NextAttribute(); - TmpEnt = *Attr->ptr.c; - if (Attr->is_null()) // No direction specified! Set it to (0,0,0) and warn. - { - tmp = 0; - dir = G4Vector3D(0.,0.,0.); - } - else - tmp = G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) - dir = *(G4Vector3D*)tmp; - else - G4cerr << "WARNING - G4Axis2Placement3dCreator::CreateG4Geometry" << G4endl - << "\tPlacement direction (G4Vector3D) NULL !" << G4endl - << "\tThis will result as an incorrect placement." << G4endl; - - createdObject = new G4Axis2Placement3D(dir, axis, srfPoint); -} - - -void G4Axis2Placement3dCreator::CreateSTEPGeometry(void* G4obj) -{ - G4Axis2Placement3D *plc = (G4Axis2Placement3D*)G4obj; - - SdaiAxis2_placement_3d *place = new SdaiAxis2_placement_3d(); - - G4Vector3D axis = plc->GetAxis(); - G4Vector3D dir = plc->GetRefDirection(); - G4Point3D pt = plc->GetLocation(); - - G4String pointName("Cartesian_Point"); - G4String directionName("Direction"); - - // Get location - void * tmp =G4GeometryTable::CreateSTEPObject(&pt, pointName); - place->location_((SdaiCartesian_point*)tmp); - - // Get axis - tmp = G4GeometryTable::CreateSTEPObject(&axis, directionName); - place->axis_((SdaiDirection*)tmp); - - // Get dir - tmp = G4GeometryTable::CreateSTEPObject(&dir, directionName); - place->ref_direction_((SdaiDirection*)tmp); - - // Set STEP info - place->SetFileId(GetNextId()); - place->name_(""); - - // Write out object & subobjects - place->STEPwrite(G4cout); - - createdObject = place; -} diff --git a/source/geometry/solids/STEPinterface/src/G4Axis2PlacementCreator.cc b/source/geometry/solids/STEPinterface/src/G4Axis2PlacementCreator.cc deleted file mode 100644 index f26a7d094a..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4Axis2PlacementCreator.cc +++ /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. * -// ******************************************************************** -// -// -// $Id: G4Axis2PlacementCreator.cc,v 1.5 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4Axis2PlacementCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4Axis2PlacementCreator.hh" -#include "G4GeometryTable.hh" - -G4Axis2PlacementCreator G4Axis2PlacementCreator::csc; - -G4Axis2PlacementCreator::G4Axis2PlacementCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4Axis2PlacementCreator::~G4Axis2PlacementCreator() {} - -G4Axis2PlacementCreator G4Axis2PlacementCreator::GetInstance() -{ - return csc; -} - -void G4Axis2PlacementCreator::CreateG4Geometry(STEPentity&) -{ -} - -void G4Axis2PlacementCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4Axis2PlacementsCreator.cc b/source/geometry/solids/STEPinterface/src/G4Axis2PlacementsCreator.cc deleted file mode 100644 index beec933ad7..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4Axis2PlacementsCreator.cc +++ /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: G4Axis2PlacementsCreator.cc,v 1.6 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4Axis2PlacementsCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4Axis2PlacementsCreator.hh" -#include "G4GeometryTable.hh" - -G4Axis2PlacementsCreator G4Axis2PlacementsCreator::csc; - -G4Axis2PlacementsCreator::G4Axis2PlacementsCreator() -{ - // G4cerr << " G4Axis2PlacementsCreator default constructor " - // << " calling G4GeometryTable::RegisterObject(this) " << G4endl; - G4GeometryTable::RegisterObject(this); -} - -G4Axis2PlacementsCreator::~G4Axis2PlacementsCreator() {} - -G4Axis2PlacementsCreator G4Axis2PlacementsCreator::GetInstance() -{ - return csc; -} - -void G4Axis2PlacementsCreator::CreateG4Geometry(STEPentity&) -{ -} - -void G4Axis2PlacementsCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4BSplineCurveWithKnotsCreator.cc b/source/geometry/solids/STEPinterface/src/G4BSplineCurveWithKnotsCreator.cc deleted file mode 100644 index add13877ce..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4BSplineCurveWithKnotsCreator.cc +++ /dev/null @@ -1,242 +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: G4BSplineCurveWithKnotsCreator.cc,v 1.10 2003/06/16 16:53:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4BSplineCurveWithKnotsCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include -#include -#include "G4BSplineCurveWithKnotsCreator.hh" -#include "G4GeometryTable.hh" -#include "G4BSplineCurve.hh" - -G4BSplineCurveWithKnotsCreator G4BSplineCurveWithKnotsCreator::csc; - - -G4BSplineCurveWithKnotsCreator::G4BSplineCurveWithKnotsCreator() -{ - G4GeometryTable::RegisterObject(this); -} - - -G4BSplineCurveWithKnotsCreator::~G4BSplineCurveWithKnotsCreator() {} - - -G4BSplineCurveWithKnotsCreator G4BSplineCurveWithKnotsCreator::GetInstance() -{ - return csc; -} - - -void G4BSplineCurveWithKnotsCreator::CreateG4Geometry(STEPentity& Ent) -{ - // Created by L. Broglia - - G4int degree; - G4Point3DVector controlPointsList; - std::vector knots; - std::vector weightsData; - G4BSplineCurve* bSpline = new G4BSplineCurve(); - - // degree - G4String attrName("degree"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - degree = *Attr->ptr.i; - - - // controlPointsList - attrName = "control_points_list"; - Attr = GetNamedAttribute(attrName, Ent); - - // Loop to find the entities - // Fill points - // Temporary solution until the STEP toolkit has been updated: - char c = ' '; - STEPaggregate *Aggr = Attr->ptr.a; - char tmp[16]; - SCLstring s; - const char *Str = Aggr->asStr(s); - G4int Count=0; - G4int nbpoint = 0; - STEPentity *Entity; - G4int stringlength = strlen(Str); - - while(c != ')') - { - while(c != '#') - { - c = Str[Count]; - Count++; - - if(Count>stringlength) - { - G4cout << "\nString index overflow in G4ControlPoints:116"; - exit(0); - } - } - - c = Str[Count]; - int Index=0; - - while(c != ',' && c != ')') - { - tmp[Index]=c; - Index++; - Count++; - c = Str[Count]; - } - - tmp[Index]='\0'; - //c = ' '; - Index = atoi(tmp); - - MgrNode* MgrTmp = instanceManager.FindFileId(Index); - Index = instanceManager.GetIndex(MgrTmp); -// Entity = instanceManager.GetSTEPentity(Index); - Entity = instanceManager.GetApplication_instance(Index); - - void *tmp =G4GeometryTable::CreateObject(*Entity); - if (!tmp) - { - G4cerr << "ERROR - G4BSplineCurveWithKnotsCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL control point!" << G4endl; - G4Exception("G4BSplineCurveWithKnotsCreator: NULL G4Point3D* ?"); - } - G4Point3D* pt = (G4Point3D*) tmp; - G4Point3D Pt(pt->x(), pt->y(), pt->z()); - - if(G4int(controlPointsList.size()) <= nbpoint+1) - controlPointsList.resize(nbpoint+1); - - controlPointsList[nbpoint] = Pt; - - nbpoint++; - } - - - // weightsData - attrName = "knot_multiplicities"; - Attr = GetNamedAttribute(attrName, Ent); - c = ' '; - Aggr = Attr->ptr.a; - Str = Aggr->asStr(s); - nbpoint = 0; - Count = 0; - - while(c != ')') - { - Count++; - while(c == '(') - { - c = Str[Count]; - Count++; - } - - int Index=0; - c = Str[Count]; - - while( c != ',' && c != ')' ) - { - tmp[Index]=c; - Index++; - Count++; - c = Str[Count]; - } - - tmp[Index]='\0'; - - // L. Broglia : I am not sure of the function "atoi" - G4double weight = atoi(tmp); - if (weight <= 0) - weight = 1; - - if(G4int(weightsData.size()) <= nbpoint+1) - weightsData.resize(nbpoint+1); - - weightsData[nbpoint] = weight; - nbpoint++; - } - - - // knots - attrName = "knots"; - Attr = GetNamedAttribute(attrName, Ent); - c = ' '; - Aggr = Attr->ptr.a; - Str = Aggr->asStr(s); - nbpoint = 0; - Count = 0; - - while(c != ')') - { - Count++; - - while(c == '(') - { - c = Str[Count]; - Count++; - } - - int Index=0; - c = Str[Count]; - - while(c != ',' && c != ')') - { - tmp[Index]=c; - Index++; - Count++; - c = Str[Count]; - } - - tmp[Index]='\0'; - - // L. Broglia : I am not sure of the function "atoi" - G4double knot = atoi(tmp); - if (knot <= 0) - knot = 1; - - if(G4int(knots.size()) <= nbpoint+1) - knots.resize(nbpoint+1); - - knots[nbpoint] = knot; - nbpoint++; - } - - bSpline->Init(degree, &controlPointsList, &knots, &weightsData); - - createdObject = bSpline; -} - -void G4BSplineCurveWithKnotsCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceCreator.cc deleted file mode 100644 index 8def58c047..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceCreator.cc +++ /dev/null @@ -1,144 +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: G4BSplineSurfaceCreator.cc,v 1.7 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4BSplineSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include -#include "G4BSplineSurfaceCreator.hh" -#include "G4GeometryTable.hh" -#include "G4ControlPoints.hh" - -G4BSplineSurfaceCreator G4BSplineSurfaceCreator::csc; - -G4BSplineSurfaceCreator::G4BSplineSurfaceCreator(){G4GeometryTable::RegisterObject(this);} - -G4BSplineSurfaceCreator::~G4BSplineSurfaceCreator(){} - -G4BSplineSurfaceCreator G4BSplineSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4BSplineSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - SdaiB_spline_surface* bSpline = new SdaiB_spline_surface(&Ent); - G4int u,v; - G4String attrName("u_degree"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - u = *Attr->ptr.i; - bSpline->u_degree_(*Attr->ptr.i); - attrName = "v_degree"; - Attr = GetNamedAttribute(attrName, Ent); - v=*Attr->ptr.i; - bSpline->v_degree_(*Attr->ptr.i); - - attrName = "control_points_list"; - Attr = GetNamedAttribute(attrName, Ent); - STEPaggregate *Aggr = Attr->ptr.a; - GenericAggregate* gAggr = (GenericAggregate*)Attr->ptr.a; - bSpline->control_points_list_(gAggr); - - // Get control points - - G4int cols,rows; - cols = v+1; - rows = u+1; - - STEPentity *Entity; - char tmp[16]; - SCLstring s; - const char *Str = Aggr->asStr(s); - - G4int stringlength = strlen(Str); - G4ControlPoints controlPoints(4,rows, cols); - RealAggregate rationalAggr; - for(G4int a=0;astringlength) - { - G4cout << "\nString index overflow in G4ControlPoints:116"; - exit(0); - } - } - - c = Str[Count]; - G4int Index=0; - - while(c != ',' && c != ')') - { - tmp[Index]=c; - Index++; - Count++; - c = Str[Count]; - } - tmp[Index]='\0'; - Index = atoi(tmp); - //delete [] tmp; - //Entity = InstanceList.GetSTEPentity(Index); - MgrNode* MgrTmp = instanceManager.FindFileId(Index); - Index = instanceManager.GetIndex(MgrTmp); -// Entity = instanceManager.GetSTEPentity(Index); - Entity = instanceManager.GetApplication_instance(Index); - void *tmp =G4GeometryTable::CreateObject(*Entity); - if (tmp) - controlPoints.put(a,b,*(G4PointRat*)tmp); - else - G4cerr << "WARNING - G4BSplineSurfaceCreator::CreateG4Geometry" << G4endl - << "\tNULL control point (G4PointRat) detected." << G4endl; - } - - createdObject = bSpline; -} - -void G4BSplineSurfaceCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceWithKnotsCreator.cc b/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceWithKnotsCreator.cc deleted file mode 100644 index c1f7086f4f..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4BSplineSurfaceWithKnotsCreator.cc +++ /dev/null @@ -1,276 +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: G4BSplineSurfaceWithKnotsCreator.cc,v 1.7 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4BSplineSurfaceWithKnotsCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include - -#include "G4BSplineSurfaceWithKnotsCreator.hh" -#include "G4GeometryTable.hh" -#include "G4ControlPoints.hh" -#include "G4KnotVector.hh" -#include "G4BSplineSurface.hh" - -G4BSplineSurfaceWithKnotsCreator G4BSplineSurfaceWithKnotsCreator::csc; - -G4BSplineSurfaceWithKnotsCreator::G4BSplineSurfaceWithKnotsCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4BSplineSurfaceWithKnotsCreator::~G4BSplineSurfaceWithKnotsCreator() {} - -G4BSplineSurfaceWithKnotsCreator G4BSplineSurfaceWithKnotsCreator::GetInstance() -{ - return csc; -} - -void G4BSplineSurfaceWithKnotsCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4int rows=0, cols=0; - G4KnotVector* uKnots=0; - G4KnotVector* vKnots=0; - G4ControlPoints* controlPoints=0; - - SdaiB_spline_surface_with_knots bSpline(&Ent); - // U dir - G4String attrName("u_multiplicities"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - bSpline.u_multiplicities_((IntAggregate*)Attr->ptr.a); - STEPaggregate *multAggr = Attr->ptr.a; - G4int uMultCount = multAggr->EntryCount(); - - attrName = "u_knots"; - Attr = GetNamedAttribute(attrName, Ent); - - STEPaggregate *knotAggr = Attr->ptr.a; - G4int uKnotCount = knotAggr->EntryCount(); - - G4int totalUKnotCount = 0; - IntNode* multiNode = (IntNode*)multAggr->GetHead(); - - G4int a; - for(a=0;avalue; - multiNode = (IntNode*)multiNode->NextNode(); - } - - uKnots = new G4KnotVector(totalUKnotCount); - - RealNode* knotNode = (RealNode*)knotAggr->GetHead(); - multiNode = (IntNode*)multAggr->GetHead(); - - bSpline.u_knots_((RealAggregate*)knotAggr); - - G4int multValue=0; - G4double knotValue=0; - G4int index=0; - for(a=0;avalue; - knotValue = knotNode->value; - - for(G4int b=0;bPutKnot(index, knotValue); - index++; - } - knotNode = (RealNode*)knotNode->NextNode(); - } - - - // V dir - attrName = "v_multiplicities"; - Attr = GetNamedAttribute(attrName, Ent); - multAggr = Attr->ptr.a; - bSpline.v_multiplicities_((IntAggregate*)Attr->ptr.a); - G4int vMultCount = multAggr->EntryCount(); - - attrName = "v_knots"; - Attr = GetNamedAttribute(attrName, Ent); - knotAggr = Attr->ptr.a; - bSpline.v_knots_((RealAggregate*)knotAggr); - // G4int vKnotCount = knotAggr->EntryCount(); - - G4int totalVKnotCount = 0; - multiNode = (IntNode*)multAggr->GetHead(); - - for(a=0;avalue; - multiNode = (IntNode*)multiNode->NextNode(); - } - vKnots = new G4KnotVector(totalVKnotCount); - - knotNode = (RealNode*)knotAggr->GetHead(); - multiNode = (IntNode*)multAggr->GetHead(); - - multValue=0; - knotValue=0; - index=0; - - for(a=0;avalue; - knotValue = knotNode->value; - - for(G4int b=0;bPutKnot(index, knotValue); - index++; - } - knotNode = (RealNode*)knotNode->NextNode(); - } - - // b_spline base parts - - G4int u=0,v=0; - attrName = "u_degree"; - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - u = *Attr->ptr.i; - bSpline.u_degree_(*Attr->ptr.i); - } - else - G4cerr << "WARNING - G4BSplineSurfaceWithKnotsCreator::CreateG4Geometry" << G4endl - << "\tSurface attribute u_degree not valid." << G4endl; - - attrName = "v_degree"; - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - v=*Attr->ptr.i; - bSpline.v_degree_(*Attr->ptr.i); - } - else - G4cerr << "WARNING - G4BSplineSurfaceWithKnotsCreator::CreateG4Geometry" << G4endl - << "\tSurface attribute v_degree not valid." << G4endl; - - attrName = "control_points_list"; - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - STEPaggregate *Aggr = Attr->ptr.a; - GenericAggregate* gAggr = (GenericAggregate*)Attr->ptr.a; - bSpline.control_points_list_(gAggr); - // Get control points - - G4int cols,rows; - cols = v+1; - rows = u+1; - - STEPentity *Entity; - char tmp[16]; - SCLstring s; - const char *Str = Aggr->asStr(s); - - G4int stringlength = strlen(Str); - controlPoints = new G4ControlPoints(4,rows, cols); - RealAggregate rationalAggr; - for(G4int a=0;astringlength) - { - G4cout << "\nString index overflow in G4ControlPoints:116"; - exit(0); - } - } - - c = Str[Count]; - G4int Index=0; - - while(c != ',' && c != ')') - { - tmp[Index]=c; - Index++; - Count++; - c = Str[Count]; - } - tmp[Index]='\0'; - Index = atoi(tmp); - //delete [] tmp; - //Entity = InstanceList.GetSTEPentity(Index); - MgrNode* MgrTmp = instanceManager.FindFileId(Index); - Index = instanceManager.GetIndex(MgrTmp); -// Entity = instanceManager.GetSTEPentity(Index); - Entity = instanceManager.GetApplication_instance(Index); - void *tmp =G4GeometryTable::CreateObject(*Entity); - if (tmp) - controlPoints->put(a,b,*(G4PointRat*)tmp); - else - G4cerr << "WARNING - G4BSplineSurfaceWithKnotsCreator::CreateG4Geometry" << G4endl - << "\tNULL control point (G4PointRat) detected." << G4endl; - } - } - else - G4cerr << "WARNING - G4BSplineSurfaceWithKnotsCreator::CreateG4Geometry" << G4endl - << "\tSurface attribute control_points_list not valid." << G4endl; - - if (uKnots && vKnots && controlPoints) - { - createdObject = new G4BSplineSurface(rows, cols, *uKnots, *vKnots, *controlPoints); - delete uKnots; - delete vKnots; - delete controlPoints; - } - else - { - createdObject = 0; - G4cerr << "\tG4BSplineSurface not created !" << G4endl; - } -} - -void G4BSplineSurfaceWithKnotsCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4BoundedSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4BoundedSurfaceCreator.cc deleted file mode 100644 index 8b35764279..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4BoundedSurfaceCreator.cc +++ /dev/null @@ -1,311 +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: G4BoundedSurfaceCreator.cc,v 1.8 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4BoundedSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include -#include - -#include "G4BoundedSurfaceCreator.hh" -#include "G4GeometryTable.hh" -#include "G4ControlPoints.hh" -#include "G4BSplineSurface.hh" - -G4BoundedSurfaceCreator G4BoundedSurfaceCreator::csc; - -G4BoundedSurfaceCreator::G4BoundedSurfaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4BoundedSurfaceCreator::~G4BoundedSurfaceCreator() {} - -G4BoundedSurfaceCreator G4BoundedSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4BoundedSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - STEPcomplex* complexEnt = (STEPcomplex*)&Ent; - STEPentity* subEnt=0; - SdaiB_spline_surface *bSpline=0; - SdaiB_spline_surface_with_knots *bSplineWithKnots=0; - SdaiRational_b_spline_surface *rationalBSpline =0; - - if(complexEnt->EntityExists("B_Spline_Surface")) - { - subEnt = complexEnt->EntityPart("B_Spline_Surface"); - bSpline =(SdaiB_spline_surface*)G4GeometryTable::CreateObject(*subEnt); - if (!bSpline) - G4cerr << "WARNING - G4BoundedSurfaceCreator::CreateG4Geometry" << G4endl - << "\tComplex entity part -BSpline surface- not found !" << G4endl; - } - - if(complexEnt->EntityExists("B_Spline_Surface_With_Knots")) - { - subEnt = complexEnt->EntityPart("B_Spline_Surface_With_Knots"); - bSplineWithKnots =(SdaiB_spline_surface_with_knots*)G4GeometryTable::CreateObject(*subEnt); - if (!bSplineWithKnots) - G4cerr << "WARNING - G4BoundedSurfaceCreator::CreateG4Geometry" << G4endl - << "\tComplex entity part -BSpline surface with knots- not found !" << G4endl; - } - - if(complexEnt->EntityExists("Rational_B_Spline_Surface")) - { - subEnt = complexEnt->EntityPart("Rational_B_Spline_Surface"); - rationalBSpline =(SdaiRational_b_spline_surface*)G4GeometryTable::CreateObject(*subEnt); - if (!rationalBSpline) - G4cerr << "WARNING - G4BoundedSurfaceCreator::CreateG4Geometry" << G4endl - << "\tComplex entity part -Rational BSpline surface- not found !" << G4endl; - } - - if ((!bSpline) || (!bSplineWithKnots) || (!rationalBSpline)) - { - G4cerr << "\tComplex Bounded Surface NOT created." << G4endl; - createdObject = 0; - return; - } - - G4int u,v; - u=bSpline->u_degree_(); - v=bSpline->v_degree_(); - - - // Get control points - - G4int cols,rows; - cols = v+1; - rows = u+1; - char tmpstr[16]; - STEPentity *Entity; - SCLstring s; - STEPaggregate *Aggr=bSpline->control_points_list_(); - const char *Str = Aggr->asStr(s); - - G4int stringlength = strlen(Str); - G4ControlPoints controlPoints(4,rows, cols); - RealAggregate rationalAggr; - G4int a; - for(a=0;astringlength) - { - G4cout << "\nString index overflow in G4ControlPoints:116"; - exit(0); - } - } - - c = Str[Count]; - G4int Index=0; - - while(c != ',' && c != ')') - { - tmpstr[Index]=c; - Index++; - Count++; - c = Str[Count]; - } - tmpstr[Index]='\0'; - Index = atoi(tmpstr); - //delete [] tmp; - //Entity = InstanceList.GetSTEPentity(Index); - MgrNode* MgrTmp = instanceManager.FindFileId(Index); - Index = instanceManager.GetIndex(MgrTmp); -// Entity = instanceManager.GetSTEPentity(Index); - Entity = instanceManager.GetApplication_instance(Index); - void *tmp =G4GeometryTable::CreateObject(*Entity); - if (tmp) - controlPoints.put(a,b,*(G4PointRat*)tmp); - else - G4cerr << "WARNING - G4BoundedSurfaceCreator::CreateG4Geometry" << G4endl - << "\tNULL control point (G4PointRat) detected." << G4endl; - } - - - // Get knot vectors - STEPaggregate *multAggr = bSplineWithKnots->u_multiplicities_(); - G4int uMultCount = multAggr->EntryCount(); - STEPaggregate *knotAggr = bSplineWithKnots->u_knots_(); - G4int uKnotCount = knotAggr->EntryCount(); - - G4int totalUKnotCount = 0; - IntNode* multiNode = (IntNode*)multAggr->GetHead(); - - for(a=0;avalue; - multiNode = (IntNode*)multiNode->NextNode(); - } - - G4KnotVector uKnots(totalUKnotCount); - - RealNode* knotNode = (RealNode*)knotAggr->GetHead(); - multiNode = (IntNode*)multAggr->GetHead(); - - G4int multValue=0; - G4double knotValue=0; - G4int index=0; - for(a=0;avalue; - knotValue = knotNode->value; - - for(G4int b=0;bNextNode(); - } - - - - // V dir - multAggr = bSplineWithKnots->v_multiplicities_(); - G4int vMultCount = multAggr->EntryCount(); - - knotAggr = bSplineWithKnots->v_knots_(); - // G4int vKnotCount = knotAggr->EntryCount(); - - G4int totalVKnotCount = 0; - multiNode = (IntNode*)multAggr->GetHead(); - - for(a=0;avalue; - multiNode = (IntNode*)multiNode->NextNode(); - } - G4KnotVector vKnots(totalVKnotCount); - - knotNode = (RealNode*)knotAggr->GetHead(); - multiNode = (IntNode*)multAggr->GetHead(); - - multValue=0; - knotValue=0; - index=0; - - for(a=0;avalue; - knotValue = knotNode->value; - - for(G4int b=0;bNextNode(); - } - - - - // copy weights data - STEPaggregate *weightAggr = rationalBSpline->weights_data_(); - - // Temp solution until NIST supports - // two dimensional instances.grrh - const char* Str2 = weightAggr->asStr(s); - rows = weightAggr->EntryCount(); - cols = 1; - G4int counter=0; - while (Str2[counter] != ')') - { - if(Str2[counter]==',') - cols++; - counter++; - } - - char c; - G4int Count=0; - G4double* ratVector = new G4double[cols*rows]; - for(a=0;aptr.a; - SingleLinkNode* RNode = XYZAggr.GetHead(); - - x = ((RealNode*)RNode)->value; - RNode = RNode->NextNode(); - y = ((RealNode*)RNode)->value; - RNode = RNode->NextNode(); - z = ((RealNode*)RNode)->value; - // createdObject = new G4Point3d(x,y,z); - createdObject = new G4Point3D(x,y,z); -} - -void G4CartesianPointCreator::CreateSTEPGeometry(void* G4obj) -{ - //G4Point3d* pt = (G4Point3d*)G4obj; - G4Point3D* pt = (G4Point3D*)G4obj; - RealNode *xa,*ya,*za; - - RealAggregate pointAggr; - xa = (RealNode*)pointAggr.NewNode(); - // xa->value = pt->X(); - xa->value = pt->x(); - - ya = (RealNode*)pointAggr.NewNode(); - // ya->value = pt->Y(); - ya->value = pt->y(); - - za = (RealNode*)pointAggr.NewNode(); - // za->value = pt->Z(); - za->value = pt->z(); - - pointAggr.AddNode(xa); - pointAggr.AddNode(ya); - pointAggr.AddNode(za); - - SdaiCartesian_point *sPoint = new SdaiCartesian_point(); - sPoint->coordinates_(&pointAggr); - sPoint->SetFileId(GetNextId()); - sPoint->name_(""); - - sPoint->STEPwrite(G4cout); - createdObject = sPoint; -} diff --git a/source/geometry/solids/STEPinterface/src/G4CircleCreator.cc b/source/geometry/solids/STEPinterface/src/G4CircleCreator.cc deleted file mode 100644 index a91382c015..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4CircleCreator.cc +++ /dev/null @@ -1,92 +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: G4CircleCreator.cc,v 1.6 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4CircleCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4CircleCreator.hh" -#include "G4GeometryTable.hh" -#include "G4CircularCurve.hh" - - -G4CircleCreator G4CircleCreator::csc; - -G4CircleCreator::G4CircleCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4CircleCreator::~G4CircleCreator() {} - -G4CircleCreator G4CircleCreator::GetInstance() -{ - return csc; -} - -void G4CircleCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Axis2Placement3D place; - - G4double radius; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - while(Attr->NonRefType() == STRING_TYPE || - Attr->NonRefType() == sdaiSTRING ) - Attr = Ent.NextAttribute(); - - // Get the placement - // SelectNode* SelectN = (SelectNode*)Attr->ptr.sh; - // SdaiSelect* Select = (SdaiSelect*)SelectN; - SdaiSelect* Select = Attr->ptr.sh; - SdaiAxis2_placement* Place = (SdaiAxis2_placement*)Select; - STEPentity* TmpEnt = Place->operator SdaiAxis2_placement_3dH(); - void * tmp =G4GeometryTable::CreateObject(*TmpEnt); - - if (tmp) - place = *(G4Axis2Placement3D*)tmp; - else - G4cerr << "WARNING - G4CircleCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL axis placement (G4Axis2Placement3D) detected." << G4endl; - - Attr = Ent.NextAttribute(); - radius = *Attr->ptr.r; - - G4CircularCurve* circle = new G4CircularCurve(); - circle->Init(place , radius); - createdObject = circle; -} - -void G4CircleCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4ClosedShellCreator.cc b/source/geometry/solids/STEPinterface/src/G4ClosedShellCreator.cc deleted file mode 100644 index 224561be16..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ClosedShellCreator.cc +++ /dev/null @@ -1,119 +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: G4ClosedShellCreator.cc,v 1.8 2002/11/21 16:49:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ClosedShellCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ClosedShellCreator.hh" -#include "G4GeometryTable.hh" -#include "G4BREPSolid.hh" - -G4ClosedShellCreator G4ClosedShellCreator::csc; - -G4ClosedShellCreator::G4ClosedShellCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ClosedShellCreator::~G4ClosedShellCreator() {} - -G4ClosedShellCreator G4ClosedShellCreator::GetInstance() -{ - return csc; -} - -void G4ClosedShellCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4String attrName("cfs_faces"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - STEPaggregate *Aggr = Attr->ptr.a; - SingleLinkNode *Node = Aggr->GetHead(); - STEPentity* TmpEnt=0; - - G4int FaceCount = Aggr->EntryCount(); - - G4SurfaceVector SurfaceVec; - - for(G4int a=0; anode; - void *tmp = G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) SurfaceVec.push_back((G4Surface*)tmp); - Node = Node->NextNode(); - } - - // create G4solid - G4int SurfNum = SurfaceVec.size(); - G4Surface** srfVec = new G4Surface*[SurfNum]; - if (SurfNum != FaceCount) - G4cerr << "WARNING - G4ClosedShellCreator::CreateG4Geometry" << G4endl - << "\tTotal of " << SurfNum << " G4Surface components created, out of " - << FaceCount << " expected !" << G4endl - << "\tBREP Solid not correctly instantiated." << G4endl; - for(G4int b=0;bGetNumberOfFaces(); - - EntityAggregate eAggr; - EntityNode* eNode=0; - void* tmp=0; - G4Surface* srf=0; - - for(G4int a=0;aGetSurface(a); - G4String srfType(srf->GetEntityType()); - tmp = G4GeometryTable::CreateSTEPObject(srf,srfType); - - eNode = new EntityNode((STEPentity*)tmp); - eAggr.AddNode(eNode); - } - - sld->cfs_faces_(&eAggr); - sld->SetFileId(GetNextId()); - sld->name_(""); - sld->STEPwrite(G4cout); - - createdObject = sld; -} diff --git a/source/geometry/solids/STEPinterface/src/G4ConicCreator.cc b/source/geometry/solids/STEPinterface/src/G4ConicCreator.cc deleted file mode 100644 index c8dfa4815a..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ConicCreator.cc +++ /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. * -// ******************************************************************** -// -// -// $Id: G4ConicCreator.cc,v 1.6 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ConicCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ConicCreator.hh" -#include "G4GeometryTable.hh" - -G4ConicCreator G4ConicCreator::csc; - -G4ConicCreator::G4ConicCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ConicCreator::~G4ConicCreator() {} - -G4ConicCreator G4ConicCreator::GetInstance() -{ - return csc; -} - -void G4ConicCreator::CreateG4Geometry(STEPentity& Ent) -{ -// G4Placement *place; - G4String attrName("edge_start"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - - // Get the placement - STEPentity* TmpEnt= *Attr->ptr.c; - G4GeometryTable::CreateObject(*TmpEnt); -// place = (G4Placement*)place; - -} - -void G4ConicCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4ConicalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4ConicalSurfaceCreator.cc deleted file mode 100644 index 0281977d35..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ConicalSurfaceCreator.cc +++ /dev/null @@ -1,112 +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: G4ConicalSurfaceCreator.cc,v 1.5 2002/11/21 16:49:47 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ConicalSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ConicalSurfaceCreator.hh" -#include "G4GeometryTable.hh" -#include "G4ConicalSurface.hh" -#include "G4FConicalSurface.hh" - -G4ConicalSurfaceCreator G4ConicalSurfaceCreator::csc; - -G4ConicalSurfaceCreator::G4ConicalSurfaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ConicalSurfaceCreator::~G4ConicalSurfaceCreator() {} - -G4ConicalSurfaceCreator G4ConicalSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4ConicalSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - // Made by L. Broglia - - STEPattribute *Attr; - G4Axis2Placement3D* place; - G4double angle; - - G4String attrName("position"); - Attr = GetNamedAttribute(attrName, Ent); - - // Get placement - STEPentity* TmpEnt = *Attr->ptr.c; // ptr.c --> ENTITY_TYPE - void *tmp = G4GeometryTable::CreateObject(*TmpEnt); - place = (G4Axis2Placement3D*)tmp; - - // Get angle - G4String attrNameA("semi_angle"); - Attr = GetNamedAttribute(attrNameA, Ent); - angle = *Attr->ptr.r; // Be careful, angle is in degree - - - G4ConicalSurface* aG4cone = 0; - if (place) - aG4cone = new G4ConicalSurface( (*place).GetLocation() , - (*place).GetAxis() , - abs(angle * 2*M_PI/360) ); - else - G4cerr << "WARNING - G4ConicalSurfaceCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL axis placement (G4Axis2Placement3D) !" << G4endl - << "\tConical Surface NOT created." << G4endl; - - createdObject = aG4cone; -} - -void G4ConicalSurfaceCreator::CreateSTEPGeometry(void* G4obj) -{ - G4FConicalSurface* fCon = (G4FConicalSurface*)G4obj; - SdaiConical_surface* srf= new SdaiConical_surface(); - // Get placement - G4String placementName("Axis2Placement3d"); - void * tmp =G4GeometryTable::CreateSTEPObject(&fCon, placementName); - SdaiAxis2_placement_3d *place = (SdaiAxis2_placement_3d*)tmp; - srf->position_(place); - // radius - srf->radius_(fCon->GetSmallRadius()); - // semi-angle - //srf->Semi_angle(fCon->GetAngle()); - // Set STEP info - srf->SetFileId(GetNextId()); - srf->name_(""); - - // Write out object - srf->STEPwrite(G4cout); - - createdObject = srf; -} diff --git a/source/geometry/solids/STEPinterface/src/G4ConnectedFaceSetCreator.cc b/source/geometry/solids/STEPinterface/src/G4ConnectedFaceSetCreator.cc deleted file mode 100644 index 8c4da58210..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ConnectedFaceSetCreator.cc +++ /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. * -// ******************************************************************** -// -// -// $Id: G4ConnectedFaceSetCreator.cc,v 1.5 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ConnectedFaceSetCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ConnectedFaceSetCreator.hh" -#include "G4GeometryTable.hh" - -G4ConnectedFaceSetCreator G4ConnectedFaceSetCreator::csc; - -G4ConnectedFaceSetCreator::G4ConnectedFaceSetCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ConnectedFaceSetCreator::~G4ConnectedFaceSetCreator() {} - -G4ConnectedFaceSetCreator G4ConnectedFaceSetCreator::GetInstance() -{ - return csc; -} - -void G4ConnectedFaceSetCreator::CreateG4Geometry(STEPentity&) -{ -} - -void G4ConnectedFaceSetCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4ContextDependentShapeRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ContextDependentShapeRepresentationCreator.cc deleted file mode 100644 index 0fdf2250b2..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ContextDependentShapeRepresentationCreator.cc +++ /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: G4ContextDependentShapeRepresentationCreator.cc,v 1.6 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4ContextDependentShapeRepresentationCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ContextDependentShapeRepresentationCreator.hh" -#include "G4GeometryTable.hh" - -G4ContextDependentShapeRepresentationCreator - G4ContextDependentShapeRepresentationCreator::csc; - -G4ContextDependentShapeRepresentationCreator:: - G4ContextDependentShapeRepresentationCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ContextDependentShapeRepresentationCreator:: - ~G4ContextDependentShapeRepresentationCreator() {} - -G4ContextDependentShapeRepresentationCreator -G4ContextDependentShapeRepresentationCreator::GetInstance() -{ - return csc; -} - -void G4ContextDependentShapeRepresentationCreator:: - CreateG4Geometry(STEPentity& Ent) -{ - G4String attrName("representation_relation"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (!tmp) - G4cerr << "WARNING - G4ContextDependentShapeRepresentationCreator::CreateG4Geometry" << G4endl - << "\tNULL G4PlacedSolidVector returned." << G4endl; - - G4PlacedSolidVector* psV = (G4PlacedSolidVector*)tmp; - - // L. Broglia - // For the moment, the represented_product_relation is not needed - // So don`t create it - attrName="represented_product_relation"; - Attr = GetNamedAttribute(attrName, Ent); - TmpEnt = *Attr->ptr.c; - // tmp =G4GeometryTable::CreateObject(*TmpEnt); - - createdObject = psV; -} - -void G4ContextDependentShapeRepresentationCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4CurveCreator.cc b/source/geometry/solids/STEPinterface/src/G4CurveCreator.cc deleted file mode 100644 index 71f8acfd14..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4CurveCreator.cc +++ /dev/null @@ -1,56 +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: G4CurveCreator.cc,v 1.5 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4CurveCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4CurveCreator.hh" -#include "G4GeometryTable.hh" - -G4CurveCreator G4CurveCreator::csc; - -G4CurveCreator::G4CurveCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4CurveCreator::~G4CurveCreator() {} - -G4CurveCreator G4CurveCreator::GetInstance() -{ - return csc; -} - -void G4CurveCreator::CreateG4Geometry(STEPentity&) {} - -void G4CurveCreator::CreateSTEPGeometry(void*) {} diff --git a/source/geometry/solids/STEPinterface/src/G4CylindricalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4CylindricalSurfaceCreator.cc deleted file mode 100644 index 129dfa7010..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4CylindricalSurfaceCreator.cc +++ /dev/null @@ -1,112 +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: G4CylindricalSurfaceCreator.cc,v 1.5 2002/11/21 16:49:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4CylindricalSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4CylindricalSurfaceCreator.hh" -#include "G4GeometryTable.hh" -#include "G4FCylindricalSurface.hh" -#include "G4CylindricalSurface.hh" - -G4CylindricalSurfaceCreator G4CylindricalSurfaceCreator::csc; - -G4CylindricalSurfaceCreator::G4CylindricalSurfaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4CylindricalSurfaceCreator::~G4CylindricalSurfaceCreator() {} - -G4CylindricalSurfaceCreator G4CylindricalSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4CylindricalSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - // Made by L. Broglia - - STEPattribute *Attr; - G4Axis2Placement3D* place; - G4double radius; - - G4String attrName("position"); - Attr = GetNamedAttribute(attrName, Ent); - - // Get placement - STEPentity* TmpEnt = *Attr->ptr.c; // ptr.c --> ENTITY_TYPE - void *tmp = G4GeometryTable::CreateObject(*TmpEnt); - place = (G4Axis2Placement3D*)tmp; - - // Get radius - G4String attrNameR("radius"); - Attr = GetNamedAttribute(attrNameR, Ent); - radius = *Attr->ptr.r; - - G4CylindricalSurface* aG4cylinder = 0; - if (place) - aG4cylinder = new G4CylindricalSurface( (*place).GetLocation() , - (*place).GetAxis() , - radius ); - else - G4cerr << "WARNING - G4CylindricalSurfaceCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL axis placement (G4Axis2Placement3D) !" << G4endl - << "\tCylindrical Surface NOT created." << G4endl; - - createdObject = aG4cylinder; -} - -void G4CylindricalSurfaceCreator::CreateSTEPGeometry(void* G4obj) -{ - G4FCylindricalSurface* fCyl = (G4FCylindricalSurface*)G4obj; - SdaiCylindrical_surface* srf= new SdaiCylindrical_surface(); - - // Get placement - G4String placementName("Axis2Placement3d"); - void * tmp =G4GeometryTable::CreateSTEPObject(&fCyl, placementName); - SdaiAxis2_placement_3d *place = (SdaiAxis2_placement_3d*)tmp; - srf->position_(place); - - // radius - srf->radius_(fCyl->GetRadius()); - - // Set STEP info - srf->SetFileId(GetNextId()); - srf->name_(""); - - // Write out object - srf->STEPwrite(G4cout); - - createdObject = srf; -} diff --git a/source/geometry/solids/STEPinterface/src/G4DirectionCreator.cc b/source/geometry/solids/STEPinterface/src/G4DirectionCreator.cc deleted file mode 100644 index 21cb13a480..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4DirectionCreator.cc +++ /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: G4DirectionCreator.cc,v 1.4 2002/11/21 16:49:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4DirectionCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4DirectionCreator.hh" -#include "G4GeometryTable.hh" - -G4DirectionCreator G4DirectionCreator::csc; - -G4DirectionCreator::G4DirectionCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4DirectionCreator::~G4DirectionCreator() {} - -G4DirectionCreator G4DirectionCreator::GetInstance() -{ - return csc; -} - -void G4DirectionCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4double x,y,z; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - Attr = Ent.NextAttribute(); - STEPaggregate& XYZAggr = *Attr->ptr.a; - SingleLinkNode* RNode = XYZAggr.GetHead(); - - x = ((RealNode*)RNode)->value; - RNode = RNode->NextNode(); - - y = ((RealNode*)RNode)->value; - RNode = RNode->NextNode(); - - z = ((RealNode*)RNode)->value; - createdObject = new G4ThreeVector(x,y,z); -} - - -void G4DirectionCreator::CreateSTEPGeometry(void* G4obj) -{ - //G4ThreeVec* dir = (G4ThreeVec*)G4obj; - G4Vector3D* dir = (G4Vector3D*)G4obj; - RealNode *xa,*ya,*za; - - RealAggregate dirAggr; - xa = (RealNode*)dirAggr.NewNode(); - // xa->value = dir->X(); - xa->value = dir->x(); - - ya = (RealNode*)dirAggr.NewNode(); - // ya->value = dir->Y(); - ya->value = dir->y(); - - za = (RealNode*)dirAggr.NewNode(); - // za->value = dir->Z(); - za->value = dir->z(); - - dirAggr.AddNode(xa); - dirAggr.AddNode(ya); - dirAggr.AddNode(za); - - SdaiDirection *sDir = new SdaiDirection(); - sDir->direction_ratios_(&dirAggr); - sDir->SetFileId(GetNextId()); - sDir->name_(""); - sDir->STEPwrite(G4cout); - createdObject = sDir; -} diff --git a/source/geometry/solids/STEPinterface/src/G4EdgeCurveCreator.cc b/source/geometry/solids/STEPinterface/src/G4EdgeCurveCreator.cc deleted file mode 100644 index a6ee832b2f..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4EdgeCurveCreator.cc +++ /dev/null @@ -1,114 +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: G4EdgeCurveCreator.cc,v 1.7 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4EdgeCurveCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4EdgeCurveCreator.hh" -#include "G4GeometryTable.hh" - -G4EdgeCurveCreator G4EdgeCurveCreator::csc; - -G4EdgeCurveCreator::G4EdgeCurveCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4EdgeCurveCreator::~G4EdgeCurveCreator() {} - -G4EdgeCurveCreator G4EdgeCurveCreator::GetInstance() -{ - return csc; -} - -void G4EdgeCurveCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Point3D *pt1,*pt2; - G4Curve* crv=0; - - // Get start point - G4String attrName("edge_start"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - pt1 = (G4Point3D*)tmp; - if (!tmp) - G4cerr << "WARNING - G4EdgeCurveCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL edge-start (G4Point3D) !" << G4endl; - - // Get end point - attrName = "edge_end"; - Attr = GetNamedAttribute(attrName, Ent); - TmpEnt = *Attr->ptr.c; - tmp =G4GeometryTable::CreateObject(*TmpEnt); - pt2 = (G4Point3D*)tmp; - if (!tmp) - G4cerr << "WARNING - G4EdgeCurveCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL edge-end (G4Point3D) !" << G4endl; - - // Get curve - attrName = "edge_geometry"; - Attr = GetNamedAttribute(attrName, Ent); - TmpEnt = *Attr->ptr.c; - tmp =G4GeometryTable::CreateObject(*TmpEnt); - - if ((!pt1) || (!pt2)) - { - G4cerr << "\tEdge Curve NOT created." << G4endl; - createdObject = 0; - return; - } - - if (tmp) - { - crv = (G4Curve*)tmp; - - // set the bounds - G4Point3D p1(pt1->x(), pt1->y(), pt1->z()); - G4Point3D p2(pt2->x(), pt2->y(), pt1->z()); - - crv->SetBounds(p1, p2); - } - else - G4cerr << "WARNING - G4EdgeCurveCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL curve (G4Curve) !" << G4endl - << "\tEdge Curve NOT created." << G4endl; - - //get sense info - Attr = Ent.NextAttribute(); - // sameSense = *Attr->ptr.b; - - createdObject = crv; -} - -void G4EdgeCurveCreator::CreateSTEPGeometry(void*) {} diff --git a/source/geometry/solids/STEPinterface/src/G4EdgeLoopCreator.cc b/source/geometry/solids/STEPinterface/src/G4EdgeLoopCreator.cc deleted file mode 100644 index 9399252033..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4EdgeLoopCreator.cc +++ /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: G4EdgeLoopCreator.cc,v 1.7 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4EdgeLoopCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4EdgeLoopCreator.hh" -#include "G4GeometryTable.hh" - -G4EdgeLoopCreator G4EdgeLoopCreator::csc; - -G4EdgeLoopCreator::G4EdgeLoopCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4EdgeLoopCreator::~G4EdgeLoopCreator() {} - -G4EdgeLoopCreator G4EdgeLoopCreator::GetInstance() -{ - return csc; -} - -void G4EdgeLoopCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4String attrName("edge_list"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - - STEPaggregate *Aggr = Attr->ptr.a; - SingleLinkNode *Node = Aggr->GetHead(); - STEPentity* TmpEnt=0; - - G4int EdgeCount = Aggr->EntryCount(); - G4CurveVector* CurveVec = new G4CurveVector; - - for(G4int a=0; anode; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) CurveVec->push_back((G4Curve*)tmp); - Node = Node->NextNode(); - } - - G4int EdgeNum = CurveVec->size(); - if (EdgeNum != EdgeCount) - G4cerr << "WARNING - G4EdgeLoopCreator::CreateG4Geometry" << G4endl - << "\tTotal of " << EdgeNum << " G4Curve components created, out of " - << EdgeCount << " expected !" << G4endl; - - createdObject = CurveVec; -} - -void G4EdgeLoopCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4EllipseCreator.cc b/source/geometry/solids/STEPinterface/src/G4EllipseCreator.cc deleted file mode 100644 index e05b7c1727..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4EllipseCreator.cc +++ /dev/null @@ -1,86 +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: G4EllipseCreator.cc,v 1.6 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4EllipseCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4EllipseCreator.hh" -#include "G4GeometryTable.hh" - -G4EllipseCreator G4EllipseCreator::csc; - -G4EllipseCreator::G4EllipseCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4EllipseCreator::~G4EllipseCreator() {} - -G4EllipseCreator G4EllipseCreator::GetInstance() -{ - return csc; -} - -void G4EllipseCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4double semi1,semi2; - - // L. Broglia - // G4Placement* place; - G4Axis2Placement3D* place=0; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - while(Attr->NonRefType() == STRING_TYPE || - Attr->NonRefType() == sdaiSTRING ) - Attr = Ent.NextAttribute(); - - // Get the placement - STEPentity* TmpEnt= *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - - // L. Broglia - // place = (G4Placement*)tmp; - place = (G4Axis2Placement3D*)tmp; - - // get semi axises - Attr = Ent.NextAttribute(); - semi1 = *Attr->ptr.r; - - Attr = Ent.NextAttribute(); - semi2 = *Attr->ptr.r; -} - -void G4EllipseCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4FaceBoundCreator.cc b/source/geometry/solids/STEPinterface/src/G4FaceBoundCreator.cc deleted file mode 100644 index f64f9b6c0d..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4FaceBoundCreator.cc +++ /dev/null @@ -1,80 +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: G4FaceBoundCreator.cc,v 1.7 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4FaceBoundCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4FaceBoundCreator.hh" -#include "G4GeometryTable.hh" - -G4FaceBoundCreator G4FaceBoundCreator::csc; - -G4FaceBoundCreator::G4FaceBoundCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4FaceBoundCreator::~G4FaceBoundCreator() {} - -G4FaceBoundCreator G4FaceBoundCreator::GetInstance() -{ - return csc; -} - -void G4FaceBoundCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4String attrName("bound"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - - // Get curve - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (!tmp) - G4cerr << "WARNING - G4FaceBoundCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL curve vector (G4CurveVector) !" << G4endl - << "\tEntity NOT created." << G4endl; - - // L. Broglia - // Mistake : the created object tmp is a G4CurveVector - // G4Curve* crv = (G4Curve*)tmp; - G4CurveVector* crv = (G4CurveVector*)tmp; - - Attr = Ent.NextAttribute(); - //orientation = *Attr->ptr.i; - //crv->SetSameSense(orientation); - createdObject = crv; -} - -void G4FaceBoundCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4FaceOuterBoundCreator.cc b/source/geometry/solids/STEPinterface/src/G4FaceOuterBoundCreator.cc deleted file mode 100644 index 749ae604ea..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4FaceOuterBoundCreator.cc +++ /dev/null @@ -1,56 +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: G4FaceOuterBoundCreator.cc,v 1.5 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4FaceOuterBoundCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4FaceOuterBoundCreator.hh" -#include "G4GeometryTable.hh" - -G4FaceOuterBoundCreator G4FaceOuterBoundCreator::csc; - -G4FaceOuterBoundCreator G4FaceOuterBoundCreator::GetInstance() -{ - return csc; -} - -G4FaceOuterBoundCreator::G4FaceOuterBoundCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4FaceOuterBoundCreator::~G4FaceOuterBoundCreator() {} - -void G4FaceOuterBoundCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4FaceSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4FaceSurfaceCreator.cc deleted file mode 100644 index d5abf177ac..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4FaceSurfaceCreator.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. * -// ******************************************************************** -// -// -// $Id: G4FaceSurfaceCreator.cc,v 1.7 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4FaceSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4FaceSurfaceCreator.hh" -#include "G4GeometryTable.hh" - -G4FaceSurfaceCreator G4FaceSurfaceCreator::csc; - -G4FaceSurfaceCreator::G4FaceSurfaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4FaceSurfaceCreator::~G4FaceSurfaceCreator() {} - -G4FaceSurfaceCreator G4FaceSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4FaceSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Surface* srf=0; - - G4String attrName("face_geometry"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - srf = (G4Surface*)tmp; - if (!tmp) - G4cerr << "WARNING - G4FaceSurfaceCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL pointer to G4Surface !" << G4endl - << "\tFace Surface NOT created." << G4endl; - - Attr = Ent.NextAttribute(); - // sense = *Attr->ptr.b; - createdObject = srf; -} - -void G4FaceSurfaceCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4GeometricRepresentationContextCreator.cc b/source/geometry/solids/STEPinterface/src/G4GeometricRepresentationContextCreator.cc deleted file mode 100644 index 43c46cc303..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4GeometricRepresentationContextCreator.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. * -// ******************************************************************** -// -// -// $Id: G4GeometricRepresentationContextCreator.cc,v 1.7 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4GeometricRepresentationContextCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4GeometricRepresentationContextCreator.hh" -#include "G4GeometryTable.hh" - -G4GeometricRepresentationContextCreator - G4GeometricRepresentationContextCreator::csc; - -G4GeometricRepresentationContextCreator:: - G4GeometricRepresentationContextCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4GeometricRepresentationContextCreator:: - ~G4GeometricRepresentationContextCreator() {} - -G4GeometricRepresentationContextCreator -G4GeometricRepresentationContextCreator::GetInstance() -{ - return csc; -} - -void G4GeometricRepresentationContextCreator::CreateG4Geometry(STEPentity& Ent) -{ - // Made by L. Broglia - STEPattribute *Attr; - - G4String attrName("coordinate_space_dimension"); - Attr = GetNamedAttribute(attrName, Ent); - - // Get coordinate space dimension (ptr.r --> REAL_TYPE) - // SdaiReal Tmpdim = *Attr->ptr.r; - - // void *tmp = G4GeometryTable::CreateObject(*TmpEnt); - // place = (G4Axis2Placement3D*)tmp...; - -} - -void G4GeometricRepresentationContextCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4GeometryCreator.cc b/source/geometry/solids/STEPinterface/src/G4GeometryCreator.cc deleted file mode 100644 index 8ba4cdee15..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4GeometryCreator.cc +++ /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. * -// ******************************************************************** -// -// -// $Id: G4GeometryCreator.cc,v 1.6 2001/07/11 10:00:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4GeometryCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include -#include - -#include "G4GeometryCreator.hh" -#include "G4GeometryTable.hh" - -InstMgr G4GeometryCreator::instanceManager; -G4int G4GeometryCreator::objectId = 0; - -G4GeometryCreator::G4GeometryCreator() {} -G4GeometryCreator::~G4GeometryCreator() {} - -G4bool G4GeometryCreator::operator==(const G4GeometryCreator&) -{ - return 0; -} - -void* G4GeometryCreator::GetCreatedObject() -{ - return createdObject; -} - -InstMgr* G4GeometryCreator::GetInstanceManager() const -{ - return &instanceManager; -} - -STEPattribute* -G4GeometryCreator::GetNamedAttribute(const G4String& attrName, STEPentity& Ent) -{ - STEPattribute* attr; - - Ent.ResetAttributes(); - G4int attrCount = Ent.AttributeCount(); - - for(G4int a=0;aName() == attrName) - return attr; - } - - G4String err = "\nCannot find attribute " + G4String(attrName) - + " in entity " + Ent.EntityName(); - G4Exception(err); - return 0; // NULL -} - -STEPentity* -G4GeometryCreator::GetNamedEntity(const G4String& entName, STEPentity& Ent) -{ - // Ent is a complex entity - - if(Ent.IsComplex()) - { - Ent.ResetAttributes(); - STEPcomplex *complexEnt = (STEPcomplex*)&Ent; - STEPentity* subEnt=0; - - G4int entCount = complexEnt->AttributeCount(); - - for(G4int a=0;asc; - if(subEnt->EntityName() == entName) - return subEnt; - } - } - G4String err = "\nCannot find entity " + G4String(entName) - + " in complex entity " + Ent.EntityName(); - G4Exception(err); - - return 0; -} - -/* -G4int[][] G4GeometryCreator::GetIds(GenericAggregate& aggr) -{ - // Gets the file IDs of entities from the string. - // hack for 2D-aggregates which do not work properly in the NIST toolkit - GenericAggrNode* gNode = (GenericAggrNode*)aggr->GetHead(); - - SCLstring str; - const char* aggrStr = gNode->asStr(str); -} -*/ diff --git a/source/geometry/solids/STEPinterface/src/G4GeometryTable.cc b/source/geometry/solids/STEPinterface/src/G4GeometryTable.cc deleted file mode 100644 index 0932f62de3..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4GeometryTable.cc +++ /dev/null @@ -1,238 +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: G4GeometryTable.cc,v 1.10 2002/11/21 16:49:48 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4GeometryTable -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "includes" -#include "G4GeometryTable.hh" - - -G4GeometryTable G4GeometryTable::gt; -G4CreatorVector G4GeometryTable::RegisteredObjects; - -G4GeometryTable::G4GeometryTable() -{ -} - -G4GeometryTable::~G4GeometryTable() -{ -} - -const G4GeometryTable& G4GeometryTable::GetInstance() -{ - return gt; -} - -G4bool G4GeometryTable::ExistsInTable(G4String& objectName) -{ - G4bool existsInTable = false; - - for(size_t a=0;aName(); - if(rName == objectName) existsInTable = true; - } - - return existsInTable; -} - -void G4GeometryTable::RegisterObject(G4GeometryCreator* gc) -{ - G4String newName = gc->Name(); - - if(!ExistsInTable(newName)) - RegisteredObjects.push_back(gc); -} - -G4GeometryCreator* G4GeometryTable::GetObject(G4String objectName) -{ - for(size_t a=0; aName(); - - if(rName == objectName) - return gcTmp; - } - - return (G4GeometryCreator*)0; -} - -void* G4GeometryTable::CreateObject(STEPentity& Ent) -{ - Ent.ResetAttributes(); - G4String name = Ent.EntityName(); - G4GeometryCreator* gctmp = GetObject(name); - -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << "G4GeometryTable::CreateObject(STEPentity&) - " - << "Found STEPEntity " << name << " :" << G4endl; -#endif - - if(gctmp) - { - gctmp->CreateG4Geometry(Ent); - void* obj = gctmp->GetCreatedObject(); - -#ifdef G4_STEPINTERFACE_DEBUG - if (obj == 0) - G4cout << "G4 object of type " << gctmp->Name() - << " not necessary" << G4endl; - else - G4cout << "Created G4 object of type " - << gctmp->Name() << G4endl; -#endif - - return obj; - } - else - { - G4String err = "Geometry creator for entity " + name + " not found."; - G4cerr << err << G4endl; - // G4Exception(err); - return 0; - } -} - -void* G4GeometryTable::CreateSTEPObject(void* G4obj, G4String& objName) -{ - - G4GeometryCreator* gctmp = GetObject(objName); - - if(gctmp) - { - gctmp->CreateSTEPGeometry(G4obj); - void* obj = gctmp->GetCreatedObject(); - return obj; - } - else - { - G4String err = "STEP creator for entity " + objName + " not found."; - G4cerr << err << G4endl; - // G4Exception(err); - return 0; - } - -} - -void G4GeometryTable::PrintObjectNames() -{ - G4String name; - G4GeometryCreator* gc=0; - G4int a=0; - - G4int objectCount = RegisteredObjects.size(); - if(!objectCount) - { - G4cout << "No registered objects in table." << G4endl; - return; - } - - G4cout << "Objects in table:" << G4endl; - - for(a=0;aName(); - G4cout << name << G4endl; - } - -} - -G4PointCreator a; -G4CartesianPointCreator b; -G4PointOnCurveCreator c; -G4PointOnSurfaceCreator d; -G4PointReplicaCreator e; -G4VertexPointCreator f; - -G4CurveCreator c1; -G4LineCreator c2; -G4CircleCreator c3; -G4EllipseCreator c4; -G4HyperbolaCreator c5; -G4ParabolaCreator c6; - -G4EdgeCurveCreator c7; -G4BSplineCurveWithKnotsCreator bsc1; - -G4EdgeLoopCreator l1; -G4OrientedEdgeCreator e1; -G4FaceBoundCreator b1; -G4FaceOuterBoundCreator b2 ; - -G4DirectionCreator dir; -G4VectorCreator vec; - -G4Axis1PlacementCreator ax1; -G4Axis2Placement2dCreator ax2; -G4Axis2Placement3dCreator ax3; -G4Axis2PlacementCreator ax4; -G4Axis2PlacementsCreator ax5; - -G4AdvancedFaceCreator s2; -G4PlaneCreator s3; -G4CylindricalSurfaceCreator s4; -G4FaceSurfaceCreator fsc1; -G4ToroidalSurfaceCreator s5; -G4SphericalSurfaceCreator s6; -G4ConicalSurfaceCreator s7; -G4BSplineSurfaceCreator s8; -G4BoundedSurfaceCreator s9; -//G4RationalBSplineSurfaceCreator s10; -G4BSplineSurfaceWithKnotsCreator s11; - -G4ClosedShellCreator sc1; -G4OpenShellCreator sc2; - -G4AdvancedBrepShapeRepresentationCreator shape1; -G4ManifoldSolidBrepCreator ms1; - -G4ConnectedFaceSetCreator cfsc1; - -G4ItemDefinedTransformationCreator trans1; - -G4RepresentationRelationshipCreator reprel1; -G4RepresentationRelationshipWithTransformationCreator repretrans; - -G4ContextDependentShapeRepresentationCreator condep1; - -G4ProductDefinitionShapeCreator pdsc; -G4ShapeRepresentationRelationshipCreator srrc; -G4ShapeRepresentationCreator srcs; - -G4ShapeDefinitionRepresentationCreator sdr; -G4GeometricRepresentationContextCreator grc; diff --git a/source/geometry/solids/STEPinterface/src/G4HyperbolaCreator.cc b/source/geometry/solids/STEPinterface/src/G4HyperbolaCreator.cc deleted file mode 100644 index 04e2519f53..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4HyperbolaCreator.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: G4HyperbolaCreator.cc,v 1.5 2003/03/28 15:47:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4HyperbolaCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4HyperbolaCreator.hh" -#include "G4GeometryTable.hh" - -G4HyperbolaCreator G4HyperbolaCreator::csc; - -G4HyperbolaCreator::G4HyperbolaCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4HyperbolaCreator::~G4HyperbolaCreator() {} - -G4HyperbolaCreator G4HyperbolaCreator::GetInstance() -{ - return csc; -} - -void G4HyperbolaCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4double semi1,semi_imag; - - // L. Broglia - // G4Placement* place; - G4Axis2Placement3D* place; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - while(Attr->NonRefType() == STRING_TYPE || - Attr->NonRefType() == sdaiSTRING ) - Attr = Ent.NextAttribute(); - - // Get the placement - STEPentity* TmpEnt= *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - - // L. Broglia - // place = (G4Placement*)tmp; - place = (G4Axis2Placement3D*)tmp; - - // get semi axises - Attr = Ent.NextAttribute(); - semi1 = *Attr->ptr.r; - - Attr = Ent.NextAttribute(); - semi_imag = *Attr->ptr.r; -} - -void G4HyperbolaCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4ItemDefinedTransformationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ItemDefinedTransformationCreator.cc deleted file mode 100644 index efde10544d..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ItemDefinedTransformationCreator.cc +++ /dev/null @@ -1,99 +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: G4ItemDefinedTransformationCreator.cc,v 1.7 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4ItemDefinedTransformationCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ItemDefinedTransformationCreator.hh" -#include "G4GeometryTable.hh" -#include "G4PlacementVector.hh" - -G4ItemDefinedTransformationCreator G4ItemDefinedTransformationCreator::csc; - -G4ItemDefinedTransformationCreator::G4ItemDefinedTransformationCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ItemDefinedTransformationCreator::~G4ItemDefinedTransformationCreator() {} - -G4ItemDefinedTransformationCreator -G4ItemDefinedTransformationCreator::GetInstance() -{ - return csc; -} - -void G4ItemDefinedTransformationCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4PlacementVector* places = new G4PlacementVector(); - - // L. Broglia - // G4Placement* place=0; - G4Axis2Placement3D* place=0; - - G4String attrName("transform_item_1"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (!tmp) - G4cerr << "WARNING - G4ItemDefinedTransformationCreator::CreateG4Geometry" << G4endl - << "\t" << attrName << ": unexpected NULL axis placement (G4Axis2Placement3D) !" - << G4endl; - - // L. Broglia - // place = (G4Placement*)tmp; - place = (G4Axis2Placement3D*)tmp; - - if (place) places->push_back(place); - attrName="transform_item_2"; - Attr = GetNamedAttribute(attrName, Ent); - TmpEnt = *Attr->ptr.c; - tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (!tmp) - G4cerr << "WARNING - G4ItemDefinedTransformationCreator::CreateG4Geometry" << G4endl - << "\t" << attrName << ": unexpected NULL axis placement (G4Axis2Placement3D) !" - << G4endl; - - // L. Broglia - // place = (G4Placement*)tmp; - place = (G4Axis2Placement3D*)tmp; - - if (place) places->push_back(place); - - createdObject = places; -} - -void G4ItemDefinedTransformationCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4LineCreator.cc b/source/geometry/solids/STEPinterface/src/G4LineCreator.cc deleted file mode 100644 index 236f77c4dc..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4LineCreator.cc +++ /dev/null @@ -1,95 +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: G4LineCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4LineCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4LineCreator.hh" -#include "G4GeometryTable.hh" -#include "G4Line.hh" - -G4LineCreator G4LineCreator::csc; - -G4LineCreator::G4LineCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4LineCreator::~G4LineCreator() {} - -G4LineCreator G4LineCreator::GetInstance() -{ - return csc; -} - -void G4LineCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4ThreeVector origin; - G4ThreeVector dir; - - Ent.ResetAttributes(); - STEPattribute *Attr; - Attr = Ent.NextAttribute(); - while (Attr->NonRefType() == STRING_TYPE) - Attr = Ent.NextAttribute(); - - // Get the line origin - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) - origin = *(G4ThreeVector*)tmp; - else - G4cerr << "WARNING - G4LineCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL origin (G4ThreeVector) for G4Line !" << G4endl - << "\tG4Line origin set to (0,0,0)." << G4endl; - - // Get the line direction - Attr = Ent.NextAttribute(); - TmpEnt = *Attr->ptr.c; - tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) - dir = *(G4ThreeVector*)tmp; - else - G4cerr << "WARNING - G4LineCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL direction (G4ThreeVector) for G4Line !" << G4endl - << "\tG4Line direction set to (0,0,0)." << G4endl; - - G4Line* line = new G4Line(); - line->Init(origin, dir); - createdObject = line; -} - -void G4LineCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4ManifoldSolidBrepCreator.cc b/source/geometry/solids/STEPinterface/src/G4ManifoldSolidBrepCreator.cc deleted file mode 100644 index 31abb7905a..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ManifoldSolidBrepCreator.cc +++ /dev/null @@ -1,77 +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: G4ManifoldSolidBrepCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4ManifoldSolidBrepCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ManifoldSolidBrepCreator.hh" -#include "G4GeometryTable.hh" -#include "G4BREPSolid.hh" - -G4ManifoldSolidBrepCreator G4ManifoldSolidBrepCreator::csc; - -G4ManifoldSolidBrepCreator::G4ManifoldSolidBrepCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ManifoldSolidBrepCreator::~G4ManifoldSolidBrepCreator() {} - -G4ManifoldSolidBrepCreator G4ManifoldSolidBrepCreator::GetInstance() -{ - return csc; -} - -void G4ManifoldSolidBrepCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4BREPSolid* sld; - - G4String attrName("outer"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - - // Get solid - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (!tmp) - G4cerr << "WARNING - G4ManifoldSolidBrepCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL pointer to BREP Solid !" << G4endl - << "\tBREP Solid NOT created." << G4endl; - - sld = (G4BREPSolid*)tmp; - createdObject = sld; -} - -void G4ManifoldSolidBrepCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4NISTStepReader.cc b/source/geometry/solids/STEPinterface/src/G4NISTStepReader.cc deleted file mode 100644 index bcfbf6adc3..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4NISTStepReader.cc +++ /dev/null @@ -1,99 +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: G4NISTStepReader.cc,v 1.5 2001/07/11 10:00:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4NISTStepReader -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4NISTStepReader.hh" - -#include "instmgr.h" -#include "Registry.h" -#include "STEPaggregate.h" -#include "STEPfile.h" /* STEPfile class and others used by SCL */ - -#ifdef __O3DB__ - #include -#endif - -void G4NISTStepReader::ReadSTEPFile(const char* STEPfilename) -{ - // Reads the Step file into the nist toolkit class library - - // if the comments below look canned, it's because they're taken - // straight from the treg source... ;-) - - // This has to be Done before anything else. This initializes - // all of the registry information for the schema you are using. - // The SchemaInit() function is generated by fedex_plus... see - // extern statement above. - Registry *registry = new Registry(SchemaInit); - - // The nifty thing about the Registry is that it basically keeps a List - // of everything in your schema. What this means is that we can go - // through the Registry and instantiate, say, one of everything, without - // knowing at coding-time what entities there are to instantiate. So, - // this test could be linked with other class libraries produced from - // other schema, rather than the example, and run happily. - - // InstMgr InstanceList; - STEPfile *sfile = new STEPfile(*registry, InstanceList); - - // The STEPfile is actually an object that manages the relationship - // between what's instantiated in the instance manager, and how that - // information gets passed to the outside, e.g., a file on disk. - - // First we're going to read in the data from the input STEPfile, - // and Print it to stdout - - // Reading the STEPfile instantiates all the objects in it. - // The instances get pointers into the InstMgr, and each type - // and entity gets a pointer into the registry. - G4cout << "\n### Reading exchange file from " << STEPfilename << G4endl; - sfile->ReadExchangeFile(STEPfilename); - - // Just checking... ;-) - G4cout << "\n### The InstMgr says there are "; - G4cout << InstanceList.InstanceCount() << " instantiated objects" << G4endl; - - // G4cout << "\n### Here is the exchange file:" << G4endl << G4endl; - // sfile->WriteExchangeFile(G4cout); - - delete sfile; - delete registry; -} - - -void G4NISTStepReader::SaveSTEPFile() {} - -void G4NISTStepReader::UpdateSTEPFile() {} diff --git a/source/geometry/solids/STEPinterface/src/G4OpenShellCreator.cc b/source/geometry/solids/STEPinterface/src/G4OpenShellCreator.cc deleted file mode 100644 index 227cd42faf..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4OpenShellCreator.cc +++ /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: G4OpenShellCreator.cc,v 1.5 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4OpenShellCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4OpenShellCreator.hh" -#include "G4GeometryTable.hh" - -G4OpenShellCreator G4OpenShellCreator::csc; - -G4OpenShellCreator::G4OpenShellCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4OpenShellCreator::~G4OpenShellCreator() {} - -G4OpenShellCreator G4OpenShellCreator::GetInstance() -{ - return csc; -} - -void G4OpenShellCreator::CreateG4Geometry(STEPentity&) -{ -} - -void G4OpenShellCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4OrientedEdgeCreator.cc b/source/geometry/solids/STEPinterface/src/G4OrientedEdgeCreator.cc deleted file mode 100644 index 46381fa3b6..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4OrientedEdgeCreator.cc +++ /dev/null @@ -1,86 +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: G4OrientedEdgeCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4OrientedEdgeCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4OrientedEdgeCreator.hh" -#include "G4GeometryTable.hh" - -G4OrientedEdgeCreator G4OrientedEdgeCreator::csc; - -G4OrientedEdgeCreator::G4OrientedEdgeCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4OrientedEdgeCreator::~G4OrientedEdgeCreator() {} - -G4OrientedEdgeCreator G4OrientedEdgeCreator::GetInstance() -{ - return csc; -} - -void G4OrientedEdgeCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4int orientation; - G4Curve* crv=0; - - G4String attrName("edge_element"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - - // Get curve - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - if (tmp) - { - crv = (G4Curve*)tmp; - - // Get orientation - Attr = Ent.NextAttribute(); - orientation = *Attr->ptr.i;// INTEGER_TYPE - - crv->SetSameSense(orientation); - } - else - G4cerr << "WARNING - G4OrientedEdgeCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL pointer to G4Curve !" << G4endl - << "\tOriented Edge NOT created." << G4endl; - - createdObject = crv; -} - -void G4OrientedEdgeCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4PlaneCreator.cc b/source/geometry/solids/STEPinterface/src/G4PlaneCreator.cc deleted file mode 100644 index be6cf533d5..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4PlaneCreator.cc +++ /dev/null @@ -1,92 +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: G4PlaneCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4PlaneCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4PlaneCreator.hh" -#include "G4GeometryTable.hh" -#include "G4FPlane.hh" - -G4PlaneCreator G4PlaneCreator::csc; - -G4PlaneCreator::G4PlaneCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4PlaneCreator::~G4PlaneCreator() {} - -G4PlaneCreator G4PlaneCreator::GetInstance() -{ - return csc; -} - -void G4PlaneCreator::CreateG4Geometry(STEPentity& Ent) -{ - // L. Broglia - // G4Placement* place; - G4Axis2Placement3D* place=0; - - Ent.ResetAttributes(); - STEPattribute *Attr; - Attr = Ent.NextAttribute(); - while (Attr->NonRefType() == STRING_TYPE) - Attr = Ent.NextAttribute(); - - // Get placement - STEPentity* TmpEnt = *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - - G4FPlane* fplane = 0; - - if (tmp) - { - place = (G4Axis2Placement3D*)tmp; - fplane = new G4FPlane( place->GetRefDirection(), - place->GetAxis(), - place->GetLocation()); - } - else - G4cerr << "WARNING - G4PlaneCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL axis placement (G4Axis2Placement3D) !" << G4endl - << "\tPlane Surface NOT created." << G4endl; - - createdObject = fplane; -} - -void G4PlaneCreator::CreateSTEPGeometry(void*) -{ -} - diff --git a/source/geometry/solids/STEPinterface/src/G4PointOnCurveCreator.cc b/source/geometry/solids/STEPinterface/src/G4PointOnCurveCreator.cc deleted file mode 100644 index 6b256a7869..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4PointOnCurveCreator.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. * -// ******************************************************************** -// -// -// $Id: G4PointOnCurveCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4PointOnCurveCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4PointOnCurveCreator.hh" -#include "G4GeometryTable.hh" - -G4PointOnCurveCreator G4PointOnCurveCreator::csc; - -G4PointOnCurveCreator::G4PointOnCurveCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4PointOnCurveCreator::~G4PointOnCurveCreator() {} - -G4PointOnCurveCreator G4PointOnCurveCreator::GetInstance() -{ - return csc; -} - -void G4PointOnCurveCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Curve* crv=0; - G4double pval = 0; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - while(Attr->NonRefType() == STRING_TYPE || - Attr->NonRefType() == sdaiSTRING ) - Attr = Ent.NextAttribute(); - - // Get basis curve - STEPentity* TmpEnt= *Attr->ptr.c; - void* tmp =G4GeometryTable::CreateObject(*TmpEnt); - crv = (G4Curve*)tmp; - if (!tmp) - G4cerr << "WARNING - G4PointOnCurveCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL pointer to G4Curve !" << G4endl; - - // Get parameter value - Attr = Ent.NextAttribute(); - pval = *Attr->ptr.r; - - createdObject = new G4double(pval); -} - -void G4PointOnCurveCreator::CreateSTEPGeometry(void*) {} diff --git a/source/geometry/solids/STEPinterface/src/G4PointOnSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4PointOnSurfaceCreator.cc deleted file mode 100644 index 8313dde50e..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4PointOnSurfaceCreator.cc +++ /dev/null @@ -1,88 +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: G4PointOnSurfaceCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4PointOnSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4PointOnSurfaceCreator.hh" -#include "G4GeometryTable.hh" - -G4PointOnSurfaceCreator G4PointOnSurfaceCreator::csc; - -G4PointOnSurfaceCreator::G4PointOnSurfaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4PointOnSurfaceCreator::~G4PointOnSurfaceCreator() {} - -G4PointOnSurfaceCreator G4PointOnSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4PointOnSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Surface* srf=0; - G4double pval1 = 0; - G4double pval2 = 0; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - while(Attr->NonRefType() == STRING_TYPE || - Attr->NonRefType() == sdaiSTRING ) - Attr = Ent.NextAttribute(); - - // Get basis surface - STEPentity* TmpEnt= *Attr->ptr.c; - void * tmp =G4GeometryTable::CreateObject(*TmpEnt); - srf = (G4Surface*)tmp; - if (!tmp) - G4cerr << "WARNING - G4PointOnSurfaceCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL pointer to G4Surface !" << G4endl; - - // Get parameter values - Attr = Ent.NextAttribute(); - pval1 = *Attr->ptr.r; - Attr = Ent.NextAttribute(); - pval2 = *Attr->ptr.r; - - G4double* dtmp = new G4double[2]; - dtmp[0] = pval1; - dtmp[1] = pval2; - - createdObject = dtmp; -} - -void G4PointOnSurfaceCreator::CreateSTEPGeometry(void*) {} diff --git a/source/geometry/solids/STEPinterface/src/G4ProductDefinitionShapeCreator.cc b/source/geometry/solids/STEPinterface/src/G4ProductDefinitionShapeCreator.cc deleted file mode 100644 index b1a0c956c2..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ProductDefinitionShapeCreator.cc +++ /dev/null @@ -1,78 +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: G4ProductDefinitionShapeCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4ProductDefinitionShapeCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ProductDefinitionShapeCreator.hh" -#include "G4GeometryTable.hh" - -G4ProductDefinitionShapeCreator G4ProductDefinitionShapeCreator::csc; - -G4ProductDefinitionShapeCreator::G4ProductDefinitionShapeCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ProductDefinitionShapeCreator::~G4ProductDefinitionShapeCreator() {} - -G4ProductDefinitionShapeCreator G4ProductDefinitionShapeCreator::GetInstance() -{ - return csc; -} - -void G4ProductDefinitionShapeCreator::CreateG4Geometry(STEPentity& Ent) -{ - // Made by L. Broglia - STEPattribute *Attr; - - G4String attrName("description"); - Attr = GetNamedAttribute(attrName, Ent); - - // Get description - SdaiString Tmpstring = *Attr->ptr.S; // ptr.S --> STRING_TYPE - - attrName = "definition"; - Attr = GetNamedAttribute(attrName, Ent); - - // Get definition - SCLundefined Tmpdef = *Attr->ptr.u; // ptr.u --> UNKNOWN_TYPE - - // void *tmp = G4GeometryTable::CreateObject(*TmpEnt); - // place = (G4Axis2Placement3D*)tmp; -} - -void G4ProductDefinitionShapeCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4RationalBSplineSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4RationalBSplineSurfaceCreator.cc deleted file mode 100644 index 2b9ae5fefb..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4RationalBSplineSurfaceCreator.cc +++ /dev/null @@ -1,307 +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: G4RationalBSplineSurfaceCreator.cc,v 1.6 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4RationalBSplineSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4RationalBSplineSurfaceCreator.hh" -#include "G4GeometryTable.hh" - -G4RationalBSplineSurfaceCreator G4RationalBSplineSurfaceCreator::csc; - -G4RationalBSplineSurfaceCreator::G4RationalBSplineSurfaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4RationalBSplineSurfaceCreator::~G4RationalBSplineSurfaceCreator() {} - -G4RationalBSplineSurfaceCreator -G4RationalBSplineSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4RationalBSplineSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4String attrName("weights_data"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - STEPaggregate *weightAggr = Attr->ptr.a; - SdaiRational_b_spline_surface* bSpline = new SdaiRational_b_spline_surface(&Ent); - bSpline->weights_data_((GenericAggregate*)Attr->ptr.a); - - // Temp solution until NIST supports - // two dimensional instances.grrh - SCLstring s; - const char* Str = weightAggr->asStr(s); - G4int rows = weightAggr->EntryCount(); - G4int cols = 1; - G4int counter=0; - while (Str[counter] != ')') - { - if(Str[counter]==',') - cols++; - counter++; - } - - char c; - G4int Count=0; - G4double* ratVector = new G4double[cols*rows]; - for(int a=0;aU_multiplicities((IntAggregate*)Attr->ptr.a); - STEPaggregate *multAggr = Attr->ptr.a; - G4int uMultCount = multAggr->EntryCount(); - } - - attrName = "u_knots"; - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - - STEPaggregate *knotAggr = Attr->ptr.a; - G4int uKnotCount = knotAggr->EntryCount(); - - G4int totalUKnotCount = 0; - IntNode* multiNode = (IntNode*)multAggr->GetHead(); - - for(G4int a=0;avalue; - multiNode = (IntNode*)multiNode->NextNode(); - } - - G4KnotVector *uKnots = new G4KnotVector(totalUKnotCount); - - RealNode* knotNode = (RealNode*)knotAggr->GetHead(); - multiNode = (IntNode*)multAggr->GetHead(); - - bSpline->U_knots((RealAggregate*)knotAggr); - - - - G4int multValue=0; - G4double knotValue=0; - G4int index=0; - for(a=0;avalue; - knotValue = knotNode->value; - - for(G4int b=0;bPutKnot(index, knotValue); - index++; - } - knotNode = (RealNode*)knotNode->NextNode(); - } - - } - // V dir - attrName = "v_multiplicities"; - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - multAggr = Attr->ptr.a; - bSpline->U_multiplicities((IntAggregate*)Attr->ptr.a); - G4int vMultCount = multAggr->EntryCount(); - } - attrName = "v_knots"; - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - knotAggr = Attr->ptr.a; - bSpline->V_knots((RealAggregate*)knotAggr); - G4int vKnotCount = knotAggr->EntryCount(); - - G4int totalVKnotCount = 0; - multiNode = (IntNode*)multAggr->GetHead(); - - for(a=0;avalue; - multiNode = (IntNode*)multiNode->NextNode(); - } - G4KnotVector *vKnots = new G4KnotVector(totalVKnotCount); - - knotNode = (RealNode*)knotAggr->GetHead(); - multiNode = (IntNode*)multAggr->GetHead(); - - multValue=0; - knotValue=0; - index=0; - - for(a=0;avalue; - knotValue = knotNode->value; - - for(G4int b=0;bPutKnot(index, knotValue); - index++; - } - knotNode = (RealNode*)knotNode->NextNode(); - } - } - // b_spline base parts - - G4int u,v; - STEPentity* ent=0; - G4String attrName("u_degree"); - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - u = *Attr->ptr.i; - bSpline->U_degree(*Attr->ptr.i); - } - - - attrName = "v_degree"; - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - v=*Attr->ptr.i; - bSpline->V_degree(*Attr->ptr.i); - } - - attrName = "control_points_list"; - Attr = GetNamedAttribute(attrName, Ent); - if(Attr) - { - STEPaggregate *Aggr = Attr->ptr.a; - GenericAggregate* gAggr = (GenericAggregate*)Attr->ptr.a; - bSpline->Control_points_list(gAggr); - // Get control points - - G4int cols,rows; - cols = v+1; - rows = u+1; - - STEPentity* entity; - G4int Index; - STEPentity *Entity; - char tmp[16]; - SCLstring s; - const char *Str = Aggr->asStr(s); - - G4int stringlength = strlen(Str); - G4ControlPoints controlPoints(4,rows, cols); - RealAggregate rationalAggr; - RealNode* rNode =0; - for(G4int a=0;astringlength) - { - G4cout << "\nString index overflow in G4ControlPoints:116"; - exit(0); - } - } - - c = Str[Count]; - int Index=0; - - while(c != ',' && c != ')') - { - tmp[Index]=c; - Index++; - Count++; - c = Str[Count]; - } - tmp[Index]='\0'; - Index = atoi(tmp); - //delete [] tmp; - //Entity = InstanceList.GetSTEPentity(Index); - MgrNode* MgrTmp = instanceManager.FindFileId(Index); - Index = instanceManager.GetIndex(MgrTmp); -// Entity = instanceManager.GetSTEPentity(Index); - Entity = instanceManager.GetApplication_instance(Index); - void *tmp =G4GeometryTable::CreateObject(*Entity); - if (tmp) controlPoints.put(a,b,*(G4PointRat*)tmp); - } - } - */ - createdObject = bSpline; -} - -void G4RationalBSplineSurfaceCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipCreator.cc b/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipCreator.cc deleted file mode 100644 index cb07db2d20..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipCreator.cc +++ /dev/null @@ -1,185 +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: G4RepresentationRelationshipCreator.cc,v 1.10 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4RepresentationRelationshipCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include - -#include "G4RepresentationRelationshipCreator.hh" -#include "G4GeometryTable.hh" -#include "G4PlacementVector.hh" - -G4RepresentationRelationshipCreator G4RepresentationRelationshipCreator::csc; - -G4RepresentationRelationshipCreator::G4RepresentationRelationshipCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4RepresentationRelationshipCreator::~G4RepresentationRelationshipCreator() {} - -G4RepresentationRelationshipCreator -G4RepresentationRelationshipCreator::GetInstance() -{ - return csc; -} - -void G4RepresentationRelationshipCreator::CreateG4Geometry(STEPentity& Ent) -{ - - STEPcomplex* complexEnt = (STEPcomplex*)&Ent; - STEPentity* subEnt=0; - STEPentity* subEnt1=0; - STEPentity* subEnt2=0; - G4String attrName; - STEPattribute *Attr=0; - - G4PlacementVector* itemDefPlaces=0; - G4PlacementVector* places=0; - G4PlacedSolid* sld=0; - G4PlacedSolid* tmpsld=0; - G4PlacedSolidVector* sldV = new G4PlacedSolidVector(); - G4PlacedSolidVector* tmpsldV=0; - - if(complexEnt->EntityExists("Representation_Relationship")) - { - subEnt = complexEnt->EntityPart("Representation_Relationship"); - - // get subparts - attrName = "rep_1"; - Attr = GetNamedAttribute(attrName, *subEnt); - subEnt1 = *Attr->ptr.c; - places = (G4PlacementVector*)G4GeometryTable::CreateObject(*subEnt1); -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << "Rep_1 entries: " << places->entries() - << " - Entity: " << subEnt1->EntityName() << G4endl; -#endif - - attrName = "rep_2"; - Attr = GetNamedAttribute(attrName, *subEnt); - subEnt2 = *Attr->ptr.c; - tmpsldV = (G4PlacedSolidVector*)G4GeometryTable::CreateObject(*subEnt2); -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << "Rep_2 entries: " << tmpsldV->entries() - << " - Entity: " << subEnt2->EntityName() << G4endl; -#endif - } - G4String e1Name = subEnt1->EntityName(); - G4String e2Name = subEnt2->EntityName(); - if ((e1Name != "Shape_Representation") || - (e2Name != "Advanced_Brep_Shape_Representation") ) - { - G4cerr << "WARNING - G4RepresentationRelationshipCreator::CreateG4Geometry" << G4endl - << "\tInconsistent association for representations:" << G4endl - << "\t" << e1Name << " - Rep_1 entries: " << places->size() << G4endl - << "\t" << e2Name << " - Rep_2 entries: " << tmpsldV->size() << G4endl - << "\tRepresentation Relationship NOT created." << G4endl; - createdObject=0; - return; - } - - if( complexEnt->EntityExists - ("Representation_Relationship_With_Transformation") ) - { - subEnt = complexEnt->EntityPart - ("Representation_Relationship_With_Transformation"); - - // get subparts - attrName = "transformation_operator"; - Attr = GetNamedAttribute(attrName, *subEnt); - SdaiSelect* sel = Attr->ptr.sh; - - G4String underlyingTypeName(G4String(sel->UnderlyingTypeName())); - G4String itemDefined("Item_Defined_Transformation"); - - if(underlyingTypeName == itemDefined) - { - G4String koe; - SdaiTransformation* transf = (SdaiTransformation*)sel; - - SdaiItem_defined_transformation* iTransf = - transf->operator SdaiItem_defined_transformationH(); - - SdaiRepresentation_itemH repItem1 = iTransf->transform_item_1_(); - SdaiRepresentation_itemH repItem2 = iTransf->transform_item_2_(); - - subEnt = (STEPentity*)repItem1; - itemDefPlaces = new G4PlacementVector(); - itemDefPlaces->push_back( ( (G4Axis2Placement3D*)G4GeometryTable:: - CreateObject(*subEnt) ) ); - - subEnt = (STEPentity*)repItem2; - itemDefPlaces->push_back( ( (G4Axis2Placement3D*)G4GeometryTable:: - CreateObject(*subEnt) ) ); - } - else - { - } - - // subEnt2 = *Attr->ptr.c; - // G4GeometryTable::CreateObject(*subEnt2); - } - - // Place the advanced BREP, so place each manifold solids. - // At this point, one cannot do anything else that guessing (!) the - // logic behind the association of placements with each manifold solid. - // See also creator for Advanced BREP shape Representations. - // All this needs to be reviewed ! - GC - // - G4Axis2Placement3D* place = (G4Axis2Placement3D*)((*places)[0]); - size_t entr = tmpsldV->size(); - for(size_t a = 0; a < entr; a++) - { - if ((0 < a) && (a < places->size())) - place = (G4Axis2Placement3D*)((*places)[a]); - tmpsld = (*tmpsldV)[a]; - if (tmpsld) - { - sld = new G4PlacedSolid((G4BREPSolid*)(tmpsld->GetSolid()), place); - sldV->push_back(sld); - } - else - { - G4cerr << "WARNING - G4RepresentationRelationshipCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL manifold solids vector !" << G4endl - << "\tPlacement failed." << G4endl; - } - } - createdObject = sldV; -} - -void G4RepresentationRelationshipCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc b/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc deleted file mode 100644 index 23ce796d75..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4RepresentationRelationshipWithTransformationCreator.cc +++ /dev/null @@ -1,67 +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: G4RepresentationRelationshipWithTransformationCreator.cc,v 1.5 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4RepresentationRelationshipWithTransformationCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4RepresentationRelationshipWithTransformationCreator.hh" -#include "G4GeometryTable.hh" - -G4RepresentationRelationshipWithTransformationCreator - G4RepresentationRelationshipWithTransformationCreator::csc; - -G4RepresentationRelationshipWithTransformationCreator:: - G4RepresentationRelationshipWithTransformationCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4RepresentationRelationshipWithTransformationCreator:: - ~G4RepresentationRelationshipWithTransformationCreator() {} - -G4RepresentationRelationshipWithTransformationCreator -G4RepresentationRelationshipWithTransformationCreator::GetInstance() -{ - return csc; -} - -void G4RepresentationRelationshipWithTransformationCreator:: - CreateG4Geometry(STEPentity&) -{ -} - -void G4RepresentationRelationshipWithTransformationCreator:: - CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc deleted file mode 100644 index 67522e3830..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ShapeDefinitionRepresentationCreator.cc +++ /dev/null @@ -1,98 +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: G4ShapeDefinitionRepresentationCreator.cc,v 1.8 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4ShapeDefinitionRepresentationCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ShapeDefinitionRepresentationCreator.hh" -#include "G4GeometryTable.hh" - -G4ShapeDefinitionRepresentationCreator - G4ShapeDefinitionRepresentationCreator::csc; - -G4ShapeDefinitionRepresentationCreator:: - G4ShapeDefinitionRepresentationCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ShapeDefinitionRepresentationCreator:: - ~G4ShapeDefinitionRepresentationCreator() {} - -G4ShapeDefinitionRepresentationCreator -G4ShapeDefinitionRepresentationCreator::GetInstance() -{ - return csc; -} - -void G4ShapeDefinitionRepresentationCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4String attrName("used_representation"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - STEPentity* TmpEnt = *Attr->ptr.c; - -#ifdef G4_STEPINTERFACE_DEBUG - G4cout << "G4ShapeDefinitionRepresentationCreator: " - << TmpEnt->EntityName() << G4endl; -#endif - - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - G4PlacedSolid* ps = (G4PlacedSolid*)tmp; - if (!tmp) - G4cerr << "WARNING - G4ShapeDefinitionRepresentationCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL pointer to G4PlacedSolid !" << G4endl - << "\tEntity NOT created." << G4endl; - - createdObject = ps; -/* - // Output messages - G4cout << "Shape definition representation created with " - << "the Advanced Brep shape :" << G4endl; - - G4cout <<" - BBox of the solid :" << G4endl; - G4cout << " box min: " - << ((G4BREPSolid*)ps->GetSolid())->GetBBox()->GetBoxMin().x() << " " - << ((G4BREPSolid*)ps->GetSolid())->GetBBox()->GetBoxMin().y() << " " - << ((G4BREPSolid*)ps->GetSolid())->GetBBox()->GetBoxMin().z() << G4endl; - - G4cout << " box max: " - << ((G4BREPSolid*)ps->GetSolid())->GetBBox()->GetBoxMax().x() << " " - << ((G4BREPSolid*)ps->GetSolid())->GetBBox()->GetBoxMax().y() << " " - << ((G4BREPSolid*)ps->GetSolid())->GetBBox()->GetBoxMax().z() << G4endl; -*/ -} - -void G4ShapeDefinitionRepresentationCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc deleted file mode 100644 index 994559c80f..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationCreator.cc +++ /dev/null @@ -1,103 +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: G4ShapeRepresentationCreator.cc,v 1.7 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4ShapeDefinitionRepresentationCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ShapeRepresentationCreator.hh" -#include "G4GeometryTable.hh" -#include "G4PlacementVector.hh" - -G4ShapeRepresentationCreator G4ShapeRepresentationCreator::csc; - -G4ShapeRepresentationCreator::G4ShapeRepresentationCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ShapeRepresentationCreator::~G4ShapeRepresentationCreator() {} - -G4ShapeRepresentationCreator -G4ShapeRepresentationCreator::GetInstance() -{ - return csc; -} - -void G4ShapeRepresentationCreator::CreateG4Geometry(STEPentity& Ent) -{ - STEPentity* TmpEnt = 0; - G4String attrName("items"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - EntityAggregate *ea = (EntityAggregate*)Attr->ptr.a; - void *tmp=0; - - G4int placementCount = ea->EntryCount(); - EntityNode* en = (EntityNode*)ea->GetHead(); - G4PlacementVector *placements = new G4PlacementVector(); - - // L. Broglia - // G4Placement* place; - G4Axis2Placement3D* place; - - for(G4int a=0;anode; - - // L. Broglia - // place =(G4Placement*)G4GeometryTable::CreateObject(*TmpEnt); - place =(G4Axis2Placement3D*)G4GeometryTable::CreateObject(*TmpEnt); - - if (place) - placements->push_back(place); - en = (EntityNode*)en->NextNode(); - } - - G4int placementNum = placements->size(); - if (placementNum != placementCount) - G4cerr << "WARNING - G4ShapeRepresentationCreator::CreateG4Geometry" << G4endl - << "\tTotal of " << placementNum << " G4Axis2Placement3D components created, out of " - << placementCount << " expected !" << G4endl - << "\tEntity not correctly instantiated." << G4endl; - - attrName="context_of_items"; - Attr = GetNamedAttribute(attrName, Ent); - TmpEnt = *Attr->ptr.c; - tmp =G4GeometryTable::CreateObject(*TmpEnt); - - createdObject = placements; -} - -void G4ShapeRepresentationCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc b/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc deleted file mode 100644 index 1576af0f9c..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ShapeRepresentationRelationshipCreator.cc +++ /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. * -// ******************************************************************** -// -// -// $Id: G4ShapeRepresentationRelationshipCreator.cc,v 1.5 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4ShapeDefinitionRepresentationCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ShapeRepresentationRelationshipCreator.hh" -#include "G4GeometryTable.hh" - -G4ShapeRepresentationRelationshipCreator - G4ShapeRepresentationRelationshipCreator::csc; - -G4ShapeRepresentationRelationshipCreator:: - G4ShapeRepresentationRelationshipCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ShapeRepresentationRelationshipCreator:: - ~G4ShapeRepresentationRelationshipCreator() {} - -G4ShapeRepresentationRelationshipCreator -G4ShapeRepresentationRelationshipCreator::GetInstance() -{ - return csc; -} - -void G4ShapeRepresentationRelationshipCreator::CreateG4Geometry(STEPentity&) -{ -} - -void G4ShapeRepresentationRelationshipCreator::CreateSTEPGeometry(void*) -{ -} diff --git a/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.cc deleted file mode 100644 index 3ae5a7ddad..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4SphericalSurfaceCreator.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: G4SphericalSurfaceCreator.cc,v 1.5 2002/11/21 16:49:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4SphericalSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4SphericalSurfaceCreator.hh" -#include "G4GeometryTable.hh" -#include "G4SphericalSurface.hh" - -G4SphericalSurfaceCreator G4SphericalSurfaceCreator::csc; - -G4SphericalSurfaceCreator::G4SphericalSurfaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4SphericalSurfaceCreator::~G4SphericalSurfaceCreator() {} - -G4SphericalSurfaceCreator -G4SphericalSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4SphericalSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - // Made by L. Broglia - - STEPattribute *Attr; - G4Axis2Placement3D* place; - G4double radius; - - G4String attrName("position"); - Attr = GetNamedAttribute(attrName, Ent); - - // Get placement - STEPentity* TmpEnt = *Attr->ptr.c; // ptr.c --> ENTITY_TYPE - void *tmp = G4GeometryTable::CreateObject(*TmpEnt); - place = (G4Axis2Placement3D*)tmp; - - // Get radius - G4String attrNameR("radius"); - Attr = GetNamedAttribute(attrNameR, Ent); - radius = *Attr->ptr.r; - - - G4SphericalSurface* aG4sphere = 0; - if (place) - aG4sphere = new G4SphericalSurface( (*place).GetLocation() , - (*place).GetPX() , - (*place).GetPZ() , - radius , - 0, 2*M_PI , - 0, M_PI ); - else - G4cerr << "WARNING - G4SphericalSurfaceCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL axis placement (G4Axis2Placement3D) !" << G4endl - << "\tSpherical Surface NOT created." << G4endl; - - createdObject = aG4sphere; -} - -void G4SphericalSurfaceCreator::CreateSTEPGeometry(void* G4obj) -{ - G4SphericalSurface* fSph = (G4SphericalSurface*)G4obj; - SdaiSpherical_surface* srf= new SdaiSpherical_surface(); - // Get placement - G4String placementName("Axis2Placement3d"); - void * tmp =G4GeometryTable::CreateSTEPObject(&fSph, placementName); - SdaiAxis2_placement_3d *place = (SdaiAxis2_placement_3d*)tmp; - srf->position_(place); - // radius - srf->radius_(fSph->GetRadius()); - - // Set STEP info - srf->SetFileId(GetNextId()); - srf->name_(""); - - // Write out object - srf->STEPwrite(G4cout); - - createdObject = srf; -} diff --git a/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc b/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc deleted file mode 100644 index c2ea8f4080..0000000000 --- a/source/geometry/solids/STEPinterface/src/G4ToroidalSurfaceCreator.cc +++ /dev/null @@ -1,114 +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: G4ToroidalSurfaceCreator.cc,v 1.5 2002/11/21 16:49:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// ---------------------------------------------------------------------- -// Class G4ToroidalSurfaceCreator -// -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- - -#include "G4ToroidalSurfaceCreator.hh" -#include "G4GeometryTable.hh" -#include "G4ToroidalSurface.hh" - -G4ToroidalSurfaceCreator G4ToroidalSurfaceCreator::csc; - -G4ToroidalSurfaceCreator::G4ToroidalSurfaceCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ToroidalSurfaceCreator::~G4ToroidalSurfaceCreator() {} - -G4ToroidalSurfaceCreator G4ToroidalSurfaceCreator::GetInstance() -{ - return csc; -} - -void G4ToroidalSurfaceCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4Axis2Placement3D* place; - G4double majorRadius, minorRadius; - - // Get the placement - G4String attrName("position"); - STEPattribute *Attr = GetNamedAttribute(attrName, Ent); - STEPentity* TmpEnt= *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - place = (G4Axis2Placement3D*)tmp; - - // get radii - attrName = "major_radius"; - Attr = GetNamedAttribute(attrName, Ent); - majorRadius = *Attr->ptr.r; - attrName = "minor_radius"; - Attr = GetNamedAttribute(attrName, Ent); - minorRadius = *Attr->ptr.r; - - - G4ToroidalSurface* aTorus = 0; - if (place) - aTorus = new G4ToroidalSurface( (*place).GetLocation() , - (*place).GetPZ() , - (*place).GetPX() , - minorRadius , - majorRadius ); - else - G4cerr << "WARNING - G4ToroidalSurfaceCreator::CreateG4Geometry" << G4endl - << "\tUnexpected NULL axis placement (G4Axis2Placement3D) !" << G4endl - << "\tToroidal Surface NOT created." << G4endl; - - createdObject = aTorus; - -} - -void G4ToroidalSurfaceCreator::CreateSTEPGeometry(void* G4obj) -{ - G4ToroidalSurface* tor = (G4ToroidalSurface*)G4obj; - SdaiToroidal_surface* srf= new SdaiToroidal_surface(); - // Get placement - G4String placementName("Axis2Placement3d"); - void * tmp =G4GeometryTable::CreateSTEPObject(&tor, placementName); - SdaiAxis2_placement_3d *place = (SdaiAxis2_placement_3d*)tmp; - srf->position_(place); - // radiis - srf->minor_radius_(tor->GetMinRadius()); - srf->major_radius_(tor->GetMaxRadius()); - - // Set STEP info - srf->SetFileId(GetNextId()); - srf->name_(""); - - // Write out object - srf->STEPwrite(G4cout); - - createdObject = srf; -} diff --git a/source/geometry/solids/specific/GNUmakefile b/source/geometry/solids/specific/GNUmakefile index 8d07188b76..53d797838d 100644 --- a/source/geometry/solids/specific/GNUmakefile +++ b/source/geometry/solids/specific/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2000/04/27 10:37:26 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/11/14 14:46:15 gcosmo Exp $ # ---------------------------------------------------------------------------- # GNUmakefile for geometry/solids/specific library. Gabriele Cosmo, 05/04/00. # ---------------------------------------------------------------------------- @@ -19,4 +19,8 @@ CPPFLAGS += -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include +ifdef G4SPECSDEBUG + CPPFLAGS += -DG4SPECSDEBUG +endif + include $(G4INSTALL)/config/common.gmk diff --git a/source/geometry/solids/specific/History b/source/geometry/solids/specific/History index 34958be69f..1e47ea6cd7 100644 --- a/source/geometry/solids/specific/History +++ b/source/geometry/solids/specific/History @@ -1,4 +1,4 @@ -$Id: History,v 1.24 2003/03/28 09:53:04 gcosmo Exp $ +$Id: History,v 1.33 2003/11/22 10:11:57 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,38 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +22-Nov-2003, G.Cosmo (geom-specific-V05-02-07) +- Fixed upper bound for protection check introduced in G4Polycone and + G4Polyhedra constructors. + +17-Nov-2003, G.Cosmo (geom-specific-V05-02-06) +- Added protections in G4Polycone and G4Polyhedra constructors for + invalid constructs with no contiguous segments in Z planes as input. + +04-Nov-2003, G.Cosmo (geom-specific-V05-02-05) +- Added SetOriginalParameters() method to G4Polycone and G4Polyhedra. + +03-Nov-2003, G.Cosmo (geom-specific-V05-02-04) +- Code cleanup and headers inclusion review + (replaced by forward declarations where necessary). + +28-Oct-2003, G.Cosmo (geom-specific-V05-02-03) +- Migrated to new G4Exception scheme. + +20-Oct-2003, G.Cosmo (geom-specific-V05-02-02) +- Added Reset() method in G4Polycone and G4Polyhedra to allow + recalculation and reshape of the solid if new original_parameters + are provided. + +30-Sep-2003, G.Cosmo (geom-specific-V05-02-01) +- Updated GNUmakefile for unit tests, according to new structure + introduced in "geometry-V05-02-00". + +16-Jun-2003, G.Cosmo (geom-specific-V05-02-00) +- Added accessors to original_parameters for G4Polycone and G4Polyhedra. + Made G4PolyconeHistorical and G4PolyhedraHistorical classes in global + scope (temporary solution). + 28-Mar-2003, G.Cosmo (geom-specific-V05-00-00) - Fixed initialisation of base class in copy contructor for: G4PolyPhiFace, G4PolyconeSide, G4PolyhedraSide. diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.hh b/source/geometry/solids/specific/include/G4ClippablePolygon.hh index 9aef99436d..fcfb5e4a6b 100644 --- a/source/geometry/solids/specific/include/G4ClippablePolygon.hh +++ b/source/geometry/solids/specific/include/G4ClippablePolygon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClippablePolygon.hh,v 1.8 2003/06/16 16:53:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ClippablePolygon.hh,v 1.9 2003/11/03 18:39:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -38,19 +38,15 @@ // Author: // David C. Williams (davidw@scipp.ucsc.edu) // -------------------------------------------------------------------- - #ifndef G4ClippablePolygon_hh #define G4ClippablePolygon_hh #include -#include "globals.hh" +#include "G4Types.hh" #include "geomdefs.hh" #include "G4ThreeVector.hh" -class G4VoxelLimits; -class G4AffineTransform; - class G4AffineTransform; class G4VoxelLimits; diff --git a/source/geometry/solids/specific/include/G4ClippablePolygon.icc b/source/geometry/solids/specific/include/G4ClippablePolygon.icc index 1062cc5e24..6fd4e045f1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file diff --git a/source/geometry/solids/specific/include/G4EllipticalTube.hh b/source/geometry/solids/specific/include/G4EllipticalTube.hh index c35b2e7f85..5a204a5a64 100644 --- a/source/geometry/solids/specific/include/G4EllipticalTube.hh +++ b/source/geometry/solids/specific/include/G4EllipticalTube.hh @@ -22,7 +22,7 @@ // // // $Id: G4EllipticalTube.hh,v 1.11 2003/06/16 16:53:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/geometry/solids/specific/include/G4EllipticalTube.icc b/source/geometry/solids/specific/include/G4EllipticalTube.icc index 4465f53944..db24b9c211 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.1 2002/10/28 11:47:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 494729d13b..08c37731e9 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.5 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EnclosingCylinder.hh,v 1.6 2003/11/03 18:39:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -39,11 +39,10 @@ // Author: // David C. Williams (davidw@scipp.ucsc.edu) // -------------------------------------------------------------------- - #ifndef G4EnclosingCylinder_hh #define G4EnclosingCylinder_hh -#include "globals.hh" +#include "G4Types.hh" #include "geomdefs.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/solids/specific/include/G4Hype.hh b/source/geometry/solids/specific/include/G4Hype.hh index 826527813d..0b991d5739 100644 --- a/source/geometry/solids/specific/include/G4Hype.hh +++ b/source/geometry/solids/specific/include/G4Hype.hh @@ -23,7 +23,7 @@ // // $Id: G4Hype.hh,v 1.7 2003/06/16 16:53:52 gunter Exp $ // $Original: G4Hype.hh,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Hype.icc b/source/geometry/solids/specific/include/G4Hype.icc index d67d01f840..23b3d1e822 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.3 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7dc194b995..f9e96398d6 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.5 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4IntersectingCone.hh,v 1.6 2003/11/03 18:39:54 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -39,11 +39,10 @@ // Author: // David C. Williams (davidw@scipp.ucsc.edu) // -------------------------------------------------------------------- - #ifndef G4IntersectingCone_hh #define G4IntersectingCone_hh -#include "globals.hh" +#include "G4Types.hh" #include "geomdefs.hh" #include "G4ThreeVector.hh" diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.hh b/source/geometry/solids/specific/include/G4PolyPhiFace.hh index 92547bf1d0..2bc9da014c 100644 --- a/source/geometry/solids/specific/include/G4PolyPhiFace.hh +++ b/source/geometry/solids/specific/include/G4PolyPhiFace.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyPhiFace.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4PolyPhiFace.icc b/source/geometry/solids/specific/include/G4PolyPhiFace.icc index 66e415f055..5fbb15032f 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.4 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polycone.hh b/source/geometry/solids/specific/include/G4Polycone.hh index 1172d05dd0..cbdf647e80 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.7.4.1 2003/06/16 17:18:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Polycone.hh,v 1.12 2003/11/05 17:41:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -61,10 +61,24 @@ #include "G4VCSGfaceted.hh" #include "G4PolyconeSide.hh" - class G4EnclosingCylinder; class G4ReduciblePolygon; class G4VCSGface; +class G4PolyconeHistorical +{ + public: + G4PolyconeHistorical(); + ~G4PolyconeHistorical(); + G4PolyconeHistorical( const G4PolyconeHistorical& source ); + G4PolyconeHistorical& operator=( const G4PolyconeHistorical& right ); + + G4double Start_angle; + G4double Opening_angle; + G4int Num_z_planes; + G4double *Z_values; + G4double *Rmin; + G4double *Rmax; +}; class G4Polycone : public G4VCSGfaceted { @@ -107,6 +121,8 @@ class G4Polycone : public G4VCSGfaceted G4Polyhedron* CreatePolyhedron() const; G4NURBS* CreateNURBS() const; + G4bool Reset(); + // Accessors inline G4double GetStartPhi() const; @@ -114,7 +130,9 @@ class G4Polycone : public G4VCSGfaceted inline G4bool IsOpen() const; inline G4int GetNumRZCorner() const; inline G4PolyconeSideRZ GetCorner(G4int index) const; - + inline G4PolyconeHistorical* GetOriginalParameters() const; + inline void SetOriginalParameters(G4PolyconeHistorical* pars); + protected: // without description // Here are our parameters @@ -124,25 +142,7 @@ class G4Polycone : public G4VCSGfaceted G4bool phiIsOpen; // true if there is a phi segment G4int numCorner; // number RZ points G4PolyconeSideRZ *corners; // corner r,z points - - // The following is temporary until graphics_reps is brought up - // to this design - - class G4PolyconeHistorical - { - public: - G4PolyconeHistorical(); - ~G4PolyconeHistorical(); - G4PolyconeHistorical( const G4PolyconeHistorical &source ); - G4double Start_angle; - G4double Opening_angle; - G4int Num_z_planes; - G4double *Z_values; - G4double *Rmin; - G4double *Rmax; - }; - - G4PolyconeHistorical *original_parameters; + G4PolyconeHistorical *original_parameters; // original input parameters // Our quick test diff --git a/source/geometry/solids/specific/include/G4Polycone.icc b/source/geometry/solids/specific/include/G4Polycone.icc index 3eb2929703..744c1e1b8c 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.1 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Polycone.icc,v 1.4 2003/11/05 17:41:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -60,3 +60,18 @@ G4PolyconeSideRZ G4Polycone::GetCorner(G4int index) const { return corners[index]; } + +inline +G4PolyconeHistorical* G4Polycone::GetOriginalParameters() const +{ + return original_parameters; +} + +inline +void G4Polycone::SetOriginalParameters(G4PolyconeHistorical* pars) +{ + if (!pars) + G4Exception("G4Polycone::SetOriginalParameters()", "InvalidSetup", + FatalException, "NULL pointer to parameters!"); + *original_parameters = *pars; +} diff --git a/source/geometry/solids/specific/include/G4PolyconeSide.hh b/source/geometry/solids/specific/include/G4PolyconeSide.hh index e89ddc4f5d..d830385299 100644 --- a/source/geometry/solids/specific/include/G4PolyconeSide.hh +++ b/source/geometry/solids/specific/include/G4PolyconeSide.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyconeSide.hh,v 1.5 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4Polyhedra.hh b/source/geometry/solids/specific/include/G4Polyhedra.hh index b6155aae07..86e76b9eb3 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.6.4.1 2003/06/16 17:18:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Polyhedra.hh,v 1.11 2003/11/05 17:41:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -65,6 +65,23 @@ class G4EnclosingCylinder; class G4ReduciblePolygon; +class G4PolyhedraHistorical +{ + public: + + G4PolyhedraHistorical(); + ~G4PolyhedraHistorical(); + G4PolyhedraHistorical( const G4PolyhedraHistorical &source ); + G4PolyhedraHistorical& operator=( const G4PolyhedraHistorical& right ); + + G4double Start_angle; + G4double Opening_angle; + G4int numSide; + G4int Num_z_planes; + G4double *Z_values; + G4double *Rmin; + G4double *Rmax; +}; class G4Polyhedra : public G4VCSGfaceted { @@ -110,6 +127,8 @@ class G4Polyhedra : public G4VCSGfaceted G4Polyhedron* CreatePolyhedron() const; G4NURBS* CreateNURBS() const; + G4bool Reset(); + // Accessors inline G4int GetNumSide() const; @@ -118,7 +137,9 @@ class G4Polyhedra : public G4VCSGfaceted inline G4bool IsOpen() const; inline G4int GetNumRZCorner() const; inline G4PolyhedraSideRZ GetCorner( const G4int index ) const; - + inline G4PolyhedraHistorical* GetOriginalParameters() const; + inline void SetOriginalParameters(G4PolyhedraHistorical* pars); + protected: // without description // Here are our parameters @@ -129,26 +150,7 @@ class G4Polyhedra : public G4VCSGfaceted G4bool phiIsOpen; // true if there is a phi segment G4int numCorner; // number RZ points G4PolyhedraSideRZ *corners; // our corners - - // The following is temporary until graphics_reps is brought up - // to this design - - struct G4PolyhedraHistorical - { - G4PolyhedraHistorical(); - ~G4PolyhedraHistorical(); - G4PolyhedraHistorical( const G4PolyhedraHistorical &source ); - - G4double Start_angle; - G4double Opening_angle; - G4int numSide; - G4int Num_z_planes; - G4double *Z_values; - G4double *Rmin; - G4double *Rmax; - }; - - G4PolyhedraHistorical *original_parameters; + G4PolyhedraHistorical *original_parameters; // original input parameters // Our quick test diff --git a/source/geometry/solids/specific/include/G4Polyhedra.icc b/source/geometry/solids/specific/include/G4Polyhedra.icc index 0d38db0984..201f05d82e 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.1 2002/10/28 11:47:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Polyhedra.icc,v 1.4 2003/11/05 17:41:24 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // GEANT 4 inline definitions file @@ -67,3 +67,18 @@ G4PolyhedraSideRZ G4Polyhedra::GetCorner( const G4int index ) const { return corners[index]; } + +inline +G4PolyhedraHistorical* G4Polyhedra::GetOriginalParameters() const +{ + return original_parameters; +} + +inline +void G4Polyhedra::SetOriginalParameters(G4PolyhedraHistorical* pars) +{ + if (!pars) + G4Exception("G4Polyhedra::SetOriginalParameters()", "InvalidSetup", + FatalException, "NULL pointer to parameters!"); + *original_parameters = *pars; +} diff --git a/source/geometry/solids/specific/include/G4PolyhedraSide.hh b/source/geometry/solids/specific/include/G4PolyhedraSide.hh index a5b6159130..1b0c5faa1c 100644 --- a/source/geometry/solids/specific/include/G4PolyhedraSide.hh +++ b/source/geometry/solids/specific/include/G4PolyhedraSide.hh @@ -22,7 +22,7 @@ // // // $Id: G4PolyhedraSide.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/include/G4ReduciblePolygon.hh b/source/geometry/solids/specific/include/G4ReduciblePolygon.hh index 9c2a59e0b6..32b6125d02 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.5 2002/10/28 11:47:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ReduciblePolygon.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -51,11 +51,10 @@ // Author: // David C. Williams (davidw@scipp.ucsc.edu) // -------------------------------------------------------------------- - #ifndef G4ReduciblePolygon_hh #define G4ReduciblePolygon_hh -#include "globals.hh" +#include "G4Types.hh" class G4ReduciblePolygon { diff --git a/source/geometry/solids/specific/include/G4SolidExtentList.hh b/source/geometry/solids/specific/include/G4SolidExtentList.hh index 450ab32c27..4bc0cdadce 100644 --- a/source/geometry/solids/specific/include/G4SolidExtentList.hh +++ b/source/geometry/solids/specific/include/G4SolidExtentList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SolidExtentList.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SolidExtentList.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -42,11 +42,10 @@ // Author: // David C. Williams (davidw@scipp.ucsc.edu) // -------------------------------------------------------------------- - #ifndef G4SolidExtentList_hh #define G4SolidExtentList_hh -#include "globals.hh" +#include "G4Types.hh" #include "G4ClippablePolygon.hh" diff --git a/source/geometry/solids/specific/include/G4VCSGface.hh b/source/geometry/solids/specific/include/G4VCSGface.hh index 57c43edc23..1d0e14f51f 100644 --- a/source/geometry/solids/specific/include/G4VCSGface.hh +++ b/source/geometry/solids/specific/include/G4VCSGface.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCSGface.hh,v 1.5 2002/10/28 11:47:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VCSGface.hh,v 1.6 2003/11/03 18:39:55 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -256,15 +256,13 @@ // Author: // David C. Williams (davidw@scipp.ucsc.edu) // -------------------------------------------------------------------- - #ifndef G4VCSGface_hh #define G4VCSGface_hh -#include "G4VSolid.hh" - -#include "globals.hh" +#include "G4Types.hh" #include "G4ThreeVector.hh" #include "geomdefs.hh" +#include "G4VSolid.hh" class G4VoxelLimits; class G4AffineTransform; diff --git a/source/geometry/solids/specific/include/G4VCSGfaceted.hh b/source/geometry/solids/specific/include/G4VCSGfaceted.hh index da1276ca14..752763848a 100644 --- a/source/geometry/solids/specific/include/G4VCSGfaceted.hh +++ b/source/geometry/solids/specific/include/G4VCSGfaceted.hh @@ -22,7 +22,7 @@ // // // $Id: G4VCSGfaceted.hh,v 1.8 2003/06/16 16:53:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4ClippablePolygon.cc b/source/geometry/solids/specific/src/G4ClippablePolygon.cc index abf38b57c8..265c897eb6 100644 --- a/source/geometry/solids/specific/src/G4ClippablePolygon.cc +++ b/source/geometry/solids/specific/src/G4ClippablePolygon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ClippablePolygon.cc,v 1.8 2002/10/30 13:52:22 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ClippablePolygon.cc,v 1.9 2003/10/28 17:15:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -155,7 +155,8 @@ const G4ThreeVector *G4ClippablePolygon::GetMinPoint( const EAxis axis ) const { G4int noLeft = vertices.size(); if (noLeft==0) - G4Exception("G4ClippablePolygon::GetMinPoint() - empty polygon"); + G4Exception("G4ClippablePolygon::GetMinPoint()", + "InvalidSetup", FatalException, "Empty polygon."); const G4ThreeVector *answer = &(vertices[0]); G4double min = answer->operator()(axis); @@ -185,7 +186,8 @@ const G4ThreeVector *G4ClippablePolygon::GetMaxPoint( const EAxis axis ) const { G4int noLeft = vertices.size(); if (noLeft==0) - G4Exception("G4ClippablePolygon::GetMaxPoint() - empty polygon"); + G4Exception("G4ClippablePolygon::GetMaxPoint()", + "InvalidSetup", FatalException, "Empty polygon."); const G4ThreeVector *answer = &(vertices[0]); G4double max = answer->operator()(axis); diff --git a/source/geometry/solids/specific/src/G4EllipticalTube.cc b/source/geometry/solids/specific/src/G4EllipticalTube.cc index 9353cdf36d..e5acf17597 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.14 2003/06/16 16:53:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EllipticalTube.cc,v 1.15 2003/10/28 17:15:56 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -570,7 +570,8 @@ G4double G4EllipticalTube::DistanceToOut( const G4ThreeVector& p, G4cout << "v.z() = " << v.z() << G4endl << G4endl; G4cout << "Proposed distance :" << G4endl << G4endl; G4cout << "snxt = " << sBest/mm << " mm" << G4endl << G4endl; - G4Exception( "G4EllipticalTube::DistanceToOut() - Point p is outside" ); + G4Exception( "G4EllipticalTube::DistanceToOut(p,v,...)", + "Notification", JustWarning, "Point p is outside !?" ); } if (calcNorm) *norm = *nBest; return sBest; diff --git a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc index fb2d225124..a9765c7469 100644 --- a/source/geometry/solids/specific/src/G4EnclosingCylinder.cc +++ b/source/geometry/solids/specific/src/G4EnclosingCylinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4EnclosingCylinder.cc,v 1.5 2002/10/30 13:52:23 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4Hype.cc b/source/geometry/solids/specific/src/G4Hype.cc index eac778c3e9..f8ba69c3f9 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.10 2003/06/16 16:53:58 gunter Exp $ +// $Id: G4Hype.cc,v 1.11 2003/10/28 17:15:56 gcosmo Exp $ // $Original: G4Hype.cc,v 1.0 1998/06/09 16:57:50 safai Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -85,13 +85,11 @@ G4Hype::G4Hype(const G4String& pName, } else { - G4cout << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl - << " Invalid Z half-length: " - << newHalfLenZ/mm << " mm" << G4endl; G4cerr << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl << " Invalid Z half-length: " << newHalfLenZ/mm << " mm" << G4endl; - G4Exception("G4Hype::G4Hype() - invalid Z half-length"); + G4Exception("G4Hype::G4Hype()", "InvalidSetup", FatalException, + "Invalid Z half-length."); } // Check radii @@ -109,32 +107,24 @@ G4Hype::G4Hype(const G4String& pName, // outerRadius=newInnerRadius; // DCW: swapping is fine, but what about the stereo angles??? - G4cout << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl - << " Invalid radii ! Inner radius: " - << newInnerRadius/mm << " mm" << G4endl - << " Outer radius: " - << newOuterRadius/mm << " mm" << G4endl; G4cerr << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl << " Invalid radii ! Inner radius: " << newInnerRadius/mm << " mm" << G4endl << " Outer radius: " << newOuterRadius/mm << " mm" << G4endl; - G4Exception("G4Hype::G4Hype() - outer > inner radius"); + G4Exception("G4Hype::G4Hype()", "InvalidSetup", FatalException, + "Error: outer > inner radius."); } } else { - G4cout << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl - << " Invalid radii ! Inner radius: " - << newInnerRadius/mm << " mm" << G4endl - << " Outer radius: " - << newOuterRadius/mm << " mm" << G4endl; G4cerr << "ERROR - G4Hype::G4Hype(): " << GetName() << G4endl << " Invalid radii ! Inner radius: " << newInnerRadius/mm << " mm" << G4endl << " Outer radius: " << newOuterRadius/mm << " mm" << G4endl; - G4Exception("G4Hype::G4Hype() - invalid radii"); + G4Exception("G4Hype::G4Hype()", "InvalidSetup", FatalException, + "Invalid radii."); } innerRadius2=innerRadius*innerRadius; diff --git a/source/geometry/solids/specific/src/G4IntersectingCone.cc b/source/geometry/solids/specific/src/G4IntersectingCone.cc index da24d544bd..1411b7f64c 100644 --- a/source/geometry/solids/specific/src/G4IntersectingCone.cc +++ b/source/geometry/solids/specific/src/G4IntersectingCone.cc @@ -22,7 +22,7 @@ // // // $Id: G4IntersectingCone.cc,v 1.5 2002/10/28 11:47:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/geometry/solids/specific/src/G4PolyPhiFace.cc b/source/geometry/solids/specific/src/G4PolyPhiFace.cc index ba54a6adb3..cf09d83d78 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.6 2003/03/28 09:52:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PolyPhiFace.cc,v 1.7 2003/10/28 17:15:57 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -252,7 +252,8 @@ void G4PolyPhiFace::Diagnose( G4VSolid *owner ) test -= 1E-6*corner->norm3D; if (owner->Inside(test) != kInside) - G4Exception( "G4PolyPhiFace::Diagnose() - Bad vertex normal found" ); + G4Exception( "G4PolyPhiFace::Diagnose()", "InvalidSetup", + FatalException, "Bad vertex normal found." ); } while( ++corner < corners+numEdges ); } diff --git a/source/geometry/solids/specific/src/G4Polycone.cc b/source/geometry/solids/specific/src/G4Polycone.cc index d51d310d84..ad2c87a3d6 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.8.2.1 2003/06/16 17:18:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Polycone.cc,v 1.19 2003/11/22 10:11:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- @@ -43,7 +43,7 @@ #include "G4Polyhedron.hh" #include "G4EnclosingCylinder.hh" #include "G4ReduciblePolygon.hh" - +#include "G4VPVParameterisation.hh" // // Constructor (GEANT3 style parameters) @@ -72,11 +72,28 @@ G4Polycone::G4Polycone( const G4String& name, G4int i; for (i=0; i rOuter[i+1]) + ||(rInner[i+1] > rOuter[i]) ) + { + DumpInfo(); + G4cerr << "ERROR - G4Polycone::G4Polycone()" + << G4endl + << " Segments are not contiguous !" << G4endl + << " rMin[" << i << "] = " << rInner[i] + << " -- rMax[" << i+1 << "] = " << rOuter[i+1] << G4endl + << " rMin[" << i+1 << "] = " << rInner[i+1] + << " -- rMax[" << i << "] = " << rOuter[i] << G4endl; + G4Exception("G4Polycone::G4Polycone()", "InvalidSetup", FatalException, + "Cannot create a Polycone with no contiguous segments."); + } + } original_parameters->Z_values[i] = zPlane[i]; original_parameters->Rmin[i] = rInner[i]; original_parameters->Rmax[i] = rOuter[i]; } - + // // Build RZ polygon using special PCON/PGON GEANT3 constructor // @@ -128,13 +145,11 @@ void G4Polycone::Create( G4double phiStart, // if (rz->Amin() < 0.0) { - G4cout << "ERROR - G4Polycone::Create(): " << GetName() << G4endl - << " All R values must be >= 0 !" - << G4endl; G4cerr << "ERROR - G4Polycone::Create(): " << GetName() << G4endl << " All R values must be >= 0 !" << G4endl; - G4Exception("G4Polycone::Create() - Illegal input parameters"); + G4Exception("G4Polycone::Create()", "InvalidSetup", FatalException, + "Illegal input parameters."); } G4double rzArea = rz->Area(); @@ -143,36 +158,30 @@ void G4Polycone::Create( G4double phiStart, else if (rzArea < -kCarTolerance) { - G4cout << "ERROR - G4Polycone::Create(): " << GetName() << G4endl - << " R/Z cross section is zero or near zero: " - << rzArea << G4endl; G4cerr << "ERROR - G4Polycone::Create(): " << GetName() << G4endl << " R/Z cross section is zero or near zero: " << rzArea << G4endl; - G4Exception("G4Polycone::Create() - Illegal input parameters"); + G4Exception("G4Polycone::Create()", "InvalidSetup", FatalException, + "Illegal input parameters."); } if ( (!rz->RemoveDuplicateVertices( kCarTolerance )) || (!rz->RemoveRedundantVertices( kCarTolerance )) ) { - G4cout << "ERROR - G4Polycone::Create(): " << GetName() << G4endl - << " Too few unique R/Z values !" - << G4endl; G4cerr << "ERROR - G4Polycone::Create(): " << GetName() << G4endl << " Too few unique R/Z values !" << G4endl; - G4Exception("G4Polycone::Create() - Illegal input parameters"); + G4Exception("G4Polycone::Create()", "InvalidSetup", FatalException, + "Illegal input parameters."); } if (rz->CrossesItself(1/kInfinity)) { - G4cout << "ERROR - G4Polycone::Create(): " << GetName() << G4endl - << " R/Z segments cross !" - << G4endl; G4cerr << "ERROR - G4Polycone::Create(): " << GetName() << G4endl << " R/Z segments cross !" << G4endl; - G4Exception("G4Polycone::Create() - Illegal input parameters"); + G4Exception("G4Polycone::Create()", "InvalidSetup", FatalException, + "Illegal input parameters."); } numCorner = rz->NumVertices(); @@ -373,6 +382,43 @@ void G4Polycone::CopyStuff( const G4Polycone &source ) } +// +// Reset +// +G4bool G4Polycone::Reset() +{ + if (!original_parameters) + { + G4cerr << "Solid " << GetName() << " built using generic construct." + << G4endl << "Specify original parameters first !" << G4endl; + G4Exception("G4Polycone::Reset()", "NotApplicableConstruct", + JustWarning, "Parameters NOT resetted."); + return 1; + } + + // + // Clear old setup + // + G4VCSGfaceted::DeleteStuff(); + delete [] corners; + delete enclosingCylinder; + + // + // Rebuild polycone + // + G4ReduciblePolygon *rz = + new G4ReduciblePolygon( original_parameters->Rmin, + original_parameters->Rmax, + original_parameters->Z_values, + original_parameters->Num_z_planes ); + Create( original_parameters->Start_angle, + original_parameters->Opening_angle, rz ); + delete rz; + + return 0; +} + + // // Inside // @@ -427,10 +473,11 @@ G4double G4Polycone::DistanceToIn( const G4ThreeVector &p ) const // // ComputeDimensions // -void G4Polycone::ComputeDimensions( G4VPVParameterisation*, - const G4int, - const G4VPhysicalVolume* ) +void G4Polycone::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ) { + p->ComputeDimensions(*this,n,pRep); } // @@ -464,13 +511,13 @@ std::ostream& G4Polycone::StreamInfo( std::ostream& os ) const os << " Z plane " << i << ": " << original_parameters->Z_values[i] << "\n"; } - os << " Tangent distances to inner surface: \n"; + os << " Tangent distances to inner surface (Rmin): \n"; for (i=0; iRmin[i] << "\n"; } - os << " Tangent distances to outer surface: \n"; + os << " Tangent distances to outer surface (Rmax): \n"; for (i=0; i rOuter[i+1]) + ||(rInner[i+1] > rOuter[i]) ) + { + DumpInfo(); + G4cerr << "ERROR - G4Polyhedra::G4Polyhedra()" + << G4endl + << " Segments are not contiguous !" << G4endl + << " rMin[" << i << "] = " << rInner[i] + << " -- rMax[" << i+1 << "] = " << rOuter[i+1] << G4endl + << " rMin[" << i+1 << "] = " << rInner[i+1] + << " -- rMax[" << i << "] = " << rOuter[i] << G4endl; + G4Exception("G4Polyhedra::G4Polyhedra()","InvalidSetup",FatalException, + "Cannot create a Polyhedra with no contiguous segments."); + } + } original_parameters->Z_values[i] = zPlane[i]; original_parameters->Rmin[i] = rInner[i]/convertRad; original_parameters->Rmax[i] = rOuter[i]/convertRad; @@ -171,13 +187,11 @@ void G4Polyhedra::Create( G4double phiStart, // if (rz->Amin() < 0.0) { - G4cout << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl - << " All R values must be >= 0 !" - << G4endl; G4cerr << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl << " All R values must be >= 0 !" << G4endl; - G4Exception("G4Polyhedra::Create() - Illegal input parameters"); + G4Exception("G4Polyhedra::Create()", "InvalidSetup", + FatalException, "Illegal input parameters."); } G4double rzArea = rz->Area(); @@ -186,36 +200,30 @@ void G4Polyhedra::Create( G4double phiStart, else if (rzArea < -kCarTolerance) { - G4cout << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl - << " R/Z cross section is zero or near zero: " - << rzArea << G4endl; G4cerr << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl << " R/Z cross section is zero or near zero: " << rzArea << G4endl; - G4Exception("G4Polyhedra::Create() - Illegal input parameters"); + G4Exception("G4Polyhedra::Create()", "InvalidSetup", + FatalException, "Illegal input parameters."); } if ( (!rz->RemoveDuplicateVertices( kCarTolerance )) || (!rz->RemoveRedundantVertices( kCarTolerance )) ) { - G4cout << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl - << " Too few unique R/Z values !" - << G4endl; G4cerr << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl << " Too few unique R/Z values !" << G4endl; - G4Exception("G4Polyhedra::Create() - Illegal input parameters"); + G4Exception("G4Polyhedra::Create()", "InvalidSetup", + FatalException, "Illegal input parameters."); } if (rz->CrossesItself( 1/kInfinity )) { - G4cout << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl - << " R/Z segments cross !" - << G4endl; G4cerr << "ERROR - G4Polyhedra::Create() " << GetName() << G4endl << " R/Z segments cross !" << G4endl; - G4Exception("G4Polyhedra::Create() - Illegal input parameters"); + G4Exception("G4Polyhedra::Create()", "InvalidSetup", + FatalException, "Illegal input parameters."); } numCorner = rz->NumVertices(); @@ -425,6 +433,55 @@ void G4Polyhedra::CopyStuff( const G4Polyhedra &source ) } +// +// Reset +// +// Recalculates and reshapes the solid, given pre-assigned +// original_parameters. +// +G4bool G4Polyhedra::Reset() +{ + if (!original_parameters) + { + G4Exception("G4Polyhedra::Reset()", "NotApplicableConstruct", + JustWarning, "Parameters NOT resetted."); + G4cerr << "Solid " << GetName() << " built using generic construct." + << G4endl << "Specify original parameters first !" << G4endl; + return 1; + } + + // + // Clear old setup + // + G4VCSGfaceted::DeleteStuff(); + delete [] corners; + delete enclosingCylinder; + + // + // Rebuild polyhedra + // + G4ReduciblePolygon *rz = + new G4ReduciblePolygon( original_parameters->Rmin, + original_parameters->Rmax, + original_parameters->Z_values, + original_parameters->Num_z_planes ); + // + // Calculate conversion factor + // + G4double phiTotal = original_parameters->Opening_angle; + if ( (phiTotal <=0) || (phiTotal >= 2*M_PI*(1-DBL_EPSILON)) ) + phiTotal = 2*M_PI; + G4double convertRad = cos(0.5*phiTotal/original_parameters->numSide); + rz->ScaleA( 1/convertRad ); + + Create( original_parameters->Start_angle, phiTotal, + original_parameters->numSide, rz ); + delete rz; + + return 0; +} + + // // Inside // @@ -479,10 +536,11 @@ G4double G4Polyhedra::DistanceToIn( const G4ThreeVector &p ) const // // ComputeDimensions // -void G4Polyhedra::ComputeDimensions( G4VPVParameterisation*, - const G4int, - const G4VPhysicalVolume* ) +void G4Polyhedra::ComputeDimensions( G4VPVParameterisation* p, + const G4int n, + const G4VPhysicalVolume* pRep ) { + p->ComputeDimensions(*this,n,pRep); } @@ -518,13 +576,13 @@ std::ostream& G4Polyhedra::StreamInfo( std::ostream& os ) const os << " Z plane " << i << ": " << original_parameters->Z_values[i] << "\n"; } - os << " Tangent distances to inner surface: \n"; + os << " Tangent distances to inner surface (Rmin): \n"; for (i=0; iRmin[i] << "\n"; } - os << " Tangent distances to outer surface: \n"; + os << " Tangent distances to outer surface (Rmax): \n"; for (i=0; iGetLogicalVolume()->GetSolid(); } @@ -86,7 +94,8 @@ const G4ThreeVector& G4GRSVolume::GetTranslation( G4int depth ) const { if( depth != 0 ) { - G4Exception("G4GRSVolume::GetTranslation: has no meaning for depth!=0"); + G4Exception("G4GRSVolume::GetTranslation()", "WrongArgumentValue", + FatalException, "History depth in input must be 0 !"); } return ftlate; } @@ -96,7 +105,8 @@ const G4RotationMatrix* G4GRSVolume::GetRotation( G4int depth ) const { if( depth != 0 ) { - G4Exception("G4GRSVolume::GetRotation: has no meaning for depth!=0"); + G4Exception("G4GRSVolume::GetRotation()", "WrongArgumentValue", + FatalException, "History depth in input must be 0 !"); } return frot; } diff --git a/source/geometry/volumes/include/G4GRSVolumeHandle.hh b/source/geometry/volumes/include/G4GRSVolumeHandle.hh index 90f180f32e..348ec9bff0 100644 --- a/source/geometry/volumes/include/G4GRSVolumeHandle.hh +++ b/source/geometry/volumes/include/G4GRSVolumeHandle.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GRSVolumeHandle.hh,v 1.4 2002/07/23 08:50:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GRSVolumeHandle.hh,v 1.5 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class G4GRSVolumeHandle // @@ -37,8 +37,7 @@ // Author: Radovan Chytracek (Radovan.Chytracek@cern.ch), March 2001 // -// ******************************************************************** - +// ---------------------------------------------------------------------- #ifndef _G4GRSVOLUMEHANDLE_H_ #define _G4GRSVOLUMEHANDLE_H_ 1 diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.hh b/source/geometry/volumes/include/G4LogicalBorderSurface.hh index 09e1afc734..2c6e0f3e3e 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.hh +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalBorderSurface.hh,v 1.9 2003/06/16 16:54:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalBorderSurface.hh,v 1.12 2003/12/01 14:53:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4LogicalBorderSurface // @@ -36,8 +36,7 @@ // Created: 1997-06-17 // Author: John Apostolakis (John.Apostolakis@cern.ch) // -// ******************************************************************** - +// -------------------------------------------------------------------- #ifndef G4LogicalBorderSurface_h #define G4LogicalBorderSurface_h 1 @@ -57,7 +56,7 @@ class G4LogicalBorderSurface : public G4LogicalSurface G4LogicalBorderSurface( const G4String& name, G4VPhysicalVolume* vol1, G4VPhysicalVolume* vol2, - G4OpticalSurface* opticsSurface ); + G4SurfaceProperty* surfaceProperty ); ~G4LogicalBorderSurface(); // Constructor and destructor diff --git a/source/geometry/volumes/include/G4LogicalBorderSurface.icc b/source/geometry/volumes/include/G4LogicalBorderSurface.icc index ce15051dd6..feff4bb834 100644 --- a/source/geometry/volumes/include/G4LogicalBorderSurface.icc +++ b/source/geometry/volumes/include/G4LogicalBorderSurface.icc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4LogicalBorderSurface.icc,v 1.5 2002/07/23 08:50:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalBorderSurface.icc,v 1.8 2003/12/01 14:53:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4LogicalBorderSurface inline implementation // -// ******************************************************************** +// ---------------------------------------------------------------------- inline void G4LogicalBorderSurface::SetPhysicalVolumes( G4VPhysicalVolume* vol1, diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.hh b/source/geometry/volumes/include/G4LogicalSkinSurface.hh index 42dbf3ada1..3685caa485 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.hh +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalSkinSurface.hh,v 1.9 2003/06/16 16:54:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalSkinSurface.hh,v 1.12 2003/12/01 14:53:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4LogicalSkinSurface // @@ -36,16 +36,16 @@ // Created: 1997-06-16 // Author: John Apostolakis (John.Apostolakis@cern.ch) // -// ******************************************************************** - +// ---------------------------------------------------------------------- #ifndef G4LogicalSkinSurface_h #define G4LogicalSkinSurface_h 1 -#include "G4LogicalSurface.hh" -#include "G4LogicalVolume.hh" - #include +#include "G4LogicalSurface.hh" + +class G4LogicalVolume; + class G4LogicalSkinSurface : public G4LogicalSurface { @@ -53,7 +53,7 @@ class G4LogicalSkinSurface : public G4LogicalSurface G4LogicalSkinSurface( const G4String& name, G4LogicalVolume* vol, - G4OpticalSurface* opticalSurface ); + G4SurfaceProperty* surfaceProperty ); ~G4LogicalSkinSurface(); // Constructor and destructor. diff --git a/source/geometry/volumes/include/G4LogicalSkinSurface.icc b/source/geometry/volumes/include/G4LogicalSkinSurface.icc index c92d7760de..2368587055 100644 --- a/source/geometry/volumes/include/G4LogicalSkinSurface.icc +++ b/source/geometry/volumes/include/G4LogicalSkinSurface.icc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4LogicalSkinSurface.icc,v 1.5 2002/07/23 08:50:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalSkinSurface.icc,v 1.8 2003/12/01 14:53:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4LogicalSkinSurface inline implementation // -// ******************************************************************** +// ---------------------------------------------------------------------- inline const G4LogicalVolume* G4LogicalSkinSurface::GetLogicalVolume() const diff --git a/source/geometry/volumes/include/G4NavigationHistory.hh b/source/geometry/volumes/include/G4NavigationHistory.hh index e337ec6753..870ca40538 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.hh +++ b/source/geometry/volumes/include/G4NavigationHistory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.hh,v 1.11 2003/06/16 16:54:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NavigationHistory.hh,v 1.12 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4NavigationHistory // @@ -36,8 +36,7 @@ // // 25.07.96 P.Kent Initial version. Services derived from // requirements of G4Navigator. -// ******************************************************************** - +// ---------------------------------------------------------------------- #ifndef G4NAVIGATIONHISTORY_HH #define G4NAVIGATIONHISTORY_HH diff --git a/source/geometry/volumes/include/G4NavigationHistory.icc b/source/geometry/volumes/include/G4NavigationHistory.icc index efb447f18b..52fac2acc7 100644 --- a/source/geometry/volumes/include/G4NavigationHistory.icc +++ b/source/geometry/volumes/include/G4NavigationHistory.icc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.icc,v 1.8 2003/03/05 18:15:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NavigationHistory.icc,v 1.10 2003/12/04 15:58:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4NavigationHistory Inline implementation // -// ******************************************************************** +// ---------------------------------------------------------------------- inline G4NavigationHistory& @@ -59,7 +59,7 @@ void G4NavigationHistory::Reset() inline void G4NavigationHistory::Clear() { - G4AffineTransform origin(G4ThreeVector(0.)); + G4AffineTransform origin(G4ThreeVector(0.,0.,0.)); G4NavigationLevel tmpNavLevel = G4NavigationLevel(0, origin, kNormal, -1) ; Reset(); diff --git a/source/geometry/volumes/include/G4NavigationLevel.hh b/source/geometry/volumes/include/G4NavigationLevel.hh index ee2208c7e0..ed3aac83a3 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.hh +++ b/source/geometry/volumes/include/G4NavigationLevel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationLevel.hh,v 1.14 2002/07/23 08:50:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NavigationLevel.hh,v 1.15 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4NavigationLevel // @@ -35,12 +35,11 @@ // // 30.09.97 J.Apostolakis Initial version. Services derived from // requirements of touchables & G4NavigatorHistory. -// ******************************************************************** - +// ---------------------------------------------------------------------- #ifndef G4NAVIGATIONLEVEL_HH #define G4NAVIGATIONLEVEL_HH -#include "globals.hh" +#include "G4Types.hh" #include "G4AffineTransform.hh" #include "G4VPhysicalVolume.hh" diff --git a/source/geometry/volumes/include/G4NavigationLevel.icc b/source/geometry/volumes/include/G4NavigationLevel.icc index 062b94902b..bb2f69f8c3 100644 --- a/source/geometry/volumes/include/G4NavigationLevel.icc +++ b/source/geometry/volumes/include/G4NavigationLevel.icc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: G4NavigationLevel.icc,v 1.13 2003/04/02 14:28:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NavigationLevel.icc,v 1.15 2003/12/04 15:58:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // 30.09.97 J.Apostolakis Initial version. // -// ******************************************************************** +// ---------------------------------------------------------------------- extern G4Allocator aNavigationLevelAllocator; @@ -76,15 +76,13 @@ G4NavigationLevel::~G4NavigationLevel() inline G4NavigationLevel& G4NavigationLevel::operator=(const G4NavigationLevel &right) { - if ( &right == this ) return *this; - - // The order of these two statements is needed to handle "a=a" - // - right.fLevelRep->AddAReference(); - if( fLevelRep->RemoveAReference() ) - delete fLevelRep; - - fLevelRep = right.fLevelRep; + if ( &right != this ) + { + right.fLevelRep->AddAReference(); + if( fLevelRep->RemoveAReference() ) + delete fLevelRep; + fLevelRep = right.fLevelRep; + } return *this; } diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.hh b/source/geometry/volumes/include/G4NavigationLevelRep.hh index a41a11d18c..640cf53386 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.hh +++ b/source/geometry/volumes/include/G4NavigationLevelRep.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NavigationLevelRep.hh,v 1.7 2002/07/23 08:50:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NavigationLevelRep.hh,v 1.8 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4NavigationLevelRep // @@ -38,12 +38,11 @@ // History: // // - 1 October 1997, J.Apostolakis: initial version. -// ******************************************************************** - +// ---------------------------------------------------------------------- #ifndef G4NAVIGATIONLEVELREP_HH #define G4NAVIGATIONLEVELREP_HH -#include "globals.hh" +#include "G4Types.hh" #include "G4AffineTransform.hh" #include "G4VPhysicalVolume.hh" diff --git a/source/geometry/volumes/include/G4NavigationLevelRep.icc b/source/geometry/volumes/include/G4NavigationLevelRep.icc index 280816aa21..7cacd4ddb8 100644 --- a/source/geometry/volumes/include/G4NavigationLevelRep.icc +++ b/source/geometry/volumes/include/G4NavigationLevelRep.icc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: G4NavigationLevelRep.icc,v 1.6 2002/07/23 08:50:35 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NavigationLevelRep.icc,v 1.9 2003/12/04 15:58:08 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // 1 October 1997 J.Apostolakis Initial version. // -// ******************************************************************** +// ---------------------------------------------------------------------- extern G4Allocator aNavigLevelRepAllocator; @@ -89,10 +89,12 @@ G4NavigationLevelRep::~G4NavigationLevelRep() #ifdef DEBUG_NAVIG_LEVEL if(fCountRef>0) { - G4cout << "ERROR! - A G4NavigationLevelRep is being deleted that has" + G4cerr << "ERROR! - A G4NavigationLevelRep is being deleted that has" << G4endl << " positive reference count (fCountRef > 0) !" << G4endl; - G4Exception( "ERROR - G4NavigationLevelRep::~G4NavigationLevelRep()" ); + G4Exception("G4NavigationLevelRep::~G4NavigationLevelRep()", + "MemoryCorruption", FatalException, + "Deletion of data-level object with positive reference count."); } #endif } @@ -104,9 +106,7 @@ inline G4NavigationLevelRep& G4NavigationLevelRep::operator=( const G4NavigationLevelRep &right ) { - if ( &right == this ) return *this; - - if (&right) + if ( &right != this ) { sTransform = right.sTransform; sPhysicalVolumePtr = right.sPhysicalVolumePtr; @@ -114,7 +114,6 @@ G4NavigationLevelRep::operator=( const G4NavigationLevelRep &right ) sReplicaNo = right.sReplicaNo; fCountRef = right.fCountRef; } - return *this; } diff --git a/source/geometry/management/include/G4PVParameterised.hh b/source/geometry/volumes/include/G4PVParameterised.hh similarity index 95% rename from source/geometry/management/include/G4PVParameterised.hh rename to source/geometry/volumes/include/G4PVParameterised.hh index 89a98562ec..cfa67d4d3b 100644 --- a/source/geometry/management/include/G4PVParameterised.hh +++ b/source/geometry/volumes/include/G4PVParameterised.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVParameterised.hh,v 1.7 2003/05/13 18:37:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PVParameterised.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4PVParameterised @@ -36,7 +36,7 @@ // History: // 29.07.95 P.Kent First non-stub version - +// ---------------------------------------------------------------------- #ifndef G4PVPARAMETERISED_HH #define G4PVPARAMETERISED_HH diff --git a/source/geometry/management/include/G4PVPlacement.hh b/source/geometry/volumes/include/G4PVPlacement.hh similarity index 96% rename from source/geometry/management/include/G4PVPlacement.hh rename to source/geometry/volumes/include/G4PVPlacement.hh index 924c138878..cc91ffee94 100644 --- a/source/geometry/management/include/G4PVPlacement.hh +++ b/source/geometry/volumes/include/G4PVPlacement.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVPlacement.hh,v 1.8 2003/05/13 18:37:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PVPlacement.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4PVPlacement @@ -39,7 +39,7 @@ // 28.02.97 J.Apostolakis Added 2nd constructor with G4Transform3D of solid. // 11.07.97 J.Apostolakis Added 3rd constructor with pMotherLogical // 11.05.98 J.Apostolakis Added 4th constructor with G4Transform3D & pMotherLV - +// ---------------------------------------------------------------------- #ifndef G4PVPLACEMENT_HH #define G4PVPLACEMENT_HH @@ -119,10 +119,6 @@ class G4PVPlacement : public G4VPhysicalVolume void SetCopyNo(G4int CopyNo); // Gets and sets the copy number of the volume. - void Setup(G4VPhysicalVolume *pMother); - // Sets the pointer to the mother volume. - // Must not be called when geometry closed. - public: // without description G4bool IsMany() const; diff --git a/source/geometry/management/include/G4PVReplica.hh b/source/geometry/volumes/include/G4PVReplica.hh similarity index 96% rename from source/geometry/management/include/G4PVReplica.hh rename to source/geometry/volumes/include/G4PVReplica.hh index 796314732e..90ec22b76e 100644 --- a/source/geometry/management/include/G4PVReplica.hh +++ b/source/geometry/volumes/include/G4PVReplica.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PVReplica.hh,v 1.7 2003/05/13 18:37:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PVReplica.hh,v 1.2 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4PVReplica @@ -66,12 +66,11 @@ // 29.07.95 P.Kent First non-stub version // 26.10.97 J.Apostolakis Added constructor that takes mother logical volume // 16.02.98 J.Apostolakis Added copy number - +// ---------------------------------------------------------------------- #ifndef G4PVREPLICA_HH #define G4PVREPLICA_HH #include "G4VPhysicalVolume.hh" -#include "G4RotationMatrix.hh" class G4PVReplica : public G4VPhysicalVolume { @@ -112,7 +111,6 @@ class G4PVReplica : public G4VPhysicalVolume G4double& width, G4double& offset, G4bool& consuming) const; - virtual void Setup(G4VPhysicalVolume *pMother); private: diff --git a/source/geometry/volumes/include/G4TouchableHistory.hh b/source/geometry/volumes/include/G4TouchableHistory.hh index c2e7943e91..ae9c594e5f 100644 --- a/source/geometry/volumes/include/G4TouchableHistory.hh +++ b/source/geometry/volumes/include/G4TouchableHistory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TouchableHistory.hh,v 1.6 2002/07/23 08:50:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TouchableHistory.hh,v 1.7 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4TouchableHistory @@ -34,8 +34,7 @@ // History: // - Created. Paul Kent, August 1996 -// ******************************************************************** - +// ---------------------------------------------------------------------- #ifndef G4TOUCHABLEHISTORY_HH #define G4TOUCHABLEHISTORY_HH @@ -43,6 +42,7 @@ #include "G4NavigationHistory.hh" #include "G4LogicalVolume.hh" +#include "G4ThreeVector.hh" #include "G4RotationMatrix.hh" class G4TouchableHistory : public G4VTouchable diff --git a/source/geometry/volumes/include/G4TouchableHistory.icc b/source/geometry/volumes/include/G4TouchableHistory.icc index 2b1c4b0742..c7af0e901f 100644 --- a/source/geometry/volumes/include/G4TouchableHistory.icc +++ b/source/geometry/volumes/include/G4TouchableHistory.icc @@ -21,12 +21,12 @@ // ******************************************************************** // // -// $Id: G4TouchableHistory.icc,v 1.7 2002/07/23 08:50:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TouchableHistory.icc,v 1.8 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4TouchableHistory inline implementation -// ******************************************************************** +// ---------------------------------------------------------------------- inline G4TouchableHistory::G4TouchableHistory() diff --git a/source/geometry/volumes/include/G4TouchableHistoryHandle.hh b/source/geometry/volumes/include/G4TouchableHistoryHandle.hh index e8b338fb7d..613312e310 100644 --- a/source/geometry/volumes/include/G4TouchableHistoryHandle.hh +++ b/source/geometry/volumes/include/G4TouchableHistoryHandle.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TouchableHistoryHandle.hh,v 1.4 2002/07/23 08:50:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TouchableHistoryHandle.hh,v 1.5 2003/11/02 16:06:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class G4TouchableHistoryHandle // @@ -38,7 +38,6 @@ // Author: Radovan Chytracek (Radovan.Chytracek@cern.ch), March 2001 // ---------------------------------------------------------------------- - #ifndef _G4TOUCHABLEHISTORYHANDLE_H_ #define _G4TOUCHABLEHISTORYHANDLE_H_ 1 diff --git a/source/geometry/management/src/G4AssemblyVolume.cc b/source/geometry/volumes/src/G4AssemblyVolume.cc similarity index 98% rename from source/geometry/management/src/G4AssemblyVolume.cc rename to source/geometry/volumes/src/G4AssemblyVolume.cc index d27ea687c2..5a728ad453 100644 --- a/source/geometry/management/src/G4AssemblyVolume.cc +++ b/source/geometry/volumes/src/G4AssemblyVolume.cc @@ -21,19 +21,20 @@ // ******************************************************************** // // -// $Id: G4AssemblyVolume.cc,v 1.14 2003/06/16 16:52:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AssemblyVolume.cc,v 1.2 2003/11/02 16:06:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Class G4AssemblyVolume - implementation // // ---------------------------------------------------------------------- +#include "G4AssemblyVolume.hh" #include "G4PVPlacement.hh" #include "G4RotationMatrix.hh" -#include "G4Transform3D.hh" #include "G4AffineTransform.hh" -#include "G4AssemblyVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4VPhysicalVolume.hh" #include diff --git a/source/geometry/volumes/src/G4GRSSolid.cc b/source/geometry/volumes/src/G4GRSSolid.cc index 3b7fa5ee7f..05e8b469cb 100644 --- a/source/geometry/volumes/src/G4GRSSolid.cc +++ b/source/geometry/volumes/src/G4GRSSolid.cc @@ -21,19 +21,19 @@ // ******************************************************************** // // -// $Id: G4GRSSolid.cc,v 1.6 2003/03/31 14:39:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GRSSolid.cc,v 1.7 2003/11/02 16:06:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4GRSSolid Implementation // -// ******************************************************************** +// ---------------------------------------------------------------------- #include "G4GRSSolid.hh" G4GRSSolid::~G4GRSSolid() { - delete frot; // safe if null + delete frot; // safe if null } G4GRSSolid::G4GRSSolid(const G4GRSSolid& right) diff --git a/source/geometry/volumes/src/G4GRSVolume.cc b/source/geometry/volumes/src/G4GRSVolume.cc index bdfb67e470..32dd150c1f 100644 --- a/source/geometry/volumes/src/G4GRSVolume.cc +++ b/source/geometry/volumes/src/G4GRSVolume.cc @@ -21,19 +21,19 @@ // ******************************************************************** // // -// $Id: G4GRSVolume.cc,v 1.6 2003/03/31 14:39:02 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GRSVolume.cc,v 1.7 2003/11/02 16:06:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4GRSVolume Implementation // -// ******************************************************************** +// ---------------------------------------------------------------------- #include "G4GRSVolume.hh" G4GRSVolume::~G4GRSVolume() { - delete frot; // safe if null + delete frot; // safe if null } G4GRSVolume::G4GRSVolume(const G4GRSVolume& right) diff --git a/source/geometry/volumes/src/G4LogicalBorderSurface.cc b/source/geometry/volumes/src/G4LogicalBorderSurface.cc index 94ad636c2f..07b832cefa 100644 --- a/source/geometry/volumes/src/G4LogicalBorderSurface.cc +++ b/source/geometry/volumes/src/G4LogicalBorderSurface.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalBorderSurface.cc,v 1.9 2003/06/16 16:54:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalBorderSurface.cc,v 1.12 2003/12/01 14:53:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // G4LogicalBorderSurface Implementation @@ -34,9 +34,10 @@ // Created: 1997-06-26 // Author: John Apostolakis (John.Apostolakis@cern.ch) // -// ******************************************************************** +// ---------------------------------------------------------------------- #include "G4LogicalBorderSurface.hh" +#include "G4VPhysicalVolume.hh" G4LogicalBorderSurfaceTable G4LogicalBorderSurface::theBorderSurfaceTable; @@ -47,8 +48,8 @@ G4LogicalBorderSurfaceTable G4LogicalBorderSurface::theBorderSurfaceTable; G4LogicalBorderSurface::G4LogicalBorderSurface(const G4String& name, G4VPhysicalVolume* vol1, G4VPhysicalVolume* vol2, - G4OpticalSurface* opticsSurface) - : G4LogicalSurface(name, opticsSurface), + G4SurfaceProperty* surfaceProperty) + : G4LogicalSurface(name, surfaceProperty), Volume1(vol1), Volume2(vol2) { // Store in the table of Surfaces @@ -58,7 +59,7 @@ G4LogicalBorderSurface::G4LogicalBorderSurface(const G4String& name, G4LogicalBorderSurface:: G4LogicalBorderSurface(const G4LogicalBorderSurface& right) - : G4LogicalSurface(right.GetName(), right.GetOpticalSurface()) + : G4LogicalSurface(right.GetName(), right.GetSurfaceProperty()) { SetTransitionRadiationSurface(right.GetTransitionRadiationSurface()); Volume1 = right.Volume1; @@ -80,7 +81,7 @@ G4LogicalBorderSurface::operator=(const G4LogicalBorderSurface &right) if (&right == this) return *this; if (&right) { - SetOpticalSurface(right.GetOpticalSurface()); + SetSurfaceProperty(right.GetSurfaceProperty()); SetName(right.GetName()); SetTransitionRadiationSurface(right.GetTransitionRadiationSurface()); Volume1 = right.Volume1; diff --git a/source/geometry/volumes/src/G4LogicalSkinSurface.cc b/source/geometry/volumes/src/G4LogicalSkinSurface.cc index 061f614392..30e6b8172b 100644 --- a/source/geometry/volumes/src/G4LogicalSkinSurface.cc +++ b/source/geometry/volumes/src/G4LogicalSkinSurface.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LogicalSkinSurface.cc,v 1.8 2002/08/06 08:23:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LogicalSkinSurface.cc,v 1.11 2003/12/01 14:53:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // G4LogicalSkinSurface Implementation @@ -33,12 +33,12 @@ // // Created: 1997-06-26 // Author: John Apostolakis (John.Apostolakis@cern.ch) -// Modified: 1997-06-26 John Apostolakis // -// ******************************************************************** +// ---------------------------------------------------------------------- #include "G4LogicalSkinSurface.hh" #include "G4ios.hh" +#include "G4LogicalVolume.hh" G4LogicalSkinSurfaceTable G4LogicalSkinSurface::theSurfaceTable; @@ -48,8 +48,8 @@ G4LogicalSkinSurfaceTable G4LogicalSkinSurface::theSurfaceTable; G4LogicalSkinSurface::G4LogicalSkinSurface(const G4String& name, G4LogicalVolume* logicalVolume, - G4OpticalSurface* opticalSurface) - : G4LogicalSurface(name, opticalSurface), + G4SurfaceProperty* surfaceProperty) + : G4LogicalSurface(name, surfaceProperty), LogVolume(logicalVolume) { // Store in the table of Surfaces @@ -58,7 +58,7 @@ G4LogicalSkinSurface::G4LogicalSkinSurface(const G4String& name, } G4LogicalSkinSurface::G4LogicalSkinSurface(const G4LogicalSkinSurface& right) - : G4LogicalSurface(right.GetName(), right.GetOpticalSurface()) + : G4LogicalSurface(right.GetName(), right.GetSurfaceProperty()) { SetTransitionRadiationSurface(right.GetTransitionRadiationSurface()); LogVolume = right.LogVolume; @@ -79,7 +79,7 @@ G4LogicalSkinSurface::operator=(const G4LogicalSkinSurface& right) if (&right == this) return *this; if (&right) { - SetOpticalSurface(right.GetOpticalSurface()); + SetSurfaceProperty(right.GetSurfaceProperty()); SetName(right.GetName()); SetTransitionRadiationSurface(right.GetTransitionRadiationSurface()); LogVolume = right.LogVolume; diff --git a/source/geometry/volumes/src/G4NavigationHistory.cc b/source/geometry/volumes/src/G4NavigationHistory.cc index d1e455ed85..dbd49f831a 100644 --- a/source/geometry/volumes/src/G4NavigationHistory.cc +++ b/source/geometry/volumes/src/G4NavigationHistory.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NavigationHistory.cc,v 1.7 2003/06/16 16:54:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NavigationHistory.cc,v 1.9 2003/12/04 15:59:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4NavigationHistory Implementation // // Author: P.Kent, August 96 // -// ******************************************************************** +// ---------------------------------------------------------------------- #include "G4NavigationHistory.hh" #include "G4ios.hh" @@ -37,7 +37,6 @@ G4NavigationHistory::G4NavigationHistory() : fNavHistory(kHistoryMax), fStackDepth(0) { - Reset(); // Reset depth Clear(); } @@ -49,7 +48,6 @@ G4NavigationHistory::G4NavigationHistory(const G4NavigationHistory &h) G4NavigationHistory::~G4NavigationHistory() { Reset(); // To delete all but one current entries! - // delete fNavHistory(0); } std::ostream& diff --git a/source/geometry/management/src/G4PVParameterised.cc b/source/geometry/volumes/src/G4PVParameterised.cc similarity index 92% rename from source/geometry/management/src/G4PVParameterised.cc rename to source/geometry/volumes/src/G4PVParameterised.cc index d0a66f4e93..4b008631f5 100644 --- a/source/geometry/management/src/G4PVParameterised.cc +++ b/source/geometry/volumes/src/G4PVParameterised.cc @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4PVParameterised.cc,v 1.7 2002/10/23 16:11:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PVParameterised.cc,v 1.2 2003/11/02 16:06:06 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4PVParameterised // // Implementation // -// ******************************************************************** +// ---------------------------------------------------------------------- #include "G4PVParameterised.hh" @@ -45,7 +45,8 @@ G4PVParameterised::G4PVParameterised( const G4String& pName, #ifdef G4VERBOSE if ((pMother) && (pMother->IsParameterised())) { - G4cout << "WARNING - A parameterised volume is being placed" << G4endl + G4cout << "WARNING - G4PVParameterised::G4PVParameterised()" << G4endl + << " A parameterised volume is being placed" << G4endl << " inside another parameterised volume !" << G4endl << " To make sure that no overlaps are generated," << G4endl << " you should verify the mother replicated shapes" << G4endl diff --git a/source/geometry/management/src/G4PVPlacement.cc b/source/geometry/volumes/src/G4PVPlacement.cc similarity index 86% rename from source/geometry/management/src/G4PVPlacement.cc rename to source/geometry/volumes/src/G4PVPlacement.cc index e3a22c72d8..bae0716f65 100644 --- a/source/geometry/management/src/G4PVPlacement.cc +++ b/source/geometry/volumes/src/G4PVPlacement.cc @@ -21,11 +21,13 @@ // ******************************************************************** // // -// $Id: G4PVPlacement.cc,v 1.9 2003/05/14 09:34:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PVPlacement.cc,v 1.3 2003/11/17 11:29:25 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4PVPlacement Implementation +// +// ---------------------------------------------------------------------- #include "G4PVPlacement.hh" #include "G4LogicalVolume.hh" @@ -43,6 +45,9 @@ G4PVPlacement::G4PVPlacement( G4RotationMatrix *pRot, if (pMother) { G4LogicalVolume* motherLogical = pMother->GetLogicalVolume(); + if (pLogical == motherLogical) + G4Exception("G4PVPlacement::G4PVPlacement()", "InvalidSetup", + FatalException, "Cannot place a volume inside itself!"); SetMotherLogical(motherLogical); motherLogical->AddDaughter(this); } @@ -62,6 +67,9 @@ G4PVPlacement::G4PVPlacement( const G4Transform3D &Transform3D, if (pMother) { G4LogicalVolume* motherLogical = pMother->GetLogicalVolume(); + if (pLogical == motherLogical) + G4Exception("G4PVPlacement::G4PVPlacement()", "InvalidSetup", + FatalException, "Cannot place a volume inside itself!"); SetMotherLogical(motherLogical); motherLogical->AddDaughter(this); } @@ -69,7 +77,6 @@ G4PVPlacement::G4PVPlacement( const G4Transform3D &Transform3D, // // The logical volume of the mother is utilised (not the physical) -// The physical volume is needed, known and set only at tracking time. // G4PVPlacement::G4PVPlacement( G4RotationMatrix *pRot, @@ -82,6 +89,9 @@ G4PVPlacement::G4PVPlacement( G4RotationMatrix *pRot, : 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); } @@ -96,9 +106,11 @@ G4PVPlacement::G4PVPlacement( const G4Transform3D &Transform3D, : 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); } @@ -147,11 +159,6 @@ void G4PVPlacement::GetReplicationData( EAxis&, // No-operations } -void G4PVPlacement::Setup(G4VPhysicalVolume *pMother) -{ - SetMother(pMother); -} - // // Auxiliary function for 2nd & 4th constructors (the ones with G4Transform3D) // Creates a new RotMatrix on the heap (using "new") and copies diff --git a/source/geometry/management/src/G4PVReplica.cc b/source/geometry/volumes/src/G4PVReplica.cc similarity index 73% rename from source/geometry/management/src/G4PVReplica.cc rename to source/geometry/volumes/src/G4PVReplica.cc index 91e03d8534..bd45233543 100644 --- a/source/geometry/management/src/G4PVReplica.cc +++ b/source/geometry/volumes/src/G4PVReplica.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4PVReplica.cc,v 1.10 2003/05/13 18:37:19 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PVReplica.cc,v 1.4 2003/11/17 11:29:26 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4PVReplica Implementation // -// ******************************************************************** +// ---------------------------------------------------------------------- #include "G4PVReplica.hh" #include "G4LogicalVolume.hh" @@ -44,21 +44,26 @@ G4PVReplica::G4PVReplica( const G4String& pName, { if ((!pMother) || (!pMother->GetLogicalVolume())) { - G4cout << "ERROR - NULL pointer specified as mother volume." << G4endl + G4cerr << "ERROR - NULL pointer specified as mother volume." << G4endl << " The world volume cannot be sliced or parameterised !" << G4endl; - G4Exception("G4PVReplica::G4PVReplica() - Not a valid geometry setup !"); + G4Exception("G4PVReplica::G4PVReplica()", "InvalidSetup", FatalException, + "NULL pointer to mother. World volume cannot be sliced !"); } G4LogicalVolume* motherLogical = pMother->GetLogicalVolume(); + if (pLogical == motherLogical) + G4Exception("G4PVReplica::G4PVReplica()", "InvalidSetup", + FatalException, "Cannot place a volume inside itself!"); SetMotherLogical(motherLogical); motherLogical->AddDaughter(this); if (motherLogical->GetNoDaughters() != 1) { - G4cout << "ERROR - A replica or parameterised volume must be" << G4endl + G4cerr << "ERROR - A replica or parameterised volume must be" << G4endl << " the only daughter of a given mother volume !" << G4endl << " Mother physical volume: " << pMother->GetName() << G4endl << " Replicated volume: " << pName << G4endl; - G4Exception("G4PVReplica::G4PVReplica() - Not a valid geometry setup !"); + G4Exception("G4PVReplica::G4PVReplica()", "InvalidSetup", FatalException, + "Replica or parameterised volume must be the only daughter !"); } CheckAndSetParameters (pAxis, nReplicas, width, offset); } @@ -75,19 +80,24 @@ G4PVReplica::G4PVReplica( const G4String& pName, { if (!pMotherLogical) { - G4cout << "ERROR - NULL pointer specified as mother volume for " + G4cerr << "ERROR - NULL pointer specified as mother volume for " << pName << "." << G4endl; - G4Exception("G4PVReplica::G4PVReplica() - Not a valid geometry setup !"); + G4Exception("G4PVReplica::G4PVReplica()", "NullPointer", FatalException, + "Invalid setup. NULL pointer specified as mother !"); } + if (pLogical == pMotherLogical) + G4Exception("G4PVReplica::G4PVReplica()", "InvalidSetup", + FatalException, "Cannot place a volume inside itself!"); pMotherLogical->AddDaughter(this); SetMotherLogical(pMotherLogical); if (pMotherLogical->GetNoDaughters() != 1) { - G4cout << "ERROR - A replica or parameterised volume must be" << G4endl + G4cerr << "ERROR - A replica or parameterised volume must be" << G4endl << " the only daughter of a given mother volume !" << G4endl << " Mother logical volume: " << pMotherLogical->GetName() << G4endl << " Replicated volume: " << pName << G4endl; - G4Exception("G4PVReplica::G4PVReplica() - Not a valid geometry setup"); + G4Exception("G4PVReplica::G4PVReplica()", "InvalidSetup", FatalException, + "Replica or parameterised volume must be the only daughter !"); } CheckAndSetParameters (pAxis, nReplicas, width, offset); } @@ -99,12 +109,14 @@ void G4PVReplica::CheckAndSetParameters( const EAxis pAxis, { if (nReplicas<1) { - G4Exception("G4PVReplica::CheckAndSetParameters() - Illegal number of replicas"); + G4Exception("G4PVReplica::CheckAndSetParameters()", "WrongArgumentValue", + FatalException, "Illegal number of replicas."); } fnReplicas=nReplicas; if (width<0) { - G4Exception("G4PVReplica::CheckAndSetParameters() - Width must be positive"); + G4Exception("G4PVReplica::CheckAndSetParameters()", "WrongArgumentValue", + FatalException, "Width must be positive."); } fwidth = width; foffset = offset; @@ -119,7 +131,8 @@ void G4PVReplica::CheckAndSetParameters( const EAxis pAxis, pRMat=new G4RotationMatrix(); if (!pRMat) { - G4Exception("G4PVReplica::CheckAndSetParameters() - Rotation matrix alloc failed"); + G4Exception("G4PVReplica::CheckAndSetParameters()", "FatalError", + FatalException, "Rotation matrix allocation failed."); } SetRotation(pRMat); break; @@ -130,7 +143,8 @@ void G4PVReplica::CheckAndSetParameters( const EAxis pAxis, case kUndefined: break; default: - G4Exception("G4PVReplica::CheckAndSetParameters() - Unknown axis"); + G4Exception("G4PVReplica::CheckAndSetParameters()", "WrongArgumentValue", + FatalException, "Unknown axis of replication."); break; } } @@ -190,9 +204,3 @@ void G4PVReplica::GetReplicationData( EAxis& axis, offset = foffset; consuming = true; } - -void G4PVReplica::Setup(G4VPhysicalVolume *pMother) -{ - SetMother(pMother); - if (pMother) SetMotherLogical(pMother->GetLogicalVolume()); -} diff --git a/source/geometry/volumes/src/G4TouchableHistory.cc b/source/geometry/volumes/src/G4TouchableHistory.cc index 1eb88061b3..0cd24cdb89 100644 --- a/source/geometry/volumes/src/G4TouchableHistory.cc +++ b/source/geometry/volumes/src/G4TouchableHistory.cc @@ -21,16 +21,21 @@ // ******************************************************************** // // -// $Id: G4TouchableHistory.cc,v 1.6 2002/08/06 10:35:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TouchableHistory.cc,v 1.8 2003/12/05 17:10:53 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4TouchableHistory Implementation // -// ******************************************************************** +// ---------------------------------------------------------------------- #include "G4TouchableHistory.hh" +// Ensures correct order of construction and destruption of static objects. +// +G4Allocator aNavigationLevelAllocator; +G4Allocator aNavigLevelRepAllocator; + G4TouchableHistory::~G4TouchableHistory() { } diff --git a/source/global/HEPGeometry/include/G4LorentzRotation.hh b/source/global/HEPGeometry/include/G4LorentzRotation.hh index 9e25d40824..bee2bb8347 100644 --- a/source/global/HEPGeometry/include/G4LorentzRotation.hh +++ b/source/global/HEPGeometry/include/G4LorentzRotation.hh @@ -22,7 +22,7 @@ // // // $Id: G4LorentzRotation.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4LorentzRotation_hh #define G4LorentzRotation_hh diff --git a/source/global/HEPGeometry/include/G4LorentzVector.hh b/source/global/HEPGeometry/include/G4LorentzVector.hh index 495c9d653c..597a1640c5 100644 --- a/source/global/HEPGeometry/include/G4LorentzVector.hh +++ b/source/global/HEPGeometry/include/G4LorentzVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4LorentzVector.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4LorentzVector_hh #define G4LorentzVector_hh diff --git a/source/global/HEPGeometry/include/G4Normal3D.hh b/source/global/HEPGeometry/include/G4Normal3D.hh index 84e396321d..d414070a28 100644 --- a/source/global/HEPGeometry/include/G4Normal3D.hh +++ b/source/global/HEPGeometry/include/G4Normal3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Normal3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NORMAL3D_HH #define G4NORMAL3D_HH diff --git a/source/global/HEPGeometry/include/G4Plane3D.hh b/source/global/HEPGeometry/include/G4Plane3D.hh index 4814ff5434..2158fb5330 100644 --- a/source/global/HEPGeometry/include/G4Plane3D.hh +++ b/source/global/HEPGeometry/include/G4Plane3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Plane3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4PLANE3D_HH #define G4PLANE3D_HH diff --git a/source/global/HEPGeometry/include/G4Point3D.hh b/source/global/HEPGeometry/include/G4Point3D.hh index c84a302bbc..50242f56f2 100644 --- a/source/global/HEPGeometry/include/G4Point3D.hh +++ b/source/global/HEPGeometry/include/G4Point3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Point3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4POINT3D_HH #define G4POINT3D_HH diff --git a/source/global/HEPGeometry/include/G4Transform3D.hh b/source/global/HEPGeometry/include/G4Transform3D.hh index 7f7d2f3532..78431b6dbb 100644 --- a/source/global/HEPGeometry/include/G4Transform3D.hh +++ b/source/global/HEPGeometry/include/G4Transform3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Transform3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4TRANSFORM3D_HH #define G4TRANSFORM3D_HH diff --git a/source/global/HEPGeometry/include/G4Vector3D.hh b/source/global/HEPGeometry/include/G4Vector3D.hh index 02003d2705..f9fd038712 100644 --- a/source/global/HEPGeometry/include/G4Vector3D.hh +++ b/source/global/HEPGeometry/include/G4Vector3D.hh @@ -22,7 +22,7 @@ // // // $Id: G4Vector3D.hh,v 1.3 2001/07/11 10:00:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VECTOR3D_HH #define G4VECTOR3D_HH diff --git a/source/global/HEPGeometry/include/geomdefs.hh b/source/global/HEPGeometry/include/geomdefs.hh index c1b3b781da..cd2577f117 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh index 6b004e85e2..9d9c016b02 100644 --- a/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh +++ b/source/global/HEPNumerics/include/G4ChebyshevApproximation.hh @@ -22,7 +22,7 @@ // // // $Id: G4ChebyshevApproximation.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4DataInterpolation.hh b/source/global/HEPNumerics/include/G4DataInterpolation.hh index bf80225d1f..2b33d47f76 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh b/source/global/HEPNumerics/include/G4GaussChebyshevQ.hh index 7fc0c8aae8..da69506bc6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh index d5e855f440..a5cae07b38 100644 --- a/source/global/HEPNumerics/include/G4GaussHermiteQ.hh +++ b/source/global/HEPNumerics/include/G4GaussHermiteQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussHermiteQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussJacobiQ.hh b/source/global/HEPNumerics/include/G4GaussJacobiQ.hh index 3f6e208d90..6a0a3fa65e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh index a4eac0fc1f..803fec17ec 100644 --- a/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh +++ b/source/global/HEPNumerics/include/G4GaussLaguerreQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussLaguerreQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh index 193e9391d7..227df4a1be 100644 --- a/source/global/HEPNumerics/include/G4GaussLegendreQ.hh +++ b/source/global/HEPNumerics/include/G4GaussLegendreQ.hh @@ -22,7 +22,7 @@ // // // $Id: G4GaussLegendreQ.hh,v 1.4 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.hh b/source/global/HEPNumerics/include/G4Integrator.hh index b18d2f4645..072a18bc20 100644 --- a/source/global/HEPNumerics/include/G4Integrator.hh +++ b/source/global/HEPNumerics/include/G4Integrator.hh @@ -22,7 +22,7 @@ // // // $Id: G4Integrator.hh,v 1.5 2001/07/11 10:00:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4Integrator.icc b/source/global/HEPNumerics/include/G4Integrator.icc index bfc5581bef..d323fb851d 100644 --- a/source/global/HEPNumerics/include/G4Integrator.icc +++ b/source/global/HEPNumerics/include/G4Integrator.icc @@ -22,7 +22,7 @@ // // // $Id: G4Integrator.icc,v 1.9 2002/12/05 15:39:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Implementation of G4Integrator methods. // diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.hh b/source/global/HEPNumerics/include/G4PolynomialSolver.hh index 7eed89a2a2..60810a5fa9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4PolynomialSolver.icc b/source/global/HEPNumerics/include/G4PolynomialSolver.icc index 050354ba30..886a746f24 100644 --- a/source/global/HEPNumerics/include/G4PolynomialSolver.icc +++ b/source/global/HEPNumerics/include/G4PolynomialSolver.icc @@ -22,7 +22,7 @@ // // // $Id: G4PolynomialSolver.icc,v 1.6 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4PolynomialSolver // diff --git a/source/global/HEPNumerics/include/G4SimpleIntegration.hh b/source/global/HEPNumerics/include/G4SimpleIntegration.hh index 09f554a348..03550a4aa0 100644 --- a/source/global/HEPNumerics/include/G4SimpleIntegration.hh +++ b/source/global/HEPNumerics/include/G4SimpleIntegration.hh @@ -22,7 +22,7 @@ // // // $Id: G4SimpleIntegration.hh,v 1.3 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh index 584bcde624..81196eec13 100644 --- a/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh +++ b/source/global/HEPNumerics/include/G4VGaussianQuadrature.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGaussianQuadrature.hh,v 1.4 2001/07/11 10:00:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class description: // diff --git a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc index 574db0fe0b..4ac47123cb 100644 --- a/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc +++ b/source/global/HEPNumerics/src/G4ChebyshevApproximation.cc @@ -22,7 +22,7 @@ // // // $Id: G4ChebyshevApproximation.cc,v 1.3 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4ChebyshevApproximation.hh" diff --git a/source/global/HEPNumerics/src/G4DataInterpolation.cc b/source/global/HEPNumerics/src/G4DataInterpolation.cc index 0ed56c38e2..8250845bd1 100644 --- a/source/global/HEPNumerics/src/G4DataInterpolation.cc +++ b/source/global/HEPNumerics/src/G4DataInterpolation.cc @@ -22,7 +22,7 @@ // // // $Id: G4DataInterpolation.cc,v 1.4 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4DataInterpolation.hh" diff --git a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc index 6920443dd0..c1e783193a 100644 --- a/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc +++ b/source/global/HEPNumerics/src/G4GaussChebyshevQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussChebyshevQ.cc,v 1.3 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4GaussChebyshevQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussHermiteQ.cc b/source/global/HEPNumerics/src/G4GaussHermiteQ.cc index 214f44ca55..c645f49b04 100644 --- a/source/global/HEPNumerics/src/G4GaussHermiteQ.cc +++ b/source/global/HEPNumerics/src/G4GaussHermiteQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussHermiteQ.cc,v 1.4 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4GaussHermiteQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussJacobiQ.cc b/source/global/HEPNumerics/src/G4GaussJacobiQ.cc index 6c6bab5b8b..83176f65ba 100644 --- a/source/global/HEPNumerics/src/G4GaussJacobiQ.cc +++ b/source/global/HEPNumerics/src/G4GaussJacobiQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussJacobiQ.cc,v 1.4 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4GaussJacobiQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc b/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc index 18172a6b22..ed2fd964ea 100644 --- a/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc +++ b/source/global/HEPNumerics/src/G4GaussLaguerreQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussLaguerreQ.cc,v 1.4 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4GaussLaguerreQ.hh" diff --git a/source/global/HEPNumerics/src/G4GaussLegendreQ.cc b/source/global/HEPNumerics/src/G4GaussLegendreQ.cc index 422647637c..8f10ea27df 100644 --- a/source/global/HEPNumerics/src/G4GaussLegendreQ.cc +++ b/source/global/HEPNumerics/src/G4GaussLegendreQ.cc @@ -22,7 +22,7 @@ // // // $Id: G4GaussLegendreQ.cc,v 1.3 2001/07/11 10:00:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4GaussLegendreQ.hh" diff --git a/source/global/HEPNumerics/src/G4SimpleIntegration.cc b/source/global/HEPNumerics/src/G4SimpleIntegration.cc index f91126bfc7..04be68f2f4 100644 --- a/source/global/HEPNumerics/src/G4SimpleIntegration.cc +++ b/source/global/HEPNumerics/src/G4SimpleIntegration.cc @@ -22,7 +22,7 @@ // // // $Id: G4SimpleIntegration.cc,v 1.3 2001/07/11 10:00:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Implementation file for simple integration methods // diff --git a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc index 7f9e3addde..c35cbc6a78 100644 --- a/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc +++ b/source/global/HEPNumerics/src/G4VGaussianQuadrature.cc @@ -22,7 +22,7 @@ // // // $Id: G4VGaussianQuadrature.cc,v 1.3 2001/07/11 10:00:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 d3691f9712..40434f034c 100644 --- a/source/global/HEPRandom/include/G4Poisson.hh +++ b/source/global/HEPRandom/include/G4Poisson.hh @@ -22,7 +22,7 @@ // // // $Id: G4Poisson.hh,v 1.6 2001/07/11 10:00:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/HEPRandom/include/Randomize.hh b/source/global/HEPRandom/include/Randomize.hh index 8c5508c643..542c1afaa7 100644 --- a/source/global/HEPRandom/include/Randomize.hh +++ b/source/global/HEPRandom/include/Randomize.hh @@ -22,7 +22,7 @@ // // // $Id: Randomize.hh,v 1.5 2001/07/11 10:00:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef randomize_h #define randomize_h 1 diff --git a/source/global/History b/source/global/History index 9b9ce7a205..144708e79c 100644 --- a/source/global/History +++ b/source/global/History @@ -1,4 +1,4 @@ -$Id: History,v 1.115 2003/06/06 16:17:47 gcosmo Exp $ +$Id: History,v 1.119 2003/11/24 11:34:50 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,20 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 24, 2003 G.Cosmo (global-V05-02-03) +- G4UnitsTable.cc: fixed units initialisation and deletion of objects in + constructors. + +November 4, 2003 G.Cosmo (global-V05-02-02) +- Added method ExistPhysicsTable() to G4PhysicsTable. (H.Kurasige) + +October 31, 2003 M.Asai (global-V05-02-01) +- Fixed uninitialized variable in G4StateManager and protect null pointer + of G4VExceptionHandler used in G4Exception + +June 17, 2003 G.Cosmo (global-V05-02-00) +- Archived g4std wrappers. Removed definition of G4std in G4Types.hh. + June 6, 2003 G.Cosmo (global-V05-01-01) - Made g4std wrappers obsolete: o modified wrappers to include standard std headers diff --git a/source/global/management/include/G4Allocator.hh b/source/global/management/include/G4Allocator.hh index 919f3ba2ba..104ee35e06 100644 --- a/source/global/management/include/G4Allocator.hh +++ b/source/global/management/include/G4Allocator.hh @@ -22,7 +22,7 @@ // // // $Id: G4Allocator.hh,v 1.12 2003/03/25 14:56:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4AllocatorPage.hh b/source/global/management/include/G4AllocatorPage.hh index 0ea17cbd06..d9fd1faba2 100644 --- a/source/global/management/include/G4AllocatorPage.hh +++ b/source/global/management/include/G4AllocatorPage.hh @@ -22,7 +22,7 @@ // // // $Id: G4AllocatorPage.hh,v 1.4 2002/05/21 10:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4AllocatorUnit.hh b/source/global/management/include/G4AllocatorUnit.hh index 422afa93cd..2a27286502 100644 --- a/source/global/management/include/G4AllocatorUnit.hh +++ b/source/global/management/include/G4AllocatorUnit.hh @@ -22,7 +22,7 @@ // // // $Id: G4AllocatorUnit.hh,v 1.4 2002/05/21 10:31:25 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4ApplicationState.hh b/source/global/management/include/G4ApplicationState.hh index f0f8ded0fa..d75868188d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4APPLICATIONSTATE_H diff --git a/source/global/management/include/G4DataVector.hh b/source/global/management/include/G4DataVector.hh index 73236f2e50..7996be716d 100644 --- a/source/global/management/include/G4DataVector.hh +++ b/source/global/management/include/G4DataVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4DataVector.hh,v 1.12 2003/06/06 16:17:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4ExceptionSeverity.hh b/source/global/management/include/G4ExceptionSeverity.hh index 4ee8cc5d8e..19763c2b53 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class Description: // diff --git a/source/global/management/include/G4FastVector.hh b/source/global/management/include/G4FastVector.hh index 2331eefa57..b45ac37c9e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.hh b/source/global/management/include/G4LPhysicsFreeVector.hh index fccd25726d..059338bde2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4LPhysicsFreeVector.icc b/source/global/management/include/G4LPhysicsFreeVector.icc index 3b22a1c2d2..4d84a0fc4e 100644 --- a/source/global/management/include/G4LPhysicsFreeVector.icc +++ b/source/global/management/include/G4LPhysicsFreeVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4LPhysicsFreeVector.icc,v 1.5 2001/07/11 10:00:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------------ diff --git a/source/global/management/include/G4OrderedTable.hh b/source/global/management/include/G4OrderedTable.hh index 603f67239c..1187d5fb33 100644 --- a/source/global/management/include/G4OrderedTable.hh +++ b/source/global/management/include/G4OrderedTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4OrderedTable.hh,v 1.11 2003/06/06 16:17:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsFreeVector.hh b/source/global/management/include/G4PhysicsFreeVector.hh index f00a1de1a4..fcb5cd7a8e 100644 --- a/source/global/management/include/G4PhysicsFreeVector.hh +++ b/source/global/management/include/G4PhysicsFreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsFreeVector.hh,v 1.8 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLinearVector.hh b/source/global/management/include/G4PhysicsLinearVector.hh index db5759e442..d73b4afeea 100644 --- a/source/global/management/include/G4PhysicsLinearVector.hh +++ b/source/global/management/include/G4PhysicsLinearVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLinearVector.hh,v 1.8 2003/06/06 16:17:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLnVector.hh b/source/global/management/include/G4PhysicsLnVector.hh index 5ff3795adf..d3ff9e3ce3 100644 --- a/source/global/management/include/G4PhysicsLnVector.hh +++ b/source/global/management/include/G4PhysicsLnVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLnVector.hh,v 1.9 2003/06/06 16:17:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsLogVector.hh b/source/global/management/include/G4PhysicsLogVector.hh index e881fc6399..f7fd0724ba 100644 --- a/source/global/management/include/G4PhysicsLogVector.hh +++ b/source/global/management/include/G4PhysicsLogVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLogVector.hh,v 1.8 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.hh b/source/global/management/include/G4PhysicsOrderedFreeVector.hh index a068d369b3..255071be77 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Definition diff --git a/source/global/management/include/G4PhysicsOrderedFreeVector.icc b/source/global/management/include/G4PhysicsOrderedFreeVector.icc index 0cf1544e6c..4212d285bc 100644 --- a/source/global/management/include/G4PhysicsOrderedFreeVector.icc +++ b/source/global/management/include/G4PhysicsOrderedFreeVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsOrderedFreeVector.icc,v 1.6 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Inline Functions Definitions diff --git a/source/global/management/include/G4PhysicsTable.hh b/source/global/management/include/G4PhysicsTable.hh index 03467010d9..ef700e8b7b 100644 --- a/source/global/management/include/G4PhysicsTable.hh +++ b/source/global/management/include/G4PhysicsTable.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsTable.hh,v 1.12 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PhysicsTable.hh,v 1.13 2003/11/04 10:38:03 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -96,6 +96,9 @@ class G4PhysicsTable : public std::vector G4bool isEmpty() const; // Flags if collection is empty or not. + G4bool ExistPhysicsTable(const G4String& fileName) const; + // Check if the specified file exists or not + G4bool StorePhysicsTable(const G4String& filename, G4bool ascii=false); // Stores PhysicsTable in a file (returns false in case of failure). diff --git a/source/global/management/include/G4PhysicsTable.icc b/source/global/management/include/G4PhysicsTable.icc index 95dba1cd1e..b19ea1126a 100644 --- a/source/global/management/include/G4PhysicsTable.icc +++ b/source/global/management/include/G4PhysicsTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsTable.icc,v 1.4 2001/07/11 10:00:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4PhysicsVector.hh b/source/global/management/include/G4PhysicsVector.hh index 66fad4e604..d55614516c 100644 --- a/source/global/management/include/G4PhysicsVector.hh +++ b/source/global/management/include/G4PhysicsVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.hh,v 1.12 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsVector.icc b/source/global/management/include/G4PhysicsVector.icc index b0b4fef958..82eeb98a3a 100644 --- a/source/global/management/include/G4PhysicsVector.icc +++ b/source/global/management/include/G4PhysicsVector.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.icc,v 1.7 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4PhysicsVectorType.hh b/source/global/management/include/G4PhysicsVectorType.hh index 4d2c8e578d..e898cad546 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- // diff --git a/source/global/management/include/G4ReferenceCountedHandle.hh b/source/global/management/include/G4ReferenceCountedHandle.hh index 4ea9e698cb..30d2d06e4a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Class G4ReferenceCountedHandle diff --git a/source/global/management/include/G4RotationMatrix.hh b/source/global/management/include/G4RotationMatrix.hh index ddba556afc..ae17d6ccdb 100644 --- a/source/global/management/include/G4RotationMatrix.hh +++ b/source/global/management/include/G4RotationMatrix.hh @@ -22,7 +22,7 @@ // // // $Id: G4RotationMatrix.hh,v 1.3 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4SIunits.hh b/source/global/management/include/G4SIunits.hh index d81948d221..3d55c2c544 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // diff --git a/source/global/management/include/G4StateManager.hh b/source/global/management/include/G4StateManager.hh index 7859f62fbe..38ece93d52 100644 --- a/source/global/management/include/G4StateManager.hh +++ b/source/global/management/include/G4StateManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4StateManager.hh,v 1.8 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4String.hh b/source/global/management/include/G4String.hh index e78b415d4f..b01a139169 100644 --- a/source/global/management/include/G4String.hh +++ b/source/global/management/include/G4String.hh @@ -22,7 +22,7 @@ // // // $Id: G4String.hh,v 1.4 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4String.icc b/source/global/management/include/G4String.icc index ec167a4b31..3d3d9e5c8a 100644 --- a/source/global/management/include/G4String.icc +++ b/source/global/management/include/G4String.icc @@ -22,7 +22,7 @@ // // // $Id: G4String.icc,v 1.5 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4ThreeVector.hh b/source/global/management/include/G4ThreeVector.hh index 2ddc24982d..c9147c435e 100644 --- a/source/global/management/include/G4ThreeVector.hh +++ b/source/global/management/include/G4ThreeVector.hh @@ -22,7 +22,7 @@ // // // $Id: G4ThreeVector.hh,v 1.3 2001/07/11 10:00:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4Timer.hh b/source/global/management/include/G4Timer.hh index f170a0475e..6414e214df 100644 --- a/source/global/management/include/G4Timer.hh +++ b/source/global/management/include/G4Timer.hh @@ -22,7 +22,7 @@ // // // $Id: G4Timer.hh,v 1.12 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/include/G4Tokenizer.hh b/source/global/management/include/G4Tokenizer.hh index 63505aec27..b7760208ae 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/global/management/include/G4Types.hh b/source/global/management/include/G4Types.hh index 8da195d964..d6170118b1 100644 --- a/source/global/management/include/G4Types.hh +++ b/source/global/management/include/G4Types.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Types.hh,v 1.6 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Types.hh,v 1.7 2003/06/17 08:14:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // GEANT4 native types @@ -49,11 +49,6 @@ #include #include -// Define G4std namespace for standard std. -// Now obsolete. Will be removed from release 6.0. -// -#define G4std std - // Typedefs to decouple from library classes // Typedefs for numeric types // diff --git a/source/global/management/include/G4UnitsTable.hh b/source/global/management/include/G4UnitsTable.hh index 4f9a78f1e8..a0492cdea6 100644 --- a/source/global/management/include/G4UnitsTable.hh +++ b/source/global/management/include/G4UnitsTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4UnitsTable.hh,v 1.13 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ----------------------------------------------------------------- diff --git a/source/global/management/include/G4UserLimits.hh b/source/global/management/include/G4UserLimits.hh index 414de29104..339dc5c664 100644 --- a/source/global/management/include/G4UserLimits.hh +++ b/source/global/management/include/G4UserLimits.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserLimits.hh,v 1.7 2001/07/11 10:00:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // class G4UserLimits diff --git a/source/global/management/include/G4UserLimits.icc b/source/global/management/include/G4UserLimits.icc index c2a076d9d8..a37f922c16 100644 --- a/source/global/management/include/G4UserLimits.icc +++ b/source/global/management/include/G4UserLimits.icc @@ -22,7 +22,7 @@ // // // $Id: G4UserLimits.icc,v 1.6 2001/07/11 10:00:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/source/global/management/include/G4VExceptionHandler.hh b/source/global/management/include/G4VExceptionHandler.hh index 002666138e..3cc8eada0d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4VStateDependent.hh b/source/global/management/include/G4VStateDependent.hh index a9d9286ba7..a6653acc79 100644 --- a/source/global/management/include/G4VStateDependent.hh +++ b/source/global/management/include/G4VStateDependent.hh @@ -22,7 +22,7 @@ // // // $Id: G4VStateDependent.hh,v 1.3 2001/07/11 10:00:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/include/G4coutDestination.hh b/source/global/management/include/G4coutDestination.hh index 5201a66be4..d34a75201b 100644 --- a/source/global/management/include/G4coutDestination.hh +++ b/source/global/management/include/G4coutDestination.hh @@ -22,7 +22,7 @@ // // // $Id: G4coutDestination.hh,v 1.4 2001/07/11 10:00:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4ios.hh b/source/global/management/include/G4ios.hh index 80db75ab2e..ba6e1e2d4d 100644 --- a/source/global/management/include/G4ios.hh +++ b/source/global/management/include/G4ios.hh @@ -22,7 +22,7 @@ // // // $Id: G4ios.hh,v 1.7 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4strstreambuf.hh b/source/global/management/include/G4strstreambuf.hh index a0584f6dfe..f168218d23 100644 --- a/source/global/management/include/G4strstreambuf.hh +++ b/source/global/management/include/G4strstreambuf.hh @@ -22,7 +22,7 @@ // // // $Id: G4strstreambuf.hh,v 1.10 2003/06/06 16:17:14 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/G4strstreambuf.icc b/source/global/management/include/G4strstreambuf.icc index 63f4d9ebfd..2188136732 100644 --- a/source/global/management/include/G4strstreambuf.icc +++ b/source/global/management/include/G4strstreambuf.icc @@ -22,7 +22,7 @@ // // // $Id: G4strstreambuf.icc,v 1.9 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/global/management/include/g4std/algorithm b/source/global/management/include/g4std/algorithm deleted file mode 100644 index 4807a5db4d..0000000000 --- a/source/global/management/include/g4std/algorithm +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: algorithm,v 1.4 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- algorithm ---------------- -// -#ifndef G4_ALGORITHM_H -#define G4_ALGORITHM_H - -#include - -#endif /* G4_ALGORITHM_H */ - diff --git a/source/global/management/include/g4std/complex b/source/global/management/include/g4std/complex deleted file mode 100644 index 564048b621..0000000000 --- a/source/global/management/include/g4std/complex +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// -// $Id: complex,v 1.4 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- complex ---------------- -// -#ifndef G4_COMPLEX_H -#define G4_COMPLEX_H - -#include - -#endif /* G4_COMPLEX_H */ diff --git a/source/global/management/include/g4std/deque b/source/global/management/include/g4std/deque deleted file mode 100644 index 5fe541172e..0000000000 --- a/source/global/management/include/g4std/deque +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the authors in the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: deque,v 1.3 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- deque ---------------- -// -#ifndef G4_DEQUE_H -#define G4_DEQUE_H - -#include - -#endif /* G4_DEQUE_H */ - diff --git a/source/global/management/include/g4std/fstream b/source/global/management/include/g4std/fstream deleted file mode 100644 index e1abde8202..0000000000 --- a/source/global/management/include/g4std/fstream +++ /dev/null @@ -1,18 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: fstream,v 1.4 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- fstream ---------------- -// -#ifndef G4_FSTREAM_H -#define G4_FSTREAM_H - -#include - -#endif /* G4_FSTREAM_H */ diff --git a/source/global/management/include/g4std/functional b/source/global/management/include/g4std/functional deleted file mode 100644 index 5f8286dad2..0000000000 --- a/source/global/management/include/g4std/functional +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: functional,v 1.4 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- functional ---------------- -// -#ifndef G4_FUNCTIONAL_H -#define G4_FUNCTIONAL_H - -#include - -#endif /* G4_FUNCTIONAL_H */ - diff --git a/source/global/management/include/g4std/iomanip b/source/global/management/include/g4std/iomanip deleted file mode 100644 index 9b3eb87fb7..0000000000 --- a/source/global/management/include/g4std/iomanip +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: iomanip,v 1.4 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- iomanip ---------------- -// -#ifndef G4_IOMANIP_H -#define G4_IOMANIP_H - -#include - -#endif /* G4_IOMANIP_H */ - diff --git a/source/global/management/include/g4std/iostream b/source/global/management/include/g4std/iostream deleted file mode 100644 index ddbd285f05..0000000000 --- a/source/global/management/include/g4std/iostream +++ /dev/null @@ -1,18 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: iostream,v 1.4 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- iostream ---------------- -// -#ifndef G4_IOSTREAM_H -#define G4_IOSTREAM_H - -#include - -#endif /* G4_IOSTREAM_H */ diff --git a/source/global/management/include/g4std/list b/source/global/management/include/g4std/list deleted file mode 100644 index 68136d14d8..0000000000 --- a/source/global/management/include/g4std/list +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: list,v 1.2 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- list ---------------- -// -#ifndef G4_LIST_H -#define G4_LIST_H - -#include - -#endif - diff --git a/source/global/management/include/g4std/map b/source/global/management/include/g4std/map deleted file mode 100644 index 70a42c0791..0000000000 --- a/source/global/management/include/g4std/map +++ /dev/null @@ -1,18 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: map,v 1.4 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- map ---------------- -// -#ifndef G4_MAP_H -#define G4_MAP_H - -#include - -#endif /* G4_MAP_H */ diff --git a/source/global/management/include/g4std/queue b/source/global/management/include/g4std/queue deleted file mode 100644 index ebc174946f..0000000000 --- a/source/global/management/include/g4std/queue +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: queue,v 1.2 2003/06/06 16:17:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- queue ---------------- -// -#ifndef G4_QUEUE_H -#define G4_QUEUE_H - -#include - -#endif /* G4_QUEUE_H */ - diff --git a/source/global/management/include/g4std/set b/source/global/management/include/g4std/set deleted file mode 100644 index 8e744e4a5b..0000000000 --- a/source/global/management/include/g4std/set +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: set,v 1.4 2003/06/06 16:17:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- set ---------------- -// -#ifndef G4_SET_H -#define G4_SET_H - -#include - -#endif /* G4_SET_H */ - diff --git a/source/global/management/include/g4std/streambuf b/source/global/management/include/g4std/streambuf deleted file mode 100644 index 4ca7db4779..0000000000 --- a/source/global/management/include/g4std/streambuf +++ /dev/null @@ -1,18 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: streambuf,v 1.4 2003/06/06 16:17:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- streambuf ---------------- -// -#ifndef G4_STREAMBUF_H -#define G4_STREAMBUF_H - -#include - -#endif /* G4_STREAMBUF_H */ diff --git a/source/global/management/include/g4std/strstream b/source/global/management/include/g4std/strstream deleted file mode 100644 index 6005b000f2..0000000000 --- a/source/global/management/include/g4std/strstream +++ /dev/null @@ -1,18 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: strstream,v 1.5 2003/06/06 16:17:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- strstream ---------------- -// -#ifndef G4_STRSTREAM_H -#define G4_STRSTREAM_H - -#include - -#endif /* G4_STRSTREAM_H */ diff --git a/source/global/management/include/g4std/vector b/source/global/management/include/g4std/vector deleted file mode 100644 index dc59d3f541..0000000000 --- a/source/global/management/include/g4std/vector +++ /dev/null @@ -1,19 +0,0 @@ -// This code implementation is the intellectual property of -// the GEANT4 collaboration. -// -// By copying, distributing or modifying the Program (or any work -// based on the Program) you indicate your acceptance of this statement, -// and all its terms. -// -// $Id: vector,v 1.4 2003/06/06 16:17:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------- vector ---------------- -// -#ifndef G4_VECTOR_H -#define G4_VECTOR_H - -#include - -#endif /* G4_VECTOR_H */ - diff --git a/source/global/management/include/g4std/wrappers/AIX-xlC/cmath b/source/global/management/include/g4std/wrappers/AIX-xlC/cmath deleted file mode 100644 index 7e2e7cfcb4..0000000000 --- a/source/global/management/include/g4std/wrappers/AIX-xlC/cmath +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __CMATH__ -#define __CMATH__ - -#include -inline float abs (float x) { return fabs (x); } -inline double abs (double x) { return fabs (x); } -inline long double abs (long double x) { return fabs (x); } - - -#endif // __CMATH__ diff --git a/source/global/management/include/g4std/wrappers/AIX-xlC/cstdio b/source/global/management/include/g4std/wrappers/AIX-xlC/cstdio deleted file mode 100644 index 354499acd6..0000000000 --- a/source/global/management/include/g4std/wrappers/AIX-xlC/cstdio +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/g4std/wrappers/AIX-xlC/cstdlib b/source/global/management/include/g4std/wrappers/AIX-xlC/cstdlib deleted file mode 100644 index b0c4d22f1e..0000000000 --- a/source/global/management/include/g4std/wrappers/AIX-xlC/cstdlib +++ /dev/null @@ -1,8 +0,0 @@ -// The -*- C++ -*- standard library header. -// This file is part of the GNU ANSI C++ Library. - -#ifndef __CSTDLIB__ -#define __CSTDLIB__ -#include - -#endif diff --git a/source/global/management/include/g4std/wrappers/AIX-xlC/cstring b/source/global/management/include/g4std/wrappers/AIX-xlC/cstring deleted file mode 100644 index 51025ebb2b..0000000000 --- a/source/global/management/include/g4std/wrappers/AIX-xlC/cstring +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef __STD_CSTRING -#define __STD_CSTRING - -#include -int strcasecmp(const char *s1, const char *s2) { return strcmp(s1,s2); } - -#endif /*__STD_CSTRING*/ - diff --git a/source/global/management/include/g4std/wrappers/DEC-cxx/cmath b/source/global/management/include/g4std/wrappers/DEC-cxx/cmath deleted file mode 100644 index e08d565191..0000000000 --- a/source/global/management/include/g4std/wrappers/DEC-cxx/cmath +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef __CMATH__ -#define __CMATH__ - -#include - -#endif // __CMATH__ diff --git a/source/global/management/include/g4std/wrappers/DEC-cxx/cstdio b/source/global/management/include/g4std/wrappers/DEC-cxx/cstdio deleted file mode 100644 index 53c5fdf179..0000000000 --- a/source/global/management/include/g4std/wrappers/DEC-cxx/cstdio +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/g4std/wrappers/DEC-cxx/cstdlib b/source/global/management/include/g4std/wrappers/DEC-cxx/cstdlib deleted file mode 100644 index b0c4d22f1e..0000000000 --- a/source/global/management/include/g4std/wrappers/DEC-cxx/cstdlib +++ /dev/null @@ -1,8 +0,0 @@ -// The -*- C++ -*- standard library header. -// This file is part of the GNU ANSI C++ Library. - -#ifndef __CSTDLIB__ -#define __CSTDLIB__ -#include - -#endif diff --git a/source/global/management/include/g4std/wrappers/DEC-cxx/cstring b/source/global/management/include/g4std/wrappers/DEC-cxx/cstring deleted file mode 100644 index d5a7322872..0000000000 --- a/source/global/management/include/g4std/wrappers/DEC-cxx/cstring +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/g4std/wrappers/SGI-CC/iostream b/source/global/management/include/g4std/wrappers/SGI-CC/iostream deleted file mode 100644 index 9e4d27ee83..0000000000 --- a/source/global/management/include/g4std/wrappers/SGI-CC/iostream +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/source/global/management/include/globals.hh b/source/global/management/include/globals.hh index f66f4ed09c..57f562d6bd 100644 --- a/source/global/management/include/globals.hh +++ b/source/global/management/include/globals.hh @@ -22,7 +22,7 @@ // // // $Id: globals.hh,v 1.23 2003/06/06 16:17:15 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Global Constants and typedefs diff --git a/source/global/management/include/templates.hh b/source/global/management/include/templates.hh index 06aff9a02e..c3f7c6df37 100644 --- a/source/global/management/include/templates.hh +++ b/source/global/management/include/templates.hh @@ -22,7 +22,7 @@ // // // $Id: templates.hh,v 1.6 2001/07/11 10:00:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -*- C++ -*- diff --git a/source/global/management/src/G4DataVector.cc b/source/global/management/src/G4DataVector.cc index 85c5ac2485..c8593c04f3 100644 --- a/source/global/management/src/G4DataVector.cc +++ b/source/global/management/src/G4DataVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4DataVector.cc,v 1.6 2003/06/06 16:17:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4Exception.cc b/source/global/management/src/G4Exception.cc index 607857d750..210b50ece6 100644 --- a/source/global/management/src/G4Exception.cc +++ b/source/global/management/src/G4Exception.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Exception.cc,v 1.16 2003/06/06 16:17:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Exception.cc,v 1.17 2003/10/31 17:44:47 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- @@ -59,9 +59,44 @@ void G4Exception(const char* originOfException, G4ExceptionSeverity severity, const char* description) { - G4bool toBeAborted = - G4StateManager::GetStateManager()->GetExceptionHandler() + G4VExceptionHandler* exceptionHandler + = G4StateManager::GetStateManager()->GetExceptionHandler(); + G4bool toBeAborted = true; + if(exceptionHandler) + { + toBeAborted = exceptionHandler ->Notify(originOfException,exceptionCode,severity,description); + } + else + { + G4cerr << G4endl + << "*** ExceptionHandler is not defined ***" << G4endl; + G4cerr << G4endl; + G4cerr << "*** G4Exception : " << exceptionCode << G4endl; + G4cerr << " issued by : " << originOfException << G4endl; + G4cerr << description << G4endl; + G4cerr << G4endl << "Severity : "; + switch(severity) + { + case FatalException: + G4cerr << "*** Fatal Exception ***"; + break; + case FatalErrorInArgument: + G4cerr << "*** Fatal Error In Argument ***"; + break; + case RunMustBeAborted: + G4cerr << "*** Run Must Be Aborted ***"; + break; + case EventMustBeAborted: + G4cerr << "*** Event Must Be Aborted ***"; + break; + default: + G4cerr << "*** This is just a warning message. ***"; + toBeAborted = false; + break; + } + G4cerr << G4endl; + } if(toBeAborted) { if(G4StateManager::GetStateManager()->SetNewState(G4State_Abort)) { diff --git a/source/global/management/src/G4LPhysicsFreeVector.cc b/source/global/management/src/G4LPhysicsFreeVector.cc index f3631b3a0c..05528b9a1c 100644 --- a/source/global/management/src/G4LPhysicsFreeVector.cc +++ b/source/global/management/src/G4LPhysicsFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4LPhysicsFreeVector.cc,v 1.8 2001/07/11 10:00:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------------- diff --git a/source/global/management/src/G4OrderedTable.cc b/source/global/management/src/G4OrderedTable.cc index 2314d9cec2..ba91c318fc 100644 --- a/source/global/management/src/G4OrderedTable.cc +++ b/source/global/management/src/G4OrderedTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4OrderedTable.cc,v 1.3 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4PhysicsFreeVector.cc b/source/global/management/src/G4PhysicsFreeVector.cc index 2f513d71c5..f1cf6e560d 100644 --- a/source/global/management/src/G4PhysicsFreeVector.cc +++ b/source/global/management/src/G4PhysicsFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsFreeVector.cc,v 1.8 2001/07/11 10:00:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLinearVector.cc b/source/global/management/src/G4PhysicsLinearVector.cc index cf75fada07..61ceeeeaa9 100644 --- a/source/global/management/src/G4PhysicsLinearVector.cc +++ b/source/global/management/src/G4PhysicsLinearVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLinearVector.cc,v 1.10 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //-------------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLnVector.cc b/source/global/management/src/G4PhysicsLnVector.cc index 9c399a2f18..258af177e4 100644 --- a/source/global/management/src/G4PhysicsLnVector.cc +++ b/source/global/management/src/G4PhysicsLnVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLnVector.cc,v 1.12 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsLogVector.cc b/source/global/management/src/G4PhysicsLogVector.cc index fafa573583..895242dfb5 100644 --- a/source/global/management/src/G4PhysicsLogVector.cc +++ b/source/global/management/src/G4PhysicsLogVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsLogVector.cc,v 1.10 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4PhysicsOrderedFreeVector.cc b/source/global/management/src/G4PhysicsOrderedFreeVector.cc index 28a7b0a909..45fe1fc5a7 100644 --- a/source/global/management/src/G4PhysicsOrderedFreeVector.cc +++ b/source/global/management/src/G4PhysicsOrderedFreeVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsOrderedFreeVector.cc,v 1.8 2001/07/11 10:00:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // PhysicsOrderedFreeVector Class Implementation diff --git a/source/global/management/src/G4PhysicsTable.cc b/source/global/management/src/G4PhysicsTable.cc index ac57daf038..96521e7ef2 100644 --- a/source/global/management/src/G4PhysicsTable.cc +++ b/source/global/management/src/G4PhysicsTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhysicsTable.cc,v 1.8 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PhysicsTable.cc,v 1.10 2003/11/04 12:17:30 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -119,12 +119,26 @@ G4bool G4PhysicsTable::StorePhysicsTable(const G4String& fileName, } +G4bool G4PhysicsTable::ExistPhysicsTable(const G4String& fileName) const +{ + std::ifstream fIn; + G4bool value=true; + // open input file + fIn.open(fileName,std::ios::in); + // check if the file has been opened successfully + if (!fIn) { + value = false; + } + fIn.close(); + return value; +} + G4bool G4PhysicsTable::RetrievePhysicsTable(const G4String& fileName, G4bool ascii) { std::ifstream fIn; - // open input file // + // open input file if (ascii) fIn.open(fileName,std::ios::in|std::ios::binary); else diff --git a/source/global/management/src/G4PhysicsVector.cc b/source/global/management/src/G4PhysicsVector.cc index e40f0d2738..28b04bd9a1 100644 --- a/source/global/management/src/G4PhysicsVector.cc +++ b/source/global/management/src/G4PhysicsVector.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhysicsVector.cc,v 1.15 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/global/management/src/G4StateManager.cc b/source/global/management/src/G4StateManager.cc index c93c94a6e2..961a58c9ba 100644 --- a/source/global/management/src/G4StateManager.cc +++ b/source/global/management/src/G4StateManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StateManager.cc,v 1.9 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StateManager.cc,v 1.10 2003/10/31 17:44:47 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -42,7 +42,8 @@ G4StateManager::G4StateManager() thePreviousState(G4State_PreInit), theBottomDependent(0), suppressAbortion(0), - msgptr(0) + msgptr(0), + exceptionHandler(0) { } diff --git a/source/global/management/src/G4Timer.cc b/source/global/management/src/G4Timer.cc index 089ace08ca..9bca3f9f68 100644 --- a/source/global/management/src/G4Timer.cc +++ b/source/global/management/src/G4Timer.cc @@ -22,7 +22,7 @@ // // // $Id: G4Timer.cc,v 1.11 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/global/management/src/G4UnitsTable.cc b/source/global/management/src/G4UnitsTable.cc index 3d2abc6684..11cfc1eca3 100644 --- a/source/global/management/src/G4UnitsTable.cc +++ b/source/global/management/src/G4UnitsTable.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnitsTable.cc,v 1.18 2003/06/06 16:17:17 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UnitsTable.cc,v 1.20 2003/11/24 11:34:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... // @@ -32,7 +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) - +// //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -69,7 +69,12 @@ G4UnitDefinition::G4UnitDefinition(G4String name, G4String symbol, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4UnitDefinition::~G4UnitDefinition() -{} +{ + for (size_t i=0;iPrintCategory(); + { + theUnitsTable[i]->PrintCategory(); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4UnitsCategory::G4UnitsCategory(G4String name) -:Name(name),NameMxLen(0),SymbMxLen(0) +:Name(name),UnitsList(),NameMxLen(0),SymbMxLen(0) { - UnitsList = *(new G4UnitsContainer); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4UnitsCategory::~G4UnitsCategory() -{} +{ +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4UnitsCategory::G4UnitsCategory(G4UnitsCategory& right) { - *this = right; + *this = right; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/global/management/src/G4VExceptionHandler.cc b/source/global/management/src/G4VExceptionHandler.cc index 9315fc8965..9ea43d1e11 100644 --- a/source/global/management/src/G4VExceptionHandler.cc +++ b/source/global/management/src/G4VExceptionHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VExceptionHandler.cc,v 1.1 2002/08/19 18:20:12 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4VStateDependent.cc b/source/global/management/src/G4VStateDependent.cc index 0a790a8b1b..6703fbcd4b 100644 --- a/source/global/management/src/G4VStateDependent.cc +++ b/source/global/management/src/G4VStateDependent.cc @@ -22,7 +22,7 @@ // // // $Id: G4VStateDependent.cc,v 1.3 2001/07/11 10:00:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/global/management/src/G4ios.cc b/source/global/management/src/G4ios.cc index 0a0c1bfcf1..acb9b3f936 100644 --- a/source/global/management/src/G4ios.cc +++ b/source/global/management/src/G4ios.cc @@ -22,7 +22,7 @@ // // // $Id: G4ios.cc,v 1.6 2003/06/06 16:17:18 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/graphics_reps/History b/source/graphics_reps/History index d5f39f6581..e3197357bd 100644 --- a/source/graphics_reps/History +++ b/source/graphics_reps/History @@ -1,4 +1,4 @@ -cvs log $Id: History,v 1.46 2003/04/03 15:31:22 gcosmo Exp $ +cvs log $Id: History,v 1.47 2003/09/18 11:03:10 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +18th September 2003 John Alison (greps-V05-02-00) +- Introduced G4Colour<->G4ThreeVector conversion operators. + 3rd April 2003 G.Cosmo (greps-V05-00-00) - Cleared trivial pedantic warnings. diff --git a/source/graphics_reps/include/G4AttDef.hh b/source/graphics_reps/include/G4AttDef.hh index 8c8e879488..985eeb1e4e 100644 --- a/source/graphics_reps/include/G4AttDef.hh +++ b/source/graphics_reps/include/G4AttDef.hh @@ -22,7 +22,7 @@ // // // $Id: G4AttDef.hh,v 1.3 2002/10/24 14:35:14 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #ifndef G4ATTDEF_HH #define G4ATTDEF_HH diff --git a/source/graphics_reps/include/G4AttDefStore.hh b/source/graphics_reps/include/G4AttDefStore.hh index f269865212..eade017d0c 100644 --- a/source/graphics_reps/include/G4AttDefStore.hh +++ b/source/graphics_reps/include/G4AttDefStore.hh @@ -22,7 +22,7 @@ // // // $Id: G4AttDefStore.hh,v 1.4 2003/06/16 16:55:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #ifndef G4ATTDEFSTORE_HH #define G4ATTDEFSTORE_HH diff --git a/source/graphics_reps/include/G4AttValue.hh b/source/graphics_reps/include/G4AttValue.hh index f7374e8b5b..e37af24ea6 100644 --- a/source/graphics_reps/include/G4AttValue.hh +++ b/source/graphics_reps/include/G4AttValue.hh @@ -22,7 +22,7 @@ // // // $Id: G4AttValue.hh,v 1.3 2002/10/24 14:35:20 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #ifndef G4ATTVALUE_HH #define G4ATTVALUE_HH diff --git a/source/graphics_reps/include/G4Circle.hh b/source/graphics_reps/include/G4Circle.hh index a21124cf8c..904dd2fec1 100644 --- a/source/graphics_reps/include/G4Circle.hh +++ b/source/graphics_reps/include/G4Circle.hh @@ -22,7 +22,7 @@ // // // $Id: G4Circle.hh,v 1.6 2001/07/11 10:01:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Color.hh b/source/graphics_reps/include/G4Color.hh index c123da1ab0..6e44b926c7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 20th October 1996 diff --git a/source/graphics_reps/include/G4Colour.hh b/source/graphics_reps/include/G4Colour.hh index 8acfef60cf..c59c89d0cf 100644 --- a/source/graphics_reps/include/G4Colour.hh +++ b/source/graphics_reps/include/G4Colour.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Colour.hh,v 1.8 2003/06/16 16:55:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Colour.hh,v 1.9 2003/09/18 11:03:11 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 20th October 1996 @@ -71,6 +71,7 @@ #define G4COLOUR_HH #include "globals.hh" +#include "G4ThreeVector.hh" #include class G4Colour { @@ -80,6 +81,11 @@ public: // With description G4Colour (G4double r = 1., G4double g = 1., G4double b = 1., G4double a = 1.); + G4Colour (G4ThreeVector); + // Converts the components of the 3-vector into red, green, blue. + // The opacity, alpha = 1. + operator G4ThreeVector(); + // Converts red, green, blue into the components of a 3-vector. G4bool operator != (const G4Colour& c) const; G4double GetRed () const; G4double GetGreen () const; @@ -89,15 +95,6 @@ private: G4double red, green, blue, alpha; }; -inline G4Colour::G4Colour (G4double r, G4double g, G4double b, G4double a): -red (r), green (g), blue (b), alpha (a) -{ - if( red > 1.0 ){red = 1.0;} if( red < 0.0 ){red = 0.0;} - if( green > 1.0 ){green = 1.0;} if( green < 0.0 ){green = 0.0;} - if( blue > 1.0 ){blue = 1.0;} if( blue < 0.0 ){blue = 0.0;} - if( alpha > 1.0 ){alpha = 1.0;} if( alpha < 0.0 ){alpha = 0.0;} -} - inline G4double G4Colour::GetRed () const {return red;} inline G4double G4Colour::GetGreen () const {return green;} inline G4double G4Colour::GetBlue () const {return blue;} diff --git a/source/graphics_reps/include/G4NURBS.hh b/source/graphics_reps/include/G4NURBS.hh index 57b6af6a12..5fa84844b8 100644 --- a/source/graphics_reps/include/G4NURBS.hh +++ b/source/graphics_reps/include/G4NURBS.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBS.hh,v 1.8 2003/06/16 16:55:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBSbox.hh b/source/graphics_reps/include/G4NURBSbox.hh index 06d4e2d077..33639dbf7d 100644 --- a/source/graphics_reps/include/G4NURBSbox.hh +++ b/source/graphics_reps/include/G4NURBSbox.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBSbox.hh,v 1.7 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBScylinder.hh b/source/graphics_reps/include/G4NURBScylinder.hh index 208045750b..e9d91a3508 100644 --- a/source/graphics_reps/include/G4NURBScylinder.hh +++ b/source/graphics_reps/include/G4NURBScylinder.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBScylinder.hh,v 1.7 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBShexahedron.hh b/source/graphics_reps/include/G4NURBShexahedron.hh index 707b65d11c..3b776dfdcb 100644 --- a/source/graphics_reps/include/G4NURBShexahedron.hh +++ b/source/graphics_reps/include/G4NURBShexahedron.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBShexahedron.hh,v 1.7 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hexa hedron builder prototype // OC 17 9 96 diff --git a/source/graphics_reps/include/G4NURBStube.hh b/source/graphics_reps/include/G4NURBStube.hh index 8e086d37db..170c2b91c3 100644 --- a/source/graphics_reps/include/G4NURBStube.hh +++ b/source/graphics_reps/include/G4NURBStube.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBStube.hh,v 1.7 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4NURBStubesector.hh b/source/graphics_reps/include/G4NURBStubesector.hh index 39239191f2..6a6d74329d 100644 --- a/source/graphics_reps/include/G4NURBStubesector.hh +++ b/source/graphics_reps/include/G4NURBStubesector.hh @@ -22,7 +22,7 @@ // // // $Id: G4NURBStubesector.hh,v 1.6 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/include/G4PlacedPolyhedron.hh b/source/graphics_reps/include/G4PlacedPolyhedron.hh index 3402103b75..31ee0a7d8d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // Class Description: diff --git a/source/graphics_reps/include/G4Point3DList.hh b/source/graphics_reps/include/G4Point3DList.hh index 2936d8d85c..583a7f265e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/include/G4Polyhedron.hh b/source/graphics_reps/include/G4Polyhedron.hh index 6ec48e2e34..a2eab352a4 100644 --- a/source/graphics_reps/include/G4Polyhedron.hh +++ b/source/graphics_reps/include/G4Polyhedron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedron.hh,v 1.10 2001/07/11 10:01:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #ifndef G4POLYHEDRON_HH #define G4POLYHEDRON_HH diff --git a/source/graphics_reps/include/G4Polyline.hh b/source/graphics_reps/include/G4Polyline.hh index f02d4fa2ca..c0b6b8de44 100644 --- a/source/graphics_reps/include/G4Polyline.hh +++ b/source/graphics_reps/include/G4Polyline.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polyline.hh,v 1.10 2003/06/16 16:55:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/include/G4Polymarker.hh b/source/graphics_reps/include/G4Polymarker.hh index 775605ba09..ecbdf82002 100644 --- a/source/graphics_reps/include/G4Polymarker.hh +++ b/source/graphics_reps/include/G4Polymarker.hh @@ -22,7 +22,7 @@ // // // $Id: G4Polymarker.hh,v 1.8 2003/06/16 16:55:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/include/G4Polymarker.icc b/source/graphics_reps/include/G4Polymarker.icc index afd9217a09..75dac242e7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/include/G4Scale.hh b/source/graphics_reps/include/G4Scale.hh index 044e709b24..585d9c7028 100644 --- a/source/graphics_reps/include/G4Scale.hh +++ b/source/graphics_reps/include/G4Scale.hh @@ -22,7 +22,7 @@ // // // $Id: G4Scale.hh,v 1.5 2002/11/27 12:24:01 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 21st July 2001. diff --git a/source/graphics_reps/include/G4Scale.icc b/source/graphics_reps/include/G4Scale.icc index c520fea149..4f4bf3b0ed 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 21st July 2001. diff --git a/source/graphics_reps/include/G4Square.hh b/source/graphics_reps/include/G4Square.hh index 86b319987e..ddcfcc0797 100644 --- a/source/graphics_reps/include/G4Square.hh +++ b/source/graphics_reps/include/G4Square.hh @@ -22,7 +22,7 @@ // // // $Id: G4Square.hh,v 1.5 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Square.icc b/source/graphics_reps/include/G4Square.icc index cf92efb50a..a9f86d3372 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Text.hh b/source/graphics_reps/include/G4Text.hh index f67a14099e..6a75269f17 100644 --- a/source/graphics_reps/include/G4Text.hh +++ b/source/graphics_reps/include/G4Text.hh @@ -22,7 +22,7 @@ // // // $Id: G4Text.hh,v 1.7 2001/07/11 10:01:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4Text.icc b/source/graphics_reps/include/G4Text.icc index c8b3272882..6f715aca58 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/include/G4VMarker.hh b/source/graphics_reps/include/G4VMarker.hh index 9ce953772a..d7b3f841a8 100644 --- a/source/graphics_reps/include/G4VMarker.hh +++ b/source/graphics_reps/include/G4VMarker.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMarker.hh,v 1.9 2003/06/16 16:55:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4VMarker - base class for markers - circles, squares, etc. diff --git a/source/graphics_reps/include/G4VMarker.icc b/source/graphics_reps/include/G4VMarker.icc index 24bc882f20..558cc34379 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/graphics_reps/include/G4VVisPrim.hh b/source/graphics_reps/include/G4VVisPrim.hh index 281081e683..9d1a56f78c 100644 --- a/source/graphics_reps/include/G4VVisPrim.hh +++ b/source/graphics_reps/include/G4VVisPrim.hh @@ -22,7 +22,7 @@ // // // $Id: G4VVisPrim.hh,v 1.9 2003/06/16 16:55:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison August 1995 diff --git a/source/graphics_reps/include/G4VisAttributes.hh b/source/graphics_reps/include/G4VisAttributes.hh index 6ed906ce0b..2088065e10 100644 --- a/source/graphics_reps/include/G4VisAttributes.hh +++ b/source/graphics_reps/include/G4VisAttributes.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.hh,v 1.11 2003/06/16 16:55:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 23rd October 1996 diff --git a/source/graphics_reps/include/G4VisAttributes.icc b/source/graphics_reps/include/G4VisAttributes.icc index ae8e6ed8b6..9b114dfd31 100644 --- a/source/graphics_reps/include/G4VisAttributes.icc +++ b/source/graphics_reps/include/G4VisAttributes.icc @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.icc,v 1.6 2003/06/16 16:55:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 18th November 1996 diff --git a/source/graphics_reps/include/G4VisExtent.hh b/source/graphics_reps/include/G4VisExtent.hh index e053a0d7c9..bb14b77e4f 100644 --- a/source/graphics_reps/include/G4VisExtent.hh +++ b/source/graphics_reps/include/G4VisExtent.hh @@ -22,7 +22,7 @@ // // // $Id: G4VisExtent.hh,v 1.7 2003/06/16 16:55:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // A.Walkden 28/11/95 diff --git a/source/graphics_reps/include/G4Visible.hh b/source/graphics_reps/include/G4Visible.hh index 21e20231ea..0af6c90195 100644 --- a/source/graphics_reps/include/G4Visible.hh +++ b/source/graphics_reps/include/G4Visible.hh @@ -22,7 +22,7 @@ // // // $Id: G4Visible.hh,v 1.8 2003/06/16 16:55:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/include/G4Visible.icc b/source/graphics_reps/include/G4Visible.icc index cfa15e4422..1b3de5b31f 100644 --- a/source/graphics_reps/include/G4Visible.icc +++ b/source/graphics_reps/include/G4Visible.icc @@ -22,7 +22,7 @@ // // // $Id: G4Visible.icc,v 1.4 2001/07/11 10:01:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/include/HepPolyhedron.h b/source/graphics_reps/include/HepPolyhedron.h index 3f1ef12d95..ffc340de40 100644 --- a/source/graphics_reps/include/HepPolyhedron.h +++ b/source/graphics_reps/include/HepPolyhedron.h @@ -22,7 +22,7 @@ // // // $Id: HepPolyhedron.h,v 1.12 2002/11/20 14:18:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Class Description: diff --git a/source/graphics_reps/src/G4AttDefStore.cc b/source/graphics_reps/src/G4AttDefStore.cc index 38b85f4f29..35130ae2f0 100644 --- a/source/graphics_reps/src/G4AttDefStore.cc +++ b/source/graphics_reps/src/G4AttDefStore.cc @@ -22,7 +22,7 @@ // // // $Id: G4AttDefStore.cc,v 1.3 2003/06/16 16:55:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G4AttDefStore.hh" diff --git a/source/graphics_reps/src/G4Circle.cc b/source/graphics_reps/src/G4Circle.cc index 97ce947761..3d7d351c7e 100644 --- a/source/graphics_reps/src/G4Circle.cc +++ b/source/graphics_reps/src/G4Circle.cc @@ -22,7 +22,7 @@ // // // $Id: G4Circle.cc,v 1.4 2001/07/11 10:01:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/graphics_reps/src/G4Colour.cc b/source/graphics_reps/src/G4Colour.cc index 433de5128e..0a46d9ac36 100644 --- a/source/graphics_reps/src/G4Colour.cc +++ b/source/graphics_reps/src/G4Colour.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Colour.cc,v 1.5 2003/06/16 16:55:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Colour.cc,v 1.6 2003/09/18 11:03:12 johna Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 20th October 1996 @@ -30,6 +30,27 @@ #include "G4Colour.hh" #include "G4ios.hh" +G4Colour::G4Colour (G4double r, G4double g, G4double b, G4double a): +red (r), green (g), blue (b), alpha (a) +{ + if( red > 1.0 ){red = 1.0;} if( red < 0.0 ){red = 0.0;} + if( green > 1.0 ){green = 1.0;} if( green < 0.0 ){green = 0.0;} + if( blue > 1.0 ){blue = 1.0;} if( blue < 0.0 ){blue = 0.0;} + if( alpha > 1.0 ){alpha = 1.0;} if( alpha < 0.0 ){alpha = 0.0;} +} + +G4Colour::G4Colour (G4ThreeVector v): +red (v.x()), green (v.y()), blue (v.z()), alpha (1.) +{ + if( red > 1.0 ){red = 1.0;} if( red < 0.0 ){red = 0.0;} + if( green > 1.0 ){green = 1.0;} if( green < 0.0 ){green = 0.0;} + if( blue > 1.0 ){blue = 1.0;} if( blue < 0.0 ){blue = 0.0;} +} + +G4Colour::operator G4ThreeVector() { + return G4ThreeVector(red,green,blue); +} + std::ostream& operator << (std::ostream& os, const G4Colour& c) { return os << '(' << c.red << ',' << c.green << ',' << c.blue << ',' << c.alpha << ')'; diff --git a/source/graphics_reps/src/G4NURBS.cc b/source/graphics_reps/src/G4NURBS.cc index 7c2505bac7..745c96265a 100644 --- a/source/graphics_reps/src/G4NURBS.cc +++ b/source/graphics_reps/src/G4NURBS.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBS.cc,v 1.7 2003/06/16 16:55:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBSbox.cc b/source/graphics_reps/src/G4NURBSbox.cc index 29bd922e78..409e01b934 100644 --- a/source/graphics_reps/src/G4NURBSbox.cc +++ b/source/graphics_reps/src/G4NURBSbox.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBSbox.cc,v 1.5 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBScylinder.cc b/source/graphics_reps/src/G4NURBScylinder.cc index e01aa98c74..1bd9ea8088 100644 --- a/source/graphics_reps/src/G4NURBScylinder.cc +++ b/source/graphics_reps/src/G4NURBScylinder.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBScylinder.cc,v 1.5 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBShexahedron.cc b/source/graphics_reps/src/G4NURBShexahedron.cc index 5f57358dab..6121a140ec 100644 --- a/source/graphics_reps/src/G4NURBShexahedron.cc +++ b/source/graphics_reps/src/G4NURBShexahedron.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBShexahedron.cc,v 1.5 2003/04/03 15:31:06 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // hexahedron implementation // OC 17 9 96 diff --git a/source/graphics_reps/src/G4NURBStube.cc b/source/graphics_reps/src/G4NURBStube.cc index fdf51a3b12..20752452c0 100644 --- a/source/graphics_reps/src/G4NURBStube.cc +++ b/source/graphics_reps/src/G4NURBStube.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBStube.cc,v 1.5 2003/04/03 15:31:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4NURBStubesector.cc b/source/graphics_reps/src/G4NURBStubesector.cc index 336e98e61d..15c4362783 100644 --- a/source/graphics_reps/src/G4NURBStubesector.cc +++ b/source/graphics_reps/src/G4NURBStubesector.cc @@ -22,7 +22,7 @@ // // // $Id: G4NURBStubesector.cc,v 1.7 2003/06/16 16:55:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Olivier Crumeyrolle 12 September 1996 diff --git a/source/graphics_reps/src/G4PlacedPolyhedron.cc b/source/graphics_reps/src/G4PlacedPolyhedron.cc index f1c3ea300b..5840b8f23e 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G4PlacedPolyhedron.hh" diff --git a/source/graphics_reps/src/G4Point3DList.cc b/source/graphics_reps/src/G4Point3DList.cc index c96e22d6be..ec3fd37366 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/src/G4Polyhedron.cc b/source/graphics_reps/src/G4Polyhedron.cc index cce0943b68..cff27d10da 100644 --- a/source/graphics_reps/src/G4Polyhedron.cc +++ b/source/graphics_reps/src/G4Polyhedron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polyhedron.cc,v 1.12 2003/04/03 15:31:07 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G4Polyhedron.hh" diff --git a/source/graphics_reps/src/G4Polyline.cc b/source/graphics_reps/src/G4Polyline.cc index 321440d1d9..4b1b3901fc 100644 --- a/source/graphics_reps/src/G4Polyline.cc +++ b/source/graphics_reps/src/G4Polyline.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polyline.cc,v 1.8 2003/06/16 16:55:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison July 1995 diff --git a/source/graphics_reps/src/G4Polymarker.cc b/source/graphics_reps/src/G4Polymarker.cc index 9adc378815..fda06a7abc 100644 --- a/source/graphics_reps/src/G4Polymarker.cc +++ b/source/graphics_reps/src/G4Polymarker.cc @@ -22,7 +22,7 @@ // // // $Id: G4Polymarker.cc,v 1.8 2003/06/16 16:55:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison November 1996 diff --git a/source/graphics_reps/src/G4Scale.cc b/source/graphics_reps/src/G4Scale.cc index e666f2fc47..a1ca052fae 100644 --- a/source/graphics_reps/src/G4Scale.cc +++ b/source/graphics_reps/src/G4Scale.cc @@ -22,7 +22,7 @@ // // // $Id: G4Scale.cc,v 1.6 2002/11/27 12:24:01 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 21st July 2001 diff --git a/source/graphics_reps/src/G4Square.cc b/source/graphics_reps/src/G4Square.cc index 936df7ed19..6eb7caea91 100644 --- a/source/graphics_reps/src/G4Square.cc +++ b/source/graphics_reps/src/G4Square.cc @@ -22,7 +22,7 @@ // // // $Id: G4Square.cc,v 1.3 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/graphics_reps/src/G4Text.cc b/source/graphics_reps/src/G4Text.cc index 4a9933d55f..546e4bdb0e 100644 --- a/source/graphics_reps/src/G4Text.cc +++ b/source/graphics_reps/src/G4Text.cc @@ -22,7 +22,7 @@ // // // $Id: G4Text.cc,v 1.6 2001/07/11 10:01:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 17/11/96. diff --git a/source/graphics_reps/src/G4VMarker.cc b/source/graphics_reps/src/G4VMarker.cc index 7915d34988..8a975866bd 100644 --- a/source/graphics_reps/src/G4VMarker.cc +++ b/source/graphics_reps/src/G4VMarker.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMarker.cc,v 1.8 2003/06/16 16:55:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/graphics_reps/src/G4VVisPrim.cc b/source/graphics_reps/src/G4VVisPrim.cc index acd1e6cc2c..bea91b9d4c 100644 --- a/source/graphics_reps/src/G4VVisPrim.cc +++ b/source/graphics_reps/src/G4VVisPrim.cc @@ -22,7 +22,7 @@ // // // $Id: G4VVisPrim.cc,v 1.8 2003/06/16 16:55:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison August 1995 diff --git a/source/graphics_reps/src/G4VisAttributes.cc b/source/graphics_reps/src/G4VisAttributes.cc index 09950ba53d..3d373857ca 100644 --- a/source/graphics_reps/src/G4VisAttributes.cc +++ b/source/graphics_reps/src/G4VisAttributes.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisAttributes.cc,v 1.9 2003/06/16 16:55:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 23rd October 1996 diff --git a/source/graphics_reps/src/G4VisExtent.cc b/source/graphics_reps/src/G4VisExtent.cc index 612fe9d8d8..831d2a0d7e 100644 --- a/source/graphics_reps/src/G4VisExtent.cc +++ b/source/graphics_reps/src/G4VisExtent.cc @@ -22,7 +22,7 @@ // // // $Id: G4VisExtent.cc,v 1.7 2003/06/16 16:55:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // A.Walkden 28/11/95 diff --git a/source/graphics_reps/src/G4Visible.cc b/source/graphics_reps/src/G4Visible.cc index 6b77c10b04..0f592acb24 100644 --- a/source/graphics_reps/src/G4Visible.cc +++ b/source/graphics_reps/src/G4Visible.cc @@ -22,7 +22,7 @@ // // // $Id: G4Visible.cc,v 1.5 2003/06/16 16:55:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 30th October 1996 diff --git a/source/graphics_reps/src/HepPolyhedron.cc b/source/graphics_reps/src/HepPolyhedron.cc index 9885b6b1ef..eb19bb9dd7 100644 --- a/source/graphics_reps/src/HepPolyhedron.cc +++ b/source/graphics_reps/src/HepPolyhedron.cc @@ -22,7 +22,7 @@ // // // $Id: HepPolyhedron.cc,v 1.12 2002/11/20 14:18:34 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // diff --git a/source/intercoms/include/G4UIaliasList.hh b/source/intercoms/include/G4UIaliasList.hh index 4fc892aed9..9c464a7db0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIaliasList_h diff --git a/source/intercoms/include/G4UIbatch.hh b/source/intercoms/include/G4UIbatch.hh index a0aaa2d41e..f59d417b16 100644 --- a/source/intercoms/include/G4UIbatch.hh +++ b/source/intercoms/include/G4UIbatch.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIbatch.hh,v 1.7 2003/06/16 16:55:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // $id$ diff --git a/source/intercoms/include/G4UIcmdWith3Vector.hh b/source/intercoms/include/G4UIcmdWith3Vector.hh index 914d2c6b6e..da6d328bd7 100644 --- a/source/intercoms/include/G4UIcmdWith3Vector.hh +++ b/source/intercoms/include/G4UIcmdWith3Vector.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWith3Vector.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh b/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh index a18a2cde9f..e96d09e3a3 100644 --- a/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh +++ b/source/intercoms/include/G4UIcmdWith3VectorAndUnit.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWith3VectorAndUnit.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithABool.hh b/source/intercoms/include/G4UIcmdWithABool.hh index 330e51c350..996928cae9 100644 --- a/source/intercoms/include/G4UIcmdWithABool.hh +++ b/source/intercoms/include/G4UIcmdWithABool.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithABool.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithADouble.hh b/source/intercoms/include/G4UIcmdWithADouble.hh index 11d6dda6c0..325e963aee 100644 --- a/source/intercoms/include/G4UIcmdWithADouble.hh +++ b/source/intercoms/include/G4UIcmdWithADouble.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithADouble.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh b/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh index 58a627eaaf..12ebf58233 100644 --- a/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh +++ b/source/intercoms/include/G4UIcmdWithADoubleAndUnit.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithADoubleAndUnit.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithAString.hh b/source/intercoms/include/G4UIcmdWithAString.hh index 182c266441..03abde5ccf 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithAnInteger.hh b/source/intercoms/include/G4UIcmdWithAnInteger.hh index 84e2d84639..28d922d4c2 100644 --- a/source/intercoms/include/G4UIcmdWithAnInteger.hh +++ b/source/intercoms/include/G4UIcmdWithAnInteger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithAnInteger.hh,v 1.5 2002/04/26 22:03:35 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcmdWithoutParameter.hh b/source/intercoms/include/G4UIcmdWithoutParameter.hh index c64781132a..8c0b1799ba 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcommand.hh b/source/intercoms/include/G4UIcommand.hh index 6a674dd0e4..dd880956ae 100644 --- a/source/intercoms/include/G4UIcommand.hh +++ b/source/intercoms/include/G4UIcommand.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcommand.hh,v 1.13 2003/06/16 16:55:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UIcommandStatus.hh b/source/intercoms/include/G4UIcommandStatus.hh index 16b7464ed4..91d735e4b4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIcommandStatus_h diff --git a/source/intercoms/include/G4UIcommandTree.hh b/source/intercoms/include/G4UIcommandTree.hh index d54e254c9d..46719ebbb3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIcommandTree_h diff --git a/source/intercoms/include/G4UIcontrolMessenger.hh b/source/intercoms/include/G4UIcontrolMessenger.hh index 02632da084..7ae9905234 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIcontrolMessenger_h diff --git a/source/intercoms/include/G4UIdirectory.hh b/source/intercoms/include/G4UIdirectory.hh index 2a368a4ea7..07779d0e96 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/include/G4UImanager.hh b/source/intercoms/include/G4UImanager.hh index ede8b2066f..4995b861e4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UImanager_h diff --git a/source/intercoms/include/G4UImessenger.hh b/source/intercoms/include/G4UImessenger.hh index 3290d7086e..188c3d251b 100644 --- a/source/intercoms/include/G4UImessenger.hh +++ b/source/intercoms/include/G4UImessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UImessenger.hh,v 1.6 2001/10/11 13:29:16 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UImessenger_h diff --git a/source/intercoms/include/G4UIparameter.hh b/source/intercoms/include/G4UIparameter.hh index 4c1e33b5c8..45b80608b4 100644 --- a/source/intercoms/include/G4UIparameter.hh +++ b/source/intercoms/include/G4UIparameter.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIparameter.hh,v 1.7 2003/06/16 16:55:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------------- diff --git a/source/intercoms/include/G4UIsession.hh b/source/intercoms/include/G4UIsession.hh index b955fa5c14..3a3d9013e0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // $id$ diff --git a/source/intercoms/include/G4UItokenNum.hh b/source/intercoms/include/G4UItokenNum.hh index b05394c0cb..0d84cecca4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4UItokenNum.hh diff --git a/source/intercoms/include/G4UnitsMessenger.hh b/source/intercoms/include/G4UnitsMessenger.hh index 63bd359437..bb6b617600 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // class description // diff --git a/source/intercoms/include/G4VFlavoredParallelWorld.hh b/source/intercoms/include/G4VFlavoredParallelWorld.hh index 68aae78496..55469fd288 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Abstract interface for GEANT4 Flavored Parallel World. diff --git a/source/intercoms/include/G4VGlobalFastSimulationManager.hh b/source/intercoms/include/G4VGlobalFastSimulationManager.hh index 59aa3b70d7..1007d58439 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Abstract interface for GEANT4 Global Fast Simulation Manager. diff --git a/source/intercoms/include/G4VGraphicsScene.hh b/source/intercoms/include/G4VGraphicsScene.hh index bd3e0d7b53..275c71629f 100644 --- a/source/intercoms/include/G4VGraphicsScene.hh +++ b/source/intercoms/include/G4VGraphicsScene.hh @@ -22,7 +22,7 @@ // // // $Id: G4VGraphicsScene.hh,v 1.9 2002/10/24 14:11:04 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // John Allison 19th July 1996 // // Class Description: diff --git a/source/intercoms/include/G4VVisManager.hh b/source/intercoms/include/G4VVisManager.hh index 71c63e4ce3..5f30531184 100644 --- a/source/intercoms/include/G4VVisManager.hh +++ b/source/intercoms/include/G4VVisManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VVisManager.hh,v 1.8 2003/01/20 14:17:20 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // John Allison 19/Oct/1996. // // Class Description: diff --git a/source/intercoms/src/G4UIaliasList.cc b/source/intercoms/src/G4UIaliasList.cc index b5b2b9f125..6a0f5ccc31 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UIaliasList.hh" diff --git a/source/intercoms/src/G4UIbatch.cc b/source/intercoms/src/G4UIbatch.cc index 1038c0af32..dea7185d7a 100644 --- a/source/intercoms/src/G4UIbatch.cc +++ b/source/intercoms/src/G4UIbatch.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIbatch.cc,v 1.11 2002/06/07 17:37:44 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UIbatch.hh" diff --git a/source/intercoms/src/G4UIcmdWith3Vector.cc b/source/intercoms/src/G4UIcmdWith3Vector.cc index f7ea47bd04..57514ef719 100644 --- a/source/intercoms/src/G4UIcmdWith3Vector.cc +++ b/source/intercoms/src/G4UIcmdWith3Vector.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWith3Vector.cc,v 1.5 2003/06/16 16:55:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc b/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc index 77571c2f9e..37cf6fce09 100644 --- a/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc +++ b/source/intercoms/src/G4UIcmdWith3VectorAndUnit.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWith3VectorAndUnit.cc,v 1.5 2003/06/16 16:55:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcmdWithABool.cc b/source/intercoms/src/G4UIcmdWithABool.cc index e6d90ddc2c..2c056606f8 100644 --- a/source/intercoms/src/G4UIcmdWithABool.cc +++ b/source/intercoms/src/G4UIcmdWithABool.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithABool.cc,v 1.5 2003/06/16 16:55:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcmdWithADouble.cc b/source/intercoms/src/G4UIcmdWithADouble.cc index cca5b6a768..55ea854802 100644 --- a/source/intercoms/src/G4UIcmdWithADouble.cc +++ b/source/intercoms/src/G4UIcmdWithADouble.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithADouble.cc,v 1.5 2003/06/16 16:55:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc b/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc index d054c76e18..9e91b51cbe 100644 --- a/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc +++ b/source/intercoms/src/G4UIcmdWithADoubleAndUnit.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithADoubleAndUnit.cc,v 1.5 2003/06/16 16:55:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcmdWithAString.cc b/source/intercoms/src/G4UIcmdWithAString.cc index 91cc025685..d9f5b8bd0b 100644 --- a/source/intercoms/src/G4UIcmdWithAString.cc +++ b/source/intercoms/src/G4UIcmdWithAString.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithAString.cc,v 1.4 2003/06/16 16:55:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcmdWithAnInteger.cc b/source/intercoms/src/G4UIcmdWithAnInteger.cc index 552a8b1c54..aa96e9d3e7 100644 --- a/source/intercoms/src/G4UIcmdWithAnInteger.cc +++ b/source/intercoms/src/G4UIcmdWithAnInteger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcmdWithAnInteger.cc,v 1.5 2003/06/16 16:55:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcmdWithoutParameter.cc b/source/intercoms/src/G4UIcmdWithoutParameter.cc index 3b1ba05bfb..dce1afe6f3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcommand.cc b/source/intercoms/src/G4UIcommand.cc index cd8ad5f866..e19404d697 100644 --- a/source/intercoms/src/G4UIcommand.cc +++ b/source/intercoms/src/G4UIcommand.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIcommand.cc,v 1.22 2003/06/16 16:55:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UIcommandTree.cc b/source/intercoms/src/G4UIcommandTree.cc index 96455f2156..3607377215 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UIcommandTree.hh" diff --git a/source/intercoms/src/G4UIcontrolMessenger.cc b/source/intercoms/src/G4UIcontrolMessenger.cc index a937233d06..d98d8f800c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/intercoms/src/G4UIdirectory.cc b/source/intercoms/src/G4UIdirectory.cc index 46ca8b87ae..50fe62de63 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4UImanager.cc b/source/intercoms/src/G4UImanager.cc index d5671f469e..33248a1c36 100644 --- a/source/intercoms/src/G4UImanager.cc +++ b/source/intercoms/src/G4UImanager.cc @@ -22,7 +22,7 @@ // // // $Id: G4UImanager.cc,v 1.29 2003/06/16 16:55:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------------- diff --git a/source/intercoms/src/G4UImessenger.cc b/source/intercoms/src/G4UImessenger.cc index cefa563589..56c4854858 100644 --- a/source/intercoms/src/G4UImessenger.cc +++ b/source/intercoms/src/G4UImessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UImessenger.cc,v 1.5 2003/06/16 16:55:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UImessenger.hh" diff --git a/source/intercoms/src/G4UIparameter.cc b/source/intercoms/src/G4UIparameter.cc index b0b7e59f23..eef2c467b3 100644 --- a/source/intercoms/src/G4UIparameter.cc +++ b/source/intercoms/src/G4UIparameter.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIparameter.cc,v 1.12 2003/06/16 16:55:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UIparameter.hh" diff --git a/source/intercoms/src/G4UIsession.cc b/source/intercoms/src/G4UIsession.cc index f8867f65d7..a43f95cdc1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------------- diff --git a/source/intercoms/src/G4UnitsMessenger.cc b/source/intercoms/src/G4UnitsMessenger.cc index d84ede64e5..6979363502 100644 --- a/source/intercoms/src/G4UnitsMessenger.cc +++ b/source/intercoms/src/G4UnitsMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UnitsMessenger.cc,v 1.5 2003/05/21 21:13:30 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/intercoms/src/G4VGlobalFastSimulationManager.cc b/source/intercoms/src/G4VGlobalFastSimulationManager.cc index 4895580f91..006cb9a2ea 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Abstract interface for GEANT4 Global Fast Simulation Manager. diff --git a/source/intercoms/src/G4VVisManager.cc b/source/intercoms/src/G4VVisManager.cc index 96663fc9c5..1b06aac82d 100644 --- a/source/intercoms/src/G4VVisManager.cc +++ b/source/intercoms/src/G4VVisManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4VVisManager.cc,v 1.5 2002/11/20 14:46:01 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Abstract interface for GEANT4 Visualization Manager. diff --git a/source/interfaces/GAG/include/G4UIGAG.hh b/source/interfaces/GAG/include/G4UIGAG.hh index 5ca2da9c9e..d78898c91f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0ce19b0b94..9154324fe0 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-05-02 $ +// $Name: geant4-06-00 $ // diff --git a/source/interfaces/GAG/src/G4UIGAG.cc b/source/interfaces/GAG/src/G4UIGAG.cc index 2120c04b40..761e334b01 100644 --- a/source/interfaces/GAG/src/G4UIGAG.cc +++ b/source/interfaces/GAG/src/G4UIGAG.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIGAG.cc,v 1.16 2003/06/16 16:55:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4UIGAG.cc // 18.Feb.98 M.Nagamatu and T.Kodama created G4UIGAG from G4UIterminal diff --git a/source/interfaces/GAG/src/G4UIGainServer.cc b/source/interfaces/GAG/src/G4UIGainServer.cc index c51be41372..3cb61e3eeb 100644 --- a/source/interfaces/GAG/src/G4UIGainServer.cc +++ b/source/interfaces/GAG/src/G4UIGainServer.cc @@ -23,7 +23,7 @@ // // 12/06/2002 G4UIGainServer H. MInamimoto and H. Yoshida created // $Id: G4UIGainServer.cc,v 1.7 2003/06/16 16:55:52 gunter Exp $ -// $Name: geant4-05-02 $ +// $Name: geant4-06-00 $ // #ifndef WIN32 diff --git a/source/interfaces/GNUmakefile b/source/interfaces/GNUmakefile index 6ee1de1e81..3059d32981 100644 --- a/source/interfaces/GNUmakefile +++ b/source/interfaces/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2001/08/11 22:47:37 johna Exp $ +# $Id: GNUmakefile,v 1.4 2003/11/04 08:24:05 gcosmo Exp $ # ----------------------------------------------------------------------- # GNUmakefile for interfaces. John Allison, 5/7/98. # ----------------------------------------------------------------------- @@ -26,15 +26,6 @@ ifdef G4UI_BUILD SUBLIBS += G4UIbasic SUBDIRS += GAG SUBLIBS += G4UIGAG - -########################### interfaces/OPACS ####################### -ifdef G4UI_BUILD_WO_SESSION - SUBDIRS += OPACS - SUBLIBS += G4UIOPACS endif -########################### interfaces/XVT - not currently implemented ##### - -endif #G4UI_BUILD - include $(G4INSTALL)/config/globlib.gmk diff --git a/source/interfaces/History b/source/interfaces/History index 1d4a9ccbdb..f9c118b1b0 100644 --- a/source/interfaces/History +++ b/source/interfaces/History @@ -1,4 +1,4 @@ -$Id: History,v 1.63 2003/06/11 07:05:59 gcosmo Exp $ +$Id: History,v 1.66 2003/11/04 08:26:01 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +22 October 2003, Guy Barrand (interfaces-V05-02-00) +- OPACS : archived obsolete OPACS module and cleared build setup. + +17 October 2003, Guy Barrand +- G4Xt.cc : removed unused and commented code. + 11 June 2003, Gabriele Cosmo (interfaces-V05-01-02) - G4UIWin32.cc: cleared warning on redefinition of 'pascal' reported on WIN32-VC system. diff --git a/source/interfaces/OPACS/GNUmakefile b/source/interfaces/OPACS/GNUmakefile deleted file mode 100644 index 18e53dba2f..0000000000 --- a/source/interfaces/OPACS/GNUmakefile +++ /dev/null @@ -1,21 +0,0 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:09:30 gunter Exp $ -# ------------------------------------------------------------- -# GNUmakefile for interfaces/OPACS library. John Allison, 6/7/98. - -name := G4UIOPACS - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk -include $(G4INSTALL)/config/G4UI_BUILD.gmk -include $(G4INSTALL)/config/interactivity.gmk - -G4TMPDIR = $(G4TMP)/$(G4SYSTEM)/$(name) - -CPPFLAGS += -I$(G4BASE)/global/management/include -CPPFLAGS += -I$(G4BASE)/interfaces/common/include -CPPFLAGS += -I$(G4BASE)/intercoms/include - -include $(G4INSTALL)/config/common.gmk diff --git a/source/interfaces/OPACS/include/G4WoMessenger.hh b/source/interfaces/OPACS/include/G4WoMessenger.hh deleted file mode 100644 index bd367efe1d..0000000000 --- a/source/interfaces/OPACS/include/G4WoMessenger.hh +++ /dev/null @@ -1,64 +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: G4WoMessenger.hh,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -#ifndef G4WoMessenger_h -#define G4WoMessenger_h 1 - -#ifdef G4UI_BUILD_WO_SESSION - -#include "globals.hh" -#include "G4UImessenger.hh" - -class G4UIdirectory; -class G4UIcmdWithoutParameter; -class G4UIcmdWithAString; - -#include - -class G4WoMessenger: public G4UImessenger -{ - public: - G4WoMessenger(OShell); - ~G4WoMessenger(); - public: - void SetNewValue (G4UIcommand * command,G4String newValues); - G4String GetCurrentValue(G4UIcommand * command); - private: - OShell shell; - private: //commands - G4UIdirectory* WoDirectory; - G4UIcmdWithoutParameter* sendExitCmd; - G4UIcmdWithAString* oshCmd; -}; - -#endif - -#endif - - - - - diff --git a/source/interfaces/OPACS/include/G4oCommon.hh b/source/interfaces/OPACS/include/G4oCommon.hh deleted file mode 100644 index d67e957b2d..0000000000 --- a/source/interfaces/OPACS/include/G4oCommon.hh +++ /dev/null @@ -1,54 +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: G4oCommon.hh,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* - Included by G4o.h. -*/ -#include -#include -#include - -/*G4*/ -#include - -/*Co*/ -#include -#include -#include -#include -#include -#include -#include - - -static void SetTypes (); -static void ExecuteScript (char*); -static int Execute_G4 (int,char**,OProcess); -static int DoMethod (OIdentifier,char*,void*,int,char**,void*,int*); -static G4UIcommand* GetCommandIdentifier (char*); -static void GetCommands (G4UIcommandTree*,int*,char***); -static int ProduceODB (G4UIcommand*,char*); - diff --git a/source/interfaces/OPACS/include/G4oCommon.icc b/source/interfaces/OPACS/include/G4oCommon.icc deleted file mode 100644 index a1c417827b..0000000000 --- a/source/interfaces/OPACS/include/G4oCommon.icc +++ /dev/null @@ -1,479 +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: G4oCommon.icc,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -/* - Included by G4o.cc. -*/ - -/***************************************************************************/ -void SetTypes ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - OType otype; -/*.........................................................................*/ - if(OTypeGetIdentifier("G4")!=NULL) return; /*Done*/ - - otype = OTypeCreate ("G4"); - OTypeSetDoMethodFunction (otype,DoMethod); - OTypeAddNewClassMethodProperty (otype,"getCommandGuidance" ,OPropertyString,NULL); - OTypeAddNewClassMethodProperty (otype,"askListOfCommands" ,OPropertyString,NULL); - OTypeAddNewClassMethodProperty (otype,"createCommandPanel" ,OPropertyVoid,NULL); - -} -/***************************************************************************/ -int Execute_G4 ( - int a_argn -,char** a_args -,OProcess a_process -) -/***************************************************************************/ -/* - osh> G4 ... -*/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - int count; - char* string = NULL; -/*.........................................................................*/ - if(a_argn<=1) - { - CWarnF ("At least one argument expected in:\n%s\n",OProcessGetCommand(a_process)); - return EXIT_FAILURE; - } - for(count=1;countApplyCommand(lines[count]); - } - } - CTextDelete (linen,lines); -} -/***************************************************************************/ -int DoMethod ( - OIdentifier This -,char* a_name -,void* a_user -,int a_argn -,char** a_args -,void* a_addr -,int* a_number -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - if(a_number!=NULL) *a_number = 0; - if(a_name==NULL) return 0; - - if(This==NULL) - { - if(strcmp(a_name,"getCommandGuidance")==0) - { - G4UIcommand* command; - char* string = NULL; - int count,linen,paramn; - if(a_argn!=1) - { - CWarnF ("One arguments expected for %s property.\n",a_name); - return 0; - } - command = GetCommandIdentifier(a_args[0]); - if(command==NULL) - { - CWarnF ("Unknown G4 command :\n%s\n",a_args[0]); - return 0; - } - linen = command->GetGuidanceEntries(); - for(count=0;countGetGuidanceLine(count).data()); - CStringConcatenate (&string,"\n"); - } - paramn = command->GetParameterEntries(); - for(count=0;countGetParameter(count); - - info = (char*)parameter->GetParameterName().data(); - line = CStringCreateF(12+strlen(info)+1,"Parameter : %s\n",info); - CStringConcatenate (&string,line); - CStringDelete (line); - - if( ! parameter->GetParameterGuidance().isNull() ) - { - CStringConcatenate (&string,(char*)parameter->GetParameterGuidance().data()); - CStringConcatenate (&string,"\n"); - } - - line = CStringCreateF(19+1+1," Parameter type : %c\n",parameter->GetParameterType()); - CStringConcatenate (&string,line); - CStringDelete (line); - - if(parameter->IsOmittable()==True) - line = CStringDuplicate(" Omittable : true\n"); - else - line = CStringDuplicate(" Omittable : false\n"); - CStringConcatenate (&string,line); - CStringDelete (line); - - if( ! parameter->GetDefaultValue().isNull() ) - { - info = (char*)parameter->GetDefaultValue().data(); - line = CStringCreateF(19+strlen(info)+1," Default value : %s\n",info); - CStringConcatenate (&string,line); - CStringDelete (line); - } - - if( ! parameter->GetParameterRange().isNull() ) - { - info = (char*)parameter->GetParameterRange().data(); - line = CStringCreateF(19+strlen(info)+1," Parameter range : %s\n",info); - CStringConcatenate (&string,line); - CStringDelete (line); - } - } - *((char**)a_addr) = string; - return FREE_BLOCK; - } - else if(strcmp(a_name,"askListOfCommands")==0) - { - G4UIcommandTree* treeTop; - char* string = NULL; - G4UImanager* UI; - int linen = 0; - char** lines = NULL; - UI = G4UImanager::GetUIpointer(); - if(UI==NULL) return 0; - treeTop = UI->GetTree(); - if(treeTop==NULL) return 0; - if(a_argn==1) treeTop = treeTop->GetTree(a_args[0]); - GetCommands (treeTop,&linen,&lines); - string = CTextConvertToString (linen,lines,"\n"); - CTextDelete (linen,lines); - *((char**)a_addr) = string; - return FREE_BLOCK; - } - else if(strcmp(a_name,"createCommandPanel")==0) - { - if(a_argn!=2) - { - CWarnF ("Two arguments expected for %s property.\n",a_name); - return 0; - } - return ProduceODB(GetCommandIdentifier(a_args[0]),a_args[1]); - } - else - { - CInfoF ("G4_DoMethod: %s is not a class routine property.\n",a_name); - return 0; - } - } - - CInfoF ("G4_DoMethod: %s is not a routine property.\n",a_name); - - a_user = NULL; - a_argn = 0; - a_args = NULL; - a_addr = NULL; - return 0; -} -/***************************************************************************/ -void GetCommands ( - G4UIcommandTree* a_tree -,int* a_linen -,char*** a_lines -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - if(a_tree==NULL) return; - - int n_commandEntry = a_tree->GetCommandEntry(); - for( int i_thCommand = 1; i_thCommand <= n_commandEntry; i_thCommand++ ) - { - G4UIcommand* command = a_tree->GetCommand(i_thCommand); - CTextAddLine (a_linen,a_lines,(char*)command->GetCommandPath().data()); - } - - int n_treeEntry = a_tree->GetTreeEntry(); - for( int i_thTree = 1; i_thTree <= n_treeEntry; i_thTree++ ) - { - GetCommands (a_tree->GetTree(i_thTree),a_linen,a_lines); - } - -} -/***************************************************************************/ -G4UIcommand* GetCommandIdentifier ( - char* a_name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4UImanager* UI; - G4UIcommandTree* treeTop; -/*.........................................................................*/ - if(a_name==NULL) return NULL; - UI = G4UImanager::GetUIpointer(); - if(UI==NULL) return NULL; - treeTop = UI->GetTree(); - if(treeTop==NULL) return NULL; - return treeTop->FindPath(a_name); -} -/***************************************************************************/ -int ProduceODB ( - G4UIcommand* a_command -,char* a_name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - FILE* file; - int paramn,parami; - char* top = NULL; -/*.........................................................................*/ - if(a_command==NULL) return 0; - - paramn = a_command->GetParameterEntries(); - - file = CFileOpenForWriting (a_name); - if(file==NULL) return 0; - - fprintf (file,"\ -!----------------------------\n\ -begin OInterface\n\ - prefix = G4Params_\n\ -end\n\ -!----------------------------\n\ -begin OWidget\n\ - name = G4Params_palette\n\ - type = XmFormDialog\n\ - children = G4Params_command\ -"); - for(parami=0;parami\\\n\ - command=`getWidgetResource G4Params_command labelString`\\\n\ - echo `do G4 getCommandGuidance $command`\n\ -end\n\ -",a_command->GetCommandPath().data()); - - for(parami=0;paramiGetParameter(parami); - fprintf (file,"\ -!----------------------------\n\ -begin OWidget\n\ - name = G4Params_label_%d\n\ - type = XmLabel\n\ - labelString = %s\n\ - createCallback = osh> setWidgetResource `thisWidget` height `getWidgetResource G4Params_text_%d height`\n\ - leftAttachment = attach_form\n\ -",parami,parameter->GetParameterName().data(),parami); - if(parami==0) - { - fprintf (file,"\ - topAttachment = attach_widget\n\ - topWidget = G4Params_command\n\ -"); - } - else - { - fprintf (file,"\ - topAttachment = attach_widget\n\ - topWidget = G4Params_text_%d\n\ -",parami-1); - } - fprintf (file,"\ -end\n\ -!----------------------------\n\ -begin OWidget\n\ - name = G4Params_text_%d\n\ - type = XmText\n\ - leftAttachment = attach_widget\n\ - leftWidget = G4Params_label_%d\n\ - rightAttachment = attach_form\n\ -",parami,parami); - if(parami==0) - { - fprintf (file,"\ - topAttachment = attach_widget\n\ - topWidget = G4Params_command\n\ -"); - } - else - { - fprintf (file,"\ - topAttachment = attach_widget\n\ - topWidget = G4Params_text_%d\n\ -",parami-1); - } - - if( ! parameter->GetDefaultValue().isNull() ) - { - fprintf (file,"\ - value = %s\n\ -",parameter->GetDefaultValue().data()); - } - - fprintf (file,"\ -end\n\ -"); - - } - - if(paramn>=1) - { - top = CStringCreateF(14+32,"G4Params_text_%d",paramn-1); - } - else - { - top = CStringDuplicate("G4Params_command"); - } - - fprintf (file,"\ -!----------------------------\n\ -begin OWidget\n\ - name = G4Params_ok\n\ - type = XmPushButton\n\ - labelString = Ok\n\ - activateCallback = osh>\\\n\ - command=`getWidgetResource G4Params_command labelString`\\\n\ -"); - for(parami=0;parami\\\n\ - command=`getWidgetResource G4Params_command labelString`\\\n\ -",top); - for(parami=0;parami unmanageWidget `thisWidgetParent`\n\ - bottomAttachment = attach_form\n\ - leftAttachment = attach_widget\n\ - leftWidget = G4Params_apply\n\ - rightAttachment = attach_form\n\ - topAttachment = attach_widget\n\ - topWidget = %s\n\ -end\n\ -",top,top); - - CStringDelete (top); - - fclose(file); - - return 1; -} diff --git a/source/interfaces/OPACS/src/G4UIWo.cc b/source/interfaces/OPACS/src/G4UIWo.cc deleted file mode 100644 index 6460c238f0..0000000000 --- a/source/interfaces/OPACS/src/G4UIWo.cc +++ /dev/null @@ -1,377 +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: G4UIWo.cc,v 1.5 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -//G4UIWo.cc -- copied from G4UIterminal.cc - -//#define DEBUG - -#ifdef G4UI_BUILD_WO_SESSION - -#include - -#ifdef HAS_XM -#include //For G4OIX -#include -#endif -#ifdef HAS_XAW -#include -#include -#endif - -// Below are the "wanted" packages header files. -// begin Want_h -#include -#include -#include -#include -#include -//end Want_h - -/*Co*/ -#include -#include -#include -#include -#include -/*Xx*/ -#include -/*Xo*/ -#include -/*Wo*/ -#include -#include -#include -/*G4*/ -#include "G4UIWo.hh" -#include "G4UImanager.hh" -#include "G4UIcommandTree.hh" -#include "G4WoMessenger.hh" -#include "G4StateManager.hh" -#include "G4Xt.hh" -#include "G4oCommon.hh" - -static Widget CreateG4View (String,Widget,String,ArgList,Cardinal); -static Widget CreateG4XoView (Widget,String,ArgList,Cardinal); -static Widget CreateG4OIXView (Widget,String,ArgList,Cardinal); - -static int Inited = 0; -/***************************************************************************/ -G4UIWo::G4UIWo ( - int argc -,char** argv -) -:woMessenger(NULL) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4UImanager* UI = G4UImanager::GetUIpointer(); - if(UI!=NULL) UI->SetSession(this); - - if(Inited==1) return; // Below code must be executed once. - -// Below are the "wanted" packages include c files. -// begin Want_c -#include -#include -#include -#include -#include -// end Want_c - - //Declare G4 interpreter to Wo. - OInterpreterCreate ("G4",(OInterpreterDoFunction)ExecuteScript,NULL,NULL,NULL); - OShellAddNewCommand (WoGetShellInterpreter(),"G4/G4",Execute_G4); - SetTypes (); - - //Declare osh to G4. - woMessenger = new G4WoMessenger (WoGetShellInterpreter()); - - //Declare G4/vis~/views to Wo. -#ifdef HAS_XO - OClassDeclareCompoundWidget ("G4/G4XoView" ,(OClassCreateWidgetFunction)CreateG4XoView ,xoCameraWidgetClass); -#endif -#ifdef HAS_XM - OClassDeclareCompoundWidget ("G4/G4OIXView",(OClassCreateWidgetFunction)CreateG4OIXView,xmMainWindowWidgetClass); - OClassDeclareWidgetClass ("G4/ThumbWheel" ,NULL); - OClassDeclareWidgetClass ("G4/SoGLwMDrawingArea",NULL); - OClassDeclareWidgetClass ("G4/XoSoArea" ,NULL); -#endif - - G4Xt* interactorManager = G4Xt::getInstance (argc,argv,"Wo"); - Widget top = (Widget)interactorManager->GetMainInteractor(); - XtAppContext context = XtWidgetToApplicationContext(top); - - WoSetXt (context,top); - interactorManager->AddDispatcher ((G4DispatchFunction)WoDispatchEvent); - - // Load file in SessionStart. - // At this moment the G4VisManager is expected to be created. - // It is needed if an odb file is expected to create some upper G4View. - WoSetInterfaceFile ("nil"); - WoStartup (argc,argv); - - if(UI!=NULL) UI->SetCoutDestination(this); - - Inited = 1; -} -/***************************************************************************/ -G4UIWo::~G4UIWo ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4UImanager* UI = G4UImanager::GetUIpointer(); - if(UI!=NULL) { - UI->SetSession(NULL); - UI->SetCoutDestination(NULL); - } - if(woMessenger!=NULL) delete woMessenger; -} -/***************************************************************************/ -G4UIsession* G4UIWo::SessionStart ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - static int Done = 0; - G4Xt* interactorManager = G4Xt::getInstance (); - if(Done==0) { //Load odb file. - char* fileName = NULL; - if(getenv("WOENVIRONMENT")!=NULL) { - fileName = CStringDuplicate (getenv("WOENVIRONMENT")); - } else { - char** argv; - int argc; - argv = interactorManager->GetArguments (&argc); - if(argc>=1) { - char* aname = CFileGetName (argv[0]); - fileName = CStringCreateF (strlen(aname)+4,"%s.odb",aname); - CStringDelete (aname); - } - } - WoSetInterfaceFile (fileName); - OInterfaceLoadFile (fileName,NULL); - OInterfaceSetExtentNotModified (); - if(OWidgetHasMappedShell()==0) XWidgetMap (OWidgetGetFirstShell()); - CStringDelete (fileName); - Done = 1; - } - int value; - // Prompt ("session"); - interactorManager->DisableSecondaryLoop (); - void* event; - while((event = interactorManager->GetEvent())!=NULL) { - if(OEventIsExit((XEvent*)event,&value)==1) - { - WoDispatchEvent (event); - break; - } - interactorManager->DispatchEvent(event); - } - interactorManager->EnableSecondaryLoop (); - return this; -} -/***************************************************************************/ -void G4UIWo::Prompt ( - G4String aPrompt -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - CWarnF("%s\n",aPrompt.data()); -} -/***************************************************************************/ -void G4UIWo::SessionTerminate ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4UIWo::PauseSessionStart ( - G4String a_state -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "debug : G4UIWo::PauseSessionStart : begin : " << a_state << G4endl; -#endif - - if(a_state=="G4_pause> ") - { - SecondaryLoop ("G4Pause.osh"); - } - - if(a_state=="BeginOfRun") - { - WoExecuteShellFileInSameContext ("G4RunBegin.osh"); - } - else if(a_state=="EndOfRun") - { - WoExecuteShellFileInSameContext ("G4RunEnd.osh"); - } - else if(a_state=="BeginOfEvent") - { - WoExecuteShellFileInSameContext ("G4EventBegin.osh"); - } - else if(a_state=="EndOfEvent") - { - // Picking with feed back in event data Done here !!! - SecondaryLoop ("G4EventEnd.osh"); - } - -#ifdef DEBUG - G4cout << "debug : G4UIWo::PauseSessionStart : end." << G4endl; -#endif -} -/***************************************************************************/ -void G4UIWo::SecondaryLoop ( - G4String a_file -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4Xt* interactorManager = G4Xt::getInstance (); - int value; - // Prompt (a_prompt); - WoExecuteShellFileInSameContext ((char*)a_file.data()); - void* event; - while((event = interactorManager->GetEvent())!=NULL) { - if(OEventIsExit((XEvent*)event,&value)==1) { - WoDispatchEvent (event); - break; - } - interactorManager->DispatchEvent(event); - } - // Prompt ("session"); - WoExecuteShellFileInSameContext ((char*)"G4Session.osh"); -} -/***************************************************************************/ -G4int G4UIWo::ReceiveG4cout ( - G4String a_string -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - CWarnF ("%s",a_string.data()); - return 0; -} -/***************************************************************************/ -G4int G4UIWo::ReceiveG4cerr ( - G4String a_string -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - CWarnF ("%s",a_string.data()); - return 0; -} -/***************************************************************************/ -Widget CreateG4XoView ( - Widget a_parent -,String a_name -,ArgList a_list -,Cardinal a_number -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - return CreateG4View("Xo",a_parent,a_name,a_list,a_number); -} -/***************************************************************************/ -Widget CreateG4OIXView ( - Widget a_parent -,String a_name -,ArgList a_list -,Cardinal a_number -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - return CreateG4View("OIX",a_parent,a_name,a_list,a_number); -} -/***************************************************************************/ -Widget CreateG4View ( - String a_gs -,Widget a_parent -,String a_name -,ArgList /*a_list*/ -,Cardinal /*a_number*/ -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - Widget widget = NULL; -/*.........................................................................*/ - if(a_gs==NULL) return NULL; - if(a_parent==NULL) return NULL; - if(a_name==NULL) return NULL; - - G4UImanager* UI = G4UImanager::GetUIpointer(); - if(UI!=NULL) { - - G4Xt* interactorManager = G4Xt::getInstance (); - - interactorManager->SetParentInteractor (a_parent); - interactorManager->SetCreationString (a_name); - // Give name ??? - char* command; - command = CStringCreateF(37+strlen(a_gs), - "/vis~/create_view/new_graphics_system %s", - a_gs); - UI->ApplyCommand (command); - CStringDelete (command); - widget = (Widget)interactorManager->GetCreatedInteractor (); - if(widget==a_parent) { - widget = NULL; //No viewer created ! - } - interactorManager->SetParentInteractor (NULL); - interactorManager->SetCreatedInteractor (NULL); - interactorManager->SetCreationString (NULL); - - } - - if(widget==NULL) { - Arg args[1]; - CWarnF ("G4UIWo::CreateG4View : can't create a %s view.\n Create a label instead.\n",a_gs); -#ifdef HAS_XM - widget = XmCreateLabel (a_parent,a_name,args,0); - XtManageChild (widget); -#endif -#ifdef HAS_XAW - widget = XtCreateManagedWidget (a_name,labelWidgetClass,a_parent,args,0); -#endif - } - - return widget; -} - -#include "G4oCommon.icc" - -#endif diff --git a/source/interfaces/OPACS/src/G4WoMessenger.cc b/source/interfaces/OPACS/src/G4WoMessenger.cc deleted file mode 100644 index e119a0ac53..0000000000 --- a/source/interfaces/OPACS/src/G4WoMessenger.cc +++ /dev/null @@ -1,75 +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: G4WoMessenger.cc,v 1.4 2001/07/11 10:01:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -#ifdef G4UI_BUILD_WO_SESSION - -#include "G4WoMessenger.hh" -#include "G4UIdirectory.hh" -#include "G4UIcmdWithoutParameter.hh" -#include "G4UIcmdWithAString.hh" - -#include - -G4WoMessenger::G4WoMessenger(OShell a_shell) -:shell(NULL) -,WoDirectory(NULL) -,sendExitCmd(NULL) -,oshCmd(NULL) -{ - shell = a_shell; - - WoDirectory = new G4UIdirectory("/Wo/"); - WoDirectory->SetGuidance ("Wo control commands."); - - sendExitCmd = new G4UIcmdWithoutParameter("/Wo/sendExit",this); - sendExitCmd->SetGuidance ("Exit Wo event event loop.."); - - oshCmd = new G4UIcmdWithAString("/Wo/osh",this); - oshCmd->SetGuidance ("osh interpreter."); - oshCmd->SetParameterName("Command",true); - oshCmd->SetDefaultValue (""); -} -G4WoMessenger::~G4WoMessenger() { - if(oshCmd!=NULL) delete oshCmd; - if(sendExitCmd!=NULL) delete sendExitCmd; - if(WoDirectory!=NULL) delete WoDirectory; -} - -void G4WoMessenger::SetNewValue(G4UIcommand * command,G4String newValues) -{ - if(command==oshCmd) { - OShellExecute (shell,(char*)newValues.data()); - } else if(command==sendExitCmd) { - WoSendExit (); - } -} -G4String G4WoMessenger::GetCurrentValue(G4UIcommand * command) -{ - G4String cv; - return cv; -} - -#endif diff --git a/source/interfaces/XVT/include/G4UIxvt.hh b/source/interfaces/XVT/include/G4UIxvt.hh index 227ca70cb5..532856c7cb 100644 --- a/source/interfaces/XVT/include/G4UIxvt.hh +++ b/source/interfaces/XVT/include/G4UIxvt.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIxvt.hh,v 1.5 2003/06/16 16:55:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // XVT driver class header // diff --git a/source/interfaces/XVT/include/G4UIxvtMessenger.hh b/source/interfaces/XVT/include/G4UIxvtMessenger.hh index 6362126ee7..0eda2c3849 100644 --- a/source/interfaces/XVT/include/G4UIxvtMessenger.hh +++ b/source/interfaces/XVT/include/G4UIxvtMessenger.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIxvtMessenger.hh,v 1.4 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // ////////////////////////////////////////////////////////////////////////////// // // diff --git a/source/interfaces/XVT/src/G4UIxvt.cc b/source/interfaces/XVT/src/G4UIxvt.cc index 6f69c2df8c..f44a01e855 100644 --- a/source/interfaces/XVT/src/G4UIxvt.cc +++ b/source/interfaces/XVT/src/G4UIxvt.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIxvt.cc,v 1.5 2002/12/04 22:03:09 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifdef G4UI_BUILD_XVT_SESSION diff --git a/source/interfaces/XVT/src/G4UIxvtMessenger.cc b/source/interfaces/XVT/src/G4UIxvtMessenger.cc index cec8bcc38f..4705b25105 100644 --- a/source/interfaces/XVT/src/G4UIxvtMessenger.cc +++ b/source/interfaces/XVT/src/G4UIxvtMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIxvtMessenger.cc,v 1.4 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifdef G4UI_BUILD_XVT_SESSION diff --git a/source/interfaces/basic/include/G4UIArrayString.hh b/source/interfaces/basic/include/G4UIArrayString.hh index 7c98269298..c27ac4de97 100644 --- a/source/interfaces/basic/include/G4UIArrayString.hh +++ b/source/interfaces/basic/include/G4UIArrayString.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIArrayString.hh,v 1.2 2001/07/11 10:01:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIArrayString_h diff --git a/source/interfaces/basic/include/G4UIWin32.hh b/source/interfaces/basic/include/G4UIWin32.hh index 9786df7e37..3d6489768a 100644 --- a/source/interfaces/basic/include/G4UIWin32.hh +++ b/source/interfaces/basic/include/G4UIWin32.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIWin32.hh,v 1.11 2003/06/16 16:55:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIWin32_h #define G4UIWin32_h diff --git a/source/interfaces/basic/include/G4UIXaw.hh b/source/interfaces/basic/include/G4UIXaw.hh index 51d955423e..3a531fbc6b 100644 --- a/source/interfaces/basic/include/G4UIXaw.hh +++ b/source/interfaces/basic/include/G4UIXaw.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIXaw.hh,v 1.5 2001/07/11 10:01:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIXaw_h #define G4UIXaw_h diff --git a/source/interfaces/basic/include/G4UIXm.hh b/source/interfaces/basic/include/G4UIXm.hh index 1fdb65447a..c814f414be 100644 --- a/source/interfaces/basic/include/G4UIXm.hh +++ b/source/interfaces/basic/include/G4UIXm.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIXm.hh,v 1.12 2003/06/16 16:55:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIXm_h #define G4UIXm_h diff --git a/source/interfaces/basic/include/G4UIcsh.hh b/source/interfaces/basic/include/G4UIcsh.hh index 18a275be8e..f24ef54532 100644 --- a/source/interfaces/basic/include/G4UIcsh.hh +++ b/source/interfaces/basic/include/G4UIcsh.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIcsh.hh,v 1.3 2001/07/11 10:01:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIcsh_h diff --git a/source/interfaces/basic/include/G4UItcsh.hh b/source/interfaces/basic/include/G4UItcsh.hh index 9f34130525..968dfa84b6 100644 --- a/source/interfaces/basic/include/G4UItcsh.hh +++ b/source/interfaces/basic/include/G4UItcsh.hh @@ -22,7 +22,7 @@ // // // $Id: G4UItcsh.hh,v 1.6 2003/06/16 16:55:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UItcsh_h diff --git a/source/interfaces/basic/include/G4UIterminal.hh b/source/interfaces/basic/include/G4UIterminal.hh index 9b0557a1f7..970901efea 100644 --- a/source/interfaces/basic/include/G4UIterminal.hh +++ b/source/interfaces/basic/include/G4UIterminal.hh @@ -22,7 +22,7 @@ // // // $Id: G4UIterminal.hh,v 1.8 2003/06/16 16:55:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UIterminal_h diff --git a/source/interfaces/basic/include/G4VUIshell.hh b/source/interfaces/basic/include/G4VUIshell.hh index 10d6c33879..8b216be6f7 100644 --- a/source/interfaces/basic/include/G4VUIshell.hh +++ b/source/interfaces/basic/include/G4VUIshell.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUIshell.hh,v 1.5 2001/11/26 19:15:08 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VUIshell_h diff --git a/source/interfaces/basic/src/G4UIArrayString.cc b/source/interfaces/basic/src/G4UIArrayString.cc index f78cdeb2ca..9ba348a25c 100644 --- a/source/interfaces/basic/src/G4UIArrayString.cc +++ b/source/interfaces/basic/src/G4UIArrayString.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIArrayString.cc,v 1.7 2003/06/16 16:55:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/interfaces/basic/src/G4UIWin32.cc b/source/interfaces/basic/src/G4UIWin32.cc index 9e52fabead..360c32334b 100644 --- a/source/interfaces/basic/src/G4UIWin32.cc +++ b/source/interfaces/basic/src/G4UIWin32.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIWin32.cc,v 1.9 2003/06/16 16:55:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIXaw.cc b/source/interfaces/basic/src/G4UIXaw.cc index bac34b9b52..b46bd6c266 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIXm.cc b/source/interfaces/basic/src/G4UIXm.cc index 446a68b61d..64b9bcb4ea 100644 --- a/source/interfaces/basic/src/G4UIXm.cc +++ b/source/interfaces/basic/src/G4UIXm.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIXm.cc,v 1.11 2003/06/16 16:56:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G.Barrand diff --git a/source/interfaces/basic/src/G4UIcsh.cc b/source/interfaces/basic/src/G4UIcsh.cc index 47beed7d73..8f0e5fb7e5 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UIcsh.hh" diff --git a/source/interfaces/basic/src/G4UItcsh.cc b/source/interfaces/basic/src/G4UItcsh.cc index 44698b43c0..403c3650bd 100644 --- a/source/interfaces/basic/src/G4UItcsh.cc +++ b/source/interfaces/basic/src/G4UItcsh.cc @@ -22,7 +22,7 @@ // // // $Id: G4UItcsh.cc,v 1.10 2003/06/16 16:56:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef WIN32 diff --git a/source/interfaces/basic/src/G4UIterminal.cc b/source/interfaces/basic/src/G4UIterminal.cc index 54a9080a98..998540e507 100644 --- a/source/interfaces/basic/src/G4UIterminal.cc +++ b/source/interfaces/basic/src/G4UIterminal.cc @@ -22,7 +22,7 @@ // // // $Id: G4UIterminal.cc,v 1.19 2003/06/16 16:56:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Types.hh" diff --git a/source/interfaces/basic/src/G4VUIshell.cc b/source/interfaces/basic/src/G4VUIshell.cc index 581706e492..7b799c3de4 100644 --- a/source/interfaces/basic/src/G4VUIshell.cc +++ b/source/interfaces/basic/src/G4VUIshell.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUIshell.cc,v 1.8 2003/06/16 16:56:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UImanager.hh" diff --git a/source/interfaces/common/include/G4VBasicShell.hh b/source/interfaces/common/include/G4VBasicShell.hh index 98d4c15a69..7261bedf98 100644 --- a/source/interfaces/common/include/G4VBasicShell.hh +++ b/source/interfaces/common/include/G4VBasicShell.hh @@ -22,7 +22,7 @@ // // // $Id: G4VBasicShell.hh,v 1.6 2001/07/11 10:01:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VBasicShell_H diff --git a/source/interfaces/common/include/G4VInteractorManager.hh b/source/interfaces/common/include/G4VInteractorManager.hh index d057764eeb..adb08bb9e3 100644 --- a/source/interfaces/common/include/G4VInteractorManager.hh +++ b/source/interfaces/common/include/G4VInteractorManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4VInteractorManager.hh,v 1.8 2003/06/16 16:56:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G.Barrand diff --git a/source/interfaces/common/include/G4Win32.hh b/source/interfaces/common/include/G4Win32.hh index dd76f33559..4d42e501fd 100644 --- a/source/interfaces/common/include/G4Win32.hh +++ b/source/interfaces/common/include/G4Win32.hh @@ -22,7 +22,7 @@ // // // $Id: G4Win32.hh,v 1.6 2001/07/11 10:01:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // To unify Windows message treatment between // G4/interfaces Windows sessions and G4/visualizations Windows drivers. diff --git a/source/interfaces/common/include/G4Xt.hh b/source/interfaces/common/include/G4Xt.hh index ba158e43c5..21905e56d9 100644 --- a/source/interfaces/common/include/G4Xt.hh +++ b/source/interfaces/common/include/G4Xt.hh @@ -22,7 +22,7 @@ // // // $Id: G4Xt.hh,v 1.5 2001/07/11 10:01:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // To unify X11 event treatment between // G4/interfaces Xt sessions and G4/visualizations Xt drivers. diff --git a/source/interfaces/common/src/G4VBasicShell.cc b/source/interfaces/common/src/G4VBasicShell.cc index bc53b1cb18..0cb30164e0 100644 --- a/source/interfaces/common/src/G4VBasicShell.cc +++ b/source/interfaces/common/src/G4VBasicShell.cc @@ -22,7 +22,7 @@ // // // $Id: G4VBasicShell.cc,v 1.10 2003/06/16 16:56:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/interfaces/common/src/G4VInteractorManager.cc b/source/interfaces/common/src/G4VInteractorManager.cc index 3f46467227..0e28c7a0a3 100644 --- a/source/interfaces/common/src/G4VInteractorManager.cc +++ b/source/interfaces/common/src/G4VInteractorManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4VInteractorManager.cc,v 1.12 2003/06/16 16:56:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G.Barrand diff --git a/source/interfaces/common/src/G4Win32.cc b/source/interfaces/common/src/G4Win32.cc index 9c12846879..096238248a 100644 --- a/source/interfaces/common/src/G4Win32.cc +++ b/source/interfaces/common/src/G4Win32.cc @@ -22,7 +22,7 @@ // // // $Id: G4Win32.cc,v 1.6 2001/07/11 10:01:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G.Barrand diff --git a/source/interfaces/common/src/G4Xt.cc b/source/interfaces/common/src/G4Xt.cc index 7fd1c14ce8..c857cbb9b2 100644 --- a/source/interfaces/common/src/G4Xt.cc +++ b/source/interfaces/common/src/G4Xt.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Xt.cc,v 1.9 2002/11/06 08:12:58 barrand Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Xt.cc,v 1.10 2003/10/17 09:34:27 gbarrand Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G.Barrand @@ -185,35 +185,6 @@ void G4Xt::FlushAndWaitExecution ( if(topWidget==NULL) return; XSync(XtDisplay(topWidget),False); } -/***************************************************************************/ -/******* From OPACS Xx/v3 package ******************************************/ -/***************************************************************************/ -/* -void XWidgetIconify ( Widget This ) { - if(This==NULL) return; - if(!XtIsRealized(This)) return; - XIconifyWindow(XtDisplay(This),XtWindow(This),XScreenNumberOfScreen(XtScreen(This))); -} -void XWidgetUniconify ( Widget This ) { - if(This==NULL) return; - if(!XtIsRealized(This)) return; - XDisplaySetWindowToNormalState (XtDisplay(This),XtWindow(This)); -} -void XDisplaySetWindowToNormalState ( - Display* This -,Window a_window -) -// Used to deiconify a window. -{ - XWMHints wh; - if(This==NULL) return; - if(a_window==0L) return; - wh.initial_state = NormalState; - wh.flags = StateHint; - XSetWMHints (This,a_window,&wh); - XMapWindow (This,a_window); -} -*/ #endif diff --git a/source/materials/History b/source/materials/History index 6392115757..b4d714a508 100644 --- a/source/materials/History +++ b/source/materials/History @@ -1,4 +1,4 @@ -$Id: History,v 1.44 2003/06/18 08:13:17 gcosmo Exp $ +$Id: History,v 1.45 2003/12/01 15:14:05 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,10 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +01.12.03 P.Gumplinger - materials-V05-02-00 + Added base class G4SurfaceProperty. + G4OpticalSurface[.hh.cc]: modified to inherit from G4SurfaceProperty. + 18.06.03 G.Cosmo - materials-V05-01-01 G4Isotope.cc G4Element.cc, G4Material.cc: removed usage of G4USE_STD_NAMESPACE after g4std migration. diff --git a/source/materials/include/G4AtomicShells.hh b/source/materials/include/G4AtomicShells.hh index 59b826f398..80ef95d6b5 100644 --- a/source/materials/include/G4AtomicShells.hh +++ b/source/materials/include/G4AtomicShells.hh @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShells.hh,v 1.4 2001/07/11 10:01:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // class description // diff --git a/source/materials/include/G4Element.hh b/source/materials/include/G4Element.hh index fce596c154..6fda130bd8 100644 --- a/source/materials/include/G4Element.hh +++ b/source/materials/include/G4Element.hh @@ -22,7 +22,7 @@ // // // $Id: G4Element.hh,v 1.17 2003/06/16 16:56:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // class description diff --git a/source/materials/include/G4ElementTable.hh b/source/materials/include/G4ElementTable.hh index 15f92af4ea..5e6b3aedd0 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4ElementVector.hh b/source/materials/include/G4ElementVector.hh index c87c459b55..989f2ffe61 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4IonisParamElm.hh b/source/materials/include/G4IonisParamElm.hh index 65132e3588..34096e0b1d 100644 --- a/source/materials/include/G4IonisParamElm.hh +++ b/source/materials/include/G4IonisParamElm.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonisParamElm.hh,v 1.6 2001/07/11 10:01:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // class description diff --git a/source/materials/include/G4IonisParamMat.hh b/source/materials/include/G4IonisParamMat.hh index 711b079e96..0dc5ffe113 100644 --- a/source/materials/include/G4IonisParamMat.hh +++ b/source/materials/include/G4IonisParamMat.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonisParamMat.hh,v 1.7 2002/10/29 16:17:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // class description diff --git a/source/materials/include/G4Isotope.hh b/source/materials/include/G4Isotope.hh index b6dcc63c1f..67d6b42e96 100644 --- a/source/materials/include/G4Isotope.hh +++ b/source/materials/include/G4Isotope.hh @@ -22,7 +22,7 @@ // // // $Id: G4Isotope.hh,v 1.15 2003/06/16 16:56:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/include/G4IsotopeVector.hh b/source/materials/include/G4IsotopeVector.hh index 8e5d472d34..d5505d5424 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4MPVEntry.hh b/source/materials/include/G4MPVEntry.hh index e9dcfb2c48..3fd9a772b4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4Material.hh b/source/materials/include/G4Material.hh index c100a1d88c..d2007a6e23 100644 --- a/source/materials/include/G4Material.hh +++ b/source/materials/include/G4Material.hh @@ -22,7 +22,7 @@ // // // $Id: G4Material.hh,v 1.22 2003/06/16 16:56:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // class description diff --git a/source/materials/include/G4MaterialPropertiesTable.hh b/source/materials/include/G4MaterialPropertiesTable.hh index bd06883d4d..db405a3ff6 100644 --- a/source/materials/include/G4MaterialPropertiesTable.hh +++ b/source/materials/include/G4MaterialPropertiesTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertiesTable.hh,v 1.12 2003/06/16 16:56:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4MaterialPropertyVector.hh b/source/materials/include/G4MaterialPropertyVector.hh index 706b34e572..acc4952870 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/include/G4MaterialTable.hh b/source/materials/include/G4MaterialTable.hh index d07d8ed140..dc544a96db 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/materials/include/G4OpticalSurface.hh b/source/materials/include/G4OpticalSurface.hh index 2ee9f06538..1bff6bd3ba 100644 --- a/source/materials/include/G4OpticalSurface.hh +++ b/source/materials/include/G4OpticalSurface.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpticalSurface.hh,v 1.5 2001/07/11 10:01:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4OpticalSurface.hh,v 1.7 2003/12/01 15:13:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -37,7 +37,6 @@ // Updated: 1999-10-29 add method and class descriptors // mail: gum@triumf.ca // -// Cvs version: //////////////////////////////////////////////////////////////////////// #ifndef G4OpticalSurface_h @@ -47,8 +46,8 @@ // Includes ///////////// -#include "globals.hh" -#include "templates.hh" +#include "G4Types.hh" +#include "G4SurfaceProperty.hh" // Class Description: // A optical surface class for use in the G4OpBoundaryProcess class. @@ -66,12 +65,6 @@ enum G4OpticalSurfaceFinish groundbackpainted // same as 'ground' but with a back-paint }; -enum G4OpticalSurfaceType -{ - dielectric_metal, // dielectric-metal interface - dielectric_dielectric // dielectric-dielectric interface -}; - enum G4OpticalSurfaceModel { glisur, // original GEANT3 model @@ -84,18 +77,18 @@ class G4MaterialPropertiesTable; // Class Definition ///////////////////// -class G4OpticalSurface +class G4OpticalSurface : public G4SurfaceProperty { public: // Without description - + ////////////// // Operators ////////////// - - G4OpticalSurface(const G4OpticalSurface &right); + + G4OpticalSurface(const G4OpticalSurface &right); const G4OpticalSurface & operator=(const G4OpticalSurface &right); - + G4int operator==(const G4OpticalSurface &right) const; G4int operator!=(const G4OpticalSurface &right) const; @@ -108,7 +101,7 @@ public: // With description G4OpticalSurface(const G4String& name, G4OpticalSurfaceModel model = glisur, G4OpticalSurfaceFinish finish = polished, - G4OpticalSurfaceType type = dielectric_dielectric, + G4SurfaceType type = dielectric_dielectric, G4double value = 1.0); // Constructor of an optical surface object. @@ -124,16 +117,6 @@ public: // Without description public: // With description - G4String GetName() const { return theName; }; - // Returns the optical surface name. - void SetName(const G4String& name){theName = name;}; - // Sets the optical surface name. - - G4OpticalSurfaceType GetType() const {return theType;}; - // Returns the optical surface type. - void SetType(const G4OpticalSurfaceType type){theType = type;}; - // Sets the optical surface type. - G4OpticalSurfaceFinish GetFinish() const {return theFinish;}; // Returns the optical surface finish. void SetFinish(const G4OpticalSurfaceFinish finish) @@ -175,11 +158,8 @@ private: // Basic data members ( To define an optical surface) // ------------------ - G4String theName; // Surface name - G4OpticalSurfaceModel theModel; // Surface model G4OpticalSurfaceFinish theFinish; // Surface finish - G4OpticalSurfaceType theType; // Surface type G4double sigma_alpha; // The sigma of micro-facet polar angle G4double polish; // Polish parameter in glisur model diff --git a/source/materials/include/G4SandiaTable.hh b/source/materials/include/G4SandiaTable.hh index a3d0480b78..a185af3a3c 100644 --- a/source/materials/include/G4SandiaTable.hh +++ b/source/materials/include/G4SandiaTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4SandiaTable.hh,v 1.10 2001/10/17 07:59:52 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // class description // diff --git a/source/materials/include/G4StaticSandiaData.hh b/source/materials/include/G4StaticSandiaData.hh index 968cea552b..c75ca05c50 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/include/G4SurfaceProperty.hh b/source/materials/include/G4SurfaceProperty.hh new file mode 100644 index 0000000000..9a841e8255 --- /dev/null +++ b/source/materials/include/G4SurfaceProperty.hh @@ -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: G4SurfaceProperty.hh,v 1.2 2003/12/01 15:13:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +//////////////////////////////////////////////////////////////////////// +// G4SurfaceProperty Definition +//////////////////////////////////////////////////////////////////////// +// +// Class Description: +// +// A base class describing a surface property. +// Derived classes are G4Opticalsurface, G4Firovsurface, etc. +// Contains the enumeration G4SurfaceType. + +// File: G4SurfaceProperty.hh +// Description: A base class for for descriping surface property such +// as G4OpticalSurface, G4FirsovSurface, G4X-raySurface +// Version: 1.0 +// Created: 13-10-2003 +// Author: Fan Lei +// +//////////////////////////////////////////////////////////////////////// + +#ifndef G4SurfaceProperty_h +#define G4SurfaceProperty_h 1 + +///////////// +// Includes +///////////// + +#include "G4Types.hh" +#include "G4String.hh" + +enum G4SurfaceType +{ + dielectric_metal, // dielectric-metal interface + dielectric_dielectric, // dielectric-dielectric interface + firsov, // for Firsov Process + x_ray // for x-ray mirror process +}; + +///////////////////// +// Class Definition +///////////////////// + +class G4SurfaceProperty +{ + +public: // Without description + + ////////////// + // Operators + ////////////// + + // G4SurfaceProperty(const G4SurfaceProperty &right); + // const G4SurfaceProperty & operator=(const G4SurfaceProperty &right); + + // G4int operator==(const G4SurfaceProperty &right) const; + // G4int operator!=(const G4SurfaceProperty &right) const; + +public: // With description + + //////////////////////////////// + // Constructors and Destructor + //////////////////////////////// + + G4SurfaceProperty(const G4String& name, + G4SurfaceType type = x_ray) + : theName(name), theType(type) + { + } + // Constructor of a X-ray optical surface object. + +public: // Without description + + ~G4SurfaceProperty(){}; + + //////////// + // Methods + //////////// + + // public methods + +public: // With description + + G4String GetName() const { return theName; }; + // Returns the surface name. + void SetName(const G4String& name){theName = name;}; + // Sets the surface name. + + G4SurfaceType GetType() const {return theType;}; + // Returns the surface type. + void SetType(const G4SurfaceType type){theType = type;}; + // Sets the surface type. + +protected: + +// ------------------ +// Basic data members ( To define surface property) +// ------------------ + + G4String theName; // Surface name + + G4SurfaceType theType; // Surface type + +}; + +//////////////////// +// Inline methods +//////////////////// + +#endif /* G4SurfaceProperty_h */ diff --git a/source/materials/src/G4AtomicShells.cc b/source/materials/src/G4AtomicShells.cc index 639a732735..64bcefdea0 100644 --- a/source/materials/src/G4AtomicShells.cc +++ b/source/materials/src/G4AtomicShells.cc @@ -22,7 +22,7 @@ // // // $Id: G4AtomicShells.cc,v 1.3 2001/07/11 10:01:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4Element.cc b/source/materials/src/G4Element.cc index 00da967aef..ed8ff141a0 100644 --- a/source/materials/src/G4Element.cc +++ b/source/materials/src/G4Element.cc @@ -22,7 +22,7 @@ // // // $Id: G4Element.cc,v 1.17 2003/06/18 08:12:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/src/G4IonisParamElm.cc b/source/materials/src/G4IonisParamElm.cc index 9d385169e2..22dd524571 100644 --- a/source/materials/src/G4IonisParamElm.cc +++ b/source/materials/src/G4IonisParamElm.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonisParamElm.cc,v 1.8 2002/10/17 09:00:29 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4IonisParamMat.cc b/source/materials/src/G4IonisParamMat.cc index ddb582c418..f24f54edde 100644 --- a/source/materials/src/G4IonisParamMat.cc +++ b/source/materials/src/G4IonisParamMat.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonisParamMat.cc,v 1.10 2002/10/29 16:17:05 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... diff --git a/source/materials/src/G4Isotope.cc b/source/materials/src/G4Isotope.cc index a649a129c0..f4659f2d0c 100644 --- a/source/materials/src/G4Isotope.cc +++ b/source/materials/src/G4Isotope.cc @@ -22,7 +22,7 @@ // // // $Id: G4Isotope.cc,v 1.15 2003/06/18 08:12:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/materials/src/G4MPVEntry.cc b/source/materials/src/G4MPVEntry.cc index 197a591bf2..1f12f7e680 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4Material.cc b/source/materials/src/G4Material.cc index a76f2074b9..e0acccc82e 100644 --- a/source/materials/src/G4Material.cc +++ b/source/materials/src/G4Material.cc @@ -22,7 +22,7 @@ // // // $Id: G4Material.cc,v 1.24 2003/06/18 08:12:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/source/materials/src/G4MaterialPropertiesTable.cc b/source/materials/src/G4MaterialPropertiesTable.cc index 3aaa9d11a0..7760c35d41 100644 --- a/source/materials/src/G4MaterialPropertiesTable.cc +++ b/source/materials/src/G4MaterialPropertiesTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4MaterialPropertiesTable.cc,v 1.13 2002/11/07 02:30:29 gum Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4MaterialPropertyVector.cc b/source/materials/src/G4MaterialPropertyVector.cc index 077c941e98..9e7c1d54b7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/materials/src/G4OpticalSurface.cc b/source/materials/src/G4OpticalSurface.cc index cb81f1b36a..87f3d23217 100644 --- a/source/materials/src/G4OpticalSurface.cc +++ b/source/materials/src/G4OpticalSurface.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpticalSurface.cc,v 1.7 2001/10/17 07:59:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4OpticalSurface.cc,v 1.9 2003/12/01 15:13:41 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -36,10 +36,10 @@ // Author: Peter Gumplinger // mail: gum@triumf.ca // -// Cvs version: //////////////////////////////////////////////////////////////////////// #include "G4ios.hh" +#include "globals.hh" #include "G4OpticalSurface.hh" ///////////////////////// @@ -55,10 +55,10 @@ const G4OpticalSurface& { if (this != &right) { - theName = right.theName; + theName = right.GetName(); theModel = right.theModel; theFinish = right.theFinish; - theType = right.theType; + theType = right.GetType(); sigma_alpha = right.sigma_alpha; polish = right.polish; theMaterialPropertiesTable = right.theMaterialPropertiesTable; @@ -73,13 +73,12 @@ const G4OpticalSurface& G4OpticalSurface::G4OpticalSurface(const G4String& name, G4OpticalSurfaceModel model, G4OpticalSurfaceFinish finish, - G4OpticalSurfaceType type, + G4SurfaceType type, G4double value) - : theName(name), - theModel(model), - theFinish(finish), - theType(type), - theMaterialPropertiesTable(0) + : G4SurfaceProperty(name,type), + theModel(model), + theFinish(finish), + theMaterialPropertiesTable(0) { if (model == glisur ){ polish = value; @@ -96,6 +95,7 @@ G4OpticalSurface::G4OpticalSurface(const G4String& name, } G4OpticalSurface::G4OpticalSurface(const G4OpticalSurface &right) + : G4SurfaceProperty(right.GetName()) { *this = right; } diff --git a/source/materials/src/G4SandiaTable.cc b/source/materials/src/G4SandiaTable.cc index f599711b47..174347dd79 100644 --- a/source/materials/src/G4SandiaTable.cc +++ b/source/materials/src/G4SandiaTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4SandiaTable.cc,v 1.16 2003/06/16 16:56:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... ....oooOO0OOooo.... // diff --git a/source/parameterisations/GNUmakefile b/source/parameterisations/GNUmakefile index 3bbd064513..85ff722e96 100644 --- a/source/parameterisations/GNUmakefile +++ b/source/parameterisations/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 2000/11/14 16:15:01 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/03 14:34:52 gcosmo Exp $ # --------------------------------------------------------------- # GNUmakefile for parameterisations library. G.Cosmo, 14/11/2000 # --------------------------------------------------------------- @@ -17,9 +17,11 @@ CPPFLAGS += -I$(G4BASE)/global/management/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 \ @@ -28,8 +30,8 @@ CPPFLAGS += -I$(G4BASE)/global/management/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 + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/digits_hits/hits/include include $(G4INSTALL)/config/common.gmk diff --git a/source/parameterisations/History b/source/parameterisations/History index 3af9d3293d..0526fb9ef3 100644 --- a/source/parameterisations/History +++ b/source/parameterisations/History @@ -1,4 +1,4 @@ -$Id: History,v 1.7 2003/05/21 16:40:15 gcosmo Exp $ +$Id: History,v 1.9 2003/10/03 14:35:32 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,17 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +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. diff --git a/source/parameterisations/include/G4FoamXTRdEdx.hh b/source/parameterisations/include/G4FoamXTRdEdx.hh index 96c0c347e4..37849b22ab 100644 --- a/source/parameterisations/include/G4FoamXTRdEdx.hh +++ b/source/parameterisations/include/G4FoamXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4FoamXTRdEdx.hh,v 1.3 2003/01/23 11:30:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4FoamXrayTRmodel.hh b/source/parameterisations/include/G4FoamXrayTRmodel.hh index 0e01058cb5..b8113c6df0 100644 --- a/source/parameterisations/include/G4FoamXrayTRmodel.hh +++ b/source/parameterisations/include/G4FoamXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4FoamXrayTRmodel.hh,v 1.4 2003/01/23 11:30:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4GamDistrXTRdEdx.hh b/source/parameterisations/include/G4GamDistrXTRdEdx.hh index 090c0eef84..6ce5ef0131 100644 --- a/source/parameterisations/include/G4GamDistrXTRdEdx.hh +++ b/source/parameterisations/include/G4GamDistrXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4GamDistrXTRdEdx.hh,v 1.3 2003/01/23 11:30:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4GamDistrXrayTRmodel.hh b/source/parameterisations/include/G4GamDistrXrayTRmodel.hh index f6e3402aeb..95c1d10960 100644 --- a/source/parameterisations/include/G4GamDistrXrayTRmodel.hh +++ b/source/parameterisations/include/G4GamDistrXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4GamDistrXrayTRmodel.hh,v 1.4 2003/01/23 11:30:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4IrregularXTRdEdx.hh b/source/parameterisations/include/G4IrregularXTRdEdx.hh index 4cc29d7162..6278e59894 100644 --- a/source/parameterisations/include/G4IrregularXTRdEdx.hh +++ b/source/parameterisations/include/G4IrregularXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4IrregularXTRdEdx.hh,v 1.3 2003/01/23 11:30:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4IrregularXrayTRmodel.hh b/source/parameterisations/include/G4IrregularXrayTRmodel.hh index 84c09ae3d2..edbf69ac70 100644 --- a/source/parameterisations/include/G4IrregularXrayTRmodel.hh +++ b/source/parameterisations/include/G4IrregularXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4IrregularXrayTRmodel.hh,v 1.4 2003/01/23 11:30:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PAIclusterModel.hh b/source/parameterisations/include/G4PAIclusterModel.hh index 50e4cb9fb9..a2a6ba778c 100644 --- a/source/parameterisations/include/G4PAIclusterModel.hh +++ b/source/parameterisations/include/G4PAIclusterModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PAIclusterModel.hh,v 1.4 2003/01/23 11:30:03 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PhotoClusterModel.hh b/source/parameterisations/include/G4PhotoClusterModel.hh index 3ef1786df0..6708417ace 100644 --- a/source/parameterisations/include/G4PhotoClusterModel.hh +++ b/source/parameterisations/include/G4PhotoClusterModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PhotoClusterModel.hh,v 1.4 2003/01/23 11:30:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh b/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh index 7c11a89fc4..7644800039 100644 --- a/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh +++ b/source/parameterisations/include/G4PlateIrrGasXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlateIrrGasXTRdEdx.hh,v 1.3 2003/01/23 11:30:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh b/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh index a3da7e222e..153adb3346 100644 --- a/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh +++ b/source/parameterisations/include/G4PlateIrrGasXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4PlateIrrGasXrayTRmodel.hh,v 1.4 2003/01/23 11:30:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4RegularXTRdEdx.hh b/source/parameterisations/include/G4RegularXTRdEdx.hh index a824bb9947..9c44205b85 100644 --- a/source/parameterisations/include/G4RegularXTRdEdx.hh +++ b/source/parameterisations/include/G4RegularXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4RegularXTRdEdx.hh,v 1.3 2003/01/23 11:30:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4RegularXrayTRmodel.hh b/source/parameterisations/include/G4RegularXrayTRmodel.hh index 2f6ea2878d..4adfc9f0e7 100644 --- a/source/parameterisations/include/G4RegularXrayTRmodel.hh +++ b/source/parameterisations/include/G4RegularXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4RegularXrayTRmodel.hh,v 1.4 2003/01/23 11:30:04 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VClusterModel.hh b/source/parameterisations/include/G4VClusterModel.hh index 7857ec91d3..822dba2390 100644 --- a/source/parameterisations/include/G4VClusterModel.hh +++ b/source/parameterisations/include/G4VClusterModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VClusterModel.hh,v 1.6 2003/06/16 16:56:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXTRdEdx.hh b/source/parameterisations/include/G4VXTRdEdx.hh index 59afc55f28..b93e5a5012 100644 --- a/source/parameterisations/include/G4VXTRdEdx.hh +++ b/source/parameterisations/include/G4VXTRdEdx.hh @@ -22,7 +22,7 @@ // // // $Id: G4VXTRdEdx.hh,v 1.7 2003/06/16 16:56:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXrayTRadModel.hh b/source/parameterisations/include/G4VXrayTRadModel.hh index aa2c1593af..89943810a8 100644 --- a/source/parameterisations/include/G4VXrayTRadModel.hh +++ b/source/parameterisations/include/G4VXrayTRadModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VXrayTRadModel.hh,v 1.4 2003/06/16 16:56:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/include/G4VXrayTRmodel.hh b/source/parameterisations/include/G4VXrayTRmodel.hh index d05a3154b4..e87b1373ee 100644 --- a/source/parameterisations/include/G4VXrayTRmodel.hh +++ b/source/parameterisations/include/G4VXrayTRmodel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VXrayTRmodel.hh,v 1.5 2003/06/16 16:56:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/parameterisations/src/G4FoamXTRdEdx.cc b/source/parameterisations/src/G4FoamXTRdEdx.cc index c8019c7c71..571becb907 100644 --- a/source/parameterisations/src/G4FoamXTRdEdx.cc +++ b/source/parameterisations/src/G4FoamXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4FoamXTRdEdx.cc,v 1.4 2003/06/16 16:56:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/parameterisations/src/G4FoamXrayTRmodel.cc b/source/parameterisations/src/G4FoamXrayTRmodel.cc index fd1feec3b7..634a48aff6 100644 --- a/source/parameterisations/src/G4FoamXrayTRmodel.cc +++ b/source/parameterisations/src/G4FoamXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4FoamXrayTRmodel.cc,v 1.4 2003/06/16 16:56:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/parameterisations/src/G4GamDistrXTRdEdx.cc b/source/parameterisations/src/G4GamDistrXTRdEdx.cc index fa195ff3c1..59c4e01757 100644 --- a/source/parameterisations/src/G4GamDistrXTRdEdx.cc +++ b/source/parameterisations/src/G4GamDistrXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4GamDistrXTRdEdx.cc,v 1.4 2003/06/16 16:56:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/parameterisations/src/G4GamDistrXrayTRmodel.cc b/source/parameterisations/src/G4GamDistrXrayTRmodel.cc index a6dc786913..133418b014 100644 --- a/source/parameterisations/src/G4GamDistrXrayTRmodel.cc +++ b/source/parameterisations/src/G4GamDistrXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4GamDistrXrayTRmodel.cc,v 1.4 2003/06/16 16:56:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/parameterisations/src/G4IrregularXTRdEdx.cc b/source/parameterisations/src/G4IrregularXTRdEdx.cc index a4dde24a8b..4bc0a689a5 100644 --- a/source/parameterisations/src/G4IrregularXTRdEdx.cc +++ b/source/parameterisations/src/G4IrregularXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4IrregularXTRdEdx.cc,v 1.4 2003/06/16 16:56:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // diff --git a/source/parameterisations/src/G4IrregularXrayTRmodel.cc b/source/parameterisations/src/G4IrregularXrayTRmodel.cc index 8910711e8b..835fe4e348 100644 --- a/source/parameterisations/src/G4IrregularXrayTRmodel.cc +++ b/source/parameterisations/src/G4IrregularXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4IrregularXrayTRmodel.cc,v 1.6 2003/05/21 16:39:57 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // diff --git a/source/parameterisations/src/G4PAIclusterModel.cc b/source/parameterisations/src/G4PAIclusterModel.cc index a7f20c66f1..ee279097e3 100644 --- a/source/parameterisations/src/G4PAIclusterModel.cc +++ b/source/parameterisations/src/G4PAIclusterModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PAIclusterModel.cc,v 1.6 2001/09/18 09:30:30 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4PhotoClusterModel.cc b/source/parameterisations/src/G4PhotoClusterModel.cc index 2dc06c16c4..b22b9e77a8 100644 --- a/source/parameterisations/src/G4PhotoClusterModel.cc +++ b/source/parameterisations/src/G4PhotoClusterModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhotoClusterModel.cc,v 1.3 2001/09/18 09:30:31 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc b/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc index 26943edbda..5eee0bceac 100644 --- a/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc +++ b/source/parameterisations/src/G4PlateIrrGasXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4PlateIrrGasXTRdEdx.cc,v 1.4 2003/06/16 16:56:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc b/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc index 31071491b3..99b8491305 100644 --- a/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc +++ b/source/parameterisations/src/G4PlateIrrGasXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PlateIrrGasXrayTRmodel.cc,v 1.5 2003/06/16 16:56:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/parameterisations/src/G4RegularXTRdEdx.cc b/source/parameterisations/src/G4RegularXTRdEdx.cc index 6b0dcd3902..9539e5ea82 100644 --- a/source/parameterisations/src/G4RegularXTRdEdx.cc +++ b/source/parameterisations/src/G4RegularXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4RegularXTRdEdx.cc,v 1.4 2003/06/16 16:56:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/parameterisations/src/G4RegularXrayTRmodel.cc b/source/parameterisations/src/G4RegularXrayTRmodel.cc index 22b261fecf..9c0ca200cc 100644 --- a/source/parameterisations/src/G4RegularXrayTRmodel.cc +++ b/source/parameterisations/src/G4RegularXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4RegularXrayTRmodel.cc,v 1.4 2003/06/16 16:56:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/parameterisations/src/G4VClusterModel.cc b/source/parameterisations/src/G4VClusterModel.cc index d35701e8d5..89c4ca8c73 100644 --- a/source/parameterisations/src/G4VClusterModel.cc +++ b/source/parameterisations/src/G4VClusterModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VClusterModel.cc,v 1.6 2001/11/08 13:53:51 mverderi Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXTRdEdx.cc b/source/parameterisations/src/G4VXTRdEdx.cc index bfcbb51b45..5aea32383d 100644 --- a/source/parameterisations/src/G4VXTRdEdx.cc +++ b/source/parameterisations/src/G4VXTRdEdx.cc @@ -22,7 +22,7 @@ // // // $Id: G4VXTRdEdx.cc,v 1.9 2003/06/16 16:56:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXrayTRadModel.cc b/source/parameterisations/src/G4VXrayTRadModel.cc index 28d2597acb..71bb04b90b 100644 --- a/source/parameterisations/src/G4VXrayTRadModel.cc +++ b/source/parameterisations/src/G4VXrayTRadModel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VXrayTRadModel.cc,v 1.5 2003/06/16 16:56:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" diff --git a/source/parameterisations/src/G4VXrayTRmodel.cc b/source/parameterisations/src/G4VXrayTRmodel.cc index 0c8d633edf..73bf547172 100644 --- a/source/parameterisations/src/G4VXrayTRmodel.cc +++ b/source/parameterisations/src/G4VXrayTRmodel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VXrayTRmodel.cc,v 1.7 2003/06/16 16:56:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Timer.hh" diff --git a/source/particles/GNUmakefile b/source/particles/GNUmakefile index 889596ab8b..4f783f970f 100644 --- a/source/particles/GNUmakefile +++ b/source/particles/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 1999/11/03 14:48:29 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/09/21 19:38:49 kurasige Exp $ # -------------------------------------------------------------- # GNUmakefile for particles library. Gabriele Cosmo, 4/4/97. # -------------------------------------------------------------- @@ -7,9 +7,10 @@ name := G4particles SUBDIRS = management bosons leptons shortlived SUBDIRS += hadrons/mesons hadrons/barions hadrons/ions +SUBDIRS += utils SUBLIBS = G4partman G4bosons G4leptons G4shortlived SUBLIBS += G4mesons G4baryons G4ions - +SUBLIBS += G4partutils ifndef G4INSTALL G4INSTALL = ../.. endif diff --git a/source/particles/History b/source/particles/History index 581824d29d..c7c267fbe6 100644 --- a/source/particles/History +++ b/source/particles/History @@ -1,4 +1,4 @@ -$Id: History,v 1.91 2003/06/19 13:24:08 gcosmo Exp $ +$Id: History,v 1.100 2003/10/30 09:25:29 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,15 +17,44 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- -- June 19, 2003 V.Ivantchenko +- Oct 30, 2003 iH.Kurashige (particles-V05-02-06) +- Fixed compiler warning in G4HtmlReporter.cc + +- Oct 21, 2003 M.Asai (particles-V05-02-05) +- Change null type pointer in G4DynamicParticle to G4PrimaryParticle + +- Sep 22, 2003 +- Add new category of particles/utils +- Fixed Anti-particle PDG code for Gluon + +- Sep 19, 2003 H.Kurashige (particles-V05-02-04) +- Move classes related Cuts into processes/cuts category +- Remove obsolete cut methods + +- Sep 12, 2003 M.Asai (particles-V05-02-02) +- Add DecayProperTime to deep copy of G4DecayProduct. +- Add G4ParticlePropertyData and G4ParticlePropertyTable, + which provide functionality to acess properties in G4ParticleDefinition (Hisaya) +- Change number of NumberOfQuarkFlavor to 6 (Hisaya) + +- Aug 22, 2003 H.Kurasige (particles-V05-02-01) +- G4DynamicParticle.cc: fixed memory leak for 'theElectronOccupancy' + in assignment operator. + +- Aug 11, 2003 M.Asai (particles-V05-02-00) +- Add one void pointer to G4DynamicParticle for the sake of maintaining links between + pre-assigned decay products and corresponding primary particle. This pointer is used + by G4EventManager. + +- Jun 19, 2003 V.Ivantchenko - G4DynamicParticle.cc: use condition m^2<0.001MeV^2 to identify massless particles (tag partman-V05-01-02). -- June 18, 2003 G.Cosmo +- Jun 18, 2003 G.Cosmo - G4ProductionCutsTable.cc: removed usage of G4USE_STD_NAMESPACE after migration from G4std (tag partman-V05-01-01). -- June 12, 2003 V.Ivantchenko +- Jun 12, 2003 V.Ivantchenko - G4DynamicParticle.cc: fix in constructors for the calculation of masses to avoid negative values result of precision loss when massless particles (like photons) are treated. Fixes problem report #489. diff --git a/source/particles/bosons/include/G4BosonConstructor.hh b/source/particles/bosons/include/G4BosonConstructor.hh index 59a4333552..b61c451032 100644 --- a/source/particles/bosons/include/G4BosonConstructor.hh +++ b/source/particles/bosons/include/G4BosonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4BosonConstructor.hh,v 1.3 2001/07/11 10:01:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/bosons/include/G4ChargedGeantino.hh b/source/particles/bosons/include/G4ChargedGeantino.hh index d96c934a40..fb200a93e1 100644 --- a/source/particles/bosons/include/G4ChargedGeantino.hh +++ b/source/particles/bosons/include/G4ChargedGeantino.hh @@ -22,7 +22,7 @@ // // // $Id: G4ChargedGeantino.hh,v 1.9 2002/12/16 11:15:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4Gamma.hh b/source/particles/bosons/include/G4Gamma.hh index adcb3e18af..844b7b0eda 100644 --- a/source/particles/bosons/include/G4Gamma.hh +++ b/source/particles/bosons/include/G4Gamma.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4Gamma.hh,v 1.12 2002/12/16 11:15:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4Geantino.hh b/source/particles/bosons/include/G4Geantino.hh index 412b201626..1baefc43bf 100644 --- a/source/particles/bosons/include/G4Geantino.hh +++ b/source/particles/bosons/include/G4Geantino.hh @@ -22,7 +22,7 @@ // // // $Id: G4Geantino.hh,v 1.9 2002/12/16 11:15:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4OpticalPhoton.hh b/source/particles/bosons/include/G4OpticalPhoton.hh index 55c7106a8f..572d008dbc 100644 --- a/source/particles/bosons/include/G4OpticalPhoton.hh +++ b/source/particles/bosons/include/G4OpticalPhoton.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpticalPhoton.hh,v 1.8 2002/12/16 11:15:36 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/include/G4VBoson.hh b/source/particles/bosons/include/G4VBoson.hh index a922334126..07c7f5ffe0 100644 --- a/source/particles/bosons/include/G4VBoson.hh +++ b/source/particles/bosons/include/G4VBoson.hh @@ -22,7 +22,7 @@ // // // $Id: G4VBoson.hh,v 1.4 2003/03/11 05:49:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/bosons/src/G4BosonConstructor.cc b/source/particles/bosons/src/G4BosonConstructor.cc index 2bc83e6d2a..54b4da046f 100644 --- a/source/particles/bosons/src/G4BosonConstructor.cc +++ b/source/particles/bosons/src/G4BosonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4BosonConstructor.cc,v 1.3 2001/07/11 10:01:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4ChargedGeantino.cc b/source/particles/bosons/src/G4ChargedGeantino.cc index 3f58b43aec..3d6e54a73f 100644 --- a/source/particles/bosons/src/G4ChargedGeantino.cc +++ b/source/particles/bosons/src/G4ChargedGeantino.cc @@ -22,7 +22,7 @@ // // // $Id: G4ChargedGeantino.cc,v 1.12 2003/06/16 16:56:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4Gamma.cc b/source/particles/bosons/src/G4Gamma.cc index 4abb9abcd8..cb9118f78c 100644 --- a/source/particles/bosons/src/G4Gamma.cc +++ b/source/particles/bosons/src/G4Gamma.cc @@ -22,7 +22,7 @@ // // // $Id: G4Gamma.cc,v 1.10 2003/06/16 16:56:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4Geantino.cc b/source/particles/bosons/src/G4Geantino.cc index 4005839a1d..4919c165d9 100644 --- a/source/particles/bosons/src/G4Geantino.cc +++ b/source/particles/bosons/src/G4Geantino.cc @@ -22,7 +22,7 @@ // // // $Id: G4Geantino.cc,v 1.12 2003/06/16 16:56:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4OpticalPhoton.cc b/source/particles/bosons/src/G4OpticalPhoton.cc index 3add28539a..5f61862cd7 100644 --- a/source/particles/bosons/src/G4OpticalPhoton.cc +++ b/source/particles/bosons/src/G4OpticalPhoton.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpticalPhoton.cc,v 1.10 2003/06/16 16:56:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/bosons/src/G4VBoson.cc b/source/particles/bosons/src/G4VBoson.cc index 885a2009d8..cc651d51ff 100644 --- a/source/particles/bosons/src/G4VBoson.cc +++ b/source/particles/bosons/src/G4VBoson.cc @@ -22,7 +22,7 @@ // // // $Id: G4VBoson.cc,v 1.3 2001/07/11 10:01:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/include/G4AntiLambda.hh b/source/particles/hadrons/barions/include/G4AntiLambda.hh index 5ee91783eb..a6abb5a1dd 100644 --- a/source/particles/hadrons/barions/include/G4AntiLambda.hh +++ b/source/particles/hadrons/barions/include/G4AntiLambda.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambda.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh b/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh index 08e4a06da9..edd1123b5f 100644 --- a/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiLambdacPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambdacPlus.hh,v 1.6 2001/10/15 10:09:24 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiNeutron.hh b/source/particles/hadrons/barions/include/G4AntiNeutron.hh index d0a70197e8..9561b01b2b 100644 --- a/source/particles/hadrons/barions/include/G4AntiNeutron.hh +++ b/source/particles/hadrons/barions/include/G4AntiNeutron.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutron.hh,v 1.11 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh b/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh index 107e6f2360..198e11a526 100644 --- a/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiOmegaMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegaMinus.hh,v 1.7 2001/10/16 08:15:45 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh b/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh index 7417429f70..eed506dfa9 100644 --- a/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiOmegacZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegacZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiProton.hh b/source/particles/hadrons/barions/include/G4AntiProton.hh index e0ce59ca76..a00cfb4aa1 100644 --- a/source/particles/hadrons/barions/include/G4AntiProton.hh +++ b/source/particles/hadrons/barions/include/G4AntiProton.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiProton.hh,v 1.8 2001/10/16 08:15:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh b/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh index 9fcca82c63..705930180c 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaMinus.hh,v 1.7 2001/10/16 08:15:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh index 88ba529563..c44ad4cd42 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaPlus.hh,v 1.7 2001/10/16 08:15:47 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh b/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh index 7c13a37646..4fb775b6af 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmaZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaZero.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh index ad87c1c2eb..70c26db234 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacPlus.hh,v 1.6 2001/10/15 10:09:25 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh b/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh index 1dbc7bfbb8..754d5481c1 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacPlusPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacPlusPlus.hh,v 1.6 2001/10/15 10:09:26 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh b/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh index 48351768d2..5fb69a1fb7 100644 --- a/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiSigmacZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXiMinus.hh b/source/particles/hadrons/barions/include/G4AntiXiMinus.hh index 12dcc22361..a3a04ce37c 100644 --- a/source/particles/hadrons/barions/include/G4AntiXiMinus.hh +++ b/source/particles/hadrons/barions/include/G4AntiXiMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiMinus.hh,v 1.7 2001/10/16 08:15:47 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXiZero.hh b/source/particles/hadrons/barions/include/G4AntiXiZero.hh index ac77569b5b..800367f784 100644 --- a/source/particles/hadrons/barions/include/G4AntiXiZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiXiZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiZero.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXicPlus.hh b/source/particles/hadrons/barions/include/G4AntiXicPlus.hh index 265f30b5c7..8504353fec 100644 --- a/source/particles/hadrons/barions/include/G4AntiXicPlus.hh +++ b/source/particles/hadrons/barions/include/G4AntiXicPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXicPlus.hh,v 1.6 2001/10/15 10:09:26 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4AntiXicZero.hh b/source/particles/hadrons/barions/include/G4AntiXicZero.hh index 7a3ee2dcc3..a31c7326eb 100644 --- a/source/particles/hadrons/barions/include/G4AntiXicZero.hh +++ b/source/particles/hadrons/barions/include/G4AntiXicZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiXicZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4BaryonConstructor.hh b/source/particles/hadrons/barions/include/G4BaryonConstructor.hh index fdbbef9720..906955c567 100644 --- a/source/particles/hadrons/barions/include/G4BaryonConstructor.hh +++ b/source/particles/hadrons/barions/include/G4BaryonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4BaryonConstructor.hh,v 1.3 2001/07/11 10:01:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/include/G4Lambda.hh b/source/particles/hadrons/barions/include/G4Lambda.hh index f13eebf630..6646dd165e 100644 --- a/source/particles/hadrons/barions/include/G4Lambda.hh +++ b/source/particles/hadrons/barions/include/G4Lambda.hh @@ -22,7 +22,7 @@ // // // $Id: G4Lambda.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4LambdacPlus.hh b/source/particles/hadrons/barions/include/G4LambdacPlus.hh index 212e20dea6..399cc6d9e7 100644 --- a/source/particles/hadrons/barions/include/G4LambdacPlus.hh +++ b/source/particles/hadrons/barions/include/G4LambdacPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4LambdacPlus.hh,v 1.6 2001/10/15 10:09:27 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4Neutron.hh b/source/particles/hadrons/barions/include/G4Neutron.hh index b1e5955fd4..b5c7d02641 100644 --- a/source/particles/hadrons/barions/include/G4Neutron.hh +++ b/source/particles/hadrons/barions/include/G4Neutron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Neutron.hh,v 1.12 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4OmegaMinus.hh b/source/particles/hadrons/barions/include/G4OmegaMinus.hh index e8134d4e71..876ca27d6d 100644 --- a/source/particles/hadrons/barions/include/G4OmegaMinus.hh +++ b/source/particles/hadrons/barions/include/G4OmegaMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4OmegaMinus.hh,v 1.7 2001/10/16 08:15:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4OmegacZero.hh b/source/particles/hadrons/barions/include/G4OmegacZero.hh index a4a3e41331..0a061f587c 100644 --- a/source/particles/hadrons/barions/include/G4OmegacZero.hh +++ b/source/particles/hadrons/barions/include/G4OmegacZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4OmegacZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4Proton.hh b/source/particles/hadrons/barions/include/G4Proton.hh index 8e2ea4fc25..4319239b47 100644 --- a/source/particles/hadrons/barions/include/G4Proton.hh +++ b/source/particles/hadrons/barions/include/G4Proton.hh @@ -22,7 +22,7 @@ // // // $Id: G4Proton.hh,v 1.9 2001/10/16 08:15:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaMinus.hh b/source/particles/hadrons/barions/include/G4SigmaMinus.hh index 2f77784cff..2ef12f226f 100644 --- a/source/particles/hadrons/barions/include/G4SigmaMinus.hh +++ b/source/particles/hadrons/barions/include/G4SigmaMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmaMinus.hh,v 1.7 2001/10/16 08:15:50 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaPlus.hh b/source/particles/hadrons/barions/include/G4SigmaPlus.hh index 29f7944631..01249f758a 100644 --- a/source/particles/hadrons/barions/include/G4SigmaPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmaPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmaPlus.hh,v 1.7 2001/10/16 08:15:51 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmaZero.hh b/source/particles/hadrons/barions/include/G4SigmaZero.hh index 2d35e515c4..a26dad3cbf 100644 --- a/source/particles/hadrons/barions/include/G4SigmaZero.hh +++ b/source/particles/hadrons/barions/include/G4SigmaZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmaZero.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacPlus.hh b/source/particles/hadrons/barions/include/G4SigmacPlus.hh index 6c4e99bca0..85fb964e0a 100644 --- a/source/particles/hadrons/barions/include/G4SigmacPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmacPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmacPlus.hh,v 1.6 2001/10/15 10:09:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh b/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh index 739bd137b4..d81a7f203e 100644 --- a/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh +++ b/source/particles/hadrons/barions/include/G4SigmacPlusPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmacPlusPlus.hh,v 1.6 2001/10/15 10:09:28 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4SigmacZero.hh b/source/particles/hadrons/barions/include/G4SigmacZero.hh index 8aa40b5844..7dd0928168 100644 --- a/source/particles/hadrons/barions/include/G4SigmacZero.hh +++ b/source/particles/hadrons/barions/include/G4SigmacZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4SigmacZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4VBaryon.hh b/source/particles/hadrons/barions/include/G4VBaryon.hh index b5f6d30c01..2038457571 100644 --- a/source/particles/hadrons/barions/include/G4VBaryon.hh +++ b/source/particles/hadrons/barions/include/G4VBaryon.hh @@ -22,7 +22,7 @@ // // // $Id: G4VBaryon.hh,v 1.4 2003/03/11 05:49:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XiMinus.hh b/source/particles/hadrons/barions/include/G4XiMinus.hh index edce77ab0f..f65bdfaeca 100644 --- a/source/particles/hadrons/barions/include/G4XiMinus.hh +++ b/source/particles/hadrons/barions/include/G4XiMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4XiMinus.hh,v 1.7 2001/10/16 08:15:51 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XiZero.hh b/source/particles/hadrons/barions/include/G4XiZero.hh index 98181bc615..357d57cb33 100644 --- a/source/particles/hadrons/barions/include/G4XiZero.hh +++ b/source/particles/hadrons/barions/include/G4XiZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4XiZero.hh,v 1.10 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XicPlus.hh b/source/particles/hadrons/barions/include/G4XicPlus.hh index f2d533775e..39220ba1b2 100644 --- a/source/particles/hadrons/barions/include/G4XicPlus.hh +++ b/source/particles/hadrons/barions/include/G4XicPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4XicPlus.hh,v 1.6 2001/10/15 10:09:29 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/include/G4XicZero.hh b/source/particles/hadrons/barions/include/G4XicZero.hh index bebc414cfb..2edfc2bc3b 100644 --- a/source/particles/hadrons/barions/include/G4XicZero.hh +++ b/source/particles/hadrons/barions/include/G4XicZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4XicZero.hh,v 1.9 2002/12/16 11:15:37 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/barions/src/G4AntiLambda.cc b/source/particles/hadrons/barions/src/G4AntiLambda.cc index eb07245b08..0354c85d3e 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambda.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambda.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambda.cc,v 1.14 2003/06/16 16:56:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc index 18d38c5fb4..f022582490 100644 --- a/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiLambdacPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiLambdacPlus.cc,v 1.8 2003/06/16 16:56:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiNeutron.cc b/source/particles/hadrons/barions/src/G4AntiNeutron.cc index 2b3d37e7e0..0eb0e37135 100644 --- a/source/particles/hadrons/barions/src/G4AntiNeutron.cc +++ b/source/particles/hadrons/barions/src/G4AntiNeutron.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutron.cc,v 1.13 2003/06/16 16:56:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc index 821c4f25b6..6c7bf40519 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegaMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegaMinus.cc,v 1.9 2003/06/16 16:56:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc index 53d041e748..b5d1b012b9 100644 --- a/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiOmegacZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiOmegacZero.cc,v 1.13 2003/06/16 16:56:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiProton.cc b/source/particles/hadrons/barions/src/G4AntiProton.cc index ce4a8eedbb..81aea177eb 100644 --- a/source/particles/hadrons/barions/src/G4AntiProton.cc +++ b/source/particles/hadrons/barions/src/G4AntiProton.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiProton.cc,v 1.8 2003/06/16 16:56:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc index 20c073fb59..23710b8a42 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaMinus.cc,v 1.10 2003/06/16 16:56:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc index 488de8231e..a680648b75 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaPlus.cc,v 1.9 2003/06/16 16:56:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc index 7644815628..1e4007f297 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmaZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmaZero.cc,v 1.14 2003/06/16 16:56:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc index 2dcc13bfb3..715b1441a2 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacPlus.cc,v 1.7 2003/06/16 16:56:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc index 3020b3b496..1b2c0ae4f9 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacPlusPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacPlusPlus.cc,v 1.7 2003/06/16 16:56:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc index 6a6842668c..7b70f8c97e 100644 --- a/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiSigmacZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiSigmacZero.cc,v 1.12 2003/06/16 16:57:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc index d1d03c8d5f..b35a05a5c7 100644 --- a/source/particles/hadrons/barions/src/G4AntiXiMinus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXiMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiMinus.cc,v 1.9 2003/06/16 16:57:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXiZero.cc b/source/particles/hadrons/barions/src/G4AntiXiZero.cc index ecd55fc7f0..493118b1d1 100644 --- a/source/particles/hadrons/barions/src/G4AntiXiZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXiZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiXiZero.cc,v 1.14 2003/06/16 16:57:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc index ea5aaaba06..6fc5e6f471 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicPlus.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiXicPlus.cc,v 1.8 2003/06/16 16:57:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4AntiXicZero.cc b/source/particles/hadrons/barions/src/G4AntiXicZero.cc index 3b0fde1f4d..dd69a71340 100644 --- a/source/particles/hadrons/barions/src/G4AntiXicZero.cc +++ b/source/particles/hadrons/barions/src/G4AntiXicZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiXicZero.cc,v 1.13 2003/06/16 16:57:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4BaryonConstructor.cc b/source/particles/hadrons/barions/src/G4BaryonConstructor.cc index 803267c23d..275edc7a7b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Lambda.cc b/source/particles/hadrons/barions/src/G4Lambda.cc index bcdb3da7e1..f47100f4ff 100644 --- a/source/particles/hadrons/barions/src/G4Lambda.cc +++ b/source/particles/hadrons/barions/src/G4Lambda.cc @@ -22,7 +22,7 @@ // // // $Id: G4Lambda.cc,v 1.14 2003/06/16 16:57:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4LambdacPlus.cc b/source/particles/hadrons/barions/src/G4LambdacPlus.cc index 2296cf88b2..7a4e3e56ef 100644 --- a/source/particles/hadrons/barions/src/G4LambdacPlus.cc +++ b/source/particles/hadrons/barions/src/G4LambdacPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4LambdacPlus.cc,v 1.8 2003/06/16 16:57:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Neutron.cc b/source/particles/hadrons/barions/src/G4Neutron.cc index 73e3bd9aa0..34f50312df 100644 --- a/source/particles/hadrons/barions/src/G4Neutron.cc +++ b/source/particles/hadrons/barions/src/G4Neutron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Neutron.cc,v 1.15 2003/06/16 16:57:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4OmegaMinus.cc b/source/particles/hadrons/barions/src/G4OmegaMinus.cc index 4bdfcaabb2..9a5a13c118 100644 --- a/source/particles/hadrons/barions/src/G4OmegaMinus.cc +++ b/source/particles/hadrons/barions/src/G4OmegaMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4OmegaMinus.cc,v 1.9 2003/06/16 16:57:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4OmegacZero.cc b/source/particles/hadrons/barions/src/G4OmegacZero.cc index 1aae16709c..575eec41b0 100644 --- a/source/particles/hadrons/barions/src/G4OmegacZero.cc +++ b/source/particles/hadrons/barions/src/G4OmegacZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4OmegacZero.cc,v 1.13 2003/06/16 16:57:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4Proton.cc b/source/particles/hadrons/barions/src/G4Proton.cc index 07905b3200..f2ff7f7c96 100644 --- a/source/particles/hadrons/barions/src/G4Proton.cc +++ b/source/particles/hadrons/barions/src/G4Proton.cc @@ -22,7 +22,7 @@ // // // $Id: G4Proton.cc,v 1.8 2003/06/16 16:57:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaMinus.cc b/source/particles/hadrons/barions/src/G4SigmaMinus.cc index 217f273140..ac5fd50632 100644 --- a/source/particles/hadrons/barions/src/G4SigmaMinus.cc +++ b/source/particles/hadrons/barions/src/G4SigmaMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmaMinus.cc,v 1.9 2003/06/16 16:57:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaPlus.cc b/source/particles/hadrons/barions/src/G4SigmaPlus.cc index 777cf54af4..f842b927b1 100644 --- a/source/particles/hadrons/barions/src/G4SigmaPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmaPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmaPlus.cc,v 1.9 2003/06/16 16:57:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmaZero.cc b/source/particles/hadrons/barions/src/G4SigmaZero.cc index cf4176e8ed..7a30ef987e 100644 --- a/source/particles/hadrons/barions/src/G4SigmaZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmaZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmaZero.cc,v 1.14 2003/06/16 16:57:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlus.cc index efbc46ef87..5f551ef472 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmacPlus.cc,v 1.7 2003/06/16 16:57:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc index 02f0a82031..a86c4c05ee 100644 --- a/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc +++ b/source/particles/hadrons/barions/src/G4SigmacPlusPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmacPlusPlus.cc,v 1.7 2003/06/16 16:57:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4SigmacZero.cc b/source/particles/hadrons/barions/src/G4SigmacZero.cc index 3c937a16db..c1fccc246b 100644 --- a/source/particles/hadrons/barions/src/G4SigmacZero.cc +++ b/source/particles/hadrons/barions/src/G4SigmacZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4SigmacZero.cc,v 1.12 2003/06/16 16:57:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4VBaryon.cc b/source/particles/hadrons/barions/src/G4VBaryon.cc index ceedec6d09..ca8954d789 100644 --- a/source/particles/hadrons/barions/src/G4VBaryon.cc +++ b/source/particles/hadrons/barions/src/G4VBaryon.cc @@ -22,7 +22,7 @@ // // // $Id: G4VBaryon.cc,v 1.3 2001/07/11 10:01:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XiMinus.cc b/source/particles/hadrons/barions/src/G4XiMinus.cc index a6a6200b0d..2700fb0d9c 100644 --- a/source/particles/hadrons/barions/src/G4XiMinus.cc +++ b/source/particles/hadrons/barions/src/G4XiMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4XiMinus.cc,v 1.9 2003/06/16 16:57:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XiZero.cc b/source/particles/hadrons/barions/src/G4XiZero.cc index 7e2538215b..ab9eeded2c 100644 --- a/source/particles/hadrons/barions/src/G4XiZero.cc +++ b/source/particles/hadrons/barions/src/G4XiZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4XiZero.cc,v 1.14 2003/06/16 16:57:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XicPlus.cc b/source/particles/hadrons/barions/src/G4XicPlus.cc index 1087096e9b..de0a310967 100644 --- a/source/particles/hadrons/barions/src/G4XicPlus.cc +++ b/source/particles/hadrons/barions/src/G4XicPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4XicPlus.cc,v 1.8 2003/06/16 16:57:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/barions/src/G4XicZero.cc b/source/particles/hadrons/barions/src/G4XicZero.cc index 22ac015e6f..bb0125b56e 100644 --- a/source/particles/hadrons/barions/src/G4XicZero.cc +++ b/source/particles/hadrons/barions/src/G4XicZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4XicZero.cc,v 1.13 2003/06/16 16:57:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/include/G4Alpha.hh b/source/particles/hadrons/ions/include/G4Alpha.hh index 55e5dbb830..8ac31e153e 100644 --- a/source/particles/hadrons/ions/include/G4Alpha.hh +++ b/source/particles/hadrons/ions/include/G4Alpha.hh @@ -22,7 +22,7 @@ // // // $Id: G4Alpha.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4Deuteron.hh b/source/particles/hadrons/ions/include/G4Deuteron.hh index e5b2c46e1a..4b6baabe8e 100644 --- a/source/particles/hadrons/ions/include/G4Deuteron.hh +++ b/source/particles/hadrons/ions/include/G4Deuteron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Deuteron.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4GenericIon.hh b/source/particles/hadrons/ions/include/G4GenericIon.hh index e36b48a80c..e60d2388ac 100644 --- a/source/particles/hadrons/ions/include/G4GenericIon.hh +++ b/source/particles/hadrons/ions/include/G4GenericIon.hh @@ -22,7 +22,7 @@ // // // $Id: G4GenericIon.hh,v 1.7 2001/10/16 08:16:05 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4He3.hh b/source/particles/hadrons/ions/include/G4He3.hh index 1b1b0bf92f..a691987359 100644 --- a/source/particles/hadrons/ions/include/G4He3.hh +++ b/source/particles/hadrons/ions/include/G4He3.hh @@ -22,7 +22,7 @@ // // // $Id: G4He3.hh,v 1.7 2001/10/16 08:16:06 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4IonConstructor.hh b/source/particles/hadrons/ions/include/G4IonConstructor.hh index 9ab13abea4..c481eb2839 100644 --- a/source/particles/hadrons/ions/include/G4IonConstructor.hh +++ b/source/particles/hadrons/ions/include/G4IonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonConstructor.hh,v 1.3 2001/07/11 10:01:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/include/G4Triton.hh b/source/particles/hadrons/ions/include/G4Triton.hh index 29ba54b266..be5def6e68 100644 --- a/source/particles/hadrons/ions/include/G4Triton.hh +++ b/source/particles/hadrons/ions/include/G4Triton.hh @@ -22,7 +22,7 @@ // // // $Id: G4Triton.hh,v 1.7 2001/10/16 08:16:06 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/include/G4VIon.hh b/source/particles/hadrons/ions/include/G4VIon.hh index 15ceb56c73..3602df5fed 100644 --- a/source/particles/hadrons/ions/include/G4VIon.hh +++ b/source/particles/hadrons/ions/include/G4VIon.hh @@ -22,7 +22,7 @@ // // // $Id: G4VIon.hh,v 1.5 2003/03/11 05:49:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/ions/src/G4Alpha.cc b/source/particles/hadrons/ions/src/G4Alpha.cc index af6e2873da..acf1b69e68 100644 --- a/source/particles/hadrons/ions/src/G4Alpha.cc +++ b/source/particles/hadrons/ions/src/G4Alpha.cc @@ -22,7 +22,7 @@ // // // $Id: G4Alpha.cc,v 1.8 2003/06/16 16:57:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4Deuteron.cc b/source/particles/hadrons/ions/src/G4Deuteron.cc index 0d024b20d8..dc9c0c743b 100644 --- a/source/particles/hadrons/ions/src/G4Deuteron.cc +++ b/source/particles/hadrons/ions/src/G4Deuteron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Deuteron.cc,v 1.8 2003/06/16 16:57:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4GenericIon.cc b/source/particles/hadrons/ions/src/G4GenericIon.cc index fa47e8822c..03ecdc0880 100644 --- a/source/particles/hadrons/ions/src/G4GenericIon.cc +++ b/source/particles/hadrons/ions/src/G4GenericIon.cc @@ -22,7 +22,7 @@ // // // $Id: G4GenericIon.cc,v 1.8 2003/06/16 16:57:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4He3.cc b/source/particles/hadrons/ions/src/G4He3.cc index 0506bce278..b02ca602ee 100644 --- a/source/particles/hadrons/ions/src/G4He3.cc +++ b/source/particles/hadrons/ions/src/G4He3.cc @@ -22,7 +22,7 @@ // // // $Id: G4He3.cc,v 1.8 2003/06/16 16:57:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4IonConstructor.cc b/source/particles/hadrons/ions/src/G4IonConstructor.cc index 8c77c1ffdd..550cdc2644 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4Triton.cc b/source/particles/hadrons/ions/src/G4Triton.cc index 7c1d790a5c..cde4a86933 100644 --- a/source/particles/hadrons/ions/src/G4Triton.cc +++ b/source/particles/hadrons/ions/src/G4Triton.cc @@ -22,7 +22,7 @@ // // // $Id: G4Triton.cc,v 1.8 2003/06/16 16:57:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/ions/src/G4VIon.cc b/source/particles/hadrons/ions/src/G4VIon.cc index 4b9644d6e3..3c63632960 100644 --- a/source/particles/hadrons/ions/src/G4VIon.cc +++ b/source/particles/hadrons/ions/src/G4VIon.cc @@ -22,7 +22,7 @@ // // // $Id: G4VIon.cc,v 1.3 2001/07/11 10:01:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh index fd8ccdbb0b..162127d536 100644 --- a/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiBMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiBMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh index 4b8351e59e..9fe46301c5 100644 --- a/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiBsMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiBsMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh b/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh index 318c67fb28..45f4240036 100644 --- a/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiDMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiDMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh b/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh index 277e3c8b9b..34a8c686a0 100644 --- a/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh +++ b/source/particles/hadrons/mesons/include/G4AntiKaonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiKaonZero.hh,v 1.10 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonMinus.hh b/source/particles/hadrons/mesons/include/G4BMesonMinus.hh index 4e82bf1196..2c24dd8cd9 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4BMesonMinus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonPlus.hh b/source/particles/hadrons/mesons/include/G4BMesonPlus.hh index 6e173c12a6..22787a093a 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4BMesonPlus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BMesonZero.hh b/source/particles/hadrons/mesons/include/G4BMesonZero.hh index b75a4b3da9..718597d162 100644 --- a/source/particles/hadrons/mesons/include/G4BMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4BMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4BMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4BsMesonZero.hh b/source/particles/hadrons/mesons/include/G4BsMesonZero.hh index 86a7c105cd..cc07cebdfa 100644 --- a/source/particles/hadrons/mesons/include/G4BsMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4BsMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4BsMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonMinus.hh b/source/particles/hadrons/mesons/include/G4DMesonMinus.hh index 558356eeb9..8068dbdb30 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4DMesonMinus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonPlus.hh b/source/particles/hadrons/mesons/include/G4DMesonPlus.hh index 0bdc474db8..ceee63e291 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4DMesonPlus.hh,v 1.5 2001/10/15 10:06:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DMesonZero.hh b/source/particles/hadrons/mesons/include/G4DMesonZero.hh index eff76cc424..480c195388 100644 --- a/source/particles/hadrons/mesons/include/G4DMesonZero.hh +++ b/source/particles/hadrons/mesons/include/G4DMesonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4DMesonZero.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh b/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh index 6583c0601c..dd2cd7dbf8 100644 --- a/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4DsMesonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4DsMesonMinus.hh,v 1.5 2001/10/15 10:06:13 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh b/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh index 06fc3ae7f3..8f34a35cb7 100644 --- a/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4DsMesonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4DsMesonPlus.hh,v 1.5 2001/10/15 10:06:13 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4Eta.hh b/source/particles/hadrons/mesons/include/G4Eta.hh index c460bb3a33..f17e328d88 100644 --- a/source/particles/hadrons/mesons/include/G4Eta.hh +++ b/source/particles/hadrons/mesons/include/G4Eta.hh @@ -22,7 +22,7 @@ // // // $Id: G4Eta.hh,v 1.9 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4EtaPrime.hh b/source/particles/hadrons/mesons/include/G4EtaPrime.hh index f8af43effc..347d609083 100644 --- a/source/particles/hadrons/mesons/include/G4EtaPrime.hh +++ b/source/particles/hadrons/mesons/include/G4EtaPrime.hh @@ -22,7 +22,7 @@ // // // $Id: G4EtaPrime.hh,v 1.9 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4JPsi.hh b/source/particles/hadrons/mesons/include/G4JPsi.hh index cacb999ef6..0f1d3952b4 100644 --- a/source/particles/hadrons/mesons/include/G4JPsi.hh +++ b/source/particles/hadrons/mesons/include/G4JPsi.hh @@ -22,7 +22,7 @@ // // // $Id: G4JPsi.hh,v 1.8 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonMinus.hh b/source/particles/hadrons/mesons/include/G4KaonMinus.hh index 9dcca55dbc..8e4da9bd06 100644 --- a/source/particles/hadrons/mesons/include/G4KaonMinus.hh +++ b/source/particles/hadrons/mesons/include/G4KaonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonMinus.hh,v 1.7 2001/10/16 08:16:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonPlus.hh b/source/particles/hadrons/mesons/include/G4KaonPlus.hh index f3dce38294..d32484b7eb 100644 --- a/source/particles/hadrons/mesons/include/G4KaonPlus.hh +++ b/source/particles/hadrons/mesons/include/G4KaonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonPlus.hh,v 1.7 2001/10/16 08:16:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZero.hh b/source/particles/hadrons/mesons/include/G4KaonZero.hh index 8574ba553c..2b71d1fae5 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZero.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonZero.hh,v 1.10 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh b/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh index 4b29040430..f048592089 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZeroLong.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroLong.hh,v 1.9 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh b/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh index ef19ca2ca8..eac6bae9fe 100644 --- a/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh +++ b/source/particles/hadrons/mesons/include/G4KaonZeroShort.hh @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroShort.hh,v 1.9 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4MesonConstructor.hh b/source/particles/hadrons/mesons/include/G4MesonConstructor.hh index b7d881a39f..0e95b85b0e 100644 --- a/source/particles/hadrons/mesons/include/G4MesonConstructor.hh +++ b/source/particles/hadrons/mesons/include/G4MesonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4MesonConstructor.hh,v 1.3 2001/07/11 10:01:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/include/G4PionMinus.hh b/source/particles/hadrons/mesons/include/G4PionMinus.hh index fd68ca824b..6880728cda 100644 --- a/source/particles/hadrons/mesons/include/G4PionMinus.hh +++ b/source/particles/hadrons/mesons/include/G4PionMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionMinus.hh,v 1.7 2001/10/16 08:16:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4PionPlus.hh b/source/particles/hadrons/mesons/include/G4PionPlus.hh index 9e20eb047b..87e0bae363 100644 --- a/source/particles/hadrons/mesons/include/G4PionPlus.hh +++ b/source/particles/hadrons/mesons/include/G4PionPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionPlus.hh,v 1.7 2001/10/16 08:16:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4PionZero.hh b/source/particles/hadrons/mesons/include/G4PionZero.hh index a1c7d2f5b6..9d3f59f7e3 100644 --- a/source/particles/hadrons/mesons/include/G4PionZero.hh +++ b/source/particles/hadrons/mesons/include/G4PionZero.hh @@ -22,7 +22,7 @@ // // // $Id: G4PionZero.hh,v 1.10 2002/12/16 11:15:39 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/include/G4VMeson.hh b/source/particles/hadrons/mesons/include/G4VMeson.hh index 058e71e026..e080fc1731 100644 --- a/source/particles/hadrons/mesons/include/G4VMeson.hh +++ b/source/particles/hadrons/mesons/include/G4VMeson.hh @@ -22,7 +22,7 @@ // // // $Id: G4VMeson.hh,v 1.4 2003/03/11 05:49:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc index dc934bea05..5b9079f982 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiBMesonZero.cc,v 1.12 2003/06/16 16:57:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc index 74f028d713..a973327ac7 100644 --- a/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiBsMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiBsMesonZero.cc,v 1.12 2003/06/16 16:57:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc index 293c9a9d90..9685691f8c 100644 --- a/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiDMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiDMesonZero.cc,v 1.12 2003/06/16 16:57:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc index fc79bd5523..c38296451c 100644 --- a/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc +++ b/source/particles/hadrons/mesons/src/G4AntiKaonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiKaonZero.cc,v 1.12 2003/06/16 16:57:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc index e10e572687..1127ad6d74 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4BMesonMinus.cc,v 1.7 2003/06/16 16:57:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc index fe91145910..e506d9f5dc 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4BMesonPlus.cc,v 1.7 2003/06/16 16:57:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BMesonZero.cc b/source/particles/hadrons/mesons/src/G4BMesonZero.cc index ec109f23c5..1b72174876 100644 --- a/source/particles/hadrons/mesons/src/G4BMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4BMesonZero.cc,v 1.12 2003/06/16 16:57:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc index 8b03235fca..3a972dc786 100644 --- a/source/particles/hadrons/mesons/src/G4BsMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4BsMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4BsMesonZero.cc,v 1.12 2003/06/16 16:57:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc index 0d23f421e9..62364dc259 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4DMesonMinus.cc,v 1.7 2003/06/16 16:57:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc index c9804c96d3..9991c5e32b 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4DMesonPlus.cc,v 1.7 2003/06/16 16:57:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DMesonZero.cc b/source/particles/hadrons/mesons/src/G4DMesonZero.cc index b7d80dea0f..251fb8ed00 100644 --- a/source/particles/hadrons/mesons/src/G4DMesonZero.cc +++ b/source/particles/hadrons/mesons/src/G4DMesonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4DMesonZero.cc,v 1.12 2003/06/16 16:57:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc index 41628d823e..a6ddc3d105 100644 --- a/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4DsMesonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4DsMesonMinus.cc,v 1.7 2003/06/16 16:57:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc index 02b2981b51..8fa9a025cb 100644 --- a/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4DsMesonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4DsMesonPlus.cc,v 1.7 2003/06/16 16:57:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4Eta.cc b/source/particles/hadrons/mesons/src/G4Eta.cc index ca0459ea4c..201de87093 100644 --- a/source/particles/hadrons/mesons/src/G4Eta.cc +++ b/source/particles/hadrons/mesons/src/G4Eta.cc @@ -22,7 +22,7 @@ // // // $Id: G4Eta.cc,v 1.13 2003/06/16 16:57:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4EtaPrime.cc b/source/particles/hadrons/mesons/src/G4EtaPrime.cc index deea0ead54..e29c52a687 100644 --- a/source/particles/hadrons/mesons/src/G4EtaPrime.cc +++ b/source/particles/hadrons/mesons/src/G4EtaPrime.cc @@ -22,7 +22,7 @@ // // // $Id: G4EtaPrime.cc,v 1.13 2003/06/16 16:57:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4JPsi.cc b/source/particles/hadrons/mesons/src/G4JPsi.cc index 8c1d20f1be..d7e9ab8e68 100644 --- a/source/particles/hadrons/mesons/src/G4JPsi.cc +++ b/source/particles/hadrons/mesons/src/G4JPsi.cc @@ -22,7 +22,7 @@ // // // $Id: G4JPsi.cc,v 1.12 2003/06/16 16:57:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonMinus.cc b/source/particles/hadrons/mesons/src/G4KaonMinus.cc index 180a3354f7..168fc4f3b8 100644 --- a/source/particles/hadrons/mesons/src/G4KaonMinus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonMinus.cc,v 1.9 2003/06/16 16:57:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonPlus.cc b/source/particles/hadrons/mesons/src/G4KaonPlus.cc index 52ffae9c47..5199672d37 100644 --- a/source/particles/hadrons/mesons/src/G4KaonPlus.cc +++ b/source/particles/hadrons/mesons/src/G4KaonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonPlus.cc,v 1.8 2003/06/16 16:57:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZero.cc b/source/particles/hadrons/mesons/src/G4KaonZero.cc index 55e8ed1dd8..69ee0a8c74 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZero.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonZero.cc,v 1.12 2003/06/16 16:57:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc index 0cac407ee7..3bce8bdde8 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZeroLong.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroLong.cc,v 1.13 2003/06/16 16:57:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc index a7aaf53d9f..1653a447d5 100644 --- a/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc +++ b/source/particles/hadrons/mesons/src/G4KaonZeroShort.cc @@ -22,7 +22,7 @@ // // // $Id: G4KaonZeroShort.cc,v 1.13 2003/06/16 16:57:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4MesonConstructor.cc b/source/particles/hadrons/mesons/src/G4MesonConstructor.cc index 2d1136d2a2..a67b420d64 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionMinus.cc b/source/particles/hadrons/mesons/src/G4PionMinus.cc index c9028c9816..6ead6d6a18 100644 --- a/source/particles/hadrons/mesons/src/G4PionMinus.cc +++ b/source/particles/hadrons/mesons/src/G4PionMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4PionMinus.cc,v 1.8 2003/06/16 16:57:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionPlus.cc b/source/particles/hadrons/mesons/src/G4PionPlus.cc index 0c2fdc03cb..0bed1b5b1f 100644 --- a/source/particles/hadrons/mesons/src/G4PionPlus.cc +++ b/source/particles/hadrons/mesons/src/G4PionPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4PionPlus.cc,v 1.9 2003/06/16 16:57:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4PionZero.cc b/source/particles/hadrons/mesons/src/G4PionZero.cc index 7e8127a11f..b8ef0968a4 100644 --- a/source/particles/hadrons/mesons/src/G4PionZero.cc +++ b/source/particles/hadrons/mesons/src/G4PionZero.cc @@ -22,7 +22,7 @@ // // // $Id: G4PionZero.cc,v 1.13 2003/06/16 16:57:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/hadrons/mesons/src/G4VMeson.cc b/source/particles/hadrons/mesons/src/G4VMeson.cc index b66d05b5a5..337642027c 100644 --- a/source/particles/hadrons/mesons/src/G4VMeson.cc +++ b/source/particles/hadrons/mesons/src/G4VMeson.cc @@ -22,7 +22,7 @@ // // // $Id: G4VMeson.cc,v 1.3 2001/07/11 10:01:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/include/G4AntiNeutrinoE.hh b/source/particles/leptons/include/G4AntiNeutrinoE.hh index f3abf8fd43..f52a8e5aa1 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoE.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoE.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoE.hh,v 1.9 2002/12/16 11:15:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4AntiNeutrinoMu.hh b/source/particles/leptons/include/G4AntiNeutrinoMu.hh index 6df39b2966..fd0e66392b 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoMu.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoMu.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoMu.hh,v 1.9 2002/12/16 11:15:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4AntiNeutrinoTau.hh b/source/particles/leptons/include/G4AntiNeutrinoTau.hh index ce20bbd428..880cacb38e 100644 --- a/source/particles/leptons/include/G4AntiNeutrinoTau.hh +++ b/source/particles/leptons/include/G4AntiNeutrinoTau.hh @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoTau.hh,v 1.9 2002/12/16 11:15:41 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4Electron.hh b/source/particles/leptons/include/G4Electron.hh index a40f07690e..7871494d06 100644 --- a/source/particles/leptons/include/G4Electron.hh +++ b/source/particles/leptons/include/G4Electron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Electron.hh,v 1.8 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4LeptonConstructor.hh b/source/particles/leptons/include/G4LeptonConstructor.hh index 6b0d58f24b..bbfdadcf2f 100644 --- a/source/particles/leptons/include/G4LeptonConstructor.hh +++ b/source/particles/leptons/include/G4LeptonConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4LeptonConstructor.hh,v 1.3 2001/07/11 10:01:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/include/G4MuonMinus.hh b/source/particles/leptons/include/G4MuonMinus.hh index f0694843e5..958620775f 100644 --- a/source/particles/leptons/include/G4MuonMinus.hh +++ b/source/particles/leptons/include/G4MuonMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuonMinus.hh,v 1.7 2001/10/16 08:16:15 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4MuonPlus.hh b/source/particles/leptons/include/G4MuonPlus.hh index 395cf44bf3..24be8c18d0 100644 --- a/source/particles/leptons/include/G4MuonPlus.hh +++ b/source/particles/leptons/include/G4MuonPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4MuonPlus.hh,v 1.7 2001/10/16 08:16:15 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoE.hh b/source/particles/leptons/include/G4NeutrinoE.hh index 30b63549eb..bef04a7649 100644 --- a/source/particles/leptons/include/G4NeutrinoE.hh +++ b/source/particles/leptons/include/G4NeutrinoE.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoE.hh,v 1.9 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoMu.hh b/source/particles/leptons/include/G4NeutrinoMu.hh index 5cbaace002..b74dc53841 100644 --- a/source/particles/leptons/include/G4NeutrinoMu.hh +++ b/source/particles/leptons/include/G4NeutrinoMu.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoMu.hh,v 1.9 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4NeutrinoTau.hh b/source/particles/leptons/include/G4NeutrinoTau.hh index 024bcff5c7..c73af0035f 100644 --- a/source/particles/leptons/include/G4NeutrinoTau.hh +++ b/source/particles/leptons/include/G4NeutrinoTau.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoTau.hh,v 1.9 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4Positron.hh b/source/particles/leptons/include/G4Positron.hh index e38e9dccc0..8261df0905 100644 --- a/source/particles/leptons/include/G4Positron.hh +++ b/source/particles/leptons/include/G4Positron.hh @@ -22,7 +22,7 @@ // // // $Id: G4Positron.hh,v 1.8 2002/12/16 11:15:42 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4TauMinus.hh b/source/particles/leptons/include/G4TauMinus.hh index a3e596ddf0..42232a6e31 100644 --- a/source/particles/leptons/include/G4TauMinus.hh +++ b/source/particles/leptons/include/G4TauMinus.hh @@ -22,7 +22,7 @@ // // // $Id: G4TauMinus.hh,v 1.7 2001/10/16 08:16:16 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4TauPlus.hh b/source/particles/leptons/include/G4TauPlus.hh index ffd8aa6795..3dbb68f5ab 100644 --- a/source/particles/leptons/include/G4TauPlus.hh +++ b/source/particles/leptons/include/G4TauPlus.hh @@ -22,7 +22,7 @@ // // // $Id: G4TauPlus.hh,v 1.7 2001/10/16 08:16:16 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/include/G4VLepton.hh b/source/particles/leptons/include/G4VLepton.hh index 248f3dacfd..3b8f83bb2c 100644 --- a/source/particles/leptons/include/G4VLepton.hh +++ b/source/particles/leptons/include/G4VLepton.hh @@ -22,7 +22,7 @@ // // // $Id: G4VLepton.hh,v 1.4 2003/03/11 05:49:40 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/leptons/src/G4AntiNeutrinoE.cc b/source/particles/leptons/src/G4AntiNeutrinoE.cc index 9353365a72..f6a811d50b 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoE.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoE.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoE.cc,v 1.12 2003/06/16 16:57:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4AntiNeutrinoMu.cc b/source/particles/leptons/src/G4AntiNeutrinoMu.cc index 9749a18703..f75ed6fc25 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoMu.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoMu.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoMu.cc,v 1.12 2003/06/16 16:57:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4AntiNeutrinoTau.cc b/source/particles/leptons/src/G4AntiNeutrinoTau.cc index 01efb1dea7..baccd62a06 100644 --- a/source/particles/leptons/src/G4AntiNeutrinoTau.cc +++ b/source/particles/leptons/src/G4AntiNeutrinoTau.cc @@ -22,7 +22,7 @@ // // // $Id: G4AntiNeutrinoTau.cc,v 1.12 2003/06/16 16:57:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4Electron.cc b/source/particles/leptons/src/G4Electron.cc index 23f65467de..18840e83ca 100644 --- a/source/particles/leptons/src/G4Electron.cc +++ b/source/particles/leptons/src/G4Electron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Electron.cc,v 1.9 2003/06/16 16:57:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4LeptonConstructor.cc b/source/particles/leptons/src/G4LeptonConstructor.cc index 6e16a41ff1..1268a3266a 100644 --- a/source/particles/leptons/src/G4LeptonConstructor.cc +++ b/source/particles/leptons/src/G4LeptonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4LeptonConstructor.cc,v 1.3 2001/07/11 10:01:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4MuonMinus.cc b/source/particles/leptons/src/G4MuonMinus.cc index f5570aa2bc..619aa75525 100644 --- a/source/particles/leptons/src/G4MuonMinus.cc +++ b/source/particles/leptons/src/G4MuonMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuonMinus.cc,v 1.8 2003/06/16 16:57:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4MuonPlus.cc b/source/particles/leptons/src/G4MuonPlus.cc index 2b14c37e5d..becc318535 100644 --- a/source/particles/leptons/src/G4MuonPlus.cc +++ b/source/particles/leptons/src/G4MuonPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuonPlus.cc,v 1.8 2003/06/16 16:57:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoE.cc b/source/particles/leptons/src/G4NeutrinoE.cc index 79822de7c2..2d544db94a 100644 --- a/source/particles/leptons/src/G4NeutrinoE.cc +++ b/source/particles/leptons/src/G4NeutrinoE.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoE.cc,v 1.12 2003/06/16 16:57:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoMu.cc b/source/particles/leptons/src/G4NeutrinoMu.cc index 7c7fea7e47..083e9e4e3a 100644 --- a/source/particles/leptons/src/G4NeutrinoMu.cc +++ b/source/particles/leptons/src/G4NeutrinoMu.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoMu.cc,v 1.13 2003/06/16 16:57:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4NeutrinoTau.cc b/source/particles/leptons/src/G4NeutrinoTau.cc index 0559c50cfd..b28e48bc80 100644 --- a/source/particles/leptons/src/G4NeutrinoTau.cc +++ b/source/particles/leptons/src/G4NeutrinoTau.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutrinoTau.cc,v 1.12 2003/06/16 16:57:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4Positron.cc b/source/particles/leptons/src/G4Positron.cc index c5481a00f1..0454474a23 100644 --- a/source/particles/leptons/src/G4Positron.cc +++ b/source/particles/leptons/src/G4Positron.cc @@ -22,7 +22,7 @@ // // // $Id: G4Positron.cc,v 1.8 2003/06/16 16:57:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4TauMinus.cc b/source/particles/leptons/src/G4TauMinus.cc index eeaaceebbf..58e7bded5f 100644 --- a/source/particles/leptons/src/G4TauMinus.cc +++ b/source/particles/leptons/src/G4TauMinus.cc @@ -22,7 +22,7 @@ // // // $Id: G4TauMinus.cc,v 1.9 2003/06/16 16:58:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4TauPlus.cc b/source/particles/leptons/src/G4TauPlus.cc index 0ff8633de1..30a2f1f96c 100644 --- a/source/particles/leptons/src/G4TauPlus.cc +++ b/source/particles/leptons/src/G4TauPlus.cc @@ -22,7 +22,7 @@ // // // $Id: G4TauPlus.cc,v 1.9 2003/06/16 16:58:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/leptons/src/G4VLepton.cc b/source/particles/leptons/src/G4VLepton.cc index e06f4c0193..6e509829a7 100644 --- a/source/particles/leptons/src/G4VLepton.cc +++ b/source/particles/leptons/src/G4VLepton.cc @@ -22,7 +22,7 @@ // // // $Id: G4VLepton.cc,v 1.3 2001/07/11 10:01:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/include/G4DalitzDecayChannel.hh b/source/particles/management/include/G4DalitzDecayChannel.hh index 9adbd350d6..d92b717b74 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayProducts.hh b/source/particles/management/include/G4DecayProducts.hh index 726e32cb56..fc2e49af15 100644 --- a/source/particles/management/include/G4DecayProducts.hh +++ b/source/particles/management/include/G4DecayProducts.hh @@ -22,7 +22,7 @@ // // // $Id: G4DecayProducts.hh,v 1.8 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayTable.hh b/source/particles/management/include/G4DecayTable.hh index 7ecde240d8..4d905345a4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DecayTableMessenger.hh b/source/particles/management/include/G4DecayTableMessenger.hh index e6751bf7ef..ac5d54202c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4DynamicParticle.hh b/source/particles/management/include/G4DynamicParticle.hh index ecbb2d1348..76d11ba006 100644 --- a/source/particles/management/include/G4DynamicParticle.hh +++ b/source/particles/management/include/G4DynamicParticle.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DynamicParticle.hh,v 1.11 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DynamicParticle.hh,v 1.13 2003/10/21 20:56:13 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -62,7 +62,7 @@ class G4VProcess; class G4DecayProducts; - +class G4PrimaryParticle; class G4DynamicParticle { @@ -221,7 +221,15 @@ class G4DynamicParticle // 1: Warning message // 2: More + private: + G4PrimaryParticle* primaryParticle; + // This void pointer is used by G4EventManager to maintain the + // link between pre-assigned decay products and corresponding + // primary particle. + public: + inline void SetPrimaryParticle(G4PrimaryParticle* p) {primaryParticle=p;} + inline G4PrimaryParticle* GetPrimaryParticle() const {return primaryParticle;} }; #include "G4DynamicParticle.icc" diff --git a/source/particles/management/include/G4DynamicParticle.icc b/source/particles/management/include/G4DynamicParticle.icc index 9e7c8532fd..1e9d0dc16f 100644 --- a/source/particles/management/include/G4DynamicParticle.icc +++ b/source/particles/management/include/G4DynamicParticle.icc @@ -22,7 +22,7 @@ // // // $Id: G4DynamicParticle.icc,v 1.8 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4DynamicParticleFastVector.hh b/source/particles/management/include/G4DynamicParticleFastVector.hh index 03f37d246e..e148f4b88c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ElectronOccupancy.hh b/source/particles/management/include/G4ElectronOccupancy.hh index 776737d8a5..867888ee49 100644 --- a/source/particles/management/include/G4ElectronOccupancy.hh +++ b/source/particles/management/include/G4ElectronOccupancy.hh @@ -22,7 +22,7 @@ // // // $Id: G4ElectronOccupancy.hh,v 1.5 2001/07/11 10:01:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4IonTable.hh b/source/particles/management/include/G4IonTable.hh index 1ad1d7c600..712c69068d 100644 --- a/source/particles/management/include/G4IonTable.hh +++ b/source/particles/management/include/G4IonTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4IonTable.hh,v 1.20 2003/06/16 16:58:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4Ions.hh b/source/particles/management/include/G4Ions.hh index fd96f94e7e..b3387bdf99 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4IsotopeProperty.hh b/source/particles/management/include/G4IsotopeProperty.hh index d835012ae2..7447e68ef6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4KL3DecayChannel.hh b/source/particles/management/include/G4KL3DecayChannel.hh index e37da96f2d..59f9450ad7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4MuonDecayChannel.hh b/source/particles/management/include/G4MuonDecayChannel.hh index c70871812f..8de9d07441 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NeutronBetaDecayChannel.hh b/source/particles/management/include/G4NeutronBetaDecayChannel.hh index c741595b83..cc7c4d867a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NucleiProperties.hh b/source/particles/management/include/G4NucleiProperties.hh index 94fa38a5d8..5fae609b27 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4NucleiPropertiesTable.hh b/source/particles/management/include/G4NucleiPropertiesTable.hh index 1e6e94f34c..02c77c4560 100644 --- a/source/particles/management/include/G4NucleiPropertiesTable.hh +++ b/source/particles/management/include/G4NucleiPropertiesTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTable.hh,v 1.10 2001/10/15 09:58:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2515c96ac5..6c24d1236b 100644 --- a/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh +++ b/source/particles/management/include/G4NucleiPropertiesTheoreticalTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTheoreticalTable.hh,v 1.5 2001/10/15 09:58:30 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4PDGCodeChecker.hh b/source/particles/management/include/G4PDGCodeChecker.hh index 594517b892..ade953dd5a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleDefinition.hh b/source/particles/management/include/G4ParticleDefinition.hh index 4a2e939fbf..0b784340e1 100644 --- a/source/particles/management/include/G4ParticleDefinition.hh +++ b/source/particles/management/include/G4ParticleDefinition.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleDefinition.hh,v 1.18.2.1 2003/06/16 17:18:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParticleDefinition.hh,v 1.21 2003/09/19 19:28:07 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -58,6 +58,7 @@ class G4ProcessManager; class G4DecayTable; class G4ParticleTable; class G4Material; +class G4ParticlePropertyTable; class G4ParticleDefinition { @@ -67,6 +68,8 @@ class G4ParticleDefinition // all the processes this kind of particle can undertake. // + friend class G4ParticlePropertyTable; + public: // With Description // Only one type of constructor can be used for G4ParticleDefinition. // If you want to create new particle, you must set name of the particle @@ -113,6 +116,7 @@ class G4ParticleDefinition // void SetApplyCutsFlag(G4bool flag); // virtual void RestoreCuts(const G4double* cutInLength, // const G4double* cutInEnergy ){} + // static void SetEnergyRange(G4double lowedge, G4double highedge); public: // With Description @@ -149,7 +153,7 @@ class G4ParticleDefinition G4int GetAntiQuarkContent(G4int flavor) const; // return the number of quark with flavor contained in this particle. // The value of flavor is assigned as follows - // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t, 7:l(down type quark) 8:h(up type quark) + // 1:d, 2:u, 3:s, 4:c, 5:b, 6:t public: // With Description // ShortLived flag @@ -275,14 +279,12 @@ class G4ParticleDefinition // The Particle Data Group integer identifier of the anti-particle protected: - enum {NumberOfQuarkFlavor = 8}; + enum {NumberOfQuarkFlavor = 6}; G4int theQuarkContent[NumberOfQuarkFlavor]; G4int theAntiQuarkContent[NumberOfQuarkFlavor]; // the number of quark (minus Sign means anti-quark) contents // The value of flavor is assigned as follows - // 0:d, 1:u, 2:s, 3:c, - // 4:b, 5:t, 6:l(down type quark) 7:h(up type quark) - + // 0:d, 1:u, 2:s, 3:c, 4:b, 5:t private: // Following members can be changed after construction @@ -338,8 +340,6 @@ class G4ParticleDefinition // Get an array of energy cuts for all materials G4double GetEnergyThreshold(const G4Material* ) const; // Get a energy cut for a material - - static void SetEnergyRange(G4double lowedge, G4double highedge); }; #include "G4ParticleDefinition.icc" diff --git a/source/particles/management/include/G4ParticleDefinition.icc b/source/particles/management/include/G4ParticleDefinition.icc index 262be70cb5..babc0eeebb 100644 --- a/source/particles/management/include/G4ParticleDefinition.icc +++ b/source/particles/management/include/G4ParticleDefinition.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleDefinition.icc,v 1.4 2003/04/11 11:48:39 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParticleDefinition.icc,v 1.6 2003/10/03 16:00:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // inline @@ -70,30 +70,36 @@ inline inline G4int G4ParticleDefinition::GetQuarkContent(G4int flavor) const -{ - if ((flavor>0) && (flavor0) && (flavor<=NumberOfQuarkFlavor)){ + content = theQuarkContent[flavor-1]; }else { +#ifdef G4VERBOSE if (verboseLevel >0) { G4cout << "Invalid Quark Flavor for G4ParticleDefinition::GetQuarkContent"; G4cout << ": flavor=" << flavor <0) && (flavor0) && (flavor<=NumberOfQuarkFlavor)){ + content = theAntiQuarkContent[flavor-1]; }else { +#ifdef G4VERBOSE if (verboseLevel >0) { G4cout <<"Invalid Quark Flavor for G4ParticleDefinition::GetAntiQuarkContent"; G4cout << ": flavor=" << flavor <0) && (flavor<=NumberOfQuarkFlavor)){ + return theQuarkContent[flavor-1]; + }else { + return 0; + } +} + +inline + G4int G4ParticlePropertyData::GetAntiQuarkContent(G4int flavor) const +{ + if ((flavor>0) && (flavor0) && (flavor<=NumberOfQuarkFlavor)){ + theQuarkContent[flavor-1] = newContent; + fQuarkContentModified = true; + } +} + +inline + void G4ParticlePropertyData::SetAntiQuarkContent(G4int flavor, G4int newContent) +{ + if ((flavor>0) && (flavor<=NumberOfQuarkFlavor)){ + theAntiQuarkContent[flavor-1] = newContent; + fAntiQuarkContentModified = true; + } +} + +inline + void G4ParticlePropertyData::SetPDGLifeTime(G4double newLifeTime) +{ + thePDGLifeTime = newLifeTime; + fPDGLifeTimeModified = true; +} + + + + + diff --git a/source/particles/management/include/G4ParticlePropertyMessenger.hh b/source/particles/management/include/G4ParticlePropertyMessenger.hh index f89c1430ab..1122eed316 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/include/G4ParticlePropertyTable.hh b/source/particles/management/include/G4ParticlePropertyTable.hh new file mode 100644 index 0000000000..a3ad20c4f7 --- /dev/null +++ b/source/particles/management/include/G4ParticlePropertyTable.hh @@ -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: G4ParticlePropertyTable.hh,v 1.3 2003/12/09 15:35:46 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// ------------------------------------------------------------ +// GEANT 4 class header file +// +// History: +// ---------------- G4ParticlePropertyTable ---------------- +// first implementation by H Kurashige 9 June 2003 +// ------------------------------------------------------------ + +#ifndef G4ParticlePropertyTable_h +#define G4ParticlePropertyTable_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include + +#include "G4ParticlePropertyData.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" + +class G4ParticlePropertyTable +{ + // Class Description + // This class manages properties of a particle which are + // properties in G4ParticlePropertyTable class. + // This class is a singleton. + + protected: + // hide default constructor because this class is a singleton + G4ParticlePropertyTable(); + G4ParticlePropertyTable(const G4ParticlePropertyTable &right); + + const G4ParticlePropertyTable & operator=(const G4ParticlePropertyTable &right); + + public: + G4int operator==(const G4ParticlePropertyTable &right) const; + G4int operator!=(const G4ParticlePropertyTable &right) const; + + public: + virtual ~G4ParticlePropertyTable(); + + public: //With Description + static G4ParticlePropertyTable* GetParticlePropertyTable(); + // return the pointer to G4ParticlePropertyTable object + // G4ParticlePropertyTable is a "singleton" and can get its pointer + // by this function. At the first time of calling this function, + // the G4ParticleTable object is instantiated + + G4ParticlePropertyData* GetParticleProperty(const G4String& aParticleName); + G4ParticlePropertyData* GetParticleProperty(const G4ParticleDefinition* aParticle); + // return the pointer to G4ParticlePropertyData object, + // which contains properties for the particle specified. + // (return 0 if the specified particle does not exist) + + G4bool SetParticleProperty(const G4ParticlePropertyData& newProperty); + // change particle properties for the particle specified. + // return true if properties are sucessfully set + + void Clear(); + // clear and destroy arrayDataObject + + public: + void SetVerboseLevel(G4int value); + G4int GetVerboseLevel() const; + // controle flag for output message + // 0: Silent + // 1: Warning message + // 2: More + + protected: + G4ParticleTable* fParticleTable; + + private: + G4int verboseLevel; + static G4ParticlePropertyTable* fgParticlePropertyTable; + + protected: + std::vector arrayDataObject; +}; + + +#endif + + + + + + + + + diff --git a/source/particles/management/include/G4ParticleTable.hh b/source/particles/management/include/G4ParticleTable.hh index 85da234657..2a4b743fa7 100644 --- a/source/particles/management/include/G4ParticleTable.hh +++ b/source/particles/management/include/G4ParticleTable.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTable.hh,v 1.16 2003/06/16 16:58:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTable.icc b/source/particles/management/include/G4ParticleTable.icc index c377cc45be..647479172f 100644 --- a/source/particles/management/include/G4ParticleTable.icc +++ b/source/particles/management/include/G4ParticleTable.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTable.icc,v 1.8 2001/07/11 10:01:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleTableIterator.hh b/source/particles/management/include/G4ParticleTableIterator.hh index 51d6fb188f..1c249cf291 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ParticleWithCuts.hh b/source/particles/management/include/G4ParticleWithCuts.hh index d276590768..5dab920392 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------- diff --git a/source/particles/management/include/G4PhaseSpaceDecayChannel.hh b/source/particles/management/include/G4PhaseSpaceDecayChannel.hh index 06ab54eefe..d8408ae72c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4ShortLivedTable.hh b/source/particles/management/include/G4ShortLivedTable.hh index 4f11af7dde..c698b83020 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4TauLeptonicDecayChannel.hh b/source/particles/management/include/G4TauLeptonicDecayChannel.hh index 817576719f..bca99b67f6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4VDecayChannel.hh b/source/particles/management/include/G4VDecayChannel.hh index 9ecb527106..172a77d9a2 100644 --- a/source/particles/management/include/G4VDecayChannel.hh +++ b/source/particles/management/include/G4VDecayChannel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VDecayChannel.hh,v 1.10 2002/11/20 15:05:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/include/G4VIsotopeTable.hh b/source/particles/management/include/G4VIsotopeTable.hh index 602cfcec3a..8829f219f6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DalitzDecayChannel.cc b/source/particles/management/src/G4DalitzDecayChannel.cc index 777770565d..4a2d94f8ca 100644 --- a/source/particles/management/src/G4DalitzDecayChannel.cc +++ b/source/particles/management/src/G4DalitzDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4DalitzDecayChannel.cc,v 1.5 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayProducts.cc b/source/particles/management/src/G4DecayProducts.cc index 5304e3e37a..39a9b6cede 100644 --- a/source/particles/management/src/G4DecayProducts.cc +++ b/source/particles/management/src/G4DecayProducts.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DecayProducts.cc,v 1.9 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DecayProducts.cc,v 1.10 2003/09/12 19:21:07 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -67,11 +67,14 @@ G4DecayProducts::G4DecayProducts(const G4DecayProducts &right) { G4DynamicParticle* daughter = right.theProductVector[index]; const G4DecayProducts* pPreAssigned = daughter->GetPreAssignedDecayProducts(); + G4double properTime = daughter->GetPreAssignedDecayProperTime(); G4DynamicParticle* pDaughter = new G4DynamicParticle(*daughter); if (pPreAssigned) { G4DecayProducts* pPA = new G4DecayProducts(*pPreAssigned); pDaughter->SetPreAssignedDecayProducts(pPA); + if(properTime>0.0) + { pDaughter->SetPreAssignedDecayProperTime(properTime); } } PushProducts( pDaughter ); diff --git a/source/particles/management/src/G4DecayTable.cc b/source/particles/management/src/G4DecayTable.cc index 635425c4d7..121ea09777 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4DecayTableMessenger.cc b/source/particles/management/src/G4DecayTableMessenger.cc index 1d87cdaf62..eab083f967 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4DynamicParticle.cc b/source/particles/management/src/G4DynamicParticle.cc index 361712b8e9..b9a2bffe5a 100644 --- a/source/particles/management/src/G4DynamicParticle.cc +++ b/source/particles/management/src/G4DynamicParticle.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DynamicParticle.cc,v 1.15 2003/06/18 16:55:12 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DynamicParticle.cc,v 1.17 2003/08/22 00:03:15 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -76,7 +76,8 @@ G4DynamicParticle::G4DynamicParticle(): theProperTime(0.0), thePreAssignedDecayProducts(0), thePreAssignedDecayTime(-1.0), - verboseLevel(1) + verboseLevel(1), + primaryParticle(0) { theDynamicalMass = 0.0; theDynamicalCharge= 0.0; @@ -95,7 +96,8 @@ G4DynamicParticle::G4DynamicParticle(G4ParticleDefinition * aParticleDefinition, theProperTime(0.0), thePreAssignedDecayProducts(0), thePreAssignedDecayTime(-1.0), - verboseLevel(1) + verboseLevel(1), + primaryParticle(0) { // set dynamic charge/mass theDynamicalMass = aParticleDefinition->GetPDGMass(); @@ -110,7 +112,8 @@ G4DynamicParticle::G4DynamicParticle(G4ParticleDefinition * aParticleDefinition, theProperTime(0.0), thePreAssignedDecayProducts(0), thePreAssignedDecayTime(-1.0), - verboseLevel(1) + verboseLevel(1), + primaryParticle(0) { // set dynamic charge/mass theDynamicalMass = aParticleDefinition->GetPDGMass(); @@ -139,7 +142,8 @@ G4DynamicParticle::G4DynamicParticle(G4ParticleDefinition * aParticleDefinition, theProperTime(0.0), thePreAssignedDecayProducts(0), thePreAssignedDecayTime(-1.0), - verboseLevel(1) + verboseLevel(1), + primaryParticle(0) { // set dynamic charge/mass theDynamicalMass = aParticleDefinition->GetPDGMass(); @@ -178,7 +182,8 @@ G4DynamicParticle::G4DynamicParticle(G4ParticleDefinition * aParticleDefinition, theProperTime(0.0), thePreAssignedDecayProducts(0), thePreAssignedDecayTime(-1.0), - verboseLevel(1) + verboseLevel(1), + primaryParticle(0) { // set dynamic charge/mass theDynamicalMass = aParticleDefinition->GetPDGMass(); @@ -232,6 +237,7 @@ G4DynamicParticle::G4DynamicParticle(const G4DynamicParticle &right) thePreAssignedDecayProducts = 0; thePreAssignedDecayTime = -1.0; + primaryParticle = right.primaryParticle; } //////////////////// @@ -256,6 +262,7 @@ G4DynamicParticle & G4DynamicParticle::operator=(const G4DynamicParticle &right) if (this != &right) { theDynamicalMass = right.theDynamicalMass; theDynamicalCharge = right.theDynamicalCharge; + if (theElectronOccupancy != 0) delete theElectronOccupancy; if (right.theElectronOccupancy != 0){ theElectronOccupancy = new G4ElectronOccupancy(*right.theElectronOccupancy); diff --git a/source/particles/management/src/G4ElectronOccupancy.cc b/source/particles/management/src/G4ElectronOccupancy.cc index ff6cf9c2e2..0c9e93a77e 100644 --- a/source/particles/management/src/G4ElectronOccupancy.cc +++ b/source/particles/management/src/G4ElectronOccupancy.cc @@ -22,7 +22,7 @@ // // // $Id: G4ElectronOccupancy.cc,v 1.6 2001/07/11 10:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4IonTable.cc b/source/particles/management/src/G4IonTable.cc index 98c5630c28..1d1de764f3 100644 --- a/source/particles/management/src/G4IonTable.cc +++ b/source/particles/management/src/G4IonTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4IonTable.cc,v 1.35 2003/06/16 16:58:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4Ions.cc b/source/particles/management/src/G4Ions.cc index cabbec00ff..bf62750f40 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4IsotopeProperty.cc b/source/particles/management/src/G4IsotopeProperty.cc index 8c2b1a0552..94f253ba38 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4KL3DecayChannel.cc b/source/particles/management/src/G4KL3DecayChannel.cc index f29aba86e2..8bbdc506ce 100644 --- a/source/particles/management/src/G4KL3DecayChannel.cc +++ b/source/particles/management/src/G4KL3DecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4KL3DecayChannel.cc,v 1.5 2001/07/11 10:02:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4MuonDecayChannel.cc b/source/particles/management/src/G4MuonDecayChannel.cc index 6522a8f5eb..0ae4840aa0 100644 --- a/source/particles/management/src/G4MuonDecayChannel.cc +++ b/source/particles/management/src/G4MuonDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4MuonDecayChannel.cc,v 1.9 2001/07/11 10:02:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NeutronBetaDecayChannel.cc b/source/particles/management/src/G4NeutronBetaDecayChannel.cc index ba145097c0..2e2c306b3a 100644 --- a/source/particles/management/src/G4NeutronBetaDecayChannel.cc +++ b/source/particles/management/src/G4NeutronBetaDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4NeutronBetaDecayChannel.cc,v 1.4 2002/04/03 09:05:33 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NucleiProperties.cc b/source/particles/management/src/G4NucleiProperties.cc index 78334f4126..4589d5a05c 100644 --- a/source/particles/management/src/G4NucleiProperties.cc +++ b/source/particles/management/src/G4NucleiProperties.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiProperties.cc,v 1.10 2002/05/30 02:13:10 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4NucleiPropertiesTableA.cc b/source/particles/management/src/G4NucleiPropertiesTableA.cc index 99cebd7298..8a4d5724a6 100644 --- a/source/particles/management/src/G4NucleiPropertiesTableA.cc +++ b/source/particles/management/src/G4NucleiPropertiesTableA.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTableA.cc,v 1.7 2001/10/15 09:58:34 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b0144c0d63..df3ac06516 100644 --- a/source/particles/management/src/G4NucleiPropertiesTableB.cc +++ b/source/particles/management/src/G4NucleiPropertiesTableB.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTableB.cc,v 1.7 2001/10/15 09:58:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc b/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc index 2a65dd89b0..fa0ecb1e68 100644 --- a/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc +++ b/source/particles/management/src/G4NucleiPropertiesTheoreticalTableA.cc @@ -22,7 +22,7 @@ // // // $Id: G4NucleiPropertiesTheoreticalTableA.cc,v 1.5 2003/05/19 17:10:25 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4PDGCodeChecker.cc b/source/particles/management/src/G4PDGCodeChecker.cc index 64a666a0f1..e567546e25 100644 --- a/source/particles/management/src/G4PDGCodeChecker.cc +++ b/source/particles/management/src/G4PDGCodeChecker.cc @@ -22,7 +22,7 @@ // // // $Id: G4PDGCodeChecker.cc,v 1.6 2003/06/16 16:58:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticleDefinition.cc b/source/particles/management/src/G4ParticleDefinition.cc index 2e0b2a1d07..195726e5b1 100644 --- a/source/particles/management/src/G4ParticleDefinition.cc +++ b/source/particles/management/src/G4ParticleDefinition.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleDefinition.cc,v 1.17.2.1 2003/06/16 17:18:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParticleDefinition.cc,v 1.20 2003/09/19 18:44:05 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -159,7 +159,7 @@ G4int G4ParticleDefinition::FillQuarkContents() // this->thePDGEncoding. { G4int flavor; - for (flavor= 0; flavorGetDefaultProductionCuts(); - defaultCuts->SetProductionCut(aCut,this); -} - -void G4ParticleDefinition::SetRangeCut(G4double aCut, const G4Material*) -{ - G4cerr << "Warning : you invoked G4ParticleDefinition::SetRangeCut." << G4endl; - G4cerr << " This method is obsolete and will be removed soon." << G4endl; - G4cerr << " Use G4ProductionCuts class." << G4endl; - - G4ProductionCuts* defaultCuts - = G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts(); - defaultCuts->SetProductionCut(aCut,this); -} - -void G4ParticleDefinition::SetRangeCutVector(std::vector& vec) -{ - G4cerr << "Warning : you invoked G4ParticleDefinition::SetRangeCutVector." << G4endl; - G4cerr << " This method is obsolete and will be removed soon." << G4endl; - G4cerr << " Use G4ProductionCuts class." << G4endl; - - G4ProductionCuts* defaultCuts - = G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts(); - defaultCuts->SetProductionCut(vec[0],this); -} - -G4double* G4ParticleDefinition::GetLengthCuts() const -{ - G4cerr << "Warning : you invoked G4ParticleDefinition::GetLengthCuts." << G4endl; - G4cerr << " This method is obsolete and will be removed soon." << G4endl; - G4cerr << " Use G4ProductionCuts class." << G4endl; - - G4int idx = G4ProductionCuts::GetIndex(this); - if(idx<0) return NULL; - return G4ProductionCutsTable::GetProductionCutsTable()->GetRangeCutsDoubleVector(idx); -} - -G4double G4ParticleDefinition::GetRangeThreshold(const G4Material* aMat) const -{ - G4cerr << "Warning : you invoked G4ParticleDefinition::GetLengthThreshold." << G4endl; - G4cerr << " This method is obsolete and will be removed soon." << G4endl; - G4cerr << " Use G4ProductionCuts class." << G4endl; - - G4int idx = G4ProductionCuts::GetIndex(this); - if(idx<0) return -1.; - G4ProductionCuts* defaultCuts - = G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts(); - const G4MaterialCutsCouple* materialCutsCouple - = G4ProductionCutsTable::GetProductionCutsTable()->GetMaterialCutsCouple(aMat,defaultCuts); - if(materialCutsCouple==NULL) return -1.; - G4double* vec - = G4ProductionCutsTable::GetProductionCutsTable()->GetRangeCutsDoubleVector(idx); - return vec[materialCutsCouple->GetIndex()]; -} - -G4double* G4ParticleDefinition::GetEnergyCuts() const -{ - G4cerr << "Warning : you invoked G4ParticleDefinition::GetEnergyCuts." << G4endl; - G4cerr << " This method is obsolete and will be removed soon." << G4endl; - G4cerr << " Use G4ProductionCuts class." << G4endl; - - G4int idx = G4ProductionCuts::GetIndex(this); - if(idx<0) return NULL; - return G4ProductionCutsTable::GetProductionCutsTable()->GetEnergyCutsDoubleVector(idx); -} - -G4double G4ParticleDefinition::GetEnergyThreshold(const G4Material* aMat) const -{ - G4cerr << "Warning : you invoked G4ParticleDefinition::GetEnergyThreshold." << G4endl; - G4cerr << " This method is obsolete and will be removed soon." << G4endl; - G4cerr << " Use G4ProductionCuts class." << G4endl; - - G4int idx = G4ProductionCuts::GetIndex(this); - if(idx<0) return -1.; - G4ProductionCuts* defaultCuts - = G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts(); - const G4MaterialCutsCouple* materialCutsCouple - = G4ProductionCutsTable::GetProductionCutsTable()->GetMaterialCutsCouple(aMat,defaultCuts); - if(materialCutsCouple==NULL) return -1.; - G4double* vec - = G4ProductionCutsTable::GetProductionCutsTable()->GetEnergyCutsDoubleVector(idx); - return vec[materialCutsCouple->GetIndex()]; -} - -#include "G4VRangeToEnergyConverter.hh" - -void G4ParticleDefinition::SetEnergyRange(G4double lowedge, G4double highedge) -{ - G4VRangeToEnergyConverter::SetEnergyRange(lowedge, highedge); -} - - - diff --git a/source/particles/management/src/G4ParticleMessenger.cc b/source/particles/management/src/G4ParticleMessenger.cc index d8ab00b501..1ca6ba1612 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticlePropertyData.cc b/source/particles/management/src/G4ParticlePropertyData.cc new file mode 100644 index 0000000000..a5a41d10e2 --- /dev/null +++ b/source/particles/management/src/G4ParticlePropertyData.cc @@ -0,0 +1,225 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4ParticlePropertyData.cc,v 1.1 2003/06/11 07:20:06 kurasige Exp $ +// +// class G4ParticlePropertyData +// +// Implementation +// +// History: +// first implementation by H Kurashige 9 June 2003 + +#include "G4ios.hh" +#include "globals.hh" +#include "G4ParticlePropertyData.hh" + + +///////////////////////////////////////////////////////////// +G4ParticlePropertyData::~G4ParticlePropertyData() +{ +} + +///////////////////////////////////////////////////////////// +G4ParticlePropertyData::G4ParticlePropertyData(const G4String& particleName): + theParticleName(particleName), + thePDGMass(0.0), + thePDGWidth(0.0), + thePDGCharge(0.0), + thePDGiSpin(0), + thePDGiParity(0), + thePDGiConjugation(0), + thePDGiGParity(0), + thePDGiIsospin(0), + thePDGiIsospin3(0), + theLeptonNumber(0), + theBaryonNumber(0), + thePDGEncoding(0), + theAntiPDGEncoding(0), + fPDGMassModified(false), + fPDGWidthModified(false), + fPDGChargeModified(false), + fPDGiSpinModified(false), + fPDGiParityModified(false), + fPDGiConjugationModified(false), + fPDGiGParityModified(false), + fPDGiIsospinModified(false), + fPDGiIsospin3Modified(false), + fPDGIsospinModified(false), + fPDGIsospin3Modified(false), + fLeptonNumberModified(false), + fBaryonNumberModified(false), + fPDGEncodingModified(false), + fAntiPDGEncodingModified(false), + fQuarkContentModified(false), + fAntiQuarkContentModified(false), + fPDGLifeTimeModified(false), + verboseLevel(1) +{ + for (size_t flv=0; flvGetAntiPDGEncoding() << "]"<< G4endl; + G4cout << " Mass [GeV/c2] : " << thePDGMass/GeV ; + G4cout << " Width : " << thePDGWidth/GeV << G4endl; + G4cout << " Lifetime [nsec] : " << thePDGLifeTime/ns << G4endl; + G4cout << " Charge [e]: " << thePDGCharge/eplus << G4endl; + G4cout << " Spin : " << thePDGiSpin << "/2" << G4endl; + G4cout << " Parity : " << thePDGiParity << G4endl; + G4cout << " Charge conjugation : " << thePDGiConjugation << G4endl; + G4cout << " Isospin : (I,Iz): (" << thePDGiIsospin <<"/2"; + G4cout << " , " << thePDGiIsospin3 << "/2 ) " << G4endl; + G4cout << " GParity : " << thePDGiGParity << G4endl; + G4cout << " Lepton number : " << theLeptonNumber; + G4cout << " Baryon number : " << theBaryonNumber << G4endl; + G4cout << " Quark contents (d,u,s,c,b,t) : " << theQuarkContent[0]; + G4cout << ", " << theQuarkContent[1]; + G4cout << ", " << theQuarkContent[2]; + G4cout << ", " << theQuarkContent[3]; + G4cout << ", " << theQuarkContent[4]; + G4cout << ", " << theQuarkContent[5] << G4endl; + G4cout << " AntiQuark contents : " << theAntiQuarkContent[0]; + G4cout << ", " << theAntiQuarkContent[1]; + G4cout << ", " << theAntiQuarkContent[2]; + G4cout << ", " << theAntiQuarkContent[3]; + G4cout << ", " << theAntiQuarkContent[4]; + G4cout << ", " << theAntiQuarkContent[5] << G4endl; +} + + + + + + + + + diff --git a/source/particles/management/src/G4ParticlePropertyMessenger.cc b/source/particles/management/src/G4ParticlePropertyMessenger.cc index 3883a07e3c..57379c299c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/particles/management/src/G4ParticlePropertyTable.cc b/source/particles/management/src/G4ParticlePropertyTable.cc new file mode 100644 index 0000000000..aee553129c --- /dev/null +++ b/source/particles/management/src/G4ParticlePropertyTable.cc @@ -0,0 +1,231 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4ParticlePropertyTable.cc,v 1.2 2003/10/03 16:03:30 gcosmo Exp $ +// +// class G4ParticlePropertyTable +// +// Implementation +// +// History: +// first implementation by H Kurashige 9 June 2003 + +#include "G4ios.hh" +#include "globals.hh" +#include "G4StateManager.hh" +#include "G4ParticleTable.hh" +#include "G4ParticlePropertyTable.hh" + +// Static class variable: ptr to single instance of class +G4ParticlePropertyTable* G4ParticlePropertyTable::fgParticlePropertyTable =0; + +//////////////////// +G4ParticlePropertyTable* G4ParticlePropertyTable::GetParticlePropertyTable() +{ + static G4ParticlePropertyTable theParticlePropertyTable; + if (!fgParticlePropertyTable){ + fgParticlePropertyTable = &theParticlePropertyTable; + } + return fgParticlePropertyTable; +} + +///////////////////////////////////////////////////////////// +G4ParticlePropertyTable::~G4ParticlePropertyTable() +{ + for (size_t idx=0; idxFindParticle(aParticleName); + if (aParticle ==0 ) return 0; + + return GetParticleProperty(aParticle); +} + +////////////////////////////////////// +G4ParticlePropertyData* G4ParticlePropertyTable::GetParticleProperty(const G4ParticleDefinition* aParticle) +{ + if (aParticle ==0 ) return 0; + G4ParticlePropertyData* pData = new G4ParticlePropertyData(aParticle->GetParticleName()); + pData->thePDGMass = aParticle->GetPDGMass(); + pData->thePDGWidth = aParticle->GetPDGWidth(); + pData->thePDGCharge = aParticle->GetPDGCharge(); + pData->thePDGiSpin = aParticle->GetPDGiSpin(); + pData->thePDGiParity = aParticle->GetPDGiParity(); + pData->thePDGiConjugation = aParticle->GetPDGiConjugation(); + pData->thePDGiGParity = aParticle->GetPDGiGParity(); + pData->thePDGiIsospin = aParticle->GetPDGiIsospin(); + pData->thePDGiIsospin3 = aParticle->GetPDGiIsospin3(); + pData->theLeptonNumber = aParticle->GetLeptonNumber(); + pData->theBaryonNumber = aParticle->GetBaryonNumber(); + pData->thePDGEncoding = aParticle->GetPDGEncoding(); + pData->theAntiPDGEncoding = aParticle->GetAntiPDGEncoding(); + pData->thePDGLifeTime = aParticle->GetPDGLifeTime(); + for (size_t flv=0; flvtheQuarkContent[flv] = aParticle->theQuarkContent[flv]; + pData->theAntiQuarkContent[flv] = aParticle->theAntiQuarkContent[flv]; + } + + arrayDataObject.push_back(pData); + + return pData; +} + +////////////////////////// +G4bool G4ParticlePropertyTable::SetParticleProperty(const G4ParticlePropertyData& pData) +{ + G4StateManager* pStateMan = G4StateManager::GetStateManager(); + if (pStateMan->GetCurrentState() != G4State_PreInit){ +#ifdef G4VERBOSE + if (verboseLevel>0){ + G4cout << "G4ParticlePropertyTable::GetParticleProperty() "; + G4cout << " for " << pData.theParticleName << G4endl; + G4cout << " Particle properties can be modified only in Pre_Init state"; + G4cout << G4endl; + } +#endif + return false; + } + + G4ParticleDefinition* aParticle = fParticleTable->FindParticle(pData.theParticleName); + if (aParticle ==0 ) { +#ifdef G4VERBOSE + if (verboseLevel>1){ + G4cout << "G4ParticlePropertyTable::GetParticleProperty() "; + G4cout << " for " << pData.theParticleName << G4endl; + G4cout << " Particle does not exist" << G4endl; + } +#endif + return false; + } + + if (pData.fPDGMassModified) { + aParticle->thePDGMass = pData.thePDGMass; + } + if (pData.fPDGWidthModified) { + aParticle->thePDGMass = pData.thePDGMass; + } + if (pData.fPDGChargeModified) { + aParticle->thePDGCharge = pData.thePDGCharge; + } + if (pData.fPDGiSpinModified) { + aParticle->thePDGiSpin = pData.thePDGiSpin; + aParticle->thePDGSpin = 0.5*pData.thePDGiSpin; + } + if (pData.fPDGiParityModified) { + aParticle->thePDGiParity = pData.thePDGiParity; + } + if (pData.fPDGiConjugationModified) { + aParticle->thePDGiConjugation = pData.thePDGiConjugation; + } + if (pData.fPDGiGParityModified) { + aParticle->thePDGiGParity = pData.thePDGiGParity; + } + if (pData.fPDGiIsospinModified) { + aParticle->thePDGiIsospin = pData.thePDGiIsospin; + aParticle->thePDGIsospin = 0.5*pData.thePDGiIsospin; + } + if (pData.fPDGiIsospin3Modified) { + aParticle->thePDGiIsospin3 = pData.thePDGiIsospin3; + aParticle->thePDGIsospin3 = 0.5*pData.thePDGiIsospin3; + } + if (pData.fLeptonNumberModified) { + aParticle->theLeptonNumber = pData.theLeptonNumber; + } + if (pData.fBaryonNumberModified) { + aParticle->theBaryonNumber = pData.theBaryonNumber; + } + if (pData.fPDGEncodingModified) { + aParticle->thePDGEncoding = pData.thePDGEncoding; + } + if (pData.fAntiPDGEncodingModified) { + aParticle->theAntiPDGEncoding = pData.theAntiPDGEncoding; + } + if (pData.fPDGLifeTimeModified) { + aParticle->thePDGLifeTime = pData.thePDGLifeTime; + } + for (size_t flv=0; flv<theQuarkContent[flv] = pData.theQuarkContent[flv]; + } + if (pData.fAntiQuarkContentModified){ + aParticle->theAntiQuarkContent[flv] = pData.theAntiQuarkContent[flv]; + } + } + + return true; +} + + + + + + diff --git a/source/particles/management/src/G4ParticleTable.cc b/source/particles/management/src/G4ParticleTable.cc index 6778389319..3d8388a7f0 100644 --- a/source/particles/management/src/G4ParticleTable.cc +++ b/source/particles/management/src/G4ParticleTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleTable.cc,v 1.19 2003/05/19 17:10:26 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // class G4ParticleTable // diff --git a/source/particles/management/src/G4PhaseSpaceDecayChannel.cc b/source/particles/management/src/G4PhaseSpaceDecayChannel.cc index a974a6caa3..4d4eac56b1 100644 --- a/source/particles/management/src/G4PhaseSpaceDecayChannel.cc +++ b/source/particles/management/src/G4PhaseSpaceDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhaseSpaceDecayChannel.cc,v 1.7 2001/10/15 09:58:36 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4ShortLivedTable.cc b/source/particles/management/src/G4ShortLivedTable.cc index cfe3505b45..6edc630360 100644 --- a/source/particles/management/src/G4ShortLivedTable.cc +++ b/source/particles/management/src/G4ShortLivedTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShortLivedTable.cc,v 1.11 2003/06/16 16:58:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/management/src/G4TauLeptonicDecayChannel.cc b/source/particles/management/src/G4TauLeptonicDecayChannel.cc index d1df666f53..9a72e843bc 100644 --- a/source/particles/management/src/G4TauLeptonicDecayChannel.cc +++ b/source/particles/management/src/G4TauLeptonicDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4TauLeptonicDecayChannel.cc,v 1.2 2002/03/28 10:56:09 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/management/src/G4VDecayChannel.cc b/source/particles/management/src/G4VDecayChannel.cc index 83b1ec286c..e0127535b5 100644 --- a/source/particles/management/src/G4VDecayChannel.cc +++ b/source/particles/management/src/G4VDecayChannel.cc @@ -22,7 +22,7 @@ // // // $Id: G4VDecayChannel.cc,v 1.15 2002/11/20 15:05:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4DiQuarks.hh b/source/particles/shortlived/include/G4DiQuarks.hh index cc14ab749c..eee0e702f5 100644 --- a/source/particles/shortlived/include/G4DiQuarks.hh +++ b/source/particles/shortlived/include/G4DiQuarks.hh @@ -22,7 +22,7 @@ // // // $Id: G4DiQuarks.hh,v 1.4 2001/07/11 10:02:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh b/source/particles/shortlived/include/G4ExcitedBaryonConstructor.hh index 18371879b3..5f4de66a69 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedBaryons.hh b/source/particles/shortlived/include/G4ExcitedBaryons.hh index 087a8414cf..98b36755b4 100644 --- a/source/particles/shortlived/include/G4ExcitedBaryons.hh +++ b/source/particles/shortlived/include/G4ExcitedBaryons.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedBaryons.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh b/source/particles/shortlived/include/G4ExcitedDeltaConstructor.hh index 3d3a1383d8..4e9d0016fd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh b/source/particles/shortlived/include/G4ExcitedLambdaConstructor.hh index 01ad67a2ce..6b42af9b64 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh b/source/particles/shortlived/include/G4ExcitedMesonConstructor.hh index ef5d556abc..2653f089ea 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedMesons.hh b/source/particles/shortlived/include/G4ExcitedMesons.hh index abecfdc1d5..802c49f4c4 100644 --- a/source/particles/shortlived/include/G4ExcitedMesons.hh +++ b/source/particles/shortlived/include/G4ExcitedMesons.hh @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedMesons.hh,v 1.5 2001/07/11 10:02:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh b/source/particles/shortlived/include/G4ExcitedNucleonConstructor.hh index 238f393661..4ff5433dcd 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh b/source/particles/shortlived/include/G4ExcitedSigmaConstructor.hh index a1729862b8..d119947444 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4ExcitedXiConstructor.hh b/source/particles/shortlived/include/G4ExcitedXiConstructor.hh index 605f70779f..5f6cd93ec6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4Gluons.hh b/source/particles/shortlived/include/G4Gluons.hh index f103dfeb47..dc328db2c7 100644 --- a/source/particles/shortlived/include/G4Gluons.hh +++ b/source/particles/shortlived/include/G4Gluons.hh @@ -22,7 +22,7 @@ // // // $Id: G4Gluons.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4Quarks.hh b/source/particles/shortlived/include/G4Quarks.hh index 90917f7850..970df0ae30 100644 --- a/source/particles/shortlived/include/G4Quarks.hh +++ b/source/particles/shortlived/include/G4Quarks.hh @@ -22,7 +22,7 @@ // // // $Id: G4Quarks.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/include/G4ShortLivedConstructor.hh b/source/particles/shortlived/include/G4ShortLivedConstructor.hh index b16f8e9e4f..af89cd14d7 100644 --- a/source/particles/shortlived/include/G4ShortLivedConstructor.hh +++ b/source/particles/shortlived/include/G4ShortLivedConstructor.hh @@ -22,7 +22,7 @@ // // // $Id: G4ShortLivedConstructor.hh,v 1.4 2001/07/11 10:02:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/include/G4VShortLivedParticle.hh b/source/particles/shortlived/include/G4VShortLivedParticle.hh index 58445ea0fa..021f34a730 100644 --- a/source/particles/shortlived/include/G4VShortLivedParticle.hh +++ b/source/particles/shortlived/include/G4VShortLivedParticle.hh @@ -22,7 +22,7 @@ // // // $Id: G4VShortLivedParticle.hh,v 1.6 2003/03/10 08:43:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/particles/shortlived/src/G4DiQuarks.cc b/source/particles/shortlived/src/G4DiQuarks.cc index eac0261f58..fe179f7c93 100644 --- a/source/particles/shortlived/src/G4DiQuarks.cc +++ b/source/particles/shortlived/src/G4DiQuarks.cc @@ -22,7 +22,7 @@ // // // $Id: G4DiQuarks.cc,v 1.5 2003/06/16 16:58:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc b/source/particles/shortlived/src/G4ExcitedBaryonConstructor.cc index 784b4e9e24..aa70aaf9b1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedBaryons.cc b/source/particles/shortlived/src/G4ExcitedBaryons.cc index e93ceffe5a..5f5bcadffe 100644 --- a/source/particles/shortlived/src/G4ExcitedBaryons.cc +++ b/source/particles/shortlived/src/G4ExcitedBaryons.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedBaryons.cc,v 1.5 2003/06/16 16:58:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc b/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc index f0d15d5cd9..cf5b5d1f21 100644 --- a/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedDeltaConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedDeltaConstructor.cc,v 1.7 2002/11/19 11:49:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc b/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc index 11c58304a9..932aee8f1c 100644 --- a/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedLambdaConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedLambdaConstructor.cc,v 1.7 2003/05/20 10:05:35 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc b/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc index 1f14d5586a..f6595dd511 100644 --- a/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedMesonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedMesonConstructor.cc,v 1.13 2003/05/20 10:05:37 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedMesons.cc b/source/particles/shortlived/src/G4ExcitedMesons.cc index d63aa50b86..caca7bc1e8 100644 --- a/source/particles/shortlived/src/G4ExcitedMesons.cc +++ b/source/particles/shortlived/src/G4ExcitedMesons.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedMesons.cc,v 1.5 2003/06/16 16:58:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc b/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc index 642b215d2c..fbbb139d23 100644 --- a/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedNucleonConstructor.cc @@ -22,7 +22,7 @@ // // // $Id: G4ExcitedNucleonConstructor.cc,v 1.6 2002/11/19 11:49:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc b/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc index bd7b798239..f83ea0d280 100644 --- a/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc +++ b/source/particles/shortlived/src/G4ExcitedSigmaConstructor.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExcitedSigmaConstructor.cc,v 1.7 2002/11/19 11:49:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ExcitedSigmaConstructor.cc,v 1.8 2003/06/20 00:40:04 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -312,11 +312,12 @@ G4DecayTable* G4ExcitedSigmaConstructor::AddNKStarMode( } if (fAnti) daughterN = "anti_" + daughterN; // create decay channel [parent BR #daughters] - mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2, + if (r>0.) { + mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2, daughterN,daughterK); - // add decay table - decayTable->Insert(mode); - + // add decay table + decayTable->Insert(mode); + } return decayTable; } diff --git a/source/particles/shortlived/src/G4ExcitedXiConstructor.cc b/source/particles/shortlived/src/G4ExcitedXiConstructor.cc index 5850c39396..195d296f21 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4Gluons.cc b/source/particles/shortlived/src/G4Gluons.cc index c331e39e14..0991d3c4a4 100644 --- a/source/particles/shortlived/src/G4Gluons.cc +++ b/source/particles/shortlived/src/G4Gluons.cc @@ -22,7 +22,7 @@ // // // $Id: G4Gluons.cc,v 1.5 2003/06/16 16:58:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4Quarks.cc b/source/particles/shortlived/src/G4Quarks.cc index bead061ec3..4152159d83 100644 --- a/source/particles/shortlived/src/G4Quarks.cc +++ b/source/particles/shortlived/src/G4Quarks.cc @@ -22,7 +22,7 @@ // // // $Id: G4Quarks.cc,v 1.5 2003/06/16 16:58:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------------------------------------------------------------- diff --git a/source/particles/shortlived/src/G4ShortLivedConstructor.cc b/source/particles/shortlived/src/G4ShortLivedConstructor.cc index 1f74e18ba5..d573dbd1fd 100644 --- a/source/particles/shortlived/src/G4ShortLivedConstructor.cc +++ b/source/particles/shortlived/src/G4ShortLivedConstructor.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShortLivedConstructor.cc,v 1.10 2002/11/19 11:49:24 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ShortLivedConstructor.cc,v 1.11 2003/09/21 19:27:55 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -82,6 +82,7 @@ void G4ShortLivedConstructor::ConstructQuarks() 0, 0, 0, "gluons", 0, 0, 21, true, -1.0, NULL); + particle->SetAntiPDGEncoding(21); // u-quark particle = new G4Quarks( "u_quark", 8.0*MeV, 0.0*MeV, 2./3.*eplus, diff --git a/source/particles/shortlived/src/G4VShortLivedParticle.cc b/source/particles/shortlived/src/G4VShortLivedParticle.cc index f84ef0807f..6acb6db82d 100644 --- a/source/particles/shortlived/src/G4VShortLivedParticle.cc +++ b/source/particles/shortlived/src/G4VShortLivedParticle.cc @@ -22,7 +22,7 @@ // // // $Id: G4VShortLivedParticle.cc,v 1.6 2003/03/10 08:43:56 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/particles/utils/GNUmakefile b/source/particles/utils/GNUmakefile new file mode 100644 index 0000000000..7f63cac969 --- /dev/null +++ b/source/particles/utils/GNUmakefile @@ -0,0 +1,24 @@ +# $Id: GNUmakefile,v 1.1 2003/09/21 19:38:49 kurasige Exp $ +# ---------------------------------------------------------------- +# GNUmakefile for particle management library. G.Cosmo, 4/4/97. +# ---------------------------------------------------------------- + +name := G4partutils + +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)/intercoms/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/materials/include \ + -I$(G4BASE)/particles/management/include + + +include $(G4INSTALL)/config/common.gmk diff --git a/source/particles/utils/include/G4HtmlPPReporter.hh b/source/particles/utils/include/G4HtmlPPReporter.hh new file mode 100644 index 0000000000..6c0d937b14 --- /dev/null +++ b/source/particles/utils/include/G4HtmlPPReporter.hh @@ -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. * +// ******************************************************************** +// +// the GEANT4 collaboration. +// +// By copying, distributing or modifying the Program (or any work +// based on the Program) you indicate your acceptance of this statement, +// and all its terms. +// +// $Id: G4HtmlPPReporter.hh,v 1.1 2003/09/21 19:38:49 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// --------------------------------------------------------------- +#ifndef G4HtmlPPReporter_h +#define G4HtmlPPReporter_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include + +#include "G4VParticlePropertyReporter.hh" + +class G4HtmlPPReporter: public G4VParticlePropertyReporter +{ + public: + //constructors + G4HtmlPPReporter(); + + //destructor + virtual ~G4HtmlPPReporter(); + + public: + virtual void Print(const G4String& option=""); + + private: + void SparseOption(const G4String& option); + void GenerateIndex(); + void GeneratePropertyTable(G4ParticleDefinition* ); + + void PrintHeader(std::ofstream& ); + void PrintFooter(std::ofstream& ); + + + private: + static const char *sTABLE, *eTABLE; + static const char *sTR, *eTR; + static const char *sTD, *eTD; + static const char *sB, *eB; + static const char *sLFONT, *eLFONT; + static const char *sSYMBOL, *eSYMBOL; + static const char *sSUP, *eSUP; + static const char *sSUB, *eSUB; + + private: + G4String baseDir; + G4String comment; +}; + + +#endif + + + + + + + + + + + + diff --git a/source/particles/utils/include/G4SimplePPReporter.hh b/source/particles/utils/include/G4SimplePPReporter.hh new file mode 100644 index 0000000000..799b60e0be --- /dev/null +++ b/source/particles/utils/include/G4SimplePPReporter.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. * +// ******************************************************************** +// +// the GEANT4 collaboration. +// +// By copying, distributing or modifying the Program (or any work +// based on the Program) you indicate your acceptance of this statement, +// and all its terms. +// +// $Id: G4SimplePPReporter.hh,v 1.1 2003/09/21 19:38:50 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// --------------------------------------------------------------- +#ifndef G4SimplePPReporter_h +#define G4SimplePPReporter_h 1 + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VParticlePropertyReporter.hh" + +class G4SimplePPReporter: public G4VParticlePropertyReporter +{ + public: + //constructors + G4SimplePPReporter(); + + //destructor + virtual ~G4SimplePPReporter(); + +public: + virtual void Print(const G4String& option=""); +}; + + +#endif diff --git a/source/particles/utils/include/G4VParticlePropertyReporter.hh b/source/particles/utils/include/G4VParticlePropertyReporter.hh new file mode 100644 index 0000000000..ff0bc5ccc9 --- /dev/null +++ b/source/particles/utils/include/G4VParticlePropertyReporter.hh @@ -0,0 +1,84 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// the GEANT4 collaboration. +// +// By copying, distributing or modifying the Program (or any work +// based on the Program) you indicate your acceptance of this statement, +// and all its terms. +// +// $Id: G4VParticlePropertyReporter.hh,v 1.1 2003/09/21 19:38:50 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// --------------------------------------------------------------- +#ifndef G4VParticlePropertyReporter_h +#define G4VParticlePropertyReporter_h 1 + +#include "globals.hh" +#include "G4ios.hh" +#include + +#include "G4ParticlePropertyData.hh" +#include "G4ParticlePropertyTable.hh" + +class G4VParticlePropertyReporter +{ + public: + //constructors + G4VParticlePropertyReporter(); + + //destructor + virtual ~G4VParticlePropertyReporter(); + + public: + // equality operators + G4int operator==(const G4VParticlePropertyReporter &right) const + { return (this == &right); } + + G4int operator!=(const G4VParticlePropertyReporter &right) const + { return (this != &right); } + + public: + typedef std::vector G4PPDContainer; + + public: + virtual G4bool FillList(G4String name); + // fill out properties for specified particle type/name + // (return false if specified name/type does not exist) + + virtual void Clear(); + // clear the list + + virtual void Print(const G4String& option) = 0; + // print out particle properties in the list + + const G4PPDContainer& GetList() const {return pList;} + + protected: + G4PPDContainer pList; + G4ParticlePropertyTable* pPropertyTable; + +}; + +#endif + diff --git a/source/particles/utils/src/G4HtmlPPReporter.cc b/source/particles/utils/src/G4HtmlPPReporter.cc new file mode 100644 index 0000000000..375a7ea65f --- /dev/null +++ b/source/particles/utils/src/G4HtmlPPReporter.cc @@ -0,0 +1,332 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// the GEANT4 collaboration. +// +// By copying, distributing or modifying the Program (or any work +// based on the Program) you indicate your acceptance of this statement, +// and all its terms. +// +// $Id: G4HtmlPPReporter.cc,v 1.2 2003/10/30 09:22:41 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// --------------------------------------------------------------- +#include "G4HtmlPPReporter.hh" +#include "G4ios.hh" +#include "globals.hh" +#include "G4DecayTable.hh" +#include "G4Tokenizer.hh" +#include + + G4HtmlPPReporter::G4HtmlPPReporter():G4VParticlePropertyReporter() +{ + +} + + G4HtmlPPReporter::~G4HtmlPPReporter() +{ +} + + void G4HtmlPPReporter::Print(const G4String& option) +{ + SparseOption( option ); + + GenerateIndex(); + + for (size_t i=0; i< pList.size(); i++){ + G4ParticleDefinition* particle = G4ParticleTable::GetParticleTable()->FindParticle( pList[i]->GetParticleName() ); + GeneratePropertyTable(particle); + } +} + + +void G4HtmlPPReporter::SparseOption(const G4String& option) +{ + G4Tokenizer savedToken( option ); + + // 1st option : base directory + baseDir = savedToken(); + if (!baseDir.isNull()) { + if(baseDir(baseDir.length()-1)!='/') { + baseDir += "/"; + } + } + comment = savedToken(); +} + + void G4HtmlPPReporter::GenerateIndex() +{ + //--- open index file ----- + G4String fileName = baseDir + "index.html"; + std::ofstream outFile(fileName, std::ios::out ); + outFile.setf( std::ios:: scientific, std::ios::floatfield ); + + // header + PrintHeader(outFile); + + // comment + outFile << " " << G4endl; + outFile << G4endl; + + + outFile << sTABLE << '"' << "80%" << '"' << " > " << G4endl; + + // Raw #1 + outFile << sTR; + outFile << sTD << sLFONT << "Code" << eLFONT<< eTD; + outFile << sTD << sLFONT << "Name" << eLFONT<< eTD; + outFile << sTD << sLFONT << "Anti-Particle" << eLFONT<< eTD; + outFile << eTR << G4endl;; + + for (size_t i=0; i< pList.size(); i++){ + outFile << sTR << G4endl;; + // column 1 : endcoding + outFile << sTD << pList[i]->GetPDGEncoding() << eTD << G4endl;; + // column 2 : name + G4String name = pList[i]->GetParticleName(); + + G4String fname = name +".html"; + // exception + if (name == "J/psi") fname = "jpsi.html"; + + outFile << sTD; + outFile << ""; + outFile << name << "" << eTD << G4endl; + + // column 3 AntiParticle + if ( (pList[i]->GetAntiPDGEncoding()!= 0) && + (pList[i]->GetAntiPDGEncoding() != pList[i]->GetPDGEncoding() ) ) { + G4ParticleDefinition* anti_particle = G4ParticleTable::GetParticleTable()->FindParticle( pList[i]->GetAntiPDGEncoding() ); + + outFile << sTD << anti_particle->GetParticleName() << eTD << G4endl;; + } + outFile << eTR << G4endl;; + } + + outFile << eTABLE << G4endl; + + // footer + PrintFooter(outFile); + +} + + void G4HtmlPPReporter::GeneratePropertyTable(G4ParticleDefinition* particle) +{ + G4String name = particle->GetParticleName(); + //--- open index file ----- + G4String fileName = baseDir + name + ".html"; + // exception + if (name == "J/psi") fileName = baseDir +"jpsi.html"; + std::ofstream outFile(fileName, std::ios::out ); + outFile.setf( std::ios:: scientific, std::ios::floatfield ); + outFile << std::setprecision(7) << G4endl; + + PrintHeader(outFile); + + // particle name + outFile << "

" << name << "

" << G4endl; + outFile << "
" << G4endl; + + // encoding, type + outFile << sTABLE << '"' << "40%" << '"' << " > " << G4endl; + outFile << sTR << sTD << sB << "PDG encoding" << eB << eTD; + outFile << sTD << particle->GetPDGEncoding() << eTD << eTR << G4endl; + outFile << sTR << sTD << sB << "Type" << eB << eTD; + outFile << sTD << particle->GetParticleType() << eTD << eTR << G4endl; + outFile << eTABLE << G4endl; + outFile << "
" << G4endl; + + // Properties + outFile << sTABLE << '"' << "60%" << '"' << " > " << G4endl; + // mass + outFile << sTR << sTD << sB << "Mass" << eB << eTD; + outFile << sTD << particle->GetPDGMass()/GeV; + outFile << " [GeV/c" << sSUP << "2" << eSUP << "]" << eTD << eTR << G4endl; + // width + outFile << sTR << sTD << sB << "Width" << eB << eTD; + outFile << sTD << particle->GetPDGWidth()/GeV; + outFile << " [GeV/c" << sSUP << "2" << eSUP << "]" << eTD << eTR << G4endl; + // IJPC + outFile << sTR << sTD << sB << "I J" << sSUP << "PC"<< eSUP << eB << eTD; + if ( particle->GetPDGiIsospin() <0 ) { + outFile << sTD << " "; + } else if ( particle->GetPDGiIsospin() == 1) { + outFile << sTD << "1/2 "; + } else if ( particle->GetPDGiIsospin() == 3) { + outFile << sTD << "3/2 "; + } else { + outFile << sTD << particle->GetPDGiIsospin()/2 << " "; + } + if ( particle->GetPDGiSpin() == 1) { + outFile << "1/2"; + } else if ( particle->GetPDGiSpin() == 3) { + outFile << "3/2"; + } else if ( particle->GetPDGiSpin() == 5) { + outFile << "5/2"; + } else if ( particle->GetPDGiSpin() == 7) { + outFile << "7/2"; + } else if ( particle->GetPDGiSpin() == 9) { + outFile << "9/2"; + } else if ( particle->GetPDGiSpin() == 11) { + outFile << "11/2"; + } else if ( particle->GetPDGiSpin() == 13) { + outFile << "13/2"; + } else { + outFile << particle->GetPDGiSpin()/2; + } + outFile << sSUP << sSYMBOL; + if (particle->GetPDGiParity() == +1 ){ + outFile << "+"; + } else if (particle->GetPDGiParity() == -1 ){ + outFile << "-"; + } else { + outFile << " "; + } + if (particle->GetPDGiConjugation() == +1 ){ + outFile << "+"; + } else if (particle->GetPDGiConjugation() == -1 ){ + outFile << "-"; + } else { + outFile << " "; + } + outFile << eSYMBOL << eSUP; + outFile << eTD << eTR << G4endl; + // charge + outFile << sTR << sTD << sB << "Charge" << eB << eTD; + outFile << sTD << particle->GetPDGCharge()/eplus; + outFile << eTD << eTR << G4endl; + // life time + outFile << sTR << sTD << sB << "Life Time" << eB << eTD; + if ( particle->GetPDGLifeTime() >0.0 ) { + outFile << sTD << particle->GetPDGLifeTime()/second; + outFile << "[sec]" << eTD << G4endl; + } else { + if (particle->GetPDGStable()) { + outFile << sTD << "stable" << eTD; + } else if (particle->IsShortLived()) { + outFile << sTD << "short-lived" << eTD; + } else { + outFile << sTD << "not Defined" << eTD; + } + } + outFile << eTR << G4endl; + + outFile << eTABLE << G4endl; + outFile << "
" << G4endl; + + // Qurak content + outFile << "

" << " Quark Content " << "

" << G4endl; + + outFile << sTABLE << '"' << "60%" << '"' << " > " << G4endl; + + outFile << sTR; + outFile << sTD << sB << "flavour " << eB << eTD ; + outFile << sTD << sB << " quark " << eB << eTD; + outFile << sTD << sB << " anti-quark " << eB << eTD; + outFile << eTR; + + static const char* quarkName[6] = { "d", "u", "s", "c", "b", "t" }; + for (G4int flv = 0; flv <6 ; flv++ ){ + outFile << sTR; + outFile << sTD << sB << quarkName[flv] << eB << eTD ; + outFile << sTD << sB << particle->GetQuarkContent(flv+1) << eB << eTD ; + outFile << sTD << sB << particle->GetAntiQuarkContent(flv+1) << eB << eTD ; + outFile << eTR; + } + outFile << eTABLE << G4endl; + outFile << "
" << G4endl; + + // Decay Table + G4DecayTable* dcyTable = particle->GetDecayTable(); + if (dcyTable != 0) { + outFile << "

" << " Decay Table " << "

" << G4endl; + + outFile << sTABLE << '"' << "80%" << '"' << " > " << G4endl; + + outFile << sTR; + outFile << sTD << sB << "BR" << eB << eTD ; + outFile << sTD << sB << "kinematics" << eB << eTD; + outFile << eTR; + + for (G4int i=0; i< dcyTable->entries(); i++){ + G4VDecayChannel * channel = dcyTable->GetDecayChannel(i); + outFile << sTR << G4endl;; + // column 1 : BR + outFile << sTD << channel->GetBR() << eTD; + // column 2 : Kinematics + outFile << sTD << channel->GetKinematicsName() << eTD; + // column 3.. : daughters + for (G4int j=0; j< channel->GetNumberOfDaughters(); j++){ + outFile << sTD << channel->GetDaughter(j)->GetParticleName() << eTD; + } + outFile << eTR << G4endl; + } + outFile << eTABLE << G4endl; + outFile << "
" << G4endl; + } + + outFile << sB; + outFile << "back to index"; + outFile << eB << G4endl; + + PrintFooter(outFile); +} + + void G4HtmlPPReporter::PrintHeader(std::ofstream& outFile) +{ + outFile << "" << G4endl; + outFile << "" << G4endl; + outFile << " " << G4endl; + outFile << " Geant4 Particle List " << G4endl; + outFile << "" << G4endl; + outFile << " z // polarization0 is the original photon polarization ---> x @@ -551,13 +551,12 @@ void G4LowEnergyPolarizedCompton::SystemOfRefChange G4double direction_y = direction1.getY(); G4double direction_z = direction1.getZ(); - direction1 = (direction_x*Axis_X0 + direction_y*Axis_Y0 + direction_z*Axis_Z0).unit(); - + direction1 = (direction_x*Axis_X0 + direction_y*Axis_Y0 + direction_z*Axis_Z0).unit(); G4double polarization_x = polarization1.getX(); G4double polarization_y = polarization1.getY(); G4double polarization_z = polarization1.getZ(); - polarization1 =(polarization_x*Axis_X0+polarization_y*Axis_Y0+polarization_z*Axis_Z0).unit(); + polarization1 = (polarization_x*Axis_X0 + polarization_y*Axis_Y0 + polarization_z*Axis_Z0).unit(); } diff --git a/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc b/source/processes/electromagnetic/lowenergy/src/G4LowEnergyRayleigh.cc index ab00d4a3f7..8341bdd3d4 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.33 2003/05/20 20:16:13 pia Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: A. Forti // Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) diff --git a/source/processes/electromagnetic/lowenergy/src/G4ModifiedTsai.cc b/source/processes/electromagnetic/lowenergy/src/G4ModifiedTsai.cc index 46f1fb912c..2d41c866d7 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ModifiedTsai.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ModifiedTsai.cc @@ -63,10 +63,8 @@ G4ModifiedTsai::~G4ModifiedTsai() // G4double G4ModifiedTsai::PolarAngle(const G4double initial_energy, - const G4double, // initial_momentum const G4double, // final_energy - const G4double, // final_momentum - const G4int ) const // Z + const G4int ) // Z { // Sample gamma angle (Z - axis along the parent particle). diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeAnnihilation.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeAnnihilation.cc new file mode 100644 index 0000000000..4ba702deac --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeAnnihilation.cc @@ -0,0 +1,299 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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: Luciano Pandola +// +// History: +// -------- +// 02 Jul 2003 L.Pandola First implementation + +#include "G4PenelopeAnnihilation.hh" +#include "Randomize.hh" +#include "G4UnitsTable.hh" +#include "G4PhysicsTable.hh" +#include "G4ParticleDefinition.hh" +#include "G4VParticleChange.hh" +#include "G4Gamma.hh" +#include "G4Positron.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4PhysicsLogVector.hh" +#include "G4ElementTable.hh" +#include "G4Material.hh" +#include "G4MaterialCutsCouple.hh" + +// constructor + +G4PenelopeAnnihilation::G4PenelopeAnnihilation(const G4String& processName) + : G4VRestDiscreteProcess (processName), + lowEnergyLimit(250*eV), + highEnergyLimit(100*GeV), + nBins(200), + cutForLowEnergySecondaryPhotons(250.0*eV) +{ + meanFreePathTable = 0; + if (verboseLevel > 0) + { + G4cout << GetProcessName() << " is created " << G4endl + << "Energy range: " + << lowEnergyLimit / keV << " keV - " + << highEnergyLimit / GeV << " GeV" + << G4endl; + } +} + +// destructor +G4PenelopeAnnihilation::~G4PenelopeAnnihilation() +{ + if (meanFreePathTable) { + meanFreePathTable->clearAndDestroy(); + delete meanFreePathTable; + } +} + + +void G4PenelopeAnnihilation::BuildPhysicsTable(const G4ParticleDefinition& ) +{ + G4double lowEdgeEnergy, value; + G4PhysicsLogVector* dataVector; + + // Build mean free path table for the e+e- annihilation + + if (meanFreePathTable) { + meanFreePathTable->clearAndDestroy(); delete meanFreePathTable;} + + meanFreePathTable = + new G4PhysicsTable(G4Material::GetNumberOfMaterials()); + const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); + G4Material* material; + + for (size_t j=0;jGetElementVector(); + const G4double* NbOfAtomsPerVolume = + material->GetVecNbOfAtomsPerVolume(); + for (G4int i=0;iGetLowEdgeEnergy(i); + G4double sigma=0.0 ; + for (size_t elm=0;elmGetNumberOfElements();elm++) + { + G4double Z = (*theElementVector)[elm]->GetZ(); + sigma += NbOfAtomsPerVolume[elm] * Z * + calculateCrossSectionPerElectron(lowEdgeEnergy); + } + if (sigma > DBL_MIN) + { + value = 1.0/sigma; + } + else + { + value = DBL_MAX; + } + dataVector->PutValue(i,value); + } + meanFreePathTable->insertAt(j,dataVector); + } + PrintInfoDefinition(); +} + +G4double G4PenelopeAnnihilation::calculateCrossSectionPerElectron + (G4double ene) +{ + //Heitler dcs formula for annihilation with free electrons at rest + G4double crossSection=0.0; + G4double gamma = 1.0+std::max(ene,1.0*eV)/electron_mass_c2; + G4double gamma2 = pow(gamma,2); + G4double f2 = gamma2-1.0; + G4double f1 = sqrt(f2); + G4double pielr2 = pi*pow(classic_electr_radius,2); + crossSection = pielr2*((gamma2+4.0*gamma+1.0)*log(gamma+f1)/f2 + - (gamma+3.0)/f1)/(gamma+1.0); + return crossSection; +} + +G4VParticleChange* G4PenelopeAnnihilation::PostStepDoIt(const G4Track& aTrack, + const G4Step& ) +{ + aParticleChange.Initialize(aTrack); + + const G4DynamicParticle* incidentPositron = aTrack.GetDynamicParticle(); + G4double kineticEnergy = incidentPositron->GetKineticEnergy(); + G4ParticleMomentum positronDirection = + incidentPositron->GetMomentumDirection(); + + // Do not make anything if particle is stopped, the annihilation then + // should be performed by the AtRestDoIt! + if (aTrack.GetTrackStatus() == fStopButAlive) return &aParticleChange; + + //G4cout << "Sono nel PostStep" << G4endl; + + //Annihilation in flight + G4double gamma = 1.0 + std::max(kineticEnergy,1.0*eV)/electron_mass_c2; + G4double gamma21 = sqrt(gamma*gamma-1); + G4double ani = 1.0+gamma; + G4double chimin = 1.0/(ani+gamma21); + G4double rchi = (1.0-chimin)/chimin; + G4double gt0 = pow(ani,2)-2.0; + G4double epsilon=0.0, reject=0.0, test=0.0; + do{ + epsilon = chimin*pow(rchi,G4UniformRand()); + reject = ani*ani*(1.0-epsilon)+2.0*gamma-(1.0/epsilon); + test = G4UniformRand()*gt0-reject; + }while(test>0); + + G4double totalAvailableEnergy = kineticEnergy + 2.0*electron_mass_c2; + G4double photon1Energy = epsilon*totalAvailableEnergy; + G4double photon2Energy = (1.0-epsilon)*totalAvailableEnergy; + G4double cosTheta1 = (ani-1.0/epsilon)/gamma21; + G4double cosTheta2 = (ani-1.0/(1.0-epsilon))/gamma21; + + aParticleChange.SetNumberOfSecondaries(2); + G4double localEnergyDeposit = 0.; + + G4double sinTheta1 = sqrt(1.-cosTheta1*cosTheta1); + G4double phi1 = twopi * G4UniformRand(); + G4double dirx1 = sinTheta1 * cos(phi1); + G4double diry1 = sinTheta1 * sin(phi1); + G4double dirz1 = cosTheta1; + + G4double sinTheta2 = sqrt(1.-cosTheta2*cosTheta2); + G4double phi2 = phi1+pi; + G4double dirx2 = sinTheta2 * cos(phi2); + G4double diry2 = sinTheta2 * sin(phi2); + G4double dirz2 = cosTheta2; + + if (photon1Energy > cutForLowEnergySecondaryPhotons) { + G4ThreeVector photon1Direction (dirx1,diry1,dirz1); + photon1Direction.rotateUz(positronDirection); + // create G4DynamicParticle object for the particle1 + G4DynamicParticle* aParticle1= new G4DynamicParticle (G4Gamma::Gamma(), + photon1Direction, + photon1Energy); + aParticleChange.AddSecondary(aParticle1); + } + else localEnergyDeposit += photon1Energy; + + if (photon2Energy > cutForLowEnergySecondaryPhotons) { + G4ThreeVector photon2Direction(dirx2,diry2,dirz2); + photon2Direction.rotateUz(positronDirection); + // create G4DynamicParticle object for the particle2 + G4DynamicParticle* aParticle2= new G4DynamicParticle (G4Gamma::Gamma(), + photon2Direction, + photon2Energy); + aParticleChange.AddSecondary(aParticle2); + } + else localEnergyDeposit += photon2Energy; + + aParticleChange.SetLocalEnergyDeposit(localEnergyDeposit); + + aParticleChange.SetMomentumChange( 0., 0., 0. ); + aParticleChange.SetEnergyChange(0.); + aParticleChange.SetStatusChange(fStopAndKill); + + return &aParticleChange; +} + + +G4VParticleChange* G4PenelopeAnnihilation::AtRestDoIt(const G4Track& aTrack, + const G4Step& ) +{ + aParticleChange.Initialize(aTrack); + aParticleChange.SetNumberOfSecondaries(2); + G4double cosTheta = -1.0+2.0*G4UniformRand(); + G4double sinTheta = sqrt(1.0-cosTheta*cosTheta); + G4double phi = twopi*G4UniformRand(); + //G4cout << "cosTheta: " << cosTheta << " sinTheta: " << sinTheta << G4endl; + //G4cout << "phi: " << phi << G4endl; + G4ThreeVector direction (sinTheta*cos(phi),sinTheta*sin(phi),cosTheta); + aParticleChange.AddSecondary(new G4DynamicParticle (G4Gamma::Gamma(), + direction, electron_mass_c2) ); + aParticleChange.AddSecondary(new G4DynamicParticle (G4Gamma::Gamma(), + -direction, electron_mass_c2) ); + + aParticleChange.SetLocalEnergyDeposit(0.); + + // Kill the incident positron + // + aParticleChange.SetStatusChange(fStopAndKill); + + return &aParticleChange; +} + +void G4PenelopeAnnihilation::PrintInfoDefinition() +{ + G4String comments = "Total cross section from Heilter formula" + "(annihilation into 2 photons)."; + comments += "\n Gamma energies sampled according Heitler"; + comments += "\n It can be used for positrons"; + comments += " in the energy range [250eV,100GeV]."; + G4cout << G4endl << GetProcessName() << ": " << comments + << G4endl; +} + +G4bool G4PenelopeAnnihilation::IsApplicable( + const G4ParticleDefinition& particle) +{ + return ( &particle == G4Positron::Positron() ); +} + + +G4double G4PenelopeAnnihilation::GetMeanFreePath(const G4Track& aTrack, + G4double, + G4ForceCondition*) +{ + const G4DynamicParticle* incidentPositron = aTrack.GetDynamicParticle(); + G4double kineticEnergy = incidentPositron->GetKineticEnergy(); + const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple(); + const G4Material* material = couple->GetMaterial(); + G4int materialIndex = material->GetIndex(); + if (kineticEnergyhighEnergyLimit) + { + meanFreePath = DBL_MAX; + } + else + { + meanFreePath = (*meanFreePathTable)(materialIndex)-> + GetValue(kineticEnergy,isOutRange); + } + + return meanFreePath; +} + +G4double G4PenelopeAnnihilation::GetMeanLifeTime(const G4Track&, + G4ForceCondition*) + +{ + return 0.0; +} diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc index f20552e2ee..99086f025e 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlung.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4PenelopeBremsstrahlung.cc,v 1.10 2003/06/16 17:00:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PenelopeBremsstrahlung.cc,v 1.14 2003/11/18 17:29:43 pia Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- // @@ -35,9 +35,9 @@ // 24.04.2003 V.Ivanchenko - Cut per region mfpt // 20.05.2003 MGP - Removed compilation warnings // Restored NotForced in GetMeanFreePath -// 23.05.2003 L.Pandola - Bug fixed. G4double cast to elements of -// ebins vector (is it necessary?) // 23.05.2003 MGP - Removed memory leak (fix in destructor) +// 07.11.2003 L.Pandola - Bug fixed in LoadAngularData() +// 11.11.2003 L.Pandola - Code review: use std::map for angular data // //---------------------------------------------------------------- @@ -57,25 +57,16 @@ #include "G4ProductionCutsTable.hh" -// -// -// Il load dei dati continui si puo' mettere nel BuildLossTable -// -// -// Anche la sezione d'urto totale dovrebbe essere convertita -// le tabelle di G4 mi paiono piu' complete pero' (le lascio!) -// - G4PenelopeBremsstrahlung::G4PenelopeBremsstrahlung(const G4String& nam) : G4eLowEnergyLoss(nam), crossSectionHandler(0), theMeanFreePath(0), energySpectrum(0) { - // materialAngularData.clear(); + angularData = new std::map; cutForPhotons = 0.; verboseLevel = 0; - LoadAngularData(); + } @@ -84,16 +75,10 @@ G4PenelopeBremsstrahlung::~G4PenelopeBremsstrahlung() delete crossSectionHandler; delete energySpectrum; delete theMeanFreePath; - - for (size_t m=0; mcount(Z)) delete (angularData->find(Z)->second); + } + delete angularData; } @@ -105,14 +90,16 @@ void G4PenelopeBremsstrahlung::BuildPhysicsTable(const G4ParticleDefinition& aPa } cutForSecondaryPhotons.clear(); - + LoadAngularData(); + if(verboseLevel > 0) { + G4cout << "G4PenelopeBremsstrahlung: Angular data loaded" << G4endl; + } // Create and fill BremsstrahlungParameters once if ( energySpectrum != 0 ) delete energySpectrum; //grid of reduced energy bins for photons G4DataVector eBins; - //G4double value; eBins.push_back(1.0e-12); eBins.push_back(0.05); eBins.push_back(0.075); @@ -170,12 +157,10 @@ void G4PenelopeBremsstrahlung::BuildPhysicsTable(const G4ParticleDefinition& aPa crossSectionHandler->Initialise(0,lowKineticEnergy, highKineticEnergy, totBin); if (&aParticleType==G4Electron::Electron()) { - //G4cout << "Leggo le sezioni d'urto degli elettroni" << G4endl; crossSectionHandler->LoadShellData("brem/br-cs-"); } else { - //G4cout << "Leggo le sezioni d'urto dei positroni" << G4endl; crossSectionHandler->LoadShellData("penelope/br-cs-pos-"); //cross section for positrons } @@ -283,25 +268,22 @@ void G4PenelopeBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aParti G4DataVector* ionloss = new G4DataVector(); for (size_t i = 0; ipush_back(0.0); //il vettore ha come elementi totBin zeri + ionloss->push_back(0.0); } const G4String partName = aParticleType.GetParticleName(); // loop for elements in the material for (size_t iel=0; ielGetZ()); - //costruttore del continuo per l'elemento Z G4PenelopeBremsstrahlungContinuous* ContLoss = new G4PenelopeBremsstrahlungContinuous(Z,tCut,GetLowerBoundEloss(), GetUpperBoundEloss(), partName); - //l'inizializzazione va ripetuta per ogni Z! + // the initialization must be repeated for each Z // now comes the loop for the kinetic energy values for (size_t k = 0; kGetLowEdgeEnergy(k); - //qui viene chiamato il metodo giusto della perdita continua + // method for calcutation of continuous loss (*ionloss)[k] += ContLoss->CalculateStopping(lowEdgeEnergy) * theAtomicNumDensityVector[iel]; - //if (Z == 29) - // G4cout << lowEdgeEnergy << " " << ContLoss->CalculateStopping(lowEdgeEnergy) * theAtomicNumDensityVector[iel] << G4endl; //va chiamato una volta per ogni energia //per ogni energia k, somma su tutti gli elementi del materiale } @@ -334,33 +316,16 @@ G4VParticleChange* G4PenelopeBremsstrahlung::PostStepDoIt(const G4Track& track, G4int Z = crossSectionHandler->SelectRandomAtom(couple, kineticEnergy); G4double tGamma = energySpectrum->SampleEnergy(Z, tCut, kineticEnergy, kineticEnergy); - //bisogna recuperare il puntatore - G4AngularData* elementData = materialAngularData[index]; //punta al vettore che contiene i puntatori del materiale - //look for the index of the selected atom - const G4ElementVector* theElementVector = material->GetElementVector(); - size_t NumberOfElements = material->GetNumberOfElements(); - // loop for elements in the material - size_t iel=0; - G4int Z_try=0,indexEl=0; - do { - if (iel >= NumberOfElements ) { - G4String excep = "Not found the angular data for material " + material->GetName(); - G4Exception(excep); - } - Z_try = (G4int)((*theElementVector)[(size_t) iel]->GetZ()); - indexEl = iel; - iel++; - }while(Z_try != Z); - - G4PenelopeBremsstrahlungAngular* finalAngularData = (*elementData)[indexEl]; - + //Check if the Z has been inserted in the map + if (!(angularData->count(Z))) { + G4String excep = "Not found the angular data for material " + material->GetName(); + G4Exception(excep); + } + G4PenelopeBremsstrahlungAngular* elementAngularData = angularData->find(Z)->second; + //Check if the loaded angular data are right + //G4cout << "Material Z: " << elementAngularData->GetAtomicNumber() << " !!" << G4endl; // Sample gamma angle (Z - axis along the parent particle). - G4double dirZ = finalAngularData->ExtractCosTheta(kineticEnergy,tGamma); - - //std::ofstream fff("prova.dat",std::ios::app); - //fff << dirZ << G4endl; - //fff.close(); - + G4double dirZ = elementAngularData->ExtractCosTheta(kineticEnergy,tGamma); G4double totalEnergy = kineticEnergy + electron_mass_c2; G4double phi = twopi * G4UniformRand(); G4double sinTheta = sqrt(1. - dirZ*dirZ); @@ -412,8 +377,8 @@ void G4PenelopeBremsstrahlung::PrintInfoDefinition() comments += "\n Gamma energy sampled from a data-driven histogram."; comments += "\n Implementation of the continuous dE/dx part."; comments += "\n It can be used for electrons and positrons"; - comments += "in the energy range [250eV,100GeV]."; - comments += "\n The process must work with G4LowEnergyIonisation."; + comments += " in the energy range [250eV,100GeV]."; + comments += "\n The process must work with G4PenelopeIonisation."; G4cout << G4endl << GetProcessName() << ": " << comments << G4endl; } @@ -441,23 +406,26 @@ void G4PenelopeBremsstrahlung::SetCutForLowEnSecPhotons(G4double cut) } void G4PenelopeBremsstrahlung::LoadAngularData() -{ - const G4MaterialTable* theMaterialTable = G4Material::GetMaterialTable(); - const size_t numOfMaterials = G4Material::GetNumberOfMaterials(); - materialAngularData.clear(); - - for (size_t j=0; jGetTableSize(); + angularData->clear(); + for (size_t j=0; jGetMaterialCutsCouple(j); + const G4Material* material= couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); size_t NumberOfElements = material->GetNumberOfElements(); - // loop for elements in the material - G4AngularData* elementAngularData = new G4AngularData; + //loop for elements in the material for (size_t iel=0; ielGetZ()); - G4PenelopeBremsstrahlungAngular* AngPointer = new G4PenelopeBremsstrahlungAngular(Z); - elementAngularData->push_back(AngPointer); + G4int Z = (G4int)((*theElementVector)[iel]->GetZ()); + //if the material is not present yet --> insert it in the map + if (!(angularData->count(Z))) { + G4PenelopeBremsstrahlungAngular* elementAngular = new G4PenelopeBremsstrahlungAngular(Z); + angularData->insert(std::make_pair(Z,elementAngular)); + //G4cout << "Loaded......... Z= " << Z << G4endl; + } } - materialAngularData.push_back(elementAngularData); } } + diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc index 90fa05f41a..709a0d1d3d 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungAngular.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4PenelopeBremsstrahlungAngular.cc,v 1.4 2003/06/16 17:00:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PenelopeBremsstrahlungAngular.cc,v 1.5 2003/11/07 12:25:35 pandola Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- // @@ -35,6 +35,8 @@ // ----------- // 04 Feb 2003 L. Pandola 1st implementation // 19 Mar 2003 L. Pandola Bugs fixed +// 07 Nov 2003 L. Pandola Added GetAtomicNumber method for testing +// purposes //---------------------------------------------------------------- #include "G4PenelopeBremsstrahlungAngular.hh" @@ -54,6 +56,11 @@ G4PenelopeBremsstrahlungAngular::~G4PenelopeBremsstrahlungAngular() { } +G4int G4PenelopeBremsstrahlungAngular::GetAtomicNumber() +{ + return Zmat; +} + void G4PenelopeBremsstrahlungAngular::InterpolationTableForZ() { G4double pZ[NumberofZPoints] = {2.0,8.0,13.0,47.0,79.0,92.0}; @@ -167,14 +174,14 @@ G4double G4PenelopeBremsstrahlungAngular::ExtractCosTheta(G4double e1,G4double e G4double beta = sqrt(e1*(e1+2*electron_mass_c2))/(e1+electron_mass_c2); - + + G4double RK=20.0*e2/e1; G4int ik=std::min((G4int) RK,19); G4double P10=0,P11=0,P1=0; G4double P20=0,P21=0,P2=0; G4double pX[NumberofEPoints]; - //First coefficient G4int i; G4int j = ik; diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc index 3d90899962..1e8f2bc4d0 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeBremsstrahlungContinuous.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4PenelopeBremsstrahlungContinuous.cc,v 1.5 2003/06/16 17:00:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeCompton.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeCompton.cc index 24c96b97de..36ab878c5f 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.16 2003/06/16 17:00:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: Luciano Pandola // diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeCrossSectionHandler.cc new file mode 100644 index 0000000000..62f060acbc --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeCrossSectionHandler.cc @@ -0,0 +1,147 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// GEANT4 Class file +// +// +// File name: G4PenelopeCrossSectionHandler +// +// Author: Luciano Pandola +// +// Creation date: 04 Jul 2003 +// +// ------------------------------------------------------------------- +#include "G4PenelopeCrossSectionHandler.hh" +#include "G4PenelopeIonisation.hh" +#include "G4DataVector.hh" +#include "G4CompositeEMDataSet.hh" +#include "G4VDataSetAlgorithm.hh" +#include "G4LinLogLogInterpolation.hh" +#include "G4SemiLogInterpolation.hh" +#include "G4VEMDataSet.hh" +#include "G4EMDataSet.hh" +#include "G4Material.hh" +#include "G4ProductionCutsTable.hh" +#include "G4ParticleDefinition.hh" + +G4PenelopeCrossSectionHandler::G4PenelopeCrossSectionHandler(G4PenelopeIonisation* theProcess, + const G4ParticleDefinition& aParticleType, + G4VDataSetAlgorithm* alg, + G4double emin, + G4double emax, + G4int nbin) + : G4VCrossSectionHandler(), + process(theProcess), + particle(aParticleType) +{ + G4VCrossSectionHandler::Initialise(alg, emin, emax, nbin); + interp = new G4LinLogLogInterpolation(); +} + + +G4PenelopeCrossSectionHandler::~G4PenelopeCrossSectionHandler() +{ + delete interp; +} + + +std::vector* G4PenelopeCrossSectionHandler::BuildCrossSectionsForMaterials( + const G4DataVector& energyVector, + const G4DataVector* energyCuts) +{ + G4int verbose = 0; + std::vector* set = new std::vector; + + G4DataVector* energies; + G4DataVector* cs; + G4int nOfBins = energyVector.size(); + + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + for (size_t m=0; mGetMaterialCutsCouple(m); + const G4Material* material= couple->GetMaterial(); + const G4ElementVector* elementVector = material->GetElementVector(); + const G4double* nAtomsPerVolume = material->GetAtomicNumDensityVector(); + G4double electronVolumeDensity = + material->GetTotNbOfElectPerVolume(); //electron density + G4int nElements = material->GetNumberOfElements(); + + if(verbose > 0) { + G4cout << "Penelope CS for " << m << "th material " + << material->GetName() + << " eEl= " << nElements << G4endl; + } + + G4double tcut = (*energyCuts)[m]; + + G4VDataSetAlgorithm* algo = interp->Clone(); + G4VEMDataSet* setForMat = new G4CompositeEMDataSet(algo,1.,1.); + + for (G4int i=0; iGetZ(); + energies = new G4DataVector; + cs = new G4DataVector; + G4double density = nAtomsPerVolume[i]; + + for (G4int bin=0; binpush_back(e); + G4double value = 0.0; + + if(e > tcut) { + G4double cross = FindValue(Z, e); + G4double p = process->CalculateCrossSectionsRatio(e,tcut,Z,electronVolumeDensity, + particle); + value += cross * p * density; + + if(verbose>0 && m == 0 && e>=1. && e<=0.) { + G4cout << "G4PenIonCrossSH: e(MeV)= " << e/MeV + << " cross= " << cross + << " p= " << p + << " value= " << value + << " tcut(MeV)= " << tcut/MeV + << " rho= " << density + << " Z= " << Z + << G4endl; + } + + } + cs->push_back(value); + } + + G4VDataSetAlgorithm* algo = interp->Clone(); + G4VEMDataSet* elSet = new G4EMDataSet(i,energies,cs,algo,1.,1.); + setForMat->AddComponent(elSet); + } + set->push_back(setForMat); + } + return set; +} + + diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc new file mode 100644 index 0000000000..0682591e97 --- /dev/null +++ b/source/processes/electromagnetic/lowenergy/src/G4PenelopeIonisation.cc @@ -0,0 +1,1466 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4PenelopeIonisation.cc,v 1.8 2003/12/09 15:36:41 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// -------------------------------------------------------------- +// +// File name: G4PenelopeIonisation +// +// Author: Luciano Pandola +// +// Creation date: March 2003 +// +// Modifications: +// +// 25.03.03 L.Pandola First implementation +// 03.06.03 L.Pandola Added continuous part +// 30.06.03 L.Pandola Added positrons +// 01.07.03 L.Pandola Changed cross section files for e- and e+ +// Interface with PenelopeCrossSectionHandler +// -------------------------------------------------------------- + +#include "G4PenelopeIonisation.hh" +#include "G4PenelopeCrossSectionHandler.hh" +#include "G4AtomicTransitionManager.hh" +#include "G4AtomicShell.hh" +#include "G4eIonisationSpectrum.hh" +#include "G4VDataSetAlgorithm.hh" +#include "G4SemiLogInterpolation.hh" +#include "G4LogLogInterpolation.hh" +#include "G4EMDataSet.hh" +#include "G4VEMDataSet.hh" +#include "G4CompositeEMDataSet.hh" +#include "G4EnergyLossTables.hh" +#include "G4UnitsTable.hh" +#include "G4Electron.hh" +#include "G4Gamma.hh" +#include "G4Positron.hh" +#include "G4ProductionCutsTable.hh" + +G4PenelopeIonisation::G4PenelopeIonisation(const G4String& nam) + : G4eLowEnergyLoss(nam), + crossSectionHandler(0), + theMeanFreePath(0), + kineticEnergy1(0.0), + cosThetaPrimary(1.0), + energySecondary(0.0), + cosThetaSecondary(0.0), + iOsc(-1) +{ + cutForPhotons = 250.0*eV; + cutForElectrons = 250.0*eV; + verboseLevel = 0; + ionizationEnergy = new std::map; + resonanceEnergy = new std::map; + occupationNumber = new std::map; + shellFlag = new std::map; + ReadData(); //Read data from file + +} + + +G4PenelopeIonisation::~G4PenelopeIonisation() +{ + delete crossSectionHandler; + delete theMeanFreePath; + for (G4int Z=1;Z<100;Z++) + { + if (ionizationEnergy->count(Z)) delete (ionizationEnergy->find(Z)->second); + if (resonanceEnergy->count(Z)) delete (resonanceEnergy->find(Z)->second); + if (occupationNumber->count(Z)) delete (resonanceEnergy->find(Z)->second); + if (shellFlag->count(Z)) delete (shellFlag->find(Z)->second); + } + delete ionizationEnergy; + delete resonanceEnergy; + delete occupationNumber; + delete shellFlag; +} + + +void G4PenelopeIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) +{ + if(verboseLevel > 0) { + G4cout << "G4PenelopeIonisation::BuildPhysicsTable start" << G4endl; + } + + cutForDelta.clear(); + + // Create and fill G4CrossSectionHandler once + if ( crossSectionHandler != 0 ) delete crossSectionHandler; + G4VDataSetAlgorithm* interpolation = new G4LogLogInterpolation(); + G4double lowKineticEnergy = GetLowerBoundEloss(); + G4double highKineticEnergy = GetUpperBoundEloss(); + G4int totBin = GetNbinEloss(); + crossSectionHandler = new G4PenelopeCrossSectionHandler(this,aParticleType, + interpolation, + lowKineticEnergy, + highKineticEnergy, + totBin); + + if (&aParticleType == G4Electron::Electron()) + { + crossSectionHandler->LoadData("penelope/ion-cs-el-"); + } + else if (&aParticleType == G4Positron::Positron()) + { + crossSectionHandler->LoadData("penelope/ion-cs-po-"); + } + + if (verboseLevel > 0) { + G4cout << GetProcessName() << " is created." << G4endl; + } + + // Build loss table for Ionisation + + BuildLossTable(aParticleType); + + if(verboseLevel > 0) { + G4cout << "The loss table is built" + << G4endl; + } + + if (&aParticleType==G4Electron::Electron()) { + + RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; + CounterOfElectronProcess++; + PrintInfoDefinition(); + + } else { + + RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; + CounterOfPositronProcess++; + PrintInfoDefinition(); + } + + // Build mean free path data using cut values + + if( theMeanFreePath ) delete theMeanFreePath; + theMeanFreePath = crossSectionHandler-> + BuildMeanFreePathForMaterials(&cutForDelta); + + if(verboseLevel > 0) { + G4cout << "The MeanFreePath table is built" + << G4endl; + if(verboseLevel > 1) theMeanFreePath->PrintData(); + } + + // Build common DEDX table for all ionisation processes + + BuildDEDXTable(aParticleType); + + if (verboseLevel > 0) { + G4cout << "G4PenelopeIonisation::BuildPhysicsTable end" + << G4endl; + } +} + + +void G4PenelopeIonisation::BuildLossTable( + const G4ParticleDefinition& aParticleType) +{ + // Build table for energy loss due to soft brems + // the tables are built for *MATERIALS* binning is taken from LowEnergyLoss + + G4double lowKineticEnergy = GetLowerBoundEloss(); + G4double highKineticEnergy = GetUpperBoundEloss(); + size_t totBin = GetNbinEloss(); + + // create table + + if (theLossTable) { + theLossTable->clearAndDestroy(); + delete theLossTable; + } + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + theLossTable = new G4PhysicsTable(numOfCouples); + + // Clean up the vector of cuts + + cutForDelta.clear(); + + // Loop for materials + + for (size_t m=0; mGetMaterialCutsCouple(m); + const G4Material* material= couple->GetMaterial(); + + // the cut cannot be below lowest limit + G4double tCut = 0.0; + tCut = (*(theCoupleTable->GetEnergyCutsVector(1)))[m]; + tCut = std::min(tCut,highKineticEnergy); + + cutForDelta.push_back(tCut); + + const G4ElementVector* theElementVector = material->GetElementVector(); + size_t NumberOfElements = material->GetNumberOfElements() ; + const G4double* theAtomicNumDensityVector = + material->GetAtomicNumDensityVector(); + const G4double electronVolumeDensity = + material->GetTotNbOfElectPerVolume(); //electron density + if(verboseLevel > 0) { + G4cout << "Energy loss for material # " << m + << " tCut(keV)= " << tCut/keV + << G4endl; + } + + // now comes the loop for the kinetic energy values + for (size_t i = 0; iGetLowEdgeEnergy(i); + G4double ionloss = 0.; + + // loop for elements in the material + for (size_t iel=0; ielGetZ()); + ionloss += + CalculateContinuous(lowEdgeEnergy,tCut,Z,electronVolumeDensity, + aParticleType) * theAtomicNumDensityVector[iel]; + + if(verboseLevel > 1) { + G4cout << "Z= " << Z + << " E(keV)= " << lowEdgeEnergy/keV + << " loss= " << ionloss + << " rho= " << theAtomicNumDensityVector[iel] + << G4endl; + } + } + aVector->PutValue(i,ionloss); + } + theLossTable->insert(aVector); + } +} + + +G4VParticleChange* G4PenelopeIonisation::PostStepDoIt(const G4Track& track, + const G4Step& step) +{ + aParticleChange.Initialize(track); + + const G4MaterialCutsCouple* couple = track.GetMaterialCutsCouple(); + const G4DynamicParticle* incidentElectron = track.GetDynamicParticle(); + const G4Material* material = couple->GetMaterial(); + const G4double electronVolumeDensity = + material->GetTotNbOfElectPerVolume(); //electron density + const G4ParticleDefinition* aParticleType = track.GetDefinition(); + G4double kineticEnergy0 = incidentElectron->GetKineticEnergy(); + G4ParticleMomentum electronDirection0 = incidentElectron->GetMomentumDirection(); + + //Inizialisation of variables + kineticEnergy1=kineticEnergy0; + cosThetaPrimary=1.0; + energySecondary=0.0; + cosThetaSecondary=1.0; + + G4int Z = crossSectionHandler->SelectRandomAtom(couple, kineticEnergy0); + G4int index = couple->GetIndex(); + G4double tCut = cutForDelta[index]; + + if (aParticleType==G4Electron::Electron()){ + CalculateDiscreteForElectrons(kineticEnergy0,tCut,Z,electronVolumeDensity); + } + else if (aParticleType==G4Positron::Positron()){ + CalculateDiscreteForPositrons(kineticEnergy0,tCut,Z,electronVolumeDensity); + } + // the method CalculateDiscrete() sets the private variables: + // kineticEnergy1 = energy of the primary electron after the interaction + // cosThetaPrimary = cos(theta) of the primary after the interaction + // energySecondary = energy of the secondary electron + // cosThetaSecondary = cos(theta) of the secondary + + if(energySecondary == 0.0) + { + return G4VContinuousDiscreteProcess::PostStepDoIt(track, step); + } + + //Update the primary particle + G4double sint = sqrt(1. - cosThetaPrimary*cosThetaPrimary); + G4double phi = twopi * G4UniformRand(); + G4double dirx = sint * cos(phi); + G4double diry = sint * sin(phi); + G4double dirz = cosThetaPrimary; + + G4ThreeVector electronDirection1(dirx,diry,dirz); + electronDirection1.rotateUz(electronDirection0); + aParticleChange.SetMomentumDirectionChange(electronDirection1) ; + + if (kineticEnergy1 > 0.) + { + aParticleChange.SetEnergyChange(kineticEnergy1) ; + } + else + { + aParticleChange.SetEnergyChange(0.) ; + aParticleChange.SetStatusChange(fStopAndKill); + } + + //Generate the delta day + G4int iosc2 = 0; + G4double ionEnergy = 0.0; + if (iOsc > 0) { + ionEnergy=(*(ionizationEnergy->find(Z)->second))[iOsc]; + iosc2 = (ionizationEnergy->find(Z)->second->size()) - iOsc; //they are in reversed order + } + + const G4AtomicTransitionManager* transitionManager = G4AtomicTransitionManager::Instance(); + G4double bindingEnergy = 0.0; + G4int shellId = 0; + if (iOsc > 0){ + const G4AtomicShell* shell = transitionManager->Shell(Z,iosc2); + bindingEnergy = shell->BindingEnergy(); + shellId = shell->ShellId(); + } + ionEnergy = std::max(bindingEnergy,ionEnergy); //protection against energy non-conservation + G4double eKineticEnergy = energySecondary; + + size_t nTotPhotons=0; + G4int nPhotons=0; + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t indx = couple->GetIndex(); + G4double cutg = (*(theCoupleTable->GetEnergyCutsVector(0)))[indx]; + cutg = std::min(cutForPhotons,cutg); + + G4double cute = (*(theCoupleTable->GetEnergyCutsVector(1)))[indx]; + cute = std::min(cutForPhotons,cute); + + std::vector* photonVector=0; + G4DynamicParticle* aPhoton; + // G4AtomicDeexciation deexcitationManager; + + if (Z>5 && (ionEnergy > cutg || ionEnergy > cute)) + { + photonVector = deexcitationManager.GenerateParticles(Z,shellId); + nTotPhotons = photonVector->size(); + for (size_t k=0;kGetDefinition() == G4Electron::Electron()) itsCut = cute; + G4double itsEnergy = aPhoton->GetKineticEnergy(); + if (itsEnergy > itsCut && itsEnergy <= ionEnergy) + { + nPhotons++; + ionEnergy -= itsEnergy; + } + else + { + delete aPhoton; + (*photonVector)[k]=0; + } + } + } + } + G4double energyDeposit=ionEnergy; //il deposito locale e' quello che rimane + G4int nbOfSecondaries=nPhotons; + + // Generate the delta ray + G4double sin2 = sqrt(1. - cosThetaSecondary*cosThetaSecondary); + G4double phi2 = twopi * G4UniformRand(); + G4DynamicParticle* electron = 0; + + G4double xEl = sin2 * cos(phi2); + G4double yEl = sin2 * sin(phi2); + G4double zEl = cosThetaSecondary; + G4ThreeVector eDirection(xEl,yEl,zEl); //electron direction + + electron = new G4DynamicParticle (G4Electron::Electron(), + eDirection,eKineticEnergy) ; + nbOfSecondaries++; + + aParticleChange.SetNumberOfSecondaries(nbOfSecondaries); + if (electron) aParticleChange.AddSecondary(electron); + for (size_t ll=0;llGetIndex(); + const G4VEMDataSet* data = theMeanFreePath->GetComponent(index); + G4double meanFreePath = data->FindValue(track.GetKineticEnergy()); + return meanFreePath; +} + +void G4PenelopeIonisation::SetCutForLowEnSecPhotons(G4double cut) +{ + cutForPhotons = cut; + deexcitationManager.SetCutForSecondaryPhotons(cut); +} + +void G4PenelopeIonisation::SetCutForLowEnSecElectrons(G4double cut) +{ + cutForElectrons = cut; + deexcitationManager.SetCutForAugerElectrons(cut); +} + +void G4PenelopeIonisation::ActivateAuger(G4bool val) +{ + deexcitationManager.ActivateAugerElectronProduction(val); +} + + +void G4PenelopeIonisation::CalculateDiscreteForElectrons(G4double ene,G4double cutoff, + G4int Z,G4double electronVolumeDensity) +{ + kineticEnergy1=ene; + cosThetaPrimary=1.0; + energySecondary=0.0; + cosThetaSecondary=1.0; + iOsc=-1; + //constants + G4double rb=ene+2.0*electron_mass_c2; + G4double gamma = 1.0+ene/electron_mass_c2; + G4double gamma2 = gamma*gamma; + G4double beta2 = (gamma2-1.0)/gamma2; + G4double amol = pow((gamma-1.0)/gamma,2); + G4double cps = ene*rb; + G4double cp = sqrt(cps); + + G4double delta = CalculateDeltaFermi(ene,Z,electronVolumeDensity); + G4double distantTransvCS0 = std::max(log(gamma2)-beta2-delta,0.0); + + G4double rl,rl1; + G4DataVector* qm = new G4DataVector(); + G4DataVector* cumulHardCS = new G4DataVector(); + G4DataVector* typeOfInteraction = new G4DataVector(); + G4DataVector* nbOfLevel = new G4DataVector(); + + if (cutoff > ene) return; //delta rays are not generated + + //Hard close collisions with outer shells + G4double wmaxc = 0.5*ene; + G4double closeCS0 = 0.0; + G4double closeCS = 0.0; + if (cutoff>0.1*eV) + { + rl=cutoff/ene; + rl1=1.0-rl; + if (rl < 0.5) + closeCS0 = (amol*(0.5-rl)+(1.0/rl)-(1.0/rl1)+(1.0-amol)*log(rl/rl1))/ene; + } + + // Cross sections for the different oscillators + + // totalHardCS contains the cumulative hard interaction cross section for the different + // excitable levels and the different interaction channels (close, distant, etc.), + // i.e. + // cumulHardCS[0] = 0.0 + // cumulHardCS[1] = 1st excitable level (distant longitudinal only) + // cumulHardCS[2] = 1st excitable level (distant longitudinal + transverse) + // cumulHardCS[3] = 1st excitable level (distant longitudinal + transverse + close) + // cumulHardCS[4] = 1st excitable level (all channels) + 2nd excitable level (distant long only) + // etc. + // This is used for sampling the atomic level which is ionised and the channel of the + // interaction. + // + // For each index iFill of the cumulHardCS vector, + // nbOfLevel[iFill] contains the current excitable atomic level and + // typeOfInteraction[iFill] contains the current interaction channel, with the legenda: + // 1 = distant longitudinal interaction + // 2 = distant transverse interaction + // 3 = close collision + // 4 = close collision with outer shells (in this case nbOfLevel < 0 --> no binding energy) + + + G4int nOscil = ionizationEnergy->find(Z)->second->size(); + G4double totalHardCS = 0.0; + G4double involvedElectrons = 0.0; + for (G4int i=0;ifind(Z)->second))[i]; + G4int occupNb = (G4int) (*(occupationNumber->find(Z)->second))[i]; + //Distant excitations + if (wi>cutoff && wi(1e-6*ene)){ + G4double cpp=sqrt((ene-wi)*(ene-wi+2.0*electron_mass_c2)); + qm->push_back(sqrt(pow(cp-cpp,2)+electron_mass_c2*electron_mass_c2)-electron_mass_c2); + } + else + { + qm->push_back(pow(wi,2)/(beta2*2.0*electron_mass_c2)); + } + //verificare che quando arriva qui il vettore ha SEMPRE l'i-esimo elemento + if ((*qm)[i] < wi) + { + + G4double distantLongitCS = occupNb*log(wi*((*qm)[i]+2.0*electron_mass_c2)/ + ((*qm)[i]*(wi+2.0*electron_mass_c2)))/wi; + cumulHardCS->push_back(totalHardCS); + typeOfInteraction->push_back(1.0); //distant longitudinal + nbOfLevel->push_back((G4double) i); //only excitable level are counted + totalHardCS += distantLongitCS; + + G4double distantTransvCS = occupNb*distantTransvCS0/wi; + + cumulHardCS->push_back(totalHardCS); + typeOfInteraction->push_back(2.0); //distant tranverse + nbOfLevel->push_back((G4double) i); + totalHardCS += distantTransvCS; + } + } + else + { + qm->push_back(wi); + } + //close collisions + if(wi < wmaxc){ + if (wi < cutoff) { + involvedElectrons += occupNb; + } + else + { + rl=wi/ene; + rl1=1.0-rl; + closeCS = occupNb*(amol*(0.5-rl)+(1.0/rl)-(1.0/rl1)+(1.0-amol)*log(rl/rl1))/ene; + cumulHardCS->push_back(totalHardCS); + typeOfInteraction->push_back(3.0); //close + nbOfLevel->push_back((G4double) i); + totalHardCS += closeCS; + } + } + } // loop on the levels + + cumulHardCS->push_back(totalHardCS); + typeOfInteraction->push_back(4.0); //close interaction with outer shells + nbOfLevel->push_back(-1.0); + totalHardCS += involvedElectrons*closeCS0; + cumulHardCS->push_back(totalHardCS); //this is the final value of the totalHardCS + + if (totalHardCS < 1e-30) { + kineticEnergy1=ene; + cosThetaPrimary=1.0; + energySecondary=0.0; + cosThetaSecondary=0.0; + iOsc=-1; + return; + } + + + //Selection of the active oscillator on the basis of the cumulative cross sections + G4double TST = totalHardCS*G4UniformRand(); + G4int is=0; + G4int js= nbOfLevel->size(); + do{ + G4int it=(is+js)/2; + if (TST > (*cumulHardCS)[it]) is=it; + if (TST <= (*cumulHardCS)[it]) js=it; + }while((js-is) > 1); + + G4double UII=0.0; + G4double rkc=cutoff/ene; + G4double dde; + G4int kks; + + G4double sampledInteraction = (*typeOfInteraction)[is]; + iOsc = (G4int) (*nbOfLevel)[is]; + + //Generates the final state according to the sampled level and + //interaction channel + + if (sampledInteraction == 1.0) //Hard distant longitudinal collisions + { + dde= (*(resonanceEnergy->find(Z)->second))[iOsc]; + kineticEnergy1=ene-dde; + G4double qs=(*qm)[iOsc]/(1.0+((*qm)[iOsc]/(2.0*electron_mass_c2))); + G4double q=qs/(pow((qs/dde)*(1.0+(0.5*dde/electron_mass_c2)),G4UniformRand())-(0.5*qs/electron_mass_c2)); + G4double qtrev = q*(q+2.0*electron_mass_c2); + G4double cpps = kineticEnergy1*(kineticEnergy1+2.0*electron_mass_c2); + cosThetaPrimary = (cpps+cps-qtrev)/(2.0*cp*sqrt(cpps)); + if (cosThetaPrimary>1.0) cosThetaPrimary=1.0; + //Energy and emission angle of the delta ray + kks = (G4int) (*(shellFlag->find(Z)->second))[iOsc]; + if (kks>4) + { + energySecondary=dde; + } + else + { + energySecondary=dde-(*(ionizationEnergy->find(Z)->second))[iOsc]; + } + cosThetaSecondary = 0.5*(dde*(ene+rb-dde)+qtrev)/sqrt(cps*qtrev); + if (cosThetaSecondary>1.0) cosThetaSecondary=1.0; + } + + else if (sampledInteraction == 2.0) //Hard distant transverse collisions + { + dde=(*(resonanceEnergy->find(Z)->second))[iOsc]; + kineticEnergy1=ene-dde; + cosThetaPrimary=1.0; + //Energy and emission angle of the delta ray + kks = (G4int) (*(shellFlag->find(Z)->second))[iOsc]; + if (kks>4) + { + energySecondary=dde; + } + else + { + energySecondary=dde-(*(ionizationEnergy->find(Z)->second))[iOsc]; + } + cosThetaSecondary = 1.0; + } + + else if (sampledInteraction == 3.0 || sampledInteraction == 4.0) //Close interaction + { + if (sampledInteraction == 4.0) //interaction with inner shells + { + UII=0.0; + rkc = cutoff/ene; + iOsc = -1; + } + else + { + kks = (G4int) (*(shellFlag->find(Z)->second))[iOsc]; + if (kks > 4) { + UII=0.0; + } + else + { + UII = (*(ionizationEnergy->find(Z)->second))[iOsc]; + } + rkc = (*(resonanceEnergy->find(Z)->second))[iOsc]/ene; + } + G4double A = 0.5*amol; + G4double arkc = A*0.5*rkc; + G4double phi,rk2,rk,rkf; + do{ + G4double fb = (1.0+arkc)*G4UniformRand(); + if (fb<1.0) + { + rk=rkc/(1.0-fb*(1.0-(rkc*2.0))); + } + else{ + rk = rkc+(fb-1.0)*(0.5-rkc)/arkc; + } + rk2 = rk*rk; + rkf = rk/(1.0-rk); + phi = 1.0+pow(rkf,2)-rkf+amol*(rk2+rkf); + }while ((G4UniformRand()*(1.0+A*rk2)) > phi); + //Energy and scattering angle (primary electron); + kineticEnergy1 = ene*(1.0-rk); + cosThetaPrimary = sqrt(kineticEnergy1*rb/(ene*(rb-(rk*ene)))); + //Energy and scattering angle of the delta ray + energySecondary = ene-kineticEnergy1-UII; + cosThetaSecondary = sqrt(rk*ene*rb/(ene*(rk*ene+2.0*electron_mass_c2))); + } + + else + + { + G4String excep = "G4PenelopeIonisation - Error in the calculation of the final state"; + G4Exception(excep); + } + + delete qm; + delete cumulHardCS; + delete typeOfInteraction; + delete nbOfLevel; + + return; +} + +void G4PenelopeIonisation::ReadData() +{ + char* path = getenv("G4LEDATA"); + if (!path) + { + G4String excep = "G4PenelopeIonisation - G4LEDATA environment variable not set!"; + G4Exception(excep); + } + G4String pathString(path); + G4String pathFile = pathString + "/penelope/ion-pen.dat"; + std::ifstream file(pathFile); + std::filebuf* lsdp = file.rdbuf(); + + if (!(lsdp->is_open())) + { + G4String excep = "G4PenelopeIonisation - data file " + pathFile + " not found!"; + G4Exception(excep); + } + + G4int k1,test,test1,k2,k3; + G4double a1,a2,a3,a4; + G4int Z=1,nLevels=0; + G4DataVector* x1; + G4DataVector* x2; + G4DataVector* x3; + G4DataVector* x4; + + do{ + x1 = new G4DataVector; + x2 = new G4DataVector; + x3 = new G4DataVector; + x4 = new G4DataVector; + file >> Z >> nLevels; + for (G4int h=0;h> k1 >> a1 >> a2 >> a3 >> a4 >> k2 >> k3; + x1->push_back(a1); + x2->push_back(a2); + x3->push_back(a3); + x4->push_back((G4double) k3); + } + occupationNumber->insert(std::make_pair(Z,x1)); + ionizationEnergy->insert(std::make_pair(Z,x2)); + resonanceEnergy->insert(std::make_pair(Z,x3)); + shellFlag->insert(std::make_pair(Z,x4)); + file >> test >> test1; //-1 -1 close the data for each Z + if (test > 0) { + G4String excep = "G4PenelopeIonisation - data file corrupted!"; + G4Exception(excep); + } + }while (test != -2); //the very last Z is closed with -2 instead of -1 +}; + + +G4double G4PenelopeIonisation::CalculateDeltaFermi(G4double ene,G4int Z, + G4double electronVolumeDensity) +{ + G4double plasmaEnergyCoefficient = 1.377e-39; //(e*hbar)^2/(epsilon0*electron_mass) + G4double plasmaEnergySquared = plasmaEnergyCoefficient*(electronVolumeDensity*m3); + // sqrt(plasmaEnergySquared) is the plasma energy of the solid (MeV) + G4double gam = 1.0+ene/electron_mass_c2; + G4double gam2=gam*gam; + G4double delta = 0.0; + + //Density effect + G4double TST = ((G4double) Z)/(gam2*plasmaEnergySquared); + + G4double wl2 = 0.0; + G4double fdel=0.0; + G4double wr=0; + size_t nbOsc = resonanceEnergy->find(Z)->second->size(); + for(size_t i=0;ifind(Z)->second))[i]; + wr = (*(resonanceEnergy->find(Z)->second))[i]; + fdel += occupNb/(wr*wr+wl2); + } + if (fdel < TST) return delta; + wl2 = pow((*(resonanceEnergy->find(Z)->second))[nbOsc-1],2); + do{ + wl2=wl2*2.0; + fdel = 0.0; + for (size_t ii=0;iifind(Z)->second))[ii]; + wr = (*(resonanceEnergy->find(Z)->second))[ii]; + fdel += occupNb/(wr*wr+wl2); + } + }while (fdel > TST); + G4double wl2l=0.0; + G4double wl2u = wl2; + G4double control = 0.0; + do{ + wl2=0.5*(wl2l+wl2u); + fdel = 0.0; + for (size_t jj=0;jjfind(Z)->second))[jj]; + wr = (*(resonanceEnergy->find(Z)->second))[jj]; + fdel += occupNb/(wr*wr+wl2); + } + if (fdel > TST) + { + wl2l = wl2; + } + else + { + wl2u = wl2; + } + control = wl2u-wl2l-wl2*1e-12; + }while(control>0); + + //Density correction effect + for (size_t kk=0;kkfind(Z)->second))[kk]; + wr = (*(resonanceEnergy->find(Z)->second))[kk]; + delta += occupNb*log(1.0+wl2/(wr*wr)); + } + delta = (delta/((G4double) Z))-wl2/(gam2*plasmaEnergySquared); + return delta; +} + +G4double G4PenelopeIonisation::CalculateContinuous(G4double ene,G4double cutoff, + G4int Z,G4double electronVolumeDensity, + const G4ParticleDefinition& particle) +{ + //Constants + G4double gamma = 1.0+ene/electron_mass_c2; + G4double gamma2 = gamma*gamma; + G4double beta2 = (gamma2-1.0)/gamma2; + G4double constant = pi*pow(classic_electr_radius,2)*2.0*electron_mass_c2/beta2; + + + G4double delta = CalculateDeltaFermi(ene,Z,electronVolumeDensity); + G4int nbOsc = (G4int) resonanceEnergy->find(Z)->second->size(); + G4double S1 = 0.0; + G4double stoppingPower = 0.0; + for (G4int i=0;ifind(Z)->second))[i]; + if (&particle == G4Electron::Electron()) + { + S1 = CalculateStoppingPowerForElectrons(ene,resEnergy,delta,cutoff); + } + else if (&particle == G4Positron::Positron()) + { + S1 = CalculateStoppingPowerForPositrons(ene,resEnergy,delta,cutoff); + } + G4double occupNb = (*(occupationNumber->find(Z)->second))[i]; + stoppingPower += occupNb*constant*S1; + } + + return stoppingPower; +} + +G4double G4PenelopeIonisation::CalculateStoppingPowerForElectrons(G4double ene,G4double resEne, + G4double delta,G4double cutoff) +{ + //Calculate constants + G4double gamma = 1.0+ene/electron_mass_c2; + G4double gamma2 = gamma*gamma; + G4double beta2 = (gamma2-1.0)/gamma2; + G4double cps = ene*(ene+2.0*electron_mass_c2); + G4double amol = pow((gamma-1.0)/gamma,2); + G4double sPower = 0.0; + if (ene < resEne) return sPower; + + //Distant interactions + G4double cp1s = (ene-resEne)*(ene-resEne+2.0*electron_mass_c2); + G4double cp1 = sqrt(cp1s); + G4double cp = sqrt(cps); + G4double sdLong=0.0, sdTrans = 0.0, sdDist=0.0; + + //Distant longitudinal interactions + G4double qm = 0.0; + + if (resEne > ene*(1e-6)) + { + qm = sqrt(pow(cp-cp1,2)+pow(electron_mass_c2,2))-electron_mass_c2; + } + else + { + qm = resEne*resEne/(beta2*2.0*electron_mass_c2); + qm = qm*(1.0-0.5*qm/electron_mass_c2); + } + + if (qm < resEne) + { + sdLong = log(resEne*(qm+2.0*electron_mass_c2)/(qm*(resEne+2.0*electron_mass_c2))); + } + else + { + sdLong = 0.0; + } + + if (sdLong > 0) { + sdTrans = std::max(log(gamma2)-beta2-delta,0.0); + sdDist = sdTrans + sdLong; + if (cutoff > resEne) sPower = sdDist; + } + + + // Close collisions (Moeller's cross section) + G4double wl = std::max(cutoff,resEne); + G4double wu = 0.5*ene; + + if (wl < (wu-1*eV)) wu=wl; + wl = resEne; + if (wl > (wu-1*eV)) return sPower; + sPower += log(wu/wl)+(ene/(ene-wu))-(ene/(ene-wl)) + + (2.0 - amol)*log((ene-wu)/(ene-wl)) + + amol*(pow(wu,2)-pow(wl,2))/(2.0*pow(ene,2)); + + return sPower; +} + +G4double G4PenelopeIonisation::CalculateStoppingPowerForPositrons(G4double ene,G4double resEne, + G4double delta,G4double cutoff) +{ + //Calculate constants + G4double gamma = 1.0+ene/electron_mass_c2; + G4double gamma2 = gamma*gamma; + G4double beta2 = (gamma2-1.0)/gamma2; + G4double cps = ene*(ene+2.0*electron_mass_c2); + G4double amol = pow(ene/(ene+electron_mass_c2),2); + G4double bha1 = amol*(2.0*pow(gamma+1.0,2)-1.0)/(gamma2-1.0); + G4double bha2 = amol*(3.0+1.0/pow(gamma+1.0,2)); + G4double bha3 = amol*2.0*gamma*(gamma-1.0)/pow(gamma+1.0,2); + G4double bha4 = amol*pow(gamma-1.0,2)/pow(gamma+1.0,2); + + G4double sPower = 0.0; + if (ene < resEne) return sPower; + + //Distant interactions + G4double cp1s = (ene-resEne)*(ene-resEne+2.0*electron_mass_c2); + G4double cp1 = sqrt(cp1s); + G4double cp = sqrt(cps); + G4double sdLong=0.0, sdTrans = 0.0, sdDist=0.0; + + //Distant longitudinal interactions + G4double qm = 0.0; + + if (resEne > ene*(1e-6)) + { + qm = sqrt(pow(cp-cp1,2)+pow(electron_mass_c2,2))-electron_mass_c2; + } + else + { + qm = resEne*resEne/(beta2*2.0*electron_mass_c2); + qm = qm*(1.0-0.5*qm/electron_mass_c2); + } + + if (qm < resEne) + { + sdLong = log(resEne*(qm+2.0*electron_mass_c2)/(qm*(resEne+2.0*electron_mass_c2))); + } + else + { + sdLong = 0.0; + } + + if (sdLong > 0) { + sdTrans = std::max(log(gamma2)-beta2-delta,0.0); + sdDist = sdTrans + sdLong; + if (cutoff > resEne) sPower = sdDist; + } + + + // Close collisions (Bhabha's cross section) + G4double wl = std::max(cutoff,resEne); + G4double wu = ene; + + if (wl < (wu-1*eV)) wu=wl; + wl = resEne; + if (wl > (wu-1*eV)) return sPower; + sPower += log(wu/wl)-bha1*(wu-wl)/ene + + bha2*(pow(wu,2)-pow(wl,2))/(2.0*pow(ene,2)) + - bha3*(pow(wu,3)-pow(wl,3))/(3.0*pow(ene,3)) + + bha4*(pow(wu,4)-pow(wl,4))/(4.0*pow(ene,4)); + + return sPower; +} + +void G4PenelopeIonisation::CalculateDiscreteForPositrons(G4double ene,G4double cutoff, + G4int Z,G4double electronVolumeDensity) + +{ + kineticEnergy1=ene; + cosThetaPrimary=1.0; + energySecondary=0.0; + cosThetaSecondary=1.0; + iOsc=-1; + //constants + G4double rb=ene+2.0*electron_mass_c2; + G4double gamma = 1.0+ene/electron_mass_c2; + G4double gamma2 = gamma*gamma; + G4double beta2 = (gamma2-1.0)/gamma2; + G4double amol = pow((gamma-1.0)/gamma,2); + G4double cps = ene*rb; + G4double cp = sqrt(cps); + G4double bha1 = amol*(2.0*pow(gamma+1.0,2)-1.0)/(gamma2-1.0); + G4double bha2 = amol*(3.0+1.0/pow(gamma+1.0,2)); + G4double bha3 = amol*2.0*gamma*(gamma-1.0)/pow(gamma+1.0,2); + G4double bha4 = amol*pow(gamma-1.0,2)/pow(gamma+1.0,2); + + G4double delta = CalculateDeltaFermi(ene,Z,electronVolumeDensity); + G4double distantTransvCS0 = std::max(log(gamma2)-beta2-delta,0.0); + + G4double rl,rl1; + G4DataVector* qm = new G4DataVector(); + G4DataVector* cumulHardCS = new G4DataVector(); + G4DataVector* typeOfInteraction = new G4DataVector(); + G4DataVector* nbOfLevel = new G4DataVector(); + + if (cutoff > ene) return; //delta rays are not generated + + //Hard close collisions with outer shells + G4double wmaxc = ene; + G4double closeCS0 = 0.0; + G4double closeCS = 0.0; + if (cutoff>0.1*eV) + { + rl=cutoff/ene; + rl1=1.0-rl; + if (rl < 1.0) + closeCS0 = (((1.0/rl)-1.0) + bha1*log(rl) + bha2*rl1 + + (bha3/2.0)*(pow(rl,2)-1.0) + + (bha4/3.0)*(1.0-pow(rl,3)))/ene; + } + + // Cross sections for the different oscillators + + // totalHardCS contains the cumulative hard interaction cross section for the different + // excitable levels and the different interaction channels (close, distant, etc.), + // i.e. + // cumulHardCS[0] = 0.0 + // cumulHardCS[1] = 1st excitable level (distant longitudinal only) + // cumulHardCS[2] = 1st excitable level (distant longitudinal + transverse) + // cumulHardCS[3] = 1st excitable level (distant longitudinal + transverse + close) + // cumulHardCS[4] = 1st excitable level (all channels) + 2nd excitable level (distant long only) + // etc. + // This is used for sampling the atomic level which is ionised and the channel of the + // interaction. + // + // For each index iFill of the cumulHardCS vector, + // nbOfLevel[iFill] contains the current excitable atomic level and + // typeOfInteraction[iFill] contains the current interaction channel, with the legenda: + // 1 = distant longitudinal interaction + // 2 = distant transverse interaction + // 3 = close collision + // 4 = close collision with outer shells (in this case nbOfLevel < 0 --> no binding energy) + + + G4int nOscil = ionizationEnergy->find(Z)->second->size(); + G4double totalHardCS = 0.0; + G4double involvedElectrons = 0.0; + for (G4int i=0;ifind(Z)->second))[i]; + G4int occupNb = (G4int) (*(occupationNumber->find(Z)->second))[i]; + //Distant excitations + if (wi>cutoff && wi(1e-6*ene)){ + G4double cpp=sqrt((ene-wi)*(ene-wi+2.0*electron_mass_c2)); + qm->push_back(sqrt(pow(cp-cpp,2)+electron_mass_c2*electron_mass_c2)-electron_mass_c2); + } + else + { + qm->push_back(pow(wi,2)/(beta2+2.0*electron_mass_c2)); + } + //verificare che quando arriva qui il vettore ha SEMPRE l'i-esimo elemento + if ((*qm)[i] < wi) + { + + G4double distantLongitCS = occupNb*log(wi*((*qm)[i]+2.0*electron_mass_c2)/ + ((*qm)[i]*(wi+2.0*electron_mass_c2)))/wi; + cumulHardCS->push_back(totalHardCS); + typeOfInteraction->push_back(1.0); //distant longitudinal + nbOfLevel->push_back((G4double) i); //only excitable level are counted + totalHardCS += distantLongitCS; + + G4double distantTransvCS = occupNb*distantTransvCS0/wi; + + cumulHardCS->push_back(totalHardCS); + typeOfInteraction->push_back(2.0); //distant tranverse + nbOfLevel->push_back((G4double) i); + totalHardCS += distantTransvCS; + } + } + else + { + qm->push_back(wi); + } + //close collisions + if(wi < wmaxc){ + if (wi < cutoff) { + involvedElectrons += occupNb; + } + else + { + rl=wi/ene; + rl1=1.0-rl; + closeCS = occupNb*(((1.0/rl)-1.0)+bha1*log(rl)+bha2*rl1 + + (bha3/2.0)*(pow(rl,2)-1.0) + + (bha4/3.0)*(1.0-pow(rl,3)))/ene; + cumulHardCS->push_back(totalHardCS); + typeOfInteraction->push_back(3.0); //close + nbOfLevel->push_back((G4double) i); + totalHardCS += closeCS; + } + } + } // loop on the levels + + cumulHardCS->push_back(totalHardCS); + typeOfInteraction->push_back(4.0); //close interaction with outer shells + nbOfLevel->push_back(-1.0); + totalHardCS += involvedElectrons*closeCS0; + cumulHardCS->push_back(totalHardCS); //this is the final value of the totalHardCS + + if (totalHardCS < 1e-30) { + kineticEnergy1=ene; + cosThetaPrimary=1.0; + energySecondary=0.0; + cosThetaSecondary=0.0; + iOsc=-1; + return; + } + + + //Selection of the active oscillator on the basis of the cumulative cross sections + G4double TST = totalHardCS*G4UniformRand(); + G4int is=0; + G4int js= nbOfLevel->size(); + do{ + G4int it=(is+js)/2; + if (TST > (*cumulHardCS)[it]) is=it; + if (TST <= (*cumulHardCS)[it]) js=it; + }while((js-is) > 1); + + G4double UII=0.0; + G4double rkc=cutoff/ene; + G4double dde; + G4int kks; + + G4double sampledInteraction = (*typeOfInteraction)[is]; + iOsc = (G4int) (*nbOfLevel)[is]; + + //Generates the final state according to the sampled level and + //interaction channel + + if (sampledInteraction == 1.0) //Hard distant longitudinal collisions + { + dde= (*(resonanceEnergy->find(Z)->second))[iOsc]; + kineticEnergy1=ene-dde; + G4double qs=(*qm)[iOsc]/(1.0+((*qm)[iOsc]/(2.0*electron_mass_c2))); + G4double q=qs/(pow((qs/dde)*(1.0+(0.5*dde/electron_mass_c2)),G4UniformRand())-(0.5*qs/electron_mass_c2)); + G4double qtrev = q*(q+2.0*electron_mass_c2); + G4double cpps = kineticEnergy1*(kineticEnergy1+2.0*electron_mass_c2); + cosThetaPrimary = (cpps+cps-qtrev)/(2.0*cp*sqrt(cpps)); + if (cosThetaPrimary>1.0) cosThetaPrimary=1.0; + //Energy and emission angle of the delta ray + kks = (G4int) (*(shellFlag->find(Z)->second))[iOsc]; + if (kks>4) + { + energySecondary=dde; + } + else + { + energySecondary=dde-(*(ionizationEnergy->find(Z)->second))[iOsc]; + } + cosThetaSecondary = 0.5*(dde*(ene+rb-dde)+qtrev)/sqrt(cps*qtrev); + if (cosThetaSecondary>1.0) cosThetaSecondary=1.0; + } + + else if (sampledInteraction == 2.0) //Hard distant transverse collisions + { + dde=(*(resonanceEnergy->find(Z)->second))[iOsc]; + kineticEnergy1=ene-dde; + cosThetaPrimary=1.0; + //Energy and emission angle of the delta ray + kks = (G4int) (*(shellFlag->find(Z)->second))[iOsc]; + if (kks>4) + { + energySecondary=dde; + } + else + { + energySecondary=dde-(*(ionizationEnergy->find(Z)->second))[iOsc]; + } + cosThetaSecondary = 1.0; + } + + else if (sampledInteraction == 3.0 || sampledInteraction == 4.0) //Close interaction + { + if (sampledInteraction == 4.0) //interaction with inner shells + { + UII=0.0; + rkc = cutoff/ene; + iOsc = -1; + } + else + { + kks = (G4int) (*(shellFlag->find(Z)->second))[iOsc]; + if (kks > 4) { + UII=0.0; + } + else + { + UII = (*(ionizationEnergy->find(Z)->second))[iOsc]; + } + rkc = (*(resonanceEnergy->find(Z)->second))[iOsc]/ene; + } + G4double phi,rk; + do{ + rk=rkc/(1.0-G4UniformRand()*(1.0-rkc)); + phi = 1.0-rk*(bha1-rk*(bha2-rk*(bha3-bha4*rk))); + }while ( G4UniformRand() > phi); + //Energy and scattering angle (primary electron); + kineticEnergy1 = ene*(1.0-rk); + cosThetaPrimary = sqrt(kineticEnergy1*rb/(ene*(rb-(rk*ene)))); + //Energy and scattering angle of the delta ray + energySecondary = ene-kineticEnergy1-UII; + cosThetaSecondary = sqrt(rk*ene*rb/(ene*(rk*ene+2.0*electron_mass_c2))); + } + else + { + G4String excep = "G4PenelopeIonisation - Error in the calculation of the final state"; + G4Exception(excep); + } + + delete qm; + delete cumulHardCS; + delete typeOfInteraction; + delete nbOfLevel; + + return; +} + +// This stuff in needed in order to interface with the Cross Section Handler + +G4double G4PenelopeIonisation::CalculateCrossSectionsRatio(G4double ene,G4double cutoff, + G4int Z,G4double electronVolumeDensity, + const G4ParticleDefinition& particle) +{ + //Constants + G4double gamma = 1.0+ene/electron_mass_c2; + G4double gamma2 = gamma*gamma; + G4double beta2 = (gamma2-1.0)/gamma2; + G4double constant = pi*pow(classic_electr_radius,2)*2.0*electron_mass_c2/beta2; + G4double delta = CalculateDeltaFermi(ene,Z,electronVolumeDensity); + G4int nbOsc = (G4int) resonanceEnergy->find(Z)->second->size(); + G4double S0 = 0.0, H0=0.0; + G4double softCS = 0.0; + G4double hardCS = 0.0; + for (G4int i=0;ifind(Z)->second))[i]; + if (&particle == G4Electron::Electron()) + { + S0 = CrossSectionsRatioForElectrons(ene,resEnergy,delta,cutoff,1); + H0 = CrossSectionsRatioForElectrons(ene,resEnergy,delta,cutoff,2); + } + else if (&particle == G4Positron::Positron()) + { + S0 = CrossSectionsRatioForPositrons(ene,resEnergy,delta,cutoff,1); + H0 = CrossSectionsRatioForPositrons(ene,resEnergy,delta,cutoff,2); + } + G4double occupNb = (*(occupationNumber->find(Z)->second))[i]; + softCS += occupNb*constant*S0; + hardCS += occupNb*constant*H0; + } + G4double ratio = 0.0; + if (softCS+hardCS) ratio = (hardCS)/(softCS+hardCS); + return ratio; +} + + +G4double G4PenelopeIonisation::CrossSectionsRatioForElectrons(G4double ene,G4double resEne, + G4double delta,G4double cutoff, + G4int index) +{ + //Calculate constants + G4double gamma = 1.0+ene/electron_mass_c2; + G4double gamma2 = gamma*gamma; + G4double beta2 = (gamma2-1.0)/gamma2; + G4double cps = ene*(ene+2.0*electron_mass_c2); + G4double amol = pow(ene/(ene+electron_mass_c2),2); + G4double hardCont = 0.0; + G4double softCont = 0.0; + if (ene < resEne) return 0.0; + + //Distant interactions + G4double cp1s = (ene-resEne)*(ene-resEne+2.0*electron_mass_c2); + G4double cp1 = sqrt(cp1s); + G4double cp = sqrt(cps); + G4double sdLong=0.0, sdTrans = 0.0, sdDist=0.0; + + //Distant longitudinal interactions + G4double qm = 0.0; + + if (resEne > ene*(1e-6)) + { + qm = sqrt(pow(cp-cp1,2)+pow(electron_mass_c2,2))-electron_mass_c2; + } + else + { + qm = resEne*resEne/(beta2*2.0*electron_mass_c2); + qm = qm*(1.0-0.5*qm/electron_mass_c2); + } + + if (qm < resEne) + { + sdLong = log(resEne*(qm+2.0*electron_mass_c2)/(qm*(resEne+2.0*electron_mass_c2))); + } + else + { + sdLong = 0.0; + } + + if (sdLong > 0) { + sdTrans = std::max(log(gamma2)-beta2-delta,0.0); + sdDist = sdTrans + sdLong; + if (cutoff > resEne) + { + softCont = sdDist/resEne; + } + else + { + hardCont = sdDist/resEne; + } + } + + + // Close collisions (Moeller's cross section) + G4double wl = std::max(cutoff,resEne); + G4double wu = 0.5*ene; + + if (wl < (wu-1*eV)) + { + hardCont += (1.0/(ene-wu))-(1.0/(ene-wl)) + - (1.0/wu)+(1.0/wl) + + (1.0-amol)*log(((ene-wu)*wl)/((ene-wl)*wu))/ene + + amol*(wu-wl)/pow(ene,2); + wu=wl; + } + + wl = resEne; + if (wl > (wu-1*eV)) { + if (index == 1) return softCont; + if (index == 2) return hardCont; + } + softCont += (1.0/(ene-wu))-(1.0/(ene-wl)) + - (1.0/wu)+(1.0/wl) + + (1.0-amol)*log(((ene-wu)*wl)/((ene-wl)*wu))/ene + + amol*(wu-wl)/pow(ene,2); + if (index == 1) return softCont; + return hardCont; +} + +G4double G4PenelopeIonisation::CrossSectionsRatioForPositrons(G4double ene,G4double resEne, + G4double delta,G4double cutoff,G4int index) +{ + //Calculate constants + G4double gamma = 1.0+ene/electron_mass_c2; + G4double gamma2 = gamma*gamma; + G4double beta2 = (gamma2-1.0)/gamma2; + G4double cps = ene*(ene+2.0*electron_mass_c2); + G4double amol = pow(ene/(ene+electron_mass_c2),2); + G4double bha1 = amol*(2.0*pow(gamma+1.0,2)-1.0)/(gamma2-1.0); + G4double bha2 = amol*(3.0+1.0/pow(gamma+1.0,2)); + G4double bha3 = amol*2.0*gamma*(gamma-1.0)/pow(gamma+1.0,2); + G4double bha4 = amol*pow(gamma-1.0,2)/pow(gamma+1.0,2); + G4double hardCont = 0.0; + G4double softCont = 0.0; + if (ene < resEne) return 0.0; + + + //Distant interactions + G4double cp1s = (ene-resEne)*(ene-resEne+2.0*electron_mass_c2); + G4double cp1 = sqrt(cp1s); + G4double cp = sqrt(cps); + G4double sdLong=0.0, sdTrans = 0.0, sdDist=0.0; + + //Distant longitudinal interactions + G4double qm = 0.0; + + if (resEne > ene*(1e-6)) + { + qm = sqrt(pow(cp-cp1,2)+pow(electron_mass_c2,2))-electron_mass_c2; + } + else + { + qm = resEne*resEne/(beta2*2.0*electron_mass_c2); + qm = qm*(1.0-0.5*qm/electron_mass_c2); + } + + if (qm < resEne) + { + sdLong = log(resEne*(qm+2.0*electron_mass_c2)/(qm*(resEne+2.0*electron_mass_c2))); + } + else + { + sdLong = 0.0; + } + + if (sdLong > 0) { + sdTrans = std::max(log(gamma2)-beta2-delta,0.0); + sdDist = sdTrans + sdLong; + if (cutoff > resEne) + { + softCont = sdDist/resEne; + } + else + { + hardCont = sdDist/resEne; + } + } + + + // Close collisions (Bhabha's cross section) + G4double wl = std::max(cutoff,resEne); + G4double wu = ene; + + if (wl < (wu-1*eV)) { + hardCont += (1.0/wl)-(1.0/wu)-bha1*log(wu/wl)/ene + + bha2*(wu-wl)/pow(ene,2) -bha3*(pow(wu,2)-pow(wl,2))/(2.0*pow(ene,3)) + + bha4*(pow(wu,3)-pow(wl,3))/(3.0*pow(ene,4)); + wu=wl; + } + wl = resEne; + if (wl > (wu-1*eV)) + { + if (index == 1) return softCont; + if (index == 2) return hardCont; + } + softCont += (1.0/wl)-(1.0/wu)-bha1*log(wu/wl)/ene + + bha2*(wu-wl)/pow(ene,2) -bha3*(pow(wu,2)-pow(wl,2))/(2.0*pow(ene,3)) + + bha4*(pow(wu,3)-pow(wl,3))/(3.0*pow(ene,4)); + + if (index == 1) return softCont; + return hardCont; +} diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopePhotoElectric.cc index 0d7a84e5ab..e150fb80c6 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.7 2003/06/16 17:00:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: L. Pandola // diff --git a/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleigh.cc b/source/processes/electromagnetic/lowenergy/src/G4PenelopeRayleigh.cc index eabbe1310f..3feec97855 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.9 2003/06/16 17:00:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 12eaab88c9..14a537e6c4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3096636065..698774065c 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.4 2002/05/28 09:20:21 pia Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 1c42201a0a..12bd5f4d75 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellData.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShellData.cc,v 1.6 2003/06/16 17:00:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc index d5815234e7..032bd736b5 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4ShellEMDataSet.cc @@ -22,7 +22,7 @@ // // // $Id: G4ShellEMDataSet.cc,v 1.10 2003/06/16 17:00:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc index fde8131925..efcdb48fbc 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4VCrossSectionHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4VCrossSectionHandler.cc,v 1.13 2003/06/16 17:00:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4VeLowEnergyLoss.cc index 7cbdaaeba5..4b2bbd3bd1 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.23 2003/06/16 17:00:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc b/source/processes/electromagnetic/lowenergy/src/G4eBremsstrahlungSpectrum.cc index 778e7d5db2..682c204e82 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.11 2003/06/16 17:00:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationCrossSectionHandler.cc index 90f0332eb8..1372fa2081 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc index ea0f992a9f..b8e935bee9 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationParameters.cc @@ -22,7 +22,7 @@ // // // $Id: G4eIonisationParameters.cc,v 1.20 2003/06/16 17:00:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch) // diff --git a/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc b/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc index 7600248632..a363d44e0b 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eIonisationSpectrum.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // $Id: G4eIonisationSpectrum.cc,v 1.22 2003/06/16 17:00:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc b/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc index 8005e56a28..a8e679fc19 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4eLowEnergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4eLowEnergyLoss.cc,v 1.31 2003/06/16 17:00:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc index 1dc6097b57..587efe49b3 100644 --- a/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc +++ b/source/processes/electromagnetic/lowenergy/src/G4hLowEnergyIonisation.cc @@ -182,7 +182,7 @@ G4hLowEnergyIonisation::~G4hLowEnergyIonisation() G4int length = zFluoDataVector.size(); if(length) { for(G4int i=0; i Tbound, with three possibilities for Tcut: +5) Tcut < Tbound: restricted BBS energy loss (< Tcut), numerical calculation of the total +cross section with accurate formula and sampling with accurate formula are needed. +6) Tbound < Tcut < Tmax: for energy loss it is necessary to take “usual” restricted BBS +(< Tbound) plus “twice restricted” numerically integrated energy loss for the interval +(Tbound,Tcut), total cross section and sampling being similar to preceding point. +7) Tcut > Tmax: restricted BBS (< Tbound) plus twice restricted numerical (Tbound, +Tmax); discrete interactions are not simulated. + +RPK 10.05.2000 + diff --git a/source/processes/electromagnetic/muons/documents/mcs_qst.txt b/source/processes/electromagnetic/muons/documents/mcs_qst.txt new file mode 100644 index 0000000000..bd603d78c7 --- /dev/null +++ b/source/processes/electromagnetic/muons/documents/mcs_qst.txt @@ -0,0 +1,45 @@ +By R.P.Kokoulin, May 12th, 2000 + +Multiple Coulomb Scattering – some questions and problems + +Apart from the problems of creation and development of convenient +procedure for fast simulation of the effect, some principal questions are to be +answered (possibly, most of them have already been investigated) + +General + +Is it possible to use cross section formulae without magnetic formfactor and spin effects: + +a) for nucleus (probably yes); +b) for proton (possibly yes); +c) for electron (probably no). + +Should the scattering on the screened nucleus and on atomic electrons be considered +separately? (likely, they should; they probably can be combined later, but…) + +Scattering on the nucleus: + +a) influence of the choice of the elastic atomic formfactor (TF, HF, hydrogen-like, …); +there is a hope that the difference is small (with a proper choice of the parameters) but +it should be estimated; +b) influence of the nuclear size (it should influence RMS angle and distribution shape on +the tail); +c) influence of the choice of nuclear formfactor (exponential, Gaussian, Fermi model, +etc.); probably, it is small (only RMS nucleus radius is crucial) but it is better to +compare directly; +d) contribution of inelastic nucleus formfactor (incoherent scattering on protons of the +nucleus); +e) necessity of taking into account proton formfactor (for incoherent scattering); last two +points are expected to give small effect but need evaluation. + +Scattering on atomic electrons: + +a) introduction and influence of the choice of inelastic atomic formfactor (TH, +hydrogen-like exponential, what else?) – it should be evaluated; more simple +approaches, such as Z(Z+1) substitutions, seem to be incorrect; +b) problem of a double account for scattering on electrons if explicit simulation of the +elastic scattering of the projectile on electrons (possibly, above the cut Tcut) is +included (knock-on electron production with full kinematics) – the possible way is to +consider restricted multiple scattering (below Tcut). + + diff --git a/source/processes/electromagnetic/muons/documents/mcs_refs.txt b/source/processes/electromagnetic/muons/documents/mcs_refs.txt new file mode 100644 index 0000000000..deba603356 --- /dev/null +++ b/source/processes/electromagnetic/muons/documents/mcs_refs.txt @@ -0,0 +1,27 @@ +Some references concerning multiple scattering (May, 2000; RPK) + +1) S.Hayakawa. Cosmic Ray Physics. +2) S.Striganov. Nucl.Phys.B (Proc.Suppl.) 51A (1996) 172-178. +3) B.Rossi. High Energy Particles. +4) I.S.Baishev e.a. Sov.J.Nucl.Phys. 42 (1985) 745-749. +5) G.R.Lynch, O.I.Dahl. NIM B58 (1991) 6-10. +6) A.Van Ginneken. NIM A251 (1986) 21-39. +7) A.Van Ginneken. NIM A362 (1995) 213-223. +8) D.Liljequist. J.Appl.Phys. 62 (1987) 333-341. +9) D.Liljequist, M.Ismail. J.Appl.Phys. 62 (1987) 342-350. +10) D.Liljequist e.a. J.Appl.Phys. 68 (1990) 3061-3065. +11) G.Shen e.a. Phys.Rev.D 20 (1979) 1584-1588. +12) J.M.Fernandez-Varea e.a. NIM B73 (1993) 447-473. +13) P.Arce, M.Wadhwa. CMS Note 1999/000 (?). +14) L.Urban. G4 Phys.Ref.Manual (also G3toG4/quick overview and references). +15) G.Moliere. Z.Naturforsch. 2a (1947) 133-145. +16) G.Moliere. Z.Naturforsch. 3a (1948) 78-97. +17) H.A.Bethe. Phys.Rev. 89 (1953) 1256-1266. +18) W.T.Scott. Rev.Mod.Phys. 35 (1963) 231-313. +19) L.N.Cooper, J.Rainwater. Phys.Rev. 97 (1955) 492-504. +20) U.Fano. Phys.Rev. 93 (1954) 117-120. +21) H.W.Lewis. Phys.Rev. 78 (1950) 526-529. +22) S.Goudsmit, J.L.Sounderson. Phys.Rev. 57 (1940) 24-29. +23) S.Goudsmit, J.L.Sounderson. Phys.Rev. 58 (1940) 36-42. +24) Y.S.Tsai. Rev.Mod.Phys. 46 (1974) 815-851; ibid. 49 (1977) 421 - Errata. +25) L.V.Spencer, C.H.Blanchard. Phys.Rev. 93 (1954) 114-116. diff --git a/source/processes/electromagnetic/muons/documents/summary.txt b/source/processes/electromagnetic/muons/documents/summary.txt new file mode 100644 index 0000000000..190895631d --- /dev/null +++ b/source/processes/electromagnetic/muons/documents/summary.txt @@ -0,0 +1,47 @@ +Prepared by R.Kokoulin, May 22nd, 2000 + +Brief summary of G4 muon activity, May 2nd - May 23rd, 2000 +S.Kelner, R.Kokoulin, M.Maire, A.Rybin, L.Urban + +1. G4 muon tests +The test procedure of the verification of muon interaction simulation which allows to check +both mean free path calculation and energy transfer sampling has been suggested and +implemented. +First test results revealed appreciable deviations of the distributions of the energy loss from +theoretical dependencies (for bremsstrahlung, pair production, nuclear interaction). Several bugs +have been found and eliminated; it has greatly improved the agreement. +The program of further G4 muon tests has been prepared and agreed, including thin target +tests (extending the set of materials, energies, and increasing statistics), and thick target +simulation which will allow to verify the consistency of consideration of restricted continuous +energy loss. + +2. Refinement of the processes already implemented +Simple formulae and algorithm for sampling photon and muon angles in muon +bremsstrahlung have been suggested and prepared for implementation in G4. It will be coded in +the nearest days. +Final states for other processes (pair production, photonuclear interaction) have been +clarified, fixed and introduced into documentation. +Logical scheme of a consistent inclusion of bremsstrahlung correction in high-energy knock- +on electron production and ionisation energy loss is prepared. +List of questions concerning the validity of multiple scattering model has been compiled. +After answering these questions, the "calibration" simulation of MCS for high-energy muons can +be performed. + +3. Documentation +Sections concerning three basic muon interaction processes (bremsstrahlung, pair production, +photonuclear interaction) for PRM (Phys. Ref. Manual) have been extended, updated and +corrected. +Suggestions for improvements for the section in PRM about muon ionisation, and also +comments and corrections for "Electromagnetic Physics" gallery have been prepared. + +4. Extension of the muon interactions in G4 +List of muon processes for further inclusion in G4 has been discussed. The processes of +interest are: muon pair production by photon, muon pair production by muon, diffractive +bremsstrahlung (which leads to a difference in positive/negative muon energy loss). Refinement +of multiple scattering and introduction of the screening correction to bremsstrahlung and pair +production based on recent calculations of radiation logarithm in HF model are also important +and can improve the accuracy of G4-based simulations. The level of theoretical knowledge of +these processes is sufficient for their implementation into algorithms and codes. +Theoretical clarification of LPM and Coulomb corrections for electron pair production by +muons is needed; these are important both for accelerator and high-energy cosmic ray +applications. diff --git a/source/processes/electromagnetic/muons/documents/tasklist.txt b/source/processes/electromagnetic/muons/documents/tasklist.txt new file mode 100644 index 0000000000..daea702e7f --- /dev/null +++ b/source/processes/electromagnetic/muons/documents/tasklist.txt @@ -0,0 +1,36 @@ +List of problems with G4muons 15.05.00 + +(Rostislav, Andrew, Laszlo, Michel, Stas, …, May 15th – May 22nd ) + +1) Tests electromagnetic (conduction, search of the possible +sources of disagreement,…) +a) brems +b) pairs +c) knock-on + +2) Tests photonuclear + +3) Physics Reference Manual +Brems, pairs, photonuclear, ionisation +a) to agree +b) to correct +c) to verify +d) to commission + +4)”A Quick Overview” - corrections + +5) Summary Note on HE muons in G4 +a) to prepare draft +b) to discuss and to correct +c) to prepare the iteration (pre-final) + +6) Discussions: +a) final states in the above processes +b) multiple scattering – applicability for HE muons +c) muon pairs by photon +d) muon pairs by muon +e) diffractive bremsstrahlung +f) … + +7) Concluding remarks and summary + diff --git a/source/processes/electromagnetic/muons/documents/testlist.txt b/source/processes/electromagnetic/muons/documents/testlist.txt new file mode 100644 index 0000000000..d26e105d82 --- /dev/null +++ b/source/processes/electromagnetic/muons/documents/testlist.txt @@ -0,0 +1,47 @@ +List of tests of HE muon interactions in Geant4 +(By RPK 20-21.05.00) + +Thin target (to continue the works started): + +10 TeV, 100 cm iron, 10^5 muons, 4 processes: delta, brems, pairs, photonuclear + (to compare with the expectation: X*?(T,?)*?*N?*?lg*log10) + +Remaining problems found at the moment: + +1) Knock-on electron production for high-energy muons has to be modified (including +contribution from electron bremsstrahlung diagrams and radiative corrections); now it +is not implemented properly; +2) There is a hint for a peak near the edge of the distribution of energy lost by muon in +photonuclear interaction (similar to that which was found and eliminated earlier in the +bremsstrahlung); - problem has been solved! (L.U.,May 22nd) +3) It is not clear whether the energy lost by muon is equal to the energy transferred to +secondary particles (kinetic energy of delta-electron, total energy of electron and +positron in pair production, etc.). There is a hint that they are different. +4) With high statistics simulation, an error appears sometimes in +G4HEInelastic::GenerateNBodyEvent (total mass >= total energy). + +After the general agreement is reached, to extend these calculations (with additional +energy/material): + +Muon energies: 100 GeV and 10 TeV +Materials: iron (100 cm, or 787 g/cm^2) and carbon (graphite, 500 cm x 2.265 g/cm^3) + +Again, after the agreement is reached, to perform calculations for iron and carbon target +at 10 TeV energy with increased statistics (about 10^6 muons), to compare with +expectation (also in terms of the ratio "simulated/expected"), to prepare beautiful pictures +for inclusion in EM Physics gallery and other presentations. + +Thick target (distribution of the total energy lost by muon in bulk matter, including +continuous energy loss and all 4 discrete processes), 3 m iron, 1 TeV muon energy, +statistics about 10^5, then 10^6 muons: + +- histograms of the residual muon energy (in linear scale, 2 GeV bin) and of the energy +lost by muon (in log scale, 0.10 bin in common logarithm); comparison is possible +with Van Ginneken's TRAMU (the figure given by Particle Data Group) and with +Geant 3.21** (A.Rybin); also simulation with original Geant 3.21 is of interest - to +show, where it was wrong; +- cut variation: with cut = 1 - 100 MeV the distribution should be the same (in +particular, this is one of the tests of the consistency of continuous loss calculation); +- histograms of the scattering angle and lateral displacement (nothing to compare? may +be, Geant 3.21 ?). + diff --git a/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh b/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh index 22a243f50d..319c46e404 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBetheBlochModel.hh @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MuBetheBlochModel.hh,v 1.7 2003/06/16 17:01:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuBetheBlochModel.hh,v 1.8 2003/07/21 12:52:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -76,15 +76,15 @@ public: G4double MinEnergyCut(const G4ParticleDefinition*, const G4MaterialCutsCouple*); - + G4bool IsInCharge(const G4ParticleDefinition*); - virtual G4double ComputeDEDX(const G4Material*, + virtual G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy); - virtual G4double CrossSection(const G4Material*, + virtual G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh index a58ac579e2..beb73d4274 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.hh @@ -20,155 +20,137 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MuBremsstrahlung.hh,v 1.17 2003/11/12 16:18:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4MuBremsstrahlung.hh,v 1.15 2003/06/16 17:01:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- // -//--------------- G4MuBremsstrahlung physics process ------------------ -// by Laszlo Urban, September 1997 -//------------------------------------------------------------------------------ -// 10/02/00 modifications , new e.m. structure, L.Urban -// 10-08-01: new methods Store/Retrieve PhysicsTable (mma) +// GEANT4 Class header file +// +// +// File name: G4MuBremsstrahlung +// +// Author: Laszlo Urban +// +// Creation date: 30.09.1997 +// +// Modifications: +// +// 10/02/00 modifications , new e.m. structure, L.Urban +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) // 29-10-01 all static functions no more inlined (mma) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) -//------------------------------------------------------------------------------ +// 10-05-02 V.Ivanchenko update to new design +// 26-12-02 secondary production moved to derived classes (VI) +// 24-01-03 Make models region aware (V.Ivanchenko) +// 05-02-03 Fix compilation warnings (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) +// +// Class Description: +// +// This class manages the Bremsstrahlung process for muons. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossProcess. +// + +// ------------------------------------------------------------------- +// #ifndef G4MuBremsstrahlung_h #define G4MuBremsstrahlung_h 1 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4ios.hh" #include "globals.hh" -#include "Randomize.hh" -#include "G4VMuEnergyLoss.hh" -#include "G4Track.hh" -#include "G4Step.hh" -#include "G4OrderedTable.hh" -#include "G4PhysicsTable.hh" -#include "G4PhysicsLogVector.hh" -#include "G4MaterialCutsCouple.hh" +#include "G4VEnergyLossProcess.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4MuBremsstrahlung : public G4VMuEnergyLoss +class G4MuBremsstrahlung : public G4VEnergyLossProcess { - public: +public: - G4MuBremsstrahlung(const G4String& processName = "MuBrems"); + G4MuBremsstrahlung(const G4String& processName = "MuBrems"); - ~G4MuBremsstrahlung(); + ~G4MuBremsstrahlung(); - G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; - void BuildPhysicsTable(const G4ParticleDefinition& ParticleType); + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); - void BuildLossTable(const G4ParticleDefinition& ParticleType); + virtual std::vector* SecondariesAlongStep( + const G4Step&, + G4double&, + G4double&, + G4double&) {return 0;}; - void BuildLambdaTable(const G4ParticleDefinition& ParticleType); + virtual void SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&, + G4double&); - void PrintInfoDefinition(); + void PrintInfoDefinition(); + // Print out of the class parameters - G4double GetMeanFreePath(const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition ); +protected: - G4VParticleChange *PostStepDoIt(const G4Track& track, - const G4Step& Step ); + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); - G4double GetDMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double AtomicMass, - G4double GammaEnergy); + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); - G4bool StorePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // store eLoss and MeanFreePath tables into an external file - // specified by 'directory' (must exist before invokation) +private: - G4bool RetrievePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // retrieve eLoss and MeanFreePath tables from an external file - // specified by 'directory' - - protected: - - G4double ComputeMeanFreePath( const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple); - - void ComputePartialSumSigma( const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple); - - virtual G4double ComputeMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double AtomicMass, - G4double GammaEnergyCut); - - virtual G4double ComputeDMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double AtomicMass, - G4double GammaEnergy); - - private: - - G4MuBremsstrahlung & operator=(const G4MuBremsstrahlung &right); - G4MuBremsstrahlung(const G4MuBremsstrahlung&); - - G4double ComputeBremLoss(const G4ParticleDefinition* ParticleType, - G4double Z,G4double A, - G4double T, G4double Cut); - - const G4Element* SelectRandomAtom(const G4MaterialCutsCouple* couple) const; - - void MakeSamplingTables( const G4ParticleDefinition* ParticleType ); - - protected: - - virtual G4double SecondaryEnergyThreshold(size_t index); - - private: - - G4PhysicsTable* theMeanFreePathTable; - - G4OrderedTable PartialSumSigma; - - static G4double LowerBoundLambda; // bining for lambda table - static G4double UpperBoundLambda; - static G4int NbinLambda; - G4double LowestKineticEnergy,HighestKineticEnergy; - G4int TotBin; + void InitialiseProcess(); - const std::vector* secondaryEnergyCuts; + G4MuBremsstrahlung & operator=(const G4MuBremsstrahlung &right); + G4MuBremsstrahlung(const G4MuBremsstrahlung&); - // tables for sampling - static G4int nzdat,ntdat,NBIN; - static G4double zdat[5],adat[5],tdat[8]; - static G4double ya[1001],proba[5][8][1001]; - static G4double CutFixed; - - public: - - static void SetLowerBoundLambda(G4double val); - static void SetUpperBoundLambda(G4double val); - static void SetNbinLambda(G4int n); - static G4double GetLowerBoundLambda(); - static G4double GetUpperBoundLambda(); - static G4int GetNbinLambda(); + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double cut) +{ + return cut; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuBremsstrahlung::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) +{ + return dynParticle->GetKineticEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VEmModel.hh" + +inline void G4MuBremsstrahlung::SecondariesPostStep( + G4VEmModel* model, + const G4MaterialCutsCouple* couple, + const G4DynamicParticle* dp, + G4double& tcut, + G4double& kinEnergy) +{ + G4DynamicParticle* gamma = model->SampleSecondary(couple, dp, tcut, kinEnergy); + if(gamma) { + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(gamma); + kinEnergy -= gamma->GetKineticEnergy(); + } +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4MuBremsstrahlung.icc" - #endif diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.hh new file mode 100644 index 0000000000..fa0bca5e00 --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.hh @@ -0,0 +1,175 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MuBremsstrahlung52.hh,v 1.1 2003/08/08 11:28:39 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//--------------- G4MuBremsstrahlung52 physics process ------------------ +// by Laszlo Urban, September 1997 +//------------------------------------------------------------------------------ +// 10/02/00 modifications , new e.m. structure, L.Urban +// 10-08-01: new methods Store/Retrieve PhysicsTable (mma) +// 29-10-01 all static functions no more inlined (mma) +// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +//------------------------------------------------------------------------------ + +#ifndef G4MuBremsstrahlung52_h +#define G4MuBremsstrahlung52_h 1 + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4ios.hh" +#include "globals.hh" +#include "Randomize.hh" +#include "G4VMuEnergyLoss.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4OrderedTable.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsLogVector.hh" +#include "G4MaterialCutsCouple.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4MuBremsstrahlung52 : public G4VMuEnergyLoss + +{ + public: + + G4MuBremsstrahlung52(const G4String& processName = "MuBrems"); + + ~G4MuBremsstrahlung52(); + + G4bool IsApplicable(const G4ParticleDefinition&); + + void BuildPhysicsTable(const G4ParticleDefinition& ParticleType); + + void BuildLossTable(const G4ParticleDefinition& ParticleType); + + void BuildLambdaTable(const G4ParticleDefinition& ParticleType); + + void PrintInfoDefinition(); + + G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition ); + + G4VParticleChange *PostStepDoIt(const G4Track& track, + const G4Step& Step ); + + G4double GetDMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicMass, + G4double GammaEnergy); + + G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // store eLoss and MeanFreePath tables into an external file + // specified by 'directory' (must exist before invokation) + + G4bool RetrievePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // retrieve eLoss and MeanFreePath tables from an external file + // specified by 'directory' + + protected: + + G4double ComputeMeanFreePath( const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple); + + void ComputePartialSumSigma( const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple); + + virtual G4double ComputeMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicMass, + G4double GammaEnergyCut); + + virtual G4double ComputeDMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicMass, + G4double GammaEnergy); + + private: + + G4MuBremsstrahlung52 & operator=(const G4MuBremsstrahlung52 &right); + G4MuBremsstrahlung52(const G4MuBremsstrahlung52&); + + G4double ComputeBremLoss(const G4ParticleDefinition* ParticleType, + G4double Z,G4double A, + G4double T, G4double Cut); + + const G4Element* SelectRandomAtom(const G4MaterialCutsCouple* couple) const; + + void MakeSamplingTables( const G4ParticleDefinition* ParticleType ); + + protected: + + virtual G4double SecondaryEnergyThreshold(size_t index); + + private: + + G4PhysicsTable* theMeanFreePathTable; + + G4OrderedTable PartialSumSigma; + + static G4double LowerBoundLambda; // bining for lambda table + static G4double UpperBoundLambda; + static G4int NbinLambda; + G4double LowestKineticEnergy,HighestKineticEnergy; + G4int TotBin; + + + const std::vector* secondaryEnergyCuts; + + // tables for sampling + static G4int nzdat,ntdat,NBIN; + static G4double zdat[5],adat[5],tdat[8]; + static G4double ya[1001],proba[5][8][1001]; + static G4double CutFixed; + + public: + + static void SetLowerBoundLambda(G4double val); + static void SetUpperBoundLambda(G4double val); + static void SetNbinLambda(G4int n); + static G4double GetLowerBoundLambda(); + static G4double GetUpperBoundLambda(); + static G4int GetNbinLambda(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MuBremsstrahlung52.icc" + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.icc b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.icc similarity index 89% rename from source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.icc rename to source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.icc index d04dae75ea..b13d126b37 100644 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung.icc +++ b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlung52.icc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: G4MuBremsstrahlung.icc,v 1.10 2003/05/26 16:21:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuBremsstrahlung52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -//--------------- G4MuBremsstrahlung physics process ------------------ +//--------------- G4MuBremsstrahlung52 physics process ------------------ // by Laszlo Urban, September 1997 //------------------------------------------------------------------------------ // @@ -34,12 +34,13 @@ // 29.05.01 V.Ivanchenko minor changes to provide ANSI -wall compilation // 28-09-01 suppression of theMuonPlus ..etc..data members (mma) // 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) // //------------------------------------------------------------------------------ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MuBremsstrahlung::GetMeanFreePath(const G4Track& trackData, +inline G4double G4MuBremsstrahlung52::GetMeanFreePath(const G4Track& trackData, G4double, G4ForceCondition* condition) { @@ -66,7 +67,7 @@ inline G4double G4MuBremsstrahlung::GetMeanFreePath(const G4Track& trackData, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MuBremsstrahlung::ComputeMeanFreePath( +inline G4double G4MuBremsstrahlung52::ComputeMeanFreePath( const G4ParticleDefinition* ParticleType, G4double KineticEnergy, const G4MaterialCutsCouple* couple) @@ -92,7 +93,7 @@ inline G4double G4MuBremsstrahlung::ComputeMeanFreePath( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4bool G4MuBremsstrahlung::IsApplicable( +inline G4bool G4MuBremsstrahlung52::IsApplicable( const G4ParticleDefinition& particle) { return ((&particle == G4MuonPlus::MuonPlus() ) || @@ -101,7 +102,7 @@ inline G4bool G4MuBremsstrahlung::IsApplicable( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MuBremsstrahlung::SecondaryEnergyThreshold(size_t index) +inline G4double G4MuBremsstrahlung52::SecondaryEnergyThreshold(size_t index) { return (*secondaryEnergyCuts)[index]; } diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungModel.hh index 5f71eb8b87..969bfcc2d1 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.7 2003/06/16 17:01:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuBremsstrahlungModel.hh,v 1.8 2003/07/21 12:52:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -54,6 +54,8 @@ #include "G4VEmModel.hh" +class G4Element; + class G4MuBremsstrahlungModel : public G4VEmModel { @@ -78,12 +80,12 @@ public: G4bool IsInCharge(const G4ParticleDefinition*); - G4double ComputeDEDX(const G4Material*, + G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy); - G4double CrossSection(const G4Material*, + G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, diff --git a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungSTD.hh b/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungSTD.hh deleted file mode 100644 index 92de418883..0000000000 --- a/source/processes/electromagnetic/muons/include/G4MuBremsstrahlungSTD.hh +++ /dev/null @@ -1,154 +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: G4MuBremsstrahlungSTD.hh,v 1.8 2003/06/16 17:01:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ------------------------------------------------------------------- -// -// GEANT4 Class header file -// -// -// File name: G4MuBremsstrahlungSTD -// -// Author: Laszlo Urban -// -// Creation date: 30.09.1997 -// -// Modifications: -// -// 10/02/00 modifications , new e.m. structure, L.Urban -// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 29-10-01 all static functions no more inlined (mma) -// 10-05-02 V.Ivanchenko update to new design -// 26-12-02 secondary production moved to derived classes (VI) -// 24-01-03 Make models region aware (V.Ivanchenko) -// 05-02-03 Fix compilation warnings (V.Ivanchenko) -// -// Class Description: -// -// This class manages the Bremsstrahlung process for muons. -// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossSTD. -// - -// ------------------------------------------------------------------- -// - -#ifndef G4MuBremsstrahlungSTD_h -#define G4MuBremsstrahlungSTD_h 1 - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "globals.hh" -#include "G4VEnergyLossSTD.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class G4MuBremsstrahlungSTD : public G4VEnergyLossSTD - -{ -public: - - G4MuBremsstrahlungSTD(const G4String& processName = "MuBrems"); - - ~G4MuBremsstrahlungSTD(); - - G4bool IsApplicable(const G4ParticleDefinition& p) - {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; - - virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); - - virtual std::vector* SecondariesAlongStep( - const G4Step&, - G4double&, - G4double&, - G4double&) {return 0;}; - - virtual void SecondariesPostStep( - G4VEmModel*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double&, - G4double&); - - void PrintInfoDefinition(); - // Print out of the class parameters - -protected: - - const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); - - virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); - -private: - - void InitialiseProcess(); - - - G4MuBremsstrahlungSTD & operator=(const G4MuBremsstrahlungSTD &right); - G4MuBremsstrahlungSTD(const G4MuBremsstrahlungSTD&); - - const G4ParticleDefinition* theParticle; - const G4ParticleDefinition* theBaseParticle; - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4MuBremsstrahlungSTD::MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*, - G4double cut) -{ - return cut; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4MuBremsstrahlungSTD::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) -{ - return dynParticle->GetKineticEnergy(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VEmModel.hh" - -inline void G4MuBremsstrahlungSTD::SecondariesPostStep( - G4VEmModel* model, - const G4MaterialCutsCouple* couple, - const G4DynamicParticle* dp, - G4double& tcut, - G4double& kinEnergy) -{ - G4DynamicParticle* gamma = model->SampleSecondary(couple, dp, tcut, kinEnergy); - if(gamma) { - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(gamma); - kinEnergy -= gamma->GetKineticEnergy(); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh index 1c8a660fac..556f99207c 100644 --- a/source/processes/electromagnetic/muons/include/G4MuIonisation.hh +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation.hh @@ -20,168 +20,186 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MuIonisation.hh,v 1.17 2003/11/12 16:18:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4MuIonisation.hh,v 1.15 2003/06/16 17:01:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- // -// --------------- G4MuIonisation physics process ------------------------------ -// by Laszlo Urban, September 1997 -// ----------------------------------------------------------------------------- +// GEANT4 Class header file // -// 10-02-00 modifications , new e.m. structure, L.Urban +// +// File name: G4MuIonisation +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1997 +// +// Modifications: +// +// corrected by L.Urban on 24/09/97 +// corrected by L.Urban on 13/01/98 +// bugs fixed by L.Urban on 02/02/99 +// 10/02/00 modifications , new e.m. structure, L.Urban // 10-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 29-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) -// 19-09-01 come back to the old process name 'MuIoni' -// 29-10-01 all static functions no more inlined (mma) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 19-09-01 come back to previous process name "hIoni" +// 29-10-01 all static functions no more inlined +// 10-05-02 V.Ivanchenko update to new design +// 09-12-02 V.Ivanchenko remove warning +// 26-12-02 Secondary production moved to derived classes (VI) +// 24-01-03 Make models region aware (V.Ivanchenko) +// 05-02-03 Fix compilation warnings (V.Ivanchenko) +// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) +// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko) +// 03-06-03 Add SetIntegral method to choose fluctuation model (V.Ivanchenko) +// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // -// ----------------------------------------------------------------------------- - -// Class description +// Class Description: // // This class manages the ionisation process for muons. -// it inherites from G4VContinuousDiscreteProcess via G4VMuEnergyLoss. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossProcess. // -// Class description - end -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// ------------------------------------------------------------------- +// #ifndef G4MuIonisation_h #define G4MuIonisation_h 1 -#include "G4VMuEnergyLoss.hh" -#include "G4MaterialCutsCouple.hh" +#include "G4VEnergyLossProcess.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "globals.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class G4MuIonisation : public G4VMuEnergyLoss +class G4Material; +class G4VEmFluctuationModel; +class G4MuIonisation : public G4VEnergyLossProcess { - public: // with description - G4MuIonisation(const G4String& processName = "MuIoni"); +public: - ~G4MuIonisation(); + G4MuIonisation(const G4String& name = "MuIoni"); - G4bool IsApplicable(const G4ParticleDefinition&); - // return true for charged particles, false otherwise + ~G4MuIonisation(); - void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); - // this function overloads a virtual function of the base class. - // It is invoked by the G4ParticleWithCuts::SetCut() method. - // It invokes BuildLambdaTable(), BuildLossTable(), BuildDEDXTable() + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; - void BuildLossTable(const G4ParticleDefinition& aParticleType); - // build the dE/dx tables due to the ionisation, for every materials. - // (restricted stopping power, Bethe-Bloch formula) + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); - void BuildLambdaTable(const G4ParticleDefinition& aParticleType); - // build mean free path tables for the delta rays production. - // the tables are built for every materials. + virtual std::vector* SecondariesAlongStep( + const G4Step&, + G4double&, + G4double&, + G4double&); - G4bool StorePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // store eLoss and MeanFreePath tables into an external file - // specified by 'directory' (must exist before invokation) + virtual void SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&, + G4double&); - G4bool RetrievePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // retrieve eLoss and MeanFreePath tables from an external file - // specified by 'directory' + void SetSubCutoff(G4bool val); - virtual void PrintInfoDefinition(); - // Print few lines of informations about the process: validity range, - // origine ..etc.. - // Invoked by BuildPhysicsTable(). + void PrintInfoDefinition(); + // Print out of the class parameters - G4double GetMeanFreePath(const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition ); - // It returns the MeanFreePath of the process for the current track : - // (energy, material) - // The previousStepSize and G4ForceCondition* are not used. - // This function overloads a virtual function of the base class. - // It is invoked by the ProcessManager of the Particle. +protected: - G4VParticleChange* PostStepDoIt(const G4Track& track, - const G4Step& Step ); - // It computes the final state of the process (at end of step), - // returned as a ParticleChange object. - // This function overloads a virtual function of the base class. - // It is invoked by the ProcessManager of the Particle. + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); - protected: // with description +private: - virtual G4double ComputeRestrictedMeandEdx( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - const G4Material* material, - G4double DeltaThreshold); - // computes restricted mean dE/dx in Geant4 internal units. + void InitialiseProcess(); - virtual G4double ComputeCrossSectionPerAtom( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double DeltaThreshold); - // computes total cross section per atom in Geant4 internal units. + // hide assignment operator + G4MuIonisation & operator=(const G4MuIonisation &right); + G4MuIonisation(const G4MuIonisation&); - virtual G4double ComputeDifCrossSectionPerAtom( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double KnockonEnergy); - // computes differential cross section per atom. + G4double mass; + G4double ratio; - protected: + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + G4VEmFluctuationModel* flucModel; - virtual G4double SecondaryEnergyThreshold(size_t index); - - G4PhysicsTable* theMeanFreePathTable; - - private: - - // hide assignment operator - G4MuIonisation & operator=(const G4MuIonisation &right); - G4MuIonisation(const G4MuIonisation&); - - private: - - static G4double LowerBoundLambda; // bining for lambda table - static G4double UpperBoundLambda; - static G4int NbinLambda; - - G4double LowestKineticEnergy; // binning for dE/dx table - G4double HighestKineticEnergy; - G4int TotBin; - - const std::vector* secondaryEnergyCuts; - - public: // with description - - static void SetLowerBoundLambda(G4double val); - static void SetUpperBoundLambda(G4double val); - static void SetNbinLambda(G4int n); - // set the parameters of the mean free path table. - - static G4double GetLowerBoundLambda(); - static G4double GetUpperBoundLambda(); - static G4int GetNbinLambda(); - // get the parameters of the mean free path table. + G4bool subCutoff; + G4bool isInitialised; }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "G4MuIonisation.icc" +inline G4double G4MuIonisation::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 + sqrt((1. + x)*(1. + x*y*y)); + return mass*(g - 1.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuIonisation::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) +{ + G4double gamma= dynParticle->GetKineticEnergy()/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VSubCutoffProcessor.hh" + +inline std::vector* G4MuIonisation::SecondariesAlongStep( + const G4Step& step, + G4double& tmax, + G4double& eloss, + G4double& kinEnergy) +{ + std::vector* newp = 0; + if(subCutoff) { + G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); + if (sp) { + G4VEmModel* model = SelectModel(kinEnergy); + newp = sp->SampleSecondaries(step,tmax,eloss,model); + } + } + return newp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VEmModel.hh" + +inline void G4MuIonisation::SecondariesPostStep( + G4VEmModel* model, + const G4MaterialCutsCouple* couple, + const G4DynamicParticle* dp, + G4double& tcut, + G4double& kinEnergy) +{ + G4DynamicParticle* delta = model->SampleSecondary(couple, dp, tcut, kinEnergy); + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(delta); + G4ThreeVector finalP = dp->GetMomentum(); + kinEnergy -= delta->GetKineticEnergy(); + finalP -= delta->GetMomentum(); + finalP = finalP.unit(); + aParticleChange.SetMomentumDirectionChange(finalP); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #endif - - - - - - - - diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation52.hh b/source/processes/electromagnetic/muons/include/G4MuIonisation52.hh new file mode 100644 index 0000000000..ce334bccc3 --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation52.hh @@ -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: G4MuIonisation52.hh,v 1.1 2003/08/08 11:28:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// --------------- G4MuIonisation52 physics process ------------------------------ +// by Laszlo Urban, September 1997 +// ----------------------------------------------------------------------------- +// +// 10-02-00 modifications , new e.m. structure, L.Urban +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 29-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 19-09-01 come back to the old process name 'MuIoni' +// 29-10-01 all static functions no more inlined (mma) +// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +// +// ----------------------------------------------------------------------------- + +// Class description +// +// This class manages the ionisation process for muons. +// it inherites from G4VContinuousDiscreteProcess via G4VMuEnergyLoss. +// +// Class description - end + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4MuIonisation52_h +#define G4MuIonisation52_h 1 + +#include "G4VMuEnergyLoss.hh" +#include "G4MaterialCutsCouple.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4MuIonisation52 : public G4VMuEnergyLoss + +{ + public: // with description + + G4MuIonisation52(const G4String& processName = "MuIoni"); + + ~G4MuIonisation52(); + + G4bool IsApplicable(const G4ParticleDefinition&); + // return true for charged particles, false otherwise + + void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); + // this function overloads a virtual function of the base class. + // It is invoked by the G4ParticleWithCuts::SetCut() method. + // It invokes BuildLambdaTable(), BuildLossTable(), BuildDEDXTable() + + void BuildLossTable(const G4ParticleDefinition& aParticleType); + // build the dE/dx tables due to the ionisation, for every materials. + // (restricted stopping power, Bethe-Bloch formula) + + void BuildLambdaTable(const G4ParticleDefinition& aParticleType); + // build mean free path tables for the delta rays production. + // the tables are built for every materials. + + G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // store eLoss and MeanFreePath tables into an external file + // specified by 'directory' (must exist before invokation) + + G4bool RetrievePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // retrieve eLoss and MeanFreePath tables from an external file + // specified by 'directory' + + virtual void PrintInfoDefinition(); + // Print few lines of informations about the process: validity range, + // origine ..etc.. + // Invoked by BuildPhysicsTable(). + + G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition ); + // It returns the MeanFreePath of the process for the current track : + // (energy, material) + // The previousStepSize and G4ForceCondition* are not used. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + G4VParticleChange* PostStepDoIt(const G4Track& track, + const G4Step& Step ); + // It computes the final state of the process (at end of step), + // returned as a ParticleChange object. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + + protected: // with description + + virtual G4double ComputeRestrictedMeandEdx( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + const G4Material* material, + G4double DeltaThreshold); + // computes restricted mean dE/dx in Geant4 internal units. + + virtual G4double ComputeCrossSectionPerAtom( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double DeltaThreshold); + // computes total cross section per atom in Geant4 internal units. + + virtual G4double ComputeDifCrossSectionPerAtom( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double KnockonEnergy); + // computes differential cross section per atom. + + protected: + + virtual G4double SecondaryEnergyThreshold(size_t index); + + G4PhysicsTable* theMeanFreePathTable; + + private: + + // hide assignment operator + G4MuIonisation52 & operator=(const G4MuIonisation52 &right); + G4MuIonisation52(const G4MuIonisation52&); + + private: + + static G4double LowerBoundLambda; // bining for lambda table + static G4double UpperBoundLambda; + static G4int NbinLambda; + + G4double LowestKineticEnergy; // binning for dE/dx table + G4double HighestKineticEnergy; + G4int TotBin; + + const std::vector* secondaryEnergyCuts; + + public: // with description + + static void SetLowerBoundLambda(G4double val); + static void SetUpperBoundLambda(G4double val); + static void SetNbinLambda(G4int n); + // set the parameters of the mean free path table. + + static G4double GetLowerBoundLambda(); + static G4double GetUpperBoundLambda(); + static G4int GetNbinLambda(); + // get the parameters of the mean free path table. +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MuIonisation52.icc" + +#endif + + + + + + + + diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisation.icc b/source/processes/electromagnetic/muons/include/G4MuIonisation52.icc similarity index 87% rename from source/processes/electromagnetic/muons/include/G4MuIonisation.icc rename to source/processes/electromagnetic/muons/include/G4MuIonisation52.icc index 52496ab1a8..acb449e841 100644 --- a/source/processes/electromagnetic/muons/include/G4MuIonisation.icc +++ b/source/processes/electromagnetic/muons/include/G4MuIonisation52.icc @@ -21,26 +21,27 @@ // ******************************************************************** // // -// $Id: G4MuIonisation.icc,v 1.5 2003/01/17 18:54:39 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuIonisation52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // GEANT 4 class inlined methods file // -// ------------ G4MuIonisation physics process ------------ +// ------------ G4MuIonisation52 physics process ------------ // by Laszlo Urban, September 1997 // --------------------------------------------------------------- // // 20/11/97 correction on MeanFreePath for KineticEnergy > HighestLimit // 14-08-01 'cleanup' of GetMeanFreePath (mma) // 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) // // --------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4bool G4MuIonisation::IsApplicable( +inline G4bool G4MuIonisation52::IsApplicable( const G4ParticleDefinition& particle) { return ((&particle == G4MuonPlus::MuonPlus() ) || @@ -49,7 +50,7 @@ inline G4bool G4MuIonisation::IsApplicable( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4MuIonisation::GetMeanFreePath(const G4Track& track, G4double, +inline G4double G4MuIonisation52::GetMeanFreePath(const G4Track& track, G4double, G4ForceCondition*) { G4double KineticEnergy = track.GetDynamicParticle()->GetKineticEnergy(); @@ -69,7 +70,7 @@ inline G4double G4MuIonisation::GetMeanFreePath(const G4Track& track, G4double, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MuIonisation::SecondaryEnergyThreshold(size_t index) +inline G4double G4MuIonisation52::SecondaryEnergyThreshold(size_t index) { return (*secondaryEnergyCuts)[index]; } diff --git a/source/processes/electromagnetic/muons/include/G4MuIonisationSTD.hh b/source/processes/electromagnetic/muons/include/G4MuIonisationSTD.hh deleted file mode 100644 index ab12fb6bcf..0000000000 --- a/source/processes/electromagnetic/muons/include/G4MuIonisationSTD.hh +++ /dev/null @@ -1,203 +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: G4MuIonisationSTD.hh,v 1.14 2003/06/16 17:01:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ------------------------------------------------------------------- -// -// GEANT4 Class header file -// -// -// File name: G4MuIonisationSTD -// -// Author: Laszlo Urban -// -// Creation date: 30.05.1997 -// -// Modifications: -// -// corrected by L.Urban on 24/09/97 -// corrected by L.Urban on 13/01/98 -// bugs fixed by L.Urban on 02/02/99 -// 10/02/00 modifications , new e.m. structure, L.Urban -// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) -// 19-09-01 come back to previous process name "hIoni" -// 29-10-01 all static functions no more inlined -// 10-05-02 V.Ivanchenko update to new design -// 09-12-02 V.Ivanchenko remove warning -// 26-12-02 Secondary production moved to derived classes (VI) -// 24-01-03 Make models region aware (V.Ivanchenko) -// 05-02-03 Fix compilation warnings (V.Ivanchenko) -// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) -// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko) -// 03-06-03 Add SetIntegral method to choose fluctuation model (V.Ivanchenko) -// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) -// -// Class Description: -// -// This class manages the ionisation process for muons. -// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossSTD. -// - -// ------------------------------------------------------------------- -// - -#ifndef G4MuIonisationSTD_h -#define G4MuIonisationSTD_h 1 - -#include "G4VEnergyLossSTD.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "globals.hh" - -class G4Material; -class G4VEmFluctuationModel; - -class G4MuIonisationSTD : public G4VEnergyLossSTD -{ - -public: - - G4MuIonisationSTD(const G4String& name = "MuIoni"); - - ~G4MuIonisationSTD(); - - G4bool IsApplicable(const G4ParticleDefinition& p) - {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; - - virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); - - virtual std::vector* SecondariesAlongStep( - const G4Step&, - G4double&, - G4double&, - G4double&); - - virtual void SecondariesPostStep( - G4VEmModel*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double&, - G4double&); - - void SetSubCutoff(G4bool val); - - void PrintInfoDefinition(); - // Print out of the class parameters - -protected: - - const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); - - virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); - -private: - - void InitialiseProcess(); - - // hide assignment operator - G4MuIonisationSTD & operator=(const G4MuIonisationSTD &right); - G4MuIonisationSTD(const G4MuIonisationSTD&); - - G4double mass; - G4double ratio; - - const G4ParticleDefinition* theParticle; - const G4ParticleDefinition* theBaseParticle; - G4VEmFluctuationModel* flucModel; - - G4bool subCutoff; - G4bool isInitialised; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4MuIonisationSTD::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 + sqrt((1. + x)*(1. + x*y*y)); - return mass*(g - 1.0); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4MuIonisationSTD::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) -{ - G4double gamma= dynParticle->GetKineticEnergy()/mass + 1.0; - G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / - (1. + 2.0*gamma*ratio + ratio*ratio); - - return tmax; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VSubCutoffProcessor.hh" - -inline std::vector* G4MuIonisationSTD::SecondariesAlongStep( - const G4Step& step, - G4double& tmax, - G4double& eloss, - G4double& kinEnergy) -{ - std::vector* newp = 0; - if(subCutoff) { - G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); - if (sp) { - G4VEmModel* model = SelectModel(kinEnergy); - newp = sp->SampleSecondaries(step,tmax,eloss,model); - } - } - return newp; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VEmModel.hh" - -inline void G4MuIonisationSTD::SecondariesPostStep( - G4VEmModel* model, - const G4MaterialCutsCouple* couple, - const G4DynamicParticle* dp, - G4double& tcut, - G4double& kinEnergy) -{ - G4DynamicParticle* delta = model->SampleSecondary(couple, dp, tcut, kinEnergy); - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(delta); - G4ThreeVector finalP = dp->GetMomentum(); - kinEnergy -= delta->GetKineticEnergy(); - finalP -= delta->GetMomentum(); - finalP = finalP.unit(); - aParticleChange.SetMomentumDirectionChange(finalP); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh index 96cdb403a0..bd96875d7f 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction.hh @@ -20,160 +20,169 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MuPairProduction.hh,v 1.16 2003/11/12 16:18:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4MuPairProduction.hh,v 1.14 2003/06/16 17:01:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- // -//--------------- G4MuPairProduction physics process ------------------ -// by Laszlo Urban, May 1998 -//------------------------------------------------------------------------------ +// GEANT4 Class header file +// +// +// File name: G4MuPairProduction +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1998 +// +// Modifications: + // 10-02-00 modifications , new e.m. structure, L.Urban // 10-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 29-10-01 all static functions no more inlined (mma) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) -//------------------------------------------------------------------------------ +// 29-10-01 all static functions no more inlined (mma) +// 10-05-02 V.Ivanchenko update to new design +// 26-12-02 secondary production moved to derived classes (VI) +// 27-01-03 Make models region aware (V.Ivanchenko) +// 05-02-03 Fix compilation warnings (V.Ivanchenko) +// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) +// +// Class Description: +// +// This class manages the PairProduction process for muons. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossProcess. +// -#ifndef G4MuPairproduction_h -#define G4MuPairproduction_h 1 +// ------------------------------------------------------------------- +// + +#ifndef G4MuPairProduction_h +#define G4MuPairProduction_h 1 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4ios.hh" #include "globals.hh" -#include "Randomize.hh" -#include "G4VMuEnergyLoss.hh" -#include "G4Track.hh" -#include "G4Step.hh" -#include "G4OrderedTable.hh" -#include "G4PhysicsTable.hh" -#include "G4PhysicsLogVector.hh" -#include "G4MaterialCutsCouple.hh" +#include "G4VEnergyLossProcess.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4MuPairProduction : public G4VMuEnergyLoss +class G4MuPairProduction : public G4VEnergyLossProcess { - public: +public: - G4MuPairProduction(const G4String& processName = "MuPairProd"); + G4MuPairProduction(const G4String& processName = "MuPairProd"); - ~G4MuPairProduction(); + ~G4MuPairProduction(); - G4bool IsApplicable(const G4ParticleDefinition&); + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; - void BuildPhysicsTable(const G4ParticleDefinition& ParticleType); + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); - void BuildLossTable(const G4ParticleDefinition& ParticleType); + virtual std::vector* SecondariesAlongStep( + const G4Step&, + G4double&, + G4double&, + G4double&); - void BuildLambdaTable(const G4ParticleDefinition& ParticleType); - - void PrintInfoDefinition(); - - G4double GetMeanFreePath( const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition ); - - G4VParticleChange *PostStepDoIt(const G4Track& track, - const G4Step& Step ); - - G4double GetDMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double PairEnergy); - - G4bool StorePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // store eLoss and MeanFreePath tables into an external file - // specified by 'directory' (must exist before invokation) - - G4bool RetrievePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // retrieve eLoss and MeanFreePath tables from an external file - // specified by 'directory' - - protected: - - G4double ComputeMeanFreePath(const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple); - - void ComputePartialSumSigma(const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple); - - virtual G4double ComputeMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double ElectronEnergyCut, - G4double PositronEnergyCut); - - G4double ComputeDDMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double PairEnergy, - G4double asymmetry); - - G4double ComputeDMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double PairEnergy); - - private: - - G4MuPairProduction & operator=(const G4MuPairProduction &right); - G4MuPairProduction(const G4MuPairProduction&); - - G4double ComputePairLoss( const G4ParticleDefinition* ParticleType, - G4double Z,G4double T,G4double ElectronCut, - G4double PositronCut); - - G4Element* SelectRandomAtom(const G4MaterialCutsCouple* couple) const; - - void MakeSamplingTables( const G4ParticleDefinition* ParticleType ); - - protected: - - virtual G4double SecondaryEnergyThreshold(size_t index); + virtual void SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&, + G4double&); - private: + void SetSubCutoff(G4bool val); - G4PhysicsTable* theMeanFreePathTable; + void PrintInfoDefinition(); + // Print out of the class parameters - G4OrderedTable PartialSumSigma; +protected: - static G4double LowerBoundLambda; // bining for lambda table - static G4double UpperBoundLambda; - static G4int NbinLambda; - G4double LowestKineticEnergy,HighestKineticEnergy; - G4int TotBin; + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); - const std::vector* electronEnergyCuts; - const std::vector* positronEnergyCuts; + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dp); - // tables for sampling - static G4int nzdat,ntdat,NBIN; - static G4double zdat[5],tdat[8]; - static G4double ya[1001],proba[5][8][1001]; - static G4double MinPairEnergy; +private: - public: + void InitialiseProcess(); - static void SetLowerBoundLambda(G4double val); - static void SetUpperBoundLambda(G4double val); - static void SetNbinLambda(G4int n); - static G4double GetLowerBoundLambda(); - static G4double GetUpperBoundLambda(); - static G4int GetNbinLambda(); + + G4MuPairProduction & operator=(const G4MuPairProduction &right); + G4MuPairProduction(const G4MuPairProduction&); + + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + + G4bool subCutoff; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double cut) +{ + return std::max(cut, 2.0*electron_mass_c2); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4MuPairProduction::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + return dp->GetKineticEnergy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VSubCutoffProcessor.hh" + +inline std::vector* G4MuPairProduction::SecondariesAlongStep( + const G4Step& step, + G4double& tmax, + G4double& eloss, + G4double& kinEnergy) +{ + std::vector* newp = 0; + if(subCutoff) { + G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); + if (sp) { + G4VEmModel* model = SelectModel(kinEnergy); + newp = sp->SampleSecondaries(step,tmax,eloss,model); + } + } + return newp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VEmModel.hh" + +inline void G4MuPairProduction::SecondariesPostStep( + G4VEmModel* model, + const G4MaterialCutsCouple* couple, + const G4DynamicParticle* dp, + G4double& tcut, + G4double& kinEnergy) +{ + std::vector* newp = + model->SampleSecondaries(couple, dp, tcut, kinEnergy); + if(newp) { + aParticleChange.SetNumberOfSecondaries(2); + G4DynamicParticle* elpos = (*newp)[0]; + aParticleChange.AddSecondary(elpos); + kinEnergy -= elpos->GetKineticEnergy(); + elpos = (*newp)[1]; + aParticleChange.AddSecondary(elpos); + kinEnergy -= elpos->GetKineticEnergy(); + delete newp; + } +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4MuPairProduction.icc" - #endif diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction52.hh b/source/processes/electromagnetic/muons/include/G4MuPairProduction52.hh new file mode 100644 index 0000000000..a159c25b50 --- /dev/null +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction52.hh @@ -0,0 +1,180 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MuPairProduction52.hh,v 1.1 2003/08/08 11:28:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//--------------- G4MuPairProduction52 physics process ------------------ +// by Laszlo Urban, May 1998 +//------------------------------------------------------------------------------ +// 10-02-00 modifications , new e.m. structure, L.Urban +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 29-10-01 all static functions no more inlined (mma) +// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +//------------------------------------------------------------------------------ + +#ifndef G4MuPairProduction52_h +#define G4MuPairProduction52_h 1 + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4ios.hh" +#include "globals.hh" +#include "Randomize.hh" +#include "G4VMuEnergyLoss.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4OrderedTable.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsLogVector.hh" +#include "G4MaterialCutsCouple.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4MuPairProduction52 : public G4VMuEnergyLoss + +{ + public: + + G4MuPairProduction52(const G4String& processName = "MuPairProd"); + + ~G4MuPairProduction52(); + + G4bool IsApplicable(const G4ParticleDefinition&); + + void BuildPhysicsTable(const G4ParticleDefinition& ParticleType); + + void BuildLossTable(const G4ParticleDefinition& ParticleType); + + void BuildLambdaTable(const G4ParticleDefinition& ParticleType); + + void PrintInfoDefinition(); + + G4double GetMeanFreePath( const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition ); + + G4VParticleChange *PostStepDoIt(const G4Track& track, + const G4Step& Step ); + + G4double GetDMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double PairEnergy); + + G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // store eLoss and MeanFreePath tables into an external file + // specified by 'directory' (must exist before invokation) + + G4bool RetrievePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // retrieve eLoss and MeanFreePath tables from an external file + // specified by 'directory' + + protected: + + G4double ComputeMeanFreePath(const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple); + + void ComputePartialSumSigma(const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple); + + virtual G4double ComputeMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double ElectronEnergyCut, + G4double PositronEnergyCut); + + G4double ComputeDDMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double PairEnergy, + G4double asymmetry); + + G4double ComputeDMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double PairEnergy); + + private: + + G4MuPairProduction52 & operator=(const G4MuPairProduction52 &right); + G4MuPairProduction52(const G4MuPairProduction52&); + + G4double ComputePairLoss( const G4ParticleDefinition* ParticleType, + G4double Z,G4double T,G4double ElectronCut, + G4double PositronCut); + + G4Element* SelectRandomAtom(const G4MaterialCutsCouple* couple) const; + + void MakeSamplingTables( const G4ParticleDefinition* ParticleType ); + + protected: + + virtual G4double SecondaryEnergyThreshold(size_t index); + + private: + + G4PhysicsTable* theMeanFreePathTable; + + G4OrderedTable PartialSumSigma; + + static G4double LowerBoundLambda; // bining for lambda table + static G4double UpperBoundLambda; + static G4int NbinLambda; + G4double LowestKineticEnergy,HighestKineticEnergy; + G4int TotBin; + + const std::vector* electronEnergyCuts; + const std::vector* positronEnergyCuts; + + // tables for sampling + static G4int nzdat,ntdat,NBIN; + static G4double zdat[5],tdat[8]; + static G4double ya[1001],proba[5][8][1001]; + static G4double MinPairEnergy; + + public: + + static void SetLowerBoundLambda(G4double val); + static void SetUpperBoundLambda(G4double val); + static void SetNbinLambda(G4int n); + static G4double GetLowerBoundLambda(); + static G4double GetUpperBoundLambda(); + static G4int GetNbinLambda(); + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MuPairProduction52.icc" + +#endif diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProduction.icc b/source/processes/electromagnetic/muons/include/G4MuPairProduction52.icc similarity index 89% rename from source/processes/electromagnetic/muons/include/G4MuPairProduction.icc rename to source/processes/electromagnetic/muons/include/G4MuPairProduction52.icc index 2e69da3d81..375b2f5815 100644 --- a/source/processes/electromagnetic/muons/include/G4MuPairProduction.icc +++ b/source/processes/electromagnetic/muons/include/G4MuPairProduction52.icc @@ -21,10 +21,10 @@ // ******************************************************************** // // -// $Id: G4MuPairProduction.icc,v 1.10 2003/05/26 16:21:54 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuPairProduction52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -//--------------- G4MuPairProduction physics process ------------------ +//--------------- G4MuPairProduction52 physics process ------------------ // by Laszlo Urban, May 1998 //------------------------------------------------------------------------------ // @@ -34,12 +34,13 @@ // 29.05.01 V.Ivanchenko minor changes to provide ANSI -wall compilation // 28-09-01 suppression of theMuonPlus ..etc..data members (mma) // 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) // //------------------------------------------------------------------------------ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MuPairProduction::GetMeanFreePath(const G4Track& trackData, +inline G4double G4MuPairProduction52::GetMeanFreePath(const G4Track& trackData, G4double, G4ForceCondition* condition) { @@ -66,7 +67,7 @@ inline G4double G4MuPairProduction::GetMeanFreePath(const G4Track& trackData, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MuPairProduction::ComputeMeanFreePath( +inline G4double G4MuPairProduction52::ComputeMeanFreePath( const G4ParticleDefinition* ParticleType, G4double KineticEnergy, const G4MaterialCutsCouple* couple) @@ -93,7 +94,7 @@ inline G4double G4MuPairProduction::ComputeMeanFreePath( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4bool G4MuPairProduction::IsApplicable( +inline G4bool G4MuPairProduction52::IsApplicable( const G4ParticleDefinition& particle) { return ((&particle == G4MuonPlus::MuonPlus() ) || @@ -102,7 +103,7 @@ inline G4bool G4MuPairProduction::IsApplicable( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MuPairProduction::SecondaryEnergyThreshold(size_t index) +inline G4double G4MuPairProduction52::SecondaryEnergyThreshold(size_t index) { return (*electronEnergyCuts)[index] + (*positronEnergyCuts)[index] + 2.*electron_mass_c2; diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh b/source/processes/electromagnetic/muons/include/G4MuPairProductionModel.hh index 170d065ab6..fcd100ed72 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.9 2003/06/16 17:01:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuPairProductionModel.hh,v 1.10 2003/07/21 12:52:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -55,6 +55,8 @@ #include "G4VEmModel.hh" +class G4Element; + class G4MuPairProductionModel : public G4VEmModel { @@ -79,12 +81,12 @@ public: G4bool IsInCharge(const G4ParticleDefinition*); - G4double ComputeDEDX(const G4Material*, + G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy); - G4double CrossSection(const G4Material*, + G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, diff --git a/source/processes/electromagnetic/muons/include/G4MuPairProductionSTD.hh b/source/processes/electromagnetic/muons/include/G4MuPairProductionSTD.hh deleted file mode 100644 index 043e9bd0a0..0000000000 --- a/source/processes/electromagnetic/muons/include/G4MuPairProductionSTD.hh +++ /dev/null @@ -1,186 +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: G4MuPairProductionSTD.hh,v 1.9 2003/06/16 17:01:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ------------------------------------------------------------------- -// -// GEANT4 Class header file -// -// -// File name: G4MuPairProductionSTD -// -// Author: Laszlo Urban -// -// Creation date: 30.05.1998 -// -// Modifications: - -// 10-02-00 modifications , new e.m. structure, L.Urban -// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 29-10-01 all static functions no more inlined (mma) -// 10-05-02 V.Ivanchenko update to new design -// 26-12-02 secondary production moved to derived classes (VI) -// 27-01-03 Make models region aware (V.Ivanchenko) -// 05-02-03 Fix compilation warnings (V.Ivanchenko) -// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) -// -// Class Description: -// -// This class manages the PairProduction process for muons. -// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossSTD. -// - -// ------------------------------------------------------------------- -// - -#ifndef G4MuPairProductionSTD_h -#define G4MuPairProductionSTD_h 1 - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "globals.hh" -#include "G4VEnergyLossSTD.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class G4MuPairProductionSTD : public G4VEnergyLossSTD - -{ -public: - - G4MuPairProductionSTD(const G4String& processName = "MuPairProd"); - - ~G4MuPairProductionSTD(); - - G4bool IsApplicable(const G4ParticleDefinition& p) - {return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);}; - - virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); - - virtual std::vector* SecondariesAlongStep( - const G4Step&, - G4double&, - G4double&, - G4double&); - - virtual void SecondariesPostStep( - G4VEmModel*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double&, - G4double&); - - void SetSubCutoff(G4bool val); - - void PrintInfoDefinition(); - // Print out of the class parameters - -protected: - - const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); - - virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dp); - -private: - - void InitialiseProcess(); - - - G4MuPairProductionSTD & operator=(const G4MuPairProductionSTD &right); - G4MuPairProductionSTD(const G4MuPairProductionSTD&); - - const G4ParticleDefinition* theParticle; - const G4ParticleDefinition* theBaseParticle; - - G4bool subCutoff; - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4MuPairProductionSTD::MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*, - G4double cut) -{ - return std::max(cut, 2.0*electron_mass_c2); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4MuPairProductionSTD::MaxSecondaryEnergy(const G4DynamicParticle* dp) -{ - return dp->GetKineticEnergy(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VSubCutoffProcessor.hh" - -inline std::vector* G4MuPairProductionSTD::SecondariesAlongStep( - const G4Step& step, - G4double& tmax, - G4double& eloss, - G4double& kinEnergy) -{ - std::vector* newp = 0; - if(subCutoff) { - G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); - if (sp) { - G4VEmModel* model = SelectModel(kinEnergy); - newp = sp->SampleSecondaries(step,tmax,eloss,model); - } - } - return newp; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VEmModel.hh" - -inline void G4MuPairProductionSTD::SecondariesPostStep( - G4VEmModel* model, - const G4MaterialCutsCouple* couple, - const G4DynamicParticle* dp, - G4double& tcut, - G4double& kinEnergy) -{ - std::vector* newp = - model->SampleSecondaries(couple, dp, tcut, kinEnergy); - if(newp) { - aParticleChange.SetNumberOfSecondaries(2); - G4DynamicParticle* elpos = (*newp)[0]; - aParticleChange.AddSecondary(elpos); - kinEnergy -= elpos->GetKineticEnergy(); - elpos = (*newp)[1]; - aParticleChange.AddSecondary(elpos); - kinEnergy -= elpos->GetKineticEnergy(); - delete newp; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif diff --git a/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh b/source/processes/electromagnetic/muons/include/G4VMuEnergyLoss.hh index 1282f6803d..ee696f43f2 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.9 2003/06/16 17:01:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 e0bb907801..81f797d3d1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // --------------------------------------------------------------- // GEANT 4 class inlined methods file // diff --git a/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc b/source/processes/electromagnetic/muons/src/G4MuBetheBlochModel.cc index 7a4d6d38c5..cbb593fa3b 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.8 2003/06/16 17:01:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuBetheBlochModel.cc,v 1.9 2003/07/21 12:52:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -130,10 +130,10 @@ void G4MuBetheBlochModel::Initialise(const G4ParticleDefinition* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuBetheBlochModel::ComputeDEDX(const G4Material* material, - const G4ParticleDefinition* p, - G4double kineticEnergy, - G4double cutEnergy) +G4double G4MuBetheBlochModel::ComputeDEDX(const G4MaterialCutsCouple* couple, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy) { G4double tmax = MaxSecondaryEnergy(p, kineticEnergy); G4double tau = kineticEnergy/mass; @@ -143,6 +143,7 @@ G4double G4MuBetheBlochModel::ComputeDEDX(const G4Material* material, G4double beta2 = 1. - 1./(gam*gam); G4double bg2 = tau * (tau+2.0); + const G4Material* material = couple->GetMaterial(); G4double eexc = material->GetIonisation()->GetMeanExcitationEnergy(); G4double eexc2 = eexc*eexc; G4double taul = material->GetIonisation()->GetTaul(); @@ -203,15 +204,17 @@ G4double G4MuBetheBlochModel::ComputeDEDX(const G4Material* material, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuBetheBlochModel::CrossSection(const G4Material* material, +G4double G4MuBetheBlochModel::CrossSection(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy) + G4double maxEnergy) { G4double cross = 0.0; G4double tmaxSecondary = MaxSecondaryEnergy(p, kineticEnergy); G4double tmax = std::min(tmaxSecondary, maxEnergy); + const G4Material* material = couple->GetMaterial(); + if(cutEnergy < tmax) { const G4ElementVector* theElementVector = material->GetElementVector(); diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc index 4b42be064d..bef1f4e523 100644 --- a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung.cc @@ -20,808 +20,104 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MuBremsstrahlung.cc,v 1.30 2003/11/12 16:18:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4MuBremsstrahlung.cc,v 1.27 2003/04/29 04:58:32 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- +// +// GEANT4 Class file // // -//--------------- G4MuBremsstrahlung physics process --------------------------- -// by Laszlo Urban, September 1997 +// File name: G4MuBremsstrahlung +// +// Author: Laszlo Urban +// +// Creation date: 30.09.1997 +// +// Modifications: // // 08-04-98 remove 'tracking cut' of muon in oIt, MMa -// 26/10/98 new cross section of R.Kokoulin,cleanup , L.Urban -// 10/02/00 modifications , new e.m. structure, L.Urban -// 29/05/01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 26-10-98 new cross section of R.Kokoulin,cleanup , L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 29-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation // 09-08-01 new methods Store/Retrieve PhysicsTable (mma) // 17-09-01 migration of Materials to pure STL (mma) // 26-09-01 completion of store/retrieve PhysicsTable (mma) // 28-09-01 suppression of theMuonPlus ..etc..data members (mma) // 29-10-01 all static functions no more inlined (mma) // 08-11-01 particleMass becomes a local variable (mma) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) -// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) -//------------------------------------------------------------------------------ +// 19-08-02 V.Ivanchenko update to new design +// 23-12-02 Change interface in order to move to cut per region (V.Ivanchenko) +// 26-12-02 Secondary production moved to derived classes (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4MuBremsstrahlung.hh" -#include "G4UnitsTable.hh" -#include "G4ProductionCutsTable.hh" +#include "G4Gamma.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4MuBremsstrahlungModel.hh" +#include "G4UniversalFluctuation.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// static members -// -G4int G4MuBremsstrahlung::nzdat = 5 ; -G4double G4MuBremsstrahlung::zdat[]={1.,4.,13.,29.,92.}; -G4double G4MuBremsstrahlung::adat[]={1.01,9.01,26.98,63.55,238.03}; -G4int G4MuBremsstrahlung::ntdat = 8 ; -G4double G4MuBremsstrahlung::tdat[]={1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e10}; -G4int G4MuBremsstrahlung::NBIN = 1000; // 100 ; -G4double G4MuBremsstrahlung::ya[1001]; -G4double G4MuBremsstrahlung::proba[5][8][1001]; -G4double G4MuBremsstrahlung::CutFixed=0.98*keV; +G4MuBremsstrahlung::G4MuBremsstrahlung(const G4String& name) + : G4VEnergyLossProcess(name), + theParticle(0), + theBaseParticle(0) +{ + InitialiseProcess(); +} -G4double G4MuBremsstrahlung::LowerBoundLambda = 1.*keV; -G4double G4MuBremsstrahlung::UpperBoundLambda = 1000000.*TeV; -G4int G4MuBremsstrahlung::NbinLambda = 150; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -// constructor - -G4MuBremsstrahlung::G4MuBremsstrahlung(const G4String& processName) - : G4VMuEnergyLoss(processName), - theMeanFreePathTable(NULL) -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4MuBremsstrahlung::~G4MuBremsstrahlung() -{ - if (theMeanFreePathTable) { - theMeanFreePathTable->clearAndDestroy(); +{} - delete theMeanFreePathTable; - } - PartialSumSigma.clearAndDestroy(); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuBremsstrahlung::InitialiseProcess() +{ + SetSecondaryParticle(G4Gamma::Gamma()); + + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + + G4VEmModel* em = new G4MuBremsstrahlungModel(); + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + em->SetLowEnergyLimit(0.1*keV); + em->SetHighEnergyLimit(100.0*TeV); + AddEmModel(1, em, fm); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4MuBremsstrahlung::SetLowerBoundLambda(G4double val) - {LowerBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuBremsstrahlung::SetUpperBoundLambda(G4double val) - {UpperBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuBremsstrahlung::SetNbinLambda(G4int n) - {NbinLambda = n;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuBremsstrahlung::GetLowerBoundLambda() - { return LowerBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuBremsstrahlung::GetUpperBoundLambda() - { return UpperBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4int G4MuBremsstrahlung::GetNbinLambda() - {return NbinLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuBremsstrahlung::BuildPhysicsTable( - const G4ParticleDefinition& aParticleType) +const G4ParticleDefinition* G4MuBremsstrahlung::DefineBaseParticle( + const G4ParticleDefinition* p) { - if( !CutsWhereModified() && theLossTable) return; - - LowestKineticEnergy = GetLowerBoundEloss() ; - HighestKineticEnergy = GetUpperBoundEloss() ; - TotBin = GetNbinEloss() ; - - BuildLossTable(aParticleType) ; - - if(&aParticleType==G4MuonMinus::MuonMinus()) - { - RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; - CounterOfmuminusProcess++; - } - else - { - RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; - CounterOfmuplusProcess++; - } - - if( !theMeanFreePathTable ) MakeSamplingTables(&aParticleType) ; - - BuildLambdaTable(aParticleType) ; - - G4VMuEnergyLoss::BuildDEDXTable(aParticleType); - - if(&aParticleType == G4MuonPlus::MuonPlus()) PrintInfoDefinition(); + if(!theParticle) theParticle = p; + return theBaseParticle; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4MuBremsstrahlung::BuildLossTable( - const G4ParticleDefinition& aParticleType) +void G4MuBremsstrahlung::PrintInfoDefinition() { - G4double KineticEnergy,TotalEnergy,bremloss,Z, - loss,natom ; + G4VEnergyLossProcess::PrintInfoDefinition(); - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} - theLossTable = new G4PhysicsTable(numOfCouples); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); - G4double particleMass = aParticleType.GetPDGMass(); - - // loop for materials - // - for (size_t J=0; JGetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - G4double Cut = SecondaryEnergyThreshold(J); - - const G4ElementVector* theElementVector = - material->GetElementVector() ; - const G4double* theAtomicNumDensityVector = - material->GetAtomicNumDensityVector() ; - const G4int NumberOfElements = material->GetNumberOfElements() ; - - for (G4int i=0; iGetLowEdgeEnergy(i) ; - TotalEnergy = KineticEnergy+particleMass ; - - if(Cut>KineticEnergy) Cut = KineticEnergy ; - bremloss = 0.; - - for (G4int iel=0; ielGetZ(); - natom = theAtomicNumDensityVector[iel] ; - loss = ComputeBremLoss((&aParticleType),Z, - (*theElementVector)[iel]->GetA(), - KineticEnergy,Cut) ; - bremloss += natom*loss ; - } - if(bremloss<0.) bremloss = 0. ; - - aVector->PutValue(i,bremloss); - } - theLossTable->insert(aVector); - } + G4cout << " Parametrised model " + << G4endl; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuBremsstrahlung::ComputeBremLoss( - const G4ParticleDefinition* aParticleType, - G4double AtomicNumber,G4double AtomicMass, - G4double KineticEnergy,G4double GammaEnergyCut) -{ - G4double TotalEnergy,vcut,vmax,aaa,bbb,hhh,aa,x,ep ; - G4int kkk ; - G4double ak1=0.05 ; - G4int k2=5 ; - G4double xgi[]={0.03377,0.16940,0.38069,0.61931,0.83060,0.96623}; - G4double wgi[]={0.08566,0.18038,0.23396,0.23396,0.18038,0.08566}; - G4double loss = 0. ; - G4double particleMass = aParticleType->GetPDGMass(); - TotalEnergy=KineticEnergy+particleMass ; - vcut = GammaEnergyCut/TotalEnergy ; - vmax = KineticEnergy/TotalEnergy ; - aaa=0.; - bbb=vcut ; - if(vcut>vmax) bbb=vmax ; - kkk=int((bbb-aaa)/ak1)+k2 ; - hhh=(bbb-aaa)/float(kkk) ; - - for(G4int l=0; lGetTableSize(); - - //create table - if (theMeanFreePathTable) {theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - - PartialSumSigma.clearAndDestroy(); - PartialSumSigma.resize(numOfCouples); - - G4PhysicsLogVector* ptrVector; - for ( size_t J=0; JGetMaterialCutsCouple(J); - - for ( G4int i = 0 ; i < NbinLambda ; i++ ) - { - LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; - Value = ComputeMeanFreePath( &ParticleType, LowEdgeEnergy, couple); - ptrVector->PutValue( i , Value ) ; - } - - theMeanFreePathTable->insertAt( J , ptrVector ); - - // Compute the PartialSumSigma table at a given fixed energy - ComputePartialSumSigma( &ParticleType, FixedEnergy, couple) ; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuBremsstrahlung::ComputePartialSumSigma( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple) -// Build the table of cross section per element. -// The table is built for MATERIALS. -// This table is used by DoIt to select randomly an element in the material. -{ - const G4Material* aMaterial = couple->GetMaterial(); - size_t index = couple->GetIndex(); - G4int NbOfElements = aMaterial->GetNumberOfElements(); - const G4ElementVector* theElementVector = aMaterial->GetElementVector(); - const G4double* theAtomNumDensityVector = - aMaterial->GetAtomicNumDensityVector(); - G4double GammaEnergyCut = SecondaryEnergyThreshold(index); - - PartialSumSigma[index] = new G4DataVector(); - - G4double SIGMA = 0. ; - - for ( G4int Ielem=0 ; Ielem < NbOfElements ; Ielem++ ) - { - SIGMA += theAtomNumDensityVector[Ielem] * - ComputeMicroscopicCrossSection( ParticleType, KineticEnergy, - (*theElementVector)[Ielem]->GetZ(), - (*theElementVector)[Ielem]->GetA(), - GammaEnergyCut ); - PartialSumSigma[index]->push_back(SIGMA); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuBremsstrahlung::ComputeMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double AtomicMass, - G4double GammaEnergyCut) -// Cross section is calculated according to a formula of R.Kokoulin. -{ - G4double TotalEnergy,vcut,vmax,aaa,bbb,hhh,aa,x,ep ; - G4int kkk ; - G4double ak1=2.3 ; - G4int k2=4 ; - G4double xgi[]={0.03377,0.16940,0.38069,0.61931,0.83060,0.96623}; - G4double wgi[]={0.08566,0.18038,0.23396,0.23396,0.18038,0.08566}; - G4double CrossSection = 0. ; - - G4double particleMass = ParticleType->GetPDGMass(); - TotalEnergy=KineticEnergy+particleMass ; - vcut = GammaEnergyCut/TotalEnergy ; - vmax = KineticEnergy/TotalEnergy ; - if(vmax <= vcut) return CrossSection; - - // numerical integration - aaa=log(vcut) ; - bbb=log(vmax); - kkk=int((bbb-aaa)/ak1)+k2 ; - hhh=(bbb-aaa)/float(kkk) ; - - for(G4int l=0; lGetPDGMass(); - - 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 cc=classic_electr_radius/rmass ; - static const G4double coeff= 16.*fine_structure_const*cc*cc/3. ; - - G4double dxsection = 0.; - - if( GammaEnergy > KineticEnergy) return dxsection ; - - G4double A = AtomicMass/(g/mole) ; // !!!!!!!!!!!!!!!!!!! - G4double E=KineticEnergy+particleMass ; - G4double v=GammaEnergy/E ; - G4double delta=0.5*particleMass*particleMass*v/(E-GammaEnergy) ; - G4double rab0=delta*sqrte ; - - G4double z13=exp(-log(AtomicNumber)/3.) ; - G4double dn=1.54*exp(0.27*log(A)) ; - - G4double b,b1,dnstar ; - - if(AtomicNumber<1.5) - { - b=bh; - b1=bh1; - dnstar=dn ; - } - else - { - b=btf; - b1=btf1; - dnstar = exp((1.-1./AtomicNumber)*log(dn)) ; - } - - // nucleus contribution logarithm - G4double rab1=b*z13; - G4double fn=log(rab1/(dnstar*(electron_mass_c2+rab0*rab1))* - (particleMass+delta*(dnstar*sqrte-2.))) ; - if(fn <0.) fn = 0. ; - // electron contribution logarithm - G4double epmax1=E/(1.+0.5*particleMass*rmass/E) ; - G4double fe=0.; - if(GammaEnergyGetPDGMass() ; - - for (G4int iz=0; iz 0.) - { - for(G4int ib=0; ib<=nbin; ib++) - { - proba[iz][it][ib] /= CrossSection ; - } - } - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - -G4VParticleChange* G4MuBremsstrahlung::PostStepDoIt(const G4Track& trackData, - const G4Step& stepData) -{ - - static G4double ysmall = -100. ; - static G4double ytablelow = -5. ; - - aParticleChange.Initialize(trackData); - const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); - - const G4DynamicParticle* aDynamicParticle=trackData.GetDynamicParticle(); - - G4double KineticEnergy = aDynamicParticle->GetKineticEnergy(); - G4ParticleMomentum ParticleDirection = - aDynamicParticle->GetMomentumDirection(); - - // Gamma cut in this material - G4double GammaEnergyCut = SecondaryEnergyThreshold(couple->GetIndex()); - - // check against insufficient energy - if(KineticEnergy < GammaEnergyCut) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - // select randomly one element constituing the material - const G4Element* anElement = SelectRandomAtom(couple); - - G4double TotalEnergy=KineticEnergy+aDynamicParticle-> - GetDefinition()->GetPDGMass() ; - - G4double dy = 5./G4float(NBIN) ; - - G4double ymin=log(log(GammaEnergyCut/CutFixed)/log(KineticEnergy/CutFixed)) ; - - if(ymin < ysmall) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - // sampling using tables - //G4double v,xc,x,yc,y ; - //G4int iZ,iT,iy ; - G4double v,x,y ; - G4int iy; - // select sampling table ; - G4double lnZ = log(anElement->GetZ()) ; - G4double delmin = 1.e10 ; - G4double del ; - G4int izz = 0; - G4int itt = 0; - G4int NBINminus1; - NBINminus1 = NBIN-1 ; - for (G4int iz=0; iz (proba[izz][itt][iy]-proba[izz][itt][iymin])/delmin) - &&(iy < NBINminus1)) ; - - //sampling is Done uniformly in y in the bin - y = ya[iy] + G4UniformRand() * ( ya[iy+1] - ya[iy] ) ; - } - - x = exp(y) ; - - v = CutFixed*exp(x*log(KineticEnergy/CutFixed)) ; - if( v <= 0.) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - // create G4DynamicParticle object for the Gamma - G4double GammaEnergy = v; - - // angles of the emitted gamma. ( Z - axis along the parent particle) - // Teta = electron_mass_c2/TotalEnergy for the moment ..... - - G4double Teta = electron_mass_c2/TotalEnergy ; - G4double Phi = twopi * G4UniformRand() ; - G4double dirx = sin(Teta)*cos(Phi) , diry = sin(Teta)*sin(Phi) , - dirz = cos(Teta) ; - - G4ThreeVector GammaDirection ( dirx, diry, dirz); - GammaDirection.rotateUz(ParticleDirection); - - G4DynamicParticle* aGamma= new G4DynamicParticle (G4Gamma::Gamma(), - GammaDirection, GammaEnergy); - - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(aGamma); - - // Update the incident particle - G4double NewKinEnergy = KineticEnergy - GammaEnergy; - if (NewKinEnergy > 0.) - { - aParticleChange.SetMomentumChange(ParticleDirection); - aParticleChange.SetEnergyChange(NewKinEnergy); - aParticleChange.SetLocalEnergyDeposit (0.); - } - else - { - aParticleChange.SetEnergyChange(0.); - aParticleChange.SetLocalEnergyDeposit (0.); - aParticleChange.SetStatusChange(fStopButAlive); - } - - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -const G4Element* G4MuBremsstrahlung::SelectRandomAtom( - const G4MaterialCutsCouple* couple) const -{ - // select randomly 1 element within the material - size_t index = couple->GetIndex(); - const G4Material* aMaterial = couple->GetMaterial(); - const G4int NumberOfElements = aMaterial->GetNumberOfElements(); - const G4ElementVector* theElementVector = aMaterial->GetElementVector(); - - G4double rval = G4UniformRand() - *((*PartialSumSigma[index])[NumberOfElements-1]); - for ( G4int i=0; i < NumberOfElements; i++ ) - if (rval <= (*PartialSumSigma[index])[i]) return ((*theElementVector)[i]); - G4cout << " WARNING !!! - The Material " << aMaterial->GetName() - << " has no elements, NULL pointer returned." << G4endl; - return NULL; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool G4MuBremsstrahlung::StorePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - G4String filename; - - // store stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable->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; - } - - // store PartialSumSigma table (G4OrderedTable) - filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); - if ( !PartialSumSigma.Store(filename, ascii) ){ - G4cout << " FAIL PartialSumSigma.store 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 G4MuBremsstrahlung::RetrievePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - // delete theLossTable and theMeanFreePathTable - if (theLossTable != 0) { - theLossTable->clearAndDestroy(); - delete theLossTable; - } - if (theMeanFreePathTable != 0) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - - // get bining from EnergyLoss - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - G4String filename; - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); - PartialSumSigma.clearAndDestroy(); - PartialSumSigma.reserve(numOfCouples); - - // retreive stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - theLossTable = new G4PhysicsTable(numOfCouples); - if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retreive mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - if ( !theMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retrieve PartialSumSigma table (G4OrderedTable) - filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); - if ( !PartialSumSigma.Retrieve(filename, ascii) ){ - G4cout << " FAIL PartialSumSigma.retrieve in " << filename - << G4endl; - return false; - } - - G4cout << GetProcessName() << " for " << particle->GetParticleName() - << ": Success to retrieve the PhysicsTables from " - << directory << G4endl; - - if (particle->GetPDGCharge() < 0.) - { - RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; - CounterOfmuminusProcess++; - } - else - { - RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; - CounterOfmuplusProcess++; - } - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); - MakeSamplingTables(particle); - - G4VMuEnergyLoss::BuildDEDXTable(*particle); - if(particle==G4MuonPlus::MuonPlus()) PrintInfoDefinition(); - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuBremsstrahlung::PrintInfoDefinition() -{ - G4String comments = "theoretical cross section \n "; - comments += " Good description up to 1000 PeV."; - - G4cout << G4endl << GetProcessName() << ": " << comments - << "\n PhysicsTables from " << G4BestUnit(LowerBoundLambda, - "Energy") - << " to " << G4BestUnit(UpperBoundLambda,"Energy") - << " in " << NbinLambda << " bins. \n"; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung52.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung52.cc new file mode 100644 index 0000000000..576930f139 --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlung52.cc @@ -0,0 +1,828 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MuBremsstrahlung52.cc,v 1.1 2003/08/08 11:28:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +//--------------- G4MuBremsstrahlung52 physics process --------------------------- +// by Laszlo Urban, September 1997 +// +// 08-04-98 remove 'tracking cut' of muon in oIt, MMa +// 26/10/98 new cross section of R.Kokoulin,cleanup , L.Urban +// 10/02/00 modifications , new e.m. structure, L.Urban +// 29/05/01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 26-09-01 completion of store/retrieve PhysicsTable (mma) +// 28-09-01 suppression of theMuonPlus ..etc..data members (mma) +// 29-10-01 all static functions no more inlined (mma) +// 08-11-01 particleMass becomes a local variable (mma) +// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +//------------------------------------------------------------------------------ + +#include "G4MuBremsstrahlung52.hh" +#include "G4UnitsTable.hh" +#include "G4ProductionCutsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// static members +// +G4int G4MuBremsstrahlung52::nzdat = 5 ; +G4double G4MuBremsstrahlung52::zdat[]={1.,4.,13.,29.,92.}; +G4double G4MuBremsstrahlung52::adat[]={1.01,9.01,26.98,63.55,238.03}; +G4int G4MuBremsstrahlung52::ntdat = 8 ; +G4double G4MuBremsstrahlung52::tdat[]={1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e10}; +G4int G4MuBremsstrahlung52::NBIN = 1000; // 100 ; +G4double G4MuBremsstrahlung52::ya[1001]; +G4double G4MuBremsstrahlung52::proba[5][8][1001]; +G4double G4MuBremsstrahlung52::CutFixed=0.98*keV; + +G4double G4MuBremsstrahlung52::LowerBoundLambda = 1.*keV; +G4double G4MuBremsstrahlung52::UpperBoundLambda = 1000000.*TeV; +G4int G4MuBremsstrahlung52::NbinLambda = 150; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +// constructor + +G4MuBremsstrahlung52::G4MuBremsstrahlung52(const G4String& processName) + : G4VMuEnergyLoss(processName), + theMeanFreePathTable(NULL) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4MuBremsstrahlung52::~G4MuBremsstrahlung52() +{ + if (theMeanFreePathTable) { + theMeanFreePathTable->clearAndDestroy(); + + delete theMeanFreePathTable; + } + PartialSumSigma.clearAndDestroy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuBremsstrahlung52::SetLowerBoundLambda(G4double val) + {LowerBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuBremsstrahlung52::SetUpperBoundLambda(G4double val) + {UpperBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuBremsstrahlung52::SetNbinLambda(G4int n) + {NbinLambda = n;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuBremsstrahlung52::GetLowerBoundLambda() + { return LowerBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuBremsstrahlung52::GetUpperBoundLambda() + { return UpperBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int G4MuBremsstrahlung52::GetNbinLambda() + {return NbinLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuBremsstrahlung52::BuildPhysicsTable( + const G4ParticleDefinition& aParticleType) +{ + if( !CutsWhereModified() && theLossTable) return; + + LowestKineticEnergy = GetLowerBoundEloss() ; + HighestKineticEnergy = GetUpperBoundEloss() ; + TotBin = GetNbinEloss() ; + + BuildLossTable(aParticleType) ; + + if(&aParticleType==G4MuonMinus::MuonMinus()) + { + RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; + CounterOfmuminusProcess++; + } + else + { + RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; + CounterOfmuplusProcess++; + } + + if( !theMeanFreePathTable ) MakeSamplingTables(&aParticleType) ; + + BuildLambdaTable(aParticleType) ; + + G4VMuEnergyLoss::BuildDEDXTable(aParticleType); + + if(&aParticleType == G4MuonPlus::MuonPlus()) PrintInfoDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuBremsstrahlung52::BuildLossTable( + const G4ParticleDefinition& aParticleType) +{ + G4double KineticEnergy,TotalEnergy,bremloss,Z, + loss,natom ; + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} + theLossTable = new G4PhysicsTable(numOfCouples); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); + G4double particleMass = aParticleType.GetPDGMass(); + + // loop for materials + // + for (size_t J=0; JGetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + G4double Cut = SecondaryEnergyThreshold(J); + + const G4ElementVector* theElementVector = + material->GetElementVector() ; + const G4double* theAtomicNumDensityVector = + material->GetAtomicNumDensityVector() ; + const G4int NumberOfElements = material->GetNumberOfElements() ; + + for (G4int i=0; iGetLowEdgeEnergy(i) ; + TotalEnergy = KineticEnergy+particleMass ; + + if(Cut>KineticEnergy) Cut = KineticEnergy ; + bremloss = 0.; + + for (G4int iel=0; ielGetZ(); + natom = theAtomicNumDensityVector[iel] ; + loss = ComputeBremLoss((&aParticleType),Z, + (*theElementVector)[iel]->GetA(), + KineticEnergy,Cut) ; + bremloss += natom*loss ; + } + if(bremloss<0.) bremloss = 0. ; + + aVector->PutValue(i,bremloss); + } + theLossTable->insert(aVector); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuBremsstrahlung52::ComputeBremLoss( + const G4ParticleDefinition* aParticleType, + G4double AtomicNumber,G4double AtomicMass, + G4double KineticEnergy,G4double GammaEnergyCut) +{ + G4double TotalEnergy,vcut,vmax,aaa,bbb,hhh,aa,x,ep ; + G4int kkk ; + G4double ak1=0.05 ; + G4int k2=5 ; + G4double xgi[]={0.03377,0.16940,0.38069,0.61931,0.83060,0.96623}; + G4double wgi[]={0.08566,0.18038,0.23396,0.23396,0.18038,0.08566}; + G4double loss = 0. ; + + G4double particleMass = aParticleType->GetPDGMass(); + TotalEnergy=KineticEnergy+particleMass ; + vcut = GammaEnergyCut/TotalEnergy ; + vmax = KineticEnergy/TotalEnergy ; + + aaa=0.; + bbb=vcut ; + if(vcut>vmax) bbb=vmax ; + kkk=int((bbb-aaa)/ak1)+k2 ; + hhh=(bbb-aaa)/float(kkk) ; + + for(G4int l=0; lGetTableSize(); + + //create table + if (theMeanFreePathTable) {theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + + PartialSumSigma.clearAndDestroy(); + PartialSumSigma.resize(numOfCouples); + + G4PhysicsLogVector* ptrVector; + for ( size_t J=0; JGetMaterialCutsCouple(J); + + for ( G4int i = 0 ; i < NbinLambda ; i++ ) + { + LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; + Value = ComputeMeanFreePath( &ParticleType, LowEdgeEnergy, couple); + ptrVector->PutValue( i , Value ) ; + } + + theMeanFreePathTable->insertAt( J , ptrVector ); + + // Compute the PartialSumSigma table at a given fixed energy + ComputePartialSumSigma( &ParticleType, FixedEnergy, couple) ; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuBremsstrahlung52::ComputePartialSumSigma( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple) +// Build the table of cross section per element. +// The table is built for MATERIALS. +// This table is used by DoIt to select randomly an element in the material. +{ + const G4Material* aMaterial = couple->GetMaterial(); + size_t index = couple->GetIndex(); + G4int NbOfElements = aMaterial->GetNumberOfElements(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + const G4double* theAtomNumDensityVector = + aMaterial->GetAtomicNumDensityVector(); + G4double GammaEnergyCut = SecondaryEnergyThreshold(index); + + PartialSumSigma[index] = new G4DataVector(); + + G4double SIGMA = 0. ; + + for ( G4int Ielem=0 ; Ielem < NbOfElements ; Ielem++ ) + { + SIGMA += theAtomNumDensityVector[Ielem] * + ComputeMicroscopicCrossSection( ParticleType, KineticEnergy, + (*theElementVector)[Ielem]->GetZ(), + (*theElementVector)[Ielem]->GetA(), + GammaEnergyCut ); + PartialSumSigma[index]->push_back(SIGMA); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuBremsstrahlung52::ComputeMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicMass, + G4double GammaEnergyCut) +// Cross section is calculated according to a formula of R.Kokoulin. +{ + G4double TotalEnergy,vcut,vmax,aaa,bbb,hhh,aa,x,ep ; + G4int kkk ; + G4double ak1=2.3 ; + G4int k2=4 ; + G4double xgi[]={0.03377,0.16940,0.38069,0.61931,0.83060,0.96623}; + G4double wgi[]={0.08566,0.18038,0.23396,0.23396,0.18038,0.08566}; + G4double CrossSection = 0. ; + + G4double particleMass = ParticleType->GetPDGMass(); + TotalEnergy=KineticEnergy+particleMass ; + vcut = GammaEnergyCut/TotalEnergy ; + vmax = KineticEnergy/TotalEnergy ; + if(vmax <= vcut) return CrossSection; + + // numerical integration + aaa=log(vcut) ; + bbb=log(vmax); + kkk=int((bbb-aaa)/ak1)+k2 ; + hhh=(bbb-aaa)/float(kkk) ; + + for(G4int l=0; lGetPDGMass(); + + 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 cc=classic_electr_radius/rmass ; + static const G4double coeff= 16.*fine_structure_const*cc*cc/3. ; + + G4double dxsection = 0.; + + if( GammaEnergy > KineticEnergy) return dxsection ; + + G4double A = AtomicMass/(g/mole) ; // !!!!!!!!!!!!!!!!!!! + G4double E=KineticEnergy+particleMass ; + G4double v=GammaEnergy/E ; + G4double delta=0.5*particleMass*particleMass*v/(E-GammaEnergy) ; + G4double rab0=delta*sqrte ; + + G4double z13=exp(-log(AtomicNumber)/3.) ; + G4double dn=1.54*exp(0.27*log(A)) ; + + G4double b,b1,dnstar ; + + if(AtomicNumber<1.5) + { + b=bh; + b1=bh1; + dnstar=dn ; + } + else + { + b=btf; + b1=btf1; + dnstar = exp((1.-1./AtomicNumber)*log(dn)) ; + } + + // nucleus contribution logarithm + G4double rab1=b*z13; + G4double fn=log(rab1/(dnstar*(electron_mass_c2+rab0*rab1))* + (particleMass+delta*(dnstar*sqrte-2.))) ; + if(fn <0.) fn = 0. ; + // electron contribution logarithm + G4double epmax1=E/(1.+0.5*particleMass*rmass/E) ; + G4double fe=0.; + if(GammaEnergyGetPDGMass() ; + + for (G4int iz=0; iz 0.) + { + for(G4int ib=0; ib<=nbin; ib++) + { + proba[iz][it][ib] /= CrossSection ; + } + } + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + +G4VParticleChange* G4MuBremsstrahlung52::PostStepDoIt(const G4Track& trackData, + const G4Step& stepData) +{ + + static G4double ysmall = -100. ; + static G4double ytablelow = -5. ; + + aParticleChange.Initialize(trackData); + const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); + + const G4DynamicParticle* aDynamicParticle=trackData.GetDynamicParticle(); + + G4double KineticEnergy = aDynamicParticle->GetKineticEnergy(); + G4ParticleMomentum ParticleDirection = + aDynamicParticle->GetMomentumDirection(); + + // Gamma cut in this material + G4double GammaEnergyCut = SecondaryEnergyThreshold(couple->GetIndex()); + + // check against insufficient energy + if(KineticEnergy < GammaEnergyCut) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + // select randomly one element constituing the material + const G4Element* anElement = SelectRandomAtom(couple); + + G4double TotalEnergy=KineticEnergy+aDynamicParticle-> + GetDefinition()->GetPDGMass() ; + + G4double dy = 5./G4float(NBIN) ; + + G4double ymin=log(log(GammaEnergyCut/CutFixed)/log(KineticEnergy/CutFixed)) ; + + if(ymin < ysmall) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + // sampling using tables + //G4double v,xc,x,yc,y ; + //G4int iZ,iT,iy ; + G4double v,x,y ; + G4int iy; + // select sampling table ; + G4double lnZ = log(anElement->GetZ()) ; + G4double delmin = 1.e10 ; + G4double del ; + G4int izz = 0; + G4int itt = 0; + G4int NBINminus1; + NBINminus1 = NBIN-1 ; + for (G4int iz=0; iz (proba[izz][itt][iy]-proba[izz][itt][iymin])/delmin) + &&(iy < NBINminus1)) ; + + //sampling is Done uniformly in y in the bin + y = ya[iy] + G4UniformRand() * ( ya[iy+1] - ya[iy] ) ; + } + + x = exp(y) ; + + v = CutFixed*exp(x*log(KineticEnergy/CutFixed)) ; + if( v <= 0.) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + // create G4DynamicParticle object for the Gamma + G4double GammaEnergy = v; + + // angles of the emitted gamma. ( Z - axis along the parent particle) + // Teta = electron_mass_c2/TotalEnergy for the moment ..... + + G4double Teta = electron_mass_c2/TotalEnergy ; + G4double Phi = twopi * G4UniformRand() ; + G4double dirx = sin(Teta)*cos(Phi) , diry = sin(Teta)*sin(Phi) , + dirz = cos(Teta) ; + + G4ThreeVector GammaDirection ( dirx, diry, dirz); + GammaDirection.rotateUz(ParticleDirection); + + G4DynamicParticle* aGamma= new G4DynamicParticle (G4Gamma::Gamma(), + GammaDirection, GammaEnergy); + + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(aGamma); + + // Update the incident particle + G4double NewKinEnergy = KineticEnergy - GammaEnergy; + if (NewKinEnergy > 0.) + { + aParticleChange.SetMomentumChange(ParticleDirection); + aParticleChange.SetEnergyChange(NewKinEnergy); + aParticleChange.SetLocalEnergyDeposit (0.); + } + else + { + aParticleChange.SetEnergyChange(0.); + aParticleChange.SetLocalEnergyDeposit (0.); + aParticleChange.SetStatusChange(fStopButAlive); + } + + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +const G4Element* G4MuBremsstrahlung52::SelectRandomAtom( + const G4MaterialCutsCouple* couple) const +{ + // select randomly 1 element within the material + size_t index = couple->GetIndex(); + const G4Material* aMaterial = couple->GetMaterial(); + const G4int NumberOfElements = aMaterial->GetNumberOfElements(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + + G4double rval = G4UniformRand() + *((*PartialSumSigma[index])[NumberOfElements-1]); + for ( G4int i=0; i < NumberOfElements; i++ ) + if (rval <= (*PartialSumSigma[index])[i]) return ((*theElementVector)[i]); + G4cout << " WARNING !!! - The Material " << aMaterial->GetName() + << " has no elements, NULL pointer returned." << G4endl; + return NULL; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4MuBremsstrahlung52::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + + // store stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable->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; + } + + // store PartialSumSigma table (G4OrderedTable) + filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); + if ( !PartialSumSigma.Store(filename, ascii) ){ + G4cout << " FAIL PartialSumSigma.store 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 G4MuBremsstrahlung52::RetrievePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + // delete theLossTable and theMeanFreePathTable + if (theLossTable != 0) { + theLossTable->clearAndDestroy(); + delete theLossTable; + } + if (theMeanFreePathTable != 0) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + + // get bining from EnergyLoss + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + G4String filename; + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); + PartialSumSigma.clearAndDestroy(); + PartialSumSigma.reserve(numOfCouples); + + // retreive stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + theLossTable = new G4PhysicsTable(numOfCouples); + if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + if ( !theMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retrieve PartialSumSigma table (G4OrderedTable) + filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); + if ( !PartialSumSigma.Retrieve(filename, ascii) ){ + G4cout << " FAIL PartialSumSigma.retrieve in " << filename + << G4endl; + return false; + } + + G4cout << GetProcessName() << " for " << particle->GetParticleName() + << ": Success to retrieve the PhysicsTables from " + << directory << G4endl; + + if (particle->GetPDGCharge() < 0.) + { + RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; + CounterOfmuminusProcess++; + } + else + { + RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; + CounterOfmuplusProcess++; + } + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); + MakeSamplingTables(particle); + + G4VMuEnergyLoss::BuildDEDXTable(*particle); + if(particle==G4MuonPlus::MuonPlus()) PrintInfoDefinition(); + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuBremsstrahlung52::PrintInfoDefinition() +{ + G4String comments = "theoretical cross section \n "; + comments += " Good description up to 1000 PeV."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " << G4BestUnit(LowerBoundLambda, + "Energy") + << " to " << G4BestUnit(UpperBoundLambda,"Energy") + << " in " << NbinLambda << " bins. \n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungModel.cc index d2c4e134e0..3314e51714 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.10 2003/06/16 17:01:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuBremsstrahlungModel.cc,v 1.11 2003/07/21 12:52:35 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -154,7 +154,7 @@ void G4MuBremsstrahlungModel::Initialise(const G4ParticleDefinition*, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuBremsstrahlungModel::ComputeDEDX(const G4Material* material, +G4double G4MuBremsstrahlungModel::ComputeDEDX(const G4MaterialCutsCouple* couple, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy) @@ -162,7 +162,8 @@ G4double G4MuBremsstrahlungModel::ComputeDEDX(const G4Material* material, if(kineticEnergy < lowKinEnergy) return 0.0; G4double cut = std::min(cutEnergy, kineticEnergy); - + + const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); @@ -328,7 +329,7 @@ G4double G4MuBremsstrahlungModel::ComputeDMicroscopicCrossSection( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuBremsstrahlungModel::CrossSection(const G4Material* material, +G4double G4MuBremsstrahlungModel::CrossSection(const G4MaterialCutsCouple* couple, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, @@ -339,6 +340,7 @@ G4double G4MuBremsstrahlungModel::CrossSection(const G4Material* material, G4double cut = cutEnergy; if(cut >= tmax) return cross; + const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector() ; const G4double* theAtomNumDensityVector = material->GetAtomicNumDensityVector(); diff --git a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungSTD.cc b/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungSTD.cc deleted file mode 100644 index 0e8a37e90b..0000000000 --- a/source/processes/electromagnetic/muons/src/G4MuBremsstrahlungSTD.cc +++ /dev/null @@ -1,120 +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: G4MuBremsstrahlungSTD.cc,v 1.8 2003/06/06 17:42:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ------------------------------------------------------------------- -// -// GEANT4 Class file -// -// -// File name: G4MuBremsstrahlungSTD -// -// Author: Laszlo Urban -// -// Creation date: 30.09.1997 -// -// Modifications: -// -// 08-04-98 remove 'tracking cut' of muon in oIt, MMa -// 26-10-98 new cross section of R.Kokoulin,cleanup , L.Urban -// 10-02-00 modifications , new e.m. structure, L.Urban -// 29-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation -// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 17-09-01 migration of Materials to pure STL (mma) -// 26-09-01 completion of store/retrieve PhysicsTable (mma) -// 28-09-01 suppression of theMuonPlus ..etc..data members (mma) -// 29-10-01 all static functions no more inlined (mma) -// 08-11-01 particleMass becomes a local variable (mma) -// 19-08-02 V.Ivanchenko update to new design -// 23-12-02 Change interface in order to move to cut per region (V.Ivanchenko) -// 26-12-02 Secondary production moved to derived classes (V.Ivanchenko) -// -// ------------------------------------------------------------------- -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4MuBremsstrahlungSTD.hh" -#include "G4Gamma.hh" -#include "G4MuonPlus.hh" -#include "G4MuonMinus.hh" -#include "G4MuBremsstrahlungModel.hh" -#include "G4UniversalFluctuation.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4MuBremsstrahlungSTD::G4MuBremsstrahlungSTD(const G4String& name) - : G4VEnergyLossSTD(name), - theParticle(0), - theBaseParticle(0) -{ - InitialiseProcess(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4MuBremsstrahlungSTD::~G4MuBremsstrahlungSTD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4MuBremsstrahlungSTD::InitialiseProcess() -{ - SetSecondaryParticle(G4Gamma::Gamma()); - - SetDEDXBinning(120); - SetLambdaBinning(120); - SetMinKinEnergy(0.1*keV); - SetMaxKinEnergy(100.0*TeV); - - G4VEmModel* em = new G4MuBremsstrahlungModel(); - em->SetLowEnergyLimit(0.1*keV); - em->SetHighEnergyLimit(100.0*TeV); - AddEmModel(1, em); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -const G4ParticleDefinition* G4MuBremsstrahlungSTD::DefineBaseParticle( - const G4ParticleDefinition* p) -{ - if(!theParticle) theParticle = p; - return theBaseParticle; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4MuBremsstrahlungSTD::PrintInfoDefinition() -{ - G4VEnergyLossSTD::PrintInfoDefinition(); - - G4cout << " Parametrised model " - << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc index 4f14d9c9ef..44b8bc66d3 100644 --- a/source/processes/electromagnetic/muons/src/G4MuIonisation.cc +++ b/source/processes/electromagnetic/muons/src/G4MuIonisation.cc @@ -20,13 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MuIonisation.cc,v 1.38 2003/11/12 16:18:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4MuIonisation.cc,v 1.32 2003/06/16 17:01:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- // -// --------------- G4MuIonisation physics process ------------------------------ -// by Laszlo Urban, September 1997 -// ----------------------------------------------------------------------------- +// GEANT4 Class file +// +// +// File name: G4MuIonisation +// +// Author: Laszlo Urban +// +// Creation date: 30.09.1997 +// +// Modifications: // // 08-04-98 remove 'tracking cut' of the ionizing particle (mma) // 26-10-98 new stuff from R.Kokoulin + cleanup , L.Urban @@ -40,634 +48,119 @@ // 29-10-01 all static functions no more inlined (mma) // 07-11-01 correction(Tmax+xsection computation) L.Urban // 08-11-01 particleMass becomes a local variable (mma) -// 04-12-02 fix misprint in majorant in PostStep (VI) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) -// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) -// ----------------------------------------------------------------------------- - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// 10-05-02 V.Ivanchenko update to new design +// 04-12-02 V.Ivanchenko the low energy limit for Kokoulin model to 10 GeV +// 23-12-02 Change interface in order to move to cut per region (V.Ivanchenko) +// 26-12-02 Secondary production moved to derived classes (V.Ivanchenko) +// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) +// 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko) +// 03-06-03 Add SetIntegral method to choose fluctuation model (V.Ivanchenko) +// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) +// 04-08-03 Set integral=false to be default (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4MuIonisation.hh" +#include "G4Electron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4BraggModel.hh" +#include "G4BetheBlochModel.hh" +#include "G4MuBetheBlochModel.hh" +#include "G4UniversalFluctuation.hh" +#include "G4BohrFluctuations.hh" #include "G4UnitsTable.hh" -#include "G4ProductionCutsTable.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuIonisation::LowerBoundLambda = 1.*keV; -G4double G4MuIonisation::UpperBoundLambda = 1000000.*TeV; -G4int G4MuIonisation::NbinLambda = 150; +G4MuIonisation::G4MuIonisation(const G4String& name) + : G4VEnergyLossProcess(name), + theParticle(0), + theBaseParticle(0), + subCutoff(false), + isInitialised(false) +{ + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + SetIntegral(false); +} -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4MuIonisation::G4MuIonisation(const G4String& processName) - : G4VMuEnergyLoss(processName), - theMeanFreePathTable(0) -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4MuIonisation::~G4MuIonisation() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuIonisation::InitialiseProcess() { - if (theMeanFreePathTable) { - theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} -} + if(isInitialised) return; + mass = theParticle->GetPDGMass(); + SetSecondaryParticle(G4Electron::Electron()); -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + if(IsIntegral()) { + flucModel = new G4BohrFluctuations(); -void G4MuIonisation::SetLowerBoundLambda(G4double val) - {LowerBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuIonisation::SetUpperBoundLambda(G4double val) - {UpperBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuIonisation::SetNbinLambda(G4int n) - {NbinLambda = n;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuIonisation::GetLowerBoundLambda() - { return LowerBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuIonisation::GetUpperBoundLambda() - { return UpperBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4int G4MuIonisation::GetNbinLambda() - {return NbinLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuIonisation::BuildPhysicsTable(const G4ParticleDefinition& ParticleType) -// just call BuildLossTable+BuildLambdaTable -{ - if( !CutsWhereModified() && theLossTable) return; - - // get bining from EnergyLoss - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - BuildLossTable(ParticleType); - - if (ParticleType.GetPDGCharge() > 0.) - { - RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; - CounterOfmuplusProcess++; - } - else - { - RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; - CounterOfmuminusProcess++; - } - - BuildLambdaTable(ParticleType); - - G4VMuEnergyLoss::BuildDEDXTable(ParticleType); - - if(&ParticleType == G4MuonPlus::MuonPlus()) PrintInfoDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuIonisation::BuildLossTable(const G4ParticleDefinition& aParticleType) -{ - - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} - theLossTable = new G4PhysicsTable(numOfCouples); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - // loop for materials - // - for (size_t J=0; JGetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - // get electron cut in kinetic energy for the material - G4double DeltaThreshold = SecondaryEnergyThreshold(J); - - // now comes the loop for the kinetic energy values - - for (G4int i = 0 ; i < TotBin ; i++) - { - G4double dEdx = ComputeRestrictedMeandEdx(aParticleType, - aVector->GetLowEdgeEnergy(i), - material, - DeltaThreshold); - aVector->PutValue(i,dEdx); - } - theLossTable->insert(aVector); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuIonisation::BuildLambdaTable(const G4ParticleDefinition& aParticleType) -{ - - if(0 < verboseLevel) { - G4cout << "G4MuIonisation::BuildLambdaTable() for process " - << GetProcessName() << " and particle " - << aParticleType.GetParticleName() << G4endl; + } else { + flucModel = new G4UniversalFluctuation(); } - //create table - // - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4double massFactor = mass/proton_mass_c2; + G4VEmModel* em = new G4BraggModel(); + em->SetLowEnergyLimit(0.1*keV); + em->SetHighEnergyLimit(2.*MeV*massFactor); + AddEmModel(1, em, flucModel); + G4VEmModel* em1 = new G4BetheBlochModel(); + em1->SetLowEnergyLimit(2.*MeV*massFactor); + em1->SetHighEnergyLimit(10.0*GeV); + AddEmModel(2, em1, flucModel); + G4VEmModel* em2 = new G4MuBetheBlochModel(); + em2->SetLowEnergyLimit(10.0*GeV); + em2->SetHighEnergyLimit(100.0*TeV); + AddEmModel(3, em2, flucModel); - if (theMeanFreePathTable) - { theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} - - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - // loop for materials - - for (size_t J=0 ; J < numOfCouples; J++) - { - - //create physics vector then fill it .... - G4PhysicsLogVector* aVector = new G4PhysicsLogVector( - LowerBoundLambda,UpperBoundLambda,NbinLambda); - - // compute the (macroscopic) cross section first - const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); - G4int NumberOfElements = material->GetNumberOfElements(); - - // get the electron kinetic energy cut for the actual material, - // it will be used in ComputeCrossSectionPerAtom - // ( --> it will be the same for all the elements in this material) - G4double DeltaThreshold = SecondaryEnergyThreshold(J); - - for ( G4int i = 0 ; i < NbinLambda ; i++ ) - { - G4double LowEdgeEnergy = aVector->GetLowEdgeEnergy(i); - G4double sigma = 0.; - for (G4int iel=0; ielGetZ(), - DeltaThreshold); - } - - // mean free path = 1./macroscopic cross section - G4double Value = sigma > DBL_MIN ? 1./sigma : DBL_MAX; - aVector->PutValue(i, Value); - } - theMeanFreePathTable->insert(aVector); - } + ratio = electron_mass_c2/mass; + isInitialised = true; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MuIonisation::ComputeRestrictedMeandEdx ( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - const G4Material* material, - G4double DeltaThreshold) +const G4ParticleDefinition* G4MuIonisation::DefineBaseParticle( + const G4ParticleDefinition* p) { - // calculate the dE/dx due to the ionization process (Geant4 internal units) - // Bethe-Bloch formula - // - G4double particleMass = aParticleType.GetPDGMass(); - - G4double ElectronDensity = material->GetElectronDensity(); - G4double Eexc = material->GetIonisation()->GetMeanExcitationEnergy(); - G4double Eexc2 = Eexc*Eexc; - - G4double tau = KineticEnergy/particleMass; - G4double gamma = tau + 1., bg2 = tau*(tau+2.), beta2 = bg2/(gamma*gamma); - G4double RateMass = electron_mass_c2/particleMass; - G4double Tmax=2.*electron_mass_c2*bg2/(1.+2.*gamma*RateMass+RateMass*RateMass); - - G4double taul = material->GetIonisation()->GetTaul(); - - G4double dEdx = 0.; - // - // high energy part , Bethe-Bloch formula - // - if (tau > taul) - { - G4double rcut = std::min(DeltaThreshold/Tmax, 1.); - dEdx = log(2.*electron_mass_c2*bg2*Tmax/Eexc2) - +log(rcut)-(1.+rcut)*beta2; - - //density correction - G4double Cden = material->GetIonisation()->GetCdensity(); - G4double Mden = material->GetIonisation()->GetMdensity(); - G4double Aden = material->GetIonisation()->GetAdensity(); - G4double X0den = material->GetIonisation()->GetX0density(); - G4double X1den = material->GetIonisation()->GetX1density(); - - const G4double twoln10 = 2.*log(10.); - G4double x = log(bg2)/twoln10; - G4double delta; - if (x < X0den) delta = 0.; - else {delta = twoln10*x - Cden; - if (x < X1den) delta += Aden*pow((X1den-x),Mden); - } - - // shell correction - G4double* ShellCorrectionVector = material->GetIonisation()-> - GetShellCorrectionVector(); - const G4double bg2lim = 0.0169, taulim = 8.4146e-3; - G4double sh = 0., xs = 1.; - if (bg2 > bg2lim) for (G4int k=0; k<3; k++) - {xs *= bg2; sh += ShellCorrectionVector[k]/xs;} - else { for (G4int k=0; k<3; k++) - {xs *= bg2lim; sh += ShellCorrectionVector[k]/xs;} - sh *= log(tau/taul)/log(taulim/taul); - } - - // now you can compute the total ionization loss - dEdx -= (delta + sh); dEdx /= beta2; - - // correction of R. Kokoulin // has been taken out *************** - // G4double E = KineticEnergy+particleMass; - // G4double epmax = RateMass*E*E/(RateMass*E+particleMass); - // G4double apar = log(2.*epmax/electron_mass_c2); - // dEdx += fine_structure_const*(log(2.*E/particleMass)-apar/3.)* - // apar*apar/twopi; - - dEdx *= twopi_mc2_rcl2*ElectronDensity; - if (dEdx < 0.) dEdx = 0.; - } - // - // low energy part , parametrized energy loss formulae - // - if (tau <= taul) - { - // get elements in the actual material, - const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* NbOfAtomsPerVolume=material->GetVecNbOfAtomsPerVolume(); - G4int NumberOfElements = material->GetNumberOfElements(); - - // loop for the elements in the material - dEdx = 0.; - for (G4int iel=0; ielGetIonisation()->GetTau0()) - dEdx += NbOfAtomsPerVolume[iel] - *(element->GetIonisation()->GetAlow()*sqrt(tau) - + element->GetIonisation()->GetBlow()*tau); - else - dEdx += NbOfAtomsPerVolume[iel] - * element->GetIonisation()->GetClow()/sqrt(tau); - } - G4double deltaloss = 0.; - if (DeltaThreshold < Tmax) - { - deltaloss = log(Tmax/DeltaThreshold)- - beta2*(1.-DeltaThreshold/Tmax) ; - if (aParticleType.GetPDGSpin() == 0.5) - deltaloss += 0.25*(Tmax-DeltaThreshold)*(Tmax-DeltaThreshold)/ - (KineticEnergy*KineticEnergy+proton_mass_c2*proton_mass_c2); - deltaloss *= twopi_mc2_rcl2*ElectronDensity/beta2; - } - dEdx -= deltaloss; - if (dEdx < 0.) dEdx = 0.; - } - return dEdx; + if(p) theParticle = p; + theBaseParticle = BaseParticle(); + if(theParticle && !isInitialised) InitialiseProcess(); + return theBaseParticle; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuIonisation::ComputeCrossSectionPerAtom( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double DeltaThreshold) -{ - // calculates the totalcross section per atom in GEANT4 internal units - // ( it is called for elements , AtomicNumber = Z ) - // - - G4double particleMass = aParticleType.GetPDGMass(); - G4double TotalEnergy = KineticEnergy + particleMass; - G4double tempvar = particleMass+electron_mass_c2; - G4double KnockonMaxEnergy = 2.*electron_mass_c2*KineticEnergy - *(TotalEnergy+particleMass) - /(tempvar*tempvar+2.*electron_mass_c2*KineticEnergy); - - G4double TotalCrossSection = 0.; - if (KnockonMaxEnergy <= DeltaThreshold) return TotalCrossSection; - - const G4double xgi[] = {0.06943,0.33001,0.66999,0.93057}; - const G4double wgi[] = {0.17393,0.32607,0.32607,0.17393}; - const G4double ak1 = 4.6; - const G4int k2 = 2; - - G4double aaa = log(DeltaThreshold); - G4double bbb = log(KnockonMaxEnergy); - G4int kkk = int((bbb-aaa)/ak1)+k2; - G4double hhh = (bbb-aaa)/kkk; - G4double step = exp(hhh); - G4double ymax = 1./KnockonMaxEnergy; - - for (G4int k=0; k= KnockonMaxEnergy) return DifCrossSection; - - G4double v = KnockonEnergy/TotalEnergy; - DifCrossSection = twopi_mc2_rcl2*AtomicNumber* - (1.-betasquare*KnockonEnergy/KnockonMaxEnergy+0.5*v*v)/ - (betasquare*KnockonEnergy*KnockonEnergy); - G4double a1 = log(1.+2.*KnockonEnergy/electron_mass_c2); - G4double a3 = log(4.*TotalEnergy*(TotalEnergy-KnockonEnergy)/ - (particleMass*particleMass)); - DifCrossSection *= (1.+alphaprime*a1*(a3-a1)); - - return DifCrossSection; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VParticleChange* G4MuIonisation::PostStepDoIt(const G4Track& trackData, - const G4Step& stepData) -{ - aParticleChange.Initialize(trackData); - - const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); - const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); - - G4double particleMass = aParticle->GetDefinition()->GetPDGMass(); - G4double KineticEnergy = aParticle->GetKineticEnergy(); - G4double TotalEnergy = KineticEnergy + particleMass; - G4double Psquare = KineticEnergy*(TotalEnergy+particleMass); - G4double Esquare = TotalEnergy*TotalEnergy; - G4double betasquare=Psquare/Esquare; - G4double summass = particleMass + electron_mass_c2; - G4double MaxKineticEnergyTransfer = 2.*electron_mass_c2*Psquare - /(summass*summass+2.*electron_mass_c2*KineticEnergy); - G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); - - // get electron cut in kinetic energy - G4double DeltaThreshold = SecondaryEnergyThreshold(couple->GetIndex()); - - // sampling kinetic energy of the delta ray - // - if (MaxKineticEnergyTransfer <= DeltaThreshold) - // pathological case (it should not happen, there is no change at all) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - // normal case - G4double xc = DeltaThreshold/MaxKineticEnergyTransfer; - G4double rate = MaxKineticEnergyTransfer/TotalEnergy; - G4double te2 = 0.5*rate*rate; - - // sampling follows ... - G4double x,twoep,a1,grej; - const G4double alphaprime = fine_structure_const/twopi; - G4double a0=log(2.*TotalEnergy/particleMass); - G4double grejc=(1.-xc*betasquare+te2)*(1.+ alphaprime*a0*a0); - do { x=xc/(1.-(1.-xc)*G4UniformRand()); - twoep = 2.*x*MaxKineticEnergyTransfer; - a1 = log(1.+twoep/electron_mass_c2); - grej = (1.-x*(betasquare-x*te2))*(1.+alphaprime*a1* - (a0+log((2.*TotalEnergy-twoep)/particleMass)-a1))/grejc ; - } while(G4UniformRand() > grej); - - G4double DeltaKineticEnergy = x * MaxKineticEnergyTransfer; - - if (DeltaKineticEnergy <= 0.) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - G4double DeltaTotalMomentum = sqrt(DeltaKineticEnergy * (DeltaKineticEnergy + - 2. * electron_mass_c2 )); - G4double TotalMomentum = sqrt(Psquare); - G4double costheta = DeltaKineticEnergy * (TotalEnergy + electron_mass_c2) - /(DeltaTotalMomentum * TotalMomentum); - - if (costheta < -1.) costheta = -1.; - if (costheta > +1.) costheta = +1.; - - // direction of the delta electron - // - G4double phi = twopi * G4UniformRand(); - G4double sintheta = sqrt((1.+costheta)*(1.-costheta)); - G4double dirx = sintheta*cos(phi), diry = sintheta*sin(phi), dirz = costheta; - - G4ThreeVector DeltaDirection(dirx,diry,dirz); - DeltaDirection.rotateUz(ParticleDirection); - - // create G4DynamicParticle object for delta ray - // - G4DynamicParticle *theDeltaRay = new G4DynamicParticle; - theDeltaRay->SetKineticEnergy( DeltaKineticEnergy ); - theDeltaRay->SetMomentumDirection( - DeltaDirection.x(),DeltaDirection.y(),DeltaDirection.z()); - theDeltaRay->SetDefinition(G4Electron::Electron()); - - // fill aParticleChange - // - G4double finalKineticEnergy = KineticEnergy - DeltaKineticEnergy; - - if (finalKineticEnergy > 0.) - { - G4double finalPx = TotalMomentum*ParticleDirection.x() - - DeltaTotalMomentum*DeltaDirection.x(); - G4double finalPy = TotalMomentum*ParticleDirection.y() - - DeltaTotalMomentum*DeltaDirection.y(); - G4double finalPz = TotalMomentum*ParticleDirection.z() - - DeltaTotalMomentum*DeltaDirection.z(); - G4double finalMomentum = - sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz); - finalPx /= finalMomentum; - finalPy /= finalMomentum; - finalPz /= finalMomentum; - aParticleChange.SetMomentumChange(finalPx,finalPy,finalPz); - } - else - { - finalKineticEnergy = 0.; - aParticleChange.SetStatusChange(fStopButAlive); - } - - aParticleChange.SetEnergyChange( finalKineticEnergy ); - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(theDeltaRay); - aParticleChange.SetLocalEnergyDeposit (0.); - - //ResetNumberOfInteractionLengthLeft(); -return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool G4MuIonisation::StorePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - G4String filename; - - // store stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable->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 G4MuIonisation::RetrievePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - // delete theLossTable and theMeanFreePathTable - if (theLossTable != 0) { - theLossTable->clearAndDestroy(); - delete theLossTable; - } - if (theMeanFreePathTable != 0) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - - // get bining from EnergyLoss - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - G4String filename; - - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - // retreive stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - theLossTable = new G4PhysicsTable(numOfCouples); - if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable0->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retreive mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - if ( !theMeanFreePathTable->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; - - if (particle->GetPDGCharge() > 0.) - { - RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; - CounterOfmuplusProcess++; - } - else - { - RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; - CounterOfmuminusProcess++; - } - - - G4VMuEnergyLoss::BuildDEDXTable(*particle); - if(particle==G4MuonPlus::MuonPlus()) PrintInfoDefinition(); - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4MuIonisation::PrintInfoDefinition() { - G4String comments = " Knock-on electron cross sections . " - "\n Good description above the mean excitation energy.\n" - " delta ray energy sampled from differential Xsection."; + G4VEnergyLossProcess::PrintInfoDefinition(); - G4cout << G4endl << GetProcessName() << ": " << comments - << "\n PhysicsTables from " << G4BestUnit(LowerBoundLambda, - "Energy") - << " to " << G4BestUnit(UpperBoundLambda,"Energy") - << " in " << TotBin << " bins. \n"; + G4cout << " Bether-Bloch model for E > 0.2 MeV " + << "parametrisation of Bragg peak below." + << G4endl; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuIonisation::SetSubCutoff(G4bool val) +{ + subCutoff = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + + diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisation52.cc b/source/processes/electromagnetic/muons/src/G4MuIonisation52.cc new file mode 100644 index 0000000000..f043377a4a --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuIonisation52.cc @@ -0,0 +1,674 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MuIonisation52.cc,v 1.1 2003/08/08 11:28:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// --------------- G4MuIonisation52 physics process ------------------------------ +// by Laszlo Urban, September 1997 +// ----------------------------------------------------------------------------- +// +// 08-04-98 remove 'tracking cut' of the ionizing particle (mma) +// 26-10-98 new stuff from R.Kokoulin + cleanup , L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 23-03-01 R.Kokoulin's correction is commented out, L.Urban +// 29-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 28-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 26-09-01 completion of RetrievePhysicsTable (mma) +// 29-10-01 all static functions no more inlined (mma) +// 07-11-01 correction(Tmax+xsection computation) L.Urban +// 08-11-01 particleMass becomes a local variable (mma) +// 04-12-02 fix misprint in majorant in PostStep (VI) +// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +// ----------------------------------------------------------------------------- + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MuIonisation52.hh" +#include "G4UnitsTable.hh" +#include "G4ProductionCutsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuIonisation52::LowerBoundLambda = 1.*keV; +G4double G4MuIonisation52::UpperBoundLambda = 1000000.*TeV; +G4int G4MuIonisation52::NbinLambda = 150; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4MuIonisation52::G4MuIonisation52(const G4String& processName) + : G4VMuEnergyLoss(processName), + theMeanFreePathTable(0) +{ } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4MuIonisation52::~G4MuIonisation52() +{ + if (theMeanFreePathTable) { + theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuIonisation52::SetLowerBoundLambda(G4double val) + {LowerBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuIonisation52::SetUpperBoundLambda(G4double val) + {UpperBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuIonisation52::SetNbinLambda(G4int n) + {NbinLambda = n;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuIonisation52::GetLowerBoundLambda() + { return LowerBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuIonisation52::GetUpperBoundLambda() + { return UpperBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int G4MuIonisation52::GetNbinLambda() + {return NbinLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuIonisation52::BuildPhysicsTable(const G4ParticleDefinition& ParticleType) +// just call BuildLossTable+BuildLambdaTable +{ + if( !CutsWhereModified() && theLossTable) return; + + // get bining from EnergyLoss + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + BuildLossTable(ParticleType); + + if (ParticleType.GetPDGCharge() > 0.) + { + RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; + CounterOfmuplusProcess++; + } + else + { + RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; + CounterOfmuminusProcess++; + } + + BuildLambdaTable(ParticleType); + + G4VMuEnergyLoss::BuildDEDXTable(ParticleType); + + if(&ParticleType == G4MuonPlus::MuonPlus()) PrintInfoDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuIonisation52::BuildLossTable(const G4ParticleDefinition& aParticleType) +{ + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} + theLossTable = new G4PhysicsTable(numOfCouples); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + // loop for materials + // + for (size_t J=0; JGetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + // get electron cut in kinetic energy for the material + G4double DeltaThreshold = SecondaryEnergyThreshold(J); + + // now comes the loop for the kinetic energy values + + for (G4int i = 0 ; i < TotBin ; i++) + { + G4double dEdx = ComputeRestrictedMeandEdx(aParticleType, + aVector->GetLowEdgeEnergy(i), + material, + DeltaThreshold); + aVector->PutValue(i,dEdx); + } + theLossTable->insert(aVector); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuIonisation52::BuildLambdaTable(const G4ParticleDefinition& aParticleType) +{ + + if(0 < verboseLevel) { + G4cout << "G4MuIonisation52::BuildLambdaTable() for process " + << GetProcessName() << " and particle " + << aParticleType.GetParticleName() << G4endl; + } + + //create table + // + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theMeanFreePathTable) + { theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} + + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + // loop for materials + + for (size_t J=0 ; J < numOfCouples; J++) + { + + //create physics vector then fill it .... + G4PhysicsLogVector* aVector = new G4PhysicsLogVector( + LowerBoundLambda,UpperBoundLambda,NbinLambda); + + // compute the (macroscopic) cross section first + const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); + G4int NumberOfElements = material->GetNumberOfElements(); + + // get the electron kinetic energy cut for the actual material, + // it will be used in ComputeCrossSectionPerAtom + // ( --> it will be the same for all the elements in this material) + G4double DeltaThreshold = SecondaryEnergyThreshold(J); + + for ( G4int i = 0 ; i < NbinLambda ; i++ ) + { + G4double LowEdgeEnergy = aVector->GetLowEdgeEnergy(i); + G4double sigma = 0.; + for (G4int iel=0; ielGetZ(), + DeltaThreshold); + } + + // mean free path = 1./macroscopic cross section + G4double Value = sigma > DBL_MIN ? 1./sigma : DBL_MAX; + aVector->PutValue(i, Value); + } + theMeanFreePathTable->insert(aVector); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuIonisation52::ComputeRestrictedMeandEdx ( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + const G4Material* material, + G4double DeltaThreshold) +{ + // calculate the dE/dx due to the ionization process (Geant4 internal units) + // Bethe-Bloch formula + // + G4double particleMass = aParticleType.GetPDGMass(); + + G4double ElectronDensity = material->GetElectronDensity(); + G4double Eexc = material->GetIonisation()->GetMeanExcitationEnergy(); + G4double Eexc2 = Eexc*Eexc; + + G4double tau = KineticEnergy/particleMass; + G4double gamma = tau + 1., bg2 = tau*(tau+2.), beta2 = bg2/(gamma*gamma); + G4double RateMass = electron_mass_c2/particleMass; + G4double Tmax=2.*electron_mass_c2*bg2/(1.+2.*gamma*RateMass+RateMass*RateMass); + + G4double taul = material->GetIonisation()->GetTaul(); + + G4double dEdx = 0.; + // + // high energy part , Bethe-Bloch formula + // + if (tau > taul) + { + G4double rcut = std::min(DeltaThreshold/Tmax, 1.); + dEdx = log(2.*electron_mass_c2*bg2*Tmax/Eexc2) + +log(rcut)-(1.+rcut)*beta2; + + //density correction + G4double Cden = material->GetIonisation()->GetCdensity(); + G4double Mden = material->GetIonisation()->GetMdensity(); + G4double Aden = material->GetIonisation()->GetAdensity(); + G4double X0den = material->GetIonisation()->GetX0density(); + G4double X1den = material->GetIonisation()->GetX1density(); + + const G4double twoln10 = 2.*log(10.); + G4double x = log(bg2)/twoln10; + G4double delta; + if (x < X0den) delta = 0.; + else {delta = twoln10*x - Cden; + if (x < X1den) delta += Aden*pow((X1den-x),Mden); + } + + // shell correction + G4double* ShellCorrectionVector = material->GetIonisation()-> + GetShellCorrectionVector(); + const G4double bg2lim = 0.0169, taulim = 8.4146e-3; + G4double sh = 0., xs = 1.; + if (bg2 > bg2lim) for (G4int k=0; k<3; k++) + {xs *= bg2; sh += ShellCorrectionVector[k]/xs;} + else { for (G4int k=0; k<3; k++) + {xs *= bg2lim; sh += ShellCorrectionVector[k]/xs;} + sh *= log(tau/taul)/log(taulim/taul); + } + + // now you can compute the total ionization loss + dEdx -= (delta + sh); dEdx /= beta2; + + // correction of R. Kokoulin // has been taken out *************** + // G4double E = KineticEnergy+particleMass; + // G4double epmax = RateMass*E*E/(RateMass*E+particleMass); + // G4double apar = log(2.*epmax/electron_mass_c2); + // dEdx += fine_structure_const*(log(2.*E/particleMass)-apar/3.)* + // apar*apar/twopi; + + dEdx *= twopi_mc2_rcl2*ElectronDensity; + if (dEdx < 0.) dEdx = 0.; + } + // + // low energy part , parametrized energy loss formulae + // + if (tau <= taul) + { + // get elements in the actual material, + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* NbOfAtomsPerVolume=material->GetVecNbOfAtomsPerVolume(); + G4int NumberOfElements = material->GetNumberOfElements(); + + // loop for the elements in the material + dEdx = 0.; + for (G4int iel=0; ielGetIonisation()->GetTau0()) + dEdx += NbOfAtomsPerVolume[iel] + *(element->GetIonisation()->GetAlow()*sqrt(tau) + + element->GetIonisation()->GetBlow()*tau); + else + dEdx += NbOfAtomsPerVolume[iel] + * element->GetIonisation()->GetClow()/sqrt(tau); + } + G4double deltaloss = 0.; + if (DeltaThreshold < Tmax) + { + deltaloss = log(Tmax/DeltaThreshold)- + beta2*(1.-DeltaThreshold/Tmax) ; + if (aParticleType.GetPDGSpin() == 0.5) + deltaloss += 0.25*(Tmax-DeltaThreshold)*(Tmax-DeltaThreshold)/ + (KineticEnergy*KineticEnergy+proton_mass_c2*proton_mass_c2); + deltaloss *= twopi_mc2_rcl2*ElectronDensity/beta2; + } + dEdx -= deltaloss; + if (dEdx < 0.) dEdx = 0.; + } + return dEdx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuIonisation52::ComputeCrossSectionPerAtom( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double DeltaThreshold) +{ + // calculates the totalcross section per atom in GEANT4 internal units + // ( it is called for elements , AtomicNumber = Z ) + // + + G4double particleMass = aParticleType.GetPDGMass(); + G4double TotalEnergy = KineticEnergy + particleMass; + G4double tempvar = particleMass+electron_mass_c2; + G4double KnockonMaxEnergy = 2.*electron_mass_c2*KineticEnergy + *(TotalEnergy+particleMass) + /(tempvar*tempvar+2.*electron_mass_c2*KineticEnergy); + + G4double TotalCrossSection = 0.; + if (KnockonMaxEnergy <= DeltaThreshold) return TotalCrossSection; + + const G4double xgi[] = {0.06943,0.33001,0.66999,0.93057}; + const G4double wgi[] = {0.17393,0.32607,0.32607,0.17393}; + const G4double ak1 = 4.6; + const G4int k2 = 2; + + G4double aaa = log(DeltaThreshold); + G4double bbb = log(KnockonMaxEnergy); + G4int kkk = int((bbb-aaa)/ak1)+k2; + G4double hhh = (bbb-aaa)/kkk; + G4double step = exp(hhh); + G4double ymax = 1./KnockonMaxEnergy; + + for (G4int k=0; k= KnockonMaxEnergy) return DifCrossSection; + + G4double v = KnockonEnergy/TotalEnergy; + DifCrossSection = twopi_mc2_rcl2*AtomicNumber* + (1.-betasquare*KnockonEnergy/KnockonMaxEnergy+0.5*v*v)/ + (betasquare*KnockonEnergy*KnockonEnergy); + G4double a1 = log(1.+2.*KnockonEnergy/electron_mass_c2); + G4double a3 = log(4.*TotalEnergy*(TotalEnergy-KnockonEnergy)/ + (particleMass*particleMass)); + DifCrossSection *= (1.+alphaprime*a1*(a3-a1)); + + return DifCrossSection; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* G4MuIonisation52::PostStepDoIt(const G4Track& trackData, + const G4Step& stepData) +{ + aParticleChange.Initialize(trackData); + + const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); + const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); + + G4double particleMass = aParticle->GetDefinition()->GetPDGMass(); + G4double KineticEnergy = aParticle->GetKineticEnergy(); + G4double TotalEnergy = KineticEnergy + particleMass; + G4double Psquare = KineticEnergy*(TotalEnergy+particleMass); + G4double Esquare = TotalEnergy*TotalEnergy; + G4double betasquare=Psquare/Esquare; + G4double summass = particleMass + electron_mass_c2; + G4double MaxKineticEnergyTransfer = 2.*electron_mass_c2*Psquare + /(summass*summass+2.*electron_mass_c2*KineticEnergy); + G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); + + // get electron cut in kinetic energy + G4double DeltaThreshold = SecondaryEnergyThreshold(couple->GetIndex()); + + // sampling kinetic energy of the delta ray + // + if (MaxKineticEnergyTransfer <= DeltaThreshold) + // pathological case (it should not happen, there is no change at all) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + // normal case + G4double xc = DeltaThreshold/MaxKineticEnergyTransfer; + G4double rate = MaxKineticEnergyTransfer/TotalEnergy; + G4double te2 = 0.5*rate*rate; + + // sampling follows ... + G4double x,twoep,a1,grej; + const G4double alphaprime = fine_structure_const/twopi; + G4double a0=log(2.*TotalEnergy/particleMass); + G4double grejc=(1.-xc*betasquare+te2)*(1.+ alphaprime*a0*a0); + do { x=xc/(1.-(1.-xc)*G4UniformRand()); + twoep = 2.*x*MaxKineticEnergyTransfer; + a1 = log(1.+twoep/electron_mass_c2); + grej = (1.-x*(betasquare-x*te2))*(1.+alphaprime*a1* + (a0+log((2.*TotalEnergy-twoep)/particleMass)-a1))/grejc ; + } while(G4UniformRand() > grej); + + G4double DeltaKineticEnergy = x * MaxKineticEnergyTransfer; + + if (DeltaKineticEnergy <= 0.) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + G4double DeltaTotalMomentum = sqrt(DeltaKineticEnergy * (DeltaKineticEnergy + + 2. * electron_mass_c2 )); + G4double TotalMomentum = sqrt(Psquare); + G4double costheta = DeltaKineticEnergy * (TotalEnergy + electron_mass_c2) + /(DeltaTotalMomentum * TotalMomentum); + + if (costheta < -1.) costheta = -1.; + if (costheta > +1.) costheta = +1.; + + // direction of the delta electron + // + G4double phi = twopi * G4UniformRand(); + G4double sintheta = sqrt((1.+costheta)*(1.-costheta)); + G4double dirx = sintheta*cos(phi), diry = sintheta*sin(phi), dirz = costheta; + + G4ThreeVector DeltaDirection(dirx,diry,dirz); + DeltaDirection.rotateUz(ParticleDirection); + + // create G4DynamicParticle object for delta ray + // + G4DynamicParticle *theDeltaRay = new G4DynamicParticle; + theDeltaRay->SetKineticEnergy( DeltaKineticEnergy ); + theDeltaRay->SetMomentumDirection( + DeltaDirection.x(),DeltaDirection.y(),DeltaDirection.z()); + theDeltaRay->SetDefinition(G4Electron::Electron()); + + // fill aParticleChange + // + G4double finalKineticEnergy = KineticEnergy - DeltaKineticEnergy; + + if (finalKineticEnergy > 0.) + { + G4double finalPx = TotalMomentum*ParticleDirection.x() + - DeltaTotalMomentum*DeltaDirection.x(); + G4double finalPy = TotalMomentum*ParticleDirection.y() + - DeltaTotalMomentum*DeltaDirection.y(); + G4double finalPz = TotalMomentum*ParticleDirection.z() + - DeltaTotalMomentum*DeltaDirection.z(); + G4double finalMomentum = + sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz); + finalPx /= finalMomentum; + finalPy /= finalMomentum; + finalPz /= finalMomentum; + aParticleChange.SetMomentumChange(finalPx,finalPy,finalPz); + } + else + { + finalKineticEnergy = 0.; + aParticleChange.SetStatusChange(fStopButAlive); + } + + aParticleChange.SetEnergyChange( finalKineticEnergy ); + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(theDeltaRay); + aParticleChange.SetLocalEnergyDeposit (0.); + + //ResetNumberOfInteractionLengthLeft(); +return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4MuIonisation52::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + + // store stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable->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 G4MuIonisation52::RetrievePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + // delete theLossTable and theMeanFreePathTable + if (theLossTable != 0) { + theLossTable->clearAndDestroy(); + delete theLossTable; + } + if (theMeanFreePathTable != 0) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + + // get bining from EnergyLoss + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + G4String filename; + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + // retreive stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + theLossTable = new G4PhysicsTable(numOfCouples); + if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable0->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + if ( !theMeanFreePathTable->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; + + if (particle->GetPDGCharge() > 0.) + { + RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; + CounterOfmuplusProcess++; + } + else + { + RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; + CounterOfmuminusProcess++; + } + + + G4VMuEnergyLoss::BuildDEDXTable(*particle); + if(particle==G4MuonPlus::MuonPlus()) PrintInfoDefinition(); + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuIonisation52::PrintInfoDefinition() +{ + G4String comments = " Knock-on electron cross sections . " + "\n Good description above the mean excitation energy.\n" + " delta ray energy sampled from differential Xsection."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " << G4BestUnit(LowerBoundLambda, + "Energy") + << " to " << G4BestUnit(UpperBoundLambda,"Energy") + << " in " << NbinLambda << " bins. \n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/muons/src/G4MuIonisationSTD.cc b/source/processes/electromagnetic/muons/src/G4MuIonisationSTD.cc deleted file mode 100644 index 14a82ff17d..0000000000 --- a/source/processes/electromagnetic/muons/src/G4MuIonisationSTD.cc +++ /dev/null @@ -1,156 +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: G4MuIonisationSTD.cc,v 1.14 2003/06/06 15:00:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ------------------------------------------------------------------- -// -// GEANT4 Class file -// -// -// File name: G4MuIonisationSTD -// -// Author: Laszlo Urban -// -// Creation date: 30.09.1997 -// -// Modifications: -// -// 08-04-98 remove 'tracking cut' of the ionizing particle (mma) -// 26-10-98 new stuff from R.Kokoulin + cleanup , L.Urban -// 10-02-00 modifications , new e.m. structure, L.Urban -// 23-03-01 R.Kokoulin's correction is commented out, L.Urban -// 29-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation -// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 28-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) -// 17-09-01 migration of Materials to pure STL (mma) -// 26-09-01 completion of RetrievePhysicsTable (mma) -// 29-10-01 all static functions no more inlined (mma) -// 07-11-01 correction(Tmax+xsection computation) L.Urban -// 08-11-01 particleMass becomes a local variable (mma) -// 10-05-02 V.Ivanchenko update to new design -// 04-12-02 V.Ivanchenko the low energy limit for Kokoulin model to 10 GeV -// 23-12-02 Change interface in order to move to cut per region (V.Ivanchenko) -// 26-12-02 Secondary production moved to derived classes (V.Ivanchenko) -// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) -// 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko) -// 03-06-03 Add SetIntegral method to choose fluctuation model (V.Ivanchenko) -// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) -// -// ------------------------------------------------------------------- -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4MuIonisationSTD.hh" -#include "G4Electron.hh" -#include "G4MuonPlus.hh" -#include "G4MuonMinus.hh" -#include "G4BraggModel.hh" -#include "G4BetheBlochModel.hh" -#include "G4MuBetheBlochModel.hh" -#include "G4UniversalFluctuation.hh" -#include "G4BohrFluctuations.hh" -#include "G4UnitsTable.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4MuIonisationSTD::G4MuIonisationSTD(const G4String& name) - : G4VEnergyLossSTD(name), - theParticle(0), - theBaseParticle(0), - subCutoff(false), - isInitialised(false) -{ - SetDEDXBinning(120); - SetLambdaBinning(120); - SetMinKinEnergy(0.1*keV); - SetMaxKinEnergy(100.0*TeV); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4MuIonisationSTD::~G4MuIonisationSTD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4MuIonisationSTD::InitialiseProcess() -{ - SetSecondaryParticle(G4Electron::Electron()); - - if(IsIntegral()) flucModel = new G4BohrFluctuations(); - else flucModel = new G4UniversalFluctuation(); - - G4VEmModel* em = new G4BraggModel(); - em->SetLowEnergyLimit(0.1*keV); - em->SetHighEnergyLimit(2.*MeV); - AddEmModel(1, em, flucModel); - G4VEmModel* em1 = new G4BetheBlochModel(); - em1->SetLowEnergyLimit(2.*MeV); - em1->SetHighEnergyLimit(10.0*GeV); - AddEmModel(2, em1, flucModel); - G4VEmModel* em2 = new G4MuBetheBlochModel(); - em2->SetLowEnergyLimit(10.0*GeV); - em2->SetHighEnergyLimit(100.0*TeV); - AddEmModel(3, em2, flucModel); - - mass = (G4MuonPlus::MuonPlus())->GetPDGMass(); - ratio = electron_mass_c2/mass; - SetVerboseLevel(0); - isInitialised = true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -const G4ParticleDefinition* G4MuIonisationSTD::DefineBaseParticle( - const G4ParticleDefinition* p) -{ - if(!theParticle) theParticle = p; - if(!isInitialised) InitialiseProcess(); - return theBaseParticle; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4MuIonisationSTD::PrintInfoDefinition() -{ - G4VEnergyLossSTD::PrintInfoDefinition(); - - G4cout << " Bether-Bloch model for E > 0.2 MeV " - << "parametrisation of Bragg peak below." - << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4MuIonisationSTD::SetSubCutoff(G4bool val) -{ - subCutoff = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc index 376dccead4..c151d9182c 100644 --- a/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc +++ b/source/processes/electromagnetic/muons/src/G4MuPairProduction.cc @@ -20,19 +20,28 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MuPairProduction.cc,v 1.40 2003/11/12 16:18:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4MuPairProduction.cc,v 1.36 2003/06/16 17:01:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- +// +// GEANT4 Class file +// +// +// File name: G4MuPairProduction +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1998 +// +// Modifications: // -//--------------- G4MuPairProduction physics process --------------------------- -// by Laszlo Urban, May 1998 -//------------------------------------------------------------------------------ // 04-06-98 in DoIt,secondary production condition: // range>std::min(threshold,safety) -// 26/10/98 new stuff from R. Kokoulin + cleanup , L.Urban -// 06/05/99 bug fixed , L.Urban -// 10/02/00 modifications+bug fix , new e.m. structure, L.Urban -// 29/05/01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 26-10-98 new stuff from R. Kokoulin + cleanup , L.Urban +// 06-05-99 bug fixed , L.Urban +// 10-02-00 modifications+bug fix , new e.m. structure, L.Urban +// 29-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation // 10-08-01 new methods Store/Retrieve PhysicsTable (mma) // 17-09-01 migration of Materials to pure STL (mma) // 20-09-01 (L.Urban) in ComputeMicroscopicCrossSection, remove: @@ -41,988 +50,91 @@ // 28-09-01 suppression of theMuonPlus ..etc..data members (mma) // 29-10-01 all static functions no more inlined (mma) // 07-11-01 particleMass becomes a local variable (mma) -// 08-01-03 DoIt: no more 'tracking cut' for the muon (mma) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) -// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) -//------------------------------------------------------------------------------ +// 19-08-02 V.Ivanchenko update to new design +// 23-12-02 Change interface in order to move to cut per region (V.Ivanchenko) +// 26-12-02 Secondary production moved to derived classes (V.Ivanchenko) +// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 27-09-03 e+ set to be a secondary particle (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4MuPairProduction.hh" -#include "G4EnergyLossTables.hh" -#include "G4UnitsTable.hh" -#include "G4ProductionCutsTable.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4MuonPlus.hh" +#include "G4MuonMinus.hh" +#include "G4MuPairProductionModel.hh" +#include "G4UniversalFluctuation.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// static members +G4MuPairProduction::G4MuPairProduction(const G4String& name) + : G4VEnergyLossProcess(name), + theParticle(0), + theBaseParticle(0), + subCutoff(false) +{ + InitialiseProcess(); +} -G4int G4MuPairProduction::nzdat = 5 ; -G4double G4MuPairProduction::zdat[]={1.,4.,13.,26.,92.}; -G4int G4MuPairProduction::ntdat = 8 ; -G4double G4MuPairProduction::tdat[]={1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e10}; -G4int G4MuPairProduction::NBIN = 1000 ; //100 ; -G4double G4MuPairProduction::ya[1001]; -G4double G4MuPairProduction::proba[5][8][1001]; -G4double G4MuPairProduction::MinPairEnergy = 4.*electron_mass_c2; - -G4double G4MuPairProduction::LowerBoundLambda = 1.*keV; -G4double G4MuPairProduction::UpperBoundLambda = 1000000.*TeV; -G4int G4MuPairProduction::NbinLambda = 150; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4MuPairProduction::G4MuPairProduction(const G4String& processName) - : G4VMuEnergyLoss(processName), - theMeanFreePathTable(NULL) -{ } - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4MuPairProduction::~G4MuPairProduction() -{ - if (theMeanFreePathTable) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } +{} - PartialSumSigma.clearAndDestroy(); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuPairProduction::InitialiseProcess() +{ + // SetSecondaryParticle(G4Electron::Electron()); + SetSecondaryParticle(G4Positron::Positron()); + + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + + G4VEmModel* em = new G4MuPairProductionModel(); + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); + em->SetLowEnergyLimit(0.1*keV); + em->SetHighEnergyLimit(100.0*TeV); + AddEmModel(1, em, fm); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4MuPairProduction::SetLowerBoundLambda(G4double val) - {LowerBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuPairProduction::SetUpperBoundLambda(G4double val) - {UpperBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuPairProduction::SetNbinLambda(G4int n) - {NbinLambda = n;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuPairProduction::GetLowerBoundLambda() - { return LowerBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuPairProduction::GetUpperBoundLambda() - { return UpperBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - G4int G4MuPairProduction::GetNbinLambda() - {return NbinLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuPairProduction::BuildPhysicsTable( - const G4ParticleDefinition& aParticleType) -// just call BuildLossTable+BuildLambdaTable +const G4ParticleDefinition* G4MuPairProduction::DefineBaseParticle( + const G4ParticleDefinition* p) { - /* - G4cout << "G4MuPairProduction: theLossTable= " << theLossTable - << " for " << aParticleType.GetParticleName() - << " cutsWereMod= " << CutsWhereModified() - << G4endl; - */ - if( !CutsWhereModified() && theLossTable) return; - - LowestKineticEnergy = GetLowerBoundEloss() ; - HighestKineticEnergy = GetUpperBoundEloss() ; - TotBin = GetNbinEloss() ; - - BuildLossTable(aParticleType) ; - - if(&aParticleType==G4MuonMinus::MuonMinus()) - { - RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable ; - CounterOfmuminusProcess++; - } - else - { - RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable ; - CounterOfmuplusProcess++; - } - - // sampling table should be made only once ! - if( !theMeanFreePathTable ) MakeSamplingTables(&aParticleType); - - BuildLambdaTable(aParticleType) ; - - G4VMuEnergyLoss::BuildDEDXTable(aParticleType); - - if(&aParticleType==G4MuonPlus::MuonPlus()) PrintInfoDefinition(); - /* - G4cout << "G4MuPairProduction: theLossTable= " << theLossTable - << " theLambda= " << theMeanFreePathTable - << " for " << aParticleType.GetParticleName() - << G4endl; - */ + if(!theParticle) theParticle = p; + return theBaseParticle; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuPairProduction::BuildLossTable( - const G4ParticleDefinition& aParticleType) -{ - G4double KineticEnergy,TotalEnergy,pairloss,Z, - loss,natom,eCut,pCut ; - - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} - theLossTable = new G4PhysicsTable(numOfCouples); - - electronEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - positronEnergyCuts = theCoupleTable->GetEnergyCutsVector(2); - - G4double particleMass = aParticleType.GetPDGMass(); - - // loop for materials - // - for (size_t J=0; JGetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - G4double electronCut = (*electronEnergyCuts)[J] ; - G4double positronCut = (*positronEnergyCuts)[J] ; - const G4ElementVector* theElementVector = - material->GetElementVector() ; - const G4double* theAtomicNumDensityVector = - material->GetAtomicNumDensityVector() ; - const G4int NumberOfElements = - material->GetNumberOfElements() ; - - for (G4int i=0; iGetLowEdgeEnergy(i) ; - TotalEnergy = KineticEnergy+particleMass ; - - eCut = electronCut; - pCut = positronCut; - - if(eCut>KineticEnergy) - eCut = KineticEnergy ; - if(pCut>KineticEnergy) - pCut = KineticEnergy ; - - pairloss = 0.; - for (G4int iel=0; ielGetZ(); - natom = theAtomicNumDensityVector[iel] ; - loss = ComputePairLoss(&aParticleType, - Z,KineticEnergy,eCut,pCut) ; - pairloss += natom*loss ; - } - if(pairloss<0.) - pairloss = 0. ; - aVector->PutValue(i,pairloss); - } - - theLossTable->insert(aVector); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuPairProduction::ComputePairLoss( - const G4ParticleDefinition* ParticleType, - G4double AtomicNumber, - G4double KineticEnergy, - G4double ElectronEnergyCut, - G4double PositronEnergyCut) -{ - static const G4double - xgi[] ={ 0.0199,0.1017,0.2372,0.4083,0.5917,0.7628,0.8983,0.9801 }; - static const G4double - wgi[] ={ 0.0506,0.1112,0.1569,0.1813,0.1813,0.1569,0.1112,0.0506 }; - static const G4double ak1=6.9 ; - static const G4double ak2=1.0 ; - static const G4double sqrte = sqrt(exp(1.)) ; - G4double z13 = exp(log(AtomicNumber)/3.) ; - - G4double loss = 0.0 ; - - if ( AtomicNumber < 1. ) return loss; - - G4double CutInPairEnergy = ElectronEnergyCut+PositronEnergyCut - +2.*electron_mass_c2 ; - if( CutInPairEnergy <= MinPairEnergy ) return loss ; - - G4double particleMass = ParticleType->GetPDGMass(); - G4double MaxPairEnergy = KineticEnergy+particleMass*(1.-0.75*sqrte*z13) ; - if(MaxPairEnergy < MinPairEnergy) - MaxPairEnergy = MinPairEnergy ; - - if( CutInPairEnergy >= MaxPairEnergy ) - CutInPairEnergy = MaxPairEnergy ; - - if(CutInPairEnergy <= MinPairEnergy) return loss ; - - G4double aaa,bbb,hhh,x,epln,ep ; - G4int kkk ; - // calculate the rectricted loss - // numerical integration in log(PairEnergy) - aaa = log(MinPairEnergy) ; - bbb = log(CutInPairEnergy) ; - kkk = int((bbb-aaa)/ak1+ak2) ; - hhh = (bbb-aaa)/kkk ; - - for (G4int l=0 ; lGetTableSize(); - - //create table - if (theMeanFreePathTable) {theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - - PartialSumSigma.clearAndDestroy(); - PartialSumSigma.resize(numOfCouples); - - G4PhysicsLogVector* ptrVector; - for ( size_t J=0; JGetMaterialCutsCouple(J); - - for ( G4int i = 0 ; i < NbinLambda ; i++ ) - { - LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; - Value = ComputeMeanFreePath( &aParticleType, LowEdgeEnergy, couple); - ptrVector->PutValue( i , Value ) ; - } - - theMeanFreePathTable->insertAt( J , ptrVector ); - - // Compute the PartialSumSigma table at a given fixed energy - ComputePartialSumSigma( &aParticleType, FixedEnergy, couple) ; - } - /* - G4cout << "Is done theTable= " << theMeanFreePathTable - << " for " << aParticleType.GetParticleName() - << G4endl; - */ -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MuPairProduction::ComputePartialSumSigma( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple) -{ - const G4Material* aMaterial = couple->GetMaterial(); - size_t index = couple->GetIndex(); - G4int NbOfElements = aMaterial->GetNumberOfElements(); - const G4ElementVector* theElementVector = aMaterial->GetElementVector(); - const G4double* theAtomNumDensityVector = aMaterial-> - GetAtomicNumDensityVector(); - G4double eCut = (*electronEnergyCuts)[index] ; - G4double pCut = (*positronEnergyCuts)[index] ; - - PartialSumSigma[index] = new G4DataVector(); - - G4double SIGMA = 0. ; - - for ( G4int Ielem=0 ; Ielem < NbOfElements ; Ielem++ ) - { - SIGMA += theAtomNumDensityVector[Ielem] * - ComputeMicroscopicCrossSection( ParticleType, KineticEnergy, - (*theElementVector)[Ielem]->GetZ(), - eCut,pCut ); - - PartialSumSigma[index]->push_back(SIGMA); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuPairProduction::ComputeMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double ElectronEnergyCut, - G4double PositronEnergyCut) - -{ - static const G4double - xgi[] ={ 0.0199,0.1017,0.2372,0.4083,0.5917,0.7628,0.8983,0.9801 }; - static const G4double - wgi[] ={ 0.0506,0.1112,0.1569,0.1813,0.1813,0.1569,0.1112,0.0506 }; - static const G4double ak1=6.9 ; - static const G4double ak2=1.0 ; - - static const G4double sqrte = sqrt(exp(1.)) ; - G4double z13 = exp(log(AtomicNumber)/3.) ; - - G4double CrossSection = 0.0 ; - - if ( AtomicNumber < 1. ) return CrossSection; - - G4double CutInPairEnergy = ElectronEnergyCut+PositronEnergyCut - +2.*electron_mass_c2 ; - - if( CutInPairEnergy < 4.*electron_mass_c2 ) - CutInPairEnergy = 4.*electron_mass_c2 ; - - G4double particleMass = ParticleType->GetPDGMass(); - G4double MaxPairEnergy = KineticEnergy+particleMass*(1.-0.75*sqrte*z13) ; - if( CutInPairEnergy >= MaxPairEnergy ) return CrossSection ; - - G4double aaa,bbb,hhh,x,epln,ep ; - G4int kkk ; - // calculate the total cross section - // numerical integration in log(PairEnergy) - aaa = log(CutInPairEnergy) ; - bbb = log(MaxPairEnergy) ; - kkk = int((bbb-aaa)/ak1+ak2) ; - hhh = (bbb-aaa)/kkk ; - for (G4int l=0 ; lGetPDGMass(); - - for (G4int iz=0; iz 0.) - { - for(G4int ib=0; ib<=nbin; ib++) - { - proba[iz][it][ib] /= CrossSection ; - - } - } - } - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuPairProduction::ComputeDDMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, G4double AtomicNumber, - G4double PairEnergy,G4double asymmetry) - // Calculates the double differential (DD) microscopic cross section - // using the cross section formula of R.P. Kokoulin (18/01/98) -{ - static const G4double sqrte = sqrt(exp(1.)) ; - - G4double bbbtf= 183. ; - G4double bbbh = 202.4 ; - G4double g1tf = 1.95e-5 ; - G4double g2tf = 5.3e-5 ; - G4double g1h = 4.4e-5 ; - G4double g2h = 4.8e-5 ; - - G4double particleMass = ParticleType->GetPDGMass(); - G4double massratio = particleMass/electron_mass_c2 ; - G4double massratio2 = massratio*massratio ; - G4double TotalEnergy = KineticEnergy + particleMass ; - G4double z13 = exp(log(AtomicNumber)/3.) ; - G4double z23 = z13*z13 ; - G4double EnergyLoss = TotalEnergy - PairEnergy ; - - G4double c3 = 3.*sqrte*particleMass/4. ; - - G4double DDCrossSection = 0. ; - - if(EnergyLoss <= c3*z13) - return DDCrossSection ; - - G4double c7 = 4.*electron_mass_c2 ; - G4double c8 = 6.*particleMass*particleMass ; - G4double alf = c7/PairEnergy ; - G4double a3 = 1. - alf ; - - if(a3 <= 0.) - return DDCrossSection ; - - // zeta calculation - G4double bbb,g1,g2,zeta1,zeta2,zeta,z2 ; - if( AtomicNumber < 1.5 ) - { - bbb = bbbh ; - g1 = g1h ; - g2 = g2h ; - } - else - { - bbb = bbbtf ; - g1 = g1tf ; - g2 = g2tf ; - } - zeta1 = 0.073 * log(TotalEnergy/(particleMass+g1*z23*TotalEnergy))-0.26 ; - if( zeta1 > 0.) - { - zeta2 = 0.058*log(TotalEnergy/(particleMass+g2*z13*TotalEnergy))-0.14 ; - zeta = zeta1/zeta2 ; - } - else - { - zeta = 0. ; - } - - z2 = AtomicNumber*(AtomicNumber+zeta) ; - - G4double screen0 = 2.*electron_mass_c2*sqrte*bbb/(z13*PairEnergy) ; - G4double a0 = TotalEnergy*EnergyLoss ; - G4double a1 = PairEnergy*PairEnergy/a0 ; - G4double bet = 0.5*a1 ; - G4double xi0 = 0.25*massratio2*a1 ; - G4double del = c8/a0 ; - - G4double romin = 0. ; - G4double romax = (1.-del)*sqrt(1.-c7/PairEnergy) ; - - if((asymmetry < romin) || (asymmetry > romax)) - return DDCrossSection ; - - G4double a4 = 1.-asymmetry ; - G4double a5 = a4*(2.-a4) ; - G4double a6 = 1.-a5 ; - G4double a7 = 1.+a6 ; - G4double a9 = 3.+a6 ; - G4double xi = xi0*a5 ; - G4double xii = 1./xi ; - G4double xi1 = 1.+xi ; - G4double screen = screen0*xi1/a5 ; - - G4double yeu = 5.-a6+4.*bet*a7 ; - G4double yed = 2.*(1.+3.*bet)*log(3.+xii)-a6-a1*(2.-a6) ; - G4double yel = 1.+yeu/yed ; - G4double ale=log(bbb/z13*sqrt(xi1*yel)/(1.+screen*yel)) ; - G4double cre = 0.5*log(1.+2.25/(massratio2*z23)*xi1*yel) ; - G4double be ; - if(xi <= 1.e3) - be = ((2.+a6)*(1.+bet)+xi*a9)*log(1.+xii)+(a5-bet)/xi1-a9; - else - be = (3.-a6+a1*a7)/(2.+xi) ; - G4double fe = (ale-cre)*be ; - if( fe < 0.) - fe = 0. ; - - G4double ymu = 4.+a6 +3.*bet*a7 ; - G4double ymd = a7*(1.5+a1)*log(3.+xi)+1.-1.5*a6 ; - G4double ym1 = 1.+ymu/ymd ; - G4double alm_crm = log(bbb*massratio/(1.5*z23*(1.+screen*ym1))) ; - G4double a10,bm ; - if( xi >= 1.e-3) - { - a10 = (1.+a1)*a5 ; - bm = (a7*(1.+1.5*bet)-a10*xii)*log(xi1)+xi*(a5-bet)/xi1+a10 ; - } - else - bm = (5.-a6+bet*a9)*(xi/2.) ; - G4double fm = alm_crm*bm ; - if( fm < 0.) - fm = 0. ; - - DDCrossSection = (fe+fm/massratio2) ; - - DDCrossSection *= 4.*fine_structure_const*fine_structure_const - *classic_electr_radius*classic_electr_radius/(3.*pi) ; - - DDCrossSection *= z2*EnergyLoss/(TotalEnergy*PairEnergy) ; - - - return DDCrossSection ; - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuPairProduction::GetDMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, G4double AtomicNumber, - G4double PairEnergy) -{ - return ComputeDMicroscopicCrossSection(ParticleType,KineticEnergy, - AtomicNumber,PairEnergy) ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MuPairProduction::ComputeDMicroscopicCrossSection( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, G4double AtomicNumber, - G4double PairEnergy) - // Calculates the differential (D) microscopic cross section - // using the cross section formula of R.P. Kokoulin (18/01/98) -{ - - static const G4double - xgi[] ={ 0.0199,0.1017,0.2372,0.4083,0.5917,0.7628,0.8983,0.9801 }; - - static const G4double - wgi[] ={ 0.0506,0.1112,0.1569,0.1813,0.1813,0.1569,0.1112,0.0506 }; - - G4double DCrossSection = 0. ; - - G4double particleMass = ParticleType->GetPDGMass(); - G4double TotalEnergy = KineticEnergy + particleMass; - G4double EnergyLoss = TotalEnergy - PairEnergy ; - G4double a = 6.*particleMass*particleMass/(TotalEnergy*EnergyLoss) ; - G4double b = 4.*electron_mass_c2/PairEnergy ; - - if((b+2.*a*(1.-b))/(1.+(1.-a)*sqrt(1.-b)) <= 0.) return DCrossSection ; - - G4double tmn=log((b+2.*a*(1.-b))/(1.+(1.-a)*sqrt(1.-b))) ; - - // G4double DCrossSection = 0. ; - G4double ro ; -// Gaussian integration in ln(1-ro) ( with 8 points) - for (G4int i=0; i<7; i++) - { - ro = 1.-exp(tmn*xgi[i]) ; - - DCrossSection += (1.-ro)*ComputeDDMicroscopicCrossSection( - ParticleType,KineticEnergy, - AtomicNumber,PairEnergy,ro) - *wgi[i] ; - } - - DCrossSection *= -tmn ; - - return DCrossSection ; - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VParticleChange* G4MuPairProduction::PostStepDoIt(const G4Track& trackData, - const G4Step& stepData) -{ - static const G4double esq = sqrt(exp(1.)); - - aParticleChange.Initialize(trackData); - const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); - size_t index = couple->GetIndex(); - - const G4DynamicParticle* aDynamicParticle=trackData.GetDynamicParticle(); - G4double KineticEnergy = aDynamicParticle->GetKineticEnergy(); - G4double particleMass = aDynamicParticle->GetDefinition()->GetPDGMass(); - G4ParticleMomentum ParticleDirection = - aDynamicParticle->GetMomentumDirection(); - - // e-e+ cut in this material - G4double eCut = (*electronEnergyCuts)[index] ; - G4double pCut = (*positronEnergyCuts)[index] ; - G4double CutInPairEnergy = eCut + pCut + 2.0*electron_mass_c2; - - if (CutInPairEnergy < MinPairEnergy) CutInPairEnergy = MinPairEnergy ; - - // check against insufficient energy - if(KineticEnergy < CutInPairEnergy ) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - // select randomly one element constituing the material - const G4Element* anElement = SelectRandomAtom(couple); - - // limits of the energy sampling - G4double TotalEnergy = KineticEnergy + particleMass ; - //G4double TotalMomentum = sqrt(KineticEnergy*(TotalEnergy+particleMass)) ; - G4double Z3 = anElement->GetIonisation()->GetZ3() ; - G4double MaxPairEnergy = TotalEnergy-0.75*esq*particleMass*Z3 ; - - if(MinPairEnergy >= MaxPairEnergy) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - // sample e-e+ energy, pair energy first - G4double PairEnergy,xc,x,yc,y ; - // G4int iZ,iT; - G4int iy ; - - // select sampling table ; - G4double lnZ = log(anElement->GetZ()) ; - G4double delmin = 1.e10 ; - G4double del ; - G4int izz = 0; - G4int itt = 0; - G4int NBINminus1 = NBIN-1; - for (G4int iz=0; iz eCut) - { - numberofsecondaries += 1; - flagelectron = 1; - G4ThreeVector ElectDirection ( dirx, diry, dirz ); - ElectDirection.rotateUz(ParticleDirection); - // create G4DynamicParticle object for the particle1 - aParticle1 = new G4DynamicParticle (G4Electron::Electron(), - ElectDirection, ElectKineEnergy); - } - else { LocalEnerDeposit += ElectKineEnergy;} - - // the e+ is always created (even with Ekine=0) for further annihilation. - // - G4double PositKineEnergy = PositronEnergy - electron_mass_c2; - if (PositKineEnergy < pCut) - { - LocalEnerDeposit += PositKineEnergy; - PositKineEnergy = 0.; - } - G4ThreeVector PositDirection ( -dirx, -diry, dirz ); - PositDirection.rotateUz(ParticleDirection); - // create G4DynamicParticle object for the particle2 - aParticle2= new G4DynamicParticle (G4Positron::Positron(), - PositDirection, PositKineEnergy); - - // fill particle change and update initial particle - aParticleChange.SetNumberOfSecondaries(numberofsecondaries) ; - if (flagelectron==1) aParticleChange.AddSecondary(aParticle1); - if (flagpositron==1) aParticleChange.AddSecondary(aParticle2); - - G4double NewKinEnergy = KineticEnergy - ElectronEnergy - PositronEnergy; - - aParticleChange.SetMomentumChange(ParticleDirection); - - if (NewKinEnergy > 0.) aParticleChange.SetEnergyChange(NewKinEnergy); - else { aParticleChange.SetEnergyChange(0.); - aParticleChange.SetStatusChange(fStopButAlive); - } - - aParticleChange.SetLocalEnergyDeposit(LocalEnerDeposit); - - //reset NumberOfinteractionLengthLeft() - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4Element* G4MuPairProduction::SelectRandomAtom(const G4MaterialCutsCouple* couple) const -{ - // select randomly 1 element within the material - size_t index = couple->GetIndex(); - const G4Material* aMaterial = couple->GetMaterial(); - - const G4int NumberOfElements = aMaterial->GetNumberOfElements(); - const G4ElementVector* theElementVector = aMaterial->GetElementVector(); - - G4double rval = G4UniformRand()*((*PartialSumSigma[index]) - [NumberOfElements-1]); - - for ( G4int i=0; i < NumberOfElements; i++ ) - { - if (rval <= (*PartialSumSigma[index])[i]) return ((*theElementVector)[i]); - } - G4cout << " WARNING !!! - The Material '"<< aMaterial->GetName() - << "' has no elements, NULL pointer returned." << G4endl; - return 0; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool G4MuPairProduction::StorePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - G4String filename; - - // store stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable->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; - } - - // store PartialSumSigma table (G4OrderedTable) - filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); - if ( !PartialSumSigma.Store(filename, ascii) ){ - G4cout << " FAIL PartialSumSigma.store 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 G4MuPairProduction::RetrievePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - // delete theLossTable and theMeanFreePathTable - if (theLossTable != 0) { - theLossTable->clearAndDestroy(); - delete theLossTable; - } - if (theMeanFreePathTable != 0) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - - // get bining from EnergyLoss - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - G4String filename; - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - electronEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - positronEnergyCuts = theCoupleTable->GetEnergyCutsVector(2); - - // retreive stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - theLossTable = new G4PhysicsTable(numOfCouples); - if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable0->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retreive mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - if ( !theMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retrieve PartialSumSigma table (G4OrderedTable) - PartialSumSigma.clearAndDestroy(); - PartialSumSigma.reserve(numOfCouples); - filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); - if ( !PartialSumSigma.Retrieve(filename, ascii) ){ - G4cout << " FAIL PartialSumSigma.retrieve in " << filename - << G4endl; - return false; - } - - G4cout << GetProcessName() << "for " << particle->GetParticleName() - << ": Success to retrieve the PhysicsTables from " - << directory << G4endl; - - if (particle->GetPDGCharge() < 0.) - { - RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; - CounterOfmuminusProcess++; - } - else - { - RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; - CounterOfmuplusProcess++; - } - - MakeSamplingTables(particle); - G4VMuEnergyLoss::BuildDEDXTable(*particle); - if(particle==G4MuonPlus::MuonPlus()) PrintInfoDefinition(); - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4MuPairProduction::PrintInfoDefinition() { - G4String comments = "theoretical cross sections \n "; - comments += " Good description up to 1000 PeV."; + G4VEnergyLossProcess::PrintInfoDefinition(); - G4cout << G4endl << GetProcessName() << ": " << comments - << "\n PhysicsTables from " << G4BestUnit(LowerBoundLambda, - "Energy") - << " to " << G4BestUnit(UpperBoundLambda,"Energy") - << " in " << NbinLambda << " bins. \n"; + G4cout << " Parametrised model " + << G4endl; +// G4cout << *(LambdaTable()) << G4endl; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4MuPairProduction::SetSubCutoff(G4bool val) +{ + subCutoff = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProduction52.cc b/source/processes/electromagnetic/muons/src/G4MuPairProduction52.cc new file mode 100644 index 0000000000..16eb942122 --- /dev/null +++ b/source/processes/electromagnetic/muons/src/G4MuPairProduction52.cc @@ -0,0 +1,1029 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MuPairProduction52.cc,v 1.1 2003/08/08 11:28:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//--------------- G4MuPairProduction52 physics process --------------------------- +// by Laszlo Urban, May 1998 +//------------------------------------------------------------------------------ +// 04-06-98 in DoIt,secondary production condition: +// range>std::min(threshold,safety) +// 26/10/98 new stuff from R. Kokoulin + cleanup , L.Urban +// 06/05/99 bug fixed , L.Urban +// 10/02/00 modifications+bug fix , new e.m. structure, L.Urban +// 29/05/01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 20-09-01 (L.Urban) in ComputeMicroscopicCrossSection, remove: +// if(MaxPairEnergyclearAndDestroy(); + delete theMeanFreePathTable; + } + + PartialSumSigma.clearAndDestroy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuPairProduction52::SetLowerBoundLambda(G4double val) + {LowerBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuPairProduction52::SetUpperBoundLambda(G4double val) + {UpperBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuPairProduction52::SetNbinLambda(G4int n) + {NbinLambda = n;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuPairProduction52::GetLowerBoundLambda() + { return LowerBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuPairProduction52::GetUpperBoundLambda() + { return UpperBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + G4int G4MuPairProduction52::GetNbinLambda() + {return NbinLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuPairProduction52::BuildPhysicsTable( + const G4ParticleDefinition& aParticleType) +// just call BuildLossTable+BuildLambdaTable +{ + /* + G4cout << "G4MuPairProduction52: theLossTable= " << theLossTable + << " for " << aParticleType.GetParticleName() + << " cutsWereMod= " << CutsWhereModified() + << G4endl; + */ + if( !CutsWhereModified() && theLossTable) return; + + LowestKineticEnergy = GetLowerBoundEloss() ; + HighestKineticEnergy = GetUpperBoundEloss() ; + TotBin = GetNbinEloss() ; + + BuildLossTable(aParticleType) ; + + if(&aParticleType==G4MuonMinus::MuonMinus()) + { + RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable ; + CounterOfmuminusProcess++; + } + else + { + RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable ; + CounterOfmuplusProcess++; + } + + // sampling table should be made only once ! + if( !theMeanFreePathTable ) MakeSamplingTables(&aParticleType); + + BuildLambdaTable(aParticleType) ; + + G4VMuEnergyLoss::BuildDEDXTable(aParticleType); + + if(&aParticleType==G4MuonPlus::MuonPlus()) PrintInfoDefinition(); + /* + G4cout << "G4MuPairProduction52: theLossTable= " << theLossTable + << " theLambda= " << theMeanFreePathTable + << " for " << aParticleType.GetParticleName() + << G4endl; + */ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuPairProduction52::BuildLossTable( + const G4ParticleDefinition& aParticleType) +{ + G4double KineticEnergy,TotalEnergy,pairloss,Z, + loss,natom,eCut,pCut ; + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} + theLossTable = new G4PhysicsTable(numOfCouples); + + electronEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + positronEnergyCuts = theCoupleTable->GetEnergyCutsVector(2); + + G4double particleMass = aParticleType.GetPDGMass(); + + // loop for materials + // + for (size_t J=0; JGetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + G4double electronCut = (*electronEnergyCuts)[J] ; + G4double positronCut = (*positronEnergyCuts)[J] ; + const G4ElementVector* theElementVector = + material->GetElementVector() ; + const G4double* theAtomicNumDensityVector = + material->GetAtomicNumDensityVector() ; + const G4int NumberOfElements = + material->GetNumberOfElements() ; + + for (G4int i=0; iGetLowEdgeEnergy(i) ; + TotalEnergy = KineticEnergy+particleMass ; + + eCut = electronCut; + pCut = positronCut; + + if(eCut>KineticEnergy) + eCut = KineticEnergy ; + if(pCut>KineticEnergy) + pCut = KineticEnergy ; + + pairloss = 0.; + for (G4int iel=0; ielGetZ(); + natom = theAtomicNumDensityVector[iel] ; + loss = ComputePairLoss(&aParticleType, + Z,KineticEnergy,eCut,pCut) ; + pairloss += natom*loss ; + } + if(pairloss<0.) + pairloss = 0. ; + aVector->PutValue(i,pairloss); + } + + theLossTable->insert(aVector); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuPairProduction52::ComputePairLoss( + const G4ParticleDefinition* ParticleType, + G4double AtomicNumber, + G4double KineticEnergy, + G4double ElectronEnergyCut, + G4double PositronEnergyCut) +{ + static const G4double + xgi[] ={ 0.0199,0.1017,0.2372,0.4083,0.5917,0.7628,0.8983,0.9801 }; + static const G4double + wgi[] ={ 0.0506,0.1112,0.1569,0.1813,0.1813,0.1569,0.1112,0.0506 }; + static const G4double ak1=6.9 ; + static const G4double ak2=1.0 ; + static const G4double sqrte = sqrt(exp(1.)) ; + G4double z13 = exp(log(AtomicNumber)/3.) ; + + G4double loss = 0.0 ; + + if ( AtomicNumber < 1. ) return loss; + + G4double CutInPairEnergy = ElectronEnergyCut+PositronEnergyCut + +2.*electron_mass_c2 ; + if( CutInPairEnergy <= MinPairEnergy ) return loss ; + + G4double particleMass = ParticleType->GetPDGMass(); + G4double MaxPairEnergy = KineticEnergy+particleMass*(1.-0.75*sqrte*z13) ; + if(MaxPairEnergy < MinPairEnergy) + MaxPairEnergy = MinPairEnergy ; + + if( CutInPairEnergy >= MaxPairEnergy ) + CutInPairEnergy = MaxPairEnergy ; + + if(CutInPairEnergy <= MinPairEnergy) return loss ; + + G4double aaa,bbb,hhh,x,epln,ep ; + G4int kkk ; + // calculate the rectricted loss + // numerical integration in log(PairEnergy) + aaa = log(MinPairEnergy) ; + bbb = log(CutInPairEnergy) ; + kkk = int((bbb-aaa)/ak1+ak2) ; + hhh = (bbb-aaa)/kkk ; + + for (G4int l=0 ; lGetTableSize(); + + //create table + if (theMeanFreePathTable) {theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + + PartialSumSigma.clearAndDestroy(); + PartialSumSigma.resize(numOfCouples); + + G4PhysicsLogVector* ptrVector; + for ( size_t J=0; JGetMaterialCutsCouple(J); + + for ( G4int i = 0 ; i < NbinLambda ; i++ ) + { + LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; + Value = ComputeMeanFreePath( &aParticleType, LowEdgeEnergy, couple); + ptrVector->PutValue( i , Value ) ; + } + + theMeanFreePathTable->insertAt( J , ptrVector ); + + // Compute the PartialSumSigma table at a given fixed energy + ComputePartialSumSigma( &aParticleType, FixedEnergy, couple) ; + } + /* + G4cout << "Is done theTable= " << theMeanFreePathTable + << " for " << aParticleType.GetParticleName() + << G4endl; + */ +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuPairProduction52::ComputePartialSumSigma( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple) +{ + const G4Material* aMaterial = couple->GetMaterial(); + size_t index = couple->GetIndex(); + G4int NbOfElements = aMaterial->GetNumberOfElements(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + const G4double* theAtomNumDensityVector = aMaterial-> + GetAtomicNumDensityVector(); + G4double eCut = (*electronEnergyCuts)[index] ; + G4double pCut = (*positronEnergyCuts)[index] ; + + PartialSumSigma[index] = new G4DataVector(); + + G4double SIGMA = 0. ; + + for ( G4int Ielem=0 ; Ielem < NbOfElements ; Ielem++ ) + { + SIGMA += theAtomNumDensityVector[Ielem] * + ComputeMicroscopicCrossSection( ParticleType, KineticEnergy, + (*theElementVector)[Ielem]->GetZ(), + eCut,pCut ); + + PartialSumSigma[index]->push_back(SIGMA); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuPairProduction52::ComputeMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double ElectronEnergyCut, + G4double PositronEnergyCut) + +{ + static const G4double + xgi[] ={ 0.0199,0.1017,0.2372,0.4083,0.5917,0.7628,0.8983,0.9801 }; + static const G4double + wgi[] ={ 0.0506,0.1112,0.1569,0.1813,0.1813,0.1569,0.1112,0.0506 }; + static const G4double ak1=6.9 ; + static const G4double ak2=1.0 ; + + static const G4double sqrte = sqrt(exp(1.)) ; + G4double z13 = exp(log(AtomicNumber)/3.) ; + + G4double CrossSection = 0.0 ; + + if ( AtomicNumber < 1. ) return CrossSection; + + G4double CutInPairEnergy = ElectronEnergyCut+PositronEnergyCut + +2.*electron_mass_c2 ; + + if( CutInPairEnergy < 4.*electron_mass_c2 ) + CutInPairEnergy = 4.*electron_mass_c2 ; + + G4double particleMass = ParticleType->GetPDGMass(); + G4double MaxPairEnergy = KineticEnergy+particleMass*(1.-0.75*sqrte*z13) ; + if( CutInPairEnergy >= MaxPairEnergy ) return CrossSection ; + + G4double aaa,bbb,hhh,x,epln,ep ; + G4int kkk ; + // calculate the total cross section + // numerical integration in log(PairEnergy) + aaa = log(CutInPairEnergy) ; + bbb = log(MaxPairEnergy) ; + kkk = int((bbb-aaa)/ak1+ak2) ; + hhh = (bbb-aaa)/kkk ; + for (G4int l=0 ; lGetPDGMass(); + + for (G4int iz=0; iz 0.) + { + for(G4int ib=0; ib<=nbin; ib++) + { + proba[iz][it][ib] /= CrossSection ; + + } + } + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuPairProduction52::ComputeDDMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, G4double AtomicNumber, + G4double PairEnergy,G4double asymmetry) + // Calculates the double differential (DD) microscopic cross section + // using the cross section formula of R.P. Kokoulin (18/01/98) +{ + static const G4double sqrte = sqrt(exp(1.)) ; + + G4double bbbtf= 183. ; + G4double bbbh = 202.4 ; + G4double g1tf = 1.95e-5 ; + G4double g2tf = 5.3e-5 ; + G4double g1h = 4.4e-5 ; + G4double g2h = 4.8e-5 ; + + G4double particleMass = ParticleType->GetPDGMass(); + G4double massratio = particleMass/electron_mass_c2 ; + G4double massratio2 = massratio*massratio ; + G4double TotalEnergy = KineticEnergy + particleMass ; + G4double z13 = exp(log(AtomicNumber)/3.) ; + G4double z23 = z13*z13 ; + G4double EnergyLoss = TotalEnergy - PairEnergy ; + + G4double c3 = 3.*sqrte*particleMass/4. ; + + G4double DDCrossSection = 0. ; + + if(EnergyLoss <= c3*z13) + return DDCrossSection ; + + G4double c7 = 4.*electron_mass_c2 ; + G4double c8 = 6.*particleMass*particleMass ; + G4double alf = c7/PairEnergy ; + G4double a3 = 1. - alf ; + + if(a3 <= 0.) + return DDCrossSection ; + + // zeta calculation + G4double bbb,g1,g2,zeta1,zeta2,zeta,z2 ; + if( AtomicNumber < 1.5 ) + { + bbb = bbbh ; + g1 = g1h ; + g2 = g2h ; + } + else + { + bbb = bbbtf ; + g1 = g1tf ; + g2 = g2tf ; + } + zeta1 = 0.073 * log(TotalEnergy/(particleMass+g1*z23*TotalEnergy))-0.26 ; + if( zeta1 > 0.) + { + zeta2 = 0.058*log(TotalEnergy/(particleMass+g2*z13*TotalEnergy))-0.14 ; + zeta = zeta1/zeta2 ; + } + else + { + zeta = 0. ; + } + + z2 = AtomicNumber*(AtomicNumber+zeta) ; + + G4double screen0 = 2.*electron_mass_c2*sqrte*bbb/(z13*PairEnergy) ; + G4double a0 = TotalEnergy*EnergyLoss ; + G4double a1 = PairEnergy*PairEnergy/a0 ; + G4double bet = 0.5*a1 ; + G4double xi0 = 0.25*massratio2*a1 ; + G4double del = c8/a0 ; + + G4double romin = 0. ; + G4double romax = (1.-del)*sqrt(1.-c7/PairEnergy) ; + + if((asymmetry < romin) || (asymmetry > romax)) + return DDCrossSection ; + + G4double a4 = 1.-asymmetry ; + G4double a5 = a4*(2.-a4) ; + G4double a6 = 1.-a5 ; + G4double a7 = 1.+a6 ; + G4double a9 = 3.+a6 ; + G4double xi = xi0*a5 ; + G4double xii = 1./xi ; + G4double xi1 = 1.+xi ; + G4double screen = screen0*xi1/a5 ; + + G4double yeu = 5.-a6+4.*bet*a7 ; + G4double yed = 2.*(1.+3.*bet)*log(3.+xii)-a6-a1*(2.-a6) ; + G4double yel = 1.+yeu/yed ; + G4double ale=log(bbb/z13*sqrt(xi1*yel)/(1.+screen*yel)) ; + G4double cre = 0.5*log(1.+2.25/(massratio2*z23)*xi1*yel) ; + G4double be ; + if(xi <= 1.e3) + be = ((2.+a6)*(1.+bet)+xi*a9)*log(1.+xii)+(a5-bet)/xi1-a9; + else + be = (3.-a6+a1*a7)/(2.+xi) ; + G4double fe = (ale-cre)*be ; + if( fe < 0.) + fe = 0. ; + + G4double ymu = 4.+a6 +3.*bet*a7 ; + G4double ymd = a7*(1.5+a1)*log(3.+xi)+1.-1.5*a6 ; + G4double ym1 = 1.+ymu/ymd ; + G4double alm_crm = log(bbb*massratio/(1.5*z23*(1.+screen*ym1))) ; + G4double a10,bm ; + if( xi >= 1.e-3) + { + a10 = (1.+a1)*a5 ; + bm = (a7*(1.+1.5*bet)-a10*xii)*log(xi1)+xi*(a5-bet)/xi1+a10 ; + } + else + bm = (5.-a6+bet*a9)*(xi/2.) ; + G4double fm = alm_crm*bm ; + if( fm < 0.) + fm = 0. ; + + DDCrossSection = (fe+fm/massratio2) ; + + DDCrossSection *= 4.*fine_structure_const*fine_structure_const + *classic_electr_radius*classic_electr_radius/(3.*pi) ; + + DDCrossSection *= z2*EnergyLoss/(TotalEnergy*PairEnergy) ; + + + return DDCrossSection ; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuPairProduction52::GetDMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, G4double AtomicNumber, + G4double PairEnergy) +{ + return ComputeDMicroscopicCrossSection(ParticleType,KineticEnergy, + AtomicNumber,PairEnergy) ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MuPairProduction52::ComputeDMicroscopicCrossSection( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, G4double AtomicNumber, + G4double PairEnergy) + // Calculates the differential (D) microscopic cross section + // using the cross section formula of R.P. Kokoulin (18/01/98) +{ + + static const G4double + xgi[] ={ 0.0199,0.1017,0.2372,0.4083,0.5917,0.7628,0.8983,0.9801 }; + + static const G4double + wgi[] ={ 0.0506,0.1112,0.1569,0.1813,0.1813,0.1569,0.1112,0.0506 }; + + G4double DCrossSection = 0. ; + + G4double particleMass = ParticleType->GetPDGMass(); + G4double TotalEnergy = KineticEnergy + particleMass; + G4double EnergyLoss = TotalEnergy - PairEnergy ; + G4double a = 6.*particleMass*particleMass/(TotalEnergy*EnergyLoss) ; + G4double b = 4.*electron_mass_c2/PairEnergy ; + + if((b+2.*a*(1.-b))/(1.+(1.-a)*sqrt(1.-b)) <= 0.) return DCrossSection ; + + G4double tmn=log((b+2.*a*(1.-b))/(1.+(1.-a)*sqrt(1.-b))) ; + + // G4double DCrossSection = 0. ; + G4double ro ; +// Gaussian integration in ln(1-ro) ( with 8 points) + for (G4int i=0; i<7; i++) + { + ro = 1.-exp(tmn*xgi[i]) ; + + DCrossSection += (1.-ro)*ComputeDDMicroscopicCrossSection( + ParticleType,KineticEnergy, + AtomicNumber,PairEnergy,ro) + *wgi[i] ; + } + + DCrossSection *= -tmn ; + + return DCrossSection ; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* G4MuPairProduction52::PostStepDoIt(const G4Track& trackData, + const G4Step& stepData) +{ + static const G4double esq = sqrt(exp(1.)); + + aParticleChange.Initialize(trackData); + const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); + size_t index = couple->GetIndex(); + + const G4DynamicParticle* aDynamicParticle=trackData.GetDynamicParticle(); + G4double KineticEnergy = aDynamicParticle->GetKineticEnergy(); + G4double particleMass = aDynamicParticle->GetDefinition()->GetPDGMass(); + G4ParticleMomentum ParticleDirection = + aDynamicParticle->GetMomentumDirection(); + + // e-e+ cut in this material + G4double eCut = (*electronEnergyCuts)[index] ; + G4double pCut = (*positronEnergyCuts)[index] ; + G4double CutInPairEnergy = eCut + pCut + 2.0*electron_mass_c2; + + if (CutInPairEnergy < MinPairEnergy) CutInPairEnergy = MinPairEnergy ; + + // check against insufficient energy + if(KineticEnergy < CutInPairEnergy ) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + // select randomly one element constituing the material + const G4Element* anElement = SelectRandomAtom(couple); + + // limits of the energy sampling + G4double TotalEnergy = KineticEnergy + particleMass ; + //G4double TotalMomentum = sqrt(KineticEnergy*(TotalEnergy+particleMass)) ; + G4double Z3 = anElement->GetIonisation()->GetZ3() ; + G4double MaxPairEnergy = TotalEnergy-0.75*esq*particleMass*Z3 ; + + if(MinPairEnergy >= MaxPairEnergy) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + // sample e-e+ energy, pair energy first + G4double PairEnergy,xc,x,yc,y ; + // G4int iZ,iT; + G4int iy ; + + // select sampling table ; + G4double lnZ = log(anElement->GetZ()) ; + G4double delmin = 1.e10 ; + G4double del ; + G4int izz = 0; + G4int itt = 0; + G4int NBINminus1 = NBIN-1; + for (G4int iz=0; iz eCut) + { + numberofsecondaries += 1; + flagelectron = 1; + G4ThreeVector ElectDirection ( dirx, diry, dirz ); + ElectDirection.rotateUz(ParticleDirection); + // create G4DynamicParticle object for the particle1 + aParticle1 = new G4DynamicParticle (G4Electron::Electron(), + ElectDirection, ElectKineEnergy); + } + else { LocalEnerDeposit += ElectKineEnergy;} + + // the e+ is always created (even with Ekine=0) for further annihilation. + // + G4double PositKineEnergy = PositronEnergy - electron_mass_c2; + if (PositKineEnergy < pCut) + { + LocalEnerDeposit += PositKineEnergy; + PositKineEnergy = 0.; + } + G4ThreeVector PositDirection ( -dirx, -diry, dirz ); + PositDirection.rotateUz(ParticleDirection); + // create G4DynamicParticle object for the particle2 + aParticle2= new G4DynamicParticle (G4Positron::Positron(), + PositDirection, PositKineEnergy); + + // fill particle change and update initial particle + aParticleChange.SetNumberOfSecondaries(numberofsecondaries) ; + if (flagelectron==1) aParticleChange.AddSecondary(aParticle1); + if (flagpositron==1) aParticleChange.AddSecondary(aParticle2); + + G4double NewKinEnergy = KineticEnergy - ElectronEnergy - PositronEnergy; + + aParticleChange.SetMomentumChange(ParticleDirection); + + if (NewKinEnergy > 0.) aParticleChange.SetEnergyChange(NewKinEnergy); + else { aParticleChange.SetEnergyChange(0.); + aParticleChange.SetStatusChange(fStopButAlive); + } + + aParticleChange.SetLocalEnergyDeposit(LocalEnerDeposit); + + //reset NumberOfinteractionLengthLeft() + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4Element* G4MuPairProduction52::SelectRandomAtom(const G4MaterialCutsCouple* couple) const +{ + // select randomly 1 element within the material + size_t index = couple->GetIndex(); + const G4Material* aMaterial = couple->GetMaterial(); + + const G4int NumberOfElements = aMaterial->GetNumberOfElements(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + + G4double rval = G4UniformRand()*((*PartialSumSigma[index]) + [NumberOfElements-1]); + + for ( G4int i=0; i < NumberOfElements; i++ ) + { + if (rval <= (*PartialSumSigma[index])[i]) return ((*theElementVector)[i]); + } + G4cout << " WARNING !!! - The Material '"<< aMaterial->GetName() + << "' has no elements, NULL pointer returned." << G4endl; + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4MuPairProduction52::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + + // store stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable->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; + } + + // store PartialSumSigma table (G4OrderedTable) + filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); + if ( !PartialSumSigma.Store(filename, ascii) ){ + G4cout << " FAIL PartialSumSigma.store 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 G4MuPairProduction52::RetrievePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + // delete theLossTable and theMeanFreePathTable + if (theLossTable != 0) { + theLossTable->clearAndDestroy(); + delete theLossTable; + } + if (theMeanFreePathTable != 0) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + + // get bining from EnergyLoss + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + G4String filename; + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + electronEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + positronEnergyCuts = theCoupleTable->GetEnergyCutsVector(2); + + // retreive stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + theLossTable = new G4PhysicsTable(numOfCouples); + if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable0->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + if ( !theMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retrieve PartialSumSigma table (G4OrderedTable) + PartialSumSigma.clearAndDestroy(); + PartialSumSigma.reserve(numOfCouples); + filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); + if ( !PartialSumSigma.Retrieve(filename, ascii) ){ + G4cout << " FAIL PartialSumSigma.retrieve in " << filename + << G4endl; + return false; + } + + G4cout << GetProcessName() << "for " << particle->GetParticleName() + << ": Success to retrieve the PhysicsTables from " + << directory << G4endl; + + if (particle->GetPDGCharge() < 0.) + { + RecorderOfmuminusProcess[CounterOfmuminusProcess] = (*this).theLossTable; + CounterOfmuminusProcess++; + } + else + { + RecorderOfmuplusProcess[CounterOfmuplusProcess] = (*this).theLossTable; + CounterOfmuplusProcess++; + } + + MakeSamplingTables(particle); + G4VMuEnergyLoss::BuildDEDXTable(*particle); + if(particle==G4MuonPlus::MuonPlus()) PrintInfoDefinition(); + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MuPairProduction52::PrintInfoDefinition() +{ + G4String comments = "theoretical cross sections \n "; + comments += " Good description up to 1000 PeV."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " << G4BestUnit(LowerBoundLambda, + "Energy") + << " to " << G4BestUnit(UpperBoundLambda,"Energy") + << " in " << NbinLambda << " bins. \n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc b/source/processes/electromagnetic/muons/src/G4MuPairProductionModel.cc index 7293076638..67f6feb5b6 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.11 2003/06/16 17:01:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MuPairProductionModel.cc,v 1.13 2003/10/21 13:30:05 maire Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -42,6 +42,8 @@ // 27-01-03 Make models region aware (V.Ivanchenko) // 13-02-03 Add model (V.Ivanchenko) // 06-06-03 Fix in cross section calculation for high energy (V.Ivanchenko) +// 20-10-03 2*xi in ComputeDDMicroscopicCrossSection (R.Kokoulin) +// 8 integration points in ComputeDMicroscopicCrossSection // // Class Description: @@ -49,8 +51,8 @@ // // ------------------------------------------------------------------- // -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4MuPairProductionModel.hh" #include "G4Electron.hh" @@ -69,9 +71,10 @@ // G4double G4MuPairProductionModel::zdat[]={1.,4.,13.,29.,92.}; G4double G4MuPairProductionModel::adat[]={1.01,9.01,26.98,63.55,238.03}; -G4double G4MuPairProductionModel::tdat[]={1.e3,1.e4,1.e5,1.e6,1.e7,1.e8,1.e9,1.e10}; +G4double G4MuPairProductionModel::tdat[]={1.e3,1.e4,1.e5,1.e6,1.e7,1.e8, + 1.e9,1.e10}; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition*, const G4String& nam) @@ -83,9 +86,9 @@ G4MuPairProductionModel::G4MuPairProductionModel(const G4ParticleDefinition*, ntdat(8), NBIN(1000), samplingTablesAreFilled(false) -{} +{ } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4MuPairProductionModel::~G4MuPairProductionModel() { @@ -97,109 +100,108 @@ G4MuPairProductionModel::~G4MuPairProductionModel() } } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4MuPairProductionModel::HighEnergyLimit(const G4ParticleDefinition*) { return highKinEnergy; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4MuPairProductionModel::LowEnergyLimit(const G4ParticleDefinition*) { return lowKinEnergy; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4double G4MuPairProductionModel::MinEnergyCut(const G4ParticleDefinition*, - const G4MaterialCutsCouple* couple) + const G4MaterialCutsCouple* couple) { size_t index = couple->GetIndex(); - const G4ProductionCutsTable* theCoupleTable= + const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); G4double eCut = (*(theCoupleTable->GetEnergyCutsVector(1)))[index]; G4double pCut = (*(theCoupleTable->GetEnergyCutsVector(2)))[index]; - G4double x = 2.0*electron_mass_c2 + eCut + pCut; + G4double x = 2*electron_mass_c2 + eCut + pCut; if(x < minPairEnergy) x = minPairEnergy; -/* - if(eCut < highKinEnergy && pCut < highKinEnergy) { - x += eCut + pCut; - } else { - x = 0.5*highKinEnergy; - } - */ + + //// if (eCut < highKinEnergy && pCut < highKinEnergy) { + //// x += eCut + pCut; + //// } else { + //// x = 0.5*highKinEnergy; + //// } + return x; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4bool G4MuPairProductionModel::IsInCharge(const G4ParticleDefinition* p) { return (p == G4MuonMinus::MuonMinus() || p == G4MuonPlus::MuonPlus()); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void G4MuPairProductionModel::Initialise(const G4ParticleDefinition*, const G4DataVector& cuts) { - const G4ProductionCutsTable* theCoupleTable= + const G4ProductionCutsTable* theCoupleTable = G4ProductionCutsTable::GetProductionCutsTable(); size_t numOfCouples = theCoupleTable->GetTableSize(); G4double fixedEnergy = sqrt(lowKinEnergy*highKinEnergy); - for (size_t ii=0; iiGetMaterialCutsCouple(i); + const G4MaterialCutsCouple* couple=theCoupleTable->GetMaterialCutsCouple(i); const G4Material* material = couple->GetMaterial(); G4DataVector* dv = ComputePartialSumSigma(material, fixedEnergy, std::min(cuts[i], 0.25*highKinEnergy)); partialSumSigma.push_back(dv); } - if(!samplingTablesAreFilled) MakeSamplingTables(); - + if (!samplingTablesAreFilled) MakeSamplingTables(); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4MuPairProductionModel::ComputeDEDX(const G4Material* material, - const G4ParticleDefinition*, - G4double kineticEnergy, - G4double cutEnergy) +G4double +G4MuPairProductionModel::ComputeDEDX(const G4MaterialCutsCouple* couple, + const G4ParticleDefinition*, + G4double kineticEnergy, G4double cutEnergy) { G4double dedx = 0.0; - if(minPairEnergy >= cutEnergy) return dedx; + if (minPairEnergy >= cutEnergy) return dedx; G4double cut = cutEnergy; - if(kineticEnergy <= cutEnergy) cut = kineticEnergy; + if (kineticEnergy <= cutEnergy) cut = kineticEnergy; + const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); + const G4double* theAtomicNumDensityVector = + material->GetAtomicNumDensityVector(); // loop for elements in the material for (size_t i=0; iGetNumberOfElements(); i++) { - - G4double Z = (*theElementVector)[i]->GetZ(); - - G4double loss = ComputMuPairLoss(Z, kineticEnergy, cut); - - dedx += loss*theAtomicNumDensityVector[i]; + G4double Z = (*theElementVector)[i]->GetZ(); + G4double loss = ComputMuPairLoss(Z, kineticEnergy, cut); + dedx += loss*theAtomicNumDensityVector[i]; } - if(dedx < 0.) dedx = 0.; + if (dedx < 0.) dedx = 0.; return dedx; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4double G4MuPairProductionModel::ComputMuPairLoss(G4double Z, - G4double tkin, G4double cutEnergy) +G4double +G4MuPairProductionModel::ComputMuPairLoss(G4double Z, + G4double tkin, G4double cutEnergy) { static const G4double xgi[] ={ 0.0199,0.1017,0.2372,0.4083,0.5917,0.7628,0.8983,0.9801}; @@ -211,45 +213,39 @@ G4double G4MuPairProductionModel::ComputMuPairLoss(G4double Z, static const G4double aaa = log(minPairEnergy); G4double z13 = pow(Z,0.333333333); - G4double loss = 0.0 ; + G4double loss = 0.0; G4double particleMass = (G4MuonPlus::MuonPlus())->GetPDGMass(); G4double tmax = tkin + particleMass*(1.-0.75*sqrte*z13); - // G4cout << "###DEDX tkin= " << tkin << " tmax= " << tmax << " tmin= " << minPairEnergy << G4endl; - G4double cut = cutEnergy; if(tmax <= cutEnergy) cut = tmax; if(cut <= minPairEnergy) return loss; // calculate the rectricted loss // numerical integration in log(PairEnergy) - G4double bbb = log(cut) ; + G4double bbb = log(cut); G4int kkk = (G4int)((bbb-aaa)/ak1+ak2); - if(kkk > 8) kkk = 8; - G4double hhh = (bbb-aaa)/(G4double)kkk ; + if (kkk > 8) kkk = 8; + G4double hhh = (bbb-aaa)/(G4double)kkk; G4double x = aaa; - // G4cout << "###DEDX tkin= " << tkin << " cut= " << cut << " kkk= " << kkk << G4endl; - for (G4int l=0 ; lSetLowEnergyLimit(0.1*keV); - em->SetHighEnergyLimit(100.0*TeV); - AddEmModel(1, em); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -const G4ParticleDefinition* G4MuPairProductionSTD::DefineBaseParticle( - const G4ParticleDefinition* p) -{ - if(!theParticle) theParticle = p; - return theBaseParticle; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4MuPairProductionSTD::PrintInfoDefinition() -{ - G4VEnergyLossSTD::PrintInfoDefinition(); - - G4cout << " Parametrised model " - << G4endl; -// G4cout << *(LambdaTable()) << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4MuPairProductionSTD::SetSubCutoff(G4bool val) -{ - subCutoff = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - - - diff --git a/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc b/source/processes/electromagnetic/muons/src/G4VMuEnergyLoss.cc index a195fe0b6f..3b4ccf10ed 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.29 2003/06/16 17:01:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // -------------------------------------------------------------- // GEANT 4 class implementation file // diff --git a/source/processes/electromagnetic/standard/GNUmakefile b/source/processes/electromagnetic/standard/GNUmakefile index 53b0572fff..9765050145 100644 --- a/source/processes/electromagnetic/standard/GNUmakefile +++ b/source/processes/electromagnetic/standard/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2000/10/24 13:49:29 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2003/10/03 15:39:18 gcosmo Exp $ # -------------------------------------------------------------------- # GNUmakefile for electromagnetic sub-library. John Allison, 25/6/98. # -------------------------------------------------------------------- @@ -15,10 +15,12 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ + -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/processes/electromagnetic/muons/include \ -I$(G4BASE)/particles/management/include \ diff --git a/source/processes/electromagnetic/standard/History b/source/processes/electromagnetic/standard/History index 656ae3feed..22bda553cd 100644 --- a/source/processes/electromagnetic/standard/History +++ b/source/processes/electromagnetic/standard/History @@ -1,4 +1,4 @@ -$Id: History,v 1.95 2003/06/25 13:40:58 gcosmo Exp $ +$Id: History,v 1.104 2003/11/12 16:28:53 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,36 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +11 Nov 03: V.Ivant (stand-V05-02-07) +- Substitute G4VEnergyLossSTD by G4VEnergyLossProcess +- For ions update ionisation + +03 Nov 03: V.Ivant (stand-V05-02-06) +- Remove STD processes + +24 Oct 03: V.Ivant (stand-V05-02-05) +-Update defults for processes +-Add PAI model (V.Grichine) + +4 Oct 03: G.Cosmo (stand-V05-02-04) +- Modified GNUmakefiles: + o added dependency to new module "geometry/navigation". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +20 Sept 03: V.Ivant (stand-V05-02-03) +-Update energy intervals for ionisation models +-Update GNUmakefile + +08 August 03: V.Ivant (stand-V05-02-02) +-Substitute standerd by STD, freezing old standard as 52 + +07 August 03: V.Ivant (stand-V05-02-01) +- Change defaults for STD processes +- Introduce Effective charge to G4ionIonisation + +24 July 03: V.Ivant (stand-V05-02-00) +-Update model interface according utils-V05-02-00 + 25 June 03: G.Cosmo (stand-V05-01-05) - G4PAIxSection.cc: trivial fixes on arguments to pow() for porting on .NET 7.1 compiler. diff --git a/source/processes/electromagnetic/standard/include/G4AnnihiToMuPair.hh b/source/processes/electromagnetic/standard/include/G4AnnihiToMuPair.hh index 0c08bce518..cdd41ac93c 100644 --- a/source/processes/electromagnetic/standard/include/G4AnnihiToMuPair.hh +++ b/source/processes/electromagnetic/standard/include/G4AnnihiToMuPair.hh @@ -22,7 +22,7 @@ // // // $Id: G4AnnihiToMuPair.hh,v 1.2 2003/02/04 11:08:41 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------ G4AnnihiToMuPair physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, November 2002 diff --git a/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4ComptonScattering.hh index d7dad6462a..589e1c6127 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.9 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //------------------ G4ComptonScattering physics process ----------------------- // by Michel Maire, April 1996 diff --git a/source/processes/electromagnetic/standard/include/G4ComptonScattering.icc b/source/processes/electromagnetic/standard/include/G4ComptonScattering.icc index 7826c32c81..e4f3a51796 100644 --- a/source/processes/electromagnetic/standard/include/G4ComptonScattering.icc +++ b/source/processes/electromagnetic/standard/include/G4ComptonScattering.icc @@ -22,7 +22,7 @@ // // // $Id: G4ComptonScattering.icc,v 1.8 2001/09/21 09:50:53 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //------------------ G4ComptonScattering 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 3423b75fcc..095a7e31ba 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.10 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //------------------ G4GammaConversion physics process ------------------------- // by Michel Maire, 24 May 1996 diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversion.icc b/source/processes/electromagnetic/standard/include/G4GammaConversion.icc index 2ceedc0ab3..cb0fb99cea 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversion.icc +++ b/source/processes/electromagnetic/standard/include/G4GammaConversion.icc @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversion.icc,v 1.7 2001/09/17 17:07:11 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------ G4GammaConversion physics process ------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh index 83856f1bc2..96c34e9030 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh +++ b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.hh @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversionToMuons.hh,v 1.3 2003/05/26 16:13:13 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 diff --git a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc index 8dfcd4fcf0..604db5675a 100644 --- a/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc +++ b/source/processes/electromagnetic/standard/include/G4GammaConversionToMuons.icc @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversionToMuons.icc,v 1.1 2002/04/19 14:44:33 hbu Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 diff --git a/source/processes/electromagnetic/standard/include/G4IonisationByLogicalVolume.hh b/source/processes/electromagnetic/standard/include/G4IonisationByLogicalVolume.hh index cd49aaa529..df00cf6636 100644 --- a/source/processes/electromagnetic/standard/include/G4IonisationByLogicalVolume.hh +++ b/source/processes/electromagnetic/standard/include/G4IonisationByLogicalVolume.hh @@ -51,15 +51,15 @@ #include "G4VContinuousDiscreteProcess.hh" #include "G4PAIonisation.hh" -#include "G4eIonisation.hh" -#include "G4MuIonisation.hh" -#include "G4hIonisation.hh" +#include "G4eIonisation52.hh" +#include "G4MuIonisation52.hh" +#include "G4hIonisation52.hh" class G4IonisationByLogicalVolume : public G4VContinuousDiscreteProcess { public: - + G4IonisationByLogicalVolume( const G4String& particleName, G4LogicalVolume* volumeForPAImodel, const G4String& processName ); @@ -70,20 +70,20 @@ public: // Methods G4bool IsApplicable(const G4ParticleDefinition&); - + // G4double GetConstraints(const G4DynamicParticle *aParticle, // G4Material *aMaterial ); - - G4VParticleChange* PostStepDoIt( const G4Track& track, - const G4Step& Step ) ; + + G4VParticleChange* PostStepDoIt( const G4Track& track, + const G4Step& Step ) ; void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); - G4double + G4double GetContinuousStepLimit( const G4Track& track, G4double previousStepSize, G4double currentMinimumStep, - G4double& currentSafety ) ; + G4double& currentSafety ) ; G4double GetMeanFreePath( const G4Track& track, G4double previousStepSize, @@ -109,9 +109,9 @@ private: G4bool fTriggerPAI ; G4PAIonisation* fPAIonisation ; - G4eIonisation* feIonisation ; - G4MuIonisation* fMuIonisation ; - G4hIonisation* fhIonisation ; + G4eIonisation52* feIonisation ; + G4MuIonisation52* fMuIonisation ; + G4hIonisation52* fhIonisation ; } ; diff --git a/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh b/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh index 04fa67ffb7..142508969a 100644 --- a/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh +++ b/source/processes/electromagnetic/standard/include/G4MollerBhabhaModel.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MollerBhabhaModel.hh,v 1.7 2003/07/21 12:52:22 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -76,12 +78,12 @@ public: G4bool IsInCharge(const G4ParticleDefinition*); - G4double ComputeDEDX(const G4Material*, + G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy); - G4double CrossSection(const G4Material*, + G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, diff --git a/source/processes/electromagnetic/standard/include/G4PAIModel.hh b/source/processes/electromagnetic/standard/include/G4PAIModel.hh new file mode 100644 index 0000000000..3de256c8e9 --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4PAIModel.hh @@ -0,0 +1,238 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4PAIModel +// +// Author: V. Grichine based on Vladimir Ivanchenko code +// +// Creation date: 05.10.2003 +// +// Modifications: +// +// +// Class Description: +// +// Implementation of PAI model of energy loss and +// delta-electron production by heavy charged particles + +// ------------------------------------------------------------------- +// + +#ifndef G4PAIModel_h +#define G4PAIModel_h 1 + +#include +#include "G4VEmModel.hh" +#include "globals.hh" +#include "G4VEmFluctuationModel.hh" + +class G4PhysicsLogVector; +class G4PhysicsTable; +class G4Region; +class G4MaterialCutsCouple; + + +class G4PAIModel : public G4VEmModel, public G4VEmFluctuationModel +{ + +public: + + G4PAIModel(const G4ParticleDefinition* p = 0, const G4String& nam = "PAI"); + + ~G4PAIModel(); + + void Initialise(const G4ParticleDefinition*, const G4DataVector&); + + + void InitialiseMe(const G4ParticleDefinition*) {}; + + G4double HighEnergyLimit(const G4ParticleDefinition* p); + + G4double LowEnergyLimit(const G4ParticleDefinition* p); + + void SetHighEnergyLimit(G4double e) {fHighKinEnergy = e;}; + + void SetLowEnergyLimit(G4double e) {fLowKinEnergy = e;}; + + G4double MinEnergyCut(const G4ParticleDefinition*, + const G4MaterialCutsCouple*); + + G4bool IsInCharge(const G4ParticleDefinition*); + + G4double ComputeDEDX(const G4MaterialCutsCouple*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy); + + G4double CrossSection(const G4MaterialCutsCouple*, + const G4ParticleDefinition*, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy); + + G4DynamicParticle* SampleSecondary( + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + std::vector* SampleSecondaries( + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double tmin, + G4double maxEnergy); + + G4double MaxSecondaryEnergy(const G4DynamicParticle*); + + G4double SampleFluctuations(const G4Material*, + const G4DynamicParticle*, + G4double&, + G4double&, + G4double&); + + G4double Dispersion( const G4Material*, + const G4DynamicParticle*, + G4double&, + G4double&); + + void DefineForRegion(const G4Region* r) ; + void ComputeSandiaPhotoAbsCof(); + void BuildPAIonisationTable(); + void BuildLambdaVector(const G4MaterialCutsCouple* matCutsCouple); + G4double GetdNdxCut( G4int iPlace, G4double transferCut); + G4double GetdEdxCut( G4int iPlace, G4double transferCut); + G4double GetPostStepTransfer( G4double scaledTkin ); + G4double GetEnergyTransfer( G4int iPlace, + G4double position, + G4int iTransfer ); + + + +protected: + + G4double MaxSecondaryEnergy(const G4ParticleDefinition*, + G4double kinEnergy); + +private: + + void SetParticle(const G4ParticleDefinition* p); + + // hide assignment operator + G4PAIModel & operator=(const G4PAIModel &right); + G4PAIModel(const G4PAIModel&); + + // The vector over proton kinetic energies: the range of gammas + + static const G4double fLowestKineticEnergy; + static const G4double fHighestKineticEnergy; + static G4int fTotBin; + static G4int fMeanNumber; + static G4PhysicsLogVector* fProtonEnergyVector ; + + + + // vectors + G4PhysicsTable* fPAItransferBank; + std::vector fPAIxscBank; + G4PhysicsTable* fPAIdEdxTable; + std::vector fPAIdEdxBank; + std::vector fMaterialCutsCoupleVector; + std::vector fPAIRegionVector; + size_t fMatIndex ; + G4double** fSandiaPhotoAbsCof ; + G4int fSandiaIntervalNumber ; + + G4PhysicsLogVector* fdEdxVector ; + std::vector fdEdxTable ; + G4PhysicsLogVector* fLambdaVector ; + std::vector fLambdaTable ; + G4PhysicsLogVector* fdNdxCutVector ; + std::vector fdNdxCutTable ; + + + + + const G4ParticleDefinition* fParticle; + + G4double fMass; + G4double fSpin; + G4double fChargeSquare; + G4double fRatio; + G4double fHighKinEnergy; + G4double fLowKinEnergy; + G4double fTwoln10; + G4double fBg2lim; + G4double fTaulim; + G4double fQc; +}; + +///////////////////////////////////////////////////////////////////// + +inline G4double G4PAIModel::MaxSecondaryEnergy( const G4ParticleDefinition*, + G4double kinEnergy) +{ + + G4double gamma= kinEnergy/fMass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*fRatio + fRatio*fRatio); + + return tmax; +} + +///////////////////////////////////////////////////////////////////////// + +inline G4double G4PAIModel::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double gamma= kineticEnergy/fMass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*fRatio + fRatio*fRatio); + + return tmax; +} + +/////////////////////////////////////////////////////////////// + +inline void G4PAIModel::DefineForRegion(const G4Region* r) +{ + // G4Region* rPAI = r; + // fPAIRegionVector.push_back(rPAI); + fPAIRegionVector.push_back(r); +} + + + +#endif + + + + + + + diff --git a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh index 5eb75560d2..cd9831ed37 100644 --- a/source/processes/electromagnetic/standard/include/G4PAIxSection.hh +++ b/source/processes/electromagnetic/standard/include/G4PAIxSection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PAIxSection.hh,v 1.9 2002/10/14 17:30:10 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PAIxSection.hh,v 1.10 2003/10/19 15:21:22 grichine Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4PAIxSection.hh -- header file @@ -35,15 +35,20 @@ // // Preparation of ionizing collision cross section according to Photo Absorption // Ionization (PAI) model for simulation of ionization energy losses in very thin -// absorbers +// absorbers. Author: Vladimir.Grichine@cern.ch // // History: -// 1st version 11.06.97, V. Grichine -// 2nd version 30.11.97, V. Grichine -// 27.10.99, V.Grichine: Bug fixed in constructors, 3rd constructor and -// GetStepEnergyLoss(step) were added, fDelta = 0.005 -// 10.02.02, V.Grichine: New functions and arrays/gets for Cerenkov and -// plasmon collisions dN/dx +// +// 19.10.03, V. Grichine: Integral dEdx was added for G4PAIModel class +// +// 13.05.03, V. Grichine: Numerical instability was fixed in SumOverInterval/Border +// functions +// 10.02.02, V. Grichine: New functions and arrays/gets for Cerenkov and +// plasmon collisions dN/dx +// 27.10.99, V. Grichine: Bug fixed in constructors, 3rd constructor and +// GetStepEnergyLoss(step) were added, fDelta = 0.005 +// 30.11.97, V. Grichine: 2nd version +// 11.06.97, V. Grichine: 1st version #ifndef G4PAIXSECTION_HH #define G4PAIXSECTION_HH @@ -118,11 +123,14 @@ public: void IntegralPlasmon() ; G4double SumOverInterval(G4int intervalNumber) ; + G4double SumOverIntervaldEdx(G4int intervalNumber) ; G4double SumOverInterCerenkov(G4int intervalNumber) ; G4double SumOverInterPlasmon(G4int intervalNumber) ; G4double SumOverBorder( G4int intervalNumber, G4double energy ) ; + G4double SumOverBorderdEdx( G4int intervalNumber, + G4double energy ) ; G4double SumOverBordCerenkov( G4int intervalNumber, G4double energy ) ; G4double SumOverBordPlasmon( G4int intervalNumber, @@ -159,6 +167,7 @@ public: inline G4double GetSplineEnergy(G4int i) const ; inline G4double GetIntegralPAIxSection(G4int i) const ; + inline G4double GetIntegralPAIdEdx(G4int i) const ; inline G4double GetIntegralCerenkov(G4int i) const ; inline G4double GetIntegralPlasmon(G4int i) const ; @@ -212,6 +221,7 @@ G4double fdNdxCerenkov[500] ; // dNdx of Cerenkov collisions G4double fdNdxPlasmon[500] ; // dNdx of Plasmon collisions G4double fIntegralPAIxSection[500] ; // Integral PAI cross section ? +G4double fIntegralPAIdEdx[500] ; // Integral PAI dEdx ? G4double fIntegralCerenkov[500] ; // Integral Cerenkov N>omega ? G4double fIntegralPlasmon[500] ; // Integral Plasmon N>omega ? @@ -251,6 +261,15 @@ inline G4double G4PAIxSection::GetIntegralPAIxSection(G4int i) const return fIntegralPAIxSection[i] ; } +inline G4double G4PAIxSection::GetIntegralPAIdEdx(G4int i) const +{ + if(i < 1 || i > fSplineNumber) + { + G4Exception("Invalid argument in G4PAIxSection::GetIntegralPAIxSection"); + } + return fIntegralPAIdEdx[i] ; +} + inline G4double G4PAIxSection::GetIntegralCerenkov(G4int i) const { if(i < 1 || i > fSplineNumber) diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.hh index fc9687f6c1..ba7a3e2caa 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.15 2002/05/02 11:37:22 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc index 44f57e728a..14386d6ede 100644 --- a/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc +++ b/source/processes/electromagnetic/standard/include/G4PhotoElectricEffect.icc @@ -22,7 +22,7 @@ // // // $Id: G4PhotoElectricEffect.icc,v 1.10 2002/04/18 10:12:01 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh b/source/processes/electromagnetic/standard/include/G4PolarizedComptonScattering.hh index 21044b9e0c..f7bb9d5d81 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.7 2002/04/09 17:34:40 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // --------- G4PolarizedComptonScattering physics process ---------------------- // by Vicente Lara, March 1998 diff --git a/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh b/source/processes/electromagnetic/standard/include/G4SynchrotronRadiation.hh index 90cc85e731..e29d27fb05 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.8 2003/05/26 16:13:14 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh index db9aa2ea8f..457a356a02 100644 --- a/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh +++ b/source/processes/electromagnetic/standard/include/G4VPAIenergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VPAIenergyLoss.hh,v 1.10 2003/06/16 17:01:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ // GEANT 4 class header file diff --git a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.hh index fea86b5800..020b37582e 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.12 2003/01/17 18:55:42 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc b/source/processes/electromagnetic/standard/include/G4VeEnergyLoss.icc index 6ab9ffd871..284759a72f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... // diff --git a/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh b/source/processes/electromagnetic/standard/include/G4VhEnergyLoss.hh index 92d18805b7..d4c517797f 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.17 2003/01/22 14:03:53 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 fafd64625f..121167cb69 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ---------------- G4VhEnergyLoss physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh index 11ac3a840a..8495e73a4c 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.hh @@ -20,175 +20,122 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4eBremsstrahlung.hh,v 1.20 2003/11/12 16:23:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4eBremsstrahlung.hh,v 1.16 2003/06/16 17:01:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4eBremsstrahlung +// +// Author: Laszlo Urban +// +// Creation date: 24.06.1996 +// +// Modifications: // -// -// ------------ G4eBremsstrahlung physics process ------ -// by Laszlo Urban, 24 July 1996 -// // 01-10-96 new type G4OrderedTable; ComputePartialSumSigma() // 20-03-97 new energy loss+ionisation+brems scheme, L.Urban -// 01-09-98 new method PrintInfo() +// 01-09-98 new method PrintInfo() // 10-02-00 modifications , new e.m. structure, L.Urban // 07-08-00 new cross section/en.loss parametrisation, LPM flag , L.Urban // 09-08-01 new methods Store/Retrieve PhysicsTable (mma) // 19-09-01 come back to previous process name "eBrem" -// 29-10-01 all static functions no more inlined (mma) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 29-10-01 all static functions no more inlined (mma) +// 07-01-02 new design of em processes (V.Ivanchenko) +// 26-12-02 secondary production moved to derived classes (VI) +// 24-01-03 Make models region aware (V.Ivanchenko) +// 05-02-03 Fix compilation warnings (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 17-10-03 PrintInfoDefinition - virtual (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // -// ------------------------------------------------------------ - -// Class description +// +// Class Description: // // This class manages the bremsstrahlung for e-/e+ -// it inherites from G4VContinuousDiscreteProcess via G4VeEnergyLoss. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. // -// Class description - end -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +// ------------------------------------------------------------------- +// #ifndef G4eBremsstrahlung_h #define G4eBremsstrahlung_h 1 -#include "G4ios.hh" -#include "globals.hh" -#include "Randomize.hh" -#include "G4VeEnergyLoss.hh" -#include "G4Track.hh" -#include "G4Step.hh" -#include "G4Gamma.hh" +#include "G4VEnergyLossProcess.hh" #include "G4Electron.hh" #include "G4Positron.hh" -#include "G4OrderedTable.hh" -#include "G4PhysicsTable.hh" -#include "G4PhysicsLogVector.hh" -#include "G4MaterialCutsCouple.hh" + +class G4Material; + +class G4eBremsstrahlung : public G4VEnergyLossProcess +{ + +public: + + G4eBremsstrahlung(const G4String& name = "eBrem"); + + ~G4eBremsstrahlung(); + + G4bool IsApplicable(const G4ParticleDefinition& p) + {return (&p == G4Electron::Electron() || &p == G4Positron::Positron());}; + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, G4double cut) + {return cut;}; + + virtual std::vector* SecondariesAlongStep( + const G4Step&, + G4double&, + G4double&, + G4double&) {return 0;}; + + virtual void SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&, + G4double&); + + virtual void PrintInfoDefinition(); + // Print out of the class parameters + +protected: + + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) + {return dynParticle->GetKineticEnergy();}; + +private: + + void InitialiseProcess(); + + // hide assignment operator + G4eBremsstrahlung & operator=(const G4eBremsstrahlung &right); + G4eBremsstrahlung(const G4eBremsstrahlung&); + +}; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class G4eBremsstrahlung : public G4VeEnergyLoss +#include "G4VEmModel.hh" +inline void G4eBremsstrahlung::SecondariesPostStep( + G4VEmModel* model, + const G4MaterialCutsCouple* couple, + const G4DynamicParticle* dp, + G4double& tcut, + G4double& kinEnergy) { - public: + G4DynamicParticle* gamma = model->SampleSecondary(couple, dp, tcut, kinEnergy); + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(gamma); + kinEnergy -= gamma->GetKineticEnergy(); +} - G4eBremsstrahlung(const G4String& processName = "eBrem"); +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - ~G4eBremsstrahlung(); - - G4bool IsApplicable(const G4ParticleDefinition&); - - void PrintInfoDefinition(); - - void BuildPhysicsTable(const G4ParticleDefinition& ParticleType); - - void BuildLossTable(const G4ParticleDefinition& ParticleType); - - void BuildLambdaTable(const G4ParticleDefinition& ParticleType); - - G4double GetMeanFreePath(const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition ); - - G4VParticleChange *PostStepDoIt(const G4Track& track, - const G4Step& step); - - G4double GetLambda(G4double KineticEnergy, const G4MaterialCutsCouple* couple); - - G4bool StorePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // store eLoss and MeanFreePath tables into an external file - // specified by 'directory' (must exist before invokation) - - G4bool RetrievePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // retrieve eLoss and MeanFreePath tables from an external file - // specified by 'directory' - - protected: - - G4double ComputeMeanFreePath( const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple); - - void ComputePartialSumSigma( const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple); - - virtual G4double ComputeCrossSectionPerAtom( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double GammaEnergyCut); - - private: - - G4double ComputeBremLoss(G4double Z,G4double natom,G4double T, - G4double Cut,G4double x); - - G4double ComputePositronCorrFactorLoss(G4double AtomicNumber, - G4double KineticEnergy, - G4double GammaEnergyCut); - - G4double ComputePositronCorrFactorSigma(G4double AtomicNumber, - G4double KineticEnergy, - G4double GammaEnergyCut); - - G4Element* SelectRandomAtom(const G4MaterialCutsCouple* couple) const; - - G4double ScreenFunction1(G4double ScreenVariable); - - G4double ScreenFunction2(G4double ScreenVariable); - - G4double SupressionFunction(const G4Material* aMaterial, - G4double KineticEnergy, - G4double GammaEnergy) ; - - G4eBremsstrahlung & operator=(const G4eBremsstrahlung &right); - - G4eBremsstrahlung(const G4eBremsstrahlung&); - - protected: - - virtual G4double SecondaryEnergyThreshold(size_t index); - - private: - - G4PhysicsTable* theMeanFreePathTable; - - G4OrderedTable PartialSumSigma; // partial sum of total crosssection - - static G4double LowerBoundLambda; // low energy limit of crossection table - static G4double UpperBoundLambda; // high energy limit of crossection table - static G4int NbinLambda; // number of bins in the tables - - G4double MinThreshold; // minimun value for the production threshold - - G4double LowestKineticEnergy,HighestKineticEnergy; // bining of the Eloss table - G4int TotBin; // (from G4VeEnergyLoss) - - static G4double probsup; - static G4bool LPMflag; - - const std::vector* secondaryEnergyCuts; - - public: - - static void SetLowerBoundLambda(G4double val); - static void SetUpperBoundLambda(G4double val); - static void SetNbinLambda(G4int n); - static G4double GetLowerBoundLambda(); - static G4double GetUpperBoundLambda(); - static G4int GetNbinLambda(); - - static void SetLPMflag(G4bool val); - static G4bool GetLPMflag(); -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "G4eBremsstrahlung.icc" - #endif + diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.hh new file mode 100644 index 0000000000..39f1c5ff1d --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.hh @@ -0,0 +1,195 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4eBremsstrahlung52.hh,v 1.1 2003/08/08 11:30:00 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// ------------ G4eBremsstrahlung5252 physics process ------ +// by Laszlo Urban, 24 July 1996 +// +// 01-10-96 new type G4OrderedTable; ComputePartialSumSigma() +// 20-03-97 new energy loss+ionisation+brems scheme, L.Urban +// 01-09-98 new method PrintInfo() +// 10-02-00 modifications , new e.m. structure, L.Urban +// 07-08-00 new cross section/en.loss parametrisation, LPM flag , L.Urban +// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 19-09-01 come back to previous process name "eBrem" +// 29-10-01 all static functions no more inlined (mma) +// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +// +// ------------------------------------------------------------ + +// Class description +// +// This class manages the bremsstrahlung for e-/e+ +// it inherites from G4VContinuousDiscreteProcess via G4VeEnergyLoss. +// +// Class description - end + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#ifndef G4eBremsstrahlung52_h +#define G4eBremsstrahlung52_h 1 + +#include "G4ios.hh" +#include "globals.hh" +#include "Randomize.hh" +#include "G4VeEnergyLoss.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4Gamma.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "G4OrderedTable.hh" +#include "G4PhysicsTable.hh" +#include "G4PhysicsLogVector.hh" +#include "G4MaterialCutsCouple.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4eBremsstrahlung52 : public G4VeEnergyLoss + +{ + public: + + G4eBremsstrahlung52(const G4String& processName = "eBrem"); + + ~G4eBremsstrahlung52(); + + G4bool IsApplicable(const G4ParticleDefinition&); + + void PrintInfoDefinition(); + + void BuildPhysicsTable(const G4ParticleDefinition& ParticleType); + + void BuildLossTable(const G4ParticleDefinition& ParticleType); + + void BuildLambdaTable(const G4ParticleDefinition& ParticleType); + + G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition ); + + G4VParticleChange *PostStepDoIt(const G4Track& track, + const G4Step& step); + + G4double GetLambda(G4double KineticEnergy, const G4MaterialCutsCouple* couple); + + G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // store eLoss and MeanFreePath tables into an external file + // specified by 'directory' (must exist before invokation) + + G4bool RetrievePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // retrieve eLoss and MeanFreePath tables from an external file + // specified by 'directory' + + protected: + + G4double ComputeMeanFreePath( const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple); + + void ComputePartialSumSigma( const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple); + + virtual G4double ComputeCrossSectionPerAtom( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double GammaEnergyCut); + + private: + + G4double ComputeBremLoss(G4double Z,G4double natom,G4double T, + G4double Cut,G4double x); + + G4double ComputePositronCorrFactorLoss(G4double AtomicNumber, + G4double KineticEnergy, + G4double GammaEnergyCut); + + G4double ComputePositronCorrFactorSigma(G4double AtomicNumber, + G4double KineticEnergy, + G4double GammaEnergyCut); + + G4Element* SelectRandomAtom(const G4MaterialCutsCouple* couple) const; + + G4double ScreenFunction1(G4double ScreenVariable); + + G4double ScreenFunction2(G4double ScreenVariable); + + G4double SupressionFunction(const G4Material* aMaterial, + G4double KineticEnergy, + G4double GammaEnergy) ; + + G4eBremsstrahlung52 & operator=(const G4eBremsstrahlung52 &right); + + G4eBremsstrahlung52(const G4eBremsstrahlung52&); + + protected: + + virtual G4double SecondaryEnergyThreshold(size_t index); + + private: + + G4PhysicsTable* theMeanFreePathTable; + + G4OrderedTable PartialSumSigma; // partial sum of total crosssection + + static G4double LowerBoundLambda; // low energy limit of crossection table + static G4double UpperBoundLambda; // high energy limit of crossection table + static G4int NbinLambda; // number of bins in the tables + + G4double MinThreshold; // minimun value for the production threshold + + G4double LowestKineticEnergy,HighestKineticEnergy; // bining of the Eloss table + G4int TotBin; // (from G4VeEnergyLoss) + + static G4double probsup; + static G4bool LPMflag; + + const std::vector* secondaryEnergyCuts; + + public: + + static void SetLowerBoundLambda(G4double val); + static void SetUpperBoundLambda(G4double val); + static void SetNbinLambda(G4int n); + static G4double GetLowerBoundLambda(); + static G4double GetUpperBoundLambda(); + static G4int GetNbinLambda(); + + static void SetLPMflag(G4bool val); + static G4bool GetLPMflag(); +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4eBremsstrahlung52.icc" + +#endif diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.icc similarity index 86% rename from source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc rename to source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.icc index 30737c2e3d..d24934433b 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlung.icc +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlung52.icc @@ -21,21 +21,22 @@ // ******************************************************************** // // -// $Id: G4eBremsstrahlung.icc,v 1.7 2003/01/17 18:55:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4eBremsstrahlung52.icc,v 1.1 2003/08/08 11:30:00 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// ------------ G4eBremsstrahlung physics process --------- +// ------------ G4eBremsstrahlung52 physics process --------- // by Michel Maire, 27 July 1996 // // 13-12-96 : Sign corrected in the ScreenFunctions, L.Urban // 20/03/97 : new energy loss+ionisation+brems scheme, L.Urban // 28/05/01 : V.Ivanchenko minor changes to provide ANSI -wall compilation // 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) // --------------------------------------------------------------------------- //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4bool G4eBremsstrahlung::IsApplicable( +inline G4bool G4eBremsstrahlung52::IsApplicable( const G4ParticleDefinition& particle) { return( (&particle == G4Electron::Electron()) @@ -44,7 +45,7 @@ inline G4bool G4eBremsstrahlung::IsApplicable( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4eBremsstrahlung::GetMeanFreePath(const G4Track& track, +inline G4double G4eBremsstrahlung52::GetMeanFreePath(const G4Track& track, G4double, G4ForceCondition*) @@ -70,7 +71,7 @@ inline G4double G4eBremsstrahlung::GetMeanFreePath(const G4Track& track, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4eBremsstrahlung::ScreenFunction1(G4double ScreenVariable) +inline G4double G4eBremsstrahlung52::ScreenFunction1(G4double ScreenVariable) // compute the value of the screening function 3*PHI1 - PHI2 @@ -87,7 +88,7 @@ inline G4double G4eBremsstrahlung::ScreenFunction1(G4double ScreenVariable) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4eBremsstrahlung::ScreenFunction2(G4double ScreenVariable) +inline G4double G4eBremsstrahlung52::ScreenFunction2(G4double ScreenVariable) // compute the value of the screening function 1.5*PHI1 - 0.5*PHI2 @@ -104,7 +105,7 @@ inline G4double G4eBremsstrahlung::ScreenFunction2(G4double ScreenVariable) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4eBremsstrahlung::GetLambda( +inline G4double G4eBremsstrahlung52::GetLambda( G4double KineticEnergy, const G4MaterialCutsCouple* couple) { @@ -115,7 +116,7 @@ inline G4double G4eBremsstrahlung::GetLambda( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4eBremsstrahlung::SecondaryEnergyThreshold(size_t index) +inline G4double G4eBremsstrahlung52::SecondaryEnergyThreshold(size_t index) { return (*secondaryEnergyCuts)[index]; } diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh index a2c5dcb836..ff699deade 100644 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh +++ b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungModel.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4eBremsstrahlungModel.hh,v 1.8 2003/07/21 12:52:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -52,6 +54,8 @@ #include "G4VEmModel.hh" +class G4Element; + class G4eBremsstrahlungModel : public G4VEmModel { @@ -76,12 +80,12 @@ public: G4bool IsInCharge(const G4ParticleDefinition*); - G4double ComputeDEDX(const G4Material*, + G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy); - G4double CrossSection(const G4Material*, + G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, @@ -98,22 +102,22 @@ public: const G4DynamicParticle*, G4double tmin, G4double maxEnergy); - + void SetLPMflag(G4bool val) {theLPMflag = val;}; G4bool LPMflag() const {return theLPMflag;}; virtual G4double MaxSecondaryEnergy( - const G4DynamicParticle* dynParticle); + const G4DynamicParticle* dynParticle); protected: virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition*, - G4double kineticEnergy); + G4double kineticEnergy); private: void SetParticle(const G4ParticleDefinition* p); - G4double ComputeBremLoss(G4double Z, G4double tkin, G4double cut); + G4double ComputeBremLoss(G4double Z, G4double tkin, G4double cut); G4double PositronCorrFactorLoss(G4double Z, G4double tkin, G4double cut); @@ -169,7 +173,7 @@ inline G4double G4eBremsstrahlungModel::ScreenFunction1(G4double ScreenVariable) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline +inline G4double G4eBremsstrahlungModel::ScreenFunction2(G4double ScreenVariable) // compute the value of the screening function 1.5*PHI1 - 0.5*PHI2 diff --git a/source/processes/electromagnetic/standard/include/G4eBremsstrahlungSTD.hh b/source/processes/electromagnetic/standard/include/G4eBremsstrahlungSTD.hh deleted file mode 100644 index 5059b0c718..0000000000 --- a/source/processes/electromagnetic/standard/include/G4eBremsstrahlungSTD.hh +++ /dev/null @@ -1,136 +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. * -// ******************************************************************** -// -// -// ------------------------------------------------------------------- -// -// GEANT4 Class header file -// -// -// File name: G4eBremsstrahlungSTD -// -// Author: Laszlo Urban -// -// Creation date: 24.06.1996 -// -// Modifications: -// -// 01-10-96 new type G4OrderedTable; ComputePartialSumSigma() -// 20-03-97 new energy loss+ionisation+brems scheme, L.Urban -// 01-09-98 new method PrintInfo() -// 10-02-00 modifications , new e.m. structure, L.Urban -// 07-08-00 new cross section/en.loss parametrisation, LPM flag , L.Urban -// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 19-09-01 come back to previous process name "eBrem" -// 29-10-01 all static functions no more inlined (mma) -// 07-01-02 new design of em processes (V.Ivanchenko) -// 26-12-02 secondary production moved to derived classes (VI) -// 24-01-03 Make models region aware (V.Ivanchenko) -// 05-02-03 Fix compilation warnings (V.Ivanchenko) -// -// -// Class Description: -// -// This class manages the bremsstrahlung for e-/e+ -// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. -// - -// ------------------------------------------------------------------- -// - -#ifndef G4eBremsstrahlungSTD_h -#define G4eBremsstrahlungSTD_h 1 - -#include "G4VEnergyLossSTD.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" - -class G4Material; - -class G4eBremsstrahlungSTD : public G4VEnergyLossSTD -{ - -public: - - G4eBremsstrahlungSTD(const G4String& name = "eBrem"); - - ~G4eBremsstrahlungSTD(); - - G4bool IsApplicable(const G4ParticleDefinition& p) - {return (&p == G4Electron::Electron() || &p == G4Positron::Positron());}; - - virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*, G4double cut) - {return cut;}; - - virtual std::vector* SecondariesAlongStep( - const G4Step&, - G4double&, - G4double&, - G4double&) {return 0;}; - - virtual void SecondariesPostStep( - G4VEmModel*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double&, - G4double&); - - void PrintInfoDefinition(); - // Print out of the class parameters - -protected: - - virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) - {return dynParticle->GetKineticEnergy();}; - -private: - - void InitialiseProcess(); - - // hide assignment operator - G4eBremsstrahlungSTD & operator=(const G4eBremsstrahlungSTD &right); - G4eBremsstrahlungSTD(const G4eBremsstrahlungSTD&); - -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VEmModel.hh" - -inline void G4eBremsstrahlungSTD::SecondariesPostStep( - G4VEmModel* model, - const G4MaterialCutsCouple* couple, - const G4DynamicParticle* dp, - G4double& tcut, - G4double& kinEnergy) -{ - G4DynamicParticle* gamma = model->SampleSecondary(couple, dp, tcut, kinEnergy); - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(gamma); - kinEnergy -= gamma->GetKineticEnergy(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#endif - diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation.hh b/source/processes/electromagnetic/standard/include/G4eIonisation.hh index 981efd4ee1..09e7e36952 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4eIonisation.hh @@ -20,156 +20,182 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4eIonisation.hh,v 1.20 2003/11/12 16:23:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4eIonisation.hh,v 1.18 2003/06/16 17:02:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- // -//--------------- G4eIonisation physics process -------------------------------- -// by Laszlo Urban, 20 March 1997 +// GEANT4 Class header file +// +// +// File name: G4eIonisation +// +// Author: Laszlo Urban +// +// Creation date: 20.03.1997 +// +// Modifications: // // 10-02-00 modifications , new e.m. structure, L.Urban // 03-08-01 new methods Store/Retrieve PhysicsTable (mma) // 13-08-01 new function ComputeRestrictedMeandEdx() (mma) // 19-09-01 come back to previous ProcessName "eIoni" // 29-10-01 all static functions no more inlined (mma) -// 15-01-03 Migrade to cut per region (V.Ivanchenko) +// 07-01-02 new design of em processes (V.Ivanchenko) +// 26-12-02 Secondary production moved to derived classes (VI) +// 24-01-03 Make models region aware (V.Ivanchenko) +// 05-02-03 Fix compilation warnings (V.Ivanchenko) +// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) +// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko) +// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // -//------------------------------------------------------------------------------ - -// Class description +// +// Class Description: // // This class manages the ionisation process for e-/e+ -// it inherites from G4VContinuousDiscreteProcess via G4VeEnergyLoss. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossProcess. // -// Class description - end -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// ------------------------------------------------------------------- +// #ifndef G4eIonisation_h #define G4eIonisation_h 1 -#include "G4VeEnergyLoss.hh" -#include "G4MaterialCutsCouple.hh" +#include "G4VEnergyLossProcess.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class G4eIonisation : public G4VeEnergyLoss +class G4Material; +class G4ParticleDefinition; +class G4VEmFluctuationModel; +class G4eIonisation : public G4VEnergyLossProcess { - public: // with description - G4eIonisation(const G4String& processName = "eIoni"); +public: - ~G4eIonisation(); + G4eIonisation(const G4String& name = "eIoni"); - G4bool IsApplicable(const G4ParticleDefinition&); - // return true for e+/e-, false otherwise + ~G4eIonisation(); - void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); - // this function overloads a virtual function of the base class. - // It is invoked by the G4ParticleWithCuts::SetCut() method. - // It invokes BuildLambdaTable(), BuildLossTable(), BuildDEDXTable() + G4bool IsApplicable(const G4ParticleDefinition& p); - void BuildLossTable(const G4ParticleDefinition& aParticleType); - // build the dE/dx tables due to the ionisation, for every materials. - // (restricted stopping power, Berger-Seltzer formula) + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, G4double cut); - void BuildLambdaTable(const G4ParticleDefinition& aParticleType); - // build mean free path tables for the delta rays production. - // the tables are built for every materials. + virtual std::vector* SecondariesAlongStep( + const G4Step&, + G4double&, + G4double&, + G4double&); - G4bool StorePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // store eLoss and MeanFreePath tables into an external file - // specified by 'directory' (must exist before invokation) + virtual void SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&, + G4double&); - G4bool RetrievePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // retrieve eLoss and MeanFreePath tables from an external file - // specified by 'directory' + void SetSubCutoff(G4bool val); - void PrintInfoDefinition(); - // Print few lines of informations about the process: validity range, - // origine ..etc.. - // Invoked by BuildPhysicsTable(). + void PrintInfoDefinition(); + // Print out of the class parameters - G4double GetMeanFreePath(const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition ); - // It returns the MeanFreePath of the process for the current track : - // (energy, material) - // The previousStepSize and G4ForceCondition* are not used. - // This function overloads a virtual function of the base class. - // It is invoked by the ProcessManager of the Particle. +protected: - G4VParticleChange *PostStepDoIt(const G4Track& track, - const G4Step& Step ); - // It computes the final state of the process (at end of step), - // returned as a ParticleChange object. - // This function overloads a virtual function of the base class. - // It is invoked by the ProcessManager of the Particle. + const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); - G4double GetLambda(G4double KineticEnergy, const G4MaterialCutsCouple* couple); - // It returns the MeanFreePath of the process for a (energy, material) + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dp); - protected: // with description +private: - virtual G4double ComputeRestrictedMeandEdx( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - const G4Material* material, - G4double DeltaThreshold); - // computes restricted mean dE/dx in Geant4 internal units. + void InitialiseProcess(); - virtual G4double ComputeCrossSectionPerAtom( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double DeltaThreshold); - // computes total cross section per atom in Geant4 internal units. + // hide assignment operator + G4eIonisation & operator=(const G4eIonisation &right); + G4eIonisation(const G4eIonisation&); - protected: - - virtual G4double SecondaryEnergyThreshold(size_t index); - - G4PhysicsTable* theMeanFreePathTable; - - private: - - // hide assignment operator - G4eIonisation & operator=(const G4eIonisation &right); - G4eIonisation(const G4eIonisation&); - - private: - - static G4double LowerBoundLambda; // binning for mean free path table - static G4double UpperBoundLambda; - static G4int NbinLambda; - - G4double LowestKineticEnergy; // binning for dE/dx table - G4double HighestKineticEnergy; - G4int TotBin; - - const std::vector* secondaryEnergyCuts; - - public: // with description - - static void SetLowerBoundLambda(G4double val); - static void SetUpperBoundLambda(G4double val); - static void SetNbinLambda(G4int n); - // set the parameters of the mean free path table. - - static G4double GetLowerBoundLambda(); - static G4double GetUpperBoundLambda(); - static G4int GetNbinLambda(); - // get the parameters of the mean free path table. + const G4ParticleDefinition* theElectron; + G4VEmFluctuationModel* flucModel; + G4bool subCutoff; + G4bool isElectron; + G4bool isInitialised; }; +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4eIonisation::MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, + G4double cut) +{ + G4double x = cut; + if(isElectron) x += cut; + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4bool G4eIonisation::IsApplicable(const G4ParticleDefinition& p) +{ + return (&p == G4Electron::Electron() || &p == G4Positron::Positron()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4eIonisation::MaxSecondaryEnergy(const G4DynamicParticle* dp) +{ + G4double tmax = dp->GetKineticEnergy(); + if(isElectron) tmax *= 0.5; + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VSubCutoffProcessor.hh" + +inline std::vector* G4eIonisation::SecondariesAlongStep( + const G4Step& step, + G4double& tmax, + G4double& eloss, + G4double& kinEnergy) +{ + std::vector* newp = 0; + if(subCutoff) { + G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); + if (sp) { + G4VEmModel* model = SelectModel(kinEnergy); + newp = sp->SampleSecondaries(step,tmax,eloss,model); + } + } + return newp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VEmModel.hh" + +inline void G4eIonisation::SecondariesPostStep( + G4VEmModel* model, + const G4MaterialCutsCouple* couple, + const G4DynamicParticle* dp, + G4double& tcut, + G4double& kinEnergy) +{ + G4DynamicParticle* delta = model->SampleSecondary(couple, dp, tcut, kinEnergy); + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(delta); + G4ThreeVector finalP = dp->GetMomentum(); + kinEnergy -= delta->GetKineticEnergy(); + finalP -= delta->GetMomentum(); + finalP = finalP.unit(); + aParticleChange.SetMomentumDirectionChange(finalP); +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -#include "G4eIonisation.icc" - #endif - diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation52.hh b/source/processes/electromagnetic/standard/include/G4eIonisation52.hh new file mode 100644 index 0000000000..54d5af070e --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4eIonisation52.hh @@ -0,0 +1,176 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4eIonisation52.hh,v 1.1 2003/08/08 11:30:01 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//--------------- G4eIonisation52 physics process -------------------------------- +// by Laszlo Urban, 20 March 1997 +// +// 10-02-00 modifications , new e.m. structure, L.Urban +// 03-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 13-08-01 new function ComputeRestrictedMeandEdx() (mma) +// 19-09-01 come back to previous ProcessName "eIoni" +// 29-10-01 all static functions no more inlined (mma) +// 15-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +// +//------------------------------------------------------------------------------ + +// Class description +// +// This class manages the ionisation process for e-/e+ +// it inherites from G4VContinuousDiscreteProcess via G4VeEnergyLoss. +// +// Class description - end + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4eIonisation52_h +#define G4eIonisation52_h 1 + +#include "G4VeEnergyLoss.hh" +#include "G4MaterialCutsCouple.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4eIonisation52 : public G4VeEnergyLoss + +{ + public: // with description + + G4eIonisation52(const G4String& processName = "eIoni"); + + ~G4eIonisation52(); + + G4bool IsApplicable(const G4ParticleDefinition&); + // return true for e+/e-, false otherwise + + void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); + // this function overloads a virtual function of the base class. + // It is invoked by the G4ParticleWithCuts::SetCut() method. + // It invokes BuildLambdaTable(), BuildLossTable(), BuildDEDXTable() + + void BuildLossTable(const G4ParticleDefinition& aParticleType); + // build the dE/dx tables due to the ionisation, for every materials. + // (restricted stopping power, Berger-Seltzer formula) + + void BuildLambdaTable(const G4ParticleDefinition& aParticleType); + // build mean free path tables for the delta rays production. + // the tables are built for every materials. + + G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // store eLoss and MeanFreePath tables into an external file + // specified by 'directory' (must exist before invokation) + + G4bool RetrievePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // retrieve eLoss and MeanFreePath tables from an external file + // specified by 'directory' + + void PrintInfoDefinition(); + // Print few lines of informations about the process: validity range, + // origine ..etc.. + // Invoked by BuildPhysicsTable(). + + G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition ); + // It returns the MeanFreePath of the process for the current track : + // (energy, material) + // The previousStepSize and G4ForceCondition* are not used. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + G4VParticleChange *PostStepDoIt(const G4Track& track, + const G4Step& Step ); + // It computes the final state of the process (at end of step), + // returned as a ParticleChange object. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + G4double GetLambda(G4double KineticEnergy, const G4MaterialCutsCouple* couple); + // It returns the MeanFreePath of the process for a (energy, material) + + protected: // with description + + virtual G4double ComputeRestrictedMeandEdx( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + const G4Material* material, + G4double DeltaThreshold); + // computes restricted mean dE/dx in Geant4 internal units. + + virtual G4double ComputeCrossSectionPerAtom( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double DeltaThreshold); + // computes total cross section per atom in Geant4 internal units. + + protected: + + virtual G4double SecondaryEnergyThreshold(size_t index); + + G4PhysicsTable* theMeanFreePathTable; + + private: + + // hide assignment operator + G4eIonisation52 & operator=(const G4eIonisation52 &right); + G4eIonisation52(const G4eIonisation52&); + + private: + + static G4double LowerBoundLambda; // binning for mean free path table + static G4double UpperBoundLambda; + static G4int NbinLambda; + + G4double LowestKineticEnergy; // binning for dE/dx table + G4double HighestKineticEnergy; + G4int TotBin; + + const std::vector* secondaryEnergyCuts; + + public: // with description + + static void SetLowerBoundLambda(G4double val); + static void SetUpperBoundLambda(G4double val); + static void SetNbinLambda(G4int n); + // set the parameters of the mean free path table. + + static G4double GetLowerBoundLambda(); + static G4double GetUpperBoundLambda(); + static G4int GetNbinLambda(); + // get the parameters of the mean free path table. + +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4eIonisation52.icc" + +#endif + diff --git a/source/processes/electromagnetic/standard/include/G4eIonisation.icc b/source/processes/electromagnetic/standard/include/G4eIonisation52.icc similarity index 84% rename from source/processes/electromagnetic/standard/include/G4eIonisation.icc rename to source/processes/electromagnetic/standard/include/G4eIonisation52.icc index 29cd119581..adf77a7567 100644 --- a/source/processes/electromagnetic/standard/include/G4eIonisation.icc +++ b/source/processes/electromagnetic/standard/include/G4eIonisation52.icc @@ -21,24 +21,25 @@ // ******************************************************************** // // -// $Id: G4eIonisation.icc,v 1.11 2003/01/17 18:55:43 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4eIonisation52.icc,v 1.1 2003/08/08 11:30:01 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -//----------------- G4eIonisation physics process ------------------------------ +//----------------- G4eIonisation52 physics process ------------------------------ // by Laszlo Urban, 20 March 1997 //------------------------------------------------------------------------------ // // 24-11-97 correction on MeanFreePath for KinEnergy > HighestLimit // 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation // 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) // //------------------------------------------------------------------------------ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4bool G4eIonisation::IsApplicable(const G4ParticleDefinition& particle) +inline G4bool G4eIonisation52::IsApplicable(const G4ParticleDefinition& particle) { return( (&particle == G4Electron::Electron()) ||(&particle == G4Positron::Positron()) ); @@ -46,7 +47,7 @@ inline G4bool G4eIonisation::IsApplicable(const G4ParticleDefinition& particle) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4eIonisation::GetMeanFreePath(const G4Track& track, G4double, +inline G4double G4eIonisation52::GetMeanFreePath(const G4Track& track, G4double, G4ForceCondition*) { G4double KineticEnergy = track.GetDynamicParticle()->GetKineticEnergy(); @@ -67,7 +68,7 @@ inline G4double G4eIonisation::GetMeanFreePath(const G4Track& track, G4double, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... inline -G4double G4eIonisation::GetLambda(G4double KineticEnergy, const G4MaterialCutsCouple* couple) +G4double G4eIonisation52::GetLambda(G4double KineticEnergy, const G4MaterialCutsCouple* couple) { G4bool isOut; return (*theMeanFreePathTable)[couple->GetIndex()]-> @@ -76,7 +77,7 @@ G4double G4eIonisation::GetLambda(G4double KineticEnergy, const G4MaterialCutsCo //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4eIonisation::SecondaryEnergyThreshold(size_t index) +inline G4double G4eIonisation52::SecondaryEnergyThreshold(size_t index) { return (*secondaryEnergyCuts)[index]; } diff --git a/source/processes/electromagnetic/standard/include/G4eIonisationSTD.hh b/source/processes/electromagnetic/standard/include/G4eIonisationSTD.hh deleted file mode 100644 index 75f2ab1f50..0000000000 --- a/source/processes/electromagnetic/standard/include/G4eIonisationSTD.hh +++ /dev/null @@ -1,197 +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. * -// ******************************************************************** -// -// -// ------------------------------------------------------------------- -// -// GEANT4 Class header file -// -// -// File name: G4eIonisationSTD -// -// Author: Laszlo Urban -// -// Creation date: 20.03.1997 -// -// Modifications: -// -// 10-02-00 modifications , new e.m. structure, L.Urban -// 03-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 13-08-01 new function ComputeRestrictedMeandEdx() (mma) -// 19-09-01 come back to previous ProcessName "eIoni" -// 29-10-01 all static functions no more inlined (mma) -// 07-01-02 new design of em processes (V.Ivanchenko) -// 26-12-02 Secondary production moved to derived classes (VI) -// 24-01-03 Make models region aware (V.Ivanchenko) -// 05-02-03 Fix compilation warnings (V.Ivanchenko) -// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) -// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko) -// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) -// -// -// Class Description: -// -// This class manages the ionisation process for e-/e+ -// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. -// - -// ------------------------------------------------------------------- -// - -#ifndef G4eIonisationSTD_h -#define G4eIonisationSTD_h 1 - -#include "G4VEnergyLossSTD.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" - -class G4Material; -class G4ParticleDefinition; -class G4VEmFluctuationModel; - -class G4eIonisationSTD : public G4VEnergyLossSTD -{ - -public: - - G4eIonisationSTD(const G4String& name = "eIoni"); - - ~G4eIonisationSTD(); - - G4bool IsApplicable(const G4ParticleDefinition& p); - - virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*, G4double cut); - - virtual std::vector* SecondariesAlongStep( - const G4Step&, - G4double&, - G4double&, - G4double&); - - virtual void SecondariesPostStep( - G4VEmModel*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double&, - G4double&); - - void SetSubCutoff(G4bool val); - - void PrintInfoDefinition(); - // Print out of the class parameters - -protected: - - const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); - - virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dp); - -private: - - void InitialiseProcess(); - - // hide assignment operator - G4eIonisationSTD & operator=(const G4eIonisationSTD &right); - G4eIonisationSTD(const G4eIonisationSTD&); - - const G4ParticleDefinition* theElectron; - G4VEmFluctuationModel* flucModel; - - G4bool subCutoff; - G4bool isElectron; - G4bool isInitialised; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4eIonisationSTD::MinPrimaryEnergy(const G4ParticleDefinition*, - const G4Material*, - G4double cut) -{ - G4double x = cut; - if(isElectron) x += cut; - return x; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4bool G4eIonisationSTD::IsApplicable(const G4ParticleDefinition& p) -{ - return (&p == G4Electron::Electron() || &p == G4Positron::Positron()); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4eIonisationSTD::MaxSecondaryEnergy(const G4DynamicParticle* dp) -{ - G4double tmax = dp->GetKineticEnergy(); - if(isElectron) tmax *= 0.5; - return tmax; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VSubCutoffProcessor.hh" - -inline std::vector* G4eIonisationSTD::SecondariesAlongStep( - const G4Step& step, - G4double& tmax, - G4double& eloss, - G4double& kinEnergy) -{ - std::vector* newp = 0; - if(subCutoff) { - G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); - if (sp) { - G4VEmModel* model = SelectModel(kinEnergy); - newp = sp->SampleSecondaries(step,tmax,eloss,model); - } - } - return newp; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VEmModel.hh" - -inline void G4eIonisationSTD::SecondariesPostStep( - G4VEmModel* model, - const G4MaterialCutsCouple* couple, - const G4DynamicParticle* dp, - G4double& tcut, - G4double& kinEnergy) -{ - G4DynamicParticle* delta = model->SampleSecondary(couple, dp, tcut, kinEnergy); - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(delta); - G4ThreeVector finalP = dp->GetMomentum(); - kinEnergy -= delta->GetKineticEnergy(); - finalP -= delta->GetMomentum(); - finalP = finalP.unit(); - aParticleChange.SetMomentumDirectionChange(finalP); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#endif diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh index 252d81970e..7f10188c65 100644 --- a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh +++ b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.hh @@ -22,7 +22,7 @@ // // // $Id: G4eplusAnnihilation.hh,v 1.10 2002/04/09 17:34:41 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc index 961061ce45..9a8d68c9d7 100644 --- a/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc +++ b/source/processes/electromagnetic/standard/include/G4eplusAnnihilation.icc @@ -22,7 +22,7 @@ // // // $Id: G4eplusAnnihilation.icc,v 1.8 2001/09/17 17:07:11 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation.hh b/source/processes/electromagnetic/standard/include/G4hIonisation.hh index 4c979663c4..01fceb8430 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4hIonisation.hh @@ -20,13 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4hIonisation.hh,v 1.24 2003/11/12 16:23:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4hIonisation.hh,v 1.22 2003/06/16 17:02:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- // -// --------------- G4hIonisation physics process ------------------------------- -// by Laszlo Urban, 30 May 1997 -// ----------------------------------------------------------------------------- +// GEANT4 Class header file +// +// +// File name: G4hIonisation +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1997 +// +// Modifications: // // corrected by L.Urban on 24/09/97 // corrected by L.Urban on 13/01/98 @@ -36,151 +44,172 @@ // 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) // 19-09-01 come back to previous process name "hIoni" // 29-10-01 all static functions no more inlined -// 15-01-03 Migrade to cut per region (V.Ivanchenko) +// 07-01-02 new design of em processes (V.Ivanchenko) +// 26-12-02 secondary production moved to derived classes (VI) +// 24-01-03 Make models region aware (V.Ivanchenko) +// 05-02-03 Fix compilation warnings (V.Ivanchenko) +// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) +// 15-02-03 Add control on delta pointer (V.Ivanchenko) +// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko) +// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) +// 16-06-03 ShortLived are not applicable any more (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // -// ----------------------------------------------------------------------------- - -// Class description +// Class Description: // // This class manages the ionisation process for hadrons. -// it inherites from G4VContinuousDiscreteProcess via G4VhEnergyLoss. +// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. // -// Class description - end -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// ------------------------------------------------------------------- +// #ifndef G4hIonisation_h #define G4hIonisation_h 1 -#include "G4VhEnergyLoss.hh" -#include "G4MaterialCutsCouple.hh" +#include "G4VEnergyLossProcess.hh" +#include "G4Electron.hh" +#include "G4Positron.hh" +#include "globals.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class G4hIonisation : public G4VhEnergyLoss +class G4Material; +class G4VEmFluctuationModel; +class G4hIonisation : public G4VEnergyLossProcess { - public: // with description - G4hIonisation(const G4String& processName = "hIoni"); +public: - ~G4hIonisation(); + G4hIonisation(const G4String& name = "hIoni"); - G4bool IsApplicable(const G4ParticleDefinition&); - // return true for charged particles, false otherwise + ~G4hIonisation(); - void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); - // this function overloads a virtual function of the base class. - // It is invoked by the G4ParticleWithCuts::SetCut() method. - // It invokes BuildLambdaTable(), BuildLossTable(), BuildDEDXTable() + G4bool IsApplicable(const G4ParticleDefinition& p); - void BuildLossTable(const G4ParticleDefinition& aParticleType); - // build the dE/dx tables due to the ionisation, for every materials. - // (restricted stopping power, Bethe-Bloch formula) + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, + const G4Material*, G4double cut); - void BuildLambdaTable(const G4ParticleDefinition& aParticleType); - // build mean free path tables for the delta rays production. - // the tables are built for every materials. + virtual std::vector* SecondariesAlongStep( + const G4Step&, + G4double&, + G4double&, + G4double&); - G4bool StorePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // store eLoss and MeanFreePath tables into an external file - // specified by 'directory' (must exist before invokation) + virtual void SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double&, + G4double&); - G4bool RetrievePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // retrieve eLoss and MeanFreePath tables from an external file - // specified by 'directory' + void SetSubCutoff(G4bool val); - virtual void PrintInfoDefinition(); - // Print few lines of informations about the process: validity range, - // origine ..etc.. - // Invoked by BuildPhysicsTable(). + void PrintInfoDefinition(); + // Print out of the class parameters - G4double GetMeanFreePath(const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition ); - // It returns the MeanFreePath of the process for the current track : - // (energy, material) - // The previousStepSize and G4ForceCondition* are not used. - // This function overloads a virtual function of the base class. - // It is invoked by the ProcessManager of the Particle. +protected: - G4VParticleChange *PostStepDoIt(const G4Track& track, - const G4Step& Step ); - // It computes the final state of the process (at end of step), - // returned as a ParticleChange object. - // This function overloads a virtual function of the base class. - // It is invoked by the ProcessManager of the Particle. + virtual const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); + virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); - protected: // with description +private: - virtual G4double ComputeRestrictedMeandEdx( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - const G4Material* material, - G4double DeltaThreshold); - // computes restricted mean dE/dx in Geant4 internal units. + void InitialiseProcess(); - virtual G4double ComputeCrossSectionPerAtom( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double DeltaThreshold); - // computes total cross section per atom in Geant4 internal units. + // hide assignment operator + G4hIonisation & operator=(const G4hIonisation &right); + G4hIonisation(const G4hIonisation&); - protected: + G4double mass; + G4double ratio; - virtual G4double SecondaryEnergyThreshold(size_t index); + const G4ParticleDefinition* theParticle; + const G4ParticleDefinition* theBaseParticle; + G4VEmFluctuationModel* flucModel; - G4PhysicsTable* theMeanFreePathTable; - - private: - - // hide assignment operator - G4hIonisation & operator=(const G4hIonisation &right); - G4hIonisation(const G4hIonisation&); - - private: - - static G4double LowerBoundLambda; // bining for lambda table - static G4double UpperBoundLambda; - static G4int NbinLambda; - - G4double LowestKineticEnergy; // binning for dE/dx table - G4double HighestKineticEnergy; - G4int TotBin; - - G4double Tmincut; // min energy of d-rays - G4double initialMass; // mass for Lambda table - - const std::vector* secondaryEnergyCuts; - - public: // with description - - static void SetLowerBoundLambda(G4double val); - static void SetUpperBoundLambda(G4double val); - static void SetNbinLambda(G4int n); - // set the parameters of the mean free path table. - - static G4double GetLowerBoundLambda(); - static G4double GetUpperBoundLambda(); - static G4int GetNbinLambda(); - // get the parameters of the mean free path table. + G4bool subCutoff; + G4bool isInitialised; }; -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "G4hIonisation.icc" +inline G4bool G4hIonisation::IsApplicable(const G4ParticleDefinition& p) +{ + return (p.GetPDGCharge() != 0.0 && + p.GetPDGMass() > 10.0*MeV && + !p.IsShortLived()); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4hIonisation::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 + sqrt((1. + x)*(1. + x*y*y)); + return mass*(g - 1.0); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4hIonisation::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) +{ + G4double gamma= dynParticle->GetKineticEnergy()/mass + 1.0; + G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / + (1. + 2.0*gamma*ratio + ratio*ratio); + + return tmax; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VSubCutoffProcessor.hh" + +inline std::vector* G4hIonisation::SecondariesAlongStep( + const G4Step& step, + G4double& tmax, + G4double& eloss, + G4double& kinEnergy) +{ + std::vector* newp = 0; + if(subCutoff) { + G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); + if (sp) { + G4VEmModel* model = SelectModel(kinEnergy); + newp = sp->SampleSecondaries(step,tmax,eloss,model); + } + } + return newp; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4VEmModel.hh" + +inline void G4hIonisation::SecondariesPostStep( + G4VEmModel* model, + const G4MaterialCutsCouple* couple, + const G4DynamicParticle* dp, + G4double& tcut, + G4double& kinEnergy) +{ + G4DynamicParticle* delta = model->SampleSecondary(couple, dp, tcut, kinEnergy); + if (delta) { + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(delta); + G4ThreeVector finalP = dp->GetMomentum(); + kinEnergy -= delta->GetKineticEnergy(); + finalP -= delta->GetMomentum(); + finalP = finalP.unit(); + aParticleChange.SetMomentumDirectionChange(finalP); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #endif - - - - - - - - diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation52.hh b/source/processes/electromagnetic/standard/include/G4hIonisation52.hh new file mode 100644 index 0000000000..2139a9afa5 --- /dev/null +++ b/source/processes/electromagnetic/standard/include/G4hIonisation52.hh @@ -0,0 +1,187 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4hIonisation52.hh,v 1.1 2003/08/08 11:30:01 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// --------------- G4hIonisation52 physics process ------------------------------- +// by Laszlo Urban, 30 May 1997 +// ----------------------------------------------------------------------------- +// +// corrected by L.Urban on 24/09/97 +// corrected by L.Urban on 13/01/98 +// bugs fixed by L.Urban on 02/02/99 +// 10/02/00 modifications , new e.m. structure, L.Urban +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 19-09-01 come back to previous process name "hIoni" +// 29-10-01 all static functions no more inlined +// 15-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +// +// ----------------------------------------------------------------------------- + +// Class description +// +// This class manages the ionisation process for hadrons. +// it inherites from G4VContinuousDiscreteProcess via G4VhEnergyLoss. +// +// Class description - end + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#ifndef G4hIonisation52_h +#define G4hIonisation52_h 1 + +#include "G4VhEnergyLoss.hh" +#include "G4MaterialCutsCouple.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4hIonisation52 : public G4VhEnergyLoss + +{ + public: // with description + + G4hIonisation52(const G4String& processName = "hIoni"); + + ~G4hIonisation52(); + + G4bool IsApplicable(const G4ParticleDefinition&); + // return true for charged particles, false otherwise + + void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); + // this function overloads a virtual function of the base class. + // It is invoked by the G4ParticleWithCuts::SetCut() method. + // It invokes BuildLambdaTable(), BuildLossTable(), BuildDEDXTable() + + void BuildLossTable(const G4ParticleDefinition& aParticleType); + // build the dE/dx tables due to the ionisation, for every materials. + // (restricted stopping power, Bethe-Bloch formula) + + void BuildLambdaTable(const G4ParticleDefinition& aParticleType); + // build mean free path tables for the delta rays production. + // the tables are built for every materials. + + G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // store eLoss and MeanFreePath tables into an external file + // specified by 'directory' (must exist before invokation) + + G4bool RetrievePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // retrieve eLoss and MeanFreePath tables from an external file + // specified by 'directory' + + virtual void PrintInfoDefinition(); + // Print few lines of informations about the process: validity range, + // origine ..etc.. + // Invoked by BuildPhysicsTable(). + + G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition ); + // It returns the MeanFreePath of the process for the current track : + // (energy, material) + // The previousStepSize and G4ForceCondition* are not used. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + G4VParticleChange *PostStepDoIt(const G4Track& track, + const G4Step& Step ); + // It computes the final state of the process (at end of step), + // returned as a ParticleChange object. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + + protected: // with description + + virtual G4double ComputeRestrictedMeandEdx( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + const G4Material* material, + G4double DeltaThreshold); + // computes restricted mean dE/dx in Geant4 internal units. + + virtual G4double ComputeCrossSectionPerAtom( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double DeltaThreshold); + // computes total cross section per atom in Geant4 internal units. + + protected: + + virtual G4double SecondaryEnergyThreshold(size_t index); + + G4PhysicsTable* theMeanFreePathTable; + + private: + + // hide assignment operator + G4hIonisation52 & operator=(const G4hIonisation52 &right); + G4hIonisation52(const G4hIonisation52&); + + private: + + static G4double LowerBoundLambda; // bining for lambda table + static G4double UpperBoundLambda; + static G4int NbinLambda; + + G4double LowestKineticEnergy; // binning for dE/dx table + G4double HighestKineticEnergy; + G4int TotBin; + + G4double Tmincut; // min energy of d-rays + G4double initialMass; // mass for Lambda table + + const std::vector* secondaryEnergyCuts; + + public: // with description + + static void SetLowerBoundLambda(G4double val); + static void SetUpperBoundLambda(G4double val); + static void SetNbinLambda(G4int n); + // set the parameters of the mean free path table. + + static G4double GetLowerBoundLambda(); + static G4double GetUpperBoundLambda(); + static G4int GetNbinLambda(); + // get the parameters of the mean free path table. +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4hIonisation52.icc" + +#endif + + + + + + + + diff --git a/source/processes/electromagnetic/standard/include/G4hIonisation.icc b/source/processes/electromagnetic/standard/include/G4hIonisation52.icc similarity index 88% rename from source/processes/electromagnetic/standard/include/G4hIonisation.icc rename to source/processes/electromagnetic/standard/include/G4hIonisation52.icc index 3df70d33e0..9b632a5f03 100644 --- a/source/processes/electromagnetic/standard/include/G4hIonisation.icc +++ b/source/processes/electromagnetic/standard/include/G4hIonisation52.icc @@ -21,11 +21,11 @@ // ******************************************************************** // // -// $Id: G4hIonisation.icc,v 1.14 2003/06/18 13:48:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4hIonisation52.icc,v 1.1 2003/08/08 11:30:01 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -//------------------ G4hIonisation physics process ----------------------------- +//------------------ G4hIonisation52 physics process ----------------------------- // by Laszlo Urban, 30 May 1997 //------------------------------------------------------------------------------ // @@ -35,13 +35,14 @@ // 09-04-02: e+- are not applicable (V.Ivanchenko) // 15-01-03: Migrade to cut per region (V.Ivanchenko) // 16-06-03: ShortLived are not applicable any more (V.Ivanchenko) +// 08-08-03: This class is frozen at the release 5.2 (V.Ivanchenko) // //------------------------------------------------------------------------------ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4bool G4hIonisation::IsApplicable( +inline G4bool G4hIonisation52::IsApplicable( const G4ParticleDefinition& particle) { return(particle.GetPDGCharge() != 0. && @@ -51,7 +52,7 @@ inline G4bool G4hIonisation::IsApplicable( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4hIonisation::GetMeanFreePath(const G4Track& track, G4double, +inline G4double G4hIonisation52::GetMeanFreePath(const G4Track& track, G4double, G4ForceCondition*) { const G4DynamicParticle* dynParticle = track.GetDynamicParticle(); @@ -74,7 +75,7 @@ inline G4double G4hIonisation::GetMeanFreePath(const G4Track& track, G4double, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4hIonisation::SecondaryEnergyThreshold(size_t index) +inline G4double G4hIonisation52::SecondaryEnergyThreshold(size_t index) { return std::max((*secondaryEnergyCuts)[index],Tmincut); } diff --git a/source/processes/electromagnetic/standard/include/G4hIonisationSTD.hh b/source/processes/electromagnetic/standard/include/G4hIonisationSTD.hh deleted file mode 100644 index a0de737390..0000000000 --- a/source/processes/electromagnetic/standard/include/G4hIonisationSTD.hh +++ /dev/null @@ -1,211 +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. * -// ******************************************************************** -// -// -// ------------------------------------------------------------------- -// -// GEANT4 Class header file -// -// -// File name: G4hIonisationSTD -// -// Author: Laszlo Urban -// -// Creation date: 30.05.1997 -// -// Modifications: -// -// corrected by L.Urban on 24/09/97 -// corrected by L.Urban on 13/01/98 -// bugs fixed by L.Urban on 02/02/99 -// 10/02/00 modifications , new e.m. structure, L.Urban -// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) -// 19-09-01 come back to previous process name "hIoni" -// 29-10-01 all static functions no more inlined -// 07-01-02 new design of em processes (V.Ivanchenko) -// 26-12-02 secondary production moved to derived classes (VI) -// 24-01-03 Make models region aware (V.Ivanchenko) -// 05-02-03 Fix compilation warnings (V.Ivanchenko) -// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) -// 15-02-03 Add control on delta pointer (V.Ivanchenko) -// 23-05-03 Add fluctuation model as a member function (V.Ivanchenko) -// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) -// 16-06-03 ShortLived are not applicable any more (V.Ivanchenko) -// -// Class Description: -// -// This class manages the ionisation process for hadrons. -// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLoss. -// - -// ------------------------------------------------------------------- -// - -#ifndef G4hIonisationSTD_h -#define G4hIonisationSTD_h 1 - -#include "G4VEnergyLossSTD.hh" -#include "G4Electron.hh" -#include "G4Positron.hh" -#include "globals.hh" - -class G4Material; -class G4VEmFluctuationModel; - -class G4hIonisationSTD : public G4VEnergyLossSTD -{ - -public: - - G4hIonisationSTD(const G4String& name = "hIoni"); - - ~G4hIonisationSTD(); - - G4bool IsApplicable(const G4ParticleDefinition& p); - - virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p, - const G4Material*, G4double cut); - - virtual std::vector* SecondariesAlongStep( - const G4Step&, - G4double&, - G4double&, - G4double&); - - virtual void SecondariesPostStep( - G4VEmModel*, - const G4MaterialCutsCouple*, - const G4DynamicParticle*, - G4double&, - G4double&); - - void SetSubCutoff(G4bool val); - - void PrintInfoDefinition(); - // Print out of the class parameters - -protected: - - virtual const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); - - virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle); - -private: - - void InitialiseProcess(); - - // hide assignment operator - G4hIonisationSTD & operator=(const G4hIonisationSTD &right); - G4hIonisationSTD(const G4hIonisationSTD&); - - G4double mass; - G4double ratio; - - const G4ParticleDefinition* theParticle; - const G4ParticleDefinition* theBaseParticle; - G4VEmFluctuationModel* flucModel; - - G4bool subCutoff; - G4bool isInitialised; -}; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4bool G4hIonisationSTD::IsApplicable(const G4ParticleDefinition& p) -{ - return (p.GetPDGCharge() != 0.0 && - p.GetPDGMass() > 10.0*MeV && - !p.IsShortLived()); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4hIonisationSTD::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 + sqrt((1. + x)*(1. + x*y*y)); - return mass*(g - 1.0); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4hIonisationSTD::MaxSecondaryEnergy(const G4DynamicParticle* dynParticle) -{ - G4double gamma= dynParticle->GetKineticEnergy()/mass + 1.0; - G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / - (1. + 2.0*gamma*ratio + ratio*ratio); - - return tmax; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VSubCutoffProcessor.hh" - -inline std::vector* G4hIonisationSTD::SecondariesAlongStep( - const G4Step& step, - G4double& tmax, - G4double& eloss, - G4double& kinEnergy) -{ - std::vector* newp = 0; - if(subCutoff) { - G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); - if (sp) { - G4VEmModel* model = SelectModel(kinEnergy); - newp = sp->SampleSecondaries(step,tmax,eloss,model); - } - } - return newp; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4VEmModel.hh" - -inline void G4hIonisationSTD::SecondariesPostStep( - G4VEmModel* model, - const G4MaterialCutsCouple* couple, - const G4DynamicParticle* dp, - G4double& tcut, - G4double& kinEnergy) -{ - G4DynamicParticle* delta = model->SampleSecondary(couple, dp, tcut, kinEnergy); - if (delta) { - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(delta); - G4ThreeVector finalP = dp->GetMomentum(); - kinEnergy -= delta->GetKineticEnergy(); - finalP -= delta->GetMomentum(); - finalP = finalP.unit(); - aParticleChange.SetMomentumDirectionChange(finalP); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#endif diff --git a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh index 86e86b52d5..dce1d7a3a3 100644 --- a/source/processes/electromagnetic/standard/include/G4ionIonisation.hh +++ b/source/processes/electromagnetic/standard/include/G4ionIonisation.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4ionIonisation.hh,v 1.22 2003/11/12 16:23:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -40,6 +42,9 @@ // 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) // 15-02-03 Add control on delta pointer (V.Ivanchenko) // 23-05-03 Add fluctuation model as a member function (V.Ivanchenko) +// 03-08-03 Add effective charge and saturation of tmax (V.Ivanchenko) +// 12-11-03 Fix problem of negative effective charge (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // // Class Description: // @@ -53,12 +58,12 @@ #ifndef G4ionIonisation_h #define G4ionIonisation_h 1 -#include "G4VEnergyLossSTD.hh" +#include "G4VEnergyLossProcess.hh" class G4Material; class G4VEmFluctuationModel; -class G4ionIonisation : public G4VEnergyLossSTD +class G4ionIonisation : public G4VEnergyLossProcess { public: @@ -90,6 +95,12 @@ public: void PrintInfoDefinition(); // Print out of the class parameters + G4double EffectiveChargeSquare(const G4Track& track); + + G4double EffectiveCharge(const G4ParticleDefinition* p, + const G4Material* material, + G4double kineticEnergy); + protected: const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p); @@ -108,9 +119,17 @@ private: G4ionIonisation & operator=(const G4ionIonisation &right); G4ionIonisation(const G4ionIonisation&); + // cash + const G4Material* theMaterial; + const G4ParticleDefinition* currentParticle; const G4ParticleDefinition* theParticle; const G4ParticleDefinition* theBaseParticle; G4VEmFluctuationModel* flucModel; + + G4double chargeCorrection; + G4double chargeLowLimit; + G4double energyLowLimit; + G4bool subCutoff; }; @@ -119,20 +138,18 @@ private: inline G4bool G4ionIonisation::IsApplicable(const G4ParticleDefinition& p) { - return (p.GetPDGCharge() != 0.0 && p.GetParticleType() == "nucleus"); + return (p.GetPDGCharge() != 0.0 && !p.IsShortLived() && + (p.GetParticleType() == "nucleus" || p.GetParticleType() == "static_nucleus")); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... inline G4double G4ionIonisation::MinPrimaryEnergy( - const G4ParticleDefinition* p, const G4Material*, G4double cut) + const G4ParticleDefinition*, const G4Material*, G4double cut) { - G4double mass = p->GetPDGMass(); G4double x = 0.5*cut/electron_mass_c2; - // G4double y = electron_mass_c2/mass; - // G4double g = x*y + sqrt((1. + x)*(1. + x*y*y)); G4double g = sqrt(1. + x); - return mass*(g - 1.0); + return proton_mass_c2*(g - 1.0); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -141,9 +158,8 @@ inline G4double G4ionIonisation::MaxSecondaryEnergy(const G4DynamicParticle* dyn { G4double mass = dynParticle->GetMass(); G4double gamma = dynParticle->GetKineticEnergy()/mass + 1.0; - G4double ratio = electron_mass_c2/mass; - G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / - (1. + 2.0*gamma*ratio + ratio*ratio); + G4double tmax = electron_mass_c2*std::min(2.0*(gamma*gamma - 1.), + 51200.*pow(proton_mass_c2/mass,0.66667)); return tmax; } @@ -154,16 +170,14 @@ inline G4double G4ionIonisation::GetMeanFreePath(const G4Track& track, G4double step, G4ForceCondition* cond) { - const G4DynamicParticle* dp = track.GetDynamicParticle(); - G4double mRatio = proton_mass_c2/dp->GetMass(); - G4double q = dp->GetCharge()/eplus; - G4double q_2 = q*q; + G4double mRatio = proton_mass_c2/track.GetDynamicParticle()->GetMass(); + G4double q_2 = EffectiveChargeSquare(track); SetMassRatio(mRatio); SetReduceFactor(1.0/(q_2*mRatio)); SetChargeSquare(q_2); SetChargeSquareRatio(q_2); - return G4VEnergyLossSTD::GetMeanFreePath(track, step, cond); + return G4VEnergyLossProcess::GetMeanFreePath(track, step, cond); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -174,16 +188,18 @@ inline std::vector* G4ionIonisation::SecondariesAlongStep( const G4Step& step, G4double& tmax, G4double& eloss, - G4double& kinEnergy) + G4double& scaledEnergy) { std::vector* newp = 0; if(subCutoff) { G4VSubCutoffProcessor* sp = SubCutoffProcessor(CurrentMaterialCutsCoupleIndex()); if (sp) { - G4VEmModel* model = SelectModel(kinEnergy); + G4VEmModel* model = SelectModel(scaledEnergy); newp = sp->SampleSecondaries(step,tmax,eloss,model); } } + G4double e = step.GetTrack()->GetKineticEnergy() - eloss; + aParticleChange.SetChargeChange(EffectiveCharge(currentParticle,theMaterial,e)); return newp; } @@ -204,6 +220,7 @@ inline void G4ionIonisation::SecondariesPostStep( aParticleChange.AddSecondary(delta); G4ThreeVector finalP = dp->GetMomentum(); kinEnergy -= delta->GetKineticEnergy(); + aParticleChange.SetChargeChange(EffectiveCharge(currentParticle,theMaterial,kinEnergy)); finalP -= delta->GetMomentum(); finalP = finalP.unit(); aParticleChange.SetMomentumDirectionChange(finalP); @@ -212,4 +229,17 @@ inline void G4ionIonisation::SecondariesPostStep( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +inline G4double G4ionIonisation::EffectiveChargeSquare(const G4Track& track) +{ + currentParticle = track.GetDefinition(); + theMaterial = track.GetMaterial(); + G4double kinEnergy = track.GetKineticEnergy(); + G4double charge = EffectiveCharge(currentParticle,theMaterial,kinEnergy) + *chargeCorrection/eplus; + + return charge*charge; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + #endif diff --git a/source/processes/electromagnetic/standard/src/G4AnnihiToMuPair.cc b/source/processes/electromagnetic/standard/src/G4AnnihiToMuPair.cc index 8a46321cac..b1c8a74bee 100644 --- a/source/processes/electromagnetic/standard/src/G4AnnihiToMuPair.cc +++ b/source/processes/electromagnetic/standard/src/G4AnnihiToMuPair.cc @@ -22,7 +22,7 @@ // // // $Id: G4AnnihiToMuPair.cc,v 1.2 2003/02/04 11:08:42 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------ G4AnnihiToMuPair physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, November 2002 diff --git a/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc b/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc index 1dd9c1c9df..3d657d1893 100644 --- a/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc +++ b/source/processes/electromagnetic/standard/src/G4ComptonScattering.cc @@ -22,7 +22,7 @@ // // // $Id: G4ComptonScattering.cc,v 1.17 2003/06/16 17:02:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //------------ G4ComptonScattering physics process ----------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4GammaConversion.cc b/source/processes/electromagnetic/standard/src/G4GammaConversion.cc index 8237617b1c..d2e73bc9f7 100644 --- a/source/processes/electromagnetic/standard/src/G4GammaConversion.cc +++ b/source/processes/electromagnetic/standard/src/G4GammaConversion.cc @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversion.cc,v 1.18 2003/06/16 17:02:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //------------------ G4GammaConversion physics process ------------------------- // by Michel Maire, 24 May 1996 diff --git a/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc b/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc index a0532f7ad5..c69e810975 100644 --- a/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc +++ b/source/processes/electromagnetic/standard/src/G4GammaConversionToMuons.cc @@ -22,7 +22,7 @@ // // // $Id: G4GammaConversionToMuons.cc,v 1.4 2002/08/07 10:53:25 maire Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------ G4GammaConversionToMuons physics process ------ // by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002 diff --git a/source/processes/electromagnetic/standard/src/G4IonisationByLogicalVolume.cc b/source/processes/electromagnetic/standard/src/G4IonisationByLogicalVolume.cc index 1bce98b5e9..b7ecff0ed7 100644 --- a/source/processes/electromagnetic/standard/src/G4IonisationByLogicalVolume.cc +++ b/source/processes/electromagnetic/standard/src/G4IonisationByLogicalVolume.cc @@ -47,15 +47,15 @@ G4IonisationByLogicalVolume( const G4String& particleName, if ( fParticleName == "e+" || fParticleName == "e-" ) { - feIonisation = new G4eIonisation(particleName) ; + feIonisation = new G4eIonisation52(particleName) ; } else if ( fParticleName == "mu+" || fParticleName == "mu-" ) { - fMuIonisation = new G4MuIonisation(particleName) ; + fMuIonisation = new G4MuIonisation52(particleName) ; } else { - fhIonisation = new G4hIonisation(particleName) ; + fhIonisation = new G4hIonisation52(particleName) ; } } diff --git a/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc b/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc index d8a27ff421..558187f1b9 100644 --- a/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc +++ b/source/processes/electromagnetic/standard/src/G4MollerBhabhaModel.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MollerBhabhaModel.cc,v 1.11 2003/07/21 12:52:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -123,14 +125,14 @@ void G4MollerBhabhaModel::Initialise(const G4ParticleDefinition* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MollerBhabhaModel::ComputeDEDX(const G4Material* material, +G4double G4MollerBhabhaModel::ComputeDEDX(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double cutEnergy) { if(!particle) SetParticle(p); // calculate the dE/dx due to the ionization by Seltzer-Berger formula - + const G4Material* material = couple->GetMaterial(); G4double electronDensity = material->GetElectronDensity(); G4double Zeff = electronDensity/material->GetTotNbOfAtomsPerVolume(); G4double th = 0.25*sqrt(Zeff)*keV; @@ -202,19 +204,20 @@ G4double G4MollerBhabhaModel::ComputeDEDX(const G4Material* material, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MollerBhabhaModel::CrossSection(const G4Material* material, +G4double G4MollerBhabhaModel::CrossSection(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy) + G4double maxEnergy) { if(!particle) SetParticle(p); + G4double cross = 0.0; G4double tmax = MaxSecondaryEnergy(p, kineticEnergy); tmax = std::min(maxEnergy, tmax); if(cutEnergy < tmax) { - + G4double xmin = cutEnergy/kineticEnergy; G4double xmax = tmax/kineticEnergy; G4double gam = kineticEnergy/electron_mass_c2 + 1.0; @@ -225,8 +228,8 @@ G4double G4MollerBhabhaModel::CrossSection(const G4Material* material, if (isElectron) { G4double g = (2.0*gam - 1.0)/gamma2; - cross = ((xmax - xmin)*(1.0 - g + 1.0/(xmin*xmax) - + 1.0/((1.0-xmin)*(1.0 - xmax))) + cross = ((xmax - xmin)*(1.0 - g + 1.0/(xmin*xmax) + + 1.0/((1.0-xmin)*(1.0 - xmax))) - g*log( xmax*(1.0 - xmin)/(xmin*(1.0 - xmax)) ) ) / beta2; //Bhabha (e+e-) scattering @@ -238,16 +241,16 @@ G4double G4MollerBhabhaModel::CrossSection(const G4Material* material, G4double b1 = 2.0 - y2; G4double b2 = y12*(3.0 + y2); G4double y122= y12*y12; - G4double b4 = y122*y12; + G4double b4 = y122*y12; G4double b3 = b4 + y122; - cross = (xmax - xmin)*(1.0/(beta2*xmin*xmax) + b2 - - 0.5*b3*(xmin + xmax) + cross = (xmax - xmin)*(1.0/(beta2*xmin*xmax) + b2 + - 0.5*b3*(xmin + xmax) + b4*(xmin*xmin + xmin*xmax + xmax*xmax)/3.0) - b1*log(xmax/xmin); } - - cross *= twopi_mc2_rcl2*(material->GetElectronDensity())/kineticEnergy; + + cross *= twopi_mc2_rcl2*(couple->GetMaterial()->GetElectronDensity())/kineticEnergy; } return cross; } diff --git a/source/processes/electromagnetic/standard/src/G4PAIModel.cc b/source/processes/electromagnetic/standard/src/G4PAIModel.cc new file mode 100644 index 0000000000..cf1d60fca7 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4PAIModel.cc @@ -0,0 +1,892 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// File name: G4PAIModel.cc +// +// Author: Vladimir.Grichine@cern.ch on base of Vladimir Ivanchenko code +// +// Creation date: 05.10.2003 +// +// Modifications: +// + +#include "G4Region.hh" +#include "G4PhysicsLogVector.hh" +#include "G4PhysicsFreeVector.hh" +#include "G4PhysicsTable.hh" +#include "G4ProductionCutsTable.hh" +#include "G4MaterialCutsCouple.hh" +#include "G4MaterialTable.hh" +#include "G4SandiaTable.hh" +#include "G4PAIxSection.hh" + +#include "G4PAIModel.hh" +#include "Randomize.hh" +#include "G4Electron.hh" +#include "G4Poisson.hh" +#include "G4Step.hh" +#include "G4Material.hh" +#include "G4DynamicParticle.hh" +#include "G4ParticleDefinition.hh" + +const G4double G4PAIModel::fLowestKineticEnergy = 10.0*keV ; // 100.0*MeV ; +const G4double G4PAIModel::fHighestKineticEnergy = 100.*TeV ; // 1000.0*MeV ; +G4int G4PAIModel::fTotBin = 200 ; // 50 +G4int G4PAIModel::fMeanNumber = 20 ; // 50 for dispersion + + // create physics vector and fill it + +G4PhysicsLogVector* +G4PAIModel::fProtonEnergyVector = new G4PhysicsLogVector(fLowestKineticEnergy, + fHighestKineticEnergy, + fTotBin); + +//////////////////////////////////////////////////////////////////////// + +G4PAIModel::G4PAIModel(const G4ParticleDefinition* p, const G4String& nam) + : G4VEmModel(nam),G4VEmFluctuationModel(nam), + fParticle(0), + fHighKinEnergy(100.*TeV), + fLowKinEnergy(2.0*MeV), + fTwoln10(2.0*log(10.0)), + fBg2lim(0.0169), + fTaulim(8.4146e-3) +{ + if(p) SetParticle(p); +} + +//////////////////////////////////////////////////////////////////////////// + +G4PAIModel::~G4PAIModel() +{ + // delete member used ??? + if(fdEdxVector) delete fdEdxVector ; + if ( fLambdaVector) delete fLambdaVector; + if ( fdNdxCutVector) delete fdNdxCutVector; + if( fPAItransferBank ) + { + fPAItransferBank->clearAndDestroy(); + delete fPAItransferBank ; + } + for(G4int i=0;iGetPDGMass(); + fSpin = fParticle->GetPDGSpin(); + G4double q = fParticle->GetPDGCharge()/eplus; + fChargeSquare = q*q; + fLowKinEnergy *= fMass/proton_mass_c2; + fRatio = electron_mass_c2/fMass; + fQc = fMass/fRatio; +} + +////////////////////////////////////////////////////////////////////////////// + +G4double G4PAIModel::HighEnergyLimit(const G4ParticleDefinition* p) +{ + if(!fParticle) SetParticle(p); + return fHighKinEnergy; +} + +/////////////////////////////////////////////////////////////////////////// + +G4double G4PAIModel::LowEnergyLimit( const G4ParticleDefinition* p ) +{ + if(!fParticle) SetParticle(p); + return fLowKinEnergy; +} + +//////////////////////////////////////////////////////////////////////////// + +G4double G4PAIModel::MinEnergyCut( const G4ParticleDefinition*, + const G4MaterialCutsCouple* couple ) +{ + return couple->GetMaterial()->GetIonisation()->GetMeanExcitationEnergy(); +} + +//////////////////////////////////////////////////////////////////////////// + +G4bool G4PAIModel::IsInCharge( const G4ParticleDefinition* p ) +{ + if(!fParticle) SetParticle(p); + return (p->GetPDGCharge() != 0.0 ); +} + +//////////////////////////////////////////////////////////////////////////// + +void G4PAIModel::Initialise(const G4ParticleDefinition* p, + const G4DataVector&) +{ + if(!fParticle) SetParticle(p); + + const G4ProductionCutsTable* theCoupleTable = + G4ProductionCutsTable::GetProductionCutsTable(); + + for(size_t iReg = 0; iReg < fPAIRegionVector.size();++iReg) // region loop + { + const G4Region* curReg = fPAIRegionVector[iReg]; + + // (*fPAIRegionVector[iRegion]) + + std::vector::const_iterator matIter = curReg->GetMaterialIterator(); + size_t jMat, numOfMat = curReg->GetNumberOfMaterials(); + + // for(size_t jMat = 0; jMat < curReg->GetNumberOfMaterials();++jMat){} + + for(jMat = 0 ; jMat < numOfMat; ++jMat) // region material loop + { + const G4MaterialCutsCouple* matCouple = theCoupleTable-> + GetMaterialCutsCouple( *matIter, curReg->GetProductionCuts() ); + fMaterialCutsCoupleVector.push_back(matCouple); + + static const G4MaterialTable* theMaterialTable = + G4Material::GetMaterialTable(); + size_t numberOfMat = G4Material::GetNumberOfMaterials(); + size_t iMatGlob; + for(iMatGlob = 0 ; iMatGlob < numberOfMat ; iMatGlob++ ) + { + if( *matIter == (*theMaterialTable)[iMatGlob]) break ; + } + fMatIndex = iMatGlob; + + ComputeSandiaPhotoAbsCof(); + BuildPAIonisationTable(); + fPAIxscBank.push_back(fPAItransferBank); + fPAIdEdxBank.push_back(fPAIdEdxTable); + fdEdxTable.push_back(fdEdxVector); + + BuildLambdaVector(matCouple); + fdNdxCutTable.push_back(fdNdxCutVector); + fLambdaTable.push_back(fLambdaVector); + + + matIter++; + } + } +} + +////////////////////////////////////////////////////////////////// + +void G4PAIModel::ComputeSandiaPhotoAbsCof() +{ + 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;iGetElement(i)->GetZ() ; + + fSandiaIntervalNumber = thisMaterialSandiaTable.SandiaIntervals + (thisMaterialZ,numberOfElements) ; + + fSandiaIntervalNumber = thisMaterialSandiaTable.SandiaMixing + ( thisMaterialZ , + (*theMaterialTable)[fMatIndex]->GetFractionVector() , + numberOfElements,fSandiaIntervalNumber) ; + + fSandiaPhotoAbsCof = new G4double*[fSandiaIntervalNumber] ; + + for(i=0;iGetDensity() ; + } + } + delete[] thisMaterialZ ; +} + +//////////////////////////////////////////////////////////////////////////// +// +// Build tables for the ionization energy loss +// the tables are built for MATERIALS +// ********* + +void +G4PAIModel::BuildPAIonisationTable() +{ + G4double LowEdgeEnergy , ionloss ; + G4double massRatio, tau, Tmax, Tmin, Tkin, deltaLow, gamma, bg2 ; + /* + if( fPAItransferBank ) + { + fPAItransferBank->clearAndDestroy() ; + delete fPAItransferBank ; + } + */ + fPAItransferBank = new G4PhysicsTable(fTotBin); + /* + if( fPAIdEdxTable ) + { + fPAIdEdxTable->clearAndDestroy() ; + delete fPAIdEdxTable ; + } + */ + fPAIdEdxTable = new G4PhysicsTable(fTotBin); + + // if(fdEdxVector) delete fdEdxVector ; + fdEdxVector = new G4PhysicsLogVector( fLowestKineticEnergy, + fHighestKineticEnergy, + fTotBin ) ; + Tmin = fSandiaPhotoAbsCof[0][0] ; // low energy Sandia interval + deltaLow = 0.5*eV ; + + for (G4int i = 0 ; i < fTotBin ; i++) //The loop for the kinetic energy + { + LowEdgeEnergy = fProtonEnergyVector->GetLowEdgeEnergy(i) ; + tau = LowEdgeEnergy/proton_mass_c2 ; + // if(tau < 0.01) tau = 0.01 ; + gamma = tau +1. ; + // G4cout<<"gamma = "< Tmax) // was < + { + Tkin = Tmax ; + } + if ( Tkin < Tmin + deltaLow ) // low energy safety + { + Tkin = Tmin + deltaLow ; + } + G4PAIxSection protonPAI( fMatIndex, + Tkin, + bg2, + fSandiaPhotoAbsCof, + fSandiaIntervalNumber ) ; + + + // G4cout<<"ionloss = "<GetTableSize(), jMatCC; + for (jMatCC = 0 ; jMatCC < numOfCouples ; jMatCC++ ) + { + if( matCutsCouple == theCoupleTable->GetMaterialCutsCouple(jMatCC) ) break; + } + + + const std::vector* deltaCutInKineticEnergy = theCoupleTable-> + GetEnergyCutsVector(idxG4ElectronCut); + + if (fLambdaVector) delete fLambdaVector; + if (fdNdxCutVector) delete fdNdxCutVector; + + fLambdaVector = new G4PhysicsLogVector( fLowestKineticEnergy, + fHighestKineticEnergy, + fTotBin ) ; + fdNdxCutVector = new G4PhysicsLogVector( fLowestKineticEnergy, + fHighestKineticEnergy, + fTotBin ) ; + G4double deltaCutInKineticEnergyNow = (*deltaCutInKineticEnergy)[jMatCC] ; + + G4cout<<"PAIModel DeltaCutInKineticEnergyNow = " + <PutValue(i, lambda) ; + fdNdxCutVector->PutValue(i, dNdxCut) ; + } +} + +/////////////////////////////////////////////////////////////////////// +// +// Returns integral PAI cross section for energy transfers >= transferCut + +G4double +G4PAIModel::GetdNdxCut( G4int iPlace, G4double transferCut) +{ + G4int iTransfer; + G4double x1, x2, y1, y2, dNdxCut; + // G4cout<<"iPlace = "<= transferCut + +G4double +G4PAIModel::GetdEdxCut( G4int iPlace, G4double transferCut) +{ + G4int iTransfer; + G4double x1, x2, y1, y2, dEdxCut; + // G4cout<<"iPlace = "<GetPDGMass()/proton_mass_c2; + G4double charge = p->GetPDGCharge(); + G4double charge2 = charge*charge, dEdx; + + for( jMat = 0 ;jMat < fMaterialCutsCoupleVector.size() ; ++jMat ) + { + if( matCC == fMaterialCutsCoupleVector[jMat] ) break; + } + fPAIdEdxTable = fPAIdEdxBank[jMat]; + fdEdxVector = fdEdxTable[jMat]; + for(iTkin = 0 ; iTkin < fTotBin ; iTkin++) + { + if(scaledTkin < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) break ; + } + iPlace = iTkin - 1; + if(iPlace < 0) iPlace = 0; + dEdx = charge2*( (*fdEdxVector)(iPlace) - GetdEdxCut(iPlace,cutEnergy) ) ; + + if( dEdx < 0.) dEdx = 0.; + return dEdx; +} + +///////////////////////////////////////////////////////////////////////// + +G4double G4PAIModel::CrossSection( const G4MaterialCutsCouple* matCC, + const G4ParticleDefinition* p, + G4double kineticEnergy, + G4double cutEnergy, + G4double maxEnergy ) +{ + G4int iTkin,iPlace; + size_t jMat; + G4double tmax = std::min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); + G4double scaledTkin = kineticEnergy*p->GetPDGMass()/proton_mass_c2; + G4double charge = p->GetPDGCharge(); + G4double charge2 = charge*charge, cross, cross1, cross2; + + for( jMat = 0 ;jMat < fMaterialCutsCoupleVector.size() ; ++jMat ) + { + if( matCC == fMaterialCutsCoupleVector[jMat] ) break; + } + fPAItransferBank = fPAIxscBank[jMat]; + + for(iTkin = 0 ; iTkin < fTotBin ; iTkin++) + { + if(scaledTkin < fProtonEnergyVector->GetLowEdgeEnergy(iTkin)) break ; + } + iPlace = iTkin - 1; + if(iPlace < 0) iPlace = 0; + cross1 = GetdNdxCut(iPlace,tmax) ; + cross2 = GetdNdxCut(iPlace,cutEnergy) ; + cross = (cross2-cross1)*charge2; + if( cross < 0.) cross = 0.; + return cross; +} + +/////////////////////////////////////////////////////////////////////////// +// +// It is analog of PostStepDoIt in terms of secondary electron. +// + +G4DynamicParticle* +G4PAIModel::SampleSecondary( const G4MaterialCutsCouple* matCC, + const G4DynamicParticle* dp, + G4double tmin, + G4double maxEnergy) +{ + size_t jMat; + for( jMat = 0 ;jMat < fMaterialCutsCoupleVector.size() ; ++jMat ) + { + if( matCC == fMaterialCutsCoupleVector[jMat] ) break; + } + fPAItransferBank = fPAIxscBank[jMat]; + fdNdxCutVector = fdNdxCutTable[jMat]; + + G4double tmax = std::min(MaxSecondaryEnergy(dp), maxEnergy); + if( tmin >= tmax ) return 0; + G4ThreeVector momentum = dp->GetMomentumDirection(); + G4double particleMass = dp->GetMass(); + G4double kineticEnergy = dp->GetKineticEnergy(); + G4double scaledTkin = kineticEnergy*particleMass/proton_mass_c2; + G4double totalEnergy = kineticEnergy + particleMass; + G4double pSquare = kineticEnergy*(totalEnergy+particleMass); + + G4double deltaTkin = GetPostStepTransfer(scaledTkin); + if( deltaTkin <= 0. ) return 0; + G4double deltaTotalMomentum = sqrt(deltaTkin*(deltaTkin + 2. * electron_mass_c2 )); + G4double totalMomentum = sqrt(pSquare); + G4double costheta = deltaTkin*(totalEnergy + electron_mass_c2) + /(deltaTotalMomentum * totalMomentum); + if (costheta < 0.) costheta = 0.; + if (costheta > +1.) costheta = +1.; + + // direction of the delta electron + + G4double phi = twopi*G4UniformRand(); + G4double sintheta = sqrt((1.+costheta)*(1.-costheta)); + G4double dirx = sintheta*cos(phi), diry = sintheta*sin(phi), dirz = costheta; + + G4ThreeVector deltaDirection(dirx,diry,dirz); + deltaDirection.rotateUz(momentum); + + // create G4DynamicParticle object for delta ray + + G4DynamicParticle* deltaRay = new G4DynamicParticle; + deltaRay->SetDefinition(G4Electron::Electron()); + deltaRay->SetKineticEnergy( deltaTkin ); + deltaRay->SetMomentumDirection(deltaDirection); + + return deltaRay; +} + + +/////////////////////////////////////////////////////////////////////// +// +// Returns post step PAI energy transfer > cut electron energy according to passed +// scaled kinetic energy of particle + +G4double +G4PAIModel::GetPostStepTransfer( G4double scaledTkin ) +{ + // G4cout<<"G4PAIModel::GetPostStepTransfer"<GetLowEdgeEnergy(iTkin)) break ; + } + iPlace = iTkin - 1 ; + dNdxCut1 = (*fdNdxCutVector)(iPlace) ; + + // G4cout<<"iPlace = "<GetVectorLength()); iTransfer++ ) + { + if(position >= (*(*fPAItransferBank)(iPlace))(iTransfer)) break ; + } + transfer = GetEnergyTransfer(iPlace,position,iTransfer); + } + else + { + dNdxCut2 = (*fdNdxCutVector)(iPlace+1) ; + if(iTkin == 0) // Tkin is too small, trying from right only + { + position = dNdxCut2*G4UniformRand() ; + + for( iTransfer = 0; + iTransfer < G4int((*fPAItransferBank)(iPlace+1)->GetVectorLength()); iTransfer++ ) + { + if(position >= (*(*fPAItransferBank)(iPlace+1))(iTransfer)) break ; + } + transfer = GetEnergyTransfer(iPlace+1,position,iTransfer); + } + else // general case: Tkin between two vectors of the material + { + E1 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin - 1) ; + E2 = fProtonEnergyVector->GetLowEdgeEnergy(iTkin) ; + W = 1.0/(E2 - E1) ; + W1 = (E2 - scaledTkin)*W ; + W2 = (scaledTkin - E1)*W ; + + position = ( dNdxCut1*W1 + dNdxCut2*W2 )*G4UniformRand() ; + + // G4cout<GetVectorLength()); iTransfer++ ) + { + if( position >= + ( (*(*fPAItransferBank)(iPlace))(iTransfer)*W1 + + (*(*fPAItransferBank)(iPlace+1))(iTransfer)*W2) ) break ; + } + transfer = GetEnergyTransfer(iPlace,position,iTransfer); + } + } + // G4cout<<"PAImodel PostStepTransfer = "<GetLowEdgeEnergy(iTransfer) ; + } + else + { + if ( iTransfer >= G4int((*fPAItransferBank)(iPlace)->GetVectorLength()) ) + { + iTransfer = (*fPAItransferBank)(iPlace)->GetVectorLength() - 1 ; + } + y1 = (*(*fPAItransferBank)(iPlace))(iTransfer-1) ; + y2 = (*(*fPAItransferBank)(iPlace))(iTransfer) ; + + x1 = (*fPAItransferBank)(iPlace)->GetLowEdgeEnergy(iTransfer-1) ; + x2 = (*fPAItransferBank)(iPlace)->GetLowEdgeEnergy(iTransfer) ; + + if ( x1 == x2 ) energyTransfer = x2 ; + else + { + if ( y1 == y2 ) energyTransfer = x1 + (x2 - x1)*G4UniformRand() ; + else + { + energyTransfer = x1 + (position - y1)*(x2 - x1)/(y2 - y1) ; + } + } + } + return energyTransfer ; +} + + +//////////////////////////////////////////////////////////////////////////// + +std::vector* +G4PAIModel::SampleSecondaries( const G4MaterialCutsCouple* couple, + const G4DynamicParticle* dp, + G4double tmin, + G4double maxEnergy) +{ + std::vector* vdp = new std::vector; + G4DynamicParticle* delta = SampleSecondary(couple, dp, tmin, maxEnergy); + vdp->push_back(delta); + return vdp; +} + +/////////////////////////////////////////////////////////////////////// + +G4double G4PAIModel::SampleFluctuations( const G4Material* material, + const G4DynamicParticle* aParticle, + G4double&, + G4double& step, + G4double&) +{ + size_t jMat; + for( jMat = 0 ;jMat < fMaterialCutsCoupleVector.size() ; ++jMat ) + { + if( material == fMaterialCutsCoupleVector[jMat]->GetMaterial() ) break; + } + fPAItransferBank = fPAIxscBank[jMat]; + fdNdxCutVector = fdNdxCutTable[jMat]; + + G4int iTkin, iTransfer, iPlace ; + G4long numOfCollisions; + + // G4cout<<"G4PAIModel::SampleFluctuations"<GetKineticEnergy() ; + G4double MassRatio = proton_mass_c2/aParticle->GetDefinition()->GetPDGMass() ; + G4double charge = aParticle->GetDefinition()->GetPDGCharge() ; + charge2 = charge*charge ; + G4double TkinScaled = Tkin*MassRatio ; + + for(iTkin=0;iTkinGetLowEdgeEnergy(iTkin)) break ; + } + iPlace = iTkin - 1 ; + dNdxCut1 = (*fdNdxCutVector)(iPlace) ; + + // G4cout<<"iPlace = "<GetVectorLength()); iTransfer++ ) + { + if( position >= + ( (*(*fPAItransferBank)(iPlace))(iTransfer)*W1 + + (*(*fPAItransferBank)(iPlace+1))(iTransfer)*W2) ) + { + break ; + } + } + // loss += (*fPAItransferBank)(iPlace)->GetLowEdgeEnergy(iTransfer) ; + loss += GetEnergyTransfer(iPlace,position,iTransfer); + numOfCollisions-- ; + } + } + } + // G4cout<<"PAIModel AlongStepLoss = "<=1;i--) - { - if(fSplineEnergy[i] >= fEnergyInterval[k]) - { - fIntegralPAIxSection[i] = fIntegralPAIxSection[i+1] + SumOverInterval(i) ; - } - else - { - fIntegralPAIxSection[i] = fIntegralPAIxSection[i+1] + - SumOverBorder(i+1,fEnergyInterval[k]) ; - k-- ; - } - } + fIntegralPAIxSection[fSplineNumber] = 0 ; + fIntegralPAIdEdx[fSplineNumber] = 0 ; + fIntegralPAIxSection[0] = 0 ; + G4int k = fIntervalNumber -1 ; + for(G4int i = fSplineNumber-1 ; i >= 1 ; i--) + { + if(fSplineEnergy[i] >= fEnergyInterval[k]) + { + fIntegralPAIxSection[i] = fIntegralPAIxSection[i+1] + SumOverInterval(i) ; + fIntegralPAIdEdx[i] = fIntegralPAIdEdx[i+1] + SumOverIntervaldEdx(i) ; + } + else + { + fIntegralPAIxSection[i] = fIntegralPAIxSection[i+1] + + SumOverBorder(i+1,fEnergyInterval[k]) ; + fIntegralPAIdEdx[i] = fIntegralPAIdEdx[i+1] + + SumOverBorderdEdx(i+1,fEnergyInterval[k]) ; + k-- ; + } + } } // end of IntegralPAIxSection //////////////////////////////////////////////////////////////////////// @@ -1042,6 +1046,33 @@ G4double G4PAIxSection::SumOverInterval( G4int i ) } // end of SumOverInterval +///////////////////////////////// + +G4double G4PAIxSection::SumOverIntervaldEdx( G4int i ) +{ + G4double x0,x1,y0,yy1,a,b,c,result ; + + x0 = fSplineEnergy[i] ; + x1 = fSplineEnergy[i+1] ; + y0 = fDifPAIxSection[i] ; + yy1 = fDifPAIxSection[i+1]; + c = x1/x0; + a = log10(yy1/y0)/log10(c) ; + // b = log10(y0) - a*log10(x0) ; + b = y0/pow(x0,a) ; + a += 2 ; + if(a == 0) + { + result = b*log(x1/x0) ; + } + else + { + result = y0*(x1*x1*pow(c,a-2) - x0*x0)/a ; + } + return result ; + +} // end of SumOverInterval + ////////////////////////////////////////////////////////////////////// // // Calculation the PAI Cerenkov integral cross-section inside @@ -1178,6 +1209,57 @@ G4double G4PAIxSection::SumOverBorder( G4int i , } +/////////////////////////////////////////////////////////////////////// + +G4double G4PAIxSection::SumOverBorderdEdx( G4int i , + G4double en0 ) +{ + G4double x0,x1,y0,yy1,a,b,c,d,e0,result ; + + e0 = en0 ; + x0 = fSplineEnergy[i] ; + x1 = fSplineEnergy[i+1] ; + y0 = fDifPAIxSection[i] ; + yy1 = fDifPAIxSection[i+1] ; + + c = x1/x0; + d = e0/x0; + a = log10(yy1/y0)/log10(x1/x0) ; + // b0 = log10(y0) - a*log10(x0) ; + b = y0/pow(x0,a); // pow(10.,b) ; + + a += 2 ; + if(a == 0) + { + result = b*log(x0/e0) ; + } + else + { + result = y0*(x0*x0 - e0*e0*pow(d,a-2))/a ; + } + x0 = fSplineEnergy[i - 1] ; + x1 = fSplineEnergy[i - 2] ; + y0 = fDifPAIxSection[i - 1] ; + yy1 = fDifPAIxSection[i - 2] ; + + c = x1/x0; + d = e0/x0; + a = log10(yy1/y0)/log10(x1/x0) ; + // b0 = log10(y0) - a*log10(x0) ; + b = y0/pow(x0,a) ; + a += 2 ; + if(a == 0) + { + result += b*log(e0/x0) ; + } + else + { + result += y0*(e0*e0*pow(d,a-2) - x0*x0)/a ; + } + return result ; + +} + /////////////////////////////////////////////////////////////////////////////// // // Integration of Cerenkov cross-section for the case of diff --git a/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc b/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc index 0e63c6fc95..feaa3d6c45 100644 --- a/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc +++ b/source/processes/electromagnetic/standard/src/G4PhotoElectricEffect.cc @@ -22,7 +22,7 @@ // // // $Id: G4PhotoElectricEffect.cc,v 1.29 2003/06/16 17:02:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc b/source/processes/electromagnetic/standard/src/G4PolarizedComptonScattering.cc index d5b1030cb1..4d34c5aba1 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.10 2003/05/26 16:13:14 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //---------- G4PolarizedComptonScattering physics process ---------------------- diff --git a/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc b/source/processes/electromagnetic/standard/src/G4SynchrotronRadiation.cc index 8d3cdaebfb..20bfe52641 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.8 2003/05/26 16:13:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc index e7ea5c357f..3e97194b4b 100644 --- a/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc +++ b/source/processes/electromagnetic/standard/src/G4VPAIenergyLoss.cc @@ -22,7 +22,7 @@ // // // $Id: G4VPAIenergyLoss.cc,v 1.7 2003/03/10 12:22:02 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VeEnergyLoss.cc index c733707cb0..7c2234e3ab 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.32 2003/06/16 17:02:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc b/source/processes/electromagnetic/standard/src/G4VhEnergyLoss.cc index cfd509c2e8..8b9d93f0a1 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.46 2003/06/16 17:02:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc index 1ab76e44a3..e92ea10d4c 100644 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung.cc @@ -20,13 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4eBremsstrahlung.cc,v 1.37 2003/11/12 16:23:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4eBremsstrahlung.cc,v 1.33 2003/06/16 17:02:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- +// +// GEANT4 Class file // // -// ------------ G4eBremsstrahlung physics process -------- -// by Michel Maire, 24 July 1996 +// File name: G4eBremsstrahlung +// +// Author: Michel Maire +// +// Creation date: 26.06.1996 +// +// Modifications: // // 26-09-96 extension of the total crosssection above 100 GeV, M.Maire // 1-10-96 new type G4OrderedTable; ComputePartialSumSigma(), M.Maire @@ -46,1106 +54,72 @@ // 21-09-01 completion of RetrievePhysicsTable() (mma) // 29-10-01 all static functions no more inlined (mma) // 08-11-01 particleMass becomes a local variable -// 11-11-02 fix of division by 0 (VI) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) -// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) +// 30-04-02 V.Ivanchenko update to new design +// 23-12-02 Change interface in order to move to cut per region (VI) +// 26-12-02 Secondary production moved to derived classes (VI) +// 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) +// +// ------------------------------------------------------------------- // -// -------------------------------------------------------------- - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4eBremsstrahlung.hh" -#include "G4EnergyLossTables.hh" -#include "G4ios.hh" +#include "G4Gamma.hh" +#include "G4eBremsstrahlungModel.hh" +#include "G4UniversalFluctuation.hh" #include "G4UnitsTable.hh" + #include "G4ProductionCutsTable.hh" - -G4double G4eBremsstrahlung::LowerBoundLambda = 1.*keV; -G4double G4eBremsstrahlung::UpperBoundLambda = 100.*TeV; -G4int G4eBremsstrahlung::NbinLambda = 100; -G4double G4eBremsstrahlung::probsup = 1.00; -G4bool G4eBremsstrahlung::LPMflag = true; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -// constructor - -G4eBremsstrahlung::G4eBremsstrahlung(const G4String& processName) - : G4VeEnergyLoss(processName), // initialization - theMeanFreePathTable(NULL) -{ // MinThreshold = 10*keV; - MinThreshold = 1*keV; } +#include "G4MaterialCutsCouple.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -// destructor +G4eBremsstrahlung::G4eBremsstrahlung(const G4String& name) + : G4VEnergyLossProcess(name) +{ + InitialiseProcess(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4eBremsstrahlung::~G4eBremsstrahlung() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eBremsstrahlung::InitialiseProcess() { - if (theMeanFreePathTable) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } + SetSecondaryParticle(G4Gamma::Gamma()); - PartialSumSigma.clearAndDestroy(); -} + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + //G4VEmFluctuationModel* fm = 0; + G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); -void G4eBremsstrahlung::SetLowerBoundLambda(G4double val) - {LowerBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eBremsstrahlung::SetUpperBoundLambda(G4double val) - {UpperBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eBremsstrahlung::SetNbinLambda(G4int n) - {NbinLambda = n;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4eBremsstrahlung::GetLowerBoundLambda() - {return LowerBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4eBremsstrahlung::GetUpperBoundLambda() - {return UpperBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4int G4eBremsstrahlung::GetNbinLambda() - {return NbinLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eBremsstrahlung::SetLPMflag(G4bool val) - {LPMflag = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool G4eBremsstrahlung::GetLPMflag() - {return LPMflag;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eBremsstrahlung::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) -{ - if( !CutsWhereModified() && theLossTable) return; - - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - BuildLossTable(aParticleType); - - if (&aParticleType==G4Electron::Electron()) - { - RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; - CounterOfElectronProcess++; - } - else - { - RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; - CounterOfPositronProcess++; - } - - BuildLambdaTable(aParticleType); - - BuildDEDXTable (aParticleType); - - if (&aParticleType==G4Electron::Electron()) PrintInfoDefinition(); + G4VEmModel* em = new G4eBremsstrahlungModel(); + em->SetLowEnergyLimit(0.1*keV); + em->SetHighEnergyLimit(100.0*TeV); + AddEmModel(1, em, fm); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4eBremsstrahlung::BuildLossTable(const G4ParticleDefinition& aParticleType) +void G4eBremsstrahlung::PrintInfoDefinition() { - G4double KineticEnergy,TotalEnergy,bremloss,Z,x, - losslim,loss,rate,natom,Cut; - - const G4double MinKinEnergy = 1.*keV; - const G4double Thigh = 100.*GeV; - const G4double Cuthigh = 50.*GeV; - const G4double Factorhigh = 36./(1450.*GeV); - const G4double coef1 = -0.5, coef2 = 2./9.; - - G4double particleMass = aParticleType.GetPDGMass() ; - - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} - theLossTable = new G4PhysicsTable(numOfCouples); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); - - // loop for materials - // - for (size_t J=0; JGetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); - const G4int NumberOfElements = material->GetNumberOfElements(); - - // loop for the kinetic energy values - for (G4int i=0; iGetLowEdgeEnergy(i) ; - TotalEnergy = KineticEnergy+particleMass ; - Cut = SecondaryEnergyThreshold(J); - if (Cut < MinThreshold) Cut = MinThreshold; - if (Cut > KineticEnergy) Cut = KineticEnergy; - - bremloss = 0.; - - if (KineticEnergy>MinKinEnergy) - { - // loop for elements in the material - for (G4int iel=0; ielGetZ(); - natom = theAtomicNumDensityVector[iel] ; - if (KineticEnergy <= Thigh) - { - //loss for MinKinEnergy100 GeV - x=log(Thigh/particleMass) ; - if (CutGetElectronDensity()) ; - - // now compute the correction due to the supression(s) - G4double kmin = 1.*eV ; - G4double kmax = Cut ; - - if(kmax > kmin) - { - - G4double floss = 0. ; - G4int nmax = 100 ; - - G4double vmin=log(kmin); - G4double vmax=log(kmax) ; - G4int nn = (G4int)(nmax*(vmax-vmin)/(log(HighestKineticEnergy)-vmin)) ; - G4double u,fac,c,v,dv ; - if(nn > 0) - { - dv = (vmax-vmin)/nn ; - v = vmin-dv ; - for(G4int n=0; n<=nn; n++) - { - v += dv; u = exp(v); - fac = u*SupressionFunction(material,KineticEnergy,u); - probsup = 1.; - fac *= probsup*(u*u/(u*u+kp2))+1.-probsup; - if ((n==0)||(n==nn)) c=0.5; - else c=1. ; - fac *= c ; - floss += fac ; - } - floss *=dv/(kmax-kmin); - } - else floss = 1.; - if(floss > 1.) floss = 1.; - // correct the loss - bremloss *= floss; - } - - if(bremloss < 0.) bremloss = 0.; - aVector->PutValue(i,bremloss); - } - - theLossTable->insert(aVector); - } + G4VEnergyLossProcess::PrintInfoDefinition(); + G4cout << " Total cross sections from a parametrisation" + << " based on the EEDL data library. " + << G4endl + << " Good description from 1 KeV to 100 GeV, " + << "log scale extrapolation above 100 GeV." + << G4endl; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4double G4eBremsstrahlung::ComputeBremLoss(G4double Z,G4double, - G4double T,G4double Cut,G4double) - -// compute loss due to soft brems -{ - static const G4double beta=1.00,ksi=2.00 ; - static const G4double clossh = 0.254 , closslow = 1./3. , alosslow = 1. ; - static const G4double Tlim= 10.*MeV ; - - static const G4double xlim = 1.2 ; - static const G4int NZ = 8 ; - static const G4int Nloss = 11 ; - static const G4double ZZ[NZ] = - {2.,4.,6.,14.,26.,50.,82.,92.}; - static const G4double coefloss[NZ][Nloss] = { - // Z=2 - { 0.98916, 0.47564, -0.2505, -0.45186, 0.14462, - 0.21307, -0.013738, -0.045689, -0.0042914, 0.0034429, - 0.00064189}, - - // Z=4 - { 1.0626, 0.37662, -0.23646, -0.45188, 0.14295, - 0.22906, -0.011041, -0.051398, -0.0055123, 0.0039919, - 0.00078003}, - // Z=6 - { 1.0954, 0.315, -0.24011, -0.43849, 0.15017, - 0.23001, -0.012846, -0.052555, -0.0055114, 0.0041283, - 0.00080318}, - - // Z=14 - { 1.1649, 0.18976, -0.24972, -0.30124, 0.1555, - 0.13565, -0.024765, -0.027047, -0.00059821, 0.0019373, - 0.00027647}, - - // Z=26 - { 1.2261, 0.14272, -0.25672, -0.28407, 0.13874, - 0.13586, -0.020562, -0.026722, -0.00089557, 0.0018665, - 0.00026981}, - - // Z=50 - { 1.3147, 0.020049, -0.35543, -0.13927, 0.17666, - 0.073746, -0.036076, -0.013407, 0.0025727, 0.00084005, - -1.4082e-05}, - - // Z=82 - { 1.3986, -0.10586, -0.49187, -0.0048846, 0.23621, - 0.031652, -0.052938, -0.0076639, 0.0048181, 0.00056486, - -0.00011995}, - - // Z=92 - { 1.4217, -0.116, -0.55497, -0.044075, 0.27506, - 0.081364, -0.058143, -0.023402, 0.0031322, 0.0020201, - 0.00017519} - - } ; - static G4double aaa=0.414 ; - static G4double bbb=0.345 ; - static G4double ccc=0.460 ; - - G4int iz = 0; - G4double delz = 1.e6; - for (G4int ii=0; ii=0; j--) fl = fl*xx+coefloss[iz][j]; - if (fl < 0.) fl = 0.; - } - - G4double loss; - G4double E = T+electron_mass_c2 ; - - loss = Z*(Z+ksi)*E*E/(T+E)*exp(beta*log(Cut/T))*(2.-clossh*exp(log(Z)/4.)); - if (T <= Tlim) loss /= exp(closslow*log(Tlim/T)); - if( T <= Cut) loss *= exp(alosslow*log(T/Cut)); - - // correction ................................ - loss *= (aaa+bbb*T/Tlim)/(1.+ccc*T/Tlim); - loss *= fl; - loss /= Avogadro; - - return loss; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4double G4eBremsstrahlung::ComputePositronCorrFactorLoss( - G4double Z,G4double KineticEnergy,G4double GammaCut) - -//calculates the correction factor for the energy loss due to bremsstrahlung for positrons -//the same correction is in the (discrete) bremsstrahlung - -{ - static const G4double K = 132.9416*eV ; - static const G4double a1=4.15e-1, a3=2.10e-3, a5=54.0e-5 ; - - G4double x = log(KineticEnergy/(K*Z*Z)), x2 = x*x, x3 = x2*x; - G4double eta = 0.5+atan(a1*x+a3*x3+a5*x3*x2)/pi; - G4double e0 = GammaCut/KineticEnergy; - - G4double factor(0.); - if (e0!=1.0) { factor=log(1.-e0)/eta; factor=exp(factor);} - factor = eta*(1.-factor)/e0; - - return factor; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4eBremsstrahlung::BuildLambdaTable( - const G4ParticleDefinition& ParticleType) -{ - G4double LowEdgeEnergy , Value; - G4double FixedEnergy = (LowerBoundLambda + UpperBoundLambda)/2.; - - //create table - // - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - //create table - if (theMeanFreePathTable) {theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - - PartialSumSigma.clearAndDestroy(); - PartialSumSigma.resize(numOfCouples); - - G4PhysicsLogVector* ptrVector; - for ( size_t J=0; JGetMaterialCutsCouple(J); - - for ( G4int i = 0 ; i < NbinLambda ; i++ ) - { - LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; - Value = ComputeMeanFreePath( &ParticleType, LowEdgeEnergy,couple); - ptrVector->PutValue( i , Value ) ; - } - - theMeanFreePathTable->insertAt( J , ptrVector ); - - // Compute the PartialSumSigma table at a given fixed energy - ComputePartialSumSigma( &ParticleType, FixedEnergy, couple) ; - } - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4double G4eBremsstrahlung::ComputeMeanFreePath( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple) -{ - const G4Material* aMaterial = couple->GetMaterial(); - const G4ElementVector* theElementVector = aMaterial->GetElementVector() ; - const G4double* theAtomNumDensityVector = aMaterial->GetAtomicNumDensityVector(); - G4double GammaEnergyCut = SecondaryEnergyThreshold(couple->GetIndex()); - if (GammaEnergyCut < MinThreshold) GammaEnergyCut = MinThreshold; - - G4double SIGMA = 0; - - for ( size_t i=0 ; i < aMaterial->GetNumberOfElements() ; i++ ) - { - SIGMA += theAtomNumDensityVector[i] * - ComputeCrossSectionPerAtom( ParticleType, KineticEnergy, - (*theElementVector)[i]->GetZ(), - GammaEnergyCut ); - } - - // now compute the correction due to the supression(s) - - G4double kmax = KineticEnergy ; - G4double kmin = GammaEnergyCut ; - - static const G4double MigdalConstant = classic_electr_radius - *electron_Compton_length - *electron_Compton_length/pi; - G4double TotalEnergy = KineticEnergy+electron_mass_c2 ; - G4double kp2 = MigdalConstant*TotalEnergy*TotalEnergy* - (aMaterial->GetElectronDensity()) ; - - if(kmax > kmin) - { - G4double fsig = 0.; - G4int nmax = 100 ; - G4double vmin=log(kmin); - G4double vmax=log(kmax) ; - G4int nn = (G4int)(nmax*(vmax-vmin)/(log(HighestKineticEnergy)-vmin)); - G4double u,fac,c,v,dv,y ; - if(nn > 0) - { - dv = (vmax-vmin)/nn ; - v = vmin-dv ; - - for(G4int n=0; n<=nn; n++) - { - v += dv; u = exp(v); - fac = SupressionFunction(aMaterial,KineticEnergy,u); - y = u/kmax; - fac *= (4.-4.*y+3.*y*y)/3.; - fac *= probsup*(u*u/(u*u+kp2))+1.-probsup; - if ((n==0)||(n==nn)) c=0.5; - else c=1. ; - fac *= c; - fsig += fac; - } - y = kmin/kmax ; - fsig *=dv/(-4.*log(y)/3.-4.*(1.-y)/3.+0.5*(1.-y*y)); - } - else fsig = 1.; - if (fsig > 1.) fsig = 1.; - // correct the cross section - SIGMA *= fsig; - } - - return SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4double G4eBremsstrahlung::ComputeCrossSectionPerAtom( - const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, G4double AtomicNumber, - G4double GammaEnergyCut) - -// Calculates the cross section per atom in GEANT4 internal units. -// - -{ - G4double CrossSection = 0.0 ; - if ( KineticEnergy < 1*keV ) return CrossSection; - if ( KineticEnergy <= GammaEnergyCut ) return CrossSection; - - static const G4double ksi=2.0, alfa=1.00; - static const G4double csigh = 0.127, csiglow = 0.25, asiglow = 0.020*MeV ; - static const G4double Tlim = 10.*MeV ; - - static const G4double xlim = 1.2 ; - static const G4int NZ = 8 ; - static const G4int Nsig = 11 ; - static const G4double ZZ[NZ] = - {2.,4.,6.,14.,26.,50.,82.,92.} ; - static const G4double coefsig[NZ][Nsig] = { - // Z=2 - { 0.4638, 0.37748, 0.32249, -0.060362, -0.065004, - -0.033457, -0.004583, 0.011954, 0.0030404, -0.0010077, - -0.00028131}, - - // Z=4 - { 0.50008, 0.33483, 0.34364, -0.086262, -0.055361, - -0.028168, -0.0056172, 0.011129, 0.0027528, -0.00092265, - -0.00024348}, - - // Z=6 - { 0.51587, 0.31095, 0.34996, -0.11623, -0.056167, - -0.0087154, 0.00053943, 0.0054092, 0.00077685, -0.00039635, - -6.7818e-05}, - - // Z=14 - { 0.55058, 0.25629, 0.35854, -0.080656, -0.054308, - -0.049933, -0.00064246, 0.016597, 0.0021789, -0.001327, - -0.00025983}, - - // Z=26 - { 0.5791, 0.26152, 0.38953, -0.17104, -0.099172, - 0.024596, 0.023718, -0.0039205, -0.0036658, 0.00041749, - 0.00023408}, - - // Z=50 - { 0.62085, 0.27045, 0.39073, -0.37916, -0.18878, - 0.23905, 0.095028, -0.068744, -0.023809, 0.0062408, - 0.0020407}, - - // Z=82 - { 0.66053, 0.24513, 0.35404, -0.47275, -0.22837, - 0.35647, 0.13203, -0.1049, -0.034851, 0.0095046, - 0.0030535}, - - // Z=92 - { 0.67143, 0.23079, 0.32256, -0.46248, -0.20013, - 0.3506, 0.11779, -0.1024, -0.032013, 0.0092279, - 0.0028592} - - } ; - - G4int iz = 0 ; - G4double delz = 1.e6 ; - for (G4int ii=0; ii=0; j--) - { - fs = fs*xx+coefsig[iz][j] ; - } - if(fs < 0.) fs = 0. ; - } - - - CrossSection = AtomicNumber*(AtomicNumber+ksi)* - (1.-csigh*exp(log(AtomicNumber)/4.))* - pow(log(KineticEnergy/GammaEnergyCut),alfa) ; - - if(KineticEnergy <= Tlim) - CrossSection *= exp(csiglow*log(Tlim/KineticEnergy))* - (1.+asiglow/(sqrt(AtomicNumber)*KineticEnergy)) ; - - if (ParticleType == G4Positron::Positron()) - CrossSection *= ComputePositronCorrFactorSigma(AtomicNumber, KineticEnergy, - GammaEnergyCut); - CrossSection *= fs ; - CrossSection /= Avogadro ; - - if (CrossSection < 0.) CrossSection = 0.; - return CrossSection; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4double G4eBremsstrahlung::ComputePositronCorrFactorSigma( G4double AtomicNumber, - G4double KineticEnergy, G4double GammaEnergyCut) - -// Calculates the correction factor for the total cross section of the positron bremsstrahl. -// Eta is the ratio of positron to electron energy loss by bremstrahlung. -// A parametrized formula from L. Urban is used to estimate eta. It is a fit to the results -// of L. Kim & al: Phys Rev. A33,3002 (1986) - -{ - static const G4double K = 132.9416*eV; - static const G4double a1 = 4.15e-1, a3 = 2.10e-3, a5 = 54.0e-5; - - G4double x = log(KineticEnergy/(K*AtomicNumber*AtomicNumber)); - G4double eta = 0.5 + atan(a1*x + a3*x*x*x + a5*x*x*x*x*x)/pi ; - G4double alfa = (1. - eta)/eta; - return eta*pow((1. - GammaEnergyCut/KineticEnergy) , alfa); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4eBremsstrahlung::ComputePartialSumSigma(const G4ParticleDefinition* ParticleType, - G4double KineticEnergy, - const G4MaterialCutsCouple* couple) - -// Build the table of cross section per element. The table is built for MATERIALS. -// This table is used by DoIt to select randomly an element in the material. -{ - const G4Material* aMaterial= couple->GetMaterial(); - G4int NbOfElements = aMaterial->GetNumberOfElements(); - const G4ElementVector* theElementVector = aMaterial->GetElementVector(); - const G4double* theAtomNumDensityVector = aMaterial->GetAtomicNumDensityVector(); - size_t index = couple->GetIndex(); - G4double GammaEnergyCut = SecondaryEnergyThreshold(index); - - PartialSumSigma[index] = new G4DataVector(); - - G4double SIGMA = 0. ; - - for ( G4int Ielem=0 ; Ielem < NbOfElements ; Ielem++ ) - { - SIGMA += theAtomNumDensityVector[Ielem] * - ComputeCrossSectionPerAtom( ParticleType, KineticEnergy, - (*theElementVector)[Ielem]->GetZ(), - GammaEnergyCut ); - PartialSumSigma[index]->push_back(SIGMA); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4VParticleChange* G4eBremsstrahlung::PostStepDoIt(const G4Track& trackData, - const G4Step& stepData) -// -// The emitted gamma energy is sampled using a parametrized formula from L. Urban. -// This parametrization is derived from : -// cross-section values of Seltzer and Berger for electron energies 1 keV - 10 GeV, -// screened Bethe Heilter differential cross section above 10 GeV, -// Migdal corrections in both case. -// Seltzer & Berger: Nim B 12:95 (1985) -// Nelson, Hirayama & Rogers: Technical report 265 SLAC (1985) -// Migdal: Phys Rev 103:1811 (1956); Messel & Crawford: Pergamon Press (1970) -// -// A modified version of the random number techniques of Butcher & Messel is used -// (Nuc Phys 20(1960),15). -// -// GEANT4 internal units. -// -{ - static const G4double - ah10 = 4.67733E+00, ah11 =-6.19012E-01, ah12 = 2.02225E-02, - ah20 =-7.34101E+00, ah21 = 1.00462E+00, ah22 =-3.20985E-02, - ah30 = 2.93119E+00, ah31 =-4.03761E-01, ah32 = 1.25153E-02; - - static const G4double - bh10 = 4.23071E+00, bh11 =-6.10995E-01, bh12 = 1.95531E-02, - bh20 =-7.12527E+00, bh21 = 9.69160E-01, bh22 =-2.74255E-02, - bh30 = 2.69925E+00, bh31 =-3.63283E-01, bh32 = 9.55316E-03; - - static const G4double - al00 =-2.05398E+00, al01 = 2.38815E-02, al02 = 5.25483E-04, - al10 =-7.69748E-02, al11 =-6.91499E-02, al12 = 2.22453E-03, - al20 = 4.06463E-02, al21 =-1.01281E-02, al22 = 3.40919E-04; - - static const G4double - bl00 = 1.04133E+00, bl01 =-9.43291E-03, bl02 =-4.54758E-04, - bl10 = 1.19253E-01, bl11 = 4.07467E-02, bl12 =-1.30718E-03, - bl20 =-1.59391E-02, bl21 = 7.27752E-03, bl22 =-1.94405E-04; - - static const G4double MigdalConstant = classic_electr_radius - *electron_Compton_length - *electron_Compton_length/pi; - // const G4double LPMconstant = fine_structure_const*electron_mass_c2* - // electron_mass_c2/(8.*pi*hbarc) ; - G4double GammaEnergy ; - G4bool LPMOK = false ; - - aParticleChange.Initialize(trackData); - - //G4double LPMEnergy = LPMconstant*(aMaterial->GetRadlen()) ; - - const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); - const G4Material* aMaterial = couple->GetMaterial(); - const G4DynamicParticle* aDynamicParticle=trackData.GetDynamicParticle(); - G4double charge = aDynamicParticle->GetDefinition()->GetPDGCharge(); - - G4double KineticEnergy = aDynamicParticle->GetKineticEnergy(); - G4ParticleMomentum ParticleDirection = aDynamicParticle->GetMomentumDirection(); - - // Gamma production cut in this material - - G4double GammaEnergyCut = SecondaryEnergyThreshold(couple->GetIndex()); - if (GammaEnergyCut < MinThreshold) GammaEnergyCut = MinThreshold; - - // check against insufficient energy - if (KineticEnergy < GammaEnergyCut) - { - aParticleChange.SetMomentumChange( ParticleDirection ); - aParticleChange.SetEnergyChange( KineticEnergy ); - aParticleChange.SetLocalEnergyDeposit (0.); - aParticleChange.SetNumberOfSecondaries(0); - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - } - - // select randomly one element constituing the material - G4Element* anElement = SelectRandomAtom(couple); - - // Extract Z factors for this Element - G4double lnZ = 3.*(anElement->GetIonisation()->GetlogZ3()); - G4double FZ = lnZ* (4.- 0.55*lnZ); - G4double ZZ = anElement->GetIonisation()->GetZZ3(); - - // limits of the energy sampling - G4double TotalEnergy = KineticEnergy + electron_mass_c2; - G4double xmin = GammaEnergyCut/KineticEnergy; - G4double epsilmin = GammaEnergyCut/TotalEnergy; - G4double epsilmax = KineticEnergy/TotalEnergy; - - // Migdal factor - G4double - MigdalFactor = (aMaterial->GetElectronDensity())*MigdalConstant - /(epsilmax*epsilmax); - - // - G4double x, epsil, greject, migdal, grejmax; - G4double U = log(KineticEnergy/electron_mass_c2), U2 = U*U; - - // - // sample the energy rate of the emitted gamma for electron kinetic energy > 1 MeV - // - - do { - if (KineticEnergy > 1.*MeV) - { - // parameters - G4double ah1 = ah10 + ZZ* (ah11 + ZZ* ah12), - ah2 = ah20 + ZZ* (ah21 + ZZ* ah22), - ah3 = ah30 + ZZ* (ah31 + ZZ* ah32); - - G4double bh1 = bh10 + ZZ* (bh11 + ZZ* bh12), - bh2 = bh20 + ZZ* (bh21 + ZZ* bh22), - bh3 = bh30 + ZZ* (bh31 + ZZ* bh32); - - G4double ah = 1. + (ah1*U2 + ah2*U + ah3) / (U2*U); - G4double bh = 0.75 + (bh1*U2 + bh2*U + bh3) / (U2*U); - - // limit of the screening variable - G4double screenfac = - 136.*electron_mass_c2/((anElement->GetIonisation()->GetZ3())*TotalEnergy); - G4double screenmin = screenfac*epsilmin/(1.-epsilmin); - - // Compute the maximum of the rejection function - G4double F1 = std::max(ScreenFunction1(screenmin) - FZ ,0.); - G4double F2 = std::max(ScreenFunction2(screenmin) - FZ ,0.); - grejmax = (F1 - epsilmin* (F1*ah - bh*epsilmin*F2))/(42.392 - FZ); - - // sample the energy rate of the emitted Gamma - G4double screenvar; - - - do { - - x = pow(xmin, G4UniformRand()); - epsil = x*KineticEnergy/TotalEnergy; - screenvar = screenfac*epsil/(1-epsil); - F1 = std::max(ScreenFunction1(screenvar) - FZ ,0.); - F2 = std::max(ScreenFunction2(screenvar) - FZ ,0.); - migdal = (1. + MigdalFactor)/(1. + MigdalFactor/(x*x)); - greject = migdal*(F1 - epsil* (ah*F1 - bh*epsil*F2))/(42.392 - FZ); - } while( greject < G4UniformRand()*grejmax ); - - } - - else - { - // sample the energy rate of the emitted gamma for electron kinetic energy < 1 MeV - // - // parameters - G4double al0 = al00 + ZZ* (al01 + ZZ* al02), - al1 = al10 + ZZ* (al11 + ZZ* al12), - al2 = al20 + ZZ* (al21 + ZZ* al22); - - G4double bl0 = bl00 + ZZ* (bl01 + ZZ* bl02), - bl1 = bl10 + ZZ* (bl11 + ZZ* bl12), - bl2 = bl20 + ZZ* (bl21 + ZZ* bl22); - - G4double al = al0 + al1*U + al2*U2; - G4double bl = bl0 + bl1*U + bl2*U2; - - // Compute the maximum of the rejection function - grejmax = std::max(1. + xmin* (al + bl*xmin), 1.+al+bl); - G4double xm = -al/(2.*bl); - if ((xmin < xm)&&(xm < 1.)) grejmax = std::max(grejmax, 1.+ xm* (al + bl*xm)); - - // sample the energy rate of the emitted Gamma - - do { x = pow(xmin, G4UniformRand()); - migdal = (1. + MigdalFactor)/(1. + MigdalFactor/(x*x)); - greject = migdal*(1. + x* (al + bl*x)); - } while( greject < G4UniformRand()*grejmax ); - } - - GammaEnergy = x*KineticEnergy; - - if(LPMflag) - { - // take into account the supression due to the LPM effect - if (G4UniformRand() <= SupressionFunction(aMaterial,KineticEnergy,GammaEnergy)) - LPMOK = true ; - } - else - LPMOK = true ; - - } while (!LPMOK) ; - - - //protection: DO NOT PRODUCE a gamma with energy 0. ! - if (GammaEnergy <= 0.) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - // - // angles of the emitted gamma. ( Z - axis along the parent particle) - // - // universal distribution suggested by L. Urban (Geant3 manual (1993) Phys211), - // derived from Tsai distribution (Rev Mod Phys 49,421(1977)) - - G4double u; - const G4double a1 = 0.625 , a2 = 3.*a1 , d = 27. ; - - if (9./(9.+d) > G4UniformRand()) u = - log(G4UniformRand()*G4UniformRand())/a1 ; - else u = - log(G4UniformRand()*G4UniformRand())/a2 ; - - G4double Teta = u*electron_mass_c2/TotalEnergy ; - G4double Phi = twopi * G4UniformRand() ; - G4double dirx = sin(Teta)*cos(Phi) , diry = sin(Teta)*sin(Phi) , dirz = cos(Teta) ; - - G4ThreeVector GammaDirection ( dirx, diry, dirz); - GammaDirection.rotateUz(ParticleDirection); - - // create G4DynamicParticle object for the Gamma - G4DynamicParticle* aGamma= new G4DynamicParticle (G4Gamma::Gamma(), - GammaDirection, GammaEnergy); - - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(aGamma); - - // - // Update the incident particle - // - - G4double NewKinEnergy = KineticEnergy - GammaEnergy; - if (NewKinEnergy > 0.) - { - aParticleChange.SetMomentumChange( ParticleDirection ); - aParticleChange.SetEnergyChange( NewKinEnergy ); - aParticleChange.SetLocalEnergyDeposit (0.); - } - else - { - aParticleChange.SetEnergyChange( 0. ); - aParticleChange.SetLocalEnergyDeposit (0.); - if (charge<0.) aParticleChange.SetStatusChange(fStopAndKill); - else aParticleChange.SetStatusChange(fStopButAlive); - } - - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4Element* G4eBremsstrahlung::SelectRandomAtom(const G4MaterialCutsCouple* couple) const -{ - // select randomly 1 element within the material - - size_t index = couple->GetIndex(); - const G4Material* aMaterial = couple->GetMaterial(); - const G4int NumberOfElements = aMaterial->GetNumberOfElements(); - const G4ElementVector* theElementVector = aMaterial->GetElementVector(); - - G4double rval = G4UniformRand()*((*PartialSumSigma[index])[NumberOfElements-1]); - for ( G4int i=0; i < NumberOfElements; i++ ) - { - if (rval <= (*PartialSumSigma[index])[i]) return ((*theElementVector)[i]); - } - G4cout << " WARNING !!! - The Material '"<< aMaterial->GetName() - << "' has no elements, NULL pointer returned." << G4endl; - return 0; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - -G4double G4eBremsstrahlung::SupressionFunction(const G4Material* aMaterial, - G4double KineticEnergy,G4double GammaEnergy) -{ - // supression due to the LPM effect+polarisation of the medium/ - // supression due to the polarisation alone - const G4double MigdalConstant = classic_electr_radius* - electron_Compton_length* - electron_Compton_length/pi ; - - const G4double LPMconstant = fine_structure_const*electron_mass_c2* - electron_mass_c2/(8.*pi*hbarc) ; - G4double TotalEnergy,TotalEnergySquare,LPMEnergy,LPMGammaEnergyLimit, - LPMGammaEnergyLimit2,GammaEnergySquare,sp,s2lpm,supr,w,splim,Cnorm ; - - TotalEnergy = KineticEnergy+electron_mass_c2 ; - TotalEnergySquare = TotalEnergy*TotalEnergy ; - - LPMEnergy = LPMconstant*(aMaterial->GetRadlen()) ; - LPMGammaEnergyLimit = TotalEnergySquare/LPMEnergy ; - GammaEnergySquare = GammaEnergy*GammaEnergy ; - - LPMGammaEnergyLimit2 = LPMGammaEnergyLimit*LPMGammaEnergyLimit ; - splim = LPMGammaEnergyLimit2/(LPMGammaEnergyLimit2+MigdalConstant*TotalEnergySquare* - (aMaterial->GetElectronDensity())) ; - w = 1.+1./splim ; - - sp = GammaEnergySquare/(GammaEnergySquare+MigdalConstant*TotalEnergySquare* - (aMaterial->GetElectronDensity())) ; - if (LPMflag) - { - s2lpm = LPMEnergy*GammaEnergy/TotalEnergySquare; - if (s2lpm < 1.) - { - if ((1.-sp) < 1.e-6) w = s2lpm*(3.-sp); - else w = s2lpm*(1.+1./sp); - - Cnorm = 2./(sqrt(w*w+4.)-w) ; - supr = Cnorm*(sqrt(w*w+4.*s2lpm)-w)/2. ; - } - else supr = sp; - } - else supr = sp; - - supr /= sp; - return supr; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool G4eBremsstrahlung::StorePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - G4String filename; - - // store stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable->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; - } - - // store PartialSumSigma table (G4OrderedTable) - filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); - if ( !PartialSumSigma.Store(filename, ascii) ){ - G4cout << " FAIL PartialSumSigma.store 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 G4eBremsstrahlung::RetrievePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - // delete theLossTable and theMeanFreePathTable - if (theLossTable != 0) { - theLossTable->clearAndDestroy(); - delete theLossTable; - } - if (theMeanFreePathTable != 0) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - - - // get bining from EnergyLoss - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - G4String filename; - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); - - // retreive stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - theLossTable = new G4PhysicsTable(numOfCouples); - if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable0->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retreive mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - if ( !theMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retrieve PartialSumSigma table (G4OrderedTable) - PartialSumSigma.clearAndDestroy(); - PartialSumSigma.reserve(numOfCouples); - filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); - if ( !PartialSumSigma.Retrieve(filename, ascii) ){ - G4cout << " FAIL PartialSumSigma.retrieve in " << filename - << G4endl; - return false; - } - - G4cout << GetProcessName() << " for " << particle->GetParticleName() - << ": Success to retrieve the PhysicsTables from " - << directory << G4endl; - - if (particle==G4Electron::Electron()) - { - RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; - CounterOfElectronProcess++; - } - else - { - RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; - CounterOfPositronProcess++; - } - - BuildDEDXTable (*particle); - - if (particle==G4Electron::Electron()) PrintInfoDefinition(); - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eBremsstrahlung::PrintInfoDefinition() -{ - G4String comments = "Total cross sections from a NEW parametrisation" - " based on the EEDL data library. " - "\n Good description from 1 KeV to 100 GeV.\n" - " log scale extrapolation above 100 GeV \n" - " Gamma energy sampled from a parametrised formula."; - - G4cout << G4endl << GetProcessName() << ": " << comments - << "\n PhysicsTables from " - << G4BestUnit(LowerBoundLambda,"Energy") - << " to " << G4BestUnit(UpperBoundLambda,"Energy") - << " in " << NbinLambda << " bins. \n"; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlung52.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung52.cc new file mode 100644 index 0000000000..bbd677bb99 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlung52.cc @@ -0,0 +1,1152 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4eBremsstrahlung52.cc,v 1.1 2003/08/08 11:30:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// +// ------------ G4eBremsstrahlung52 physics process -------- +// by Michel Maire, 24 July 1996 +// +// 26-09-96 extension of the total crosssection above 100 GeV, M.Maire +// 1-10-96 new type G4OrderedTable; ComputePartialSumSigma(), M.Maire +// 16-10-96 DoIt() call to the non static GetEnergyCuts(), L.Urban +// 13-12-96 Sign corrected in grejmax and greject +// error definition of screenvar, L.Urban +// 20-03-97 new energy loss+ionisation+brems scheme, L.Urban +// 07-04-98 remove 'tracking cut' of the diffracted particle, MMa +// 13-08-98 new methods SetBining() PrintInfo() +// 03-03-99 Bug fixed in LPM effect, L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 07-08-00 new cross section/en.loss parametrisation, LPM flag , L.Urban +// 21-09-00 corrections in the LPM implementation, L.Urban +// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 21-09-01 completion of RetrievePhysicsTable() (mma) +// 29-10-01 all static functions no more inlined (mma) +// 08-11-01 particleMass becomes a local variable +// 11-11-02 fix of division by 0 (VI) +// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +// +// -------------------------------------------------------------- + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#include "G4eBremsstrahlung52.hh" +#include "G4EnergyLossTables.hh" +#include "G4ios.hh" +#include "G4UnitsTable.hh" +#include "G4ProductionCutsTable.hh" + +G4double G4eBremsstrahlung52::LowerBoundLambda = 1.*keV; +G4double G4eBremsstrahlung52::UpperBoundLambda = 100.*TeV; +G4int G4eBremsstrahlung52::NbinLambda = 100; +G4double G4eBremsstrahlung52::probsup = 1.00; +G4bool G4eBremsstrahlung52::LPMflag = true; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +// constructor + +G4eBremsstrahlung52::G4eBremsstrahlung52(const G4String& processName) + : G4VeEnergyLoss(processName), // initialization + theMeanFreePathTable(NULL) +{ // MinThreshold = 10*keV; + MinThreshold = 1*keV; } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +// destructor + +G4eBremsstrahlung52::~G4eBremsstrahlung52() +{ + if (theMeanFreePathTable) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + + PartialSumSigma.clearAndDestroy(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eBremsstrahlung52::SetLowerBoundLambda(G4double val) + {LowerBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eBremsstrahlung52::SetUpperBoundLambda(G4double val) + {UpperBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eBremsstrahlung52::SetNbinLambda(G4int n) + {NbinLambda = n;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4eBremsstrahlung52::GetLowerBoundLambda() + {return LowerBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4eBremsstrahlung52::GetUpperBoundLambda() + {return UpperBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int G4eBremsstrahlung52::GetNbinLambda() + {return NbinLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eBremsstrahlung52::SetLPMflag(G4bool val) + {LPMflag = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4eBremsstrahlung52::GetLPMflag() + {return LPMflag;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eBremsstrahlung52::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) +{ + if( !CutsWhereModified() && theLossTable) return; + + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + BuildLossTable(aParticleType); + + if (&aParticleType==G4Electron::Electron()) + { + RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; + CounterOfElectronProcess++; + } + else + { + RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; + CounterOfPositronProcess++; + } + + BuildLambdaTable(aParticleType); + + BuildDEDXTable (aParticleType); + + if (&aParticleType==G4Electron::Electron()) PrintInfoDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eBremsstrahlung52::BuildLossTable(const G4ParticleDefinition& aParticleType) +{ + G4double KineticEnergy,TotalEnergy,bremloss,Z,x, + losslim,loss,rate,natom,Cut; + + const G4double MinKinEnergy = 1.*keV; + const G4double Thigh = 100.*GeV; + const G4double Cuthigh = 50.*GeV; + const G4double Factorhigh = 36./(1450.*GeV); + const G4double coef1 = -0.5, coef2 = 2./9.; + + G4double particleMass = aParticleType.GetPDGMass() ; + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} + theLossTable = new G4PhysicsTable(numOfCouples); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); + + // loop for materials + // + for (size_t J=0; JGetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); + const G4int NumberOfElements = material->GetNumberOfElements(); + + // loop for the kinetic energy values + for (G4int i=0; iGetLowEdgeEnergy(i) ; + TotalEnergy = KineticEnergy+particleMass ; + Cut = SecondaryEnergyThreshold(J); + if (Cut < MinThreshold) Cut = MinThreshold; + if (Cut > KineticEnergy) Cut = KineticEnergy; + + bremloss = 0.; + + if (KineticEnergy>MinKinEnergy) + { + // loop for elements in the material + for (G4int iel=0; ielGetZ(); + natom = theAtomicNumDensityVector[iel] ; + if (KineticEnergy <= Thigh) + { + //loss for MinKinEnergy100 GeV + x=log(Thigh/particleMass) ; + if (CutGetElectronDensity()) ; + + // now compute the correction due to the supression(s) + G4double kmin = 1.*eV ; + G4double kmax = Cut ; + + if(kmax > kmin) + { + + G4double floss = 0. ; + G4int nmax = 100 ; + + G4double vmin=log(kmin); + G4double vmax=log(kmax) ; + G4int nn = (G4int)(nmax*(vmax-vmin)/(log(HighestKineticEnergy)-vmin)) ; + G4double u,fac,c,v,dv ; + if(nn > 0) + { + dv = (vmax-vmin)/nn ; + v = vmin-dv ; + for(G4int n=0; n<=nn; n++) + { + v += dv; u = exp(v); + fac = u*SupressionFunction(material,KineticEnergy,u); + probsup = 1.; + fac *= probsup*(u*u/(u*u+kp2))+1.-probsup; + if ((n==0)||(n==nn)) c=0.5; + else c=1. ; + fac *= c ; + floss += fac ; + } + floss *=dv/(kmax-kmin); + } + else floss = 1.; + if(floss > 1.) floss = 1.; + // correct the loss + bremloss *= floss; + } + + if(bremloss < 0.) bremloss = 0.; + aVector->PutValue(i,bremloss); + } + + theLossTable->insert(aVector); + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlung52::ComputeBremLoss(G4double Z,G4double, + G4double T,G4double Cut,G4double) + +// compute loss due to soft brems +{ + static const G4double beta=1.00,ksi=2.00 ; + static const G4double clossh = 0.254 , closslow = 1./3. , alosslow = 1. ; + static const G4double Tlim= 10.*MeV ; + + static const G4double xlim = 1.2 ; + static const G4int NZ = 8 ; + static const G4int Nloss = 11 ; + static const G4double ZZ[NZ] = + {2.,4.,6.,14.,26.,50.,82.,92.}; + static const G4double coefloss[NZ][Nloss] = { + // Z=2 + { 0.98916, 0.47564, -0.2505, -0.45186, 0.14462, + 0.21307, -0.013738, -0.045689, -0.0042914, 0.0034429, + 0.00064189}, + + // Z=4 + { 1.0626, 0.37662, -0.23646, -0.45188, 0.14295, + 0.22906, -0.011041, -0.051398, -0.0055123, 0.0039919, + 0.00078003}, + // Z=6 + { 1.0954, 0.315, -0.24011, -0.43849, 0.15017, + 0.23001, -0.012846, -0.052555, -0.0055114, 0.0041283, + 0.00080318}, + + // Z=14 + { 1.1649, 0.18976, -0.24972, -0.30124, 0.1555, + 0.13565, -0.024765, -0.027047, -0.00059821, 0.0019373, + 0.00027647}, + + // Z=26 + { 1.2261, 0.14272, -0.25672, -0.28407, 0.13874, + 0.13586, -0.020562, -0.026722, -0.00089557, 0.0018665, + 0.00026981}, + + // Z=50 + { 1.3147, 0.020049, -0.35543, -0.13927, 0.17666, + 0.073746, -0.036076, -0.013407, 0.0025727, 0.00084005, + -1.4082e-05}, + + // Z=82 + { 1.3986, -0.10586, -0.49187, -0.0048846, 0.23621, + 0.031652, -0.052938, -0.0076639, 0.0048181, 0.00056486, + -0.00011995}, + + // Z=92 + { 1.4217, -0.116, -0.55497, -0.044075, 0.27506, + 0.081364, -0.058143, -0.023402, 0.0031322, 0.0020201, + 0.00017519} + + } ; + static G4double aaa=0.414 ; + static G4double bbb=0.345 ; + static G4double ccc=0.460 ; + + G4int iz = 0; + G4double delz = 1.e6; + for (G4int ii=0; ii=0; j--) fl = fl*xx+coefloss[iz][j]; + if (fl < 0.) fl = 0.; + } + + G4double loss; + G4double E = T+electron_mass_c2 ; + + loss = Z*(Z+ksi)*E*E/(T+E)*exp(beta*log(Cut/T))*(2.-clossh*exp(log(Z)/4.)); + if (T <= Tlim) loss /= exp(closslow*log(Tlim/T)); + if( T <= Cut) loss *= exp(alosslow*log(T/Cut)); + + // correction ................................ + loss *= (aaa+bbb*T/Tlim)/(1.+ccc*T/Tlim); + loss *= fl; + loss /= Avogadro; + + return loss; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlung52::ComputePositronCorrFactorLoss( + G4double Z,G4double KineticEnergy,G4double GammaCut) + +//calculates the correction factor for the energy loss due to bremsstrahlung for positrons +//the same correction is in the (discrete) bremsstrahlung + +{ + static const G4double K = 132.9416*eV ; + static const G4double a1=4.15e-1, a3=2.10e-3, a5=54.0e-5 ; + + G4double x = log(KineticEnergy/(K*Z*Z)), x2 = x*x, x3 = x2*x; + G4double eta = 0.5+atan(a1*x+a3*x3+a5*x3*x2)/pi; + G4double e0 = GammaCut/KineticEnergy; + + G4double factor(0.); + if (e0!=1.0) { factor=log(1.-e0)/eta; factor=exp(factor);} + factor = eta*(1.-factor)/e0; + + return factor; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eBremsstrahlung52::BuildLambdaTable( + const G4ParticleDefinition& ParticleType) +{ + G4double LowEdgeEnergy , Value; + G4double FixedEnergy = (LowerBoundLambda + UpperBoundLambda)/2.; + + //create table + // + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + //create table + if (theMeanFreePathTable) {theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + + PartialSumSigma.clearAndDestroy(); + PartialSumSigma.resize(numOfCouples); + + G4PhysicsLogVector* ptrVector; + for ( size_t J=0; JGetMaterialCutsCouple(J); + + for ( G4int i = 0 ; i < NbinLambda ; i++ ) + { + LowEdgeEnergy = ptrVector->GetLowEdgeEnergy( i ) ; + Value = ComputeMeanFreePath( &ParticleType, LowEdgeEnergy,couple); + ptrVector->PutValue( i , Value ) ; + } + + theMeanFreePathTable->insertAt( J , ptrVector ); + + // Compute the PartialSumSigma table at a given fixed energy + ComputePartialSumSigma( &ParticleType, FixedEnergy, couple) ; + } + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlung52::ComputeMeanFreePath( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple) +{ + const G4Material* aMaterial = couple->GetMaterial(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector() ; + const G4double* theAtomNumDensityVector = aMaterial->GetAtomicNumDensityVector(); + G4double GammaEnergyCut = SecondaryEnergyThreshold(couple->GetIndex()); + if (GammaEnergyCut < MinThreshold) GammaEnergyCut = MinThreshold; + + G4double SIGMA = 0; + + for ( size_t i=0 ; i < aMaterial->GetNumberOfElements() ; i++ ) + { + SIGMA += theAtomNumDensityVector[i] * + ComputeCrossSectionPerAtom( ParticleType, KineticEnergy, + (*theElementVector)[i]->GetZ(), + GammaEnergyCut ); + } + + // now compute the correction due to the supression(s) + + G4double kmax = KineticEnergy ; + G4double kmin = GammaEnergyCut ; + + static const G4double MigdalConstant = classic_electr_radius + *electron_Compton_length + *electron_Compton_length/pi; + G4double TotalEnergy = KineticEnergy+electron_mass_c2 ; + G4double kp2 = MigdalConstant*TotalEnergy*TotalEnergy* + (aMaterial->GetElectronDensity()) ; + + if(kmax > kmin) + { + G4double fsig = 0.; + G4int nmax = 100 ; + G4double vmin=log(kmin); + G4double vmax=log(kmax) ; + G4int nn = (G4int)(nmax*(vmax-vmin)/(log(HighestKineticEnergy)-vmin)); + G4double u,fac,c,v,dv,y ; + if(nn > 0) + { + dv = (vmax-vmin)/nn ; + v = vmin-dv ; + + for(G4int n=0; n<=nn; n++) + { + v += dv; u = exp(v); + fac = SupressionFunction(aMaterial,KineticEnergy,u); + y = u/kmax; + fac *= (4.-4.*y+3.*y*y)/3.; + fac *= probsup*(u*u/(u*u+kp2))+1.-probsup; + if ((n==0)||(n==nn)) c=0.5; + else c=1. ; + fac *= c; + fsig += fac; + } + y = kmin/kmax ; + fsig *=dv/(-4.*log(y)/3.-4.*(1.-y)/3.+0.5*(1.-y*y)); + } + else fsig = 1.; + if (fsig > 1.) fsig = 1.; + // correct the cross section + SIGMA *= fsig; + } + + return SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlung52::ComputeCrossSectionPerAtom( + const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, G4double AtomicNumber, + G4double GammaEnergyCut) + +// Calculates the cross section per atom in GEANT4 internal units. +// + +{ + G4double CrossSection = 0.0 ; + if ( KineticEnergy < 1*keV ) return CrossSection; + if ( KineticEnergy <= GammaEnergyCut ) return CrossSection; + + static const G4double ksi=2.0, alfa=1.00; + static const G4double csigh = 0.127, csiglow = 0.25, asiglow = 0.020*MeV ; + static const G4double Tlim = 10.*MeV ; + + static const G4double xlim = 1.2 ; + static const G4int NZ = 8 ; + static const G4int Nsig = 11 ; + static const G4double ZZ[NZ] = + {2.,4.,6.,14.,26.,50.,82.,92.} ; + static const G4double coefsig[NZ][Nsig] = { + // Z=2 + { 0.4638, 0.37748, 0.32249, -0.060362, -0.065004, + -0.033457, -0.004583, 0.011954, 0.0030404, -0.0010077, + -0.00028131}, + + // Z=4 + { 0.50008, 0.33483, 0.34364, -0.086262, -0.055361, + -0.028168, -0.0056172, 0.011129, 0.0027528, -0.00092265, + -0.00024348}, + + // Z=6 + { 0.51587, 0.31095, 0.34996, -0.11623, -0.056167, + -0.0087154, 0.00053943, 0.0054092, 0.00077685, -0.00039635, + -6.7818e-05}, + + // Z=14 + { 0.55058, 0.25629, 0.35854, -0.080656, -0.054308, + -0.049933, -0.00064246, 0.016597, 0.0021789, -0.001327, + -0.00025983}, + + // Z=26 + { 0.5791, 0.26152, 0.38953, -0.17104, -0.099172, + 0.024596, 0.023718, -0.0039205, -0.0036658, 0.00041749, + 0.00023408}, + + // Z=50 + { 0.62085, 0.27045, 0.39073, -0.37916, -0.18878, + 0.23905, 0.095028, -0.068744, -0.023809, 0.0062408, + 0.0020407}, + + // Z=82 + { 0.66053, 0.24513, 0.35404, -0.47275, -0.22837, + 0.35647, 0.13203, -0.1049, -0.034851, 0.0095046, + 0.0030535}, + + // Z=92 + { 0.67143, 0.23079, 0.32256, -0.46248, -0.20013, + 0.3506, 0.11779, -0.1024, -0.032013, 0.0092279, + 0.0028592} + + } ; + + G4int iz = 0 ; + G4double delz = 1.e6 ; + for (G4int ii=0; ii=0; j--) + { + fs = fs*xx+coefsig[iz][j] ; + } + if(fs < 0.) fs = 0. ; + } + + + CrossSection = AtomicNumber*(AtomicNumber+ksi)* + (1.-csigh*exp(log(AtomicNumber)/4.))* + pow(log(KineticEnergy/GammaEnergyCut),alfa) ; + + if(KineticEnergy <= Tlim) + CrossSection *= exp(csiglow*log(Tlim/KineticEnergy))* + (1.+asiglow/(sqrt(AtomicNumber)*KineticEnergy)) ; + + if (ParticleType == G4Positron::Positron()) + CrossSection *= ComputePositronCorrFactorSigma(AtomicNumber, KineticEnergy, + GammaEnergyCut); + CrossSection *= fs ; + CrossSection /= Avogadro ; + + if (CrossSection < 0.) CrossSection = 0.; + return CrossSection; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4eBremsstrahlung52::ComputePositronCorrFactorSigma( G4double AtomicNumber, + G4double KineticEnergy, G4double GammaEnergyCut) + +// Calculates the correction factor for the total cross section of the positron bremsstrahl. +// Eta is the ratio of positron to electron energy loss by bremstrahlung. +// A parametrized formula from L. Urban is used to estimate eta. It is a fit to the results +// of L. Kim & al: Phys Rev. A33,3002 (1986) + +{ + static const G4double K = 132.9416*eV; + static const G4double a1 = 4.15e-1, a3 = 2.10e-3, a5 = 54.0e-5; + + G4double x = log(KineticEnergy/(K*AtomicNumber*AtomicNumber)); + G4double eta = 0.5 + atan(a1*x + a3*x*x*x + a5*x*x*x*x*x)/pi ; + G4double alfa = (1. - eta)/eta; + return eta*pow((1. - GammaEnergyCut/KineticEnergy) , alfa); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eBremsstrahlung52::ComputePartialSumSigma(const G4ParticleDefinition* ParticleType, + G4double KineticEnergy, + const G4MaterialCutsCouple* couple) + +// Build the table of cross section per element. The table is built for MATERIALS. +// This table is used by DoIt to select randomly an element in the material. +{ + const G4Material* aMaterial= couple->GetMaterial(); + G4int NbOfElements = aMaterial->GetNumberOfElements(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + const G4double* theAtomNumDensityVector = aMaterial->GetAtomicNumDensityVector(); + size_t index = couple->GetIndex(); + G4double GammaEnergyCut = SecondaryEnergyThreshold(index); + + PartialSumSigma[index] = new G4DataVector(); + + G4double SIGMA = 0. ; + + for ( G4int Ielem=0 ; Ielem < NbOfElements ; Ielem++ ) + { + SIGMA += theAtomNumDensityVector[Ielem] * + ComputeCrossSectionPerAtom( ParticleType, KineticEnergy, + (*theElementVector)[Ielem]->GetZ(), + GammaEnergyCut ); + PartialSumSigma[index]->push_back(SIGMA); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VParticleChange* G4eBremsstrahlung52::PostStepDoIt(const G4Track& trackData, + const G4Step& stepData) +// +// The emitted gamma energy is sampled using a parametrized formula from L. Urban. +// This parametrization is derived from : +// cross-section values of Seltzer and Berger for electron energies 1 keV - 10 GeV, +// screened Bethe Heilter differential cross section above 10 GeV, +// Migdal corrections in both case. +// Seltzer & Berger: Nim B 12:95 (1985) +// Nelson, Hirayama & Rogers: Technical report 265 SLAC (1985) +// Migdal: Phys Rev 103:1811 (1956); Messel & Crawford: Pergamon Press (1970) +// +// A modified version of the random number techniques of Butcher & Messel is used +// (Nuc Phys 20(1960),15). +// +// GEANT4 internal units. +// +{ + static const G4double + ah10 = 4.67733E+00, ah11 =-6.19012E-01, ah12 = 2.02225E-02, + ah20 =-7.34101E+00, ah21 = 1.00462E+00, ah22 =-3.20985E-02, + ah30 = 2.93119E+00, ah31 =-4.03761E-01, ah32 = 1.25153E-02; + + static const G4double + bh10 = 4.23071E+00, bh11 =-6.10995E-01, bh12 = 1.95531E-02, + bh20 =-7.12527E+00, bh21 = 9.69160E-01, bh22 =-2.74255E-02, + bh30 = 2.69925E+00, bh31 =-3.63283E-01, bh32 = 9.55316E-03; + + static const G4double + al00 =-2.05398E+00, al01 = 2.38815E-02, al02 = 5.25483E-04, + al10 =-7.69748E-02, al11 =-6.91499E-02, al12 = 2.22453E-03, + al20 = 4.06463E-02, al21 =-1.01281E-02, al22 = 3.40919E-04; + + static const G4double + bl00 = 1.04133E+00, bl01 =-9.43291E-03, bl02 =-4.54758E-04, + bl10 = 1.19253E-01, bl11 = 4.07467E-02, bl12 =-1.30718E-03, + bl20 =-1.59391E-02, bl21 = 7.27752E-03, bl22 =-1.94405E-04; + + static const G4double MigdalConstant = classic_electr_radius + *electron_Compton_length + *electron_Compton_length/pi; + // const G4double LPMconstant = fine_structure_const*electron_mass_c2* + // electron_mass_c2/(8.*pi*hbarc) ; + G4double GammaEnergy ; + G4bool LPMOK = false ; + + aParticleChange.Initialize(trackData); + + //G4double LPMEnergy = LPMconstant*(aMaterial->GetRadlen()) ; + + const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); + const G4Material* aMaterial = couple->GetMaterial(); + const G4DynamicParticle* aDynamicParticle=trackData.GetDynamicParticle(); + G4double charge = aDynamicParticle->GetDefinition()->GetPDGCharge(); + + G4double KineticEnergy = aDynamicParticle->GetKineticEnergy(); + G4ParticleMomentum ParticleDirection = aDynamicParticle->GetMomentumDirection(); + + // Gamma production cut in this material + + G4double GammaEnergyCut = SecondaryEnergyThreshold(couple->GetIndex()); + if (GammaEnergyCut < MinThreshold) GammaEnergyCut = MinThreshold; + + // check against insufficient energy + if (KineticEnergy < GammaEnergyCut) + { + aParticleChange.SetMomentumChange( ParticleDirection ); + aParticleChange.SetEnergyChange( KineticEnergy ); + aParticleChange.SetLocalEnergyDeposit (0.); + aParticleChange.SetNumberOfSecondaries(0); + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + } + + // select randomly one element constituing the material + G4Element* anElement = SelectRandomAtom(couple); + + // Extract Z factors for this Element + G4double lnZ = 3.*(anElement->GetIonisation()->GetlogZ3()); + G4double FZ = lnZ* (4.- 0.55*lnZ); + G4double ZZ = anElement->GetIonisation()->GetZZ3(); + + // limits of the energy sampling + G4double TotalEnergy = KineticEnergy + electron_mass_c2; + G4double xmin = GammaEnergyCut/KineticEnergy; + G4double epsilmin = GammaEnergyCut/TotalEnergy; + G4double epsilmax = KineticEnergy/TotalEnergy; + + // Migdal factor + G4double + MigdalFactor = (aMaterial->GetElectronDensity())*MigdalConstant + /(epsilmax*epsilmax); + + // + G4double x, epsil, greject, migdal, grejmax; + G4double U = log(KineticEnergy/electron_mass_c2), U2 = U*U; + + // + // sample the energy rate of the emitted gamma for electron kinetic energy > 1 MeV + // + + do { + if (KineticEnergy > 1.*MeV) + { + // parameters + G4double ah1 = ah10 + ZZ* (ah11 + ZZ* ah12), + ah2 = ah20 + ZZ* (ah21 + ZZ* ah22), + ah3 = ah30 + ZZ* (ah31 + ZZ* ah32); + + G4double bh1 = bh10 + ZZ* (bh11 + ZZ* bh12), + bh2 = bh20 + ZZ* (bh21 + ZZ* bh22), + bh3 = bh30 + ZZ* (bh31 + ZZ* bh32); + + G4double ah = 1. + (ah1*U2 + ah2*U + ah3) / (U2*U); + G4double bh = 0.75 + (bh1*U2 + bh2*U + bh3) / (U2*U); + + // limit of the screening variable + G4double screenfac = + 136.*electron_mass_c2/((anElement->GetIonisation()->GetZ3())*TotalEnergy); + G4double screenmin = screenfac*epsilmin/(1.-epsilmin); + + // Compute the maximum of the rejection function + G4double F1 = std::max(ScreenFunction1(screenmin) - FZ ,0.); + G4double F2 = std::max(ScreenFunction2(screenmin) - FZ ,0.); + grejmax = (F1 - epsilmin* (F1*ah - bh*epsilmin*F2))/(42.392 - FZ); + + // sample the energy rate of the emitted Gamma + G4double screenvar; + + + do { + + x = pow(xmin, G4UniformRand()); + epsil = x*KineticEnergy/TotalEnergy; + screenvar = screenfac*epsil/(1-epsil); + F1 = std::max(ScreenFunction1(screenvar) - FZ ,0.); + F2 = std::max(ScreenFunction2(screenvar) - FZ ,0.); + migdal = (1. + MigdalFactor)/(1. + MigdalFactor/(x*x)); + greject = migdal*(F1 - epsil* (ah*F1 - bh*epsil*F2))/(42.392 - FZ); + } while( greject < G4UniformRand()*grejmax ); + + } + + else + { + // sample the energy rate of the emitted gamma for electron kinetic energy < 1 MeV + // + // parameters + G4double al0 = al00 + ZZ* (al01 + ZZ* al02), + al1 = al10 + ZZ* (al11 + ZZ* al12), + al2 = al20 + ZZ* (al21 + ZZ* al22); + + G4double bl0 = bl00 + ZZ* (bl01 + ZZ* bl02), + bl1 = bl10 + ZZ* (bl11 + ZZ* bl12), + bl2 = bl20 + ZZ* (bl21 + ZZ* bl22); + + G4double al = al0 + al1*U + al2*U2; + G4double bl = bl0 + bl1*U + bl2*U2; + + // Compute the maximum of the rejection function + grejmax = std::max(1. + xmin* (al + bl*xmin), 1.+al+bl); + G4double xm = -al/(2.*bl); + if ((xmin < xm)&&(xm < 1.)) grejmax = std::max(grejmax, 1.+ xm* (al + bl*xm)); + + // sample the energy rate of the emitted Gamma + + do { x = pow(xmin, G4UniformRand()); + migdal = (1. + MigdalFactor)/(1. + MigdalFactor/(x*x)); + greject = migdal*(1. + x* (al + bl*x)); + } while( greject < G4UniformRand()*grejmax ); + } + + GammaEnergy = x*KineticEnergy; + + if(LPMflag) + { + // take into account the supression due to the LPM effect + if (G4UniformRand() <= SupressionFunction(aMaterial,KineticEnergy,GammaEnergy)) + LPMOK = true ; + } + else + LPMOK = true ; + + } while (!LPMOK) ; + + + //protection: DO NOT PRODUCE a gamma with energy 0. ! + if (GammaEnergy <= 0.) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + // + // angles of the emitted gamma. ( Z - axis along the parent particle) + // + // universal distribution suggested by L. Urban (Geant3 manual (1993) Phys211), + // derived from Tsai distribution (Rev Mod Phys 49,421(1977)) + + G4double u; + const G4double a1 = 0.625 , a2 = 3.*a1 , d = 27. ; + + if (9./(9.+d) > G4UniformRand()) u = - log(G4UniformRand()*G4UniformRand())/a1 ; + else u = - log(G4UniformRand()*G4UniformRand())/a2 ; + + G4double Teta = u*electron_mass_c2/TotalEnergy ; + G4double Phi = twopi * G4UniformRand() ; + G4double dirx = sin(Teta)*cos(Phi) , diry = sin(Teta)*sin(Phi) , dirz = cos(Teta) ; + + G4ThreeVector GammaDirection ( dirx, diry, dirz); + GammaDirection.rotateUz(ParticleDirection); + + // create G4DynamicParticle object for the Gamma + G4DynamicParticle* aGamma= new G4DynamicParticle (G4Gamma::Gamma(), + GammaDirection, GammaEnergy); + + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(aGamma); + + // + // Update the incident particle + // + + G4double NewKinEnergy = KineticEnergy - GammaEnergy; + if (NewKinEnergy > 0.) + { + aParticleChange.SetMomentumChange( ParticleDirection ); + aParticleChange.SetEnergyChange( NewKinEnergy ); + aParticleChange.SetLocalEnergyDeposit (0.); + } + else + { + aParticleChange.SetEnergyChange( 0. ); + aParticleChange.SetLocalEnergyDeposit (0.); + if (charge<0.) aParticleChange.SetStatusChange(fStopAndKill); + else aParticleChange.SetStatusChange(fStopButAlive); + } + + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4Element* G4eBremsstrahlung52::SelectRandomAtom(const G4MaterialCutsCouple* couple) const +{ + // select randomly 1 element within the material + + size_t index = couple->GetIndex(); + const G4Material* aMaterial = couple->GetMaterial(); + const G4int NumberOfElements = aMaterial->GetNumberOfElements(); + const G4ElementVector* theElementVector = aMaterial->GetElementVector(); + + G4double rval = G4UniformRand()*((*PartialSumSigma[index])[NumberOfElements-1]); + for ( G4int i=0; i < NumberOfElements; i++ ) + { + if (rval <= (*PartialSumSigma[index])[i]) return ((*theElementVector)[i]); + } + G4cout << " WARNING !!! - The Material '"<< aMaterial->GetName() + << "' has no elements, NULL pointer returned." << G4endl; + return 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + +G4double G4eBremsstrahlung52::SupressionFunction(const G4Material* aMaterial, + G4double KineticEnergy,G4double GammaEnergy) +{ + // supression due to the LPM effect+polarisation of the medium/ + // supression due to the polarisation alone + const G4double MigdalConstant = classic_electr_radius* + electron_Compton_length* + electron_Compton_length/pi ; + + const G4double LPMconstant = fine_structure_const*electron_mass_c2* + electron_mass_c2/(8.*pi*hbarc) ; + G4double TotalEnergy,TotalEnergySquare,LPMEnergy,LPMGammaEnergyLimit, + LPMGammaEnergyLimit2,GammaEnergySquare,sp,s2lpm,supr,w,splim,Cnorm ; + + TotalEnergy = KineticEnergy+electron_mass_c2 ; + TotalEnergySquare = TotalEnergy*TotalEnergy ; + + LPMEnergy = LPMconstant*(aMaterial->GetRadlen()) ; + LPMGammaEnergyLimit = TotalEnergySquare/LPMEnergy ; + GammaEnergySquare = GammaEnergy*GammaEnergy ; + + LPMGammaEnergyLimit2 = LPMGammaEnergyLimit*LPMGammaEnergyLimit ; + splim = LPMGammaEnergyLimit2/(LPMGammaEnergyLimit2+MigdalConstant*TotalEnergySquare* + (aMaterial->GetElectronDensity())) ; + w = 1.+1./splim ; + + sp = GammaEnergySquare/(GammaEnergySquare+MigdalConstant*TotalEnergySquare* + (aMaterial->GetElectronDensity())) ; + if (LPMflag) + { + s2lpm = LPMEnergy*GammaEnergy/TotalEnergySquare; + if (s2lpm < 1.) + { + if ((1.-sp) < 1.e-6) w = s2lpm*(3.-sp); + else w = s2lpm*(1.+1./sp); + + Cnorm = 2./(sqrt(w*w+4.)-w) ; + supr = Cnorm*(sqrt(w*w+4.*s2lpm)-w)/2. ; + } + else supr = sp; + } + else supr = sp; + + supr /= sp; + return supr; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4eBremsstrahlung52::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + + // store stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable->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; + } + + // store PartialSumSigma table (G4OrderedTable) + filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); + if ( !PartialSumSigma.Store(filename, ascii) ){ + G4cout << " FAIL PartialSumSigma.store 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 G4eBremsstrahlung52::RetrievePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + // delete theLossTable and theMeanFreePathTable + if (theLossTable != 0) { + theLossTable->clearAndDestroy(); + delete theLossTable; + } + if (theMeanFreePathTable != 0) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + + + // get bining from EnergyLoss + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + G4String filename; + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(0); + + // retreive stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + theLossTable = new G4PhysicsTable(numOfCouples); + if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable0->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + if ( !theMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retrieve PartialSumSigma table (G4OrderedTable) + PartialSumSigma.clearAndDestroy(); + PartialSumSigma.reserve(numOfCouples); + filename = GetPhysicsTableFileName(particle,directory,"PartSumSigma",ascii); + if ( !PartialSumSigma.Retrieve(filename, ascii) ){ + G4cout << " FAIL PartialSumSigma.retrieve in " << filename + << G4endl; + return false; + } + + G4cout << GetProcessName() << " for " << particle->GetParticleName() + << ": Success to retrieve the PhysicsTables from " + << directory << G4endl; + + if (particle==G4Electron::Electron()) + { + RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; + CounterOfElectronProcess++; + } + else + { + RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; + CounterOfPositronProcess++; + } + + BuildDEDXTable (*particle); + + if (particle==G4Electron::Electron()) PrintInfoDefinition(); + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eBremsstrahlung52::PrintInfoDefinition() +{ + G4String comments = "Total cross sections from a NEW parametrisation" + " based on the EEDL data library. " + "\n Good description from 1 KeV to 100 GeV.\n" + " log scale extrapolation above 100 GeV \n" + " Gamma energy sampled from a parametrised formula."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " + << G4BestUnit(LowerBoundLambda,"Energy") + << " to " << G4BestUnit(UpperBoundLambda,"Energy") + << " in " << NbinLambda << " bins. \n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc index 38f0c2fc32..0777a48fe9 100644 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc +++ b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungModel.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4eBremsstrahlungModel.cc,v 1.14 2003/07/21 12:52:23 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -63,7 +65,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4eBremsstrahlungModel::G4eBremsstrahlungModel(const G4ParticleDefinition* p, +G4eBremsstrahlungModel::G4eBremsstrahlungModel(const G4ParticleDefinition* p, const G4String& nam) : G4VEmModel(nam), particle(0), @@ -141,8 +143,8 @@ void G4eBremsstrahlungModel::Initialise(const G4ParticleDefinition* p, for (size_t ii=0; iiGetMaterialCutsCouple(i); @@ -156,7 +158,7 @@ void G4eBremsstrahlungModel::Initialise(const G4ParticleDefinition* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4eBremsstrahlungModel::ComputeDEDX(const G4Material* material, +G4double G4eBremsstrahlungModel::ComputeDEDX(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double cutEnergy) @@ -165,7 +167,7 @@ G4double G4eBremsstrahlungModel::ComputeDEDX(const G4Material* material, if(kineticEnergy < lowKinEnergy) return 0.0; const G4double thigh = 100.*GeV; - + G4double cut = std::min(cutEnergy, kineticEnergy); G4double rate, loss; @@ -173,6 +175,7 @@ G4double G4eBremsstrahlungModel::ComputeDEDX(const G4Material* material, const G4double coef1 = -0.5; const G4double coef2 = 2./9.; + const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); const G4double* theAtomicNumDensityVector = material->GetAtomicNumDensityVector(); @@ -194,7 +197,7 @@ G4double G4eBremsstrahlungModel::ComputeDEDX(const G4Material* material, // extrapolation for KineticEnergy>100 GeV } else { - + // G4double xhigh = log(thigh/electron_mass_c2); G4double cuthigh = thigh*0.5; @@ -330,9 +333,9 @@ G4double G4eBremsstrahlungModel::ComputeBremLoss(G4double Z, G4double T, G4double delz = 1.e6; for (G4int ii=0; ii= tmax) return cross; + const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector() ; const G4double* theAtomNumDensityVector = material->GetAtomicNumDensityVector(); diff --git a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungSTD.cc b/source/processes/electromagnetic/standard/src/G4eBremsstrahlungSTD.cc deleted file mode 100644 index 6e9e54edc4..0000000000 --- a/source/processes/electromagnetic/standard/src/G4eBremsstrahlungSTD.cc +++ /dev/null @@ -1,121 +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. * -// ******************************************************************** -// -// -// ------------------------------------------------------------------- -// -// GEANT4 Class file -// -// -// File name: G4eBremsstrahlungSTD -// -// Author: Michel Maire -// -// Creation date: 26.06.1996 -// -// Modifications: -// -// 26-09-96 extension of the total crosssection above 100 GeV, M.Maire -// 1-10-96 new type G4OrderedTable; ComputePartialSumSigma(), M.Maire -// 16-10-96 DoIt() call to the non static GetEnergyCuts(), L.Urban -// 13-12-96 Sign corrected in grejmax and greject -// error definition of screenvar, L.Urban -// 20-03-97 new energy loss+ionisation+brems scheme, L.Urban -// 07-04-98 remove 'tracking cut' of the diffracted particle, MMa -// 13-08-98 new methods SetBining() PrintInfo() -// 03-03-99 Bug fixed in LPM effect, L.Urban -// 10-02-00 modifications , new e.m. structure, L.Urban -// 07-08-00 new cross section/en.loss parametrisation, LPM flag , L.Urban -// 21-09-00 corrections in the LPM implementation, L.Urban -// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation -// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 17-09-01 migration of Materials to pure STL (mma) -// 21-09-01 completion of RetrievePhysicsTable() (mma) -// 29-10-01 all static functions no more inlined (mma) -// 08-11-01 particleMass becomes a local variable -// 30-04-02 V.Ivanchenko update to new design -// 23-12-02 Change interface in order to move to cut per region (VI) -// 26-12-02 Secondary production moved to derived classes (VI) -// 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko) -// -// ------------------------------------------------------------------- -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4eBremsstrahlungSTD.hh" -#include "G4Gamma.hh" -#include "G4eBremsstrahlungModel.hh" -#include "G4UniversalFluctuation.hh" -#include "G4UnitsTable.hh" - -#include "G4ProductionCutsTable.hh" -#include "G4MaterialCutsCouple.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4eBremsstrahlungSTD::G4eBremsstrahlungSTD(const G4String& name) - : G4VEnergyLossSTD(name) -{ - InitialiseProcess(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4eBremsstrahlungSTD::~G4eBremsstrahlungSTD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4eBremsstrahlungSTD::InitialiseProcess() -{ - SetSecondaryParticle(G4Gamma::Gamma()); - - SetDEDXBinning(120); - SetLambdaBinning(120); - SetMinKinEnergy(0.1*keV); - SetMaxKinEnergy(100.0*TeV); - -// G4VEmFluctuationModel* fm = new G4UniversalFluctuation(); -// AddEmFluctuationModel(fm); - - G4VEmModel* em = new G4eBremsstrahlungModel(); - em->SetLowEnergyLimit(0.1*keV); - em->SetHighEnergyLimit(100.0*TeV); - AddEmModel(1, em); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4eBremsstrahlungSTD::PrintInfoDefinition() -{ - G4VEnergyLossSTD::PrintInfoDefinition(); - - G4cout << " Total cross sections from a parametrisation" - << " based on the EEDL data library. " - << G4endl - << " Good description from 1 KeV to 100 GeV, " - << "log scale extrapolation above 100 GeV." - << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4eIonisation.cc b/source/processes/electromagnetic/standard/src/G4eIonisation.cc index b6caf9dce1..a3356a9b37 100644 --- a/source/processes/electromagnetic/standard/src/G4eIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4eIonisation.cc @@ -20,13 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4eIonisation.cc,v 1.37 2003/11/12 16:23:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4eIonisation.cc,v 1.31 2003/06/16 17:02:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- // -//--------------- G4eIonisation physics process -------------------------------- -// by Laszlo Urban, 20 March 1997 -//------------------------------------------------------------------------------ +// GEANT4 Class file +// +// +// File name: G4eIonisation +// +// Author: Laszlo Urban +// +// Creation date: 20.03.1997 +// +// Modifications: // // 07-04-98 remove 'tracking cut' of the ionizing particle, mma // 04-09-98 new methods SetBining() PrintInfo() @@ -41,585 +49,94 @@ // 29-10-01 all static functions no more inlined (mma) // 07-11-01 particleMass and Charge become local variables // 26-03-02 change access to cuts in BuildLossTables (V.Ivanchenko) -// 16-01-03 Migrade to cut per region (V.Ivanchenko) -// 08-04-03 finalRange is region aware (V.Ivanchenko) -// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) -//------------------------------------------------------------------------------ - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// 30-04-02 V.Ivanchenko update to new design +// 23-12-02 Change interface in order to move to cut per region (VI) +// 26-12-02 Secondary production moved to derived classes (VI) +// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) +// 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko) +// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) +// +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4eIonisation.hh" +#include "G4Electron.hh" +#include "G4MollerBhabhaModel.hh" +#include "G4UniversalFluctuation.hh" +//#include "G4BohrFluctuations.hh" #include "G4UnitsTable.hh" -#include "G4ProductionCutsTable.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4eIonisation::LowerBoundLambda = 1.*keV; -G4double G4eIonisation::UpperBoundLambda = 100.*TeV; -G4int G4eIonisation::NbinLambda = 100; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4eIonisation::G4eIonisation(const G4String& processName) - : G4VeEnergyLoss(processName), - theMeanFreePathTable(NULL) +G4eIonisation::G4eIonisation(const G4String& name) + : G4VEnergyLossProcess(name), + theElectron(G4Electron::Electron()), + subCutoff(false), + isElectron(true), + isInitialised(false) { - verboseLevel = -1; + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4eIonisation::~G4eIonisation() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eIonisation::InitialiseProcess() { - if (theMeanFreePathTable) - {theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} -} + SetSecondaryParticle(theElectron); -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + if(IsIntegral()) { + // flucModel = new G4BohrFluctuations(); + flucModel = new G4UniversalFluctuation(); -void G4eIonisation::SetLowerBoundLambda(G4double val) - {LowerBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eIonisation::SetUpperBoundLambda(G4double val) - {UpperBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eIonisation::SetNbinLambda(G4int n) - {NbinLambda = n;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4eIonisation::GetLowerBoundLambda() - {return LowerBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4eIonisation::GetUpperBoundLambda() - {return UpperBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4int G4eIonisation::GetNbinLambda() - {return NbinLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) -{ - if( !CutsWhereModified() && theLossTable) return; - - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - BuildLossTable(aParticleType); - - if (&aParticleType==G4Electron::Electron()) - { - RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; - CounterOfElectronProcess++; - } - else - { - RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; - CounterOfPositronProcess++; - } - - BuildLambdaTable(aParticleType); - - BuildDEDXTable(aParticleType); - - if (&aParticleType==G4Electron::Electron()) PrintInfoDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eIonisation::BuildLossTable(const G4ParticleDefinition& aParticleType) -{ - - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} - theLossTable = new G4PhysicsTable(numOfCouples); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - // loop for materials - // - for (size_t J=0; JGetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - // get electron cut in kinetic energy for the material - G4double DeltaThreshold = SecondaryEnergyThreshold(J); - - - // now comes the loop for the kinetic energy values - // - for (G4int i = 0; i < TotBin; i++) - { - G4double dEdx = ComputeRestrictedMeandEdx(aParticleType, - aVector->GetLowEdgeEnergy(i), - material, - DeltaThreshold); - if(1 < verboseLevel) { - G4cout << "Material= " << material->GetName() - << " E(MeV)= " << aVector->GetLowEdgeEnergy(i)/MeV - << " dEdx(MeV/mm)= " << dEdx*mm/MeV - << G4endl; - } - aVector->PutValue(i,dEdx); - } - theLossTable->insert(aVector); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4eIonisation::BuildLambdaTable(const G4ParticleDefinition& aParticleType) -{ - - if(0 < verboseLevel) { - G4cout << "G4eIonisation::BuildLambdaTable() for process " - << GetProcessName() << " and particle " - << aParticleType.GetParticleName() << G4endl; + } else { + flucModel = new G4UniversalFluctuation(); } - //create table - // - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + G4VEmModel* em = new G4MollerBhabhaModel(); + em->SetLowEnergyLimit(0.1*keV); + em->SetHighEnergyLimit(100.0*TeV); + AddEmModel(1, em, flucModel); + isInitialised = true; - if (theMeanFreePathTable) - { theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} - - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - // loop for materials - - for (size_t J=0 ; J < numOfCouples; J++) - { - - G4PhysicsLogVector* aVector = new G4PhysicsLogVector( - LowerBoundLambda, UpperBoundLambda, NbinLambda); - - // compute the (macroscopic) cross section first - const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - // get electron cut in kinetic energy for the material - G4double DeltaThreshold = SecondaryEnergyThreshold(J); - - const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); - G4int NumberOfElements = material->GetNumberOfElements(); - - for (G4int i = 0 ; i < NbinLambda ; i++) - { - G4double LowEdgeEnergy = aVector->GetLowEdgeEnergy(i); - G4double SIGMA = 0.; - for (G4int iel=0; ielGetZ(), - DeltaThreshold); - } - - // mean free path = 1./macroscopic cross section - G4double Value = SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; - aVector->PutValue(i, Value); - } - theMeanFreePathTable->insert(aVector); - } } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4eIonisation::ComputeRestrictedMeandEdx ( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - const G4Material* material, - G4double DeltaThreshold) +const G4ParticleDefinition* G4eIonisation::DefineBaseParticle(const G4ParticleDefinition* p) { - // calculate the dE/dx due to the ionization process (Geant4 internal units) - // Seltzer-Berger formula - // - G4double particleMass = aParticleType.GetPDGMass(); - - G4double ElectronDensity = material->GetElectronDensity(); - G4double Eexc = material->GetIonisation()->GetMeanExcitationEnergy(); - Eexc /= particleMass; G4double Eexcm2 = Eexc*Eexc; - - // for the lowenergy extrapolation - G4double Zeff = material->GetTotNbOfElectPerVolume()/ - material->GetTotNbOfAtomsPerVolume(); - G4double Th = 0.25*sqrt(Zeff)*keV; - G4double Tsav = 0.; - if (KineticEnergy < Th) {Tsav = KineticEnergy; KineticEnergy = Th;} - - G4double tau = KineticEnergy/particleMass; - G4double gamma = tau + 1., gamma2 = gamma*gamma, bg2 = tau*(tau+2.); - G4double beta2 = bg2/gamma2; - - G4double Tmax,d,dEdx; - - // electron - if (&aParticleType==G4Electron::Electron()) - { - Tmax = KineticEnergy/2.; - d = std::min(DeltaThreshold, Tmax)/particleMass; - dEdx = log(2.*(tau+2.)/Eexcm2)-1.-beta2 - + log((tau-d)*d)+tau/(tau-d) - + (0.5*d*d+(2.*tau+1.)*log(1.-d/tau))/gamma2; - } - - else //positron - { - Tmax = KineticEnergy; - d = std::min(DeltaThreshold, Tmax)/particleMass; - G4double d2=d*d/2., d3=d*d*d/3., d4=d*d*d*d/4.; - G4double y=1./(1.+gamma); - dEdx = log(2.*(tau+2.)/Eexcm2)+log(tau*d) - - beta2*(tau+2.*d-y*(3.*d2+y*(d-d3+y*(d2-tau*d3+d4))))/tau; - } - - //density correction - G4double Cden = material->GetIonisation()->GetCdensity(); - G4double Mden = material->GetIonisation()->GetMdensity(); - G4double Aden = material->GetIonisation()->GetAdensity(); - G4double X0den = material->GetIonisation()->GetX0density(); - G4double X1den = material->GetIonisation()->GetX1density(); - - const G4double twoln10 = 2.*log(10.); - G4double x = log(bg2)/twoln10; - G4double delta; - if (x < X0den) delta = 0.; - else {delta = twoln10*x - Cden; - if (x < X1den) delta += Aden*pow((X1den-x),Mden); - } - - //now you can compute the total ionization loss - dEdx -= delta; - dEdx *= twopi_mc2_rcl2*ElectronDensity/beta2; - if (dEdx <= 0.) dEdx = 0.; - - // low energy ? - const G4double Tl = 0.2*keV; - if (Tsav > 0.) - { - if (Tsav >= Tl) dEdx *= sqrt(KineticEnergy/Tsav); - else dEdx *= sqrt(KineticEnergy*Tsav)/Tl; - } - return dEdx; + if(p == G4Positron::Positron()) isElectron = false; + if(!isInitialised) InitialiseProcess(); + return 0; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4eIonisation::ComputeCrossSectionPerAtom( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - G4double AtomicNumber , - G4double DeltaThreshold) -{ - // calculates the cross section per atom (Geant4 internal units) - //(it is called for elements , AtomicNumber = Z ) - - G4double particleMass = aParticleType.GetPDGMass(); - G4double TotalEnergy = KineticEnergy + particleMass; - - G4double betasquare = KineticEnergy*(TotalEnergy+particleMass) - /(TotalEnergy*TotalEnergy); - G4double gamma = TotalEnergy/particleMass, gamma2 = gamma*gamma; - G4double x=DeltaThreshold/KineticEnergy, x2 = x*x; - - G4double MaxKineticEnergyTransfer; - if (&aParticleType==G4Electron::Electron()) - MaxKineticEnergyTransfer = 0.5*KineticEnergy; - else MaxKineticEnergyTransfer = KineticEnergy; - - - G4double TotalCrossSection = 0.; - if (MaxKineticEnergyTransfer > DeltaThreshold) - { - if (&aParticleType==G4Electron::Electron()) //Moller (e-e-) scattering - { - TotalCrossSection = (gamma-1.)*(gamma-1.)*(0.5-x)/gamma2 + 1./x - - 1./(1.-x)-(2.*gamma-1.)*log((1.-x)/x)/gamma2; - TotalCrossSection /= betasquare; - } - else //Bhabha (e+e-) scattering - { - G4double y=1./(1.+gamma), y2 =y*y, y12=1.-2.*y; - G4double b1=2.-y2, b2=y12*(3.+y2), b4=y12*y12*y12, b3=b4+y12*y12; - TotalCrossSection = (1./x-1.)/betasquare+b1*log(x)+b2*(1.-x) - - b3*(1.-x2)/2.+b4*(1.-x2*x)/3.; - } - TotalCrossSection *= (twopi_mc2_rcl2*AtomicNumber/KineticEnergy); - } - return TotalCrossSection ; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VParticleChange* G4eIonisation::PostStepDoIt( const G4Track& trackData, - const G4Step& stepData) -{ - aParticleChange.Initialize(trackData); - - const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); - const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); - - G4double particleMass = aParticle->GetDefinition()->GetPDGMass(); - G4double Charge = aParticle->GetDefinition()->GetPDGCharge(); - G4double KineticEnergy = aParticle->GetKineticEnergy(); - G4double TotalEnergy = KineticEnergy + particleMass; - G4double Psquare = KineticEnergy*(TotalEnergy+particleMass); - G4double TotalMomentum = sqrt(Psquare); - G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); - - // get kinetic energy cut for the electron - G4double DeltaThreshold = SecondaryEnergyThreshold(couple->GetIndex()); - - // some kinematics - G4double MaxKineticEnergyTransfer; - if (Charge < 0.) MaxKineticEnergyTransfer = 0.5*KineticEnergy; - else MaxKineticEnergyTransfer = KineticEnergy; - - // sampling kinetic energy of the delta ray - - if (MaxKineticEnergyTransfer <= DeltaThreshold) - // pathological case (should not happen, there is no change at all) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - - // normal case - G4double cc,y,y2,c2,b0,b1,b2,b3,b4,x,x1,grej,grejc; - - G4double tau = KineticEnergy/particleMass; - G4double gamma = tau+1., gamma2=gamma*gamma; - G4double xc = DeltaThreshold/KineticEnergy, xc1=1.-xc; - - if (Charge < 0.) // Moller (e-e-) scattering - { - b1=4./(9.*gamma2-10.*gamma+5.); - b2=tau*tau*b1; b3=(2.*gamma2+2.*gamma-1.)*b1; - cc=1.-2.*xc; - do { - x = xc/(1.-cc*G4UniformRand()); x1 = 1.-x; - grej = b2*x*x-b3*x/x1+b1*gamma2/(x1*x1); - } while (G4UniformRand()>grej); - } - else // Bhabha (e+e-) scattering - { - y=1./(gamma+1.); y2=y*y; cc=1.-2.*y; - b1=2.-y2; b2=cc*(3.+y2); - c2=cc*cc; b4=c2*cc; b3=c2+b4; - b0=gamma2/(gamma2-1.); - grejc=(((b4*xc-b3)*xc+b2)*xc-b1)*xc+b0; - do { - x = xc/(1.-xc1*G4UniformRand()); - grej = ((((b4*x-b3)*x+b2)*x-b1)*x+b0)/grejc; - } while (G4UniformRand()>grej); - } - - G4double DeltaKineticEnergy = x * KineticEnergy; - - // protection :do not produce a secondary with 0. kinetic energy ! - if (DeltaKineticEnergy <= 0.) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - G4double DeltaTotalMomentum = sqrt(DeltaKineticEnergy*(DeltaKineticEnergy + - 2.*electron_mass_c2 )); - - G4double costheta = DeltaKineticEnergy * (TotalEnergy + electron_mass_c2) - /(DeltaTotalMomentum * TotalMomentum); - - if (costheta < -1.) costheta = -1.; - if (costheta > +1.) costheta = +1.; - - // direction of the delta electron - - G4double phi = twopi * G4UniformRand(); - G4double sintheta = sqrt((1.+costheta)*(1.-costheta)); - G4double dirx = sintheta*cos(phi), diry = sintheta*sin(phi), dirz = costheta; - - G4ThreeVector DeltaDirection(dirx,diry,dirz); - DeltaDirection.rotateUz(ParticleDirection); - - // create G4DynamicParticle object for delta ray - - G4DynamicParticle* theDeltaRay = new G4DynamicParticle; - theDeltaRay->SetKineticEnergy( DeltaKineticEnergy ); - theDeltaRay->SetMomentumDirection( - DeltaDirection.x(),DeltaDirection.y(),DeltaDirection.z()); - theDeltaRay->SetDefinition(G4Electron::Electron()); - - // fill aParticleChange - // changed energy and momentum of the actual particle - G4double finalKineticEnergy = KineticEnergy - DeltaKineticEnergy; - - G4double Edep = 0.; - - if (finalKineticEnergy > MinKineticEnergy) - { - G4double finalPx = TotalMomentum*ParticleDirection.x() - - DeltaTotalMomentum*DeltaDirection.x(); - G4double finalPy = TotalMomentum*ParticleDirection.y() - - DeltaTotalMomentum*DeltaDirection.y(); - G4double finalPz = TotalMomentum*ParticleDirection.z() - - DeltaTotalMomentum*DeltaDirection.z(); - G4double finalMomentum = - sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz); - finalPx /= finalMomentum; - finalPy /= finalMomentum; - finalPz /= finalMomentum; - - aParticleChange.SetMomentumChange(finalPx, finalPy, finalPz); - } - else - { - Edep = finalKineticEnergy; - finalKineticEnergy = 0.; - if (Charge < 0.) aParticleChange.SetStatusChange(fStopAndKill); - else aParticleChange.SetStatusChange(fStopButAlive); - } - - aParticleChange.SetEnergyChange(finalKineticEnergy); - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(theDeltaRay); - aParticleChange.SetLocalEnergyDeposit(Edep); - - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool G4eIonisation::StorePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - G4String filename; - - // store stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable->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 G4eIonisation::RetrievePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - // delete theLossTable and theMeanFreePathTable - if (theLossTable != 0) { - theLossTable->clearAndDestroy(); - delete theLossTable; - } - if (theMeanFreePathTable != 0) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - - // get bining from EnergyLoss - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - G4String filename; - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - // retreive stopping power table - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - theLossTable = new G4PhysicsTable(numOfCouples); - if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - - // retreive mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - if ( !theMeanFreePathTable->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; - - if (particle==G4Electron::Electron()) - { - RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; - CounterOfElectronProcess++; - } - else - { - RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; - CounterOfPositronProcess++; - } - - BuildDEDXTable(*particle); - if (particle==G4Electron::Electron()) PrintInfoDefinition(); - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4eIonisation::PrintInfoDefinition() { - G4String comments = "delta cross sections from Moller+Bhabha. " - "Good description from 1 KeV to 100 GeV.\n" - " delta ray energy sampled from differential Xsection."; - - G4cout << G4endl << GetProcessName() << ": " << comments - << "\n PhysicsTables from " - << G4BestUnit(LowerBoundLambda,"Energy") - << " to " << G4BestUnit(UpperBoundLambda,"Energy") - << " in " << NbinLambda << " bins." - << "\n Step function: finalRange(mm)= " << finalRange - << ", dRoverRange= " << dRoverRange - << G4endl; + G4VEnergyLossProcess::PrintInfoDefinition(); + + G4cout << " Delta cross sections from Moller+Bhabha, " + << "good description from 1 KeV to 100 GeV." + << G4endl; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4eIonisation::SetSubCutoff(G4bool val) +{ + subCutoff = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4eIonisation52.cc b/source/processes/electromagnetic/standard/src/G4eIonisation52.cc new file mode 100644 index 0000000000..7785a24048 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4eIonisation52.cc @@ -0,0 +1,626 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4eIonisation52.cc,v 1.1 2003/08/08 11:30:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//--------------- G4eIonisation52 physics process -------------------------------- +// by Laszlo Urban, 20 March 1997 +//------------------------------------------------------------------------------ +// +// 07-04-98 remove 'tracking cut' of the ionizing particle, mma +// 04-09-98 new methods SetBining() PrintInfo() +// 07-09-98 Cleanup +// 02-02-99 correction inDoIt , L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 13-08-01 new function ComputeRestrictedMeandEdx() (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 21-09-01 completion of RetrievePhysicsTable() (mma) +// 29-10-01 all static functions no more inlined (mma) +// 07-11-01 particleMass and Charge become local variables +// 26-03-02 change access to cuts in BuildLossTables (V.Ivanchenko) +// 16-01-03 Migrade to cut per region (V.Ivanchenko) +// 08-04-03 finalRange is region aware (V.Ivanchenko) +// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +//------------------------------------------------------------------------------ + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4eIonisation52.hh" +#include "G4UnitsTable.hh" +#include "G4ProductionCutsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4eIonisation52::LowerBoundLambda = 1.*keV; +G4double G4eIonisation52::UpperBoundLambda = 100.*TeV; +G4int G4eIonisation52::NbinLambda = 100; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4eIonisation52::G4eIonisation52(const G4String& processName) + : G4VeEnergyLoss(processName), + theMeanFreePathTable(NULL) +{ + verboseLevel = -1; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4eIonisation52::~G4eIonisation52() +{ + if (theMeanFreePathTable) + {theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eIonisation52::SetLowerBoundLambda(G4double val) + {LowerBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eIonisation52::SetUpperBoundLambda(G4double val) + {UpperBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eIonisation52::SetNbinLambda(G4int n) + {NbinLambda = n;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4eIonisation52::GetLowerBoundLambda() + {return LowerBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4eIonisation52::GetUpperBoundLambda() + {return UpperBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int G4eIonisation52::GetNbinLambda() + {return NbinLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eIonisation52::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) +{ + if( !CutsWhereModified() && theLossTable) return; + + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + BuildLossTable(aParticleType); + + if (&aParticleType==G4Electron::Electron()) + { + RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; + CounterOfElectronProcess++; + } + else + { + RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; + CounterOfPositronProcess++; + } + + BuildLambdaTable(aParticleType); + + BuildDEDXTable(aParticleType); + + if (&aParticleType==G4Electron::Electron()) PrintInfoDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eIonisation52::BuildLossTable(const G4ParticleDefinition& aParticleType) +{ + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} + theLossTable = new G4PhysicsTable(numOfCouples); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + // loop for materials + // + for (size_t J=0; JGetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + // get electron cut in kinetic energy for the material + G4double DeltaThreshold = SecondaryEnergyThreshold(J); + + + // now comes the loop for the kinetic energy values + // + for (G4int i = 0; i < TotBin; i++) + { + G4double dEdx = ComputeRestrictedMeandEdx(aParticleType, + aVector->GetLowEdgeEnergy(i), + material, + DeltaThreshold); + if(1 < verboseLevel) { + G4cout << "Material= " << material->GetName() + << " E(MeV)= " << aVector->GetLowEdgeEnergy(i)/MeV + << " dEdx(MeV/mm)= " << dEdx*mm/MeV + << G4endl; + } + aVector->PutValue(i,dEdx); + } + theLossTable->insert(aVector); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eIonisation52::BuildLambdaTable(const G4ParticleDefinition& aParticleType) +{ + + if(0 < verboseLevel) { + G4cout << "G4eIonisation52::BuildLambdaTable() for process " + << GetProcessName() << " and particle " + << aParticleType.GetParticleName() << G4endl; + } + + //create table + // + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theMeanFreePathTable) + { theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} + + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + // loop for materials + + for (size_t J=0 ; J < numOfCouples; J++) + { + + G4PhysicsLogVector* aVector = new G4PhysicsLogVector( + LowerBoundLambda, UpperBoundLambda, NbinLambda); + + // compute the (macroscopic) cross section first + const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + // get electron cut in kinetic energy for the material + G4double DeltaThreshold = SecondaryEnergyThreshold(J); + + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); + G4int NumberOfElements = material->GetNumberOfElements(); + + for (G4int i = 0 ; i < NbinLambda ; i++) + { + G4double LowEdgeEnergy = aVector->GetLowEdgeEnergy(i); + G4double SIGMA = 0.; + for (G4int iel=0; ielGetZ(), + DeltaThreshold); + } + + // mean free path = 1./macroscopic cross section + G4double Value = SIGMA > DBL_MIN ? 1./SIGMA : DBL_MAX; + aVector->PutValue(i, Value); + } + theMeanFreePathTable->insert(aVector); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4eIonisation52::ComputeRestrictedMeandEdx ( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + const G4Material* material, + G4double DeltaThreshold) +{ + // calculate the dE/dx due to the ionization process (Geant4 internal units) + // Seltzer-Berger formula + // + G4double particleMass = aParticleType.GetPDGMass(); + + G4double ElectronDensity = material->GetElectronDensity(); + G4double Eexc = material->GetIonisation()->GetMeanExcitationEnergy(); + Eexc /= particleMass; G4double Eexcm2 = Eexc*Eexc; + + // for the lowenergy extrapolation + G4double Zeff = material->GetTotNbOfElectPerVolume()/ + material->GetTotNbOfAtomsPerVolume(); + G4double Th = 0.25*sqrt(Zeff)*keV; + G4double Tsav = 0.; + if (KineticEnergy < Th) {Tsav = KineticEnergy; KineticEnergy = Th;} + + G4double tau = KineticEnergy/particleMass; + G4double gamma = tau + 1., gamma2 = gamma*gamma, bg2 = tau*(tau+2.); + G4double beta2 = bg2/gamma2; + + G4double Tmax,d,dEdx; + + // electron + if (&aParticleType==G4Electron::Electron()) + { + Tmax = KineticEnergy/2.; + d = std::min(DeltaThreshold, Tmax)/particleMass; + dEdx = log(2.*(tau+2.)/Eexcm2)-1.-beta2 + + log((tau-d)*d)+tau/(tau-d) + + (0.5*d*d+(2.*tau+1.)*log(1.-d/tau))/gamma2; + } + + else //positron + { + Tmax = KineticEnergy; + d = std::min(DeltaThreshold, Tmax)/particleMass; + G4double d2=d*d/2., d3=d*d*d/3., d4=d*d*d*d/4.; + G4double y=1./(1.+gamma); + dEdx = log(2.*(tau+2.)/Eexcm2)+log(tau*d) + - beta2*(tau+2.*d-y*(3.*d2+y*(d-d3+y*(d2-tau*d3+d4))))/tau; + } + + //density correction + G4double Cden = material->GetIonisation()->GetCdensity(); + G4double Mden = material->GetIonisation()->GetMdensity(); + G4double Aden = material->GetIonisation()->GetAdensity(); + G4double X0den = material->GetIonisation()->GetX0density(); + G4double X1den = material->GetIonisation()->GetX1density(); + + const G4double twoln10 = 2.*log(10.); + G4double x = log(bg2)/twoln10; + G4double delta; + if (x < X0den) delta = 0.; + else {delta = twoln10*x - Cden; + if (x < X1den) delta += Aden*pow((X1den-x),Mden); + } + + //now you can compute the total ionization loss + dEdx -= delta; + dEdx *= twopi_mc2_rcl2*ElectronDensity/beta2; + if (dEdx <= 0.) dEdx = 0.; + + // low energy ? + const G4double Tl = 0.2*keV; + if (Tsav > 0.) + { + if (Tsav >= Tl) dEdx *= sqrt(KineticEnergy/Tsav); + else dEdx *= sqrt(KineticEnergy*Tsav)/Tl; + } + return dEdx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4eIonisation52::ComputeCrossSectionPerAtom( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber , + G4double DeltaThreshold) +{ + // calculates the cross section per atom (Geant4 internal units) + //(it is called for elements , AtomicNumber = Z ) + + G4double particleMass = aParticleType.GetPDGMass(); + G4double TotalEnergy = KineticEnergy + particleMass; + + G4double betasquare = KineticEnergy*(TotalEnergy+particleMass) + /(TotalEnergy*TotalEnergy); + G4double gamma = TotalEnergy/particleMass, gamma2 = gamma*gamma; + G4double x=DeltaThreshold/KineticEnergy, x2 = x*x; + + G4double MaxKineticEnergyTransfer; + if (&aParticleType==G4Electron::Electron()) + MaxKineticEnergyTransfer = 0.5*KineticEnergy; + else MaxKineticEnergyTransfer = KineticEnergy; + + + G4double TotalCrossSection = 0.; + if (MaxKineticEnergyTransfer > DeltaThreshold) + { + if (&aParticleType==G4Electron::Electron()) //Moller (e-e-) scattering + { + TotalCrossSection = (gamma-1.)*(gamma-1.)*(0.5-x)/gamma2 + 1./x + - 1./(1.-x)-(2.*gamma-1.)*log((1.-x)/x)/gamma2; + TotalCrossSection /= betasquare; + } + else //Bhabha (e+e-) scattering + { + G4double y=1./(1.+gamma), y2 =y*y, y12=1.-2.*y; + G4double b1=2.-y2, b2=y12*(3.+y2), b4=y12*y12*y12, b3=b4+y12*y12; + TotalCrossSection = (1./x-1.)/betasquare+b1*log(x)+b2*(1.-x) + - b3*(1.-x2)/2.+b4*(1.-x2*x)/3.; + } + TotalCrossSection *= (twopi_mc2_rcl2*AtomicNumber/KineticEnergy); + } + return TotalCrossSection ; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* G4eIonisation52::PostStepDoIt( const G4Track& trackData, + const G4Step& stepData) +{ + aParticleChange.Initialize(trackData); + + const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); + const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); + + G4double particleMass = aParticle->GetDefinition()->GetPDGMass(); + G4double Charge = aParticle->GetDefinition()->GetPDGCharge(); + G4double KineticEnergy = aParticle->GetKineticEnergy(); + G4double TotalEnergy = KineticEnergy + particleMass; + G4double Psquare = KineticEnergy*(TotalEnergy+particleMass); + G4double TotalMomentum = sqrt(Psquare); + G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); + + // get kinetic energy cut for the electron + G4double DeltaThreshold = SecondaryEnergyThreshold(couple->GetIndex()); + + // some kinematics + G4double MaxKineticEnergyTransfer; + if (Charge < 0.) MaxKineticEnergyTransfer = 0.5*KineticEnergy; + else MaxKineticEnergyTransfer = KineticEnergy; + + // sampling kinetic energy of the delta ray + + if (MaxKineticEnergyTransfer <= DeltaThreshold) + // pathological case (should not happen, there is no change at all) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + + // normal case + G4double cc,y,y2,c2,b0,b1,b2,b3,b4,x,x1,grej,grejc; + + G4double tau = KineticEnergy/particleMass; + G4double gamma = tau+1., gamma2=gamma*gamma; + G4double xc = DeltaThreshold/KineticEnergy, xc1=1.-xc; + + if (Charge < 0.) // Moller (e-e-) scattering + { + b1=4./(9.*gamma2-10.*gamma+5.); + b2=tau*tau*b1; b3=(2.*gamma2+2.*gamma-1.)*b1; + cc=1.-2.*xc; + do { + x = xc/(1.-cc*G4UniformRand()); x1 = 1.-x; + grej = b2*x*x-b3*x/x1+b1*gamma2/(x1*x1); + } while (G4UniformRand()>grej); + } + else // Bhabha (e+e-) scattering + { + y=1./(gamma+1.); y2=y*y; cc=1.-2.*y; + b1=2.-y2; b2=cc*(3.+y2); + c2=cc*cc; b4=c2*cc; b3=c2+b4; + b0=gamma2/(gamma2-1.); + grejc=(((b4*xc-b3)*xc+b2)*xc-b1)*xc+b0; + do { + x = xc/(1.-xc1*G4UniformRand()); + grej = ((((b4*x-b3)*x+b2)*x-b1)*x+b0)/grejc; + } while (G4UniformRand()>grej); + } + + G4double DeltaKineticEnergy = x * KineticEnergy; + + // protection :do not produce a secondary with 0. kinetic energy ! + if (DeltaKineticEnergy <= 0.) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + G4double DeltaTotalMomentum = sqrt(DeltaKineticEnergy*(DeltaKineticEnergy + + 2.*electron_mass_c2 )); + + G4double costheta = DeltaKineticEnergy * (TotalEnergy + electron_mass_c2) + /(DeltaTotalMomentum * TotalMomentum); + + if (costheta < -1.) costheta = -1.; + if (costheta > +1.) costheta = +1.; + + // direction of the delta electron + + G4double phi = twopi * G4UniformRand(); + G4double sintheta = sqrt((1.+costheta)*(1.-costheta)); + G4double dirx = sintheta*cos(phi), diry = sintheta*sin(phi), dirz = costheta; + + G4ThreeVector DeltaDirection(dirx,diry,dirz); + DeltaDirection.rotateUz(ParticleDirection); + + // create G4DynamicParticle object for delta ray + + G4DynamicParticle* theDeltaRay = new G4DynamicParticle; + theDeltaRay->SetKineticEnergy( DeltaKineticEnergy ); + theDeltaRay->SetMomentumDirection( + DeltaDirection.x(),DeltaDirection.y(),DeltaDirection.z()); + theDeltaRay->SetDefinition(G4Electron::Electron()); + + // fill aParticleChange + // changed energy and momentum of the actual particle + G4double finalKineticEnergy = KineticEnergy - DeltaKineticEnergy; + + G4double Edep = 0.; + + if (finalKineticEnergy > MinKineticEnergy) + { + G4double finalPx = TotalMomentum*ParticleDirection.x() + - DeltaTotalMomentum*DeltaDirection.x(); + G4double finalPy = TotalMomentum*ParticleDirection.y() + - DeltaTotalMomentum*DeltaDirection.y(); + G4double finalPz = TotalMomentum*ParticleDirection.z() + - DeltaTotalMomentum*DeltaDirection.z(); + G4double finalMomentum = + sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz); + finalPx /= finalMomentum; + finalPy /= finalMomentum; + finalPz /= finalMomentum; + + aParticleChange.SetMomentumChange(finalPx, finalPy, finalPz); + } + else + { + Edep = finalKineticEnergy; + finalKineticEnergy = 0.; + if (Charge < 0.) aParticleChange.SetStatusChange(fStopAndKill); + else aParticleChange.SetStatusChange(fStopButAlive); + } + + aParticleChange.SetEnergyChange(finalKineticEnergy); + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(theDeltaRay); + aParticleChange.SetLocalEnergyDeposit(Edep); + + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4eIonisation52::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + + // store stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable->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 G4eIonisation52::RetrievePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + // delete theLossTable and theMeanFreePathTable + if (theLossTable != 0) { + theLossTable->clearAndDestroy(); + delete theLossTable; + } + if (theMeanFreePathTable != 0) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + + // get bining from EnergyLoss + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + G4String filename; + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + // retreive stopping power table + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + theLossTable = new G4PhysicsTable(numOfCouples); + if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + if ( !theMeanFreePathTable->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; + + if (particle==G4Electron::Electron()) + { + RecorderOfElectronProcess[CounterOfElectronProcess] = (*this).theLossTable; + CounterOfElectronProcess++; + } + else + { + RecorderOfPositronProcess[CounterOfPositronProcess] = (*this).theLossTable; + CounterOfPositronProcess++; + } + + BuildDEDXTable(*particle); + if (particle==G4Electron::Electron()) PrintInfoDefinition(); + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4eIonisation52::PrintInfoDefinition() +{ + G4String comments = "delta cross sections from Moller+Bhabha. " + "Good description from 1 KeV to 100 GeV.\n" + " delta ray energy sampled from differential Xsection."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " + << G4BestUnit(LowerBoundLambda,"Energy") + << " to " << G4BestUnit(UpperBoundLambda,"Energy") + << " in " << NbinLambda << " bins." + << "\n Step function: finalRange(mm)= " << finalRange + << ", dRoverRange= " << dRoverRange + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4eIonisationSTD.cc b/source/processes/electromagnetic/standard/src/G4eIonisationSTD.cc deleted file mode 100644 index f991343fd7..0000000000 --- a/source/processes/electromagnetic/standard/src/G4eIonisationSTD.cc +++ /dev/null @@ -1,132 +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. * -// ******************************************************************** -// -// -// ------------------------------------------------------------------- -// -// GEANT4 Class file -// -// -// File name: G4eIonisationSTD -// -// Author: Laszlo Urban -// -// Creation date: 20.03.1997 -// -// Modifications: -// -// 07-04-98 remove 'tracking cut' of the ionizing particle, mma -// 04-09-98 new methods SetBining() PrintInfo() -// 07-09-98 Cleanup -// 02-02-99 correction inDoIt , L.Urban -// 10-02-00 modifications , new e.m. structure, L.Urban -// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation -// 09-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 13-08-01 new function ComputeRestrictedMeandEdx() (mma) -// 17-09-01 migration of Materials to pure STL (mma) -// 21-09-01 completion of RetrievePhysicsTable() (mma) -// 29-10-01 all static functions no more inlined (mma) -// 07-11-01 particleMass and Charge become local variables -// 26-03-02 change access to cuts in BuildLossTables (V.Ivanchenko) -// 30-04-02 V.Ivanchenko update to new design -// 23-12-02 Change interface in order to move to cut per region (VI) -// 26-12-02 Secondary production moved to derived classes (VI) -// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) -// 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko) -// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) -// -// ------------------------------------------------------------------- -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4eIonisationSTD.hh" -#include "G4Electron.hh" -#include "G4MollerBhabhaModel.hh" -#include "G4UniversalFluctuation.hh" -#include "G4BohrFluctuations.hh" -#include "G4UnitsTable.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4eIonisationSTD::G4eIonisationSTD(const G4String& name) - : G4VEnergyLossSTD(name), - theElectron(G4Electron::Electron()), - subCutoff(false), - isElectron(true), - isInitialised(false) -{ - SetDEDXBinning(120); - SetLambdaBinning(120); - SetMinKinEnergy(0.1*keV); - SetMaxKinEnergy(100.0*TeV); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4eIonisationSTD::~G4eIonisationSTD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4eIonisationSTD::InitialiseProcess() -{ - SetSecondaryParticle(theElectron); - - if(IsIntegral()) flucModel = new G4BohrFluctuations(); - else flucModel = new G4UniversalFluctuation(); - - G4VEmModel* em = new G4MollerBhabhaModel(); - em->SetLowEnergyLimit(0.1*keV); - em->SetHighEnergyLimit(100.0*TeV); - AddEmModel(1, em, flucModel); - isInitialised = true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -const G4ParticleDefinition* G4eIonisationSTD::DefineBaseParticle(const G4ParticleDefinition* p) -{ - if(p == G4Positron::Positron()) isElectron = false; - if(!isInitialised) InitialiseProcess(); - return 0; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4eIonisationSTD::PrintInfoDefinition() -{ - G4VEnergyLossSTD::PrintInfoDefinition(); - - G4cout << " Delta cross sections from Moller+Bhabha, " - << "good description from 1 KeV to 100 GeV." - << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4eIonisationSTD::SetSubCutoff(G4bool val) -{ - subCutoff = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc index 0a8e6aeb37..36cfcb21d1 100644 --- a/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc +++ b/source/processes/electromagnetic/standard/src/G4eplusAnnihilation.cc @@ -22,7 +22,7 @@ // // // $Id: G4eplusAnnihilation.cc,v 1.15 2003/05/26 16:13:15 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4hIonisation.cc b/source/processes/electromagnetic/standard/src/G4hIonisation.cc index 3577db34f2..062d108c37 100644 --- a/source/processes/electromagnetic/standard/src/G4hIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4hIonisation.cc @@ -20,13 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4hIonisation.cc,v 1.50 2003/11/12 16:23:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// $Id: G4hIonisation.cc,v 1.44 2003/06/16 17:02:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// ------------------------------------------------------------------- // -//---------------- G4hIonisation physics process ------------------------------- -// by Laszlo Urban, 30 May 1997 -//------------------------------------------------------------------------------ +// GEANT4 Class file +// +// +// File name: G4hIonisation +// +// Author: Laszlo Urban +// +// Creation date: 30.05.1997 +// +// Modifications: // // corrected by L.Urban on 24/09/97 // several bugs corrected by L.Urban on 13/01/98 @@ -48,683 +56,114 @@ // 08-11-01 Charge renamed zparticle; added to the dedx // 27-03-02 Bug fix in scaling of lambda table (V.Ivanchenko) // 09-04-02 Update calculation of tables for GenericIons (V.Ivanchenko) -// 10-06-02 bug fixed for stopping hadrons (V.Ivanchenko) -// 15-01-03 Migrade to cut per region (V.Ivanchenko) -// 10-03-03 Use SubType for GenericIons (V.Ivanchenko) -// 07-04-03 Fix problem of several runs (V.Ivanchenko) -// 08-04-03 finalRange is region aware (V.Ivanchenko) -// 17-04-03 fix problem of hadron tests (V.Ivanchenko) -// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) +// 30-04-02 V.Ivanchenko update to new design +// 04-12-02 Add verbose level definition (VI) +// 23-12-02 Change interface in order to move to cut per region (V.Ivanchenko) +// 26-12-02 Secondary production moved to derived classes (V.Ivanchenko) +// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) +// 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko) +// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) +// 04-08-03 Set integral=false to be default (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // -//------------------------------------------------------------------------------ - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +// ------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #include "G4hIonisation.hh" -#include "G4ProcessManager.hh" +#include "G4Electron.hh" +#include "G4Proton.hh" +#include "G4AntiProton.hh" +#include "G4BraggModel.hh" +#include "G4BetheBlochModel.hh" +#include "G4UniversalFluctuation.hh" +#include "G4BohrFluctuations.hh" #include "G4UnitsTable.hh" -#include "G4EnergyLossTables.hh" -#include "G4ProductionCutsTable.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4hIonisation::LowerBoundLambda = 1.*keV; -G4double G4hIonisation::UpperBoundLambda = 100.*TeV; -G4int G4hIonisation::NbinLambda = 100; - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4hIonisation::G4hIonisation(const G4String& processName) - : G4VhEnergyLoss(processName), - theMeanFreePathTable(0), - Tmincut(1*keV) +G4hIonisation::G4hIonisation(const G4String& name) + : G4VEnergyLossProcess(name), + theParticle(0), + theBaseParticle(0), + subCutoff(false), + isInitialised(false) { - verboseLevel = 0; + SetDEDXBinning(120); + SetLambdaBinning(120); + SetMinKinEnergy(0.1*keV); + SetMaxKinEnergy(100.0*TeV); + SetVerboseLevel(0); + SetIntegral(false); + mass = 0.0; + ratio = 0.0; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4hIonisation::~G4hIonisation() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4hIonisation::InitialiseProcess() { - if (theMeanFreePathTable) { - theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} + if(isInitialised) return; + SetSecondaryParticle(G4Electron::Electron()); + mass = theParticle->GetPDGMass(); + ratio = electron_mass_c2/mass; + + G4double massFactor = mass/proton_mass_c2; + G4VEmModel* em = new G4BraggModel(); + em->SetLowEnergyLimit(0.1*keV); + em->SetHighEnergyLimit(2.0*MeV*massFactor); + + if(IsIntegral()) { + flucModel = new G4BohrFluctuations(); + } else { + flucModel = new G4UniversalFluctuation(); + } + + AddEmModel(1, em, flucModel); + G4VEmModel* em1 = new G4BetheBlochModel(); + em1->SetLowEnergyLimit(2.0*MeV*massFactor); + em1->SetHighEnergyLimit(100.0*TeV); + AddEmModel(2, em1, flucModel); + + isInitialised = true; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4hIonisation::SetLowerBoundLambda(G4double val) - {LowerBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4hIonisation::SetUpperBoundLambda(G4double val) - {UpperBoundLambda = val;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4hIonisation::SetNbinLambda(G4int n) - {NbinLambda = n;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4hIonisation::GetLowerBoundLambda() - {return LowerBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4hIonisation::GetUpperBoundLambda() - {return UpperBoundLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4int G4hIonisation::GetNbinLambda() - {return NbinLambda;} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4hIonisation::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) -// just call BuildLossTable+BuildLambdaTable +const G4ParticleDefinition* G4hIonisation::DefineBaseParticle( + const G4ParticleDefinition* p) { + if(!theParticle) theParticle = p; + if(p != BaseParticle() && p != G4Proton::Proton()) theBaseParticle = G4Proton::Proton(); + if(!isInitialised) InitialiseProcess(); - if(verboseLevel > 0) { - G4cout << "G4hIonisation::BuildPhysicsTable for " - << aParticleType.GetParticleName() - << " mass(MeV)= " << aParticleType.GetPDGMass()/MeV - << " charge= " << aParticleType.GetPDGCharge()/eplus - << " type= " << aParticleType.GetParticleType() - << G4endl; - - if(verboseLevel > 1) { - G4cout << " MFPtable= " << theMeanFreePathTable - << " DEDXtable= " << theDEDXpTable - << " iniMass= " << initialMass - << G4endl; - } - } - - if(aParticleType.GetParticleType() == "nucleus" && - aParticleType.GetParticleName() != "GenericIon" && - aParticleType.GetParticleSubType() == "generic") - { - - G4EnergyLossTables::Register(&aParticleType, - theDEDXpTable, - theRangepTable, - theInverseRangepTable, - theLabTimepTable, - theProperTimepTable, - LowestKineticEnergy, HighestKineticEnergy, - proton_mass_c2/aParticleType.GetPDGMass(), - TotBin); - - return; - } - - // get bining from EnergyLoss - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - const G4ParticleDefinition* theProton = G4Proton::Proton(); - G4bool makeTables = false; - - if (aParticleType.GetPDGCharge() > 0.) - { - if( CutsWhereModified() || !theDEDXpTable ) - { - BuildLossTable(*theProton); - RecorderOfpProcess[0] = (*this).theLossTable; -// CounterOfpProcess++; - makeTables = true; - } - } - else - { - if( CutsWhereModified() || !theDEDXpbarTable ) - { - BuildLossTable(*(G4AntiProton::AntiProton())) ; - RecorderOfpProcess[0] = (*this).theLossTable; -// CounterOfpbarProcess++; - makeTables = true; - } - } - - BuildLambdaTable(aParticleType); - - if( makeTables ) BuildDEDXTable(aParticleType); - - if(2 < verboseLevel) { - G4cout << "MeanFreePathTable is built for " - << aParticleType.GetParticleName() << G4endl; - G4cout << (*theMeanFreePathTable) << G4endl; - } - - - if (&aParticleType == theProton) PrintInfoDefinition(); - + return theBaseParticle; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4hIonisation::BuildLossTable(const G4ParticleDefinition& aParticleType) -{ - if(0 < verboseLevel) { - G4cout << "G4hIonisation::BuildLossTable() for process " - << GetProcessName() << " and particle " - << aParticleType.GetParticleName() << G4endl; - } - - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} - theLossTable = new G4PhysicsTable(numOfCouples); - - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - // loop for materials - // - for (size_t J=0; JGetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - // get electron cut in kinetic energy for the material - G4double DeltaThreshold = SecondaryEnergyThreshold(J); - - // now comes the loop for the kinetic energy values - // - for (G4int i = 0 ; i < TotBin ; i++) - { - G4double dEdx = ComputeRestrictedMeandEdx(aParticleType, - aVector->GetLowEdgeEnergy(i), - material, - DeltaThreshold); - aVector->PutValue(i,dEdx); - } - theLossTable->insert(aVector); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4hIonisation::BuildLambdaTable(const G4ParticleDefinition& aParticleType) -{ - - if(0 < verboseLevel) { - G4cout << "G4hIonisation::BuildLambdaTable() for process " - << GetProcessName() << " and particle " - << aParticleType.GetParticleName() << G4endl; - } - - //create table - // - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - if (theMeanFreePathTable) - {theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} - - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - - // get electron cut in kinetic energy - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - // loop for materials - - for (size_t J=0 ; J < numOfCouples; J++) - { - //create physics vector then fill it .... - G4PhysicsLogVector* aVector = new G4PhysicsLogVector( - LowerBoundLambda,UpperBoundLambda,NbinLambda); - - // compute the (macroscopic) cross section first - const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(J); - const G4Material* material= couple->GetMaterial(); - - // get electron cut in kinetic energy for the material - G4double DeltaThreshold = SecondaryEnergyThreshold(J); - - const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); - G4int NumberOfElements = material->GetNumberOfElements(); - - if(1 < verboseLevel) { - G4cout << "### For material " << material->GetName() - << " Tcut(MeV)= " << DeltaThreshold/MeV - << " Tmin(MeV)= " << LowerBoundLambda/MeV - << " Tmax(MeV)= " << UpperBoundLambda/MeV - << " nbins= " << NbinLambda - << G4endl; - } - - - for ( G4int i = 0 ; i < NbinLambda ; i++ ) - { - G4double LowEdgeEnergy = aVector->GetLowEdgeEnergy(i); - G4double sigma = 0.; - for (G4int iel=0; ielGetZ(), - DeltaThreshold); - } - - // mean free path = 1./macroscopic cross section - G4double Value = sigma > DBL_MIN ? 1./sigma : DBL_MAX; - aVector->PutValue(i, Value) ; - } - theMeanFreePathTable->insert(aVector); - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4hIonisation::ComputeRestrictedMeandEdx ( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - const G4Material* material, - G4double DeltaThreshold) -{ - // calculate the dE/dx due to the ionization process (Geant4 internal units) - // Bethe-Bloch formula - // - G4double particleMass = proton_mass_c2; - - G4double ElectronDensity = material->GetElectronDensity(); - G4double Eexc = material->GetIonisation()->GetMeanExcitationEnergy(); - G4double Eexc2 = Eexc*Eexc; - - G4double tau = KineticEnergy/particleMass; - G4double gamma = tau + 1., bg2 = tau*(tau+2.), beta2 = bg2/(gamma*gamma); - G4double RateMass = electron_mass_c2/particleMass; - G4double Tmax=2.*electron_mass_c2*bg2/(1.+2.*gamma*RateMass+RateMass*RateMass); - - G4double taul = material->GetIonisation()->GetTaul(); - - G4double dEdx = 0.; - // - // high energy part , Bethe-Bloch formula - // - if (tau > taul) - { - G4double rcut = std::min(DeltaThreshold/Tmax, 1.); - dEdx = log(2.*electron_mass_c2*bg2*Tmax/Eexc2) - +log(rcut)-(1.+rcut)*beta2; - - //density correction - G4double Cden = material->GetIonisation()->GetCdensity(); - G4double Mden = material->GetIonisation()->GetMdensity(); - G4double Aden = material->GetIonisation()->GetAdensity(); - G4double X0den = material->GetIonisation()->GetX0density(); - G4double X1den = material->GetIonisation()->GetX1density(); - - const G4double twoln10 = 2.*log(10.); - G4double x = log(bg2)/twoln10; - G4double delta; - if (x < X0den) delta = 0.; - else {delta = twoln10*x - Cden; - if (x < X1den) delta += Aden*pow((X1den-x),Mden); - } - - // shell correction - G4double* ShellCorrectionVector = material->GetIonisation()-> - GetShellCorrectionVector(); - const G4double bg2lim = 0.0169, taulim = 8.4146e-3; - G4double sh = 0., xs = 1.; - if (bg2 > bg2lim) for (G4int k=0; k<3; k++) - {xs *= bg2; sh += ShellCorrectionVector[k]/xs;} - else { for (G4int k=0; k<3; k++) - {xs *= bg2lim; sh += ShellCorrectionVector[k]/xs;} - sh *= log(tau/taul)/log(taulim/taul); - } - - // now you can compute the total ionization loss - dEdx -= (delta + sh); - dEdx *= twopi_mc2_rcl2*ElectronDensity/beta2; - if (dEdx < 0.) dEdx = 0.; - } - // - // low energy part , parametrized energy loss formulae - // - if (tau <= taul) - { - // get elements in the actual material, - const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* NbOfAtomsPerVolume=material->GetVecNbOfAtomsPerVolume(); - G4int NumberOfElements = material->GetNumberOfElements(); - - // loop for the elements in the material - dEdx = 0.; - for (G4int iel=0; ielGetIonisation()->GetTau0()) - dEdx += NbOfAtomsPerVolume[iel] - *(element->GetIonisation()->GetAlow()*sqrt(tau) - + element->GetIonisation()->GetBlow()*tau); - else - dEdx += NbOfAtomsPerVolume[iel] - * element->GetIonisation()->GetClow()/sqrt(tau); - } - G4double deltaloss = 0.; - if (DeltaThreshold < Tmax) - { - deltaloss = log(Tmax/DeltaThreshold)- - beta2*(1.-DeltaThreshold/Tmax) ; - if (aParticleType.GetPDGSpin() == 0.5) - deltaloss += 0.25*(Tmax-DeltaThreshold)*(Tmax-DeltaThreshold)/ - (KineticEnergy*KineticEnergy+proton_mass_c2*proton_mass_c2); - deltaloss *= twopi_mc2_rcl2*ElectronDensity/beta2; - } - dEdx -= deltaloss; - if (dEdx < 0.) dEdx = 0.; - } - return dEdx; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4hIonisation::ComputeCrossSectionPerAtom( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double DeltaThreshold) -{ - // calculates the totalcross section per atom in GEANT4 internal units - // ( it is called for elements , AtomicNumber = Z ) - // - // nb: cross section formula is OK for spin=0 and 1/2 only ! - - initialMass = aParticleType.GetPDGMass(); - G4double particleMass = initialMass; - - G4double TotalEnergy = KineticEnergy + particleMass; - - G4double betasquare = KineticEnergy*(TotalEnergy+particleMass) - /(TotalEnergy*TotalEnergy); - G4double tempvar = particleMass+electron_mass_c2; - G4double MaxKineticEnergyTransfer = 2.*electron_mass_c2*KineticEnergy - *(TotalEnergy+particleMass) - /(tempvar*tempvar+2.*electron_mass_c2*KineticEnergy); - - G4double TotalCrossSection = 0.; - if (MaxKineticEnergyTransfer > DeltaThreshold) - { - tempvar = DeltaThreshold/MaxKineticEnergyTransfer; - TotalCrossSection = (1.-tempvar*(1.-betasquare*log(tempvar))) - /DeltaThreshold; - - G4double spin = aParticleType.GetPDGSpin(); - if (spin == 0.5) TotalCrossSection += 0.5 - *(MaxKineticEnergyTransfer-DeltaThreshold) - /(TotalEnergy*TotalEnergy); - if (spin == 1.) TotalCrossSection += - -log(tempvar)/(3.0*DeltaThreshold) + - (MaxKineticEnergyTransfer - DeltaThreshold) * - ((5.0+ 1.0/tempvar)*0.25 / (TotalEnergy*TotalEnergy) - - betasquare / - (MaxKineticEnergyTransfer * DeltaThreshold)) / 3.0; - - TotalCrossSection *= twopi_mc2_rcl2*AtomicNumber/betasquare; - } - return TotalCrossSection; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VParticleChange* G4hIonisation::PostStepDoIt(const G4Track& trackData, - const G4Step& stepData) -{ - aParticleChange.Initialize(trackData); - - const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); - const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); - - G4double particleMass = aParticle->GetMass(); - G4double KineticEnergy = aParticle->GetKineticEnergy(); - G4double TotalEnergy = KineticEnergy + particleMass; - G4double Psquare = KineticEnergy*(TotalEnergy+particleMass); - G4double Esquare = TotalEnergy*TotalEnergy; - G4double betasquare=Psquare/Esquare; - G4double summass = particleMass + electron_mass_c2; - G4double MaxKineticEnergyTransfer = 2.*electron_mass_c2*Psquare - /(summass*summass+2.*electron_mass_c2*KineticEnergy); - G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); - - // get electron cut in kinetic energy - - G4double DeltaThreshold = SecondaryEnergyThreshold(couple->GetIndex()); - - // sampling kinetic energy of the delta ray - // - if (MaxKineticEnergyTransfer <= DeltaThreshold) - // pathological case (it should not happen, there is no change at all) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - // normal case - G4double xc = DeltaThreshold/MaxKineticEnergyTransfer; - G4double rate = MaxKineticEnergyTransfer/TotalEnergy; - G4double te2 = 0.; - if (aParticle->GetDefinition()->GetPDGSpin() == 0.5) te2=0.5*rate*rate; - - // sampling follows ... - G4double x,grej; - G4double grejc=1.-betasquare*xc+te2*xc*xc; - do { x=xc/(1.-(1.-xc)*G4UniformRand()); - grej=(1.-x*(betasquare-x*te2))/grejc; - } while(G4UniformRand() > grej); - - G4double DeltaKineticEnergy = x * MaxKineticEnergyTransfer; - - if (DeltaKineticEnergy <= 0.) - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); - - G4double DeltaTotalMomentum = sqrt(DeltaKineticEnergy * (DeltaKineticEnergy + - 2. * electron_mass_c2 )); - G4double TotalMomentum = sqrt(Psquare); - G4double costheta = DeltaKineticEnergy * (TotalEnergy + electron_mass_c2) - /(DeltaTotalMomentum * TotalMomentum); - - if (costheta < -1.) costheta = -1.; - if (costheta > +1.) costheta = +1.; - - // direction of the delta electron - // - G4double phi = twopi*G4UniformRand(); - G4double sintheta = sqrt((1.+costheta)*(1.-costheta)); - G4double dirx = sintheta*cos(phi), diry = sintheta*sin(phi), dirz = costheta; - - G4ThreeVector DeltaDirection(dirx,diry,dirz); - DeltaDirection.rotateUz(ParticleDirection); - - // create G4DynamicParticle object for delta ray - // - G4DynamicParticle *theDeltaRay = new G4DynamicParticle; - theDeltaRay->SetKineticEnergy( DeltaKineticEnergy ); - theDeltaRay->SetMomentumDirection( - DeltaDirection.x(),DeltaDirection.y(),DeltaDirection.z()); - theDeltaRay->SetDefinition(G4Electron::Electron()); - - // fill aParticleChange - // - G4double finalKineticEnergy = KineticEnergy - DeltaKineticEnergy; - G4double Edep = 0; - - if (finalKineticEnergy > MinKineticEnergy) - { - G4double finalPx = TotalMomentum*ParticleDirection.x() - - DeltaTotalMomentum*DeltaDirection.x(); - G4double finalPy = TotalMomentum*ParticleDirection.y() - - DeltaTotalMomentum*DeltaDirection.y(); - G4double finalPz = TotalMomentum*ParticleDirection.z() - - DeltaTotalMomentum*DeltaDirection.z(); - G4double finalMomentum = - sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz); - finalPx /= finalMomentum; - finalPy /= finalMomentum; - finalPz /= finalMomentum; - - aParticleChange.SetMomentumChange( finalPx,finalPy,finalPz ); - } - else - { - Edep = finalKineticEnergy; - finalKineticEnergy = 0.; - if (!aParticle->GetDefinition()->GetProcessManager()->GetAtRestProcessVector()->size()) - aParticleChange.SetStatusChange(fStopAndKill); - else aParticleChange.SetStatusChange(fStopButAlive); - } - - aParticleChange.SetEnergyChange( finalKineticEnergy ); - aParticleChange.SetNumberOfSecondaries(1); - aParticleChange.AddSecondary(theDeltaRay); - aParticleChange.SetLocalEnergyDeposit (Edep); - - //ResetNumberOfInteractionLengthLeft(); - return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool G4hIonisation::StorePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - G4String particleName = particle->GetParticleName(); - G4String filename; - - // store stopping power table - if ((particleName == "proton")||(particleName == "anti_proton")) { - filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); - if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable->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 " << particleName - << ": Success to store the PhysicsTables in " - << directory << G4endl; - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4bool G4hIonisation::RetrievePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - - G4String particleName = particle->GetParticleName(); - if(particle->GetParticleType() == "nucleus" && - particleName != "GenericIon" && - particle->GetParticleSubType() == "generic") - { - - G4EnergyLossTables::Register(particle, - theDEDXpTable, - theRangepTable, - theInverseRangepTable, - theLabTimepTable, - theProperTimepTable, - LowestKineticEnergy, HighestKineticEnergy, - proton_mass_c2/particle->GetPDGMass(), - TotBin); - - return true; - } - - // delete theLossTable and theMeanFreePathTable - if (theLossTable != 0) { - theLossTable->clearAndDestroy(); - delete theLossTable; - } - if (theMeanFreePathTable != 0) { - theMeanFreePathTable->clearAndDestroy(); - delete theMeanFreePathTable; - } - - // get bining from EnergyLoss - LowestKineticEnergy = GetLowerBoundEloss(); - HighestKineticEnergy = GetUpperBoundEloss(); - TotBin = GetNbinEloss(); - - G4String filename; - - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); - - G4double charge = particle->GetPDGCharge()/eplus; - G4ParticleDefinition* basep = G4Proton::Proton(); - if(charge < 0.0) basep = G4AntiProton::AntiProton(); - filename = GetPhysicsTableFileName(basep,directory,"StoppingPower",ascii); - - theLossTable = new G4PhysicsTable(numOfCouples); - if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theLossTable0->RetrievePhysicsTable in " << filename - << G4endl; - BuildPhysicsTable(*particle); - return true; - } - RecorderOfpProcess[0] = (*this).theLossTable; - - // retreive mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - theMeanFreePathTable = new G4PhysicsTable(numOfCouples); - if ( !theMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ - G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename - << G4endl; - return false; - } - initialMass = particle->GetPDGMass(); - - - G4cout << GetProcessName() << " for " << particleName - << ": Success to retrieve the PhysicsTables from " - << directory << G4endl; - - BuildDEDXTable(*particle); - if (particle == G4Proton::Proton()) PrintInfoDefinition(); - - return true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4hIonisation::PrintInfoDefinition() { - G4String comments = " Knock-on electron cross sections . " - "\n Good description above the mean excitation energy.\n" - " delta ray energy sampled from differential Xsection."; + G4VEnergyLossProcess::PrintInfoDefinition(); - G4cout << G4endl << GetProcessName() << ": " << comments - << "\n PhysicsTables from " << G4BestUnit(LowestKineticEnergy, - "Energy") - << " to " << G4BestUnit(HighestKineticEnergy,"Energy") - << " in " << TotBin << " bins. " - << "\n Step function: finalRange(mm)= " << finalRange - << ", dRoverRange= " << dRoverRange - << G4endl; + G4cout << " Bether-Bloch model for Escaled > 2 MeV, " + << "parametrisation of Bragg peak below, " + << "Integral mode " << IsIntegral() + << G4endl; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4hIonisation::SetSubCutoff(G4bool val) +{ + subCutoff = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4hIonisation52.cc b/source/processes/electromagnetic/standard/src/G4hIonisation52.cc new file mode 100644 index 0000000000..db21a375d8 --- /dev/null +++ b/source/processes/electromagnetic/standard/src/G4hIonisation52.cc @@ -0,0 +1,731 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4hIonisation52.cc,v 1.1 2003/08/08 11:30:02 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//---------------- G4hIonisation52 physics process ------------------------------- +// by Laszlo Urban, 30 May 1997 +//------------------------------------------------------------------------------ +// +// corrected by L.Urban on 24/09/97 +// several bugs corrected by L.Urban on 13/01/98 +// 07-04-98 remove 'tracking cut' of the ionizing particle, mma +// 22-10-98 cleanup L.Urban +// 02-02-99 bugs fixed , L.Urban +// 29-07-99 correction in BuildLossTable for low energy, L.Urban +// 10-02-00 modifications , new e.m. structure, L.Urban +// 10-08-00 V.Ivanchenko change BuildLambdaTable, in order to +// simulate energy losses of ions; correction to +// cross section for particles with spin 1 is inserted as well +// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation +// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) +// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) +// 29-08-01 PostStepDoIt: correction for spin 1/2 (instead of 1) (mma) +// 17-09-01 migration of Materials to pure STL (mma) +// 25-09-01 completion of RetrievePhysicsTable() (mma) +// 29-10-01 all static functions no more inlined +// 08-11-01 Charge renamed zparticle; added to the dedx +// 27-03-02 Bug fix in scaling of lambda table (V.Ivanchenko) +// 09-04-02 Update calculation of tables for GenericIons (V.Ivanchenko) +// 10-06-02 bug fixed for stopping hadrons (V.Ivanchenko) +// 15-01-03 Migrade to cut per region (V.Ivanchenko) +// 10-03-03 Use SubType for GenericIons (V.Ivanchenko) +// 07-04-03 Fix problem of several runs (V.Ivanchenko) +// 08-04-03 finalRange is region aware (V.Ivanchenko) +// 17-04-03 fix problem of hadron tests (V.Ivanchenko) +// 26-04-03 fix problems of retrieve tables (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +// +//------------------------------------------------------------------------------ + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4hIonisation52.hh" +#include "G4ProcessManager.hh" +#include "G4UnitsTable.hh" +#include "G4EnergyLossTables.hh" +#include "G4ProductionCutsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4hIonisation52::LowerBoundLambda = 1.*keV; +G4double G4hIonisation52::UpperBoundLambda = 100.*TeV; +G4int G4hIonisation52::NbinLambda = 100; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4hIonisation52::G4hIonisation52(const G4String& processName) + : G4VhEnergyLoss(processName), + theMeanFreePathTable(0), + Tmincut(1*keV) +{ + verboseLevel = 0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4hIonisation52::~G4hIonisation52() +{ + if (theMeanFreePathTable) { + theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4hIonisation52::SetLowerBoundLambda(G4double val) + {LowerBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4hIonisation52::SetUpperBoundLambda(G4double val) + {UpperBoundLambda = val;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4hIonisation52::SetNbinLambda(G4int n) + {NbinLambda = n;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4hIonisation52::GetLowerBoundLambda() + {return LowerBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4hIonisation52::GetUpperBoundLambda() + {return UpperBoundLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4int G4hIonisation52::GetNbinLambda() + {return NbinLambda;} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4hIonisation52::BuildPhysicsTable(const G4ParticleDefinition& aParticleType) +// just call BuildLossTable+BuildLambdaTable +{ + + if(verboseLevel > 0) { + G4cout << "G4hIonisation52::BuildPhysicsTable for " + << aParticleType.GetParticleName() + << " mass(MeV)= " << aParticleType.GetPDGMass()/MeV + << " charge= " << aParticleType.GetPDGCharge()/eplus + << " type= " << aParticleType.GetParticleType() + << G4endl; + + if(verboseLevel > 1) { + G4cout << " MFPtable= " << theMeanFreePathTable + << " DEDXtable= " << theDEDXpTable + << " iniMass= " << initialMass + << G4endl; + } + } + + if(aParticleType.GetParticleType() == "nucleus" && + aParticleType.GetParticleName() != "GenericIon" && + aParticleType.GetParticleSubType() == "generic") + { + + G4EnergyLossTables::Register(&aParticleType, + theDEDXpTable, + theRangepTable, + theInverseRangepTable, + theLabTimepTable, + theProperTimepTable, + LowestKineticEnergy, HighestKineticEnergy, + proton_mass_c2/aParticleType.GetPDGMass(), + TotBin); + + return; + } + + // get bining from EnergyLoss + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + const G4ParticleDefinition* theProton = G4Proton::Proton(); + G4bool makeTables = false; + + if (aParticleType.GetPDGCharge() > 0.) + { + if( CutsWhereModified() || !theDEDXpTable ) + { + BuildLossTable(*theProton); + RecorderOfpProcess[0] = (*this).theLossTable; +// CounterOfpProcess++; + makeTables = true; + } + } + else + { + if( CutsWhereModified() || !theDEDXpbarTable ) + { + BuildLossTable(*(G4AntiProton::AntiProton())) ; + RecorderOfpProcess[0] = (*this).theLossTable; +// CounterOfpbarProcess++; + makeTables = true; + } + } + + BuildLambdaTable(aParticleType); + + if( makeTables ) BuildDEDXTable(aParticleType); + + if(2 < verboseLevel) { + G4cout << "MeanFreePathTable is built for " + << aParticleType.GetParticleName() << G4endl; + G4cout << (*theMeanFreePathTable) << G4endl; + } + + + if (&aParticleType == theProton) PrintInfoDefinition(); + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4hIonisation52::BuildLossTable(const G4ParticleDefinition& aParticleType) +{ + if(0 < verboseLevel) { + G4cout << "G4hIonisation52::BuildLossTable() for process " + << GetProcessName() << " and particle " + << aParticleType.GetParticleName() << G4endl; + } + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theLossTable) {theLossTable->clearAndDestroy(); delete theLossTable;} + theLossTable = new G4PhysicsTable(numOfCouples); + + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + // loop for materials + // + for (size_t J=0; JGetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + // get electron cut in kinetic energy for the material + G4double DeltaThreshold = SecondaryEnergyThreshold(J); + + // now comes the loop for the kinetic energy values + // + for (G4int i = 0 ; i < TotBin ; i++) + { + G4double dEdx = ComputeRestrictedMeandEdx(aParticleType, + aVector->GetLowEdgeEnergy(i), + material, + DeltaThreshold); + aVector->PutValue(i,dEdx); + } + theLossTable->insert(aVector); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4hIonisation52::BuildLambdaTable(const G4ParticleDefinition& aParticleType) +{ + + if(0 < verboseLevel) { + G4cout << "G4hIonisation52::BuildLambdaTable() for process " + << GetProcessName() << " and particle " + << aParticleType.GetParticleName() << G4endl; + } + + //create table + // + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + if (theMeanFreePathTable) + {theMeanFreePathTable->clearAndDestroy(); delete theMeanFreePathTable;} + + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + + // get electron cut in kinetic energy + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + // loop for materials + + for (size_t J=0 ; J < numOfCouples; J++) + { + //create physics vector then fill it .... + G4PhysicsLogVector* aVector = new G4PhysicsLogVector( + LowerBoundLambda,UpperBoundLambda,NbinLambda); + + // compute the (macroscopic) cross section first + const G4MaterialCutsCouple* couple = theCoupleTable->GetMaterialCutsCouple(J); + const G4Material* material= couple->GetMaterial(); + + // get electron cut in kinetic energy for the material + G4double DeltaThreshold = SecondaryEnergyThreshold(J); + + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); + G4int NumberOfElements = material->GetNumberOfElements(); + + if(1 < verboseLevel) { + G4cout << "### For material " << material->GetName() + << " Tcut(MeV)= " << DeltaThreshold/MeV + << " Tmin(MeV)= " << LowerBoundLambda/MeV + << " Tmax(MeV)= " << UpperBoundLambda/MeV + << " nbins= " << NbinLambda + << G4endl; + } + + + for ( G4int i = 0 ; i < NbinLambda ; i++ ) + { + G4double LowEdgeEnergy = aVector->GetLowEdgeEnergy(i); + G4double sigma = 0.; + for (G4int iel=0; ielGetZ(), + DeltaThreshold); + } + + // mean free path = 1./macroscopic cross section + G4double Value = sigma > DBL_MIN ? 1./sigma : DBL_MAX; + aVector->PutValue(i, Value) ; + } + theMeanFreePathTable->insert(aVector); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4hIonisation52::ComputeRestrictedMeandEdx ( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + const G4Material* material, + G4double DeltaThreshold) +{ + // calculate the dE/dx due to the ionization process (Geant4 internal units) + // Bethe-Bloch formula + // + G4double particleMass = proton_mass_c2; + + G4double ElectronDensity = material->GetElectronDensity(); + G4double Eexc = material->GetIonisation()->GetMeanExcitationEnergy(); + G4double Eexc2 = Eexc*Eexc; + + G4double tau = KineticEnergy/particleMass; + G4double gamma = tau + 1., bg2 = tau*(tau+2.), beta2 = bg2/(gamma*gamma); + G4double RateMass = electron_mass_c2/particleMass; + G4double Tmax=2.*electron_mass_c2*bg2/(1.+2.*gamma*RateMass+RateMass*RateMass); + + G4double taul = material->GetIonisation()->GetTaul(); + + G4double dEdx = 0.; + // + // high energy part , Bethe-Bloch formula + // + if (tau > taul) + { + G4double rcut = std::min(DeltaThreshold/Tmax, 1.); + dEdx = log(2.*electron_mass_c2*bg2*Tmax/Eexc2) + +log(rcut)-(1.+rcut)*beta2; + + //density correction + G4double Cden = material->GetIonisation()->GetCdensity(); + G4double Mden = material->GetIonisation()->GetMdensity(); + G4double Aden = material->GetIonisation()->GetAdensity(); + G4double X0den = material->GetIonisation()->GetX0density(); + G4double X1den = material->GetIonisation()->GetX1density(); + + const G4double twoln10 = 2.*log(10.); + G4double x = log(bg2)/twoln10; + G4double delta; + if (x < X0den) delta = 0.; + else {delta = twoln10*x - Cden; + if (x < X1den) delta += Aden*pow((X1den-x),Mden); + } + + // shell correction + G4double* ShellCorrectionVector = material->GetIonisation()-> + GetShellCorrectionVector(); + const G4double bg2lim = 0.0169, taulim = 8.4146e-3; + G4double sh = 0., xs = 1.; + if (bg2 > bg2lim) for (G4int k=0; k<3; k++) + {xs *= bg2; sh += ShellCorrectionVector[k]/xs;} + else { for (G4int k=0; k<3; k++) + {xs *= bg2lim; sh += ShellCorrectionVector[k]/xs;} + sh *= log(tau/taul)/log(taulim/taul); + } + + // now you can compute the total ionization loss + dEdx -= (delta + sh); + dEdx *= twopi_mc2_rcl2*ElectronDensity/beta2; + if (dEdx < 0.) dEdx = 0.; + } + // + // low energy part , parametrized energy loss formulae + // + if (tau <= taul) + { + // get elements in the actual material, + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* NbOfAtomsPerVolume=material->GetVecNbOfAtomsPerVolume(); + G4int NumberOfElements = material->GetNumberOfElements(); + + // loop for the elements in the material + dEdx = 0.; + for (G4int iel=0; ielGetIonisation()->GetTau0()) + dEdx += NbOfAtomsPerVolume[iel] + *(element->GetIonisation()->GetAlow()*sqrt(tau) + + element->GetIonisation()->GetBlow()*tau); + else + dEdx += NbOfAtomsPerVolume[iel] + * element->GetIonisation()->GetClow()/sqrt(tau); + } + G4double deltaloss = 0.; + if (DeltaThreshold < Tmax) + { + deltaloss = log(Tmax/DeltaThreshold)- + beta2*(1.-DeltaThreshold/Tmax) ; + if (aParticleType.GetPDGSpin() == 0.5) + deltaloss += 0.25*(Tmax-DeltaThreshold)*(Tmax-DeltaThreshold)/ + (KineticEnergy*KineticEnergy+proton_mass_c2*proton_mass_c2); + deltaloss *= twopi_mc2_rcl2*ElectronDensity/beta2; + } + dEdx -= deltaloss; + if (dEdx < 0.) dEdx = 0.; + } + return dEdx; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4hIonisation52::ComputeCrossSectionPerAtom( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double DeltaThreshold) +{ + // calculates the totalcross section per atom in GEANT4 internal units + // ( it is called for elements , AtomicNumber = Z ) + // + // nb: cross section formula is OK for spin=0 and 1/2 only ! + + initialMass = aParticleType.GetPDGMass(); + G4double particleMass = initialMass; + + G4double TotalEnergy = KineticEnergy + particleMass; + + G4double betasquare = KineticEnergy*(TotalEnergy+particleMass) + /(TotalEnergy*TotalEnergy); + G4double tempvar = particleMass+electron_mass_c2; + G4double MaxKineticEnergyTransfer = 2.*electron_mass_c2*KineticEnergy + *(TotalEnergy+particleMass) + /(tempvar*tempvar+2.*electron_mass_c2*KineticEnergy); + + G4double TotalCrossSection = 0.; + if (MaxKineticEnergyTransfer > DeltaThreshold) + { + tempvar = DeltaThreshold/MaxKineticEnergyTransfer; + TotalCrossSection = (1.-tempvar*(1.-betasquare*log(tempvar))) + /DeltaThreshold; + + G4double spin = aParticleType.GetPDGSpin(); + if (spin == 0.5) TotalCrossSection += 0.5 + *(MaxKineticEnergyTransfer-DeltaThreshold) + /(TotalEnergy*TotalEnergy); + if (spin == 1.) TotalCrossSection += + -log(tempvar)/(3.0*DeltaThreshold) + + (MaxKineticEnergyTransfer - DeltaThreshold) * + ((5.0+ 1.0/tempvar)*0.25 / (TotalEnergy*TotalEnergy) - + betasquare / + (MaxKineticEnergyTransfer * DeltaThreshold)) / 3.0; + + TotalCrossSection *= twopi_mc2_rcl2*AtomicNumber/betasquare; + } + return TotalCrossSection; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* G4hIonisation52::PostStepDoIt(const G4Track& trackData, + const G4Step& stepData) +{ + aParticleChange.Initialize(trackData); + + const G4MaterialCutsCouple* couple = trackData.GetMaterialCutsCouple(); + const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); + + G4double particleMass = aParticle->GetMass(); + G4double KineticEnergy = aParticle->GetKineticEnergy(); + G4double TotalEnergy = KineticEnergy + particleMass; + G4double Psquare = KineticEnergy*(TotalEnergy+particleMass); + G4double Esquare = TotalEnergy*TotalEnergy; + G4double betasquare=Psquare/Esquare; + G4double summass = particleMass + electron_mass_c2; + G4double MaxKineticEnergyTransfer = 2.*electron_mass_c2*Psquare + /(summass*summass+2.*electron_mass_c2*KineticEnergy); + G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); + + // get electron cut in kinetic energy + + G4double DeltaThreshold = SecondaryEnergyThreshold(couple->GetIndex()); + + // sampling kinetic energy of the delta ray + // + if (MaxKineticEnergyTransfer <= DeltaThreshold) + // pathological case (it should not happen, there is no change at all) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + // normal case + G4double xc = DeltaThreshold/MaxKineticEnergyTransfer; + G4double rate = MaxKineticEnergyTransfer/TotalEnergy; + G4double te2 = 0.; + if (aParticle->GetDefinition()->GetPDGSpin() == 0.5) te2=0.5*rate*rate; + + // sampling follows ... + G4double x,grej; + G4double grejc=1.-betasquare*xc+te2*xc*xc; + do { x=xc/(1.-(1.-xc)*G4UniformRand()); + grej=(1.-x*(betasquare-x*te2))/grejc; + } while(G4UniformRand() > grej); + + G4double DeltaKineticEnergy = x * MaxKineticEnergyTransfer; + + if (DeltaKineticEnergy <= 0.) + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); + + G4double DeltaTotalMomentum = sqrt(DeltaKineticEnergy * (DeltaKineticEnergy + + 2. * electron_mass_c2 )); + G4double TotalMomentum = sqrt(Psquare); + G4double costheta = DeltaKineticEnergy * (TotalEnergy + electron_mass_c2) + /(DeltaTotalMomentum * TotalMomentum); + + if (costheta < -1.) costheta = -1.; + if (costheta > +1.) costheta = +1.; + + // direction of the delta electron + // + G4double phi = twopi*G4UniformRand(); + G4double sintheta = sqrt((1.+costheta)*(1.-costheta)); + G4double dirx = sintheta*cos(phi), diry = sintheta*sin(phi), dirz = costheta; + + G4ThreeVector DeltaDirection(dirx,diry,dirz); + DeltaDirection.rotateUz(ParticleDirection); + + // create G4DynamicParticle object for delta ray + // + G4DynamicParticle *theDeltaRay = new G4DynamicParticle; + theDeltaRay->SetKineticEnergy( DeltaKineticEnergy ); + theDeltaRay->SetMomentumDirection( + DeltaDirection.x(),DeltaDirection.y(),DeltaDirection.z()); + theDeltaRay->SetDefinition(G4Electron::Electron()); + + // fill aParticleChange + // + G4double finalKineticEnergy = KineticEnergy - DeltaKineticEnergy; + G4double Edep = 0; + + if (finalKineticEnergy > MinKineticEnergy) + { + G4double finalPx = TotalMomentum*ParticleDirection.x() + - DeltaTotalMomentum*DeltaDirection.x(); + G4double finalPy = TotalMomentum*ParticleDirection.y() + - DeltaTotalMomentum*DeltaDirection.y(); + G4double finalPz = TotalMomentum*ParticleDirection.z() + - DeltaTotalMomentum*DeltaDirection.z(); + G4double finalMomentum = + sqrt(finalPx*finalPx+finalPy*finalPy+finalPz*finalPz); + finalPx /= finalMomentum; + finalPy /= finalMomentum; + finalPz /= finalMomentum; + + aParticleChange.SetMomentumChange( finalPx,finalPy,finalPz ); + } + else + { + Edep = finalKineticEnergy; + finalKineticEnergy = 0.; + if (!aParticle->GetDefinition()->GetProcessManager()->GetAtRestProcessVector()->size()) + aParticleChange.SetStatusChange(fStopAndKill); + else aParticleChange.SetStatusChange(fStopButAlive); + } + + aParticleChange.SetEnergyChange( finalKineticEnergy ); + aParticleChange.SetNumberOfSecondaries(1); + aParticleChange.AddSecondary(theDeltaRay); + aParticleChange.SetLocalEnergyDeposit (Edep); + + //ResetNumberOfInteractionLengthLeft(); + return G4VContinuousDiscreteProcess::PostStepDoIt(trackData,stepData); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4hIonisation52::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String particleName = particle->GetParticleName(); + G4String filename; + + // store stopping power table + if ((particleName == "proton")||(particleName == "anti_proton")) { + filename = GetPhysicsTableFileName(particle,directory,"StoppingPower",ascii); + if ( !theLossTable->StorePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable->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 " << particleName + << ": Success to store the PhysicsTables in " + << directory << G4endl; + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4hIonisation52::RetrievePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + + G4String particleName = particle->GetParticleName(); + if(particle->GetParticleType() == "nucleus" && + particleName != "GenericIon" && + particle->GetParticleSubType() == "generic") + { + + G4EnergyLossTables::Register(particle, + theDEDXpTable, + theRangepTable, + theInverseRangepTable, + theLabTimepTable, + theProperTimepTable, + LowestKineticEnergy, HighestKineticEnergy, + proton_mass_c2/particle->GetPDGMass(), + TotBin); + + return true; + } + + // delete theLossTable and theMeanFreePathTable + if (theLossTable != 0) { + theLossTable->clearAndDestroy(); + delete theLossTable; + } + if (theMeanFreePathTable != 0) { + theMeanFreePathTable->clearAndDestroy(); + delete theMeanFreePathTable; + } + + // get bining from EnergyLoss + LowestKineticEnergy = GetLowerBoundEloss(); + HighestKineticEnergy = GetUpperBoundEloss(); + TotBin = GetNbinEloss(); + + G4String filename; + + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + secondaryEnergyCuts = theCoupleTable->GetEnergyCutsVector(1); + + G4double charge = particle->GetPDGCharge()/eplus; + G4ParticleDefinition* basep = G4Proton::Proton(); + if(charge < 0.0) basep = G4AntiProton::AntiProton(); + filename = GetPhysicsTableFileName(basep,directory,"StoppingPower",ascii); + + theLossTable = new G4PhysicsTable(numOfCouples); + if ( !theLossTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theLossTable0->RetrievePhysicsTable in " << filename + << G4endl; + BuildPhysicsTable(*particle); + return true; + } + RecorderOfpProcess[0] = (*this).theLossTable; + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theMeanFreePathTable = new G4PhysicsTable(numOfCouples); + if ( !theMeanFreePathTable->RetrievePhysicsTable(filename, ascii) ){ + G4cout << " FAIL theMeanFreePathTable->RetrievePhysicsTable in " << filename + << G4endl; + return false; + } + initialMass = particle->GetPDGMass(); + + + G4cout << GetProcessName() << " for " << particleName + << ": Success to retrieve the PhysicsTables from " + << directory << G4endl; + + BuildDEDXTable(*particle); + if (particle == G4Proton::Proton()) PrintInfoDefinition(); + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4hIonisation52::PrintInfoDefinition() +{ + G4String comments = " Knock-on electron cross sections . " + "\n Good description above the mean excitation energy.\n" + " delta ray energy sampled from differential Xsection."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " << G4BestUnit(LowestKineticEnergy, + "Energy") + << " to " << G4BestUnit(HighestKineticEnergy,"Energy") + << " in " << TotBin << " bins. " + << "\n Step function: finalRange(mm)= " << finalRange + << ", dRoverRange= " << dRoverRange + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/standard/src/G4hIonisationSTD.cc b/source/processes/electromagnetic/standard/src/G4hIonisationSTD.cc deleted file mode 100644 index c792302c57..0000000000 --- a/source/processes/electromagnetic/standard/src/G4hIonisationSTD.cc +++ /dev/null @@ -1,156 +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. * -// ******************************************************************** -// -// -// ------------------------------------------------------------------- -// -// GEANT4 Class file -// -// -// File name: G4hIonisationSTD -// -// Author: Laszlo Urban -// -// Creation date: 30.05.1997 -// -// Modifications: -// -// corrected by L.Urban on 24/09/97 -// several bugs corrected by L.Urban on 13/01/98 -// 07-04-98 remove 'tracking cut' of the ionizing particle, mma -// 22-10-98 cleanup L.Urban -// 02-02-99 bugs fixed , L.Urban -// 29-07-99 correction in BuildLossTable for low energy, L.Urban -// 10-02-00 modifications , new e.m. structure, L.Urban -// 10-08-00 V.Ivanchenko change BuildLambdaTable, in order to -// simulate energy losses of ions; correction to -// cross section for particles with spin 1 is inserted as well -// 28-05-01 V.Ivanchenko minor changes to provide ANSI -wall compilation -// 10-08-01 new methods Store/Retrieve PhysicsTable (mma) -// 14-08-01 new function ComputeRestrictedMeandEdx() + 'cleanup' (mma) -// 29-08-01 PostStepDoIt: correction for spin 1/2 (instead of 1) (mma) -// 17-09-01 migration of Materials to pure STL (mma) -// 25-09-01 completion of RetrievePhysicsTable() (mma) -// 29-10-01 all static functions no more inlined -// 08-11-01 Charge renamed zparticle; added to the dedx -// 27-03-02 Bug fix in scaling of lambda table (V.Ivanchenko) -// 09-04-02 Update calculation of tables for GenericIons (V.Ivanchenko) -// 30-04-02 V.Ivanchenko update to new design -// 04-12-02 Add verbose level definition (VI) -// 23-12-02 Change interface in order to move to cut per region (V.Ivanchenko) -// 26-12-02 Secondary production moved to derived classes (V.Ivanchenko) -// 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) -// 23-05-03 Define default integral + BohrFluctuations (V.Ivanchenko) -// 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) -// -// ------------------------------------------------------------------- -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -#include "G4hIonisationSTD.hh" -#include "G4Electron.hh" -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4BraggModel.hh" -#include "G4BetheBlochModel.hh" -#include "G4UniversalFluctuation.hh" -#include "G4BohrFluctuations.hh" -#include "G4UnitsTable.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4hIonisationSTD::G4hIonisationSTD(const G4String& name) - : G4VEnergyLossSTD(name), - theParticle(0), - theBaseParticle(0), - subCutoff(false), - isInitialised(false) -{ - SetDEDXBinning(120); - SetLambdaBinning(120); - SetMinKinEnergy(0.1*keV); - SetMaxKinEnergy(100.0*TeV); - SetVerboseLevel(0); - mass = 0.0; - ratio = 0.0; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -G4hIonisationSTD::~G4hIonisationSTD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4hIonisationSTD::InitialiseProcess() -{ - SetSecondaryParticle(G4Electron::Electron()); - - G4VEmModel* em = new G4BraggModel(); - em->SetLowEnergyLimit(0.1*keV); - em->SetHighEnergyLimit(2.0*MeV); - - if(IsIntegral()) flucModel = new G4BohrFluctuations(); - else flucModel = new G4UniversalFluctuation(); - - AddEmModel(1, em, flucModel); - G4VEmModel* em1 = new G4BetheBlochModel(); - em1->SetLowEnergyLimit(2.0*MeV); - em1->SetHighEnergyLimit(100.0*TeV); - AddEmModel(2, em1, flucModel); - - isInitialised = true; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -const G4ParticleDefinition* G4hIonisationSTD::DefineBaseParticle( - const G4ParticleDefinition* p) -{ - if(!theParticle) theParticle = p; - if(!theBaseParticle && p != G4Proton::Proton()) theBaseParticle = G4Proton::Proton(); - if(!isInitialised) InitialiseProcess(); - mass = p->GetPDGMass(); - ratio = electron_mass_c2/mass; - return theBaseParticle; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4hIonisationSTD::PrintInfoDefinition() -{ - G4VEnergyLossSTD::PrintInfoDefinition(); - - G4cout << " Bether-Bloch model for Escaled > 2 MeV, " - << "parametrisation of Bragg peak below." - << G4endl; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4hIonisationSTD::SetSubCutoff(G4bool val) -{ - subCutoff = val; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc index 07afd6fe87..824b19b28e 100644 --- a/source/processes/electromagnetic/standard/src/G4ionIonisation.cc +++ b/source/processes/electromagnetic/standard/src/G4ionIonisation.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4ionIonisation.cc,v 1.21 2003/11/12 16:23:42 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -38,6 +40,8 @@ // 26-12-02 Secondary production moved to derived classes (V.Ivanchenko) // 13-02-03 SubCutoff regime is assigned to a region (V.Ivanchenko) // 18-04-03 Use IonFluctuations (V.Ivanchenko) +// 03-08-03 Add effective charge (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // // // ------------------------------------------------------------------- @@ -57,9 +61,8 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4ionIonisation::G4ionIonisation(const G4String& name) - : G4VEnergyLossSTD(name), + : G4VEnergyLossProcess(name), theParticle(0), - theBaseParticle(G4Proton::Proton()), subCutoff(false) { InitialiseProcess(); @@ -74,8 +77,6 @@ G4ionIonisation::~G4ionIonisation() void G4ionIonisation::InitialiseProcess() { - SetVerboseLevel(0); - SetSecondaryParticle(G4Electron::Electron()); SetDEDXBinning(120); @@ -94,6 +95,11 @@ void G4ionIonisation::InitialiseProcess() em1->SetHighEnergyLimit(100.0*TeV); AddEmModel(2, em1, flucModel); + SetIntegral(false); + chargeLowLimit = 0.1; + energyLowLimit = 250.*MeV; + SetLinearLossLimit(0.15); + //SetStepLimits(0.1, 0.1*mm); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -101,15 +107,16 @@ void G4ionIonisation::InitialiseProcess() const G4ParticleDefinition* G4ionIonisation::DefineBaseParticle( const G4ParticleDefinition* p) { - if(!theParticle) theParticle = p; + if(p) theParticle = p; + theBaseParticle = G4Proton::Proton(); return theBaseParticle; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4ionIonisation::PrintInfoDefinition() +void G4ionIonisation::PrintInfoDefinition() { - G4VEnergyLossSTD::PrintInfoDefinition(); + G4VEnergyLossProcess::PrintInfoDefinition(); G4cout << " Scaling relation is used to proton dE/dx and range" << G4endl @@ -127,4 +134,141 @@ void G4ionIonisation::SetSubCutoff(G4bool val) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +G4double G4ionIonisation::EffectiveCharge(const G4ParticleDefinition* p, + const G4Material* material, + G4double kineticEnergy) +{ + G4double mass = p->GetPDGMass(); + G4double charge = p->GetPDGCharge(); + G4double Zi = charge/eplus; + + chargeCorrection = 1.0; + + // The aproximation of ion effective charge from: + // J.F.Ziegler, J.P. Biersack, U. Littmark + // The Stopping and Range of Ions in Matter, + // Vol.1, Pergamon Press, 1985 + // Fast ions or hadrons + G4double reducedEnergy = kineticEnergy * proton_mass_c2/mass ; + if( reducedEnergy > energyLowLimit || Zi < 1.5 ) return charge ; + + static G4double vFermi[92] = { + 1.0309, 0.15976, 0.59782, 1.0781, 1.0486, 1.0, 1.058, 0.93942, 0.74562, 0.3424, + 0.45259, 0.71074, 0.90519, 0.97411, 0.97184, 0.89852, 0.70827, 0.39816, 0.36552, 0.62712, + 0.81707, 0.9943, 1.1423, 1.2381, 1.1222, 0.92705, 1.0047, 1.2, 1.0661, 0.97411, + 0.84912, 0.95, 1.0903, 1.0429, 0.49715, 0.37755, 0.35211, 0.57801, 0.77773, 1.0207, + 1.029, 1.2542, 1.122, 1.1241, 1.0882, 1.2709, 1.2542, 0.90094, 0.74093, 0.86054, + 0.93155, 1.0047, 0.55379, 0.43289, 0.32636, 0.5131, 0.695, 0.72591, 0.71202, 0.67413, + 0.71418, 0.71453, 0.5911, 0.70263, 0.68049, 0.68203, 0.68121, 0.68532, 0.68715, 0.61884, + 0.71801, 0.83048, 1.1222, 1.2381, 1.045, 1.0733, 1.0953, 1.2381, 1.2879, 0.78654, + 0.66401, 0.84912, 0.88433, 0.80746, 0.43357, 0.41923, 0.43638, 0.51464, 0.73087, 0.81065, + 1.9578, 1.0257} ; + + static G4double lFactor[92] = { + 1.0, 1.0, 1.1, 1.06, 1.01, 1.03, 1.04, 0.99, 0.95, 0.9, + 0.82, 0.81, 0.83, 0.88, 1.0, 0.95, 0.97, 0.99, 0.98, 0.97, + 0.98, 0.97, 0.96, 0.93, 0.91, 0.9, 0.88, 0.9, 0.9, 0.9, + 0.9, 0.85, 0.9, 0.9, 0.91, 0.92, 0.9, 0.9, 0.9, 0.9, + 0.9, 0.88, 0.9, 0.88, 0.88, 0.9, 0.9, 0.88, 0.9, 0.9, + 0.9, 0.9, 0.96, 1.2, 0.9, 0.88, 0.88, 0.85, 0.9, 0.9, + 0.92, 0.95, 0.99, 1.03, 1.05, 1.07, 1.08, 1.1, 1.08, 1.08, + 1.08, 1.08, 1.09, 1.09, 1.1, 1.11, 1.12, 1.13, 1.14, 1.15, + 1.17, 1.2, 1.18, 1.17, 1.17, 1.16, 1.16, 1.16, 1.16, 1.16, + 1.16, 1.16} ; + + static G4double c[6] = {0.2865, 0.1266, -0.001429, + 0.02402,-0.01135, 0.001475} ; + + // get elements in the actual material, + const G4ElementVector* theElementVector = material->GetElementVector() ; + const G4double* theAtomicNumDensityVector = + material->GetAtomicNumDensityVector() ; + const G4int NumberOfElements = material->GetNumberOfElements() ; + + // loop for the elements in the material + // to find out average values Z, vF, lF + G4double z = 0.0, vF = 0.0, lF = 0.0, norm = 0.0 ; + + if( 1 == NumberOfElements ) { + z = material->GetZ() ; + G4int iz = G4int(z) - 1 ; + if(iz < 0) iz = 0 ; + else if(iz > 91) iz = 91 ; + vF = vFermi[iz] ; + lF = lFactor[iz] ; + + } else { + for (G4int iel=0; ielGetZ() ; + const G4double weight = theAtomicNumDensityVector[iel] ; + norm += weight ; + z += z2 * weight ; + G4int iz = G4int(z2) - 1 ; + if(iz < 0) iz = 0 ; + else if(iz > 91) iz =91 ; + vF += vFermi[iz] * weight ; + lF += lFactor[iz] * weight ; + } + z /= norm ; + vF /= norm ; + lF /= norm ; + } + + G4double q; + // Helium ion case + if( Zi < 2.5 ) { + + // Normalise to He4 mass + G4double e = log(std::max(1.0, kineticEnergy / (keV*4.0026) ) ); + G4double x = c[0] ; + G4double y = 1.0 ; + for (G4int i=1; i<6; i++) { + y *= e ; + x += y * c[i] ; + } + q = 7.6 - e ; + q = 1.0 + ( 0.007 + 0.00005 * z ) * exp( -q*q ) * sqrt(1.0 - exp(-x)) ; + if( q < chargeLowLimit ) q = chargeLowLimit ; + + // Heavy ion case + } else { + // v1 is ion velocity in vF unit + G4double v1 = sqrt( reducedEnergy / (25.0 * keV) )/ vF ; + G4double y ; + G4double z13 = pow(Zi, 0.3333) ; + + // Faster than Fermi velocity + if ( v1 > 1.0 ) { + y = vF * v1 * ( 1.0 + 0.2 / (v1*v1) ) / (z13*z13) ; + + // Slower than Fermi velocity + } else { + y = 0.6923 * vF * (1.0 + 2.0*v1*v1/3.0 + v1*v1*v1*v1/15.0) / (z13*z13) ; + } + + G4double y3 = pow(y, 0.3) ; + // G4cout << "y= " << y << " y3= " << y3 << " v1= " << v1 << " vF= " << vF << G4endl; + q = 1.0 - exp( 0.803*y3 - 1.3167*y3*y3 - 0.38157*y - 0.008983*y*y ) ; + + if( q < chargeLowLimit ) q = chargeLowLimit ; + + G4double s = 7.6 - log(std::max(1.0, reducedEnergy/keV)) ; + s = 1.0 + ( 0.18 + 0.0015 * z ) * exp( -s*s )/ (Zi*Zi) ; + + // Screen length according to + // J.F.Ziegler and J.M.Manoyan, The stopping of ions in compaunds, + // Nucl. Inst. & Meth. in Phys. Res. B35 (1988) 215-228. + + G4double lambda = 10.0 * vF * pow(1.0-q, 0.6667) / (z13 * (6.0 + q)) ; + chargeCorrection = s * (1.0 + 0.5*(1.0/q - 1.0)*log(1.0 + lambda*lambda)/(vF*vF) ); + } + // G4cout << "G4ionIonisation: charge= " << charge << " q= " << q + // << " chargeCor= " << chargeCorrection << G4endl; + return charge*q; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + diff --git a/source/processes/electromagnetic/utils/GNUmakefile b/source/processes/electromagnetic/utils/GNUmakefile index c6747aeced..bd399abdcc 100644 --- a/source/processes/electromagnetic/utils/GNUmakefile +++ b/source/processes/electromagnetic/utils/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2000/10/24 13:53:02 gcosmo Exp $ +# $Id: GNUmakefile,v 1.7 2003/10/20 10:27:50 grichine Exp $ # -------------------------------------------------------------------- # GNUmakefile for electromagnetic sub-library. John Allison, 25/6/98. # -------------------------------------------------------------------- @@ -16,8 +16,10 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/bosons/include \ -I$(G4BASE)/particles/leptons/include \ diff --git a/source/processes/electromagnetic/utils/History b/source/processes/electromagnetic/utils/History index 09e5d4f750..a5b3b4c3aa 100644 --- a/source/processes/electromagnetic/utils/History +++ b/source/processes/electromagnetic/utils/History @@ -1,4 +1,4 @@ -$Id: History,v 1.104 2003/06/16 14:45:10 vnivanch Exp $ +$Id: History,v 1.129 2003/11/26 16:09:26 vnivanch Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,100 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +26 Nov 03: V.Ivant (utils-V05-02-17) +- Close precise range feature for the time being + +26 Nov 03: L.Urban +- Bugfix in G4VMultipleScattering:AlongStepDoIt + G4MscModel + truestep <= range + +25 Nov 03: V.Ivant (utils-V05-02-16) +- Fix wrong deletion and error in SetRangeTable + +25 Nov 03: V.Ivant (utils-V05-02-15) +- Fix crash for case of inactivated ionisation and bremsstrahlung + +13 Nov 03: V.Ivant (utils-V05-02-14) +- Fix negative energy loss + +11 Nov 03: V.Ivant (utils-V05-02-13) +- Update printout in RetrievePhysicsTable +- Substitute G4VEnergyLossSTD by G4VEnergyLossProcess +- For ions update ionisation (V.Ivanchenko) and multiple scattering (L.Urban) + +10 Nov 03: Urban +- highKinEnergy is set back to 100 TeV for multiple scattering +- number of table bins set to 120 " +- small change in the tail of the angular distribution (after tuning!) +- code cleaning in G4MscModel.cc + +07 Nov 03: mma (utils-V05-02-12) +- Fix problem of rounding of double in G4UniversalFluctuations +- Fix precision problems for high energy (PeV) particles +- change in the tail of the angular distribution +- highKinEnergy is set to 100 PeV + +03 Nov 03: V.Ivant (utils-V05-02-11) +- Remove STD processes +- Fix problem of RetrievePhysicsTable + +30 Oct 03: G.Cosmo (utils-V05-02-10) +- Fixed compilation problem on Windows in G4LossTableManager.cc for multiple + declaration of indeces ... + +24 Oct 03: V.Ivant (utils-V05-02-09) +- Update logic of BuildPhysicsTable to take into account desactivate processes +- Update defalts for stepping algorithm + +20 Oct 03: V.Ivant (utils-V05-02-08) +- Minor change of interface to G4EmFluctuationModel for PAI development +- Update logic of the messenger and G4LossTableManager to provide independence + on command sequence +- Increase verbosity for store/retrieve tables + +14 Oct 03: V.Ivant (utils-V05-02-07) +- Update verbose/printout +- Add new method DefineForRegion to G4VEmModel +- Fix minor problems in messenger + +4 Oct 03: G.Cosmo (utils-V05-02-06) +- Modified GNUmakefiles: + o added dependency to new module "geometry/navigation". + o replaced "digits+hits" with "digits_hits". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +25 Sept 03: H.Kurashige (utils-V05-02-05) +- Add "#include G4MaterialCutsCouple.hh" in G4MultipleScattering52.hh + +20 Sept 03: V.Ivant (utils-V05-02-04) +-Use warning for obsolete interfaces which uses G4Material instead of + G4MaterialCutsCouple +-Update initialization of energy loss processes +-Update GNUmakefile + +12 September 03: L.Urban +-fixed num. error for small stepsize in G4MscModel.cc (z sampling) + +27 August 03: V.Ivant (utils-V05-02-03) +-Fix problems in compilation of some tests + +08 August 03: V.Ivant (utils-V05-02-02) +-Substitute standerd by STD, freezing old standard as 52 + +07 August 03: V.Ivant (utils-V05-02-01) +- Update of the ion fluctuation model +- Update design - STD processes can be mixed in physics list with + old processes +- Tunning of msc model: fix poblems for width and for tails of distribution + for the STD variant + +24 July 03: V.Ivant (utils-V05-02-00) +-Update model interface - substitute G4Material by G4MaterialCutsCouple + in dE/dx and CrossSection methods +-Add Set methods to energy range of msc table +-Add method to change the nergy range of model +-Add possibility to have STD and other processes in the same physics list + 16 June 03: V.Ivant (utils-V05-01-07) - ShortLived particles are not applicable for msc diff --git a/source/processes/electromagnetic/utils/include/G4BetheBlochModel.hh b/source/processes/electromagnetic/utils/include/G4BetheBlochModel.hh index c01063d4d1..b3bdab2ef4 100644 --- a/source/processes/electromagnetic/utils/include/G4BetheBlochModel.hh +++ b/source/processes/electromagnetic/utils/include/G4BetheBlochModel.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4BetheBlochModel.hh,v 1.9 2003/11/12 10:24:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -37,7 +39,7 @@ // 23-12-02 V.Ivanchenko change interface in order to moveto cut per region // 24-01-03 Make models region aware (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) - +// 12-11-03 Fix for GenericIons (V.Ivanchenko) // // Class Description: // @@ -76,12 +78,12 @@ public: G4bool IsInCharge(const G4ParticleDefinition*); - G4double ComputeDEDX(const G4Material*, + G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy); - G4double CrossSection(const G4Material*, + G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, @@ -110,7 +112,7 @@ private: void SetParticle(const G4ParticleDefinition* p); - // hide assignment operator + // hide assignment operator G4BetheBlochModel & operator=(const G4BetheBlochModel &right); G4BetheBlochModel(const G4BetheBlochModel&); @@ -122,18 +124,18 @@ private: G4double highKinEnergy; G4double lowKinEnergy; G4double twoln10; - G4double bg2lim; + G4double bg2lim; G4double taulim; - G4double qc; + G4bool isIon; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... inline G4double G4BetheBlochModel::MaxSecondaryEnergy( - const G4ParticleDefinition*, + const G4ParticleDefinition* pd, G4double kinEnergy) { - + if(isIon) SetParticle(pd); G4double gamma= kinEnergy/mass + 1.0; G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / (1. + 2.0*gamma*ratio + ratio*ratio); @@ -145,7 +147,10 @@ inline G4double G4BetheBlochModel::MaxSecondaryEnergy( inline G4double G4BetheBlochModel::MaxSecondaryEnergy(const G4DynamicParticle* dp) { - + if(isIon) { + mass = dp->GetMass(); + ratio = electron_mass_c2/mass; + } G4double kineticEnergy = dp->GetKineticEnergy(); G4double gamma= kineticEnergy/mass + 1.0; G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / diff --git a/source/processes/electromagnetic/utils/include/G4BohrFluctuations.hh b/source/processes/electromagnetic/utils/include/G4BohrFluctuations.hh index 3abb8aa40a..73aa47ce25 100644 --- a/source/processes/electromagnetic/utils/include/G4BohrFluctuations.hh +++ b/source/processes/electromagnetic/utils/include/G4BohrFluctuations.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4BohrFluctuations.hh,v 1.5 2003/10/16 13:06:39 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -32,8 +34,9 @@ // // Creation date: 02.04.2003 // -// Modifications: +// Modifications: // +// 16-10-03 Changed interface to Initialisation (V.Ivanchenko) // // Class Description: // @@ -70,7 +73,7 @@ public: G4double&, G4double&); - void Initialise(const G4ParticleDefinition*); + void InitialiseMe(const G4ParticleDefinition*); protected: diff --git a/source/processes/electromagnetic/utils/include/G4BraggModel.hh b/source/processes/electromagnetic/utils/include/G4BraggModel.hh index f25ed25cb5..b4ccb909a1 100644 --- a/source/processes/electromagnetic/utils/include/G4BraggModel.hh +++ b/source/processes/electromagnetic/utils/include/G4BraggModel.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4BraggModel.hh,v 1.10 2003/11/12 10:24:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -36,6 +38,7 @@ // 23-12-02 V.Ivanchenko change interface in order to moveto cut per region // 24-01-03 Make models region aware (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) +// 12-11-03 Fix for GenericIons (V.Ivanchenko) // // // Class Description: @@ -75,12 +78,12 @@ public: G4bool IsInCharge(const G4ParticleDefinition*); - G4double ComputeDEDX(const G4Material*, + G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy); - G4double CrossSection(const G4Material*, + G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, @@ -109,7 +112,7 @@ private: void SetParticle(const G4ParticleDefinition* p); - // hide assignment operator + // hide assignment operator G4BraggModel & operator=(const G4BraggModel &right); G4BraggModel(const G4BraggModel&); @@ -139,20 +142,21 @@ private: G4double ratio; G4double highKinEnergy; G4double lowKinEnergy; - G4int iMolecula; // index in the molecula's table G4double protonMassAMU; G4double theZieglerFactor; G4double expStopPower125; // Experimental Stopping power at 125keV + G4int iMolecula; // index in the molecula's table + G4bool isIon; }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... inline G4double G4BraggModel::MaxSecondaryEnergy( - const G4ParticleDefinition*, + const G4ParticleDefinition* pd, G4double kinEnergy) { - + if(isIon) SetParticle(pd); G4double gamma= kinEnergy/mass + 1.0; G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / (1. + 2.0*gamma*ratio + ratio*ratio); @@ -164,6 +168,10 @@ inline G4double G4BraggModel::MaxSecondaryEnergy( inline G4double G4BraggModel::MaxSecondaryEnergy(const G4DynamicParticle* dp) { + if(isIon) { + mass = dp->GetMass(); + ratio = electron_mass_c2/mass; + } G4double gamma= dp->GetKineticEnergy()/mass + 1.0; G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) / (1. + 2.0*gamma*ratio + ratio*ratio); diff --git a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh index 7797fea245..fe6199cb90 100644 --- a/source/processes/electromagnetic/utils/include/G4EmModelManager.hh +++ b/source/processes/electromagnetic/utils/include/G4EmModelManager.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4EmModelManager.hh,v 1.13 2003/11/03 19:37:59 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -41,6 +43,8 @@ // 26-03-03 Add GetDEDXDispersion (V.Ivanchenko) // 13-04-03 Add startFromNull (V.Ivanchenko) // 13-05-03 Add calculation of precise range (V.Ivanchenko) +// 21-07-03 Add UpdateEmModel method (V.Ivanchenko) +// 03-11-03 Substitute STL vector for G4RegionModels (V.Ivanchenko) // // Class Description: // @@ -133,7 +137,7 @@ public: void FillDEDXVectorForPreciseRange(G4PhysicsVector*, const G4MaterialCutsCouple*); - void FillLambdaVector(G4PhysicsVector*, const G4MaterialCutsCouple*, + void FillLambdaVector(G4PhysicsVector*, const G4MaterialCutsCouple*, G4bool startFromNull = true); void FillSubLambdaVector(G4PhysicsVector*, const G4MaterialCutsCouple*, @@ -156,6 +160,8 @@ public: size_t& index); void AddEmModel(G4int, G4VEmModel*, G4VEmFluctuationModel*, const G4Region*); + + void UpdateEmModel(const G4String&, G4double, G4double); private: @@ -175,14 +181,14 @@ private: std::vector flucModels; std::vector regions; std::vector orderOfModels; - G4DataVector upperEkin; + G4DataVector upperEkin; G4int nEmModels; G4int nRegions; G4int nCouples; - std::vector idxOfRegionModels; - std::vector setOfRegionModels; + G4int* idxOfRegionModels; + G4RegionModels** setOfRegionModels; G4double minSubRange; diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh index bf2a244c9e..63a3dbb1c4 100644 --- a/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh +++ b/source/processes/electromagnetic/utils/include/G4EnergyLossMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnergyLossMessenger.hh,v 1.6 2003/05/13 14:16:27 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EnergyLossMessenger.hh,v 1.8 2003/10/13 10:49:17 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Class Description: @@ -52,6 +52,7 @@ class G4UIdirectory; class G4UIcommand; class G4UIcmdWithABool; +class G4UIcmdWithAnInteger; class G4UIcmdWithADoubleAndUnit; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -77,6 +78,7 @@ class G4EnergyLossMessenger: public G4UImessenger G4UIcmdWithADoubleAndUnit* MaxEnCmd; G4UIcmdWithABool* IntegCmd; G4UIcmdWithABool* rangeCmd; + G4UIcmdWithAnInteger* verCmd; }; #endif diff --git a/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh b/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh index 95355a0034..8a41f941b2 100644 --- a/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh +++ b/source/processes/electromagnetic/utils/include/G4EnergyLossTables.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnergyLossTables.hh,v 1.17 2003/06/16 17:02:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EnergyLossTables.hh,v 1.18 2003/07/23 11:36:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: // @@ -162,11 +162,13 @@ public: static G4double GetDEDX( const G4ParticleDefinition *aParticle, G4double KineticEnergy, - const G4MaterialCutsCouple *couple); + const G4MaterialCutsCouple *couple, + G4bool check = true); static G4double GetRange( const G4ParticleDefinition *aParticle, G4double KineticEnergy, - const G4MaterialCutsCouple *couple); + const G4MaterialCutsCouple *couple, + G4bool check = true); static G4double GetPreciseDEDX( const G4ParticleDefinition *aParticle, @@ -179,7 +181,8 @@ public: static G4double GetPreciseEnergyFromRange( const G4ParticleDefinition *aParticle, G4double range, - const G4MaterialCutsCouple *couple); + const G4MaterialCutsCouple *couple, + G4bool check = true); // to be called only by energy loss processes static void Register( @@ -200,7 +203,7 @@ public: private: static void CPRWarning(); - static void ParticleHaveNoLoss(const G4ParticleDefinition* aParticle); + static void ParticleHaveNoLoss(const G4ParticleDefinition* aParticle, const G4String&); typedef std::map > helper_map; static helper_map dict; diff --git a/source/processes/electromagnetic/utils/include/G4IonFluctuations.hh b/source/processes/electromagnetic/utils/include/G4IonFluctuations.hh index 8b59fbba1e..73a74dd479 100644 --- a/source/processes/electromagnetic/utils/include/G4IonFluctuations.hh +++ b/source/processes/electromagnetic/utils/include/G4IonFluctuations.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4IonFluctuations.hh,v 1.6 2003/10/16 13:06:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -29,10 +31,12 @@ // File name: G4IonFluctuations // // Author: Vladimir Ivanchenko -// +// // Creation date: 02.04.2003 // -// Modifications: +// Modifications: +// +// 16-10-03 Changed interface to Initialisation (V.Ivanchenko) // // Class Description: // @@ -67,12 +71,13 @@ public: G4double&, G4double&); - void Initialise(const G4ParticleDefinition*); + void InitialiseMe(const G4ParticleDefinition*); private: G4double CoeffitientA(G4double&); G4double CoeffitientB(const G4Material*, G4double&); + G4double RelativisticFactor(const G4Material*, G4double&); // hide assignment operator G4IonFluctuations & operator=(const G4IonFluctuations &right); @@ -83,6 +88,7 @@ private: G4double particleMass; G4double charge; G4double chargeSquare; + G4double chargeSqRatio; // data members to speed up the fluctuation calculation G4double minNumberInteractionsBohr; diff --git a/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh b/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh index 806d839d33..289ed4a1fc 100644 --- a/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh +++ b/source/processes/electromagnetic/utils/include/G4LossTableBuilder.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4LossTableBuilder.hh,v 1.3 2003/07/21 12:52:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------------- diff --git a/source/processes/electromagnetic/utils/include/G4LossTableManager.hh b/source/processes/electromagnetic/utils/include/G4LossTableManager.hh index e62db9e58b..779d13bef9 100644 --- a/source/processes/electromagnetic/utils/include/G4LossTableManager.hh +++ b/source/processes/electromagnetic/utils/include/G4LossTableManager.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4LossTableManager.hh,v 1.19 2003/11/12 16:18:09 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------------- @@ -42,6 +44,10 @@ // 25-03-03 Add deregistration (V.Ivanchenko) // 26-03-03 Add GetDEDXDispersion (V.Ivanchenko) // 02-04-03 Change messenger (V.Ivanchenko) +// 23-07-03 Add exchange with G4EnergyLossTables (V.Ivanchenko) +// 05-10-03 Add G4VEmProcesses registration (V.Ivanchenko) +// 17-10-03 Add SetParameters method (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // // Class Description: // @@ -63,13 +69,15 @@ #include #include "globals.hh" #include "G4LossTableBuilder.hh" -#include "G4VEnergyLossSTD.hh" +#include "G4VEnergyLossProcess.hh" +#include "G4EnergyLossTables.hh" class G4PhysicsTable; class G4MaterialCutsCouple; class G4EnergyLossMessenger; class G4ParticleDefinition; class G4VMultipleScattering; +class G4VEmProcess; class G4LossTableManager { @@ -104,19 +112,23 @@ public: G4double& length); // to be called only by energy loss processes - void Register(G4VEnergyLossSTD* p); + void Register(G4VEnergyLossProcess* p); - void DeRegister(G4VEnergyLossSTD* p); + void DeRegister(G4VEnergyLossProcess* p); void Register(G4VMultipleScattering* p); void DeRegister(G4VMultipleScattering* p); + + void Register(G4VEmProcess* p); - void RegisterIon(const G4ParticleDefinition* aParticle, G4VEnergyLossSTD* p); + void DeRegister(G4VEmProcess* p); + + void RegisterIon(const G4ParticleDefinition* aParticle, G4VEnergyLossProcess* p); void BuildPhysicsTable(const G4ParticleDefinition* aParticle); - void RetrievePhysicsTables(const G4ParticleDefinition* aParticle, G4VEnergyLossSTD* em); + void RetrievePhysicsTables(const G4ParticleDefinition* aParticle, G4VEnergyLossProcess* em); void SetLossFluctuations(G4bool val); @@ -135,27 +147,33 @@ public: void SetStepLimits(G4double v1, G4double v2); void SetBuildPreciseRange(G4bool val); + + void SetVerbose(G4int val); G4EnergyLossMessenger* GetMessenger(); + G4bool IsRecalcNeeded(const G4ParticleDefinition* aParticle); + private: G4LossTableManager(); - void Initialise(const G4ParticleDefinition*); + void Initialise(); - G4VEnergyLossSTD* BuildTables(const G4ParticleDefinition* aParticle); + G4VEnergyLossProcess* BuildTables(const G4ParticleDefinition* aParticle); void ParticleHaveNoLoss(const G4ParticleDefinition* aParticle); + void SetParameters(G4VEnergyLossProcess*); + private: static G4LossTableManager* theInstance; typedef const G4ParticleDefinition* PD; - std::map > loss_map; + std::map > loss_map; - std::vector loss_vector; + std::vector loss_vector; std::vector part_vector; std::vector base_part_vector; std::vector tables_are_built; @@ -163,9 +181,10 @@ private: std::vector range_vector; std::vector inv_range_vector; std::vector msc_vector; + std::vector emp_vector; // cash - G4VEnergyLossSTD* currentLoss; + G4VEnergyLossProcess* currentLoss; PD currentParticle; PD theElectron; @@ -183,6 +202,7 @@ private: G4bool buildPreciseRange; G4bool minEnergyActive; G4bool maxEnergyActive; + G4bool stepFunctionActive; G4double minSubRange; G4double maxRangeVariation; @@ -190,7 +210,7 @@ private: G4double minKinEnergy; G4double maxKinEnergy; - G4VEnergyLossSTD* eIonisation; + G4VEnergyLossProcess* eIonisation; G4LossTableBuilder* tableBuilder; G4EnergyLossMessenger* theMessenger; const G4ParticleDefinition* firstParticle; @@ -207,15 +227,20 @@ inline G4double G4LossTableManager::GetDEDX( const G4MaterialCutsCouple *couple) { if(aParticle != currentParticle) { - std::map >::const_iterator pos; + currentParticle = aParticle; + std::map >::const_iterator pos; if ((pos = loss_map.find(aParticle)) != loss_map.end()) { - currentParticle = aParticle; currentLoss = (*pos).second; } else { - ParticleHaveNoLoss(aParticle); + currentLoss = 0; + // ParticleHaveNoLoss(aParticle); } } - return currentLoss->GetDEDX(kineticEnergy, couple); + G4double x; + if(currentLoss) x = currentLoss->GetDEDX(kineticEnergy, couple); + else x = G4EnergyLossTables::GetDEDX(currentParticle,kineticEnergy,couple,false); + return x; +// return currentLoss->GetDEDX(kineticEnergy, couple); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... @@ -226,15 +251,20 @@ inline G4double G4LossTableManager::GetRange( const G4MaterialCutsCouple *couple) { if(aParticle != currentParticle) { - std::map >::const_iterator pos; - if ((pos = loss_map.find(aParticle)) != loss_map.end()) { - currentParticle = aParticle; + currentParticle = aParticle; + std::map >::const_iterator pos; + if ((pos = loss_map.find(currentParticle)) != loss_map.end()) { currentLoss = (*pos).second; } else { - ParticleHaveNoLoss(aParticle); + currentLoss = 0; +// ParticleHaveNoLoss(aParticle); } } - return currentLoss->GetRange(kineticEnergy, couple); + G4double x; + if(currentLoss) x = currentLoss->GetRange(kineticEnergy, couple); + else x = G4EnergyLossTables::GetRange(currentParticle,kineticEnergy,couple,false); + return x; +// return currentLoss->GetRange(kineticEnergy, couple); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -245,15 +275,20 @@ inline G4double G4LossTableManager::GetEnergy( const G4MaterialCutsCouple *couple) { if(aParticle != currentParticle) { - std::map >::const_iterator pos; + currentParticle = aParticle; + std::map >::const_iterator pos; if ((pos = loss_map.find(aParticle)) != loss_map.end()) { - currentParticle = aParticle; currentLoss = (*pos).second; } else { - ParticleHaveNoLoss(aParticle); + currentLoss = 0; + // ParticleHaveNoLoss(aParticle); } } - return currentLoss->GetKineticEnergy(range, couple); + G4double x; + if(currentLoss) x = currentLoss->GetKineticEnergy(range, couple); + else x = G4EnergyLossTables::GetPreciseEnergyFromRange(currentParticle,range,couple,false); + return x; +// return currentLoss->GetKineticEnergy(range, couple); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -265,7 +300,7 @@ inline G4double G4LossTableManager::GetDEDXDispersion( { const G4ParticleDefinition* aParticle = dp->GetDefinition(); if(aParticle != currentParticle) { - std::map >::const_iterator pos; + std::map >::const_iterator pos; if ((pos = loss_map.find(aParticle)) != loss_map.end()) { currentParticle = aParticle; currentLoss = (*pos).second; diff --git a/source/processes/electromagnetic/utils/include/G4MscModel.hh b/source/processes/electromagnetic/utils/include/G4MscModel.hh index d8e8d66618..e4fe369cc7 100644 --- a/source/processes/electromagnetic/utils/include/G4MscModel.hh +++ b/source/processes/electromagnetic/utils/include/G4MscModel.hh @@ -20,9 +20,12 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MscModel.hh,v 1.6 2003/11/26 10:01:13 urban Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // +// // GEANT4 Class header file // // @@ -37,11 +40,13 @@ // 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) // // Class Description: // // Implementation of the model of multiple scattering based on -// H.W.Lewis Phys Rev 78 (1950) 526 and others +// H.W.Lewis Phys Rev 78 (1950) 526 and L.Urban model // ------------------------------------------------------------------- // @@ -50,7 +55,6 @@ #define G4MscModel_h 1 #include "G4VEmModel.hh" - class G4MscModel : public G4VEmModel { @@ -76,17 +80,16 @@ public: G4bool IsInCharge(const G4ParticleDefinition*); - G4double ComputeDEDX(const G4Material*, + G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double, G4double) {return 0.0;}; - G4double CrossSection(const G4Material*, + G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy); - G4DynamicParticle* SampleSecondary( const G4MaterialCutsCouple*, const G4DynamicParticle*, @@ -101,11 +104,11 @@ public: G4double GeomPathLength(G4PhysicsTable* theLambdaTable, const G4MaterialCutsCouple* couple, - const G4ParticleDefinition* particle, - G4double& kineticEnergy, - G4double lambda, - G4double range, - G4double truePathLength); + const G4ParticleDefinition* particle, + G4double& kineticEnergy, + G4double lambda, + G4double range, + G4double truePathLength); G4double TrueStepLength(G4double geomStepLength); @@ -119,7 +122,6 @@ protected: G4double MaxSecondaryEnergy(const G4ParticleDefinition*, G4double) {return 0.0;}; - private: G4double ComputeTransportCrossSection( @@ -149,12 +151,8 @@ private: G4double facxsi; G4double sigmafactor; - G4double alfa1; - G4double alfa2; - G4double alfa3; G4double b; G4double xsi; - G4double c0; G4double lambda0; G4double lambda1; @@ -168,10 +166,13 @@ private: G4double stepmin ; - G4double currentRadLength; G4double currentKinEnergy; + G4double currentRange ; + G4double currentRadLength; + }; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... #endif + diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh b/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh index e66569abaa..ccad151bff 100644 --- a/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh +++ b/source/processes/electromagnetic/utils/include/G4MultipleScattering.hh @@ -20,8 +20,9 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MultipleScattering.hh,v 1.16 2003/04/18 12:44:04 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MultipleScattering.hh,v 1.17 2003/08/08 11:31:24 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// // //------------- G4MultipleScattering physics process -------------------------- // by Laszlo Urban, March 2001 @@ -37,12 +38,18 @@ // 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 // 24-05-02 changes in data members, L.Urban -// 30-10-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 -// 18-04-03 Change signature of GetTransportMeanFreePath (V.Ivanchenko) +// 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) +// //------------------------------------------------------------------------------ +// +// $Id: G4MultipleScattering.hh,v 1.17 2003/08/08 11:31:24 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // class description // @@ -56,181 +63,81 @@ #ifndef G4MultipleScattering_h #define G4MultipleScattering_h 1 -#include "G4VContinuousDiscreteProcess.hh" -#include "G4EnergyLossTables.hh" -#include "G4GPILSelection.hh" -#include "G4PhysicsLogVector.hh" -#include "G4VPhysicalVolume.hh" -#include "G4ParticleChangeForMSC.hh" -#include "G4UnitsTable.hh" + +#include "G4VMultipleScattering.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -class G4MultipleScattering : public G4VContinuousDiscreteProcess +class G4MultipleScattering : public G4VMultipleScattering { - public: // with description +public: // with description - G4MultipleScattering(const G4String& processName="msc"); + G4MultipleScattering(const G4String& processName="msc"); ~G4MultipleScattering(); - - G4bool IsApplicable ( const G4ParticleDefinition& ); + + G4bool IsApplicable (const G4ParticleDefinition& p) + {return (p.GetPDGCharge() != 0.0 && !p.IsShortLived());}; // returns true for charged particles, false otherwise - void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); - // This function overloads the corresponding virtual function - // of the base class G4VContinuousDiscreteProcess. - // It is invoked by the G4ParticleWithCuts()::SetCut() method. - // It prepares the table of the transport mean free paths - // for every material. + void InitialiseProcess(const G4ParticleDefinition&); + // This function initialise models - void PrintInfoDefinition(); + G4double TruePathLengthLimit(const G4Track& track, + G4double& lambda, + G4double currentMinimalStep); + + void PrintInfoDefinition(); // Print few lines of informations about the process: validity range, - // origine ..etc.. - // Invoked by BuildPhysicsTable(). - - G4bool StorePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // store TransportMeanFreePath tables into an external file - // specified by 'directory' (must exist before invokation) - - G4bool RetrievePhysicsTable(G4ParticleDefinition* , - const G4String& directory, G4bool); - // retrieve TransportMeanFreePath tables from an external file - // specified by 'directory' - - - G4double AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double previousStepSize, - G4double currentMinimumStep, - G4double& currentSafety, - G4GPILSelection* selection); - // The function overloads the corresponding function of the base - // class.It limits the step near to boundaries only - // and invokes the method GetContinuousStepLimit at every step. - - G4double GetContinuousStepLimit(const G4Track& aTrack, - G4double previousStepSize, - G4double currentMinimumStep, - G4double& currentSafety); - // It performs the true step length --> geometrical step length - // transformation. It is invoked by the - // AlongStepGetPhysicalInteractionLength method. - - G4double GetMeanFreePath(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition); - // It sets the force condition to true only - // in order to have the PostStepDoIt called at every step. - // This function overloads a virtual function of the base class. - // It is invoked by the ProcessManager of the Particle. - - - G4double GetTransportMeanFreePath( - G4double KineticEnergy,const G4MaterialCutsCouple* couple); - // Just a utility method to get the values of the transport - // mean free path . (It is not used inside the class.) - - G4VParticleChange* AlongStepDoIt(const G4Track& aTrack,const G4Step& aStep); - // The geometrical step length --> true path length transformation - // is performed here (the inverse of the transformation done - // by GetContinuousStepLimit). - - G4VParticleChange* PostStepDoIt(const G4Track& aTrack,const G4Step& aStep); - // It computes the final state of the particle: samples the - // scattering angle and computes the lateral displacement. - // The final state is returned as a ParticleChange object. - // This function overloads a virtual function of the base class. - // It is invoked by the ProcessManager of the Particle. - - void Setsamplez(G4bool value) {samplez = value;}; + void Setsamplez(G4bool value) {samplez = value;}; // geom. step length distribution should be sampled or not - void Setdtrl(G4double value) {dtrl = value;}; + void Setdtrl(G4double value) {dtrl = value;}; // to reduce the energy/step dependence - void SetBoundary(G4bool value) {boundary = value;}; - void Setfacxsi(G4double value) {facxsi = value; - G4cout << " facxsi=" << facxsi << G4endl;}; - void SetFacrange(G4double val) {facrange=val; - nsmallstep = G4int(log((cf+facrange-1.)/ - facrange)/log(cf))+1 ; - G4cout << " fr=" << facrange - << " nsmall=" << nsmallstep << G4endl ;}; - // Steplimit after boundary crossing = facrange*range - // estimated nb of steps at boundary nsmallstep = 1/facrange + void Setfacxsi(G4double value) {facxsi = value;} + void SetFacrange(G4double val) {facrange=val; + nsmallstep = G4int(log((cf+facrange-1.)/facrange)/log(cf))+1;} + // Steplimit after boundary crossing = facrange*range + // estimated nb of steps at boundary nsmallstep = 1/facrange - void SetLateralDisplacementFlag(G4bool flag) {fLatDisplFlag = flag;}; - // lateral displacement to be/not to be computed - - void SetNuclCorrPar(G4double val) {NuclCorrPar = val;}; - void SetFactPar(G4double val) {FactPar = val;}; + void SetNuclCorrPar(G4double val) {NuclCorrPar = val;}; + void SetFactPar(G4double val) {FactPar = val;}; + // corrs to transport cross section for high energy - protected: // with description - - virtual G4double ComputeTransportCrossSection( - const G4ParticleDefinition& aParticleType, - G4double KineticEnergy, - G4double AtomicNumber, - G4double AtomicWeight); - // It computes the transport cross section. - // The transport mean free path is 1/(transport cross section). - - private: +private: // hide assignment operator as private - G4MultipleScattering & operator = (const G4MultipleScattering &right); - G4MultipleScattering ( const G4MultipleScattering &); + G4MultipleScattering & operator = (const G4MultipleScattering &right); + G4MultipleScattering ( const G4MultipleScattering &); - private: // data members +private: // data members - G4PhysicsTable* theTransportMeanFreePathTable; + G4double lowKineticEnergy; + G4double highKineticEnergy; + G4int totBins; - G4double taubig,tausmall,taulim; + G4double facrange; + G4double tlimit; + G4double tlimitmin; + G4double dtrl; + G4double NuclCorrPar; + G4double FactPar; + G4double facxsi; + G4double cf; - G4double LowestKineticEnergy; - G4double HighestKineticEnergy; - G4int TotBin; + G4int stepnolastmsc; + G4int nsmallstep; - G4int materialIndex; - - G4double tLast; - G4double zLast; + G4bool samplez; + G4bool boundary; - // model parameters - G4bool boundary; // spec. handling near boundaries - G4double facrange,tlimit,tlimitmin,cf; - G4int stepno,stepnolastmsc,nsmallstep ; - G4double laststep ; - G4GPILSelection valueGPILSelectionMSC; - - G4double zmean; // z(geom.step length) - G4bool samplez ; // distribution - - G4double range,T0,T1,lambda0,lambda1, // used to reduce the energy - Tlow,alam,blam,dtrl,lambdam, // (or step length) dependence - clam,zm,cthm; - - // with/without lateral displacement - G4bool fLatDisplFlag; - - // nuclear size effect correction - G4double NuclCorrPar; - G4double FactPar; - - G4ParticleChangeForMSC fParticleChange; - - G4double alfa1,alfa2,alfa3,b,xsi,c0,facxsi ; // angle distr. parameters - // facxsi : some tuning - // possibility in the tail }; -#include "G4MultipleScattering.icc" - #endif - - + + diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScattering52.hh b/source/processes/electromagnetic/utils/include/G4MultipleScattering52.hh new file mode 100644 index 0000000000..e911577ab6 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4MultipleScattering52.hh @@ -0,0 +1,237 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4MultipleScattering52.hh,v 1.2 2003/09/25 04:29:07 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//------------- G4MultipleScattering52 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-04-02 some minor changes in boundary algorithm, L.Urban +// 24-05-02 changes in data members, L.Urban +// 30-10-02 changes in data members, L.Urban +// 05-02-03 changes in data members, L.Urban +// 18-04-03 Change signature of GetTransportMeanFreePath (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +//------------------------------------------------------------------------------ + +// 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 G4MultipleScattering52_h +#define G4MultipleScattering52_h 1 +#include "G4VContinuousDiscreteProcess.hh" +#include "G4EnergyLossTables.hh" +#include "G4GPILSelection.hh" +#include "G4PhysicsLogVector.hh" +#include "G4VPhysicalVolume.hh" +#include "G4ParticleChangeForMSC.hh" +#include "G4UnitsTable.hh" +#include "G4MaterialCutsCouple.hh" +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +class G4MultipleScattering52 : public G4VContinuousDiscreteProcess + +{ + public: // with description + + G4MultipleScattering52(const G4String& processName="msc"); + + ~G4MultipleScattering52(); + + G4bool IsApplicable ( const G4ParticleDefinition& ); + // returns true for charged particles, false otherwise + + void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); + // This function overloads the corresponding virtual function + // of the base class G4VContinuousDiscreteProcess. + // It is invoked by the G4ParticleWithCuts()::SetCut() method. + // It prepares the table of the transport mean free paths + // for every material. + + void PrintInfoDefinition(); + // Print few lines of informations about the process: validity range, + // origine ..etc.. + // Invoked by BuildPhysicsTable(). + + + G4bool StorePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // store TransportMeanFreePath tables into an external file + // specified by 'directory' (must exist before invokation) + + G4bool RetrievePhysicsTable(G4ParticleDefinition* , + const G4String& directory, G4bool); + // retrieve TransportMeanFreePath tables from an external file + // specified by 'directory' + + + G4double AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety, + G4GPILSelection* selection); + // The function overloads the corresponding function of the base + // class.It limits the step near to boundaries only + // and invokes the method GetContinuousStepLimit at every step. + + G4double GetContinuousStepLimit(const G4Track& aTrack, + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety); + // It performs the true step length --> geometrical step length + // transformation. It is invoked by the + // AlongStepGetPhysicalInteractionLength method. + + G4double GetMeanFreePath(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // It sets the force condition to true only + // in order to have the PostStepDoIt called at every step. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + + G4double GetTransportMeanFreePath( + G4double KineticEnergy,const G4MaterialCutsCouple* couple); + // Just a utility method to get the values of the transport + // mean free path . (It is not used inside the class.) + + G4VParticleChange* AlongStepDoIt(const G4Track& aTrack,const G4Step& aStep); + // The geometrical step length --> true path length transformation + // is performed here (the inverse of the transformation done + // by GetContinuousStepLimit). + + G4VParticleChange* PostStepDoIt(const G4Track& aTrack,const G4Step& aStep); + // It computes the final state of the particle: samples the + // scattering angle and computes the lateral displacement. + // The final state is returned as a ParticleChange object. + // This function overloads a virtual function of the base class. + // It is invoked by the ProcessManager of the Particle. + + void Setsamplez(G4bool value) {samplez = value;}; + // geom. step length distribution should be sampled or not + + void Setdtrl(G4double value) {dtrl = value;}; + // to reduce the energy/step dependence + + void SetBoundary(G4bool value) {boundary = value;}; + void Setfacxsi(G4double value) {facxsi = value; + G4cout << " facxsi=" << facxsi << G4endl;}; + void SetFacrange(G4double val) {facrange=val; + nsmallstep = G4int(log((cf+facrange-1.)/ + facrange)/log(cf))+1 ; + G4cout << " fr=" << facrange + << " nsmall=" << nsmallstep << G4endl ;}; + // Steplimit after boundary crossing = facrange*range + // estimated nb of steps at boundary nsmallstep = 1/facrange + + + void SetLateralDisplacementFlag(G4bool flag) {fLatDisplFlag = flag;}; + // lateral displacement to be/not to be computed + + void SetNuclCorrPar(G4double val) {NuclCorrPar = val;}; + void SetFactPar(G4double val) {FactPar = val;}; + + protected: // with description + + virtual G4double ComputeTransportCrossSection( + const G4ParticleDefinition& aParticleType, + G4double KineticEnergy, + G4double AtomicNumber, + G4double AtomicWeight); + // It computes the transport cross section. + // The transport mean free path is 1/(transport cross section). + + private: + + // hide assignment operator as private + G4MultipleScattering52 & operator = (const G4MultipleScattering52 &right); + G4MultipleScattering52 ( const G4MultipleScattering52 &); + + private: // data members + + G4PhysicsTable* theTransportMeanFreePathTable; + + G4double taubig,tausmall,taulim; + + G4double LowestKineticEnergy; + G4double HighestKineticEnergy; + G4int TotBin; + + G4int materialIndex; + + G4double tLast; + G4double zLast; + + // model parameters + G4bool boundary; // spec. handling near boundaries + G4double facrange,tlimit,tlimitmin,cf; + G4int stepno,stepnolastmsc,nsmallstep ; + G4double laststep ; + G4GPILSelection valueGPILSelectionMSC; + + G4double zmean; // z(geom.step length) + G4bool samplez ; // distribution + + G4double range,T0,T1,lambda0,lambda1, // used to reduce the energy + Tlow,alam,blam,dtrl,lambdam, // (or step length) dependence + clam,zm,cthm; + + // with/without lateral displacement + G4bool fLatDisplFlag; + + // nuclear size effect correction + G4double NuclCorrPar; + G4double FactPar; + + G4ParticleChangeForMSC fParticleChange; + + G4double alfa1,alfa2,alfa3,b,xsi,c0,facxsi ; // angle distr. parameters + // facxsi : some tuning + // possibility in the tail +}; + +#include "G4MultipleScattering52.icc" + +#endif + + + diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc b/source/processes/electromagnetic/utils/include/G4MultipleScattering52.icc similarity index 87% rename from source/processes/electromagnetic/utils/include/G4MultipleScattering.icc rename to source/processes/electromagnetic/utils/include/G4MultipleScattering52.icc index 28ee800720..1d663f63eb 100644 --- a/source/processes/electromagnetic/utils/include/G4MultipleScattering.icc +++ b/source/processes/electromagnetic/utils/include/G4MultipleScattering52.icc @@ -20,10 +20,10 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4MultipleScattering.icc,v 1.11 2003/06/16 14:43:11 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MultipleScattering52.icc,v 1.1 2003/08/08 11:31:24 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -//------------ G4MultipleScattering physics process --------------------------- +//------------ G4MultipleScattering52 physics process --------------------------- // by Laszlo Urban, March 2001 // // Modified: @@ -37,20 +37,21 @@ // 15-01-03 Migrade to cut per region (V.Ivanchenko) // 18-04-03 Change signature of GetTransportMeanFreePath (V.Ivanchenko) // 16-06-03: ShortLived are not applicable any more (V.Ivanchenko) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) // //------------------------------------------------------------------------------ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... inline -G4bool G4MultipleScattering::IsApplicable(const G4ParticleDefinition& particle) +G4bool G4MultipleScattering52::IsApplicable(const G4ParticleDefinition& particle) { return(particle.GetPDGCharge() != 0. && !particle.IsShortLived()); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MultipleScattering::AlongStepGetPhysicalInteractionLength( +inline G4double G4MultipleScattering52::AlongStepGetPhysicalInteractionLength( const G4Track& track, G4double previousStepSize, G4double currentMinimumStep, @@ -67,7 +68,7 @@ inline G4double G4MultipleScattering::AlongStepGetPhysicalInteractionLength( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -inline G4double G4MultipleScattering::GetMeanFreePath( +inline G4double G4MultipleScattering52::GetMeanFreePath( const G4Track&, G4double, G4ForceCondition* condition) @@ -83,7 +84,7 @@ inline G4double G4MultipleScattering::GetMeanFreePath( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... inline -G4double G4MultipleScattering::GetTransportMeanFreePath(G4double KineticEnergy, +G4double G4MultipleScattering52::GetTransportMeanFreePath(G4double KineticEnergy, const G4MaterialCutsCouple* couple) { G4bool isOut; diff --git a/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.hh b/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.hh deleted file mode 100644 index cd297c0f2f..0000000000 --- a/source/processes/electromagnetic/utils/include/G4MultipleScatteringSTD.hh +++ /dev/null @@ -1,141 +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. * -// ******************************************************************** -// -// -// -//------------- G4MultipleScattering 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) -// -//------------------------------------------------------------------------------ -// -// $Id: G4MultipleScatteringSTD.hh,v 1.13 2003/06/16 14:44:10 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ - -// 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 G4MultipleScatteringSTD_h -#define G4MultipleScatteringSTD_h 1 - -#include "G4VMultipleScattering.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -class G4MultipleScatteringSTD : public G4VMultipleScattering - -{ -public: // with description - - G4MultipleScatteringSTD(const G4String& processName="msc"); - - ~G4MultipleScatteringSTD(); - - G4bool IsApplicable (const G4ParticleDefinition& p) - {return (p.GetPDGCharge() != 0.0 && !p.IsShortLived());}; - // returns true for charged particles, false otherwise - - void InitialiseProcess(const G4ParticleDefinition&); - // This function initialise models - - G4double TruePathLengthLimit(const G4Track& track, - G4double& lambda, - G4double currentMinimalStep); - - void PrintInfoDefinition(); - // Print few lines of informations about the process: validity range, - - void Setsamplez(G4bool value) {samplez = value;}; - // geom. step length distribution should be sampled or not - - void Setdtrl(G4double value) {dtrl = value;}; - // to reduce the energy/step dependence - - void Setfacxsi(G4double value) {facxsi = value;} - void SetFacrange(G4double val) {facrange=val; - nsmallstep = G4int(log((cf+facrange-1.)/facrange)/log(cf))+1;} - // Steplimit after boundary crossing = facrange*range - // estimated nb of steps at boundary nsmallstep = 1/facrange - - - void SetNuclCorrPar(G4double val) {NuclCorrPar = val;}; - void SetFactPar(G4double val) {FactPar = val;}; - // corrs to transport cross section for high energy - -private: - - // hide assignment operator as private - G4MultipleScatteringSTD & operator = (const G4MultipleScatteringSTD &right); - G4MultipleScatteringSTD ( const G4MultipleScatteringSTD &); - -private: // data members - - G4double lowKineticEnergy; - G4double highKineticEnergy; - G4int totBins; - - G4double facrange; - G4double tlimit; - G4double tlimitmin; - G4double dtrl; - G4double NuclCorrPar; - G4double FactPar; - G4double facxsi; - G4double cf; - - G4int stepnolastmsc; - G4int nsmallstep; - - G4bool samplez; - G4bool boundary; - -}; - -#endif - - - diff --git a/source/processes/electromagnetic/utils/include/G4SCProcessorStand.hh b/source/processes/electromagnetic/utils/include/G4SCProcessorStand.hh index f027c5b22d..9a92c9c19a 100644 --- a/source/processes/electromagnetic/utils/include/G4SCProcessorStand.hh +++ b/source/processes/electromagnetic/utils/include/G4SCProcessorStand.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4SCProcessorStand.hh,v 1.7 2003/07/21 12:52:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/include/G4UniversalFluctuation.hh b/source/processes/electromagnetic/utils/include/G4UniversalFluctuation.hh index dfa57ae9fe..74ddc545f9 100644 --- a/source/processes/electromagnetic/utils/include/G4UniversalFluctuation.hh +++ b/source/processes/electromagnetic/utils/include/G4UniversalFluctuation.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4UniversalFluctuation.hh,v 1.10 2003/11/06 17:18:36 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -29,7 +31,7 @@ // File name: G4UniversalFluctuation // // Author: Vladimir Ivanchenko -// +// // Creation date: 03.01.2002 // // Modifications: @@ -38,8 +40,9 @@ // 28-12-02 add method Dispersion (V.Ivanchenko) // 07-02-03 change signature (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) +// 16-10-03 Changed interface to Initialisation (V.Ivanchenko) // -// Class Description: +// Class Description: // // Implementation of energy loss fluctuations @@ -72,7 +75,7 @@ public: G4double&, G4double&); - void Initialise(const G4ParticleDefinition*); + void InitialiseMe(const G4ParticleDefinition*); protected: @@ -108,8 +111,8 @@ private: G4double problim; G4double sumalim; G4double alim; - G4int nmaxCont1; - G4int nmaxCont2; + G4double nmaxCont1; + G4double nmaxCont2; }; diff --git a/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh b/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh index d8a2e37826..7caf33c5d9 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmFluctuationModel.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VEmFluctuationModel.hh,v 1.7 2003/10/16 13:06:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -29,14 +31,15 @@ // File name: G4VEmFluctuationModel // // Author: Vladimir Ivanchenko -// +// // Creation date: 03.01.2002 // -// Modifications: +// Modifications: // // 28-12-02 add method Dispersion (V.Ivanchenko) // 07-02-03 change signature (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) +// 16-10-03 Changed interface to Initialisation (V.Ivanchenko) // // // Class Description: @@ -76,8 +79,8 @@ public: G4double& tmax, G4double& length) = 0; - virtual void Initialise(const G4ParticleDefinition*) = 0; - + virtual void InitialiseMe(const G4ParticleDefinition*) = 0; + G4String GetName() const {return name;}; protected: diff --git a/source/processes/electromagnetic/utils/include/G4VEmModel.hh b/source/processes/electromagnetic/utils/include/G4VEmModel.hh index 1969c5f852..7da9b13c9b 100644 --- a/source/processes/electromagnetic/utils/include/G4VEmModel.hh +++ b/source/processes/electromagnetic/utils/include/G4VEmModel.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VEmModel.hh,v 1.14 2003/10/13 17:57:41 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -38,6 +40,8 @@ // 24-01-03 Cut per region (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) // 25-02-03 Add sample theta and displacement (V.Ivanchenko) +// 23-07-03 Replace G4Material by G4MaterialCutCouple in dE/dx and CrossSection +// calculation (V.Ivanchenko) // // @@ -52,14 +56,13 @@ #define G4VEmModel_h 1 #include "globals.hh" -#include #include "G4DynamicParticle.hh" #include "G4ParticleDefinition.hh" -#include "G4Material.hh" #include "G4MaterialCutsCouple.hh" #include "G4DataVector.hh" class G4PhysicsTable; +class G4Region; class G4VEmModel { @@ -85,12 +88,12 @@ public: virtual G4bool IsInCharge(const G4ParticleDefinition*) = 0; - virtual G4double ComputeDEDX(const G4Material*, + virtual G4double ComputeDEDX(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy) = 0; - virtual G4double CrossSection(const G4Material*, + virtual G4double CrossSection(const G4MaterialCutsCouple*, const G4ParticleDefinition*, G4double kineticEnergy, G4double cutEnergy, @@ -108,6 +111,12 @@ public: G4double tmin, G4double tmax) = 0; + virtual G4double MaxSecondaryEnergy( + const G4DynamicParticle* dynParticle) = 0; + + G4String GetName() const {return name;}; + + // Methods for msc simulation virtual G4double GeomPathLength(G4PhysicsTable*, const G4MaterialCutsCouple*, const G4ParticleDefinition*, @@ -115,20 +124,17 @@ public: G4double, G4double, G4double truePathLength) {return truePathLength;}; - // G4double parameters: kinEnergy, lambda, range, - // G4PhysicsTable: theLambdaTable + // G4double parameters: kinEnergy, lambda, range, + // G4PhysicsTable: theLambdaTable virtual G4double TrueStepLength(G4double geomStepLength) {return geomStepLength;}; - virtual G4double SampleCosineTheta(G4double ) {return 1.0; }; - // G4double parrameter trueStepLength + virtual G4double SampleCosineTheta(G4double ) {return 1.0;}; + // G4double parameter trueStepLength virtual G4double SampleDisplacement() {return 0.0;}; - virtual G4double MaxSecondaryEnergy( - const G4DynamicParticle* dynParticle) = 0; - - G4String GetName() const {return name;}; + virtual void DefineForRegion(const G4Region*) {}; protected: @@ -146,6 +152,3 @@ private: #endif - - - diff --git a/source/processes/electromagnetic/utils/include/G4VEmProcess.hh b/source/processes/electromagnetic/utils/include/G4VEmProcess.hh new file mode 100644 index 0000000000..cf720e1121 --- /dev/null +++ b/source/processes/electromagnetic/utils/include/G4VEmProcess.hh @@ -0,0 +1,334 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// $Id: G4VEmProcess.hh,v 1.1 2003/10/13 10:52:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ------------------------------------------------------------------- +// +// GEANT4 Class header file +// +// +// File name: G4VEmProcess +// +// Author: Vladimir Ivanchenko on base of Laszlo Urban code +// +// Creation date: 01.10.2003 +// +// Modifications: +// +// +// Class Description: +// +// It is the unified process for e+ annililation at rest and in fly. + +// ------------------------------------------------------------------- +// + +#ifndef G4VEmProcess_h +#define G4VEmProcess_h 1 + +#include "G4VDiscreteProcess.hh" +#include "globals.hh" +#include "G4Material.hh" +#include "G4MaterialCutsCouple.hh" +#include "G4Track.hh" +#include "G4EmModelManager.hh" +#include "G4UnitsTable.hh" +#include "G4ParticleDefinition.hh" + +class G4Step; +class G4VEmModel; +class G4VEmFluctuationModel; +class G4DataVector; +class G4VParticleChange; +class G4PhysicsTable; +class G4PhysicsVector; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +class G4VEmProcess : public G4VDiscreteProcess +{ +public: + + G4VEmProcess(const G4String& name, + G4ProcessType type = fElectromagnetic); + + ~G4VEmProcess(); + + G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); + + virtual void SecondariesPostStep( + G4VEmModel*, + const G4MaterialCutsCouple*, + const G4DynamicParticle*, + G4double& tcut, + G4double& kinEnergy) = 0; + + virtual G4bool IsApplicable(const G4ParticleDefinition& p) = 0; + // True for all charged particles + + virtual + void BuildPhysicsTable(const G4ParticleDefinition&); + // Build physics table during initialisation + + virtual void PrintInfoDefinition(); + + // Print out of the class parameters + + G4PhysicsTable* BuildLambdaTable(); + + void SetLambdaBinning(G4int nbins); + // Binning for lambda table + + void SetMinKinEnergy(G4double e); + G4double MinKinEnergy() const; + // Min kinetic energy for tables + + void SetMaxKinEnergy(G4double e); + G4double MaxKinEnergy() const; + // Max kinetic energy for tables + + G4bool StorePhysicsTable(G4ParticleDefinition*, + const G4String& directory, + G4bool ascii = false); + // Store PhysicsTable in a file. + // Return false in case of failure at I/O + + G4bool RetrievePhysicsTable(G4ParticleDefinition*, + const G4String& directory, + G4bool ascii); + // Retrieve Physics from a file. + // (return true if the Physics Table can be build by using file) + // (return false if the process has no functionality or in case of failure) + // File name should is constructed as processName+particleName and the + // should be placed under the directory specifed by the argument. + + void AddEmModel(G4int, G4VEmModel*, G4VEmFluctuationModel* fluc = 0, + const G4Region* region = 0); + // Add EM model coupled with fluctuation model for the region + + void UpdateEmModel(const G4String&, G4double, G4double); + // Define new energy range for the model identified by the name + + // void SetLambdaTable(G4PhysicsTable* p); + // G4PhysicsTable* LambdaTable() {return theLambdaTable;}; + + G4double GetLambda(G4double kineticEnergy, const G4MaterialCutsCouple* couple); + // It returns the Lambda of the process + + G4double MicroscopicCrossSection(G4double kineticEnergy, + const G4MaterialCutsCouple* couple); + // It returns the cross section of the process for energy/ material + + void SetIntegral(G4bool val) {integral = val;}; + G4bool IsIntegral() const {return integral;} + + G4double MeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); + + const G4ParticleDefinition* Particle() const; + const G4ParticleDefinition* SecondaryParticle() const; + +protected: + + void SetParticle(const G4ParticleDefinition* p); + void SetSecondaryParticle(const G4ParticleDefinition* p); + + virtual + G4double GetMeanFreePath(const G4Track& track, + G4double previousStepSize, + G4ForceCondition* condition); + + virtual + G4PhysicsVector* LambdaPhysicsVector(const G4MaterialCutsCouple*); + + virtual G4double MinPrimaryEnergy(const G4ParticleDefinition*, + const G4Material*, G4double cut) = 0; + + G4VEmModel* SelectModel(G4double& kinEnergy); + + size_t CurrentMaterialCutsCoupleIndex() const {return currentMaterialIndex;}; + + void ResetNumberOfInteractionLengthLeft(); + // reset (determine the value of)NumberOfInteractionLengthLeft + +private: + + void Initialise(); + + void DefineMaterial(const G4MaterialCutsCouple* couple); + + // hide assignment operator + + G4VEmProcess(G4VEmProcess &); + G4VEmProcess & operator=(const G4VEmProcess &right); + +// ===================================================================== + +private: + + G4EmModelManager* modelManager; + + // tables and vectors + G4PhysicsTable* theLambdaTable; + + const G4ParticleDefinition* particle; + const G4ParticleDefinition* baseParticle; + const G4ParticleDefinition* secondaryParticle; + const G4DataVector* theCuts; + + // cash + const G4Material* currentMaterial; + const G4MaterialCutsCouple* currentCouple; + size_t currentMaterialIndex; + + G4int nLambdaBins; + + G4double minKinEnergy; + G4double maxKinEnergy; + + G4double preStepLambda; + G4double preStepKinEnergy; + + G4bool integral; + G4bool meanFreePath; +}; + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEmProcess::DefineMaterial(const G4MaterialCutsCouple* couple) +{ + if(couple != currentCouple) { + currentCouple = couple; + currentMaterial = couple->GetMaterial(); + currentMaterialIndex = couple->GetIndex(); + if(integral && !meanFreePath) ResetNumberOfInteractionLengthLeft(); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEmProcess::GetMeanFreePath(const G4Track& track, + G4double, + G4ForceCondition* cond) +{ + *cond = NotForced; + + DefineMaterial(track.GetMaterialCutsCouple()); + preStepKinEnergy = track.GetKineticEnergy(); + if (meanFreePath) { + G4bool b; + preStepLambda = (((*theLambdaTable)[currentMaterialIndex])-> + GetValue(preStepKinEnergy, b)); + if (integral) meanFreePath = false; + } + G4double x = DBL_MAX; + if(0.0 < preStepLambda) x = 1.0/preStepLambda; +// G4cout << GetProcessName() << ": e= " << preStepKinEnergy << " mfp= " << x << G4endl; + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEmProcess::ResetNumberOfInteractionLengthLeft() +{ + meanFreePath = true; + G4VProcess::ResetNumberOfInteractionLengthLeft(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4VEmModel* G4VEmProcess::SelectModel(G4double& kinEnergy) +{ + return modelManager->SelectModel(kinEnergy, currentMaterialIndex); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline const G4ParticleDefinition* G4VEmProcess::Particle() const +{ + return particle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline const G4ParticleDefinition* G4VEmProcess::SecondaryParticle() const +{ + return secondaryParticle; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEmProcess::SetLambdaBinning(G4int nbins) +{ + nLambdaBins = nbins; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEmProcess::SetMinKinEnergy(G4double e) +{ + minKinEnergy = e; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEmProcess::MinKinEnergy() const +{ + return minKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEmProcess::SetMaxKinEnergy(G4double e) +{ + maxKinEnergy = e; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEmProcess::MaxKinEnergy() const +{ + return maxKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline G4double G4VEmProcess::GetLambda(G4double kineticEnergy, + const G4MaterialCutsCouple* couple) +{ + DefineMaterial(couple); + G4double x = DBL_MAX; + G4bool b; + if(theLambdaTable) { + G4double y = (((*theLambdaTable)[currentMaterialIndex])->GetValue(kineticEnergy, b)); + if(y > 0.0) x = 1.0/y; + } + return x; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +#endif diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLoss.hh index ef1b4bd4a3..deea185675 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/electromagnetic/utils/include/G4VEnergyLossSTD.hh b/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh similarity index 81% rename from source/processes/electromagnetic/utils/include/G4VEnergyLossSTD.hh rename to source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh index 5b4e863333..ce0b21b3f2 100644 --- a/source/processes/electromagnetic/utils/include/G4VEnergyLossSTD.hh +++ b/source/processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh @@ -20,13 +20,15 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VEnergyLossProcess.hh,v 1.1 2003/11/12 16:18:09 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // // GEANT4 Class header file // // -// File name: G4VEnergyLossSTD +// File name: G4VEnergyLossProcess // // Author: Vladimir Ivanchenko on base of Laszlo Urban code // @@ -44,6 +46,8 @@ // 26-03-03 Add GetDEDXDispersion (V.Ivanchenko) // 09-04-03 Fix problem of negative range limit for non integral (V.Ivanchenko) // 13-05-03 Add calculation of precise range (V.Ivanchenko) +// 21-07-03 Add UpdateEmModel method (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // // Class Description: // @@ -56,8 +60,8 @@ // ------------------------------------------------------------------- // -#ifndef G4VEnergyLossSTD_h -#define G4VEnergyLossSTD_h 1 +#ifndef G4VEnergyLossProcess_h +#define G4VEnergyLossProcess_h 1 #include "G4VContinuousDiscreteProcess.hh" #include "globals.hh" @@ -65,6 +69,7 @@ #include "G4MaterialCutsCouple.hh" #include "G4Track.hh" #include "G4EmModelManager.hh" +#include "G4UnitsTable.hh" class G4Step; class G4ParticleDefinition; @@ -79,14 +84,14 @@ class G4Region; //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -class G4VEnergyLossSTD : public G4VContinuousDiscreteProcess +class G4VEnergyLossProcess : public G4VContinuousDiscreteProcess { public: - G4VEnergyLossSTD(const G4String& name = "EnergyLoss", + G4VEnergyLossProcess(const G4String& name = "EnergyLoss", G4ProcessType type = fElectromagnetic); - ~G4VEnergyLossSTD(); + ~G4VEnergyLossProcess(); void Initialise(); @@ -115,7 +120,7 @@ public: // Build physics table during initialisation virtual void PrintInfoDefinition(); - + // Print out of the class parameters G4PhysicsTable* BuildDEDXTable(); @@ -127,7 +132,6 @@ public: G4PhysicsTable* BuildLambdaSubTable(); void SetParticles(const G4ParticleDefinition*, - const G4ParticleDefinition*, const G4ParticleDefinition*); void SetParticle(const G4ParticleDefinition* p); @@ -140,28 +144,24 @@ public: // Particle definition void SetDEDXBinning(G4int nbins); - // G4int DEDXBinning() const; - // Binning for dEdx, range, and inverse range tables + // Binning for dEdx, range, and inverse range tables void SetDEDXBinningForPreciseRange(G4int nbins); - // G4int DEDXBinningForPreciseRange() const; - // Binning for dEdx, range, and inverse range tables + // Binning for dEdx, range, and inverse range tables void SetLambdaBinning(G4int nbins); - // G4int LambdaBinning() const; - // Binning for lambda table + // Binning for lambda table void SetMinKinEnergy(G4double e); G4double MinKinEnergy() const; - // Min kinetic energy for tables + // Min kinetic energy for tables void SetMaxKinEnergy(G4double e); G4double MaxKinEnergy() const; - // Max kinetic energy for tables + // Max kinetic energy for tables void SetMaxKinEnergyForPreciseRange(G4double e); - // G4double MaxKinEnergyForPreciseRange() const; - // Max kinetic energy for tables + // Max kinetic energy for tables G4bool StorePhysicsTable(G4ParticleDefinition*, const G4String& directory, @@ -180,11 +180,15 @@ public: void AddEmModel(G4int, G4VEmModel*, G4VEmFluctuationModel* fluc = 0, const G4Region* region = 0); + // Add EM model coupled with fluctuation model for the region + + void UpdateEmModel(const G4String&, G4double, G4double); + // Define new energy range for thhe model identified by the name void AddSubCutoffProcessor(G4VSubCutoffProcessor*, const G4Region* region = 0); + // Add subcutoff processor for the region - virtual - void SetSubCutoff(G4bool) {}; + virtual void SetSubCutoff(G4bool) {}; void SetDEDXTable(G4PhysicsTable* p); G4PhysicsTable* DEDXTable() const {return theDEDXTable;}; @@ -210,7 +214,7 @@ public: G4double GetKineticEnergy(G4double& range, const G4MaterialCutsCouple* couple); G4double GetLambda(G4double kineticEnergy, const G4MaterialCutsCouple* couple); - // It returns the MeanFreePath of the process for a (energy, material) + // It returns the MeanFreePath of the process G4double GetDEDXDispersion(const G4MaterialCutsCouple *couple, const G4DynamicParticle* dp, @@ -224,7 +228,7 @@ public: void SetLossFluctuations(G4bool val) {lossFluctuationFlag = val;}; - void SetIntegral(G4bool val) {integral = val;}; + void SetIntegral(G4bool val); G4bool IsIntegral() const {return integral;} void SetRandomStep(G4bool val) {rndmStepFlag = val;}; @@ -232,8 +236,7 @@ public: void SetMinSubRange(G4double val) {minSubRange = val;}; void SetStepLimits(G4double v1, G4double v2); - - void SetRangeCoeff(G4double val); + void SetStepFunction(G4double v1, G4double v2); G4bool TablesAreBuilt() const {return tablesAreBuilt;}; @@ -307,18 +310,18 @@ private: // hide assignment operator - G4VEnergyLossSTD(G4VEnergyLossSTD &); - G4VEnergyLossSTD & operator=(const G4VEnergyLossSTD &right); + G4VEnergyLossProcess(G4VEnergyLossProcess &); + G4VEnergyLossProcess & operator=(const G4VEnergyLossProcess &right); // ===================================================================== private: G4EmModelManager* modelManager; - std::vector scoffProcessors; - std::vector scoffRegions; + std::vector scoffProcessors; + std::vector scoffRegions; G4int nSCoffRegions; - std::vector idxSCoffRegions; + std::vector idxSCoffRegions; // tables and vectors G4PhysicsTable* theDEDXTable; @@ -330,18 +333,17 @@ private: G4double* theDEDXAtMaxEnergy; G4double* theRangeAtMaxEnergy; - const G4DataVector* theCuts; + const G4DataVector* theCuts; const G4ParticleDefinition* particle; const G4ParticleDefinition* baseParticle; const G4ParticleDefinition* secondaryParticle; - const G4ParticleDefinition* theGamma; - const G4ParticleDefinition* theElectron; // cash const G4Material* currentMaterial; const G4MaterialCutsCouple* currentCouple; size_t currentMaterialIndex; + G4double minStepLimit; G4int nDEDXBins; G4int nDEDXBinsForRange; @@ -367,7 +369,8 @@ private: G4double minSubRange; G4double dRoverRange; G4double finalRange; - G4double rangeCoeff; + G4double defaultRoverRange; + G4double defaultIntegralRange; G4bool lossFluctuationFlag; G4bool rndmStepFlag; @@ -380,20 +383,21 @@ private: //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline void G4VEnergyLossSTD::DefineMaterial(const G4MaterialCutsCouple* couple) +inline void G4VEnergyLossProcess::DefineMaterial(const G4MaterialCutsCouple* couple) { -// G4cout << "couple= " << couple << " currentCouple= " << currentCouple << G4endl; if(couple != currentCouple) { currentCouple = couple; currentMaterial = couple->GetMaterial(); currentMaterialIndex = couple->GetIndex(); + minStepLimit = std::min(finalRange, + currentCouple->GetProductionCuts()->GetProductionCut(idxG4ElectronCut)); if(integral && !meanFreePath) ResetNumberOfInteractionLengthLeft(); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4VEnergyLossSTD::GetDEDX(G4double& kineticEnergy, +inline G4double G4VEnergyLossProcess::GetDEDX(G4double& kineticEnergy, const G4MaterialCutsCouple* couple) { DefineMaterial(couple); @@ -403,20 +407,8 @@ inline G4double G4VEnergyLossSTD::GetDEDX(G4double& kineticEnergy, } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -/* -inline G4double G4VEnergyLossSTD::GetRange(G4double& kineticEnergy, - const G4MaterialCutsCouple* couple) -{ - DefineMaterial(couple); - G4bool b; - return ((*theRangeTable)[currentMaterialIndex]-> - GetValue(kineticEnergy*massRatio, b))*reduceFactor; -} -*/ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline G4double G4VEnergyLossSTD::GetRange(G4double& kineticEnergy, +inline G4double G4VEnergyLossProcess::GetRange(G4double& kineticEnergy, const G4MaterialCutsCouple* couple) { DefineMaterial(couple); @@ -426,7 +418,7 @@ inline G4double G4VEnergyLossSTD::GetRange(G4double& kineticEnergy, if (e < highKinEnergyForRange) { x = ((*theRangeTable)[currentMaterialIndex])->GetValue(e, b); } else { - x = theRangeAtMaxEnergy[currentMaterialIndex] + + x = theRangeAtMaxEnergy[currentMaterialIndex] + (e - highKinEnergyForRange)/theDEDXAtMaxEnergy[currentMaterialIndex]; } return x*reduceFactor; @@ -434,7 +426,7 @@ inline G4double G4VEnergyLossSTD::GetRange(G4double& kineticEnergy, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4VEnergyLossSTD::GetKineticEnergy(G4double& range, +inline G4double G4VEnergyLossProcess::GetKineticEnergy(G4double& range, const G4MaterialCutsCouple* couple) { DefineMaterial(couple); @@ -445,7 +437,7 @@ inline G4double G4VEnergyLossSTD::GetKineticEnergy(G4double& range, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4VEnergyLossSTD::GetDEDXDispersion( +inline G4double G4VEnergyLossProcess::GetDEDXDispersion( const G4MaterialCutsCouple *couple, const G4DynamicParticle* dp, G4double& length) @@ -459,7 +451,7 @@ inline G4double G4VEnergyLossSTD::GetDEDXDispersion( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4VEnergyLossSTD::GetMeanFreePath(const G4Track& track, +inline G4double G4VEnergyLossProcess::GetMeanFreePath(const G4Track& track, G4double, G4ForceCondition* cond) { @@ -482,8 +474,8 @@ inline G4double G4VEnergyLossSTD::GetMeanFreePath(const G4Track& track, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4VEnergyLossSTD::GetContinuousStepLimit(const G4Track&, - G4double, G4double currentMinimumStep, G4double&) +inline G4double G4VEnergyLossProcess::GetContinuousStepLimit(const G4Track&, + G4double, G4double currentMinStep, G4double&) { G4double x = DBL_MAX; @@ -491,17 +483,15 @@ inline G4double G4VEnergyLossSTD::GetContinuousStepLimit(const G4Track&, G4bool b; fRange = ((*theRangeTable)[currentMaterialIndex])-> GetValue(preStepScaledEnergy, b)*reduceFactor; - x = fRange; - G4double r = std::min(finalRange, currentCouple->GetProductionCuts() - ->GetProductionCut(idxG4ElectronCut)); - if( integral ) { - if(x < currentMinimumStep && x > r) x *= rangeCoeff; - } else { - if (fRange > r) { - x = dRoverRange*fRange + r*(1.0 - dRoverRange)*(2.0 - r/fRange); - if(rndmStepFlag) x = r + (x-r)*G4UniformRand(); + x = fRange; + G4double y = x*dRoverRange; + if(x > minStepLimit && y < currentMinStep ) { + if (integral) x = std::max(y,minStepLimit); + else { + x = y + minStepLimit*(1.0 - dRoverRange)*(2.0 - minStepLimit/fRange); if(x > fRange) x = fRange; + if(rndmStepFlag) x = minStepLimit + (x-minStepLimit)*G4UniformRand(); } } } @@ -511,7 +501,7 @@ inline G4double G4VEnergyLossSTD::GetContinuousStepLimit(const G4Track&, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline void G4VEnergyLossSTD::ResetNumberOfInteractionLengthLeft() +inline void G4VEnergyLossProcess::ResetNumberOfInteractionLengthLeft() { meanFreePath = true; G4VProcess::ResetNumberOfInteractionLengthLeft(); @@ -520,70 +510,78 @@ inline void G4VEnergyLossSTD::ResetNumberOfInteractionLengthLeft() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4VEmModel* G4VEnergyLossSTD::SelectModel(G4double& kinEnergy) +inline G4VEmModel* G4VEnergyLossProcess::SelectModel(G4double& kinEnergy) { return modelManager->SelectModel(kinEnergy, currentMaterialIndex); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline const G4ParticleDefinition* G4VEnergyLossSTD::Particle() const +inline const G4ParticleDefinition* G4VEnergyLossProcess::Particle() const { return particle; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline const G4ParticleDefinition* G4VEnergyLossSTD::BaseParticle() const +inline const G4ParticleDefinition* G4VEnergyLossProcess::BaseParticle() const { return baseParticle; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline const G4ParticleDefinition* G4VEnergyLossSTD::SecondaryParticle() const +inline const G4ParticleDefinition* G4VEnergyLossProcess::SecondaryParticle() const { return secondaryParticle; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline void G4VEnergyLossSTD::SetDEDXBinning(G4int nbins) +inline void G4VEnergyLossProcess::SetDEDXBinning(G4int nbins) { nDEDXBins = nbins; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline void G4VEnergyLossSTD::SetDEDXBinningForPreciseRange(G4int nbins) +inline void G4VEnergyLossProcess::SetDEDXBinningForPreciseRange(G4int nbins) { nDEDXBinsForRange = nbins; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... /* -inline G4int G4VEnergyLossSTD::DEDXBinning() const +inline G4int G4VEnergyLossProcess::DEDXBinning() const { return nDEDXBins; } */ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline void G4VEnergyLossSTD::SetLambdaBinning(G4int nbins) +inline void G4VEnergyLossProcess::SetLambdaBinning(G4int nbins) { nLambdaBins = nbins; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... /* -inline G4int G4VEnergyLossSTD::LambdaBinning() const +inline G4int G4VEnergyLossProcess::LambdaBinning() const { return nLambdaBins; } */ + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline void G4VEnergyLossSTD::SetMinKinEnergy(G4double e) +inline G4double G4VEnergyLossProcess::MinKinEnergy() const +{ + return minKinEnergy; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +inline void G4VEnergyLossProcess::SetMinKinEnergy(G4double e) { minKinEnergy = e; lowKinEnergy = minKinEnergy*faclow; @@ -591,14 +589,7 @@ inline void G4VEnergyLossSTD::SetMinKinEnergy(G4double e) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4VEnergyLossSTD::MinKinEnergy() const -{ - return minKinEnergy; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -inline void G4VEnergyLossSTD::SetMaxKinEnergy(G4double e) +inline void G4VEnergyLossProcess::SetMaxKinEnergy(G4double e) { maxKinEnergy = e; if(e < maxKinEnergyForRange) maxKinEnergyForRange = e; @@ -606,21 +597,21 @@ inline void G4VEnergyLossSTD::SetMaxKinEnergy(G4double e) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline void G4VEnergyLossSTD::SetMaxKinEnergyForPreciseRange(G4double e) +inline void G4VEnergyLossProcess::SetMaxKinEnergyForPreciseRange(G4double e) { maxKinEnergyForRange = e; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4VEnergyLossSTD::MaxKinEnergy() const +inline G4double G4VEnergyLossProcess::MaxKinEnergy() const { return maxKinEnergy; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4double G4VEnergyLossSTD::GetLambda(G4double kineticEnergy, +inline G4double G4VEnergyLossProcess::GetLambda(G4double kineticEnergy, const G4MaterialCutsCouple* couple) { DefineMaterial(couple); @@ -636,7 +627,7 @@ inline G4double G4VEnergyLossSTD::GetLambda(G4double kineticEnergy, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -inline G4VSubCutoffProcessor* G4VEnergyLossSTD::SubCutoffProcessor(size_t index) +inline G4VSubCutoffProcessor* G4VEnergyLossProcess::SubCutoffProcessor(size_t index) { G4VSubCutoffProcessor* p = 0; if( nSCoffRegions ) p = scoffProcessors[idxSCoffRegions[index]]; diff --git a/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh b/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh index 555c8f6c23..b541d56329 100644 --- a/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh +++ b/source/processes/electromagnetic/utils/include/G4VMultipleScattering.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VMultipleScattering.hh,v 1.15 2003/11/26 10:01:13 urban Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -34,11 +36,15 @@ // // Modifications: // +// 16-07-03 Update GetRange interface (V.Ivanchenko) +// // // Class Description: // // It is the generic process of multiple scattering it includes common // part of calculations for all charged particles +// +// 26-11-03 bugfix in AlongStepDoIt (L.Urban) // ------------------------------------------------------------------- // @@ -54,10 +60,10 @@ #include "G4ParticleChangeForMSC.hh" #include "G4Track.hh" #include "G4EmModelManager.hh" +#include "G4VEmModel.hh" class G4Step; class G4ParticleDefinition; -class G4VEmModel; class G4DataVector; class G4Navigator; class G4PhysicsTable; @@ -198,7 +204,7 @@ private: G4PhysicsTable* theLambdaTable; // cash - const G4Material* currentMaterial; + const G4ParticleDefinition* currentParticle; const G4MaterialCutsCouple* currentCouple; size_t currentMaterialIndex; @@ -226,7 +232,6 @@ inline void G4VMultipleScattering::DefineMaterial(const G4MaterialCutsCouple* co { if(couple != currentCouple) { currentCouple = couple; - currentMaterial = couple->GetMaterial(); currentMaterialIndex = couple->GetIndex(); } } @@ -276,7 +281,7 @@ inline G4double G4VMultipleScattering::GetContinuousStepLimit( truePathLength = TruePathLengthLimit(track,lambda0,currentMinimalStep); //G4cout << "StepLimit: tpl= " << truePathLength << " lambda0= " // << lambda0 << " range= " << currentRange - // << " currentMinStep= " << currentMinimalStep << G4endl; + // << " currentMinStep= " << currentMinimalStep << G4endl; if (truePathLength < currentMinimalStep) valueGPILSelectionMSC = CandidateForSelection; geomPathLength = currentModel->GeomPathLength(theLambdaTable,currentCouple, p,e,lambda0,currentRange,truePathLength); @@ -288,7 +293,7 @@ inline G4double G4VMultipleScattering::GetContinuousStepLimit( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... inline G4double G4VMultipleScattering::ContinuousStepLimit( - const G4Track& track, + const G4Track& track, G4double previousStepSize, G4double currentMinimalStep, G4double& currentSafety) @@ -307,7 +312,7 @@ inline G4double G4VMultipleScattering::GetLambda(const G4ParticleDefinition* p, x = ((*theLambdaTable)[currentMaterialIndex])->GetValue(e, b); } else { - x = currentModel->CrossSection(currentMaterial,p,e,0.0,1.0); + x = currentModel->CrossSection(currentCouple,p,e,0.0,1.0); } return x; } @@ -320,10 +325,11 @@ inline G4VParticleChange* G4VMultipleScattering::AlongStepDoIt( { fParticleChange.Initialize(track); G4double geomStepLength = step.GetStepLength(); - if (geomStepLength == geomPathLength) trueStepLength = truePathLength; - else trueStepLength = currentModel->TrueStepLength(geomStepLength); + if((geomStepLength == geomPathLength) && (truePathLength <= currentRange)) + trueStepLength = truePathLength; + else + trueStepLength = currentModel->TrueStepLength(geomStepLength); fParticleChange.SetTrueStepLength(trueStepLength); -// G4cout << "AlongStep: trueLength= " << trueStepLength << " geomLength= "<< geomStepLength << " zlast= " << geomPathLength << G4endl; return &fParticleChange; } diff --git a/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh b/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh index 6e7d7baece..f356e53450 100644 --- a/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh +++ b/source/processes/electromagnetic/utils/include/G4VSubCutoffProcessor.hh @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VSubCutoffProcessor.hh,v 1.6 2003/07/21 12:52:06 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/src/G4BetheBlochModel.cc b/source/processes/electromagnetic/utils/src/G4BetheBlochModel.cc index 0a42896d71..6a73a5091f 100644 --- a/source/processes/electromagnetic/utils/src/G4BetheBlochModel.cc +++ b/source/processes/electromagnetic/utils/src/G4BetheBlochModel.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4BetheBlochModel.cc,v 1.9 2003/11/12 10:24:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -59,7 +61,8 @@ G4BetheBlochModel::G4BetheBlochModel(const G4ParticleDefinition* p, const G4Stri lowKinEnergy(2.0*MeV), twoln10(2.0*log(10.0)), bg2lim(0.0169), - taulim(8.4146e-3) + taulim(8.4146e-3), + isIon(false) { if(p) SetParticle(p); } @@ -73,14 +76,16 @@ G4BetheBlochModel::~G4BetheBlochModel() void G4BetheBlochModel::SetParticle(const G4ParticleDefinition* p) { - particle = p; - mass = particle->GetPDGMass(); - spin = particle->GetPDGSpin(); - G4double q = particle->GetPDGCharge()/eplus; - chargeSquare = q*q; - lowKinEnergy *= mass/proton_mass_c2; - ratio = electron_mass_c2/mass; - qc = mass/ratio; + if(particle != p) { + particle = p; + mass = particle->GetPDGMass(); + spin = particle->GetPDGSpin(); + G4double q = particle->GetPDGCharge()/eplus; + chargeSquare = q*q; + lowKinEnergy *= mass/proton_mass_c2; + ratio = electron_mass_c2/mass; + if(particle->GetParticleName() == "GenericIon") isIon = true; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -125,11 +130,12 @@ void G4BetheBlochModel::Initialise(const G4ParticleDefinition* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4BetheBlochModel::ComputeDEDX(const G4Material* material, +G4double G4BetheBlochModel::ComputeDEDX(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double cutEnergy) { + const G4Material* material = couple->GetMaterial(); G4double tmax = MaxSecondaryEnergy(p, kineticEnergy); G4double tau = kineticEnergy/mass; G4double x = 1.0; @@ -149,23 +155,23 @@ G4double G4BetheBlochModel::ComputeDEDX(const G4Material* material, G4double* shellCorrectionVector = material->GetIonisation()->GetShellCorrectionVector(); G4double eDensity = material->GetElectronDensity(); - + G4double dedx = log(2.0*electron_mass_c2*bg2*tmax*x/eexc2)-(1.0 + x)*beta2; - + if(0.5 == spin) { G4double del = 0.5*x*tmax/(kineticEnergy + mass); dedx += del*del; } - // density correction + // density correction x = log(bg2)/twoln10; if ( x >= x0den ) { dedx -= twoln10*x - cden ; if ( x < x1den ) dedx -= aden*pow((x1den-x),mden) ; } - - // shell correction - G4double sh = 0.0; + + // shell correction + G4double sh = 0.0; x = 1.0; if ( bg2 > bg2lim ) { @@ -182,23 +188,23 @@ G4double G4BetheBlochModel::ComputeDEDX(const G4Material* material, sh *= log(tau/taul)/log(taulim/taul); } dedx -= sh; - + // now compute the total ionization loss if (dedx < 0.0) dedx = 0.0 ; - + dedx *= twopi_mc2_rcl2*chargeSquare*eDensity/beta2; - return dedx; + return dedx; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4BetheBlochModel::CrossSection(const G4Material* material, +G4double G4BetheBlochModel::CrossSection(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double cutEnergy, - G4double maxEnergy) + G4double maxEnergy) { G4double cross = 0.0; G4double tmax = std::min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); @@ -217,15 +223,17 @@ G4double G4BetheBlochModel::CrossSection(const G4Material* material, // +term for spin=1 particle } else if( 0.9 < spin ) { + G4double qc = mass/ratio; cross += -log(x)/(3.0*qc) + (tmax - cutEnergy) * ((1.0+ 0.25*tmax*(1.0 + x)/qc)/(energy*energy) - beta2 / (tmax * qc) )/3.0; } - - cross *= twopi_mc2_rcl2*chargeSquare*material->GetElectronDensity()/beta2; + + cross *= twopi_mc2_rcl2*chargeSquare* + (couple->GetMaterial()->GetElectronDensity())/beta2; } - // G4cout << "tmin= " << cutEnergy << " tmax= " << tmax - // << " cross= " << cross << G4endl; + // G4cout << "tmin= " << cutEnergy << " tmax= " << tmax + // << " cross= " << cross << G4endl; return cross; } @@ -256,6 +264,7 @@ G4DynamicParticle* G4BetheBlochModel::SampleSecondary( if(spin < 0.9) { grej += xmax*xmax*x; } else { + G4double qc = mass/ratio; y = tmax/(3.0*qc); grej += (1.0 - beta2*xmin)*xmin*y + x*xmin*xmin*(2.0/3.0 + xmin*y); } diff --git a/source/processes/electromagnetic/utils/src/G4BohrFluctuations.cc b/source/processes/electromagnetic/utils/src/G4BohrFluctuations.cc index c337ca4fc9..1791dd2ee3 100644 --- a/source/processes/electromagnetic/utils/src/G4BohrFluctuations.cc +++ b/source/processes/electromagnetic/utils/src/G4BohrFluctuations.cc @@ -20,6 +20,9 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4BohrFluctuations.cc,v 1.7 2003/10/24 14:00:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// // ------------------------------------------------------------------- // // GEANT4 Class file @@ -34,6 +37,7 @@ // Modifications: // // 23-05-03 Add control on parthalogical cases (V.Ivanchenko) +// 16-10-03 Changed interface to Initialisation (V.Ivanchenko) // // Class Description: Sampling of Gaussion fluctuations // @@ -66,7 +70,7 @@ G4BohrFluctuations::~G4BohrFluctuations() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4BohrFluctuations::Initialise(const G4ParticleDefinition* part) +void G4BohrFluctuations::InitialiseMe(const G4ParticleDefinition* part) { particle = part; particleMass = part->GetPDGMass(); @@ -77,10 +81,10 @@ void G4BohrFluctuations::Initialise(const G4ParticleDefinition* part) //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4BohrFluctuations::SampleFluctuations(const G4Material* material, - const G4DynamicParticle* dp, - G4double& tmax, - G4double& length, - G4double& meanLoss) + const G4DynamicParticle* dp, + G4double& tmax, + G4double& length, + G4double& meanLoss) { if(meanLoss <= minLoss) return meanLoss; G4double siga = Dispersion(material,dp,tmax,length); diff --git a/source/processes/electromagnetic/utils/src/G4BraggModel.cc b/source/processes/electromagnetic/utils/src/G4BraggModel.cc index ffecb3f47b..02fc7fc274 100644 --- a/source/processes/electromagnetic/utils/src/G4BraggModel.cc +++ b/source/processes/electromagnetic/utils/src/G4BraggModel.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4BraggModel.cc,v 1.11 2003/11/12 10:24:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -63,9 +65,10 @@ G4BraggModel::G4BraggModel(const G4ParticleDefinition* p, const G4String& nam) particle(0), highKinEnergy(2.0*MeV), lowKinEnergy(0.0*MeV), - iMolecula(0), protonMassAMU(1.007276), - theZieglerFactor(eV*cm2*1.0e-15) + theZieglerFactor(eV*cm2*1.0e-15), + iMolecula(0), + isIon(false) { if(p) SetParticle(p); } @@ -79,14 +82,17 @@ G4BraggModel::~G4BraggModel() void G4BraggModel::SetParticle(const G4ParticleDefinition* p) { - particle = p; - mass = particle->GetPDGMass(); - spin = particle->GetPDGSpin(); - G4double q = particle->GetPDGCharge()/eplus; - chargeSquare = q*q; - massRate = mass/proton_mass_c2; - highKinEnergy *= massRate; - ratio = electron_mass_c2/mass; + if(particle != p) { + particle = p; + mass = particle->GetPDGMass(); + spin = particle->GetPDGSpin(); + G4double q = particle->GetPDGCharge()/eplus; + chargeSquare = q*q; + massRate = mass/proton_mass_c2; + highKinEnergy *= massRate; + ratio = electron_mass_c2/mass; + if(particle->GetParticleName() == "GenericIon") isIon = true; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -131,12 +137,12 @@ void G4BraggModel::Initialise(const G4ParticleDefinition* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4BraggModel::ComputeDEDX(const G4Material* material, +G4double G4BraggModel::ComputeDEDX(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double cutEnergy) { - + const G4Material* material = couple->GetMaterial(); G4double tmax = MaxSecondaryEnergy(p, kineticEnergy); G4double dedx = DEDX(material, kineticEnergy/massRate); @@ -146,9 +152,9 @@ G4double G4BraggModel::ComputeDEDX(const G4Material* material, G4double tau = kineticEnergy/mass; G4double gam = tau + 1.0; G4double beta2 = 1. - 1./(gam*gam); - // G4double bg2 = tau * (tau+2.0); + dedx += (log(x) + (1.0 - x)*beta2) * twopi_mc2_rcl2 - * (material->GetElectronDensity())/beta2; + * (material->GetElectronDensity())/beta2; } // now compute the total ionization loss @@ -162,7 +168,7 @@ G4double G4BraggModel::ComputeDEDX(const G4Material* material, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4BraggModel::CrossSection(const G4Material* material, +G4double G4BraggModel::CrossSection(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double cutEnergy, @@ -172,17 +178,18 @@ G4double G4BraggModel::CrossSection(const G4Material* material, G4double cross = 0.0; G4double tmax = std::min(MaxSecondaryEnergy(p, kineticEnergy), maxEnergy); if(cutEnergy < tmax) { - + G4double x = cutEnergy/tmax; G4double energy = kineticEnergy + mass; G4double gam = energy/mass; G4double beta2 = 1. - 1./(gam*gam); cross = (1.0 - x*(1.0 - beta2*log(x)))/cutEnergy; - - cross *= twopi_mc2_rcl2*chargeSquare*material->GetElectronDensity()/beta2; + + cross *= twopi_mc2_rcl2*chargeSquare* + (couple->GetMaterial()->GetElectronDensity())/beta2; } - // G4cout << "tmin= " << cutEnergy << " tmax= " << tmax - // << " cross= " << cross << G4endl; + // G4cout << "tmin= " << cutEnergy << " tmax= " << tmax + // << " cross= " << cross << G4endl; return cross; } @@ -213,14 +220,14 @@ G4DynamicParticle* G4BraggModel::SampleSecondary( z = xmin*xmax/(xmin*(1.0 - q) + xmax*q); f = 1.0 - beta2 * z; - + /* if(f > grej) { G4cout << "G4BraggModel::SampleSecondary Warning! " << "Majorant " << grej << " < " << f << " for x= " << z << G4endl; } - + */ } while( grej*G4UniformRand() >= f ); G4double deltaKinEnergy = z * tmax; diff --git a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc index 801a4a9636..d56fb47e83 100644 --- a/source/processes/electromagnetic/utils/src/G4EmModelManager.cc +++ b/source/processes/electromagnetic/utils/src/G4EmModelManager.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4EmModelManager.cc,v 1.20 2003/11/03 19:37:59 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -42,6 +44,10 @@ // 06-03-03 Fix in energy intervals for models (V.Ivanchenko) // 13-04-03 Add startFromNull (V.Ivanchenko) // 13-05-03 Add calculation of precise range (V.Ivanchenko) +// 16-07-03 Replace G4Material by G4MaterialCutCouple in dE/dx and CrossSection +// calculation (V.Ivanchenko) +// 21-07-03 Add UpdateEmModel method (V.Ivanchenko) +// 03-11-03 Substitute STL vector for G4RegionModels (V.Ivanchenko) // // Class Description: // @@ -96,6 +102,8 @@ G4EmModelManager::G4EmModelManager(): nEmModels(0), nRegions(0), nCouples(0), + idxOfRegionModels(0), + setOfRegionModels(0), minSubRange(0.1), particle(0), verboseLevel(0) @@ -150,8 +158,15 @@ void G4EmModelManager::Clear() theCuts.clear(); theSubCuts.clear(); upperEkin.clear(); - idxOfRegionModels.clear(); - setOfRegionModels.clear(); + if(idxOfRegionModels) delete [] idxOfRegionModels; + if(setOfRegionModels && nRegions) { + for(G4int i=0; iDefineForRegion(r); if (nEmModels) { G4int idx = nEmModels; do {idx--;} while (idx && num < orderOfModels[idx]); @@ -187,11 +203,34 @@ void G4EmModelManager::AddEmModel(G4int num, G4VEmModel* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... +void G4EmModelManager::UpdateEmModel(const G4String& nam, G4double emin, G4double emax) +{ + if (nEmModels) { + for(G4int i=0; iGetName()) { + models[i]->SetLowEnergyLimit(emin); + models[i]->SetHighEnergyLimit(emax); + break; + } + } + } + G4cout << "G4EmModelManager::UpdateEmModel WARNING: no model <" + << nam << "> is found out" + << G4endl; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, const G4ParticleDefinition* sp, G4double theMinSubRange, G4int val) { + if(0 < verboseLevel) { + G4cout << "G4EmModelManager::Initialise() for " + << p->GetParticleName() + << G4endl; + } // Are models defined? if(!nEmModels) { G4Exception("G4EmModelManager::Initialise without any model defined"); @@ -201,11 +240,6 @@ const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, minSubRange = theMinSubRange; verboseLevel = val; - if(0 < verboseLevel) { - G4cout << "### G4EmModelManager::Initialise() for " - << p->GetParticleName() - << G4endl; - } Clear(); G4RegionStore* regionStore = G4RegionStore::GetInstance(); @@ -232,11 +266,11 @@ const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, } } - setOfRegionModels.clear(); const G4ProductionCutsTable* theCoupleTable= G4ProductionCutsTable::GetProductionCutsTable(); size_t numOfCouples = theCoupleTable->GetTableSize(); - idxOfRegionModels.resize(numOfCouples); + idxOfRegionModels = new G4int[numOfCouples]; + setOfRegionModels = new G4RegionModels*[nRegions]; upperEkin.resize(nEmModels); // Order models for regions @@ -283,12 +317,14 @@ const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, } eLow[0] = 0.0; - if(1 < verboseLevel) { + if(0 < verboseLevel) { G4cout << "New G4RegionModels set with " << n << " models for region <" - << region->GetName() << "> " << G4endl; + << region->GetName() << "> Elow(MeV)= "; + for(G4int ii=0; ii0 && pcuts != (set[reg]->GetProductionCuts())); idxOfRegionModels[i] = reg; - if(1 < verboseLevel) { + if(0 < verboseLevel) { G4cout << "G4EmModelManager::Initialise() for " - << material->GetName() << G4endl; + << material->GetName() + << " indexOfCouple= " << i + << " indexOfRegion= " << reg + << " indexOfRegion= " << reg + << G4endl; } G4double cut = 0.0; @@ -339,12 +379,12 @@ const G4DataVector* G4EmModelManager::Initialise(const G4ParticleDefinition* p, for(G4int jj=0; jjInitialise(particle, theCuts); - if(flucModels[jj]) flucModels[jj]->Initialise(particle); + if(flucModels[jj]) flucModels[jj]->InitialiseMe(particle); } if(0 < verboseLevel) { - G4cout << "G4EmModelManager is initialised " + G4cout << "G4EmModelManager is initialised; nRegions= " << nRegions << G4endl; } @@ -364,13 +404,12 @@ void G4EmModelManager::FillDEDXVector(G4PhysicsVector* aVector, G4double e; - const G4Material* material = couple->GetMaterial(); size_t i = couple->GetIndex(); G4double cut = theCuts[i]; if(0 < verboseLevel) { G4cout << "G4EmModelManager::FillDEDXVector() for " - << material->GetName() + << couple->GetMaterial()->GetName() << " Ecut(MeV)= " << cut/MeV << G4endl; } @@ -385,7 +424,7 @@ void G4EmModelManager::FillDEDXVector(G4PhysicsVector* aVector, if(0 < verboseLevel) { G4cout << "There are " << nmod << " models for " - << material->GetName() + << couple->GetMaterial()->GetName() << " at the region #" << reg << G4endl; } @@ -400,15 +439,15 @@ void G4EmModelManager::FillDEDXVector(G4PhysicsVector* aVector, dedxLow[0] = 0.0; e = upperEkin[regModels->ModelIndex(0)]; - dedxHigh[0] = models[regModels->ModelIndex(0)]->ComputeDEDX(material,particle,e,cut); + dedxHigh[0] = models[regModels->ModelIndex(0)]->ComputeDEDX(couple,particle,e,cut); if(nmod > 1) { for(j=1; jModelIndex(j-1)]; - dedxLow[j] = models[regModels->ModelIndex(j)]->ComputeDEDX(material,particle,e,cut); + dedxLow[j] = models[regModels->ModelIndex(j)]->ComputeDEDX(couple,particle,e,cut); e = upperEkin[regModels->ModelIndex(j)]; - dedxHigh[j] = models[regModels->ModelIndex(j)]->ComputeDEDX(material,particle,e,cut); + dedxHigh[j] = models[regModels->ModelIndex(j)]->ComputeDEDX(couple,particle,e,cut); } for(j=1; jModelIndex(k)] ); } - G4double dedx = models[regModels->ModelIndex(k)]->ComputeDEDX(material,particle,e,cut)*fac; + G4double dedx = models[regModels->ModelIndex(k)]->ComputeDEDX(couple,particle,e,cut)*fac; if(dedx < 0.0) dedx = 0.0; if(1 < verboseLevel) { - G4cout << "Material= " << material->GetName() + G4cout << "Material= " << couple->GetMaterial()->GetName() << " E(MeV)= " << e/MeV << " dEdx(MeV/mm)= " << dedx*mm/MeV << " fac= " << fac @@ -465,12 +504,11 @@ void G4EmModelManager::FillDEDXVectorForPreciseRange( G4double e; - const G4Material* material = couple->GetMaterial(); size_t i = couple->GetIndex(); if(0 < verboseLevel) { G4cout << "G4EmModelManager::FillDEDXVector() for " - << material->GetName() + << couple->GetMaterial()->GetName() << G4endl; } @@ -484,7 +522,7 @@ void G4EmModelManager::FillDEDXVectorForPreciseRange( if(0 < verboseLevel) { G4cout << "There are " << nmod << " models for " - << material->GetName() + << couple->GetMaterial()->GetName() << " at the region #" << reg << G4endl; } @@ -499,15 +537,15 @@ void G4EmModelManager::FillDEDXVectorForPreciseRange( dedxLow[0] = 0.0; e = upperEkin[regModels->ModelIndex(0)]; - dedxHigh[0] = models[regModels->ModelIndex(0)]->ComputeDEDX(material,particle,e,e); + dedxHigh[0] = models[regModels->ModelIndex(0)]->ComputeDEDX(couple,particle,e,e); if(nmod > 1) { for(j=1; jModelIndex(j-1)]; - dedxLow[j] = models[regModels->ModelIndex(j)]->ComputeDEDX(material,particle,e,e); + dedxLow[j] = models[regModels->ModelIndex(j)]->ComputeDEDX(couple,particle,e,e); e = upperEkin[regModels->ModelIndex(j)]; - dedxHigh[j] = models[regModels->ModelIndex(j)]->ComputeDEDX(material,particle,e,e); + dedxHigh[j] = models[regModels->ModelIndex(j)]->ComputeDEDX(couple,particle,e,e); } for(j=1; jModelIndex(k)] ); } - G4double dedx = models[regModels->ModelIndex(k)]->ComputeDEDX(material,particle,e,e)*fac; + G4double dedx = models[regModels->ModelIndex(k)]->ComputeDEDX(couple,particle,e,e)*fac; if(dedx < 0.0) dedx = 0.0; if(1 < verboseLevel) { - G4cout << "Material= " << material->GetName() + G4cout << "Material= " << couple->GetMaterial()->GetName() << " E(MeV)= " << e/MeV << " dEdx(MeV/mm)= " << dedx*mm/MeV << " fac= " << fac @@ -563,12 +601,10 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, G4double e; - const G4Material* material = couple->GetMaterial(); - if(0 < verboseLevel) { G4cout << "G4EmModelManager::FillLambdaVector() for particle " << particle->GetParticleName() - << " in " << material->GetName() + << " in " << couple->GetMaterial()->GetName() << G4endl; } @@ -585,7 +621,7 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, if(1 < verboseLevel) { G4cout << "There are " << nmod << " models for " - << material->GetName() << G4endl; + << couple->GetMaterial()->GetName() << G4endl; } // calculate factors to provide continuity of energy loss @@ -598,7 +634,7 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, e = upperEkin[regModels->ModelIndex(0)]; if(1 < verboseLevel) { - G4cout << "### For material " << material->GetName() + G4cout << "### For material " << couple->GetMaterial()->GetName() << " " << nmod << " models" << " Ecut(MeV)= " << cut/MeV @@ -607,16 +643,16 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, << G4endl; } - sigmaHigh[0] = models[regModels->ModelIndex(0)]->CrossSection(material,particle,e,cut,e); + sigmaHigh[0] = models[regModels->ModelIndex(0)]->CrossSection(couple,particle,e,cut,e); if(nmod > 1) { for(j=1; jModelIndex(j-1)]; - sigmaLow[j] = models[regModels->ModelIndex(j)]->CrossSection(material,particle,e,cut,e); + sigmaLow[j] = models[regModels->ModelIndex(j)]->CrossSection(couple,particle,e,cut,e); e = upperEkin[regModels->ModelIndex(j)]; - sigmaHigh[j] = models[regModels->ModelIndex(j)]->CrossSection(material,particle,e,cut,e); + sigmaHigh[j] = models[regModels->ModelIndex(j)]->CrossSection(couple,particle,e,cut,e); } for(j=1; j 0.0) factor[j] = (sigmaHigh[j-1]/sigmaLow[j] - 1.0); @@ -639,7 +675,7 @@ void G4EmModelManager::FillLambdaVector(G4PhysicsVector* aVector, } while (kModelIndex(k)] ); } - G4double cross = models[regModels->ModelIndex(k)]->CrossSection(material,particle,e,cut,e)*fac; + G4double cross = models[regModels->ModelIndex(k)]->CrossSection(couple,particle,e,cut,e)*fac; if(j==0 && startFromNull) cross = 0.0; if(1 < verboseLevel) { @@ -673,7 +709,6 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, G4double e; - const G4Material* material = couple->GetMaterial(); size_t i = couple->GetIndex(); G4double cut = theCuts[i]; G4double subcut = theSubCuts[i]; @@ -687,7 +722,7 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, if(0 < verboseLevel) { G4cout << "There are " << nmod << " models for " - << material->GetName() << G4endl; + << couple->GetMaterial()->GetName() << G4endl; } // calculate factors to provide continuity of energy loss @@ -701,7 +736,7 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, if(1 < verboseLevel) { - G4cout << "### For material " << material->GetName() + G4cout << "### For material " << couple->GetMaterial()->GetName() << " are available " << nmod << " models" << " Ecut(MeV)= " << cut/MeV @@ -709,16 +744,16 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, << G4endl; } - sigmaHigh[0] = models[regModels->ModelIndex(0)]->CrossSection(material,particle,e,subcut,cut); + sigmaHigh[0] = models[regModels->ModelIndex(0)]->CrossSection(couple,particle,e,subcut,cut); if(nmod > 1) { for(j=1; jModelIndex(j-1)]; - sigmaLow[j] = models[regModels->ModelIndex(j)]->CrossSection(material,particle,e,subcut,cut); + sigmaLow[j] = models[regModels->ModelIndex(j)]->CrossSection(couple,particle,e,subcut,cut); e = upperEkin[regModels->ModelIndex(j)]; - sigmaHigh[j] = models[regModels->ModelIndex(j)]->CrossSection(material,particle,e,subcut,cut); + sigmaHigh[j] = models[regModels->ModelIndex(j)]->CrossSection(couple,particle,e,subcut,cut); } for(j=1; j 0.0) factor[j] = (sigmaHigh[j-1]/sigmaLow[j] - 1.0); @@ -741,7 +776,7 @@ void G4EmModelManager::FillSubLambdaVector(G4PhysicsVector* aVector, } while (kModelIndex(k)] ); } - G4double cross=models[regModels->ModelIndex(k)]->CrossSection(material,particle,e,subcut,cut)*fac; + G4double cross=models[regModels->ModelIndex(k)]->CrossSection(couple,particle,e,subcut,cut)*fac; if(j==0 && startFromNull) cross = 0.0; if(1 < verboseLevel) { diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossMessenger.cc index d379a8cc4f..c9ee9ff6fc 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.9 2003/06/16 17:02:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EnergyLossMessenger.cc,v 1.11 2003/10/13 10:49:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -38,6 +38,7 @@ #include "G4UIcommand.hh" #include "G4UIparameter.hh" #include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithAnInteger.hh" #include "G4UIcmdWithADoubleAndUnit.hh" #include @@ -48,13 +49,13 @@ G4EnergyLossMessenger::G4EnergyLossMessenger() { eLossDirectory = new G4UIdirectory("/process/eLoss/"); eLossDirectory->SetGuidance("Commands for G4VEnergyLoss."); - + RndmStepCmd = new G4UIcmdWithABool("/process/eLoss/rndmStep",this); RndmStepCmd->SetGuidance("Randomize the proposed step by eLoss."); RndmStepCmd->SetParameterName("choice",true); RndmStepCmd->SetDefaultValue(false); RndmStepCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + EnlossFlucCmd = new G4UIcmdWithABool("/process/eLoss/fluct",this); EnlossFlucCmd->SetGuidance("Switch true/false the energy loss fluctuations."); EnlossFlucCmd->SetParameterName("choice",true); @@ -76,26 +77,26 @@ G4EnergyLossMessenger::G4EnergyLossMessenger() StepFuncCmd->SetGuidance("Set the energy loss step limitation parameters."); StepFuncCmd->SetGuidance(" dRoverR : max Range variation per step"); StepFuncCmd->SetGuidance(" finalRange: range for final step"); - + G4UIparameter* dRoverRPrm = new G4UIparameter("dRoverR",'d',false); dRoverRPrm->SetGuidance("max Range variation per step (fractional number)"); dRoverRPrm->SetParameterRange("dRoverR>0. && dRoverR<=1."); StepFuncCmd->SetParameter(dRoverRPrm); - + G4UIparameter* finalRangePrm = new G4UIparameter("finalRange",'d',false); finalRangePrm->SetGuidance("range for final step"); finalRangePrm->SetParameterRange("finalRange>0."); StepFuncCmd->SetParameter(finalRangePrm); - + G4UIparameter* unitPrm = new G4UIparameter("unit",'s',true); unitPrm->SetGuidance("unit of finalRange"); unitPrm->SetDefaultValue("mm"); G4String unitCandidates = G4UIcommand::UnitsList(G4UIcommand::CategoryOf("mm")); unitPrm->SetParameterCandidates(unitCandidates); - + StepFuncCmd->SetParameter(unitPrm); StepFuncCmd->AvailableForStates(G4State_PreInit,G4State_Idle); - + MinEnCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/minKinEnergy",this); MinEnCmd->SetGuidance("Set the min kinetic energy"); MinEnCmd->SetParameterName("emin",true); @@ -119,6 +120,12 @@ G4EnergyLossMessenger::G4EnergyLossMessenger() rangeCmd->SetParameterName("range",true); rangeCmd->SetDefaultValue(true); rangeCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + + verCmd = new G4UIcmdWithAnInteger("/process/eLoss/verbose",this); + verCmd->SetGuidance("Set verbose level for EM physics."); + verCmd->SetParameterName("verb",true); + verCmd->SetDefaultValue(true); + verCmd->AvailableForStates(G4State_PreInit,G4State_Idle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -135,18 +142,19 @@ G4EnergyLossMessenger::~G4EnergyLossMessenger() delete MaxEnCmd; delete IntegCmd; delete rangeCmd; + delete verCmd; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4EnergyLossMessenger::SetNewValue(G4UIcommand* command,G4String newValue) -{ +{ G4LossTableManager* lossTables = G4LossTableManager::Instance(); if (command == RndmStepCmd) { G4VEnergyLoss::SetRndmStep(RndmStepCmd->GetNewBoolValue(newValue)); lossTables->SetRandomStep(RndmStepCmd->GetNewBoolValue(newValue)); } - + if (command == EnlossFlucCmd) { G4VEnergyLoss::SetEnlossFluc(EnlossFlucCmd->GetNewBoolValue(newValue)); lossTables->SetLossFluctuations(EnlossFlucCmd->GetNewBoolValue(newValue)); @@ -173,7 +181,7 @@ void G4EnergyLossMessenger::SetNewValue(G4UIcommand* command,G4String newValue) G4VEnergyLoss::SetStepFunction(v1,v2); lossTables->SetStepLimits(v1,v2); } - + if (command == MinEnCmd) { lossTables->SetMinEnergy(MinEnCmd->GetNewDoubleValue(newValue)); } @@ -185,7 +193,10 @@ void G4EnergyLossMessenger::SetNewValue(G4UIcommand* command,G4String newValue) lossTables->SetIntegral(IntegCmd->GetNewBoolValue(newValue)); } if (command == rangeCmd) { - lossTables->SetBuildPreciseRange(IntegCmd->GetNewBoolValue(newValue)); + lossTables->SetBuildPreciseRange(rangeCmd->GetNewBoolValue(newValue)); + } + if (command == verCmd) { + lossTables->SetVerbose(verCmd->GetNewIntValue(newValue)); } } diff --git a/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc b/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc index 31958a97df..91894e91e7 100644 --- a/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc +++ b/source/processes/electromagnetic/utils/src/G4EnergyLossTables.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnergyLossTables.cc,v 1.27 2003/04/18 17:49:26 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EnergyLossTables.cc,v 1.31 2003/11/24 12:12:53 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // first version created by P.Urban , 06/04/1998 @@ -57,7 +57,7 @@ G4double G4EnergyLossTables::rmin = 0. ; G4double G4EnergyLossTables::rmax = 0. ; G4double G4EnergyLossTables::Thigh = 0. ; G4int G4EnergyLossTables::let_counter = 0; -G4int G4EnergyLossTables::let_max_num_warnings = 2; +G4int G4EnergyLossTables::let_max_num_warnings = 100; G4bool G4EnergyLossTables::first_loss = true; G4EnergyLossTables::helper_map G4EnergyLossTables::dict; @@ -201,7 +201,7 @@ G4double G4EnergyLossTables::GetDEDX( oldIndex = -1 ; } const G4PhysicsTable* dEdxTable= t.theDEDXTable; - if (!dEdxTable) ParticleHaveNoLoss(aParticle); + if (!dEdxTable) ParticleHaveNoLoss(aParticle,"dEdx"); G4int materialIndex = aMaterial->GetIndex(); G4double scaledKineticEnergy = KineticEnergy*t.theMassRatio; @@ -244,7 +244,7 @@ G4double G4EnergyLossTables::GetLabTime( oldIndex = -1 ; } const G4PhysicsTable* labtimeTable= t.theLabTimeTable; - if (!labtimeTable) ParticleHaveNoLoss(aParticle); + if (!labtimeTable) ParticleHaveNoLoss(aParticle,"LabTime"); const G4double parlowen=0.4 , ppar=0.5-parlowen ; G4int materialIndex = aMaterial->GetIndex(); @@ -290,7 +290,7 @@ G4double G4EnergyLossTables::GetDeltaLabTime( oldIndex = -1 ; } const G4PhysicsTable* labtimeTable= t.theLabTimeTable; - if (!labtimeTable) ParticleHaveNoLoss(aParticle); + if (!labtimeTable) ParticleHaveNoLoss(aParticle,"LabTime"); const G4double parlowen=0.4 , ppar=0.5-parlowen ; const G4double dToverT = 0.05 , facT = 1. -dToverT ; @@ -368,7 +368,7 @@ G4double G4EnergyLossTables::GetProperTime( oldIndex = -1 ; } const G4PhysicsTable* propertimeTable= t.theProperTimeTable; - if (!propertimeTable) ParticleHaveNoLoss(aParticle); + if (!propertimeTable) ParticleHaveNoLoss(aParticle,"ProperTime"); const G4double parlowen=0.4 , ppar=0.5-parlowen ; G4int materialIndex = aMaterial->GetIndex(); @@ -389,7 +389,7 @@ G4double G4EnergyLossTables::GetProperTime( t.theHighestKineticEnergy,isOut); } else { - + time = (*propertimeTable)(materialIndex)->GetValue( scaledKineticEnergy,isOut); @@ -414,7 +414,7 @@ G4double G4EnergyLossTables::GetDeltaProperTime( oldIndex = -1 ; } const G4PhysicsTable* propertimeTable= t.theProperTimeTable; - if (!propertimeTable) ParticleHaveNoLoss(aParticle); + if (!propertimeTable) ParticleHaveNoLoss(aParticle,"ProperTime"); const G4double parlowen=0.4 , ppar=0.5-parlowen ; const G4double dToverT = 0.05 , facT = 1. -dToverT ; @@ -496,7 +496,7 @@ G4double G4EnergyLossTables::GetRange( } const G4PhysicsTable* rangeTable= t.theRangeTable; const G4PhysicsTable* dEdxTable= t.theDEDXTable; - if (!dEdxTable || !rangeTable) ParticleHaveNoLoss(aParticle); + if (!rangeTable) ParticleHaveNoLoss(aParticle,"Range"); G4int materialIndex = aMaterial->GetIndex(); G4double scaledKineticEnergy = KineticEnergy*t.theMassRatio; @@ -547,7 +547,7 @@ G4double G4EnergyLossTables::GetPreciseEnergyFromRange( } const G4PhysicsTable* dEdxTable= t.theDEDXTable; const G4PhysicsTable* inverseRangeTable= t.theInverseRangeTable; - if (!dEdxTable || !inverseRangeTable) ParticleHaveNoLoss(aParticle); + if (!inverseRangeTable) ParticleHaveNoLoss(aParticle,"InverseRange"); G4double scaledrange,scaledKineticEnergy ; G4bool isOut ; @@ -609,7 +609,7 @@ G4double G4EnergyLossTables::GetPreciseEnergyFromRange( oldIndex = -1 ; } const G4PhysicsTable* dEdxTable= t.theDEDXTable; - if (!dEdxTable) ParticleHaveNoLoss(aParticle); + if (!dEdxTable) ParticleHaveNoLoss(aParticle,"dEdx"); G4int materialIndex = aMaterial->GetIndex(); G4double scaledKineticEnergy = KineticEnergy*t.theMassRatio; @@ -656,7 +656,7 @@ G4double G4EnergyLossTables::GetPreciseEnergyFromRange( } const G4PhysicsTable* rangeTable= t.theRangeTable; const G4PhysicsTable* dEdxTable= t.theDEDXTable; - if (!dEdxTable || !rangeTable) ParticleHaveNoLoss(aParticle); + if (!rangeTable) ParticleHaveNoLoss(aParticle,"Range"); G4int materialIndex = aMaterial->GetIndex(); @@ -697,7 +697,8 @@ G4double G4EnergyLossTables::GetPreciseEnergyFromRange( G4double G4EnergyLossTables::GetDEDX( const G4ParticleDefinition *aParticle, G4double KineticEnergy, - const G4MaterialCutsCouple *couple) + const G4MaterialCutsCouple *couple, + G4bool check) { if(aParticle != lastParticle) { @@ -709,8 +710,11 @@ G4double G4EnergyLossTables::GetDEDX( oldIndex = -1 ; } const G4PhysicsTable* dEdxTable= t.theDEDXTable; - if ( !dEdxTable ) - return G4LossTableManager::Instance()->GetDEDX(aParticle,KineticEnergy,couple); + + if (!dEdxTable ) { + if (check) return G4LossTableManager::Instance()->GetDEDX(aParticle,KineticEnergy,couple); + else ParticleHaveNoLoss(aParticle, "dEdx"); + } G4int materialIndex = couple->GetIndex(); G4double scaledKineticEnergy = KineticEnergy*t.theMassRatio; @@ -743,7 +747,8 @@ G4double G4EnergyLossTables::GetDEDX( G4double G4EnergyLossTables::GetRange( const G4ParticleDefinition *aParticle, G4double KineticEnergy, - const G4MaterialCutsCouple *couple) + const G4MaterialCutsCouple *couple, + G4bool check) { if(aParticle != lastParticle) { @@ -756,9 +761,11 @@ G4double G4EnergyLossTables::GetRange( } const G4PhysicsTable* rangeTable= t.theRangeTable; const G4PhysicsTable* dEdxTable= t.theDEDXTable; - if ( !rangeTable || !dEdxTable) - return G4LossTableManager::Instance()->GetRange(aParticle,KineticEnergy,couple); - + if (!rangeTable) { + if(check) return G4LossTableManager::Instance()->GetRange(aParticle,KineticEnergy,couple); + else return DBL_MAX; + //ParticleHaveNoLoss(aParticle,"Range"); + } G4int materialIndex = couple->GetIndex(); G4double scaledKineticEnergy = KineticEnergy*t.theMassRatio; @@ -794,7 +801,8 @@ G4double G4EnergyLossTables::GetRange( G4double G4EnergyLossTables::GetPreciseEnergyFromRange( const G4ParticleDefinition *aParticle, G4double range, - const G4MaterialCutsCouple *couple) + const G4MaterialCutsCouple *couple, + G4bool check) // it returns the value of the kinetic energy for a given range { if( aParticle != lastParticle) @@ -808,8 +816,12 @@ G4double G4EnergyLossTables::GetPreciseEnergyFromRange( } const G4PhysicsTable* dEdxTable= t.theDEDXTable; const G4PhysicsTable* inverseRangeTable= t.theInverseRangeTable; - if ( !dEdxTable || !inverseRangeTable) - return G4LossTableManager::Instance()->GetEnergy(aParticle,range,couple); + + if (!inverseRangeTable) { + if(check) return G4LossTableManager::Instance()->GetEnergy(aParticle,range,couple); + else return DBL_MAX; + // else ParticleHaveNoLoss(aParticle,"InverseRange"); + } G4double scaledrange,scaledKineticEnergy ; G4bool isOut ; @@ -959,31 +971,32 @@ G4double G4EnergyLossTables::GetPreciseRangeFromEnergy( void G4EnergyLossTables::CPRWarning() { -// if (let_counter < let_max_num_warnings) { + if (let_counter < let_max_num_warnings) { -// G4cout << G4endl; -// G4cout << "##### G4EnergyLossTable WARNING: The obsolete interface is used" << G4endl; -// G4cout << "##### Please, substitute G4Material by G4MaterialCutsCouple" << G4endl; -// G4cout << "##### Obsolete interface will be removed soon" << G4endl; -// G4cout << G4endl; -// let_counter++; - if ((G4RegionStore::GetInstance())->size() > 1) { - G4Exception("G4EnergyLossTables:: More than 1 region - table can't be accessed with obsolete interface"); - exit(1); - } - -// } else if (let_counter == let_max_num_warnings) { - -// G4cout << "##### G4EnergyLossTable WARNING closed" << G4endl; -// let_counter++; + G4cout << G4endl; + G4cout << "##### G4EnergyLossTable WARNING: The obsolete interface is used!" << G4endl; + G4cout << "##### RESULTS ARE NOT GARANTEED!" << G4endl; + G4cout << "##### Please, substitute G4Material by G4MaterialCutsCouple" << G4endl; + G4cout << "##### Obsolete interface will be removed soon" << G4endl; + G4cout << G4endl; + let_counter++; +// if ((G4RegionStore::GetInstance())->size() > 1) { +// G4Exception("G4EnergyLossTables:: More than 1 region - table can't be accessed with obsolete interface"); +// exit(1); // } + + } else if (let_counter == let_max_num_warnings) { + + G4cout << "##### G4EnergyLossTable WARNING closed" << G4endl; + let_counter++; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4EnergyLossTables::ParticleHaveNoLoss(const G4ParticleDefinition* aParticle) +void G4EnergyLossTables::ParticleHaveNoLoss(const G4ParticleDefinition* aParticle, const G4String& q) { - G4String s = "G4EnergyLossTables:: dE/dx table not found for " + G4String s = "G4EnergyLossTables:: " + q + " table not found for " + aParticle->GetParticleName() + "!"; G4Exception(s); exit(1); diff --git a/source/processes/electromagnetic/utils/src/G4IonFluctuations.cc b/source/processes/electromagnetic/utils/src/G4IonFluctuations.cc index a45dfc176c..fd3a11aaa2 100644 --- a/source/processes/electromagnetic/utils/src/G4IonFluctuations.cc +++ b/source/processes/electromagnetic/utils/src/G4IonFluctuations.cc @@ -20,6 +20,9 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4IonFluctuations.cc,v 1.8 2003/11/12 10:24:18 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// // ------------------------------------------------------------------- // // GEANT4 Class file @@ -37,6 +40,7 @@ // 07-02-03 change signature (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) // 23-05-03 Add control on parthalogical cases (V.Ivanchenko) +// 16-10-03 Changed interface to Initialisation (V.Ivanchenko) // // Class Description: // @@ -72,12 +76,13 @@ G4IonFluctuations::~G4IonFluctuations() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4IonFluctuations::Initialise(const G4ParticleDefinition* part) +void G4IonFluctuations::InitialiseMe(const G4ParticleDefinition* part) { particle = part; particleMass = part->GetPDGMass(); - G4double q = part->GetPDGCharge()/eplus; - chargeSquare = q*q; + charge = part->GetPDGCharge()/eplus; + chargeSquare = charge*charge; + chargeSqRatio = 1.0; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -92,10 +97,12 @@ G4double G4IonFluctuations::SampleFluctuations(const G4Material* material, if(dp->GetDefinition() != particle) { particle = dp->GetDefinition(); - particleMass = dp->GetMass(); - charge = dp->GetCharge(); - chargeSquare = charge*charge; + charge = particle->GetPDGCharge()/eplus; } + particleMass = dp->GetMass(); + G4double q = dp->GetCharge()/eplus; + chargeSquare = q*q; + chargeSqRatio = chargeSquare/(charge*charge); G4double siga = Dispersion(material,dp,tmax,length); G4double loss = meanLoss; @@ -111,6 +118,7 @@ G4double G4IonFluctuations::SampleFluctuations(const G4Material* material, if(gauss) { // Increase fluctuations for big fractional energy loss + //G4cout << "siga= " << siga << G4endl; if ( meanLoss > minFraction*kineticEnergy ) { G4double gam = (kineticEnergy - meanLoss)/particleMass + 1.0; G4double b2 = 1.0 - 1.0/(gam*gam); @@ -119,6 +127,7 @@ G4double G4IonFluctuations::SampleFluctuations(const G4Material* material, G4double x3 = 1.0/(x*x*x); siga *= 0.25*(1.0 + x)*(x3 + (1.0/b2 - 0.5)/(1.0/beta2 - 0.5) ); } + // G4cout << "siga= " << siga << G4endl; siga = sqrt(siga); G4double lossmax = meanLoss+meanLoss; @@ -132,7 +141,7 @@ G4double G4IonFluctuations::SampleFluctuations(const G4Material* material, G4double n = (G4double)(G4Poisson(navr)); loss = meanLoss*n/navr; } - + // G4cout << "meanLoss= " << meanLoss << " loss= " << loss << G4endl; return loss; } @@ -146,20 +155,28 @@ G4double G4IonFluctuations::Dispersion( { G4double electronDensity = material->GetElectronDensity(); kineticEnergy = dp->GetKineticEnergy(); + // G4cout << "e= " << kineticEnergy << " m= " << particleMass + // << " tmax= " << tmax << " l= " << length << " q^2= " << chargeSquare << G4endl; G4double gam = kineticEnergy/particleMass + 1.0; beta2 = 1.0 - 1.0/(gam*gam); - G4double siga = (1.0/beta2 - 0.5) * twopi_mc2_rcl2 * tmax * length - * electronDensity * chargeSquare; + G4double siga = (1.0/beta2 - 0.5)*tmax*length*electronDensity*twopi_mc2_rcl2*chargeSquare; + // G4cout << "siga= " << siga << G4endl; // Low velocity - additional ion charge fluctuations according to // Q.Yang et al., NIM B61(1991)149-155. G4double zeff = electronDensity/(material->GetTotNbOfAtomsPerVolume()); + //G4cout << "siga= " << siga << " zeff= " << zeff << G4endl; if ( beta2 < 3.0*theBohrBeta2*zeff ) { G4double a = CoeffitientA (zeff); G4double b = CoeffitientB (material, zeff); - siga *= (chargeSquare * a + b); + // G4cout << "a= " << a << " b= " << b << G4endl; + siga *= (a*chargeSqRatio + b); + } else { + + // H.Geissel et al. NIM B, 195 (2002) 3. + siga *= RelativisticFactor(material, zeff); } return siga; @@ -350,3 +367,16 @@ G4double G4IonFluctuations::CoeffitientB(const G4Material* material, G4double& z } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4IonFluctuations::RelativisticFactor(const G4Material*, G4double& zeff) +{ + // H.Geissel et al. NIM B, 195 (2002) 3. + G4double factor = 1.0 + 0.667*theBohrBeta2*(1.0 - beta2) + * log(2.0*electron_mass_c2/(5.0*charge*eV)) + / ((1.0 - 0.5*beta2)*beta2*zeff) ; + factor *= (1.0 + 1.415e-4*chargeSquare/beta2); + // G4cout << "factor= " << factor << G4endl; + return factor; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc index f14e02845e..0d97e69070 100644 --- a/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc +++ b/source/processes/electromagnetic/utils/src/G4LossTableBuilder.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4LossTableBuilder.cc,v 1.9 2003/11/25 18:01:48 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/src/G4LossTableManager.cc b/source/processes/electromagnetic/utils/src/G4LossTableManager.cc index 8aa5182a65..8afa150d01 100644 --- a/source/processes/electromagnetic/utils/src/G4LossTableManager.cc +++ b/source/processes/electromagnetic/utils/src/G4LossTableManager.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4LossTableManager.cc,v 1.37 2003/11/26 14:55:50 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -42,6 +44,12 @@ // 02-04-03 Change messenger (V.Ivanchenko) // 26-04-03 Fix retrieve tables (V.Ivanchenko) // 13-05-03 Add calculation of precise range (V.Ivanchenko) +// 23-07-03 Add exchange with G4EnergyLossTables (V.Ivanchenko) +// 05-10-03 Add G4VEmProcesses registration and Verbose command (V.Ivanchenko) +// 17-10-03 Add SetParameters method (V.Ivanchenko) +// 23-10-03 Add control on inactive processes (V.Ivanchenko) +// 04-11-03 Add checks in RetrievePhysicsTable (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // // Class Description: // @@ -57,7 +65,10 @@ #include "G4MaterialCutsCouple.hh" #include "G4ProcessManager.hh" #include "G4Electron.hh" +#include "G4Proton.hh" #include "G4VMultipleScattering.hh" +#include "G4VEmProcess.hh" +#include "G4ProductionCutsTable.hh" G4LossTableManager* G4LossTableManager::theInstance = 0; @@ -81,7 +92,12 @@ G4LossTableManager::~G4LossTableManager() size_t msc = msc_vector.size(); for (size_t j=0; jSetIntegral(integral); - if(minEnergyActive) p->SetMinKinEnergy(minKinEnergy); - if(maxEnergyActive) p->SetMaxKinEnergy(maxKinEnergy); + if(!lossFluctuationFlag) p->SetLossFluctuations(false); + if(subCutoffFlag) p->SetSubCutoff(true); + if(rndmStepFlag) p->SetRandomStep(true); + if(stepFunctionActive) p->SetStepFunction(maxRangeVariation, maxFinalStep); + if(integralActive) p->SetIntegral(integral); + if(minEnergyActive) p->SetMinKinEnergy(minKinEnergy); + if(maxEnergyActive) p->SetMaxKinEnergy(maxKinEnergy); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo..... -void G4LossTableManager::DeRegister(G4VEnergyLossSTD* p) +void G4LossTableManager::DeRegister(G4VEnergyLossProcess* p) { for (G4int i=0; iGetProcessManager(); + if (pm->GetProcessActivation(loss_vector[i])) tables_are_built[i] = false; + else tables_are_built[i] = true; + } else { + tables_are_built[i] = true; + part_vector[i] = 0; + } + } + Initialise(); + } + if (first_entry) { first_entry = false; firstParticle = aParticle; } + return isNeeded; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::Initialise() +{ + for(G4int j=0; jParticle(); - if (!pd) { - pd = loss_vector[j]->GetProcessManager()->GetParticleType(); - loss_vector[j]->SetParticle(pd); - } - if(!tables_are_built[j]) all_tables_are_built = false; - if(pd != part_vector[j]) { - part_vector[j] = pd; - base_part_vector[j] = loss_vector[j]->BaseParticle(); - } - if(1 < verbose) { - G4String nm = "unknown"; - if(pd) nm = pd->GetParticleName(); - G4cout << "For " << loss_vector[j]->GetProcessName() - << " for " << nm - << " tables_are_built= " << tables_are_built[j] - << " procFlag= " << loss_vector[j]->TablesAreBuilt() - << " all_tables_are_built= " << all_tables_are_built - << G4endl; + if (loss_vector[j]) { + const G4ParticleDefinition* pd = loss_vector[j]->Particle(); + if (!pd) { + pd = loss_vector[j]->GetProcessManager()->GetParticleType(); + loss_vector[j]->SetParticle(pd); + } + if(!tables_are_built[j]) all_tables_are_built = false; + if(pd != part_vector[j]) { + part_vector[j] = pd; + base_part_vector[j] = loss_vector[j]->BaseParticle(); + } + if(0 < verbose) { + G4String nm = "unknown"; + if(pd) nm = pd->GetParticleName(); + G4cout << "For " << loss_vector[j]->GetProcessName() + << " for " << nm + << " tables_are_built= " << tables_are_built[j] + << " procFlag= " << loss_vector[j]->TablesAreBuilt() + << " all_tables_are_built= " << all_tables_are_built + << G4endl; + } } } - // All tables have to be rebuilt - if (all_tables_are_built && firstParticle == aParticle) { - for (G4int i=0; iGetParticleName() << G4endl; } - Initialise(aParticle); + if(aParticle == theElectron) { + if(!electron_table_are_built) { + eIonisation = BuildTables(theElectron); + electron_table_are_built = true; + for(G4int i=0; iSecondaryParticle() == theElectron && eIonisation ) { + em->SetSecondaryRangeTable(eIonisation->RangeTable()); + } + } + } - // identify all particles and built electron table - if(!electron_table_are_built) { - eIonisation = BuildTables(theElectron); - currentLoss = eIonisation; - currentParticle = theElectron; - electron_table_are_built = true; - } - - // If particle is not an electron - if(aParticle != theElectron) { + } else { for(G4int i=0; iInitialise(); em->SetDEDXTable(hIonisation->DEDXTable()); em->SetRangeTable(hIonisation->RangeTable()); @@ -299,22 +360,23 @@ void G4LossTableManager::BuildPhysicsTable(const G4ParticleDefinition* aParticle em->SetLambdaTable(hIonisation->LambdaTable()); em->SetSubLambdaTable(hIonisation->SubLambdaTable()); loss_map[part_vector[j]] = em; - if (em->SecondaryParticle() == theElectron) { + if (em->SecondaryParticle() == theElectron && eIonisation) { em->SetSecondaryRangeTable(eIonisation->RangeTable()); } if (0 < verbose) { G4cout << "For " << loss_vector[j]->GetProcessName() << " for " << part_vector[j]->GetParticleName() << " base_part= " << base_part_vector[j]->GetParticleName() - << " tables_are_built= " << G4endl; + << " tables are assigned " + << G4endl; } } } } else { - G4VEnergyLossSTD* em = loss_vector[i]; + G4VEnergyLossProcess* em = loss_vector[i]; for(G4int j=0; jInitialise(); em->SetDEDXTable(hIonisation->DEDXTable()); @@ -323,13 +385,13 @@ void G4LossTableManager::BuildPhysicsTable(const G4ParticleDefinition* aParticle em->SetLambdaTable(hIonisation->LambdaTable()); em->SetSubLambdaTable(hIonisation->SubLambdaTable()); loss_map[part_vector[i]] = em; - if (em->SecondaryParticle() == theElectron) + if (em->SecondaryParticle() == theElectron && eIonisation) em->SetSecondaryRangeTable(eIonisation->RangeTable()); if (0 < verbose) { G4cout << "For " << em->GetProcessName() << " for " << part_vector[i]->GetParticleName() << " base_part= " << base_part_vector[i]->GetParticleName() - << " tables_are_built= " << G4endl; + << " tables are assigned= " << G4endl; } break; } @@ -340,6 +402,7 @@ void G4LossTableManager::BuildPhysicsTable(const G4ParticleDefinition* aParticle } } + if(all_tables_are_built) return; all_tables_are_built = true; for (G4int ii=0; iiGetParticleName() + << "; all_tables_are_built= " << all_tables_are_built << G4endl; } - if (first_entry) Initialise(aParticle); - if (all_tables_are_built) return; + if(all_tables_are_built) return; G4bool hasRange = false; - for (G4int i=0; iRangeTable()) { if (part_vector[i] == theElectron) { eIonisation = theLoss; - currentLoss = theLoss; - currentParticle = theElectron; electron_table_are_built = true; } loss_map[part_vector[i]] = theLoss; @@ -387,17 +455,18 @@ void G4LossTableManager::RetrievePhysicsTables(const G4ParticleDefinition* aPart << G4endl; } } + if (electron_table_are_built && theLoss->SecondaryParticle() == theElectron) + theLoss->SetSecondaryRangeTable(eIonisation->RangeTable()); + break; } - if (electron_table_are_built && theLoss->SecondaryParticle() == theElectron) - theLoss->SetSecondaryRangeTable(eIonisation->RangeTable()); } if ( hasRange ) { for (G4int j=0; jInitialise(); + em->Initialise(); em->SetDEDXTable(theLoss->DEDXTable()); em->SetRangeTable(theLoss->RangeTable()); em->SetInverseRangeTable(theLoss->InverseRangeTable()); @@ -435,15 +504,21 @@ void G4LossTableManager::RetrievePhysicsTables(const G4ParticleDefinition* aPart } if(0 < verbose) { - G4cout << "G4LossTableManager::RetrievePhysicsTable: end; " + G4cout << "G4LossTableManager::RetrievePhysicsTable end: " << "all_tables_are_built= " << all_tables_are_built + << " i= " << i << " n_loss= " << n_loss << G4endl; } + if(all_tables_are_built) { + G4cout << "##### All dEdx and Range tables are retrieved #####" << G4endl; + } else if(isLast) { + G4Exception("G4LossTableManager ERROR: not all dEdx and Range tables are retrieved"); + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4VEnergyLossSTD* G4LossTableManager::BuildTables(const G4ParticleDefinition* aParticle) +G4VEnergyLossProcess* G4LossTableManager::BuildTables(const G4ParticleDefinition* aParticle) { if(0 < verbose) { G4cout << "G4LossTableManager::BuildTables() for " @@ -453,14 +528,14 @@ G4VEnergyLossSTD* G4LossTableManager::BuildTables(const G4ParticleDefinition* aP // Check is it new particle or all tables have to be rebuilt std::vector list; list.clear(); - std::vector loss_list; + std::vector loss_list; loss_list.clear(); - G4VEnergyLossSTD* em = 0; + G4VEnergyLossProcess* em = 0; G4int iem = 0; G4bool no_el = true; for (G4int i=0; iInitialise(); if(no_el && loss_vector[i]->SecondaryParticle() == theElectron) { em = loss_vector[i]; @@ -501,25 +576,31 @@ G4VEnergyLossSTD* G4LossTableManager::BuildTables(const G4ParticleDefinition* aP G4PhysicsTable* invrange = tableBuilder->BuildInverseRangeTable(dedx, range); em->SetInverseRangeTable(invrange); inv_range_vector[iem] = invrange; + + /* if(buildPreciseRange) { range->clearAndDestroy(); std::vector newlist; + newlist.clear(); for (G4int i=0; iBuildDEDXTableForPreciseRange()); } G4PhysicsTable* dedxForRange = newlist[0]; if (1 < n_dedx) dedxForRange = tableBuilder->BuildDEDXTable(newlist); - range = tableBuilder->BuildRangeTable(dedx); + range = tableBuilder->BuildRangeTable(dedxForRange); for(G4int j=0; jclearAndDestroy(); } + newlist.clear(); } + */ + em->SetRangeTable(range); range_vector[iem] = range; loss_map[aParticle] = em; for (G4int j=0; jSecondaryParticle() == theElectron) + if(loss_list[j]->SecondaryParticle() == theElectron && eIonisation) loss_list[j]->SetSecondaryRangeTable(eIonisation->RangeTable()); G4PhysicsTable* lambdaTable = loss_list[j]->BuildLambdaTable(); @@ -535,6 +616,8 @@ G4VEnergyLossSTD* G4LossTableManager::BuildTables(const G4ParticleDefinition* aP << "; ionisation process: " << em->GetProcessName() << G4endl; } + list.clear(); + loss_list.clear(); return em; } @@ -544,7 +627,7 @@ void G4LossTableManager::SetLossFluctuations(G4bool val) { lossFluctuationFlag = val; for(G4int i=0; iSetLossFluctuations(val); + if(loss_vector[i]) loss_vector[i]->SetLossFluctuations(val); } } @@ -554,7 +637,7 @@ void G4LossTableManager::SetSubCutoff(G4bool val) { subCutoffFlag = val; for(G4int i=0; iSetSubCutoff(val); + if(loss_vector[i]) loss_vector[i]->SetSubCutoff(val); } } @@ -565,7 +648,7 @@ void G4LossTableManager::SetIntegral(G4bool val) integral = val; integralActive = true; for(G4int i=0; iSetIntegral(val); + if(loss_vector[i]) loss_vector[i]->SetIntegral(val); } } @@ -575,7 +658,7 @@ void G4LossTableManager::SetMinSubRange(G4double val) { minSubRange = val; for(G4int i=0; iSetMinSubRange(val); + if(loss_vector[i]) loss_vector[i]->SetMinSubRange(val); } } @@ -585,7 +668,7 @@ void G4LossTableManager::SetRandomStep(G4bool val) { rndmStepFlag = val; for(G4int i=0; iSetRandomStep(val); + if(loss_vector[i]) loss_vector[i]->SetRandomStep(val); } } @@ -596,7 +679,15 @@ void G4LossTableManager::SetMinEnergy(G4double val) minEnergyActive = true; minKinEnergy = val; for(G4int i=0; iSetMinKinEnergy(val); + if(loss_vector[i]) loss_vector[i]->SetMinKinEnergy(val); + } + size_t msc = msc_vector.size(); + for (size_t j=0; jSetMinKinEnergy(val); + } + size_t emp = emp_vector.size(); + for (size_t k=0; kSetMinKinEnergy(val); } } @@ -607,7 +698,33 @@ void G4LossTableManager::SetMaxEnergy(G4double val) maxEnergyActive = true; maxKinEnergy = val; for(G4int i=0; iSetMaxKinEnergy(val); + if(loss_vector[i]) loss_vector[i]->SetMaxKinEnergy(val); + } + size_t msc = msc_vector.size(); + for (size_t j=0; jSetMaxKinEnergy(val); + } + size_t emp = emp_vector.size(); + for (size_t k=0; kSetMaxKinEnergy(val); + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetVerbose(G4int val) +{ + verbose = val; + for(G4int i=0; iSetVerboseLevel(val); + } + size_t msc = msc_vector.size(); + for (size_t j=0; jSetVerboseLevel(val); + } + size_t emp = emp_vector.size(); + for (size_t k=0; kSetVerboseLevel(val); } } @@ -615,10 +732,11 @@ void G4LossTableManager::SetMaxEnergy(G4double val) void G4LossTableManager::SetStepLimits(G4double v1, G4double v2) { + stepFunctionActive = true; maxRangeVariation = v1; maxFinalStep = v2; for(G4int i=0; iSetStepLimits(v1, v2); + if(loss_vector[i]) loss_vector[i]->SetStepFunction(v1, v2); } } @@ -629,6 +747,14 @@ void G4LossTableManager::SetBuildPreciseRange(G4bool val) buildPreciseRange = val; } +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4LossTableManager::SetParameters(G4VEnergyLossProcess* p) +{ + if(stepFunctionActive) p->SetStepFunction(maxRangeVariation, maxFinalStep); + if(integralActive) p->SetIntegral(integral); + if(minEnergyActive) p->SetMinKinEnergy(minKinEnergy); + if(maxEnergyActive) p->SetMaxKinEnergy(maxKinEnergy); +} + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - - diff --git a/source/processes/electromagnetic/utils/src/G4MscModel.cc b/source/processes/electromagnetic/utils/src/G4MscModel.cc index a54fd7c53f..972ac53c25 100644 --- a/source/processes/electromagnetic/utils/src/G4MscModel.cc +++ b/source/processes/electromagnetic/utils/src/G4MscModel.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4MscModel.cc,v 1.13 2003/11/26 10:01:13 urban Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -41,9 +43,15 @@ // (L.Urban) // 30-05-03 misprint in SampleCosineTheta corrected(L.Urban) // 27-03-03 Rename (V.Ivanchenko) -// 04-06-03 Fix compilation warnings (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) // Class Description: // @@ -65,22 +73,25 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4MscModel::G4MscModel(G4double& m_dtrl, G4double& m_NuclCorrPar, - G4double& m_FactPar, G4double& m_facxsi, +G4MscModel::G4MscModel(G4double& m_dtrl, G4double& m_NuclCorrPar, + G4double& m_FactPar, G4double& m_facxsi, G4bool& m_samplez, const G4String& nam) : G4VEmModel(nam), - highKinEnergy(10.0*TeV), - lowKinEnergy(0.1*keV), taubig(8.0), - tausmall(1.e-14), - taulim(1.e-5), + tausmall(1.e-20), + taulim(1.e-6), dtrl(m_dtrl), NuclCorrPar (m_NuclCorrPar), FactPar(m_FactPar), facxsi(m_facxsi), - samplez(m_samplez), - stepmin(1.e-6*mm) -{} + samplez(m_samplez) +{ + highKinEnergy = 100.0*TeV; + lowKinEnergy = 0.1*keV; + stepmin = 1.e-6*mm; + currentRange = 0. ; + +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... @@ -94,33 +105,14 @@ G4bool G4MscModel::IsInCharge(const G4ParticleDefinition* p) { return (p->GetPDGCharge() != 0.0); } - //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... void G4MscModel::Initialise(const G4ParticleDefinition* p, const G4DataVector&) { // set values of some data members - if((p->GetParticleName() == "e-") || (p->GetParticleName() == "e+")) - { - // parameters for e+/e- - alfa1 = 1.45 ; - alfa2 = 0.60 ; - alfa3 = 0.30 ; - b = 1. ; - xsi = facxsi*2.22 ; - c0 = 2.30 ; - } - else - { - // parameters for heavy particles - alfa1 = 1.10 ; - alfa2 = 0.14 ; - alfa3 = 0.07 ; - b = 1. ; - xsi = facxsi*2.70 ; - c0 = 1.40 ; - } + xsi = facxsi*2.8215 ; + b = 1. ; sigmafactor = twopi*classic_electr_radius*classic_electr_radius; particle = p; mass = particle->GetPDGMass(); @@ -129,12 +121,13 @@ void G4MscModel::Initialise(const G4ParticleDefinition* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4MscModel::CrossSection(const G4Material* material, +G4double G4MscModel::CrossSection(const G4MaterialCutsCouple* couple, const G4ParticleDefinition* p, G4double kineticEnergy, G4double, G4double) { + const G4Material* material = couple->GetMaterial(); const G4ElementVector* theElementVector = material->GetElementVector(); const G4double* NbOfAtomsPerVolume = material->GetVecNbOfAtomsPerVolume(); G4int NumberOfElements = material->GetNumberOfElements(); @@ -150,7 +143,6 @@ G4double G4MscModel::CrossSection(const G4Material* material, kineticEnergy,atomicNumber,atomicWeight); } sigma *= sigmafactor; - // Calculate lambda if ( sigma > 0.0) sigma = 1.0/sigma; else sigma = DBL_MAX; @@ -181,7 +173,6 @@ G4double G4MscModel::ComputeTransportCrossSection( 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, @@ -225,7 +216,6 @@ G4double G4MscModel::ComputeTransportCrossSection( {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 }, - // {45.60,47.34,15.92,7.810,5.755,3.767,2.760,2.239, // paper..... {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 }}; @@ -326,7 +316,7 @@ G4double G4MscModel::ComputeTransportCrossSection( if ( x0 < -1. || eKineticEnergy <= 10.*MeV) { x0 = -1.; - corrnuclsize = 1.; + corrnuclsize = 1.; } else { @@ -364,7 +354,6 @@ G4double G4MscModel::ComputeTransportCrossSection( 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.) { @@ -408,22 +397,22 @@ G4double G4MscModel::ComputeTransportCrossSection( G4double G4MscModel::GeomPathLength( G4PhysicsTable* theLambdaTable, const G4MaterialCutsCouple* couple, - const G4ParticleDefinition* theParticle, - G4double& T0, - G4double lambda, - G4double range, - G4double truePathLength) + const G4ParticleDefinition* theParticle, + G4double& T0, + G4double lambda, + G4double range, + G4double truePathLength) { // do the true -> geom transformation - const G4double ztmin = 1./3., ztmax = 0.98 ; + const G4double ztmax = 101./103. ; if (theParticle != particle ) { particle = theParticle; mass = particle->GetPDGMass(); charge = particle->GetPDGCharge()/eplus; } currentKinEnergy = T0; - const G4Material* material = couple->GetMaterial(); - currentRadLength = material->GetRadlen(); + currentRange = range ; + currentRadLength = couple->GetMaterial()->GetRadlen(); lambda0 = lambda; lambda1 = -1.; @@ -432,15 +421,20 @@ G4double G4MscModel::GeomPathLength( zm = 1.; cthm = 1.; 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 { G4LossTableManager* theManager = G4LossTableManager::Instance(); G4double T1 = theManager->GetEnergy(particle,range-tPathLength,couple); @@ -449,8 +443,9 @@ G4double G4MscModel::GeomPathLength( G4bool bb; lambda1 = ((*theLambdaTable)[couple->GetIndex()])->GetValue(T1,bb); } else { - lambda1 = CrossSection(material,particle,T1,0.0,1.0); + lambda1 = CrossSection(couple,particle,T1,0.0,1.0); } + if (T0 > particle->GetPDGMass()) alam = lambda0*tPathLength/(lambda0-lambda1) ; G4double blam = 1.+alam/lambda0 ; if (tPathLength < 2.*dtrl*range) { @@ -468,19 +463,16 @@ G4double G4MscModel::GeomPathLength( // sample z G4double zPathLength = zmean ; G4double zt = zmean/tPathLength ; - if (tPathLength >= stepmin && samplez && zt > ztmin && zt < ztmax) { + 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 ; - G4double grej0 = exp(cz*log(u0))*(1.-u0) ; do { u = exp(log(G4UniformRand())/cz1) ; - grej = exp(cz*log(u))*(1.-u) ; - if (grej > grej0) - G4cout << "G4MscModel: Warning! majorant " - << grej0 << " < " << grej << G4endl; - } while (grej < grej0*G4UniformRand()) ; + grej = exp(cz*log(u/u0))*(1.-u)/(1.-u0) ; + } while (grej < G4UniformRand()) ; zPathLength = tPathLength*u ; } @@ -492,6 +484,7 @@ G4double G4MscModel::GeomPathLength( G4double G4MscModel::TrueStepLength(G4double geomStepLength) { G4double trueLength = geomStepLength; + trueLength = geomStepLength; if (geomStepLength > lambda0*tausmall) { G4double blam = 1.+alam/lambda0; if (lambda1 < 0.) { @@ -502,23 +495,20 @@ G4double G4MscModel::TrueStepLength(G4double geomStepLength) trueLength = alam*(1.-exp(log(1.-blam*geomStepLength/alam)/blam)); else trueLength = tPathLength; - } else { if (geomStepLength <= zm) { - // ??? here is a problems - redefine variable lambdam = -1.; - if(blam*geomStepLength < alam ) + if(blam*geomStepLength < alam ) trueLength = alam*(1.-exp(log(1.-blam*geomStepLength/alam)/blam)); else trueLength = 0.5*tPathLength; - } else { G4double clam = 1.+alam/lambdam; if(clam*(geomStepLength-zm)/(alam*cthm) < 1.) trueLength = 0.5*tPathLength + alam*(1.- - exp(log(1.-clam*(geomStepLength-zm)/(alam*cthm)))/clam) ; + exp(log(1.-clam*(geomStepLength-zm)/(alam*cthm))/clam)) ; else trueLength = tPathLength; } @@ -527,6 +517,8 @@ G4double G4MscModel::TrueStepLength(G4double geomStepLength) if(trueLength < geomStepLength) trueLength = geomStepLength; } + if(trueLength > currentRange) trueLength = currentRange ; + return trueLength; } @@ -534,9 +526,9 @@ G4double G4MscModel::TrueStepLength(G4double geomStepLength) G4double G4MscModel::SampleCosineTheta(G4double trueStepLength) { - G4double cth = 1.; + G4double cth = 1. ; + currentTau = trueStepLength/lambda0; - // G4cout << "tau= " << currentTau << G4endl; if(trueStepLength < stepmin) cth = exp(-currentTau) ; else @@ -555,129 +547,142 @@ G4double G4MscModel::SampleCosineTheta(G4double trueStepLength) if(currentTau > taubig) cth = -1.+2.*G4UniformRand(); else { - const G4double amax = 25. ; - const G4double tau0 = 0.02 ; const G4double c_highland = 13.6*MeV, corr_highland=0.038 ; + G4double a ; + + // for all particles take the width of the central part + // from the Highland formula + // (Particle Physics Booklet, July 2002, eq. 26.10) + G4double Q = abs(charge) ; + G4double xx0 = trueStepLength/currentRadLength; + G4double betacp = currentKinEnergy*(currentKinEnergy+2.*mass)/ + (currentKinEnergy+mass) ; + G4double theta0 = c_highland*Q*sqrt(xx0)* + (1.+corr_highland*log(xx0))/betacp ; + G4double beta=sqrt(currentKinEnergy*(currentKinEnergy+2.*mass))/ + (currentKinEnergy+mass) ; + + // corr to Highland for small thickness (t/X0) + const G4double xx0lim1=1.e-3,xx0lim2=0.055, + corr1=0.88, corr2=-0.03 ; + G4double corr = 1. ; + if(xx0 < xx0lim2) + { + corr = corr1/(1.+corr2*log(xx0/xx0lim1)) ; + theta0 *= corr ; + } + + + // corr to Highland for nonrelativistic particles + const G4double blim = 0.400, corr3 = 1.733 , + corr4 = 1.+blim*corr3 ; + G4double corrbeta = 1. ; + if(beta < blim) + { + corrbeta = corr4/(1.+beta*corr3) ; + theta0 *= corrbeta ; + } + + if (theta0 > taulim) a = 0.5/(1.-cos(theta0)) ; + else a = 1.0/(theta0*theta0) ; + + + G4double xmeanth = exp(-currentTau); + G4double xmeanth1 = 1.-xmeanth ; + if(currentTau < taulim) xmeanth1 = currentTau ; + const G4double x1fac1 = exp(-xsi) ; const G4double x1fac2 = (1.-(1.+xsi)*x1fac1)/(1.-x1fac1) ; const G4double x1fac3 = 1.3 ; // x1fac3 >= 1. !!!!!!!!! - G4double a; - - // for heavy particles take the width of the cetral part - // from the Highland formula - // (Particle Physics Booklet, July 2002, eq. 26.10) - if(mass > electron_mass_c2) // + other conditions (beta, x/X0,...?) - { - G4double Q = abs(charge) ; - G4double xx0 = trueStepLength/currentRadLength; - G4double betacp = currentKinEnergy*(currentKinEnergy+2.*mass)/ - (currentKinEnergy+mass) ; - G4double theta0 = c_highland*Q*sqrt(xx0)* - (1.+corr_highland*log(xx0))/betacp ; - - if (theta0 > tausmall) a = 0.5/(1.-cos(theta0)) ; - else a = 1.0/(theta0*theta0) ; - - } - else - { - G4double w = log(currentTau/tau0) ; - if (currentTau < tau0) a = (alfa1-alfa2*w)/currentTau ; - else a = (alfa1+alfa3*w)/currentTau ; - } - - G4double xmeanth = exp(-currentTau); - - G4double xmean1,xmean2,eaa,b1,bx,ebx,eb1,c,qprob,prob; - + G4double ea,eaa,xmean1 ; + G4double b1 = 2., bx = 2., c = 1., c1 = 0., + eb1 = 0., ebx = 0., xmean2 = 0. ; + G4double prob = 1., qprob ; G4double x0 = 1.-xsi/a; - G4double ea = 0.; + G4double oneminusx0=xsi/a ; + G4double oneplusx0=2.+xsi/a ; - if (x0 <= -1.) - { - // 1 model fuction only + + if (x0 <= -1.) + { + // 2 model fuctions only // in order to have xmean1 > xmeanth -> qprob < 1 x0 = -1.; - if( a < 1./(1.-xmeanth)) a = 1./(1.-xmeanth) ; - - if(a*(1.-x0) < amax) ea = exp(-a*(1.-x0)); - + if( a < 1./xmeanth1) + a = 1./xmeanth1 ; + + oneminusx0 = 1.-x0 ; + oneplusx0 = 1.+x0 ; + ea = exp(-a*oneminusx0); eaa = 1.-ea ; - xmean1 = 1.-1./a+(1.-x0)*ea/eaa ; - - c = 2. ; - b1 = b+1. ; - bx = b1 ; - eb1 = b1 ; - ebx = b1 ; - xmean2 = 0. ; - - prob = 1. ; + xmean1 = 1.-1./a+oneminusx0*ea/eaa ; qprob = xmeanth/xmean1 ; + } else { - // 2 model fuctions + // 3 model fuctions // in order to have xmean1 > xmeanth if((1.-x1fac2/a) < xmeanth) { - a = x1fac3*x1fac2/(1.-xmeanth) ; + a = x1fac3*x1fac2/xmeanth1 ; + x0 = 1.-xsi/a ; + oneminusx0=xsi/a ; + oneplusx0=2.+xsi/a ; + } - if(a*(1.-x0) < amax) ea = exp(-a*(1.-x0)); + ea = x1fac1 ; + eaa = 1.-ea ; + xmean1 = 1.-x1fac2/a ; - eaa = 1.-ea ; - xmean1 = 1.-1./a+(1.-x0)*ea/eaa ; + b = xmean1 ; + b1 = b+1. ; + bx = (xsi/eaa-1.)/a ; + + // c from continuity of the 1st derivative + c = xsi/eaa-1. ; + if(c == 2.) + { + xmean2 = b-b1*bx*log(b1/bx)/oneplusx0 ; } else { - ea = x1fac1 ; - eaa = 1.-ea ; - xmean1 = 1.-x1fac2/a ; + c1 = c-1. ; + eb1 = exp(c1*log(b1)) ; + ebx = exp(c1*log(bx)) ; + xmean2 = ((b1*ebx-eb1*bx)/(c-2.)+ebx+x0*eb1)/(eb1-ebx) ; } - // from continuity of the 1st derivatives - c = a*(b-x0); - if(a*currentTau < c0) c = c0*(b-x0)/currentTau ; - - if(c == 1.) c=1.000001 ; - if(c == 2.) c=2.000001 ; - if(c == 3.) c=3.000001 ; - - b1 = b+1. ; - bx=b-x0 ; - eb1=exp((c-1.)*log(b1)) ; - ebx=exp((c-1.)*log(bx)) ; - xmean2 = (x0*eb1+ebx+(eb1*bx-b1*ebx)/(2.-c))/(eb1-ebx) ; - - G4double cnorm1 = a/eaa ; - G4double f1x0 = cnorm1*exp(-a*(1.-x0)) ; - G4double cnorm2 = (c-1.)*eb1*ebx/(eb1-ebx) ; - G4double f2x0 = cnorm2/exp(c*log(b-x0)) ; - + G4double f1x0 = a*ea/eaa ; + G4double f2x0 ; + if(c == 2.) + f2x0 = b1/(oneplusx0*bx) ; + else + f2x0 = c1*eb1/(bx*(eb1-ebx)) ; // from continuity at x=x0 prob = f2x0/(f1x0+f2x0) ; // from xmean = xmeanth qprob = (f1x0+f2x0)*xmeanth/(f2x0*xmean1+f1x0*xmean2) ; } - - // protection against prob or qprob > 1 and - // prob or qprob < 0 - if((qprob > 1.) || (qprob < 0.) || (prob > 1.) || (prob < 0.)) - { - qprob = 1. ; - prob = (xmeanth-xmean2)/(xmean1-xmean2); - } + // protection against qprob > 1 + if(qprob > 1.) qprob = 1. ; + // 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.)) ; + { + if(c == 2.) + cth = b-b1*bx/(bx+oneplusx0*G4UniformRand()) ; + else + cth = b-b1*bx/exp(log(ebx+(eb1-ebx)*G4UniformRand())/c1) ; + } } else { @@ -685,11 +690,10 @@ G4double G4MscModel::SampleCosineTheta(G4double trueStepLength) } } } - } - //G4cout << "cth= " << cth << G4endl; - return cth; -} + } + return cth ; +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... G4double G4MscModel::SampleDisplacement() @@ -708,14 +712,15 @@ G4double G4MscModel::SampleDisplacement() rmean = -kappa*currentTau; rmean = -exp(rmean)/(kappa*kappami1); rmean += currentTau-kappapl1/kappa+kappa*etau/kappami1; - // G4cout << "tau= " << currentTau << " lambda0= " << lambda0 << " etau= " << etau << " kappa= " << kappa << G4endl; } if (rmean>0.) rmean = 2.*lambda0*sqrt(rmean/3.0); else rmean = 0.; - // G4cout << "rmean= " << rmean << G4endl; } return rmean; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + + + diff --git a/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc b/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc index bcaac4b861..d1598c3bfa 100644 --- a/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc +++ b/source/processes/electromagnetic/utils/src/G4MultipleScattering.cc @@ -20,14 +20,13 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// $Id: G4MultipleScattering.cc,v 1.42 2003/05/30 06:40:25 urban Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MultipleScattering.cc,v 1.46 2003/11/12 16:11:56 urban Exp $ +// GEANT4 tag $Name: geant4-06-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) +// 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) @@ -41,6 +40,8 @@ // 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 @@ -51,977 +52,127 @@ // 15-10-02 temporary fix for proton scattering // 30-10-02 modified angle distribution,mods in boundary algorithm, // changes in data members, L.Urban -// 30-10-02 rename variable cm - Ecm, V.Ivanchenko // 11-12-02 precision problem in ComputeTransportCrossSection -// for small Tkin/for heavy particles cured, L.Urban +// 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 -// 17-03-03 cut per region, V.Ivanchenko -// 13-04-03 add initialisation in GetContinuesStepLimit -// + change table size (V.Ivanchenko) -// 26-04-03 fix problems of retrieve tables (M.Asai) -// 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) -// 24-05-03 bug in nuclear size corr.computation fixed thanks to Vladimir(L.Urban) -// 30-05-03 misprint in PostStepDoIt corrected(L.Urban) +// 28-03-03 Move to model design (V.Ivanchenko) +// 08-08-03 STD substitute standard (V.Ivanchenko) +// // ----------------------------------------------------------------------------- // //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... #include "G4MultipleScattering.hh" -#include "G4StepStatus.hh" -#include "G4Navigator.hh" -#include "G4TransportationManager.hh" -#include "Randomize.hh" -#include "G4ProductionCutsTable.hh" +#include "G4MscModel.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4MultipleScattering::G4MultipleScattering(const G4String& processName) - : G4VContinuousDiscreteProcess(processName), - theTransportMeanFreePathTable(0), - taubig(8.0),tausmall(1.e-14),taulim(1.e-5), - LowestKineticEnergy(0.1*keV), - HighestKineticEnergy(100.*TeV), - TotBin(100), - materialIndex(0), - tLast (0.0), - zLast (0.0), - boundary(true), - facrange(0.199),tlimit(1.e10*mm),tlimitmin(1.e-7*mm), - cf(1.001), - stepno(0),stepnolastmsc(-1000000),nsmallstep(5), - laststep(0.), - valueGPILSelectionMSC(NotCandidateForSelection), - zmean(0.),samplez(true), - range(1.),T0(1.),T1(1.),lambda0(1.),lambda1(-1.), - Tlow(0.),alam(1.),blam(1.),dtrl(0.15), - lambdam(-1.),clam(1.),zm(1.),cthm(1.), - fLatDisplFlag(true), + : G4VMultipleScattering(processName), + totBins(120), + facrange(0.199), + dtrl(0.15), NuclCorrPar (0.0615), FactPar(0.40), - facxsi(1.) - { } + facxsi(1.0), + cf(1.001), + stepnolastmsc(-1000000), + nsmallstep(5) +{ + 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...... G4MultipleScattering::~G4MultipleScattering() +{} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScattering::InitialiseProcess(const G4ParticleDefinition& particle) { - if(theTransportMeanFreePathTable) - { - theTransportMeanFreePathTable->clearAndDestroy(); - delete theTransportMeanFreePathTable; - } + if (particle.GetParticleType() == "nucleus") { + SetBoundary(false); + SetLateralDisplasmentFlag(false); + SetBuildLambdaTable(false); + Setsamplez(false) ; + } else { + SetBoundary(true); + SetLateralDisplasmentFlag(true); + SetBuildLambdaTable(true); + Setsamplez(true) ; + } + G4MscModel* em = new G4MscModel(dtrl,NuclCorrPar,FactPar,facxsi,samplez); + em->SetLowEnergyLimit(lowKineticEnergy); + em->SetHighEnergyLimit(highKineticEnergy); + AddEmModel(1, em); + boundary = BoundaryAlgorithmFlag(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -void G4MultipleScattering::BuildPhysicsTable( - const G4ParticleDefinition& aParticleType) +G4double G4MultipleScattering::TruePathLengthLimit(const G4Track& track, + G4double& lambda, + G4double currentMinimalStep) { - // set values of some data members - if((aParticleType.GetParticleName() == "e-") || - (aParticleType.GetParticleName() == "e+")) - { - // parameters for e+/e- - alfa1 = 1.45 ; - alfa2 = 0.60 ; - alfa3 = 0.30 ; - b = 1. ; - xsi = facxsi*2.22 ; - c0 = 2.30 ; - } - else - { - // parameters for heavy particles - alfa1 = 1.10 ; - alfa2 = 0.14 ; - alfa3 = 0.07 ; - b = 1. ; - xsi = facxsi*2.70 ; - c0 = 1.40 ; - } - // .............................. - Tlow = aParticleType.GetPDGMass(); - - // tables are built for MATERIALS - const G4double sigmafactor = twopi*classic_electr_radius* - classic_electr_radius; - G4double KineticEnergy,AtomicNumber,AtomicWeight,sigma,lambda; - G4double density; - - // destroy old tables if any - if (theTransportMeanFreePathTable) - { - theTransportMeanFreePathTable->clearAndDestroy(); - delete theTransportMeanFreePathTable; - } - - // create table - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - theTransportMeanFreePathTable = new G4PhysicsTable(numOfCouples); - - // loop for materials - for (size_t i=0; i - GetMaterialCutsCouple(i); - const G4Material* material = couple->GetMaterial(); - const G4ElementVector* theElementVector = material->GetElementVector(); - const G4double* NbOfAtomsPerVolume = - material->GetVecNbOfAtomsPerVolume(); - const G4int NumberOfElements = material->GetNumberOfElements(); - density = material->GetDensity(); - - // loop for kinetic energy values - for (G4int i=0; iGetLowEdgeEnergy(i); - sigma = 0.; - - // loop for element in the material - for (G4int iel=0; ielGetZ(); - AtomicWeight = (*theElementVector)[iel]->GetA(); - sigma += NbOfAtomsPerVolume[iel]* - ComputeTransportCrossSection(aParticleType,KineticEnergy, - AtomicNumber,AtomicWeight); - } - sigma *= sigmafactor; - lambda = 1./sigma; - aVector->PutValue(i,lambda); - } - - theTransportMeanFreePathTable->insert(aVector); - - } - - if((aParticleType.GetParticleName() == "e-" ) || - (aParticleType.GetParticleName() == "mu+" ) || - (aParticleType.GetParticleName() == "proton") ) PrintInfoDefinition(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MultipleScattering::ComputeTransportCrossSection( - const G4ParticleDefinition& aParticleType, - 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 }, - // {45.60,47.34,15.92,7.810,5.755,3.767,2.760,2.239, // paper..... - {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; - G4double Z23 = 2.*log(AtomicNumber)/3.; Z23 = exp(Z23); - - G4double ParticleMass = aParticleType.GetPDGMass(); - G4double ParticleKineticEnergy = KineticEnergy ; - - // correction if particle .ne. e-/e+ - // compute equivalent kinetic energy - // lambda depends on p*beta .... - G4double Mass = ParticleMass ; - if((aParticleType.GetParticleName() != "e-") && - (aParticleType.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)) ; - KineticEnergy = electron_mass_c2*tau ; - Mass = electron_mass_c2 ; - } - - G4double Charge = aParticleType.GetPDGCharge(); - G4double ChargeSquare = Charge*Charge/(eplus*eplus); - - G4double TotalEnergy = KineticEnergy + Mass ; - G4double beta2 = KineticEnergy*(TotalEnergy+Mass) - /(TotalEnergy*TotalEnergy); - G4double bg2 = KineticEnergy*(TotalEnergy+Mass) - /(Mass*Mass); - - 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*ParticleMass/ParticleKineticEnergy)* - (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]>=KineticEnergy)) 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((aParticleType.GetParticleName() != "e-") && - (aParticleType.GetParticleName() != "e+") ) - sigma /= corrnuclsize; - - return sigma; - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MultipleScattering::GetContinuousStepLimit( - const G4Track& track, - G4double, - G4double currentMinimumStep, - G4double&) -{ - G4double zPathLength,tPathLength; - const G4DynamicParticle* aParticle; - G4double tau,zt,cz,cz1,grej,grej0; - const G4double expmax = 100., ztmax = (2.*expmax+1.)/(2.*expmax+3.) ; - const G4double tmax = 1.e20*mm ; - - G4bool isOut; - - // this process is not a candidate for selection by default - valueGPILSelectionMSC = NotCandidateForSelection; - - tPathLength = currentMinimumStep; - - const G4MaterialCutsCouple* couple = track.GetMaterialCutsCouple(); - materialIndex = couple->GetIndex(); - - aParticle = track.GetDynamicParticle(); - T0 = aParticle->GetKineticEnergy(); - - lambda0 = (*theTransportMeanFreePathTable) - (materialIndex)->GetValue(T0,isOut); - - - range = G4EnergyLossTables::GetRange(aParticle->GetDefinition(), - T0,couple); - //VI Initialisation at the beginning of the step - cthm = 1.; - lambda1 = -1.; - lambdam = -1.; - alam = range; - blam = 1.+alam/lambda0 ; - zm = 1.; + G4double tPathLength = currentMinimalStep; // special treatment near boundaries ? - if (boundary && range >= currentMinimumStep) - { - // step limitation at boundary ? - stepno = track.GetCurrentStepNumber() ; - if(stepno == 1) - { + if (boundary) { + + G4int stepno = track.GetCurrentStepNumber() ; + // first step + if (stepno == 1) { stepnolastmsc = -1000000 ; - tlimit = 1.e10 ; - } + tlimit = 1.e10; + } else if (stepno > 1) { - if(stepno > 1) - { - if(track.GetStep()->GetPreStepPoint()->GetStepStatus() == fGeomBoundary) - { - stepnolastmsc = stepno ; + if (track.GetStep()->GetPreStepPoint()->GetStepStatus() == fGeomBoundary) { + + stepnolastmsc = stepno; // if : diff.treatment for small/not small Z - if(range > lambda0) - tlimit = facrange*range ; - else - tlimit = facrange*lambda0 ; - if(tlimit < tlimitmin) tlimit = tlimitmin ; - laststep = tlimit ; - if(tPathLength > tlimit) - { - tPathLength = tlimit ; - valueGPILSelectionMSC = CandidateForSelection; - } - } - else if(stepno > stepnolastmsc) - { - if((stepno - stepnolastmsc) < nsmallstep) - { - if(tPathLength > tlimit) - { - laststep *= cf ; - tPathLength = laststep ; - valueGPILSelectionMSC = CandidateForSelection; - } - } + 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; } } } - // do the true -> geom transformation - zmean = tPathLength; - - tau = tPathLength/lambda0 ; - - if (tau < tausmall || range < currentMinimumStep) zPathLength = tPathLength; - else - { - if(tPathLength/range < dtrl) zmean = lambda0*(1.-exp(-tau)); - else - { - T1 = G4EnergyLossTables::GetPreciseEnergyFromRange( - aParticle->GetDefinition(),range-tPathLength,couple); - lambda1 = (*theTransportMeanFreePathTable) - (materialIndex)->GetValue(T1,isOut); - if(T0 < Tlow) - alam = range ; - else - alam = lambda0*tPathLength/(lambda0-lambda1) ; - blam = 1.+alam/lambda0 ; - if(tPathLength/range < 2.*dtrl) - { - zmean = alam*(1.-exp(blam*log(1.-tPathLength/alam)))/blam ; - lambdam = -1. ; - } - else - { - G4double w = 1.-0.5*tPathLength/alam ; - lambdam = lambda0*w ; - clam = 1.+alam/lambdam ; - cthm = exp(alam*log(w)/lambda0) ; - zm = alam*(1.-exp(blam*log(w)))/blam ; - zmean = zm + alam*(1.-exp(clam*log(w)))*cthm/clam ; - } - } - - // sample z - zt = zmean/tPathLength ; - if (samplez && (zt < ztmax) && (zt > 0.5)) - { - cz = 0.5*(3.*zt-1.)/(1.-zt) ; - if(tPathLength < exp(log(tmax)/(2.*cz))) - { - cz1 = 1.+cz ; - grej0 = exp(cz1*log(cz*tPathLength/cz1))/cz ; - do - { - zPathLength = tPathLength*exp(log(G4UniformRand())/cz1) ; - grej = exp(cz*log(zPathLength))*(tPathLength-zPathLength)/grej0 ; - } while (grej < G4UniformRand()) ; - } - else zPathLength = zmean; - } - else zPathLength = zmean; - } - // protection against z > lambda - if(zPathLength > lambda0) - zPathLength = lambda0 ; - - tLast = tPathLength; - zLast = zPathLength; - - return zPathLength; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VParticleChange* G4MultipleScattering::AlongStepDoIt( - const G4Track& track,const G4Step& step) -{ - // only a geom path->true path transformation is performed - - fParticleChange.Initialize(track); - - G4double geomPathLength = step.GetStepLength(); - - G4double truePathLength = 0. ; - - //VI change order of if operators - if(geomPathLength == zLast) truePathLength = tLast; - else if(geomPathLength/lambda0 < tausmall) truePathLength = geomPathLength; - else - { - if(lambda1 < 0.) truePathLength = -lambda0*log(1.-geomPathLength/lambda0) ; - else if(lambdam < 0.) - { - if(blam*geomPathLength/alam < 1.) - truePathLength = alam*(1.-exp(log(1.-blam*geomPathLength/alam)/ - blam)) ; - else - truePathLength = tLast; - } - else - { - if(geomPathLength <= zm) - { - if(blam*geomPathLength/alam < 1.) - truePathLength = alam*(1.-exp(log(1.-blam*geomPathLength/alam)/ - blam)) ; - else - truePathLength = 0.5*tLast; - - lambdam = -1. ; - } - else - { - if(clam*(geomPathLength-zm)/(alam*cthm) < 1.) - truePathLength = 0.5*tLast + alam*(1.- - exp(log(1.-clam*(geomPathLength-zm)/(alam*cthm)))/clam) ; - else - truePathLength = tLast ; - } - } - // protection .... - if(truePathLength > tLast) - truePathLength = tLast ; - } - - //VI truePath length cannot be smaller than geomPathLength - if (truePathLength < geomPathLength) truePathLength = geomPathLength; - fParticleChange.SetTrueStepLength(truePathLength); - - return &fParticleChange; - -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4VParticleChange* G4MultipleScattering::PostStepDoIt( - const G4Track& trackData, - const G4Step& stepData) -{ - // angle distribution parameters - const G4double kappa = 2.5, kappapl1 = kappa+1., kappami1 = kappa-1. ; - - fParticleChange.Initialize(trackData); - G4double truestep = stepData.GetStepLength(); - - const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); - G4double KineticEnergy = aParticle->GetKineticEnergy(); - G4double Mass = aParticle->GetDefinition()->GetPDGMass() ; - - // do nothing for stopped particles ! - if(KineticEnergy > 0.) - { - // change direction first ( scattering ) - G4double cth = 1.0 ; - G4double tau = truestep/lambda0 ; - - if (tau < tausmall) cth = 1.; - else if(tau > taubig) cth = -1.+2.*G4UniformRand(); - else - { - if(lambda1 > 0.) - { - if(lambdam < 0.) - tau = -alam*log(1.-truestep/alam)/lambda0 ; - else - tau = -log(cthm)-alam*log(1.-(truestep-0.5*tLast)/alam)/lambdam ; - } - - if(tau > taubig) cth = -1.+2.*G4UniformRand(); - else - { - const G4double amax=25. ; - const G4double tau0 = 0.02 ; - const G4double c_highland = 13.6*MeV, corr_highland=0.038 ; - - const G4double x1fac1 = exp(-xsi) ; - const G4double x1fac2 = (1.-(1.+xsi)*x1fac1)/(1.-x1fac1) ; - const G4double x1fac3 = 1.3 ; // x1fac3 >= 1. !!!!!!!!! - - G4double a,x0,c,xmean1,xmean2, - xmeanth,prob,qprob ; - G4double ea,eaa,b1,bx,eb1,ebx,cnorm1,cnorm2,f1x0,f2x0,w ; - - // for heavy particles take the width of the cetral part - // from the Highland formula - // (Particle Physics Booklet, July 2002, eq. 26.10) - if(Mass > electron_mass_c2) // + other conditions (beta, x/X0,...?) - { - G4double Q = abs(aParticle->GetDefinition()->GetPDGCharge()) ; - G4double X0 = trackData.GetMaterialCutsCouple()-> - GetMaterial()->GetRadlen() ; - G4double xx0 = truestep/X0 ; - G4double betacp = KineticEnergy*(KineticEnergy+2.*Mass)/ - (KineticEnergy+Mass) ; - G4double theta0=c_highland*Q*sqrt(xx0)* - (1.+corr_highland*log(xx0))/betacp ; - if(theta0 > tausmall) - a = 0.5/(1.-cos(theta0)) ; - else - a = 1./(theta0*theta0) ; - } - else - { - w = log(tau/tau0) ; - if(tau < tau0) - a = (alfa1-alfa2*w)/tau ; - else - a = (alfa1+alfa3*w)/tau ; - } - - xmeanth = exp(-tau) ; - - x0 = 1.-xsi/a ; - if(x0 < -1.) x0 = -1. ; - - if(x0 == -1.) - { - // 1 model fuction only - // in order to have xmean1 > xmeanth -> qprob < 1 - if((1.-1./a) < xmeanth) - a = 1./(1.-xmeanth) ; - - if(a*(1.-x0) < amax) - ea = exp(-a*(1.-x0)) ; - else - ea = 0. ; - eaa = 1.-ea ; - xmean1 = 1.-1./a+(1.-x0)*ea/eaa ; - - c = 2. ; - b1 = b+1. ; - bx = b1 ; - eb1 = b1 ; - ebx = b1 ; - xmean2 = 0. ; - - prob = 1. ; - qprob = xmeanth/xmean1 ; - } - else - { - // 2 model fuctions - // in order to have xmean1 > xmeanth - if((1.-x1fac2/a) < xmeanth) - { - a = x1fac3*x1fac2/(1.-xmeanth) ; - if(a*(1.-x0) < amax) - ea = exp(-a*(1.-x0)) ; - else - ea = 0. ; - eaa = 1.-ea ; - xmean1 = 1.-1./a+(1.-x0)*ea/eaa ; - } - else - { - ea = x1fac1 ; - eaa = 1.-x1fac1 ; - xmean1 = 1.-x1fac2/a ; - } - - // from continuity of the 1st derivatives - c = a*(b-x0) ; - if(a*tau < c0) - c = c0*(b-x0)/tau ; - - if(c == 1.) c=1.000001 ; - if(c == 2.) c=2.000001 ; - if(c == 3.) c=3.000001 ; - - b1 = b+1. ; - bx=b-x0 ; - eb1=exp((c-1.)*log(b1)) ; - ebx=exp((c-1.)*log(bx)) ; - xmean2 = (x0*eb1+ebx+(eb1*bx-b1*ebx)/(2.-c))/(eb1-ebx) ; - - cnorm1 = a/eaa ; - f1x0 = cnorm1*exp(-a*(1.-x0)) ; - cnorm2 = (c-1.)*eb1*ebx/(eb1-ebx) ; - f2x0 = cnorm2/exp(c*log(b-x0)) ; - - // from continuity at x=x0 - prob = f2x0/(f1x0+f2x0) ; - // from xmean = xmeanth - qprob = (f1x0+f2x0)*xmeanth/(f2x0*xmean1+f1x0*xmean2) ; - } - - // protection against prob or qprob > 1 and - // prob or qprob < 0 - // *************************************************************** - if((qprob > 1.) || (qprob < 0.) || (prob > 1.) || (prob < 0.)) - { - // this print possibility has been left intentionally - // for debugging purposes .......................... - G4bool pr = false ; - // pr = true ; - if(pr) - { - const G4double prlim = 0.10 ; - if((abs((xmeanth-xmean2)/(xmean1-xmean2)-prob)/prob > prlim) || - ((xmeanth-xmean2)/(xmean1-xmean2) > 1.) || - ((xmeanth-xmean2)/(xmean1-xmean2) < 0.) ) - { - G4cout.precision(5) ; - G4cout << "\nparticle=" << aParticle->GetDefinition()-> - GetParticleName() << " in material " - << trackData.GetMaterialCutsCouple()-> - GetMaterial()->GetName() << " with kinetic energy " - << KineticEnergy << " MeV," << G4endl ; - G4cout << " step length=" - << truestep << " mm" << G4endl ; - G4cout << "p=" << prob << " q=" << qprob << " -----> " - << "p=" << (xmeanth-xmean2)/(xmean1-xmean2) - << " q=" << 1. << G4endl ; - } - } - qprob = 1. ; - prob = (xmeanth-xmean2)/(xmean1-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() ; - } - } - - G4double sth = sqrt(1.-cth*cth); - G4double phi = twopi*G4UniformRand(); - G4double dirx = sth*cos(phi), diry = sth*sin(phi), dirz = cth; - - G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); - - G4ThreeVector newDirection(dirx,diry,dirz); - newDirection.rotateUz(ParticleDirection); - fParticleChange.SetMomentumChange(newDirection.x(), - newDirection.y(), - newDirection.z()); - - if (fLatDisplFlag) - { - // compute mean lateral displacement, only for safety > tolerance ! - G4double safetyminustolerance = stepData.GetPostStepPoint()->GetSafety(); - G4double rmean, etau; - - if (safetyminustolerance > 0.) - { - if (tau < tausmall) rmean = 0.; - else if(tau < taulim) rmean = kappa*tau*tau*tau*(1.-kappapl1*tau/4.)/6.; - else - { - if(tau0.) rmean = 2.*lambda0*sqrt(rmean/3.); - else rmean = 0.; - - // for rmean > 0) only - if (rmean > 0.) - { - if (rmean>safetyminustolerance) rmean = safetyminustolerance; - - // sample direction of lateral displacement - phi = twopi*G4UniformRand(); - dirx = cos(phi); diry = sin(phi); dirz = 0.; - - G4ThreeVector latDirection(dirx,diry,dirz); - latDirection.rotateUz(ParticleDirection); - - // compute new endpoint of the Step - G4ThreeVector newPosition = stepData.GetPostStepPoint()->GetPosition() - + rmean*latDirection; - - G4Navigator* navigator = - G4TransportationManager::GetTransportationManager() - ->GetNavigatorForTracking(); - navigator->LocateGlobalPointWithinVolume(newPosition); - - fParticleChange.SetPositionChange(newPosition); - } - } - } - } - - return &fParticleChange; -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - - G4bool G4MultipleScattering::StorePhysicsTable(G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - G4String filename; - // store mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - if (!theTransportMeanFreePathTable->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 G4MultipleScattering::RetrievePhysicsTable( - G4ParticleDefinition* particle, - const G4String& directory, - G4bool ascii) -{ - // set values of some data members - G4String name = particle->GetParticleName(); - if(name == "e-" || name == "e+") - { - // parameters for e+/e- - alfa1 = 1.45 ; - alfa2 = 0.60 ; - alfa3 = 0.30 ; - b = 1. ; - xsi = facxsi*2.22 ; - c0 = 2.30 ; - } - else - { - // parameters for heavy particles - alfa1 = 1.10 ; - alfa2 = 0.14 ; - alfa3 = 0.07 ; - b = 1. ; - xsi = facxsi*2.70 ; - c0 = 1.40 ; - } - - // .............................. - Tlow = particle->GetPDGMass(); - - // delete theTransportMeanFreePathTable - if (theTransportMeanFreePathTable != 0) { - theTransportMeanFreePathTable->clearAndDestroy(); - delete theTransportMeanFreePathTable; - } - - G4String filename; - - // retreive mean free path table - filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); - theTransportMeanFreePathTable = - new G4PhysicsTable(G4Material::GetNumberOfMaterials()); - if (!theTransportMeanFreePathTable->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; - - if (name == "e-" || name == "mu+" || name == "proton") PrintInfoDefinition(); - - return true; + return tPathLength; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... void G4MultipleScattering::PrintInfoDefinition() { - G4String comments = " Tables of transport mean free paths."; - comments += "\n New model of MSC , computes the lateral \n"; - comments += " displacement of the particle , too."; - - G4cout << G4endl << GetProcessName() << ": " << comments - << "\n PhysicsTables from " - << G4BestUnit(LowestKineticEnergy ,"Energy") - << " to " << G4BestUnit(HighestKineticEnergy,"Energy") - << " in " << TotBin << " bins. \n"; + G4VMultipleScattering::PrintInfoDefinition(); + if(boundary) { + G4cout << " Boundary algorithm is active with facrange= " + << facrange + << G4endl; + } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + diff --git a/source/processes/electromagnetic/utils/src/G4MultipleScattering52.cc b/source/processes/electromagnetic/utils/src/G4MultipleScattering52.cc new file mode 100644 index 0000000000..d58ea412cc --- /dev/null +++ b/source/processes/electromagnetic/utils/src/G4MultipleScattering52.cc @@ -0,0 +1,1028 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4MultipleScattering52.cc,v 1.1 2003/08/08 11:31:25 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-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 +// 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 +// 30-10-02 rename variable cm - Ecm, V.Ivanchenko +// 11-12-02 precision problem in ComputeTransportCrossSection +// for small Tkin/for heavy particles cured, L.Urban +// 05-02-03 changes in data members, new sampling for geom. +// path length, step dependence reduced with new +// method +// 17-03-03 cut per region, V.Ivanchenko +// 13-04-03 add initialisation in GetContinuesStepLimit +// + change table size (V.Ivanchenko) +// 26-04-03 fix problems of retrieve tables (M.Asai) +// 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) +// 24-05-03 bug in nuclear size corr.computation fixed thanks to Vladimir(L.Urban) +// 30-05-03 misprint in PostStepDoIt corrected(L.Urban) +// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko) +// ----------------------------------------------------------------------------- +// +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +#include "G4MultipleScattering52.hh" +#include "G4StepStatus.hh" +#include "G4Navigator.hh" +#include "G4TransportationManager.hh" +#include "Randomize.hh" +#include "G4ProductionCutsTable.hh" + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4MultipleScattering52::G4MultipleScattering52(const G4String& processName) + : G4VContinuousDiscreteProcess(processName), + theTransportMeanFreePathTable(0), + taubig(8.0),tausmall(1.e-14),taulim(1.e-5), + LowestKineticEnergy(0.1*keV), + HighestKineticEnergy(100.*TeV), + TotBin(100), + materialIndex(0), + tLast (0.0), + zLast (0.0), + boundary(true), + facrange(0.199),tlimit(1.e10*mm),tlimitmin(1.e-7*mm), + cf(1.001), + stepno(0),stepnolastmsc(-1000000),nsmallstep(5), + laststep(0.), + valueGPILSelectionMSC(NotCandidateForSelection), + zmean(0.),samplez(true), + range(1.),T0(1.),T1(1.),lambda0(1.),lambda1(-1.), + Tlow(0.),alam(1.),blam(1.),dtrl(0.15), + lambdam(-1.),clam(1.),zm(1.),cthm(1.), + fLatDisplFlag(true), + NuclCorrPar (0.0615), + FactPar(0.40), + facxsi(1.) + { } + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4MultipleScattering52::~G4MultipleScattering52() +{ + if(theTransportMeanFreePathTable) + { + theTransportMeanFreePathTable->clearAndDestroy(); + delete theTransportMeanFreePathTable; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScattering52::BuildPhysicsTable( + const G4ParticleDefinition& aParticleType) +{ + // set values of some data members + if((aParticleType.GetParticleName() == "e-") || + (aParticleType.GetParticleName() == "e+")) + { + // parameters for e+/e- + alfa1 = 1.45 ; + alfa2 = 0.60 ; + alfa3 = 0.30 ; + b = 1. ; + xsi = facxsi*2.22 ; + c0 = 2.30 ; + } + else + { + // parameters for heavy particles + alfa1 = 1.10 ; + alfa2 = 0.14 ; + alfa3 = 0.07 ; + b = 1. ; + xsi = facxsi*2.70 ; + c0 = 1.40 ; + } + + // .............................. + Tlow = aParticleType.GetPDGMass(); + + // tables are built for MATERIALS + const G4double sigmafactor = twopi*classic_electr_radius* + classic_electr_radius; + G4double KineticEnergy,AtomicNumber,AtomicWeight,sigma,lambda; + G4double density; + + // destroy old tables if any + if (theTransportMeanFreePathTable) + { + theTransportMeanFreePathTable->clearAndDestroy(); + delete theTransportMeanFreePathTable; + } + + // create table + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + theTransportMeanFreePathTable = new G4PhysicsTable(numOfCouples); + + // loop for materials + for (size_t i=0; i + GetMaterialCutsCouple(i); + const G4Material* material = couple->GetMaterial(); + const G4ElementVector* theElementVector = material->GetElementVector(); + const G4double* NbOfAtomsPerVolume = + material->GetVecNbOfAtomsPerVolume(); + const G4int NumberOfElements = material->GetNumberOfElements(); + density = material->GetDensity(); + + // loop for kinetic energy values + for (G4int i=0; iGetLowEdgeEnergy(i); + sigma = 0.; + + // loop for element in the material + for (G4int iel=0; ielGetZ(); + AtomicWeight = (*theElementVector)[iel]->GetA(); + sigma += NbOfAtomsPerVolume[iel]* + ComputeTransportCrossSection(aParticleType,KineticEnergy, + AtomicNumber,AtomicWeight); + } + sigma *= sigmafactor; + lambda = 1./sigma; + aVector->PutValue(i,lambda); + } + + theTransportMeanFreePathTable->insert(aVector); + + } + + if((aParticleType.GetParticleName() == "e-" ) || + (aParticleType.GetParticleName() == "mu+" ) || + (aParticleType.GetParticleName() == "proton") ) PrintInfoDefinition(); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MultipleScattering52::ComputeTransportCrossSection( + const G4ParticleDefinition& aParticleType, + 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 }, + // {45.60,47.34,15.92,7.810,5.755,3.767,2.760,2.239, // paper..... + {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; + G4double Z23 = 2.*log(AtomicNumber)/3.; Z23 = exp(Z23); + + G4double ParticleMass = aParticleType.GetPDGMass(); + G4double ParticleKineticEnergy = KineticEnergy ; + + // correction if particle .ne. e-/e+ + // compute equivalent kinetic energy + // lambda depends on p*beta .... + G4double Mass = ParticleMass ; + if((aParticleType.GetParticleName() != "e-") && + (aParticleType.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)) ; + KineticEnergy = electron_mass_c2*tau ; + Mass = electron_mass_c2 ; + } + + G4double Charge = aParticleType.GetPDGCharge(); + G4double ChargeSquare = Charge*Charge/(eplus*eplus); + + G4double TotalEnergy = KineticEnergy + Mass ; + G4double beta2 = KineticEnergy*(TotalEnergy+Mass) + /(TotalEnergy*TotalEnergy); + G4double bg2 = KineticEnergy*(TotalEnergy+Mass) + /(Mass*Mass); + + 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*ParticleMass/ParticleKineticEnergy)* + (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]>=KineticEnergy)) 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((aParticleType.GetParticleName() != "e-") && + (aParticleType.GetParticleName() != "e+") ) + sigma /= corrnuclsize; + + return sigma; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4double G4MultipleScattering52::GetContinuousStepLimit( + const G4Track& track, + G4double, + G4double currentMinimumStep, + G4double&) +{ + G4double zPathLength,tPathLength; + const G4DynamicParticle* aParticle; + G4double tau,zt,cz,cz1,grej,grej0; + const G4double expmax = 100., ztmax = (2.*expmax+1.)/(2.*expmax+3.) ; + const G4double tmax = 1.e20*mm ; + + G4bool isOut; + + // this process is not a candidate for selection by default + valueGPILSelectionMSC = NotCandidateForSelection; + + tPathLength = currentMinimumStep; + + const G4MaterialCutsCouple* couple = track.GetMaterialCutsCouple(); + materialIndex = couple->GetIndex(); + + aParticle = track.GetDynamicParticle(); + T0 = aParticle->GetKineticEnergy(); + + lambda0 = (*theTransportMeanFreePathTable) + (materialIndex)->GetValue(T0,isOut); + + + range = G4EnergyLossTables::GetRange(aParticle->GetDefinition(), + T0,couple); + //VI Initialisation at the beginning of the step + cthm = 1.; + lambda1 = -1.; + lambdam = -1.; + alam = range; + blam = 1.+alam/lambda0 ; + zm = 1.; + + // special treatment near boundaries ? + if (boundary && range >= currentMinimumStep) + { + // step limitation at boundary ? + stepno = track.GetCurrentStepNumber() ; + if(stepno == 1) + { + stepnolastmsc = -1000000 ; + tlimit = 1.e10 ; + } + + if(stepno > 1) + { + if(track.GetStep()->GetPreStepPoint()->GetStepStatus() == fGeomBoundary) + { + stepnolastmsc = stepno ; + // if : diff.treatment for small/not small Z + if(range > lambda0) + tlimit = facrange*range ; + else + tlimit = facrange*lambda0 ; + if(tlimit < tlimitmin) tlimit = tlimitmin ; + laststep = tlimit ; + if(tPathLength > tlimit) + { + tPathLength = tlimit ; + valueGPILSelectionMSC = CandidateForSelection; + } + } + else if(stepno > stepnolastmsc) + { + if((stepno - stepnolastmsc) < nsmallstep) + { + if(tPathLength > tlimit) + { + laststep *= cf ; + tPathLength = laststep ; + valueGPILSelectionMSC = CandidateForSelection; + } + } + } + } + } + + // do the true -> geom transformation + zmean = tPathLength; + + tau = tPathLength/lambda0 ; + + if (tau < tausmall || range < currentMinimumStep) zPathLength = tPathLength; + else + { + if(tPathLength/range < dtrl) zmean = lambda0*(1.-exp(-tau)); + else + { + T1 = G4EnergyLossTables::GetPreciseEnergyFromRange( + aParticle->GetDefinition(),range-tPathLength,couple); + lambda1 = (*theTransportMeanFreePathTable) + (materialIndex)->GetValue(T1,isOut); + if(T0 < Tlow) + alam = range ; + else + alam = lambda0*tPathLength/(lambda0-lambda1) ; + blam = 1.+alam/lambda0 ; + if(tPathLength/range < 2.*dtrl) + { + zmean = alam*(1.-exp(blam*log(1.-tPathLength/alam)))/blam ; + lambdam = -1. ; + } + else + { + G4double w = 1.-0.5*tPathLength/alam ; + lambdam = lambda0*w ; + clam = 1.+alam/lambdam ; + cthm = exp(alam*log(w)/lambda0) ; + zm = alam*(1.-exp(blam*log(w)))/blam ; + zmean = zm + alam*(1.-exp(clam*log(w)))*cthm/clam ; + } + } + + // sample z + zt = zmean/tPathLength ; + if (samplez && (zt < ztmax) && (zt > 0.5)) + { + cz = 0.5*(3.*zt-1.)/(1.-zt) ; + if(tPathLength < exp(log(tmax)/(2.*cz))) + { + cz1 = 1.+cz ; + grej0 = exp(cz1*log(cz*tPathLength/cz1))/cz ; + do + { + zPathLength = tPathLength*exp(log(G4UniformRand())/cz1) ; + grej = exp(cz*log(zPathLength))*(tPathLength-zPathLength)/grej0 ; + } while (grej < G4UniformRand()) ; + } + else zPathLength = zmean; + } + else zPathLength = zmean; + } + // protection against z > lambda + if(zPathLength > lambda0) + zPathLength = lambda0 ; + + tLast = tPathLength; + zLast = zPathLength; + + return zPathLength; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* G4MultipleScattering52::AlongStepDoIt( + const G4Track& track,const G4Step& step) +{ + // only a geom path->true path transformation is performed + + fParticleChange.Initialize(track); + + G4double geomPathLength = step.GetStepLength(); + + G4double truePathLength = 0. ; + + //VI change order of if operators + if(geomPathLength == zLast) truePathLength = tLast; + else if(geomPathLength/lambda0 < tausmall) truePathLength = geomPathLength; + else + { + if(lambda1 < 0.) truePathLength = -lambda0*log(1.-geomPathLength/lambda0) ; + else if(lambdam < 0.) + { + if(blam*geomPathLength/alam < 1.) + truePathLength = alam*(1.-exp(log(1.-blam*geomPathLength/alam)/ + blam)) ; + else + truePathLength = tLast; + } + else + { + if(geomPathLength <= zm) + { + if(blam*geomPathLength/alam < 1.) + truePathLength = alam*(1.-exp(log(1.-blam*geomPathLength/alam)/ + blam)) ; + else + truePathLength = 0.5*tLast; + + lambdam = -1. ; + } + else + { + if(clam*(geomPathLength-zm)/(alam*cthm) < 1.) + truePathLength = 0.5*tLast + alam*(1.- + exp(log(1.-clam*(geomPathLength-zm)/(alam*cthm)))/clam) ; + else + truePathLength = tLast ; + } + } + // protection .... + if(truePathLength > tLast) + truePathLength = tLast ; + } + + //VI truePath length cannot be smaller than geomPathLength + if (truePathLength < geomPathLength) truePathLength = geomPathLength; + fParticleChange.SetTrueStepLength(truePathLength); + + return &fParticleChange; + +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4VParticleChange* G4MultipleScattering52::PostStepDoIt( + const G4Track& trackData, + const G4Step& stepData) +{ + // angle distribution parameters + const G4double kappa = 2.5, kappapl1 = kappa+1., kappami1 = kappa-1. ; + + fParticleChange.Initialize(trackData); + G4double truestep = stepData.GetStepLength(); + + const G4DynamicParticle* aParticle = trackData.GetDynamicParticle(); + G4double KineticEnergy = aParticle->GetKineticEnergy(); + G4double Mass = aParticle->GetDefinition()->GetPDGMass() ; + + // do nothing for stopped particles ! + if(KineticEnergy > 0.) + { + // change direction first ( scattering ) + G4double cth = 1.0 ; + G4double tau = truestep/lambda0 ; + + if (tau < tausmall) cth = 1.; + else if(tau > taubig) cth = -1.+2.*G4UniformRand(); + else + { + if(lambda1 > 0.) + { + if(lambdam < 0.) + tau = -alam*log(1.-truestep/alam)/lambda0 ; + else + tau = -log(cthm)-alam*log(1.-(truestep-0.5*tLast)/alam)/lambdam ; + } + + if(tau > taubig) cth = -1.+2.*G4UniformRand(); + else + { + const G4double amax=25. ; + const G4double tau0 = 0.02 ; + const G4double c_highland = 13.6*MeV, corr_highland=0.038 ; + + const G4double x1fac1 = exp(-xsi) ; + const G4double x1fac2 = (1.-(1.+xsi)*x1fac1)/(1.-x1fac1) ; + const G4double x1fac3 = 1.3 ; // x1fac3 >= 1. !!!!!!!!! + + G4double a,x0,c,xmean1,xmean2, + xmeanth,prob,qprob ; + G4double ea,eaa,b1,bx,eb1,ebx,cnorm1,cnorm2,f1x0,f2x0,w ; + + // for heavy particles take the width of the cetral part + // from the Highland formula + // (Particle Physics Booklet, July 2002, eq. 26.10) + if(Mass > electron_mass_c2) // + other conditions (beta, x/X0,...?) + { + G4double Q = abs(aParticle->GetDefinition()->GetPDGCharge()) ; + G4double X0 = trackData.GetMaterialCutsCouple()-> + GetMaterial()->GetRadlen() ; + G4double xx0 = truestep/X0 ; + G4double betacp = KineticEnergy*(KineticEnergy+2.*Mass)/ + (KineticEnergy+Mass) ; + G4double theta0=c_highland*Q*sqrt(xx0)* + (1.+corr_highland*log(xx0))/betacp ; + if(theta0 > tausmall) + a = 0.5/(1.-cos(theta0)) ; + else + a = 1./(theta0*theta0) ; + } + else + { + w = log(tau/tau0) ; + if(tau < tau0) + a = (alfa1-alfa2*w)/tau ; + else + a = (alfa1+alfa3*w)/tau ; + } + + xmeanth = exp(-tau) ; + + x0 = 1.-xsi/a ; + if(x0 < -1.) x0 = -1. ; + + if(x0 == -1.) + { + // 1 model fuction only + // in order to have xmean1 > xmeanth -> qprob < 1 + if((1.-1./a) < xmeanth) + a = 1./(1.-xmeanth) ; + + if(a*(1.-x0) < amax) + ea = exp(-a*(1.-x0)) ; + else + ea = 0. ; + eaa = 1.-ea ; + xmean1 = 1.-1./a+(1.-x0)*ea/eaa ; + + c = 2. ; + b1 = b+1. ; + bx = b1 ; + eb1 = b1 ; + ebx = b1 ; + xmean2 = 0. ; + + prob = 1. ; + qprob = xmeanth/xmean1 ; + } + else + { + // 2 model fuctions + // in order to have xmean1 > xmeanth + if((1.-x1fac2/a) < xmeanth) + { + a = x1fac3*x1fac2/(1.-xmeanth) ; + if(a*(1.-x0) < amax) + ea = exp(-a*(1.-x0)) ; + else + ea = 0. ; + eaa = 1.-ea ; + xmean1 = 1.-1./a+(1.-x0)*ea/eaa ; + } + else + { + ea = x1fac1 ; + eaa = 1.-x1fac1 ; + xmean1 = 1.-x1fac2/a ; + } + + // from continuity of the 1st derivatives + c = a*(b-x0) ; + if(a*tau < c0) + c = c0*(b-x0)/tau ; + + if(c == 1.) c=1.000001 ; + if(c == 2.) c=2.000001 ; + if(c == 3.) c=3.000001 ; + + b1 = b+1. ; + bx=b-x0 ; + eb1=exp((c-1.)*log(b1)) ; + ebx=exp((c-1.)*log(bx)) ; + xmean2 = (x0*eb1+ebx+(eb1*bx-b1*ebx)/(2.-c))/(eb1-ebx) ; + + cnorm1 = a/eaa ; + f1x0 = cnorm1*exp(-a*(1.-x0)) ; + cnorm2 = (c-1.)*eb1*ebx/(eb1-ebx) ; + f2x0 = cnorm2/exp(c*log(b-x0)) ; + + // from continuity at x=x0 + prob = f2x0/(f1x0+f2x0) ; + // from xmean = xmeanth + qprob = (f1x0+f2x0)*xmeanth/(f2x0*xmean1+f1x0*xmean2) ; + } + + // protection against prob or qprob > 1 and + // prob or qprob < 0 + // *************************************************************** + if((qprob > 1.) || (qprob < 0.) || (prob > 1.) || (prob < 0.)) + { + // this print possibility has been left intentionally + // for debugging purposes .......................... + G4bool pr = false ; + // pr = true ; + if(pr) + { + const G4double prlim = 0.10 ; + if((abs((xmeanth-xmean2)/(xmean1-xmean2)-prob)/prob > prlim) || + ((xmeanth-xmean2)/(xmean1-xmean2) > 1.) || + ((xmeanth-xmean2)/(xmean1-xmean2) < 0.) ) + { + G4cout.precision(5) ; + G4cout << "\nparticle=" << aParticle->GetDefinition()-> + GetParticleName() << " in material " + << trackData.GetMaterialCutsCouple()-> + GetMaterial()->GetName() << " with kinetic energy " + << KineticEnergy << " MeV," << G4endl ; + G4cout << " step length=" + << truestep << " mm" << G4endl ; + G4cout << "p=" << prob << " q=" << qprob << " -----> " + << "p=" << (xmeanth-xmean2)/(xmean1-xmean2) + << " q=" << 1. << G4endl ; + } + } + qprob = 1. ; + prob = (xmeanth-xmean2)/(xmean1-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() ; + } + } + + G4double sth = sqrt(1.-cth*cth); + G4double phi = twopi*G4UniformRand(); + G4double dirx = sth*cos(phi), diry = sth*sin(phi), dirz = cth; + + G4ParticleMomentum ParticleDirection = aParticle->GetMomentumDirection(); + + G4ThreeVector newDirection(dirx,diry,dirz); + newDirection.rotateUz(ParticleDirection); + fParticleChange.SetMomentumChange(newDirection.x(), + newDirection.y(), + newDirection.z()); + + if (fLatDisplFlag) + { + // compute mean lateral displacement, only for safety > tolerance ! + G4double safetyminustolerance = stepData.GetPostStepPoint()->GetSafety(); + G4double rmean, etau; + + if (safetyminustolerance > 0.) + { + if (tau < tausmall) rmean = 0.; + else if(tau < taulim) rmean = kappa*tau*tau*tau*(1.-kappapl1*tau/4.)/6.; + else + { + if(tau0.) rmean = 2.*lambda0*sqrt(rmean/3.); + else rmean = 0.; + + // for rmean > 0) only + if (rmean > 0.) + { + if (rmean>safetyminustolerance) rmean = safetyminustolerance; + + // sample direction of lateral displacement + phi = twopi*G4UniformRand(); + dirx = cos(phi); diry = sin(phi); dirz = 0.; + + G4ThreeVector latDirection(dirx,diry,dirz); + latDirection.rotateUz(ParticleDirection); + + // compute new endpoint of the Step + G4ThreeVector newPosition = stepData.GetPostStepPoint()->GetPosition() + + rmean*latDirection; + + G4Navigator* navigator = + G4TransportationManager::GetTransportationManager() + ->GetNavigatorForTracking(); + navigator->LocateGlobalPointWithinVolume(newPosition); + + fParticleChange.SetPositionChange(newPosition); + } + } + } + } + + return &fParticleChange; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + + G4bool G4MultipleScattering52::StorePhysicsTable(G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + G4String filename; + // store mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + if (!theTransportMeanFreePathTable->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 G4MultipleScattering52::RetrievePhysicsTable( + G4ParticleDefinition* particle, + const G4String& directory, + G4bool ascii) +{ + // set values of some data members + G4String name = particle->GetParticleName(); + if(name == "e-" || name == "e+") + { + // parameters for e+/e- + alfa1 = 1.45 ; + alfa2 = 0.60 ; + alfa3 = 0.30 ; + b = 1. ; + xsi = facxsi*2.22 ; + c0 = 2.30 ; + } + else + { + // parameters for heavy particles + alfa1 = 1.10 ; + alfa2 = 0.14 ; + alfa3 = 0.07 ; + b = 1. ; + xsi = facxsi*2.70 ; + c0 = 1.40 ; + } + + // .............................. + Tlow = particle->GetPDGMass(); + + // delete theTransportMeanFreePathTable + if (theTransportMeanFreePathTable != 0) { + theTransportMeanFreePathTable->clearAndDestroy(); + delete theTransportMeanFreePathTable; + } + + G4String filename; + + // retreive mean free path table + filename = GetPhysicsTableFileName(particle,directory,"MeanFreePath",ascii); + theTransportMeanFreePathTable = + new G4PhysicsTable(G4Material::GetNumberOfMaterials()); + if (!theTransportMeanFreePathTable->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; + + if (name == "e-" || name == "mu+" || name == "proton") PrintInfoDefinition(); + + return true; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +void G4MultipleScattering52::PrintInfoDefinition() +{ + G4String comments = " Tables of transport mean free paths."; + comments += "\n New model of MSC , computes the lateral \n"; + comments += " displacement of the particle , too."; + + G4cout << G4endl << GetProcessName() << ": " << comments + << "\n PhysicsTables from " + << G4BestUnit(LowestKineticEnergy ,"Energy") + << " to " << G4BestUnit(HighestKineticEnergy,"Energy") + << " in " << TotBin << " bins. \n"; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... diff --git a/source/processes/electromagnetic/utils/src/G4MultipleScatteringSTD.cc b/source/processes/electromagnetic/utils/src/G4MultipleScatteringSTD.cc deleted file mode 100644 index 0c4159caaa..0000000000 --- a/source/processes/electromagnetic/utils/src/G4MultipleScatteringSTD.cc +++ /dev/null @@ -1,173 +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: G4MultipleScatteringSTD.cc,v 1.22 2003/06/02 08:47:49 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ----------------------------------------------------------------------------- -// 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) -// -// ----------------------------------------------------------------------------- -// -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -#include "G4MultipleScatteringSTD.hh" -#include "G4MscModel.hh" - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4MultipleScatteringSTD::G4MultipleScatteringSTD(const G4String& processName) - : G4VMultipleScattering(processName), - lowKineticEnergy(0.1*keV), - highKineticEnergy(100.*TeV), - totBins(100), - facrange(0.199), - tlimit(1.e10*mm), - tlimitmin(1.e-7*mm), - dtrl(0.15), - NuclCorrPar (0.0615), - FactPar(0.40), - facxsi(1.0), - cf(1.001), - stepnolastmsc(-1000000), - nsmallstep(5), - samplez(true) -{ - SetBinning(totBins); - SetMinKinEnergy(lowKineticEnergy); - SetMaxKinEnergy(highKineticEnergy); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4MultipleScatteringSTD::~G4MultipleScatteringSTD() -{} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -void G4MultipleScatteringSTD::InitialiseProcess(const G4ParticleDefinition& particle) -{ - if (particle.GetParticleType() == "nucleus") { - SetBoundary(false); - SetLateralDisplasmentFlag(false); - SetBuildLambdaTable(false); - } else { - SetBoundary(true); - SetLateralDisplasmentFlag(true); - SetBuildLambdaTable(true); - } - G4VEmModel* em = new G4MscModel(dtrl,NuclCorrPar,FactPar,facxsi,samplez); - em->SetLowEnergyLimit(0.1*keV); - em->SetHighEnergyLimit(100.0*TeV); - AddEmModel(1, em); - boundary = BoundaryAlgorithmFlag(); -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - -G4double G4MultipleScatteringSTD::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 G4MultipleScatteringSTD::PrintInfoDefinition() -{ - G4VMultipleScattering::PrintInfoDefinition(); - if(boundary) { - G4cout << " Boundary algorithm is active with facrange= " - << facrange - << G4endl; - } -} - -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... - diff --git a/source/processes/electromagnetic/utils/src/G4SCProcessorStand.cc b/source/processes/electromagnetic/utils/src/G4SCProcessorStand.cc index cd27dec825..ee346b069d 100644 --- a/source/processes/electromagnetic/utils/src/G4SCProcessorStand.cc +++ b/source/processes/electromagnetic/utils/src/G4SCProcessorStand.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4SCProcessorStand.cc,v 1.9 2003/07/21 12:52:10 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // diff --git a/source/processes/electromagnetic/utils/src/G4UniversalFluctuation.cc b/source/processes/electromagnetic/utils/src/G4UniversalFluctuation.cc index c23e34aad6..1fd01a52d1 100644 --- a/source/processes/electromagnetic/utils/src/G4UniversalFluctuation.cc +++ b/source/processes/electromagnetic/utils/src/G4UniversalFluctuation.cc @@ -20,6 +20,9 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4UniversalFluctuation.cc,v 1.13 2003/11/13 10:10:32 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// // ------------------------------------------------------------------- // // GEANT4 Class file @@ -36,15 +39,12 @@ // 28-12-02 add method Dispersion (V.Ivanchenko) // 07-02-03 change signature (V.Ivanchenko) // 13-02-03 Add name (V.Ivanchenko) -// -// Class Description: -// -// ------------------------------------------------------------------- -// +// 16-10-03 Changed interface to Initialisation (V.Ivanchenko) +// 07-11-03 Fix problem of rounding of double in G4UniversalFluctuations //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + #include "G4UniversalFluctuation.hh" #include "Randomize.hh" #include "G4Poisson.hh" @@ -54,7 +54,7 @@ #include "G4ParticleDefinition.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - + G4UniversalFluctuation::G4UniversalFluctuation(const G4String& nam) :G4VEmFluctuationModel(nam), particle(0), @@ -63,8 +63,8 @@ G4UniversalFluctuation::G4UniversalFluctuation(const G4String& nam) minLoss(0.000001*eV), problim(0.01), alim(10.), - nmaxCont1(4), - nmaxCont2(16) + nmaxCont1(4.), + nmaxCont2(16.) { lastMaterial = 0; sumalim = -log(problim); @@ -77,7 +77,7 @@ G4UniversalFluctuation::~G4UniversalFluctuation() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4UniversalFluctuation::Initialise(const G4ParticleDefinition* part) +void G4UniversalFluctuation::InitialiseMe(const G4ParticleDefinition* part) { particle = part; particleMass = part->GetPDGMass(); @@ -114,7 +114,7 @@ G4double G4UniversalFluctuation::SampleFluctuations(const G4Material* material, // Validity range for delta electron cross section G4double loss, siga; - + // G4cout << "### tmax= " << tmax << " kappa= " << minNumberInteractionsBohr << " l= " << length << G4endl; // Gaussian fluctuation if(meanLoss >= minNumberInteractionsBohr*tmax || tmax <= ipotFluct*minNumberInteractionsBohr) { @@ -125,6 +125,7 @@ G4double G4UniversalFluctuation::SampleFluctuations(const G4Material* material, do { loss = G4RandGauss::shoot(meanLoss,siga); } while (loss < 0. || loss > 2.*meanLoss); + // G4cout << "de= " << meanLoss << " fluc= " << loss-meanLoss << " sig= " << siga << G4endl; return loss; } @@ -143,32 +144,27 @@ G4double G4UniversalFluctuation::SampleFluctuations(const G4Material* material, lastMaterial = material; } - G4double suma,w1,w2,C,e0,lossc,w; - G4double a1,a2,a3; - G4int p1,p2,p3; - G4int nb; - G4double corrfac, na,alfa,rfac,namean,sa,alfa1,ea,sea; - G4double dp3; + G4double p1,p2,p3; - w1 = tmax/ipotFluct; - w2 = log(2.*electron_mass_c2*(gam2 - 1.0)); + G4double w1 = tmax/ipotFluct; + G4double w2 = log(2.*electron_mass_c2*(gam2 - 1.0)); - C = meanLoss*(1.-rateFluct)/(w2-ipotLogFluct-beta2); + G4double C = meanLoss*(1.-rateFluct)/(w2-ipotLogFluct-beta2); - a1 = C*f1Fluct*(w2-e1LogFluct-beta2)/e1Fluct; - a2 = C*f2Fluct*(w2-e2LogFluct-beta2)/e2Fluct; - a3 = rateFluct*meanLoss*(tmax-ipotFluct)/(ipotFluct*tmax*log(w1)); + G4double a1 = C*f1Fluct*(w2-e1LogFluct-beta2)/e1Fluct; + G4double a2 = C*f2Fluct*(w2-e2LogFluct-beta2)/e2Fluct; + G4double a3 = rateFluct*meanLoss*(tmax-ipotFluct)/(ipotFluct*tmax*log(w1)); if(a1 < 0.) a1 = 0.; if(a2 < 0.) a2 = 0.; if(a3 < 0.) a3 = 0.; - suma = a1+a2+a3; + G4double suma = a1+a2+a3; loss = 0. ; if(suma < sumalim) // very small Step { - e0 = material->GetIonisation()->GetEnergy0fluct(); + G4double e0 = material->GetIonisation()->GetEnergy0fluct(); if(tmax == ipotFluct) { @@ -177,120 +173,101 @@ G4double G4UniversalFluctuation::SampleFluctuations(const G4Material* material, if(a3>alim) { siga=sqrt(a3) ; - p3 = std::max(0,int(G4RandGauss::shoot(a3,siga)+0.5)); - } - else - p3 = G4Poisson(a3); - + p3 = std::max(0.,G4RandGauss::shoot(a3,siga)+0.5); + } else { + p3 = G4double(G4Poisson(a3)); + } loss = p3*e0 ; - if(p3 > 0) - loss += (1.-2.*G4UniformRand())*e0 ; + if(p3 > 0.) loss += (1.-2.*G4UniformRand())*e0 ; - } - else - { + } else { tmax = tmax-ipotFluct+e0 ; a3 = meanLoss*(tmax-e0)/(tmax*e0*log(tmax/e0)); if(a3>alim) { siga=sqrt(a3) ; - p3 = std::max(0,int(G4RandGauss::shoot(a3,siga)+0.5)); - } - else - p3 = G4Poisson(a3); - - if(p3 > 0) - { - w = (tmax-e0)/tmax ; - if(p3 > nmaxCont2) - { - dp3 = G4float(p3) ; - corrfac = dp3/G4float(nmaxCont2) ; + p3 = std::max(0.,G4RandGauss::shoot(a3,siga)+0.5); + } else { + p3 = G4double(G4Poisson(a3)); + } + if(p3 > 0.) { + G4double w = (tmax-e0)/tmax ; + G4double corrfac = 1. ; + if(p3 > nmaxCont2) { + corrfac = p3/nmaxCont2 ; p3 = nmaxCont2 ; - } - else - corrfac = 1. ; - - for(G4int i=0; ialim) - { + if(a1>alim) { siga=sqrt(a1) ; - p1 = std::max(0,int(G4RandGauss::shoot(a1,siga)+0.5)); + p1 = std::max(0.,G4RandGauss::shoot(a1,siga)+0.5); + } else { + p1 = G4double(G4Poisson(a1)); } - else - p1 = G4Poisson(a1); - // excitation type 2 - if(a2>alim) - { + if(a2>alim) { siga=sqrt(a2) ; - p2 = std::max(0,int(G4RandGauss::shoot(a2,siga)+0.5)); + p2 = std::max(0.,G4RandGauss::shoot(a2,siga)+0.5); + } else { + p2 = G4double(G4Poisson(a2)); } - else - p2 = G4Poisson(a2); - loss = p1*e1Fluct+p2*e2Fluct; // smearing to avoid unphysical peaks - if(p2 > 0) + if(p2 > 0.) loss += (1.-2.*G4UniformRand())*e2Fluct; else if (loss>0.) loss += (1.-2.*G4UniformRand())*e1Fluct; - + if(loss < 0.) loss = 0.0; + // ionisation ....................................... - if(a3 > 0.) - { - if(a3>alim) - { - siga=sqrt(a3) ; - p3 = std::max(0,int(G4RandGauss::shoot(a3,siga)+0.5)); - } - else - p3 = G4Poisson(a3); - - lossc = 0.; - if(p3 > 0) - { - na = 0.; - alfa = 1.; - if (p3 > nmaxCont2) - { - dp3 = G4float(p3); - rfac = dp3/(G4float(nmaxCont2)+dp3); - namean = G4float(p3)*rfac; - sa = G4float(nmaxCont1)*rfac; - na = G4RandGauss::shoot(namean,sa); - if (na > 0.) - { - alfa = w1*G4float(nmaxCont2+p3)/ - (w1*G4float(nmaxCont2)+G4float(p3)); - alfa1 = alfa*log(alfa)/(alfa-1.); - ea = na*ipotFluct*alfa1; - sea = ipotFluct*sqrt(na*(alfa-alfa1*alfa1)); - lossc += G4RandGauss::shoot(ea,sea); + if(a3 > 0.) { + if(a3>alim) { + siga=sqrt(a3) ; + p3 = std::max(0.,G4RandGauss::shoot(a3,siga)+0.5); + } else { + p3 = G4double(G4Poisson(a3)); + } + G4double lossc = 0.; + if(p3 > 0) { + G4double na = 0.; + G4double alfa = 1.; + if (p3 > nmaxCont2) { + G4double rfac = p3/(nmaxCont2+p3); + G4double namean = p3*rfac; + G4double sa = nmaxCont1*rfac; + na = G4RandGauss::shoot(namean,sa); + if (na > 0.) { + alfa = w1*(nmaxCont2+p3)/(w1*nmaxCont2+p3); + G4double alfa1 = alfa*log(alfa)/(alfa-1.); + G4double ea = na*ipotFluct*alfa1; + G4double sea = ipotFluct*sqrt(na*(alfa-alfa1*alfa1)); + lossc += G4RandGauss::shoot(ea,sea); + } } - } - nb = G4int(G4float(p3)-na); - if (nb > 0) - { - w2 = alfa*ipotFluct; - w = (tmax-w2)/tmax; - for (G4int k=0; k na) { + w2 = alfa*ipotFluct; + G4double w = (tmax-w2)/tmax; + G4int nb = G4int(p3-na); + for (G4int k=0; kRegister(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VEmProcess::~G4VEmProcess() +{ + if(theLambdaTable) theLambdaTable->clearAndDestroy(); + theLambdaTable = 0; + modelManager->Clear(); + delete modelManager; + (G4LossTableManager::Instance())->DeRegister(this); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEmProcess::Initialise() +{ + if(theLambdaTable) theLambdaTable->clearAndDestroy(); + theLambdaTable = 0; + modelManager->Clear(); + theCuts = modelManager->Initialise(particle,secondaryParticle,2.,verboseLevel); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEmProcess::BuildPhysicsTable(const G4ParticleDefinition& part) +{ + if( !particle ) particle = ∂ + currentCouple = 0; + preStepLambda = 0.0; + if(0 < verboseLevel) { + G4cout << "G4VEmProcess::BuildPhysicsTable() for " + << GetProcessName() + << " and particle " << part.GetParticleName() + << G4endl; + } + + G4bool cutsWasModified = false; + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + for (size_t j=0; jGetMaterialCutsCouple(j)->IsRecalcNeeded()) { + cutsWasModified = true; + break; + } + } + if( !cutsWasModified ) return; + + Initialise(); + theLambdaTable = BuildLambdaTable(); + PrintInfoDefinition(); + + if(0 < verboseLevel && theCuts) { + G4cout << "G4VEmProcess::BuildPhysicsTable() done for " + << GetProcessName() + << " and particle " << part.GetParticleName() + << G4endl; + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsTable* G4VEmProcess::BuildLambdaTable() +{ + + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossSTD::BuildLambdaTable() for process " + << GetProcessName() << " and particle " + << particle->GetParticleName() + << G4endl; + } + + // Access to materials + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + G4PhysicsTable* theTable = new G4PhysicsTable(numOfCouples); + + for(size_t i=0; iGetMaterialCutsCouple(i); + G4PhysicsVector* aVector = LambdaPhysicsVector(couple); + modelManager->FillLambdaVector(aVector, couple); + + // Insert vector for this material into the table + theTable->insert(aVector) ; + } + + if(0 < verboseLevel) { + G4cout << "Lambda table is built for " + << particle->GetParticleName() + << G4endl; + if(2 < verboseLevel) { + G4cout << *theTable << G4endl; + } + } + + return theTable; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEmProcess::SetParticle(const G4ParticleDefinition* p) +{ + particle = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEmProcess::SetSecondaryParticle(const G4ParticleDefinition* p) +{ + secondaryParticle = p; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEmProcess::AddEmModel(G4int order, G4VEmModel* p, + G4VEmFluctuationModel*, + const G4Region* region) +{ + modelManager->AddEmModel(order, p, 0, region); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEmProcess::UpdateEmModel(const G4String& nam, G4double emin, + G4double emax) +{ + modelManager->UpdateEmModel(nam, emin, emax); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4VParticleChange* G4VEmProcess::PostStepDoIt(const G4Track& track, + const G4Step& step) +{ + aParticleChange.Initialize(track); + G4double finalT = track.GetKineticEnergy(); + + // Integral approach + if (integral) { + G4bool b; + G4double postStepLambda = + (((*theLambdaTable)[currentMaterialIndex])->GetValue(finalT,b)); + + if(preStepLambda*G4UniformRand() > postStepLambda) + return G4VDiscreteProcess::PostStepDoIt(track,step); + } + + G4VEmModel* currentModel = SelectModel(finalT); + G4double tcut = (*theCuts)[currentMaterialIndex]; + const G4DynamicParticle* dynParticle = track.GetDynamicParticle(); + + /* + if(0 < verboseLevel) { + const G4ParticleDefinition* pd = dynParticle->GetDefinition(); + G4cout << "G4VEmProcess::PostStepDoIt: Sample secondary; E= " + << finalT/MeV + << " MeV; model= (" << currentModel->LowEnergyLimit(pd) + << ", " << currentModel->HighEnergyLimit(pd) << ")" + << G4endl; + } + */ + + SecondariesPostStep(currentModel,currentCouple,dynParticle,tcut,finalT); + return &aParticleChange; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEmProcess::PrintInfoDefinition() +{ + G4cout << G4endl << GetProcessName() << ": " << G4endl + << " Lambda tables from threshold to " + << G4BestUnit(maxKinEnergy,"Energy") + << " in " << nLambdaBins << " bins." + << G4endl; + /* + G4cout << "DEDXTable address= " << theDEDXTable << G4endl; + if(theDEDXTable) G4cout << (*theDEDXTable) << G4endl; + G4cout << "RangeTable address= " << theRangeTable << G4endl; + if(theRangeTable) G4cout << (*theRangeTable) << G4endl; + G4cout << "InverseRangeTable address= " << theInverseRangeTable << G4endl; + if(theInverseRangeTable) G4cout << (*theInverseRangeTable) << G4endl; + */ + if(0 < verboseLevel) { + G4cout << "Tables are built for " << particle->GetParticleName() + << " IntegralFlag= " << integral + << G4endl; + + if(2 < verboseLevel) { + G4cout << "LambdaTable address= " << theLambdaTable << G4endl; + if(theLambdaTable) G4cout << (*theLambdaTable) << G4endl; + } + } +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4PhysicsVector* G4VEmProcess::LambdaPhysicsVector(const G4MaterialCutsCouple* couple) +{ + G4double cut = (*theCuts)[couple->GetIndex()]; + G4int nbins = 3; + if( couple->IsUsed() ) nbins = nLambdaBins; + G4double tmin = std::max(MinPrimaryEnergy(particle, couple->GetMaterial(), cut), + minKinEnergy); + if(tmin >= maxKinEnergy) tmin = 0.5*maxKinEnergy; + // G4double xmax = maxKinEnergy*exp(log(maxKinEnergy/tmin)/((G4double)(nbins-1)) ); + G4PhysicsVector* v = new G4PhysicsLogVector(tmin, maxKinEnergy, nbins); + return v; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4VEmProcess::MicroscopicCrossSection(G4double kineticEnergy, + const G4MaterialCutsCouple* couple) +{ + // Cross section per atom is calculated + DefineMaterial(couple); + G4double cross = 0.0; + G4bool b; + if(theLambdaTable) { + cross = (((*theLambdaTable)[currentMaterialIndex])-> + GetValue(kineticEnergy, b)); + + cross /= currentMaterial->GetTotNbOfAtomsPerVolume(); + } + + return cross; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4double G4VEmProcess::MeanFreePath(const G4Track& track, + G4double s, + G4ForceCondition* cond) +{ + return GetMeanFreePath(track, s, cond); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +G4bool G4VEmProcess::StorePhysicsTable(G4ParticleDefinition* part, + const G4String& directory, + G4bool ascii) +{ + G4bool yes = true; + + if ( theLambdaTable ) { + const G4String name = GetPhysicsTableFileName(part,directory,"Lambda",ascii); + yes = theLambdaTable->StorePhysicsTable(name,ascii); + } + + if ( yes ) { + G4cout << "Physics tables are stored for " << particle->GetParticleName() + << " and process " << GetProcessName() + << " in the directory <" << directory + << "> " << G4endl; + } else { + G4cout << "Fail to store Physics Tables for " << particle->GetParticleName() + << " and process " << GetProcessName() + << " in the directory <" << directory + << "> " << G4endl; + } + return yes; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... + +G4bool G4VEmProcess::RetrievePhysicsTable(G4ParticleDefinition* part, + const G4String& directory, + G4bool ascii) +{ + currentCouple = 0; + preStepLambda = 0.0; + if(0 < verboseLevel) { + G4cout << "G4VEmProcess::RetrievePhysicsTable() for " + << part->GetParticleName() << " and process " + << GetProcessName() << G4endl; + } + G4bool yes = true; + + const G4String particleName = part->GetParticleName(); + if( !particle ) particle = part; + + Initialise(); + + G4String filename; + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); + + filename = GetPhysicsTableFileName(part,directory,"Lambda",ascii); + theLambdaTable = new G4PhysicsTable(numOfCouples); + yes = theLambdaTable->RetrievePhysicsTable(filename,ascii); + if ( yes ) { + if (-1 < verboseLevel) { + G4cout << "Lambda table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } + PrintInfoDefinition(); + } else { + theLambdaTable->clearAndDestroy(); + theLambdaTable = 0; + if (-1 < verboseLevel) { + G4cout << "Lambda table for " << particleName << " in file <" + << filename << "> is not exist" + << G4endl; + } + } + + return yes; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc b/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc index 5c3c3e5678..d14b94e173 100644 --- a/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc +++ b/source/processes/electromagnetic/utils/src/G4VEnergyLoss.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEnergyLoss.cc,v 1.42 2003/06/16 17:02:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEnergyLoss.cc,v 1.44 2003/11/06 17:19:51 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- diff --git a/source/processes/electromagnetic/utils/src/G4VEnergyLossSTD.cc b/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc similarity index 70% rename from source/processes/electromagnetic/utils/src/G4VEnergyLossSTD.cc rename to source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc index ac5bfe5ac2..c56d5cdd93 100644 --- a/source/processes/electromagnetic/utils/src/G4VEnergyLossSTD.cc +++ b/source/processes/electromagnetic/utils/src/G4VEnergyLossProcess.cc @@ -20,13 +20,15 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VEnergyLossProcess.cc,v 1.2 2003/11/25 18:01:49 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // // GEANT4 Class file // // -// File name: G4VEnergyLossSTD +// File name: G4VEnergyLossProcess // // Author: Vladimir Ivanchenko // @@ -60,6 +62,10 @@ // 13-05-03 Add calculation of precise range (V.Ivanchenko) // 23-05-03 Remove tracking cuts (V.Ivanchenko) // 03-06-03 Fix initialisation problem for STD ionisation (V.Ivanchenko) +// 21-07-03 Add UpdateEmModel method (V.Ivanchenko) +// 03-11-03 Fix initialisation problem in RetrievePhysicsTable (V.Ivanchenko) +// 04-11-03 Add checks in RetrievePhysicsTable (V.Ivanchenko) +// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko) // // Class Description: // @@ -73,7 +79,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -#include "G4VEnergyLossSTD.hh" +#include "G4VEnergyLossProcess.hh" #include "G4LossTableManager.hh" #include "G4Step.hh" #include "G4ParticleDefinition.hh" @@ -97,7 +103,7 @@ //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VEnergyLossSTD::G4VEnergyLossSTD(const G4String& name, G4ProcessType type): +G4VEnergyLossProcess::G4VEnergyLossProcess(const G4String& name, G4ProcessType type): G4VContinuousDiscreteProcess(name, type), nSCoffRegions(0), idxSCoffRegions(0), @@ -112,20 +118,15 @@ G4VEnergyLossSTD::G4VEnergyLossSTD(const G4String& name, G4ProcessType type): particle(0), baseParticle(0), secondaryParticle(0), - theGamma(G4Gamma::Gamma()), - theElectron(G4Electron::Electron()), currentCouple(0), nDEDXBins(90), nDEDXBinsForRange(70), nLambdaBins(90), faclow(1.5), - minKinEnergy(0.1*keV), - maxKinEnergy(100.0*GeV), - maxKinEnergyForRange(1.0*GeV), - lowKinEnergy(minKinEnergy*faclow), linLossLimit(0.05), minSubRange(0.1), - rangeCoeff(1.0), + defaultRoverRange(0.2), + defaultIntegralRange(1.0), lossFluctuationFlag(true), rndmStepFlag(false), hasRestProcess(true), @@ -133,9 +134,15 @@ G4VEnergyLossSTD::G4VEnergyLossSTD(const G4String& name, G4ProcessType type): integral(true), meanFreePath(true) { + + minKinEnergy = 0.1*keV; + maxKinEnergy = 100.0*GeV; + maxKinEnergyForRange = 1.0*GeV; + lowKinEnergy = minKinEnergy*faclow; + // default dRoverRange and finalRange - SetStepLimits(0.2, 1.0*mm); - //SetVerboseLevel(0); + SetStepFunction(defaultIntegralRange, 1.0*mm); + SetVerboseLevel(0); modelManager = new G4EmModelManager(); (G4LossTableManager::Instance())->Register(this); @@ -145,7 +152,7 @@ G4VEnergyLossSTD::G4VEnergyLossSTD(const G4String& name, G4ProcessType type): //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VEnergyLossSTD::~G4VEnergyLossSTD() +G4VEnergyLossProcess::~G4VEnergyLossProcess() { Clear(); @@ -167,10 +174,10 @@ G4VEnergyLossSTD::~G4VEnergyLossSTD() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::Clear() +void G4VEnergyLossProcess::Clear() { if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::Clear() for " << GetProcessName() << G4endl; + G4cout << "G4VEnergyLossProcess::Clear() for " << GetProcessName() << G4endl; } if ( !baseParticle ) { if(theDEDXTable) theDEDXTable->clearAndDestroy(); @@ -178,8 +185,8 @@ void G4VEnergyLossSTD::Clear() if(theInverseRangeTable) theInverseRangeTable->clearAndDestroy(); if(theLambdaTable) theLambdaTable->clearAndDestroy(); if(theSubLambdaTable) theSubLambdaTable->clearAndDestroy(); - if(theDEDXAtMaxEnergy) delete theDEDXAtMaxEnergy; - if(theRangeAtMaxEnergy) delete theRangeAtMaxEnergy; + if(theDEDXAtMaxEnergy) delete [] theDEDXAtMaxEnergy; + if(theRangeAtMaxEnergy) delete [] theRangeAtMaxEnergy; } theDEDXTable = 0; @@ -190,22 +197,22 @@ void G4VEnergyLossSTD::Clear() theSubLambdaTable = 0; theDEDXAtMaxEnergy = 0; theRangeAtMaxEnergy = 0; - modelManager->Clear(); tablesAreBuilt = false; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::Initialise() +void G4VEnergyLossProcess::Initialise() { + if(0 < verboseLevel) { + G4cout << "G4VEnergyLossProcess::Initialise() for " + << GetProcessName() + << " for " << particle->GetParticleName() + << G4endl; + } Clear(); - if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::Initialise() for " - << GetProcessName() << G4endl; - } - G4double initialCharge = particle->GetPDGCharge(); G4double initialMass = particle->GetPDGMass(); chargeSquare = initialCharge*initialCharge/(eplus*eplus); @@ -251,7 +258,7 @@ void G4VEnergyLossSTD::Initialise() } if (0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::Initialise() is done " + G4cout << "G4VEnergyLossProcess::Initialise() is done " << " chargeSqRatio= " << chargeSqRatio << " massRatio= " << massRatio << " reduceFactor= " << reduceFactor << G4endl; @@ -267,12 +274,13 @@ void G4VEnergyLossSTD::Initialise() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::BuildPhysicsTable(const G4ParticleDefinition& part) +void G4VEnergyLossProcess::BuildPhysicsTable(const G4ParticleDefinition& part) { currentCouple = 0; preStepLambda = 0.0; if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::BuildPhysicsTable() for " + G4cout << "========================================================" << G4endl; + G4cout << "### G4VEnergyLossProcess::BuildPhysicsTable() for " << GetProcessName() << " and particle " << part.GetParticleName() << G4endl; @@ -292,70 +300,56 @@ void G4VEnergyLossSTD::BuildPhysicsTable(const G4ParticleDefinition& part) } // Are particle defined? - if( !particle ) particle = ∂ - //if( !baseParticle ) - baseParticle = DefineBaseParticle(particle); - - G4bool cutsWasModified = false; - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - for (size_t j=0; jGetMaterialCutsCouple(j)->IsRecalcNeeded()) { - cutsWasModified = true; - break; - } + if( !particle ) { + particle = ∂ + baseParticle = DefineBaseParticle(particle); } - if( !cutsWasModified ) return; - // It is responsability of the G4LossTables to build DEDX and range tables - (G4LossTableManager::Instance())->BuildPhysicsTable(particle); + // Recalculation is needed because cuts were changed or recalculation is forced + G4LossTableManager* lManager = G4LossTableManager::Instance(); + if ( lManager->IsRecalcNeeded(particle) ) { - tablesAreBuilt = true; + // It is responsability of the G4LossTables to build DEDX and range tables + lManager->BuildPhysicsTable(particle); - if(!baseParticle) PrintInfoDefinition(); + if(!baseParticle) PrintInfoDefinition(); - if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::BuildPhysicsTable() done for " - << GetProcessName() - << " and particle " << part.GetParticleName() - << G4endl; + if(0 < verboseLevel) { + G4cout << "### G4VEnergyLossProcess::BuildPhysicsTable() done for " + << GetProcessName() + << " and particle " << part.GetParticleName() + << G4endl; + } } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetParticles(const G4ParticleDefinition* p1, - const G4ParticleDefinition* p2, - const G4ParticleDefinition* p3) +void G4VEnergyLossProcess::SetParticles(const G4ParticleDefinition* p1, + const G4ParticleDefinition* p2) { particle = p1; baseParticle = p2; - secondaryParticle = p3; - G4bool yes = false; - if(particle) yes = particle->GetPDGCharge(); - if(baseParticle) { - if(!baseParticle->GetPDGCharge()) yes = false; - else { - if((particle->GetPDGMass() < MeV && - baseParticle->GetPDGMass() > MeV) || - (particle->GetPDGMass() > MeV && - baseParticle->GetPDGMass() < MeV)) yes = false; - } + G4bool yes = true; + if(particle && baseParticle) { + if((particle->GetPDGMass() < MeV && baseParticle->GetPDGMass() > MeV) || + (particle->GetPDGMass() > MeV && baseParticle->GetPDGMass() < MeV)) yes = false; + } if(!yes) { - G4cout << "Warning in G4VEnergyLossSTD::SetParticle: " + G4cout << "Warning in G4VEnergyLossProcess::SetParticle: " << particle->GetParticleName() << " losses cannot be obtained from " << baseParticle->GetParticleName() << " losses" << G4endl; + } else { + DefineBaseParticle(p1); } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::AddEmModel(G4int order, G4VEmModel* p, G4VEmFluctuationModel* fluc, +void G4VEnergyLossProcess::AddEmModel(G4int order, G4VEmModel* p, G4VEmFluctuationModel* fluc, const G4Region* region) { modelManager->AddEmModel(order, p, fluc, region); @@ -363,11 +357,18 @@ void G4VEnergyLossSTD::AddEmModel(G4int order, G4VEmModel* p, G4VEmFluctuationMo //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::AddSubCutoffProcessor(G4VSubCutoffProcessor* p, +void G4VEnergyLossProcess::UpdateEmModel(const G4String& nam, G4double emin, G4double emax) +{ + modelManager->UpdateEmModel(nam, emin, emax); +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossProcess::AddSubCutoffProcessor(G4VSubCutoffProcessor* p, const G4Region* r) { if( !p ) { - G4cout << "G4VEnergyLossSTD::AddSubCutoffProcessor WARNING: no SubCutoffProcessor defined." << G4endl; + G4cout << "G4VEnergyLossProcess::AddSubCutoffProcessor WARNING: no SubCutoffProcessor defined." << G4endl; return; } G4RegionStore* regionStore = G4RegionStore::GetInstance(); @@ -388,11 +389,11 @@ void G4VEnergyLossSTD::AddSubCutoffProcessor(G4VSubCutoffProcessor* p, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PhysicsTable* G4VEnergyLossSTD::BuildDEDXTable() +G4PhysicsTable* G4VEnergyLossProcess::BuildDEDXTable() { if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::BuildDEDXTable() for " + G4cout << "G4VEnergyLossProcess::BuildDEDXTable() for " << GetProcessName() << " and particle " << particle->GetParticleName() << G4endl; @@ -429,7 +430,7 @@ G4PhysicsTable* G4VEnergyLossSTD::BuildDEDXTable() } if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::BuildDEDXTable(): table is built for " + G4cout << "G4VEnergyLossProcess::BuildDEDXTable(): table is built for " << particle->GetParticleName() << G4endl; if(2 < verboseLevel) { @@ -442,11 +443,11 @@ G4PhysicsTable* G4VEnergyLossSTD::BuildDEDXTable() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PhysicsTable* G4VEnergyLossSTD::BuildDEDXTableForPreciseRange() +G4PhysicsTable* G4VEnergyLossProcess::BuildDEDXTableForPreciseRange() { if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::BuildDEDXTableForPreciseRange() for " + G4cout << "G4VEnergyLossProcess::BuildDEDXTableForPreciseRange() for " << GetProcessName() << " and particle " << particle->GetParticleName() << G4endl; @@ -483,7 +484,7 @@ G4PhysicsTable* G4VEnergyLossSTD::BuildDEDXTableForPreciseRange() } if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::BuildDEDXTableForPreciseRange(): table is built for " + G4cout << "G4VEnergyLossProcess::BuildDEDXTableForPreciseRange(): table is built for " << particle->GetParticleName() << G4endl; if(2 < verboseLevel) { @@ -496,11 +497,11 @@ G4PhysicsTable* G4VEnergyLossSTD::BuildDEDXTableForPreciseRange() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PhysicsTable* G4VEnergyLossSTD::BuildLambdaTable() +G4PhysicsTable* G4VEnergyLossProcess::BuildLambdaTable() { if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::BuildLambdaTable() for process " + G4cout << "G4VEnergyLossProcess::BuildLambdaTable() for process " << GetProcessName() << " and particle " << particle->GetParticleName() << G4endl; @@ -538,10 +539,10 @@ G4PhysicsTable* G4VEnergyLossSTD::BuildLambdaTable() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PhysicsTable* G4VEnergyLossSTD::BuildLambdaSubTable() +G4PhysicsTable* G4VEnergyLossProcess::BuildLambdaSubTable() { if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::BuildLambdaSubTable() for process " + G4cout << "G4VEnergyLossProcess::BuildLambdaSubTable() for process " << GetProcessName() << " and particle " << particle->GetParticleName() << G4endl; } @@ -575,7 +576,7 @@ G4PhysicsTable* G4VEnergyLossSTD::BuildLambdaSubTable() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, +G4VParticleChange* G4VEnergyLossProcess::AlongStepDoIt(const G4Track& track, const G4Step& step) { aParticleChange.Initialize(track); @@ -587,7 +588,7 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, G4double eloss = 0.0; G4bool b; - /* + /* if(-1 < verboseLevel) { const G4ParticleDefinition* d = track.GetDefinition(); G4cout << "AlongStepDoIt for " @@ -604,12 +605,12 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, // low energy deposit case if (length >= fRange) { eloss = preStepKinEnergy; - + } else if(preStepScaledEnergy <= lowKinEnergy) { G4double x = 1.0 - length/fRange; eloss = preStepKinEnergy*(1.0 - x*x); - + // Short step } else if( length <= linLossLimit * fRange ) { eloss = (((*theDEDXTable)[currentMaterialIndex])-> @@ -627,7 +628,7 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, GetValue(preStepScaledEnergy, b))*length*chargeSqRatio; } - /* + /* if(-1 < verboseLevel) { G4cout << "fRange(mm)= " << fRange/mm << " xPost(mm)= " << x/mm @@ -646,8 +647,8 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, G4double tmax = MaxSecondaryEnergy(dynParticle); tmax = std::min(tmax,(*theCuts)[currentMaterialIndex]); -/* - //G4double eloss0 = eloss; + /* + G4double eloss0 = eloss; if(-1 < verboseLevel) { //G4cout << *theDEDXTable << G4endl; G4cout << "eloss(MeV)= " << eloss/MeV @@ -656,14 +657,15 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, << " r0(mm)= " << (((*theRangeTable)[currentMaterialIndex])-> GetValue(preStepScaledEnergy, b)) << " tmax= " << tmax - << " mat= " << currentMaterial - << " matIdx= " << currentMaterialIndex - << " preCouple= " << (step.GetPreStepPoint())->GetMaterialCutsCouple() - << " postCouple= " << (step.GetPostStepPoint())->GetMaterialCutsCouple() - // << " rangeTable= " << theRangeTable + << " e-eloss= " << preStepKinEnergy-eloss + // << " mat= " << currentMaterial + // << " matIdx= " << currentMaterialIndex + // << " preCouple= " << (step.GetPreStepPoint())->GetMaterialCutsCouple() + // << " postCouple= " << (step.GetPostStepPoint())->GetMaterialCutsCouple() + // << " rangeTable= " << theRangeTable << G4endl; } -*/ + */ // Sample fluctuations if (lossFluctuationFlag && eloss < preStepKinEnergy && eloss > 0.0) { @@ -698,7 +700,7 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, t = (*newp)[i]; e = t->GetKineticEnergy(); const G4ParticleDefinition* pd = t->GetDefinition(); - if (pd != theGamma && pd != theElectron ) e += pd->GetPDGMass(); + if (pd != G4Gamma::Gamma() && pd != G4Electron::Electron() ) e += pd->GetPDGMass(); preStepKinEnergy -= e; aParticleChange.AddSecondary(t); @@ -707,6 +709,8 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, delete newp; } + preStepKinEnergy -= eloss; + /* if(-1 < verboseLevel) { G4cout << "eloss(MeV)= " << eloss/MeV @@ -716,9 +720,6 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, } */ - - preStepKinEnergy -= eloss; - if (preStepKinEnergy <= 0.0) { eloss += preStepKinEnergy; @@ -736,7 +737,7 @@ G4VParticleChange* G4VEnergyLossSTD::AlongStepDoIt(const G4Track& track, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4VParticleChange* G4VEnergyLossSTD::PostStepDoIt(const G4Track& track, +G4VParticleChange* G4VEnergyLossProcess::PostStepDoIt(const G4Track& track, const G4Step& step) { aParticleChange.Initialize(track); @@ -761,7 +762,7 @@ G4VParticleChange* G4VEnergyLossSTD::PostStepDoIt(const G4Track& track, /* if(0 < verboseLevel) { const G4ParticleDefinition* pd = dynParticle->GetDefinition(); - G4cout << "G4VEnergyLossSTD::PostStepDoIt: Sample secondary; E= " << finalT/MeV + G4cout << "G4VEnergyLossProcess::PostStepDoIt: Sample secondary; E= " << finalT/MeV << " MeV; model= (" << currentModel->LowEnergyLimit(pd) << ", " << currentModel->HighEnergyLimit(pd) << ")" << G4endl; @@ -772,7 +773,6 @@ G4VParticleChange* G4VEnergyLossSTD::PostStepDoIt(const G4Track& track, SecondariesPostStep(currentModel,currentCouple,dynParticle,tcut,finalT); if (finalT <= 0.0) { - // aParticleChange.SetLocalEnergyDeposit(finalT); aParticleChange.SetEnergyChange(0.0); if (hasRestProcess) aParticleChange.SetStatusChange(fStopButAlive); @@ -788,9 +788,11 @@ G4VParticleChange* G4VEnergyLossSTD::PostStepDoIt(const G4Track& track, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::PrintInfoDefinition() +void G4VEnergyLossProcess::PrintInfoDefinition() { - G4cout << G4endl << GetProcessName() << ": " << G4endl + G4cout << G4endl << GetProcessName() << ": tables are built for " + << particle->GetParticleName() + << G4endl << " dE/dx and range tables from " << G4BestUnit(minKinEnergy,"Energy") << " to " << G4BestUnit(maxKinEnergy,"Energy") @@ -799,7 +801,13 @@ void G4VEnergyLossSTD::PrintInfoDefinition() << G4BestUnit(maxKinEnergy,"Energy") << " in " << nLambdaBins << " bins." << G4endl; - /* + if(theRangeTable) { + G4cout << " Step function: finalRange(mm)= " << finalRange/mm + << ", dRoverRange= " << dRoverRange + << ", integral: " << integral + << G4endl; + } + /* G4cout << "DEDXTable address= " << theDEDXTable << G4endl; if(theDEDXTable) G4cout << (*theDEDXTable) << G4endl; G4cout << "RangeTable address= " << theRangeTable << G4endl; @@ -829,61 +837,68 @@ void G4VEnergyLossSTD::PrintInfoDefinition() //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetDEDXTable(G4PhysicsTable* p) +void G4VEnergyLossProcess::SetDEDXTable(G4PhysicsTable* p) { + if(theDEDXTable) theDEDXTable->clearAndDestroy(); theDEDXTable = p; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetRangeTable(G4PhysicsTable* p) +void G4VEnergyLossProcess::SetRangeTable(G4PhysicsTable* p) { + if(theRangeTable) theRangeTable->clearAndDestroy(); theRangeTable = p; size_t n = p->length(); - G4PhysicsVector* pv = (*p)[0]; - G4bool b; - size_t nbins = pv->GetVectorLength(); - highKinEnergyForRange = pv->GetLowEdgeEnergy(nbins); - theDEDXAtMaxEnergy = new G4double [n]; - theRangeAtMaxEnergy = new G4double [n]; + if(0 < n) { + G4PhysicsVector* pv = (*p)[0]; + G4bool b; + size_t nbins = pv->GetVectorLength(); + highKinEnergyForRange = pv->GetLowEdgeEnergy(nbins); + theDEDXAtMaxEnergy = new G4double [n]; + theRangeAtMaxEnergy = new G4double [n]; - for (size_t i=0; iGetLowEdgeEnergy(nbins-1); - G4double r1 = pv->GetValue(e1, b); - G4double e2 = pv->GetLowEdgeEnergy(nbins); - G4double r2 = pv->GetValue(e2, b); - G4double dedx = (e2-e1)/(r2-r1); - theDEDXAtMaxEnergy[i] = dedx; - theRangeAtMaxEnergy[i] = r2; + for (size_t i=0; iGetValue(highKinEnergyForRange, b); + G4double dedx = ((*theDEDXTable)[i])->GetValue(highKinEnergyForRange,b); + theDEDXAtMaxEnergy[i] = dedx; + theRangeAtMaxEnergy[i] = r2; + //G4cout << "i= " << i << " e2= " << e2 << " r2= " << r2 + //<< " dedx= " << dedx << G4endl; + } } } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetSecondaryRangeTable(G4PhysicsTable* p) +void G4VEnergyLossProcess::SetSecondaryRangeTable(G4PhysicsTable* p) { theSecondaryRangeTable = p; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetInverseRangeTable(G4PhysicsTable* p) +void G4VEnergyLossProcess::SetInverseRangeTable(G4PhysicsTable* p) { + if(theInverseRangeTable) theInverseRangeTable->clearAndDestroy(); theInverseRangeTable = p; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetLambdaTable(G4PhysicsTable* p) +void G4VEnergyLossProcess::SetLambdaTable(G4PhysicsTable* p) { + if(theLambdaTable) theLambdaTable->clearAndDestroy(); theLambdaTable = p; + tablesAreBuilt = true; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetSubLambdaTable(G4PhysicsTable* p) +void G4VEnergyLossProcess::SetSubLambdaTable(G4PhysicsTable* p) { + if(theSubLambdaTable) theSubLambdaTable->clearAndDestroy(); theSubLambdaTable = p; if (nSCoffRegions) { for (G4int i=0; iIsUsed() ) nbins = nDEDXBins; @@ -905,7 +920,7 @@ G4PhysicsVector* G4VEnergyLossSTD::DEDXPhysicsVector(const G4MaterialCutsCouple* //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PhysicsVector* G4VEnergyLossSTD::DEDXPhysicsVectorForPreciseRange( +G4PhysicsVector* G4VEnergyLossProcess::DEDXPhysicsVectorForPreciseRange( const G4MaterialCutsCouple* couple) { G4int nbins = 3; @@ -917,7 +932,7 @@ G4PhysicsVector* G4VEnergyLossSTD::DEDXPhysicsVectorForPreciseRange( //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PhysicsVector* G4VEnergyLossSTD::LambdaPhysicsVector(const G4MaterialCutsCouple* couple) +G4PhysicsVector* G4VEnergyLossProcess::LambdaPhysicsVector(const G4MaterialCutsCouple* couple) { G4double cut = (*theCuts)[couple->GetIndex()]; G4int nbins = 3; @@ -932,14 +947,14 @@ G4PhysicsVector* G4VEnergyLossSTD::LambdaPhysicsVector(const G4MaterialCutsCoupl //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4PhysicsVector* G4VEnergyLossSTD::SubLambdaPhysicsVector(const G4MaterialCutsCouple* couple) +G4PhysicsVector* G4VEnergyLossProcess::SubLambdaPhysicsVector(const G4MaterialCutsCouple* couple) { return LambdaPhysicsVector(couple); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4VEnergyLossSTD::MicroscopicCrossSection(G4double kineticEnergy, +G4double G4VEnergyLossProcess::MicroscopicCrossSection(G4double kineticEnergy, const G4MaterialCutsCouple* couple) { // Cross section per atom is calculated @@ -958,7 +973,7 @@ G4double G4VEnergyLossSTD::MicroscopicCrossSection(G4double kineticEnergy, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4VEnergyLossSTD::MeanFreePath(const G4Track& track, +G4double G4VEnergyLossProcess::MeanFreePath(const G4Track& track, G4double s, G4ForceCondition* cond) { @@ -967,7 +982,7 @@ G4double G4VEnergyLossSTD::MeanFreePath(const G4Track& track, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4double G4VEnergyLossSTD::ContinuousStepLimit(const G4Track& track, +G4double G4VEnergyLossProcess::ContinuousStepLimit(const G4Track& track, G4double x, G4double y, G4double& z) { return GetContinuousStepLimit(track, x, y, z); @@ -975,36 +990,58 @@ G4double G4VEnergyLossSTD::ContinuousStepLimit(const G4Track& track, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetStepLimits(G4double v1, G4double v2) +void G4VEnergyLossProcess::SetStepLimits(G4double v1, G4double v2) { dRoverRange = v1; finalRange = v2; + if (dRoverRange > 1.0) dRoverRange = 1.0; } + //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetParticle(const G4ParticleDefinition* p) +void G4VEnergyLossProcess::SetIntegral(G4bool val) +{ + if(integral != val) { + if(val) dRoverRange = defaultIntegralRange; + else dRoverRange = defaultRoverRange; + } + integral = val; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossProcess::SetStepFunction(G4double v1, G4double v2) +{ + dRoverRange = v1; + finalRange = v2; + if (dRoverRange > 0.999) dRoverRange = 1.0; +} + +//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... + +void G4VEnergyLossProcess::SetParticle(const G4ParticleDefinition* p) { particle = p; - if(!baseParticle) baseParticle = DefineBaseParticle(particle); + baseParticle = DefineBaseParticle(particle); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetBaseParticle(const G4ParticleDefinition* p) +void G4VEnergyLossProcess::SetBaseParticle(const G4ParticleDefinition* p) { baseParticle = p; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -void G4VEnergyLossSTD::SetSecondaryParticle(const G4ParticleDefinition* p) +void G4VEnergyLossProcess::SetSecondaryParticle(const G4ParticleDefinition* p) { secondaryParticle = p; } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -G4bool G4VEnergyLossSTD::StorePhysicsTable(G4ParticleDefinition* part, +G4bool G4VEnergyLossProcess::StorePhysicsTable(G4ParticleDefinition* part, const G4String& directory, G4bool ascii) { @@ -1057,22 +1094,26 @@ G4bool G4VEnergyLossSTD::StorePhysicsTable(G4ParticleDefinition* part, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -G4bool G4VEnergyLossSTD::RetrievePhysicsTable(G4ParticleDefinition* part, +G4bool G4VEnergyLossProcess::RetrievePhysicsTable(G4ParticleDefinition* part, const G4String& directory, G4bool ascii) { + G4bool res = true; currentCouple = 0; preStepLambda = 0.0; if(0 < verboseLevel) { - G4cout << "G4VEnergyLossSTD::RetrievePhysicsTable() for " - << part->GetParticleName() << " and process " - << GetProcessName() << G4endl; + G4cout << "========================================================" << G4endl; + G4cout << "G4VEnergyLossProcess::RetrievePhysicsTable() for " + << part->GetParticleName() << " and process " << GetProcessName() + << "; tables_are_built= " << tablesAreBuilt + << G4endl; } - G4bool res = true; const G4String particleName = part->GetParticleName(); - if( !particle ) particle = part; - if( !baseParticle ) baseParticle = DefineBaseParticle(particle); + if( !particle ) { + particle = part; + baseParticle = DefineBaseParticle(particle); + } if(particleName != "GenericIon" && part->GetParticleType() == "nucleus" && @@ -1082,159 +1123,141 @@ G4bool G4VEnergyLossSTD::RetrievePhysicsTable(G4ParticleDefinition* part, return res; } - if( baseParticle ) return true; + if(tablesAreBuilt) return res; Initialise(); - G4bool yes = true; - if ( !baseParticle ) { - G4PhysicsTable* table; - G4String filename; - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); + // Recalculation is needed because cuts were changed or recalculation is forced + G4LossTableManager* lManager = G4LossTableManager::Instance(); + if ( lManager->IsRecalcNeeded(particle)) { - filename = GetPhysicsTableFileName(part,directory,"DEDX",ascii); - table = new G4PhysicsTable(numOfCouples); - yes = table->RetrievePhysicsTable(filename,ascii); - if ( yes ) { - SetDEDXTable(table); - if (0 < verboseLevel) { - G4cout << "DEDX table for " << particleName << " is retrieved from <" - << filename << ">" - << G4endl; - } - } else { - table->clearAndDestroy(); - if (0 < verboseLevel) { - G4cout << "DEDX table for " << particleName << " in file <" - << filename << "> is not exist" - << G4endl; - } - } + G4bool yes = true; + G4bool fpi = true; + if ( !baseParticle ) { + G4PhysicsTable* table; + G4String filename; + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); - filename = GetPhysicsTableFileName(part,directory,"Range",ascii); - table = new G4PhysicsTable(numOfCouples); - yes = table->RetrievePhysicsTable(filename,ascii); - if ( yes ) { - SetRangeTable(table); - if (0 < verboseLevel) { - G4cout << "Range table for " << particleName << " is retrieved from <" - << filename << ">" - << G4endl; + filename = GetPhysicsTableFileName(part,directory,"DEDX",ascii); + + table = new G4PhysicsTable(numOfCouples); + yes = table->ExistPhysicsTable(filename); + if(yes) yes = table->RetrievePhysicsTable(filename,ascii); + if(yes) { + SetDEDXTable(table); + if (-1 < verboseLevel) { + G4cout << "DEDX table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } + } else { + fpi = false; + table->clearAndDestroy(); + if (0 < verboseLevel) { + G4cout << "DEDX table for " << particleName << " in file <" + << filename << "> is not retrieved" + << G4endl; + } } - } else { - table->clearAndDestroy(); - if (0 < verboseLevel) { - G4cout << "Range table for " << particleName << " in file <" - << filename << "> is not exist" - << G4endl; - } - } - filename = GetPhysicsTableFileName(part,directory,"InverseRange",ascii); - table = new G4PhysicsTable(numOfCouples); - yes = table->RetrievePhysicsTable(filename,ascii); - if ( yes ) { - SetInverseRangeTable(table); - if (0 < verboseLevel) { - G4cout << "InverseRange table for " << particleName << " is retrieved from <" - << filename << ">" - << G4endl; + filename = GetPhysicsTableFileName(part,directory,"Range",ascii); + table = new G4PhysicsTable(numOfCouples); + yes = table->ExistPhysicsTable(filename); + if(yes) yes = table->RetrievePhysicsTable(filename,ascii); + if(yes) { + SetRangeTable(table); + if (-1 < verboseLevel) { + G4cout << "Range table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } + } else { + table->clearAndDestroy(); + if(fpi) { + res = false; + G4cout << "Range table for " << particleName << " in file <" + << filename << "> is not retrieved" + << G4endl; + } } - } else { - table->clearAndDestroy(); - if (0 < verboseLevel) { - G4cout << "InverseRange table for " << particleName << " in file <" - << filename << "> is not exist" - << G4endl; - } - } - filename = GetPhysicsTableFileName(part,directory,"Lambda",ascii); - table = new G4PhysicsTable(numOfCouples); - yes = table->RetrievePhysicsTable(filename,ascii); - if ( yes ) { - SetLambdaTable(table); - if (0 < verboseLevel) { - G4cout << "Lambda table for " << particleName << " is retrieved from <" - << filename << ">" - << G4endl; - } - } else { - table->clearAndDestroy(); - if (0 < verboseLevel) { - G4cout << "Lambda table for " << particleName << " in file <" - << filename << "> is not exist" - << G4endl; - } - } + filename = GetPhysicsTableFileName(part,directory,"InverseRange",ascii); + table = new G4PhysicsTable(numOfCouples); + yes = table->ExistPhysicsTable(filename); + if(yes) yes = table->RetrievePhysicsTable(filename,ascii); + if(yes) { + SetInverseRangeTable(table); + if (-1 < verboseLevel) { + G4cout << "InverseRange table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } + } else { + table->clearAndDestroy(); + if(fpi) { + res = false; + G4cout << "InverseRange table for " << particleName << " in file <" + << filename << "> is not retrieved" + << G4endl; - filename = GetPhysicsTableFileName(part,directory,"SubLambda",ascii); - table = new G4PhysicsTable(numOfCouples); - yes = table->RetrievePhysicsTable(filename,ascii); - if ( yes ) { - SetSubLambdaTable(table); - if (0 < verboseLevel) { - G4cout << "SubLambda table for " << particleName << " is retrieved from <" - << filename << ">" - << G4endl; + } } - } else { - table->clearAndDestroy(); - if (0 < verboseLevel) { - G4cout << "SubLambda table for " << particleName << " in file <" - << filename << "> is not exist" - << G4endl; + + filename = GetPhysicsTableFileName(part,directory,"Lambda",ascii); + table = new G4PhysicsTable(numOfCouples); + yes = table->ExistPhysicsTable(filename); + if(yes) yes = table->RetrievePhysicsTable(filename,ascii); + if(yes) { + SetLambdaTable(table); + if (-1 < verboseLevel) { + G4cout << "Lambda table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } + } else { + table->clearAndDestroy(); + if(fpi) { + res = false; + G4cout << "Lambda table for " << particleName << " in file <" + << filename << "> is not retrieved" + << G4endl; + } + } + + filename = GetPhysicsTableFileName(part,directory,"SubLambda",ascii); + table = new G4PhysicsTable(numOfCouples); + yes = table->ExistPhysicsTable(filename); + if(yes) yes = table->RetrievePhysicsTable(filename,ascii); + if(yes) { + SetSubLambdaTable(table); + if (-1 < verboseLevel) { + G4cout << "SubLambda table for " << particleName << " is retrieved from <" + << filename << ">" + << G4endl; + } + } else { + table->clearAndDestroy(); + if(nSCoffRegions) { + res=false; + G4cout << "SubLambda table for " << particleName << " in file <" + << filename << "> is not retrieved" + << G4endl; + } + } + if(res) PrintInfoDefinition(); + else { + G4cout << "### BuildPhysicsTable will be requested for " << GetProcessName() + << " for " << particleName << G4endl; } } tablesAreBuilt = true; } - (G4LossTableManager::Instance())->RetrievePhysicsTables(particle, this); + lManager->RetrievePhysicsTables(particle, this); - - if(!baseParticle) PrintInfoDefinition(); return res; } -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... -/* - -G4double G4VEnergyLossSTD::GetContinuousStepLimit(const G4Track&, - G4double, G4double currentMinimumStep, G4double& currentSafety) -{ - G4double x = DBL_MAX; - - if (theRangeTable) { - G4bool b; - fRange = ((*theRangeTable)[currentMaterialIndex])-> - GetValue(preStepScaledEnergy, b)*reduceFactor; - x = fRange; - G4double r = std::min(finalRange, currentCouple->GetProductionCuts() - ->GetProductionCut(idxG4ElectronCut)); - if( integral ) { - if(x < currentMinimumStep && x > r) x *= 0.8; - } else { - if (fRange > r) { - - x = dRoverRange*fRange + r*(1.0 - dRoverRange)*(2.0 - r/fRange); - if(rndmStepFlag) x = r + (x-r)*G4UniformRand(); - if(x > fRange) x = fRange; - } - } - } - - return x; -} -*/ -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... - -void G4VEnergyLossSTD::SetRangeCoeff(G4double val) -{ - if (val > 0.0) { - if (val < 1.0) rangeCoeff = val; - else rangeCoeff = 1.0; - } -} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.... diff --git a/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc b/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc index ed0a48f123..da794572ee 100644 --- a/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc +++ b/source/processes/electromagnetic/utils/src/G4VMultipleScattering.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// $Id: G4VMultipleScattering.cc,v 1.21 2003/11/11 14:05:10 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------------- // @@ -33,9 +35,12 @@ // Creation date: 25.03.2003 // // Modifications: -// +// // 13.04.03 Change printout (V.Ivanchenko) // 04-06-03 Fix compilation warnings (V.Ivanchenko) +// 16-07-03 Use G4VMscModel interface (V.Ivanchenko) +// 03-11-03 Fix initialisation problem in RetrievePhysicsTable (V.Ivanchenko) +// 04-11-03 Update PrintInfoDefinition (V.Ivanchenko) // // // Class Description: @@ -52,7 +57,6 @@ #include "G4LossTableManager.hh" #include "G4Step.hh" #include "G4ParticleDefinition.hh" -#include "G4VEmModel.hh" #include "G4VEmFluctuationModel.hh" #include "G4DataVector.hh" #include "G4PhysicsTable.hh" @@ -72,13 +76,14 @@ G4VMultipleScattering::G4VMultipleScattering(const G4String& name, G4ProcessType navigator(0), theLambdaTable(0), currentCouple(0), - nBins(110), - minKinEnergy(1.0*eV), - maxKinEnergy(100.0*GeV), + nBins(120), boundary(false), latDisplasment(true), buildLambdaTable(true) { + minKinEnergy = 100.0*eV; + maxKinEnergy = 100.0*TeV; + SetVerboseLevel(0); modelManager = new G4EmModelManager(); (G4LossTableManager::Instance())->Register(this); @@ -101,35 +106,27 @@ G4VMultipleScattering::~G4VMultipleScattering() void G4VMultipleScattering::BuildPhysicsTable(const G4ParticleDefinition& part) { + currentParticle = ∂ currentCouple = 0; if(0 < verboseLevel) { - G4cout << "G4VMultipleScattering::BuildPhysicsTable() for " + G4cout << "========================================================" << G4endl; + G4cout << "### G4VMultipleScattering::BuildPhysicsTable() for " << GetProcessName() << " and particle " << part.GetParticleName() << G4endl; } - G4bool cutsWasModified = false; - const G4ProductionCutsTable* theCoupleTable= - G4ProductionCutsTable::GetProductionCutsTable(); - size_t numOfCouples = theCoupleTable->GetTableSize(); - - for (size_t j=0; jGetMaterialCutsCouple(j)->IsRecalcNeeded()) { - cutsWasModified = true; - break; - } - } - if( !cutsWasModified ) return; InitialiseProcess(part); if(latDisplasment) navigator = G4TransportationManager::GetTransportationManager() ->GetNavigatorForTracking(); - modelManager->Clear(); const G4DataVector* theCuts = modelManager->Initialise(&part, 0, 10.0, verboseLevel); if (buildLambdaTable) { + const G4ProductionCutsTable* theCoupleTable= + G4ProductionCutsTable::GetProductionCutsTable(); + size_t numOfCouples = theCoupleTable->GetTableSize(); theLambdaTable = new G4PhysicsTable(numOfCouples); for (size_t i=0; i0 || num == "e-" || num == "mu+" || num == "proton") - PrintInfoDefinition(); + if (verboseLevel>0 || num == "e-" || num == "mu+" || num == "proton" + || num == "pi-") PrintInfoDefinition(); if(0 < verboseLevel) { - G4cout << "G4VMultipleScattering::BuildPhysicsTable() done for " + G4cout << "### G4VMultipleScattering::BuildPhysicsTable() done for " << GetProcessName() << " and particle " << part.GetParticleName() << G4endl; @@ -243,7 +240,9 @@ G4VParticleChange* G4VMultipleScattering::PostStepDoIt(const G4Track& track, void G4VMultipleScattering::PrintInfoDefinition() { - G4cout << G4endl << GetProcessName() << ": Model variant of multiple scattering " << G4endl; + G4cout << G4endl << GetProcessName() << ": Model variant of multiple scattering " + << "for " << currentParticle->GetParticleName() + << G4endl; if (theLambdaTable) { G4cout << " Lambda tables from " << G4BestUnit(MinKinEnergy(),"Energy") @@ -298,16 +297,24 @@ G4bool G4VMultipleScattering::StorePhysicsTable(G4ParticleDefinition* part, //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4bool G4VMultipleScattering::RetrievePhysicsTable(G4ParticleDefinition* part, - const G4String& directory, - G4bool ascii) + const G4String& directory, + G4bool ascii) { + currentParticle = part; if(0 < verboseLevel) { + G4cout << "========================================================" << G4endl; G4cout << "G4VMultipleScattering::RetrievePhysicsTable() for " << part->GetParticleName() << " and process " << GetProcessName() << G4endl; } - G4bool res = true; - if(!buildLambdaTable) return res; + + InitialiseProcess(*part); + if(latDisplasment) navigator = G4TransportationManager::GetTransportationManager() + ->GetNavigatorForTracking(); + + const G4DataVector* theCuts = modelManager->Initialise(part, 0, 10.0, verboseLevel); + if(5 < verboseLevel) G4cout << theCuts << G4endl; + if(!buildLambdaTable) return true; G4String num = part->GetParticleName(); const G4ProductionCutsTable* theCoupleTable= @@ -316,9 +323,9 @@ G4bool G4VMultipleScattering::RetrievePhysicsTable(G4ParticleDefinition* part, G4String filename = GetPhysicsTableFileName(part,directory,"Lambda",ascii); theLambdaTable = new G4PhysicsTable(numOfCouples); - res = theLambdaTable->RetrievePhysicsTable(filename,ascii); + G4bool res = theLambdaTable->RetrievePhysicsTable(filename,ascii); if ( res ) { - if (0 < verboseLevel) { + if (-1 < verboseLevel) { G4cout << "Lambda table for " << num << " is retrieved from <" << filename << ">" << G4endl; @@ -326,7 +333,7 @@ G4bool G4VMultipleScattering::RetrievePhysicsTable(G4ParticleDefinition* part, } else { theLambdaTable->clearAndDestroy(); theLambdaTable = 0; - if (0 < verboseLevel) { + if (-1 < verboseLevel) { G4cout << "Lambda table for " << num << " in file <" << filename << "> is not exist" << G4endl; diff --git a/source/processes/electromagnetic/xrays/GNUmakefile b/source/processes/electromagnetic/xrays/GNUmakefile index 247054795b..ba6690bc9f 100644 --- a/source/processes/electromagnetic/xrays/GNUmakefile +++ b/source/processes/electromagnetic/xrays/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2002/01/15 16:45:54 grichine Exp $ +# $Id: GNUmakefile,v 1.5 2003/10/03 15:35:05 gcosmo Exp $ # -------------------------------------------------------------------- # GNUmakefile for electromagnetic sub-library. John Allison, 25/6/98. # -------------------------------------------------------------------- @@ -18,8 +18,10 @@ CPPFLAGS += \ -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)/processes/management/include \ + -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/bosons/include \ -I$(G4BASE)/particles/leptons/include \ diff --git a/source/processes/electromagnetic/xrays/History b/source/processes/electromagnetic/xrays/History index 7e9f376cb2..38eccbc18d 100644 --- a/source/processes/electromagnetic/xrays/History +++ b/source/processes/electromagnetic/xrays/History @@ -1,4 +1,4 @@ -$Id: History,v 1.25 2003/06/20 15:58:58 vnivanch Exp $ +$Id: History,v 1.27 2003/10/03 15:35:05 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,15 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +4 Oct 03: G.Cosmo (xrays-V05-02-01) +- Modified GNUmakefiles: + o added dependency to new module "geometry/navigation". + o replaced "digits+hits" with "digits_hits". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +20 Sept 03: V.Ivant (xrays-V05-02-00) +-Update GNUmakefile + 20 June 03: V.Ivant (xrays-V05-01-01) -modifications in BuildTable: angle range 0-0.3, Legendre96 integration in0-0.3-0.6-1.0*fMaxThetaTR" in G4VXTRenergyLoss.cc diff --git a/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh b/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh index 6c8c2c2983..bcd32a4e09 100644 --- a/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh +++ b/source/processes/electromagnetic/xrays/include/G4Cerenkov.hh @@ -22,7 +22,7 @@ // // // $Id: G4Cerenkov.hh,v 1.5 2001/07/11 10:03:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh b/source/processes/electromagnetic/xrays/include/G4ForwardXrayTR.hh index 39df7bc992..bcfd9b3d4b 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.11 2003/06/16 17:02:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4ForwardXrayTR -- header file // diff --git a/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4GammaXTRadiator.hh index 291279b785..66614c5d18 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.1 2002/01/22 15:22:53 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh b/source/processes/electromagnetic/xrays/include/G4RegularXTRadiator.hh index ddc8977d04..b51d58f386 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh index 6589b170dc..ebe2aa7d3d 100644 --- a/source/processes/electromagnetic/xrays/include/G4Scintillation.hh +++ b/source/processes/electromagnetic/xrays/include/G4Scintillation.hh @@ -22,7 +22,7 @@ // // // $Id: G4Scintillation.hh,v 1.11 2002/11/25 18:48:51 gum Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh index 55221dbb85..43d74c82fd 100644 --- a/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh +++ b/source/processes/electromagnetic/xrays/include/G4TransitionRadiation.hh @@ -22,7 +22,7 @@ // // // $Id: G4TransitionRadiation.hh,v 1.7 2003/06/03 08:11:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4TransitionRadiation -- header file // diff --git a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh index b745e55bcd..b3226361ce 100644 --- a/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh +++ b/source/processes/electromagnetic/xrays/include/G4VXTRenergyLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4VXTRenergyLoss.hh,v 1.5 2003/06/16 17:02:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // /////////////////////////////////////////////////////////////////////////// diff --git a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc index e609572014..5f294db4f5 100644 --- a/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc +++ b/source/processes/electromagnetic/xrays/src/G4Cerenkov.cc @@ -22,7 +22,7 @@ // // // $Id: G4Cerenkov.cc,v 1.14 2003/02/12 08:52:55 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // Cerenkov Radiation Class Implementation diff --git a/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc b/source/processes/electromagnetic/xrays/src/G4ForwardXrayTR.cc index 959cbef5f3..5c30ed9db1 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.10 2003/06/03 08:11:01 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4ForwardXrayTR class -- implementation file diff --git a/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4GammaXTRadiator.cc index 3425b1c463..e2ad0205f9 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.2 2003/06/16 17:02:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc b/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc index 0dcfd8f389..c27b725f9c 100644 --- a/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc +++ b/source/processes/electromagnetic/xrays/src/G4RegularXTRadiator.cc @@ -22,7 +22,7 @@ // // // $Id: G4RegularXTRadiator.cc,v 1.3 2003/06/16 17:02:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/processes/electromagnetic/xrays/src/G4Scintillation.cc b/source/processes/electromagnetic/xrays/src/G4Scintillation.cc index 6f38837fcf..1ca9bb3cef 100644 --- a/source/processes/electromagnetic/xrays/src/G4Scintillation.cc +++ b/source/processes/electromagnetic/xrays/src/G4Scintillation.cc @@ -22,7 +22,7 @@ // // // $Id: G4Scintillation.cc,v 1.18 2003/06/16 17:02:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // Scintillation Light Class Implementation diff --git a/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc b/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc index 26e4646afe..63a35498cb 100644 --- a/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc +++ b/source/processes/electromagnetic/xrays/src/G4TransitionRadiation.cc @@ -22,7 +22,7 @@ // // // $Id: G4TransitionRadiation.cc,v 1.3 2001/07/11 10:03:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4TransitionRadiation class -- implementation file diff --git a/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc b/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc index 078d465840..53f284fe28 100644 --- a/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc +++ b/source/processes/electromagnetic/xrays/src/G4VXTRenergyLoss.cc @@ -23,7 +23,7 @@ // // $Id: G4VXTRenergyLoss.cc,v 1.11 2003/06/20 15:10:20 grichine Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // History: // 2001-2002 R&D by V.Grichine diff --git a/source/processes/hadronic/GNUmakefile b/source/processes/hadronic/GNUmakefile index 4b03c700da..54dcb3d7a8 100644 --- a/source/processes/hadronic/GNUmakefile +++ b/source/processes/hadronic/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.12 2002/12/13 12:57:24 gcosmo Exp $ +# $Id: GNUmakefile,v 1.16 2003/11/24 12:54:22 gcosmo Exp $ # ---------------------------------------------------------------- # GNUmakefile for hadronic processes library. G.Folger 10-Dec-97. # ---------------------------------------------------------------- @@ -10,58 +10,78 @@ SUBDIRS += util SUBDIRS += processes SUBDIRS += cross_sections SUBDIRS += stopping -SUBDIRS += models/low_energy -SUBDIRS += models/high_energy -SUBDIRS += models/neutron_hp -SUBDIRS += models/isotope_production -SUBDIRS += models/radiative_decay -SUBDIRS += models/generator/de_excitation -SUBDIRS += models/generator/diffractive_string -SUBDIRS += models/generator/high_energy -SUBDIRS += models/generator/kinetic_model -SUBDIRS += models/generator/management -SUBDIRS += models/generator/pre_equilibrium -SUBDIRS += models/generator/quark_gluon_string -SUBDIRS += models/generator/scattering -SUBDIRS += models/generator/string_common -SUBDIRS += models/generator/string_fragmentation -SUBDIRS += models/generator/util -SUBDIRS += models/chiral_inv_phase_space/body -SUBDIRS += models/chiral_inv_phase_space/interface -SUBDIRS += models/coherent_elastic + + +SUBDIRS += models/binary_cascade SUBDIRS += models/cascade/evaporation SUBDIRS += models/cascade/utils SUBDIRS += models/cascade/cascade +SUBDIRS += models/chiral_inv_phase_space/body +SUBDIRS += models/chiral_inv_phase_space/interface +SUBDIRS += models/coherent_elastic +SUBDIRS += models/de_excitation/evaporation +SUBDIRS += models/de_excitation/fermi_breakup +SUBDIRS += models/de_excitation/fission +SUBDIRS += models/de_excitation/gem_evaporation +SUBDIRS += models/de_excitation/handler +SUBDIRS += models/de_excitation/management +SUBDIRS += models/de_excitation/multifragmentation +SUBDIRS += models/de_excitation/photon_evaporation +SUBDIRS += models/de_excitation/util +SUBDIRS += models/high_energy +SUBDIRS += models/im_r_matrix +SUBDIRS += models/isotope_production SUBDIRS += models/leading_particle +SUBDIRS += models/low_energy +SUBDIRS += models/management +SUBDIRS += models/neutron_hp +SUBDIRS += models/photolepton_hadron/muon_nuclear +SUBDIRS += models/parton_string/diffraction +SUBDIRS += models/parton_string/hadronization +SUBDIRS += models/parton_string/management +SUBDIRS += models/parton_string/qgsm +SUBDIRS += models/pre_equilibrium/exciton_model +SUBDIRS += models/radioactive_decay +SUBDIRS += models/theo_high_energy +SUBDIRS += models/util -SUBLIBS = G4hadronic_mgt -SUBLIBS += G4hadronic_util -SUBLIBS += G4hadronic_proc -SUBLIBS += G4hadronic_xsect -SUBLIBS += G4hadronic_stop -SUBLIBS += G4hadronic_neu -SUBLIBS += G4hadronic_iso -SUBLIBS += G4hadronic_HE -SUBLIBS += G4hadronic_LE -SUBLIBS += G4hadronic_deex -SUBLIBS += G4hadronic_diffstring -SUBLIBS += G4hadronic_HE_gen -SUBLIBS += G4hadronic_kinetic -SUBLIBS += G4hadronic_man_gen -SUBLIBS += G4hadronic_preequ -SUBLIBS += G4hadronic_radioactivedecay -SUBLIBS += G4hadronic_qgstring -SUBLIBS += G4hadronic_scattering -SUBLIBS += G4hadronic_string_common -SUBLIBS += G4hadronic_stringfrag -SUBLIBS += G4hadronic_util_gen -SUBLIBS += G4hadronic_body_ci -SUBLIBS += G4hadronic_interface_ci -SUBLIBS += G4hadronic_coherent_elastic -SUBLIBS += G4hadronic_hetcpp_evaporation -SUBLIBS += G4hadronic_hetcpp_utils -SUBLIBS += G4hadronic_bert_cascade -SUBLIBS += G4hadronic_leading_particle +SUBLIBS = G4hadronic_xsect +SUBLIBS += G4hadronic_mgt +SUBLIBS += G4hadronic_proc +SUBLIBS += G4hadronic_stop +SUBLIBS += G4hadronic_util +SUBLIBS += G4hadronic_binary +SUBLIBS += G4hadronic_coherent_elastic +SUBLIBS += G4hadronic_HE +SUBLIBS += G4had_im_r_matrix +SUBLIBS += G4hadronic_iso +SUBLIBS += G4hadronic_leading_particle +SUBLIBS += G4hadronic_LE +SUBLIBS += G4had_mod_man +SUBLIBS += G4had_neu_hp +SUBLIBS += G4hadronic_radioactivedecay +SUBLIBS += G4had_theo_max +SUBLIBS += G4had_mod_util +SUBLIBS += G4hadronic_bert_cascade +SUBLIBS += G4hadronic_hetcpp_evaporation +SUBLIBS += G4hadronic_hetcpp_utils +SUBLIBS += G4hadronic_body_ci +SUBLIBS += G4hadronic_interface_ci +SUBLIBS += G4hadronic_deex_evaporation +SUBLIBS += G4hadronic_deex_fermi_breakup +SUBLIBS += G4hadronic_deex_fission +SUBLIBS += G4hadronic_deex_gem_evaporation +SUBLIBS += G4hadronic_deex_handler +SUBLIBS += G4hadronic_deex_management +SUBLIBS += G4hadronic_deex_multifragmentation +SUBLIBS += G4hadronic_deex_photon_evaporation +SUBLIBS += G4hadronic_deex_util +SUBLIBS += G4had_preequ_exciton +SUBLIBS += G4had_muon_nuclear +SUBLIBS += G4had_string_diff +SUBLIBS += G4had_string_frag +SUBLIBS += G4had_string_man +SUBLIBS += G4hadronic_qgstring ifndef G4INSTALL G4INSTALL = ../../.. diff --git a/source/processes/hadronic/cross_sections/GNUmakefile b/source/processes/hadronic/cross_sections/GNUmakefile index 871bf1f984..7f7ef0eb6c 100644 --- a/source/processes/hadronic/cross_sections/GNUmakefile +++ b/source/processes/hadronic/cross_sections/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2003/06/03 10:16:32 jwellisc Exp $ +# $Id: GNUmakefile,v 1.4 2003/11/01 16:18:27 hpw Exp $ # ---------------------------------------------------------------- # GNUmakefile for hadronic management library. G.Folger 10-Dec-97 # ---------------------------------------------------------------- @@ -24,6 +24,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/barions/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/materials/include include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh index 8e4549427e..0927992fcc 100644 --- a/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh +++ b/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4ElectroNuclearCrossSection.hh,v 1.10 2003/06/16 17:03:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // GEANT4 physics class: G4ElectroNuclearCrossSection -- header file // M.V. Kossov, ITEP(Moscow), 24-OCT-01 -// The last update: M.V. Kossov, CERN/ITEP (Moscow) 17-May-02 +// The last update: M.V. Kossov, CERN/ITEP (Moscow) 25-Sept-03 // #ifndef G4ElectroNuclearCrossSection_h @@ -139,27 +138,25 @@ inline G4double G4ElectroNuclearCrossSection::ThresholdEnergy(G4int Z, G4int N) return dN; } -inline G4double G4ElectroNuclearCrossSection::DFun(G4double /* x */) // Original PhoNuc cross section +inline G4double G4ElectroNuclearCrossSection::DFun(G4double x)// Parametrization of the PhotoNucCS { static const G4double shd=1.0734; // HE PomShadowing(D) static const G4double poc=0.0375; // HE Pomeron coefficient static const G4double pos=16.5; // HE Pomeron shift static const G4double reg=.11; // HE Reggeon slope - static const G4double mel=0.5109989; // Mass of electron in MeV - static const G4double lmel=log(mel); // Log of electron mass - G4double lE=lastG+lmel; - return poc*(lE-pos)+shd*exp(-reg*lE); + static const G4double mel=0.5109989; // Mass of an electron in MeV + static const G4double lmel=log(mel); // Log of an electron mass + G4double y=exp(x-lastG-lmel); // y for the x + G4double flux=lastG*(2.-y*(2.-y))-1.; // flux factor + return (poc*(x-pos)+shd*exp(-reg*x))*flux; } -inline G4double G4ElectroNuclearCrossSection::Fun(G4double /* x */) // Integrated PhoNuc cross section +inline G4double G4ElectroNuclearCrossSection::Fun(G4double x) // Integrated PhoNuc cross section { - static const G4double mel=0.5109989; // Mass of electron in MeV - static const G4double lmel=log(mel); // Log of electron mass G4double dlg1=lastG+lastG-1.; G4double lgoe=lastG/lastE; - G4double lE=lastG+lmel; - G4double HE2=HighEnergyJ2(lE); - return dlg1*HighEnergyJ1(lE)-lgoe*(HE2+HE2-HighEnergyJ3(lE)/lastE); + G4double HE2=HighEnergyJ2(x); + return dlg1*HighEnergyJ1(x)-lgoe*(HE2+HE2-HighEnergyJ3(x)/lastE); } inline G4double G4ElectroNuclearCrossSection::HighEnergyJ1(G4double lEn) @@ -185,7 +182,8 @@ inline G4double G4ElectroNuclearCrossSection::HighEnergyJ2(G4double lEn) static const G4double d=1.-0.11; // 1-d static const G4double cd=1.0734/d; // c/(1-d) static const G4double ele=exp(d*le); // E0^(1-d) - return a*((lEn-1.)*lastE-le1)-ab*(lastE-e)+cd*(exp(d*lEn)-ele); + G4double En=exp(lEn); + return a*((lEn-1.)*En-le1)-ab*(En-e)+cd*(exp(d*lEn)-ele); } inline G4double G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn) @@ -199,7 +197,7 @@ inline G4double G4ElectroNuclearCrossSection::HighEnergyJ3(G4double lEn) static const G4double d=2.-.11; // 2-d static const G4double cd=1.0734/d; // c/(2-d) static const G4double ele=exp(d*le); // E0^(2-d) - G4double lastE2=lastE*lastE; + G4double lastE2=exp(lEn+lEn); return ha*((lEn-.5)*lastE2-leh)-hab*(lastE2-e2)+cd*(exp(d*lEn)-ele); } diff --git a/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh b/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh index 77886b5fc5..c636a4a41a 100644 --- a/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh +++ b/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh @@ -21,8 +21,7 @@ // ******************************************************************** // // -// $Id: G4HadronCrossSections.hh,v 1.9 2003/06/03 09:21:38 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // GEANT4 Hadron physics class -- header file diff --git a/source/processes/hadronic/cross_sections/include/G4IonsKoxCrossSection.hh b/source/processes/hadronic/cross_sections/include/G4IonsKoxCrossSection.hh new file mode 100644 index 0000000000..3bbb9f6a6f --- /dev/null +++ b/source/processes/hadronic/cross_sections/include/G4IonsKoxCrossSection.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. * +// ******************************************************************** +// +#ifndef G4IonsKoxCrossSection_h +#define G4IonsKoxCrossSection_h +// +// Class Description +// Implementation of Kox formulas +// Kox et al. Phys. Rev. C 35 1678 (1987); +// Total Reaction Cross Section for Nucleus-nucles reactions. +// +// Class Description - End +// 18-Sep-2003 First version is written by T. Koi +// 12-Nov-2003 Set upper limit at 10 GeV/n +// 12-Nov-2003 Insted of the lower limit, +// 0 is returned to a partilce with energy lowae than 10 MeV/n + +#include "globals.hh" +#include "G4Proton.hh" + +#include "G4VCrossSectionDataSet.hh" + +class G4IonsKoxCrossSection : public G4VCrossSectionDataSet +{ + public: + G4IonsKoxCrossSection(): + upperLimit ( 10 * GeV ), + lowerLimit ( 10 * MeV ), + r0 ( 1.1 * fermi ), + rc ( 1.3 * fermi ) + { + } + + + virtual + G4bool IsApplicable(const G4DynamicParticle* aDP, const G4Element*) + { + G4int baryonNumber = aDP->GetDefinition()->GetBaryonNumber(); + G4double kineticEnergy = aDP->GetKineticEnergy(); + if ( kineticEnergy / baryonNumber <= upperLimit ) + return true; + return false; + } + + virtual + G4double GetCrossSection(const G4DynamicParticle*, + const G4Element*, G4double aTemperature); + + virtual + void BuildPhysicsTable(const G4ParticleDefinition&) + {} + + virtual + void DumpPhysicsTable(const G4ParticleDefinition&) + {G4cout << "G4IonsKoxCrossSection: uses Kox formula"<GetDefinition()->GetBaryonNumber(); + G4double kineticEnergy = aDP->GetKineticEnergy(); + if ( kineticEnergy / baryonNumber <= upperLimit ) + return true; + return false; + } + + virtual + G4double GetCrossSection(const G4DynamicParticle*, + const G4Element*, G4double aTemperature); + + virtual + void BuildPhysicsTable(const G4ParticleDefinition&) + {} + + virtual + void DumpPhysicsTable(const G4ParticleDefinition&) + {G4cout << "G4IonsShenCrossSection: uses Shen formula"<MeV/nucleon +// Class Description - End +// + +#include "globals.hh" +#include "G4Proton.hh" + +#include "G4VCrossSectionDataSet.hh" + +class G4IonsSihverCrossSection : public G4VCrossSectionDataSet +{ + public: + G4IonsSihverCrossSection (): + square_r0 ( ( 1.36 * fermi ) * ( 1.36 * fermi ) ) + { + } + + virtual + G4bool IsApplicable(const G4DynamicParticle* aDP, const G4Element*) + { + G4int BaryonNumber = aDP->GetDefinition()->GetBaryonNumber(); + G4double KineticEnergy = aDP->GetKineticEnergy(); + if ( KineticEnergy / BaryonNumber >= 100*MeV && BaryonNumber > 1 ) + return true; + return false; + } + + virtual + G4double GetCrossSection(const G4DynamicParticle*, + const G4Element*, G4double aTemperature); + + virtual + void BuildPhysicsTable(const G4ParticleDefinition&) + {} + + virtual + void DumpPhysicsTable(const G4ParticleDefinition&) + {G4cout << "tG4GIonCrossSection: uses formula"<= 0; i--) { if (DataSetList[i]->IsApplicable(aParticle, anElement)) return DataSetList[i]->GetCrossSection(aParticle, anElement, aTemperature); } - G4Exception("G4CrossSectionDataStore: no applicable data set found " - "for particle/element"); + throw G4HadronicException(__FILE__, __LINE__, + "G4CrossSectionDataStore: no applicable data set found " + "for particle/element"); return DBL_MIN; } @@ -52,8 +56,9 @@ void G4CrossSectionDataStore::AddDataSet(G4VCrossSectionDataSet* aDataSet) { if (NDataSetList == NDataSetMax) { - G4Exception("G4CrossSectionDataStore::AddDataSet: " - "reached maximum number of data sets"); + G4cout << "WARNING: G4CrossSectionDataStore::AddDataSet: "<= 0; i--) { DataSetList[i]->BuildPhysicsTable(aParticleType); @@ -80,7 +87,7 @@ G4CrossSectionDataStore:: DumpPhysicsTable(const G4ParticleDefinition& aParticleType) { if (NDataSetList == 0) { - G4Exception("G4CrossSectionDataStore: no data sets registered"); + G4cout << "WARNING - G4CrossSectionDataStore::DumpPhysicsTable: no data sets registered"<= 0; i--) { diff --git a/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc index df279484ce..1cfd0da6d6 100644 --- a/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4ElectroNuclearCrossSection.cc @@ -21,17 +21,17 @@ // ******************************************************************** // // -// $Id: G4ElectroNuclearCrossSection.cc,v 1.18 2003/06/16 17:03:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ElectroNuclearCrossSection.cc,v 1.22 2003/11/19 11:08:40 mkossov Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Physics class: G4ElectroNuclearCrossSection 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-May-02 +// The last update: M.V. Kossov, CERN/ITEP (Moscow) 17-Oct-03 // //=============================================================================================== -//#define debug +///#define debug #define edebug //#define pdebug //#define ppdebug @@ -60,28 +60,28 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle* { static const G4int nE=336; // !! If you change this, change it in GetFunctions() (*.hh) !! static const G4int mL=nE-1; - static const G4double EMi=2.0612; // Minimum Energy - static const G4double EMa=50000.; // Maximum Energy - static const G4double lEMi=log(EMi); // Minimum logarithmic Energy - static const G4double lEMa=log(EMa); // Maximum logarithmic Energy - static const G4double dlnE=(lEMa-lEMi)/mL; // Logarithmic step in Energy - static const G4double alop=1./137.036/3.14159265; //for the calculated functions (E>50000.) - static const G4double mel=0.5109989; // Mass of electron in MeV - static const G4double lmel=log(mel); // Log of electron mass - // Associative memory for acceleration - static std::vector colN; // Vector of N for calculated nucleus - static std::vector colZ; // Vector of Z for calculated nucleus - static std::vector colF; // Vector of LastZeroPosition in the J-functions - static std::vector colTH; // Vector of energy thresholds - static std::vector colH; // Vector of high energy coefficient - static std::vector J1; // Vector of pointers to the J1 functions - static std::vector J2; // Vector of pointers to the J2 functions - static std::vector J3; // Vector of pointers to the J3 functions + static const G4double EMi=2.0612; // Minimum tabulated Energy of the Electron + static const G4double EMa=50000.; // Maximum tabulated Energy of the Electron + static const G4double lEMi=log(EMi); // Minimum tabulated logarithmic Energy of the Electron + static const G4double lEMa=log(EMa); // Maximum tabulated logarithmic Energy of the Electron + static const G4double dlnE=(lEMa-lEMi)/mL; // Logarithmic step in the table for the electron Energy + static const G4double alop=1./137.036/3.14159265; //coef. for the calculated functions (Ee>50000.) + static const G4double mel=0.5109989; // Mass of the electron in MeV + static const G4double lmel=log(mel); // Log of the electron mass + // *** Begin of the Associative memory for acceleration of the cross section calculations + static std::vector colN; // Vector of N for calculated nucleus (isotop) + static std::vector colZ; // Vector of Z for calculated nucleus (isotop) + static std::vector colF; // Vector of Last StartPosition in the Ji-function tables + static std::vector colTH; // Vector of the energy thresholds for the eA->eX reactions + static std::vector colH; // Vector of HighEnergyCoefficients (functional calculations) + static std::vector J1; // Vector of pointers to the J1 tabulated functions + 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 electron const G4int targetAtomicNumber = static_cast(anEle->GetN()+.499); //@@ Nat mixture (?!) - const G4int targZ = static_cast(anEle->GetZ()); - const G4int targN = targetAtomicNumber-targZ; // @@ Get minimum isotop (can change initial A) + const G4int targZ = static_cast(anEle->GetZ()+.001); + const G4int targN = targetAtomicNumber-targZ; // @@ Get isotops (can change initial A) if (Energy<=EMi) return 0.; // Energy is below the minimum energy in the table G4int PDG=aPart->GetDefinition()->GetPDGEncoding(); if( PDG == 11 || PDG == -11) // @@ Now only for electrons, but can be fo muons @@ -89,8 +89,8 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle* G4double A=targN+targZ; // New A (can differ from G4double targetAtomicNumber) if(targN!=lastN || targZ!=lastZ) // This nucleus was not the last used isotop { - lastE = 0.; // New history in Energy - lastG = 0.; // New history in Energy + lastE = 0.; // New history in the electron Energy + lastG = 0.; // New history in the photon Energy lastN = targN; // The last N of calculated nucleus lastZ = targZ; // The last Z of calculated nucleus G4int n=colN.size(); // Size of the Associative Memory DB in the heap @@ -105,7 +105,7 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle* lastJ2 =J2[i]; // Pointer to the prepared J2 function lastJ3 =J3[i]; // Pointer to the prepared J3 function } - if(!in) // This nucleus have not been calculated previously + if(!in) // This nucleus has not been calculated previously { lastJ1 = new G4double[nE]; // Allocate memory for the new J1 function lastJ2 = new G4double[nE]; // Allocate memory for the new J2 function @@ -114,7 +114,7 @@ G4double G4ElectroNuclearCrossSection::GetCrossSection(const G4DynamicParticle* lastH = alop*A*(1.-.072*log(A));// corresponds to lastSP from G4PhotonuclearCrossSection lastTH = ThresholdEnergy(targZ, targN); // The last Threshold Energy #ifdef pdebug - G4cout<<"lastH="<238.49) // Plutonium 244 is forbidden { G4cout<<"***G4ElectroNuclearCrossSection::GetFunctions: A="<(a+.499); // Make the round integer of the atomic number + G4double ai=iA; + if(a!=ai) a=ai; + for(G4int i=0; i get from Tab { - x[k]=P0[i][k]; - y[k]=P1[i][k]; - z[k]=P2[i][k]; - } - r=L[i]; // Low channel for J-functions - } - if(r<0) // Not a basic isotop is not filled - { - G4int k=0; // !! To be good for different compilers !! - for(k=1; k=nN) k=nN-1; // Extrapolation from the last bin (U) - G4int k1=k-1; - G4double xi=A[k1]; - G4double b=(a-xi)/(A[k]-xi); - for(G4int m=0; m must be calculated { + G4int k=0; // !! To be good for different compilers !! + for(k=1; k=nN) k=nN-1; // Extrapolation from the last bin (U) + G4int k1=k-1; + G4double xi=A[k1]; + G4double b=(a-xi)/(A[k]-xi); + for(G4int m=0; m"<"< Y[lastL=mL], then it is in the func. region + G4double ris=lastSig*G4UniformRand(); // Sig can be > Y[lastL=mL], then it is in the funct. region #ifdef debug G4cout<<"G4ElectroNuclearCrossSection::GetEquivalentPhotonEnergy: "<"<leE"<lE="<eE"); + } if(abs(d)=imax) G4cerr<<"*G4ElNucCS::SolveTheEq:"<"<Use bigger max. ln(eE)=" + <GetDefinition()->GetBaryonNumber(); + G4int Zp = int ( aParticle->GetDefinition()->GetPDGCharge() / eplus + 0.5); + G4double ke_per_N = aParticle->GetKineticEnergy() / Ap; + +// Apply energy check, if less than lower limit then 0 value is returned + if ( ke_per_N < lowerLimit ) + return xsection; + + G4int At = int ( anElement->GetN() + 0.5 ); + G4int Zt = int ( anElement->GetZ() + 0.5 ); + + G4double one_third = 1.0 / 3.0; + + G4double cubicrAt = pow ( G4double(At) , G4double(one_third) ); + G4double cubicrAp = pow ( G4double(Ap) , G4double(one_third) ); + + + G4double Bc = Zt * Zp / ( ( rc / fermi ) * ( cubicrAp + cubicrAt ) ); // rc divide fermi + + G4double Rvol = r0 * ( cubicrAp + cubicrAt ); + +// G4double ke_per_N = aParticle->GetKineticEnergy() / Ap; + G4double c = calCeValue ( ke_per_N / MeV ); + + G4double a = 1.85; + G4double Rsurf = r0 * ( a * cubicrAp * cubicrAt / ( cubicrAp + cubicrAt ) - c); + G4double D = 5.0 * ( At - 2 * Zt ) * Zp / ( Ap * At ); + Rsurf = Rsurf + D * fermi; // multiply D by fermi + + G4double Rint = Rvol + Rsurf; + + G4double targ_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass( Zt , At ); + G4double proj_mass = aParticle->GetMass(); + G4double proj_momentum = aParticle->GetMomentum().mag(); + + G4double Ecm = calEcm ( proj_mass , targ_mass , proj_momentum ); + + xsection = pi * Rint * Rint * ( 1 - Bc / ( Ecm / MeV ) ); + + return xsection; +} + +G4double G4IonsKoxCrossSection::calEcm ( G4double mp , G4double mt , G4double Plab ) +{ + G4double Elab = sqrt ( mp * mp + Plab * Plab ); + G4double Ecm = sqrt ( mp * mp + mt * mt + 2 * Elab * mt ); + G4double Pcm = Plab * mt / Ecm; + G4double KEcm = sqrt ( Pcm * Pcm + mp * mp ) - mp; + return KEcm; +} + +G4double G4IonsKoxCrossSection::calCeValue( const G4double ke ) +{ + // Calculate c value + // This value is indepenent from projectile and target particle + // ke is projectile kinetic energy per nucleon in the Lab system with MeV unit + // fitting function is made by T. Koi + // There are no data below 30 MeV/n in Kox et al., + + G4double Ce; + G4double log10_ke = log10 ( ke ); + if ( log10_ke > 1.5 ) + { + Ce = - 10.0 / pow ( G4double(log10_ke) , G4double(5) ) + 2.0; + } + else + { + Ce = ( - 10.0 / pow ( G4double(1.5) , G4double(5) ) + 2.0 ) / pow ( G4double(1.5) , G4double(3) ) * pow ( G4double(log10_ke) , G4double(3) ); + + } + return Ce; +} diff --git a/source/processes/hadronic/cross_sections/src/G4IonsShenCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4IonsShenCrossSection.cc new file mode 100644 index 0000000000..bd5d9f3c4f --- /dev/null +++ b/source/processes/hadronic/cross_sections/src/G4IonsShenCrossSection.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. * +// ******************************************************************** +// +// 18-Sep-2003 First version is written by T. Koi +// 12-Nov-2003 Add energy check at lower side T. Koi + +#include "G4IonsShenCrossSection.hh" +#include "G4ParticleTable.hh" +#include "G4IonTable.hh" + + +G4double G4IonsShenCrossSection:: +GetCrossSection(const G4DynamicParticle* aParticle, const G4Element* anElement, G4double ) +{ + G4double xsection = 0.0; + + G4int Ap = aParticle->GetDefinition()->GetBaryonNumber(); + G4int Zp = int ( aParticle->GetDefinition()->GetPDGCharge() / eplus + 0.5 ); + G4double ke_per_N = aParticle->GetKineticEnergy() / Ap; + +// Apply energy check, if less than lower limit then 0 value is returned + if ( ke_per_N < lowerLimit ) + return xsection; + + G4int At = int ( anElement->GetN() + 0.5 ); + G4int Zt = int ( anElement->GetZ() + 0.5 ); + + + G4double one_third = 1.0 / 3.0; + + G4double cubicrAt = pow ( G4double(At) , G4double(one_third) ); + G4double cubicrAp = pow ( G4double(Ap) , G4double(one_third) ); + + G4double Rt = 1.12 * cubicrAt - 0.94 * ( 1.0 / cubicrAt ); + G4double Rp = 1.12 * cubicrAp - 0.94 * ( 1.0 / cubicrAp ); + + G4double r = Rt + Rp + 3.2; // in fm + G4double b = 1.0; // in MeV/fm + + G4double B = 1.44 * Zt * Zp / r - b * Rt * Rp / ( Rt + Rp ); + + //G4double ke_per_N = aParticle->GetKineticEnergy() / Ap; + + G4double c = calCeValue ( ke_per_N / MeV ); + + G4double R1 = r0 * ( cubicrAt + cubicrAp + 1.85 * cubicrAt * cubicrAp / ( cubicrAt + cubicrAp ) - c); + + G4double R2 = 1.0 * ( At - 2 * Zt ) * Zp / ( Ap * At ); + + G4double targ_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass( Zt , At ); + G4double proj_mass = aParticle->GetMass(); + G4double proj_momentum = aParticle->GetMomentum().mag(); + + G4double Ecm = calEcmValue ( proj_mass , targ_mass , proj_momentum ); + + G4double R3 = 0.176 / pow ( G4double(Ecm) , G4double(one_third) ) * cubicrAt * cubicrAp / ( cubicrAt + cubicrAp ); + + G4double R = R1 + R2 + R3; + + xsection = 10 * pi * R * R * ( 1 - B / Ecm ); + xsection = xsection * millibarn; // mulitply xsection by millibarn + + return xsection; +} + + + +G4double G4IonsShenCrossSection::calEcmValue( const G4double mp , const G4double mt , const G4double Plab ) +{ + G4double Elab = sqrt ( mp * mp + Plab * Plab ); + G4double Ecm = sqrt ( mp * mp + mt * mt + 2 * Elab * mt ); + G4double Pcm = Plab * mt / Ecm; + G4double KEcm = sqrt ( Pcm * Pcm + mp * mp ) - mp; + return KEcm; +} + + +G4double G4IonsShenCrossSection::calCeValue( const G4double ke ) +{ + // Calculate c value + // This value is indepenent from projectile and target particle + // ke is projectile kinetic energy per nucleon in the Lab system with MeV unit + // fitting function is made by T. Koi + // There are no data below 30 MeV/n in Kox et al., + + G4double Ce; + G4double log10_ke = log10 ( ke ); + if ( log10_ke > 1.5 ) + { + Ce = - 10.0 / pow ( G4double(log10_ke) , G4double(5) ) + 2.0; + } + else + { + Ce = ( - 10.0 / pow ( G4double(1.5) , G4double(5) ) + 2.0 ) / pow ( G4double(1.5) , G4double(3) ) * pow ( G4double(log10_ke) , G4double(3) ); + } + return Ce; +} diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PrecoNeutronBuilder.cc b/source/processes/hadronic/cross_sections/src/G4IonsSihverCrossSection.cc similarity index 61% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PrecoNeutronBuilder.cc rename to source/processes/hadronic/cross_sections/src/G4IonsSihverCrossSection.cc index 8f84680f93..34b23f464d 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4PrecoNeutronBuilder.cc +++ b/source/processes/hadronic/cross_sections/src/G4IonsSihverCrossSection.cc @@ -20,46 +20,33 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "G4PrecoNeutronBuilder.hh" -#include "G4ParticleDefinition.hh" +// 18-Sep-2003 First version is written by T. Koi + +#include "G4IonsSihverCrossSection.hh" #include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" +#include "G4IonTable.hh" -G4PrecoNeutronBuilder:: -G4PrecoNeutronBuilder() +G4double G4IonsSihverCrossSection:: +GetCrossSection(const G4DynamicParticle* aParticle, + const G4Element* anElement, G4double ) { - theMin = 0; - theMax = 150.*MeV; - theModel = new G4PreCompoundModel(&theHandler); + G4double xsection = 0.0; + + G4int At = int ( anElement->GetN() + 0.5 ); + //Zt = int ( anElement->GetZ() + 0.5 ); // not used + + G4int Ap = aParticle->GetDefinition()->GetBaryonNumber(); + //Zp = aParticle->GetDefinition()->GetPDGCharge(); // not used + + G4double one_third = 1.0 / 3.0; + + G4double cubicrAt = pow ( G4double(At) , G4double(one_third) ); + G4double cubicrAp = pow ( G4double(Ap) , G4double(one_third) ); + + G4double b0 = 1.581 - 0.876 * ( 1.0 / cubicrAp + 1.0 / cubicrAt ); + + xsection = pi * square_r0 + * pow ( G4double(cubicrAp + cubicrAt - b0 * ( 1.0 / cubicrAp + 1.0 / cubicrAt ) ), G4double(2) ); + + return xsection; } - -G4PrecoNeutronBuilder:: -~G4PrecoNeutronBuilder() {} - -void G4PrecoNeutronBuilder:: -Build(G4HadronElasticProcess & aP) -{ -} - -void G4PrecoNeutronBuilder:: -Build(G4HadronFissionProcess & aP) -{ -} - -void G4PrecoNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) -{ -} - -void G4PrecoNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(theMax); - aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); -} - -// 2002 by J.P. Wellisch diff --git a/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc index 27a71a4704..3ac4647b5e 100644 --- a/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4PhotoNuclearCrossSection.cc @@ -21,9 +21,8 @@ // ******************************************************************** // // -// $Id: G4PhotoNuclearCrossSection.cc,v 1.11 2003/06/16 17:03:07 gunter Exp $ // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Physics class: G4PhotoNuclearCrossSection for gamma+A cross sections diff --git a/source/processes/hadronic/cross_sections/src/G4PiData.cc b/source/processes/hadronic/cross_sections/src/G4PiData.cc index 89d9a463ae..0db9e3e076 100644 --- a/source/processes/hadronic/cross_sections/src/G4PiData.cc +++ b/source/processes/hadronic/cross_sections/src/G4PiData.cc @@ -20,8 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4PiData.cc,v 1.6 2003/06/16 17:03:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- // by J.P Wellisch, Sun Sep 15 2002. @@ -58,7 +57,11 @@ ReactionXSection(G4double kineticEnergy) G4double result = 0; G4PiData::iterator it=begin(); while(it!=end()&&kineticEnergy>(*it).first) {it++;} - if(it==end()) G4Exception("G4PiData used outside validity range"); + if(it==end()) + { + G4Exception("G4PiData", "007", FatalException, + "ReactionXSection used outside validity range"); + } if(it==begin()) it++; G4double x1,x2,e1,e2; e1=(*(it-1)).first; @@ -75,7 +78,11 @@ ElasticXSection(G4double kineticEnergy) G4double result = 0; G4PiData::iterator it=begin(); while(it!=end()&&kineticEnergy>(*it).first) {it++;} - if(it==end()) G4Exception("G4PiData used outside validity range"); + if(it==end()) + { + G4Exception("G4PiData", "007", FatalException, + "ElasticXSection used outside validity range"); + } if(it==begin()) it++; G4double x1,x2,e1,e2; e1=(*(it-1)).first; diff --git a/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc index ace060c156..97a2bf3d6f 100644 --- a/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4PiNuclearCrossSection.cc @@ -19,7 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #include "G4PiNuclearCrossSection.hh" +#include "G4HadronicException.hh" // by J.P Wellisch, Sun Sep 15 2002. // Implements P2-90-158; @@ -168,7 +170,11 @@ GetCrossSection(const G4DynamicParticle* aParticle, G4bool ok = false; if(aParticle->GetDefinition() == G4PionMinus::PionMinus()) ok=true; if(aParticle->GetDefinition() == G4PionPlus::PionPlus()) ok=true; - if(!ok) G4Exception("Call to G4PiNuclearCrossSection failed."); + if(!ok) + { + throw G4HadronicException(__FILE__, __LINE__, + "Call to G4PiNuclearCrossSection failed."); + } G4double charge = aParticle->GetDefinition()->GetPDGCharge(); G4double kineticEnergy = aParticle->GetKineticEnergy(); @@ -179,7 +185,8 @@ GetCrossSection(const G4DynamicParticle* aParticle, while(ittheZ[it]) it++; if(Z > theZ[it]) { - G4Exception("Error: Calling G4PiNuclearCrossSection outside parametrization"); + throw G4HadronicException(__FILE__, __LINE__, + "Called G4PiNuclearCrossSection outside parametrization"); } G4int Z1, Z2; G4double x1, x2; diff --git a/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc b/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc index f41b747fb7..c9edd1ccd9 100644 --- a/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc +++ b/source/processes/hadronic/cross_sections/src/G4TripathiCrossSection.cc @@ -25,6 +25,7 @@ #include "G4TripathiCrossSection.hh" #include "G4ParticleTable.hh" #include "G4IonTable.hh" +#include "G4HadTmpUtil.hh" G4double G4TripathiCrossSection:: GetCrossSection(const G4DynamicParticle* aPart, @@ -45,7 +46,7 @@ GetCrossSection(const G4DynamicParticle* aPart, // needs target mass G4double targetMass = G4ParticleTable::GetParticleTable() ->GetIonTable() - ->GetIonMass(static_cast(nTargetProtons), static_cast(targetAtomicNumber)); + ->GetIonMass(G4lrint(nTargetProtons), G4lrint(targetAtomicNumber)); G4LorentzVector pTarget(0,0,0,targetMass); G4LorentzVector pProjectile(aPart->Get4Momentum()); pTarget = pTarget+pProjectile; diff --git a/source/processes/hadronic/management/GNUmakefile b/source/processes/hadronic/management/GNUmakefile index 24ba85e569..de5f565bd1 100644 --- a/source/processes/hadronic/management/GNUmakefile +++ b/source/processes/hadronic/management/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:11:34 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 14:04:05 hpw Exp $ # ---------------------------------------------------------------- # GNUmakefile for hadronic management library. G.Folger 10-Dec-97 # ---------------------------------------------------------------- @@ -17,7 +17,9 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ diff --git a/source/processes/hadronic/management/include/G4EnergyRangeManager.hh b/source/processes/hadronic/management/include/G4EnergyRangeManager.hh index 34096539c7..f9df96e065 100644 --- a/source/processes/hadronic/management/include/G4EnergyRangeManager.hh +++ b/source/processes/hadronic/management/include/G4EnergyRangeManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnergyRangeManager.hh,v 1.5 2002/12/12 19:16:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EnergyRangeManager.hh,v 1.6 2003/07/01 15:05:32 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Energy Range Manager // original by H.P. Wellisch diff --git a/source/processes/hadronic/management/include/G4HadLeadBias.hh b/source/processes/hadronic/management/include/G4HadLeadBias.hh index 7615b5b75c..11838700b5 100644 --- a/source/processes/hadronic/management/include/G4HadLeadBias.hh +++ b/source/processes/hadronic/management/include/G4HadLeadBias.hh @@ -20,8 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HadLeadBias.hh,v 1.4 2003/06/16 17:03:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- #ifndef G4HadLeadBias_h @@ -29,12 +28,12 @@ #include "G4VLeadingParticleBiasing.hh" #include -#include "G4VParticleChange.hh" +#include "G4HadFinalState.hh" class G4HadLeadBias : public G4VLeadingParticleBiasing { public: - virtual G4VParticleChange * Bias(G4VParticleChange * result); + virtual G4HadFinalState * Bias(G4HadFinalState * result); virtual ~G4HadLeadBias() {}; }; diff --git a/source/processes/hadronic/management/include/G4HadronInelasticProcess.hh b/source/processes/hadronic/management/include/G4HadronInelasticProcess.hh index ccb03373ce..20eda4e102 100644 --- a/source/processes/hadronic/management/include/G4HadronInelasticProcess.hh +++ b/source/processes/hadronic/management/include/G4HadronInelasticProcess.hh @@ -52,77 +52,26 @@ G4HadronInelasticProcess( const G4String &processName, - G4ParticleDefinition *aParticle ) : - G4HadronicProcess( processName ), - theCrossSectionDataStore(new G4CrossSectionDataStore) - { - theCrossSectionDataStore->AddDataSet(new G4HadronInelasticDataSet); - theParticle = aParticle; - aScaleFactor = 1; - // BuildThePhysicsTable(); - } - - virtual ~G4HadronInelasticProcess() - { } - - G4double GetMeanFreePath( - const G4Track &aTrack, - G4double previousStepSize, - G4ForceCondition *condition ); + G4ParticleDefinition *aParticle ); + virtual ~G4HadronInelasticProcess(); + void BuildThePhysicsTable(); - void BiasCrossSectionByFactor(G4double aScale) {aScaleFactor = aScale;} - - G4double GetMicroscopicCrossSection( - const G4DynamicParticle *aParticle, - const G4Element *anElement, - G4double aTemp); + G4bool IsApplicable(const G4ParticleDefinition& aP); - G4VParticleChange *PostStepDoIt( - const G4Track &aTrack, const G4Step &aStep ) - { - if(0==theLastCrossSection&&!getenv("DebugNeutronHP")) - { - G4cerr << "G4HadronInelasticProcess: called for final state, while cross-section was zero"<AddDataSet(aDataSet); - } + private: + + virtual G4double GetMicroscopicCrossSection( const G4DynamicParticle *aParticle, + const G4Element *anElement, + G4double aTemp ); protected: - // G4HadronicCrossSections theCrossSectionData; - G4CrossSectionDataStore* theCrossSectionDataStore; - G4ParticleDefinition *theParticle; - - private: - G4double aScaleFactor; - G4double theLastCrossSection; - G4ParticleChange theParticleChange; + G4ParticleChange theParticleChange; }; #endif diff --git a/source/processes/hadronic/management/include/G4HadronicProcess.hh b/source/processes/hadronic/management/include/G4HadronicProcess.hh index 8c6eb18ac5..923021352e 100644 --- a/source/processes/hadronic/management/include/G4HadronicProcess.hh +++ b/source/processes/hadronic/management/include/G4HadronicProcess.hh @@ -39,77 +39,45 @@ #include "globals.hh" #include "G4VDiscreteProcess.hh" #include "G4EnergyRangeManager.hh" -#include "G4Track.hh" -#include "G4Step.hh" -#include "G4Element.hh" -#include "G4ElementVector.hh" -#include "G4ElementTable.hh" -#include "G4PhysicsTable.hh" -#include "G4PhysicsVector.hh" #include "G4Nucleus.hh" #include "G4ReactionProduct.hh" #include #include "G4VIsotopeProduction.hh" #include "G4IsoParticleChange.hh" -#include "G4HadLeadBias.hh" #include "G4VCrossSectionDataSet.hh" - +#include "G4VLeadingParticleBiasing.hh" +#include "G4Delete.hh" +#include "G4CrossSectionDataStore.hh" +#include "G4HadronicException.hh" + +class G4Track; +class G4Step; +class G4Element; +class G4ParticleChange; + class G4HadronicProcess : public G4VDiscreteProcess { public: - G4HadronicProcess( const G4String &processName = "Hadronic" ) : - G4VDiscreteProcess( processName ) - { - isoIsOnAnyway = 0; - theBias = new G4HadLeadBias(); - } - - virtual ~G4HadronicProcess() - { - unsigned int i; for(i=0; iRegisterMe( a ); } - - inline G4HadronicInteraction *GetHadronicInteraction() - { return theInteraction; } - - inline G4HadronicInteraction *ChooseHadronicInteraction( - G4double kineticEnergy, G4Material *aMaterial, G4Element *anElement ) - { return GetManagerPointer()-> - GetHadronicInteraction( kineticEnergy, aMaterial, anElement ); } - - inline const G4EnergyRangeManager &GetEnergyRangeManager() const - { return theEnergyRangeManager; } - - inline void SetEnergyRangeManager( const G4EnergyRangeManager &value ) - { theEnergyRangeManager = value; } + G4HadronicProcess( const G4String &processName = "Hadronic" ); + virtual ~G4HadronicProcess(); - G4Element * ChooseAandZ( const G4DynamicParticle *aParticle, - const G4Material *aMaterial ); + void RegisterMe( G4HadronicInteraction *a ); + void AddDataSet(G4VCrossSectionDataSet * aDataSet) + { + theCrossSectionDataStore->AddDataSet(aDataSet); + } + virtual G4VParticleChange *PostStepDoIt( const G4Track &aTrack, const G4Step &aStep ) = 0; - - G4VParticleChange *GeneralPostStepDoIt( const G4Track &aTrack, - const G4Step &aStep ); - - void SetDispatch( G4HadronicProcess *value ) - { dispatch=value; } - + virtual G4double GetMicroscopicCrossSection( const G4DynamicParticle *aParticle, const G4Element *anElement, G4double aTemp ) = 0; - G4double GetCurrentZ() - { return currentZ; } - - G4double GetCurrentN() - { return currentN; } - + G4double GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *); + // Set methods for isotope production static void EnableIsotopeProductionGlobally(); @@ -129,29 +97,112 @@ return anIsoResult; } + void BiasCrossSectionByFactor(G4double aScale) + { + xBiasOn = true; + aScaleFactor = aScale; + G4String it = GetProcessName(); + if( (it != "PhotonInelastic") && + (it != "ElectroNuclear") && + (it != "PositronNuclear") ) + { + G4Exception("G4HadronicProcess", "007", FatalException, + "Cross-section biasing available only for gamma and electro nuclear reactions."); + } + if(aScale<100) + { + G4Exception("G4HadronicProcess", "001", JustWarning, + "Cross-section bias readjusted to be above safe limit. New value is 100"); + aScaleFactor = 100.; + } + } + protected: + virtual void ResetNumberOfInteractionLengthLeft() + { + G4VProcess::theNumberOfInteractionLengthLeft = -log( G4UniformRand() ); + theInitialNumberOfInteractionLength = G4VProcess::theNumberOfInteractionLengthLeft; + } + + G4VParticleChange *GeneralPostStepDoIt( const G4Track &aTrack, + const G4Step &aStep ); + + void SetDispatch( G4HadronicProcess *value ) + { dispatch=value; } + + G4Element * ChooseAandZ( const G4DynamicParticle *aParticle, + const G4Material *aMaterial ); + + inline const G4EnergyRangeManager &GetEnergyRangeManager() const + { return theEnergyRangeManager; } + + inline void SetEnergyRangeManager( const G4EnergyRangeManager &value ) + { theEnergyRangeManager = value; } + + inline G4HadronicInteraction *ChooseHadronicInteraction( + G4double kineticEnergy, G4Material *aMaterial, G4Element *anElement ) + { + return GetManagerPointer()-> + GetHadronicInteraction( kineticEnergy, aMaterial, anElement ); + } + + inline G4HadronicInteraction *GetHadronicInteraction() + { return theInteraction; } + inline G4EnergyRangeManager *GetManagerPointer() { return &theEnergyRangeManager; } - G4EnergyRangeManager theEnergyRangeManager; + G4double GetCurrentZ() + { return currentZ; } - G4HadronicInteraction *theInteraction; - - G4Nucleus targetNucleus; + G4double GetCurrentN() + { return currentN; } + G4CrossSectionDataStore* GetCrossSectionDataStore() + { + return theCrossSectionDataStore; + } + + G4double GetLastCrossSection() {return theLastCrossSection;} private: - G4VParticleChange * DoIsotopeCounting(G4VParticleChange * aResult, + G4HadFinalState * DoIsotopeCounting(G4HadFinalState * aResult, const G4Track & aTrack, const G4Nucleus & aNucleus); G4IsoResult * ExtractResidualNucleus(const G4Track & aTrack, const G4Nucleus & aNucleus, - G4VParticleChange * aResult); + G4HadFinalState * aResult); + + G4double GetTotalNumberOfInteractionLengthTraversed() + { + return theInitialNumberOfInteractionLength + -G4VProcess::theNumberOfInteractionLengthLeft; + } + + G4double GetDistanceToBoundary(const G4Track & aT); + + void FillTotalResult(G4HadFinalState * aR, const G4Track & aT); + + void SetCrossSectionDataStore(G4CrossSectionDataStore* aDataStore) + { + theCrossSectionDataStore = aDataStore; + } + + G4double XBiasSurvivalProbability(); + G4double XBiasSecondaryWeight(); private: + G4EnergyRangeManager theEnergyRangeManager; + + G4HadronicInteraction *theInteraction; + + G4CrossSectionDataStore* theCrossSectionDataStore; + + G4Nucleus targetNucleus; + G4double currentZ; G4double currentN; G4HadronicProcess *dispatch; @@ -164,11 +215,18 @@ G4IsoParticleChange theIsoPC; std::vector theProductionModels; - G4VLeadingParticleBiasing * theBias; + std::vector theBias; static G4IsoParticleChange * theIsoResult; static G4IsoParticleChange * theOldIsoResult; + G4ParticleChange * theTotalResult; + + G4double theInitialNumberOfInteractionLength; + + G4double aScaleFactor; + G4bool xBiasOn; + G4double theLastCrossSection; }; #endif diff --git a/source/processes/hadronic/management/include/G4VLeadingParticleBiasing.hh b/source/processes/hadronic/management/include/G4VLeadingParticleBiasing.hh index 2b212a28eb..8f10c05187 100644 --- a/source/processes/hadronic/management/include/G4VLeadingParticleBiasing.hh +++ b/source/processes/hadronic/management/include/G4VLeadingParticleBiasing.hh @@ -20,20 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VLeadingParticleBiasing.hh,v 1.3 2002/12/13 09:06:26 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VLeadingParticleBiasing.hh,v 1.4 2003/07/01 15:05:32 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------------- #ifndef G4VLeadingParticleBiasing_h #define G4VLeadingParticleBiasing_h -class G4VParticleChange; +class G4HadFinalState; class G4VLeadingParticleBiasing { public: - virtual G4VParticleChange * Bias(G4VParticleChange * result) = 0; + virtual G4HadFinalState * Bias(G4HadFinalState * result) = 0; }; #endif diff --git a/source/processes/hadronic/management/src/G4EnergyRangeManager.cc b/source/processes/hadronic/management/src/G4EnergyRangeManager.cc index 201572ea3f..e9dc2a0b55 100644 --- a/source/processes/hadronic/management/src/G4EnergyRangeManager.cc +++ b/source/processes/hadronic/management/src/G4EnergyRangeManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EnergyRangeManager.cc,v 1.8 2003/01/27 09:57:13 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EnergyRangeManager.cc,v 1.11 2003/11/03 17:47:30 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Energy Range Manager // original by H.P. Wellisch @@ -33,8 +33,8 @@ #include "G4EnergyRangeManager.hh" #include "Randomize.hh" -#include "G4NoModelFound.hh" - +#include "G4HadronicException.hh" + G4EnergyRangeManager::G4EnergyRangeManager( const G4EnergyRangeManager &right ) { @@ -66,8 +66,9 @@ G4HadronicInteraction *a ) { if( theHadronicInteractionCounter+1 > MAX_NUMBER_OF_MODELS ) - G4Exception( - "EnergyRangeManager::RegisterMe: TOO MANY MODELS"); + { + throw G4HadronicException(__FILE__, __LINE__,"RegisterMe: TOO MANY MODELS"); + } theHadronicInteraction[ theHadronicInteractionCounter++ ] = a; } @@ -79,7 +80,8 @@ { G4int counter = GetHadronicInteractionCounter(); if( counter == 0 ) - G4Exception("GetHadronicInteraction: NO MODELS STORED"); + throw G4HadronicException(__FILE__, __LINE__, + "GetHadronicInteraction: NO MODELS STORED"); G4int cou = 0, memory = 0, memor2 = 0; G4double emi1 = 0.0, ema1 = 0.0, emi2 = 0.0, ema2 = 0.0; @@ -105,14 +107,15 @@ switch ( cou ) { case 0: - throw(new G4NoModelFound); + throw G4HadronicException(__FILE__, __LINE__, + "GetHadronicInteraction: No Model found"); return 0; case 1: m = memory; break; case 2: if( (emi2<=emi1 && ema2>=ema1) || (emi2>=emi1 && ema2<=ema1) ) - G4Exception( + throw G4HadronicException(__FILE__, __LINE__, "GetHadronicInteraction: Energy ranges of two models fully overlapping"); rand = G4UniformRand(); if( emi1 < emi2 ) @@ -129,7 +132,7 @@ } break; default: - G4Exception( + throw G4HadronicException(__FILE__, __LINE__, "GetHadronicInteraction: More than two competing models in this energy range"); } return theHadronicInteraction[m]; diff --git a/source/processes/hadronic/management/src/G4HadLeadBias.cc b/source/processes/hadronic/management/src/G4HadLeadBias.cc index ed52be4b9a..d7de5067e9 100644 --- a/source/processes/hadronic/management/src/G4HadLeadBias.cc +++ b/source/processes/hadronic/management/src/G4HadLeadBias.cc @@ -19,39 +19,37 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4HadLeadBias.hh" #include "G4Gamma.hh" #include "G4PionZero.hh" #include "Randomize.hh" -#include "G4ParticleChange.hh" +#include "G4HadFinalState.hh" - G4VParticleChange * G4HadLeadBias::Bias(G4VParticleChange * result) + G4HadFinalState * G4HadLeadBias::Bias(G4HadFinalState * result) { - G4cerr << "bias enter"<GetStatusChange()==fAlive) + if(result->GetStatusChange()==isAlive) { - temp = dynamic_cast(result); - if(temp) emax = temp->GetEnergyChange(); + emax = result->GetEnergyChange(); } - G4cout << "max energy "<GetNumberOfSecondaries();i++) { - if(result->GetSecondary(i)->GetKineticEnergy()>emax) + if(result->GetSecondary(i)->GetParticle()->GetKineticEnergy()>emax) { maxE = i; - emax = result->GetSecondary(i)->GetKineticEnergy(); + emax = result->GetSecondary(i)->GetParticle()->GetKineticEnergy(); } } - G4cout <<"loop1"<GetNumberOfSecondaries(); i++) { - G4Track* aSecTrack = result->GetSecondary(i); + const G4DynamicParticle* aSecTrack = result->GetSecondary(i)->GetParticle(); if(i==maxE) { } @@ -76,8 +74,8 @@ nMeson++; } } - G4cout << "BiasDebug 1 = "<GetNumberOfSecondaries()<<" " - <((npi0+1)*G4UniformRand()); G4int randomLepton = static_cast((nLepton+1)*G4UniformRand()); - std::vector buffer; + std::vector buffer; G4int cMeson(0), cBaryon(0), cpi0(0), cgamma(0), cLepton(0); for(i=0; iGetNumberOfSecondaries(); i++) { G4bool aCatch = false; G4double weight = 1; - G4Track* aSecTrack = result->GetSecondary(i); + G4HadSecondary * aSecTrack = result->GetSecondary(i); if(i==maxE) { aCatch = true; weight = 1; } - else if(aSecTrack->GetDefinition()->GetBaryonNumber()!=0) + else if(aSecTrack->GetParticle()->GetDefinition()->GetBaryonNumber()!=0) { if(++cBaryon==randomBaryon) { @@ -109,7 +107,7 @@ weight = baryonWeight; } } - else if(aSecTrack->GetDefinition()->GetLeptonNumber()!=0) + else if(aSecTrack->GetParticle()->GetDefinition()->GetLeptonNumber()!=0) { if(++cLepton==randomLepton) { @@ -117,7 +115,7 @@ weight = leptonWeight; } } - else if(aSecTrack->GetDefinition()==G4Gamma::Gamma()) + else if(aSecTrack->GetParticle()->GetDefinition()==G4Gamma::Gamma()) { if(++cgamma==randomGamma) { @@ -125,7 +123,7 @@ weight = gammaWeight; } } - else if(aSecTrack->GetDefinition()==G4PionZero::PionZero()) + else if(aSecTrack->GetParticle()->GetDefinition()==G4PionZero::PionZero()) { if(++cpi0==randomPi0) { @@ -151,14 +149,13 @@ delete aSecTrack; } } - result->Clear(); - result->SetNumberOfSecondaries(buffer.size()); + result->ClearSecondaries(); // G4cerr << "pre"<(buffer.size());i++) { result->AddSecondary(buffer[i]); } - G4cerr << "bias exit"<GetDefinition() != theParticle && - theParticle != G4GenericIon::GenericIon()) - G4Exception( this->GetProcessName()+ - " called for "+ - aParticle->GetDefinition()->GetParticleName() ); - G4Material *aMaterial = aTrack.GetMaterial(); - G4int nElements = aMaterial->GetNumberOfElements(); - - // returns the mean free path in GEANT4 internal units - - const G4double *theAtomicNumDensityVector = - aMaterial->GetAtomicNumDensityVector(); - - G4double aTemp = aMaterial->GetTemperature(); - - G4double sigma = 0.0; - for( G4int i=0; iGetElementVector())[i], aTemp); - sigma += theAtomicNumDensityVector[i] * xSection; - } - sigma *= aScaleFactor; - theLastCrossSection = sigma; - if( sigma > 0.0 ) - return 1.0/sigma; - else - return DBL_MAX; - } - - void - G4HadronInelasticProcess::BuildThePhysicsTable() - { - if (!theCrossSectionDataStore) { - // G4Exception("G4HadronInelasticProcess::BuildThePhysicsTable: " - // "no CrossSectionDataStore"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { return; - } - - theCrossSectionDataStore->BuildPhysicsTable(*theParticle); - - // G4int numberOfElements = G4Element::GetNumberOfElements(); - // thePhysicsTable = new G4PhysicsTable( numberOfElements ); - // - // // make a PhysicsVector for each element - // - // static const G4ElementTable *theElementTable = G4Element::GetElementTable(); - // for( G4int i=0; iBuildPhysicsTable(*theParticle); } + G4HadronInelasticProcess::G4HadronInelasticProcess( + const G4String &processName, + G4ParticleDefinition *aParticle ) : + G4HadronicProcess( processName ) + { + G4HadronicProcess::AddDataSet(new G4HadronInelasticDataSet); + theParticle = aParticle; + } + + G4HadronInelasticProcess::~G4HadronInelasticProcess() { } + + G4VParticleChange *G4HadronInelasticProcess:: + PostStepDoIt(const G4Track &aTrack, const G4Step &aStep) + { + if(0==GetLastCrossSection()&&!getenv("DebugNeutronHP")) + { + G4cerr << "G4HadronInelasticProcess: called for final state, while cross-section was zero"<GetCrossSection(aParticle, anElement, aTemp); + return G4HadronicProcess::GetCrossSectionDataStore()->GetCrossSection(aParticle, anElement, aTemp); - // G4bool isOutRange; - // G4int j = anElement->GetIndex(); - // - // G4double s = (*((*thePhysicsTable)(j))).GetValue( - // aParticle->GetTotalMomentum()/GeV, isOutRange ); - // return s; } /* end of file */ diff --git a/source/processes/hadronic/management/src/G4HadronicProcess.cc b/source/processes/hadronic/management/src/G4HadronicProcess.cc index 1149c281c7..b60025a8e6 100644 --- a/source/processes/hadronic/management/src/G4HadronicProcess.cc +++ b/source/processes/hadronic/management/src/G4HadronicProcess.cc @@ -31,28 +31,175 @@ #include #include "G4HadronicProcess.hh" #include "G4EffectiveCharge.hh" -#include "G4NoModelFound.hh" +#include "G4HadProjectile.hh" +#include "G4ElementVector.hh" +#include "G4Track.hh" +#include "G4Step.hh" +#include "G4Element.hh" +#include "G4ParticleChange.hh" +#include "G4TransportationManager.hh" +#include "G4Navigator.hh" +#include "G4ProcessVector.hh" +#include "G4ProcessManager.hh" +#include "G4StableIsotopes.hh" +#include "G4HadTmpUtil.hh" + +#include "G4HadLeadBias.hh" +#include "G4HadronicException.hh" +#include "G4HadReentrentException.hh" //@@ add model name info, once typeinfo available #include G4IsoParticleChange * G4HadronicProcess::theIsoResult = NULL; G4IsoParticleChange * G4HadronicProcess::theOldIsoResult = NULL; G4bool G4HadronicProcess::isoIsEnabled = true; - void G4HadronicProcess::EnableIsotopeProductionGlobally() {isoIsEnabled = true;} - void G4HadronicProcess::DisableIsotopeProductionGlobally() {isoIsEnabled = false;} + void G4HadronicProcess:: + EnableIsotopeProductionGlobally() {isoIsEnabled = true;} + + void G4HadronicProcess:: + DisableIsotopeProductionGlobally() {isoIsEnabled = false;} + + G4HadronicProcess::G4HadronicProcess( const G4String &processName) : + G4VDiscreteProcess( processName ) + { + isoIsOnAnyway = 0; + theTotalResult = new G4ParticleChange(); + theCrossSectionDataStore = new G4CrossSectionDataStore(); + aScaleFactor = 1; + xBiasOn = false; + if(getenv("SwitchLeadBiasOn")) theBias.push_back(new G4HadLeadBias()); + } + + G4HadronicProcess::~G4HadronicProcess() + { + delete theTotalResult; + std::for_each(theProductionModels.begin(), + theProductionModels.end(), + G4Delete()); + std::for_each(theBias.begin(), + theBias.end(), + G4Delete()); + } + + void G4HadronicProcess::RegisterMe( G4HadronicInteraction *a ) + { + try{GetManagerPointer()->RegisterMe( a );} + catch(G4HadronicException & aE) + { + aE.Report(std::cout); + G4Exception("G4HadronicProcess", "007", FatalException, + "Could not register G4HadronicInteraction"); + } + } + +G4double G4HadronicProcess:: +GetMeanFreePath(const G4Track &aTrack, G4double, G4ForceCondition *) +{ + G4double sigma = 0.0; + try + { + const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + if( !IsApplicable(*aParticle->GetDefinition())) + { + G4cout << "Unrecoverable error: "<GetDefinition()->GetProcessManager(); + G4ProcessVector * itv = it->GetProcessList(); + G4cout <GetDefinition()->GetParticleName()<< + " has the following processes:"<size(); i++) + { + G4cout <<" "<<(*itv)[i]->GetProcessName()<GetKineticEnergy()<GetName()<GetProcessName()+ + " was called for "+ + aParticle->GetDefinition()->GetParticleName()).c_str() ); + } + G4Material *aMaterial = aTrack.GetMaterial(); + G4int nElements = aMaterial->GetNumberOfElements(); + + // returns the mean free path in GEANT4 internal units + + const G4double *theAtomicNumDensityVector = + aMaterial->GetAtomicNumDensityVector(); + + G4double aTemp = aMaterial->GetTemperature(); + + for( G4int i=0; iGetElementVector())[i], aTemp); + sigma += theAtomicNumDensityVector[i] * xSection; + } + sigma *= aScaleFactor; + theLastCrossSection = sigma; + } + catch(G4HadronicException aR) + { + aR.Report(G4cout); + G4Exception("G4HadronicProcess", "007", FatalException, + "G4HadronicProcess::GetMeanFreePath failed"); + } + if( sigma > 0.0 ) + return 1.0/sigma; + else + return DBL_MAX; +} + + G4double G4HadronicProcess::GetDistanceToBoundary(const G4Track & aT) + { + G4TransportationManager * aTM = + G4TransportationManager::GetTransportationManager(); + G4Navigator * aN = aTM->GetNavigatorForTracking(); + G4ThreeVector pGlobalPoint = aT.GetStep()->GetPreStepPoint()->GetPosition(); + G4ThreeVector pDirection = aT.GetMomentumDirection(); + G4double dummy(0); + G4double result = aN->ComputeStep(pGlobalPoint, pDirection, DBL_MAX, dummy); + aN->LocateGlobalPointAndSetup(pGlobalPoint); + return result; + } + G4Element * G4HadronicProcess::ChooseAandZ( const G4DynamicParticle *aParticle, const G4Material *aMaterial ) { + static G4bool noIsotopeWiseCrossSections=getenv("GHAD_DISABLE_ISOTOPE_WISE_CROSS_SECTIONS"); + static G4StableIsotopes theIso; currentZ = 0; currentN = 0; const G4int numberOfElements = aMaterial->GetNumberOfElements(); const G4ElementVector *theElementVector = aMaterial->GetElementVector(); - + G4int i; if( numberOfElements == 1 ) { currentZ = G4double( ((*theElementVector)[0])->GetZ()); - currentN = (*theElementVector)[0]->GetN(); + G4int localZ = G4lrint(currentZ); + if(noIsotopeWiseCrossSections) + { + currentN = (*theElementVector)[0]->GetN(); + } + else + { + G4double * running = new G4double[theIso.GetNumberOfIsotopes(localZ)]; + for (i=0; itrial) break; + } + delete [] running; + } targetNucleus.SetParameters(currentN, currentZ); return (*theElementVector)[0]; } @@ -60,7 +207,6 @@ const G4double *theAtomicNumberDensity = aMaterial->GetAtomicNumDensityVector(); G4double aTemp = aMaterial->GetTemperature(); G4double crossSectionTotal = 0; - G4int i; std::vector runningSum; for( i=0; i < numberOfElements; ++i ) { @@ -72,16 +218,62 @@ G4double random = G4UniformRand(); for( i=0; i < numberOfElements; ++i ) { + if(i!=0) runningSum[i]+=runningSum[i-1]; if( random<=runningSum[i]/crossSectionTotal ) { currentZ = G4double( ((*theElementVector)[i])->GetZ()); - currentN = ((*theElementVector)[i])->GetN(); - targetNucleus.SetParameters(currentN, currentZ); + G4int localZ = G4lrint(currentZ); + if(noIsotopeWiseCrossSections) + { + currentN = ((*theElementVector)[i])->GetN(); + } + else + { + G4double * running = new G4double[theIso.GetNumberOfIsotopes(localZ)]; + for (i=0; itrial) break; + } + delete [] running; + } + targetNucleus.SetParameters(currentN, currentZ); return (*theElementVector)[i]; } } currentZ = G4double((*theElementVector)[numberOfElements-1]->GetZ()); - currentN = (*theElementVector)[numberOfElements-1]->GetN(); + G4int localZ = G4lrint(currentZ); + if(noIsotopeWiseCrossSections) + { + currentN = (*theElementVector)[numberOfElements-1]->GetN(); + } + else + { + G4double * running = new G4double[theIso.GetNumberOfIsotopes(localZ)]; + for (i=0; itrial) break; + } + delete [] running; + } targetNucleus.SetParameters(currentN, currentZ); return (*theElementVector)[numberOfElements-1]; } @@ -89,36 +281,106 @@ G4VParticleChange *G4HadronicProcess::GeneralPostStepDoIt( const G4Track &aTrack, const G4Step &) { + // G4cout << theNumberOfInteractionLengthLeft<GetKineticEnergy(); - G4Element * anElement = ChooseAandZ( aParticle, aMaterial ); + G4double originalEnergy = aParticle->GetKineticEnergy(); + G4double kineticEnergy = originalEnergy; + if(aParticle->GetDefinition()->GetBaryonNumber()>1.5) + { + kineticEnergy/=aParticle->GetDefinition()->GetBaryonNumber(); + } + G4Element * anElement = 0; + try + { + anElement = ChooseAandZ( aParticle, aMaterial ); + } + catch(G4HadronicException & aR) + { + aR.Report(G4cout); + G4cout << "Unrecoverable error for:"<ApplyYourself( aTrack, targetNucleus); + G4HadProjectile thePro(aTrack); + + G4HadFinalState *result = 0; + G4int reentryCount = 0; + do + { + try + { + result = theInteraction->ApplyYourself( thePro, targetNucleus); + } + catch(G4HadReentrentException aR) + { + aR.Report(G4cout); + G4cout << " G4HadronicProcess re-entering the ApplyYourself call for"<GetStatusChange() == isAlive && thePro.GetDefinition() != aTrack.GetDefinition()) + { + G4DynamicParticle * aP = const_cast(aTrack.GetDynamicParticle()); + aP->SetDefinition(const_cast(thePro.GetDefinition())); + } + result->SetTrafoToLab(thePro.GetTrafoToLab()); for(G4int i=0; iGetNumberOfSecondaries(); i++) { - G4Track* aSecTrack = result->GetSecondary(i); + G4DynamicParticle* aSecTrack = result->GetSecondary(i)->GetParticle(); if(aSecTrack->GetDefinition()->GetPDGCharge()>1.5) { G4EffectiveCharge aCalculator; - G4double charge = aCalculator.GetCharge(aMaterial, kineticEnergy, + G4double charge = aCalculator.GetCharge(aMaterial, aSecTrack->GetKineticEnergy(), aSecTrack->GetDefinition()->GetPDGMass(), aSecTrack->GetDefinition()->GetPDGCharge()); - (const_cast(aSecTrack->GetDynamicParticle()))->SetCharge(charge); + if(getenv("GHADChargeDebug")) + { + std::cout << "Recoil fractional charge is " + << charge/aSecTrack->GetDefinition()->GetPDGCharge()<<" " + << charge <<" "<GetDefinition()->GetPDGCharge()<SetCharge(charge); } } @@ -127,7 +389,7 @@ G4cout << "HadronicDoitLogging " << GetProcessName() <<" " << aParticle->GetDefinition()->GetPDGEncoding()<<" " - << kineticEnergy<<" " + << originalEnergy<<" " << aParticle->GetMomentum()<<" " << targetNucleus.GetN()<<" " << targetNucleus.GetZ()<<" " @@ -141,12 +403,21 @@ result = DoIsotopeCounting(result, aTrack, targetNucleus); } } - if(getenv("LeadingParticleBiasingActivated")) result = theBias->Bias(result); - return result; + + G4double e=aTrack.GetKineticEnergy(); + if(e<5*GeV) + { + for(size_t i=0; iBias(result); + } + } + FillTotalResult(result, aTrack); + return theTotalResult; } - G4VParticleChange * G4HadronicProcess:: - DoIsotopeCounting(G4VParticleChange * aResult, + G4HadFinalState * G4HadronicProcess:: + DoIsotopeCounting(G4HadFinalState * aResult, const G4Track & aTrack, const G4Nucleus & aNucleus) { @@ -186,7 +457,7 @@ G4IsoResult * G4HadronicProcess:: ExtractResidualNucleus(const G4Track & , const G4Nucleus & aNucleus, - G4VParticleChange * aResult) + G4HadFinalState * aResult) { G4double A = aNucleus.GetN(); G4double Z = aNucleus.GetZ(); @@ -197,14 +468,14 @@ // cash the max for(G4int i=0; iGetNumberOfSecondaries(); i++) { - G4Track* aSecTrack = aResult->GetSecondary(i); - if(bufferAGetDefinition()->GetBaryonNumber()) + G4HadSecondary* aSecTrack = aResult->GetSecondary(i); + if(bufferAGetParticle()->GetDefinition()->GetBaryonNumber()) { - bufferA = aSecTrack->GetDefinition()->GetBaryonNumber(); - bufferZ = aSecTrack->GetDefinition()->GetPDGCharge(); + bufferA = aSecTrack->GetParticle()->GetDefinition()->GetBaryonNumber(); + bufferZ = aSecTrack->GetParticle()->GetDefinition()->GetPDGCharge(); } - Z-=aSecTrack->GetDefinition()->GetPDGCharge(); - A-=aSecTrack->GetDefinition()->GetBaryonNumber(); + Z-=aSecTrack->GetParticle()->GetDefinition()->GetPDGCharge(); + A-=aSecTrack->GetParticle()->GetDefinition()->GetBaryonNumber(); } // if the fragment was part of the final state, it is @@ -228,5 +499,152 @@ return theResult; } +G4double G4HadronicProcess:: +XBiasSurvivalProbability() +{ + G4double result = 0; + G4double nLTraversed = GetTotalNumberOfInteractionLengthTraversed(); + G4double biasedProbability = 1.-exp(-nLTraversed); + G4double realProbability = 1-exp(-nLTraversed/aScaleFactor); + result = (biasedProbability-realProbability)/biasedProbability; + return result; +} +G4double G4HadronicProcess:: +XBiasSecondaryWeight() +{ + G4double result = 0; + G4double nLTraversed = GetTotalNumberOfInteractionLengthTraversed(); + result = 1./aScaleFactor*exp(-nLTraversed/aScaleFactor*(1-1./aScaleFactor)); + return result; +} + +void G4HadronicProcess::FillTotalResult(G4HadFinalState * aR, const G4Track & aT) +{ +// G4cout << "############# Entry debug " +// <GetDefinition()->GetParticleName()<<" " +// <Clear(); + theTotalResult->SetLocalEnergyDeposit(0.); + theTotalResult->Initialize(aT); + theTotalResult->SetSecondaryWeightByProcess(true); + theTotalResult->SetStatusChange(fAlive); + G4double rotation = 2.*pi*G4UniformRand(); + G4ThreeVector it(0., 0., 1.); + /* + if(xBiasOn) + { + G4cout << "BiasDebug "<GetStatusChange()==stopAndKill) + { + if( xBiasOn && G4UniformRand()SetWeightChange( XBiasSurvivalProbability()*aT.GetWeight() ); + } + else + { + theTotalResult->SetStatusChange(fStopAndKill); + theTotalResult->SetEnergyChange( 0.0 ); + } + } + else if(aR->GetStatusChange()==suspend) + { + theTotalResult->SetStatusChange(fSuspend); + if(xBiasOn) + { + G4Exception("G4HadronicProcess", "007", FatalException, + "Cannot cross-section bias a process that suspends tracks."); + } + } + else if(aR->GetStatusChange()!=stopAndKill ) + { + if(xBiasOn && G4UniformRand()SetWeightChange( XBiasSurvivalProbability()*aT.GetWeight() ); + G4double newWeight = aR->GetWeightChange()*aT.GetWeight(); + G4DynamicParticle * aNew = new G4DynamicParticle(aT.GetDefinition(), + aR->GetEnergyChange(), + aR->GetMomentumChange()); + G4HadSecondary * theSec = new G4HadSecondary(aNew, newWeight); + aR->AddSecondary(theSec); + } + else + { + G4double newWeight = aR->GetWeightChange()*aT.GetWeight(); + theTotalResult->SetWeightChange(newWeight); // This is multiplicative + if(aR->GetEnergyChange()>-.5) theTotalResult->SetEnergyChange(aR->GetEnergyChange()); + G4LorentzVector newDirection(aR->GetMomentumChange().unit(), 1.); + newDirection*=aR->GetTrafoToLab(); + theTotalResult->SetMomentumDirectionChange(newDirection.vect()); + } + } + else + { + G4cerr << "Track status is "<< aR->GetStatusChange()<SetLocalEnergyDeposit(aR->GetLocalEnergyDeposit()); + theTotalResult->SetNumberOfSecondaries(aR->GetNumberOfSecondaries()); + + for(G4int i=0; iGetNumberOfSecondaries(); i++) + { + G4LorentzVector theM = aR->GetSecondary(i)->GetParticle()->Get4Momentum(); + theM.rotate(rotation, it); + theM*=aR->GetTrafoToLab(); + aR->GetSecondary(i)->GetParticle()->Set4Momentum(theM); + G4double time = aR->GetSecondary(i)->GetTime(); + if(time<0) time = aT.GetGlobalTime(); + G4Track* track = new G4Track(aR->GetSecondary(i)->GetParticle(), + aT.GetGlobalTime(), + aT.GetPosition()); + G4double newWeight = aT.GetWeight()*aR->GetSecondary(i)->GetWeight(); + //static G4double pinelcount=0; + if(xBiasOn) newWeight *= XBiasSecondaryWeight(); + /* G4cout << "#### ParticleDebug " + <GetSecondary(i)->GetParticle()->GetDefinition()->GetParticleName()<<" " + <GetSecondary(i)->GetWeight()<<" " + <GetSecondary(i)->GetParticle()<<" " + <SetWeight(newWeight); + G4double trackDeb = track->GetKineticEnergy(); + if( ( trackDeb<0 + || (trackDeb>aT.GetKineticEnergy()+1*GeV) ) && getenv("GHADEnergyBalanceDebug") ) + { + G4cout << "Debugging hadronic processes: "<GetKineticEnergy() + <<" "<GetParticleName() + <GetSecondary(i)->GetParticle()->GetDefinition()==G4Neutron::NeutronDefinition()) + { + pinelcount+= newWeight; + G4cout << "=======> Neutrons from gamma-nuclear "<AddSecondary(track); + } + aR->Clear(); + return; +} /* end of file */ diff --git a/source/processes/hadronic/models/GNUmakefile b/source/processes/hadronic/models/GNUmakefile index 37c8afd5e1..c38d26bf5a 100644 --- a/source/processes/hadronic/models/GNUmakefile +++ b/source/processes/hadronic/models/GNUmakefile @@ -1,57 +1,75 @@ -# $Id: GNUmakefile,v 1.10 2002/11/16 17:07:21 hpw Exp $ +# $Id: GNUmakefile,v 1.13 2003/11/24 12:54:22 gcosmo Exp $ # -------------------------------------------------------------- # GNUmakefile for hadronic models library. G.Folger 10-Dec-97 # -------------------------------------------------------------- name := G4hadronic_models -SUBDIRS = low_energy -SUBDIRS += high_energy -SUBDIRS += neutron_hp -SUBDIRS += isotope_production -SUBDIRS += generator/de_excitation -SUBDIRS += generator/diffractive_string -SUBDIRS += generator/high_energy -SUBDIRS += generator/kinetic_model -SUBDIRS += generator/management -SUBDIRS += generator/pre_equilibrium -SUBDIRS += generator/quark_gluon_string -SUBDIRS += generator/scattering -SUBDIRS += generator/string_common -SUBDIRS += generator/string_fragmentation -SUBDIRS += generator/util -SUBDIRS += radiative_decay -SUBDIRS += chiral_inv_phase_space/body -SUBDIRS += chiral_inv_phase_space/interface -SUBDIRS += coherent_elastic +SUBDIRS = binary_cascade SUBDIRS += cascade/evaporation SUBDIRS += cascade/utils SUBDIRS += cascade/cascade +SUBDIRS += chiral_inv_phase_space/body +SUBDIRS += chiral_inv_phase_space/interface +SUBDIRS += coherent_elastic +SUBDIRS += de_excitation/evaporation +SUBDIRS += de_excitation/fermi_breakup +SUBDIRS += de_excitation/fission +SUBDIRS += de_excitation/gem_evaporation +SUBDIRS += de_excitation/handler +SUBDIRS += de_excitation/management +SUBDIRS += de_excitation/multifragmentation +SUBDIRS += de_excitation/photon_evaporation +SUBDIRS += de_excitation/util +SUBDIRS += high_energy +SUBDIRS += im_r_matrix +SUBDIRS += isotope_production SUBDIRS += leading_particle +SUBDIRS += low_energy +SUBDIRS += management +SUBDIRS += neutron_hp +SUBDIRS += photolepton_hadron/muon_nuclear +SUBDIRS += parton_string/diffraction +SUBDIRS += parton_string/hadronization +SUBDIRS += parton_string/management +SUBDIRS += parton_string/qgsm +SUBDIRS += pre_equilibrium/exciton_model +SUBDIRS += radioactive_decay +SUBDIRS += theo_high_energy +SUBDIRS += util -SUBLIBS = G4hadronic_HE -SUBLIBS += G4hadronic_LE -SUBLIBS += G4hadronic_neu -SUBLIBS += G4hadronic_iso -SUBLIBS += G4hadronic_deex -SUBLIBS += G4hadronic_diffstring -SUBLIBS += G4hadronic_HE_gen -SUBLIBS += G4hadronic_kinetic -SUBLIBS += G4hadronic_man_gen -SUBLIBS += G4hadronic_preequ -SUBLIBS += G4hadronic_radioactivedecay -SUBLIBS += G4hadronic_qgstring -SUBLIBS += G4hadronic_scattering -SUBLIBS += G4hadronic_string_common -SUBLIBS += G4hadronic_stringfrag -SUBLIBS += G4hadronic_util_gen -SUBLIBS += G4hadronic_body_ci -SUBLIBS += G4hadronic_interface_ci -SUBLIBS += G4hadronic_coherent_elastic -SUBLIBS += G4hadronic_hetcpp_evaporation -SUBLIBS += G4hadronic_hetcpp_utils -SUBLIBS += G4hadronic_bert_cascade -SUBLIBS += G4hadronic_leading_particle +SUBLIBS = G4hadronic_binary +SUBLIBS += G4hadronic_coherent_elastic +SUBLIBS += G4hadronic_HE +SUBLIBS += G4had_im_r_matrix +SUBLIBS += G4hadronic_iso +SUBLIBS += G4hadronic_leading_particle +SUBLIBS += G4hadronic_LE +SUBLIBS += G4had_mod_man +SUBLIBS += G4had_neu_hp +SUBLIBS += G4hadronic_radioactivedecay +SUBLIBS += G4had_theo_max +SUBLIBS += G4had_mod_util +SUBLIBS += G4hadronic_bert_cascade +SUBLIBS += G4hadronic_hetcpp_evaporation +SUBLIBS += G4hadronic_hetcpp_utils +SUBLIBS += G4hadronic_body_ci +SUBLIBS += G4hadronic_interface_ci +SUBLIBS += G4hadronic_deex_evaporation +SUBLIBS += G4hadronic_deex_fermi_breakup +SUBLIBS += G4hadronic_deex_fission +SUBLIBS += G4hadronic_deex_gem_evaporation +SUBLIBS += G4hadronic_deex_handler +SUBLIBS += G4hadronic_deex_management +SUBLIBS += G4hadronic_deex_multifragmentation +SUBLIBS += G4hadronic_deex_photon_evaporation +SUBLIBS += G4hadronic_deex_util +SUBLIBS += G4had_preequ_exciton +SUBLIBS += G4had_muon_nuclear +SUBLIBS += G4had_string_diff +SUBLIBS += G4had_string_frag +SUBLIBS += G4had_string_man +SUBLIBS += G4hadronic_qgstring ifndef G4INSTALL G4INSTALL = ../../../.. diff --git a/source/processes/hadronic/models/binary_cascade/GNUmakefile b/source/processes/hadronic/models/binary_cascade/GNUmakefile new file mode 100644 index 0000000000..e8aadeb549 --- /dev/null +++ b/source/processes/hadronic/models/binary_cascade/GNUmakefile @@ -0,0 +1,48 @@ +# $Id: GNUmakefile,v 1.4 2003/11/26 09:19:20 gcosmo Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4hadronic_binary + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/magneticfield/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/im_r_matrix/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/multifragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/handler/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/pre_equilibrium/exciton_model/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/binary_cascade/History b/source/processes/hadronic/models/binary_cascade/History new file mode 100644 index 0000000000..1ac4f28c2d --- /dev/null +++ b/source/processes/hadronic/models/binary_cascade/History @@ -0,0 +1,7 @@ + + +13-june-03: Gunter + Tag: binary_cascade_ion_baseline_01 + Can run >= 10k light ions, spectator peak clear. Requires generator/util with + this tag. + diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4Absorber.hh b/source/processes/hadronic/models/binary_cascade/include/G4Absorber.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4Absorber.hh rename to source/processes/hadronic/models/binary_cascade/include/G4Absorber.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4AntiProtonField.hh b/source/processes/hadronic/models/binary_cascade/include/G4AntiProtonField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4AntiProtonField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4AntiProtonField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4BinaryCascade.hh b/source/processes/hadronic/models/binary_cascade/include/G4BinaryCascade.hh similarity index 80% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4BinaryCascade.hh rename to source/processes/hadronic/models/binary_cascade/include/G4BinaryCascade.hh index 746ac9209e..1dd1aad7a0 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4BinaryCascade.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4BinaryCascade.hh @@ -48,6 +48,9 @@ #include "G4LorentzVector.hh" #include "G4LorentzRotation.hh" +#include "G4BCDecay.hh" +#include "G4BCAction.hh" + class G4CollisionManager; class G4Track; @@ -61,24 +64,37 @@ public: G4BinaryCascade(); G4BinaryCascade(const G4BinaryCascade & right); - ~G4BinaryCascade(); + virtual ~G4BinaryCascade(); const G4BinaryCascade& operator=(G4BinaryCascade & right); G4int operator==(G4BinaryCascade& right) {return (this == &right);} G4int operator!=(G4BinaryCascade& right) {return (this != &right);} - G4VParticleChange* ApplyYourself(const G4Track & track, - G4Nucleus & nucleus); - G4ReactionProductVector * Propagate(G4KineticTrackVector * secondaries, + G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, + G4Nucleus& theNucleus); + virtual G4ReactionProductVector * Propagate(G4KineticTrackVector * secondaries, G4V3DNucleus * nucleus); private: + G4int GetTotalCharge(std::vector & aV) + { + G4int result = 0; + std::vector::iterator i; + for(i = aV.begin(); i != aV.end(); ++i) + { + if((*i)->GetDefinition() == G4Proton::Proton()) + { + ++result; + } + } + return result; + } void PrintWelcomeMessage(); void BuildTargetList(); void FindCollisions(G4KineticTrackVector * secondaries); G4bool ApplyCollision(G4CollisionInitialState * collision); - G4bool Capture(); + G4bool Capture(G4bool verbose=false); G4bool Absorb(); G4bool CheckPauliPrinciple(G4KineticTrackVector * products); G4double GetExcitationEnergy(); @@ -88,9 +104,16 @@ private: G4KineticTrackVector * oldTarget, G4KineticTrackVector * newSecondaries); G4bool DoTimeStep(G4double timeStep); + G4KineticTrackVector* CorrectBarionsOnBoundary(G4KineticTrackVector *in, + G4KineticTrackVector *out); G4Fragment * FindFragments(); + void StepParticlesOut(); G4LorentzVector GetFinal4Momentum(); G4LorentzVector GetFinalNucleusMomentum(); + G4ReactionProductVector * Propagate1H1(G4KineticTrackVector * secondaries, + G4V3DNucleus * nucleus); + G4double GetIonMass(G4int Z, G4int A); + // utility methods G4ThreeVector GetSpherePoint(G4double r, const G4LorentzVector & momentumdirection); void ClearAndDestroy(G4KineticTrackVector * ktv); @@ -108,7 +131,8 @@ private: G4ExcitationHandler * theExcitationHandler; G4CollisionManager * theCollisionMgr; - G4VScatterer * theScatterer; + + std::vector theImR; G4VFieldPropagation * thePropagator; G4double theCurrentTime; G4double theCutOnP; @@ -120,7 +144,9 @@ private: G4double theOuterRadius; G4bool thePrimaryEscape; G4ParticleDefinition * thePrimaryType; - + G4ThreeVector theMomentumTransfer; + + }; diff --git a/examples/extended/geometry/cad/include/CadDetectorMessenger.hh b/source/processes/hadronic/models/binary_cascade/include/G4BinaryLightIonReaction.hh similarity index 66% rename from examples/extended/geometry/cad/include/CadDetectorMessenger.hh rename to source/processes/hadronic/models/binary_cascade/include/G4BinaryLightIonReaction.hh index 2319646ad8..9a9d0d855c 100644 --- a/examples/extended/geometry/cad/include/CadDetectorMessenger.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4BinaryLightIonReaction.hh @@ -20,33 +20,29 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: CadDetectorMessenger.hh,v 1.1 2002/06/20 10:00:54 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ +#ifndef G4BinaryLightIonReaction_h +#define G4BinaryLightIonReaction_h -#ifndef CadDetectorMessenger_h -#define CadDetectorMessenger_h 1 +#include "G4BinaryCascade.hh" +#include "G4PreCompoundModel.hh" +#include "G4HadFinalState.hh" +#include "G4ExcitationHandler.hh" -#include "globals.hh" -#include "G4UImessenger.hh" - -class CadDetectorConstruction; -class G4UIdirectory; -class G4UIcmdWithAString; - -class CadDetectorMessenger: public G4UImessenger +class G4BinaryLightIonReaction : public G4HadronicInteraction { public: - CadDetectorMessenger(CadDetectorConstruction * myDC); - void SetNewValue(G4UIcommand * command,G4String newValues); + G4BinaryLightIonReaction(); + virtual ~G4BinaryLightIonReaction(){} + G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, + G4Nucleus& theNucleus); + private: - CadDetectorConstruction * myDetector; - G4UIdirectory * mydetDir; - G4UIcmdWithAString * selDetCmd; - G4UIcmdWithAString * switchCmd; - G4UIcmdWithAString * selMatCmd; - + G4BinaryCascade theModel; + G4ExcitationHandler theHandler; + G4PreCompoundModel theProjectileFragmentation; + G4HadFinalState theResult; + G4bool EnergyAndMomentumCorrector(G4ReactionProductVector* products, + G4LorentzVector& TotalCollisionMom); }; #endif - diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4FieldPropagation.hh b/source/processes/hadronic/models/binary_cascade/include/G4FieldPropagation.hh similarity index 98% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4FieldPropagation.hh rename to source/processes/hadronic/models/binary_cascade/include/G4FieldPropagation.hh index cd02f84319..2fd84e5fc6 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4FieldPropagation.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4FieldPropagation.hh @@ -29,7 +29,7 @@ class G4FieldPropagation { public: G4FieldPropagation() {} - G4FieldPropagation(const G4FieldPropagation &right) {} + G4FieldPropagation(const G4FieldPropagation &) {} virtual ~G4FieldPropagation() {} diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4GeneratorPrecompoundInterface.hh b/source/processes/hadronic/models/binary_cascade/include/G4GeneratorPrecompoundInterface.hh similarity index 95% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4GeneratorPrecompoundInterface.hh rename to source/processes/hadronic/models/binary_cascade/include/G4GeneratorPrecompoundInterface.hh index b78eeeebd4..84ba7761d5 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4GeneratorPrecompoundInterface.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4GeneratorPrecompoundInterface.hh @@ -30,7 +30,6 @@ #include "G4VIntraNuclearTransportModel.hh" #include "G4KineticTrackVector.hh" #include "G4FragmentVector.hh" -#include "G4ParticleChange.hh" #include "G4ReactionProductVector.hh" #include "G4ReactionProduct.hh" @@ -51,7 +50,7 @@ private: G4int operator!=(G4GeneratorPrecompoundInterface& right) {return (this != &right);} public: - G4VParticleChange* ApplyYourself(const G4Track& aTrack, G4Nucleus& theNucleus); + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus); diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_DummyField.hh b/source/processes/hadronic/models/binary_cascade/include/G4KM_DummyField.hh similarity index 96% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4KM_DummyField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4KM_DummyField.hh index f1d86fd552..21710b827d 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_DummyField.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4KM_DummyField.hh @@ -47,7 +47,7 @@ public: G4KM_DummyField() { } ~G4KM_DummyField() { } - virtual void GetFieldValue(const G4double[4], G4double *) const { } + virtual void GetFieldValue(const G4double [], G4double * ) const { } }; #endif diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_NucleonEqRhs.hh b/source/processes/hadronic/models/binary_cascade/include/G4KM_NucleonEqRhs.hh similarity index 97% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4KM_NucleonEqRhs.hh rename to source/processes/hadronic/models/binary_cascade/include/G4KM_NucleonEqRhs.hh index ef695798e0..1243ed2a46 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_NucleonEqRhs.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4KM_NucleonEqRhs.hh @@ -81,9 +81,7 @@ inline G4KM_NucleonEqRhs::~G4KM_NucleonEqRhs() // Here by design, but it is unnecessary for nuclear fields inline void -G4KM_NucleonEqRhs::SetChargeMomentumMass(G4double , - G4double , - G4double ) +G4KM_NucleonEqRhs::SetChargeMomentumMass(G4double ,G4double ,G4double ) { } #endif diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_OpticalEqRhs.hh b/source/processes/hadronic/models/binary_cascade/include/G4KM_OpticalEqRhs.hh similarity index 96% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4KM_OpticalEqRhs.hh rename to source/processes/hadronic/models/binary_cascade/include/G4KM_OpticalEqRhs.hh index bc0beb43a5..b77d580f32 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4KM_OpticalEqRhs.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4KM_OpticalEqRhs.hh @@ -71,9 +71,7 @@ inline G4KM_OpticalEqRhs::~G4KM_OpticalEqRhs() // Here by design, but it is unnecessary for nuclear fields -inline void G4KM_OpticalEqRhs::SetChargeMomentumMass(G4double , - G4double , - G4double ) +inline void G4KM_OpticalEqRhs::SetChargeMomentumMass(G4double ,G4double ,G4double ) { } #endif diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonMinusField.hh b/source/processes/hadronic/models/binary_cascade/include/G4KaonMinusField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4KaonMinusField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4KaonMinusField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonPlusField.hh b/source/processes/hadronic/models/binary_cascade/include/G4KaonPlusField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4KaonPlusField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4KaonPlusField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4KaonZeroField.hh b/source/processes/hadronic/models/binary_cascade/include/G4KaonZeroField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4KaonZeroField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4KaonZeroField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4NeutronField.hh b/source/processes/hadronic/models/binary_cascade/include/G4NeutronField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4NeutronField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4NeutronField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4PionMinusField.hh b/source/processes/hadronic/models/binary_cascade/include/G4PionMinusField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4PionMinusField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4PionMinusField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4PionPlusField.hh b/source/processes/hadronic/models/binary_cascade/include/G4PionPlusField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4PionPlusField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4PionPlusField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4PionZeroField.hh b/source/processes/hadronic/models/binary_cascade/include/G4PionZeroField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4PionZeroField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4PionZeroField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4ProtonField.hh b/source/processes/hadronic/models/binary_cascade/include/G4ProtonField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4ProtonField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4ProtonField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4RKFieldIntegrator.hh b/source/processes/hadronic/models/binary_cascade/include/G4RKFieldIntegrator.hh similarity index 98% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4RKFieldIntegrator.hh rename to source/processes/hadronic/models/binary_cascade/include/G4RKFieldIntegrator.hh index 03007c4a70..0271630d15 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4RKFieldIntegrator.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4RKFieldIntegrator.hh @@ -29,7 +29,7 @@ class G4RKFieldIntegrator : public G4FieldPropagation { public: G4RKFieldIntegrator() {} - G4RKFieldIntegrator(const G4RKFieldIntegrator &) : G4FieldPropagation (){} + G4RKFieldIntegrator(const G4RKFieldIntegrator &):G4FieldPropagation() {} ~G4RKFieldIntegrator() {} diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4RKPropagation.hh b/source/processes/hadronic/models/binary_cascade/include/G4RKPropagation.hh similarity index 88% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4RKPropagation.hh rename to source/processes/hadronic/models/binary_cascade/include/G4RKPropagation.hh index 5379b0581a..6b02bfc3fc 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4RKPropagation.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4RKPropagation.hh @@ -20,19 +20,6 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// ------------------------------------------------------------------- -// GEANT 4 class header file -// -// CERN, Geneva, Switzerland -// -// File name: G4RKPropagation.hh -// -// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) -// -// Creation date: 6 June 2000 -// -// ------------------------------------------------------------------- #ifndef G4RKPropagation_h #define G4RKPropagation_h 1 @@ -66,7 +53,7 @@ public: G4double theTimeStep); G4bool GetSphereIntersectionTimes(const G4KineticTrack * track, G4double & t1, G4double & t2); - + G4ThreeVector GetMomentumTransfer() const; private: G4double theOuterRadius; G4V3DNucleus * theNucleus; @@ -74,6 +61,8 @@ private: std::map > * theEquationMap; G4KM_DummyField * theField; + G4ThreeVector theMomentumTranfer; + G4bool GetSphereIntersectionTimes(const G4double radius, const G4ThreeVector & currentPos, const G4LorentzVector & momentum, @@ -97,8 +86,8 @@ private: return (*theFieldMap)[encoding]->GetBarrier(); } - inline G4double GetField(G4int encoding,G4ThreeVector pos) - { + inline G4double GetField(G4int encoding,G4ThreeVector pos) + { std::map >::iterator iter; iter = theFieldMap->find(encoding); if(iter == theFieldMap->end()) return 0; diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaMinusField.hh b/source/processes/hadronic/models/binary_cascade/include/G4SigmaMinusField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaMinusField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4SigmaMinusField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaPlusField.hh b/source/processes/hadronic/models/binary_cascade/include/G4SigmaPlusField.hh similarity index 85% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaPlusField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4SigmaPlusField.hh index 392a6deffb..82b698b0ff 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaPlusField.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4SigmaPlusField.hh @@ -21,17 +21,6 @@ // ******************************************************************** // // -// ------------------------------------------------------------------- -// GEANT 4 class header file -// -// CERN, Geneva, Switzerland -// -// File name: G4SigmaPlusField.hh -// -// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) -// -// Creation date: 5 June 2000 -// ------------------------------------------------------------------- #ifndef G4SigmaPlusField_h #define G4SigmaPlusField_h 1 diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaZeroField.hh b/source/processes/hadronic/models/binary_cascade/include/G4SigmaZeroField.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4SigmaZeroField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4SigmaZeroField.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4VFieldPropagation.hh b/source/processes/hadronic/models/binary_cascade/include/G4VFieldPropagation.hh similarity index 80% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4VFieldPropagation.hh rename to source/processes/hadronic/models/binary_cascade/include/G4VFieldPropagation.hh index 4ee24db7f3..998d1b698b 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4VFieldPropagation.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4VFieldPropagation.hh @@ -21,21 +21,6 @@ // ******************************************************************** // // -// ------------------------------------------------------------------- -// GEANT 4 class header file -// -// CERN, Geneva, Switzerland -// -// File name: G4VFieldPropagation.hh -// -// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) -// -// Creation date: 6 Jun 2000 -// -// Modifications: 25 Oct 2000: removed GetExcitationEnergy() method -// from the interface (A. Brunengo) -// -// ------------------------------------------------------------------- #ifndef G4VFieldPropagation_h #define G4VFieldPropagation_h 1 @@ -60,6 +45,7 @@ public: virtual void Transport(G4KineticTrackVector &theActive, const G4KineticTrackVector &theSpectators, G4double theTimeStep) = 0; + virtual G4ThreeVector GetMomentumTransfer() const =0; }; #endif diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4VKM_NuclearDensity.hh b/source/processes/hadronic/models/binary_cascade/include/G4VKM_NuclearDensity.hh similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4VKM_NuclearDensity.hh rename to source/processes/hadronic/models/binary_cascade/include/G4VKM_NuclearDensity.hh diff --git a/source/processes/hadronic/models/generator/kinetic_model/include/G4VNuclearField.hh b/source/processes/hadronic/models/binary_cascade/include/G4VNuclearField.hh similarity index 85% rename from source/processes/hadronic/models/generator/kinetic_model/include/G4VNuclearField.hh rename to source/processes/hadronic/models/binary_cascade/include/G4VNuclearField.hh index f741416d42..be3f297a52 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/include/G4VNuclearField.hh +++ b/source/processes/hadronic/models/binary_cascade/include/G4VNuclearField.hh @@ -20,18 +20,6 @@ // * statement, and all its terms. * // ******************************************************************** // -// -// ------------------------------------------------------------------- -// GEANT 4 class header file -// -// CERN, Geneva, Switzerland -// -// File name: G4VNuclearField.hh -// -// Author: Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) -// -// Creation date: 5 June 2000 -// ------------------------------------------------------------------- #ifndef G4VNuclearField_h #define G4VNuclearField_h 1 @@ -39,6 +27,7 @@ #include "globals.hh" #include "G4ThreeVector.hh" #include "G4V3DNucleus.hh" +#include "G4HadronicException.hh" class G4VNuclearField { diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4Absorber.cc b/source/processes/hadronic/models/binary_cascade/src/G4Absorber.cc similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4Absorber.cc rename to source/processes/hadronic/models/binary_cascade/src/G4Absorber.cc diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4AntiProtonField.cc b/source/processes/hadronic/models/binary_cascade/src/G4AntiProtonField.cc similarity index 87% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4AntiProtonField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4AntiProtonField.cc index 6fca6f8584..9b59585f98 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4AntiProtonField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4AntiProtonField.cc @@ -38,6 +38,7 @@ #include "G4FermiMomentum.hh" #include "G4ParticleDefinition.hh" #include "G4AntiProton.hh" +#include "G4HadTmpUtil.hh" G4AntiProtonField::G4AntiProtonField(G4V3DNucleus * nucleus, G4double coeff) : G4VNuclearField(nucleus) @@ -52,21 +53,21 @@ G4AntiProtonField::~G4AntiProtonField() const G4AntiProtonField & G4AntiProtonField::operator=(const G4AntiProtonField & ) { - G4Exception("G4AntiProtonField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4AntiProtonField::operator= meant not to be accessible"); return *this; } G4int G4AntiProtonField::operator==(const G4AntiProtonField & ) const { - G4Exception("G4AntiProtonField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4AntiProtonField::operator== meant not to be accessible"); return 0; } G4int G4AntiProtonField::operator!=(const G4AntiProtonField & ) const { - G4Exception("G4AntiProtonField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4AntiProtonField::operator!= meant not to be accessible"); return 1; } @@ -80,9 +81,9 @@ G4double G4AntiProtonField::GetField(const G4ThreeVector & aPosition) G4ParticleDefinition *anAntiProton = G4AntiProton::AntiProtonDefinition(); G4double antiProtonMass = anAntiProton->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4int(Z), G4int(A)); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = antiProtonMass*nucleusMass/(antiProtonMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4BinaryCascade.cc b/source/processes/hadronic/models/binary_cascade/src/G4BinaryCascade.cc old mode 100644 new mode 100755 similarity index 58% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4BinaryCascade.cc rename to source/processes/hadronic/models/binary_cascade/src/G4BinaryCascade.cc index bde50dfb97..3a0fe35660 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4BinaryCascade.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4BinaryCascade.cc @@ -32,6 +32,9 @@ #include "G4V3DNucleus.hh" #include "G4Fancy3DNucleus.hh" #include "G4Scatterer.hh" +#include "G4MesonAbsorption.hh" +#include "G4ping.hh" +#include "G4Delete.hh" #include "G4CollisionManager.hh" #include "G4Absorber.hh" @@ -46,10 +49,16 @@ #include "G4FermiMomentum.hh" #include "G4PreCompoundModel.hh" -#include "G4ExcitationHandler.hh" +#include "G4ExcitationHandler.hh" + +#include "G4FermiPhaseSpaceDecay.hh" #include #include "G4ShortLivedConstructor.hh" +#include + +// #define debug_1_BinaryCascade 1 +// #define debug_G4BinaryCascade 1 // // C O N S T R U C T O R S A N D D E S T R U C T O R S // @@ -59,13 +68,15 @@ G4BinaryCascade::G4BinaryCascade() : G4VIntraNuclearTransportModel() // initialise the resonance sector G4ShortLivedConstructor ShortLived; ShortLived.ConstructParticle(); - + theCollisionMgr = new G4CollisionManager; - theScatterer = new G4Scatterer; -// theScatterer = new G4ScattererStub; + + theImR.push_back(new G4BCDecay); + theImR.push_back(new G4Scatterer); + theImR.push_back(new G4MesonAbsorption); thePropagator = new G4RKPropagation; theCurrentTime = 0.; - theCutOnP = 70*MeV; //GF was 150.. + theCutOnP = 90*MeV; theCutOnPAbsorb= 0*MeV; // G4ExcitationHandler * theExcitationHandler = new G4ExcitationHandler; @@ -78,7 +89,8 @@ G4BinaryCascade::G4BinaryCascade() : G4VIntraNuclearTransportModel() } -G4BinaryCascade::G4BinaryCascade(const G4BinaryCascade& ) : G4VIntraNuclearTransportModel() +G4BinaryCascade::G4BinaryCascade(const G4BinaryCascade& ) +: G4VIntraNuclearTransportModel() { } @@ -90,8 +102,9 @@ G4BinaryCascade::~G4BinaryCascade() ClearAndDestroy(&theCapturedList); ClearAndDestroy(&theProjectileList); delete thePropagator; - delete theScatterer; delete theCollisionMgr; + std::for_each(theImR.begin(), theImR.end(), Delete()); + delete theExcitationHandler; } //---------------------------------------------------------------------------- @@ -102,21 +115,21 @@ G4BinaryCascade::~G4BinaryCascade() //---------------------------------------------------------------------------- -G4VParticleChange * G4BinaryCascade::ApplyYourself(const G4Track & aTrack, +G4HadFinalState * G4BinaryCascade::ApplyYourself(const G4HadProjectile & aTrack, //---------------------------------------------------------------------------- G4Nucleus & aNucleus) { static G4int eventcounter=0; //if(eventcounter == 100*(eventcounter/100) ) - if(getenv("KCDEBUG") ) G4cerr << " ######### Reaction number starts ######### "<Get4Momentum(); + if(getenv("BCDEBUG") ) G4cerr << " ######### Binary Cascade Reaction number starts ######### "<ApplyYourself(aTrack, aNucleus); } - theParticleChange.Initialize(aTrack); + theParticleChange.Clear(); // initialize the G4V3DNucleus from G4Nucleus the3DNucleus = new G4Fancy3DNucleus; the3DNucleus->Init(aNucleus.GetN(), aNucleus.GetZ()); @@ -125,18 +138,20 @@ G4VParticleChange * G4BinaryCascade::ApplyYourself(const G4Track & aTrack, // Build a KineticTrackVector with the G4Track G4KineticTrackVector * secondaries = new G4KineticTrackVector; - G4ParticleDefinition * definition = aTrack.GetDefinition(); + G4ParticleDefinition * definition = const_cast(aTrack.GetDefinition()); G4ThreeVector initialPosition(0., 0., 0.); // will be set later if(!getenv("I_Am_G4BinaryCascade_Developer") ) { if(definition!=G4Neutron::NeutronDefinition() && - definition!=G4Proton::ProtonDefinition() ) + definition!=G4Proton::ProtonDefinition() && + definition!=G4PionPlus::PionPlusDefinition() && + definition!=G4PionMinus::PionMinusDefinition() ) { - G4cerr << "You are using G4BinaryCascade for projectiles other than neutron and proton."<GetOuterRadius()+3*fermi; + G4int interactionCounter = 0; do { // reset status that could be changed in previous loop event theCollisionMgr->ClearAndDestroy(); ClearAndDestroy(&theTargetList); // clear and rebuild theTargetList + the3DNucleus->Init(aNucleus.GetN(), aNucleus.GetZ()); BuildTargetList(); G4KineticTrack * kt = new G4KineticTrack(definition, 0., initialPosition, initial4Momentum); @@ -163,6 +180,7 @@ G4VParticleChange * G4BinaryCascade::ApplyYourself(const G4Track & aTrack, theCurrentTime=0; initialPosition=GetSpherePoint(1.1*radius, initial4Momentum); // get random position kt->SetPosition(initialPosition); // kt is in secondaries!! + kt->SetState(G4KineticTrack::outside); FindCollisions(secondaries); } if(products != NULL) @@ -177,14 +195,20 @@ G4VParticleChange * G4BinaryCascade::ApplyYourself(const G4Track & aTrack, // if(1) // return &theParticleChange; // --------- end debug + if(++interactionCounter>99) break; } while(products->size() == 0); // ...untill we find an ALLOWED collision + if(products->size()==0) + { + theParticleChange.SetStatusChange(isAlive); + theParticleChange.SetEnergyChange(aTrack.GetKineticEnergy()); + theParticleChange.SetMomentumChange(aTrack.Get4Momentum().vect().unit()); + return &theParticleChange; + } // G4cout << "HKM Applyyourself: number of products " << products->size() << G4endl; // Fill the G4ParticleChange * with products - G4int nProducts = products->size(); - theParticleChange.SetStatusChange(fStopAndKill); - theParticleChange.SetNumberOfSecondaries(nProducts); + theParticleChange.SetStatusChange(stopAndKill); G4ReactionProductVector::iterator iter; G4double Efinal=0; for(iter = products->begin(); iter != products->end(); ++iter) @@ -193,7 +217,7 @@ G4VParticleChange * G4BinaryCascade::ApplyYourself(const G4Track & aTrack, new G4DynamicParticle((*iter)->GetDefinition(), (*iter)->GetTotalEnergy(), (*iter)->GetMomentum()); - if(getenv("KCDEBUG") ) + if(getenv("BCDEBUG") ) { if(abs(aNew->GetDefinition()->GetPDGEncoding()) >100 && abs(aNew->GetDefinition()->GetPDGEncoding()) < 300) G4cout << "Pion info "<GetDefinition()->GetPDGEncoding() <<" "<GetKineticEnergy()<GetOuterRadius(); theCurrentTime=0; // build theSecondaryList, theProjectileList and theCapturedList @@ -239,89 +268,16 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( ClearAndDestroy(&theSecondaryList); ClearAndDestroy(&theProjectileList); ClearAndDestroy(&theFinalState); - std::vector::iterator iter, jter; - G4int trialcount(0); + std::vector::iterator iter; if(nucleus->GetMassNumber() == 1) // 1H1 is special case { - G4ParticleDefinition * aHTarg = G4Proton::ProtonDefinition(); - G4double mass = aHTarg->GetPDGMass(); - if (nucleus->GetCharge() == 0) aHTarg = G4Neutron::NeutronDefinition(); - mass = aHTarg->GetPDGMass(); - G4KineticTrackVector * secs = 0; - G4ThreeVector pos(0,0,0); - G4LorentzVector mom(mass); - // G4cout << "the lovely "<< mom << " "<GetPDGMass()<begin(), secs->end(), DeleteKineticTrack()); - delete secs; - } - secs = theScatterer->Scatter(*(*secondaries).front(), aTarget); - trialcount++; - for(size_t ss=0; secs && sssize(); ss++) - { - if((*secs)[ss]->GetDefinition()->IsShortLived()) done = true; - } - } - size_t current(0); - for(current=0; currentsize(); current++) - { - if((*secs)[current]->GetDefinition()->IsShortLived()) - { - G4KineticTrackVector * dec = (*secs)[current]->Decay(); - for(jter=dec->begin(); jter != dec->end(); jter++) - { - //G4cout << "Decay"<push_back(*jter); - //G4cout << "decay "<<(*jter)->GetDefinition()->GetParticleName()<GetDefinition()->GetParticleName()<GetDefinition()); - aNew->SetMomentum(kt->Get4Momentum().vect()); - aNew->SetTotalEnergy(kt->Get4Momentum().e()); - products->push_back(aNew); - #ifdef debug_1_KineticCascade - if (! kt->GetDefinition()->GetPDGStable() ) - { - if (kt->GetDefinition()->IsShortLived()) - { - G4cout << "final shortlived : "; - } else - { - G4cout << "final un stable : "; - } - G4cout <GetDefinition()->GetParticleName()<< G4endl; - } - #endif - } - return products; + return Propagate1H1(secondaries,nucleus); } - + for(iter = secondaries->begin(); iter != secondaries->end(); ++iter) { theSecondaryList.push_back(*iter); - G4ThreeVector pos = (*iter)->GetPosition(); - G4LorentzVector mom = (*iter)->Get4Momentum(); - theProjectileList.push_back(new G4KineticTrack((*iter)->GetDefinition(), 0., - pos, mom)); + theProjectileList.push_back(new G4KineticTrack(*(*iter))); } secondaries->clear(); // Don't leave "G4KineticTrack *"s in two vectors @@ -329,6 +285,9 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( // if called stand alone, build theTargetList and find first collisions + if(nucleus->GetMass()>30) theCutOnP = 70*MeV; + if(nucleus->GetMass()>60) theCutOnP = 50*MeV; + if(nucleus->GetMass()>120) theCutOnP = 45*MeV; if(theCollisionMgr->Entries() == 0) { the3DNucleus = nucleus; @@ -345,6 +304,7 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( G4bool haveProducts = false; G4int collisionCount=0; + theMomentumTransfer=0; while(theCollisionMgr->Entries() > 0) { // G4cout << "Propagate Captured size: " << theCapturedList.size() << G4endl; @@ -368,6 +328,7 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( G4CollisionInitialState * nextCollision = theCollisionMgr->GetNextCollision(); + debug.push_back("======> test 1"); debug.dump(); if (!DoTimeStep(nextCollision->GetCollisionTime()-theCurrentTime) ) { // Check if nextCollision is still valid, ie. partcile did not leave nucleus @@ -376,25 +337,34 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( nextCollision = 0; } } + debug.push_back("======> test 2"); debug.dump(); // G4cerr <<"post- DoTimeStep 1"<RemoveCollision(nextCollision); + debug.push_back("======> test 3"); debug.dump(); if (ApplyCollision(nextCollision)) +// testing if ( true ) { // apply the collision //G4cerr << "ApplyCollision sucess " << G4endl; haveProducts = true; collisionCount++; + debug.push_back("======> test 4.1"); debug.dump(); } else { //G4cerr << "ApplyCollision failure " << G4endl; theCollisionMgr->RemoveCollision(nextCollision); + debug.push_back("======> test 4.2"); debug.dump(); } } + debug.push_back("======> test 5"); debug.dump(); // G4cerr <<"post-post- DoTimeStep 1"< #### through the first loop"); debug.dump(); // No more collisions: absorb, capture and propagate the secondaries out of the nucleus if(Absorb()) { haveProducts = true; @@ -411,123 +381,15 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( return products; } - G4int counter=0; - G4int countreset=0; - G4double steplength=1.0 * fermi; - G4double radius = theOuterRadius + 3*fermi; - //G4cout << " nucl. Radius " << radius << G4endl; - // G4cerr <<"pre-while- theSecondaryList "< 0 ) - { - G4int nsec=0; - G4double minTimeStep = 1.e-12*ns; // about 30*fermi/(0.1*c_light);1.e-12*ns - std::vector::iterator i; - for(i = theSecondaryList.begin(); i != theSecondaryList.end(); ++i) - { - G4KineticTrack * kt = *i; - if( kt->GetPosition().mag() < radius) // capture happens only inside the nucleus - { - if((kt->GetDefinition() == G4Proton::Proton()) || - (kt->GetDefinition() == G4Neutron::Neutron())) - { - nsec++; - G4double tStep = steplength / ( kt->Get4Momentum().beta() * c_light ); - //G4cout << " minTimeStep, tStep Particle " <GetDefinition()->GetParticleName() << " 4mom " << kt->Get4Momentum()<GetPosition().mag()<<" " -// <Get4Momentum().e()-kt->Get4Momentum().mag()<Entries() > 0) - { - nextCollision = theCollisionMgr->GetNextCollision(); - timeToCollision = nextCollision->GetCollisionTime()-theCurrentTime; - } - //G4cout << " minTimeStep, timeToCollisiont " < minTimeStep ) - { - //G4cerr <<"pre- DoTimeStep 2"<GetNextCollision() != nextCollision ) - { - nextCollision = 0; - } - } - // G4cerr <<"post- DoTimeStep 3"<RemoveCollision(nextCollision); - } - } - } - - if(countreset>100) - { #ifdef debug_G4BinaryCascade - G4cerr << "HadronKineticModel.cc: Warning - aborting looping particle(s)" << G4endl; + G4cout << " Momentum transfer to Nucleus " << theMomentumTransfer << " " << theMomentumTransfer.mag() << G4endl; + G4cout << " Stepping particles out...... " << G4endl; #endif -// add left secondaries to FinalSate - std::vector::iterator iter; - for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) - { - theFinalState.push_back(*iter); - } - theSecondaryList.clear(); - - break; - } - - if(Absorb()) - { - haveProducts = true; - // G4cout << "Absorb sucess " << G4endl; - } - - if(Capture()) - { - haveProducts = true; - // G4cout << "Capture sucess " << G4endl; - } - if ( counter > 100 && theCollisionMgr->Entries() == 0) // no collision, and stepping a while.... - { - #ifdef debug_1_KineticCascade - PrintKTVector(&theSecondaryList,std::string("stepping 100 steps")); - #endif - FindCollisions(&theSecondaryList); - counter=0; - ++countreset; - } - } -// G4cerr <<"Finished capture loop "< 0 ) { #ifdef debug_G4BinaryCascade @@ -550,32 +412,25 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( theCollisionMgr->RemoveCollision(theCollisionMgr->GetNextCollision()); } -// ------ debug - -/* - * G4cout << "theProjectileList" << G4endl; - * PrintKTVector(&theProjectileList); - * G4cout << "theSecondaryList" << G4endl; - * PrintKTVector(&theSecondaryList); - * G4cout << "theTargetList size: " << theTargetList.size() << G4endl; - * // PrintKTVector(&theTargetList); - * G4cout << "theCapturedList" << G4endl; - * PrintKTVector(&theCapturedList); - */ - -// ------ end debug - #ifdef debug_G4BinaryCascade + + PrintKTVector(&theProjectileList,std::string(" theProjectileList")); + PrintKTVector(&theSecondaryList,std::string(" theSecondaryList")); + G4cout << "theTargetList size: " << theTargetList.size() << G4endl; +// PrintKTVector(&theTargetList,std::string(" theTargetList")); + PrintKTVector(&theCapturedList,std::string(" theCapturedList")); + G4cout << " ExcitE be4 Correct : " < 0 ) // FixMe: GF temporary should we better re-start? + if ( ExcitationEnergy >= 0 ) // FixMe: GF temporary should we better re-start? { // G4Fragment * fragment = FindFragments(); // theDeExcitation =0; - if(fragment->GetA() >1.5) // hpw @@@@ still to add the nucleon, if one exists. + if(fragment && fragment->GetA() >1.5) // hpw @@@@ still to add the nucleon, if one exists. { if (theDeExcitation) { @@ -639,13 +495,62 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( delete fragment; fragment=0; } + } else { + if ( theTargetList.size() == 1 ) + { + precompoundProducts = new G4ReactionProductVector(); + std::vector::iterator i=theTargetList.begin(); + G4ReactionProduct * aNew = new G4ReactionProduct((*i)->GetDefinition()); + aNew->SetTotalEnergy((*i)->GetDefinition()->GetPDGMass()); + aNew->SetMomentum(G4ThreeVector(0)); // see boost fro preCompoundProducts below.. + precompoundProducts->push_back(aNew); + } else if ( theTargetList.size() > 1) + { + precompoundProducts = new G4ReactionProductVector(); + std::vector::iterator aNuc; + G4LorentzVector aVec; + std::vector masses; + G4double sumMass(0); + for ( aNuc=theTargetList.begin(); aNuc != theTargetList.end(); aNuc++) + { + G4double mass=(*aNuc)->GetDefinition()->GetPDGMass(); + masses.push_back(mass); + sumMass += mass; + } + G4LorentzVector finalP=GetFinal4Momentum(); + G4FermiPhaseSpaceDecay decay; +// G4cout << " some neutrons? " << masses.size() <<" " << theTargetList.size()<<" "< * momenta=decay.Decay(eCMS,masses); + std::vector::iterator aMom=momenta->begin(); + for ( aNuc=theTargetList.begin(); + (aNuc != theTargetList.end()) && (aMom!=momenta->end()); + aNuc++, aMom++ ) + { + G4ReactionProduct * aNew = new G4ReactionProduct((*aNuc)->GetDefinition()); + aNew->SetTotalEnergy((*aMom)->e()); + aNew->SetMomentum((*aMom)->vect()); + precompoundProducts->push_back(aNew); +// G4cout << " only neutrons? " << (*aNuc)->GetDefinition()->GetParticleName() << G4endl; + delete *aMom; + } + delete momenta; + } } - } else { + + } #ifdef debug_G4BinaryCascade - G4cerr << "KineticModel: Warning negative Excitation Energy"<< G4endl; -#endif + else { + G4cerr << "Binary Cascade Error: negative Excitation Energy "<< G4endl; } - { +#endif + { // fill in products the outgoing particles G4double Ekinout=0; size_t i(0); @@ -663,15 +568,23 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( delete dec; } else - { + { G4ReactionProduct * aNew = new G4ReactionProduct(kt->GetDefinition()); aNew->SetMomentum(kt->Get4Momentum().vect()); aNew->SetTotalEnergy(kt->Get4Momentum().e()); Ekinout += aNew->GetKineticEnergy(); + if(kt->IsParticipant()) + { + aNew->SetNewlyAdded(true); + } + else + { + aNew->SetNewlyAdded(false); + } //G4cout << " Particle Ekin " << aNew->GetKineticEnergy() << G4endl; products->push_back(aNew); - #ifdef debug_1_KineticCascade + #ifdef debug_1_BinaryCascade if (! kt->GetDefinition()->GetPDGStable() ) { if (kt->GetDefinition()->IsShortLived()) @@ -685,7 +598,7 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( } #endif } - + } //G4cout << " Total Ekin " << Ekinout << G4endl; } @@ -697,9 +610,16 @@ G4ReactionProductVector * G4BinaryCascade::Propagate( { // boost back to system of moving nucleus G4LorentzVector pProduct((*j)->GetMomentum(),(*j)->GetTotalEnergy()); +#ifdef debug_G4BinaryCascade + G4cout << " pProduct be4 boost " <SetTotalEnergy(pProduct.e()); (*j)->SetMomentum(pProduct.vect()); + (*j)->SetNewlyAdded(true); products->push_back(*j); } @@ -737,47 +657,44 @@ G4double G4BinaryCascade::GetExcitationEnergy() //---------------------------------------------------------------------------- { + G4ping debug("debug_ExcitationEnergy"); // get A and Z for the residual nucleus #ifdef debug_G4BinaryCascade G4int finalA = theTargetList.size()+theCapturedList.size(); + G4int finalZ = GetTotalCharge(theTargetList)+GetTotalCharge(theCapturedList); #endif - G4int finalZ = 0; - - std::vector::iterator i; - for(i = theTargetList.begin(); i != theTargetList.end(); ++i) - { - if((*i)->GetDefinition() == G4Proton::Proton()) - { - ++finalZ; - } - } - - for(i = theCapturedList.begin(); i != theCapturedList.end(); ++i) - { - if((*i)->GetDefinition() == G4Proton::Proton()) - { - ++finalZ; - } - } G4double excitationE(0); G4double nucleusMass(0); if(currentZ>.5) { - //G4cerr <<"mon - we know z "<GetIonTable()->GetIonMass(currentZ,currentA); - } else if (currentZ==0 && currentA==1 ) + } + else if (currentZ==0 && currentA==1 ) { nucleusMass = G4Neutron::Neutron()->GetPDGMass(); - } else + } + else { - #ifdef debug_1_KineticCascade + #ifdef debug_1_BinaryCascade G4cout << "G4BinaryCascade::GetExcitationEnergy(): Warning - invalid nucleus (A,Z)=(" << currentA << "," << currentZ << ")" << G4endl; #endif return 0; } + #ifdef debug_G4BinaryCascade + debug.push_back("====> current A, Z"); + debug.push_back(currentZ); + debug.push_back(currentA); + debug.push_back(finalZ); + debug.push_back(finalA); + debug.push_back(nucleusMass); + debug.push_back(GetFinalNucleusMomentum().mag()); + debug.dump(); +// PrintKTVector(&theTargetList, std::string(" current target list info")); + PrintKTVector(&theCapturedList, std::string(" current captured list info")); + #endif excitationE = GetFinalNucleusMomentum().mag() - nucleusMass; @@ -798,9 +715,8 @@ G4double G4BinaryCascade::GetExcitationEnergy() G4int A = the3DNucleus->GetMassNumber(); G4int Z = the3DNucleus->GetCharge(); G4double initialExc(0); - if(Z>.5) + if(Z>.5) { - //G4cerr << "occation 1 "<< Z <<" "<GetIonTable()->GetIonMass(Z, A); } @@ -852,7 +768,6 @@ void G4BinaryCascade::BuildTargetList() if ( ! nucleon->AreYouHit() ) { definition = nucleon->GetDefinition(); -// G4int PDGcode=definition->GetPDGEncoding(); pos = nucleon->GetPosition(); mom = nucleon->GetMomentum(); // G4cout << "Nucleus " << pos.mag()/fermi << " " << mom.e() << G4endl; @@ -860,17 +775,9 @@ void G4BinaryCascade::BuildTargetList() // In the kinetic Model, the potential inside the nucleus is taken into account, and nucleons // are on mass shell. mom.setE( sqrt( mom.vect().mag2() + sqr(definition->GetPDGMass()) ) ); -// if ( mom.e() + RKprop->GetField(PDGcode,pos) >definition->GetPDGMass() ) -// { -// G4cout << "G4BinaryCascade::BuildTargetList found free nucleon " <GetPDGMass() << " " <GetField(PDGcode,pos) -// << G4endl; -// } - - G4KineticTrack * kt = new G4KineticTrack(definition, 0., pos, mom); + kt->SetState(G4KineticTrack::inside); + kt->SetNucleon(nucleon); theTargetList.push_back(kt); ++currentA; if (definition->GetPDGCharge() > .5 ) ++currentZ; @@ -879,7 +786,6 @@ void G4BinaryCascade::BuildTargetList() massInNucleus = 0; if(currentZ>.5) { - //G4cerr << "occation 2 "<< currentZ <<" "<GetIonTable()->GetIonMass(currentZ,currentA); } else if (currentZ==0 && currentA==1 ) { @@ -889,6 +795,8 @@ void G4BinaryCascade::BuildTargetList() //G4cout << "G4BinaryCascade::BuildTargetList(): Warning - invalid nucleus (A,Z)=(" // << currentA << "," << currentZ << ")" << G4endl; } +// G4cout << "G4BinaryCascade::BuildTargetList(): nucleus (A,Z)=(" +// << currentA << "," << currentZ << ")" << G4endl; } @@ -897,49 +805,20 @@ void G4BinaryCascade::BuildTargetList() void G4BinaryCascade::FindCollisions(G4KineticTrackVector * secondaries) //---------------------------------------------------------------------------- { - G4KineticTrack * pkt; - G4KineticTrack * tkt; - G4double collisionTime; -/* - * G4cout << " FindCollisions start" << endl; - * theCollisionMgr->Print(); - */ for(std::vector::iterator i = secondaries->begin(); - i != secondaries->end(); ++i) + i != secondaries->end(); ++i) { - pkt = *i; - // look for collisions with target particles -// G4cerr << "G4BinaryCascade::ApplyCollision pre-collision time" -// <Get4Momentum()<<" "<Get4Momentum().boostVector().mag()<<" " <GetDefinition()->GetParticleName() -// <::iterator j = theTargetList.begin(); - j != theTargetList.end(); ++j) + for(std::vector::iterator j = theImR.begin(); + j!=theImR.end(); j++) { - tkt = *j; - collisionTime = theScatterer->GetTimeToInteraction(*pkt, *tkt); - if(collisionTime == DBL_MAX) // no collision - continue; - theCollisionMgr->AddCollision(collisionTime+theCurrentTime, pkt, tkt); -// G4cerr <<" !!!!!! debug collisions "<GetDefinition()->GetParticleName()<GetDefinition()->IsShortLived()) - { - collisionTime = pkt->SampleResidualLifetime(); -// G4cerr <<" !!!!!! debug decay "<GetDefinition()->GetParticleName()<AddCollision(collisionTime+theCurrentTime, pkt, 0); -/* - * G4cout << " shortlived: " << pkt->GetDefinition()->GetParticleName(); - * G4cout << " shortlived: " << pkt->GetDefinition()->GetParticleName() - * << " coll.time (ns)=" << collisionTime/ns << G4endl; - */ + const std::vector & aCandList + = (*j)->GetCollisions(*i, theTargetList, theCurrentTime); + for(size_t count=0; countAddCollision(aCandList[count]); + } } } -/* - * G4cout << " FindCollisions found collisions" << endl; - * theCollisionMgr->Print(); - */ } @@ -947,123 +826,109 @@ void G4BinaryCascade::FindCollisions(G4KineticTrackVector * secondaries) G4bool G4BinaryCascade::ApplyCollision(G4CollisionInitialState * collision) //---------------------------------------------------------------------------- { + G4ping debug("debug_ApplyCollision"); //G4cerr << "G4BinaryCascade::ApplyCollision start"<GetPrimary(); - G4KineticTrack * target = collision->GetTarget(); - - G4KineticTrackVector * products=0; - -// G4cout << "ApplyCollisions : projte 4mom " << primary->Get4Momentum()<< G4endl; + if(primary->GetState() != G4KineticTrack::inside) + { +#ifdef debug_BinaryCascade + G4cout << "G4BinaryCasacde::ApplyCollision(): StateError (ignored)" << primary << G4endl; + G4KineticTrackVector debug; + debug.push_back(primary); + PrintKTVector(&debug,std::string("primay- target")); + throw G4HadronicException(__FILE__, __LINE__, "G4BinaryCasacde::ApplyCollision()"); +#else + return false; +#endif + } + +#ifdef debug_G4BinaryCascade + G4cout << "ApplyCollisions : projte 4mom " << primary->GetTrackingMomentum()<< G4endl; // if (target != 0 ) // { // G4cout << "ApplyCollisions : target 4mom " << target->Get4Momentum()<< G4endl; // } - +#endif G4int initialBaryon = primary->GetDefinition()->GetBaryonNumber(); G4int initialCharge(0); - if(initialBaryon!=0) initialCharge+=static_cast(primary->GetDefinition()->GetPDGCharge()+.1); - if(target == NULL) // if target == 0 it is a decay - { - //G4cerr << "G4BinaryCascade::ApplyCollision pre-decay"<Decay(); - //G4cerr << "G4BinaryCascade::ApplyCollision post-decay"<GetDefinition()->GetParticleName() << G4endl; - //G4cerr << "number of products created: " << products->size() << G4endl; - } - else - { - G4KineticTrack target_reloc(*target); - initialBaryon += target->GetDefinition()->GetBaryonNumber(); - if(target->GetDefinition()->GetBaryonNumber()!=0) initialCharge+=static_cast(target->GetDefinition()->GetPDGCharge()+.1); -/* //GF : Update Energy such that E' = E + Potential(pos(primary)-Potential(pos(target) - G4int PDGcode=target->GetDefinition()->GetPDGEncoding(); - G4RKPropagation * RKprop=(G4RKPropagation *)thePropagator; - G4double cur_Potential=RKprop->GetField(PDGcode,target->GetPosition()); - G4double new_Potential=RKprop->GetField(PDGcode,primary->GetPosition()); - G4double dE=new_Potential - cur_Potential; - G4double pcur=mom.vect().mag(); - G4double tmp=sqr(mom.e()+dE) - mom.mag2(); - if (tmp < 0.) - { - //G4cerr << "G4BinaryCascade::ApplyCollision tmp problem"<GetDefinition()->GetPDGCharge()); - mom.setE(mom.e() + dE ); -// -// G4LorentzVector mom=target->Get4Momentum(); -// target_reloc.Set4Momentum(G4LorentzVector(0.1*mom.vect(),mom.e())); - target_reloc.SetPosition(primary->GetPosition()); -*/ - //G4cerr << "G4BinaryCascade::ApplyCollision start 1"<Scatter(*primary, target_reloc); - //G4cerr << "G4BinaryCascade::ApplyCollision start 2"<GetFinalState(); + initialBaryon += collision->GetTargetBaryonNumber(); + initialCharge+=G4lrint(collision->GetTargetCharge()); + + if(!products || products->size()==0 || !CheckPauliPrinciple(products)) { + #ifdef debug_G4BinaryCascade + if (products) G4cout << " ======Failed Pauli =====" << G4endl; + G4cerr << "G4BinaryCascade::ApplyCollision blocked"<GetPrimary()); + PrintKTVector(&debug1,std::string(" Primary particle")); + PrintKTVector(&collision->GetTargetCollection(),std::string(" Target particles")); PrintKTVector(products,std::string(" Scatterer products")); #endif -// G4cout << " ======Survive Pauli =====" << G4endl; G4int finalBaryon(0); G4int finalCharge(0); for(size_t ig=0;igsize();ig++) { finalBaryon+=products->operator[](ig)->GetDefinition()->GetBaryonNumber(); - if(products->operator[](ig)->GetDefinition()->GetBaryonNumber()!=0) finalCharge+=static_cast(products->operator[](ig)->GetDefinition()->GetPDGCharge()+.1); + finalCharge+=G4lrint(products->operator[](ig)->GetDefinition()->GetPDGCharge()); +// secondaries are created inside nucleus + products->operator[](ig)->SetState(G4KineticTrack::inside); } currentA += finalBaryon-initialBaryon; currentZ += finalCharge-initialCharge; + G4KineticTrackVector oldSecondaries; oldSecondaries.push_back(primary); - G4KineticTrackVector oldTarget; - if(target != NULL) - oldTarget.push_back(target); - //G4cerr << "G4BinaryCascade::ApplyCollision pre-update"<GetGenerator()).name() + << ", with number of products: "<< products->size() <GetPrimary()->GetDefinition()->GetParticleName()<GetTargetCollection().size(); it++) + { + G4cout << "targ: " + <GetTargetCollection()[it]->GetDefinition()->GetParticleName()<GetTargetCollection(),std::string(" Target particles")); + G4cout << G4endl<GetTargetCollection(); + primary->Hit(); + for(size_t ii=0; ii< oldTarget.size(); ii++) + { + oldTarget[ii]->Hit(); + } + + debug.push_back("=======> we have hit nucleons <======="); + UpdateTracksAndCollisions(&oldSecondaries, &oldTarget, products); - //G4cerr << "G4BinaryCascade::ApplyCollision post-update"<()); + std::for_each(oldTarget.begin(), oldTarget.end(), Delete()); + delete products; - //G4cerr << "G4BinaryCascade::ApplyCollision end"<::iterator iter; - G4double radius = theOuterRadius+3*fermi; for(iter = theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) { G4KineticTrack * kt = *iter; - if(kt->GetPosition().mag() < radius)// absorption happens only inside the nucleus + if(kt->GetState() == G4KineticTrack::inside)// absorption happens only inside the nucleus { if(absorber.WillBeAbsorbed(*kt)) { @@ -1100,10 +964,10 @@ G4bool G4BinaryCascade::Absorb() { G4KineticTrack * kt = *iter; if(!absorber.FindAbsorbers(*kt, theTargetList)) - G4Exception("G4BinaryCascade::Absorb(): Cannot absorb a particle."); + throw G4HadronicException(__FILE__, __LINE__, "G4BinaryCascade::Absorb(): Cannot absorb a particle."); if(!absorber.FindProducts(*kt)) - G4Exception("G4BinaryCascade::Absorb(): Cannot absorb a particle."); + throw G4HadronicException(__FILE__, __LINE__, "G4BinaryCascade::Absorb(): Cannot absorb a particle."); G4KineticTrackVector * products = absorber.GetProducts(); // ------ debug @@ -1116,7 +980,7 @@ G4bool G4BinaryCascade::Absorb() // ------ end debug ClearAndDestroy(products); if(!absorber.FindProducts(*kt)) - G4Exception( + throw G4HadronicException(__FILE__, __LINE__, "G4BinaryCascade::Absorb(): Cannot absorb a particle."); } // ------ debug @@ -1137,23 +1001,24 @@ G4bool G4BinaryCascade::Absorb() // Capture all p and n with Energy < theCutOnP //---------------------------------------------------------------------------- -G4bool G4BinaryCascade::Capture() +G4bool G4BinaryCascade::Capture(G4bool verbose) //---------------------------------------------------------------------------- { G4KineticTrackVector captured; G4bool capture = false; std::vector::iterator i; - G4double radius = theOuterRadius + 3*fermi; G4RKPropagation * RKprop=(G4RKPropagation *)thePropagator; G4double capturedEnergy = 0; G4int particlesAboveCut=0; G4int particlesBelowCut=0; + if ( verbose ) G4cout << " Capture: secondaries " << theSecondaryList.size() << G4endl; for(i = theSecondaryList.begin(); i != theSecondaryList.end(); ++i) { G4KineticTrack * kt = *i; - if(kt->GetPosition().mag() < radius) // capture happens only inside the nucleus + if (verbose) G4cout << "Capture position, radius, state " <GetPosition().mag()<<" "<GetState()<GetState() == G4KineticTrack::inside) // capture happens only inside the nucleus { if((kt->GetDefinition() == G4Proton::Proton()) || (kt->GetDefinition() == G4Neutron::Neutron())) @@ -1162,29 +1027,35 @@ G4bool G4BinaryCascade::Capture() G4double field=RKprop->GetField(kt->GetDefinition()->GetPDGEncoding(),kt->GetPosition()) -RKprop->GetBarrier(kt->GetDefinition()->GetPDGEncoding()); G4double energy= kt->Get4Momentum().e() - kt->GetActualMass() + field; - if( energy < theCutOnP ) - { + if (verbose ) G4cout << "Capture: .e(), mass, field, energy" << kt->Get4Momentum().e() <<" "<GetActualMass()<<" "<0 && capturedEnergy/particlesBelowCut<0.2*theCutOnP) + if (verbose) G4cout << "Capture particlesAboveCut,particlesBelowCut, capturedEnergy,capturedEnergy/particlesBelowCut 0 && capturedEnergy/particlesBelowCut<0.2*theCutOnP) + if(capturedEnergy/particlesBelowCut<0.2*theCutOnP) { capture=true; for(i = theSecondaryList.begin(); i != theSecondaryList.end(); ++i) { G4KineticTrack * kt = *i; - if(kt->GetPosition().mag() < radius) // capture happens only inside the nucleus + if(kt->GetState() == G4KineticTrack::inside) // capture happens only inside the nucleus { if((kt->GetDefinition() == G4Proton::Proton()) || (kt->GetDefinition() == G4Neutron::Neutron())) { captured.push_back(kt); + kt->Hit(); // theCapturedList.push_back(kt); } } @@ -1268,7 +1139,9 @@ G4bool G4BinaryCascade::CheckPauliPrinciple(G4KineticTrackVector * products) G4double field =((G4RKPropagation*)thePropagator)->GetField(definition->GetPDGEncoding(),pos); if ( mom.e()-mom.mag()+field > 160*MeV ) { - G4cout << "momentum problem pFermi=" << pFermi << G4endl; + G4cout << "momentum problem pFermi=" << pFermi + << " mom, mom.m " << mom << " " << mom.mag() + << " field " << field << G4endl; } } } @@ -1278,6 +1151,131 @@ G4bool G4BinaryCascade::CheckPauliPrinciple(G4KineticTrackVector * products) return myflag; } +//---------------------------------------------------------------------------- +void G4BinaryCascade::StepParticlesOut() +//---------------------------------------------------------------------------- +{ + G4int counter=0; + G4int countreset=0; + G4double steplength=1.0 * fermi; + //G4cout << " nucl. Radius " << radius << G4endl; + // G4cerr <<"pre-while- theSecondaryList "< 0 ) + { + G4int nsec=0; + G4double minTimeStep = 1.e-12*ns; // about 30*fermi/(0.1*c_light);1.e-12*ns + // i.e. a big step + std::vector::iterator i; + for(i = theSecondaryList.begin(); i != theSecondaryList.end(); ++i) + { + G4KineticTrack * kt = *i; + if( kt->GetState() == G4KineticTrack::inside ) + { + if((kt->GetDefinition() == G4Proton::Proton()) || // @@@ GF why only for nucleons? + (kt->GetDefinition() == G4Neutron::Neutron())) + { + nsec++; + G4double tStep = steplength / ( kt->Get4Momentum().beta() * c_light ); +#ifdef debug_G4BinaryCascade + G4cout << " minTimeStep, tStep Particle " <GetDefinition()->GetParticleName() << " 4mom " << kt->GetTrackingMomentum()<GetPosition().mag()<<" " +// <GetTrackingMomentum().e()-kt->GetTrackingMomentum().mag()<GetState() != G4KineticTrack::outside ){ + PrintKTVector(&theSecondaryList, std::string(" state ERROR.....")); + throw G4HadronicException(__FILE__, __LINE__, "G4BinaryCascade::StepParticlesOut() particle not in nucleus"); + } + } +// G4cerr << "CaptureCount = "<Entries() > 0) + { + nextCollision = theCollisionMgr->GetNextCollision(); + timeToCollision = nextCollision->GetCollisionTime()-theCurrentTime; + } + if ( timeToCollision > minTimeStep ) + { + DoTimeStep(minTimeStep); + ++counter; + } else + { + if (!DoTimeStep(timeToCollision) ) + { + // Check if nextCollision is still valid, ie. partcile did not leave nucleus + if (theCollisionMgr->GetNextCollision() != nextCollision ) + { + nextCollision = 0; + } + } + // G4cerr <<"post- DoTimeStep 3"<RemoveCollision(nextCollision); + } + } + } + + if(countreset>100) + { +//#ifdef debug_G4BinaryCascade + G4cerr << "G4BinaryCascade.cc: Warning - aborting looping particle(s)" << G4endl; +//#endif + +// add left secondaries to FinalSate + std::vector::iterator iter; + for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) + { + theFinalState.push_back(*iter); + } + theSecondaryList.clear(); + + break; + } + + if(Absorb()) + { +// haveProducts = true; + // G4cout << "Absorb sucess " << G4endl; + } + + if(Capture(false)) + { +// haveProducts = true; +#ifdef debug_G4BinaryCascade + G4cout << "Capture sucess " << G4endl; +#endif + } + if ( counter > 100 && theCollisionMgr->Entries() == 0) // no collision, and stepping a while.... + { + #ifdef debug_1_BinaryCascade + PrintKTVector(&theSecondaryList,std::string("stepping 100 steps")); + #endif + FindCollisions(&theSecondaryList); + counter=0; + ++countreset; + } + } +// G4cerr <<"Finished capture loop "<::iterator iter1, iter2; // remove old secondaries from the secondary list - if(oldSecondaries != NULL) + if(oldSecondaries) { if(!oldSecondaries->empty()) { @@ -1386,10 +1386,12 @@ void G4BinaryCascade::UpdateTracksAndCollisions( } // remove old target from the target list - if(oldTarget != NULL) + if(oldTarget) { - if(!oldTarget->empty()) + // G4cout << "################## Debugging 0 "<size()!=0) { + // G4cout << "################## Debugging 1 "<size()<begin(); iter1 != oldTarget->end(); ++iter1) { iter2 = std::find(theTargetList.begin(), theTargetList.end(), @@ -1400,7 +1402,7 @@ void G4BinaryCascade::UpdateTracksAndCollisions( } } - if(newSecondaries != NULL) + if(newSecondaries) { if(!newSecondaries->empty()) { @@ -1414,193 +1416,383 @@ void G4BinaryCascade::UpdateTracksAndCollisions( FindCollisions(newSecondaries); } } + // G4cout << "Exiting ... "<GetState() == wanted_state ) ktv->push_back(kt); + }; +}; + + + //---------------------------------------------------------------------------- G4bool G4BinaryCascade::DoTimeStep(G4double theTimeStep) //---------------------------------------------------------------------------- { - G4bool success=true; -// G4cerr <<"G4BinaryCascade::DoTimeStep: enter "< DoTimeStep 1"); debug.dump(); + G4cerr <<"G4BinaryCascade::DoTimeStep: enter "<< theTimeStep << G4endl; + PrintKTVector(&theSecondaryList, std::string("DoTimeStep - theSecondaryList")); // PrintKTVector(&theTargetList, std::string("DoTimeStep - theTargetList")); +#endif + + G4bool success=true; std::vector::iterator iter; - G4double nucleusSize=theOuterRadius + 3*fermi; // Count particles in nucleus + #ifdef debug_G4BinaryCascade G4int secondaryBarions=0; G4int secondaryCharge=0; G4double secondaryMass=0; - for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) - { - if ( (*iter)->GetPosition().mag() < nucleusSize ) - { -// G4cout << " inside: " << iter << G4endl; -// reduce counters, after step they'll be increased to find difference... -// G4cout << " Baryon number "<<(*iter)->GetDefinition()->GetParticleName()<<" "<<(*iter)->GetDefinition()->GetBaryonNumber()<GetDefinition()->GetBaryonNumber()!=0) secondaryCharge -= G4int((*iter)->GetDefinition()->GetPDGCharge() + 0.1); - secondaryBarions -= (*iter)->GetDefinition()->GetBaryonNumber() == 1 ? 1 : 0; - secondaryMass -= (*iter)->GetDefinition()->GetBaryonNumber() == 1 ? - (*iter)->GetDefinition()->GetPDGMass() : 0; - } - } + #endif -/* G4cerr << " DoTimeStep, be4, A, Z, sec-Z,A,m,m_in_nucleus " - << currentA << " " << currentZ << " " << secondaryCharge << " " << secondaryBarions << " " - << secondaryMass << " " << massInNucleus << " " << G4endl; -*/ + G4KineticTrackVector * kt_outside = new G4KineticTrackVector; + std::for_each( theSecondaryList.begin(),theSecondaryList.end(), + SelectFromKTV(kt_outside,G4KineticTrack::outside)); +// PrintKTVector(kt_outside, std::string("DoTimeStep - found outside")); + + G4KineticTrackVector * kt_inside = new G4KineticTrackVector; + std::for_each( theSecondaryList.begin(),theSecondaryList.end(), + SelectFromKTV(kt_inside, G4KineticTrack::inside)); +// PrintKTVector(kt_inside, std::string("DoTimeStep - found inside")); //----- G4KineticTrackVector dummy; // needed for re-usability -// G4cout << "NOW WE ARE ENTERING THE TRANSPORT"<Transport(theSecondaryList, dummy, theTimeStep); + #ifdef debug_G4BinaryCascade + G4cout << "NOW WE ARE ENTERING THE TRANSPORT"<Transport(theSecondaryList, dummy, theTimeStep); + +// =================== Here we move the particles =================== + //------ - -// PrintKTVector(&theSecondaryList,std::string("aft trsprt.....")); - -// anything went into the nucleus, counting back numbers to find differ - for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) - { - if ( (*iter)->GetPosition().mag() < nucleusSize ) - { -// G4cout << " inside: " << iter << G4endl; - if((*iter)->GetDefinition()->GetBaryonNumber()!=0) secondaryCharge += G4int((*iter)->GetDefinition()->GetPDGCharge() + 0.1); - secondaryBarions += (*iter)->GetDefinition()->GetBaryonNumber() == 1 ? 1 : 0; - secondaryMass += (*iter)->GetDefinition()->GetBaryonNumber() == 1 ? - (*iter)->GetDefinition()->GetPDGMass() : 0; - } - // G4cerr <<"after tracking: "<<*iter<<" "<<(*iter)->Get4Momentum()< 0 ) massInNucleus +=secondaryMass; - #ifdef debug_G4BinaryCascade - G4cout << " DoTimeStep, aft, A, Z, sec-Z,A,m,m_in_nucleus " + PrintKTVector(&theSecondaryList, std::string("DoTimeStep - secondairies")); + debug.push_back("======> DoTimeStep 1.1.1"); debug.dump(); +#endif + + theMomentumTransfer += thePropagator->GetMomentumTransfer(); +#ifdef debug_G4BinaryCascade + G4cout << "DoTimeStep : theMomentumTransfer = " << theMomentumTransfer << G4endl; +#endif + +// Partclies which went INTO nucleus + + G4KineticTrackVector * kt_gone_in = new G4KineticTrackVector; + std::for_each( kt_outside->begin(),kt_outside->end(), + SelectFromKTV(kt_gone_in,G4KineticTrack::inside)); +// PrintKTVector(kt_gone_in, std::string("DoTimeStep - gone in")); + + //PrintKTVector(&theSecondaryList,std::string("aft trsprt.....")); + +// Partclies which went OUT OF nucleus + G4KineticTrackVector * kt_gone_out = new G4KineticTrackVector; + std::for_each( kt_inside->begin(),kt_inside->end(), + SelectFromKTV(kt_gone_out, G4KineticTrack::gone_out)); + +// PrintKTVector(kt_gone_out, std::string("DoTimeStep - gone out")); + + CorrectBarionsOnBoundary(kt_gone_in,kt_gone_out); + +// Add track missing nucleus to addFinals + std::for_each( kt_outside->begin(),kt_outside->end(), + SelectFromKTV(kt_gone_out,G4KineticTrack::miss_nucleus)); +// tracks going straight through in a single step.... + std::for_each( kt_outside->begin(),kt_outside->end(), + SelectFromKTV(kt_gone_out,G4KineticTrack::gone_out)); + + #ifdef debug_G4BinaryCascade + PrintKTVector(kt_gone_out, std::string("append to final state..")); + G4cout << "Here we are 1"<begin(),kt_gone_out->end()); + + //G4cout << "Here we are 2"<Entries()> 0 ) + { + if (kt_gone_out->size() ) + { + G4KineticTrack * nextPrimary = theCollisionMgr->GetNextCollision()->GetPrimary(); + iter = std::find(kt_gone_out->begin(),kt_gone_out->end(),nextPrimary); + if ( iter != kt_gone_out->end() ) + { + success=false; +#ifdef debug_G4BinaryCascade + G4cout << " DoTimeStep - WARNING: deleting current collision!" << G4endl; +#endif + } + } + if ( kt_captured->size() ) + { + G4KineticTrack * nextPrimary = theCollisionMgr->GetNextCollision()->GetPrimary(); + iter = std::find(kt_captured->begin(),kt_captured->end(),nextPrimary); + if ( iter != kt_captured->end() ) + { + success=false; +#ifdef debug_G4BinaryCascade + G4cout << " DoTimeStep - WARNING: deleting current collision!" << G4endl; +#endif + } + } + + } + //G4cout << "Here we are 4 "<size()<size() ) + { + theCapturedList.insert(theCapturedList.end(), + kt_captured->begin(),kt_captured->end()); +//should be std::for_each(kt_captured->begin(),kt_captured->end(), +// std::mem_fun(&G4KineticTrack::Hit)); +// but VC 6 requires: + std::vector::iterator i_captured; + for(i_captured=kt_captured->begin();i_captured!=kt_captured->end();i_captured++) + { + (*i_captured)->Hit(); + } + UpdateTracksAndCollisions(kt_captured, NULL, NULL); + } + +#ifdef debug_G4BinaryCascade + delete kt_inside; + kt_inside = new G4KineticTrackVector; + std::for_each( theSecondaryList.begin(),theSecondaryList.end(), + SelectFromKTV(kt_inside, G4KineticTrack::inside)); + if ( currentZ != (GetTotalCharge(theTargetList) + + GetTotalCharge(theCapturedList) + + GetTotalCharge(*kt_inside)) ) + { + G4cout << " error-DoTimeStep, aft, A, Z, sec-Z,A,m, " << currentA << " " << currentZ << " " + << GetTotalCharge(theTargetList) + + GetTotalCharge(theCapturedList) + + GetTotalCharge(*kt_inside) << " " << secondaryCharge << " " << secondaryBarions << " " << secondaryMass << " " - << massInNucleus << " " + << GetTotalCharge(theTargetList) << " " + << GetTotalCharge(theCapturedList) << " " + << GetTotalCharge(*kt_inside) << " " << G4endl; + } #endif -// Check for particles which have left the nucleus - G4KineticTrackVector addFinals; - G4double Mass = 0; - G4int n_out=0; - G4int aCharge=0; - G4int aNuc=0; - for ( iter =theSecondaryList.begin(); iter != theSecondaryList.end(); ++iter) - { - //G4cout << "DoTimeStep nucl.radius, position.mag() : " <GetPosition().mag()<GetPosition().mag() > nucleusSize ) - { - G4double t_in=0,t_out=0; - G4bool intersects=((G4RKPropagation *)thePropagator)->GetSphereIntersectionTimes(*iter, t_in, t_out); - if ( ! intersects || ( intersects && t_out < 0 ) ) - { - // energy correction on outgoing particle for change of nucleus mass, ... just calculate now... - n_out++; - G4int outBarion=(*iter)->GetDefinition()->GetBaryonNumber() == 1 ? 1 : 0; - if (outBarion == 1 ) - { - Mass += (*iter)->GetDefinition()->GetPDGMass(); - aNuc ++; - aCharge += static_cast((*iter)->GetDefinition()->GetPDGCharge()+.1); - } - addFinals.push_back(*iter); - // Check if this track is part in next collision -// G4cout <<"DoTimeStep kin track leaves : " << *iter << " " -// <<(*iter)->Get4Momentum()<<" "<<(*iter)->GetPosition()<<" !!!!!!!!!"<Print(); - if ( theCollisionMgr->Entries()> 0 && theCollisionMgr->GetNextCollision()->GetPrimary() == *iter ) - { -// G4cout << " DoTimeStep - WARNING: deleting current collision!" << G4endl; - success=false; - } - } - } - } - G4double correction(0); -// G4cerr <<" Entered "<.5 && currentA>1.5) // hpw try without the second condition on deuterium @@@@@ - { - //G4cerr << "testing "<GetIonTable()->GetIonMass(currentZ,currentA); - correction -= G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(currentZ+aCharge,currentA+aNuc); - if (n_out>1) correction= correction/n_out; -#ifdef debug_G4BinaryCascade - if (n_out>0) G4cout << "DoTimeStep n_out,energy correction,Mass, minNucl,second,newNucl " - << n_out << " "<< correction << " " - << Mass << " "<< massInNucleus << " "<< secondaryMass << " " - << G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(currentZ,currentA) << " " - << G4endl; -#endif - } + delete kt_inside; + delete kt_outside; + delete kt_captured; + delete kt_gone_in; + delete kt_gone_out; -// G4cerr <<" Exited "<GetDefinition()) - { - (*iter)->Update4Momentum((*iter)->Get4Momentum().e() - correction); - } - else - { - (*iter)->Update4Momentum((*iter)->Get4Momentum().e()); - thePrimaryEscape = true; - } - theFinalState.push_back(*iter); - } -// if(addFinals.size() !=0) PrintKTVector(&addFinals,std::string("addfinals corrected")); -// PrintKTVector(&theFinalState,std::string("FinalState")); - // now update currentZ,A as the change happened to the nucleus. - if (n_out > 0 ) - { - massInNucleus = 0; - if(currentZ>.5) - { - //G4cerr << "testing 1 "<GetIonTable()->GetIonMass(currentZ,currentA); - } else if (currentZ==0 && currentA==1 ) - { - massInNucleus = G4Neutron::Neutron()->GetPDGMass(); - } else - { - // G4cout << "G4BinaryCascade: Warning - invalid nucleus (A,Z)=(" - // << currentA << "," << currentZ << ")" << G4endl; - massInNucleus = 0; - } -#ifdef debug_G4BinaryCascade - G4cout << " DoTimeStep, nucl-update, A, Z, sec-Z,A,m,m_in_nucleus " - << currentA << " "<< currentZ << " " - << secondaryCharge << " "<< secondaryBarions << " "<< secondaryMass << " " - << massInNucleus << " " - << G4endl; -#endif - } - // need to delete particles pushd to theFinalState -// G4cout << "DoTimeStep: timeStep " << theTimeStep << G4endl; -// G4cout << "DoTimeStep: Collisions left: " << theCollisionMgr->Entries() << G4endl; - UpdateTracksAndCollisions(&addFinals,0 ,0); - - -// G4cout << "DoTimeStep: Collisions left: " << theCollisionMgr->Entries() << G4endl; // G4cerr <<"G4BinaryCascade::DoTimeStep: exit "< DoTimeStep 2"); debug.dump(); return success; -//frozen nucleus thePropagator->Transport(theTargetList, dummy, theTimeStep); + } +//---------------------------------------------------------------------------- +G4KineticTrackVector* G4BinaryCascade::CorrectBarionsOnBoundary( + G4KineticTrackVector *in, + G4KineticTrackVector *out) +//---------------------------------------------------------------------------- +{ + G4KineticTrackVector * kt_fail=NULL; + std::vector::iterator iter; +// G4cout << "CorrectBarionsOnBoundary,currentZ,currentA," +// << currentZ << " "<< currentA << G4endl; + if (in->size()) + { + G4int secondaries_in(0); + G4int secondaryBarions_in(0); + G4int secondaryCharge_in(0); + G4double secondaryMass_in(0); + + for ( iter =in->begin(); iter != in->end(); ++iter) + { + ++secondaries_in; + secondaryCharge_in += G4lrint((*iter)->GetDefinition()->GetPDGCharge()); + if ((*iter)->GetDefinition()->GetBaryonNumber()==1 ) + { + ++secondaryBarions_in; + if((*iter)->GetDefinition() == G4Neutron::Neutron() || + (*iter)->GetDefinition() == G4Proton::Proton() ) + { + secondaryMass_in += (*iter)->GetDefinition()->GetPDGMass(); + } else { + secondaryMass_in += G4Proton::Proton()->GetPDGMass(); + } + } + } + G4double mass_initial= GetIonMass(currentZ,currentA); + + currentZ += secondaryCharge_in; + currentA += secondaryBarions_in; + +// G4cout << "CorrectBarionsOnBoundary,secondaryCharge_in, secondaryBarions_in" +// << secondaryCharge_in << " "<< secondaryBarions_in << G4endl; + + G4double mass_final= GetIonMass(currentZ,currentA); + + G4double correction= secondaryMass_in + mass_initial - mass_final; + if (secondaries_in>1) + {correction /= secondaries_in;} + +#ifdef debug_G4BinaryCascade + G4cout << "CorrectBarionsOnBoundary,currentZ,currentA," + << "secondaryCharge_in,secondaryBarions_in," + << "energy correction,m_secondry,m_nucl_init,m_nucl_final " + << currentZ << " "<< currentA <<" " + << secondaryCharge_in<<" "<begin(); iter != in->end(); ++iter) + { + (*iter)->UpdateTrackingMomentum((*iter)->GetTrackingMomentum().e() + correction); + } +#ifdef debug_G4BinaryCascade + G4cout << " CorrectBarionsOnBoundary, aft, A, Z, sec-Z,A,m,m_in_nucleus " + << currentA << " " << currentZ << " " + << secondaryCharge_in << " " << secondaryBarions_in << " " + << secondaryMass_in << " " + << G4endl; + PrintKTVector(in,std::string("in AFT correction")); +#endif + + } +//---------------------------------------------- + if (out->size()) + { + G4int secondaries_out(0); + G4int secondaryBarions_out(0); + G4int secondaryCharge_out(0); + G4double secondaryMass_out(0); + + for ( iter =out->begin(); iter != out->end(); ++iter) + { + ++secondaries_out; + secondaryCharge_out += G4lrint((*iter)->GetDefinition()->GetPDGCharge()); + if ((*iter)->GetDefinition()->GetBaryonNumber()==1 ) + { + ++secondaryBarions_out; + if((*iter)->GetDefinition() == G4Neutron::Neutron() || + (*iter)->GetDefinition() == G4Proton::Proton() ) + { + secondaryMass_out += (*iter)->GetDefinition()->GetPDGMass(); + } else { + secondaryMass_out += G4Neutron::Neutron()->GetPDGMass(); + } + } + } + + G4double mass_initial= GetIonMass(currentZ,currentA); + currentA -=secondaryBarions_out; + currentZ -=secondaryCharge_out; + +// G4cout << "CorrectBarionsOnBoundary,secondaryCharge_out, secondaryBarions_out" +// << secondaryCharge_out << " "<< secondaryBarions_out << G4endl; + +// a delta minus will do currentZ < 0 in light nuclei +// if (currentA < 0 || currentZ < 0 ) + if (currentA < 0 ) + { + G4cerr << "G4BinaryCascade - secondaryBarions_out,secondaryCharge_out " << + secondaryBarions_out << " " << secondaryCharge_out << G4endl; + PrintKTVector(&theTargetList,"CorrectBarionsOnBoundary Target"); + PrintKTVector(&theCapturedList,"CorrectBarionsOnBoundary Captured"); + PrintKTVector(&theSecondaryList,"CorrectBarionsOnBoundary Secondaries"); + G4cerr << "G4BinaryCascade - currentA, currentZ " << currentA << " " << currentZ << G4endl; + throw G4HadronicException(__FILE__, __LINE__, "G4BinaryCascade::CorrectBarionsOnBoundary() - fatal error"); + } + G4double mass_final=GetIonMass(currentZ,currentA); + G4double correction= mass_initial - mass_final - secondaryMass_out; + + if (secondaries_out>1) correction /= secondaries_out; +#ifdef debug_G4BinaryCascade + G4cout << "DoTimeStep,currentZ,currentA," + << "secondaries_out," + <<"secondaryCharge_out,secondaryBarions_out," + <<"energy correction,m_secondry,m_nucl_init,m_nucl_final " + << " "<< currentZ << " "<< currentA <<" " + << secondaries_out << " " + << secondaryCharge_out<<" "<begin(); iter != out->end(); ++iter) + { + if ((*iter)->GetTrackingMomentum().e()+correction > (*iter)->GetActualMass()) + { + (*iter)->UpdateTrackingMomentum((*iter)->GetTrackingMomentum().e() + correction); + } else + { + // particle cannot go out due to change of nuclear potential! + // @@GF@@ ignore for the moment. +#ifdef debug_G4BinaryCascade + G4cout << "Not correcting outgoing " << *iter << G4endl; +#endif + } + } + +#ifdef debug_G4BinaryCascade + PrintKTVector(out,std::string("out AFTER correction")); + G4cout << " DoTimeStep, nucl-update, A, Z, sec-Z,A,m,m_in_nucleus, table-mass, delta " + << currentA << " "<< currentZ << " " + << secondaryCharge_out << " "<< secondaryBarions_out << " "<< + secondaryMass_out << " " + << massInNucleus << " " + << G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(currentZ,currentA) + << " " << massInNucleus -G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(currentZ,currentA) + << G4endl; +#endif + } + + return kt_fail; +} + + //---------------------------------------------------------------------------- G4Fragment * G4BinaryCascade::FindFragments() @@ -1608,7 +1800,13 @@ G4Fragment * G4BinaryCascade::FindFragments() { G4int a = theTargetList.size()+theCapturedList.size(); -//G4cout << "target Captured: "<< theTargetList.size() << " " <Get4Momentum() << G4endl; CapturedMomentum += (*i)->Get4Momentum(); if((*i)->GetDefinition()->GetPDGCharge() == eplus) { @@ -1633,6 +1829,17 @@ G4Fragment * G4BinaryCascade::FindFragments() } G4int z = zTarget+zCaptured; + +#ifdef debug_G4BinaryCascade + if ( z != (GetTotalCharge(theTargetList) + GetTotalCharge(theCapturedList)) ) + { + G4cout << " FindFragment Counting error z a " << z << " " <GetMassNumber() - theTargetList.size(); @@ -1653,16 +1861,20 @@ G4Fragment * G4BinaryCascade::FindFragments() //GF fragment->SetNumberOfParticles(excitons-holes); fragment->SetNumberOfParticles(excitons); fragment->SetNumberOfCharged(zCaptured); - -// G4cout << "Fragment: a= " << a -// << " z= " << z -// << " particles= " << excitons -// << " Charged= " << zCaptured -// << " holes= " << holes -// << " excitE= " <Get4Momentum()<Get4Momentum()<1.0) + if((final4Momentum.vect()/final4Momentum.e()).mag()>1.0 && currentA > 0) { - G4cerr << G4endl; - G4cerr << "G4BinaryCascade::GetFinal4Momentum - Fatal"<Get4Momentum()<<", "<<(*i)->GetDefinition()->GetParticleName()<Get4Momentum()<<(*i)->GetDefinition()->GetParticleName()<Get4Momentum()<<", " << (*i)->GetTrackingMomentum() <<"," + <<(*i)->GetDefinition()->GetParticleName()<Get4Momentum()<<(*i)->GetDefinition()->GetParticleName()< 0 ) + { + // G4cout << "GetFinalNucleusMomentum GetFinal4Momentum= " <1.0) + { +# ifdef debug_G4BinaryCascade + G4cerr << "G4BinaryCascade::GetFinalNucleusMomentum - Fatal"<GetDefinition()->GetParticleName() +// << " on " << aHTarg->GetParticleName() << G4endl; + G4int tryCount(0); + while(!done && tryCount++ <200) + { + if(secs) + { + std::for_each(secs->begin(), secs->end(), DeleteKineticTrack()); + delete secs; + } + secs = theScatterer.Scatter(*(*secondaries).front(), aTarget); + for(size_t ss=0; secs && sssize(); ss++) + { +// G4cout << "1H1 " << (*secs)[ss]->GetDefinition()->GetParticleName() +// << ", shortlived? "<< (*secs)[ss]->GetDefinition()->IsShortLived()<< G4endl; + if((*secs)[ss]->GetDefinition()->IsShortLived()) done = true; + } +// G4cout << G4endl; + } + size_t current(0); + for(current=0; currentsize(); current++) + { + if((*secs)[current]->GetDefinition()->IsShortLived()) + { + G4KineticTrackVector * dec = (*secs)[current]->Decay(); + for(jter=dec->begin(); jter != dec->end(); jter++) + { + //G4cout << "Decay"<push_back(*jter); + //G4cout << "decay "<<(*jter)->GetDefinition()->GetParticleName()<GetDefinition()->GetParticleName()<GetDefinition()); + aNew->SetMomentum(kt->Get4Momentum().vect()); + aNew->SetTotalEnergy(kt->Get4Momentum().e()); + products->push_back(aNew); + #ifdef debug_1_BinaryCascade + if (! kt->GetDefinition()->GetPDGStable() ) + { + if (kt->GetDefinition()->IsShortLived()) + { + G4cout << "final shortlived : "; + } else + { + G4cout << "final un stable : "; + } + G4cout <GetDefinition()->GetParticleName()<< G4endl; + } + #endif + delete kt; + } + theFinalState.clear(); + return products; + +} + //---------------------------------------------------------------------------- G4ThreeVector G4BinaryCascade::GetSpherePoint( G4double r, const G4LorentzVector & mom4) @@ -1802,7 +2108,7 @@ void G4BinaryCascade::ClearAndDestroy(G4KineticTrackVector * ktv) { std::vector::iterator i; for(i = ktv->begin(); i != ktv->end(); ++i) - delete *i; + delete (*i); ktv->clear(); } @@ -1812,7 +2118,7 @@ void G4BinaryCascade::ClearAndDestroy(G4ReactionProductVector * rpv) { std::vector::iterator i; for(i = rpv->begin(); i != rpv->end(); ++i) - delete *i; + delete (*i); rpv->clear(); } @@ -1832,11 +2138,13 @@ void G4BinaryCascade::PrintKTVector(G4KineticTrackVector * ktv, std::string comm G4cout << " track n. " << count << ", id: " << kt << G4endl; G4ThreeVector pos = kt->GetPosition(); G4LorentzVector mom = kt->Get4Momentum(); + G4LorentzVector tmom = kt->GetTrackingMomentum(); G4ParticleDefinition * definition = kt->GetDefinition(); G4cout << " definition: " << definition->GetPDGEncoding() << " pos: " << 1/fermi*pos << " R: " << 1/fermi*pos.mag() << " 4mom: " - << 1/MeV*mom << " P: " << 1/MeV*mom.vect().mag() + << 1/MeV*mom <<"Tr_mom" << 1/MeV*tmom << " P: " << 1/MeV*mom.vect().mag() << " M: " << 1/MeV*mom.mag() << G4endl; + G4cout <<"trackstatus: "<GetState()< 0 && A >= Z ) + { + mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(Z,A); + + } else if ( A > 0 && Z>0 ) + { + // charge Z > A; will happen for light nuclei with pions involved. + mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(A,A); + + } else if ( A >= 0 && Z<=0 ) + { + // all neutral, or empty nucleus + mass = A * G4Neutron::Neutron()->GetPDGMass(); + + } else if ( A == 0 && abs(Z)<2 ) + { + // empty nucleus, except maybe pions + mass = 0; + + } else + { + G4cerr << "G4BinaryCascade::GetIonMass() - invalid (A,Z) = (" + << A << "," << Z << ")" < +#include "G4ReactionProductVector.hh" +#include +#include "G4ping.hh" +#include "G4Delete.hh" +#include "G4Neutron.hh" +#include "G4VNuclearDensity.hh" +#include "G4FermiMomentum.hh" +#include "G4HadTmpUtil.hh" + + G4BinaryLightIonReaction::G4BinaryLightIonReaction() + : theModel(), theHandler(), theProjectileFragmentation(&theHandler) {} + + G4HadFinalState *G4BinaryLightIonReaction:: + ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus & targetNucleus ) + { + static G4int eventcounter=0; + eventcounter++; + if(getenv("BLICDEBUG") ) G4cerr << " ######### Binary Light Ion Reaction number starts ######### "<GetBaryonNumber(); + G4double z1=aTrack.GetDefinition()->GetPDGCharge(); + G4double a2=targetNucleus.GetN(); + G4double z2=targetNucleus.GetZ(); + debug.push_back(a1); + debug.push_back(z1); + debug.push_back(a2); + debug.push_back(z2); +// debug.push_back(m2); + G4LorentzVector mom(aTrack.Get4Momentum()); + debug.push_back(mom); + debug.dump(); + G4LorentzRotation toBreit(mom.boostVector()); + + G4bool swapped = false; + if(a2GetIonTable()->GetIonMass(G4lrint(z1),G4lrint(a1)); + G4LorentzVector it(m1, G4ThreeVector(0,0,0)); + mom = toBreit*it; + } + debug.push_back("After swap"); + debug.push_back(a1); + debug.push_back(z1); + debug.push_back(a2); + debug.push_back(z2); + debug.push_back(mom); + debug.dump(); + + G4ReactionProductVector * result = NULL; + G4ReactionProductVector * cascaders= new G4ReactionProductVector; + G4double m_nucl(0); // to check energy balance + + +// G4double m1=G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(G4lrint(z1),G4lrint(a1)); +// G4cout << "Entering the decision point " +// << (mom.t()-mom.mag())/a1 << " " +// << a1<<" "<< z1<<" " +// << a2<<" "<< z2<GetParticleName()<size(); count++) + { + cascaders->operator[](count)->SetNewlyAdded(true); + tSum += cascaders->operator[](count)->GetKineticEnergy(); + } +// G4cout << "Exiting pre-compound only, E= "<Init(a1, z1); + m1=G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass( + projectile->GetCharge(),projectile->GetMassNumber()); + it=toBreit * G4LorentzVector(m1,G4ThreeVector(0,0,0)); + fancyNucleus = new G4Fancy3DNucleus; + fancyNucleus->Init(a2, z2); + m2=G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass( + fancyNucleus->GetCharge(),fancyNucleus->GetMassNumber()); + m_nucl = ( swapped ) ? m1 : m2; +// G4cout << " mass table, nucleus, delta : " << m2 <<" "<< fancyNucleus->GetMass() +// <<" "<GetMass() << G4endl; + G4double impactMax = fancyNucleus->GetOuterRadius()+projectile->GetOuterRadius(); + G4double aX=(2.*G4UniformRand()-1.)*impactMax; + G4double aY=(2.*G4UniformRand()-1.)*impactMax; + G4ThreeVector pos(aX, aY, -2.*impactMax-5.*fermi); + debug.push_back("Impact parameter"); + debug.push_back(aX); + debug.push_back(aY); + debug.push_back(-2.*impactMax); + debug.dump(); + + G4KineticTrackVector * initalState = new G4KineticTrackVector; + projectile->StartLoop(); + G4Nucleon * aNuc; + G4LorentzVector tmpV(0,0,0,0); + G4LorentzVector nucleonMom(1./a1*mom); + nucleonMom.setZ(nucleonMom.vect().mag()); + nucleonMom.setX(0); + nucleonMom.setY(0); + debug.push_back(" projectile nucleon momentum"); + debug.push_back(nucleonMom); + debug.dump(); + theFermi.Init(a1,z1); + while( (aNuc=projectile->GetNextNucleon()) ) + { + G4LorentzVector p4 = aNuc->GetMomentum(); + tmpV+=p4; + G4ThreeVector nucleonPosition(aNuc->GetPosition()); + G4double density=(projectile->GetNuclearDensity())->GetDensity(nucleonPosition); + nucleonPosition += pos; + G4KineticTrack * it = new G4KineticTrack(aNuc, nucleonPosition, nucleonMom ); + it->SetState(G4KineticTrack::outside); + G4double pfermi= theFermi.GetFermiMomentum(density); + G4double mass = aNuc->GetDefinition()->GetPDGMass(); + G4double Efermi= sqrt( sqr(mass) + sqr(pfermi)) - mass; + it->SetProjectilePotential(-Efermi); + initalState->push_back(it); + } + debug.push_back(tmpV); + debug.dump(); + + result=theModel.Propagate(initalState, fancyNucleus); + debug.push_back("################# Result size"); + debug.push_back(result->size()); + debug.dump(); + std::for_each(initalState->begin(), initalState->end(), Delete()); + delete initalState; + + if(result->size()==0) + { + delete result; result=0; + delete fancyNucleus; + delete projectile; + } + else + { + break; + } + } + debug.push_back("################# Through the loop ? "); debug.dump(); + //inverse transformation in case we swapped. + G4int resA(0), resZ(0); + G4Nucleon * aNuc; +// fancyNucleus->StartLoop(); +// while( (aNuc=fancyNucleus->GetNextNucleon()) ) +// { +// G4cout << " tgt Nucleon : " << aNuc->GetDefinition()->GetParticleName() <<" "<< aNuc->AreYouHit() <<" "<GetMomentum()<StartLoop(); + while( (aNuc=projectile->GetNextNucleon()) ) + { +// G4cout << " Nucleon : " << aNuc->GetDefinition()->GetParticleName() <<" "<< aNuc->AreYouHit() <<" "<GetMomentum()<AreYouHit()) + { + resA++; + resZ+=G4lrint(aNuc->GetDefinition()->GetPDGCharge()); + } + else + { + debug.push_back(" ##### a hit ##### "); debug.dump(); + G4ThreeVector aPosition(aNuc->GetPosition()); + G4double localDensity = projectile->GetNuclearDensity()->GetDensity(aPosition); + G4double localPfermi = theFermi.GetFermiMomentum(localDensity); + G4double nucMass = aNuc->GetDefinition()->GetPDGMass(); + G4double localFermiEnergy = sqrt(nucMass*nucMass + localPfermi*localPfermi) - nucMass; + G4double deltaE = localFermiEnergy - (aNuc->GetMomentum().t()-aNuc->GetMomentum().mag()); + theStatisticalExEnergy += deltaE; + } + debug.push_back("collected a hit"); debug.dump(); + } + delete fancyNucleus; + delete projectile; + G4ping debug("debug_G4BinaryLightIonReaction_1"); + debug.push_back("have the hits. A,Z, excitE"); + debug.push_back(resA); + debug.push_back(resZ); + debug.push_back(theStatisticalExEnergy); + debug.dump(); + // Calculate excitation energy + G4LorentzVector iState = mom; + iState.setT(iState.getT()+m2); + + G4LorentzVector fState(0,0,0,0); + G4LorentzVector pspectators(0,0,0,0); + unsigned int i(0); + for(i=0; isize(); i++) + { + if( (*result)[i]->GetNewlyAdded() ) + { + fState += G4LorentzVector( (*result)[i]->GetMomentum(), (*result)[i]->GetTotalEnergy() ); + cascaders->push_back((*result)[i]); +// G4cout <<" secondary ... "; + } + else { +// G4cout <<" spectator ... "; + pspectators += G4LorentzVector( (*result)[i]->GetMomentum(), (*result)[i]->GetTotalEnergy() ); + spectators->push_back((*result)[i]); + } + +// G4cout << (*result)[i]<< " " +// << (*result)[i]->GetDefinition()->GetParticleName() << " " +// << (*result)[i]->GetMomentum()<< " " +// << (*result)[i]->GetTotalEnergy() << G4endl; + } + delete result; + debug.push_back(" iState - (fState+pspectators) "); + debug.push_back(iState-fState-pspectators); + debug.dump(); + G4LorentzVector momentum(iState-fState); + G4int loopcount(0); + while (abs(momentum-pspectators.e()) > 10*MeV) + { + debug.push_back("the momentum balance"); + debug.push_back(iState); + debug.push_back(fState); + debug.push_back(momentum-pspectators); + debug.push_back(momentum); + debug.dump(); + G4LorentzVector pCorrect(iState-pspectators); + G4bool EnergyIsCorrect=EnergyAndMomentumCorrector(cascaders, pCorrect); + if ( ! EnergyIsCorrect && getenv("debug_G4BinaryLightIonReactionResults")) + { + G4cout << "Warning - G4BinaryLightIonReaction E/P correction for cascaders failed" << G4endl; + } + fState=G4LorentzVector(); + for(i=0; isize(); i++) + { + fState += G4LorentzVector( (*cascaders)[i]->GetMomentum(), (*cascaders)[i]->GetTotalEnergy() ); + } + momentum=iState-fState; + debug.push_back("the momentum balance after correction"); + debug.push_back(iState); + debug.push_back(fState); + debug.push_back(momentum-pspectators); + debug.push_back(momentum); + debug.dump(); + if (++loopcount > 10 ) + { + if ( momentum.vect().mag() > momentum.e() ) + { + G4cerr << "G4BinaryLightIonReaction.cc: Cannot correct 4-momentum of cascade particles" << G4endl; + throw G4HadronicException(__FILE__, __LINE__, "G4BinaryCasacde::ApplyCollision()"); + } else { + break; + } + + } + } + + + + + // call precompound model + G4ReactionProductVector * proFrag = NULL; + G4LorentzVector pFragment; +// G4cout << " == pre boost 1 "<< momentum.e()<< " "<< momentum.mag()<0 && resA>1) + { + // Make the fragment + G4Fragment aProRes; + aProRes.SetA(resA); + aProRes.SetZ(resZ); + aProRes.SetNumberOfParticles(0); + aProRes.SetNumberOfCharged(0); + aProRes.SetNumberOfHoles(G4lrint(a1)-resA); + G4double mFragment=G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(resZ,resA); + G4LorentzVector pFragment(0,0,0,mFragment+std::max(0.,theStatisticalExEnergy) ); + aProRes.SetMomentum(pFragment); + G4ParticleDefinition * resDef; + resDef = G4ParticleTable::GetParticleTable()->FindIon(resZ,resA,0,resZ); + aProRes.SetParticleDefinition(resDef); + proFrag = theHandler.BreakItUp(aProRes); + if ( momentum.vect().mag() > momentum.e() ) + { + G4cout << "mom check: " << momentum + << " 3.mag "<< momentum.vect().mag() << G4endl + << " .. iState/fState/spectators " << iState <<" " + << fState << " " << pspectators << G4endl + << " .. A,Z " << resA <<" "<< resZ << G4endl; + } + + G4LorentzRotation boost_fragments_here(momentum.boostVector()); + boost_fragments = boost_fragments_here; + +// G4cout << " Fragment a,z, Mass Fragment, mass spect-mom, exitationE " +// << resA <<" "<< resZ <<" "<< mFragment <<" " +// << momentum.mag() <<" "<< momentum.mag() - mFragment +// << " "<begin();ispectator!=spectators->end();ispectator++) + { + (*ispectator)->SetNewlyAdded(true); + // G4cout << "from spectator " + // << (*ispectator)->GetDefinition()->GetParticleName() << " " + // << (*ispectator)->GetMomentum()<< " " + // << (*ispectator)->GetTotalEnergy() << G4endl; + } + } + if (spectators) delete spectators; + + // collect the evaporation part + debug.push_back("the nucleon count balance"); + debug.push_back(resA); + debug.push_back(resZ); + if(proFrag) debug.push_back(proFrag->size()); + debug.dump(); + G4ReactionProductVector::iterator ii; + G4LorentzVector pFragments(0); + if(proFrag) for(ii=proFrag->begin(); ii!=proFrag->end(); ii++) + { + (*ii)->SetNewlyAdded(true); + G4LorentzVector tmp((*ii)->GetMomentum(),(*ii)->GetTotalEnergy()); + tmp *= boost_fragments; + (*ii)->SetMomentum(tmp.vect()); + (*ii)->SetTotalEnergy(tmp.e()); + // result->push_back(*ii); + pFragments += tmp; + } + + // G4cout << "Fragmented p, momentum, delta " << pFragments <<" "<begin(); ii!=proFrag->end(); ii++) + { + cascaders->push_back(*ii); + } + if ( ! EnergyIsCorrect ) + { + if (! EnergyAndMomentumCorrector(cascaders,iState)) + { + if(getenv("debug_G4BinaryLightIonReactionResults")) + G4cout << "G4BinaryLightIonReaction E/P corrections failed" << G4endl; + } + } + + } + + // Rotate to lab + G4LorentzRotation toZ; + toZ.rotateZ(-1*mom.phi()); + toZ.rotateY(-1*mom.theta()); + G4LorentzRotation toLab(toZ.inverse()); + + // Fill the particle change, while rotating. Boost from projectile breit-frame in case we swapped. + // theResult.Clear(); + theResult.Clear(); + theResult.SetStatusChange(stopAndKill); + G4double Etot(0); + size_t i=0; + for(i=0; isize(); i++) + { + if((*cascaders)[i]->GetNewlyAdded()) + { + G4DynamicParticle * aNew = + new G4DynamicParticle((*cascaders)[i]->GetDefinition(), + (*cascaders)[i]->GetTotalEnergy(), + (*cascaders)[i]->GetMomentum() ); + G4LorentzVector tmp = aNew->Get4Momentum(); + if(swapped) + { + tmp*=toBreit.inverse(); + } + tmp *= toLab; + aNew->Set4Momentum(tmp); + theResult.AddSecondary(aNew); + Etot += tmp.e(); +// G4cout << "LIBIC: Secondary " << aNew->GetDefinition()->GetParticleName() +// <<" "<< aNew->GetMomentum() +// <<" "<< aNew->GetTotalEnergy() +// << G4endl; + } + } + if(cascaders) delete cascaders; + + G4ping debug1("debug_G4BinaryLightIonReactionResults"); + debug1.push_back("Result analysis, secondaries"); + debug1.push_back(theResult.GetNumberOfSecondaries()); + debug1.dump(); + debug1.push_back(" Energy conservation initial/final/delta(init-final) "); + debug1.push_back(aTrack.GetTotalEnergy() + m_nucl); + debug1.push_back(aTrack.GetTotalEnergy()); + debug1.push_back(m_nucl); + debug1.push_back(Etot); + debug1.push_back(aTrack.GetTotalEnergy() + m_nucl - Etot); + debug1.dump(); + + if(getenv("BLICDEBUG") ) G4cerr << " ######### Binary Light Ion Reaction number ends ######### "<empty()) + return TRUE; + G4LorentzVector SumMom(0); + G4double SumMass = 0; + G4double TotalCollisionMass = TotalCollisionMom.m(); + size_t i = 0; + // Calculate sum hadron 4-momenta and summing hadron mass + for(i = 0; i < Output->size(); i++) + { + SumMom += G4LorentzVector((*Output)[i]->GetMomentum(),(*Output)[i]->GetTotalEnergy()); + SumMass += (*Output)[i]->GetDefinition()->GetPDGMass(); + } +// G4cout << " E/P corrector, SumMass, SumMom.m2, TotalMass " +// << SumMass <<" "<< SumMom.m2() <<" "< TotalCollisionMass) return FALSE; + SumMass = SumMom.m2(); + if (SumMass < 0) return FALSE; + SumMass = sqrt(SumMass); + + // Compute c.m.s. hadron velocity and boost KTV to hadron c.m.s. + G4ThreeVector Beta = -SumMom.boostVector(); +// G4cout << " == pre boost 2 "<< SumMom.e()<< " "<< SumMom.mag()<<" "<< Beta <Boost(Beta); + for(i = 0; i < Output->size(); i++) + { + G4LorentzVector mom = G4LorentzVector((*Output)[i]->GetMomentum(),(*Output)[i]->GetTotalEnergy()); + mom *= Beta; + (*Output)[i]->SetMomentum(mom.vect()); + (*Output)[i]->SetTotalEnergy(mom.e()); + } + + // Scale total c.m.s. hadron energy (hadron system mass). + // It should be equal interaction mass + G4double Scale = 0,OldScale=0; + G4double factor = 1.; + G4int cAttempt = 0; + G4double Sum = 0; + G4bool success = false; + for(cAttempt = 0; cAttempt < nAttemptScale; cAttempt++) + { + Sum = 0; + for(i = 0; i < Output->size(); i++) + { + G4LorentzVector HadronMom = G4LorentzVector((*Output)[i]->GetMomentum(),(*Output)[i]->GetTotalEnergy()); + HadronMom.setVect(HadronMom.vect()+ factor*Scale*HadronMom.vect()); + G4double E = sqrt(HadronMom.vect().mag2() + sqr((*Output)[i]->GetDefinition()->GetPDGMass())); + HadronMom.setE(E); + (*Output)[i]->SetMomentum(HadronMom.vect()); + (*Output)[i]->SetTotalEnergy(HadronMom.e()); + Sum += E; + } + OldScale=Scale; + Scale = TotalCollisionMass/Sum - 1; + if ( cAttempt > 10 ) + { +// G4cout << " speed it up? " << abs(OldScale/(OldScale-Scale)) << G4endl; + factor=std::max(1.,log(abs(OldScale/(OldScale-Scale)))); +// G4cout << " ? factor ? " << factor << G4endl; + } +// G4cout << "E/P corr - " << cAttempt << " " << Scale << G4endl; + if (abs(Scale) <= ErrLimit) + { + if (getenv("debug_G4BinaryLightIonReactionResults")) G4cout << "E/p corrector: " << cAttempt << G4endl; + success = true; + break; + } + } + + if( (!success) && getenv("debug_G4BinaryLightIonReactionResults")) + { + G4cout << "G4G4BinaryLightIonReaction::EnergyAndMomentumCorrector - Warning"<Boost(Beta); + for(i = 0; i < Output->size(); i++) + { + G4LorentzVector mom = G4LorentzVector((*Output)[i]->GetMomentum(),(*Output)[i]->GetTotalEnergy()); + mom *= Beta; + (*Output)[i]->SetMomentum(mom.vect()); + (*Output)[i]->SetTotalEnergy(mom.e()); + } + return TRUE; + } diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4FieldPropagation.cc b/source/processes/hadronic/models/binary_cascade/src/G4FieldPropagation.cc similarity index 92% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4FieldPropagation.cc rename to source/processes/hadronic/models/binary_cascade/src/G4FieldPropagation.cc index 06b24938c7..8e3f55378f 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4FieldPropagation.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4FieldPropagation.cc @@ -21,10 +21,11 @@ // ******************************************************************** // #include "G4FieldPropagation.hh" +#include "G4HadronicException.hh" const G4FieldPropagation & G4FieldPropagation::operator=(const G4FieldPropagation &) { - G4Exception("G4FieldPropagation::operator= meant to be private"); + throw G4HadronicException(__FILE__, __LINE__, "G4FieldPropagation::operator= meant to be private"); return *this; } diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4GeneratorPrecompoundInterface.cc b/source/processes/hadronic/models/binary_cascade/src/G4GeneratorPrecompoundInterface.cc similarity index 92% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4GeneratorPrecompoundInterface.cc rename to source/processes/hadronic/models/binary_cascade/src/G4GeneratorPrecompoundInterface.cc index 1d5fcd8741..dc8c5d3012 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4GeneratorPrecompoundInterface.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4GeneratorPrecompoundInterface.cc @@ -28,14 +28,14 @@ // HPW, 10DEC 98, the decay part originally written by Gunter Folger in his FTF-test-program. // - G4VParticleChange* G4GeneratorPrecompoundInterface:: - ApplyYourself(const G4Track& , G4Nucleus& ) + G4HadFinalState* G4GeneratorPrecompoundInterface:: + ApplyYourself(const G4HadProjectile &, G4Nucleus & ) { std::cout << "G4GeneratorPrecompoundInterface: ApplyYourself interface called stand-allone."<< G4endl; std::cout << "This class is only a mediator between generator and precompound"<GetNuclearDensity(); // do not check for theMass != 0 : it is an error and core dump will signal it - - G4double deriv = (factor/theMass)* - pow(nuclearDensity->GetDensity(pos), -1./3.)*nuclearDensity->GetDeriv(pos); + + G4double density= nuclearDensity->GetDensity(pos); + G4double deriv(0); + if (density > 0 ) deriv = (factor/theMass)* + pow(density, -1./3.)*nuclearDensity->GetDeriv(pos); // dydx[3] = yMod == 0 ? 0 : -deriv*y[0]/yMod; // dydx[4] = yMod == 0 ? 0 : -deriv*y[1]/yMod; diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4KM_OpticalEqRhs.cc b/source/processes/hadronic/models/binary_cascade/src/G4KM_OpticalEqRhs.cc similarity index 96% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4KM_OpticalEqRhs.cc rename to source/processes/hadronic/models/binary_cascade/src/G4KM_OpticalEqRhs.cc index 72b3d33f76..d07191042e 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4KM_OpticalEqRhs.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4KM_OpticalEqRhs.cc @@ -36,6 +36,7 @@ #include "G4KM_OpticalEqRhs.hh" #include "G4NucleiPropertiesTable.hh" #include "G4VNuclearDensity.hh" +#include "G4HadTmpUtil.hh" G4KM_OpticalEqRhs::G4KM_OpticalEqRhs(G4KM_DummyField *field, @@ -49,9 +50,9 @@ G4KM_OpticalEqRhs::G4KM_OpticalEqRhs(G4KM_DummyField *field, void G4KM_OpticalEqRhs::SetFactor(G4double mass, G4double opticalParameter) { - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = mass*nucleusMass/(mass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonMinusField.cc b/source/processes/hadronic/models/binary_cascade/src/G4KaonMinusField.cc similarity index 83% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4KaonMinusField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4KaonMinusField.cc index 2ed56492aa..c444cb93e6 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonMinusField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4KaonMinusField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4KaonMinus.hh" +#include "G4HadTmpUtil.hh" G4KaonMinusField::G4KaonMinusField(G4V3DNucleus * nucleus, G4double coeff) : G4VNuclearField(nucleus) @@ -49,23 +50,23 @@ G4KaonMinusField::~G4KaonMinusField() { } -const G4KaonMinusField & G4KaonMinusField::operator=(const G4KaonMinusField & ) +const G4KaonMinusField & G4KaonMinusField::operator=(const G4KaonMinusField &) { - G4Exception("G4KaonMinusField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonMinusField::operator= meant not to be accessible"); return *this; } -G4int G4KaonMinusField::operator==(const G4KaonMinusField & ) const +G4int G4KaonMinusField::operator==(const G4KaonMinusField &) const { - G4Exception("G4KaonMinusField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonMinusField::operator== meant not to be accessible"); return 0; } -G4int G4KaonMinusField::operator!=(const G4KaonMinusField & ) const +G4int G4KaonMinusField::operator!=(const G4KaonMinusField &) const { - G4Exception("G4KaonMinusField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonMinusField::operator!= meant not to be accessible"); return 1; } @@ -78,9 +79,9 @@ G4double G4KaonMinusField::GetField(const G4ThreeVector & aPosition) G4double kaonMass = G4KaonMinus::KaonMinus()->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = kaonMass*nucleusMass/(kaonMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonPlusField.cc b/source/processes/hadronic/models/binary_cascade/src/G4KaonPlusField.cc similarity index 83% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4KaonPlusField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4KaonPlusField.cc index bd6aabe4af..5672b46981 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonPlusField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4KaonPlusField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4KaonPlus.hh" +#include "G4HadTmpUtil.hh" G4KaonPlusField::G4KaonPlusField(G4V3DNucleus * nucleus, G4double coeff) : G4VNuclearField(nucleus) @@ -49,23 +50,23 @@ G4KaonPlusField::~G4KaonPlusField() { } -const G4KaonPlusField & G4KaonPlusField::operator=(const G4KaonPlusField & ) +const G4KaonPlusField & G4KaonPlusField::operator=(const G4KaonPlusField &) { - G4Exception("G4KaonPlusField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonPlusField::operator= meant not to be accessible"); return *this; } -G4int G4KaonPlusField::operator==(const G4KaonPlusField & ) const +G4int G4KaonPlusField::operator==(const G4KaonPlusField &) const { - G4Exception("G4KaonPlusField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonPlusField::operator== meant not to be accessible"); return 0; } -G4int G4KaonPlusField::operator!=(const G4KaonPlusField & ) const +G4int G4KaonPlusField::operator!=(const G4KaonPlusField &) const { - G4Exception("G4KaonPlusField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonPlusField::operator!= meant not to be accessible"); return 1; } @@ -78,9 +79,9 @@ G4double G4KaonPlusField::GetField(const G4ThreeVector & aPosition) G4double kaonMass = G4KaonPlus::KaonPlus()->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = kaonMass*nucleusMass/(kaonMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonZeroField.cc b/source/processes/hadronic/models/binary_cascade/src/G4KaonZeroField.cc similarity index 82% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4KaonZeroField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4KaonZeroField.cc index 00782ecdb4..2f2279c996 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4KaonZeroField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4KaonZeroField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4KaonZero.hh" +#include "G4HadTmpUtil.hh" G4KaonZeroField::G4KaonZeroField(G4V3DNucleus * nucleus, G4double coeff) : G4VNuclearField(nucleus) @@ -49,23 +50,23 @@ G4KaonZeroField::~G4KaonZeroField() { } -const G4KaonZeroField & G4KaonZeroField::operator=(const G4KaonZeroField & ) +const G4KaonZeroField & G4KaonZeroField::operator=(const G4KaonZeroField &) { - G4Exception("G4KaonZeroField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonZeroField::operator= meant not to be accessible"); return *this; } -G4int G4KaonZeroField::operator==(const G4KaonZeroField & ) const +G4int G4KaonZeroField::operator==(const G4KaonZeroField &) const { - G4Exception("G4KaonZeroField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonZeroField::operator== meant not to be accessible"); return 0; } -G4int G4KaonZeroField::operator!=(const G4KaonZeroField & ) const +G4int G4KaonZeroField::operator!=(const G4KaonZeroField &) const { - G4Exception("G4KaonZeroField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4KaonZeroField::operator!= meant not to be accessible"); return 1; } @@ -78,9 +79,9 @@ G4double G4KaonZeroField::GetField(const G4ThreeVector & aPosition) G4double kaonMass = G4KaonZero::KaonZero()->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = kaonMass*nucleusMass/(kaonMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4NeutronField.cc b/source/processes/hadronic/models/binary_cascade/src/G4NeutronField.cc similarity index 85% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4NeutronField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4NeutronField.cc index 715ccc6cb4..edc1999771 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4NeutronField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4NeutronField.cc @@ -74,23 +74,23 @@ G4NeutronField::~G4NeutronField() { } -const G4NeutronField & G4NeutronField::operator=(const G4NeutronField & ) +const G4NeutronField & G4NeutronField::operator=(const G4NeutronField &) { - G4Exception("G4NeutronField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronField::operator= meant not to be accessible"); return *this; } -G4int G4NeutronField::operator==(const G4NeutronField & ) const +G4int G4NeutronField::operator==(const G4NeutronField &) const { - G4Exception("G4NeutronField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronField::operator== meant not to be accessible"); return 0; } -G4int G4NeutronField::operator!=(const G4NeutronField & ) const +G4int G4NeutronField::operator!=(const G4NeutronField &) const { - G4Exception("G4NeutronField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronField::operator!= meant not to be accessible"); return 1; } @@ -98,8 +98,8 @@ G4int G4NeutronField::operator!=(const G4NeutronField & ) const G4double G4NeutronField::GetField(const G4ThreeVector & aPosition) { G4double x = aPosition.mag(); - size_t index = static_cast(x/(0.3*fermi) ); - if(index+2>theFermiMomBuffer.size()) return theFermiMomBuffer.back(); + G4int index = static_cast(x/(0.3*fermi) ); + if(index+2> static_cast(theFermiMomBuffer.size())) return theFermiMomBuffer.back(); G4double y1 = theFermiMomBuffer[index]; G4double y2 = theFermiMomBuffer[index+1]; G4double x1 = (0.3*fermi)*index; diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionMinusField.cc b/source/processes/hadronic/models/binary_cascade/src/G4PionMinusField.cc similarity index 84% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4PionMinusField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4PionMinusField.cc index 3e7d12ae1c..0bde07788d 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionMinusField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4PionMinusField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4PionMinus.hh" +#include "G4HadTmpUtil.hh" G4PionMinusField::G4PionMinusField(G4V3DNucleus * nucleus, G4double coeff) : G4VNuclearField(nucleus) @@ -49,23 +50,23 @@ G4PionMinusField::~G4PionMinusField() { } -const G4PionMinusField & G4PionMinusField::operator=(const G4PionMinusField & ) +const G4PionMinusField & G4PionMinusField::operator=(const G4PionMinusField &) { - G4Exception("G4PionMinusField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionMinusField::operator= meant not to be accessible"); return *this; } -G4int G4PionMinusField::operator==(const G4PionMinusField & ) const +G4int G4PionMinusField::operator==(const G4PionMinusField &) const { - G4Exception("G4PionMinusField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionMinusField::operator== meant not to be accessible"); return 0; } -G4int G4PionMinusField::operator!=(const G4PionMinusField & ) const +G4int G4PionMinusField::operator!=(const G4PionMinusField &) const { - G4Exception("G4PionMinusField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionMinusField::operator!= meant not to be accessible"); return 1; } @@ -75,10 +76,10 @@ G4double G4PionMinusField::GetField(const G4ThreeVector & aPosition) // Field is 0 out of the nucleus! if(aPosition.mag() >= radius) return 0.0; - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); G4double pionMinusMass = G4PionMinus::PionMinus()->GetPDGMass(); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = pionMinusMass*nucleusMass/(pionMinusMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionPlusField.cc b/source/processes/hadronic/models/binary_cascade/src/G4PionPlusField.cc similarity index 84% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4PionPlusField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4PionPlusField.cc index 5ba5de8d9b..cb32970c2d 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionPlusField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4PionPlusField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4PionPlus.hh" +#include "G4HadTmpUtil.hh" G4PionPlusField::G4PionPlusField(G4V3DNucleus * nucleus, G4double coeff) @@ -50,23 +51,23 @@ G4PionPlusField::~G4PionPlusField() { } -const G4PionPlusField & G4PionPlusField::operator=(const G4PionPlusField & ) +const G4PionPlusField & G4PionPlusField::operator=(const G4PionPlusField &) { - G4Exception("G4PionPlusField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionPlusField::operator= meant not to be accessible"); return *this; } -G4int G4PionPlusField::operator==(const G4PionPlusField & ) const +G4int G4PionPlusField::operator==(const G4PionPlusField &) const { - G4Exception("G4PionPlusField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionPlusField::operator== meant not to be accessible"); return 0; } -G4int G4PionPlusField::operator!=(const G4PionPlusField & ) const +G4int G4PionPlusField::operator!=(const G4PionPlusField &) const { - G4Exception("G4PionPlusField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionPlusField::operator!= meant not to be accessible"); return 1; } @@ -77,9 +78,10 @@ G4double G4PionPlusField::GetField(const G4ThreeVector & aPosition) if(aPosition.mag() >= radius) return 0.0; G4double pionPlusMass = G4PionPlus::PionPlus()->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = pionPlusMass*nucleusMass/(pionPlusMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionZeroField.cc b/source/processes/hadronic/models/binary_cascade/src/G4PionZeroField.cc similarity index 83% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4PionZeroField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4PionZeroField.cc index d903c3ff69..f678be7f9d 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4PionZeroField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4PionZeroField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4PionZero.hh" +#include "G4HadTmpUtil.hh" G4PionZeroField::G4PionZeroField(G4V3DNucleus * nucleus, G4double coeff) @@ -50,23 +51,23 @@ G4PionZeroField::~G4PionZeroField() { } -const G4PionZeroField & G4PionZeroField::operator=(const G4PionZeroField & ) +const G4PionZeroField & G4PionZeroField::operator=(const G4PionZeroField &) { - G4Exception("G4PionZeroField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionZeroField::operator= meant not to be accessible"); return *this; } -G4int G4PionZeroField::operator==(const G4PionZeroField & ) const +G4int G4PionZeroField::operator==(const G4PionZeroField &) const { - G4Exception("G4PionZeroField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionZeroField::operator== meant not to be accessible"); return 0; } -G4int G4PionZeroField::operator!=(const G4PionZeroField & ) const +G4int G4PionZeroField::operator!=(const G4PionZeroField &) const { - G4Exception("G4PionZeroField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4PionZeroField::operator!= meant not to be accessible"); return 1; } @@ -77,10 +78,10 @@ G4double G4PionZeroField::GetField(const G4ThreeVector & aPosition) if(aPosition.mag() >= radius) return 0.0; G4double pionZeroMass = G4PionZero::PionZero()->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = pionZeroMass*nucleusMass/(pionZeroMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4ProtonField.cc b/source/processes/hadronic/models/binary_cascade/src/G4ProtonField.cc similarity index 87% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4ProtonField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4ProtonField.cc index 5a8dae0b0d..0ae05cef27 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4ProtonField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4ProtonField.cc @@ -76,23 +76,23 @@ G4ProtonField::~G4ProtonField() { } -const G4ProtonField & G4ProtonField::operator=(const G4ProtonField & ) +const G4ProtonField & G4ProtonField::operator=(const G4ProtonField &) { - G4Exception("G4ProtonField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonField::operator= meant not to be accessible"); return *this; } -G4int G4ProtonField::operator==(const G4ProtonField & ) const +G4int G4ProtonField::operator==(const G4ProtonField &) const { - G4Exception("G4ProtonField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonField::operator== meant not to be accessible"); return 0; } -G4int G4ProtonField::operator!=(const G4ProtonField & ) const +G4int G4ProtonField::operator!=(const G4ProtonField &) const { - G4Exception("G4ProtonField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonField::operator!= meant not to be accessible"); return 1; } @@ -101,8 +101,8 @@ G4double G4ProtonField::GetField(const G4ThreeVector & aPosition) { //G4cout << " Fermi Potential " << (fermiMom*fermiMom)/(2*proton_mass_c2) <(x/(0.3*fermi) ); - if(index+2>theFermiMomBuffer.size()) return theFermiMomBuffer.back(); + G4int index = static_cast(x/(0.3*fermi) ); + if(index+2>static_cast(theFermiMomBuffer.size())) return theFermiMomBuffer.back(); G4double y1 = theFermiMomBuffer[index]; G4double y2 = theFermiMomBuffer[index+1]; G4double x1 = (0.3*fermi)*index; diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4RKFieldIntegrator.cc b/source/processes/hadronic/models/binary_cascade/src/G4RKFieldIntegrator.cc similarity index 100% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4RKFieldIntegrator.cc rename to source/processes/hadronic/models/binary_cascade/src/G4RKFieldIntegrator.cc diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4RKPropagation.cc b/source/processes/hadronic/models/binary_cascade/src/G4RKPropagation.cc similarity index 72% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4RKPropagation.cc rename to source/processes/hadronic/models/binary_cascade/src/G4RKPropagation.cc index 18d2d94336..6a896c6442 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4RKPropagation.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4RKPropagation.cc @@ -22,7 +22,7 @@ // // // ------------------------------------------------------------------- -// GEANT 4 class implementation file +// GEANT 4 class implementation file // // CERN, Geneva, Switzerland // @@ -68,15 +68,18 @@ #include "G4ClassicalRK4.hh" #include "G4MagIntegratorDriver.hh" +#include "G4LorentzRotation.hh" + // unsigned EncodingHashFun(const G4int& aEncoding); -G4RKPropagation::G4RKPropagation() : theNucleus(0), +G4RKPropagation::G4RKPropagation() : theNucleus(0), theFieldMap(0), theEquationMap(0), theField(0) { } -G4RKPropagation::G4RKPropagation(const G4RKPropagation &right) +G4RKPropagation::G4RKPropagation(const G4RKPropagation &) : +G4VFieldPropagation() { } @@ -93,21 +96,21 @@ G4RKPropagation::~G4RKPropagation() -const G4RKPropagation & G4RKPropagation::operator=(const G4RKPropagation & right) +const G4RKPropagation & G4RKPropagation::operator=(const G4RKPropagation &) { - G4Exception("G4RKPropagation::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4RKPropagation::operator= meant not to be accessible"); return *this; } -G4int G4RKPropagation::operator==(const G4RKPropagation & right) const +G4int G4RKPropagation::operator==(const G4RKPropagation &) const { - G4Exception("G4RKPropagation::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4RKPropagation::operator== meant not to be accessible"); return 0; } -G4int G4RKPropagation::operator!=(const G4RKPropagation & right) const +G4int G4RKPropagation::operator!=(const G4RKPropagation &) const { - G4Exception("G4RKPropagation::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4RKPropagation::operator!= meant not to be accessible"); return 1; } @@ -241,9 +244,11 @@ void G4RKPropagation::Init(G4V3DNucleus * nucleus) //---------------------------------------------------------------------------- void G4RKPropagation::Transport(G4KineticTrackVector & active, //---------------------------------------------------------------------------- - const G4KineticTrackVector & spectators, + const G4KineticTrackVector &, G4double timeStep) { +// reset momentum transfer to field + theMomentumTranfer=0; // Loop over tracks @@ -262,34 +267,43 @@ void G4RKPropagation::Transport(G4KineticTrackVector & active, // if ( timeStep > 1e30 ) { // G4cout << " Name :" << kt->GetDefinition()->GetParticleName() << G4endl; // } -// @hpw@ debugging: free transport..... @@@@@@@@@@@@@@@ -//gf pos = pos+(currTimeStep*c_light/mom.e())*mom.vect(); -//gf kt->SetPosition(pos); -//gf continue; -// @hpw@ debugging: free transport..... // Get the time of intersections with the nucleus surface. G4double t_enter, t_leave; // if the particle does not intersecate with the nucleus go to next particle if(!GetSphereIntersectionTimes(kt, t_enter, t_leave)) - continue; + { + kt->SetState(G4KineticTrack::miss_nucleus); + continue; + } -/* - * G4cout <<" timeStep, Intersection times tenter, tleave " - * << currTimeStep << " / " << t_enter << " / " << t_leave <GetDefinition()->GetParticleName() << G4endl; - continue; + if ( currTimeStep >= t_leave ) + { + if ( kt->GetState() == G4KineticTrack::inside ) + { kt->SetState(G4KineticTrack::gone_out); } + else + { kt->SetState(G4KineticTrack::miss_nucleus);} + } + continue; } if(t_enter > 0) // the particle is out. Transport free to the surface @@ -307,8 +321,8 @@ void G4RKPropagation::Transport(G4KineticTrackVector & active, // on the surface the particle loose the barrier energy // G4double newE = mom.e()-(*theFieldMap)[encoding]->GetBarrier(); // GetField = Barrier + FermiPotential - G4double newE = kt->Get4Momentum().e()-currentField->GetField(kt->GetPosition()); -// G4cout << " enter nucleus, E out/in: " << kt->Get4Momentum().e() << " / " << newE <GetTrackingMomentum().e()-currentField->GetField(kt->GetPosition()); +// G4cout << " enter nucleus, E out/in: " << kt->GetTrackingMomentum().e() << " / " << newE <GetField(kt->GetPosition()) << " "<< kt->GetPosition()<GetDefinition()->GetParticleName()<GetActualMass()) // the particle cannot enter the nucleus @@ -316,15 +330,20 @@ void G4RKPropagation::Transport(G4KineticTrackVector & active, // FixMe: should be "pushed back?" // for the moment take it past teh nucleus, so we'll not worry next time.. FreeTransport(kt, 1.1*t_leave); // take past nucleus + kt->SetState(G4KineticTrack::miss_nucleus); continue; } // G4double newP = sqrt(newE*newE- sqr(kt->GetActualMass())); - G4LorentzVector new4Mom(newP*kt->Get4Momentum().vect().unit(), newE); - kt->Set4Momentum(new4Mom); -// G4cout <<" Enter Nucleus - E/Field/Sum: " <Get4Momentum().e() << " / " + G4LorentzVector new4Mom(newP*kt->GetTrackingMomentum().vect().unit(), newE); + G4ThreeVector transfer(kt->GetTrackingMomentum().vect()-new4Mom.vect()); + G4ThreeVector boost= transfer / sqrt(transfer.mag2() + sqr(theNucleus->GetMass())); + new4Mom*=G4LorentzRotation(boost); + kt->SetTrackingMomentum(new4Mom); + kt->SetState(G4KineticTrack::inside); +// G4cout <<" Enter Nucleus - E/Field/Sum: " <GetTrackingMomentum().e() << " / " // << (*theFieldMap)[encoding]->GetField(kt->GetPosition()) << " / " -// << kt->Get4Momentum().e()-currentField->GetField(kt->GetPosition()) +// << kt->GetTrackingMomentum().e()-currentField->GetField(kt->GetPosition()) // << G4endl // << " Barrier / field just inside nucleus (0.9999*kt->GetPosition())" // << (*theFieldMap)[encoding]->GetBarrier() << " / " @@ -343,52 +362,54 @@ void G4RKPropagation::Transport(G4KineticTrackVector & active, is_exiting=true; } -// G4cerr << "RKPropagation t_leave, curTimeStep " <Get4Momentum().e() - kt->Get4Momentum().mag() << " " + G4cerr << "RKPropagation is_exiting?, t_leave, curTimeStep " <GetTrackingMomentum().e() - kt->GetTrackingMomentum().mag() << " " << kt->GetPosition()<<" " - << currentField->GetField(kt->GetPosition())<< G4endl - << kt->Get4Momentum() + << G4endl << currentField->GetField(kt->GetPosition()) << " " + << kt->GetProjectilePotential()<< G4endl + << kt->GetTrackingMomentum() << G4endl; #endif - G4LorentzVector momold=kt->Get4Momentum(); + G4LorentzVector momold=kt->GetTrackingMomentum(); G4ThreeVector posold=kt->GetPosition(); +// if (currentField->GetField(kt->GetPosition()) > kt->GetProjectilePotential() || if (! FieldTransport(kt, currTimeStep)) { FreeTransport(kt,currTimeStep); } -// G4cout << "RKPropagation Ekin, field, p " -// << kt->Get4Momentum().e() - kt->Get4Momentum().mag() << " " -// << currentField->GetField(kt->GetPosition())<< G4endl -// << kt->Get4Momentum() -// << G4endl; -/* << "delta p " << momold-kt->Get4Momentum() << G4endl + +#ifdef debug_1_RKPropagation + G4cout << "RKPropagation Ekin, field, p " + << kt->GetTrackingMomentum().e() - kt->GetTrackingMomentum().mag() << " " + << G4endl << currentField->GetField(kt->GetPosition())<< G4endl + << kt->GetTrackingMomentum() + // << G4endl; + << "delta p " << momold-kt->GetTrackingMomentum() << G4endl << "del pos " << posold-kt->GetPosition() << G4endl; -*/ +#endif // complete the transport // FixMe: in some cases there could be a significant // part to do still in the nucleus, or we stepped to far... depending on // slope of potential - if(is_exiting) // particle is exiting + G4double t_in=-1, t_out=0; // set onto boundary. + +// should go out, or are already out by a too long step.. + if(is_exiting || + (GetSphereIntersectionTimes(kt, t_in, t_out) &&t_in<0 && t_out<=0 )) // particle is exiting { -// transport free to a position that is surely out of the nucleus, to avoid -// a new transportation and a new adding the barrier next loop. - G4double t_in, t_out; - if(GetSphereIntersectionTimes(kt, t_in, t_out)) - { - G4double velocity=kt->Get4Momentum().vect().mag()/kt->Get4Momentum().e()*c_light; - G4double t_min=0.1*fermi/velocity; - t_out=std::max(abs(t_out),t_min); // avoid transport by 0 step not taking it out.. if(t_in < 0 && t_out >= 0) //still inside, transport safely out. { +// transport free to a position that is surely out of the nucleus, to avoid +// a new transportation and a new adding the barrier next loop. G4ThreeVector savePos = kt->GetPosition(); - FreeTransport(kt, 1.1*t_out); + FreeTransport(kt, t_out); // and evaluate the right the energy - G4double newE=kt->Get4Momentum().e(); + G4double newE=kt->GetTrackingMomentum().e(); // G4cout << " V pos/savePos << " // << (*theFieldMap)[encoding]->GetField(kt->GetPosition())<< " / " @@ -404,46 +425,75 @@ void G4RKPropagation::Transport(G4KineticTrackVector & active, - currentField->GetField(kt->GetPosition()); } -// G4cout << " go border nucleus, E in/border: " << kt->Get4Momentum() << " / " << newE <GetTrackingMomentum() << " / " << newE <GetActualMass()) { -// G4cout << "RKPropagation-Transport: problem with particle exiting - ignored" << G4endl; +#ifdef debug_1_RKPropagation + G4cout << "RKPropagation-Transport: problem with particle exiting - ignored" << G4endl; + G4cout << " cannot leave nucleus, E in/out: " << kt->GetTrackingMomentum() << " / " << newE <GetDefinition() == G4Proton::Proton() || + kt->GetDefinition() == G4Neutron::Neutron() ) { + kt->SetState(G4KineticTrack::captured); + } else { + kt->SetState(G4KineticTrack::gone_out); //@@GF tofix + } continue; // the particle cannot exit the nucleus } -// G4cout << "%%%% before update %%%% "<< kt->Get4Momentum()<Update4Momentum(newE); -// G4cout << "%%%% beyond update %%%% "<< kt->Get4Momentum()<GetField(savePos)<<" " -// <GetField(kt->GetPosition())<<" "<GetDefinition()->GetParticleName()<GetActualMass())); + G4LorentzVector new4Mom(newP*kt->GetTrackingMomentum().vect().unit(), newE); + G4ThreeVector transfer(kt->GetTrackingMomentum().vect()-new4Mom.vect()); + G4ThreeVector boost= transfer / sqrt(transfer.mag2() + sqr(theNucleus->GetMass())); + new4Mom*=G4LorentzRotation(boost); + kt->SetTrackingMomentum(new4Mom); } - } else - { - G4cerr << "KineticModel-G4RKPropagation: Positioning problem(ignored)"<< G4endl; + // add the potential barrier + // FixMe the Coulomb field is not parallel to mom, this is simple approximation + G4double newE = kt->GetTrackingMomentum().e()+currentField->GetField(kt->GetPosition()); + if(newE < kt->GetActualMass()) + { // the particle cannot exit the nucleus @@@ GF check. +#ifdef debug_1_RKPropagation + G4cout << " cannot leave nucleus, E in/out: " << kt->GetTrackingMomentum() << " / " << newE <GetDefinition() == G4Proton::Proton() || + kt->GetDefinition() == G4Neutron::Neutron() ) { + kt->SetState(G4KineticTrack::captured); + } else { + kt->SetState(G4KineticTrack::gone_out); //@@GF tofix + } + continue; + } + G4double newP = sqrt(newE*newE- sqr(kt->GetActualMass())); + G4LorentzVector new4Mom(newP*kt->GetTrackingMomentum().vect().unit(), newE); + G4ThreeVector transfer(kt->GetTrackingMomentum().vect()-new4Mom.vect()); + G4ThreeVector boost= transfer / sqrt(transfer.mag2() + sqr(theNucleus->GetMass())); + new4Mom*=G4LorentzRotation(boost); + kt->SetTrackingMomentum(new4Mom); + kt->SetState(G4KineticTrack::gone_out); } - // add the potential barrier - // FixMe the Coulomb field is not parallel to mom, this is simple approximation - G4double newE = kt->Get4Momentum().e()+currentField->GetField(kt->GetPosition()); -// G4cout << " leave nucleus, E in/out: " << kt->Get4Momentum() << " / " << newE <GetActualMass()) - { // the particle cannot exit the nucleus -// G4cout << "HadronKineticModel:RKPropagation: ignoring problem with particle E on exit of nucleus" << G4endl; - continue; - } - kt->Update4Momentum(newE); - } } } + +//---------------------------------------------------------------------------- + G4ThreeVector G4RKPropagation::GetMomentumTransfer() const +//---------------------------------------------------------------------------- +{ + return theMomentumTranfer; +} + + //---------------------------------------------------------------------------- G4bool G4RKPropagation::FieldTransport(G4KineticTrack * kt, const G4double timeStep) //---------------------------------------------------------------------------- { -// G4cout <<"Stepper input"<Get4Momentum()<GetTrackingMomentum()<second; G4Mag_EqRhs * equation = (*theEquationMap)[kt->GetDefinition()->GetPDGEncoding()]; @@ -457,19 +507,19 @@ G4bool G4RKPropagation::FieldTransport(G4KineticTrack * kt, const G4double timeS // create the G4FieldTrack needed by AccurateAdvance G4double curveLength = 0; G4FieldTrack track(kt->GetPosition(), - kt->Get4Momentum().vect().unit(), // momentum direction + kt->GetTrackingMomentum().vect().unit(), // momentum direction curveLength, // curvelength - kt->Get4Momentum().e()-kt->GetActualMass(), // kinetic energy + kt->GetTrackingMomentum().e()-kt->GetActualMass(), // kinetic energy kt->GetActualMass(), // restmass - kt->Get4Momentum().beta()*c_light); // velocity + kt->GetTrackingMomentum().beta()*c_light); // velocity // integrate G4double eps = 0.01; // G4cout << "currTimeStep = " << currTimeStep << G4endl; if(!driver->AccurateAdvance(track, timeStep, eps)) { // cannot track this particle std::cerr << "G4RKPropagation::FieldTransport() warning: integration error." - << G4endl << "position " << kt->GetPosition() << " 4mom " <Get4Momentum() - <GetPosition() << " 4mom " <GetTrackingMomentum() + <GetTrackingMomentum().vect() - track.GetMomentum(); + G4ThreeVector boost= MomentumTranfer / sqrt (MomentumTranfer.mag2() +sqr(theNucleus->GetMass())); + // update the kt kt->SetPosition(track.GetPosition()); G4LorentzVector mom(track.GetMomentum(),sqrt(track.GetMomentum().mag2() + sqr(kt->GetActualMass()))); - kt->Set4Momentum(mom); -// G4cout <<"Stepper output"<Get4Momentum()<<" "<GetPosition()<GetTrackingMomentum() - mom ).vect(); + kt->SetTrackingMomentum(mom); + +// G4cout <<"Stepper output"<GetTrackingMomentum()<<" "<GetPosition()<GetTrackingMomentum().vect() - mom.vect(); + * G4cout << " MomentumTransfer/corrected" << MomentumTranfer << " " << MomentumTranfer.mag() + * << " " << MomentumTranfer2 << " " << MomentumTranfer2.mag() << " " + * << MomentumTranfer-MomentumTranfer2 << " "<< + * MomentumTranfer-MomentumTranfer2.mag() << " " << G4endl; * G4cout <<" E/Field/Sum aft : " <GetField(pos)<< " / " * << mom.e()+(*theFieldMap)[encoding]->GetField(pos) @@ -504,7 +566,7 @@ G4bool G4RKPropagation::FreeTransport(G4KineticTrack * kt, const G4double timeSt //---------------------------------------------------------------------------- { G4ThreeVector newpos = kt->GetPosition() + - timeStep*c_light/kt->Get4Momentum().e() * kt->Get4Momentum().vect(); + timeStep*c_light/kt->GetTrackingMomentum().e() * kt->GetTrackingMomentum().vect(); kt->SetPosition(newpos); return true; } @@ -518,7 +580,7 @@ G4bool G4RKPropagation::WillBeCaptured(const G4KineticTrack * kt) G4ParticleDefinition * definition = kt->GetDefinition(); G4double mass = definition->GetPDGMass(); G4ThreeVector pos = kt->GetPosition(); - G4LorentzVector mom = kt->Get4Momentum(); + G4LorentzVector mom = kt->GetTrackingMomentum(); G4VNuclearField * field = (*theFieldMap)[definition->GetPDGEncoding()]; G4ThreeVector newPos(0, 0, radius); // to get the field on the surface @@ -557,14 +619,13 @@ G4bool G4RKPropagation::GetSphereIntersectionTimes(const G4KineticTrack * kt, G4double & t1, G4double & t2) { G4double radius = theOuterRadius + 3*fermi; // "safety" of 3 fermi - G4ThreeVector speed = kt->Get4Momentum().vect()/kt->Get4Momentum().e(); // bost vector + G4ThreeVector speed = kt->GetTrackingMomentum().vect()/kt->GetTrackingMomentum().e(); // bost vector G4double scalarProd = kt->GetPosition().dot(speed); G4double speedMag = speed.mag(); G4double sqrtArg = scalarProd*scalarProd - speedMag*speedMag*(kt->GetPosition().mag2()-radius*radius); if(sqrtArg <= 0.) // particle will not intersect the sphere { -// G4cout << " GetSphereIntersectionTimes sqrtArg negative: " << sqrtArg << G4endl; return false; } t1 = (-scalarProd - sqrt(sqrtArg))/speedMag/speedMag/c_light; diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaMinusField.cc b/source/processes/hadronic/models/binary_cascade/src/G4SigmaMinusField.cc similarity index 83% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaMinusField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4SigmaMinusField.cc index fe37e86cb5..4fdf426410 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaMinusField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4SigmaMinusField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4SigmaMinus.hh" +#include "G4HadTmpUtil.hh" G4SigmaMinusField::G4SigmaMinusField(G4V3DNucleus * nucleus, G4double coeff) : G4VNuclearField(nucleus) @@ -48,23 +49,23 @@ G4SigmaMinusField::~G4SigmaMinusField() { } -const G4SigmaMinusField & G4SigmaMinusField::operator=(const G4SigmaMinusField & ) +const G4SigmaMinusField & G4SigmaMinusField::operator=(const G4SigmaMinusField &) { - G4Exception("G4SigmaMinusField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaMinusField::operator= meant not to be accessible"); return *this; } -G4int G4SigmaMinusField::operator==(const G4SigmaMinusField & ) const +G4int G4SigmaMinusField::operator==(const G4SigmaMinusField &) const { - G4Exception("G4SigmaMinusField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaMinusField::operator== meant not to be accessible"); return 0; } -G4int G4SigmaMinusField::operator!=(const G4SigmaMinusField & ) const +G4int G4SigmaMinusField::operator!=(const G4SigmaMinusField &) const { - G4Exception("G4SigmaMinusField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaMinusField::operator!= meant not to be accessible"); return 1; } @@ -77,9 +78,9 @@ G4double G4SigmaMinusField::GetField(const G4ThreeVector & aPosition) G4double sigmaMinusMass = G4SigmaMinus::SigmaMinus()->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = sigmaMinusMass*nucleusMass/(sigmaMinusMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaPlusField.cc b/source/processes/hadronic/models/binary_cascade/src/G4SigmaPlusField.cc similarity index 83% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaPlusField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4SigmaPlusField.cc index 2d25cbf2f9..e534b8d9de 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaPlusField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4SigmaPlusField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4SigmaPlus.hh" +#include "G4HadTmpUtil.hh" G4SigmaPlusField::G4SigmaPlusField(G4V3DNucleus * nucleus, G4double coeff) : G4VNuclearField(nucleus) @@ -49,23 +50,23 @@ G4SigmaPlusField::~G4SigmaPlusField() { } -const G4SigmaPlusField & G4SigmaPlusField::operator=(const G4SigmaPlusField & ) +const G4SigmaPlusField & G4SigmaPlusField::operator=(const G4SigmaPlusField &) { - G4Exception("G4SigmaPlusField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaPlusField::operator= meant not to be accessible"); return *this; } -G4int G4SigmaPlusField::operator==(const G4SigmaPlusField & ) const +G4int G4SigmaPlusField::operator==(const G4SigmaPlusField &) const { - G4Exception("G4SigmaPlusField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaPlusField::operator== meant not to be accessible"); return 0; } -G4int G4SigmaPlusField::operator!=(const G4SigmaPlusField & ) const +G4int G4SigmaPlusField::operator!=(const G4SigmaPlusField &) const { - G4Exception("G4SigmaPlusField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaPlusField::operator!= meant not to be accessible"); return 1; } @@ -78,9 +79,9 @@ G4double G4SigmaPlusField::GetField(const G4ThreeVector & aPosition) G4double sigmaPlusMass = G4SigmaPlus::SigmaPlus()->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = sigmaPlusMass*nucleusMass/(sigmaPlusMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaZeroField.cc b/source/processes/hadronic/models/binary_cascade/src/G4SigmaZeroField.cc similarity index 83% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaZeroField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4SigmaZeroField.cc index 22afe20d70..513cae0cbc 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4SigmaZeroField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4SigmaZeroField.cc @@ -37,6 +37,7 @@ #include "G4VNuclearDensity.hh" #include "G4FermiMomentum.hh" #include "G4SigmaZero.hh" +#include "G4HadTmpUtil.hh" G4SigmaZeroField::G4SigmaZeroField(G4V3DNucleus * nucleus, G4double coeff) : G4VNuclearField(nucleus) @@ -49,23 +50,23 @@ G4SigmaZeroField::~G4SigmaZeroField() { } -const G4SigmaZeroField & G4SigmaZeroField::operator=(const G4SigmaZeroField & ) +const G4SigmaZeroField & G4SigmaZeroField::operator=(const G4SigmaZeroField &) { - G4Exception("G4SigmaZeroField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaZeroField::operator= meant not to be accessible"); return *this; } -G4int G4SigmaZeroField::operator==(const G4SigmaZeroField & ) const +G4int G4SigmaZeroField::operator==(const G4SigmaZeroField &) const { - G4Exception("G4SigmaZeroField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaZeroField::operator== meant not to be accessible"); return 0; } -G4int G4SigmaZeroField::operator!=(const G4SigmaZeroField & ) const +G4int G4SigmaZeroField::operator!=(const G4SigmaZeroField &) const { - G4Exception("G4SigmaZeroField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4SigmaZeroField::operator!= meant not to be accessible"); return 1; } @@ -78,9 +79,9 @@ G4double G4SigmaZeroField::GetField(const G4ThreeVector & aPosition) G4double sigmaZeroMass = G4SigmaZero::SigmaZero()->GetPDGMass(); - G4int A = static_cast(theNucleus->GetMassNumber()+.1); - G4int Z = static_cast(theNucleus->GetCharge()+.1); - G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(Z, A); + G4double A = theNucleus->GetMassNumber(); + G4double Z = theNucleus->GetCharge(); + G4double bindingEnergy = G4NucleiPropertiesTable::GetBindingEnergy(G4lrint(Z), G4lrint(A)); G4double nucleusMass = Z*proton_mass_c2+(A-Z)*neutron_mass_c2+bindingEnergy; G4double reducedMass = sigmaZeroMass*nucleusMass/(sigmaZeroMass+nucleusMass); diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4VFieldPropagation.cc b/source/processes/hadronic/models/binary_cascade/src/G4VFieldPropagation.cc similarity index 85% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4VFieldPropagation.cc rename to source/processes/hadronic/models/binary_cascade/src/G4VFieldPropagation.cc index 61aa7dcbd3..7c7c9cadb1 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4VFieldPropagation.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4VFieldPropagation.cc @@ -34,6 +34,7 @@ // ------------------------------------------------------------------- #include "G4VFieldPropagation.hh" #include "globals.hh" +#include "G4HadronicException.hh" G4VFieldPropagation::G4VFieldPropagation() { } @@ -44,21 +45,21 @@ G4VFieldPropagation::G4VFieldPropagation(const G4VFieldPropagation &) G4VFieldPropagation::~G4VFieldPropagation() { } -const G4VFieldPropagation & G4VFieldPropagation::operator=(const G4VFieldPropagation & ) +const G4VFieldPropagation & G4VFieldPropagation::operator=(const G4VFieldPropagation &) { - G4Exception("G4VFieldPropagation::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4VFieldPropagation::operator= meant not to be accessible"); return *this; } -G4int G4VFieldPropagation::operator==(const G4VFieldPropagation & ) const +G4int G4VFieldPropagation::operator==(const G4VFieldPropagation &) const { - G4Exception("G4VFieldPropagation::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4VFieldPropagation::operator== meant not to be accessible"); return 0; } -G4int G4VFieldPropagation::operator!=(const G4VFieldPropagation & ) const +G4int G4VFieldPropagation::operator!=(const G4VFieldPropagation &) const { - G4Exception("G4VFieldPropagation::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4VFieldPropagation::operator!= meant not to be accessible"); return 1; } diff --git a/source/processes/hadronic/models/generator/kinetic_model/src/G4VNuclearField.cc b/source/processes/hadronic/models/binary_cascade/src/G4VNuclearField.cc similarity index 83% rename from source/processes/hadronic/models/generator/kinetic_model/src/G4VNuclearField.cc rename to source/processes/hadronic/models/binary_cascade/src/G4VNuclearField.cc index 3b4d9f46a5..c2085211f1 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/src/G4VNuclearField.cc +++ b/source/processes/hadronic/models/binary_cascade/src/G4VNuclearField.cc @@ -51,21 +51,21 @@ G4VNuclearField::~G4VNuclearField() { } -const G4VNuclearField & G4VNuclearField::operator=(const G4VNuclearField & ) +const G4VNuclearField & G4VNuclearField::operator=(const G4VNuclearField &) { - G4Exception("G4VNuclearField::operator= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4VNuclearField::operator= meant not to be accessible"); return *this; } -G4int G4VNuclearField::operator==(const G4VNuclearField & ) const +G4int G4VNuclearField::operator==(const G4VNuclearField &) const { - G4Exception("G4VNuclearField::operator== meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4VNuclearField::operator== meant not to be accessible"); return 0; } -G4int G4VNuclearField::operator!=(const G4VNuclearField & ) const +G4int G4VNuclearField::operator!=(const G4VNuclearField &) const { - G4Exception("G4VNuclearField::operator!= meant not to be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4VNuclearField::operator!= meant not to be accessible"); return 1; } diff --git a/source/processes/hadronic/models/cascade/GNUmakefile b/source/processes/hadronic/models/cascade/GNUmakefile index c62baaabe6..2d3ee816c5 100644 --- a/source/processes/hadronic/models/cascade/GNUmakefile +++ b/source/processes/hadronic/models/cascade/GNUmakefile @@ -2,7 +2,7 @@ # GNUmakefile for chips library. HPW 20-Nov-99 # -------------------------------------------------------------- -name := G4hadronic_hetcpp +name := G4had_hetcpp SUBDIRS = evaporation SUBDIRS += utils diff --git a/source/processes/hadronic/models/cascade/cascade/GNUmakefile b/source/processes/hadronic/models/cascade/cascade/GNUmakefile index 6a6f4faacd..af53fc42d1 100644 --- a/source/processes/hadronic/models/cascade/cascade/GNUmakefile +++ b/source/processes/hadronic/models/cascade/cascade/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.7 2002/12/03 11:33:52 gcosmo Exp $ +# $Id: GNUmakefile,v 1.8 2003/10/08 14:53:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -23,11 +23,8 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/models/generator/pre_equilibrium/include \ - -I$(G4BASE)/processes/hadronic/models/generator/diffractive_string/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/processes/hadronic/models/cascade/cascade/include \ -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ -I$(G4BASE)/particles/management/include \ diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4Analyser.hh b/source/processes/hadronic/models/cascade/cascade/include/G4Analyser.hh index fe1c7fe918..a6ddbec5c0 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4Analyser.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4Analyser.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4ANALYSER_HH #define G4ANALYSER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniData.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniData.hh index cf518eec2f..f16ada46cd 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniData.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniData.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4BertiniData_h #define G4BertiniData_h 1 diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniElasticCollision.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniElasticCollision.hh index 1a33fd6cf4..743b629fea 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniElasticCollision.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniElasticCollision.hh @@ -19,19 +19,21 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4BertiniElasticCollision_h #define G4BertiniElasticCollision_h 1 #include "G4BertiniModel.hh" class G4BertiniElasticCollision : public G4BertiniModel { + public: G4BertiniElasticCollision(); ~G4BertiniElasticCollision(); void interpolateElasticNeutronData(G4int medium, G4int kdd, G4double e); void geti(G4double es, G4int npts, G4double e, G4int i); void scatteringWithHydrogen(); + private: G4double pt[16]; G4double col[23]; diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniHydrogenCollision.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniHydrogenCollision.hh index 7d30d4143a..e7f5beaeb8 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniHydrogenCollision.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniHydrogenCollision.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4BertiniHydrogenCollision_h #define G4BertiniHydrogenCollision_h 1 @@ -29,6 +30,7 @@ class G4BertiniHydrogenCollision : public G4BertiniModel { public: G4BertiniHydrogenCollision(); ~G4BertiniHydrogenCollision(); + private: }; diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniNucleiModel.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniNucleiModel.hh index d2128f22bf..2226dcbc1f 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniNucleiModel.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniNucleiModel.hh @@ -19,12 +19,14 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4BERTININUCLEI_MODEL_HH #define G4BERTININUCLEI_MODEL_HH #ifndef G4INUCL_ELEMENTARY_PARTICLE_HH #include "G4InuclElementaryParticle.hh" #endif + #include "G4CascadParticle.hh" #include "G4InuclSpecialFunctions.hh" #include "G4CascadSpecialFunctions.hh" @@ -42,63 +44,38 @@ typedef std::vector partners; class G4BertiniNucleiModel { - /// 7 MeV potential - - /// Testing Doxygen properties (http://www.stack.nl/~dimitri/doxygen/) - - /// The distance between \f$(x_1,y_1)\f$ and \f$(x_2,y_2)\f$ is \f$\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}\f$. - /*! \class G4BertiniNucleiModel - * \brief Implements HETC nuclei model - * \author Aatos Heikkinen + * \brief Implements HETC nuclei model in Geant4 + * \author Aatos Heikkinen and * \author Original HETC authors * \version 0.0 - * \date 16.11.2002 - * \bug None know + * \date 25.11.2002 + * \bug * \warning Wery preliminary */ public: - G4BertiniNucleiModel(); /// Initialize - - /** - * a normal member taking two arguments and returning an integer value. - * @param a an integer argument. - * @param s a constant character pointer. - * @see Test() - * @see ~Test() - * @see testMeToo() - * @see publicVar() - * @return The test results - */ - - - /// a normal member taking two arguments and returning an integer value. - /// @param a an integer argument. - /// @param s a constant character pointer. - /// @see Test() - /// @see ~Test() - /// @see testMeToo() - /// @see publicVar() - /// @return The test results + G4BertiniNucleiModel(); - G4BertiniNucleiModel(G4InuclNuclei* nuclei) { - generateModel(nuclei->getA(), nuclei->getZ()); }; void generateModel(G4double a, - G4double z); //!< a member function. + G4double z); /// create nuclei model + + /// @param a is atom mumber (number of protons and neutron in nuclei) + /// @param z in number of protons in nuclei + /// @see + /// @return void void reset() { - neutronNumberCurrent = neutronNumber; protonNumberCurrent = protonNumber; }; - void printModel() const; /// a member function. + void printModel() const; G4double getDensity(G4int ip, G4int izone) const { @@ -114,13 +91,11 @@ public: G4double getFermiKinetic(G4int ip, G4int izone) const { - G4double ekin = 0.0; - if(ip < 3 && izone < number_of_zones) { + if (ip < 3 && izone < number_of_zones) { G4double pf = fermi_momenta[ip - 1][izone]; G4double mass = ip == 1 ? 0.93827 : 0.93957; - ekin = sqrt(pf * pf + mass * mass) - mass; }; @@ -129,7 +104,6 @@ public: G4double getPotential(G4int ip, G4int izone) const { - G4int ip0 = ip < 3 ? ip - 1 : 2; return izone < number_of_zones ? zone_potentials[ip0][izone] : 0.0; @@ -149,13 +123,14 @@ public: return protonNumberCurrent; }; - G4bool empty() const { + G4bool empty() const { /*!< See if there is no nucleon. */ + /// @return TRUE if no current nucleons. return neutronNumberCurrent < 1.0 && protonNumberCurrent < 1.0; }; - G4bool stillInside(const G4CascadParticle& cparticle) { - + G4bool stillInside(const G4CascadParticle& cparticle) { /*!< Check if the cascade particle is still inside the nuclei. */ + /// @return TRUE if no current nucleons. return cparticle.getCurrentZone() < number_of_zones; }; @@ -164,12 +139,14 @@ public: std::pair, std::vector > initializeCascad(G4InuclNuclei* bullet, G4InuclNuclei* target); std::pair getTypesOfNucleonsInvolved() const { + return std::pair(current_nucl1, current_nucl2); }; - G4bool worthToPropagate(const G4CascadParticle& cparticle) const; + + G4bool worthToPropagate(const G4CascadParticle& cparticle) const; /*!< Check if cascade particle will continue. */ private: - G4int verboseLevel; /*!< Each class has a verbosity level of its own. */ + G4int verboseLevel; /*!< Each cascade class has a verbosity level of its own. */ G4bool passFermi(const std::vector& particles, G4int zone); @@ -187,44 +164,29 @@ private: G4double volNumInt(G4double r1, G4double r2, G4double cu, - G4double d1) const; + G4double d1) const; /// ::: G4double volNumInt1(G4double r1, G4double r2, - G4double cu2) const; + G4double cu2) const; /// ::: G4double getRatio(G4int ip) const; std::vector > nucleon_densities; - std::vector > zone_potentials; - std::vector > fermi_momenta; - std::vector zone_radii; - std::vector binding_energies; - G4double nuclei_radius; - - G4int number_of_zones; - - G4double A; - + G4int number_of_zones; /*!< Usually = 3, but number of zones is free parameter. */ + G4double A; G4double Z; - G4double neutronNumber; - G4double protonNumber; - G4double neutronNumberCurrent; - G4double protonNumberCurrent; - G4int current_nucl1; - G4int current_nucl2; - }; -#endif // G4NUCLEI_MODEL_HH +#endif diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BertiniRegionModel.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniRegionModel.hh new file mode 100644 index 0000000000..5ba24299c7 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BertiniRegionModel.hh @@ -0,0 +1,80 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 G4BERTINIREGIONMODEL +#define G4BERTINIREGIONMODEL + +#include "G4ios.hh" +#include +#include +#include "globals.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" + + +typedef std::vector::const_iterator my_iterator; + +class G4BertiniRegionModel { + /*! \class G4BertiniRegionModel + * \brief Implements HETC nucleus regions + * \author Aatos Heikkinen + * \author Original HETC authors + * \version 0.0 + * \date 25.11.2002 + * \bug + * \warning Wery preliminary + */ + +public: + G4BertiniRegionModel(const G4int numberOfLayers, const G4int A, const G4int Z); + ~G4BertiniRegionModel(); + + G4double GetDensity(G4double radius); + G4double GetPotentialEnergy(G4double r, G4int particle); + G4double GetMaximumNucleonMomentum(G4double radius, G4int nucleon); + +private: + std::vector radius; /*!< contains the outer radiuses of the shells */ + std::vector density; + std::vector protonFermiEnergy; + std::vector neutronFermiEnergy; + std::vector protonFermiMomentum; + std::vector neutronFermiMomentum; + std::vector protonPotentialEnergy; + std::vector neutronPotentialEnergy; + G4int massNumber; + G4int protonNumber; + static const G4double radius0; + static const G4double BE; + + G4double GetFermiMomentum(G4double density, G4double mass); + G4double GetFermiEnergy(G4double density, G4double mass); +}; +#endif + + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4BigBanger.hh b/source/processes/hadronic/models/cascade/cascade/include/G4BigBanger.hh index 1fe7f64af4..71d1a2e4ff 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4BigBanger.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4BigBanger.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4BIG_BANGER_HH #define G4BIG_BANGER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CascadParticle.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CascadParticle.hh index 42031b0bb5..e6ddd864df 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4CascadParticle.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CascadParticle.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4CASCAD_PARTICLE_HH #define G4CASCAD_PARTICLE_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh index 0d35f39290..31cf96a06a 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CascadSpecialFunctions.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4CASCAD_SPECIAL_FUNC_HH #define G4CASCAD_SPECIAL_FUNC_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CascadeInterface.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CascadeInterface.hh index a89be54577..d6d9b5b17d 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4CascadeInterface.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CascadeInterface.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // CLASS DESCRIPTION // G4CascadeInterface defines an interface to HETC and INUCL // models of an medium energy (~ 0.5 - 5 GeV) intra-nuclear transport. @@ -48,7 +49,7 @@ public: G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus); - G4VParticleChange* ApplyYourself(const G4Track& aTrack, + G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& theNucleus); private: @@ -63,7 +64,7 @@ private: G4int verboseLevel; private: - G4ParticleChange theResult; + G4HadFinalState theResult; }; diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4Collider.hh b/source/processes/hadronic/models/cascade/cascade/include/G4Collider.hh index 4b6b60a2ff..0d1a9297a7 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4Collider.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4Collider.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4COLLIDER_HH #define G4COLLIDER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh b/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh index 44fd115030..019c01c8c4 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4CollisionOutput.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4COLLISION_OUTPUT_HH #define G4COLLISION_OUTPUT_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh b/source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh index 14ea24630d..c577c43764 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4ElementaryParticleCollider.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4ELEMENTARY_PARTICLE_COLLIDER_HH #define G4ELEMENTARY_PARTICLE_COLLIDER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4EquilibriumEvaporator.hh b/source/processes/hadronic/models/cascade/cascade/include/G4EquilibriumEvaporator.hh index 533dbe01c6..54bf8e3509 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4EquilibriumEvaporator.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4EquilibriumEvaporator.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4EQUILIBRIUM_EVAPORATOR_HH #define G4EQUILIBRIUM_EVAPORATOR_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4ExitonConfiguration.hh b/source/processes/hadronic/models/cascade/cascade/include/G4ExitonConfiguration.hh index 5473f33457..35d4abaa87 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4ExitonConfiguration.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4ExitonConfiguration.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4EXITON_CONFIGURATION_HH #define G4EXITON_CONFIGURATION_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4FissionConfiguration.hh b/source/processes/hadronic/models/cascade/cascade/include/G4FissionConfiguration.hh index 3ecf61c36d..2de469b4b5 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4FissionConfiguration.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4FissionConfiguration.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4FISSION_CONFIGURATION_HH #define G4FISSION_CONFIGURATION_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4FissionStore.hh b/source/processes/hadronic/models/cascade/cascade/include/G4FissionStore.hh index 3bdc1db8ad..df2edbfdca 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4FissionStore.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4FissionStore.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4FISSION_STORE_HH #define G4FISSION_STORE_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4Fissioner.hh b/source/processes/hadronic/models/cascade/cascade/include/G4Fissioner.hh index 6969f01819..aad50c97af 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4Fissioner.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4Fissioner.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4FISSIONER_HH #define G4FISSIONER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InteractionCase.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InteractionCase.hh index 4864a0c1e0..a38b2304d6 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4InteractionCase.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InteractionCase.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4INTERACTION_CASE_HH #define G4INTERACTION_CASE_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4IntraNucleiCascader.hh b/source/processes/hadronic/models/cascade/cascade/include/G4IntraNucleiCascader.hh index 83b8bd1ae1..bcb95f64c7 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4IntraNucleiCascader.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4IntraNucleiCascader.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4INTRA_NUCLEI_CASCADER_HH #define G4INTRA_NUCLEI_CASCADER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclCollider.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclCollider.hh index 674cb23f04..87169c2410 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4InuclCollider.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclCollider.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4INUCL_COLLIDER_HH #define G4INUCL_COLLIDER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclElementaryParticle.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclElementaryParticle.hh index a178db8c1c..9fbca7ac31 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4InuclElementaryParticle.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclElementaryParticle.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4INUCL_ELEMENTARY_PARTICLE_HH #define G4INUCL_ELEMENTARY_PARTICLE_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclNuclei.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclNuclei.hh index c041e7ecf6..cb5855acc6 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4InuclNuclei.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclNuclei.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4INUCL_NUCLEI_HH #define G4INUCL_NUCLEI_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclParticle.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclParticle.hh index 9943dafa4f..72f0ea741f 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4InuclParticle.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclParticle.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4INUCL_PARTICLE_HH #define G4INUCL_PARTICLE_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4InuclSpecialFunctions.hh b/source/processes/hadronic/models/cascade/cascade/include/G4InuclSpecialFunctions.hh index 5f72431c8b..0371cd393a 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4InuclSpecialFunctions.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4InuclSpecialFunctions.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4INUCL_SPECIAL_FUNC_HH #define G4INUCL_SPECIAL_FUNC_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4LorentzConvertor.hh b/source/processes/hadronic/models/cascade/cascade/include/G4LorentzConvertor.hh index 240625abc3..a1483b295b 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4LorentzConvertor.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4LorentzConvertor.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4LORENTZ_CONVERTOR_HH #define G4LORENTZ_CONVERTOR_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4NonEquilibriumEvaporator.hh b/source/processes/hadronic/models/cascade/cascade/include/G4NonEquilibriumEvaporator.hh index d02914305f..870b92053a 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4NonEquilibriumEvaporator.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4NonEquilibriumEvaporator.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4NON_EQUILIBRIUM_EVAPORATOR_HH #define G4NON_EQUILIBRIUM_EVAPORATOR_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4NuclWatcher.hh b/source/processes/hadronic/models/cascade/cascade/include/G4NuclWatcher.hh index ba4734dcfc..85216ea7c7 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4NuclWatcher.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4NuclWatcher.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4NUCL_WATCHER_HH #define G4NUCL_WATCHER_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh b/source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh index 2cd4adc79e..e28e27d2df 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4NucleiModel.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4NUCLEI_MODEL_HH #define G4NUCLEI_MODEL_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4ParticleLargerEkin.hh b/source/processes/hadronic/models/cascade/cascade/include/G4ParticleLargerEkin.hh index cb76054217..3615ce70de 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4ParticleLargerEkin.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4ParticleLargerEkin.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4PARTICLE_LARGER_EKIN_HH #define G4PARTICLE_LARGER_EKIN_HH diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4RegionModel.hh b/source/processes/hadronic/models/cascade/cascade/include/G4RegionModel.hh new file mode 100644 index 0000000000..29937f19bf --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/include/G4RegionModel.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. * +// ******************************************************************** +// +#ifndef G4REGIONMODEL +#define G4REGIONMODEL + +#include "G4ios.hh" +#include +#include +#include "globals.hh" +#include "G4Proton.hh" +#include "G4Neutron.hh" +//#include "G4NucleusModel.hh" + + +typedef std::vector::const_iterator my_iterator; + +class G4RegionModel //:public G4VRegionModel +{ +public: + G4RegionModel(const G4int numberOfLayers, const G4int A, const G4int Z); + ~G4RegionModel(); + + //instead of A and Z outer radius of the nucleus? + //void Init(const G4int numberOfLayers, const G4int A, const G4int Z); + G4double GetDensity(G4double radius); + G4double GetPotentialEnergy(G4double r, G4int particle); + G4double GetMaximumNucleonMomentum(G4double radius, G4int nucleon); + // G4double NumberOfRegions(); + +private: + + G4int massNumber; + G4int protonNumber; + std::vector radius; //contains the outer radiuses of the shells + std::vector density; + std::vector protonFermiEnergy; + std::vector neutronFermiEnergy; + std::vector protonFermiMomentum; + std::vector neutronFermiMomentum; + + std::vector protonPotentialEnergy; + std::vector neutronPotentialEnergy; + + static const G4double radius0; + static const G4double BE; + //static const G4double pi = 3.141592; + + G4double GetFermiMomentum(G4double density, G4double mass); + G4double GetFermiEnergy(G4double density, G4double mass); +}; +#endif + + + + + + + + diff --git a/source/processes/hadronic/models/cascade/cascade/include/G4WatcherGun.hh b/source/processes/hadronic/models/cascade/cascade/include/G4WatcherGun.hh index 65e17bb33f..dfdeb83961 100644 --- a/source/processes/hadronic/models/cascade/cascade/include/G4WatcherGun.hh +++ b/source/processes/hadronic/models/cascade/cascade/include/G4WatcherGun.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4WATCHER_GUN_HH #define G4WATCHER_GUN_HH diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4Analyser.cc b/source/processes/hadronic/models/cascade/cascade/src/G4Analyser.cc index a61019747b..e8623fa16a 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4Analyser.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4Analyser.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #include "G4Analyser.hh" #include @@ -108,7 +109,8 @@ void G4Analyser::analyse(const G4CollisionOutput& output) { if (withNuclei) { std::vector nucleus = output.getNucleiFragments(); - if (nucleus.size() >= 0) { + // if (nucleus.size() >= 0) { + if (nucleus.size() > 0) { G4int nbig = 0; averageNucleiFragments += nucleus.size(); @@ -207,7 +209,7 @@ void G4Analyser::printResultsSimple() { G4cout << " >>> G4Analyser::printResultsSimple" << G4endl; } - G4cout << " Number of events " << int(eventNumber + 0.1) << G4endl + G4cout << " Number of events " << G4int(eventNumber + 0.1) << G4endl << " average multiplicity " << averageMultiplicity / eventNumber << G4endl << " average proton number " << averageProtonNumber / eventNumber << G4endl << " average neutron number " << averageNeutronNumber / eventNumber << G4endl @@ -236,7 +238,7 @@ void G4Analyser::printResults() { G4cout << " >>> G4Analyser::printResults" << G4endl; } - G4cout << " Number of events " << int(eventNumber + 0.1) << G4endl + G4cout << " Number of events " << G4int(eventNumber + 0.1) << G4endl << " average multiplicity " << averageMultiplicity / eventNumber << G4endl << " average proton number " << averageProtonNumber / eventNumber << G4endl << " average neutron number " << averageNeutronNumber / eventNumber << G4endl @@ -254,7 +256,6 @@ void G4Analyser::printResults() { << " average pi0 " << averagePion0 / eventNumber << G4endl; if (withNuclei) { - G4cout << " average A " << averageA / eventNumber << G4endl << " average Z " << averageZ / eventNumber << G4endl @@ -290,7 +291,7 @@ void G4Analyser::handleWatcherStatistics() { G4double checked = 0.0; for (G4int iw = 0; iw < G4int(ana_watchers.size()); iw++) { - ana_watchers[iw].setInuclCs(inel_csec, eventNumber); + ana_watchers[iw].setInuclCs(inel_csec, G4int(eventNumber)); ana_watchers[iw].print(); if (ana_watchers[iw].to_check()) { diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4BertiniData.cc b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniData.cc index 9804ba7898..4b3695d8e1 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4BertiniData.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniData.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #include "globals.hh" #include "G4BertiniData.hh" diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4BertiniNucleiModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniNucleiModel.cc index de697c8f31..b1ee877d1d 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4BertiniNucleiModel.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniNucleiModel.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4BertiniNucleiModel.hh" #include "G4LorentzConvertor.hh" #include "G4CollisionOutput.hh" @@ -91,7 +91,6 @@ void G4BertiniNucleiModel::generateModel(G4double a, }; } else { - number_of_zones = 3; icase = 1; ur.push_back(0.0); @@ -117,14 +116,13 @@ void G4BertiniNucleiModel::generateModel(G4double a, v0 = volNumInt(ur[i], ur[i + 1], CU, D1); } else { - v0 = volNumInt1(ur[i], ur[i + 1], CU2); }; v.push_back(v0); tot_vol += v0; - v0 = (i == 0 ? pow(zone_radii[i], 3) : pow(zone_radii[i], 3) - - pow(zone_radii[i - 1], 3)); + v0 = (i == 0 ? pow(zone_radii[i], G4double(3)) : pow(zone_radii[i], G4double(3)) - + pow(zone_radii[i - 1], G4double(3))); v1.push_back(v0); }; @@ -168,10 +166,9 @@ void G4BertiniNucleiModel::generateModel(G4double a, zone_potentials.push_back(vp); } else { /// a < 4 - number_of_zones = 1; zone_radii.push_back(radForSmall); - G4double vol = 1.0 / piTimes4thirds / pow(zone_radii[0], 3); + G4double vol = 1.0 / piTimes4thirds / pow(zone_radii[0], G4double(3)); std::vector rod; std::vector pf; std::vector vz; @@ -216,7 +213,7 @@ void G4BertiniNucleiModel::generateModel(G4double a, G4double G4BertiniNucleiModel::volNumInt(G4double r1, G4double r2, - G4double cu, + G4double /*cu*/, G4double d1) const { if (verboseLevel > 3) { @@ -240,7 +237,7 @@ G4double G4BertiniNucleiModel::volNumInt(G4double r1, itry++; G4double r = r1 - dr; fi = 0.0; - G4int jc1 = G4int(pow(2.0, jc - 1) + 0.1); + G4int jc1 = G4int(pow(G4double(2.0), jc - 1) + 0.1); for (G4int i = 0; i < jc1; i++) { r += dr1; @@ -314,12 +311,11 @@ G4double G4BertiniNucleiModel::volNumInt1(G4double r1, }; if (verboseLevel > 2){ - if (itry == itry_max) G4cout << " volNumInt1-> n iter " << itry_max << G4endl; } - return pow(cu2, 3) * fun; + return pow(cu2, G4double(3)) * fun; } void G4BertiniNucleiModel::printModel() const { @@ -431,12 +427,10 @@ partners G4BertiniNucleiModel::generateInteractionPartners(G4CascadParticle& cpa r_out = 0.0; } else if (zone == 0) { /// particle is outside core - r_in = 0.0; r_out = zone_radii[0]; } else { - r_in = zone_radii[zone - 1]; r_out = zone_radii[zone]; }; @@ -451,7 +445,6 @@ partners G4BertiniNucleiModel::generateInteractionPartners(G4CascadParticle& cpa return thePartners; } else if(fabs(path) < small) { /// just on the bounday - path = 0.0; G4InuclElementaryParticle particle; @@ -459,7 +452,6 @@ partners G4BertiniNucleiModel::generateInteractionPartners(G4CascadParticle& cpa thePartners.push_back(partner(particle, path)); } else { /// normal case - std::vector particles; G4LorentzConvertor dummy_convertor; @@ -513,7 +505,7 @@ partners G4BertiniNucleiModel::generateInteractionPartners(G4CascadParticle& cpa std::vector acsecs; G4double tot_abs_csec = 0.0; G4double abs_sec; - G4double vol = pow(zone_radii[zone], 3); + G4double vol = pow(zone_radii[zone], G4double(3) ); if(zone > 0) vol -= pow(zone_radii[zone - 1], 3); vol *= pi4by3; @@ -532,7 +524,6 @@ partners G4BertiniNucleiModel::generateInteractionPartners(G4CascadParticle& cpa rat * rat * vol; } else { - abs_sec = 0.0; }; @@ -666,7 +657,6 @@ std::vector G4BertiniNucleiModel::generateParticleFate(G4Casca G4cout << " generateParticleFate-> can not be here " << G4endl; } else { - G4int npart = thePartners.size(); if (npart == 1) { /// cparticle is on the next zone entry @@ -681,7 +671,6 @@ std::vector G4BertiniNucleiModel::generateParticleFate(G4Casca } } else { /// there are possible interactions - std::vector old_position = cparticle.getPosition(); G4InuclElementaryParticle bullet = cparticle.getParticle(); G4bool no_interaction = true; @@ -754,7 +743,6 @@ std::vector G4BertiniNucleiModel::generateParticleFate(G4Casca protonNumberCurrent -= 1.0; } else { - neutronNumberCurrent -= 1.0; }; @@ -762,7 +750,6 @@ std::vector G4BertiniNucleiModel::generateParticleFate(G4Casca protonNumberCurrent -= 1.0; } else if(current_nucl2 == 2) { - neutronNumberCurrent -= 1.0; }; @@ -898,7 +885,6 @@ G4double G4BertiniNucleiModel::getRatio(G4int ip) const { G4double rat; if (ip == 1) { - if (verboseLevel > 2){ G4cout << " current " << protonNumberCurrent << " inp " << protonNumber << G4endl; } @@ -1048,7 +1034,6 @@ G4BertiniNucleiModel::initializeCascad(G4InuclNuclei* bullet, if (ab < 4.0) { /// a == 3 while (badco && itry < itry_max) { - if (itry > 0) coordinates.resize(0); itry++; G4int i(0); @@ -1108,11 +1093,10 @@ G4BertiniNucleiModel::initializeCascad(G4InuclNuclei* bullet, G4bool large_dist = false; for (i = 0; i < 2; i++) { - for (G4int j = i+1; j < 3; j++) { - G4double r2 = pow(coordinates[i][0] - coordinates[j][0], 2) + - pow(coordinates[i][1] - coordinates[j][1], 2) + - pow(coordinates[i][2] - coordinates[j][2], 2); + G4double r2 = pow(coordinates[i][0] - coordinates[j][0], G4double(2)) + + pow(coordinates[i][1] - coordinates[j][1], G4double(2)) + + pow(coordinates[i][2] - coordinates[j][2], G4double(2)); if (verboseLevel > 2) { G4cout << " i " << i << " j " << j << " r2 " << r2 << G4endl; @@ -1169,7 +1153,6 @@ G4BertiniNucleiModel::initializeCascad(G4InuclNuclei* bullet, coord1[1] * coord1[1] + coord1[2] * coord1[2]) << G4endl; } - break; }; }; @@ -1201,9 +1184,9 @@ G4BertiniNucleiModel::initializeCascad(G4InuclNuclei* bullet, for (i = 0; i < ia-1; i++) { for (G4int j = i+1; j < ia; j++) { - G4double r2 = pow(coordinates[i][0] - coordinates[j][0], 2) + - pow(coordinates[i][1]-coordinates[j][1], 2) + - pow(coordinates[i][2] - coordinates[j][2], 2); + G4double r2 = pow(coordinates[i][0] - coordinates[j][0], G4double(2)) + + pow(coordinates[i][1]-coordinates[j][1], G4double(2)) + + pow(coordinates[i][2] - coordinates[j][2], G4double(2)); if (verboseLevel > 2){ G4cout << " i " << i << " j " << j << " r2 " << r2 << G4endl; @@ -1235,7 +1218,7 @@ G4BertiniNucleiModel::initializeCascad(G4InuclNuclei* bullet, G4double u; G4double x; std::vector mom(4); - /// G4bool badp = True; + /// G4bool badp = True; G4int i(0); for (i = 0; i < ia - 1; i++) { diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4BertiniRegionModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniRegionModel.cc new file mode 100644 index 0000000000..4f9a28ff53 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4BertiniRegionModel.cc @@ -0,0 +1,144 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 "G4BertiniRegionModel.hh" +#include "G4HadronicException.hh" + +const G4double G4BertiniRegionModel::radius0 = 1.0E-15; +const G4double G4BertiniRegionModel::BE = 7; + +G4BertiniRegionModel::G4BertiniRegionModel(const G4int numberOfLayers, const G4int A, const G4int Z) +{ + //count the radiuses, densities and fermi momenta with A and Z + G4double oneThird = 1.0/3.0; + G4double r = radius0*pow(G4double(A), G4double(oneThird) ); + + if(numberOfLayers==1){ + radius.push_back(r); + + G4double rho = G4double(A) / (4.0/3.0*pi*pow(r,3)); + density.push_back(rho); + + G4double protonMass = G4Proton::Proton()->GetPDGMass(); + G4double neutronMass = G4Neutron::Neutron()->GetPDGMass(); + G4double protonDensity = G4double(Z) / (4.0/3.0*pi*pow(r,3)); + G4double neutronDensity = G4double(A-Z) / (4.0/3.0*pi*pow(r,3)); + + protonFermiEnergy.push_back(GetFermiEnergy(protonDensity, protonMass)); + neutronFermiEnergy.push_back(GetFermiEnergy(neutronDensity, neutronMass)); + + protonFermiMomentum.push_back(GetFermiMomentum(protonDensity, protonMass)); + neutronFermiMomentum.push_back(GetFermiMomentum(neutronDensity, neutronMass)); + + G4double fermiEP = *protonFermiEnergy.begin(); + G4double fermiEN = *neutronFermiEnergy.begin(); + protonPotentialEnergy.push_back(-(fermiEP + BE)); + neutronPotentialEnergy.push_back(-(fermiEN + BE)); + } + else{ + if(numberOfLayers==3){ + radius.push_back(0.1*r); + radius.push_back(0.2*r); + radius.push_back(0.9*r); + + } + } +} +G4BertiniRegionModel::~G4BertiniRegionModel(){} + +G4double G4BertiniRegionModel::GetDensity(G4double r){ + my_iterator j=density.begin(); + for(my_iterator i=radius.begin(); i 3) { @@ -313,10 +313,10 @@ G4double G4BigBanger::xProbability(G4double x, ekpr = x * x; if(2 * ihalf == ia) { // even A - ekpr *= sqrt(1.0 - x) * pow((1.0 - x), int((3 * ia - 6) / 2)); + ekpr *= sqrt(1.0 - x) * pow((1.0 - x), G4int(G4double(3 * ia - 6) / 2.0)); } else { - ekpr *= pow((1.0 - x), int((3 * ia - 5) / 2)); + ekpr *= pow((1.0 - x), G4int(G4double(3 * ia - 5) / 2.0)); }; }; @@ -329,7 +329,7 @@ G4double G4BigBanger::maxProbability(G4double a) const { G4cout << " >>> G4BigBanger::maxProbability" << G4endl; } - return xProbability(1.0 / (a - 1.0) / 1.5, int(a + 0.1)); + return xProbability(1.0 / (a - 1.0) / 1.5, G4int(a + 0.1)); } G4double G4BigBanger::generateX(G4int ia, diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadParticle.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadParticle.cc index a81e027bb5..e724716432 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4CascadParticle.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadParticle.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4CascadParticle.hh" G4CascadParticle::G4CascadParticle() diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc index 367bbf5d78..3f378372c8 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CascadSpecialFunctions.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4CascadSpecialFunctions.hh" std::pair G4CascadSpecialFunctions::getPositionInEnergyScale2(G4double e) { @@ -100,7 +100,7 @@ G4double G4CascadSpecialFunctions::absorptionCrosSection(G4double e, G4int verboseLevel = 2; if (verboseLevel > 3) { - G4cout << " >>> G4CascadSpecialFunctions::absorptionCrosSection" << G4endl; + G4cout << " >>> G4CascadSpecialFunctions::absorptionCrosSection type:" << type <GetDefinition()->GetParticleName()<<" "<< aTrack.GetDynamicParticle()->GetKineticEnergy()< 3) { G4cout << " >>> G4CascadeInterface::ApplyYourself" << G4endl; }; - theResult.Initialize(aTrack); - G4double eInit = 0.0; G4double eTot = 0.0; G4double sumBaryon = 0.0; @@ -96,11 +96,11 @@ G4VParticleChange* G4CascadeInterface::ApplyYourself(const G4Track& aTrack, // Code momentum and energy. G4double px,py,pz; - px=aTrack.GetDynamicParticle()->Get4Momentum().px() / GeV; - py=aTrack.GetDynamicParticle()->Get4Momentum().py() / GeV; - pz=aTrack.GetDynamicParticle()->Get4Momentum().pz() / GeV; - - G4LorentzVector projectileMomentum = aTrack.GetDynamicParticle()->Get4Momentum(); + 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()); @@ -127,8 +127,6 @@ G4VParticleChange* G4CascadeInterface::ApplyYourself(const G4Track& aTrack, G4double theNucleusA = theNucleus.GetN(); - - if ( !(G4int(theNucleusA) == 1) ) { target = new G4InuclNuclei(targetMomentum, theNucleusA, @@ -165,39 +163,64 @@ G4VParticleChange* G4CascadeInterface::ApplyYourself(const G4Track& aTrack, G4BigBanger* bigb = new G4BigBanger; G4InuclCollider* collider = new G4InuclCollider(colep, inc, noneq, eqil, fiss, bigb); - if (G4int(theNucleusA) == 1) - { - do - { - targetH = new G4InuclElementaryParticle(targetMomentum, 1); + G4int maxTries = 10; // maximum tries for inelastic collision to avoid infinite loop + G4int nTries = 0; // try counter - output = collider->collide(bullet, targetH); - } - while(output.getOutgoingParticles().size()+output.getNucleiFragments().size() < 2.5); + if (G4int(theNucleusA) == 1) { // special treatment for target H(1,1) (proton) - sumBaryon += 1; + targetH = new G4InuclElementaryParticle(targetMomentum, 1); - std::vector bmom = bullet->getMomentum(); - eInit = sqrt(bmom[0] * bmom[0]); - std::vector tmom = targetH->getMomentum(); - eInit += sqrt(tmom[0] * tmom[0]); + G4float cutElastic[8]; + cutElastic[proton ] = 1.0; // GeV + cutElastic[neutron ] = 1.0; + cutElastic[pionPlus ] = 0.6; + cutElastic[pionMinus] = 0.2; + cutElastic[pionZero ] = 0.2; + + if (momentumBullet[3] > cutElastic[bulletType]) { // inelastic collision possible + + do { // we try to create inelastic 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) + ) + ); + + } else { // only elastic collision is energetically possible + output = collider->collide(bullet, targetH); + } + + sumBaryon += 1; + + std::vector bmom = bullet->getMomentum(); + eInit = sqrt(bmom[0] * bmom[0]); + std::vector tmom = targetH->getMomentum(); + eInit += 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 + { + output = collider->collide(bullet, target ); + nTries++; + } while( + (nTries < maxTries) && + (output.getOutgoingParticles().size() + output.getNucleiFragments().size() < 2.5) && + (output.getOutgoingParticles().size()!=0) && + (output.getOutgoingParticles().begin()->type()==bullet->type()) + ); - if (verboseLevel > 2) { - G4cout << "Target: " << G4endl; - targetH->printParticle(); } - } - else - { - do - { - output = collider->collide(bullet, target ); - } - while( output.getOutgoingParticles().size()+output.getNucleiFragments().size() < 2.5 - && output.getOutgoingParticles().begin()->type()==bullet->type() ); - } - if (verboseLevel > 1) { G4cout << " Cascade output: " << G4endl; @@ -205,13 +228,10 @@ G4VParticleChange* G4CascadeInterface::ApplyYourself(const G4Track& aTrack, } // Convert cascade data to use hadronics interface - std::vector nucleiFragments = output.getNucleiFragments(); std::vector particles = output.getOutgoingParticles(); - G4int numSecondaries = nucleiFragments.size()+particles.size(); - theResult.SetStatusChange(fStopAndKill); - theResult.SetNumberOfSecondaries(numSecondaries); + theResult.SetStatusChange(stopAndKill); if (!particles.empty()) { particleIterator ipart; @@ -245,6 +265,7 @@ G4VParticleChange* G4CascadeInterface::ApplyYourself(const G4Track& aTrack, break; case neutron: + #ifdef debug_G4CascadeInterface G4cerr << "neutron "<< counter<<" "<getA()); G4int Z = G4int(ifrag->getZ()); - aIonDef = theTableOfParticles->FindIon(Z,A,0,Z); + aIonDef = theTableOfParticles->FindIon(Z, A, 0, Z); aFragment = new G4DynamicParticle(aIonDef, aMom, eKin); @@ -333,27 +358,24 @@ G4VParticleChange* G4CascadeInterface::ApplyYourself(const G4Track& aTrack, } if (verboseLevel > 2) { - if (sumBaryon != 0) { G4cout << "ERROR: no baryon number conservation, sum of baryons = " << sumBaryon << G4endl; } - if (verboseLevel > 2) { - 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 > 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; } } + return &theResult; } diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4CollisionOutput.cc b/source/processes/hadronic/models/cascade/cascade/src/G4CollisionOutput.cc index 88466f223c..ae897c7a3a 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4CollisionOutput.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4CollisionOutput.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4CollisionOutput.hh" #include "G4ParticleLargerEkin.hh" #include diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc b/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc index 55ff50e9c3..6e54ea33b3 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4ElementaryParticleCollider.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4Collider.hh" #include "G4ElementaryParticleCollider.hh" #include "G4ParticleLargerEkin.hh" diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4EquilibriumEvaporator.cc b/source/processes/hadronic/models/cascade/cascade/src/G4EquilibriumEvaporator.cc index e55185bfe6..0cb7e759e2 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4EquilibriumEvaporator.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4EquilibriumEvaporator.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #define RUN #include "G4EquilibriumEvaporator.hh" @@ -33,7 +34,7 @@ G4EquilibriumEvaporator::G4EquilibriumEvaporator() } } -G4CollisionOutput G4EquilibriumEvaporator::collide(G4InuclParticle* bullet, +G4CollisionOutput G4EquilibriumEvaporator::collide(G4InuclParticle* /*bullet*/, G4InuclParticle* target) { if (verboseLevel > 3) { @@ -267,7 +268,7 @@ G4CollisionOutput G4EquilibriumEvaporator::collide(G4InuclParticle* bullet, FMAX = pow(EEXS, 4); }; - G4double S; + G4double S(0); while (itry < itry_max) { itry++; @@ -594,8 +595,8 @@ G4bool G4EquilibriumEvaporator::goodRemnant(G4double a, G4double G4EquilibriumEvaporator::getQF(G4double x, G4double x2, G4double a, - G4double z, - G4double e) const { + G4double , + G4double ) const { if (verboseLevel > 3) { G4cout << " >>> G4EquilibriumEvaporator::getQF" << G4endl; } @@ -682,9 +683,9 @@ G4double G4EquilibriumEvaporator::getQF(G4double x, return QFF; } -G4double G4EquilibriumEvaporator::getAF(G4double x, - G4double a, - G4double z, +G4double G4EquilibriumEvaporator::getAF(G4double , + G4double , + G4double , G4double e) const { if (verboseLevel > 3) { @@ -700,8 +701,8 @@ G4double G4EquilibriumEvaporator::getAF(G4double x, return AF; } -G4double G4EquilibriumEvaporator::getPARLEVDEN(G4double A, - G4double Z) const { +G4double G4EquilibriumEvaporator::getPARLEVDEN(G4double , + G4double ) const { if (verboseLevel > 3) { G4cout << " >>> G4EquilibriumEvaporator::getPARLEVDEN" << G4endl; @@ -712,7 +713,7 @@ G4double G4EquilibriumEvaporator::getPARLEVDEN(G4double A, return par; } -G4double G4EquilibriumEvaporator::getE0(G4double A) const { +G4double G4EquilibriumEvaporator::getE0(G4double ) const { if (verboseLevel > 3) { G4cout << " >>> G4EquilibriumEvaporator::getE0" << G4endl; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4FissionStore.cc b/source/processes/hadronic/models/cascade/cascade/src/G4FissionStore.cc index 068c974b9c..2c1441d752 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4FissionStore.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4FissionStore.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4FissionStore.hh" #include diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc b/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc index cdbdeb2bae..1085219214 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4Fissioner.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4Fissioner.hh" #include "G4InuclNuclei.hh" #include "G4FissionStore.hh" @@ -33,7 +33,7 @@ G4Fissioner::G4Fissioner() } } -G4CollisionOutput G4Fissioner::collide(G4InuclParticle* bullet, +G4CollisionOutput G4Fissioner::collide(G4InuclParticle* /*bullet*/, G4InuclParticle* target) { if (verboseLevel > 3) { @@ -280,7 +280,7 @@ void G4Fissioner::potentialMinimization(G4double& VP, itry++; G4double S = 0.0; - for (G4int i = 0; i < 2; i++) { + for (i = 0; i < 2; i++) { S += R[i] * (1.0 + AL1[i] + BET1[i] - 0.257 * AL1[i] * BET1[i]); }; R12 = 0.0; @@ -385,10 +385,13 @@ void G4Fissioner::potentialMinimization(G4double& VP, if (DSOL < DSOL1) break; }; + if (verboseLevel > 3) { if (itry == itry_max) G4cout << " maximal number of iterations in potentialMinimization " << G4endl << " A1 " << AF << " Z1 " << ZF << G4endl; + }; + for (i = 0; i < 2; i++) ED[i] = F[i] * BET1[i] * BET1[i] + C[i] * AL1[i] * AL1[i]; VC = D / R12; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc b/source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc index 1d9a68d4b7..04e91aa005 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4IntraNucleiCascader.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #define RUN #include "G4IntraNucleiCascader.hh" @@ -113,8 +114,8 @@ G4CollisionOutput G4IntraNucleiCascader::collide(G4InuclParticle* bullet, output_particles.push_back(all_particles.second[ip]); if (cascad_particles.size() == 0) { // compound nuclei - G4int ia = int(ab + 0.5); - G4int iz = int(zb + 0.5); + G4int ia = G4int(ab + 0.5); + G4int iz = G4int(zb + 0.5); G4int i; for (i = 0; i < ia; i++) { @@ -122,8 +123,8 @@ G4CollisionOutput G4IntraNucleiCascader::collide(G4InuclParticle* bullet, theExitonConfiguration.incrementQP(knd); }; - G4int ihn = int(2.0 * (ab - zb) * inuclRndm() + 0.5); - G4int ihz = int(2.0 * zb * inuclRndm() + 0.5); + G4int ihn = G4int(2.0 * (ab - zb) * inuclRndm() + 0.5); + G4int ihz = G4int(2.0 * zb * inuclRndm() + 0.5); for (i = 0; i < ihn; i++) theExitonConfiguration.incrementHoles(2); @@ -214,7 +215,6 @@ G4CollisionOutput G4IntraNucleiCascader::collide(G4InuclParticle* bullet, particleIterator ipart; for (ipart = output_particles.begin(); ipart != output_particles.end(); ipart++) { - std::vector mom = ipart->getMomentum(); for (G4int j = 0; j < 4; j++) momentum_out[j] += mom[j]; @@ -230,7 +230,6 @@ G4CollisionOutput G4IntraNucleiCascader::collide(G4InuclParticle* bullet, } if (afin > 1.0) { - G4InuclNuclei outgoing_nuclei(afin, zfin); G4double mass = outgoing_nuclei.getMass(); momentum_out[0] += mass; @@ -277,7 +276,6 @@ G4CollisionOutput G4IntraNucleiCascader::collide(G4InuclParticle* bullet, last_particle.setType(1); } else { // neutron - last_particle.setType(2); }; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4InuclCollider.cc b/source/processes/hadronic/models/cascade/cascade/src/G4InuclCollider.cc index df9004ee5a..b1a4c2c5ac 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4InuclCollider.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4InuclCollider.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4InuclCollider.hh" #include "G4InuclElementaryParticle.hh" #include "G4LorentzConvertor.hh" @@ -30,7 +30,7 @@ typedef std::vector::iterator particleIterator; typedef std::vector::iterator nucleiIterator; G4InuclCollider::G4InuclCollider() - : verboseLevel(2) { + : verboseLevel(0) { if (verboseLevel > 3) { G4cout << " >>> G4InuclCollider::G4InuclCollider" << G4endl; @@ -40,7 +40,7 @@ G4InuclCollider::G4InuclCollider() G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, G4InuclParticle* target) { - verboseLevel = 2; + verboseLevel = 0; if (verboseLevel > 3) { G4cout << " >>> G4InuclCollider::collide" << G4endl; } @@ -53,40 +53,36 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, G4InuclElementaryParticle* particle2 = dynamic_cast(target); - if(particle1 && particle2) { // particle + particle + if (particle1 && particle2) { // particle + particle (NOTE: also the h + H(1,1) treated here) if (verboseLevel > 2) { particle1->printParticle(); particle2->printParticle(); } - globalOutput = theElementaryParticleCollider->collide(bullet, target); - } - else { // needs to call all machinery + globalOutput = theElementaryParticleCollider->collide(bullet, target); + + } else { // needs to call all machinery G4LorentzConvertor convertToTargetRestFrame; G4InteractionCase interCase = bulletTargetSetter(bullet, target); G4int intcase = interCase.getInterCase(); - if(intcase > 0) { // ok - + if (intcase > 0) { // ok G4InuclNuclei* ntarget = dynamic_cast(interCase.getTarget()); convertToTargetRestFrame.setTarget(ntarget->getMomentum(), ntarget->getMass()); - G4int btype = 0; G4double ab = 0.0; G4double zb = 0.0; G4double at = ntarget->getA(); G4double zt = ntarget->getZ(); - if(intcase == 1) { // particle with nuclei - + if (intcase == 1) { // particle with nuclei G4InuclElementaryParticle* pbullet = dynamic_cast(interCase.getBullet()); - if(pbullet->photon()) { - + if (pbullet->photon()) { G4cout << " InuclCollider -> can not collide with photon " << G4endl; globalOutput.trivialise(bullet, target); @@ -97,9 +93,8 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, pbullet->getMass()); btype = pbullet->type(); }; - } - else { // nuclei with nuclei + } else { // nuclei with nuclei G4InuclNuclei* nbullet = dynamic_cast(interCase.getBullet()); @@ -115,7 +110,7 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, G4cout << " ekin in trs " << ekin << G4endl; } - if(inelasticInteractionPossible(bullet, target, ekin)) { + if (inelasticInteractionPossible(bullet, target, ekin)) { convertToTargetRestFrame.toTheTargetRestFrame(); if (verboseLevel > 3) { @@ -137,21 +132,16 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, G4int itry = 0; while (bad && itry < itry_max) { - G4CollisionOutput TRFoutput; G4CollisionOutput output; itry++; - if(intcase == 1) { - + if (intcase == 1) { G4InuclElementaryParticle pbullet(bmom, btype); output = theIntraNucleiCascader->collide(&pbullet, &ntarget); - } - else { - + } else { G4InuclNuclei nbullet(ab, zb); - nbullet.setMomentum(bmom); nbullet.setEnergy(); output = theIntraNucleiCascader->collide(&nbullet, &ntarget); @@ -166,32 +156,25 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, // the rest, if any TRFoutput.addOutgoingParticles(output.getOutgoingParticles()); - if(output.numberOfNucleiFragments() == 1) { // there is smth. after - + if (output.numberOfNucleiFragments() == 1) { // there is smth. after G4InuclNuclei cascad_rec_nuclei = output.getNucleiFragments()[0]; - - if(explosion(&cascad_rec_nuclei)) { - + if (explosion(&cascad_rec_nuclei)) { if (verboseLevel > 3) { G4cout << " big bang after cascade " << G4endl; }; output = theBigBanger->collide(0,&cascad_rec_nuclei); TRFoutput.addOutgoingParticles(output.getOutgoingParticles()); - } - else { + } else { output = theNonEquilibriumEvaporator->collide(0, &cascad_rec_nuclei); if (verboseLevel > 3) { G4cout << " After NonEquilibriumEvaporator " << G4endl; - output.printCollisionOutput(); }; TRFoutput.addOutgoingParticles(output.getOutgoingParticles()); - G4InuclNuclei exiton_rec_nuclei = output.getNucleiFragments()[0]; - output = theEquilibriumEvaporator->collide(0, &exiton_rec_nuclei); if (verboseLevel > 3) { @@ -204,20 +187,18 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, TRFoutput.addTargetFragments(output.getNucleiFragments()); }; }; - // convert to the LAB G4bool withReflection = convertToTargetRestFrame.reflectionNeeded(); std::vector particles = TRFoutput.getOutgoingParticles(); - if(!particles.empty()) { + if (!particles.empty()) { particleIterator ipart; for(ipart = particles.begin(); ipart != particles.end(); ipart++) { - std::vector mom = ipart->getMomentum(); - if(withReflection) mom[3] = -mom[3]; + if (withReflection) mom[3] = -mom[3]; mom = convertToTargetRestFrame.rotate(mom); ipart->setMomentum(mom); mom = convertToTargetRestFrame.backToTheLab(ipart->getMomentum()); @@ -228,11 +209,13 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, std::vector nucleus = TRFoutput.getNucleiFragments(); - if(!nucleus.empty()) { + if (!nucleus.empty()) { nucleiIterator inuc; - for(inuc = nucleus.begin(); inuc != nucleus.end(); inuc++) { + + for (inuc = nucleus.begin(); inuc != nucleus.end(); inuc++) { std::vector mom = inuc->getMomentum(); - if(withReflection) mom[3] = -mom[3]; + + if (withReflection) mom[3] = -mom[3]; mom = convertToTargetRestFrame.rotate(mom); inuc->setMomentum(mom); inuc->setEnergy(); @@ -247,8 +230,7 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, if(globalOutput.acceptable()) { return globalOutput; - } - else { + } else { globalOutput.reset(); }; }; @@ -261,8 +243,7 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, globalOutput.trivialise(bullet, target); return globalOutput; - } - else { + } else { if (verboseLevel > 3) { G4cout << " InuclCollider -> inelastic interaction is impossible " << G4endl @@ -272,9 +253,9 @@ G4CollisionOutput G4InuclCollider::collide(G4InuclParticle* bullet, globalOutput.trivialise(bullet, target); return globalOutput; - }; - } - else { + }; + + } else { if (verboseLevel > 3) { G4cout << " InuclCollider -> inter case " << intcase << G4endl; @@ -302,23 +283,20 @@ G4bool G4InuclCollider::inelasticInteractionPossible(G4InuclParticle* bullet, G4double ab; G4double zb; - if(G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + if (G4InuclNuclei* nuclei_target = dynamic_cast(target)) { at = nuclei_target->getA(); zt = nuclei_target->getZ(); - if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { + if (G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { ab = nuclei_bullet->getA(); zb = nuclei_bullet->getZ(); - } - else { - + } else { G4InuclElementaryParticle* particle = dynamic_cast(bullet); ab = 1; zb = particle->getCharge(); }; - } - else { + } else { if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { ab = nuclei_bullet->getA(); zb = nuclei_bullet->getZ(); @@ -328,16 +306,22 @@ G4bool G4InuclCollider::inelasticInteractionPossible(G4InuclParticle* bullet, at = 1; zt = particle->getCharge(); - } - else { + } else { return possible; }; }; - G4double VCOL = coeff * zt * zb / (pow(at, one_third) + pow(ab, one_third)); + // VCOL used for testing if elastic collision possible + G4double VCOL = coeff * zt * zb / (pow(at, one_third) + pow(ab, one_third)); - possible = VCOL < ekin; + // possible = VCOL < ekin; // NOTE: inelastic collision if not true + possible = true; // we force elastic + + if (verboseLevel > 3) { + G4cout << " >>> G4InuclCollider::inelasticInteractionPossible" << G4endl; + G4cout << " VCOL: " << VCOL << " ekin: " << ekin << " inelastic possible: " << possible << G4endl; + } return possible; @@ -352,29 +336,28 @@ G4InteractionCase G4InuclCollider::bulletTargetSetter(G4InuclParticle* bullet, G4InteractionCase interCase; - if(G4InuclNuclei* nuclei_target = dynamic_cast(target)) { - if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { // A + A + if (G4InuclNuclei* nuclei_target = dynamic_cast(target)) { + if (G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { // A + A interCase.setInterCase(2); - if(nuclei_target->getA() >= nuclei_bullet->getA()) { + if (nuclei_target->getA() >= nuclei_bullet->getA()) { interCase.setBulletTarget(bullet, target); - } - else { + } else { interCase.setBulletTarget(target, bullet); }; - } - else { + } else { interCase.setInterCase(1); interCase.setBulletTarget(bullet, target); }; - } - else { - if(G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet)) { - if(G4InuclElementaryParticle* part = - dynamic_cast(target)) { + } else { + G4InuclNuclei* nuclei_bullet = dynamic_cast(bullet); + if (nuclei_bullet) { + G4InuclElementaryParticle* part = + dynamic_cast(target); + if (part) { interCase.setInterCase(1); interCase.setBulletTarget(target, bullet); }; - }; + }; }; return interCase; @@ -394,11 +377,10 @@ G4bool G4InuclCollider::explosion(G4InuclNuclei* target) const { G4double eexs = target->getExitationEnergy(); G4bool explo = true; - if(a > a_cut) { + if (a > a_cut) { explo = false; - } - else { - if(eexs < be_cut * bindingEnergy(a, z)) explo = false; + } else { + if (eexs < be_cut * bindingEnergy(a, z)) explo = false; }; return explo; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4InuclSpecialFunctions.cc b/source/processes/hadronic/models/cascade/cascade/src/G4InuclSpecialFunctions.cc index d73669f75a..2b775ec645 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4InuclSpecialFunctions.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4InuclSpecialFunctions.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4InuclSpecialFunctions.hh" #include "Randomize.hh" diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4LorentzConvertor.cc b/source/processes/hadronic/models/cascade/cascade/src/G4LorentzConvertor.cc index 3351f6267b..f9aec14324 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4LorentzConvertor.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4LorentzConvertor.cc @@ -19,8 +19,9 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4LorentzConvertor.hh" +#include "G4HadronicException.hh" G4LorentzConvertor::G4LorentzConvertor() : verboseLevel(2), degenerated(false) { @@ -287,7 +288,7 @@ G4bool G4LorentzConvertor::reflectionNeeded() const { if(degenerated) return (scm_momentum[3] < 0.0); else { - G4Exception("G4LorentzConvertor::reflectionNeeded - return value undefined"); + throw G4HadronicException(__FILE__, __LINE__, "G4LorentzConvertor::reflectionNeeded - return value undefined"); return false; } }; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4NonEquilibriumEvaporator.cc b/source/processes/hadronic/models/cascade/cascade/src/G4NonEquilibriumEvaporator.cc index 8c0693eef7..5193441487 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4NonEquilibriumEvaporator.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4NonEquilibriumEvaporator.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #define RUN #include @@ -35,7 +36,7 @@ G4NonEquilibriumEvaporator::G4NonEquilibriumEvaporator() } }; -G4CollisionOutput G4NonEquilibriumEvaporator::collide(G4InuclParticle* bullet, +G4CollisionOutput G4NonEquilibriumEvaporator::collide(G4InuclParticle* /*bullet*/, G4InuclParticle* target) { if (verboseLevel > 3) { @@ -459,7 +460,7 @@ G4double G4NonEquilibriumEvaporator::getMatrixElement(G4double A) const { return me; } -G4double G4NonEquilibriumEvaporator::getE0(G4double A) const { +G4double G4NonEquilibriumEvaporator::getE0(G4double ) const { if (verboseLevel > 3) { G4cout << " >>> G4NonEquilibriumEvaporator::getEO" << G4endl; @@ -471,7 +472,7 @@ G4double G4NonEquilibriumEvaporator::getE0(G4double A) const { } G4double G4NonEquilibriumEvaporator::getParLev(G4double A, - G4double Z) const { + G4double ) const { if (verboseLevel > 3) { G4cout << " >>> G4NonEquilibriumEvaporator::getParLev" << G4endl; diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc index c8e1cbd9a2..56afb89745 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/G4NucleiModel.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// //#define CHC_CHECK #include "G4NucleiModel.hh" @@ -81,7 +81,6 @@ void G4NucleiModel::generateModel(G4double a, G4double CU2 = 0.0; if (a > 3.5) { // a > 3 - std::vector ur; G4int icase = 0; @@ -90,6 +89,7 @@ void G4NucleiModel::generateModel(G4double a, // number_of_zones = 6; number_of_zones = 3; ur.push_back(-D1); + for (G4int i = 0; i < number_of_zones; i++) { // G4double y = log((1.0 + D) / alfa6[i] - 1.0); G4double y = log((1.0 + D)/alfa3[i] - 1.0); @@ -97,6 +97,7 @@ void G4NucleiModel::generateModel(G4double a, zone_radii.push_back(CU + AU * y); ur.push_back(y); }; + } else { number_of_zones = 3; icase = 1; @@ -125,14 +126,15 @@ void G4NucleiModel::generateModel(G4double a, if (icase == 0) { v0 = volNumInt(ur[i], ur[i + 1], CU, D1); + } else { v0 = volNumInt1(ur[i], ur[i + 1], CU2); }; v.push_back(v0); tot_vol += v0; - v0 = (i == 0 ? pow(zone_radii[i], 3) : pow(zone_radii[i], 3) - - pow(zone_radii[i - 1], 3)); + v0 = (i == 0 ? pow(zone_radii[i], G4double(3)) : pow(zone_radii[i], G4double(3)) - + pow(zone_radii[i - 1], G4double(3))); v1.push_back(v0); }; @@ -177,15 +179,15 @@ void G4NucleiModel::generateModel(G4double a, zone_potentials.push_back(vp); } else { // a < 4 - number_of_zones = 1; zone_radii.push_back(radForSmall); - G4double vol = 1.0 / piTimes4thirds / pow(zone_radii[0], 3); + G4double vol = 1.0 / piTimes4thirds / pow(zone_radii[0], G4double(3)); std::vector rod; std::vector pf; std::vector vz; G4int i(0); + for (i = 0; i < number_of_zones; i++) { G4double rd = vol; rod.push_back(rd); @@ -219,13 +221,12 @@ void G4NucleiModel::generateModel(G4double a, std::vector vp(number_of_zones, pion_vp_small); zone_potentials.push_back(vp); }; - nuclei_radius = zone_radii[zone_radii.size() - 1]; } G4double G4NucleiModel::volNumInt(G4double r1, G4double r2, - G4double cu, + G4double , G4double d1) const { if (verboseLevel > 3) { @@ -258,13 +259,13 @@ G4double G4NucleiModel::volNumInt(G4double r1, }; fun = 0.5 * fun1 + fi * dr; + if (fabs((fun - fun1) / fun) > epsilon) { jc++; dr1 = dr; fun1 = fun; } else { - break; }; @@ -316,7 +317,6 @@ G4double G4NucleiModel::volNumInt1(G4double r1, fun1 = fun; } else { - break; }; @@ -327,7 +327,7 @@ G4double G4NucleiModel::volNumInt1(G4double r1, if (itry == itry_max) G4cout << " volNumInt1-> n iter " << itry_max << G4endl; } - return pow(cu2, 3) * fun; + return pow(cu2, G4double(3)) * fun; } void G4NucleiModel::printModel() const { @@ -401,11 +401,9 @@ G4InuclElementaryParticle G4NucleiModel::generateQuasiDeutron(G4int type1, dtype = 111; } else if (type1 * type2 == 2) { - dtype = 112; } else if (type1 * type2 == 4) { - dtype = 122; }; @@ -446,12 +444,10 @@ partners G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) r_out = 0.0; } else if (zone == 0) { // particle is outside core - r_in = 0.0; r_out = zone_radii[0]; } else { - r_in = zone_radii[zone - 1]; r_out = zone_radii[zone]; }; @@ -466,7 +462,6 @@ partners G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) return thePartners; } else if (fabs(path) < small) { // just on the bounday - path = 0.0; G4InuclElementaryParticle particle; @@ -474,15 +469,12 @@ partners G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) thePartners.push_back(partner(particle, path)); } else { // normal case - std::vector particles; - G4LorentzConvertor dummy_convertor; dummy_convertor.setBullet(pmom, pmass); for (G4int ip = 1; ip < 3; ip++) { - G4InuclElementaryParticle particle = generateNucleon(ip, zone); dummy_convertor.setTarget(particle.getMomentum(), particle.getMass()); G4double ekin = dummy_convertor.getKinEnergyInTheTRS(); @@ -531,9 +523,9 @@ partners G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) G4double tot_abs_csec = 0.0; G4double abs_sec; - G4double vol = pow(zone_radii[zone], 3); + G4double vol = pow(zone_radii[zone], G4double(3)); - if (zone > 0) vol -= pow(zone_radii[zone - 1], 3); + if (zone > 0) vol -= pow(zone_radii[zone - 1], G4double(3)); vol *= pi4by3; G4double rat = getRatio(1); @@ -551,7 +543,6 @@ partners G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) rat * rat * vol; } else { - abs_sec = 0.0; }; @@ -585,7 +576,6 @@ partners G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) rat1 * rat1 * vol; } else { - abs_sec = 0.0; }; @@ -624,7 +614,6 @@ partners G4NucleiModel::generateInteractionPartners(G4CascadParticle& cparticle) if (apath < path) { // chose the qdeutron G4double sl = inuclRndm() * tot_abs_csec; - G4double as = 0.0; for (G4int i = 0; i < 3; i++) { @@ -690,7 +679,6 @@ std::vector G4NucleiModel::generateParticleFate(G4CascadPartic G4cout << " generateParticleFate-> can not be here " << G4endl; } else { - G4int npart = thePartners.size(); if (npart == 1) { // cparticle is on the next zone entry @@ -715,7 +703,6 @@ std::vector G4NucleiModel::generateParticleFate(G4CascadPartic G4int zone = cparticle.getCurrentZone(); for (G4int i = 0; i < npart - 1; i++) { - if (i > 0) cparticle.updatePosition(old_position); G4InuclElementaryParticle target = thePartners[i].first; @@ -769,7 +756,6 @@ std::vector G4NucleiModel::generateParticleFate(G4CascadPartic current_nucl1 = target.type(); } else { - if (verboseLevel > 2){ G4cout << " good absorption " << G4endl; } @@ -782,7 +768,6 @@ std::vector G4NucleiModel::generateParticleFate(G4CascadPartic protonNumberCurrent -= 1.0; } else { - neutronNumberCurrent -= 1.0; }; @@ -790,7 +775,6 @@ std::vector G4NucleiModel::generateParticleFate(G4CascadPartic protonNumberCurrent -= 1.0; } else if(current_nucl2 == 2) { - neutronNumberCurrent -= 1.0; }; @@ -851,9 +835,7 @@ void G4NucleiModel::boundaryTransition(G4CascadParticle& cparticle) { G4cout << " boundaryTransition-> in zone 0 " << G4endl; } else { - std::vector mom = cparticle.getMomentum(); - std::vector pos = cparticle.getPosition(); G4int type = cparticle.getParticle().type(); @@ -891,7 +873,6 @@ void G4NucleiModel::boundaryTransition(G4CascadParticle& cparticle) { cparticle.incrementReflectionCounter(); } else { // transition - p1r = sqrt(qv); if(pr < 0.0) p1r = -p1r; cparticle.updateZone(next_zone); @@ -917,7 +898,6 @@ G4bool G4NucleiModel::worthToPropagate(const G4CascadParticle& cparticle) const G4bool worth = true; if (cparticle.reflectedNow()) { - G4int zone = cparticle.getCurrentZone(); G4int ip = cparticle.getParticle().type(); @@ -939,7 +919,6 @@ G4double G4NucleiModel::getRatio(G4int ip) const { G4double rat; if (ip == 1) { - if (verboseLevel > 2){ G4cout << " current " << protonNumberCurrent << " inp " << protonNumber << G4endl; } @@ -947,7 +926,6 @@ G4double G4NucleiModel::getRatio(G4int ip) const { rat = protonNumberCurrent / protonNumber; } else { - if (verboseLevel > 2){ G4cout << " current " << neutronNumberCurrent << " inp " << neutronNumber << G4endl; } @@ -967,9 +945,7 @@ G4CascadParticle G4NucleiModel::initializeCascad(G4InuclElementaryParticle* part const G4double large = 1000.0; G4double s1 = sqrt(inuclRndm()); - G4double phi = randomPHI(); - G4double rz = nuclei_radius * s1; std::vector pos(3); @@ -1024,8 +1000,7 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, G4double ben = benb < bent ? bent : benb; if (bullet->getKineticEnergy()/ab > ekin_cut*ben) { - - int itryg = 0; + G4int itryg = 0; while (casparticles.size() == 0 && itryg < itry_max) { itryg++; @@ -1037,7 +1012,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, std::vector > momentums; if (ab < 3.0) { // deutron, simplest case - G4double r = 2.214 - 3.4208 * log(1.0 - 0.981 * inuclRndm()); G4double s = 2.0 * inuclRndm() - 1.0; G4double r1 = r * sqrt(1.0 - s * s); @@ -1050,7 +1024,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, G4int i(0); for (i = 0; i < 3; i++) coord1[i] *= -1; - coordinates.push_back(coord1); G4double p = 0.0; G4bool bad = true; @@ -1062,11 +1035,9 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, if (p * p / (p * p + 2079.36) / (p * p + 2079.36) > 1.2023e-4 * inuclRndm() && p * r > 312.0) bad = false; - }; if (itry == itry_max) - if (verboseLevel > 2){ G4cout << " deutron bullet generation-> itry = " << itry_max << G4endl; } @@ -1076,7 +1047,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, if (verboseLevel > 2){ G4cout << " p nuc " << p << G4endl; } - std::vector mom(4); std::pair COS_SIN = randomCOS_SIN(); G4double FI = randomPHI(); @@ -1090,7 +1060,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, momentums.push_back(mom); } else { - G4int ia = int(ab + 0.5); std::vector coord1(3); @@ -1100,11 +1069,8 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, G4int itry = 0; if (ab < 4.0) { // a == 3 - while (badco && itry < itry_max) { - if (itry > 0) coordinates.resize(0); - itry++; G4int i(0); @@ -1136,7 +1102,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, coord1[1] * coord1[1] + coord1[2] * coord1[2]) << G4endl; } - break; }; }; @@ -1151,7 +1116,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, for (i = 0; i < 3; i++) coord1[i] = - coordinates[0][i] - coordinates[1][i]; - if (verboseLevel > 2) { G4cout << " 3 r " << sqrt(coord1[0] * coord1[0] + coord1[1] * coord1[1] + @@ -1163,12 +1127,10 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, G4bool large_dist = false; for (i = 0; i < 2; i++) { - for (G4int j = i+1; j < 3; j++) { - - G4double r2 = pow(coordinates[i][0] - coordinates[j][0], 2) + - pow(coordinates[i][1] - coordinates[j][1], 2) + - pow(coordinates[i][2] - coordinates[j][2], 2); + G4double r2 = pow(coordinates[i][0] - coordinates[j][0], G4double(2)) + + pow(coordinates[i][1] - coordinates[j][1], G4double(2)) + + pow(coordinates[i][2] - coordinates[j][2], G4double(2)); if (verboseLevel > 2) { G4cout << " i " << i << " j " << j << " r2 " << r2 << G4endl; @@ -1182,7 +1144,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, }; if (large_dist) break; - }; if(!large_dist) badco = false; @@ -1190,7 +1151,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, }; } else { // a >= 4 - G4double b = 3./(ab - 2.0); G4double b1 = 1.0 - b / 2.0; G4double u = b1 + sqrt(b1 * b1 + b); @@ -1258,13 +1218,12 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, G4bool large_dist = false; for (i = 0; i < ia-1; i++) { - for (G4int j = i+1; j < ia; j++) { - G4double r2 = pow(coordinates[i][0] - coordinates[j][0], 2) + + G4double r2 = pow(coordinates[i][0] - coordinates[j][0], G4double(2)) + - pow(coordinates[i][1]-coordinates[j][1], 2) + - pow(coordinates[i][2] - coordinates[j][2], 2); + pow(coordinates[i][1]-coordinates[j][1], G4double(2)) + + pow(coordinates[i][2] - coordinates[j][2], G4double(2)); if (verboseLevel > 2){ G4cout << " i " << i << " j " << j << " r2 " << r2 << G4endl; @@ -1275,15 +1234,12 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, break; }; - }; if (large_dist) break; - }; if (!large_dist) badco = false; - }; }; @@ -1295,7 +1251,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, (casparticles, particles); } else { // momentums - G4double p; G4double u; G4double x; @@ -1371,10 +1326,10 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, coordinates[i][2] += global_pos[2]; }; - // all nucleons at rest + // all nucleons at rest std::vector raw_particles; - G4int ia = int(ab + 0.5); - G4int iz = int(zb + 0.5); + G4int ia = G4int(ab + 0.5); + G4int iz = G4int(zb + 0.5); for (G4int ipa = 0; ipa < ia; ipa++) { G4int knd = ipa < iz ? 1 : 2; @@ -1413,9 +1368,7 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, G4double t2 = t0 - sqrt(det); if(fabs(t1) <= fabs(t2)) { - if(t1 > 0.0) { - if(coordinates[ip][2] + mom[3] * t1 / pmod <= 0.0) tr = t1; }; @@ -1425,19 +1378,14 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, }; } else { - if(t2 > 0.0) { if(coordinates[ip][2] + mom[3] * t2 / pmod <= 0.0) tr = t2; - }; if(tr < 0.0 && t1 > 0.0) { - if(coordinates[ip][2] + mom[3] * t1 / pmod <= 0.0) tr = t1; - }; - }; }; @@ -1451,7 +1399,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, number_of_zones, large)); } else { - particles.push_back(raw_particles[ip]); }; }; @@ -1471,7 +1418,6 @@ G4NucleiModel::initializeCascad(G4InuclNuclei* bullet, G4int ip(0); for(ip = 0; ip < G4int(casparticles.size()); ip++) casparticles[ip].print(); - G4cout << " outgoing particles: " << particles.size() << G4endl; for(ip = 0; ip < G4int(particles.size()); ip++) particles[ip].printParticle(); diff --git a/source/processes/hadronic/models/cascade/cascade/src/G4RegionModel.cc b/source/processes/hadronic/models/cascade/cascade/src/G4RegionModel.cc new file mode 100644 index 0000000000..9376bbd800 --- /dev/null +++ b/source/processes/hadronic/models/cascade/cascade/src/G4RegionModel.cc @@ -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. * +// ******************************************************************** +// +#include "G4RegionModel.hh" +#include "G4HadronicException.hh" + +const G4double G4RegionModel::radius0 = 1.0E-15; +const G4double G4RegionModel::BE = 7; + +G4RegionModel::G4RegionModel(const G4int numberOfLayers, const G4int A, const G4int Z) +{ + //count the radiuses, densities and fermi momenta with A and Z + G4double oneThird = 1.0/3.0; + G4double r = radius0*pow(G4double(A), G4double(oneThird)); + + if(numberOfLayers==1){ + radius.push_back(r); + + G4double rho = G4double(A) / (4.0/3.0*pi*pow(r,G4double(3))); + density.push_back(rho); + + G4double protonMass = G4Proton::Proton()->GetPDGMass(); + G4double neutronMass = G4Neutron::Neutron()->GetPDGMass(); + G4double protonDensity = G4double(Z) / (4.0/3.0*pi*pow(r,G4double(3))); + G4double neutronDensity = G4double(A-Z) / (4.0/3.0*pi*pow(r,G4double(3))); + + protonFermiEnergy.push_back(GetFermiEnergy(protonDensity, protonMass)); + neutronFermiEnergy.push_back(GetFermiEnergy(neutronDensity, neutronMass)); + + protonFermiMomentum.push_back(GetFermiMomentum(protonDensity, protonMass)); + neutronFermiMomentum.push_back(GetFermiMomentum(neutronDensity, neutronMass)); + + G4double fermiEP = *protonFermiEnergy.begin(); + G4double fermiEN = *neutronFermiEnergy.begin(); + protonPotentialEnergy.push_back(-(fermiEP + BE)); + neutronPotentialEnergy.push_back(-(fermiEN + BE)); + } + else{ + if(numberOfLayers==3){ + radius.push_back(0.1*r); + radius.push_back(0.2*r); + radius.push_back(0.9*r); + + } + } +} + +G4RegionModel::~G4RegionModel(){} + +G4double G4RegionModel::GetDensity(G4double r){ + my_iterator j=density.begin(); + for(my_iterator i=radius.begin(); i diff --git a/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc index e4c3ace0c4..e6727eb46a 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4InuclSpecialFunctions.hh" G4double G4InuclSpecialFunctions::bindingEnergyKummel(G4double A, diff --git a/source/processes/hadronic/models/cascade/cascade/src/nucleiLevelDensity.cc b/source/processes/hadronic/models/cascade/cascade/src/nucleiLevelDensity.cc index 60f47f21c5..d447267e53 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/nucleiLevelDensity.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/nucleiLevelDensity.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4InuclSpecialFunctions.hh" G4double G4InuclSpecialFunctions::nucleiLevelDensity(G4double a) { diff --git a/source/processes/hadronic/models/cascade/cascade/src/paraMaker.cc b/source/processes/hadronic/models/cascade/cascade/src/paraMaker.cc index 498a6c67b1..96ee4261bb 100644 --- a/source/processes/hadronic/models/cascade/cascade/src/paraMaker.cc +++ b/source/processes/hadronic/models/cascade/cascade/src/paraMaker.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4InuclSpecialFunctions.hh" std::pair, std::vector > G4InuclSpecialFunctions::paraMaker(G4double Z) { diff --git a/source/processes/hadronic/models/cascade/evaporation/GNUmakefile b/source/processes/hadronic/models/cascade/evaporation/GNUmakefile index 134a5991b6..b18de7cd8f 100644 --- a/source/processes/hadronic/models/cascade/evaporation/GNUmakefile +++ b/source/processes/hadronic/models/cascade/evaporation/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2001/11/16 14:22:18 hpw Exp $ +# $Id: GNUmakefile,v 1.6 2003/10/08 14:53:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -21,9 +21,9 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include/ \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include/ \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include/ \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include/ \ + -I$(G4BASE)/processes/hadronic/models/management/include/ \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include/ \ + -I$(G4BASE)/processes/hadronic/models/util/include/ \ -I$(G4BASE)/processes/hadronic/models/cascade/utils/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc index 297441bb47..6a3680ea96 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporation.cc @@ -159,7 +159,7 @@ G4FragmentVector * G4BertiniEvaporation::BreakItUp( G4LayeredNucleus & nucleus ) } pSelectedChannel = ( *iChannel ); if ( iChannel == channelVector.end() ) - G4Exception( "G4BertiniEvaporation : Error while sampling evaporation particle" ); + throw G4HadronicException(__FILE__, __LINE__, "G4BertiniEvaporation : Error while sampling evaporation particle" ); if ( verboseLevel >= 4 ) G4cout << "G4BertiniEvaporation : particle " << pSelectedChannel->getName() << " selected " << G4endl; @@ -336,7 +336,7 @@ void G4BertiniEvaporation::splitBe8( const G4double E, G4double w; const G4double Be8DecayEnergy = 0.093 * MeV; - if ( E <= 0 ) G4Exception( "G4BertiniEvaporation : excitation energy < 0 " ); + if ( E <= 0 ) throw G4HadronicException(__FILE__, __LINE__, "G4BertiniEvaporation : excitation energy < 0 " ); if ( verboseLevel >= 4 ) G4cout << " Be8 split to 2 x He4" << G4endl; kineticEnergy = 0.5 * ( E + Be8DecayEnergy ); diff --git a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc index 229aa6c126..e309eaefd4 100644 --- a/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc +++ b/source/processes/hadronic/models/cascade/evaporation/src/G4BertiniEvaporationChannel.cc @@ -248,7 +248,7 @@ G4double G4BertiniEvaporationChannel::pairingEnergyProtons(G4int Z) 0.00000000E+00, 0.60999995E+00, 0.00000000E+00, 0.41999996E+00, 0.00000000E+00, 0.35999995E+00, 0.00000000E+00, 0.40999997E+00, 0.00000000E+00, 0.48999995E+00 }; - if ( Z>130 ) G4Exception( " G4BertiniEvaporationChannel: pairing energy for protons called with too large Z " ); + if ( Z>130 ) throw G4HadronicException(__FILE__, __LINE__, " G4BertiniEvaporationChannel: pairing energy for protons called with too large Z " ); return table[ Z-1 ]*MeV; } @@ -300,7 +300,7 @@ G4double G4BertiniEvaporationChannel::pairingEnergyNeutrons(G4int N) 0.00000000E+00, 0.39999998E+00, 0.00000000E+00, 0.39999998E+00, 0.00000000E+00, 0.39999998E+00, 0.00000000E+00, 0.39999998E+00, 0.00000000E+00, 0.39999998E+00 }; - if ( N > 200 ) G4Exception( " G4BertiniEvaporationChannel: pairing energy for neutrons called with too large Z " ); + if ( N > 200 ) throw G4HadronicException(__FILE__, __LINE__, " G4BertiniEvaporationChannel: pairing energy for neutrons called with too large Z " ); return table[ N-1 ]*MeV; } @@ -340,7 +340,7 @@ G4double G4BertiniEvaporationChannel::cameronShellCorrectionP(G4int Z) -0.50599995E+01, -0.67699995E+01, -0.74099998E+01, -0.91799994E+01, -0.10160000E+02, -0.11120000E+02, -0.97599993E+01, -0.92299995E+01, -0.79599991E+01, -0.76499996E+01, }; - if ( Z > 130 ) G4Exception( " G4BertiniEvaporationChannel: shell correction for protons called with too large Z " ); + if ( Z > 130 ) throw G4HadronicException(__FILE__, __LINE__, " G4BertiniEvaporationChannel: shell correction for protons called with too large Z " ); return table[ Z-1 ]*MeV; } @@ -394,7 +394,7 @@ G4double G4BertiniEvaporationChannel::cameronShellCorrectionN(G4int N) 0.72899990E+01, 0.73499994E+01, 0.79499998E+01, 0.76699991E+01, 0.81599998E+01, 0.78299990E+01, 0.83099995E+01, 0.80099993E+01, 0.85299997E+01, 0.82699995E+01 }; - if ( N > 130 ) G4Exception( " G4BertiniEvaporationChannel: shell correction for protons called with too large N " ); + if ( N > 130 ) throw G4HadronicException(__FILE__, __LINE__, " G4BertiniEvaporationChannel: shell correction for protons called with too large N " ); return table[ N-1 ]*MeV; } diff --git a/source/processes/hadronic/models/cascade/pre_compound/GNUmakefile b/source/processes/hadronic/models/cascade/pre_compound/GNUmakefile deleted file mode 100644 index 9b56aafaa7..0000000000 --- a/source/processes/hadronic/models/cascade/pre_compound/GNUmakefile +++ /dev/null @@ -1,37 +0,0 @@ -# $Id: GNUmakefile,v 1.3 2003/06/18 13:24:26 gcosmo Exp $ -# ----------------------------------------------------------- -# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. -# ----------------------------------------------------------- - -name := G4hadronic_cascade_precompound - -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)/track/include \ - -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/processes/management/include \ - -I$(G4BASE)/processes/hadronic/management/include/ \ - -I$(G4BASE)/processes/hadronic/util/include \ - -I$(G4BASE)/processes/hadronic/processes/include \ - -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/generator/management/include \ - -I$(G4BASE)/particles/management/include \ - -I$(G4BASE)/particles/leptons/include \ - -I$(G4BASE)/particles/bosons/include \ - -I$(G4BASE)/particles/hadrons/mesons/include \ - -I$(G4BASE)/particles/hadrons/barions/include \ - -I$(G4BASE)/particles/hadrons/ions/include \ - -I$(G4BASE)/materials/include - -include $(G4INSTALL)/config/common.gmk - diff --git a/source/processes/hadronic/models/cascade/pre_compound/include/G4PreEquilibrium.hh b/source/processes/hadronic/models/cascade/pre_compound/include/G4PreEquilibrium.hh deleted file mode 100644 index 5e056d138e..0000000000 --- a/source/processes/hadronic/models/cascade/pre_compound/include/G4PreEquilibrium.hh +++ /dev/null @@ -1,479 +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: G4PreEquilibrium.hh,v 1.10 2003/06/16 17:03:58 gunter Exp $ - // GEANT4 tag $Name: geant4-05-02 $ - // - // Hadronic Process: Pre-equilibrium HETC - // Joseph L. Chuma, TRIUMF, 24-Mar-2000 - -#ifndef G4PREEQUILIBRIUM -#define G4PREEQUILIBRIUM - -#include "globals.hh" -#include "G4DynamicParticle.hh" -#include "G4Nucleus.hh" -#include - - class G4PreEquilibrium - { - private: - struct EXITON - { - G4int protons; - G4int neutrons; - G4int hols; // not sure what these are - }; - - struct MASTRUCT - { - G4ThreeVector momentum; - G4double array[6]; - }; - - struct PARZS - { - G4int particleType; - G4double energy; - G4double angle1; - G4double angle2; - G4double what; - G4double charge; - }; - - struct IPSTRUCT - { - G4int proton; - G4int ip1; - G4int ip2; - G4int nuclearZone; - G4int ip4; // values from 0 to N - }; - -#define G4Vector std::vector - typedef G4Vector< G4DynamicParticle* > DPvector; - typedef G4Vector< G4double > Dvector; - typedef G4Vector< G4int > Ivector; - typedef G4Vector< MASTRUCT > MAvector; - typedef G4Vector< PARZS > PARZvector; - typedef G4Vector< IPSTRUCT > IPvector; - - public: - G4PreEquilibrium( G4Nucleus *aNucleus ) - : theNucleus(aNucleus) - {} - - ~G4PreEquilibrium() - {} - - G4PreEquilibrium operator=( const G4PreEquilibrium & ); - - G4PreEquilibrium( const G4PreEquilibrium & ); - - private: - void mashnk( G4int &, const G4double, const G4double, const G4double, - const G4double, const G4double, const G4double, const G4double ); - - G4double cemgeo( const G4int, const G4int ); - - G4double bf( const G4double, const G4double, const G4double ); - - G4double quadraticInterpolation( const G4double, const G4double *, - const G4double *, const G4int ); - - G4double massDefect( const G4double, const G4double ) const; - - G4double gamagu( const G4int ); - - G4double tkin( const G4int, const G4double ); - - void transitionRates( const G4double, const G4double, - G4double &, G4double &, G4double & ); - - G4double tkinm1( const G4int, const G4double, const G4double ); - - G4double barfit( const G4double, const G4double, const G4int ); - - G4bool cascem( G4ThreeVector ); - - void cascem1( G4ThreeVector, MASTRUCT &, IPSTRUCT &, G4int & ); - - G4bool pointe( MASTRUCT &, IPSTRUCT &, G4double *, G4int *, - G4ThreeVector, G4double, G4double, G4double, - G4double, G4double, const G4double ); - - G4double geometricalParticlePath( const MASTRUCT, const IPSTRUCT ); - - G4bool refrac( const G4int, MASTRUCT &, IPSTRUCT & ) const; - - G4double wopt( const G4double, const G4double, const G4int ); - - void typint( MASTRUCT &, IPSTRUCT &, G4double *, G4int *, G4ThreeVector, - G4double, G4double, G4double, G4double, G4double, G4int, G4int & ); - - G4int elasticScattering( const G4ThreeVector, const G4double, const G4double, const MASTRUCT, - const IPSTRUCT, const G4int *, const G4int, const G4int, - const G4int, const G4int, const G4int, const G4int ); - - G4bool inelasticScattering( MASTRUCT &, IPSTRUCT &, G4int *, G4int, G4int, G4int, - G4int, G4int, G4ThreeVector, G4double, G4double, G4int, G4int ); - - G4double wim( const G4int, const MASTRUCT, const IPSTRUCT ); - - void pauliPrinciple( MASTRUCT &, IPSTRUCT &, G4ThreeVector, G4int, G4int, const G4int ); - - void absorption( const MASTRUCT, const IPSTRUCT, G4double *, G4int, G4int &, G4ThreeVector ); - - void chargeInAbsorption( const G4int, const G4int, G4int &, G4int & ); - - void momentaCalc( const MASTRUCT, const G4ThreeVector, const G4double, G4ThreeVector, - G4ThreeVector, const G4double, const G4double, const G4double ); - - void partnerSelection( const MASTRUCT, const IPSTRUCT, G4double *, G4int * ); - - void chinel( IPSTRUCT &, const G4int, const G4int, const G4int, const G4int, - const G4int, const G4int, const G4double, const G4int, G4int * ); - - void direction( G4ThreeVector, const G4double, const G4double, const G4int, - const G4int, const G4int, const MASTRUCT, G4int &, const G4int ); - - G4int coefficientTypeA( const G4int, const G4int, const G4int ); - - G4bool vmnsp( const MASTRUCT, const IPSTRUCT, const G4double, const G4int, - G4int &, const G4int, const G4int, const G4double ); - - G4double secondaryParticleMomentum( const G4int, const G4double ); - - G4int coefficientTypeB( const G4int, const G4int, const G4int ); - - void statisticalModel( const G4double, const G4ThreeVector, const MASTRUCT, - const G4int *, const G4int ); - - void isocem( const G4double, const G4ThreeVector, const G4double, const MASTRUCT, - const G4int *, const G4int ); - - G4ThreeVector cms( const G4ThreeVector, const G4ThreeVector, const G4double ) const; - - void bertcem( const G4int, const G4int ); - - G4double fintfis( const G4double, const G4double, const G4double, const G4double ); - - G4double fints2( G4double, G4double, G4double, G4double ); - - G4double erupcem( DPvector &, DPvector &, DPvector &, DPvector &, DPvector &, DPvector & ); - - void precof(); - - G4double arfaf( G4double * ); - - G4double fam( const G4double, const G4double, const G4double ); - - G4double gameqf( const G4int, const G4double, const G4double, const G4double, const G4double ); - - G4double poten( const G4int, const IPSTRUCT ) const; - - G4double cinema( const G4ThreeVector, const G4ThreeVector, G4ThreeVector &, - G4double &, G4double &, G4double &, G4double &, const G4double ) const; - - G4ThreeVector rotation( const G4ThreeVector, const G4ThreeVector, const G4ThreeVector ) const; - - G4double crossSectionInterp( const G4double, const G4int ); - - G4double sigmat( const G4int, const G4int, const G4int, - const G4int, const G4int, const G4double ); - - void slqek( G4int &, G4int &, G4int &, G4int &, G4int &, - const G4int, const G4int, const G4int, - const G4int, const G4int, const G4int, - const G4int, const G4int ); - - G4double costa( const G4int, const G4double ); - - G4double cosex( const G4int, const G4double, const G4double ); - - G4double cosel( const G4int, const G4int, const G4int, - const G4double, const G4double ); - - void lpoly( const G4double, const G4int, G4double * ); - - inline void SetINDI( const G4bool v ) - { indi = v; } - - inline G4bool GetINDI() const - { return indi; } - - inline void SetING( const G4int i ) - { ing = i; } - - inline G4int GetING() const - { return ing; } - - inline void SetCM0( const G4double v ) - { cm0 = v; } - - inline G4double GetCM0() const - { return cm0; } - - inline void SetT0( const G4double v ) - { t0 = v; } - - inline G4double GetT0() const - { return t0; } - - inline void SetT1( const G4double v ) - { t1 = v; } - - inline G4double GetT1() const - { return t1; } - - inline void SetT2( const G4double v ) - { t2 = v; } - - inline G4double GetT2() const - { return t2; } - - inline void SetME0( const G4double v ) - { me0 = v; } - - inline G4double GetME0() const - { return me0; } - - inline void SetMQ0( const G4double v ) - { mq0 = v; } - - inline G4double GetMQ0() const - { return mq0; } - - inline void SetA( const G4double v ) - { a = v; } - - inline G4double GetA() const - { return a; } - - inline void SetZ( const G4double v ) - { z = v; } - - inline G4double GetZ() const - { return z; } - - inline G4double GetUP() const - { return up; } - - inline void SetUP( const G4double v ) - { up = v; } - - inline void SetU( const G4double v ) - { u = v; } - - inline G4double GetU() const - { return u; } - - inline G4double GetT1Y( const G4int i ) const - { return t1y[i]; } - - inline G4double GetT2XY( const G4int i ) const - { return t2xy[i]; } - - inline G4double shell( const G4double a, const G4double z ) - { - // Cameron (Can.J.Phys.35(1957)1021) shell and pairing corrections - // - return t1y[int(z)-1] + t2xy[int(a-z)-1]; - } - - inline void SetRBIG( const G4int i, const G4double v ) - { rbig[i] = v; } - - inline G4double GetRBIG( const G4int i ) const - { return rbig[i]; } - - inline void SetR0( const G4double v ) - { r0 = v; } - - inline G4double GetR0() const - { return r0; } - - inline G4double SetBN( const G4double v ) - { bn = v; } - - inline G4double GetBN() const - { return bn; } - - inline void SetAC( const G4double v ) - { ac = v; } - - inline G4double GetAC() const - { return ac; } - - inline G4int GetN0() const - { return n0; } - - inline void SetN0( const G4int v ) - { n0 = v; } - - inline G4int GetH0() const - { return h0; } - - inline void SetH0( const G4int v ) - { h0 = v; } - - inline G4int GetP0() const - { return p0; } - - inline void SetP0( const G4int v ) - { p0 = v; } - - inline G4int GetPZ0() const - { return pz0; } - - inline void SetPZ0( const G4int v ) - { pz0 = v; } - - inline G4ThreeVector GetLXYZ() const - { return lxyz; } - - inline void SetLXYZ( const G4ThreeVector v ) - { lxyz = v; } - - inline void SetWF( const G4double v ) - { wf = v; } - - inline G4double GetWF() const - { return wf; } - - inline void SetANG1( const G4int i, const G4int j, const G4int k, const G4double v ) - { ang1[i][j][k] = v; } - - inline G4double GetANG1( const G4int i, const G4int j, const G4int k ) const - { return ang1[i][j][k]; } - - inline void SetANG2( const G4int i, const G4int j, const G4int k, const G4double v ) - { ang2[i][j][k] = v; } - - inline G4double GetANG2( const G4int i, const G4int j, const G4int k ) const - { return ang2[i][j][k]; } - - inline void SetEPART( const G4int i, const G4int j, const G4double v ) - { epart[i][j] = v; } - - inline G4double GetEPART( const G4int i, const G4int j ) const - { return epart[i][j]; } - - inline void SetHEPART( const G4int i, const G4int j, const G4double v ) - { hepart[i][j] = v; } - - inline G4double GetHEPART( const G4int i, const G4int j ) const - { return hepart[i][j]; } - - inline void SetNHIST( const G4int v ) - { nhist = v; } - - inline G4double GetNHIST() const - { return nhist; } - - inline G4double GetZ_FCOMON( const G4int i, const G4int j ) const - { return z_fcomon[i][j]; } - - inline G4double GetA_FCOMON( const G4int i, const G4int j ) const - { return a_fcomon[i][j]; } - - private: - static G4double t1y[130]; - static G4double t2xy[200]; - - static G4double oneThird; - static G4double twoThirds; - static G4double fourThirds; - - EXITON exitons; - - G4ThreeVector lxyz; - - Dvector rbig; - Dvector af; - Dvector ngen; - Dvector gb; - Dvector alj; - Dvector afj; - Dvector zfj; - Dvector rj; - Dvector vj; - Dvector bj; - Dvector r0j; - Dvector rsm; - Dvector rhon; - Dvector rhop; - Dvector tfp; - Dvector tfn; - - G4Vector< Dvector* > spt; - - MAvector pmemo; - PARZvector parz; - IPvector imemo; - - G4Nucleus *theNucleus; - - G4bool indi; - - G4int n0; - G4int nhist; - G4int h0; - G4int p0; - G4int pz0; - G4int KTOT; - G4int ing; - - G4double up; // excitation energy before evaporation - G4double ap; // atomic weight before evaporation - G4double zp; // atomic number before evaporation - G4double u; // excitation energy after evaporation - G4double a; // atomic weight after evaporation - G4double z; // atomic number after evaporation - - G4double wf; - G4double ac; - G4double exn; - G4double r0; - G4double cm0; - G4double t0; - G4double t1; - G4double t2; - G4double mq0; - G4double me0; - G4double bn; - G4double wam; - G4double aNucl; - G4double zNucl; - - G4double a_fcomon[10][17]; - G4double z_fcomon[10][17]; - - G4double epart[100][2]; - G4double hepart[100][4]; - - G4double ang1[100][3][2]; - G4double ang2[100][3][4]; - }; - -#endif diff --git a/source/processes/hadronic/models/cascade/pre_compound/src/G4PreEquilibrium.cc b/source/processes/hadronic/models/cascade/pre_compound/src/G4PreEquilibrium.cc deleted file mode 100644 index 6da24219be..0000000000 --- a/source/processes/hadronic/models/cascade/pre_compound/src/G4PreEquilibrium.cc +++ /dev/null @@ -1,3610 +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: G4PreEquilibrium.cc,v 1.9 2001/07/11 10:03:55 gunter Exp $ - // GEANT4 tag $Name: geant4-05-02 $ - // - // Hadronic Process: Pre-equilibrium HETC - // Joseph L. Chuma, TRIUMF, 24-Mar-2000 - -#include "G4PreEquilibrium.hh" -#include "Randomize.hh" - - G4double oneThird = 1./3.; - G4double twoThirds = 2./3.; - G4double fourThirds = 4./3.; - - // S(Z)+P(Z) from Tab. 1 from A.G.W. Cameron, Canad. J. Phys., 35(1957)1021 - // or Delta M(Z) from Tab. 97 of book [1] - G4double G4PreEquilibrium::t1y[130] = - { 20.80, 15.80, 21.00, 16.80, 19.80, - 16.50, 18.80, 16.50, 18.50, 17.20, - 18.26, 15.05, 16.01, 12.04, 13.27, - 11.09, 12.17, 10.26, 11.04, 8.41, - 9.79, 7.36, 8.15, 5.63, 5.88, - 3.17, 3.32, 0.82, 1.83, 0.97, - 2.33, 1.27, 2.92, 1.61, 2.91, - 1.35, 2.40, 0.89, 1.74, 0.36, - 0.95, -0.65, -0.04, -1.73, -0.96, - -2.87, -2.05, -4.05, -3.40, -5.72, - -3.75, -4.13, -2.42, -2.85, -1.01, - -1.33, 0.54, -0.02, 1.74, 0.75, - 2.24, 1.00, 1.98, 0.79, 1.54, - 0.39, 1.08, 0.00, 0.78, -0.35, - 0.58, -0.55, 0.59, -0.61, 0.59, - -0.35, 0.32, -0.96, -0.52, -2.08, - -2.46, -3.64, -1.55, -0.96, 0.97, - 0.88, 2.37, 1.75, 2.72, 1.90, - 2.55, 1.46, 1.93, 0.86, 1.17, - 0.08, 0.39, -0.76, -0.39, -1.51, - -1.17, -2.36, -1.95, -3.06, -2.62, - -3.55, -2.95, -3.75, -3.07, -3.79, - -3.06, -3.77, -3.05, -3.78, -3.12, - -3.90, -3.35, -4.24, -3.86, -4.92, - -5.06, -6.77, -7.41, -9.18, -10.16, - -11.12, -9.76, -9.23, -7.96, -7.65 }; - - // S(N)+P(N) from Tab. 1 from A.G.W. Cameron, Canad. J. Phys., 35(1957)1021 - // or Delta M(N) from Tab. 97 of book [1] - G4double G4PreEquilibrium::t2xy[] = - { -8.40, -12.90, -8.00, 11.90, -9.20, - -12.50, -10.80, -13.60, -11.20, -12.20, - -12.81, -15.40, -13.07, -15.80, -13.81, - -14.98, -12.63, -13.76, -11.37, -12.38, - -9.23, -9.65, -7.64, -9.17, -8.05, - -9.72, -8.87, -10.76, -8.64, -8.89, - -6.60, -7.13, -4.77, -5.33, -3.06, - -3.79, -1.72, -2.79, -0.93, -2.19, - -0.52, -1.90, -0.45, -2.20, -1.22, - -3.07, -2.42, -4.37, -3.94, -6.08, - -4.49, -4.50, -3.14, -2.93, -1.04, - -1.36, 0.69, 0.21, 2.11, 1.33, - 3.29, 2.46, 4.30, 3.32, 4.79, - 3.62, 4.97, 3.64, 4.63, 3.07, - 4.06, 2.49, 3.30, 1.46, 2.06, - 0.51, 0.74, -1.18, -1.26, -3.54, - -3.97, -5.26, -4.18, -3.71, -2.10, - -1.70, -0.08, -0.18, 0.94, 0.27, - 1.13, 0.08, 0.91, -0.31, 0.49, - -0.78, 0.08, -1.15, -0.23, -1.41, - -0.42, -1.55, -0.55, -1.66, -0.66, - -1.73, -0.75, -1.74, -0.78, -1.69, - -0.78, -1.60, -0.75, -1.46, -0.67, - -1.26, -0.51, -1.04, -0.53, -1.84, - -2.42, -4.52, -4.76, -6.33, -6.76, - -7.81, -5.80, -5.37, -3.63, -3.35, - -1.75, -1.88, -0.61, -0.90, 0.09, - -0.32, 0.55, -0.13, 0.70, -0.06, - 0.49, -0.20, 0.40, -0.22, 0.36, - -0.09, 0.58, 0.12, 0.75, 0.15, - 0.70, 0.17, 1.11, 0.89, 1.85, - 1.62, 2.54, 2.29, 3.20, 2.91, - 3.84, 3.53, 4.48, 4.15, 5.12, - 4.78, 5.75, 5.39, 6.31, 5.91, - 6.87, 6.33, 7.13, 6.61, 7.30, - 6.31, 6.27, 4.83, 4.49, 2.85, - 2.32, 0.58, -0.11, -0.98, 0.81, - 1.77, 3.37, 4.13, 5.60, 6.15, - 7.29, 7.35, 7.95, 7.67, 8.16, - 7.83, 8.31, 8.01, 8.53, 8.27 - }; - - G4double G4PreEquilibrium::cemgeo( const G4int nuclideTypeNumber, const G4int mediumNumber ) - { - // this routine was called by input - bertcem( nuclideTypeNumber, mediumNumber ); - return GetA_FCOMON(nuclideTypeNumber,mediumNumber); - } - - G4double G4PreEquilibrium::erupcem( DPvector &neutrons, DPvector &protons, DPvector &deuterons, - DPvector &tritons, DPvector &he3s, DPvector &he4s ) - { - precof(); - - G4ParticleDefinition *aNeutron = G4Neutron::Neutron(); - G4ParticleDefinition *aProton = G4Proton::Proton(); - G4ParticleDefinition *aDeuteron = G4Deuteron::Deuteron(); - G4ParticleDefinition *aTriton = G4Triton::Triton(); - G4ParticleDefinition *aHe3 = G4He3::He3(); - //G4ParticleDefinition *aHe4 = G4He4::He4(); - - G4double protonMass = aProton->GetPDGMass()/MeV; - G4double neutronMass = aNeutron->GetPDGMass()/MeV; - G4double deuteronMass = aDeuteron->GetPDGMass()/MeV; - G4double tritonMass = aTriton->GetPDGMass()/MeV; - G4double he3Mass = aHe3->GetPDGMass()/MeV; - //G4double he4Mass = aHe4->GetPDGMass()/MeV; - - G4int numberOfProtons = G4int(theNucleus->GetZ()+0.5); - G4int numberOfNucleons = G4int(theNucleus->GetN()+0.5); - G4int numberOfNeutrons = numberOfNucleons - numberOfProtons; - G4double nuclearMass = protonMass*numberOfProtons + neutronMass*numberOfNeutrons; - G4double P = theNucleus->GetMomentum().mag()/MeV; - - G4double totalEnergy = sqrt( P*P + nuclearMass*nuclearMass ); - - G4double kineticEnergyAfterEvaporation = totalEnergy - nuclearMass; - - for( G4int k = 0; k < KTOT; ++k ) - { - Dvector sptK( *(spt[k]) ); - G4double sint = sptK[0]; - G4double cost = sptK[1]; - G4double sinf = sin( parz[k].angle2 ); - G4double cosf = cos( parz[k].angle2 ); - G4double alc = sint*cosf; - G4double bec = sint*sinf; - G4double gac = cost; - G4double energy = parz[k].energy*GeV/MeV; - G4DynamicParticle *dp = new G4DynamicParticle(); - G4ThreeVector m; - switch ( parz[k].particleType ) - { - case 1: // neutrons - dp->SetDefinition( aNeutron ); - dp->SetKineticEnergy( energy-neutronMass ); - m.setX( alc ); m.setY( bec ); m.setZ( gac ); - dp->SetMomentum( m ); - neutrons.push_back( dp ); - break; - case 2: // protons - dp->SetDefinition( aProton ); - dp->SetKineticEnergy( energy-protonMass ); - m.setX( alc ); m.setY( bec ); m.setZ( gac ); - dp->SetMomentum( m ); - protons.push_back( dp ); - break; - case 3: // deuterons - dp->SetDefinition( aDeuteron ); - dp->SetKineticEnergy( energy-deuteronMass ); - m.setX( alc ); m.setY( bec ); m.setZ( gac ); - dp->SetMomentum( m ); - deuterons.push_back( dp ); - break; - case 4: // tritons - dp->SetDefinition( aTriton ); - dp->SetKineticEnergy( energy-tritonMass ); - m.setX( alc ); m.setY( bec ); m.setZ( gac ); - dp->SetMomentum( m ); - tritons.push_back( dp ); - break; - case 5: // he-3 - dp->SetDefinition( aHe3 ); - dp->SetKineticEnergy( energy-he3Mass ); - m.setX( alc ); m.setY( bec ); m.setZ( gac ); - dp->SetMomentum( m ); - he3s.push_back( dp ); - break; - //case 6: // he-4 - //dp->SetDefinition( aHe4 ); - //dp->SetKineticEnergy( energy-he4Mass ); - //m.setX( alc ); m.setY( bec ); m.setZ( gac ); - //dp->SetMomentum( m ); - //dp->SetMomentum( alc, bec, gac ); - //he4s.push_back( dp ); - //break; - } - } - return kineticEnergyAfterEvaporation; - } - - void G4PreEquilibrium::precof() - { - const G4double RM = 1.5; - - G4double pevapj[6], gj[7], ami[6]; - G4int i, j; - SetR0( RM ); - G4double wt = 1.0; - - G4double protonMass = G4Proton::Proton()->GetPDGMass()/GeV; - G4double neutronMass = G4Neutron::Neutron()->GetPDGMass()/GeV; - G4int numberOfProtons = G4int(theNucleus->GetZ()+0.5); - G4int numberOfNucleons = G4int(theNucleus->GetN()+0.5); - G4int numberOfNeutrons = numberOfNucleons - numberOfProtons; - G4double nuclearMass = protonMass*numberOfProtons + neutronMass*numberOfNeutrons; - G4double P = theNucleus->GetMomentum().mag()/GeV; - - G4double totalEnergy = sqrt( P*P + nuclearMass*nuclearMass ); - G4double kineticEnergy = (totalEnergy-nuclearMass)*GeV/MeV; - - G4ThreeVector momentum = theNucleus->GetMomentum() * (1/totalEnergy*GeV); - - G4ThreeVector uglmom( GetLXYZ() ); - - KTOT = 0; - G4double pz = GetPZ0(); - G4int n = GetN0(); - G4double p = GetP0(); - G4double h = GetH0(); - theNucleus->AddExcitationEnergy( -kineticEnergy ); - // - if( theNucleus->GetEnergyDeposit() < 3 || - theNucleus->GetN() <= 4 || - theNucleus->GetZ() <= 2 )return; - // - G4double dl = massDefect( theNucleus->GetN(), theNucleus->GetZ() ); - // - // auxiliary code for nuclear data extraction - // - const G4double z1[5] = { 10.00, 20.00, 30.00, 50.00, 70.00 }; // Z:Tab.96 - const G4double a1[5] = { 0.42, 0.58, 0.68, 0.77, 0.80 }; // Kp -//- - const G4double c1[5] = { 0.50, 0.28, 0.20, 0.15, 0.10 }; // Cp -//- - const G4double a2[5] = { 0.68, 0.82, 0.91, 0.97, 0.98 }; // Ka -//- - const G4double c2[5] = { 0.10, 0.10, 0.10, 0.08, 0.06 }; // Ca -//- - // - // particle b: n p d t He-3 He-4 - const G4double aj[6] = { 1.0, 1.0, 2.0, 3.0, 3.0, 4.0 }; // A(b) - const G4double zj[6] = { 0.0, 1.0, 1.0, 1.0, 2.0, 2.0 }; // Z(b) - const G4double dlm[6] = { 8.368, 7.569, 13.835, 15.835, 15.817, 3.607 }; // q(b) - // - G4double cc[6], vk[6]; - alj.reserve(6); - gb.reserve(6); - afj.reserve(7); - zfj.reserve(6); - rj.reserve(7); - vj.reserve(6); - bj.reserve(6); - r0j.reserve(6); - for( G4int k = 0; k < 100; ++k ) - { - cc[0] = 0; - cc[1] = quadraticInterpolation( theNucleus->GetZ(), z1, c1, 4 ); - cc[5] = quadraticInterpolation( theNucleus->GetZ(), z1, c2, 4 ); - cc[2] = cc[1]/2; - cc[3] = cc[1]/3; - cc[4] = cc[5]*fourThirds; - // - vk[0] = 0; - vk[1] = quadraticInterpolation( theNucleus->GetZ(), z1, a1, 4 ); - vk[5] = quadraticInterpolation( theNucleus->GetZ(), z1, a2, 4 ); - vk[2] = vk[1] + 0.06; - vk[3] = vk[1] + 0.12; - vk[4] = vk[5] - 0.06; - // - G4double um2 = uglmom.mag2(); - G4double un = theNucleus->GetN() - theNucleus->GetZ(); - G4double ue = theNucleus->GetEnergyDeposit()- - 12*((1-theNucleus->GetZ()+2*(G4int(theNucleus->GetZ()+0.5)/2))+ - (1-un+2*(G4int(un)/2)))/sqrt(theNucleus->GetN()); - if( ue <= 0.1 )return; - G4double am = fam( theNucleus->GetN(), theNucleus->GetZ(), ue ); - afj.erase( afj.begin(), afj.end() ); - zfj.erase( zfj.begin(), zfj.end() ); - rj.erase( rj.begin(), rj.end() ); - bj.erase( bj.begin(), bj.end() ); - vj.erase( vj.begin(), vj.end() ); - for( i = 0; i < 6; ++i ) - { - G4double naj = theNucleus->GetN() - aj[i]; - G4double zzj = theNucleus->GetZ() - zj[i]; - afj.push_back( naj ); - zfj.push_back( zzj ); - G4double pairj = (1-zzj+2*(G4int(zzj)/2)) + (1-(naj-zzj)+2*(G4int(naj-zzj)/2)); - pevapj[i] = 12 * pairj / sqrt(naj); - G4double uej = theNucleus->GetEnergyDeposit() - pevapj[i]; - // - if( uej <= 1 )rj.push_back( 0.0 ); - else - { - ami[i] = fam( naj, zzj, uej ); - // - // calculation of coulomb energy - // - G4double tmp = vk[i]*1.44/RM*zj[i]*zzj/ - (pow(aj[i],oneThird)+pow(naj,oneThird))* - (1-theNucleus->GetEnergyDeposit()/(81*theNucleus->GetN()*am)); - tmp < 0 ? vj.push_back( 0.0 ) : vj.push_back( tmp ); - // - bj.push_back( massDefect(naj,zzj) - (dl-dlm[i]) ); - rj.push_back( uej-bj[i]-vj[i] ); - } - } - afj.push_back( theNucleus->GetN() ); - // - r0j.erase( r0j.begin(), r0j.end() ); - r0j.push_back( 0.76+2.2/pow(afj[1],oneThird) ); - SetBN( (2.12/pow(afj[1],twoThirds)-0.05)/r0j[0] ); - for( i = 1; i < 6; ++i )r0j.push_back( 1+cc[i] ); - G4double ep1, ep2, ep3; - G4bool ind; - G4ThreeVector p12; - G4int lm; - LABEL: - if( n < sqrt(1.19*am*theNucleus->GetN()*theNucleus->GetEnergyDeposit()+0.5) ) - { - // pre-equilibrium emission - // - while ( p < 1 ) - { - ++p; - ++h; - n += 2; - } - exn = p + h; - alj.erase( alj.begin(), alj.end() ); - alj.push_back( p*(exn-1) ); - alj.push_back( alj[0] ); - alj.push_back( alj[1]*(p-1)*(exn-2)/2 ); - alj.push_back( alj[2]*(p-2)*(exn-3)/6 ); - alj.push_back( alj[3] ); - alj.push_back( alj[4]*(p-3)*(exn-4)/12 ); - // - G4double nucleusN = theNucleus->GetN(); - gb.erase( gb.begin(), gb.end() ); - gb.push_back( 1. ); - gb.push_back( 1. ); - gb.push_back( 16/nucleusN ); - gb.push_back( 243/nucleusN/nucleusN ); - gb.push_back( gb[3] ); - gb.push_back( 4096/nucleusN/nucleusN/nucleusN ); - for( i = 0; i < 6; ++i ) - { - if( p <= aj[i] - 0.01 )gj[i] = 0; - else - { - if( p+h <= aj[i] + 0.01 )gj[i] = 0; - else - { - if( pz <= zj[i] - 0.01 )gj[i] = 0; - else - { - if( rj[i] )gj[i] = 0; - else - { - SetAC( 0.585*ami[i] ); - gj[i] = gamagu(i); - } - } - } - } - } - G4double g = 0; - for( i = 0; i < 6; ++i )g += gj[i]; - if( n <= 0 ) - { - // write(16,20) - // 20 format(20x,20hnumber of exitons = 0) - return; - } - SetAC( 0.595*am ); - G4double c1, c2, c3; - transitionRates( p, h, c1, c2, c3 ); - G4double c = c1+c2+c3; - G4double b1 = G4UniformRand(); - G4double p2 = 250*pow(G4UniformRand(),oneThird); - G4double ct2 = 1-2*G4UniformRand(); - G4double st2 = sqrt(1-ct2*ct2); - G4double fi2 = 2*pi*G4UniformRand(); - p12.setX( p2*st2*cos(fi2)+theNucleus->GetMomentum().x()*GeV/p ); - p12.setY( p2*st2*sin(fi2)+theNucleus->GetMomentum().y()*GeV/p ); - p12.setZ( p2*ct2+theNucleus->GetMomentum().z()*GeV/p ); - if( b1 > g/(c+g) ) - { - G4double ran = G4UniformRand(); - if( ran <= c1/c ) - { - ++p; ++h; ++(++n); - if( G4UniformRand() <= theNucleus->GetZ()/theNucleus->GetN() )++pz; - } - else - { - if( ran <= (c2+c1)/c ) - { - --(--n); --p; --h; - if( pz > 0 && G4UniformRand() <= theNucleus->GetZ()/theNucleus->GetN() )--pz; - } - } - goto LABEL; - } - for( j = 1; j < 6; ++j )gj[j] += gj[j-1]; - G4double b = g*G4UniformRand(); - for( j = 0; j < 6; ++j ) - { - if( b <= gj[j] ) - { - lm = j; - break; - } - } - ep1 = tkinm1( lm, p, h ); - ep2 = zj[lm]; - ep3 = 940*aj[lm]; - ind = true; - } - else - { - // equilibrium emission - // - rj.push_back( 0.0 ); - G4double per = arfaf( ami ); - for( i = 0; i < 7; ++i ) - { - rj[i] <= 0 ? gj[i] = 0 : gj[i] = gameqf( i, cc[i], per, ami[i], RM ); - } - G4double gt = 0; - for( i = 0; i < 7; ++i )gt += gj[i]; - if( gt <= 0 )return; - wt *= 1-gj[7]/gt; - SetWF( 1-wt ); - for( j = 1; j < 7; ++j )gj[j] += gj[j-1]; - G4double b = G4UniformRand()*gt; - for( j = 1; j <= 7; ++j ) - { - if( b < gj[j] ) - { - lm = j; - break; - } - } - if( lm == 7 )return; - ep1 = tkin( lm, am ); - ep2 = zj[lm]; - ep3 = 940*aj[lm]; - ind = false; - } - ++KTOT; - p -= aj[lm]; - n -= G4int(aj[lm]); - pz -= ep2; - - parz[k].charge = ep2; - parz[k].particleType = lm; - if( !ind )parz[k].what = 1000.0; - else parz[k].what = 100.0; - - theNucleus->SetParameters( afj[lm], zfj[lm] ); - theNucleus->AddExcitationEnergy( - -theNucleus->GetEnergyDeposit()+rj[lm]-ep1+vj[lm]+pevapj[lm] ); - G4double tl, cot, st, cf, sf; - G4ThreeVector pl; - Dvector *vtmp = new Dvector( 5 ); - vtmp->insert( vtmp->begin()+3, ep2 ); - vtmp->insert( vtmp->begin()+4, ep3/GeV ); - if( ind && (momentum.mag2()/GeV > 0.0000001) ) - { - G4double cx = sqrt(G4UniformRand()); - G4double sx = sqrt(1-cx*cx); - G4double fi = 2*pi*G4UniformRand(); - G4double pm = sqrt(ep1*(ep1+2*ep3)); - pl.setX( pm*sx*cos(fi) ); - pl.setY( pm*sx*sin(fi) ); - pl.setZ( pm*cx ); - G4ThreeVector ps = rotation( p12, momentum, pl ); - tl = cinema( ps, momentum, pl, cot, st, cf, sf, ep3 ); - vtmp->insert( vtmp->begin(), st ); - vtmp->insert( vtmp->begin()+1, cot ); - vtmp->insert( vtmp->begin()+2, tl/GeV ); - } - else - { - G4double angl[4]; - // - // choose isotropic distributed angle for particle emitted - // - angl[0] = 1-2*G4UniformRand(); - angl[3] = sqrt(1-angl[0]*angl[0]); - G4double f = 2*pi*G4UniformRand(); - angl[1] = sin(f); - angl[2] = cos(f); - // - G4double pm = sqrt(ep1*(ep1+2*ep3)); - G4ThreeVector ps( pm*angl[3]*angl[2], pm*angl[3]*angl[1], pm*angl[0] ); - if( momentum.mag2() <= 0.0001 ) - { - vtmp->insert( vtmp->begin(), angl[3] ); - vtmp->insert( vtmp->begin()+1, angl[0] ); - vtmp->insert( vtmp->begin()+2, ep1/GeV ); - cot = angl[0]; - st = angl[2]; - cf = angl[1]; - sf = angl[0]; - pl = ps; - } - else - { - tl = cinema( ps, momentum, pl, cot, st, cf, sf, ep3 ); - vtmp->insert( vtmp->begin(), st ); - vtmp->insert( vtmp->begin()+1, cot ); - vtmp->insert( vtmp->begin()+2, tl/GeV ); - } - } - spt.push_back( vtmp ); - - theNucleus->GetMomentum().setX( theNucleus->GetMomentum().x()-pl.x()*GeV ); - theNucleus->GetMomentum().setY( theNucleus->GetMomentum().y()-pl.y()*GeV ); - theNucleus->GetMomentum().setZ( theNucleus->GetMomentum().z()-pl.z()*GeV ); - - numberOfProtons = G4int(theNucleus->GetZ()+0.5); - numberOfNucleons = G4int(theNucleus->GetN()+0.5); - numberOfNeutrons = numberOfNucleons - numberOfProtons; - nuclearMass = protonMass*numberOfProtons + neutronMass*numberOfNeutrons; - P = theNucleus->GetMomentum().mag()/GeV; - totalEnergy = sqrt( P*P + nuclearMass*nuclearMass ); - momentum = theNucleus->GetMomentum() * (1/totalEnergy/GeV); - - parz[k].angle1 = atan2(st,cot); - G4double fi1 = atan2(sf,cf); - if( fi1 < 0 )fi1 = pi-fi1; - parz[k].angle2 = fi1; - parz[k].energy = (*vtmp)[2]; - G4double almax = 0.219327*RM*(pow(theNucleus->GetN(),oneThird)+pow(aj[lm],oneThird))* - sqrt(theNucleus->GetN()*aj[lm]*(ep1-vj[lm])/(theNucleus->GetN()+aj[lm])); - G4double alp = almax * sqrt(G4UniformRand()); - uglmom.setX( uglmom.x() - alp*st*cf ); - uglmom.setY( uglmom.y() - alp*st*sf ); - uglmom.setZ( uglmom.z() - alp*cot ); - } - // write(16,49)u,a,z - // format('massiv spt exceeded after evaporation',40x,'u=',f10.5,' a=',f5.1,' z=',f4.1) - return; - } - - void G4PreEquilibrium::mashnk( G4int &icem, const G4double anucc, const G4double znucc, - const G4double ecno, const G4double tipno, - const G4double ehipi, const G4double ehin, - const G4double ehicut ) - { - // this routine is called by cascade - // - // ehicem is the value of max energy for which siginb is calculated for ifircl > 0 - // siginb is inelastic cross-section for either bert or bertcem - // - // icem is trigger for use of bertcem of s.mashik cem code. - // if imash == 0, bertcem is not used and icem = 0 - // if imash == 1, ehicem is max energy for which icem = 1 and bertcem is called - // - icem = 0; - G4double ehicem; // ehicem is in common/callcm/ in cascad.f - G4int mat, icm; // mat is in COMON.F, icm is in common/callcm/ in cascad.f - G4double ehic[7]; // ehic is in common/callcm/ in cascad.f - G4int imash = 0, ihecc = 0; - - if( imash == 0 ) // imash is in common/callcm/ in cascad.f - { - if( ihecc == 0 ) // ihecc in in common/hecc1/ in cascad.f - { - icem = 0; - ehicem = ehicut; - icm = icem; - ehic[mat-1] = ehicem; - return; - } - else if( ihecc == 1 ) - { - icem = 0; - ehicem = 10000; - icm = icem; - ehic[mat-1] = ehicem; - return; - } - } - if( anucc < 14 ) ehicem = 0; - else if( anucc < 17 )ehicem = 1000; - else - { - // icem = 0 for oxygen and nitrogen if ecno > ehicem - // ehicem can be set by trial and error for this case - // - // next statement is tentative - // - tipno <= 1 ? ehicem = ehin : ehicem = ehipi; - // - // icem = 0 for energies > ehicem, which can be set at will - // may want to set it lower if ihecc == 1 - // - ecno <= ehicem ? icem = 1 : icem = 0; // if icem == 1, bertcem is called - } - icm = icem; - ehic[mat-1] = ehicem; - return; - } - - G4double G4PreEquilibrium::bf( const G4double a, const G4double z, const G4double e ) - { - const G4double xx1[51] = - { 0.00, 0.02, 0.04, 0.06, 0.08, 0.10, 0.12, 0.14, 0.16, 0.18, - 0.20, 0.22, 0.24, 0.26, 0.28, 0.30, 0.32, 0.34, 0.36, 0.38, - 0.40, 0.42, 0.44, 0.46, 0.48, 0.50, 0.52, 0.54, 0.56, 0.58, - 0.60, 0.62, 0.64, 0.66, 0.68, 0.70, 0.72, 0.74, 0.76, 0.78, - 0.80, 0.82, 0.84, 0.86, 0.88, 0.90, 0.92, 0.94, 0.96, 0.98, 1.0 }; - // - // b(x) from Krappe, Nix & Sierk 1979 for a/r0 = 0.5508 - // - const G4double yy2[51] = - { 0.1495, 0.1475, 0.1450, 0.1425, 0.1400, 0.1375, 0.1350, 0.1328, 0.1298, 0.1270, - 0.1245, 0.1215, 0.1185, 0.1150, 0.1118, 0.1083, 0.1040, 0.0997, 0.0949, 0.0900, - 0.0849, 0.0795, 0.0739, 0.0685, 0.0630, 0.0578, 0.0520, 0.0460, 0.0408, 0.0342, - 0.0289, 0.0236, 0.0188, 0.0146, 0.0111, 0.0082, 0.0059, 0.0043, 0.0029, 0.0020, - 0.0017, 0.0012, 0.0010, 0.0007, 0.0004, 0.0002, 0.0001, 0.0000, 0.0000, 0.0000, 0.0 }; - // - const G4double r0m = 1.2; - // - // Yukawa-plus-exponential macroscopic model of Krappe, Nix & Sierk (1979) - // - const G4double gamma = 3; - const G4double a2 = 21.7; - const G4double a3 = 0.7322; - G4double a3rt = pow(a,oneThird); - G4double sufnuc = a2*(1-gamma*(1-2*z/a)*(1-2*z/a))*a3rt*a3rt; - G4double x = 0.5*a3*z*z/a3rt/sufnuc; - if ( x >= 1 )return 0.0; - // - // Cameron (Can.J.Phys.35(1957)1021) shell and pairing corr. for g.s. mass - // calculate saddle-point shell and/or pairing corrections - // - return sufnuc*quadraticInterpolation( x, xx1, yy2, 50 ) - - GetT1Y(G4int(z)-1) - GetT2XY(G4int(a-z)-1); - } - - G4double G4PreEquilibrium::quadraticInterpolation( const G4double u, const G4double *e, - const G4double *f, const G4int n ) - { - G4double x1, x2, x3, y1, y2, y3; - if( u <= e[0] ) - { - x1 = e[0]; - x2 = e[1]; - x3 = e[2]; - y1 = f[0]; - y2 = f[1]; - y3 = f[2]; - } - else - { - if( u >= e[n-1] ) - { - if( u > e[n] )return f[n]; - x1 = e[n-2]; - x2 = e[n-1]; - x3 = e[n]; - y1 = f[n-2]; - y2 = f[n-1]; - y3 = f[n]; - } - else - { - for( G4int j = 0; j < n; ++j ) - { - if( u < e[j] ) - { - x1 = e[j-1]; - x2 = e[j]; - x3 = e[j+1]; - y1 = f[j-1]; - y2 = f[j]; - y3 = f[j+1]; - break; - } - } - } - } - return y1*(u-x2)*(u-x3)/((x1-x2)*(x1-x3)) + y2*(u-x1)*(u-x3)/((x2-x1)*(x2-x3)) + - y3*(u-x1)*(u-x2)/((x3-x1)*(x3-x2)); - } - - G4double G4PreEquilibrium::massDefect( const G4double x, const G4double y ) const - { - // calculation of mass defect - // - G4double c = pow(x,oneThird); - G4double d = pow(x,twoThirds); - G4double e = pow(x,fourThirds); - G4double f = pow(y,fourThirds); - G4double a = 1 - 0.62025/d; - G4double b = (x-2*y)/x; - G4double es = (25.8357-44.2355*b*b)*a*a*d; - G4double ec = 0.779*y*(y-1)/c*( 1 - 1.5849/d + 1.2273/x + 1.5772/e ); - G4double ealfa = -0.4323*f/c*( 1 + 0.49597/x - 0.57811/c - 0.14518/d ); - G4double edob = 8.367*x + 31.4506*x*b*b - 0.783*y - 17.0354*x; - G4int i = G4int(x); - G4int j = G4int(y); - return es + ec + ealfa + edob + GetT1Y(j-1) + GetT2XY(i-j-1); - } - - G4double G4PreEquilibrium::gamagu( const G4int j ) - { - // particle b: n p d t He-3 He-4 - const G4double aj[6] = { 1.0, 1.0, 2.0, 3.0, 3.0, 4.0 }; // A(b) - const G4double w[8] = { 0.1012285363, 0.2223810345, 0.3137066459, 0.3626837834, - 0.3626837834, 0.3137066459, 0.2223810345, 0.1012285363 }; - const G4double fiks[8] = { 0.9602898565, 0.7966664774, 0.5255324099, 0.1834346425, - -0.1834346425, -0.5255324099, -0.7966664774, -0.9602898565 }; - // - G4double a = 0; - if( j > 0 )a = vj[j]; - G4double b = theNucleus->GetEnergyDeposit() - bj[j]; - G4double y = 0; - for( G4int k = 0; k < 8; ++k ) - { - G4double e = 0.5*( (b-a)*fiks[k] + b + a ); - G4double result; - if( j > 1 ) - result = gb[j]*r0j[j]*0.104/ - (GetR0()*pow(afj[j],oneThird)*sqrt(aj[j]*theNucleus->GetEnergyDeposit()))* - alj[j]*((e-vj[j])/theNucleus->GetEnergyDeposit())* - pow(abs((e+bj[j])/theNucleus->GetEnergyDeposit()),aj[j]-1.5)* - pow(abs(1-(e+bj[j])/theNucleus->GetEnergyDeposit()),exn-aj[j]-1); - else if( j == 1 ) - result = 0.000234*GetR0()*GetR0()*pow(afj[1],twoThirds)*r0j[1]* - alj[1]/(GetAC()*theNucleus->GetEnergyDeposit()*afj[1])* - pow(1-(e+bj[1])/theNucleus->GetEnergyDeposit(),exn-2)*(e-vj[1]); - else // j must be 0 - result = 0.000234*GetR0()*GetR0()*pow(afj[0],twoThirds)*r0j[0]* - alj[0]/(GetAC()*theNucleus->GetEnergyDeposit()*afj[0])* - pow(1-(e+bj[0])/theNucleus->GetEnergyDeposit(),exn-2)*(e+GetBN()); - y += w[k]*(b-a)*result/2; - } - return y; - } - - G4double G4PreEquilibrium::tkin( const G4int i, const G4double am ) - { - // - // kinetic energy for particles in equilibrium decay - // - G4double rk, frk; - G4double rb = 4*am*afj[i]*rj[i]; - do - { - G4double b1 = G4UniformRand(); - rk = 1 + 1/sqrt(rb)*log(b1+(1-b1)*exp(-sqrt(rb))); - if( i==0 ) - { - G4double q1 = 1 + (2.12/pow(afj[0],twoThirds)-0.05)/ - (0.76+2.2/pow(afj[0],oneThird))/rj[0]; - frk = 3*sqrt(3.)/2/(q1*sqrt(q1))*(q1*rk-rk*rk*rk); - } - else - { - frk = 3*sqrt(3.)/2*(rk-rk*rk*rk); - } - } while( G4UniformRand() > frk ); - return rj[i]*(1-rk*rk) + vj[i]; - } - - void G4PreEquilibrium::transitionRates( const G4double p, const G4double h, - G4double &c1, G4double &c2, G4double &c3 ) - { - // calculation of transition rates (was trncem) - // - G4double est = 1.6*45+theNucleus->GetEnergyDeposit()/(p+h); - G4double b = sqrt(2*est/940); - G4double sf = (10.63/(b*b)-29.93/b+42.9+34.10/(b*b)-82.20/b+82.2)/2; - G4double t; - if( 45/est <= 0.5 ) - t = 1-7*45/est/5; - else - t = 1-7*45/est/5+0.4*45/est*pow(2-1/45*est,2.5); - c1 = 0.00332*sf*t*sqrt(est)/pow(1.2+1/(4.7*b),3); - c2 = (c1*p*h*(p+h+1)*(p+h-2))/(GetAC()*theNucleus->GetN()*theNucleus->GetEnergyDeposit()* - GetAC()*theNucleus->GetN()*theNucleus->GetEnergyDeposit()); - c3 = c1*(p+h+1)*(p*(p+1)+4*p*h+h*(h-1))/((p+h)*GetAC()*theNucleus->GetN()* - theNucleus->GetEnergyDeposit()); - if( c2 < 0 )c2 = 0; - return; - } - - G4double G4PreEquilibrium::tkinm1( const G4int j, const G4double p, const G4double h ) - { - // kinetic energy for particles in pre-equilibrium decay - // - // particle b: n p d t He-3 He-4 - const G4double aj[6] = { 1.0, 1.0, 2.0, 3.0, 3.0, 4.0 }; // A(b) - // - G4double e, e1, dj, t3; - j == 0 ? - dj = (2.12/pow(afj[0],twoThirds)-0.05)/(0.76+2.2/pow(afj[0],oneThird)) : - dj = -vj[j]; - G4double t = p + h - aj[j] - 1; - G4double r2 = rj[j]; - G4double r1 = r2 + vj[j]; - if( j < 2 ) - { - if( t <= -0.01 )return r1; - if( t <= 0.1 ) - { - G4double result; - j <= 1 ? - result = -dj+sqrt(dj*dj+(G4UniformRand()*(r2*r2+2*dj*r2))) : - result = sqrt(G4UniformRand())*r2+vj[j]; - return result; - } - e1 = (r1-dj*t)/(t+1); - do - { - e = vj[j] + G4UniformRand()*r2; - t3 = (e+dj)/(e1+dj)*pow(abs((r1-e)/(r1-e1)),t); - } - while ( G4UniformRand() > t3 ); - return e; - } - if( t <= -0.1 )return r1; - if( t <= 0.1 ) - { - do - { - e = vj[j] + G4UniformRand()*r2; - t3 = pow( abs((theNucleus->GetEnergyDeposit()-r1+e)/ - (theNucleus->GetEnergyDeposit()-r1+r1)), aj[j]-1.5 ) * - (e+dj)/(r1+dj); - } - while ( G4UniformRand() > t3 ); - return e; - } - G4double es = theNucleus->GetEnergyDeposit()*(aj[j]-0.5) + - (theNucleus->GetEnergyDeposit()-r2)*(p+h-2.5); - e1 = (es+sqrt(es*es-(theNucleus->GetEnergyDeposit()-r2)*(aj[j]-1.5)* - (p+h-1.5)*4.*theNucleus->GetEnergyDeposit()))/ - ((p+h-1.5)*2)-theNucleus->GetEnergyDeposit()+r1; - do - { - e = vj[j] + G4UniformRand()*r2; - if( e1+0.001 > r1 )break; - t3 = pow( abs((theNucleus->GetEnergyDeposit()-r1+e)/ - (theNucleus->GetEnergyDeposit()-r1+e1)), aj[j]-1.5 ) * - (e+dj)/(e1+dj) * pow( abs((r1-e)/(r1-e1)), t ); - } - while ( G4UniformRand() > t3 ); - return e; - } - - void G4PreEquilibrium::lpoly( const G4double x, const G4int n, G4double *pl ) - { - // This subroutine calculates the ordinary Legendre polynomials of - // order 0 to n-1 of argument x and stores them in the vector pl. - // They are calculated by recursion relation from the first two polynomials. - // - // written by A. J. Sierk LANL T-9 February,1984 - // - pl[0] = 1; - pl[1] = x; - for( G4int i = 2; i < n; ++i )pl[i] = ((2*i-3)*x*pl[i-1]-(i-2)*pl[i-2])/(i-1); - return; - } - - G4double G4PreEquilibrium::barfit( const G4double a, const G4double z, const G4int il ) - { - // This subroutine returns the barrier height, bfis. - // Arguments: z, the atomic number - // a, the atomic mass number - // il, the angular momentum in units of h-bar, - // where h-bar is Plancks constant divided by 2*pi - // - // The fission barrier for il = 0 is calculated from a 7th order - // fit in two variables to 638 calculated fission barriers for z values - // from 20 to 110. These 638 barriers are fit with an rms deviation of - // 0.10 MeV by this 49-parameter function. - // If barfit is called with (z,a) values outside the range of the fit, - // the barrier height is set to 0 - // - // For il values not equal to zero, the values of il at which the barrier - // is 80% and 20% of the il = 0 value are respectively fit to 20-parameter - // functions of z and a, over a more restricted range of a values, than is - // the case for il = 0. The value of il where the barrier disappears, lmax, - // for 61 nuclei, is fit to a 35-parameter function of z and a, with the - // same range of z and a values as il-80 and il-20. - // Once again, if a (z,a) pair is outside of the range of validity of the - // fit, the barrier value is set to 0. These three values - // (bfis(il=0), il-80, and l-20) and the constraints of bfis = 0 and - // d(bfis)/dl = 0 at il = lmax and il = 0 lead to a fifth-order fit to - // bfis(il) for il > l-20. the first three constraints lead to a third-order - // fit for the region il < il-20. - // - // The ground-state energies are calculated from a 175-parameter - // fit in z, a, and il to 329 ground-state energies for 36 different - // z and a values. - // (the range of z and a is the same as for l-80, l-20, and l-max) - // - // The calculated barriers from which the fits were made were calculated - // in 1983-1985 by A. J. Sierk of Los Alamos National Laboratory, group t-9, - // using Yukawa-plus-exponential double folded nuclear energy, exact Couloub - // diffuseness corrections, and diffuse-matter moments of inertia. The - // parameters of the model are those derived by Moller and Nix in 1979: - // r-0 = 1.16 fm, as = 21.13 MeV, kappa-s = 2.3 a = 0.68 fm. - // The diffuseness of the matter and charge distributions used - // corresponds to a surface diffuseness parameter (defined by Myers) - // of 0.99 fm. The calculated barriers for il = 0 are - // accurate to a little less than 0.1 MeV; the output from this - // routine is a little less accurate. Worst errors may be as large - // as 0.5 MeV; characteristic uncertainty is in the range of 0.1-0.2 - // MeV. The values of egs are generally approximated to within - // about 0.1-0.2 MeV; the largest deviation is about 0.5 MeV, - // near il-i for light nuclei. - // - // The rms deviation of lmax from the 61 input values is 0.31 - // h-bar. the approximate value is nearly always within - // 0.5 h-bar of the calculated one. - // - // Below is a table of test values to check implementation of the program - // z, a, l egnd st fiss bar moments of inertia lmax - // - // 28, 58, 0 0.00 33.14 0.816 3.603 3.608 46.1 - // ,25 21.36 19.50 0.778 3.662 3.662 46.1 - // ,40 49.66 2.97 0.724 3.648 3.650 46.1 - // ,46.1 59.14 0.00 0.746 3.160 3.160 46.1 - // 65,153, 0 0.00 28.88 0.621 3.698 3.698 82.3 - // ,50 19.00 16.16 0.615 3.639 3.639 82.3 - // ,80 45.24 0.26 0.616 2.765 2.788 82.3 - // ,82.3 47.04 0.00 0.682 2.231 2.276 82.3 - // 93,229, 0 0.00 3.76 0.715 1.747 1.747 68.1 - // ,45 8.21 1.26 0.765 1.578 1.578 68.1 - // ,68.1 17.96 0.00 1.053 1.053 1.236 68.1 - // - // written by A. J. Sierk, LANL t-9 - // version 1.0 February, 1984 - // version 1.1 January, 1985 improved coefficients in egs and lmax - // version 1.2 September, 1985 improved lmax, egs coefficients - // version 1.21 June, 1986 minor changes made - // - // Copyright, 1986, the regents of the University of California. - // This software was produced under a U. s. government contract - // (w-7405-eng-36) by the Los Alamos National Laboratory, which is - // operated by the University of California for the U. S. Department - // of Energy. The U. S. government is licensed to use, reproduce, - // and distribute this software. Permission is granted to the public - // to copy and use this software without charge, provided that this - // notice and any statement of authorship are reproduced on all - // copies. Neither the government nor the University makes any - // warranty, expressed or implied, or assumes any liability - // or responsibility for the use of this software. - // - G4double pa[7], pz[7], pl[10]; - // - const G4double emncof[4][5] = - { { -901.100, -1408.18, 2770.00, -706.695, 889.867 }, - { 13535.5, -20384.7, 10938.4, -4862.97, -618.603 }, - { -3263.67, 1624.47, 1368.56, 1317.31, 153.372 }, - { 7488.63, -12158.1, 5502.81, -1336.30, 0.0505367 } }; - const G4double elmcof[4][5] = - { { 1845.42, -5640.02, 5667.30, -3151.50, 954.160 }, - { -2245.77, 8561.33, -9673.48, 5817.44, -1869.97 }, - { 2797.72, -8730.73, 9197.06, -4919.00, 1372.83 }, - { -30.1866, 1411.61, -2859.19, 2130.16, -649.072 } }; - const G4double emxcof[5][7] = { - {-4106527.32, 10006494.7,-10953375.1, 7847972.52,-3785749.26, 1122379.45,-177561.170}, - {10876333.0,-26375824.5, 28547240.0,-20110746.7, 9483736.41,-2734385.28, 413247.256}, - {-8765309.03, 21425051.3,-23579959.5, 17016134.7,-8237381.90, 2424479.57,-365427.239}, - {6302589.54,-15299900.4, 16564020.0,-11669577.6, 5473691.53,-1549863.42, 215409.246}, - {-1455398.91, 3649618.35,-4212674.23, 3243125.55,-1679279.04, 523795.062,-76657.6599}}; - const G4double elzcof[7][7] = { - {511819.909,-1303031.86, 1901198.70,-1206282.42, 568208.488, 54834.6483,-24588.3052}, - {-1132694.53, 2977645.90,-4543263.26, 3004648.70,-1449892.74,-102026.610, 62795.9815}, - {1375433.04,-3658089.88, 5477989.99,-3781092.83, 1841317.65, 15366.9695,-69681.7834}, - {-856559.835, 2488722.66,-4073491.28, 3128358.99,-1623940.90, 119797.378, 42573.7058}, - {328723.311,-1098921.75, 2039972.69,-1771857.18, 996051.545,-153305.699,-11298.2954}, - {41585.0238, 72965.3408,-493776.346, 601254.680,-401308.292, 96596.8391,-349960.27}, - {-182751.044, 391386.300,-303639.248, 115782.417,-424992.80,-611772.47, 36682.647}}; - G4double bfis = 0; - if( G4int(z) < 19 || G4int(z) > 111 ) - { - // write(16,1000) - // 1000 format(/10x,'* * * * barfit called with z less than 19 or ', - // ' greater than 111. bfis is set to 0.0. * * * *') - return bfis; - } - if( G4int(z) > 102 && il > 0 ) - { - // write(16,1010) - // 1010 format(/10x,'* * * * barfit called with z greater than 102', - // ' and l not equal to zero. bfis is set to 0.0. * * * *') - return bfis; - } - if( a < 1.2*z+0.01*z*z || a > 5.8*z-0.024*z*z ) - { - // write(16,1020)a - // 1020 format(/10x,'* * * * barfit called with a = ',i3,', outside ', - // 'the allowed values for z = ',i3,' * * * *') - return bfis; - } - lpoly( 0.01*z, 7, pz ); - lpoly( 0.0025*a, 7, pa ); - G4int i, j; - for( i = 0; i < 7; ++i ) - { - for( j = 0; j < 7; ++j )bfis += elzcof[j][i]*pz[j]*pa[i]; - } - if( (a < 1.4*z+0.009*z*z-5 || a > 20+3*z+10) && il > 0 ) - { - // write(16,1030)a,il - // 1030 format(/10x,'* * * * barfit called with a = ',i3,', outside', - // ' the allowed values for z = ',i3/26x,'for nonzero l = ',i3, - // ' * * * *') - bfis = 0; - return bfis; - } - G4double el80 = 0; - G4double el20 = 0; - G4double elmax = 0; - for( i = 0; i < 4; ++i ) - { - for( j = 0; j < 5; ++j ) - { - el80 += elmcof[j][i]*pz[j]*pa[i]; - el20 += emncof[j][i]*pz[j]*pa[i]; - } - } - for( i = 0; i < 5; ++i ) - { - for( j = 0; j < 7; ++j )elmax += emxcof[j][i]*pz[j]*pa[i]; - } - if( il < 1 )return bfis; - G4double x = el20/elmax; - G4double y = el80/elmax; - if( il <= el20 ) - { - G4double q = 0.2/(el20*el20*el80*el80*(el20-el80)); - bfis *= - 1+q*(4*el80*el80*el80-el20*el20*el20)*il*il-q*(4*el80*el80-el20*el20)*il*il*il; - } - else - { - G4double aj = (-20*pow(x,5)+25*pow(x,4)-4)*(y-1)*(y-1)*y*y; - G4double ak = (-20*pow(y,5)+25*pow(y,4)-1)*(x-1)*(x-1)*x*x; - G4double q = 0.2/((y-x)*((1-x)*(1-y)*x*y)*((1-x)*(1-y)*x*y)); - G4double z = il/elmax; - bfis *= 4*pow(z,5)-5*pow(z,4)+1+ - (z-1)*(q*(aj*y-ak*x)*(2*z+1)-q*(aj*(2*y+1)-ak*(2*x+1))*z)*z*z*(z-1); - } - if( bfis <= 0 || il > elmax )bfis = 0; - return bfis; - } - - G4bool G4PreEquilibrium::cascem( G4ThreeVector amnucl ) - { - const G4int N = 7; - const G4double EPS = 0.007; - const G4double VPI = 0.025; - const G4double CM0 = 0.94; - const G4int ME0 = 1; - const G4int MQ0 = 1; - - G4int mv = 0; - G4ThreeVector v; - G4double tin1, sigp, sign, sigabs; - - SetINDI( false ); - SetING( 0 ); - exitons.protons = 0; - exitons.neutrons = 0; - exitons.hols = 0; - // - // calculation of entering point of particle in nucleus - // - SetT1( 0 ); - SetT2( 0 ); - G4double temp1 = G4UniformRand(); - G4double temp2 = 2*pi*G4UniformRand(); - // - G4ThreeVector tmp3vec( rbig[N] * sqrt(temp1) * cos(temp2), - rbig[N] * sqrt(temp1) * sin(temp2), - -rbig[N] * sqrt(1-temp1) ); - MASTRUCT p = { tmp3vec, { 0.0, 1.0, 0.0, 1.0, GetT0(), CM0 } }; - // - IPSTRUCT ip = { ME0, 0, 0, MQ0, N }; - // - // the following appears to be a bug in the original cem.f - // T1 is set to 0 just above - // - if( GetT0() == 0 )p.array[2] = GetT1()*pow(GetT2()/GetT1(),G4UniformRand()); - const G4double p0 = sqrt(p.array[2]*(p.array[2]+2*p.array[5])); // not the data member p0 - // - G4ThreeVector am0( p0*(p.momentum.z()*p.array[0]*p.array[2]-p.momentum.y()*p.array[1]), - p0*(p.momentum.x()*p.array[1]-p.momentum.z()*p.array[0]*p.array[3]), - p0*(p.momentum.y()*p.array[0]*p.array[3]-p.momentum.x()*p.array[0]*p.array[2]) ); - // - const G4double t3 = p.array[4]; - p.array[4] += poten( N, ip ); - theNucleus->AddExcitationEnergy( -theNucleus->GetEnergyDeposit() + t3 + MQ0*EPS ); - G4double atwght = aNucl+MQ0; - G4double charge = zNucl+ME0; - amnucl = am0; - const G4double obr = af[6]/2; - LABEL: - G4double cutof1 = ip.nuclearZone*( poten(ip.ip4,ip) + ip.proton*obr ) + 0.001; - if( p.array[4] <= cutof1 ) - { - exitons.protons += ip.proton; - exitons.neutrons += 1-ip.proton; - cascem1( amnucl, p, ip, mv ); - goto LABEL; - } - G4int ipe[5]; - G4double pe[9]; - if( pointe( p, ip, pe, ipe, v, u, tin1, sigp, sign, sigabs, t3 ) ) - { - G4int np; - if( ip.nuclearZone != 0 ) - { - G4double cutof3 = cutof1-ip.nuclearZone*obr+0.05; - if( p.array[4] <= cutof3 ) - { - G4double r = rsm[N]*p.momentum.mag(); - if( rsm[N] >= r+0.001 ) - { - G4double wm = 0; - for( G4int i = 0; i < 50; ++i ) - wm += wim( 1, p, ip ) + wim( 0, p, ip ); - G4double w3 = wopt( p.array[4]-cutof3+0.05, r, ip.proton ); - if( abs((wm/100-w3)/w3) >= 0.3 ) - { - typint( p, ip, pe, ipe, v, u, tin1, sigp, sign, sigabs, mv, np ); - if( np <= 0 ) - { - exitons.protons += ip.proton; - exitons.neutrons += 1-ip.proton; - cascem1( amnucl, p, ip, mv ); - } - else - { - pauliPrinciple( p, ip, v, mv, np, 0 ); - exitons.protons += ip.proton; - exitons.neutrons += 1-ip.proton; - cascem1( amnucl, p, ip, mv ); - } - goto LABEL; - } - } - } - } - typint( p, ip, pe, ipe, v, u, tin1, sigp, sign, sigabs, mv, np ); - if( np <= 0 ) - { - exitons.protons += ip.proton; - exitons.neutrons += 1-ip.proton; - cascem1( amnucl, p, ip, mv ); - } - else - pauliPrinciple( p, ip, v, mv, np, 1 ); - goto LABEL; - } - ip.proton <= 0 ? temp1 = 0 : temp1 = ip.proton; - G4double cutof2 = poten( ip.ip4, ip ) + temp1*obr + 0.001; - if( p.array[4] <= cutof2 ) - { - exitons.protons += ip.proton; - exitons.neutrons += 1-ip.proton; - cascem1( amnucl, p, ip, mv ); - goto LABEL; - } - theNucleus->AddExcitationEnergy( - -(p.array[4]+ip.nuclearZone*EPS+(1-ip.nuclearZone)*(0.14+VPI)*(1-ip.ip1)) ); - atwght -= ip.nuclearZone; - charge -= ip.proton; - temp1 = sqrt(p.array[4]*(p.array[4]+2*p.array[5])); - amnucl.setX( amnucl.x()-temp1*(p.momentum.z()*p.array[0]*p.array[2]-p.momentum.y()*p.array[1]) ); - amnucl.setY( amnucl.y()-temp1*(p.momentum.x()*p.array[1]-p.momentum.z()*p.array[0]*p.array[3]) ); - amnucl.setZ( - amnucl.z()-temp1*(p.momentum.y()*p.array[0]*p.array[3]-p.momentum.x()*p.array[0]*p.array[2]) ); - if( theNucleus->GetEnergyDeposit() <= 0.0001 && - atwght == aNucl && charge == zNucl )return true; - if( theNucleus->GetEnergyDeposit() < 0 )return true; - if( KTOT > 100 ) - { - //write(16,27) - //27 format (40x,32hmassiv spt exceeded after cascad) - return false; - } - Dvector vtmp( 5 ); - vtmp[0] = p.array[0]; - vtmp[1] = p.array[1]; - vtmp[2] = p.array[4]; - vtmp[3] = ip.proton; - vtmp[4] = p.array[5]; - spt[KTOT]->swap( vtmp ); - - PARZS *pztmp = new PARZS; - pztmp->charge = ip.proton; - pztmp->what = GetING(); - if( p.array[5] <= 0.5 ) - { - if( ip.proton < 0 ) - pztmp->particleType = 7; - else if( ip.proton == 0 ) - pztmp->particleType = 8; - else - pztmp->particleType = 9; - } - else - { - if( ip.proton <= 0.099 )pztmp->particleType = 1; // neutron - else pztmp->particleType = 2; // proton - if( GetINDI() )pztmp->what = -pztmp->what; - } - pztmp->angle1 = atan2( p.array[0], p.array[1] ); - temp1 = atan2( p.array[2], p.array[3] ); - if( temp1 < 0 )temp1 = pi - temp1; - pztmp->angle2 = temp1; - pztmp->energy = p.array[4]; - parz.push_back( *pztmp ); - - ++KTOT; - cascem1( amnucl, p, ip, mv ); - goto LABEL; - } - - void G4PreEquilibrium::cascem1( G4ThreeVector a, MASTRUCT &p, IPSTRUCT &ip, G4int &m ) - { - const G4int N = 7; - if( m <= 0 ) - { - G4double temp = 5.07*rsm[N]; - a *= temp; - } - else - { - G4int i; - p.momentum = pmemo[m].momentum; - for( i = 0; i < 6; ++i )p.array[i] = pmemo[m].array[i]; - ip.proton = imemo[m].proton; - ip.ip1 = imemo[m].ip1; - ip.ip2 = imemo[m].ip2; - ip.nuclearZone = imemo[m].nuclearZone; - ip.ip4 = imemo[m].ip4; - SetING( ngen[m--] ); - } - return; - } - - G4bool G4PreEquilibrium::pointe( MASTRUCT &p, IPSTRUCT &ip, - G4double *pe, G4int *ipe, - G4ThreeVector v, G4double u, - G4double tin1, G4double sigp, - G4double sign, G4double sigabs, const G4double t3 ) - { - // determine interaction point inside nucleus - // - const G4int N = 7; - - G4bool nout; - const G4double sk = 3; - G4double temp1 = log(G4UniformRand()); - do - { - G4double s = geometricalParticlePath( p, ip ); - do - { - partnerSelection( p, ip, pe, ipe ); - // - // calculation of t, v, u - // - G4double pin = sqrt( p.array[4]*(p.array[4]+2*p.array[5]) ); - G4double pn = sqrt( pe[7]*(pe[7]+2*pe[8]) ); - G4double denom = p.array[4]+p.array[5]+pe[7]+pe[8]; - v.setX( (pin*p.array[0]*p.array[3]+pn*pe[3]*pe[6])/denom ); - v.setY( (pin*p.array[0]*p.array[2]+pn*pe[3]*pe[5])/denom ); - v.setZ( (pin*p.array[1]+pn*pe[4])/denom ); - u = sqrt( 1-v.mag2() )*denom; - tin1 = (u*u-(p.array[5]+pe[8])*(p.array[5]+pe[8]))/(2*pe[8]); - // - G4int i, ms, mq, ksin, ksip, me; - slqek( i, ms, mq, ksin, me, ip.ip1, ip.ip2, ip.nuclearZone, - ip.proton, ipe[1], ipe[2], ipe[3], 0 ); - sign = sigmat( i, ms, mq, ksin, 0, tin1 ); - slqek( i, ms, mq, ksip, me, ip.ip1, ip.ip2, ip.nuclearZone, - ip.proton, ipe[1], ipe[2], ipe[3], 1 ); - sigp = sigmat( i, ms, mq, ksip, 0, tin1 ); - sigabs = sigmat( i, ms, mq, ksip, 3, p.array[4] ); - G4double plambi = 10/((rhon[ip.ip4]*sign+rhop[ip.ip4]*sigp+ - rhop[ip.ip4]*sigabs)*rsm[N-1]); - if( -plambi*temp1-6*rhon[0]/rhon[N-1] > 0 ) - { - p.array[4] = t3; - return false; - } - G4double temp2 = sk; - G4double deltsi = plambi/temp2; - G4double temp5 = min( s, deltsi ); - G4double piks = temp1+temp5/plambi; - if( piks > 0 ) - { - G4ThreeVector tmp3vec( plambi*temp1*p.array[0]*p.array[3], - plambi*temp1*p.array[0]*p.array[2], - plambi*temp1*p.array[1] ); - p.momentum -= tmp3vec; - pe[0] = p.momentum.x(); - pe[1] = p.momentum.y(); - pe[2] = p.momentum.z(); - return nout; - } - temp1 = piks; - s -= temp5; - G4ThreeVector tmp3vec( temp5*p.array[0]*p.array[3], - temp5*p.array[0]*p.array[2], - temp5*p.array[1] ); - p.momentum += tmp3vec; - } while ( s != 0 ); - nout = refrac( N, p, ip ); - } while ( ip.ip4 < N+1 ); - G4double temp3 = geometricalParticlePath( p, ip ); - G4ThreeVector tmp3vec( temp3*p.array[0]*p.array[3], - temp3*p.array[0]*p.array[2], - temp3*p.array[1] ); - p.momentum += tmp3vec; - nout = refrac( N, p, ip ); - return false; - } - - G4double G4PreEquilibrium::geometricalParticlePath( const MASTRUCT p, const IPSTRUCT ip ) - { - G4double rin = p.momentum.mag(); - G4double c = (p.momentum.x()*p.array[0]*p.array[3] + - p.momentum.y()*p.array[0]*p.array[2] + - p.momentum.z()*p.array[1])/rin; - G4double g, r; - if( c < 0 ) - { - g = -1; - ip.ip4 < 2 ? r = 0 : r = rbig[ip.ip4-2]; - } - else - { - g = 1; - r = rbig[ip.ip4-1]; - } - G4double d = r*r - rin*rin*(1-c*c); - if( d < 0 ) - { - g = 1; - r = rbig[ip.ip4-1]; - d = r*r - rin*rin*(1-c*c); - } - return g*sqrt(d) - rin*c; - } - - G4bool G4PreEquilibrium::refrac( const G4int N, MASTRUCT &p, IPSTRUCT &ip ) const - { - // calculation of energy and direction change of - // particle while entering another zone of the nucleus - // - G4int j; - G4bool result; - G4double tmp = p.momentum.x()*p.array[0]*p.array[3] + - p.momentum.y()*p.array[0]*p.array[2] + - p.momentum.z()*p.array[1]; - tmp < 0 ? j = ip.ip4-1 : j = ip.ip4+1; - p.array[4] += poten( j, ip ) - poten( ip.ip4, ip ); - ip.ip4 = j; - j >= N+2 ? result = false : result = true; - return result; - } - - G4double G4PreEquilibrium::wopt( const G4double e1, const G4double r, const G4int i ) - { - const G4double a = aNucl; - const G4double z = zNucl; - G4double x = (a-2*z)/a; - G4double e = e1*GeV; - G4double rm, am, wv, wsf; // this rm is not the data member rm - if( i <= 0 ) - { - if( e <= 25 ) - { - rm = 1.26*pow(a,oneThird); - am = 0.58; - wv = 0.22*e - 1.56; - wsf = 13 - 0.25*e - 12*x; - } - else - { - rm = 1.21*pow(a,oneThird); - am = 0.6448; - wv = 0.459 + 0.111*e; - wsf = 4.28 - 0.0414*e; - } - } - else - { - if( e <= 25 ) - { - rm = 1.32*pow(a,oneThird); - am = 0.51 + 0.7*x; - wv = 0.22*e - 2.7; - wsf = 11.8 - 0.25*e + 12*x; - } - else - { - rm = 1.37*pow(a,oneThird); - am = 0.74 - 0.008*e + x; - wv = 1.2 + 0.09*e; - wsf = 4.2 - 0.05*e + 15.5*x; - } - } - if( wv < 0 )wv = 0; - if( wsf < 0 )wsf = 0; - G4double f = 1/(1+exp((r-rm)/am)); - return f*(wv+4*wsf*(1-f)); - } - - void G4PreEquilibrium::typint( MASTRUCT &p, IPSTRUCT &ip, - G4double *pe, G4int *ipe, G4ThreeVector v, - G4double u, G4double tin1, G4double sigp, - G4double sign, G4double sigabs, G4int mv, G4int &np ) - { - // block of determining of interaction type and calculation - // of secondary particles characteristics - // - G4bool nin = true; - while ( nin ) - { - G4int mtemp = ip.ip4-1; - G4double betabs = rhop[mtemp]*sigabs/ - (rhop[mtemp]*sigp+rhon[mtemp]*sign+rhop[mtemp]*sigabs); - if( G4UniformRand() <= betabs ) - { - absorption( p, ip, pe, mv, np, v ); - return; - } - G4int i, ms, mq, ksi, me; - slqek( i, ms, mq, ksi, me, ip.ip1, ip.ip2, ip.nuclearZone, - ip.proton, ipe[1], ipe[2], ipe[3], ipe[0] ); - G4double betael = (sigmat( i, ms, mq, ksi, 1, tin1 )+ - sigmat( i, ms, mq, ksi, 2, tin1 ))/ - sigmat( i, ms, mq, ksi, 0, tin1 ); - if (G4UniformRand() <= betael ) - { - np = elasticScattering( v, u, tin1, p, ip, ipe, mv, i, ms, mq, ksi, me ); - return; - } - nin = inelasticScattering( p, ip, ipe, i, ms, mq, ksi, me, v, u, tin1, mv, np ); - } - return; - } - - G4int G4PreEquilibrium::elasticScattering( const G4ThreeVector v, const G4double u, - const G4double tin, const MASTRUCT p, - const IPSTRUCT ip, const G4int *ipatne, - const G4int mv, const G4int i, - const G4int ms, const G4int mq, - const G4int ksi, const G4int me ) - { - // calculate particle characteristics in elastic and charge exchange scattering - // - G4double cmi, cmn; - if( ip.ip1 != 0 ) - { - cmi = 0.14; - cmn = 0.94; - } - else - { - cmi = p.array[5]; - cmn = 0.94; - } - G4double tmp1 = sigmat( i, ms, mq, ksi, 2, tin ); - G4double tmp2 = sigmat( i, ms, mq, ksi, 1, tin ); - G4int ie, ne; - G4double ctsti; - if( G4UniformRand() >= tmp1/(tmp1+tmp2) ) - { - ie = ip.proton; - ne = ipatne[0]; - ctsti = cosel( i, mq, ksi, tin, p.array[5] ); - } - else - { - if( ip.proton != 0 ) - { - ie = 0; - ne = me; - } - else - { - ne = 1 - ipatne[0]; - ie = me - ne; - } - ctsti = cosex( i, tin, p.array[5] ); - } - G4ThreeVector pist, pnst; - momentaCalc( p, v, u, pist, pnst, ctsti, cmi, cmn ); - // - MASTRUCT p1 = { pist, { 0.0, 0.0, 0.0, 0.0, 0.0, cmi } }; - pmemo[mv+2] = p1; - imemo[mv+2].proton = ie; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = ip.ip2; - imemo[mv+2].nuclearZone = ip.nuclearZone; - MASTRUCT p2 = { pnst, { 0.0, 0.0, 0.0, 0.0, 0.0, cmn } }; - pmemo[mv] = p2; - imemo[mv].proton = ne; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 1; - return 2; - } - - G4bool G4PreEquilibrium::inelasticScattering( MASTRUCT &p, IPSTRUCT &ip, G4int *ipatne, - G4int l, G4int ms, G4int mq, G4int ksi, - G4int me, G4ThreeVector v, G4double u, - G4double tin1, G4int mv, G4int np ) - { - if( ip.ip1 > 0 ) - { - G4double betais = crossSectionInterp(tin1,25)/crossSectionInterp(tin1,26); - // - // there is a bug in the original cem.f routine - // isocem uses TINI as 3rd parameter - // it should be TIN1 - // - if( G4UniformRand() <= betais ) - isocem( u, v, tin1, p, ipatne, mv ); - else - statisticalModel( u, v, p, ipatne, mv ); - return true; - } - G4double betath; - if( tin1 >= 4 ) - betath = 0; - else - betath = sigmat(l,ms,mq,ksi,7,tin1)/ - (sigmat(l,ms,mq,ksi,0,tin1)-sigmat(l,ms,mq,ksi,1,tin1)-sigmat(l,ms,mq,ksi,2,tin1)); - G4int ith; - G4double th; - if( G4UniformRand() < betath ) - { - ith = 1; - th = 1; - } - else - { - ith = 0; - th = 2; - } - if( u > p.array[5]+0.14*th+0.96 ) - { - G4int ik = 0; - G4int kp = 1; - while ( kp != 0 ) - { - G4bool lp = vmnsp( p, ip, u, mv, np, ith, mq, tin1 ); - if( np == 0 )return false; - if( lp )return true; - direction( v, u, tin1, mq, mv, np, p, kp, ith ); - if( ++ik >= 50 )return true; - } - chinel( ip, l, ms, mq, ksi, np, mv, tin1, me, ipatne ); - } - return true; - } - - G4double G4PreEquilibrium::wim( const G4int i, const MASTRUCT p, const IPSTRUCT ip ) - { - const G4double EPS = 0.007; - const G4int N = 7; - - G4double r, r1, a1, fac, tf, rho; - r = rsm[N]*p.momentum.mag(); - if( i <= 0 ) - { - r1 = 1.26*pow(aNucl,oneThird); - a1 = 0.58; - fac = 1/(1+exp((r-r1)/a1)); - tf = tfn[ip.ip4-1]; - rho = rhon[0]*fac; - } - else - { - r1 = 1.32*pow(aNucl,oneThird); - a1 = 0.51+0.7*(aNucl-2*zNucl)/aNucl; - fac = 1/(1+exp((r-r1)/a1)); - tf = tfp[ip.ip4-1]; - rho = rhop[0]*fac; - } - G4double tp = tf*pow(G4UniformRand(),twoThirds); - SetT0( p.array[5] ); - G4double z = abs(GetT0()-tf-EPS); - G4double y = sqrt(z*(z+2*p.array[5])); - G4double ct = 1.0 - 2*G4UniformRand(); - G4double fi = 2*pi*G4UniformRand(); - G4double pp = sqrt(tp*(tp+1.88)); - G4double et = GetT0()+p.array[5]+tp+0.94; - G4double vx = pp*sqrt(1-ct*ct)*cos(fi)/et; - G4double vy = pp*sqrt(1-ct*ct)*sin(fi)/et; - G4double vz = (pp*ct+sqrt(GetT0()*(GetT0()+2*p.array[5])))/et; - G4double t = (et*et*(1-vx*vx-vy*vy-vz*vz)-(p.array[5]+0.94)*(p.array[5]+0.94))/1.88; - G4double b = sqrt(t*(t+2*p.array[5]))/(t+p.array[5]); - G4double s; - ip.proton == i ? s = 10.63/(b*b)-29.92/b+42.9 : s = 34.10/(b*b)-82.20/b+82.2; - G4double bs = tf/GetT0(); - G4double dz = 1 - 1.4*bs; - if( bs > 0.5 )dz += 0.4*bs*pow(2-1/bs,2.5); - return 10*y/(z+p.array[5])*dz*rho*s; - } - - void G4PreEquilibrium::pauliPrinciple( MASTRUCT &p, IPSTRUCT &ip, G4ThreeVector v, - G4int mv, G4int np, const G4int ipa ) - { - G4int mtemp, i, j = ip.ip4, cntr = 1; - L10: - if( np == 2 ) - { - if( cntr == 2 ) - { - ++cntr; - goto L10; - } - else mtemp = mv+cntr-1; - } - else mtemp = mv+cntr-1; - // - G4ThreeVector pstar( pmemo[mtemp].momentum ); - // - G4double ct, st, cfi, sfi, t; - G4ThreeVector ptmp( p.momentum ); - t = cinema( pstar, v, ptmp, ct, st, cfi, sfi, pmemo[mtemp].array[5] ); - - MASTRUCT tmp = { ptmp, { st, ct, sfi, cfi, t, 0.0 } }; - pmemo.insert( pmemo.begin()+mtemp, tmp ); - - imemo[mtemp].ip4 = ip.ip4; - ngen.insert( ngen.begin()+mtemp, GetING()+1 ); - if( imemo[mtemp].nuclearZone == 1 && - imemo[mtemp].ip2 == 0 && - pmemo[mtemp].array[4]-tfp[j]*imemo[mtemp].proton-tfn[j]*(1-imemo[mtemp].proton) <= 0 ) - return; - if( cntr < np ) - { - ++cntr; - goto L10; - } - if( ipa == 0 )return; - if( p.array[5] == 0.140 && np == 2 && - pmemo[mv].array[5] == 0.94 && pmemo[mv+2].array[5] == 0.94 )SetINDI( true ); - for( i = 0; i < 6; ++i )p.array[i] = pmemo[mv+2].array[i]; - ip.proton = imemo[mv+2].proton; - ip.ip1 = imemo[mv+2].ip2; - ip.ip2 = imemo[mv+2].ip2; - ip.nuclearZone = imemo[mv+2].nuclearZone; - SetING( ngen[mv+2] ); - ++(exitons.hols); - if( np > 2 ) - { - G4int ntemp = mv+np; - for( i = 0; i < 6; ++i )pmemo[mv+2].array[i] = pmemo[ntemp].array[i]; - imemo[mv+2].proton = imemo[ntemp].proton; - imemo[mv+2].ip1 = imemo[ntemp].ip1; - imemo[mv+2].ip2 = imemo[ntemp].ip2; - imemo[mv+2].nuclearZone = imemo[ntemp].nuclearZone; - } - mv += np-1; - return; - } - - void G4PreEquilibrium::absorption( const MASTRUCT p, const IPSTRUCT ip, - G4double *pe, G4int mv, G4int &np, G4ThreeVector v ) - { - // calculation of particle characteristics in absorption - // - G4double p1[9]; - G4int ip1[5]; - // - partnerSelection( p, ip, p1, ip1 ); - G4double pn1 = sqrt( p1[7]*(p1[7]+1.88) ); - G4double pn = sqrt( pe[7]*(pe[7]+1.88) ); - G4ThreeVector paf( pn*pe[3]*pe[6]+pn1*p1[3]*p1[6], - pn*pe[3]*pe[5]+pn1*p1[3]*p1[5], - pn*pe[4]+pn1*p1[4] ); - G4double pafm = paf.mag(); - G4double ctn1, stn1, sfn1, cfn1; - if( paf.z()*paf.z() >= pafm*pafm ) - { - ctn1 = 1; - stn1 = 0; - sfn1 = 0; - cfn1 = 1; - } - else - { - ctn1 = paf.z()/pafm; - stn1 = sqrt(1-paf.z()/pafm*paf.z()/pafm); - sfn1 = paf.y()/(pafm*stn1); - cfn1 = paf.x()/(pafm*stn1); - } - G4double taf = sqrt(pafm*pafm+1.88*1.88)-1.88; - // - // calculation of t, v, u - // - G4double pin = sqrt( p.array[4]*(p.array[4]+2*p.array[5]) ); - pn = sqrt( taf*(taf+2*1.88) ); - G4double denom = p.array[4]+p.array[5]+taf+1.88; - v.setX( (pin*p.array[0]*p.array[3]+pn*stn1*cfn1)/denom ); - v.setY( (pin*p.array[0]*p.array[2]+pn*stn1*sfn1)/denom ); - v.setZ( (pin*p.array[1]+pn*ctn1)/denom ); - G4double u = sqrt( 1-v.mag2() )*denom; - G4double tin1 = (u*u-(p.array[5]+1.88)*(p.array[5]+1.88))/(2*1.88); - // - G4int ne, ie; - chargeInAbsorption( ip.ip1, ip.proton, ne, ie ); - G4double ctst; - if( ip.ip1 == 0 ) - ctst = 1-2*G4UniformRand(); - else - tin1 <= 0.455 ? ctst = costa( 18, tin1 ) : ctst = 1-2*G4UniformRand(); - G4ThreeVector pist, pnst; - momentaCalc( p, v, u, pist, pnst, ctst, 0.94, 0.94 ); - if( mv <= 97 ) - { - MASTRUCT pm1 = { pist, { 0.0, 0.0, 0.0, 0.0, 0.0, p1[8] } }; - pmemo.insert( pmemo.begin()+mv+2, pm1 ); - imemo[mv+2].proton = ie; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - MASTRUCT pm2 = { (-1)*pist, { 0.0, 0.0, 0.0, 0.0, 0.0, pe[8] } }; - pmemo.insert( pmemo.begin()+mv, pm2 ); - imemo[mv+2].proton = ne; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - np = 2; - return; - } - np = 0; - //write(16,19) - //19 format(45x,29h memory is exceeded in cascad) - return; - } - - void G4PreEquilibrium::chargeInAbsorption( const G4int m, const G4int ine, - G4int &ne1, G4int &ne2 ) - { - // determine charge in absorption - // - const G4double a = aNucl; - const G4double z = zNucl; - if( ine < 0 ) - { - if( m != 0 ) - { - ne1 = 0; - ne2 = 0; - } - else - { - G4double temp2 = (z*(z-1))/(2*z*(a-z)+z*(z-1)); - if( G4UniformRand() <= temp2 ) - { - ne1 = 0; - ne2 = 1; - } - else - { - ne1 = 0; - ne2 = 0; - } - } - } - else if( ine == 0 ) - { - if( m != 0 ) - { - ne1 = 0; - ne2 = 1; - } - else - { - G4double temp3 = (2*z*(a-z))/(a*(a-1)); - if( G4UniformRand() <= temp3 ) - { - ne1 = 0; - ne2 = 1; - } - else - { - G4double temp4 = (z*(z-1))/(a*(a-1)) + temp3; - if( G4UniformRand() <= temp4 ) - { - ne1 = 1; - ne2 = 1; - } - else - { - ne1 = 0; - ne2 = 0; - } - } - } - } - else - { - if( m != 0 ) - { - ne1 = 1; - ne2 = 1; - } - else - { - G4double temp1 = (z*(a-z))/(z*(a-z)+(a-z)*(a-z-1)/2); - if( G4UniformRand() <= temp1 ) - { - ne1 = 1; - ne2 = 1; - } - else - { - ne1 = 0; - ne2 = 1; - } - } - } - return; - } - - void G4PreEquilibrium::momentaCalc( const MASTRUCT p, const G4ThreeVector v, - const G4double u, G4ThreeVector pist, - G4ThreeVector pnst, const G4double cti, - const G4double cmi, const G4double cmn ) - { - // calculate momenta of secondary particles in centre of mass system - // for absorption and elastic scattering - // - G4double angle = 2*pi*G4UniformRand(); - G4double pim = sqrt((u*u+cmi*cmi-cmn*cmn)/(2*u)*(u*u+cmi*cmi-cmn*cmn)/(2*u)-cmi*cmi); - G4double v2 = v.mag2(); - G4double temp3 = sqrt(p.array[4]*(p.array[4]+2*p.array[5])); - G4double temp1 = (temp3*p.array[0]*p.array[3]*v.x()+temp3*p.array[1]*v.y()+ - temp3*p.array[0]*p.array[2]*v.z())*(1/sqrt(1-v2)-1)/v2; - G4double temp2 = (p.array[4]+p.array[5])/sqrt(1-v2); - - G4ThreeVector pins( temp3*p.array[0]*p.array[3]+v.x()*(temp1-temp2), - temp3*p.array[0]*p.array[2]+v.y()*(temp1-temp2), - temp3*p.array[1]+v.z()*(temp1-temp2) ); - G4ThreeVector pii( pim*sqrt(1-cti*cti)*cos(angle), - pim*sqrt(1-cti*cti)*sin(angle), - pim*cti ); - pist = rotation( pins, v, pii ); - pnst = pist * (-1); - return; - } - - void G4PreEquilibrium::partnerSelection( const MASTRUCT p, const IPSTRUCT ip, - G4double *pe, G4int *ipe ) - { - G4double t = 0; - if( G4UniformRand() >= (aNucl-zNucl)/aNucl ) - { - while( t <= 0 ) - t = tfp[ip.ip4-1]*pow(G4UniformRand(),twoThirds); - ipe[0] = 1; - } - else - { - while( t <= 0 ) - t = tfn[ip.ip4-1]*pow(G4UniformRand(),twoThirds); - ipe[0] = 0; - } - pe[4] = 1-2*G4UniformRand(); - pe[3] = sqrt(1-pe[4]*pe[4]); - G4double phin = 2*pi*G4UniformRand(); - pe[6] = cos(phin); - pe[5] = sin(phin); - pe[0] = p.momentum.x(); - pe[1] = p.momentum.y(); - pe[2] = p.momentum.z(); - pe[8] = 0.940; - pe[7] = t; - ipe[4] = ip.ip4; - ipe[1] = 0; - ipe[2] = 0; - ipe[3] = 1; - return; - } - - void G4PreEquilibrium::chinel( IPSTRUCT &ipatin, const G4int l, const G4int ms, - const G4int mq, const G4int ksi, const G4int np, - const G4int mv, const G4double tin1, const G4int me, - G4int *ipatne ) - { - // determine secondary particles charges in inelastic scattering - // - if( np == 3 ) - { - G4double spi0 = sigmat( l, ms, mq, ksi, 4, tin1 ); - G4double sth = sigmat( l, ms, mq, ksi, 7, tin1 ); - G4double ran = G4UniformRand(); - if( ran >= spi0/sth ) - { - if( ran >= (spi0+sigmat(l,ms,mq,ksi,5,tin1))/sth ) - { - imemo[mv].proton = ipatne[1] - (ipatin.ip4-1)*ipatin.ip1; - imemo[mv+2].proton = (ipatin.ip4-1)*ipatin.ip1*ipatin.ip1 - ipatin.ip4*ipatin.ip1 + 1; - imemo[mv+1].proton = me - imemo[mv].proton - imemo[mv+2].proton; - } - else - { - imemo[mv].proton = 1 - ipatne[1]; - imemo[mv+2].proton = ipatin.ip1; - imemo[mv+1].proton = me - imemo[mv].proton - imemo[mv+2].proton; - } - } - else - { - imemo[mv].proton = ipatne[1]; - imemo[mv+1].proton = 0; - imemo[mv+2].proton = ipatin.ip1; - } - return; - } - G4int migq; - do - { - G4UniformRand() <= 0.5 ? imemo[mv].proton = 1 : imemo[mv].proton = 0; - if( mq >= 1 ) - { - G4UniformRand() <= 0.5 ? imemo[mv+2].proton = 1 : imemo[mv+2].proton = 0; - } - G4int lambda = 0; - do - { - ++lambda; - if( mq <= 1 || lambda != 2 ) - { - G4double ran = G4UniformRand(); - if( ran >= oneThird ) - { - ran < twoThirds ? imemo[mv+lambda].proton = 0 : imemo[mv+lambda].proton = -1; - } - else imemo[mv+lambda].proton = 1; - } - } - while ( lambda < np ); - migq = 0; - for( G4int i = 0; i < np; ++i )migq += imemo[mv+i].proton; - } while( me != migq ); - return; - } - - void G4PreEquilibrium::direction( G4ThreeVector v, const G4double u, const G4double tin1, - const G4int mq, const G4int mv, const G4int np, - const MASTRUCT partin, G4int &kp, const G4int ith ) - { - // determine direction of secondary particle motion - // - G4int nd = 0; - G4int m1, m2; - kp = 0; - if( mq > 1 ) - { - if( G4UniformRand() >= 0.5 ) - { - if( G4UniformRand() >= 0.5 ) - { - m1 = 0; - m2 = 1; - } - else - { - m1 = 1; - m2 = 2; - } - } - else - { - m1 = 0; - m2 = 2; - } - } - else - { - if( G4UniformRand() >= 0.5 ) - { - m1 = 0; - if( G4UniformRand() >= 0.5 )m2 = 1; - else m2 = 2; - } - else - { - m1 = 1; - m2 = 2; - } - } - G4ThreeVector pl, pakv; - G4int lambda, m1temp, m2temp; - LABEL: - pakv.setX( 0.0 ); - pakv.setY( 0.0 ); - pakv.setZ( 0.0 ); - m1temp = mv + m1; - m2temp = mv + m2; - lambda = 0; - do - { - if( lambda != m1 && lambda != m2 ) - { - G4int ja = coefficientTypeA( ith, mq, lambda ); - G4double ctl = costa( ja, tin1 ); - G4double fl = 2*pi*G4UniformRand(); - G4double stl = sqrt(1-ctl*ctl); - G4double temp1 = cos(fl); - G4double temp2 = sin(fl); - G4double temp3 = pmemo[mv+lambda].array[0]; - G4ThreeVector tmp3vec( temp3*stl*temp1, temp3*stl*temp2, temp3*ctl ); - MASTRUCT tmp = { tmp3vec, { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 } }; - pmemo.insert( pmemo.begin()+mv+lambda, tmp ); - pakv += pmemo[mv+lambda].momentum; - } - } while( lambda++ < np ); - G4double pakvm = pakv.mag(); - if( np != 3 && pmemo[m1temp].momentum.z() >= pakvm+pmemo[m2temp].array[0] && - pmemo[m1temp].momentum.z() <= abs(pakvm-pmemo[m2temp].array[0]) ) - { - if( ++nd >= 100 ) - { - kp = 2; - return; - } - goto LABEL; - } - G4double v2 = v.mag2(); - G4double temp4 = sqrt(partin.array[4]*(partin.array[4]+2*partin.array[5])); - G4double spv = temp4*partin.array[0]*partin.array[3]*v.x() + temp4*partin.array[1]*v.z() + - temp4*partin.array[0]*partin.array[2]*v.y(); - G4double temp5 = spv*(1/sqrt(1-v2)-1)/v2; - G4double temp6 = (partin.array[4]+partin.array[5])/sqrt(1-v2); - G4ThreeVector pin( temp4*partin.array[0]*partin.array[3] + v.x()*temp5 - v.x()*temp6, - temp4*partin.array[0]*partin.array[2] + v.y()*temp5 - v.y()*temp6, - temp4*partin.array[1] + v.z()*temp5 - v.z()*temp6 ); - // - lambda = 1; - if( lambda == m1 && lambda < np )++lambda; - G4int ltemp = mv + lambda; - G4ThreeVector plst; - if( lambda == m1 ) - { - G4ThreeVector pakst; - pakst = rotation( pin, v, pakv ); - G4double ctm1 = (pmemo[m2temp].array[0]*pmemo[m2temp].array[0]- - pmemo[m1temp].array[0]*pmemo[m1temp].array[0]-pakvm*pakvm)/ - (2*pakvm*pmemo[m1temp].array[0]); - G4double ctm2 = (pmemo[m1temp].array[0]*pmemo[m1temp].array[0]- - pmemo[m2temp].array[0]*pmemo[m2temp].array[0]-pakvm*pakvm)/ - (2*pakvm*pmemo[m2temp].array[0]); - G4double fm1 = 2*pi*G4UniformRand(); - G4double fm2 = pi+fm1; - G4double stm1 = sqrt(1-ctm1*ctm1); - G4double stm2 = sqrt(1-ctm2*ctm2); - G4double cfm1 = cos(fm1); - G4double sfm1 = sin(fm1); - G4double cfm2 = cos(fm2); - G4double sfm2 = sin(fm2); - pl.setX( pmemo[m1temp].array[0]*stm1*cfm1 ); - pl.setY( pmemo[m1temp].array[0]*stm1*sfm1 ); - pl.setZ( pmemo[m1temp].array[1]*ctm1 ); - plst = rotation( pakst, v, pl ); - pmemo[m1temp].momentum = plst; - pl.setX( pmemo[m2temp].array[0]*stm2*cfm2 ); - pl.setY( pmemo[m2temp].array[0]*stm2*sfm2 ); - pl.setZ( pmemo[m2temp].array[0]*ctm2 ); - plst = rotation( pakst, v, pl ); - pmemo[m2temp].momentum = plst; - } - else if( lambda != m2 ) - { - pl = pmemo[ltemp].momentum; - plst = rotation( pin, v, pl ); - pmemo[ltemp].momentum = plst; - } - return; - } - - G4int G4PreEquilibrium::coefficientTypeA( const G4int ith, const G4int mq, - const G4int lamb ) - { - // determine type of coefficients a(n,k) - // - G4int result; - if( ith != 0 ) - { - if( mq <= 1 ) - { - lamb > 1 ? result = 25 : result = 24; - } - else - { - if( lamb > 1 ) - { - lamb == 3 ? result = 16 : result = 21; - } - else result = 20; - } - } - else - { - if( mq <= 1 ) - { - lamb <= 1 ? result = 26 : result = 27; - } - else - { - if( lamb > 1 ) - { - lamb == 3 ? result = 22 : result = 23; - } - else result = 22; - } - } - return result; - } - - G4bool G4PreEquilibrium::vmnsp( const MASTRUCT partin, const IPSTRUCT ipatin, const G4double u, - const G4int mv, G4int &np, const G4int ith, - const G4int mq, const G4double tin1 ) - { - // calculate secondary particle number and - // determine absolute values of momenta in inelastic interaction - // - G4int counter = 0; - LABEL1: - G4double u1 = u; - G4int lambda = 0; - LABEL2: - if( mv+lambda >= 100 ) - { - np = 0; - //write(16,39) - //39 format(45x,29h memory is exceeded in cascad) - return false; - } - if( lambda == 0 ) - { - G4ThreeVector tmp3vec( 0.0, 0.0, 0.0 ); - MASTRUCT matmp = { tmp3vec, { 0.0, 0.0, 0.0, 0.0, 0.0, 0.94 } }; - pmemo.insert( pmemo.begin()+mv+lambda, matmp ); - IPSTRUCT iptmp = { 0, 0, 0, 1, 0 }; - imemo.insert( imemo.begin()+mv+lambda, iptmp ); - } - else if( lambda == 2 ) - { - G4ThreeVector tmp3vec( 0.0, 0.0, 0.0 ); - MASTRUCT matmp = { tmp3vec, { 0.0, 0.0, 0.0, 0.0, 0.0, partin.array[5] } }; - pmemo.insert( pmemo.begin()+mv+lambda, matmp ); - IPSTRUCT iptmp = { 0, 0, ipatin.ip2, ipatin.nuclearZone, 0 }; - imemo.insert( imemo.begin()+mv+lambda, iptmp ); - } - else - { - G4ThreeVector tmp3vec( 0.0, 0.0, 0.0 ); - MASTRUCT matmp = { tmp3vec, { 0.0, 0.0, 0.0, 0.0, 0.0, 0.14 } }; - pmemo.insert( pmemo.begin()+mv+lambda, matmp ); - IPSTRUCT iptmp = { 0, 0, 0, 0, 0 }; - imemo.insert( imemo.begin()+mv+lambda, iptmp ); - } - G4int jb = coefficientTypeB( ith, mq, lambda ); - pmemo[mv+lambda].array[0] = secondaryParticleMomentum(jb,tin1); - G4double el = sqrt(pmemo[mv+lambda].array[0]*pmemo[mv+lambda].array[0]+ - pmemo[mv+lambda].array[5]*pmemo[mv+lambda].array[5]); - G4double deltu = u1-el; - if( lambda == 0 ) - { - if( deltu <= partin.array[5] ) - { - if( ++counter == 100 )return true; - goto LABEL1; - } - if( ith == 0 ) - { - u1 = deltu; - ++lambda; - goto LABEL2; - } - pmemo[mv+2].array[0] = sqrt(deltu*deltu-partin.array[5]*partin.array[5]); - pmemo[mv+2].array[5] = partin.array[5]; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = ipatin.ip2; - imemo[mv+2].nuclearZone = ipatin.nuclearZone; - if( pmemo[mv].array[0] > pmemo[mv+1].array[0]+pmemo[mv+2].array[0] || - pmemo[mv].array[0] <= abs(pmemo[mv+1].array[0]-pmemo[mv+2].array[0]) ) - { - if( ++counter == 100 )return true; - goto LABEL1; - } - np = 3; - return true; - } - if( deltu > 0.14 ) - { - u1 = deltu; - ++lambda; - goto LABEL2; - } - if( lambda <= 1 || lambda == 3 ) - { - if( ++counter == 100 )return true; - goto LABEL1; - } - el += deltu; - pmemo[mv+lambda].array[0] = sqrt(el*el-pmemo[mv+lambda].array[5]*pmemo[mv+lambda].array[5]); - np = lambda; - G4double c = pmemo[mv].array[0]; - G4int i; - for( i = 0; i < np; ++i ) - { - if( c < pmemo[mv+i].array[0] )c = pmemo[mv+i].array[0]; - } - G4double pmax = c; - G4double sigma = 0; - for( i = 0; i < np; ++i )sigma += pmemo[mv+i].array[0]; - if( 2*pmax >= sigma ) - { - if( ++counter == 100 )return true; - goto LABEL1; - } - return false; - } - - G4double G4PreEquilibrium::secondaryParticleMomentum( const G4int j, const G4double t ) - { - // calculation of secondary particle momentum - // - const G4double bnkj[8][4][4] = - { { { 0.50278, 3.1442, -7.8172, 8.1667 }, - { 0.93482, -10.590, 29.227, -34.550 }, - {-0.096685, 4.7335, -14.298, 17.685 }, - {-0.025041, -0.62478, 2.0282, -2.5895 } }, - { { 1.1965, -0.82889, 1.0426, -1.9090 }, - { 0.28703, -4.9065, 16.264, -19.904 }, - {-0.24492, 2.9191, -9.5776, 11.938 }, - { 0.037297, -0.42200, 1.3883, -1.7476 } }, - { { 1.3508, -4.3139, 12.291, -15.288 }, - {-0.20086, 1.3641, -3.4030, 3.8559 }, - { 0.012583, -0.083492, 0.18600, -0.20043 }, - {-0.00023628, 0.0013514, -0.0024324, 0.0021906 } }, - { { 1.2419, -4.3633, 13.743, -18.592 }, - {-0.24404, 1.3158, -3.5691, 4.3867 }, - { 0.015693, -0.082579, 0.21427, -0.25846 }, - {-0.00029386, 0.0014060, -0.0033835, 0.0038664 } }, - { { 0.63054, -3.7333, 13.464, -18.594 }, - { 2.1801, 1.5163, -16.380, 27.944 }, - {-1.2886, -2.4570, 15.129, -23.295 }, - { 0.20915, 0.52279, -2.8687, 4.2688 } }, - { { 0.93363, -1.8181, 5.5157, -8.5216 }, - { 1.7811, -8.2927, 20.607, -20.827 }, - {-1.5264, 6.8433, -16.067, 16.845 }, - { 0.27128, -1.1944, 2.7495, -2.9045 } }, - { { 1.9439, -4.6268, 9.7879, -9.6074 }, - {-0.34640, 1.1093, -1.9313, 1.7064 }, - { 0.027054, -0.11638, 0.26969, -0.31853 }, - {-0.00066092, 0.0050728, -0.014995, 0.019605 } }, - { { 1.8693, -5.5678, 14.795, -16.903 }, - {-0.49965, 1.7874, -4.1330, 3.8393 }, - { 0.046194, -0.18536, 0.45315, -0.46273 }, - {-0.0013341, 0.0057710, -0.014554, 0.015554 } } }; - const G4double ckj[8][3] = { - 0.14509, 0.46520, -0.033005, 0.15376, - 0.27436, -0.014604, 0.62959, 0.17866, - -0.0026216, 0.83810, 0.0086137, 0.0032946, - 0.092852, 0.53886, -0.054493, 0.13032, - 0.40709, -0.028782, 0.14909, 0.38502, - -0.012775, 0.18024, 0.33022, -0.0094491 }; - G4double bnk[4][4]; - G4int n, k; - for( k = 0; k < 4; ++k ) - { - for( n = 0; n < 4; ++n )bnk[n][k] = bnkj[n][k][j]; - } - G4double s1 = 0; - G4double r1 = G4UniformRand(); - G4double s2 = 0; - G4double s3 = 0; - for( n = 0; n < 4; ++n ) - { - for( k = 0; k < 4; ++k )s1 += bnk[n][k]*pow(t,k)*pow(r1,n); - } - for( n = 0; n < 4; ++n ) - { - for( k = 0; k < 4; ++k )s2 += bnk[n][k]*pow(t,k); - } - for( k = 0; k < 3; ++k )s3 += ckj[k][j]*pow(t,k); - return s3*sqrt(r1)*(s1+(1-s2)*r1*r1*r1*r1); - } - - G4int G4PreEquilibrium::coefficientTypeB( const G4int i, const G4int mq, - const G4int lamb ) - { - // determine type of coefficients b(n,k) - // - G4int result; - if( i != 0 ) - { - if( mq <= 1 ) - { - lamb > 1 ? result = 5 : result = 4; - } - else - { - if( lamb > 1 ) - { - lamb == 3 ? result = 0 : result = 1; - } - else result = 0; - } - } - else - { - if( mq <= 1 ) - { - lamb <= 1 ? result = 6 : result = 7; - } - else - { - if( lamb > 1 ) - { - lamb == 3 ? result = 2 : result = 3; - } - else result = 2; - } - } - return result; - } - - void G4PreEquilibrium::statisticalModel( const G4double u, const G4ThreeVector v, - const MASTRUCT partin, const G4int *ipatne, - const G4int mv ) - { - // determine secondary particle characteristics for - // gamma-n interaction with statistical model - // - G4double tpim = (u*u+0.0196-1.08*1.08)/(2*u) - 0.14; - LABEL: - G4double t1 = G4UniformRand()*tpim; - G4double t2 = G4UniformRand()*tpim; - G4double e1 = t1 + 0.14; - G4double e2 = t2 + 0.14; - // - if( G4UniformRand() >= 27*e1*e2*(u-e1-e2)/(u*u*u) )goto LABEL; - // - G4double t3 = u - e1 - e2 - 0.94; - if( t3 <= 0 )goto LABEL; - // - G4double p1 = sqrt(t1*(t1+0.28)); - G4double p2 = sqrt(t2*(t2+0.28)); - G4double p3 = sqrt(t3*(t3+1.88)); - // - if( (p1+p2-p3)*(p1-p2+p3)*(p2+p3-p1) <= 0 )goto LABEL; - // - G4double ct3 = 1-2*G4UniformRand(); - G4double fi3 = 2*pi*G4UniformRand(); - G4double temp2 = sqrt(1-ct3*ct3); - // - G4ThreeVector pv3( p3*temp2*cos(fi3), - p3*temp2*sin(fi3), - p3*ct3 ); - G4double temp3 = sqrt(partin.array[4]*(partin.array[4]+2*partin.array[5])); - // - G4ThreeVector pin( temp3*partin.array[0]*partin.array[3], - temp3*partin.array[0]*partin.array[2], - temp3*partin.array[1] ); - // - G4ThreeVector pinst = cms( pin, v, partin.array[4]+partin.array[5] ); - // - G4ThreeVector ps3 = rotation( pinst, v, pv3 ); - G4double ct1 = (p2*p2-p1*p1-p3*p3)/(2*p3*p1); - G4double ct2 = (p1*p1-p2*p2-p3*p3)/(2*p3*p2); - G4double fi1 = 2*pi*G4UniformRand(); - G4double fi2 = pi + fi1; - G4double st1 = sqrt(1-ct1*ct1); - G4double st2 = sqrt(1-ct2*ct2); - // - G4ThreeVector pv1( p1*st1*cos(fi1), - p1*st1*sin(fi1), - p1*ct1 ); - G4ThreeVector ps1 = rotation( ps3, v, pv1 ); - // - G4ThreeVector pv2( p2*st2*cos(fi2), - p2*st2*sin(fi2), - p2*ct2 ); - // - G4ThreeVector ps2 = rotation( ps3, v, pv2 ); - pmemo[mv].momentum = ps1; - pmemo[mv].array[5] = 0.14; - pmemo[mv+1].momentum = ps2; - pmemo[mv+1].array[5] = 0.14; - pmemo[mv+2].momentum = ps3; - pmemo[mv+2].array[5] = 0.94; - if( ipatne[1] <= 0 ) - { - G4double temp4 = G4UniformRand(); - if( temp4 > oneThird) - { - if( temp4 <= twoThirds ) - { - imemo[mv].proton = 0; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 0; - imemo[mv+1].proton = -1; - imemo[mv+1].ip1 = 0; - imemo[mv+1].ip2 = 0; - imemo[mv+1].nuclearZone = 0; - imemo[mv+2].proton = 1; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - } - else - { - imemo[mv].proton = -1; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 0; - imemo[mv+1].proton = 1; - imemo[mv+1].ip1 = 0; - imemo[mv+1].ip2 = 0; - imemo[mv+1].nuclearZone = 0; - imemo[mv+2].proton = 0; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - } - } - else - { - imemo[mv].proton = 0; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 0; - imemo[mv+1].proton = 0; - imemo[mv+1].ip1 = 0; - imemo[mv+1].ip2 = 0; - imemo[mv+1].nuclearZone = 0; - imemo[mv+2].proton = 0; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - } - } - else - { - G4double temp4 = G4UniformRand(); - if( temp4 > oneThird ) - { - if( temp4 <= twoThirds ) - { - imemo[mv].proton = 0; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 0; - imemo[mv+1].proton = 1; - imemo[mv+1].ip1 = 0; - imemo[mv+1].ip2 = 0; - imemo[mv+1].nuclearZone = 0; - imemo[mv+2].proton = 0; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - } - else - { - imemo[mv].proton = 1; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 0; - imemo[mv+1].proton = -1; - imemo[mv+1].ip1 = 0; - imemo[mv+1].ip2 = 0; - imemo[mv+1].nuclearZone = 0; - imemo[mv+2].proton = 1; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - } - } - else - { - imemo[mv].proton = 0; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 0; - imemo[mv+1].proton = 0; - imemo[mv+1].ip1 = 0; - imemo[mv+1].ip2 = 0; - imemo[mv+1].nuclearZone = 0; - imemo[mv+2].proton = 1; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - } - } - return; - } - - void G4PreEquilibrium::isocem( const G4double u, const G4ThreeVector v, - const G4double tin1, const MASTRUCT partin, - const G4int *ipatne, const G4int mv ) - { - // interaction with (3/2,3/2) isobar production - // - // - G4double a1 = (u*u+0.0196-1.08*1.08)/(2*u); - G4double a2 = sqrt(a1*a1-0.0196); - G4double a3 = u-a1; - // - G4double epim, bms, pim, p; - do - { - bms = G4UniformRand()*(u-1.22)+1.08; - epim = (u*u+0.0196-bms*bms)/(2*u); - pim = sqrt(epim*epim-0.0196); - p = ((pim*epim*(u-epim))/u)* - crossSectionInterp((bms*bms-1.08*1.08)/1.88,8)/(200*a1*a2*a3/u); - } - while ( G4UniformRand() >= p ); - // - G4double ctpi; - tin1 < 1 ? ctpi = costa( 27, tin1 ) : ctpi = costa( 28, tin1 ); - G4double fipi = 2*pi*G4UniformRand(); - G4double epit = (bms*bms+0.0196-0.94*0.94)/(2*bms); - G4double temp1 = sqrt(1-ctpi*ctpi); - - G4ThreeVector ppim( pim*temp1*cos(fipi), - pim*temp1*sin(fipi), - pim*ctpi ); - - G4ThreeVector vt = ppim * (1/(epim-u)); - - G4double ctilpi = 1-2*G4UniformRand(); - G4double ftilpi = 2*pi*G4UniformRand(); - temp1 = sqrt(1-ctilpi*ctilpi); - G4double pmt = sqrt(epit*epit-0.0196); - - G4ThreeVector ppit( pmt*temp1*cos(ftilpi), - pmt*temp1*sin(ftilpi), - pmt*ctilpi ); - - vt *= -1.0; - - G4ThreeVector ppi = cms( ppit, vt, epit ); - - G4ThreeVector ppt = ppit * (-1.0); - - G4ThreeVector pp = cms( ppt, vt, bms-epit ); - - G4double temp2 = sqrt(partin.array[4]*(partin.array[4]+2*partin.array[5])); - G4ThreeVector pin( temp2*partin.array[0]*partin.array[3], - temp2*partin.array[0]*partin.array[2], - temp2*partin.array[1] ); - - G4ThreeVector pinst = cms( pin, v, partin.array[4]+partin.array[5] ); - - G4ThreeVector ppimst; - ppimst = rotation( pinst, v, ppim ); - pmemo[mv].momentum = ppimst; - pmemo[mv].array[5] = 0.14; - - G4ThreeVector ppist; - ppist = rotation( pinst, v, ppi ); - pmemo[mv+1].momentum = ppist; - pmemo[mv+1].array[5] = 0.14; - - G4ThreeVector ppst; - ppst = rotation( pinst, v, pp ); - pmemo[mv+2].momentum = ppst; - pmemo[mv+2].array[5] = 0.94; - if( ipatne[1] > 0 ) - { - imemo[mv].proton = -1; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 0; - imemo[mv+1].proton = 1; - imemo[mv+1].ip1 = 0; - imemo[mv+1].ip2 = 0; - imemo[mv+1].nuclearZone = 0; - imemo[mv+2].proton = 1; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - } - else - { - imemo[mv].proton = 1; - imemo[mv].ip1 = 0; - imemo[mv].ip2 = 0; - imemo[mv].nuclearZone = 0; - imemo[mv+1].proton = -1; - imemo[mv+1].ip1 = 0; - imemo[mv+1].ip2 = 0; - imemo[mv+1].nuclearZone = 0; - imemo[mv+2].proton = 0; - imemo[mv+2].ip1 = 0; - imemo[mv+2].ip2 = 0; - imemo[mv+2].nuclearZone = 1; - } - return; - } - - G4ThreeVector G4PreEquilibrium::cms( const G4ThreeVector p, const G4ThreeVector v, - const G4double tcm ) const - { - // momentum calculation in system which has velocity v relative to given one - // - G4double temp1 = sqrt( 1 - v.mag2() ); - G4double temp2 = p.dot(v)/v.mag2()*(1/temp1-1); - G4ThreeVector result( p.x() + v.x()*(temp2-tcm/temp1), - p.y() + v.y()*(temp2-tcm/temp1), - p.z() + v.z()*(temp2-tcm/temp1) ); - return result; - } - - void G4PreEquilibrium::bertcem( const G4int nuclideTypeNumber, const G4int mediumNumber ) - { - // this routine was called by cascade and by cemgeo - // - aNucl = GetA_FCOMON(nuclideTypeNumber,mediumNumber); - zNucl = GetZ_FCOMON(nuclideTypeNumber,mediumNumber); - SetT0( 3.4995 ); - // - // neutron density = proton density = nucleon density - // - const G4double a[10] = { 0.95, 0.8, 0.5, 0.2, 0.1, 0.05, 0.01, 0.0, 0.0, 0.0 }; - const G4double r0n = 1.07; - const G4double rmax = 10; - const G4double bnr = 0.545; - // - G4double rn = r0n*pow(aNucl,oneThird); - G4int i; - // - const G4int N = 7; - for( i = 0; i < N; ++i )rsm.push_back( rn+bnr*(log((1-a[i])/a[i])) ); - rsm.push_back( rmax ); - // - G4double hin[10], fi[10]; - fi[0] = fintfis( rsm[0], 0.0, bnr, rn ); - hin[0] = fints2( rsm[0], 0.0, bnr, rn ); - G4double sumhin = hin[0]; - for( i = 1; i < N; ++i ) - { - fi[i] = fintfis( rsm[i], rsm[i-1], bnr, rn ); - hin[i] = fints2( rsm[i], rsm[i-1], bnr, rn ); - sumhin += hin[i]; - } - // - G4double rhon0 = aNucl/(4*pi*sumhin); - G4double fi0 = (4*pi*zNucl*0.00144*rhon0)/aNucl; - rhon.push_back( 3*hin[0]*rhon0/rsm[0]/rsm[0]/rsm[0] ); - af.push_back( fi[0]*fi0*3/rsm[0]/rsm[0]/rsm[0] ); - for( i = 1; i < N; ++i ) - { - rhon.push_back( 3*hin[i]*rhon0/(rsm[i]*rsm[i]*rsm[i]-rsm[i-1]*rsm[i-1]*rsm[i-1]) ); - tfp.push_back( 0.1985*pow( rhon[i]*zNucl/aNucl, twoThirds ) ); - tfn.push_back( 0.1985*pow( rhon[i]*(aNucl-zNucl)/aNucl, twoThirds ) ); - af.push_back( 3*fi0*fi[i]/(rsm[i]*rsm[i]*rsm[i]-rsm[i-1]*rsm[i-1]*rsm[i-1]) ); - rbig.push_back( rsm[i]/rsm[N] ); - } - rbig.push_back( rmax/rsm[N-1] ); - af.push_back( zNucl*0.00144/rmax ); - for( i = 0; i < N; ++i ) - { - rhop.push_back( rhon[i]*zNucl/aNucl ); - rhon[i] *= (aNucl-zNucl)/aNucl; - } - // - af.insert( af.begin(), 10, 0.0 ); - // - G4ThreeVector amnucl; - if( !cascem( amnucl ) ) - { - SetLXYZ( amnucl ); - SetN0( exitons.protons + exitons.neutrons + exitons.hols ); - SetH0( exitons.hols ); - SetPZ0( exitons.protons ); - SetP0( exitons.protons + exitons.neutrons ); - } - return; - } - - G4double G4PreEquilibrium::fintfis( const G4double flim1, const G4double flim2, - const G4double bs, const G4double rs ) - { - const G4int N = 7; - const G4double w[8] = { 0.1012285363, 0.2223810345, 0.3137066459, 0.3626837834, - 0.3626837834, 0.3137066459, 0.2223810345, 0.1012285363 }; - const G4double fiks[8] = { 0.9602898565, 0.7966664774, 0.5255324099, 0.1834346425, - -0.1834346425, -0.5255324099, -0.7966664774, -0.9602898565 }; - // - G4double temp = 0; - for( G4int i = 0; i < 8; ++i ) - { - G4double fy = ((flim1-flim2)*fiks[i]+flim1+flim2)/2; - G4double tmp1 = 0.0; - G4double tmp2 = 0.0; - G4double tmp3 = 0.0; - for( G4int j = 0; j < 8; ++j ) - { - fy = ((flim1-flim2)*fiks[j]+flim1+flim2)/2; - tmp1 += w[j]*(fy*fy)/(1+exp((fy-rs)/bs)); - tmp2 += w[j]*rsm[N]/(1+exp((rsm[N]-rs)/bs)); - tmp3 += w[j]*fy/(1+exp((fy-rs)/bs)); - } - G4double f1 = tmp1*(flim1-flim2)/2; - G4double f2 = tmp2*(flim1-flim2)/2; - G4double f3 = tmp3*(flim1-flim2)/2; - temp += w[i] * (f1/fy + f2 - f3)*fy*fy; - } - return temp*(flim1-flim2)/2; - } - - G4double G4PreEquilibrium::fints2( G4double flim1, G4double flim2, - G4double bs, G4double rs ) - { - const G4double w[8] = { 0.1012285363, 0.2223810345, 0.3137066459, 0.3626837834, - 0.3626837834, 0.3137066459, 0.2223810345, 0.1012285363 }; - const G4double fiks[8] = { 0.9602898565, 0.7966664774, 0.5255324099, 0.1834346425, - -0.1834346425, -0.5255324099, -0.7966664774, -0.9602898565 }; - G4double temp = 0; - for( G4int i = 0; i < 8; ++i ) - { - G4double fy = ((flim1-flim2)*fiks[i]+flim1+flim2)/2; - temp += w[i] * (fy*fy)/(1+exp((fy-rs)/bs)); - } - return temp*(flim1-flim2)/2; - } - - G4double G4PreEquilibrium::arfaf( G4double *ami ) - { - // renormalisation of emission probabilities - // - const G4double AMF = 0.0; - // - G4double sfix = 30; - G4double smx = 0; - for( G4int k = 0; k < 7; ++k ) - { - G4double q8; - if( rj[k] <= 0 )q8 = 0; - else - { - G4double tmp; - k == 6 ? tmp = AMF : tmp = ami[k]; - q8 = 2*sqrt(tmp*afj[k]*rj[k]); - } - smx = max( smx, q8 ); - } - G4double result; - smx <= sfix ? result = 0.0 : result = smx-sfix; - return result; - } - - G4double G4PreEquilibrium::fam( const G4double a, const G4double z, const G4double e ) - { - // - // third set of Iljinov, Mebel et al. parameters: without collective effects - // Truran, Cameron & Hils shell corrections, without a dependence on ga - // - const G4double al = 0.072; - const G4double be = 0.257; - const G4double ga = 0.059; - // shell is an inline function defined in the header - return (al+be/pow(a,oneThird))*(1+(1-exp(-ga*e))*shell(a,z)/e); - } - - G4double G4PreEquilibrium::gameqf( const G4int j, const G4double cc, const G4double per, - const G4double am, const G4double radncl ) - { - // - // a possible bug in the original cem.f - // idel set to 0 in inpcem, and nowhere else - // idel checked in precof, bypassing setting amf - // - const G4double AMF = 0.0; - // - // n p d t He-3 He-4 - const G4int gam[6] = { 1, 1, 3, 3, 3, 2 }; // gammab/2 - - G4double result; - G4double q1, q2; - if( j == 6 ) - { - q1 = 2*sqrt( AMF * afj[6] * rj[6] ); - q2 = 33.4/(pi*radncl*radncl); - result = q2/(AMF*afj[6])*((q1-1)*exp(q1-per)+exp(-per)); - } - else - { - G4double alfa, beta, q3, q4, q5; - if( j == 0 ) - { - alfa = 0.76 + 2.2/pow(afj[0],oneThird); - beta = (2.12/pow(afj[0],twoThirds)-0.05)/alfa; - } - else - { - alfa = 1 + cc; - beta = 0.0; - } - q1 = am*afj[j]; - q2 = q1*rj[j]; - q3 = gam[j]*pow(afj[j],twoThirds)*alfa/(q1*q1); - q4 = (2*beta*q1-3)/2 + q2; - q5 = (2*beta*q1-3)*(sqrt(q2)-0.5) + 2*q2; - result = q3*(q4*exp(-per)+q5*exp(2*sqrt(q2)-per)); - } - return result; - } - - G4double G4PreEquilibrium::poten( const G4int i, const IPSTRUCT ip ) const - { - // calculation of particle potential in i'th nuclear zone - // - const G4int N = 7; - const G4double EPS = 0.007; - const G4double VPI = 0.025; - - G4double result; - if( i >= N+2 ) - result = 0.0; - else if( i == N+1 ) - result = ip.proton*af[N]; - else if( ip.ip2 != 0 ) - result = ip.proton*af[i-1]; - else if( ip.nuclearZone != 0 ) - result = ip.proton*af[i-1] + tfp[i-1]*ip.proton + (1-ip.proton)*tfn[i-1] + ip.nuclearZone*EPS; - else - result = ip.proton*af[i-1] - VPI*(ip.ip1-1); - return result; - } - - G4double G4PreEquilibrium::cinema( const G4ThreeVector pstar, const G4ThreeVector v, - G4ThreeVector &p, G4double &ct, G4double &st, - G4double &cfi, G4double &sfi, const G4double cm ) const - { - // kinematic code - // - G4double spv = pstar.dot(v); - G4double v2 = v.mag2(); - G4double temp1 = sqrt(1-v2); - G4double temp2 = spv*(1/temp1-1)/v2; - G4double pmstar = pstar.mag(); - G4double tstar = sqrt(pmstar*pmstar+cm*cm) - cm; - p.setX( pstar.x() + v.x()*(temp2 + (tstar+cm)/temp1) ); - p.setY( pstar.y() + v.y()*(temp2 + (tstar+cm)/temp1) ); - p.setZ( pstar.z() + v.z()*(temp2 + (tstar+cm)/temp1) ); - G4double pm = p.mag(); - if( p.z()*p.z() >= pm*pm ) - { - ct = 1; - st = 0; - cfi = 1; - sfi = 0; - } - else - { - ct = p.z()/pm; - st = sqrt(1-ct*ct); - cfi = p.x()/(pm*st); - sfi = p.y()/(pm*st); - } - return sqrt(pm*pm+cm*cm)-cm; - } - - G4ThreeVector G4PreEquilibrium::rotation( const G4ThreeVector a, - const G4ThreeVector b, - const G4ThreeVector ps ) const - { - G4double sp = a.dot(b); - // - G4double amod = a.mag(); - G4double alpha1 = sp/amod; - G4double alpha2 = sqrt( b.mag2() - alpha1*alpha1 ); - // - G4ThreeVector an = a.cross(b); - // - G4ThreeVector pr; - pr.setX( ps.x()*b.x()/alpha2 + (ps.z()-alpha1*ps.x()/alpha2)*a.x()/amod + (ps.y()*an.x()) ); - pr.setY( ps.x()*b.y()/alpha2 + (ps.z()-alpha1*ps.x()/alpha2)*a.y()/amod + (ps.y()*an.y()) ); - pr.setZ( ps.x()*b.z()/alpha2 + (ps.z()-alpha1*ps.x()/alpha2)*a.z()/amod + (ps.y()*an.z()) ); - pr *= 1/alpha2/amod; - return pr; - } - - G4double G4PreEquilibrium::crossSectionInterp( const G4double x, const G4int lq ) - { - const G4double sigma[28][30] = - { {17613.000, 330.000, 154.000, 96.000, 70.000, - 51.000, 38.400, 30.000, 23.600, 22.400, - 22.200, 22.600, 23.400, 24.700, 29.500, - 40.500, 48.500, 47.400, 47.000, 46.700, - 46.000, 45.000, 43.000, 41.200, 40.800, - 40.500, 39.800, 39.000, 39.000, 38.500}, - {17613.000, 330.000, 154.000, 96.000, 70.000, - 51.000, 38.400, 30.000, 23.600, 22.400, - 22.200, 22.600, 22.800, 22.900, 25.000, - 25.000, 25.000, 25.000, 25.000, 22.000, - 19.500, 17.500, 15.000, 13.700, 12.000, - 11.000, 9.800, 8.800, 8.500, 6.500}, - {20357.000, 950.000, 480.000, 300.000, 200.000, - 160.000, 108.000, 74.000, 50.000, 41.000, - 36.500, 34.000, 32.500, 32.000, 34.200, - 36.100, 37.800, 38.400, 39.000, 40.000, - 40.000, 40.500, 41.100, 42.300, 42.300, - 42.000, 41.100, 39.600, 39.500, 39.200}, - {20357.000, 950.000, 480.000, 300.000, 200.000, - 160.000, 108.000, 74.000, 50.000, 41.000, - 36.500, 34.000, 32.500, 31.200, 30.800, - 25.100, 19.100, 18.000, 16.500, 16.000, - 15.200, 14.000, 12.100, 10.800, 10.700, - 11.000, 9.600, 8.000, 7.000, 6.200}, - { 6.000, 6.000, 6.500, 7.000, 8.500, - 10.500, 16.500, 25.300, 57.500, 68.500, - 64.500, 52.000, 40.500, 25.700, 29.000, - 32.100, 45.600, 38.000, 44.300, 54.000, - 58.000, 45.700, 35.300, 35.000, 34.300, - 34.000, 32.400, 30.400, 26.500, 25.000}, - { 2.000, 2.000, 2.250, 2.300, 2.400, - 2.500, 4.500, 7.700, 20.000, 25.200, - 23.900, 21.000, 16.000, 10.500, 11.200, - 14.000, 20.300, 16.000, 19.300, 26.000, - 26.500, 18.700, 11.700, 10.500, 9.600, - 9.500, 6.800, 5.900, 5.000, 4.000}, - { 4.000, 4.000, 4.250, 4.700, 6.100, - 8.000, 12.000, 17.600, 37.500, 43.300, - 40.600, 31.000, 24.500, 13.100, 11.000, - 9.500, 8.300, 5.000, 5.500, 6.800, - 7.000, 3.500, 2.000, 1.900, 1.800, - 1.600, 0.220, 0.150, 0.048, 0.009}, - { 1.900, 2.300, 3.500, 5.500, 9.000, - 14.000, 28.000, 60.000, 163.000, 195.000, - 185.000, 145.000, 113.000, 45.000, 25.200, - 21.600, 15.600, 15.200, 19.500, 22.800, - 24.500, 27.600, 36.700, 41.000, 39.000, - 32.300, 28.900, 27.700, 24.900, 23.500}, - { 1.900, 2.300, 3.500, 5.500, 9.000, - 14.000, 28.000, 60.000, 163.000, 195.000, - 184.900, 144.800, 112.800, 44.400, 23.200, - 18.600, 10.800, 7.700, 9.000, 10.200, - 11.300, 13.500, 16.900, 19.000, 16.900, - 12.600, 5.700, 5.600, 4.900, 4.000}, - { 10.000, 12.000, 14.000, 16.000, 17.000, - 20.000, 30.000, 38.000, 42.000, 38.500, - 32.000, 24.000, 18.000, 1.000, 0.000, - 0.000, 0.000, 0.000, 0.000, 0.000, - 0.000, 0.000, 0.000, 0.000, 0.000, - 0.000, 0.000, 0.000, 0.000, 0.000}, - { 0.000, 0.000, 0.000, 0.050, 0.100, - 0.300, 0.600, 1.200, 2.200, 3.200, - 3.400, 3.600, 3.700, 3.800, 3.900, - 3.900, 3.900, 4.000, 4.000, 4.000, - 4.000, 4.000, 3.900, 3.800, 3.500, - 3.200, 2.900, 2.700, 2.400, 2.100}, - { 0.000, 0.000, 0.000, 0.400, 0.800, - 1.400, 2.300, 4.400, 8.000, 10.800, - 15.000, 16.100, 16.600, 17.000, 17.300, - 17.500, 17.600, 17.700, 17.800, 17.900, - 17.800, 17.500, 16.800, 16.000, 13.700, - 12.600, 11.600, 10.800, 9.200, 8.000}, - { 0.000, 0.000, 0.000, 0.300, 0.600, - 1.000, 1.600, 2.700, 5.000, 6.300, - 6.900, 7.200, 7.400, 7.500, 7.600, - 7.700, 7.800, 8.000, 8.100, 8.100, - 8.100, 8.000, 7.900, 7.700, 7.000, - 6.600, 6.200, 5.800, 4.600, 3.500}, - { 0.000, 0.000, 0.000, 0.000, 0.100, - 0.200, 0.500, 0.800, 1.800, 2.100, - 2.400, 2.600, 2.800, 3.000, 3.200, - 3.300, 3.400, 3.650, 3.800, 3.850, - 3.900, 4.000, 4.000, 3.900, 3.500, - 3.200, 2.700, 2.100, 1.000, 0.600}, - { 0.000, 0.000, 0.000, 0.000, 0.200, - 0.600, 1.200, 2.100, 3.300, 4.100, - 4.900, 6.000, 7.700, 8.900, 10.000, - 10.200, 10.100, 9.800, 9.800, 10.100, - 10.300, 8.500, 6.900, 5.500, 3.900, - 3.300, 3.000, 2.700, 2.200, 2.100}, - { 0.000, 0.000, 0.000, 0.000, 0.100, - 0.300, 0.500, 0.700, 0.900, 1.100, - 1.300, 1.500, 1.800, 2.200, 2.600, - 2.600, 2.400, 2.400, 3.000, 3.400, - 3.500, 3.100, 2.700, 2.400, 2.100, - 1.900, 1.800, 1.700, 1.500, 1.300}, - { 0.000, 0.000, 0.000, 0.200, 0.700, - 1.400, 3.000, 4.900, 5.100, 5.000, - 4.400, 3.600, 3.100, 2.700, 2.400, - 2.200, 2.000, 1.700, 1.600, 1.400, - 1.300, 1.100, 0.900, 0.800, 0.600, - 0.600, 0.600, 0.500, 0.400, 0.300}, - { 0.000, 0.000, 0.000, 0.200, 0.500, - 0.800, 1.300, 2.100, 3.400, 4.700, - 6.400, 6.800, 6.200, 5.200, 7.100, - 8.000, 8.900, 9.800, 10.300, 10.500, - 10.600, 9.900, 7.700, 5.500, 3.400, - 2.800, 2.700, 2.600, 2.200, 1.900}, - { 0.000, 0.100, 0.500, 1.200, 3.000, - 4.200, 5.000, 5.200, 6.100, 7.900, - 8.900, 9.600, 9.900, 10.000, 10.100, - 10.100, 10.000, 9.800, 9.500, 8.800, - 8.000, 6.800, 5.900, 5.200, 4.200, - 2.900, 2.700, 2.500, 2.200, 1.900}, - { 0.000, 0.011, 0.026, 0.060, 0.120, - 0.180, 0.270, 0.280, 0.240, 0.186, - 0.130, 0.076, 0.052, 0.040, 0.031, - 0.032, 0.040, 0.044, 0.039, 0.033, - 0.028, 0.025, 0.022, 0.019, 0.015, - 0.012, 0.007, 0.004, 0.002, 0.000}, - { 0.000, 0.070, 0.107, 0.143, 0.183, - 0.217, 0.240, 0.214, 0.177, 0.141, - 0.117, 0.089, 0.081, 0.080, 0.083, - 0.093, 0.103, 0.095, 0.061, 0.050, - 0.049, 0.052, 0.056, 0.050, 0.025, - 0.017, 0.008, 0.004, 0.002, 0.000}, - { 5.000, 3.000, 1.125, 0.900, 0.700, - 0.580, 0.500, 0.415, 0.350, 0.280, - 0.260, 0.270, 0.280, 0.295, 0.310, - 0.298, 0.250, 0.200, 0.145, 0.115, - 0.095, 0.065, 0.040, 0.028, 0.018, - 0.010, 0.005, 0.000, 0.000, 0.000}, - { 0.000, 0.011, 0.031, 0.055, 0.067, - 0.078, 0.084, 0.088, 0.088, 0.087, - 0.085, 0.083, 0.080, 0.078, 0.074, - 0.072, 0.069, 0.066, 0.064, 0.060, - 0.057, 0.052, 0.038, 0.031, 0.027, - 0.024, 0.023, 0.022, 0.022, 0.022}, - { 0.000, 0.002, 0.004, 0.006, 0.007, - 0.008, 0.008, 0.009, 0.011, 0.012, - 0.013, 0.014, 0.015, 0.016, 0.016, - 0.016, 0.016, 0.016, 0.016, 0.015, - 0.015, 0.014, 0.012, 0.010, 0.009, - 0.008, 0.007, 0.007, 0.007, 0.007}, - { 0.000, 0.002, 0.004, 0.006, 0.007, - 0.008, 0.008, 0.009, 0.011, 0.012, - 0.013, 0.014, 0.015, 0.016, 0.016, - 0.016, 0.016, 0.016, 0.016, 0.015, - 0.015, 0.014, 0.012, 0.010, 0.009, - 0.008, 0.007, 0.007, 0.007, 0.007}, - { 0.000, 0.010, 0.027, 0.047, 0.057, - 0.065, 0.069, 0.071, 0.069, 0.065, - 0.061, 0.057, 0.052, 0.048, 0.043, - 0.039, 0.035, 0.030, 0.027, 0.023, - 0.019, 0.015, 0.008, 0.004, 0.003, - 0.002, 0.002, 0.001, 0.001, 0.001}, - { 0.000, 0.015, 0.039, 0.067, 0.081, - 0.094, 0.100, 0.106, 0.110, 0.111, - 0.111, 0.111, 0.110, 0.110, 0.106, - 0.104, 0.101, 0.098, 0.096, 0.090, - 0.087, 0.080, 0.062, 0.051, 0.045, - 0.040, 0.037, 0.036, 0.036, 0.036}, - { 0.000, 0.081, 0.133, 0.203, 0.303, - 0.397, 0.510, 0.494, 0.417, 0.327, - 0.247, 0.180, 0.172, 0.187, 0.208, - 0.231, 0.253, 0.250, 0.211, 0.194, - 0.187, 0.187, 0.184, 0.173, 0.138, - 0.119, 0.095, 0.070, 0.049, 0.037} }; - const G4double argus[6][30] = - { {0.000, 0.010, 0.020, 0.030, 0.040, - 0.050, 0.070, 0.100, 0.150, 0.200, - 0.250, 0.300, 0.350, 0.400, 0.500, - 0.650, 0.850, 0.950, 1.100, 1.300, - 1.500, 2.000, 3.000, 4.000, 5.000, - 7.000, 10.000, 16.000, 22.000, 30.000}, - {0.000, 0.010, 0.020, 0.030, 0.040, - 0.050, 0.075, 0.100, 0.150, 0.175, - 0.200, 0.225, 0.250, 0.350, 0.450, - 0.500, 0.600, 0.700, 0.800, 0.850, - 0.900, 1.000, 1.200, 1.300, 1.400, - 1.600, 3.000, 4.000, 10.000, 20.000}, - {0.200, 0.250, 0.300, 0.350, 0.400, - 0.450, 0.500, 0.550, 0.600, 0.650, - 0.700, 0.750, 0.800, 0.850, 0.900, - 0.950, 1.000, 1.100, 1.200, 1.300, - 1.400, 1.600, 1.800, 2.000, 2.400, - 2.600, 2.800, 3.000, 3.500, 4.000}, - {0.150, 0.175, 0.200, 0.225, 0.250, - 0.275, 0.300, 0.325, 0.350, 0.375, - 0.400, 0.450, 0.500, 0.550, 0.600, - 0.650, 0.700, 0.750, 0.800, 0.850, - 0.900, 0.950, 1.000, 1.050, 1.150, - 1.250, 1.500, 2.000, 3.000, 4.000}, - {0.010, 0.020, 0.040, 0.050, 0.060, - 0.070, 0.080, 0.090, 0.100, 0.120, - 0.150, 0.170, 0.190, 0.210, 0.250, - 0.270, 0.300, 0.320, 0.350, 0.370, - 0.400, 0.440, 0.500, 0.600, 0.700, - 0.800, 0.900, 1.000, 2.000, 3.000}, - {0.400, 0.450, 0.500, 0.550, 0.575, - 0.600, 0.625, 0.650, 0.700, 0.750, - 0.800, 0.850, 0.900, 0.950, 1.000, - 1.050, 1.100, 1.150, 1.200, 1.250, - 1.300, 1.500, 2.000, 2.500, 3.000, - 3.500, 4.000, 4.500, 5.000, 5.500} }; - G4int i; - if( lq < 3 )i = 0; - else - { - if( lq < 9 )i = 1; - else - { - if( lq < 18 )i = 2; - else - { - if( lq < 20 )i = 3; - else - { - if( lq < 21 )i = 4; - else - { - if( lq < 26 )i = 5; - else i = 3; - } - } - } - } - } - G4int lpha = 0; - while( x > argus[lpha][i] )++lpha; - if( x == argus[lpha][i] )return sigma[lpha][lq]; - if( lpha == 0 )return 0.0; - G4double phi1, psi1, phi2, psi2, phi3, psi3; - if( lpha >= 28 ) - { - phi1 = sigma[27][lq]; - psi1 = argus[27][i]; - phi2 = sigma[28][lq]; - psi2 = argus[28][i]; - phi3 = sigma[29][lq]; - psi3 = argus[29][i]; - } - else - { - phi1 = sigma[lpha-1][lq]; - psi1 = argus[lpha-1][i]; - phi2 = sigma[lpha][lq]; - psi2 = argus[lpha][i]; - phi3 = sigma[lpha+1][lq]; - psi3 = argus[lpha+1][i]; - } - G4double delta = (psi2-psi3)*psi1*psi1 + (psi3-psi1)*psi2*psi2 + (psi1-psi2)*psi3*psi3; - G4double deltaa = phi1*(psi2-psi3) + phi2*(psi3-psi1) + phi3*(psi1-psi2); - G4double deltab = (phi2-phi3)*psi1*psi1 + (phi3-phi1)*psi2*psi2 + (phi1-phi2)*psi3*psi3; - G4double deltac = (psi2*phi3-psi3*phi2)*psi1*psi1 + (psi3*phi1-psi1*phi3)*psi2*psi2 + - (psi1*phi2-psi2*phi1)*psi3*psi3; - G4double a = deltaa/delta; - G4double b = deltab/delta; - G4double c = deltac/delta; - return a*x*x + b*x + c; - } - - G4double G4PreEquilibrium::sigmat( const G4int i, const G4int ms, const G4int mq, - const G4int ksi, const G4int iks, const G4double t ) - { - // choose cross section type and calculate cross section value for given energy - // - const G4int icst[28] = { - 210, 211, 220, 221, 120, 121, 122, - 110, 111, 123, 214, 215, 224, 225, - 114, 115, 126, 124, 125, 10111, 10112, - 10113, 10115, 10114, 10116, 10118, 10117, 10110 }; - const G4int nsicst[21] = { - 112, 113, 116, 117, 127, 130, 131, - 132, 133, 134, 135, 136, 137, 212, - 213, 216, 217, 222, 223, 226, 227 }; - - G4int ics = 10000*i + 1000*ms + 100*mq + 10*ksi + iks; - G4int js = 0; - do - { - if( ics == icst[js] )return crossSectionInterp( t, js ); - } while ( js++ < 28 ); - G4int nsjs = 0; - while( ics != nsicst[nsjs] )++nsjs; - G4double result = 0; - switch (nsjs) - { - case 2: - result = crossSectionInterp( t, 9 ); - break; - case 4: - result = crossSectionInterp( t, 14 ) + crossSectionInterp( t, 15 ); - break; - case 5: - result = crossSectionInterp( t, 17 ) + crossSectionInterp( t, 18 ) + - crossSectionInterp( t, 16 ); - break; - case 6: - result = (crossSectionInterp( t, 7 ) + crossSectionInterp( t, 4 ))/2; - break; - case 7: - result = (crossSectionInterp( t, 8 ) + crossSectionInterp( t, 5 ) - - crossSectionInterp( t, 6 ))/2; - break; - case 8: - result = crossSectionInterp( t, 6 ); - break; - case 9: - result = crossSectionInterp( t, 9 ); - break; - case 10: - result = (crossSectionInterp( t, 14 ) + crossSectionInterp( t, 17 ))/2; - break; - case 11: - result = (crossSectionInterp( t, 15 ) + crossSectionInterp( t, 18 ))/2; - break; - case 12: - result = crossSectionInterp( t, 16 )/2; - break; - case 13: - result = (crossSectionInterp( t, 14 ) + crossSectionInterp( t, 15 ) + - crossSectionInterp( t, 17 ) + crossSectionInterp( t, 18 ) + - crossSectionInterp( t, 16 ))/2; - break; - case 17: - result = crossSectionInterp( t, 10 ) + crossSectionInterp( t, 11 ); - break; - case 20: - result = crossSectionInterp( t, 12 ); - break; - case 21: - result = 2*crossSectionInterp( t, 12 ) + crossSectionInterp( t, 13 ); - break; - } - return result; - } - - void G4PreEquilibrium::slqek( G4int &i, G4int &ms, G4int &mq, G4int &ksi, G4int &me, - const G4int lin, const G4int msin, const G4int mqin, - const G4int mein, const G4int ln, const G4int msn, - const G4int mqn, const G4int men ) - { - // form cross-sections type - // - ms = msin + msn; - i = lin + ln; // this ln is not the data member ln - mq = mqin + mqn; - me = mein + men; - if( ms != 0 )return; // strange particle - if( i > 0 ) - ksi = 1; - else if( mq > 1 ) - me != 1 ? ksi = 1 : ksi = 2; - else if( me == 2 ) - ksi = 1; - else if( me == -1 ) - ksi = 1; - else if( me != 0 ) - mein == 1 ? ksi = 2 : ksi = 3; - else - mein == -1 ? ksi = 2 : ksi = 3; - return; - } - - G4double G4PreEquilibrium::costa( const G4int j, const G4double t ) - { - // cosinus calculation - // - const G4double ankj[29][4][4] = - { { { 2.7404, -9.6998, 10.400, 2.3882 }, - {-7.5137, 44.096, -74.379, 46.038 }, - { 7.5479, -39.274, 64.835, -41.609 }, - {-1.8369, 8.6911, -13.060, 7.1880 } }, - { {-30.853, 106.24, -129.39, 54.339 }, - { 19.465, -68.102, 96.358, -56.827 }, - {-3.4831, 12.341, -18.592, 12.024 }, - { 0.18941, -0.67880, 1.0665, -0.72910 } }, - { { 0.10258, -1.0542, 11.389, -16.638 }, - {-0.49607, 11.800, -90.857, 164.76 }, - { 1.5437, -33.769, 251.92, -450.71 }, - {-1.2021, 25.336, -186.58, 332.54 } }, - { { 0.15789, 2.9671, -5.5251, 6.8925 }, - {-7.0218, -205.34, 569.51, -898.58 }, - { 134.96, 4872.2, -14674., 23924. }, - {-821.16, -32586., 100980., -165530. } }, - { { 0.31531, -7.4981, 43.295, -76.360 }, - {-6.5373, 193.07, -1018.1, 1742.6 }, - { 46.864, -1303.0, 6729.1, -11075. }, - {-95.192, 2637.3, -12857., 20294. } }, - { {-17.953, 109.72, -239.54, 228.26 }, - { 91.968, -519.63, 1126.6, -1074.0 }, - {-132.70, 741.12, -1600.0, 1524.9 }, - { 58.598, -318.74, 677.51, -640.11 } }, - { { 0.42169, 147.05, -653.35, 915.07 }, - {-3.5198, -260.19, 1225.0, -1748.1 }, - { 3.6373, 155.92, -752.01, 1079.6 }, - {-0.78041, -30.563, 147.95, -212.50 } }, - { {-0.38288, 3.7587, -6.5144, 6.7740 }, - { 103.81, -272.82, 477.59, -512.22 }, - {-1788.2, 4305.2, -7931.4, 9347.1 }, - { 7147.5, -3339.5, -4139.2, -4436.4 } }, - { { 0.24991, 32.028, -118.82, 150.99 }, - {-2.6994, -460.45, 1895.9, -2519.0 }, - { 16.268, 2138.4, -9126.2, 12431. }, - {-29.654, -3182.3, 13944., -19342. } }, - { { 3.9025, -91.126, 323.73, -400.48 }, - {-20.619, 491.70, -1715.5, 2114.3 }, - { 33.004, -766.84, 2700.3, -3352.5 }, - {-16.367, 373.94, -1320.2, 1642.3 } }, - { { 19.402, -224.46, 747.33, -935.70 }, - {-44.180, 471.94, -1485.6, 1805.5 }, - { 31.567, -301.76, 907.63, -1077.3 }, - {-6.8648, 60.476, -175.20, 203.81 } }, - { { 0.40693, -4.1404, 14.044, -17.265 }, - {-3.6799, 59.610, -162.69, 188.73 }, - { 14.556, -175.50, 458.39, -533.90 }, - {-12.621, 149.64, -381.18, 451.41 } }, - { {-0.47554, 2.2641, -12.528, 24.647 }, - { 5.1620, -9.9236, 55.623, -104.62 }, - {-8.1117, 19.315, -84.255, 139.08 }, - { 3.5187, -9.1783, 34.950, -51.243 } }, - { { 0.48173, 5.7726, -13.745, 27.125 }, - {-4.4804, -38.582, 111.59, -243.05 }, - { 16.306, 110.46, -330.45, 722.70 }, - {-15.968, -80.140, 246.16, -607.53 } }, - { {-5.1646, -6.0776, 78.989, -107.05 }, - { 21.871, 56.915, -401.59, 512.15 }, - {-27.993, -94.670, 569.28, -696.21 }, - { 11.587, 45.998, -245.6, 284.52 } }, - { {-53.067, 576.12, -1543.8, 164550. }, - { 147.50, -1638., 4592.3, -4994.9 }, - {-134.36, 1578.0, -4446.3, 4902.2 }, - { 40.253, -488.60, 1400.1, -1560.6 } }, - { { 0.14988, 2.8753, -5.3078, 6.2233 }, - {-5.9558, -162.03, 430.79, -625.48 }, - { 128.75, 3140.2, -7918.9, 10983. }, - {-851.61, -18780., 44607., -58790. } }, - { { 0.53689, -13.216, 81.011, -142.85 }, - {-10.550, 296.29, -1695.7, 2893.5 }, - { 69.621, -1924.5, 10620., -17468. }, - {-138.65, 3928.1, -20293., 32058. } }, - { { 0.65288, 0.38977, 0.84078, 0.18893 }, - {-4.3964, 34.309, -73.692, 84.308 }, - { 14.889, -143.80, 312.27, -350.14 }, - {-15.658, 171.60, -372.12, 412.99 } }, - { { 0.085591, 5.0390, -13.782, 14.661 }, - { 0.054284, -9.2324, 36.397, -42.962 }, - {-0.051111, 4.6003, -20.534, 27.731 }, - { 0.0074514, -0.62529, 2.9159, -4.1101 } }, - { { 0.071622, 3.0960, -11.125, 18.130 }, - { 0.092581, -3.2186, 20.273, -33.245 }, - {-0.051531, 0.89886, -7.5084, 13.188 }, - { 0.0058258, -0.0017288, 0.70224, -1.4854 } }, - { { 0.082300, 0.15854, 3.7716, -4.0562 }, - { 0.010802, -0.33688, 1.1727, -0.67476 }, - {-0.0021798, 0.052166, -0.25816, 0.32048 }, - { 0.000065764, -0.0014711, 0.0078209, -0.010580 } }, - { { 0.11138, 0.60396, 3.0174, -4.4190 }, - {-0.017709, 0.23015, -1.8187, 3.4518 }, - { 0.0020977, -0.025458, 0.21626, -0.40692 }, - {-0.000054799, 0.00059111, -0.0055552, 0.010647 } }, - { { 0.17288, 7.1080, -17.961, 16.403 }, - {-0.14504, -13.032, 41.781, -40.799 }, - { 0.045390, 8.3515, -30.260, 32.882 }, - {-0.0047961, -1.4095, 5.3505, -6.0946 } }, - { { 0.037596, 1.4331, -3.1350, 6.4864 }, - { 0.23827, 1.8253, 1.7648, -16.735 }, - {-0.15410, -1.5201, -1.5692, 17.185 }, - { 0.025037, 0.30588, 0.32520, -3.5277 } }, - { { 0.12489, 1.3573, 0.82338, -1.4595 }, - {-0.051577, -0.35778, -1.1690, 1.8078 }, - { 0.0074864, 0.032888, 0.23744, -0.39802 }, - {-0.00029880, -0.00075117, -0.011402, 0.019505 } }, - { { 0.18470, 1.9269, -3.2979, 3.6843 }, - {-0.073932, 0.27213, 1.0600, -2.3354 }, - { 0.018907, -0.056473, -0.16487, 0.38426 }, - {-0.00092984, 0.0025506, 0.0073052, -0.017220 } }, - { {-1.0306, 32.849, -75.052, 60.255 }, - { 7.9586, -125.72, 256.04, -165.47 }, - {-14.797, 165.90, -279.91, 113.33 }, - { 8.2309, -67.871, 85.762, 5.9727 } }, - { {-237.22, 968.90, -1621.9, 1363.7 }, - { 658.00, -2694.1, 4548.0, -3846.0 }, - {-606.53, 2498.3, -4249.8, 3613.6 }, - { 186.04, -769.33, 1316.6, -1124.2 } } }; - G4double ank[4][4]; - for( G4int k = 0; k < 4; ++k ) - { - for( G4int n = 0; n < 4; ++n )ank[n][k] = ankj[n][k][j]; - } - G4double s1 = 0; - G4double s2 = 0; - G4double r = G4UniformRand(); - for( G4int n = 0; n < 4; ++n ) - { - for( G4int k = 0; k < 4; ++k ) - { - s1 += ank[n][k]*pow(t,k)*pow(r,n); - s2 += ank[n][k]*pow(t,k); - } - } - G4double cta = 2*sqrt(r)*(s1+(1-s2)*pow(r,4)) - 1; - if( cta < -1 )cta = -1; - else if( cta > 1 )cta = 1; - return cta; - } - - G4double G4PreEquilibrium::cosex( const G4int i, const G4double t, const G4double cm ) - { - // cosinus calculation for charge exchange scattering - // - G4double result; - if( i != 0 ) - { - if( t <= 0.51 )result = costa( 13, t ); - else - t <= 1 ? result = costa( 14, t ) : result = costa( 15, t ); - } - else - { - if( t <= 0.08 )result = costa( 16, t ); - else - { - if( t <= 0.3 )result = costa( 17, t ); - else - { - if( t <= 1 )result = costa( 9, t ); - else - { - if( t <= 2.4 )result = costa( 10, t ); - else - { - G4double tmax = sqrt(t*(t+2*cm)); - result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); - } - } - } - } - } - return result; - } - - G4double G4PreEquilibrium::cosel( const G4int i, const G4int mq, const G4int ksi, - const G4double t, const G4double cm ) - { - // cosinus calculation for elastic scattering - // - G4double result; - if( i != 0 ) - { - t <= 0.45 ? result = costa( 11, t ) : result = costa( 12, t ); - } - else - { - if( mq >= 2 ) - { - if( ksi >= 2 ) - { - if( t <= 0.97 )result = costa( 2, t ); - else - { - if( t <= 2.8 )result = (1+costa( 0, t ))/2; - else - { - if( t <= 10 )result = (3-costa( 1, t ))/4; - else - { - G4double tmax = sqrt(t*(t+2*cm)); - result = 1+(2*log(1+G4UniformRand()*(exp(-8.7*tmax)-1)))/(8.7*tmax); - } - } - } - } - else - { - if( t <= 0.46 )result = 1-2*G4UniformRand(); - else - { - if( t <= 2.8 )result = (1+costa( 0, t ))/2; - else - { - if( t <= 10 )result = (3-costa( 1, t ))/4; - else - { - G4double tmax = sqrt(t*(t+2*cm)); - result = 1+(2*log(1+G4UniformRand()*(exp(-8.7*tmax)-1)))/(8.7*tmax); - } - } - } - } - } - else - { - if( ksi < 2 ) - { - if( t <= 0.08 )result = costa( 3, t ); - else - { - if( t <= 0.3 )result = costa( 4, t ); - else - { - if( t <= 1 )result = costa( 5, t ); - else - { - if( t <= 2.4 )result = costa( 6, t ); - else - { - G4double tmax = sqrt(t*(t+2*cm)); - result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); - } - } - } - } - } - else if( ksi == 2 ) - { - if( t <= 0.08 )result = costa( 7, t ); - else - { - if( t <= 0.3 )result = costa( 8, t ); - else - { - if( t <= 1 )result = costa( 9, t ); - else - { - if( t <= 2.4 )result = costa( 10, t ); - else - { - G4double tmax = sqrt(t*(t+2*cm)); - result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); - } - } - } - } - } - else if( ksi > 2 ) - { - if( G4UniformRand() <= 0.5 ) - { - if( t <= 0.08 )result = costa( 3, t ); - else - { - if( t <= 0.3 )result = costa( 4, t ); - else - { - if( t <= 1 )result = costa( 5, t ); - else - { - if( t <= 2.4 )result = costa( 6, t ); - else - { - G4double tmax = sqrt(t*(t+2*cm)); - result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); - } - } - } - } - } - else - { - if( t <= 0.08 )result = costa( 7, t ); - else - { - if( t <= 0.3 )result = costa( 8, t ); - else - { - if( t <= 1 )result = costa( 9, t ); - else - { - if( t <= 2.4 )result = costa( 10, t ); - else - { - G4double tmax = sqrt(t*(t+2*cm)); - result = 1+(2*log(1+G4UniformRand()*(exp(-7.5*tmax)-1)))/(7.5*tmax); - } - } - } - } - } - } - } - } - return result; - } - - // end of file 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 073f9e0c3d..878eb04a60 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Chips.hh,v 1.11 2002/12/12 19:14:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Chips.hh,v 1.15 2003/12/09 15:37:55 gunter Exp $ +// GEANT4 tag $Name: geant4-06-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 fc6f4b63f7..6057557b53 100755 --- 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QCHIPSWorld.hh,v 1.12 2003/06/16 17:03:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QCHIPSWorld.hh,v 1.20 2003/12/09 15:37:56 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QCHIPSWorld ---------------- // by Mikhail Kossov, Sept 1999. @@ -38,45 +38,55 @@ class G4QCHIPSWorld { + // Constructor/Destructor +protected: + G4QCHIPSWorld(); // the Default Construction is protected - Singelton public: - // Constructors - G4QCHIPSWorld(G4int nOfParts = 0); // Construction with N particles - G4QCHIPSWorld(const G4QCHIPSWorld& right); // Copy Constructor by value - G4QCHIPSWorld(G4QCHIPSWorld* right); // Copy Constructor by pointer - - ~G4QCHIPSWorld(); // Destructor - - // Overloaded Operators - const G4QCHIPSWorld& operator=(const G4QCHIPSWorld& right); - - // Selectors - G4QParticle* GetQParticle(G4int PDG) const; // Get pointer to particle in CHIPS World - G4QParticle* GetQParticle(G4QPDGCode QPDG) const; // Get pointer to particle in CHIPS World - G4QParticle* GetQParticle(G4QPDGCode* pQP) const; // Get pointer to particle in CHIPS World - G4int GetQPEntries() const; // Get a#of particles in CHIPS World + ~G4QCHIPSWorld(); // Destructor is public because of Windows compilation error + // Member Functions private: - G4QParticleVector* InitCHIPSWorld(G4int nOfParts);// nOfParts<0 kills the CHIPS World @@?? + G4QCHIPSWorld(const G4QCHIPSWorld& right); // copy QCHIPSWorld by value + G4QCHIPSWorld(G4QCHIPSWorld* right); // copy QCHIPSWorld by pointer + const G4QCHIPSWorld& operator=(const G4QCHIPSWorld& right);//copy QCHIPSWorld by Operator + G4bool operator==(const G4QCHIPSWorld &right) const; + G4bool operator!=(const G4QCHIPSWorld &right) const; + +public: + // Pointers to Particles of the Singeltone of the CHIPS World + static G4QCHIPSWorld* Get(); + G4QParticleVector* GetParticles(G4int nOfParts=0); + // Selectors + G4QParticle* GetQParticle(G4int PDG) const;// Get pointer to particle in CHIPSWorld + G4QParticle* GetQParticle(G4QPDGCode QPDG) const;// Get pointer to particle in CHIPSWorld + G4QParticle* GetQParticle(G4QPDGCode* pQP) const;// Get pointer to particle in CHIPSWorld + G4int GetQPEntries() const;// Get a#of particles in CHIPS World // Body private: - G4QParticleVector* qWorld; // Pointer to the CHIPS World (C++ Hip) + //static G4QCHIPSWorld* aWorld; // Pointer to the CHIPS World + static G4QParticleVector & GetQWorld(); }; inline G4QParticle* G4QCHIPSWorld::GetQParticle(G4int PDG) const { - return (*qWorld)[G4QPDGCode(PDG).GetQCode()]; + G4int qCode=G4QPDGCode(PDG).GetQCode(); + //G4cout<<"G4QCHIPSWorld::GetQPart:Q="<GetQCode()]; + return GetQWorld()[pQP->GetQCode()]; } -inline G4int G4QCHIPSWorld::GetQPEntries() const {return (*qWorld).size();} + +inline G4int G4QCHIPSWorld::GetQPEntries() const {return GetQWorld().size();} #endif 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 1a792e7081..260e7d47e5 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QCandidate.hh,v 1.16 2003/06/16 17:04:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QCandidate.hh,v 1.24 2003/12/09 15:37:57 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QCandidate ---------------- // by Mikhail Kossov, Sept 1999. @@ -43,16 +43,16 @@ public: G4QCandidate(G4int PDGcode); // Constructor by PDG Code G4QCandidate(const G4QCandidate& right); // Copy Constructor by value G4QCandidate(G4QCandidate* right); // Copy Constructor by pointer - ~G4QCandidate(); // Destructor + ~G4QCandidate(); // Public Destructor // Overloaded Operators const G4QCandidate& operator=(const G4QCandidate& right); - G4int operator==(const G4QCandidate &right) const; - G4int operator!=(const G4QCandidate &right) const; + G4bool operator==(const G4QCandidate &right) const; + G4bool operator!=(const G4QCandidate &right) const; // Specific Selectors - G4QParentCluster* TakeParClust(G4int nPC);// Get pointer to Parent Cluster from ParClastVector - G4int GetPClustEntries() const; // Get a number of Parent Clusters in ParClastVector - G4bool GetPossibility() const; // Get possibility(true)/forbiding(false) to be a hadr./fragm. - G4bool GetParPossibility() const; // Get possibility(true)/forbiding(false) to be a parent + G4QParentCluster* TakeParClust(G4int nPC);// Get pointer to ParentClust from ParClastVect + G4int GetPClustEntries() const; // Get a#of Parent Clusters in ParClastVector + G4bool GetPossibility() const; // Get possibility(true)/forbid(false) hadr/fr + G4bool GetParPossibility() const; // Get possibility(true)/forbidi(false) parent G4double GetKMin() const; // Get k-minimal for the candidate G4double GetEBMass() const; // Get bound mass in respect to Environment G4double GetNBMass() const; // Get bound mass in respect to TotalNucleus @@ -63,52 +63,52 @@ public: G4double GetSecondRelProb() const; // Get 2nd relative probility of hadronization G4double GetSecondIntProb() const; // Get 2nd integ. probability for randomization // Specific Modifiers - void ClearParClustVector(); // Clear the Parent Claster Vector of the Candidate - void FillPClustVec(G4QParentCluster* pCl);// Fill pointer to Parent Cluster in ParClastVector - void SetPossibility(G4bool choice); // Set possibility(true)/forbiding(false) to be a hadr./fragm. - void SetParPossibility(G4bool choice); // Set possibility(true)/forbiding(false) to be a parent + void ClearParClustVector(); // Clear theParentClasterVector of theCandidate + void FillPClustVec(G4QParentCluster* pCl);// Set pointer to ParentClust in ParClastVector + void SetPossibility(G4bool choice); // Set possibility(true)/forbid(false) hadr/fr + void SetParPossibility(G4bool choice); // Set possibility(true)/forbid(false) parent void SetKMin(G4double kmin); // Set k-minimal for the candidate - void SetDenseProbability(G4double prep); // Set dense-probability for the candidate + void SetDenseProbability(G4double prep); // Set dense-probability for the candidate void SetPreProbability(G4double prep); // Set pre-probability for the candidate void SetRelProbability(G4double relP); // Set the relative probility of hadronization void SetIntegProbability(G4double intP); // Set integrated probability for randomization void SetSecondRelProb(G4double relP); // Set 2nd relative probility of hadronization - void SetSecondIntProb(G4double intP); // Set 2nd integr. probability for randomization + void SetSecondIntProb(G4double intP); // Set 2nd integrProbability for randomization void SetEBMass(G4double newMass); // Set mass bounded to Environment void SetNBMass(G4double newMass); // Set mass bounded to Total Nucleus // Body private: - G4bool possible; // permission/forbiding preFlag to be a hadron/fragment - G4bool parPossible; // permission/forbiding preFlag to be a parent - G4double kMin; // mu^2/2M (Q-case), ~BindingEnergy (Clust.-case) - G4double denseProbability; // a#of clusters of the type in dense region - G4double preProbability; // a#of clusters of the type or Q-suppression - G4double relativeProbability; // relative probability of hadronization - G4double integralProbability; // integrated probability of randomization - G4double secondRelProbability; // spare relative probability of hadronization - G4double secondIntProbability; // spare integrated probability of randomization - G4QParentClusterVector thePClusters; // vector of parent clusters for candid.-fragment - G4double EBMass; // Bound Mass of the cluster in the Environment - G4double NBMass; // Bound Mass of the cluster in the Total Nucleus + G4bool possible; // permission/forbiding preFlag to be a hadron/fragment + G4bool parPossible; // permission/forbiding preFlag to be a parent + G4double kMin; // mu^2/2M (Q-case), ~BindingEnergy (Clust.-case) + G4double denseProbability; // a#of clusters of the type in dense region + G4double preProbability; // a#of clusters of the type or Q-suppression + G4double relativeProbability; // relative probability of hadronization + G4double integralProbability; // integrated probability of randomization + G4double secondRelProbability; // spare relative probability of hadronization + G4double secondIntProbability; // spare integrated probability of randomization + G4QParentClusterVector thePClusters; // vector of parent clusters for candid.-fragment + G4double EBMass; // Bound Mass of the cluster in the Environment + G4double NBMass; // Bound Mass of the cluster in the Total Nucleus }; -inline G4int G4QCandidate::operator==(const G4QCandidate &right) const {return this==&right;} -inline G4int G4QCandidate::operator!=(const G4QCandidate &right) const {return this!=&right;} +inline G4bool G4QCandidate::operator==(const G4QCandidate &rhs) const {return this==&rhs;} +inline G4bool G4QCandidate::operator!=(const G4QCandidate &rhs) const {return this!=&rhs;} -inline G4QParentCluster* G4QCandidate::TakeParClust(G4int nPC) {return thePClusters[nPC];} -inline G4int G4QCandidate::GetPClustEntries() const {return thePClusters.size();} -inline G4bool G4QCandidate::GetPossibility() const {return possible;} -inline G4bool G4QCandidate::GetParPossibility() const {return parPossible;} -inline G4double G4QCandidate::GetKMin() const {return kMin;} -inline G4double G4QCandidate::GetEBMass() const {return EBMass;} -inline G4double G4QCandidate::GetNBMass() const {return NBMass;} -inline G4double G4QCandidate::GetDenseProbability() const {return denseProbability;} -inline G4double G4QCandidate::GetPreProbability() const {return preProbability;} -inline G4double G4QCandidate::GetRelProbability() const {return relativeProbability;} -inline G4double G4QCandidate::GetIntegProbability() const {return integralProbability;} -inline G4double G4QCandidate::GetSecondRelProb() const {return secondRelProbability;} -inline G4double G4QCandidate::GetSecondIntProb() const {return secondIntProbability;} +inline G4QParentCluster* G4QCandidate::TakeParClust(G4int nPC){return thePClusters[nPC];} +inline G4int G4QCandidate::GetPClustEntries() const {return thePClusters.size();} +inline G4bool G4QCandidate::GetPossibility() const {return possible;} +inline G4bool G4QCandidate::GetParPossibility() const {return parPossible;} +inline G4double G4QCandidate::GetKMin() const {return kMin;} +inline G4double G4QCandidate::GetEBMass() const {return EBMass;} +inline G4double G4QCandidate::GetNBMass() const {return NBMass;} +inline G4double G4QCandidate::GetDenseProbability() const {return denseProbability;} +inline G4double G4QCandidate::GetPreProbability() const {return preProbability;} +inline G4double G4QCandidate::GetRelProbability() const {return relativeProbability;} +inline G4double G4QCandidate::GetIntegProbability() const {return integralProbability;} +inline G4double G4QCandidate::GetSecondRelProb() const {return secondRelProbability;} +inline G4double G4QCandidate::GetSecondIntProb() const {return secondIntProbability;} inline void G4QCandidate::ClearParClustVector() { @@ -120,16 +120,16 @@ inline void G4QCandidate::FillPClustVec(G4QParentCluster* pCl) { thePClusters.push_back(pCl); // Fill new instance of PCl } -inline void G4QCandidate::SetPossibility(G4bool choice) {possible=choice;} -inline void G4QCandidate::SetParPossibility(G4bool choice) {parPossible=choice;} -inline void G4QCandidate::SetKMin(G4double kmin) {kMin=kmin;} -inline void G4QCandidate::SetDenseProbability(G4double prep) {denseProbability=prep;} -inline void G4QCandidate::SetPreProbability(G4double prep) {preProbability=prep;} -inline void G4QCandidate::SetRelProbability(G4double relP) {relativeProbability=relP;} -inline void G4QCandidate::SetIntegProbability(G4double intP) {integralProbability=intP;} -inline void G4QCandidate::SetSecondRelProb(G4double relP) {secondRelProbability=relP;} -inline void G4QCandidate::SetSecondIntProb(G4double intP) {secondIntProbability=intP;} -inline void G4QCandidate::SetEBMass(G4double newM) {EBMass=newM;} -inline void G4QCandidate::SetNBMass(G4double newM) {NBMass=newM;} +inline void G4QCandidate::SetPossibility(G4bool choice) {possible=choice;} +inline void G4QCandidate::SetParPossibility(G4bool choice) {parPossible=choice;} +inline void G4QCandidate::SetKMin(G4double kmin) {kMin=kmin;} +inline void G4QCandidate::SetDenseProbability(G4double prep) {denseProbability=prep;} +inline void G4QCandidate::SetPreProbability(G4double prep) {preProbability=prep;} +inline void G4QCandidate::SetRelProbability(G4double relP) {relativeProbability=relP;} +inline void G4QCandidate::SetIntegProbability(G4double intP) {integralProbability=intP;} +inline void G4QCandidate::SetSecondRelProb(G4double relP) {secondRelProbability=relP;} +inline void G4QCandidate::SetSecondIntProb(G4double intP) {secondIntProbability=intP;} +inline void G4QCandidate::SetEBMass(G4double newM) {EBMass=newM;} +inline void G4QCandidate::SetNBMass(G4double newM) {NBMass=newM;} #endif 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 2e3362e0e7..62d15a378f 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QCandidateVector.hh,v 1.13 2003/06/16 17:04:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QCandidateVector.hh,v 1.17 2003/12/09 15:37:58 gunter Exp $ +// GEANT4 tag $Name: geant4-06-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 5f9e18463e..c8627efc82 100755 --- 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QChipolino.hh,v 1.11 2003/06/16 17:04:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QChipolino.hh,v 1.19 2003/12/09 15:37:59 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QChipolino ---------------- // by Mikhail Kossov, Sept 1999. @@ -33,7 +33,6 @@ #define G4QChipolino_h 1 #include "globals.hh" -//#include "G4QContent.hh" #include "G4QPDGCode.hh" class G4QChipolino @@ -45,12 +44,12 @@ public: G4QChipolino(const G4QChipolino& right); // Copy constructor by value G4QChipolino(G4QChipolino* right); // Copy constructor by pointer - ~G4QChipolino(); // Destructor + ~G4QChipolino(); // Public Destructor // Operators const G4QChipolino& operator=(const G4QChipolino& right); - G4int operator==(const G4QChipolino& right) const; - G4int operator!=(const G4QChipolino& right) const; + G4bool operator==(const G4QChipolino& right) const; + G4bool operator!=(const G4QChipolino& right) const; // Selectors G4double GetMass(); // Get mass of the Chipolino (MinDoubleHadronMass) @@ -76,8 +75,8 @@ private: std::ostream& operator<<(std::ostream& lhs, G4QChipolino& rhs); //std::ostream& operator<<(std::ostream& lhs, const G4QChipolino& rhs); -inline G4int G4QChipolino::operator==(const G4QChipolino& right) const {return this==&right;} -inline G4int G4QChipolino::operator!=(const G4QChipolino& right) const {return this!=&right;} +inline G4bool G4QChipolino::operator==(const G4QChipolino& rhs) const {return this==&rhs;} +inline G4bool G4QChipolino::operator!=(const G4QChipolino& rhs) const {return this!=&rhs;} inline G4double G4QChipolino::GetMass() {return minM;} inline G4double G4QChipolino::GetMass2() {return minM*minM;} 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 d42fe3bb91..4cae928b09 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QContent.hh,v 1.16 2003/06/16 17:04:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QContent.hh,v 1.24 2003/12/09 15:38:00 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QContent ---------------- // by Mikhail Kossov, Sept 1999. @@ -35,6 +35,7 @@ #include #include "globals.hh" #include "Randomize.hh" +#include "G4QException.hh" class G4QContent { @@ -43,12 +44,12 @@ public: G4QContent(const G4QContent& rhs); // Copy constructor by value G4QContent(G4QContent* rhs); // Copy constructor by pointer - ~G4QContent(); + ~G4QContent(); // Public Destructor // Overloaded operators const G4QContent& operator=(const G4QContent& rhs); - G4int operator==(const G4QContent& rhs) const; - G4int operator!=(const G4QContent& rhs) const; + G4bool operator==(const G4QContent& rhs) const; + G4bool operator!=(const G4QContent& rhs) const; G4QContent operator+=(G4QContent& rhs); G4QContent operator-=(G4QContent& rhs); G4QContent operator*=(G4int& rhs); @@ -159,8 +160,8 @@ G4QContent operator*(const G4int& lhs, const G4QContent& rhs); // Not member functions //---------------------------------------------------------------------------------------- -inline G4int G4QContent::operator==(const G4QContent& rhs) const {return this==&rhs;} -inline G4int G4QContent::operator!=(const G4QContent& rhs) const {return this!=&rhs;} +inline G4bool G4QContent::operator==(const G4QContent& rhs) const {return this==&rhs;} +inline G4bool G4QContent::operator!=(const G4QContent& rhs) const {return this!=&rhs;} inline G4int G4QContent::GetQ() const {return nU+nD+nS;} inline G4int G4QContent::GetAQ() const {return nAU+nAD+nAS;} inline G4int G4QContent::GetTot() const {return nU+nD+nS+nAU+nAD+nAS;} @@ -218,6 +219,7 @@ inline G4int G4QContent::GetZNSPDGCode() const //else //{ G4int b=(kU+kD-kS-kS)/3; // Baryon number-n*{LAMBDA=kS) + if(!b && !kS) return GetSPDGCode(); // Not a nucleus G4int d=kU-kD; // Isotopic shift G4int n=(b-d)/2; // A#of neutrons return 90000000+1000*(1000*kS+n+d)+n; 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 71f22c93c7..85ec63ed32 100755 --- 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QDecayChan.hh,v 1.11 2003/06/16 17:04:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QDecayChan.hh,v 1.19 2003/12/09 15:38:01 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QDecayChan ---------------- // by Mikhail Kossov, Sept 1999. @@ -41,26 +41,26 @@ class G4QDecayChan public: // Constructors G4QDecayChan(); // Default Constructor - G4QDecayChan(G4QPDGCodeVector secHadr, G4double probLimit = 1.); // General Constructor - G4QDecayChan(G4double pLev, G4int PDG1, G4int PDG2, G4int PDG3=0); // Detailed Constructor - G4QDecayChan(const G4QDecayChan& right); // Copy Constructor by value - G4QDecayChan(G4QDecayChan* right); // Copy Constructor by pointer + //G4QDecayChan(G4QPDGCodeVector secHadr, G4double probLimit = 1.); // General Constructor + G4QDecayChan(G4double pLev, G4int PDG1, G4int PDG2, G4int PDG3=0); // DetailedConstructor + G4QDecayChan(const G4QDecayChan& right); // Copy ByValueConstructor + G4QDecayChan(G4QDecayChan* right); // Copy ByPointerConstructor - ~G4QDecayChan(); // Destructor + ~G4QDecayChan(); // Public Destructor // Operators const G4QDecayChan& operator=(const G4QDecayChan& right); - G4int operator==(const G4QDecayChan& rhs) const; - G4int operator!=(const G4QDecayChan& rhs) const; + G4bool operator==(const G4QDecayChan& rhs) const; + G4bool operator!=(const G4QDecayChan& rhs) const; // Selectors - G4double GetDecayChanLimit() const; // Get a Decay Channel Probability Limit - G4double GetMinMass() const; // Get a Minimum Mass for the Decay Channel - G4QPDGCodeVector GetVecOfSecHadrons(); // Get a Vector of secondary PDG-particles + G4double GetDecayChanLimit() const; // Get a Decay Channel Probability Limit + G4double GetMinMass() const; // Get a Minimum Mass for the Decay Channel + G4QPDGCodeVector GetVecOfSecHadrons(); // Get a Vector of secondary PDG-particles // Modifiers void SetDecayChanLimit(G4double newDecChanLim);// Set a Decay Channel Probability Limit - void SetMinMass(G4double newMinMass); // Set a Minimum Mass for the Decay Channel + void SetMinMass(G4double newMinMass); // Set a Minimum Mass for the DecayChannel void SetVecOfSecHadrons(G4QPDGCodeVector hadV);// Set a Vector of secondary PDG-particles //private: @@ -77,8 +77,8 @@ private: std::ostream& operator<<(std::ostream& lhs, G4QDecayChan& rhs); //---------------------------------------------------------------------------------------- -inline G4int G4QDecayChan::operator==(const G4QDecayChan& rhs) const {return this==&rhs;} -inline G4int G4QDecayChan::operator!=(const G4QDecayChan& rhs) const {return this!=&rhs;} +inline G4bool G4QDecayChan::operator==(const G4QDecayChan& rhs) const {return this==&rhs;} +inline G4bool G4QDecayChan::operator!=(const G4QDecayChan& rhs) const {return this!=&rhs;} inline G4double G4QDecayChan::GetDecayChanLimit() const {return aDecayChanLimit;} inline G4double G4QDecayChan::GetMinMass() const {return theMinMass;} 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 d4e70d66d4..abe1708b4d 100755 --- 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QDecayChanVector.hh,v 1.10 2003/06/16 17:04:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QDecayChanVector.hh,v 1.15 2003/12/09 15:38:02 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. @@ -36,6 +36,14 @@ #include typedef std::vector G4QDecayChanVector; -struct DeleteQDecayChan{void operator()(G4QDecayChan *aQ){delete aQ;}}; +struct DeleteQDecayChan +{ + void operator()(G4QDecayChan *aQ) + { + //G4cout<<"G4QDecayChanVector::DeleteQDecayChan: Before aQ="< +#include #include "globals.hh" -#include "G4HadronElasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4VProtonBuilder.hh" - -#include - -class G4ProtonBuilder +class G4QException : public std::exception { - public: - G4ProtonBuilder(); - virtual ~G4ProtonBuilder(); - - public: - void Build(); - void RegisterMe(G4VProtonBuilder * aB) {theModelCollections.push_back(aB);} - + public: + G4QException(G4String message="No message"); + const G4String& GetMessage(); + virtual ~G4QException() throw(); private: - G4HadronElasticProcess theProtonElasticProcess; - G4ProtonInelasticProcess theProtonInelastic; - - std::vector theModelCollections; - + G4String theMessage; }; -// 2002 by J.P. Wellisch - #endif - 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 8ac2880f9a..129fee95ba 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QHadron.hh,v 1.17 2002/12/12 19:14:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QHadron.hh,v 1.26 2003/12/09 15:38:05 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QHadron ---------------- // by Mikhail Kossov, Sept 1999. @@ -53,12 +53,12 @@ public: G4QHadron(G4QPDGCode QPDG, G4LorentzVector p, G4QContent QC);// Con. for Chipolino or Quasmon G4QHadron(G4QParticle* pPart, G4double maxM); // Constructor for a resonance with RANDOM m G4QHadron(const G4QHadron& right); // Copy constructor by object - G4QHadron(G4QHadron* right); // Copy constructor by pointer - virtual ~G4QHadron(); // Destructor + G4QHadron(const G4QHadron* right); // Copy constructor by pointer + virtual ~G4QHadron(); // Destructor // Operators const G4QHadron& operator=(const G4QHadron& right); - G4int operator==(const G4QHadron& right) const; - G4int operator!=(const G4QHadron& right) const; + G4bool operator==(const G4QHadron& right) const; + G4bool operator!=(const G4QHadron& right) const; // Selectors G4int GetPDGCode() const; // Get PDG code of the Hadron G4int GetQCode() const; // Get Q code of the Hadron @@ -86,7 +86,7 @@ public: G4bool CorMDecayIn2(G4double corM, G4LorentzVector& fr4Mom);//->This(new mass corM)+fr4Mom(correct) G4bool CorEDecayIn2(G4double corE, G4LorentzVector& fr4Mom);//->This(E+=corE,P)+fr4Mom(fE-=corE,fP) G4bool RelDecayIn2(G4LorentzVector& f4Mom, G4LorentzVector& s4Mom, G4LorentzVector& dir, - G4double maxCost, G4double minCost = -1.); + G4double maxCost = 1., G4double minCost = -1.); G4bool DecayIn3(G4LorentzVector& f4Mom, G4LorentzVector& s4Mom, G4LorentzVector& t4Mom); private: @@ -100,8 +100,8 @@ private: G4int nFragm; // =0 - stable, =N - decayed in N particles }; -inline G4int G4QHadron::operator==(const G4QHadron &right) const {return this==&right;} -inline G4int G4QHadron::operator!=(const G4QHadron &right) const {return this!=&right;} +inline G4bool G4QHadron::operator==(const G4QHadron &rhs) const {return this==&rhs;} +inline G4bool G4QHadron::operator!=(const G4QHadron &rhs) const {return this!=&rhs;} inline G4int G4QHadron::GetPDGCode() const {return theQPDG.GetPDGCode();} inline G4int G4QHadron::GetQCode() const {return theQPDG.GetQCode();} @@ -129,7 +129,7 @@ inline void G4QHadron::SetQPDG(const G4QPDGCode& newQPDG) else { G4cerr<<"***G4QHadron::SetQPDG: QPDG="<q_o - G4int GetNumOfComb(G4int i, G4int o) const; // Get number of Combinations for q_i->q_o - G4int GetTotNumOfComb(G4int i) const; // Get a total # of Combinations for q_i + G4int GetNumOfComb(G4int i, G4int o) const; // Get #ofCombinations for q_i->q_o + G4int GetTotNumOfComb(G4int i) const; // Get total#ofCombinations for q_i // Modifiers void SetPDGCode(G4int newPDGCode); // Set PDG code of the Hadron @@ -120,10 +120,10 @@ G4int operator%(const G4QPDGCode& lhs, const G4int& rhs); // Not member functions //---------------------------------------------------------------------------------------- -inline G4int G4QPDGCode::operator==(const G4QPDGCode& rhs) const {return this==&rhs;} -inline G4int G4QPDGCode::operator==(const G4int& rhs) const {return thePDGCode==rhs;} -inline G4int G4QPDGCode::operator!=(const G4QPDGCode& rhs) const {return this!=&rhs;} -inline G4int G4QPDGCode::operator!=(const G4int& rhs) const {return thePDGCode!=rhs;} +inline G4bool G4QPDGCode::operator==(const G4QPDGCode& rhs) const {return this==&rhs;} +inline G4bool G4QPDGCode::operator==(const G4int& rhs) const {return thePDGCode==rhs;} +inline G4bool G4QPDGCode::operator!=(const G4QPDGCode& rhs) const {return this!=&rhs;} +inline G4bool G4QPDGCode::operator!=(const G4int& rhs) const {return thePDGCode!=rhs;} inline G4QPDGCode G4QPDGCode::operator+=(const G4QPDGCode& rhs) { @@ -213,14 +213,14 @@ inline G4double G4QPDGCode::GetNuclMass(G4int PDG) } return 0.; } -inline G4int G4QPDGCode::GetPDGCode() const {return thePDGCode;} -inline G4int G4QPDGCode::GetQCode() const {return theQCode;} -inline G4int G4QPDGCode::GetCharge() const {return GetQuarkContent().GetCharge();} -inline G4int G4QPDGCode::GetBaryNum() const {return GetQuarkContent().GetBaryonNumber();} -inline G4int G4QPDGCode::GetSpin() const +inline G4int G4QPDGCode::GetPDGCode() const {return thePDGCode;} +inline G4int G4QPDGCode::GetQCode() const {return theQCode;} +inline G4int G4QPDGCode::GetCharge() const {return GetQuarkContent().GetCharge();} +inline G4int G4QPDGCode::GetBaryNum() const {return GetQuarkContent().GetBaryonNumber();} +inline G4int G4QPDGCode::GetSpin() const { if(thePDGCode<80000000) return thePDGCode%10; - else if(GetQuarkContent().GetTot()%2) return 3; + else if(GetQuarkContent().GetTot()%2) return 3; // @@ Take into account higher resonances else return 1; } inline void G4QPDGCode::NegPDGCode() {thePDGCode=-thePDGCode;} 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 a9681f9dd3..9df66df076 100755 --- 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QPDGCodeVector.hh,v 1.10 2003/06/16 17:04:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QPDGCodeVector.hh,v 1.15 2003/12/09 15:38:09 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QCandidateVector ---------------- // by Mikhail Kossov, Sept 1999. @@ -36,7 +36,15 @@ #include typedef std::vector G4QPDGCodeVector; -struct DeleteQPDGCode{ void operator()(G4QPDGCode *aN){delete aN;} }; +struct DeleteQPDGCode +{ + void operator()(G4QPDGCode *aN) + { + //G4cout<<"G4QPDGCodeVector::DeleteQPDGCode: Before aN="< -typedef std::vector G4QParticleVector; -struct DeleteQParticle{ void operator()(G4QParticle *aN){delete aN;} }; +//typedef std::vector G4QParticleVector; + +struct DeleteQParticle +{ + void operator()(G4QParticle *aN) + { + if(aN) + { + //G4cout<<"G4QParticleVector::DeleteQParticle: aN="<GetPDGCode() + // <<",Q="<GetQCode()<GetQParticle(PDG); return G4QHadron(part, maxM).GetMass(); } 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 135ce51cf9..ba5f206a46 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QuasmonVector.hh,v 1.11 2003/06/16 17:04:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QuasmonVector.hh,v 1.15 2003/12/09 15:38:15 gunter Exp $ +// GEANT4 tag $Name: geant4-06-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 c4c939c46a..3c8ade5a05 100755 --- 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QCHIPSWorld.cc,v 1.20 2003/06/16 17:04:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QCHIPSWorld.cc,v 1.28 2003/12/09 15:38:16 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QCHIPSWorld ---------------- // by Mikhail Kossov, Sept 1999. @@ -34,28 +34,22 @@ #include "G4QCHIPSWorld.hh" -G4QCHIPSWorld::G4QCHIPSWorld(G4int nOfParts) +// Initialization of the CHIPSWorld Pointer +// G4QCHIPSWorld* G4QCHIPSWorld::aWorld =0; +// G4QParticleVector G4QCHIPSWorld::qWorld; + +// Constructor +G4QCHIPSWorld::G4QCHIPSWorld() { - qWorld = InitCHIPSWorld(nOfParts); // Initialization of the CHIPS World with N particles } -G4QCHIPSWorld::G4QCHIPSWorld(const G4QCHIPSWorld& right) +G4QCHIPSWorld::~G4QCHIPSWorld() // The CHIPS World is destructed only in the EndOfJob { - qWorld = right.qWorld; -} - -G4QCHIPSWorld::G4QCHIPSWorld(G4QCHIPSWorld* right) -{ - qWorld = right->qWorld; -} - -G4QCHIPSWorld::~G4QCHIPSWorld() {} - -const G4QCHIPSWorld& G4QCHIPSWorld::operator=(const G4QCHIPSWorld &right) -{// =================================================================== - qWorld = right.qWorld; - - return *this; + //G4int nP=GetQWorld().size(); + //G4cout<<"G4QCHIPSWorld::Destructor: Before nP="<"<"< -G4QCandidate::G4QCandidate() : relativeProbability(0.),integralProbability(0.) +G4QCandidate::G4QCandidate() : + G4QHadron(),possible(false),parPossible(false),kMin(0),denseProbability(0.), + preProbability(0.),relativeProbability(0.),integralProbability(0.), + secondRelProbability(0.),secondIntProbability(0.),EBMass(0.),NBMass(0.) + { } G4QCandidate::G4QCandidate(G4int PDGcode) : - relativeProbability(0.),integralProbability(0.) + G4QHadron(PDGcode),possible(false),parPossible(false),kMin(0),denseProbability(0.), + preProbability(0.),relativeProbability(0.),integralProbability(0.), + secondRelProbability(0.),secondIntProbability(0.),EBMass(0.),NBMass(0.) { G4LorentzVector cur4Mom(0.,0.,0.,0.); G4QPDGCode QPDG(PDGcode); @@ -50,7 +56,8 @@ G4QCandidate::G4QCandidate(G4int PDGcode) : SetQC(QPDG.GetQuarkContent()); } -G4QCandidate::G4QCandidate(const G4QCandidate& right) +G4QCandidate::G4QCandidate(const G4QCandidate& right) : + G4QHadron(&right) { Set4Momentum (right.Get4Momentum()); SetQPDG (right.GetQPDG()); @@ -65,6 +72,8 @@ G4QCandidate::G4QCandidate(const G4QCandidate& right) integralProbability = right.integralProbability; secondRelProbability= right.secondRelProbability; secondIntProbability= right.secondIntProbability; + EBMass = right.EBMass; + NBMass = right.NBMass; // thePClusters G4int nParCl = right.thePClusters.size(); if(nParCl) for(G4int ip=0; ipintegralProbability; secondRelProbability= right->secondRelProbability; secondIntProbability= right->secondIntProbability; + EBMass = right->EBMass; + NBMass = right->NBMass; // thePClusters G4int nParCl = right->thePClusters.size(); if(nParCl) for(G4int ip=0; ip1)||(!fl&&mS>1)) { G4cerr<<"***G4QChipolino: ***Overfowed by strange quarks*** rQC="< Anti-fragment { //G4cerr<<"***G4QChipolino: ***Anti-nuclear fragments*** rQC="<5) - { - return GetZNSPDGCode(); //B+M+M Tripolino etc - } + if(n>5) return GetZNSPDGCode(); //B+M+M Tripolino etc if(n==5) return 10; //B+M Chipolino if(mS>0) // Strange Baryons { @@ -1193,7 +1190,7 @@ G4int G4QContent::GetSPDGCode() const #ifdef debug G4cout<<"***G4QC::SPDG: Exotic BaryonSS, U="< -G4QDecayChan::G4QDecayChan(){} +G4QDecayChan::G4QDecayChan():aDecayChanLimit(0.),theMinMass(0.) +{} G4QDecayChan::G4QDecayChan(G4double pLev, G4int PDG1, G4int PDG2, G4int PDG3): aDecayChanLimit(pLev) @@ -86,7 +87,11 @@ G4QDecayChan::G4QDecayChan(G4QDecayChan* right) G4QDecayChan::~G4QDecayChan() { - std::for_each(aVecOfSecHadrons.begin(), aVecOfSecHadrons.end(), DeleteQPDGCode()); + G4int nSH=aVecOfSecHadrons.size(); + //G4cout<<"G4QDecayChan::Destructor: Before nSH="<GetQC()<Get4Momentum()<GetQPEntries(); // A#of init'ed particles in CHIPS World + G4int nCl=nP-80; // A#of init'ed clusters in CHIPS World #ifdef pdebug - G4cout<<"G4QEnv: before NucClustInit: nP="<GetNFragments()< mPi0 ?"<0.) // => "Final hadron" case { G4int envPDG=theEnvironment.GetPDG(); if(envPDG==90000000) // ==> "Interaction with vacuum" case { G4int hPDG = curHadr->GetPDGCode();// A PDG Code of the projQHadron - if(!hPDG||hPDG==10) // Check for the validity of the QHadron (@@ 10 OK?) + if(!hPDG||hPDG==10) // Check for the validity of the QHadron (@@ 10 OK?) { - G4cerr<<"***G4QEnvironment::Constructor: wrong PDG("<GetQCode(); // One more check for valid of the QHadron if(hQ<0) { - G4cerr<<"***G4QEnvironment::Constructor: Q<0, PDG=("<GetPDGCode(); // A PDG Code of the projQHadron if(!hPDG||hPDG==10) // Check for the validity of the QHadron { - G4cerr<<"***G4QEnvironment::Constructor:Vacuum, 1st Hadron wrong PDG="<GetQCode(); // One more check for valid of the QHadron + G4int hQ = curHadr->GetQCode(); // One more check for valid of the QHadron if(hQ<0) { - G4cerr<<"***G4QEnvironment::Constructor:Vacuum, Q<0, 1st HPDG="<Get4Momentum(); G4QContent hQC = curHadr->GetQC(); @@ -177,24 +217,27 @@ G4QEnvironment::G4QEnvironment(const G4QHadronVector& projHadrons, const G4int t G4int tQ = tQPDG.GetQCode(); if(tQ<0||targPDG==10) { - G4cerr<<"***G4QEnvironment::Constructor:Target Q<0 or Chipolino, PDG="<GetQC()<Get4Momentum()<GetQC()<Get4Momentum()<theQHadrons[ih]); +#ifdef fdebug + G4cout<<"G4QE::CopyByPtr:cH#"<GetQC()<Get4Momentum()<GetQC()<Get4Momentum()<80000000&&targPDG!=90000000) // Interaction with a nuclear target { @@ -372,9 +425,9 @@ void G4QEnvironment::CreateQuasmon(const G4QContent& projQC, const G4LorentzVect G4int envZ=theEnvironment.GetZ(); // A#of protons in the nucleus G4int envN=theEnvironment.GetN(); // A#of neutrons in the nucleus G4int envS=theEnvironment.GetS(); // A#of lambdas in the nucleus - G4int nP =theWorld.GetQPEntries(); // A#of initialized particles in CHIPS World - G4int nCl =nP-80; // A#of initialized clusters in CHIPS World "IsoN" - if(nCl<0) G4cerr<<"***G4QEnv::CreateQ: nP="<Fragment(vE,1);//Output of inVacAnnihilation*DESTROY*<-+ #ifdef pdebug - G4cout<<"G4QEnvironment::CreateQ: Before delet pan."<size(); // For the selection LOOP ^ ^ - G4ThreeVector dir = RndmDir(); // For the selection in the LOOP ^ ^ + delete pan; // The N-NbarQuasmon is deleted A.S.A.P. ^ + G4QHadronVector input; // Input for MultyQuasmon **DESTROY**<---+ ^ + //G4int trgPDG = theEnvironment.GetPDG();// New PDG Code for the Residual Nucleus ^ ^ + G4LorentzVector trg4M(0.,0.,0.,resMass); // New 4-momentum for the ResidualNucleus^ ^ + G4int tNH = output->size(); // For the selection LOOP ^ ^ + G4ThreeVector dir = RndmDir(); // For the selection in LOOP (@@ at rest)^ ^ #ifdef pdebug - G4cout<<"G4QEnvironment::CreateQ: Loop over "<operator[](ind); // Pointer to the current hadron ^ ^ - G4int shDFL= curHadr->GetNFragments(); // A#of decay fragments for proj. ^ ^ - G4LorentzVector sh4m = curHadr->Get4Momentum(); // 4Mom for the projectile ^ ^ - G4ThreeVector shDIR= sh4m.vect().unit(); // Projection to the random direction ^ ^ + G4QHadron* curHadr = output->operator[](ind); // Pointer to theCurrentHadron ^ ^ + G4int shDFL= curHadr->GetNFragments();// A#of decFragments for proj. ^ ^ + G4LorentzVector sh4m = curHadr->Get4Momentum(); // 4Mom for the projectile ^ ^ + G4ThreeVector shDIR= sh4m.vect().unit(); // unitVector in the hadron mom. dir.^ ^ #ifdef pdebug - G4cout<<"G4QE::CrQ:##"<GetPDGCode()<SolidAngle) // Sum up these hadrons and make Energy Flow ^ ^ + if(dir.dot(shDIR)>SolidAngle) // Sum Up Hadrons and make Energy Flow ^ ^ { - if(efFlag) // => Case of Energy Flux approach ^ ^ + if(efFlag) // => Case of "Energy Flux approach" ^ ^ { - G4QContent shQC = curHadr->GetQC(); // Quark Content of the Current Hadron ^ ^ + G4QContent shQC = curHadr->GetQC();// QuarkContent of the Current Hadron ^ ^ ef4Mom+=sh4m; EnFlQC+=shQC; efCounter++; #ifdef pdebug - G4int hPDG=curHadr->GetPDGCode(); // Only for gebug printing ^ ^ - G4LorentzVector h4M = curHadr->Get4Momentum(); // Only for gebug printing ^ ^ - G4cout<<"G4QE::CrQ:#"<"MultyQuasFragmentation"(!efFlag)^ ^ { G4QHadron* mqHadron = new G4QHadron(curHadr); - input.push_back(mqHadron); // Fill hadron-copy (delete equivalent) <...^ ^ + input.push_back(mqHadron); // Fill hadron-copy (del equiv) <...^ ^ #ifdef pdebug - G4int hPDG=curHadr->GetPDGCode(); // Only for debug printing ^ ^ - G4LorentzVector h4M = curHadr->Get4Momentum(); // Only for gebug printing ^ ^ - G4cout<<"G4QE::CrQ: Fill #"<GetPDGCode(); // Only for gebug printing ^ ^ - G4LorentzVector h4M = curHadr->Get4Momentum(); // Only for gebug printing ^ ^ - G4cout<<"G4QE::CrQ: Fill OUT #"<GetPDGCode(); // Only for gebug printing ^ ^ + G4LorentzVector h4M = curHadr->Get4Momentum(); // Only for gebug printing ^ ^ + G4cout<<"G4QE::CrQ: Fill OUT #"<begin(), output->end(), DeleteQHadron()); // DESTROING output >------^ - output->clear(); // ^ ^ - delete output; // =============================================^ - if(!efFlag) // => Not Energy Flux case: MultyQuasmon case ^ + } // End of the LOOP over projectiles ^ ^ + } // End of LOOP over "output" of annihilation ^ ^ + std::for_each(output->begin(), output->end(), DeleteQHadron());//DESTRUCT output>-^-^ + output->clear(); // ^ ^ + delete output; // ==================================^=^ + if(!efFlag) // =>NotEnergyFlux=MultyQuasmon Case ^ { - if(!(input.size())) return; // *** RETURN *** Without Quasmon creation----^ + if(!(input.size())) // *RETURN* Without Quasmon creation-^ + { // ^ #ifdef pdebug - G4cout<<"G4QEnvironment::CreateQ: Creation of a fake Quasmon to restore parameters"<---^-----^ - input.clear(); // ^ - theEnvironment = muq->GetEnvironment(); // Get residual Environment after interaction - G4QuasmonVector* outQ = muq->GetQuasmons();// Copy of quasmons **!!DESTROY!!** <---^-----+ - G4QHadronVector* outH = muq->GetQHadrons();// Copy of hadrons **!!DESTROY!!** <----^--+ ^ - G4int noh = outH->size(); // a#oh hadrons in TmpEnviron UpToNow ^ ^ ^ - if(noh) for(G4int kh=0; kh-^---^ + input.clear(); // ===============================^===^ + theEnvironment = muq->GetEnvironment(); // RestoreResidEnv after interact.^ + G4QuasmonVector* outQ = muq->GetQuasmons();// Copy of quasmons *DESTROY* <---^---+ + G4QHadronVector* outH = muq->GetQHadrons();// Copy of hadrons *DESTROY* <----^-+ ^ + G4int noh = outH->size(); // a#oh hadrons in TmpEnv UpToNow ^ ^ ^ + if(noh) for(G4int kh=0; khoperator[](kh)); // Copy to destroy tmp ^ ^ ^ - theQHadrons.push_back(curH); // Fill new Hadrons in theQHadrons ^ ^ ^ + G4QHadron* curH = new G4QHadron(outH->operator[](kh));//CopyOfDestroiedTMP ^ ^ ^ +#ifdef fdebug + G4cout<<"G4QE::CreateQ:#"<GetQC()<Get4Momentum()<begin(), outH->end(), DeleteQHadron());// >------------------^==^ ^ - outH->clear(); // ^ ^ ^ - delete outH; // >====================================^==^ ^ + std::for_each(outH->begin(), outH->end(), DeleteQHadron());// >--------------^=^ ^ + outH->clear(); // ^ ^ ^ + delete outH; // >==============================^=^ ^ #ifdef pdebug - G4cout<<"G4QEnvironment::CreateQ: before delete muq"<size(); // A#of Quasmons in MultyQuasmon output ^ + delete muq; //================================^ ^ + G4Quasmon::SetParameters(QTemper,QSOverU,QEtaSup); // Recover QuasmonParameters ^ + G4int nMQ = outQ->size(); // A#of Quasmons in MultyQuasmonOutput^ #ifdef pdebug - G4cout<<"G4QEnvironment::CreateQ: after GetQuasmon nMQ="< Energy Flux case { - if (!efCounter) return; // *** RETURN *** Without Quasmon creation + if (!efCounter) return; // ***RETURN*** Without Quasmon creation } } // End of Hyperon annihilation case - else EnFlQC=projQC; // If it's not anti-baryon don't use Energy Flux - G4double EnFlP=ef4Mom.rho(); // Mom. of Energy Flow for the cluster creation - PrepareInteractionProbabilities(EnFlQC,EnFlP); // Interaction probabilities for clusters + else EnFlQC=projQC; // For notAntiBar, don't use EnergyFlux + G4double EnFlP=ef4Mom.rho(); // Mom. of EnergyFlow forClusterCreation + PrepareInteractionProbabilities(EnFlQC,EnFlP); // InteractionProbabilities for clusters #ifdef pdebug G4cout<<"G4QEnvironment::CreateQ: Interaction Probabilities are calculated"<3) allB=AP; // Trick to use not used AP //in PR//G4int pPDG = projQC.GetSPDGCode(); // PDG code of the projectile particle for (unsigned index=0; indexGetPDGCode(); - if(cPDG>80000000&&cPDG!=90000000) // ===> Cluster case + if(cPDG>80000000&&cPDG!=90000000) // ===> Nuclear cluster case { G4QNucleus cN(cPDG); G4int zc = cN.GetZ(); // "Z" of the cluster @@ -694,12 +789,12 @@ void G4QEnvironment::PrepareInteractionProbabilities(const G4QContent& projQC, G G4double d = abs(zc-nc); G4double fact=1./pow(2.,d); if (qC<-1) probab=0.; - //else if((pPDG==-211&&AP<10.||pPDG==22&&AP<150.)&&ac<2) probab=0.; //PiCapAtRest/GamUndrPi(D) - //else if(pPDG==22&&AP<152.&&ac<2) probab=nOfCl*ac*fact*.5; //GamUnderPi (only quark capture) - ///////////////////////////////else if((pPDG==-211&&AP<10.)&&ac<2) probab=0;//PiCapAtRest(D) - //else if(pPDG==-211&&AP<10.) probab=nOfCl*fact; // special PiCaptureAtRest - //else if(pPDG==-211&&AP<10.) probab=nOfCl*ac*(ac-1)*fact; - else probab=nOfCl*ac*fact; + //else if((pPDG==-211&&AP<10.||pPDG==22&&AP<150.)&&ac<2)probab=0.;//PiAtRest/GamUndPi + //else if(pPDG==22&&AP<152.&&ac<2) probab=nOfCl*ac*fact*.5;//GamUnderPi(QuarkCapture) + ////////////////////////else if((pPDG==-211&&AP<10.)&&ac<2) probab=0;//PiCapAtRest(D) + //else if(pPDG==-211&&AP<10.) probab=nOfCl*fact;// special PiCaptureAtRest + //else if(pPDG==-211&&AP<10.) probab=nOfCl*ac*(ac-1)*fact; + else probab=nOfCl*ac*fact; //else probab=dOfCl*ac*fact; //if(ac>1) probab=0.; // Suppress clusters //if(ac>2) probab=0.; // Suppress heavy clusters @@ -709,8 +804,8 @@ void G4QEnvironment::PrepareInteractionProbabilities(const G4QContent& projQC, G G4double baryn = qQC.GetBaryonNumber(); G4double charge= qQC.GetCharge(); G4double dq= abs(baryn-charge-charge); - G4cout<<"G4QE::PrepIntProb:C="< HADRONIZE Q-ENVIRONMENT="< Fill QEnviron + if(nQuasmons<1) // "No Quasmons" case -> Fill QEnviron { - G4int nPDG = theEnvironment.GetPDG(); // PDG code of the residual Nucl.Environ. + G4int nPDG = theEnvironment.GetPDG(); // PDG code of the residual Nucl.Environ. #ifdef pdebug - G4cout<<"G4QEnv::HadrQE: ***NO QUASMONS*** Env="<>>> Fill Environment"<>>> Fill Environment="< "Environment is Vacuum" case + if(theEnvironment.GetPDG()==NUCPDG) // ==> "Environment is Vacuum" case { #ifdef pdebug G4cout<<"G4QEnv::HadrQE: ***Vacuum*** #ofQ="<Get4Momentum(); + totIn4M += Q4M; + } // End of TotInitial4Momentum summation LOOP over Quasmons + G4int nsHadr = theQHadrons.size(); // Update the value of OUTPUT entries + if(nsHadr) for(G4int jso=0; jsoGetNFragments(); // A#of secondary fragments + if(!hsNF) // Add only final hadrons + { + G4LorentzVector hs4Mom = theQHadrons[jso]->Get4Momentum(); + totIn4M += hs4Mom; + } + } #endif - G4QNucleus vE = vacuum; - G4int nlq = 0; // Prototype of a#of Living Quasmons - if(nQuasmons) for(G4int lq=0; lqGetStatus())nlq++; + G4QNucleus vE(90000000); + G4int nlq = 0; // Prototype of a#of Living Quasmons + if(nQuasmons) for(G4int lq=0; lqGetStatus())nlq++; if(nQuasmons) for(G4int iq=0; iqGetStatus(); // Status of the Quasmon before fragmentation + G4int ist=theQuasmons[iq]->GetStatus();// Status of the Quasmon before fragmentation if(ist) { - G4QHadronVector* output=theQuasmons[iq]->Fragment(vE,1);//!!!DESTROY!!! <----------------+ - G4int ast=theQuasmons[iq]->GetStatus(); // Status of the Quasmon after fragmentation ^ - if(!ast) nlq--; // Reduce nlq is Quasmon decayed ^ - G4int nHadrons = output->size(); // A#of output Hadrons in the Quasmon ^ + G4QHadronVector* output=theQuasmons[iq]->Fragment(vE,1);//!!!DESTROY!!! <---------+ + G4int ast=theQuasmons[iq]->GetStatus(); // Quasmon's Status after fragmentation ^ + if(!ast) nlq--; // Reduce nlq is Quasmon decayed ^ + G4int nHadrons = output->size(); // A#of output Hadrons in the Quasmon ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQE: ***Vacuum*** Q#"<GetQPDG().GetPDGCode()==90001001)G4cout<<"G4QE::HQE: Get Deute"< "Quasmon can't decay" case ^ { - G4QContent totQC=theQuasmons[iq]->GetQC(); - G4int tQBN=totQC.GetBaryonNumber();// Baryon Number of not decayed Quasmon ^ - G4QNucleus tqN(totQC); // Define the quasmon as a nucleus ^ - G4double gsM=tqN.GetMZNS(); // GS Mass ^ + G4QContent totQC=theQuasmons[iq]->GetQC(); // ^ + G4int tQBN=totQC.GetBaryonNumber();// Baryon Number of not decayed Quasmon ^ + G4QNucleus tqN(totQC); // Define the quasmon as a nucleus ^ + G4double gsM=tqN.GetMZNS(); // GS Mass ^ G4LorentzVector tot4M=theQuasmons[iq]->Get4Momentum(); - G4double totQM=tot4M.m(); // Real Mass of Quasmon ^ - if(tQBN>0&&totQM>gsM) // => "Try Quasmon evaporation" case ^ + G4double totQM=tot4M.m(); // Real Mass of Quasmon ^ + if(tQBN>0&&totQM>gsM) // => "Try Quasmon evaporation" case ^ { - G4QHadron* nuclQ = new G4QHadron(totQC,tot4M); // ^ - EvaporateResidual(nuclQ); // Try to evaporate Quasmon (delete equivalent) ^ - theQuasmons[iq]->KillQuasmon(); // Kill evaporated Quasmon ^ - nlq--; + G4QHadron* nuclQ = new G4QHadron(totQC,tot4M); // ^ + EvaporateResidual(nuclQ); // Evaporate ResNuc (del.equiv) ^ + theQuasmons[iq]->KillQuasmon(); // Kill evaporated Quasmon ^ + nlq--; // ^ } - else if(iq+11) // => "Try to merge with next" case ^ + else if(iq+11) // => "Try to merge with next" case ^ { - G4int s=theQuasmons[iq+1]->GetStatus();//Status of the next Quasmon ^ - theQuasmons[iq+1]->IncreaseBy(theQuasmons[iq]);// Merge with the next Quasmon ^ - theQuasmons[iq]->KillQuasmon(); // Kill the week Quasmon ^ - if(s) nlq--; // Reduce a number of "living Quasmons" ^ + G4int s=theQuasmons[iq+1]->GetStatus();//Status of the next Quasmon ^ + theQuasmons[iq+1]->IncreaseBy(theQuasmons[iq]);// Merge with the next Quasmon ^ + theQuasmons[iq]->KillQuasmon(); // Kill the week Quasmon ^ + if(s) nlq--; // Reduce a number of "living Quasmons" ^ } - else if(iq+1==nQuasmons&&iq&&nlq>1) // => "Quasmon stack is exhosted" case ^ + else if(iq+1==nQuasmons&&iq&&nlq>1) // => "Quasmon stack is exhosted" case ^ { - G4int s=theQuasmons[0]->GetStatus(); // Status of the first Quasmon ^ - theQuasmons[0]->IncreaseBy(theQuasmons[iq]);// Merge with the first Quasmon ^ - theQuasmons[iq]->KillQuasmon(); // Kill the week Quasmon ^ - if(s) nlq--; // Reduce a number of "living Quasmons" ^ + G4int s=theQuasmons[0]->GetStatus(); // Status of the first Quasmon ^ + theQuasmons[0]->IncreaseBy(theQuasmons[iq]);// Merge with the first Quasmon ^ + theQuasmons[iq]->KillQuasmon(); // Kill the week Quasmon ^ + if(s) nlq--; // Reduce a number of "living Quasmons" ^ } - else // "Have a chance to recover" case ^ - { + else // "Have a chance to recover" case ^ + { // ^ #ifdef pdebug - G4cout<<"***G4QEnv::HadrQE:"<InitQuasmon(totQC,tot4M);// Update the week Quasmon ^ - G4QHadronVector* curout=theQuasmons[iq]->Fragment(vE,1);//!!!DESTROY!!! <----+ ^ - G4int ast=theQuasmons[iq]->GetStatus(); // Status of the Quasmon ^ ^ - if(!ast) nlq--; // Reduce nlq is Quasmon decayed ^ ^ - G4int nHadrons=curout->size(); // A#of output Hadrons in the week Quasmon ^ ^ + G4int nOfOUT = theQHadrons.size(); // Total #of QHadrons at this point ^ + G4double dM = totQM-gsM; // Excitation of the Quasmon ^ + G4bool corrf = true; // False when corrected & needs to quit ^ + while(nOfOUT && corrf) // LOOP over all existing QHadrons ^ + { // ^ + G4QHadron* theLast = theQHadrons[nOfOUT-1]; // Remember ^ + G4LorentzVector last4M = theLast->Get4Momentum(); // all ^ + G4QContent lastQC = theLast->GetQC(); // content ^ + G4int lastS = lastQC.GetStrangeness(); // of // Only ^ + G4int totS = totQC.GetStrangeness(); // the // for ^ + G4int nFr = theLast->GetNFragments(); // Last // if() ^ + G4int gam = theLast->GetPDGCode(); // // ^ + if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1)//=> Skip K,gam & decayed ^ + { // ^ + G4QHadron* thePrev = theQHadrons[nOfOUT-2];// Kill Prev & make Last->Prev ^ + theQHadrons.pop_back(); // theLastQHadron is excluded from OUTPUT^ + theQHadrons.pop_back(); // thePrevQHadron is excluded from OUTPUT^ + theQHadrons.push_back(thePrev); // thePrev becomes theLast as an object ^ + delete theLast; // the Last QHadron is destructed ^ + theLast = thePrev; // Update parameters (thePrev*->theLast*)^ + last4M = theLast->Get4Momentum();// 4Mom of the previouse Quasmon ^ + lastQC = theLast->GetQC(); // Quark Content of the previouse Quasmon^ + } // ^ + else // Just Clear and destroy theLast ^ + { // ^ + theQHadrons.pop_back(); // theLastQHadron is excluded from OUTPUT^ + delete theLast; // theLastQHadron is deleated as instance^ + } // ^ + totQC+=lastQC; // Update (increase) the total QC ^ + tot4M+=last4M; // Update (increase) the total 4-momentum^ + totQM=tot4M.m(); // Calculate new real total mass ^ + G4QNucleus nN(totQC); // Define the Quasmon as a nucleus ^ + gsM=nN.GetMZNS(); // Calculate the new GS Mass ^ + dM = totQM-gsM; // Escitation energy for the Quasmon ^ + if(dM>0) // "Mass of Q is big enough" case ^ + { // ^ + theQuasmons[iq]->InitQuasmon(totQC,tot4M);// Update the week Quasmon ^ + G4QHadronVector* curout=theQuasmons[iq]->Fragment(vE,1);//!DESTROY! <---+ ^ + G4int ast=theQuasmons[iq]->GetStatus(); // Status of the Quasmon ^ ^ + if(!ast) nlq--; // Reduce nlq if Quasmon decayed ^ ^ + G4int nHadrons=curout->size(); // A#of outputQHadrons in theDecayedQ ^ ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQEnv:VacuumRecoverQ#"<operator[](ih)); // ^ ^ -#ifdef pdebug + if(nHadrons>0) // => "QHadrons from Quasmon to Output"^ ^ + { // ^ ^ + for (G4int ih=0; ihoperator[](ih)); // ^ ^ +#ifdef fdebug G4cout<<"G4QEnv::HadrQE:Recovered, H#"<begin(), output->end(), DeleteQHadron());// >--------------------^ - output->clear(); // ^ - delete output; // >============================================^ + } // End of the WHILE LOOP ^ + //if(!nOfOUT&&nQuasmons==1) // TRY TO EVAPORATE THE TOTAL SYSTEM ^ + if((!nOfOUT&&nQuasmons==1)||theEnvironment.GetPDGCode()==NUCPDG)//EvaporTotal ^ + { // ^ + G4int totS=totQC.GetStrangeness(); // Total Strangeness ^ + G4int totBN=totQC.GetBaryonNumber();// Total Baryon Number ^ + G4int totPDG=totQC.GetZNSPDGCode();// Convert QC to PDGCOde for the nucleus ^ + if(totS) totPDG-=totS*999999; // @@ ?? ^ +#ifdef pdebug + G4cout<<"G4QE::HQE: totPDG="<0) DecayAntiStrange(evH);// Decay anti-strange nucleus (K+)^ + else if(totBN==2) DecayDibaryon(evH); // Decay dibaryon (delete equivalent) ^ + else EvaporateResidual(evH); // Evaporate ResNuc (del.equiv) ^ + std::for_each(output->begin(), output->end(), DeleteQHadron());// >---------^ + output->clear(); // ^ + delete output; // >=====================================^ + CleanUp(); // ^ + return theQHadrons; // ^ + } // ^ + else if(!nOfOUT) // Still remain not used Quasmons ^ + { // ^ + G4cerr<<"***G4QE::HQ:T="<begin(), output->end(), DeleteQHadron()); // >-------------^ + output->clear(); // ^ + delete output; // >=====================================^ } // End of check for the already decayed Quasmon } // End of the LOOP over Quasmons } @@ -972,9 +1107,27 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() { #ifdef pdebug G4cout<<"G4QEnv::HadrQE:FRAGMENTATION IN NUCLEAR ENVIRONMENT nQ="<Get4Momentum(); + totIn4M += Q4M; + } // End of TotInitial4Momentum summation LOOP over Quasmons + G4int nsHadr = theQHadrons.size(); // Update the value of OUTPUT entries + if(nsHadr) for(G4int jso=0; jsoGetNFragments(); // A#of secondary fragments + if(!hsNF) // Add only final hadrons + { + G4LorentzVector hs4Mom = theQHadrons[jso]->Get4Momentum(); + totIn4M += hs4Mom; + } + } #endif - G4int c3Max = 27; + //G4int c3Max = 27; //G4int c3Max = 3; + G4int c3Max = 1; //G4int premC = 27; //G4int premC = 3; G4int premC = 1; @@ -983,30 +1136,28 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() if(envA>1&&envA<19) premC = 36/envA; //if(envA>1&&envA<25) premC = 48/envA; //if(envA>1&&envA<31) premC = 60/envA; - G4int sumstat= 2; // Sum of statuses of all Quasmons - G4bool force = false; // Prototype of the Force Major Flag - G4int totC = 0; // Counter for the "infinit" loop - G4int totCM = 227; // Limit for this counter - while (sumstat||totC>"<GetQC(); @@ -1021,283 +1172,591 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4cout<<"G4QEnv::HadrQE:#"< "Baryons or Mesons" case (@@antiBaryon) { totPDG =totQC.GetSPDGCode(); - if(totPDG&&totPDG!=10&&totPDG!=1114&&totPDG!=2224) totM=G4QPDGCode(totPDG).GetMass(); + if(totPDG && totPDG!=10 && totPDG!=1114 && totPDG!=2224) + totM=G4QPDGCode(totPDG).GetMass(); else if(totPDG==1114) totM=mNeut+mPi; else if(totPDG==2224) totM=mProt+mPi; else if(totPDG==10) { - G4QChipolino totChip(totQC); // define the residual as a Chipolino + G4QChipolino totChip(totQC); // define the residual as a Chipolino totM =totChip.GetQPDG1().GetMass()+totChip.GetQPDG2().GetMass(); } else { - G4cerr<<"***G4QEnv::HadrQE: totPDG="< "Still try to decay Quasmons" case + if(sumstat&&(fCount||Premium)&&!force&&count3"Still try to decay Quasmons" { - if(!fCount)premC--; // Reduce premium efforts counter - for (G4int jq=0; jqGetStatus(); // Old status of the Quasmon ^ - if(status) // Skip dead Quasmons ^ - { - G4QHadronVector* output=pQ->Fragment(theEnvironment,eCount);//**!!DESTROY!!** <------^-+ - status = pQ->GetStatus(); // New status after fragmentation attempt ^ ^ + G4Quasmon* pQ = theQuasmons[jq];// Pointer to the CurrentQuasmon <--<--<--+ + G4int status = pQ->GetStatus();// Old status of the Quasmon ^ + if(status) // Skip dead Quasmons ^ + { // ^ + G4QHadronVector* output=pQ->Fragment(theEnvironment,eCount);//*!DEST* <--<--^-+ + envM =theEnvironment.GetMass(); // new mass of Nuclear Environment ^ ^ + status = pQ->GetStatus(); // NewStatus after FragmentationAttempt ^ ^ + if(!status) eCount--; // Dec. ExistingQuasmonsCounter for Q=0 ^ ^ + G4int nHadrons = output->size(); // ^ ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQE: **FragmAttempt** jq="<operator[](kpo);// Pointer to theOutputQHadron ^ ^ + G4int qhsNF = insH->GetNFragments(); // A#of secondary fragments ^ ^ + if(!qhsNF) // Subtract only final hadrons ^ ^ + { // ^ ^ + G4LorentzVector qhs4Mom = insH->Get4Momentum();// 4M of theOutputQHadron^ ^ + G4int hPDG = insH->GetPDGCode(); // PDG Code of the Q-output Hadron ^ ^ + G4cout<<"G4QE::HQE:SUM-4-Mom qh("< "Suck in the existing Quasmon" case ^ ^ + { // ^ ^ + G4QContent tQC=inpH->GetQC()+pQ->GetQC(); // ^ ^ + G4LorentzVector tLV=hLV+pQ->Get4Momentum();// ^ ^ + pQ->InitQuasmon(tQC,tLV); // Reinitialize the current Quasmon ^ ^ +#ifdef pdebug + G4cout<<"G4QE::HQE:Medium, H#"< "Suck in the existing Quasmon" case ^ ^ + { // ^ ^ + G4QContent tQC=inpH->GetQC()+theEnvironment.GetQCZNS();// ^ ^ + G4LorentzVector tLV=hLV+theEnvironment.Get4Momentum(); // ^ ^ + theEnvironment=G4QNucleus(tQC,tLV); // Reinit currentEnvironment ^ ^ +#ifdef pdebug + G4cout<<"G4QE::HQE:Med,H#"<GetQPDG()<<",4M="//^ ^ + <Get4Momentum()<<" is suckedInEnvironment"< "Hadron can go out" case ^ ^ + { // ^ ^ + G4QHadron* curH = new G4QHadron(inpH); // ^ ^ +#ifdef fdebug + G4LorentzVector ph4M=curH->Get4Momentum(); // 4-mom of the hadron ^ ^ + G4double phX=ph4M.x(); // p_x of the hadron ^ ^ + G4double phY=ph4M.y(); // p_y of the hadron ^ ^ + G4double phZ=ph4M.z(); // p_x of the hadron ^ ^ + G4double phCost=phZ/sqrt(phX*phX+phY*phY+phZ*phZ);// Hadr cos(theta)^ ^ + G4cout<<"G4QEnv::HadrQE:Medium, H#"<GetQPDG()//^ ^ + <<", 4M="<begin(), output->end(), DeleteQHadron()); // ->->->-^ + output->clear(); // ^ + delete output; // >========================================^ + pQ->KillQuasmon(); // If BackFusion succeeded, kill the Quasmon^ + eCount--; // Reduce the number of the living Quasmons ^ + return theQHadrons; // ^ + } // ^ + else if(status<0&&nHadrons) // This is just a confusion in the status...^ + { // ^ + G4cerr<<"***G4QEnv::HadrQE: nH="<GetQC(); // QuarkContent of the Quasmon ^ + G4int pqC=qQC.GetCharge(); // Charge (nP) of the Current Quasmon ^ + G4int pqS=qQC.GetStrangeness(); // Strangeness (nL) of theCurrQuasmon^ + G4int pqB=qQC.GetBaryonNumber(); // BaryNumber of the CurrentQuasmon ^ + G4LorentzVector cq4M=pQ->Get4Momentum(); // 4Mom of the Current Quasmon ^ + G4double cqMass=cq4M.m(); // Real Mass of the current Quasmon ^ + G4double fqMass=G4QPDGCode(22).GetNuclMass(pqC,pqB-pqC-pqS,pqS);//CQ FreeM^ +#ifdef pdebug + G4cout<<"G4QEnv::HQE:M="<fM="<KillQuasmon(); // If BackFusion succeeded, kill theQuasmon ^ +#ifdef pdebug + G4cout<<"G4QEnv::HQE:Status after kill (#"<GetStatus()// ^ + <<", nH="<gsM="<GetBaryonNumber(); // ^ ^ - hCB=theEnvironment.CoulombBarrier(hC,hB); // ^ ^ - hKE=hLV.e()-hLV.m(); // ^ ^ - } - if(can&&hKE "Suck the Hadron in Quasm or Env" case ^ ^ - { - if(status) // => "Suck in the existing Quasmon" case ^ ^ - { - G4QContent tQC=inpH->GetQC()+pQ->GetQC(); // ^ ^ - G4LorentzVector tLV=hLV+pQ->Get4Momentum();// ^ ^ - pQ->InitQuasmon(tQC,tLV); // Reinitialize the current Quasmon ^ ^ + G4int qPDG=qQC.GetZNSPDGCode();// PDG Code of the Quasmon ^ + G4double qMass=G4QPDGCode(qPDG).GetMass(); // GroundStM of theQuasmon ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQE:Medium, H#"<GetQC()+theEnvironment.GetQCZNS();// ^ ^ - G4LorentzVector tLV=hLV+theEnvironment.Get4Momentum(); // ^ ^ - theEnvironment=G4QNucleus(tQC,tLV); // Reinit the current Environment ^ ^ + if(eCount==1&&qPDG&&qMass&&tM>qMass+envM)//==> Q+E decay for one Quasm^ + //if(nQuasmons==1 && qPDG && qMass && tM>qMass+envM) // ==> Q+E decay ^ + { // ^ + G4int envPDG = theEnvironment.GetPDG(); // PDGCode of the NuclQEnv. ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQE:Medium, H#"< "Hadron can go out" case ^ ^ - { - G4QHadron* curH = new G4QHadron(inpH); // ^ ^ + // => "Quasmon-Chipolino or Environment-Dibaryon" case ^ + if(qPDG==10 || qPDG==92000000 || qPDG==90002000 || qPDG==90000002)//^ + { + G4QPDGCode h1QPDG=nQPDG; // QPDG of the first hadron ^ + G4double h1M =mNeut; // Mass of the first hadron ^ + G4QPDGCode h2QPDG=h1QPDG;// QPDG of the second hadron ^ + G4double h2M =mNeut; // Mass of the second hadron ^ + if(qPDG==10) // CHIPOLINO decay case ^ + { // ^ + G4QChipolino QChip(qQC);// define the Quasmon as a Chipolino ^ + h1QPDG=QChip.GetQPDG1();// QPDG of the first hadron ^ + h1M =h1QPDG.GetMass();// Mass of the first hadron ^ + h2QPDG=QChip.GetQPDG2();// QPDG of the second hadron ^ + h2M =h2QPDG.GetMass();// Mass of the second hadron ^ + } // ^ + else if(qPDG==90002000) // DiProton decay case ^ + { // ^ + h1QPDG=pQPDG; // QPDG of the first hadron ^ + h1M =mProt; // Mass of the first hadron ^ + h2QPDG=h1QPDG; // QPDG of the second hadron ^ + h2M =mProt; // Mass of the second hadron ^ + } // ^ + else if(qPDG==92000000) // Two lambdas case ^ + { // ^ + h1QPDG=lQPDG; // QPDG of the first hadron ^ + h1M =mLamb; // Mass of the first hadron ^ + h2QPDG=h1QPDG; // QPDG of the second hadron ^ + h2M =mLamb; // Mass of the second hadron ^ + } // ^ + if(h1M+h2M+envM "Three parts decay" case ^ + { // ^ + G4LorentzVector h14M(0.,0.,0.,h1M); // ^ + G4LorentzVector h24M(0.,0.,0.,h2M); // ^ + G4LorentzVector e4M(0.,0.,0.,envM); // ^ + if(!G4QHadron(tot4M).DecayIn3(h14M,h24M,e4M)) // ^ + { // ^ + G4cerr<<"***G4QE::HQE:(0)tM="<h1="< totMass");//^ #endif - theQHadrons.push_back(curH); // Fill hadron-copy (delete equivalent) ^ ^ - } - } // ^ ^ - pQ->ClearOutput(); // Hadron is filled, Clear Frag-output <--<--<--^ ^ - count3=0; // Reset counter of empty hadronizations ^ - } - else count3++; // Increment counter of empty hadronizations ^ - } - else if(status<0||status==2) // => "PANIC or NOTHING was done" case ^ - { - //if(eCount==1 && CheckGroundState(pQ,true)) // ^ - if(eCount==1 && CheckGroundState(pQ)) // ^ - { - std::for_each(output->begin(), output->end(), DeleteQHadron()); // >-------------^ - output->clear(); // ^ - delete output; // >==========================================^ - pQ->KillQuasmon(); // If BackFusion succeeded, kill the Quasmon ^ - return theQHadrons; // ^ - } - if(status<0&&nHadrons) // ^ - { - G4cerr<<"***G4QEnv::HadrQE: nH="<Get4Momentum()+theEnvironment.Get4Momentum(); // ^ - G4double tM=t4M.m(); // Real total (with environment) mass ^ - G4QContent qQC= pQ->GetQC(); // QuarkContent of the Quasmon ^ - G4QContent envQC=theEnvironment.GetQCZNS(); // QuarkCont of NucEnviron ^ - G4QContent curQC=envQC+qQC; // Total Quark Content ^ - G4QNucleus curE(curQC); // Pseudo nucleus for the Total System ^ - G4double curM=curE.GetMZNS();// min mass of the Total System ^ + CleanUp(); // ^ + G4QHadron* evH = new G4QHadron(totQC,tot4M);// ResidualNuclHadr ^ + EvaporateResidual(evH); // Evaporate residual (del. equiv.) ^ + return theQHadrons; // ^ + } // ^ + } // ^ + else // => "Two particles decay" case ^ + { // ^ + G4LorentzVector fq4M(0.,0.,0.,qMass); // ^ + G4LorentzVector qe4M(0.,0.,0.,envM); // ^ + if(!G4QHadron(tot4M).RelDecayIn2(fq4M,qe4M,cq4M,1.,1.))//Q ch.dir.^ + { // ^ + G4cerr<<"***G4QEnv::HadQE:(0)tM="< qPDG="<begin(),output->end(),DeleteQHadron());//>^ + output->clear(); // -->-->-->-->-->-->-->-->-->-->-->-->-->--^ + delete output; // >========================================^ + throw G4QException("G4QEnv::HadrQEnv: Q+Env DecIn2 error"); // ^ + } // ^ + G4QHadron* qH = new G4QHadron(qPDG,fq4M);// the out going Quasmon ^ + theQHadrons.push_back(qH); // (delete equivalent) ^ +#ifdef fdebug + G4cout<<"G4QE::HQE:QuasmH="< gstM="<Get4Momentum(); // 4Mom for the Quasmon ^ - G4QPDGCode QPDGQ=pQ->GetQPDG();// QPDG Code for the Quasmon ^ - G4int PDGQ=QPDGQ.GetPDGCode(); // PDG Code of the QUASMON ^ + std::for_each(output->begin(),output->end(),DeleteQHadron());//->->->-^ + output->clear(); // ^ + delete output; // >========================================^ + CleanUp(); // Clean up the Environ and Quasmons ^ + G4QHadron* evH = new G4QHadron(totQC,tot4M);// Hadron for ResidNucl ^ + EvaporateResidual(evH); // Evaporate residual (del.equiv.) ^ + return theQHadrons; // ^ + } // ^ + else if(eCount==1 && CheckGroundState(pQ,true)) // Correct and Finish ^ + { // ^ + std::for_each(output->begin(), output->end(), DeleteQHadron()); // ->-^ + output->clear(); // ^ + delete output; // >========================================^ + pQ->KillQuasmon(); // If BackFusion succeeded, kill Quasm ^ + eCount--; // Reduce a#of the living Quasmons ^ + return theQHadrons; // ^ + } // ^ + } // ^ + else // "Vacuum" case ^ + { // ^ + G4QPDGCode QPDGQ=pQ->GetQPDG(); // QPDG Code for the Quasmon ^ + G4int PDGQ=QPDGQ.GetPDGCode(); // PDG Code of the QUASMON ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQEnv: vacuum PDGQ="< gsM="<gsM="<KillQuasmon(); // Make done the current Quasmon ^ - } - else if(qMbegin(), output->end(), DeleteQHadron()); // >---------^ - // output->clear(); // ^ - // delete output; // >======================================^ - // pQ->KillQuasmon(); ^ - // return theQHadrons; ^ - //} - G4int ppm=jq; // Initialized by PANIC Quasmon pointer ^ - G4int nRQ=0; // Prototype of a#of additional real Quasmons ^ + if(abs(qM-gsM)<0.0001) // "Fill & Kill" Case ^ + { // ^ + G4QHadron* resQ = new G4QHadron(PDGQ,cq4M); // GSM hadron for CurQ ^ +#ifdef fdebug + G4cout<<"G4QEnv::HadrQEnv:ResQ="<KillQuasmon(); // Make done the current Quasmon ^ + tot4M-=cq4M; // Update theTotalResidNucl of HadrPr. ^ + totQC-=qQC; // Update total residual QC of HadrPr. ^ + eCount--; // Reduce a#of the living Quasmons ^ + } // ^ + else if(eCount==1 && qMbegin(), output->end(), DeleteQHadron());//->-^ + output->clear(); // ^ + delete output; // >========================================^ + pQ->KillQuasmon(); // If BackFusion -> kill theQuasmon ^ + eCount--; // Reduce a#of the living Quasmons ^ + return theQHadrons; // ^ + } // ^ + else if(qMGetQC().GetSPDGCode()==1114 // ^ + || pQ->GetQC().GetSPDGCode()==2224) // ^ + &&qM>theWorld->GetQParticle(QPDGQ)->MinMassOfFragm())//Del&Kill ^ + { // ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQEnv: ***PANIC*** for jq="<Get4Momentum().vect(); // momentum of the PANIC Quasmon ^ - G4double dpm=1.e+30; // Just a big number (dot product of momenta) ^ - for(G4int ir=0; irGetStatus(); // Status of a Quasmon ^ - if(Qst>0) // Skip the dead Quasmon ^ + G4QHadronVector* decHV=pQ->DecayQuasmon();//Dec.Quasm & fill decHV=*^ + CopyAndDeleteHadronVector(decHV);// Copy output to QHadrV of G4Env ^ + tot4M-=pQ->Get4Momentum(); // tot4M recalculation ^ + totQC-=pQ->GetQC(); // totQC recalculation ^ + pQ->KillQuasmon(); // Make done the current Quasmon ^ + eCount--; // Reduce a#of the living Quasmons ^ + } // ^ + } // ^ + } // End of the Medium/Vacuum IF ^ + } // End of the status ELSE IF ^ + else if(status==3) count3++; // ^ + if(status<0) // Panic: Quasmon is below theMassShell ^ + { + //if(eCount==1 && DecayInEnvQ(pQ)) // ^ + //{ // ^ + // std::for_each(output->begin(), output->end(), DeleteQHadron());//->---^ + // output->clear(); // ^ + // delete output; // >======================================^ + // eCount--; // Reduce a#of the living Quasmons ^ + // pQ->KillQuasmon(); // ^ + // return theQHadrons; // ^ + //} // ^ + G4int ppm=jq; // Initialized by PANIC Quasmon pointer ^ + G4int nRQ=0; // Prot. of a#of additionalRealQuasmons ^ +#ifdef pdebug + G4cout<<"G4QEnv::HadrQEnv: ***PANIC*** for jq="<Get4Momentum().vect(); // PANICQuasmon momentum ^ + G4double dpm=1.e+30; // Big number (dot product of momenta) ^ + if(nQuasmons>1) for(G4int ir=0; irGetStatus();// Status of a Quasmon ^ +#ifdef pdebug + G4cout<<"G4QEnv::HadrQEnv: ir="<0) // Skip the dead Quasmon ^ { - nRQ++; // Increment real-Quasmon-counter ^ - G4double dp=vp.dot(rQ->Get4Momentum().vect()); // ^ - if(dpGetQC(); // ^ - G4LorentzVector r4M= rQ->Get4Momentum(); // ^ - rQC += pQ->GetQC(); // ^ - r4M += pQ->Get4Momentum(); // ^ - rQ->InitQuasmon(rQC, r4M); // Make new Quasmon ^ - pQ->KillQuasmon(); // Delete old Quasmon ^ - } - else // No candidate to resolve PANIC was found ^ - { - //if(eCount==1 && CheckGroundState(pQ, true)) // BackFusion attempt ^ - if(eCount==1 && CheckGroundState(pQ)) // BackFusion attempt ^ - { - std::for_each(output->begin(), output->end(), DeleteQHadron()); // >---------^ - output->clear(); // ^ - delete output; // >======================================^ - pQ->KillQuasmon(); // ^ - return theQHadrons; // ^ - } + nRQ++; // Increment real-Quasmon-counter ^ + G4double dp=vp.dot(rQ->Get4Momentum().vect()); // ^ + if(dpGetQC(); // ^ + G4LorentzVector r4M= rQ->Get4Momentum(); // ^ + rQC += pQ->GetQC(); // ^ + r4M += pQ->Get4Momentum(); // ^ + rQ->InitQuasmon(rQC, r4M); // Make new Quasmon ^ #ifdef pdebug - G4cout<<"G4QEnv::HadrQEnv: Cann't resolve PANIC, try to Evaporate"<GetQC()<<"+"<GetQC()<<"="<begin(), output->end(), DeleteQHadron()); // >-->-->-----^ - output->clear(); // ^ - delete output; // >========================================^ - force=true; // Make the force decision ^ - break; // Out of the fragmentation loop >->+ ^ - } // | ^ - } // | ^ - } // | ^ - std::for_each(output->begin(), output->end(), DeleteQHadron()); // >---|-------------^ - output->clear(); // | ^ - delete output; // >================================|=============^ - } // | - } // End of fragmentation LOOP over Quasmons (jq) <---------<----------<-----+ + pQ->KillQuasmon(); // Delete old Quasmon ^ + eCount--; // Decrement counter of living Quasmons ^ + } // ^ + else // No candidate to resolve PANIC was found ^ + { // ^ +#ifdef pdebug + G4cout<<"G4QEnv::HQE: No Q-cand. nRQ="<begin(), output->end(), DeleteQHadron()); //-->-^ + output->clear(); // ^ + delete output; // >======================================^ + pQ->KillQuasmon(); // ^ + eCount--; // Reduce a#of the living Quasmons ^ + return theQHadrons; // ^ + } // ^ +#ifdef pdebug + G4cout<<"G4QEnv::HadrQEnv:NO PANICsolution,t="<GetStatus();// Status of a Quasmon ^ + if(jr==jq) // ^ + { // ^ + totQC+=rQ->GetQC(); // QuarkContent of the Quasmon ^ + tot4M+=rQ->Get4Momentum();// QuarkContent of the Quasmon ^ + } // ^ + else if(Qst) // Skip dead Quasmons ^ + { // ^ + totQC+=rQ->GetQC(); // QuarkContent of the Quasmon ^ + tot4M+=rQ->Get4Momentum();// QuarkContent of the Quasmon ^ + } // ^ + } // End of the "No candidate to resolve PANIC" ELSE ^ + pQ->KillQuasmon(); // Kill the only Quasmon ^ + eCount--; // Reduce a#of the living Quasmons ^ + CleanUp(); // Clean up THIS Quasmon ^ + G4QHadron* evH = new G4QHadron(totQC,tot4M); // Create ResidNuclHadron ^ + EvaporateResidual(evH); // Try to evaporate residual (del.equiv.) ^ + std::for_each(output->begin(), output->end(), DeleteQHadron());//->-->--^ + output->clear(); // ^ + delete output; // >======================================^ + force=true; // Make the force decision ^ + break; // Out of the fragmentation loop >->+ ^ + } // | ^ + } // | ^ + } // | ^ + std::for_each(output->begin(), output->end(), DeleteQHadron()); // >----|-----^ + output->clear(); // | ^ + delete output; // >================================|=====^ + } // | + } // End of fragmentation LOOP over Quasmons (jq) <--------<----------<-----+ } - else if(totMass>totM+.001) // ==> "Try Evaporation or decay" case + // @@@@ For 1 livingQuasmon & totMass>minRQ+mREnv -> decay in RE+RQ (in RQ direction) + else if(totMass>totM+.001) // ==> "Try Evaporation or decay" case { #ifdef pdebug - G4cout<<"G4QEnv::HadrQE: M="< "Baryon/Meson residual Quasmon" case { - if(totPDG==90999999||totPDG==90999000||totPDG==90000999||totPDG==89999001)//=>"M"case + if(totPDG==90999999||totPDG==90999000||totPDG==90000999||totPDG==89999001)//"M"ca { - G4cerr<<"***G4QEnv::HadrQEnv: Meson (2) PDG="< "DELTA- or DELTA++" case (?antiDELTA) { G4double mBar=mProt; G4int bPDG=2212; G4double mMes=mPi; G4int mPDG=211; - if(totPDG==1114) // "DELTA-" case + if(totPDG==1114) // "DELTA-" case { mBar=mNeut; bPDG=2112; @@ -1306,13 +1765,13 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() if(totMassSetNFragments(2); // Put a#of Fragments=2 - //theQHadrons.push_back(delta); // Fill the residual DELTA (delete equivalent) + //theQHadrons.push_back(delta); // Fill the residual DELTA (del.Eq.) // Instead //delete delta; // @@ -1322,7 +1781,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() { G4cerr<<"***G4QEnv::HadronizeQEnv: B="<(?) mD="<B+M decay failed"); + throw G4QException("G4QEnvironment::HadronizeQEnvironment:D->B+M error"); } #ifdef pdebug G4cout<<"G4QEnv::HadronizeQEnv: DELTA="< Bar=" @@ -1330,14 +1789,20 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() #endif G4QHadron* curBar = new G4QHadron(bPDG,b4Mom); theQHadrons.push_back(curBar); // Fill the baryon (delete equivalent) +#ifdef fdebug + G4cout<<"G4QEnv::HadrQEnv:BaryonH="<(?) mChipo="<1+2 decay failed"); + throw G4QException("G4QEnvironment::HadronizeQEnv: Chipo->1+2 decay failed"); } #ifdef pdebug G4cout<<"G4QEnv::HadronizeQEnv: Chipo="< h1=" @@ -1358,8 +1823,14 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() #endif G4QHadron* curH1 = new G4QHadron(h1PDG,h14Mom); theQHadrons.push_back(curH1); // Fill the curH1 (delete equivalent) +#ifdef fdebug + G4cout<<"G4QEnv::HadrQEnv:HadronH="<(?) mTot="< h="<h="<(?) mTot="< h="<h="<clear(); // The instances are filled above ^ delete curout; // >===============================^ @@ -1458,10 +1943,10 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() } else { - G4QContent tQC =totQC; // Not subtracted copy for error prints + G4QContent tQC =totQC; // Not subtracted copy for error prints G4int NaK =0; // a#of additional Kaons/anti-Kaons G4int aKPDG =0; // PDG of additional Kaons/anti-Kaons - G4double MaK =0.; // Total Mass of additional Kaons/anti-Kaons + G4double MaK =0.; // TotalMass of additionalKaons/anti-Kaons G4int NPi =0; // a#of additional pions G4int PiPDG =0; // PDG of additional pions G4double MPi =0.; // Total Mass of additional pions @@ -1470,7 +1955,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() aKPDG=321; NaK=-totS; MaK=mK*NaK; - totQC+=totS*KpQC; + tQC+=totS*KpQC; totChg+=totS; // Charge reduction (totS<0!) totS=0; // Anti-strangness goes to anti-Kaons } @@ -1479,7 +1964,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() aKPDG=311; NaK=-totS; MaK=mK0*NaK; - totQC+=totS*K0QC; + tQC+=totS*K0QC; totS=0; // Anti-strangness goes to anti-Kaons } else if (totBN>0&&totS>totBN&&totBN "additional K0" case @@ -1487,7 +1972,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() aKPDG=-311; NaK=totS-totBN; MaK=mK0*NaK; - totQC+=NaK*K0QC; + tQC+=NaK*K0QC; totS-=NaK; // Reduce residualstrangeness } else if (totBN>0&&totS>totBN&&totChg<0)// => "additional K-" case @@ -1495,7 +1980,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() aKPDG=-321; NaK=totS-totBN; MaK=mK0*NaK; - totQC+=NaK*KpQC; + tQC+=NaK*KpQC; totChg+=NaK; // Increase residual charge totS-=NaK; // Reduce residual strangeness } @@ -1505,7 +1990,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() PiPDG=211; NPi=totChg-totBN+totS; MPi=mPi*NPi; - totQC-=NPi*PiQC; + tQC-=NPi*PiQC; totChg-=NPi; } else if (totBN>0&&totChg<0) // => "additional PI-" case @@ -1513,7 +1998,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() PiPDG=-211; NPi=-totChg; MPi=mPi*NPi; - totQC+=NPi*PiQC; // Now anti-Pions must be subtracted + tQC+=NPi*PiQC; // Now anti-Pions must be subtracted totChg+=NPi; } else if (!totBN&&totChg>1-totS) // => "additional PI+" case @@ -1521,7 +2006,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() PiPDG=211; NPi=totChg+totS-1; MPi=mPi*NPi; - totQC-=NPi*PiQC; + tQC-=NPi*PiQC; totChg-=NPi; } else if (!totBN&&totChg<-1-totS) // => "additional PI-" case @@ -1529,20 +2014,25 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() PiPDG=-211; NPi-=totChg+totS+1; MPi=mPi*NPi; - totQC+=NPi*PiQC; // Now anti-Pions must be subtracted + tQC+=NPi*PiQC; // Now anti-Pions must be subtracted totChg+=NPi; } - G4double totRM=0.; // min (GroundSt) Mass of the Residual System + G4double totRM=0.; // min (GS) Mass of the Residual System if(totBN<2) { - totPDG=totQC.GetSPDGCode(); // Minimal PDG Code for the Residual compound - if(totPDG) totRM=G4QPDGCode(totPDG).GetMass(); // min Mass of the Residual System - else G4Exception("G4QEnv::HadrQEnv: Impossible PDG for B=1"); + totPDG=tQC.GetSPDGCode(); // MinPDGCode for the Residual compound + if(totPDG==10&&tQC.GetBaryonNumber()>0) totPDG=tQC.GetZNSPDGCode(); + if(totPDG) totRM=G4QPDGCode(totPDG).GetMass(); // minMass of theResidualSystem + else + { + G4cerr<<"***G4QEnv::HadrQEnv:totPDG="< "Decay in K0 or K+ + NPi" case @@ -1551,20 +2041,46 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() { G4LorentzVector m4Mom(0.,0.,0.,MaK); G4LorentzVector n4Mom(0.,0.,0.,totRM); - if(!G4QHadron(tot4M).DecayIn2(m4Mom, n4Mom)) + G4double sum=MaK+totRM; + if(fabs(totMass-sum)(?) mSN="< mSN="< M=" <(?)SN="<(?)SN="< nK="<(?)SN="< N*K="<(?) mSN="< M=" <(?)SN="< N*PI="<0, tBN="<0,tBN="<0.001&&totBN>0)EvaporateResidual(evH); // Try to evaporate residual (delete equiv.) - else if(totBN==2) DecayDibaryon(evH); // Decay dibaryon (delete equivalent) - else if(totBN==5) DecayAlphaBar(evH); //DelEqu - else if(totPDG==90004004) DecayAlphaAlpha(evH); //DelEqu - else theQHadrons.push_back(evH);// Fill to OUTPUT as it is (delete equiv.) + G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create a Hadron for ResidualNucl + EvaporateResidual(evH); // Try to evaporate residual (del. equiv.) } - else if(nQuasmons==1&&QPDG!=22) // => "Decay in Quasmon + QEnviron" case + else if(nQuasmons==1&&QPDG!=22&&QPDG!=111)// => "Decay Quasmon or Q+Environ" case { G4int envPDG = theEnvironment.GetPDG();// PDGCode of the NuclQEnvironment #ifdef pdebug @@ -1733,7 +2259,7 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() if(!QPDG) { G4cerr<<"***G4QEnv::HadrQE: Quasmon is unknown QHadron: PDG="< "Quasmon-Chipolino or Environment-Dibaryon" case else if(QPDG==10||QPDG==92000000||QPDG==90002000||QPDG==90000002) @@ -1772,77 +2298,49 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4LorentzVector e4M(0.,0.,0.,envM); if(!G4QHadron(tot4M).DecayIn3(h14M,h24M,e4M)) { - G4cerr<<"***G4QEnv::HadQEnv: tM="< h1="<"<KillQuasmon(); - return theQHadrons; - } -#ifdef pdebug - G4cerr<<"***G4QEnv::HadQEnv: tM="<Get4Momentum().m();// Real Mass of the Quasmon - G4double GSM= QQPDG.GetMass(); // GS Mass of the Quasmon - if(QMtotMass) - { #ifdef pdebug - G4cerr<<"***G4QEnv::HadrQE: QM="< totM="< than decaying mass"); #endif - theEnvironment.InitByPDG(NUCPDG); // Cancele the Environment - G4QHadron* evH = new G4QHadron(totQC,tot4M);// Create a Hadron for ResidualNucl - //if(totBN==2) DecayDibaryon(evH); // Try to decay unstable Dibaryon - //else if(totBN==5) DecayAlphaBar(evH); // Try to decay unstable A5 system - //else EvaporateResidual(evH); // Try to evaporate residual (delete equivalent) - EvaporateResidual(evH); // Try to evaporate residual (delete equivalent) - return theQHadrons; - } - else // => "Possible decay" case - { - G4LorentzVector fq4M(0.,0.,0.,GSM); - G4LorentzVector qe4M(0.,0.,0.,envM); - if(!G4QHadron(tot4M).DecayIn2(fq4M,qe4M)) - { - G4cerr<<"***G4QEnv::HadQEnv: tM="< QPDG="< "Join all quasmons to the residual compound and evaporate" case + { +#ifdef pdebug + G4cout<<"***G4QEnv::HadQEnv: Evaporate the total residual tRN="<3) // "Try to correct" case (change condition) { #ifdef pdebug G4cout<<"***G4QEnv::HadrQE: M="<GetNFragments(); G4int gam = theLast->GetPDGCode(); - if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1) // => "Skip K-mes, gamma & decayed" - { + if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1) // => "Skip K,gam & decayed" + { G4QHadron* thePrev = theQHadrons[nOfOUT-2]; - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT - theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT - theQHadrons.push_back(thePrev); // thePast becomes theLast as an instance - delete theLast; // theLast QHadron is deleated as an instance - theLast = thePrev; // Update parameters (thePrev* becomes theLast*) + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT + theQHadrons.push_back(thePrev); // thePast becomes theLast as an instance + delete theLast; // theLast QHadron is deleated as an instance + theLast = thePrev; // Update parameters(thePrev becomes theLast) last4M = theLast->Get4Momentum(); lastQC = theLast->GetQC(); - } + } else { - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT - delete theLast; // the last QHadron is deleated as an instance + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + delete theLast; // theLastQHadron is deleated as an instance } - totQC+=lastQC; // Update (increase) the total QC - tot4M+=last4M; // Update (increase) the total 4-momentum - totMass=tot4M.m(); // Calculate new real total mass - G4int bn=totQC.GetBaryonNumber(); // The BaryNum after addition + totQC+=lastQC; // Update (increase) the total QC + tot4M+=last4M; // Update (increase) the total 4-momentum + totMass=tot4M.m(); // Calculate new real total mass + G4int bn=totQC.GetBaryonNumber(); // The BaryNum after addition totPDG=totQC.GetSPDGCode(); + if(totPDG==10&&totQC.GetBaryonNumber()>0) totPDG=totQC.GetZNSPDGCode(); if(bn>1) - { - totS =totQC.GetStrangeness(); // Total Strangeness of this System - if(totS>=0) // => "This is a normal nucleus" case + { + totS =totQC.GetStrangeness(); // Total Strangeness of this System + if(totS>=0) // => "This is a normal nucleus" case { G4QNucleus newN(totQC,tot4M); totPDG=newN.GetPDG(); totM =newN.GetMZNS(); // Calculate new minimum (GS) mass } - else if(totS==-1) // => "Try to decay in K+/aK0 and finish" case + else if(totS==-1) // => "Try to decay in K+/aK0 and finish" { G4double m1=mK; G4int PDG1=321; @@ -1911,18 +2410,24 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() { G4cerr<<"***G4QEnv::HadQEnv: tM="< aK="< "Try to decay in 2(K+/aK0) and finish" case - { + else if(totS==-2) //=>"Try to decay in 2(K+/aK0) and finish" + { G4double m1=mK; G4int PDG1=321; G4double m2=mK0; @@ -1934,14 +2439,14 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() G4double m4=newN00.GetMZNS(); // M-2*K^0 G4QNucleus newNpp(totQC-KpQC-KpQC); G4double m5=newNpp.GetMZNS(); // M-2*K^+ - if (m4+mK0+mK0 "2K0+ResA is the best" case + if (m4+mK0+mK0"2K0+ResA is theBest" { m1 =mK0; PDG1=311; m3 =m4; PDG3=newN00.GetPDG(); } - else if(m5+mK+mK "2Kp+ResA is the best" case + else if(m5+mK+mK"2Kp+ResA isTheBest" { m2 =mK; PDG1=321; @@ -1956,15 +2461,24 @@ G4QHadronVector G4QEnvironment::HadronizeQEnvironment() if(!G4QHadron(tot4M).DecayIn3(k14M,k24M,ra4M)) { G4cerr<<"***G4QEnv::HadQEnv: tM="< aK="< h1="<0)DecayAntiStrange(evH); - else if(dM>0.001&&totBN>2)EvaporateResidual(evH); // Evaporate ResidNucl (del.equiv) - else if(totBN==2) DecayDibaryon(evH);// Decay dibaryon (delete equivalent) - else if(totBN==5) DecayAlphaBar(evH);// "Alpha+Baryon Decay" case (delete eq.) - else if(totPDG==90004004) DecayAlphaAlpha(evH); // "Alpha+Alpha Decay" case (del eq.) - else theQHadrons.push_back(evH);// Fill to OUTPUT as it is (delete equivalent) + // throw G4QException("G4QEnvironment::HadronizeQEnv:Can't decayExhostedQEnv"); + G4QHadron* evH = new G4QHadron(totPDG,tot4M);// Create Hadron for ResidNucleus + EvaporateResidual(evH); // Evaporate ResidNucl (del.equiv) } } + else // "Last decay was fatal" case @@ buggy ?MK + { +#ifdef pdebug + G4cout<<"***G4QEnv::HadrQE: M="< PDG="<GetQC(); // Quark Content of the hadron + G4int theBN=theQC.GetBaryonNumber(); // A + G4int theC=theQC.GetCharge(); // P + G4int theS=theQC.GetStrangeness(); // S + G4int theN=theBN-theC-theS; // N + if(!thePDG) thePDG = theQC.GetSPDGCode(); // If there is no PDG code, get it from QC + if(thePDG==10&&theQC.GetBaryonNumber()>0) thePDG=theQC.GetZNSPDGCode(); + G4double totGSM = G4QNucleus(thePDG).GetGSMass();// TheGroundStMass of theTotalResNucleus + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of theTotalResidNucleus + G4double totMass = q4M.m(); // Get theRealMass of theTotalResidNucleus +#ifdef pdebug + G4cout<<"G4QEnvironment::EvapResid(EvaRes):===IN==> PDG="<3)// One can easily close this decay as it will be done later (time of calc?) { + G4double gsM=mNeut; + if(thePDG==90001000) gsM=mProt; + else if(thePDG==91000000) gsM=mLamb; + if(fabs(totMass-gsM)<.001) + { +#ifdef fdebug + G4cout<<"G4QE::EvaporateR:GSM="<"<tM="<"<0&&theS<0) DecayAntiStrange(qH); // "AntyStrange Nucleus" case (del eq.) + else if(theBN>0&&!theS&&(theC<0||theC>theBN)) DecayIsonucleus(qH);// "UnavoidableIsonucl" + else if(thePDG==89999003||thePDG==90002999) //=> "ISO-dibarion" (@@Look at prev.line!) + { + // @@ Check that it never comes here !! G4int nucPDG = 2112; G4double nucM = mNeut; G4int piPDG = -211; @@ -2129,14 +2724,23 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) { G4cerr<<"***G4QEnv::HadQEnv: tM="< 2N="<0&&thePDG>88000000&&thePDG<89000000) // === two anti-K in the nucleus + else if(abs(totMass-totGSM)<.001) // Fill as it is or decay Be8, He5, Li5 (@@ add more) { + + if(thePDG==90004004) DecayAlphaAlpha(qH); // "Alpha+Alpha Decay" case (del eq.) + else if(thePDG==90004002) DecayAlphaDiN(qH); // Decay alpha+2p (alpha+2n is stable) + else if((theC==theBN||theN==theBN||theS==theBN)&&theBN>1) DecayMultyBaryon(qH); + else if(theBN==5) DecayAlphaBar(qH); // Try to decay unstable A5 system (del eq.) + else theQHadrons.push_back(qH); // Fill as it is (del eq.) + } + else if(theBN>0&&thePDG>88000000&&thePDG<89000000)//==> 2antiK in the nucleus (!Comment!) + { + G4cerr<<"---Worning---G4QEnv::EvaRes:MustNotBeHere.PDG="< N="< N="< " + if(bZ==2&&bN==5)G4cout<<"G4QE::EvR: (2,5) GSM="< " < " + <7.) throw G4QException("G4QEnvironment::EvaporateResidual: CALLED"); #endif - G4bool bsCond =qNuc.SplitBaryon(); // (Bary/Deut/Alph)SeparCondition for TotResNucl - G4bool dbsCond=qNuc.Split2Baryons(); // (Two Baryons)SeparCondition for TotResidNucl - if((bA==1||!bsCond&&!dbsCond)&&totMass>GSMass+.003)//==>"Fuse&DecayTechnology to avoid gammaDec" - //if(2>3) // Close "Fuse&Decay Technology" ***@@@*** + G4int bsCond =qNuc.SplitBaryon(); // (Bary/Deut/Alph)SeparCond for TotResNucl + G4bool dbsCond=qNuc.Split2Baryons(); // (Two Baryons)SeparCond for TotResidNucl +#ifdef debug + G4cout<<"G4QEnv::EvaRes:bs="<GSMass+.003)//==>Fuse&DecayTech (no gamDec) + //if(2>3) // Close "Fuse&Decay Technology" ***@@@*** { #ifdef debug - G4cout<<"G4QEnv::EvaR: Can't SplitBar s="< GSM="< GSM="<GetBaryonNumber(); G4int nFragm = theLast->GetNFragments(); //////////////////G4int gam = theLast->GetPDGCode(); #ifdef debug - G4cout<<"G4QEnv::EvaRes:*BackFusion* lBN="<GetPDGCode(); G4cout<<"G4QEnv::EvaRes:DelTheLast, nFr="<1) // => "Skip Meson/Gams & Antibaryons" case { - G4QHadron* thePrev = theQHadrons[nOfOUT-2];// *** Exchange between theLast & thePrev *** - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT - theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT - theQHadrons.push_back(theLast); // the Last becomes the Prev(first part of exchange) - theQHadrons.push_back(thePrev); // the Prev becomes the Last (second part of exch.) - theLast = thePrev; // Update the Last pointer (Prev instead of Last) + G4QHadron* thePrev = theQHadrons[nOfOUT-2];//***Exchange between Last & Prev*** + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + theQHadrons.pop_back(); // the prev QHadron is excluded from OUTPUT + theQHadrons.push_back(theLast);// the Last becomes the Prev (1st part of exch.) + theQHadrons.push_back(thePrev);// the Prev becomes the Last (2nd part of exch.) + theLast = thePrev; // Update theLastPointer (Prev instead of Last) } G4LorentzVector last4M = theLast->Get4Momentum(); G4QContent lastQC = theLast->GetQC(); - G4double lastM = last4M.m(); // Mass of the BackFused Fragment - totQC+=lastQC; // Update (increase) the total QC - q4M+=last4M; // Update (increase) the total 4-momentum - totMass=q4M.m(); // Calculate new real total mass - G4int totPDG=totQC.GetSPDGCode(); // The updated PDG for the Total Residual Nucleus - G4int totBN=totQC.GetBaryonNumber(); // Baryon number of the Total Residual Nucleus + G4double lastM = last4M.m(); // Mass of the BackFused Fragment + totQC+=lastQC; // Update (increase) the total QC + q4M+=last4M; // Update (increase) the total 4-momentum + totMass=q4M.m(); // Calculate new real total mass + G4int totPDG=totQC.GetSPDGCode();// The updated PDG for the TotalResidualNucleus + if(totPDG==10&&totQC.GetBaryonNumber()>0) totPDG=totQC.GetZNSPDGCode(); + G4int totBN=totQC.GetBaryonNumber();// BaryonNumber of the Total Residual Nucleus G4double dM=totMass-GSMass -lastM; #ifdef debug - G4cout<<"G4QE::EvR:TM="<-0.001) { - G4QHadron* evH = new G4QHadron(totPDG,q4M);// Create QHadron for the TotalResidNucleus + G4QHadron* evH = new G4QHadron(totPDG,q4M);// Create QHadron for TotalResidNucl if(dM<=0.) { - theQHadrons.pop_back(); // lastQHadron is excluded from QHadrV as is in TRN - delete theLast; //!When killing, DON'T forget to delete last QHadron as an instance! - if(totBN==2)DecayDibaryon(evH); // Fill dibaryon (with decay products) - else theQHadrons.push_back(evH); // Fill TRN to HVect as it's (delete equivalent) + theQHadrons.pop_back(); // lastQHadron is excluded from QHadrV asIs in TRN + delete theLast; //When kill, DON'T forget to delete lastQHadron asAnInstance! + if(totBN==2)DecayDibaryon(evH); // Fill dibaryon (with decay products) + else theQHadrons.push_back(evH);// Fill TRN to HVect asIs (delete equivalent) } - else // Decay TotalResidualNucleus in GSM+Last and Break + else // Decay TotalResidualNucleus in GSM+Last and Break { G4LorentzVector r4Mom(0.,0.,0.,GSMass); if(!G4QHadron(q4M).DecayIn2(last4M,r4Mom)) { - theQHadrons.pop_back(); // lastQHadron is excluded from QHadrV as is in TRN - delete theLast; //!When killing, DON'T forget to delete last QHadron as an instance! - theQHadrons.push_back(evH); // Fill TRN to Vect as it is (delete equivalent) + theQHadrons.pop_back(); // lastQHadron is excluded from QHadrV as is in TRN + delete theLast; //When kill,DON'T forget to delete lastQHadron asAnInstance + theQHadrons.push_back(evH);// Fill TRN to Vect as it is (delete equivalent) #ifdef debug - G4cout<<"***G4QEnv::EvaRes: DecayIn L"<Set4Momentum(last4M); // Already exists: don't create&fill, just set 4Mom + delete evH; // Delete theHadron of the TotalResidualNucleus + theLast->Set4Momentum(last4M);// Already exists:don't create&fill,->set4Mom G4QHadron* nuclH = new G4QHadron(thePDG,r4Mom); - if(thePDG==92000000||thePDG==90002000||thePDG==90000002)DecayDibaryon(nuclH);//DelEq - else theQHadrons.push_back(nuclH);// Fill the Residual Nucleus (delete equivalent) + if(thePDG==92000000||thePDG==90002000||thePDG==90000002) + DecayDibaryon(nuclH);//DE + else theQHadrons.push_back(nuclH);// Fill the Residual Nucleus (del.eq.) } break; } } - thePDG=totPDG; // Make a Residual Nucleus out of the TotResidNucl - GSMass=G4QPDGCode(thePDG).GetMass(); // Update the Total Residual Nucleus mass - theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT - delete theLast;//!! When killing, DON'T forget to delete the last QHadron as an instance!! - nOfOUT--; // Update the value of OUTPUT entries + thePDG=totPDG; // Make ResidualNucleus outOf theTotResidualNucl + GSMass=G4QPDGCode(thePDG).GetMass();// Update the Total Residual Nucleus mass + theQHadrons.pop_back(); // the last QHadron is excluded from OUTPUT + delete theLast;//!!When kill,DON'T forget to delete theLastQHadron asAnInstance!! + nOfOUT--; // Update the value of OUTPUT entries } } if(!nOfOUT || !corFlag) { - G4LorentzVector h4Mom(0.,0.,0.,GSMass); // GSMass should be updated in previous while-LOOP + G4LorentzVector h4Mom(0.,0.,0.,GSMass);//GSMass must be updated inPreviousWhileLOOP G4LorentzVector g4Mom(0.,0.,0.,0.); if(!G4QHadron(q4M).DecayIn2(h4Mom, g4Mom)) { - G4cerr<<"***G4QEnv::EvaRes: h="<tM="<tM="<totResN="<totResN="<0&&bS<0) DecayAntiStrange(qH); // Decay the state with antistrangeness + else if(totMass" M0&&bA>1) // It's nucleus and there is a neutron + G4double nResM =1000000.; // Prototype of mass of residual for a neutron + G4int nResPDG=0; // Prototype of ResidualPDGCode for a neutron + if(bsCond==112&&bN>0&&bA>1) // There's aNeutr in theNucl, which can be split { G4QContent resQC=totQC-neutQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - nResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + nResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (nResPDG==90000001) nResM=mNeut; else if(nResPDG==90001000) nResM=mProt; else if(nResPDG==91000000) nResM=mLamb; - else nResM=resN.GetMZNS(); // min mass of the Residual Nucleus + else nResM=resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double pResM =1000000.; // Prototype of mass of residual for a proton - G4int pResPDG=0; // Prototype of PDGCode of residual for a proton - if(bsCond&&bZ>0&&bA>1) // It's nucleus and there is a proton + G4double pResM =1000000.; // Prototype of mass of residual for a proton + G4int pResPDG=0; // Prototype of PDGCode of residual for a proton + if(bsCond==2212&&bZ>0&&bA>1) // There's aProton in Nucl, which can be split { G4QContent resQC=totQC-protQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - pResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + pResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (pResPDG==90000001) pResM=mNeut; else if(pResPDG==90001000) pResM=mProt; else if(pResPDG==91000000) pResM=mLamb; - else pResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else pResM =resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double lResM =1000000.; // Prototype of mass of residual for a Lambda - G4int lResPDG=0; // Prototype of PDGCode of residual for a Lambda - if(bsCond&&bS>0&&bA>1) // It's nucleus and there is a Lambda + G4double lResM =1000000.; // Prototype of mass of residual for a Lambda + G4int lResPDG=0; // Prototype of PDGCode of residual for a Lambda + if(bsCond==3122&&bS>0&&bA>1) // There's aLambd in theNucl, which can be split { G4QContent resQC=totQC-lambQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - lResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + lResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (lResPDG==90000001) lResM=mNeut; else if(lResPDG==90001000) lResM=mProt; else if(lResPDG==91000000) lResM=mLamb; - else lResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else lResM =resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double dResM =1000000.; // Prototype of mass of residual for a Alpha - G4int dResPDG=0; // Prototype of PDGCode of residual for a Alpha - if(bsCond&&bN>0&&bZ>0&&bA>2) // It's nucleus and there is a Deuteron + G4double dResM =1000000.; // Prototype of mass of residual for a Alpha + G4int dResPDG=0; // Prototype of PDGCode of residual for a Alpha + if(bsCond==90001001&&bN>0&&bZ>0&&bA>2)// There's aDeuter in Nucl, which canBeRadiated { G4QContent resQC=totQC-deutQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - dResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + dResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (dResPDG==90000001) dResM=mNeut; else if(dResPDG==90001000) dResM=mProt; else if(dResPDG==91000000) dResM=mLamb; - else dResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else dResM =resN.GetMZNS(); // minMass of the Residual Nucleus } - G4double aResM =1000000.; // Prototype of mass of residual for a Alpha - G4int aResPDG=0; // Prototype of PDGCode of residual for a Alpha - if(bsCond&&bN>1&&bZ>1&&bA>4) // It's nucleus and there is an Alpha + G4double aResM =1000000.; // Prototype of mass of residual for a Alpha + G4int aResPDG=0; // Prototype of PDGCode of residual for a Alpha + if(bsCond==90002002&&bN>1&&bZ>1&&bA>4)// There's Alpha in theNucl, which can be split { G4QContent resQC=totQC-alphQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - aResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + aResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (aResPDG==90000001) aResM=mNeut; else if(aResPDG==90001000) aResM=mProt; else if(aResPDG==91000000) aResM=mLamb; - else aResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else aResM =resN.GetMZNS(); // minMass of the Residual Nucleus } - G4double nnResM =1000000.; // Prototype of mass of residual for a dineutron - G4int nnResPDG=0; // Prototype of PDGCode of residual for a dineutron - if(dbsCond&&bN>1&&bA>2) // It's nucleus and there is a dineutron + G4double nnResM =1000000.; // Prototype of mass of residual for a dineutron + G4int nnResPDG=0; // Prototype of ResidualPDGCode for a dineutron + if(dbsCond&&bN>1&&bA>2) // It's nucleus and there is a dineutron { G4QContent resQC=totQC-neutQC-neutQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - nnResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + nnResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (nnResPDG==90000001) nnResM=mNeut; else if(nnResPDG==90001000) nnResM=mProt; else if(nnResPDG==91000000) nnResM=mLamb; - else nnResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else nnResM =resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double ppResM =1000000.; // Prototype of mass of residual for a diproton - G4int ppResPDG=0; // Prototype of PDGCode of residual for a diproton - if(dbsCond&&bZ>1&&bA>2) // It's nucleus and there is a diproton + G4double ppResM =1000000.; // Prototype of mass of residual for a diproton + G4int ppResPDG=0; // Prototype of ResidualPDGCode for a diproton + if(dbsCond&&bZ>1&&bA>2) // It's nucleus and there is a diproton { G4QContent resQC=totQC-protQC-protQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - ppResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + ppResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (ppResPDG==90000001) ppResM=mNeut; else if(ppResPDG==90001000) ppResM=mProt; else if(ppResPDG==91000000) ppResM=mLamb; - else ppResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else ppResM =resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double npResM =1000000.; // Prototype of mass of residual for proton+neutron - G4int npResPDG=0; // Prototype of PDGCode of residual for a prot+neut - if(dbsCond&&bN>0&&bZ>0&&bA>2) // It's nucleus and there is a proton and a neutron + G4double npResM =1000000.; // Prototype of ResidualMass for proton+neutron + G4int npResPDG=0; // Prototype of ResidualPDGCode for a prot+neut + if(dbsCond&&bN>0&&bZ>0&&bA>2) // It's nucleus and there is aProton & aNeutron { G4QContent resQC=totQC-neutQC-protQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - npResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + npResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (npResPDG==90000001) npResM=mNeut; else if(npResPDG==90001000) npResM=mProt; else if(npResPDG==91000000) npResM=mLamb; - else npResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else npResM =resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double lnResM =1000000.; // Prototype of mass of residual for lambda+neutron - G4int lnResPDG=0; // Prototype of PDGCode of residual for a lamb+neut - if(dbsCond&&bN>0&&bS>0&&bA>2) // It's nucleus and there is a lambda and a neutron + G4double lnResM =1000000.; // Prototype of residualMass for lambda+neutron + G4int lnResPDG=0; // Prototype of ResidualPDGCode for aLambda+Neut + if(dbsCond&&bN>0&&bS>0&&bA>2) // It's nucleus and there is aLambda & aNeutron { G4QContent resQC=totQC-lambQC-protQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - lnResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + lnResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (lnResPDG==90000001) lnResM=mNeut; else if(lnResPDG==90001000) lnResM=mProt; else if(lnResPDG==91000000) lnResM=mLamb; - else lnResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else lnResM =resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double lpResM =1000000.; // Prototype of mass of residual for a proton+lambda - G4int lpResPDG=0; // Prototype of PDGCode of residual for a prot+lamb - if(dbsCond&&bS>0&&bZ>0&&bA>2) // It's nucleus and there is a proton and a lambda + G4double lpResM =1000000.; // Prototype of residualMass for a proton+lambda + G4int lpResPDG=0; // Prototype of ResidualPDGCode for theProt+lamb + if(dbsCond&&bS>0&&bZ>0&&bA>2) // It's nucleus and there is aProton and aLambda { G4QContent resQC=totQC-neutQC-protQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - lpResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + lpResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (lpResPDG==90000001) lpResM=mNeut; else if(lpResPDG==90001000) lpResM=mProt; else if(lpResPDG==91000000) lpResM=mLamb; - else lpResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else lpResM =resN.GetMZNS(); // minMass of the Residual Nucleus } - G4double llResM =1000000.; // Prototype of mass of residual for a di-lambda - G4int llResPDG=0; // Prototype of PDGCode of residual for a di-lambda - if(dbsCond&&bS>1&&bA>2) // It's nucleus and there is a di-lambda + G4double llResM =1000000.; // Prototype of mass of residual for a di-lambda + G4int llResPDG=0; // Prototype of ResidPDGCode for the di-lambda + if(dbsCond&&bS>1&&bA>2) // It's nucleus and there is a di-lambda { G4QContent resQC=totQC-neutQC-protQC; - G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus - llResPDG=resN.GetPDG(); // PDG of the Residual Nucleus + G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus + llResPDG=resN.GetPDG(); // PDG of the Residual Nucleus if (llResPDG==90000001) llResM=mNeut; else if(llResPDG==90001000) llResM=mProt; else if(llResPDG==91000000) llResM=mLamb; - else llResM =resN.GetMZNS(); // min mass of the Residual Nucleus + else llResM =resN.GetMZNS(); // min mass of the Residual Nucleus } #ifdef debug G4cout<<"G4QEnv::EvaRes: rP="<1 && bsCond && ( bN>0&&totMass>nResM+mNeut || bZ>0&&totMass>pResM+mProt || bS>0&&totMass>lResM+mLamb) - || bA>2 && (bN>0&&bZ>0 && (bsCond && totMass>dResM+mDeut || dbsCond && totMass>dResM+mDeut) - || dbsCond && ( bN>1&&totMass>nnResM+mNeut+mNeut - || bZ>1&&totMass>ppResM+mProt+mProt - || bS>1&&totMass>llResM+mLamb+mLamb - || bN&&bS&&totMass>lnResM+mLamb+mNeut - || bZ&&bS&&totMass>lpResM+mLamb+mProt))) + ||bA>2&&(bN>0&&bZ>0&&(bsCond&&totMass>dResM+mDeut||dbsCond && totMass>dResM+mDeut) + ||dbsCond && ( bN>1&&totMass>nnResM+mNeut+mNeut + || bZ>1&&totMass>ppResM+mProt+mProt + || bS>1&&totMass>llResM+mLamb+mLamb + || bN&&bS&&totMass>lnResM+mLamb+mNeut + || bZ&&bS&&totMass>lpResM+mLamb+mProt))) { - G4int barPDG = 90002002; // Just for the default case of Be8->alpha+alpha + G4int barPDG = 90002002; // Just for the default case of Be8->alpha+alpha G4int resPDG = 90002002; G4int thdPDG = 0; G4double barM= mAlph; G4double resM= mAlph; - G4double thdM= mNeut; // This default value is used in the IF - if(gResPDG&&totMass>mHel6+.003) // Can make radiative decay of He6 (priority 0) + G4double thdM= mNeut; // This default value is used in the IF + G4double tMC=totMass+.0002; + if(gResPDG&&tMC>mHel6+.003) // Can make radiative decay of He6 (priority 0) { barPDG=90002004; resPDG=22; barM =mHel6; resM =0.; } - else if(nResPDG&&totMass>nResM+mNeut) // Can radiate a neutron (priority 1) + else if(nResPDG&&tMC>nResM+mNeut) // Can radiate a neutron (priority 1) { barPDG=90000001; resPDG=nResPDG; barM =mNeut; resM =nResM; } - else if(pResPDG&&totMass>pResM+mProt) // Can radiate a proton (priority 2) + else if(pResPDG&&totMass+.001>pResM+mProt) // Can radiate a proton (priority 2) { barPDG=90001000; resPDG=pResPDG; barM =mProt; resM =pResM; } - else if(lResPDG&&totMass>lResM+mLamb) // Can radiate a Lambda (priority 3) + else if(lResPDG&&tMC>lResM+mLamb) // Can radiate a Lambda (priority 3) { barPDG=91000000; resPDG=lResPDG; barM =mLamb; resM =lResM; } - else if(ppResPDG&&totMass>ppResM+mProt+mProt)// Can radiate a DiProton (priority 4) + else if(thePDG!=90004004&&bN>1&&bZ>1&&bA>4&&tMC>aResM+mAlph)// Decay in alpha (p4) + { + barPDG=90002002; + resPDG=aResPDG; + barM =mAlph; + resM =aResM; + } + else if(dResPDG&&tMC>dResM+mDeut) // Can radiate a Deuteron (priority 5) + { + barPDG=90001001; + resPDG=dResPDG; + barM =mDeut; + resM =dResM; + } + else if(ppResPDG&&tMC>ppResM+mProt+mProt)// Can radiate a DiProton (priority 6) { barPDG=90001000; resPDG=ppResPDG; @@ -2538,7 +3187,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) resM =ppResM; thdM =mProt; } - else if(nnResPDG&&totMass>nnResM+mNeut+mNeut)// Can radiate a DiNeutron (priority 5) + else if(nnResPDG&&tMC>nnResM+mNeut+mNeut)// Can radiate a DiNeutron (priority 7) { barPDG=90000001; resPDG=nnResPDG; @@ -2546,7 +3195,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) barM =mNeut; resM =nnResM; } - else if(npResPDG&&totMass>npResM+mProt+mNeut)// Can radiate a neutron+proton (priority 6) + else if(npResPDG&&tMC>npResM+mProt+mNeut)// Can radiate a neutron+proton (prior 8) { barPDG=90001000; resPDG=npResPDG; @@ -2554,7 +3203,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) barM =mProt; resM =npResM; } - else if(lnResPDG&&totMass>lnResM+mLamb+mNeut)// Can radiate a Lambda+neutron (priority 7) + else if(lnResPDG&&tMC>lnResM+mLamb+mNeut)// Can radiate a Lambda+neutron (prior 9) { barPDG=91000000; resPDG=lnResPDG; @@ -2562,7 +3211,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) barM =mLamb; resM =lnResM; } - else if(lpResPDG&&totMass>lpResM+mLamb+mProt)// Can radiate a Lambda+proton (priority 8) + else if(lpResPDG&&tMC>lpResM+mLamb+mProt)// Can radiate a Lambda+proton (prior 10) { barPDG=91000000; resPDG=lpResPDG; @@ -2571,7 +3220,7 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) resM =lpResM; thdM =mProt; } - else if(llResPDG&&totMass>llResM+mLamb+mLamb)// Can radiate a DiLambda (priority 9) + else if(llResPDG&&tMC>llResM+mLamb+mLamb)// Can radiate a DiLambda (priority 11) { barPDG=91000000; resPDG=llResPDG; @@ -2580,31 +3229,17 @@ void G4QEnvironment::EvaporateResidual(G4QHadron* qH, G4bool corFlag) resM =llResM; thdM =mLamb; } - else if(thePDG!=90004004&&bN>1&&bZ>1&&bA>4&&totMass>aResM+mAlph) // Try to decay in alpha + else if(thePDG!=90004004&&tMC>GSMass)// If it's not Be8 decay in gamma & GSM { - barPDG=90002002; - resPDG=aResPDG; - barM =mAlph; - resM =aResM; - } - else if(dResPDG&&totMass>dResM+mDeut) // Can radiate a Deuteron (lowest priority) - { - barPDG=90001001; - resPDG=dResPDG; - barM =mDeut; - resM =dResM; - } - else if(thePDG!=90004004&&totMass>GSMass)// If it's not Be8 decay in gamma & GSM - { - barPDG=22; - resPDG=thePDG; - barM =0.; - resM =GSMass; + barPDG=thePDG; + resPDG=22; + barM =GSMass; + resM =0.; } else if(thePDG!=90004004) { - G4cerr<<"***G4QEnv::EvaRes:PDG="<DecayIn2(a4Mom,b4Mom)) { theQHadrons.push_back(qH); // Fill as it is (delete equivalent) - G4cout<<"G4QEnv::EvaRes: rP="< GS="<GSM="<GetCharge(); // Baryon number of the residual nucleus G4double bCB=qNuc.CoulombBarrier(bC,bB); //G4double rCB=qNuc.CoulombBarrier(rC,rB); - G4cout<<"G4QEnv::EvaRes: Attempt #"< "< "< bCB="< 2 - unexpected evaporated fragment"<2 - unexpected evaporated fragment"<2) EvaporateResidual(rHadron); // Continue evaporation (@@ Self-call) - else if(rB==2) // => "Dibaryon" case needs decay + else if(rB==2) // => "Dibaryon" case needs decay @@ DecayDibaryon { G4double rGSM = rHadron->GetQPDG().GetMass();// Ground State mass of the dibaryon #ifdef debug - G4cout<<"G4QEnv::EvaRes: ResidDibarionM="< M="< "Dibaryon Decay" case (delete equivalent) + else if(abs(rM-rGSM)<0.001&&rPDG==90001001)theQHadrons.push_back(rHadron);//(D.E) + else DecayDibaryon(rHadron); // => "Dibaryon Decay" case (del.equivalent) } - else if(rB==5) DecayAlphaBar(rHadron); // "Alpha+Baryon Decay" case (delete equival.) - else if(rPDG==90004004) DecayAlphaAlpha(rHadron);// "Alpha+Alpha Decay" case (delete equiv.) - else theQHadrons.push_back(rHadron); // Fill ResidNucleus=Baryon to Output HadronVector + else if(rB==5) DecayAlphaBar(rHadron); // "Alpha+Baryon Decay" case (del.equival.) + else if(rPDG==90004002) DecayAlphaDiN(rHadron);//Decay alph+2p (alph+2n is stable) + else if(rPDG==90004004) DecayAlphaAlpha(rHadron);// "Alpha+Alpha Decay" case(delEq) + else theQHadrons.push_back(rHadron); // Fill ResidNucl=Baryon to OutputHadronVector } // End of fail in decay check - else delete qH; + //else delete qH; + else + { + G4Quasmon* quasH = new G4Quasmon(qH->GetQC(),qH->Get4Momentum()); + theEnvironment=G4QNucleus(90000000,G4LorentzVector(0.,0.,0.,0.)); + if(!CheckGroundState(quasH,true)) theQHadrons.push_back(qH); // Cor or fillAsItIs + else delete qH; + delete quasH; + } } // End of Evaporation of excited system +#ifdef debug + G4cout<<"G4QEnv::EvaRes: === End of the evaporation attempt"< "Decay if it is impossible to evaporate" case + else // => "Decay if impossible evaporate" case { #ifdef debug G4cout<<"G4QEnv::EvaRes: InputHadron4M="< h1M="<h1+h2 DecayIn2 did not succeed"); + G4cerr<<"***G4QEnv::EvaRes:tM="< h1M="<h1+h2 DecIn2 error"); } G4QHadron* H2 = new G4QHadron(h2.GetPDGCode(),qe4M); +#ifdef fdebug + G4cout<<"G4QE::EvaRes:(2) h2="<2)theQHadrons.push_back(qH); + if(abs(totMass-totM)<0.001||abs(thePDG)-10*(abs(thePDG)/10)>2) + theQHadrons.push_back(qH); else if ((thePDG==221||thePDG==331)&&totMass>mPi+mPi) // "Decay in pipi" case { G4LorentzVector fq4M(0.,0.,0.,mPi); G4LorentzVector qe4M(0.,0.,0.,mPi); if(!G4QHadron(q4M).DecayIn2(fq4M,qe4M)) { - G4cerr<<"***G4QEnv::HadQEnv: tM="< pi+ + pi-"<Pi+Pi DecayIn2 did not succeed"); + G4cerr<<"***G4QEnv::EvaporateResidual: tM="< pi+ + pi-"<Pi+Pi DecayIn2 error"); } delete qH; G4QHadron* H1 = new G4QHadron(211,fq4M); +#ifdef fdebug + G4cout<<"G4QE::EvaRes:(3) PiPlus="< pi0 + pi0"<Pi+Pi DecayIn2 did not succeed"); + G4cerr<<"***G4QEnv::EvaporateResidual: tM="< pi0 + pi0"<Pi+Pi DecayIn2 error"); } delete qH; G4QHadron* H1 = new G4QHadron(111,fq4M); +#ifdef fdebug + G4cout<<"G4QE::EvaRes:(4) Pi01="< h1M="<H+gamma DecayIn2 did not succeed"); + G4cerr<<"***G4QEnv::EvaporateRes:tM="<h1M="<H+gamma DecIn2 error"); } delete qH; - G4QHadron* H1 = new G4QHadron(22,fq4M); - theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(thePDG,qe4M); +#ifdef fdebug + G4cout<<"G4QE::EvaRes:(5) tot="<gamma + gamma"<g+g DecIn2 error"); + } + delete qH; + G4QHadron* H2 = new G4QHadron(22,qe4M); +#ifdef fdebug + G4cout<<"G4QE::EvaRes:(6) gam1="<>>> End of the EvaporateResidual function"<push_back(curQ); // deleted after the "while LOOP" + } + } + G4QHadronVector* reQHadrons = new G4QHadronVector; // deleted after the "while LOOP" + G4int nH = theQHadrons.size(); + if(nH) + { + for(G4int ih=0; ihpush_back(curH); // deleted after the "while LOOP" + } + } + G4QNucleus reEnvironment=theEnvironment; + G4LorentzVector rem4M=tot4Mom; + while (RepFlag && ExCountGetBaryonNumber(); - if(lHadr>1) // The last hadron is nucleus: try to decay/evap. it +#ifdef pdebug + G4cout<<"G4QE::FSI:after HQE,nH="<1) // The last hadron is nucleus: try to decay/evap. it { G4QHadron* theLast = theQHadrons[nHadr-1]; G4QHadron* curHadr = new G4QHadron(theLast); -#ifdef pdebug - G4cout<<"G4QE::Fr:Before nH="< 2N="<SetQPDG(nuQPDG); - theQHadrons[ipo]->Set4Momentum(n14M); - G4QHadron* nuH = new G4QHadron(nucPDG,n24M); - theQHadrons.push_back(nuH); // (delete equivalent) - G4QHadron* piH = new G4QHadron(tPDG,pi4M); - theQHadrons.push_back(piH); // (delete equivalent) - } - else if(hBN>1 || hPDG==22 && hE<.001) // Nucleus is found: Swap with the last & evap + if(nHadr)for(unsigned ipo=0; ipoGetBaryonNumber(); + G4QHadron* theCurr = theQHadrons[ipo]; // Pointer to the Current Hadron + G4int hBN = theCurr->GetBaryonNumber(); + G4int sBN = theCurr->GetStrangeness(); + G4int cBN = theCurr->GetCharge(); + G4int hPDG = theCurr->GetPDGCode(); + G4LorentzVector h4Mom = theCurr->Get4Momentum(); +#ifdef fdebug + G4int hNF = theCurr->GetNFragments(); + G4cout<<"G4QE::FSI:h#"<lHadr) // Current Hadron is the Biggest fragment -> Swap with theLast Hadron { - G4QHadron* theLast = theQHadrons[nHadr-1]; - G4QHadron* theCurr = theQHadrons[ipo]; - G4QHadron* curHadr = new G4QHadron(theCurr);// Remember the current hadron - theCurr->SetQPDG(theLast->GetQPDG()); // the formal current is substituted by the last - theCurr->Set4Momentum(theLast->Get4Momentum()); - theQHadrons.pop_back(); // pointer to theLast Hadron is excluded from OUTPUT - delete theLast; //*!! When killing, DON'T forget to delete the last QHadron as an instance !!* - if(hPDG!=22) EvaporateResidual(curHadr); // Try to evaporate the Nucleus (delete equiv) + G4QHadron* theLast = theCurr; // Prototype of the pointer to the Last Hadron + G4QHadron* curHadr = new G4QHadron(theCurr);// Remember CurrentHadron for evaporation + if(ipo+1SetQPDG(theLast->GetQPDG());// theCurHadron is substituted by the LastHadr + theCurr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution + } + theQHadrons.pop_back(); // pointer to theLastHadron is excluded from OUTPUT + delete theLast; //*!!When kill,DON'T forget to delete theLastQHadron asAnInstance !!* + theQHadrons.push_back(curHadr); + nHadr=theQHadrons.size(); + h4Mom = theCurr->Get4Momentum(); + hBN = theCurr->GetBaryonNumber(); + cBN = theCurr->GetCharge(); + sBN = theCurr->GetStrangeness(); + hPDG = theCurr->GetPDGCode(); + } + if(hPDG==89002000||hPDG==89001001||hPDG==89000002)// 2pt dec. of anti-strange (3pt dec) + { +#ifdef fdebug + G4cout<<"G4QE::FSI:***ANTISTRANGE*** i="<mProt+mPi+mPi0) + { + sPDG=211; + sM =mPi; + tPDG=111; + tM =mPi0; + } + else if(hMi>mProt+mPi) // @@ Does not conserve strangeness (Week decay) + { +#ifdef fdebug + G4cerr<<"**G4QE::FSI:ANTISTRANGE*++*STRANGENESS,PDG="<mK0mP&&G4UniformRand()>.5) + { + fQPDG= pQPDG; + fM = mProt; + sPDG = 311; + sM = mK0; + } + else if(hMimProt+mPi0+mPi0) + { + fQPDG= pQPDG; + fM = mProt; + sPDG = 111; + sM = mPi0; + tPDG = 111; + tM = mPi0; + if(hMi>mNeut+mPi+mPi0&&G4UniformRand()>.67) + { + fQPDG= nQPDG; + fM = mNeut; + tPDG = 211; + tM = mPi; + } + if(hMi>mProt+mPi+mPi&&G4UniformRand()>.5) + { + sPDG = 211; + sM = mPi; + tPDG =-211; + tM = mPi; + } + } + else if(hMi>mProt+mPi0) // @@ Does not conserve strangeness (Week decay) + { +#ifdef fdebug + G4cerr<<"**G4QE::FSI:*ANTISTRANGE*+*STRANGENESS*PDG="<mNeut+mPi+mPi) + { + sPDG = 211; + sM = mPi; + tPDG =-211; + tM = mPi; + } + if(hMi>mProt+mPi+mPi0) + { + fQPDG= pQPDG; + fM = mProt; + sPDG = 111; + sM = mPi0; + tPDG =-211; + tM = mPi; + } + else if(hMi>mProt+mPi) // @@ Does not conserve strangeness (Week decay) + { +#ifdef fdebug + G4cerr<<"**G4QE::FSI:**ANTISTRANGE*0*STRANGENE**PDG="<"<SetQPDG(fQPDG); + theQHadrons[ipo]->Set4Momentum(f4M); + G4QHadron* sH = new G4QHadron(sPDG,s4M); + theQHadrons.push_back(sH); // (delete equivalent) + } + } + else + { + G4bool fOK=true; + G4LorentzVector f4M(0.,0.,0.,fM); + G4LorentzVector s4M(0.,0.,0.,sM); + G4LorentzVector t4M(0.,0.,0.,tM); + G4double sum=fM+sM+tM; + if(fabs(hM-sum)<=eps) + { + f4M=h4Mom*(fM/sum); + s4M=h4Mom*(sM/sum); + t4M=h4Mom*(tM/sum); + } + else if(hM"<SetQPDG(fQPDG); + theQHadrons[ipo]->Set4Momentum(f4M); + G4QHadron* sH = new G4QHadron(sPDG,s4M); + theQHadrons.push_back(sH); // (delete equivalent) + G4QHadron* tH = new G4QHadron(tPDG,t4M); + theQHadrons.push_back(tH); // (delete equivalent) + } + } nHadr=theQHadrons.size(); } -#ifdef pdebug - G4int hNFrag= theQHadrons[ipo]->GetNFragments(); - G4QContent hQC = theQHadrons[ipo]->GetQC(); - G4cout<<"G4QE::Fr:h#"< N="<SetQPDG(nuQPDG); + theQHadrons[ipo]->Set4Momentum(nu4M); + G4QHadron* baH = new G4QHadron(barPDG,ba4M); + theQHadrons.push_back(baH); // (delete equivalent) + G4QHadron* piH = new G4QHadron(tPDG,pi4M); + theQHadrons.push_back(piH); // (delete equivalent) + nHadr=theQHadrons.size(); + } + } + else if(hBN>1 && !sBN && (cBN<0 || cBN>hBN)) // "nN+mD- or nP+mD++ decay" + { +#ifdef fdebug + G4cout<<"G4QE::FSI:nNmD-/nPmD++ #"<hBN) // reinitialization for the "(n+m)*P,m*pi+" case + { + nuQPDG = pQPDG; // Substitute p for the first n + nucM = mProt; + barPDG = 2212; // Substitute p for the second n + barM = mProt; + tPDG = 211; // Substitute pi+ for the first pi- + nPi = cBN-hBN; // a#0f Pi+'s + } + if(nPi>1) tM*=nPi; + if(nN >1) barM*=nN; + G4bool fOK=true; + G4LorentzVector nu4M(0.,0.,0.,nucM); + G4LorentzVector ba4M(0.,0.,0.,barM); + G4LorentzVector pi4M(0.,0.,0.,tM); + G4double sum=nucM+barM+tM; + if(fabs(hM-sum)<=eps) + { + nu4M=h4Mom*(nucM/sum); + ba4M=h4Mom*(barM/sum); + pi4M=h4Mom*(tM/sum); + } + if(hMN="<SetQPDG(nuQPDG); + theQHadrons[ipo]->Set4Momentum(nu4M); + if(nN>1) ba4M=ba4M/nN; + for(G4int ib=0; ib1) pi4M=pi4M/nPi; + for(G4int im=0; imGetNFragments(); //Recover after swapping + G4QContent hQC = theQHadrons[ipo]->GetQC(); // ... + hPDG = theQHadrons[ipo]->GetPDGCode(); // ... + h4Mom = theQHadrons[ipo]->Get4Momentum(); // ... + ccs4M+=h4Mom; // Calculate CurSum of Hadrs + G4cout<<"G4QE::FSI:#"<>>CurrentControlSumOf4MomOfHadrons="<4) p2cut2=2700.*apa2; - G4double p2cut2=2700.; //cut for only two baryons - if(envA<16) p2cut2=0.; - // - G4int bfCountM=1; - if(envA>8) bfCountM=(envA-1)/4; + G4int bfCountM=3; + if(envA>10) bfCountM*=(envA-1)/3; G4bool bfAct = true; G4int bfCount= 0; G4LorentzVector tmp4Mom=tot4Mom; - while(bfAct&&bfCountGet4Momentum()<Get4Momentum(); + G4double hM=h4Mom.m(); + G4QPDGCode fQPDG=nQPDG; + G4double fM =mNeut; + G4int sPDG =2112; + G4double sM =mNeut; + G4int tPDG =-211; + G4double tM =mPi; + if(hPDG==90002999) + { + fQPDG=pQPDG; + fM =mProt; + sPDG =2212; + sM =mProt; + tPDG =211; + } + G4bool fOK=true; + G4LorentzVector f4M(0.,0.,0.,fM); + G4LorentzVector s4M(0.,0.,0.,sM); + G4LorentzVector t4M(0.,0.,0.,tM); + G4double sum=fM+sM+tM; + if(fabs(hM-sum)<=eps) + { + f4M=h4Mom*(fM/sum); + s4M=h4Mom*(sM/sum); + t4M=h4Mom*(tM/sum); + } + else if(hM"<SetQPDG(fQPDG); + curHadr->Set4Momentum(f4M); + G4QHadron* sH = new G4QHadron(sPDG,s4M); + theQHadrons.push_back(sH); // (delete equivalent) + G4QHadron* tH = new G4QHadron(tPDG,t4M); + theQHadrons.push_back(tH); // (delete equivalent) + } + hPDG = curHadr->GetPDGCode(); // Change PDG Code of theFirstFragment + hQPDG= G4QPDGCode(hPDG); + hGSM = hQPDG.GetMass(); // Change GroundStateMass of theFirstFragm + } + nHadr=theQHadrons.size(); + if(hPDG==89001001||hPDG==89002000||hPDG==89000002) + { + G4cerr<<"---WORNING---G4QE::FSI:***(K+N)*** (2),PDG="<Get4Momentum(); + G4double hM=h4Mom.m(); + G4QPDGCode fQPDG=nQPDG; + G4double fM =mNeut; + G4int sPDG =311; + G4double sM =mK0; + if(hPDG==89000002) + { + fQPDG=pQPDG; + fM =mProt; + sPDG =321; + sM =mK; + } + if(hPDG==89001001) + { + if(hM.5) + { + sPDG =321; + sM =mK; + } + else + { + fQPDG=pQPDG; + fM =mProt; + } + } + G4bool fOK=true; + G4LorentzVector f4M(0.,0.,0.,fM); + G4LorentzVector s4M(0.,0.,0.,sM); + G4double sum=fM+sM; + if(fabs(hM-sum)<=eps) + { + f4M=h4Mom*(fM/sum); + s4M=h4Mom*(sM/sum); + } + else if(hM"<SetQPDG(fQPDG); + curHadr->Set4Momentum(f4M); + G4QHadron* sH = new G4QHadron(sPDG,s4M); + theQHadrons.push_back(sH); // (delete equivalent) + } + hPDG = curHadr->GetPDGCode(); // Change PDG Code of theFirstFragment + hQPDG= G4QPDGCode(hPDG); + hGSM = hQPDG.GetMass(); // Change GroundStateMass of theFirstFragm + } + nHadr=theQHadrons.size(); G4int hS = curHadr->GetStrangeness(); G4int hF = curHadr->GetNFragments(); G4LorentzVector h4m= curHadr->Get4Momentum(); - G4double hM = h4m.m(); // Mass of the first fragment + G4double hM = h4m.m(); // Real Mass of the first fragment G4int hB = curHadr->GetBaryonNumber(); //////////////////////G4int hC = curHadr->GetCharge(); +#ifdef fdebug if(!hF&&(hPDG>80000000&&hPDG<90000000||hPDG==90000000|| hPDG>90000000&&(hPDG%1000000>200000||hPDG%1000>300))) - G4cerr<<"***G4QEnv::Fragment: PDG("<>>h="<0&&!hS&&(nHadr>3||hB<2))// ThermoBackFusion condition (VIMP for gamA TotCS) - //if(2>3) // Close the ThermoBackFusion (VIMP for gamA TotCS) + //if(hadron&&!hF&&hB>0&&!hS&&(nHadr>3||hB<2)) // ThermoBackFus (VIMP for gamA TotCS) + //if(hadron&&!hF&&hB>0&&!hS&&(nHadr>2||hB<4)) // ThermoBackFus (VIMP for gamA TotCS) + if(hadron&&!hF&&hB>0&&!hS) // ThermoBackFusion cond. (VIMP for gamA TotCS) + //if(hadron&&!hF&&hB>0&&hB<4&&!hS) // ThermoBackFusion cond. (VIMP for gamA TotCS) + //if(hadron&&!hF&&hB>0&&!hS&&nHadr>2)//ThermoBackFusion MAX condition (VIMP for gamA) + //if(2>3) // Close the ThermoBackFusion (VIMP for gamA TotCS) { -#ifdef ppdebug +#ifdef fdebug //if(nHadr==3) - G4cout<<"G4QE::Fr:h="<tM="<tM="<tM+.001&&pCM20||hB==1&&bB>0)&&bM+hM>tM+.001 - && (pCM23||pCM2tM+.001&&pCM20||hB==1&&bB>0)&&bM+hM>tM+.00001 + // && (pCM23||pCM2tM+.001&&(pCM23 || // pCM290000000)) - //if(!bF&&(bB<3||hB<3)&&bM+hM>tM+.001&&pCM23||bPDG>90000000)&&bM+hM>tM+.001&&pCM2tM+.001&&pCM2tM+.001&&sM-bM-hMtM+.001&&sM-bM-hMtM+.001&&pCM20&&bM+hM>tM+.001&&pCM2tM+.001&&(pCM23||bPDG>90000000)&&bM+hM>tM+.001&&pCM2tM+.001&&pCM2tM+.001&&sM-bM-hMtM+.001&&sM-bM-hMGetPDGCode(); if(sPDG==89999003||sPDG==90002999||sPDG==89999002||sPDG==90001999) - G4cerr<<"***nD-/pD++G4QEnv::Fr:h="<["<["<["< sM="<sM="< sM="<sM="<10e-6?"<Get4Momentum(); // 4-mom of the previous hadron + //#ifdef pdebug + if(dem>.1) + { + G4cerr<<"---Worning---G4QE::FSI:E/Mcons4M="<900.) // MomentumIsConserved - recoverMissing + { + if(fabs(re-mNeut)<.01) + { + G4cout<<"...G4QE::FSI:E/M conservation is corrected by neutron"<Set4Momentum(cH4Mom+tot4Mom); // modify 4-mom of the Last hadron + G4cout<<"*!* G4QE::FSI:E/M dif is added to theLast="<GetBaryonNumber()>1) + { + G4QHadron* theNew = new G4QHadron(curHadr); // Make NewHadr of theLastHadr + theQHadrons.pop_back(); // the last QHadron is excluded from theOUTPUT + delete curHadr;//!!When kill,DON'T forget to delete theLastQH as an inst.!! + EvaporateResidual(theNew); // Try to evaporate Residual + } + //throw G4QException("***G4QEnv::FSInteract: Energy/Momentum conservation"); + } + tot4Mom=tot4Mom-cor4M; + G4cerr<<"---Worning---G4QE::FSI:En/MomCons.Error is corrected:"<Get4Momentum(); // 4-mom of thePreviousHadron G4double cHM = curHadr->GetMass(); // Mass of the current hadron G4double pHM = prevHadr->GetMass(); // Mass of the current hadron tot4Mom+=cH4Mom+pH4Mom; @@ -3398,56 +5022,61 @@ G4QHadronVector* G4QEnvironment::Fragment() { if(!G4QHadron(tot4Mom).DecayIn2(pH4Mom,cH4Mom)) { - G4cerr<<"***G4QE::Fr:**Correction**tot4M="< sM="<sM="<Set4Momentum(cH4Mom); prevHadr->Set4Momentum(pH4Mom); } - //#ifdef pdebug else { - G4cerr<<"*!*G4QE::Fr: Cann't correct "<"<"<(theQHadrons.size())-1) // Need swap with the Last { @@ -3455,86 +5084,502 @@ G4QHadronVector* G4QEnvironment::Fragment() curHadr->Set4Momentum(theLast->Get4Momentum()); //curHadr->SetQC(theLast->GetQC()); curHadr->SetQPDG(theLast->GetQPDG()); -#ifdef pdebug - G4cout<<"G4QE::Fr: Exchange with the last is done"<1)for(unsigned hdr=0; hdrGetPDGCode()); + //G4double mGamEva=2700.; // Threshold for the evaporation + G4double mGamEva=1700.; // Threshold for the evaporation + if(exResidN.SplitBaryon()) + //if(2>3) //CloseTheFirstPriorityResN+gamSumEvaporation + { + theNew->Set4Momentum(exRes4M); // Icrease 4Mom of theLast by "sum" to Evapor +#ifdef fdebug + G4cout<<"G4QE::FSI:Before E(1),nH="<GetPDGCode()<onH) bfAct=true; + EvaporateResidual(theNew); // Try to evaporate the Nucl.(@@DecDib)(d.e.) + } + else if(theNew->GetPDGCode()==90002002 && exRes4M.m()>mHe3+mNeut + && G4UniformRand()>.5) + { + theNew->Set4Momentum(exRes4M); // Icrease 4Mom of theLast by "sum" to Evapor + G4LorentzVector n4M(0.,0.,0.,mNeut); + G4LorentzVector h4M(0.,0.,0.,mHe3); + if(!theNew->DecayIn2(n4M,h4M)) + { + G4cerr<<"***G4QE::FSI:GamSup, tM="<GetBaryonNumber(); + if(nHadr>1)for(unsigned ipo=0; ipoGetPDGCode(); + if(hPDG==22) gamcnt++; + else + { + G4int hBN = theQHadrons[ipo]->GetBaryonNumber(); +#ifdef fdebug + G4cout<<"G4QE::FSI:h#"<lHadr) + { + lHadr=hBN; + maxB=ipo; + } // the current biggest nuclear fragment + } + } +#ifdef fdebug + G4cout<<"G4QE::FSI:maxB#"<Get4Momentum(); // Accumulate the 4Momenta of photons + G4QHadron* theLast = theQHadrons[nHadr-1];// Pointer to the Last Hadron + G4QPDGCode theLQPDG=theLast->GetQPDG(); + theCurr->SetQPDG(theLQPDG); // theCurHad is substituted by theLastHad + theCurr->Set4Momentum(theLast->Get4Momentum()); // ... continue substitution + theQHadrons.pop_back(); // Pnt to theLastHadr.is excluded from HV + delete theLast;//*!!When kill,DON'T forget to delete theLastQHadron as an inst.!!* + nHadr=theQHadrons.size(); +#ifdef fdebug + G4cout<<"G4QE::FSI:Rep. by lPDG="<GetBaryonNumber(); + G4LorentzVector tR4M=curHadr->Get4Momentum()+gamSum; + G4double tRM=tR4M.m(); // TotMass of theResidualNucleus to decay + if(theLB>4) + { + G4QContent lrQC=curHadr->GetQC()-G4QContent(6,6,0,0,0,0); + G4QNucleus lrN(lrQC); + G4double lrM=lrN.GetMZNS(); + if(tRM>lrM+mAlph) + { + G4LorentzVector lr4M(0.,0.,0.,lrM); + G4LorentzVector al4M(0.,0.,0.,mAlph); + if(!G4QHadron(tR4M).DecayIn2(lr4M,al4M)) + { + curHadr->Set4Momentum(tR4M); + EvaporateResidual(curHadr); // delete equivalent +#ifdef fdebug + G4cout<<"G4QE::FSI: After Evap (1) nH="<nH="<size()<Get4Momentum())/hBN; + curHadr->Set4Momentum(newLV); + curHadr->SetQPDG(G4QPDGCode(hPDG)); + for(G4int bd=1; bdpush_back(secHadr);// (del.equivalent - user is responsible for that) + } + } + else if(curHadr->GetStrangeness()<0&&curHadr->GetBaryonNumber()>0)// AntistrangeNucleus + { + G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-mom of theAntiStrangeNucleus + G4double reM=r4M.m(); // Real mass of the antiStrange nucleus + G4QContent nQC=curHadr->GetQC(); // QCont of the Antistrange nucleus + G4QNucleus newN0(nQC-K0QC); + G4int RPDG=newN0.GetPDG(); + G4double mR=newN0.GetMZNS(); // Residual mass for K0 + G4double mKaon=mK0; // Prototype is mass of K0 + G4int kPDG =311; // Prototype is PDG of K0 + G4QNucleus newNp(nQC-KpQC); + G4double mp=newNp.GetMZNS(); // Residual mass for K+ + if(mp+mK"<A="<Set4Momentum(n4M); + curHadr->SetQPDG(G4QPDGCode(RPDG)); // converted antiStrangeNucleus + G4QHadron* theKaon = new G4QHadron(kPDG,k4M);// Make a New Hadr for the kaon + theFragments->push_back(theKaon); // (delete equivalent for the kaon) + } + hPDG = curHadr->GetPDGCode(); // Change PDG Code of theFirstFragment ? + } + } + else if(hPDG>91000000) // Hypernucleus (@@ Only for the GEANT4 applications) + { +#ifdef fdebug + G4cerr<<"**G4QEnvironment::FSI: Hypernucleus PDG="<GetStrangeness(); // A number of Lambdas in the Hypernucleus + G4LorentzVector r4M=curHadr->Get4Momentum(); // Real 4-momentum of the hypernucleus + G4double reM=r4M.m(); // Real mass of the hypernucleus + G4int rnPDG = hPDG-nL*999999; // Convert Lambdas to neutrons + G4double rnM=G4QNucleus(rnPDG).GetMZNS();// Mass of the new nonstrange nucleus + if(reM"<((reM-rnM)/mPi0); + if (nPi>nL) nPi=nL; + G4double npiM=nPi*mPi0; + G4LorentzVector n4M(0.,0.,0.,rnM); + G4LorentzVector h4M(0.,0.,0.,npiM); + G4double sum=rnM+npiM; + if(fabs(reM-sum)A="<Set4Momentum(n4M); + curHadr->SetQPDG(G4QPDGCode(rnPDG)); // converted hypernucleus + if(nPi>1) h4M=h4M/nPi; // split the 4-mom if necessary + for(G4int ihn=0; ihnpush_back(thePion); // (delete equivalent for the pion) + } + if(rnPDG==90000002) // Additional action with curHadr change + { + G4LorentzVector newLV=n4M/2.; + curHadr->Set4Momentum(newLV); + curHadr->SetQPDG(G4QPDGCode(90000001)); + G4QHadron* secHadr = new G4QHadron(curHadr); + theFragments->push_back(secHadr); // (del.equiv.- user is responsible for del) + } + } + } + theFragments->push_back(curHadr); // (delete equivalent - user is responsible for del) + } // +#ifdef fdebug + G4cout<<"G4QE::FSI:==>OUT,nH="<size()<GetQC()<<",HM="<GetMass()<push_back(curH); // (delete equivalent - user is responsibile) + hadrons->push_back(curH); // (del. equiv. - user is responsibile) } #ifdef pdebug G4cout<<"G4QEnvironment::GetQHadrons ===OUT==="<Get4Momentum(); // Get 4-momentum of the Isonucleus + G4double qM=q4M.m(); // Real mass of the Isonucleus + G4QContent qQC = qH->GetQC(); // Get QuarcContent of the Isonucleus + G4int qBN=qQC.GetBaryonNumber(); // Baryon number of the IsoNucleus + G4int qC=qQC.GetCharge(); // Charge of the IsoNucleus + G4int qPN=qC-qBN; // Number of pions in the Isonucleus + G4int fPDG = 2212; // Prototype for nP+(Pi+) case + G4int sPDG = 211; + G4double fMass= mProt; + G4double sMass= mPi; + if(qC<0) + { + qPN = -qC; + fPDG = 2112; // nN+(Pi-) case + sPDG = -211; + fMass= mNeut; + } + G4double tfM=qBN*fMass; + G4double tsM=qPN*sMass; + G4LorentzVector f4Mom(0.,0.,0.,tfM); + G4LorentzVector s4Mom(0.,0.,0.,tsM); + G4double sum=tfM+tsM; + if(fabs(qM-sum) TotM="<Get4Momentum(); // Get 4-momentum of the Dibaryon G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin dybaryon + G4double qM = q4M.m(); + G4double rM = qM+eps; // Just to avoid the computer accuracy #ifdef pdebug - G4cout<<"G4QEnv::DecayDibaryon: *Called* PDG="<=dmPiP) // "diDelta++" case + { + sPDG = 211; + sMass= mPi; + four = true; + } + else if(qPDG==89998004 && rM>=dmPiN) // "diDelta--" case + { + sPDG = -211; + fPDG = 2112; + sMass= mPi; + fMass= mNeut; + four = true; + } + else if(qPDG==90000002 && rM>=dNeut) // "dineutron" case { fPDG = 2112; sPDG = 2112; fMass= mNeut; sMass= mNeut; } - else if(qPDG==90001001) // "exited deutron" case + else if(qPDG==90001001 && rM>=mDeut) // "exited deutron" case { - G4double qM=q4M.m(); - if(abs(qM-mDeut)<0.003) + if(abs(qM-mDeut)=dLaNe) // "Lambda-neutron" case { fPDG = 2112; sPDG = 3122; fMass= mNeut; sMass= mLamb; } - else if(qPDG==91001000) // "Lambda-proton" case + else if(qPDG==91001000 && rM>=dLaPr) // "Lambda-proton" case { - fPDG = 2212; sPDG = 3122; - fMass= mProt; sMass= mLamb; } - else if(qPDG==92000000) // "diLambda" case + else if(qPDG==89999003 && rM>=nnPi) // "neutron/Delta-" case + { + fPDG = 2112; + sPDG = 2112; + tPDG = -211; + fMass= mNeut; + sMass= mNeut; + } + else if(qPDG==90002999 && rM>=ppPi) // "proton/Delta++" case + { + tPDG = 211; + } + else if(qPDG==90999002 && rM>=lnPi) // "lambda/Delta-" case + { + fPDG = 2112; + sPDG = 3122; + tPDG = -211; + fMass= mNeut; + sMass= mLamb; + } + else if(qPDG==91001999 && rM>=lpPi) // "lambda/Delta+" case + { + sPDG = 3122; + tPDG = 211; + sMass= mLamb; + } + else if(qPDG==90999002 && rM>=dSiNe) // "Sigma-/neutron" case + { + fPDG = 2112; + sPDG = 3112; + fMass= mNeut; + sMass= mSigM; + } + else if(qPDG==91001999 && rM>=dSiPr) // "Sigma+/proton" case + { + sPDG = 3222; + sMass= mSigP; + } + else if(qPDG==92000000 && rM>=dLamb) // "diLambda" case { fPDG = 3122; sPDG = 3122; fMass= mLamb; sMass= mLamb; } - G4LorentzVector f4Mom(0.,0.,0.,fMass); - G4LorentzVector s4Mom(0.,0.,0.,sMass); // Mass is random since probab. time - if(!G4QHadron(q4M).DecayIn2(f4Mom, s4Mom)) + else if(qPDG==91999001 && rM>=dKsNe) // "Ksi-/neutron" case { - G4cerr<<"***G4QEnv::DecayDibaryon:fPDG="<? TotM="<=dKsPr) // "Ksi0/proton" case + { + sPDG = 3322; + sMass= mKsiZ; + } + else if(qPDG!=90002000|| rMGetStrangeness(); + G4int qB = qH->GetBaryonNumber(); + if(qB>0&&qS<0) // Antistrange diBarion + { + DecayAntiStrange(qH); + return; + } + else + { #ifdef pdebug - G4cout<<"G4QEnv::DecayDibaryon: *DONE* f4M="<GetQC(),qH->Get4Momentum()); + if(!CheckGroundState(quasH,true)) + { +#ifdef pdebug + G4cerr<<"***G4QE::DecDiB:GSCorFailed. FillAsItIs,n="<? TotM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecDiBaryon: FillAsItIs diBaryon="<tM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,qH->Get4Momentum()); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecDibar:FillAsItIs DelDel QC/4M="<? (DD2,Can't be here) TotM="<TotM="<GetQC(),qH->Get4Momentum()); + if(!CheckGroundState(quasH,true)) theQHadrons.push_back(qH); // Cor or fill asItIs + else delete qH; + delete quasH; + return; + } + else + { + G4cerr<<"***G4QEnv::DecayDibaryon:Cann't Corr.*EmptyEnv*="<Get4Momentum(); // Get 4-momentum of the Dibaryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decaying tribaryon - G4int qS = qH->GetStrangeness(); // Strangness of the nuclear state - G4int qB = qH->GetBaryonNumber(); + static const G4double eps = 0.003; + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-mom of the AntiStrangeNuclearState + G4double qM = q4M.m(); // Real mass of the AntiStrangeNuclearState + G4QContent qQC= qH->GetQC(); // PDGCode of theDecayingAntiStrangeNuclSt. + G4int qS = qH->GetStrangeness(); // Strangness of the AntiStrangeNuclearState + G4int qB = qH->GetBaryonNumber(); // BaryonNumber of the AntiStrangeNuclearSt. + G4int qP = qH->GetCharge(); // Charge of the AntiStranNuclState (a#of p) #ifdef pdebug - G4cout<<"G4QEnv::DecayAntiStran:*Called* PDG="<0 && qP>qN) // a#of protons > a#of neutrons { - n1=nS; - n2=hS; - } - else if(nS<=qN) - { - n2=qP; - n1=aS-n2; - } - else - { - n1=qN; - n2=aS-n1; - } - qPDG+=n1*999999+n2*999000; - G4double nucM = G4QNucleus(qPDG).GetGSMass(); - if(!n1||!n2) - { - if(!n1) // Only K+'s - { - k1M=mK; - k1PDG=321; // K+ - n1=n2; - } - else k1M=n1*mK0; // Only K+'s - - G4LorentzVector f4Mom(0.,0.,0.,n1*k1M); - G4LorentzVector s4Mom(0.,0.,0.,nucM); - if(!G4QHadron(q4M).DecayIn2(f4Mom, s4Mom)) + if(qP>=bH) // => "Enough protons in nucleus" case { - G4cerr<<"***G4QEnv::DecayAntyStrange: fPDG="< TotM="<=sH) + { + n1=sH; + n2=bH; + } + else + { + G4int dN=qP-qN; + if(dN>=aS) + { + n1=0; + n2=aS; + } + else + { + G4int sS=(aS-dN)/2; + G4int bS=aS-dN-sS; + sS+=dN; + if(qP>=sS&&qN>=bS) + { + n1=bS; + n2=sS; + } + else if(qP=bH) + { + if(qP>=sH) + { + n2=sH; + n1=bH; + } + else + { + G4int dN=qN-qP; + if(dN>=aS) + { + n1=aS; + n2=0; + } + else + { + G4int sS=(aS-dN)/2; + G4int bS=aS-sS; + if(qN>=bS&&qP>=sS) + { + n1=bS; + n2=sS; + } + else if(qNqM+eps && n1==1) // Try to use another K if this is the only kaon + { + G4int naPDG=90000000+(qP-1)*1000+qN; // Prot PDG of the Alternative Residual Nucleus + G4double naM=G4QNucleus(naPDG).GetGSMass(); // Prot Mass of the Alt. Residual Nucleus + G4int akPDG=321; // Prototype PDGCode of the AlternativeKaon (K+) + G4double kaM=mK; // Prototype Mass of the AlternativeKaon (K+) + if(k1PDG==321) // Calculate alternative to the K+ meson + { + naPDG=90000000+qP*1000+qN-1; // PDG of the Alternative Residual Nucleus + naM=G4QNucleus(naPDG).GetGSMass(); // Mass of the Alt. Residual Nucleus + akPDG=311; // PDG Code of the Alternative kaon (K0) + kaM=mK0; // Mass of the Alternative kaon (K0) + } + G4double asum=naM+kaM; + if(asum TotM="<tM="<tM="< End of DecayAntiStrangness"<Get4Momentum(); // Get 4-momentum of the Dibaryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decaying tribaryon + static const G4double eps=0.003; + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the MultyBaryon + G4double qM = q4M.m(); // Mass of the Multybaryon + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decaying multybar + G4QContent qQC = qH->GetQC(); // PDG Code of the decaying multibar #ifdef pdebug - G4cout<<"G4QEnv::DecayThreeBaryon: *Called* PDG="<? TotM="<SetNFragments(3); // Fill a#of fragments to decaying Dibaryon - //theQHadrons.push_back(qH); // Fill hadron with nf=2 (delete equivalent) - // Instead - delete qH; - // - G4QHadron* H1 = new G4QHadron(fPDG,f4Mom); // Create a Hadron for the 1-st baryon - theQHadrons.push_back(H1); // Fill "H1" (delete equivalent) - G4QHadron* H2 = new G4QHadron(fPDG,s4Mom); // Create a Hadron for the 2-nd baryon - theQHadrons.push_back(H2); // Fill "H2" (delete equivalent) - G4QHadron* H3 = new G4QHadron(fPDG,t4Mom); // Create a Hadron for the 3-d baryon - theQHadrons.push_back(H3); // Fill "H3" (delete equivalent) -} // End of DecayThreeBaryon + if(totBN==1)theQHadrons.push_back(qH); + else if(totBN==2) + { + G4LorentzVector f4Mom(0.,0.,0.,fMass); + G4LorentzVector s4Mom(0.,0.,0.,fMass); + G4double sum=fMass+fMass; + if(fabs(qM-sum) TotM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecMultyBar:FillAsItIsDiBar(I=1)="<? TotM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QEnv::DecMultyBar:FillAsItIs 3Baryon="<Get4Momentum(); // Get 4-momentum of the Dibaryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin dybaryon + static const G4double eps=0.003; + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the AlphaDibaryon + G4double qM = q4M.m(); // Real mass of the AlphaDibaryon + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin AlphaDybaryon #ifdef pdebug - G4cout<<"G4QEnv::DecayDibaryon: *Called* PDG="<? TotM="<? TotM="<Get4Momentum(); // Get 4-momentum of the Alpha-Baryon - G4double qM = q4M.m(); // Mass of Alpha-Baryon - G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin Alpha-Baryon + static const G4double mTrit= G4QPDGCode(2112).GetNuclMass(1,2,0); + static const G4double mHe3 = G4QPDGCode(2112).GetNuclMass(2,1,0); + static const G4double eps=0.003; + G4LorentzVector q4M = qH->Get4Momentum(); // Get 4-momentum of the Alpha-Baryon + G4double qM = q4M.m(); // Mass of Alpha-Baryon + G4int qPDG = qH->GetPDGCode(); // PDG Code of the decayin Alpha-Baryon + G4QContent qQC = qH->GetQC(); // PDG Code of the decaying Alpha-Bar #ifdef pdebug - G4cout<<"G4QEnv::DecayAlphaBar: *Called* PDG="<0.&&dM<1.) + G4int totS=qQC.GetStrangeness(); // Total Strangeness (L) + G4int totC=qQC.GetCharge(); // Total Charge (p) + G4int totBN=qQC.GetBaryonNumber(); // Total Baryon Number (A) + G4int totN=totBN-totS-totC; // Total Number of Neutrons (n) + if((totN==totBN||totC==totBN||totS==totBN)&&totBN>1) DecayMultyBaryon(qH); + else if(qPDG==92001002||qPDG==92002001) theQHadrons.push_back(qH); + else if(qPDG==91003001||qPDG==91001003||qPDG==93001001)theQHadrons.push_back(qH); + else if(qPDG==92000003||qPDG==92003000||qPDG==93000002||qPDG==93002000) { + G4int fPDG = 3122; // 1st Prototype for 2L+3n case + G4double fMass= mLamb; + G4int sPDG = 2112; + G4double sMass= mNeut; + if (qPDG==92003000) // "2L+3p" case + { + sPDG = 2212; + sMass= mProt; + } + else if(qPDG==93000002) // "2n+3L" case + { + fPDG = 2112; + fMass= mNeut; + sPDG = 3122; + sMass= mLamb; + } + else if(qPDG==93002000) // "2p+3L" case + { + fPDG = 2212; + fMass= mProt; + sPDG = 3122; + sMass= mLamb; + } + G4double tfM=fMass+fMass; + G4double tsM=sMass+sMass+sMass; + G4LorentzVector f4Mom(0.,0.,0.,tfM); + G4LorentzVector s4Mom(0.,0.,0.,tsM); + G4double sum=tfM+tsM; + if(fabs(qM-sum)M="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecAlphBar:FillAsItIsAlphaBaryon="< TotM="< TotM="< TotM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecAlphBar:FillAsItIsAlphaBaryon="< TotM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecAlphBar:FillAsItIsAlphaBaryon="<0.&&dM<1.) + { +#ifdef pdebug + G4cerr<<"***Corrected***G4QEnv::DecayAlphaBar:fPDG="< TotM="< TotM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecAlphBar:FillAsItIsAlphaBaryon="<Get4Momentum(); // Get 4-momentum of the Dibaryon + G4double qM=q4M.m(); #ifdef pdebug - G4cout<<"G4QEnv::DecayAlphaAlpha: *Called* PDG="<"<aaGSM+.01) // @@ Be8*->gamma+Be8 (as in evaporation) + if(2>3) + { + G4int fPDG = 22; + G4int sPDG = 90004004; + G4double fMass= 0.; + G4double sMass= aaGSM; + G4LorentzVector f4Mom(0.,0.,0.,fMass); + G4LorentzVector s4Mom(0.,0.,0.,sMass); // Mass is random since probab. time + G4double sum=fMass+sMass; + if(fabs(qM-sum) TotM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecAlphAlph:FillAsItIsAlphaAlpha="<Set4Momentum(s4Mom); + q4M=s4Mom; + } G4int fPDG = 90002002; G4int sPDG = 90002002; G4double fMass= mAlph; - G4double sMass= mAlph; G4LorentzVector f4Mom(0.,0.,0.,fMass); - G4LorentzVector s4Mom(0.,0.,0.,sMass); // Mass is random since probab. time - if(!G4QHadron(q4M).DecayIn2(f4Mom, s4Mom)) + G4LorentzVector s4Mom(0.,0.,0.,fMass); + G4double sum=fMass+fMass; + if(fabs(qM-sum)? TotM="< TotM="<GetQC(); + G4Quasmon* quasH = new G4Quasmon(qQC,q4M); + if(!CheckGroundState(quasH,true)) + { + G4cerr<<"---Worning---G4QE::DecAlphaAlpha:FillAsItIsAlphaAlpha="<GetQC(); // Quark content of the Quasmon - G4int resQPDG=valQ.GetSPDGCode(); // Reachable in a member function - G4double resQMa=G4QPDGCode(resQPDG).GetMass(); // GS Mass of the Residual Quasmon - G4double resEMa=0.; // GS Mass of the Empty Residual Environment - G4bool bsCond=false; // BaryonSeparetionCondition for Quasmon in vacuum + G4QContent valQ=quasm->GetQC(); // Quark content of the Quasmon + G4int resQPDG=valQ.GetSPDGCode(); // Reachable in a member function + if(resQPDG==10&&valQ.GetBaryonNumber()>0) resQPDG=valQ.GetZNSPDGCode(); + G4double resQMa=G4QPDGCode(resQPDG).GetMass();// GS Mass of the Residual Quasmon + G4double resEMa=0.; // GS Mass of the EmptyResidualEnvironment + G4bool bsCond=false; // FragSeparatCondition for QuasmonInVacuum G4LorentzVector enva4M=G4LorentzVector(0.,0.,0.,0.); - G4LorentzVector reTLV=quasm->Get4Momentum(); // Prototyoe of the 4-Mom of the Residual Nucleus - G4double resSMa=resQMa; // Prototype of MinimalSplitMass of ResidNucleus + G4QContent reTQC=valQ; // Prototype QuarkContent of the ResidNucl + G4LorentzVector reTLV=quasm->Get4Momentum(); // Prototyoe 4-Mom of the Residual Nucleus +#ifdef pdebug + G4cout<<"G4QE::CGS: "< "Environment is not vacuum" case + if(envPDG!=90000000) // => "Environment is not vacuum" case { // @@@@@@@@@@@@@@@@@@@ CALL SUBROUTINE @@@@@@@@@ - resEMa=theEnvironment.GetMZNS(); // GSMass of the Residual Environment - enva4M=G4LorentzVector(0.,0.,0.,resEMa); // 4-Mom of the Residual Environment - reTLV+=enva4M; // 4-Mom of Residual Nucleus - resSMa+=resEMa; // Minimal Split Mass of Residual Nucleus + resEMa=theEnvironment.GetMZNS(); // GSMass of the Residual Environment + enva4M=theEnvironment.Get4Momentum(); // 4-Mom of the Residual Environment +#ifdef pdebug + G4cout<<"G4QE::CGS: Environ exists gsM="<1) // => "Can split baryon" case + G4double resQM=reTLV.m(); // CM Mass of the Residual vacQuasmon + G4int baryn=valQ.GetBaryonNumber(); // Baryon Number of the Residual vacQuasmon + if(baryn>1) // => "Can split baryon" case { - if(valQ.GetN()) // ===> "Can split neutron" case + if(valQ.GetN()) // ===> "Can split neutron" case { - G4QContent resQC=valQ-neutQC; // QC of Residual for the Neutron - G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Neutron + G4QContent resQC=valQ-neutQC; // QC of Residual for the Neutron + G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Neutron + if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode(); G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual if(resMas+mNeut "Can split proton" case + else if(valQ.GetP()) // ===> "Can split proton" case { - G4QContent resQC=valQ-protQC; // QC of Residual for the Proton - G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Proton + G4QContent resQC=valQ-protQC; // QC of Residual for the Proton + G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Proton + if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode(); G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual if(resMas+mProt "Can split lambda" case + else if(valQ.GetL()) // ===> "Can split lambda" case { - G4QContent resQC=valQ-lambQC; // QC of Residual for the Lambda - G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Lambda + G4QContent resQC=valQ-lambQC; // QC of Residual for the Lambda + G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Lambda + if(resPDG==10&&resQC.GetBaryonNumber()>0) resPDG=resQC.GetZNSPDGCode(); G4double resMas=G4QPDGCode(resPDG).GetMass(); // GS Mass of the Residual if(resMas+mLambresSMa && (resEMa || bsCond)) return true;// Why not ?? @@ (See G4Q the same) + G4int nOfOUT = theQHadrons.size(); // Total #of QHadrons at this point #ifdef pdebug - G4cout<<"G4QEnv::CheckGS:tM="<0. Correct?"<0) reTPDG=reTQC.GetZNSPDGCode(); + G4cout<<"G4QEnv::CheckGS:(tM="<0 & F="< rSM+hM="< rSM+hM="<resSMa+hadrMa) // resMa contains 2 Hadrons: resQ and Environ + G4double tmpTM=tmpTLV.m(); + if(tmpTM>resSMa+hadrMa &&!cNf && crPDG!=22) // Q(E)L contain QM(+EM)+lM ***Last CORR*** { - if(resEMa) // => "The not vacuum Environment exist" case + if(resEMa) // => "NonVacuumEnvironment exists" case { G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon G4QHadron* quasH = new G4QHadron(valQ, quas4M); G4QHadron* envaH = new G4QHadron(theEnvironment.GetQCZNS(),enva4M); - if(!G4QHadron(tmpTLV).DecayIn3(hadr4M,quas4M,enva4M)) + if(tmpTM>=resQMa+resEMa+hadrMa && G4QHadron(tmpTLV).DecayIn3(hadr4M,quas4M,enva4M)) { - delete quasH; // Delete "Quasmon Hadron" - delete envaH; // Delete "Environ Hadron" - G4cerr<<"***G4QEnv::CheckGS: Decay in Fragm+ResQ+ResEnv did not succeeded"<Set4Momentum(hadr4M); quasH->Set4Momentum(quas4M); - if(resQPDG==92000000||resQPDG==90002000||resQPDG==90000002)DecayDibaryon(quasH); // DelEqu + if(resQPDG==92000000||resQPDG==90002000||resQPDG==90000002)DecayDibaryon(quasH); + else if(resQPDG==93000000||resQPDG==90003000||resQPDG==90000003) + DecayMultyBaryon(quasH); + else if(resQPDG==90004002) DecayAlphaDiN(quasH);//Decay alph+2p(alph+2n isStable) else if(resQPDG==90002003||resQPDG==90003002) DecayAlphaBar(quasH); //DelEqu else if(resQPDG==90004004) DecayAlphaAlpha(quasH); //DelEqu - else theQHadrons.push_back(quasH); // Fill ResidQuasm Hadron (delete equivalent) + else theQHadrons.push_back(quasH); // Fill ResidQ as QHadron (delete equiv.) envaH->Set4Momentum(enva4M); - if(envPDG==92000000||envPDG==90002000||envPDG==90000002) DecayDibaryon(envaH); // DelEqu + if(envPDG==92000000||envPDG==90002000||envPDG==90000002) DecayDibaryon(envaH); + else if(envPDG==93000000||envPDG==90003000||envPDG==90000003) + DecayMultyBaryon(envaH); else if(envPDG==90002003||envPDG==90003002) DecayAlphaBar(envaH); //DelEqu + else if(envPDG==90004002) DecayAlphaDiN(envaH);//Decay alph+2p(alph+2n IsStable) else if(envPDG==90004004) DecayAlphaAlpha(envaH); //DelEqu - else theQHadrons.push_back(envaH); // Fill 2nd Hadron (delete equivalent) + else theQHadrons.push_back(envaH); // Fill 2nd Hadron (delete equivalent) } + else + { + delete quasH; // Delete "Quasmon Hadron" + delete envaH; // Delete "Environ Hadron" +#ifdef pdebug + G4cout<<"***G4QEnv::CheckGS: Decay in Frag+ResQ+ResE did not succeeded"< "The Environment is vacuum" case (DecayIn2) + else // => "Environ is vacuum" case (DecayIn2) { G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon G4QHadron* quasH = new G4QHadron(valQ, quas4M); - if(!G4QHadron(tmpTLV).DecayIn2(hadr4M,quas4M)) + if(tmpTM>=resQMa+hadrMa && G4QHadron(tmpTLV).DecayIn2(hadr4M,quas4M))//DeIn2(noEnv) { - delete quasH; // Delete "Quasmon Hadron" - G4cerr<<"***G4QEnv::CheckGS: Decay in Fragm+ResQ did not succeeded"<Set4Momentum(hadr4M); quasH->Set4Momentum(quas4M); - if(resQPDG==92000000||resQPDG==90002000||resQPDG==90000002)DecayDibaryon(quasH); // DelEq + if(resQPDG==92000000||resQPDG==90002000||resQPDG==90000002)DecayDibaryon(quasH); + else if(resQPDG==93000000||resQPDG==90003000||resQPDG==90000003) + DecayMultyBaryon(quasH); else if(resQPDG==90002003||resQPDG==90003002) DecayAlphaBar(quasH); //DelEqu - else if(resQPDG==90004004) DecayAlphaAlpha(quasH); //DelEqu - else theQHadrons.push_back(quasH); // Fill ResidQuasmHadron (delete equivalent) + else if(resQPDG==90004002) DecayAlphaDiN(quasH);//Decay alph+2p(alph+2n IsStable) + else if(resQPDG==90004004) DecayAlphaAlpha(quasH); // DelEqu + else theQHadrons.push_back(quasH); // Fill ResidQuasmHadron (del. equiv.) } + else + { + delete quasH; // Delete "Quasmon Hadron" +#ifdef pdebug + G4cerr<<"***G4QEnv::CheckGS: Decay in Fragm+ResQ did not succeeded"<1 && corFlag) +#ifdef pdebug + G4cout<<"G4QEnv::CheckGS: the Last did not help, nH="<1) // Cor with Last&Previous can be tryed { - G4QHadron* thePrev = theQHadrons[nOfOUT-2]; // Get pointer to previos before last hadron - if(thePrev->GetNFragments()||thePrev->GetNFragments()) return false; // Decayed H or gamma + G4QHadron* thePrev = theQHadrons[nOfOUT-2]; // Get pointer to Prev before Last + if(thePrev->GetNFragments()||thePrev->GetNFragments()) return false;// Dec H/g G4LorentzVector prev4M = thePrev->Get4Momentum(); - G4double prevMa=prev4M.m(); // Mass of previous hadron - tmpTLV+=prev4M; // Increment Total 4-Mom of TotalResidNucl - G4QContent totQC=valQ+theEnvironment.GetQCZNS();// Quark Content of the ResidNucl=ResidQ+Env - G4int totPDG=totQC.GetSPDGCode(); // PDG Code of Total Residual Nucleus + G4double prevMa=prev4M.m(); // Mass of previous hadron + tmpTLV+=prev4M; // Increase Total 4-Mom of TotalResidNucl + G4int totPDG=reTQC.GetSPDGCode(); // PDG Code of Total Residual Nucleus + if(totPDG==10&&reTQC.GetBaryonNumber()>0) totPDG=reTQC.GetZNSPDGCode(); G4double tQMa=G4QPDGCode(totPDG).GetMass(); // GS Mass of the Residual Nucleus #ifdef pdebug - G4cout<<"G4QEnv::CheckGS:NO, T="<r+p+l="<t+h+pM="<tQMa+hadrMa+prevMa) { - G4LorentzVector nuc4M = G4LorentzVector(0.,0.,0.,tQMa); // 4-Mom of ResidNucleus at rest - G4QHadron* nucH = new G4QHadron(totQC, nuc4M); + G4LorentzVector nuc4M = G4LorentzVector(0.,0.,0.,tQMa);// 4-Mom of ResidNucAtRest + G4QHadron* nucH = new G4QHadron(reTQC, nuc4M); if(!G4QHadron(tmpTLV).DecayIn3(hadr4M,prev4M,nuc4M)) { - delete nucH; // Delete "Residual Nucleus Hadron" - G4cerr<<"***G4QEnv::CheckGS: Decay in ResidNucl+LastH+PrevH did not succeeded"<Set4Momentum(prev4M); nucH->Set4Momentum(nuc4M); #ifdef pdebug - G4cout<<"G4QEnv::CheckGS:***SUCCEED***>CHECK, D4M="<CHECK,D4M="<2"<<",MRQ="<2) // Try to find the appropriate partner + { + G4int nphot=-1; + for(G4int id=nOfOUT-3; id>=0; id--) // Search for a photon + { + G4QHadron* curHadr = theQHadrons[id]; + G4int hPDG=curHadr->GetPDGCode(); + if(hPDG==22) nphot=id; + } + if(nphot>=0) // Photon is found, try to use it to resolve PANIC + { + G4QHadron* curHadr = theQHadrons[nphot]; // Pointer to the photon + G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4-Mom of the Photon + G4LorentzVector tt4M=ch4M+reTLV;// (resQMa=GSMass of the ResidQuasmon(+Env.)) + G4double ttM=tt4M.m(); // Mass of the Phot+ResidQm compaund system + if(resQMa0) nnPDG=nnQC.GetZNSPDGCode(); + if(isoN) // Calculations for the Isonuclear Residual + { + if(reTCH<0) // "Delta-" isostate + { + ipiQC=pimQC; // Change QCont for the Residual Pion- + nnQC=reTQC-ipiQC; // Change QCont for theNormalNucleus(Delta-) + nnPDG=nnQC.GetSPDGCode(); // Change PDGCode of theResidNormalNucleus + if(nnPDG==10&&nnQC.GetBaryonNumber()>0) nnPDG=nnQC.GetZNSPDGCode(); + } + G4QPDGCode nnQPDG(nnPDG); + if(nnPDG<80000000) nnM=nnQPDG.GetMass(); // Mass for the Fundamental Hadron + else nnM=nnQPDG.GetNuclMass(nnPDG); // Mass for the Nucleus + } + for(G4int hd=nOfOUT-3; hd>=0; hd--)// Try to use any hadron to resolve PANIC + { + G4QHadron* curHadr = theQHadrons[hd]; + G4int chNF=curHadr->GetNFragments(); + G4int chCH=curHadr->GetCharge(); + G4int chBN=curHadr->GetBaryonNumber(); + if(!chNF) + { + G4LorentzVector ch4M=curHadr->Get4Momentum(); // 4Mom of the Current Hadron + G4LorentzVector tt4M=ch4M+reTLV;// resSMa=GSMass of the ResidQuasmon(+Env) + G4double chM=ch4M.m(); // Mass of the CurrentHadron from theOUTPUT + G4double ttM=tt4M.m(); // TotalMass of CurHadr+ResidQuasm compaund + if(isoN) // "1 Delta Isonucleus" case + { + if(nnM+mPi+chMsize(); + if(nHadrons) + { + for(G4int ih=0; ihoperator[](ih); // Pointer to the i-th QHadron + G4int hNF = inH->GetNFragments(); // A#of secondary fragments + if(!hNF) // Fill only final hadrons + { +#ifdef pdebug + G4cout<<"G4QEnv::Copy&DeleteHV:#"<GetQC(); // Quark content of the Quasmon G4int resQPDG=valQ.GetSPDGCode(); // Reachable in a member function + if(resQPDG==10&&valQ.GetBaryonNumber()>0) resQPDG=valQ.GetZNSPDGCode(); G4double resQMa=G4QPDGCode(resQPDG).GetMass(); // GS Mass of the Residual Quasmon G4LorentzVector enva4M=G4LorentzVector(0.,0.,0.,0.); - G4LorentzVector reTLV=quasm->Get4Momentum(); // Prototyoe of the 4-Mom of the Residual Nucleus - G4double resSMa=resQMa; // Prototype of MinimalSplitMass of ResidNucleus + G4LorentzVector reTLV=quasm->Get4Momentum(); // Prototyoe of the 4-Mom of the ResidNuc + G4double resSMa=resQMa; // Prototype of MinSplitMass of ResidNucl G4int envPDG=theEnvironment.GetPDG(); // PDG Code of the Environment if(envPDG!=90000000) // => "Environment is not vacuum" case { @@ -4199,7 +7496,7 @@ G4bool G4QEnvironment::DecayInEnvQ(G4Quasmon* quasm) enva4M=G4LorentzVector(0.,0.,0.,resEMa); // 4-Mom of the Residual Environment reTLV+=enva4M; // 4-Mom of Residual Nucleus resSMa+=resEMa; // Minimal Split Mass of Residual Nucleus - G4double resTMa=reTLV.m(); // CM Mass of the Residual Nucleus (Quasm+Environ) + G4double resTMa=reTLV.m(); // CM Mass of theResidNucleus (Quasm+Env) //#ifdef pdebug G4cout<<"G4QEnv::DecayInEnvQ: totM="< rQM+rEM="<Set4Momentum(quas4M); - if(resQPDG==92000000||resQPDG==90002000||resQPDG==90000002) DecayDibaryon(quasH); // DelEqu + if(resQPDG==92000000||resQPDG==90002000||resQPDG==90000002) DecayDibaryon(quasH); + else if(resQPDG==93000000||resQPDG==90003000||resQPDG==90000003) + DecayMultyBaryon(quasH); + else if(resQPDG==90004002) DecayAlphaDiN(quasH);//Decay alph+2p (alph+2n is stable) else if(resQPDG==90002003||resQPDG==90003002) DecayAlphaBar(quasH); //DelEqu else if(resQPDG==90004004) DecayAlphaAlpha(quasH); //DelEqu - else theQHadrons.push_back(quasH); // Fill ResidQuasm Hadron (delete equivalent) + else theQHadrons.push_back(quasH); // Fill ResidQuasmHadron (del.equivalent) envaH->Set4Momentum(enva4M); - if(envPDG==92000000||envPDG==90002000||envPDG==90000002) DecayDibaryon(envaH); // DelEquival + if(envPDG==92000000||envPDG==90002000||envPDG==90000002) DecayDibaryon(envaH); + else if(envPDG==93000000||envPDG==90003000||envPDG==90000003) + DecayMultyBaryon(envaH); + else if(envPDG==90004002) DecayAlphaDiN(envaH);// Decay al+2p (a+2n is stable) else if(envPDG==90002003||envPDG==90003002) DecayAlphaBar(envaH); //DelEqu else if(envPDG==90004004) DecayAlphaAlpha(envaH); //DelEqu - else theQHadrons.push_back(envaH); // Fill Environment Hadron (delete equivalent) + else theQHadrons.push_back(envaH); // Fill Environment Hadron (del.Equiv.) } } else return false; diff --git a/examples/extended/geometry/cad/src/CadRunAction.cc b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QException.cc similarity index 76% rename from examples/extended/geometry/cad/src/CadRunAction.cc rename to source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QException.cc index fd4e06b818..af63178880 100644 --- a/examples/extended/geometry/cad/src/CadRunAction.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/body/src/G4QException.cc @@ -20,32 +20,20 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: CadRunAction.cc,v 1.1 2002/06/20 10:00:56 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// +// $Id: G4QException.cc,v 1.5 2003/12/09 15:38:22 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------- G4QException ---------------- +// by Mikhail Kossov, November 2003. +// class for an Exception used by the CHIPS Model // ------------------------------------------------------------ -// Make this appear first! -#include "G4Timer.hh" +#include "G4QException.hh" -#include "CadRunAction.hh" -#include "G4Run.hh" +G4QException::G4QException(G4String message) {theMessage = message;} -CadRunAction::CadRunAction() -{ - timer = new G4Timer; -} +G4QException::~G4QException() throw(){} -CadRunAction::~CadRunAction() -{ - delete timer; -} +const G4String& G4QException::GetMessage() {return theMessage;} -void CadRunAction::BeginOfRunAction(const G4Run* aRun) -{ - timer->Start(); -} - -void CadRunAction::EndOfRunAction(const G4Run* aRun) -{ - timer->Stop(); -} 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 4095e78a16..08c109cd03 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QHadron.cc,v 1.25 2002/12/12 19:14:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QHadron.cc,v 1.36 2003/12/09 15:38:23 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QHadron ---------------- // by Mikhail Kossov, Sept 1999. @@ -53,7 +53,7 @@ G4QHadron::G4QHadron(G4int PDGCode, G4LorentzVector p) : valQ=theQPDG.GetQuarkContent(); } else if(PDGCode>80000000) DefineQC(PDGCode); - else G4cerr<<"***G4QHaron:(P) PDG="<0) curPDG=valQ.GetZNSPDGCode(); if(curPDG&&curPDG!=10) theQPDG.SetPDGCode(curPDG); } @@ -106,7 +107,7 @@ G4QHadron::G4QHadron(G4QParticle* pPart, G4double maxM) : G4cout<<"G4QHadron is created & randomized with maxM="<theMomentum; theQPDG = right->theQPDG; @@ -139,42 +140,47 @@ const G4QHadron& G4QHadron::operator=(const G4QHadron &right) G4QHadron::~G4QHadron() {} -// Decay of the Hadron in 2 particles (f + s) in respect to the direction of refference particle +// Decay of Hadron In2Particles f&s, f is in respect to the direction of HadronMomentumDir G4bool G4QHadron::RelDecayIn2(G4LorentzVector& f4Mom, G4LorentzVector& s4Mom, G4LorentzVector& dir, G4double maxCost, G4double minCost) {// =================================================================== G4double fM2 = f4Mom.m2(); - G4double fM = sqrt(fM2); // Mass of the 1st Hadron + G4double fM = sqrt(fM2); // Mass of the 1st Hadron G4double sM2 = s4Mom.m2(); - G4double sM = sqrt(sM2); // Mass of the 2nd Hadron + G4double sM = sqrt(sM2); // Mass of the 2nd Hadron G4double iM2 = theMomentum.m2(); - G4double iM = sqrt(iM2); // Mass of the decaying hadron - if(theMomentum.e() fM="<fM="<1.) maxCost=1.; + if(maxCost> 1.) maxCost= 1.; + if(minCost<-1.) minCost=-1.; + if(maxCost<-1.) maxCost=-1.; + if(minCost> 1.) minCost= 1.; if (abs(iM-fM-sM)<.001) { G4double fR=fM/iM; @@ -183,10 +189,9 @@ G4bool G4QHadron::RelDecayIn2(G4LorentzVector& f4Mom, G4LorentzVector& s4Mom, s4Mom=sR*theMomentum; return true; } - else if (iM+.001iM="<iM="< fM="< fM="< iM="< iM="<fM="<fM="< iM="< iM="< corE="<corE="<r+s+t -G4bool G4QHadron::DecayIn3(G4LorentzVector& f4Mom,G4LorentzVector& s4Mom,G4LorentzVector& t4Mom) -{// ========================================================================================= +G4bool G4QHadron::DecayIn3 + (G4LorentzVector& f4Mom, G4LorentzVector& s4Mom, G4LorentzVector& t4Mom) +{// ==================================================================================== #ifdef debug - G4cout<<"G4QHadron::DecayIn3:"<pf="<pf="< iM="< iM="< rR) { @@ -479,14 +499,16 @@ G4bool G4QHadron::DecayIn3(G4LorentzVector& f4Mom,G4LorentzVector& s4Mom,G4Loren G4double dif=(e1*e1-four12*fM2)*(e2*e2-four12*tM2); if(dif<0.) { - if(dif<-.01) G4cerr<<"*G4QHadron::DecayIn3: iM="< Exception2"< maxM="<maxM) G4cerr<<"***G4QHadron::RandM:Stable m="<maxM="<MinMassOfFragm(); if(minM>maxM) { #ifdef debug - G4cerr<<"***G4QHadron::RandomizeMass:for PDG="< maxM="<Called< PDG="<80000000) // including 90000000 (OK) { G4int szn=nucPDG-NUCPDG; @@ -273,7 +292,11 @@ void G4QNucleus::InitByPDG(G4int nucPDG) G4cout<<"G4QNucleus::InitByPDG:->QPDG="<0.) { - pA=0.5*freeDib*sA/surf; //@@ Randomize??// a#of quasi-free Nucleon Pairs on the surface + pA=0.5*freeDib*sA/surf; //@@Randomize(?)// a#of quasi-free Nucleon Pairs on the surface dpA=pA+pA; uA=sA-pA-pA; // a#of quasi-free nucleons on the nuclear surface } @@ -428,7 +451,7 @@ G4int G4QNucleus::UpdateClusters(G4bool din) G4cout<<"G4QNucleus::UpdateClusters: Sum of weighted probabilities s="<0&&PQ>0&&AQ>2) // ===> "Can try to split a deuteron" case { G4QContent resQC=valQC-deutQC; // QC of Residual for the Deuteron G4int resPDG=resQC.GetSPDGCode(); // PDG of Residual for the Deuteron @@ -609,7 +632,7 @@ G4bool G4QNucleus::SplitBaryon() #ifdef pdebug G4cout<<"G4QNucleus::SplitBaryon: (deuteron),sM="<1&&PQ>1&&AQ>4) // ===> "Can try to split an alpha" case { @@ -622,9 +645,9 @@ G4bool G4QNucleus::SplitBaryon() #ifdef pdebug G4cout<<"G4QNucleus::SplitBaryon: (alpha),sM="<100.)throw G4QException("****Big Mass"); if(a==2) { if(Z<0||N<0) @@ -831,7 +854,7 @@ G4bool G4QNucleus::EvaporateBaryon(G4QHadron* h1, G4QHadron* h2) { G4cerr<<"***G4QNucl::EvapBary: tM="< 2N="<2, totM="< GSMass="<"<"<"<"<"<nCBPP&&r<=lCBPP) { -#ifdef pdebug +#ifdef ppdebug G4cout<<"G4QNucleus::EvapBar:LAMBDA is selected for evapor,r="<zCBPP&&r<=nCBPP) { -#ifdef pdebug +#ifdef ppdebug G4cout<<"G4QNucleus::EvapBary: N is selected for evapor,r="<SetQPDG(gQPDG); @@ -2557,9 +2580,11 @@ G4int G4QNucleus::RandomizeBinom(G4double p,G4int aN) } // Calculate a#of Z,N,L-clusters in the nucleus and fill candidate's probabilities -void G4QNucleus::PrepareCandidates(G4QCandidateVector& theQCandidates, G4bool piF, G4bool gaF) +void G4QNucleus::PrepareCandidates(G4QCandidateVector& theQCandidates, G4bool piF, G4bool gaF, + G4LorentzVector pLV) // Projectile 4-momentum // ========================================================================================= { + static const G4LorentzVector zeroLV(0.,0.,0.,0.); G4double ze = Z; G4double ne = N; G4double se = S; @@ -2575,22 +2600,24 @@ void G4QNucleus::PrepareCandidates(G4QCandidateVector& theQCandidates, G4bool pi G4int mac=6; // Maximum cluster # for fixed baryon number G4int cca=0; // Counter of clusters for the same baryon number G4int acm=0; // Threshold ac value - G4int mCand=theQCandidates.size(); + G4int mCand=theQCandidates.size(); // Full set of candidates made in UpdateClusters G4double s=0.; // Prototype of summ for constant A (=ac>2) - ///////////G4double sZ=0.; // Percent of protons - ///////////G4double sN=0.; // Percent of neutrons G4double comb=ae0*(ae0-1)/2; // Product up to ac=2 #ifdef pdebug - G4cout<<"G4QNucleus::PrepareCand:#C=="<GetPDGCode(); G4int cBN = curCand->GetBaryonNumber(); + //G4int cS = curCand->GetStrangeness(); //if(piF&&gaF&&cPDG!=90000001&&cPDG!=90001000) // Both flags, which is in case of pi-first-int //if(piF&&gaF&&cBN!=1&&cBN!=3) // Both flags, which is in case of pi-first-int - if(piF&&gaF&&cBN!=1) // Should be both, which is in case of pi-first-int + if(piF&&gaF&&cBN!=1) // Should be both, which is in case of pi-first-interaction + //if(piF&&gaF&&cBN!=1&&cBN!=4) // Should be both, which is in case of pi-first-interaction { curCand->SetPreProbability(0.); curCand->SetDenseProbability(0.); @@ -2601,6 +2628,7 @@ void G4QNucleus::PrepareCandidates(G4QCandidateVector& theQCandidates, G4bool pi } else { + G4double tnM=GetQPDG().GetMass(); if(cPDG>80000000&&cPDG!=90000000) // ===> Cluster case { G4QNucleus cN(cPDG); @@ -2608,30 +2636,32 @@ void G4QNucleus::PrepareCandidates(G4QCandidateVector& theQCandidates, G4bool pi G4int nc = cN.GetN(); // "N" of the cluster G4int sc = cN.GetS(); // "S" of the cluster G4int ac = cN.GetA(); // "A" of the cluster - if(ac<=maxClust) + G4double cM=tnM-G4QNucleus(Z-zc,N-nc,S-sc).GetGSMass(); // Bound mass of the cluster + G4LorentzVector intLV=pLV+G4LorentzVector(0.,0.,0.,cM); // 4-mom of the proj+clust + if(ac<=maxClust&&(pLV==zeroLV||intLV.m()>.00001+cM)) { pos = probVect[ac]; // Get a cluster probability normalization factor G4int dac=ac+ac; if (piF&&!gaF) pos*=(zc+ac)/ac; // For piF 1-st interaction act (#of u-quarks) else if(gaF&&!piF) { - pos*=(zc+dac)/dac; // For gaF 1-st interaction act (sum of Q_q^2) + pos*=(zc+dac)/ac; // For gaF 1-st interaction act (sum of Q_q^2) //pos*=(zc+ac)/ac; // For piF 1-st interaction act (#of u-quarks) //pos*=zc/ac; // For gaF 1-st interaction act (#of protons) #ifdef pdebug - if(cPDG==90001000) G4cout<<"G4QNucleus::PrepareCand: proton gaF enhanced"<1) return mL*S+eps; + else if(!N&&Z>1&&!S) return mP*Z+eps; + else if(N>1&&!Z&&!S) return mN*N+eps; G4int A=Z+N; G4int Bn=A+S; //if((Z<0||N<0)&&!Bn) //{ - // if (N<0) return Bn*mL-Z*mK - N*mK0+0.001* S ; - // else return Bn*mL+N*mPi-A*mK +0.001*(N+S); + // if (N<0) return Bn*mL-Z*mK - N*mK0+eps* S ; + // else return Bn*mL+N*mPi-A*mK +eps*(N+S); //} if(A<0&&Bn>=0) // Bn*LAMBDA's + (-(N+Z))*Kaons { - if (N<0&&Z<0) return Bn*mL-Z*mK -N*mK0+0.001* S ; - else if(N<0) return Bn*mL+Z*mPi-A*mK0+0.001*(Z+S); - else return Bn*mL+N*mPi-A*mK +0.001*(N+S); + if (N<0&&Z<0) return Bn*mL-Z*mK -N*mK0+eps* S ; + else if(N<0) return Bn*mL+Z*mPi-A*mK0+eps*(Z+S); + else return Bn*mL+N*mPi-A*mK +eps*(N+S); } if(!Bn) // => "GS Mesons - octet" case (without eta&pi0) { @@ -666,89 +677,232 @@ G4double G4QPDGCode::GetNuclMass(G4int Z, G4int N, G4int S) else if(S==1&&Z==-1||S==-1&&Z==1) return mK; else return 0.; // Exotic mesons (4q) } - if(Bn==1) // => "GS Baryons - decuplet" case (withoutSigma0) + else if(Bn==1) // => "GS Baryons - octet" case (withoutSigma0) { if (Z== 1 && N== 0 && S== 0) return mP; else if(Z== 0 && N== 1 && S== 0) return mN; else if(Z== 0 && N== 0 && S== 1) return mL; - // @@ For future improvement of Octet baryon production (@@change decays!) - //else if(Z== 1 && N==-1 && S== 1) return mSp; // Lower than LAMBDA + pi+ - //else if(Z==-1 && N== 1 && S== 1) return mSm; // Lower than LAMBDA + pi- - //else if(Z== 0 && N==-1 && S== 2) return mKz; // Lower than LAMBDA + K0 - //else if(Z==-1 && N== 0 && S== 2) return mKm; // Lower than LAMBDA + K- + else if(Z== 1 && N==-1 && S== 1) return mSp; // Lower than LAMBDA + pi+ + else if(Z==-1 && N== 1 && S== 1) return mSm; // Lower than LAMBDA + pi- + else if(Z== 0 && N==-1 && S== 2) return mKz; // Lower than LAMBDA + K0 + else if(Z==-1 && N== 0 && S== 2) return mKm; // Lower than LAMBDA + K- + } + else if(Bn==2) // => "GS Baryons - decuplet" case (NP,LP, and LN are made below) + { + if (Z== 2 && N== 0 && S== 0) return dmP; + else if(Z== 0 && N== 2 && S== 0) return dmN; + else if(Z== 0 && N== 0 && S== 2) return dmL; + else if(Z== 2 && N==-1 && S== 1) return dSP; + else if(Z==-1 && N== 2 && S== 1) return dSN; + else if(Z== 1 && N==-1 && S== 2) return dKP; + else if(Z==-1 && N== 1 && S== 2) return dKN; } // === Start mesonic extraction === - G4double k=0.; // Mass Sum of K+ mesons - if(S<0) // @@ Can be improved by K0/K+ search of minimum + G4double km=0.; // Mass Sum of K mesons (Correspond to G4E::DecayAntiStrang.) + G4int Zm=Z; + G4int Nm=N; + G4int Sm=S; + if(S<0&&Bn>0) // NEW: the free mass minimum { - if(Bn<0) return 0.; // @@ Make it for antinuclei @@ (Bn<0) - if(Z>0) + if(Zm>=-S) // Enough charge for K+'s { - if(Z>=-S) // => "Enough protons in nucleus" case + km=-S*mK; // Anti-Lambdas are compensated by protons + Zm+=S; + } + else if(Zm>0) + { + km=Zm*mK-(S+Zm)*mK0; // Anti-Lambdas are partially compensated by neutrons + Zm=0; + Nm+=S+Zm; + } + } + else Sm=0; // No alternative calculations + // Old algorithm + G4double k=0.; // Mass Sum of K mesons + if(S<0&&Bn>0) // OLD @@ Can be improved by K0/K+ search of minimum + { + G4int sH=(-S)/2; // SmallHalfS || The algorithm must be the same + G4int bH=-S-sH; // BigHalhS || as in G4QE::DecayAntiStrange + if(Z>0 && Z>N) + { + if(Z>=bH) // => "Enough protons in nucleus" case { - k=-S*mK; - Z+=S; + if(N>=sH) + { + k=bH*mK+sH*mK0; + Z-=bH; + N-=sH; + } + else + { + G4int dN=Z-N; + if(dN>=-S) + { + k=-S*mK; + Z+=S; + } + else + { + G4int sS=(-S-dN)/2; + G4int bS=-S-dN-sS; + sS+=dN; + if(Z>=sS&&N>=bS) + { + k=sS*mK+bS*mK0; + Z-=sS; + N-=bS; + } + else if(Z=sH) + { + k=sH*mK+bH*mK0; + Z-=sH; + N-=bH; + } else - { - k+=N*mK0-(S+N)*mK; - Z+=S+N; - if(Z<0) return 0.; // @@ Antiparticles aren't implemented @@ - N=0; - } + { + G4int dN=N-Z; + if(dN>=-S) + { + k=-S*mK0; + N+=S; + } + else + { + G4int sS=(-S-dN)/2; + G4int bS=-S-dN-sS; + bS+=dN; + if(N>=bS&&Z>=sS) + { + k=sS*mK+bS*mK0; + Z-=sS; + N-=bS; + } + else if(NmaxM) m=maxM; + G4double mm=m; + if(Sm<0) // For the new algorithm of calculation + { + if(Nm<0) + { + km+=-Nm*mPi; + Zm+=Nm; + Nm=0; + } + if(Zm<0) + { + km+=-Zm*mPi; + Nm+=Zm; + Zm=0; + } + G4int Am=Zm+Nm; + if(!Am) return km+eps; + mm=km+Am*um; // Expected mass in atomic units + G4double Dm=Nm-Zm; // Isotopic shift of the nucleus + if(Am<1&&km==0.||Zm<0||Nm<0) // @@ Can be generalized to anti-nuclei + { +#ifdef debug + G4cerr<<"***G4QPDGCode::GetNucM:A="<mM) mm=mM; + } + if(m>mm) m=mm; if(S>0) { G4double bs=0.; 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 589c04a50d..e0ecac7da9 100755 --- 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 @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QParentCluster.cc,v 1.15 2003/06/16 17:04:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QParentCluster.cc,v 1.20 2003/12/09 15:38:26 gunter Exp $ +// GEANT4 tag $Name: geant4-06-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 ecd29e977b..ad7d0db78a 100755 --- 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 @@ -21,13 +21,15 @@ // ******************************************************************** // // -// $Id: G4QParticle.cc,v 1.20 2003/06/25 10:19:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QParticle.cc,v 1.26 2003/12/09 15:38:27 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4QParticle ---------------- // by Mikhail Kossov, Sept 1999. // class for Particles in the CHIPS Model // ------------------------------------------------------------------- +// 1 2 3 4 5 6 7 8 9 +//34567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 //#define debug //#define pdebug @@ -73,7 +75,11 @@ G4QParticle::G4QParticle(G4QParticle* right) G4QParticle::~G4QParticle() { - std::for_each(aDecay.begin(), aDecay.end(), DeleteQDecayChan()); + G4int nDC=aDecay.size(); + //G4cout<<"G4QParticle::Destructor: Before nDC="<=limit && nQ= 0)DecayDB[ 0] = NULL; // gamma + //*** Secondary PDG-particles should be ordered in a Channel by increasing width***!*** + //** Channels should be ordered by increasing minimum mass of the secondary particles** + //if(limit<= 0 && nQ>= 0)DecayDB[ 0] = 0; // gamma if(limit<= 1 && nQ>= 1) // Low sigma=pi,pi S-wave : f_0 (800) { DecayDB[ 1].push_back(new G4QDecayChan(.333,211,-211)); @@ -151,8 +157,9 @@ G4QDecayChanVector G4QParticle::InitDecayVector(G4int nQ) DecayDB[ 3].push_back(new G4QDecayChan(.800,211,-211)); DecayDB[ 3].push_back(new G4QDecayChan(1.00,111, 111)); } - //if(limit<= 4 && nQ>= 4)DecayDB[ 4].push_back(new G4QDecayChan(1.00, 22, 22));//Pi 0 - //if(limit<= 5 && nQ>= 5)DecayDB[ 5] = NULL; // Pi + + if(limit<= 4 && nQ>= 4)DecayDB[ 4].push_back(new G4QDecayChan(1.00,22,22));//Pi0 + //if(limit<= 4 && nQ>= 4)DecayDB[ 4].push_back(new G4QDecayChan(1.00,22,22));//Pi0 + //if(limit<= 5 && nQ>= 5)DecayDB[ 5] = 0; // Pi + if(limit<= 6 && nQ>= 6) // eta { DecayDB[ 6].push_back(new G4QDecayChan(.231,211,-211,111)); @@ -165,7 +172,7 @@ G4QDecayChanVector G4QParticle::InitDecayVector(G4int nQ) // DecayDB[ 7].push_back(new G4QDecayChan(.6861,211,-211)); // DecayDB[ 7].push_back(new G4QDecayChan(1.00, 111, 111)); //} - //if(limit<= 8 && nQ>= 8)DecayDB[ 8] = NULL; // K + + //if(limit<= 8 && nQ>= 8)DecayDB[ 8] = 0; // K + if(limit<= 9 && nQ>= 9) // eta' { DecayDB[ 9].push_back(new G4QDecayChan(.438,211,-211,221)); @@ -175,24 +182,24 @@ G4QDecayChanVector G4QParticle::InitDecayVector(G4int nQ) DecayDB[ 9].push_back(new G4QDecayChan(.979, 22, 113)); DecayDB[ 9].push_back(new G4QDecayChan(1.00, 22, 22)); } - //if(limit<= 10 && nQ>= 10)DecayDB[ 10] = NULL; // n - //if(limit<= 11 && nQ>= 11)DecayDB[ 11] = NULL; // p + //if(limit<= 10 && nQ>= 10)DecayDB[ 10] = 0; // n + //if(limit<= 11 && nQ>= 11)DecayDB[ 11] = 0; // p //if(limit<= 12 && nQ>= 12) // Lambda ===>>> all week decays are closed at this time //{ // DecayDB[ 12].push_back(new G4QDecayChan(.640,2212,-211)); // DecayDB[ 12].push_back(new G4QDecayChan(1.00,2112, 111)); //} - //if(limit<= 13 && nQ>= 13)DecayDB[ 13].push_back(new G4QDecayChan(1.00,2112,-211)); // Sigma - - if(limit<= 14 && nQ>= 14)DecayDB[ 14].push_back(new G4QDecayChan(1.00,3122, 22));//Sigma 0(EM) + //if(limit<= 13 &&nQ>=13)DecayDB[13].push_back(new G4QDecayChan(1.,2112,-211));//Sigma- + if(limit<= 14 &&nQ>=14)DecayDB[14].push_back(new G4QDecayChan(1.,3122,22));//Sigma0(EM) //if(limit<= 15 && nQ>= 15) // Sigma + //{ // DecayDB[ 15].push_back(new G4QDecayChan(.484,2112, 211)); // DecayDB[ 15].push_back(new G4QDecayChan(1.00,2212, 111)); //} - //if(limit<= 16 && nQ>= 16)DecayDB[ 16].push_back(new G4QDecayChan(1.00,3122,-211)); // Ksi - - //if(limit<= 17 && nQ>= 17)DecayDB[ 17].push_back(new G4QDecayChan(1.00,3122, 111)); // Ksi 0 - if(limit<= 18 && nQ>= 18)DecayDB[ 18].push_back(new G4QDecayChan(1.00, 211,-211)); // rho 0 - if(limit<= 19 && nQ>= 19)DecayDB[ 19].push_back(new G4QDecayChan(1.00, 211, 111)); // rho + + //if(limit<= 16 && nQ>=16)DecayDB[16].push_back(new G4QDecayChan(1.,3122,-211));// Ksi- + //if(limit<= 17 && nQ>=17)DecayDB[17].push_back(new G4QDecayChan(1.,3122, 111));// Ksi0 + if(limit<= 18 && nQ>= 18)DecayDB[ 18].push_back(new G4QDecayChan(1., 211,-211));// rho0 + if(limit<= 19 && nQ>= 19)DecayDB[ 19].push_back(new G4QDecayChan(1., 211, 111));// rho+ if(limit<= 20 && nQ>= 20) // omega { DecayDB[ 20].push_back(new G4QDecayChan(.892, 211,-211,111)); @@ -218,7 +225,7 @@ G4QDecayChanVector G4QParticle::InitDecayVector(G4int nQ) DecayDB[ 23].push_back(new G4QDecayChan(.950,-211, 213)); DecayDB[ 23].push_back(new G4QDecayChan(1.00, 111, 113)); } - if(limit<= 24 && nQ>= 24)DecayDB[ 24].push_back(new G4QDecayChan(1.00,2112,-211)); // Delta - + if(limit<= 24 && nQ>= 24)DecayDB[24].push_back(new G4QDecayChan(1.,2112,-211));//Delta- if(limit<= 25 && nQ>= 25) // Delta 0 { DecayDB[ 25].push_back(new G4QDecayChan(.333,2212,-211)); @@ -229,7 +236,7 @@ G4QDecayChanVector G4QParticle::InitDecayVector(G4int nQ) DecayDB[ 26].push_back(new G4QDecayChan(.333,2112, 211)); DecayDB[ 26].push_back(new G4QDecayChan(1.00,2212, 111)); } - if(limit<= 27 && nQ>= 27)DecayDB[ 27].push_back(new G4QDecayChan(1.00,2212, 211)); // Delta ++ + if(limit<= 27 && nQ>= 27)DecayDB[27].push_back(new G4QDecayChan(1.,2212,211));//Delta++ if(limit<= 28 && nQ>= 28) // Lambda* (1520) { DecayDB[ 28].push_back(new G4QDecayChan(.230,3112,-311)); @@ -649,23 +656,23 @@ G4QDecayChanVector G4QParticle::InitDecayVector(G4int nQ) DecayDB[ 70].push_back(new G4QDecayChan(.900, 311, 211)); DecayDB[ 70].push_back(new G4QDecayChan(1.00, 321, 111)); } - if(limit<= 71 && nQ>= 71)DecayDB[ 71].push_back(new G4QDecayChan(1.00, 333, 333));//phi_4(2300) - if(limit<= 72 && nQ>= 72)DecayDB[ 72].push_back(new G4QDecayChan(1.00, 2212, 2224)); //pDelta++ - if(limit<= 73 && nQ>= 73)DecayDB[ 73].push_back(new G4QDecayChan(1.00, 2112, 1114)); //nDelta- - if(limit<= 74 && nQ>= 74)DecayDB[ 74].push_back(new G4QDecayChan(1.00, 2224, 2224)); //D++D++ - if(limit<= 75 && nQ>= 75)DecayDB[ 75].push_back(new G4QDecayChan(1.00, 1114, 1114)); //Del-Del- - if(limit<= 76 && nQ>= 76)DecayDB[ 76].push_back(new G4QDecayChan(1.,2212,2212,2224));//ppDelta++ - if(limit<= 77 && nQ>= 77)DecayDB[ 77].push_back(new G4QDecayChan(1.,2112,2112,1114));//nnDelta- - if(limit<= 78 && nQ>= 78)DecayDB[ 78].push_back(new G4QDecayChan(1.,2212,2224,2224));//pD++D++ - if(limit<= 79 && nQ>= 79)DecayDB[ 79].push_back(new G4QDecayChan(1.,2112,1114,1114));//nDel-Del- - if(limit<= 83 && nQ>= 83)DecayDB[ 83].push_back(new G4QDecayChan(1.00, 2112, 2112)); //nn - if(limit<= 84 && nQ>= 84)DecayDB[ 84].push_back(new G4QDecayChan(1.00, 2212, 2112)); //pn - if(limit<= 85 && nQ>= 85)DecayDB[ 85].push_back(new G4QDecayChan(1.00, 2212, 2212)); //pp + if(limit<=71&&nQ>=71)DecayDB[71].push_back(new G4QDecayChan(1., 333,333));//phi_4(2300) + if(limit<=72&&nQ>=72)DecayDB[72].push_back(new G4QDecayChan(1.,2212, 2224));//pDelta++ + if(limit<=73&&nQ>=73)DecayDB[73].push_back(new G4QDecayChan(1.,2112, 1114));//nDelta- + if(limit<=74&&nQ>=74)DecayDB[74].push_back(new G4QDecayChan(1.,2224, 2224));//D++D++ + if(limit<=75&&nQ>=75)DecayDB[75].push_back(new G4QDecayChan(1.,1114, 1114));//Del-Del- + if(limit<=76&&nQ>=76)DecayDB[76].push_back(new G4QDecayChan(1.,2212,2212,2224));//ppD++ + if(limit<=77&&nQ>=77)DecayDB[77].push_back(new G4QDecayChan(1.,2112,2112,1114));//nnD- + if(limit<=78&&nQ>=78)DecayDB[78].push_back(new G4QDecayChan(1.,2212,2224,2224));//p2D++ + if(limit<=79&&nQ>=79)DecayDB[79].push_back(new G4QDecayChan(1.,2112,1114,1114));//nD-D- + if(limit<=83&&nQ>=83)DecayDB[83].push_back(new G4QDecayChan(1.,2112, 2112));//nn + if(limit<=84&&nQ>=84)DecayDB[84].push_back(new G4QDecayChan(1.,2212, 2112));//pn + if(limit<=85&&nQ>=85)DecayDB[85].push_back(new G4QDecayChan(1.,2212, 2212));//pp // ------- Nuclear fragments //if(limit<= 80 && nQ>=80) //{ // if(limit<80) limit=80; - // for (int i=limit; i=0; ind--) // A Loop to fill - { - ////////G4int c=theHadrons[ind]->GetPDGCode(); // PDGCode - } - - delete yes; - return false; -} - -G4QSelector::~G4QSelector() {} 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 8ef5459ca6..dde57b0002 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 @@ -20,9 +20,12 @@ // * statement, and all its terms. * // ******************************************************************** // +// 1 2 3 4 5 6 7 8 9 +//34567890123456789012345678901234567890123456789012345678901234567890123456789012345678901 // -// $Id: G4Quasmon.cc,v 1.48 2003/06/25 10:19:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// +// $Id: G4Quasmon.cc,v 1.68 2003/12/09 15:38:28 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------- G4Quasmon ---------------- // by Mikhail Kossov, July 1999. @@ -35,17 +38,17 @@ //#define ppdebug //#define tdebug //#define sdebug - #include "G4Quasmon.hh" G4Quasmon::G4Quasmon(G4QContent qQCont, G4LorentzVector q4M, G4LorentzVector ph4M): - q4Mom(q4M), valQ(qQCont), phot4M(ph4M) + q4Mom(q4M), valQ(qQCont), phot4M(ph4M), f2all(0), rEP(0.), rMo(0.) { #ifdef debug - G4cout<<"G4Quasmon: **DIRECT CREATION** QC="< m_n + m_p + static const G4int MINPDG = 80000000; + static const G4double np = 1877.9; //@@ temporary = a mass of np pair > m_n + m_p static const G4double BIG = 1000000.; static const G4double BIG2 = BIG*BIG; static const G4QContent neutQC(2,1,0,0,0,0); @@ -314,20 +319,22 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) ////////////static const G4double mK02 = mK0 * mK0; ////////////static const G4double mEta2= mEta*mEta; ////////////static const G4double mEP2 = mEtaP*mEtaP; + ////////////static const G4double petM2 = .5*(mPi02 + mEta2); static const G4double mP2 = mProt*mProt; - ////////////static const G4double CBKinMin = 0.1; // .1 MeV of KinEnergy is needed to try to pen. + ////////////static const G4double CBKinMin = 0.1;// Ekin=.1 MeV is needed to penetrate CB ////////////static const G4double alpha = 1./137.0359895; // Fine-structure constant ////////////static const G4double third =1./3.; ////////////static const G4double conCon=197.327; // Conversion constant (hc) - ////////////static const G4double rCB = 1.09; // R=r_CB*(a^1/3+A^1/3) - CoulBarrierRadius(fm) + ////////////static const G4double rCB = 1.09;// R=r_CB*(a^1/3+A^1/3)(CoulBarRadius(fm)) + static const G4double eps = 0.003; // 3keV cut to split instead of decay #ifdef debug - G4cout<<"G4Quasmon(G4Q)::HadronizeQuasmon(HQ): *==>>> START QUASMON HADRONIZATION <<<==*"<>>START QUASMON HADRONIZATION<<<==*"< E="<E="< s) cQ.DecQAQ((tQ-s)/2); // Reduce QC to minimum QC + G4int tQ = valQ.GetTot(); // Total number of quarks for current Quasmon + G4int bQ = abs(valQ.GetBaryonNumber()); // Baryon number of the current Quasmon + G4QContent cQ = valQ; // Temporary copy of Quasmon QC + G4int s = 4; // Mesonic + if (bQ) s = 3*bQ + 2; // Barionic + if (tQ> s) cQ.DecQAQ((tQ-s)/2); // Reduce QC to minimum QC #ifdef debug - G4int rsPDG = cQ.GetSPDGCode(); // PDG for the lowest residual Quasmon state - G4cout<<"G4Q::HQ:eN="<iniQM) maxK=mNeut/2.+(quasM-iniQM)*iniQM/(iniQM+mNeut); - else if(quasM>iniQM) - { - G4double limK=envM/2.+(quasM-iniQM)*iniQM/(iniQM+envM); - if(limK0&&iniBN>1) // "Neutron-hadron" estimate + // @@ ??? May be for the light nuclei ??? + //if(piF&&quasM>iniQM) maxK=mNeut/2.+(quasM-iniQM)*iniQM/(iniQM+mNeut); + //else if(quasM>iniQM) + //{ + // G4double limK=envM/2.+(quasM-iniQM)*iniQM/(iniQM+envM); + // if(limK0&&iniBN>1) // "Neutron-hadron" estimate //{ // G4double iK=1000000.; // G4double dqm=quasM+quasM; // if(envA>0) // { - // G4QContent rtQC=valQ-neutQC+envQC; // Total Residual Quark Content - // G4QNucleus rtN(rtQC); // Create a pseudo-nucleus for the TotalResidual - // G4double rtM =rtN.GetMZNS(); // Min Mass of total residual Nucleus - // G4double bnRQ=rtM-envM; // Bound mass of residual Quasmon + // G4QContent rtQC=valQ-neutQC+envQC; // Total Residual Quark Content + // G4QNucleus rtN(rtQC); // Create pseudo-nucleus for the TotalResidual + // G4double rtM =rtN.GetMZNS(); // Min Mass of total residual Nucleus + // G4double bnRQ=rtM-envM; // Bound mass of residual Quasmon // G4double sm2=qM2+m2N-bnRQ*bnRQ; // G4double fqm=dqm+dqm; // G4double aK=sm2/fqm; #ifdef debug - // G4double kts=.135; // Test value of k + // G4double kts=.135; // Test value of k // G4double dkts=kts+kts; // G4double fu=dkts*(dkts*quasM-sm2)+quasM*m2N; - // G4cout<<"G4Q::HQ:MQ="<=mNeut+bnRQ) // { @@ -593,9 +605,10 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) // else iK=mNeut*mNeut/(quasM+quasM); // if(iK0&&totBN>1) // "Neutron-cluster" estimate + if(totN>0&&totBN>1) // "Neutron-cluster" estimate { G4QNucleus tmpNN(totZ,totN-1,0); G4double delN=tmpNN.GetMZNS()+mNeut-totM; @@ -608,7 +621,7 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) delN*=qurF; if(delN0&&totBN>1) // "Proton-cluster" estimate + if(totZ>0&&totBN>1) // "Proton-cluster" estimate { G4double proCB=theEnvironment.CoulombBarrier(1,1); G4QNucleus tmpPN(totZ-1,totN,0); @@ -622,7 +635,7 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) delP*=qurF; if(delP0&&totZ>0&&totBN>2) // "Deuteron-cluster" estimate + if(totN>0&&totZ>0&&totBN>2) // "Deuteron-cluster" estimate { G4double proCB=theEnvironment.CoulombBarrier(1,2); G4QNucleus tmpDN(totZ-1,totN-1,0); @@ -636,7 +649,7 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) delD*=qurF; if(delD1&&totZ>0&&totBN>3) // "Triton-cluster" estimate + if(totN>1&&totZ>0&&totBN>3) // "Triton-cluster" estimate { G4double proCB=theEnvironment.CoulombBarrier(1,3); G4QNucleus tmpTN(totZ-1,totN-2,0); @@ -650,7 +663,7 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) delT*=qurF; if(delT0&&totZ>1&&totBN>3) // "He3-cluster" estimate + if(totN>0&&totZ>1&&totBN>3) // "He3-cluster" estimate { G4double proCB=theEnvironment.CoulombBarrier(2,3); G4QNucleus tmpRN(totZ-2,totN-1,0); @@ -664,7 +677,7 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) delR*=qurF; if(delR1&&totZ>1&&totBN>4) // "Alpha-cluster" estimate + if(totN>1&&totZ>1&&totBN>4) // "Alpha-cluster" estimate { G4double proCB=theEnvironment.CoulombBarrier(2,4); G4QNucleus tmpAN(totZ-2,totN-2,0); @@ -678,7 +691,7 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) delA*=qurF; if(delA*qurF2&&totZ>2&&totBN>6) // "Li6-cluster" estimate ?????? + //if(totN>2&&totZ>2&&totBN>6) // "Li6-cluster" estimate ?????? //{ // G4double proCB=theEnvironment.CoulombBarrier(3,6); // G4QNucleus tmpLN(totZ-3,totN-3,0); @@ -694,50 +707,88 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) //} if(minK<0.||minK+minK>quasM) minK=0.; } - //if(addPhoton>0.) nOfQ=valQ.GetQ()-valQ.GetAQ(); //if(addPhoton>0.&&quasM<1500.&&G4UniformRand()0.&&iniBN<2)// PhotonAbsorbDiagramContrib(@@HiddenPar) - if(addPhoton>0.&&(iniBN<2||G4UniformRand()<0.5))// PhotonAbsorbDiagramContrib(@@HiddenPar) - //if(addPhoton>0.&&(G4UniformRand()<.5||iniBN<2))// PhotonAbsorbDiagramContrib(@@HiddenPar) + //if(addPhoton>0.&&(G4UniformRand()<.7||iniBN<2))//PhotoAbsorbDiagramContrib + //if(addPhoton>0.&&(G4UniformRand()<.5||iniBN<2))//PhotonAbsorbDiagramContrib + //if(addPhoton>0.&&(G4UniformRand()<.27||iniBN<2))// PhotonAbsorbDiagramContrib + //if(addPhoton>0.&&iniBN<2)// PhotonAbsorbDiagramContrib(@@HiddenPar) + //if(addPhoton>0.&&iniBN>1)// PhotonAbsorbDiagramContrib(@@HiddenPar) //if(addPhoton>0.&&G4UniformRand()<0.5)// PhotonAbsorbDiagramContrib(@@HiddenPar) //if(addPhoton>0.&&G4UniformRand()<0.75)// PhotonAbsorbDiagramContrib(@@HiddenPar) - //if(addPhoton>0.)// PhotonAbsorbDiagramContrib(@@ A photon is always captured by quark) - //if(2>3) // Photon capture by quark is closed + if(addPhoton>0.&&G4UniformRand()<0.8)// PhotonAbsorbDiagramContrib(@@HiddenPar) + //if(addPhoton>0.&&iniBN>1)//PhotonAbsorbDiagramContrib(Photon's captured by N quark) + //if(addPhoton>0.)// PhotonAbsorbDiagramContrib(Photon is always captured by quarks) + //if(2>3) // Photon capture by quark is closed { - // ===OR=== 1/(p_g,p_q) interaction + //nOfQ=valQ.GetQ()-valQ.GetAQ(); // Recover nOfQ for the not excited cluster + // @@ 1/(p_g,p_q) interaction probability (? (p_g,p_q)=0 always) gintFlag=true; - q4Mom-= phot4M; // recover Quasmon-Cluster without the Photon - qM2 = q4Mom.m2(); // Update the Current squared mass of Quasmon - quasM = sqrt(qM2); // Update the Current Mass of Quasmon + q4Mom-= phot4M; // recover Quasmon-Cluster without the Photon + qM2 = q4Mom.m2(); // Update the Current squared mass of Quasmon + quasM = sqrt(qM2); // Update the Current Mass of Quasmon G4double kpow=static_cast(nOfQ-2); if(kpow<1.) kpow=1.; - G4bool frat=true; // k/(k+p) factor of QuarkExchange - while (frat) - { - G4double rn=pow((1.-(minK+minK)/quasM),kpow)*G4UniformRand(); - kMom=(1.-pow(rn,1./kpow))*quasM/2.; - frat=G4UniformRand()>addPhoton/(addPhoton+kMom); - } - cost=addPhoton/momPhoton; // =1 for the real photon - // Takes into account that the mass of the quark-parton is small but not zero - //G4double hms=12.5; // m_q^2/2 (12.5 means m_q=5 MeV) - //G4double hms=2.; // m_q^2/2 (2. means m_q=2 MeV) - G4double hms=50.; // m_q^2/2 (50. means m_q=10 MeV) - G4double x=kMom*kMom/hms; - G4double dc=(pow(x,G4UniformRand())-1.)/x; // smearing of the "delta-function" for m=0 - cost-=dc; // @@ smear in both sides for virtual photons + cost=addPhoton/momPhoton; // =1 for the real photon + // While must be commented from here and down __________________________ + //G4bool frat=true;//[k/(k+p) factor of QuarkExch]*[p/k factor of fixed ct]=p/(p+k) + //G4int cMax=27;//For m_gam=0:*[k/(k+p) factor 1/s{m<kMom/(addPhoton+kMom); + // //frat=G4UniformRand()>kMom*kMom/(addPhoton+kMom)/(addPhoton+kMom); + // //frat=G4UniformRand()>addPhoton/(addPhoton+kMom); + // //frat=G4UniformRand()>addPhoton*addPhoton/(addPhoton+kMom)/(addPhoton+kMom); + // pCount++; + //} + if(cost>1.) cost=1.; + if(cost<-1.) cost=-1.; #ifdef debug - G4cout<<"G4Q::HQ:**PHOTON is SUB'ED from Q** k="<ColResidQ+k + if(!G4QHadron(q4Mom).RelDecayIn2(k4Mom,cr4Mom,q4Mom,cost,cost)) //Q->ColResQ+k_parton { #ifdef debug - G4cerr<<"*G4Q::HQ:(PhBack)QM="< The decay succeeded { - if(addPhoton&&gintFlag) + if(addPhoton&&gintFlag) // Make it as if the phaton was a part of the Q { - q4Mom+= phot4M; // Recover the Full Quasmon with the Photon - k4Mom+= phot4M; // add photon energy to a quark of the Cluster - qM2 = q4Mom.m2(); // Update the Current squared mass of Quasmon - quasM = sqrt(qM2); // Update the Current Mass of Quasmon + q4Mom+= phot4M; // Recover the Full Quasmon with the Photon + k4Mom+= phot4M; // add photon energy to a quark of the Cluster + qM2 = q4Mom.m2(); // Update the Current squared mass of Quasmon + quasM = sqrt(qM2); // Update the Current Mass of Quasmon + kMom=k4Mom.e(); // Update the k_parton momentum + gintFlag=false; } #ifdef debug - G4cout<<"G4Q::HQ:(PhBack)k="<>>K-ITERATION #"<kMin=" + <kMin) + { + kCond=false; + break; + } } } } @@ -848,50 +908,54 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) // End of search for "k": *** Here we forget about the initial photon forever ***???*** #ifdef debug if(addPhoton) - G4cout<<"G4Q::HQ:***PHOTON IS ADOPTED*** k="<k="<GetIntegProbability(); + G4bool fprob = true; // Flag of existing decay probability + ////G4bool fdul = true; // Prototype of flag of resonance decay + G4bool fdul = false; // Prototype of flag of resonance decay + int i=0; // "i" will point to the selected candidate + G4double maxP = 0.; + if(nCandid) maxP = theQCandidates[nCandid-1]->GetIntegProbability(); #ifdef debug - G4cout<<"G4Q::HQ: ***RANDOMIZE A CANDIDATE*** #OfCandidates="<qCB&&envM+iniQM3) // Decay in GSQuasmon+GSEnviron **Is closed** + //////G4double pCB=theEnvironment.CoulBarPenProb(qCB,excE,iniP,iniBN);//@@ excE (?) + ///G4bool qenv=envPDG!=90000000&&envPDG!=90000002&&envPDG!=90002000&&iniPDG!=90002000 + /// &&iniPDG!=90000002;// @@ Improved for nn & pp FinalStateInter + //if(excE>qCB&&envM+iniQMGSQ+GSE + if(2>3) // Decay in GSQuasmon+GSEnviron **Is closed** { G4QHadron* resNuc = new G4QHadron(valQ,q4Mom);// Createa Hadron for Quasmon - resNuc->CorMDecayIn2(iniQM,env4M); // Recalculate the fr4Mom for ResidualGSMass + resNuc->CorMDecayIn2(iniQM,env4M); // Recalculate the fr4Mom for ResidualGSMass //@@CHECK CoulBar and may be evaporate instead - FillHadronVector(resNuc); // Fill the OutgoingQuasmon (delete equivalent) + FillHadronVector(resNuc); // Fill the OutgoingQuasmon (delete equivalent) #ifdef debug G4LorentzVector oQ4Mom=resNuc->Get4Momentum(); G4cout<<"G4Q::HQ: outQM="<g/pi0+GSQ="<g/pi0(M="< HadrVec, Q="<g/pi0("<HadrVec, Q="<g/pi0("<minK="<8.)G4Exception("G4Quas::HQ: Why a candidate is not found?"); - //if(totMass>envM+iniQM&&excE>minK&&excE>1.&&minK)G4Exception("G4Q::HQ:Why it'sn't found?"); - //G4Exception("G4Quasmon::HadronizeQuasmon: Why a candidate is not found?"); + G4cout<<"***G4Q::HQ:dE="<minK="<= Tot#"<1&&totMass>totM&&totS>=0) { #ifdef ppdebug - G4cout<<"G4Quasm::HadrQuasm:NEEDS-EVAP-1:Q="< Chipolino case + else if(sPDG==10) // ---> "Chipolino" case { fchipo=true; G4QChipolino chipQ(valQ); @@ -1004,52 +1076,52 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) G4QPDGCode QPDG2=chipQ.GetQPDG2(); rPDG = QPDG2.GetPDGCode(); rMass= QPDG2.GetMass(); - if(sMass+rMass>quasM) //@@ Evaporate but try 3Ptcl decay with Environ + if(sMass+rMass>quasM) //@@ Evaporate but try 3Pt decay with Environ { if(totBN>1&&totMass>totM&&totS>=0) { #ifdef ppdebug - G4cout<<"G4Quasm::HadrQ:NEEDS-EVAP-2:Q4M="< miM="<@@ Final decay in MinHadr+(PI0 or GAMMA) + else // --->@@ Final decay in MinHadr+(PI0 or GAM) { sMass=G4QPDGCode(sPDG).GetMass(); rPDG=envPDG; - if (rPDG>80000000&&rPDG!=NUCPDG) + if (rPDG>MINPDG&&rPDG!=NUCPDG) { rMass=theEnvironment.GetMZNS(); q4Mom+=G4LorentzVector(0.,0.,0.,rMass); valQ +=theEnvironment.GetQC(); quasM=q4Mom.m(); KillEnvironment(); - fred=true; // Flag of environment reduction + fred=true; // Flag of environment reduction } - else if(rPDG!=NUCPDG&&totBN>1&&totMass>totM&&totS>=0) // Evaporation + else if(rPDG!=NUCPDG&&totBN>1&&totMass>totM&&totS>=0) // ===> "Evaporation" case { #ifdef ppdebug G4QContent nTotQC=totQC-neutQC; - G4QNucleus nTotN(nTotQC); // PseudoNucleus for TotalResidual to neutron - G4double nTotM =nTotN.GetMZNS(); // MinimumMass of the Total Residual to neutron - G4double dMnT=totMass-nTotM-mNeut; // Energy excess for the neutron + G4QNucleus nTotN(nTotQC); // PseudoNucleus for TotalResidual to neutron + G4double nTotM =nTotN.GetMZNS(); // MinMass of the Total Residual to neutron + G4double dMnT=totMass-nTotM-mNeut;// Energy excess for the neutron G4QContent pTotQC=totQC-protQC; - G4QNucleus pTotN(pTotQC); // PseudoNucleus for TotalResidual to proton - G4double pTotM =pTotN.GetMZNS(); // Minimum Mass of the Total Residual to proton - G4double dMpT=totMass-pTotM-mProt; // Energy excess for neutron + G4QNucleus pTotN(pTotQC); // PseudoNucleus for TotalResidual to proton + G4double pTotM =pTotN.GetMZNS(); // MinMass of the Total Residual to proton + G4double dMpT=totMass-pTotM-mProt;// Energy excess for neutron if(dMpT>dMnT)dMnT=dMpT; - G4cout<<"G4Q::HQ:NEEDS-EVAP-3: sP="< "Something was selected" case + else // ---> "Something was selected" case { - G4QCandidate* curCand = theQCandidates[i]; // Pointer to selected candidate (hadr./fragm.) - sPDG = curCand->GetPDGCode(); // PDG of the selected candidate + G4QCandidate* curCand = theQCandidates[i];// Pointer to selected candidate:hadr/fragm + sPDG = curCand->GetPDGCode(); // PDG of the selected candidate //////////////////G4double prpr=curCand->GetPreProbability(); - //@@ For clusters should be another randomization & a loop over possible parent clusters - if(sPDG>80000000&&sPDG!=NUCPDG) // ===> "Fragment" case + //@@ For clusters use another randomization & a loop over possible parent clusters + if(sPDG>MINPDG&&sPDG!=NUCPDG) // ===> "Fragment" case { int ip=0; G4int nParCandid = curCand->GetPClustEntries(); G4double sppm = curCand->TakeParClust(nParCandid-1)->GetProbability(); - if (sppm<=0) // Impossible to find a parent cluster + if (sppm<=0) // Impossible to find a parent cluster { - G4cerr<<"***G4Quasmon::HadronizeQuasmon: cP="<GetIntegProbability() + G4cerr<<"***G4Quasmon::HadronizeQ: P="<GetIntegProbability() <<",nC="<TakeParClust(ip)->GetProbability(); G4cerr< "Parent cluster was found" case + else // ---> "Parent cluster was found" case { G4double totPP = sppm * G4UniformRand(); while(curCand->TakeParClust(ip)->GetProbability() < totPP) ip++; @@ -1109,82 +1181,82 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) G4QPDGCode pQPDG(pPDG); pQC = pQPDG.GetQuarkContent(); pBaryn= pQC.GetBaryonNumber(); - pMass = parCluster->GetEBMass(); //Environment Bounded Mass - pNMass = parCluster->GetNBMass(); // NucleusBoundedMass @@ Env.Reduce dosn't work + pMass = parCluster->GetEBMass(); // Environment Bounded Mass + pNMass = parCluster->GetNBMass(); // NuclBoundedMass @@Env.Reduce dosn't work pM2 = pMass*pMass; transQC = parCluster->GetTransQC(); - delta = parCluster->GetEBind(); // Environmental Binding - deltaN = parCluster->GetNBind(); // Nuclear Binding + delta = parCluster->GetEBind(); // Environmental Binding + deltaN = parCluster->GetNBind(); // Nuclear Binding loli = parCluster->GetLow(); hili = parCluster->GetHigh(); - //G4double dhil=.0001*(hili-loli); // Safety factor + //G4double dhil=.0001*(hili-loli); // Safety factor //loli += dhil; //hili -= dhil; npqp2 = parCluster->GetNQPart2(); - // @@ Here one can get other useful parameters of the parent cluster for hadronization + // @@ One can get otherUsefulParameters of the parent cluster for hadronization G4QPDGCode sQPDG(curCand->GetPDGCode()); sQC = sQPDG.GetQuarkContent(); - if(sPDG==90001001 && G4UniformRand()>0.75) sMass=np; //@@ n-p pair - //if(sPDG==90001001 && G4UniformRand()>1.0) sMass=np; //@@ no n-p pair + //if(sPDG==90001001 && G4UniformRand()>0.75) sMass=np; //@@ n-p pair + if(sPDG==90001001 && G4UniformRand()>1.0) sMass=np; //@@ no n-p pair (close) else sMass = sQPDG.GetMass(); - sM2 = sMass*sMass; // Squared mass of the fragment - curQ += transQC; // Subtract ExchangeMesonQC from QC of Quasmon + sM2 = sMass*sMass; // Squared mass of the fragment + curQ += transQC; // Subtract ExchangeMesonQC from QuasmonQC #ifdef debug G4cout<<"G4Q::HQ:valQ="< "Hadron" case + else // ===> "Hadron" case { pBaryn=1; - sMass = theQCandidates[i]->GetNBMass(); // Mass is randomized on probability level - sM2=sMass*sMass; ; // Sq. Mass is randomized on probability level - curQ-= theQCandidates[i]->GetQC(); // Subtract outHadron QC from QC of Quasmon + sMass = theQCandidates[i]->GetNBMass();// Mass is randomized on probability level + sM2=sMass*sMass; // SqMass is randomized on probability level + curQ-= theQCandidates[i]->GetQC(); // Subtract outHadron QC from QC of Quasmon #ifdef debug - G4cout<<"G4Q::HQ:valQ="< Calculate the Squared Ground State Mass of the ResidualQuasmon+ResidualEnvironment + //---> Calculate the SquaredGroundStateMass of theResidualQuasmon+ResidualEnvironment if(envPDG>pPDG) { // *** LIM *** G4QContent RNQC=curQ+envQC; - if(sPDG>80000000&&sPDG!=NUCPDG) // ==> "Nuclear Fragment Radiation" case - { - if(envA-pBaryn<=bEn) RNQC-=pQC; - else RNQC-=envQC-bEnQC; - } + //if(envA-pBaryn>bEn&&piF) RNQC=curQ+bEnQC; + if(sPDG>MINPDG&&sPDG!=NUCPDG) RNQC-=pQC; // ==> "Nuclear Fragment Radiation" case G4int RNPDG = RNQC.GetSPDGCode(); - if(RNPDG==10) minSqN=G4QChipolino(RNQC).GetMass2();// MinSqMass of DoubleHadron of Chipolino + if(RNPDG==10) minSqN=G4QChipolino(RNQC).GetMass2();//MinSqMass of DiHadron of Chipo else if(!RNPDG) { #ifdef debug - G4cout<<"***G4Q::HQ: *** ResidualNucleus *** PDG="<.5) rqPDG=221; + //if(rqPDG==221&&sPDG!=221&&sPDG!=331&&rr<.5) rqPDG=111; G4int rQQ=G4QPDGCode(curQ).GetQCode(); if(rqPDG==10) { - minSqT=G4QChipolino(curQ).GetMass2(); // MinSqMass of DoubleHadron of Chipolino + minSqT=G4QChipolino(curQ).GetMass2();// MinSqMass of DoubleHadron of Chipolino minSqB=minSqT; } else if(!rqPDG||rQQ<-1) { #ifdef debug - G4cerr<<"***G4Q::HQ: *** ResidualQuasmon *** PDG="<80000000&&sPDG!=NUCPDG) // ==> Nuclear fragment candidate hadronization + G4double m2 = BIG2; //@@ justBigNumber// Prototype/Squared Mass of Residual Quasmon + G4double kt=0.; // Prototype of SquaredRealResidualQuasmon M + G4double kp=0.; // 3-Mpm/Mass for the residual Quasmon + G4double kn=0.; // Prototype of SquaredRealResQuasm+ResEnv M + if(sPDG>MINPDG&&sPDG!=NUCPDG) // ==> NuclearFragmentCandidate hadronization { #ifdef debug G4cout<<"G4Q::HQ: BoundM="< colouredCluster (cc) - G4LorentzVector cl4Mom(0.,0.,0.,pMass); // 4-momentum prototype for parent cluster - G4LorentzVector tot4Mom=q4Mom+cl4Mom; // @@ Just for checking + G4LorentzVector cl4Mom(0.,0.,0.,pMass);// 4-momentum prototype for parent cluster + G4LorentzVector tot4Mom=q4Mom+cl4Mom; // @@ Just for checking #ifdef debug G4cout<<"G4Q::HQ:Q("<k("< frM2="< frM2="< sM="< rTM="<1.CorHadrProb"<ca="< 1.)ctkk= 1.; if(ctkk<-1.)ctkk=-1.; } - G4double cen=kLS+pMass; // LS Energy of k+parentCluster CompSystem - G4double ctc=(cen*ctkk-kLS)/(cen-kLS*ctkk);//cos(theta_k,kap) in k+pClast CompSystem + G4double cen=kLS+pMass; // LS Energy of k+parentCluster CompSystem + G4double ctc=(cen*ctkk-kLS)/(cen-kLS*ctkk);//cos(theta_k,kap) in k+pClastSystem if(abs(ctc)>1.) { - // G4cout<<"***G4Quasm:HadronizeQuasmon: e="<ColDec>>>CF("<F("<ColDec>>>CF("<F("< get residual Quasmon mass - rQ4Mom=cr4Mom+kp4Mom; // 4-momentum of residual Quasmon - /////G4double rQM2=rQ4Mom.m2(); // @@ Temporary before the "kt" is defined + // Fusion of the ColouredResidQuasm + kappa (LS) -> get residual Quasmon mass + rQ4Mom=cr4Mom+kp4Mom; // 4-momentum of residual Quasmon + /////G4double rQM2=rQ4Mom.m2(); // @@ TMP before the "kt" is defined G4LorentzVector retN4Mom=rQ4Mom+ResEnv4Mom; - reTNM2=retN4Mom.m2(); // Real mass of TotalResidNucleus for Fragment + reTNM2=retN4Mom.m2(); // RealMass of TotResidNuc for Fragment //@@ === One can add here anothe cuts for q randomization === - //if(rQM2>=minSqT) // tmpTM2 = SqrdGSMass of TotResidualNucleus + //if(rQM2>=minSqT) // tmpTM2=SqGSMass of TotResidNucleus // ***VTN*** - if(reTNM2>=tmpTM2) // tmpTM2 = SqrdGSMass of TotResidualNucleus + if(reTNM2>=tmpTM2) // tmpTM2=SqGSMass of TotResidualNucleus // ***VRQ*** //if(rQM2>=minSqB) // tmpTM2 = SqrdGSMass of TotResidualNucleus { qCond=false; ffdc=false; #ifdef debug - //G4cout<<"G4Q::HQ:Attempt#"<"<"<"<"<"<"<MEMrQM2) // ***VTN*** @@ -1451,7 +1571,7 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) } qCount++; } - quexf=true; // Quark Exchange is successfully done + quexf=true; // Quark Exchange is successfully done #ifdef debug G4cout<<"G4Q::HQ:RQ("<bEn&&piF) totC4Mom+=G4LorentzVector(0.,0.,0.,mbEn-pMass); kn=totC4Mom.m2(); m2=kt; tot4Mom-=rQ4Mom+fr4Mom; #ifdef debug - G4cout<<"G4Q::HQ: t4M="<"<"<" + <"<"< "HadronicCandidate hadronization" case + else // ==> "HadronicCandidate hadronization" case { kt = (quasM-dk)*(quasM-sM2/dk); - //@@@@@@@@ rQ4Mom (4-momentum of residual Quasmon) could be defined here?! How? - if(envPDG>80000000&&envPDG!=NUCPDG) - { - // *** LIM *** - G4LorentzVector TCRN=q4Mom-k4Mom; - if(envA<=bEn) TCRN+=env4M; - else TCRN+=bEn4M; - kn=TCRN.m2(); - } - else kn=kt; + //@@@@@@@@ rQ4Mom (4-momentum of residual Quasmon) must be defined?! How? + //if(envPDG>MINPDG&&envPDG!=NUCPDG) + //{ + // // *** LIM *** + // G4LorentzVector TCRN=q4Mom-k4Mom; + // TCRN+=env4M; + // //if(envA-pBaryn>bEn&&piF) TCRN+=bEn4M; + // kn=TCRN.m2(); // tot4M -k4M + //} + //else kn=kt; } // *** LIM *** - G4LorentzVector tL=rQ4Mom; // @@ Is rQ4Mom calculated for hadrons?? - if(envA-pBaryn<=bEn) tL+=G4LorentzVector(0.,0.,0.,reM); - else tL+=bEn4M; - G4double tM=tL.m(); // Real Residual Total Nucleus Mass (hadr/frag) - // Residual S+S limit (absolute low limit for corresponding P-resonance) for R->S+S Decay + G4LorentzVector tL=rQ4Mom; // @@ Is rQ4Mom calculated for hadrons?? + tL+=G4LorentzVector(0.,0.,0.,reM); + G4double tM=tL.m(); // Real Residual Total Nucleus Mass (hadr/frag) + // Residual S+S limit (absoluteLowLimit for corresponding P-res.) for R->S+S Decay #ifdef debug - G4cout<<"G4Q::HQ:k="<T2="<rtM="<"<"<rtM="< T="< T="<"<>>>> rMass="<>>>>rM="<.5) rPDG=221; + //if(rPDG==221&&sPDG!=221&&sPDG!=331&&rrn<.5) rPDG=111; G4int aPDG = abs(rPDG); - G4int rb = abs(curQ.GetBaryonNumber()); // BaryNum of residual hadronic state - G4double rcMass=-BIG; //@@ just a BIG number // Prototype of minimal mass for residual + G4int rb = abs(curQ.GetBaryonNumber()); // BaryNum of residual hadronic state + G4double rcMass=-BIG; //@@ just BIG number // Prototype of minimal mass for residual if (!rPDG) { G4cerr<<"***G4Quasmon::HadronizeQuasmon: rQ ="<H("<H("<rM="<rM="< HadronVec, Q="< s4M="<.5) rPDG=221; + if(rPDG==221&&sPDG!=221&&sPDG!=331&&rrr<.5) rPDG=111; + } + //G4double reMass=sqrt(minSqT); // Min ResidQuasmon Mass after decay + G4double reMass=sqrt(minSqB); // Min ResidQuasmon Mass after decay if (!rPDG) { - G4cerr<<"***G4Q::HQ: rQ="<80000000&&(sPDG<80000000||envPDG!=pPDG))aMass=0.; - if((sPDG<80000000&&envPDG>80000000&&envPDG!=NUCPDG||sPDG>80000000&&sPDG!=NUCPDG - &&envPDG>pPDG) && iniBN>0||iniBN>1||rPDG==10) aMass=0.; // No Pi0 condition (eg in NucE) -#ifdef debug + if(rPDG==221||rPDG==331) reMass=mPi0; + G4double aMass=0.; // @@ get rid of the "aMass" it was necessary only for pap + //G4double aMass=mPi0; + //if(envPDG>MINPDG&&(sPDGMINPDG&&envPDG!=NUCPDG||sPDG>MINPDG&&sPDG!=NUCPDG + &&envPDG>pPDG) && iniBN>0||iniBN>1||rPDG==10) aMass=0.; // No Pi0 cond.(eg in NucE) +#ifdef pdebug G4cout<<"G4Q::HQ:rPDG="<pPDG="<reMass+aMass||envPDG>NUCPDG&&envPDG>pPDG&&reTNM2>tmpTM2)||fdul) - // >>>>>>>>>>> Decay Q->S+H or Q/C->H1+H2 or suck in or evaporate or slow down or decay etc. + // *** This is a condition, when fragmentation can not be continued *** + if(hsflag||sPDGMINPDG&&envPDG>pPDG&&reTNM2>>>>> Decay Q->S+H or Q/C->H1+H2 or suck in or evaporate or slow down or decay etc. { - // === At this point decide what to do, if fragmentation in this Candidate is impossible === + // ========> Decide what to do, if fragmentation in this Candidate is impossible === #ifdef debug - G4cout<<"G4Q::HQ: Yes, hsf="<MINPDG&&sPDG!=NUCPDG) // "Quark exchange hadronization" case { - G4QContent tmpEQ=envQC-pQC; // Quark content for Residual Environment - G4QNucleus tmpN(tmpEQ); // Pseudo nucleus for Residual Environment - G4double tmpNM=tmpN.GetMZNS(); // GS Mass of Residual Environment - G4QContent tmpRQ=valQ+transQC; // QContent of Residual Quasmon - G4QNucleus tmpR(tmpRQ); // Nucleus for Residual Quasmon - G4double tmpRM=tmpR.GetMZNS(); // GS Mass of Residual Quasmon - G4LorentzVector ResEnv4Mom(0.,0.,0.,tmpNM); // 4-Mom for the Residual Environment + G4QContent tmpEQ=envQC-pQC; // Quark content for Residual Environment + G4QNucleus tmpN(tmpEQ); // Pseudo nucleus for Residual Environment + G4double tmpNM=tmpN.GetMZNS(); // GS Mass of Residual Environment + G4QContent tmpRQ=valQ+transQC; // QContent of Residual Quasmon + G4QNucleus tmpR(tmpRQ); // Nucleus for Residual Quasmon + G4double tmpRM=tmpR.GetMZNS(); // GS Mass of Residual Quasmon + G4LorentzVector ResEnv4Mom(0.,0.,0.,tmpNM);// 4-Mom for the Residual Environment if(rQ4Mom==zeroLV) { #ifdef ppdebug - G4cout<<"G4Q::HQ: ***NEEDS-EVAP-5*** Q="<retNM) tmpT=G4QNucleus(tmpTQ,retN4Mom); - /////////G4double fM2=fr4Mom.m2(); // Squared mass of the outgoing fragment G4QPDGCode sQPDG(sPDG); - // tmpNM - mass of residual environment (M), retNM - mass of TotalNucl [MN=sqrt((E+M)^2-p^2] - // tmpRM - mass GS mass of ResidQuasmon (m_GS), rQ4Mom - 4-momentum of ResidQuasmon (E,p,m) - ////G4double m2=rQ4Mom.m2(); // Real Squared Mass of the ResidualQuasmon - // potE=[sqrt(E^2*M^2-m^2*M^2+m_GS^2*MN*2)-m^2-E*M]/MN=-U (binding energy should be cut off) - //G4double pEc=2*(tmpRM+tmpNM-retNM); // DoubledBindingEnergy (virial theorem) - /////////G4double pEc=tmpRM+tmpNM-retNM; // BindingEnergy (relativistic effect) -#ifdef debug + // tmpNM - residualenvironmentm (M),retNM - mass of TotalNucl [MN=sqrt((E+M)^2-p^2] + // tmpRM - ResidQuasmongsm (m_GS), rQ4Mom - 4-momentum of ResidQuasmon (E,p,m) + ////G4double m2=rQ4Mom.m2(); // Real Squared Mass of the ResidualQuasmon + // potE=[sqrt(E^2*M^2-m^2*M^2+m_GS^2*MN*2)-m^2-E*M]/MN=-U (bindEn should be cutOff) + //G4double pEc=2*(tmpRM+tmpNM-retNM); // DoubledBindingEnergy (virial theorem) + /////////G4double pEc=tmpRM+tmpNM-retNM; // BindingEnergy (relativistic effect) +#ifdef ppdebug G4int sB=sQPDG.GetBaryNum(); G4double sCB=theEnvironment.CoulombBarrier(sQPDG.GetCharge(),sB); - G4bool bSplit=tmpT.SplitBaryon(); // Possibility to split a baryon from the TotResN +#endif +#ifdef debug + ///////////G4double fM2=fr4Mom.m2(); // Squared mass of the outgoing fragment + G4int bSplit=tmpT.SplitBaryon(); // Possibility to split a baryon from the TotResN G4int rB=rQPDG.GetBaryNum(); G4double rCB=theEnvironment.CoulombBarrier(rQPDG.GetCharge(),rB); - G4double EQ=rQ4Mom.e(); // EnergyOfResidualQuasmon (E) - G4double em=tmpNM*EQ; // ResEnvM * EnergyOfResidualQuasmon (M*E) - G4double mM=retNM*tmpRM; // TotResNuclM*GSMassResidualQuasmon (m_GS*MN) + G4double EQ=rQ4Mom.e(); // EnergyOfResidualQuasmon (E) + G4double em=tmpNM*EQ; // ResEnvM * EnergyOfResidualQuasmon (M*E) + G4double mM=retNM*tmpRM; // TotResNuclM*GSMassResidualQuasmon (m_GS*MN) G4double pEn=(sqrt(em*em-m2*tmpNM*tmpNM+mM*mM)-m2-em)/retNM; //Real BindingEnergy G4double pEt=tmpNM*(EQ+tmpNM-retNM)/retNM; // Energy Transfer to nucleus G4double PQ=rQ4Mom.rho(); // 3MomentumOfResidualQuasmon (p) G4double pPt=tmpNM*PQ/retNM; // 3Momentum Transfer to nucleus - G4cout<<"G4Q::HQ:rNM="< mMRE="< mMRE="<tmpNM+tmpRM||bSplit)&&ppC) //=> "Go out & drop ExcitedNucleus" - // The condition below is just that the Residual Nucleus is heavier than the GS of the ResN - if(2>3) // *** Attempt GoOutDropExcNucl is closed *** + if(2>3) // *** Attempt GoOutDropExcNucl is closed *** { G4LorentzVector retQ4Mom=retN4Mom-G4LorentzVector(0.,0.,0.,tmpNM); #ifdef debug G4double retQ3M=retQ4Mom.rho(); - G4cout<<"G4Q::HQ:*CheckFermiMotion* rQ3M="<***>>>YES<<<***< rQM="< "Normal decay" !!!!! { - G4QHadron* candHadr = new G4QHadron(sPDG,fr4Mom);// Createa a Hadron for the Candidate - FillHadronVector(candHadr); // Fill the RadiatedHadron (delete equivalent) + G4QHadron* candHadr = new G4QHadron(sPDG,fr4Mom);// Createa Hadr for Candidate + FillHadronVector(candHadr); // Fill the RadiatedHadron (del.eq.) theEnvironment.Reduce(pPDG); // Update NuclearEnviron after Q->RQ+F q4Mom = retQ4Mom; // Update Quasmon's 4-mom valQ += transQC; // Update the Quark Content of Quasmon #ifdef debug - G4cout<<"G4Q::HQ:***LetAnyway>>s="<>s="<3) // *************** Decay in Fragm + GSResidNucleus is Closed **************** + //else if(nQuasms==1&&tmpTM+sMass0.) //Lose p,go out,leave GSResNuc + //else if(nQuasms==1&&tmpTM+sMass+sCB0.) //Lose p,goOut,leaveGSResNuc + //else if(nQuasms==1&&tmpTM+sMass0.&&epC)//"Lose p. GSTotNM & go out" + else if(2>3) // ********** Decay in Fragm + GSResidNucleus is Closed ************** { G4LorentzVector dif1=tot4M-retN4Mom-fr4Mom; - qEnv = G4QNucleus(tmpTQ,retN4Mom); // Createa Nucleus for the TotalResidualNucleus + qEnv = G4QNucleus(tmpTQ,retN4Mom); // Createa Nucleus for TotalResidNucl #ifdef debug - G4cout<<"***G4Q::HQ: ***KeepEnvironmentMoving***, nQ="< GSM="<tM="<.027*fraM) G4Exception("G4Quasmon::HadronizeQuasmon: Why Fail? (6)"); //@@ TMP - //if(excE>60.) G4Exception("G4Quasmon::HadronizeQuasmon: Why Fail? (6)"); //@@ TMP - //if(totMassTotM");//@@TMP - G4Exception("G4Quasmon::HadronizeQuasmon: Why Fail? (6) Products are more than total"); + G4cerr<<"G4Q::HQ:EV-6:TotEVAPORATION:s="<tM="<totalMass"); #endif #ifdef debug - G4cout<<"G4Quasm::HQ:Q="<1) { - G4cerr<<"***G4Q::HQ:totZ="<gam/pi/K+N="<gam/pi/K("<GPK="<GPK="< M="< M="<dm&&!rWi) // Try to use a width of the h-resonance or reduce its spin state + if(rPDG!=10&&rMass>dm&&!rWi) // Try to use the h-resonance width or reduce its spin { G4double sWi=G4QPDGCode(sPDG).GetWidth(); G4double sMM=G4QPDGCode(sPDG).GetMass(); if(sWi) // Hadron is a resonance { - G4double ddm=quasM-rMass; - if(fabs(sMM-ddm)<1.5*sWi-.001) + G4double mmm=theWorld->GetQParticle(G4QPDGCode(sPDG))->MinMassOfFragm(); + G4double ddm=quasM-rMass; // Minimum mass of the sHadron + if(fabs(sMM-ddm)<1.5*sWi-.001 && ddm>mmm) { #ifdef debug G4double msm=sMass; @@ -2062,12 +2222,14 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) if(fabs(sMass)<.001) { #ifdef debug - G4cerr<<"***G4Q::HQ: CHANGE to M=0, sPDG="<QM="< tM="<QM="<tM="<quasM) { @@ -2199,7 +2379,7 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) rBaryn=rQPDG.GetBaryNum(); rCB=theEnvironment.CoulombBarrier(rChg,rBaryn); #ifdef debug - G4cout<<"G4Q::HQ:NCB="<80000000) + G4LorentzVector s4Mom(0.,0.,0.,sMass);// Mass is random since probab. time + if(sPDG>MINPDG) // @@ For the Quark-Exchange hadronization (?) { - G4cout<<"G4Q::HQ:Q->RQ+QEXF s="<RQ+QEX s="< rPDG="<rPDG="<rPDG="<rPDG="<mK0+nreM) + { + sMass=mK0; + sPDG=311; + s4Mom=G4LorentzVector(0.,0.,0.,sMass); // Switch to K+ mass + reMass=nreM; + rPDG=nNuc.GetPDG(); + r4Mom=G4LorentzVector(0.,0.,0.,reMass);// Switch to other isotope mass + sum=reMass+sMass; + if(fabs(tmM-sum)rPDG="<rPDG="<mPi0+reMass) + { + sMass=mPi0; + sPDG=111; + s4Mom=G4LorentzVector(0.,0.,0.,sMass); // Switch to pi0 mass + sum=reMass+sMass; + if(fabs(tmM-sum)rPDG="<reMass) + { + sMass=0.; + sPDG=22; + s4Mom=G4LorentzVector(0.,0.,0.,sMass); // Switch to gamma + if(fabs(tmM-reMass)rPDG="<rPDG="<HdronVect s4M="<QHVect s4M="< "KinEn is below CB, try once more" case + //if(sKE "KinEn is below CB, try once more" case + if(sKE "KinEn is below CB, try once more" case { #ifdef ppdebug - //G4cout<<"****G4Q::HQ:E-9: sKE="<80000000) q4Mom-=G4LorentzVector(0.,0.,0.,pMass); + if(sPDG>MINPDG) q4Mom-=G4LorentzVector(0.,0.,0.,pMass); qEnv=theEnvironment; return theQHadrons; } - else if(abs(reMass-freeRQM) "ResidQ is a GSHadron/Fragment" case + else if(abs(reMass-freeRQM)"ResidQ is a GSHadron/Frag" case { G4QHadron* curHadr1 = new G4QHadron(rPDG,r4Mom);// Create RealHadron for the ResidQ - FillHadronVector(curHadr1); // Fill "new curHadr1" (delete equivalent) + FillHadronVector(curHadr1); // Fill "new curHadr1" (del. eq.) G4QHadron* curHadr2 = new G4QHadron(sPDG,s4Mom);// Creation Hadron for theCandidate - FillHadronVector(curHadr2); // Fill "new curHadr2" (delete equivalent) + FillHadronVector(curHadr2); // Fill "new curHadr2" (del. eq.) #ifdef debug - G4cout<<"G4Q::HQ:Decay of Quasmon "<1&&totMass>totM&&totS>=0) //@@ ?? #ifdef ppdebug - G4cout<<"G4Q::HQ:*NEEDS-EVAP-10* RTNM="<80000000) q4Mom-=G4LorentzVector(0.,0.,0.,pMass); + if(sPDG>MINPDG) q4Mom-=G4LorentzVector(0.,0.,0.,pMass); qEnv=theEnvironment; return theQHadrons; } - else // Only the ResidualTotalNucleus can evaporate + else // Only theTotResidNucl can evaporate { - G4QHadron* curHadr2 = new G4QHadron(sPDG,s4Mom);// Creation Hadron for the Out Hadron - FillHadronVector(curHadr2); // Fill "new curHadr2" (delete equivalent) + G4QHadron* curHadr2 = new G4QHadron(sPDG,s4Mom);// Create Hadron for theOutHadron + FillHadronVector(curHadr2); // Fill "new curHadr2" (del.equiv.) q4Mom = r4Mom; - if(sMass>80000000) + if(sPDG>MINPDG) { - theEnvironment.Reduce(pPDG); // Update NuclearEnviron after Q->RQ+QEXF + theEnvironment.Reduce(pPDG); // Update NuclEnviron after Q->RQ+QEXF valQ += transQC; // Update the Quark Content of Quasmon } else valQ = curQ; // Update the Quark Content of Quasmon #ifdef debug - G4cout<<"***>G4Q::HQ:S="<G4Q::HQ:S="<>"<>>> "Hadron candidate in Vacuum" case - if(sPDG<80000000) // Hadronic decay is always as in vacuum @@?? + ///if(sPDG>>> "Hadron candidate in Vacuum" case + if(sPDG totMass && rK0M+mK0 > totMass || rKPPDG==NUCPDG || rK0PDG==NUCPDG) { #ifdef ppdebug - G4cout<<"G4Q::HQ: ***PANIC#2*** tM="< rPDG="< rPDG="<HadronVector s="<HadrVec s="<iniBN-iniS) // Try to decay in Pi+ + else if(iniQChg>iniBN-iniS) // Try to decay in Pi+ { sPDG = 211; sMass= mPi; - G4QNucleus totN(valQ-PiQC); // Nucleus Residual after Pi+ sub. - rPDG = totN.GetPDG(); - rMass= totN.GetMZNS(); + G4QNucleus totQN(valQ-PiQC); // Nucleus Residual after Pi+ sub. + rPDG = totQN.GetPDG(); + rMass= totQN.GetMZNS(); } else if(iniQChg<0) // Try to decay in Pi- { sPDG = -211; sMass= mPi; - G4QNucleus totN(valQ+PiQC); // Nucleus Residual after Pi- sub. - rPDG = totN.GetPDG(); - rMass= totN.GetMZNS(); + G4QNucleus totQN(valQ+PiQC); // Nucleus Residual after Pi- sub. + rPDG = totQN.GetPDG(); + rMass= totQN.GetMZNS(); + } + else if(quasM>iniQM+mPi0) // Try to decay in Pi0 + { + sPDG = 111; + sMass= mPi0; + rPDG = iniPDG; + rMass= iniQM; } else { @@ -2433,42 +2752,50 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) ffin = true; } #ifdef debug - G4cout<<"G4Q::HQ:MQ="<sPDG="<sPDG="< rPDG="<s="<s="<>>G4Quasmon::HadrQ:EmergencyHadron="< "Hadron in NuclMedia or NuclCand" case + else // ===>"HadronInNuclMedia or NuclCand" { // Now the CoulBar reflection should be taken into account G4QContent outQC = G4QPDGCode(sPDG).GetQuarkContent(); G4int outBar = outQC.GetBaryonNumber(); G4int outChg = outQC.GetCharge(); G4double outCB = theEnvironment.CoulombBarrier(outChg,outBar); - // Now the Coulomb Potential should be taken into account //@@ How to take into account ?? - if(nucflag) rQ4Mom+=pMass-pNMass; // Make a correction to 4Mom of ResidQuasmon - G4QHadron tmpRQH(valQ+transQC,rQ4Mom); // Temporary QHadron for the Residual Quasmon - // Now the CoulBar reflection should be taken into account + // Now theCoulombPotential should be taken into account //@@ How to do this ?? + if(nucflag) rQ4Mom+=dMass; // Make a correction of ResidQuasmon4M + G4QHadron tmpRQH(valQ+transQC,rQ4Mom); // Tmp Hadron for the Residual Quasmon + // Now theCoulBar reflection should be taken into account G4double outT = fr4Mom.e()-fr4Mom.m(); G4double outProb = theEnvironment.CoulBarPenProb(outCB,outT,outChg,outBar); if(G4UniformRand()RQ+F - G4LorentzVector sumL=theEnvironment.Get4Momentum()+q4Mom; //@@ For Check Print Only + G4LorentzVector sumL=theEnvironment.Get4Momentum()+q4Mom; //@@ Check Print Only check += fr4Mom; //@@ Just for checking ccheck+=G4QPDGCode(sPDG).GetCharge(); //@@ Just for checking q4Mom = rQ4Mom; // Update the 4Mom of the Quasmon valQ += transQC; // Update the Quark Content of Quasmon - G4QHadron* candHadr = new G4QHadron(sPDG,fr4Mom);// Createa a Hadron for the Candidate - FillHadronVector(candHadr); // Fill the RadiatedHadron(delete equivalent) + G4QHadron* candHadr = new G4QHadron(sPDG,fr4Mom);// Createa Hadron for Candidate + FillHadronVector(candHadr); // Fill the RadiatedHadron(del.equiv.) #ifdef debug - G4cout<<"G4Q::HQ:QuarkExchangeHadronizationThroughCB Q="<>>>>>>>> NuclearMatter SUBCHECK >>>>>>>>>>>>>"<>>>>>>>> NuclearMatter SUBCHECK >>>>>>"<envA*envA/400) // ?? M.K. ?? + //{ status=3; if(gaF) { phot4M=zeroLV; gaF=false; } - } + //} } } } // End of skip @@ -2562,8 +2890,8 @@ G4QHadronVector G4Quasmon::HadronizeQuasmon(G4QNucleus& qEnv, G4int nQuasms) G4int eZ = theEnvironment.GetZ(); G4int sumC = eZ+valQ.GetCharge()+ccheck; G4int curPDG=valQ.GetSPDGCode(); - G4cout<<"G4Q::HQ:eZ="<>***>>FinalCHEK>>***>> 4M="<FinalCHECK***>>4M="< ResidualQ 4M="<GetPDGCode(); // Get PDG code of the Hadron to switch G4LorentzVector t = qH->Get4Momentum(); // 4-Mom of Chipolino #ifdef psdebug - if(thePDG==113) G4cerr<<"G4Q::FillHadronVector: PDG="<Get4Momentum(); G4LorentzVector s4Mom = sHadr->Get4Momentum(); if(!qH->DecayIn2(f4Mom,s4Mom)) { - delete fHadr; // Delete "new fHadr" - delete sHadr; // Delete "new sHadr" - G4cerr<<"***G4Q::FillHadronVector:ChipQC"<0) // => "Anti-strangeness or ISOBAR" case { - G4double m1=mPi; + G4double m1=mPi; // Prototypes for the nZ<0 case G4int PDG1=-211; G4QNucleus newNpm(totQC+PiQC); + G4int newS=newNpm.GetStrangeness(); + if(newS>0) newNpm=G4QNucleus(totQC+PiQC+newS*K0QC); G4int PDG2=newNpm.GetPDG(); G4double m2=newNpm.GetMZNS(); if(nN<0) @@ -2717,7 +3072,7 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) m2 =newNp.GetMZNS(); G4QNucleus newN0(totQC-K0QC); G4double m3=newN0.GetMZNS(); - if (m3+mK0 "aK0+ResA is better" case + if (m3+mK0 "aK0+ResA is better" case { m1 =mK0; PDG1=311; @@ -2725,7 +3080,7 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) PDG2=newN0.GetPDG(); } } - if(fragMas>m1+m2) // => "can decay" case + if(fragMas>m1+m2) // => "can decay" case { G4LorentzVector fq4M(0.,0.,0.,m1); G4LorentzVector qe4M(0.,0.,0.,m2); @@ -2733,47 +3088,43 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) { G4cerr<<"***G4Quasm::FillHadrV: QM="< Mes="<SetNFragments(2); // Put a#of Fragments=2 - //theQHadrons.push_back(qH); - // Instead delete qH; - // G4QHadron* H1 = new G4QHadron(PDG1,fq4M); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(PDG2,qe4M); - FillHadronVector(H2); // (delete equivalent) + FillHadronVector(H2); // (delete equivalent) } - else if(fabs(m1+m2-fragMas)<0.01) // Split the 4-momentum + else if(fabs(m1+m2-fragMas)<0.01) // Split the 4-momentum { G4double r1=m1/fragMas; G4double r2=1.-r1; - //qH->SetNFragments(2); // Put a#of Fragments=2 + //qH->SetNFragments(2); // Put a#of Fragments=2 //theQHadrons.push_back(qH); // Instead delete qH; // G4QHadron* H1 = new G4QHadron(PDG1,r1*t); - theQHadrons.push_back(H1); // (delete equivalent) + theQHadrons.push_back(H1); // (delete equivalent) G4QHadron* H2 = new G4QHadron(PDG2,r2*t); FillHadronVector(H2); // (delete equivalent) } else { - G4cerr<<"***G4Q::FillHVec: PDG="<0&&bA>1) // It's nucleus and there is a neutron + G4double nResM =1000000.; // Prototype of residualMass for the neutron + G4int nResPDG=0; // Prototype of PDGCode for the neutron + if(nN>0&&bA>1) // It's nucleus and there is the neutron { G4QContent resQC=totQC-neutQC; G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus @@ -2783,9 +3134,9 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) else if(nResPDG==91000000) nResM=mLamb; else nResM=resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double pResM =1000000.; // Prototype of mass of residual for a proton - G4int pResPDG=0; // Prototype of PDGCode of residual for a proton - if(nZ>0&&bA>1) // It's nucleus and there is a proton + G4double pResM =1000000.; // Prototype of residualMass for the proton + G4int pResPDG=0; // Prototype of PDGCode of the proton + if(nZ>0&&bA>1) // It's nucleus and there is theroton { G4QContent resQC=totQC-protQC; G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus @@ -2795,9 +3146,9 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) else if(pResPDG==91000000) pResM=mLamb; else pResM =resN.GetMZNS(); // min mass of the Residual Nucleus } - G4double lResM =1000000.; // Prototype of mass of residual for a Lambda - G4int lResPDG=0; // Prototype of PDGCode of residual for a Lambda - if(nS>0&&bA>1) // It's nucleus and there is a Lambda + G4double lResM =1000000.; // Prototype of residualMass for the Lambda + G4int lResPDG=0; // Prototype of PDGCode of the Lambda + if(nS>0&&bA>1) // It's nucleus and there is the Lambda { G4QContent resQC=totQC-lambQC; G4QNucleus resN(resQC); // Pseudo nucleus for the Residual Nucleus @@ -2807,10 +3158,10 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) else if(lResPDG==91000000) lResM=mLamb; else lResM =resN.GetMZNS(); // min mass of the Residual Nucleus } -#ifdef tdebug - G4cout<<"G4Quasm::FillHadrVect: rP="<DecayIn2(a4Mom,b4Mom)) { - theQHadrons.push_back(qH); // No decay (delete equivalent) - G4cerr<<"***G4Q::FillHadronVector: Be8 decay did not succeed"<SetNFragments(2); // Fill a#of fragments to decaying Hadron - //theQHadrons.push_back(qH); // Fill hadron with nf=2 (delete equivalent) + //qH->SetNFragments(2); // Fill a#of fragments to decaying Hadron + //theQHadrons.push_back(qH); // Fill hadron with nf=2 (del. eq.) // Instead delete qH; // @@ -2874,7 +3225,7 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) } else { -#ifdef tdebug +#ifdef pdebug G4cout<<"G4Quasm::FillHadrVect: Leave as it is"< GSM="<GSM="<GSMass) { @@ -2898,20 +3249,20 @@ void G4Quasmon::FillHadronVector(G4QHadron* qH) G4LorentzVector b4Mom(0.,0.,0.,GSMass); if(!qH->DecayIn2(a4Mom,b4Mom)) { - theQHadrons.push_back(qH); // No decay (delete equivalent) - G4cerr<<"***G4Q::FillHadronVector: N*->gamma/pi0+N decay did not succeed"<gamma/pi0+N decay error"<Set4Momentum(b4Mom); // Put the new 4-mom in the residual GS fragment - theQHadrons.push_back(qH); // Fill corrected baryon in the HadronVector + FillHadronVector(HadrB); // Fill gamma/Pi0 Hadron (delete equivalent) + qH->Set4Momentum(b4Mom); // Put the new 4-mom in the residual GS fragment + theQHadrons.push_back(qH); // Fill corrected baryon in the HadronVector } } - else // ===> Evaporation of excited system + else // ===> Evaporation of excited system { -#ifdef tdebug +#ifdef pdebug G4cout<<"G4Quasm::FillHadrVect:Evaporate "< GS="<kLim || qMass<=0. || nOfQ<2) { - G4cerr<<"***G4Q::GetQPMom: kMax="<>>First x="<>>First x="<tM="<tM=" + <SetPossibility(false); } - G4QNucleus cNuc(cPDG); // Fake nucleus for the Candidate - G4int cP = cNuc.GetZ(); // A#of protons in the Current Environment - G4int cN = cNuc.GetN(); // A#of neutrons in the Current Environment - G4int cL = cNuc.GetS(); // A#of lambdas in the Current Environment - G4QPDGCode cQPDG(cPDG); // QPDG of the Current Cluster + G4QNucleus cNuc(cPDG); // Fake nucleus for the Candidate + G4int cP = cNuc.GetZ(); // A#of protons in the Current Environment + G4int cN = cNuc.GetN(); // A#of neutrons in the Current Environment + G4int cL = cNuc.GetS(); // A#of lambdas in the Current Environment + G4QPDGCode cQPDG(cPDG); // QPDG of the Current Cluster #ifdef debug - if(cPDG==90001000) G4cout<<"G4Q::MIM:>>>cPDG=90001000<<<, possibility="<>>cPDG=90001000<<<,possibility="<=cP&&eN>=cN&&eL>=cL&&poss) // Cluster exists & possible + if(eP>=cP&&eN>=cN&&eL>=cL&&poss) // Cluster exists & possible { - G4double clME = 0.; // Prototype of the BoundClusterMass in Environment - G4double clMN = 0.; // Prototype of the BoundClusterMass in TotNucleus - G4double renvM = 0; // Prototype of the residual Environ mass - if(cP==eP&&cN==eN&&cL==eL)clME=cQPDG.GetMass();// The only not bound Cluster of Environment - else // Bound Cluster in the Environment + G4double clME = 0.; // Prototype of the BoundClMass in Environ + G4double clMN = 0.; // Prototype of the BoundClMass in TotNucl + G4double renvM = 0; // Prototype of the residual Environ mass + if(cP==eP&&cN==eN&&cL==eL)clME=cQPDG.GetMass();// The only notBoundCluster of Envir + else // Bound Cluster in the Environment { renvM = cQPDG.GetNuclMass(eP-cP,eN-cN,eL-cL); // Mass of residual for Environment clME = envM-renvM; } - if(cP==tP&&cN==tN&&cL==tL)clMN=cQPDG.GetMass(); // The only not bound Cluster of TotNucleus - else // Bound Cluster in Total Nucleus + if(cP==tP&&cN==tN&&cL==tL)clMN=cQPDG.GetMass(); // The only NotBoundCluster of TotN + else // Bound Cluster in Total Nucleus { - renvM = cQPDG.GetNuclMass(tP-cP,tN-cN,tL-cL); // Mass of residual for Total Nucleus + renvM = cQPDG.GetNuclMass(tP-cP,tN-cN,tL-cL); // TotalResidualNucleus Mass clMN = totM-renvM; } curCand->SetParPossibility(true); @@ -3229,7 +3580,8 @@ void G4Quasmon::ModifyInMatterCandidates() curCand->SetNBMass(clMN); #ifdef sdebug G4int envPDGC = theEnvironment.GetPDGCode(); // PDG Code of Current Environment - G4cout<<"G4Q:ModMatC:C="<0)vaf = var*mQk/kVal/vap; //@@ + //if(vap>0)vaf = mQk/kVal/vap; //@@ VacuumFactor(instead of in G4QNucleus) G4double accumulatedProbability = 0.; G4double secondAccumProbability = 0.; - G4int qBar =valQ.GetBaryonNumber(); // BaryNum of Quasmon - G4int absb = abs(qBar); // Abs BaryNum of Quasmon - G4int nofU = valQ.GetU()- valQ.GetAU(); // A#of u-quarks + G4int qBar =valQ.GetBaryonNumber(); // BaryNum of Quasmon + G4int nofU = valQ.GetU()- valQ.GetAU(); // A#of u-quarks G4int dofU = nofU+nofU; - G4int nofD = valQ.GetD()- valQ.GetAD(); // A#of d-quarks + G4int nofD = valQ.GetD()- valQ.GetAD(); // A#of d-quarks G4int dofD = nofD+nofD; G4int qChg = valQ.GetCharge(); - G4int qIso = qBar-qChg-qChg; // Charge of Quasmon - ////////////////G4int aQuI = abs(qIso); // Abs value for estimate - ///////////////G4int oeQB = qBar%2; // odd(1)/even(0) QBaryn flag + G4int qIso = qBar-qChg-qChg; // Charge of Quasmon + ////////////////G4int aQuI = abs(qIso); // Abs value for estimate + ///////////////G4int oeQB = qBar%2; // odd(1)/even(0) QBaryn flag G4int maxC = theQCandidates.size(); // A#of candidates - ///////////////G4double totZ = theEnvironment.GetZ() + valQ.GetCharge(); // Z of the Nucleus - ///////////////G4double totA = theEnvironment.GetA() + valQ.GetBaryonNumber(); // A of the Nucleus - G4double envM = theEnvironment.GetMass(); // Mass of the Current Environment - G4int envPDGC = theEnvironment.GetPDGCode(); // PDG Code of Current Environment - G4int envN = theEnvironment.GetN(); // N of current Nuclear Environment - G4int envZ = theEnvironment.GetZ(); // Z of current Nuclear Environment - ////////////////G4int envS = theEnvironment.GetS(); // S of current Nuclear Environment - G4int envA = theEnvironment.GetA(); // A of current Nuclear Environment - G4QContent envQC=theEnvironment.GetQCZNS(); // QuarkContent of the current Nuclear Environ. - ///////G4double addPhoton=phot4M.e(); // Photon energy for capture by quark-parton -#ifdef sdebug - G4int maxB = theEnvironment.GetMaxClust(); // Maximum BaryNum for clusters - G4cout<<"G4Q::CalculateHadronizationProbabilities:Q="<>>c="<>>c="< tmpTM+frM="<80000000&&cPDG!=90000000&&dUD<2))) // 2 (OK) or 3 + //if(pos&&(cPDG<80000000||(cPDG>80000000&&cPDG!=90000000&&dUD<1)))// 1 ** never try + //if(pos&&(cPDG<80000000||(cPDG>80000000&&cPDG!=90000000&&dUD<2)))// 2 deuteronsTooHigh + if(pos&&(cPDG<80000000||(cPDG>80000000&&cPDG!=90000000&&dUD<3))) // 3 the best { - G4QContent curQ = valQ; // Make a current copy of the Quasmon QuarkCont - G4int baryn= candQC.GetBaryonNumber(); // Baryon number of the Candidate - G4int cC = candQC.GetCharge(); // Charge of the Candidate + G4QContent curQ = valQ; // Make current copy of theQuasmonQuarkCont + G4int baryn= candQC.GetBaryonNumber(); // Baryon number of the Candidate + G4int cC = candQC.GetCharge(); // Charge of the Candidate G4double CB=0.; if(envA) CB=theEnvironment.CoulombBarrier(cC,baryn); /////////////G4int cI = baryn-cC-cC; - G4int cNQ= candQC.GetTot()-2; // A#of quark-partons in the candidate - 2 (OK) - //G4int cNQ= candQC.GetTot()+baryn-2; // A#of q-partons + string-junktions - 2 (q-link) - //G4int cNQ= candQC.GetTot()*2-4; // A#of q-partons + string-junktions - 2 (bag-link?) - G4double resM=0.; // Prototype for minMass of residual hadron - if(cPDG>80000000&&cPDG!=90000000&&baryn<=envA) //===> "Nuclear Fragment" case (QUark EXchange) + //G4int cNQ= candQC.GetTot()-1-baryn; // A#of quarks/diquarksInTheCandidate - 2 + G4int cNQ= candQC.GetTot()-2; // A#of quark-partonsInTheCandidate - 2 (OK) + //G4int cNQ= candQC.GetTot()+baryn-2; // A#of q-partons+b_Sj-2 (separate q-link) + //G4int cNQ= candQC.GetTot()+3*baryn-4; // A#of q-partons+b+2*(b-1)-2 (bag q-link) + G4double resM=0.; // Prototype for minMass of residual hadron + if(cPDG>80000000&&cPDG!=90000000&&baryn<=envA)//==>"Nuclear Fragment" (QUarkEXchange) { - G4int pc=0; // Parents counter - G4double pcomb=0.; // Summed probability of parent clusters - G4double frM2=frM*frM; - //////////G4double qMax=frM+CB-kLS; + G4int pc=0; // Parents counter + G4double pcomb=0.; // Summed probability of parent clusters + G4double frM2=frM*frM; // Squared mass of the nuclear fragment + G4double qMax=frM+CB-kLS; // ParClustM-q_max value (k-q>frM-prM+CB) //////////G4double qM2=qMax+qMax; G4int iQmin=0; G4int iQmax=3; G4int oQmin=0; G4int oQmax=3; - if (dofU<=nofD) iQmax=1; // d-quark (u-quark is forbiden) - else if(dofD<=nofU) iQmin=1; // u-quark (d-quark is forbiden) - if(piF) // pi- transfer it's charge to the quark + if (dofU<=nofD) iQmax=1; // d-quark (u-quark is forbiden) + else if(dofD<=nofU) iQmin=1; // u-quark (d-quark is forbiden) + if(piF) // pi- transfers it's charge to the quark { iQmin=0; iQmax=1; } #ifdef pdebug if(baryn<5) - G4cout<<"G4Q::CHP:***>>>c="<>c="<oQmin) for(int iq=iQmin; iqnDel="<"<0.) // Kinematical analysis of hadronization { #ifdef pdebug - if(baryn<5)G4cout<<"G4Q::CHP: fM="<="<0.&&ne<1.)kf=pow(ne,cNQ); +#ifdef pdebug + if(baryn<5) G4cout<<"G4Q::CHP:="<"<"<0.&&nz<1.&&nzrQ2&&!piF&&!gaF&&baryn>3) // ==> Check of Residual Virtual Quasmon - if(minBM2>rQ2&&!piF&&!gaF&&baryn>2) // ==> Check of Residual Virtual Quasmon + //if(minBM2>rQ2&&!piF&&!gaF&&baryn>3)//==>Check of ResidVirtualQuasm + //if(minBM2>rQ2&&!piF&&!gaF&&baryn>2)//==>Check of ResidVirtualQuasm + //if(minBM2>rQ2&&!piF&&!gaF) // ==> Check of Residual Virtual Quasmon + //if(minBM2>rQ2&&baryn>2)//==>Check of ResidualVirtualQuasmon **OK** + //if(minBM2>rQ2&&baryn>1)//==>Check of ResidualVirtualQuasm**Better** + //if(minBM2>rQ2&&piF&&(cPDG==90000001||cPDG==90002002))//CheckResVirQ + //if(minBM2>rQ2&&piF&&(cPDG==90000001||baryn>3))//CheckResidVirtQuasm + //if(minBM2>rQ2&&(piF&&cPDG==90000001||baryn>2))//CheckResidVirtQuasm //if(minBM2>rQ2&&baryn>2) // ==> Check of Residual Virtual Quasmon - //if(minBM2>rQ2&&!piF&&baryn>3) // ==> Check of Residual Virtual Quasmon - //if(minBM2>rQ2&&!piF&&baryn>2) // ==> Check of Residual Virtual Quasmon - //if(minBM2>rQ2&&!piF&&!gaF) // ==> Check of Residual Virtual Quasmon - //if(minBM2>rQ2&&!piF) // ==> Check of Residual Virtual Quasmon - //if(minBM2>rQ2) // ==> Check of Residual (Virtual?) Quasmon + //if(minBM2>rQ2&&!piF&&baryn>2&&cPDG!=90001002)//ResidVirtualQuasmon + if(minBM2>rQ2&&!piF&&baryn>2)//==>Check of Residual Virtual Quasmon + //if(minBM2>rQ2&&!piF&&baryn>3)// ==> Check of ResidualVirtualQuasmon + //if(minBM2>rQ2&&!piF&&baryn>1)// ==> Check of ResidualVirtualQuasmon + //if(minBM2>rQ2&&!piF&&!gaF)// ==> Check of Residual Virtual Quasmon + //if(minBM2>rQ2&&!piF)// ==> Check of Residual Virtual Quasmon + //if(minBM2>rQ2&&piF)// ==> Check of Residual Virtual Quasmon + //if(minBM2>rQ2) // ==> Check of Residual (Virtual?) Quasmon //if(2>3) { G4double nz=0; @@ -3652,8 +4039,8 @@ void G4Quasmon::CalculateHadronizationProbabilities(G4double E, G4double kVal, G //nz=1.-(minBM2-rQ2)/(nucBM*rEP); //if(atrest) nz=1.-(minBM2-rQ2+pmk*dkd)/(nucBM*(rEP+pmk)); #ifdef pdebug - if(baryn<5) - G4cout<<"G4Q::CHP:q="<"<"<0.&&nz<1.&&nzrQ2&&baryn>3) // ==> Check of Residual Quasmon - if(minM2>rQ2&&!piF&&!gaF&&baryn>3) // ==> Check of Residual Quasmon + //if(minM2>rQ2&&!piF&&!gaF&&baryn>3) // ==> Check of Residual Quasmon //if(minM2>rQ2&&!piF&&baryn>2) // ==> Check of Residual Quasmon - //if(minM2>rQ2&&!piF&&baryn>3) // ==> Check of Residual Quasmon + if(minM2>rQ2&&!piF&&baryn>2&&cPDG!=90001002)//==>Check of ResidQuasm + //if(minM2>rQ2&&!piF&&baryn>3) // ==> Check Residual Quasmon **OK** //if(minM2>rQ2&&!piF&&!gaF) // ==> Check of Residual Quasmon //if(minM2>rQ2&&!piF) // ==> Check of Residual Quasmon - //if(minM2>rQ2) // ==> Check of Residual (Virtual?) Quasmon + //if(minM2>rQ2&&piF) // ==> Check of Residual Quasmon + //if(minM2>rQ2&&baryn>1) // ==> Check Residual Quasmon **Better** + //if(minM2>rQ2&&(baryn>1||!piF))//==> Check ResidualQuasmon**Better** + //if(minM2>rQ2&&baryn>1&&cPDG!=90002002)// ==> Check Residual Quasmon + //if(minM2>rQ2&&piF&&cPDG==90002002) // ==> Check of Residual Quasmon + //if(minM2>rQ2) // ==> Check of Residual Quasmon //if(2>3) { - G4double nz=0; - nz=1.-(minM2-rQ2)/(boundM*rEP); + G4double nz=1.-(minM2-rQ2)/(boundM*rEP); if(atrest) nz=1.-(minM2-rQ2+pmk*dked)/(boundM*(rEP+pmk)); //nz=1.-(minM2-rQ2)/(nucBM*rEP); //if(atrest) nz=1.-(minM2-rQ2+pmk*dkd)/(nucBM*(rEP+pmk)); #ifdef pdebug - if(baryn<5) - G4cout<<"G4Q::CHP:q="<"<"<0.&&nz<1.&&nz1.)kf=1.; - G4double high = kf; + G4double high = kf; // after this kf can be changed #ifdef pdebug if(baryn<5) G4cout<<"G4Q::CHP:kf="<="<="<="<="<0.&&nz>lz) - // { - // newl=pow(nz,cNQ); - // if(newl>low) low=newl; - // } - // else if(nz>1.) low=10.; - //} + if(nz>0.&&nz>lz) + { + newl=pow(nz,cNQ); + if(newl>low) low=newl; + } + else if(nz>1.) low=10.; + } + // ***** End of restrictions ***** kf-=low; #ifdef pdebug - if(baryn<5) - G4cout<<"G4Q::CHP:>>"<>"< End of Quark Exchange "iq" Test LOOP - } // ---> End of Nuclear Case of fragmentation - else if(cPDG<80000000) // ===> "Hadron" case (QUark FUsion mechanism) + } // ...> End of Quark Exchange "oq" Test LOOP + } // ...> End of Quark Exchange "iq" Test LOOP + } // ---> End of Nuclear Case of fragmentation + else if(cPDG<80000000) // ===> "Hadron" case (QUark FUsion mechanism) { + // Calculation of the existing hadrons + G4int curnh=theQHadrons.size(); + G4int npip=0; + G4int npin=0; + G4int npiz=0; + for (G4int ind=0; indGetPDGCode(); // PDG Code of the hadron + if (curhPDG== 111) npiz++; + if (curhPDG== 211) npip++; + if (curhPDG==-211) npin++; + } + // End of the hadron counting + if(cPDG== 211&&npip>0) comb*=(npip+1); // Bose multyplication for pi+ + if(cPDG==-211&&npip>0) comb*=(npin+1); // Bose multyplication for pi- comb = valQ.NOfCombinations(candQC); - if(cPDG==111||cPDG==221||cPDG==331||cPDG==113||cPDG==223||cPDG==333||cPDG==115||cPDG==225|| - cPDG==335||cPDG==117||cPDG==227||cPDG==337||cPDG==110||cPDG==220||cPDG==330) + if(cPDG==111||cPDG==221||cPDG==331||cPDG==113||cPDG==223||cPDG==333||cPDG==115|| + cPDG==225||cPDG==335||cPDG==117||cPDG==227||cPDG==337||cPDG==110||cPDG==220|| + cPDG==330) // @@ Can it be shorter if? { G4QContent tQCd(1,0,0,1,0,0); G4QContent tQCu(0,1,0,0,1,0); @@ -3851,91 +4263,106 @@ void G4Quasmon::CalculateHadronizationProbabilities(G4double E, G4double kVal, G G4double cmu=valQ.NOfCombinations(tQCu); G4double cms=valQ.NOfCombinations(tQCs); if(cPDG!=333&&cPDG!=335&&cPDG!=337) comb=(cmd+cmu)/2.; - if(cPDG==331||cPDG==221) comb =(comb + cms)/2.; //eta,eta' - // Hadronization in eta/eta' suppression (conversion to rho/omega) - if(cPDG==221||cPDG==331) comb*=EtaEtaprime; // eta/eta': -2*(1-e) - if(cPDG==113||cPDG==223) comb*=2.-EtaEtaprime; // rho/omega: 2*(1-e) + //if(cPDG==331||cPDG==221) comb =(comb + cms)/2.; //eta,eta' + if(cPDG==331||cPDG==221) comb =(comb + cms)/4.; //eta,eta' (factor 2 suppression) + if(cPDG==113) comb*=4.; //@@ + if(cPDG==223) comb*=2.; //@@ + if(cPDG==111&&npiz>0) comb*=(npiz+1); // Bose multyplication #ifdef pdebug - if(cPDG==111) G4cout<<"G4Q::CHP:comb="<>>PDG="<>>PDG="<"<"<frM-CB+resTM &&(resPDG>80000000&&resPDG!=90000000||resPDG<10000)) + if(comb&&resPDG && totMass>frM-CB+resTM && + (resPDG>80000000&&resPDG!=90000000 || resPDG<10000)) { #ifdef pdebug - //if(aPDG<10000&&aPDG%10<3) - if(aPDG<10000&&aPDG%10<5) - G4cout<<"G4Q::CHP:ind="< cM="< cM="<1&&baryn>0) //---> High baryon number ("nuclear") case { - G4QContent rtQC=curQ+envQC; // Total Residual Quark Content - G4QNucleus rtN(rtQC); // Create a pseudo-nucleus for residual - //////G4double rtM =rtN.GetMZNS(); // Min Mass of total residual Nucleus - /////////G4double bnRQ=rtM-envM; // Bound mass of residual Quasmon + G4QContent rtQC=curQ+envQC; // Total Residual Quark Content @@ ?? + G4QNucleus rtN(rtQC); // Create a pseudo-nucleus for residual + //////G4double rtM =rtN.GetMZNS(); // Min Mass of total residual Nucleus + /////////G4double bnRQ=rtM-envM; // Bound mass of residual Quasmon } - else //---> Low baryon number case (tuned on p-ap) + else //---> Low baryon number case (tuned on p-ap) { if(cPDG==110||cPDG==220||cPDG==330) probability*=comb; // f_0's (sigma) have spin 0 @@ -3970,18 +4397,17 @@ void G4Quasmon::CalculateHadronizationProbabilities(G4double E, G4double kVal, G else { #ifdef pdebug - //if(aPDG<10000&&aPDG%10<3) - if(aPDG<10000&&aPDG%10<5) - G4cout<<"G4Q::CHP:cM=0["<0"<0"<0 && corFlag) // *** CORRECTION *** { G4QHadron* theLast = theQHadrons[nOfOUT-1]; - if(!(theLast->GetNFragments()) && theLast->GetPDGCode()!=22) // Not decayed hadron && not gamma + if(!(theLast->GetNFragments()) && theLast->GetPDGCode()!=22)//NotDecayedHadron & NotGam { G4LorentzVector hadr4M=theLast->Get4Momentum(); - G4double hadrMa=hadr4M.m(); // Mass of the Last hadron (==GSMass) - G4LorentzVector tmpTLV=reTLV+hadr4M; // Tot (ResidNucl+LastHadron) 4-Mom + G4double hadrMa=hadr4M.m(); // Mass of the Last hadron (==GSMass) + G4LorentzVector tmpTLV=reTLV+hadr4M;// Tot (ResidNucl+LastHadron) 4-Mom #ifdef pdebug - G4cout<<"G4Q::CheckGS:YES,tLV="<rSM+hM="<rM+hM="<resSMa+hadrMa) // resMa contains 2 Hadrons: resQ and Environ + if(tmpTLV.m()>resSMa+hadrMa) // resMa contains 2 Hadrons: resQ and Environ { - if(resEMa) // => "The not vacuum Environment exists" case + if(resEMa) // => "Non vacuum Environment exists" case { G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon if(!G4QHadron(tmpTLV).DecayIn3(hadr4M,quas4M,enva4M)) { - G4cerr<<"***G4Quasm::CheckGS: Decay in Fragm+ResQ+ResEnv did not succeeded"<Set4Momentum(quas4M); // @@ - FillHadronVector(quasH); // Fill ResidQuasm Hadron (delete equivalent) + FillHadronVector(quasH); // Fill ResidQuasm Hadron (del.equiv.) theLast->Set4Momentum(hadr4M); } } - else // => "The Environ is vacuum" case (DecayIn2) + else //=>"The Env is vacuum" case (DecayIn2) { G4LorentzVector quas4M = G4LorentzVector(0.,0.,0.,resQMa); // GS Mass of Quasmon G4QHadron* quasH = new G4QHadron(valQ, quas4M); if(!G4QHadron(tmpTLV).DecayIn2(hadr4M,quas4M)) { delete quasH; // Delete "new Quasmon Hadron" - G4cerr<<"***G4Quasm::CheckGS: Decay in Fragm+ResQ did not succeeded"<Set4Momentum(hadr4M); quasH->Set4Momentum(quas4M); - FillHadronVector(quasH); // Fill ResidQuasmHadron (delete equivalent) + FillHadronVector(quasH); // Fill ResidQuasmHadron (del.equivalent) } } } @@ -4112,32 +4597,32 @@ G4bool G4Quasmon::CheckGroundState(G4bool corFlag) // Correction is forbidden by { if(nOfOUT>1 && corFlag) { - G4QHadron* thePrev = theQHadrons[nOfOUT-2]; // Get pointer to prev-before-last hadron - if(thePrev->GetNFragments()||thePrev->GetPDGCode()==22) return false; // Decayed or gamma - G4LorentzVector prev4M=thePrev->Get4Momentum(); // 4-mom of the Previous but Last Hadron - G4double prevMa=prev4M.m(); // Mass of previous hadron (==GSMass) - tmpTLV+=prev4M; // Increment Total 4-Mom of TotalResidNucl - G4QContent totQC=valQ+envaQC; // Quark Cont of the ResidNucl=ResidQ+Env - G4int totPDG=totQC.GetSPDGCode(); // PDG Code of Total Residual Nucleus - G4double totQMa=G4QPDGCode(totPDG).GetMass(); // GS Mass of the Residual Nucleus - G4double totNMa=tmpTLV.m(); // Real Mass of the Total Residual nucleus + G4QHadron* thePrev = theQHadrons[nOfOUT-2];// Get pointer to prev-before-lastHad + if(thePrev->GetNFragments()||thePrev->GetPDGCode()==22)return false;//DecH or Gam + G4LorentzVector prev4M=thePrev->Get4Momentum(); // 4M of thePreviousButLastHadron + G4double prevMa=prev4M.m(); // PreviousHadronMass (==HadrGSM) + tmpTLV+=prev4M; // IncrementTotal4M of TotResNucl + G4QContent totQC=valQ+envaQC; // QCont of theResidNucl=ResQ+Env + G4int totPDG=totQC.GetSPDGCode(); // PDG Code of TotResidualNucleus + G4double totQMa=G4QPDGCode(totPDG).GetMass(); // GS Mass of the ResidualNucleus + G4double totNMa=tmpTLV.m(); // RealMass of TotResidualNucleus #ifdef pdebug - G4cout<<"G4Q::CheckGS:NO, 4M/M="<r+p+l="<"<totQMa+hadrMa+prevMa) { - G4LorentzVector nuc4M = G4LorentzVector(0.,0.,0.,totQMa); // 4-Mom of ResidNucl at rest + G4LorentzVector nuc4M = G4LorentzVector(0.,0.,0.,totQMa); // ResNuclAtRest 4Mom if(!G4QHadron(tmpTLV).DecayIn3(hadr4M,prev4M,nuc4M)) { - G4cerr<<"***G4Quasm::CheckGS:DecayIn3 ResidNuc+LastH+PrevH did not succeeded"<Set4Momentum(hadr4M); thePrev->Set4Momentum(prev4M); #ifdef pdebug @@ -4145,25 +4630,25 @@ G4bool G4Quasmon::CheckGroundState(G4bool corFlag) // Correction is forbidden by #endif } } - else // Try to decay in one hadron, absorb other + else // Decay in one hadron, absorb other { G4QContent tmpLNQ=totQC+thePrev->GetQC(); G4int resLPDG =tmpLNQ.GetSPDGCode(); - G4double resLastM=G4QPDGCode(resLPDG).GetMass(); // GSMass of ResidNucl for the LastH + G4double resLastM=G4QPDGCode(resLPDG).GetMass();//GSM of ResidNucl for theLastH G4QContent tmpPNQ=totQC+theLast->GetQC(); G4int resPPDG =tmpPNQ.GetSPDGCode(); - G4double resPrevM=G4QPDGCode(resPPDG).GetMass(); // GSMass of ResidNucl for the PrevH - //////G4bool which = true; // The LastH is absorbed, PrevH is radiated + G4double resPrevM=G4QPDGCode(resPPDG).GetMass();//GSM of ResidNucl for thePrevH + //////G4bool which = true; // LastH is absorbed, PrevH is radiated #ifdef pdebug - G4cout<<"G4Quasm::CheckGS: NO, tM="< rp+l="< rl+p=" - < rp+l="< rl+p="<resLastM+hadrMa) // "Just exclude the Prev" case + if (totNMa>resLastM+hadrMa) // "Just exclude the Prev" case { - theQHadrons.pop_back(); // the theLast* is excluded from OUTPUT HV - theQHadrons.pop_back(); // the thePrev* is excluded from OUTPUT HV - theQHadrons.push_back(theLast); // theLast substitutes thePrev in OUTPUT HV - delete thePrev; // thePrev QHadron is destructed + theQHadrons.pop_back(); // theLast* is excluded from OUTPUT HV + theQHadrons.pop_back(); // thePrev* is excluded from OUTPUT HV + theQHadrons.push_back(theLast); // theLast substitutes thePrev in OUTPUT + delete thePrev; // thePrev QHadron is destructed thePrev=theLast; resPPDG=resLPDG; resPrevM=resLastM; @@ -4175,18 +4660,17 @@ G4bool G4Quasmon::CheckGroundState(G4bool corFlag) // Correction is forbidden by delete theLast; } else return false; - //return false; // @@@@@@@@@@@@@@@@@@@@@ temporary - G4LorentzVector nuc4M = G4LorentzVector(0.,0.,0.,resPrevM);// 4-M of ResidNucl to PrevH + G4LorentzVector nuc4M = G4LorentzVector(0.,0.,0.,resPrevM);//ResNucl4m to PrevH if(!G4QHadron(tmpTLV).DecayIn2(prev4M,nuc4M)) { - G4cerr<<"***G4Quasm::CheckGS:DecayIn2 (ResNucl+LastH)+PrevH didn't succeeded"<Set4Momentum(prev4M); #ifdef pdebug @@ -4204,41 +4688,41 @@ G4bool G4Quasmon::CheckGroundState(G4bool corFlag) // Correction is forbidden by return true; } // End of "CheckGroundState" -// Decay of outgoing hadron +// Decay of the outgoing hadron G4bool G4Quasmon::DecayOutHadron(G4QHadron* qHadron, G4int DFlag) { // ========================================================== G4QPDGCode theQPDG = qHadron->GetQPDG(); - G4int thePDG = theQPDG.GetPDGCode(); // Get the PDG code of decaying hadron - G4int pap = 0; // --- particle - if(thePDG<0) pap = 1; // --- anti-particle - G4LorentzVector t = qHadron->Get4Momentum(); // Get 4-momentum of decaying hadron - G4double m = t.m(); // Get the mass value of decaying Hadron + G4int thePDG = theQPDG.GetPDGCode(); // Get the PDG code of decaying hadron + G4int pap = 0; // --- particle + if(thePDG<0) pap = 1; // --- anti-particle + G4LorentzVector t = qHadron->Get4Momentum(); // Get 4-momentum of decaying hadron + G4double m = t.m(); // Get the mass value of decaying Hadron // --- Randomize a channel of decay - G4QDecayChanVector decV = theWorld.GetQParticle(theQPDG)->GetDecayVector(); + G4QDecayChanVector decV = theWorld->GetQParticle(theQPDG)->GetDecayVector(); G4int nChan = decV.size(); -#ifdef tdebug - G4cout<<"G4Quasmon::DecayOutHadron: PDG="<1) { - G4double rnd = G4UniformRand(); // Random value to select a Decay Channel + G4double rnd = G4UniformRand(); // Random value to select a Decay Channel for(i=0; iGetPDGCode() <<","<GetPDGCode(); if(nPart>2) G4cout<<","<GetPDGCode(); @@ -4246,11 +4730,11 @@ G4bool G4Quasmon::DecayOutHadron(G4QHadron* qHadron, G4int DFlag) #endif if(nPart<2||nPart>3) { - G4cerr<<"***G4Q::DecayOutH: n="<>>>>"<>>"<GetPDGCode(); G4int sPDG=cV[1]->GetPDGCode(); - if(fPDG!=22 && sPDG!=22 || abs(thePDG)%10>2 || DFlag) + // @@ Radiative decays In2 (eta, eta', Sigma0) are closed (!) + //if(fPDG!=22 && sPDG!=22 || abs(thePDG)%10>2 || DFlag) + // Radiative decays In2 (eta, eta', Sigma0) are open + if(3>2 || DFlag) { if(cV[0]->GetWidth()==0.) { // Randomize only the second Hardon or none fHadr = new G4QHadron(cV[0]->GetPDGCode()); // the First Hadron is created *1* - if(cV[1]->GetWidth()==0.)sHadr = new G4QHadron(sPDG);// the Second Hadron is created *2* + if(cV[1]->GetWidth()==0.)sHadr = new G4QHadron(sPDG);//theSecondHadron is created else { - G4QParticle* sPart=theWorld.GetQParticle(cV[1]);// Particle for the Second Hadron - G4double sdm = m - fHadr->GetMass(); // MaxMassLimit for the 2-nd Hadron - sHadr = new G4QHadron(sPart,sdm); // the Second Hadron is created *2* + G4QParticle* sPart=theWorld->GetQParticle(cV[1]);// Pt for theSecondHadron + G4double sdm = m - fHadr->GetMass(); // MaxMassLimit for the 2-nd Hadron + sHadr = new G4QHadron(sPart,sdm); // the Second Hadron is created *2* if(sPDG<0) sHadr->MakeAntiHadron(); } } - else // Randomize masses of both Hadrons + else // Randomize masses ofBothHadrons { - G4QParticle* sPart=theWorld.GetQParticle(cV[1]);// Particle for the Second Hadron - G4double mim = sPart->MinMassOfFragm(); // MinMassLimit for the Second Hadron - G4double fdm = m - mim; // MaxMassLimit for the First Hadron - G4QParticle* fPart=theWorld.GetQParticle(cV[0]);// Particle for the First Hadron - fHadr = new G4QHadron(fPart,fdm); // the 1-st Hadron is initialized *1* + G4QParticle* sPart=theWorld->GetQParticle(cV[1]);// Pt for theSecondHadron + G4double mim = sPart->MinMassOfFragm(); // MinMassLimit for theSecondHadr + G4double fdm = m - mim; // MaxMassLimit for theFirstHadr + G4QParticle* fPart=theWorld->GetQParticle(cV[0]);// Pt for the First Hadron + fHadr = new G4QHadron(fPart,fdm); // the 1-st Hadron is initialized if(fPDG<0) fHadr->MakeAntiHadron(); G4double fm=fHadr->GetMass(); // Mass of the first hadron - G4double sdm = m - fm; // MaxMassLimit for the Second Hadron - sHadr = new G4QHadron(sPart,sdm); // the 2-nd Hadron is initialized *2* + G4double sdm = m - fm; // MaxMassLimit for theSecondHadr + sHadr = new G4QHadron(sPart,sdm); // the 2-nd Hadron is initialized if(sPDG<0) sHadr->MakeAntiHadron(); -#ifdef tdebug +#ifdef pdebug G4cout<<"G4Q::DOH:M="<SetNFragments(2); - //theQHadrons.push_back(qHadron); // Fill with NFr=2 (delete equivalent) + //theQHadrons.push_back(qHadron); // Fill with NFr=2 (del.equiv.) // Instead delete qHadron; // - fHadr->Set4Momentum(f4Mom); // Put the randomized 4Mom to 1-st Hadron - FillHadronVector(fHadr); // Fill 1st Hadron (delete equivalent) - sHadr->Set4Momentum(s4Mom); // Put the randomized 4Mom to 2-nd Hadron - FillHadronVector(sHadr); // Fill 2nd Hadron (delete equivalent) + fHadr->Set4Momentum(f4Mom); // Put the randomized 4Mom to 1-st Hadron + FillHadronVector(fHadr); // Fill 1st Hadron (delete equivalent) + sHadr->Set4Momentum(s4Mom); // Put the randomized 4Mom to 2-nd Hadron + FillHadronVector(sHadr); // Fill 2nd Hadron (delete equivalent) } } else { - if(thePDG==89999003||thePDG==90002999) G4cerr<<"***(1)***G4Q::DOH:8999003/90002999"<GetPDGCode(); G4int sPDG=cV[1]->GetPDGCode(); G4int tPDG=cV[2]->GetPDGCode(); - if(cV[0]->GetWidth()==0.) // Don't randomize the First Hardon - { - fHadr = new G4QHadron(fPDG); // the First Hadron is created *1* - if(cV[1]->GetWidth()==0.) - { - sHadr = new G4QHadron(sPDG); // the Second Hadron is created *2* - if(cV[2]->GetWidth()==0.)tHadr = new G4QHadron(tPDG);//the Third Hadron is created *3* - else + //@@ The radiative decays of the GS hadrons In3 are closed (!) + //if(fPDG!=22&&sPDG!=22&&tPDG!=22 || abs(thePDG)%10>2 || DFlag) + //The radiative decays of the GS hadrons In3 are open + if(3>2 || DFlag) + { + if(cV[0]->GetWidth()==0.) // Don't randomize theFirstHardon + { + fHadr = new G4QHadron(fPDG); // theFirst Hadron is created *1* + if(cV[1]->GetWidth()==0.) + { + sHadr = new G4QHadron(sPDG); // theSecond Hadron is created *2* + if(cV[2]->GetWidth()==0.)tHadr = new G4QHadron(tPDG);//theThirdHadron isCreated + else + { + G4QParticle* tPart=theWorld->GetQParticle(cV[2]);// Pt for the3-rdH + G4double tdm = m-fHadr->GetMass()-sHadr->GetMass();// MaxMass for the 2d Hadr + tHadr = new G4QHadron(tPart,tdm); //the3rdHadron is created + if(tPDG<0) tHadr->MakeAntiHadron(); + } + } + else // Randomize 2nd & 3rd Hadrons { - G4QParticle* tPart=theWorld.GetQParticle(cV[2]); // Particle for the 3-rd Hadron - G4double tdm = m-fHadr->GetMass()-sHadr->GetMass();// MaxMassLimit for the 2d Hadron - tHadr = new G4QHadron(tPart,tdm); // the 3-rd Hadron is created *3* + m-=fHadr->GetMass(); // Reduce the residual MaxMass + G4QParticle* tPart=theWorld->GetQParticle(cV[2]);// Pt for the 3-rd Hadron + G4double mim = tPart->MinMassOfFragm(); // MinMassLimit for the 3rd Hd + G4double sdm = m - mim; // MaxMassLimit for the 2nd Hd + G4QParticle* sPart=theWorld->GetQParticle(cV[1]);// Pt for the 2-nd Hadron + sHadr = new G4QHadron(sPart,sdm); // theSecondHadron is created + if(sPDG<0) sHadr->MakeAntiHadron(); + G4double tdm = m - sHadr->GetMass(); // MaxMassLimit for the 3-rd H + tHadr = new G4QHadron(tPart,tdm); // the Third Hadron is created if(tPDG<0) tHadr->MakeAntiHadron(); - } - } - else // Randomize 2nd & 3rd Hadrons - { - m-=fHadr->GetMass(); // Reduce the residual MaxMassLimit - G4QParticle* tPart=theWorld.GetQParticle(cV[2]);// Particle for the 3-rd Hadron - G4double mim = tPart->MinMassOfFragm(); // MinMassLimit for the 3rd Hadron - G4double sdm = m - mim; // MaxMassLimit for the 2nd Hadron - G4QParticle* sPart=theWorld.GetQParticle(cV[1]);// Particle for the 2-nd Hadron - sHadr = new G4QHadron(sPart,sdm); // the Second Hadron is created *2* + } + } + else // Randomize masses of all three Hadrons + { + G4QParticle* sPart=theWorld->GetQParticle(cV[1]);//Pt for theSecondHadr + G4double smim = sPart->MinMassOfFragm(); // MinMassLim for theSecondHadron + G4QParticle* tPart=theWorld->GetQParticle(cV[2]); // Pt for the Third Hadron + G4double tmim = tPart->MinMassOfFragm(); // MinMassLimit for theThirdHd + G4double fdm = m - smim - tmim; // MaxMassLimit for theFirstHd + G4QParticle* fPart=theWorld->GetQParticle(cV[0]); // Pt for the First Hadron + fHadr = new G4QHadron(fPart,fdm); // the First Hadron is created + if(fPDG<0) fHadr->MakeAntiHadron(); + m-=fHadr->GetMass(); // Reduce the residual MaxMass + G4double sdm = m - tmim; // MaxMassLimit for theSecondH + sHadr = new G4QHadron(sPart,sdm); // theSecondHadron is created if(sPDG<0) sHadr->MakeAntiHadron(); - G4double tdm = m - sHadr->GetMass(); // MaxMassLimit for the 3-rd Hadron - tHadr = new G4QHadron(tPart,tdm); // the Third Hadron is created *3* + G4double tdm = m - sHadr->GetMass(); // MaxMassLimit for theThird H + tHadr = new G4QHadron(tPart,tdm); // the Third Hadron is created if(tPDG<0) tHadr->MakeAntiHadron(); + } +#ifdef pdebug + G4cout<<"G4Quasmon::DecayOutHadron:3Dec. m1="<GetMass() + <<",m2="<GetMass()<<",m3="<GetMass()<MakeAntiHadron(); + sHadr->MakeAntiHadron(); + tHadr->MakeAntiHadron(); + } + G4LorentzVector f4Mom = fHadr->Get4Momentum(); // Get 4M of the First Hadron (mass) + G4LorentzVector s4Mom = sHadr->Get4Momentum(); // Get 4M of the SecondHadron (mass) + G4LorentzVector t4Mom = tHadr->Get4Momentum(); // Get 4M of the Third Hadron (mass) + if(!qHadron->DecayIn3(f4Mom,s4Mom,t4Mom)) + { + delete fHadr; // Delete "new fHadr" + delete sHadr; // Delete "new sHadr" + delete tHadr; // Delete "new tHadr" + G4cerr<<"---Worning---G4Q::DecayOutHadron:in3,PDGC="<SetNFragments(3); + //theQHadrons.push_back(qHadron); // Fill with NFr=3 (del.equiv.) + // Instead + delete qHadron; + // + fHadr->Set4Momentum(f4Mom); // Put the randomized 4Mom to 1-st Hadron + FillHadronVector(fHadr); // Fill 1st Hadron (delete equivalent) + sHadr->Set4Momentum(s4Mom); // Put the randomized 4Mom to 2-nd Hadron + FillHadronVector(sHadr); // Fill 2nd Hadron (delete equivalent) + tHadr->Set4Momentum(t4Mom); // Put the randomized 4Mom to 3-rd Hadron + FillHadronVector(tHadr); // Fill 3rd Hadron (delete equivalent) } } - else // Randomize masses of all three Hadrons - { - G4QParticle* sPart=theWorld.GetQParticle(cV[1]); // Particle for the Second Hadron - G4double smim = sPart->MinMassOfFragm(); // MinMassLimit for the Second Hadron - G4QParticle* tPart=theWorld.GetQParticle(cV[2]); // Particle for the Third Hadron - G4double tmim = tPart->MinMassOfFragm(); // MinMassLimit for the Third Hadron - G4double fdm = m - smim - tmim; // MaxMassLimit for the First Hadron - G4QParticle* fPart=theWorld.GetQParticle(cV[0]); // Particle for the First Hadron - fHadr = new G4QHadron(fPart,fdm); // the First Hadron is created *1* - if(fPDG<0) fHadr->MakeAntiHadron(); - m-=fHadr->GetMass(); // Reduce the residual MaxMassLimit ! - G4double sdm = m - tmim; // MaxMassLimit for the Second Hadron - sHadr = new G4QHadron(sPart,sdm); // the Second Hadron is created *2* - if(sPDG<0) sHadr->MakeAntiHadron(); - G4double tdm = m - sHadr->GetMass(); // MaxMassLimit for the Third Hadron - tHadr = new G4QHadron(tPart,tdm); // the Third Hadron is created *3* - if(tPDG<0) tHadr->MakeAntiHadron(); - } -#ifdef tdebug - G4cout<<"G4Quasmon::DecayOutHadron:3Dec. m1="<GetMass()<<",m2="<GetMass() - <<",m3="<GetMass()<MakeAntiHadron(); - sHadr->MakeAntiHadron(); - tHadr->MakeAntiHadron(); - } - G4LorentzVector f4Mom = fHadr->Get4Momentum(); // Get 4-mom of the First Hadron (mass) - G4LorentzVector s4Mom = sHadr->Get4Momentum(); // Get 4-mom of the Second Hadron (mass) - G4LorentzVector t4Mom = tHadr->Get4Momentum(); // Get 4-mom of the Third Hadron (mass) - if(!qHadron->DecayIn3(f4Mom,s4Mom,t4Mom)) - { - delete fHadr; // Delete "new fHadr" - delete sHadr; // Delete "new sHadr" - delete tHadr; // Delete "new tHadr" - G4cerr<<"***G4Q::DecayOutHadron:in3, PDGC="<SetNFragments(3); - //theQHadrons.push_back(qHadron); // Fill with NFr=3 (delete equivalent) - // Instead - delete qHadron; - // - fHadr->Set4Momentum(f4Mom); // Put the randomized 4Mom to 1-st Hadron - FillHadronVector(fHadr); // Fill 1st Hadron (delete equivalent) - sHadr->Set4Momentum(s4Mom); // Put the randomized 4Mom to 2-nd Hadron - FillHadronVector(sHadr); // Fill 2nd Hadron (delete equivalent) - tHadr->Set4Momentum(t4Mom); // Put the randomized 4Mom to 3-rd Hadron - FillHadronVector(tHadr); // Fill 3rd Hadron (delete equivalent) - } - } + else theQHadrons.push_back(qHadron); // Fill hadron as it is (del.equivalent) + } } else { -#ifdef tdebug - G4cout<<"G4Quasmon::DecayOutHadron: Fill PDG= "<>>>"<>>>"<Initialize(aTrack); - aResult->SetStatusChange(fStopAndKill); + aResult->Clear(); + aResult->SetStatusChange(stopAndKill); } //projectile properties needed in constructor of quasmon G4LorentzVector proj4Mom; - proj4Mom = aTrack.GetDynamicParticle()->Get4Momentum(); - G4int projectilePDGCode = aTrack.GetDynamicParticle() - ->GetDefinition() + proj4Mom = aTrack.Get4Momentum(); + G4int projectilePDGCode = aTrack.GetDefinition() ->GetPDGEncoding(); //target properties needed in constructor of quasmon @@ -91,7 +92,8 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus, G4ParticleChange G4double etaToEtaPrime = 0.3; // construct and fragment the quasmon - G4QCHIPSWorld aWorld(nop); // Create CHIPS World of nop particles + //G4QCHIPSWorld aWorld(nop); // Create CHIPS World of nop particles + G4QCHIPSWorld::Get()->GetParticles(nop); // Create CHIPS World of nop particles G4QNucleus::SetParameters(fractionOfSingleQuasiFreeNucleons, fractionOfPairedQuasiFreeNucleons, clusteringCoefficient); @@ -107,14 +109,29 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus, G4ParticleChange G4QHadron* iH = new G4QHadron(projectilePDGCode, 1./MeV*proj4Mom); projHV.push_back(iH); G4QEnvironment* pan= new G4QEnvironment(projHV, targetPDGCode); + //G4Quasmon* pan= new G4Quasmon(projectilePDGCode, targetPDGCode, 1./MeV*proj4Mom, 1./MeV*targ4Mom, nop); + G4QHadronVector* output=0; + try + { + output = pan->Fragment(); + } + catch(G4HadronicException & aR) + { + G4cerr << "Exception thrown passing through G4ChiralInvariantPhaseSpace "<Get4Momentum()<<" "<GetPDGCode()<Fragment(); delete pan; // Fill the particle change. - aResult->SetNumberOfSecondaries(output->size()); G4DynamicParticle * theSec; #ifdef CHIPSdebug G4cout << "G4ChiralInvariantPhaseSpace: NEW EVENT #ofHadrons="<size()<GetPDGMass()+G4Neutron::Neutron()->GetPDGMass(); // Mean double nucleon mass = m_n+m_p (@@ no binding) static const G4double me=G4Electron::Electron()->GetPDGMass(); // electron mass static const G4double me2=me*me; // squared electron mass static const G4double dpi=2*M_PI; // 2*pi - const G4DynamicParticle* theElectron=aTrack.GetDynamicParticle(); + G4DynamicParticle theTempEl(const_cast(aTrack.GetDefinition()), + aTrack.Get4Momentum().vect()); + const G4DynamicParticle* theElectron=&theTempEl; const G4ParticleDefinition* aD = theElectron->GetDefinition(); if((aD != G4Electron::ElectronDefinition()) && (aD != G4Positron::PositronDefinition())) - G4Exception("G4ElectroNuclearReaction::ApplyYourself called for neither electron or positron"); + throw G4HadronicException(__FILE__, __LINE__, "G4ElectroNuclearReaction::ApplyYourself called for neither electron or positron"); const G4ElementTable* aTab = G4Element::GetElementTable(); G4Element * anElement = 0; @@ -102,7 +106,7 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) { G4cerr<<"***G4ElectroNuclearReaction::ApplyYourself: element with Z="<GetKineticEnergy()); + theResult.SetMomentumChange(theElectron->GetMomentumDirection()); // new direction for the electron return &theResult; // DO-NOTHING condition } G4double photonEnergy = theElectronData.GetEquivalentPhotonEnergy(); @@ -119,6 +125,10 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) { G4cout << "G4ElectroNuclearReaction::ApplyYourself: photonEnergy is very high"<GetKineticEnergy()); + theResult.SetMomentumChange(theElectron->GetMomentumDirection()); // new direction for the electron + return &theResult; // DO-NOTHING condition } G4double photonQ2 = theElectronData.GetEquivalentPhotonQ2(photonEnergy); G4double W=photonEnergy-photonQ2/dM; // Hadronic energy flow (W-energy) from the virtual photon @@ -128,9 +138,11 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) } if(W<0.) { - theResult.Initialize(aTrack); + theResult.SetStatusChange(isAlive); + theResult.SetEnergyChange(theElectron->GetKineticEnergy()); + theResult.SetMomentumChange(theElectron->GetMomentumDirection()); // new direction for the electron return &theResult; // DO-NOTHING condition - G4Exception("G4ElectroNuclearReaction::ApplyYourself: negative equivalent energy"); + throw G4HadronicException(__FILE__, __LINE__, "G4ElectroNuclearReaction::ApplyYourself: negative equivalent energy"); } G4DynamicParticle* theDynamicPhoton = new G4DynamicParticle(G4Gamma::GammaDefinition(), @@ -142,16 +154,16 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) G4double rndFraction = theElectronData.GetVirtualFactor(photonEnergy, photonQ2); if(sigNu*G4UniformRand()>sigK*rndFraction) { - theResult.Initialize(aTrack); + theResult.SetStatusChange(isAlive); + theResult.SetEnergyChange(theElectron->GetKineticEnergy()); + theResult.SetMomentumChange(theElectron->GetMomentumDirection()); // new direction for the electron return &theResult; // DO-NOTHING condition } - theResult.Initialize(aTrack); - theResult.Clear(); - theResult.SetStatusChange(fAlive); + theResult.SetStatusChange(isAlive); // Scatter an electron and make gamma+A reaction G4double iniE=theElectronKinEnergy+me; // Initial total energy of electron G4double finE=iniE-photonEnergy; // Final total energy of electron - theResult.SetEnergyChange(finE-me); // Modifies the KINETIC ENERGY (Why not in the name?) + theResult.SetEnergyChange(std::max(0.,finE-me)); // Modifies the KINETIC ENERGY (Why not in the name?) G4double EEm=iniE*finE-me2; // Just an intermediate value to avoid "2*" G4double iniP=sqrt(iniE*iniE-me2); // Initial momentum of the electron G4double finP=sqrt(finE*finE-me2); // Final momentum of the electron @@ -167,15 +179,14 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) G4double sinx=sint*sin(phi); // x-component G4double siny=sint*cos(phi); // y-component G4ThreeVector findir=cost*dir+sinx*ortx+siny*orty; - theResult.SetMomentumDirectionChange(findir); // new direction for the electron + theResult.SetMomentumChange(findir); // new direction for the electron G4ThreeVector photonMomentum=iniP*dir-finP*findir; G4DynamicParticle localGamma(G4Gamma::GammaDefinition(), photonEnergy, photonMomentum); //G4DynamicParticle localGamma(G4Gamma::GammaDefinition(), photonDirection, photonEnergy); //G4DynamicParticle localGamma(G4Gamma::GammaDefinition(), photonLorentzVector); G4ThreeVector position(0,0,0); - G4Track localTrack(&localGamma, 0., position); - localTrack.SetStep(aTrack.GetStep()); - G4VParticleChange * result; + G4HadProjectile localTrack(localGamma); + G4HadFinalState * result; if(photonEnergy < 3*GeV) { result = theLEModel.ApplyYourself(localTrack, aTargetNucleus, &theResult); @@ -190,12 +201,12 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) theHEModel->SetMinEnergy(2.5*GeV); theHEModel->SetMaxEnergy(100*TeV); - G4VParticleChange * aResult = theHEModel->ApplyYourself(localTrack, aTargetNucleus); - theResult.SetNumberOfSecondaries(aResult->GetNumberOfSecondaries()); + G4HadFinalState * aResult = theHEModel->ApplyYourself(localTrack, aTargetNucleus); for(G4int all = 0; all < aResult->GetNumberOfSecondaries(); all++) { theResult.AddSecondary(aResult->GetSecondary(all)); } + aResult->SecondariesAreStale(); result = &theResult; } return result; diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4GammaNuclearReaction.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4GammaNuclearReaction.hh index f3d5909c92..721ffe76e0 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4GammaNuclearReaction.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4GammaNuclearReaction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GammaNuclearReaction.hh,v 1.9 2002/12/12 19:16:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GammaNuclearReaction.hh,v 1.11 2003/11/03 17:49:01 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // GEANT4 physics class: G4GammaNuclearReaction -- header file @@ -44,19 +44,20 @@ class G4GammaNuclearReaction : public G4HadronicInteraction { } - G4VParticleChange * ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus); + virtual G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, + G4Nucleus& aTargetNucleus); private: G4ChiralInvariantPhaseSpace theModel; }; inline -G4VParticleChange * G4GammaNuclearReaction:: -ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) +G4HadFinalState * G4GammaNuclearReaction:: +ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus) { - if(aTrack.GetDynamicParticle()->GetDefinition() != G4Gamma::GammaDefinition()) + if(aTrack.GetDefinition() != G4Gamma::GammaDefinition()) { - G4Exception("Called G4GammaNuclearReaction for particle other than gamma"); + throw G4HadronicException(__FILE__, __LINE__, "Called G4GammaNuclearReaction for particle other than gamma"); } return theModel.ApplyYourself(aTrack, aTargetNucleus); } diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4PionMinusNuclearAtRestChips.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4PionMinusNuclearAtRestChips.hh index cc49ff93f0..4ad539c27f 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4PionMinusNuclearAtRestChips.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4PionMinusNuclearAtRestChips.hh @@ -71,7 +71,7 @@ AtRestDoIt(const G4Track& aTrack, const G4Step&aStep) { if(aTrack.GetDynamicParticle()->GetDefinition() != G4PionMinus::PionMinus()) { - G4Exception("Calling G4PionMinusNuclearAtRestChips with particle other than pi-!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Calling G4PionMinusNuclearAtRestChips with particle other than pi-!!!"); } // Create target diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4PionMinusNuclearReaction.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4PionMinusNuclearReaction.hh index ba6b52ce65..4381f89108 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4PionMinusNuclearReaction.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4PionMinusNuclearReaction.hh @@ -31,7 +31,8 @@ class G4PionMinusNuclearReaction : public G4HadronicInteraction { public: - G4VParticleChange * ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus); + virtual G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, + G4Nucleus& aTargetNucleus); private: G4ChiralInvariantPhaseSpace theModel; @@ -43,7 +44,7 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) { // if(aTrack.GetDynamicParticle()->GetDefinition() != G4PionMinus::PionMinusDefinition()) // { -// G4Exception("Called G4PionMinusNuclearReaction for particle other than PionMinus"); +// throw G4HadronicException(__FILE__, __LINE__, "Called G4PionMinusNuclearReaction for particle other than PionMinus"); // } return theModel.ApplyYourself(aTrack, aTargetNucleus); } diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ProtonAntiProtonAtRestChips.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ProtonAntiProtonAtRestChips.hh index 901bcba236..cb39652133 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ProtonAntiProtonAtRestChips.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ProtonAntiProtonAtRestChips.hh @@ -84,11 +84,11 @@ AtRestDoIt(const G4Track& aTrack, const G4Step&aStep) // in the long haul. @@@@@@ if(aTrack.GetDynamicParticle()->GetDefinition() != G4AntiProton::AntiProton()) { - G4Exception("Calling G4ProtonAntiProtonAtRestChips with particle other than p-bar!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Calling G4ProtonAntiProtonAtRestChips with particle other than p-bar!!!"); } if(aTargetNucleus.GetZ() != 1) { - G4Exception("Calling G4ProtonAntiProtonAtRestChips for target other than Hydrogen!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Calling G4ProtonAntiProtonAtRestChips for target other than Hydrogen!!!"); } // Call chips diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ProtonAntiProtonReaction.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ProtonAntiProtonReaction.hh index 2fb9edf85c..7511ce1a78 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ProtonAntiProtonReaction.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4ProtonAntiProtonReaction.hh @@ -31,7 +31,8 @@ class G4ProtonAntiProtonReaction : public G4HadronicInteraction { public: - G4VParticleChange * ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus); + virtual G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, + G4Nucleus& aTargetNucleus); private: G4ChiralInvariantPhaseSpace theModel; @@ -43,11 +44,11 @@ ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus) { if(aTrack.GetDynamicParticle()->GetDefinition() != G4AntiProton::AntiProton()) { - G4Exception("Calling G4ProtonAntiProtonReaction with particle other than p-bar!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Calling G4ProtonAntiProtonReaction with particle other than p-bar!!!"); } if(aTargetNucleus.GetZ() != 1) { - G4Exception("Calling G4ProtonAntiProtonReaction for target other than Hydrogen!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Calling G4ProtonAntiProtonReaction for target other than Hydrogen!!!"); } return theModel.ApplyYourself(aTrack, aTargetNucleus); } diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4StringChipsInterface.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4StringChipsInterface.hh index 4bf2e1cf75..e6485ee412 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4StringChipsInterface.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4StringChipsInterface.hh @@ -30,7 +30,7 @@ class G4StringChipsInterface : public G4VIntraNuclearTransportModel { public: G4StringChipsInterface(); - virtual G4VParticleChange* ApplyYourself(const G4Track& aTrack, + virtual G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& theNucleus); virtual G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4StringChipsParticleLevelInterface.hh b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4StringChipsParticleLevelInterface.hh index a377c3f0a4..3703b997aa 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4StringChipsParticleLevelInterface.hh +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4StringChipsParticleLevelInterface.hh @@ -30,7 +30,7 @@ class G4StringChipsParticleLevelInterface : public G4VIntraNuclearTransportModel { public: G4StringChipsParticleLevelInterface(); - virtual G4VParticleChange* ApplyYourself(const G4Track& aTrack, + virtual G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& theNucleus); virtual G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, diff --git a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4StringChipsInterface.cc b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4StringChipsInterface.cc index 9f4fe53715..542f48e95f 100644 --- a/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4StringChipsInterface.cc +++ b/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4StringChipsInterface.cc @@ -39,8 +39,8 @@ G4StringChipsInterface::G4StringChipsInterface() // theEnergyLossPerFermi = 1.*GeV; } -G4VParticleChange* G4StringChipsInterface:: -ApplyYourself(const G4Track& aTrack, G4Nucleus& theNucleus) +G4HadFinalState* G4StringChipsInterface:: +ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& theNucleus) { return theModel.ApplyYourself(aTrack, theNucleus); } @@ -51,7 +51,7 @@ Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus) // Protection for non physical conditions if(theSecondaries->size() == 1) - G4Exception("G4StringChipsInterface: Only one particle from String models!"); + throw G4HadronicException(__FILE__, __LINE__, "G4StringChipsInterface: Only one particle from String models!"); // Calculate the mean energy lost G4Pair theImpact = theNucleus->RefetchImpactXandY(); @@ -260,7 +260,8 @@ Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus) // Chips expects all in target rest frame, along z. - G4QCHIPSWorld aWorld(nop); // Create CHIPS World of nop particles + // G4QCHIPSWorld aWorld(nop); // Create CHIPS World of nop particles + G4QCHIPSWorld::Get()->GetParticles(nop); G4QHadronVector projHV; // target rest frame proj4Mom.boost(-1.*targ4Mom.boostVector()); @@ -283,7 +284,22 @@ Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus) if (particleCount!=0) { G4QEnvironment* pan= new G4QEnvironment(projHV, targetPDGCode); - output = pan->Fragment(); + try + { + output = pan->Fragment(); + } + catch(G4HadronicException & aR) + { + G4cerr << "Exception thrown passing through G4ChiralInvariantPhaseSpace "<Get4Momentum()<<" "<GetPDGCode()<SetMomentum(current4Mom.vect()); theFastResult->push_back(theFastSec); return theFastResult; -// G4Exception("G4StringChipsParticleLevelInterface: Only one particle from String models!"); +// throw G4HadronicException(__FILE__, __LINE__, "G4StringChipsParticleLevelInterface: Only one particle from String models!"); } // target properties needed in constructor of quasmon, and for boosting to @@ -347,12 +348,30 @@ Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus) G4QHadronVector * output = 0; if (particleCount!=0 && resA!=0) { - G4QCHIPSWorld aWorld(nop); // Create CHIPS World of nop particles + // G4QCHIPSWorld aWorld(nop); // Create CHIPS World of nop particles + G4QCHIPSWorld::Get()->GetParticles(nop); G4QEnvironment* pan= new G4QEnvironment(projHV, targetPDGCode); + try + { + output = pan->Fragment(); + } + catch(G4HadronicException & aR) + { + G4cerr << "Exception thrown passing through G4StringChipsParticleLevelInterface "<Get4Momentum()<<" "<GetPDGCode()<Fragment(); delete pan; } else @@ -451,17 +470,26 @@ Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus) G4cout << "Particle code produced = "<< pdgCode <operator[](particle)->Get4Momentum(); current4Mom.boost(targ4Mom.boostVector()); theSec->SetTotalEnergy(current4Mom.t()); theSec->SetMomentum(current4Mom.vect()); theResult->push_back(theSec); + } + else + { + G4cerr << G4endl<<"WARNING: "<GetPDGCharge()<<" " << theDefinition->GetPDGEncoding()<<" " - << current4Mom <operator[](particle)->Get4Momentum() <operator[](particle); diff --git a/source/processes/hadronic/models/coherent_elastic/GNUmakefile b/source/processes/hadronic/models/coherent_elastic/GNUmakefile index abb3ef2edd..cb141295d9 100644 --- a/source/processes/hadronic/models/coherent_elastic/GNUmakefile +++ b/source/processes/hadronic/models/coherent_elastic/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2001/10/11 08:53:58 fjones Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:19 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -20,6 +20,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/models/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include/ \ -I$(G4BASE)/particles/management/include \ diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4LEnp.hh b/source/processes/hadronic/models/coherent_elastic/include/G4LEnp.hh index be9dcf2582..9f28ff979d 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4LEnp.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4LEnp.hh @@ -57,8 +57,8 @@ class G4LEnp : public G4HadronicInteraction ~G4LEnp(); - G4VParticleChange* ApplyYourself(const G4Track& aTrack, - G4Nucleus& targetNucleus); + G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, + G4Nucleus& targetNucleus); private: diff --git a/source/processes/hadronic/models/coherent_elastic/include/G4LEpp.hh b/source/processes/hadronic/models/coherent_elastic/include/G4LEpp.hh index 9ebe5f3b99..a5331e20b9 100644 --- a/source/processes/hadronic/models/coherent_elastic/include/G4LEpp.hh +++ b/source/processes/hadronic/models/coherent_elastic/include/G4LEpp.hh @@ -56,8 +56,8 @@ class G4LEpp : public G4HadronicInteraction ~G4LEpp(); - G4VParticleChange* ApplyYourself(const G4Track& aTrack, - G4Nucleus& targetNucleus); + G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, + G4Nucleus& targetNucleus); void SetCoulombEffects(G4int State); diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4LEnp.cc b/source/processes/hadronic/models/coherent_elastic/src/G4LEnp.cc index cefe21600b..64cf7a1fbf 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4LEnp.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4LEnp.cc @@ -47,22 +47,21 @@ G4LEnp::G4LEnp() : G4LEnp::~G4LEnp() { - // theParticleChange.Clear(); + theParticleChange.Clear(); } -G4VParticleChange* -G4LEnp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) +G4HadFinalState* +G4LEnp::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& targetNucleus) { - theParticleChange.Initialize(aTrack); - - const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + theParticleChange.Clear(); + const G4HadProjectile* aParticle = &aTrack; G4double P = aParticle->GetTotalMomentum(); - G4double Px = aParticle->GetMomentum().x(); - G4double Py = aParticle->GetMomentum().y(); - G4double Pz = aParticle->GetMomentum().z(); + G4double Px = aParticle->Get4Momentum().x(); + G4double Py = aParticle->Get4Momentum().y(); + G4double Pz = aParticle->Get4Momentum().z(); G4double ek = aParticle->GetKineticEnergy(); - G4ThreeVector theInitial = aParticle->GetMomentum(); + G4ThreeVector theInitial = aParticle->Get4Momentum().vect(); if (verboseLevel > 1) { G4double E = aParticle->GetTotalEnergy(); @@ -277,7 +276,7 @@ G4LEnp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) PB[4] = (PA[4] - BETPA) * BETA[4]; G4DynamicParticle* newP = new G4DynamicParticle; - newP->SetDefinition(aParticle->GetDefinition()); + newP->SetDefinition(const_cast(aParticle->GetDefinition())); newP->SetMomentum(G4ThreeVector(PB[1], PB[2], PB[3])); //The target particle... @@ -314,7 +313,6 @@ G4LEnp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) // charge symmetry.... if(G4UniformRand()<.5) { - theParticleChange.SetNumberOfSecondaries(1); theParticleChange.SetMomentumChange(newP->GetMomentumDirection()); theParticleChange.SetEnergyChange(newP->GetKineticEnergy()); delete newP; @@ -325,8 +323,7 @@ G4LEnp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) } else { - theParticleChange.SetNumberOfSecondaries(2); - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); G4DynamicParticle * pA = new G4DynamicParticle; pA->SetDefinition(targetParticle->GetDefinition()); pA->SetMomentum(newP->GetMomentum()); diff --git a/source/processes/hadronic/models/coherent_elastic/src/G4LEpp.cc b/source/processes/hadronic/models/coherent_elastic/src/G4LEpp.cc index 3ca18c1848..99b073812e 100644 --- a/source/processes/hadronic/models/coherent_elastic/src/G4LEpp.cc +++ b/source/processes/hadronic/models/coherent_elastic/src/G4LEpp.cc @@ -71,19 +71,18 @@ G4LEpp::SetCoulombEffects(G4int State) } -G4VParticleChange* -G4LEpp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) +G4HadFinalState* +G4LEpp::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& targetNucleus) { - theParticleChange.Initialize(aTrack); - - const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + theParticleChange.Clear(); + const G4HadProjectile* aParticle = &aTrack; G4double P = aParticle->GetTotalMomentum(); - G4double Px = aParticle->GetMomentum().x(); - G4double Py = aParticle->GetMomentum().y(); - G4double Pz = aParticle->GetMomentum().z(); + G4double Px = aParticle->Get4Momentum().x(); + G4double Py = aParticle->Get4Momentum().y(); + G4double Pz = aParticle->Get4Momentum().z(); G4double ek = aParticle->GetKineticEnergy(); - G4ThreeVector theInitial = aParticle->GetMomentum(); + G4ThreeVector theInitial = aParticle->Get4Momentum().vect(); if (verboseLevel > 1) { G4double E = aParticle->GetTotalEnergy(); @@ -299,7 +298,7 @@ G4LEpp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) PB[4] = (PA[4] - BETPA) * BETA[4]; G4DynamicParticle* newP = new G4DynamicParticle; - newP->SetDefinition(aParticle->GetDefinition()); + newP->SetDefinition(const_cast(aParticle->GetDefinition()) ); newP->SetMomentum(G4ThreeVector(PB[1], PB[2], PB[3])); @@ -338,7 +337,6 @@ G4LEpp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) } // if (theta < pi/2.) { - theParticleChange.SetNumberOfSecondaries(1); // G4double p = newP->GetMomentum().mag(); // G4ThreeVector m = newP->GetMomentum(); // if (p > DBL_MIN) @@ -346,8 +344,7 @@ G4LEpp::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) // else // theParticleChange.SetMomentumChange(0., 0., 0.); - theParticleChange.SetMomentumDirectionChange( - newP->GetMomentumDirection()); + theParticleChange.SetMomentumChange( newP->GetMomentumDirection()); theParticleChange.SetEnergyChange(newP->GetKineticEnergy()); delete newP; diff --git a/source/processes/hadronic/models/de_excitation/GNUmakefile b/source/processes/hadronic/models/de_excitation/GNUmakefile new file mode 100644 index 0000000000..95a987108d --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/GNUmakefile @@ -0,0 +1,33 @@ +# -------------------------------------------------------------- +# GNUmakefile for chips library. HPW 20-Nov-99 +# -------------------------------------------------------------- + +name := G4hadronic_deex + + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +SUBDIRS = handler +SUBDIRS += management +SUBDIRS += evaporation +SUBDIRS += gem_evaporation +SUBDIRS += photon_evaporation +SUBDIRS += fission +SUBDIRS += fermi_breakup +SUBDIRS += multifragmentation +SUBDIRS += util + + +SUBLIBS = G4hadronic_deex_handler +SUBLIBS += G4hadronic_deex_management +SUBLIBS += G4hadronic_deex_evaporation +SUBLIBS += G4hadronic_deex_gem_evaporation +SUBLIBS += G4hadronic_deex_photon_evaporation +SUBLIBS += G4hadronic_deex_fission +SUBLIBS += G4hadronic_deex_fermi_breakup +SUBLIBS += G4hadronic_deex_multifagmentation +SUBLIBS += G4hadronic_deex_util + +include $(G4INSTALL)/config/globlib.gmk diff --git a/source/processes/hadronic/models/generator/de_excitation/History.icm b/source/processes/hadronic/models/de_excitation/History.icm similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/History.icm rename to source/processes/hadronic/models/de_excitation/History.icm diff --git a/source/processes/hadronic/models/generator/kinetic_model/GNUmakefile b/source/processes/hadronic/models/de_excitation/evaporation/GNUmakefile similarity index 66% rename from source/processes/hadronic/models/generator/kinetic_model/GNUmakefile rename to source/processes/hadronic/models/de_excitation/evaporation/GNUmakefile index d41c2a6764..6fc48de32c 100644 --- a/source/processes/hadronic/models/generator/kinetic_model/GNUmakefile +++ b/source/processes/hadronic/models/de_excitation/evaporation/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.5 2003/06/18 13:26:22 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:19 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_kinetic +name := G4hadronic_deex_evaporation ifndef G4INSTALL G4INSTALL = ../../../../../.. @@ -11,26 +11,29 @@ endif include $(G4INSTALL)/config/architecture.gmk +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + CPPFLAGS += -I$(G4BASE)/global/management/include \ - -I$(G4BASE)/global/STLInterface/g4rw \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPNumerics/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/models/generator/pre_equilibrium/include \ - -I$(G4BASE)/processes/hadronic/models/generator/diffractive_string/include \ - -I$(G4BASE)/processes/hadronic/models/generator/scattering/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/gem_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fission/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ @@ -39,6 +42,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/materials/include - + + include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationChannel.hh index f02e217db7..ff0c189d7d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaEvaporationChannel.hh,v 1.5 2002/12/12 19:17:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaEvaporationChannel.hh,v 1.1 2003/08/26 18:30:40 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationProbability.hh index a2dc88a347..74765d5eea 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4AlphaEvaporationProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaEvaporationProbability.hh,v 1.8 2003/06/16 17:04:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaEvaporationProbability.hh,v 1.1 2003/08/26 18:30:40 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationChannel.hh index 9076e0eaa9..0282f42881 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronEvaporationChannel.hh,v 1.5 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronEvaporationChannel.hh,v 1.1 2003/08/26 18:30:41 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationProbability.hh index 6efe9ec9b1..e8163597da 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4DeuteronEvaporationProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronEvaporationProbability.hh,v 1.8 2003/06/16 17:04:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronEvaporationProbability.hh,v 1.1 2003/08/26 18:30:42 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh index 20ae0c3b0c..d62723889e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Evaporation.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4Evaporation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Evaporation.hh,v 1.14 2003/06/16 17:04:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Evaporation.hh,v 1.1 2003/08/26 18:30:42 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh similarity index 98% rename from source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh index 3e059457c7..e84713d7e3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationChannel.hh,v 1.10 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationChannel.hh,v 1.1 2003/08/26 18:30:43 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh index 8a4a32fdca..28956e70e6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationFactory.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationFactory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationFactory.hh,v 1.4 2003/06/16 17:04:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationFactory.hh,v 1.1 2003/08/26 18:30:44 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh index 64058bb43f..d40b7eccfb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4EvaporationProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationProbability.hh,v 1.10 2003/06/16 17:05:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationProbability.hh,v 1.1 2003/08/26 18:30:45 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationChannel.hh index e530cae839..7e2bd61e53 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3EvaporationChannel.hh,v 1.5 2002/12/12 19:17:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3EvaporationChannel.hh,v 1.1 2003/08/26 18:30:45 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationProbability.hh index 7e009d11f1..5fbbcb441a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3EvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4He3EvaporationProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3EvaporationProbability.hh,v 1.8 2003/06/16 17:05:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3EvaporationProbability.hh,v 1.1 2003/08/26 18:30:46 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationChannel.hh index 4b25710562..0a6925e482 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronEvaporationChannel.hh,v 1.5 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronEvaporationChannel.hh,v 1.1 2003/08/26 18:30:46 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationProbability.hh index 1e70a15338..ea558a4811 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4NeutronEvaporationProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronEvaporationProbability.hh,v 1.7 2003/06/16 17:05:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronEvaporationProbability.hh,v 1.1 2003/08/26 18:30:47 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationChannel.hh index aa49f8f5e1..60a9380ba8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonEvaporationChannel.hh,v 1.5 2002/12/12 19:17:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonEvaporationChannel.hh,v 1.1 2003/08/26 18:30:48 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationProbability.hh index c2d6efb87c..0257e71d9f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4ProtonEvaporationProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonEvaporationProbability.hh,v 1.8 2003/06/16 17:05:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonEvaporationProbability.hh,v 1.1 2003/08/26 18:30:49 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationChannel.hh index bd43d55c99..83ca3b2410 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonEvaporationChannel.hh,v 1.5 2002/12/12 19:17:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonEvaporationChannel.hh,v 1.1 2003/08/26 18:30:50 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationProbability.hh index 0b57df9185..8d1f447444 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonEvaporationProbability.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4TritonEvaporationProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonEvaporationProbability.hh,v 1.8 2003/06/16 17:06:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonEvaporationProbability.hh,v 1.1 2003/08/26 18:30:50 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh b/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh rename to source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh index 69a73109aa..bbb8571281 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporation.hh +++ b/source/processes/hadronic/models/de_excitation/evaporation/include/G4VEvaporation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEvaporation.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEvaporation.hh,v 1.1 2003/08/26 18:30:51 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) written from G4Evaporation.hh (May 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationChannel.cc index c48206b715..6e1db01869 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaEvaporationChannel.cc,v 1.6 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaEvaporationChannel.cc,v 1.2 2003/11/03 17:53:01 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4AlphaEvaporationChannel & G4AlphaEvaporationChannel::operator=(const G4AlphaEvaporationChannel & ) { - G4Exception("G4AlphaEvaporationChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaEvaporationChannel::operator= meant to not be accessable"); return *this; } G4AlphaEvaporationChannel::G4AlphaEvaporationChannel(const G4AlphaEvaporationChannel & ) : G4EvaporationChannel() { - G4Exception("G4AlphaEvaporationChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaEvaporationChannel::CopyConstructor meant to not be accessable"); } G4bool G4AlphaEvaporationChannel::operator==(const G4AlphaEvaporationChannel &right ) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationProbability.cc index 75ca24b0a6..a3d1b1de43 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4AlphaEvaporationProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaEvaporationProbability.cc,v 1.8 2003/06/16 17:06:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaEvaporationProbability.cc,v 1.2 2003/11/03 17:53:01 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -65,7 +65,7 @@ G4AlphaEvaporationProbability::G4AlphaEvaporationProbability() : G4AlphaEvaporationProbability::G4AlphaEvaporationProbability(const G4AlphaEvaporationProbability &): G4EvaporationProbability() { - G4Exception("G4AlphaEvaporationProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaEvaporationProbability::copy_constructor meant to not be accessable"); } @@ -74,7 +74,7 @@ G4AlphaEvaporationProbability::G4AlphaEvaporationProbability(const G4AlphaEvapor const G4AlphaEvaporationProbability & G4AlphaEvaporationProbability:: operator=(const G4AlphaEvaporationProbability &) { - G4Exception("G4AlphaEvaporationProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaEvaporationProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationChannel.cc index 1f76d00443..4e372bb423 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronEvaporationChannel.cc,v 1.6 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronEvaporationChannel.cc,v 1.2 2003/11/03 17:53:01 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4DeuteronEvaporationChannel & G4DeuteronEvaporationChannel::operator=(const G4DeuteronEvaporationChannel & ) { - G4Exception("G4DeuteronEvaporationChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronEvaporationChannel::operator= meant to not be accessable"); return *this; } G4DeuteronEvaporationChannel::G4DeuteronEvaporationChannel(const G4DeuteronEvaporationChannel & ) : G4EvaporationChannel() { - G4Exception("G4DeuteronEvaporationChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronEvaporationChannel::CopyConstructor meant to not be accessable"); } G4bool G4DeuteronEvaporationChannel::operator==(const G4DeuteronEvaporationChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationProbability.cc index e44bafbb65..392229ee9b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4DeuteronEvaporationProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronEvaporationProbability.cc,v 1.8 2003/06/16 17:06:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronEvaporationProbability.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -78,7 +78,7 @@ G4DeuteronEvaporationProbability::G4DeuteronEvaporationProbability() : } G4DeuteronEvaporationProbability::G4DeuteronEvaporationProbability(const G4DeuteronEvaporationProbability &) : G4EvaporationProbability() { - G4Exception("G4DeuteronEvaporationProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronEvaporationProbability::copy_constructor meant to not be accessable"); } @@ -87,7 +87,7 @@ G4DeuteronEvaporationProbability::G4DeuteronEvaporationProbability(const G4Deute const G4DeuteronEvaporationProbability & G4DeuteronEvaporationProbability:: operator=(const G4DeuteronEvaporationProbability &) { - G4Exception("G4DeuteronEvaporationProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronEvaporationProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc index 145451d08b..ebc41ccb47 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Evaporation.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4Evaporation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Evaporation.cc,v 1.16 2003/06/25 10:19:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Evaporation.cc,v 1.3 2003/11/04 11:24:24 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -30,9 +30,9 @@ #include "G4Evaporation.hh" #include "G4EvaporationFactory.hh" #include "G4EvaporationGEMFactory.hh" +#include "G4HadronicException.hh" #include - G4Evaporation::G4Evaporation() { theChannelFactory = new G4EvaporationFactory(); @@ -41,7 +41,7 @@ G4Evaporation::G4Evaporation() G4Evaporation::G4Evaporation(const G4Evaporation &) : G4VEvaporation() { - G4Exception("G4Evaporation::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4Evaporation::copy_constructor meant to not be accessable."); } @@ -53,7 +53,7 @@ G4Evaporation::~G4Evaporation() const G4Evaporation & G4Evaporation::operator=(const G4Evaporation &) { - G4Exception("G4Evaporation::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4Evaporation::operator= meant to not be accessable."); return *this; } @@ -157,7 +157,7 @@ G4FragmentVector * G4Evaporation::BreakItUp(const G4Fragment &theNucleus) if( j >= TotNumberOfChannels ) { - G4Exception( "G4Evaporation::BreakItUp: Can't define emission probability of the channels!" ); + throw G4HadronicException(__FILE__, __LINE__, "G4Evaporation::BreakItUp: Can't define emission probability of the channels!" ); } else { diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc index 9cca4bbeaa..fd85216c52 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationChannel.cc,v 1.17 2003/06/25 14:47:27 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationChannel.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -87,12 +87,12 @@ G4EvaporationChannel::~G4EvaporationChannel() G4EvaporationChannel::G4EvaporationChannel(const G4EvaporationChannel & ) : G4VEvaporationChannel() { - G4Exception("G4EvaporationChannel::copy_costructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationChannel::copy_costructor meant to not be accessable"); } const G4EvaporationChannel & G4EvaporationChannel::operator=(const G4EvaporationChannel & ) { - G4Exception("G4EvaporationChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationChannel::operator= meant to not be accessable"); return *this; } @@ -254,7 +254,7 @@ G4double G4EvaporationChannel::CalcKineticEnergy(void) // in the probability for fragment emisson { if (MaximalKineticEnergy < 0.0) - G4Exception("G4EvaporationChannel::CalcKineticEnergy: maximal kinetic energy is less than 0"); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationChannel::CalcKineticEnergy: maximal kinetic energy is less than 0"); G4double Rb = 4.0*theLevelDensityPtr->LevelDensityParameter(AResidual+A,ZResidual+Z,MaximalKineticEnergy)* MaximalKineticEnergy; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc index 2ed66baea9..0d59a41861 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationFactory.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationFactory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationFactory.cc,v 1.4 2003/06/16 17:06:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationFactory.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -44,21 +44,21 @@ const G4EvaporationFactory & G4EvaporationFactory::operator=(const G4EvaporationFactory & ) { - G4Exception("G4EvaporationFactory::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationFactory::operator= meant to not be accessable."); return *this; } G4bool G4EvaporationFactory::operator==(const G4EvaporationFactory & ) const { - G4Exception("G4EvaporationFactory::operator== meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationFactory::operator== meant to not be accessable."); return false; } G4bool G4EvaporationFactory::operator!=(const G4EvaporationFactory & ) const { - G4Exception("G4EvaporationFactory::operator!= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationFactory::operator!= meant to not be accessable."); return true; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc index e9bb0a620d..0354cec777 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4EvaporationProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationProbability.cc,v 1.10 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationProbability.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -36,7 +36,7 @@ G4EvaporationProbability::G4EvaporationProbability(const G4EvaporationProbability &) : G4VEmissionProbability() { - G4Exception("G4EvaporationProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationProbability::copy_constructor meant to not be accessable"); } @@ -45,7 +45,7 @@ G4EvaporationProbability::G4EvaporationProbability(const G4EvaporationProbabilit const G4EvaporationProbability & G4EvaporationProbability:: operator=(const G4EvaporationProbability &) { - G4Exception("G4EvaporationProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationChannel.cc index 9322fa0177..83932268b4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3EvaporationChannel.cc,v 1.6 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3EvaporationChannel.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4He3EvaporationChannel & G4He3EvaporationChannel::operator=(const G4He3EvaporationChannel & ) { - G4Exception("G4He3EvaporationChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He3EvaporationChannel::operator= meant to not be accessable"); return *this; } G4He3EvaporationChannel::G4He3EvaporationChannel(const G4He3EvaporationChannel & ) : G4EvaporationChannel() { - G4Exception("G4He3EvaporationChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He3EvaporationChannel::CopyConstructor meant to not be accessable"); } G4bool G4He3EvaporationChannel::operator==(const G4He3EvaporationChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc index df7d25eaeb..d4d4914d96 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3EvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4He3EvaporationProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3EvaporationProbability.cc,v 1.8 2003/06/16 17:06:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3EvaporationProbability.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -61,7 +61,7 @@ G4He3EvaporationProbability::G4He3EvaporationProbability() : G4He3EvaporationProbability::G4He3EvaporationProbability(const G4He3EvaporationProbability &) : G4EvaporationProbability() { - G4Exception("G4He3EvaporationProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He3EvaporationProbability::copy_constructor meant to not be accessable"); } @@ -70,7 +70,7 @@ G4He3EvaporationProbability::G4He3EvaporationProbability(const G4He3EvaporationP const G4He3EvaporationProbability & G4He3EvaporationProbability:: operator=(const G4He3EvaporationProbability &) { - G4Exception("G4He3EvaporationProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He3EvaporationProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationChannel.cc index b9acd8c380..d507d537b7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronEvaporationChannel.cc,v 1.6 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronEvaporationChannel.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4NeutronEvaporationChannel & G4NeutronEvaporationChannel::operator=(const G4NeutronEvaporationChannel & ) { - G4Exception("G4NeutronEvaporationChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronEvaporationChannel::operator= meant to not be accessable"); return *this; } G4NeutronEvaporationChannel::G4NeutronEvaporationChannel(const G4NeutronEvaporationChannel & ) : G4EvaporationChannel() { - G4Exception("G4NeutronEvaporationChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronEvaporationChannel::CopyConstructor meant to not be accessable"); } G4bool G4NeutronEvaporationChannel::operator==(const G4NeutronEvaporationChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc index 3b1774b44c..6688ee09c1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4NeutronEvaporationProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronEvaporationProbability.cc,v 1.8 2003/06/16 17:06:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronEvaporationProbability.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -90,7 +90,7 @@ G4NeutronEvaporationProbability::G4NeutronEvaporationProbability() : G4NeutronEvaporationProbability::G4NeutronEvaporationProbability(const G4NeutronEvaporationProbability &) : G4EvaporationProbability() { - G4Exception("G4NeutronEvaporationProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronEvaporationProbability::copy_constructor meant to not be accessable"); } @@ -99,7 +99,7 @@ G4NeutronEvaporationProbability::G4NeutronEvaporationProbability(const G4Neutron const G4NeutronEvaporationProbability & G4NeutronEvaporationProbability:: operator=(const G4NeutronEvaporationProbability &) { - G4Exception("G4NeutronEvaporationProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronEvaporationProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationChannel.cc index da2777fb2a..01bfe2e87c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonEvaporationChannel.cc,v 1.6 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonEvaporationChannel.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4ProtonEvaporationChannel & G4ProtonEvaporationChannel::operator=(const G4ProtonEvaporationChannel & ) { - G4Exception("G4ProtonEvaporationChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonEvaporationChannel::operator= meant to not be accessable"); return *this; } G4ProtonEvaporationChannel::G4ProtonEvaporationChannel(const G4ProtonEvaporationChannel & ) : G4EvaporationChannel() { - G4Exception("G4ProtonEvaporationChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonEvaporationChannel::CopyConstructor meant to not be accessable"); } G4bool G4ProtonEvaporationChannel::operator==(const G4ProtonEvaporationChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc index ec21516b12..87b60d6e6a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4ProtonEvaporationProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonEvaporationProbability.cc,v 1.8 2003/06/16 17:06:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonEvaporationProbability.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -81,13 +81,13 @@ G4ProtonEvaporationProbability::G4ProtonEvaporationProbability() : G4ProtonEvaporationProbability::G4ProtonEvaporationProbability(const G4ProtonEvaporationProbability &) : G4EvaporationProbability() { - G4Exception("G4ProtonEvaporationProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonEvaporationProbability::copy_constructor meant to not be accessable"); } const G4ProtonEvaporationProbability & G4ProtonEvaporationProbability:: operator=(const G4ProtonEvaporationProbability &) { - G4Exception("G4ProtonEvaporationProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonEvaporationProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationChannel.cc index c0d0768659..58749a6be0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonEvaporationChannel.cc,v 1.6 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonEvaporationChannel.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -34,13 +34,13 @@ const G4TritonEvaporationChannel & G4TritonEvaporationChannel:: operator=(const G4TritonEvaporationChannel & ) { - G4Exception("G4TritonEvaporationChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonEvaporationChannel::operator= meant to not be accessable"); return *this; } G4TritonEvaporationChannel::G4TritonEvaporationChannel(const G4TritonEvaporationChannel & ) : G4EvaporationChannel() { - G4Exception("G4TritonEvaporationChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonEvaporationChannel::CopyConstructor meant to not be accessable"); } G4bool G4TritonEvaporationChannel::operator==(const G4TritonEvaporationChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc index 95927bb3e8..5647681fa3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonEvaporationProbability.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4TritonEvaporationProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonEvaporationProbability.cc,v 1.8 2003/06/16 17:06:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonEvaporationProbability.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -68,7 +68,7 @@ G4TritonEvaporationProbability::G4TritonEvaporationProbability() : G4TritonEvaporationProbability::G4TritonEvaporationProbability(const G4TritonEvaporationProbability &) : G4EvaporationProbability() { - G4Exception("G4TritonEvaporationProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonEvaporationProbability::copy_constructor meant to not be accessable"); } @@ -77,7 +77,7 @@ G4TritonEvaporationProbability::G4TritonEvaporationProbability(const G4TritonEva const G4TritonEvaporationProbability & G4TritonEvaporationProbability:: operator=(const G4TritonEvaporationProbability &) { - G4Exception("G4TritonEvaporationProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonEvaporationProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc b/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc similarity index 84% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc rename to source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc index a757721865..7611549d37 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporation.cc +++ b/source/processes/hadronic/models/de_excitation/evaporation/src/G4VEvaporation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEvaporation.cc,v 1.7 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEvaporation.cc,v 1.3 2003/11/04 11:24:33 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) writen from G4Evaporation.cc (May 1998) @@ -30,11 +30,11 @@ #include "G4VEvaporation.hh" - +#include "G4HadronicException.hh" G4VEvaporation::G4VEvaporation(const G4VEvaporation &) { - G4Exception("G4VEvaporation::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VEvaporation::copy_constructor meant to not be accessable"); } @@ -42,7 +42,7 @@ G4VEvaporation::G4VEvaporation(const G4VEvaporation &) const G4VEvaporation & G4VEvaporation::operator=(const G4VEvaporation &) { - G4Exception("G4VEvaporation::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VEvaporation::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/high_energy/GNUmakefile b/source/processes/hadronic/models/de_excitation/fermi_breakup/GNUmakefile similarity index 83% rename from source/processes/hadronic/models/generator/high_energy/GNUmakefile rename to source/processes/hadronic/models/de_excitation/fermi_breakup/GNUmakefile index 7e36bab897..706e518056 100644 --- a/source/processes/hadronic/models/generator/high_energy/GNUmakefile +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.2 2003/06/18 13:25:51 gcosmo Exp $ +# $Id: GNUmakefile,v 1.4 2003/12/02 12:22:03 larazb Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_HE_gen +name := G4hadronic_deex_fermi_breakup ifndef G4INSTALL G4INSTALL = ../../../../../.. @@ -11,6 +11,10 @@ endif include $(G4INSTALL)/config/architecture.gmk +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPNumerics/include \ @@ -19,12 +23,12 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ @@ -33,6 +37,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/materials/include - + + include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4B9FermiFragment.hh similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4B9FermiFragment.hh index e2a0d91d48..ceed64c7a9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B9FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4B9FermiFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B9FermiFragment.hh,v 1.6 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B9FermiFragment.hh,v 1.1 2003/08/26 18:34:10 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -31,16 +31,13 @@ #define G4B9FermiFragment_h 1 #include "G4UnstableFermiFragment.hh" -#include "G4IonTable.hh" class G4B9FermiFragment : public G4UnstableFermiFragment { public: - G4B9FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE): - G4UnstableFermiFragment(anA,aZ,Pol,ExE) - {}; + G4B9FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE); - ~G4B9FermiFragment(); + virtual ~G4B9FermiFragment(); private: G4B9FermiFragment(); @@ -51,10 +48,6 @@ private: G4bool operator==(const G4B9FermiFragment &right) const; G4bool operator!=(const G4B9FermiFragment &right) const; -public: - - G4FragmentVector * GetFragment(const G4LorentzVector & aMomentum); - }; diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Be8FermiFragment.hh similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Be8FermiFragment.hh index cfbd0f1f7e..f04345da61 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be8FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Be8FermiFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be8FermiFragment.hh,v 1.6 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be8FermiFragment.hh,v 1.1 2003/08/26 18:34:18 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -31,16 +31,14 @@ #define G4Be8FermiFragment_h 1 #include "G4UnstableFermiFragment.hh" -#include "G4IonTable.hh" + class G4Be8FermiFragment : public G4UnstableFermiFragment { public: - G4Be8FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE): - G4UnstableFermiFragment(anA,aZ,Pol,ExE) - {}; + G4Be8FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE); - ~G4Be8FermiFragment(); + virtual ~G4Be8FermiFragment(); private: G4Be8FermiFragment(); @@ -51,9 +49,6 @@ private: G4bool operator==(const G4Be8FermiFragment &right) const; G4bool operator!=(const G4Be8FermiFragment &right) const; -public: - G4FragmentVector * GetFragment(const G4LorentzVector & aMomentum); - }; diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh index 48943f1a5b..d3c798aae8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiBreakUp.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiBreakUp.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FermiBreakUp.hh,v 1.8 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FermiBreakUp.hh,v 1.1 2003/08/26 18:34:12 lara Exp $ +// GEANT4 tag $Name: geant4-06-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 new file mode 100644 index 0000000000..7dd9adba13 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfiguration.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: G4FermiConfiguration.hh,v 1.2 2003/11/03 09:38:59 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1998) + +#ifndef G4FermiConfiguration_h +#define G4FermiConfiguration_h 1 + +#include + +#include "globals.hh" +#include "Randomize.hh" +#include "G4VFermiFragment.hh" +#include "G4ParticleMomentum.hh" +#include "G4ParticleTable.hh" +#include "G4IonTable.hh" +#include "G4Fragment.hh" + + +class G4FermiConfiguration +{ +public: + // Constructors + inline G4FermiConfiguration(); + inline ~G4FermiConfiguration(); + inline G4FermiConfiguration(const std::vector&); + inline G4FermiConfiguration(const G4FermiConfiguration &); + + // Operators + inline const G4FermiConfiguration & operator=(const G4FermiConfiguration &); + inline G4bool operator==(const G4FermiConfiguration &) const; + inline G4bool operator!=(const G4FermiConfiguration &) const; + + + inline void SetConfiguration(const std::vector&); + + G4double DecayProbability(const G4int A, const G4double TotalE); + + G4FragmentVector * GetFragments(const G4Fragment & theNucleus); + + inline G4int GetNumberOfFragments() const; + +private: + + G4double CoulombBarrier(void); + + G4ParticleMomentum IsotropicVector(const G4double Magnitude = 1.0); + + +private: + // Kappa = V/V_0 it is used in calculation of Coulomb energy + static const G4double Kappa; + + // Nuclear radius r0 (is a model parameter) + static const G4double r0; + + std::vector Configuration; + + struct DeleteFragment + { + template + void operator()(const T* ptr) const + { + delete ptr; + } + }; + +}; + +#include "G4FermiConfiguration.icc" + +#endif + + diff --git a/examples/advanced/composite_calorimeter/src/G4QGSCNeutronBuilder.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfiguration.icc similarity index 53% rename from examples/advanced/composite_calorimeter/src/G4QGSCNeutronBuilder.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfiguration.icc index 0f8e652b52..6c0ff30179 100644 --- a/examples/advanced/composite_calorimeter/src/G4QGSCNeutronBuilder.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfiguration.icc @@ -20,53 +20,61 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "G4QGSCNeutronBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" +// +// Hadronic Process: Nuclear De-excitations +// By V. Lara -G4QGSCNeutronBuilder:: -G4QGSCNeutronBuilder() -{ - theMin = 15*GeV; - theModel = new G4TheoFSGenerator; - theCascade = new G4StringChipsParticleLevelInterface; - theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); -} -G4QGSCNeutronBuilder:: -~G4QGSCNeutronBuilder() -{ - delete theStringDecay; -} - -void G4QGSCNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +inline G4FermiConfiguration::G4FermiConfiguration() { } -void G4QGSCNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +inline G4FermiConfiguration::~G4FermiConfiguration() { } -void G4QGSCNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) + +inline G4FermiConfiguration::G4FermiConfiguration(const G4FermiConfiguration &right) + : Configuration(right.Configuration) { } -void G4QGSCNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) -{ - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + +inline G4FermiConfiguration::G4FermiConfiguration(const std::vector& conf) + : Configuration(conf) +{ } -// 2002 by J.P. Wellisch +inline const G4FermiConfiguration & G4FermiConfiguration:: +operator=(const G4FermiConfiguration & right) +{ + Configuration.clear(); + Configuration.reserve(right.Configuration.size()); + Configuration.insert(Configuration.begin(),right.Configuration.begin(),right.Configuration.end()); + return *this; +} + + +inline G4bool G4FermiConfiguration::operator==(const G4FermiConfiguration &right) const +{ + return (Configuration == right.Configuration); +} + +inline G4bool G4FermiConfiguration::operator!=(const G4FermiConfiguration &right) const +{ + return (Configuration != right.Configuration); +} + +inline void G4FermiConfiguration:: +SetConfiguration(const std::vector& conf) +{ + Configuration.clear(); + Configuration = conf; + return; +} + +inline G4int G4FermiConfiguration:: +GetNumberOfFragments() const +{ + return Configuration.size(); +} diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfigurationList.hh similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfigurationList.hh index 0018fb9c05..20f95cc6c5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfigurationList.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiConfigurationList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FermiConfigurationList.hh,v 1.9 2003/06/16 17:05:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FermiConfigurationList.hh,v 1.2 2003/11/20 09:46:23 jwellisc Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -33,7 +33,7 @@ #include "globals.hh" #include "G4FermiConfiguration.hh" #include "Randomize.hh" - +#include "G4FermiFragmentsPool.hh" class G4FermiConfigurationList { @@ -56,19 +56,17 @@ public: G4FermiConfiguration ChooseConfiguration(void); + G4FermiFragmentsPool & GetFragmentsPoolInstance(); private: enum {MaxNumOfFragments = 16}; - G4double TotNumOfConfigurations; // NumberOfFragments; - - G4double NumOfConfigurations[MaxNumOfFragments]; // NumberOfChannelsPerFragment[MaxNumOfFragments]; - std::vector NormalizedWeights; - std::vector Configurations; + std::vector Configurations; + }; diff --git a/examples/advanced/composite_calorimeter/include/G4PrecoNeutronBuilder.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragmentsPool.hh similarity index 51% rename from examples/advanced/composite_calorimeter/include/G4PrecoNeutronBuilder.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragmentsPool.hh index 6acc31bda6..0babc56759 100644 --- a/examples/advanced/composite_calorimeter/include/G4PrecoNeutronBuilder.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiFragmentsPool.hh @@ -20,45 +20,66 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4PrecoNeutronBuilder_h -#define G4PrecoNeutronBuilder_h 1 +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara -#include "globals.hh" -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VNeutronBuilder.hh" +#ifndef G4FermiFragmentsPool_hh +#define G4FermiFragmentsPool_hh -#include "G4PreCompoundModel.hh" -#include "G4ExcitationHandler.hh" -#include "G4NeutronInelasticCrossSection.hh" +#include "G4VFermiFragment.hh" +#include "G4StableFermiFragment.hh" +#include "G4B9FermiFragment.hh" +#include "G4Be8FermiFragment.hh" +#include "G4He5FermiFragment.hh" +#include "G4Li5FermiFragment.hh" -class G4PrecoNeutronBuilder : public G4VNeutronBuilder +#include +#include + +class G4FermiFragmentsPool { - public: - G4PrecoNeutronBuilder(); - virtual ~G4PrecoNeutronBuilder(); +public: + G4FermiFragmentsPool(); + ~G4FermiFragmentsPool(); - public: - 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; + G4int Count(const std::pair& az) + { + return GetMap().count(az); + } + + std::multimap, const G4VFermiFragment*, + std::less > >::iterator + LowerBound(const std::pair & az) + { + return GetMap().lower_bound(az); + } + std::multimap, const G4VFermiFragment*, + std::less > >::iterator + UpperBound(const std::pair & az) + { + return GetMap().upper_bound(az); + } + + +private: + G4FermiFragmentsPool(const G4FermiFragmentsPool&); + const G4FermiFragmentsPool & operator=(const G4FermiFragmentsPool&); + G4bool operator==(const G4FermiFragmentsPool&) const; + G4bool operator!=(const G4FermiFragmentsPool&) const; + + std::multimap, const G4VFermiFragment* , + std::less > > & + GetMap(); + + +private: + + static G4bool MapIsEmpty; + }; - -// 2002 by J.P. Wellisch - #endif diff --git a/source/visualization/OPACS/include/G4XoViewer.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiIntegerPartition.hh similarity index 61% rename from source/visualization/OPACS/include/G4XoViewer.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiIntegerPartition.hh index 93574f8619..a021a8bda0 100644 --- a/source/visualization/OPACS/include/G4XoViewer.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiIntegerPartition.hh @@ -21,46 +21,50 @@ // ******************************************************************** // // -// $Id: G4XoViewer.hh,v 1.5 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 -// Wo viewer - opens window, hard copy, etc. +// Hadronic Process: Nuclear De-excitations +// by V. Lara -#ifndef G4XOVIEWER_HH -#define G4XOVIEWER_HH -#if defined(G4VIS_BUILD_OPACS_DRIVER) || defined(G4VIS_USE_OPACS) +#ifndef G4FermiIntegerPartition_hh +#define G4FermiIntegerPartition_hh -#include -#include - -#include "G4VViewer.hh" +#define G4FermiIntegerPartition_debug 1 #include "globals.hh" +#include -class G4Xo; -class G4GoSceneHandler; +#ifdef G4FermiIntegerPartition_debug +#include +#endif -// Base class for various WoView classes. -class G4XoViewer: public G4VViewer { + +class G4FermiIntegerPartition +{ public: - G4XoViewer (G4GoSceneHandler& scene, const G4String& name = ""); - virtual ~G4XoViewer (); - void DrawView (); - void ShowView (); - OCamera GetCamera (); + inline G4FermiIntegerPartition(); + inline ~G4FermiIntegerPartition(); + inline G4FermiIntegerPartition(const G4FermiIntegerPartition&); + + inline const G4FermiIntegerPartition & operator=(const G4FermiIntegerPartition&); + G4bool operator==(const G4FermiIntegerPartition&); + G4bool operator!=(const G4FermiIntegerPartition&); + + inline void EnableNull(const G4bool v=true); + void Initialize(const G4int, const G4int); + G4bool Next(); + inline std::vector GetPartition() const; + private: - void ClearView (); - void FinishView (); - void SetView (); +#ifdef G4FermiIntegerPartition_debug + inline G4int GetSum(); + void TestPartition(); +#endif + private: - G4GoSceneHandler& fSceneHandler; // Graphics Scene for this view. - OCamera fGoCamera; - Widget fXoCamera; - Widget fShell; + G4int total; + G4bool enableNull; + std::vector partition; }; -#endif +#include "G4FermiIntegerPartition.icc" #endif diff --git a/source/geometry/solids/STEPinterface/include/G4VertexPointCreator.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiIntegerPartition.icc similarity index 53% rename from source/geometry/solids/STEPinterface/include/G4VertexPointCreator.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiIntegerPartition.icc index 40a688b598..3886da7e37 100644 --- a/source/geometry/solids/STEPinterface/include/G4VertexPointCreator.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiIntegerPartition.icc @@ -21,48 +21,68 @@ // ******************************************************************** // // -// $Id: G4VertexPointCreator.hh,v 1.5 2002/11/21 16:49:46 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// ---------------------------------------------------------------------- -// Class G4VertexPointCreator -// -// Class description: -// -// +// Hadronic Process: Nuclear De-excitations +// by V. Lara -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo -// ---------------------------------------------------------------------- -#ifndef G4VERTEXPOINTCREATOR_HH -#define G4VERTEXPOINTCREATOR_HH - -#include "G4GeometryCreator.hh" - -class G4VertexPointCreator: private G4GeometryCreator +inline G4FermiIntegerPartition::G4FermiIntegerPartition() + : total(0), enableNull(false) { - public: +} - // Constructor & destructor +inline G4FermiIntegerPartition::~G4FermiIntegerPartition() +{ +} - G4VertexPointCreator(); - ~G4VertexPointCreator(); +inline G4FermiIntegerPartition::G4FermiIntegerPartition(const G4FermiIntegerPartition& right) + : total(right.total), enableNull(right.enableNull), partition(right.partition) +{ +} - // Member functions - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Vertex_Point"; } - static G4VertexPointCreator GetInstance(); +inline const G4FermiIntegerPartition& +G4FermiIntegerPartition::operator=(const G4FermiIntegerPartition& right) +{ + total=right.total; + enableNull=right.enableNull; + partition=right.partition; + return *this; +} - // Members +inline G4bool G4FermiIntegerPartition:: +operator==(const G4FermiIntegerPartition& right) +{ + return (total == right.total && + enableNull == enableNull && + partition == right.partition); +} - private: +inline G4bool G4FermiIntegerPartition:: +operator!=(const G4FermiIntegerPartition& right) +{ + return (total != right.total || + enableNull != right.enableNull || + partition != right.partition); +} - static G4VertexPointCreator csc; -}; +inline std::vector G4FermiIntegerPartition:: +GetPartition() const +{ + return partition; +} + +inline void G4FermiIntegerPartition:: +EnableNull(const G4bool v) +{ + enableNull=v; + return; +} + +#ifdef G4FermiIntegerPartition_debug + +inline G4int G4FermiIntegerPartition::GetSum() +{ + return std::accumulate(partition.begin(), partition.end(), 0); +} #endif + diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/GeneralPhysics.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.hh similarity index 54% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/GeneralPhysics.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.hh index 794ac350f3..60fbbad258 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/GeneralPhysics.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.hh @@ -20,49 +20,53 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "GeneralPhysics.hh" +// Hadronic Process: Nuclear De-excitations +// by V. Lara -#include "globals.hh" -#include "G4ios.hh" -#include +#ifndef G4FermiPhaseSpaceDecay_hh +#define G4FermiPhaseSpaceDecay_hh -GeneralPhysics::GeneralPhysics(const G4String& name) - : G4VPhysicsConstructor(name) + +#include "G4LorentzVector.hh" +#include "G4ParticleMomentum.hh" +#include + +#include + + +#define G4RandGamma RandGamma + +class G4FermiPhaseSpaceDecay { -} +public: + inline G4FermiPhaseSpaceDecay(); + inline ~G4FermiPhaseSpaceDecay(); + + inline std::vector * + Decay(const G4double, const std::vector&) const; -GeneralPhysics::~GeneralPhysics() -{ -} +private: + inline G4FermiPhaseSpaceDecay(const G4FermiPhaseSpaceDecay&); + inline const G4FermiPhaseSpaceDecay & operator=(const G4FermiPhaseSpaceDecay &); + inline G4bool operator==(const G4FermiPhaseSpaceDecay&); + inline G4bool operator!=(const G4FermiPhaseSpaceDecay&); -#include "G4ParticleDefinition.hh" -#include "G4ProcessManager.hh" -// Bosons -#include "G4ChargedGeantino.hh" -#include "G4Geantino.hh" + inline G4double PtwoBody(G4double E, G4double P1, G4double P2) const; + + G4ParticleMomentum IsotropicVector(const G4double Magnitude = 1.0) const; -void GeneralPhysics::ConstructParticle() -{ - // pseudo-particles - G4Geantino::GeantinoDefinition(); - G4ChargedGeantino::ChargedGeantinoDefinition(); -} + inline G4double BetaKopylov(const G4int) const; -void GeneralPhysics::ConstructProcess() -{ - // Add Decay Process - theParticleIterator->reset(); - while( (*theParticleIterator)() ){ - G4ParticleDefinition* particle = theParticleIterator->value(); - G4ProcessManager* pmanager = particle->GetProcessManager(); - if (fDecayProcess.IsApplicable(*particle)) { - pmanager ->AddProcess(&fDecayProcess); - // set ordering for PostStepDoIt and AtRestDoIt - pmanager ->SetProcessOrdering(&fDecayProcess, idxPostStep); - pmanager ->SetProcessOrdering(&fDecayProcess, idxAtRest); - } - } -} + std::vector * + TwoBodyDecay(const G4double, const std::vector&) const; + std::vector * + NBodyDecay(const G4double, const std::vector&) const; -// 2002 by J.P. Wellisch + std::vector * + KopylovNBodyDecay(const G4double, const std::vector&) const; +}; + +#include "G4FermiPhaseSpaceDecay.icc" + +#endif 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 new file mode 100644 index 0000000000..cc4a18e8f5 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiPhaseSpaceDecay.icc @@ -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. * +// ******************************************************************** +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + +inline G4FermiPhaseSpaceDecay::G4FermiPhaseSpaceDecay() +{ +} + +inline G4FermiPhaseSpaceDecay::~G4FermiPhaseSpaceDecay() +{ +} + +inline G4FermiPhaseSpaceDecay::G4FermiPhaseSpaceDecay(const G4FermiPhaseSpaceDecay&) +{ + // This is meant to not be used +} + +inline const G4FermiPhaseSpaceDecay & +G4FermiPhaseSpaceDecay::operator=(const G4FermiPhaseSpaceDecay&) +{ + //This is menat to not be used + return *this; +} + +inline G4bool +G4FermiPhaseSpaceDecay::operator==(const G4FermiPhaseSpaceDecay&) +{ + // This is meant to not be used + return false; +} + +inline G4bool +G4FermiPhaseSpaceDecay::operator!=(const G4FermiPhaseSpaceDecay&) +{ + // This is meant to not be used + return true; +} + + +inline G4double +G4FermiPhaseSpaceDecay::PtwoBody(G4double E, G4double P1, G4double P2) const +{ + G4double P = (E+P1+P2)*(E+P1-P2)*(E-P1+P2)*(E-P1-P2)/(4.0*E*E); + if (P>0.0) return sqrt(P); + else return -1.0; +} + + +inline std::vector * G4FermiPhaseSpaceDecay:: +Decay(const G4double parent_mass, const std::vector& fragment_masses) const +{ + // if (fragment_masses.size() == 2) + // { + // return this->TwoBodyDecay(parent_mass,fragment_masses); + // } + // else return this->NBodyDecay(parent_mass,fragment_masses); + // else + // { + return this->KopylovNBodyDecay(parent_mass,fragment_masses); + // } +} + +inline G4double +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); + + return Y1/(Y1+Y2); +} diff --git a/source/visualization/OPACS/include/G4WoViewer.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiSplitter.hh similarity index 62% rename from source/visualization/OPACS/include/G4WoViewer.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiSplitter.hh index c73581daea..4d6310c6c3 100644 --- a/source/visualization/OPACS/include/G4WoViewer.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiSplitter.hh @@ -21,45 +21,47 @@ // ******************************************************************** // // -// $Id: G4WoViewer.hh,v 1.5 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 -// Wo viewer - opens window, hard copy, etc. +// Hadronic Process: Nuclear De-excitations +// by V. Lara -#ifndef G4WOVIEWER_HH -#define G4WOVIEWER_HH -#if defined(G4VIS_BUILD_OPACS_DRIVER) || defined(G4VIS_USE_OPACS) +#ifndef G4FermiSplitter_hh +#define G4FermiSplitter_hh -#include -#include -#include "G4VViewer.hh" -#include "globals.hh" +#include "G4VFermiFragment.hh" +#include "G4FermiFragmentsPool.hh" +#include -class G4GoSceneHandler; - -// Base class for various WoView classes. -class G4WoViewer: public G4VViewer { +class G4FermiSplitter +{ public: - G4WoViewer (G4GoSceneHandler& scene, const G4String& name = ""); - virtual ~G4WoViewer (); - void DrawView (); - void ShowView (); - OCamera GetCamera (); + inline G4FermiSplitter(G4FermiFragmentsPool*); + inline ~G4FermiSplitter(); + + inline G4FermiSplitter(const G4FermiSplitter&); + + inline const G4FermiSplitter& operator=(const G4FermiSplitter&); + inline G4bool operator==(const G4FermiSplitter&); + inline G4bool operator!=(const G4FermiSplitter&); + + G4int Initialize(const G4int a, const G4int z, const G4int n); + + inline G4int GetNumberOfSplits() const; + inline std::vector GetSplit(const G4int i); + private: - void ClearView (); - void FinishView (); - void SetView (); + inline G4FermiSplitter(); + private: - G4GoSceneHandler& fSceneHandler; // Graphics Scene for this view. - OCamera fGoCamera; - Widget fXoCamera; - Widget fShell; + + G4FermiFragmentsPool * theFragmentsPool; + G4int A; + G4int Z; + G4int K; + std::vector > splits; }; -#endif +#include "G4FermiSplitter.icc" #endif diff --git a/examples/advanced/composite_calorimeter/src/G4QGSPNeutronBuilder.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiSplitter.icc similarity index 54% rename from examples/advanced/composite_calorimeter/src/G4QGSPNeutronBuilder.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiSplitter.icc index 76262cda4c..a2c61f2212 100644 --- a/examples/advanced/composite_calorimeter/src/G4QGSPNeutronBuilder.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4FermiSplitter.icc @@ -20,55 +20,61 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "G4QGSPNeutronBuilder.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" - -G4QGSPNeutronBuilder:: -G4QGSPNeutronBuilder() -{ - theMin = 15*GeV; - theModel = new G4TheoFSGenerator; - theCascade = new G4GeneratorPrecompoundInterface; - thePreEquilib = new G4PreCompoundModel(&theHandler); - theCascade->SetDeExcitation(thePreEquilib); - theModel->SetTransport(theCascade); - theModel->SetHighEnergyGenerator(&theStringModel); - theStringDecay = new G4ExcitedStringDecay(&theFragmentation); - theStringModel.SetFragmentationModel(theStringDecay); -} - -G4QGSPNeutronBuilder:: -~G4QGSPNeutronBuilder() -{ - delete theStringDecay; -} - -void G4QGSPNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +inline G4FermiSplitter::G4FermiSplitter(G4FermiFragmentsPool* pool) + : theFragmentsPool(pool), A(0), Z(0), K(0) { } -void G4QGSPNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +inline G4FermiSplitter::G4FermiSplitter() + : theFragmentsPool(0), A(0), Z(0), K(0) +{ + // This is meant to not be accesable +} + +inline G4FermiSplitter::~G4FermiSplitter() { } -void G4QGSPNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +inline G4FermiSplitter::G4FermiSplitter(const G4FermiSplitter& right) + : A(right.A), Z(right.Z), K(right.K), splits(right.splits) { } -void G4QGSPNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) +inline const G4FermiSplitter& +G4FermiSplitter::operator=(const G4FermiSplitter& right) { - theModel->SetMinEnergy(theMin); - theModel->SetMaxEnergy(100*TeV); - aP.RegisterMe(theModel); - G4CrossSectionDataStore * theNStore; - theNStore = aP.GetCrossSectionDataStore(); - theNStore->AddDataSet(&theXSec); + A = right.A; + Z = right.Z; + K = right.Z; + splits = right.splits; + return *this; } -// 2002 by J.P. Wellisch +inline G4bool +G4FermiSplitter::operator==(const G4FermiSplitter& right) +{ + return (A == right.A && Z == right.Z && K == right.K && + splits == right.splits); +} + +inline G4bool +G4FermiSplitter::operator!=(const G4FermiSplitter& right) +{ + return (A != right.A || Z != right.Z || K != right.K || + splits != right.splits); +} + +inline G4int G4FermiSplitter::GetNumberOfSplits() const +{ + return splits.size(); +} + +inline std::vector G4FermiSplitter::GetSplit(const G4int i) +{ + if (i >= 0 && i < static_cast(splits.size())) return splits[i]; + else + { + std::vector dummy; + return dummy; + } +} diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4He5FermiFragment.hh similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4He5FermiFragment.hh index 6a00c5b1cc..9e71ea8f86 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He5FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4He5FermiFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He5FermiFragment.hh,v 1.6 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He5FermiFragment.hh,v 1.1 2003/08/26 18:34:11 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -31,14 +31,11 @@ #define G4He5FermiFragment_h 1 #include "G4UnstableFermiFragment.hh" -#include "G4IonTable.hh" class G4He5FermiFragment : public G4UnstableFermiFragment { public: - G4He5FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE): - G4UnstableFermiFragment(anA,aZ,Pol,ExE) - {}; + G4He5FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE); ~G4He5FermiFragment(); @@ -51,11 +48,6 @@ private: G4bool operator==(const G4He5FermiFragment &right) const; G4bool operator!=(const G4He5FermiFragment &right) const; -public: - - G4FragmentVector * GetFragment(const G4LorentzVector & aMomentum); - - }; diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Li5FermiFragment.hh similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Li5FermiFragment.hh index 40c3cb9af1..592a86a102 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li5FermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4Li5FermiFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li5FermiFragment.hh,v 1.6 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li5FermiFragment.hh,v 1.1 2003/08/26 18:34:19 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -31,14 +31,11 @@ #define G4Li5FermiFragment_h 1 #include "G4UnstableFermiFragment.hh" -#include "G4IonTable.hh" class G4Li5FermiFragment : public G4UnstableFermiFragment { public: - G4Li5FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE): - G4UnstableFermiFragment(anA,aZ,Pol,ExE) - {}; + G4Li5FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE); ~G4Li5FermiFragment(); @@ -51,11 +48,6 @@ private: G4bool operator==(const G4Li5FermiFragment &right) const; G4bool operator!=(const G4Li5FermiFragment &right) const; -public: - - G4FragmentVector * GetFragment(const G4LorentzVector & aMomentum); - - }; diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh index 99f69ba9ad..61e9b5dc54 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StableFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4StableFermiFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StableFermiFragment.hh,v 1.6 2002/12/12 19:17:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StableFermiFragment.hh,v 1.1 2003/08/26 18:34:16 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -35,11 +35,12 @@ class G4StableFermiFragment : public G4VFermiFragment { public: - G4StableFermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE): - G4VFermiFragment(anA,aZ,Pol,ExE) - {}; + G4StableFermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE) + : G4VFermiFragment(anA,aZ,Pol,ExE) + { + } - ~G4StableFermiFragment(); + virtual ~G4StableFermiFragment(); private: G4StableFermiFragment(); @@ -52,7 +53,7 @@ private: public: - G4FragmentVector * GetFragment(const G4LorentzVector & aMomentum); + virtual G4FragmentVector * GetFragment(const G4LorentzVector & aMomentum) const; }; diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh similarity index 82% rename from source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh index 591033a893..b47b0175b2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4UnstableFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4UnstableFermiFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4UnstableFermiFragment.hh,v 1.9 2003/06/16 17:06:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UnstableFermiFragment.hh,v 1.1 2003/08/26 18:34:17 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -30,22 +30,22 @@ #ifndef G4UnstableFermiFragment_h #define G4UnstableFermiFragment_h 1 -#include - #include "G4VFermiFragment.hh" #include "Randomize.hh" class G4UnstableFermiFragment : public G4VFermiFragment { public: - G4UnstableFermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE): - G4VFermiFragment(anA,aZ,Pol,ExE) - {}; - - ~G4UnstableFermiFragment(); + virtual ~G4UnstableFermiFragment(); protected: + G4UnstableFermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE) + : G4VFermiFragment(anA,aZ,Pol,ExE) + { + } + G4UnstableFermiFragment(); + private: G4UnstableFermiFragment(const G4UnstableFermiFragment &right); @@ -55,15 +55,13 @@ private: public: - std::deque * - FragmentsMomentum(G4double KinE, const G4int K, const G4double * Masses); + G4FragmentVector * GetFragment(const G4LorentzVector&) const; -private: - - G4double RNKSI(const G4int K); - - G4ParticleMomentum IsotropicVector(const G4double Magnitude = 1.0); +protected: + std::vector Masses; + std::vector Charges; + std::vector AtomNum; }; diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh index 9b17cd277a..bdde892a70 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiBreakUp.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiBreakUp.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VFermiBreakUp.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VFermiBreakUp.hh,v 1.1 2003/08/26 18:34:19 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh similarity index 79% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh rename to source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh index 04cf46506d..e8ec3e5022 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFermiFragment.hh +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/include/G4VFermiFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VFermiFragment.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VFermiFragment.hh,v 1.1 2003/08/26 18:34:20 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) @@ -60,16 +60,37 @@ private: public: - virtual G4FragmentVector * GetFragment(const G4LorentzVector & aMomentum) = 0; + virtual G4FragmentVector * GetFragment(const G4LorentzVector & aMomentum) const = 0; - G4int GetA(void) {return A;} - G4int GetZ(void) {return Z;} - G4int GetPolarization(void) {return Polarization;} - G4double GetExcitationEnergy(void) {return ExcitEnergy;} + G4int GetA(void) const + { + return A; + } + + G4int GetZ(void) const + { + return Z; + } + + G4int GetPolarization(void) const + { + return Polarization; + } - G4double GetFragmentMass(void){ - return G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(Z,A) + ExcitEnergy; - } + G4double GetExcitationEnergy(void) const + { + return ExcitEnergy; + } + + G4double GetFragmentMass(void) const + { + return G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(Z,A); + } + + G4double GetTotalEnergy(void) const + { + return this->GetFragmentMass() + this->GetExcitationEnergy(); + } protected: diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4B9FermiFragment.cc similarity index 51% rename from source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4B9FermiFragment.cc index 45e2409a88..155c594781 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B9FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4B9FermiFragment.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4B9FermiFragment.cc,v 1.10 2003/06/16 17:06:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B9FermiFragment.cc,v 1.5 2003/12/02 12:22:03 larazb Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4B9FermiFragment.hh" - +#include "G4IonTable.hh" +#include "G4HadronicException.hh" G4B9FermiFragment::G4B9FermiFragment() { @@ -36,7 +37,7 @@ G4B9FermiFragment::G4B9FermiFragment() G4B9FermiFragment::G4B9FermiFragment(const G4B9FermiFragment &) : G4UnstableFermiFragment() { - G4Exception("G4B9FermiFragment::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4B9FermiFragment::copy_constructor meant to not be accessable"); } @@ -47,7 +48,7 @@ G4B9FermiFragment::~G4B9FermiFragment() const G4B9FermiFragment & G4B9FermiFragment::operator=(const G4B9FermiFragment &) { - G4Exception("G4B9FermiFragment::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4B9FermiFragment::operator= meant to not be accessable"); return *this; } @@ -64,57 +65,24 @@ G4bool G4B9FermiFragment::operator!=(const G4B9FermiFragment &) const -G4FragmentVector * G4B9FermiFragment::GetFragment(const G4LorentzVector & aMomentum) - // B9 ----> alpha + alpha + proton +G4B9FermiFragment::G4B9FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE) + : G4UnstableFermiFragment(anA,aZ,Pol,ExE) { - const G4int NumSubFrag = 3; - G4double Masses[NumSubFrag]; - G4double Charges[NumSubFrag]; - G4double AtomNum[NumSubFrag]; + // B9 ----> alpha + alpha + proton - - Masses[0] = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(2,4); // alpha - Masses[1] = Masses[0]; // alpha - Masses[2] = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(1,1); // proton + G4double alpha_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(2,4); + G4double proton_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(1,1); - AtomNum[0] = 4; - AtomNum[1] = 4; - AtomNum[2] = 1; + Masses.push_back(alpha_mass); + Masses.push_back(alpha_mass); + Masses.push_back(proton_mass); + + AtomNum.push_back(4); + AtomNum.push_back(4); + AtomNum.push_back(1); + + Charges.push_back(2); + Charges.push_back(2); + Charges.push_back(1); - Charges[0] = 2; - Charges[1] = 2; - Charges[2] = 1; - - // G4double AvalKineticE = G4NucleiPropertiesTable::GetMassExcess(Z,A) + ExcitEnergy - // B9 - // G4NucleiPropertiesTable::GetMassExcess(1,1) - // proton - // 2.0*G4NucleiPropertiesTable::GetMassExcess(2,4); - G4double AvalKineticE = sqrt(aMomentum.e()*aMomentum.e() - - aMomentum.vect().mag2()) - // B9 - Masses[2] - // proton - 2.0*Masses[0]; - - - std::deque * SubFragsMomentum = - FragmentsMomentum(AvalKineticE, NumSubFrag,Masses); - - G4FragmentVector * theResult = new G4FragmentVector; - - for (G4int i = 0; i < NumSubFrag; i++) { - - // Lorentz boost - SubFragsMomentum->operator[](i)->boost(aMomentum.boostVector()); - - theResult->push_back(new G4Fragment(static_cast(AtomNum[i]), - static_cast(Charges[i]), - *(SubFragsMomentum->operator[](i)))); - } - - // SubFragsMomentum->clearAndDestroy(); - while (!SubFragsMomentum->empty()) { - delete SubFragsMomentum->back(); - SubFragsMomentum->pop_back(); - } - delete SubFragsMomentum; - - return theResult; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Be8FermiFragment.cc similarity index 54% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Be8FermiFragment.cc index c86047c554..79496d5e09 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be8FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Be8FermiFragment.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4Be8FermiFragment.cc,v 1.11 2003/06/16 17:06:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be8FermiFragment.cc,v 1.5 2003/12/02 12:22:03 larazb Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4Be8FermiFragment.hh" - +#include "G4IonTable.hh" +#include "G4HadronicException.hh" G4Be8FermiFragment::G4Be8FermiFragment() { @@ -36,7 +37,7 @@ G4Be8FermiFragment::G4Be8FermiFragment() G4Be8FermiFragment::G4Be8FermiFragment(const G4Be8FermiFragment &) : G4UnstableFermiFragment() { - G4Exception("G4Be8FermiFragment::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be8FermiFragment::copy_constructor meant to not be accessable"); } @@ -47,7 +48,7 @@ G4Be8FermiFragment::~G4Be8FermiFragment() const G4Be8FermiFragment & G4Be8FermiFragment::operator=(const G4Be8FermiFragment &) { - G4Exception("G4Be8FermiFragment::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be8FermiFragment::operator= meant to not be accessable"); return *this; } @@ -64,53 +65,19 @@ G4bool G4Be8FermiFragment::operator!=(const G4Be8FermiFragment &) const -G4FragmentVector * G4Be8FermiFragment::GetFragment(const G4LorentzVector & aMomentum) - // Be8 ----> alpha + alpha +G4Be8FermiFragment::G4Be8FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE) + : G4UnstableFermiFragment(anA,aZ,Pol,ExE) { - const G4int NumSubFrag = 2; - G4double Masses[NumSubFrag]; - G4double Charges[NumSubFrag]; - G4double AtomNum[NumSubFrag]; + // Be8 ----> alpha + alpha + G4double alpha_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(2,4); - - Masses[0] = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(2,4); // alpha - Masses[1] = Masses[0]; // alpha + Masses.push_back(alpha_mass); + Masses.push_back(alpha_mass); - AtomNum[0] = 4; - AtomNum[1] = 4; - - Charges[0] = 2; - Charges[1] = 2; - -// G4double AvalKineticE = G4NucleiPropertiesTable::GetMassExcess(Z,A) + ExcitEnergy - // Be8 -// 2.0*G4NucleiPropertiesTable::GetMassExcess(2,4); // alphas - G4double AvalKineticE = sqrt(aMomentum.e()*aMomentum.e() - - aMomentum.vect().mag2()) -// Be8 - 2.0*Masses[0]; // alphas - - - std::deque * SubFragsMomentum = - FragmentsMomentum(AvalKineticE, NumSubFrag,Masses); - - - G4FragmentVector * theResult = new G4FragmentVector; - - for (G4int i = 0; i < NumSubFrag; i++) { - - // Lorentz boost - SubFragsMomentum->operator[](i)->boost(aMomentum.boostVector()); - - theResult->push_back(new G4Fragment(static_cast(AtomNum[i]), - static_cast(Charges[i]), - *(SubFragsMomentum->operator[](i)))); - } - - // SubFragsMomentum->clearAndDestroy(); - while (!SubFragsMomentum->empty()) { - delete SubFragsMomentum->back(); - SubFragsMomentum->pop_back(); - } - delete SubFragsMomentum; - - return theResult; + AtomNum.push_back(4); + AtomNum.push_back(4); + + Charges.push_back(2); + Charges.push_back(2); + } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUp.cc similarity index 55% rename from source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUp.cc index 557db05785..71ac49188a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiBreakUp.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiBreakUp.cc @@ -21,14 +21,12 @@ // ******************************************************************** // // -// $Id: G4FermiBreakUp.cc,v 1.11 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4FermiBreakUp.hh" - +#include "G4HadronicException.hh" G4FermiBreakUp::G4FermiBreakUp() { @@ -36,7 +34,7 @@ G4FermiBreakUp::G4FermiBreakUp() G4FermiBreakUp::G4FermiBreakUp(const G4FermiBreakUp &) : G4VFermiBreakUp() { - G4Exception("G4FermiBreakUp::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FermiBreakUp::copy_constructor meant to not be accessable"); } @@ -47,65 +45,69 @@ G4FermiBreakUp::~G4FermiBreakUp() const G4FermiBreakUp & G4FermiBreakUp::operator=(const G4FermiBreakUp &) { - G4Exception("G4FermiBreakUp::operator= meant to not be accessable"); - return *this; + throw G4HadronicException(__FILE__, __LINE__, "G4FermiBreakUp::operator= meant to not be accessable"); + return *this; } G4bool G4FermiBreakUp::operator==(const G4FermiBreakUp &) const { - return false; + return false; } G4bool G4FermiBreakUp::operator!=(const G4FermiBreakUp &) const { - return true; + return true; } G4FragmentVector * G4FermiBreakUp::BreakItUp(const G4Fragment &theNucleus) { - // CHECK that Excitation Energy > 0 - if (theNucleus.GetExcitationEnergy() <= theNucleus.GetBindingEnergy()) { - G4FragmentVector * theResult = new G4FragmentVector; - theResult->push_back(new G4Fragment(theNucleus)); - return theResult; - } - - // Total energy of nucleus in nucleus rest frame - G4double TotalEnergyRF = theNucleus.GetExcitationEnergy() + - G4ParticleTable::GetParticleTable()->GetIonTable()-> - GetIonMass(static_cast(theNucleus.GetZ()),static_cast(theNucleus.GetA())); - - G4FermiConfigurationList theConfigurationList; - - - // Split the nucleus - G4bool Split = theConfigurationList.Initialize(static_cast(theNucleus.GetA()), - static_cast(theNucleus.GetZ()), - TotalEnergyRF); - if ( !Split ) { - G4FragmentVector * theResult = new G4FragmentVector; - theResult->push_back(new G4Fragment(theNucleus)); - - return theResult; - } - - // Chose a configuration - G4FermiConfiguration theConfiguration(theConfigurationList.ChooseConfiguration()); - - - // Get the fragments corresponding to chosen configuration. - G4FragmentVector * theResult = theConfiguration.GetFragments(theNucleus); -#ifdef PRECOMPOUND_TEST - for (G4FragmentVector::iterator i = theResult->begin(); i != theResult->end(); i++) + // CHECK that Excitation Energy > 0 + if (theNucleus.GetExcitationEnergy() <= 0) { - (*i)->SetCreatorModel("G4FermiBreakUp"); + G4FragmentVector * theResult = new G4FragmentVector; + theResult->push_back(new G4Fragment(theNucleus)); + return theResult; + } + + // Total energy of nucleus in nucleus rest frame + G4double TotalEnergyRF = theNucleus.GetMomentum().m(); + // G4double TotalEnergyRF = theNucleus.GetExcitationEnergy() + + // G4ParticleTable::GetParticleTable()->GetIonTable()-> + // GetIonMass(static_cast(theNucleus.GetZ()),static_cast(theNucleus.GetA())); + + + G4FermiConfigurationList theConfigurationList; + + + // Split the nucleus + G4bool Split = theConfigurationList.Initialize(static_cast(theNucleus.GetA()), + static_cast(theNucleus.GetZ()), + TotalEnergyRF); + if ( !Split ) + { + G4FragmentVector * theResult = new G4FragmentVector; + theResult->push_back(new G4Fragment(theNucleus)); + + return theResult; + } + + // Chose a configuration + G4FermiConfiguration theConfiguration(theConfigurationList.ChooseConfiguration()); + + + // Get the fragments corresponding to chosen configuration. + G4FragmentVector * theResult = theConfiguration.GetFragments(theNucleus); +#ifdef PRECOMPOUND_TEST + for (G4FragmentVector::iterator i = theResult->begin(); i != theResult->end(); i++) + { + (*i)->SetCreatorModel("G4FermiBreakUp"); } #endif - return theResult; - + return theResult; + } 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 new file mode 100644 index 0000000000..8036586ccc --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiConfiguration.cc @@ -0,0 +1,210 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4FermiConfiguration.cc,v 1.6 2003/11/24 13:11:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1998) +// +// + + +#include "G4FermiConfiguration.hh" +#include "G4FermiPhaseSpaceDecay.hh" +#include + +// Kappa = V/V_0 it is used in calculation of Coulomb energy +// Kappa is adimensional +const G4double G4FermiConfiguration::Kappa = 1.0; + +// r0 is the nuclear radius +const G4double G4FermiConfiguration::r0 = 1.3*fermi; + + +G4double G4FermiConfiguration::CoulombBarrier(void) +{ + // Calculates Coulomb Barrier (MeV) for given channel with K fragments. + const G4double Coef = (3./5.)*(elm_coupling/r0)*pow(1./(1.+Kappa), 1./3.); + + G4double SumA = 0; + G4double SumZ = 0; + G4double CoulombEnergy = 0.; + for (std::vector::iterator i = Configuration.begin(); + i != Configuration.end(); i++) + { + G4double z = static_cast((*i)->GetZ()); + G4double a = static_cast((*i)->GetA()); + CoulombEnergy += (z*z) / pow(a, 1./3.); + SumA += a; + SumZ += z; + } + CoulombEnergy -= SumZ*SumZ/pow(SumA, 1./3.); + return -Coef * CoulombEnergy; +} + + + + +G4double G4FermiConfiguration::DecayProbability(const G4int A, const G4double TotalE) + // Decay probability for a given channel with K fragments +{ + // A: Atomic Weight + // TotalE: Total energy of nucleus + + + G4double KineticEnergy = TotalE; // MeV + G4double ProdMass = 1.0; + G4double SumMass = 0.0; + G4double S_n = 1.0; + std::set combSet; + std::multiset combmSet; + + for (std::vector::iterator i = Configuration.begin(); + i != Configuration.end(); i++) + { + G4int a = (*i)->GetA(); + combSet.insert(a); + combmSet.insert(a); + G4double m = (*i)->GetFragmentMass(); + ProdMass *= m; + SumMass += m; + // Spin factor S_n + S_n *= (*i)->GetPolarization(); + KineticEnergy -= m + (*i)->GetExcitationEnergy(); + } + + // Check that there is enough energy to produce K fragments + if (KineticEnergy <= 0.0) return 0.0; + if ((KineticEnergy -= this->CoulombBarrier()) <= 0.0) return 0.0; + + + G4double MassFactor = ProdMass/SumMass; + MassFactor *= sqrt(MassFactor); + + // Number of fragments + G4int K = Configuration.size(); + + // This is the constant (doesn't depend on nucleus) part + const G4double ConstCoeff = pow(r0/hbarc,3.0)*Kappa*sqrt(2.0/pi)/3.0; + G4double Coeff = pow(ConstCoeff*A,K-1); + + + // Calculation of 1/Gamma(3(k-1)/2) + G4double Gamma = 1.0; + G4double arg = 3.0*(K-1)/2.0 - 1.0; + while (arg > 1.1) + { + Gamma *= arg; + arg--; + } + if ((K-1)%2 == 1) Gamma *= sqrt(pi); + + + + // Permutation Factor G_n + G4double G_n = 1.0; + for (std::set::iterator s = combSet.begin(); s != combSet.end(); ++s) + { + for (G4int ni = combmSet.count(*s); ni > 1; ni--) G_n *= ni; + } + + G4double Weight = Coeff * MassFactor * (S_n / G_n) / Gamma; + Weight *= pow(KineticEnergy,3.0*(K-1)/2.0)/KineticEnergy; + + return Weight; +} + + +G4FragmentVector * G4FermiConfiguration::GetFragments(const G4Fragment & theNucleus) +{ + + G4FermiPhaseSpaceDecay thePhaseSpace; + + // Calculate Momenta of K fragments + G4double M = theNucleus.GetMomentum().m(); + std::vector m; + m.reserve(Configuration.size()); + std::vector::iterator i; + for (i = Configuration.begin(); i != Configuration.end(); ++i) + { + m.push_back( (*i)->GetTotalEnergy() ); + } + std::vector* MomentumComponents = + thePhaseSpace.Decay(M,m); + + G4FragmentVector * theResult = new G4FragmentVector; + + G4ThreeVector boostVector = theNucleus.GetMomentum().boostVector(); + + + // Go back to the Lab Frame + for (i = Configuration.begin(); i != Configuration.end(); ++i) + { +#ifdef G4NO_ISO_VECDIST + std::vector::difference_type n = 0; + std::distance(Configuration.begin(), i, n); + G4LorentzVector FourMomentum(*(MomentumComponents->operator[](n))); +#else + G4LorentzVector FourMomentum(*(MomentumComponents-> + operator[](std::distance(Configuration.begin(),i)))); +#endif + + // Lorentz boost + FourMomentum.boost(boostVector); + + G4FragmentVector * fragment = (*i)->GetFragment(FourMomentum); + + + for (G4FragmentVector::reverse_iterator ri = fragment->rbegin(); + ri != fragment->rend(); ++ri) + { + theResult->push_back(*ri); + } + delete fragment; + } + + if (!MomentumComponents->empty()) + { + std::for_each(MomentumComponents->begin(),MomentumComponents->end(), + DeleteFragment()); + } + + delete MomentumComponents; + + return theResult; +} + + +G4ParticleMomentum G4FermiConfiguration::IsotropicVector(const G4double Magnitude) + // Samples a isotropic random vectorwith a magnitud given by Magnitude. + // By default Magnitude = 1.0 +{ + G4double CosTheta = 1.0 - 2.0*G4UniformRand(); + G4double SinTheta = sqrt(1.0 - CosTheta*CosTheta); + G4double Phi = twopi*G4UniformRand(); + G4ParticleMomentum Vector(Magnitude*cos(Phi)*SinTheta, + Magnitude*sin(Phi)*SinTheta, + Magnitude*CosTheta); + return Vector; +} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiConfigurationList.cc similarity index 50% rename from source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiConfigurationList.cc index 61b4c1de51..5581d8da44 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfigurationList.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiConfigurationList.cc @@ -25,25 +25,29 @@ // by V. Lara (Nov 1998) #include "G4FermiConfigurationList.hh" +#include "G4FermiSplitter.hh" +#include "G4HadronicException.hh" - - - -G4FermiConfigurationList::G4FermiConfigurationList(): - TotNumOfConfigurations(0) +G4FermiFragmentsPool & G4FermiConfigurationList::GetFragmentsPoolInstance() +{ + static G4FermiFragmentsPool theFragmentsPool; + return theFragmentsPool; +} + +G4FermiConfigurationList::G4FermiConfigurationList() { - for (G4int i = 0; i < MaxNumOfFragments; i++) NumOfConfigurations[i] = 0; } G4FermiConfigurationList::G4FermiConfigurationList(const G4FermiConfigurationList &) { - G4Exception("G4FermiConfigurationList::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FermiConfigurationList::copy_constructor meant to not be accessable"); } -const G4FermiConfigurationList & G4FermiConfigurationList::operator=(const G4FermiConfigurationList &) +const G4FermiConfigurationList & G4FermiConfigurationList:: +operator=(const G4FermiConfigurationList &) { - G4Exception("G4FermiConfigurationList::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FermiConfigurationList::operator= meant to not be accessable"); return *this; } @@ -60,55 +64,46 @@ G4bool G4FermiConfigurationList::operator!=(const G4FermiConfigurationList &) co -G4bool G4FermiConfigurationList::Initialize(const G4int A, const G4int Z, const G4double TotalEnergyRF) +G4bool G4FermiConfigurationList:: +Initialize(const G4int A, const G4int Z, const G4double TotalEnergyRF) { // // let's split nucleus into k = 2,...,A fragments // Configurations.clear(); NormalizedWeights.clear(); - G4FermiConfiguration aConfiguration; - std::vector NOTNormalizedWeights; + G4FermiSplitter aSplitter(&GetFragmentsPoolInstance()); G4double NormStatWeight = 0.0; for (G4int k = 2; k <= A; k++) { // Initialize Configuration for k fragments - aConfiguration.Initialize(k); - G4bool SplitSuccesed; - do + aSplitter.Initialize(A,Z,k); + for (G4int i = 0; i < aSplitter.GetNumberOfSplits(); i++) { - // Splits the nucleus into k fragments - SplitSuccesed = aConfiguration.SplitNucleus(A,Z); - if (SplitSuccesed) - { - TotNumOfConfigurations++; - NumOfConfigurations[k-1]++; - - // Non-Normalized statistical weight for given channel with k fragments - G4double StatWeight = aConfiguration.DecayProbability(A,TotalEnergyRF); - NormStatWeight += StatWeight; - // Statistical weights (it will be normalized...) - NOTNormalizedWeights.push_back(StatWeight); - - // Store configuration - Configurations.push_back(aConfiguration); - } - // Repeat splitting into k fragments (it may be several posibilities for a choosen K) - } - while (SplitSuccesed); - } + // Create a configuration from a split + G4FermiConfiguration * aConfiguration = new G4FermiConfiguration(aSplitter.GetSplit(i)); + // Store configuration + Configurations.push_back(aConfiguration); + + // Non-Normalized statistical weight for given channel with k fragments + G4double StatWeight = aConfiguration->DecayProbability(A,TotalEnergyRF); + NormStatWeight += StatWeight; + // Statistical weights (it will be normalized...) + NormalizedWeights.push_back(StatWeight); + } + } + if (NormStatWeight > 0.0) { // Let's normalize statistical weights of channels - for (G4int i = 0; i < TotNumOfConfigurations; i++) - { - NormalizedWeights.push_back(NOTNormalizedWeights[i]/NormStatWeight); - } + std::transform(NormalizedWeights.begin(), NormalizedWeights.end(), + NormalizedWeights.begin(), + std::bind2nd(std::divides(),NormStatWeight)); return true; } - else return false; + return false; } @@ -117,14 +112,27 @@ G4FermiConfiguration G4FermiConfigurationList::ChooseConfiguration(void) { G4double RandomWeight = G4UniformRand(); G4double AcumWeight = 0.0; - G4int thisConfig = 0; - do + std::vector::iterator thisConfig; + for (thisConfig = NormalizedWeights.begin(); thisConfig != NormalizedWeights.end(); ++thisConfig) { - AcumWeight += NormalizedWeights[thisConfig]; // We are adding the prob. of each configuration - thisConfig++; + // We are adding the prob. of each configuration + AcumWeight += *thisConfig; + if (AcumWeight >= RandomWeight) break; } - while ((thisConfig <= TotNumOfConfigurations) && (AcumWeight < RandomWeight)); - - return Configurations[thisConfig - 1]; - + if (thisConfig == NormalizedWeights.end()) + { + throw G4HadronicException(__FILE__, __LINE__, "G4FermiConfigurationList::ChooseConfigration: Cannot choose a configuration"); + G4FermiConfiguration dummy; + return dummy; + } + else + { +#ifdef G4NO_ISO_VECDIST + std::vector::difference_type n = 0; + std::distance(NormalizedWeights.begin(),thisConfig,n); + return *(Configurations[n]); +#else + return *(Configurations[std::distance(NormalizedWeights.begin(),thisConfig)]); +#endif + } } diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPool.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPool.cc new file mode 100644 index 0000000000..524d322e86 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiFragmentsPool.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. * +// ******************************************************************** +// +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara +// + + +#include "G4FermiFragmentsPool.hh" + +G4bool G4FermiFragmentsPool::MapIsEmpty(true); + + +std::multimap, const G4VFermiFragment* , std::less > > & +G4FermiFragmentsPool::GetMap() +{ + // A Z Pol ExcitE + static const G4StableFermiFragment Fragment00( 1, 0, 2, 0.00*keV ); + static const G4StableFermiFragment Fragment01( 1, 1, 2, 0.00*keV ); + static const G4StableFermiFragment Fragment02( 2, 1, 3, 0.00*keV ); + static const G4StableFermiFragment Fragment03( 3, 1, 2, 0.00*keV ); + static const G4StableFermiFragment Fragment04( 3, 2, 2, 0.00*keV ); + static const G4StableFermiFragment Fragment05( 4, 2, 1, 0.00*keV ); + static const G4He5FermiFragment Fragment06( 5, 2, 4, 16.76*keV ); // He5 + static const G4Li5FermiFragment Fragment07( 5, 3, 4, 16.66*keV ); // Li5 + static const G4StableFermiFragment Fragment08( 6, 2, 1, 0.00*keV ); + static const G4StableFermiFragment Fragment09( 6, 3, 3, 0.00*keV ); + + static const G4StableFermiFragment Fragment10( 6, 3, 1, 3.56*keV ); + static const G4StableFermiFragment Fragment11( 7, 3, 4, 0.00*keV ); + static const G4StableFermiFragment Fragment12( 7, 3, 2, 0.48*keV ); + static const G4StableFermiFragment Fragment13( 7, 4, 4, 0.00*keV ); + static const G4StableFermiFragment Fragment14( 7, 4, 2, 0.43*keV ); + static const G4StableFermiFragment Fragment15( 8, 3, 5, 0.00*keV ); + static const G4StableFermiFragment Fragment16( 8, 3, 3, 0.98*keV ); + static const G4Be8FermiFragment Fragment17( 8, 4, 1, 0.00*keV ); // Be8 + static const G4StableFermiFragment Fragment18( 9, 4, 4, 0.00*keV ); + static const G4B9FermiFragment Fragment19( 9, 5, 4, 0.00*keV ); // B9 + + static const G4StableFermiFragment Fragment20( 10, 4, 1, 0.00*keV ); + static const G4StableFermiFragment Fragment21( 10, 4, 5, 3.37*keV ); + static const G4StableFermiFragment Fragment22( 10, 4, 8, 5.96*keV ); + static const G4StableFermiFragment Fragment23( 10, 4, 1, 6.18*keV ); + static const G4StableFermiFragment Fragment24( 10, 4, 5, 6.26*keV ); + static const G4StableFermiFragment Fragment25( 10, 5, 7, 0.00*keV ); + static const G4StableFermiFragment Fragment26( 10, 5, 3, 0.72*keV ); + static const G4StableFermiFragment Fragment27( 10, 5, 1, 1.74*keV ); + static const G4StableFermiFragment Fragment28( 10, 5, 3, 2.15*keV ); + static const G4StableFermiFragment Fragment29( 10, 5, 5, 3.59*keV ); + + static const G4StableFermiFragment Fragment30( 10, 6, 3, 0.00*keV ); + static const G4StableFermiFragment Fragment31( 10, 6, 5, 3.35*keV ); + static const G4StableFermiFragment Fragment32( 11, 5, 4, 0.00*keV ); + static const G4StableFermiFragment Fragment33( 11, 5, 2, 2.13*keV ); + static const G4StableFermiFragment Fragment34( 11, 5, 6, 4.44*keV ); + static const G4StableFermiFragment Fragment35( 11, 5, 4, 5.02*keV ); + static const G4StableFermiFragment Fragment36( 11, 5, 10, 6.76*keV ); + static const G4StableFermiFragment Fragment37( 11, 5, 6, 7.29*keV ); + static const G4StableFermiFragment Fragment38( 11, 5, 4, 7.98*keV ); + static const G4StableFermiFragment Fragment39( 11, 5, 6, 8.56*keV ); + + static const G4StableFermiFragment Fragment40( 11, 6, 4, 0.00*keV ); + static const G4StableFermiFragment Fragment41( 11, 6, 2, 2.00*keV ); + static const G4StableFermiFragment Fragment42( 11, 6, 6, 4.32*keV ); + static const G4StableFermiFragment Fragment43( 11, 6, 4, 4.80*keV ); + static const G4StableFermiFragment Fragment44( 11, 6, 2, 6.34*keV ); + static const G4StableFermiFragment Fragment45( 11, 6, 8, 6.48*keV ); + static const G4StableFermiFragment Fragment46( 11, 6, 6, 6.90*keV ); + static const G4StableFermiFragment Fragment47( 11, 6, 4, 7.50*keV ); + static const G4StableFermiFragment Fragment48( 11, 6, 4, 8.10*keV ); + static const G4StableFermiFragment Fragment49( 11, 6, 6, 8.42*keV ); + + static const G4StableFermiFragment Fragment50( 11, 6, 8, 8.66*keV ); + static const G4StableFermiFragment Fragment51( 12, 5, 3, 0.00*keV ); + static const G4StableFermiFragment Fragment52( 12, 5, 5, 0.95*keV ); + static const G4StableFermiFragment Fragment53( 12, 5, 5, 1.67*keV ); + static const G4StableFermiFragment Fragment54( 12, 5, 4, 2.65*keV ); + static const G4StableFermiFragment Fragment55( 12, 6, 1, 0.00*keV ); + static const G4StableFermiFragment Fragment56( 12, 6, 5, 4.44*keV ); + static const G4StableFermiFragment Fragment57( 13, 6, 2, 0.00*keV ); + static const G4StableFermiFragment Fragment58( 13, 6, 2, 3.09*keV ); + static const G4StableFermiFragment Fragment59( 13, 6, 4, 3.68*keV ); + + static const G4StableFermiFragment Fragment60( 13, 6, 6, 3.85*keV ); + static const G4StableFermiFragment Fragment61( 13, 7, 2, 0.00*keV ); + static const G4StableFermiFragment Fragment62( 14, 6, 1, 0.00*keV ); + static const G4StableFermiFragment Fragment63( 14, 6, 3, 6.09*keV ); + static const G4StableFermiFragment Fragment64( 14, 6, 8, 6.69*keV ); + static const G4StableFermiFragment Fragment65( 14, 6, 6, 6.96*keV ); + static const G4StableFermiFragment Fragment66( 14, 6, 5, 7.34*keV ); + static const G4StableFermiFragment Fragment67( 14, 7, 3, 0.00*keV ); + static const G4StableFermiFragment Fragment68( 14, 7, 1, 2.31*keV ); + static const G4StableFermiFragment Fragment69( 14, 7, 3, 3.95*keV ); + + static const G4StableFermiFragment Fragment70( 14, 7, 1, 4.92*keV ); + static const G4StableFermiFragment Fragment71( 14, 7, 5, 5.11*keV ); + static const G4StableFermiFragment Fragment72( 14, 7, 3, 5.69*keV ); + static const G4StableFermiFragment Fragment73( 14, 7, 7, 5.83*keV ); + static const G4StableFermiFragment Fragment74( 14, 7, 3, 6.20*keV ); + static const G4StableFermiFragment Fragment75( 14, 7, 7, 6.44*keV ); + static const G4StableFermiFragment Fragment76( 14, 7, 5, 7.03*keV ); + static const G4StableFermiFragment Fragment77( 15, 7, 2, 0.00*keV ); + static const G4StableFermiFragment Fragment78( 15, 7, 8, 5.28*keV ); + static const G4StableFermiFragment Fragment79( 15, 7, 4, 6.32*keV ); + + static const G4StableFermiFragment Fragment80( 15, 7, 10, 7.22*keV ); + static const G4StableFermiFragment Fragment81( 15, 7, 8, 7.57*keV ); + static const G4StableFermiFragment Fragment82( 15, 7, 2, 8.31*keV ); + static const G4StableFermiFragment Fragment83( 15, 7, 4, 8.57*keV ); + static const G4StableFermiFragment Fragment84( 15, 7, 14, 9.15*keV ); + static const G4StableFermiFragment Fragment85( 15, 7, 14, 9.79*keV ); + static const G4StableFermiFragment Fragment86( 15, 7, 8, 10.00*keV ); + static const G4StableFermiFragment Fragment87( 15, 8, 2, 0.00*keV ); + static const G4StableFermiFragment Fragment88( 15, 8, 8, 5.22*keV ); + static const G4StableFermiFragment Fragment89( 15, 8, 4, 6.18*keV ); + + static const G4StableFermiFragment Fragment90( 15, 8, 10, 6.83*keV ); + static const G4StableFermiFragment Fragment91( 15, 8, 8, 7.28*keV ); + static const G4StableFermiFragment Fragment92( 16, 7, 5, 0.00*keV ); + static const G4StableFermiFragment Fragment93( 16, 7, 1, 0.12*keV ); + static const G4StableFermiFragment Fragment94( 16, 7, 7, 0.30*keV ); + static const G4StableFermiFragment Fragment95( 16, 7, 3, 0.40*keV ); + static const G4StableFermiFragment Fragment96( 16, 8, 1, 0.00*keV ); + static const G4StableFermiFragment Fragment97( 16, 8, 8, 6.10*keV ); + static const G4StableFermiFragment Fragment98( 16, 8, 5, 6.92*keV ); + static const G4StableFermiFragment Fragment99( 16, 8, 3, 7.12*keV ); + + static std::multimap, const G4VFermiFragment* , std::less > > + theMapOfFragments; + + if (MapIsEmpty) + { + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment00.GetA(),Fragment00.GetZ()),&Fragment00)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment01.GetA(),Fragment01.GetZ()),&Fragment01)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment02.GetA(),Fragment02.GetZ()),&Fragment02)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment03.GetA(),Fragment03.GetZ()),&Fragment03)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment04.GetA(),Fragment04.GetZ()),&Fragment04)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment05.GetA(),Fragment05.GetZ()),&Fragment05)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment06.GetA(),Fragment06.GetZ()),&Fragment06)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment07.GetA(),Fragment07.GetZ()),&Fragment07)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment08.GetA(),Fragment08.GetZ()),&Fragment08)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment09.GetA(),Fragment09.GetZ()),&Fragment09)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment10.GetA(),Fragment10.GetZ()),&Fragment10)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment11.GetA(),Fragment11.GetZ()),&Fragment11)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment12.GetA(),Fragment12.GetZ()),&Fragment12)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment13.GetA(),Fragment13.GetZ()),&Fragment13)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment14.GetA(),Fragment14.GetZ()),&Fragment14)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment15.GetA(),Fragment15.GetZ()),&Fragment15)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment16.GetA(),Fragment16.GetZ()),&Fragment16)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment17.GetA(),Fragment17.GetZ()),&Fragment17)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment18.GetA(),Fragment18.GetZ()),&Fragment18)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment19.GetA(),Fragment19.GetZ()),&Fragment19)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment20.GetA(),Fragment20.GetZ()),&Fragment20)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment21.GetA(),Fragment21.GetZ()),&Fragment21)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment22.GetA(),Fragment22.GetZ()),&Fragment22)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment23.GetA(),Fragment23.GetZ()),&Fragment23)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment24.GetA(),Fragment24.GetZ()),&Fragment24)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment25.GetA(),Fragment25.GetZ()),&Fragment25)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment26.GetA(),Fragment26.GetZ()),&Fragment26)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment27.GetA(),Fragment27.GetZ()),&Fragment27)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment28.GetA(),Fragment28.GetZ()),&Fragment28)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment29.GetA(),Fragment29.GetZ()),&Fragment29)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment30.GetA(),Fragment30.GetZ()),&Fragment30)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment31.GetA(),Fragment31.GetZ()),&Fragment31)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment32.GetA(),Fragment32.GetZ()),&Fragment32)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment33.GetA(),Fragment33.GetZ()),&Fragment33)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment34.GetA(),Fragment34.GetZ()),&Fragment34)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment35.GetA(),Fragment35.GetZ()),&Fragment35)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment36.GetA(),Fragment36.GetZ()),&Fragment36)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment37.GetA(),Fragment37.GetZ()),&Fragment37)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment38.GetA(),Fragment38.GetZ()),&Fragment38)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment39.GetA(),Fragment39.GetZ()),&Fragment39)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment40.GetA(),Fragment40.GetZ()),&Fragment40)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment41.GetA(),Fragment41.GetZ()),&Fragment41)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment42.GetA(),Fragment42.GetZ()),&Fragment42)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment43.GetA(),Fragment43.GetZ()),&Fragment43)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment44.GetA(),Fragment44.GetZ()),&Fragment44)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment45.GetA(),Fragment45.GetZ()),&Fragment45)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment46.GetA(),Fragment46.GetZ()),&Fragment46)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment47.GetA(),Fragment47.GetZ()),&Fragment47)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment48.GetA(),Fragment48.GetZ()),&Fragment48)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment49.GetA(),Fragment49.GetZ()),&Fragment49)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment50.GetA(),Fragment50.GetZ()),&Fragment50)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment51.GetA(),Fragment51.GetZ()),&Fragment51)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment52.GetA(),Fragment52.GetZ()),&Fragment52)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment53.GetA(),Fragment53.GetZ()),&Fragment53)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment54.GetA(),Fragment54.GetZ()),&Fragment54)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment55.GetA(),Fragment55.GetZ()),&Fragment55)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment56.GetA(),Fragment56.GetZ()),&Fragment56)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment57.GetA(),Fragment57.GetZ()),&Fragment57)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment58.GetA(),Fragment58.GetZ()),&Fragment58)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment59.GetA(),Fragment59.GetZ()),&Fragment59)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment60.GetA(),Fragment60.GetZ()),&Fragment60)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment61.GetA(),Fragment61.GetZ()),&Fragment61)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment62.GetA(),Fragment62.GetZ()),&Fragment62)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment63.GetA(),Fragment63.GetZ()),&Fragment63)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment64.GetA(),Fragment64.GetZ()),&Fragment64)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment65.GetA(),Fragment65.GetZ()),&Fragment65)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment66.GetA(),Fragment66.GetZ()),&Fragment66)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment67.GetA(),Fragment67.GetZ()),&Fragment67)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment68.GetA(),Fragment68.GetZ()),&Fragment68)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment69.GetA(),Fragment69.GetZ()),&Fragment69)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment70.GetA(),Fragment70.GetZ()),&Fragment70)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment71.GetA(),Fragment71.GetZ()),&Fragment71)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment72.GetA(),Fragment72.GetZ()),&Fragment72)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment73.GetA(),Fragment73.GetZ()),&Fragment73)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment74.GetA(),Fragment74.GetZ()),&Fragment74)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment75.GetA(),Fragment75.GetZ()),&Fragment75)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment76.GetA(),Fragment76.GetZ()),&Fragment76)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment77.GetA(),Fragment77.GetZ()),&Fragment77)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment78.GetA(),Fragment78.GetZ()),&Fragment78)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment79.GetA(),Fragment79.GetZ()),&Fragment79)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment80.GetA(),Fragment80.GetZ()),&Fragment80)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment81.GetA(),Fragment81.GetZ()),&Fragment81)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment82.GetA(),Fragment82.GetZ()),&Fragment82)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment83.GetA(),Fragment83.GetZ()),&Fragment83)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment84.GetA(),Fragment84.GetZ()),&Fragment84)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment85.GetA(),Fragment85.GetZ()),&Fragment85)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment86.GetA(),Fragment86.GetZ()),&Fragment86)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment87.GetA(),Fragment87.GetZ()),&Fragment87)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment88.GetA(),Fragment88.GetZ()),&Fragment88)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment89.GetA(),Fragment89.GetZ()),&Fragment89)); + + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment90.GetA(),Fragment90.GetZ()),&Fragment90)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment91.GetA(),Fragment91.GetZ()),&Fragment91)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment92.GetA(),Fragment92.GetZ()),&Fragment92)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment93.GetA(),Fragment93.GetZ()),&Fragment93)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment94.GetA(),Fragment94.GetZ()),&Fragment94)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment95.GetA(),Fragment95.GetZ()),&Fragment95)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment96.GetA(),Fragment96.GetZ()),&Fragment96)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment97.GetA(),Fragment97.GetZ()),&Fragment97)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment98.GetA(),Fragment98.GetZ()),&Fragment98)); + theMapOfFragments.insert(std::pair, const G4VFermiFragment* >(std::pair(Fragment99.GetA(),Fragment99.GetZ()),&Fragment99)); + MapIsEmpty = false; + } + + return theMapOfFragments; +} + + +G4FermiFragmentsPool::G4FermiFragmentsPool() +{ +} + + + +G4FermiFragmentsPool::~G4FermiFragmentsPool() +{ +} + + + + + +G4FermiFragmentsPool::G4FermiFragmentsPool(const G4FermiFragmentsPool&) +{ + // It is meant to not be accesable +} + +const G4FermiFragmentsPool & G4FermiFragmentsPool::operator=(const G4FermiFragmentsPool& ) +{ + // It is meant to not be accesable + return *this; +} + +G4bool G4FermiFragmentsPool::operator==(const G4FermiFragmentsPool&) const +{ + // It is meant to not be accesable + return false; +} + +G4bool G4FermiFragmentsPool::operator!=(const G4FermiFragmentsPool&) const +{ + // It is meant to not be accesable + return true; +} diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiIntegerPartition.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiIntegerPartition.cc new file mode 100644 index 0000000000..b49a622d95 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiIntegerPartition.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. * +// ******************************************************************** +// +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + + +#include "G4FermiIntegerPartition.hh" + +void G4FermiIntegerPartition::Initialize(const G4int N, const G4int size) +{ + total = N; + int S(size); + if (!enableNull) + { + S = std::min(size,N); + } + partition.clear(); + partition.reserve(S); + G4int ini(1); + if (enableNull) + { + ini = 0; + partition.push_back(total); + } + else + { + partition.push_back(total-S+1); + } + for (G4int i = 1; i < S; i++) partition.push_back(ini); + +#ifdef G4FermiIntegerPartition_debug + this->TestPartition(); +#endif + + return; +} + + +G4bool G4FermiIntegerPartition::Next() +{ + std::vector::iterator first = partition.begin(); + std::vector::iterator i = first+1; + + while ( i != partition.end() && (*first) <= (*i)+1 ) i++; + + if ( i == partition.end() ) + { + return false; + } + else + { + (*i)++; + G4int d = -1; + for (std::vector::iterator j = i-1; j != first; j--) + { + d += (*j) - (*i); + (*j) = (*i); + } + (*first) += d; + } + +#ifdef G4FermiIntegerPartition_debug + this->TestPartition(); +#endif + + return true; +} + +#ifdef G4FermiIntegerPartition_debug + +void G4FermiIntegerPartition::TestPartition() +{ + G4int tmp = this->GetSum(); + if (total != tmp) + { + std::cerr << "G4FermiIntegerPartition Error: " + << "Partition of " << total << " into " << partition.size() + << " is ["; + for (std::vector::iterator it = partition.begin(); + it != partition.end(); ++it) + { + std::cerr << *it << ','; + } + std::cerr << "\b\b] = " << tmp << '\n'; + } + return; +} + +#endif diff --git a/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiPhaseSpaceDecay.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiPhaseSpaceDecay.cc new file mode 100644 index 0000000000..4656213f57 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiPhaseSpaceDecay.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. * +// ******************************************************************** +// +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + + +#include "G4FermiPhaseSpaceDecay.hh" +#include "G4HadronicException.hh" +#include "Randomize.hh" + +#include +#include +#include + + +std::vector * +G4FermiPhaseSpaceDecay::KopylovNBodyDecay(const G4double M, const std::vector& m) const + // Calculates momentum for N fragments (Kopylov's method of sampling is used) +{ + G4int N = m.size(); + + std::vector* P = new std::vector; + P->insert(P->begin(), N, static_cast(0)); + + G4double mtot = std::accumulate( m.begin(), m.end(), 0.0); + G4double mu = mtot; + G4double PFragMagCM = 0.0; + G4double Mass = M; + G4double T = M-mtot; + G4LorentzVector PFragCM(0.0,0.0,0.0,0.0); + G4LorentzVector PFragLab(0.0,0.0,0.0,0.0); + G4LorentzVector PRestCM(0.0,0.0,0.0,0.0); + G4LorentzVector PRestLab(0.0,0.0,0.0,Mass); + + for (G4int k = N-1; k > 0; k--) + { + mu -= m[k]; + if (k>1) T *= BetaKopylov(k); + else T = 0.0; + + G4double RestMass = mu + T; + + PFragMagCM = PtwoBody(Mass,m[k],RestMass); + if (PFragMagCM < 0) + { + throw G4HadronicException(__FILE__, __LINE__, "G4FermiPhaseSpaceDecay::KopylovNBodyDecay: Error sampling fragments momenta!!"); + } + + + // Create a unit vector with a random direction isotropically distributed + G4ParticleMomentum RandVector(IsotropicVector(PFragMagCM)); + + PFragCM.setVect(RandVector); + PFragCM.setE(sqrt(RandVector.mag2()+m[k]*m[k])); + + PRestCM.setVect(-RandVector); + PRestCM.setE(sqrt(RandVector.mag2()+RestMass*RestMass)); + + + G4ThreeVector BoostV = PRestLab.boostVector(); + + PFragLab = PFragCM; + PFragLab.boost(BoostV); + PRestLab = PRestCM; + PRestLab.boost(BoostV); + + P->operator[](k) = new G4LorentzVector(PFragLab); + + Mass = RestMass; + } + + P->operator[](0) = new G4LorentzVector(PRestLab); + + return P; + +} + + + +std::vector * +G4FermiPhaseSpaceDecay::NBodyDecay(const G4double M, const std::vector& m) const +{ + // Number of fragments + G4int N = m.size(); + G4int i, j; + // Total Daughters Mass + G4double mtot = std::accumulate( m.begin(), m.end(), 0.0); + G4double Emax = M - mtot + m[0]; + G4double Emin = 0.0; + G4double Wmax = 1.0; + for (i = 1; i < N; i++) + { + Emax += m[i]; + Emin += m[i-1]; + Wmax *= this->PtwoBody(Emax, Emin, m[i]); + } + + G4int ntries = 0; + G4double weight = 1.0; + std::vector p(N); + do + { + // Sample uniform random numbers in increasing order + std::vector r; + r.reserve(N); + r.push_back(0.0); + for (i = 1; i < N-1; i++) r.push_back(G4UniformRand()); + r.push_back(1.0); + std::sort(r.begin(),r.end(), std::less()); + + // Calculate virtual masses + std::vector vm(N); + vm[0] = 0.0; + std::partial_sum(m.begin(), m.end(), vm.begin()); + std::transform(r.begin(), r.end(), r.begin(), std::bind2nd(std::multiplies(), M-mtot)); + std::transform(r.begin(), r.end(), vm.begin(), vm.begin(), std::plus()); + r.clear(); + + // Calcualte daughter momenta + weight = 1.0; + for (j = 0; j < N-1; j++) + { + p[j] = PtwoBody(vm[j+1],vm[j],m[j+1]); + if (p[j] < 0.0) + { + G4cerr << "G4FermiPhaseSpaceDecay::Decay: Daughter momentum less than zero\n"; + weight = 0.0; + break; + } + else + { + weight *= p[j]; + } + } + p[N-1] = PtwoBody(vm[N-2], m[N-2], m[N-1]); + + + if (ntries++ > 1000000) + { + throw G4HadronicException(__FILE__, __LINE__, "G4FermiPhaseSpaceDecay::Decay: Cannot determine decay kinematics"); + } + } + while ( weight < G4UniformRand()*Wmax ); + + std::vector * P = new std::vector; + P->insert(P->begin(),N, static_cast(0)); + + G4ParticleMomentum a3P = this->IsotropicVector(p[0]); + + P->operator[](0) = new G4LorentzVector( a3P, sqrt(a3P.mag2()+m[0]*m[0]) ); + P->operator[](1) = new G4LorentzVector(-a3P, sqrt(a3P.mag2()+m[1]*m[1]) ); + for (i = 2; i < N; i++) + { + a3P = this->IsotropicVector(p[i-1]); + P->operator[](i) = new G4LorentzVector(a3P, sqrt(a3P.mag2() + m[i]*m[i])); + G4ThreeVector Beta = (-1.0)*P->operator[](i)->boostVector(); + // boost already created particles + for (j = 0; j < i; j++) + { + P->operator[](j)->boost(Beta); + } + } + + return P; +} + + + + +std::vector * +G4FermiPhaseSpaceDecay:: +TwoBodyDecay(const G4double M, const std::vector& m) const +{ + G4double m0 = m.front(); + G4double m1 = m.back(); + G4double psqr = this->PtwoBody(M,m0,m1); + G4ParticleMomentum p = this->IsotropicVector(sqrt(psqr)); + + G4LorentzVector * P41 = new G4LorentzVector; + P41->setVect(p); + P41->setE(sqrt(psqr+m0*m0)); + + G4LorentzVector * P42 = new G4LorentzVector; + P42->setVect(-p); + P42->setE(sqrt(psqr+m1*m1)); + + std::vector * result = new std::vector; + result->push_back(P41); + result->push_back(P42); + return result; +} + + + + +G4ParticleMomentum G4FermiPhaseSpaceDecay::IsotropicVector(const G4double Magnitude) const + // Samples a isotropic random vectorwith a magnitud given by Magnitude. + // By default Magnitude = 1.0 +{ + G4double CosTheta = 1.0 - 2.0*G4UniformRand(); + G4double SinTheta = sqrt(1.0 - CosTheta*CosTheta); + G4double Phi = twopi*G4UniformRand(); + G4ParticleMomentum Vector(Magnitude*cos(Phi)*SinTheta, + Magnitude*sin(Phi)*SinTheta, + Magnitude*CosTheta); + return Vector; +} + + 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 new file mode 100644 index 0000000000..74433539c3 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4FermiSplitter.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. * +// ******************************************************************** +// +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara + +#include "G4FermiSplitter.hh" +#include "G4FermiIntegerPartition.hh" +#include "G4HadronicException.hh" +#include + + +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; + 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; + errOs << "G4FermiSplitter::Initialize() Error: Non physical arguments = " + << a << " Z = " << z << " #fragments = " << n; + throw G4HadronicException(__FILE__, __LINE__, errOs.str()); + } + A = a; + Z = z; + K = n; + + G4FermiIntegerPartition PartitionA; + PartitionA.Initialize(A,K); + do // for each partition of A + { + G4FermiIntegerPartition PartitionZ; + PartitionZ.EnableNull(); + PartitionZ.Initialize(Z,K); + std::vector partA = PartitionA.GetPartition(); + std::vector multiplicities; + do // for each partition of Z + { + std::vector partZ = PartitionZ.GetPartition(); + // Get multiplicities + // provided that for each a,z pair there could be several + // posibilities, we have to count them in order to create + // all possible combinations. + multiplicities.clear(); + G4int num_rows = 1; + std::pair az_pair; + for (G4int i = 0; i < K; i++) + { + az_pair = std::make_pair(partA[i],partZ[i]); + G4int m = theFragmentsPool->Count(az_pair); + if (m > 0) + { + multiplicities.push_back(m); + num_rows *= m; + } + else + { + break; + } + } + // if size of multiplicities is equal to K, it + // means that all combinations a,z exist in the + // fragments pool + if (static_cast(multiplicities.size()) == K) + { + splits.clear(); + splits.resize(num_rows); + for (G4int i = 0; i < K; i++) + { + az_pair = std::make_pair(partA[i],partZ[i]); + for (G4int j = 0; j < num_rows/multiplicities[i]; j++) + { // number of times that we have to introduce the same data + G4int k=0; + std::multimap, const G4VFermiFragment*, + std::less > >::iterator pos; + for (pos = theFragmentsPool->LowerBound(az_pair); + pos != theFragmentsPool->UpperBound(az_pair); ++pos) + { + G4int tmp = j*multiplicities[i]+k; + splits[tmp].push_back(pos->second); + k++; + } + } + } + } + } + while (PartitionZ.Next()); + } // partition of A + while (PartitionA.Next()); + + return splits.size(); +} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4He5FermiFragment.cc similarity index 52% rename from source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4He5FermiFragment.cc index 68558a5fa1..d73c2e8659 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He5FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4He5FermiFragment.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4He5FermiFragment.cc,v 1.10 2003/06/16 17:06:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He5FermiFragment.cc,v 1.5 2003/12/02 12:22:03 larazb Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4He5FermiFragment.hh" - +#include "G4IonTable.hh" +#include "G4HadronicException.hh" G4He5FermiFragment::G4He5FermiFragment() { @@ -36,7 +37,7 @@ G4He5FermiFragment::G4He5FermiFragment() G4He5FermiFragment::G4He5FermiFragment(const G4He5FermiFragment &) : G4UnstableFermiFragment() { - G4Exception("G4He5FermiFragment::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He5FermiFragment::copy_constructor meant to not be accessable"); } @@ -47,7 +48,7 @@ G4He5FermiFragment::~G4He5FermiFragment() const G4He5FermiFragment & G4He5FermiFragment::operator=(const G4He5FermiFragment &) { - G4Exception("G4He5FermiFragment::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He5FermiFragment::operator= meant to not be accessable"); return *this; } @@ -65,55 +66,19 @@ G4bool G4He5FermiFragment::operator!=(const G4He5FermiFragment &) const -G4FragmentVector * G4He5FermiFragment::GetFragment(const G4LorentzVector & aMomentum) - // He5 ----> alpha + neutron +G4He5FermiFragment::G4He5FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE) + : G4UnstableFermiFragment(anA,aZ,Pol,ExE) { - const G4int NumSubFrag = 2; - G4double Masses[NumSubFrag]; - G4double Charges[NumSubFrag]; - G4double AtomNum[NumSubFrag]; - - - Masses[0] = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(2,4); // alpha - Masses[1] = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(0,1); // neutron + // He5 ----> alpha + neutron + G4double alpha_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(2,4); + G4double neutron_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(0,1); - AtomNum[0] = 4; - AtomNum[1] = 1; + Masses.push_back(alpha_mass); + Masses.push_back(neutron_mass); - Charges[0] = 2; - Charges[1] = 0; + AtomNum.push_back(4); + AtomNum.push_back(1); - // G4double AvalKineticE = G4NucleiPropertiesTable::GetMassExcess(Z,A) + ExcitEnergy - // He5 - // G4NucleiPropertiesTable::GetMassExcess(0,1) - // neutron - // G4NucleiPropertiesTable::GetMassExcess(2,4); // alpha - G4double AvalKineticE = sqrt(aMomentum.e()*aMomentum.e() - - aMomentum.vect().mag2()) - // He5 - Masses[1] - // neutron - Masses[0]; // alpha - - std::deque * SubFragsMomentum = - FragmentsMomentum(AvalKineticE, NumSubFrag,Masses); - - - - G4FragmentVector * theResult = new G4FragmentVector; - - for (G4int i = 0; i < NumSubFrag; i++) { - - // Lorentz boost - SubFragsMomentum->operator[](i)->boost(aMomentum.boostVector()); - - theResult->push_back(new G4Fragment(static_cast(AtomNum[i]), - static_cast(Charges[i]), - *(SubFragsMomentum->operator[](i)))); - } - - // SubFragsMomentum->clearAndDestroy(); - while (!SubFragsMomentum->empty()) { - delete SubFragsMomentum->back(); - SubFragsMomentum->pop_back(); - } - delete SubFragsMomentum; - - return theResult; + Charges.push_back(2); + Charges.push_back(0); } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Li5FermiFragment.cc similarity index 52% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Li5FermiFragment.cc index 7ed33d6b65..f14f2d4b27 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li5FermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4Li5FermiFragment.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4Li5FermiFragment.cc,v 1.10 2003/06/16 17:06:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li5FermiFragment.cc,v 1.5 2003/12/02 12:22:03 larazb Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4Li5FermiFragment.hh" - +#include "G4IonTable.hh" +#include "G4HadronicException.hh" G4Li5FermiFragment::G4Li5FermiFragment() { @@ -36,7 +37,7 @@ G4Li5FermiFragment::G4Li5FermiFragment() G4Li5FermiFragment::G4Li5FermiFragment(const G4Li5FermiFragment &) : G4UnstableFermiFragment() { - G4Exception("G4Li5FermiFragment::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li5FermiFragment::copy_constructor meant to not be accessable"); } @@ -47,7 +48,7 @@ G4Li5FermiFragment::~G4Li5FermiFragment() const G4Li5FermiFragment & G4Li5FermiFragment::operator=(const G4Li5FermiFragment &) { - G4Exception("G4Li5FermiFragment::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li5FermiFragment::operator= meant to not be accessable"); return *this; } @@ -63,55 +64,19 @@ G4bool G4Li5FermiFragment::operator!=(const G4Li5FermiFragment &) const } -G4FragmentVector * G4Li5FermiFragment::GetFragment(const G4LorentzVector & aMomentum) - // Li5 ----> alpha + proton +G4Li5FermiFragment::G4Li5FermiFragment(const G4int anA, const G4int aZ, const G4int Pol, const G4double ExE) + : G4UnstableFermiFragment(anA,aZ,Pol,ExE) { - const G4int NumSubFrag = 2; - G4double Masses[NumSubFrag]; - G4double Charges[NumSubFrag]; - G4double AtomNum[NumSubFrag]; + // Li5 ----> alpha + proton + G4double alpha_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(2,4); + G4double proton_mass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(1,1); + Masses.push_back(alpha_mass); + Masses.push_back(proton_mass); - Masses[0] = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(2,4); // alpha - Masses[1] = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(1,1); // proton + AtomNum.push_back(4); + AtomNum.push_back(1); - AtomNum[0] = 4; - AtomNum[1] = 1; - - Charges[0] = 2; - Charges[1] = 1; - - // G4double AvalKineticE = G4NucleiPropertiesTable::GetMassExcess(Z,A) + ExcitEnergy - // Li5 - // G4NucleiPropertiesTable::GetMassExcess(1,1) - // proton - // G4NucleiPropertiesTable::GetMassExcess(2,4); // alpha - G4double AvalKineticE = sqrt(aMomentum.e()*aMomentum.e() - - aMomentum.vect().mag2()) - // Li5 - Masses[0] - // proton - Masses[1]; // alpha - - std::deque * SubFragsMomentum = - FragmentsMomentum(AvalKineticE, NumSubFrag,Masses); - - - - G4FragmentVector * theResult = new G4FragmentVector; - - for (G4int i = 0; i < NumSubFrag; i++) { - - // Lorentz boost - SubFragsMomentum->operator[](i)->boost(aMomentum.boostVector()); - - theResult->push_back(new G4Fragment(static_cast(AtomNum[i]), - static_cast(Charges[i]), - *(SubFragsMomentum->operator[](i)))); - } - - // SubFragsMomentum->clearAndDestroy(); - while (!SubFragsMomentum->empty()) { - delete SubFragsMomentum->back(); - SubFragsMomentum->pop_back(); - } - delete SubFragsMomentum; - - return theResult; + Charges.push_back(2); + Charges.push_back(1); } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StableFermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc similarity index 84% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StableFermiFragment.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc index b290b1f49e..1b042d5ef9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StableFermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4StableFermiFragment.cc @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4StableFermiFragment.cc,v 1.7 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StableFermiFragment.cc,v 1.3 2003/11/04 11:04:41 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4StableFermiFragment.hh" - +#include "G4HadronicException.hh" G4StableFermiFragment::G4StableFermiFragment() { @@ -36,7 +36,7 @@ G4StableFermiFragment::G4StableFermiFragment() G4StableFermiFragment::G4StableFermiFragment(const G4StableFermiFragment &) : G4VFermiFragment() { - G4Exception("G4StableFermiFragment::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StableFermiFragment::copy_constructor meant to not be accessable"); } @@ -47,7 +47,7 @@ G4StableFermiFragment::~G4StableFermiFragment() const G4StableFermiFragment & G4StableFermiFragment::operator=(const G4StableFermiFragment &) { - G4Exception("G4StableFermiFragment::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StableFermiFragment::operator= meant to not be accessable"); return *this; } @@ -64,7 +64,7 @@ G4bool G4StableFermiFragment::operator!=(const G4StableFermiFragment &) const -G4FragmentVector * G4StableFermiFragment::GetFragment(const G4LorentzVector & aMomentum) +G4FragmentVector * G4StableFermiFragment::GetFragment(const G4LorentzVector & aMomentum) const { G4FragmentVector * theResult = new G4FragmentVector; 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 new file mode 100644 index 0000000000..511a64c768 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4UnstableFermiFragment.cc @@ -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: G4UnstableFermiFragment.cc,v 1.6 2003/11/17 13:25:40 jwellisc Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// Hadronic Process: Nuclear De-excitations +// by V. Lara (Nov 1998) + +#include "G4UnstableFermiFragment.hh" +#include "G4FermiPhaseSpaceDecay.hh" +#include "G4HadronicException.hh" +#include + +G4UnstableFermiFragment::G4UnstableFermiFragment() +{ +} + +G4UnstableFermiFragment::G4UnstableFermiFragment(const G4UnstableFermiFragment &) : G4VFermiFragment() +{ + throw G4HadronicException(__FILE__, __LINE__, "G4UnstableFermiFragment::copy_constructor meant to not be accessable"); +} + + +G4UnstableFermiFragment::~G4UnstableFermiFragment() +{ +} + + +const G4UnstableFermiFragment & G4UnstableFermiFragment::operator=(const G4UnstableFermiFragment &) +{ + throw G4HadronicException(__FILE__, __LINE__, "G4UnstableFermiFragment::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4UnstableFermiFragment::operator==(const G4UnstableFermiFragment &) const +{ + return false; +} + +G4bool G4UnstableFermiFragment::operator!=(const G4UnstableFermiFragment &) const +{ + return true; +} + + + +G4FragmentVector * G4UnstableFermiFragment::GetFragment(const G4LorentzVector& aMomentum) const +{ + G4FermiPhaseSpaceDecay thePhaseSpace; + + std::vector * P_i = thePhaseSpace.Decay(aMomentum.m(), Masses); + + G4ThreeVector Beta = aMomentum.boostVector(); + + G4FragmentVector * theResult = new G4FragmentVector; + + for (std::vector::iterator i = P_i->begin(); i != P_i->end(); i++) + { +#ifdef G4NO_ISO_VECDIST + std::vector::difference_type tmp_n = 0; + std::distance(P_i->begin(),i,tmp_n); + G4int n = tmp_n; +#else + G4int n = std::distance(P_i->begin(),i); +#endif + (*i)->boost(Beta); + theResult->push_back(new G4Fragment(static_cast(AtomNum[n]), + static_cast(Charges[n]), + *(*i))); + + delete *i; + } + delete P_i; + + return theResult; +} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc similarity index 84% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc index 68ddacee68..9525f8e4fc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiBreakUp.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiBreakUp.cc @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4VFermiBreakUp.cc,v 1.7 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VFermiBreakUp.cc,v 1.3 2003/11/04 11:04:49 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4VFermiBreakUp.hh" - +#include "G4HadronicException.hh" G4VFermiBreakUp::G4VFermiBreakUp() { @@ -36,7 +36,7 @@ G4VFermiBreakUp::G4VFermiBreakUp() G4VFermiBreakUp::G4VFermiBreakUp(const G4VFermiBreakUp &) { - G4Exception("G4VFermiBreakUp::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VFermiBreakUp::copy_constructor meant to not be accessable"); } @@ -47,7 +47,7 @@ G4VFermiBreakUp::~G4VFermiBreakUp() const G4VFermiBreakUp & G4VFermiBreakUp::operator=(const G4VFermiBreakUp &) { - G4Exception("G4VFermiBreakUp::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VFermiBreakUp::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc similarity index 84% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc rename to source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc index 741c18e6cb..199872a8f4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFermiFragment.cc +++ b/source/processes/hadronic/models/de_excitation/fermi_breakup/src/G4VFermiFragment.cc @@ -21,24 +21,24 @@ // ******************************************************************** // // -// $Id: G4VFermiFragment.cc,v 1.7 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VFermiFragment.cc,v 1.3 2003/11/04 11:04:34 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4VFermiFragment.hh" - +#include "G4HadronicException.hh" G4VFermiFragment::G4VFermiFragment(const G4VFermiFragment &) { - G4Exception("G4VFermiFragment::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VFermiFragment::copy_constructor meant to not be accessable"); } const G4VFermiFragment & G4VFermiFragment::operator=(const G4VFermiFragment &) { - G4Exception("G4VFermiFragment::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VFermiFragment::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/GNUmakefile b/source/processes/hadronic/models/de_excitation/fission/GNUmakefile similarity index 79% rename from source/processes/hadronic/models/generator/pre_equilibrium/GNUmakefile rename to source/processes/hadronic/models/de_excitation/fission/GNUmakefile index ee4710af69..0e3513fdbd 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/GNUmakefile +++ b/source/processes/hadronic/models/de_excitation/fission/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.3 2003/06/18 08:57:07 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:19 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_preequ +name := G4hadronic_deex_fission ifndef G4INSTALL G4INSTALL = ../../../../../.. @@ -23,13 +23,14 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ @@ -38,6 +39,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/materials/include - + + include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh rename to source/processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh index a549dd486c..c339f69d4b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CompetitiveFission.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4CompetitiveFission.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CompetitiveFission.hh,v 1.9 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CompetitiveFission.hh,v 1.1 2003/08/26 18:37:02 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh rename to source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh index 8382c19657..b0bcce9a07 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionBarrier.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FissionBarrier.hh,v 1.1 2003/08/26 18:37:03 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionLevelDensityParameter.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh rename to source/processes/hadronic/models/de_excitation/fission/include/G4FissionLevelDensityParameter.hh index cd48519995..eacdae333e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionLevelDensityParameter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionLevelDensityParameter.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FissionLevelDensityParameter.hh,v 1.1 2003/08/26 18:37:03 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionParameters.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh rename to source/processes/hadronic/models/de_excitation/fission/include/G4FissionParameters.hh index f44e14bdc3..2edd06ec77 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionParameters.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionParameters.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionParameters.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FissionParameters.hh,v 1.1 2003/08/26 18:37:02 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh rename to source/processes/hadronic/models/de_excitation/fission/include/G4FissionProbability.hh index bb8fa7d9bc..95edb880e5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FissionProbability.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4FissionProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionProbability.hh,v 1.7 2002/12/12 19:17:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FissionProbability.hh,v 1.1 2003/08/26 18:37:04 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4ParaFissionModel.hh similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh rename to source/processes/hadronic/models/de_excitation/fission/include/G4ParaFissionModel.hh index 27e8e8e9bd..6438584446 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ParaFissionModel.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4ParaFissionModel.hh @@ -46,11 +46,11 @@ public: SetMaxEnergy( 60.*MeV ); } - virtual G4VParticleChange* ApplyYourself(const G4Track& aTrack, + virtual G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& theNucleus) { - theParticleChange.Initialize(aTrack); - theParticleChange.SetStatusChange( fStopAndKill ); + theParticleChange.Clear(aTrack); + theParticleChange.SetStatusChange( stopAndKill ); theParticleChange.SetEnergyChange( 0.0 ); // prepare the fragment @@ -59,15 +59,15 @@ public: G4int aZ=theNucleus.GetZ(); G4double nucMass = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(aZ ,anA); - anA += aTrack.GetDynamicParticle()->GetDefinition()->GetBaryonNumber(); - aZ += aTrack.GetDynamicParticle()->GetDefinition()->GetPDGCharge(); + anA += aTrack.GetDefinition()->GetBaryonNumber(); + aZ += aTrack.GetDefinition()->GetPDGCharge(); - G4int numberOfEx = aTrack.GetDynamicParticle()->GetDefinition()->GetBaryonNumber(); - G4int numberOfCh = abs(aTrack.GetDynamicParticle()->GetDefinition()->GetPDGCharge()); + G4int numberOfEx = aTrack.GetDefinition()->GetBaryonNumber(); + G4int numberOfCh = abs(aTrack.GetDefinition()->GetPDGCharge()); G4int numberOfHoles = 0; G4double exEnergy = 0; - G4ThreeVector exciton3Momentum = aTrack.GetMomentum(); + G4ThreeVector exciton3Momentum = aTrack.Get4Momentum()i.vect(); G4double compoundMass = aTrack.GetTotalEnergy(); compoundMass += nucMass; compoundMass = sqrt(compoundMass*compoundMass - exciton3Momentum*exciton3Momentum); @@ -128,6 +128,6 @@ private: G4CompetitiveFission theFission; G4ExcitationHandler theHandler; - G4ParticleChange theParticleChange; + G4HadFinalState theParticleChange; }; #endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh b/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh rename to source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh index 0e9b95bc03..c40ce0c0ce 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VFissionBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/fission/include/G4VFissionBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VFissionBarrier.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VFissionBarrier.hh,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -31,6 +31,7 @@ #define G4VFissionBarrier_h 1 #include "globals.hh" +#include "G4HadronicException.hh" class G4VFissionBarrier diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4CompetitiveFission.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc rename to source/processes/hadronic/models/de_excitation/fission/src/G4CompetitiveFission.cc index f21679051c..98e80ac06b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CompetitiveFission.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4CompetitiveFission.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CompetitiveFission.cc,v 1.16 2003/06/16 17:06:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CompetitiveFission.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -62,7 +62,7 @@ G4CompetitiveFission::~G4CompetitiveFission() const G4CompetitiveFission & G4CompetitiveFission::operator=(const G4CompetitiveFission &) { - G4Exception("G4CompetitiveFission::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4CompetitiveFission::operator= meant to not be accessable"); return *this; } @@ -157,13 +157,13 @@ G4FragmentVector * G4CompetitiveFission::BreakUp(const G4Fragment & theNucleus) A2 = A - A1; Z2 = Z - Z1; if (A2 < 1 || Z2 < 0) - G4Exception("G4CompetitiveFission::BreakUp: Can't define second fragment! "); + throw G4HadronicException(__FILE__, __LINE__, "G4CompetitiveFission::BreakUp: Can't define second fragment! "); M2 = G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(Z2,A2)/MeV; // Check that fragment masses are less or equal than total energy // if (M1 + M2 > theNucleusMomentum.mag()/MeV) if (M1 + M2 > theNucleusMomentum.e()/MeV) - G4Exception("G4CompetitiveFission::BreakUp: Fragments Mass > Total Energy"); + throw G4HadronicException(__FILE__, __LINE__, "G4CompetitiveFission::BreakUp: Fragments Mass > Total Energy"); // Maximal Kinetic Energy (available energy for fragments) // G4double Tmax = theNucleusMomentum.mag()/MeV - M1 - M2; @@ -183,7 +183,7 @@ G4FragmentVector * G4CompetitiveFission::BreakUp(const G4Fragment & theNucleus) if (FragmentsExcitationEnergy <= 0.0) - G4Exception("G4CompetitiveFission::BreakItUp: Excitation energy for fragments < 0.0!"); + throw G4HadronicException(__FILE__, __LINE__, "G4CompetitiveFission::BreakItUp: Excitation energy for fragments < 0.0!"); // while (FragmentsExcitationEnergy < 0 && Trials < 100); @@ -215,9 +215,9 @@ G4FragmentVector * G4CompetitiveFission::BreakUp(const G4Fragment & theNucleus) // Create Fragments G4Fragment * Fragment1 = new G4Fragment( A1, Z1, FourMomentum1); - if (!Fragment1) G4Exception("G4CompetitiveFission::BreakItUp: Can't create Fragment1! "); + if (!Fragment1) throw G4HadronicException(__FILE__, __LINE__, "G4CompetitiveFission::BreakItUp: Can't create Fragment1! "); G4Fragment * Fragment2 = new G4Fragment( A2, Z2, FourMomentum2); - if (!Fragment2) G4Exception("G4CompetitiveFission::BreakItUp: Can't create Fragment2! "); + if (!Fragment2) throw G4HadronicException(__FILE__, __LINE__, "G4CompetitiveFission::BreakItUp: Can't create Fragment2! "); #ifdef PRECOMPOUND_TEST Fragment1->SetCreatorModel(G4String("G4CompetitiveFission")); @@ -460,7 +460,7 @@ G4double G4CompetitiveFission::SymmetricRatio(const G4double A,const G4double A1 G4double G4CompetitiveFission::Ratio(const G4double A,const G4double A11, const G4double B1,const G4double A00) { - if (A == 0) G4Exception("G4CompetitiveFission::Ratio: A == 0!"); + if (A == 0) throw G4HadronicException(__FILE__, __LINE__, "G4CompetitiveFission::Ratio: A == 0!"); if (A11 >= A/2.0 && A11 <= (A00+10.0)) return 1.0-B1*((A11-A00)/A)*((A11-A00)/A); else return 1.0-B1*(10.0/A)*(10.0/A)-2.0*(10.0/A)*B1*((A11-A00-10.0)/A); } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc rename to source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc index 21f12227f0..134b7c0975 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionBarrier.cc,v 1.9 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FissionBarrier.cc,v 1.2 2003/11/03 17:53:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -32,13 +32,13 @@ G4FissionBarrier::G4FissionBarrier(const G4FissionBarrier & ) : G4VFissionBarrier() { - G4Exception("G4FissionBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4FissionBarrier::copy_constructor meant to not be accessable."); } const G4FissionBarrier & G4FissionBarrier::operator=(const G4FissionBarrier & ) { - G4Exception("G4FissionBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4FissionBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionLevelDensityParameter.cc similarity index 85% rename from source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc rename to source/processes/hadronic/models/de_excitation/fission/src/G4FissionLevelDensityParameter.cc index b53cf883f4..99d31b7439 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionLevelDensityParameter.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionLevelDensityParameter.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionLevelDensityParameter.cc,v 1.8 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FissionLevelDensityParameter.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -30,19 +30,20 @@ #include "G4FissionLevelDensityParameter.hh" +#include "G4HadronicException.hh" G4FissionLevelDensityParameter:: G4FissionLevelDensityParameter(const G4FissionLevelDensityParameter &) : G4VLevelDensityParameter() { - G4Exception("G4FissionLevelDensityParameter::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FissionLevelDensityParameter::copy_constructor meant to not be accessable"); } const G4FissionLevelDensityParameter & G4FissionLevelDensityParameter:: operator=(const G4FissionLevelDensityParameter &) { - G4Exception("G4FissionLevelDensityParameter::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FissionLevelDensityParameter::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionParameters.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc rename to source/processes/hadronic/models/de_excitation/fission/src/G4FissionParameters.cc index 9fa789fad8..852d05a671 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionParameters.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionParameters.cc,v 1.11 2003/06/16 17:06:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FissionParameters.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -30,6 +30,7 @@ #include "G4FissionParameters.hh" +#include "G4HadronicException.hh" const G4double G4FissionParameters::A1 = 134.0; @@ -86,13 +87,13 @@ G4FissionParameters::G4FissionParameters(const G4int A, const G4int Z, const G4d G4FissionParameters::G4FissionParameters(const G4FissionParameters &) { - G4Exception("G4FissionParameters::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FissionParameters::copy_constructor meant to not be accessable"); } const G4FissionParameters & G4FissionParameters::operator=(const G4FissionParameters &) { - G4Exception("G4FissionParameters::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FissionParameters::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc similarity index 78% rename from source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc rename to source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc index d2460edb96..75176222cf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FissionProbability.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4FissionProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FissionProbability.cc,v 1.10 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FissionProbability.cc,v 1.4 2003/11/14 16:54:18 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -36,7 +36,7 @@ G4FissionProbability::G4FissionProbability(const G4FissionProbability &) : G4VEmissionProbability() { - G4Exception("G4FissionProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FissionProbability::copy_constructor meant to not be accessable"); } @@ -44,7 +44,7 @@ G4FissionProbability::G4FissionProbability(const G4FissionProbability &) : G4VEm const G4FissionProbability & G4FissionProbability::operator=(const G4FissionProbability &) { - G4Exception("G4FissionProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4FissionProbability::operator= meant to not be accessable"); return *this; } @@ -83,11 +83,19 @@ G4double G4FissionProbability::EmissionProbability(const G4Fragment & fragment, G4double Cf = 2.0*sqrt(afission*MaximalKineticEnergy); - G4double Q1 = 1.0 + (Cf - 1.0)*exp(Cf); - G4double Q2 = 4.0*pi*afission*exp(SystemEntropy); + // G4double Q1 = 1.0 + (Cf - 1.0)*exp(Cf); + // G4double Q2 = 4.0*pi*afission*exp(SystemEntropy); - G4double probability = Q1/Q2; + // G4double probability = Q1/Q2; + + G4double Exp1 = 0.0; + if (SystemEntropy <= 160.0) Exp1 = exp(-SystemEntropy); + // @@@@@@@@@@@@@@@@@ hpw changed max to min - cannot notify vicente now since cern mail gave up on me... + G4double Exp2 = exp( std::min(700.0,Cf-SystemEntropy) ); + + G4double probability = (Exp1 + (1.0-Cf)*Exp2) / 4.0*pi*afission; + return probability; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc b/source/processes/hadronic/models/de_excitation/fission/src/G4VFissionBarrier.cc similarity index 85% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc rename to source/processes/hadronic/models/de_excitation/fission/src/G4VFissionBarrier.cc index bd0983bd56..fdb9636405 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VFissionBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/fission/src/G4VFissionBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VFissionBarrier.cc,v 1.7 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VFissionBarrier.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -32,13 +32,13 @@ G4VFissionBarrier::G4VFissionBarrier(const G4VFissionBarrier & ) { - G4Exception("G4VFissionBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VFissionBarrier::copy_constructor meant to not be accessable."); } const G4VFissionBarrier & G4VFissionBarrier::operator=(const G4VFissionBarrier & ) { - G4Exception("G4VFissionBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VFissionBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/GNUmakefile b/source/processes/hadronic/models/de_excitation/gem_evaporation/GNUmakefile similarity index 73% rename from source/processes/hadronic/models/generator/de_excitation/GNUmakefile rename to source/processes/hadronic/models/de_excitation/gem_evaporation/GNUmakefile index 92efeef9c4..29e2acef67 100644 --- a/source/processes/hadronic/models/generator/de_excitation/GNUmakefile +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.5 2003/06/18 09:03:26 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:19 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_deex +name := G4hadronic_deex_gem_evaporation ifndef G4INSTALL G4INSTALL = ../../../../../.. @@ -28,7 +28,11 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fission/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ @@ -37,16 +41,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/materials/include - + + include $(G4INSTALL)/config/common.gmk -CXXFLAGS_WITHOUT_O := $(filter-out -O% , $(CXXFLAGS)) -CXXFLAGS_WITHOUT_O := $(filter-out +O% , $(CXXFLAGS_WITHOUT_O)) - -ifeq ($(G4SYSTEM),HP-aCC) -COMPILER := $(shell aCC -V 2>&1) -ifeq ($(COMPILER), aCC: HP ANSI C++ B3910B A.01.15) -$(G4TMP)/$(G4SYSTEM)/$(name)/G4Evaporation.o: src/G4Evaporation.cc - $(CXX) $(CXXFLAGS_WITHOUT_O) $(CPPFLAGS) -c $(OUT_OBJ)$@ src/G4Evaporation.cc -endif -endif diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh index b4d56048d1..9dee3f44e7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaGEMChannel.hh,v 1.1 2002/06/06 17:37:06 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaGEMChannel.hh,v 1.1 2003/08/26 18:41:35 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMProbability.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMProbability.hh index f6976dfb31..5350499036 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4AlphaGEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaGEMProbability.hh,v 1.3 2003/06/16 17:04:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaGEMProbability.hh,v 1.1 2003/08/26 18:41:36 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh index c0bd53afc8..af916b439e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B10GEMChannel.hh,v 1.1 2002/06/06 17:37:09 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B10GEMChannel.hh,v 1.1 2003/08/26 18:41:36 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh index d53ab60239..646a421dcb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B10GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B10GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:37 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMProbability.hh index 599479ff00..cfab2e0923 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B10GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B10GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B10GEMProbability.hh,v 1.2 2003/06/16 17:04:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B10GEMProbability.hh,v 1.1 2003/08/26 18:41:37 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh index d06cd41a57..c0551312b4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B11GEMChannel.hh,v 1.1 2002/06/06 17:37:12 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B11GEMChannel.hh,v 1.1 2003/08/26 18:41:38 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh index 146b63aca5..1053fe18ce 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B11GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B11GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:38 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMProbability.hh index 820110ea06..65610186ef 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B11GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B11GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B11GEMProbability.hh,v 1.2 2003/06/16 17:04:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B11GEMProbability.hh,v 1.1 2003/08/26 18:41:39 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh index ddcd388aff..66d30d541a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B12GEMChannel.hh,v 1.1 2002/06/06 17:37:16 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B12GEMChannel.hh,v 1.1 2003/08/26 18:41:39 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh index 4e3e91af33..916a10d8e8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B12GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B12GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:40 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMProbability.hh index 104922e8f0..7a842d9c20 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B12GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B12GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B12GEMProbability.hh,v 1.2 2003/06/16 17:04:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B12GEMProbability.hh,v 1.1 2003/08/26 18:41:40 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh index 77f1b7bcb5..0ae82b3ac2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B13GEMChannel.hh,v 1.1 2002/06/06 17:37:19 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B13GEMChannel.hh,v 1.1 2003/08/26 18:41:41 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh index 976fa7ea0f..f9db65ce8f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B13GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B13GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:41 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMProbability.hh index 532b608bd8..a55307ad2a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B13GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B13GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B13GEMProbability.hh,v 1.2 2003/06/16 17:04:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B13GEMProbability.hh,v 1.1 2003/08/26 18:41:42 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh index c5c2bd6d63..4f11f5c392 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B8GEMChannel.hh,v 1.1 2002/06/06 17:37:24 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B8GEMChannel.hh,v 1.1 2003/08/26 18:41:42 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh index 3e206b7648..f6a70895fc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B8GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B8GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:43 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMProbability.hh index b4ea6ac089..f462a15d9b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4B8GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4B8GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B8GEMProbability.hh,v 1.2 2003/06/16 17:04:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B8GEMProbability.hh,v 1.1 2003/08/26 18:41:43 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh index a5afc28667..631200f63f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be10GEMChannel.hh,v 1.1 2002/06/06 17:39:25 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be10GEMChannel.hh,v 1.1 2003/08/26 18:41:44 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh index 8f5f49f0aa..57d90755a3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be10GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be10GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:44 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMProbability.hh index 6ca409505e..108b873a46 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be10GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be10GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be10GEMProbability.hh,v 1.2 2003/06/16 17:04:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be10GEMProbability.hh,v 1.1 2003/08/26 18:41:45 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh index 089981c0c5..f5346d1863 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be11GEMChannel.hh,v 1.1 2002/06/06 17:39:30 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be11GEMChannel.hh,v 1.1 2003/08/26 18:41:45 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh index 518aa93d84..bbf5641dfe 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be11GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be11GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:46 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMProbability.hh index 174a4cc9f0..d8b3d36c5a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be11GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be11GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be11GEMProbability.hh,v 1.2 2003/06/16 17:04:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be11GEMProbability.hh,v 1.1 2003/08/26 18:41:46 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh index f94ba9279f..5b4fac6dc3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be12GEMChannel.hh,v 1.1 2002/06/06 17:39:34 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be12GEMChannel.hh,v 1.1 2003/08/26 18:41:47 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh index e82b991c01..abcbeb2af6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be12GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be12GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:47 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMProbability.hh index 458472fb10..2cf5f1ce35 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be12GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be12GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be12GEMProbability.hh,v 1.2 2003/06/16 17:04:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be12GEMProbability.hh,v 1.1 2003/08/26 18:41:48 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh index 01d7ed1be2..bcc6cf39c7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be7GEMChannel.hh,v 1.1 2002/06/06 17:39:37 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be7GEMChannel.hh,v 1.1 2003/08/26 18:41:48 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh index f1affccaab..cfe796df73 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be7GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be7GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:49 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMProbability.hh index e9b0cdb788..4c2a5215ed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be7GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be7GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be7GEMProbability.hh,v 1.2 2003/06/16 17:04:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be7GEMProbability.hh,v 1.1 2003/08/26 18:41:49 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh index 3b3e91b123..5e6a9cdca8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be9GEMChannel.hh,v 1.1 2002/06/06 17:40:20 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be9GEMChannel.hh,v 1.1 2003/08/26 18:41:50 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh index ce61146966..7871bd0269 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be9GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be9GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:50 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMProbability.hh index abcaf33e08..05a89f8b1f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Be9GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Be9GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be9GEMProbability.hh,v 1.2 2003/06/16 17:04:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be9GEMProbability.hh,v 1.1 2003/08/26 18:41:51 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh index 8afde6bc99..898c56199f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C10GEMChannel.hh,v 1.1 2002/06/06 17:40:23 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C10GEMChannel.hh,v 1.1 2003/08/26 18:41:51 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh index c0fcfc06c8..419fa76fcb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C10GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C10GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:52 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMProbability.hh index b9b41bf7ab..0a9653b3bf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C10GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C10GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C10GEMProbability.hh,v 1.2 2003/06/16 17:04:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C10GEMProbability.hh,v 1.1 2003/08/26 18:41:52 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh index e52bd9b3b8..40d8242c4b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C11GEMChannel.hh,v 1.1 2002/06/06 17:40:26 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C11GEMChannel.hh,v 1.1 2003/08/26 18:41:53 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh index 01a43056e3..5e74d5a402 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C11GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C11GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:53 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMProbability.hh index 0bd930d218..ac29975059 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C11GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C11GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C11GEMProbability.hh,v 1.2 2003/06/16 17:04:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C11GEMProbability.hh,v 1.1 2003/08/26 18:41:54 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh index cb18508216..9274e223c5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C12GEMChannel.hh,v 1.1 2002/06/06 17:40:29 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C12GEMChannel.hh,v 1.1 2003/08/26 18:41:54 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh index 3fb6211e27..c011b7d46f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C12GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C12GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:55 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMProbability.hh index 893c8c3a77..01a9297302 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C12GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C12GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C12GEMProbability.hh,v 1.2 2003/06/16 17:04:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C12GEMProbability.hh,v 1.1 2003/08/26 18:41:55 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh index a79bc3381b..d0a6041746 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C13GEMChannel.hh,v 1.1 2002/06/06 17:40:32 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C13GEMChannel.hh,v 1.1 2003/08/26 18:41:56 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh index 616d4b4af5..a21886d48a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C13GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C13GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:56 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMProbability.hh index 82a201dcd8..2201aec606 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C13GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C13GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C13GEMProbability.hh,v 1.2 2003/06/16 17:04:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C13GEMProbability.hh,v 1.1 2003/08/26 18:41:57 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh index 7907ade26f..d359a24f81 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C14GEMChannel.hh,v 1.1 2002/06/06 17:40:36 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C14GEMChannel.hh,v 1.1 2003/08/26 18:41:57 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh index 98ee1c6cb2..bc2e22ed10 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C14GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C14GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:58 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMProbability.hh index 13b43ddab1..c86153b70f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C14GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C14GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C14GEMProbability.hh,v 1.2 2003/06/16 17:04:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C14GEMProbability.hh,v 1.1 2003/08/26 18:41:58 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh index 8abca76eb8..3c3afc990b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C15GEMChannel.hh,v 1.1 2002/06/06 17:40:40 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C15GEMChannel.hh,v 1.1 2003/08/26 18:41:59 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh index 99d847a710..948a43918d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C15GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C15GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:41:59 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMProbability.hh index b985ad8b21..8583430e58 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C15GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C15GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C15GEMProbability.hh,v 1.2 2003/06/16 17:04:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C15GEMProbability.hh,v 1.1 2003/08/26 18:42:00 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh index d05f08e40e..39bcb8ef05 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C16GEMChannel.hh,v 1.1 2002/06/06 17:40:43 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C16GEMChannel.hh,v 1.1 2003/08/26 18:42:00 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh index 9d2a411cec..94d452da4d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C16GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C16GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:01 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMProbability.hh index 18463584d5..cd43318d1d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4C16GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4C16GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C16GEMProbability.hh,v 1.2 2003/06/16 17:04:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C16GEMProbability.hh,v 1.1 2003/08/26 18:42:01 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh index 3dffd0355c..9f2c5e6a2c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronGEMChannel.hh,v 1.1 2002/06/06 17:41:07 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronGEMChannel.hh,v 1.1 2003/08/26 18:42:02 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMProbability.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMProbability.hh index b4659547b0..fdc2d1ab78 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4DeuteronGEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronGEMProbability.hh,v 1.3 2003/06/16 17:04:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronGEMProbability.hh,v 1.1 2003/08/26 18:42:02 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4EvaporationGEMFactory.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4EvaporationGEMFactory.hh index 70f5536324..58f24910db 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationGEMFactory.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4EvaporationGEMFactory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationGEMFactory.hh,v 1.4 2003/06/16 17:04:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationGEMFactory.hh,v 1.1 2003/08/26 18:42:03 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh index 7b6f4b2d45..1cc6a99f44 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F17GEMChannel.hh,v 1.1 2002/06/06 17:41:46 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F17GEMChannel.hh,v 1.1 2003/08/26 18:42:03 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh index e0b0851c6e..a3430afb3c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F17GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F17GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:04 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMProbability.hh index d065d0856c..a25d55bd02 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F17GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F17GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F17GEMProbability.hh,v 1.2 2003/06/16 17:05:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F17GEMProbability.hh,v 1.1 2003/08/26 18:42:04 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh index 2e36a4772a..72c925d1e2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F18GEMChannel.hh,v 1.1 2002/06/06 17:41:49 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F18GEMChannel.hh,v 1.1 2003/08/26 18:42:05 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh index 1a549924d5..d946250cce 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F18GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F18GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:05 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMProbability.hh index a4d2934294..8c83fa58e0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F18GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F18GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F18GEMProbability.hh,v 1.2 2003/06/16 17:05:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F18GEMProbability.hh,v 1.1 2003/08/26 18:42:06 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh index 86ba60fcb0..fe6df15811 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F19GEMChannel.hh,v 1.1 2002/06/06 17:41:52 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F19GEMChannel.hh,v 1.1 2003/08/26 18:42:06 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh index 7015578829..4dbe4d9261 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F19GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F19GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:07 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMProbability.hh index 1997c0ee6d..b300275511 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F19GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F19GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F19GEMProbability.hh,v 1.2 2003/06/16 17:05:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F19GEMProbability.hh,v 1.1 2003/08/26 18:42:07 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh index 76defa3574..97606b987d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F20GEMChannel.hh,v 1.1 2002/06/06 17:41:56 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F20GEMChannel.hh,v 1.1 2003/08/26 18:42:08 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh index 011620e812..6e5e53cfca 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F20GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F20GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:09 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMProbability.hh index 8cf789a1b2..dc33da8dcc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F20GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F20GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F20GEMProbability.hh,v 1.2 2003/06/16 17:05:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F20GEMProbability.hh,v 1.1 2003/08/26 18:42:09 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh index b472bf9542..0172d2ed01 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F21GEMChannel.hh,v 1.1 2002/06/06 17:42:00 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F21GEMChannel.hh,v 1.1 2003/08/26 18:42:10 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh index 13b140099f..a17f6d2a1d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F21GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F21GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:10 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMProbability.hh index 9fabd69174..7a9d33d4c4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4F21GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4F21GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F21GEMProbability.hh,v 1.2 2003/06/16 17:05:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F21GEMProbability.hh,v 1.1 2003/08/26 18:42:11 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh index 151cd6dac6..87ed9cff1f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GEMChannel.hh,v 1.3 2002/11/12 02:10:57 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GEMChannel.hh,v 1.2 2003/08/29 08:24:13 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -34,7 +34,6 @@ #include "G4VEvaporationChannel.hh" #include "G4GEMProbability.hh" -#include "G4EvaporationProbability.hh" #include "G4VLevelDensityParameter.hh" #include "G4VCoulombBarrier.hh" #include "G4EvaporationLevelDensityParameter.hh" diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh index e62c8defaf..20040f26d8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMCoulombBarrierHE.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMCoulombBarrierHE.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GEMCoulombBarrierHE.hh,v 1.2 2002/12/12 19:17:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GEMCoulombBarrierHE.hh,v 1.1 2003/08/26 18:42:12 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMProbability.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4GEMProbability.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh index 916ae3c929..ce9d4076ab 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3GEMChannel.hh,v 1.1 2002/06/06 17:43:08 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3GEMChannel.hh,v 1.1 2003/08/26 18:42:13 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMProbability.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMProbability.hh index 41885fb6af..2010357c36 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He3GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3GEMProbability.hh,v 1.3 2003/06/16 17:05:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3GEMProbability.hh,v 1.1 2003/08/26 18:42:14 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh index 50e1aafda9..64f324b9ec 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He6GEMChannel.hh,v 1.1 2002/06/06 17:43:10 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He6GEMChannel.hh,v 1.1 2003/08/26 18:42:14 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh index b3ce18394a..261570a54a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He6GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He6GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:15 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMProbability.hh index c0e87d4d5d..6fd59f1329 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He6GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He6GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He6GEMProbability.hh,v 1.2 2003/06/16 17:05:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He6GEMProbability.hh,v 1.1 2003/08/26 18:42:15 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh index 0abef8ab70..59b231869b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He8GEMChannel.hh,v 1.1 2002/06/06 17:43:14 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He8GEMChannel.hh,v 1.1 2003/08/26 18:42:16 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh index 58a743033e..9ff0c36ce5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He8GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He8GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:16 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMProbability.hh index 436e0b2f3a..4f5acb7e38 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He8GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4He8GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He8GEMProbability.hh,v 1.2 2003/06/16 17:05:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He8GEMProbability.hh,v 1.1 2003/08/26 18:42:17 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh index 0181d0e0ae..dd9e8b29ec 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li6GEMChannel.hh,v 1.1 2002/06/06 17:48:45 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li6GEMChannel.hh,v 1.1 2003/08/26 18:42:17 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh index 4c771f85aa..06b2118d80 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li6GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li6GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:18 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMProbability.hh index 631ae59e7d..164c9f376d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li6GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li6GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li6GEMProbability.hh,v 1.2 2003/06/16 17:05:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li6GEMProbability.hh,v 1.1 2003/08/26 18:42:18 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh index 8ab590b55b..a47c9017db 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li7GEMChannel.hh,v 1.1 2002/06/06 17:48:49 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li7GEMChannel.hh,v 1.1 2003/08/26 18:42:19 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh index 9723986132..65b053579d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li7GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li7GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:19 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMProbability.hh index 638fa85927..5602e17d42 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li7GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li7GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li7GEMProbability.hh,v 1.2 2003/06/16 17:05:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li7GEMProbability.hh,v 1.1 2003/08/26 18:42:20 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh index 6766c633b0..13b99619cf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li8GEMChannel.hh,v 1.1 2002/06/06 17:48:52 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li8GEMChannel.hh,v 1.1 2003/08/26 18:42:20 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh index d3e0bb46bd..98cf32d746 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li8GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li8GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:21 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMProbability.hh index 500c860b1a..8b41682790 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li8GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li8GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li8GEMProbability.hh,v 1.2 2003/06/16 17:05:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li8GEMProbability.hh,v 1.1 2003/08/26 18:42:22 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh index 6b8508d853..e785a70488 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li9GEMChannel.hh,v 1.1 2002/06/06 17:48:55 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li9GEMChannel.hh,v 1.1 2003/08/26 18:42:22 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh index 3fe715a95f..cb20d54864 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li9GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li9GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:23 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMProbability.hh index 8e76c8b0ef..8406cd0276 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Li9GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Li9GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li9GEMProbability.hh,v 1.2 2003/06/16 17:05:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li9GEMProbability.hh,v 1.1 2003/08/26 18:42:23 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh index 60a38b7501..7f3db52c00 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg22GEMChannel.hh,v 1.1 2002/06/06 17:48:59 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg22GEMChannel.hh,v 1.1 2003/08/26 18:42:24 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh index 55495357de..10188ae093 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg22GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg22GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:24 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMProbability.hh index 2c1c453597..0c1008cb87 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg22GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg22GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg22GEMProbability.hh,v 1.2 2003/06/16 17:05:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg22GEMProbability.hh,v 1.1 2003/08/26 18:42:25 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh index 4732491536..480c382c0c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg23GEMChannel.hh,v 1.1 2002/06/06 17:49:02 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg23GEMChannel.hh,v 1.1 2003/08/26 18:42:25 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh index 19795b6552..9d2809a111 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg23GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg23GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:26 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMProbability.hh index 402537bd6a..0e9e2564ff 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg23GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg23GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg23GEMProbability.hh,v 1.2 2003/06/16 17:05:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg23GEMProbability.hh,v 1.1 2003/08/26 18:42:26 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh index 35eb3bdff2..4fb9fcb91c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg24GEMChannel.hh,v 1.1 2002/06/06 17:49:05 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg24GEMChannel.hh,v 1.1 2003/08/26 18:42:28 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh index baba1f71f5..a8263734db 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg24GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg24GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:28 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMProbability.hh index 769789578f..d4f31182a0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg24GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg24GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg24GEMProbability.hh,v 1.2 2003/06/16 17:05:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg24GEMProbability.hh,v 1.1 2003/08/26 18:42:29 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh index 0e9f9bf3ee..d65688cc5a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg25GEMChannel.hh,v 1.1 2002/06/06 17:49:09 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg25GEMChannel.hh,v 1.1 2003/08/26 18:42:29 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh index c05de96112..c3df9f44c3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg25GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg25GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:30 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMProbability.hh index f0b4a317ea..cac4a22f6c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg25GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg25GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg25GEMProbability.hh,v 1.2 2003/06/16 17:05:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg25GEMProbability.hh,v 1.1 2003/08/26 18:42:30 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh index 4644f8eef7..dce6ec10b3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg26GEMChannel.hh,v 1.1 2002/06/06 17:49:12 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg26GEMChannel.hh,v 1.1 2003/08/26 18:42:31 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh index bc0448e4e7..6a85c5683e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg26GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg26GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:31 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMProbability.hh index dfa215f323..c48964ef59 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg26GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg26GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg26GEMProbability.hh,v 1.2 2003/06/16 17:05:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg26GEMProbability.hh,v 1.1 2003/08/26 18:42:32 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh index ffddbd512d..29ef0186a7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg27GEMChannel.hh,v 1.1 2002/06/06 17:49:16 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg27GEMChannel.hh,v 1.1 2003/08/26 18:42:32 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh index ba9bc45bf3..715a3a16fa 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg27GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg27GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:33 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMProbability.hh index 160ea4c92d..ef1fe621d9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg27GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg27GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg27GEMProbability.hh,v 1.2 2003/06/16 17:05:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg27GEMProbability.hh,v 1.1 2003/08/26 18:42:33 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh index 6b523c17db..38344604f5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg28GEMChannel.hh,v 1.1 2002/06/06 17:49:19 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg28GEMChannel.hh,v 1.1 2003/08/26 18:42:34 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh index 6a6bae624f..8699e53fb0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg28GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg28GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:34 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMProbability.hh index d195a26eac..dc425bdb3d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Mg28GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Mg28GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg28GEMProbability.hh,v 1.2 2003/06/16 17:05:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg28GEMProbability.hh,v 1.1 2003/08/26 18:42:35 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh index 1bdda02a17..419ea597c2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N12GEMChannel.hh,v 1.1 2002/06/06 17:49:24 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N12GEMChannel.hh,v 1.1 2003/08/26 18:42:35 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh index 990ac0ba60..c28cc91143 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N12GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N12GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:36 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMProbability.hh index de5b779de0..ba8d799d56 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N12GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N12GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N12GEMProbability.hh,v 1.2 2003/06/16 17:05:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N12GEMProbability.hh,v 1.1 2003/08/26 18:42:36 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh index 29fa006eec..e7348a4ef3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N13GEMChannel.hh,v 1.1 2002/06/06 17:49:28 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N13GEMChannel.hh,v 1.1 2003/08/26 18:42:37 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh index 05a1b4ab4b..3dbe3eaad3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N13GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N13GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:38 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMProbability.hh index 089a5c8ab0..f636e075cb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N13GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N13GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N13GEMProbability.hh,v 1.2 2003/06/16 17:05:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N13GEMProbability.hh,v 1.1 2003/08/26 18:42:38 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh index a402163762..beb1d2c1c3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N14GEMChannel.hh,v 1.1 2002/06/06 17:49:52 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N14GEMChannel.hh,v 1.1 2003/08/26 18:42:39 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh index 7f9f66c52f..e166f0b237 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N14GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N14GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:39 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMProbability.hh index 9c04d75e41..67ced7ec3c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N14GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N14GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N14GEMProbability.hh,v 1.2 2003/06/16 17:05:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N14GEMProbability.hh,v 1.1 2003/08/26 18:42:40 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh index 1d5dfacdc7..568b4dbba9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N15GEMChannel.hh,v 1.1 2002/06/06 17:49:56 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N15GEMChannel.hh,v 1.1 2003/08/26 18:42:40 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh index 4a23a0461c..8699a3e9ff 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N15GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N15GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:41 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMProbability.hh index 9008f1ef07..acd932b8ca 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N15GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N15GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N15GEMProbability.hh,v 1.2 2003/06/16 17:05:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N15GEMProbability.hh,v 1.1 2003/08/26 18:42:41 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh index db04d6d09b..378afe3ea2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N16GEMChannel.hh,v 1.1 2002/06/06 17:49:59 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N16GEMChannel.hh,v 1.1 2003/08/26 18:42:42 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh index 5ef3a07161..60e199df85 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N16GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N16GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:42 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMProbability.hh index 87420bc0f3..d52e2bf25a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N16GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N16GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N16GEMProbability.hh,v 1.2 2003/06/16 17:05:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N16GEMProbability.hh,v 1.1 2003/08/26 18:42:43 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh index c0662b60f3..ddcc4b6c38 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N17GEMChannel.hh,v 1.1 2002/06/06 17:50:02 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N17GEMChannel.hh,v 1.1 2003/08/26 18:42:43 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh index f7fde48823..76c48c9a69 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N17GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N17GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:44 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMProbability.hh index 81078d2a04..852b9c58fd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4N17GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4N17GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N17GEMProbability.hh,v 1.2 2003/06/16 17:05:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N17GEMProbability.hh,v 1.1 2003/08/26 18:42:44 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh index 4715b760d0..49564401bb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na21GEMChannel.hh,v 1.1 2002/06/06 17:50:05 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na21GEMChannel.hh,v 1.1 2003/08/26 18:42:45 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh index 685c9e29fd..a0bd7f4db3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na21GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na21GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:45 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMProbability.hh index 1979a9d05d..52c31ed4db 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na21GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na21GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na21GEMProbability.hh,v 1.2 2003/06/16 17:05:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na21GEMProbability.hh,v 1.1 2003/08/26 18:42:46 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh index 247568df56..eeeb8e1c8f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na22GEMChannel.hh,v 1.1 2002/06/06 17:50:08 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na22GEMChannel.hh,v 1.1 2003/08/26 18:42:47 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh index 6ec9ef5ced..d4f603989b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na22GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na22GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:47 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMProbability.hh index edfbfd0d71..9371dae3c4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na22GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na22GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na22GEMProbability.hh,v 1.2 2003/06/16 17:05:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na22GEMProbability.hh,v 1.1 2003/08/26 18:42:48 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh index 4e386683e2..6d03ae25b8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na23GEMChannel.hh,v 1.1 2002/06/06 17:50:11 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na23GEMChannel.hh,v 1.1 2003/08/26 18:42:48 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh index 469eaa7918..baad0caab1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na23GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na23GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:49 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMProbability.hh index 35e76c3bd1..661f7961d0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na23GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na23GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na23GEMProbability.hh,v 1.2 2003/06/16 17:05:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na23GEMProbability.hh,v 1.1 2003/08/26 18:42:49 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh index 46965cf3e0..20c0992b4c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na24GEMChannel.hh,v 1.1 2002/06/06 17:50:14 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na24GEMChannel.hh,v 1.1 2003/08/26 18:42:50 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh index cd0af96bdd..bdce79bcde 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na24GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na24GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:50 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMProbability.hh index ac2e2a1363..13654b3345 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na24GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na24GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na24GEMProbability.hh,v 1.2 2003/06/16 17:05:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na24GEMProbability.hh,v 1.1 2003/08/26 18:42:51 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh index e29f41faca..6975bd6cf2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na25GEMChannel.hh,v 1.1 2002/06/06 17:50:41 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na25GEMChannel.hh,v 1.1 2003/08/26 18:42:51 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh index d8264ed5d8..b5e60c530f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na25GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na25GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:52 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMProbability.hh index 92eb80f417..7d12b43029 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Na25GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Na25GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na25GEMProbability.hh,v 1.2 2003/06/16 17:05:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na25GEMProbability.hh,v 1.1 2003/08/26 18:42:52 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh index d05f82b948..e0dc6fc5ef 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne18GEMChannel.hh,v 1.1 2002/06/06 17:50:45 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne18GEMChannel.hh,v 1.1 2003/08/26 18:42:53 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh index 9902f825d3..fa6d7a60f1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne18GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne18GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:53 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMProbability.hh index 8a524390bc..0485b5f759 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne18GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne18GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne18GEMProbability.hh,v 1.2 2003/06/16 17:05:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne18GEMProbability.hh,v 1.1 2003/08/26 18:42:54 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh index d0ee9b8c57..dac615581d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne19GEMChannel.hh,v 1.1 2002/06/06 17:50:49 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne19GEMChannel.hh,v 1.1 2003/08/26 18:42:55 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh index 750eb9a446..5bd6c8dd28 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne19GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne19GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:55 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMProbability.hh index 242e7b07b1..d6c91423a5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne19GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne19GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne19GEMProbability.hh,v 1.2 2003/06/16 17:05:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne19GEMProbability.hh,v 1.1 2003/08/26 18:42:56 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh index def9f249eb..e9ab1f801b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne20GEMChannel.hh,v 1.1 2002/06/06 17:50:52 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne20GEMChannel.hh,v 1.1 2003/08/26 18:42:56 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh index 8a0208e43d..e3826a3da5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne20GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne20GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:57 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMProbability.hh index 09a722ec99..3479caaed0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne20GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne20GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne20GEMProbability.hh,v 1.2 2003/06/16 17:05:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne20GEMProbability.hh,v 1.1 2003/08/26 18:42:57 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh index e555d7ea3b..5fc8acc868 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne21GEMChannel.hh,v 1.1 2002/06/06 17:50:55 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne21GEMChannel.hh,v 1.1 2003/08/26 18:42:58 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh index 3916590594..b79ba38226 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne21GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne21GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:42:58 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMProbability.hh index 7586db504e..7d97fdff81 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne21GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne21GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne21GEMProbability.hh,v 1.2 2003/06/16 17:05:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne21GEMProbability.hh,v 1.1 2003/08/26 18:42:59 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh index 0c225f76f0..6882695da1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne22GEMChannel.hh,v 1.1 2002/06/06 17:50:58 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne22GEMChannel.hh,v 1.1 2003/08/26 18:42:59 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh index 70e4dc243b..41e1bcce04 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne22GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne22GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:00 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMProbability.hh index 36d5ef810a..6576f0fe9a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne22GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne22GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne22GEMProbability.hh,v 1.2 2003/06/16 17:05:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne22GEMProbability.hh,v 1.1 2003/08/26 18:43:00 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh index 43c4aa7a0b..d5c343c72b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne23GEMChannel.hh,v 1.1 2002/06/06 17:51:01 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne23GEMChannel.hh,v 1.1 2003/08/26 18:43:01 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh index 6a87ce83d9..183b06da54 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne23GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne23GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:01 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMProbability.hh index 0a5718008c..6c62bae226 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne23GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne23GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne23GEMProbability.hh,v 1.2 2003/06/16 17:05:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne23GEMProbability.hh,v 1.1 2003/08/26 18:43:02 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh index 895db655fd..cbd846bcb5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne24GEMChannel.hh,v 1.1 2002/06/06 17:51:05 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne24GEMChannel.hh,v 1.1 2003/08/26 18:43:02 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh index b097d0793a..a3af83fafc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne24GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne24GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:03 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMProbability.hh index 14de17a629..30f9ddb543 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Ne24GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4Ne24GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne24GEMProbability.hh,v 1.2 2003/06/16 17:05:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne24GEMProbability.hh,v 1.1 2003/08/26 18:43:03 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh index e3f605b7a1..b7c54ec6cc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronGEMChannel.hh,v 1.1 2002/06/06 17:51:31 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronGEMChannel.hh,v 1.1 2003/08/26 18:43:04 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMProbability.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMProbability.hh index e6bbc3fe31..708c65db4d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4NeutronGEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronGEMProbability.hh,v 1.3 2003/06/16 17:05:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronGEMProbability.hh,v 1.1 2003/08/26 18:43:05 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh index 389bbb1097..efd42f746f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O14GEMChannel.hh,v 1.1 2002/06/06 17:51:55 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O14GEMChannel.hh,v 1.1 2003/08/26 18:43:05 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh index 8ec502d25d..366fe9cd54 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O14GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O14GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:06 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMProbability.hh index ab889269f8..4bd335704f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O14GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O14GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O14GEMProbability.hh,v 1.2 2003/06/16 17:05:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O14GEMProbability.hh,v 1.1 2003/08/26 18:43:06 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh index 54444e4a0c..18fc7a108c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O15GEMChannel.hh,v 1.1 2002/06/06 17:51:59 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O15GEMChannel.hh,v 1.1 2003/08/26 18:43:07 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh index 1066232012..f02624958d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O15GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O15GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:07 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMProbability.hh index ca3d9316e1..e1eb340c93 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O15GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O15GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O15GEMProbability.hh,v 1.2 2003/06/16 17:05:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O15GEMProbability.hh,v 1.1 2003/08/26 18:43:08 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh index 352176e8c9..cd4391d2f2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O16GEMChannel.hh,v 1.1 2002/06/06 17:52:03 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O16GEMChannel.hh,v 1.1 2003/08/26 18:43:08 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh index dc34d216a1..c495d835b6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O16GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O16GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:09 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMProbability.hh index 7d1482d271..0f5eabfe57 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O16GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O16GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O16GEMProbability.hh,v 1.2 2003/06/16 17:05:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O16GEMProbability.hh,v 1.1 2003/08/26 18:43:09 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh index af974b639c..a7ba71ea3c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O17GEMChannel.hh,v 1.1 2002/06/06 17:52:06 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O17GEMChannel.hh,v 1.1 2003/08/26 18:43:10 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh index 9f7efc1d37..7fcca3d313 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O17GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O17GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:10 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMProbability.hh index 30c04e76b6..314a02de42 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O17GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O17GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O17GEMProbability.hh,v 1.2 2003/06/16 17:05:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O17GEMProbability.hh,v 1.1 2003/08/26 18:43:11 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh index b4828c16db..aac8c28276 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O18GEMChannel.hh,v 1.1 2002/06/06 17:52:10 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O18GEMChannel.hh,v 1.1 2003/08/26 18:43:12 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh index 5f222290db..56e5a59ad6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O18GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O18GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:12 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMProbability.hh index 534a05098c..f886626385 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O18GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O18GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O18GEMProbability.hh,v 1.2 2003/06/16 17:05:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O18GEMProbability.hh,v 1.1 2003/08/26 18:43:13 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh index dbd43aaf0c..b62f5f004e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O19GEMChannel.hh,v 1.1 2002/06/06 17:52:13 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O19GEMChannel.hh,v 1.1 2003/08/26 18:43:13 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh index c3557e31c0..ce837b8c45 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O19GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O19GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:14 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMProbability.hh index 27cfe6d3ce..0b25d21791 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O19GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O19GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O19GEMProbability.hh,v 1.2 2003/06/16 17:05:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O19GEMProbability.hh,v 1.1 2003/08/26 18:43:14 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh index fad1303c1f..e2eff138df 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O20GEMChannel.hh,v 1.1 2002/06/06 17:52:16 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O20GEMChannel.hh,v 1.1 2003/08/26 18:43:15 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh index 642ee5349a..3bd7d65ccb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O20GEMCoulombBarrier.hh,v 1.2 2002/12/12 19:17:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O20GEMCoulombBarrier.hh,v 1.1 2003/08/26 18:43:15 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMProbability.hh index 86900bd466..c0b106b08d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4O20GEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4O20GEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O20GEMProbability.hh,v 1.2 2003/06/16 17:05:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O20GEMProbability.hh,v 1.1 2003/08/26 18:43:16 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh index c8974636f4..0f7673912d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonGEMChannel.hh,v 1.1 2002/06/06 17:53:13 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonGEMChannel.hh,v 1.1 2003/08/26 18:43:16 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMProbability.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMProbability.hh index 71fe0c9ae9..ef1d3cd350 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4ProtonGEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonGEMProbability.hh,v 1.3 2003/06/16 17:05:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonGEMProbability.hh,v 1.1 2003/08/26 18:43:17 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh index 4a9bdaa668..58cfe25826 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMChannel.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonGEMChannel.hh,v 1.1 2002/06/06 17:53:47 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonGEMChannel.hh,v 1.1 2003/08/26 18:43:17 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept. 2001) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMProbability.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh rename to source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMProbability.hh index efbd7a6fc7..33dc2b3b25 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonGEMProbability.hh +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/include/G4TritonGEMProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonGEMProbability.hh,v 1.3 2003/06/16 17:06:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonGEMProbability.hh,v 1.1 2003/08/26 18:43:18 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMChannel.cc index 7e204e1742..6632f17d49 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaGEMChannel.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaGEMChannel.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4AlphaGEMChannel & G4AlphaGEMChannel::operator=(const G4AlphaGEMChannel & ) { - G4Exception("G4AlphaGEMChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaGEMChannel::operator= meant to not be accessable"); return *this; } G4AlphaGEMChannel::G4AlphaGEMChannel(const G4AlphaGEMChannel & ): G4GEMChannel() { - G4Exception("G4AlphaGEMChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaGEMChannel::CopyConstructor meant to not be accessable"); } G4bool G4AlphaGEMChannel::operator==(const G4AlphaGEMChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMProbability.cc index 5a31d1d18d..8b52e23603 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4AlphaGEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaGEMProbability.cc,v 1.3 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaGEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -58,7 +58,7 @@ G4AlphaGEMProbability::G4AlphaGEMProbability() : G4AlphaGEMProbability::G4AlphaGEMProbability(const G4AlphaGEMProbability &) : G4GEMProbability() { - G4Exception("G4AlphaGEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaGEMProbability::copy_constructor meant to not be accessable"); } @@ -67,7 +67,7 @@ G4AlphaGEMProbability::G4AlphaGEMProbability(const G4AlphaGEMProbability &) : G4 const G4AlphaGEMProbability & G4AlphaGEMProbability:: operator=(const G4AlphaGEMProbability &) { - G4Exception("G4AlphaGEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaGEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B10GEMProbability.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B10GEMProbability.cc index 702b98663a..5178e12766 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B10GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B10GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B10GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B10GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -179,7 +179,7 @@ G4B10GEMProbability::G4B10GEMProbability() : G4B10GEMProbability::G4B10GEMProbability(const G4B10GEMProbability &) : G4GEMProbability() { - G4Exception("G4B10GEMProbability::copy_constructor meant to not be accessable");} + throw G4HadronicException(__FILE__, __LINE__, "G4B10GEMProbability::copy_constructor meant to not be accessable");} @@ -187,7 +187,7 @@ G4B10GEMProbability::G4B10GEMProbability(const G4B10GEMProbability &) : G4GEMPro const G4B10GEMProbability & G4B10GEMProbability:: operator=(const G4B10GEMProbability &) { - G4Exception("G4B10GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4B10GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B11GEMProbability.cc similarity index 94% rename from source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B11GEMProbability.cc index c7238efb64..8a865bea70 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B11GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B11GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B11GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B11GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -158,7 +158,7 @@ G4B11GEMProbability::G4B11GEMProbability() : G4B11GEMProbability::G4B11GEMProbability(const G4B11GEMProbability &): G4GEMProbability() { - G4Exception("G4B11GEMProbability::copy_constructor meant to not be accessable");} + throw G4HadronicException(__FILE__, __LINE__, "G4B11GEMProbability::copy_constructor meant to not be accessable");} @@ -166,7 +166,7 @@ G4B11GEMProbability::G4B11GEMProbability(const G4B11GEMProbability &): G4GEMProb const G4B11GEMProbability & G4B11GEMProbability:: operator=(const G4B11GEMProbability &) { - G4Exception("G4B11GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4B11GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B12GEMProbability.cc similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B12GEMProbability.cc index 18ad595027..2f3c354678 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B12GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B12GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B12GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B12GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -122,7 +122,7 @@ G4B12GEMProbability::G4B12GEMProbability() : G4B12GEMProbability::G4B12GEMProbability(const G4B12GEMProbability &) : G4GEMProbability() { - G4Exception("G4B12GEMProbability::copy_constructor meant to not be accessable");} + throw G4HadronicException(__FILE__, __LINE__, "G4B12GEMProbability::copy_constructor meant to not be accessable");} @@ -130,7 +130,7 @@ G4B12GEMProbability::G4B12GEMProbability(const G4B12GEMProbability &) : G4GEMPro const G4B12GEMProbability & G4B12GEMProbability:: operator=(const G4B12GEMProbability &) { - G4Exception("G4B12GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4B12GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B13GEMProbability.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B13GEMProbability.cc index e1e1634690..b70a02871f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B13GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B13GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B13GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B13GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -55,7 +55,7 @@ G4B13GEMProbability::G4B13GEMProbability() : G4B13GEMProbability::G4B13GEMProbability(const G4B13GEMProbability &) : G4GEMProbability() { - G4Exception("G4B13GEMProbability::copy_constructor meant to not be accessable");} + throw G4HadronicException(__FILE__, __LINE__, "G4B13GEMProbability::copy_constructor meant to not be accessable");} @@ -63,7 +63,7 @@ G4B13GEMProbability::G4B13GEMProbability(const G4B13GEMProbability &) : G4GEMPro const G4B13GEMProbability & G4B13GEMProbability:: operator=(const G4B13GEMProbability &) { - G4Exception("G4B13GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4B13GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B8GEMProbability.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B8GEMProbability.cc index e5478dc69c..4e46a7931b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4B8GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4B8GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4B8GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4B8GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -54,7 +54,7 @@ G4B8GEMProbability::G4B8GEMProbability() : G4B8GEMProbability::G4B8GEMProbability(const G4B8GEMProbability &) : G4GEMProbability() { - G4Exception("G4B8GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4B8GEMProbability::copy_constructor meant to not be accessable"); } @@ -63,7 +63,7 @@ G4B8GEMProbability::G4B8GEMProbability(const G4B8GEMProbability &) : G4GEMProbab const G4B8GEMProbability & G4B8GEMProbability:: operator=(const G4B8GEMProbability &) { - G4Exception("G4B8GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4B8GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be10GEMProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be10GEMProbability.cc index cc57af186f..f06efb449e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be10GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be10GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be10GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be10GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -83,7 +83,7 @@ G4Be10GEMProbability::G4Be10GEMProbability() : G4Be10GEMProbability::G4Be10GEMProbability(const G4Be10GEMProbability &) : G4GEMProbability() { - G4Exception("G4Be10GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be10GEMProbability::copy_constructor meant to not be accessable"); } @@ -92,7 +92,7 @@ G4Be10GEMProbability::G4Be10GEMProbability(const G4Be10GEMProbability &) : G4GEM const G4Be10GEMProbability & G4Be10GEMProbability:: operator=(const G4Be10GEMProbability &) { - G4Exception("G4Be10GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be10GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be11GEMProbability.cc similarity index 92% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be11GEMProbability.cc index 3ee57e610e..34fa235574 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be11GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be11GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be11GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be11GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -95,7 +95,7 @@ G4Be11GEMProbability::G4Be11GEMProbability() : G4Be11GEMProbability::G4Be11GEMProbability(const G4Be11GEMProbability &) : G4GEMProbability() { - G4Exception("G4Be11GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be11GEMProbability::copy_constructor meant to not be accessable"); } @@ -104,7 +104,7 @@ G4Be11GEMProbability::G4Be11GEMProbability(const G4Be11GEMProbability &) : G4GEM const G4Be11GEMProbability & G4Be11GEMProbability:: operator=(const G4Be11GEMProbability &) { - G4Exception("G4Be11GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be11GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be12GEMProbability.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be12GEMProbability.cc index 31a9bb0289..6dd7ac6076 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be12GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be12GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be12GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be12GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -42,7 +42,7 @@ G4Be12GEMProbability::G4Be12GEMProbability() : G4Be12GEMProbability::G4Be12GEMProbability(const G4Be12GEMProbability &) : G4GEMProbability() { - G4Exception("G4Be12GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be12GEMProbability::copy_constructor meant to not be accessable"); } @@ -51,7 +51,7 @@ G4Be12GEMProbability::G4Be12GEMProbability(const G4Be12GEMProbability &) : G4GEM const G4Be12GEMProbability & G4Be12GEMProbability:: operator=(const G4Be12GEMProbability &) { - G4Exception("G4Be12GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be12GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be7GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be7GEMProbability.cc index b7fd6c8c4e..e6da7f540d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be7GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be7GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be7GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be7GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -70,7 +70,7 @@ G4Be7GEMProbability::G4Be7GEMProbability() : G4Be7GEMProbability::G4Be7GEMProbability(const G4Be7GEMProbability &) : G4GEMProbability() { - G4Exception("G4Be7GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be7GEMProbability::copy_constructor meant to not be accessable"); } @@ -79,7 +79,7 @@ G4Be7GEMProbability::G4Be7GEMProbability(const G4Be7GEMProbability &) : G4GEMPro const G4Be7GEMProbability & G4Be7GEMProbability:: operator=(const G4Be7GEMProbability &) { - G4Exception("G4Be7GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be7GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be9GEMProbability.cc similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be9GEMProbability.cc index 9ca4b8bdb6..691fa8cadb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Be9GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Be9GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Be9GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Be9GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -118,7 +118,7 @@ G4Be9GEMProbability::G4Be9GEMProbability() : G4Be9GEMProbability::G4Be9GEMProbability(const G4Be9GEMProbability &) : G4GEMProbability() { - G4Exception("G4Be9GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be9GEMProbability::copy_constructor meant to not be accessable"); } @@ -127,7 +127,7 @@ G4Be9GEMProbability::G4Be9GEMProbability(const G4Be9GEMProbability &) : G4GEMPro const G4Be9GEMProbability & G4Be9GEMProbability:: operator=(const G4Be9GEMProbability &) { - G4Exception("G4Be9GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Be9GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C10GEMProbability.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C10GEMProbability.cc index 63badab7ff..69cb53dea4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C10GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C10GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C10GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C10GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -51,7 +51,7 @@ G4C10GEMProbability::G4C10GEMProbability() : G4C10GEMProbability::G4C10GEMProbability(const G4C10GEMProbability &) : G4GEMProbability() { - G4Exception("G4C10GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C10GEMProbability::copy_constructor meant to not be accessable"); } @@ -60,7 +60,7 @@ G4C10GEMProbability::G4C10GEMProbability(const G4C10GEMProbability &) : G4GEMPro const G4C10GEMProbability & G4C10GEMProbability:: operator=(const G4C10GEMProbability &) { - G4Exception("G4C10GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C10GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C11GEMProbability.cc similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C11GEMProbability.cc index 89ca41c287..365682f806 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C11GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C11GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C11GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C11GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -119,7 +119,7 @@ G4C11GEMProbability::G4C11GEMProbability() : G4C11GEMProbability::G4C11GEMProbability(const G4C11GEMProbability &) : G4GEMProbability() { - G4Exception("G4C11GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C11GEMProbability::copy_constructor meant to not be accessable"); } @@ -128,7 +128,7 @@ G4C11GEMProbability::G4C11GEMProbability(const G4C11GEMProbability &) : G4GEMPro const G4C11GEMProbability & G4C11GEMProbability:: operator=(const G4C11GEMProbability &) { - G4Exception("G4C11GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C11GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C12GEMProbability.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C12GEMProbability.cc index db6f85921f..9b17afbe9b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C12GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C12GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C12GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C12GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -207,7 +207,7 @@ G4C12GEMProbability::G4C12GEMProbability() : G4C12GEMProbability::G4C12GEMProbability(const G4C12GEMProbability &) : G4GEMProbability() { - G4Exception("G4C12GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C12GEMProbability::copy_constructor meant to not be accessable"); } @@ -216,7 +216,7 @@ G4C12GEMProbability::G4C12GEMProbability(const G4C12GEMProbability &) : G4GEMPro const G4C12GEMProbability & G4C12GEMProbability:: operator=(const G4C12GEMProbability &) { - G4Exception("G4C12GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C12GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C13GEMProbability.cc similarity index 94% rename from source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C13GEMProbability.cc index 8c9c746f7c..23dc6ba899 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C13GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C13GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C13GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C13GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -155,7 +155,7 @@ G4C13GEMProbability::G4C13GEMProbability() : G4C13GEMProbability::G4C13GEMProbability(const G4C13GEMProbability &) : G4GEMProbability() { - G4Exception("G4C13GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C13GEMProbability::copy_constructor meant to not be accessable"); } @@ -164,7 +164,7 @@ G4C13GEMProbability::G4C13GEMProbability(const G4C13GEMProbability &) : G4GEMPro const G4C13GEMProbability & G4C13GEMProbability:: operator=(const G4C13GEMProbability &) { - G4Exception("G4C13GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C13GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C14GEMProbability.cc similarity index 92% rename from source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C14GEMProbability.cc index 7e5681777e..08321fa443 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C14GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C14GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C14GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C14GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -103,7 +103,7 @@ G4C14GEMProbability::G4C14GEMProbability() : G4C14GEMProbability::G4C14GEMProbability(const G4C14GEMProbability &) : G4GEMProbability() { - G4Exception("G4C14GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C14GEMProbability::copy_constructor meant to not be accessable"); } @@ -112,7 +112,7 @@ G4C14GEMProbability::G4C14GEMProbability(const G4C14GEMProbability &) : G4GEMPro const G4C14GEMProbability & G4C14GEMProbability:: operator=(const G4C14GEMProbability &) { - G4Exception("G4C14GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C14GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C15GEMProbability.cc similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C15GEMProbability.cc index 9a1b65e455..b6c7f315d2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C15GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C15GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C15GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C15GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -111,7 +111,7 @@ G4C15GEMProbability::G4C15GEMProbability() : G4C15GEMProbability::G4C15GEMProbability(const G4C15GEMProbability &) : G4GEMProbability() { - G4Exception("G4C15GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C15GEMProbability::copy_constructor meant to not be accessable"); } @@ -120,7 +120,7 @@ G4C15GEMProbability::G4C15GEMProbability(const G4C15GEMProbability &) : G4GEMPro const G4C15GEMProbability & G4C15GEMProbability:: operator=(const G4C15GEMProbability &) { - G4Exception("G4C15GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C15GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C16GEMProbability.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C16GEMProbability.cc index 9b78ca9174..3117cf54e7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4C16GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4C16GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4C16GEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4C16GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -42,7 +42,7 @@ G4C16GEMProbability::G4C16GEMProbability() : G4C16GEMProbability::G4C16GEMProbability(const G4C16GEMProbability &) : G4GEMProbability() { - G4Exception("G4C16GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C16GEMProbability::copy_constructor meant to not be accessable"); } @@ -51,7 +51,7 @@ G4C16GEMProbability::G4C16GEMProbability(const G4C16GEMProbability &) : G4GEMPro const G4C16GEMProbability & G4C16GEMProbability:: operator=(const G4C16GEMProbability &) { - G4Exception("G4C16GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4C16GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMChannel.cc index 8c5ba84d71..3b191b50f9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronGEMChannel.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronGEMChannel.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4DeuteronGEMChannel & G4DeuteronGEMChannel::operator=(const G4DeuteronGEMChannel & ) { - G4Exception("G4DeuteronGEMChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronGEMChannel::operator= meant to not be accessable"); return *this; } G4DeuteronGEMChannel::G4DeuteronGEMChannel(const G4DeuteronGEMChannel & ): G4GEMChannel() { - G4Exception("G4DeuteronGEMChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronGEMChannel::CopyConstructor meant to not be accessable"); } G4bool G4DeuteronGEMChannel::operator==(const G4DeuteronGEMChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMProbability.cc similarity index 89% rename from source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMProbability.cc index e9ad57e6c0..429dfcb5bc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4DeuteronGEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronGEMProbability.cc,v 1.2 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronGEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -42,7 +42,7 @@ G4DeuteronGEMProbability::G4DeuteronGEMProbability() : G4DeuteronGEMProbability::G4DeuteronGEMProbability(const G4DeuteronGEMProbability &) : G4GEMProbability() { - G4Exception("G4DeuteronGEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronGEMProbability::copy_constructor meant to not be accessable"); } @@ -51,7 +51,7 @@ G4DeuteronGEMProbability::G4DeuteronGEMProbability(const G4DeuteronGEMProbabilit const G4DeuteronGEMProbability & G4DeuteronGEMProbability:: operator=(const G4DeuteronGEMProbability &) { - G4Exception("G4DeuteronGEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronGEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4EvaporationGEMFactory.cc similarity index 94% rename from source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4EvaporationGEMFactory.cc index 3c5f0e7ee7..7bf3db6190 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationGEMFactory.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4EvaporationGEMFactory.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationGEMFactory.cc,v 1.4 2003/06/16 17:06:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationGEMFactory.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -103,21 +103,21 @@ const G4EvaporationGEMFactory & G4EvaporationGEMFactory::operator=(const G4EvaporationGEMFactory & ) { - G4Exception("G4EvaporationGEMFactory::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationGEMFactory::operator= meant to not be accessable."); return *this; } G4bool G4EvaporationGEMFactory::operator==(const G4EvaporationGEMFactory & ) const { - G4Exception("G4EvaporationGEMFactory::operator== meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationGEMFactory::operator== meant to not be accessable."); return false; } G4bool G4EvaporationGEMFactory::operator!=(const G4EvaporationGEMFactory & ) const { - G4Exception("G4EvaporationGEMFactory::operator!= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationGEMFactory::operator!= meant to not be accessable."); return true; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F17GEMProbability.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F17GEMProbability.cc index 4630dda37c..15a8367048 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F17GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F17GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F17GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F17GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -272,7 +272,7 @@ G4F17GEMProbability::G4F17GEMProbability() : G4F17GEMProbability::G4F17GEMProbability(const G4F17GEMProbability &) : G4GEMProbability() { - G4Exception("G4F17GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F17GEMProbability::copy_constructor meant to not be accessable"); } @@ -281,7 +281,7 @@ G4F17GEMProbability::G4F17GEMProbability(const G4F17GEMProbability &) : G4GEMPro const G4F17GEMProbability & G4F17GEMProbability:: operator=(const G4F17GEMProbability &) { - G4Exception("G4F17GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F17GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F18GEMProbability.cc similarity index 98% rename from source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F18GEMProbability.cc index a1f1bafa20..fe07fadcd8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F18GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F18GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F18GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F18GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -548,7 +548,7 @@ G4F18GEMProbability::G4F18GEMProbability() : G4F18GEMProbability::G4F18GEMProbability(const G4F18GEMProbability &) : G4GEMProbability() { - G4Exception("G4F18GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F18GEMProbability::copy_constructor meant to not be accessable"); } @@ -557,7 +557,7 @@ G4F18GEMProbability::G4F18GEMProbability(const G4F18GEMProbability &) : G4GEMPro const G4F18GEMProbability & G4F18GEMProbability:: operator=(const G4F18GEMProbability &) { - G4Exception("G4F18GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F18GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F19GEMProbability.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F19GEMProbability.cc index 49ca328c24..016f208dba 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F19GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F19GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F19GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F19GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -288,7 +288,7 @@ G4F19GEMProbability::G4F19GEMProbability() : G4F19GEMProbability::G4F19GEMProbability(const G4F19GEMProbability &) : G4GEMProbability() { - G4Exception("G4F19GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F19GEMProbability::copy_constructor meant to not be accessable"); } @@ -297,7 +297,7 @@ G4F19GEMProbability::G4F19GEMProbability(const G4F19GEMProbability &) : G4GEMPro const G4F19GEMProbability & G4F19GEMProbability:: operator=(const G4F19GEMProbability &) { - G4Exception("G4F19GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F19GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F20GEMProbability.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F20GEMProbability.cc index 72c631511c..4609a9ce29 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F20GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F20GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F20GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F20GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -196,7 +196,7 @@ G4F20GEMProbability::G4F20GEMProbability() : G4F20GEMProbability::G4F20GEMProbability(const G4F20GEMProbability &) : G4GEMProbability() { - G4Exception("G4F20GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F20GEMProbability::copy_constructor meant to not be accessable"); } @@ -205,7 +205,7 @@ G4F20GEMProbability::G4F20GEMProbability(const G4F20GEMProbability &) : G4GEMPro const G4F20GEMProbability & G4F20GEMProbability:: operator=(const G4F20GEMProbability &) { - G4Exception("G4F20GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F20GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F21GEMProbability.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F21GEMProbability.cc index a67c708de7..fdebea739b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4F21GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4F21GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4F21GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4F21GEMProbability.cc,v 1.2 2003/11/03 17:53:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -56,7 +56,7 @@ G4F21GEMProbability::G4F21GEMProbability() : G4F21GEMProbability::G4F21GEMProbability(const G4F21GEMProbability &) : G4GEMProbability() { - G4Exception("G4F21GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F21GEMProbability::copy_constructor meant to not be accessable"); } @@ -65,7 +65,7 @@ G4F21GEMProbability::G4F21GEMProbability(const G4F21GEMProbability &) : G4GEMPro const G4F21GEMProbability & G4F21GEMProbability:: operator=(const G4F21GEMProbability &) { - G4Exception("G4F21GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4F21GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc index 8f9d28e627..aaf2cf6ec5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4GEMChannel.cc,v 1.6 2003/06/25 14:41:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GEMChannel.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -87,12 +87,12 @@ G4GEMChannel::~G4GEMChannel() G4GEMChannel::G4GEMChannel(const G4GEMChannel & ) : G4VEvaporationChannel() { - G4Exception("G4GEMChannel::copy_costructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4GEMChannel::copy_costructor meant to not be accessable"); } const G4GEMChannel & G4GEMChannel::operator=(const G4GEMChannel & ) { - G4Exception("G4GEMChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4GEMChannel::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc index 6ab14b1443..8dbe972748 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMCoulombBarrierHE.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMCoulombBarrierHE.cc @@ -21,25 +21,26 @@ // ******************************************************************** // // -// $Id: G4GEMCoulombBarrierHE.cc,v 1.6 2003/06/25 14:41:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4GEMCoulombBarrierHE.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) #include "G4GEMCoulombBarrierHE.hh" +#include "G4HadronicException.hh" #include G4GEMCoulombBarrierHE::G4GEMCoulombBarrierHE(const G4GEMCoulombBarrierHE & ) : G4VCoulombBarrier() { - G4Exception("G4GEMCoulombBarrierHE::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4GEMCoulombBarrierHE::copy_constructor meant to not be accessable."); } const G4GEMCoulombBarrierHE & G4GEMCoulombBarrierHE::operator=(const G4GEMCoulombBarrierHE & ) { - G4Exception("G4GEMCoulombBarrierHE::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4GEMCoulombBarrierHE::operator= meant to not be accessable."); return *this; } @@ -66,7 +67,7 @@ G4double G4GEMCoulombBarrierHE::GetCoulombBarrier(const G4int ARes, const G4int errOs << "Wrong values for "; errOs << "residual nucleus A = " << ARes << " "; errOs << "and residual nucleus Z = " << ZRes << G4endl; - G4Exception(errMessage); + throw G4HadronicException(__FILE__, __LINE__, errMessage); } if (GetZ() == 0) { Barrier = 0.0; // If there is no charge there is neither barrier diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMProbability.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMProbability.cc index d32e5b1bdc..7f1a5fb938 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4GEMProbability.cc @@ -34,7 +34,7 @@ G4GEMProbability::G4GEMProbability(const G4GEMProbability &) : G4VEmissionProbability() { - G4Exception("G4GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4GEMProbability::copy_constructor meant to not be accessable"); } @@ -43,7 +43,7 @@ G4GEMProbability::G4GEMProbability(const G4GEMProbability &) : G4VEmissionProbab const G4GEMProbability & G4GEMProbability:: operator=(const G4GEMProbability &) { - G4Exception("G4GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMChannel.cc index 439c960bfd..67ae7fa74e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3GEMChannel.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3GEMChannel.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4He3GEMChannel & G4He3GEMChannel::operator=(const G4He3GEMChannel & ) { - G4Exception("G4He3GEMChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He3GEMChannel::operator= meant to not be accessable"); return *this; } G4He3GEMChannel::G4He3GEMChannel(const G4He3GEMChannel & ): G4GEMChannel() { - G4Exception("G4He3GEMChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He3GEMChannel::CopyConstructor meant to not be accessable"); } G4bool G4He3GEMChannel::operator==(const G4He3GEMChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMProbability.cc similarity index 89% rename from source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMProbability.cc index 7a714c0d95..c374b44834 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He3GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -42,7 +42,7 @@ G4He3GEMProbability::G4He3GEMProbability() : G4He3GEMProbability::G4He3GEMProbability(const G4He3GEMProbability &) : G4GEMProbability() { - G4Exception("G4He3GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He3GEMProbability::copy_constructor meant to not be accessable"); } @@ -51,7 +51,7 @@ G4He3GEMProbability::G4He3GEMProbability(const G4He3GEMProbability &) : G4GEMPro const G4He3GEMProbability & G4He3GEMProbability:: operator=(const G4He3GEMProbability &) { - G4Exception("G4He3GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He3GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He6GEMProbability.cc similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He6GEMProbability.cc index 4d9f9a3c1b..0ee03739e1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He6GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He6GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He6GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He6GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -48,7 +48,7 @@ G4He6GEMProbability::G4He6GEMProbability() : G4He6GEMProbability::G4He6GEMProbability(const G4He6GEMProbability &) : G4GEMProbability() { - G4Exception("G4He6GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He6GEMProbability::copy_constructor meant to not be accessable"); } @@ -57,7 +57,7 @@ G4He6GEMProbability::G4He6GEMProbability(const G4He6GEMProbability &) : G4GEMPro const G4He6GEMProbability & G4He6GEMProbability:: operator=(const G4He6GEMProbability &) { - G4Exception("G4He6GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He6GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He8GEMProbability.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He8GEMProbability.cc index 5c762abd90..62839851bb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He8GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4He8GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He8GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He8GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -42,7 +42,7 @@ G4He8GEMProbability::G4He8GEMProbability() : G4He8GEMProbability::G4He8GEMProbability(const G4He8GEMProbability &) : G4GEMProbability() { - G4Exception("G4He8GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He8GEMProbability::copy_constructor meant to not be accessable"); } @@ -51,7 +51,7 @@ G4He8GEMProbability::G4He8GEMProbability(const G4He8GEMProbability &) : G4GEMPro const G4He8GEMProbability & G4He8GEMProbability:: operator=(const G4He8GEMProbability &) { - G4Exception("G4He8GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4He8GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li6GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li6GEMProbability.cc index 9cbd731add..a594c9d557 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li6GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li6GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li6GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li6GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -74,7 +74,7 @@ G4Li6GEMProbability::G4Li6GEMProbability() : G4Li6GEMProbability::G4Li6GEMProbability(const G4Li6GEMProbability &) : G4GEMProbability() { - G4Exception("G4Li6GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li6GEMProbability::copy_constructor meant to not be accessable"); } @@ -83,7 +83,7 @@ G4Li6GEMProbability::G4Li6GEMProbability(const G4Li6GEMProbability &) : G4GEMPro const G4Li6GEMProbability & G4Li6GEMProbability:: operator=(const G4Li6GEMProbability &) { - G4Exception("G4Li6GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li6GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li7GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li7GEMProbability.cc index 575b50823f..3c224dab21 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li7GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li7GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li7GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li7GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -70,7 +70,7 @@ G4Li7GEMProbability::G4Li7GEMProbability() : G4Li7GEMProbability::G4Li7GEMProbability(const G4Li7GEMProbability &) : G4GEMProbability() { - G4Exception("G4Li7GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li7GEMProbability::copy_constructor meant to not be accessable"); } @@ -79,7 +79,7 @@ G4Li7GEMProbability::G4Li7GEMProbability(const G4Li7GEMProbability &) : G4GEMPro const G4Li7GEMProbability & G4Li7GEMProbability:: operator=(const G4Li7GEMProbability &) { - G4Exception("G4Li7GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li7GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li8GEMProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li8GEMProbability.cc index 0eaaf37c68..561a0dbea2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li8GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li8GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li8GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li8GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -78,7 +78,7 @@ G4Li8GEMProbability::G4Li8GEMProbability() : G4Li8GEMProbability::G4Li8GEMProbability(const G4Li8GEMProbability &) : G4GEMProbability() { - G4Exception("G4Li8GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li8GEMProbability::copy_constructor meant to not be accessable"); } @@ -87,7 +87,7 @@ G4Li8GEMProbability::G4Li8GEMProbability(const G4Li8GEMProbability &) : G4GEMPro const G4Li8GEMProbability & G4Li8GEMProbability:: operator=(const G4Li8GEMProbability &) { - G4Exception("G4Li8GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li8GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li9GEMProbability.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li9GEMProbability.cc index d5434e25b8..168eed81a0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Li9GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Li9GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Li9GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Li9GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -54,7 +54,7 @@ G4Li9GEMProbability::G4Li9GEMProbability() : G4Li9GEMProbability::G4Li9GEMProbability(const G4Li9GEMProbability &) : G4GEMProbability() { - G4Exception("G4Li9GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li9GEMProbability::copy_constructor meant to not be accessable"); } @@ -63,7 +63,7 @@ G4Li9GEMProbability::G4Li9GEMProbability(const G4Li9GEMProbability &) : G4GEMPro const G4Li9GEMProbability & G4Li9GEMProbability:: operator=(const G4Li9GEMProbability &) { - G4Exception("G4Li9GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Li9GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg22GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg22GEMProbability.cc index 4a2130377b..4a6f3f18bd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg22GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg22GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg22GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg22GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -76,7 +76,7 @@ G4Mg22GEMProbability::G4Mg22GEMProbability() : G4Mg22GEMProbability::G4Mg22GEMProbability(const G4Mg22GEMProbability &) : G4GEMProbability() { - G4Exception("G4Mg22GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg22GEMProbability::copy_constructor meant to not be accessable"); } @@ -85,7 +85,7 @@ G4Mg22GEMProbability::G4Mg22GEMProbability(const G4Mg22GEMProbability &) : G4GEM const G4Mg22GEMProbability & G4Mg22GEMProbability:: operator=(const G4Mg22GEMProbability &) { - G4Exception("G4Mg22GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg22GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg23GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg23GEMProbability.cc index 0233b651d5..7c6bf6c057 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg23GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg23GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg23GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg23GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -72,7 +72,7 @@ G4Mg23GEMProbability::G4Mg23GEMProbability() : G4Mg23GEMProbability::G4Mg23GEMProbability(const G4Mg23GEMProbability &) : G4GEMProbability() { - G4Exception("G4Mg23GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg23GEMProbability::copy_constructor meant to not be accessable"); } @@ -81,7 +81,7 @@ G4Mg23GEMProbability::G4Mg23GEMProbability(const G4Mg23GEMProbability &) : G4GEM const G4Mg23GEMProbability & G4Mg23GEMProbability:: operator=(const G4Mg23GEMProbability &) { - G4Exception("G4Mg23GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg23GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg24GEMProbability.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg24GEMProbability.cc index b8bf5eb4d2..16f2acc9f7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg24GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg24GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg24GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg24GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -348,7 +348,7 @@ G4Mg24GEMProbability::G4Mg24GEMProbability() : G4Mg24GEMProbability::G4Mg24GEMProbability(const G4Mg24GEMProbability &) : G4GEMProbability() { - G4Exception("G4Mg24GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg24GEMProbability::copy_constructor meant to not be accessable"); } @@ -357,7 +357,7 @@ G4Mg24GEMProbability::G4Mg24GEMProbability(const G4Mg24GEMProbability &) : G4GEM const G4Mg24GEMProbability & G4Mg24GEMProbability:: operator=(const G4Mg24GEMProbability &) { - G4Exception("G4Mg24GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg24GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg25GEMProbability.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg25GEMProbability.cc index 345c9a14a7..64228df71a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg25GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg25GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg25GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg25GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -247,7 +247,7 @@ G4Mg25GEMProbability::G4Mg25GEMProbability() : G4Mg25GEMProbability::G4Mg25GEMProbability(const G4Mg25GEMProbability &) : G4GEMProbability() { - G4Exception("G4Mg25GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg25GEMProbability::copy_constructor meant to not be accessable"); } @@ -256,7 +256,7 @@ G4Mg25GEMProbability::G4Mg25GEMProbability(const G4Mg25GEMProbability &) : G4GEM const G4Mg25GEMProbability & G4Mg25GEMProbability:: operator=(const G4Mg25GEMProbability &) { - G4Exception("G4Mg25GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg25GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg26GEMProbability.cc similarity index 92% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg26GEMProbability.cc index 032b0b6da1..98288ec893 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg26GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg26GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg26GEMProbability.cc,v 1.2 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg26GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -112,7 +112,7 @@ G4Mg26GEMProbability::G4Mg26GEMProbability() : G4Mg26GEMProbability::G4Mg26GEMProbability(const G4Mg26GEMProbability &) : G4GEMProbability() { - G4Exception("G4Mg26GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg26GEMProbability::copy_constructor meant to not be accessable"); } @@ -121,7 +121,7 @@ G4Mg26GEMProbability::G4Mg26GEMProbability(const G4Mg26GEMProbability &) : G4GEM const G4Mg26GEMProbability & G4Mg26GEMProbability:: operator=(const G4Mg26GEMProbability &) { - G4Exception("G4Mg26GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg26GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg27GEMProbability.cc similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg27GEMProbability.cc index 330a318cc3..21c979f380 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg27GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg27GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg27GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg27GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -132,7 +132,7 @@ G4Mg27GEMProbability::G4Mg27GEMProbability() : G4Mg27GEMProbability::G4Mg27GEMProbability(const G4Mg27GEMProbability &) : G4GEMProbability() { - G4Exception("G4Mg27GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg27GEMProbability::copy_constructor meant to not be accessable"); } @@ -141,7 +141,7 @@ G4Mg27GEMProbability::G4Mg27GEMProbability(const G4Mg27GEMProbability &) : G4GEM const G4Mg27GEMProbability & G4Mg27GEMProbability:: operator=(const G4Mg27GEMProbability &) { - G4Exception("G4Mg27GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg27GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg28GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg28GEMProbability.cc index 60a0015400..d241d04bcd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Mg28GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Mg28GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mg28GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mg28GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -76,7 +76,7 @@ G4Mg28GEMProbability::G4Mg28GEMProbability() : G4Mg28GEMProbability::G4Mg28GEMProbability(const G4Mg28GEMProbability &) : G4GEMProbability() { - G4Exception("G4Mg28GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg28GEMProbability::copy_constructor meant to not be accessable"); } @@ -85,7 +85,7 @@ G4Mg28GEMProbability::G4Mg28GEMProbability(const G4Mg28GEMProbability &) : G4GEM const G4Mg28GEMProbability & G4Mg28GEMProbability:: operator=(const G4Mg28GEMProbability &) { - G4Exception("G4Mg28GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Mg28GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N12GEMProbability.cc similarity index 89% rename from source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N12GEMProbability.cc index 9c6bdc580a..3c81bb6167 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N12GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N12GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N12GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N12GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -59,7 +59,7 @@ G4N12GEMProbability::G4N12GEMProbability() : G4N12GEMProbability::G4N12GEMProbability(const G4N12GEMProbability &) : G4GEMProbability() { - G4Exception("G4N12GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N12GEMProbability::copy_constructor meant to not be accessable"); } @@ -68,7 +68,7 @@ G4N12GEMProbability::G4N12GEMProbability(const G4N12GEMProbability &) : G4GEMPro const G4N12GEMProbability & G4N12GEMProbability:: operator=(const G4N12GEMProbability &) { - G4Exception("G4N12GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N12GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N13GEMProbability.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N13GEMProbability.cc index 85acd9f985..c3c74395ba 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N13GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N13GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N13GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N13GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -167,7 +167,7 @@ G4N13GEMProbability::G4N13GEMProbability() : G4N13GEMProbability::G4N13GEMProbability(const G4N13GEMProbability &) : G4GEMProbability() { - G4Exception("G4N13GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N13GEMProbability::copy_constructor meant to not be accessable"); } @@ -176,7 +176,7 @@ G4N13GEMProbability::G4N13GEMProbability(const G4N13GEMProbability &) : G4GEMPro const G4N13GEMProbability & G4N13GEMProbability:: operator=(const G4N13GEMProbability &) { - G4Exception("G4N13GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N13GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N14GEMProbability.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N14GEMProbability.cc index 77f124af11..c16d8157da 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N14GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N14GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N14GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N14GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -331,7 +331,7 @@ G4N14GEMProbability::G4N14GEMProbability() : G4N14GEMProbability::G4N14GEMProbability(const G4N14GEMProbability &) : G4GEMProbability() { - G4Exception("G4N14GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N14GEMProbability::copy_constructor meant to not be accessable"); } @@ -340,7 +340,7 @@ G4N14GEMProbability::G4N14GEMProbability(const G4N14GEMProbability &) : G4GEMPro const G4N14GEMProbability & G4N14GEMProbability:: operator=(const G4N14GEMProbability &) { - G4Exception("G4N14GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N14GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N15GEMProbability.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N15GEMProbability.cc index 37556b8acc..06b8b548e1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N15GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N15GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N15GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N15GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -238,7 +238,7 @@ G4N15GEMProbability::G4N15GEMProbability() : G4N15GEMProbability::G4N15GEMProbability(const G4N15GEMProbability &) : G4GEMProbability() { - G4Exception("G4N15GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N15GEMProbability::copy_constructor meant to not be accessable"); } @@ -247,7 +247,7 @@ G4N15GEMProbability::G4N15GEMProbability(const G4N15GEMProbability &) : G4GEMPro const G4N15GEMProbability & G4N15GEMProbability:: operator=(const G4N15GEMProbability &) { - G4Exception("G4N15GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N15GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N16GEMProbability.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N16GEMProbability.cc index fb342242ab..7c7c4302b1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N16GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N16GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N16GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N16GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -194,7 +194,7 @@ G4N16GEMProbability::G4N16GEMProbability() : G4N16GEMProbability::G4N16GEMProbability(const G4N16GEMProbability &) : G4GEMProbability() { - G4Exception("G4N16GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N16GEMProbability::copy_constructor meant to not be accessable"); } @@ -203,7 +203,7 @@ G4N16GEMProbability::G4N16GEMProbability(const G4N16GEMProbability &) : G4GEMPro const G4N16GEMProbability & G4N16GEMProbability:: operator=(const G4N16GEMProbability &) { - G4Exception("G4N16GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N16GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N17GEMProbability.cc similarity index 92% rename from source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N17GEMProbability.cc index 2cff4df027..02a3bb3dc9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4N17GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4N17GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4N17GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4N17GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -106,7 +106,7 @@ G4N17GEMProbability::G4N17GEMProbability() : G4N17GEMProbability::G4N17GEMProbability(const G4N17GEMProbability &) : G4GEMProbability() { - G4Exception("G4N17GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N17GEMProbability::copy_constructor meant to not be accessable"); } @@ -115,7 +115,7 @@ G4N17GEMProbability::G4N17GEMProbability(const G4N17GEMProbability &) : G4GEMPro const G4N17GEMProbability & G4N17GEMProbability:: operator=(const G4N17GEMProbability &) { - G4Exception("G4N17GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4N17GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na21GEMProbability.cc similarity index 94% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na21GEMProbability.cc index bd7a3cd1d4..f89db5e62b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na21GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na21GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na21GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na21GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -132,7 +132,7 @@ G4Na21GEMProbability::G4Na21GEMProbability() : G4Na21GEMProbability::G4Na21GEMProbability(const G4Na21GEMProbability &) : G4GEMProbability() { - G4Exception("G4Na21GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na21GEMProbability::copy_constructor meant to not be accessable"); } @@ -141,7 +141,7 @@ G4Na21GEMProbability::G4Na21GEMProbability(const G4Na21GEMProbability &) : G4GEM const G4Na21GEMProbability & G4Na21GEMProbability:: operator=(const G4Na21GEMProbability &) { - G4Exception("G4Na21GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na21GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na22GEMProbability.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na22GEMProbability.cc index abce3fbaf0..cf9ff4f73e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na22GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na22GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na22GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na22GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -309,7 +309,7 @@ G4Na22GEMProbability::G4Na22GEMProbability() : G4Na22GEMProbability::G4Na22GEMProbability(const G4Na22GEMProbability &) : G4GEMProbability() { - G4Exception("G4Na22GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na22GEMProbability::copy_constructor meant to not be accessable"); } @@ -318,7 +318,7 @@ G4Na22GEMProbability::G4Na22GEMProbability(const G4Na22GEMProbability &) : G4GEM const G4Na22GEMProbability & G4Na22GEMProbability:: operator=(const G4Na22GEMProbability &) { - G4Exception("G4Na22GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na22GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na23GEMProbability.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na23GEMProbability.cc index 495888ce30..8be8c412eb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na23GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na23GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na23GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na23GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -356,7 +356,7 @@ G4Na23GEMProbability::G4Na23GEMProbability() : G4Na23GEMProbability::G4Na23GEMProbability(const G4Na23GEMProbability &) : G4GEMProbability() { - G4Exception("G4Na23GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na23GEMProbability::copy_constructor meant to not be accessable"); } @@ -365,7 +365,7 @@ G4Na23GEMProbability::G4Na23GEMProbability(const G4Na23GEMProbability &) : G4GEM const G4Na23GEMProbability & G4Na23GEMProbability:: operator=(const G4Na23GEMProbability &) { - G4Exception("G4Na23GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na23GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na24GEMProbability.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na24GEMProbability.cc index 6a3d9f4d30..ed0a546021 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na24GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na24GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na24GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na24GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -200,7 +200,7 @@ G4Na24GEMProbability::G4Na24GEMProbability() : G4Na24GEMProbability::G4Na24GEMProbability(const G4Na24GEMProbability &) : G4GEMProbability() { - G4Exception("G4Na24GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na24GEMProbability::copy_constructor meant to not be accessable"); } @@ -209,7 +209,7 @@ G4Na24GEMProbability::G4Na24GEMProbability(const G4Na24GEMProbability &) : G4GEM const G4Na24GEMProbability & G4Na24GEMProbability:: operator=(const G4Na24GEMProbability &) { - G4Exception("G4Na24GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na24GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na25GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na25GEMProbability.cc index a9c1740f50..4fdb00d1ed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Na25GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Na25GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Na25GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Na25GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -72,7 +72,7 @@ G4Na25GEMProbability::G4Na25GEMProbability() : G4Na25GEMProbability::G4Na25GEMProbability(const G4Na25GEMProbability &) : G4GEMProbability() { - G4Exception("G4Na25GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na25GEMProbability::copy_constructor meant to not be accessable"); } @@ -81,7 +81,7 @@ G4Na25GEMProbability::G4Na25GEMProbability(const G4Na25GEMProbability &) : G4GEM const G4Na25GEMProbability & G4Na25GEMProbability:: operator=(const G4Na25GEMProbability &) { - G4Exception("G4Na25GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Na25GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne18GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne18GEMProbability.cc index d32a58dabe..e16c2e9eac 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne18GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne18GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne18GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne18GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -72,7 +72,7 @@ G4Ne18GEMProbability::G4Ne18GEMProbability() : G4Ne18GEMProbability::G4Ne18GEMProbability(const G4Ne18GEMProbability &) : G4GEMProbability() { - G4Exception("G4Ne18GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne18GEMProbability::copy_constructor meant to not be accessable"); } @@ -81,7 +81,7 @@ G4Ne18GEMProbability::G4Ne18GEMProbability(const G4Ne18GEMProbability &) : G4GEM const G4Ne18GEMProbability & G4Ne18GEMProbability:: operator=(const G4Ne18GEMProbability &) { - G4Exception("G4Ne18GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne18GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne19GEMProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne19GEMProbability.cc index 6dbeb4c720..dd408b49ed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne19GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne19GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne19GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne19GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -89,7 +89,7 @@ G4Ne19GEMProbability::G4Ne19GEMProbability() : G4Ne19GEMProbability::G4Ne19GEMProbability(const G4Ne19GEMProbability &) : G4GEMProbability() { - G4Exception("G4Ne19GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne19GEMProbability::copy_constructor meant to not be accessable"); } @@ -98,7 +98,7 @@ G4Ne19GEMProbability::G4Ne19GEMProbability(const G4Ne19GEMProbability &) : G4GEM const G4Ne19GEMProbability & G4Ne19GEMProbability:: operator=(const G4Ne19GEMProbability &) { - G4Exception("G4Ne19GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne19GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne20GEMProbability.cc similarity index 98% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne20GEMProbability.cc index e9b9c8ddf7..c4a7b0cce1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne20GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne20GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne20GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne20GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -502,7 +502,7 @@ G4Ne20GEMProbability::G4Ne20GEMProbability() : G4Ne20GEMProbability::G4Ne20GEMProbability(const G4Ne20GEMProbability &) : G4GEMProbability() { - G4Exception("G4Ne20GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne20GEMProbability::copy_constructor meant to not be accessable"); } @@ -511,7 +511,7 @@ G4Ne20GEMProbability::G4Ne20GEMProbability(const G4Ne20GEMProbability &) : G4GEM const G4Ne20GEMProbability & G4Ne20GEMProbability:: operator=(const G4Ne20GEMProbability &) { - G4Exception("G4Ne20GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne20GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne21GEMProbability.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne21GEMProbability.cc index 69d699249b..6ca6e45e63 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne21GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne21GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne21GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne21GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -205,7 +205,7 @@ G4Ne21GEMProbability::G4Ne21GEMProbability() : G4Ne21GEMProbability::G4Ne21GEMProbability(const G4Ne21GEMProbability &) : G4GEMProbability() { - G4Exception("G4Ne21GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne21GEMProbability::copy_constructor meant to not be accessable"); } @@ -214,7 +214,7 @@ G4Ne21GEMProbability::G4Ne21GEMProbability(const G4Ne21GEMProbability &) : G4GEM const G4Ne21GEMProbability & G4Ne21GEMProbability:: operator=(const G4Ne21GEMProbability &) { - G4Exception("G4Ne21GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne21GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne22GEMProbability.cc similarity index 92% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne22GEMProbability.cc index d1e9c2ecde..2e04e19dac 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne22GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne22GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne22GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne22GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -100,7 +100,7 @@ G4Ne22GEMProbability::G4Ne22GEMProbability() : G4Ne22GEMProbability::G4Ne22GEMProbability(const G4Ne22GEMProbability &) : G4GEMProbability() { - G4Exception("G4Ne22GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne22GEMProbability::copy_constructor meant to not be accessable"); } @@ -109,7 +109,7 @@ G4Ne22GEMProbability::G4Ne22GEMProbability(const G4Ne22GEMProbability &) : G4GEM const G4Ne22GEMProbability & G4Ne22GEMProbability:: operator=(const G4Ne22GEMProbability &) { - G4Exception("G4Ne22GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne22GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne23GEMProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne23GEMProbability.cc index 43c7030841..12afd40845 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne23GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne23GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne23GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne23GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -84,7 +84,7 @@ G4Ne23GEMProbability::G4Ne23GEMProbability() : G4Ne23GEMProbability::G4Ne23GEMProbability(const G4Ne23GEMProbability &) : G4GEMProbability() { - G4Exception("G4Ne23GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne23GEMProbability::copy_constructor meant to not be accessable"); } @@ -93,7 +93,7 @@ G4Ne23GEMProbability::G4Ne23GEMProbability(const G4Ne23GEMProbability &) : G4GEM const G4Ne23GEMProbability & G4Ne23GEMProbability:: operator=(const G4Ne23GEMProbability &) { - G4Exception("G4Ne23GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne23GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne24GEMProbability.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne24GEMProbability.cc index d996b4570a..1f1e75e958 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Ne24GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4Ne24GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Ne24GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Ne24GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -59,7 +59,7 @@ G4Ne24GEMProbability::G4Ne24GEMProbability() : G4Ne24GEMProbability::G4Ne24GEMProbability(const G4Ne24GEMProbability &) : G4GEMProbability() { - G4Exception("G4Ne24GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne24GEMProbability::copy_constructor meant to not be accessable"); } @@ -68,7 +68,7 @@ G4Ne24GEMProbability::G4Ne24GEMProbability(const G4Ne24GEMProbability &) : G4GEM const G4Ne24GEMProbability & G4Ne24GEMProbability:: operator=(const G4Ne24GEMProbability &) { - G4Exception("G4Ne24GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4Ne24GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMChannel.cc index adcc6d4286..20b8481d59 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronGEMChannel.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronGEMChannel.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4NeutronGEMChannel & G4NeutronGEMChannel::operator=(const G4NeutronGEMChannel & ) { - G4Exception("G4NeutronGEMChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronGEMChannel::operator= meant to not be accessable"); return *this; } G4NeutronGEMChannel::G4NeutronGEMChannel(const G4NeutronGEMChannel & ): G4GEMChannel() { - G4Exception("G4NeutronGEMChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronGEMChannel::CopyConstructor meant to not be accessable"); } G4bool G4NeutronGEMChannel::operator==(const G4NeutronGEMChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMProbability.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMProbability.cc index 9aac0bd780..97e52985a4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4NeutronGEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronGEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronGEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -42,7 +42,7 @@ G4NeutronGEMProbability::G4NeutronGEMProbability() : G4NeutronGEMProbability::G4NeutronGEMProbability(const G4NeutronGEMProbability &) : G4GEMProbability() { - G4Exception("G4NeutronGEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronGEMProbability::copy_constructor meant to not be accessable"); } @@ -51,7 +51,7 @@ G4NeutronGEMProbability::G4NeutronGEMProbability(const G4NeutronGEMProbability & const G4NeutronGEMProbability & G4NeutronGEMProbability:: operator=(const G4NeutronGEMProbability &) { - G4Exception("G4NeutronGEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronGEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O14GEMProbability.cc similarity index 89% rename from source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O14GEMProbability.cc index 2f0e9d01cd..9d5939dfb2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O14GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O14GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O14GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O14GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -60,7 +60,7 @@ G4O14GEMProbability::G4O14GEMProbability() : G4O14GEMProbability::G4O14GEMProbability(const G4O14GEMProbability &) : G4GEMProbability() { - G4Exception("G4O14GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O14GEMProbability::copy_constructor meant to not be accessable"); } @@ -69,7 +69,7 @@ G4O14GEMProbability::G4O14GEMProbability(const G4O14GEMProbability &) : G4GEMPro const G4O14GEMProbability & G4O14GEMProbability:: operator=(const G4O14GEMProbability &) { - G4Exception("G4O14GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O14GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O15GEMProbability.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O15GEMProbability.cc index 80dd6af85e..040525ca06 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O15GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O15GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O15GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O15GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -229,7 +229,7 @@ G4O15GEMProbability::G4O15GEMProbability() : G4O15GEMProbability::G4O15GEMProbability(const G4O15GEMProbability &) : G4GEMProbability() { - G4Exception("G4O15GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O15GEMProbability::copy_constructor meant to not be accessable"); } @@ -238,7 +238,7 @@ G4O15GEMProbability::G4O15GEMProbability(const G4O15GEMProbability &) : G4GEMPro const G4O15GEMProbability & G4O15GEMProbability:: operator=(const G4O15GEMProbability &) { - G4Exception("G4O15GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O15GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O16GEMProbability.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O16GEMProbability.cc index 87fbc79361..dac26160e2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O16GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O16GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O16GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O16GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -380,7 +380,7 @@ G4O16GEMProbability::G4O16GEMProbability() : G4O16GEMProbability::G4O16GEMProbability(const G4O16GEMProbability &) : G4GEMProbability() { - G4Exception("G4O16GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O16GEMProbability::copy_constructor meant to not be accessable"); } @@ -389,7 +389,7 @@ G4O16GEMProbability::G4O16GEMProbability(const G4O16GEMProbability &) : G4GEMPro const G4O16GEMProbability & G4O16GEMProbability:: operator=(const G4O16GEMProbability &) { - G4Exception("G4O16GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O16GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O17GEMProbability.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O17GEMProbability.cc index c34db46ead..7ef59d37aa 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O17GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O17GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O17GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O17GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -235,7 +235,7 @@ G4O17GEMProbability::G4O17GEMProbability() : G4O17GEMProbability::G4O17GEMProbability(const G4O17GEMProbability &) : G4GEMProbability() { - G4Exception("G4O17GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O17GEMProbability::copy_constructor meant to not be accessable"); } @@ -244,7 +244,7 @@ G4O17GEMProbability::G4O17GEMProbability(const G4O17GEMProbability &) : G4GEMPro const G4O17GEMProbability & G4O17GEMProbability:: operator=(const G4O17GEMProbability &) { - G4Exception("G4O17GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O17GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O18GEMProbability.cc similarity index 90% rename from source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O18GEMProbability.cc index 20a8125101..abeef0865e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O18GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O18GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O18GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O18GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -80,7 +80,7 @@ G4O18GEMProbability::G4O18GEMProbability() : G4O18GEMProbability::G4O18GEMProbability(const G4O18GEMProbability &) : G4GEMProbability() { - G4Exception("G4O18GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O18GEMProbability::copy_constructor meant to not be accessable"); } @@ -89,7 +89,7 @@ G4O18GEMProbability::G4O18GEMProbability(const G4O18GEMProbability &) : G4GEMPro const G4O18GEMProbability & G4O18GEMProbability:: operator=(const G4O18GEMProbability &) { - G4Exception("G4O18GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O18GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O19GEMProbability.cc similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O19GEMProbability.cc index 08f79a51f4..ee25dfdaed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O19GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O19GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O19GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O19GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -87,7 +87,7 @@ G4O19GEMProbability::G4O19GEMProbability() : G4O19GEMProbability::G4O19GEMProbability(const G4O19GEMProbability &) : G4GEMProbability() { - G4Exception("G4O19GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O19GEMProbability::copy_constructor meant to not be accessable"); } @@ -96,7 +96,7 @@ G4O19GEMProbability::G4O19GEMProbability(const G4O19GEMProbability &) : G4GEMPro const G4O19GEMProbability & G4O19GEMProbability:: operator=(const G4O19GEMProbability &) { - G4Exception("G4O19GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O19GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O20GEMProbability.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O20GEMProbability.cc index 153cbe4f66..3a00c1d30a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4O20GEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4O20GEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4O20GEMProbability.cc,v 1.2 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4O20GEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -38,7 +38,7 @@ G4O20GEMProbability::G4O20GEMProbability() : G4O20GEMProbability::G4O20GEMProbability(const G4O20GEMProbability &) : G4GEMProbability() { - G4Exception("G4O20GEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O20GEMProbability::copy_constructor meant to not be accessable"); } @@ -47,7 +47,7 @@ G4O20GEMProbability::G4O20GEMProbability(const G4O20GEMProbability &) : G4GEMPro const G4O20GEMProbability & G4O20GEMProbability:: operator=(const G4O20GEMProbability &) { - G4Exception("G4O20GEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4O20GEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMChannel.cc index a34f3e4b07..e069793c8c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonGEMChannel.cc,v 1.2 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonGEMChannel.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4ProtonGEMChannel & G4ProtonGEMChannel::operator=(const G4ProtonGEMChannel & ) { - G4Exception("G4ProtonGEMChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonGEMChannel::operator= meant to not be accessable"); return *this; } G4ProtonGEMChannel::G4ProtonGEMChannel(const G4ProtonGEMChannel & ): G4GEMChannel() { - G4Exception("G4ProtonGEMChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonGEMChannel::CopyConstructor meant to not be accessable"); } G4bool G4ProtonGEMChannel::operator==(const G4ProtonGEMChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMProbability.cc similarity index 89% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMProbability.cc index e83a098909..9512639555 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4ProtonGEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonGEMProbability.cc,v 1.2 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonGEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Sept 2001) @@ -42,7 +42,7 @@ G4ProtonGEMProbability::G4ProtonGEMProbability() : G4ProtonGEMProbability::G4ProtonGEMProbability(const G4ProtonGEMProbability &) : G4GEMProbability() { - G4Exception("G4ProtonGEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonGEMProbability::copy_constructor meant to not be accessable"); } @@ -51,7 +51,7 @@ G4ProtonGEMProbability::G4ProtonGEMProbability(const G4ProtonGEMProbability &) : const G4ProtonGEMProbability & G4ProtonGEMProbability:: operator=(const G4ProtonGEMProbability &) { - G4Exception("G4ProtonGEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonGEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMChannel.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMChannel.cc index bf60007229..3924cf8332 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMChannel.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMChannel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonGEMChannel.cc,v 1.2 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonGEMChannel.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov. 1999) @@ -33,13 +33,13 @@ const G4TritonGEMChannel & G4TritonGEMChannel::operator=(const G4TritonGEMChannel & ) { - G4Exception("G4TritonGEMChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonGEMChannel::operator= meant to not be accessable"); return *this; } G4TritonGEMChannel::G4TritonGEMChannel(const G4TritonGEMChannel & ) : G4GEMChannel() { - G4Exception("G4TritonGEMChannel::CopyConstructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonGEMChannel::CopyConstructor meant to not be accessable"); } G4bool G4TritonGEMChannel::operator==(const G4TritonGEMChannel & right) const diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMProbability.cc similarity index 89% rename from source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc rename to source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMProbability.cc index f5db848ef4..6b0a2fd1dd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonGEMProbability.cc +++ b/source/processes/hadronic/models/de_excitation/gem_evaporation/src/G4TritonGEMProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonGEMProbability.cc,v 1.2 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonGEMProbability.cc,v 1.2 2003/11/03 17:53:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) @@ -42,7 +42,7 @@ G4TritonGEMProbability::G4TritonGEMProbability() : G4TritonGEMProbability::G4TritonGEMProbability(const G4TritonGEMProbability &) : G4GEMProbability() { - G4Exception("G4TritonGEMProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonGEMProbability::copy_constructor meant to not be accessable"); } @@ -51,7 +51,7 @@ G4TritonGEMProbability::G4TritonGEMProbability(const G4TritonGEMProbability &) : const G4TritonGEMProbability & G4TritonGEMProbability:: operator=(const G4TritonGEMProbability &) { - G4Exception("G4TritonGEMProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonGEMProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/de_excitation/handler/GNUmakefile b/source/processes/hadronic/models/de_excitation/handler/GNUmakefile new file mode 100644 index 0000000000..525b2065e9 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/handler/GNUmakefile @@ -0,0 +1,49 @@ +# $Id: GNUmakefile,v 1.4 2003/10/08 16:42:19 hpw Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4hadronic_deex_handler + +ifndef G4INSTALL + G4INSTALL = ../../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/multifragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/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)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh b/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh rename to source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh index d8578459fc..471992ca08 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ExcitationHandler.hh +++ b/source/processes/hadronic/models/de_excitation/handler/include/G4ExcitationHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExcitationHandler.hh,v 1.11 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ExcitationHandler.hh,v 1.4 2003/10/07 12:54:01 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -129,14 +129,14 @@ private: G4bool MyOwnFermiBreakUpClass; G4bool MyOwnPhotonEvaporationClass; - struct DeleteFragment + struct DeleteFragment + { + template + void operator()(const T* ptr) const { - template - void operator()(const T* ptr) const - { - delete ptr; - } - }; + delete ptr; + } + }; }; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc b/source/processes/hadronic/models/de_excitation/handler/src/G4ExcitationHandler.cc similarity index 59% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc rename to source/processes/hadronic/models/de_excitation/handler/src/G4ExcitationHandler.cc index d1703e3038..c15e9a9ba5 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ExcitationHandler.cc +++ b/source/processes/hadronic/models/de_excitation/handler/src/G4ExcitationHandler.cc @@ -55,7 +55,7 @@ G4ExcitationHandler::G4ExcitationHandler(): G4ExcitationHandler::G4ExcitationHandler(const G4ExcitationHandler &) { - G4Exception("G4ExcitationHandler::copy_constructor: is meant to not be accessable! "); + throw G4HadronicException(__FILE__, __LINE__, "G4ExcitationHandler::copy_constructor: is meant to not be accessable! "); } @@ -70,7 +70,7 @@ G4ExcitationHandler::~G4ExcitationHandler() const G4ExcitationHandler & G4ExcitationHandler::operator=(const G4ExcitationHandler &) { - G4Exception("G4ExcitationHandler::operator=: is meant to not be accessable! "); + throw G4HadronicException(__FILE__, __LINE__, "G4ExcitationHandler::operator=: is meant to not be accessable! "); return *this; } @@ -78,13 +78,13 @@ const G4ExcitationHandler & G4ExcitationHandler::operator=(const G4ExcitationHan G4bool G4ExcitationHandler::operator==(const G4ExcitationHandler &) const { - G4Exception("G4ExcitationHandler::operator==: is meant to not be accessable! "); + throw G4HadronicException(__FILE__, __LINE__, "G4ExcitationHandler::operator==: is meant to not be accessable! "); return false; } G4bool G4ExcitationHandler::operator!=(const G4ExcitationHandler &) const { - G4Exception("G4ExcitationHandler::operator!=: is meant to not be accessable! "); + throw G4HadronicException(__FILE__, __LINE__, "G4ExcitationHandler::operator!=: is meant to not be accessable! "); return true; } @@ -98,165 +98,191 @@ G4ReactionProductVector * G4ExcitationHandler::BreakItUp(const G4Fragment &theIn G4int Z = static_cast(theInitialState.GetZ()); G4FragmentVector* theTempResult = 0; G4Fragment theExcitedNucleus; -// G4cerr << "Excitation energy in deexcitation"< 4) { - // Initial State De-Excitation - if(AG4NucleiPropertiesTable::GetBindingEnergy(Z,A)) { + if (A > 4) + { + // Initial State De-Excitation + if(AG4NucleiPropertiesTable::GetBindingEnergy(Z,A)) { + { + theResult = theFermiModel->BreakItUp(theInitialState); + } + else if (exEnergy>GetMinE()*A) + { + theResult = theMultiFragmentation->BreakItUp(theInitialState); + } + else + { + theResult = theEvaporation->BreakItUp(theInitialState); + } - theResult = theFermiModel->BreakItUp(theInitialState); - - } else if (exEnergy>GetMinE()*A) { - - theResult = theMultiFragmentation->BreakItUp(theInitialState); - - } else { - - theResult = theEvaporation->BreakItUp(theInitialState); + + + + // De-Excitation loop + // ------------------ + // Check if there are excited fragments + std::list theResultList; + G4FragmentVector::iterator j; + std::list::iterator i; + for (j = theResult->begin(); j != theResult->end();j++) + { + theResultList.push_back(*j); + } + theResult->clear(); + for (i = theResultList.begin(); i != theResultList.end(); i++) + { + exEnergy = (*i)->GetExcitationEnergy(); + if (exEnergy > 0.0) + { + A = (*i)->GetA(); + Z = static_cast((*i)->GetZ()); + theExcitedNucleus = *(*i); + // try to de-excite this fragment + if( A < GetMaxA() && Z < GetMaxZ() ) + // && exEnergy>G4NucleiPropertiesTable::GetBindingEnergy(Z,A)) + { + // Fermi Breakup + theTempResult = theFermiModel->BreakItUp(theExcitedNucleus); + if (theTempResult->size() == 1) + { + std::for_each(theTempResult->begin(),theTempResult->end(),DeleteFragment()); + delete theTempResult; + } + theTempResult = theEvaporation->BreakItUp(theExcitedNucleus); + } + else + { + // Evaporation + theTempResult = theEvaporation->BreakItUp(theExcitedNucleus); + } + // The Nucleus has been fragmented? + if (theTempResult->size() > 1) + // If so : + { + // Remove excited fragment from the result + // delete theResult->removeAt(i--); + delete (*i); + i = theResultList.erase(i); + // and add theTempResult elements to theResult + for (G4FragmentVector::reverse_iterator ri = theTempResult->rbegin(); + ri != theTempResult->rend(); ++ri) + { + theResultList.push_back(*ri); + } + delete theTempResult; + } + else + // If not : + { + // it doesn't matter, we Follow with the next fragment but + // I have to clean up + std::for_each(theTempResult->begin(),theTempResult->end(),DeleteFragment()); + delete theTempResult; + } + } + } + for (i = theResultList.begin(); i != theResultList.end(); i++) + { + theResult->push_back(*i); + } + theResultList.clear(); } - - - - - // De-Excitation loop - // ------------------ - // Check if there are excited fragments - std::list theResultList; - G4FragmentVector::iterator j; - std::list::iterator i; - for (j = theResult->begin(); j != theResult->end();j++) - theResultList.push_back(*j); - theResult->clear(); - for (i = theResultList.begin(); i != theResultList.end(); i++) { - exEnergy = (*i)->GetExcitationEnergy(); - if (exEnergy > 0.0) { - A = (*i)->GetA(); - Z = static_cast((*i)->GetZ()); - theExcitedNucleus = *(*i); - // try to de-excite this fragment - if(AG4NucleiPropertiesTable::GetBindingEnergy(Z,A)) { - // Fermi Breakup - theTempResult = theFermiModel->BreakItUp(theExcitedNucleus); - } else { - // Evaporation - theTempResult = theEvaporation->BreakItUp(theExcitedNucleus); - } - // The Nucleus has been fragmented? - if (theTempResult->size() > 1) { - // If so : - - // Remove excited fragment from the result - // delete theResult->removeAt(i--); - delete (*i); - i = theResultList.erase(i); - // and add theTempResult elements to theResult - for (G4FragmentVector::reverse_iterator ri = theTempResult->rbegin(); - ri != theTempResult->rend(); ++ri) - { - theResultList.push_back(*ri); - } - delete theTempResult; - } else { // If not : - // it doesn't matter, we Follow with the next fragment but - // I have to clean up - std::for_each(theTempResult->begin(),theTempResult->end(),DeleteFragment()); - delete theTempResult; - } - } + else // if A > 4 + { + theResult = new G4FragmentVector(); + theResult->push_back(new G4Fragment(theInitialState)); } - for (i = theResultList.begin(); i != theResultList.end(); i++) - { - theResult->push_back(*i); - } - theResultList.clear(); - } else { // if A > 4 - theResult = new G4FragmentVector(); - theResult->push_back(new G4Fragment(theInitialState)); - } // Now we try to deexcite by means of PhotonEvaporation those fragments // which are excited. - + theTempResult = 0; std::list theResultList; std::list::iterator j; G4FragmentVector::iterator i; for (i = theResult->begin(); i != theResult->end();i++) - theResultList.push_back(*i); + { + theResultList.push_back(*i); + } theResult->clear(); - for (j = theResultList.begin(); j != theResultList.end(); j++) { - if ((*j)->GetA() > 1 && (*j)->GetExcitationEnergy() > 0.1*eV) { - theExcitedNucleus = *(*j); - theTempResult = thePhotonEvaporation->BreakItUp(theExcitedNucleus); - // If Gamma Evaporation has succeed then - if (theTempResult->size() > 1) { - // Remove excited fragment from the result - delete (*j); - theResultList.erase(j--); - // and add theTempResult elements to theResult - for (G4FragmentVector::reverse_iterator ri = theTempResult->rbegin(); - ri != theTempResult->rend(); ++ri) - { + for (j = theResultList.begin(); j != theResultList.end(); j++) + { + if ((*j)->GetA() > 1 && (*j)->GetExcitationEnergy() > 0.1*eV) + { + theExcitedNucleus = *(*j); + theTempResult = thePhotonEvaporation->BreakItUp(theExcitedNucleus); + // If Gamma Evaporation has succeed then + if (theTempResult->size() > 1) + { + // Remove excited fragment from the result + delete (*j); + theResultList.erase(j--); + // and add theTempResult elements to theResult + for (G4FragmentVector::reverse_iterator ri = theTempResult->rbegin(); + ri != theTempResult->rend(); ++ri) + { #ifdef PRECOMPOUND_TEST - if ((*ri)->GetA() == 0) - (*ri)->SetCreatorModel(G4String("G4PhotonEvaporation")); - else - (*ri)->SetCreatorModel(G4String("ResidualNucleus")); + if ((*ri)->GetA() == 0) + (*ri)->SetCreatorModel(G4String("G4PhotonEvaporation")); + else + (*ri)->SetCreatorModel(G4String("ResidualNucleus")); #endif - theResultList.push_back(*ri); - } - delete theTempResult; - } - // In other case, just clean theTempResult and continue - else { - std::for_each(theTempResult->begin(), theTempResult->end(), DeleteFragment()); - delete theTempResult; + theResultList.push_back(*ri); + } + delete theTempResult; + } + // In other case, just clean theTempResult and continue + else + { + std::for_each(theTempResult->begin(), theTempResult->end(), DeleteFragment()); + delete theTempResult; #ifdef debugphoton - G4cout << "G4ExcitationHandler: Gamma Evaporation could not deexcite the nucleus: \n" - << "-----------------------------------------------------------------------\n" - << theExcitedNucleus << '\n' - << "-----------------------------------------------------------------------\n"; + G4cout << "G4ExcitationHandler: Gamma Evaporation could not deexcite the nucleus: \n" + << "-----------------------------------------------------------------------\n" + << theExcitedNucleus << '\n' + << "-----------------------------------------------------------------------\n"; #endif - G4double GammaEnergy = (*j)->GetExcitationEnergy(); - G4double cosTheta = 1. - 2. * G4UniformRand(); - G4double sinTheta = sqrt(1. - cosTheta * cosTheta); - G4double phi = twopi * G4UniformRand(); - G4ThreeVector GammaP(GammaEnergy * sinTheta * cos(phi), - GammaEnergy * sinTheta * sin(phi), - GammaEnergy * cosTheta ); - G4LorentzVector Gamma4P(GammaP,GammaEnergy); - G4Fragment * theHandlerPhoton = new G4Fragment(Gamma4P,G4Gamma::GammaDefinition()); - - - - G4double Mass = (*j)->GetGroundStateMass(); - G4ThreeVector ResidualP((*j)->GetMomentum().vect() - GammaP); - G4double ResidualE = sqrt(ResidualP*ResidualP + Mass*Mass); - G4LorentzVector Residual4P(ResidualP,ResidualE); - (*j)->SetMomentum(Residual4P); - - + G4double GammaEnergy = (*j)->GetExcitationEnergy(); + G4double cosTheta = 1. - 2. * G4UniformRand(); + G4double sinTheta = sqrt(1. - cosTheta * cosTheta); + G4double phi = twopi * G4UniformRand(); + G4ThreeVector GammaP(GammaEnergy * sinTheta * cos(phi), + GammaEnergy * sinTheta * sin(phi), + GammaEnergy * cosTheta ); + G4LorentzVector Gamma4P(GammaP,GammaEnergy); + G4Fragment * theHandlerPhoton = new G4Fragment(Gamma4P,G4Gamma::GammaDefinition()); + + + + G4double Mass = (*j)->GetGroundStateMass(); + G4ThreeVector ResidualP((*j)->GetMomentum().vect() - GammaP); + G4double ResidualE = sqrt(ResidualP*ResidualP + Mass*Mass); + G4LorentzVector Residual4P(ResidualP,ResidualE); + (*j)->SetMomentum(Residual4P); + + #ifdef PRECOMPOUND_TEST - theHandlerPhoton->SetCreatorModel("G4ExcitationHandler"); + theHandlerPhoton->SetCreatorModel("G4ExcitationHandler"); #endif - theResultList.push_back( theHandlerPhoton ); + theResultList.push_back( theHandlerPhoton ); #ifdef debugphoton - G4cout << "Emmited photon:\n" - << theResultList.back() << '\n' - << "Residual nucleus after photon emission:\n" - << *(*j) << '\n' - << "-----------------------------------------------------------------------\n"; + G4cout << "Emmited photon:\n" + << theResultList.back() << '\n' + << "Residual nucleus after photon emission:\n" + << *(*j) << '\n' + << "-----------------------------------------------------------------------\n"; #endif - } - } - } + } + } + } for (j = theResultList.begin(); j != theResultList.end(); j++) - theResult->push_back(*j); + { + theResult->push_back(*j); + } theResultList.clear(); @@ -271,7 +297,7 @@ G4ReactionProductVector * G4ExcitationHandler::Transform(G4FragmentVector * theFragmentVector) const { if (theFragmentVector == 0) return 0; - + // Conversion from G4FragmentVector to G4ReactionProductVector G4ParticleDefinition *theGamma = G4Gamma::GammaDefinition(); G4ParticleDefinition *theNeutron = G4Neutron::NeutronDefinition(); @@ -346,9 +372,9 @@ G4ExcitationHandler::Transform(G4FragmentVector * theFragmentVector) const } G4ReactionProduct* tmpPtr=0; theReactionProductVector->erase(std::remove_if(theReactionProductVector->begin(), - theReactionProductVector->end(), - std::bind2nd(std::equal_to(), - tmpPtr)), + theReactionProductVector->end(), + std::bind2nd(std::equal_to(), + tmpPtr)), theReactionProductVector->end()); return theReactionProductVector; } @@ -370,7 +396,7 @@ void G4ExcitationHandler::CheckConservation(const G4Fragment & theInitialState, ProductsA += static_cast((*h)->GetA()); ProductsZ += static_cast((*h)->GetZ()); } - + if (ProductsA != theInitialState.GetA()) { G4cout << "!!!!!!!!!! Baryonic Number Conservation Violation !!!!!!!!!!" << G4endl; G4cout << "G4ExcitationHandler.cc: Barionic Number Conservation test for deexcitation fragments" diff --git a/source/processes/hadronic/models/de_excitation/management/GNUmakefile b/source/processes/hadronic/models/de_excitation/management/GNUmakefile new file mode 100644 index 0000000000..f2a5aeddbf --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/management/GNUmakefile @@ -0,0 +1,48 @@ +# $Id: GNUmakefile,v 1.2 2003/10/08 16:42:20 hpw Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4hadronic_deex_management + +ifndef G4INSTALL + G4INSTALL = ../../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/multifragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh rename to source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh index 2eb5d838a0..d1fb654607 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationChannel.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEvaporationChannel.hh,v 1.7 2002/12/12 19:17:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEvaporationChannel.hh,v 1.1 2003/08/29 08:44:24 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.hh b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.hh rename to source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh index 2a71f1b8bd..4bc8153eeb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEvaporationFactory.hh +++ b/source/processes/hadronic/models/de_excitation/management/include/G4VEvaporationFactory.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEvaporationFactory.hh,v 1.5 2003/06/16 17:06:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEvaporationFactory.hh,v 1.1 2003/08/29 09:04:09 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc similarity index 84% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc rename to source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc index 0df18c022f..abf4718e70 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationChannel.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationChannel.cc @@ -21,18 +21,19 @@ // ******************************************************************** // // -// $Id: G4VEvaporationChannel.cc,v 1.7 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEvaporationChannel.cc,v 1.3 2003/11/04 11:27:53 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) // #include "G4VEvaporationChannel.hh" +#include "G4HadronicException.hh" G4VEvaporationChannel::G4VEvaporationChannel(const G4VEvaporationChannel &) { - G4Exception("G4VEvaporationChannel::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VEvaporationChannel::copy_constructor meant to not be accessable"); } @@ -40,7 +41,7 @@ G4VEvaporationChannel::G4VEvaporationChannel(const G4VEvaporationChannel &) const G4VEvaporationChannel & G4VEvaporationChannel::operator=(const G4VEvaporationChannel &) { - G4Exception("G4VEvaporationChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VEvaporationChannel::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.cc b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationFactory.cc similarity index 82% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.cc rename to source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationFactory.cc index f66c060ae8..c3309b2c1f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEvaporationFactory.cc +++ b/source/processes/hadronic/models/de_excitation/management/src/G4VEvaporationFactory.cc @@ -21,32 +21,33 @@ // ******************************************************************** // // -// $Id: G4VEvaporationFactory.cc,v 1.4 2003/06/16 17:06:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEvaporationFactory.cc,v 1.3 2003/11/04 11:27:56 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara #include "G4VEvaporationFactory.hh" +#include "G4HadronicException.hh" const G4VEvaporationFactory & G4VEvaporationFactory::operator=(const G4VEvaporationFactory & ) { - G4Exception("G4VEvaporationFactory::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VEvaporationFactory::operator= meant to not be accessable."); return *this; } G4bool G4VEvaporationFactory::operator==(const G4VEvaporationFactory & ) const { - G4Exception("G4VEvaporationFactory::operator== meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VEvaporationFactory::operator== meant to not be accessable."); return false; } G4bool G4VEvaporationFactory::operator!=(const G4VEvaporationFactory & ) const { - G4Exception("G4VEvaporationFactory::operator!= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VEvaporationFactory::operator!= meant to not be accessable."); return true; } diff --git a/source/processes/hadronic/models/generator/string_common/GNUmakefile b/source/processes/hadronic/models/de_excitation/multifragmentation/GNUmakefile similarity index 83% rename from source/processes/hadronic/models/generator/string_common/GNUmakefile rename to source/processes/hadronic/models/de_excitation/multifragmentation/GNUmakefile index fd02e83bda..7c6b939ba5 100644 --- a/source/processes/hadronic/models/generator/string_common/GNUmakefile +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.2 2003/06/18 13:34:26 gcosmo Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 16:42:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_string_common +name := G4hadronic_deex_multifragmentation ifndef G4INSTALL G4INSTALL = ../../../../../.. @@ -11,6 +11,10 @@ endif include $(G4INSTALL)/config/architecture.gmk +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPNumerics/include \ @@ -19,12 +23,12 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ @@ -33,6 +37,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/materials/include - + + include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.hh index 894ca7e007..be4cf0f6bf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Solver.hh,v 1.7 2002/12/12 19:17:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Solver.hh,v 1.1 2003/08/26 18:47:18 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4Solver.icc b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.icc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4Solver.icc rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4Solver.icc diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMF.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMF.hh index 9bd2dfa233..55149e9977 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMF.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMF.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMF.hh,v 1.9 2002/12/12 19:17:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMF.hh,v 1.1 2003/08/26 18:47:22 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFChannel.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFChannel.hh index 74e1163100..29eb9a63f9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFChannel.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFChannel.hh,v 1.10 2003/06/16 17:06:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFChannel.hh,v 1.1 2003/08/26 18:47:20 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFFragment.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFFragment.hh index b8e1cd9eb2..6cdd27ad83 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFFragment.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFFragment.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFFragment.hh,v 1.9 2002/12/12 19:17:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFFragment.hh,v 1.1 2003/08/26 18:47:30 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroBiNucleon.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroBiNucleon.hh index eed5746e00..f4d1fcdf84 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroBiNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroBiNucleon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroBiNucleon.hh,v 1.8 2003/05/30 13:23:22 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroBiNucleon.hh,v 1.1 2003/08/26 18:47:22 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacrocanonical.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroCanonical.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacrocanonical.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroCanonical.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroChemicalPotential.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroChemicalPotential.hh index 628e2ec820..8b28038568 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroChemicalPotential.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroChemicalPotential.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroChemicalPotential.hh,v 1.10 2003/06/16 17:06:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroChemicalPotential.hh,v 1.1 2003/08/26 18:47:26 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiNucleon.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiNucleon.hh index cb10c8d6a4..d577c5f803 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiNucleon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroMultiNucleon.hh,v 1.6 2002/12/12 19:17:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroMultiNucleon.hh,v 1.1 2003/08/26 18:47:24 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiplicity.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiplicity.hh index 1dac6ef466..ea0928d56f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroMultiplicity.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroMultiplicity.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroMultiplicity.hh,v 1.10 2003/06/16 17:06:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroMultiplicity.hh,v 1.1 2003/08/26 18:47:27 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroNucleon.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroNucleon.hh index 2cac601845..64fec24600 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroNucleon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroNucleon.hh,v 1.9 2003/05/30 13:23:22 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroNucleon.hh,v 1.1 2003/08/26 18:47:29 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTemperature.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTemperature.hh index f02e891fd6..30ff074a3f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTemperature.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTemperature.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTemperature.hh,v 1.11 2003/06/16 17:06:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroTemperature.hh,v 1.1 2003/08/26 18:47:21 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTetraNucleon.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTetraNucleon.hh index b37310e45b..70d898b9ed 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTetraNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTetraNucleon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTetraNucleon.hh,v 1.8 2003/05/30 13:23:22 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroTetraNucleon.hh,v 1.1 2003/08/26 18:47:21 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTriNucleon.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTriNucleon.hh index 4d0c283f22..a7187b2705 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMacroTriNucleon.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMacroTriNucleon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTriNucleon.hh,v 1.8 2003/05/30 13:23:22 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroTriNucleon.hh,v 1.1 2003/08/26 18:47:26 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroCanonical.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroCanonical.hh index bdf36ed120..fa3143bc83 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicrocanonical.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroCanonical.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroCanonical.hh,v 1.12 2003/06/16 17:06:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMicroCanonical.hh,v 1.1 2003/08/26 18:47:25 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroManager.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroManager.hh index 29995d754f..3e709db2bb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroManager.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroManager.hh,v 1.8 2003/06/16 17:06:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMicroManager.hh,v 1.1 2003/08/26 18:47:29 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroPartition.hh similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroPartition.hh index 5c9fedb40a..be582e1653 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFMicroPartition.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFMicroPartition.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroPartition.hh,v 1.12 2003/06/17 13:53:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMicroPartition.hh,v 1.1 2003/08/26 18:47:30 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFParameters.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFParameters.hh index 0bf72f79f3..379b8cf17b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4StatMFParameters.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4StatMFParameters.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFParameters.hh,v 1.7 2002/12/12 19:17:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFParameters.hh,v 1.1 2003/08/26 18:47:20 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VMultiFragmentation.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VMultiFragmentation.hh index 1ee973f440..fc2c81b483 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VMultiFragmentation.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VMultiFragmentation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VMultiFragmentation.hh,v 1.7 2002/12/12 19:17:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VMultiFragmentation.hh,v 1.1 2003/08/26 18:47:31 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFEnsemble.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFEnsemble.hh index 7289eead6b..cb25fe347f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFEnsemble.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFEnsemble.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VStatMFEnsemble.hh,v 1.6 2002/12/12 19:17:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VStatMFEnsemble.hh,v 1.1 2003/08/26 18:47:27 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFMacroCluster.hh similarity index 91% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh rename to source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFMacroCluster.hh index 0d53dcd80f..696898b1f4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VStatMFMacroCluster.hh +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/include/G4VStatMFMacroCluster.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VStatMFMacroCluster.hh,v 1.8 2002/12/12 19:17:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VStatMFMacroCluster.hh,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -32,6 +32,7 @@ #define G4VStatMFMacroCluster_h 1 #include "G4StatMFParameters.hh" +#include "G4HadronicException.hh" class G4VStatMFMacroCluster { @@ -45,7 +46,7 @@ public: _MeanMultiplicity(0.0), _Energy(0.0) { - if (theA <= 0) G4Exception( + if (theA <= 0) throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFMacroCluster::Constructor: Cluster's size must be >= 1"); _InvLevelDensity = CalcInvLevelDensity(); } @@ -122,7 +123,7 @@ public: void SetSize(const G4double value) { - if (value <= 0.0) G4Exception("G4VStatMFMacroCluster::SetSize: Cluster's size must be >= 1"); + if (value <= 0.0) throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFMacroCluster::SetSize: Cluster's size must be >= 1"); theA = G4int(value); _InvLevelDensity = CalcInvLevelDensity(); } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4Solver.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4Solver.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4Solver.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4Solver.cc index eb3689fcfb..1d7edbdca0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4Solver.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4Solver.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Solver.cc,v 1.5 2002/12/12 19:17:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Solver.cc,v 1.1 2003/08/26 18:47:52 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMF.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMF.cc similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMF.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMF.cc index caeaf1e5a9..34401ef248 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMF.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMF.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMF.cc,v 1.17 2003/06/16 17:06:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMF.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -42,7 +42,7 @@ G4StatMF::~G4StatMF() {} //{if (_theEnsemble != 0) delete _theEnsemble;} // Copy constructor G4StatMF::G4StatMF(const G4StatMF & ) : G4VMultiFragmentation() { - G4Exception("G4StatMF::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMF::copy_constructor meant to not be accessable"); } @@ -50,21 +50,21 @@ G4StatMF::G4StatMF(const G4StatMF & ) : G4VMultiFragmentation() G4StatMF & G4StatMF::operator=(const G4StatMF & ) { - G4Exception("G4StatMF::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMF::operator= meant to not be accessable"); return *this; } G4bool G4StatMF::operator==(const G4StatMF & ) { - G4Exception("G4StatMF::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMF::operator== meant to not be accessable"); return false; } G4bool G4StatMF::operator!=(const G4StatMF & ) { - G4Exception("G4StatMF::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMF::operator!= meant to not be accessable"); return true; } @@ -161,7 +161,7 @@ G4FragmentVector * G4StatMF::BreakItUp(const G4Fragment &theFragment) // If Iterations >= 10 means that we couldn't solve for temperature if (Iterations >= 10) - G4Exception("G4StatMF::BreakItUp: Was not possible to solve for temperature of breaking channel"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMF::BreakItUp: Was not possible to solve for temperature of breaking channel"); G4FragmentVector * theResult = theChannel-> diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc index 80e39776b8..0597be897c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFChannel.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFChannel.cc @@ -21,13 +21,14 @@ // ******************************************************************** // // -// $Id: G4StatMFChannel.cc,v 1.16 2003/06/16 17:06:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFChannel.cc,v 1.3 2003/11/04 11:29:52 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara #include "G4StatMFChannel.hh" +#include "G4HadronicException.hh" #include class SumCoulombEnergy : public std::binary_function @@ -52,7 +53,7 @@ public: // Copy constructor G4StatMFChannel::G4StatMFChannel(const G4StatMFChannel & ) { - G4Exception("G4StatMFChannel::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFChannel::copy_constructor meant to not be accessable"); } // Operators @@ -60,21 +61,21 @@ G4StatMFChannel::G4StatMFChannel(const G4StatMFChannel & ) G4StatMFChannel & G4StatMFChannel:: operator=(const G4StatMFChannel & ) { - G4Exception("G4StatMFChannel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFChannel::operator= meant to not be accessable"); return *this; } G4bool G4StatMFChannel::operator==(const G4StatMFChannel & ) const { - // G4Exception("G4StatMFChannel::operator== meant to not be accessable"); + // throw G4HadronicException(__FILE__, __LINE__, "G4StatMFChannel::operator== meant to not be accessable"); return false; } G4bool G4StatMFChannel::operator!=(const G4StatMFChannel & ) const { - // G4Exception("G4StatMFChannel::operator!= meant to not be accessable"); + // throw G4HadronicException(__FILE__, __LINE__, "G4StatMFChannel::operator!= meant to not be accessable"); return true; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFFragment.cc similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFFragment.cc index cd8de76f7e..266d5c2468 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFFragment.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFFragment.cc @@ -21,20 +21,20 @@ // ******************************************************************** // // -// $Id: G4StatMFFragment.cc,v 1.12 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFFragment.cc,v 1.3 2003/11/04 11:30:35 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara #include "G4StatMFFragment.hh" - +#include "G4HadronicException.hh" // Copy constructor G4StatMFFragment::G4StatMFFragment(const G4StatMFFragment & ) { - G4Exception("G4StatMFFragment::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::copy_constructor meant to not be accessable"); } // Operators @@ -42,21 +42,21 @@ G4StatMFFragment::G4StatMFFragment(const G4StatMFFragment & ) G4StatMFFragment & G4StatMFFragment:: operator=(const G4StatMFFragment & ) { - G4Exception("G4StatMFFragment::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator= meant to not be accessable"); return *this; } G4bool G4StatMFFragment::operator==(const G4StatMFFragment & ) const { -// G4Exception("G4StatMFFragment::operator== meant to not be accessable"); +// throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator== meant to not be accessable"); return false; } G4bool G4StatMFFragment::operator!=(const G4StatMFFragment & ) const { -// G4Exception("G4StatMFFragment::operator!= meant to not be accessable"); +// throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::operator!= meant to not be accessable"); return true; } @@ -78,7 +78,7 @@ G4double G4StatMFFragment::GetEnergy(const G4double T) const if (theA < 1 || theZ < 0 || theZ > theA) { G4cerr << "G4StatMFFragment::GetEnergy: A = " << theA << ", Z = " << theZ << G4endl; - G4Exception( + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFFragment::GetEnergy: Wrong values for A and Z!"); } G4double BulkEnergy = G4NucleiProperties::GetMassExcess(static_cast(theA), diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroBiNucleon.cc similarity index 89% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroBiNucleon.cc index 14d94aa2f1..2263558b0e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroBiNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroBiNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroBiNucleon.cc,v 1.13 2003/06/25 14:41:53 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroBiNucleon.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,21 +34,21 @@ G4StatMFMacroBiNucleon & G4StatMFMacroBiNucleon:: operator=(const G4StatMFMacroBiNucleon & ) { - G4Exception("G4StatMFMacroBiNucleon::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroBiNucleon::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMacroBiNucleon::operator==(const G4StatMFMacroBiNucleon & ) const { - G4Exception("G4StatMFMacroBiNucleon::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroBiNucleon::operator== meant to not be accessable"); return false; } G4bool G4StatMFMacroBiNucleon::operator!=(const G4StatMFMacroBiNucleon & ) const { - G4Exception("G4StatMFMacroBiNucleon::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroBiNucleon::operator!= meant to not be accessable"); return true; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc similarity index 82% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc index fd81659ade..c5a873a015 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacrocanonical.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroCanonical.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroCanonical.cc,v 1.15 2003/06/16 17:06:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroCanonical.cc,v 1.3 2003/11/06 18:11:44 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // by V. Lara // -------------------------------------------------------------------- @@ -34,17 +34,17 @@ G4StatMFMacroCanonical::G4StatMFMacroCanonical(const G4Fragment & theFragment) { - // Get memory for clusters - _theClusters.push_back(new G4StatMFMacroNucleon); // Size 1 - _theClusters.push_back(new G4StatMFMacroBiNucleon); // Size 2 - _theClusters.push_back(new G4StatMFMacroTriNucleon); // Size 3 - _theClusters.push_back(new G4StatMFMacroTetraNucleon); // Size 4 - for (G4int i = 4; i < theFragment.GetA(); i++) - _theClusters.push_back(new G4StatMFMacroMultiNucleon(i+1)); // Size 5 ... A - - // Perform class initialization - Initialize(theFragment); - + // Get memory for clusters + _theClusters.push_back(new G4StatMFMacroNucleon); // Size 1 + _theClusters.push_back(new G4StatMFMacroBiNucleon); // Size 2 + _theClusters.push_back(new G4StatMFMacroTriNucleon); // Size 3 + _theClusters.push_back(new G4StatMFMacroTetraNucleon); // Size 4 + for (G4int i = 4; i < theFragment.GetA(); i++) + _theClusters.push_back(new G4StatMFMacroMultiNucleon(i+1)); // Size 5 ... A + + // Perform class initialization + Initialize(theFragment); + } @@ -52,28 +52,29 @@ G4StatMFMacroCanonical::G4StatMFMacroCanonical(const G4Fragment & theFragment) G4StatMFMacroCanonical::~G4StatMFMacroCanonical() { // garbage collection - if (!_theClusters.empty()) { - std::for_each(_theClusters.begin(),_theClusters.end(),DeleteFragment()); - } + if (!_theClusters.empty()) + { + std::for_each(_theClusters.begin(),_theClusters.end(),DeleteFragment()); + } } // operators definitions G4StatMFMacroCanonical & G4StatMFMacroCanonical::operator=(const G4StatMFMacroCanonical & ) { - G4Exception("G4StatMFMacroCanonical::operator= meant to not be accessable"); - return *this; + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroCanonical::operator= meant to not be accessable"); + return *this; } G4bool G4StatMFMacroCanonical::operator==(const G4StatMFMacroCanonical & ) const { - return false; + return false; } G4bool G4StatMFMacroCanonical::operator!=(const G4StatMFMacroCanonical & ) const { - return true; + return true; } @@ -85,7 +86,7 @@ void G4StatMFMacroCanonical::Initialize(const G4Fragment & theFragment) G4double A = theFragment.GetA(); G4double Z = theFragment.GetZ(); - + // Free Internal energy at T = 0 __FreeInternalE0 = A*( -G4StatMFParameters::GetE0() + // Volume term (for T = 0) G4StatMFParameters::GetGamma0()* // Symmetry term @@ -97,7 +98,7 @@ void G4StatMFMacroCanonical::Initialize(const G4Fragment & theFragment) CalculateTemperature(theFragment); - + return; } @@ -112,7 +113,7 @@ void G4StatMFMacroCanonical::CalculateTemperature(const G4Fragment & theFragment G4double A = theFragment.GetA(); G4double Z = theFragment.GetZ(); - + // Fragment Multiplicity G4double FragMult = std::max((1.0+(2.31/MeV)*(U/A - 3.5*MeV))*A/100.0, 2.0); @@ -147,19 +148,19 @@ G4StatMFChannel * G4StatMFMacroCanonical::ChooseAandZ(const G4Fragment &theFragm G4double Z = theFragment.GetZ(); std::vector ANumbers(static_cast(A)); - + G4double Multiplicity = ChooseA(A,ANumbers); - - + + std::vector FragmentsA; - G4int i = 0; + G4int i = 0; for (i = 0; i < A; i++) { for (G4int j = 0; j < ANumbers[i]; j++) FragmentsA.push_back(i+1); } - + // Sort fragments in decreasing order G4int im = 0; for (G4int j = 0; j < Multiplicity; j++) @@ -237,15 +238,15 @@ G4StatMFChannel * G4StatMFMacroCanonical::ChooseZ(const G4int & Z, std::vector & FragmentsA) // { - std::vector FragmentsZ; - - G4double DeltaZ = 0.0; - G4double CP = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* - (1.0 - 1.0/pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); - - G4int multiplicity = FragmentsA.size(); - - do + std::vector FragmentsZ; + + G4double DeltaZ = 0.0; + G4double CP = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* + (1.0 - 1.0/pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); + + G4int multiplicity = FragmentsA.size(); + + do { FragmentsZ.clear(); G4int SumZ = 0; @@ -281,15 +282,23 @@ G4StatMFChannel * G4StatMFMacroCanonical::ChooseZ(const G4int & Z, } } DeltaZ = Z - SumZ; - } while (abs(DeltaZ) > 1.1); + } + while (abs(DeltaZ) > 1.1); - // DeltaZ can be 0, 1 or -1 - FragmentsZ[0] += DeltaZ; - - G4StatMFChannel * theChannel = new G4StatMFChannel; - for (G4int i = multiplicity-1; i >= 0; i--) + // DeltaZ can be 0, 1 or -1 + G4int idx = 0; + if (DeltaZ < 0.0) + { + while (FragmentsZ[idx] < 0.5) ++idx; + } + FragmentsZ[idx] += DeltaZ; + + G4StatMFChannel * theChannel = new G4StatMFChannel; + for (G4int i = multiplicity-1; i >= 0; i--) + { theChannel->CreateFragment(FragmentsA[i],FragmentsZ[i]); - + } + return theChannel; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroChemicalPotential.cc similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroChemicalPotential.cc index 4185d5c5ce..6350b39f8b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroChemicalPotential.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroChemicalPotential.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroChemicalPotential.cc,v 1.11 2003/06/16 17:06:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroChemicalPotential.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,20 +34,20 @@ G4StatMFMacroChemicalPotential & G4StatMFMacroChemicalPotential::operator=(const G4StatMFMacroChemicalPotential & ) { - G4Exception("G4StatMFMacroChemicalPotential::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMacroChemicalPotential::operator==(const G4StatMFMacroChemicalPotential & ) const { - G4Exception("G4StatMFMacroChemicalPotential::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator== meant to not be accessable"); return false; } G4bool G4StatMFMacroChemicalPotential::operator!=(const G4StatMFMacroChemicalPotential & ) const { - G4Exception("G4StatMFMacroChemicalPotential::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::operator!= meant to not be accessable"); return true; } @@ -91,7 +91,7 @@ G4double G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu(void) theSolver->SetIntervalLimits(ChemPa,ChemPb); // if (!theSolver->Crenshaw(*this)) if (!theSolver->Brent(*this)) - G4Exception("G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu: I couldn't find the root."); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroChemicalPotential::CalcChemicalPotentialNu: I couldn't find the root."); _ChemPotentialNu = theSolver->GetRoot(); delete theSolver; return _ChemPotentialNu; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiNucleon.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiNucleon.cc index dc0fd0ba83..4b8d4fe895 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroMultiNucleon.cc,v 1.14 2003/06/16 17:06:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroMultiNucleon.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,7 +34,7 @@ G4StatMFMacroMultiNucleon:: G4StatMFMacroMultiNucleon() : G4VStatMFMacroCluster(0) // Beacuse the def. constr. of base class is private { - G4Exception("G4StatMFMacroMultiNucleon::default_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiNucleon::default_constructor meant to not be accessable"); } // Copy constructor @@ -42,7 +42,7 @@ G4StatMFMacroMultiNucleon:: G4StatMFMacroMultiNucleon(const G4StatMFMacroMultiNucleon & ) : G4VStatMFMacroCluster(0) // Beacuse the def. constr. of base class is private { - G4Exception("G4StatMFMacroMultiNucleon::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiNucleon::copy_constructor meant to not be accessable"); } // Operators @@ -50,21 +50,21 @@ G4StatMFMacroMultiNucleon(const G4StatMFMacroMultiNucleon & ) : G4StatMFMacroMultiNucleon & G4StatMFMacroMultiNucleon:: operator=(const G4StatMFMacroMultiNucleon & ) { - G4Exception("G4StatMFMacroMultiNucleon::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiNucleon::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMacroMultiNucleon::operator==(const G4StatMFMacroMultiNucleon & ) const { - G4Exception("G4StatMFMacroMultiNucleon::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiNucleon::operator== meant to not be accessable"); return false; } G4bool G4StatMFMacroMultiNucleon::operator!=(const G4StatMFMacroMultiNucleon & ) const { - G4Exception("G4StatMFMacroMultiNucleon::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiNucleon::operator!= meant to not be accessable"); return true; } @@ -77,7 +77,7 @@ G4double G4StatMFMacroMultiNucleon::CalcMeanMultiplicity(const G4double FreeVol, const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght; - const G4double A23 = pow(theA,2./3.); + const G4double A23 = pow(static_cast(theA),2./3.); const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* (1.0 - 1.0/pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); @@ -103,7 +103,7 @@ G4double G4StatMFMacroMultiNucleon::CalcZARatio(const G4double nu) const G4double Coulomb = (3./5.)*(elm_coupling/G4StatMFParameters::Getr0())* (1.0 - 1.0/pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1./3.)); - G4double den = 8.0*G4StatMFParameters::GetGamma0()+2.0*Coulomb*pow(theA,2./3.); + G4double den = 8.0*G4StatMFParameters::GetGamma0()+2.0*Coulomb*pow(static_cast(theA),2./3.); G4double num = 4.0*G4StatMFParameters::GetGamma0()+nu; return theZARatio = num/den; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiplicity.cc similarity index 85% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiplicity.cc index d9728e3a42..1bb2e9de3e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroMultiplicity.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroMultiplicity.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroMultiplicity.cc,v 1.10 2003/06/16 17:06:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroMultiplicity.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,20 +34,20 @@ G4StatMFMacroMultiplicity & G4StatMFMacroMultiplicity::operator=(const G4StatMFMacroMultiplicity & ) { - G4Exception("G4StatMFMacroMultiplicity::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiplicity::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMacroMultiplicity::operator==(const G4StatMFMacroMultiplicity & ) const { - G4Exception("G4StatMFMacroMultiplicity::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiplicity::operator== meant to not be accessable"); return false; } G4bool G4StatMFMacroMultiplicity::operator!=(const G4StatMFMacroMultiplicity & ) const { - G4Exception("G4StatMFMacroMultiplicity::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiplicity::operator!= meant to not be accessable"); return true; } @@ -70,7 +70,7 @@ G4double G4StatMFMacroMultiplicity::CalcChemicalPotentialMu(void) _ChemPotentialNu*ZA5 + G4StatMFParameters::GetGamma0()*(1.0-2.0*ZA5)*(1.0-2.0*ZA5) + (2.0/3.0)*G4StatMFParameters::Beta(_MeanTemperature)/pow(5.,1./3.) + - (5.0/3.0)*CP*ZA5*ZA5*pow(5,2./3.) - + (5.0/3.0)*CP*ZA5*ZA5*pow(5.,2./3.) - 1.5*_MeanTemperature/5.0; @@ -100,7 +100,7 @@ G4double G4StatMFMacroMultiplicity::CalcChemicalPotentialMu(void) } if (fChemPa*fChemPb > 0.0) { - G4Exception("G4StatMFMacroMultiplicity::CalcChemicalPotentialMu: I couldn't bracket the root."); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiplicity::CalcChemicalPotentialMu: I couldn't bracket the root."); } @@ -109,7 +109,7 @@ G4double G4StatMFMacroMultiplicity::CalcChemicalPotentialMu(void) // if (!theSolver->Crenshaw(*this)) if (!theSolver->Brent(*this)) { - G4Exception("G4StatMFMacroMultiplicity::CalcChemicalPotentialMu: I couldn't find the root."); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroMultiplicity::CalcChemicalPotentialMu: I couldn't find the root."); } _ChemPotentialMu = theSolver->GetRoot(); delete theSolver; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroNucleon.cc similarity index 86% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroNucleon.cc index 789b13b9e8..f896c6d690 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroNucleon.cc,v 1.11 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroNucleon.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,28 +34,28 @@ G4StatMFMacroNucleon & G4StatMFMacroNucleon:: operator=(const G4StatMFMacroNucleon & ) { - G4Exception("G4StatMFMacroNucleon::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroNucleon::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMacroNucleon::operator==(const G4StatMFMacroNucleon & ) const { - G4Exception("G4StatMFMacroNucleon::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroNucleon::operator== meant to not be accessable"); return false; } G4bool G4StatMFMacroNucleon::operator!=(const G4StatMFMacroNucleon & ) const { - G4Exception("G4StatMFMacroNucleon::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroNucleon::operator!= meant to not be accessable"); return true; } G4double G4StatMFMacroNucleon::CalcMeanMultiplicity(const G4double FreeVol, const G4double mu, const G4double nu, const G4double T) { - if (T <= 0.0) G4Exception("G4StatMFMacroNucleon::CalcMeanMultiplicity: Temperature less or equal 0"); + if (T <= 0.0) throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroNucleon::CalcMeanMultiplicity: Temperature less or equal 0"); const G4double ThermalWaveLenght = 16.15*fermi/sqrt(T); const G4double lambda3 = ThermalWaveLenght*ThermalWaveLenght*ThermalWaveLenght; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTemperature.cc similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTemperature.cc index 8da54c0b6e..49e1a54aa9 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTemperature.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTemperature.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTemperature.cc,v 1.12 2003/06/16 17:06:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroTemperature.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,20 +34,20 @@ G4StatMFMacroTemperature & G4StatMFMacroTemperature::operator=(const G4StatMFMacroTemperature & ) { - G4Exception("G4StatMFMacroTemperature::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMacroTemperature::operator==(const G4StatMFMacroTemperature & ) const { - G4Exception("G4StatMFMacroTemperature::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::operator== meant to not be accessable"); return false; } G4bool G4StatMFMacroTemperature::operator!=(const G4StatMFMacroTemperature & ) const { - G4Exception("G4StatMFMacroTemperature::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::operator!= meant to not be accessable"); return true; } @@ -86,14 +86,14 @@ G4double G4StatMFMacroTemperature::CalcTemperature(void) } if (fTa*fTb > 0.0) { - G4Exception("G4StatMFMacroTemperature::CalcTemperature: I couldn't bracket the solution."); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::CalcTemperature: I couldn't bracket the solution."); } G4Solver * theSolver = new G4Solver(100,1.e-4); theSolver->SetIntervalLimits(Ta,Tb); // if (!theSolver->Crenshaw(*this)) if (!theSolver->Brent(*this)) - G4Exception("G4StatMFMacroTemperature::CalcTemperature: I couldn't find the root."); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTemperature::CalcTemperature: I couldn't find the root."); _MeanTemperature = theSolver->GetRoot(); delete theSolver; return _MeanTemperature; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTetraNucleon.cc similarity index 85% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTetraNucleon.cc index 692b684b62..2f3546d9bd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTetraNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTetraNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTetraNucleon.cc,v 1.12 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroTetraNucleon.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,7 +34,7 @@ G4StatMFMacroTetraNucleon:: G4StatMFMacroTetraNucleon(const G4StatMFMacroTetraNucleon & ) : G4VStatMFMacroCluster(0) // Beacuse the def. constr. of base class is private { - G4Exception("G4StatMFMacroTetraNucleon::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTetraNucleon::copy_constructor meant to not be accessable"); } // Operators @@ -42,21 +42,21 @@ G4StatMFMacroTetraNucleon(const G4StatMFMacroTetraNucleon & ) : G4StatMFMacroTetraNucleon & G4StatMFMacroTetraNucleon:: operator=(const G4StatMFMacroTetraNucleon & ) { - G4Exception("G4StatMFMacroTetraNucleon::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTetraNucleon::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMacroTetraNucleon::operator==(const G4StatMFMacroTetraNucleon & ) const { - G4Exception("G4StatMFMacroTetraNucleon::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTetraNucleon::operator== meant to not be accessable"); return false; } G4bool G4StatMFMacroTetraNucleon::operator!=(const G4StatMFMacroTetraNucleon & ) const { - G4Exception("G4StatMFMacroTetraNucleon::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTetraNucleon::operator!= meant to not be accessable"); return true; } @@ -77,7 +77,7 @@ G4double G4StatMFMacroTetraNucleon::CalcMeanMultiplicity(const G4double FreeVol, const G4double BindingE = G4NucleiPropertiesTable::GetBindingEnergy(2,theA); //old value was 30.11*MeV G4double exponent = (BindingE + theA*(mu+nu*theZARatio+T*T/_InvLevelDensity) - - Coulomb*theZARatio*theZARatio*pow(theA,5./3.))/T; + Coulomb*theZARatio*theZARatio*pow(static_cast(theA),5./3.))/T; if (exponent > 700.0) exponent = 700.0; _MeanMultiplicity = ( degeneracy*FreeVol* static_cast(theA)* diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTriNucleon.cc similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTriNucleon.cc index 97bc90e1af..4f4cff9bc8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMacroTriNucleon.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMacroTriNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFMacroTriNucleon.cc,v 1.12 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMacroTriNucleon.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,21 +34,21 @@ G4StatMFMacroTriNucleon & G4StatMFMacroTriNucleon:: operator=(const G4StatMFMacroTriNucleon & ) { - G4Exception("G4StatMFMacroTriNucleon::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTriNucleon::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMacroTriNucleon::operator==(const G4StatMFMacroTriNucleon & ) const { - G4Exception("G4StatMFMacroTriNucleon::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTriNucleon::operator== meant to not be accessable"); return false; } G4bool G4StatMFMacroTriNucleon::operator!=(const G4StatMFMacroTriNucleon & ) const { - G4Exception("G4StatMFMacroTriNucleon::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMacroTriNucleon::operator!= meant to not be accessable"); return true; } @@ -70,7 +70,7 @@ G4double G4StatMFMacroTriNucleon::CalcMeanMultiplicity(const G4double FreeVol, c // + G4NucleiProperties::GetBindingEnergy(2,theA); G4double exponent = (BindingE+ theA*(mu+nu*theZARatio) - - Coulomb*theZARatio*theZARatio*pow(theA,5./3.))/T; + Coulomb*theZARatio*theZARatio*pow(static_cast(theA),5./3.))/T; if (exponent > 700.0) exponent = 700.0; _MeanMultiplicity = (degeneracy*FreeVol*static_cast(theA)* diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroCanonical.cc similarity index 92% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroCanonical.cc index 0a6a4db573..1fa8186b58 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicrocanonical.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroCanonical.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroCanonical.cc,v 1.14 2003/06/16 17:06:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMicroCanonical.cc,v 1.3 2003/11/04 11:31:17 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara #include "G4StatMFMicroCanonical.hh" +#include "G4HadronicException.hh" #include @@ -36,7 +37,7 @@ G4StatMFMicroCanonical::G4StatMFMicroCanonical(const G4StatMFMicroCanonical & ) : G4VStatMFEnsemble() { - G4Exception("G4StatMFMicroCanonical::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroCanonical::copy_constructor meant to not be accessable"); } // Operators @@ -44,21 +45,21 @@ G4StatMFMicroCanonical::G4StatMFMicroCanonical(const G4StatMFMicroCanonical & G4StatMFMicroCanonical & G4StatMFMicroCanonical:: operator=(const G4StatMFMicroCanonical & ) { - G4Exception("G4StatMFMicroCanonical::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroCanonical::operator= meant to not be accessable"); return *this; } G4bool G4StatMFMicroCanonical::operator==(const G4StatMFMicroCanonical & ) const { - G4Exception("G4StatMFMicroCanonical::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroCanonical::operator== meant to not be accessable"); return false; } G4bool G4StatMFMicroCanonical::operator!=(const G4StatMFMicroCanonical & ) const { - G4Exception("G4StatMFMicroCanonical::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroCanonical::operator!= meant to not be accessable"); return true; } @@ -298,7 +299,7 @@ G4StatMFChannel * G4StatMFMicroCanonical::ChooseAandZ(const G4Fragment & theFra return (*it)->ChooseChannel(theFragment.GetA(),theFragment.GetZ(),__MeanTemperature); } } - G4Exception("G4StatMFMicroCanonical::ChooseAandZ: wrong normalization!"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroCanonical::ChooseAandZ: wrong normalization!"); } return 0; diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroManager.cc similarity index 92% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroManager.cc index 719ad2a3b5..20f3eef2d6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroManager.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroManager.cc @@ -21,21 +21,21 @@ // ******************************************************************** // // -// $Id: G4StatMFMicroManager.cc,v 1.10 2003/06/16 17:06:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFMicroManager.cc,v 1.3 2003/11/04 11:31:17 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara #include "G4StatMFMicroManager.hh" - +#include "G4HadronicException.hh" // Copy constructor G4StatMFMicroManager::G4StatMFMicroManager(const G4StatMFMicroManager & ) { - G4Exception("G4StatMFMicroManager::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroManager::copy_constructor meant to not be accessable"); } // Operators @@ -43,7 +43,7 @@ G4StatMFMicroManager::G4StatMFMicroManager(const G4StatMFMicroManager & ) G4StatMFMicroManager & G4StatMFMicroManager:: operator=(const G4StatMFMicroManager & ) { - G4Exception("G4StatMFMicroManager::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroManager::operator= meant to not be accessable"); return *this; } @@ -194,7 +194,7 @@ G4StatMFChannel * G4StatMFMicroManager::ChooseChannel(const G4double A0, const G return (*i)->ChooseZ(A0,Z0,MeanT); } - G4Exception - ("G4StatMFMicroCanonical::ChooseChannel: Couldn't find a channel."); + throw G4HadronicException(__FILE__, __LINE__, + "G4StatMFMicroCanonical::ChooseChannel: Couldn't find a channel."); return 0; } diff --git a/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc new file mode 100644 index 0000000000..5ac265239a --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFMicroPartition.cc @@ -0,0 +1,358 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4StatMFMicroPartition.cc,v 1.4 2003/11/04 11:31:16 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// by V. Lara +// -------------------------------------------------------------------- + +#include "G4StatMFMicroPartition.hh" +#include "G4HadronicException.hh" + + +// Copy constructor +G4StatMFMicroPartition::G4StatMFMicroPartition(const G4StatMFMicroPartition & ) +{ + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroPartition::copy_constructor meant to not be accessable"); +} + +// Operators + +G4StatMFMicroPartition & G4StatMFMicroPartition:: +operator=(const G4StatMFMicroPartition & ) +{ + throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroPartition::operator= meant to not be accessable"); + return *this; +} + + +G4bool G4StatMFMicroPartition::operator==(const G4StatMFMicroPartition & ) const +{ + //throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroPartition::operator== meant to not be accessable"); + return false; +} + + +G4bool G4StatMFMicroPartition::operator!=(const G4StatMFMicroPartition & ) const +{ + //throw G4HadronicException(__FILE__, __LINE__, "G4StatMFMicroPartition::operator!= meant to not be accessable"); + return true; +} + + + +void G4StatMFMicroPartition::CoulombFreeEnergy(const G4double anA) +{ + // This Z independent factor in the Coulomb free energy + G4double CoulombConstFactor = 1.0/pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1.0/3.0); + + CoulombConstFactor = elm_coupling * (3./5.) * + (1. - CoulombConstFactor)/G4StatMFParameters::Getr0(); + + // We use the aproximation Z_f ~ Z/A * A_f + + if (anA == 0 || anA == 1) + { + _theCoulombFreeEnergy.push_back(CoulombConstFactor*(theZ/theA)*(theZ/theA)); + } + else if (anA == 2 || anA == 3 || anA == 4) + { + // Z/A ~ 1/2 + _theCoulombFreeEnergy.push_back(CoulombConstFactor*0.5*pow(anA,5./3.)); + } + else // anA > 4 + { + _theCoulombFreeEnergy.push_back(CoulombConstFactor*(theZ/theA)*(theZ/theA)* + pow(anA,5./3.)); + + } +} + + +G4double G4StatMFMicroPartition::GetCoulombEnergy(void) +{ + G4double CoulombFactor = 1.0/ + pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1.0/3.0); + + G4double CoulombEnergy = elm_coupling*(3./5.)*theZ*theZ*CoulombFactor/ + (G4StatMFParameters::Getr0()*pow(static_cast(theA),1./3.)); + + for (unsigned int i = 0; i < _thePartition.size(); i++) + CoulombEnergy += _theCoulombFreeEnergy[i] - elm_coupling*(3./5.)* + (theZ/theA)*(theZ/theA)*pow(static_cast(_thePartition[i]),5./3.)/ + G4StatMFParameters::Getr0(); + + return CoulombEnergy; +} + +G4double G4StatMFMicroPartition::GetPartitionEnergy(const G4double T) +{ + G4double CoulombFactor = 1.0/ + pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1.0/3.0); + + G4double PartitionEnergy = 0.0; + + + // We use the aprox that Z_f ~ Z/A * A_f + for (unsigned int i = 0; i < _thePartition.size(); i++) + { + if (_thePartition[i] == 0 || _thePartition[i] == 1) + { + PartitionEnergy += _theCoulombFreeEnergy[i]; + } + else if (_thePartition[i] == 2) + { + PartitionEnergy += + -2.796 // Binding Energy of deuteron ?????? + + _theCoulombFreeEnergy[i]; + } + else if (_thePartition[i] == 3) + { + PartitionEnergy += + -9.224 // Binding Energy of trtion/He3 ?????? + + _theCoulombFreeEnergy[i]; + } + else if (_thePartition[i] == 4) + { + PartitionEnergy += + -30.11 // Binding Energy of ALPHA ?????? + + _theCoulombFreeEnergy[i] + + 4.*T*T/InvLevelDensity(4.); + } + else + { + PartitionEnergy += + //Volume term + (- G4StatMFParameters::GetE0() + + T*T/InvLevelDensity(_thePartition[i])) + *_thePartition[i] + + + // Symmetry term + G4StatMFParameters::GetGamma0()* + (1.0-2.0*theZ/theA)*(1.0-2.0*theZ/theA)*_thePartition[i] + + + // Surface term + (G4StatMFParameters::Beta(T) - T*G4StatMFParameters::DBetaDT(T))* + pow(static_cast(_thePartition[i]),2./3.) + + + // Coulomb term + _theCoulombFreeEnergy[i]; + } + } + + PartitionEnergy += elm_coupling*(3./5.)*theZ*theZ*CoulombFactor/ + (G4StatMFParameters::Getr0()*pow(static_cast(theA),1./3.)) + + (3./2.)*T*(_thePartition.size()-1); + + return PartitionEnergy; +} + + +G4double G4StatMFMicroPartition::CalcPartitionTemperature(const G4double U, + const G4double FreeInternalE0) +{ + G4double PartitionEnergy = GetPartitionEnergy(0.0); + + // If this happens, T = 0 MeV, which means that probability for this + // partition will be 0 + if (abs(U + FreeInternalE0 - PartitionEnergy) < 0.003) return -1.0; + + // Calculate temperature by midpoint method + + // Bracketing the solution + G4double Ta = 0.001; + G4double Tb = std::max(sqrt(8.0*U/theA),0.0012*MeV); + G4double Tmid = 0.0; + + G4double Da = (U + FreeInternalE0 - GetPartitionEnergy(Ta))/U; + G4double Db = (U + FreeInternalE0 - GetPartitionEnergy(Tb))/U; + + G4int maxit = 0; + while (Da*Db > 0.0 && maxit < 1000) + { + ++maxit; + Tb += 0.5*Tb; + Db = (U + FreeInternalE0 - GetPartitionEnergy(Tb))/U; + } + + G4double eps = 1.0e-14*abs(Ta-Tb); + + for (G4int i = 0; i < 1000; i++) + { + Tmid = (Ta+Tb)/2.0; + if (abs(Ta-Tb) <= eps) return Tmid; + G4double Dmid = (U + FreeInternalE0 - GetPartitionEnergy(Tmid))/U; + if (abs(Dmid) < 0.003) return Tmid; + if (Da*Dmid < 0.0) + { + Tb = Tmid; + Db = Dmid; + } + else + { + Ta = Tmid; + Da = Dmid; + } + } + // if we arrive here the temperature could not be calculated + G4cerr << "G4StatMFMicroPartition::CalcPartitionTemperature: I can't calculate the temperature" + << G4endl; + // and set probability to 0 returning T < 0 + return -1.0; + +} + + +G4double G4StatMFMicroPartition::CalcPartitionProbability(const G4double U, + const G4double FreeInternalE0, + const G4double SCompound) +{ + G4double T = CalcPartitionTemperature(U,FreeInternalE0); + if ( T <= 0.0) return _Probability = 0.0; + _Temperature = T; + + + // Factorial of fragment multiplicity + G4double Fact = 1.0; + unsigned int i; + for (i = 0; i < _thePartition.size() - 1; i++) + { + G4double f = 1.0; + for (unsigned int ii = i+1; i< _thePartition.size(); i++) + { + if (_thePartition[i] == _thePartition[ii]) f++; + } + Fact *= f; + } + + G4double ProbDegeneracy = 1.0; + G4double ProbA32 = 1.0; + + for (i = 0; i < _thePartition.size(); i++) + { + ProbDegeneracy *= GetDegeneracyFactor(static_cast(_thePartition[i])); + ProbA32 *= static_cast(_thePartition[i])* + sqrt(static_cast(_thePartition[i])); + } + + // Compute entropy + G4double PartitionEntropy = 0.0; + for (i = 0; i < _thePartition.size(); i++) + { + // interaction entropy for alpha + if (_thePartition[i] == 4) + { + PartitionEntropy += + 2.0*T*_thePartition[i]/InvLevelDensity(_thePartition[i]); + } + // interaction entropy for Af > 4 + else if (_thePartition[i] > 4) + { + PartitionEntropy += + 2.0*T*_thePartition[i]/InvLevelDensity(_thePartition[i]) + - G4StatMFParameters::DBetaDT(T) + * pow(static_cast(_thePartition[i]),2.0/3.0); + } + } + + // Thermal Wave Lenght = sqrt(2 pi hbar^2 / nucleon_mass T) + G4double ThermalWaveLenght3 = 16.15*fermi/sqrt(T); + ThermalWaveLenght3 = ThermalWaveLenght3*ThermalWaveLenght3*ThermalWaveLenght3; + + // Translational Entropy + G4double kappa = (1. + elm_coupling*(pow(static_cast(_thePartition.size()),1./3.)-1.0) + /(G4StatMFParameters::Getr0()*pow(static_cast(theA),1./3.))); + kappa = kappa*kappa*kappa; + kappa -= 1.; + G4double V0 = (4./3.)*pi*theA*G4StatMFParameters::Getr0()*G4StatMFParameters::Getr0()* + G4StatMFParameters::Getr0(); + G4double FreeVolume = kappa*V0; + G4double TranslationalS = std::max(0.0, log(ProbA32/Fact) + + (_thePartition.size()-1.0)*log(FreeVolume/ThermalWaveLenght3) + + 1.5*(_thePartition.size()-1.0) - (3./2.)*log(theA)); + + PartitionEntropy += log(ProbDegeneracy) + TranslationalS; + _Entropy = PartitionEntropy; + + // And finally compute probability of fragment configuration + G4double exponent = PartitionEntropy-SCompound; + if (exponent > 700.0) exponent = 700.0; + return _Probability = exp(exponent); +} + + + +G4double G4StatMFMicroPartition::GetDegeneracyFactor(const G4int A) +{ + // Degeneracy factors are statistical factors + // DegeneracyFactor for nucleon is (2S_n + 1)(2I_n + 1) = 4 + G4double DegFactor = 0; + if (A > 4) DegFactor = 1.0; + else if (A == 1) DegFactor = 4.0; // nucleon + else if (A == 2) DegFactor = 3.0; // Deuteron + else if (A == 3) DegFactor = 2.0+2.0; // Triton + He3 + else if (A == 4) DegFactor = 1.0; // alpha + return DegFactor; +} + + +G4StatMFChannel * G4StatMFMicroPartition::ChooseZ(const G4double A0, const G4double Z0, const G4double MeanT) +// Gives fragments charges +{ + std::vector FragmentsZ; + + G4int ZBalance = 0; + do + { + G4double CC = G4StatMFParameters::GetGamma0()*8.0; + G4int SumZ = 0; + for (unsigned int i = 0; i < _thePartition.size(); i++) + { + G4double ZMean; + G4double Af = _thePartition[i]; + if (Af > 1.5 && Af < 4.5) ZMean = 0.5*Af; + else ZMean = Af*Z0/A0; + G4double ZDispersion = sqrt(Af * MeanT/CC); + G4int Zf; + do + { + Zf = static_cast(G4RandGauss::shoot(ZMean,ZDispersion)); + } + while (Zf < 0 || Zf > Af); + FragmentsZ.push_back(Zf); + SumZ += Zf; + } + ZBalance = static_cast(Z0) - SumZ; + } + while (abs(ZBalance) > 1.1); + FragmentsZ[0] += ZBalance; + + G4StatMFChannel * theChannel = new G4StatMFChannel; + for (unsigned int i = 0; i < _thePartition.size(); i++) + { + theChannel->CreateFragment(_thePartition[i],FragmentsZ[i]); + } + + return theChannel; +} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFParameters.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFParameters.cc index f3d0783271..398e5ecf7e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFParameters.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4StatMFParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StatMFParameters.cc,v 1.7 2002/12/12 19:17:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StatMFParameters.cc,v 1.1 2003/08/26 18:47:53 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VMultiFragmentation.cc similarity index 77% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VMultiFragmentation.cc index 4cb3651264..29eec08b59 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VMultiFragmentation.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VMultiFragmentation.cc @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4VMultiFragmentation.cc,v 1.8 2003/05/30 13:23:27 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VMultiFragmentation.cc,v 1.3 2003/11/04 11:31:16 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1998) #include "G4VMultiFragmentation.hh" - +#include "G4HadronicException.hh" G4VMultiFragmentation::G4VMultiFragmentation() { @@ -36,7 +36,7 @@ G4VMultiFragmentation::G4VMultiFragmentation() G4VMultiFragmentation::G4VMultiFragmentation(const G4VMultiFragmentation &) { - G4Exception("G4VMultiFragmentation::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VMultiFragmentation::copy_constructor meant to not be accessable"); } @@ -47,20 +47,20 @@ G4VMultiFragmentation::~G4VMultiFragmentation() const G4VMultiFragmentation & G4VMultiFragmentation::operator=(const G4VMultiFragmentation &) { - G4Exception("G4VMultiFragmentation::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VMultiFragmentation::operator= meant to not be accessable"); return *this; } G4bool G4VMultiFragmentation::operator==(const G4VMultiFragmentation &) const { - G4Exception("G4VMultiFragmentation::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VMultiFragmentation::operator== meant to not be accessable"); return false; } G4bool G4VMultiFragmentation::operator!=(const G4VMultiFragmentation &) const { - G4Exception("G4VMultiFragmentation::operator=! meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VMultiFragmentation::operator=! meant to not be accessable"); return true; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFEnsemble.cc similarity index 76% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFEnsemble.cc index c3e79d6887..68021c1444 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFEnsemble.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFEnsemble.cc @@ -21,19 +21,19 @@ // ******************************************************************** // // -// $Id: G4VStatMFEnsemble.cc,v 1.7 2003/05/30 13:23:27 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VStatMFEnsemble.cc,v 1.3 2003/11/04 11:31:15 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara #include "G4VStatMFEnsemble.hh" - +#include "G4HadronicException.hh" // Copy constructor G4VStatMFEnsemble::G4VStatMFEnsemble(const G4VStatMFEnsemble & ) { - G4Exception("G4VStatMFEnsemble::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFEnsemble::copy_constructor meant to not be accessable"); } // Operators @@ -41,21 +41,21 @@ G4VStatMFEnsemble::G4VStatMFEnsemble(const G4VStatMFEnsemble & ) G4VStatMFEnsemble & G4VStatMFEnsemble:: operator=(const G4VStatMFEnsemble & ) { - G4Exception("G4VStatMFEnsemble::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFEnsemble::operator= meant to not be accessable"); return *this; } G4bool G4VStatMFEnsemble::operator==(const G4VStatMFEnsemble & ) const { - G4Exception("G4VStatMFEnsemble::operator== meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFEnsemble::operator== meant to not be accessable"); return false; } G4bool G4VStatMFEnsemble::operator!=(const G4VStatMFEnsemble & ) const { - G4Exception("G4VStatMFEnsemble::operator!= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFEnsemble::operator!= meant to not be accessable"); return true; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFMacroCluster.cc similarity index 80% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc rename to source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFMacroCluster.cc index 8d82bfdb5a..cd4952674c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VStatMFMacroCluster.cc +++ b/source/processes/hadronic/models/de_excitation/multifragmentation/src/G4VStatMFMacroCluster.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VStatMFMacroCluster.cc,v 1.9 2003/05/30 13:23:27 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VStatMFMacroCluster.cc,v 1.2 2003/11/03 17:53:05 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara @@ -34,7 +34,7 @@ // Copy constructor G4VStatMFMacroCluster::G4VStatMFMacroCluster(const G4VStatMFMacroCluster & ) { - G4Exception("G4VStatMFMacroCluster::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFMacroCluster::copy_constructor meant to not be accessable"); } // Operators @@ -42,21 +42,21 @@ G4VStatMFMacroCluster::G4VStatMFMacroCluster(const G4VStatMFMacroCluster & ) G4VStatMFMacroCluster & G4VStatMFMacroCluster:: operator=(const G4VStatMFMacroCluster & ) { - G4Exception("G4VStatMFMacroCluster::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFMacroCluster::operator= meant to not be accessable"); return *this; } G4bool G4VStatMFMacroCluster::operator==(const G4VStatMFMacroCluster & ) const { -// G4Exception("G4VStatMFMacroCluster::operator== meant to not be accessable"); +// throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFMacroCluster::operator== meant to not be accessable"); return false; } G4bool G4VStatMFMacroCluster::operator!=(const G4VStatMFMacroCluster & ) const { -// G4Exception("G4VStatMFMacroCluster::operator!= meant to not be accessable"); +// throw G4HadronicException(__FILE__, __LINE__, "G4VStatMFMacroCluster::operator!= meant to not be accessable"); return true; } diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/GNUmakefile b/source/processes/hadronic/models/de_excitation/photon_evaporation/GNUmakefile new file mode 100644 index 0000000000..c2f5a0bb4e --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/GNUmakefile @@ -0,0 +1,45 @@ +# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:20 hpw Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4hadronic_deex_photon_evaporation + +ifndef G4INSTALL + G4INSTALL = ../../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaDeexcitation.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4ContinuumGammaDeexcitation.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaDeexcitation.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4ContinuumGammaDeexcitation.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaTransition.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4ContinuumGammaTransition.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ContinuumGammaTransition.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4ContinuumGammaTransition.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaDeexcitation.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4DiscreteGammaDeexcitation.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaDeexcitation.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4DiscreteGammaDeexcitation.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaTransition.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4DiscreteGammaTransition.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4DiscreteGammaTransition.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4DiscreteGammaTransition.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DummyProbability.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4DummyProbability.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4DummyProbability.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4DummyProbability.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability001.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability001.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability001.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability001.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability01.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability01.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability01.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability01.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability10.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability10.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability10.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability10.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability100.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability100.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1Probability100.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1Probability100.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability001.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability001.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability001.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability001.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability01.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability01.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability01.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability01.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability1.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability1.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability1.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability1.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability10.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability10.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability10.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability10.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability100.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability100.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4E1SingleProbability100.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4E1SingleProbability100.hh diff --git a/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NuclearLevel.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NuclearLevel.hh new file mode 100644 index 0000000000..cc04ad9046 --- /dev/null +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NuclearLevel.hh @@ -0,0 +1,207 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// ------------------------------------------------------------------- +// GEANT 4 class file +// +// For information related to this code contact: +// CERN, IT Division, ASD group +// CERN, Geneva, Switzerland +// +// File name: G4NuclearLevel +// +// Author: Maria Grazia Pia (pia@genova.infn.it) +// +// Creation date: 25 October 1998 +// +// Modifications: +// 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com) +// Added K->N+ internal conversion coefficiencies and their access +// functions +// +// 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) +// Added half-life, angular momentum, parity, emissioni type +// reading from experimental data. +// +// ------------------------------------------------------------------- + +#ifndef G4NUCLEARLEVEL_HH +#define G4NUCLEARLEVEL_HH + +#include "globals.hh" +#include "G4NuclearLevel.hh" +#include + +class G4NuclearLevel +{ + +public: + + G4NuclearLevel(const G4double energy, const G4double halfLife, + const G4double angularMomentum, const std::vector& eGamma, + const std::vector& wGamma, const std::vector& polarities, + const std::vector& kCC, const std::vector& l1CC, + const std::vector& l2CC, const std::vector& l3CC, + const std::vector& m1CC, const std::vector& m2CC, + const std::vector& m3CC, const std::vector& m4CC, + const std::vector& m5CC, const std::vector& nPlusCC, + const std::vector& totalCC); + + ~G4NuclearLevel(); + + const std::vector& GammaEnergies() const; + + const std::vector& GammaWeights() const; + + const std::vector& GammaProbabilities() const; + + const std::vector& GammaCumulativeProbabilities() const; + + const std::vector& GammaPolarities() const; + + const std::vector& KConvertionProbabilities() const; + + const std::vector& L1ConvertionProbabilities() const; + + const std::vector& L2ConvertionProbabilities() const; + + const std::vector& L3ConvertionProbabilities() const; + + const std::vector& M1ConvertionProbabilities() const; + + const std::vector& M2ConvertionProbabilities() const; + + const std::vector& M3ConvertionProbabilities() const; + + const std::vector& M4ConvertionProbabilities() const; + + const std::vector& M5ConvertionProbabilities() const; + + const std::vector& NPlusConvertionProbabilities() const; + + const std::vector& TotalConvertionProbabilities() const; + + G4double Energy() const; + + G4double AngularMomentum() const; + + G4double HalfLife() const; + + G4int NumberOfGammas() const; + + void PrintAll() const; + + G4bool operator==(const G4NuclearLevel &right) const; + G4bool operator!=(const G4NuclearLevel &right) const; + G4bool operator<(const G4NuclearLevel &right) const; + + const G4NuclearLevel& operator=(const G4NuclearLevel &right) + { + if(this != &right) + { + _energies = right._energies; + _weights =right._weights; + _prob =right._prob; + _cumProb =right._cumProb; + _polarities =right._polarities; + _kCC = right._kCC; + _l1CC =right._l1CC; + _l2CC =right._l2CC; + _l3CC =right._l3CC; + _m1CC = right._m1CC; + _m2CC = right._m2CC; + _m3CC = right._m3CC; + _m4CC = right._m4CC; + _m5CC = right._m5CC; + _nPlusCC = right._nPlusCC; + _totalCC = right._totalCC; + _energy = right._energy; + _halfLife = right._halfLife; + _angularMomentum = right._angularMomentum; + _nGammas = right._nGammas; + } + return *this; + } + + G4NuclearLevel(const G4NuclearLevel &right) + { + if(this != &right) *this = right; +// G4cout << "####### Incrementing "< _energies; + std::vector _weights; + std::vector _prob; + std::vector _cumProb; + std::vector _polarities; + std::vector _kCC; + std::vector _l1CC; + std::vector _l2CC; + std::vector _l3CC; + std::vector _m1CC; + std::vector _m2CC; + std::vector _m3CC; + std::vector _m4CC; + std::vector _m5CC; + std::vector _nPlusCC; + std::vector _totalCC; + + G4double _energy; + G4double _halfLife; + G4double _angularMomentum; + G4int _nGammas; + + +}; + +#endif + + + + + + + + + + + + + + + + + + + + diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelManager.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NuclearLevelManager.hh similarity index 98% rename from source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelManager.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NuclearLevelManager.hh index 07a757ecd2..e4260d0a68 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelManager.hh +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NuclearLevelManager.hh @@ -61,7 +61,7 @@ public: G4NuclearLevelManager(); G4NuclearLevelManager(const G4int Z, const G4int A, const G4String& filename); - // G4NuclearLevelManager(const G4NuclearLevelManager & right); + G4NuclearLevelManager(const G4NuclearLevelManager & right); ~G4NuclearLevelManager(); diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelStore.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NuclearLevelStore.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevelStore.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4NuclearLevelStore.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4PhotonEvaporation.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PhotonEvaporation.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4PhotonEvaporation.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PhotonEvaporation.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4PtrLevelVector.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PtrLevelVector.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4PtrLevelVector.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4PtrLevelVector.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.icc b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.icc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4RandGeneralTmp.icc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4RandGeneralTmp.icc diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaDeexcitation.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaDeexcitation.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VGammaDeexcitation.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaDeexcitation.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VGammaTransition.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaTransition.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VGammaTransition.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VGammaTransition.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VPhotonEvaporation.hh b/source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VPhotonEvaporation.hh similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VPhotonEvaporation.hh rename to source/processes/hadronic/models/de_excitation/photon_evaporation/include/G4VPhotonEvaporation.hh diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaDeexcitation.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4ContinuumGammaDeexcitation.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaDeexcitation.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4ContinuumGammaDeexcitation.cc diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaTransition.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4ContinuumGammaTransition.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ContinuumGammaTransition.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4ContinuumGammaTransition.cc diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaDeexcitation.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DiscreteGammaDeexcitation.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaDeexcitation.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DiscreteGammaDeexcitation.cc diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaTransition.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DiscreteGammaTransition.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4DiscreteGammaTransition.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DiscreteGammaTransition.cc diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DummyProbability.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DummyProbability.cc similarity index 92% rename from source/processes/hadronic/models/generator/de_excitation/src/G4DummyProbability.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DummyProbability.cc index 7e6e347c30..54cb0fd783 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DummyProbability.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4DummyProbability.cc @@ -34,7 +34,7 @@ G4DummyProbability::G4DummyProbability(const G4DummyProbability& ) : G4VEmissionProbability() { - G4Exception("G4DummyProbability::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4DummyProbability::copy_constructor meant to not be accessible"); } @@ -42,7 +42,7 @@ const G4DummyProbability& G4DummyProbability:: operator=(const G4DummyProbability& ) { - G4Exception("G4DummyProbability::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4DummyProbability::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability.cc index af46b620ec..5898ff7c67 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability.cc @@ -34,7 +34,7 @@ G4E1Probability::G4E1Probability(const G4E1Probability& ) : G4VEmissionProbability() { - G4Exception("G4E1Probability::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability::copy_constructor meant to not be accessible"); } @@ -42,7 +42,7 @@ const G4E1Probability& G4E1Probability:: operator=(const G4E1Probability& ) { - G4Exception("G4E1Probability::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability001.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability001.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability001.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability001.cc index 4e6c8a95ce..65290f6272 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability001.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability001.cc @@ -35,7 +35,7 @@ G4E1Probability001::G4E1Probability001(const G4E1Probability001& ) : G4VEmission { - G4Exception("G4E1Probability001::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability001::copy_constructor meant to not be accessible"); } @@ -43,7 +43,7 @@ const G4E1Probability001& G4E1Probability001:: operator=(const G4E1Probability001& ) { - G4Exception("G4E1Probability001::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability001::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability01.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability01.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability01.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability01.cc index efd4aaf439..7e77b499d2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability01.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability01.cc @@ -34,7 +34,7 @@ G4E1Probability01::G4E1Probability01(const G4E1Probability01& ) : G4VEmissionProbability() { - G4Exception("G4E1Probability01::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability01::copy_constructor meant to not be accessible"); } @@ -42,7 +42,7 @@ const G4E1Probability01& G4E1Probability01:: operator=(const G4E1Probability01& ) { - G4Exception("G4E1Probability01::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability01::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability10.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability10.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability10.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability10.cc index c3cdd07c70..f01d5cd80e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability10.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability10.cc @@ -34,7 +34,7 @@ G4E1Probability10::G4E1Probability10(const G4E1Probability10& ): G4VEmissionProbability() { - G4Exception("G4E1Probability10::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability10::copy_constructor meant to not be accessible"); } @@ -42,7 +42,7 @@ const G4E1Probability10& G4E1Probability10:: operator=(const G4E1Probability10& ) { - G4Exception("G4E1Probability10::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability10::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability100.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability100.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability100.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability100.cc index f564d8c568..cb3a30dedc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1Probability100.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1Probability100.cc @@ -34,7 +34,7 @@ G4E1Probability100::G4E1Probability100(const G4E1Probability100& ) : G4VEmissionProbability() { - G4Exception("G4E1Probability100::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability100::copy_constructor meant to not be accessible"); } @@ -42,7 +42,7 @@ const G4E1Probability100& G4E1Probability100:: operator=(const G4E1Probability100& ) { - G4Exception("G4E1Probability100::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1Probability100::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability001.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability001.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability001.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability001.cc index 8ddd368a32..d3a925ce0a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability001.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability001.cc @@ -35,7 +35,7 @@ G4E1SingleProbability001::G4E1SingleProbability001( const G4E1SingleProbability001& ): G4VEmissionProbability() { - G4Exception("G4E1SingleProbability001::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability001::copy_constructor meant to not be accessible"); } @@ -43,7 +43,7 @@ const G4E1SingleProbability001& G4E1SingleProbability001:: operator=(const G4E1SingleProbability001& ) { - G4Exception("G4E1SingleProbability001::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability001::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability01.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability01.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability01.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability01.cc index 53e4112d5b..e7839e62f7 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability01.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability01.cc @@ -35,7 +35,7 @@ G4E1SingleProbability01::G4E1SingleProbability01( const G4E1SingleProbability01& ) : G4VEmissionProbability() { - G4Exception("G4E1SingleProbability01::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability01::copy_constructor meant to not be accessible"); } @@ -43,7 +43,7 @@ const G4E1SingleProbability01& G4E1SingleProbability01:: operator=(const G4E1SingleProbability01& ) { - G4Exception("G4E1SingleProbability01::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability01::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability1.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability1.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability1.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability1.cc index b070ccc3d5..0ba0d0eb7e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability1.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability1.cc @@ -35,7 +35,7 @@ G4E1SingleProbability1::G4E1SingleProbability1(const G4E1SingleProbability1& ) : G4VEmissionProbability() { - G4Exception("G4E1SingleProbability1::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability1::copy_constructor meant to not be accessible"); } @@ -43,7 +43,7 @@ const G4E1SingleProbability1& G4E1SingleProbability1:: operator=(const G4E1SingleProbability1& ) { - G4Exception("G4E1SingleProbability1::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability1::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability10.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability10.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability10.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability10.cc index 682915dcc3..873c611241 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability10.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability10.cc @@ -35,7 +35,7 @@ G4E1SingleProbability10::G4E1SingleProbability10(const G4E1SingleProbability10& ): G4VEmissionProbability() { - G4Exception("G4E1SingleProbability10::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability10::copy_constructor meant to not be accessible"); } @@ -43,7 +43,7 @@ const G4E1SingleProbability10& G4E1SingleProbability10:: operator=(const G4E1SingleProbability10& ) { - G4Exception("G4E1SingleProbability10::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability10::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability100.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability100.cc similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability100.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability100.cc index 21882d869c..f30494913f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4E1SingleProbability100.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4E1SingleProbability100.cc @@ -35,7 +35,7 @@ G4E1SingleProbability100::G4E1SingleProbability100( const G4E1SingleProbability100& ): G4VEmissionProbability() { - G4Exception("G4E1SingleProbability100::copy_constructor meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability100::copy_constructor meant to not be accessible"); } @@ -43,7 +43,7 @@ const G4E1SingleProbability100& G4E1SingleProbability100:: operator=(const G4E1SingleProbability100& ) { - G4Exception("G4E1SingleProbability100::operator= meant to not be accessible"); + throw G4HadronicException(__FILE__, __LINE__, "G4E1SingleProbability100::operator= meant to not be accessible"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevel.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevel.cc similarity index 74% rename from source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevel.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevel.cc index 2250544b65..a8c9bd83f1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevel.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevel.cc @@ -54,17 +54,24 @@ #include "globals.hh" +G4int G4NuclearLevel::Increment(G4int aF) +{ + static G4int instanceCount = 0; + instanceCount+=aF; + return instanceCount; +} + G4NuclearLevel::G4NuclearLevel(const G4double energy, const G4double halfLife, const G4double angularMomentum, - const G4DataVector& eGamma, - const G4DataVector& wGamma, - const G4DataVector& polarities, - const G4DataVector& kCC, const G4DataVector& l1CC, - const G4DataVector& l2CC, const G4DataVector& l3CC, - const G4DataVector& m1CC, const G4DataVector& m2CC, - const G4DataVector& m3CC, const G4DataVector& m4CC, - const G4DataVector& m5CC, const G4DataVector& nPlusCC, - const G4DataVector& totalCC) + const std::vector& eGamma, + const std::vector& wGamma, + const std::vector& polarities, + const std::vector& kCC, const std::vector& l1CC, + const std::vector& l2CC, const std::vector& l3CC, + const std::vector& m1CC, const std::vector& m2CC, + const std::vector& m3CC, const std::vector& m4CC, + const std::vector& m5CC, const std::vector& nPlusCC, + const std::vector& totalCC) { _energy = energy; @@ -91,10 +98,13 @@ G4NuclearLevel::G4NuclearLevel(const G4double energy, const G4double halfLife, _nGammas = _energies.size(); MakeProbabilities(); MakeCumProb(); + // G4cout << "####### Incrementing "<& G4NuclearLevel::GammaEnergies() const { return _energies; } -const G4DataVector& G4NuclearLevel::GammaWeights() const +const std::vector& G4NuclearLevel::GammaWeights() const { return _weights; } -const G4DataVector& G4NuclearLevel::GammaProbabilities() const +const std::vector& G4NuclearLevel::GammaProbabilities() const { return _prob; } -const G4DataVector& G4NuclearLevel::GammaCumulativeProbabilities() const +const std::vector& G4NuclearLevel::GammaCumulativeProbabilities() const { return _cumProb; } -const G4DataVector& G4NuclearLevel::GammaPolarities() const +const std::vector& G4NuclearLevel::GammaPolarities() const { return _polarities; } -const G4DataVector& G4NuclearLevel::KConvertionProbabilities() const +const std::vector& G4NuclearLevel::KConvertionProbabilities() const { return _kCC; } -const G4DataVector& G4NuclearLevel::L1ConvertionProbabilities() const +const std::vector& G4NuclearLevel::L1ConvertionProbabilities() const { return _l1CC; } -const G4DataVector& G4NuclearLevel::L2ConvertionProbabilities() const +const std::vector& G4NuclearLevel::L2ConvertionProbabilities() const { return _l2CC; } -const G4DataVector& G4NuclearLevel::L3ConvertionProbabilities() const +const std::vector& G4NuclearLevel::L3ConvertionProbabilities() const { return _l3CC; } -const G4DataVector& G4NuclearLevel::M1ConvertionProbabilities() const +const std::vector& G4NuclearLevel::M1ConvertionProbabilities() const { return _m1CC; } -const G4DataVector& G4NuclearLevel::M2ConvertionProbabilities() const +const std::vector& G4NuclearLevel::M2ConvertionProbabilities() const { return _m2CC; } -const G4DataVector& G4NuclearLevel::M3ConvertionProbabilities() const +const std::vector& G4NuclearLevel::M3ConvertionProbabilities() const { return _m3CC; } -const G4DataVector& G4NuclearLevel::M4ConvertionProbabilities() const +const std::vector& G4NuclearLevel::M4ConvertionProbabilities() const { return _m4CC; } -const G4DataVector& G4NuclearLevel::M5ConvertionProbabilities() const +const std::vector& G4NuclearLevel::M5ConvertionProbabilities() const { return _m5CC; } -const G4DataVector& G4NuclearLevel::NPlusConvertionProbabilities() const +const std::vector& G4NuclearLevel::NPlusConvertionProbabilities() const { return _nPlusCC; } -const G4DataVector& G4NuclearLevel::TotalConvertionProbabilities() const +const std::vector& G4NuclearLevel::TotalConvertionProbabilities() const { return _totalCC; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelManager.cc similarity index 89% rename from source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelManager.cc index 6c2c2871f1..8cfb93f4fe 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelManager.cc +++ b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelManager.cc @@ -46,10 +46,12 @@ #include "globals.hh" #include "G4NuclearLevel.hh" #include "G4ios.hh" +#include "G4HadronicException.hh" #include #include #include #include +#include "G4HadTmpUtil.hh" G4NuclearLevelManager::G4NuclearLevelManager(): _nucleusA(0), _nucleusZ(0), _fileName(""), _validity(false), @@ -60,7 +62,7 @@ G4NuclearLevelManager::G4NuclearLevelManager(const G4int Z, const G4int A, const _nucleusA(A), _nucleusZ(Z), _fileName(filename) { if (A <= 0 || Z <= 0 || Z > A ) - G4Exception("==== G4NuclearLevelManager ==== (Z,A) <0, or Z>A"); + throw G4HadronicException(__FILE__, __LINE__, "==== G4NuclearLevelManager ==== (Z,A) <0, or Z>A"); _levels = 0; @@ -276,23 +278,23 @@ void G4NuclearLevelManager::MakeLevels() _levels = new G4PtrLevelVector; - G4DataVector eLevel; - G4DataVector eGamma; - G4DataVector wGamma; - G4DataVector pGamma; // polarity - G4DataVector hLevel; // half life - G4DataVector aLevel; // angular momentum - G4DataVector kConve; // internal convertion coefficiencies - G4DataVector l1Conve; - G4DataVector l2Conve; - G4DataVector l3Conve; - G4DataVector m1Conve; - G4DataVector m2Conve; - G4DataVector m3Conve; - G4DataVector m4Conve; - G4DataVector m5Conve; - G4DataVector npConve; - G4DataVector toConve; + std::vector eLevel; + std::vector eGamma; + std::vector wGamma; + std::vector pGamma; // polarity + std::vector hLevel; // half life + std::vector aLevel; // angular momentum + std::vector kConve; // internal convertion coefficiencies + std::vector l1Conve; + std::vector l2Conve; + std::vector l3Conve; + std::vector m1Conve; + std::vector m2Conve; + std::vector m3Conve; + std::vector m4Conve; + std::vector m5Conve; + std::vector npConve; + std::vector toConve; while (Read(inFile)) @@ -326,20 +328,20 @@ void G4NuclearLevelManager::MakeLevels() G4double thisLevelEnergy = eLevel[0]; G4double thisLevelHalfLife = 0.; G4double thisLevelAngMom = 0.; - G4DataVector thisLevelEnergies; - G4DataVector thisLevelWeights; - G4DataVector thisLevelPolarities; - G4DataVector thisLevelkCC; - G4DataVector thisLevell1CC; - G4DataVector thisLevell2CC; - G4DataVector thisLevell3CC; - G4DataVector thisLevelm1CC; - G4DataVector thisLevelm2CC; - G4DataVector thisLevelm3CC; - G4DataVector thisLevelm4CC; - G4DataVector thisLevelm5CC; - G4DataVector thisLevelnpCC; - G4DataVector thisLeveltoCC; + std::vector thisLevelEnergies; + std::vector thisLevelWeights; + std::vector thisLevelPolarities; + std::vector thisLevelkCC; + std::vector thisLevell1CC; + std::vector thisLevell2CC; + std::vector thisLevell3CC; + std::vector thisLevelm1CC; + std::vector thisLevelm2CC; + std::vector thisLevelm3CC; + std::vector thisLevelm4CC; + std::vector thisLevelm5CC; + std::vector thisLevelnpCC; + std::vector thisLeveltoCC; G4double e = -1.; G4int i; @@ -429,7 +431,7 @@ void G4NuclearLevelManager::MakeLevels() _levels->push_back(newLevel); } - // std::sort(_levels->begin(), _levels->end()); + G4PtrSort(_levels); return; } @@ -451,7 +453,7 @@ void G4NuclearLevelManager::PrintAll() { _levels->operator[](i)->PrintAll(); } } -/* + G4NuclearLevelManager::G4NuclearLevelManager(const G4NuclearLevelManager &right) { _levelEnergy = right._levelEnergy; @@ -485,7 +487,7 @@ G4NuclearLevelManager::G4NuclearLevelManager(const G4NuclearLevelManager &right) _levels->push_back(new G4NuclearLevel(*(right._levels->operator[](i)))); } - std::sort(_levels->begin(), _levels->end()); + G4PtrSort(_levels); } else { @@ -493,4 +495,3 @@ G4NuclearLevelManager::G4NuclearLevelManager(const G4NuclearLevelManager &right) } } -*/ diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelStore.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelStore.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4NuclearLevelStore.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4NuclearLevelStore.cc diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4PhotonEvaporation.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4PhotonEvaporation.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4PhotonEvaporation.cc diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4RandGeneralTmp.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4RandGeneralTmp.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4RandGeneralTmp.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4RandGeneralTmp.cc diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VGammaDeexcitation.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4VGammaDeexcitation.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VGammaDeexcitation.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4VGammaDeexcitation.cc diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VPhotonEvaporation.cc b/source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4VPhotonEvaporation.cc similarity index 100% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VPhotonEvaporation.cc rename to source/processes/hadronic/models/de_excitation/photon_evaporation/src/G4VPhotonEvaporation.cc diff --git a/source/processes/hadronic/models/generator/util/GNUmakefile b/source/processes/hadronic/models/de_excitation/util/GNUmakefile similarity index 87% rename from source/processes/hadronic/models/generator/util/GNUmakefile rename to source/processes/hadronic/models/de_excitation/util/GNUmakefile index 0d442e1829..c45d9c0476 100644 --- a/source/processes/hadronic/models/generator/util/GNUmakefile +++ b/source/processes/hadronic/models/de_excitation/util/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.3 2003/06/18 08:54:32 gcosmo Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 16:42:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_util_gen +name := G4hadronic_deex_util ifndef G4INSTALL G4INSTALL = ../../../../../.. @@ -23,11 +23,12 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/electromagnetic/lowenergy/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ @@ -36,6 +37,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/particles/shortlived/include \ -I$(G4BASE)/materials/include - + + include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4AlphaCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4AlphaCoulombBarrier.hh index 14716ff001..85b3350537 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4AlphaCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4AlphaCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4AlphaCoulombBarrier.hh,v 1.5 2002/12/12 19:17:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaCoulombBarrier.hh,v 1.1 2003/08/26 18:50:00 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh index 2b0c20fc3d..c1883eced1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertPairingCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertPairingCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronGilbertPairingCorrections.hh,v 1.8 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronGilbertPairingCorrections.hh,v 1.1 2003/08/26 18:50:09 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh index 140fa52c90..dce072c5c4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronGilbertShellCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronGilbertShellCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronGilbertShellCorrections.hh,v 1.8 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronGilbertShellCorrections.hh,v 1.1 2003/08/26 18:50:01 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh index 0f3c561e72..87a220145e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronShellPlusPairingCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronShellPlusPairingCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronShellPlusPairingCorrections.hh,v 1.9 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronShellPlusPairingCorrections.hh,v 1.1 2003/08/26 18:50:02 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh index 1c0f3cb114..eef73f7b71 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfPairingCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfPairingCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronTruranHilfPairingCorrections.hh,v 1.8 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronTruranHilfPairingCorrections.hh,v 1.1 2003/08/26 18:50:06 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh index 3d32718b49..59357189bc 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CameronTruranHilfShellCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CameronTruranHilfShellCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronTruranHilfShellCorrections.hh,v 1.8 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronTruranHilfShellCorrections.hh,v 1.1 2003/08/26 18:50:11 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh index e80b6d5b6f..65caa17328 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ConstantLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4ConstantLevelDensityParameter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ConstantLevelDensityParameter.hh,v 1.7 2003/05/30 13:23:22 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ConstantLevelDensityParameter.hh,v 1.1 2003/08/26 18:50:08 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations (photon evaporation) // by C. Dallapiccola (Nov 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh index ade7780fbc..2dd4ce86a3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CookPairingCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CookPairingCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CookPairingCorrections.hh,v 1.3 2002/06/07 15:53:50 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CookPairingCorrections.hh,v 1.1 2003/08/26 18:50:03 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh index 9794a833c5..0be154a87a 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CookShellCorrections.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CookShellCorrections.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CookShellCorrections.hh,v 1.3 2002/06/07 15:53:50 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CookShellCorrections.hh,v 1.1 2003/08/26 18:50:05 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh similarity index 94% rename from source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh index 30ba746fd5..68c4d07d79 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4CoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4CoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CoulombBarrier.hh,v 1.8 2003/05/30 13:23:22 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CoulombBarrier.hh,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -31,6 +31,7 @@ #define G4CoulombBarrier_h 1 #include "G4VCoulombBarrier.hh" +#include "G4HadronicException.hh" #include "globals.hh" diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh index b6212ea59d..347d25bdaf 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4DeuteronCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4DeuteronCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronCoulombBarrier.hh,v 1.4 2002/12/12 19:17:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronCoulombBarrier.hh,v 1.1 2003/08/26 18:50:12 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh index 6bca76e71e..615980b439 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4EvaporationLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4EvaporationLevelDensityParameter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationLevelDensityParameter.hh,v 1.8 2002/12/12 19:17:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationLevelDensityParameter.hh,v 1.1 2003/08/29 08:49:40 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh index 5888687855..ab58cab93b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4He3CoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4He3CoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3CoulombBarrier.hh,v 1.4 2002/12/12 19:17:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3CoulombBarrier.hh,v 1.1 2003/08/26 18:50:12 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh index bf811755a0..3c54bbff6e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NeutronCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4NeutronCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronCoulombBarrier.hh,v 1.5 2003/05/30 13:23:22 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronCoulombBarrier.hh,v 1.1 2003/08/26 18:50:04 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh b/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh index 62fe87418d..ce40588d17 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4PairingCorrection.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4PairingCorrection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PairingCorrection.hh,v 1.8 2003/06/16 17:05:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PairingCorrection.hh,v 1.1 2003/08/26 18:50:10 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh index 71659f3c7c..3efb3a9294 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ProtonCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4ProtonCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonCoulombBarrier.hh,v 1.4 2002/12/12 19:17:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonCoulombBarrier.hh,v 1.1 2003/08/26 18:50:11 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh b/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh similarity index 96% rename from source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh index 5806aefadc..07bb6e8824 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4ShellCorrection.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4ShellCorrection.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShellCorrection.hh,v 1.2 2002/12/12 19:17:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ShellCorrection.hh,v 1.1 2003/08/26 18:50:08 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh index b9effaace8..a4d20533ec 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4TritonCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4TritonCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonCoulombBarrier.hh,v 1.5 2002/12/12 19:17:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonCoulombBarrier.hh,v 1.1 2003/08/26 18:50:07 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh index 8370d4514f..f58714e54c 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VCoulombBarrier.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VCoulombBarrier.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VCoulombBarrier.hh,v 1.5 2002/12/12 19:17:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VCoulombBarrier.hh,v 1.1 2003/08/26 18:50:10 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Nov 1999) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh index cd710cc07e..f9bae80994 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VEmissionProbability.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VEmissionProbability.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEmissionProbability.hh,v 1.7 2002/12/12 19:17:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEmissionProbability.hh,v 1.1 2003/08/26 18:50:06 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh b/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh similarity index 93% rename from source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh rename to source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh index 4a12bebfb6..cf369e0dc0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4VLevelDensityParameter.hh +++ b/source/processes/hadronic/models/de_excitation/util/include/G4VLevelDensityParameter.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VLevelDensityParameter.hh,v 1.6 2002/12/12 19:17:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VLevelDensityParameter.hh,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -35,6 +35,7 @@ #include "globals.hh" +#include "G4HadronicException.hh" class G4VLevelDensityParameter { diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc index 8c3cb9a3c7..4f99e16fa6 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4AlphaCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4AlphaCoulombBarrier.cc @@ -21,24 +21,25 @@ // ******************************************************************** // // -// $Id: G4AlphaCoulombBarrier.cc,v 1.6 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4AlphaCoulombBarrier.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) #include "G4AlphaCoulombBarrier.hh" +#include "G4HadronicException.hh" G4AlphaCoulombBarrier::G4AlphaCoulombBarrier(const G4AlphaCoulombBarrier & ) : G4CoulombBarrier() { - G4Exception("G4AlphaCoulombBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaCoulombBarrier::copy_constructor meant to not be accessable."); } const G4AlphaCoulombBarrier & G4AlphaCoulombBarrier::operator=(const G4AlphaCoulombBarrier & ) { - G4Exception("G4AlphaCoulombBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4AlphaCoulombBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc index 6e29f84670..839c5308c3 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertPairingCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronGilbertPairingCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronGilbertPairingCorrections.cc,v 1.1 2003/08/26 18:50:45 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc index 324b57cad6..bec84258c0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronGilbertShellCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronGilbertShellCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronGilbertShellCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronGilbertShellCorrections.cc,v 1.1 2003/08/26 18:50:39 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc index a7ec6ccca2..0f47d9bec0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronShellPlusPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronShellPlusPairingCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronShellPlusPairingCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronShellPlusPairingCorrections.cc,v 1.1 2003/08/26 18:50:39 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc index fd2407e36c..29ec4ef489 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfPairingCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronTruranHilfPairingCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronTruranHilfPairingCorrections.cc,v 1.1 2003/08/26 18:50:43 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc index 07af9de5d9..262005c6a2 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CameronTruranHilfShellCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CameronTruranHilfShellCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CameronTruranHilfShellCorrections.cc,v 1.7 2002/12/12 19:17:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CameronTruranHilfShellCorrections.cc,v 1.1 2003/08/26 18:50:47 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ConstantLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/util/src/G4ConstantLevelDensityParameter.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ConstantLevelDensityParameter.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4ConstantLevelDensityParameter.cc index c69739b834..c55efb574d 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ConstantLevelDensityParameter.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4ConstantLevelDensityParameter.cc @@ -29,19 +29,20 @@ #include "G4ConstantLevelDensityParameter.hh" +#include "G4HadronicException.hh" G4ConstantLevelDensityParameter:: G4ConstantLevelDensityParameter(const G4ConstantLevelDensityParameter& ) : G4VLevelDensityParameter(), EvapLevelDensityParameter(0.125*(1./MeV)) { - G4Exception("G4ConstantLevelDensityParameter::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ConstantLevelDensityParameter::copy_constructor meant to not be accessable"); } const G4ConstantLevelDensityParameter & G4ConstantLevelDensityParameter:: operator=(const G4ConstantLevelDensityParameter &) { - G4Exception("G4ConstantLevelDensityParameter::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ConstantLevelDensityParameter::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc index 30ff9bb19a..ee829cb2fd 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CookPairingCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CookPairingCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CookPairingCorrections.cc,v 1.1 2001/11/08 10:14:04 vlara Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CookPairingCorrections.cc,v 1.1 2003/08/26 18:50:40 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc similarity index 97% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc index 75b04b00ee..584d2bc88b 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CookShellCorrections.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CookShellCorrections.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CookShellCorrections.cc,v 1.1 2001/11/08 10:14:05 vlara Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CookShellCorrections.cc,v 1.1 2003/08/26 18:50:42 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc similarity index 87% rename from source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc index 4ae76792a8..80320a2bd0 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4CoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4CoulombBarrier.cc @@ -21,25 +21,26 @@ // ******************************************************************** // // -// $Id: G4CoulombBarrier.cc,v 1.9 2003/06/16 17:06:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CoulombBarrier.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) #include "G4CoulombBarrier.hh" +#include "G4HadronicException.hh" #include G4CoulombBarrier::G4CoulombBarrier(const G4CoulombBarrier & ) : G4VCoulombBarrier() { - G4Exception("G4CoulombBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4CoulombBarrier::copy_constructor meant to not be accessable."); } const G4CoulombBarrier & G4CoulombBarrier::operator=(const G4CoulombBarrier & ) { - G4Exception("G4CoulombBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4CoulombBarrier::operator= meant to not be accessable."); return *this; } @@ -66,7 +67,7 @@ G4double G4CoulombBarrier::GetCoulombBarrier(const G4int ARes, const G4int ZRes, errOs << "Wrong values for "; errOs << "residual nucleus A = " << ARes << " "; errOs << "and residual nucleus Z = " << ZRes << G4endl; - G4Exception(errMessage); + throw G4HadronicException(__FILE__, __LINE__, errMessage); } if (GetA() == 1 && GetZ() == 0) { Barrier = 0.0; // Neutron Coulomb Barrier is 0 diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc index 5e959c6ac1..f939cfbedb 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4DeuteronCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4DeuteronCoulombBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DeuteronCoulombBarrier.cc,v 1.6 2003/05/30 13:23:23 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DeuteronCoulombBarrier.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -32,13 +32,13 @@ G4DeuteronCoulombBarrier::G4DeuteronCoulombBarrier(const G4DeuteronCoulombBarrier & ) : G4CoulombBarrier() { - G4Exception("G4DeuteronCoulombBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronCoulombBarrier::copy_constructor meant to not be accessable."); } const G4DeuteronCoulombBarrier & G4DeuteronCoulombBarrier::operator=(const G4DeuteronCoulombBarrier & ) { - G4Exception("G4DeuteronCoulombBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4DeuteronCoulombBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc index db00209bb4..d90c599ae1 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4EvaporationLevelDensityParameter.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4EvaporationLevelDensityParameter.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EvaporationLevelDensityParameter.cc,v 1.10 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EvaporationLevelDensityParameter.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -30,6 +30,7 @@ #include "G4EvaporationLevelDensityParameter.hh" +#include "G4HadronicException.hh" // Those values are from table 3 in // A.S. Iljinov et al. Nucl Phys A543 (1992) 517-557 @@ -46,14 +47,14 @@ const G4double G4EvaporationLevelDensityParameter::Bs = 1.0; G4EvaporationLevelDensityParameter:: G4EvaporationLevelDensityParameter(const G4EvaporationLevelDensityParameter &) : G4VLevelDensityParameter() { - G4Exception("G4EvaporationLevelDensityParameter::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationLevelDensityParameter::copy_constructor meant to not be accessable"); } const G4EvaporationLevelDensityParameter & G4EvaporationLevelDensityParameter:: operator=(const G4EvaporationLevelDensityParameter &) { - G4Exception("G4EvaporationLevelDensityParameter::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4EvaporationLevelDensityParameter::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc index 28592ce6d7..e2939cc135 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4He3CoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4He3CoulombBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4He3CoulombBarrier.cc,v 1.6 2003/05/30 13:23:24 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4He3CoulombBarrier.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -32,13 +32,13 @@ G4He3CoulombBarrier::G4He3CoulombBarrier(const G4He3CoulombBarrier & ) : G4CoulombBarrier() { - G4Exception("G4He3CoulombBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4He3CoulombBarrier::copy_constructor meant to not be accessable."); } const G4He3CoulombBarrier & G4He3CoulombBarrier::operator=(const G4He3CoulombBarrier & ) { - G4Exception("G4He3CoulombBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4He3CoulombBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4NeutronCoulombBarrier.cc similarity index 85% rename from source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4NeutronCoulombBarrier.cc index 8694757e36..d9db52f4a8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4NeutronCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4NeutronCoulombBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronCoulombBarrier.cc,v 1.6 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronCoulombBarrier.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -32,13 +32,13 @@ G4NeutronCoulombBarrier::G4NeutronCoulombBarrier(const G4NeutronCoulombBarrier & ) : G4CoulombBarrier() { - G4Exception("G4NeutronCoulombBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronCoulombBarrier::copy_constructor meant to not be accessable."); } const G4NeutronCoulombBarrier & G4NeutronCoulombBarrier::operator=(const G4NeutronCoulombBarrier & ) { - G4Exception("G4NeutronCoulombBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronCoulombBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc b/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc index 7b94d1d47b..5a3f96a642 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4PairingCorrection.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4PairingCorrection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PairingCorrection.cc,v 1.6 2002/12/12 19:17:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PairingCorrection.cc,v 1.1 2003/08/26 18:50:46 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc index 95700771cf..316afc1c72 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ProtonCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4ProtonCoulombBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProtonCoulombBarrier.cc,v 1.6 2003/05/30 13:23:25 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProtonCoulombBarrier.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -32,13 +32,13 @@ G4ProtonCoulombBarrier::G4ProtonCoulombBarrier(const G4ProtonCoulombBarrier & ) : G4CoulombBarrier() { - G4Exception("G4ProtonCoulombBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonCoulombBarrier::copy_constructor meant to not be accessable."); } const G4ProtonCoulombBarrier & G4ProtonCoulombBarrier::operator=(const G4ProtonCoulombBarrier & ) { - G4Exception("G4ProtonCoulombBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4ProtonCoulombBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4ShellCorrection.cc b/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc similarity index 95% rename from source/processes/hadronic/models/generator/de_excitation/src/G4ShellCorrection.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc index c3f48fe94d..918597266e 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4ShellCorrection.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4ShellCorrection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ShellCorrection.cc,v 1.2 2002/12/12 19:17:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ShellCorrection.cc,v 1.1 2003/08/26 18:50:45 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc similarity index 88% rename from source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc index 69726e8dd5..aa8b23d29f 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4TritonCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4TritonCoulombBarrier.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TritonCoulombBarrier.cc,v 1.6 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TritonCoulombBarrier.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) @@ -32,13 +32,13 @@ G4TritonCoulombBarrier::G4TritonCoulombBarrier(const G4TritonCoulombBarrier & ) : G4CoulombBarrier() { - G4Exception("G4TritonCoulombBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonCoulombBarrier::copy_constructor meant to not be accessable."); } const G4TritonCoulombBarrier & G4TritonCoulombBarrier::operator=(const G4TritonCoulombBarrier & ) { - G4Exception("G4TritonCoulombBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4TritonCoulombBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc similarity index 84% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc index d1010ea1dc..4954b022ec 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VCoulombBarrier.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4VCoulombBarrier.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4VCoulombBarrier.cc,v 1.7 2003/06/16 17:06:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VCoulombBarrier.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Dec 1999) #include "G4VCoulombBarrier.hh" +#include "G4HadronicException.hh" #include G4VCoulombBarrier::G4VCoulombBarrier(const G4int anA, const G4int aZ) @@ -43,20 +44,20 @@ G4VCoulombBarrier::G4VCoulombBarrier(const G4int anA, const G4int aZ) errOs << "Wrong values for "; errOs << "A = " << anA << " "; errOs << "and Z = " << aZ << G4endl; - G4Exception(errMessage); + throw G4HadronicException(__FILE__, __LINE__, errMessage); } } G4VCoulombBarrier::G4VCoulombBarrier(const G4VCoulombBarrier & ) { - G4Exception("G4VCoulombBarrier::copy_constructor meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VCoulombBarrier::copy_constructor meant to not be accessable."); } const G4VCoulombBarrier & G4VCoulombBarrier::operator=(const G4VCoulombBarrier & ) { - G4Exception("G4VCoulombBarrier::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VCoulombBarrier::operator= meant to not be accessable."); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc similarity index 83% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc index 7507397304..a53785b8c4 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VEmissionProbability.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4VEmissionProbability.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VEmissionProbability.cc,v 1.8 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VEmissionProbability.cc,v 1.3 2003/11/04 11:35:04 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -30,11 +30,11 @@ #include "G4VEmissionProbability.hh" - +#include "G4HadronicException.hh" G4VEmissionProbability::G4VEmissionProbability(const G4VEmissionProbability &) { - G4Exception("G4VEmissionProbability::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VEmissionProbability::copy_constructor meant to not be accessable"); } @@ -42,7 +42,7 @@ G4VEmissionProbability::G4VEmissionProbability(const G4VEmissionProbability &) const G4VEmissionProbability & G4VEmissionProbability::operator=(const G4VEmissionProbability &) { - G4Exception("G4VEmissionProbability::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VEmissionProbability::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc b/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc similarity index 85% rename from source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc rename to source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc index 5e289eb9e7..1ffcc1dfc8 100644 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4VLevelDensityParameter.cc +++ b/source/processes/hadronic/models/de_excitation/util/src/G4VLevelDensityParameter.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VLevelDensityParameter.cc,v 1.7 2003/05/30 13:23:26 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VLevelDensityParameter.cc,v 1.2 2003/11/03 17:53:06 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (Oct 1998) @@ -35,7 +35,7 @@ G4VLevelDensityParameter:: G4VLevelDensityParameter(const G4VLevelDensityParameter &) { - G4Exception("G4VLevelDensityParameter::copy_constructor meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VLevelDensityParameter::copy_constructor meant to not be accessable"); } @@ -44,7 +44,7 @@ G4VLevelDensityParameter(const G4VLevelDensityParameter &) const G4VLevelDensityParameter & G4VLevelDensityParameter:: operator=(const G4VLevelDensityParameter &) { - G4Exception("G4VLevelDensityParameter::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VLevelDensityParameter::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/GNUmakefile b/source/processes/hadronic/models/generator/GNUmakefile deleted file mode 100644 index d13eaf53f1..0000000000 --- a/source/processes/hadronic/models/generator/GNUmakefile +++ /dev/null @@ -1,19 +0,0 @@ -# $Id: GNUmakefile,v 1.3 2002/11/16 17:08:01 hpw Exp $ -# ---------------------------------------------------------------- -# GNUmakefile for hadronic processes library. G.Folger 10-Dec-97. -# ---------------------------------------------------------------- - -name := G4hadronic_gen - -SUBDIRS = de_excitation diffractive_string high_energy scattering kinetic_model management -SUBDIRS += string_common string_fragmentation util pre_equilibrium quark_gluon_string -SUBDIRS += scattering -SUBLIBS = G4hadronic_deex G4hadronic_diffstring G4hadronic_HE_gen G4hadronic_kinetic -SUBLIBS += G4hadronic_man_gen G4hadronic_preequ G4hadronic_qgstring G4hadronic_string_common -SUBLIBS += G4hadronic_stringfrag G4hadronic_util_gen G4hadronic_scattering - -ifndef G4INSTALL - G4INSTALL = ../../../../.. -endif - -include $(G4INSTALL)/config/globlib.gmk diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh deleted file mode 100644 index b718bd92d4..0000000000 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4FermiConfiguration.hh +++ /dev/null @@ -1,229 +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: G4FermiConfiguration.hh,v 1.11 2003/06/16 17:05:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Nov 1998) - -#ifndef G4FermiConfiguration_h -#define G4FermiConfiguration_h 1 - -#include - -#include "globals.hh" -#include "Randomize.hh" -#include "G4VFermiFragment.hh" -#include "G4StableFermiFragment.hh" -#include "G4B9FermiFragment.hh" -#include "G4Be8FermiFragment.hh" -#include "G4He5FermiFragment.hh" -#include "G4Li5FermiFragment.hh" -#include "G4ParticleMomentum.hh" -#include "G4ParticleTable.hh" -#include "G4IonTable.hh" -#include "G4Fragment.hh" - - -static const G4int NumberOfFragments = 100; - -class G4FermiConfiguration -{ -public: - G4FermiConfiguration(); - ~G4FermiConfiguration(); - - G4FermiConfiguration(const G4FermiConfiguration &right); - - const G4FermiConfiguration & operator=(const G4FermiConfiguration &right); - G4bool operator==(const G4FermiConfiguration &right) const; - G4bool operator!=(const G4FermiConfiguration &right) const; - -public: - - void Initialize(const G4int max); - - G4bool SplitNucleus(const G4int A, const G4int Z); - - G4double DecayProbability(const G4int A, const G4double TotalE); - - G4FragmentVector * GetFragments(const G4Fragment & theNucleus); - - -private: - - G4double CoulombBarrier(void); - - - std::deque* FragmentsMomentum(G4double KineticEnergy); - - G4double RNKSI(const G4int K); - - G4ParticleMomentum IsotropicVector(const G4double Magnitude = 1.0); - - - // Kappa = V/V_0 it is used in calculation of Coulomb energy - static const G4double Kappa; - - // Nuclear radius r0 (is a model parameter) - static const G4double r0; - - - - static G4StableFermiFragment Fragment00; - static G4StableFermiFragment Fragment01; - static G4StableFermiFragment Fragment02; - static G4StableFermiFragment Fragment03; - static G4StableFermiFragment Fragment04; - static G4StableFermiFragment Fragment05; - static G4He5FermiFragment Fragment06; // He5 - static G4Li5FermiFragment Fragment07; // Li5 - static G4StableFermiFragment Fragment08; - static G4StableFermiFragment Fragment09; - - static G4StableFermiFragment Fragment10; - static G4StableFermiFragment Fragment11; - static G4StableFermiFragment Fragment12; - static G4StableFermiFragment Fragment13; - static G4StableFermiFragment Fragment14; - static G4StableFermiFragment Fragment15; - static G4StableFermiFragment Fragment16; - static G4Be8FermiFragment Fragment17; // Be8 - static G4StableFermiFragment Fragment18; - static G4B9FermiFragment Fragment19; // B9 - - static G4StableFermiFragment Fragment20; - static G4StableFermiFragment Fragment21; - static G4StableFermiFragment Fragment22; - static G4StableFermiFragment Fragment23; - static G4StableFermiFragment Fragment24; - static G4StableFermiFragment Fragment25; - static G4StableFermiFragment Fragment26; - static G4StableFermiFragment Fragment27; - static G4StableFermiFragment Fragment28; - static G4StableFermiFragment Fragment29; - - static G4StableFermiFragment Fragment30; - static G4StableFermiFragment Fragment31; - static G4StableFermiFragment Fragment32; - static G4StableFermiFragment Fragment33; - static G4StableFermiFragment Fragment34; - static G4StableFermiFragment Fragment35; - static G4StableFermiFragment Fragment36; - static G4StableFermiFragment Fragment37; - static G4StableFermiFragment Fragment38; - static G4StableFermiFragment Fragment39; - - static G4StableFermiFragment Fragment40; - static G4StableFermiFragment Fragment41; - static G4StableFermiFragment Fragment42; - static G4StableFermiFragment Fragment43; - static G4StableFermiFragment Fragment44; - static G4StableFermiFragment Fragment45; - static G4StableFermiFragment Fragment46; - static G4StableFermiFragment Fragment47; - static G4StableFermiFragment Fragment48; - static G4StableFermiFragment Fragment49; - - static G4StableFermiFragment Fragment50; - static G4StableFermiFragment Fragment51; - static G4StableFermiFragment Fragment52; - static G4StableFermiFragment Fragment53; - static G4StableFermiFragment Fragment54; - static G4StableFermiFragment Fragment55; - static G4StableFermiFragment Fragment56; - static G4StableFermiFragment Fragment57; - static G4StableFermiFragment Fragment58; - static G4StableFermiFragment Fragment59; - - static G4StableFermiFragment Fragment60; - static G4StableFermiFragment Fragment61; - static G4StableFermiFragment Fragment62; - static G4StableFermiFragment Fragment63; - static G4StableFermiFragment Fragment64; - static G4StableFermiFragment Fragment65; - static G4StableFermiFragment Fragment66; - static G4StableFermiFragment Fragment67; - static G4StableFermiFragment Fragment68; - static G4StableFermiFragment Fragment69; - - static G4StableFermiFragment Fragment70; - static G4StableFermiFragment Fragment71; - static G4StableFermiFragment Fragment72; - static G4StableFermiFragment Fragment73; - static G4StableFermiFragment Fragment74; - static G4StableFermiFragment Fragment75; - static G4StableFermiFragment Fragment76; - static G4StableFermiFragment Fragment77; - static G4StableFermiFragment Fragment78; - static G4StableFermiFragment Fragment79; - - static G4StableFermiFragment Fragment80; - static G4StableFermiFragment Fragment81; - static G4StableFermiFragment Fragment82; - static G4StableFermiFragment Fragment83; - static G4StableFermiFragment Fragment84; - static G4StableFermiFragment Fragment85; - static G4StableFermiFragment Fragment86; - static G4StableFermiFragment Fragment87; - static G4StableFermiFragment Fragment88; - static G4StableFermiFragment Fragment89; - - static G4StableFermiFragment Fragment90; - static G4StableFermiFragment Fragment91; - static G4StableFermiFragment Fragment92; - static G4StableFermiFragment Fragment93; - static G4StableFermiFragment Fragment94; - static G4StableFermiFragment Fragment95; - static G4StableFermiFragment Fragment96; - static G4StableFermiFragment Fragment97; - static G4StableFermiFragment Fragment98; - static G4StableFermiFragment Fragment99; - - - static G4VFermiFragment * theListOfFragments[NumberOfFragments]; - - - // G4VFermiFragment * theConfiguration[MaxConfigSize]; - - // G4int Index[MaxConfigSize]; - std::vector Index; - - - struct DeleteFragment - { - template - void operator()(const T* ptr) const - { - delete ptr; - } - }; - - -}; - - -#endif - - diff --git a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh b/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh deleted file mode 100644 index c19ab53002..0000000000 --- a/source/processes/hadronic/models/generator/de_excitation/include/G4NuclearLevel.hh +++ /dev/null @@ -1,172 +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. * -// ******************************************************************** -// -// ------------------------------------------------------------------- -// GEANT 4 class file -// -// For information related to this code contact: -// CERN, IT Division, ASD group -// CERN, Geneva, Switzerland -// -// File name: G4NuclearLevel -// -// Author: Maria Grazia Pia (pia@genova.infn.it) -// -// Creation date: 25 October 1998 -// -// Modifications: -// 21 Nov. 2001, Fan Lei (flei@space.qinetiq.com) -// Added K->N+ internal conversion coefficiencies and their access -// functions -// -// 15 April 1999, Alessandro Brunengo (Alessandro.Brunengo@ge.infn.it) -// Added half-life, angular momentum, parity, emissioni type -// reading from experimental data. -// -// ------------------------------------------------------------------- - -#ifndef G4NUCLEARLEVEL_HH -#define G4NUCLEARLEVEL_HH - -#include "globals.hh" -#include "G4NuclearLevel.hh" -#include "G4DataVector.hh" - -class G4NuclearLevel -{ - -public: - - G4NuclearLevel(const G4double energy, const G4double halfLife, - const G4double angularMomentum, const G4DataVector& eGamma, - const G4DataVector& wGamma, const G4DataVector& polarities, - const G4DataVector& kCC, const G4DataVector& l1CC, - const G4DataVector& l2CC, const G4DataVector& l3CC, - const G4DataVector& m1CC, const G4DataVector& m2CC, - const G4DataVector& m3CC, const G4DataVector& m4CC, - const G4DataVector& m5CC, const G4DataVector& nPlusCC, - const G4DataVector& totalCC); - - G4NuclearLevel() {}; - ~G4NuclearLevel(); - - const G4DataVector& GammaEnergies() const; - - const G4DataVector& GammaWeights() const; - - const G4DataVector& GammaProbabilities() const; - - const G4DataVector& GammaCumulativeProbabilities() const; - - const G4DataVector& GammaPolarities() const; - - const G4DataVector& KConvertionProbabilities() const; - - const G4DataVector& L1ConvertionProbabilities() const; - - const G4DataVector& L2ConvertionProbabilities() const; - - const G4DataVector& L3ConvertionProbabilities() const; - - const G4DataVector& M1ConvertionProbabilities() const; - - const G4DataVector& M2ConvertionProbabilities() const; - - const G4DataVector& M3ConvertionProbabilities() const; - - const G4DataVector& M4ConvertionProbabilities() const; - - const G4DataVector& M5ConvertionProbabilities() const; - - const G4DataVector& NPlusConvertionProbabilities() const; - - const G4DataVector& TotalConvertionProbabilities() const; - - G4double Energy() const; - - G4double AngularMomentum() const; - - G4double HalfLife() const; - - G4int NumberOfGammas() const; - - void PrintAll() const; - - G4bool operator==(const G4NuclearLevel &right) const; - G4bool operator!=(const G4NuclearLevel &right) const; - G4bool operator<(const G4NuclearLevel &right) const; - -protected: - -private: - - // G4NuclearLevel(const G4NuclearLevel &right); - // const G4NuclearLevel& operator=(const G4NuclearLevel &right); - - void MakeProbabilities(); - void MakeCumProb(); - - G4DataVector _energies; - G4DataVector _weights; - G4DataVector _prob; - G4DataVector _cumProb; - G4DataVector _polarities; - G4DataVector _kCC; - G4DataVector _l1CC; - G4DataVector _l2CC; - G4DataVector _l3CC; - G4DataVector _m1CC; - G4DataVector _m2CC; - G4DataVector _m3CC; - G4DataVector _m4CC; - G4DataVector _m5CC; - G4DataVector _nPlusCC; - G4DataVector _totalCC; - - G4double _energy; - G4double _halfLife; - G4double _angularMomentum; - G4int _nGammas; - -}; - -#endif - - - - - - - - - - - - - - - - - - - - diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc deleted file mode 100644 index 10e90969dd..0000000000 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4FermiConfiguration.cc +++ /dev/null @@ -1,624 +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: G4FermiConfiguration.cc,v 1.12 2003/06/16 17:06:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Nov 1998) -// -// - - -#include "G4FermiConfiguration.hh" - -// Kappa = V/V_0 it is used in calculation of Coulomb energy -// Kappa is adimensional -const G4double G4FermiConfiguration::Kappa = 1.0; - -// r0 is the nuclear radius -const G4double G4FermiConfiguration::r0 = 1.3*fermi; - -// A Z Pol ExcitE -G4StableFermiFragment G4FermiConfiguration::Fragment00( 1, 0, 2, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment01( 1, 1, 2, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment02( 2, 1, 3, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment03( 3, 1, 2, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment04( 3, 2, 2, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment05( 4, 2, 1, 0.00*keV ); -G4He5FermiFragment G4FermiConfiguration::Fragment06( 5, 2, 4, 16.76*keV ); // He5 -G4Li5FermiFragment G4FermiConfiguration::Fragment07( 5, 3, 4, 16.66*keV ); // Li5 -G4StableFermiFragment G4FermiConfiguration::Fragment08( 6, 2, 1, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment09( 6, 3, 3, 0.00*keV ); - -G4StableFermiFragment G4FermiConfiguration::Fragment10( 6, 3, 1, 3.56*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment11( 7, 3, 4, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment12( 7, 3, 2, 0.48*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment13( 7, 4, 4, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment14( 7, 4, 2, 0.43*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment15( 8, 3, 5, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment16( 8, 3, 3, 0.98*keV ); -G4Be8FermiFragment G4FermiConfiguration::Fragment17( 8, 4, 1, 0.00*keV ); // Be8 -G4StableFermiFragment G4FermiConfiguration::Fragment18( 9, 4, 4, 0.00*keV ); -G4B9FermiFragment G4FermiConfiguration::Fragment19( 9, 5, 4, 0.00*keV ); // B9 - -G4StableFermiFragment G4FermiConfiguration::Fragment20( 10, 4, 1, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment21( 10, 4, 5, 3.37*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment22( 10, 4, 8, 5.96*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment23( 10, 4, 1, 6.18*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment24( 10, 4, 5, 6.26*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment25( 10, 5, 7, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment26( 10, 5, 3, 0.72*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment27( 10, 5, 1, 1.74*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment28( 10, 5, 3, 2.15*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment29( 10, 5, 5, 3.59*keV ); - -G4StableFermiFragment G4FermiConfiguration::Fragment30( 10, 6, 3, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment31( 10, 6, 5, 3.35*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment32( 11, 5, 4, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment33( 11, 5, 2, 2.13*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment34( 11, 5, 6, 4.44*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment35( 11, 5, 4, 5.02*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment36( 11, 5, 10, 6.76*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment37( 11, 5, 6, 7.29*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment38( 11, 5, 4, 7.98*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment39( 11, 5, 6, 8.56*keV ); - -G4StableFermiFragment G4FermiConfiguration::Fragment40( 11, 6, 4, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment41( 11, 6, 2, 2.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment42( 11, 6, 6, 4.32*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment43( 11, 6, 4, 4.80*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment44( 11, 6, 2, 6.34*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment45( 11, 6, 8, 6.48*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment46( 11, 6, 6, 6.90*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment47( 11, 6, 4, 7.50*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment48( 11, 6, 4, 8.10*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment49( 11, 6, 6, 8.42*keV ); - -G4StableFermiFragment G4FermiConfiguration::Fragment50( 11, 6, 8, 8.66*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment51( 12, 5, 3, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment52( 12, 5, 5, 0.95*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment53( 12, 5, 5, 1.67*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment54( 12, 5, 4, 2.65*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment55( 12, 6, 1, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment56( 12, 6, 5, 4.44*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment57( 13, 6, 2, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment58( 13, 6, 2, 3.09*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment59( 13, 6, 4, 3.68*keV ); - -G4StableFermiFragment G4FermiConfiguration::Fragment60( 13, 6, 6, 3.85*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment61( 13, 7, 2, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment62( 14, 6, 1, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment63( 14, 6, 3, 6.09*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment64( 14, 6, 8, 6.69*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment65( 14, 6, 6, 6.96*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment66( 14, 6, 5, 7.34*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment67( 14, 7, 3, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment68( 14, 7, 1, 2.31*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment69( 14, 7, 3, 3.95*keV ); - -G4StableFermiFragment G4FermiConfiguration::Fragment70( 14, 7, 1, 4.92*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment71( 14, 7, 5, 5.11*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment72( 14, 7, 3, 5.69*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment73( 14, 7, 7, 5.83*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment74( 14, 7, 3, 6.20*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment75( 14, 7, 7, 6.44*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment76( 14, 7, 5, 7.03*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment77( 15, 7, 2, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment78( 15, 7, 8, 5.28*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment79( 15, 7, 4, 6.32*keV ); - -G4StableFermiFragment G4FermiConfiguration::Fragment80( 15, 7, 10, 7.22*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment81( 15, 7, 8, 7.57*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment82( 15, 7, 2, 8.31*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment83( 15, 7, 4, 8.57*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment84( 15, 7, 14, 9.15*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment85( 15, 7, 14, 9.79*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment86( 15, 7, 8, 10.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment87( 15, 8, 2, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment88( 15, 8, 8, 5.22*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment89( 15, 8, 4, 6.18*keV ); - -G4StableFermiFragment G4FermiConfiguration::Fragment90( 15, 8, 10, 6.83*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment91( 15, 8, 8, 7.28*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment92( 16, 7, 5, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment93( 16, 7, 1, 0.12*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment94( 16, 7, 7, 0.30*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment95( 16, 7, 3, 0.40*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment96( 16, 8, 1, 0.00*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment97( 16, 8, 8, 6.10*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment98( 16, 8, 5, 6.92*keV ); -G4StableFermiFragment G4FermiConfiguration::Fragment99( 16, 8, 3, 7.12*keV ); - - - -G4VFermiFragment * G4FermiConfiguration::theListOfFragments[NumberOfFragments] = { - &G4FermiConfiguration::Fragment00, - &G4FermiConfiguration::Fragment01, - &G4FermiConfiguration::Fragment02, - &G4FermiConfiguration::Fragment03, - &G4FermiConfiguration::Fragment04, - &G4FermiConfiguration::Fragment05, - &G4FermiConfiguration::Fragment06, - &G4FermiConfiguration::Fragment07, - &G4FermiConfiguration::Fragment08, - &G4FermiConfiguration::Fragment09, - - &G4FermiConfiguration::Fragment10, - &G4FermiConfiguration::Fragment11, - &G4FermiConfiguration::Fragment12, - &G4FermiConfiguration::Fragment13, - &G4FermiConfiguration::Fragment14, - &G4FermiConfiguration::Fragment15, - &G4FermiConfiguration::Fragment16, - &G4FermiConfiguration::Fragment17, - &G4FermiConfiguration::Fragment18, - &G4FermiConfiguration::Fragment19, - - &G4FermiConfiguration::Fragment20, - &G4FermiConfiguration::Fragment21, - &G4FermiConfiguration::Fragment22, - &G4FermiConfiguration::Fragment23, - &G4FermiConfiguration::Fragment24, - &G4FermiConfiguration::Fragment25, - &G4FermiConfiguration::Fragment26, - &G4FermiConfiguration::Fragment27, - &G4FermiConfiguration::Fragment28, - &G4FermiConfiguration::Fragment29, - - &G4FermiConfiguration::Fragment30, - &G4FermiConfiguration::Fragment31, - &G4FermiConfiguration::Fragment32, - &G4FermiConfiguration::Fragment33, - &G4FermiConfiguration::Fragment34, - &G4FermiConfiguration::Fragment35, - &G4FermiConfiguration::Fragment36, - &G4FermiConfiguration::Fragment37, - &G4FermiConfiguration::Fragment38, - &G4FermiConfiguration::Fragment39, - - &G4FermiConfiguration::Fragment40, - &G4FermiConfiguration::Fragment41, - &G4FermiConfiguration::Fragment42, - &G4FermiConfiguration::Fragment43, - &G4FermiConfiguration::Fragment44, - &G4FermiConfiguration::Fragment45, - &G4FermiConfiguration::Fragment46, - &G4FermiConfiguration::Fragment47, - &G4FermiConfiguration::Fragment48, - &G4FermiConfiguration::Fragment49, - - &G4FermiConfiguration::Fragment50, - &G4FermiConfiguration::Fragment51, - &G4FermiConfiguration::Fragment52, - &G4FermiConfiguration::Fragment53, - &G4FermiConfiguration::Fragment54, - &G4FermiConfiguration::Fragment55, - &G4FermiConfiguration::Fragment56, - &G4FermiConfiguration::Fragment57, - &G4FermiConfiguration::Fragment58, - &G4FermiConfiguration::Fragment59, - - &G4FermiConfiguration::Fragment60, - &G4FermiConfiguration::Fragment61, - &G4FermiConfiguration::Fragment62, - &G4FermiConfiguration::Fragment63, - &G4FermiConfiguration::Fragment64, - &G4FermiConfiguration::Fragment65, - &G4FermiConfiguration::Fragment66, - &G4FermiConfiguration::Fragment67, - &G4FermiConfiguration::Fragment68, - &G4FermiConfiguration::Fragment69, - - &G4FermiConfiguration::Fragment70, - &G4FermiConfiguration::Fragment71, - &G4FermiConfiguration::Fragment72, - &G4FermiConfiguration::Fragment73, - &G4FermiConfiguration::Fragment74, - &G4FermiConfiguration::Fragment75, - &G4FermiConfiguration::Fragment76, - &G4FermiConfiguration::Fragment77, - &G4FermiConfiguration::Fragment78, - &G4FermiConfiguration::Fragment79, - - &G4FermiConfiguration::Fragment80, - &G4FermiConfiguration::Fragment81, - &G4FermiConfiguration::Fragment82, - &G4FermiConfiguration::Fragment83, - &G4FermiConfiguration::Fragment84, - &G4FermiConfiguration::Fragment85, - &G4FermiConfiguration::Fragment86, - &G4FermiConfiguration::Fragment87, - &G4FermiConfiguration::Fragment88, - &G4FermiConfiguration::Fragment89, - - &G4FermiConfiguration::Fragment90, - &G4FermiConfiguration::Fragment91, - &G4FermiConfiguration::Fragment92, - &G4FermiConfiguration::Fragment93, - &G4FermiConfiguration::Fragment94, - &G4FermiConfiguration::Fragment95, - &G4FermiConfiguration::Fragment96, - &G4FermiConfiguration::Fragment97, - &G4FermiConfiguration::Fragment98, - &G4FermiConfiguration::Fragment99 -}; - - - - - -G4FermiConfiguration::G4FermiConfiguration() -{ -} - -G4FermiConfiguration::G4FermiConfiguration(const G4FermiConfiguration &right) -{ - Index = right.Index; -} - - -G4FermiConfiguration::~G4FermiConfiguration() -{ -} - - -const G4FermiConfiguration & G4FermiConfiguration::operator=(const G4FermiConfiguration &right) -{ - Index = right.Index; - return *this; -} - - -G4bool G4FermiConfiguration::operator==(const G4FermiConfiguration &right) const -{ - if (Index.size() == right.Index.size()) { - for (unsigned int i = 0; i < Index.size(); i++) { - if (Index[i] != right.Index[i]) return false; - } - return true; - } - else return false; -} - -G4bool G4FermiConfiguration::operator!=(const G4FermiConfiguration &right) const -{ - return !(*this == right); -} - - -void G4FermiConfiguration::Initialize(const G4int max) -{ - Index.clear(); - for (G4int i = 0; i < max; i++) Index.push_back(1); -} - - -G4bool G4FermiConfiguration::SplitNucleus(const G4int A, const G4int Z) -{ - // Splits nucleus (A,Z) into K fragments - // Returns TRUE if splitting is succesful and FALSE in other case - - G4int K = Index.size(); - - - G4int L = 0; - G4int SumA = 0, SumZ = 0; - for (;;) { - L++; - if (L < K) { - // Index[L-1]++; - Index[L-1] = Index[L-1]+1; - if (Index[L-1] > Index[L]) { - Index[L-1] = 1; - continue; - } else { - SumA = 0; - for (G4int i = 1; i <= K; i++) SumA += theListOfFragments[Index[i-1]-1]->GetA(); - if (SumA > A) { - Index[L-1] = 1; - continue; - } else if (SumA < A) { - L = 0; - continue; - } else { - SumZ = 0; - for (G4int i = 1; i <= K; i++) SumZ += theListOfFragments[Index[i-1]-1]->GetZ(); - if (SumZ != Z) { - L = 0; - continue; - } else { - return true; - } - } - } - } else { - // Index[L-1]++; - Index[L-1] = Index[L-1]+1; - if (Index[L-1] > 100) { - return false; - } else { - SumA = 0; - for (G4int i = 1; i <= K; i++) SumA += theListOfFragments[Index[i-1]-1]->GetA(); - if (SumA < A) { - L = 0; - continue; - } else if (SumA == A) { - SumZ = 0; - for (G4int i = 1; i <= K; i++) SumZ += theListOfFragments[Index[i-1]-1]->GetZ(); - if (SumZ != Z) { - L = 0; - continue; - } else { - return true; - } - } else { - return false; - } - } - } - } -} - - -G4double G4FermiConfiguration::CoulombBarrier(void) -{ - // Calculates Coulomb Barrier (MeV) for given channel with K fragments. - const G4double Coef = (3./5.)*1.44*MeV*fermi* pow(1./(1.+Kappa), 1./3.)/r0; - - G4double SumA = 0, SumZ = 0; - G4double CoulombEnergy = 0.; - for (unsigned int i = 0; i < Index.size(); i++) { - G4double z = theListOfFragments[Index[i]-1]->GetZ(); - G4double a = theListOfFragments[Index[i]-1]->GetA(); - CoulombEnergy += (z*z) / pow(a, 1./3.); - SumA += a; - SumZ += z; - } - CoulombEnergy -= SumZ*SumZ/pow(SumA, 1./3.); - return -Coef * CoulombEnergy; -} - - - - -G4double G4FermiConfiguration::DecayProbability(const G4int A, const G4double TotalE) - // Decay probability for a given channel with K fragments -{ - // A: Atomic Weight - // TotalE: Total energy of nucleus (MeV) - - G4int K = Index.size(); - G4int i; - - const G4double NucleonMass = 938.0*MeV; - const G4double DimCoeff = pow(r0*sqrt(NucleonMass)/hbarc,3.0)*Kappa*sqrt(2.0/pi)/3.0; - - // Calculation of 1/Gamma(3(n-1)/2) - G4double InvGammaFunc = 1.0; - if (K <= 1) InvGammaFunc = 0.0; - else { - G4double arg = 3.0*(K-1)/2.0 - 1.0; - while (arg > 1.1) { - InvGammaFunc *= arg; - arg--; - } - - if ((K-1)%2 == 1) InvGammaFunc *= sqrt(pi)/2.0; - - InvGammaFunc = 1.0/InvGammaFunc; - } - - - G4double DeltaEnergy = TotalE; // MeV - G4double Weight = 0.; - G4double ProdAMass = 1.; - G4double ProdSpin = 1.; - - for (i = 0; iGetA(); - // Spin factor S_n - ProdSpin *= theListOfFragments[Index[i]-1]->GetPolarization(); - DeltaEnergy -= theListOfFragments[Index[i]-1]->GetFragmentMass() + - theListOfFragments[Index[i]-1]->GetExcitationEnergy(); - }; - - // Check that there is enough energy to produce K fragments - if ((DeltaEnergy -= CoulombBarrier()) <= 0.0) return Weight; // return 0.0 - - ProdAMass /= A; - ProdAMass *= sqrt(ProdAMass); - - if (K <= 2) { - Weight = InvGammaFunc*A*DimCoeff*ProdAMass*ProdSpin*sqrt(DeltaEnergy); - if (Index[0] == Index[1]) Weight *= 0.5; //Permutation factor G_n - } else { - G4double Base = A*DimCoeff*DeltaEnergy*sqrt(DeltaEnergy); - G4double Powered = 1.0; - G4double PermutationFactor = 1.0; - for (G4int i = 0; i < K-1; i++) { - Powered *= Base; - G4int N = 1; - for (G4int j = i+1; jGetIonTable()->GetIonMass(static_cast(theNucleus.GetZ()), - static_cast(theNucleus.GetA())); - - G4int i; - for (i = 0; i < K; i++) - AvalKineticEnergy -= theListOfFragments[Index[i]-1]->GetFragmentMass(); - - - // Calculate Momenta of K fragments - std::deque* MomentumComponents = - FragmentsMomentum(AvalKineticEnergy); - - - G4FragmentVector * theResult = new G4FragmentVector; - - // Go back to the Lab Frame - for (i = 0; i < K; i++) { - - G4LorentzVector FourMomentum(*(MomentumComponents->operator[](i))); - - - // Lorentz boost - FourMomentum.boost(theNucleus.GetMomentum().boostVector()); - - G4FragmentVector * fragment = theListOfFragments[Index[i]-1]->GetFragment(FourMomentum); - - for (G4FragmentVector::reverse_iterator ri = fragment->rbegin(); - ri != fragment->rend(); ++ri) - { - theResult->push_back(*ri); - } - delete fragment; - } - - if (!MomentumComponents->empty()) - { - std::for_each(MomentumComponents->begin(),MomentumComponents->end(), - DeleteFragment()); - } - - delete MomentumComponents; - - return theResult; -} - - - -std::deque* -G4FermiConfiguration::FragmentsMomentum(G4double KineticEnergy) -{ - // Calculates momentum for K fragments (Kopylov's method of sampling is used) - // KinetEnergy is the available kinetic energy - - - G4int K = Index.size(); - - - std::deque* MomentumList = - new std::deque(K); - - G4double AvalaibleMass = 0; - for (G4int i=0; iGetFragmentMass(); - - G4double PFragMagCM = 0.0; - G4double Mass = AvalaibleMass+KineticEnergy; - G4LorentzVector PFragCM(0.0,0.0,0.0,0.0); - G4LorentzVector PFragLab(0.0,0.0,0.0,0.0); - G4LorentzVector PRestCM(0.0,0.0,0.0,0.0); - G4LorentzVector PRestLab(0.0,0.0,0.0,Mass); - - for (G4int l = 0; l < K-1; l++) { - G4int LK = K - l; - G4double FragMass = theListOfFragments[Index[LK-1]-1]->GetFragmentMass(); - AvalaibleMass -= FragMass; - - if (LK > 2) KineticEnergy *= RNKSI(LK-1); - else KineticEnergy = 0.0; - - G4double RestMass = AvalaibleMass + KineticEnergy; - - PFragMagCM = sqrt( - abs((Mass*Mass - (FragMass + RestMass)*(FragMass + RestMass))* - (Mass*Mass - (FragMass - RestMass)*(FragMass - RestMass))) - )/ (2.0*Mass); - - - // Create a unit vector with a random direction isotropically distributed - G4ParticleMomentum RandVector(IsotropicVector(PFragMagCM)); - - PFragCM.setVect(RandVector); - // PFragCM.setE((Mass*Mass + FragMass*FragMass - RestMass*RestMass)/(2.0*Mass)); - PFragCM.setE(sqrt(RandVector.mag2()+FragMass*FragMass)); - - PRestCM.setVect(-RandVector); - // PRestCM.setE((Mass*Mass + RestMass*RestMass - FragMass*FragMass)/(2.0*Mass)); - PRestCM.setE(sqrt(RandVector.mag2()+RestMass*RestMass)); - - - G4ThreeVector BoostV = PRestLab.boostVector(); - - PFragLab = PFragCM; - PFragLab.boost(BoostV); - PRestLab = PRestCM; - PRestLab.boost(BoostV); - - // MomentumList->prepend(new G4LorentzVector(PFragLab)); - MomentumList->push_front(new G4LorentzVector(PFragLab)); - - Mass = RestMass; - } - - // MomentumList->prepend(new G4LorentzVector(PRestLab)); - MomentumList->push_front(new G4LorentzVector(PRestLab)); - return MomentumList; -} - - -G4double G4FermiConfiguration::RNKSI(const G4int K) -{ - G4double csim = (3.0*K-5.0)/(3.0*K-4.0); - G4double pex = (3.0*K-5.0)/2.0; - G4double fcsim = sqrt(1.0-csim)*pow(csim,pex); - - G4double csi = 0.0; - G4double fcsi= 0.0; - G4double rf = 0.0; - do { - csi = G4UniformRand(); - fcsi = sqrt(1.0-csi)*pow(csi,pex); - rf = fcsim*G4UniformRand(); - } while (rf > fcsi); - return csi; -} - -G4ParticleMomentum G4FermiConfiguration::IsotropicVector(const G4double Magnitude) - // Samples a isotropic random vectorwith a magnitud given by Magnitude. - // By default Magnitude = 1.0 -{ - G4double CosTheta = 1.0 - 2.0*G4UniformRand(); - G4double SinTheta = sqrt(1.0 - CosTheta*CosTheta); - G4double Phi = twopi*G4UniformRand(); - G4ParticleMomentum Vector(Magnitude*cos(Phi)*SinTheta, - Magnitude*sin(Phi)*SinTheta, - Magnitude*CosTheta); - return Vector; -} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc deleted file mode 100644 index 0cb9ffbc3d..0000000000 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4StatMFMicroPartition.cc +++ /dev/null @@ -1,330 +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: G4StatMFMicroPartition.cc,v 1.17 2003/06/16 17:06:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// by V. Lara -// -------------------------------------------------------------------- - -#include "G4StatMFMicroPartition.hh" - - - -// Copy constructor -G4StatMFMicroPartition::G4StatMFMicroPartition(const G4StatMFMicroPartition & ) -{ - G4Exception("G4StatMFMicroPartition::copy_constructor meant to not be accessable"); -} - -// Operators - -G4StatMFMicroPartition & G4StatMFMicroPartition:: -operator=(const G4StatMFMicroPartition & ) -{ - G4Exception("G4StatMFMicroPartition::operator= meant to not be accessable"); - return *this; -} - - -G4bool G4StatMFMicroPartition::operator==(const G4StatMFMicroPartition & ) const -{ -// G4Exception("G4StatMFMicroPartition::operator== meant to not be accessable"); - return false; -} - - -G4bool G4StatMFMicroPartition::operator!=(const G4StatMFMicroPartition & ) const -{ -// G4Exception("G4StatMFMicroPartition::operator!= meant to not be accessable"); - return true; -} - - - -void G4StatMFMicroPartition::CoulombFreeEnergy(const G4double anA) -{ - // This Z independent factor in the Coulomb free energy - G4double CoulombConstFactor = 1.0/ - pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1.0/3.0); - - CoulombConstFactor = elm_coupling*(3./5.)*(1. - CoulombConstFactor)/ - G4StatMFParameters::Getr0(); - - // We use the aproximation Z_f ~ Z/A * A_f - - if (anA == 0 || anA == 1) { - _theCoulombFreeEnergy.push_back(CoulombConstFactor*(theZ/theA)*(theZ/theA)); - } else if (anA == 2 || anA == 3 || anA == 4) { - // Z/A ~ 1/2 - _theCoulombFreeEnergy.push_back(CoulombConstFactor*0.5* - pow(anA,5./3.)); - } else { // anA > 4 - _theCoulombFreeEnergy.push_back(CoulombConstFactor*(theZ/theA)*(theZ/theA)* - pow(anA,5./3.)); - - } -} - - -G4double G4StatMFMicroPartition::GetCoulombEnergy(void) -{ - G4double CoulombFactor = 1.0/ - pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1.0/3.0); - - G4double CoulombEnergy = elm_coupling*(3./5.)*theZ*theZ*CoulombFactor/ - (G4StatMFParameters::Getr0()*pow(theA,1./3.)); - - - for (unsigned int i = 0; i < _thePartition.size(); i++) - CoulombEnergy += _theCoulombFreeEnergy[i] - elm_coupling*(3./5.)* - (theZ/theA)*(theZ/theA)*pow(_thePartition[i],5./3.)/ - G4StatMFParameters::Getr0(); - - - return CoulombEnergy; -} - -G4double G4StatMFMicroPartition::GetPartitionEnergy(const G4double T) -{ - G4double CoulombFactor = 1.0/ - pow(1.0+G4StatMFParameters::GetKappaCoulomb(),1.0/3.0); - - G4double PartitionEnergy = 0.0; - - - // We use the aprox that Z_f ~ Z/A * A_f - for (unsigned int i = 0; i < _thePartition.size(); i++) { - if (_thePartition[i] == 0 || _thePartition[i] == 1) { - - PartitionEnergy += _theCoulombFreeEnergy[i]; - - } else if (_thePartition[i] == 2) { - - PartitionEnergy += - -2.796 // Binding Energy of deuteron ?????? - + _theCoulombFreeEnergy[i]; - - } else if (_thePartition[i] == 3) { - - PartitionEnergy += - -9.224 // Binding Energy of trtion/He3 ?????? - + _theCoulombFreeEnergy[i]; - - } else if (_thePartition[i] == 4) { - - PartitionEnergy += - -30.11 // Binding Energy of ALPHA ?????? - + _theCoulombFreeEnergy[i] - + 4.*T*T/InvLevelDensity(4.); - - } else { - - PartitionEnergy += - //Volume term - (- G4StatMFParameters::GetE0() + - T*T/InvLevelDensity(_thePartition[i])) - *_thePartition[i] + - - // Symmetry term - G4StatMFParameters::GetGamma0()* - (1.0-2.0*theZ/theA)*(1.0-2.0*theZ/theA)*_thePartition[i] + - - // Surface term - (G4StatMFParameters::Beta(T) - T*G4StatMFParameters::DBetaDT(T))* - pow(_thePartition[i],2./3.) + - - // Coulomb term - _theCoulombFreeEnergy[i]; - - } - } - - PartitionEnergy += elm_coupling*(3./5.)*theZ*theZ*CoulombFactor/ - (G4StatMFParameters::Getr0()*pow(theA,1./3.)) - + (3./2.)*T*(_thePartition.size()-1); - - return PartitionEnergy; -} - - -G4double G4StatMFMicroPartition::CalcPartitionTemperature(const G4double U, - const G4double FreeInternalE0) -{ - G4double PartitionEnergy = GetPartitionEnergy(0.0); - - // If this happens, T = 0 MeV, which means that probability for this - // partition will be 0 - if (abs(U + FreeInternalE0 - PartitionEnergy) < 0.003) return -1.0; - - // Calculate temperature by midpoint method - - // Bracketing the solution - G4double Ta = 0.001; - G4double Tb = std::max(sqrt(8.0*U/theA),0.0012*MeV); - G4double Tmid = 0.0; - - G4double Da = (U + FreeInternalE0 - GetPartitionEnergy(Ta))/U; - G4double Db = (U + FreeInternalE0 - GetPartitionEnergy(Tb))/U; - - while (Da*Db > 0.0) { - Tb += 0.5*Tb; - Db = (U + FreeInternalE0 - GetPartitionEnergy(Tb))/U; - } - - G4double eps = 1.0e-14*abs(Ta-Tb); - - for (G4int i = 0; i < 1000; i++) { - Tmid = (Ta+Tb)/2.0; - if (abs(Ta-Tb) <= eps) return Tmid; - G4double Dmid = (U + FreeInternalE0 - GetPartitionEnergy(Tmid))/U; - if (abs(Dmid) < 0.003) return Tmid; - if (Da*Dmid < 0.0) { - Tb = Tmid; - Db = Dmid; - } else { - Ta = Tmid; - Da = Dmid; - } - } - // if we arrive here the temperature could not be calculated - G4cerr << "G4StatMFMicroPartition::CalcPartitionTemperature: I can't calculate the temperature" - << G4endl; - // and set probability to 0 returning T < 0 - return -1.0; - -} - - -G4double G4StatMFMicroPartition::CalcPartitionProbability(const G4double U, - const G4double FreeInternalE0, - const G4double SCompound) -{ - G4double T = CalcPartitionTemperature(U,FreeInternalE0); - if ( T <= 0.0) return _Probability = 0.0; - _Temperature = T; - - - // Factorial of fragment multiplicity - G4double Fact = 1.0; - unsigned int i; - for (i = 0; i < _thePartition.size() - 1; i++) { - G4double f = 1.0; - for (unsigned int ii = i+1; i< _thePartition.size(); i++) - if (_thePartition[i] == _thePartition[ii]) f++; - Fact *= f; - } - - G4double ProbDegeneracy = 1.0; - G4double ProbA32 = 1.0; - - for (i = 0; i < _thePartition.size(); i++) { - ProbDegeneracy *= GetDegeneracyFactor(static_cast(_thePartition[i])); - ProbA32 *= static_cast(_thePartition[i])*sqrt(static_cast(_thePartition[i])); - } - - // Compute entropy - G4double PartitionEntropy = 0.0; - for (i = 0; i < _thePartition.size(); i++) { - // interaction entropy for alpha - if (_thePartition[i] == 4) PartitionEntropy += - 2.0*T*_thePartition[i]/InvLevelDensity(_thePartition[i]); - // interaction entropy for Af > 4 - else if (_thePartition[i] > 4) PartitionEntropy += - 2.0*T*_thePartition[i]/InvLevelDensity(_thePartition[i]) - - G4StatMFParameters::DBetaDT(T)*pow(_thePartition[i],2.0/3.0); - } - - // Thermal Wave Lenght = sqrt(2 pi hbar^2 / nucleon_mass T) - G4double ThermalWaveLenght3 = 16.15*fermi/sqrt(T); - ThermalWaveLenght3 = ThermalWaveLenght3*ThermalWaveLenght3*ThermalWaveLenght3; - - // Translational Entropy - G4double kappa = (1. + elm_coupling*(pow(_thePartition.size(),1./3.)-1.0)/(G4StatMFParameters::Getr0()*pow(theA,1./3.))); - kappa = kappa*kappa*kappa; - kappa -= 1.; - G4double V0 = (4./3.)*pi*theA*G4StatMFParameters::Getr0()*G4StatMFParameters::Getr0()* - G4StatMFParameters::Getr0(); - G4double FreeVolume = kappa*V0; - G4double TranslationalS = std::max(0.0, log(ProbA32/Fact) + - (_thePartition.size()-1.0)*log(FreeVolume/ThermalWaveLenght3) + - 1.5*(_thePartition.size()-1.0) - (3./2.)*log(theA)); - - PartitionEntropy += log(ProbDegeneracy) + TranslationalS; - _Entropy = PartitionEntropy; - - // And finally compute probability of fragment configuration - G4double exponent = PartitionEntropy-SCompound; - if (exponent > 700.0) exponent = 700.0; - return _Probability = exp(exponent); -} - - - -G4double G4StatMFMicroPartition::GetDegeneracyFactor(const G4int A) -{ - // Degeneracy factors are statistical factors - // DegeneracyFactor for nucleon is (2S_n + 1)(2I_n + 1) = 4 - G4double DegFactor = 0; - if (A > 4) DegFactor = 1.0; - else if (A == 1) DegFactor = 4.0; // nucleon - else if (A == 2) DegFactor = 3.0; // Deuteron - else if (A == 3) DegFactor = 2.0+2.0; // Triton + He3 - else if (A == 4) DegFactor = 1.0; // alpha - return DegFactor; -} - - -G4StatMFChannel * G4StatMFMicroPartition::ChooseZ(const G4double A0, const G4double Z0, const G4double MeanT) - // Gives fragments charges -{ - std::vector FragmentsZ; - - G4int ZBalance = 0; - do { - G4double CC = G4StatMFParameters::GetGamma0()*8.0; - G4int SumZ = 0; - for (unsigned int i = 0; i < _thePartition.size(); i++) { - G4double ZMean; - G4double Af = _thePartition[i]; - if (Af > 1.5 && Af < 4.5) ZMean = 0.5*Af; - else ZMean = Af*Z0/A0; - G4double ZDispersion = sqrt(Af * MeanT/CC); - G4int Zf; - do { - Zf = static_cast(G4RandGauss::shoot(ZMean,ZDispersion)); - } while (Zf < 0 || Zf > Af); - FragmentsZ.push_back(Zf); - SumZ += Zf; - } - ZBalance = static_cast(Z0) - SumZ; - } while (abs(ZBalance) > 1.1); - FragmentsZ[0] += ZBalance; - - G4StatMFChannel * theChannel = new G4StatMFChannel; - for (unsigned int i = 0; i < _thePartition.size(); i++) - theChannel->CreateFragment(_thePartition[i],FragmentsZ[i]); - - - return theChannel; -} diff --git a/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc b/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc deleted file mode 100644 index ea88abe06a..0000000000 --- a/source/processes/hadronic/models/generator/de_excitation/src/G4UnstableFermiFragment.cc +++ /dev/null @@ -1,166 +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: G4UnstableFermiFragment.cc,v 1.10 2003/06/16 17:06:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// Hadronic Process: Nuclear De-excitations -// by V. Lara (Nov 1998) - -#include "G4UnstableFermiFragment.hh" - - -G4UnstableFermiFragment::G4UnstableFermiFragment() -{ -} - -G4UnstableFermiFragment::G4UnstableFermiFragment(const G4UnstableFermiFragment &) : G4VFermiFragment() -{ - G4Exception("G4UnstableFermiFragment::copy_constructor meant to not be accessable"); -} - - -G4UnstableFermiFragment::~G4UnstableFermiFragment() -{ -} - - -const G4UnstableFermiFragment & G4UnstableFermiFragment::operator=(const G4UnstableFermiFragment &) -{ - G4Exception("G4UnstableFermiFragment::operator= meant to not be accessable"); - return *this; -} - - -G4bool G4UnstableFermiFragment::operator==(const G4UnstableFermiFragment &) const -{ - return false; -} - -G4bool G4UnstableFermiFragment::operator!=(const G4UnstableFermiFragment &) const -{ - return true; -} - - -std::deque * -G4UnstableFermiFragment::FragmentsMomentum(G4double KinE, const G4int K, const G4double * Masses) - // Calculates momentum for K fragments (Kopylov's method of sampling is used) - // KinetEnergy is the available kinetic energy -{ - std::deque* MomentumList = - new std::deque(K); - - - G4double AvalaibleMass = 0; - for (G4int i=0; i 2) KinE *= RNKSI(LK-1); - else KinE = 0.0; - - G4double RestMass = AvalaibleMass + KinE; - - - PFragMagCM = sqrt( - abs((Mass*Mass - (FragMass + RestMass)*(FragMass + RestMass))* - (Mass*Mass - (FragMass - RestMass)*(FragMass - RestMass))) - )/(2.0*Mass); - - - // Create a unit vector with a random direction isotropically distributed - G4ParticleMomentum RandVector(IsotropicVector(PFragMagCM)); - - PFragCM.setVect(RandVector); - PFragCM.setE(sqrt(RandVector.mag2()+FragMass*FragMass)); - - PRestCM.setVect(-RandVector); - PRestCM.setE(sqrt(RandVector.mag2()+RestMass*RestMass)); - - - - G4ThreeVector BoostV = PRestLab.boostVector(); - - PFragLab = PFragCM; - PFragLab.boost(BoostV); - - PRestLab = PRestCM; - PRestLab.boost(BoostV); - - - MomentumList->push_front(new G4LorentzVector(PFragLab)); - - Mass = RestMass; - } - - MomentumList->push_front(new G4LorentzVector(PRestLab)); - return MomentumList; -} - - -G4double G4UnstableFermiFragment::RNKSI(const G4int K) -{ - G4double csim = (3.0*K-5.0)/(3.0*K-4.0); - G4double pex = 1.5*K-2.5; - G4double fcsim = sqrt(1.0-csim)*pow(csim,pex); - - G4double csi = 0.0; - G4double fcsi= 0.0; - G4double rf = 0.0; - do { - csi = G4UniformRand(); - fcsi = sqrt(1.0-csi)*pow(csi,pex); - rf = fcsim*G4UniformRand(); - } while (rf > fcsi); - return csi; -} - - - - -G4ParticleMomentum G4UnstableFermiFragment::IsotropicVector(const G4double Magnitude) - // Samples a isotropic random vectorwith a magnitud given by Magnitude. - // By default Magnitude = 1.0 -{ - G4double CosTheta = 1.0 - 2.0*G4UniformRand(); - G4double SinTheta = sqrt(1.0 - CosTheta*CosTheta); - G4double Phi = twopi*G4UniformRand(); - G4ParticleMomentum Vector(Magnitude*cos(Phi)*SinTheta, - Magnitude*sin(Phi)*SinTheta, - Magnitude*CosTheta); - return Vector; -} diff --git a/source/processes/hadronic/models/generator/string_fragmentation/GNUmakefile b/source/processes/hadronic/models/generator/string_fragmentation/GNUmakefile deleted file mode 100644 index 6383d1e3df..0000000000 --- a/source/processes/hadronic/models/generator/string_fragmentation/GNUmakefile +++ /dev/null @@ -1,39 +0,0 @@ -# $Id: GNUmakefile,v 1.3 2003/06/18 13:35:26 gcosmo Exp $ -# ----------------------------------------------------------- -# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. -# ----------------------------------------------------------- - -name := G4hadronic_stringfrag - -ifndef G4INSTALL - G4INSTALL = ../../../../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk - -CPPFLAGS += -I$(G4BASE)/global/management/include \ - -I$(G4BASE)/global/HEPRandom/include \ - -I$(G4BASE)/global/HEPNumerics/include \ - -I$(G4BASE)/global/HEPGeometry/include \ - -I$(G4BASE)/track/include \ - -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/processes/management/include \ - -I$(G4BASE)/processes/hadronic/management/include/ \ - -I$(G4BASE)/processes/hadronic/util/include \ - -I$(G4BASE)/processes/hadronic/processes/include \ - -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/models/generator/string_common/include \ - -I$(G4BASE)/particles/management/include \ - -I$(G4BASE)/particles/leptons/include \ - -I$(G4BASE)/particles/bosons/include \ - -I$(G4BASE)/particles/hadrons/mesons/include \ - -I$(G4BASE)/particles/hadrons/barions/include \ - -I$(G4BASE)/particles/hadrons/ions/include \ - -I$(G4BASE)/particles/shortlived/include \ - -I$(G4BASE)/materials/include - -include $(G4INSTALL)/config/common.gmk - diff --git a/source/processes/hadronic/models/high_energy/GNUmakefile b/source/processes/hadronic/models/high_energy/GNUmakefile index 586077ce95..d0134a3578 100644 --- a/source/processes/hadronic/models/high_energy/GNUmakefile +++ b/source/processes/hadronic/models/high_energy/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2003/06/18 13:21:51 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -18,6 +18,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/particles/management/include \ diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh index 3fae4ee2b2..4b388af558 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiKaonZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiKaonZeroInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiKaonZeroInelastic.hh,v 1.10 2003/07/01 15:42:21 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiKaonZeroInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh index 0ba6759abd..0b398f505f 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiLambdaInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiLambdaInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiLambdaInelastic.hh,v 1.10 2003/07/01 15:42:21 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiLambdaInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh index f1dc8b4942..a735fe95c3 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiNeutronInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiNeutronInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiNeutronInelastic.hh,v 1.10 2003/07/01 15:42:21 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiNeutronInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh index bf16110283..c5289f0594 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiOmegaMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiOmegaMinusInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiOmegaMinusInelastic.hh,v 1.10 2003/07/01 15:42:21 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiOmegaMinusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh index 3135406569..5b7e40d1b8 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiProtonInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiProtonInelastic.hh,v 1.10 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiProtonInelastic.hh,v 1.11 2003/07/01 15:42:21 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiProtonInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh index bf5ebbe5ee..81469fc6e7 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiSigmaMinusInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiSigmaMinusInelastic.hh,v 1.10 2003/07/01 15:42:21 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiSigmaMinusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh index 80520f74b1..87ecc454b3 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiSigmaPlusInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiSigmaPlusInelastic.hh,v 1.10 2003/07/01 15:42:21 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiSigmaPlusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh index 0abffa9914..64fec7efee 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiSigmaZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiSigmaZeroInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiSigmaZeroInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -57,7 +57,7 @@ class G4HEAntiSigmaZeroInelastic : public G4HEInelastic { MAXPART = maxnumber; }; void SetVerboseLevel(G4int verbose) { verboseLevel = verbose;}; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } }; diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh index e495adbabf..1a051ffdf3 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiXiMinusInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiXiMinusInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiXiMinusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh index d0474c1ab5..4a2104c387 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEAntiXiZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiXiZeroInelastic.hh,v 1.9 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiXiZeroInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEAntiXiZeroInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEInelastic.hh index 41b30d92ce..6843ce8668 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.10 2002/12/12 19:17:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 807257e528..6a343249ef 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEKaonMinusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEKaonMinusInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEKaonMinusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh index cff7da4778..8db3293382 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEKaonPlusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEKaonPlusInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEKaonPlusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh index b08349e2ff..e07f9ee0d6 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEKaonZeroInelastic.hh,v 1.8 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEKaonZeroInelastic.hh,v 1.9 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEKaonZeroInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh index 34e27a9009..4b7af38fde 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroLongInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEKaonZeroLongInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEKaonZeroLongInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -61,7 +61,7 @@ class G4HEKaonZeroLongInelastic : public G4HEInelastic G4int GetNumberOfSecondaries() { return vecLength;}; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); }; #endif diff --git a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh index 7b2f26ddaa..541c42ae1c 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEKaonZeroShortInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEKaonZeroShortInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEKaonZeroShortInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -59,7 +59,7 @@ class G4HEKaonZeroShortInelastic : public G4HEInelastic G4int GetNumberOfSecondaries() { return vecLength;}; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); }; #endif diff --git a/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh index 46cacd25c5..1f6e76bc37 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HELambdaInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HELambdaInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HELambdaInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HELambdaInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh index a52c4d3f7a..3969a9b3b2 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HENeutronInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HENeutronInelastic.hh,v 1.10 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HENeutronInelastic.hh,v 1.11 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HENeutronInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh index 9189b37321..a3f4a07575 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEOmegaMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEOmegaMinusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEOmegaMinusInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEOmegaMinusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh index b6532290c3..6ff95b02f8 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPionMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEPionMinusInelastic.hh,v 1.10 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEPionMinusInelastic.hh,v 1.11 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEPionMinusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh index 4b46696a7e..4b290d92e8 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEPionPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEPionPlusInelastic.hh,v 1.10 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEPionPlusInelastic.hh,v 1.11 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEPionPlusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh b/source/processes/hadronic/models/high_energy/include/G4HEPlot.hh index 203de7fa4d..2719628830 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.7 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 06faabfa95..cc81fdb830 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEProtonInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEProtonInelastic.hh,v 1.10 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEProtonInelastic.hh,v 1.11 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEProtonInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh index 100ddaa4c0..7f2d4a479d 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HESigmaMinusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HESigmaMinusInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HESigmaMinusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh index ee24da9139..980701ff76 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HESigmaPlusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HESigmaPlusInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HESigmaPlusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh index b02c744b41..d65e821662 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HESigmaZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HESigmaZeroInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HESigmaZeroInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -57,7 +57,7 @@ class G4HESigmaZeroInelastic : public G4HEInelastic { MAXPART = maxnumber; }; void SetVerboseLevel(G4int verbose) { verboseLevel = verbose;}; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } }; diff --git a/source/processes/hadronic/models/high_energy/include/G4HEVector.hh b/source/processes/hadronic/models/high_energy/include/G4HEVector.hh index 365fe083e5..869965a0f9 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEVector.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEVector.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEVector.hh,v 1.8 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEVector.hh,v 1.9 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha friend class G4KinematicParticle -- header file @@ -34,7 +34,7 @@ #include "G4ParticleMomentum.hh" #include "Randomize.hh" -#include "G4DynamicParticle.hh" +#include "G4HadProjectile.hh" class G4HEVector { @@ -60,7 +60,7 @@ class G4HEVector public: - G4HEVector(const G4DynamicParticle * aParticle); + G4HEVector(const G4HadProjectile * aParticle); G4HEVector() { diff --git a/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh index 68561419d2..b9a2f62d98 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEXiMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEXiMinusInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEXiMinusInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEXiMinusInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh b/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh index 2882a01b76..de38d26843 100644 --- a/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh +++ b/source/processes/hadronic/models/high_energy/include/G4HEXiZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEXiZeroInelastic.hh,v 1.9 2002/12/12 19:17:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEXiZeroInelastic.hh,v 1.10 2003/07/01 15:42:22 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -51,7 +51,7 @@ class G4HEXiZeroInelastic : public G4HEInelastic G4int vecLength; - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ); + G4HadFinalState * ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); G4int GetNumberOfSecondaries() { return vecLength; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc index e5c138f32e..ab863d593b 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiKaonZeroInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiKaonZeroInelastic.cc,v 1.9 2003/06/16 17:09:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiKaonZeroInelastic.cc,v 1.10 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiKaonZeroInelastic.hh" -G4VParticleChange * G4HEAntiKaonZeroInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiKaonZeroInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double atomicWeight = targetNucleus.GetN(); const G4double atomicNumber = targetNucleus.GetZ(); @@ -182,7 +181,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc index 7f51e84489..2c94a77f7c 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiLambdaInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiLambdaInelastic.cc,v 1.9 2003/06/16 17:09:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiLambdaInelastic.cc,v 1.10 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiLambdaInelastic.hh" -G4VParticleChange * G4HEAntiLambdaInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiLambdaInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double atomicWeight = targetNucleus.GetN(); const G4double atomicNumber = targetNucleus.GetZ(); @@ -182,7 +181,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc index 65d7ee7b83..34fc413fad 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiNeutronInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiNeutronInelastic.cc,v 1.9 2003/06/16 17:09:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiNeutronInelastic.cc,v 1.10 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiNeutronInelastic.hh" -G4VParticleChange * G4HEAntiNeutronInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiNeutronInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double atomicWeight = targetNucleus.GetN(); const G4double atomicNumber = targetNucleus.GetZ(); @@ -182,7 +181,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc index e0e2eba027..8b2afca878 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiOmegaMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiOmegaMinusInelastic.cc,v 1.9 2003/06/16 17:09:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiOmegaMinusInelastic.cc,v 1.10 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiOmegaMinusInelastic.hh" -G4VParticleChange * G4HEAntiOmegaMinusInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiOmegaMinusInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double atomicWeight = targetNucleus.GetN(); const G4double atomicNumber = targetNucleus.GetZ(); @@ -182,7 +181,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc index 24ef060b3c..27fe4a5891 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiProtonInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiProtonInelastic.cc,v 1.8 2002/12/12 19:18:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiProtonInelastic.cc,v 1.9 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiProtonInelastic.hh" -G4VParticleChange * G4HEAntiProtonInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiProtonInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double atomicWeight = targetNucleus.GetN(); const G4double atomicNumber = targetNucleus.GetZ(); @@ -182,7 +181,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc index 47c733b9b2..8e71232c2a 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiSigmaMinusInelastic.cc,v 1.9 2003/06/16 17:09:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiSigmaMinusInelastic.cc,v 1.10 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiSigmaMinusInelastic.hh" -G4VParticleChange * G4HEAntiSigmaMinusInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiSigmaMinusInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double atomicWeight = targetNucleus.GetN(); const G4double atomicNumber = targetNucleus.GetZ(); @@ -181,7 +180,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc index 1e3dd23e5f..9d388cdc0e 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaPlusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiSigmaPlusInelastic.cc,v 1.9 2003/06/16 17:09:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiSigmaPlusInelastic.cc,v 1.10 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiSigmaPlusInelastic.hh" -G4VParticleChange * G4HEAntiSigmaPlusInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiSigmaPlusInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double atomicWeight = targetNucleus.GetN(); const G4double atomicNumber = targetNucleus.GetZ(); @@ -182,7 +181,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc index 900cd52f1e..7769a150aa 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiSigmaZeroInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiSigmaZeroInelastic.cc,v 1.7 2002/12/12 19:18:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiSigmaZeroInelastic.cc,v 1.8 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -42,12 +42,11 @@ #include "G4HEAntiSigmaZeroInelastic.hh" #include "G4Gamma.hh" -G4VParticleChange * G4HEAntiSigmaZeroInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiSigmaZeroInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; G4HEVector incidentParticle(aParticle); G4HEAntiLambdaInelastic theAntiLambdaInelastic; theAntiLambdaInelastic.SetMaxNumberOfSecondaries(MAXPART); @@ -60,9 +59,9 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) (incidentTotalMomentum - pgam)/incidentTotalMomentum); G4DynamicParticle * aLambda = new G4DynamicParticle(); aLambda->SetDefinition(G4AntiLambda::AntiLambda()); - G4Track aLambdaTrack(aLambda, 0, aTrack.GetPosition()); aLambda->SetMomentum(incidentAntiLambda.getMomentum()); - G4VParticleChange * result = theAntiLambdaInelastic.ApplyYourself(aLambdaTrack, targetNucleus); + G4HadProjectile aLambdaTrack(*aLambda); + G4HadFinalState * result = theAntiLambdaInelastic.ApplyYourself(aLambdaTrack, targetNucleus); vecLength = theAntiLambdaInelastic.GetNumberOfSecondaries(); pv[vecLength] = Gamma; pv[vecLength].setMomentum(incidentParticle.getMomentum()); @@ -70,8 +69,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) G4DynamicParticle * aPhoton = new G4DynamicParticle(); aPhoton->SetDefinition(G4Gamma::Gamma()); aPhoton->SetMomentum(pv[vecLength].getMomentum()); - G4Track * aGammaTrack = new G4Track(aPhoton, aTrack.GetGlobalTime(), aTrack.GetPosition()); - result->AddSecondary(aGammaTrack); + result->AddSecondary(aPhoton); delete [] pv; return result; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc index 53414fec8c..36b5d6fb57 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiXiMinusInelastic.cc,v 1.9 2003/06/16 17:09:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiXiMinusInelastic.cc,v 1.10 2003/07/01 15:42:23 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiXiMinusInelastic.hh" -G4VParticleChange * G4HEAntiXiMinusInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiXiMinusInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double A = targetNucleus.GetN(); const G4double Z = targetNucleus.GetZ(); @@ -185,7 +184,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc index 59a5ebaf60..2f6933f59b 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEAntiXiZeroInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEAntiXiZeroInelastic.cc,v 1.9 2003/06/16 17:09:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEAntiXiZeroInelastic.cc,v 1.10 2003/07/01 15:42:24 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEAntiXiZeroInelastic.hh" -G4VParticleChange * G4HEAntiXiZeroInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEAntiXiZeroInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double A = targetNucleus.GetN(); const G4double Z = targetNucleus.GetZ(); @@ -186,7 +185,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc index 6ed6924d82..f1efde37b6 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEInelastic.cc @@ -51,7 +51,7 @@ void G4HEInelastic::FillParticleChange(G4HEVector pv[], G4int aVecLength) { - theParticleChange.SetNumberOfSecondaries( aVecLength ); + theParticleChange.Clear(); for (G4int i=0; iSetDefinition(G4Lambda::Lambda()); - G4Track aLambdaTrack(aLambda, 0, aTrack.GetPosition()); aLambda->SetMomentum(incidentLambda.getMomentum()); - G4VParticleChange * result = theLambdaInelastic.ApplyYourself(aLambdaTrack, targetNucleus); + G4HadProjectile aLambdaTrack(*aLambda); + G4HadFinalState * result = theLambdaInelastic.ApplyYourself(aLambdaTrack, targetNucleus); vecLength = theLambdaInelastic.GetNumberOfSecondaries(); pv[vecLength] = Gamma; @@ -73,8 +72,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) G4DynamicParticle * aPhoton = new G4DynamicParticle(); aPhoton->SetDefinition(G4Gamma::Gamma()); aPhoton->SetMomentum(pv[vecLength].getMomentum()); - G4Track * aGammaTrack = new G4Track(aPhoton, aTrack.GetGlobalTime(), aTrack.GetPosition()); - result->AddSecondary(aGammaTrack); + result->AddSecondary(aPhoton); delete [] pv; return result; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEVector.cc b/source/processes/hadronic/models/high_energy/src/G4HEVector.cc index 2eb35cf074..a5f97082cd 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEVector.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEVector.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEVector.cc,v 1.13 2002/12/12 19:18:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEVector.cc,v 1.14 2003/07/01 15:42:25 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -36,16 +36,17 @@ // Fesefeldt, bug fixed in Defs1, 14 August 2000 #include "G4HEVector.hh" +#include "G4ParticleDefinition.hh" -G4HEVector::G4HEVector(const G4DynamicParticle * aParticle) +G4HEVector::G4HEVector(const G4HadProjectile * aParticle) { - G4ThreeVector aMom = 1./GeV*aParticle->GetMomentum(); + G4ThreeVector aMom = 1./GeV*aParticle->Get4Momentum().vect(); px = aMom.x(); py = aMom.y(); pz = aMom.z(); energy = aParticle->GetTotalEnergy()/GeV; kineticEnergy = aParticle->GetKineticEnergy()/GeV; - mass = aParticle->GetMass()/GeV; + mass = aParticle->GetDefinition()->GetPDGMass()/GeV; charge = aParticle->GetDefinition()->GetPDGCharge()/eplus; timeOfFlight = 0.0; side = 0; diff --git a/source/processes/hadronic/models/high_energy/src/G4HEXiMinusInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEXiMinusInelastic.cc index 5546d684f4..c52d7d4ec4 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEXiMinusInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEXiMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEXiMinusInelastic.cc,v 1.9 2003/06/16 17:10:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEXiMinusInelastic.cc,v 1.10 2003/07/01 15:42:25 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEXiMinusInelastic.hh" -G4VParticleChange * G4HEXiMinusInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEXiMinusInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double A = targetNucleus.GetN(); const G4double Z = targetNucleus.GetZ(); @@ -185,7 +184,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/high_energy/src/G4HEXiZeroInelastic.cc b/source/processes/hadronic/models/high_energy/src/G4HEXiZeroInelastic.cc index cfb7ca95d6..7ad1799df0 100644 --- a/source/processes/hadronic/models/high_energy/src/G4HEXiZeroInelastic.cc +++ b/source/processes/hadronic/models/high_energy/src/G4HEXiZeroInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HEXiZeroInelastic.cc,v 1.9 2003/06/16 17:10:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HEXiZeroInelastic.cc,v 1.10 2003/07/01 15:42:25 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -41,12 +41,11 @@ #include "G4HEXiZeroInelastic.hh" -G4VParticleChange * G4HEXiZeroInelastic:: -ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) +G4HadFinalState * G4HEXiZeroInelastic:: +ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { G4HEVector * pv = new G4HEVector[MAXPART]; - theParticleChange.Initialize( aTrack ); - const G4DynamicParticle *aParticle = aTrack.GetDynamicParticle(); + const G4HadProjectile *aParticle = &aTrack; // G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); const G4double A = targetNucleus.GetN(); const G4double Z = targetNucleus.GetZ(); @@ -185,7 +184,7 @@ ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) } FillParticleChange(pv, vecLength); delete [] pv; - theParticleChange.SetStatusChange(fStopAndKill); + theParticleChange.SetStatusChange(stopAndKill); return & theParticleChange; } diff --git a/source/processes/hadronic/models/generator/scattering/GNUmakefile b/source/processes/hadronic/models/im_r_matrix/GNUmakefile similarity index 84% rename from source/processes/hadronic/models/generator/scattering/GNUmakefile rename to source/processes/hadronic/models/im_r_matrix/GNUmakefile index 399e549787..dfc11e05de 100644 --- a/source/processes/hadronic/models/generator/scattering/GNUmakefile +++ b/source/processes/hadronic/models/im_r_matrix/GNUmakefile @@ -1,12 +1,12 @@ -# $Id: GNUmakefile,v 1.2 2003/06/18 13:33:43 gcosmo Exp $ +# $Id: GNUmakefile,v 1.2 2003/11/26 10:17:36 gcosmo Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_scattering +name := G4had_im_r_matrix ifndef G4INSTALL - G4INSTALL = ../../../../../.. + G4INSTALL = ../../../../.. endif include $(G4INSTALL)/config/architecture.gmk @@ -24,8 +24,8 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ diff --git a/source/processes/hadronic/models/im_r_matrix/README b/source/processes/hadronic/models/im_r_matrix/README new file mode 100644 index 0000000000..c90cf08088 --- /dev/null +++ b/source/processes/hadronic/models/im_r_matrix/README @@ -0,0 +1,2 @@ +The tuning of resonances can still improve in a iteration on short-lived particles. + diff --git a/source/processes/hadronic/models/im_r_matrix/TAGINFO b/source/processes/hadronic/models/im_r_matrix/TAGINFO new file mode 100644 index 0000000000..9759ac3291 --- /dev/null +++ b/source/processes/hadronic/models/im_r_matrix/TAGINFO @@ -0,0 +1,11 @@ +scattering-baseline-0: + + nucleon nucleon and pion nucleon scattering included, and technically tested to run. + + nucleon nucleon: + - elastic for pp, np, pn, nn + - resonance creation: ND, DD, ND*, DD*, NN*, DN* channels included + + pion nucleon: + - elastic pi+-0 n/p scattering + - piN->Resonance: D, D*, N* included. diff --git a/source/processes/hadronic/models/im_r_matrix/elastic.logbook b/source/processes/hadronic/models/im_r_matrix/elastic.logbook new file mode 100644 index 0000000000..f427f33641 --- /dev/null +++ b/source/processes/hadronic/models/im_r_matrix/elastic.logbook @@ -0,0 +1,31 @@ +done - G4CollisionNNElastic.hh +done - G4CollisionnpElastic.hh +done - G4CollisionNDeltaElastic.hh +done - G4CollisionMesonBaryonElastic.hh +not needed G4CollisionNDeltastarElastic.hh +G4CollisionDeltaDeltaElastic.hh +G4CollisionDeltaDeltastarElastic.hh +G4CollisionMesonMesonElastic.hh +G4CollisionBaryonAntiBaryonElastic.hh +G4CollisionBaryonBaryonElastic.hh +G4CollisionDeltaNstarElastic.hh +G4CollisionNNstarElastic.hh +G4CollisionStarStarElastic.hh + +delta(1600)", "delta(1620)", "delta(1700)", "delta(1900)", "delta(1905)", + "delta(1910)", "delta(1920)", "delta(1930)", "delta(1950)" + + "N(1440)", "N(1520)", "N(1535)", "N(1650)", "N(1675)", + "N(1680)", "N(1700)", "N(1710)", "N(1720)", "N(1900)", + "N(1990)", "N(2090)", "N(2190)", "N(2220)", "N(2250)" + + { "b1(1235)", "h1(1170)", "h1(1380)", "k1(1270)", "k1(1270)" }, + { "a0(1450)", "f0(1370)", "", "k0_star(1430)", "k0_star(1430)" }, + { "a1(1260)", "f1(1285)", "f1(1420)", "k1(1400)", "k1(1400)" }, + { "a2(1320)", "f2(1270)","f2_prime(1525)","k2_star(1430)","k2_star(1430)"}, + {"pi2(1670)", "eta2(1645)", "eta2(1870)", "k2(1770)", "k2(1770)" }, + {"rho(1700)", "omega(1600)", "", "k_star(1680)", "k_star(1680)" }, + {"rho3(1690)","omega3(1670)","phi3(1850)", "k3_star(1780)", "k3_star(1780)" }, + { "pi(1300)", "eta(1295)", "eta(1440)", "k(1460)", "k(1460)" }, + {"rho(1450)","omega(1420)", "phi(1680)", "k_star(1410)", "k_star(1410)" }, + { "", "f2(1810)", "f2(2010)", "k2_star(1980)", "k2_star(1980)" } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistribution.hh b/source/processes/hadronic/models/im_r_matrix/include/G4AngularDistribution.hh similarity index 93% rename from source/processes/hadronic/models/generator/scattering/include/G4AngularDistribution.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4AngularDistribution.hh index 1a04a08869..bbb881efb0 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistribution.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4AngularDistribution.hh @@ -21,18 +21,6 @@ // ******************************************************************** // // -// ------------------------------------------------------------------- -// GEANT4 Class file -// -// -// File name: G4AngularDistribution -// -// Author: Maria Grazia Pia (MariaGrazia.Pia@genova.infn.it) -// -// Creation date: 15 April 2000 -// -// Modifications: -// // Angular distribution according to: // G. Mao et al., Phys. Rev. C57 (1998) 1938 // G. Mao et al., Phys. Rev. C53 (1996) 2933 diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNP.hh b/source/processes/hadronic/models/im_r_matrix/include/G4AngularDistributionNP.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNP.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4AngularDistributionNP.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNPData.hh b/source/processes/hadronic/models/im_r_matrix/include/G4AngularDistributionNPData.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionNPData.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4AngularDistributionNPData.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPP.hh b/source/processes/hadronic/models/im_r_matrix/include/G4AngularDistributionPP.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPP.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4AngularDistributionPP.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPPData.hh b/source/processes/hadronic/models/im_r_matrix/include/G4AngularDistributionPPData.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4AngularDistributionPPData.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4AngularDistributionPPData.hh diff --git a/examples/advanced/composite_calorimeter/include/G4VNeutronBuilder.hh b/source/processes/hadronic/models/im_r_matrix/include/G4BCAction.hh similarity index 72% rename from examples/advanced/composite_calorimeter/include/G4VNeutronBuilder.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4BCAction.hh index 7ee1913f04..6fb9ffae95 100644 --- a/examples/advanced/composite_calorimeter/include/G4VNeutronBuilder.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4BCAction.hh @@ -20,24 +20,25 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4VNeutronBuilder_h -#define G4VNeutronBuilder_h +#ifndef G4BCAction_h +#define G4BCAction_h 1 +#include "G4CollisionInitialState.hh" +#include "G4KineticTrack.hh" +#include -class G4HadronElasticProcess; -class G4HadronFissionProcess; -class G4HadronCaptureProcess; -class G4NeutronInelasticProcess; - -class G4VNeutronBuilder +class G4BCAction { 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; -}; -// 2002 by J.P. Wellisch + + G4BCAction(){} + virtual ~G4BCAction(){} + virtual const std::vector & + GetCollisions(G4KineticTrack * aProjectile, + std::vector & someCandidates, + G4double aCurrentTime) = 0; + virtual G4KineticTrackVector * + GetFinalState(G4KineticTrack * aProjectile, + std::vector & theTargets) = 0; +}; #endif diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4StoppingHadronBuilder.hh b/source/processes/hadronic/models/im_r_matrix/include/G4BCDecay.hh similarity index 58% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4StoppingHadronBuilder.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4BCDecay.hh index 933f5b5ded..2ec32b479c 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/include/G4StoppingHadronBuilder.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4BCDecay.hh @@ -20,46 +20,46 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4StoppingHadronBuilder_h -#define G4StoppingHadronBuilder_h 1 - -#include "globals.hh" -#include "G4ios.hh" +#ifndef G4BCDecay_h +#define G4BCDecay_h 1 +#include "G4BCAction.hh" +#include "G4CollisionInitialState.hh" +#include "G4KineticTrack.hh" +#include "G4KineticTrackVector.hh" #include - -// At rest processes -#include "G4AntiProtonAnnihilationAtRest.hh" -#include "G4AntiNeutronAnnihilationAtRest.hh" -#include "G4PionMinusAbsorptionAtRest.hh" -#include "G4KaonMinusAbsorption.hh" - -class G4StoppingHadronBuilder +class G4BCDecay : public G4BCAction { - public: - G4StoppingHadronBuilder(); - virtual ~G4StoppingHadronBuilder(); - - public: - virtual void Build(); + public: + + G4BCDecay(){} + virtual ~G4BCDecay(){} + virtual const std::vector & + GetCollisions(G4KineticTrack * aProjectile, + std::vector & , + G4double theCurrentTime) + { + theColl.clear(); + if(aProjectile->GetDefinition()->IsShortLived()) + { + G4double aTime = theCurrentTime+aProjectile->SampleResidualLifetime(); + G4KineticTrackVector noTarget; + G4CollisionInitialState * aDecay = + new G4CollisionInitialState(aTime, aProjectile, noTarget, this); + theColl.push_back(aDecay); + } + return theColl; + } + virtual G4KineticTrackVector * GetFinalState(G4KineticTrack * aProjectile, + std::vector & ) + { + return aProjectile->Decay(); + } + private: - - // Pi - - G4PionMinusAbsorptionAtRest thePionMinusAbsorption; - - // K - - G4KaonMinusAbsorption theKaonMinusAbsorption; - - // anti-proton - G4AntiProtonAnnihilationAtRest theAntiProtonAnnihilation; - - // anti-neutron - G4AntiNeutronAnnihilationAtRest theAntiNeutronAnnihilation; - + + std::vector theColl; }; -// 2002 by J.P. Wellisch - #endif - diff --git a/source/processes/hadronic/models/generator/scattering/include/G4BaryonPartialWidth.hh b/source/processes/hadronic/models/im_r_matrix/include/G4BaryonPartialWidth.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4BaryonPartialWidth.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4BaryonPartialWidth.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4BaryonWidth.hh b/source/processes/hadronic/models/im_r_matrix/include/G4BaryonWidth.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4BaryonWidth.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4BaryonWidth.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4Clebsch.hh b/source/processes/hadronic/models/im_r_matrix/include/G4Clebsch.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4Clebsch.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4Clebsch.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionComposite.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionComposite.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionComposite.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionComposite.hh index 22bd01ba66..08e114d3a9 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionComposite.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionComposite.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionComposite.hh,v 1.9 2003/06/16 17:07:53 gunter Exp $ +// $Id: G4CollisionComposite.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // ------------------------------------------------------------------- // GEANT4 Class file // @@ -40,6 +40,7 @@ #define G4CollisionComposite_h #include "globals.hh" +#include "G4HadronicException.hh" #include "G4VCollision.hh" #include "G4CollisionVector.hh" #include "G4KineticTrackVector.hh" diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionInitialState.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionInitialState.hh similarity index 61% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionInitialState.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionInitialState.hh index ffaf075e49..f7c42f7809 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionInitialState.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionInitialState.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4CollisionInitialState.hh,v 1.2 2002/12/12 19:17:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4CollisionInitialState.hh,v 1.4 2003/11/19 17:52:59 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: G4CollisionInitialState.hh,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- @@ -36,6 +36,10 @@ #define G4CollisionInitialState_hh #include "G4KineticTrack.hh" +#include "G4KineticTrackVector.hh" +#include "G4HadTmpUtil.hh" + +class G4BCAction; class G4CollisionInitialState { @@ -44,6 +48,11 @@ public: G4CollisionInitialState(); G4CollisionInitialState(G4double time, G4KineticTrack * aPrimary, G4KineticTrack * aTarget); +// +new interface post pion: + G4CollisionInitialState(G4double time, G4KineticTrack * aPrimary, + const G4KineticTrackVector & aTarget, + G4BCAction * aFSGenerator); +// -new interface post pion: G4CollisionInitialState(G4CollisionInitialState & right); @@ -57,20 +66,60 @@ public: int operator==(const G4CollisionInitialState& right) const {return (theCollisionTime == right.theCollisionTime);} - G4KineticTrack * GetPrimary(void) {return thePrimary;} - void SetPrimary(G4KineticTrack * aPrimary) {thePrimary = aPrimary;} + G4KineticTrack * GetPrimary(void) + {return thePrimary;} + void SetPrimary(G4KineticTrack * aPrimary) + {thePrimary = aPrimary;} - G4KineticTrack * GetTarget(void) {return theTarget;} - void SetTarget(G4KineticTrack * aTarget) {theTarget = aTarget;} + G4KineticTrack * GetTarget(void) + {return theTarget;} + void SetTarget(G4KineticTrack * aTarget) + {theTarget = aTarget;} - G4double GetCollisionTime(void) {return theCollisionTime;} - void SetCollisionTime(G4double value) {theCollisionTime = value;} +// +new interface post pion: + void AddTarget(G4KineticTrack * aTarget) + {theTs.push_back(aTarget);} + G4KineticTrackVector & GetTargetCollection(void) + {return theTs;} + G4KineticTrackVector * GetFinalState(); + G4int GetTargetBaryonNumber() + { + G4double result=0; + for(size_t i=0; iGetDefinition()->GetBaryonNumber(); + } + return G4lrint(result); + } + G4int GetTargetCharge() + { + G4double result=0; + for(size_t i=0; iGetDefinition()->GetPDGCharge(); + } + return G4lrint(result); + } + +// -new interface post pion: + G4double GetCollisionTime(void) + {return theCollisionTime;} + void SetCollisionTime(G4double value) + {theCollisionTime = value;} + +// for debugging only + G4BCAction * GetGenerator() + { + return theFSGenerator; + } private: G4double theCollisionTime; G4KineticTrack * thePrimary; G4KineticTrack * theTarget; + G4KineticTrackVector theTs; + G4BCAction * theFSGenerator; }; #endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionManager.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionManager.hh similarity index 95% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionManager.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionManager.hh index 909d49b9c9..4dd39bf048 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionManager.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionManager.hh @@ -39,6 +39,10 @@ public: G4int Entries(); void AddCollision(G4double time, G4KineticTrack * proj, G4KineticTrack * target = NULL); + void AddCollision(G4CollisionInitialState * collision) + { + theCollisionList->push_back(collision); + } void RemoveCollision(G4CollisionInitialState * collision); void RemoveTracksCollisions(G4KineticTrackVector * ktv); void ClearAndDestroy(); diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryon.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryon.hh similarity index 92% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryon.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryon.hh index 62d49b46e6..6031b57c2e 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryon.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryon.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionMesonBaryon.hh,v 1.7 2003/06/16 17:07:54 gunter Exp $ // +// $Id: G4CollisionMesonBaryon.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // // ------------------------------------------------------------------- // GEANT4 Class file // @@ -65,7 +65,7 @@ protected: std::vector result; virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta::GetListOfColliders. Please find out why!"); return result; } }; diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonElastic.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryonElastic.hh similarity index 96% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonElastic.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryonElastic.hh index 7655ee918b..917fec5c7e 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonElastic.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryonElastic.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionMesonBaryonElastic.hh,v 1.8 2003/06/16 17:07:55 gunter Exp $ // +// $Id: G4CollisionMesonBaryonElastic.hh,v 1.1 2003/10/07 12:37:26 hpw Exp $ // #ifndef G4CollisionMesonBaryonElastic_h #define G4CollisionMesonBaryonElastic_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonToResonance.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryonToResonance.hh similarity index 93% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonToResonance.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryonToResonance.hh index 3b391be395..ea30ab1c68 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionMesonBaryonToResonance.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionMesonBaryonToResonance.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionMesonBaryonToResonance.hh,v 1.9 2003/06/16 17:07:56 gunter Exp $ // +// $Id: G4CollisionMesonBaryonToResonance.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // #ifndef G4CollisionMesonBaryonToResonance_h #define G4CollisionMesonBaryonToResonance_h @@ -78,7 +78,7 @@ protected: virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionMesonBaryonToResonance::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionMesonBaryonToResonance::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNN.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNN.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNN.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNN.hh index df4555313d..4e0ac41c05 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNN.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNN.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNN.hh,v 1.5 2003/06/16 17:07:57 gunter Exp $ // +// $Id: G4CollisionNN.hh,v 1.1 2003/10/07 12:37:26 hpw Exp $ // #ifndef G4CollisionNN_h #define G4CollisionNN_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNElastic.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNElastic.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNElastic.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNElastic.hh index 53a3520a9a..2a051e1df5 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNElastic.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNElastic.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNElastic.hh,v 1.4 2003/06/16 17:07:58 gunter Exp $ // +// $Id: G4CollisionNNElastic.hh,v 1.1 2003/10/07 12:37:26 hpw Exp $ // #ifndef G4CollisionNNElastic_h #define G4CollisionNNElastic_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta.hh similarity index 91% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta.hh index 09e166a6af..5d21cc058c 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta.hh,v 1.9 2003/06/16 17:07:59 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // #ifndef G4CollisionNNToDeltaDelta_h #define G4CollisionNNToDeltaDelta_h @@ -49,7 +49,7 @@ protected: std::vector result; virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta::GetListOfColliders. Please find out why!"); return result; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1600.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1600.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1600.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1600.hh index ee195ffd6f..36fe9c30a3 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1600.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1600.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1600_h #define G4CollisionNNToDeltaDelta1600_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1600) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1600::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1600::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1620.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1620.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1620.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1620.hh index 0be2929d2b..c84f100a43 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1620.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1620.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1620_h #define G4CollisionNNToDeltaDelta1620_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1620) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1620::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1620::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1700.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1700.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1700.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1700.hh index 9e6878ce83..1a06a77ccb 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1700.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1700.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1700_h #define G4CollisionNNToDeltaDelta1700_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1700) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1700::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1700::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1900.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1900.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1900.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1900.hh index 20dc13ae16..24e18e2f20 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1900.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1900.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1900_h #define G4CollisionNNToDeltaDelta1900_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1900) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1900::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1900::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1905.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1905.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1905.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1905.hh index 18195b95f3..17d1bc7b62 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1905.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1905.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1905_h #define G4CollisionNNToDeltaDelta1905_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1905) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1905::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1905::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1910.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1910.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1910.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1910.hh index caf8dc97eb..8fdf6eb78f 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1910.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1910.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1910_h #define G4CollisionNNToDeltaDelta1910_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1910) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1910::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1910::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1920.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1920.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1920.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1920.hh index 36ce1e3532..e8f4871662 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1920.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1920.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1920_h #define G4CollisionNNToDeltaDelta1920_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1920) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1920::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1920::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1930.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1930.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1930.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1930.hh index e31f180f19..b3d405d6e2 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1930.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1930.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1930_h #define G4CollisionNNToDeltaDelta1930_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1930) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1930::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1930::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1950.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1950.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1950.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1950.hh index cf06fe3a24..346dbf9f51 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDelta1950.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDelta1950.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToDeltaDelta1950_h #define G4CollisionNNToDeltaDelta1950_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> Delta Delta(1950) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaDelta1950::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaDelta1950::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDeltastar.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDeltastar.hh similarity index 90% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDeltastar.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDeltastar.hh index 2122c77e2d..12abd8e5b4 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaDeltastar.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaDeltastar.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDeltastar.hh,v 1.9 2003/06/16 17:08:09 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDeltastar.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // #ifndef G4CollisionNNToDeltaDeltastar_h #define G4CollisionNNToDeltaDeltastar_h @@ -51,7 +51,7 @@ protected: std::vector result; virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDeltastar::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDeltastar::GetListOfColliders. Please find out why!"); return result; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaNstar.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaNstar.hh similarity index 90% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaNstar.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaNstar.hh index 3879730a33..840fd4eb52 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToDeltaNstar.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToDeltaNstar.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaNstar.hh,v 1.8 2003/06/16 17:08:10 gunter Exp $ // +// $Id: G4CollisionNNToDeltaNstar.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // #ifndef G4CollisionNNToDeltaNstar_h #define G4CollisionNNToDeltaNstar_h @@ -49,7 +49,7 @@ protected: std::vector result; virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToDeltaNstar::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToDeltaNstar::GetListOfColliders. Please find out why!"); return result; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta.hh index 703b81ebe1..1cdcea050c 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta_h #define G4CollisionNNToNDelta_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1600.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1600.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1600.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1600.hh index 6449dda286..629cee6e4c 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1600.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1600.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1600_h #define G4CollisionNNToNDelta1600_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1600) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1600::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1600::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1620.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1620.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1620.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1620.hh index 8f44a37233..3581b403da 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1620.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1620.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1620_h #define G4CollisionNNToNDelta1620_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1620) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1620::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1620::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1700.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1700.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1700.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1700.hh index 23e60b31be..ff98517c29 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1700.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1700.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1700_h #define G4CollisionNNToNDelta1700_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1700) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1700::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1700::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1900.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1900.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1900.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1900.hh index 61df97594e..b46b70bc5e 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1900.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1900.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1900_h #define G4CollisionNNToNDelta1900_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1900) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1900::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1900::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1905.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1905.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1905.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1905.hh index 25073ff837..fec4b73085 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1905.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1905.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1905_h #define G4CollisionNNToNDelta1905_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1905) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1905::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1905::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1910.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1910.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1910.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1910.hh index f08eb52078..3f1d1d6c9d 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1910.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1910.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1910_h #define G4CollisionNNToNDelta1910_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1910) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1910::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1910::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1920.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1920.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1920.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1920.hh index 4943b4ca6f..49460fca6c 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1920.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1920.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1920_h #define G4CollisionNNToNDelta1920_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1920) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1920::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1920::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1930.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1930.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1930.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1930.hh index 446f9b9fba..5d43a3fc6c 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1930.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1930.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1930_h #define G4CollisionNNToNDelta1930_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1930) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1930::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1930::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1950.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1950.hh similarity index 94% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1950.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1950.hh index 9b5e6afcf2..e7285d25e7 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDelta1950.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDelta1950.hh @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #ifndef G4CollisionNNToNDelta1950_h #define G4CollisionNNToNDelta1950_h @@ -43,7 +43,7 @@ public: virtual G4String GetName() const { return "NN -> N Delta(1950) Collision"; } virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDelta1950::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDelta1950::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDeltastar.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDeltastar.hh similarity index 90% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDeltastar.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDeltastar.hh index 9e56be27e1..841de5e82c 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNDeltastar.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNDeltastar.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDeltastar.hh,v 1.8 2003/06/16 17:08:21 gunter Exp $ // +// $Id: G4CollisionNNToNDeltastar.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // #ifndef G4CollisionNNToNDeltastar_h #define G4CollisionNNToNDeltastar_h @@ -51,7 +51,7 @@ protected: std::vector result; virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNDeltastar::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNDeltastar::GetListOfColliders. Please find out why!"); return result; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNNstar.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNNstar.hh similarity index 91% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNNstar.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNNstar.hh index 87b8b318f3..84aeee2b7f 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNNToNNstar.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNNToNNstar.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNNstar.hh,v 1.8 2003/06/16 17:08:22 gunter Exp $ // +// $Id: G4CollisionNNToNNstar.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // // ------------------------------------------------------------------- #ifndef G4CollisionNNToNNstar_h @@ -53,7 +53,7 @@ protected: std::vector result; virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNNToNNstar::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNNToNNstar::GetListOfColliders. Please find out why!"); return result; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNStarNToNN.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNStarNToNN.hh similarity index 91% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionNStarNToNN.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionNStarNToNN.hh index cfe562f64d..b3e32c7963 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionNStarNToNN.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionNStarNToNN.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNStarNToNN.hh,v 1.4 2003/06/16 17:08:23 gunter Exp $ // +// $Id: G4CollisionNStarNToNN.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // // ------------------------------------------------------------------- #ifndef G4CollisionNStarNToNN_h @@ -53,7 +53,7 @@ protected: std::vector result; virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4CollisionNStarNToNN::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4CollisionNStarNToNN::GetListOfColliders. Please find out why!"); return result; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionPN.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionPN.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionPN.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionPN.hh index 5c9cd3692e..55828849c8 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionPN.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionPN.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionPN.hh,v 1.3 2003/06/16 17:08:24 gunter Exp $ // +// $Id: G4CollisionPN.hh,v 1.1 2003/10/07 12:37:27 hpw Exp $ // // ------------------------------------------------------------------- // GEANT4 Class file // diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionPtr.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionPtr.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionPtr.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionPtr.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionVector.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionVector.hh similarity index 96% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionVector.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionVector.hh index 6cbd389d83..d955856ef4 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionVector.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionVector.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionVector.hh,v 1.3 2003/06/16 17:08:25 gunter Exp $ // +// $Id: G4CollisionVector.hh,v 1.1 2003/10/07 12:37:28 hpw Exp $ // // ------------------------------------------------------------------- // GEANT4 Class file // diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CollisionnpElastic.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionnpElastic.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4CollisionnpElastic.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CollisionnpElastic.hh index fbb219065c..e6c23bac4e 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CollisionnpElastic.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CollisionnpElastic.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionnpElastic.hh,v 1.4 2003/06/16 17:08:26 gunter Exp $ // +// $Id: G4CollisionnpElastic.hh,v 1.1 2003/10/07 12:37:28 hpw Exp $ // #ifndef G4CollisionnpElastic_h #define G4CollisionnpElastic_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteMesonBaryonToResonance.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteMesonBaryonToResonance.hh similarity index 93% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteMesonBaryonToResonance.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteMesonBaryonToResonance.hh index f11fda24b2..eb3690047f 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteMesonBaryonToResonance.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteMesonBaryonToResonance.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4ConcreteMesonBaryonToResonance.hh,v 1.6 2003/06/16 17:08:27 gunter Exp $ // +// $Id: G4ConcreteMesonBaryonToResonance.hh,v 1.2 2003/11/03 17:53:27 hpw Exp $ // #ifndef G4ConcreteMesonBaryonToResonance_h #define G4ConcreteMesonBaryonToResonance_h @@ -56,7 +56,7 @@ public: virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4ConcreteNNToNDelta::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4ConcreteNNToNDelta::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDelta.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToDeltaDelta.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDelta.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToDeltaDelta.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDeltastar.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToDeltaDeltastar.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaDeltastar.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToDeltaDeltastar.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaNstar.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToDeltaNstar.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToDeltaNstar.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToDeltaNstar.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDelta.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToNDelta.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDelta.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToNDelta.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDeltaStar.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToNDeltaStar.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNDeltaStar.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToNDeltaStar.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNNStar.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToNNStar.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNToNNStar.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNToNNStar.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNTwoBodyResonance.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNTwoBodyResonance.hh similarity index 95% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNTwoBodyResonance.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNTwoBodyResonance.hh index 711d841ae9..6c49d40c41 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNNTwoBodyResonance.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNNTwoBodyResonance.hh @@ -51,7 +51,7 @@ public: virtual const std::vector& GetListOfColliders(G4int ) const { - G4Exception("Tried to call G4ConcreteNNTwoBodyResonance::GetListOfColliders. Please find out why!"); + throw G4HadronicException(__FILE__, __LINE__, "Tried to call G4ConcreteNNTwoBodyResonance::GetListOfColliders. Please find out why!"); std::vector * aList = new std::vector; return *aList; } diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ConcreteNStarNToNN.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNStarNToNN.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ConcreteNStarNToNN.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ConcreteNStarNToNN.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionBuffer.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionBuffer.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4CrossSectionBuffer.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionBuffer.hh index 027bf7ae04..57da1fe7c1 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionBuffer.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionBuffer.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4CrossSectionBuffer_h #define G4CrossSectionBuffer_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionComposite.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionComposite.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4CrossSectionComposite.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionComposite.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionPatch.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionPatch.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4CrossSectionPatch.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionPatch.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionSourcePtr.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionSourcePtr.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4CrossSectionSourcePtr.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionSourcePtr.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4CrossSectionVector.hh b/source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionVector.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4CrossSectionVector.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4CrossSectionVector.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4DeltaDeltastarBuilder.hh b/source/processes/hadronic/models/im_r_matrix/include/G4DeltaDeltastarBuilder.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4DeltaDeltastarBuilder.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4DeltaDeltastarBuilder.hh index f95a28b62a..46d3dfeaca 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4DeltaDeltastarBuilder.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4DeltaDeltastarBuilder.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4DeltaDeltastarBuilder_h #define G4DeltaDeltastarBuilder_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4DeltaNstarBuilder.hh b/source/processes/hadronic/models/im_r_matrix/include/G4DeltaNstarBuilder.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4DeltaNstarBuilder.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4DeltaNstarBuilder.hh index c79640a484..3669fa7fae 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4DeltaNstarBuilder.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4DeltaNstarBuilder.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4DeltaNstarBuilder_h #define G4DeltaNstarBuilder_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4DetailedBalancePhaseSpaceIntegral.hh b/source/processes/hadronic/models/im_r_matrix/include/G4DetailedBalancePhaseSpaceIntegral.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4DetailedBalancePhaseSpaceIntegral.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4DetailedBalancePhaseSpaceIntegral.hh index cea5de777e..64a2335857 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4DetailedBalancePhaseSpaceIntegral.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4DetailedBalancePhaseSpaceIntegral.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4DetailedBalancePhaseSpaceIntegral_h #define G4DetailedBalancePhaseSpaceIntegral_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4GeneralNNCollision.hh b/source/processes/hadronic/models/im_r_matrix/include/G4GeneralNNCollision.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4GeneralNNCollision.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4GeneralNNCollision.hh index 228316d9bd..4d0a6d5da6 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4GeneralNNCollision.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4GeneralNNCollision.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4GeneralNNCollision_h #define G4GeneralNNCollision_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ListOfCollisions.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ListOfCollisions.hh similarity index 95% rename from source/processes/hadronic/models/generator/scattering/include/G4ListOfCollisions.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ListOfCollisions.hh index 1721c1c1e0..5902f21057 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4ListOfCollisions.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4ListOfCollisions.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ListOfCollisions.hh,v 1.3 2003/06/16 17:08:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ListOfCollisions.hh,v 1.1 2003/10/07 12:37:30 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: G4ListOfCollisions.hh,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/scattering/include/G4LowEXsection.hh b/source/processes/hadronic/models/im_r_matrix/include/G4LowEXsection.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4LowEXsection.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4LowEXsection.hh index 7c6e500428..e49362b12f 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4LowEXsection.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4LowEXsection.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4LowEXsection_h #define G4LowEXsection_h diff --git a/examples/advanced/composite_calorimeter/include/G4NeutronBuilder.hh b/source/processes/hadronic/models/im_r_matrix/include/G4MesonAbsorption.hh similarity index 55% rename from examples/advanced/composite_calorimeter/include/G4NeutronBuilder.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4MesonAbsorption.hh index be3e7234b9..c433a9fa56 100644 --- a/examples/advanced/composite_calorimeter/include/G4NeutronBuilder.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4MesonAbsorption.hh @@ -20,40 +20,44 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4NeutronBuilder_h -#define G4NeutronBuilder_h 1 - -#include "globals.hh" - -#include "G4HadronElasticProcess.hh" -#include "G4HadronFissionProcess.hh" -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronInelasticProcess.hh" -#include "G4VNeutronBuilder.hh" +#ifndef G4MesonAbsorption_hh +#define G4MesonAbsorption_hh #include +#include "G4CollisionInitialState.hh" +#include "G4KineticTrack.hh" +#include "G4BCAction.hh" -class G4NeutronBuilder +class G4MesonAbsorption : public G4BCAction { - public: - G4NeutronBuilder(); - virtual ~G4NeutronBuilder(); + public: + G4MesonAbsorption(){} + virtual ~G4MesonAbsorption(){} - public: - void Build(); - void RegisterMe(G4VNeutronBuilder * aB) {theModelCollections.push_back(aB);} + virtual const std::vector & + GetCollisions(G4KineticTrack * aProjectile, + std::vector & someCandidates, + G4double aCurrentTime); + + virtual G4KineticTrackVector * + GetFinalState(G4KineticTrack * aProjectile, + std::vector & theTargets); + + G4CollisionInitialState * GetCollision(G4KineticTrack * projectile, + std::vector targets); private: - G4HadronElasticProcess theNeutronElasticProcess; - G4NeutronInelasticProcess theNeutronInelastic; - G4HadronFissionProcess theNeutronFission; - G4HadronCaptureProcess theNeutronCapture; + G4double GetTimeToAbsorption(const G4KineticTrack& trk1, const G4KineticTrack& trk2); + + void FindAndFillCluster(G4KineticTrackVector & result, + G4KineticTrack * aProjectile, + std::vector & someCandidates); + + G4double AbsorptionCrossSection(const G4KineticTrack & trk1, const G4KineticTrack & trk2); + private: + std::vector theCollisions; + G4double theCross; - std::vector theModelCollections; - }; -// 2002 by J.P. Wellisch - #endif - diff --git a/source/processes/hadronic/models/generator/scattering/include/G4NDeltastarBuilder.hh b/source/processes/hadronic/models/im_r_matrix/include/G4NDeltastarBuilder.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4NDeltastarBuilder.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4NDeltastarBuilder.hh index d5529ed09b..348f06d16a 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4NDeltastarBuilder.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4NDeltastarBuilder.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4NDeltastarBuilder_h #define G4NDeltastarBuilder_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4NNstarBuilder.hh b/source/processes/hadronic/models/im_r_matrix/include/G4NNstarBuilder.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4NNstarBuilder.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4NNstarBuilder.hh index 2c6eb0feec..7ee953ce29 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4NNstarBuilder.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4NNstarBuilder.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4NNstarBuilder_h #define G4NNstarBuilder_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4PartialWidthTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4PartialWidthTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4PartialWidthTable.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4PartialWidthTable.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ParticleTypeConverter.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ParticleTypeConverter.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ParticleTypeConverter.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ParticleTypeConverter.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ResonanceID.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ResonanceID.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4ResonanceID.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ResonanceID.hh index 39cc20fd4e..968ac7e9e7 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4ResonanceID.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4ResonanceID.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4ResonanceID_h #define G4ResonanceID_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ResonanceNames.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ResonanceNames.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ResonanceNames.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ResonanceNames.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ResonancePartialWidth.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ResonancePartialWidth.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ResonancePartialWidth.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ResonancePartialWidth.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4ResonanceWidth.hh b/source/processes/hadronic/models/im_r_matrix/include/G4ResonanceWidth.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4ResonanceWidth.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4ResonanceWidth.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4Scatterer.hh b/source/processes/hadronic/models/im_r_matrix/include/G4Scatterer.hh similarity index 78% rename from source/processes/hadronic/models/generator/scattering/include/G4Scatterer.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4Scatterer.hh index f7d9ecaa41..32b94ab995 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4Scatterer.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4Scatterer.hh @@ -20,24 +20,10 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4Scatterer.hh,v 1.4 2003/06/16 17:08:45 gunter Exp $ // +// $Id: G4Scatterer.hh,v 1.2 2003/10/10 14:08:22 hpw Exp $ // // // -// ------------------------------------------------------------------- -// GEANT4 Class file -// -// -// File name: G4Scatterer.hh -// -// Author: Maria Grazia Pia -// -// Creation date: 1 January 2000 -// -// Modifications: -// -// -// ---------------------------------------------------------------------- - +// removing a auther spec that was part of a template. #ifndef G4SCATTERER_HH #define G4SCATTERER_HH @@ -48,10 +34,11 @@ #include "G4VCollision.hh" #include "G4KineticTrackVector.hh" #include "G4CollisionVector.hh" +#include "G4BCAction.hh" class G4KineticTrack; -class G4Scatterer : public G4VScatterer +class G4Scatterer : public G4VScatterer, public G4BCAction { public: @@ -68,6 +55,14 @@ public: virtual G4KineticTrackVector* Scatter(const G4KineticTrack& trk1, const G4KineticTrack& trk2); + virtual const std::vector & + GetCollisions(G4KineticTrack * aProjectile, + std::vector & someCandidates, + G4double aCurrentTime); + + virtual G4KineticTrackVector * + GetFinalState(G4KineticTrack * aProjectile, + std::vector & theTargets); private: @@ -75,6 +70,7 @@ private: const G4KineticTrack& trk2); G4CollisionVector collisions; + std::vector theCollisions; }; #endif diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VAngularDistribution.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VAngularDistribution.hh similarity index 98% rename from source/processes/hadronic/models/generator/scattering/include/G4VAngularDistribution.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VAngularDistribution.hh index f7333bc3fe..8d772c8a40 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4VAngularDistribution.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4VAngularDistribution.hh @@ -43,6 +43,7 @@ #define G4VANGULARDISTRIBUTION_HH #include "globals.hh" +#include "G4HadronicException.hh" class G4VAngularDistribution { diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VAnnihilationCollision.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VAnnihilationCollision.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4VAnnihilationCollision.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VAnnihilationCollision.hh index 0f421b6401..d585d2a350 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4VAnnihilationCollision.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4VAnnihilationCollision.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4VAnnihilationCollision.hh,v 1.2 2002/12/12 19:17:42 gunter Exp $ // +// $Id: G4VAnnihilationCollision.hh,v 1.1 2003/10/07 12:37:31 hpw Exp $ // // ------------------------------------------------------------------- // GEANT4 Class file // diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VCollision.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VCollision.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4VCollision.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VCollision.hh index bb27a6af0f..d1d6c6201d 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4VCollision.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4VCollision.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4VCollision.hh,v 1.7 2003/06/16 17:08:46 gunter Exp $ // +// $Id: G4VCollision.hh,v 1.1 2003/10/07 12:37:31 hpw Exp $ // #ifndef G4VCollision_h #define G4VCollision_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionComposite.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VCrossSectionComposite.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionComposite.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VCrossSectionComposite.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionSource.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VCrossSectionSource.hh similarity index 98% rename from source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionSource.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VCrossSectionSource.hh index 944d3fa1e0..f73f794102 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4VCrossSectionSource.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4VCrossSectionSource.hh @@ -26,6 +26,7 @@ #define G4VCrossSectionSource_h #include "globals.hh" +#include "G4HadronicException.hh" #include "G4CrossSectionVector.hh" class G4ParticleDefinition; diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VElasticCollision.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VElasticCollision.hh similarity index 96% rename from source/processes/hadronic/models/generator/scattering/include/G4VElasticCollision.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VElasticCollision.hh index 44f769a943..5681c89ece 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4VElasticCollision.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4VElasticCollision.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4VElasticCollision.hh,v 1.3 2002/12/12 19:17:42 gunter Exp $ // +// $Id: G4VElasticCollision.hh,v 1.1 2003/10/07 12:37:31 hpw Exp $ // #ifndef G4VElasticCollision_h #define G4VElasticCollision_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VScatterer.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VScatterer.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4VScatterer.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VScatterer.hh index 87b0292d77..65abb43044 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4VScatterer.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4VScatterer.hh @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VScatterer.hh,v 1.3 2003/06/16 17:08:47 gunter Exp $ // +// $Id: G4VScatterer.hh,v 1.1 2003/10/07 12:37:31 hpw Exp $ // // // // ------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VScatteringCollision.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VScatteringCollision.hh similarity index 97% rename from source/processes/hadronic/models/generator/scattering/include/G4VScatteringCollision.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VScatteringCollision.hh index e18c513d97..9763b4e940 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4VScatteringCollision.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4VScatteringCollision.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4VScatteringCollision.hh,v 1.4 2003/06/16 17:08:48 gunter Exp $ // +// $Id: G4VScatteringCollision.hh,v 1.1 2003/10/07 12:37:31 hpw Exp $ // // ------------------------------------------------------------------- // GEANT4 Class file // diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VXResonance.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VXResonance.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4VXResonance.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VXResonance.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4VXResonanceTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4VXResonanceTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4VXResonanceTable.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4VXResonanceTable.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XAnnihilationChannel.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XAnnihilationChannel.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XAnnihilationChannel.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XAnnihilationChannel.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XAqmElastic.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XAqmElastic.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XAqmElastic.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XAqmElastic.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XAqmTotal.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XAqmTotal.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XAqmTotal.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XAqmTotal.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltaTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XDeltaDeltaTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltaTable.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XDeltaDeltaTable.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltastarTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XDeltaDeltastarTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XDeltaDeltastarTable.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XDeltaDeltastarTable.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XDeltaNstarTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XDeltaNstarTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XDeltaNstarTable.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XDeltaNstarTable.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XMesonBaryonElastic.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XMesonBaryonElastic.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XMesonBaryonElastic.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XMesonBaryonElastic.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNDeltaTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XNDeltaTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XNDeltaTable.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XNDeltaTable.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNDeltastarTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XNDeltastarTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XNDeltastarTable.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XNDeltastarTable.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNElastic.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XNNElastic.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XNNElastic.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XNNElastic.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNElasticLowE.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XNNElasticLowE.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XNNElasticLowE.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XNNElasticLowE.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNTotal.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XNNTotal.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XNNTotal.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XNNTotal.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNTotalLowE.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XNNTotalLowE.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XNNTotalLowE.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XNNTotalLowE.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XNNstarTable.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XNNstarTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XNNstarTable.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XNNstarTable.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XPDGElastic.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XPDGElastic.hh similarity index 98% rename from source/processes/hadronic/models/generator/scattering/include/G4XPDGElastic.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XPDGElastic.hh index 0d4d46239a..d7c843ecd1 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4XPDGElastic.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4XPDGElastic.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4XPDGElastic.hh,v 1.3 2003/06/16 17:08:56 gunter Exp $ // +// $Id: G4XPDGElastic.hh,v 1.1 2003/10/07 12:37:32 hpw Exp $ // // --------------------------------------------------------------- // GEANT4 Class file // diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XPDGTotal.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XPDGTotal.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XPDGTotal.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XPDGTotal.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XResonance.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XResonance.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XResonance.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XResonance.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XnpElastic.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XnpElastic.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XnpElastic.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XnpElastic.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XnpElasticLowE.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XnpElasticLowE.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XnpElasticLowE.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XnpElasticLowE.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XnpTotal.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XnpTotal.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XnpTotal.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XnpTotal.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XnpTotalLowE.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XnpTotalLowE.hh similarity index 100% rename from source/processes/hadronic/models/generator/scattering/include/G4XnpTotalLowE.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XnpTotalLowE.hh diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XpimNTotal.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XpimNTotal.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4XpimNTotal.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XpimNTotal.hh index 9507e98a59..56fbf9b2a1 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4XpimNTotal.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4XpimNTotal.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4XpimNTotal_h #define G4XpimNTotal_h diff --git a/source/processes/hadronic/models/generator/scattering/include/G4XpipNTotal.hh b/source/processes/hadronic/models/im_r_matrix/include/G4XpipNTotal.hh similarity index 99% rename from source/processes/hadronic/models/generator/scattering/include/G4XpipNTotal.hh rename to source/processes/hadronic/models/im_r_matrix/include/G4XpipNTotal.hh index a9605a7d64..ab53b809a9 100644 --- a/source/processes/hadronic/models/generator/scattering/include/G4XpipNTotal.hh +++ b/source/processes/hadronic/models/im_r_matrix/include/G4XpipNTotal.hh @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #ifndef G4XpipNTotal_h #define G4XpipNTotal_h diff --git a/source/processes/hadronic/models/generator/scattering/src/G4AngularDistribution.cc b/source/processes/hadronic/models/im_r_matrix/src/G4AngularDistribution.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4AngularDistribution.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4AngularDistribution.cc index c94ad78f21..05c17db967 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4AngularDistribution.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4AngularDistribution.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// // hpw: done, but low quality at present. #include "globals.hh" @@ -183,7 +184,7 @@ G4double G4AngularDistribution::CosTheta(G4double s, G4double m1, G4double m2) c if (cosTheta > 1. || cosTheta < -1.) - G4Exception("G4AngularDistribution::CosTheta - cos(theta) outside allowed range"); + throw G4HadronicException(__FILE__, __LINE__, "G4AngularDistribution::CosTheta - cos(theta) outside allowed range"); return cosTheta; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionNP.cc b/source/processes/hadronic/models/im_r_matrix/src/G4AngularDistributionNP.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionNP.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4AngularDistributionNP.cc index 2ce5cf4d3e..b5ca7ee391 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionNP.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4AngularDistributionNP.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #include "G4AngularDistributionNP.hh" #include "Randomize.hh" #include "G4ios.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionPP.cc b/source/processes/hadronic/models/im_r_matrix/src/G4AngularDistributionPP.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionPP.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4AngularDistributionPP.cc index 44ed9e7cdb..196bd6047b 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4AngularDistributionPP.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4AngularDistributionPP.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// #include "G4AngularDistributionPP.hh" #include "Randomize.hh" #include "G4ios.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4BaryonPartialWidth.cc b/source/processes/hadronic/models/im_r_matrix/src/G4BaryonPartialWidth.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4BaryonPartialWidth.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4BaryonPartialWidth.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4BaryonWidth.cc b/source/processes/hadronic/models/im_r_matrix/src/G4BaryonWidth.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4BaryonWidth.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4BaryonWidth.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4Clebsch.cc b/source/processes/hadronic/models/im_r_matrix/src/G4Clebsch.cc similarity index 85% rename from source/processes/hadronic/models/generator/scattering/src/G4Clebsch.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4Clebsch.cc index d2cfb0a6ae..90f5279587 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4Clebsch.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4Clebsch.cc @@ -24,9 +24,11 @@ #include "globals.hh" #include "G4ios.hh" +#include "G4HadronicException.hh" #include "G4Clebsch.hh" #include "Randomize.hh" #include "G4Proton.hh" +#include "G4HadTmpUtil.hh" G4Clebsch::G4Clebsch() { @@ -106,10 +108,10 @@ G4double G4Clebsch::ClebschGordan(G4int isoIn1, G4int iso3In1, G4double m2 = iso3In2 / 2.0; G4double m3 = - (m1 + m2); - G4int n = static_cast(m3+j1+j2+.1); + G4int n = G4lrint(m3+j1+j2+.1); G4double argument = 2. * j3 + 1.; if (argument < 0.) - G4Exception("G4Clebsch::ClebschGordan - sqrt of negative argument"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::ClebschGordan - sqrt of negative argument"); G4double coeff = sqrt(argument) / (pow(-1.,n)); G4double clebsch = coeff * Wigner3J(j1,j2,j3, m1,m2,m3); G4double value = clebsch * clebsch; @@ -204,14 +206,14 @@ G4double G4Clebsch::Wigner3J(G4double j1, G4double j2, G4double j3, } const std::vector logVector = GetLogs(); - size_t n1 = static_cast(n[0]); + size_t n1 = G4lrint(n[0]); // Some boundary checks G4int logEntries = logVector.size() - 1; for (i=0; i logEntries) - G4Exception("G4Clebsch::Wigner3J - Outside logVector boundaries, n"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::Wigner3J - Outside logVector boundaries, n"); } G4double r1 = n[0]; @@ -236,20 +238,20 @@ G4double G4Clebsch::Wigner3J(G4double j1, G4double j2, G4double j3, G4double sigma1 = sigma + 1.; if (sigma1 < 0. || sigma1 > logEntries) - G4Exception("G4Clebsch::Wigner3J - Outside logVector boundaries, sigma"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::Wigner3J - Outside logVector boundaries, sigma"); - G4double ls = logVector[static_cast(sigma1)]; + G4double ls = logVector[static_cast(sigma1+.00001)]; G4double hlp1 = (l2 + l3 + l4 +l7 -ls -l1 -l5 -l9 -l6 -l8) / 2.; - G4int expon = static_cast(r6 + r8); + G4int expon = static_cast(r6 + r8+.00001); G4double sgn = pow(-1., expon); G4double coeff = exp(hlp1) * sgn; - G4int n61 = static_cast(r6 - r1); + G4int n61 = static_cast(r6 - r1+.00001); if (n61 < 0. || n61 > logEntries) - G4Exception("G4Clebsch::Wigner3J - Outside logVector boundaries, n61"); - G4int n81 = static_cast(r8 - r1); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::Wigner3J - Outside logVector boundaries, n61"); + G4int n81 = static_cast(r8 - r1+.00001); if (n81 < 0. || n81 > logEntries) - G4Exception("G4Clebsch::Wigner3J - Outside logVector boundaries, n81"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::Wigner3J - Outside logVector boundaries, n81"); G4double hlp2 = l6 - logVector[n61] + l8 - logVector[n81]; G4double sum = exp(hlp2); @@ -261,7 +263,7 @@ G4double G4Clebsch::Wigner3J(G4double j1, G4double j2, G4double j3, G4double last = s.back(); G4double den = i * (r6 - r1 + i) * (r8 - r1 + i); if (den == 0) - G4Exception("G4Clebsch::Wigner3J - divide by zero"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::Wigner3J - divide by zero"); G4double data = -last * (r1 + 1.0 - i) * (r5 + 1.0 - i) * (r9 + 1. - i) / den; s.push_back(data); sum += data; @@ -342,7 +344,7 @@ std::vector G4Clebsch::GenerateIso3(G4int isoIn1, G4int iso3In1, G4int jMax = std::min(jMaxIn, jMaxOut); if (jMin > jMax) { - G4Exception ("G4Clebsch::GenerateIso3 - jMin > JMax"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::GenerateIso3 - jMin > JMax"); } // Number of possible isospins @@ -351,11 +353,11 @@ std::vector G4Clebsch::GenerateIso3(G4int isoIn1, G4int iso3In1, // A few consistency checks if ( (isoIn1 == 0 || isoIn2 == 0) && jMin != jMax ) - G4Exception ("G4Clebsch::GenerateIso3 - J1 or J2 = 0, but jMin != JMax"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::GenerateIso3 - J1 or J2 = 0, but jMin != JMax"); // MGP ---- Shall it be a warning or an exception? if (nJ == 0) - G4Exception ("G4Clebsch::GenerateIso3 - nJ is zero, no overlap between in and out"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::GenerateIso3 - nJ is zero, no overlap between in and out"); // Loop over all possible combinations of isoIn1, isoIn2, iso3In11, iso3In2, jTot // to get the probability of each of the in-channel couplings @@ -370,7 +372,7 @@ std::vector G4Clebsch::GenerateIso3(G4int isoIn1, G4int iso3In1, // Consistency check if (static_cast(clebsch.size()) != nJ) - G4Exception ("G4Clebsch::GenerateIso3 - nJ inconsistency"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::GenerateIso3 - nJ inconsistency"); G4double sum = clebsch[0]; @@ -380,7 +382,7 @@ std::vector G4Clebsch::GenerateIso3(G4int isoIn1, G4int iso3In1, } // Consistency check if (sum <= 0.) - G4Exception ("G4Clebsch::GenerateIso3 - Sum of Clebsch-Gordan probabilities <=0"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::GenerateIso3 - Sum of Clebsch-Gordan probabilities <=0"); // Generate a normalized pdf @@ -434,19 +436,19 @@ std::vector G4Clebsch::GenerateIso3(G4int isoIn1, G4int iso3In1, for(j12 = abs(isoA-isoB); j12<=(isoA+isoB); j12+=2) { m1pos = -1; - for (m1pr = static_cast(mMin[0]); m1pr <= mMax[0]; m1pr+=2) + for (m1pr = static_cast(mMin[0]+.00001); m1pr <= mMax[0]; m1pr+=2) { m1pos++; if (m1pos >= size) - G4Exception ("G4Clebsch::GenerateIso3 - m1pos > size"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::GenerateIso3 - m1pos > size"); m1Out.push_back(m1pr); m2pos = -1; - for (m2pr = static_cast(mMin[1]); m2pr <= mMax[1]; m2pr+=2) + for (m2pr = static_cast(mMin[1]+.00001); m2pr <= mMax[1]; m2pr+=2) { m2pos++; if (m2pos >= size) { - G4Exception ("G4Clebsch::GenerateIso3 - m2pos > size"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::GenerateIso3 - m2pos > size"); } m2Out.push_back(m2pr); @@ -469,7 +471,7 @@ std::vector G4Clebsch::GenerateIso3(G4int isoIn1, G4int iso3In1, } if (sum <= 0.) - G4Exception("G4Clebsch::GenerateIso3 - sum (out) <=0"); + throw G4HadronicException(__FILE__, __LINE__, "G4Clebsch::GenerateIso3 - sum (out) <=0"); for (i=0; i G4Clebsch::GenerateIso3(G4int isoIn1, G4int iso3In1, } } - G4Exception ("Should never get here "); + throw G4HadronicException(__FILE__, __LINE__, "Should never get here "); return temp; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionComposite.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionComposite.cc similarity index 95% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionComposite.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionComposite.cc index 2b3d81c842..94f8b90b87 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionComposite.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionComposite.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionComposite.cc,v 1.11 2003/06/16 17:09:04 gunter Exp $ // +// $Id: G4CollisionComposite.cc,v 1.2 2003/11/03 17:53:28 hpw Exp $ // #include "globals.hh" #include "G4CollisionComposite.hh" @@ -106,7 +106,7 @@ G4KineticTrackVector* G4CollisionComposite::FinalState(const G4KineticTrack& trk // G4cerr <<"in charge = "<GetParticleName()< + + G4KineticTrackVector * G4CollisionInitialState:: + GetFinalState() + { +// G4cerr << "what is the FS generator? " +// << typeid(*theFSGenerator).name() +// <GetFinalState(thePrimary, theTs); + } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionManager.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionManager.cc similarity index 89% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionManager.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionManager.cc index 53d564453d..f61f0f198b 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionManager.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionManager.cc @@ -21,6 +21,7 @@ // ******************************************************************** // #include "G4CollisionManager.hh" +#include "G4HadronicException.hh" #include "G4CollisionInitialState.hh" G4CollisionManager::G4CollisionManager() @@ -53,7 +54,7 @@ void G4CollisionManager::AddCollision(G4double time, G4KineticTrack * proj, <Get4Momentum()<<" " <GetDefinition()->GetParticleName()<empty()) + if(toBeCaned->empty()) return; G4CollisionInitialState * collision; @@ -81,10 +82,12 @@ void G4CollisionManager::RemoveTracksCollisions(G4KineticTrackVector * ktv) G4ListOfCollisions toRemove; for(collIter = theCollisionList->begin(); - collIter != theCollisionList->end(); ++collIter) + collIter != theCollisionList->end(); collIter++) { collision = *collIter; - for(trackIter = ktv->begin(); trackIter != ktv->end(); ++trackIter) + G4KineticTrackVector & targets = collision->GetTargetCollection(); + G4bool getNextCollision = false; + for(trackIter = toBeCaned->begin(); trackIter != toBeCaned->end(); ++trackIter) { if((collision->GetTarget() == *trackIter) || (collision->GetPrimary() == *trackIter)) @@ -92,6 +95,16 @@ void G4CollisionManager::RemoveTracksCollisions(G4KineticTrackVector * ktv) toRemove.push_back(collision); break; // exit from the "trackIter" loop } + for(size_t tcount=0; tcount& G4CollisionMesonBaryonElastic:: GetListOfColliders(G4int ) const { - G4Exception("Called G4CollisionMesonBaryonElastic::GetListOfColliders"); + throw G4HadronicException(__FILE__, __LINE__, "Called G4CollisionMesonBaryonElastic::GetListOfColliders"); return dummy; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonToResonance.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionMesonBaryonToResonance.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonToResonance.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionMesonBaryonToResonance.cc index 9b78d1d46f..2493bd8e24 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionMesonBaryonToResonance.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionMesonBaryonToResonance.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionMesonBaryonToResonance.cc,v 1.11 2002/12/12 19:17:47 gunter Exp $ // +// $Id: G4CollisionMesonBaryonToResonance.cc,v 1.2 2003/11/19 17:53:00 hpw Exp $ // #include "globals.hh" #include "G4CollisionMesonBaryonToResonance.hh" @@ -105,6 +105,7 @@ G4CollisionMesonBaryonToResonance::G4CollisionMesonBaryonToResonance() G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN2220, "N2220_Npi")); G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aPionp, aN2250, "N2250_Npi")); +/* G4ParticleDefinition * aKaon = G4KaonPlus::KaonPlus(); // sig=0 G4ParticleDefinition * aL1405 = G4ParticleTable::GetParticleTable()->FindParticle(13122); @@ -147,4 +148,5 @@ G4CollisionMesonBaryonToResonance::G4CollisionMesonBaryonToResonance() G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS1915, "S1915_NKbar")); G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS1940, "S1940_NKbar")); G4CollisionComposite::AddComponent(new G4ConcreteMesonBaryonToResonance(aProton, aKaon, aS2030, "S2030_NKbar")); +*/ } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNN.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNN.cc similarity index 95% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNN.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNN.cc index b37814ac0e..510a5aec06 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNN.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNN.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNN.cc,v 1.17 2003/06/16 17:09:07 gunter Exp $ // +// $Id: G4CollisionNN.cc,v 1.2 2003/11/03 17:53:28 hpw Exp $ // #include "globals.hh" @@ -69,7 +69,7 @@ G4CollisionNN::~G4CollisionNN() const std::vector& G4CollisionNN::GetListOfColliders(G4int ) const { - G4Exception("G4CollisionNN::GetListOfColliders - Argument outside valid range"); + throw G4HadronicException(__FILE__, __LINE__, "G4CollisionNN::GetListOfColliders - Argument outside valid range"); return colliders1; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNElastic.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNElastic.cc similarity index 94% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNElastic.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNElastic.cc index 3af81ec709..498edc5d8e 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNElastic.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNElastic.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNElastic.cc,v 1.6 2003/06/16 17:09:08 gunter Exp $ // +// $Id: G4CollisionNNElastic.cc,v 1.2 2003/11/03 17:53:28 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNElastic.hh" @@ -92,7 +92,7 @@ const std::vector& G4CollisionNNElastic::GetListOfColliders(G4int whic { return colliders2; } else { - G4Exception("G4CollisionNNElastic::GetListOfColliders - Argument outside valid range"); + throw G4HadronicException(__FILE__, __LINE__, "G4CollisionNNElastic::GetListOfColliders - Argument outside valid range"); return colliders1; } } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta.cc index b2dbbf53a4..0ff8966ff3 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta.cc,v 1.4 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta.cc,v 1.1 2003/10/07 12:37:34 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1600.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1600.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1600.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1600.cc index 1752a286df..f5d5f4ff9d 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1600.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1600.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1600.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1600.cc,v 1.2 2003/11/19 15:35:29 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1600.hh" @@ -58,7 +58,7 @@ G4CollisionNNToDeltaDelta1600::G4CollisionNNToDeltaDelta1600() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1600)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1600)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1600)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1600)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1600)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1600)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1600)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1620.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1620.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1620.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1620.cc index ecfc924d0b..61d11d4102 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1620.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1620.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1620.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1620.cc,v 1.2 2003/11/19 15:35:29 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1620.hh" @@ -57,7 +57,7 @@ G4CollisionNNToDeltaDelta1620::G4CollisionNNToDeltaDelta1620() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1620)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1620)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1620)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1620)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1620)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1620)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1620)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1700.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1700.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1700.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1700.cc index 421aff75d1..694f4139cb 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1700.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1700.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1700.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1700.cc,v 1.2 2003/11/19 15:35:29 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1700.hh" @@ -57,7 +57,7 @@ G4CollisionNNToDeltaDelta1700::G4CollisionNNToDeltaDelta1700() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1700)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1700)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1700)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1700)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1700)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1700)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1700)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1900.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1900.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1900.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1900.cc index 983e6cba1d..730f99a4d9 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1900.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1900.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1900.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1900.cc,v 1.2 2003/11/19 15:35:29 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1900.hh" @@ -57,7 +57,7 @@ G4CollisionNNToDeltaDelta1900::G4CollisionNNToDeltaDelta1900() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1900)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1900)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1900)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1900)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1900)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1900)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1900)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1905.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1905.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1905.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1905.cc index 904a81991a..828176db73 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1905.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1905.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1905.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1905.cc,v 1.2 2003/11/19 15:35:29 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1905.hh" @@ -57,7 +57,7 @@ G4CollisionNNToDeltaDelta1905::G4CollisionNNToDeltaDelta1905() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1905)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1905)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1905)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1905)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1905)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1905)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1905)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1910.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1910.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1910.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1910.cc index 70956e17de..c80f40ca56 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1910.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1910.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1910.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1910.cc,v 1.2 2003/11/19 15:35:29 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1910.hh" @@ -57,7 +57,7 @@ G4CollisionNNToDeltaDelta1910::G4CollisionNNToDeltaDelta1910() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1910)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1910)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1910)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1910)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1910)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1910)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1910)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1920.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1920.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1920.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1920.cc index c990c3e905..57d4e19da2 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1920.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1920.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1920.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1920.cc,v 1.2 2003/11/19 15:35:30 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1920.hh" @@ -57,7 +57,7 @@ G4CollisionNNToDeltaDelta1920::G4CollisionNNToDeltaDelta1920() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1920)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1920)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1920)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1920)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1920)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1920)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1920)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1930.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1930.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1930.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1930.cc index ed85dce788..e8ead52d39 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1930.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1930.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1930.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1930.cc,v 1.2 2003/11/19 15:35:30 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1930.hh" @@ -57,7 +57,7 @@ G4CollisionNNToDeltaDelta1930::G4CollisionNNToDeltaDelta1930() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1930)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1930)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1930)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1930)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1930)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1930)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1930)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1950.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1950.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1950.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1950.cc index 726af63b6a..872da04d57 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDelta1950.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDelta1950.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDelta1950.cc,v 1.2 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDelta1950.cc,v 1.2 2003/11/19 15:35:30 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDelta1950.hh" @@ -57,7 +57,7 @@ G4CollisionNNToDeltaDelta1950::G4CollisionNNToDeltaDelta1950() G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltap, aD0_1950)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDelta0, aDp_1950)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltam, aDpp_1950)); - G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aD0_1950)); + G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aNeutron, aProton, aDeltapp, aDm_1950)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDelta0, aDpp_1950)); G4CollisionComposite::AddComponent(new G4ConcreteNNToDeltaDeltastar(aProton, aProton, aDeltap, aDp_1950)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDeltastar.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDeltastar.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDeltastar.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDeltastar.cc index 0f6c83a40f..87f414c5db 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaDeltastar.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaDeltastar.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaDeltastar.cc,v 1.3 2002/12/12 19:17:48 gunter Exp $ // +// $Id: G4CollisionNNToDeltaDeltastar.cc,v 1.1 2003/10/07 12:37:35 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaDeltastar.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaNstar.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaNstar.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaNstar.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaNstar.cc index 33af792527..ee5a107df7 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToDeltaNstar.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToDeltaNstar.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToDeltaNstar.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToDeltaNstar.cc,v 1.1 2003/10/07 12:37:35 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToDeltaNstar.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta.cc index b2902d09b3..77597c5728 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta.cc,v 1.6 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta.cc,v 1.1 2003/10/07 12:37:35 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1600.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1600.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1600.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1600.cc index 7fd7e03a99..9d25f94ef6 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1600.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1600.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1600.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1600.cc,v 1.1 2003/10/07 12:37:35 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1600.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1620.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1620.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1620.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1620.cc index 065288a79b..2481f64c56 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1620.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1620.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1620.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1620.cc,v 1.1 2003/10/07 12:37:35 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1620.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1700.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1700.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1700.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1700.cc index e0f905349a..e9b3f2f639 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1700.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1700.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1700.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1700.cc,v 1.1 2003/10/07 12:37:35 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1700.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1900.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1900.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1900.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1900.cc index 9c5fdc2f2e..71d5dfb9b7 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1900.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1900.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1900.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1900.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1900.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1905.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1905.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1905.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1905.cc index 0df90f2917..c2002791c1 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1905.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1905.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1905.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1905.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1905.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1910.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1910.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1910.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1910.cc index a25f904bc3..a0fc2c63bc 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1910.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1910.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1910.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1910.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1910.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1920.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1920.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1920.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1920.cc index b0dab5601a..2039e6abdf 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1920.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1920.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1920.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1920.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1920.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1930.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1930.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1930.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1930.cc index e795531d81..a25f0cf066 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1930.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1930.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1930.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1930.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1930.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1950.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1950.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1950.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1950.cc index 42b83507ca..410f26269d 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDelta1950.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDelta1950.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDelta1950.cc,v 1.2 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDelta1950.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDelta1950.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDeltastar.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDeltastar.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDeltastar.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDeltastar.cc index 99c06f1848..e9e6a10783 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNDeltastar.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNDeltastar.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNDeltastar.cc,v 1.3 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNDeltastar.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNDeltastar.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNNstar.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNNstar.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNNstar.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNNstar.cc index aaec3f44c3..d76bfa4198 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNNToNNstar.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNNToNNstar.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNNToNNstar.cc,v 1.4 2002/12/12 19:17:49 gunter Exp $ // +// $Id: G4CollisionNNToNNstar.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNNToNNstar.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNStarNToNN.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNStarNToNN.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionNStarNToNN.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionNStarNToNN.cc index fc8e2d5415..2b1c9a8b85 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionNStarNToNN.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionNStarNToNN.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionNStarNToNN.cc,v 1.3 2002/12/12 19:17:50 gunter Exp $ // +// $Id: G4CollisionNStarNToNN.cc,v 1.1 2003/10/07 12:37:36 hpw Exp $ // #include "globals.hh" #include "G4CollisionNStarNToNN.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionPN.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionPN.cc similarity index 94% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionPN.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionPN.cc index 7eae5f3c75..efc0c08fee 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionPN.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionPN.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4CollisionPN.cc,v 1.3 2003/06/16 17:09:09 gunter Exp $ // +// $Id: G4CollisionPN.cc,v 1.2 2003/11/03 17:53:28 hpw Exp $ // // ------------------------------------------------------------------- // GEANT4 Class file // @@ -105,7 +105,7 @@ const std::vector& G4CollisionPN::GetListOfColliders(G4int whichOne) c { return colliders2; } else { - G4Exception("G4CollisionNN::GetListOfColliders - Argument outside valid range"); + throw G4HadronicException(__FILE__, __LINE__, "G4CollisionNN::GetListOfColliders - Argument outside valid range"); return colliders1; } } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionPtr.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionPtr.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionPtr.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionPtr.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4CollisionnpElastic.cc b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionnpElastic.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4CollisionnpElastic.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4CollisionnpElastic.cc index 86a157f9fd..a6c33dbf85 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4CollisionnpElastic.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4CollisionnpElastic.cc @@ -19,6 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** +// //hp #include "globals.hh" @@ -89,7 +90,7 @@ const std::vector& G4CollisionnpElastic::GetListOfColliders(G4int whic { return colliders2; } else { - G4Exception("G4CollisionnpElastic::GetListOfColliders - Argument outside valid range"); + throw G4HadronicException(__FILE__, __LINE__, "G4CollisionnpElastic::GetListOfColliders - Argument outside valid range"); return colliders1; } } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteMesonBaryonToResonance.cc b/source/processes/hadronic/models/im_r_matrix/src/G4ConcreteMesonBaryonToResonance.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4ConcreteMesonBaryonToResonance.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4ConcreteMesonBaryonToResonance.cc index c0e31168c1..91ca00bf9c 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4ConcreteMesonBaryonToResonance.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4ConcreteMesonBaryonToResonance.cc @@ -80,7 +80,7 @@ const G4ParticleDefinition* G4ConcreteMesonBaryonToResonance::GetOutgoingParticl if ( (state = myConv().FindIso3State(myConv().GetGenericType(theSecondary), secondaryIso3)) == NULL) { G4cerr << "for "<(myConv().GetGenericType(theSecondary))<<" "< G4XDeltaDeltastarTable G4ConcreteNNToDeltaDeltastar::theSigmaTable; @@ -37,6 +38,18 @@ G4ConcreteNNToDeltaDeltastar::G4ConcreteNNToDeltaDeltastar(const G4ParticleDefin : G4ConcreteNNTwoBodyResonance(aPrimary, bPrimary, aSecondary, bSecondary, G4DeltaDeltastarBuilder(bSecondary->GetParticleName(), theSigmaTable)) { + G4double chargeBalance = aPrimary->GetPDGCharge()+bPrimary->GetPDGCharge(); + chargeBalance -= aSecondary->GetPDGCharge(); + chargeBalance -= bSecondary->GetPDGCharge(); + if(abs(chargeBalance) >.1) + { + G4cout << "Charge conservation problem in G4ConcreteNNToDeltaDeltastar"<GetPDGCharge()<<" "<GetParticleName() + << bPrimary->GetPDGCharge()<<" "<GetParticleName() + << aSecondary->GetPDGCharge()<<" "<GetParticleName() + << bSecondary->GetPDGCharge()<<" "<GetParticleName()< diff --git a/source/processes/hadronic/models/im_r_matrix/src/G4MesonAbsorption.cc b/source/processes/hadronic/models/im_r_matrix/src/G4MesonAbsorption.cc new file mode 100644 index 0000000000..8579e35e6f --- /dev/null +++ b/source/processes/hadronic/models/im_r_matrix/src/G4MesonAbsorption.cc @@ -0,0 +1,334 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By 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 "G4MesonAbsorption.hh" +#include "G4LorentzRotation.hh" +#include "G4LorentzVector.hh" +#include "Randomize.hh" +#include "G4KineticTrackVector.hh" +#include "G4CollisionInitialState.hh" +#include +#include "G4PionPlus.hh" +#include "G4PionMinus.hh" +#include "G4ParticleDefinition.hh" +#include "G4HadTmpUtil.hh" + +// first prototype + +const std::vector & G4MesonAbsorption:: +GetCollisions(G4KineticTrack * aProjectile, + std::vector & someCandidates, + G4double aCurrentTime) +{ + theCollisions.clear(); + if(someCandidates.size() >1) + { + std::vector::iterator j=someCandidates.begin(); + for(; j != someCandidates.end(); ++j) + { + G4double collisionTime = GetTimeToAbsorption(*aProjectile, **j); + if(collisionTime == DBL_MAX) + { + continue; + } + G4KineticTrackVector aTarget; + aTarget.push_back(*j); + FindAndFillCluster(aTarget, aProjectile, someCandidates); + if(aTarget.size()>=2) + { + theCollisions.push_back( + new G4CollisionInitialState(collisionTime+aCurrentTime, aProjectile, aTarget, this) ); + } + } + } + return theCollisions; +} + + +void G4MesonAbsorption:: +FindAndFillCluster(G4KineticTrackVector & result, + G4KineticTrack * aProjectile, std::vector & someCandidates) +{ + std::vector::iterator j=someCandidates.begin(); + G4KineticTrack * aTarget = result[0]; + G4int chargeSum = G4lrint(aTarget->GetDefinition()->GetPDGCharge()); + chargeSum+=G4lrint(aProjectile->GetDefinition()->GetPDGCharge()); + G4ThreeVector firstBase = aTarget->GetPosition(); + G4double min = DBL_MAX; + G4KineticTrack * partner = 0; + for(; j != someCandidates.end(); ++j) + { + if(*j == aTarget) continue; + G4int cCharge = G4lrint((*j)->GetDefinition()->GetPDGCharge()); + if (chargeSum+cCharge > 2) continue; + if (chargeSum+cCharge < 0) continue; + // get the one with the smallest distance. + G4ThreeVector secodeBase = (*j)->GetPosition(); + if((firstBase+secodeBase).mag() & targets) +{ + // G4cout << "We have an absorption !!!!!!!!!!!!!!!!!!!!!!"<Get4Momentum(); + G4LorentzVector theT1 = targets[0]->Get4Momentum(); + G4LorentzVector theT2 = targets[1]->Get4Momentum(); + G4LorentzVector incoming = thePro + theT1 + theT2; + G4double energyBalance = incoming.t(); + G4int chargeBalance = G4lrint(projectile->GetDefinition()->GetPDGCharge() + + targets[0]->GetDefinition()->GetPDGCharge() + + targets[1]->GetDefinition()->GetPDGCharge()); + + G4int baryonBalance = projectile->GetDefinition()->GetBaryonNumber() + + targets[0]->GetDefinition()->GetBaryonNumber() + + targets[1]->GetDefinition()->GetBaryonNumber(); + + + // boost all to MMS + G4LorentzRotation toSPS((-1)*(thePro + theT1 + theT2).boostVector()); + theT1 = toSPS * theT1; + theT2 = toSPS * theT2; + thePro = toSPS * thePro; + G4LorentzRotation fromSPS(toSPS.inverse()); + + // rotate to z + G4LorentzRotation toZ; + G4LorentzVector Ptmp=projectile->Get4Momentum(); + toZ.rotateZ(-1*Ptmp.phi()); + toZ.rotateY(-1*Ptmp.theta()); + theT1 = toZ * theT1; + theT2 = toZ * theT2; + thePro = toZ * thePro; + G4LorentzRotation toLab(toZ.inverse()); + + // Get definitions + G4ParticleDefinition * d1 = targets[0]->GetDefinition(); + G4ParticleDefinition * d2 = targets[1]->GetDefinition(); + if(0.5>G4UniformRand()) + { + G4ParticleDefinition * temp; + temp=d1;d1=d2;d2=temp; + } + G4ParticleDefinition * dp = projectile->GetDefinition(); + if(dp->GetPDGCharge()<-.5) + { + if(d1->GetPDGCharge()>.5) + { + if(d2->GetPDGCharge()>.5 && 0.5>G4UniformRand()) + { + d2 = G4Neutron::NeutronDefinition(); + } + else + { + d1 = G4Neutron::NeutronDefinition(); + } + } + else if(d2->GetPDGCharge()>.5) + { + d2 = G4Neutron::NeutronDefinition(); + } + } + else if(dp->GetPDGCharge()>.5) + { + if(d1->GetPDGCharge()<.5) + { + if(d2->GetPDGCharge()<.5 && 0.5>G4UniformRand()) + { + d2 = G4Proton::ProtonDefinition(); + } + else + { + d1 = G4Proton::ProtonDefinition(); + } + } + else if(d2->GetPDGCharge()<.5) + { + d2 = G4Proton::ProtonDefinition(); + } + } + + // calculate the momenta. + G4double M = (thePro+theT1+theT2).mag(); + G4double m1 = d1->GetPDGMass(); + G4double m2 = d2->GetPDGMass(); + G4double m = sqrt(M*M-m1*m1-m2*m2); + G4double p = sqrt((m*m*m*m - 4.*m1*m1 * m2*m2)/(4.*(M*M))); + G4double costh = 2.*G4UniformRand()-1.; + G4double phi = 2.*pi*G4UniformRand(); + G4ThreeVector pFinal(p*sin(acos(costh))*cos(phi), p*sin(acos(costh))*sin(phi), p*costh); + + // G4cout << "testing p "<GetPosition(), final1); + G4KineticTrack * f2 = + new G4KineticTrack(d2, 0., targets[1]->GetPosition(), final2); + G4KineticTrackVector * result = new G4KineticTrackVector; + result->push_back(f1); + result->push_back(f2); + + for(size_t hpw=0; hpwsize(); hpw++) + { + energyBalance-=result->operator[](hpw)->Get4Momentum().t(); + chargeBalance-=G4lrint(result->operator[](hpw)->GetDefinition()->GetPDGCharge()); + baryonBalance-=result->operator[](hpw)->GetDefinition()->GetBaryonNumber(); + } + if(getenv("AbsorptionEnergyBalanceCheck")) + std::cout << "DEBUGGING energy balance B: " + < 0) + { + G4LorentzVector mom2(0,0,0,trk2.Get4Momentum().mag()); + G4LorentzRotation toCMSFrame((-1)*(mom1 + mom2).boostVector()); + mom1 = toCMSFrame * mom1; + mom2 = toCMSFrame * mom2; + + G4LorentzVector coordinate1(trk1.GetPosition(), 100.); + G4LorentzVector coordinate2(trk2.GetPosition(), 100.); + G4ThreeVector pos = ((toCMSFrame * coordinate1).vect() - + (toCMSFrame * coordinate2).vect()); + G4ThreeVector mom = mom1.vect() - mom2.vect(); + + G4double distance = pos * pos - (pos*mom) * (pos*mom) / (mom*mom); + + // global optimization + static const G4double maxCrossSection = 500*millibarn; + if(pi*distance>maxCrossSection) return time; + // charged particles special optimization + static const G4double maxChargedCrossSection = 200*millibarn; + if(abs(trk1.GetDefinition()->GetPDGCharge())>0.1 && + abs(trk2.GetDefinition()->GetPDGCharge())>0.1 && + pi*distance>maxChargedCrossSection) return time; + // neutrons special optimization + if(( trk1.GetDefinition() == G4Neutron::Neutron() || + trk1.GetDefinition() == G4Neutron::Neutron() ) && + sqrtS>1.91*GeV && pi*distance>maxChargedCrossSection) return time; + + G4double totalCrossSection = AbsorptionCrossSection(trk1,trk2); + if ( totalCrossSection > 0 ) + { + if (distance <= totalCrossSection / pi) + { + time = collisionTime; + } + } + } + } + return time; +} + +G4double G4MesonAbsorption:: +AbsorptionCrossSection(const G4KineticTrack & aT, const G4KineticTrack & bT) +{ + G4double t = 0; + if(aT.GetDefinition()==G4PionPlus::PionPlusDefinition() || + aT.GetDefinition()==G4PionMinus::PionMinusDefinition() ) + { + t = aT.Get4Momentum().t()-aT.Get4Momentum().mag()/MeV; + } + else if(bT.GetDefinition()==G4PionPlus::PionPlusDefinition() || + bT.GetDefinition()!=G4PionMinus::PionMinusDefinition()) + { + t = bT.Get4Momentum().t()-bT.Get4Momentum().mag()/MeV; + } + + static G4double it [26] = + {0,4,50,5.5,75,8,95,10,120,11.5,140,12,160,11.5,180,10,190,8,210,6,235,4,260,3,300,2}; + + if(t>it[24]) + { + theCross = 0; + } + else + { + G4int count = 0; + while(t>it[count])count+=2; + G4double x1 = it[count-2]; + G4double x2 = it[count]; + G4double y1 = it[count-1]; + G4double y2 = it[count+1]; + theCross = y1+(y2-y1)/(x2-x1)*(t-x1); + // G4cout << "Printing the absorption crosssection " + // < 1) G4Exception("G4PartialWidthTable::Width - ambiguity"); + if (n > 1) throw G4HadronicException(__FILE__, __LINE__, "G4PartialWidthTable::Width - ambiguity"); return width; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ParticleTypeConverter.cc b/source/processes/hadronic/models/im_r_matrix/src/G4ParticleTypeConverter.cc similarity index 98% rename from source/processes/hadronic/models/generator/scattering/src/G4ParticleTypeConverter.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4ParticleTypeConverter.cc index fd2bdbdc36..8faff78f31 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4ParticleTypeConverter.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4ParticleTypeConverter.cc @@ -22,6 +22,7 @@ // #include "G4ParticleTypeConverter.hh" +#include "G4HadronicException.hh" #include "G4Proton.hh" #include "G4Neutron.hh" @@ -217,7 +218,7 @@ G4ParticleTypeConverter::GenericType G4ParticleTypeConverter::GetGenericType(con G4cerr << "Unknown Particle : " << aParticleDef->GetParticleName() << G4endl; return UNKNOWN; - G4Exception("G4ParticleTypeConverter: unknown particle type!"); + throw G4HadronicException(__FILE__, __LINE__, "G4ParticleTypeConverter: unknown particle type!"); } @@ -232,7 +233,7 @@ G4int G4ParticleTypeConverter::GetUrqmdItyp(G4ParticleTypeConverter::GenericType //if (uMap.find(gType)!=uMap.end()) // hpw return uMap.operator[](gType); //else - G4Exception("G4ParticleTypeConverter: unknown particle type!"); + throw G4HadronicException(__FILE__, __LINE__, "G4ParticleTypeConverter: unknown particle type!"); return 0; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4ResonanceNames.cc b/source/processes/hadronic/models/im_r_matrix/src/G4ResonanceNames.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4ResonanceNames.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4ResonanceNames.cc index 6b7ad2a637..f80ada5b76 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4ResonanceNames.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4ResonanceNames.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "globals.hh" #include "G4ResonanceNames.hh" #include "G4VCrossSectionSource.hh" @@ -355,7 +355,7 @@ G4double G4ResonanceNames::MinMass(const G4String& name) else { G4cout << "G4ResonanceNames::MinMass - " << name << " not found" << G4endl; - G4Exception ("G4ResonanceNames::MinMass - resonance name not found"); + throw G4HadronicException(__FILE__, __LINE__, "G4ResonanceNames::MinMass - resonance name not found"); } return lowMass; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4Scatterer.cc b/source/processes/hadronic/models/im_r_matrix/src/G4Scatterer.cc similarity index 78% rename from source/processes/hadronic/models/generator/scattering/src/G4Scatterer.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4Scatterer.cc index e2d6ae5e75..177cdafca7 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4Scatterer.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4Scatterer.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4Scatterer.cc,v 1.19.2.1 2003/06/17 14:57:48 gunter Exp $ // +// $Id: G4Scatterer.cc,v 1.10 2003/11/19 15:35:30 hpw Exp $ // // #include "globals.hh" @@ -36,6 +36,9 @@ #include "G4CollisionPN.hh" #include "G4CollisionMesonBaryon.hh" +#include "G4CollisionInitialState.hh" +#include "G4HadTmpUtil.hh" + G4Scatterer::G4Scatterer() { // Set-up the categories of collisions the Scatterer can handle @@ -81,7 +84,7 @@ G4double G4Scatterer::GetTimeToInteraction(const G4KineticTrack& trk1, // if (trk1.GetDefinition()->GetPDGMass() + trk2.GetDefinition()->GetPDGMass() < sqrtS) if (trk1.GetActualMass() + trk2.GetActualMass() < sqrtS) { - G4LorentzVector mom1 = trk1.Get4Momentum(); + G4LorentzVector mom1 = trk1.GetTrackingMomentum(); // The nucleons of the nucleus are FROZEN, ie. do not move.. G4ThreeVector position = trk1.GetPosition() - trk2.GetPosition(); @@ -89,7 +92,7 @@ G4double G4Scatterer::GetTimeToInteraction(const G4KineticTrack& trk1, // G4ThreeVector velocity = (mom1.boostVector() - mom2.boostVector()) * c_light; if ( mom1.mag2() < -1.*eV ) { - G4cout << "negative m2:" << mom1.mag2() << G4endl; + G4cout << "G4Scatterer::GetTimeToInteraction(): negative m2:" << mom1.mag2() << G4endl; } G4ThreeVector velocity = mom1.vect()/mom1.e() * c_light; G4double collisionTime = - (position * velocity) / (velocity * velocity); // can't divide by /c_light; @@ -248,7 +251,7 @@ G4double G4Scatterer::GetTimeToInteraction(const G4KineticTrack& trk1, << ", mass1 = " << trk1.GetDefinition()->GetPDGMass() << ", mass2 = " << trk2.GetDefinition()->GetPDGMass() << G4endl; - G4Exception("G4Scatterer TimeToInteraction is INF"); + throw G4HadronicException(__FILE__, __LINE__, "G4Scatterer TimeToInteraction is INF"); // End of debugging */ } @@ -261,7 +264,15 @@ G4KineticTrackVector* G4Scatterer::Scatter(const G4KineticTrack& trk1, { // G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag(); G4LorentzVector pInitial=trk1.Get4Momentum() + trk2.Get4Momentum(); - + G4double energyBalance = pInitial.t(); + G4double pxBalance = pInitial.vect().x(); + G4double pyBalance = pInitial.vect().y(); + G4double pzBalance = pInitial.vect().z(); + G4int chargeBalance = G4lrint(trk1.GetDefinition()->GetPDGCharge() + + trk2.GetDefinition()->GetPDGCharge()); + G4int baryonBalance = trk1.GetDefinition()->GetBaryonNumber() + + trk2.GetDefinition()->GetBaryonNumber(); + G4VCollision* collision = FindCollision(trk1,trk2); if (collision != 0) { @@ -313,15 +324,42 @@ G4KineticTrackVector* G4Scatterer::Scatter(const G4KineticTrack& trk1, pFinal +=final->Get4Momentum(); } + #ifdef debug_G4Scatterer if ( (pInitial-pFinal).mag() > 0.1*MeV ) { - #ifdef debug_G4Scatterer G4cout << "G4Scatterer: momentum imbalance, pInitial= " <GetParticleName()<GetParticleName()<size(); hpw++) + { + G4cout << products->operator[](hpw)->GetDefinition()->GetParticleName()< & G4Scatterer:: +GetCollisions(G4KineticTrack * aProjectile, + std::vector & someCandidates, + G4double aCurrentTime) +{ + theCollisions.clear(); + std::vector::iterator j=someCandidates.begin(); + for(; j != someCandidates.end(); ++j) + { + G4double collisionTime = GetTimeToInteraction(*aProjectile, **j); + if(collisionTime == DBL_MAX) // no collision + { + continue; + } + G4KineticTrackVector aTarget; + aTarget.push_back(*j); + theCollisions.push_back( + new G4CollisionInitialState(collisionTime+aCurrentTime, aProjectile, aTarget, this) ); +// G4cerr <<" !!!!!! debug collisions "<GetDefinition()->GetParticleName()< & theTargets) +{ + G4KineticTrack target_reloc(*(theTargets[0])); + return Scatter(*aProjectile, target_reloc); +} diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VAngularDistribution.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VAngularDistribution.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4VAngularDistribution.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4VAngularDistribution.cc index 063e4685be..a09eb069b1 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4VAngularDistribution.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4VAngularDistribution.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VAngularDistribution.cc,v 1.3 2003/02/05 15:43:42 gcosmo Exp $ // +// $Id: G4VAngularDistribution.cc,v 1.1 2003/10/07 12:37:40 hpw Exp $ // // // // ------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VAnnihilationCollision.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VAnnihilationCollision.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4VAnnihilationCollision.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4VAnnihilationCollision.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VCollision.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VCollision.cc similarity index 98% rename from source/processes/hadronic/models/generator/scattering/src/G4VCollision.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4VCollision.cc index f5c31e6797..562b3c5bc9 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4VCollision.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4VCollision.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4VCollision.cc,v 1.7 2002/12/12 19:17:52 gunter Exp $ // +// $Id: G4VCollision.cc,v 1.1 2003/10/07 12:37:40 hpw Exp $ // #include "globals.hh" #include "G4ios.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VCrossSectionSource.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VCrossSectionSource.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4VCrossSectionSource.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4VCrossSectionSource.cc index 8dcb7188cb..3852e1dc85 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4VCrossSectionSource.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4VCrossSectionSource.cc @@ -20,10 +20,11 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VCrossSectionSource.cc,v 1.5 2003/06/16 17:09:13 gunter Exp $ // +// $Id: G4VCrossSectionSource.cc,v 1.2 2003/11/03 17:53:28 hpw Exp $ // // #include "globals.hh" +#include "G4HadronicException.hh" #include "G4ios.hh" #include "G4VCrossSectionSource.hh" #include "G4ParticleDefinition.hh" @@ -61,7 +62,7 @@ FindKeyParticle(const G4KineticTrack& trk1,const G4KineticTrack& trk2) const } else { - G4Exception("G4VCrossSectionSource: unklnown particles in FindKeyParticle"); + throw G4HadronicException(__FILE__, __LINE__, "G4VCrossSectionSource: unklnown particles in FindKeyParticle"); } return result; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VElasticCollision.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VElasticCollision.cc similarity index 98% rename from source/processes/hadronic/models/generator/scattering/src/G4VElasticCollision.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4VElasticCollision.cc index 5b36efe09b..e70bc450ce 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4VElasticCollision.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4VElasticCollision.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4VElasticCollision.cc,v 1.5 2002/12/12 19:17:52 gunter Exp $ // +// $Id: G4VElasticCollision.cc,v 1.1 2003/10/07 12:37:40 hpw Exp $ // #include "globals.hh" #include "G4VElasticCollision.hh" diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VScatterer.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VScatterer.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4VScatterer.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4VScatterer.cc index 021cad5b45..7b9721b09e 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4VScatterer.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4VScatterer.cc @@ -20,7 +20,7 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4VScatterer.cc,v 1.2 2002/12/12 19:17:52 gunter Exp $ // +// $Id: G4VScatterer.cc,v 1.1 2003/10/07 12:37:40 hpw Exp $ // // // // diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VScatteringCollision.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VScatteringCollision.cc similarity index 81% rename from source/processes/hadronic/models/generator/scattering/src/G4VScatteringCollision.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4VScatteringCollision.cc index 4244fc8bd1..ad3b154076 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4VScatteringCollision.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4VScatteringCollision.cc @@ -64,27 +64,32 @@ G4KineticTrackVector* G4VScatteringCollision::FinalState(const G4KineticTrack& t std::vector OutputDefinitions = GetOutgoingParticles(); if (OutputDefinitions.size() != 2) - G4Exception("G4VScatteringCollision: Too many output particles!"); + throw G4HadronicException(__FILE__, __LINE__, "G4VScatteringCollision: Too many output particles!"); if (OutputDefinitions[0]->IsShortLived() && OutputDefinitions[1]->IsShortLived()) { if(getenv("G4KCDEBUG")) G4cerr << "two shortlived for Type = "<GetPDGMass(); G4double outm2 = OutputDefinitions[1]->GetPDGMass(); if (OutputDefinitions[0]->IsShortLived()) - outm1 = SampleResonanceMass(outm1, OutputDefinitions[0]->GetPDGWidth(), - G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass(), - sqrtS-(G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass())); + { + outm1 = SampleResonanceMass(outm1, + OutputDefinitions[0]->GetPDGWidth(), + G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass(), + sqrtS-(G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass())); + } if (OutputDefinitions[1]->IsShortLived()) + { outm2 = SampleResonanceMass(outm2, OutputDefinitions[1]->GetPDGWidth(), - G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass(), - sqrtS-outm1); - + G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass(), + sqrtS-outm1); + } + // Angles of outgoing particles G4double cosTheta = angDistribution->CosTheta(s,m1,m2); G4double phi = angDistribution->Phi(); @@ -121,6 +126,17 @@ G4KineticTrackVector* G4VScatteringCollision::FinalState(const G4KineticTrack& t // Final tracks are copies of incoming ones, with modified 4-momenta + G4double chargeBalance = OutputDefinitions[0]->GetPDGCharge()+OutputDefinitions[1]->GetPDGCharge(); + chargeBalance-= trk1.GetDefinition()->GetPDGCharge(); + chargeBalance-= trk2.GetDefinition()->GetPDGCharge(); + if(abs(chargeBalance) >.1) + { + G4cout << "Charges in "<GetPDGCharge()<<" "<GetParticleName() + << OutputDefinitions[1]->GetPDGCharge()<<" "<GetParticleName() + << trk1.GetDefinition()->GetPDGCharge()<<" "<GetParticleName() + << trk2.GetDefinition()->GetPDGCharge()<<" "<GetParticleName()<(OutputDefinitions[0]), 0.0, trk1.GetPosition(), p4Final1); G4KineticTrack* final2 = new G4KineticTrack(const_cast(OutputDefinitions[1]), 0.0, diff --git a/source/processes/hadronic/models/generator/scattering/src/G4VXResonance.cc b/source/processes/hadronic/models/im_r_matrix/src/G4VXResonance.cc similarity index 94% rename from source/processes/hadronic/models/generator/scattering/src/G4VXResonance.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4VXResonance.cc index 7d855e05a7..5a9de5a828 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4VXResonance.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4VXResonance.cc @@ -42,6 +42,7 @@ #include "G4VXResonance.hh" #include "Randomize.hh" #include "G4Proton.hh" +#include "G4HadTmpUtil.hh" G4VXResonance::G4VXResonance() { } @@ -82,7 +83,7 @@ G4double G4VXResonance::IsospinCorrection(const G4KineticTrack& trk1, G4int iso3Proton = G4Proton::ProtonDefinition()->GetPDGiIsospin3(); G4double pWeight = clebsch.Weight(isoProton,iso3Proton, isoProton,iso3Proton, isoOut1,isoOut2); - if (pWeight == 0.) G4Exception ("G4VXResonance::IsospinCorrection, no resonances - pWeight is zero"); + if (pWeight == 0.) throw G4HadronicException(__FILE__, __LINE__, "G4VXResonance::IsospinCorrection, no resonances - pWeight is zero"); if (in1->IsShortLived() || in2->IsShortLived()) { @@ -97,8 +98,8 @@ G4double G4VXResonance::IsospinCorrection(const G4KineticTrack& trk1, std::vector iso = clebsch.GenerateIso3(isoIn1,iso3In1, isoIn2,iso3In2, isoProton,isoProton); - G4int isoA = static_cast(iso[0]); - G4int isoB = static_cast(iso[1]); + G4int isoA = G4lrint(iso[0]); + G4int isoB = G4lrint(iso[1]); G4double rWeight = clebsch.Weight(isoProton,isoA, isoProton,isoB, isoOut1,isoOut2); @@ -132,7 +133,7 @@ G4double G4VXResonance::DetailedBalance(const G4KineticTrack& trk1, G4ParticleDefinition* in2 = trk2.GetDefinition(); if(in1->IsShortLived() && in2->IsShortLived()) { - G4Exception("Detailed balance for resonance scattering still on the schedule."); + throw G4HadronicException(__FILE__, __LINE__, "Detailed balance for resonance scattering still on the schedule."); } G4double result = 0.; diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XAnnihilationChannel.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XAnnihilationChannel.cc similarity index 98% rename from source/processes/hadronic/models/generator/scattering/src/G4XAnnihilationChannel.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XAnnihilationChannel.cc index 6e88f1542b..4aa07adac8 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XAnnihilationChannel.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XAnnihilationChannel.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "globals.hh" #include "G4ios.hh" #include "G4XAnnihilationChannel.hh" @@ -99,7 +99,7 @@ G4double G4XAnnihilationChannel::CrossSection(const G4KineticTrack& trk1, G4double cleb = NormalizedClebsch(trk1,trk2); G4double s = eCM * eCM; - if (s == 0.) G4Exception("G4XAnnihilationChannel::CrossSection - eCM = 0"); + if (s == 0.) throw G4HadronicException(__FILE__, __LINE__, "G4XAnnihilationChannel::CrossSection - eCM = 0"); G4double pCM = sqrt((s-(m1+m2)*(m1+m2))*(s-(m1-m2)*(m1-m2))/(4.*s)); diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XAqmElastic.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XAqmElastic.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4XAqmElastic.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XAqmElastic.cc index 71cb31d654..ee203f2f05 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XAqmElastic.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XAqmElastic.cc @@ -90,7 +90,7 @@ G4double G4XAqmElastic::CrossSection(const G4KineticTrack& trk1, const G4Kinetic // Verify that elastic cross section < total cross section if (sigma > sigmaTot) - G4Exception("G4XAqmElastic::CrossSection - elastic cross section greater than total"); + throw G4HadronicException(__FILE__, __LINE__, "G4XAqmElastic::CrossSection - elastic cross section greater than total"); return sigma; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XAqmTotal.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XAqmTotal.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XAqmTotal.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XAqmTotal.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltaTable.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XDeltaDeltaTable.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltaTable.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XDeltaDeltaTable.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltastarTable.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XDeltaDeltastarTable.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XDeltaDeltastarTable.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XDeltaDeltastarTable.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XDeltaNstarTable.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XDeltaNstarTable.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XDeltaNstarTable.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XDeltaNstarTable.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XMesonBaryonElastic.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XMesonBaryonElastic.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XMesonBaryonElastic.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XMesonBaryonElastic.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNDeltaTable.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XNDeltaTable.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XNDeltaTable.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XNDeltaTable.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNDeltastarTable.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XNDeltastarTable.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XNDeltastarTable.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XNDeltastarTable.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNNElastic.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XNNElastic.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XNNElastic.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XNNElastic.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNNElasticLowE.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XNNElasticLowE.cc similarity index 95% rename from source/processes/hadronic/models/generator/scattering/src/G4XNNElasticLowE.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XNNElasticLowE.cc index ea02f7a272..8ebf30eac8 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XNNElasticLowE.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XNNElasticLowE.cc @@ -89,14 +89,14 @@ G4XNNElasticLowE::G4XNNElasticLowE() _eMin = _eMinTable * GeV; _eMax = exp(log(_eMinTable) + tableSize * _eStepLog) * GeV; if (_eMin < _lowLimit) - G4Exception("G4XNNElasticLowE::G4XNNElasticLowE - Low energy limit not valid"); + throw G4HadronicException(__FILE__, __LINE__, "G4XNNElasticLowE::G4XNNElasticLowE - Low energy limit not valid"); if (_highLimit > _eMax) - G4Exception("G4XNNElasticLowE::G4XNNElasticLowE - High energy limit not valid"); + throw G4HadronicException(__FILE__, __LINE__, "G4XNNElasticLowE::G4XNNElasticLowE - High energy limit not valid"); G4PhysicsVector* pp = new G4PhysicsLnVector(_eMin,_eMax,tableSize); _eMin = exp(log(_eMinTable)-_eStepLog)*GeV; if (_eMin < _lowLimit) - G4Exception("G4XNNElasticLowE::G4XNNElasticLowE - Low energy limit not valid"); + throw G4HadronicException(__FILE__, __LINE__, "G4XNNElasticLowE::G4XNNElasticLowE - Low energy limit not valid"); G4PhysicsVector* np = new G4PhysicsLnVector(_eMin,_eMax,tableSize); G4int i; diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNNTotal.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XNNTotal.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XNNTotal.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XNNTotal.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNNTotalLowE.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XNNTotalLowE.cc similarity index 97% rename from source/processes/hadronic/models/generator/scattering/src/G4XNNTotalLowE.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XNNTotalLowE.cc index 8caccca427..973556574b 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XNNTotalLowE.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XNNTotalLowE.cc @@ -91,7 +91,7 @@ G4double G4XNNTotalLowE::CrossSection(const G4KineticTrack& trk1, const G4Kineti } else { - G4Exception("G4XNNTotalLowE: particle key out of range"); + throw G4HadronicException(__FILE__, __LINE__, "G4XNNTotalLowE: particle key out of range"); } return result; diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XNNstarTable.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XNNstarTable.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XNNstarTable.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XNNstarTable.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XPDGElastic.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XPDGElastic.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4XPDGElastic.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XPDGElastic.cc index c18a155d05..5e987c79d4 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XPDGElastic.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XPDGElastic.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4XPDGElastic.cc,v 1.6 2003/06/16 17:09:22 gunter Exp $ // +// $Id: G4XPDGElastic.cc,v 1.1 2003/10/07 12:37:41 hpw Exp $ // // ------------------------------------------------------------------- // // PDG Elastic cross section diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XPDGTotal.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XPDGTotal.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XPDGTotal.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XPDGTotal.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XResonance.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XResonance.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4XResonance.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XResonance.cc index b876a24a71..9d7d3fc343 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XResonance.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XResonance.cc @@ -42,7 +42,7 @@ G4XResonance::G4XResonance(const G4ParticleDefinition* in1, table = sigmaTable.CrossSectionTable(); // Check if there is a valid cross section table for this channel if (table == 0) - G4Exception("G4XResonance::G4XResonance - no cross section table available"); + throw G4HadronicException(__FILE__, __LINE__, "G4XResonance::G4XResonance - no cross section table available"); name = in1->GetParticleName() + in2->GetParticleName() + " -> " + subType1 + subType2; } diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XnpElastic.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XnpElastic.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XnpElastic.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XnpElastic.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XnpElasticLowE.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XnpElasticLowE.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4XnpElasticLowE.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XnpElasticLowE.cc index a9b9ec3e61..83538885dd 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XnpElasticLowE.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XnpElasticLowE.cc @@ -91,10 +91,10 @@ G4XnpElasticLowE::G4XnpElasticLowE() // Protections: validity limits must be compatible with available data if (_eMin < _lowLimit) - G4Exception("G4XnpElasticLowE::G4XnpElasticLowE - Low energy limit not valid"); + throw G4HadronicException(__FILE__, __LINE__, "G4XnpElasticLowE::G4XnpElasticLowE - Low energy limit not valid"); if (_highLimit > _eMax) - G4Exception("G4XnpElasticLowE::G4XnpElasticLowE - High energy limit not valid"); + throw G4HadronicException(__FILE__, __LINE__, "G4XnpElasticLowE::G4XnpElasticLowE - High energy limit not valid"); _sigma = new G4PhysicsLnVector(_eMin,_eMax,_tableSize); G4int i; diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XnpTotal.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XnpTotal.cc similarity index 100% rename from source/processes/hadronic/models/generator/scattering/src/G4XnpTotal.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XnpTotal.cc diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XnpTotalLowE.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XnpTotalLowE.cc similarity index 96% rename from source/processes/hadronic/models/generator/scattering/src/G4XnpTotalLowE.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XnpTotalLowE.cc index ff6bbc4097..b2c22968f4 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XnpTotalLowE.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XnpTotalLowE.cc @@ -91,10 +91,10 @@ G4XnpTotalLowE::G4XnpTotalLowE() // Protections: validity limits must be compatible with available data if (_eMin < _lowLimit) - G4Exception("G4XnpTotalLowE::G4XnpTotalLowE - Low energy limit not valid"); + throw G4HadronicException(__FILE__, __LINE__, "G4XnpTotalLowE::G4XnpTotalLowE - Low energy limit not valid"); if (_highLimit > _eMax) - G4Exception("G4XnpTotalLowE::G4XnpTotalLowE - High energy limit not valid"); + throw G4HadronicException(__FILE__, __LINE__, "G4XnpTotalLowE::G4XnpTotalLowE - High energy limit not valid"); _sigma = new G4PhysicsLnVector(_eMin,_eMax,_tableSize); G4int i; diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XpimNTotal.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XpimNTotal.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4XpimNTotal.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XpimNTotal.cc index 285e2d176e..e230f66236 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XpimNTotal.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XpimNTotal.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4XpimNTotal.hh" #include diff --git a/source/processes/hadronic/models/generator/scattering/src/G4XpipNTotal.cc b/source/processes/hadronic/models/im_r_matrix/src/G4XpipNTotal.cc similarity index 99% rename from source/processes/hadronic/models/generator/scattering/src/G4XpipNTotal.cc rename to source/processes/hadronic/models/im_r_matrix/src/G4XpipNTotal.cc index b42acf45cb..c5f9b28adf 100644 --- a/source/processes/hadronic/models/generator/scattering/src/G4XpipNTotal.cc +++ b/source/processes/hadronic/models/im_r_matrix/src/G4XpipNTotal.cc @@ -19,7 +19,7 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** - +// #include "G4XpipNTotal.hh" #include diff --git a/source/processes/hadronic/models/isotope_production/GNUmakefile b/source/processes/hadronic/models/isotope_production/GNUmakefile index fe28d485bd..396a522bdb 100644 --- a/source/processes/hadronic/models/isotope_production/GNUmakefile +++ b/source/processes/hadronic/models/isotope_production/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2003/06/18 13:22:40 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -19,6 +19,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/models/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ diff --git a/source/processes/hadronic/models/leading_particle/GNUmakefile b/source/processes/hadronic/models/leading_particle/GNUmakefile index b7da394822..5243e9b7da 100644 --- a/source/processes/hadronic/models/leading_particle/GNUmakefile +++ b/source/processes/hadronic/models/leading_particle/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 2001/12/13 14:59:42 kurasige Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 16:42:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -20,6 +20,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/models/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ diff --git a/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh b/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh index c7188c480c..5a96d38d23 100644 --- a/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh +++ b/source/processes/hadronic/models/leading_particle/include/G4Mars5GeV.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mars5GeV.hh,v 1.1 2001/12/13 14:59:46 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mars5GeV.hh,v 1.2 2003/07/01 16:28:45 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -82,7 +82,7 @@ public: // with description ~G4Mars5GeV() { ; }; // virtual methods derived from G4VEvtBiasMechanism - G4VParticleChange* ApplyYourself( const G4Track &aTrack, + G4HadFinalState* ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: @@ -158,7 +158,7 @@ public: // with description private: // incident information G4double incidentWeight; - const G4DynamicParticle* incidentParticle; + const G4HadProjectile* incidentParticle; G4int incidentMarsEncoding; void GetTargetNuclei(const G4Material*); //fill up fANucle and fZnucl diff --git a/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc b/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc index 733810ad81..26f87e3501 100644 --- a/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc +++ b/source/processes/hadronic/models/leading_particle/src/G4Mars5GeV.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Mars5GeV.cc,v 1.5 2003/06/03 09:37:45 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Mars5GeV.cc,v 1.8 2003/11/03 17:53:49 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -74,27 +74,23 @@ G4Mars5GeV::G4Mars5GeV() : G4InelasticInteraction(), selec3.Eth = 0.001*MeV; } -G4VParticleChange* G4Mars5GeV::ApplyYourself(const G4Track& aTrack, +G4HadFinalState* G4Mars5GeV::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& ) { + theParticleChange.Clear(); #ifdef G4VERBOSE if (GetVerboseLevel() > 2) { G4cout << " G4Mars5GeV:ApplyYourself" << G4endl; } #endif - theParticleChange.Initialize(aTrack); - // get the incident particle type - incidentParticle = aTrack.GetDynamicParticle(); + incidentParticle = &aTrack; // get the incident particle energy/momentum incidentMarsEncoding = GetMarsEncoding(incidentParticle->GetDefinition()); - // get weight of the parent track - incidentWeight = aTrack.GetWeight(); - // Atomic and charge number GetTargetNuclei( aTrack.GetMaterial() ); @@ -109,9 +105,6 @@ G4VParticleChange* G4Mars5GeV::ApplyYourself(const G4Track& aTrack, // create secondaries // set max. number of secondaries - theParticleChange.SetNumberOfSecondaries(numberOfSecondaries); - // secondary weight is determined by this model - theParticleChange.SetSecondaryWeightByProcess(true); for (idx=0; idxSetWeight(fweight); + G4HadSecondary *track = new G4HadSecondary(secondaries[idx], fweight); theParticleChange.AddSecondary(track); } } // kill incident particle - theParticleChange.SetStatusChange(fStopAndKill); - theParticleChange.SetLocalEnergyDeposit (0.); + theParticleChange.SetStatusChange(stopAndKill); return &theParticleChange; @@ -406,7 +392,7 @@ void G4Mars5GeV::AddSecondary() G4cout << " Particle :" << selec1.Tprod; G4cout << ":" << GetParticleName(selec1.Tprod) <GetMomentumDirection(); + G4ThreeVector pin = incidentParticle->Get4Momentum().vect().unit(); G4ThreeVector pout; Trans(&pin, &pout); if (numberOfSecondaries>=FastVectorSize) { - G4Exception(" G4Mars5GeV::AddSecondary() too many secondaries"); + G4String text = " G4Mars5GeV::AddSecondary() too many secondaries"; + throw G4HadronicException(__FILE__, __LINE__, text); } // create seconday Dynamic Particle @@ -435,7 +422,7 @@ void G4Mars5GeV::AddSecondary() // add secondary into list secondaries.SetElement(numberOfSecondaries, secondary); - weightOfSecondaries[numberOfSecondaries] = selec1.V * incidentWeight; + weightOfSecondaries[numberOfSecondaries] = selec1.V; numberOfSecondaries +=1; } diff --git a/source/processes/hadronic/models/low_energy/GNUmakefile b/source/processes/hadronic/models/low_energy/GNUmakefile index 05e2e5c4c0..ff2f069cb2 100644 --- a/source/processes/hadronic/models/low_energy/GNUmakefile +++ b/source/processes/hadronic/models/low_energy/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:12:37 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 16:42:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -19,6 +19,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/models/management/include/ \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include/ \ -I$(G4BASE)/particles/management/include \ diff --git a/source/processes/hadronic/models/low_energy/include/G4LCapture.hh b/source/processes/hadronic/models/low_energy/include/G4LCapture.hh index 0cc992f97e..e1aab73772 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LCapture.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LCapture.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LCapture.hh,v 1.8 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LCapture.hh,v 1.9 2003/07/01 15:49:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Low energy model: neutron capture -- header file @@ -68,7 +68,7 @@ public: ~G4LCapture(); - G4VParticleChange* ApplyYourself(const G4Track& aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& targetNucleus); private: diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh index 03c29076d7..be8511c124 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAlphaInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAlphaInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAlphaInelastic.hh,v 1.7 2003/07/01 15:49:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy Alpha Inelastic Process // J.L. Chuma, TRIUMF, 21-Feb-1997 @@ -54,7 +54,7 @@ ~G4LEAlphaInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); }; diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh index 2ae36ef195..a60ddcf349 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiKaonZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiKaonZeroInelastic.hh,v 1.2 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiKaonZeroInelastic.hh,v 1.4 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy KaonZeroL Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 @@ -53,15 +53,15 @@ ~G4LEAntiKaonZeroInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASK0B - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh index de262f381b..f4753c54ac 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiLambdaInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiLambdaInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiLambdaInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy AntiLambda Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -52,16 +52,16 @@ ~G4LEAntiLambdaInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASAL0 - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh index 7e1df6a7b3..d0fa5482f0 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiNeutronInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiNeutronInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiNeutronInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -53,16 +53,16 @@ ~G4LEAntiNeutronInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASNB - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh index 125ade0ea4..f560f5e50f 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiOmegaMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiOmegaMinusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiOmegaMinusInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy AntiOmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -52,16 +52,16 @@ ~G4LEAntiOmegaMinusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASOM - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh index 6cd9239ab6..7cc67815cf 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiProtonInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiProtonInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiProtonInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -52,16 +52,16 @@ ~G4LEAntiProtonInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASPB - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh index 54cca29a89..47989914be 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiSigmaMinusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiSigmaMinusInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy AntiSigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -52,16 +52,16 @@ ~G4LEAntiSigmaMinusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASASM - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh index 93ba09cefc..fa2366caa0 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiSigmaPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiSigmaPlusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiSigmaPlusInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy AntiSigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -52,16 +52,16 @@ ~G4LEAntiSigmaPlusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASASP - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh index f13a19a46e..e5e18be076 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiXiMinusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiXiMinusInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy AntiXiMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -53,16 +53,16 @@ ~G4LEAntiXiMinusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASAL0 - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh index c46620d033..a303cb920d 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEAntiXiZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiXiZeroInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiXiZeroInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -52,16 +52,16 @@ ~G4LEAntiXiZeroInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASAL0 - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh index c455589786..ccbba4ad92 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEDeuteronInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEDeuteronInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEDeuteronInelastic.hh,v 1.7 2003/07/01 15:49:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy Deuteron Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 @@ -54,7 +54,7 @@ ~G4LEDeuteronInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); }; diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh index bde4762821..c206d4649b 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEKaonMinusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEKaonMinusInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy KaonMinus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 @@ -53,15 +53,15 @@ ~G4LEKaonMinusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASKM - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh index 88a21210a3..3223f9b918 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEKaonPlusInelastic.hh,v 1.6 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEKaonPlusInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 @@ -53,15 +53,15 @@ ~G4LEKaonPlusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASKP - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh index a05065d83a..8ee58910ac 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEKaonZeroInelastic.hh,v 1.2 2002/12/12 19:18:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEKaonZeroInelastic.hh,v 1.4 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy KaonZeroS Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 @@ -53,15 +53,15 @@ ~G4LEKaonZeroInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASK0 - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh index cc603ad955..78abc916a3 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroLInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEKaonZeroLInelastic.hh,v 1.8 2003/02/10 09:19:56 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEKaonZeroLInelastic.hh,v 1.9 2003/07/01 15:49:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -49,7 +49,7 @@ class G4LEKaonZeroLInelastic : public G4InelasticInteraction virtual ~G4LEKaonZeroLInelastic(){ } - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { if(G4UniformRand() < 0.50) { diff --git a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh index 69e17d7c64..f23a5a2560 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEKaonZeroSInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEKaonZeroSInelastic.hh,v 1.8 2003/02/10 09:20:02 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEKaonZeroSInelastic.hh,v 1.9 2003/07/01 15:49:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Gheisha High Energy model class -- header file @@ -49,7 +49,7 @@ class G4LEKaonZeroSInelastic : public G4InelasticInteraction virtual ~G4LEKaonZeroSInelastic(){ } - G4VParticleChange * ApplyYourself( const G4Track &aTrack, G4Nucleus &targetNucleus ) + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { if(G4UniformRand() < 0.50) { diff --git a/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh index 1ed64a8c86..f5f494e352 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LELambdaInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LELambdaInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LELambdaInelastic.hh,v 1.8 2003/10/31 18:04:15 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 @@ -52,16 +52,16 @@ ~G4LELambdaInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASL0 - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh index 7174eb96a7..d12f080fad 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LENeutronInelastic.hh @@ -48,15 +48,15 @@ ~G4LENeutronInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASN - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, @@ -64,7 +64,7 @@ G4bool &quasiElastic ); void SlowNeutron( - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct &modifiedOriginal, G4ReactionProduct &targetParticle, G4Nucleus & targetNucleus ); diff --git a/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh index 64e8331d1b..b4573c16d0 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEOmegaMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEOmegaMinusInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEOmegaMinusInelastic.hh,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 @@ -52,15 +52,15 @@ ~G4LEOmegaMinusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASOM - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh index d4c7018373..10c0d12c9a 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEPionMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEPionMinusInelastic.hh,v 1.7 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEPionMinusInelastic.hh,v 1.9 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy PionMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 @@ -52,15 +52,15 @@ ~G4LEPionMinusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASPIM - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh index fec2fee43b..a312c74bf7 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEPionPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEPionPlusInelastic.hh,v 1.7 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEPionPlusInelastic.hh,v 1.9 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 @@ -52,15 +52,15 @@ ~G4LEPionPlusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASPIP - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh index f1bb215ad0..48f8fd76c4 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEProtonInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEProtonInelastic.hh,v 1.7 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEProtonInelastic.hh,v 1.9 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy Proton Inelastic Process // original by H.P. Wellisch @@ -55,14 +55,14 @@ ~G4LEProtonInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASP - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, @@ -70,7 +70,7 @@ G4bool &quasiElastic ); void SlowProton( - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4Nucleus &targetNucleus ); }; diff --git a/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh index 18949e43f6..f6bfd887fa 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LESigmaMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LESigmaMinusInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LESigmaMinusInelastic.hh,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy SigmaMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 @@ -53,15 +53,15 @@ ~G4LESigmaMinusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASSM - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh index 628f0d80d2..f56d3fd12b 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LESigmaPlusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LESigmaPlusInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LESigmaPlusInelastic.hh,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy SigmaPlus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 @@ -52,15 +52,15 @@ ~G4LESigmaPlusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASSM - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh index e409643f5f..1a08f72e3c 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LETritonInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LETritonInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LETritonInelastic.hh,v 1.7 2003/07/01 15:49:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy Triton Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 @@ -54,7 +54,7 @@ ~G4LETritonInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); }; diff --git a/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh index 0c4133f191..935afc4510 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEXiMinusInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEXiMinusInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEXiMinusInelastic.hh,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy XiMinus Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 @@ -52,15 +52,15 @@ ~G4LEXiMinusInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASXM - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh b/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh index 7912d4821b..c8e276d397 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LEXiZeroInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEXiZeroInelastic.hh,v 1.6 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEXiZeroInelastic.hh,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy XiZero Inelastic Process // original by J.L. Chuma, TRIUMF, 03-Feb-1997 @@ -53,15 +53,15 @@ ~G4LEXiZeroInelastic() { } - G4VParticleChange *ApplyYourself( const G4Track &aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ); private: void Cascade( // derived from CASX0 - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/include/G4LElastic.hh b/source/processes/hadronic/models/low_energy/include/G4LElastic.hh index 22b8cd0bde..9501f56cc3 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LElastic.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LElastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LElastic.hh,v 1.8 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LElastic.hh,v 1.9 2003/07/01 15:49:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Model: Low energy elastic scattering -- header file @@ -72,7 +72,7 @@ public: ~G4LElastic() {}; - G4VParticleChange* ApplyYourself(const G4Track& aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile & aTrack, G4Nucleus & targetNucleus); private: diff --git a/source/processes/hadronic/models/low_energy/include/G4LFission.hh b/source/processes/hadronic/models/low_energy/include/G4LFission.hh index d92b92663d..8af0191188 100644 --- a/source/processes/hadronic/models/low_energy/include/G4LFission.hh +++ b/source/processes/hadronic/models/low_energy/include/G4LFission.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LFission.hh,v 1.8 2002/12/12 19:18:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LFission.hh,v 1.9 2003/07/01 15:49:03 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Low-energy Model: Fission -- header file @@ -69,7 +69,7 @@ public: G4LFission(); ~G4LFission(); - G4VParticleChange* ApplyYourself(const G4Track& aTrack, + G4HadFinalState * ApplyYourself(const G4HadProjectile & aTrack, G4Nucleus& targetNucleus); static G4double Atomas(const G4double A, const G4double Z); diff --git a/source/processes/hadronic/models/low_energy/src/G4LCapture.cc b/source/processes/hadronic/models/low_energy/src/G4LCapture.cc index 8fe4dc9749..f4519492b0 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.8 2002/12/12 19:18:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LCapture.cc,v 1.9 2003/07/01 15:49:04 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // G4 Model: Low-energy Neutron Capture @@ -44,9 +44,7 @@ G4LCapture::G4LCapture() : G4HadronicInteraction() -{ - theParticleChange.SetNumberOfSecondaries(2); - +{ SetMinEnergy( 0.0*GeV ); SetMaxEnergy( DBL_MAX ); } @@ -56,25 +54,24 @@ G4LCapture::~G4LCapture() theParticleChange.Clear(); } -G4VParticleChange* -G4LCapture::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) +G4HadFinalState* +G4LCapture::ApplyYourself(const G4HadProjectile & aTrack, G4Nucleus& targetNucleus) { - theParticleChange.Initialize(aTrack); - const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); -// const G4Material* aMaterial = aTrack.GetMaterial(); + theParticleChange.Clear(); + theParticleChange.SetStatusChange(stopAndKill); - theParticleChange.SetStatusChange(fStopAndKill); G4double N = targetNucleus.GetN(); G4double Z = targetNucleus.GetZ(); - G4double P = aParticle->GetTotalMomentum()/GeV; - G4double Px = P*(aParticle->GetMomentumDirection().x()); - G4double Py = P*(aParticle->GetMomentumDirection().y()); - G4double Pz = P*(aParticle->GetMomentumDirection().z()); - G4double E = aParticle->GetTotalEnergy()/GeV; - G4double E0 = aParticle->GetDefinition()->GetPDGMass()/GeV; - G4double Q = aParticle->GetDefinition()->GetPDGCharge(); + 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 E = theMom.e()/GeV; + G4double E0 = aTrack.GetDefinition()->GetPDGMass()/GeV; + G4double Q = aTrack.GetDefinition()->GetPDGCharge(); if (verboseLevel > 1) { G4cout << "G4LCapture:ApplyYourself: incident particle:" << G4endl; G4cout << "P " << P << " GeV/c" << G4endl; diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAlphaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAlphaInelastic.cc index a9c02098b0..8d66b0fd6d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAlphaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAlphaInelastic.cc @@ -32,27 +32,25 @@ #include "Randomize.hh" #include "G4Electron.hh" - G4VParticleChange * - G4LEAlphaInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAlphaInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); + theParticleChange.Clear(); G4double A = targetNucleus.GetN(); G4double Z = targetNucleus.GetZ(); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); - + + G4double kineticEnergy = aTrack.Get4Momentum().e()-aTrack.GetDefinition()->GetPDGMass(); if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAlphaInelastic::ApplyYourself called" << G4endl; - G4cout << "kinetc energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; + G4cout << "kinetc energy = " < 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAntiKaonZeroInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -95,7 +94,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -105,11 +104,18 @@ originalIncident, currentParticle, targetParticle, incidentHasChanged, targetHasChanged, quasiElastic ); - CalculateMomenta( vec, vecLen, + try + { + CalculateMomenta( vec, vecLen, originalIncident, originalTarget, modifiedOriginal, targetNucleus, currentParticle, targetParticle, incidentHasChanged, targetHasChanged, quasiElastic ); - + } + catch(G4HadReentrentException aR) + { + aR.Report(G4cout); + throw G4HadReentrentException(__FILE__, __LINE__, "Bailing out"); + } SetUpChange( vec, vecLen, currentParticle, targetParticle, incidentHasChanged ); @@ -120,9 +126,9 @@ void G4LEAntiKaonZeroInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, @@ -140,8 +146,8 @@ // multiplicity per Inelastic reaction. // const G4double mOriginal = originalIncident->GetDefinition()->GetPDGMass()/MeV; - const G4double etOriginal = originalIncident->GetTotalEnergy()/MeV; - const G4double pOriginal = originalIncident->GetTotalMomentum()/MeV; + const G4double etOriginal = originalIncident->Get4Momentum().e()/MeV; + const G4double pOriginal = originalIncident->Get4Momentum().vect().mag()/MeV; const G4double targetMass = targetParticle.GetMass()/MeV; G4double centerofmassEnergy = sqrt( mOriginal*mOriginal + targetMass*targetMass + diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc index 97130987d6..973f5de705 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiLambdaInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiLambdaInelastic.cc,v 1.6 2003/06/16 17:10:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiLambdaInelastic.cc,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: AntiLambda Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LEAntiLambdaInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEAntiLambdaInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAntiLambdaInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; // // create the target particle // @@ -46,7 +44,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAntiLambdaInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -96,7 +94,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -122,9 +120,9 @@ void G4LEAntiLambdaInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc index 67fc7729e7..d800c325a8 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiNeutronInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiNeutronInelastic.cc,v 1.9 2003/06/16 17:10:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiNeutronInelastic.cc,v 1.11 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 @@ -34,13 +34,11 @@ #include "G4LEAntiNeutronInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEAntiNeutronInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAntiNeutronInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; // // create the target particle // @@ -48,7 +46,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAntiNeutronInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -98,7 +96,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -128,9 +126,9 @@ void G4LEAntiNeutronInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc index 8f3375a3a0..dc514b96cc 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiOmegaMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiOmegaMinusInelastic.cc,v 1.7 2003/06/16 17:10:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiOmegaMinusInelastic.cc,v 1.9 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: AntiOmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 @@ -36,13 +36,11 @@ #include "G4LEAntiOmegaMinusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEAntiOmegaMinusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAntiOmegaMinusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -51,7 +49,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; G4cout << "target particle = " << originalTarget->GetDefinition()->GetParticleName() @@ -99,7 +97,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -126,9 +124,9 @@ void G4LEAntiOmegaMinusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc index cf3e25dd33..a8bec7b4c6 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiProtonInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiProtonInelastic.cc,v 1.9 2003/06/16 17:10:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiProtonInelastic.cc,v 1.11 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 13-Feb-1997 @@ -33,13 +33,11 @@ #include "G4LEAntiProtonInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEAntiProtonInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAntiProtonInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -48,7 +46,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAntiProtonInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -97,7 +95,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -127,9 +125,9 @@ void G4LEAntiProtonInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc index 3114a522c5..546a23b309 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiSigmaMinusInelastic.cc,v 1.6 2003/06/16 17:10:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiSigmaMinusInelastic.cc,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: AntiSigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -33,13 +33,11 @@ #include "G4LEAntiSigmaMinusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEAntiSigmaMinusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAntiSigmaMinusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -48,7 +46,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAntiSigmaMinusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -97,7 +95,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -123,9 +121,9 @@ void G4LEAntiSigmaMinusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc index 84adb4f953..3b91d723c0 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiSigmaPlusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiSigmaPlusInelastic.cc,v 1.6 2003/06/16 17:10:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiSigmaPlusInelastic.cc,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: AntiSigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LEAntiSigmaPlusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEAntiSigmaPlusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAntiSigmaPlusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -47,7 +45,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAntiSigmaPlusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -96,7 +94,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -122,9 +120,9 @@ void G4LEAntiSigmaPlusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc index ab0cc73c8d..cda2c6a33d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiXiMinusInelastic.cc,v 1.6 2003/06/16 17:10:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiXiMinusInelastic.cc,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: AntiXiMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 @@ -36,13 +36,11 @@ #include "G4LEAntiXiMinusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEAntiXiMinusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAntiXiMinusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -51,7 +49,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAntiXiMinusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -100,7 +98,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -126,9 +124,9 @@ void G4LEAntiXiMinusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc index 030b50c556..09c1f86473 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEAntiXiZeroInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEAntiXiZeroInelastic.cc,v 1.6 2003/06/16 17:10:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEAntiXiZeroInelastic.cc,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 @@ -36,13 +36,11 @@ #include "G4LEAntiXiZeroInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEAntiXiZeroInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEAntiXiZeroInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; // // create the target particle // @@ -50,7 +48,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEAntiXiZeroInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -99,7 +97,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -125,9 +123,9 @@ void G4LEAntiXiZeroInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEDeuteronInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEDeuteronInelastic.cc index 19ef6cff51..0d0a62cf6d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEDeuteronInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEDeuteronInelastic.cc @@ -32,17 +32,16 @@ #include "Randomize.hh" #include "G4Electron.hh" - G4VParticleChange * - G4LEDeuteronInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEDeuteronInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + theParticleChange.Clear(); + const G4HadProjectile *originalIncident = &aTrack; if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEDeuteronInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -78,7 +77,6 @@ theParticleChange.SetEnergyChange( vec[0]->GetKineticEnergy() ); delete vec[0]; // - theParticleChange.SetNumberOfSecondaries( vecLen-1 ); G4DynamicParticle *pd; for( G4int i=1; iGetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // create the target particle @@ -49,15 +47,15 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEKaonMinusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy() << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; G4cout << "target particle = " << originalTarget->GetDefinition()->GetParticleName() << G4endl; } - G4ReactionProduct currentParticle( originalIncident->GetDefinition() ); - currentParticle.SetMomentum( originalIncident->GetMomentum() ); + G4ReactionProduct currentParticle( const_cast(originalIncident->GetDefinition()) ); + currentParticle.SetMomentum( originalIncident->Get4Momentum().vect() ); currentParticle.SetKineticEnergy( originalIncident->GetKineticEnergy() ); // Fermi motion and evaporation @@ -99,7 +97,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -124,9 +122,9 @@ void G4LEKaonMinusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc index d7b92df736..4f7f132308 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonPlusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEKaonPlusInelastic.cc,v 1.8 2003/06/16 17:10:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEKaonPlusInelastic.cc,v 1.10 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LEKaonPlusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEKaonPlusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEKaonPlusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // create the target particle @@ -48,15 +46,15 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEKaonPlusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy() << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; G4cout << "target particle = " << originalTarget->GetDefinition()->GetParticleName() << G4endl; } - G4ReactionProduct currentParticle( originalIncident->GetDefinition() ); - currentParticle.SetMomentum( originalIncident->GetMomentum() ); + G4ReactionProduct currentParticle( const_cast(originalIncident->GetDefinition())); + currentParticle.SetMomentum( originalIncident->Get4Momentum().vect() ); currentParticle.SetKineticEnergy( originalIncident->GetKineticEnergy() ); // Fermi motion and evaporation @@ -98,7 +96,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -124,9 +122,9 @@ void G4LEKaonPlusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc index 5e849edc75..ddfd2f4e34 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEKaonZeroInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEKaonZeroInelastic.cc,v 1.4 2003/06/16 17:10:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEKaonZeroInelastic.cc,v 1.6 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Low Energy KaonZeroShort Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LEKaonZeroInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEKaonZeroInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEKaonZeroInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + const G4HadProjectile *originalIncident = &aTrack; // // create the target particle // @@ -46,7 +44,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEKaonZeroInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -95,7 +93,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -120,9 +118,9 @@ void G4LEKaonZeroInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc index 73750b267a..092b3e3f8a 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LELambdaInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LELambdaInelastic.cc,v 1.6 2003/06/16 17:10:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LELambdaInelastic.cc,v 1.8 2003/10/31 18:04:16 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LELambdaInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LELambdaInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LELambdaInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + const G4HadProjectile *originalIncident = &aTrack; // // create the target particle // @@ -46,7 +44,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LELambdaInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -96,7 +94,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -121,9 +119,9 @@ void G4LELambdaInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LENeutronInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LENeutronInelastic.cc index f192edbe9b..1a499cf3cc 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LENeutronInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LENeutronInelastic.cc @@ -30,13 +30,12 @@ #include "G4Electron.hh" // #include "DumpFrame.hh" - G4VParticleChange * - G4LENeutronInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LENeutronInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + theParticleChange.Clear(); + const G4HadProjectile *originalIncident = &aTrack; // // create the target particle // @@ -44,7 +43,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LENeutronInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -53,9 +52,9 @@ } /* not true, for example for Fe56, etc.. if( originalIncident->GetKineticEnergy()/MeV < 0.000001 ) - G4Exception("G4LENeutronInelastic: should be capture process!"); - if( originalIncident->GetMomentum().mag()/MeV < 0.000001 ) - G4Exception("G4LENeutronInelastic: should be capture process!"); + throw G4HadronicException(__FILE__, __LINE__, "G4LENeutronInelastic: should be capture process!"); + if( originalIncident->Get4Momentum().vect().mag()/MeV < 0.000001 ) + throw G4HadronicException(__FILE__, __LINE__, "G4LENeutronInelastic: should be capture process!"); */ G4ReactionProduct modifiedOriginal; @@ -113,7 +112,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -136,7 +135,7 @@ void G4LENeutronInelastic::SlowNeutron( - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct &modifiedOriginal, G4ReactionProduct &targetParticle, G4Nucleus &targetNucleus ) @@ -172,9 +171,9 @@ G4double py = sint*cos(phi); G4double pz = cost; targetParticle.SetMomentum( px*GeV, py*GeV, pz*GeV ); - G4double pxO = originalIncident->GetMomentum().x()/GeV; - G4double pyO = originalIncident->GetMomentum().y()/GeV; - G4double pzO = originalIncident->GetMomentum().z()/GeV; + G4double pxO = originalIncident->Get4Momentum().x()/GeV; + G4double pyO = originalIncident->Get4Momentum().y()/GeV; + G4double pzO = originalIncident->Get4Momentum().z()/GeV; G4double ptO = pxO*pxO + pyO+pyO; if( ptO > 0.0 ) { @@ -199,13 +198,12 @@ modifiedOriginal.SetKineticEnergy( ek*GeV ); targetParticle.SetMomentum( - originalIncident->GetMomentum() - modifiedOriginal.GetMomentum() ); + originalIncident->Get4Momentum().vect() - modifiedOriginal.GetMomentum() ); G4double pp = targetParticle.GetMomentum().mag(); G4double tarmas = targetParticle.GetMass(); targetParticle.SetTotalEnergy( sqrt( pp*pp + tarmas*tarmas ) ); theParticleChange.SetEnergyChange( modifiedOriginal.GetKineticEnergy() ); - theParticleChange.SetNumberOfSecondaries( 1 ); G4DynamicParticle *pd = new G4DynamicParticle; pd->SetDefinition( targetParticle.GetDefinition() ); pd->SetMomentum( targetParticle.GetMomentum() ); @@ -231,10 +229,9 @@ theReactionDynamics.NuclearReaction( vec, vecLen, originalIncident, targetNucleus, theAtomicMass, massVec ); - theParticleChange.SetStatusChange( fStopAndKill ); + theParticleChange.SetStatusChange( stopAndKill ); theParticleChange.SetEnergyChange( 0.0 ); - theParticleChange.SetNumberOfSecondaries( vecLen ); G4DynamicParticle * pd; for( G4int i=0; i &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc index 4c4a001f25..44c675e200 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEOmegaMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEOmegaMinusInelastic.cc,v 1.7 2003/06/16 17:10:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEOmegaMinusInelastic.cc,v 1.9 2003/10/31 18:04:17 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LEOmegaMinusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEOmegaMinusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEOmegaMinusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // create the target particle @@ -49,15 +47,15 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEOmegaMinusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy() << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; G4cout << "target particle = " << originalTarget->GetDefinition()->GetParticleName() << G4endl; } - G4ReactionProduct currentParticle( originalIncident->GetDefinition() ); - currentParticle.SetMomentum( originalIncident->GetMomentum() ); + G4ReactionProduct currentParticle( const_cast(originalIncident->GetDefinition() )); + currentParticle.SetMomentum( originalIncident->Get4Momentum().vect() ); currentParticle.SetKineticEnergy( originalIncident->GetKineticEnergy() ); // Fermi motion and evaporation @@ -99,7 +97,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -124,9 +122,9 @@ void G4LEOmegaMinusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEPionMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEPionMinusInelastic.cc index f557146433..6429691d3e 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEPionMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEPionMinusInelastic.cc @@ -30,13 +30,11 @@ #include "G4LEPionMinusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEPionMinusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEPionMinusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // create the target particle @@ -47,15 +45,16 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4PionMinusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy() << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; G4cout << "target particle = " << originalTarget->GetDefinition()->GetParticleName() << G4endl; } - G4ReactionProduct currentParticle( originalIncident->GetDefinition() ); - currentParticle.SetMomentum( originalIncident->GetMomentum() ); + G4ReactionProduct currentParticle( + const_cast(originalIncident->GetDefinition() ) ); + currentParticle.SetMomentum( originalIncident->Get4Momentum().vect() ); currentParticle.SetKineticEnergy( originalIncident->GetKineticEnergy() ); // Fermi motion and evaporation @@ -97,7 +96,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -122,9 +121,9 @@ void G4LEPionMinusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc index 5833c0977b..75b6e1fc68 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEPionPlusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEPionPlusInelastic.cc,v 1.9 2003/06/16 17:10:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEPionPlusInelastic.cc,v 1.11 2003/10/31 18:04:17 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Nov-1996 @@ -33,13 +33,11 @@ #include "G4LEPionPlusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEPionPlusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEPionPlusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // create the target particle @@ -50,15 +48,16 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEPionPlusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy() << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; G4cout << "target particle = " << originalTarget->GetDefinition()->GetParticleName() << G4endl; } - G4ReactionProduct currentParticle( originalIncident->GetDefinition() ); - currentParticle.SetMomentum( originalIncident->GetMomentum() ); + G4ReactionProduct currentParticle( + const_cast(originalIncident->GetDefinition() ) ); + currentParticle.SetMomentum( originalIncident->Get4Momentum().vect() ); currentParticle.SetKineticEnergy( originalIncident->GetKineticEnergy() ); // Fermi motion and evaporation @@ -100,7 +99,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -125,9 +124,9 @@ void G4LEPionPlusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEProtonInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEProtonInelastic.cc index 7be4a890f3..54bf6f47c2 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEProtonInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEProtonInelastic.cc @@ -28,13 +28,12 @@ #include "G4LEProtonInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEProtonInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEProtonInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + theParticleChange.Clear(); + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -42,7 +41,7 @@ G4DynamicParticle *originalTarget = targetNucleus.ReturnTargetParticle(); if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEProtonInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -104,7 +103,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the sec. particles + G4FastVector vec; // vec will contain the sec. particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -127,7 +126,7 @@ void G4LEProtonInelastic::SlowProton( - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4Nucleus &targetNucleus ) { const G4double N = targetNucleus.GetN(); // atomic weight @@ -155,10 +154,9 @@ theReactionDynamics.NuclearReaction( vec, vecLen, originalIncident, targetNucleus, theAtomicMass, massVec ); - theParticleChange.SetStatusChange( fStopAndKill ); + theParticleChange.SetStatusChange( stopAndKill ); theParticleChange.SetEnergyChange( 0.0 ); - theParticleChange.SetNumberOfSecondaries( vecLen ); G4DynamicParticle *pd; for( G4int i=0; i &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc index 8043a07798..bfb8fc876d 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LESigmaMinusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LESigmaMinusInelastic.cc,v 1.6 2003/06/16 17:10:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LESigmaMinusInelastic.cc,v 1.8 2003/10/31 18:04:17 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: SigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LESigmaMinusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LESigmaMinusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LESigmaMinusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -47,7 +45,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LESigmaMinusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -96,7 +94,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -121,9 +119,9 @@ void G4LESigmaMinusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc index 66a5388e2f..a1e94fb624 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LESigmaPlusInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LESigmaPlusInelastic.cc,v 1.6 2003/06/16 17:10:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LESigmaPlusInelastic.cc,v 1.8 2003/10/31 18:04:17 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: SigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 19-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LESigmaPlusInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LESigmaPlusInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LESigmaPlusInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -47,7 +45,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LESigmaPlusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -96,7 +94,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -121,9 +119,9 @@ void G4LESigmaPlusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LETritonInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LETritonInelastic.cc index ceee3eb324..d45ecbc6fc 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LETritonInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LETritonInelastic.cc @@ -31,18 +31,17 @@ #include "Randomize.hh" #include "G4Electron.hh" - G4VParticleChange * - G4LETritonInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LETritonInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + theParticleChange.Clear(); + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LETritonInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -78,7 +77,6 @@ theParticleChange.SetEnergyChange( vec[0]->GetKineticEnergy() ); delete vec[0]; // - theParticleChange.SetNumberOfSecondaries( vecLen-1 ); G4DynamicParticle *pd; for( G4int i=1; iGetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -47,7 +45,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEXiMinusInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -96,7 +94,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -121,9 +119,9 @@ void G4LEXiMinusInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc b/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc index 4443b6eafb..520ef68f09 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LEXiZeroInelastic.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LEXiZeroInelastic.cc,v 1.6 2003/06/16 17:10:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LEXiZeroInelastic.cc,v 1.8 2003/10/31 18:04:17 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: XiZero Inelastic Process // J.L. Chuma, TRIUMF, 20-Feb-1997 @@ -32,13 +32,11 @@ #include "G4LEXiZeroInelastic.hh" #include "Randomize.hh" - G4VParticleChange * - G4LEXiZeroInelastic::ApplyYourself( const G4Track &aTrack, + G4HadFinalState * + G4LEXiZeroInelastic::ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) - { - theParticleChange.Initialize( aTrack ); - - const G4DynamicParticle *originalIncident = aTrack.GetDynamicParticle(); + { + const G4HadProjectile *originalIncident = &aTrack; if (originalIncident->GetKineticEnergy()<= 0.1*MeV) return &theParticleChange; // // create the target particle @@ -47,7 +45,7 @@ if( verboseLevel > 1 ) { - G4Material *targetMaterial = aTrack.GetMaterial(); + const G4Material *targetMaterial = aTrack.GetMaterial(); G4cout << "G4LEXiZeroInelastic::ApplyYourself called" << G4endl; G4cout << "kinetic energy = " << originalIncident->GetKineticEnergy()/MeV << "MeV, "; G4cout << "target material = " << targetMaterial->GetName() << ", "; @@ -96,7 +94,7 @@ G4bool incidentHasChanged = false; G4bool targetHasChanged = false; G4bool quasiElastic = false; - G4FastVector vec; // vec will contain the secondary particles + G4FastVector vec; // vec will contain the secondary particles G4int vecLen = 0; vec.Initialize( 0 ); @@ -121,9 +119,9 @@ void G4LEXiZeroInelastic::Cascade( - G4FastVector &vec, + G4FastVector &vec, G4int& vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged, diff --git a/source/processes/hadronic/models/low_energy/src/G4LElastic.cc b/source/processes/hadronic/models/low_energy/src/G4LElastic.cc index 4c0530d80d..0dbd12c591 100644 --- a/source/processes/hadronic/models/low_energy/src/G4LElastic.cc +++ b/source/processes/hadronic/models/low_energy/src/G4LElastic.cc @@ -41,22 +41,22 @@ #include "G4IonTable.hh" -G4VParticleChange* -G4LElastic::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) +G4HadFinalState* +G4LElastic::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& targetNucleus) { - // G4cout << "entering elastic scattering"<GetDefinition(); + const G4ParticleDefinition* aParticleType = aParticle->GetDefinition(); if (aParticleType == G4PionPlus::PionPlus()) aSecondary = LightMedia.PionPlusExchange(aParticle, targetNucleus); else if (aParticleType == G4PionMinus::PionMinus()) @@ -107,10 +107,11 @@ G4LElastic::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) // Has a charge or strangeness exchange occurred? if (aSecondary) { - aSecondary->SetMomentum(aParticle->GetMomentum()); - theParticleChange.SetStatusChange(fStopAndKill); + aSecondary->SetMomentum(aParticle->Get4Momentum().vect()); + theParticleChange.SetStatusChange(stopAndKill); theParticleChange.AddSecondary(aSecondary); } + // G4cout << "Entering elastic scattering 1"<GetTotalMomentum()/GeV; if (verboseLevel > 1) @@ -118,6 +119,7 @@ G4LElastic::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) if (p < 0.01) return &theParticleChange; + // G4cout << "Entering elastic scattering 2"< 1) - G4cout << "cos(t)=" << cost << " sin(t)=" << sint << G4endl; + // G4cout << "Entering elastic scattering 3"< 1) G4cout << "cos(t)=" << cost << " sin(t)=" << sint << G4endl; // Scattered particle referred to axis of incident particle G4double m1=aParticle->GetDefinition()->GetPDGMass(); G4int Z=static_cast(zTarget+.5); @@ -203,7 +205,7 @@ G4LElastic::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) G4double de = (-b-sqrt(std::max(0.0,b*b-4.*a*c)))/(2.*a); G4double e1 = sqrt(p*p+m1*m1)-de; G4double p12=e1*e1-m1*m1; - p1 = sqrt(std::max(0.0,p12)); + p1 = sqrt(std::max(1.*eV*eV,p12)); px = p1*sint*sin(phi); py = p1*sint*cos(phi); pz = p1*cost; @@ -216,9 +218,9 @@ G4LElastic::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) G4cout << "make p1 = "<< p12<<" "<GetMomentumDirection().x()); - G4double pyinc = p*(aParticle->GetMomentumDirection().y()); - G4double pzinc = p*(aParticle->GetMomentumDirection().z()); + G4double pxinc = p*aParticle->Get4Momentum().vect().unit().x(); + G4double pyinc = p*aParticle->Get4Momentum().vect().unit().y(); + G4double pzinc = p*aParticle->Get4Momentum().vect().unit().z(); if (verboseLevel > 1) { G4cout << "NOM SCAT " << px << " " << py << " " << pz << G4endl; G4cout << "INCIDENT " << pxinc << " " << pyinc << " " << pzinc << G4endl; @@ -248,7 +250,8 @@ G4LElastic::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) } if (verboseLevel > 1) { G4cout << "DoIt: returning new momentum vector" << G4endl; - G4cout << pxnew << " " << pynew << " " << pznew << G4endl; + G4cout << "DoIt: "<FindIon(Z,A,0,Z); @@ -267,7 +269,6 @@ G4LElastic::ApplyYourself(const G4Track& aTrack, G4Nucleus& targetNucleus) theParticleChange.AddSecondary(aSec); // G4cout << "Final check ###### "<GetTotalMomentum()/MeV; - G4double Px = P*(aParticle->GetMomentumDirection().x()); - G4double Py = P*(aParticle->GetMomentumDirection().y()); - G4double Pz = P*(aParticle->GetMomentumDirection().z()); + G4double Px = aParticle->Get4Momentum().vect().x(); + G4double Py = aParticle->Get4Momentum().vect().y(); + G4double Pz = aParticle->Get4Momentum().vect().z(); G4double E = aParticle->GetTotalEnergy()/MeV; G4double E0 = aParticle->GetDefinition()->GetPDGMass()/MeV; G4double Q = aParticle->GetDefinition()->GetPDGCharge(); @@ -189,7 +186,7 @@ G4LFission::ApplyYourself(const G4Track & aTrack,G4Nucleus & targetNucleus) // Distribute momentum vectors and do Lorentz transformation - G4Track* theSecondary; + G4HadSecondary* theSecondary; for (i = 1; i <= nn + ng; i++) { G4double ran1 = G4UniformRand(); @@ -200,14 +197,14 @@ G4LFission::ApplyYourself(const G4Track & aTrack,G4Nucleus & targetNucleus) // G4cout << ran1 << " " << ran2 << G4endl; // G4cout << cost << " " << sint << " " << phi << G4endl; theSecondary = theParticleChange.GetSecondary(i - 1); - G4double pp = theSecondary->GetDynamicParticle()->GetTotalMomentum()/MeV; + G4double pp = theSecondary->GetParticle()->GetTotalMomentum()/MeV; G4double px = pp*sint*sin(phi); G4double py = pp*sint*cos(phi); G4double pz = pp*cost; // G4cout << pp << G4endl; // G4cout << px << " " << py << " " << pz << G4endl; - G4double e = theSecondary->GetTotalEnergy()/MeV; - G4double e0 = theSecondary->GetDefinition()->GetPDGMass()/MeV; + G4double e = theSecondary->GetParticle()->GetTotalEnergy()/MeV; + G4double e0 = theSecondary->GetParticle()->GetDefinition()->GetPDGMass()/MeV; G4double a = px*Px + py*Py + pz*Pz; a = (a/(E + E0) - e)/E0; @@ -218,11 +215,11 @@ G4LFission::ApplyYourself(const G4Track & aTrack,G4Nucleus & targetNucleus) G4double p2 = px*px + py*py + pz*pz; pp = sqrt(p2); e = sqrt(e0*e0 + p2); - G4double ekin = e - theSecondary->GetDefinition()->GetPDGMass()/MeV; - theSecondary->SetMomentumDirection(G4ParticleMomentum(px/pp, + G4double ekin = e - theSecondary->GetParticle()->GetDefinition()->GetPDGMass()/MeV; + theSecondary->GetParticle()->SetMomentumDirection(G4ParticleMomentum(px/pp, py/pp, pz/pp)); - theSecondary->SetKineticEnergy(ekin*MeV); + theSecondary->GetParticle()->SetKineticEnergy(ekin*MeV); } return &theParticleChange; diff --git a/source/processes/photolepton_hadron/GNUmakefile b/source/processes/hadronic/models/management/GNUmakefile similarity index 68% rename from source/processes/photolepton_hadron/GNUmakefile rename to source/processes/hadronic/models/management/GNUmakefile index 181f762fb0..efa26604ac 100644 --- a/source/processes/photolepton_hadron/GNUmakefile +++ b/source/processes/hadronic/models/management/GNUmakefile @@ -1,12 +1,12 @@ -# $Id: GNUmakefile,v 1.2 1999/12/05 18:30:56 gcosmo Exp $ -# --------------------------------------------------------------------- -# GNUmakefile for photolepton_hadron library. Gabriele Cosmo, 18/9/96. -# --------------------------------------------------------------------- +# $Id: GNUmakefile,v 1.2 2003/10/08 16:42:20 hpw Exp $ +# ---------------------------------------------------------------- +# GNUmakefile for hadronic management library. G.Folger 10-Dec-97 +# ---------------------------------------------------------------- -name := G4photolepton_hadron +name := G4had_mod_man ifndef G4INSTALL - G4INSTALL = ../../.. + G4INSTALL = ../../../../.. endif include $(G4INSTALL)/config/architecture.gmk @@ -15,19 +15,17 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/track/include \ - -I$(G4BASE)/particles/management/include \ - -I$(G4BASE)/particles/bosons/include \ - -I$(G4BASE)/particles/leptons/include \ - -I$(G4BASE)/particles/hadrons/barions/include \ - -I$(G4BASE)/particles/hadrons/mesons/include \ - -I$(G4BASE)/particles/hadrons/ions/include \ - -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ - -I$(G4BASE)/materials/include \ - -I$(G4BASE)/processes/management/include \ - -I$(G4BASE)/processes/hadronic/management/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/processes/hadronic/util/include \ - -I$(G4BASE)/processes/hadronic/models/high_energy/include \ - -I$(G4BASE)/processes/hadronic/models/low_energy/include + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/materials/include include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/hadronic/management/include/G4HadronicInteraction.hh b/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh similarity index 78% rename from source/processes/hadronic/management/include/G4HadronicInteraction.hh rename to source/processes/hadronic/models/management/include/G4HadronicInteraction.hh index 389ecdc4c2..7921a12f5c 100644 --- a/source/processes/hadronic/management/include/G4HadronicInteraction.hh +++ b/source/processes/hadronic/models/management/include/G4HadronicInteraction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HadronicInteraction.hh,v 1.10 2002/12/12 19:16:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HadronicInteraction.hh,v 1.3 2003/11/03 17:54:18 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Interaction abstract base class // This class is the base class for the model classes. @@ -45,23 +45,23 @@ #ifndef G4HadronicInteraction_h #define G4HadronicInteraction_h 1 -#include "G4ParticleChange.hh" +#include "G4HadFinalState.hh" #include "G4DynamicParticle.hh" #include "G4ReactionDynamics.hh" #include "G4Material.hh" #include "G4Nucleus.hh" #include "G4Track.hh" +#include "G4HadProjectile.hh" #include "G4HadronicInteractionRegistry.hh" +#include "G4HadronicException.hh" class G4HadronicInteraction { public: G4HadronicInteraction() : - verboseLevel(0), theMinEnergy(0.0*GeV), theMaxEnergy(25.0*GeV), isBlocked(false), - theMinCounter(0), theMaxCounter(0), theBlockedCounter(0), - theMinCounterElements(0), theMaxCounterElements(0), - theBlockedCounterElements(0) + verboseLevel(0), theMinEnergy(0.0*GeV), + theMaxEnergy(25.0*GeV), isBlocked(false) { G4HadronicInteractionRegistry::RegisterMe(this); } @@ -80,7 +80,8 @@ inline const G4HadronicInteraction & operator=( const G4HadronicInteraction &right ) { - if(this!=&right) G4Exception("unintended use of G4HadronicInteraction::operator="); + G4String text = "unintended use of G4HadronicInteraction::operator="; + throw G4HadronicException(__FILE__, __LINE__, text); return right; } @@ -136,8 +137,8 @@ public: // With description // This is the interface to implement for final state production code. - virtual G4VParticleChange *ApplyYourself( - const G4Track &aTrack, G4Nucleus & targetNucleus ) = 0; + virtual G4HadFinalState *ApplyYourself( + const G4HadProjectile &aTrack, G4Nucleus & targetNucleus ) = 0; public: // Without description void DeActivateFor( G4Material *aMaterial ); @@ -163,8 +164,8 @@ public: // Without description protected: - G4ParticleChange theParticleChange; - // the G4VParticleChange object which is modified and returned + G4HadFinalState theParticleChange; + // the G4HadFinalState object which is modified and returned // by address by the ApplyYourself method, // (instead of aParticleChange as found in G4VProcess) @@ -188,34 +189,13 @@ public: // Without description G4bool isBlocked; private: - - enum { MAX_LIST_SIZE = 500 }; - - // the following allow for restrictions/additions for specific materials - - G4double theMinEnergyList[ MAX_LIST_SIZE ]; - G4Material *theMinMaterials[ MAX_LIST_SIZE ]; - G4int theMinCounter; - - G4double theMaxEnergyList[ MAX_LIST_SIZE ]; - G4Material *theMaxMaterials[ MAX_LIST_SIZE ]; - G4int theMaxCounter; - - G4Material *theBlockedList[ MAX_LIST_SIZE ]; - G4int theBlockedCounter; - - // the following allow for restrictions/additions for specific elements - - G4double theMinEnergyListElements[ MAX_LIST_SIZE ]; - G4Element *theMinElements[ MAX_LIST_SIZE ]; - G4int theMinCounterElements; - - G4double theMaxEnergyListElements[ MAX_LIST_SIZE ]; - G4Element *theMaxElements[ MAX_LIST_SIZE ]; - G4int theMaxCounterElements; - - G4Element *theBlockedListElements[ MAX_LIST_SIZE ]; - G4int theBlockedCounterElements; + + std::vector > theMinEnergyList; + std::vector > theMaxEnergyList; + std::vector > theMinEnergyListElements; + std::vector > theMaxEnergyListElements; + std::vector theBlockedList; + std::vector theBlockedListElements; }; #endif diff --git a/source/processes/hadronic/management/include/G4HadronicInteractionRegistry.hh b/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh similarity index 92% rename from source/processes/hadronic/management/include/G4HadronicInteractionRegistry.hh rename to source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh index 292a8bf28e..9cd743cfdc 100644 --- a/source/processes/hadronic/management/include/G4HadronicInteractionRegistry.hh +++ b/source/processes/hadronic/models/management/include/G4HadronicInteractionRegistry.hh @@ -35,11 +35,11 @@ class G4HadronicInteractionRegistry static void RegisterMe(G4HadronicInteraction * aModel); static void RemoveMe(G4HadronicInteraction * aModel); - + protected: - G4HadronicInteractionRegistry(G4String ) - { G4Exception("G4HadronicInteractionRegistry meant as a singleton; please do not inherit");} + G4HadronicInteractionRegistry(G4String ); + static G4HadronicInteractionRegistry & theRegistry(); private: @@ -56,7 +56,6 @@ class G4HadronicInteractionRegistry G4int nModels; std::vector allModels; - static G4HadronicInteractionRegistry theRegistry; }; diff --git a/source/processes/hadronic/management/include/G4InelasticInteraction.hh b/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh similarity index 88% rename from source/processes/hadronic/management/include/G4InelasticInteraction.hh rename to source/processes/hadronic/models/management/include/G4InelasticInteraction.hh index bec3ae82a8..c1944a7e76 100644 --- a/source/processes/hadronic/management/include/G4InelasticInteraction.hh +++ b/source/processes/hadronic/models/management/include/G4InelasticInteraction.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4InelasticInteraction.hh,v 1.8 2003/02/12 09:55:00 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4InelasticInteraction.hh,v 1.2 2003/10/31 18:04:57 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Inelastic Interaction // This class is an abstract base class, since the pure virtual @@ -47,7 +47,8 @@ #include "G4ReactionProduct.hh" #include "G4ParticleTypes.hh" #include "Randomize.hh" - +#include "G4ReactionDynamics.hh" + class G4InelasticInteraction : public G4HadronicInteraction { public: @@ -68,18 +69,18 @@ G4ReactionProduct &leadParticle ); void SetUpPions( const G4int np, const G4int nm, const G4int nz, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ); - void Rotate(G4FastVector &vec, G4int &vecLen); + void Rotate(G4FastVector &vec, G4int &vecLen); void GetNormalizationConstant( const G4double availableEnergy, G4double &n, G4double &anpn ); - void CalculateMomenta( G4FastVector &vec, + void CalculateMomenta( G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, const G4DynamicParticle *originalTarget, G4ReactionProduct &modifiedOriginal, G4Nucleus &targetNucleus, @@ -89,7 +90,7 @@ G4bool &targetHasChanged, G4bool quasiElastic ); - void SetUpChange( G4FastVector &vec, + void SetUpChange( G4FastVector &vec, G4int &vecLen, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, diff --git a/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh b/source/processes/hadronic/models/management/include/G4V3DNucleus.hh similarity index 97% rename from source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh rename to source/processes/hadronic/models/management/include/G4V3DNucleus.hh index fd558d19e9..d89e60cd9d 100644 --- a/source/processes/hadronic/models/generator/management/include/G4V3DNucleus.hh +++ b/source/processes/hadronic/models/management/include/G4V3DNucleus.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4V3DNucleus.hh,v 1.11 2003/06/16 17:07:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4V3DNucleus.hh,v 1.2 2003/10/07 12:37:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4V3DNucleus_h #define G4V3DNucleus_h 1 diff --git a/source/processes/hadronic/models/generator/management/include/G4VAnnihilator.hh b/source/processes/hadronic/models/management/include/G4VAnnihilator.hh similarity index 100% rename from source/processes/hadronic/models/generator/management/include/G4VAnnihilator.hh rename to source/processes/hadronic/models/management/include/G4VAnnihilator.hh diff --git a/source/processes/hadronic/models/generator/management/include/G4VCrossSectionBase.hh b/source/processes/hadronic/models/management/include/G4VCrossSectionBase.hh similarity index 100% rename from source/processes/hadronic/models/generator/management/include/G4VCrossSectionBase.hh rename to source/processes/hadronic/models/management/include/G4VCrossSectionBase.hh diff --git a/source/processes/hadronic/models/generator/management/include/G4VElasticScatterer.hh b/source/processes/hadronic/models/management/include/G4VElasticScatterer.hh similarity index 100% rename from source/processes/hadronic/models/generator/management/include/G4VElasticScatterer.hh rename to source/processes/hadronic/models/management/include/G4VElasticScatterer.hh diff --git a/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh b/source/processes/hadronic/models/management/include/G4VHighEnergyGenerator.hh similarity index 95% rename from source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh rename to source/processes/hadronic/models/management/include/G4VHighEnergyGenerator.hh index fe58e57dd3..53bf25bc16 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VHighEnergyGenerator.hh +++ b/source/processes/hadronic/models/management/include/G4VHighEnergyGenerator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VHighEnergyGenerator.hh,v 1.7 2002/12/12 19:17:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VHighEnergyGenerator.hh,v 1.2 2003/10/07 12:37:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VHighEnergyGenerator_h #define G4VHighEnergyGenerator_h 1 @@ -35,7 +35,7 @@ // Class Description - End #include "G4Nucleus.hh" -#include "G4Track.hh" +#include "G4HadProjectile.hh" class G4KineticTrackVector; #include "G4ReactionProduct.hh" #include "G4V3DNucleus.hh" diff --git a/source/processes/hadronic/models/generator/management/include/G4VInElasticScatterer.hh b/source/processes/hadronic/models/management/include/G4VInElasticScatterer.hh similarity index 100% rename from source/processes/hadronic/models/generator/management/include/G4VInElasticScatterer.hh rename to source/processes/hadronic/models/management/include/G4VInElasticScatterer.hh diff --git a/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh b/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh similarity index 93% rename from source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh rename to source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh index 9e04ae4a80..448d2cb9f9 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VIntraNuclearTransportModel.hh +++ b/source/processes/hadronic/models/management/include/G4VIntraNuclearTransportModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VIntraNuclearTransportModel.hh,v 1.9 2002/12/12 19:17:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VIntraNuclearTransportModel.hh,v 1.1 2003/10/07 12:19:43 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: G4IntraNuclearTransportMode.hh,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- @@ -49,7 +49,8 @@ #include "G4HadronicInteraction.hh" #include "G4ReactionProductVector.hh" #include "G4ReactionProduct.hh" -#include "G4Track.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" class G4KineticTrackVector; @@ -70,9 +71,6 @@ class G4VIntraNuclearTransportModel : public G4HadronicInteraction int operator!=(const G4VIntraNuclearTransportModel& right) const; - virtual G4VParticleChange* ApplyYourself(const G4Track& aTrack, - G4Nucleus& theNucleus) = 0; - virtual G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus) = 0; diff --git a/source/processes/hadronic/management/include/G4VIsotopeProduction.hh b/source/processes/hadronic/models/management/include/G4VIsotopeProduction.hh similarity index 100% rename from source/processes/hadronic/management/include/G4VIsotopeProduction.hh rename to source/processes/hadronic/models/management/include/G4VIsotopeProduction.hh diff --git a/source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh b/source/processes/hadronic/models/management/include/G4VKineticNucleon.hh similarity index 96% rename from source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh rename to source/processes/hadronic/models/management/include/G4VKineticNucleon.hh index 558e8d678a..a6a60d5cc8 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VKineticNucleon.hh +++ b/source/processes/hadronic/models/management/include/G4VKineticNucleon.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VKineticNucleon.hh,v 1.6 2003/05/30 14:09:57 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VKineticNucleon.hh,v 1.2 2003/10/07 12:37:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VKineticNucleon_h #define G4VKineticNucleon_h 1 diff --git a/source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh b/source/processes/hadronic/models/management/include/G4VNuclearDensity.hh similarity index 95% rename from source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh rename to source/processes/hadronic/models/management/include/G4VNuclearDensity.hh index 7ccac6c411..69d19301bd 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VNuclearDensity.hh +++ b/source/processes/hadronic/models/management/include/G4VNuclearDensity.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VNuclearDensity.hh,v 1.7 2002/12/12 19:17:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VNuclearDensity.hh,v 1.2 2003/10/07 12:37:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VNuclearDensity_h #define G4VNuclearDensity_h 1 diff --git a/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh b/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh similarity index 92% rename from source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh rename to source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh index 260677ccb8..b860da684c 100644 --- a/source/processes/hadronic/models/generator/management/include/G4VPreCompoundModel.hh +++ b/source/processes/hadronic/models/management/include/G4VPreCompoundModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundModel.hh,v 1.8 2003/05/30 14:09:57 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPreCompoundModel.hh,v 1.2 2003/10/07 12:37:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VPreCompoundModel_h @@ -38,8 +38,8 @@ #include "G4HadronicInteraction.hh" #include "G4ReactionProductVector.hh" #include "G4ReactionProduct.hh" -class G4Track; -class G4VParticleChange; +class G4HadProjectile; +class G4HadFinalState; class G4Nucleus; class G4Fragment; class G4ExcitationHandler; @@ -63,8 +63,8 @@ private: G4bool operator!=(const G4VPreCompoundModel &right) const; public: - virtual G4VParticleChange * - ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus) = 0; + virtual G4HadFinalState * + ApplyYourself(const G4HadProjectile & thePrimary, G4Nucleus & theNucleus) = 0; virtual G4ReactionProductVector* DeExcite(const G4Fragment& aFragment) const = 0; diff --git a/source/processes/hadronic/management/src/G4HadronicInteraction.cc b/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc similarity index 64% rename from source/processes/hadronic/management/src/G4HadronicInteraction.cc rename to source/processes/hadronic/models/management/src/G4HadronicInteraction.cc index a0dd482a42..93e55a396d 100644 --- a/source/processes/hadronic/management/src/G4HadronicInteraction.cc +++ b/source/processes/hadronic/models/management/src/G4HadronicInteraction.cc @@ -25,6 +25,7 @@ // original by H.P. Wellisch // modified by J.L. Chuma, TRIUMF, 21-Mar-1997 // Last modified: 04-Apr-1997 + // reimplemented 1.11.2003 JPW. #include "G4HadronicInteraction.hh" @@ -32,16 +33,16 @@ G4HadronicInteraction::GetMinEnergy( const G4Material *aMaterial, const G4Element *anElement ) const { - G4int i; + size_t i; if( IsBlocked(aMaterial) )return 0.*GeV; if( IsBlocked(anElement) )return 0.*GeV; - for( i=0; i 0 ) @@ -61,18 +62,15 @@ << " The model is not active for the Element " << anElement->GetName() << "." << G4endl; - for( G4int i=0; i(anEnergy, anElement)); } void @@ -85,34 +83,31 @@ << " The model is not active for the Material " << aMaterial->GetName() << "." << G4endl; - for( G4int i=0; i(anEnergy, aMaterial)); } G4double G4HadronicInteraction::GetMaxEnergy( const G4Material *aMaterial, const G4Element *anElement ) const { - G4int i; + size_t i; if( IsBlocked(aMaterial) )return 0.0*GeV; if( IsBlocked(anElement) )return 0.0*GeV; - for( i=0; i 0 ) @@ -133,18 +128,15 @@ << "Warning: The model is not active for the Element " << anElement->GetName() << "." << G4endl; - for( G4int i=0; i(anEnergy, anElement)); } void @@ -157,64 +149,53 @@ << "Warning: The model is not active for the Material " << aMaterial->GetName() << "." << G4endl; - for( G4int i=0; i(anEnergy, aMaterial)); } void G4HadronicInteraction::DeActivateFor( G4Material *aMaterial ) { - if( theBlockedCounter == MAX_LIST_SIZE ) - G4Exception("DeActivateFor: exceeded size of blocked material List"); - theBlockedList[ theBlockedCounter++ ] = aMaterial; + theBlockedList.push_back(aMaterial); } void G4HadronicInteraction::DeActivateFor( G4Element *anElement ) { - if( theBlockedCounterElements == MAX_LIST_SIZE ) - G4Exception("DeActivateFor: exceeded size of blocked elements List"); - theBlockedListElements[ theBlockedCounterElements++ ] = anElement; + theBlockedListElements.push_back(anElement); } G4bool G4HadronicInteraction::IsBlocked( const G4Material *aMaterial ) const { - G4bool tt = false; - for( G4int i=0; i &vec, + G4FastVector &vec, G4int &vecLen ) { if( np+nm+nz == 0 )return; @@ -167,9 +168,9 @@ void G4InelasticInteraction::CalculateMomenta( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, // the original incident particle + const G4HadProjectile *originalIncident, // the original incident particle const G4DynamicParticle *originalTarget, G4ReactionProduct &modifiedOriginal, // Fermi motion and evap. effects included G4Nucleus &targetNucleus, @@ -179,8 +180,8 @@ G4bool &targetHasChanged, G4bool quasiElastic ) { - what = originalIncident->GetMomentum(); cache = 0; + what = originalIncident->Get4Momentum().vect(); theReactionDynamics.ProduceStrangeParticlePairs( vec, vecLen, modifiedOriginal, originalTarget, currentParticle, targetParticle, @@ -278,12 +279,20 @@ modifiedOriginal, currentParticle, targetParticle, targetNucleus, incidentHasChanged, targetHasChanged ); + try + { finishedTwoClu = theReactionDynamics.TwoCluster( vec, vecLen, modifiedOriginal, originalIncident, currentParticle, targetParticle, targetNucleus, incidentHasChanged, targetHasChanged, leadFlag, leadingStrangeParticle ); + } + catch(G4HadReentrentException aC) + { + aC.Report(G4cout); + throw G4HadReentrentException(__FILE__, __LINE__, "Failing to calculate momenta"); + } } if( finishedTwoClu ) { @@ -317,7 +326,7 @@ } void G4InelasticInteraction:: - Rotate(G4FastVector &vec, G4int &vecLen) + Rotate(G4FastVector &vec, G4int &vecLen) { G4double rotation = 2.*pi*G4UniformRand(); cache = rotation; @@ -332,12 +341,13 @@ void G4InelasticInteraction::SetUpChange( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, G4bool &incidentHasChanged ) { + theParticleChange.Clear(); G4ParticleDefinition *aKaonZL = G4KaonZeroLong::KaonZeroLong(); G4ParticleDefinition *aKaonZS = G4KaonZeroShort::KaonZeroShort(); G4int i; @@ -378,17 +388,15 @@ } if( incidentHasChanged ) { - theParticleChange.SetNumberOfSecondaries( vecLen+2 ); G4DynamicParticle* p0 = new G4DynamicParticle; p0->SetDefinition( currentParticle.GetDefinition() ); p0->SetMomentum( currentParticle.GetMomentum() ); theParticleChange.AddSecondary( p0 ); - theParticleChange.SetStatusChange( fStopAndKill ); + theParticleChange.SetStatusChange( stopAndKill ); theParticleChange.SetEnergyChange( 0.0 ); } else { - theParticleChange.SetNumberOfSecondaries( vecLen+1 ); G4double p = currentParticle.GetMomentum().mag()/MeV; G4ThreeVector m = currentParticle.GetMomentum(); if( p > DBL_MIN ) diff --git a/source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc b/source/processes/hadronic/models/management/src/G4V3DNucleus.cc similarity index 87% rename from source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc rename to source/processes/hadronic/models/management/src/G4V3DNucleus.cc index 190764c1bc..5409188394 100644 --- a/source/processes/hadronic/models/generator/management/src/G4V3DNucleus.cc +++ b/source/processes/hadronic/models/management/src/G4V3DNucleus.cc @@ -21,10 +21,11 @@ // ******************************************************************** // // -// $Id: G4V3DNucleus.cc,v 1.6 2003/05/30 14:09:58 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4V3DNucleus.cc,v 1.3 2003/11/03 17:54:18 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4V3DNucleus.hh" +#include "G4HadronicException.hh" G4V3DNucleus::G4V3DNucleus() { @@ -42,7 +43,8 @@ G4V3DNucleus::~G4V3DNucleus() const G4V3DNucleus & G4V3DNucleus::operator=(const G4V3DNucleus &) { - G4Exception("G4V3DNucleus::operator= meant to not be accessable"); // needs to be looked at @@ + G4String text = "G4V3DNucleus::operator= meant to not be accessable"; + throw G4HadronicException(__FILE__, __LINE__, text); return *this; } diff --git a/source/processes/hadronic/models/generator/management/src/G4VAnnihilator.cc b/source/processes/hadronic/models/management/src/G4VAnnihilator.cc similarity index 100% rename from source/processes/hadronic/models/generator/management/src/G4VAnnihilator.cc rename to source/processes/hadronic/models/management/src/G4VAnnihilator.cc diff --git a/source/processes/hadronic/models/generator/management/src/G4VCrossSectionBase.cc b/source/processes/hadronic/models/management/src/G4VCrossSectionBase.cc similarity index 100% rename from source/processes/hadronic/models/generator/management/src/G4VCrossSectionBase.cc rename to source/processes/hadronic/models/management/src/G4VCrossSectionBase.cc diff --git a/source/processes/hadronic/models/generator/management/src/G4VElasticScatterer.cc b/source/processes/hadronic/models/management/src/G4VElasticScatterer.cc similarity index 100% rename from source/processes/hadronic/models/generator/management/src/G4VElasticScatterer.cc rename to source/processes/hadronic/models/management/src/G4VElasticScatterer.cc diff --git a/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc b/source/processes/hadronic/models/management/src/G4VHighEnergyGenerator.cc similarity index 88% rename from source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc rename to source/processes/hadronic/models/management/src/G4VHighEnergyGenerator.cc index 4ec2954c60..6ad5e5da42 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VHighEnergyGenerator.cc +++ b/source/processes/hadronic/models/management/src/G4VHighEnergyGenerator.cc @@ -21,11 +21,12 @@ // ******************************************************************** // // -// $Id: G4VHighEnergyGenerator.cc,v 1.6 2003/05/30 14:09:58 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VHighEnergyGenerator.cc,v 1.3 2003/11/03 17:54:18 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4VHighEnergyGenerator #include "G4VHighEnergyGenerator.hh" +#include "G4HadronicException.hh" G4VHighEnergyGenerator::G4VHighEnergyGenerator() { @@ -43,7 +44,8 @@ G4VHighEnergyGenerator::~G4VHighEnergyGenerator() const G4VHighEnergyGenerator & G4VHighEnergyGenerator::operator=(const G4VHighEnergyGenerator &) { - G4Exception("G4VHighEnergyGenerator::operator= meant to not be accessable"); + G4String text = "G4VHighEnergyGenerator::operator= meant to not be accessable"; + throw G4HadronicException(__FILE__, __LINE__, text); return *this; } diff --git a/source/processes/hadronic/models/generator/management/src/G4VInElasticScatterer.cc b/source/processes/hadronic/models/management/src/G4VInElasticScatterer.cc similarity index 100% rename from source/processes/hadronic/models/generator/management/src/G4VInElasticScatterer.cc rename to source/processes/hadronic/models/management/src/G4VInElasticScatterer.cc diff --git a/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc b/source/processes/hadronic/models/management/src/G4VIntraNuclearTransportModel.cc similarity index 95% rename from source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc rename to source/processes/hadronic/models/management/src/G4VIntraNuclearTransportModel.cc index 4307ccf2bd..f14fcba857 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VIntraNuclearTransportModel.cc +++ b/source/processes/hadronic/models/management/src/G4VIntraNuclearTransportModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VIntraNuclearTransportModel.cc,v 1.7 2003/05/30 14:09:58 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VIntraNuclearTransportModel.cc,v 1.2 2003/12/09 09:04:23 jwellisc Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: G4VIntraNuclearTransportModel.cc,v 1.0 1998/06/30 // ----------------------------------------------------------------------------- @@ -57,7 +57,7 @@ G4VIntraNuclearTransportModel(const G4VIntraNuclearTransportModel& right) : G4Ha G4VIntraNuclearTransportModel::~G4VIntraNuclearTransportModel() { - if(the3DNucleus!=NULL) delete the3DNucleus; +// if(the3DNucleus!=NULL) delete the3DNucleus; // This is deleted by ~G4HadronicInteractionRegistry // if(theDeExcitation!=NULL) delete theDeExcitation; } diff --git a/source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc b/source/processes/hadronic/models/management/src/G4VKineticNucleon.cc similarity index 95% rename from source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc rename to source/processes/hadronic/models/management/src/G4VKineticNucleon.cc index 2bbbce296f..6746849585 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VKineticNucleon.cc +++ b/source/processes/hadronic/models/management/src/G4VKineticNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VKineticNucleon.cc,v 1.6 2003/05/30 14:09:58 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VKineticNucleon.cc,v 1.1 2003/10/07 12:38:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4VKineticNucleon.hh" diff --git a/source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc b/source/processes/hadronic/models/management/src/G4VNuclearDensity.cc similarity index 93% rename from source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc rename to source/processes/hadronic/models/management/src/G4VNuclearDensity.cc index c4aa54f307..6abb0aacb7 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VNuclearDensity.cc +++ b/source/processes/hadronic/models/management/src/G4VNuclearDensity.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VNuclearDensity.cc,v 1.6 2002/12/12 19:17:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VNuclearDensity.cc,v 1.1 2003/10/07 12:38:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4VNuclearDensity.hh" diff --git a/source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc b/source/processes/hadronic/models/management/src/G4VPreCompoundModel.cc similarity index 87% rename from source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc rename to source/processes/hadronic/models/management/src/G4VPreCompoundModel.cc index 71e733e9f1..79b55498db 100644 --- a/source/processes/hadronic/models/generator/management/src/G4VPreCompoundModel.cc +++ b/source/processes/hadronic/models/management/src/G4VPreCompoundModel.cc @@ -21,11 +21,12 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundModel.cc,v 1.6 2003/05/30 14:09:58 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPreCompoundModel.cc,v 1.3 2003/11/03 17:54:18 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4VPreCompoundModel.hh" +#include "G4HadronicException.hh" G4VPreCompoundModel::G4VPreCompoundModel(G4ExcitationHandler *const value): theExcitationHandler(value) @@ -36,7 +37,8 @@ G4VPreCompoundModel::G4VPreCompoundModel(G4ExcitationHandler *const value): const G4VPreCompoundModel & G4VPreCompoundModel::operator=(const G4VPreCompoundModel &) { - G4Exception("G4VPreCompoundModel::operator= meant to not be accessable"); + G4String text = "G4VPreCompoundModel::operator= meant to not be accessable"; + throw G4HadronicException(__FILE__, __LINE__, text); return *this; } diff --git a/source/processes/hadronic/models/neutron_hp/GNUmakefile b/source/processes/hadronic/models/neutron_hp/GNUmakefile index 72f3d2a08f..e309779c58 100644 --- a/source/processes/hadronic/models/neutron_hp/GNUmakefile +++ b/source/processes/hadronic/models/neutron_hp/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.2 2003/06/18 13:23:31 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/08 16:42:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_neu +name := G4had_neu_hp ifndef G4INSTALL G4INSTALL = ../../../../.. @@ -22,9 +22,11 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/generator/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/util/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh index 6267039104..459fa7bab9 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationIterator.hh @@ -21,13 +21,15 @@ // ******************************************************************** // // -// $Id: G4InterpolationIterator.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4InterpolationIterator.hh,v 1.7 2003/11/03 17:54:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4InterpolationIterator_h #define G4InterpolationIterator_h 1 #include "G4InterpolationManager.hh" +#include "G4HadronicException.hh" + class G4InterpolationIterator { @@ -62,7 +64,7 @@ class G4InterpolationIterator inline G4InterpolationScheme Current() { - if(!started) G4Exception("G4InterpolationIterator not started yet"); + if(!started) throw G4HadronicException(__FILE__, __LINE__, "G4InterpolationIterator not started yet"); return aManager->scheme[current]; } diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh index da79ee12d3..1542313818 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4InterpolationManager.hh,v 1.9 2003/06/16 17:10:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4InterpolationManager.hh,v 1.10 2003/11/03 17:54:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4InterpolationManager_h #define G4InterpolationManager_h 1 @@ -31,6 +31,7 @@ #include "G4InterpolationScheme.hh" #include "G4ios.hh" #include +#include "G4HadronicException.hh" class G4InterpolationManager { diff --git a/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh b/source/processes/hadronic/models/neutron_hp/include/G4InterpolationScheme.hh index 4c67694e6f..7978f76d4a 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.5 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f2c999c126..dbf5f831bd 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP2AInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP2AInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP2AInelasticFS_h #define G4NeutronHP2AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP2AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP2AInelasticFS(){} ~G4NeutronHP2AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP2AInelasticFS * theNew = new G4NeutronHP2AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh index 0a359d837c..703a2162b1 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2N2AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP2N2AInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP2N2AInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP2N2AInelasticFS_h #define G4NeutronHP2N2AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP2N2AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP2N2AInelasticFS(){} ~G4NeutronHP2N2AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP2N2AInelasticFS * theNew = new G4NeutronHP2N2AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh index fbb5f43e27..90774f9b24 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NAInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP2NAInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP2NAInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP2NAInelasticFS_h #define G4NeutronHP2NAInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP2NAInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP2NAInelasticFS(){} ~G4NeutronHP2NAInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP2NAInelasticFS * theNew = new G4NeutronHP2NAInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh index 2376b1975c..325e1ebe8e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NDInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP2NDInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP2NDInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP2NDInelasticFS_h #define G4NeutronHP2NDInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP2NDInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP2NDInelasticFS(){} ~G4NeutronHP2NDInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP2NDInelasticFS * theNew = new G4NeutronHP2NDInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh index 912f5a2a6c..ee826ea707 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP2NInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP2NInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP2NInelasticFS_h #define G4NeutronHP2NInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP2NInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP2NInelasticFS(){} ~G4NeutronHP2NInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP2NInelasticFS * theNew = new G4NeutronHP2NInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh index b84e306f84..a582aa9762 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2NPInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP2NPInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP2NPInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP2NPInelasticFS_h #define G4NeutronHP2NPInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP2NPInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP2NPInelasticFS(){} ~G4NeutronHP2NPInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP2NPInelasticFS * theNew = new G4NeutronHP2NPInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh index ddb842ca47..177f9a78a3 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP2PInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP2PInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP2PInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP2PInelasticFS_h #define G4NeutronHP2PInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP2PInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP2PInelasticFS(){} ~G4NeutronHP2PInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP2PInelasticFS * theNew = new G4NeutronHP2PInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh index a39a75c0d0..c5e772325d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP3AInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP3AInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP3AInelasticFS_h #define G4NeutronHP3AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP3AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP3AInelasticFS(){} ~G4NeutronHP3AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP3AInelasticFS * theNew = new G4NeutronHP3AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh index 334b420cca..c8a0de8252 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NAInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP3NAInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP3NAInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP3NAInelasticFS_h #define G4NeutronHP3NAInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP3NAInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP3NAInelasticFS(){} ~G4NeutronHP3NAInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP3NAInelasticFS * theNew = new G4NeutronHP3NAInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh index 760d03fe3a..bca0aaefde 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP3NInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP3NInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP3NInelasticFS_h #define G4NeutronHP3NInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP3NInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP3NInelasticFS(){} ~G4NeutronHP3NInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP3NInelasticFS * theNew = new G4NeutronHP3NInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh index 11f526f550..2fbdc62d3e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP3NPInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP3NPInelasticFS.hh,v 1.6 2002/12/12 19:18:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP3NPInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP3NPInelasticFS_h #define G4NeutronHP3NPInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP3NPInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP3NPInelasticFS(){} ~G4NeutronHP3NPInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP3NPInelasticFS * theNew = new G4NeutronHP3NPInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh index e55f0197d3..8d5ee274e1 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHP4NInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHP4NInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHP4NInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHP4NInelasticFS_h #define G4NeutronHP4NInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHP4NInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHP4NInelasticFS(){} ~G4NeutronHP4NInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHP4NInelasticFS * theNew = new G4NeutronHP4NInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh index d4fa0b4329..1f5560ef19 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPAInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPAInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPAInelasticFS_h #define G4NeutronHPAInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticCompFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPAInelasticFS : public G4NeutronHPInelasticCompFS G4NeutronHPAInelasticFS(){} ~G4NeutronHPAInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPAInelasticFS * theNew = new G4NeutronHPAInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPAngular.hh index 2e162b5214..65fe6d5a9b 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.8 2003/06/16 17:10:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b98a88ecf8..54f500eb21 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.8 2003/06/16 17:10:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 91c5ceeb78..9ace61e227 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.9 2003/06/16 17:10:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 faf680a6bc..17ee3b1d60 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCapture.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPCapture.hh,v 1.7 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPCapture.hh,v 1.8 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 @@ -51,7 +51,7 @@ class G4NeutronHPCapture : public G4HadronicInteraction ~G4NeutronHPCapture(); - G4VParticleChange * ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus); + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); private: @@ -61,7 +61,7 @@ class G4NeutronHPCapture : public G4HadronicInteraction G4int numEle; G4int it; - G4ParticleChange theResult; + G4HadFinalState theResult; }; #endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureData.hh index 280310b3a3..d36c227141 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.7 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a2c2f557ba..01b554bc01 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPCaptureFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPCaptureFS.hh,v 1.8 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPCaptureFS.hh,v 1.9 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPCaptureFS_h #define G4NeutronHPCaptureFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPFinalState.hh" #include "G4ReactionProductVector.hh" #include "G4NeutronHPNames.hh" @@ -50,7 +50,7 @@ class G4NeutronHPCaptureFS : public G4NeutronHPFinalState } void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPCaptureFS * theNew = new G4NeutronHPCaptureFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh index 5b29b66603..c5936340a5 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPChannel.hh,v 1.9 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPChannel.hh,v 1.10 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 @@ -36,7 +36,7 @@ #include "G4NeutronHPIsoData.hh" #include "G4NeutronHPVector.hh" #include "G4Material.hh" -#include "G4Track.hh" +#include "G4HadProjectile.hh" #include "G4NeutronInelasticProcess.hh" #include "G4HadronFissionProcess.hh" #include "G4HadronElasticProcess.hh" @@ -105,7 +105,7 @@ public: void Harmonise(G4NeutronHPVector *& theStore, G4NeutronHPVector * theNew); - G4ParticleChange * ApplyYourself(const G4Track & theTrack, G4int isoNumber=-1); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack, G4int isoNumber=-1); inline G4int GetNiso() {return niso;} diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh index 64c7433fdc..41388071e7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPChannelList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPChannelList.hh,v 1.7 2003/06/16 17:10:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPChannelList.hh,v 1.8 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Very Low Energy Neutron X-Sections // original by H.P. Wellisch, TRIUMF, 14-Feb-97 @@ -36,8 +36,8 @@ #include "G4StableIsotopes.hh" class G4Element; -class G4ParticleChange; -class G4Track; +class G4HadFinalState; +class G4HadProjectile; class G4NeutronHPFinalState; class G4NeutronHPChannelList @@ -53,7 +53,7 @@ class G4NeutronHPChannelList ~G4NeutronHPChannelList(); - G4ParticleChange * ApplyYourself(const G4Element * theElement, const G4Track & aTrack); + G4HadFinalState * ApplyYourself(const G4Element * theElement, const G4HadProjectile & aTrack); void Init(G4Element * anElement, const G4String & dirName); diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh index df86ad21b7..7f1d3a9b2f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContAngularPar.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPContAngularPar.hh,v 1.8 2003/06/16 17:10:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPContAngularPar.hh,v 1.9 2003/11/03 17:54:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPContAngularPar_h #define G4NeutronHPContAngularPar_h 1 @@ -109,7 +109,7 @@ class G4NeutronHPContAngularPar if(currentMeanEnergy<-1) { return 0; - // G4Exception("G4NeutronHPContAngularPar: Logical error in Product class"); + // throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPContAngularPar: Logical error in Product class"); } else { diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPContEnergyAngular.hh index b45ccf13ad..1ac2b3fcd7 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.8 2003/06/16 17:10:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 7acf1159c6..a2646f9bf9 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPD2AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPD2AInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPD2AInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPD2AInelasticFS_h #define G4NeutronHPD2AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" class G4NeutronHPD2AInelasticFS : public G4NeutronHPInelasticBaseFS @@ -39,7 +39,7 @@ class G4NeutronHPD2AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPD2AInelasticFS(){} ~G4NeutronHPD2AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPD2AInelasticFS * theNew = new G4NeutronHPD2AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh index aaa7760eff..83d81a50f9 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDAInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPDAInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPDAInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPDAInelasticFS_h #define G4NeutronHPDAInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPDAInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPDAInelasticFS(){} ~G4NeutronHPDAInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPDAInelasticFS * theNew = new G4NeutronHPDAInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh index ad10bd60fa..99d29e9eca 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPDInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPDInelasticFS.hh,v 1.6 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPDInelasticFS.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPDInelasticFS_h #define G4NeutronHPDInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticCompFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPDInelasticFS : public G4NeutronHPInelasticCompFS G4NeutronHPDInelasticFS(){} ~G4NeutronHPDInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPDInelasticFS * theNew = new G4NeutronHPDInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPData.hh index 70e367b4d5..69b1351b88 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.6 2002/12/12 19:18:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 453ef8ab8b..d87902b23e 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.6 2002/12/12 19:18:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9d24368492..aecb345e53 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.9 2003/06/16 17:10:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 97add46746..2e5f507e9e 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.8 2003/06/16 17:10:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 22a424a561..323f2c8744 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPElastic.hh,v 1.6 2002/12/12 19:18:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPElastic.hh,v 1.7 2003/07/01 15:58:35 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 @@ -51,7 +51,7 @@ class G4NeutronHPElastic : public G4HadronicInteraction ~G4NeutronHPElastic(); - G4VParticleChange * ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus); + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); G4int GetNiso() {return theElastic[0].GetNiso();} private: diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticData.hh index f450ecea37..200b1c4efa 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.7 2002/12/12 19:18:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 caf3bb73f1..328a6688ce 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPElasticFS.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPElasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPElasticFS_h #define G4NeutronHPElasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPFinalState.hh" #include "G4NeutronHPLegendreStore.hh" #include "G4NeutronHPPartial.hh" @@ -53,7 +53,7 @@ class G4NeutronHPElasticFS : public G4NeutronHPFinalState if(theProbArray!=NULL) delete theProbArray; } void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPElasticFS * theNew = new G4NeutronHPElasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPElementData.hh index 4c9abae9e3..41d2af0935 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.7 2003/06/03 09:31:45 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b69a5316da..5a1900ec95 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.8 2003/06/16 17:10:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 aa18326854..714298f738 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.8 2003/06/16 17:10:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0228c086ed..bd6b4f8948 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.8 2003/06/16 17:10:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f5ac4ecc41..3f859b908e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFCFissionFS.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4NeutronHPFCFissionFS.hh,v 1.7 2003/05/30 11:32:33 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPFCFissionFS.hh,v 1.8 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPFCFissionFS_h #define G4NeutronHPFCFissionFS_h 1 #include "globals.hh" -#include "G4Track.hh" +#include "G4HadProjectile.hh" #include "G4DynamicParticleVector.hh" #include "G4NeutronHPFissionBaseFS.hh" @@ -47,7 +47,7 @@ class G4NeutronHPFCFissionFS : public G4NeutronHPFissionBaseFS } private: - G4ParticleChange * ApplyYourself(const G4Track & ) { return NULL; } + G4HadFinalState * ApplyYourself(const G4HadProjectile & ) { return NULL; } }; #endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh index fc9c54bc52..c0ee0d90ae 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFSFissionFS.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4NeutronHPFSFissionFS.hh,v 1.7 2003/05/30 11:32:33 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPFSFissionFS.hh,v 1.8 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPFSFissionFS_h #define G4NeutronHPFSFissionFS_h 1 #include "globals.hh" -#include "G4Track.hh" +#include "G4HadProjectile.hh" #include "G4DynamicParticleVector.hh" #include "G4NeutronHPFinalState.hh" #include "G4NeutronHPNames.hh" @@ -85,8 +85,7 @@ class G4NeutronHPFSFissionFS : public G4NeutronHPFinalState private: - G4ParticleChange * ApplyYourself(const G4Track & ) { return NULL; } - + G4HadFinalState * ApplyYourself(const G4HadProjectile & ) { return NULL; } G4double targetMass; G4NeutronHPNeutronYield theFinalStateNeutrons; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFastLegendre.hh index 3a0bbbe9dd..ed38157d1a 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.9 2002/12/12 19:18:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 ae99b912e5..7d6aaabe24 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.6 2002/12/12 19:18:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 8acc27a9c9..fee12ecff4 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.6 2002/12/12 19:18:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 84d56a5116..ee6911bdd8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFinalState.hh @@ -21,17 +21,18 @@ // ******************************************************************** // // -// $Id: G4NeutronHPFinalState.hh,v 1.8 2003/05/30 11:32:33 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPFinalState.hh,v 1.10 2003/11/03 17:54:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPFinalState_h #define G4NeutronHPFinalState_h #include "G4Material.hh" #include "G4FastVector.hh" -#include "G4ParticleChange.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPNames.hh" #include "G4NeutronHPVector.hh" +#include "G4HadProjectile.hh" class G4NeutronHPFinalState { @@ -49,9 +50,9 @@ public: virtual ~G4NeutronHPFinalState(){}; virtual void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType) = 0; - virtual G4ParticleChange * ApplyYourself(const G4Track & ) + virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & ) { - G4Exception("G4ParticleChange * ApplyYourself(const G4Track & theTrack) needs implementation"); + throw G4HadronicException(__FILE__, __LINE__, "G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack) needs implementation"); return NULL; } @@ -78,7 +79,7 @@ public: G4bool hasAnyData; G4NeutronHPNames theNames; - G4ParticleChange theResult; + G4HadFinalState theResult; G4double theBaseA; G4double theBaseZ; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh index f6cb561ab5..6e58d2d2ec 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFission.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPFission.hh,v 1.6 2002/12/12 19:18:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPFission.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 @@ -56,7 +56,7 @@ class G4NeutronHPFission : public G4HadronicInteraction ~G4NeutronHPFission(); - G4VParticleChange * ApplyYourself(const G4Track& aTrack, G4Nucleus& aTargetNucleus); + G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus); private: diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh index 1d70406acb..b5966c6dc6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionBaseFS.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPFissionBaseFS.hh,v 1.9 2003/06/16 17:10:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPFissionBaseFS.hh,v 1.10 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPFissionBaseFS_h #define G4NeutronHPFissionBaseFS_h 1 @@ -74,7 +74,7 @@ class G4NeutronHPFissionBaseFS : public G4NeutronHPFinalState private: - G4ParticleChange * ApplyYourself(const G4Track & ) {return NULL;} + G4HadFinalState * ApplyYourself(const G4HadProjectile & ) {return NULL;} G4NeutronHPVector * theXsection; G4NeutronHPEnergyDistribution theEnergyDistribution; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionData.hh index ea8baa1581..e3c7f5980d 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.7 2002/12/12 19:18:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a1a895ba35..d6bc7a411b 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.8 2003/06/16 17:10:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 d98f6c60d0..23f02f78f6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPFissionFS.hh,v 1.6 2002/12/12 19:18:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPFissionFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPFissionFS_h #define G4NeutronHPFissionFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPFinalState.hh" #include "G4NeutronHPNames.hh" @@ -46,7 +46,7 @@ class G4NeutronHPFissionFS : public G4NeutronHPFinalState G4NeutronHPFissionFS(){ hasXsec = false; } ~G4NeutronHPFissionFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPFissionFS * theNew = new G4NeutronHPFissionFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPFissionSpectrum.hh index 9e79beaa10..5f518e96b0 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.8 2003/06/16 17:10:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 adf106e237..cbd726d22c 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.10 2003/06/16 17:10:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 682857478c..42ef91994c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPHe3InelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPHe3InelasticFS.hh,v 1.6 2002/12/12 19:18:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPHe3InelasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPHe3InelasticFS_h #define G4NeutronHPHe3InelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticCompFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPHe3InelasticFS : public G4NeutronHPInelasticCompFS G4NeutronHPHe3InelasticFS(){} ~G4NeutronHPHe3InelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPHe3InelasticFS * theNew = new G4NeutronHPHe3InelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh index 380f226708..85b11b0667 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelastic.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPInelastic.hh,v 1.6 2002/12/12 19:18:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPInelastic.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: High Precision low E neutron tracking // original by H.P. Wellisch, TRIUMF, 14-Feb-97 @@ -90,7 +90,7 @@ class G4NeutronHPInelastic : public G4HadronicInteraction ~G4NeutronHPInelastic(); - G4VParticleChange * ApplyYourself(const G4Track & aTrack, G4Nucleus & aTargetNucleus); + G4HadFinalState * ApplyYourself(const G4HadProjectile & aTrack, G4Nucleus & aTargetNucleus); private: diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh index 932addf3f9..c097b25bc2 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticBaseFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPInelasticBaseFS.hh,v 1.8 2003/06/16 17:10:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPInelasticBaseFS.hh,v 1.9 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPInelasticBaseFS_h #define G4NeutronHPInelasticBaseFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPFinalState.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -61,9 +61,9 @@ class G4NeutronHPInelasticBaseFS : public G4NeutronHPFinalState } void Init (G4double A, G4double Z, G4String & dirName, G4String & bit); - void BaseApply(const G4Track & theTrack, G4ParticleDefinition ** theDefs, G4int nDef); + void BaseApply(const G4HadProjectile & theTrack, G4ParticleDefinition ** theDefs, G4int nDef); void InitGammas(G4double AR, G4double ZR); - virtual G4ParticleChange * ApplyYourself(const G4Track & theTrack) = 0; + virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack) = 0; virtual G4NeutronHPFinalState * New() = 0; virtual G4double GetXsec(G4double anEnergy) diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh index 1e80cfd18c..20bdb6c33c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticCompFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPInelasticCompFS.hh,v 1.9 2003/06/16 17:10:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPInelasticCompFS.hh,v 1.10 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPInelasticCompFS_h #define G4NeutronHPInelasticCompFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPFinalState.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -66,7 +66,7 @@ class G4NeutronHPInelasticCompFS : public G4NeutronHPFinalState } void Init (G4double A, G4double Z, G4String & dirName, G4String & aSFType); void InitGammas(G4double AR, G4double ZR); - virtual G4ParticleChange * ApplyYourself(const G4Track & theTrack) = 0; + virtual G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack) = 0; virtual G4NeutronHPFinalState * New() = 0; virtual G4double GetXsec(G4double anEnergy) { @@ -74,7 +74,7 @@ class G4NeutronHPInelasticCompFS : public G4NeutronHPFinalState } virtual G4NeutronHPVector * GetXsec() { return theXsection[50]; } G4int SelectExitChannel(G4double eKinetic); - void CompositeApply(const G4Track & theTrack, G4ParticleDefinition * aHadron); + void CompositeApply(const G4HadProjectile & theTrack, G4ParticleDefinition * aHadron); inline void InitDistributionInitialState(G4ReactionProduct & aNeutron, G4ReactionProduct & aTarget, G4int it) diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInelasticData.hh index c0106771f3..cfce9d6d86 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.7 2002/12/12 19:18:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 fd271923b2..75258919a5 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPInterpolator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPInterpolator.hh,v 1.13 2003/06/03 14:17:45 jwellisc Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPInterpolator.hh,v 1.15 2003/11/03 17:54:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPInterpolator_h #define G4NeutronHPInterpolator_h 1 @@ -31,6 +31,7 @@ #include "G4InterpolationScheme.hh" #include "Randomize.hh" #include "G4ios.hh" +#include "G4HadronicException.hh" class G4NeutronHPInterpolator @@ -105,7 +106,7 @@ Interpolate(G4InterpolationScheme aScheme, break; default: G4cout << "theScheme = "<GetVectorLength(); i++) { diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPIsotropic.hh index 32a0f6a1c6..269b754875 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.8 2003/06/16 17:10:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 6d11d255d4..366a633d84 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.6 2002/12/12 19:18:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a4e28c88a3..d1e3d32847 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLCFissionFS.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4NeutronHPLCFissionFS.hh,v 1.7 2003/05/30 11:32:33 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPLCFissionFS.hh,v 1.8 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPLCFissionFS_h #define G4NeutronHPLCFissionFS_h 1 #include "globals.hh" -#include "G4Track.hh" +#include "G4HadProjectile.hh" #include "G4DynamicParticleVector.hh" #include "G4NeutronHPFissionBaseFS.hh" @@ -47,7 +47,7 @@ class G4NeutronHPLCFissionFS : public G4NeutronHPFissionBaseFS } private: - G4ParticleChange * ApplyYourself(const G4Track & ) { return NULL; } + G4HadFinalState * ApplyYourself(const G4HadProjectile & ) { return NULL; } }; #endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLabAngularEnergy.hh index 16a4a47422..fb458b73f9 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.8 2003/06/16 17:10:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 fbe49f5117..a9fc3b16ae 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreStore.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPLegendreStore.hh,v 1.8 2003/06/16 17:10:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPLegendreStore.hh,v 1.9 2003/11/03 17:54:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPLegendreStore_h #define G4NeutronHPLegendreStore_h 1 @@ -57,7 +57,7 @@ class G4NeutronHPLegendreStore inline void SetCoeff(G4int i, G4int l, G4double coeff) {theCoeff[i].SetCoeff(l, coeff); } inline void SetCoeff(G4int i, G4NeutronHPLegendreTable * theTable) { - if(i>nEnergy) G4Exception("LegendreTableIndex out of range"); + if(i>nEnergy) throw G4HadronicException(__FILE__, __LINE__, "LegendreTableIndex out of range"); theCoeff[i] = *theTable; // not here -- see G4NeutronHPPhotonDist.cc line 275 // delete theTable; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPLegendreTable.hh index 0f2151e5a2..e72dcc9e75 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.9 2003/06/16 17:10:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 b043b6e6ac..3aa405e335 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.8 2003/06/16 17:10:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 eca8342d70..48cd73be0e 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.8 2003/06/16 17:10:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 374244cdba..a8aafa981e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPN2AInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPN2AInelasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPN2AInelasticFS_h #define G4NeutronHPN2AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPN2AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPN2AInelasticFS(){} ~G4NeutronHPN2AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPN2AInelasticFS * theNew = new G4NeutronHPN2AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh index aa03bb614e..a9daaa2393 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN2PInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPN2PInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPN2PInelasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPN2PInelasticFS_h #define G4NeutronHPN2PInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPN2PInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPN2PInelasticFS(){} ~G4NeutronHPN2PInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPN2PInelasticFS * theNew = new G4NeutronHPN2PInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh index 48ee4eccc0..0de377f3fb 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPN3AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPN3AInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPN3AInelasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPN3AInelasticFS_h #define G4NeutronHPN3AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPN3AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPN3AInelasticFS(){} ~G4NeutronHPN3AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPN3AInelasticFS * theNew = new G4NeutronHPN3AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh index b1543049ba..7e139f1a4d 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNAInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNAInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNAInelasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNAInelasticFS_h #define G4NeutronHPNAInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNAInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPNAInelasticFS(){} ~G4NeutronHPNAInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNAInelasticFS * theNew = new G4NeutronHPNAInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNBodyPhaseSpace.hh index 976e879903..e237d8c4dd 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.9 2003/06/16 17:10:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f031268ee2..8230efb2f8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPND2AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPND2AInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPND2AInelasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPND2AInelasticFS_h #define G4NeutronHPND2AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPND2AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPND2AInelasticFS(){} ~G4NeutronHPND2AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPND2AInelasticFS * theNew = new G4NeutronHPND2AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh index d67c909339..ce92318866 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNDInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNDInelasticFS.hh,v 1.6 2002/12/12 19:18:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNDInelasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNDInelasticFS_h #define G4NeutronHPNDInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNDInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPNDInelasticFS(){} ~G4NeutronHPNDInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNDInelasticFS * theNew = new G4NeutronHPNDInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh index 5515162468..3f8cffa1e4 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNHe3InelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNHe3InelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNHe3InelasticFS.hh,v 1.7 2003/07/01 15:58:36 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNHe3InelasticFS_h #define G4NeutronHPNHe3InelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNHe3InelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPNHe3InelasticFS(){} ~G4NeutronHPNHe3InelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNHe3InelasticFS * theNew = new G4NeutronHPNHe3InelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh index a707415309..871ce5eb6f 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNInelasticFS_h #define G4NeutronHPNInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticCompFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNInelasticFS : public G4NeutronHPInelasticCompFS G4NeutronHPNInelasticFS(){} ~G4NeutronHPNInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNInelasticFS * theNew = new G4NeutronHPNInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh index beafd8783d..63e1774575 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPAInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNPAInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNPAInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNPAInelasticFS_h #define G4NeutronHPNPAInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNPAInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPNPAInelasticFS(){} ~G4NeutronHPNPAInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNPAInelasticFS * theNew = new G4NeutronHPNPAInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh index 82f139b4d1..33ca170cb5 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNPInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNPInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNPInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNPInelasticFS_h #define G4NeutronHPNPInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNPInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPNPInelasticFS(){} ~G4NeutronHPNPInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNPInelasticFS * theNew = new G4NeutronHPNPInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh index 93d126219b..eafd0623e7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNT2AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNT2AInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNT2AInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNT2AInelasticFS_h #define G4NeutronHPNT2AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNT2AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPNT2AInelasticFS(){} ~G4NeutronHPNT2AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNT2AInelasticFS * theNew = new G4NeutronHPNT2AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh index 19e4f1eb4d..ff1d2a467c 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNTInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNTInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNTInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNTInelasticFS_h #define G4NeutronHPNTInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNTInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPNTInelasticFS(){} ~G4NeutronHPNTInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNTInelasticFS * theNew = new G4NeutronHPNTInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh index f8a106186e..1805d24bd7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNXInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNXInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNXInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNXInelasticFS_h #define G4NeutronHPNXInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPNXInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPNXInelasticFS(){} ~G4NeutronHPNXInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPNXInelasticFS * theNew = new G4NeutronHPNXInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh index e689d043ce..5593db19f6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNames.hh @@ -22,7 +22,7 @@ // // // $Id: G4NeutronHPNames.hh,v 1.11 2003/06/16 17:10:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPNames_h #define G4NeutronHPNames_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPNeutronYield.hh index 8b1fc31097..c142002ffa 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.8 2003/06/16 17:10:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a75f64d2d8..a4a83863b7 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPAInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPPAInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPPAInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPPAInelasticFS_h #define G4NeutronHPPAInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPPAInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPPAInelasticFS(){} ~G4NeutronHPPAInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPPAInelasticFS * theNew = new G4NeutronHPPAInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh index 40929f7009..33ff759ad1 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPDInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPPDInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPPDInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPPDInelasticFS_h #define G4NeutronHPPDInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPPDInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPPDInelasticFS(){} ~G4NeutronHPPDInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPPDInelasticFS * theNew = new G4NeutronHPPDInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh index af779f3e8d..1405f78688 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPPInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPPInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPPInelasticFS_h #define G4NeutronHPPInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticCompFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPPInelasticFS : public G4NeutronHPInelasticCompFS G4NeutronHPPInelasticFS(){} ~G4NeutronHPPInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPPInelasticFS * theNew = new G4NeutronHPPInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh index 6987aa03f3..d19d6c17e6 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPTInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPPTInelasticFS.hh,v 1.6 2002/12/12 19:18:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPPTInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPPTInelasticFS_h #define G4NeutronHPPTInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPPTInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPPTInelasticFS(){} ~G4NeutronHPPTInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPPTInelasticFS * theNew = new G4NeutronHPPTInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPPartial.hh index 5df36b1162..4e500f6f76 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.9 2003/06/16 17:10:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 dc20132da1..9832cdc4f3 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.8 2003/06/16 17:11:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f1f50d8722..c78ede880f 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.8 2003/06/16 17:11:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0b218ea53a..ea27254d9a 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.8 2003/06/16 17:11:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9cbd93dd65..df471f39f8 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPProduct.hh @@ -21,12 +21,13 @@ // ******************************************************************** // // -// $Id: G4NeutronHPProduct.hh,v 1.8 2003/06/16 17:11:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPProduct.hh,v 1.9 2003/11/03 17:54:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPProduct_h #define G4NeutronHPProduct_h 1 +#include "G4HadronicException.hh" #include "globals.hh" #include "G4NeutronHPVector.hh" #include "Randomize.hh" @@ -108,7 +109,7 @@ class G4NeutronHPProduct } else { - G4Exception("distribution law unknown to G4NeutronHPProduct"); + throw G4HadronicException(__FILE__, __LINE__, "distribution law unknown to G4NeutronHPProduct"); } if(theDist!=NULL) { diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh index e4fb8239af..d298bdbfee 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSCFissionFS.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4NeutronHPSCFissionFS.hh,v 1.7 2003/05/30 11:32:33 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPSCFissionFS.hh,v 1.8 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPSCFissionFS_h #define G4NeutronHPSCFissionFS_h 1 #include "globals.hh" -#include "G4Track.hh" +#include "G4HadProjectile.hh" #include "G4DynamicParticleVector.hh" #include "G4NeutronHPFissionBaseFS.hh" @@ -47,7 +47,7 @@ class G4NeutronHPSCFissionFS : public G4NeutronHPFissionBaseFS } private: - G4ParticleChange * ApplyYourself(const G4Track & ) { return NULL; } + G4HadFinalState * ApplyYourself(const G4HadProjectile &) { return NULL; } }; #endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPSimpleEvapSpectrum.hh index 024c68b093..ca32504cbc 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.8 2003/06/16 17:11:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 d32183c240..9823db775e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPT2AInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPT2AInelasticFS.hh,v 1.6 2002/12/12 19:18:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPT2AInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPT2AInelasticFS_h #define G4NeutronHPT2AInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticBaseFS.hh" class G4NeutronHPT2AInelasticFS : public G4NeutronHPInelasticBaseFS @@ -39,7 +39,7 @@ class G4NeutronHPT2AInelasticFS : public G4NeutronHPInelasticBaseFS G4NeutronHPT2AInelasticFS(){} ~G4NeutronHPT2AInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPT2AInelasticFS * theNew = new G4NeutronHPT2AInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh index 2fae3d7fc9..e6635a8880 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTCFissionFS.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4NeutronHPTCFissionFS.hh,v 1.7 2003/05/30 11:32:33 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPTCFissionFS.hh,v 1.8 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPTCFissionFS_h #define G4NeutronHPTCFissionFS_h 1 #include "globals.hh" -#include "G4Track.hh" +#include "G4HadProjectile.hh" #include "G4DynamicParticleVector.hh" #include "G4NeutronHPFissionBaseFS.hh" @@ -47,7 +47,7 @@ class G4NeutronHPTCFissionFS : public G4NeutronHPFissionBaseFS } private: - G4ParticleChange * ApplyYourself(const G4Track & ) { return NULL; } + G4HadFinalState * ApplyYourself(const G4HadProjectile & ) { return NULL; } }; #endif diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh index ea6ab85552..df5c9ba38e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPTInelasticFS.hh @@ -21,15 +21,15 @@ // ******************************************************************** // // -// $Id: G4NeutronHPTInelasticFS.hh,v 1.6 2002/12/12 19:18:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPTInelasticFS.hh,v 1.7 2003/07/01 15:58:37 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPTInelasticFS_h #define G4NeutronHPTInelasticFS_h 1 #include "globals.hh" -#include "G4Track.hh" -#include "G4ParticleChange.hh" +#include "G4HadProjectile.hh" +#include "G4HadFinalState.hh" #include "G4NeutronHPInelasticCompFS.hh" #include "G4NeutronHPAngular.hh" #include "G4NeutronHPEnergyDistribution.hh" @@ -43,7 +43,7 @@ class G4NeutronHPTInelasticFS : public G4NeutronHPInelasticCompFS G4NeutronHPTInelasticFS(){} ~G4NeutronHPTInelasticFS(){} void Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType); - G4ParticleChange * ApplyYourself(const G4Track & theTrack); + G4HadFinalState * ApplyYourself(const G4HadProjectile & theTrack); G4NeutronHPFinalState * New() { G4NeutronHPTInelasticFS * theNew = new G4NeutronHPTInelasticFS; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh index 26b906a9df..d2727da97a 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPThermalBoost.hh @@ -23,7 +23,7 @@ #ifndef G4NeutronHPThermalBoost_h #define G4NeutronHPThermalBoost_h -#include "G4DynamicParticle.hh" +#include "G4HadProjectile.hh" #include "G4Element.hh" #include "G4ReactionProduct.hh" #include "G4Nucleus.hh" @@ -34,7 +34,7 @@ class G4NeutronHPThermalBoost { public: - G4double GetThermalEnergy(const G4DynamicParticle * aP, + G4double GetThermalEnergy(const G4HadProjectile & aP, const G4Element * anE, G4double aT) { @@ -43,16 +43,16 @@ public: return GetThermalEnergy(aP, theA ,theZ, aT); } - G4double GetThermalEnergy(const G4DynamicParticle * aP, + G4double GetThermalEnergy(const G4HadProjectile & aP, G4double theA, G4double theZ, G4double aT) { // prepare neutron - G4double eKinetic = aP->GetKineticEnergy(); - G4ReactionProduct theNeutron( aP->GetDefinition() ); - theNeutron.SetMomentum( aP->GetMomentum() ); + G4double eKinetic = aP.GetKineticEnergy(); + G4ReactionProduct theNeutron( const_cast(aP.GetDefinition()) ); + theNeutron.SetMomentum( aP.Get4Momentum().vect() ); theNeutron.SetKineticEnergy( eKinetic ); - G4ThreeVector neuVelo = (1./aP->GetDefinition()->GetPDGMass())*theNeutron.GetMomentum(); + G4ThreeVector neuVelo = (1./aP.GetDefinition()->GetPDGMass())*theNeutron.GetMomentum(); // prepare properly biased thermal nucleus G4Nucleus aNuc; diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPVector.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPVector.hh index 85ed48d5eb..3296dc361e 100644 --- a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPVector.hh +++ b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPVector.hh @@ -419,7 +419,7 @@ class G4NeutronHPVector } else { - G4Exception("Unknown interpolation scheme in G4NeutronHPVector::Integrate"); + throw G4HadronicException(__FILE__, __LINE__, "Unknown interpolation scheme in G4NeutronHPVector::Integrate"); } } diff --git a/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh b/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPWattSpectrum.hh index 0c4f2765c2..c09e5477ef 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.8 2003/06/16 17:11:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4NeutronHPWattSpectrum_h #define G4NeutronHPWattSpectrum_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh b/source/processes/hadronic/models/neutron_hp/include/G4VNeutronHPEDis.hh index da53d47d3d..d5e3073cea 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.8 2003/06/16 17:11:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 0eab51d4be..ef0a34c2d7 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.8 2003/06/16 17:11:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VNeutronHPEnergyAngular_h #define G4VNeutronHPEnergyAngular_h 1 diff --git a/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc b/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc index 9c74290b16..e26f496206 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4InterpolationManager.cc @@ -25,6 +25,7 @@ // A prototype of the low energy neutron transport model. // #include "G4InterpolationManager.hh" +#include "G4HadronicException.hh" G4InterpolationScheme G4InterpolationManager::MakeScheme(G4int it) { @@ -77,7 +78,7 @@ result = ULOGLOG; break; default: - G4Exception("G4InterpolationManager: unknown interpolation scheme"); + throw G4HadronicException(__FILE__, __LINE__, "G4InterpolationManager: unknown interpolation scheme"); break; } return result; @@ -88,7 +89,7 @@ if(aPoint!=nEntries) { G4cout <<"G4InterpolationManager::AppendScheme - "<GetNumberOfElements(); G4int index = theMaterial->GetElement(0)->GetIndex(); if(n!=1) @@ -82,7 +82,7 @@ { index = theMaterial->GetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; - xSec[i] = theCapture[index].GetXsec(aThermalE.GetThermalEnergy(aTrack.GetDynamicParticle(), + xSec[i] = theCapture[index].GetXsec(aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature())); xSec[i] *= rWeight; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc index 555964e4a3..d8d3fe28de 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPCaptureData.cc @@ -50,7 +50,7 @@ G4NeutronHPCaptureData::~G4NeutronHPCaptureData() void G4NeutronHPCaptureData::BuildPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) - G4Exception("Attempt to use NeutronHP data for particles other than neutrons!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); size_t numberOfElements = G4Element::GetNumberOfElements(); // G4cout << "CALLED G4NeutronHPCaptureData::BuildPhysicsTable "<GetDefinition() ); - theNeutron.SetMomentum( incidentParticle->GetMomentum() ); + const G4HadProjectile *incidentParticle = &theTrack; + G4ReactionProduct theNeutron( const_cast(incidentParticle->GetDefinition()) ); + theNeutron.SetMomentum( incidentParticle->Get4Momentum().vect() ); theNeutron.SetKineticEnergy( eKinetic ); // prepare target @@ -99,7 +98,6 @@ if(thePhotons!=NULL) nPhotons=thePhotons->size(); G4int nParticles = nPhotons; if(1==nPhotons) nParticles = 2; - theResult.SetNumberOfSecondaries(nParticles); // back to lab system for(i=0; iSetDefinition(aRecoil); // Now energy; // Can be done slightly better @ - G4ThreeVector aMomentum = theTrack.GetMomentum() + G4ThreeVector aMomentum = theTrack.Get4Momentum().vect() +theTarget.GetMomentum() -thePhotons->operator[](0)->GetMomentum(); @@ -143,7 +141,7 @@ } delete thePhotons; // clean up the primary neutron - theResult.SetStatusChange(fStopAndKill); + theResult.SetStatusChange(stopAndKill); return &theResult; } diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannel.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannel.cc index a4794acc39..a722b9a547 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannel.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPChannel.cc @@ -27,6 +27,7 @@ #include "G4NeutronHPChannel.hh" #include "G4NeutronHPFinalState.hh" #include "globals.hh" +#include "G4HadTmpUtil.hh" G4double G4NeutronHPChannel::GetXsec(G4double energy) { @@ -59,12 +60,12 @@ G4bool G4NeutronHPChannel::Register(G4NeutronHPFinalState *theFS) { registerCount++; - G4int Z = static_cast(theElement->GetZ()+0.0001); + G4int Z = G4lrint(theElement->GetZ()); if(registerCount<5) { Z = Z-registerCount; } - if(Z==theElement->GetZ()-5) G4Exception("Channel: Do not know what to do with this material"); + if(Z==theElement->GetZ()-5) throw G4HadronicException(__FILE__, __LINE__, "Channel: Do not know what to do with this material"); G4int count = 0; if(registerCount==0) count = theElement->GetNumberOfIsotopes(); if(count == 0||registerCount!=0) count += @@ -88,13 +89,17 @@ { for (G4int i1=0; i1GetIsotope(i1)->GetN(); G4double frac = theElement->GetRelativeAbundanceVector()[i1]/perCent; theFinalStates[i1]->SetA_Z(A, Z); UpdateData(A, Z, count++, frac); } } else { + //G4cout <<" Init: mean case: " + // <ApplyYourself(theTrack); @@ -189,7 +194,7 @@ { if(theFinalStates[i]->HasAnyData()) { - xsec[i] = theIsotopeWiseData[i].GetXsec(aThermalE.GetThermalEnergy(theTrack.GetDynamicParticle(), + xsec[i] = theIsotopeWiseData[i].GetXsec(aThermalE.GetThermalEnergy(theTrack, theFinalStates[i]->GetN(), theFinalStates[i]->GetZ(), theTrack.GetMaterial()->GetTemperature())); @@ -226,7 +231,7 @@ if(it==niso) it--; } delete [] xsec; - G4ParticleChange * theFinalState=NULL; + G4HadFinalState * theFinalState=NULL; while(theFinalState==NULL) { // G4cout << "TESTHP 24 it="<HasAnyData(i)) { - running[i] +=theChannels[ii]->GetWeightedXsec(aThermalE.GetThermalEnergy(aTrack.GetDynamicParticle(), + running[i] +=theChannels[ii]->GetWeightedXsec(aThermalE.GetThermalEnergy(aTrack, theChannels[ii]->GetN(i), theChannels[ii]->GetZ(i), aTrack.GetMaterial()->GetTemperature()), @@ -106,7 +106,7 @@ if(i!=0) running[i] = running[i-1]; if(theChannels[i]->HasAnyData(isotope)) { - running[i] += theChannels[i]->GetFSCrossSection(aThermalE.GetThermalEnergy(aTrack.GetDynamicParticle(), + running[i] += theChannels[i]->GetFSCrossSection(aThermalE.GetThermalEnergy(aTrack, theChannels[i]->GetN(isotope), theChannels[i]->GetZ(isotope), aTrack.GetMaterial()->GetTemperature()), diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc index c2cb859622..8e92a98923 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContAngularPar.cc @@ -88,7 +88,7 @@ else if(A==4) { result->SetDefinition(G4Alpha::Alpha()); - if(Z!=2) G4Exception("G4NeutronHPContAngularPar: Unknown ion case 1"); + if(Z!=2) throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPContAngularPar: Unknown ion case 1"); } else { @@ -361,7 +361,7 @@ } else { - G4Exception("G4NeutronHPContAngularPar::Sample: Unknown angular representation"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPContAngularPar::Sample: Unknown angular representation"); } result->SetKineticEnergy(fsEnergy); G4double phi = twopi*G4UniformRand(); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContEnergyAngular.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContEnergyAngular.cc index 91925eb133..595ea1b137 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContEnergyAngular.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPContEnergyAngular.cc @@ -71,7 +71,7 @@ MeanEnergyOfThisInteraction() G4double result(0); if(currentMeanEnergy<-1) { - G4Exception("G4NeutronHPContEnergyAngular: Logical error in Product class"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPContEnergyAngular: Logical error in Product class"); } else { diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPD2AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPD2AInelasticFS.cc index d68a9be540..f2ef04fa6a 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPD2AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPD2AInelasticFS.cc @@ -29,7 +29,7 @@ #include "G4Alpha.hh" #include "G4Deuteron.hh" -G4ParticleChange * G4NeutronHPD2AInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPD2AInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDAInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDAInelasticFS.cc index 1e90df8b3a..2d193b1648 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDAInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDAInelasticFS.cc @@ -29,7 +29,7 @@ #include "G4Deuteron.hh" #include "G4Alpha.hh" -G4ParticleChange * G4NeutronHPDAInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPDAInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDInelasticFS.cc index 967ea8cc49..78155783a5 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDInelasticFS.cc @@ -36,7 +36,7 @@ void G4NeutronHPDInelasticFS::Init (G4double A, G4double Z, G4String & dirName, G4NeutronHPInelasticCompFS::InitGammas(ResidualA, ResidualZ); } -G4ParticleChange * G4NeutronHPDInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPDInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // do the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc index aefc79eb3f..08574f4953 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPDiscreteTwoBody.cc @@ -69,11 +69,11 @@ G4ReactionProduct * G4NeutronHPDiscreteTwoBody::Sample(G4double anEnergy, G4doub else if(A==4) { result->SetDefinition(G4Alpha::Alpha()); - if(Z!=2) G4Exception("Unknown ion case 1"); + if(Z!=2) throw G4HadronicException(__FILE__, __LINE__, "Unknown ion case 1"); } else { - G4Exception("G4NeutronHPDiscreteTwoBody: Unknown ion case 2"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPDiscreteTwoBody: Unknown ion case 2"); } // get cosine(theta) @@ -123,7 +123,7 @@ G4ReactionProduct * G4NeutronHPDiscreteTwoBody::Sample(G4double anEnergy, G4doub } else { - G4Exception("unknown representation type in Two-body scattering"); + throw G4HadronicException(__FILE__, __LINE__, "unknown representation type in Two-body scattering"); } } else @@ -251,12 +251,12 @@ G4ReactionProduct * G4NeutronHPDiscreteTwoBody::Sample(G4double anEnergy, G4doub } else { - G4Exception("Two neighbouring distributions with different interpolation"); + throw G4HadronicException(__FILE__, __LINE__, "Two neighbouring distributions with different interpolation"); } } else { - G4Exception("unknown representation type in Two-body scattering, case 2"); + throw G4HadronicException(__FILE__, __LINE__, "unknown representation type in Two-body scattering, case 2"); } } diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElastic.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElastic.cc index ab0cd29583..1229c109ab 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElastic.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElastic.cc @@ -31,7 +31,7 @@ { G4NeutronHPElasticFS * theFS = new G4NeutronHPElasticFS; if(!getenv("NeutronHPCrossSections")) - G4Exception("Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); + throw G4HadronicException(__FILE__, __LINE__, "Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); dirName = getenv("NeutronHPCrossSections"); G4String tString = "/Elastic/"; dirName = dirName + tString; @@ -55,9 +55,9 @@ #include "G4NeutronHPThermalBoost.hh" - G4VParticleChange * G4NeutronHPElastic::ApplyYourself(const G4Track& aTrack, G4Nucleus& ) + G4HadFinalState * G4NeutronHPElastic::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& ) { - G4Material * theMaterial = aTrack.GetMaterial(); + const G4Material * theMaterial = aTrack.GetMaterial(); G4int n = theMaterial->GetNumberOfElements(); G4int index = theMaterial->GetElement(0)->GetIndex(); if(n!=1) @@ -72,7 +72,7 @@ { index = theMaterial->GetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; - xSec[i] = theElastic[index].GetXsec(aThermalE.GetThermalEnergy(aTrack.GetDynamicParticle(), + xSec[i] = theElastic[index].GetXsec(aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature())); xSec[i] *= rWeight; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticData.cc index fc408fe130..f858fb16e7 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPElasticData.cc @@ -50,7 +50,7 @@ G4NeutronHPElasticData::~G4NeutronHPElasticData() void G4NeutronHPElasticData::BuildPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) - G4Exception("Attempt to use NeutronHP data for particles other than neutrons!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); size_t numberOfElements = G4Element::GetNumberOfElements(); theCrossSections = new G4PhysicsTable( numberOfElements ); @@ -68,7 +68,7 @@ void G4NeutronHPElasticData::BuildPhysicsTable(const G4ParticleDefinition& aP) void G4NeutronHPElasticData::DumpPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) - G4Exception("Attempt to use NeutronHP data for particles other than neutrons!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); // G4cout << "G4NeutronHPElasticData::DumpPhysicsTable still to be implemented"<GetDefinition() ); - theNeutron.SetMomentum( incidentParticle->GetMomentum() ); + const G4HadProjectile *incidentParticle = &theTrack; + G4ReactionProduct theNeutron( const_cast(incidentParticle->GetDefinition()) ); + theNeutron.SetMomentum( incidentParticle->Get4Momentum().vect() ); theNeutron.SetKineticEnergy( eKinetic ); // G4cout << "G4NeutronHPElasticFS::ApplyYourself++"<FindIon(static_cast(theBaseZ), static_cast(theBaseA), 0, static_cast(theBaseZ))); } theRecoil->SetMomentum(theTarget.GetMomentum()); - theResult.SetNumberOfSecondaries(1); theResult.AddSecondary(theRecoil); // G4cout << "G4NeutronHPElasticFS::ApplyYourself 10+"<size()!=1) G4Exception("SampleOne: Yield not correct"); + if(temp->size()!=1) throw G4HadronicException(__FILE__, __LINE__, "SampleOne: Yield not correct"); // fill result result = temp->operator[](0); @@ -121,7 +121,7 @@ G4ReactionProductVector * G4NeutronHPEnAngCorrelation::Sample(G4double anEnergy) } else { - G4Exception("G4NeutronHPEnAngCorrelation::Sample: The frame of the finalstate is not specified"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPEnAngCorrelation::Sample: The frame of the finalstate is not specified"); } result->push_back(it->operator[](ii)); } diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFSFissionFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFSFissionFS.cc index aec20581ca..522f6e915b 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFSFissionFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFSFissionFS.cc @@ -82,7 +82,7 @@ break; default: G4cout << "G4NeutronHPFSFissionFS::Init: unknown data type"<nEntries) G4Exception("Skipped some index numbers in G4NeutronHPField"); + if(i>nEntries) throw G4HadronicException(__FILE__, __LINE__, "Skipped some index numbers in G4NeutronHPField"); if(i==nPoints) { nPoints += 50; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFission.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFission.cc index 66a0064a0c..2aabacd838 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFission.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFission.cc @@ -31,7 +31,7 @@ SetMinEnergy( 0.0 ); SetMaxEnergy( 20.*MeV ); if(!getenv("NeutronHPCrossSections")) - G4Exception("Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); + throw G4HadronicException(__FILE__, __LINE__, "Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); dirName = getenv("NeutronHPCrossSections"); G4String tString = "/Fission/"; dirName = dirName + tString; @@ -54,10 +54,9 @@ } #include "G4NeutronHPThermalBoost.hh" - - G4VParticleChange * G4NeutronHPFission::ApplyYourself(const G4Track& aTrack, G4Nucleus& ) + G4HadFinalState * G4NeutronHPFission::ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& ) { - G4Material * theMaterial = aTrack.GetMaterial(); + const G4Material * theMaterial = aTrack.GetMaterial(); G4int n = theMaterial->GetNumberOfElements(); G4int index = theMaterial->GetElement(0)->GetIndex(); if(n!=1) @@ -72,7 +71,7 @@ { index = theMaterial->GetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; - xSec[i] = theFission[index].GetXsec(aThermalE.GetThermalEnergy(aTrack.GetDynamicParticle(), + xSec[i] = theFission[index].GetXsec(aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature())); xSec[i] *= rWeight; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc index 42d0fbf09f..aae07fd378 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPFissionData.cc @@ -51,7 +51,7 @@ G4NeutronHPFissionData::~G4NeutronHPFissionData() void G4NeutronHPFissionData::BuildPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) - G4Exception("Attempt to use NeutronHP data for particles other than neutrons!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); size_t numberOfElements = G4Element::GetNumberOfElements(); theCrossSections = new G4PhysicsTable( numberOfElements ); @@ -69,7 +69,7 @@ void G4NeutronHPFissionData::BuildPhysicsTable(const G4ParticleDefinition& aP) void G4NeutronHPFissionData::DumpPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) - G4Exception("Attempt to use NeutronHP data for particles other than neutrons!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); G4cout << "G4NeutronHPFissionData::DumpPhysicsTable still to be implemented"<GetDefinition() ); - theNeutron.SetMomentum( incidentParticle->GetMomentum() ); + const G4HadProjectile *incidentParticle = &theTrack; + G4ReactionProduct theNeutron( const_cast(incidentParticle->GetDefinition()) ); + theNeutron.SetMomentum( incidentParticle->Get4Momentum().vect() ); theNeutron.SetKineticEnergy( eKinetic ); // prepare target @@ -83,14 +82,20 @@ xSec[2] = xSec[1]+theTC.GetXsec(eKinetic); xSec[3] = xSec[2]+theLC.GetXsec(eKinetic); G4int it; - unsigned int i; + unsigned int i=0; G4double random = G4UniformRand(); - for(i=0; i<4; i++) + if(xSec[3]==0) { - it =i; - if(randomsize(); - theResult.SetNumberOfSecondaries(nPhotons+Prompt+delayed); for(i=0; isize(); i++) { theResult.AddSecondary(theNeutrons->operator[](i)); @@ -146,8 +150,10 @@ for(i=0; isize(); i++) { G4double time = -log(G4UniformRand())/theDecayConstants[i]; - time += theResult.GetTimeChange(); - theResult.AddSecondary(theDelayed->operator[](i), time); + time += theTrack.GetGlobalTime(); + G4HadSecondary * track = new G4HadSecondary(theDelayed->operator[](i)); + track->SetTime(time); + theResult.AddSecondary(track); } delete theDelayed; } @@ -160,7 +166,6 @@ theNeutrons = theFS.ApplyYourself(Prompt, delayed, theDecayConstants); G4int nPhotons = 0; if(thePhotons!=NULL) nPhotons = thePhotons->size(); - theResult.SetNumberOfSecondaries(nPhotons+Prompt+delayed); G4int i0; for(i0=0; i0operator[](i0), time); + time += theTrack.GetGlobalTime(); + G4HadSecondary * track = new G4HadSecondary(theNeutrons->operator[](i)); + track->SetTime(time); + theResult.AddSecondary(track); } delete theNeutrons; } @@ -200,6 +207,6 @@ theResult.SetLocalEnergyDeposit(eDepByFragments); // cout << "local energy deposit" << eDepByFragments<GetNumberOfElements(); G4int index = theMaterial->GetElement(0)->GetIndex(); G4int it=0; @@ -120,7 +120,7 @@ { index = theMaterial->GetElement(i)->GetIndex(); rWeight = NumAtomsPerVolume[i]; - xSec[i] = theInelastic[index].GetXsec(aThermalE.GetThermalEnergy(aTrack.GetDynamicParticle(), + xSec[i] = theInelastic[index].GetXsec(aThermalE.GetThermalEnergy(aTrack, theMaterial->GetElement(i), theMaterial->GetTemperature())); xSec[i] *= rWeight; diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc index 9a321db131..fffcc3f28e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticBaseFS.cc @@ -54,7 +54,7 @@ void G4NeutronHPInelasticBaseFS::Init (G4double A, G4double Z, G4String & dirNam { gammaPath = "/Inelastic/Gammas/"; if(!getenv("NeutronHPCrossSections")) - G4Exception("Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); + throw G4HadronicException(__FILE__, __LINE__, "Please setenv NeutronHPCrossSections to point to the neutron cross-section files."); G4String tBase = getenv("NeutronHPCrossSections"); gammaPath = tBase+gammaPath; G4String tString = dirName; @@ -137,23 +137,23 @@ void G4NeutronHPInelasticBaseFS::Init (G4double A, G4double Z, G4String & dirNam } else { - G4Exception("Data-type unknown to G4NeutronHPInelasticBaseFS"); + throw G4HadronicException(__FILE__, __LINE__, "Data-type unknown to G4NeutronHPInelasticBaseFS"); } } theData.close(); } -void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, +void G4NeutronHPInelasticBaseFS::BaseApply(const G4HadProjectile & theTrack, G4ParticleDefinition ** theDefs, G4int nDef) { - theResult.Initialize(theTrack); // prepare neutron + theResult.Clear(); G4double eKinetic = theTrack.GetKineticEnergy(); - const G4DynamicParticle *incidentParticle = theTrack.GetDynamicParticle(); - G4ReactionProduct theNeutron( incidentParticle->GetDefinition() ); - theNeutron.SetMomentum( incidentParticle->GetMomentum() ); + const G4HadProjectile *incidentParticle = &theTrack; + G4ReactionProduct theNeutron( const_cast(incidentParticle->GetDefinition()) ); + theNeutron.SetMomentum( incidentParticle->Get4Momentum().vect() ); theNeutron.SetKineticEnergy( eKinetic ); // prepare target @@ -187,7 +187,6 @@ void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, { aPhaseMass+=theDefs[ii]->GetPDGMass(); } - theResult.SetNumberOfSecondaries(nDef); thePhaseSpaceDistribution.Init(aPhaseMass, nDef); thePhaseSpaceDistribution.SetNeutron(&theNeutron); thePhaseSpaceDistribution.SetTarget(&theTarget); @@ -204,7 +203,7 @@ void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, delete aSec; theResult.AddSecondary(aPart); } - theResult.SetStatusChange(fStopAndKill); + theResult.SetStatusChange(stopAndKill); return; } @@ -271,7 +270,7 @@ void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, } else { - G4Exception("No energy distribution to sample from in InelasticBaseFS::BaseApply"); + throw G4HadronicException(__FILE__, __LINE__, "No energy distribution to sample from in InelasticBaseFS::BaseApply"); } theAngularDistribution->SampleAndUpdate(*aHadron); if(theEnergyDistribution==NULL && nDef == 2) @@ -320,7 +319,7 @@ void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, } else { - G4Exception("No data to create the neutrons in NInelasticFS"); + throw G4HadronicException(__FILE__, __LINE__, "No data to create the neutrons in NInelasticFS"); } G4ReactionProductVector * thePhotons = NULL; @@ -421,7 +420,6 @@ void G4NeutronHPInelasticBaseFS::BaseApply(const G4Track & theTrack, unsigned int nPhotons = 0; if(thePhotons!=NULL) nPhotons = thePhotons->size(); nSecondaries += nPhotons; - theResult.SetNumberOfSecondaries(nSecondaries); G4DynamicParticle * theSec; for(i=0; iGetDefinition() ); - theNeutron.SetMomentum( incidentParticle->GetMomentum() ); + const G4HadProjectile *incidentParticle = &theTrack; + G4ReactionProduct theNeutron( const_cast(incidentParticle->GetDefinition()) ); + theNeutron.SetMomentum( incidentParticle->Get4Momentum().vect() ); theNeutron.SetKineticEnergy( eKinetic ); // prepare target @@ -266,7 +266,7 @@ void G4NeutronHPInelasticCompFS::CompositeApply(const G4Track & theTrack, G4Part if(getenv("InelasticCompFSLogging") && eKinetic-eExcitation < 0) { - G4Exception("SEVERE: InelasticCompFS: Consistency of data not good enough, please file report"); + throw G4HadronicException(__FILE__, __LINE__, "SEVERE: InelasticCompFS: Consistency of data not good enough, please file report"); } if(eKinetic-eExcitation < 0) eExcitation = 0; if(iLevel!= -1) aHadron.SetKineticEnergy(eKinetic - eExcitation); @@ -429,9 +429,7 @@ void G4NeutronHPInelasticCompFS::CompositeApply(const G4Track & theTrack, G4Part G4int nPhotons = 0; if(thePhotons!=NULL) nPhotons = thePhotons->size(); nSecondaries += nPhotons; - - theResult.SetNumberOfSecondaries(nSecondaries); - + G4DynamicParticle * theSec; if( theParticles==NULL ) @@ -503,5 +501,5 @@ void G4NeutronHPInelasticCompFS::CompositeApply(const G4Track & theTrack, G4Part delete thePhotons; } // clean up the primary neutron - theResult.SetStatusChange(fStopAndKill); + theResult.SetStatusChange(stopAndKill); } diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc index ca82507d9e..890cae9f78 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPInelasticData.cc @@ -50,7 +50,7 @@ G4NeutronHPInelasticData::~G4NeutronHPInelasticData() void G4NeutronHPInelasticData::BuildPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) - G4Exception("Attempt to use NeutronHP data for particles other than neutrons!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); size_t numberOfElements = G4Element::GetNumberOfElements(); theCrossSections = new G4PhysicsTable( numberOfElements ); @@ -68,7 +68,7 @@ void G4NeutronHPInelasticData::BuildPhysicsTable(const G4ParticleDefinition& aP) void G4NeutronHPInelasticData::DumpPhysicsTable(const G4ParticleDefinition& aP) { if(&aP!=G4Neutron::Neutron()) - G4Exception("Attempt to use NeutronHP data for particles other than neutrons!!!"); + throw G4HadronicException(__FILE__, __LINE__, "Attempt to use NeutronHP data for particles other than neutrons!!!"); G4cout << "G4NeutronHPInelasticData::DumpPhysicsTable still to be implemented"<89) diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsotropic.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsotropic.cc index 61e671a188..a002b9bd80 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsotropic.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPIsotropic.cc @@ -72,11 +72,11 @@ G4ReactionProduct * G4NeutronHPIsotropic::Sample(G4double anEnergy, G4double mas else if(A==4) { result->SetDefinition(G4Alpha::Alpha()); - if(Z!=2) G4Exception("Unknown ion case 1"); + if(Z!=2) throw G4HadronicException(__FILE__, __LINE__, "Unknown ion case 1"); } else { - G4Exception("G4NeutronHPIsotropic: Unknown ion case 2"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPIsotropic: Unknown ion case 2"); } G4double cosTh = G4UniformRand(); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc index 1de0a6e0ee..961ef25595 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPKallbachMannSyst.cc @@ -26,6 +26,7 @@ // #include "G4NeutronHPKallbachMannSyst.hh" #include "Randomize.hh" +#include "G4HadronicException.hh" G4double G4NeutronHPKallbachMannSyst::Sample(G4double anEnergy) { @@ -111,7 +112,7 @@ G4double G4NeutronHPKallbachMannSyst::A(G4double anEnergy) } else { - G4Exception("Severe error in the sampling of Kallbach-Mann Systematics"); + throw G4HadronicException(__FILE__, __LINE__, "Severe error in the sampling of Kallbach-Mann Systematics"); } result = C1*X1 + C2*pow(X1, 3.) + C3*Ma*mb*pow(X3, 4.); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc index 04e08a6c4a..a74d16df96 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPLabAngularEnergy.cc @@ -93,11 +93,11 @@ G4ReactionProduct * G4NeutronHPLabAngularEnergy::Sample(G4double anEnergy, G4dou else if(A==4) { result->SetDefinition(G4Alpha::Alpha()); - if(Z!=2) G4Exception("Unknown ion case 1"); + if(Z!=2) throw G4HadronicException(__FILE__, __LINE__, "Unknown ion case 1"); } else { - G4Exception("G4NeutronHPLabAngularEnergy: Unknown ion case 2"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPLabAngularEnergy: Unknown ion case 2"); } // get theta, E diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPList.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPList.cc index 8ae6bc34aa..6f44bc266d 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPList.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPList.cc @@ -25,14 +25,15 @@ // A prototype of the low energy neutron transport model. // #include "G4NeutronHPList.hh" +#include "G4HadronicException.hh" void G4NeutronHPList::Check(G4int i) { if(i<0) { - G4Exception("G4NeutronHPList::Check(G4int) called with negative index"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPList::Check(G4int) called with negative index"); } - if(i>nEntries) G4Exception("Skipped some index numbers in G4NeutronHPList"); + if(i>nEntries) throw G4HadronicException(__FILE__, __LINE__, "Skipped some index numbers in G4NeutronHPList"); if(i==nPoints) { nPoints = static_cast(1.5*nPoints); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPMadlandNixSpectrum.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPMadlandNixSpectrum.cc index af79eeefd9..9c5ed446e9 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPMadlandNixSpectrum.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPMadlandNixSpectrum.cc @@ -81,7 +81,7 @@ buff = current; current+=abs(current-last)/2.; last = buff; - if(current>190*MeV) G4Exception("Madland-Nix Spectrum has not converged in sampling"); + if(current>190*MeV) throw G4HadronicException(__FILE__, __LINE__, "Madland-Nix Spectrum has not converged in sampling"); } else { diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN2AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN2AInelasticFS.cc index dd025de13f..dad7cd2317 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN2AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN2AInelasticFS.cc @@ -28,7 +28,7 @@ #include "G4Nucleus.hh" #include "G4Alpha.hh" -G4ParticleChange * G4NeutronHPN2AInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPN2AInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN2PInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN2PInelasticFS.cc index 6f253d2906..4214ea5eb8 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN2PInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN2PInelasticFS.cc @@ -28,7 +28,7 @@ #include "G4Nucleus.hh" #include "G4Proton.hh" -G4ParticleChange * G4NeutronHPN2PInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPN2PInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN3AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN3AInelasticFS.cc index f91f50eb1b..c7fcb19e7a 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN3AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPN3AInelasticFS.cc @@ -28,7 +28,7 @@ #include "G4Nucleus.hh" #include "G4Alpha.hh" -G4ParticleChange * G4NeutronHPN3AInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPN3AInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNAInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNAInelasticFS.cc index 67c15d557a..57d383183d 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNAInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNAInelasticFS.cc @@ -28,7 +28,7 @@ #include "G4Nucleus.hh" #include "G4Alpha.hh" -G4ParticleChange * G4NeutronHPNAInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPNAInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNBodyPhaseSpace.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNBodyPhaseSpace.cc index 199e686385..88c5bf029e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNBodyPhaseSpace.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNBodyPhaseSpace.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4NeutronHPNBodyPhaseSpace.cc,v 1.9 2003/05/30 11:32:34 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4NeutronHPNBodyPhaseSpace.cc,v 1.10 2003/11/03 17:54:38 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4NeutronHPNBodyPhaseSpace.hh" #include "G4Gamma.hh" @@ -69,11 +69,11 @@ G4ReactionProduct * G4NeutronHPNBodyPhaseSpace::Sample(G4double anEnergy, G4doub else if(A==4) { result->SetDefinition(G4Alpha::Alpha()); - if(Z!=2) G4Exception("Unknown ion case 1"); + if(Z!=2) throw G4HadronicException(__FILE__, __LINE__, "Unknown ion case 1"); } else { - G4Exception("G4NeutronHPNBodyPhaseSpace: Unknown ion case 2"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPNBodyPhaseSpace: Unknown ion case 2"); } // Get the energy from phase-space distribution @@ -96,7 +96,7 @@ G4ReactionProduct * G4NeutronHPNBodyPhaseSpace::Sample(G4double anEnergy, G4doub } else { - G4Exception("NeutronHP Phase-space distribution cannot cope with this number of particles"); + throw G4HadronicException(__FILE__, __LINE__, "NeutronHP Phase-space distribution cannot cope with this number of particles"); } G4double testit; G4double rand0 = Prob(max, maxE, theTotalCount); diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPND2AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPND2AInelasticFS.cc index 41c7d8a406..8b5f38c81e 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPND2AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPND2AInelasticFS.cc @@ -29,7 +29,7 @@ #include "G4Deuteron.hh" #include "G4Alpha.hh" -G4ParticleChange * G4NeutronHPND2AInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPND2AInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNDInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNDInelasticFS.cc index ce4e239e2e..cef4881863 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNDInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNDInelasticFS.cc @@ -28,7 +28,8 @@ #include "G4Nucleus.hh" #include "G4Deuteron.hh" -G4ParticleChange * G4NeutronHPNDInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPNDInelasticFS::ApplyYourself(const G4HadProjectile & theTrack +) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNHe3InelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNHe3InelasticFS.cc index f192d147f2..47fe8acfc6 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNHe3InelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNHe3InelasticFS.cc @@ -28,7 +28,7 @@ #include "G4Nucleus.hh" #include "G4He3.hh" -G4ParticleChange * G4NeutronHPNHe3InelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPNHe3InelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNInelasticFS.cc index e028e197f5..7177475529 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPNInelasticFS.cc @@ -35,13 +35,14 @@ void G4NeutronHPNInelasticFS::Init (G4double A, G4double Z, G4String & dirName, G4String & aFSType) { + // G4cout << "Getting initialized for: "< const G4String G4NeutronHPNames::theString[99] = {"Hydrogen", "Helium", @@ -57,7 +58,7 @@ if(getenv("NeutronHPNames")) G4cout << "Names::GetName entered"<92.5&&!getenv("AllowForHeavyElements") ) { G4cerr << "Please contact Hans-Peter.Wellisch@cern.ch"<92 are not provided"); + throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPNames::GetName - data with Z>92 are not provided"); } G4String * theName = NULL; G4String theFileName(""); @@ -144,7 +145,7 @@ if(getenv("NeutronHPNames")) G4cout <<"HPWD 4 "<<*theName<operator[](count)->SetKineticEnergy(energy[i]); } count++; - if(count > nSecondaries) G4Exception("G4NeutronHPPhotonDist::GetPhotons inconsistancy"); + if(count > nSecondaries) throw G4HadronicException(__FILE__, __LINE__, "G4NeutronHPPhotonDist::GetPhotons inconsistancy"); } } // now do the angular distributions... diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPT2AInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPT2AInelasticFS.cc index 2a0d31f312..b6b0ac6481 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPT2AInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPT2AInelasticFS.cc @@ -27,7 +27,7 @@ #include "G4Nucleus.hh" #include "G4Alpha.hh" -G4ParticleChange * G4NeutronHPT2AInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPT2AInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // these are the particle types in the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTInelasticFS.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTInelasticFS.cc index 0785a65622..b292a9467c 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTInelasticFS.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPTInelasticFS.cc @@ -35,7 +35,7 @@ void G4NeutronHPTInelasticFS::Init (G4double A, G4double Z, G4String & dirName, G4NeutronHPInelasticCompFS::InitGammas(ResidualA, ResidualZ); } -G4ParticleChange * G4NeutronHPTInelasticFS::ApplyYourself(const G4Track & theTrack) +G4HadFinalState * G4NeutronHPTInelasticFS::ApplyYourself(const G4HadProjectile & theTrack) { // do the final state diff --git a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPVector.cc b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPVector.cc index 80b6b064bc..3d8abf3f52 100644 --- a/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPVector.cc +++ b/source/processes/hadronic/models/neutron_hp/src/G4NeutronHPVector.cc @@ -193,7 +193,7 @@ void G4NeutronHPVector::Check(G4int i) { - if(i>nEntries) G4Exception("Skipped some index numbers in G4NeutronHPVector"); + if(i>nEntries) throw G4HadronicException(__FILE__, __LINE__, "Skipped some index numbers in G4NeutronHPVector"); if(i==nPoints) { nPoints = static_cast(1.2*nPoints); diff --git a/source/processes/hadronic/models/parton_string/GNUmakefile b/source/processes/hadronic/models/parton_string/GNUmakefile new file mode 100644 index 0000000000..b62ba1ebea --- /dev/null +++ b/source/processes/hadronic/models/parton_string/GNUmakefile @@ -0,0 +1,23 @@ +# -------------------------------------------------------------- +# GNUmakefile for chips library. HPW 20-Nov-99 +# -------------------------------------------------------------- + +name := G4had_string + + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +SUBDIRS = diffraction +SUBDIRS += hadronization +SUBDIRS += management +SUBDIRS += qgsm + + +SUBLIBS = G4had_string_diff +SUBLIBS += G4had_string_frag +SUBLIBS += G4had_string_man +SUBLIBS += G4hadronic_qgstring + +include $(G4INSTALL)/config/globlib.gmk diff --git a/source/processes/hadronic/models/parton_string/diffraction/GNUmakefile b/source/processes/hadronic/models/parton_string/diffraction/GNUmakefile new file mode 100644 index 0000000000..ea14d5306e --- /dev/null +++ b/source/processes/hadronic/models/parton_string/diffraction/GNUmakefile @@ -0,0 +1,39 @@ +# $Id: GNUmakefile,v 1.2 2003/10/08 15:44:10 hpw Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. JPW, 2003. +# ----------------------------------------------------------- + +name := G4had_string_diff + +ifndef G4INSTALL + G4INSTALL = ../../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/diffraction/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/management/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/hadronization/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveHHScatterer.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveHHScatterer.hh similarity index 96% rename from source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveHHScatterer.hh rename to source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveHHScatterer.hh index 1cc97d9ef0..638ddcf0cf 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveHHScatterer.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveHHScatterer.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4DiffractiveHHScatterer.hh,v 1.5 2002/12/12 19:17:25 gunter Exp $ +// $Id: G4DiffractiveHHScatterer.hh,v 1.2 2003/10/08 13:48:47 hpw Exp $ #ifndef G4DiffractiveHHScatterer_h #define G4DiffractiveHHScatterer_h 1 diff --git a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveSplitableHadron.hh similarity index 96% rename from source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh rename to source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveSplitableHadron.hh index eb37d0de18..6d195baa57 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4DiffractiveSplitableHadron.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4DiffractiveSplitableHadron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DiffractiveSplitableHadron.hh,v 1.6 2002/12/12 19:17:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DiffractiveSplitableHadron.hh,v 1.2 2003/10/08 13:48:47 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4DiffractiveSplitableHadron_h diff --git a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh similarity index 97% rename from source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh rename to source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh index 3422668a02..d3cd828a3c 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFModel.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FTFModel.hh,v 1.7 2002/12/12 19:17:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FTFModel.hh,v 1.2 2003/10/08 13:48:47 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class Description // Final state production code for hadron inelastic scattering above 20 GeV diff --git a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParticipants.hh similarity index 96% rename from source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh rename to source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParticipants.hh index 927ecb5937..5d059385ca 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/include/G4FTFParticipants.hh +++ b/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParticipants.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FTFParticipants.hh,v 1.9 2003/06/16 17:06:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FTFParticipants.hh,v 1.2 2003/10/08 13:48:47 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4FTFParticipants_h diff --git a/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveHHScatterer.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveHHScatterer.cc similarity index 100% rename from source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveHHScatterer.cc rename to source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveHHScatterer.cc diff --git a/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc similarity index 96% rename from source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc rename to source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc index 9b5d173f41..3e7c4616cf 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4DiffractiveSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4DiffractiveSplitableHadron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4DiffractiveSplitableHadron.cc,v 1.10 2003/06/16 17:06:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4DiffractiveSplitableHadron.cc,v 1.3 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ @@ -69,7 +69,7 @@ G4DiffractiveSplitableHadron::~G4DiffractiveSplitableHadron() const G4DiffractiveSplitableHadron & G4DiffractiveSplitableHadron::operator=(const G4DiffractiveSplitableHadron &) { - G4Exception("G4DiffractiveSplitableHadron::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4DiffractiveSplitableHadron::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc similarity index 96% rename from source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc rename to source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc index 16ac635074..a2da9eddb3 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFModel.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FTFModel.cc,v 1.12 2003/06/16 17:06:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FTFModel.cc,v 1.3 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ @@ -64,7 +64,7 @@ G4FTFModel::~G4FTFModel() const G4FTFModel & G4FTFModel::operator=(const G4FTFModel &) { - G4Exception("G4FTFModel::operator= is not meant to be accessed "); + throw G4HadronicException(__FILE__, __LINE__, "G4FTFModel::operator= is not meant to be accessed "); return *this; } diff --git a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParticipants.cc similarity index 98% rename from source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc rename to source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParticipants.cc index 3e14ffb203..99f17629e3 100644 --- a/source/processes/hadronic/models/generator/diffractive_string/src/G4FTFParticipants.cc +++ b/source/processes/hadronic/models/parton_string/diffraction/src/G4FTFParticipants.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FTFParticipants.cc,v 1.8 2003/05/30 13:27:19 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FTFParticipants.cc,v 1.2 2003/10/08 13:48:47 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/management/GNUmakefile b/source/processes/hadronic/models/parton_string/hadronization/GNUmakefile similarity index 83% rename from source/processes/hadronic/models/generator/management/GNUmakefile rename to source/processes/hadronic/models/parton_string/hadronization/GNUmakefile index f05aa3221c..092dda9684 100644 --- a/source/processes/hadronic/models/generator/management/GNUmakefile +++ b/source/processes/hadronic/models/parton_string/hadronization/GNUmakefile @@ -1,9 +1,9 @@ -# $Id: GNUmakefile,v 1.2 2003/06/18 13:26:48 gcosmo Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 16:42:21 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- -name := G4hadronic_man_gen +name := G4had_string_frag ifndef G4INSTALL G4INSTALL = ../../../../../.. @@ -23,8 +23,9 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/models/generator/pre_equilibrium/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/management/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4ExcitedStringDecay.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4ExcitedStringDecay.hh similarity index 97% rename from source/processes/hadronic/models/generator/string_fragmentation/include/G4ExcitedStringDecay.hh rename to source/processes/hadronic/models/parton_string/hadronization/include/G4ExcitedStringDecay.hh index 080c423cc4..c0d3b0262f 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4ExcitedStringDecay.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4ExcitedStringDecay.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ExcitedStringDecay.hh,v 1.10 2002/12/12 19:17:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ExcitedStringDecay.hh,v 1.1 2003/10/07 11:25:40 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4ExcitedStringDecay_h #define G4ExcitedStringDecay_h 1 diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4FragmentingString.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4FragmentingString.hh similarity index 97% rename from source/processes/hadronic/models/generator/string_fragmentation/include/G4FragmentingString.hh rename to source/processes/hadronic/models/parton_string/hadronization/include/G4FragmentingString.hh index 321db5e250..6d198442e8 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4FragmentingString.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4FragmentingString.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FragmentingString.hh,v 1.1 2001/10/09 10:38:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FragmentingString.hh,v 1.1 2003/10/07 11:25:40 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4FragmentingString_h diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4HadronBuilder.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh similarity index 96% rename from source/processes/hadronic/models/generator/string_fragmentation/include/G4HadronBuilder.hh rename to source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh index 3313a6b10c..162a0ada15 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4HadronBuilder.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4HadronBuilder.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HadronBuilder.hh,v 1.3 2003/06/16 17:09:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HadronBuilder.hh,v 1.1 2003/10/07 11:25:40 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class header file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4LundStringFragmentation.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4LundStringFragmentation.hh similarity index 95% rename from source/processes/hadronic/models/generator/string_fragmentation/include/G4LundStringFragmentation.hh rename to source/processes/hadronic/models/parton_string/hadronization/include/G4LundStringFragmentation.hh index 475ebd78b5..87e25bf632 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4LundStringFragmentation.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4LundStringFragmentation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LundStringFragmentation.hh,v 1.6 2002/12/12 19:17:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ Maxim Komogorov +// $Id: G4LundStringFragmentation.hh,v 1.1 2003/10/07 11:25:40 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ Maxim Komogorov // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4QGSMFragmentation.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4QGSMFragmentation.hh similarity index 96% rename from source/processes/hadronic/models/generator/string_fragmentation/include/G4QGSMFragmentation.hh rename to source/processes/hadronic/models/parton_string/hadronization/include/G4QGSMFragmentation.hh index b6bfac0a88..6736c06f4b 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4QGSMFragmentation.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4QGSMFragmentation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QGSMFragmentation.hh,v 1.6 2002/12/12 19:17:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QGSMFragmentation.hh,v 1.1 2003/10/07 11:25:40 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4VKinkyStringDecay.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4VKinkyStringDecay.hh similarity index 96% rename from source/processes/hadronic/models/generator/string_fragmentation/include/G4VKinkyStringDecay.hh rename to source/processes/hadronic/models/parton_string/hadronization/include/G4VKinkyStringDecay.hh index 1de4cd3141..c79e20071b 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4VKinkyStringDecay.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4VKinkyStringDecay.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VKinkyStringDecay.hh,v 1.6 2002/12/12 19:17:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VKinkyStringDecay.hh,v 1.1 2003/10/07 11:25:40 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/string_fragmentation/include/G4VLongitudinalStringDecay.hh b/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh similarity index 98% rename from source/processes/hadronic/models/generator/string_fragmentation/include/G4VLongitudinalStringDecay.hh rename to source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh index 651c5cefbc..773fafb6be 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/include/G4VLongitudinalStringDecay.hh +++ b/source/processes/hadronic/models/parton_string/hadronization/include/G4VLongitudinalStringDecay.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VLongitudinalStringDecay.hh,v 1.14 2003/06/16 17:09:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VLongitudinalStringDecay.hh,v 1.1 2003/10/07 11:25:40 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4ExcitedStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc similarity index 75% rename from source/processes/hadronic/models/generator/string_fragmentation/src/G4ExcitedStringDecay.cc rename to source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc index 85f764df00..1bad0817b8 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4ExcitedStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4ExcitedStringDecay.cc @@ -42,7 +42,7 @@ G4ExcitedStringDecay::~G4ExcitedStringDecay() const G4ExcitedStringDecay & G4ExcitedStringDecay::operator=(const G4ExcitedStringDecay &) { - G4Exception("G4ExcitedStringDecay::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4ExcitedStringDecay::operator= meant to not be accessable"); return *this; } @@ -58,7 +58,7 @@ int G4ExcitedStringDecay::operator!=(const G4ExcitedStringDecay &) const G4bool G4ExcitedStringDecay:: EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalCollisionMom) - { + { const int nAttemptScale = 500; const double ErrLimit = 1.E-5; if (Output->empty()) @@ -85,31 +85,41 @@ EnergyAndMomentumCorrector(G4KineticTrackVector* Output, G4LorentzVector& TotalC // Scale total c.m.s. hadron energy (hadron system mass). // It should be equal interaction mass G4double Scale = 1; - for(G4int cAttempt = 0; cAttempt < nAttemptScale; cAttempt++) - { - G4double Sum = 0; - for(cHadron = 0; cHadron < Output->size(); cHadron++) - { - G4LorentzVector HadronMom = Output->operator[](cHadron)->Get4Momentum(); - HadronMom.setVect(Scale*HadronMom.vect()); - G4double E = sqrt(HadronMom.vect().mag2() + sqr(Output->operator[](cHadron)->GetDefinition()->GetPDGMass())); - HadronMom.setE(E); - Output->operator[](cHadron)->Set4Momentum(HadronMom); - Sum += E; - } - Scale = TotalCollisionMass/Sum; - if (Scale - 1 <= ErrLimit) goto LTRUE; - } + G4int cAttempt = 0; + G4double Sum = 0; + G4bool success = false; + for(cAttempt = 0; cAttempt < nAttemptScale; cAttempt++) + { + Sum = 0; + for(cHadron = 0; cHadron < Output->size(); cHadron++) + { + G4LorentzVector HadronMom = Output->operator[](cHadron)->Get4Momentum(); + HadronMom.setVect(Scale*HadronMom.vect()); + G4double E = sqrt(HadronMom.vect().mag2() + sqr(Output->operator[](cHadron)->GetDefinition()->GetPDGMass())); + HadronMom.setE(E); + Output->operator[](cHadron)->Set4Momentum(HadronMom); + Sum += E; + } + Scale = TotalCollisionMass/Sum; + if (Scale - 1 <= ErrLimit) + { + success = true; + break; + } + } - G4cout << "G4VPartonStringModel::EnergyAndMomentumCorrector"<Boost(Beta); return TRUE; - } + } diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4FragmentingString.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4FragmentingString.cc similarity index 91% rename from source/processes/hadronic/models/generator/string_fragmentation/src/G4FragmentingString.cc rename to source/processes/hadronic/models/parton_string/hadronization/src/G4FragmentingString.cc index 0698cadf9a..403f62b185 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4FragmentingString.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4FragmentingString.cc @@ -90,7 +90,7 @@ G4FragmentingString::G4FragmentingString(const G4FragmentingString &old, Ptleft = old.Ptleft; } else { - G4Exception("G4FragmentingString::G4FragmentingString: no decay Direction defined"); + throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::G4FragmentingString: no decay Direction defined"); } Pplus = old.Pplus - (momentum->e() + momentum->pz()); Pminus = old.Pminus - (momentum->e() - momentum->pz()); @@ -130,7 +130,7 @@ G4int G4FragmentingString::GetDecayDirection() const { if (decaying == Left ) return +1; else if (decaying == Right) return -1; - else G4Exception("G4FragmentingString::GetDecayDirection: decay side UNdefined!"); + else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::GetDecayDirection: decay side UNdefined!"); return 0; } @@ -160,7 +160,7 @@ G4ThreeVector G4FragmentingString::StablePt() { if (decaying == Left ) return Ptright; else if (decaying == Right ) return Ptleft; - else G4Exception("G4FragmentingString::DecayPt: decay side UNdefined!"); + else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!"); return G4ThreeVector(); } @@ -168,7 +168,7 @@ G4ThreeVector G4FragmentingString::DecayPt() { if (decaying == Left ) return Ptleft; else if (decaying == Right ) return Ptright; - else G4Exception("G4FragmentingString::DecayPt: decay side UNdefined!"); + else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!"); return G4ThreeVector(); } @@ -188,7 +188,7 @@ G4double G4FragmentingString::LightConeDecay() { if (decaying == Left ) return Pplus; else if (decaying == Right ) return Pminus; - else G4Exception("G4FragmentingString::DecayPt: decay side UNdefined!"); + else throw G4HadronicException(__FILE__, __LINE__, "G4FragmentingString::DecayPt: decay side UNdefined!"); return 0; } diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4HadronBuilder.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc similarity index 96% rename from source/processes/hadronic/models/generator/string_fragmentation/src/G4HadronBuilder.cc rename to source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc index 18af82eda3..8c656a22f7 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4HadronBuilder.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4HadronBuilder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HadronBuilder.cc,v 1.4 2003/06/16 17:09:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HadronBuilder.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file @@ -33,6 +33,7 @@ // ----------------------------------------------------------------------------- #include "G4HadronBuilder.hh" +#include "G4HadronicException.hh" #include "Randomize.hh" #include "G4ParticleTable.hh" @@ -120,7 +121,7 @@ G4ParticleDefinition * G4HadronBuilder::Meson(G4ParticleDefinition * black, } if (abs(id1) > 3 ) - G4Exception("G4HadronBuilder::Meson : Illegal Quark content as input"); + throw G4HadronicException(__FILE__, __LINE__, "G4HadronBuilder::Meson : Illegal Quark content as input"); G4int PDGEncoding=0; @@ -197,7 +198,7 @@ G4ParticleDefinition * G4HadronBuilder::Barion(G4ParticleDefinition * black, } if (abs(id1) < 1000 || abs(id2) > 3 ) - G4Exception("G4HadronBuilder::Barion: Illegal quark content as input"); + throw G4HadronicException(__FILE__, __LINE__, "G4HadronBuilder::Barion: Illegal quark content as input"); G4int ifl1= abs(id1)/1000; G4int ifl2 = (abs(id1) - ifl1 * 1000)/100; diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4LundStringFragmentation.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc similarity index 94% rename from source/processes/hadronic/models/generator/string_fragmentation/src/G4LundStringFragmentation.cc rename to source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc index aaa3148dbc..e44c7d0c6d 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4LundStringFragmentation.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4LundStringFragmentation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LundStringFragmentation.cc,v 1.6 2003/05/30 14:36:44 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LundStringFragmentation.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file @@ -57,7 +57,7 @@ G4LundStringFragmentation::~G4LundStringFragmentation() const G4LundStringFragmentation & G4LundStringFragmentation::operator=(const G4LundStringFragmentation &) { - G4Exception("G4LundStringFragmentation::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4LundStringFragmentation::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4QGSMFragmentation.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4QGSMFragmentation.cc similarity index 92% rename from source/processes/hadronic/models/generator/string_fragmentation/src/G4QGSMFragmentation.cc rename to source/processes/hadronic/models/parton_string/hadronization/src/G4QGSMFragmentation.cc index abbd0b34d1..272e2ca66a 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4QGSMFragmentation.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4QGSMFragmentation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4QGSMFragmentation.cc,v 1.9 2003/05/30 14:36:44 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4QGSMFragmentation.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file @@ -54,7 +54,7 @@ G4QGSMFragmentation::~G4QGSMFragmentation() const G4QGSMFragmentation & G4QGSMFragmentation::operator=(const G4QGSMFragmentation &) { - G4Exception("G4QGSMFragmentation::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4QGSMFragmentation::operator= meant to not be accessable"); return *this; } @@ -79,7 +79,7 @@ G4double G4QGSMFragmentation::GetLightConeZ(G4double zmin, G4double zmax, G4int { if(absCode == 1 || absCode == 2) theA = arho; else if(absCode == 3) theA = aphi; - else G4Exception("Unknown PDGencoding in G4QGSMFragmentation::G4LightConeZ"); + else throw G4HadronicException(__FILE__, __LINE__, "Unknown PDGencoding in G4QGSMFragmentation::G4LightConeZ"); do { diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4VKinkyStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4VKinkyStringDecay.cc similarity index 97% rename from source/processes/hadronic/models/generator/string_fragmentation/src/G4VKinkyStringDecay.cc rename to source/processes/hadronic/models/parton_string/hadronization/src/G4VKinkyStringDecay.cc index dcbe84955f..53ce9607d7 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4VKinkyStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4VKinkyStringDecay.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VKinkyStringDecay.cc,v 1.8 2002/12/12 19:17:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VKinkyStringDecay.cc,v 1.1 2003/10/07 11:25:41 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // Maxim Komogorov // // ----------------------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/string_fragmentation/src/G4VLongitudinalStringDecay.cc b/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc similarity index 93% rename from source/processes/hadronic/models/generator/string_fragmentation/src/G4VLongitudinalStringDecay.cc rename to source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc index 287ac6fc5a..00247fb5b0 100644 --- a/source/processes/hadronic/models/generator/string_fragmentation/src/G4VLongitudinalStringDecay.cc +++ b/source/processes/hadronic/models/parton_string/hadronization/src/G4VLongitudinalStringDecay.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VLongitudinalStringDecay.cc,v 1.26 2003/06/16 17:09:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VLongitudinalStringDecay.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ----------------------------------------------------------------------------- // GEANT 4 class implementation file @@ -118,7 +118,7 @@ G4VLongitudinalStringDecay::~G4VLongitudinalStringDecay() int G4VLongitudinalStringDecay::operator==(const G4VLongitudinalStringDecay &) const { - G4Exception("G4VLongitudinalStringDecay::operator== forbidden"); + throw G4HadronicException(__FILE__, __LINE__, "G4VLongitudinalStringDecay::operator== forbidden"); return false; } @@ -126,7 +126,7 @@ int G4VLongitudinalStringDecay::operator==(const G4VLongitudinalStringDecay &) c int G4VLongitudinalStringDecay::operator!=(const G4VLongitudinalStringDecay &) const { - G4Exception("G4VLongitudinalStringDecay::operator!= forbidden"); + throw G4HadronicException(__FILE__, __LINE__, "G4VLongitudinalStringDecay::operator!= forbidden"); return true; } @@ -641,7 +641,7 @@ G4ParticleDefinition* G4VLongitudinalStringDecay::FindParticle(G4int Encoding) if (ptr == NULL) { G4cout << "Particle with encoding "< aVector) { if ( PastInitPhase ) { - G4Exception("4VLongitudinalStringDecay::SetScalarMesonMixings after FragmentString() not allowed"); + throw G4HadronicException(__FILE__, __LINE__, "4VLongitudinalStringDecay::SetScalarMesonMixings after FragmentString() not allowed"); } else { if ( aVector.size() < 6 ) - G4Exception("4VLongitudinalStringDecay::SetScalarMesonMixings( argument Vector too small"); + throw G4HadronicException(__FILE__, __LINE__, "4VLongitudinalStringDecay::SetScalarMesonMixings( argument Vector too small"); scalarMesonMix[0] = aVector[0]; scalarMesonMix[1] = aVector[1]; scalarMesonMix[2] = aVector[2]; @@ -764,10 +764,10 @@ void G4VLongitudinalStringDecay::SetScalarMesonMixings(std::vector aVe void G4VLongitudinalStringDecay::SetVectorMesonMixings(std::vector aVector) { if ( PastInitPhase ) { - G4Exception("4VLongitudinalStringDecay::SetVectorMesonMixings after FragmentString() not allowed"); + throw G4HadronicException(__FILE__, __LINE__, "4VLongitudinalStringDecay::SetVectorMesonMixings after FragmentString() not allowed"); } else { if ( aVector.size() < 6 ) - G4Exception("4VLongitudinalStringDecay::SetVectorMesonMixings( argument Vector too small"); + throw G4HadronicException(__FILE__, __LINE__, "4VLongitudinalStringDecay::SetVectorMesonMixings( argument Vector too small"); vectorMesonMix[0] = aVector[0]; vectorMesonMix[1] = aVector[1]; vectorMesonMix[2] = aVector[2]; diff --git a/source/processes/hadronic/models/parton_string/management/GNUmakefile b/source/processes/hadronic/models/parton_string/management/GNUmakefile new file mode 100644 index 0000000000..92d66527c0 --- /dev/null +++ b/source/processes/hadronic/models/parton_string/management/GNUmakefile @@ -0,0 +1,36 @@ +# $Id: GNUmakefile,v 1.2 2003/10/08 15:56:36 hpw Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. JPW 2003. +# ----------------------------------------------------------- + +name := G4had_string_man + +ifndef G4INSTALL + G4INSTALL = ../../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/generator/string_common/include/G4DiffractiveExcitation.hh b/source/processes/hadronic/models/parton_string/management/include/G4DiffractiveExcitation.hh similarity index 97% rename from source/processes/hadronic/models/generator/string_common/include/G4DiffractiveExcitation.hh rename to source/processes/hadronic/models/parton_string/management/include/G4DiffractiveExcitation.hh index 7435c75496..65354eddfa 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4DiffractiveExcitation.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4DiffractiveExcitation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4DiffractiveExcitation.hh,v 1.7 2002/12/12 19:17:54 gunter Exp $ +// $Id: G4DiffractiveExcitation.hh,v 1.1 2003/10/07 11:25:59 hpw Exp $ #ifndef G4DiffractiveExcitation_h #define G4DiffractiveExcitation_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4EventGenerator.hh b/source/processes/hadronic/models/parton_string/management/include/G4EventGenerator.hh similarity index 95% rename from source/processes/hadronic/models/generator/string_common/include/G4EventGenerator.hh rename to source/processes/hadronic/models/parton_string/management/include/G4EventGenerator.hh index 543dd50864..4fd084faac 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4EventGenerator.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4EventGenerator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EventGenerator.hh,v 1.5 2002/12/12 19:17:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EventGenerator.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4EventGenerator_h #define G4EventGenerator_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4InteractionCode.hh b/source/processes/hadronic/models/parton_string/management/include/G4InteractionCode.hh similarity index 94% rename from source/processes/hadronic/models/generator/string_common/include/G4InteractionCode.hh rename to source/processes/hadronic/models/parton_string/management/include/G4InteractionCode.hh index 9ceb4c93e0..65f67b676f 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4InteractionCode.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4InteractionCode.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4InteractionCode.hh,v 1.5 2002/12/12 19:17:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4InteractionCode.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4InteractionCode_h #define G4InteractionCode_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4InteractionContent.hh b/source/processes/hadronic/models/parton_string/management/include/G4InteractionContent.hh similarity index 97% rename from source/processes/hadronic/models/generator/string_common/include/G4InteractionContent.hh rename to source/processes/hadronic/models/parton_string/management/include/G4InteractionContent.hh index 87057aaed7..a47579f2e2 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4InteractionContent.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4InteractionContent.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4InteractionContent.hh,v 1.7 2002/12/12 19:17:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4InteractionContent.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4InteractionContent_h diff --git a/source/processes/hadronic/models/generator/string_common/include/G4PomeronCrossSection.hh b/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh similarity index 97% rename from source/processes/hadronic/models/generator/string_common/include/G4PomeronCrossSection.hh rename to source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh index fe713b4b34..0df449ea2a 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4PomeronCrossSection.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4PomeronCrossSection.hh @@ -23,8 +23,8 @@ #ifndef G4PomeronCrossSection_h #define G4PomeronCrossSection_h 1 // -// $Id: G4PomeronCrossSection.hh,v 1.7 2002/12/12 19:17:54 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PomeronCrossSection.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Proton.hh" #include "G4Neutron.hh" diff --git a/source/processes/hadronic/models/generator/string_common/include/G4SingleDiffractiveExcitation.hh b/source/processes/hadronic/models/parton_string/management/include/G4SingleDiffractiveExcitation.hh similarity index 97% rename from source/processes/hadronic/models/generator/string_common/include/G4SingleDiffractiveExcitation.hh rename to source/processes/hadronic/models/parton_string/management/include/G4SingleDiffractiveExcitation.hh index 482b54f96e..7a195e501f 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4SingleDiffractiveExcitation.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4SingleDiffractiveExcitation.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4SingleDiffractiveExcitation.hh,v 1.5 2002/12/12 19:17:54 gunter Exp $ +// $Id: G4SingleDiffractiveExcitation.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ #ifndef G4SingleDiffractiveExcitation_h #define G4SingleDiffractiveExcitation_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4StringModel.hh b/source/processes/hadronic/models/parton_string/management/include/G4StringModel.hh similarity index 96% rename from source/processes/hadronic/models/generator/string_common/include/G4StringModel.hh rename to source/processes/hadronic/models/parton_string/management/include/G4StringModel.hh index 8b7c60955e..68ebce7f59 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4StringModel.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4StringModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StringModel.hh,v 1.6 2002/12/12 19:17:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StringModel.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4StringModel_h #define G4StringModel_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VParticipants.hh b/source/processes/hadronic/models/parton_string/management/include/G4VParticipants.hh similarity index 96% rename from source/processes/hadronic/models/generator/string_common/include/G4VParticipants.hh rename to source/processes/hadronic/models/parton_string/management/include/G4VParticipants.hh index 64b5f61fc1..96a628104b 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VParticipants.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VParticipants.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParticipants.hh,v 1.5 2002/12/12 19:17:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VParticipants.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VParticipants_h diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VPartonStringModel.hh b/source/processes/hadronic/models/parton_string/management/include/G4VPartonStringModel.hh similarity index 97% rename from source/processes/hadronic/models/generator/string_common/include/G4VPartonStringModel.hh rename to source/processes/hadronic/models/parton_string/management/include/G4VPartonStringModel.hh index 1ea6f77567..652273c45c 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VPartonStringModel.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VPartonStringModel.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPartonStringModel.hh,v 1.6 2002/12/12 19:17:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPartonStringModel.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VPartonStringModel_h #define G4VPartonStringModel_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VSplitableHadron.hh b/source/processes/hadronic/models/parton_string/management/include/G4VSplitableHadron.hh similarity index 97% rename from source/processes/hadronic/models/generator/string_common/include/G4VSplitableHadron.hh rename to source/processes/hadronic/models/parton_string/management/include/G4VSplitableHadron.hh index 158501c4ec..21d3e12ea1 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VSplitableHadron.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VSplitableHadron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSplitableHadron.hh,v 1.10 2003/06/16 17:09:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSplitableHadron.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VSplitableHadron_h diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VStringFragmentation.hh b/source/processes/hadronic/models/parton_string/management/include/G4VStringFragmentation.hh similarity index 95% rename from source/processes/hadronic/models/generator/string_common/include/G4VStringFragmentation.hh rename to source/processes/hadronic/models/parton_string/management/include/G4VStringFragmentation.hh index 35fe32715c..586744ad33 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VStringFragmentation.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VStringFragmentation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VStringFragmentation.hh,v 1.7 2002/12/12 19:17:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VStringFragmentation.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VStringFragmentation_h #define G4VStringFragmentation_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/include/G4VertexCode.hh b/source/processes/hadronic/models/parton_string/management/include/G4VertexCode.hh similarity index 94% rename from source/processes/hadronic/models/generator/string_common/include/G4VertexCode.hh rename to source/processes/hadronic/models/parton_string/management/include/G4VertexCode.hh index 6bbbf872bf..d1b1f3dd30 100644 --- a/source/processes/hadronic/models/generator/string_common/include/G4VertexCode.hh +++ b/source/processes/hadronic/models/parton_string/management/include/G4VertexCode.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VertexCode.hh,v 1.5 2002/12/12 19:17:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VertexCode.hh,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VertexCode_h #define G4VertexCode_h 1 diff --git a/source/processes/hadronic/models/generator/string_common/src/G4DiffractiveExcitation.cc b/source/processes/hadronic/models/parton_string/management/src/G4DiffractiveExcitation.cc similarity index 94% rename from source/processes/hadronic/models/generator/string_common/src/G4DiffractiveExcitation.cc rename to source/processes/hadronic/models/parton_string/management/src/G4DiffractiveExcitation.cc index 3ec8703153..6611d2513d 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4DiffractiveExcitation.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4DiffractiveExcitation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4DiffractiveExcitation.cc,v 1.14 2003/06/16 17:09:25 gunter Exp $ +// $Id: G4DiffractiveExcitation.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ // ------------------------------------------------------------ // GEANT 4 class implemetation file // @@ -268,7 +268,7 @@ G4double G4DiffractiveExcitation::ChooseX(G4double Xmin, G4double Xmax) const if ( Xmin <= 0. || range <=0. ) { G4cout << " Xmin, range : " << Xmin << " , " << range << G4endl; - G4Exception("G4DiffractiveExcitation::ChooseX : Invalid arguments "); + throw G4HadronicException(__FILE__, __LINE__, "G4DiffractiveExcitation::ChooseX : Invalid arguments "); } G4double x; @@ -301,7 +301,7 @@ G4DiffractiveExcitation::G4DiffractiveExcitation(const G4DiffractiveExcitation & widthOfPtSquare(0) , minExtraMass(0), minmass(0) { - G4Exception("G4DiffractiveExcitation copy contructor not meant to be called"); + throw G4HadronicException(__FILE__, __LINE__, "G4DiffractiveExcitation copy contructor not meant to be called"); } @@ -312,20 +312,20 @@ G4DiffractiveExcitation::~G4DiffractiveExcitation() const G4DiffractiveExcitation & G4DiffractiveExcitation::operator=(const G4DiffractiveExcitation &) { - G4Exception("G4DiffractiveExcitation = operator meant to be called"); + throw G4HadronicException(__FILE__, __LINE__, "G4DiffractiveExcitation = operator meant to be called"); return *this; } int G4DiffractiveExcitation::operator==(const G4DiffractiveExcitation &) const { - G4Exception("G4DiffractiveExcitation == operator meant to be called"); + throw G4HadronicException(__FILE__, __LINE__, "G4DiffractiveExcitation == operator meant to be called"); return false; } int G4DiffractiveExcitation::operator!=(const G4DiffractiveExcitation &) const { - G4Exception("G4DiffractiveExcitation != operator meant to be called"); + throw G4HadronicException(__FILE__, __LINE__, "G4DiffractiveExcitation != operator meant to be called"); return true; } diff --git a/source/processes/hadronic/models/generator/string_common/src/G4EventGenerator.cc b/source/processes/hadronic/models/parton_string/management/src/G4EventGenerator.cc similarity index 90% rename from source/processes/hadronic/models/generator/string_common/src/G4EventGenerator.cc rename to source/processes/hadronic/models/parton_string/management/src/G4EventGenerator.cc index 6c918506a0..e5d98a150b 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4EventGenerator.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4EventGenerator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4EventGenerator.cc,v 1.6 2003/05/30 14:43:20 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4EventGenerator.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4EventGenerator #include "G4EventGenerator.hh" @@ -45,7 +45,7 @@ G4EventGenerator::~G4EventGenerator() const G4EventGenerator & G4EventGenerator::operator=(const G4EventGenerator &) { - G4Exception("G4EventGenerator::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4EventGenerator::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/string_common/src/G4InteractionContent.cc b/source/processes/hadronic/models/parton_string/management/src/G4InteractionContent.cc similarity index 92% rename from source/processes/hadronic/models/generator/string_common/src/G4InteractionContent.cc rename to source/processes/hadronic/models/parton_string/management/src/G4InteractionContent.cc index 11711530c7..3527acc01d 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4InteractionContent.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4InteractionContent.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4InteractionContent.cc,v 1.7 2003/06/03 09:36:40 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4InteractionContent.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file @@ -61,7 +61,7 @@ int G4InteractionContent::operator!=(const G4InteractionContent &right) const const G4InteractionContent & G4InteractionContent::operator=(const G4InteractionContent &) { - G4Exception("G4InteractionContent::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4InteractionContent::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/string_common/src/G4PomeronCrossSection.cc b/source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc similarity index 98% rename from source/processes/hadronic/models/generator/string_common/src/G4PomeronCrossSection.cc rename to source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc index 7d5543a0e2..29b2939176 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4PomeronCrossSection.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4PomeronCrossSection.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PomeronCrossSection.cc,v 1.10 2003/06/03 09:36:40 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PomeronCrossSection.cc,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4PomeronCrossSection.hh" diff --git a/source/processes/hadronic/models/generator/string_common/src/G4SingleDiffractiveExcitation.cc b/source/processes/hadronic/models/parton_string/management/src/G4SingleDiffractiveExcitation.cc similarity index 93% rename from source/processes/hadronic/models/generator/string_common/src/G4SingleDiffractiveExcitation.cc rename to source/processes/hadronic/models/parton_string/management/src/G4SingleDiffractiveExcitation.cc index c25da87ee2..2d6a92b09b 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4SingleDiffractiveExcitation.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4SingleDiffractiveExcitation.cc @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4SingleDiffractiveExcitation.cc,v 1.11 2003/05/30 14:43:20 hpw Exp $ +// $Id: G4SingleDiffractiveExcitation.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ // ------------------------------------------------------------ // GEANT 4 class implemetation file // @@ -208,7 +208,7 @@ G4double G4SingleDiffractiveExcitation::ChooseX(G4double Xmin, G4double Xmax) co if ( Xmin <= 0. || range <=0. ) { G4cout << " Xmin, range : " << Xmin << " , " << range << G4endl; - G4Exception("G4SingleDiffractiveExcitation::ChooseX : Invalid arguments "); + throw G4HadronicException(__FILE__, __LINE__, "G4SingleDiffractiveExcitation::ChooseX : Invalid arguments "); } G4double x; @@ -241,7 +241,7 @@ G4SingleDiffractiveExcitation::G4SingleDiffractiveExcitation(const G4SingleDiffr widthOfPtSquare(0) , minExtraMass(0), minmass(0) { - G4Exception("G4SingleDiffractiveExcitation copy contructor not meant to be called"); + throw G4HadronicException(__FILE__, __LINE__, "G4SingleDiffractiveExcitation copy contructor not meant to be called"); } @@ -252,20 +252,20 @@ G4SingleDiffractiveExcitation::~G4SingleDiffractiveExcitation() const G4SingleDiffractiveExcitation & G4SingleDiffractiveExcitation::operator=(const G4SingleDiffractiveExcitation &) { - G4Exception("G4SingleDiffractiveExcitation = operator meant to be called"); + throw G4HadronicException(__FILE__, __LINE__, "G4SingleDiffractiveExcitation = operator meant to be called"); return *this; } int G4SingleDiffractiveExcitation::operator==(const G4SingleDiffractiveExcitation &) const { - G4Exception("G4SingleDiffractiveExcitation == operator meant to be called"); + throw G4HadronicException(__FILE__, __LINE__, "G4SingleDiffractiveExcitation == operator meant to be called"); return false; } int G4SingleDiffractiveExcitation::operator!=(const G4SingleDiffractiveExcitation &) const { - G4Exception("G4SingleDiffractiveExcitation != operator meant to be called"); + throw G4HadronicException(__FILE__, __LINE__, "G4SingleDiffractiveExcitation != operator meant to be called"); return true; } diff --git a/source/processes/hadronic/models/generator/string_common/src/G4StringModel.cc b/source/processes/hadronic/models/parton_string/management/src/G4StringModel.cc similarity index 90% rename from source/processes/hadronic/models/generator/string_common/src/G4StringModel.cc rename to source/processes/hadronic/models/parton_string/management/src/G4StringModel.cc index a0cb6b65cb..7045bd9929 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4StringModel.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4StringModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StringModel.cc,v 1.6 2003/05/30 14:43:20 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StringModel.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4StringModel #include "G4StringModel.hh" @@ -46,7 +46,7 @@ G4StringModel::~G4StringModel() const G4StringModel & G4StringModel::operator=(const G4StringModel &) { - G4Exception("G4StringModel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4StringModel::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/string_common/src/G4VParticipants.cc b/source/processes/hadronic/models/parton_string/management/src/G4VParticipants.cc similarity index 95% rename from source/processes/hadronic/models/generator/string_common/src/G4VParticipants.cc rename to source/processes/hadronic/models/parton_string/management/src/G4VParticipants.cc index c0c4c0ebeb..659fb37ec6 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4VParticipants.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VParticipants.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParticipants.cc,v 1.5 2002/12/12 19:17:55 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VParticipants.cc,v 1.1 2003/10/07 11:26:00 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file diff --git a/source/processes/hadronic/models/generator/string_common/src/G4VPartonStringModel.cc b/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc similarity index 85% rename from source/processes/hadronic/models/generator/string_common/src/G4VPartonStringModel.cc rename to source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc index ed7baa2dd2..1bba4beeba 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4VPartonStringModel.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VPartonStringModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPartonStringModel.cc,v 1.14 2003/06/16 17:09:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPartonStringModel.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //// ------------------------------------------------------------ // GEANT 4 class implementation file @@ -57,7 +57,7 @@ G4VPartonStringModel::~G4VPartonStringModel() const G4VPartonStringModel & G4VPartonStringModel::operator=(const G4VPartonStringModel &) { - G4Exception("G4VPartonStringModel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VPartonStringModel::operator= meant to not be accessable"); return *this; } @@ -91,7 +91,7 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus { if (attempts++ > maxAttempts ) { - G4Exception("G4VPartonStringModel::Scatter(): fails to generate strings"); + throw G4HadronicException(__FILE__, __LINE__, "G4VPartonStringModel::Scatter(): fails to generate strings"); } theThis->Init(theNucleus,thePrimary); @@ -99,11 +99,15 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus } G4KineticTrackVector * theResult = 0; + G4double stringEnergy(0); for ( unsigned int astring=0; astring < strings->size(); astring++) { // rotate string to lab frame, models have it aligned to z - (*strings)[astring]->LorentzRotate(toLab); + stringEnergy += (*strings)[astring]->GetLeftParton()->Get4Momentum().t(); + stringEnergy += (*strings)[astring]->GetRightParton()->Get4Momentum().t(); + (*strings)[astring]->LorentzRotate(toLab); } + // G4cout << "Total string energy = "<FragmentStrings(strings); std::for_each(strings->begin(), strings->end(), DeleteString() ); diff --git a/source/processes/hadronic/models/generator/string_common/src/G4VSplitableHadron.cc b/source/processes/hadronic/models/parton_string/management/src/G4VSplitableHadron.cc similarity index 94% rename from source/processes/hadronic/models/generator/string_common/src/G4VSplitableHadron.cc rename to source/processes/hadronic/models/parton_string/management/src/G4VSplitableHadron.cc index 7864d81451..53b77d5013 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4VSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VSplitableHadron.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VSplitableHadron.cc,v 1.8 2003/05/30 14:43:21 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSplitableHadron.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ @@ -85,7 +85,7 @@ G4VSplitableHadron::~G4VSplitableHadron() const G4VSplitableHadron & G4VSplitableHadron::operator=(const G4VSplitableHadron &) { - G4Exception("G4VSplitableHadron::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VSplitableHadron::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/string_common/src/G4VStringFragmentation.cc b/source/processes/hadronic/models/parton_string/management/src/G4VStringFragmentation.cc similarity index 90% rename from source/processes/hadronic/models/generator/string_common/src/G4VStringFragmentation.cc rename to source/processes/hadronic/models/parton_string/management/src/G4VStringFragmentation.cc index f56fe91354..0c2d325f35 100644 --- a/source/processes/hadronic/models/generator/string_common/src/G4VStringFragmentation.cc +++ b/source/processes/hadronic/models/parton_string/management/src/G4VStringFragmentation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VStringFragmentation.cc,v 1.6 2003/05/30 14:43:21 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VStringFragmentation.cc,v 1.2 2003/11/03 17:54:53 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4VStringFragmentation #include "G4VStringFragmentation.hh" @@ -41,7 +41,7 @@ G4VStringFragmentation::~G4VStringFragmentation() const G4VStringFragmentation & G4VStringFragmentation::operator=(const G4VStringFragmentation &) { - G4Exception("G4VStringFragmentation::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4VStringFragmentation::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/GNUmakefile b/source/processes/hadronic/models/parton_string/qgsm/GNUmakefile similarity index 80% rename from source/processes/hadronic/models/generator/quark_gluon_string/GNUmakefile rename to source/processes/hadronic/models/parton_string/qgsm/GNUmakefile index b7a93a9b0b..db65f5ee31 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/GNUmakefile +++ b/source/processes/hadronic/models/parton_string/qgsm/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2003/06/18 13:30:40 gcosmo Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 16:42:21 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -23,10 +23,9 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/management/include \ - -I$(G4BASE)/processes/hadronic/models/generator/string_common/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/models/generator/quark_gluon_string/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/parton_string/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4ASCCrossSection.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4ASCCrossSection.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4ASCCrossSection.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4ASCCrossSection.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4AnnihilationCrossSection.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4AnnihilationCrossSection.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4AnnihilationCrossSection.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4AnnihilationCrossSection.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4BaryonSplitter.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4BaryonSplitter.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4BaryonSplitter.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4BaryonSplitter.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4DiffractiveStringBuilder.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4DiffractiveStringBuilder.hh similarity index 85% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4DiffractiveStringBuilder.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4DiffractiveStringBuilder.hh index f0fd0cbab0..9096b13f28 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4DiffractiveStringBuilder.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4DiffractiveStringBuilder.hh @@ -35,20 +35,20 @@ public: G4DiffractiveStringBuilder(const G4DiffractiveStringBuilder &right); ~G4DiffractiveStringBuilder(); - int operator==(const G4DiffractiveStringBuilder &right) const; - int operator!=(const G4DiffractiveStringBuilder &right) const; + G4int operator==(const G4DiffractiveStringBuilder &right) const; + G4int operator!=(const G4DiffractiveStringBuilder &right) const; G4ExcitedString* BuildString(G4PartonPair* aParton); private: }; -inline int G4DiffractiveStringBuilder::operator==(const G4DiffractiveStringBuilder &right) const +inline G4int G4DiffractiveStringBuilder::operator==(const G4DiffractiveStringBuilder &) const { return 1; } -inline int G4DiffractiveStringBuilder::operator!=(const G4DiffractiveStringBuilder &right) const +inline G4int G4DiffractiveStringBuilder::operator!=(const G4DiffractiveStringBuilder &) const { return 0; } diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaAnnCrossSection.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4GammaAnnCrossSection.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaAnnCrossSection.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4GammaAnnCrossSection.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaParticipants.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4GammaParticipants.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4GammaParticipants.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4GammaParticipants.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4HeavyIonParticipants.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4HeavyIonParticipants.hh similarity index 94% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4HeavyIonParticipants.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4HeavyIonParticipants.hh index 8f665ec5b8..aeb09a565e 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4HeavyIonParticipants.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4HeavyIonParticipants.hh @@ -33,6 +33,9 @@ #include "G4PartonPair.hh" #include "G4QGSMSplitableHadron.hh" +G4int G4IonParticipants_NPart = 0; +G4int G4IonParticipants_NPro = 0; + class G4HeavyIonParticipants : public G4VParticipants { enum { SOFT, HARD, DIFFRACTIVE }; @@ -48,7 +51,7 @@ class G4HeavyIonParticipants : public G4VParticipants G4PartonPair* GetNextPartonPair(); void BuildInteractions(const G4ReactionProduct &thePrimary); void StartPartonPairLoop(); - virtual void DoLorentzBoost(G4ThreeVector & aBoost) + virtual void DoLorentzBoost(Hep3Vector aBoost) { if(theNucleus) theNucleus->DoLorentzBoost(aBoost); theBoost = aBoost; @@ -82,7 +85,8 @@ class G4HeavyIonParticipants : public G4VParticipants const G4double ThersholdParameter; const G4double QGSMThershold; const G4double theNucleonRadius; - + G4PomeronCrossSection theProtonProbability; + G4PomeronCrossSection theNeutronProbability; }; diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4InelasticSplitableHadron.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4InelasticSplitableHadron.hh similarity index 95% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4InelasticSplitableHadron.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4InelasticSplitableHadron.hh index 55a26455fc..66b439ee5f 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4InelasticSplitableHadron.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4InelasticSplitableHadron.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4InelasticSplitableHadron.hh,v 1.6 2002/12/12 19:17:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4InelasticSplitableHadron.hh,v 1.1 2003/10/07 11:26:25 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4InelasticSplitableHadron_h diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4MesonSplitter.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4MesonSplitter.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4MesonSplitter.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4MesonSplitter.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonPair.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4PartonPair.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonPair.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4PartonPair.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonStringAnnihilator.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4PartonStringAnnihilator.hh similarity index 97% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonStringAnnihilator.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4PartonStringAnnihilator.hh index 923822f693..1d93847e5b 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4PartonStringAnnihilator.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4PartonStringAnnihilator.hh @@ -21,7 +21,7 @@ // ******************************************************************** // // -// $Id: G4PartonStringAnnihilator.hh,v 1.6 2002/12/12 19:17:34 gunter Exp $ +// $Id: G4PartonStringAnnihilator.hh,v 1.1 2003/10/07 11:26:26 hpw Exp $ // ----------------------------------------------------------------------------- // GEANT 4 class implementation file // diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMParameters.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMParameters.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMParameters.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMParameters.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMSplitableHadron.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh similarity index 99% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMSplitableHadron.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh index 2563983bb9..88119c3645 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSMSplitableHadron.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSMSplitableHadron.hh @@ -85,20 +85,20 @@ class G4QGSMSplitableHadron : public G4VSplitableHadron }; inline G4Parton* G4QGSMSplitableHadron::GetNextParton() - { +{ if(Color.size()==0) return 0; G4Parton * result = Color.back(); Color.pop_back(); return result; - } +} inline G4Parton* G4QGSMSplitableHadron::GetNextAntiParton() - { +{ if(AntiColor.size() == 0) return 0; G4Parton * result = AntiColor.front(); AntiColor.pop_front(); return result; - } +} #endif diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSModel.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4QGSModel.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.icc b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSModel.icc similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSModel.icc rename to source/processes/hadronic/models/parton_string/qgsm/include/G4QGSModel.icc diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSParticipants.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4QGSParticipants.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4QGSParticipants.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4QGSParticipants.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryon.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4SPBaryon.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryon.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4SPBaryon.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryonTable.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4SPBaryonTable.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPBaryonTable.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4SPBaryonTable.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPPartonInfo.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4SPPartonInfo.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4SPPartonInfo.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4SPPartonInfo.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SoftStringBuilder.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4SoftStringBuilder.hh similarity index 87% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4SoftStringBuilder.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4SoftStringBuilder.hh index 4124affc2d..f5a8a9cccf 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4SoftStringBuilder.hh +++ b/source/processes/hadronic/models/parton_string/qgsm/include/G4SoftStringBuilder.hh @@ -36,20 +36,20 @@ public: G4SoftStringBuilder(const G4SoftStringBuilder &right); ~G4SoftStringBuilder(); - int operator==(const G4SoftStringBuilder &right) const; - int operator!=(const G4SoftStringBuilder &right) const; + G4int operator==(const G4SoftStringBuilder &right) const; + G4int operator!=(const G4SoftStringBuilder &right) const; G4ExcitedString* BuildString(G4PartonPair * aPair); private: }; -inline int G4SoftStringBuilder::operator==(const G4SoftStringBuilder &right) const +inline G4int G4SoftStringBuilder::operator==(const G4SoftStringBuilder &) const { return 1; } -inline int G4SoftStringBuilder::operator!=(const G4SoftStringBuilder &right) const +inline G4int G4SoftStringBuilder::operator!=(const G4SoftStringBuilder &) const { return 0; } diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/include/G4VAnnihilationCrossSection.hh b/source/processes/hadronic/models/parton_string/qgsm/include/G4VAnnihilationCrossSection.hh similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/include/G4VAnnihilationCrossSection.hh rename to source/processes/hadronic/models/parton_string/qgsm/include/G4VAnnihilationCrossSection.hh diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4ASCCrossSection.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4ASCCrossSection.cc similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4ASCCrossSection.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4ASCCrossSection.cc diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4AnnihilationCrossSection.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4AnnihilationCrossSection.cc similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4AnnihilationCrossSection.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4AnnihilationCrossSection.cc diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4BaryonSplitter.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4BaryonSplitter.cc similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4BaryonSplitter.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4BaryonSplitter.cc diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4DiffractiveStringBuilder.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4DiffractiveStringBuilder.cc similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4DiffractiveStringBuilder.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4DiffractiveStringBuilder.cc diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaAnnCrossSection.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4GammaAnnCrossSection.cc similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaAnnCrossSection.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4GammaAnnCrossSection.cc diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4GammaParticipants.cc similarity index 96% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4GammaParticipants.cc index e8e741bfcf..2fb25d0296 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4GammaParticipants.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4GammaParticipants.cc @@ -43,7 +43,7 @@ G4VSplitableHadron* G4GammaParticipants::SelectInteractions(const G4ReactionProd ModelMode = SOFT; if (sqr(ThresholdMass + ThersholdParameter) > s) { - G4Exception("Initial energy is too low. The 4-vectors of the input are inconsistant with the particle masses."); + throw G4HadronicException(__FILE__, __LINE__, "Initial energy is too low. The 4-vectors of the input are inconsistant with the particle masses."); } if (sqr(ThresholdMass + QGSMThershold) > s) // thus only diffractive in cascade! { diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4HeavyIonParticipants.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4HeavyIonParticipants.cc similarity index 81% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4HeavyIonParticipants.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4HeavyIonParticipants.cc index 6a09a48b8e..5c951d85f1 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4HeavyIonParticipants.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4HeavyIonParticipants.cc @@ -33,13 +33,18 @@ G4HeavyIonParticipants::G4HeavyIonParticipants() : theDiffExcitaton(0.7*GeV, 250*MeV, 250*MeV), nCutMax(7),ThersholdParameter(0.45*GeV), - QGSMThershold(3*GeV),theNucleonRadius(1.5*fermi) + QGSMThershold(3*GeV),theNucleonRadius(1.5*fermi), + theProtonProbability(G4Proton::Proton()), + theNeutronProbability(G4Neutron::Neutron()) { } G4HeavyIonParticipants::G4HeavyIonParticipants(const G4HeavyIonParticipants &right) + : G4VParticipants(), nCutMax(right.nCutMax),ThersholdParameter(right.ThersholdParameter), - QGSMThershold(right.QGSMThershold),theNucleonRadius(right.theNucleonRadius) + QGSMThershold(right.QGSMThershold),theNucleonRadius(right.theNucleonRadius), + theProtonProbability(G4Proton::Proton()), + theNeutronProbability(G4Neutron::Neutron()) { } @@ -50,8 +55,6 @@ G4HeavyIonParticipants::~G4HeavyIonParticipants() void G4HeavyIonParticipants::BuildInteractions(const G4ReactionProduct &thePrimary) { - G4PomeronCrossSection theProtonProbability(G4Proton::Proton()); // @@@ should be data member - G4PomeronCrossSection theNeutronProbability(G4Neutron::Neutron()); // @@@ should be data member G4double outerRadiusA = theNucleus->GetOuterRadius(); theIncoming.Init(thePrimary.GetDefinition()->GetBaryonNumber(), thePrimary.GetDefinition()->GetPDGCharge() ); @@ -78,14 +81,29 @@ void G4HeavyIonParticipants::BuildInteractions(const G4ReactionProduct &thePrim G4Nucleon * iNucleon; G4Nucleon * pNucleon; deb1 = 0; + G4IonParticipants_NPart = 0; + G4IonParticipants_NPro = 0; + G4double debug_pro_energy(0), debug_tar_energy(0); + G4cout <<"projectile nucleus "<GetMassNumber()<< " "<GetCharge()<Get4Momentum().t(); + } deb1 ++; deb2 = 0; theNucleus->StartLoop(); G4int nucleonCount = 0; // debug + G4int hitOneOrMore = 0; + debug_tar_energy = 0; while( (pNucleon = theNucleus->GetNextNucleon()) ) { + if(getenv("debug_G4HeavyIonParticipants")) + { + debug_tar_energy+=pNucleon->Get4Momentum().t(); + } deb2 ++; if(totalCuts>nCutMax) break; nucleonCount++; // debug @@ -100,20 +118,13 @@ void G4HeavyIonParticipants::BuildInteractions(const G4ReactionProduct &thePrim Probability = theNeutronProbability.GetInelasticProbability(s, Distance2); // test for inelastic collision G4double rndNumber = G4UniformRand(); -// ModelMode = DIFFRACTIVE; -// if(deb1<2) -// { -// Probability = 5; // HPW for debugging -// } -// else -// { -// Probability = -5; -// } if (Probability > rndNumber) { //--DEBUG-- cout << "DEBUG p="<< Probability<<" r="<GetProjectile(); + G4InteractionContent* anInteraction = theInteractions[i]; + G4VSplitableHadron* aProjectile = anInteraction->GetProjectile(); G4Parton* aParton = aProjectile->GetNextParton(); G4PartonPair * aPartonPair; // projectile first HPW @@ -224,7 +251,7 @@ void G4HeavyIonParticipants::PerformDiffractiveCollisions() thePartonPairs.push_back(aPartonPair); } // then target HPW - G4VSplitableHadron* aTarget = anIniteraction->GetTarget(); + G4VSplitableHadron* aTarget = anInteraction->GetTarget(); aParton = aTarget->GetNextParton(); if (aParton) { @@ -241,13 +268,13 @@ void G4HeavyIonParticipants::PerformSoftCollisions() std::vector::iterator i; for(i = theInteractions.begin(); i != theInteractions.end(); i++) { - G4InteractionContent* anIniteraction = *i; + G4InteractionContent* anInteraction = *i; G4PartonPair * aPair = NULL; - if (anIniteraction->GetNumberOfSoftCollisions()) + if (anInteraction->GetNumberOfSoftCollisions()) { - G4VSplitableHadron* pProjectile = anIniteraction->GetProjectile(); - G4VSplitableHadron* pTarget = anIniteraction->GetTarget(); - for (G4int j = 0; j < anIniteraction->GetNumberOfSoftCollisions(); j++) + G4VSplitableHadron* pProjectile = anInteraction->GetProjectile(); + G4VSplitableHadron* pTarget = anInteraction->GetTarget(); + for (G4int j = 0; j < anInteraction->GetNumberOfSoftCollisions(); j++) { aPair = new G4PartonPair(pTarget->GetNextParton(), pProjectile->GetNextAntiParton(), G4PartonPair::SOFT, G4PartonPair::TARGET); diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4InelasticSplitableHadron.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4InelasticSplitableHadron.cc similarity index 97% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4InelasticSplitableHadron.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4InelasticSplitableHadron.cc index 375fb3279c..e26ed42a9f 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4InelasticSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4InelasticSplitableHadron.cc @@ -52,7 +52,7 @@ G4InelasticSplitableHadron::~G4InelasticSplitableHadron() const G4InelasticSplitableHadron & G4InelasticSplitableHadron::operator=(const G4InelasticSplitableHadron &) { - G4Exception("G4InelasticSplitableHadron::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4InelasticSplitableHadron::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4MesonSplitter.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4MesonSplitter.cc similarity index 81% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4MesonSplitter.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4MesonSplitter.cc index 2a573a3e0d..71b9171812 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4MesonSplitter.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4MesonSplitter.cc @@ -25,26 +25,27 @@ G4bool G4MesonSplitter::SplitMeson(G4int PDGcode, G4int* aEnd, G4int* bEnd) { + G4bool result = true; G4int absPDGcode = abs(PDGcode); + if (absPDGcode >= 1000) return false; if(absPDGcode == 22) { G4int it=1; if(G4UniformRand()<.5) it++; *aEnd = it; *bEnd = -it; - return TRUE; } - if (absPDGcode >= 1000) return FALSE; - - G4int heavy = absPDGcode/100; - G4int light = (absPDGcode%100)/10; - G4int anti = 1 - 2*(std::max(heavy, light)%2); - if (PDGcode < 0 ) anti = -anti; - heavy *= anti; - light *= -anti; - if ( anti < 0) - G4SwapObj(&heavy, &light); - *aEnd = heavy; - *bEnd = light; - return TRUE; + else + { + G4int heavy = absPDGcode/100; + G4int light = (absPDGcode%100)/10; + G4int anti = 1 - 2*(std::max(heavy, light)%2); + if (PDGcode < 0 ) anti = -anti; + heavy *= anti; + light *= -anti; + if ( anti < 0) G4SwapObj(&heavy, &light); + *aEnd = heavy; + *bEnd = light; + } + return result; } diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonPair.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4PartonPair.cc similarity index 93% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonPair.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4PartonPair.cc index 90e52f2211..c6793140fd 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonPair.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4PartonPair.cc @@ -21,6 +21,7 @@ // ******************************************************************** // #include "G4PartonPair.hh" +#include "G4HadronicException.hh" G4PartonPair::G4PartonPair(G4Parton* P1, G4Parton* P2, G4int Type, G4int aDirection) { @@ -32,7 +33,7 @@ G4PartonPair::G4PartonPair(G4Parton* P1, G4Parton* P2, G4int Type, G4int aDirect G4PartonPair::G4PartonPair(const G4PartonPair &) { - G4Exception("You can not make a copy of this object"); + throw G4HadronicException(__FILE__, __LINE__, "You can not make a copy of this object"); } G4PartonPair::~G4PartonPair() diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonStringAnnihilator.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4PartonStringAnnihilator.cc similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4PartonStringAnnihilator.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4PartonStringAnnihilator.cc diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMParameters.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMParameters.cc similarity index 100% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMParameters.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMParameters.cc diff --git a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMSplitableHadron.cc b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc similarity index 96% rename from source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMSplitableHadron.cc rename to source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc index 9fd0ff9a86..59f05b319e 100644 --- a/source/processes/hadronic/models/generator/quark_gluon_string/src/G4QGSMSplitableHadron.cc +++ b/source/processes/hadronic/models/parton_string/qgsm/src/G4QGSMSplitableHadron.cc @@ -99,7 +99,7 @@ G4QGSMSplitableHadron::~G4QGSMSplitableHadron(){} const G4QGSMSplitableHadron & G4QGSMSplitableHadron::operator=(const G4QGSMSplitableHadron &) { - G4Exception("G4QGSMSplitableHadron::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4QGSMSplitableHadron::operator= meant to not be accessable"); return *this; } @@ -296,7 +296,12 @@ void G4QGSMSplitableHadron::SoftSplitUp() } while (1. - SumX <= Xmin); (*(AntiColor.end()-1))->SetX(1. - SumX); // the di-quark takes the rest, then go to momentum + /// and here is the bug ;-) @@@@@@@@@@@@@ + if(getenv("debug_QGSMSplitableHadron") )G4cout << "particle energy at split = "< s) { - G4Exception("Initial energy is too low. The 4-vectors of the input are inconsistant with the particle masses."); + throw G4HadronicException(__FILE__, __LINE__, "Initial energy is too low. The 4-vectors of the input are inconsistant with the particle masses."); } if (sqr(ThresholdMass + QGSMThershold) > s) // thus only diffractive in cascade! { @@ -114,6 +115,7 @@ G4VSplitableHadron* G4QGSParticipants::SelectInteractions(const G4ReactionProduc // loop over nuclei to find collissions HPW theNucleus->StartLoop(); G4int nucleonCount = 0; // debug + G4QGSParticipants_NPart = 0; while( (pNucleon = theNucleus->GetNextNucleon()) ) { if(totalCuts>1.5*thePrimary.GetKineticEnergy()/GeV) @@ -133,7 +135,8 @@ G4VSplitableHadron* G4QGSParticipants::SelectInteractions(const G4ReactionProduc { //--DEBUG-- cout << "DEBUG p="<< Probability<<" r="<GetSecondary(iS)->GetMomentum(); - aParticleChange.AddSecondary(pionChange->GetSecondary(iS)); + = secondaryMomentum + pionChange->GetSecondary(iS)->GetParticle()->GetMomentum(); + aParticleChange.AddSecondary(pionChange->GetSecondary(iS)->GetParticle()); } pionChange->Clear(); diff --git a/source/processes/photolepton_hadron/src/G4MuonNucleusProcess.cc b/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4MuonNucleusProcess.cc similarity index 100% rename from source/processes/photolepton_hadron/src/G4MuonNucleusProcess.cc rename to source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4MuonNucleusProcess.cc 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 new file mode 100644 index 0000000000..d48e2c4274 --- /dev/null +++ b/source/processes/hadronic/models/photolepton_hadron/muon_nuclear/src/G4ParametrizedHadronicVertex.cc @@ -0,0 +1,95 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4ParametrizedHadronicVertex.cc,v 1.1 2003/11/11 19:08:58 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// -------------------------------------------------------------- +#include "G4ParametrizedHadronicVertex.hh" +#include "G4HadFinalState.hh" +#include "G4ParticleChange.hh" + +G4VParticleChange * G4ParametrizedHadronicVertex:: +ApplyYourself(G4Nucleus & theTarget, const G4Track &thePhoton) +{ + static G4ParticleChange theTotalResult; + + theTotalResult.Clear(); + theTotalResult.SetLocalEnergyDeposit(0.); + theTotalResult.Initialize(thePhoton); + theTotalResult.SetStatusChange(fAlive); + G4double theKineticEnergy = thePhoton.GetKineticEnergy(); + G4HadFinalState * aR = 0; + G4HadProjectile thePro(thePhoton); + if(RandBit::shootBit()) + { + if(theKineticEnergy<20*GeV) aR = theLowEPionMinus.ApplyYourself(thePro, theTarget); + else aR = theHighEPionMinus.ApplyYourself(thePro, theTarget); + } + else + { + if(theKineticEnergy<20*GeV) aR = theLowEPionPlus.ApplyYourself(thePro, theTarget); + else aR = theHighEPionPlus.ApplyYourself(thePro, theTarget); + } + aR->SetTrafoToLab(thePro.GetTrafoToLab()); + if(aR->GetStatusChange()==stopAndKill) + { + theTotalResult.SetStatusChange(fStopAndKill); + theTotalResult.SetEnergyChange( 0.0 ); + } + if(aR->GetStatusChange()==suspend) + { + theTotalResult.SetStatusChange(fSuspend); + } + if(aR->GetStatusChange()!=stopAndKill ) + { + G4double newWeight = aR->GetWeightChange()*thePhoton.GetWeight(); + theTotalResult.SetWeightChange(newWeight); + if(aR->GetEnergyChange()>-.5) theTotalResult.SetEnergyChange(aR->GetEnergyChange()); + G4LorentzVector newDirection(aR->GetMomentumChange().unit(), 1.); + newDirection*=aR->GetTrafoToLab(); + theTotalResult.SetMomentumDirectionChange(newDirection.vect()); + } + + theTotalResult.SetLocalEnergyDeposit(aR->GetLocalEnergyDeposit()); + theTotalResult.SetNumberOfSecondaries(aR->GetNumberOfSecondaries()); + + G4ThreeVector it(0., 0., 1.); + G4double what = 2.*pi*G4UniformRand(); + for(G4int i=0; iGetNumberOfSecondaries(); i++) + { + G4LorentzVector theM = aR->GetSecondary(i)->GetParticle()->Get4Momentum(); + theM.rotate(what, it); + theM*=aR->GetTrafoToLab(); + aR->GetSecondary(i)->GetParticle()->Set4Momentum(theM); + G4double time = aR->GetSecondary(i)->GetTime(); + if(time<0) time = thePhoton.GetGlobalTime(); + G4Track* track = new G4Track(aR->GetSecondary(i)->GetParticle(), + thePhoton.GetGlobalTime(), + thePhoton.GetPosition()); + G4double newWeight = thePhoton.GetWeight()*aR->GetSecondary(i)->GetWeight(); + track->SetWeight(newWeight); + theTotalResult.AddSecondary(track); + } + return &theTotalResult; +} diff --git a/source/processes/hadronic/models/pre_equilibrium/GNUmakefile b/source/processes/hadronic/models/pre_equilibrium/GNUmakefile new file mode 100644 index 0000000000..3bf71e72e4 --- /dev/null +++ b/source/processes/hadronic/models/pre_equilibrium/GNUmakefile @@ -0,0 +1,18 @@ +# -------------------------------------------------------------- +# GNUmakefile for chips library. HPW 20-Nov-99 +# -------------------------------------------------------------- + +name := G4hadronic_preequ + + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + + +SUBDIRS = exciton_model + +SUBLIBS = G4had_preequ_exciton + + +include $(G4INSTALL)/config/globlib.gmk diff --git a/source/processes/hadronic/models/pre_equilibrium/exciton_model/GNUmakefile b/source/processes/hadronic/models/pre_equilibrium/exciton_model/GNUmakefile new file mode 100644 index 0000000000..759f3ed8b7 --- /dev/null +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/GNUmakefile @@ -0,0 +1,49 @@ +# $Id: GNUmakefile,v 1.4 2003/10/08 16:42:21 hpw Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4had_preequ_exciton + +ifndef G4INSTALL + G4INSTALL = ../../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/handler/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/multifragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4GNASHTransitions.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4GNASHTransitions.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4GNASHTransitions.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4GNASHTransitions.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCAlpha.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCAlpha.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCAlpha.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCAlpha.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCChargedFragment.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCChargedFragment.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCChargedFragment.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCChargedFragment.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCDeuteron.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCDeuteron.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCDeuteron.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCDeuteron.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCEmissionFactory.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCEmissionFactory.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCEmissionFactory.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCEmissionFactory.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCFragment.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCFragment.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCFragment.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCFragment.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCFragment.icc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCFragment.icc similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCFragment.icc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCFragment.icc diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCHe3.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCHe3.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCHe3.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCHe3.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCNeutron.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCNeutron.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCNeutron.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCNeutron.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCProton.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCProton.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCProton.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCProton.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCTriton.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCTriton.hh similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4HETCTriton.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4HETCTriton.hh diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4LowEIonFragmentation.hh similarity index 92% rename from source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4LowEIonFragmentation.hh index cd9a636a32..9b4791a418 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/include/G4LowEIonFragmentation.hh +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/include/G4LowEIonFragmentation.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4LowEIonFragmentation.hh,v 1.9 2003/05/30 14:05:57 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4LowEIonFragmentation.hh,v 1.1 2003/08/26 18:54:27 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // by H.P. Wellisch @@ -64,7 +64,7 @@ private: G4bool operator!=(const G4LowEIonFragmentation &right) const; public: - G4VParticleChange * ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus); + G4HadFinalState * ApplyYourself(const G4HadProjectile & thePrimary, G4Nucleus & theNucleus); static G4double GetCrossSection() { // clog << "area/millibarn = "<GetDefinition()->GetBaryonNumber(); - G4double aProjectileZ = thePrimary.GetDynamicParticle()->GetDefinition()->GetPDGCharge(); + G4double aProjectileA = thePrimary.GetDefinition()->GetBaryonNumber(); + G4double aProjectileZ = thePrimary.GetDefinition()->GetPDGCharge(); // Get Maximum radius of both @@ -117,7 +117,7 @@ ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus) } // Energy sharing between projectile and target. Note that this is a quite simplistic kinetically. - G4ThreeVector exciton3Momentum = thePrimary.GetMomentum(); + G4ThreeVector exciton3Momentum = thePrimary.Get4Momentum().vect(); exciton3Momentum *= particlesFromProjectile/aProjectileA; G4double compoundEnergy = thePrimary.GetTotalEnergy()*particlesFromProjectile/aProjectileA; @@ -144,7 +144,7 @@ ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus) G4ReactionProductVector * theExcitationResult = 0; if(particlesFromProjectile != aProjectileA) { - G4ThreeVector residual3Momentum = thePrimary.GetMomentum(); + G4ThreeVector residual3Momentum = thePrimary.Get4Momentum().vect(); residual3Momentum -= exciton3Momentum; G4double residualEnergy = thePrimary.GetTotalEnergy()*(1.-particlesFromProjectile/aProjectileA); G4LorentzVector residual4Momentum(residual3Momentum, residualEnergy); @@ -165,7 +165,6 @@ ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus) G4int nSecondaries = 0; if(theExcitationResult) nSecondaries+=theExcitationResult->size(); if(thePreCompoundResult) nSecondaries+=thePreCompoundResult->size(); - theResult.SetNumberOfSecondaries(nSecondaries); unsigned int k; if(theExcitationResult!=0) diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc similarity index 67% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc index e8e06eaab4..536a7fc630 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmission.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmission.cc @@ -21,9 +21,6 @@ // ******************************************************************** // // -// $Id: G4PreCompoundEmission.cc,v 1.17 2003/06/16 17:07:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// // Hadronic Process: Nuclear Preequilibrium // by V. Lara @@ -36,22 +33,21 @@ const G4PreCompoundEmission & G4PreCompoundEmission::operator=(const G4PreCompoundEmission &) { - G4Exception("G4PreCompoundEmission::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4PreCompoundEmission::operator= meant to not be accessable"); return *this; } -G4bool G4PreCompoundEmission::operator==(const G4PreCompoundEmission &) const + G4bool G4PreCompoundEmission::operator==(const G4PreCompoundEmission &) const { return false; } -G4bool G4PreCompoundEmission::operator!=(const G4PreCompoundEmission &) const + G4bool G4PreCompoundEmission::operator!=(const G4PreCompoundEmission &) const { return true; } - G4PreCompoundEmission::G4PreCompoundEmission() { theFragmentsFactory = new G4PreCompoundEmissionFactory(); @@ -61,6 +57,7 @@ G4PreCompoundEmission::G4PreCompoundEmission() G4PreCompoundEmission::~G4PreCompoundEmission() { if (theFragmentsFactory) delete theFragmentsFactory; + if (theFragmentsVector) delete theFragmentsVector; } void G4PreCompoundEmission::SetDefaultModel() @@ -109,7 +106,7 @@ G4ReactionProduct * G4PreCompoundEmission::PerformEmission(G4Fragment & aFragmen G4cerr << "G4PreCompoundEmission::PerformEmission : I couldn't choose a fragment\n" << "while trying to de-excite\n" << aFragment << '\n'; - G4Exception(""); + throw G4HadronicException(__FILE__, __LINE__, ""); } // Kinetic Energy of emitted fragment G4double KineticEnergyOfEmittedFragment = theFragment->GetKineticEnergy(aFragment); @@ -156,7 +153,7 @@ G4ReactionProduct * G4PreCompoundEmission::PerformEmission(G4Fragment & aFragmen // check that Excitation energy is >= 0 G4double anU = RestMomentum.m()-theFragment->GetRestNuclearMass(); - if (anU < 0.0) G4Exception("G4PreCompoundModel::DeExcite: Excitation energy less than 0!"); + if (anU < 0.0) throw G4HadronicException(__FILE__, __LINE__, "G4PreCompoundModel::DeExcite: Excitation energy less than 0!"); @@ -222,14 +219,23 @@ G4ThreeVector G4PreCompoundEmission::AngularDistribution(G4VPreCompoundFragment G4double Eav = 2.0*p*(p+1.0)/((p+h)*g); // Excitation energy relative to the Fermi Level - // G4double Uf = U - (p - h)*Ef; - G4double Uf = U - KineticEnergyOfEmittedFragment - Bemission; + G4double Uf = std::max(U - (p - h)*Ef , 0.0); + // G4double Uf = U - KineticEnergyOfEmittedFragment - Bemission; - - Eav *= rho(p+1,h,g,Uf,Ef)/rho(p,h,g,Uf,Ef); - - Eav += - Uf/(p+h) + Ef; - + + + G4double w_num = rho(p+1,h,g,Uf,Ef); + G4double w_den = rho(p,h,g,Uf,Ef); + if (w_num > 0.0 && w_den > 0.0) + { + Eav *= (w_num/w_den); + Eav += - Uf/(p+h) + Ef; + } + else + { + Eav = Ef; + } + G4double zeta = std::max(1.0,9.3/sqrt(KineticEnergyOfEmittedFragment/MeV)); G4double an = 3.0*sqrt((ProjEnergy+Ef)*(KineticEnergyOfEmittedFragment+Bemission+Ef)); @@ -269,88 +275,149 @@ G4ThreeVector G4PreCompoundEmission::AngularDistribution(G4VPreCompoundFragment G4double G4PreCompoundEmission::rho(const G4double p, const G4double h, const G4double g, const G4double E, const G4double Ef) const { - // Values of factorial function from 0 to 50 - static const G4double fact[51] = {1.0, 1.0, 2.0, 6.0, 24.0, 120.0, 720.0, 5040.0, 40320.0, 362880.0, - 3628800.0, 39916800.0, 479001600.0, 6227020800.0, 87178291200.0, - 1307674368000.0, 20922789888000.0, 355687428096000.0, - 6402373705728000.0, 121645100408832000.0, 2432902008176640000.0, - 51090942171709440000.0, 1124000727777607680000.0, - 25852016738884978212864.0, 620448401733239409999872.0, - 15511210043330986055303168.0, 403291461126605650322784256.0, - 10888869450418351940239884288.0, 304888344611713836734530715648.0, - 8841761993739700772720181510144.0, - 265252859812191032188804700045312.0, - 8222838654177922430198509928972288.0, - 263130836933693517766352317727113216.0, - 8683317618811885938715673895318323200.0, - 295232799039604119555149671006000381952.0, - 10333147966386144222209170348167175077888.0, - 371993326789901177492420297158468206329856.0, - 13763753091226343102992036262845720547033088.0, - 523022617466601037913697377988137380787257344.0, - 20397882081197441587828472941238084160318341120.0, - 815915283247897683795548521301193790359984930816.0, - 33452526613163802763987613764361857922667238129664.0, - 1405006117752879788779635797590784832178972610527232.0, - 60415263063373834074440829285578945930237590418489344.0, - 2658271574788448529134213028096241889243150262529425408.0, - 119622220865480188574992723157469373503186265858579103744.0, - 5502622159812088456668950435842974564586819473162983440384.0, - 258623241511168177673491006652997026552325199826237836492800.0, - 12413915592536072528327568319343857274511609591659416151654400.0, - 608281864034267522488601608116731623168777542102418391010639872.0, - 30414093201713375576366966406747986832057064836514787179557289984.0}; + // Values of factorial function from 0 to 60 + const G4int factablesize = 61; + static const G4double fact[factablesize] = + { + 1.0, // 0! + 1.0, // 1! + 2.0, // 2! + 6.0, // 3! + 24.0, // 4! + 120.0, // 5! + 720.0, // 6! + 5040.0, // 7! + 40320.0, // 8! + 362880.0, // 9! + 3628800.0, // 10! + 39916800.0, // 11! + 479001600.0, // 12! + 6227020800.0, // 13! + 87178291200.0, // 14! + 1307674368000.0, // 15! + 20922789888000.0, // 16! + 355687428096000.0, // 17! + 6402373705728000.0, // 18! + 121645100408832000.0, // 19! + 2432902008176640000.0, // 20! + 51090942171709440000.0, // 21! + 1124000727777607680000.0, // 22! + 25852016738884976640000.0, // 23! + 620448401733239439360000.0, // 24! + 15511210043330985984000000.0, // 25! + 403291461126605635584000000.0, // 26! + 10888869450418352160768000000.0, // 27! + 304888344611713860501504000000.0, // 28! + 8841761993739701954543616000000.0, // 29! + 265252859812191058636308480000000.0, // 30! + 8222838654177922817725562880000000.0, // 31! + 263130836933693530167218012160000000.0, // 32! + 8683317618811886495518194401280000000.0, // 33! + 295232799039604140847618609643520000000.0, // 34! + 10333147966386144929666651337523200000000.0, // 35! + 371993326789901217467999448150835200000000.0, // 36! + 13763753091226345046315979581580902400000000.0, // 37! + 523022617466601111760007224100074291200000000.0, // 38! + 20397882081197443358640281739902897356800000000.0, // 39! + 815915283247897734345611269596115894272000000000.0, // 40! + 33452526613163807108170062053440751665152000000000.0, // 41! + 1405006117752879898543142606244511569936384000000000.0, // 42! + 60415263063373835637355132068513997507264512000000000.0, // 43! + 2658271574788448768043625811014615890319638528000000000.0, // 44! + 119622220865480194561963161495657715064383733760000000000.0, // 45! + 5502622159812088949850305428800254892961651752960000000000.0, // 46! + 258623241511168180642964355153611979969197632389120000000000.0, // 47! + 12413915592536072670862289047373375038521486354677760000000000.0, // 48! + 608281864034267560872252163321295376887552831379210240000000000.0, // 49! + 30414093201713378043612608166064768844377641568960512000000000000.0, // 50! + 1551118753287382280224243016469303211063259720016986112000000000000.0, // 51! + 80658175170943878571660636856403766975289505440883277824000000000000.0, // 52! + 4274883284060025564298013753389399649690343788366813724672000000000000.0, // 53! + 230843697339241380472092742683027581083278564571807941132288000000000000.0, // 54! + 12696403353658275925965100847566516959580321051449436762275840000000000000.0, // 55! + 710998587804863451854045647463724949736497978881168458687447040000000000000.0, // 56! + 40526919504877216755680601905432322134980384796226602145184481280000000000000.0, // 57! + 2350561331282878571829474910515074683828862318181142924420699914240000000000000.0, // 58! + 138683118545689835737939019720389406345902876772687432540821294940160000000000000.0, // 59! + 8320987112741390144276341183223364380754172606361245952449277696409600000000000000.0 // 60! + }; // fact[0] = 1; // for (G4int n = 1; n < 21; n++) { // fact[n] = fact[n-1]*static_cast(n); // } - G4double aph = (p*p + h*h + p - 3.0*h)/(4.0*g); - + G4double Aph = (p*p + h*h + p - 3.0*h)/(4.0*g); + G4double alpha = (p*p+h*h)/(2.0*g); + G4double tot = 0.0; for (G4int j = 0; j <= h; j++) { - G4double t1 = pow(-1.0, static_cast(j)); - G4double t2 = fact[j]/ (fact[static_cast(h)-j]*fact[static_cast(h)]); - G4double t3 = E - static_cast(j)*Ef - aph; - if (t3 < 0.0) t3 = 0.0; - t3 = pow(t3,p+h-1); - tot += t1*t2*t3; + if (E-alpha-static_cast(j)*Ef > 0.0) + { + G4double t1 = pow(-1.0, static_cast(j)); + G4double t2 = fact[static_cast(h)]/ (fact[static_cast(h)-j]*fact[j]); + G4double t3 = E - static_cast(j)*Ef - Aph; + t3 = pow(t3,p+h-1); + tot += t1*t2*t3; + } + else + { + break; + } } - tot *= pow(g,p+h)/(fact[static_cast(p)]*fact[static_cast(h)]*fact[static_cast(p+h)-1]); + + G4double factp(0.0); + G4int ph = static_cast(p); + if (ph < factablesize) + { + factp = fact[ph]; + } + else + { + factp = fact[factablesize-1]; + for (G4int n = factablesize; n < ph+1; ++n) + { + factp *= static_cast(n); + } + } + + G4double facth(0.0); + ph = static_cast(h); + if (ph < factablesize) + { + facth = fact[ph]; + } + else + { + facth = fact[factablesize-1]; + for (G4int n = factablesize; n < ph+1; ++n) + { + facth *= static_cast(n); + } + } + G4double factph(0.0); + ph = static_cast(p+h)-1; + if (ph < factablesize) + { + factph = fact[ph]; + } + else + { + factph = fact[factablesize-1]; + for (G4int n = factablesize; n < ph+1; ++n) + { + factph *= static_cast(n); + } + } + + tot *= pow(g,p+h)/factph; + tot /= factp; + tot /= facth; return tot; } -// G4double G4PreCompoundEmission::bessi0(const G4double x) const -// // Returns the modified Bessel function I_0(x) for any real x. -// { -// G4double ax,ans; -// G4double y; - -// if ((ax=fabs(x)) < 3.75) { /* Polynomial fit. */ -// y=x/3.75; -// y*=y; -// ans=1.0+y*(3.5156229+y*(3.0899424+ -// y*(1.2067492+ -// y*(0.2659732+ -// y*(0.360768e-1+ -// y*0.45813e-2))))); -// } else { -// y=3.75/ax; -// ans=(exp(ax)/sqrt(ax))*(0.39894228+y*(0.1328592e-1+ -// y*(0.225319e-2+ -// y*(-0.157565e-2+ -// y*(0.916281e-2+ -// y*(-0.2057706e-1+ -// y*(0.2635537e-1+ -// y*(-0.1647633e-1+ -// y*0.392377e-2)))))))); -// } -// return ans; - -// } #ifdef debug diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmissionFactory.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmissionFactory.cc similarity index 88% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmissionFactory.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmissionFactory.cc index 027be35b7f..81ba054deb 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundEmissionFactory.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundEmissionFactory.cc @@ -33,21 +33,21 @@ const G4PreCompoundEmissionFactory & G4PreCompoundEmissionFactory:: operator=(const G4PreCompoundEmissionFactory & ) { - G4Exception("G4PreCompoundEmissionFactory::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4PreCompoundEmissionFactory::operator= meant to not be accessable."); return *this; } G4bool G4PreCompoundEmissionFactory:: operator==(const G4PreCompoundEmissionFactory & ) const { - G4Exception("G4PreCompoundEmissionFactory::operator== meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4PreCompoundEmissionFactory::operator== meant to not be accessable."); return false; } G4bool G4PreCompoundEmissionFactory:: operator!=(const G4PreCompoundEmissionFactory & ) const { - G4Exception("G4PreCompoundEmissionFactory::operator!= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4PreCompoundEmissionFactory::operator!= meant to not be accessable."); return true; } diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragment.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragment.cc diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc similarity index 93% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc index d76b6fcc9c..de1d63dd15 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundFragmentVector.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundFragmentVector.cc @@ -21,20 +21,20 @@ // ******************************************************************** // // -// $Id: G4PreCompoundFragmentVector.cc,v 1.13 2003/06/16 17:07:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PreCompoundFragmentVector.cc,v 1.3 2003/11/04 11:36:27 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Hadronic Process: Nuclear Preequilibrium // by V. Lara #include "G4PreCompoundFragmentVector.hh" - +#include "G4HadronicException.hh" const G4PreCompoundFragmentVector & G4PreCompoundFragmentVector:: operator=(const G4PreCompoundFragmentVector &) { - G4Exception("G4PreCompoundFragmentVector::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4PreCompoundFragmentVector::operator= meant to not be accessable"); return *this; } diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundIon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc similarity index 100% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundIon.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundIon.cc diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc similarity index 88% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc index aa8a030a56..2959c77865 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundModel.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundModel.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundModel.cc,v 1.29 2003/06/16 17:07:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PreCompoundModel.cc,v 1.5 2003/11/19 19:13:40 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // by V. Lara @@ -39,7 +39,7 @@ std::vector G4PreCompoundModel::theCreatorModels; const G4PreCompoundModel & G4PreCompoundModel::operator=(const G4PreCompoundModel &) { - G4Exception("G4PreCompoundModel::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4PreCompoundModel::operator= meant to not be accessable"); return *this; } @@ -58,28 +58,31 @@ G4bool G4PreCompoundModel::operator!=(const G4PreCompoundModel &) const // Additional Declarations -G4VParticleChange * G4PreCompoundModel::ApplyYourself(const G4Track & thePrimary, - G4Nucleus & theNucleus) -{ - theResult.Initialize(thePrimary); - +G4HadFinalState * G4PreCompoundModel::ApplyYourself(const G4HadProjectile & thePrimary, + G4Nucleus & theNucleus) +{ // prepare fragment G4Fragment anInitialState; + // This si for GNASH transitions + anInitialState.SetParticleDefinition(const_cast(thePrimary.GetDefinition())); + G4int anA=static_cast(theNucleus.GetN()); - anA += thePrimary.GetDynamicParticle()->GetDefinition()->GetBaryonNumber(); + anA += thePrimary.GetDefinition()->GetBaryonNumber(); + anInitialState.SetA(anA); G4int aZ=static_cast(theNucleus.GetZ()); - aZ += static_cast(thePrimary.GetDynamicParticle()->GetDefinition()->GetPDGCharge()); + aZ += static_cast(thePrimary.GetDefinition()->GetPDGCharge()); + anInitialState.SetZ(aZ); // Assume the projectile is a nucleon // Number of Excited Particles - anInitialState.SetNumberOfParticles(1+thePrimary.GetDynamicParticle()->GetDefinition()->GetBaryonNumber()); + anInitialState.SetNumberOfParticles(1+thePrimary.GetDefinition()->GetBaryonNumber()); // Number of Charged Excited Particles - anInitialState.SetNumberOfCharged(static_cast(thePrimary.GetDynamicParticle()->GetDefinition()->GetPDGCharge()) + + anInitialState.SetNumberOfCharged(static_cast(thePrimary.GetDefinition()->GetPDGCharge()+.01) + static_cast(0.5+G4UniformRand())); // Number of Holes @@ -92,7 +95,7 @@ G4VParticleChange * G4PreCompoundModel::ApplyYourself(const G4Track & thePrimary anEnergy = nucleusMass + thePrimary.GetTotalEnergy(); // Momentum - G4ThreeVector p = thePrimary.GetDynamicParticle()->Get4Momentum().vect(); + G4ThreeVector p = thePrimary.Get4Momentum().vect(); // 4-momentum G4LorentzVector momentum(p, anEnergy); @@ -115,8 +118,8 @@ G4VParticleChange * G4PreCompoundModel::ApplyYourself(const G4Track & thePrimary theCreatorModels.clear(); #endif // fill particle change - theResult.SetStatusChange(fStopAndKill); - theResult.SetNumberOfSecondaries(result->size()); + theResult.Clear(); + theResult.SetStatusChange(stopAndKill); for(G4ReactionProductVector::iterator i= result->begin(); i != result->end(); ++i) { G4DynamicParticle * aNew = @@ -183,18 +186,29 @@ G4ReactionProductVector* G4PreCompoundModel::DeExcite(const G4Fragment & theInit // G4double g = (6.0/pi2)*aFragment.GetA()* // theLDP.LevelDensityParameter(static_cast(aFragment.GetA()),static_cast(aFragment.GetZ()), // aFragment.GetExcitationEnergy()); - + G4double g = (6.0/pi2)*aFragment.GetA()* G4PreCompoundParameters::GetAddress()->GetLevelDensity(); G4int EquilibriumExcitonNumber = static_cast(sqrt(2.0*g*aFragment.GetExcitationEnergy()) - + 0.5); + + 0.5); // Loop for transitions, it is performed while there are preequilibrium transitions. G4bool ThereIsTransition = false; do { - if (aFragment.GetNumberOfExcitons() < EquilibriumExcitonNumber && - aFragment.GetA() > 4 && Result->size() < 2) + G4bool go_ahead = false; + G4double test = static_cast(aFragment.GetNumberOfExcitons()); + if (test < EquilibriumExcitonNumber) + { + test /= static_cast(EquilibriumExcitonNumber); + test -= 1.0; + test = test*test; + test /= 0.32; + test = 1.0 - exp(-test); + go_ahead = (G4UniformRand() < test); + } + + if (go_ahead && aFragment.GetA() > 4) { // if (aFragment.GetNumberOfParticles() < 1) { // aFragment.SetNumberOfHoles(aFragment.GetNumberOfHoles()+1); diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundNucleon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc similarity index 99% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundNucleon.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc index 4285a81702..52c6c45910 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundNucleon.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundNucleon.cc @@ -45,6 +45,7 @@ ProbabilityDistributionFunction(const G4double eKin, G4double E0 = std::max(0.0,U - A0); if (E0 == 0.0) return 0.0; G4double E1 = std::max(0.0,U - eKin - GetBindingEnergy() - A1); + if (E1 == 0.0) return 0.0; // g = (6.0/pi2)*a*A // G4EvaporationLevelDensityParameter theLDP; diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc similarity index 93% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc index 24fee8e673..42bf9fb2c9 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundParameters.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundParameters.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PreCompoundParameters.cc,v 1.10 2003/03/24 13:59:54 larazb Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PreCompoundParameters.cc,v 1.1 2003/08/26 18:54:59 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc similarity index 92% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc index f8683864ec..ba26edb25a 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4PreCompoundTransitions.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4PreCompoundTransitions.cc @@ -21,17 +21,18 @@ // ******************************************************************** // // -// $Id: G4PreCompoundTransitions.cc,v 1.16 2003/05/30 14:05:58 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PreCompoundTransitions.cc,v 1.4 2003/11/04 11:36:26 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // by V. Lara #include "G4PreCompoundTransitions.hh" +#include "G4HadronicException.hh" const G4PreCompoundTransitions & G4PreCompoundTransitions:: operator=(const G4PreCompoundTransitions &) { - G4Exception("G4PreCompoundTransitions::operator= meant to not be accessable"); + throw G4HadronicException(__FILE__, __LINE__, "G4PreCompoundTransitions::operator= meant to not be accessable"); return *this; } @@ -75,7 +76,9 @@ CalculateProbability(const G4Fragment & aFragment) // Sample kind of nucleon-projectile G4bool ChargedNucleon(false); - if (G4UniformRand() < aFragment.GetNumberOfCharged()/P) ChargedNucleon = true; + G4double chtest = 0.5; + if (P > 0) chtest = aFragment.GetNumberOfCharged()/P; + if (G4UniformRand() < chtest) ChargedNucleon = true; // Relative Velocity: // ^2 @@ -133,7 +136,7 @@ CalculateProbability(const G4Fragment & aFragment) // F(p+1,h+1) G4double Fph1 = Fph + N/2.0; // (n+1)/n ((g*E - F(p,h))/(g*E - F(p+1,h+1)))^(n+1) - G4double ProbFactor = ((N+1.0)/N) * pow((GE-Fph)/(GE-Fph1),N+1.0); + G4double ProbFactor = pow((GE-Fph)/(GE-Fph1),N+1.0); if (NeverGoBack) @@ -152,7 +155,7 @@ CalculateProbability(const G4Fragment & aFragment) // Transition probability for \Delta n = 0 (at F(p,h) = 0) // TransitionProb3 = TransitionProb1*(P+H+1.0)*(P*(P-1.0)+4.0*P*H+H*(H-1.0))/((P+H)*GE); - TransitionProb3 = TransitionProb1 * ProbFactor * (P*(P-1.0) + 4.0*P*H + H*(H-1.0))/(GE-Fph); + TransitionProb3 = TransitionProb1 * ProbFactor * ((N+1.0)/N) * (P*(P-1.0) + 4.0*P*H + H*(H-1.0))/(GE-Fph); if (TransitionProb3 < 0.0) TransitionProb3 = 0.0; } diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundEmissionFactory.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundEmissionFactory.cc similarity index 85% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundEmissionFactory.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundEmissionFactory.cc index 96fbccf294..a0151aba9e 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundEmissionFactory.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundEmissionFactory.cc @@ -24,25 +24,26 @@ // by V. Lara #include "G4VPreCompoundEmissionFactory.hh" +#include "G4HadronicException.hh" const G4VPreCompoundEmissionFactory & G4VPreCompoundEmissionFactory::operator=(const G4VPreCompoundEmissionFactory & ) { - G4Exception("G4VPreCompoundEmissionFactory::operator= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VPreCompoundEmissionFactory::operator= meant to not be accessable."); return *this; } G4bool G4VPreCompoundEmissionFactory::operator==(const G4VPreCompoundEmissionFactory & ) const { - G4Exception("G4VPreCompoundEmissionFactory::operator== meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VPreCompoundEmissionFactory::operator== meant to not be accessable."); return false; } G4bool G4VPreCompoundEmissionFactory::operator!=(const G4VPreCompoundEmissionFactory & ) const { - G4Exception("G4VPreCompoundEmissionFactory::operator!= meant to not be accessable."); + throw G4HadronicException(__FILE__, __LINE__, "G4VPreCompoundEmissionFactory::operator!= meant to not be accessable."); return true; } diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc similarity index 98% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc index 229ac23687..9400fb4b45 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundFragment.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundFragment.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundFragment.cc,v 1.20 2003/06/18 08:56:38 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPreCompoundFragment.cc,v 1.1 2003/08/26 18:54:54 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundIon.cc similarity index 97% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundIon.cc index f73ca06bab..8296883f4a 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundIon.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundIon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundIon.cc,v 1.20 2003/06/16 17:07:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPreCompoundIon.cc,v 1.1 2003/08/26 18:54:50 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundNucleon.cc similarity index 96% rename from source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc rename to source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundNucleon.cc index 5978d338ae..9aac33829c 100644 --- a/source/processes/hadronic/models/generator/pre_equilibrium/src/G4VPreCompoundNucleon.cc +++ b/source/processes/hadronic/models/pre_equilibrium/exciton_model/src/G4VPreCompoundNucleon.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VPreCompoundNucleon.cc,v 1.5 2003/06/16 17:07:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VPreCompoundNucleon.cc,v 1.1 2003/08/26 18:55:04 lara Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // by V. Lara diff --git a/source/processes/hadronic/models/radiative_decay/GNUmakefile b/source/processes/hadronic/models/radioactive_decay/GNUmakefile similarity index 76% rename from source/processes/hadronic/models/radiative_decay/GNUmakefile rename to source/processes/hadronic/models/radioactive_decay/GNUmakefile index ac893f7039..1a68163059 100644 --- a/source/processes/hadronic/models/radiative_decay/GNUmakefile +++ b/source/processes/hadronic/models/radioactive_decay/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.6 2002/11/15 16:53:44 flei Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/09 06:49:27 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. # ----------------------------------------------------------- @@ -24,9 +24,11 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/processes/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ - -I$(G4BASE)/processes/hadronic/generator/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/util/include \ + -I$(G4BASE)/processes/hadronic/management/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/particles/leptons/include \ -I$(G4BASE)/particles/bosons/include \ diff --git a/source/processes/hadronic/models/radiative_decay/History b/source/processes/hadronic/models/radioactive_decay/History similarity index 100% rename from source/processes/hadronic/models/radiative_decay/History rename to source/processes/hadronic/models/radioactive_decay/History diff --git a/source/processes/hadronic/models/radiative_decay/include/G4AlphaDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4AlphaDecayChannel.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4AlphaDecayChannel.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4AlphaDecayChannel.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4BetaFermiFunction.hh b/source/processes/hadronic/models/radioactive_decay/include/G4BetaFermiFunction.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4BetaFermiFunction.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4BetaFermiFunction.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4BetaMinusDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4BetaMinusDecayChannel.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4BetaMinusDecayChannel.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4BetaMinusDecayChannel.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4BetaPlusDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4BetaPlusDecayChannel.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4BetaPlusDecayChannel.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4BetaPlusDecayChannel.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4ITDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4ITDecayChannel.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4ITDecayChannel.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4ITDecayChannel.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4KshellECDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4KshellECDecayChannel.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4KshellECDecayChannel.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4KshellECDecayChannel.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4LshellECDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4LshellECDecayChannel.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4LshellECDecayChannel.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4LshellECDecayChannel.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4NuclearDecayChannel.hh b/source/processes/hadronic/models/radioactive_decay/include/G4NuclearDecayChannel.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4NuclearDecayChannel.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4NuclearDecayChannel.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4NucleusLimits.hh b/source/processes/hadronic/models/radioactive_decay/include/G4NucleusLimits.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4NucleusLimits.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4NucleusLimits.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RIsotopeTable.hh b/source/processes/hadronic/models/radioactive_decay/include/G4RIsotopeTable.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4RIsotopeTable.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4RIsotopeTable.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecay.hh b/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecay.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecay.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecay.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayMode.hh b/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecayMode.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayMode.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecayMode.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRate.hh b/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecayRate.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRate.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecayRate.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRateVector.hh b/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecayRateVector.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecayRateVector.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecayRateVector.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecaymessenger.hh b/source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecaymessenger.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4RadioactiveDecaymessenger.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4RadioactiveDecaymessenger.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4UIcmdWithNucleusLimits.hh b/source/processes/hadronic/models/radioactive_decay/include/G4UIcmdWithNucleusLimits.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4UIcmdWithNucleusLimits.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4UIcmdWithNucleusLimits.hh diff --git a/source/processes/hadronic/models/radiative_decay/include/G4UserLimitsForRD.hh b/source/processes/hadronic/models/radioactive_decay/include/G4UserLimitsForRD.hh similarity index 100% rename from source/processes/hadronic/models/radiative_decay/include/G4UserLimitsForRD.hh rename to source/processes/hadronic/models/radioactive_decay/include/G4UserLimitsForRD.hh diff --git a/source/processes/hadronic/models/radiative_decay/src/G4BetaFermiFunction.cc b/source/processes/hadronic/models/radioactive_decay/src/G4BetaFermiFunction.cc similarity index 100% rename from source/processes/hadronic/models/radiative_decay/src/G4BetaFermiFunction.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4BetaFermiFunction.cc diff --git a/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc b/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc similarity index 98% rename from source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc index db5e0b1fea..1ceda35c9d 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4NuclearDecayChannel.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4NuclearDecayChannel.cc @@ -173,6 +173,8 @@ G4NuclearDecayChannel::G4NuclearDecayChannel // // // +#include "G4HadTmpUtil.hh" + void G4NuclearDecayChannel::FillDaughterNucleus (G4int index, G4int A, G4int Z, G4double theDaughterExcitation) { @@ -187,7 +189,7 @@ void G4NuclearDecayChannel::FillDaughterNucleus (G4int index, G4int A, G4int Z, G4cerr <<"Inappropriate values of daughter A, Z or excitation" <0)) { G4cerr << "G4NuclearDecayChannel::DecayIt "; diff --git a/source/processes/hadronic/models/radiative_decay/src/G4NucleusLimits.cc b/source/processes/hadronic/models/radioactive_decay/src/G4NucleusLimits.cc similarity index 100% rename from source/processes/hadronic/models/radiative_decay/src/G4NucleusLimits.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4NucleusLimits.cc diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RIsotopeTable.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc similarity index 100% rename from source/processes/hadronic/models/radiative_decay/src/G4RIsotopeTable.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4RIsotopeTable.cc diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecay.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc similarity index 98% rename from source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecay.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc index 92b6515af7..bb6a84eafe 100644 --- a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecay.cc +++ b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecay.cc @@ -1230,16 +1230,17 @@ void G4RadioactiveDecay::AddDecayRateTable(const G4ParticleDefinition &theParent // // read in the source time profile function (histogram) // +#include "G4HadTmpUtil.hh" void G4RadioactiveDecay::SetSourceTimeProfile(G4String filename) { std::ifstream infile ( filename, std::ios::in ); - if ( !infile ) G4Exception ( "Unable to open source data file" ); + if ( !infile ) G4Exception(__FILE__, G4inttostring(__LINE__), FatalException, "Unable to open source data file" ); float bin, flux; NSourceBin = -1; while (infile >> bin >> flux ) { NSourceBin++; - if (NSourceBin > 99) G4Exception ( "input source data file too big (>100 rows)" ); + if (NSourceBin > 99) G4Exception(__FILE__, G4inttostring(__LINE__), FatalException, "input source data file too big (>100 rows)" ); SBin[NSourceBin] = bin * s; SProfile[NSourceBin] = flux; } @@ -1260,13 +1261,13 @@ void G4RadioactiveDecay::SetSourceTimeProfile(G4String filename) void G4RadioactiveDecay::SetDecayBias(G4String filename) { std::ifstream infile ( filename, std::ios::in); - if ( !infile ) G4Exception ( "Unable to open bias data file" ); + if ( !infile ) G4Exception(__FILE__, G4inttostring(__LINE__), FatalException, "Unable to open bias data file" ); float bin, flux; NDecayBin = -1; while (infile >> bin >> flux ) { NDecayBin++; - if (NDecayBin > 99) G4Exception ( "input bias data file too big (>100 rows)" ); + if (NDecayBin > 99) G4Exception(__FILE__, G4inttostring(__LINE__), FatalException, "input bias data file too big (>100 rows)" ); DBin[NDecayBin] = bin * s; DProfile[NDecayBin] = flux; } diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayMode.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayMode.cc similarity index 100% rename from source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayMode.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayMode.cc diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRate.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayRate.cc similarity index 100% rename from source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRate.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayRate.cc diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRateVector.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayRateVector.cc similarity index 100% rename from source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecayRateVector.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecayRateVector.cc diff --git a/source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecaymessenger.cc b/source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecaymessenger.cc similarity index 100% rename from source/processes/hadronic/models/radiative_decay/src/G4RadioactiveDecaymessenger.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4RadioactiveDecaymessenger.cc diff --git a/source/processes/hadronic/models/radiative_decay/src/G4UIcmdWithNucleusLimits.cc b/source/processes/hadronic/models/radioactive_decay/src/G4UIcmdWithNucleusLimits.cc similarity index 100% rename from source/processes/hadronic/models/radiative_decay/src/G4UIcmdWithNucleusLimits.cc rename to source/processes/hadronic/models/radioactive_decay/src/G4UIcmdWithNucleusLimits.cc diff --git a/source/processes/hadronic/models/theo_high_energy/GNUmakefile b/source/processes/hadronic/models/theo_high_energy/GNUmakefile new file mode 100644 index 0000000000..79a9a20d46 --- /dev/null +++ b/source/processes/hadronic/models/theo_high_energy/GNUmakefile @@ -0,0 +1,41 @@ +# $Id: GNUmakefile,v 1.2 2003/11/26 10:18:17 gcosmo Exp $ +# ----------------------------------------------------------- +# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96. +# ----------------------------------------------------------- + +name := G4had_theo_max + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/hadronic/management/include/ \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/processes/include \ + -I$(G4BASE)/processes/hadronic/cross_sections/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ + -I$(G4BASE)/processes/hadronic/models/im_r_matrix/include \ + -I$(G4BASE)/processes/hadronic/models/pre_equilibrium/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/particles/shortlived/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk + diff --git a/source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh b/source/processes/hadronic/models/theo_high_energy/include/G4TheoFSGenerator.hh similarity index 90% rename from source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh rename to source/processes/hadronic/models/theo_high_energy/include/G4TheoFSGenerator.hh index 30960afaf5..661d2050cd 100644 --- a/source/processes/hadronic/models/generator/high_energy/include/G4TheoFSGenerator.hh +++ b/source/processes/hadronic/models/theo_high_energy/include/G4TheoFSGenerator.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TheoFSGenerator.hh,v 1.7 2002/12/12 19:17:27 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TheoFSGenerator.hh,v 1.1 2003/10/07 11:38:02 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // Class Description @@ -44,6 +44,7 @@ #include "G4HadronicInteraction.hh" #include "G4VHighEnergyGenerator.hh" #include "G4DecayStrongResonances.hh" +#include "G4HadFinalState.hh" class G4TheoFSGenerator : public G4HadronicInteraction @@ -59,20 +60,20 @@ class G4TheoFSGenerator : public G4HadronicInteraction int operator!=(const G4TheoFSGenerator &right) const; public: - G4VParticleChange * ApplyYourself(const G4Track & thePrimary, G4Nucleus & theNucleus); + G4HadFinalState * ApplyYourself(const G4HadProjectile & thePrimary, G4Nucleus & theNucleus); void SetTransport(G4VIntraNuclearTransportModel *const value); void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value); private: const G4VIntraNuclearTransportModel * GetTransport() const; const G4VHighEnergyGenerator * GetHighEnergyGenerator() const; - const G4ParticleChange * GetParticleChange() const; + const G4HadFinalState * GetFinalState() const; private: G4VIntraNuclearTransportModel *theTransport; G4VHighEnergyGenerator *theHighEnergyGenerator; G4DecayStrongResonances theDecay; - G4ParticleChange *theParticleChange; + G4HadFinalState *theParticleChange; }; inline const G4VIntraNuclearTransportModel * G4TheoFSGenerator::GetTransport() const @@ -95,7 +96,7 @@ inline void G4TheoFSGenerator::SetHighEnergyGenerator(G4VHighEnergyGenerator *co theHighEnergyGenerator= value; } -inline const G4ParticleChange * G4TheoFSGenerator::GetParticleChange() const +inline const G4HadFinalState * G4TheoFSGenerator::GetFinalState() const { return theParticleChange; } diff --git a/source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc b/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc similarity index 82% rename from source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc rename to source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc index 7ba7b7a133..4f1aeb895f 100644 --- a/source/processes/hadronic/models/generator/high_energy/src/G4TheoFSGenerator.cc +++ b/source/processes/hadronic/models/theo_high_energy/src/G4TheoFSGenerator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TheoFSGenerator.cc,v 1.12 2003/06/16 17:06:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TheoFSGenerator.cc,v 1.3 2003/11/03 17:55:38 hpw Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // G4TheoFSGenerator #include "G4DynamicParticle.hh" @@ -32,7 +32,7 @@ G4TheoFSGenerator::G4TheoFSGenerator() { - theParticleChange = new G4ParticleChange; + theParticleChange = new G4HadFinalState; } G4TheoFSGenerator::G4TheoFSGenerator(const G4TheoFSGenerator &) : G4HadronicInteraction() @@ -48,7 +48,8 @@ G4TheoFSGenerator::~G4TheoFSGenerator() const G4TheoFSGenerator & G4TheoFSGenerator::operator=(const G4TheoFSGenerator &) { - G4Exception("G4CrossSectionBase::operator= meant to not be accessable"); + G4String text = "G4CrossSectionBase::operator= meant to not be accessable"; + throw G4HadronicException(__FILE__, __LINE__, text); return *this; } @@ -64,17 +65,18 @@ int G4TheoFSGenerator::operator!=(const G4TheoFSGenerator &) const } -G4VParticleChange * G4TheoFSGenerator::ApplyYourself(const G4Track & thePrimary, G4Nucleus &theNucleus) +G4HadFinalState * G4TheoFSGenerator::ApplyYourself(const G4HadProjectile & thePrimary, G4Nucleus &theNucleus) { // init particle change theParticleChange->Clear(); - theParticleChange->Initialize(thePrimary); - theParticleChange->SetStatusChange(fStopAndKill); + theParticleChange->SetStatusChange(stopAndKill); // check if models have been registered, and use default, in case this is not true @@ // get result from high energy model - const G4DynamicParticle * aPart = thePrimary.GetDynamicParticle(); + G4DynamicParticle aTemp(const_cast(thePrimary.GetDefinition()), + thePrimary.Get4Momentum().vect()); + const G4DynamicParticle * aPart = &aTemp; G4KineticTrackVector * theInitialResult = theHighEnergyGenerator->Scatter(theNucleus, *aPart); @@ -103,15 +105,14 @@ G4VParticleChange * G4TheoFSGenerator::ApplyYourself(const G4Track & thePrimary, // Fill particle change unsigned int i; - theParticleChange->SetNumberOfSecondaries(theTransportResult->size()); for(i=0; isize(); i++) { G4DynamicParticle * aNew = new G4DynamicParticle(theTransportResult->operator[](i)->GetDefinition(), theTransportResult->operator[](i)->GetTotalEnergy(), theTransportResult->operator[](i)->GetMomentum()); - G4double newTime = theParticleChange->GetGlobalTime(theTransportResult->operator[](i)->GetFormationTime()); - theParticleChange->AddSecondary(aNew, newTime); + // @@@ - overkill? G4double newTime = theParticleChange->GetGlobalTime(theTransportResult->operator[](i)->GetFormationTime()); + theParticleChange->AddSecondary(aNew); delete theTransportResult->operator[](i); } diff --git a/source/processes/hadronic/models/util/GNUmakefile b/source/processes/hadronic/models/util/GNUmakefile new file mode 100644 index 0000000000..71be490d57 --- /dev/null +++ b/source/processes/hadronic/models/util/GNUmakefile @@ -0,0 +1,37 @@ +# $Id: GNUmakefile,v 1.2 2003/10/17 17:23:43 lara Exp $ +# ---------------------------------------------------------------- +# GNUmakefile for hadronic management library. G.Folger 10-Dec-97 +# ---------------------------------------------------------------- + +name := G4had_mod_util + +ifndef G4INSTALL + G4INSTALL = ../../../../.. +endif + +include $(G4INSTALL)/config/architecture.gmk + +ifdef PRECOMPOUND_TEST + CPPFLAGS += -DPRECOMPOUND_TEST +endif + +CPPFLAGS += -I$(G4BASE)/global/management/include \ + -I$(G4BASE)/global/HEPRandom/include \ + -I$(G4BASE)/global/HEPGeometry/include \ + -I$(G4BASE)/global/HEPNumerics/include \ + -I$(G4BASE)/track/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/management/include \ + -I$(G4BASE)/geometry/navigation/include \ + -I$(G4BASE)/processes/hadronic/util/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ + -I$(G4BASE)/particles/management/include \ + -I$(G4BASE)/particles/leptons/include \ + -I$(G4BASE)/particles/bosons/include \ + -I$(G4BASE)/particles/hadrons/mesons/include \ + -I$(G4BASE)/particles/hadrons/barions/include \ + -I$(G4BASE)/particles/hadrons/ions/include \ + -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/materials/include + +include $(G4INSTALL)/config/common.gmk diff --git a/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh b/source/processes/hadronic/models/util/include/G4DecayStrongResonances.hh similarity index 90% rename from source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh rename to source/processes/hadronic/models/util/include/G4DecayStrongResonances.hh index 1230d62360..06958e02f4 100644 --- a/source/processes/hadronic/models/generator/util/include/G4DecayStrongResonances.hh +++ b/source/processes/hadronic/models/util/include/G4DecayStrongResonances.hh @@ -29,7 +29,7 @@ #include "G4Nucleus.hh" #include "G4KineticTrackVector.hh" #include "G4FragmentVector.hh" -#include "G4ParticleChange.hh" +#include "G4HadFinalState.hh" #include "G4DynamicParticleVector.hh" #include @@ -54,15 +54,7 @@ public: G4KineticTrackVector *result1, *secondaries, *result; result1=theSecondaries; result=new G4KineticTrackVector(); - - G4ThreeVector theCurrentVelocity; - theCurrentVelocity.setX(0); - theCurrentVelocity.setY(0); - G4double vz = theEnergy/(sqrt(theEnergy*theEnergy + - G4Proton::Proton()->GetPDGMass()*G4Proton::Proton()->GetPDGMass()) - + G4Proton::Proton()->GetPDGMass()); - theCurrentVelocity.setZ(vz); - + size_t aResult=0; for (aResult=0; aResult < result1->size(); aResult++) { diff --git a/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh b/source/processes/hadronic/models/util/include/G4ExcitedString.hh similarity index 97% rename from source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh rename to source/processes/hadronic/models/util/include/G4ExcitedString.hh index 64ddfd8de9..23845c75ee 100644 --- a/source/processes/hadronic/models/generator/util/include/G4ExcitedString.hh +++ b/source/processes/hadronic/models/util/include/G4ExcitedString.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ExcitedString.hh,v 1.11 2003/06/16 17:09:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4ExcitedString_h @@ -44,6 +42,7 @@ #include "G4Parton.hh" #include "G4PartonVector.hh" #include "G4KineticTrack.hh" +#include "G4HadronicException.hh" #include class G4ExcitedString @@ -165,7 +164,8 @@ void G4ExcitedString::InsertParton(G4Parton *aParton, const G4Parton * addafter) insert_index=std::find(thePartons.begin(), thePartons.end(), addafter); if (insert_index == thePartons.end()) // No object addafter in thePartons { - G4Exception("G4ExcitedString::InsertParton called with invalid second argument"); + G4String text = "G4ExcitedString::InsertParton called with invalid second argument"; + throw G4HadronicException(__FILE__, __LINE__, text); } } diff --git a/source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh b/source/processes/hadronic/models/util/include/G4ExcitedStringVector.hh similarity index 94% rename from source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh rename to source/processes/hadronic/models/util/include/G4ExcitedStringVector.hh index a28cbd9473..ae9be24d66 100644 --- a/source/processes/hadronic/models/generator/util/include/G4ExcitedStringVector.hh +++ b/source/processes/hadronic/models/util/include/G4ExcitedStringVector.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ExcitedStringVector.hh,v 1.8 2003/06/16 17:09:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4ExcitedStringVector_h #define G4ExcitedStringVector_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh b/source/processes/hadronic/models/util/include/G4Fancy3DNucleus.hh similarity index 97% rename from source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh rename to source/processes/hadronic/models/util/include/G4Fancy3DNucleus.hh index 049663f2e4..3dacf65f93 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Fancy3DNucleus.hh +++ b/source/processes/hadronic/models/util/include/G4Fancy3DNucleus.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4Fancy3DNucleus.hh,v 1.15 2003/06/16 17:09:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4Fancy3DNucleus_h #define G4Fancy3DNucleus_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh b/source/processes/hadronic/models/util/include/G4FermiMomentum.hh similarity index 96% rename from source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh rename to source/processes/hadronic/models/util/include/G4FermiMomentum.hh index d65efa6823..6b7f670e80 100644 --- a/source/processes/hadronic/models/generator/util/include/G4FermiMomentum.hh +++ b/source/processes/hadronic/models/util/include/G4FermiMomentum.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4FermiMomentum.hh,v 1.7 2003/02/12 10:20:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4FermiMomentum_h #define G4FermiMomentum_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4Fragment.hh b/source/processes/hadronic/models/util/include/G4Fragment.hh similarity index 95% rename from source/processes/hadronic/models/generator/util/include/G4Fragment.hh rename to source/processes/hadronic/models/util/include/G4Fragment.hh index de73df4f02..7e3e964a1b 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Fragment.hh +++ b/source/processes/hadronic/models/util/include/G4Fragment.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4Fragment.hh,v 1.17 2003/06/16 17:09:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) @@ -44,6 +42,8 @@ #include "Randomize.hh" #include "G4Proton.hh" #include "G4Neutron.hh" +#include "G4HadronicException.hh" +#include "G4HadTmpUtil.hh" class G4ParticleDefinition; @@ -255,7 +255,11 @@ inline G4int G4Fragment::GetNumberOfCharged() const inline void G4Fragment::SetNumberOfCharged(const G4int value) { if (value <= numberOfParticles) numberOfCharged = value; - else G4Exception("G4Fragment::SetNumberOfCharged: Number of charged particles can't be greater than number of particles"); + else + { + G4String text = "G4Fragment::SetNumberOfCharged: Number of charged particles can't be greater than number of particles"; + throw G4HadronicException(__FILE__, __LINE__, text); + } } inline G4int G4Fragment::GetNumberOfParticles() const @@ -289,7 +293,7 @@ inline G4double G4Fragment::GetGroundStateMass(void) const { if (theA == 0) return 0.0; // photon else return G4ParticleTable::GetParticleTable()-> - GetIonTable()->GetIonMass(static_cast(theZ),static_cast(theA)); + GetIonTable()->GetIonMass(G4lrint(theZ),G4lrint(theA)); } inline G4double G4Fragment::GetBindingEnergy(void) const diff --git a/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh b/source/processes/hadronic/models/util/include/G4FragmentVector.hh similarity index 93% rename from source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh rename to source/processes/hadronic/models/util/include/G4FragmentVector.hh index e9264790ab..a35a95d192 100644 --- a/source/processes/hadronic/models/generator/util/include/G4FragmentVector.hh +++ b/source/processes/hadronic/models/util/include/G4FragmentVector.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4FragmentVector.hh,v 1.5 2002/12/12 19:17:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) diff --git a/source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh b/source/processes/hadronic/models/util/include/G4GeneralPhaseSpaceDecay.hh similarity index 97% rename from source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh rename to source/processes/hadronic/models/util/include/G4GeneralPhaseSpaceDecay.hh index a8c3856d24..c616259632 100644 --- a/source/processes/hadronic/models/generator/util/include/G4GeneralPhaseSpaceDecay.hh +++ b/source/processes/hadronic/models/util/include/G4GeneralPhaseSpaceDecay.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4GeneralPhaseSpaceDecay.hh,v 1.6 2002/12/12 19:17:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // //$Id: G4GeneralPhaseSpaceDecay.hh,v 1.1 1997/05/21 // ---------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/util/include/G4KineticTrack.hh b/source/processes/hadronic/models/util/include/G4KineticTrack.hh similarity index 76% rename from source/processes/hadronic/models/generator/util/include/G4KineticTrack.hh rename to source/processes/hadronic/models/util/include/G4KineticTrack.hh index 037e484cab..32eac062e2 100644 --- a/source/processes/hadronic/models/generator/util/include/G4KineticTrack.hh +++ b/source/processes/hadronic/models/util/include/G4KineticTrack.hh @@ -44,6 +44,8 @@ #include "G4ParticleDefinition.hh" #include "G4VDecayChannel.hh" +// #include "G4Allocator.hh" + class G4KineticTrackVector; @@ -73,7 +75,10 @@ class G4KineticTrack : public G4VKineticNucleon G4int operator==(const G4KineticTrack& right) const; G4int operator!=(const G4KineticTrack& right) const; - +/* + inline void *operator new(size_t); + inline void operator delete(void *aTrack); +*/ G4ParticleDefinition* GetDefinition() const; void SetDefinition(G4ParticleDefinition* aDefinition); @@ -87,6 +92,9 @@ class G4KineticTrack : public G4VKineticNucleon void Set4Momentum(const G4LorentzVector& a4Momentum); void Update4Momentum(G4double aEnergy); // update E and p, not changing mass void Update4Momentum(const G4ThreeVector & aMomentum); // idem + void SetTrackingMomentum(const G4LorentzVector& a4Momentum); + void UpdateTrackingMomentum(G4double aEnergy); // update E and p, not changing mass + void UpdateTrackingMomentum(const G4ThreeVector & aMomentum); // idem const G4LorentzVector& GetTrackingMomentum() const; @@ -106,10 +114,14 @@ class G4KineticTrack : public G4VKineticNucleon G4int GetnChannels() const; // position relativ to nucleus "state" - enum CascadeState {undefined, outside, going_in, inside, going_out, gone_out, miss_nucleus }; + enum CascadeState {undefined, outside, going_in, inside, + going_out, gone_out, captured, miss_nucleus }; CascadeState SetState(const CascadeState new_state); CascadeState GetState() const; + void SetProjectilePotential(const G4double aPotential); + G4double GetProjectilePotential() const; + private: @@ -176,11 +188,26 @@ public: CascadeState theStateToNucleus; + G4double theProjectilePotential; }; +// extern G4Allocator theKTAllocator; // Class G4KineticTrack +/* +inline void * G4KineticTrack::operator new(size_t) +{ + void * aT; + aT = (void *) theKTAllocator.MallocSingle(); + return aT; +} + +inline void G4KineticTrack::operator delete(void * aT) +{ + theKTAllocator.FreeSingle((G4KineticTrack *) aT); +} +*/ inline G4ParticleDefinition* G4KineticTrack::GetDefinition() const { @@ -229,32 +256,73 @@ inline const G4LorentzVector& G4KineticTrack::GetTrackingMomentum() const inline void G4KineticTrack::Set4Momentum(const G4LorentzVector& a4Momentum) { - the4Momentum = a4Momentum; - G4double m = a4Momentum.mag(); - theTotal4Momentum=the4Momentum+theFermi3Momentum; - G4double p=theTotal4Momentum.vect().mag(); - theTotal4Momentum.setE(sqrt(m*m+p*p)); +// set the4Momentum and update theTotal4Momentum + + theTotal4Momentum=a4Momentum; + the4Momentum = theTotal4Momentum; + theFermi3Momentum=G4LorentzVector(0); } inline void G4KineticTrack::Update4Momentum(G4double aEnergy) { - G4double newP=0; - if ( aEnergy > GetActualMass() ) +// update the4Momentum with aEnergy at constant mass (the4Momentum.mag() +// updates theTotal4Momentum as well. + G4double newP(0); + G4double mass2=theTotal4Momentum.mag2(); + if ( sqr(aEnergy) > mass2 ) { - newP = sqrt(sqr(aEnergy) - the4Momentum.mag2()); + newP = sqrt(sqr(aEnergy) - mass2 ); } else { - aEnergy=GetActualMass(); + aEnergy=sqrt(mass2); } Set4Momentum(G4LorentzVector(newP*the4Momentum.vect().unit(), aEnergy)); } inline void G4KineticTrack::Update4Momentum(const G4ThreeVector & aMomentum) { - G4double newE=sqrt(the4Momentum.mag2() + aMomentum.mag2()); +// update the4Momentum with aMomentum at constant mass (the4Momentum.mag() +// updates theTotal4Momentum as well. + G4double newE=sqrt(theTotal4Momentum.mag2() + aMomentum.mag2()); Set4Momentum(G4LorentzVector(aMomentum, newE)); } +inline void G4KineticTrack::SetTrackingMomentum(const G4LorentzVector& aMomentum) +{ +// set the4Momentum and update theTotal4Momentum, keep the mass of aMomentum + + the4Momentum = aMomentum; + theTotal4Momentum=the4Momentum+theFermi3Momentum; +// keep mass of aMomentum for the total momentum + G4double m2 = aMomentum.mag2(); + G4double p2=theTotal4Momentum.vect().mag2(); + theTotal4Momentum.setE(sqrt(m2+p2)); +} + +inline void G4KineticTrack::UpdateTrackingMomentum(G4double aEnergy) +{ +// update the4Momentum with aEnergy at constant mass (the4Momentum.mag() +// updates theTotal4Momentum as well. + G4double newP(0); + G4double mass2=theTotal4Momentum.mag2(); + if ( sqr(aEnergy) > mass2 ) + { + newP = sqrt(sqr(aEnergy) - mass2 ); + } else + { + aEnergy=sqrt(mass2); + } + SetTrackingMomentum(G4LorentzVector(newP*the4Momentum.vect().unit(), aEnergy)); +} + +inline void G4KineticTrack::UpdateTrackingMomentum(const G4ThreeVector & aMomentum) +{ +// update the4Momentum with aMomentum at constant mass (the4Momentum.mag() +// updates theTotal4Momentum as well. + G4double newE=sqrt(theTotal4Momentum.mag2() + aMomentum.mag2()); + SetTrackingMomentum(G4LorentzVector(aMomentum, newE)); +} + @@ -366,6 +434,17 @@ G4KineticTrack::CascadeState G4KineticTrack::SetState(const CascadeState new_sta return old_state; } +inline +void G4KineticTrack::SetProjectilePotential(G4double aPotential) +{ + theProjectilePotential = aPotential; +} +inline +G4double G4KineticTrack::GetProjectilePotential() const +{ + return theProjectilePotential; +} + #endif diff --git a/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh b/source/processes/hadronic/models/util/include/G4KineticTrackVector.hh similarity index 94% rename from source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh rename to source/processes/hadronic/models/util/include/G4KineticTrackVector.hh index 071f7ee4fc..25d0486f9b 100644 --- a/source/processes/hadronic/models/generator/util/include/G4KineticTrackVector.hh +++ b/source/processes/hadronic/models/util/include/G4KineticTrackVector.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4KineticTrackVector.hh,v 1.8 2003/06/16 17:09:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // Modified at 8-Oct-1998 by Maxim Komogorov. Methods BoostBeam,Boost,Shift // were added. diff --git a/source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh b/source/processes/hadronic/models/util/include/G4NuclearFermiDensity.hh similarity index 95% rename from source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh rename to source/processes/hadronic/models/util/include/G4NuclearFermiDensity.hh index 5def109c45..7d9bbf051a 100644 --- a/source/processes/hadronic/models/generator/util/include/G4NuclearFermiDensity.hh +++ b/source/processes/hadronic/models/util/include/G4NuclearFermiDensity.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4NuclearFermiDensity.hh,v 1.8 2002/12/12 19:17:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4NuclearFermiDensity_h #define G4NuclearFermiDensity_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh b/source/processes/hadronic/models/util/include/G4NuclearShellModelDensity.hh similarity index 95% rename from source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh rename to source/processes/hadronic/models/util/include/G4NuclearShellModelDensity.hh index 32056d5578..d478e149db 100644 --- a/source/processes/hadronic/models/generator/util/include/G4NuclearShellModelDensity.hh +++ b/source/processes/hadronic/models/util/include/G4NuclearShellModelDensity.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4NuclearShellModelDensity.hh,v 1.7 2002/12/12 19:17:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4NuclearShellModelDensity_h #define G4NuclearShellModelDensity_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh b/source/processes/hadronic/models/util/include/G4Nucleon.hh similarity index 97% rename from source/processes/hadronic/models/generator/util/include/G4Nucleon.hh rename to source/processes/hadronic/models/util/include/G4Nucleon.hh index bb4dd57b5a..843d23fca8 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Nucleon.hh +++ b/source/processes/hadronic/models/util/include/G4Nucleon.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4Nucleon.hh,v 1.9 2003/06/16 17:09:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4Nucleon_h #define G4Nucleon_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4Parton.hh b/source/processes/hadronic/models/util/include/G4Parton.hh similarity index 97% rename from source/processes/hadronic/models/generator/util/include/G4Parton.hh rename to source/processes/hadronic/models/util/include/G4Parton.hh index 84e384ee9d..c0e257a10a 100644 --- a/source/processes/hadronic/models/generator/util/include/G4Parton.hh +++ b/source/processes/hadronic/models/util/include/G4Parton.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4Parton.hh,v 1.15 2003/06/16 17:09:38 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4Parton_h @@ -81,6 +79,7 @@ class G4Parton void Set4Momentum(const G4LorentzVector & aMomentum); void SetX(G4double anX) { theX = anX; } + G4double GetX() {return theX;} void SetColour(G4int aColour) {theColour = aColour;} G4int GetColour() {return theColour;} diff --git a/source/processes/hadronic/models/generator/util/include/G4PartonVector.hh b/source/processes/hadronic/models/util/include/G4PartonVector.hh similarity index 95% rename from source/processes/hadronic/models/generator/util/include/G4PartonVector.hh rename to source/processes/hadronic/models/util/include/G4PartonVector.hh index 8ed44f8dbe..c1757534df 100644 --- a/source/processes/hadronic/models/generator/util/include/G4PartonVector.hh +++ b/source/processes/hadronic/models/util/include/G4PartonVector.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PartonVector.hh,v 1.8 2003/06/16 17:09:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4PartonVector_h #define G4PartonVector_h 1 diff --git a/source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh b/source/processes/hadronic/models/util/include/G4SampleResonance.hh similarity index 96% rename from source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh rename to source/processes/hadronic/models/util/include/G4SampleResonance.hh index 55ee061983..db79e7a063 100644 --- a/source/processes/hadronic/models/generator/util/include/G4SampleResonance.hh +++ b/source/processes/hadronic/models/util/include/G4SampleResonance.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4SampleResonance.hh,v 1.6 2003/06/16 17:09:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4SampleResonance_h diff --git a/source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc b/source/processes/hadronic/models/util/src/G4ExcitedString.cc similarity index 98% rename from source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc rename to source/processes/hadronic/models/util/src/G4ExcitedString.cc index 7e36c3e982..5856029c11 100644 --- a/source/processes/hadronic/models/generator/util/src/G4ExcitedString.cc +++ b/source/processes/hadronic/models/util/src/G4ExcitedString.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ExcitedString.cc,v 1.8 2003/06/16 17:09:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ diff --git a/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc b/source/processes/hadronic/models/util/src/G4Fancy3DNucleus.cc similarity index 98% rename from source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc rename to source/processes/hadronic/models/util/src/G4Fancy3DNucleus.cc index 1fa1ce337e..d7d97088dd 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Fancy3DNucleus.cc +++ b/source/processes/hadronic/models/util/src/G4Fancy3DNucleus.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4Fancy3DNucleus.cc,v 1.28 2003/06/25 14:19:24 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class implementation file @@ -39,6 +37,7 @@ #include "Randomize.hh" #include "G4ios.hh" #include +#include "G4HadronicException.hh" G4Fancy3DNucleus::G4Fancy3DNucleus() : nucleondistance(0.8*fermi) @@ -466,7 +465,11 @@ G4bool G4Fancy3DNucleus::ReduceSum(G4ThreeVector * momentum, G4double *pFermiM) best=aNucleon; } } - if ( best < 0 ) G4Exception( "G4Fancy3DNucleus.cc: Logic error in ReduceSum()"); + if ( best < 0 ) + { + G4String text = "G4Fancy3DNucleus.cc: Logic error in ReduceSum()"; + throw G4HadronicException(__FILE__, __LINE__, text); + } momentum[testSums[best].index()]-=testSums[best].vector(); momentum[myA-1]=testSums[best].vector()-sum; diff --git a/source/processes/hadronic/models/generator/util/src/G4FermiMomentum.cc b/source/processes/hadronic/models/util/src/G4FermiMomentum.cc similarity index 93% rename from source/processes/hadronic/models/generator/util/src/G4FermiMomentum.cc rename to source/processes/hadronic/models/util/src/G4FermiMomentum.cc index 3223e590b6..09e5baf487 100644 --- a/source/processes/hadronic/models/generator/util/src/G4FermiMomentum.cc +++ b/source/processes/hadronic/models/util/src/G4FermiMomentum.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4FermiMomentum.cc,v 1.5 2002/12/12 19:17:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #include "G4FermiMomentum.hh" diff --git a/source/processes/hadronic/models/generator/util/src/G4Fragment.cc b/source/processes/hadronic/models/util/src/G4Fragment.cc similarity index 94% rename from source/processes/hadronic/models/generator/util/src/G4Fragment.cc rename to source/processes/hadronic/models/util/src/G4Fragment.cc index 15a02d6d41..c534ffbf42 100644 --- a/source/processes/hadronic/models/generator/util/src/G4Fragment.cc +++ b/source/processes/hadronic/models/util/src/G4Fragment.cc @@ -21,13 +21,13 @@ // ******************************************************************** // // -// $Id: G4Fragment.cc,v 1.19 2003/06/18 08:53:05 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Nuclear De-excitations // by V. Lara (May 1998) #include "G4Fragment.hh" +#include "G4HadronicException.hh" +#include "G4HadTmpUtil.hh" // Default constructor @@ -88,15 +88,16 @@ G4Fragment::G4Fragment(const G4int A, const G4int Z, const G4LorentzVector aMome { theExcitationEnergy = theMomentum.mag() - G4ParticleTable::GetParticleTable()->GetIonTable() - ->GetIonMass( static_cast(theZ), static_cast(theA) ); + ->GetIonMass( G4lrint(theZ), G4lrint(theA) ); if( theExcitationEnergy < 0.0 ) - if( theExcitationEnergy > -10.0 * eV || 0==static_cast(theA)) + if( theExcitationEnergy > -10.0 * eV || 0==G4lrint(theA)) theExcitationEnergy = 0.0; else { G4cout << "A, Z, momentum, theExcitationEnergy"<< A<<" "<GetPDGMass(); G4double U = value.m() - std::min(theMaxGroundStateMass, GetGroundStateMass()); if( U < 0.0 ) - if( U > -10.0 * eV || 0==static_cast(theA)) + if( U > -10.0 * eV || 0==G4lrint(theA)) U = 0.0; else { diff --git a/source/processes/hadronic/models/generator/util/src/G4GeneralPhaseSpaceDecay.cc b/source/processes/hadronic/models/util/src/G4GeneralPhaseSpaceDecay.cc similarity index 99% rename from source/processes/hadronic/models/generator/util/src/G4GeneralPhaseSpaceDecay.cc rename to source/processes/hadronic/models/util/src/G4GeneralPhaseSpaceDecay.cc index be48db3f0d..404af2022e 100644 --- a/source/processes/hadronic/models/generator/util/src/G4GeneralPhaseSpaceDecay.cc +++ b/source/processes/hadronic/models/util/src/G4GeneralPhaseSpaceDecay.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4GeneralPhaseSpaceDecay.cc,v 1.6 2002/12/12 19:17:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // $Id: G4GeneralSpaceDecay.cc,v 1.0 1998/05/21 // ---------------------------------------------------------------- diff --git a/source/processes/hadronic/models/generator/util/src/G4KineticTrack.cc b/source/processes/hadronic/models/util/src/G4KineticTrack.cc similarity index 95% rename from source/processes/hadronic/models/generator/util/src/G4KineticTrack.cc rename to source/processes/hadronic/models/util/src/G4KineticTrack.cc index 3e866274b0..93879c9497 100644 --- a/source/processes/hadronic/models/generator/util/src/G4KineticTrack.cc +++ b/source/processes/hadronic/models/util/src/G4KineticTrack.cc @@ -49,6 +49,8 @@ #include "G4KaonZeroLong.hh" #include "G4AntiKaonZero.hh" +#include "G4HadTmpUtil.hh" + // // Some static clobal for integration // @@ -72,7 +74,8 @@ G4KineticTrack::G4KineticTrack() : theActualWidth(0), theDaughterMass(0), theDaughterWidth(0), - theStateToNucleus(undefined) + theStateToNucleus(undefined), + theProjectilePotential(0) { //////////////// // DEBUG // @@ -111,6 +114,7 @@ G4KineticTrack::G4KineticTrack(const G4KineticTrack &right) : G4VKineticNucleon( theDaughterMass = 0; theDaughterWidth = 0; theStateToNucleus=right.theStateToNucleus; + theProjectilePotential=right.theProjectilePotential; //////////////// // DEBUG // @@ -139,7 +143,8 @@ G4KineticTrack::G4KineticTrack(G4ParticleDefinition* aDefinition, theFermi3Momentum(0), theTotal4Momentum(a4Momentum), theNucleon(0), - theStateToNucleus(undefined) + theStateToNucleus(undefined), + theProjectilePotential(0) { if(G4KaonZero::KaonZero() == theDefinition || G4AntiKaonZero::AntiKaonZero() == theDefinition) @@ -357,7 +362,7 @@ G4KineticTrack::G4KineticTrack(G4ParticleDefinition* aDefinition, } // else // { -// G4Exception ("can't handle more than one shortlived in 3 particle output channel"); +// throw G4HadronicException(__FILE__, __LINE__, ("can't handle more than one shortlived in 3 particle output channel"); // } } @@ -416,7 +421,8 @@ G4KineticTrack::G4KineticTrack(G4Nucleon * nucleon, theActualWidth(0), theDaughterMass(0), theDaughterWidth(0), - theStateToNucleus(undefined) + theStateToNucleus(undefined), + theProjectilePotential(0) { theFermi3Momentum.setE(0); Set4Momentum(a4Momentum); @@ -483,6 +489,8 @@ G4KineticTrackVector* G4KineticTrack::Decay() // cout << "DECAY Actual Width IND/ActualW " << index1 << " " << theActualWidth[index1] << G4endl; // cout << "DECAY Actual Mass " << theActualMass << G4endl; + G4int chargeBalance = G4lrint(theDefinition->GetPDGCharge() ); + G4int baryonBalance = G4lrint(theDefinition->GetBaryonNumber() ); G4double theTotalActualWidth = this->EvaluateTotalActualWidth(); if (theTotalActualWidth !=0) { @@ -565,12 +573,15 @@ G4KineticTrackVector* G4KineticTrack::Decay() G4LorentzVector momentum; G4KineticTrackVector* theDecayProductList = new G4KineticTrackVector; G4int dEntries = theDecayProducts->entries(); + G4ParticleDefinition * aProduct = 0; for (G4int i=dEntries; i > 0; i--) { - theDynamicParticle = theDecayProducts->PopProducts(); - theDefinition = theDynamicParticle->GetDefinition(); + theDynamicParticle = theDecayProducts->PopProducts(); + aProduct = theDynamicParticle->GetDefinition(); + chargeBalance -= G4lrint(aProduct->GetPDGCharge() ); + baryonBalance -= G4lrint(aProduct->GetBaryonNumber() ); momentum = toMoving*theDynamicParticle->Get4Momentum(); - theDecayProductList->push_back(new G4KineticTrack (theDefinition, + theDecayProductList->push_back(new G4KineticTrack (aProduct, theFormationTime, thePosition, momentum)); @@ -578,6 +589,11 @@ G4KineticTrackVector* G4KineticTrack::Decay() } delete theDecayProducts; delete [] theCumActualWidth; + if(getenv("DecayEnergyBalanceCheck")) + std::cout << "DEBUGGING energy balance D: " + < maxMass ) { - G4Exception("SampleResonanceMass: mass range negative (minMass>maxMass)"); + throw G4HadronicException(__FILE__, __LINE__, + "SampleResonanceMass: mass range negative (minMass>maxMass)"); } G4double returnMass; diff --git a/source/processes/hadronic/processes/GNUmakefile b/source/processes/hadronic/processes/GNUmakefile index 096a886e78..f6c58a49f3 100644 --- a/source/processes/hadronic/processes/GNUmakefile +++ b/source/processes/hadronic/processes/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:13:31 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 14:04:42 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic processes library. G.Folger 10-Dec-97 # -------------------------------------------------------------- @@ -18,6 +18,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/geometry/volumes/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/processes/hadronic/management/include \ + -I$(G4BASE)/processes/hadronic/models/management/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/processes/hadronic/cross_sections/include \ -I$(G4BASE)/particles/management/include \ diff --git a/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh index ef63e3cc33..ec767176a9 100644 --- a/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AlphaInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AlphaInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Alpha Inelastic Process // J.L. Chuma, TRIUMF, 21-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh index 8a4ab90191..a4d3628dfc 100644 --- a/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiLambdaInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiLambdaInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: AntiLambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh index 82e9758de8..298643d93d 100644 --- a/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiNeutronInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiNeutronInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: AntiNeutron Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh index 0b30e92e53..6dd0fe6d42 100644 --- a/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiOmegaMinusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiOmegaMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: AntiOmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh index cdc92b89e5..71aca0369c 100644 --- a/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiProtonInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiProtonInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: AntiProton Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh index 3f89964539..2e52bed661 100644 --- a/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiSigmaMinusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: AntiSigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh index 418f1e193b..df455efb31 100644 --- a/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiSigmaPlusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiSigmaPlusInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: AntiSigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh index b30a1e971a..3cb71c94a0 100644 --- a/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiXiMinusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiXiMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: AntiXiMinus Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh b/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh index b5ece2caca..3bb17db601 100644 --- a/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4AntiXiZeroInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiXiZeroInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: AntiXiZero Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh b/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh index 6e6c057929..5c92b5a7ae 100644 --- a/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4DeuteronInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4DeuteronInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Deuteron Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4HadronCaptureProcess.hh b/source/processes/hadronic/processes/include/G4HadronCaptureProcess.hh index 9f6986892f..ce4daa1d1f 100644 --- a/source/processes/hadronic/processes/include/G4HadronCaptureProcess.hh +++ b/source/processes/hadronic/processes/include/G4HadronCaptureProcess.hh @@ -44,17 +44,10 @@ #ifndef G4HadronCaptureProcess_h #define G4HadronCaptureProcess_h 1 -//#include #include "globals.hh" -//#include "Randomize.hh" #include "G4Element.hh" #include "G4ElementVector.hh" -//#include "G4ElementTable.hh" #include "G4VDiscreteProcess.hh" -//#include "G4PhysicsTable.hh" -//#include "G4PhysicsVector.hh" -//#include "G4LPhysicsFreeVector.hh" -//#include "G4HadronicCrossSections.hh" #include "G4HadronFissionProcess.hh" #include "G4Gamma.hh" #include "G4Step.hh" @@ -72,56 +65,18 @@ public: ~G4HadronCaptureProcess(); - inline - G4double GetMeanFreePath(const G4Track& aTrack, G4double , - G4ForceCondition* ) - { - return GetMeanFreePathBasic(aTrack.GetDynamicParticle(), - aTrack.GetMaterial()); - } - - G4double GetMeanFreePathBasic(const G4DynamicParticle* aParticle, - const G4Material* aMaterial); - G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) { SetDispatch(this); return G4HadronicProcess::GeneralPostStepDoIt(aTrack, aStep); } - void BuildThePhysicsTable(G4ParticleDefinition& aParticleType); - - void SetCrossSectionDataStore(G4CrossSectionDataStore* aDataStore) - { - theCrossSectionDataStore = aDataStore; - } - - G4CrossSectionDataStore* GetCrossSectionDataStore() - { - return theCrossSectionDataStore; - } - - void AddDataSet(G4VCrossSectionDataSet * aDataSet) - { - theCrossSectionDataStore->AddDataSet(aDataSet); - } - - // void setCrossSectionDataVerboseLevel(G4int value) - // { - // theCrossSectionData.SetVerboseLevel(value); - // } - G4bool IsApplicable(const G4ParticleDefinition& aParticleType); void DumpPhysicsTable(const G4ParticleDefinition& aParticleType); private: -// Note: DEC compiler won't accept "const G4ParticleDefinition" here -// because it instantiates the ClearAndDestroy method that deletes the -// pointers in the dictionary. - G4CrossSectionDataStore* theCrossSectionDataStore; - G4double GetMicroscopicCrossSection(const G4DynamicParticle* aParticle, const G4Element* anElement, G4double aTemp); diff --git a/source/processes/hadronic/processes/include/G4HadronElasticProcess.hh b/source/processes/hadronic/processes/include/G4HadronElasticProcess.hh index 2745bc9768..4b78a1d9f1 100644 --- a/source/processes/hadronic/processes/include/G4HadronElasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4HadronElasticProcess.hh @@ -50,20 +50,13 @@ #ifndef G4HadronElasticProcess_h #define G4HadronElasticProcess_h 1 -//#include #include "globals.hh" #include "G4HadronicProcess.hh" #include "G4CrossSectionDataStore.hh" #include "G4HadronElasticDataSet.hh" -//#include "Randomize.hh" #include "G4Element.hh" #include "G4ElementVector.hh" -//#include "G4ElementTable.hh" #include "G4VDiscreteProcess.hh" -//#include "G4PhysicsTable.hh" -//#include "G4PhysicsVector.hh" -//#include "G4LPhysicsFreeVector.hh" -//#include "G4HadronCrossSections.hh" #include "G4LightMedia.hh" #include "G4Step.hh" #include "G4TrackStatus.hh" @@ -78,15 +71,6 @@ public: ~G4HadronElasticProcess(); inline - G4double GetMeanFreePath(const G4Track& aTrack, G4double , - G4ForceCondition* ) - { - return GetMeanFreePathBasic(aTrack.GetDynamicParticle(), - aTrack.GetMaterial()); - } - - G4double GetMeanFreePathBasic(const G4DynamicParticle* aParticle, - const G4Material* aMaterial); G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) { @@ -94,41 +78,14 @@ public: return G4HadronicProcess::GeneralPostStepDoIt(aTrack, aStep); } - void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); - - void SetCrossSectionDataStore(G4CrossSectionDataStore* aDataStore) - { - theCrossSectionDataStore = aDataStore; - } - - G4CrossSectionDataStore* GetCrossSectionDataStore() - { - return theCrossSectionDataStore; - } - - void AddDataSet(G4VCrossSectionDataSet * aDataSet) - { - theCrossSectionDataStore->AddDataSet(aDataSet); - } - - // inline - // void setCrossSectionDataVerboseLevel(G4int value) - // { - // theCrossSectionData.SetVerboseLevel(value); - // } - G4bool IsApplicable(const G4ParticleDefinition& aParticleType); + void BuildPhysicsTable(const G4ParticleDefinition& aParticleType); + void DumpPhysicsTable(const G4ParticleDefinition& aParticleType); private: -// Note: DEC compiler won't accept "const G4ParticleDefinition" here -// because it instantiates the ClearAndDestroy method that deletes the -// pointers in the dictionary. - - G4CrossSectionDataStore* theCrossSectionDataStore; - G4double GetMicroscopicCrossSection(const G4DynamicParticle* aParticle, const G4Element* anElement, G4double aTemp); diff --git a/source/processes/hadronic/processes/include/G4HadronFissionProcess.hh b/source/processes/hadronic/processes/include/G4HadronFissionProcess.hh index 2c4c79da72..ca37e45365 100644 --- a/source/processes/hadronic/processes/include/G4HadronFissionProcess.hh +++ b/source/processes/hadronic/processes/include/G4HadronFissionProcess.hh @@ -74,59 +74,23 @@ public: ~G4HadronFissionProcess(); - inline - G4double GetMeanFreePath(const G4Track& aTrack, G4double , - G4ForceCondition* ) - { - return GetMeanFreePathBasic(aTrack.GetDynamicParticle(), - aTrack.GetMaterial()); - } - - G4double GetMeanFreePathBasic(const G4DynamicParticle* aParticle, - const G4Material* aMaterial); - G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) { SetDispatch(this); return G4HadronicProcess::GeneralPostStepDoIt(aTrack, aStep); } - G4bool IsApplicable(const G4ParticleDefinition&) + G4bool IsApplicable(const G4ParticleDefinition& ) { return true; } void BuildThePhysicsTable(G4ParticleDefinition& aParticleType); - void SetCrossSectionDataStore(G4CrossSectionDataStore* aDataStore) - { - theCrossSectionDataStore = aDataStore; - } - - G4CrossSectionDataStore* GetCrossSectionDataStore() - { - return theCrossSectionDataStore; - } - - void AddDataSet(G4VCrossSectionDataSet * aDataSet) - { - theCrossSectionDataStore->AddDataSet(aDataSet); - } - - // void setCrossSectionDataVerboseLevel(G4int value) - // { - // theCrossSectionData.SetVerboseLevel(value); - // } - void DumpPhysicsTable(const G4ParticleDefinition& aParticleType); private: -// Note: DEC compiler won't accept "const G4ParticleDefinition" here -// because it instantiates the ClearAndDestroy method that deletes the -// pointers in the dictionary. - G4CrossSectionDataStore* theCrossSectionDataStore; - G4double GetMicroscopicCrossSection(const G4DynamicParticle* aParticle, const G4Element* anElement, G4double aTemp); diff --git a/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh index 3b3dd869da..060ee060ba 100644 --- a/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonMinusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4KaonMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: KaonMinus Inelastic Process // J.L. Chuma, TRIUMF, 12-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh index ca6ffc4473..41d71be909 100644 --- a/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonPlusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4KaonPlusInelasticProcess.hh,v 1.6 2002/12/12 19:18:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: KaonPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh index 3b33bda774..880c93863f 100644 --- a/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonZeroLInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4KaonZeroLInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // G4 Process: KaonZeroL Inelastic Process // J.L. Chuma, TRIUMF, 11-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh b/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh index 5e2f5b615d..eb49ddcce9 100644 --- a/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4KaonZeroSInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4KaonZeroSInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // G4 Process: KaonZeroS InelasticProcess Process // J.L. Chuma, TRIUMF, 11-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh b/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh index 53a6aaa71a..9622c7e9cc 100644 --- a/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4LambdaInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4LambdaInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process : Lambda Inelastic Process // J.L. Chuma, TRIUMF, 18-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh b/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh index 5e16c3df0b..82da6ff5d2 100644 --- a/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4NeutronInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4NeutronInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Neutron Inelastic Process // original by H.P. Wellisch diff --git a/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh index 220ad2558a..e2efefa012 100644 --- a/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4OmegaMinusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4OmegaMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: OmegaMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh index 6bb3234f31..395f828e6a 100644 --- a/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4PionMinusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PionMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // PionMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh index 51b5101321..b4966c1b03 100644 --- a/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4PionPlusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PionPlusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // PionPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh b/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh index e1c53d6165..38aaca40a9 100644 --- a/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4ProtonInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ProtonInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Proton Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh index 69cb697753..79530ab3a8 100644 --- a/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4SigmaMinusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4SigmaMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // G4 Process: SigmaMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh index bc4350df8a..eed7b06127 100644 --- a/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4SigmaPlusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4SigmaPlusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // G4 Process: SigmaPlus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh b/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh index 826fb52a3a..860798240c 100644 --- a/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4TritonInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4TritonInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Triton Inelastic Process // J.L. Chuma, TRIUMF, 25-Feb-1997 diff --git a/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh b/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh index 83871ed254..9d6a2cda4a 100644 --- a/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4XiMinusInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4XiMinusInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // G4 Process: XiMinus Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh b/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh index bc18afa3fc..e41527ce19 100644 --- a/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh +++ b/source/processes/hadronic/processes/include/G4XiZeroInelasticProcess.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4XiZeroInelasticProcess.hh,v 1.6 2002/12/12 19:18:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // G4 Process: XiZero Inelastic Process // J.L. Chuma, TRIUMF, 05-Nov-1996 diff --git a/source/processes/hadronic/processes/src/G4HadronCaptureProcess.cc b/source/processes/hadronic/processes/src/G4HadronCaptureProcess.cc index f467f55b3e..903fbd9896 100644 --- a/source/processes/hadronic/processes/src/G4HadronCaptureProcess.cc +++ b/source/processes/hadronic/processes/src/G4HadronCaptureProcess.cc @@ -35,23 +35,15 @@ // 19-MAY-98 FWJ: variant G4HadronCapture process for // G4CrossSectionDataSet/DataStore class design. // 29-JUN-98 FWJ: default data set G4HadronCrossSections -// +// design re-done removing most of the original parts: JPW 2003. #include "G4HadronCaptureProcess.hh" -//unsigned -//G4HadronicCaptureProcessHashFun(const G4ParticleDefinition& aParticleDefinition) -//{ -// return aParticleDefinition.GetParticleName().hash(); -//} - G4HadronCaptureProcess::G4HadronCaptureProcess(const G4String& processName) : - G4HadronicProcess(processName), - // thePhysicsDictionary(G4HadronCaptureProcessHashFun) - theCrossSectionDataStore(new G4CrossSectionDataStore) + G4HadronicProcess(processName) { - theCrossSectionDataStore->AddDataSet(new G4HadronCaptureDataSet); + G4HadronicProcess::AddDataSet(new G4HadronCaptureDataSet); } G4HadronCaptureProcess::~G4HadronCaptureProcess() @@ -59,63 +51,19 @@ G4HadronCaptureProcess::~G4HadronCaptureProcess() } -void -G4HadronCaptureProcess:: -BuildThePhysicsTable(G4ParticleDefinition& aParticleType) -{ - if (!theCrossSectionDataStore) { - G4Exception("G4HadronCaptureProcess: no cross section data set"); - return; - } - - theCrossSectionDataStore->BuildPhysicsTable(aParticleType); -} - - -G4double -G4HadronCaptureProcess:: +G4double G4HadronCaptureProcess:: GetMicroscopicCrossSection(const G4DynamicParticle* aParticle, const G4Element* anElement, G4double aTemp) { // gives the microscopic cross section in GEANT4 internal units - - if (!theCrossSectionDataStore) { - G4Exception("G4HadronCaptureProcess: no cross section data Store"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { + G4Exception("G4HadronCaptureProcess", "007", FatalException, + "G4HadronCaptureProcess: no cross section data Store"); return DBL_MIN; } - return theCrossSectionDataStore->GetCrossSection(aParticle, anElement, aTemp); -} - - -G4double -G4HadronCaptureProcess:: -GetMeanFreePathBasic(const G4DynamicParticle* aParticle, - const G4Material* aMaterial) -{ - // returns the mean free path in GEANT4 internal units - - const G4ElementVector* theElementVector; - const G4double* theAtomicNumDensityVector; - - theElementVector = aMaterial->GetElementVector(); - theAtomicNumDensityVector = aMaterial->GetAtomicNumDensityVector(); - G4double aTemp = aMaterial->GetTemperature(); - - G4double sigma = 0.; - - for (unsigned int i = 0; i < aMaterial->GetNumberOfElements(); i++) { - sigma = sigma + theAtomicNumDensityVector[i] * - GetMicroscopicCrossSection(aParticle, (*theElementVector)[i], aTemp); - } - if (verboseLevel > 1) - G4cout << "G4HadronCaptureProcess::GetMeanFreePathBasic: sigma=" - << sigma << G4endl; - if (sigma > 0.) - return 1./sigma; - else - return DBL_MAX; -} - + return G4HadronicProcess::GetCrossSectionDataStore() + ->GetCrossSection(aParticle, anElement, aTemp); +} G4bool G4HadronCaptureProcess::IsApplicable(const G4ParticleDefinition& aParticleType) { @@ -123,14 +71,14 @@ G4HadronCaptureProcess::IsApplicable(const G4ParticleDefinition& aParticleType) } -void -G4HadronCaptureProcess:: +void G4HadronCaptureProcess:: DumpPhysicsTable(const G4ParticleDefinition& aParticleType) { - if (!theCrossSectionDataStore) { - G4Exception("G4HadronCaptureProcess: no cross section data set"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { + G4Exception("G4HadronCaptureProcess", "007", FatalException, + "G4HadronCaptureProcess: no cross section data set"); return; } - - theCrossSectionDataStore->DumpPhysicsTable(aParticleType); + G4HadronicProcess::GetCrossSectionDataStore() + ->DumpPhysicsTable(aParticleType); } diff --git a/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc b/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc index 20c5caded8..7cf273b423 100644 --- a/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc +++ b/source/processes/hadronic/processes/src/G4HadronElasticProcess.cc @@ -41,90 +41,45 @@ // 14-APR-98 FWJ: variant G4HadronElastic process for // G4CrossSectionDataSet/DataStore class design. // 29-JUN-98 FWJ: default data set G4HadronCrossSections -// +// design re-done JPW 2003. #include "G4HadronElasticProcess.hh" -// Can this be brought into the class? -//unsigned G4HadronElasticProcessHashFun(const G4ParticleDefinition& aParticleDefinition) { -// return aParticleDefinition.GetParticleName().hash(); -//} - G4HadronElasticProcess:: G4HadronElasticProcess(const G4String& processName) : - G4HadronicProcess(processName), - // thePhysicsDictionary(G4HadronElasticProcessHashFun), - theCrossSectionDataStore(new G4CrossSectionDataStore) + G4HadronicProcess(processName) { - theCrossSectionDataStore->AddDataSet(new G4HadronElasticDataSet); - aParticleChange.SetNumberOfSecondaries(1); + AddDataSet(new G4HadronElasticDataSet); } G4HadronElasticProcess::~G4HadronElasticProcess() { - aParticleChange.Clear(); } -void -G4HadronElasticProcess:: +void G4HadronElasticProcess:: BuildPhysicsTable(const G4ParticleDefinition& aParticleType) { - if (!theCrossSectionDataStore) { - G4Exception("G4HadronElasticProcess: no cross section data set"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { return; } - - theCrossSectionDataStore->BuildPhysicsTable(aParticleType); + G4HadronicProcess::GetCrossSectionDataStore()->BuildPhysicsTable(aParticleType); } -G4double -G4HadronElasticProcess::GetMicroscopicCrossSection( +G4double G4HadronElasticProcess:: +GetMicroscopicCrossSection( const G4DynamicParticle* aParticle, const G4Element* anElement, G4double aTemp) { // gives the microscopic cross section in GEANT4 internal units - - if (!theCrossSectionDataStore) { - G4Exception("G4HadronElasticProcess: no cross section data Store"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { + G4Exception("G4HadronElasticProcess", "007", FatalException, + "no cross section data Store"); return DBL_MIN; } - return theCrossSectionDataStore->GetCrossSection(aParticle, anElement, aTemp); -} - - -G4double -G4HadronElasticProcess:: -GetMeanFreePathBasic(const G4DynamicParticle* aParticle, - const G4Material* aMaterial) -{ - // Returns the mean free path in GEANT4 internal units. - // The cross section data is stored for individual elements, - // so the total macroscopic cross section is summed over the elements. - // (Cf. G4MuPairProduction which uses the material's effective Z to - // calculate directly the cross section. - - const G4ElementVector* theElementVector; - const G4double* theAtomicNumDensityVector; - - theElementVector = aMaterial->GetElementVector(); - theAtomicNumDensityVector = aMaterial->GetAtomicNumDensityVector(); - G4double aTemp = aMaterial->GetTemperature(); - - G4double sigma = 0.; - - for (unsigned int i = 0; i < aMaterial->GetNumberOfElements(); i++) { - sigma = sigma + theAtomicNumDensityVector[i] * - GetMicroscopicCrossSection(aParticle, (*theElementVector)[i], aTemp); - } - if (verboseLevel > 1) - G4cout << "G4HadronElasticProcess::GetMeanFreePathBasic: sigma=" - << sigma << G4endl; - if (sigma > 0.) - return 1./sigma; - else - return DBL_MAX; + return G4HadronicProcess::GetCrossSectionDataStore() + ->GetCrossSection(aParticle, anElement, aTemp); } @@ -167,10 +122,10 @@ void G4HadronElasticProcess:: DumpPhysicsTable(const G4ParticleDefinition& aParticleType) { - if (!theCrossSectionDataStore) { - G4Exception("G4HadronElasticProcess: no cross section data set"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { + G4Exception("G4HadronElasticProcess", "111", JustWarning, "G4HadronElasticProcess: no cross section data set"); return; } - theCrossSectionDataStore->DumpPhysicsTable(aParticleType); + G4HadronicProcess::GetCrossSectionDataStore()->DumpPhysicsTable(aParticleType); } diff --git a/source/processes/hadronic/processes/src/G4HadronFissionProcess.cc b/source/processes/hadronic/processes/src/G4HadronFissionProcess.cc index be150f42a7..6453fd9fad 100644 --- a/source/processes/hadronic/processes/src/G4HadronFissionProcess.cc +++ b/source/processes/hadronic/processes/src/G4HadronFissionProcess.cc @@ -48,11 +48,9 @@ G4HadronFissionProcess:: G4HadronFissionProcess(const G4String& processName) : - G4HadronicProcess(processName), - // thePhysicsDictionary(G4HadronicFissionProcessHashFun) - theCrossSectionDataStore(new G4CrossSectionDataStore) + G4HadronicProcess(processName) { - theCrossSectionDataStore->AddDataSet(new G4HadronFissionDataSet); + AddDataSet(new G4HadronFissionDataSet); } G4HadronFissionProcess::~G4HadronFissionProcess() @@ -63,13 +61,12 @@ G4HadronFissionProcess::~G4HadronFissionProcess() void G4HadronFissionProcess::BuildThePhysicsTable(G4ParticleDefinition& aParticleType) { - if (!theCrossSectionDataStore) { - G4Exception("G4HadronFissionProcess: no cross section data set"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { + G4Exception("G4HadronFissionProcess", "007", FatalException, + "no cross section data set"); return; } - - theCrossSectionDataStore->BuildPhysicsTable(aParticleType); - + G4HadronicProcess::GetCrossSectionDataStore()->BuildPhysicsTable(aParticleType); } @@ -78,53 +75,22 @@ G4HadronFissionProcess::GetMicroscopicCrossSection(const G4DynamicParticle* aPar const G4Element* anElement, G4double aTemp) { // gives the microscopic cross section in GEANT4 internal units - - if (!theCrossSectionDataStore) { - G4Exception("G4HadronFissionProcess: no cross section data Store"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { + G4Exception("G4HadronFissionProcess", "007", FatalException, + "no cross section data Store"); return DBL_MIN; } - return theCrossSectionDataStore->GetCrossSection(aParticle, anElement, aTemp); + return G4HadronicProcess::GetCrossSectionDataStore()->GetCrossSection(aParticle, anElement, aTemp); } - -G4double -G4HadronFissionProcess::GetMeanFreePathBasic(const G4DynamicParticle* aParticle, - const G4Material* aMaterial) -{ - // returns the mean free path in GEANT4 internal units - - const G4ElementVector* theElementVector; - const G4double* theAtomicNumDensityVector; - - theElementVector = aMaterial->GetElementVector(); - theAtomicNumDensityVector = aMaterial->GetAtomicNumDensityVector(); - G4double aTemp = aMaterial->GetTemperature(); - - G4double sigma = 0.; - - for (unsigned int i = 0; i < aMaterial->GetNumberOfElements(); i++) { - sigma = sigma + theAtomicNumDensityVector[i] * - GetMicroscopicCrossSection(aParticle, (*theElementVector)[i], aTemp); - } - if (verboseLevel > 1) - G4cout << "G4HadronFissionProcess::GetMeanFreePathBasic: sigma=" - << sigma << G4endl; - if (sigma > 0.) - return 1./sigma; - else - return DBL_MAX; -} - - void G4HadronFissionProcess:: DumpPhysicsTable(const G4ParticleDefinition& aParticleType) { - if (!theCrossSectionDataStore) { - G4Exception("G4HadronFissionProcess: no cross section data set"); + if (!G4HadronicProcess::GetCrossSectionDataStore()) { + G4Exception("G4HadronFissionProcess", "111", JustWarning, + "no cross section data set"); return; } - - theCrossSectionDataStore->DumpPhysicsTable(aParticleType); - + G4HadronicProcess::GetCrossSectionDataStore()->DumpPhysicsTable(aParticleType); } diff --git a/source/processes/hadronic/stopping/GNUmakefile b/source/processes/hadronic/stopping/GNUmakefile index 23c2de996e..97361f74d2 100644 --- a/source/processes/hadronic/stopping/GNUmakefile +++ b/source/processes/hadronic/stopping/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:13:37 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/08 14:53:20 hpw Exp $ # ----------------------------------------------------------- # GNUmakefile for hadronic stopping library. G.Folger 10-Dec-97 # -------------------------------------------------------------- @@ -25,8 +25,14 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/particles/hadrons/ions/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/hadronic/models/high_energy/include \ - -I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \ - -I$(G4BASE)/processes/hadronic/models/generator/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/util/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/fermi_breakup/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/photon_evaporation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/multifragmentation/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/handler/include \ + -I$(G4BASE)/processes/hadronic/models/de_excitation/management/include \ + -I$(G4BASE)/processes/hadronic/models/util/include \ -I$(G4BASE)/processes/hadronic/util/include \ -I$(G4BASE)/materials/include diff --git a/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh b/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh index ed58c2a060..dd3b633981 100644 --- a/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4AntiNeutronAnnihilationAtRest.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiNeutronAnnihilationAtRest.hh,v 1.7 2003/05/30 10:50:52 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh b/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh index 8d9d1d43bf..4e017f4d02 100644 --- a/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4AntiProtonAnnihilationAtRest.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiProtonAnnihilationAtRest.hh,v 1.7 2003/05/30 10:50:52 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh b/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh index aed28cc9e6..8edfbad4fd 100644 --- a/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh +++ b/source/processes/hadronic/stopping/include/G4DistributionGenerator.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4DistributionGenerator.hh,v 1.8 2003/06/16 17:11:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh index 3998cdb188..85230fac5e 100644 --- a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh +++ b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorption.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4KaonMinusAbsorption.hh,v 1.7 2003/05/30 10:50:52 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh index bb16ec13f3..004f82181c 100644 --- a/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4KaonMinusAbsorptionAtRest.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4KaonMinusAbsorptionAtRest.hh,v 1.9 2003/05/30 10:50:52 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1997 diff --git a/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh b/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh index ae08079e8b..3c3c4fd4c6 100644 --- a/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4MuonMinusCaptureAtRest.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4MuonMinusCaptureAtRest.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh b/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh index fc51e0d8dd..63c14cb52a 100644 --- a/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4NeutronCaptureAtRest.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4NeutronCaptureAtRest.hh,v 1.7 2003/05/30 10:50:52 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh b/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh index ab1f96aea5..7d04202417 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusAbsorptionAtRest.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusAbsorptionAtRest.hh,v 1.7 2003/05/30 10:50:52 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh index 954f09c940..3fde7e647b 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopAbsorption.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopAbsorption.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh index 0050a1f21d..150ec8a7ea 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopAl.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopAl.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh index ce61e01b16..5970012136 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopC.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopC.hh,v 1.7 2002/12/12 19:18:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh index 4d8a78b20a..49fb9e4623 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopCo.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopCo.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh index f4e1068f21..ca05af56ab 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopCu.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopCu.hh,v 1.8 2002/12/12 19:18:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh index 6df8cf8328..5a5211a7b1 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopLi.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopLi.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh index 2e831ec021..e0b68c17e3 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopN.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopN.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh index 7897bfe9fc..6aef35cdb9 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopO.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopO.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh index 668cf74fff..40c077a1d6 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopPb.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopPb.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh b/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh index 15393db3d9..d2d3eb44f0 100644 --- a/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh +++ b/source/processes/hadronic/stopping/include/G4PiMinusStopTa.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopTa.hh,v 1.8 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh b/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh index 25d34d3204..2fd349efb4 100644 --- a/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh +++ b/source/processes/hadronic/stopping/include/G4PionMinusAbsorptionAtRest.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PionMinusAbsorptionAtRest.hh,v 1.7 2003/05/30 10:50:52 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh b/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh index 1eecde23a0..5110690dd5 100644 --- a/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopDeexcitation.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StopDeexcitation.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh b/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh index 2354b929fc..2c9fc66791 100644 --- a/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh +++ b/source/processes/hadronic/stopping/include/G4StopDeexcitationAlgorithm.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StopDeexcitationAlgorithm.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh b/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh index 34d8526e8c..71adf8c5b2 100644 --- a/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopDummyDeexcitation.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StopDummyDeexcitation.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh b/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh index 7150ed0e7b..a376cb0d08 100644 --- a/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh +++ b/source/processes/hadronic/stopping/include/G4StopTheoDeexcitation.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StopTheoDeexcitation.hh,v 1.6 2002/12/12 19:18:37 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc b/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc index 599347a93d..f17d2b502f 100644 --- a/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4AntiNeutronAnnihilationAtRest.cc @@ -76,7 +76,12 @@ G4AntiNeutronAnnihilationAtRest::G4AntiNeutronAnnihilationAtRest(const G4String& // destructor -G4AntiNeutronAnnihilationAtRest::~G4AntiNeutronAnnihilationAtRest(){;} +G4AntiNeutronAnnihilationAtRest::~G4AntiNeutronAnnihilationAtRest() +{ + delete [] pv; + delete [] eve; + delete [] gkin; +} // methods............................................................................. diff --git a/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc b/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc index 464bc5df08..edcf2ecc2b 100644 --- a/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4AntiProtonAnnihilationAtRest.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4AntiProtonAnnihilationAtRest.cc,v 1.8 2003/06/16 17:11:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 @@ -79,7 +77,12 @@ G4AntiProtonAnnihilationAtRest::G4AntiProtonAnnihilationAtRest(const G4String& p // destructor -G4AntiProtonAnnihilationAtRest::~G4AntiProtonAnnihilationAtRest(){;} +G4AntiProtonAnnihilationAtRest::~G4AntiProtonAnnihilationAtRest() +{ + delete [] pv; + delete [] eve; + delete [] gkin; +} // methods............................................................................. diff --git a/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc b/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc index ea14f036d9..40b8d9d547 100644 --- a/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc +++ b/source/processes/hadronic/stopping/src/G4DistributionGenerator.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4DistributionGenerator.cc,v 1.10 2003/06/16 17:11:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc index 17b4a06a75..a54995d2ed 100644 --- a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc +++ b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorption.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4KaonMinusAbsorption.cc,v 1.8 2003/06/16 17:12:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 @@ -77,7 +75,12 @@ G4KaonMinusAbsorption::G4KaonMinusAbsorption(const G4String& processName) // destructor -G4KaonMinusAbsorption::~G4KaonMinusAbsorption(){;} +G4KaonMinusAbsorption::~G4KaonMinusAbsorption() +{ + delete [] pv; + delete [] eve; + delete [] gkin; +} // methods............................................................................. diff --git a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc index f02e34a7ab..c7fadec395 100644 --- a/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4KaonMinusAbsorptionAtRest.cc @@ -219,8 +219,10 @@ G4VParticleChange* G4KaonMinusAbsorptionAtRest::AtRestDoIt } if (energyDeposit < 0.) - G4Exception("G4KaonMinusAbsorptionAtRest::AtRestDoIt -- excitation energy < 0"); - + { + G4Exception("G4KaonMinusAbsorptionAtRest", "007", FatalException, + "AtRestDoIt -- excitation energy < 0"); + } delete nucleus; G4ReactionProductVector* fragmentationProducts = stopDeexcitation.DoBreakUp(newA,newZ,energyDeposit,pNucleus); diff --git a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc index f6a87f655f..4e4a12e843 100644 --- a/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4MuonMinusCaptureAtRest.cc @@ -3434,6 +3434,25 @@ void G4MuonMinusCaptureAtRest::DoMuCapture() 302, 303, 303, 304, 304 }; + //V.Ivanchenko + static G4double zeff[100] = { + 1.,1.98,2.95,3.89,4.8,5.72,6.61,7.49,8.32,9.12,9.95,10.69,11.48,12.22, + 12.91,13.64,14.24,14.89,15.53,16.15,16.75,17.38,18.04,18.49, + 19.06,19.59,20.1,20.66,21.12,21.61,22.02,22.43,22.84,23.24, + 23.65,24.06,24.47,24.85,25.23,25.61,25.99,26.37,26.69,27., + 27.32,27.63,27.95,28.2,28.42,28.64,28.79,29.03,29.27,29.51, + 29.75,29.99,30.2,30.36,30.53,30.69,30.85,31.01,31.18,31.34, + 31.48,31.62,31.76,31.9,32.05,32.19,32.33,32.47,32.61,32.76, + 32.94,33.11,33.29,33.46,33.64,33.81,34.21,34.18,34.,34.1, + 34.21,34.31,34.42,34.52,34.63,34.73,34.84,34.94,35.04,35.15, + 35.25,35.36,35.46,35.57,35.67,35.78 }; + + chargeTarget = G4int(targetCharge); + G4int idxx = chargeTarget-1; + if(idxx>99) idxx=99; + G4double q = zeff[idxx]; + zeff2 = q*q; + // ======= // === this routine interfaces to FLUKA routines to evaporate // === nucleons following muon capture @@ -3448,7 +3467,6 @@ void G4MuonMinusCaptureAtRest::DoMuCapture() txi = cfe * pols; tyi = sfe * pols; tzi = polc; - chargeTarget = G4int(targetCharge); // Choice of the mass number of the target nucleus: use the input rndm[0] = G4UniformRand(); rndm[1] = G4UniformRand(); diff --git a/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc b/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc index 742b6b2df4..7811642412 100644 --- a/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4NeutronCaptureAtRest.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4NeutronCaptureAtRest.cc,v 1.8 2003/06/16 17:12:02 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 @@ -70,7 +68,12 @@ G4NeutronCaptureAtRest::G4NeutronCaptureAtRest(const G4String& processName) // destructor -G4NeutronCaptureAtRest::~G4NeutronCaptureAtRest(){;} +G4NeutronCaptureAtRest::~G4NeutronCaptureAtRest() +{ + delete [] pv; + delete [] eve; + delete [] gkin; +} // methods............................................................................. diff --git a/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc b/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc index 4c914a6280..8abafcda4c 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusAbsorptionAtRest.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusAbsorptionAtRest.cc,v 1.12 2003/05/30 10:50:53 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 @@ -134,7 +132,11 @@ G4VParticleChange* G4PiMinusAbsorptionAtRest::AtRestDoIt(const G4Track& track, c G4double pionEnergy = stoppedHadron->GetTotalEnergy(); G4double excitation = pionEnergy - stopAbsorption.Energy(); - if (excitation < 0.) G4Exception("G4PiMinusAbsorptionAtRest::AtRestDoIt -- excitation energy < 0"); + if (excitation < 0.) + { + G4Exception("G4PiMinusAbsorptionAtRest", "007", FatalException, + "AtRestDoIt -- excitation energy < 0"); + } if (verboseLevel>0) { G4cout << " excitation " << excitation << G4endl; } G4StopDeexcitationAlgorithm* nucleusAlgorithm = LoadNucleusAlgorithm(); diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc index a67a835fb4..438deb34c9 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopAbsorption.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopAbsorption.cc,v 1.13 2003/06/16 17:12:03 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc index 457ab3ad3d..65983c897d 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopAl.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopAl.cc,v 1.9 2003/06/16 17:12:04 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc index 876e7dc0bd..d77ed52e9a 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopC.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopC.cc,v 1.9 2003/06/16 17:12:05 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc index 89da884864..9e1dfb7c6a 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopCo.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopCo.cc,v 1.9 2003/06/16 17:12:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc index 3a611da49b..2585fa776c 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopCu.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopCu.cc,v 1.9 2003/06/16 17:12:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc index a3098ca2e1..7073ba24e4 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopLi.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopLi.cc,v 1.9 2003/06/16 17:12:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc index 77c6538a42..c04ba6f9ed 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopMaterial.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopMaterial.cc,v 1.11 2003/06/16 17:12:10 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc index e6528e48d4..87ac47301f 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopN.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopN.cc,v 1.9 2003/06/16 17:12:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc index 814bbb5ab7..52e65aeb33 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopO.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopO.cc,v 1.9 2003/06/16 17:12:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc index e8b8b34a6c..fbdc4459ac 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopPb.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopPb.cc,v 1.9 2003/06/16 17:12:13 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc b/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc index 437fa52aaf..4657f9cc40 100644 --- a/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc +++ b/source/processes/hadronic/stopping/src/G4PiMinusStopTa.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PiMinusStopTa.cc,v 1.9 2003/06/16 17:12:14 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc b/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc index 8da3b21906..5710759a7b 100644 --- a/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc +++ b/source/processes/hadronic/stopping/src/G4PionMinusAbsorptionAtRest.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4PionMinusAbsorptionAtRest.cc,v 1.9 2003/06/16 17:12:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // -------------------------------------------------------------- // GEANT 4 class implementation file --- Copyright CERN 1998 @@ -72,7 +70,12 @@ G4PionMinusAbsorptionAtRest::G4PionMinusAbsorptionAtRest(const G4String& process // destructor -G4PionMinusAbsorptionAtRest::~G4PionMinusAbsorptionAtRest(){;} +G4PionMinusAbsorptionAtRest::~G4PionMinusAbsorptionAtRest() +{ + delete [] pv; + delete [] eve; + delete [] gkin; +} // methods............................................................................. diff --git a/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc b/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc index 1bb3bfc221..4c846e57e1 100644 --- a/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopDeexcitation.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StopDeexcitation.cc,v 1.9 2003/06/16 17:12:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc b/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc index aa01d07756..e6469267b4 100644 --- a/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopDummyDeexcitation.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StopDummyDeexcitation.cc,v 1.9 2003/05/30 10:50:53 hpw Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc b/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc index 48b5e84283..cb9a202f37 100644 --- a/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc +++ b/source/processes/hadronic/stopping/src/G4StopTheoDeexcitation.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StopTheoDeexcitation.cc,v 1.9 2002/12/12 19:18:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------------- // GEANT 4 class file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/util/include/G4DynamicParticleVector.hh b/source/processes/hadronic/util/include/G4DynamicParticleVector.hh index 8f2f737bd6..f30e535323 100644 --- a/source/processes/hadronic/util/include/G4DynamicParticleVector.hh +++ b/source/processes/hadronic/util/include/G4DynamicParticleVector.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4DynamicParticleVector.hh,v 1.10 2003/06/16 17:12:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // // History: first implementation, alternative to G4FastVector diff --git a/source/processes/hadronic/util/include/G4EffectiveCharge.hh b/source/processes/hadronic/util/include/G4EffectiveCharge.hh index 186d2ac6d7..d0ac6bc9a0 100644 --- a/source/processes/hadronic/util/include/G4EffectiveCharge.hh +++ b/source/processes/hadronic/util/include/G4EffectiveCharge.hh @@ -36,7 +36,7 @@ class G4EffectiveCharge inline G4double G4EffectiveCharge::GetCharge(const G4Material* material, G4double kineticEnergy, G4double particleMass, G4double ionCharge) { - // This is cut and paste from low_energy electromagnetic to avoid coupling. + // This is cut and paste with minor changes from low_energy electromagnetic to avoid coupling. // A design iteration is necessary for next time, to generate a process utility. // Original Author: V Ivanchenko. @@ -48,7 +48,7 @@ inline G4double G4EffectiveCharge::GetCharge(const G4Material* material, G4doubl // Fast ions or hadrons G4double reducedEnergy = kineticEnergy * proton_mass_c2/particleMass ; if( (reducedEnergy > ionCharge * 10.0 * MeV) || - (ionCharge < 1.5) ) return ionCharge*ionCharge ; + (ionCharge < 1.5) ) return ionCharge ; static G4double vFermi[92] = { 1.0309, 0.15976, 0.59782, 1.0781, 1.0486, 1.0, 1.058, 0.93942, 0.74562, 0.3424, @@ -131,7 +131,7 @@ inline G4double G4EffectiveCharge::GetCharge(const G4Material* material, G4doubl } G4double q = 7.6 - e ; q = 1.0 + ( 0.007 + 0.00005 * z ) * exp( -q*q ) ; - return 4.0 * q * q * (1.0 - exp(-x)) ; + return sqrt(4.0 * q * q * (1.0 - exp(-x))) ; // Heavy ion case } @@ -171,7 +171,7 @@ inline G4double G4EffectiveCharge::GetCharge(const G4Material* material, G4doubl G4double qeff = ionCharge * s * ( q + 0.5*(1.0-q) * log(1.0 + lambda*lambda) / (vF*vF) ) ; if( 1.0 > qeff ) qeff = 1.0 ; - return qeff*qeff ; + return sqrt(qeff) ; } } diff --git a/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh b/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh index 1e1ed60aef..f48c6147fc 100644 --- a/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh +++ b/source/processes/hadronic/util/include/G4GHEKinematicsVector.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4GHEKinematicsVector.hh,v 1.6 2003/06/16 17:12:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1998 diff --git a/source/processes/hadronic/util/include/G4HadFinalState.hh b/source/processes/hadronic/util/include/G4HadFinalState.hh new file mode 100644 index 0000000000..d0407c031a --- /dev/null +++ b/source/processes/hadronic/util/include/G4HadFinalState.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. * +// ******************************************************************** +// +#ifndef G4HadFinalState_hh +#define G4HadFinalState_hh + +#include "G4ThreeVector.hh" +#include "G4DynamicParticle.hh" +#include "globals.hh" +#include +#include "G4HadSecondary.hh" +#include "G4LorentzRotation.hh" + +enum G4HadFinalStateStatus{isAlive, stopAndKill, suspend}; + +class G4HadFinalState +{ + public: + G4HadFinalState(); + G4int GetNumberOfSecondaries(); + void SetEnergyChange(G4double anEnergy); + G4double GetEnergyChange(); + void SetMomentumChange(G4ThreeVector aV); + void SetMomentumChange(G4double x, G4double y, G4double z) ; + G4ThreeVector GetMomentumChange(); + void AddSecondary(G4DynamicParticle * aP); + void AddSecondary(G4HadSecondary * aP); + void SetStatusChange(G4HadFinalStateStatus aS); + G4HadFinalStateStatus GetStatusChange(); + void Clear(); + G4LorentzRotation & GetTrafoToLab(); + void SetTrafoToLab(G4LorentzRotation & aT); + void SetWeightChange(G4double aW); + G4double GetWeightChange(); + G4HadSecondary * GetSecondary(size_t i); + void SetLocalEnergyDeposit(G4double aE); + G4double GetLocalEnergyDeposit(); + void SecondariesAreStale(); + void ClearSecondaries(); + + private: + G4ThreeVector theDirection; + G4double theEnergy; + std::vector theSecs; + G4HadFinalStateStatus theStat; + G4LorentzRotation theT; + G4double theW; + G4double theEDep; + G4bool hasStaleSecondaries; +}; + +#endif diff --git a/source/processes/hadronic/util/include/G4HadProjectile.hh b/source/processes/hadronic/util/include/G4HadProjectile.hh new file mode 100644 index 0000000000..a923c46134 --- /dev/null +++ b/source/processes/hadronic/util/include/G4HadProjectile.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. * +// ******************************************************************** +// +#ifndef G4HadProjectile_hh +#define G4HadProjectile_hh + +#include "G4Material.hh" +class G4Track; +class G4DynamicParticle; +#include "G4LorentzVector.hh" +#include "G4LorentzRotation.hh" +class G4ParticleDefinition; + +class G4HadProjectile +{ + public: + G4HadProjectile(const G4Track &aT); + G4HadProjectile(const G4DynamicParticle &aT); + const G4Material * GetMaterial() const; + const G4ParticleDefinition * GetDefinition() const; + const G4LorentzVector & Get4Momentum() const {return theMom;} + G4LorentzRotation & GetTrafoToLab() {return toLabFrame;} + G4double GetKineticEnergy() const; + G4double GetTotalEnergy() const; + G4double GetTotalMomentum() const; + G4double GetGlobalTime() const {return theTime;} + + + private: + + const G4Material * theMat; + G4LorentzVector theOrgMom; + G4LorentzVector theMom; + const G4ParticleDefinition * theDef; + G4LorentzRotation toLabFrame; + G4double theTime; +}; + +#endif diff --git a/source/processes/hadronic/util/include/G4HadReentrentException.hh b/source/processes/hadronic/util/include/G4HadReentrentException.hh new file mode 100644 index 0000000000..5a55f3a1b6 --- /dev/null +++ b/source/processes/hadronic/util/include/G4HadReentrentException.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. * +// ******************************************************************** +// +#ifndef G4HadReentrentException_h +#define G4HadReentrentException_h + +#include +#include +#include "G4HadronicException.hh" + +class G4HadReentrentException : public G4HadronicException +{ + public: + G4HadReentrentException(G4String in, G4int at, G4String mess) + : G4HadronicException(in, at, mess) {} + virtual ~G4HadReentrentException() throw () {} + + void Report(std::ostream & aS) + { + aS<< "G4HadReentrentException:" < +#include "globals.hh" #include -#include "HEPREP/HepRepDefinition.h" -#include "HEPREP/HepRepWriter.h" - -#include "StreamerHepRepAttribute.h" - -/** - * - * @author M.Donszelmann - */ -class StreamerHepRepDefinition : public StreamerHepRepAttribute, public virtual HEPREP::HepRepDefinition { - - private: - HEPREP::HepRepWriter* streamer; - +// Waiting for permission to use namespaces in geant4..... +// namespace G4Had_Tmp_Util +// { +G4int G4lrint(double ad); +G4int G4lint(double ad); +G4int G4rint(double ad); +G4String G4inttostring(int ai); + template class G4SortHelperPtr + { public: - StreamerHepRepDefinition(HEPREP::HepRepWriter* streamer); - ~StreamerHepRepDefinition(); - - bool addAttDef(HEPREP::HepRepAttDef* hepRepAttDef); - bool addAttDef(std::string name, std::string desc, std::string type, std::string extra); - HEPREP::HepRepAttDef* getAttDef(std::string name); - std::vector* getAttDefsFromNode(); - HEPREP::HepRepAttDef* getAttDefFromNode(std::string lowerCaseName); + G4SortHelperPtr(A * aA){theA = aA;} + G4bool operator<(G4SortHelperPtr right) const + { return *theA < (*right); } + A & operator * () {return *theA;} + private: + A * theA; + }; +#include +template void G4PtrSort(std::vector * aList) +{ + std::vector > helper; + for(size_t i=0; isize(); i++) helper.push_back(aList->operator[](i)); + std::sort(helper.begin(), helper.end()); + for(size_t j=0; joperator[](j)=&(*helper[j]); }; +struct G4Delete { template void operator() (T * aT) {delete aT;} }; + +// } + #endif diff --git a/examples/advanced/composite_calorimeter/include/G4LEPProtonBuilder.hh b/source/processes/hadronic/util/include/G4HadronicException.hh similarity index 67% rename from examples/advanced/composite_calorimeter/include/G4LEPProtonBuilder.hh rename to source/processes/hadronic/util/include/G4HadronicException.hh index 6a34f5c41c..09ac07a06d 100644 --- a/examples/advanced/composite_calorimeter/include/G4LEPProtonBuilder.hh +++ b/source/processes/hadronic/util/include/G4HadronicException.hh @@ -20,46 +20,42 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4LEPProtonBuilder_h -#define G4LEPProtonBuilder_h 1 +#ifndef G4HadronicException_h +#define G4HadronicException_h +#include +#include #include "globals.hh" -#include "G4HadronElasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4VProtonBuilder.hh" - -#include "G4LElastic.hh" -#include "G4LEProtonInelastic.hh" - -class G4LEPProtonBuilder : public G4VProtonBuilder +class G4HadronicException : public std::exception { - public: - G4LEPProtonBuilder(); - virtual ~G4LEPProtonBuilder(); - - public: - virtual void Build(G4ProtonInelasticProcess & aP); - virtual void Build(G4HadronElasticProcess & aP); + public: + G4HadronicException(G4String in, G4int at, G4String mess) + { + theMessage = mess; + theName = in; + theLine = at; - void SetMinEnergy(G4double aM) + if(getenv("DumpCoreOnHadronicException") ) { - theMin=aM; - } - void SetMaxEnergy(G4double aM) - { - theMax=aM; + Report(G4cout); + G4Exception("G4HadronicException", "007", FatalException, + "Fatal problem in above location"); } + } + virtual ~G4HadronicException() throw () {} + + void Report(std::ostream & aS) + { + aS<< "In " < "< &vec, + G4FastVector &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, // Fermi motion & evap. effect included - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, @@ -69,7 +70,7 @@ G4ReactionProduct &leadingStrangeParticle ); void SuppressChargedPions( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, @@ -79,10 +80,10 @@ G4bool &targetHasChanged ); G4bool TwoCluster( // derived from TWOCLU - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, // Fermi motion & evap. effect included - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, @@ -92,7 +93,7 @@ G4ReactionProduct &leadingStrangeParticle ); void TwoBody( // derived from TWOB - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, const G4DynamicParticle *originalTarget, @@ -106,11 +107,11 @@ G4double GenerateNBodyEvent( // derived from PHASP const G4double totalEnergy, const G4bool constantCrossSection, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ); void ProduceStrangeParticlePairs( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, const G4ReactionProduct &modifiedOriginal, const G4DynamicParticle *originalTarget, @@ -122,7 +123,7 @@ void NuclearReaction( // derived from NUCREC G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, const G4Nucleus &aNucleus, const G4double theAtomicMass, const G4double *massVec ); @@ -133,18 +134,18 @@ const G4double numberofFinalStateNucleons, const G4ThreeVector &temp, const G4ReactionProduct &modifiedOriginal, // Fermi motion & evap. effect included - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, const G4Nucleus &targetNucleus, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ); void Defs1( const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ); void AddBlackTrackParticles( @@ -158,14 +159,14 @@ const G4ReactionProduct &modifiedOriginal, G4double spall, const G4Nucleus &aNucleus, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ); void MomentumCheck( const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ); G4double normal(); diff --git a/source/processes/hadronic/util/include/G4ReactionKinematics.hh b/source/processes/hadronic/util/include/G4ReactionKinematics.hh index c6da2c82ab..1ce597b93d 100644 --- a/source/processes/hadronic/util/include/G4ReactionKinematics.hh +++ b/source/processes/hadronic/util/include/G4ReactionKinematics.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ReactionKinematics.hh,v 1.5 2002/12/12 19:18:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // ------------------------------------------------------------ // GEANT 4 class header file --- Copyright CERN 1995 diff --git a/source/processes/hadronic/util/include/G4ReactionProduct.hh b/source/processes/hadronic/util/include/G4ReactionProduct.hh index f9e7bdf0c1..658e7b7459 100644 --- a/source/processes/hadronic/util/include/G4ReactionProduct.hh +++ b/source/processes/hadronic/util/include/G4ReactionProduct.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ReactionProduct.hh,v 1.7 2002/12/12 19:18:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // J.L. Chuma, TRIUMF, 31-Oct-1996 // last modified: 19-Dec-1996 @@ -36,6 +34,8 @@ #include "globals.hh" #include "G4DynamicParticle.hh" +#include "G4HadProjectile.hh" +#include "G4HadronicException.hh" class G4ReactionProduct { @@ -69,6 +69,8 @@ G4ReactionProduct &operator= ( const G4DynamicParticle &right ); + G4ReactionProduct &operator= ( const G4HadProjectile &right ); + inline G4bool operator== ( const G4ReactionProduct &right ) const { return ( this == (G4ReactionProduct*) &right ); } diff --git a/source/processes/hadronic/util/include/G4ReactionProductVector.hh b/source/processes/hadronic/util/include/G4ReactionProductVector.hh index 8edcef64c0..ca86edb191 100644 --- a/source/processes/hadronic/util/include/G4ReactionProductVector.hh +++ b/source/processes/hadronic/util/include/G4ReactionProductVector.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ReactionProductVector.hh,v 1.9 2003/06/16 17:12:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // // History: first implementation, alternative to G4FastVector diff --git a/source/processes/hadronic/util/include/G4StableIsotopes.hh b/source/processes/hadronic/util/include/G4StableIsotopes.hh index f417717886..683ec5a97d 100644 --- a/source/processes/hadronic/util/include/G4StableIsotopes.hh +++ b/source/processes/hadronic/util/include/G4StableIsotopes.hh @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StableIsotopes.hh,v 1.7 2002/12/12 19:18:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #ifndef G4StableIsotopes_h #define G4StableIsotopes_h 1 diff --git a/source/processes/hadronic/util/include/G4ping.hh b/source/processes/hadronic/util/include/G4ping.hh index b67054fdb8..08ea158e2e 100644 --- a/source/processes/hadronic/util/include/G4ping.hh +++ b/source/processes/hadronic/util/include/G4ping.hh @@ -60,9 +60,9 @@ theV.clear(); } private: - vector theS; - vector theD; - vector theV; + std::vector theS; + std::vector theD; + std::vector theV; G4String theName; }; diff --git a/source/processes/hadronic/util/src/G4HadFinalState.cc b/source/processes/hadronic/util/src/G4HadFinalState.cc new file mode 100644 index 0000000000..588fdc7b46 --- /dev/null +++ b/source/processes/hadronic/util/src/G4HadFinalState.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. * +// ******************************************************************** +// +#include "G4HadFinalState.hh" +#include "G4HadronicException.hh" + + G4HadFinalState::G4HadFinalState() + : theDirection(0,0,1), theEnergy(-1), theStat(isAlive), + theW(1.), theEDep(0.), hasStaleSecondaries(false){} + + G4int G4HadFinalState::GetNumberOfSecondaries() {return theSecs.size();} + + void G4HadFinalState::SetEnergyChange(G4double anEnergy) + { + theEnergy=anEnergy; + if(theEnergy<0) + { + throw G4HadronicException(__FILE__, __LINE__, "G4HadFinalState: fatal - negative energy"); + } + } + + G4double G4HadFinalState::GetEnergyChange() {return theEnergy;} + + void G4HadFinalState::SetMomentumChange(G4ThreeVector aV) {theDirection=aV;} + + void G4HadFinalState::SetMomentumChange(G4double x, G4double y, G4double z) + { + theDirection = G4ThreeVector(x,y,z); + if(fabs(theDirection.mag()-1)>0.001) + { + G4cout <<"We have negative theDirection.mag() "<theSecs.size()) + { + throw G4HadronicException(__FILE__, __LINE__, + "Trying direct access to secondary beyond end of list"); + } + return theSecs[i]; + } + + void G4HadFinalState::SetLocalEnergyDeposit(G4double aE) {theEDep=aE;} + + G4double G4HadFinalState::GetLocalEnergyDeposit() {return theEDep;} diff --git a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPNeutronBuilder.cc b/source/processes/hadronic/util/src/G4HadProjectile.cc similarity index 54% rename from examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPNeutronBuilder.cc rename to source/processes/hadronic/util/src/G4HadProjectile.cc index 087c73e805..a8c120b800 100644 --- a/examples/advanced/Tiara/source/tiaraPhysicsPackaging/src/G4LHEPNeutronBuilder.cc +++ b/source/processes/hadronic/util/src/G4HadProjectile.cc @@ -20,54 +20,60 @@ // * statement, and all its terms. * // ******************************************************************** // -#include "G4LHEPNeutronBuilder.hh" +#include "G4HadProjectile.hh" +#include "G4Track.hh" #include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4ProcessManager.hh" +#include "G4LorentzVector.hh" -G4LHEPNeutronBuilder:: -G4LHEPNeutronBuilder() +G4HadProjectile:: +G4HadProjectile(const G4Track &aT) +: theMat(aT.GetMaterial()), + theOrgMom(aT.GetDynamicParticle()->Get4Momentum()), + theDef(aT.GetDefinition()) { - theMin = 0; - theIMin = 25*GeV; + G4LorentzRotation toZ; + toZ.rotateZ(-theOrgMom.phi()); + toZ.rotateY(-theOrgMom.theta()); + theMom = toZ*theOrgMom; + toLabFrame = toZ.inverse(); + theTime = aT.GetGlobalTime(); + G4LorentzVector it(toLabFrame*theMom); } -G4LHEPNeutronBuilder:: -~G4LHEPNeutronBuilder() {} - -void G4LHEPNeutronBuilder:: -Build(G4HadronElasticProcess & aP) +G4HadProjectile:: +G4HadProjectile(const G4DynamicParticle &aT) +: theMat(NULL), + theOrgMom(aT.Get4Momentum()), + theDef(aT.GetDefinition()) { - theElasticModel = new G4LElastic(); - theElasticModel->SetMinEnergy(theMin); - aP.RegisterMe(theElasticModel); + G4LorentzRotation toZ; + toZ.rotateZ(-theOrgMom.phi()); + toZ.rotateY(-theOrgMom.theta()); + theMom = toZ*theOrgMom; + toLabFrame = toZ.inverse(); + theTime = 0; } -void G4LHEPNeutronBuilder:: -Build(G4HadronFissionProcess & aP) +G4double G4HadProjectile::GetTotalEnergy() const { - theNeutronFissionModel = new G4LFission(); - theNeutronFissionModel->SetMinEnergy(theMin); - aP.RegisterMe(theNeutronFissionModel); + return Get4Momentum().e(); } -void G4LHEPNeutronBuilder:: -Build(G4HadronCaptureProcess & aP) +G4double G4HadProjectile::GetTotalMomentum() const { - theNeutronCaptureModel = new G4LCapture(); - theNeutronCaptureModel->SetMinEnergy(theMin); - aP.RegisterMe(theNeutronCaptureModel); + return Get4Momentum().vect().mag(); } -void G4LHEPNeutronBuilder:: -Build(G4NeutronInelasticProcess & aP) +G4double G4HadProjectile:: +GetKineticEnergy() const { - theLENeutronModel = new G4LENeutronInelastic(); - theHENeutronModel = new G4HENeutronInelastic(); - theLENeutronModel->SetMaxEnergy(55*GeV); - theLENeutronModel->SetMinEnergy(theIMin); - aP.RegisterMe(theLENeutronModel); - aP.RegisterMe(theHENeutronModel); + G4double m=GetDefinition()->GetPDGMass(); + return sqrt(Get4Momentum().vect().mag2()+m*m)-m; } -// 2002 by J.P. Wellisch +const G4Material * G4HadProjectile:: +GetMaterial() const {return theMat;} + +const G4ParticleDefinition * G4HadProjectile:: +GetDefinition() const {return theDef;} + diff --git a/source/visualization/HepRep/include/FreeHepTypes.h b/source/processes/hadronic/util/src/G4HadSecondary.cc similarity index 80% rename from source/visualization/HepRep/include/FreeHepTypes.h rename to source/processes/hadronic/util/src/G4HadSecondary.cc index 7b295b43b4..513df6a6e6 100644 --- a/source/visualization/HepRep/include/FreeHepTypes.h +++ b/source/processes/hadronic/util/src/G4HadSecondary.cc @@ -20,13 +20,15 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef FREEHEPTYPES_H -#define FREEHEPTYPES_H - -#ifdef WIN32 -// Disable warning C4786: identifier was truncated to '255' characters in the debug information - #pragma warning ( disable : 4786 ) -#endif - -#endif +#include "G4HadSecondary.hh" +#include "G4HadronicException.hh" +G4HadSecondary::G4HadSecondary(G4DynamicParticle * aT, G4double aWeight) : + theP(aT), theWeight(aWeight), theTime(-1) +{ + if(aT->GetKineticEnergy()<0) + { + throw G4HadronicException(__FILE__, __LINE__, + "ATTEMPTING TO CREATE A SECONDARY WITH NEGATIVE KINETIC ENERGY."); + } +} diff --git a/source/processes/hadronic/util/src/G4HadTmpUtil.cc b/source/processes/hadronic/util/src/G4HadTmpUtil.cc new file mode 100644 index 0000000000..e8d22b9c7f --- /dev/null +++ b/source/processes/hadronic/util/src/G4HadTmpUtil.cc @@ -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. * +// ******************************************************************** +// +#include "G4HadTmpUtil.hh" +#include + +G4int G4lrint(double ad) + { + return (ad>0) ? static_cast(ad+.5) : static_cast(ad-.5); + } + +G4int G4lint(double ad) + { + return (ad>0) ? static_cast(ad) : static_cast(ad-1.); + } + +G4int G4rint(double ad) + { + return (ad>0) ? static_cast(ad+1) : static_cast(ad); + } + +G4String G4inttostring(int ai) +{ + char the[100] = {""}; + std::ostrstream ost(the, 100, std::ios::out); + ost << ai; + G4String result(the); + return result; +} diff --git a/source/processes/hadronic/util/src/G4LightMedia.cc b/source/processes/hadronic/util/src/G4LightMedia.cc index 80c14ebf5e..0ae317c405 100644 --- a/source/processes/hadronic/util/src/G4LightMedia.cc +++ b/source/processes/hadronic/util/src/G4LightMedia.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4LightMedia.cc,v 1.8 2003/06/16 17:12:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // Hadronic Process: Light Media Charge and/or Strangeness Exchange // J.L. Chuma, TRIUMF, 21-Feb-1997 @@ -33,7 +31,7 @@ G4DynamicParticle * G4LightMedia::PionPlusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus & targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -63,15 +61,15 @@ G4DynamicParticle * G4LightMedia::PionMinusExchange( - const G4DynamicParticle* , - const G4Nucleus& ) + const G4HadProjectile *, + const G4Nucleus& ) { return (G4DynamicParticle*)NULL; } G4DynamicParticle * G4LightMedia::KaonPlusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -105,7 +103,7 @@ G4DynamicParticle * G4LightMedia::KaonZeroShortExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aProton = G4Proton::Proton(); @@ -143,8 +141,8 @@ G4DynamicParticle * G4LightMedia::KaonZeroLongExchange( - const G4DynamicParticle* , - const G4Nucleus& ) + const G4HadProjectile *, + const G4Nucleus& ) { G4ParticleDefinition* aKaonZS = G4KaonZeroShort::KaonZeroShort(); @@ -158,15 +156,15 @@ G4DynamicParticle * G4LightMedia::KaonMinusExchange( - const G4DynamicParticle* , - const G4Nucleus& ) + const G4HadProjectile *, + const G4Nucleus& ) { return (G4DynamicParticle*)NULL; } G4DynamicParticle * G4LightMedia::ProtonExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -192,7 +190,7 @@ G4DynamicParticle * G4LightMedia::AntiProtonExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aProton = G4Proton::Proton(); @@ -204,9 +202,7 @@ if( targetParticle->GetDefinition() == aProton ) { const G4double cech[] = {0.50,0.45,0.40,0.35,0.30,0.25,0.06,0.04,0.005,0.}; - G4int iplab = G4int( incidentParticle->GetTotalMomentum()/GeV*10.0 ); - if( iplab > 9 )iplab = G4int( incidentParticle->GetTotalMomentum()/GeV ) + 9; - if( iplab > 19 )iplab = 19; + G4int iplab = G4int( std::min( 9.0, incidentParticle->GetTotalMomentum()/GeV*10.0 ) ); if( G4UniformRand() <= cech[iplab]/pow(atomicNumber,0.75) ) { G4DynamicParticle* resultant = new G4DynamicParticle; resultant->SetDefinition( anAntiNeutron ); @@ -221,7 +217,7 @@ G4DynamicParticle * G4LightMedia::NeutronExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aProton = G4Proton::Proton(); @@ -247,7 +243,7 @@ G4DynamicParticle * G4LightMedia::AntiNeutronExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -274,7 +270,7 @@ G4DynamicParticle * G4LightMedia::LambdaExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -352,7 +348,7 @@ G4DynamicParticle * G4LightMedia::AntiLambdaExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -432,7 +428,7 @@ G4DynamicParticle * G4LightMedia::SigmaPlusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -494,7 +490,7 @@ G4DynamicParticle * G4LightMedia::SigmaMinusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -556,7 +552,7 @@ G4DynamicParticle * G4LightMedia::AntiSigmaPlusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -615,7 +611,7 @@ G4DynamicParticle * G4LightMedia::AntiSigmaMinusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -675,7 +671,7 @@ G4DynamicParticle * G4LightMedia::XiZeroExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -760,7 +756,7 @@ G4DynamicParticle * G4LightMedia::XiMinusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -844,7 +840,7 @@ G4DynamicParticle * G4LightMedia::AntiXiZeroExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { // NOTE: The FORTRAN version of the cascade, CASAXO, simply called the @@ -933,7 +929,7 @@ G4DynamicParticle * G4LightMedia::AntiXiMinusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { // NOTE: The FORTRAN version of the cascade, CASAXM, simply called the @@ -1021,7 +1017,7 @@ G4DynamicParticle * G4LightMedia::OmegaMinusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { G4ParticleDefinition* aNeutron = G4Neutron::Neutron(); @@ -1118,7 +1114,7 @@ G4DynamicParticle * G4LightMedia::AntiOmegaMinusExchange( - const G4DynamicParticle* incidentParticle, + const G4HadProjectile *incidentParticle, const G4Nucleus& targetNucleus ) { // NOTE: The FORTRAN version of the cascade, CASAOM, simply called the diff --git a/source/processes/hadronic/util/src/G4Nucleus.cc b/source/processes/hadronic/util/src/G4Nucleus.cc index e08c32448f..de485fb203 100644 --- a/source/processes/hadronic/util/src/G4Nucleus.cc +++ b/source/processes/hadronic/util/src/G4Nucleus.cc @@ -37,6 +37,7 @@ #include "G4Nucleus.hh" #include "Randomize.hh" +#include "G4HadronicException.hh" G4Nucleus::G4Nucleus() { @@ -146,7 +147,10 @@ G4ReactionProduct G4Nucleus::GetThermalNucleus(G4double targetMass, G4double tem G4int myZ = G4int(Z + 0.5); G4int myA = G4int(A + 0.5); if( myA<1 || myZ<0 || myZ>myA ) - G4Exception("G4Nucleus::SetParameters called with non-physical parameters"); + { + throw G4HadronicException(__FILE__, __LINE__, + "G4Nucleus::SetParameters called with non-physical parameters"); + } aEff = A; // atomic weight zEff = Z; // atomic number } diff --git a/source/processes/hadronic/util/src/G4ReactionDynamics.cc b/source/processes/hadronic/util/src/G4ReactionDynamics.cc index 2d457e4c1d..fe55359869 100644 --- a/source/processes/hadronic/util/src/G4ReactionDynamics.cc +++ b/source/processes/hadronic/util/src/G4ReactionDynamics.cc @@ -53,6 +53,8 @@ #include "G4AntiNeutron.hh" #include "Randomize.hh" #include +#include "G4HadReentrentException.hh" + // #include "DumpFrame.hh" /* G4double GetQValue(G4ReactionProduct * aSec) @@ -94,10 +96,10 @@ */ G4bool G4ReactionDynamics::GenerateXandPt( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, // Fermi motion & evap. effects included - const G4DynamicParticle *originalIncident, // the original incident particle + const G4HadProjectile *originalIncident, // the original incident particle G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, @@ -442,7 +444,10 @@ vec[i]->GetDefinition() == G4PionPlus::PionPlus() || vec[i]->GetDefinition() == G4PionZero::PionZero() ) { - G4Exception("G4ReactionDynamics::GenerateXandPt : a pion has been counted as a backward nucleon"); + for(G4int i=0; iSetSide( -3 ); ++backwardNucleonCount; @@ -987,7 +992,7 @@ else pseudoParticle[6].SetMomentum( pseudoParticle[6].GetMomentum() * (-pp/pp1) ); - G4FastVector tempV; // tempV contains the backward nucleons + G4FastVector tempV; // tempV contains the backward nucleons tempV.Initialize( backwardNucleonCount ); G4int tempLen = 0; if( targetParticle.GetSide() == -3 )tempV.SetElement( tempLen++, &targetParticle ); @@ -1206,7 +1211,7 @@ tempR[0] = currentParticle; tempR[1] = targetParticle; for( i=0; i tempV; + G4FastVector tempV; tempV.Initialize( vecLen+2 ); G4int tempLen = 0; for( i=0; i &vec, + G4FastVector &vec, G4int &vecLen, const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, @@ -1428,10 +1433,10 @@ } G4bool G4ReactionDynamics::TwoCluster( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, // Fermi motion & evap. effects included - const G4DynamicParticle *originalIncident, // the original incident particle + const G4HadProjectile *originalIncident, // the original incident particle G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, const G4Nucleus &targetNucleus, @@ -1474,7 +1479,13 @@ currentParticle = *vec[0]; targetParticle = *vec[1]; for( i=0; i<(vecLen-2); ++i )*vec[i] = *vec[i+2]; - if(vecLen<2) G4Exception("G4ReactionDynamics::TwoCluster: Negative number of particles"); + if(vecLen<2) + { + for(G4int i=0; i DumpFrames::DumpFrame(vec, vecLen); if( forwardCount > 1 ) // tempV will contain the forward particles { - G4FastVector tempV; + G4FastVector tempV; tempV.Initialize( forwardCount ); G4bool constantCrossSection = true; G4int tempLen = 0; @@ -1887,7 +1898,7 @@ // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); if( backwardCount > 1 ) // tempV will contain the backward particles, { // but not those created from the intranuclear cascade - G4FastVector tempV; + G4FastVector tempV; tempV.Initialize( backwardCount ); G4bool constantCrossSection = true; G4int tempLen = 0; @@ -2091,7 +2102,7 @@ tempR[1] = targetParticle; for( i=0; i tempV; + G4FastVector tempV; tempV.Initialize( vecLen+2 ); G4bool constantCrossSection = true; G4int tempLen = 0; @@ -2243,7 +2254,7 @@ } void G4ReactionDynamics::TwoBody( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, G4ReactionProduct &modifiedOriginal, const G4DynamicParticle */*originalTarget*/, @@ -2326,7 +2337,11 @@ pf = pf*pf - 4*cmEnergy*cmEnergy*targetMass*targetMass; if( pf < 0.001 ) - G4Exception("G4ReactionDynamics::TwoBody: pf is too small "); + { + for(G4int i=0; i &vec, + G4FastVector &vec, G4int &vecLen ) { // // DEBUGGING --> DumpFrames::DumpFrame(vec, vecLen); @@ -2780,7 +2795,7 @@ const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ) { const G4double pjx = modifiedOriginal.GetMomentum().x()/MeV; @@ -2837,11 +2852,11 @@ const G4double numberofFinalStateNucleons, const G4ThreeVector &temp, const G4ReactionProduct &modifiedOriginal, // Fermi motion & evap. effect included - const G4DynamicParticle *originalIncident, // original incident particle + const G4HadProjectile *originalIncident, // original incident particle const G4Nucleus &targetNucleus, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ) { // derived from original FORTRAN code in GENXPT and TWOCLU by H. Fesefeldt @@ -3113,7 +3128,7 @@ const G4ReactionProduct &modifiedOriginal, G4double spall, const G4Nucleus &targetNucleus, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ) { // derived from original FORTRAN code in GENXPT and TWOCLU by H. Fesefeldt @@ -3259,7 +3274,7 @@ const G4ReactionProduct &modifiedOriginal, G4ReactionProduct ¤tParticle, G4ReactionProduct &targetParticle, - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen ) { const G4double pOriginal = modifiedOriginal.GetTotalMomentum()/MeV; @@ -3296,7 +3311,7 @@ } void G4ReactionDynamics::ProduceStrangeParticlePairs( - G4FastVector &vec, + G4FastVector &vec, G4int &vecLen, const G4ReactionProduct &modifiedOriginal, const G4DynamicParticle *originalTarget, @@ -3689,7 +3704,7 @@ G4ReactionDynamics::NuclearReaction( G4FastVector &vec, G4int &vecLen, - const G4DynamicParticle *originalIncident, + const G4HadProjectile *originalIncident, const G4Nucleus &targetNucleus, const G4double theAtomicMass, const G4double *mass ) @@ -3779,8 +3794,10 @@ } } if( index == 9 ) // loop continued to the end - G4Exception("G4ReactionDynamics::NuclearReaction: inelastic reaction kinematically not possible"); - + { + throw G4HadronicException(__FILE__, __LINE__, + "G4ReactionDynamics::NuclearReaction: inelastic reaction kinematically not possible"); + } G4double ke = currentParticle.GetKineticEnergy()/GeV; G4int nt = 2; if( (index>=6) || (G4UniformRand() tempV; + G4FastVector tempV; tempV.Initialize( nt ); G4int tempLen = 0; tempV.SetElement( tempLen++, v[0] ); diff --git a/source/processes/hadronic/util/src/G4ReactionKinematics.cc b/source/processes/hadronic/util/src/G4ReactionKinematics.cc index 3502bf4452..8492d71a39 100644 --- a/source/processes/hadronic/util/src/G4ReactionKinematics.cc +++ b/source/processes/hadronic/util/src/G4ReactionKinematics.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ReactionKinematics.cc,v 1.6 2002/12/12 19:18:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // CERN Geneva Switzerland // diff --git a/source/processes/hadronic/util/src/G4ReactionProduct.cc b/source/processes/hadronic/util/src/G4ReactionProduct.cc index 5d37dd921c..364461542a 100644 --- a/source/processes/hadronic/util/src/G4ReactionProduct.cc +++ b/source/processes/hadronic/util/src/G4ReactionProduct.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4ReactionProduct.cc,v 1.6 2002/12/12 19:18:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // // J.L. Chuma, TRIUMF, 31-Oct-1996 // last modified: 19-Dec-1996 @@ -118,6 +116,24 @@ return *this; } + G4ReactionProduct &G4ReactionProduct::operator=( + const G4HadProjectile &right ) + { + theParticleDefinition = const_cast(right.GetDefinition()); + SetPositionInNucleus( 0.0, 0.0, 0.0 ); + formationTime = 0.0; + hasInitialStateParton = false; + momentum = right.Get4Momentum().vect(); + mass = right.GetDefinition()->GetPDGMass(); + totalEnergy = right.Get4Momentum().e(); + kineticEnergy = right.GetKineticEnergy(); + (right.GetDefinition()->GetPDGEncoding()<0) ? timeOfFlight=-1.0 : timeOfFlight=1.0; + side = 0; + NewlyAdded = false; + MayBeKilled = true; + return *this; + } + void G4ReactionProduct::SetDefinitionAndUpdateE( G4ParticleDefinition *aParticleDefinition ) { diff --git a/source/processes/hadronic/util/src/G4StableIsotopes.cc b/source/processes/hadronic/util/src/G4StableIsotopes.cc index d91011fca5..d4f0654e47 100644 --- a/source/processes/hadronic/util/src/G4StableIsotopes.cc +++ b/source/processes/hadronic/util/src/G4StableIsotopes.cc @@ -21,8 +21,6 @@ // ******************************************************************** // // -// $Id: G4StableIsotopes.cc,v 1.5 2002/12/12 19:18:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ // #include "G4StableIsotopes.hh" diff --git a/source/processes/management/History b/source/processes/management/History index 96ccf60541..47c04c6e46 100644 --- a/source/processes/management/History +++ b/source/processes/management/History @@ -1,4 +1,4 @@ -$Id: History,v 1.29 2003/04/01 16:44:15 gcosmo Exp $ +$Id: History,v 1.30 2003/11/03 03:27:27 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,9 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +- Nov.03, 2003 H.Kurashige (procman-V05-02-00) +- Use G4ExceptionSeverity for all G4Exception + - Apr.01, 2003 G.Cosmo (procman-V05-00-01) - Cleared few trivial strict pedantic warnings diff --git a/source/processes/management/include/G4IVContinuousDiscreteProcess.hh b/source/processes/management/include/G4IVContinuousDiscreteProcess.hh index ff8e9c9a46..4a78d54c2d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4IVRestDiscreteProcess.hh b/source/processes/management/include/G4IVRestDiscreteProcess.hh index d33a5d8f1f..8c9c8c9c04 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ParticleTypes.hh b/source/processes/management/include/G4ParticleTypes.hh index 75077cae4a..f70b41b531 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcTblElement.hh b/source/processes/management/include/G4ProcTblElement.hh index a942d2d2c6..6e164c375a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcTblElement.icc b/source/processes/management/include/G4ProcTblElement.icc index 2bcc61c08e..6f969b449c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessAttribute.hh b/source/processes/management/include/G4ProcessAttribute.hh index 8b7e53371a..31d4748df7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessManager.hh b/source/processes/management/include/G4ProcessManager.hh index c034050ae7..e90fab75df 100644 --- a/source/processes/management/include/G4ProcessManager.hh +++ b/source/processes/management/include/G4ProcessManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManager.hh,v 1.9 2003/06/16 17:12:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessManager.icc b/source/processes/management/include/G4ProcessManager.icc index 28b8d74eaf..1f623ab8c9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/processes/management/include/G4ProcessManagerMessenger.hh b/source/processes/management/include/G4ProcessManagerMessenger.hh index 1c61f73604..772114d10a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessTable.hh b/source/processes/management/include/G4ProcessTable.hh index cd87a0564b..5547ee432c 100644 --- a/source/processes/management/include/G4ProcessTable.hh +++ b/source/processes/management/include/G4ProcessTable.hh @@ -23,7 +23,7 @@ // // $Id: G4ProcessTable.hh,v 1.8 2003/06/16 17:12:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessTable.icc b/source/processes/management/include/G4ProcessTable.icc index 2263fc2db7..50ac85b713 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 2c81888eb4..7a079650ab 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessType.hh b/source/processes/management/include/G4ProcessType.hh index 6bf3793a3f..5bf578e778 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/include/G4ProcessVector.hh b/source/processes/management/include/G4ProcessVector.hh index 1f0f0ed1f5..933d7c5da1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4ProcessVector.icc b/source/processes/management/include/G4ProcessVector.icc index 5e4de4d631..f558c7dcea 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 a278e49df8..17f1501922 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VContinuousProcess.hh b/source/processes/management/include/G4VContinuousProcess.hh index 123fd51e9e..78b795c4e8 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VDiscreteProcess.hh b/source/processes/management/include/G4VDiscreteProcess.hh index 64e189ab1b..a650ff3d96 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VProcess.hh b/source/processes/management/include/G4VProcess.hh index 9d1ad57644..721a39d28d 100644 --- a/source/processes/management/include/G4VProcess.hh +++ b/source/processes/management/include/G4VProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4VProcess.hh,v 1.14 2003/04/01 16:43:50 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh b/source/processes/management/include/G4VRestContinuousDiscreteProcess.hh index 75b6b79221..45946ba100 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestContinuousProcess.hh b/source/processes/management/include/G4VRestContinuousProcess.hh index 53b92a51b4..edb80b0057 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestDiscreteProcess.hh b/source/processes/management/include/G4VRestDiscreteProcess.hh index f76eed272f..bdf7ea30f6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4VRestProcess.hh b/source/processes/management/include/G4VRestProcess.hh index 5bc5b491b3..f1edbd9be9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/include/G4WrapperProcess.hh b/source/processes/management/include/G4WrapperProcess.hh index 1cf667ec68..90f7c91945 100644 --- a/source/processes/management/include/G4WrapperProcess.hh +++ b/source/processes/management/include/G4WrapperProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4WrapperProcess.hh,v 1.1 2001/11/07 11:53:12 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4WrapperProcess.hh,v 1.2 2003/11/03 03:27:27 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -325,7 +325,8 @@ inline inline G4WrapperProcess & G4WrapperProcess::operator=(const G4WrapperProcess &) { - G4Exception("G4WrapperProcess::assignment operator is called"); + G4Exception("G4WrapperProcess::operator=","Illegal operation", + JustWarning,"Assignment operator is called"); return *this; } diff --git a/source/processes/management/src/G4IVContinuousDiscreteProcess.cc b/source/processes/management/src/G4IVContinuousDiscreteProcess.cc index 511261af59..a4d30bdaeb 100644 --- a/source/processes/management/src/G4IVContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4IVContinuousDiscreteProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IVContinuousDiscreteProcess.cc,v 1.7 2003/04/01 16:43:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4IVContinuousDiscreteProcess.cc,v 1.8 2003/11/03 03:27:27 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: // -------------------------------------------------------------- @@ -38,7 +38,8 @@ G4IVContinuousDiscreteProcess::G4IVContinuousDiscreteProcess() :G4VProcess("No Name Discrete Process"), BIGSTEP(1.e10) { - G4Exception("G4IVContinuousDiscreteProcess:: default constructor is called"); + G4Exception("G4IVContinuousDiscreteProcess::G4IVContinuousDiscreteProcess","Illegal operation", + JustWarning,"default constructor is called"); } G4IVContinuousDiscreteProcess::G4IVContinuousDiscreteProcess(const G4String& aName , G4ProcessType aType) diff --git a/source/processes/management/src/G4IVRestDiscreteProcess.cc b/source/processes/management/src/G4IVRestDiscreteProcess.cc index 0ee6161e64..463b817b9f 100644 --- a/source/processes/management/src/G4IVRestDiscreteProcess.cc +++ b/source/processes/management/src/G4IVRestDiscreteProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4IVRestDiscreteProcess.cc,v 1.7 2003/04/01 16:43:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4IVRestDiscreteProcess.cc,v 1.8 2003/11/03 03:27:27 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: // -------------------------------------------------------------- @@ -39,7 +39,8 @@ G4IVRestDiscreteProcess::G4IVRestDiscreteProcess() :G4VProcess("No Name Discrete Process"),BIGSTEP(1.e10) { - G4Exception("G4IVRestDiscreteProcess:: default constructor is called"); + G4Exception("G4IVRestDiscreteProcess::G4IVRestDiscreteProcess", "Illegal operation", + JustWarning,"default constructor is called"); } G4IVRestDiscreteProcess::G4IVRestDiscreteProcess(const G4String& aName , G4ProcessType aType) diff --git a/source/processes/management/src/G4ProcTblElement.cc b/source/processes/management/src/G4ProcTblElement.cc index 09691bfa02..4a59dd827f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessAttribute.cc b/source/processes/management/src/G4ProcessAttribute.cc index 3c462876eb..838868987c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessManager.cc b/source/processes/management/src/G4ProcessManager.cc index 6c950ea3f9..641d1c85c6 100644 --- a/source/processes/management/src/G4ProcessManager.cc +++ b/source/processes/management/src/G4ProcessManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessManager.cc,v 1.22 2003/06/16 17:12:32 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProcessManager.cc,v 1.23 2003/11/03 03:27:27 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -62,23 +62,19 @@ G4ProcessManager::G4ProcessManager(const G4ParticleDefinition* aParticleType): duringTracking(false), verboseLevel(1) { - char errMsg[1024]; - std::ostrstream errOs(errMsg,1024); // create the process List theProcessList = new G4ProcessVector(); if ( theProcessList == 0) { - errOs << "G4ProcessManager::G4ProcessManager():"; - errOs << " can not create G4ProcessVector " << G4endl; - G4Exception(errMsg); + G4Exception( "G4ProcessManager::G4ProcessManager()","Fatal Error", + FatalException, "Can not create G4ProcessList "); } //create process vector for (G4int i=0; i0) { - G4cout << "G4ProcessManager: default constructor is called !!" <GetParticleName() + "]"; - G4Exception((const char*)(aErrorMessage)); + G4String aErrorMessage("Null Pointer for"); + aErrorMessage += theParticleType->GetParticleName() ; + G4Exception("G4ProcessManager::GetAttribute()","Bad ProcessList", + FatalException,aErrorMessage); return 0; } @@ -384,25 +383,21 @@ G4int G4ProcessManager::AddProcess( G4int ordPostStepDoIt ) { - G4String aErrorMessage("G4ProcessManager::AddProcess():"); - aErrorMessage += "process[" + aProcess->GetProcessName() + "]"; - aErrorMessage += " particle[" + theParticleType->GetParticleName() + "]"; - + //check the process is applicable to this particle type if ( !aProcess->IsApplicable(*theParticleType) ) { #ifdef G4VERBOSE if (GetVerboseLevel()>1) { - G4cout << aErrorMessage << G4endl; + G4cout << "G4ProcessManager::AddProcess()" << G4endl; G4cout << "This process is not applicable to this particle" << G4endl; } #endif - // G4Exception((const char*)aErrorMessage); return -1; } #ifdef G4VERBOSE if (GetVerboseLevel()>2) { - G4cout << aErrorMessage << G4endl; + G4cout << "G4ProcessManager::AddProcess()" << G4endl; } #endif @@ -417,8 +412,11 @@ G4int G4ProcessManager::AddProcess( // check size of the ProcessVector[0] if (numberOfProcesses != idx){ theProcessList->removeLast(); - aErrorMessage += "inconsistent process List size"; - G4Exception((const char*)aErrorMessage); + G4String anErrorMessage("Inconsistent process List size for "); + anErrorMessage += "process[" + aProcess->GetProcessName() + "]"; + anErrorMessage += " particle[" + theParticleType->GetParticleName() + "]"; + G4Exception( "G4ProcessManager::AddProcess()","Fatal Error", + FatalException,anErrorMessage); return -1; } @@ -457,7 +455,7 @@ G4int G4ProcessManager::AddProcess( #ifdef G4VERBOSE if (verboseLevel>2) { - G4cout << aErrorMessage << G4endl; + G4cout << "G4ProcessManager::AddProcess()" << G4endl; G4cout << aProcess->GetProcessName() << " is inserted at "<< ip; G4cout << " in ProcessVetor[" << ivec<< "]"; G4cout << " with Ordering parameter = " ; @@ -491,9 +489,7 @@ G4VProcess* G4ProcessManager::RemoveProcess(G4int index) // remove process G4VProcess* removedProcess = (*theProcessList)[index]; - const G4String aErrorMessage(" G4ProcessManager::RemoveProcess():"); - - if (pAttr->isActive) { + if (pAttr->isActive) { // remove process from vectors if the process is active for (G4int ivec=0; ivec= 0) && (idx < pVector->entries())) { //remove if (RemoveAt(idx, removedProcess, ivec) <0) { -#ifdef G4VERBOSE - if (GetVerboseLevel()>0) { - G4cerr << aErrorMessage; - G4cerr << "particle["<GetParticleName()<<"] " ; - G4cerr << "process["<GetProcessName()<< "] " ; - G4cerr << "bad index in attribute "; - G4cerr << idx << "->" << pVector->index(removedProcess) << G4endl; - } -#endif - G4Exception((const char*)(aErrorMessage)); + G4String anErrorMessage("Bad index in attribute"); + anErrorMessage += "for particle[" + theParticleType->GetParticleName() + "] "; + anErrorMessage += "process[" + removedProcess->GetProcessName() + "] " ; + G4Exception( "G4ProcessManager::RemoveProcess()","Fatal Error", + FatalException,anErrorMessage); return 0; } } else if (idx<0) { // corresponding DoIt is not active } else { // idx is out of range -#ifdef G4VERBOSE - if (GetVerboseLevel()>0) { - G4cerr << aErrorMessage; - G4cerr << "particle["<GetParticleName()<<"] " ; - G4cerr << "process["<GetProcessName()<< "] " ; - G4cerr << "index(=" << idx << ") of process vector"; - G4cerr << "[size:" << pVector->entries() << "] out of range" <GetParticleName() + "] "; + anErrorMessage += "process[" + removedProcess->GetProcessName() + "] " ; + G4Exception( "G4ProcessManager::RemoveProcess()","Fatal Error", + FatalException,anErrorMessage); return 0; } } @@ -771,30 +757,20 @@ G4VProcess* G4ProcessManager::InActivateProcess(G4int index) if ((*pVector)[idx]== pProcess) { (*pVector)[idx]= 0; } else { -#ifdef G4VERBOSE - if (GetVerboseLevel()>0) { - G4cerr << aErrorMessage; - G4cerr << "particle["<GetParticleName()<<"] " ; - G4cerr << "process["<GetProcessName()<<"] " ; - G4cerr << "bad index in attribute "; - G4cerr << idx << "->" << pVector->index(pProcess) << G4endl; - } -#endif - G4Exception((const char*)aErrorMessage); + G4String anErrorMessage("Bad index in attribute"); + anErrorMessage += "for particle[" + theParticleType->GetParticleName() + "] "; + anErrorMessage += "process[" + pProcess->GetProcessName() + "] " ; + G4Exception( "G4ProcessManager::InactivateProcess():","Fatal Error", + FatalException,anErrorMessage); return 0; } } else { // idx is out of range -#ifdef G4VERBOSE - if (GetVerboseLevel()>0) { - G4cerr << aErrorMessage; - G4cerr << "particle["<GetParticleName()<<"] " ; - G4cerr << "process["<GetProcessName()<<"] " ; - G4cerr << "index(=" << idx << ") of process vector"; - G4cerr << "[size:" << pVector->entries() << "] out of range" << G4endl; - } -#endif - G4Exception((const char*)aErrorMessage); + G4String anErrorMessage("Index is out of range"); + anErrorMessage += "for particle[" + theParticleType->GetParticleName() + "] "; + anErrorMessage += "process[" + pProcess->GetProcessName() + "] " ; + G4Exception( "G4ProcessManager::InactivateProcess():","Fatal Error", + FatalException,anErrorMessage); return 0; } } @@ -830,8 +806,6 @@ G4VProcess* G4ProcessManager::ActivateProcess(G4int index) // remove process G4VProcess* pProcess = (*theProcessList)[index]; - const G4String aErrorMessage(" G4ProcessManager::ActivateProcess():"); - if (!pAttr->isActive) { // remove process from vectors if the process is active for (G4int i=0; i0) { - G4cerr << aErrorMessage; - G4cerr << "particle["<GetParticleName()<<"] " ; - G4cerr << "process["<GetProcessName()<<"] " ; - G4cerr << "bad index in attribute " << idx << "->"; - G4cerr << pVector->index(pProcess) << G4endl; - } -#endif - G4Exception((const char*)aErrorMessage); + G4String anErrorMessage("Bad index in attribute"); + anErrorMessage += "for particle[" + theParticleType->GetParticleName() + "] "; + anErrorMessage += "process[" + pProcess->GetProcessName() + "] " ; + G4Exception( "G4ProcessManager::ActivateProcess():","Fatal Error", + FatalException,anErrorMessage); return 0; } } else { // idx is out of range -#ifdef G4VERBOSE - if (GetVerboseLevel()>0) { - G4cerr << aErrorMessage; - G4cerr << "particle["<GetParticleName()<<"] " ; - G4cerr << "process["<GetProcessName()<<"] " ; - G4cerr << "index(=" << idx <<")of process vector"; - G4cerr << "[size:" << pVector->entries() << "] out of range" << G4endl; - } -#endif - G4Exception((const char*)aErrorMessage); + G4String anErrorMessage("Index is out of range"); + anErrorMessage += "for particle[" + theParticleType->GetParticleName() + "] "; + anErrorMessage += "process[" + pProcess->GetProcessName() + "] " ; + G4Exception("G4ProcessManager::ActivateProcess():","Fatal Error", + FatalException,anErrorMessage); return 0; + } } pAttr->isActive = true; diff --git a/source/processes/management/src/G4ProcessManagerMessenger.cc b/source/processes/management/src/G4ProcessManagerMessenger.cc index f97a4f31b5..9770bd43df 100644 --- a/source/processes/management/src/G4ProcessManagerMessenger.cc +++ b/source/processes/management/src/G4ProcessManagerMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessManagerMessenger.cc,v 1.7 2003/06/16 17:12:33 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/management/src/G4ProcessTable.cc b/source/processes/management/src/G4ProcessTable.cc index ba4763a996..1da600358c 100644 --- a/source/processes/management/src/G4ProcessTable.cc +++ b/source/processes/management/src/G4ProcessTable.cc @@ -22,7 +22,7 @@ // // // $Id: G4ProcessTable.cc,v 1.10 2003/04/01 16:43:51 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4ProcessTableMessenger.cc b/source/processes/management/src/G4ProcessTableMessenger.cc index cf82a0597a..4ac929cf33 100644 --- a/source/processes/management/src/G4ProcessTableMessenger.cc +++ b/source/processes/management/src/G4ProcessTableMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessTableMessenger.cc,v 1.13 2003/06/16 17:12:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProcessTableMessenger.cc,v 1.14 2003/11/03 03:27:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- @@ -438,7 +438,8 @@ void G4ProcessTableMessenger::SetNumberOfProcessType() if ( isFoundEndMark ) { NumberOfProcessType = idx; } else { - G4Exception("G4ProcessTableMessenger::SetNumberOfProcessType(): No End Mark for G4VProcess::GetProcessTypeName() "); + G4Exception("G4ProcessTableMessenger::SetNumberOfProcessType()","No End Mark", + FatalException,""); } } diff --git a/source/processes/management/src/G4ProcessVector.cc b/source/processes/management/src/G4ProcessVector.cc index 2f20d1d298..8161b0d5e1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/processes/management/src/G4VContinuousDiscreteProcess.cc b/source/processes/management/src/G4VContinuousDiscreteProcess.cc index ca19a6d0dc..30080b9144 100644 --- a/source/processes/management/src/G4VContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4VContinuousDiscreteProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VContinuousDiscreteProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VContinuousDiscreteProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -38,7 +38,8 @@ G4VContinuousDiscreteProcess::G4VContinuousDiscreteProcess() :G4VProcess("No Name Discrete Process") { - G4Exception("G4VContinuousDiscreteProcess:: default constructor is called"); + G4Exception("G4VContinuousDiscreteProcess::G4VContinuousDiscreteProcess()","Illegal operation", + JustWarning,"Default constructor is called"); } G4VContinuousDiscreteProcess::G4VContinuousDiscreteProcess(const G4String& aName , G4ProcessType aType) diff --git a/source/processes/management/src/G4VContinuousProcess.cc b/source/processes/management/src/G4VContinuousProcess.cc index 987d513d67..35d100183d 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- diff --git a/source/processes/management/src/G4VDiscreteProcess.cc b/source/processes/management/src/G4VDiscreteProcess.cc index 660143cc95..42254b86a3 100644 --- a/source/processes/management/src/G4VDiscreteProcess.cc +++ b/source/processes/management/src/G4VDiscreteProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VDiscreteProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VDiscreteProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -38,7 +38,8 @@ G4VDiscreteProcess::G4VDiscreteProcess() :G4VProcess("No Name Discrete Process") { - G4Exception("G4VDiscreteProcess:: default constructor is called"); + G4Exception("G4VDiscreteProcess::G4VDiscreteProcess()","Illegal operation", + JustWarning,"Default constructor is called"); } G4VDiscreteProcess::G4VDiscreteProcess(const G4String& aName , G4ProcessType aType) diff --git a/source/processes/management/src/G4VProcess.cc b/source/processes/management/src/G4VProcess.cc index a61a93cf7d..d32e3201a5 100644 --- a/source/processes/management/src/G4VProcess.cc +++ b/source/processes/management/src/G4VProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VProcess.cc,v 1.9 2001/11/07 05:23:38 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VProcess.cc,v 1.10 2003/11/03 03:27:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -85,7 +85,8 @@ void G4VProcess::SubtractNumberOfInteractionLengthLeft( G4cerr << G4endl; } #endif - G4Exception("G4VProcess::SubtractNumberOfInteractionLengthLeft() negative currentInteractionLength" ); + G4Exception("G4VProcess::SubtractNumberOfInteractionLengthLeft()", + "Negative currentInteractionLength",EventMustBeAborted,theProcessName); } } @@ -153,7 +154,8 @@ const G4String& G4VProcess::GetProcessTypeName(G4ProcessType aType ) G4VProcess & G4VProcess::operator=(const G4VProcess &) { - G4Exception("G4VProcess::assignment operator is called"); + G4Exception("G4VProcess::operator=","Illegal operation", + JustWarning,"Assignment operator is called"); return *this; } diff --git a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc index 8c7c64e578..86edfb042b 100644 --- a/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc +++ b/source/processes/management/src/G4VRestContinuousDiscreteProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRestContinuousDiscreteProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VRestContinuousDiscreteProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -38,7 +38,8 @@ G4VRestContinuousDiscreteProcess::G4VRestContinuousDiscreteProcess() :G4VProcess("No Name Discrete Process") { - G4Exception("G4VRestContinuousDiscreteProcess:: default constructor is called"); + G4Exception("G4VRestContinuousDiscreteProcess::G4VRestContinuousDiscreteProcess()", + "Illegal operation",JustWarning,"default constructor is called"); } G4VRestContinuousDiscreteProcess::G4VRestContinuousDiscreteProcess(const G4String& aName , G4ProcessType aType) diff --git a/source/processes/management/src/G4VRestContinuousProcess.cc b/source/processes/management/src/G4VRestContinuousProcess.cc index eed51224b8..f59bd9db7f 100644 --- a/source/processes/management/src/G4VRestContinuousProcess.cc +++ b/source/processes/management/src/G4VRestContinuousProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRestContinuousProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VRestContinuousProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -38,7 +38,8 @@ G4VRestContinuousProcess::G4VRestContinuousProcess() :G4VProcess("No Name Discrete Process") { - G4Exception("G4VRestContinuousProcess:: default constructor is called"); + G4Exception("G4VRestContinuousProcess::G4VRestContinuousProcess()","Illegal operation", + JustWarning,"default constructor is called"); } G4VRestContinuousProcess::G4VRestContinuousProcess(const G4String& aName , G4ProcessType aType) diff --git a/source/processes/management/src/G4VRestDiscreteProcess.cc b/source/processes/management/src/G4VRestDiscreteProcess.cc index 5d89d69c9b..ede48827c6 100644 --- a/source/processes/management/src/G4VRestDiscreteProcess.cc +++ b/source/processes/management/src/G4VRestDiscreteProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRestDiscreteProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VRestDiscreteProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -38,7 +38,8 @@ G4VRestDiscreteProcess::G4VRestDiscreteProcess() :G4VProcess("No Name Discrete Process") { - G4Exception("G4VRestDiscreteProcess:: default constructor is called"); + G4Exception("G4VRestDiscreteProcess::G4VRestDiscreteProcess","Illegal operation", + JustWarning,"default constructor is called"); } G4VRestDiscreteProcess::G4VRestDiscreteProcess(const G4String& aName , G4ProcessType aType) diff --git a/source/processes/management/src/G4VRestProcess.cc b/source/processes/management/src/G4VRestProcess.cc index ba03166c71..29d199ef5d 100644 --- a/source/processes/management/src/G4VRestProcess.cc +++ b/source/processes/management/src/G4VRestProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VRestProcess.cc,v 1.3 2001/07/11 10:08:21 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VRestProcess.cc,v 1.4 2003/11/03 03:27:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -38,7 +38,8 @@ G4VRestProcess::G4VRestProcess() :G4VProcess("No Name Rest Process") { - G4Exception("G4VRestProcess:: default constructor is called"); + G4Exception("G4VRestProcess::G4VRestProcess()","Illegal operation", + JustWarning,"default constructor is called"); } G4VRestProcess::G4VRestProcess(const G4String& aName , G4ProcessType aType) diff --git a/source/processes/optical/GNUmakefile b/source/processes/optical/GNUmakefile index 8879a82c9d..f70e1a5c32 100644 --- a/source/processes/optical/GNUmakefile +++ b/source/processes/optical/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:14:00 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/03 15:43:10 gcosmo Exp $ # ------------------------------------------------------------ # GNUmakefile for optical photons library. G.Folger 10-Dec-97. # ------------------------------------------------------------ @@ -16,6 +16,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/particles/management/include \ diff --git a/source/processes/optical/History b/source/processes/optical/History index 0a168f0e6f..81a9c21560 100644 --- a/source/processes/optical/History +++ b/source/processes/optical/History @@ -16,6 +16,18 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +1st December 2003 Peter Gumplinger (op-V05-02-02) + G4OpBoundaryProcess.cc: modified to adopt G4SurfaceProperty. + Requires tag "materials-V05-02-00". + Replaced usage of NULL with 0. + +4th October 2003 Gabriele Cosmo (op-V05-02-01) + Modified GNUmakefile: added dependency to new module + "geometry/navigation". + Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +23rd September 2003 Peter Gumplinger (op-V05-02-00) + Add WLS (wavelength shifting) process 15th March 2003 Peter Gumplinger (op-V05-00-01) Change logic for assigning of Rindex2; bug report #444 4th February 2003 Peter Gumplinger (op-V05-00-00) diff --git a/source/processes/optical/include/G4OpAbsorption.hh b/source/processes/optical/include/G4OpAbsorption.hh index f092af8b44..4c4e6dfb7a 100644 --- a/source/processes/optical/include/G4OpAbsorption.hh +++ b/source/processes/optical/include/G4OpAbsorption.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpAbsorption.hh,v 1.7 2001/08/31 16:43:32 gum Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon Absorption Class Definition diff --git a/source/processes/optical/include/G4OpBoundaryProcess.hh b/source/processes/optical/include/G4OpBoundaryProcess.hh index 765fa0d2ce..37eda59b83 100644 --- a/source/processes/optical/include/G4OpBoundaryProcess.hh +++ b/source/processes/optical/include/G4OpBoundaryProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpBoundaryProcess.hh,v 1.8 2002/03/29 01:03:53 gum Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/optical/include/G4OpRayleigh.hh b/source/processes/optical/include/G4OpRayleigh.hh index 39eaba49cf..5a625cf6fe 100644 --- a/source/processes/optical/include/G4OpRayleigh.hh +++ b/source/processes/optical/include/G4OpRayleigh.hh @@ -22,7 +22,7 @@ // // // $Id: G4OpRayleigh.hh,v 1.6 2001/08/31 16:44:46 gum Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// diff --git a/source/processes/optical/include/G4OpWLS.hh b/source/processes/optical/include/G4OpWLS.hh new file mode 100644 index 0000000000..4c4f6eef57 --- /dev/null +++ b/source/processes/optical/include/G4OpWLS.hh @@ -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: G4OpWLS.hh,v 1.1 2003/09/23 22:23:57 gum Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//////////////////////////////////////////////////////////////////////// +// Optical Photon WaveLength Shifting (WLS) Class Definition +//////////////////////////////////////////////////////////////////////// +// +// File: G4OpWLS.hh +// Description: Discrete Process -- Wavelength Shifting of Optical Photons +// Version: 1.0 +// Created: 2003-05-13 +// Author: John Paul Archambault +// (Adaptation of G4Scintillation and G4OpAbsorption) +// Updated: +// mail: gum@triumf.ca +// jparcham@phys.ualberta.ca +// +//////////////////////////////////////////////////////////////////////// + +#ifndef G4OpWLS_h +#define G4OpWLS_h 1 + +///////////// +// Includes +///////////// + +#include "globals.hh" +#include "templates.hh" +#include "Randomize.hh" +#include "G4Poisson.hh" +#include "G4ThreeVector.hh" +#include "G4ParticleMomentum.hh" +#include "G4Step.hh" +#include "G4VDiscreteProcess.hh" +#include "G4DynamicParticle.hh" +#include "G4Material.hh" +#include "G4OpticalPhoton.hh" +#include "G4PhysicsTable.hh" +#include "G4MaterialPropertiesTable.hh" +#include "G4PhysicsOrderedFreeVector.hh" + +// Class Description: +// Discrete Process -- Bulk absorption of Optical Photons. +// Class inherits publicly from G4VDiscreteProcess +// Class Description - End: + +///////////////////// +// Class Definition +///////////////////// + +class G4OpWLS : public G4VDiscreteProcess +{ + +public: // Without description + + //////////////////////////////// + // Constructors and Destructor + //////////////////////////////// + + G4OpWLS(const G4String& processName = "OpWLS"); + + ~G4OpWLS(); + + //////////// + // Methods + //////////// + +public: // With description + + G4bool IsApplicable(const G4ParticleDefinition& aParticleType); + // Returns true -> 'is applicable' only for an optical photon. + + G4double GetMeanFreePath(const G4Track& aTrack, + G4double , + G4ForceCondition* ); + // Returns the absorption length for bulk absorption of optical + // photons in media with a specified attenuation length. + + G4VParticleChange* PostStepDoIt(const G4Track& aTrack, + const G4Step& aStep); + // This is the method implementing bulk absorption of optical + // photons. + + G4PhysicsTable* GetIntegralTable() const; + // Returns the address of the WLS integral table. + + void DumpPhysicsTable() const; + // Prints the WLS integral table. + +private: + + void BuildThePhysicsTable(); + // Is the WLS integral table; + +protected: + + G4PhysicsTable* theIntegralTable; + +}; + +//////////////////// +// Inline methods +//////////////////// + +inline +G4bool G4OpWLS::IsApplicable(const G4ParticleDefinition& aParticleType) +{ + return ( &aParticleType == G4OpticalPhoton::OpticalPhoton() ); +} + +inline +G4PhysicsTable* G4OpWLS::GetIntegralTable() const +{ + return theIntegralTable; +} + +inline +void G4OpWLS::DumpPhysicsTable() const +{ + G4int PhysicsTableSize = theIntegralTable->entries(); + G4PhysicsOrderedFreeVector *v; + + for (G4int i = 0 ; i < PhysicsTableSize ; i++ ) + { + v = (G4PhysicsOrderedFreeVector*)(*theIntegralTable)[i]; + v->DumpValues(); + } +} + +#endif /* G4OpWLS_h */ diff --git a/source/processes/optical/src/G4OpAbsorption.cc b/source/processes/optical/src/G4OpAbsorption.cc index 5f3dfd1cd0..9c4230a8ca 100644 --- a/source/processes/optical/src/G4OpAbsorption.cc +++ b/source/processes/optical/src/G4OpAbsorption.cc @@ -22,7 +22,7 @@ // // // $Id: G4OpAbsorption.cc,v 1.4 2001/07/11 10:08:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //////////////////////////////////////////////////////////////////////// // Optical Photon Absorption Class Implementation diff --git a/source/processes/optical/src/G4OpBoundaryProcess.cc b/source/processes/optical/src/G4OpBoundaryProcess.cc index 54d468c8ed..c68179ce1b 100644 --- a/source/processes/optical/src/G4OpBoundaryProcess.cc +++ b/source/processes/optical/src/G4OpBoundaryProcess.cc @@ -47,6 +47,8 @@ // 2001-10-18 - avoid Linux (gcc-2.95.2) warning about variables // might be used uninitialized in this function // moved E2_perp, E2_parl and E2_total out of 'if' +// 2003-11-27 - Modified line 168-9 to reflect changes made to +// G4OpticalSurface class ( by Fan Lei) // // Author: Peter Gumplinger // adopted from work by Werner Keil - April 2/96 @@ -150,20 +152,21 @@ G4OpBoundaryProcess::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) theModel = glisur; theFinish = polished; - G4OpticalSurfaceType type = dielectric_dielectric; + G4SurfaceType type = dielectric_dielectric; - Rindex = NULL; - OpticalSurface = NULL; + Rindex = 0; + OpticalSurface = 0; G4LogicalSurface* Surface = G4LogicalBorderSurface::GetSurface (pPreStepPoint ->GetPhysicalVolume(), pPostStepPoint->GetPhysicalVolume()); - if (Surface == NULL) Surface = G4LogicalSkinSurface::GetSurface + if (Surface == 0) Surface = G4LogicalSkinSurface::GetSurface (pPreStepPoint->GetPhysicalVolume()-> GetLogicalVolume()); - if (Surface != NULL) OpticalSurface = Surface->GetOpticalSurface(); + // if (Surface != 0) OpticalSurface = dynamic_cast (Surface->GetSurfaceProperty()); + if (Surface != 0) OpticalSurface = (G4OpticalSurface*) Surface->GetSurfaceProperty(); if (OpticalSurface) { diff --git a/source/processes/optical/src/G4OpRayleigh.cc b/source/processes/optical/src/G4OpRayleigh.cc index e8b73185b8..02ae09fd09 100644 --- a/source/processes/optical/src/G4OpRayleigh.cc +++ b/source/processes/optical/src/G4OpRayleigh.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4OpRayleigh.cc,v 1.8 2001/10/18 17:13:54 gum Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4OpRayleigh.cc,v 1.9 2003/12/01 15:20:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //////////////////////////////////////////////////////////////////////// @@ -74,7 +74,7 @@ G4OpRayleigh::G4OpRayleigh(const G4String& processName) : G4VDiscreteProcess(processName) { - thePhysicsTable = NULL; + thePhysicsTable = 0; if (verboseLevel>0) { G4cout << GetProcessName() << " is created " << G4endl; @@ -93,7 +93,7 @@ G4OpRayleigh::G4OpRayleigh(const G4String& processName) G4OpRayleigh::~G4OpRayleigh() { - if (thePhysicsTable!= NULL) { + if (thePhysicsTable!= 0) { thePhysicsTable->clearAndDestroy(); delete thePhysicsTable; } diff --git a/source/processes/optical/src/G4OpWLS.cc b/source/processes/optical/src/G4OpWLS.cc new file mode 100644 index 0000000000..6a2658b4b1 --- /dev/null +++ b/source/processes/optical/src/G4OpWLS.cc @@ -0,0 +1,352 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4OpWLS.cc,v 1.2 2003/12/01 15:20:05 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +//////////////////////////////////////////////////////////////////////// +// Optical Photon WaveLength Shifting (WLS) Class Implementation +//////////////////////////////////////////////////////////////////////// +// +// File: G4OpWLS.cc +// Description: Discrete Process -- Wavelength Shifting of Optical Photons +// Version: 1.0 +// Created: 2003-05-13 +// Author: John Paul Archambault +// (Adaptation of G4Scintillation and G4OpAbsorption) +// Updated: +// mail: gum@triumf.ca +// jparcham@phys.ualberta.ca +// +//////////////////////////////////////////////////////////////////////// + +#include "G4ios.hh" +#include "G4OpWLS.hh" + +///////////////////////// +// Class Implementation +///////////////////////// + +///////////////// +// Constructors +///////////////// + +G4OpWLS::G4OpWLS(const G4String& processName) + : G4VDiscreteProcess(processName) +{ + theIntegralTable = 0; + + if (verboseLevel>0) { + G4cout << GetProcessName() << " is created " << G4endl; + } + + BuildThePhysicsTable(); +} + +//////////////// +// Destructors +//////////////// + +G4OpWLS::~G4OpWLS() +{ + if (theIntegralTable != 0) { + theIntegralTable->clearAndDestroy(); + delete theIntegralTable; + } +} + +//////////// +// Methods +//////////// + +// PostStepDoIt +// ------------- +// +G4VParticleChange* +G4OpWLS::PostStepDoIt(const G4Track& aTrack, const G4Step& aStep) +{ + aParticleChange.Initialize(aTrack); + + aParticleChange.SetStatusChange(fStopAndKill); + + if (verboseLevel>0) { + G4cout << "\n** Photon absorbed! **" << G4endl; + } + + const G4Material* aMaterial = aTrack.GetMaterial(); + + G4StepPoint* pPostStepPoint = aStep.GetPostStepPoint(); + + G4MaterialPropertiesTable* aMaterialPropertiesTable = + aMaterial->GetMaterialPropertiesTable(); + if (!aMaterialPropertiesTable) + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + + const G4MaterialPropertyVector* WLS_Intensity = + aMaterialPropertiesTable->GetProperty("WLSCOMPONENT"); + + if (!WLS_Intensity) + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); + + G4int NumPhotons = 1; + + aParticleChange.SetNumberOfSecondaries(NumPhotons); + + G4int materialIndex = aMaterial->GetIndex(); + + // Retrieve the WLS Integral for this material + // new G4PhysicsOrderedFreeVector allocated to hold CII's + + G4double WLSTime = 0.*ns; + G4PhysicsOrderedFreeVector* WLSIntegral = 0; + + WLSTime = aMaterialPropertiesTable-> + GetConstProperty("WLSTIMECONSTANT"); + WLSIntegral = + (G4PhysicsOrderedFreeVector*)((*theIntegralTable)(materialIndex)); + + // Max WLS Integral + + G4double CIImax = WLSIntegral->GetMaxValue(); + + for (G4int i = 0; i < NumPhotons; i++) { + + // Determine photon momentum + + G4double CIIvalue = G4UniformRand()*CIImax; + G4double sampledMomentum = + WLSIntegral->GetEnergy(CIIvalue); + + if (verboseLevel>1) { + G4cout << "sampledMomentum = " << sampledMomentum << G4endl; + G4cout << "CIIvalue = " << CIIvalue << G4endl; + } + + // Generate random photon direction + + G4double cost = 1. - 2.*G4UniformRand(); + G4double sint = sqrt((1.-cost)*(1.+cost)); + + G4double phi = 2*M_PI*G4UniformRand(); + G4double sinp = sin(phi); + G4double cosp = cos(phi); + + G4double px = sint*cosp; + G4double py = sint*sinp; + G4double pz = cost; + + // Create photon momentum direction vector + + G4ParticleMomentum photonMomentum(px, py, pz); + + // Determine polarization of new photon + + G4double sx = cost*cosp; + G4double sy = cost*sinp; + G4double sz = -sint; + + G4ThreeVector photonPolarization(sx, sy, sz); + + G4ThreeVector perp = photonMomentum.cross(photonPolarization); + + phi = 2*M_PI*G4UniformRand(); + sinp = sin(phi); + cosp = cos(phi); + + photonPolarization = cosp * photonPolarization + sinp * perp; + + photonPolarization = photonPolarization.unit(); + + // Generate a new photon: + + G4DynamicParticle* aWLSPhoton = + new G4DynamicParticle(G4OpticalPhoton::OpticalPhoton(), + photonMomentum); + aWLSPhoton->SetPolarization + (photonPolarization.x(), + photonPolarization.y(), + photonPolarization.z()); + + aWLSPhoton->SetKineticEnergy(sampledMomentum); + + // Generate new G4Track object: + + // Must give position of WLS optical photon + + G4double aSecondaryTime = (pPostStepPoint->GetGlobalTime()) + WLSTime; + + G4ThreeVector aSecondaryPosition = pPostStepPoint->GetPosition(); + + G4Track* aSecondaryTrack = + new G4Track(aWLSPhoton,aSecondaryTime,aSecondaryPosition); + + aSecondaryTrack->SetTouchableHandle((G4VTouchable*)0); + + aSecondaryTrack->SetParentID(aTrack.GetTrackID()); + + aParticleChange.AddSecondary(aSecondaryTrack); + } + + if (verboseLevel>0) { + G4cout << "\n Exiting from G4OpWLS::DoIt -- NumberOfSecondaries = " + << aParticleChange.GetNumberOfSecondaries() << G4endl; + } + + return G4VDiscreteProcess::PostStepDoIt(aTrack, aStep); +} + +// BuildThePhysicsTable for the wavelength shifting process +// -------------------------------------------------- +// + +void G4OpWLS::BuildThePhysicsTable() +{ + if (theIntegralTable) return; + + const G4MaterialTable* theMaterialTable = + G4Material::GetMaterialTable(); + G4int numOfMaterials = G4Material::GetNumberOfMaterials(); + + // create new physics table + + if(!theIntegralTable)theIntegralTable = new G4PhysicsTable(numOfMaterials); + + // loop for materials + + for (G4int i=0 ; i < numOfMaterials; i++) + { + G4PhysicsOrderedFreeVector* aPhysicsOrderedFreeVector = + new G4PhysicsOrderedFreeVector(); + + // Retrieve vector of WLS wavelength intensity for + // the material from the material's optical properties table. + + G4Material* aMaterial = (*theMaterialTable)[i]; + + G4MaterialPropertiesTable* aMaterialPropertiesTable = + aMaterial->GetMaterialPropertiesTable(); + + if (aMaterialPropertiesTable) { + + G4MaterialPropertyVector* theWLSVector = + aMaterialPropertiesTable->GetProperty("WLSCOMPONENT"); + + if (theWLSVector) { + + // Retrieve the first intensity point in vector + // of (photon momentum, intensity) pairs + + theWLSVector->ResetIterator(); + ++(*theWLSVector); // advance to 1st entry + + G4double currentIN = theWLSVector-> + GetProperty(); + + if (currentIN >= 0.0) { + + // Create first (photon momentum) + + G4double currentPM = theWLSVector-> + GetPhotonMomentum(); + + G4double currentCII = 0.0; + + aPhysicsOrderedFreeVector-> + InsertValues(currentPM , currentCII); + + // Set previous values to current ones prior to loop + + G4double prevPM = currentPM; + G4double prevCII = currentCII; + G4double prevIN = currentIN; + + // loop over all (photon momentum, intensity) + // pairs stored for this material + + while(++(*theWLSVector)) + { + currentPM = theWLSVector-> + GetPhotonMomentum(); + + currentIN=theWLSVector-> + GetProperty(); + + currentCII = 0.5 * (prevIN + currentIN); + + currentCII = prevCII + + (currentPM - prevPM) * currentCII; + + aPhysicsOrderedFreeVector-> + InsertValues(currentPM, currentCII); + + prevPM = currentPM; + prevCII = currentCII; + prevIN = currentIN; + } + } + } + } + // The WLS integral for a given material + // will be inserted in the table according to the + // position of the material in the material table. + + theIntegralTable->insertAt(i,aPhysicsOrderedFreeVector); + } +} + +// GetMeanFreePath +// --------------- +// +G4double G4OpWLS::GetMeanFreePath(const G4Track& aTrack, + G4double , + G4ForceCondition* ) +{ + const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle(); + const G4Material* aMaterial = aTrack.GetMaterial(); + + G4double thePhotonMomentum = aParticle->GetTotalMomentum(); + + G4MaterialPropertiesTable* aMaterialPropertyTable; + G4MaterialPropertyVector* AttenuationLengthVector; + + G4double AttenuationLength = DBL_MAX; + + aMaterialPropertyTable = aMaterial->GetMaterialPropertiesTable(); + + if ( aMaterialPropertyTable ) { + AttenuationLengthVector = aMaterialPropertyTable-> + GetProperty("WLSABSLENGTH"); + if ( AttenuationLengthVector ){ + AttenuationLength = AttenuationLengthVector-> + GetProperty (thePhotonMomentum); + } + else { + // G4cout << "No WLS absorption length specified" << G4endl; + } + } + else { + // G4cout << "No WLS absortion length specified" << G4endl; + } + + return AttenuationLength; +} diff --git a/source/processes/parameterisation/GNUmakefile b/source/processes/parameterisation/GNUmakefile index de2975fe64..b4e48ff2d8 100644 --- a/source/processes/parameterisation/GNUmakefile +++ b/source/processes/parameterisation/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.5 2000/11/14 16:14:17 gcosmo Exp $ +# $Id: GNUmakefile,v 1.6 2003/10/03 15:45:40 gcosmo Exp $ # ------------------------------------------------------------ # GNUmakefile for transportation library. G.Folger 10-Dec-97. # ------------------------------------------------------------ @@ -16,6 +16,7 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/track/include \ diff --git a/source/processes/parameterisation/History b/source/processes/parameterisation/History index 9f0a6246aa..51669d858f 100644 --- a/source/processes/parameterisation/History +++ b/source/processes/parameterisation/History @@ -1,4 +1,4 @@ -$Id: History,v 1.17 2003/05/21 16:32:35 gcosmo Exp $ +$Id: History,v 1.19 2003/11/10 08:57:37 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,15 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +November 10, 2003 G. Cosmo - param-V05-02-01 +- G4FastTrack: use G4Navigator::CreateTouchableHistoryHandle() instead of + CreateTouchableHistory() in method FRecordsAffineTransformation(). + +October 4, 2003 G. Cosmo - param-V05-02-00 +- Modified GNUmakefile: + o added dependency to new module "geometry/navigation". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + May 21, 2003 G. Cosmo - param-V05-01-00 o Fixed pedantic warnings on Linux-g++. o Call base class in copy-constructor of G4FastStep. diff --git a/source/processes/parameterisation/include/G4FastSimulationManager.hh b/source/processes/parameterisation/include/G4FastSimulationManager.hh index 2512b04e41..05dd8c7f43 100644 --- a/source/processes/parameterisation/include/G4FastSimulationManager.hh +++ b/source/processes/parameterisation/include/G4FastSimulationManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationManager.hh,v 1.8 2002/11/02 00:10:34 mverderi Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh b/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh index 101759ea90..9af80ad62d 100644 --- a/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh +++ b/source/processes/parameterisation/include/G4FastSimulationManagerProcess.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationManagerProcess.hh,v 1.8 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastSimulationMessenger.hh b/source/processes/parameterisation/include/G4FastSimulationMessenger.hh index faed3ab22a..42a25b8a2c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // GEANT 4 class header file diff --git a/source/processes/parameterisation/include/G4FastStep.hh b/source/processes/parameterisation/include/G4FastStep.hh index 8c05988ff1..38507aff66 100644 --- a/source/processes/parameterisation/include/G4FastStep.hh +++ b/source/processes/parameterisation/include/G4FastStep.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastStep.hh,v 1.6 2001/07/11 10:08:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FastStep.icc b/source/processes/parameterisation/include/G4FastStep.icc index e5f8f03b20..1451dee84a 100644 --- a/source/processes/parameterisation/include/G4FastStep.icc +++ b/source/processes/parameterisation/include/G4FastStep.icc @@ -22,7 +22,7 @@ // // // $Id: G4FastStep.icc,v 1.3 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 f9493b5060..aa53fbe4ea 100644 --- a/source/processes/parameterisation/include/G4FastTrack.hh +++ b/source/processes/parameterisation/include/G4FastTrack.hh @@ -22,7 +22,7 @@ // // // $Id: G4FastTrack.hh,v 1.5 2001/07/11 10:08:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // $Id: //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh b/source/processes/parameterisation/include/G4FlavoredParallelWorld.hh index 49a15116a1..c84dd17bd6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh b/source/processes/parameterisation/include/G4GlobalFastSimulationManager.hh index 1845c9a5df..644864d9a7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/include/G4VFastSimulationModel.hh b/source/processes/parameterisation/include/G4VFastSimulationModel.hh index 021e1e94ef..593d1d21ff 100644 --- a/source/processes/parameterisation/include/G4VFastSimulationModel.hh +++ b/source/processes/parameterisation/include/G4VFastSimulationModel.hh @@ -22,7 +22,7 @@ // // // $Id: G4VFastSimulationModel.hh,v 1.5 2003/05/21 16:32:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/src/G4FastSimulationManager.cc b/source/processes/parameterisation/src/G4FastSimulationManager.cc index 8b585ea509..3470d1d645 100644 --- a/source/processes/parameterisation/src/G4FastSimulationManager.cc +++ b/source/processes/parameterisation/src/G4FastSimulationManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationManager.cc,v 1.8 2002/11/15 11:41:56 stesting Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //--------------------------------------------------------------- // diff --git a/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc b/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc index b0b575ec64..1872bc6e90 100644 --- a/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc +++ b/source/processes/parameterisation/src/G4FastSimulationManagerProcess.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastSimulationManagerProcess.cc,v 1.8 2003/05/21 16:32:11 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/src/G4FastSimulationMessenger.cc b/source/processes/parameterisation/src/G4FastSimulationMessenger.cc index 858d9db2d2..2bcf249d14 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4FastSimulationMessenger.hh" diff --git a/source/processes/parameterisation/src/G4FastStep.cc b/source/processes/parameterisation/src/G4FastStep.cc index e9c5c8afe4..706fd0e73e 100644 --- a/source/processes/parameterisation/src/G4FastStep.cc +++ b/source/processes/parameterisation/src/G4FastStep.cc @@ -22,7 +22,7 @@ // // // $Id: G4FastStep.cc,v 1.12 2003/06/16 17:12:39 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //--------------------------------------------------------------- // diff --git a/source/processes/parameterisation/src/G4FastTrack.cc b/source/processes/parameterisation/src/G4FastTrack.cc index bf8c6a88c3..2a5ca3d8f7 100644 --- a/source/processes/parameterisation/src/G4FastTrack.cc +++ b/source/processes/parameterisation/src/G4FastTrack.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4FastTrack.cc,v 1.6 2001/10/26 14:43:37 mverderi Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4FastTrack.cc,v 1.7 2003/11/10 08:57:22 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //--------------------------------------------------------------- // @@ -40,6 +40,7 @@ #include "G4ios.hh" #include "G4FastTrack.hh" #include "G4TransportationManager.hh" +#include "G4TouchableHistoryHandle.hh" // ----------- // Constructor @@ -122,8 +123,8 @@ G4FastTrack::FRecordsAffineTransformation(const G4Navigator* theNavigator) G4TransportationManager::GetTransportationManager()-> GetNavigatorForTracking(); - G4TouchableHistory *history = - NavigatorToUse->CreateTouchableHistory(); + G4TouchableHistoryHandle history = + NavigatorToUse->CreateTouchableHistoryHandle(); //----------------------------------------------------- // Run accross the hierarchy to find the physical volume @@ -157,12 +158,4 @@ G4FastTrack::FRecordsAffineTransformation(const G4Navigator* theNavigator) fAffineTransformationDefined = true; } - - //------------------------------------------------------ - // Delete the TouchableHistory created by the Navigator: - //------------------------------------------------------ - delete history; - history = 0; } - - diff --git a/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc b/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc index 6153b0632b..14dd5861b6 100644 --- a/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc +++ b/source/processes/parameterisation/src/G4GlobalFastSimulationManager.cc @@ -22,7 +22,7 @@ // // // $Id: G4GlobalFastSimulationManager.cc,v 1.12 2002/12/04 21:29:50 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/processes/parameterisation/src/G4VFastSimulationModel.cc b/source/processes/parameterisation/src/G4VFastSimulationModel.cc index 7a475b6371..00467ee6f6 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //--------------------------------------------------------------- // diff --git a/source/processes/photolepton_hadron/History b/source/processes/photolepton_hadron/History deleted file mode 100644 index 003a22cab3..0000000000 --- a/source/processes/photolepton_hadron/History +++ /dev/null @@ -1,44 +0,0 @@ -$Id: History,v 1.6 2003/06/03 07:53:22 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 * - ---------------------------------------------------------- - -03-Jun-2003: G.Cosmo (photolepton_hadron-V05-01-00) -- Cleared pedantic warnings on Linux-g++. - -24-Oct-2001: G.Cosmo (photolepton_hadron-V03-02-01) -- Cleared warnings on Linux-g++. -- Replaced NULL with 0 wherever needed. - -23-Oct-2001: G.Cosmo (photolepton_hadron-V03-02-00) -- Synchronised files with HEAD revision. -- Migration to STL vector according to modifications in "materials-V03-02-04". - -05-Feb-2001: G.Cosmo (photolepton_hadron-V03-00-00) -- STL migration for G4OrderedTable and G4DataVector. - Modified files: G4MuNuclearInteraction.cc. - -03-Aug-2000 G.Cosmo (photolepton_hadron-V02-00-00r) -- Changed usage of RandFlat::shootBit() to RandBit::shootBit() to fix - events' reproducibility problem. - -06-Dec-1999 G.Cosmo (photolepton_hadron-V00-01-01) -- Removed CPPFLAG option -g which was present in GNUmakefile to force - debug compilation and turns out not to be portable on all compilers. - -05-Dec-1999 G.Cosmo -- Created History file. diff --git a/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc b/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc deleted file mode 100644 index 8ff8be96d7..0000000000 --- a/source/processes/photolepton_hadron/src/G4ParametrizedHadronicVertex.cc +++ /dev/null @@ -1,45 +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: G4ParametrizedHadronicVertex.cc,v 1.5 2001/10/24 17:47:00 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -------------------------------------------------------------- -#include "G4ParametrizedHadronicVertex.hh" - -G4VParticleChange * G4ParametrizedHadronicVertex:: -ApplyYourself(G4Nucleus & theTarget, const G4Track &thePhoton) -{ - G4double theKineticEnergy = thePhoton.GetKineticEnergy(); - if(RandBit::shootBit()) - { - if(theKineticEnergy<20*GeV) return theLowEPionMinus.ApplyYourself(thePhoton, theTarget); - return theHighEPionMinus.ApplyYourself(thePhoton, theTarget); - } - else - { - if(theKineticEnergy<20*GeV) return theLowEPionPlus.ApplyYourself(thePhoton, theTarget); - return theHighEPionPlus.ApplyYourself(thePhoton, theTarget); - } - return 0; -} diff --git a/source/processes/transportation/GNUmakefile b/source/processes/transportation/GNUmakefile index 57fb91a317..e90892f39c 100644 --- a/source/processes/transportation/GNUmakefile +++ b/source/processes/transportation/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.6 2002/10/16 16:26:57 dressel Exp $ +# $Id: GNUmakefile,v 1.8 2003/10/03 15:47:37 gcosmo Exp $ # ------------------------------------------------------------ # GNUmakefile for transportation library. G.Folger 10-Dec-97. # ------------------------------------------------------------ @@ -16,12 +16,14 @@ CPPFLAGS += \ -I$(G4BASE)/global/HEPRandom/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/geometry/biasing/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/processes/management/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ + -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/materials/include \ -I$(G4BASE)/intercoms/include diff --git a/source/processes/transportation/History b/source/processes/transportation/History index 52e7a4339d..4d160d0fde 100644 --- a/source/processes/transportation/History +++ b/source/processes/transportation/History @@ -1,4 +1,4 @@ -$Id: History,v 1.76 2003/06/21 01:34:50 japost Exp $ +$Id: History,v 1.89 2003/11/26 14:52:05 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -16,31 +16,94 @@ committal in the CVS repository ! ---------------------------------------------------------- * Reverse chronological order (last date on top), please * ---------------------------------------------------------- + +Nov. 26th, G.Cosmo transport-V05-02-07 +------------------ +- Replaced mis-typed class name G4SplittingAndRussianRouletePostStepDoIt + with G4SamplingPostStepAction and updated classes accordingly. +- Adopt new G4Exception scheme. +- Header inclusions and code cleanup. + +Nov. 14th, G.Cosmo transport-V05-02-06 +------------------ +- G4Transportation.cc: + o Added inclusion of G4ChordFinder.hh, after latest changes to field. + +Oct. 4th, G.Cosmo transport-V05-02-05 +----------------- +- Modified GNUmakefile: + o added dependency to new module "geometry/navigation". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +Sep. 25th, H.Kurashige transport-V05-02-04 +---------------------- +- modify GNUmakefile to use processes/cuts category +- migrate to model variant of EM physics in G4UserSpecialCuts (V.Ivantchenko) + +Aug. 27th, M.Dressel transport-V05-02-03 +-------------------- +- cleanup of header file inclusions + +Aug. 19th, M.Dressel transport-V05-02-02 +-------------------- +- rename G4ImportancePostStepDoIt to + G4SplittingAndRussianRouletePostStepDoIt since it is also used in + weight window biasing + +Aug. 19th, M.Dressel transport-V05-02-01 +-------------------- +- first implementation of weight window technique + +Jul, 31st, P.Gumplinger transport-V05-02-00 +----------------------- +- G4Transportation.cc: + o Use the finalVelocity to update TofF for optical photons. + +Jul, 17th, J.Apostolakis +------------------------ +- G4Transportation.cc: + o Attempt to correct photon problem - by using the velocity from + current medium for massless particles. + +Jun, 25th, J.Apostolakis +------------------------ +- G4Transportation[.hh.icc]: + o Added verbosity level to control the printing of warnings (see below). + +Jun, 21st, J.Apostolakis transport-V05-01-06 +------------------------ +G4Transportation: +- Added warning when energy changes from propagation in magnetic field + (or other field that conserves energy) due to the inaccuracy of + numerical integration of the equations of motion. + Jun, 21st, J.Apostolakis transport-V05-01-05 ------------------------ -** Requires field-V05-01-04 and geomvol-V05-01-03 ** -- Use new method of PropagatorInField to simplify choice of global/local field, - -- Activate the new capability of a (user derived) field manager to configure - itself with different accuracy parameters depending on track's energy, - particle identity, or other property. - -Includes updates of files to use in place of "g4std", as made at the head. +- G4Transportation: + o Use new method of PropagatorInField to simplify choice of + global/local field. + o Activated the new capability of a (user derived) field manager to + configure itself with different accuracy parameters depending on + track's energy, particle identity, or other property. +- Notes: + o Requires tags "field-V05-01-04" and "geomvol-V05-01-03" + o Includes updates of files to use in place of "g4std", + as made at the CVS HEAD. Jun, 13th, M.Dressel transport-V05-01-04 -------------------- -added to put the delete fImportancePostStepDoIt in G4MassImportanceProcess -and G4ParallelImportanceProcess. +- Added to put the delete fImportancePostStepDoIt in G4MassImportanceProcess + and G4ParallelImportanceProcess. Jun, 13th, M.Dressel transport-V05-01-03 -------------------- -fixed bug created by last bug fix in G4MassImportanceProcess -and G4ParallelImportanceProcess. +- Fixed bug created by last bug fix in G4MassImportanceProcess + and G4ParallelImportanceProcess. Jun, 12th, M.Dressel transport-V05-01-02 -------------------- -fixed "'this' : used in base member initializer list" in -src\G4MassImportanceProcess.cc, src\G4ParallelImportanceProcess.cc +- Fixed "'this' : used in base member initializer list" in + src\G4MassImportanceProcess.cc, src\G4ParallelImportanceProcess.cc Jun, 4th, G.Cosmo transport-V05-01-01 ----------------- diff --git a/source/processes/transportation/include/G4MImportanceConfigurator.hh b/source/processes/transportation/include/G4MImportanceConfigurator.hh index b7fc709167..466e8b9e9a 100644 --- a/source/processes/transportation/include/G4MImportanceConfigurator.hh +++ b/source/processes/transportation/include/G4MImportanceConfigurator.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4MImportanceConfigurator.hh,v 1.3 2002/10/22 13:25:55 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MImportanceConfigurator.hh,v 1.5 2003/11/26 14:51:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4MImportanceConfigurator // // Class description: -// This class builds and places the G4ImportanceProcess. +// This class builds and places the G4ImportanceProcess. // If the object is deleted the process is removed from the // process list. @@ -38,24 +38,29 @@ #ifndef G4MImportanceConfigurator_hh #define G4MImportanceConfigurator_hh G4MImportanceConfigurator_hh -#include "globals.hh" -#include "G4MassImportanceProcess.hh" +#include "G4Types.hh" #include "G4ProcessPlacer.hh" #include "G4VSamplerConfigurator.hh" +class G4MassImportanceProcess; class G4VImportanceAlgorithm; +class G4VIStore; + +class G4MImportanceConfigurator : public G4VSamplerConfigurator +{ + +public: // with description -class G4MImportanceConfigurator : public G4VSamplerConfigurator{ -public: G4MImportanceConfigurator(const G4String &particlename, - G4VIStore &istore, - const G4VImportanceAlgorithm *ialg); + G4VIStore &istore, + const G4VImportanceAlgorithm *ialg); virtual ~G4MImportanceConfigurator(); virtual void Configure(G4VSamplerConfigurator *preConf); virtual const G4VTrackTerminator *GetTrackTerminator() const; private: + G4MImportanceConfigurator(const G4MImportanceConfigurator &); G4MImportanceConfigurator & operator=(const G4MImportanceConfigurator &); diff --git a/source/processes/transportation/include/G4MScoreConfigurator.hh b/source/processes/transportation/include/G4MScoreConfigurator.hh index caab9a91c8..e378fb02eb 100644 --- a/source/processes/transportation/include/G4MScoreConfigurator.hh +++ b/source/processes/transportation/include/G4MScoreConfigurator.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4MScoreConfigurator.hh,v 1.3 2002/10/22 13:25:55 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MScoreConfigurator.hh,v 1.5 2003/11/26 14:51:47 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4MScoreConfigurator // // Class description: -// This class builds and places the G4MScoreProcess. +// This class builds and places the G4MScoreProcess. // If the object is deleted the process is removed from the // process list. @@ -38,26 +38,29 @@ #ifndef G4MScoreConfigurator_hh #define G4MScoreConfigurator_hh G4MScoreConfigurator_hh -#include "globals.hh" -#include "G4MScoreProcess.hh" +#include "G4Types.hh" #include "G4ProcessPlacer.hh" #include "G4VSamplerConfigurator.hh" class G4VScorer; class G4VTrackTerminator; +class G4MScoreProcess; + +class G4MScoreConfigurator : public G4VSamplerConfigurator +{ + +public: // with description -class G4MScoreConfigurator : public G4VSamplerConfigurator{ -public: G4MScoreConfigurator(const G4String &particlename, - G4VScorer &scorer); + G4VScorer &scorer); virtual ~G4MScoreConfigurator(); virtual void Configure(G4VSamplerConfigurator *preConf); virtual const G4VTrackTerminator *GetTrackTerminator() const; - private: + G4MScoreConfigurator(const G4MScoreConfigurator&); G4MScoreConfigurator &operator=(const G4MScoreConfigurator&); diff --git a/source/processes/transportation/include/G4MScoreProcess.hh b/source/processes/transportation/include/G4MScoreProcess.hh index 35e6892f77..d02b6500a7 100644 --- a/source/processes/transportation/include/G4MScoreProcess.hh +++ b/source/processes/transportation/include/G4MScoreProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MScoreProcess.hh,v 1.7 2002/10/22 13:25:55 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MScoreProcess.hh,v 1.8 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4MScoreProcess @@ -44,13 +44,12 @@ class G4VScorer; class G4MScoreProcess : public G4VProcess, public G4VTrackTerminator - { public: // with description explicit G4MScoreProcess(G4VScorer &aScorer, - const G4String &aName = "MScoreProcess"); + const G4String &aName = "MScoreProcess"); // take reference to scorer and coppy particle name and // create a G4ParticleChange @@ -59,8 +58,8 @@ public: // with description virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition); + G4double previousStepSize, + G4ForceCondition* condition); // make processed being forced virtual G4VParticleChange * PostStepDoIt(const G4Track&, const G4Step&); @@ -79,19 +78,19 @@ public: // without description virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*); + G4double , + G4double , + G4double& , + G4GPILSelection*); virtual G4double AtRestGetPhysicalInteractionLength(const G4Track&, - G4ForceCondition*); + G4ForceCondition*); virtual G4VParticleChange* AtRestDoIt(const G4Track&, - const G4Step&); + const G4Step&); virtual G4VParticleChange* AlongStepDoIt(const G4Track&, - const G4Step&); + const G4Step&); private: diff --git a/source/geometry/solids/STEPinterface/include/G4CylindricalSurfaceCreator.hh b/source/processes/transportation/include/G4MWeightWindowConfigurator.hh similarity index 53% rename from source/geometry/solids/STEPinterface/include/G4CylindricalSurfaceCreator.hh rename to source/processes/transportation/include/G4MWeightWindowConfigurator.hh index a6a4d11f21..bfde60e21a 100644 --- a/source/geometry/solids/STEPinterface/include/G4CylindricalSurfaceCreator.hh +++ b/source/processes/transportation/include/G4MWeightWindowConfigurator.hh @@ -21,48 +21,56 @@ // ******************************************************************** // // -// $Id: G4CylindricalSurfaceCreator.hh,v 1.5 2002/11/21 16:49:44 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MWeightWindowConfigurator.hh,v 1.5 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- -// Class G4CylindricalSurfaceCreator +// Class G4MWeightWindowConfigurator // // Class description: -// -// +// Configuration of weight window processes. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4CYLINDRICALSURFACECREATOR_HH -#define G4CYLINDRICALSURFACECREATOR_HH -#include "G4GeometryCreator.hh" +#ifndef G4MWeightWindowConfigurator_hh +#define G4MWeightWindowConfigurator_hh G4MWeightWindowConfigurator_hh -class G4CylindricalSurfaceCreator: private G4GeometryCreator +#include "G4Types.hh" +#include "G4ProcessPlacer.hh" +#include "G4VSamplerConfigurator.hh" +#include "G4PlaceOfAction.hh" + +class G4VWeightWindowStore; +class G4VWeightWindowAlgorithm; +class G4MassWeightWindowProcess; + +class G4MWeightWindowConfigurator : public G4VSamplerConfigurator { - public: - // Constructor & destructor +public: // with description - G4CylindricalSurfaceCreator(); - ~G4CylindricalSurfaceCreator(); + G4MWeightWindowConfigurator(const G4String &particlename, + G4VWeightWindowStore &wwstore, + const G4VWeightWindowAlgorithm *wwAlg, + G4PlaceOfAction placeOfAction); - // Member functions + virtual ~G4MWeightWindowConfigurator(); + virtual void Configure(G4VSamplerConfigurator *preConf); + virtual const G4VTrackTerminator *GetTrackTerminator() const; - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void* G4obj); - const char* Name() const { return "Cylindrical_Surface"; } - static G4CylindricalSurfaceCreator GetInstance(); +private: - // Members - - private: + G4MWeightWindowConfigurator(const G4MWeightWindowConfigurator &); + G4MWeightWindowConfigurator & + operator=(const G4MWeightWindowConfigurator &); - static G4CylindricalSurfaceCreator csc; + G4ProcessPlacer fPlacer; + G4VWeightWindowStore &fWeightWindowStore; + G4bool fDeleteWWalg; + const G4VWeightWindowAlgorithm *fWWalgorithm; + G4MassWeightWindowProcess *fMassWeightWindowProcess; + G4PlaceOfAction fPlaceOfAction; }; #endif diff --git a/source/processes/transportation/include/G4MassGCellFinder.hh b/source/processes/transportation/include/G4MassGCellFinder.hh index c8b5b134a4..c0d6bf6070 100644 --- a/source/processes/transportation/include/G4MassGCellFinder.hh +++ b/source/processes/transportation/include/G4MassGCellFinder.hh @@ -21,25 +21,22 @@ // ******************************************************************** // // -// $Id: G4MassGCellFinder.hh,v 1.1 2002/10/16 16:27:41 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MassGCellFinder.hh,v 1.2 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelGCellFinder // // Class description: // -// Find a G4GeometryCell in the mass geometry. -// +// Finds a G4GeometryCell in the mass geometry. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- - #ifndef G4MassGCellFinder_hh #define G4MassGCellFinder_hh G4MassGCellFinder_hh -#include "globals.hh" - +#include "G4Types.hh" #include "G4VGCellFinder.hh" class G4MassGCellFinder : public G4VGCellFinder diff --git a/source/processes/transportation/include/G4MassGeometrySampler.hh b/source/processes/transportation/include/G4MassGeometrySampler.hh index 6d11f5c0dd..9667af152f 100644 --- a/source/processes/transportation/include/G4MassGeometrySampler.hh +++ b/source/processes/transportation/include/G4MassGeometrySampler.hh @@ -21,46 +21,53 @@ // ******************************************************************** // // -// $Id: G4MassGeometrySampler.hh,v 1.4 2003/06/13 09:55:15 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MassGeometrySampler.hh,v 1.6 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4MassGeometrySampler // // Class description: // This class inherits from G4VSampler. It is used for scoring and -// importance smpling in the tracking (mass) geometry. +// importance sampling in the tracking (mass) geometry. // See also the description in G4VSampler.hh. -// + // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #ifndef G4MassGeometrySampler_hh #define G4MassGeometrySampler_hh G4MassGeometrySampler_hh +#include "G4Types.hh" +#include "G4String.hh" #include "G4VSampler.hh" -#include "globals.hh" #include "G4VSamplerConfigurator.hh" class G4MImportanceConfigurator; +class G4MWeightWindowConfigurator; class G4MScoreConfigurator; class G4WeightCutOffConfigurator; class G4VGCellFinder; -class G4MassGeometrySampler : public G4VSampler{ +class G4MassGeometrySampler : public G4VSampler +{ -public: +public: // with description explicit G4MassGeometrySampler(const G4String &particlename); virtual ~G4MassGeometrySampler(); virtual void PrepareScoring(G4VScorer *Scorer); virtual void PrepareImportanceSampling(G4VIStore *istore, - const G4VImportanceAlgorithm - *ialg); + const G4VImportanceAlgorithm + *ialg); virtual void PrepareWeightRoulett(G4double wsurvive, - G4double wlimit, - G4double isource); + G4double wlimit, + G4double isource); + virtual void PrepareWeightWindow(G4VWeightWindowStore *wwstore, + G4VWeightWindowAlgorithm *wwAlg, + G4PlaceOfAction placeOfAction); + virtual void Configure(); virtual void ClearSampling(); @@ -73,12 +80,15 @@ private: operator=(const G4MassGeometrySampler &); private: + G4String fParticleName; G4MImportanceConfigurator *fMImportanceConfigurator; G4MScoreConfigurator *fMScoreConfigurator; G4VGCellFinder *fGCellFinder; G4WeightCutOffConfigurator *fWeightCutOffConfigurator; G4VIStore *fIStore; + G4MWeightWindowConfigurator *fMWeightWindowConfigurator; + G4VWeightWindowStore *fWWStore; G4bool fIsConfigured; G4Configurators fConfigurators; }; diff --git a/source/processes/transportation/include/G4MassImportanceProcess.hh b/source/processes/transportation/include/G4MassImportanceProcess.hh index fdd48d1146..31034638a9 100644 --- a/source/processes/transportation/include/G4MassImportanceProcess.hh +++ b/source/processes/transportation/include/G4MassImportanceProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MassImportanceProcess.hh,v 1.7 2003/06/13 09:27:04 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MassImportanceProcess.hh,v 1.9 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4MassImportanceProcess @@ -40,23 +40,21 @@ #define G4MassImportanceProcess_hh G4MassImportanceProcess_hh #include "G4VProcess.hh" -#include "G4ImportanceFinder.hh" #include "G4VTrackTerminator.hh" -class G4ImportancePostStepDoIt; +class G4SamplingPostStepAction; class G4VImportanceAlgorithm; class G4VIStore; - class G4MassImportanceProcess : public G4VProcess, public G4VTrackTerminator { public: // with description G4MassImportanceProcess(const G4VImportanceAlgorithm &aImportanceAlgorithm, - const G4VIStore &aIstore, - const G4VTrackTerminator *TrackTerminator, - const G4String &aName = "MassImportanceProcess"); + const G4VIStore &aIstore, + const G4VTrackTerminator *TrackTerminator, + const G4String &aName = "MassImportanceProcess"); // creates a G4ParticleChange virtual ~G4MassImportanceProcess(); @@ -64,8 +62,8 @@ public: // with description virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition); + G4double previousStepSize, + G4ForceCondition* condition); // make process beeing forced virtual G4VParticleChange *PostStepDoIt(const G4Track&, const G4Step&); // manage the importance sampling in the "mass" geometry @@ -82,13 +80,13 @@ public: // without description virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*); + G4double , + G4double , + G4double& , + G4GPILSelection*); virtual G4double AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*); + G4ForceCondition*); virtual G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&); @@ -106,8 +104,8 @@ private: G4ParticleChange *fParticleChange; const G4VImportanceAlgorithm &fImportanceAlgorithm; - G4ImportanceFinder fImportanceFinder; - G4ImportancePostStepDoIt *fImportancePostStepDoIt; + const G4VIStore &fIStore; + G4SamplingPostStepAction *fPostStepAction; }; #endif diff --git a/source/processes/transportation/include/G4MassWeightWindowProcess.hh b/source/processes/transportation/include/G4MassWeightWindowProcess.hh new file mode 100644 index 0000000000..4f85627c0b --- /dev/null +++ b/source/processes/transportation/include/G4MassWeightWindowProcess.hh @@ -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: G4MassWeightWindowProcess.hh,v 1.4 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// Class G4MassWeioghtWindowProcess +// +// Class description: +// +// Used internally by weight window technique in the "mass" geometry. +// This process is a forced post step process. It will apply +// weight window biasing on boundaries, collisions +// or both according to the G4PlaceOfAction argument. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4MassWeioghtWindowProcess_hh +#define G4MassWeioghtWindowProcess_hh G4MassWeioghtWindowProcess_hh + +#include "G4VProcess.hh" +#include "G4VTrackTerminator.hh" +#include "G4PlaceOfAction.hh" + +class G4SamplingPostStepAction; +class G4VWeightWindowAlgorithm; +class G4VWeightWindowStore; + +class G4MassWeightWindowProcess : public G4VProcess, public G4VTrackTerminator +{ + +public: // with description + + G4MassWeightWindowProcess(const G4VWeightWindowAlgorithm & + aWeightWindowAlgorithm, + const G4VWeightWindowStore &aWWStore, + const G4VTrackTerminator *TrackTerminator, + G4PlaceOfAction placeOfAction, + const G4String &aName = + "MassWeightWindowProcess"); + // creates a G4ParticleChange + + virtual ~G4MassWeightWindowProcess(); + // delete the G4ParticleChange + + virtual G4double + PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // make process beeing forced + virtual G4VParticleChange *PostStepDoIt(const G4Track&, const G4Step&); + // aply weight window sampling + + virtual void KillTrack() const; + // used in case no scoring process follows that does the killing + + virtual const G4String &GetName() const; + + +public: // without description + + // no operation in AtRestDoIt and AlongStepDoIt + + virtual G4double + AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*); + virtual G4double + AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*); + + virtual G4VParticleChange* + AtRestDoIt(const G4Track&, const G4Step&); + + + virtual G4VParticleChange* + AlongStepDoIt(const G4Track&, const G4Step&); + +private: + + G4MassWeightWindowProcess(const G4MassWeightWindowProcess &); + G4MassWeightWindowProcess &operator=(const G4MassWeightWindowProcess &); + +private: + + G4ParticleChange *fParticleChange; + const G4VWeightWindowAlgorithm &fWeightWindowAlgorithm; + const G4VWeightWindowStore &fWeightWindowStore; + G4SamplingPostStepAction *fPostStepAction; + G4PlaceOfAction fPlaceOfAction; + +}; + +#endif diff --git a/source/processes/transportation/include/G4PImportanceConfigurator.hh b/source/processes/transportation/include/G4PImportanceConfigurator.hh index 640d509082..09ec98b915 100644 --- a/source/processes/transportation/include/G4PImportanceConfigurator.hh +++ b/source/processes/transportation/include/G4PImportanceConfigurator.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4PImportanceConfigurator.hh,v 1.3 2002/10/22 13:25:56 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PImportanceConfigurator.hh,v 1.5 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4PImportanceConfigurator // // Class description: -// This class builds and places the G4PImportanceProcess +// This class builds and places the G4PImportanceProcess. // If the object is deleted the process is removed from the // process list. @@ -38,28 +38,30 @@ #ifndef G4PImportanceConfigurator_hh #define G4PImportanceConfigurator_hh G4PImportanceConfigurator_hh +#include "G4Types.hh" #include "G4VSamplerConfigurator.hh" - -#include "globals.hh" #include "G4ImportanceSplitExaminer.hh" -#include "G4ParallelImportanceProcess.hh" #include "G4ProcessPlacer.hh" class G4ParallelWorld; class G4VImportanceAlgorithm; +class G4ParallelImportanceProcess; +class G4PImportanceConfigurator : public G4VSamplerConfigurator +{ + +public: // with description -class G4PImportanceConfigurator : public G4VSamplerConfigurator { -public: G4PImportanceConfigurator(const G4String &particlename, - G4ParallelWorld ¶llelWorld, - G4VIStore &istore, - const G4VImportanceAlgorithm *ialg); + G4ParallelWorld ¶llelWorld, + G4VIStore &istore, + const G4VImportanceAlgorithm *ialg); virtual ~G4PImportanceConfigurator(); virtual void Configure(G4VSamplerConfigurator *preConf); virtual const G4VTrackTerminator *GetTrackTerminator() const; private: + G4PImportanceConfigurator(const G4PImportanceConfigurator &); G4PImportanceConfigurator & operator=(const G4PImportanceConfigurator &); @@ -69,7 +71,7 @@ private: const G4VImportanceAlgorithm *fIalgorithm; G4ImportanceSplitExaminer fExaminer; G4ParallelImportanceProcess *fParallelImportanceProcess; + }; - #endif diff --git a/source/processes/transportation/include/G4PScoreConfigurator.hh b/source/processes/transportation/include/G4PScoreConfigurator.hh index 28049c6321..d2158e6cdc 100644 --- a/source/processes/transportation/include/G4PScoreConfigurator.hh +++ b/source/processes/transportation/include/G4PScoreConfigurator.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4PScoreConfigurator.hh,v 1.3 2002/10/22 13:25:56 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PScoreConfigurator.hh,v 1.5 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4PScoreConfigurator // // Class description: -// This class builds and places the G4PScoreProcess +// This class builds and places the G4PScoreProcess. // If the object is deleted the process is removed from the // process list. @@ -38,27 +38,30 @@ #ifndef G4PScoreConfigurator_hh #define G4PScoreConfigurator_hh G4PScoreConfigurator_hh +#include "G4Types.hh" #include "G4VSamplerConfigurator.hh" - -#include "globals.hh" -#include "G4PScoreProcess.hh" #include "G4ProcessPlacer.hh" class G4VParallelStepper; class G4VScorer; class G4VTrackTerminator; +class G4PScoreProcess; + +class G4PScoreConfigurator : public G4VSamplerConfigurator +{ + +public: // with description -class G4PScoreConfigurator : public G4VSamplerConfigurator{ -public: G4PScoreConfigurator(const G4String &particlename, - G4VParallelStepper &pstepper, - G4VScorer &scorer); + G4VParallelStepper &pstepper, + G4VScorer &scorer); virtual ~G4PScoreConfigurator(); virtual void Configure(G4VSamplerConfigurator *preConf); virtual const G4VTrackTerminator *GetTrackTerminator() const; private: + G4PScoreConfigurator(const G4PScoreConfigurator &); G4PScoreConfigurator &operator=(const G4PScoreConfigurator &); G4ProcessPlacer fPlacer; diff --git a/source/processes/transportation/include/G4PScoreProcess.hh b/source/processes/transportation/include/G4PScoreProcess.hh index fd2305ac8c..fef50555ff 100644 --- a/source/processes/transportation/include/G4PScoreProcess.hh +++ b/source/processes/transportation/include/G4PScoreProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PScoreProcess.hh,v 1.7 2002/10/22 13:25:56 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PScoreProcess.hh,v 1.8 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4PIScoreProcess @@ -31,10 +31,10 @@ // // Used internally by scoring in a "parallel" geometry. // This forced process messages a "scorer" derived from G4VScorer. -// The scorer is messaged with the current G4Step and G4GeometryCellStep. +// The scorer is messaged with the current G4Step and G4GeometryCellStep. // This post step process is supposed to be placed as the // process following directly after transportation and the -// importance sampling process if applied and before all physical +// importance sampling process if applied, and before all physical // post step processes. // Author: Michael Dressel (Michael.Dressel@cern.ch) @@ -49,14 +49,14 @@ class G4VParallelStepper; class G4VScorer; class G4PScoreProcess : public G4VProcess, - public G4VTrackTerminator + public G4VTrackTerminator { public: // with description G4PScoreProcess(G4VParallelStepper &astepper, - G4VScorer &aScorer, - const G4String &aName = "PScoreProcess"); + G4VScorer &aScorer, + const G4String &aName = "PScoreProcess"); // create a G4ParticleChange virtual ~G4PScoreProcess(); @@ -64,12 +64,12 @@ public: // with description virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition); + G4double previousStepSize, + G4ForceCondition* condition); // make the process beeing forced virtual G4VParticleChange * PostStepDoIt(const G4Track&, - const G4Step&); + const G4Step&); // get G4GeometryCellStep and G4Step and message "scorer" virtual void KillTrack() const; @@ -85,13 +85,13 @@ public: // without description virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*); + G4double , + G4double , + G4double& , + G4GPILSelection*); virtual G4double AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*); + G4ForceCondition*); virtual G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&); virtual G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&); diff --git a/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceWithKnotsCreator.hh b/source/processes/transportation/include/G4PWeightWindowConfigurator.hh similarity index 50% rename from source/geometry/solids/STEPinterface/include/G4BSplineSurfaceWithKnotsCreator.hh rename to source/processes/transportation/include/G4PWeightWindowConfigurator.hh index dba61b2451..e8412b9679 100644 --- a/source/geometry/solids/STEPinterface/include/G4BSplineSurfaceWithKnotsCreator.hh +++ b/source/processes/transportation/include/G4PWeightWindowConfigurator.hh @@ -21,48 +21,61 @@ // ******************************************************************** // // -// $Id: G4BSplineSurfaceWithKnotsCreator.hh,v 1.5 2002/11/21 16:49:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PWeightWindowConfigurator.hh,v 1.4 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- -// Class G4BSplineSurfaceWithKnotsCreator +// Class G4PWeightWindowConfigurator // // Class description: -// -// +// Configures the weight window processes for the parallel geometry. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4BSPLINESURFACEWITHKNOTSCREATOR_HH -#define G4BSPLINESURFACEWITHKNOTSCREATOR_HH -#include "G4BSplineSurfaceCreator.hh" +#ifndef G4PWeightWindowConfigurator_hh +#define G4PWeightWindowConfigurator_hh G4PWeightWindowConfigurator_hh -class G4BSplineSurfaceWithKnotsCreator: public G4BSplineSurfaceCreator +#include "G4Types.hh" +#include "G4ProcessPlacer.hh" +#include "G4VSamplerConfigurator.hh" +#include "G4PlaceOfAction.hh" +#include "G4WeightWindowExaminer.hh" + +class G4VWeightWindowStore; +class G4VWeightWindowAlgorithm; +class G4ParallelWorld; +class G4ParallelWeightWindowProcess; + +class G4PWeightWindowConfigurator : public G4VSamplerConfigurator { - public: - // Constructor & destructor +public: // with description - G4BSplineSurfaceWithKnotsCreator(); - ~G4BSplineSurfaceWithKnotsCreator(); + G4PWeightWindowConfigurator(const G4String &particlename, + G4ParallelWorld ¶llelWorld, + G4VWeightWindowStore &wwstore, + const G4VWeightWindowAlgorithm *wwAlg, + G4PlaceOfAction placeOfAction); - // Member functions + virtual ~G4PWeightWindowConfigurator(); + virtual void Configure(G4VSamplerConfigurator *preConf); + virtual const G4VTrackTerminator *GetTrackTerminator() const; - void CreateG4Geometry(STEPentity&); - void CreateSTEPGeometry(void*); - const char* Name() const { return "B_Spline_Surface_With_Knots"; } - static G4BSplineSurfaceWithKnotsCreator GetInstance(); +private: - // Members + G4PWeightWindowConfigurator(const G4PWeightWindowConfigurator &); + G4PWeightWindowConfigurator & + operator=(const G4PWeightWindowConfigurator &); - private: - - static G4BSplineSurfaceWithKnotsCreator csc; + G4ProcessPlacer fPlacer; + G4ParallelWorld &fPWorld; + G4bool fDeleteWWalg; + const G4VWeightWindowAlgorithm *fWWalgorithm; + G4WeightWindowExaminer fExaminer; + G4VProcess *fParallelWWProcess; + G4PlaceOfAction fPlaceOfAction; + G4VTrackTerminator *fTrackTerminator; }; #endif diff --git a/source/processes/transportation/include/G4ParallelGCellFinder.hh b/source/processes/transportation/include/G4ParallelGCellFinder.hh index b1a82adde1..491b9aaa33 100644 --- a/source/processes/transportation/include/G4ParallelGCellFinder.hh +++ b/source/processes/transportation/include/G4ParallelGCellFinder.hh @@ -21,16 +21,15 @@ // ******************************************************************** // // -// $Id: G4ParallelGCellFinder.hh,v 1.1 2002/10/16 16:27:41 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelGCellFinder.hh,v 1.2 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelGCellFinder // // Class description: // -// Find a G4GeometryCell in the parallel geometry. -// +// Finds a G4GeometryCell in the parallel geometry. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- @@ -38,11 +37,11 @@ #ifndef G4ParallelGCellFinder_hh #define G4ParallelGCellFinder_hh G4ParallelGCellFinder_hh -#include "globals.hh" - +#include "G4Types.hh" #include "G4VGCellFinder.hh" class G4VParallelStepper; + class G4ParallelGCellFinder : public G4VGCellFinder { @@ -56,7 +55,8 @@ public: // with description virtual G4GeometryCell GetPostGeometryCell(const G4Step &aStep) const; -private: +private: + const G4VParallelStepper &fPStepper; }; diff --git a/source/processes/transportation/include/G4ParallelGeometrySampler.hh b/source/processes/transportation/include/G4ParallelGeometrySampler.hh index b645aead03..d8f3296ca0 100644 --- a/source/processes/transportation/include/G4ParallelGeometrySampler.hh +++ b/source/processes/transportation/include/G4ParallelGeometrySampler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelGeometrySampler.hh,v 1.4 2003/06/13 09:55:16 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelGeometrySampler.hh,v 1.7 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelGeometrySampler @@ -31,21 +31,17 @@ // // Class description: // This class inherits from G4VSampler. It is used for scoring and -// importance smpling in a parallel geometry. -// See also the description in G4VSampler.hh. -// +// importance sampling in a parallel geometry. +// See also the description in G4VSampler. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #ifndef G4ParallelGeometrySampler_hh #define G4ParallelGeometrySampler_hh G4ParallelGeometrySampler_hh +#include "G4Types.hh" #include "G4VSampler.hh" - -#include "globals.hh" - #include "G4ParallelWorld.hh" - #include "G4VSamplerConfigurator.hh" class G4ParallelTransportConfigurator; @@ -53,24 +49,31 @@ class G4PScoreConfigurator; class G4PImportanceConfigurator; class G4WeightCutOffConfigurator; class G4VGCellFinder; +class G4PWeightWindowConfigurator; +class G4WeightWindowStore; -class G4ParallelGeometrySampler : public G4VSampler{ - -public: +class G4ParallelGeometrySampler : public G4VSampler +{ +public: // with description G4ParallelGeometrySampler(G4VPhysicalVolume &worldvolume, - const G4String &particlename); + const G4String &particlename); virtual ~G4ParallelGeometrySampler(); virtual void PrepareScoring(G4VScorer *Scorer); virtual void PrepareImportanceSampling(G4VIStore *istore, - const G4VImportanceAlgorithm - *ialg); + const G4VImportanceAlgorithm + *ialg); virtual void PrepareWeightRoulett(G4double wsurvive, - G4double wlimit, - G4double isource); + G4double wlimit, + G4double isource); + virtual void PrepareWeightWindow(G4VWeightWindowStore *wwstore, + G4VWeightWindowAlgorithm *wwAlg, + G4PlaceOfAction placeOfAction); + + virtual void Configure(); virtual void ClearSampling(); @@ -83,6 +86,7 @@ private: operator=(const G4ParallelGeometrySampler &); private: + G4String fParticleName; G4ParallelWorld fParallelWorld; G4ParallelTransportConfigurator *fParallelTransportConfigurator; @@ -91,9 +95,10 @@ private: G4VGCellFinder *fGCellFinder; G4WeightCutOffConfigurator *fWeightCutOffConfigurator; G4VIStore *fIStore; + G4PWeightWindowConfigurator *fPWeightWindowConfigurator; + G4VWeightWindowStore *fWWStore; G4bool fIsConfigured; G4Configurators fConfigurators; }; #endif - diff --git a/source/processes/transportation/include/G4ParallelImportanceProcess.hh b/source/processes/transportation/include/G4ParallelImportanceProcess.hh index 2e33195f38..db113b081c 100644 --- a/source/processes/transportation/include/G4ParallelImportanceProcess.hh +++ b/source/processes/transportation/include/G4ParallelImportanceProcess.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelImportanceProcess.hh,v 1.9 2003/06/13 09:27:04 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelImportanceProcess.hh,v 1.11 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelImportanceProcess @@ -41,27 +41,27 @@ #include "G4ParallelTransport.hh" #include "G4VTrackTerminator.hh" -class G4ImportancePostStepDoIt; +class G4SamplingPostStepAction; class G4VImportanceSplitExaminer; class G4Nsplit_Weight; - -class G4ParallelImportanceProcess : public G4ParallelTransport, public G4VTrackTerminator +class G4ParallelImportanceProcess : public G4ParallelTransport, + public G4VTrackTerminator { public: // with description G4ParallelImportanceProcess(const G4VImportanceSplitExaminer &aImportanceSplitExaminer, - G4VPGeoDriver &pgeodriver, - G4VParallelStepper &aStepper, - const G4VTrackTerminator *TrackTerminator, - const G4String &aName = "ParallelImportanceProcess"); + G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4VTrackTerminator *TrackTerminator, + const G4String &aName = "ParallelImportanceProcess"); // initialise G4ParallelTransport and members virtual ~G4ParallelImportanceProcess(); virtual G4VParticleChange *PostStepDoIt(const G4Track&, - const G4Step&); + const G4Step&); // do the "parallel transport" and importance sampling. virtual void KillTrack() const; @@ -69,7 +69,6 @@ public: // with description virtual const G4String &GetName() const; - private: G4ParallelImportanceProcess(const G4ParallelImportanceProcess &); @@ -81,11 +80,7 @@ private: G4ParticleChange *fParticleChange; const G4VImportanceSplitExaminer &fImportanceSplitExaminer; - G4ImportancePostStepDoIt *fImportancePostStepDoIt; + G4SamplingPostStepAction *fPostStepAction; }; #endif - - - - diff --git a/source/processes/transportation/include/G4ParallelTransport.hh b/source/processes/transportation/include/G4ParallelTransport.hh index 0a08260b67..a70a715375 100644 --- a/source/processes/transportation/include/G4ParallelTransport.hh +++ b/source/processes/transportation/include/G4ParallelTransport.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelTransport.hh,v 1.7 2003/06/16 17:12:40 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelTransport.hh,v 1.8 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelTransport @@ -32,7 +32,7 @@ // Used internally by importance sampling and scoring in a "parallel" // geometry. // This process "moves" a particle in a "parallel" geometry. -// It should be placed in the post step process do it vector after the +// It should be placed in the post step process do-it vector after the // G4Transportation process. // Author: Michael Dressel (Michael.Dressel@cern.ch) @@ -40,10 +40,10 @@ #ifndef G4ParallelTransport_hh #define G4ParallelTransport_hh G4ParallelTransport_hh +#include "G4Types.hh" #include #include "G4VProcess.hh" -#include "globals.hh" class G4VPGeoDriver; class G4VParallelStepper; @@ -54,8 +54,8 @@ class G4ParallelTransport : public G4VProcess public: // with description G4ParallelTransport(G4VPGeoDriver &pgeodriver, - G4VParallelStepper &aStepper, - const G4String &aName = "ParallelTransport"); + G4VParallelStepper &aStepper, + const G4String &aName = "ParallelTransport"); // create G4ParticleChange virtual ~G4ParallelTransport(); @@ -66,8 +66,8 @@ public: // with description virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition); + G4double previousStepSize, + G4ForceCondition* condition); // straight distance to the boundary in the "parallel" geometry // in the direction of the track @@ -94,13 +94,12 @@ public: // without description G4GPILSelection*); virtual G4double AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*); + G4ForceCondition*); virtual G4VParticleChange* AtRestDoIt(const G4Track&, - const G4Step&); + const G4Step&); virtual G4VParticleChange* AlongStepDoIt(const G4Track&, - const G4Step&); - + const G4Step&); protected: virtual void Error(const G4String &m); @@ -108,7 +107,6 @@ protected: G4ParticleChange *fParticleChange; - private: G4ParallelTransport(const G4ParallelTransport &); @@ -123,9 +121,11 @@ private: }; +// ------------------------------------------------------------ -inline const G4VParallelStepper &G4ParallelTransport:: -GetPStepper() const { +inline const G4VParallelStepper & +G4ParallelTransport::GetPStepper() const +{ return fPStepper; } diff --git a/source/processes/transportation/include/G4ParallelTransportConfigurator.hh b/source/processes/transportation/include/G4ParallelTransportConfigurator.hh index d742523118..85e29f7a86 100644 --- a/source/processes/transportation/include/G4ParallelTransportConfigurator.hh +++ b/source/processes/transportation/include/G4ParallelTransportConfigurator.hh @@ -21,14 +21,14 @@ // ******************************************************************** // // -// $Id: G4ParallelTransportConfigurator.hh,v 1.3 2002/10/22 13:25:56 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelTransportConfigurator.hh,v 1.4 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelTransportConfigurator // // Class description: -// This class builds and places the G4ParallelTransport +// This class builds and places the G4ParallelTransport. // If the object is deleted the process is removed from the // process list. @@ -38,26 +38,27 @@ #ifndef G4ParallelTransportConfigurator_hh #define G4ParallelTransportConfigurator_hh G4ParallelTransportConfigurator_hh +#include "G4Types.hh" #include "G4VSamplerConfigurator.hh" - -#include "globals.hh" #include "G4ParallelTransport.hh" #include "G4ProcessPlacer.hh" - class G4ParallelWorld; -class G4ParallelTransportConfigurator : public G4VSamplerConfigurator{ -public: +class G4ParallelTransportConfigurator : public G4VSamplerConfigurator +{ + +public: // with description + G4ParallelTransportConfigurator(const G4String &particlename, - G4ParallelWorld &pworld); + G4ParallelWorld &pworld); virtual ~G4ParallelTransportConfigurator(); virtual void Configure(G4VSamplerConfigurator *preConf); virtual const G4VTrackTerminator *GetTrackTerminator() const; private: - G4ParallelTransportConfigurator(const - G4ParallelTransportConfigurator &); + + G4ParallelTransportConfigurator(const G4ParallelTransportConfigurator &); G4ParallelTransportConfigurator & operator=(const G4ParallelTransportConfigurator &); G4ProcessPlacer fPlacer; @@ -65,5 +66,4 @@ private: G4ParallelTransport *fParallelTransport; }; - #endif diff --git a/source/processes/transportation/include/G4ParallelWWnTransportProcess.hh b/source/processes/transportation/include/G4ParallelWWnTransportProcess.hh new file mode 100644 index 0000000000..4cb901d0d8 --- /dev/null +++ b/source/processes/transportation/include/G4ParallelWWnTransportProcess.hh @@ -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: G4ParallelWWnTransportProcess.hh,v 1.4 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelWWnTransportProcess +// +// Class description: +// +// Used internally by weight window technique in a "parallel" geometry. +// This is a G4ParallelTransport that also does weight window +// sampling in the "parallel" geometry. It is used in case +// the ww is applied only on the paralle boundaries. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ParallelWWnTransportProcess_hh +#define G4ParallelWWnTransportProcess_hh G4ParallelWWnTransportProcess_hh + +#include "G4ParallelTransport.hh" +#include "G4VTrackTerminator.hh" + +class G4SamplingPostStepAction; +class G4VWeightWindowExaminer; +class G4Nsplit_Weight; + +class G4ParallelWWnTransportProcess : public G4ParallelTransport, + public G4VTrackTerminator +{ + +public: // with description + + G4ParallelWWnTransportProcess(const G4VWeightWindowExaminer + &aWeightWindowExaminer, + G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4VTrackTerminator *TrackTerminator, + const G4String &aName = + "ParallelWWnTransportProcess"); + // initialise G4ParallelTransport and members + + virtual ~G4ParallelWWnTransportProcess(); + + + virtual G4VParticleChange *PostStepDoIt(const G4Track&, + const G4Step&); + // do the "parallel transport" and weight window sampling + + virtual void KillTrack() const; + // used in case no scoring process follows that does the killing + + virtual const G4String &GetName() const; + + +private: + + G4ParallelWWnTransportProcess(const G4ParallelWWnTransportProcess &); + G4ParallelWWnTransportProcess &operator=(const G4ParallelWWnTransportProcess &); + + virtual void Error(const G4String &m); + +private: + + G4ParticleChange *fParticleChange; + const G4VWeightWindowExaminer &fWeightWindowExaminer; + G4SamplingPostStepAction *fPostStepAction; +}; + +#endif diff --git a/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh b/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh new file mode 100644 index 0000000000..a11912f531 --- /dev/null +++ b/source/processes/transportation/include/G4ParallelWeightWindowProcess.hh @@ -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: G4ParallelWeightWindowProcess.hh,v 1.9 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// Class G4ParallelWeightWindowProcess +// +// Class description: +// +// Used internally by weight window technique in a "parallel" geometry. +// This process is a forced post step process. It will apply +// weight window biasing on collisions or on collisions and +// boundaries according to the G4PlaceOfAction argument. +// It is not used in the case where it should apply only on boundaries. + +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- +#ifndef G4ParallelWeightWindowProcess_hh +#define G4ParallelWeightWindowProcess_hh G4ParallelWeightWindowProcess_hh + +#include "G4VProcess.hh" +#include "G4VTrackTerminator.hh" +#include "G4PlaceOfAction.hh" + +class G4SamplingPostStepAction; +class G4VWeightWindowExaminer; +class G4Nsplit_Weight; +class G4VParallelStepper; +class G4VParallelStepper; + +class G4ParallelWeightWindowProcess : public G4VProcess,\ + public G4VTrackTerminator +{ + +public: // with description + + G4ParallelWeightWindowProcess(const G4VWeightWindowExaminer + &aWeightWindowExaminer, + G4VParallelStepper &aStepper, + const G4VTrackTerminator *TrackTerminator, + G4PlaceOfAction placeOfAction, + const G4String &aName = + "ParallelWeightWindowProcess"); + // initialise G4ParallelTransport and members + + virtual ~G4ParallelWeightWindowProcess(); + + virtual G4double + PostStepGetPhysicalInteractionLength(const G4Track& aTrack, + G4double previousStepSize, + G4ForceCondition* condition); + // make process beeing forced + virtual G4VParticleChange *PostStepDoIt(const G4Track&, const G4Step&); + // apply weight window sampliing + + virtual void KillTrack() const; + // used in case no scoring process follows that does the killing + + virtual const G4String &GetName() const; + + +public: // without description + + // no operation in AtRestDoIt and AlongStepDoIt + + virtual G4double + AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*); + virtual G4double + AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*); + + virtual G4VParticleChange* + AtRestDoIt(const G4Track&, const G4Step&); + + + virtual G4VParticleChange* + AlongStepDoIt(const G4Track&, const G4Step&); + + +private: + + G4ParallelWeightWindowProcess(const G4ParallelWeightWindowProcess &); + G4ParallelWeightWindowProcess &operator=(const G4ParallelWeightWindowProcess &); + + virtual void Error(const G4String &m); + +private: + + G4ParticleChange *fParticleChange; + const G4VWeightWindowExaminer &fWeightWindowExaminer; + G4VParallelStepper &fStepper; + G4SamplingPostStepAction *fPostStepAction; + G4PlaceOfAction fPlaceOfAction; +}; + +#endif diff --git a/source/geometry/solids/STEPinterface/include/G4StepFileReader.hh b/source/processes/transportation/include/G4PlaceOfAction.hh similarity index 71% rename from source/geometry/solids/STEPinterface/include/G4StepFileReader.hh rename to source/processes/transportation/include/G4PlaceOfAction.hh index 2e9daa9c70..7dd66432ec 100644 --- a/source/geometry/solids/STEPinterface/include/G4StepFileReader.hh +++ b/source/processes/transportation/include/G4PlaceOfAction.hh @@ -21,38 +21,26 @@ // ******************************************************************** // // -// $Id: G4StepFileReader.hh,v 1.5 2001/07/11 10:00:06 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PlaceOfAction.hh,v 1.3 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- -// Class G4StepFileReader +// Class G4PlaceOfAction // // Class description: -// -// +// This is an enum to specify when weight window sampling shoul be +// applied: onBoundary, onCollision, onBoundaryAndCollision. -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4STEPFILEREADER_HH -#define G4STEPFILEREADER_HH +#ifndef G4PlaceOfAction_hh +#define G4PlaceOfAction_hh G4PlaceOfAction_hh -#include -#include "globals.hh" - -class G4StepFileReader +enum G4PlaceOfAction { - public: - G4StepFileReader(){;} - virtual ~G4StepFileReader(){;} - - virtual void ReadSTEPFile(const char*)=0; - virtual void SaveSTEPFile()=0; - virtual void UpdateSTEPFile()=0; - virtual InstMgr GetInstanceManager() const=0; + onBoundary = 1, + onCollision = 2, + onBoundaryAndCollision = 3 }; #endif diff --git a/source/processes/transportation/include/G4ProcessPlacer.hh b/source/processes/transportation/include/G4ProcessPlacer.hh index bc16378a36..eb5959ce74 100644 --- a/source/processes/transportation/include/G4ProcessPlacer.hh +++ b/source/processes/transportation/include/G4ProcessPlacer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessPlacer.hh,v 1.6 2002/10/16 16:26:58 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProcessPlacer.hh,v 1.7 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ProcessPlacer @@ -30,14 +30,15 @@ // Class description: // // Used internally by importance sampling and scoring. -// See G4VProcessPlacer.hh. +// See G4VProcessPlacer. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #ifndef G4ProcessPlacer_hh #define G4ProcessPlacer_hh G4ProcessPlacer_hh -#include "globals.hh" +#include "G4Types.hh" +#include "G4String.hh" #include "G4VProcessPlacer.hh" class G4ProcessManager; @@ -72,13 +73,9 @@ public: // with description eLast = 0 }; - private: G4ProcessManager *GetProcessManager(); - - - void AddProcessAs(G4VProcess *process, SecondOrLast); void PrintProcVec(G4ProcessVector* processVec); diff --git a/source/processes/transportation/include/G4ImportancePostStepDoIt.hh b/source/processes/transportation/include/G4SamplingPostStepAction.hh similarity index 71% rename from source/processes/transportation/include/G4ImportancePostStepDoIt.hh rename to source/processes/transportation/include/G4SamplingPostStepAction.hh index 11b477e8c1..b8d7536f3c 100644 --- a/source/processes/transportation/include/G4ImportancePostStepDoIt.hh +++ b/source/processes/transportation/include/G4SamplingPostStepAction.hh @@ -21,22 +21,21 @@ // ******************************************************************** // // -// $Id: G4ImportancePostStepDoIt.hh,v 1.6 2002/10/16 16:26:58 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SamplingPostStepAction.hh,v 1.1 2003/11/26 14:51:27 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- -// Class G4ImportancePostStepDoIt +// Class G4SamplingPostStepAction // // Class description: // -// Used internally by importance sampling. -// It is responsible for the common part of importance sampling -// for the "mass" and "parallel" geometry. +// Used internally by importance and weight window sampling. +// Creates cloned tracks or kills tracks. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#ifndef G4ImportancePostStepDoIt_hh -#define G4ImportancePostStepDoIt_hh G4ImportancePostStepDoIt_hh +#ifndef G4SamplingPostStepAction_hh +#define G4SamplingPostStepAction_hh G4SamplingPostStepAction_hh class G4VImportanceSplitExaminer; class G4ParticleChange; @@ -45,33 +44,32 @@ class G4Step; class G4Nsplit_Weight; class G4VTrackTerminator; - -class G4ImportancePostStepDoIt +class G4SamplingPostStepAction { public: // with description - explicit G4ImportancePostStepDoIt(const G4VTrackTerminator & - TrackTerminator); - // simply construct + explicit G4SamplingPostStepAction(const G4VTrackTerminator &TrackTerminator); + // Constructor - ~G4ImportancePostStepDoIt(); - // simple destruct + ~G4SamplingPostStepAction(); + // Destructor void DoIt(const G4Track& aTrack, - G4ParticleChange *aParticleChange, - const G4Nsplit_Weight &nw); - // Do the PostStepDoIt part common to importance sampling in the + G4ParticleChange *aParticleChange, + const G4Nsplit_Weight &nw); + // Do the PostStepDoIt part common to importance and weight window + // sampling in the // "mass" and "parallel" geometry. private: + void Split(const G4Track &aTrack, - const G4Nsplit_Weight &nw, - G4ParticleChange *aParticleChange); + const G4Nsplit_Weight &nw, + G4ParticleChange *aParticleChange); const G4VTrackTerminator &fTrackTerminator; - }; #endif diff --git a/source/processes/transportation/include/G4TrackTerminator.hh b/source/processes/transportation/include/G4TrackTerminator.hh index 2f2e9cef1b..cc10b5d171 100644 --- a/source/processes/transportation/include/G4TrackTerminator.hh +++ b/source/processes/transportation/include/G4TrackTerminator.hh @@ -21,41 +21,46 @@ // ******************************************************************** // // -// $Id: G4TrackTerminator.hh,v 1.1 2002/10/16 16:27:41 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TrackTerminator.hh,v 1.2 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4TrackTerminator // // Class description: // -// This is an interface for an object which maybe told to kill a track. -// The type it provides is needed in case importance biasing and -// scoring is done at the same time. -// For navigation in the parallel geometry which is done -// by the importance biasing process (it derives from G4ParallelTransport) -// importance biasing has to be done before scoring (to score the correct -// volume). But since scoring would not be called if the importance -// biasing kills a track it only tells a G4TrackTerminator to kill the -// track. The scoring process implements the interface G4TrackTerminator -// and is now able to kill the track after it has done the scoring. -// +// This is an interface for an object which can be called to kill a track. +// The type it provides is needed in case importance biasing and scoring +// is done at the same time. +// For navigation in the parallel geometry which is done by the importance +// biasing process (it derives from G4ParallelTransport), importance +// biasing has to be done before scoring (to score the correct volume). +// But since scoring would not be called if the importance biasing kills +// a track, it only tells a G4TrackTerminator to kill the track. +// The scoring process implements the interface G4TrackTerminator +// and is now able to kill the track after it has performed the scoring. + // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- - #ifndef G4TrackTerminator_hh #define G4TrackTerminator_hh G4TrackTerminator_hh -#include "globals.hh" -class G4TrackTerminator { -public: - G4TrackTerminator(): - fKillTrack(false) - {} +#include "G4Types.hh" + +class G4TrackTerminator +{ + +public: // without description + + G4TrackTerminator() + : fKillTrack(false) {} ~G4TrackTerminator(); + void SetKillTrack(){fKillTrack = true;} G4bool GetKillTrack() const {return fKillTrack;} + private: + G4bool fKillTrack; }; diff --git a/source/processes/transportation/include/G4Transportation.hh b/source/processes/transportation/include/G4Transportation.hh index 3fa61546e8..0fc95a30c9 100644 --- a/source/processes/transportation/include/G4Transportation.hh +++ b/source/processes/transportation/include/G4Transportation.hh @@ -21,21 +21,21 @@ // ******************************************************************** // // -// $Id: G4Transportation.hh,v 1.7 2002/08/29 15:32:00 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Transportation.hh,v 1.9 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ -// GEANT 4 include file implementation -// +// GEANT 4 include file implementation // ------------------------------------------------------------ // -// This class' object is a process responsible for the transportation of -// a particle, ie the geometrical propagation that encounters the +// Class description: +// +// G4Transportation is a process responsible for the transportation of +// a particle, i.e. the geometrical propagation encountering the // geometrical sub-volumes of the detectors. -// -// It is also tasked with part of updating the "safety". -// +// It is also tasked with part of updating the "safety". + // ======================================================================= // Created: 19 March 1997, J. Apostolakis // ======================================================================= @@ -56,68 +56,75 @@ class G4Transportation : public G4VProcess { // Concrete class that does the geometrical transport - public: - G4Transportation(); + public: // with description + + G4Transportation( G4int verbosityLevel= 1); ~G4Transportation(); - // G4double GetContinuousStepLimit ( G4double AlongStepGetPhysicalInteractionLength( const G4Track& track, - G4double previousStepSize, - G4double currentMinimumStep, - G4double& currentSafety, - G4GPILSelection* selection - ); + G4double previousStepSize, + G4double currentMinimumStep, + G4double& currentSafety, + G4GPILSelection* selection + ); G4VParticleChange* AlongStepDoIt( - const G4Track& track, - const G4Step& stepData - ); + const G4Track& track, + const G4Step& stepData + ); - // This only does the relocation - // G4VParticleChange* PostStepDoIt( - const G4Track& track, - const G4Step& stepData - ); + const G4Track& track, + const G4Step& stepData + ); + // Responsible for the relocation. - // This forces the PostStepDoIt action to be called, - // but does not limit the step. - // G4double PostStepGetPhysicalInteractionLength( const G4Track& , - G4double previousStepSize, - G4ForceCondition* pForceCond - ); + G4double previousStepSize, + G4ForceCondition* pForceCond + ); + // Forces the PostStepDoIt action to be called, + // but does not limit the step. - // Access/set the assistant class that Propagate in a Field G4PropagatorInField* GetPropagatorInField(); void SetPropagatorInField( G4PropagatorInField* pFieldPropagator); + // Access/set the assistant class that Propagate in a Field. + + void SetVerboseLevel( G4int verboseLevel ); + G4int GetVerboseLevel() const; + // Level of warnings regarding eg energy conservation + // in field integration. + + public: // without description - // no operation in AtRestDoIt G4double AtRestGetPhysicalInteractionLength( const G4Track& , - G4ForceCondition* - ) { return -1.0; }; + G4ForceCondition* + ) { return -1.0; }; + // No operation in AtRestDoIt. - // no operation in AtRestDoIt G4VParticleChange* AtRestDoIt( - const G4Track& , - const G4Step& - ) {return NULL;}; + const G4Track& , + const G4Step& + ) {return 0;}; + // No operation in AtRestDoIt. + protected: - // Checks whether a field exists for the "global" field manager. + G4bool DoesGlobalFieldExist(); + // Checks whether a field exists for the "global" field manager. private: - // The Propagators used to transport the particle + G4Navigator* fLinearNavigator; G4PropagatorInField* fFieldPropagator; + // The Propagators used to transport the particle - // Field Manager for the whole Detector // G4FieldManager* fGlobalFieldMgr; // Used MagneticField CC + // Field Manager for the whole Detector - // The particle's state after this Step, Store for DoIt G4ThreeVector fTransportEndPosition; G4ThreeVector fTransportEndMomentumDir; G4double fTransportEndKineticEnergy; @@ -126,40 +133,34 @@ class G4Transportation : public G4VProcess G4bool fEnergyChanged; G4bool fEndGlobalTimeComputed; G4double fCandidateEndGlobalTime; + // The particle's state after this Step, Store for DoIt G4bool fParticleIsLooping; G4TouchableHandle fCurrentTouchableHandle; - // Whether a magnetic field exists ... // G4bool fFieldExists; - // The above data member is problematic: it is useful only if - // it is initialised. However the transportation process(es) are not - // capable of doing this initialisation itself (themselves) and there - // seems no alternative agent capable of doing it right now. - // Eg, at construction time it is likely that the field manager has - // not yet been informed about the detector's field - // I cannot foresee how the transportation can be informed later. JA - // The current answer is to ignore this data member and use - // the member function DoesGlobalFieldExist() in its place ... - // John Apostolakis, July 7, 1997 + // Whether a magnetic field exists ... + // A data member for this is problematic: it is useful only if it + // can be initialised and updated -- and a scheme is not yet possible. - // Flag to determine whether a boundary was reached. G4bool fGeometryLimitedStep; + // Flag to determine whether a boundary was reached. - // Remember last safety origin & value. G4ThreeVector fPreviousSftOrigin; G4double fPreviousSafety; + // Remember last safety origin & value. - // New ParticleChange G4ParticleChangeForTransport fParticleChange; + // New ParticleChange G4double endpointDistance; -}; + G4int fVerboseLevel; + // Verbosity level for warnings + // eg about energy non-conservation in magnetic field. +}; #include "G4Transportation.icc" #endif - -// End of G4Transportation.hh diff --git a/source/processes/transportation/include/G4Transportation.icc b/source/processes/transportation/include/G4Transportation.icc index b69a8445fa..2545afa36a 100644 --- a/source/processes/transportation/include/G4Transportation.icc +++ b/source/processes/transportation/include/G4Transportation.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Transportation.icc,v 1.4 2001/11/06 01:38:19 radoone Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Transportation.icc,v 1.7 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -34,7 +34,8 @@ // ======================================================================= // -inline void G4Transportation::SetPropagatorInField( G4PropagatorInField* pFieldPropagator) +inline void +G4Transportation::SetPropagatorInField( G4PropagatorInField* pFieldPropagator) { fFieldPropagator= pFieldPropagator; } @@ -54,3 +55,12 @@ inline G4bool G4Transportation::DoesGlobalFieldExist() return transportMgr->GetFieldManager()->DoesFieldExist(); } +inline void G4Transportation::SetVerboseLevel( G4int verboseLev ) +{ + fVerboseLevel= verboseLev; +} + +inline G4int G4Transportation::GetVerboseLevel( ) const +{ + return fVerboseLevel; +} diff --git a/source/processes/transportation/include/G4UserSpecialCuts.hh b/source/processes/transportation/include/G4UserSpecialCuts.hh index 4d0be0ba52..e764d5282d 100644 --- a/source/processes/transportation/include/G4UserSpecialCuts.hh +++ b/source/processes/transportation/include/G4UserSpecialCuts.hh @@ -21,19 +21,18 @@ // ******************************************************************** // // -// $Id: G4UserSpecialCuts.hh,v 1.5 2002/08/29 15:32:00 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// ------------------------------------------------------------ -// 15 April 1998 M.Maire -// ------------------------------------------------------------ +// $Id: G4UserSpecialCuts.hh,v 1.7 2003/11/26 14:51:48 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // class description // -// a "process" to be registered to the process manager of each particle, -// in the UserPhysicsList, in order to take account the user limits defined in the -// G4UserLimits attached to a logical volume. -// +// A "process" to be registered to the process manager of each particle, +// in the UserPhysicsList, in order to take into account the user limits +// defined in the G4UserLimits object attached to a logical volume. +// ------------------------------------------------------------ +// 15 April 1998 M.Maire +// ------------------------------------------------------------ #ifndef G4UserSpecialCuts_h #define G4UserSpecialCuts_h 1 @@ -41,12 +40,11 @@ #include "globals.hh" #include "G4VProcess.hh" -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... -//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... +class G4LossTableManager; class G4UserSpecialCuts : public G4VProcess { - public: //with description + public: // with description G4UserSpecialCuts(const G4String& processName ="UserSpecialCut" ); @@ -54,43 +52,43 @@ class G4UserSpecialCuts : public G4VProcess virtual G4double PostStepGetPhysicalInteractionLength( const G4Track& track, - G4double previousStepSize, - G4ForceCondition* condition - ); + G4double previousStepSize, + G4ForceCondition* condition + ); virtual G4VParticleChange* PostStepDoIt( - const G4Track& , - const G4Step& - ); - - public: //without description - + const G4Track& , + const G4Step& + ); + + public: // without description + // no operation in AtRestGPIL virtual G4double AtRestGetPhysicalInteractionLength( const G4Track& , - G4ForceCondition* - ){ return -1.0; }; - + G4ForceCondition* + ){ return -1.0; }; + // no operation in AtRestDoIt virtual G4VParticleChange* AtRestDoIt( - const G4Track& , - const G4Step& - ){return NULL;}; + const G4Track& , + const G4Step& + ){return 0;}; // no operation in AlongStepGPIL virtual G4double AlongStepGetPhysicalInteractionLength( const G4Track&, - G4double , - G4double , - G4double& , + G4double , + G4double , + G4double& , G4GPILSelection* - ){ return -1.0; }; + ){ return -1.0; }; // no operation in AlongStepDoIt virtual G4VParticleChange* AlongStepDoIt( - const G4Track& , - const G4Step& - ) {return NULL;}; + const G4Track& , + const G4Step& + ) {return 0;}; private: @@ -98,6 +96,8 @@ class G4UserSpecialCuts : public G4VProcess G4UserSpecialCuts(G4UserSpecialCuts&); G4UserSpecialCuts& operator=(const G4UserSpecialCuts& right); + G4LossTableManager* theLossTableManager; + }; #endif diff --git a/source/processes/transportation/include/G4VProcessPlacer.hh b/source/processes/transportation/include/G4VProcessPlacer.hh index 18118f1e6c..fa36f1fab1 100644 --- a/source/processes/transportation/include/G4VProcessPlacer.hh +++ b/source/processes/transportation/include/G4VProcessPlacer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VProcessPlacer.hh,v 1.7 2002/10/16 16:26:58 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VProcessPlacer.hh,v 1.8 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VProcessPlacer @@ -30,14 +30,14 @@ // Class description: // // Used internally by importance sampling and scoring to place -// processes as second or last PostStepDoit processes. +// processes as second or last PostStepDoIt processes. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #ifndef G4VProcessPlacer_hh #define G4VProcessPlacer_hh G4VProcessPlacer_hh -#include "globals.hh" +#include "G4Types.hh" class G4VProcess; @@ -62,7 +62,6 @@ public: // with description virtual void RemoveProcess(G4VProcess *process) = 0; // removes a given process - }; #endif diff --git a/source/processes/transportation/include/G4VSampler.hh b/source/processes/transportation/include/G4VSampler.hh index b237cf2556..0c177dd23e 100644 --- a/source/processes/transportation/include/G4VSampler.hh +++ b/source/processes/transportation/include/G4VSampler.hh @@ -21,37 +21,38 @@ // ******************************************************************** // // -// $Id: G4VSampler.hh,v 1.7 2003/06/13 09:55:16 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSampler.hh,v 1.9 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VSampler // // Class description: // -// This interface discribes a configurable sampler. +// This interface describes a configurable sampler. // It applies to a given particle type. // Concrete classes with this interface may be used for -// scoring, importance sampling and weigth cutoff (weight roulett). -// +// scoring, importance sampling and weight cutoff (weight roulette). // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #ifndef G4VSampler_hh #define G4VSampler_hh G4VSampler_hh - -#include "globals.hh" +#include "G4Types.hh" +#include "G4PlaceOfAction.hh" class G4VPhysicalVolume; class G4VImportanceAlgorithm; class G4VIStore; +class G4VWeightWindowAlgorithm; +class G4VWeightWindowStore; class G4VScorer; +class G4VSampler +{ -class G4VSampler { - -public: +public: // with description G4VSampler(); virtual ~G4VSampler(); @@ -59,13 +60,18 @@ public: virtual void PrepareScoring(G4VScorer *Scorer) = 0; virtual void PrepareImportanceSampling(G4VIStore *istore, - const G4VImportanceAlgorithm - *ialg = 0) = 0; + const G4VImportanceAlgorithm + *ialg = 0) = 0; virtual void PrepareWeightRoulett(G4double wsurvive = 0.5, - G4double wlimit = 0.25, - G4double isource = 1) = 0; + G4double wlimit = 0.25, + G4double isource = 1) = 0; + + virtual void PrepareWeightWindow(G4VWeightWindowStore *wwstore, + G4VWeightWindowAlgorithm *wwAlg = 0, + G4PlaceOfAction placeOfAction = + onBoundary) = 0; virtual void Configure() = 0; @@ -77,4 +83,3 @@ public: }; #endif - diff --git a/source/processes/transportation/include/G4VSamplerConfigurator.hh b/source/processes/transportation/include/G4VSamplerConfigurator.hh index bc9197965c..e4086ac9f9 100644 --- a/source/processes/transportation/include/G4VSamplerConfigurator.hh +++ b/source/processes/transportation/include/G4VSamplerConfigurator.hh @@ -19,47 +19,49 @@ // * based on the Program) you indicate your acceptance of this * // * statement, and all its terms. * // ******************************************************************** -// ******************************************************************** // // -// $Id: G4VSamplerConfigurator.hh,v 1.4 2003/06/16 17:12:41 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VSamplerConfigurator.hh,v 1.6 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VSamplerConfigurator // // Class description: // -// This is an interface for configurators seeting up processes +// This is an interface for configurators setting up processes // needed for importance sampling and scoring. // The Configurator may be given a pointer to another Configurator. // If a configurator will be given a pointer to another configurator // it may obtain a G4VTrackTerminator from the given Configurator. // This way it is possible to delegate the killing of a track. -// + // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- - #ifndef G4VSamplerConfigurator_hh #define G4VSamplerConfigurator_hh G4VSamplerConfigurator_hh -#include "globals.hh" +#include "G4Types.hh" #include + class G4VTrackTerminator; +class G4VSamplerConfigurator +{ + +public: // with description -class G4VSamplerConfigurator{ -public: G4VSamplerConfigurator(); virtual ~G4VSamplerConfigurator(); + virtual void Configure(G4VSamplerConfigurator *preConf) = 0; - // do the configuration, if preConf is given a - // G4VTrackTerminator may be obtained from it + // Do the configuration, if preConf is given a + // G4VTrackTerminator may be obtained from it. + virtual const G4VTrackTerminator *GetTrackTerminator() const = 0; - // return a G4VTrackTerminator or 0 + // Return a G4VTrackTerminator or 0. }; typedef std::vector G4Configurators; - #endif diff --git a/source/processes/transportation/include/G4VTrackTerminator.hh b/source/processes/transportation/include/G4VTrackTerminator.hh index 011710ca20..25f5dc554c 100644 --- a/source/processes/transportation/include/G4VTrackTerminator.hh +++ b/source/processes/transportation/include/G4VTrackTerminator.hh @@ -21,34 +21,38 @@ // ******************************************************************** // // -// $Id: G4VTrackTerminator.hh,v 1.4 2002/10/16 16:26:59 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VTrackTerminator.hh,v 1.5 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4VTrackTerminator // // Class description: // -// This is an interface for an object which maybe told to kill a track. -// The type it provides is needed in case importance biasing and -// scoring is done at the same time. -// For navigation in the parallel geometry which is done -// by the importance biasing process (it derives from G4ParallelTransport) -// importance biasing has to be done before scoring (to score the correct -// volume). But since scoring would not be called if the importance -// biasing kills a track it only tells a G4VTrackTerminator to kill the -// track. The scoring process implements the interface G4VTrackTerminator -// and is now able to kill the track after it has done the scoring. -// +// This is an interface for an object which can be called to kill a track. +// The type it provides is needed in case importance biasing and scoring +// is done at the same time. +// For navigation in the parallel geometry which is done by the importance +// biasing process (it derives from G4ParallelTransport), importance biasing +// has to be done before scoring (to score the correct volume). +// But since scoring would not be called if the importance biasing kills a +// track, it only tells a G4VTrackTerminator to kill the track. +// The scoring process implements the interface G4VTrackTerminator +// and is now able to kill the track after it has performed the scoring. + // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- - #ifndef G4VTrackTerminator_hh #define G4VTrackTerminator_hh G4VTrackTerminator_hh -#include "globals.hh" -class G4VTrackTerminator { -public: +#include "G4Types.hh" +#include "G4String.hh" + +class G4VTrackTerminator +{ + +public: // with description + G4VTrackTerminator(); virtual ~G4VTrackTerminator(); virtual void KillTrack() const = 0; diff --git a/source/processes/transportation/include/G4WeightCutOffConfigurator.hh b/source/processes/transportation/include/G4WeightCutOffConfigurator.hh index 0256d159b1..cb5a22cc2c 100644 --- a/source/processes/transportation/include/G4WeightCutOffConfigurator.hh +++ b/source/processes/transportation/include/G4WeightCutOffConfigurator.hh @@ -21,47 +21,48 @@ // ******************************************************************** // // -// $Id: G4WeightCutOffConfigurator.hh,v 1.3 2002/10/22 13:25:57 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4WeightCutOffConfigurator.hh,v 1.4 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4WeightCutOffConfigurator // // Class description: -// This class builds and places the G4WeightCutOffProcess +// This class builds and places the G4WeightCutOffProcess. // If the object is deleted the process is removed from the // process list. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- - #ifndef G4WeightCutOffConfigurator_hh #define G4WeightCutOffConfigurator_hh G4WeightCutOffConfigurator_hh +#include "G4Types.hh" #include "G4VSamplerConfigurator.hh" - -#include "globals.hh" #include "G4ProcessPlacer.hh" class G4WeightCutOffProcess; class G4VGCellFinder; class G4VIStore; +class G4WeightCutOffConfigurator : public G4VSamplerConfigurator +{ + +public: // with description -class G4WeightCutOffConfigurator : public G4VSamplerConfigurator { -public: G4WeightCutOffConfigurator(const G4String &particlename, - G4double wsurvival, - G4double wlimit, - G4double isource, - G4VIStore *istore, - const G4VGCellFinder &aGCellFinder); + G4double wsurvival, + G4double wlimit, + G4double isource, + G4VIStore *istore, + const G4VGCellFinder &aGCellFinder); virtual ~G4WeightCutOffConfigurator(); virtual void Configure(G4VSamplerConfigurator *preConf); virtual const G4VTrackTerminator *GetTrackTerminator() const ; private: + G4WeightCutOffConfigurator(const G4WeightCutOffConfigurator&); G4WeightCutOffConfigurator & operator=(const G4WeightCutOffConfigurator&); @@ -70,5 +71,4 @@ private: G4bool fPlaced; }; - #endif diff --git a/source/processes/transportation/include/G4WeightCutOffProcess.hh b/source/processes/transportation/include/G4WeightCutOffProcess.hh index 17936506e7..353a5dcf43 100644 --- a/source/processes/transportation/include/G4WeightCutOffProcess.hh +++ b/source/processes/transportation/include/G4WeightCutOffProcess.hh @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4WeightCutOffProcess.hh,v 1.2 2002/10/16 16:26:59 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4WeightCutOffProcess.hh,v 1.3 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4WeightCutOffProcess // // Class description: // +// Process for biasing particle-change cutoff. // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- @@ -48,11 +49,11 @@ class G4WeightCutOffProcess : public G4VProcess public: // with description G4WeightCutOffProcess(G4double wsurvival, - G4double wlimit, - G4double isource, - G4VIStore *istore, - const G4VGCellFinder &aGCellFinder, - const G4String &aName = "WeightCutOffProcess"); + G4double wlimit, + G4double isource, + G4VIStore *istore, + const G4VGCellFinder &aGCellFinder, + const G4String &aName = "WeightCutOffProcess"); // create a G4ParticleChange virtual ~G4WeightCutOffProcess(); @@ -60,31 +61,30 @@ public: // with description virtual G4double PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double previousStepSize, - G4ForceCondition* condition); + G4double previousStepSize, + G4ForceCondition* condition); // make the process beeing forced virtual G4VParticleChange * PostStepDoIt(const G4Track&, - const G4Step&); + const G4Step&); const G4String &GetName() const; - public: // without description // no operation in AtRestDoIt and AlongStepDoIt virtual G4double AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*); + G4double , + G4double , + G4double& , + G4GPILSelection*); virtual G4double AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*); + G4ForceCondition*); virtual G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&); virtual G4VParticleChange* AlongStepDoIt(const G4Track&, const G4Step&); @@ -104,8 +104,3 @@ private: }; #endif - - - - - diff --git a/source/processes/transportation/src/G4MImportanceConfigurator.cc b/source/processes/transportation/src/G4MImportanceConfigurator.cc index 8b2a2cddac..e4c7c964fd 100644 --- a/source/processes/transportation/src/G4MImportanceConfigurator.cc +++ b/source/processes/transportation/src/G4MImportanceConfigurator.cc @@ -21,17 +21,15 @@ // ******************************************************************** // // -// $Id: G4MImportanceConfigurator.cc,v 1.4 2003/04/02 16:59:12 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MImportanceConfigurator.cc,v 1.5 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4MImportanceConfigurator // - // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- - #include "G4MImportanceConfigurator.hh" #include "G4MassImportanceProcess.hh" @@ -40,45 +38,54 @@ G4MImportanceConfigurator:: G4MImportanceConfigurator(const G4String &particlename, - G4VIStore &istore, - const G4VImportanceAlgorithm *ialg) - : - fPlacer(particlename), - fIStore(istore), - fDeleteIalg( ( ! ialg) ), - fIalgorithm(( (fDeleteIalg) ? - new G4ImportanceAlgorithm : ialg)), - fMassImportanceProcess(0) -{} + G4VIStore &istore, + const G4VImportanceAlgorithm *ialg) + : fPlacer(particlename), + fIStore(istore), + fDeleteIalg( ( ! ialg) ), + fIalgorithm(( (fDeleteIalg) ? + new G4ImportanceAlgorithm : ialg)), + fMassImportanceProcess(0) +{ +} -G4MImportanceConfigurator:: -~G4MImportanceConfigurator(){ - if (fMassImportanceProcess) { +G4MImportanceConfigurator::~G4MImportanceConfigurator() +{ + if (fMassImportanceProcess) + { fPlacer.RemoveProcess(fMassImportanceProcess); delete fMassImportanceProcess; } - if (fDeleteIalg) { + if (fDeleteIalg) + { delete fIalgorithm; } } + void -G4MImportanceConfigurator::Configure(G4VSamplerConfigurator *preConf){ +G4MImportanceConfigurator::Configure(G4VSamplerConfigurator *preConf) +{ const G4VTrackTerminator *terminator = 0; - if (preConf) { + if (preConf) + { terminator = preConf->GetTrackTerminator(); }; fMassImportanceProcess = new G4MassImportanceProcess(*fIalgorithm, - fIStore, - terminator); - if (!fMassImportanceProcess) { - G4Exception("ERROR: G4MImportanceConfigurator::Configure: new failed to create G4MassImportanceProcess!"); + fIStore, + terminator); + if (!fMassImportanceProcess) + { + G4Exception("G4MImportanceConfigurator::Configure()", + "FatalError", FatalException, + "Failed allocation of G4MassImportanceProcess !"); } fPlacer.AddProcessAsSecondDoIt(fMassImportanceProcess); } const G4VTrackTerminator *G4MImportanceConfigurator:: -GetTrackTerminator() const { +GetTrackTerminator() const +{ return fMassImportanceProcess; } diff --git a/source/processes/transportation/src/G4MScoreConfigurator.cc b/source/processes/transportation/src/G4MScoreConfigurator.cc index d63c613d36..be120ed49e 100644 --- a/source/processes/transportation/src/G4MScoreConfigurator.cc +++ b/source/processes/transportation/src/G4MScoreConfigurator.cc @@ -21,46 +21,52 @@ // ******************************************************************** // // -// $Id: G4MScoreConfigurator.cc,v 1.5 2003/04/02 16:59:12 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MScoreConfigurator.cc,v 1.7 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4MScoreConfigurator // - // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #include "G4MScoreConfigurator.hh" #include "G4VScorer.hh" #include "G4VTrackTerminator.hh" +#include "G4MScoreProcess.hh" G4MScoreConfigurator:: G4MScoreConfigurator(const G4String &particlename, - G4VScorer &scorer) - : - fPlacer(particlename), - fScorer(scorer), - fMScoreProcess(0) -{} + G4VScorer &scorer) + : fPlacer(particlename), + fScorer(scorer), + fMScoreProcess(0) +{ +} -G4MScoreConfigurator::~G4MScoreConfigurator(){ - if (fMScoreProcess) { +G4MScoreConfigurator::~G4MScoreConfigurator() +{ + if (fMScoreProcess) + { fPlacer.RemoveProcess(fMScoreProcess); delete fMScoreProcess; } } -const G4VTrackTerminator *G4MScoreConfigurator:: -GetTrackTerminator() const{ +const G4VTrackTerminator * +G4MScoreConfigurator::GetTrackTerminator() const +{ return fMScoreProcess; } void G4MScoreConfigurator::Configure(G4VSamplerConfigurator *) { fMScoreProcess = new G4MScoreProcess(fScorer); - if (!fMScoreProcess) { - G4Exception("ERROR: G4MScoreConfigurator::Configure: new failed to create G4MScoreProcess!"); + if (!fMScoreProcess) + { + G4Exception("G4MScoreConfigurator::Configure()", + "FatalError", FatalException, + "Failed allocation of G4MScoreProcess !"); } fPlacer.AddProcessAsSecondDoIt(fMScoreProcess); } diff --git a/source/processes/transportation/src/G4MScoreProcess.cc b/source/processes/transportation/src/G4MScoreProcess.cc index 55dd264735..ae0c81eb87 100644 --- a/source/processes/transportation/src/G4MScoreProcess.cc +++ b/source/processes/transportation/src/G4MScoreProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MScoreProcess.cc,v 1.10 2003/04/02 16:59:14 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MScoreProcess.cc,v 1.11 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -37,15 +37,16 @@ #include "G4VParallelStepper.hh" G4MScoreProcess::G4MScoreProcess(G4VScorer &aScorer, - const G4String &aName) - : - G4VProcess(aName), - fScorer(aScorer), - fKillTrack(false) + const G4String &aName) + : G4VProcess(aName), + fScorer(aScorer), + fKillTrack(false) { G4VProcess::pParticleChange = new G4ParticleChange; - if (!G4VProcess::pParticleChange) { - G4Exception("ERROR:G4MScoreProcess::G4MScoreProcess new failed to create G4ParticleChange!"); + if (!G4VProcess::pParticleChange) + { + G4Exception("G4MScoreProcess::G4MScoreProcess()", "Fatal Error", + FatalException, "Failed to allocate G4ParticleChange !"); } } @@ -56,8 +57,8 @@ G4MScoreProcess::~G4MScoreProcess() G4double G4MScoreProcess:: PostStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4ForceCondition* condition) + G4double , + G4ForceCondition* condition) { *condition = Forced; return kInfinity; @@ -68,26 +69,28 @@ G4MScoreProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) { pParticleChange->Initialize(aTrack); - if (aStep.GetStepLength() > kCarTolerance) { + if (aStep.GetStepLength() > kCarTolerance) + { G4StepPoint *prepoint = aStep.GetPreStepPoint(); G4StepPoint *postpoint = aStep.GetPostStepPoint(); - G4GeometryCell prekey(*(prepoint->GetPhysicalVolume()), - prepoint->GetTouchable()->GetReplicaNumber()); + prepoint->GetTouchable()->GetReplicaNumber()); G4GeometryCell postkey(*(postpoint->GetPhysicalVolume()), - postpoint->GetTouchable()->GetReplicaNumber()); + postpoint->GetTouchable()->GetReplicaNumber()); G4GeometryCellStep pstep(prekey, postkey); pstep.SetCrossBoundary(false); - if (prekey != postkey) { + if (prekey != postkey) + { pstep.SetCrossBoundary(true); } fScorer.Score(aStep, pstep); } - if (fKillTrack) { + if (fKillTrack) + { fKillTrack = false; pParticleChange->SetStatusChange(fStopAndKill); } @@ -95,36 +98,42 @@ G4MScoreProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) return G4VProcess::pParticleChange; } -const G4String &G4MScoreProcess::GetName() const { +const G4String &G4MScoreProcess::GetName() const +{ return theProcessName; } G4double G4MScoreProcess:: AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*) { + G4double , + G4double , + G4double& , + G4GPILSelection*) +{ return -1.0; } G4double G4MScoreProcess:: AtRestGetPhysicalInteractionLength(const G4Track&, - G4ForceCondition*) { + G4ForceCondition*) +{ return -1.0; } G4VParticleChange* G4MScoreProcess::AtRestDoIt(const G4Track&, - const G4Step&) { + const G4Step&) +{ return 0; } G4VParticleChange* G4MScoreProcess::AlongStepDoIt(const G4Track&, - const G4Step&) { + const G4Step&) +{ return 0; } -void G4MScoreProcess::KillTrack() const{ +void G4MScoreProcess::KillTrack() const +{ fKillTrack = true; } diff --git a/source/geometry/solids/STEPinterface/src/G4ParabolaCreator.cc b/source/processes/transportation/src/G4MWeightWindowConfigurator.cc similarity index 50% rename from source/geometry/solids/STEPinterface/src/G4ParabolaCreator.cc rename to source/processes/transportation/src/G4MWeightWindowConfigurator.cc index a41a858608..a919786819 100644 --- a/source/geometry/solids/STEPinterface/src/G4ParabolaCreator.cc +++ b/source/processes/transportation/src/G4MWeightWindowConfigurator.cc @@ -21,65 +21,67 @@ // ******************************************************************** // // -// $Id: G4ParabolaCreator.cc,v 1.5 2003/03/28 15:47:43 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MWeightWindowConfigurator.cc,v 1.4 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // -// // ---------------------------------------------------------------------- -// Class G4ParabolaCreator +// Class G4MWeightWindowConfigurator // -// Authors: J.Sulkimo, P.Urban. -// Revisions by: L.Broglia, G.Cosmo. -// -// History: -// 18-Nov-1999: First step of re-engineering - G.Cosmo +// Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- -#include "G4ParabolaCreator.hh" -#include "G4GeometryTable.hh" +#include "G4MWeightWindowConfigurator.hh" +#include "G4WeightWindowAlgorithm.hh" +#include "G4MassWeightWindowProcess.hh" -G4ParabolaCreator G4ParabolaCreator::csc; - -G4ParabolaCreator::G4ParabolaCreator() -{ - G4GeometryTable::RegisterObject(this); -} - -G4ParabolaCreator::~G4ParabolaCreator() {} - -G4ParabolaCreator G4ParabolaCreator::GetInstance() -{ - return csc; -} - -void G4ParabolaCreator::CreateG4Geometry(STEPentity& Ent) -{ - G4double focal_dist; - - // L. Broglia - // G4Placement* place; - G4Axis2Placement3D* place; - - Ent.ResetAttributes(); - STEPattribute* Attr = Ent.NextAttribute(); - while(Attr->NonRefType() == STRING_TYPE || - Attr->NonRefType() == sdaiSTRING ) - Attr = Ent.NextAttribute(); - - // Get the placement - STEPentity* TmpEnt= *Attr->ptr.c; - void *tmp =G4GeometryTable::CreateObject(*TmpEnt); - - // L. Broglia - // place = (G4Placement*)tmp; - place = (G4Axis2Placement3D*)tmp; - - // get semi axises - Attr = Ent.NextAttribute(); - focal_dist = *Attr->ptr.r; - -} - -void G4ParabolaCreator::CreateSTEPGeometry(void*) +G4MWeightWindowConfigurator:: +G4MWeightWindowConfigurator(const G4String &particlename, + G4VWeightWindowStore &wwstore, + const G4VWeightWindowAlgorithm *wwAlg, + G4PlaceOfAction placeOfAction) + : fPlacer(particlename), + fWeightWindowStore(wwstore), + fDeleteWWalg( ( ! wwAlg) ), + fWWalgorithm(( (fDeleteWWalg) ? + new G4WeightWindowAlgorithm(5,3,5) : wwAlg)), + fMassWeightWindowProcess(0), + fPlaceOfAction(placeOfAction) { } + +G4MWeightWindowConfigurator::~G4MWeightWindowConfigurator() +{ + if (fMassWeightWindowProcess) + { + fPlacer.RemoveProcess(fMassWeightWindowProcess); + delete fMassWeightWindowProcess; + } + if (fDeleteWWalg) + { + delete fWWalgorithm; + } +} + +void +G4MWeightWindowConfigurator::Configure(G4VSamplerConfigurator *preConf) +{ + const G4VTrackTerminator *terminator = 0; + if (preConf) + { + terminator = preConf->GetTrackTerminator(); + }; + + fMassWeightWindowProcess = + new G4MassWeightWindowProcess(*fWWalgorithm, + fWeightWindowStore, + terminator, + fPlaceOfAction); + fPlacer.AddProcessAsSecondDoIt(fMassWeightWindowProcess); +} + +const G4VTrackTerminator * +G4MWeightWindowConfigurator::GetTrackTerminator() const +{ + return fMassWeightWindowProcess; +} + diff --git a/source/processes/transportation/src/G4MassGCellFinder.cc b/source/processes/transportation/src/G4MassGCellFinder.cc index e445d2fcd9..29e8f31c96 100644 --- a/source/processes/transportation/src/G4MassGCellFinder.cc +++ b/source/processes/transportation/src/G4MassGCellFinder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MassGCellFinder.cc,v 1.2 2003/04/02 16:59:14 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MassGCellFinder.cc,v 1.3 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -36,24 +36,27 @@ #include "G4Step.hh" G4MassGCellFinder::G4MassGCellFinder() -{} +{ +} G4MassGCellFinder::~G4MassGCellFinder() -{} +{ +} -G4GeometryCell G4MassGCellFinder:: -GetPreGeometryCell(const G4Step &aStep) const { +G4GeometryCell +G4MassGCellFinder::GetPreGeometryCell(const G4Step &aStep) const +{ const G4TouchableHandle& th = aStep.GetPreStepPoint()->GetTouchableHandle(); G4GeometryCell g(*th->GetVolume(), th->GetReplicaNumber()); return g; } -G4GeometryCell G4MassGCellFinder:: -GetPostGeometryCell(const G4Step &aStep) const { +G4GeometryCell +G4MassGCellFinder::GetPostGeometryCell(const G4Step &aStep) const +{ const G4TouchableHandle& th = aStep.GetPostStepPoint()->GetTouchableHandle(); G4GeometryCell g(*th->GetVolume(), th->GetReplicaNumber()); return g; } - diff --git a/source/processes/transportation/src/G4MassGeometrySampler.cc b/source/processes/transportation/src/G4MassGeometrySampler.cc index 94c62089dd..e1aaa21b79 100644 --- a/source/processes/transportation/src/G4MassGeometrySampler.cc +++ b/source/processes/transportation/src/G4MassGeometrySampler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MassGeometrySampler.cc,v 1.8 2003/04/02 16:59:15 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MassGeometrySampler.cc,v 1.11 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -31,143 +31,183 @@ // // ---------------------------------------------------------------------- - - #include "G4MassGeometrySampler.hh" #include "G4VIStore.hh" +#include "G4WeightWindowStore.hh" #include "G4VScorer.hh" #include "G4MScoreConfigurator.hh" #include "G4MImportanceConfigurator.hh" +#include "G4MWeightWindowConfigurator.hh" #include "G4WeightCutOffConfigurator.hh" #include "G4MassGCellFinder.hh" G4MassGeometrySampler:: G4MassGeometrySampler(const G4String &particlename) - : - fParticleName(particlename), - fMImportanceConfigurator(0), - fMScoreConfigurator(0), - fGCellFinder(0), - fWeightCutOffConfigurator(0), - fIStore(0), - fIsConfigured(false) -{} + : fParticleName(particlename), + fMImportanceConfigurator(0), + fMScoreConfigurator(0), + fGCellFinder(0), + fWeightCutOffConfigurator(0), + fIStore(0), + fMWeightWindowConfigurator(0), + fWWStore(0), + fIsConfigured(false) +{ +} -G4MassGeometrySampler::~G4MassGeometrySampler(){ +G4MassGeometrySampler::~G4MassGeometrySampler() +{ ClearSampling(); -}; +} -void G4MassGeometrySampler::ClearSampling() { - - if (fMImportanceConfigurator) { +void G4MassGeometrySampler::ClearSampling() +{ + if (fMImportanceConfigurator) + { delete fMImportanceConfigurator; fMImportanceConfigurator = 0; } - if (fMScoreConfigurator) { + if (fMWeightWindowConfigurator) + { + delete fMWeightWindowConfigurator; + fMWeightWindowConfigurator = 0; + } + if (fMScoreConfigurator) + { delete fMScoreConfigurator; fMScoreConfigurator = 0; } - if (fWeightCutOffConfigurator) { + if (fWeightCutOffConfigurator) + { delete fWeightCutOffConfigurator; fWeightCutOffConfigurator = 0; } - if (fGCellFinder) { + if (fGCellFinder) + { delete fGCellFinder; fGCellFinder = 0; } fIStore = 0; fConfigurators.clear(); fIsConfigured = false; -}; - -G4bool G4MassGeometrySampler::IsConfigured() const{ +} +G4bool G4MassGeometrySampler::IsConfigured() const +{ G4bool isconf = false; - if (fIsConfigured) { - G4cout << "G4MassGeometrySampler::CheckIfInit some initalization exists, use ClearSampling() before a new initialization" << G4endl; + if (fIsConfigured) + { + G4cout << "WARNING - G4MassGeometrySampler::IsConfigured()" + << " Some initalization exists, use ClearSampling()" + << " before a new initialization !" << G4endl; isconf = true; } return isconf; } -void G4MassGeometrySampler:: -PrepareScoring(G4VScorer *scorer){ - fMScoreConfigurator = - new G4MScoreConfigurator(fParticleName, *scorer); - if (!fMScoreConfigurator) { - G4Exception("ERROR:G4MassGeometrySampler::PrepareScoring: new failed to ccreate G4MScoreConfigurator!"); +void G4MassGeometrySampler::PrepareScoring(G4VScorer *scorer) +{ + fMScoreConfigurator = new G4MScoreConfigurator(fParticleName, *scorer); + if (!fMScoreConfigurator) + { + G4Exception("G4MassGeometrySampler::PrepareScoring()", + "FatalError", FatalException, + "Failed allocation of G4MScoreConfigurator !"); } } -void G4MassGeometrySampler:: -PrepareImportanceSampling(G4VIStore *istore, - const G4VImportanceAlgorithm - *ialg) { +void +G4MassGeometrySampler::PrepareImportanceSampling(G4VIStore *istore, + const G4VImportanceAlgorithm *ialg) +{ fIStore = istore; fMImportanceConfigurator = - new G4MImportanceConfigurator(fParticleName, - *fIStore, - ialg); - if (!fMImportanceConfigurator) { - G4Exception("ERROR:G4MassGeometrySampler::PrepareImportanceSampling: new failed to ccreate G4MImportanceConfigurator!"); + new G4MImportanceConfigurator(fParticleName, *fIStore, ialg); + if (!fMImportanceConfigurator) + { + G4Exception("G4MassGeometrySampler::PrepareImportanceSampling()", + "FatalError", FatalException, + "Failed allocation of G4MImportanceConfigurator !"); } - } -void G4MassGeometrySampler:: -PrepareWeightRoulett(G4double wsurvive, - G4double wlimit, - G4double isource) { +void +G4MassGeometrySampler::PrepareWeightRoulett(G4double wsurvive, + G4double wlimit, + G4double isource) +{ fGCellFinder = new G4MassGCellFinder; - if (!fGCellFinder) { - G4Exception("ERROR:G4MassGeometrySampler::PrepareWeightRoulett: new failed to create G4MassGCellFinder!"); + if (!fGCellFinder) + { + G4Exception("G4MassGeometrySampler::PrepareWeightRoulett()", + "FatalError", FatalException, + "Failed allocation of G4MassGCellFinder !"); } fWeightCutOffConfigurator = new G4WeightCutOffConfigurator(fParticleName, - wsurvive, - wlimit, - isource, - fIStore, - *fGCellFinder); - if (!fWeightCutOffConfigurator) { - G4Exception("ERROR:G4MassGeometrySampler::PrepareWeightRoulett: new failed to ccreate G4WeightCutOffConfigurator!"); + wsurvive, + wlimit, + isource, + fIStore, + *fGCellFinder); + if (!fWeightCutOffConfigurator) + { + G4Exception("G4MassGeometrySampler::PrepareWeightRoulett()", + "FatalError", FatalException, + "Failed allocation of G4WeightCutOffConfigurator !"); } - - } -void G4MassGeometrySampler::Configure(){ - if (!IsConfigured()) { +void +G4MassGeometrySampler::PrepareWeightWindow(G4VWeightWindowStore *wwstore, + G4VWeightWindowAlgorithm *wwAlg, + G4PlaceOfAction placeOfAction) +{ + + fWWStore = wwstore; + + fMWeightWindowConfigurator = + new G4MWeightWindowConfigurator(fParticleName, + *fWWStore, + wwAlg, + placeOfAction); +} + +void G4MassGeometrySampler::Configure() +{ + if (!IsConfigured()) + { fIsConfigured = true; - if (fMScoreConfigurator) { + if (fMScoreConfigurator) + { fConfigurators.push_back(fMScoreConfigurator); } - if (fMImportanceConfigurator) { + if (fMImportanceConfigurator) + { fConfigurators.push_back(fMImportanceConfigurator); } + if (fMWeightWindowConfigurator) + { + fConfigurators.push_back(fMWeightWindowConfigurator); + } G4VSamplerConfigurator *preConf = 0; for (G4Configurators::iterator it = fConfigurators.begin(); - it != fConfigurators.end(); it++) { + it != fConfigurators.end(); it++) + { G4VSamplerConfigurator *currConf =*it; currConf->Configure(preConf); preConf = *it; } - if (fWeightCutOffConfigurator) { + if (fWeightCutOffConfigurator) + { fWeightCutOffConfigurator->Configure(0); } - } return; } - - - - - - diff --git a/source/processes/transportation/src/G4MassImportanceProcess.cc b/source/processes/transportation/src/G4MassImportanceProcess.cc index 060055682e..8e60e9670c 100644 --- a/source/processes/transportation/src/G4MassImportanceProcess.cc +++ b/source/processes/transportation/src/G4MassImportanceProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4MassImportanceProcess.cc,v 1.14 2003/06/13 09:35:09 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4MassImportanceProcess.cc,v 1.16 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -34,42 +34,48 @@ #include "G4MassImportanceProcess.hh" #include "G4VImportanceAlgorithm.hh" #include "G4GeometryCell.hh" -#include "G4ImportancePostStepDoIt.hh" +#include "G4SamplingPostStepAction.hh" #include "G4VTrackTerminator.hh" +#include "G4VIStore.hh" G4MassImportanceProcess:: G4MassImportanceProcess(const G4VImportanceAlgorithm &aImportanceAlgorithm, - const G4VIStore &aIstore, - const G4VTrackTerminator *TrackTerminator, - const G4String &aName) + const G4VIStore &aIstore, + const G4VTrackTerminator *TrackTerminator, + const G4String &aName) : G4VProcess(aName), fParticleChange(new G4ParticleChange), fImportanceAlgorithm(aImportanceAlgorithm), - fImportanceFinder(aIstore), - fImportancePostStepDoIt(0) + fIStore(aIstore), + fPostStepAction(0) { - if (TrackTerminator) { - fImportancePostStepDoIt = new G4ImportancePostStepDoIt(*TrackTerminator); + if (TrackTerminator) + { + fPostStepAction = new G4SamplingPostStepAction(*TrackTerminator); } - else { - fImportancePostStepDoIt = new G4ImportancePostStepDoIt(*this); + else + { + fPostStepAction = new G4SamplingPostStepAction(*this); } - if (!fParticleChange) { - G4Exception("ERROR:G4MassImportanceProcess::G4MassImportanceProcess: new failed to create G4ParticleChange!"); + if (!fParticleChange) + { + G4Exception("G4MassImportanceProcess::G4MassImportanceProcess()", + "FatalError", FatalException, + "Failed allocation of G4ParticleChange !"); } G4VProcess::pParticleChange = fParticleChange; } G4MassImportanceProcess::~G4MassImportanceProcess() { - delete fImportancePostStepDoIt; + delete fPostStepAction; delete fParticleChange; } G4double G4MassImportanceProcess:: PostStepGetPhysicalInteractionLength(const G4Track& , - G4double , - G4ForceCondition* condition) + G4double , + G4ForceCondition* condition) { *condition = Forced; return kInfinity; @@ -77,53 +83,58 @@ PostStepGetPhysicalInteractionLength(const G4Track& , G4VParticleChange * G4MassImportanceProcess::PostStepDoIt(const G4Track &aTrack, - const G4Step &aStep) + const G4Step &aStep) { fParticleChange->Initialize(aTrack); - if (aStep.GetPostStepPoint()->GetStepStatus() == fGeomBoundary - && aStep.GetStepLength() > kCarTolerance) { - if (aTrack.GetTrackStatus()==fStopAndKill) { - G4cout << "G4MassImportanceProcess::PostStepDoIt StopAndKill" << G4endl; + if ( (aStep.GetPostStepPoint()->GetStepStatus() == fGeomBoundary) + && (aStep.GetStepLength() > kCarTolerance) ) + { + if (aTrack.GetTrackStatus()==fStopAndKill) + { + G4cout << "WARNING - G4MassImportanceProcess::PostStepDoIt()" + << " StopAndKill track." << G4endl; } - G4StepPoint *prepoint = aStep.GetPreStepPoint(); + G4StepPoint *prepoint = aStep.GetPreStepPoint(); G4StepPoint *postpoint = aStep.GetPostStepPoint(); - G4GeometryCell prekey(*(prepoint->GetPhysicalVolume()), - prepoint->GetTouchable()->GetReplicaNumber()); + prepoint->GetTouchable()->GetReplicaNumber()); G4GeometryCell postkey(*(postpoint->GetPhysicalVolume()), - postpoint->GetTouchable()->GetReplicaNumber()); + postpoint->GetTouchable()->GetReplicaNumber()); G4Nsplit_Weight nw = fImportanceAlgorithm. - Calculate(fImportanceFinder.GetImportance(prekey), - fImportanceFinder.GetImportance(postkey), - aTrack.GetWeight()); - fImportancePostStepDoIt->DoIt(aTrack, fParticleChange, nw); + Calculate(fIStore.GetImportance(prekey), + fIStore.GetImportance(postkey), + aTrack.GetWeight()); + fPostStepAction->DoIt(aTrack, fParticleChange, nw); } return fParticleChange; } -void G4MassImportanceProcess::KillTrack() const { +void G4MassImportanceProcess::KillTrack() const +{ fParticleChange->SetStatusChange(fStopAndKill); } -const G4String &G4MassImportanceProcess::GetName() const { +const G4String &G4MassImportanceProcess::GetName() const +{ return theProcessName; } G4double G4MassImportanceProcess:: AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*) { + G4double , + G4double , + G4double& , + G4GPILSelection*) +{ return -1.0; } G4double G4MassImportanceProcess:: AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*) + G4ForceCondition*) { return -1.0; } @@ -135,7 +146,8 @@ AtRestDoIt(const G4Track&, const G4Step&) } G4VParticleChange* G4MassImportanceProcess:: -AlongStepDoIt(const G4Track&, const G4Step&) { +AlongStepDoIt(const G4Track&, const G4Step&) +{ return 0; } diff --git a/source/processes/transportation/src/G4MassWeightWindowProcess.cc b/source/processes/transportation/src/G4MassWeightWindowProcess.cc new file mode 100644 index 0000000000..00bfcbd4eb --- /dev/null +++ b/source/processes/transportation/src/G4MassWeightWindowProcess.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: G4MassWeightWindowProcess.cc,v 1.4 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4MassWeightWindowProcess.cc +// +// ---------------------------------------------------------------------- + +#include "G4MassWeightWindowProcess.hh" +#include "G4VWeightWindowAlgorithm.hh" +#include "G4GeometryCell.hh" +#include "G4SamplingPostStepAction.hh" +#include "G4VTrackTerminator.hh" +#include "G4PlaceOfAction.hh" +#include "G4VWeightWindowStore.hh" + +G4MassWeightWindowProcess::G4MassWeightWindowProcess( + const G4VWeightWindowAlgorithm &aWeightWindowAlgorithm, + const G4VWeightWindowStore &aWWStore, + const G4VTrackTerminator *TrackTerminator, + G4PlaceOfAction placeOfAction, + const G4String &aName) + : G4VProcess(aName), + fParticleChange(new G4ParticleChange), + fWeightWindowAlgorithm(aWeightWindowAlgorithm), + fWeightWindowStore(aWWStore), + fPostStepAction(0), + fPlaceOfAction(placeOfAction) +{ + if (TrackTerminator) + { + fPostStepAction = new G4SamplingPostStepAction(*TrackTerminator); + } + else + { + fPostStepAction = new G4SamplingPostStepAction(*this); + } + if (!fParticleChange) + { + G4Exception("G4MassWeightWindowProcess::G4MassWeightWindowProcess()", + "FatalError", FatalException, + "Failed allocation of G4ParticleChange !"); + } + G4VProcess::pParticleChange = fParticleChange; +} + +G4MassWeightWindowProcess::~G4MassWeightWindowProcess() +{ + delete fPostStepAction; + delete fParticleChange; +} + +G4double G4MassWeightWindowProcess:: +PostStepGetPhysicalInteractionLength(const G4Track& , + G4double , + G4ForceCondition* condition) +{ + *condition = Forced; + return kInfinity; +} + +G4VParticleChange * +G4MassWeightWindowProcess::PostStepDoIt(const G4Track &aTrack, + const G4Step &aStep) +{ + fParticleChange->Initialize(aTrack); + if (aStep.GetStepLength() > kCarTolerance) + { + if ( ( fPlaceOfAction == onBoundaryAndCollision) + || ( (fPlaceOfAction == onBoundary) && + (aStep.GetPostStepPoint()->GetStepStatus() == fGeomBoundary) ) + || ( (fPlaceOfAction == onCollision) && + (aStep.GetPostStepPoint()->GetStepStatus() != fGeomBoundary) ) ) + { + + G4StepPoint *postpoint = aStep.GetPostStepPoint(); + + G4GeometryCell postCell(*(postpoint->GetPhysicalVolume()), + postpoint->GetTouchable()->GetReplicaNumber()); + + G4Nsplit_Weight nw = + fWeightWindowAlgorithm.Calculate(aTrack.GetWeight(), + fWeightWindowStore.GetLowerWeitgh(postCell, + aTrack.GetKineticEnergy())); + fPostStepAction->DoIt(aTrack, fParticleChange, nw); + } + } + return fParticleChange; +} + +void G4MassWeightWindowProcess::KillTrack() const +{ + fParticleChange->SetStatusChange(fStopAndKill); +} + +const G4String &G4MassWeightWindowProcess::GetName() const +{ + return G4VProcess::GetProcessName(); +} + +G4double G4MassWeightWindowProcess:: +AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*) +{ + return -1.0; +} + +G4double G4MassWeightWindowProcess:: +AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*) +{ + return -1.0; +} + +G4VParticleChange* G4MassWeightWindowProcess:: +AtRestDoIt(const G4Track&, const G4Step&) +{ + return 0; +} + +G4VParticleChange* G4MassWeightWindowProcess:: +AlongStepDoIt(const G4Track&, const G4Step&) +{ + return 0; +} diff --git a/source/processes/transportation/src/G4PImportanceConfigurator.cc b/source/processes/transportation/src/G4PImportanceConfigurator.cc index f246c3b489..cb176011f3 100644 --- a/source/processes/transportation/src/G4PImportanceConfigurator.cc +++ b/source/processes/transportation/src/G4PImportanceConfigurator.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4PImportanceConfigurator.cc,v 1.4 2003/04/02 16:59:16 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PImportanceConfigurator.cc,v 1.6 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4PImportanceConfigurator // - // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- @@ -35,60 +34,66 @@ #include "G4ParallelWorld.hh" #include "G4ImportanceAlgorithm.hh" +#include "G4ParallelImportanceProcess.hh" G4PImportanceConfigurator:: G4PImportanceConfigurator(const G4String &particlename, - G4ParallelWorld ¶llelWorld, - G4VIStore &istore, - const G4VImportanceAlgorithm *ialg) - : - fPlacer(particlename), - fPWorld(parallelWorld), - fDeleteIalg( ( ! ialg) ), - fIalgorithm(( (fDeleteIalg) ? - new G4ImportanceAlgorithm : ialg)), - fExaminer(*fIalgorithm, - parallelWorld.GetParallelStepper(), - istore), - fParallelImportanceProcess(0) + G4ParallelWorld ¶llelWorld, + G4VIStore &istore, + const G4VImportanceAlgorithm *ialg) + : fPlacer(particlename), + fPWorld(parallelWorld), + fDeleteIalg( ( ! ialg) ), + fIalgorithm(( (fDeleteIalg) ? new G4ImportanceAlgorithm : ialg)), + fExaminer(*fIalgorithm, parallelWorld.GetParallelStepper(), istore), + fParallelImportanceProcess(0) { - if (!fIalgorithm) { - G4Exception("ERROR:G4PImportanceConfigurator::G4PImportanceConfigurator: no fIalgorithm!"); + if (!fIalgorithm) + { + G4Exception("G4PImportanceConfigurator::G4PImportanceConfigurator()", + "InvalidSetup", FatalException, "No algorithm specified !"); } } - -G4PImportanceConfigurator::~G4PImportanceConfigurator(){ - if (fParallelImportanceProcess) { +G4PImportanceConfigurator::~G4PImportanceConfigurator() +{ + if (fParallelImportanceProcess) + { fPlacer.RemoveProcess(fParallelImportanceProcess); delete fParallelImportanceProcess; } - if (fDeleteIalg) { + if (fDeleteIalg) + { delete fIalgorithm; } } -void G4PImportanceConfigurator:: -Configure(G4VSamplerConfigurator *preConf){ +void +G4PImportanceConfigurator::Configure(G4VSamplerConfigurator *preConf) +{ const G4VTrackTerminator *terminator = 0; - if (preConf) { + if (preConf) + { terminator = preConf->GetTrackTerminator(); - }; + } fParallelImportanceProcess = new G4ParallelImportanceProcess(fExaminer, - fPWorld.GetGeoDriver(), - fPWorld.GetParallelStepper(), - terminator); - if (!fParallelImportanceProcess) { - G4Exception("ERROR:G4PImportanceConfigurator::Configure: new failed to create G4ParallelImportanceProcess!"); + fPWorld.GetGeoDriver(), + fPWorld.GetParallelStepper(), + terminator); + if (!fParallelImportanceProcess) + { + G4Exception("G4PImportanceConfigurator::Configure()", + "FatalError", FatalException, + "Failed to allocate G4ParallelImportanceProcess !"); } - fPlacer.AddProcessAsSecondDoIt(fParallelImportanceProcess); } -const G4VTrackTerminator *G4PImportanceConfigurator:: -GetTrackTerminator() const { +const G4VTrackTerminator * +G4PImportanceConfigurator::GetTrackTerminator() const +{ return fParallelImportanceProcess; } diff --git a/source/processes/transportation/src/G4PScoreConfigurator.cc b/source/processes/transportation/src/G4PScoreConfigurator.cc index 9461ae8724..82a3fe32b9 100644 --- a/source/processes/transportation/src/G4PScoreConfigurator.cc +++ b/source/processes/transportation/src/G4PScoreConfigurator.cc @@ -21,50 +21,54 @@ // ******************************************************************** // // -// $Id: G4PScoreConfigurator.cc,v 1.5 2003/04/02 16:59:16 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PScoreConfigurator.cc,v 1.7 2003/11/26 14:51:49 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4PScoreConfigurator // - // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #include "G4PScoreConfigurator.hh" #include "G4VTrackTerminator.hh" - +#include "G4PScoreProcess.hh" G4PScoreConfigurator:: G4PScoreConfigurator(const G4String &particlename, - G4VParallelStepper &pstepper, - G4VScorer &scorer) - : - fPlacer(particlename), - fPStepper(pstepper), - fScorer(scorer), - fPScoreProcess(0) -{} + G4VParallelStepper &pstepper, + G4VScorer &scorer) + : fPlacer(particlename), + fPStepper(pstepper), + fScorer(scorer), + fPScoreProcess(0) +{ +} -G4PScoreConfigurator::~G4PScoreConfigurator(){ - if (fPScoreProcess) { +G4PScoreConfigurator::~G4PScoreConfigurator() +{ + if (fPScoreProcess) + { fPlacer.RemoveProcess(fPScoreProcess); delete fPScoreProcess; } } -void G4PScoreConfigurator::Configure(G4VSamplerConfigurator *){ +void G4PScoreConfigurator::Configure(G4VSamplerConfigurator *) +{ fPScoreProcess = new G4PScoreProcess(fPStepper, fScorer); - if (!fPScoreProcess) { - G4Exception("ERROR:G4PScoreConfigurator::Configure: new failed to create G4PScoreProcess!"); + if (!fPScoreProcess) + { + G4Exception("G4PScoreConfigurator::Configure()", "FatalError", + FatalException, "Failed to allocate G4PScoreProcess !"); } fPlacer.AddProcessAsSecondDoIt(fPScoreProcess); } - -const G4VTrackTerminator *G4PScoreConfigurator:: -GetTrackTerminator() const { +const G4VTrackTerminator * +G4PScoreConfigurator::GetTrackTerminator() const +{ return fPScoreProcess; } diff --git a/source/processes/transportation/src/G4PScoreProcess.cc b/source/processes/transportation/src/G4PScoreProcess.cc index 14ef5f7a99..3ee1766f17 100644 --- a/source/processes/transportation/src/G4PScoreProcess.cc +++ b/source/processes/transportation/src/G4PScoreProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4PScoreProcess.cc,v 1.7 2003/04/02 16:59:16 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4PScoreProcess.cc,v 1.8 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -37,17 +37,18 @@ #include "G4VParallelStepper.hh" G4PScoreProcess::G4PScoreProcess(G4VParallelStepper &astepper, - G4VScorer &aScorer, - const G4String &aName) - : - G4VProcess(aName), - fPstepper(astepper), - fScorer(aScorer), - fKillTrack(false) + G4VScorer &aScorer, + const G4String &aName) + : G4VProcess(aName), + fPstepper(astepper), + fScorer(aScorer), + fKillTrack(false) { G4VProcess::pParticleChange = new G4ParticleChange; - if (!G4VProcess::pParticleChange) { - G4Exception("ERROR:G4PScoreProcess::G4PScoreProcess: new failed to create G4ParticleChange!"); + if (!G4VProcess::pParticleChange) + { + G4Exception("G4PScoreProcess::G4PScoreProcess()", "FatalError", + FatalException, "Failed to allocate G4ParticleChange !"); } } @@ -58,8 +59,8 @@ G4PScoreProcess::~G4PScoreProcess() G4double G4PScoreProcess:: PostStepGetPhysicalInteractionLength(const G4Track &, - G4double , - G4ForceCondition* condition) + G4double , + G4ForceCondition* condition) { *condition = Forced; return kInfinity; @@ -70,44 +71,48 @@ G4PScoreProcess::PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) { pParticleChange->Initialize(aTrack); fScorer.Score(aStep, fPstepper.GetPStep()); - if (fKillTrack) { + if (fKillTrack) + { fKillTrack = false; pParticleChange->SetStatusChange(fStopAndKill); } return G4VProcess::pParticleChange; } -void G4PScoreProcess::KillTrack() const { +void G4PScoreProcess::KillTrack() const +{ fKillTrack = true; } -const G4String &G4PScoreProcess::GetName() const { +const G4String &G4PScoreProcess::GetName() const +{ return theProcessName; } - - G4double G4PScoreProcess:: AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*) { + G4double , + G4double , + G4double& , + G4GPILSelection*) +{ return -1.0; } G4double G4PScoreProcess:: -AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*) { +AtRestGetPhysicalInteractionLength(const G4Track& , G4ForceCondition*) +{ return -1.0; } G4VParticleChange* G4PScoreProcess:: -AtRestDoIt(const G4Track&, const G4Step&) { +AtRestDoIt(const G4Track&, const G4Step&) +{ return 0; } G4VParticleChange* G4PScoreProcess:: -AlongStepDoIt(const G4Track&, const G4Step&) { +AlongStepDoIt(const G4Track&, const G4Step&) +{ return 0; } diff --git a/source/processes/transportation/src/G4PWeightWindowConfigurator.cc b/source/processes/transportation/src/G4PWeightWindowConfigurator.cc new file mode 100644 index 0000000000..742ac340a6 --- /dev/null +++ b/source/processes/transportation/src/G4PWeightWindowConfigurator.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: G4PWeightWindowConfigurator.cc,v 1.4 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// Class G4PWeightWindowConfigurator +// +// Author: Michael Dressel (Michael.Dressel@cern.ch) +// ---------------------------------------------------------------------- + +#include "G4PWeightWindowConfigurator.hh" +#include "G4ParallelWWnTransportProcess.hh" +#include "G4ParallelWeightWindowProcess.hh" +#include "G4WeightWindowAlgorithm.hh" +#include "G4ParallelWorld.hh" +#include "G4ParallelWeightWindowProcess.hh" + +G4PWeightWindowConfigurator:: +G4PWeightWindowConfigurator(const G4String &particlename, + G4ParallelWorld ¶llelWorld, + G4VWeightWindowStore &wwstore, + const G4VWeightWindowAlgorithm *wwAlg, + G4PlaceOfAction placeOfAction) + : fPlacer(particlename), + fPWorld(parallelWorld), + fDeleteWWalg( ( ! wwAlg) ), + fWWalgorithm(( (fDeleteWWalg) ? new G4WeightWindowAlgorithm(5,3,5) + : wwAlg)), + fExaminer(*fWWalgorithm, parallelWorld.GetParallelStepper(), wwstore), + fParallelWWProcess(0), + fPlaceOfAction(placeOfAction), + fTrackTerminator(0) +{ +} + +G4PWeightWindowConfigurator::~G4PWeightWindowConfigurator() +{ + if (fParallelWWProcess) + { + fPlacer.RemoveProcess(fParallelWWProcess); + delete fParallelWWProcess; + fTrackTerminator = 0; + fParallelWWProcess = 0; + } + if (fDeleteWWalg) + { + delete fWWalgorithm; + } +} + +void +G4PWeightWindowConfigurator::Configure(G4VSamplerConfigurator *preConf) +{ + const G4VTrackTerminator *terminator = 0; + if (preConf) + { + terminator = preConf->GetTrackTerminator(); + } + + if (fPlaceOfAction == onBoundary) + { + G4ParallelWWnTransportProcess *parallelWWnTransportProcess = + new G4ParallelWWnTransportProcess(fExaminer, + fPWorld.GetGeoDriver(), + fPWorld.GetParallelStepper(), + terminator); + fTrackTerminator = parallelWWnTransportProcess; + fParallelWWProcess = parallelWWnTransportProcess; + } + else + { + G4ParallelWeightWindowProcess *parallelWeightWindowProcess = + new G4ParallelWeightWindowProcess(fExaminer, + fPWorld.GetParallelStepper(), + terminator, + fPlaceOfAction); + fTrackTerminator = parallelWeightWindowProcess; + fParallelWWProcess = parallelWeightWindowProcess; + } + + fPlacer.AddProcessAsSecondDoIt(fParallelWWProcess); +} + +const G4VTrackTerminator * +G4PWeightWindowConfigurator::GetTrackTerminator() const +{ + return fTrackTerminator; +} diff --git a/source/processes/transportation/src/G4ParallelGCellFinder.cc b/source/processes/transportation/src/G4ParallelGCellFinder.cc index 7a381d16f0..e897dda638 100644 --- a/source/processes/transportation/src/G4ParallelGCellFinder.cc +++ b/source/processes/transportation/src/G4ParallelGCellFinder.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelGCellFinder.cc,v 1.2 2003/04/02 16:59:17 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelGCellFinder.cc,v 1.3 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -34,23 +34,26 @@ #include "G4ParallelGCellFinder.hh" #include "G4VParallelStepper.hh" - G4ParallelGCellFinder:: -G4ParallelGCellFinder(const G4VParallelStepper &astepper): - fPStepper(astepper) -{} +G4ParallelGCellFinder(const G4VParallelStepper &astepper) + : fPStepper(astepper) +{ +} G4ParallelGCellFinder::~G4ParallelGCellFinder() -{} +{ +} -G4GeometryCell G4ParallelGCellFinder:: -GetPreGeometryCell(const G4Step &) const { +G4GeometryCell +G4ParallelGCellFinder::GetPreGeometryCell(const G4Step &) const +{ G4GeometryCell g(fPStepper.GetPStep().GetPreGeometryCell()); return g; } -G4GeometryCell G4ParallelGCellFinder:: -GetPostGeometryCell(const G4Step &) const { +G4GeometryCell +G4ParallelGCellFinder::GetPostGeometryCell(const G4Step &) const +{ G4GeometryCell g(fPStepper.GetPStep().GetPostGeometryCell()); return g; } diff --git a/source/processes/transportation/src/G4ParallelGeometrySampler.cc b/source/processes/transportation/src/G4ParallelGeometrySampler.cc index 6a648be2e3..a71ad13f05 100644 --- a/source/processes/transportation/src/G4ParallelGeometrySampler.cc +++ b/source/processes/transportation/src/G4ParallelGeometrySampler.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelGeometrySampler.cc,v 1.7 2003/04/02 16:59:17 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelGeometrySampler.cc,v 1.10 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -31,10 +31,10 @@ // // ---------------------------------------------------------------------- - #include "G4ParallelGeometrySampler.hh" #include "G4VIStore.hh" +#include "G4WeightWindowStore.hh" #include "G4VScorer.hh" #include "G4ParallelTransportConfigurator.hh" @@ -42,56 +42,76 @@ #include "G4PImportanceConfigurator.hh" #include "G4WeightCutOffConfigurator.hh" #include "G4ParallelGCellFinder.hh" +#include "G4PWeightWindowConfigurator.hh" G4ParallelGeometrySampler:: G4ParallelGeometrySampler(G4VPhysicalVolume &worldvolume, - const G4String &particlename) - : - fParticleName(particlename), - fParallelWorld(worldvolume), - fParallelTransportConfigurator(0), - fPImportanceConfigurator(0), - fPScoreConfigurator(0), - fGCellFinder(0), - fWeightCutOffConfigurator(0), - fIStore(0), - fIsConfigured(false) -{} + const G4String &particlename) + : fParticleName(particlename), + fParallelWorld(worldvolume), + fParallelTransportConfigurator(0), + fPImportanceConfigurator(0), + fPScoreConfigurator(0), + fGCellFinder(0), + fWeightCutOffConfigurator(0), + fIStore(0), + fPWeightWindowConfigurator(0), + fWWStore(0), + fIsConfigured(false) +{ +} -G4ParallelGeometrySampler::~G4ParallelGeometrySampler(){ +G4ParallelGeometrySampler::~G4ParallelGeometrySampler() +{ ClearSampling(); -}; +} -void G4ParallelGeometrySampler::ClearSampling() { - if (fParallelTransportConfigurator) { +void G4ParallelGeometrySampler::ClearSampling() +{ + if (fParallelTransportConfigurator) + { delete fParallelTransportConfigurator; fParallelTransportConfigurator = 0; } - if (fPImportanceConfigurator) { + if (fPWeightWindowConfigurator) + { + delete fPWeightWindowConfigurator; + fPWeightWindowConfigurator = 0; + } + if (fPImportanceConfigurator) + { delete fPImportanceConfigurator; fPImportanceConfigurator = 0; } - if (fPScoreConfigurator) { + if (fPScoreConfigurator) + { delete fPScoreConfigurator; fPScoreConfigurator = 0; } - if (fWeightCutOffConfigurator) { + if (fWeightCutOffConfigurator) + { delete fWeightCutOffConfigurator; fWeightCutOffConfigurator = 0; } - if (fGCellFinder) { + if (fGCellFinder) + { delete fGCellFinder; fGCellFinder = 0; } fIStore = 0; fConfigurators.clear(); fIsConfigured = false; -}; +} -G4bool G4ParallelGeometrySampler::IsConfigured() const{ +G4bool G4ParallelGeometrySampler::IsConfigured() const +{ G4bool isconf = false; - if (fIsConfigured) { - G4cout << "G4ParallelGeometrySampler::CheckIfInit some initalization exists, use ClearSampling() before a new initialization" << G4endl; + if (fIsConfigured) + { + G4cout << "WARNING - G4ParallelGeometrySampler::IsConfigured()" + << " Some initalization exists already." + << " Use ClearSampling() before a new initialization !" + << G4endl; isconf = true; } return isconf; @@ -99,88 +119,133 @@ G4bool G4ParallelGeometrySampler::IsConfigured() const{ void G4ParallelGeometrySampler:: PrepareImportanceSampling(G4VIStore *istore, - const G4VImportanceAlgorithm - *ialg) { + const G4VImportanceAlgorithm *ialg) +{ fIStore = istore; - fPImportanceConfigurator = - new G4PImportanceConfigurator(fParticleName, - fParallelWorld, - *istore, - ialg); - if (!fPImportanceConfigurator) { - G4Exception("ERROR:G4ParallelGeometrySampler::PrepareImportanceSampling: new failed to create G4PImportanceConfigurator!"); + fPImportanceConfigurator = new G4PImportanceConfigurator(fParticleName, + fParallelWorld, + *istore, ialg); + if (!fPImportanceConfigurator) + { + G4Exception("G4ParallelGeometrySampler::PrepareImportanceSampling()", + "FatalError", FatalException, + "Failed to create G4PImportanceConfigurator !"); } } -void G4ParallelGeometrySampler::PrepareScoring(G4VScorer *scorer){ +void G4ParallelGeometrySampler::PrepareScoring(G4VScorer *scorer) +{ fPScoreConfigurator = new G4PScoreConfigurator(fParticleName, - fParallelWorld. - GetParallelStepper(), - *scorer); - if (!fPScoreConfigurator) { - G4Exception("ERROR:G4ParallelGeometrySampler::PrepareScoring: new failed to create G4PScoreConfigurator!"); + fParallelWorld. + GetParallelStepper(), + *scorer); + if (!fPScoreConfigurator) + { + G4Exception("G4ParallelGeometrySampler::PrepareScoring()", + "FatalError", FatalException, + "Failed to create G4PScoreConfigurator !"); } - } -void G4ParallelGeometrySampler:: -PrepareWeightRoulett(G4double wsuvive, G4double wlimit, G4double isource){ +void +G4ParallelGeometrySampler::PrepareWeightRoulett(G4double wsuvive, + G4double wlimit, + G4double isource) +{ fGCellFinder = new G4ParallelGCellFinder(fParallelWorld. - GetParallelStepper()); - if (!fGCellFinder) { - G4Exception("ERROR:G4ParallelGeometrySampler::PrepareWeightRoulett: new failed to create G4ParallelGCellFinder!"); + GetParallelStepper()); + if (!fGCellFinder) + { + G4Exception("G4ParallelGeometrySampler::PrepareWeightRoulett()", + "FatalError", FatalException, + "Failed to allocate G4ParallelGCellFinder !"); } fWeightCutOffConfigurator = new G4WeightCutOffConfigurator(fParticleName, - wsuvive, - wlimit, - isource, - fIStore, - *fGCellFinder); - if (!fWeightCutOffConfigurator) { - G4Exception("ERROR:G4ParallelGeometrySampler::PrepareWeightRoulett: new failed to create G4WeightCutOffConfigurator!"); + wsuvive, + wlimit, + isource, + fIStore, + *fGCellFinder); + if (!fWeightCutOffConfigurator) + { + G4Exception("G4ParallelGeometrySampler::PrepareWeightRoulett()", + "FatalError", FatalException, + "Failed to allocate G4WeightCutOffConfigurator !"); } - } -void G4ParallelGeometrySampler::Configure(){ +void +G4ParallelGeometrySampler::PrepareWeightWindow(G4VWeightWindowStore *wwstore, + G4VWeightWindowAlgorithm *wwAlg, + G4PlaceOfAction placeOfAction) +{ + if (placeOfAction != onBoundary) + { + // an additional paralel transport is needed + // to cause a step on parallel boundaries + fParallelTransportConfigurator = + new G4ParallelTransportConfigurator(fParticleName, fParallelWorld); + } + + fWWStore = wwstore; + fPWeightWindowConfigurator = + new G4PWeightWindowConfigurator(fParticleName, + fParallelWorld, + *wwstore, + wwAlg, + placeOfAction); +} - if (!IsConfigured()) { +void G4ParallelGeometrySampler::Configure() +{ + if (!IsConfigured()) + { fIsConfigured = true; - if (fPScoreConfigurator) { + if (fPScoreConfigurator) + { fConfigurators.push_back(fPScoreConfigurator); } - if (fPImportanceConfigurator) { + if (fPImportanceConfigurator) + { fConfigurators.push_back(fPImportanceConfigurator); } - else { + else if (fPWeightWindowConfigurator) + { + fConfigurators.push_back(fPWeightWindowConfigurator); + if (fParallelTransportConfigurator) + { + fConfigurators.push_back(fParallelTransportConfigurator); + } + } + else + { fParallelTransportConfigurator = - new G4ParallelTransportConfigurator(fParticleName, - fParallelWorld); - if (!fParallelTransportConfigurator) { - G4Exception("ERROR:G4ParallelGeometrySampler::Configure: new failed to create G4ParallelTransportConfigurator!"); + new G4ParallelTransportConfigurator(fParticleName, fParallelWorld); + if (!fParallelTransportConfigurator) + { + G4Exception("G4ParallelGeometrySampler::Configure()", + "FatalError", FatalException, + "Failed to allocate G4ParallelTransportConfigurator !"); } fConfigurators.push_back(fParallelTransportConfigurator); } G4VSamplerConfigurator *preConf = 0; for (G4Configurators::iterator it = fConfigurators.begin(); - it != fConfigurators.end(); it++) { + it != fConfigurators.end(); it++) + { G4VSamplerConfigurator *currConf =*it; currConf->Configure(preConf); preConf = *it; } - if (fWeightCutOffConfigurator) { + if (fWeightCutOffConfigurator) + { fWeightCutOffConfigurator->Configure(0); } } return; } - - - - - diff --git a/source/processes/transportation/src/G4ParallelImportanceProcess.cc b/source/processes/transportation/src/G4ParallelImportanceProcess.cc index fd8003ab5e..9745a2b17a 100644 --- a/source/processes/transportation/src/G4ParallelImportanceProcess.cc +++ b/source/processes/transportation/src/G4ParallelImportanceProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelImportanceProcess.cc,v 1.14 2003/06/16 17:12:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelImportanceProcess.cc,v 1.16 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -36,63 +36,64 @@ #include "G4ParallelImportanceProcess.hh" #include "G4VImportanceSplitExaminer.hh" #include "G4VTrackTerminator.hh" -#include "G4ImportancePostStepDoIt.hh" +#include "G4SamplingPostStepAction.hh" -G4ParallelImportanceProcess:: -G4ParallelImportanceProcess(const G4VImportanceSplitExaminer &aImportanceSplitExaminer, - G4VPGeoDriver &pgeodriver, - G4VParallelStepper &aStepper, - const G4VTrackTerminator *TrackTerminator, - const G4String &aName) - : - G4ParallelTransport(pgeodriver, aStepper, aName), - fParticleChange(G4ParallelTransport::fParticleChange), - fImportanceSplitExaminer(aImportanceSplitExaminer), - fImportancePostStepDoIt(0) +G4ParallelImportanceProcess::G4ParallelImportanceProcess( + const G4VImportanceSplitExaminer &aImportanceSplitExaminer, + G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4VTrackTerminator *TrackTerminator, + const G4String &aName) + : G4ParallelTransport(pgeodriver, aStepper, aName), + fParticleChange(G4ParallelTransport::fParticleChange), + fImportanceSplitExaminer(aImportanceSplitExaminer), + fPostStepAction(0) { - if (TrackTerminator) { - fImportancePostStepDoIt = new G4ImportancePostStepDoIt(*TrackTerminator); + if (TrackTerminator) + { + fPostStepAction = new G4SamplingPostStepAction(*TrackTerminator); } - else { - fImportancePostStepDoIt = new G4ImportancePostStepDoIt(*this); + else + { + fPostStepAction = new G4SamplingPostStepAction(*this); } } G4ParallelImportanceProcess::~G4ParallelImportanceProcess() { - delete fImportancePostStepDoIt; + delete fPostStepAction; } - G4VParticleChange *G4ParallelImportanceProcess:: PostStepDoIt(const G4Track& aTrack, const G4Step &aStep) { - if (aTrack.GetTrackStatus()==fStopAndKill) { - G4cout << "G4ParallelImportanceProcess::PostStepDoIt StopAndKill" << G4endl; + if (aTrack.GetTrackStatus()==fStopAndKill) + { + G4cout << "WARNING - G4ParallelImportanceProcess::PostStepDoIt()" + << " StopAndKill track !" << G4endl; } G4ParallelTransport::PostStepDoIt(aTrack, aStep); // get new weight and number of clones G4Nsplit_Weight nw(fImportanceSplitExaminer.Examine(aTrack.GetWeight())); - fImportancePostStepDoIt->DoIt(aTrack, fParticleChange, nw); + fPostStepAction->DoIt(aTrack, fParticleChange, nw); return fParticleChange; } void G4ParallelImportanceProcess::Error(const G4String &m) { - G4cout << "ERROR - G4ImportanceProcess::" << m << G4endl; - G4Exception("Program aborted."); + G4Exception("G4ParallelImportanceProcess::Error()", + "ProgramError", FatalException, m); } - - -void G4ParallelImportanceProcess::KillTrack() const{ +void G4ParallelImportanceProcess::KillTrack() const +{ fParticleChange->SetStatusChange(fStopAndKill); } - -const G4String &G4ParallelImportanceProcess::GetName() const { +const G4String &G4ParallelImportanceProcess::GetName() const +{ return G4ParallelTransport::GetProcessName(); } diff --git a/source/processes/transportation/src/G4ParallelTransport.cc b/source/processes/transportation/src/G4ParallelTransport.cc index 320d7a2043..1a0b5466fa 100644 --- a/source/processes/transportation/src/G4ParallelTransport.cc +++ b/source/processes/transportation/src/G4ParallelTransport.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParallelTransport.cc,v 1.11 2003/06/16 17:12:44 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelTransport.cc,v 1.12 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -37,22 +37,22 @@ #include "G4VPGeoDriver.hh" #include "G4VParallelStepper.hh" - G4ParallelTransport::G4ParallelTransport(G4VPGeoDriver &pgeodriver, - G4VParallelStepper &aStepper, - const G4String &aName) - : - G4VProcess(aName), - fParticleChange(new G4ParticleChange), - fPgeodriver(pgeodriver), - fPStepper(aStepper), - fCrossBoundary(false), - fInitStep(false) + G4VParallelStepper &aStepper, + const G4String &aName) + : G4VProcess(aName), + fParticleChange(new G4ParticleChange), + fPgeodriver(pgeodriver), + fPStepper(aStepper), + fCrossBoundary(false), + fInitStep(false) { - if (!fParticleChange) { - G4Exception("ERROR:G4ParallelTransport::G4ParallelTransport: new failed to create G4ParticleChange!"); + if (!fParticleChange) + { + G4Exception("G4ParallelTransport::G4ParallelTransport()", + "FatalError", FatalException, + "Failed to allocate G4ParticleChange !"); } - G4VProcess::pParticleChange = fParticleChange; } @@ -61,43 +61,48 @@ G4ParallelTransport::~G4ParallelTransport() delete fParticleChange; } - -void G4ParallelTransport::StartTracking(){ +void G4ParallelTransport::StartTracking() +{ fInitStep = true; } -void G4ParallelTransport::EndTracking(){} -G4double -G4ParallelTransport:: +void G4ParallelTransport::EndTracking() +{ +} + +G4double G4ParallelTransport:: PostStepGetPhysicalInteractionLength(const G4Track& aTrack, - G4double , - G4ForceCondition* condition) + G4double , + G4ForceCondition* condition) { G4double stepLength = 0; // if this function is called on a new track let the navigator // know about it - // G4bool initStep = (aTrack.GetCurrentStepNumber() == 1); + // G4bool initStep = (aTrack.GetCurrentStepNumber() == 1); - if (fInitStep) { + if (fInitStep) + { fInitStep = false; stepLength = fPgeodriver. ComputeStepLengthInit(aTrack.GetPosition(), - aTrack.GetMomentumDirection()); + aTrack.GetMomentumDirection()); fPStepper.Init(fPgeodriver.GetCurrentGeometryCell()); fCrossBoundary = false; } - else if (fCrossBoundary) { + else if (fCrossBoundary) + { stepLength = fPgeodriver. ComputeStepLengthCrossBoundary(aTrack.GetPosition(), - aTrack.GetMomentumDirection()); + aTrack.GetMomentumDirection()); fPStepper.UnSetCrossBoundary(); fCrossBoundary = false; } - else { + else + { stepLength = fPgeodriver. ComputeStepLengthInVolume(aTrack.GetPosition(), - aTrack.GetMomentumDirection()); + aTrack.GetMomentumDirection()); } *condition = NotForced; @@ -106,9 +111,10 @@ PostStepGetPhysicalInteractionLength(const G4Track& aTrack, G4VParticleChange * G4ParallelTransport::PostStepDoIt(const G4Track& aTrack, - const G4Step& aStep) + const G4Step& aStep) { - if (!(aStep.GetStepLength() > 0.)) { + if (!(aStep.GetStepLength() > 0.)) + { char st[1000]; std::ostrstream os(st,1000); os << "G4PArallelTransport::InitPostDoIt: StepLength() == 0.\n" @@ -116,15 +122,13 @@ G4ParallelTransport::PostStepDoIt(const G4Track& aTrack, << "dir: " << aTrack.GetMomentumDirection() << "\n" << '\0'; G4String m(st); - Warning(m); } - fParticleChange->Initialize(aTrack); fCrossBoundary = true; fPgeodriver.LocateOnBoundary(aTrack.GetPosition(), - aTrack.GetMomentumDirection()); + aTrack.GetMomentumDirection()); fPStepper.Update(fPgeodriver.GetCurrentGeometryCell()); return fParticleChange; @@ -132,38 +136,41 @@ G4ParallelTransport::PostStepDoIt(const G4Track& aTrack, void G4ParallelTransport::Error(const G4String &m) { - G4cout << "ERROR - G4ParallelTransport::" << m << G4endl; - G4Exception("Program aborted."); + G4Exception("G4ParallelTransport::Error()", + "ProgramError", FatalException, m); } void G4ParallelTransport::Warning(const G4String &m) { - G4cout << "WARNING - G4ParallelTransport: " << G4endl; - G4cout << m << G4endl; + G4Exception("G4ParallelTransport::Warning()", + "ProgramWarning", JustWarning, m); } G4double G4ParallelTransport:: AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*) { + G4double , + G4double , + G4double& , + G4GPILSelection*) +{ return -1.0; } G4double G4ParallelTransport:: -AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*) { +AtRestGetPhysicalInteractionLength(const G4Track&, G4ForceCondition*) +{ return -1.0; } -G4VParticleChange* G4ParallelTransport:: -AtRestDoIt(const G4Track&, const G4Step&) { +G4VParticleChange* +G4ParallelTransport::AtRestDoIt(const G4Track&, const G4Step&) +{ return 0; } G4VParticleChange* G4ParallelTransport:: -AlongStepDoIt(const G4Track&, const G4Step&) { +AlongStepDoIt(const G4Track&, const G4Step&) +{ return 0; } diff --git a/source/processes/transportation/src/G4ParallelTransportConfigurator.cc b/source/processes/transportation/src/G4ParallelTransportConfigurator.cc index 13b3973d5a..06a7b2f922 100644 --- a/source/processes/transportation/src/G4ParallelTransportConfigurator.cc +++ b/source/processes/transportation/src/G4ParallelTransportConfigurator.cc @@ -21,13 +21,12 @@ // ******************************************************************** // // -// $Id: G4ParallelTransportConfigurator.cc,v 1.4 2003/04/02 16:59:19 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParallelTransportConfigurator.cc,v 1.5 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4ParallelTransportConfigurator // - // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- @@ -36,33 +35,37 @@ G4ParallelTransportConfigurator:: G4ParallelTransportConfigurator(const G4String &particlename, - G4ParallelWorld &pworld) - : - fPlacer(particlename), - fPWorld(pworld), - fParallelTransport(0) -{} + G4ParallelWorld &pworld) + : fPlacer(particlename), + fPWorld(pworld), + fParallelTransport(0) +{ +} -G4ParallelTransportConfigurator:: -~G4ParallelTransportConfigurator(){ - if (fParallelTransport) { +G4ParallelTransportConfigurator::~G4ParallelTransportConfigurator() +{ + if (fParallelTransport) + { fPlacer.RemoveProcess(fParallelTransport); delete fParallelTransport; } } -void G4ParallelTransportConfigurator:: -Configure(G4VSamplerConfigurator *){ - fParallelTransport = new - G4ParallelTransport(fPWorld.GetGeoDriver(), - fPWorld.GetParallelStepper()); - if (!fParallelTransport) { - G4Exception("ERROR:G4ParallelTransportConfigurator::Configure new failed to create G4ParallelTransport!"); +void G4ParallelTransportConfigurator::Configure(G4VSamplerConfigurator *) +{ + fParallelTransport = new G4ParallelTransport(fPWorld.GetGeoDriver(), + fPWorld.GetParallelStepper()); + if (!fParallelTransport) + { + G4Exception("G4ParallelTransportConfigurator::Configure()", + "FatalError", FatalException, + "Failed to allocate G4ParallelTransport !"); } fPlacer.AddProcessAsSecondDoIt(fParallelTransport); } -const G4VTrackTerminator *G4ParallelTransportConfigurator:: -GetTrackTerminator() const { +const G4VTrackTerminator * +G4ParallelTransportConfigurator::GetTrackTerminator() const +{ return 0; } diff --git a/source/processes/transportation/src/G4ParallelWWnTransportProcess.cc b/source/processes/transportation/src/G4ParallelWWnTransportProcess.cc new file mode 100644 index 0000000000..c2e65eb60e --- /dev/null +++ b/source/processes/transportation/src/G4ParallelWWnTransportProcess.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: G4ParallelWWnTransportProcess.cc,v 1.3 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelWWnTransportProcess.cc +// +// ---------------------------------------------------------------------- + +#include "G4Types.hh" +#include +#include "G4ParallelWWnTransportProcess.hh" +#include "G4VWeightWindowExaminer.hh" +#include "G4VTrackTerminator.hh" +#include "G4SamplingPostStepAction.hh" + +G4ParallelWWnTransportProcess::G4ParallelWWnTransportProcess( + const G4VWeightWindowExaminer &aWeightWindowExaminer, + G4VPGeoDriver &pgeodriver, + G4VParallelStepper &aStepper, + const G4VTrackTerminator *TrackTerminator, + const G4String &aName ) + : G4ParallelTransport(pgeodriver, aStepper, aName), + fParticleChange(G4ParallelTransport::fParticleChange), + fWeightWindowExaminer(aWeightWindowExaminer), + fPostStepAction(0) +{ + if (TrackTerminator) + { + fPostStepAction = new G4SamplingPostStepAction(*TrackTerminator); + } + else + { + fPostStepAction = new G4SamplingPostStepAction(*this); + } +} + +G4ParallelWWnTransportProcess::~G4ParallelWWnTransportProcess() +{ + delete fPostStepAction; +} + +G4VParticleChange * +G4ParallelWWnTransportProcess::PostStepDoIt(const G4Track& aTrack, + const G4Step &aStep) +{ + if (aTrack.GetTrackStatus()==fStopAndKill) + { + G4cout << "WARNING - G4ParallelWWnTransportProcess::PostStepDoIt()" + << " StopAndKill track !" + << G4endl; + } + G4ParallelTransport::PostStepDoIt(aTrack, aStep); + + // get new weight and number of clones + G4Nsplit_Weight nw(fWeightWindowExaminer.Examine(aTrack.GetWeight(), + aTrack. + GetKineticEnergy())); + + fPostStepAction->DoIt(aTrack, fParticleChange, nw); + return fParticleChange; +} + +void G4ParallelWWnTransportProcess::Error(const G4String &m) +{ + G4Exception("G4ParallelWWnTransportProcess::Error()", + "ProgramError", FatalException, m); +} + +void G4ParallelWWnTransportProcess::KillTrack() const +{ + fParticleChange->SetStatusChange(fStopAndKill); +} + +const G4String &G4ParallelWWnTransportProcess::GetName() const +{ + return G4ParallelTransport::GetProcessName(); +} diff --git a/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc b/source/processes/transportation/src/G4ParallelWeightWindowProcess.cc new file mode 100644 index 0000000000..57555c7158 --- /dev/null +++ b/source/processes/transportation/src/G4ParallelWeightWindowProcess.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: G4ParallelWeightWindowProcess.cc,v 1.10 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// ---------------------------------------------------------------------- +// GEANT 4 class source file +// +// G4ParallelWeightWindowProcess.cc +// +// ---------------------------------------------------------------------- + +#include "G4Types.hh" +#include +#include "G4ParallelWeightWindowProcess.hh" +#include "G4VWeightWindowExaminer.hh" +#include "G4VTrackTerminator.hh" +#include "G4SamplingPostStepAction.hh" +#include "G4VParallelStepper.hh" + +G4ParallelWeightWindowProcess::G4ParallelWeightWindowProcess( + const G4VWeightWindowExaminer &aWeightWindowExaminer, + G4VParallelStepper &aStepper, + const G4VTrackTerminator *TrackTerminator, + G4PlaceOfAction placeOfAction, + const G4String &aName) + : G4VProcess(aName), + fParticleChange(new G4ParticleChange), + fWeightWindowExaminer(aWeightWindowExaminer), + fStepper(aStepper), + fPostStepAction(0), + fPlaceOfAction(placeOfAction) +{ + if (TrackTerminator) + { + fPostStepAction = new G4SamplingPostStepAction(*TrackTerminator); + } + else + { + fPostStepAction = new G4SamplingPostStepAction(*this); + } + +} + +G4ParallelWeightWindowProcess::~G4ParallelWeightWindowProcess() +{ + delete fParticleChange; + delete fPostStepAction; +} + +G4double G4ParallelWeightWindowProcess:: +PostStepGetPhysicalInteractionLength(const G4Track& , + G4double , + G4ForceCondition* condition) +{ + *condition = Forced; + return kInfinity; +} + +G4VParticleChange * +G4ParallelWeightWindowProcess::PostStepDoIt(const G4Track& aTrack, + const G4Step &aStep) +{ + if (aTrack.GetTrackStatus()==fStopAndKill) + { + G4cout << "WARNING - G4ParallelWeightWindowProcess::PostStepDoIt()" + << " StopAndKill track !" << G4endl; + } + + fParticleChange->Initialize(aTrack); + + if (aStep.GetPostStepPoint()->GetStepStatus() != fGeomBoundary) + { + if (!( fStepper.GetPStep().GetCrossBoundary() + && (fPlaceOfAction == onCollision) ) ) + { + // get new weight and number of clones + G4Nsplit_Weight nw(fWeightWindowExaminer. + Examine(aTrack.GetWeight(), + aTrack. + GetKineticEnergy())); + fPostStepAction->DoIt(aTrack, fParticleChange, nw); + } + } + return fParticleChange; +} + +void G4ParallelWeightWindowProcess::Error(const G4String &m) +{ + G4Exception("G4ParallelWeightWindowProcess::Error()", + "ProgramError", FatalException, m); +} + +void G4ParallelWeightWindowProcess::KillTrack() const +{ + fParticleChange->SetStatusChange(fStopAndKill); +} + +const G4String &G4ParallelWeightWindowProcess::GetName() const +{ + return theProcessName; +} + +G4double G4ParallelWeightWindowProcess:: +AlongStepGetPhysicalInteractionLength(const G4Track&, + G4double , + G4double , + G4double& , + G4GPILSelection*) +{ + return -1.0; +} + +G4double G4ParallelWeightWindowProcess:: +AtRestGetPhysicalInteractionLength(const G4Track& , + G4ForceCondition*) +{ + return -1.0; +} + +G4VParticleChange* G4ParallelWeightWindowProcess:: +AtRestDoIt(const G4Track&, const G4Step&) +{ + return 0; +} + +G4VParticleChange* G4ParallelWeightWindowProcess:: +AlongStepDoIt(const G4Track&, const G4Step&) +{ + return 0; +} diff --git a/source/processes/transportation/src/G4ProcessPlacer.cc b/source/processes/transportation/src/G4ProcessPlacer.cc index 4a8a85737b..7f49821f07 100644 --- a/source/processes/transportation/src/G4ProcessPlacer.cc +++ b/source/processes/transportation/src/G4ProcessPlacer.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ProcessPlacer.cc,v 1.13 2003/04/23 09:44:34 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ProcessPlacer.cc,v 1.14 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -37,17 +37,20 @@ #include "G4ParticleTable.hh" G4ProcessPlacer::G4ProcessPlacer(const G4String &particlename) - : fParticleName(particlename) -{} + : fParticleName(particlename) +{ +} G4ProcessPlacer::~G4ProcessPlacer() -{} +{ +} -void G4ProcessPlacer::RemoveProcess(G4VProcess *process){ +void G4ProcessPlacer::RemoveProcess(G4VProcess *process) +{ G4cout << "=== G4ProcessPlacer::RemoveProcess: for: " << fParticleName - << G4endl; + << G4endl; G4cout << " ProcessName: " << process->GetProcessName() - << ", will be removed!" << G4endl; + << ", will be removed!" << G4endl; G4cout << " The initial Vectors: " << G4endl; PrintPostStepGPILVec(); @@ -66,27 +69,26 @@ void G4ProcessPlacer::RemoveProcess(G4VProcess *process){ void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) { G4cout << " ProcessName: " << process->GetProcessName() << G4endl; - G4cout << "The initial Vectors: " << G4endl; PrintPostStepGPILVec(); PrintPostStepDoItVec(); - - if (sol == eLast) { - GetProcessManager()->AddProcess(process, - ordInActive, - ordInActive, - ordLast); + if (sol == eLast) + { + GetProcessManager()->AddProcess(process, ordInActive, ordInActive, ordLast); } - else if (sol == eSecond) { + else if (sol == eSecond) + { // get transportation process G4VProcess *transportation = (* (GetProcessManager()->GetProcessList()))[0]; - if (!transportation) { + if (!transportation) + { G4Exception(" G4ProcessPlacer:: could not get process id=0"); } - if (transportation->GetProcessName() != "Transportation") { + if (transportation->GetProcessName() != "Transportation") + { G4cout << transportation->GetProcessName() << G4endl; G4Exception(" G4ProcessPlacer:: process id=0 is not Transportation"); } @@ -94,10 +96,10 @@ void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) // place the given proces as first for the moment GetProcessManager()->AddProcess(process); GetProcessManager()->SetProcessOrderingToFirst(process, - idxPostStep); + idxPostStep); // place transportation first again GetProcessManager()->SetProcessOrderingToFirst(transportation, - idxPostStep); + idxPostStep); } // for verification inly @@ -106,20 +108,19 @@ void G4ProcessPlacer::AddProcessAs(G4VProcess *process, SecondOrLast sol) PrintPostStepDoItVec(); G4cout << "================================================" << G4endl; - } void G4ProcessPlacer::AddProcessAsSecondDoIt(G4VProcess *process) { G4cout << "=== G4ProcessPlacer::AddProcessAsSecondDoIt: for: " - << fParticleName << G4endl; + << fParticleName << G4endl; AddProcessAs(process, eSecond); } void G4ProcessPlacer::AddProcessAsLastDoIt(G4VProcess *process) { G4cout << "=== G4ProcessPlacer::AddProcessAsLastDoIt: for: " - << fParticleName << G4endl; + << fParticleName << G4endl; AddProcessAs(process, eLast); } @@ -134,29 +135,34 @@ G4ProcessManager *G4ProcessPlacer::GetProcessManager() G4ProcessManager *processmanager = 0; // find process manager --------------------------- theParticleIterator->reset(); - while( (*theParticleIterator)() ){ + while( (*theParticleIterator)() ) + { G4ParticleDefinition* particle = theParticleIterator->value(); - if (particle->GetParticleName() == fParticleName) { + if (particle->GetParticleName() == fParticleName) + { processmanager = particle->GetProcessManager(); break; } } // --------------------------------------------------------- - if (!processmanager) { - G4Exception(" G4ProcessPlacer::GetProcessManager: no ProcessSampler"); + if (!processmanager) + { + G4Exception("G4ProcessPlacer::GetProcessManager()", "InvalidSetup", + FatalException, "NULL pointer to Process Manager !"); } return processmanager; } - -void G4ProcessPlacer::PrintPostStepGPILVec(){ +void G4ProcessPlacer::PrintPostStepGPILVec() +{ G4cout << "GPIL Vector: " << G4endl; G4ProcessVector* processGPILVec = GetProcessManager()->GetPostStepProcessVector(typeGPIL); PrintProcVec(processGPILVec); } -void G4ProcessPlacer::PrintPostStepDoItVec(){ +void G4ProcessPlacer::PrintPostStepDoItVec() +{ G4cout << "DoIt Vector: " << G4endl; G4ProcessVector* processDoItVec = GetProcessManager()->GetPostStepProcessVector(typeDoIt); @@ -166,23 +172,28 @@ void G4ProcessPlacer::PrintPostStepDoItVec(){ void G4ProcessPlacer::PrintProcVec(G4ProcessVector* processVec) { - if (!processVec) { - G4Exception("G4ProcessPlacer::G4ProcessPlacer: no processVec"); + if (!processVec) + { + G4Exception("G4ProcessPlacer::G4ProcessPlacer()", "InvalidArgument", + FatalException, "NULL pointer to process-vector !"); } G4int len = processVec->length(); - if (len==0) { - G4Exception("G4ProcessPlacer::G4ProcessPlacer:processVec len = 0"); + if (len==0) + { + G4Exception("G4ProcessPlacer::G4ProcessPlacer()", "InvalidSetup", + FatalException, "Length of process-vector is zero !"); } - for (int pi=0; piGetProcessName() << G4endl; } - else { + else + { G4cout << " " << "no process found for position: " << pi - << ", in vector of length: " << len << G4endl; + << ", in vector of length: " << len << G4endl; } } } - - diff --git a/source/processes/transportation/src/G4ImportancePostStepDoIt.cc b/source/processes/transportation/src/G4SamplingPostStepAction.cc similarity index 68% rename from source/processes/transportation/src/G4ImportancePostStepDoIt.cc rename to source/processes/transportation/src/G4SamplingPostStepAction.cc index a7e0104ee3..f28e330bcd 100644 --- a/source/processes/transportation/src/G4ImportancePostStepDoIt.cc +++ b/source/processes/transportation/src/G4SamplingPostStepAction.cc @@ -21,17 +21,17 @@ // ******************************************************************** // // -// $Id: G4ImportancePostStepDoIt.cc,v 1.10 2003/06/16 17:12:42 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SamplingPostStepAction.cc,v 1.1 2003/11/26 14:51:12 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file // -// G4ImportancePostStepDoIt.cc +// G4SamplingPostStepAction.cc // // ---------------------------------------------------------------------- -#include "G4ImportancePostStepDoIt.hh" +#include "G4SamplingPostStepAction.hh" #include "G4Track.hh" #include "G4ParticleChange.hh" #include "G4VImportanceSplitExaminer.hh" @@ -39,62 +39,71 @@ #include "G4VTrackTerminator.hh" #include +G4SamplingPostStepAction:: +G4SamplingPostStepAction(const G4VTrackTerminator &TrackTerminator) + : fTrackTerminator(TrackTerminator) +{ +} -G4ImportancePostStepDoIt:: -G4ImportancePostStepDoIt(const G4VTrackTerminator &TrackTerminator) - : - fTrackTerminator(TrackTerminator) -{} -G4ImportancePostStepDoIt::~G4ImportancePostStepDoIt(){} +G4SamplingPostStepAction::~G4SamplingPostStepAction() +{ +} -void G4ImportancePostStepDoIt::DoIt(const G4Track& aTrack, - G4ParticleChange *aParticleChange, - const G4Nsplit_Weight &nw) +void G4SamplingPostStepAction::DoIt(const G4Track& aTrack, + G4ParticleChange *aParticleChange, + const G4Nsplit_Weight &nw) { // evaluate results from sampler - if (nw.fN>1) { + if (nw.fN>1) + { // split track Split(aTrack, nw, aParticleChange); } - else if (nw.fN==1) { + else if (nw.fN==1) + { // don't split, but weight may be changed ! aParticleChange->SetWeightChange(nw.fW); } - else if (nw.fN==0) { + else if (nw.fN==0) + { // kill track fTrackTerminator.KillTrack(); } - else { + else + { // wrong answer char st[200]; std::ostrstream os(st,200); - os << "G4ImportancePostStepDoIt::DoIt: sampler returned nw = " + os << "Sampler returned nw = " << nw << "\n" << '\0'; G4String m(st); - G4Exception(m); + G4Exception("G4SamplingPostStepAction::DoIt()", + "InvalidCondition", FatalException, m); } } -void G4ImportancePostStepDoIt::Split(const G4Track &aTrack, - const G4Nsplit_Weight &nw, - G4ParticleChange *aParticleChange) +void G4SamplingPostStepAction::Split(const G4Track &aTrack, + const G4Nsplit_Weight &nw, + G4ParticleChange *aParticleChange) { aParticleChange->SetWeightChange(nw.fW); aParticleChange->SetNumberOfSecondaries(nw.fN-1); - for (G4int i=1;iSetCreatorProcess(aTrack.GetCreatorProcess()); ptrack->SetWeight(nw.fW); - if (ptrack->GetMomentumDirection() != aTrack.GetMomentumDirection()) { - G4Exception("ERROR - G4ImportancePostStepDoIt::Split: (ptrack->GetMomentumDirection() != aTrack.GetMomentumDirection()"); + if (ptrack->GetMomentumDirection() != aTrack.GetMomentumDirection()) + { + G4Exception("G4SamplingPostStepAction::Split()", "InvalidCondition", + FatalException, "Track with same momentum !"); } - aParticleChange->AddSecondary(ptrack); } return; diff --git a/source/processes/transportation/src/G4Transportation.cc b/source/processes/transportation/src/G4Transportation.cc index b8d482d1c8..eda368e079 100644 --- a/source/processes/transportation/src/G4Transportation.cc +++ b/source/processes/transportation/src/G4Transportation.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4Transportation.cc,v 1.38 2003/06/21 01:34:02 japost Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4Transportation.cc,v 1.44 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ------------------------------------------------------------ // GEANT 4 include file implementation @@ -37,6 +37,10 @@ // // ======================================================================= // Modified: +// 21 June 2003, J.Apostolakis: Calling field manager with +// track, to enable it to configure its accuracy +// 13 May 2003, J.Apostolakis: Zero field areas now taken into +// account correclty in all cases (thanks to W Pokorski). // 29 June 2001, J.Apostolakis, D.Cote-Ahern, P.Gumplinger: // correction for spin tracking // 20 Febr 2001, J.Apostolakis: update for new FieldTrack @@ -50,48 +54,38 @@ #include "G4Transportation.hh" #include "G4ProductionCutsTable.hh" +#include "G4ParticleTable.hh" +#include "G4ChordFinder.hh" ////////////////////////////////////////////////////////////////////////// // // Constructor -G4Transportation::G4Transportation() - : G4VProcess( G4String("Transportation") ) +G4Transportation::G4Transportation( G4int verboseLevel ) + : G4VProcess( G4String("Transportation") ), + fParticleIsLooping( false ), + fPreviousSftOrigin (0.,0.,0.), + fPreviousSafety ( 0.0 ), + fVerboseLevel( verboseLevel ) { G4TransportationManager* transportMgr ; transportMgr = G4TransportationManager::GetTransportationManager() ; fLinearNavigator = transportMgr->GetNavigatorForTracking() ; - fFieldPropagator = 0 ; - // fFieldExists= false ; - - fParticleIsLooping = false ; - // fGlobalFieldMgr = transportMgr->GetFieldManager() ; fFieldPropagator = transportMgr->GetPropagatorInField() ; - // Find out if an electromagnetic field exists - // - // fFieldExists= transportMgr->GetFieldManager()->DoesFieldExist() ; - // - // The above code is problematic, because it only works if - // the field manager has informed about the detector's field - // before this transportation process is constructed. - // I cannot foresee how the transportation can be informed later. - // The current answer is to ignore this data member and use - // the member function DoesGlobalFieldExist() in its place ... - // John Apostolakis, July 7, 1997 + // Cannot determine whether a field exists here, + // because it would only work if the field manager has informed + // about the detector's field before this transportation process + // is constructed. + // Instead later the method DoesGlobalFieldExist() is called fCurrentTouchableHandle = new G4TouchableHistory(); - // Initial value for safety and point-of-origin of safety - - fPreviousSafety = 0.0 ; - fPreviousSftOrigin = G4ThreeVector(0.,0.,0.) ; - fEndGlobalTimeComputed = false; fCandidateEndGlobalTime = 0; } @@ -330,10 +324,64 @@ AlongStepGetPhysicalInteractionLength( const G4Track& track, } else { - // The energy is unchanged by field transport, + // The energy should be unchanged by field transport, // - so the time changed will be calculated elsewhere // fEndGlobalTimeComputed = false; + + // Check that the integration preserved the energy + // - and if not correct this! + G4double startEnergy= track.GetKineticEnergy(); + G4double endEnergy= fTransportEndKineticEnergy; + + static G4int no_inexact_steps=0, no_large_ediff; + G4double absEdiff = fabs(startEnergy- endEnergy); + if( absEdiff > perMillion * endEnergy ) + { + no_inexact_steps++; + // Possible statistics keeping here ... + } + if( fVerboseLevel > 1 ) + { + if( fabs(startEnergy- endEnergy) > perThousand * endEnergy ) + { + static G4int no_warnings= 0, warnModulo=1, moduloFactor= 10; + no_large_ediff ++; + if( (no_large_ediff% warnModulo) == 0 ) + { + no_warnings++; + G4cout << "WARNING - G4Transportation::AlongStepGetPIL()" + << G4endl + << " Energy changed in Step, more than 1/1000: " + << G4endl + << " Start= " << startEnergy + << G4endl + << " End= " << endEnergy + << G4endl + << " Relative change= " + << (startEnergy-endEnergy)/startEnergy << G4endl; + G4cout << " Energy has been corrected -- however, review" + << " field propagation parameters for accuracy." + << G4endl; + G4cerr << "ERROR - G4Transportation::AlongStepGetPIL()" + << G4endl + << " Bad 'endpoint'. Energy change detected" + << " and corrected," + << G4endl + << " occurred already " + << no_large_ediff << " times." << G4endl; + if( no_large_ediff == warnModulo * moduloFactor ) + { + warnModulo *= moduloFactor; + } + } + } + } // end of if (fVerboseLevel) + + // Correct the energy for fields that conserve it + // This - hides the integration error + // - but gives a better physical answer + fTransportEndKineticEnergy= track.GetKineticEnergy(); } fTransportEndSpin = aFieldTrack.GetSpin(); @@ -416,19 +464,28 @@ G4VParticleChange* G4Transportation::AlongStepDoIt( const G4Track& track, G4double initialVelocity = stepData.GetPreStepPoint()->GetVelocity() ; G4double stepLength = track.GetStepLength() ; - if (finalVelocity > 0.0) - { + static const G4ParticleDefinition* fOpticalPhoton = + G4ParticleTable::GetParticleTable()->FindParticle("opticalphoton"); + const G4DynamicParticle* fpDynamicParticle = track.GetDynamicParticle(); + if (fpDynamicParticle->GetDefinition()== fOpticalPhoton) + { + // A photon is in the medium of the final point + // during the step, so it has the final velocity. + deltaTime = stepLength/finalVelocity ; + } + else if (finalVelocity > 0.0) + { G4double meanInverseVelocity ; - // deltaTime = stepLength/finalVelocity ; + // deltaTime = stepLength/finalVelocity ; meanInverseVelocity = 0.5 * ( 1.0 / initialVelocity + 1.0 / finalVelocity ) ; - deltaTime = stepLength * meanInverseVelocity ; + deltaTime = stepLength * meanInverseVelocity ; } else { - deltaTime = stepLength/initialVelocity ; + deltaTime = stepLength/initialVelocity ; } - fCandidateEndGlobalTime = startTime + deltaTime ; + fCandidateEndGlobalTime = startTime + deltaTime ; } else { diff --git a/source/processes/transportation/src/G4UserSpecialCuts.cc b/source/processes/transportation/src/G4UserSpecialCuts.cc index 409f8203fc..7ca0ddead3 100644 --- a/source/processes/transportation/src/G4UserSpecialCuts.cc +++ b/source/processes/transportation/src/G4UserSpecialCuts.cc @@ -21,14 +21,15 @@ // ******************************************************************** // // -// $Id: G4UserSpecialCuts.cc,v 1.9 2003/04/07 14:14:36 vnivanch Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4UserSpecialCuts.cc,v 1.11 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // -------------------------------------------------------------- // History // // 15-04-98 first implementation, mma // 07-04-03 migrade to cut per region (V.Ivanchenko) +// 18-09-03 substitute manager for the loss tables (V.Ivanchenko) // -------------------------------------------------------------- #include "G4UserSpecialCuts.hh" @@ -36,7 +37,7 @@ #include "G4Step.hh" #include "G4UserLimits.hh" #include "G4VParticleChange.hh" -#include "G4EnergyLossTables.hh" +#include "G4LossTableManager.hh" //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -47,18 +48,21 @@ G4UserSpecialCuts::G4UserSpecialCuts(const G4String& aName) { G4cout << GetProcessName() << " is created "<< G4endl; } + theLossTableManager = G4LossTableManager::Instance(); } //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4UserSpecialCuts::~G4UserSpecialCuts() -{} +{ +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... G4UserSpecialCuts::G4UserSpecialCuts(G4UserSpecialCuts& right) : G4VProcess(right) -{} +{ +} //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... @@ -98,8 +102,7 @@ PostStepGetPhysicalInteractionLength( const G4Track& aTrack, { G4double Ekine = aTrack.GetKineticEnergy(); const G4MaterialCutsCouple* couple = aTrack.GetMaterialCutsCouple(); - G4double RangeNow = - G4EnergyLossTables::GetRange(Particle,Ekine,couple); + G4double RangeNow = theLossTableManager->GetRange(Particle,Ekine,couple); temp = (RangeNow - pUserLimits->GetUserMinRange(aTrack)); if (temp < 0.) return 0.; if (ProposedStep > temp) ProposedStep = temp; @@ -107,7 +110,7 @@ PostStepGetPhysicalInteractionLength( const G4Track& aTrack, // min kinetic energy (only for charged particle) // G4double Emin = pUserLimits->GetUserMinEkine(aTrack); - G4double Rmin = G4EnergyLossTables::GetRange(Particle,Emin,couple); + G4double Rmin = theLossTableManager->GetRange(Particle,Emin,couple); temp = RangeNow - Rmin; if (temp < 0.) return 0.; if (ProposedStep > temp) ProposedStep = temp; diff --git a/source/processes/transportation/src/G4VProcessPlacer.cc b/source/processes/transportation/src/G4VProcessPlacer.cc index 06ed4558d8..1207eb1b31 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4VSampler.cc b/source/processes/transportation/src/G4VSampler.cc index ab05713c0e..8c1efd2f08 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4VSamplerConfigurator.cc b/source/processes/transportation/src/G4VSamplerConfigurator.cc index 3651fcab88..bf74148bc2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file diff --git a/source/processes/transportation/src/G4VTrackTerminator.cc b/source/processes/transportation/src/G4VTrackTerminator.cc index 41a220ca8d..af264c43f1 100644 --- a/source/processes/transportation/src/G4VTrackTerminator.cc +++ b/source/processes/transportation/src/G4VTrackTerminator.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VTrackTerminator.cc,v 1.2 2003/04/02 16:59:26 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VTrackTerminator.cc,v 1.3 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -31,10 +31,10 @@ // // ---------------------------------------------------------------------- - #include "G4VTrackTerminator.hh" G4VTrackTerminator::G4VTrackTerminator() {} + G4VTrackTerminator::~G4VTrackTerminator() {} diff --git a/source/processes/transportation/src/G4WeightCutOffConfigurator.cc b/source/processes/transportation/src/G4WeightCutOffConfigurator.cc index d358a27304..e7a83a6b1a 100644 --- a/source/processes/transportation/src/G4WeightCutOffConfigurator.cc +++ b/source/processes/transportation/src/G4WeightCutOffConfigurator.cc @@ -21,57 +21,56 @@ // ******************************************************************** // // -// $Id: G4WeightCutOffConfigurator.cc,v 1.4 2003/04/02 16:59:34 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4WeightCutOffConfigurator.cc,v 1.5 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // Class G4WeightCutOffConfigurator // - // Author: Michael Dressel (Michael.Dressel@cern.ch) // ---------------------------------------------------------------------- #include "G4WeightCutOffConfigurator.hh" #include "G4WeightCutOffProcess.hh" - G4WeightCutOffConfigurator:: G4WeightCutOffConfigurator(const G4String &particlename, - G4double wsurvival, - G4double wlimit, - G4double isource, - G4VIStore *istore, - const G4VGCellFinder &aGCellfinder) - : - fPlacer(particlename), - fWeightCutOffProcess(new G4WeightCutOffProcess(wsurvival, - wlimit, - isource, - istore, - aGCellfinder)), - fPlaced(false) + G4double wsurvival, + G4double wlimit, + G4double isource, + G4VIStore *istore, + const G4VGCellFinder &aGCellfinder) + : fPlacer(particlename), + fPlaced(false) { - if (!fWeightCutOffProcess) { - G4Exception("ERROR:G4WeightCutOffConfigurator::G4WeightCutOffConfigurator: new failed to create G4WeightCutOffProcess!"); + fWeightCutOffProcess = + new G4WeightCutOffProcess(wsurvival,wlimit,isource,istore,aGCellfinder); + if (!fWeightCutOffProcess) + { + G4Exception("G4WeightCutOffConfigurator::G4WeightCutOffConfigurator()", + "FatalError", FatalException, + "Failed to allocate G4WeightCutOffProcess !"); } } - -G4WeightCutOffConfigurator::~G4WeightCutOffConfigurator(){ - if (fPlaced) { +G4WeightCutOffConfigurator::~G4WeightCutOffConfigurator() +{ + if (fPlaced) + { fPlacer.RemoveProcess(fWeightCutOffProcess); delete fWeightCutOffProcess; } } -void G4WeightCutOffConfigurator:: -Configure(G4VSamplerConfigurator *){ +void G4WeightCutOffConfigurator::Configure(G4VSamplerConfigurator *) +{ fPlacer.AddProcessAsLastDoIt(fWeightCutOffProcess); fPlaced = true; } -const G4VTrackTerminator *G4WeightCutOffConfigurator:: -GetTrackTerminator() const { +const G4VTrackTerminator +*G4WeightCutOffConfigurator::GetTrackTerminator() const +{ return 0; } diff --git a/source/processes/transportation/src/G4WeightCutOffProcess.cc b/source/processes/transportation/src/G4WeightCutOffProcess.cc index e95599abd1..1d1dddebf5 100644 --- a/source/processes/transportation/src/G4WeightCutOffProcess.cc +++ b/source/processes/transportation/src/G4WeightCutOffProcess.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4WeightCutOffProcess.cc,v 1.5 2003/04/02 16:59:35 dressel Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4WeightCutOffProcess.cc,v 1.6 2003/11/26 14:51:50 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // ---------------------------------------------------------------------- // GEANT 4 class source file @@ -41,22 +41,24 @@ G4WeightCutOffProcess:: G4WeightCutOffProcess(G4double wsurvival, - G4double wlimit, - G4double isource, - G4VIStore *istore, - const G4VGCellFinder &aGCellFinder, - const G4String &aName) - : - G4VProcess(aName), - fParticleChange(new G4ParticleChange), - fWeightSurvival(wsurvival), - fWeightLimit(wlimit), - fSourceImportance(isource), - fIStore(istore), - fGCellFinder(aGCellFinder) + G4double wlimit, + G4double isource, + G4VIStore *istore, + const G4VGCellFinder &aGCellFinder, + const G4String &aName) + : G4VProcess(aName), + fParticleChange(new G4ParticleChange), + fWeightSurvival(wsurvival), + fWeightLimit(wlimit), + fSourceImportance(isource), + fIStore(istore), + fGCellFinder(aGCellFinder) { - if (!fParticleChange) { - G4Exception("ERROR:G4WeightCutOffProcess::G4WeightCutOffProcess: new failed to create G4ParticleChange!"); + if (!fParticleChange) + { + G4Exception("G4WeightCutOffProcess::G4WeightCutOffProcess()", + "FatalError", FatalException, + "Failed to allocate G4ParticleChange !"); } G4VProcess::pParticleChange = fParticleChange; } @@ -68,8 +70,7 @@ G4WeightCutOffProcess::~G4WeightCutOffProcess() G4double G4WeightCutOffProcess:: PostStepGetPhysicalInteractionLength(const G4Track &, - G4double , - G4ForceCondition* condition) + G4double, G4ForceCondition* condition) { *condition = Forced; return kInfinity; @@ -77,58 +78,67 @@ PostStepGetPhysicalInteractionLength(const G4Track &, G4VParticleChange * G4WeightCutOffProcess::PostStepDoIt(const G4Track& aTrack, - const G4Step &aStep) + const G4Step &aStep) { fParticleChange->Initialize(aTrack); G4GeometryCell postCell = fGCellFinder.GetPostGeometryCell(aStep); G4double R = fSourceImportance; - if (fIStore) { + if (fIStore) + { G4double i = fIStore->GetImportance(postCell); - if (i>0) { + if (i>0) + { R/=i; } } G4double w = aTrack.GetWeight(); - if (wSetStatusChange(fStopAndKill); } - else { + else + { fParticleChange->SetWeightChange(ws); } } return fParticleChange; } -const G4String &G4WeightCutOffProcess::GetName() const { +const G4String &G4WeightCutOffProcess::GetName() const +{ return theProcessName; } - G4double G4WeightCutOffProcess:: AlongStepGetPhysicalInteractionLength(const G4Track&, - G4double , - G4double , - G4double& , - G4GPILSelection*) { + G4double , + G4double , + G4double& , + G4GPILSelection*) +{ return -1.0; } G4double G4WeightCutOffProcess:: AtRestGetPhysicalInteractionLength(const G4Track& , - G4ForceCondition*) { + G4ForceCondition*) +{ return -1.0; } -G4VParticleChange* G4WeightCutOffProcess:: -AtRestDoIt(const G4Track&, const G4Step&) { +G4VParticleChange* +G4WeightCutOffProcess::AtRestDoIt(const G4Track&, const G4Step&) +{ return 0; } -G4VParticleChange* G4WeightCutOffProcess:: -AlongStepDoIt(const G4Track&, const G4Step&) { +G4VParticleChange* +G4WeightCutOffProcess::AlongStepDoIt(const G4Track&, const G4Step&) +{ return 0; } diff --git a/source/readout/GNUmakefile b/source/readout/GNUmakefile index b04f8e5d94..579169d89b 100644 --- a/source/readout/GNUmakefile +++ b/source/readout/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:14:11 gunter Exp $ +# $Id: GNUmakefile,v 1.2 2003/10/03 14:42:29 gcosmo Exp $ # ----------------------------------------------------------- # GNUmakefile for digits+hits library. Makoto Asai, 1/11/96. # ----------------------------------------------------------- @@ -22,12 +22,13 @@ CPPFLAGS += \ -I$(G4BASE)/track/include \ -I$(G4BASE)/tracking/include \ -I$(G4BASE)/run/include \ - -I$(G4BASE)/digits+hits/detector/include \ - -I$(G4BASE)/digits+hits/hits/include \ - -I$(G4BASE)/digits+hits/digits/include \ + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/digits_hits/hits/include \ + -I$(G4BASE)/digits_hits/digits/include \ -I$(G4BASE)/event/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/intercoms/include include $(G4INSTALL)/config/common.gmk diff --git a/source/readout/History b/source/readout/History index bc2888b01c..11e8e2a3bb 100644 --- a/source/readout/History +++ b/source/readout/History @@ -1,4 +1,4 @@ -$Id: History,v 1.5 2001/10/18 20:28:18 asaim Exp $ +$Id: History,v 1.6 2003/10/03 14:42:43 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,12 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Oct 4, 2003, G.Cosmo (readout-V05-02-00) +- GNUmakefile: + o added dependency to new module "geometry/navigation". + o replaced "digits+hits" with "digits_hits". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + Oct 18, 2001, M.Asai (readout-V03-02-00) - Correction for warning messages by gcc-2.95.2 diff --git a/source/readout/include/G4DCtable.hh b/source/readout/include/G4DCtable.hh index 640df42c60..83feb73ac4 100644 --- a/source/readout/include/G4DCtable.hh +++ b/source/readout/include/G4DCtable.hh @@ -22,7 +22,7 @@ // // // $Id: G4DCtable.hh,v 1.7 2003/06/16 17:12:45 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4DCtable_H diff --git a/source/readout/include/G4DMmessenger.hh b/source/readout/include/G4DMmessenger.hh index 8a5d62a99a..8aa15b5d12 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4DMmessenger_h diff --git a/source/readout/include/G4DigiManager.hh b/source/readout/include/G4DigiManager.hh index 5542026e79..fbf11c2c33 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4DigiManager_h diff --git a/source/readout/include/G4VDigitizerModule.hh b/source/readout/include/G4VDigitizerModule.hh index 578a08da74..7efff5058a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VDigitizerModule_H diff --git a/source/readout/src/G4DCtable.cc b/source/readout/src/G4DCtable.cc index 39bcab8a76..e959c6111e 100644 --- a/source/readout/src/G4DCtable.cc +++ b/source/readout/src/G4DCtable.cc @@ -22,7 +22,7 @@ // // // $Id: G4DCtable.cc,v 1.7 2003/06/16 17:12:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4DCtable.hh" diff --git a/source/readout/src/G4DMmessenger.cc b/source/readout/src/G4DMmessenger.cc index 09de249c21..bf44e9680a 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // --------------------------------------------------------------------- diff --git a/source/readout/src/G4DigiManager.cc b/source/readout/src/G4DigiManager.cc index 2701744693..1781f79f8f 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4DigiManager.hh" diff --git a/source/readout/src/G4VDigitizerModule.cc b/source/readout/src/G4VDigitizerModule.cc index 649c94cebb..a857f149f3 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4VDigitizerModule.hh" diff --git a/source/run/GNUmakefile b/source/run/GNUmakefile index f642e14ace..a6429a1340 100644 --- a/source/run/GNUmakefile +++ b/source/run/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.6 2002/07/11 16:18:35 dressel Exp $ +# $Id: GNUmakefile,v 1.8 2003/10/03 14:46:30 gcosmo Exp $ # ---------------------------------------------------------- # GNUmakefile for run library. Gabriele Cosmo, 3/4/1997. # ---------------------------------------------------------- @@ -19,17 +19,19 @@ CPPFLAGS += \ -I$(G4BASE)/materials/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/processes/transportation/include \ -I$(G4BASE)/processes/decay/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/geometry/magneticfield/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/tracking/include \ - -I$(G4BASE)/digits+hits/detector/include \ - -I$(G4BASE)/digits+hits/hits/include \ - -I$(G4BASE)/digits+hits/digits/include \ + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/digits_hits/hits/include \ + -I$(G4BASE)/digits_hits/digits/include \ -I$(G4BASE)/event/include \ -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/geometry/biasing/include diff --git a/source/run/History b/source/run/History index d602c66b9f..2e0d637275 100644 --- a/source/run/History +++ b/source/run/History @@ -1,4 +1,4 @@ -$Id: History,v 1.95 2003/06/19 13:21:02 gcosmo Exp $ +$Id: History,v 1.106 2003/12/09 09:14:48 gcosmo Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,46 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +December 09, 2003, G.Cosmo (run-V05-02-10) +- Changed date for release 6.0. + +November 12, 2003, M.Asai (run-V05-02-09) +- Remove dedicated treatment of anti-proton, neutron and anti-neutron + from BuildPhysicsTable of UserPhysicsList. + +November 04, 2003, M.Asai (run-V05-02-08) +- Cosmetic changes of messages for storing/retreiving physics table + +November 03, 2003, M.Asai (run-V05-02-07) +- Introducing PhysicsHasBeenModified() method in G4RunManagerKernel class + and relared wrapper methods in G4RunManager and G4RunMessenger. + +November 3, 2003, H.Kurashige (run-V05-02-06) +- G4VUserPhysicsList: + o Clean Up error messages for store/retreiving physcs table + +October 21, 2003, M.Asai (run-V05-02-05) +- G4RunManagerKernel: + o Protect against a region which does not have a cut pointer. + +October 4, 2003, G.Cosmo (run-V05-02-04) +- GNUmakefile: + o added dependency to new module "geometry/navigation". + o replaced "digits+hits" with "digits_hits". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +September 25, 2003, H.Kurashige (run-V05-02-03) +- Modify GNUmakefile for processes/cuts category + +September 09, 2003, M.Asai (run-V05-02-02) +- Fix a typo in G4VUserPhysicsList. + +August 25, 2003, G.Cosmo (run-V05-02-01) +- G4RunManager.cc: changed date for release 5.2-patch01. + +August 01, 2003, M.Asai (run-V05-02-00) +- Introducing G4RunManagerKernel class. + June 19, 2003, G.Cosmo (run-V05-01-04) - G4VUserPhysicsList.cc: check IsShortLived() before building the physics table in BuildPhysicsTable(). (V.Ivantchenko) diff --git a/source/run/include/G4ExceptionHandler.hh b/source/run/include/G4ExceptionHandler.hh index 984bf34e97..fd635d466c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4Run.hh b/source/run/include/G4Run.hh index 5f297f2308..4681642ff4 100644 --- a/source/run/include/G4Run.hh +++ b/source/run/include/G4Run.hh @@ -22,7 +22,7 @@ // // // $Id: G4Run.hh,v 1.7 2003/04/23 17:54:17 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4Run_h diff --git a/source/run/include/G4RunManager.hh b/source/run/include/G4RunManager.hh index 259a108293..f7350b490b 100644 --- a/source/run/include/G4RunManager.hh +++ b/source/run/include/G4RunManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunManager.hh,v 1.34 2003/06/16 17:12:49 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4RunManager.hh,v 1.37 2003/11/04 01:58:00 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -81,13 +81,12 @@ class G4Timer; class G4RunMessenger; class G4DCtable; class G4Run; -class G4ExceptionHandler; +#include "G4RunManagerKernel.hh" #include "G4Event.hh" #include "G4EventManager.hh" #include "globals.hh" #include -////////#include class G4RunManager { @@ -95,11 +94,6 @@ class G4RunManager static G4RunManager* GetRunManager(); // Static method which returns the singleton pointer of G4RunManager or // its derived class. - public: -//////// static G4int RegisterInteruption(int interuptionSignal = SIGQUIT); - // Static method to define the interuption key -//////// static void ReceiveInteruption(int sig); - // Static method to accept interuption signal private: static G4RunManager* fRunManager; @@ -126,8 +120,8 @@ class G4RunManager // loop. This method must be invoked at the Geant4 state of PreInit or Idle. The // state will be changed to Init during the initialization procedures and then // changed to Idle. - // This method invokes three protected methods, InitializeGeometry(), - // InitializePhysics(), and InitializeCutOff(). + // This method invokes two protected methods, InitializeGeometry() and + // InitializePhysics(). // After some event loops, the user can invoke this method once again. It is // required if the user changes geometry, physics process, and/or cut off value. // If the user forget the second invokation, G4RunManager will invoke BeamOn() @@ -140,7 +134,7 @@ class G4RunManager // different from the original one used in the previous run; if not, it must be // set to false, so that the original optimisation and navigation history is // preserved. This method is invoked also at initialisation. - virtual void ResetNavigator() const; + //////////////////////////////////////////////////////virtual void ResetNavigator() const; // Resets the state of the navigator for tracking; needed for geometry updates. // It forces the optimisation and navigation history to be reset. virtual void AbortRun(G4bool softAbort=false); @@ -158,11 +152,10 @@ class G4RunManager virtual void InitializeGeometry(); virtual void InitializePhysics(); - virtual void InitializeCutOff(); - // These three protected methods are invoked from Initialize() method for the - // initializations of geometry, physics processes, and cut off. The user's concrete + // These protected methods are invoked from Initialize() method for the + // initializations of geometry and physics processes. The user's concrete // G4VUserDetectorConstruction class will be accessed from InitializeGeometry() and - // G4VUserPhysicsList class will be accessed from other two methods. + // G4VUserPhysicsList class will be accessed from InitializePhysics(). virtual G4bool ConfirmBeamOnCondition(); virtual void RunInitialization(); @@ -182,7 +175,7 @@ class G4RunManager // object is deleted in this class. If the user uses ODBMS and wants to store the // G4Run class object, he/she must override this method. - virtual void BuildPhysicsTables(); + ///////////////////////////////////////////////////////////virtual void BuildPhysicsTables(); // This method is invoked from RunInitialization() to create physics tables. virtual G4Event* GenerateEvent(G4int i_event); @@ -197,7 +190,7 @@ class G4RunManager // class is defined. public: // with description - void UpdateRegion(); + //////////////////////////////////////////////////////void UpdateRegion(); // Update region list. // This method is mandatory before invoking following two dump methods. // At RunInitialization(), this method is automatically invoked, and thus @@ -214,12 +207,13 @@ class G4RunManager void StackPreviousEvent(G4Event* anEvent); protected: + G4RunManagerKernel * kernel; G4EventManager * eventManager; + G4VUserDetectorConstruction * userDetector; G4VUserPhysicsList * physicsList; G4UserRunAction * userRunAction; G4VUserPrimaryGeneratorAction * userPrimaryGeneratorAction; - G4UserEventAction * userEventAction; G4UserStackingAction * userStackingAction; G4UserTrackingAction * userTrackingAction; @@ -227,12 +221,10 @@ class G4RunManager private: G4RunMessenger* runMessenger; - G4ExceptionHandler* defaultExceptionHandler; protected: G4bool geometryInitialized; G4bool physicsInitialized; - G4bool cutoffInitialized; G4bool geometryNeedsToBeClosed; G4bool runAborted; G4bool initializedAtLeastOnce; @@ -251,10 +243,8 @@ class G4RunManager G4bool storeRandomNumberStatus; G4String randomNumberStatusDir; - G4String versionString; G4VPhysicalVolume* currentWorld; - G4Region* defaultRegion; public: virtual void rndmSaveThisRun(); @@ -317,7 +307,7 @@ class G4RunManager // he/she can use the corresponding ENUM in G4ClassificationOfNewTrack. inline G4String GetVersionString() const - { return versionString; } + { return kernel->GetVersionString(); } public: inline void SetRandomNumberStore(G4bool flag) @@ -336,16 +326,29 @@ class G4RunManager public: // with description inline void GeometryHasBeenModified() { geometryNeedsToBeClosed = true; } - inline void CutOffHasBeenModified() - { cutoffInitialized = false; } - // These two methods must be invoked (or equivalent UI commands can be used) - // in case the user changes his/her detector geometry or cut off value(s) after + // This method must be invoked (or equivalent UI command can be used) + // in case the user changes his/her detector geometry after // Initialize() metho has been invoked. Then, at the begining of the next BeamOn(), // all necessary re-initialization will be done. + inline void PhysicsHasBeenModified() + { kernel->PhysicsHasBeenModified(); } + // This method must be invoked (or equivalent UI command can be used) + // in case the user changes his/her physics process(es), e.g. (in)activate + // some processes. Once this method is invoked, regardless of cuts are + // changed or not, BuildPhysicsTable() of PhysicsList is invoked for + // refreshing all physics tables. + + inline void CutOffHasBeenModified() + { + G4cerr << "CutOffHasBeenModified becomes obsolete." << G4endl; + G4cerr << "It is safe to remove invoking this method." << G4endl; + } + public: inline void SetVerboseLevel(G4int vl) - { verboseLevel = vl; } + { verboseLevel = vl; + kernel->SetVerboseLevel(vl); } inline G4int GetVerboseLevel() const { return verboseLevel; } @@ -355,6 +358,7 @@ class G4RunManager { geometryToBeOptimized = vl; geometryNeedsToBeClosed = true; + kernel->SetGeometryToBeOptimized(vl); } } inline G4bool GetGeometryToBeOptimized() diff --git a/source/run/include/G4RunManagerKernel.hh b/source/run/include/G4RunManagerKernel.hh new file mode 100644 index 0000000000..59819e102c --- /dev/null +++ b/source/run/include/G4RunManagerKernel.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: G4RunManagerKernel.hh,v 1.3 2003/11/04 01:58:28 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +// class description: +// +// This is a class for mandatory control of GEANT4 kernel. +// +// This class is constructed by G4RunManager. If a user uses his/her own +// class instead of G4RunManager, this class must be instantiated by +// him/herself at the very beginning of the application and must be deleted +// at the very end of the application. Also, following methods must be +// invoked in the proper order. +// DefineWorldVolume +// InitializePhysics +// RunInitialization +// RunTermination +// +// User must provide his/her own classes derived from the following +// abstract class and register it to the RunManagerKernel. +// G4VUserPhysicsList - Particle types, Processes and Cuts +// +// G4RunManagerKernel does not have any eveny loop. Handling of events +// is managed by G4RunManager. +// + +#ifndef G4RunManagerKernel_h +#define G4RunManagerKernel_h 1 + +class G4VUserPhysicsList; +class G4EventManager; + +class G4VPhysicalVolume; +class G4Region; +class G4ExceptionHandler; + +#include "globals.hh" + +class G4RunManagerKernel +{ + public: // with description + static G4RunManagerKernel* GetRunManagerKernel(); + // Static method which returns the singleton pointer of G4RunManagerKernel or + // its derived class. + + private: + static G4RunManagerKernel* fRunManagerKernel; + + public: // with description + G4RunManagerKernel(); + virtual ~G4RunManagerKernel(); + // The constructor and the destructor. The user must construct this class + // object at the beginning of his/her main() and must delete it at the + // bottom of the main(), unless he/she used G4RunManager. + + public: // with description + void DefineWorldVolume(G4VPhysicalVolume * worldVol, + G4bool topologyIsChanged=true); + // This method must be invoked if the geometry setup has been changed between + // runs. The flag 'topologyIsChanged' will specify if the geometry topology is + // different from the original one used in the previous run; if not, it must be + // set to false, so that the original optimisation and navigation history is + // preserved. This method is invoked also at initialisation. + + + void InitializePhysics(G4VUserPhysicsList* uPhys); + // This method must be invoked at least once by the user with a valid + // concrete implementation of user physics list. + + G4bool RunInitialization(); + // Trigger geometry closing and physics table constructions. + // It returns TRUE is all procedures went well. + + void RunTermination(); + // Set the application state to G4State_Idle so that the user can modify + // physics/geometry. + + private: + void ResetNavigator(); + void BuildPhysicsTables(); + void CheckRegions(); + + public: // with description + void UpdateRegion(); + // Update region list. + // This method is mandatory before invoking following two dump methods. + // At RunInitialization(), this method is automatically invoked, and thus + // the user needs not invoke. + + void DumpRegion(G4String rname) const; + // Dump information of a region. + + void DumpRegion(G4Region* region=0) const; + // Dump information of a region. + // If the pointer is NULL, all regions are shown. + + private: + G4VUserPhysicsList * physicsList; + G4VPhysicalVolume* currentWorld; + G4bool geometryInitialized; + G4bool physicsInitialized; + G4bool geometryNeedsToBeClosed; + G4bool geometryToBeOptimized; + G4bool physicsNeedsToBeReBuilt; + G4int verboseLevel; + + G4EventManager * eventManager; + G4ExceptionHandler* defaultExceptionHandler; + G4Region* defaultRegion; + G4String versionString; + + public: // with description + inline void GeometryHasBeenModified() + { geometryNeedsToBeClosed = true; } + // This method must be invoked (or equivalent UI commands can be used) + // in case the user changes his/her detector geometry. + // This method is automatically invoked from DefineWorldVolume() method. + + inline void PhysicsHasBeenModified() + { physicsNeedsToBeReBuilt = true; } + // This method must be invoked in case the user changes his/her physics + // process(es), e.g. (in)activate some processes. Once this method is + // invoked, regardless of cuts are changed or not, BuildPhysicsTable() + // of PhysicsList is invoked for refreshing all physics tables. + + public: + inline G4EventManager* GetEventManager() const + { return eventManager; } + + inline G4String GetVersionString() const + { return versionString; } + + inline void SetVerboseLevel(G4int vl) + { verboseLevel = vl; } + + inline void SetGeometryToBeOptimized(G4bool vl) + { + if(geometryToBeOptimized != vl) + { + geometryToBeOptimized = vl; + geometryNeedsToBeClosed = true; + } + } +}; + +#endif + diff --git a/source/run/include/G4RunMessenger.hh b/source/run/include/G4RunMessenger.hh index 3d0682b562..1443662146 100644 --- a/source/run/include/G4RunMessenger.hh +++ b/source/run/include/G4RunMessenger.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunMessenger.hh,v 1.11 2003/03/11 05:00:47 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4RunMessenger.hh,v 1.12 2003/11/04 01:58:28 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // GEANT 4 class header file @@ -43,7 +43,7 @@ // abort * Abort current run processing. // Initialize * Initialize G4 kernel. // geometryModified * Force geometry to be closed again. -// cutoffModified * Force closssection tables to be calculated again. +// physicsModified * Force cross-section tables to be calculated again. // (and rebuilding physics table will be invoked) // storeRandomNumberStatus * Set the flag for storing random number status // restoreRandomNumberStatus * Restore the stored random number status @@ -90,6 +90,7 @@ class G4RunMessenger: public G4UImessenger G4UIcmdWithoutParameter * abortEventCmd; G4UIcmdWithoutParameter * initCmd; G4UIcmdWithoutParameter * geomCmd; + G4UIcmdWithoutParameter * physCmd; G4UIcmdWithoutParameter * cutCmd; G4UIdirectory * randomDirectory; diff --git a/source/run/include/G4UserPhysicsListMessenger.hh b/source/run/include/G4UserPhysicsListMessenger.hh index c870b13fdf..d8ff9456eb 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/run/include/G4UserRunAction.hh b/source/run/include/G4UserRunAction.hh index b33ea336fc..0590821ee9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4UserRunAction_h diff --git a/source/run/include/G4VModularPhysicsList.hh b/source/run/include/G4VModularPhysicsList.hh index 317e566043..5085c8eca5 100644 --- a/source/run/include/G4VModularPhysicsList.hh +++ b/source/run/include/G4VModularPhysicsList.hh @@ -22,7 +22,7 @@ // // // $Id: G4VModularPhysicsList.hh,v 1.5 2003/06/16 17:12:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VPersistencyManager.hh b/source/run/include/G4VPersistencyManager.hh index e121e49d45..f10d54f7f2 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VPersistencyManager_h diff --git a/source/run/include/G4VPhysicsConstructor.hh b/source/run/include/G4VPhysicsConstructor.hh index cece218c1d..206c9ce48c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/include/G4VUserDetectorConstruction.hh b/source/run/include/G4VUserDetectorConstruction.hh index 8ebf4e9139..265424c9c7 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VUserDetectorConstruction_h diff --git a/source/run/include/G4VUserPhysicsList.hh b/source/run/include/G4VUserPhysicsList.hh index 1e624e370f..dac76a8d8a 100644 --- a/source/run/include/G4VUserPhysicsList.hh +++ b/source/run/include/G4VUserPhysicsList.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VUserPhysicsList.hh,v 1.24 2003/05/21 21:06:00 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VUserPhysicsList.hh,v 1.25 2003/11/03 02:16:36 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -343,16 +343,6 @@ inline G4double G4VUserPhysicsList::GetDefaultCutValue() const return defaultCutValue; } -inline void G4VUserPhysicsList::SetVerboseLevel(G4int value) -{ - verboseLevel = value; -#ifdef G4VERBOSE - if (verboseLevel >1){ - G4cout << "G4VUserPhysicsList::SetVerboseLevel :"; - G4cout << " Verbose level is set to " << verboseLevel << G4endl; - } -#endif -} inline G4int G4VUserPhysicsList::GetVerboseLevel() const { diff --git a/source/run/include/G4VUserPrimaryGeneratorAction.hh b/source/run/include/G4VUserPrimaryGeneratorAction.hh index a1a33eceed..6fc96fe039 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #ifndef G4VUserPrimaryGeneratorAction_h diff --git a/source/run/src/G4ExceptionHandler.cc b/source/run/src/G4ExceptionHandler.cc index f3e6fefe86..55b7ca9201 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/src/G4Run.cc b/source/run/src/G4Run.cc index 0fb5418062..0ad09f7bd3 100644 --- a/source/run/src/G4Run.cc +++ b/source/run/src/G4Run.cc @@ -22,7 +22,7 @@ // // // $Id: G4Run.cc,v 1.5 2003/04/23 17:54:31 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4Run.hh" diff --git a/source/run/src/G4RunManager.cc b/source/run/src/G4RunManager.cc index 5e077b122b..c1d19598a6 100644 --- a/source/run/src/G4RunManager.cc +++ b/source/run/src/G4RunManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunManager.cc,v 1.81 2003/06/19 13:05:13 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4RunManager.cc,v 1.83 2003/08/01 19:30:14 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // @@ -31,100 +31,63 @@ #include "G4Timer.hh" #include "G4RunManager.hh" +#include "G4RunManagerKernel.hh" +#include "G4StateManager.hh" +#include "G4ApplicationState.hh" #include "Randomize.hh" #include "G4Run.hh" #include "G4RunMessenger.hh" -#include "G4VUserDetectorConstruction.hh" #include "G4VUserPhysicsList.hh" +#include "G4VUserDetectorConstruction.hh" #include "G4UserRunAction.hh" #include "G4VUserPrimaryGeneratorAction.hh" -#include "G4GeometryManager.hh" -#include "G4SDManager.hh" -#include "G4Navigator.hh" -#include "G4TransportationManager.hh" -#include "G4VPhysicalVolume.hh" -#include "G4LogicalVolume.hh" -#include "G4Region.hh" -#include "G4RegionStore.hh" -#include "G4ProductionCuts.hh" -#include "G4ProductionCutsTable.hh" -#include "G4ApplicationState.hh" -#include "G4StateManager.hh" #include "G4VPersistencyManager.hh" -#include "G4UImanager.hh" #include "G4ParticleTable.hh" #include "G4ProcessTable.hh" #include "G4UnitsTable.hh" #include "G4VVisManager.hh" #include "G4Material.hh" -#include "G4ExceptionHandler.hh" +#include "G4SDManager.hh" +#include "G4UImanager.hh" #include "G4ios.hh" #include + G4RunManager* G4RunManager::fRunManager = 0; G4RunManager* G4RunManager::GetRunManager() { return fRunManager; } -//G4int G4RunManager::RegisterInteruption(int interuptionSignal) -//{ -// if(signal(interuptionSignal,ReceiveInteruption)==SIG_ERR) return -1; -// return 0; -//} - -//void G4RunManager::ReceiveInteruption(int sig) -//{ -// if(!fRunManager) return; -// G4ApplicationState state -// = G4StateManager::GetStateManager()->GetCurrentState(); -// if(state==G4State_GeomClosed || state==G4State_EventProc) -// { fRunManager->AbortRun(true); } -//} - G4RunManager::G4RunManager() :userDetector(0),physicsList(0), userRunAction(0),userPrimaryGeneratorAction(0),userEventAction(0), userStackingAction(0),userTrackingAction(0),userSteppingAction(0), - geometryInitialized(false),physicsInitialized(false),cutoffInitialized(false), + geometryInitialized(false),physicsInitialized(false), geometryNeedsToBeClosed(true),runAborted(false),initializedAtLeastOnce(false), geometryToBeOptimized(true),runIDCounter(0),verboseLevel(0),DCtable(0), currentRun(0),currentEvent(0),n_perviousEventsToBeStored(0), numberOfEventToBeProcessed(0),storeRandomNumberStatus(false),currentWorld(0) { - defaultExceptionHandler = new G4ExceptionHandler(); if(fRunManager) { G4Exception("G4RunManager constructed twice."); } - //G4UnitDefinition::BuildUnitsTable(); fRunManager = this; - eventManager = new G4EventManager(); + + kernel = new G4RunManagerKernel(); + eventManager = kernel->GetEventManager(); + timer = new G4Timer(); runMessenger = new G4RunMessenger(this); previousEvents = new std::vector; - defaultRegion = new G4Region("DefaultRegionForTheWorld"); - defaultRegion->SetProductionCuts(G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts()); G4ParticleTable::GetParticleTable()->CreateMessenger(); G4ProcessTable::GetProcessTable()->CreateMessenger(); randomNumberStatusDir = "./"; - versionString = " Geant4 version $Name: geant4-05-02 $\n (27-June-2003)"; - G4cout - << "**********************************************" << G4endl - << versionString << G4endl - << " Copyright : Geant4 Collaboration" << G4endl - << "**********************************************" << G4endl; } G4RunManager::~G4RunManager() { - if(verboseLevel>0) G4cout << "G4 kernel has come to Quit state." << G4endl; - G4StateManager* pStateManager = G4StateManager::GetStateManager(); - pStateManager->SetNewState(G4State_Quit); - - if(verboseLevel>1) G4cout << "Deletion of G4 kernel class start." << G4endl; delete timer; delete runMessenger; - G4GeometryManager::GetInstance()->OpenGeometry(); - physicsList->RemoveProcessManager(); G4ParticleTable::GetParticleTable()->DeleteMessenger(); G4ProcessTable::GetProcessTable()->DeleteMessenger(); delete previousEvents; @@ -148,25 +111,9 @@ G4RunManager::~G4RunManager() delete userPrimaryGeneratorAction; if(verboseLevel>1) G4cout << "UserPrimaryGenerator deleted." << G4endl; } - G4SDManager* fSDM = G4SDManager::GetSDMpointerIfExist(); - if(fSDM) - { - delete fSDM; - if(verboseLevel>1) G4cout << "G4SDManager deleted." << G4endl; - } - delete eventManager; - if(verboseLevel>1) G4cout << "EventManager deleted." << G4endl; - G4UImanager* pUImanager = G4UImanager::GetUIpointer(); - { - if(pUImanager) delete pUImanager; - if(verboseLevel>1) G4cout << "UImanager deleted." << G4endl; - } - if(pStateManager) - { - delete pStateManager; - if(verboseLevel>1) G4cout << "StateManager deleted." << G4endl; - } - delete defaultExceptionHandler; + + delete kernel; + if(verboseLevel>1) G4cout << "RunManager is deleting." << G4endl; } @@ -200,14 +147,13 @@ G4bool G4RunManager::ConfirmBeamOnCondition() return false; } - if(!geometryInitialized || !physicsInitialized || !cutoffInitialized) + if(!geometryInitialized || !physicsInitialized) { if(verboseLevel>0) { G4cout << "Start re-initialization because " << G4endl; if(!geometryInitialized) G4cout << " Geometry" << G4endl; if(!physicsInitialized) G4cout << " Physics processes" << G4endl; - if(!cutoffInitialized) G4cout << " SetCuts" << G4endl; G4cout << "has been modified since last Run." << G4endl; } Initialize(); @@ -217,33 +163,22 @@ G4bool G4RunManager::ConfirmBeamOnCondition() void G4RunManager::RunInitialization() { + if(!(kernel->RunInitialization())) return; + currentRun = 0; if(userRunAction) currentRun = userRunAction->GenerateRun(); if(!currentRun) currentRun = new G4Run(); - G4StateManager* stateManager = G4StateManager::GetStateManager(); - stateManager->SetNewState(G4State_GeomClosed); currentRun->SetRunID(runIDCounter); currentRun->SetNumberOfEventToBeProcessed(numberOfEventToBeProcessed); - BuildPhysicsTables(); - currentRun->SetDCtable(DCtable); G4SDManager* fSDM = G4SDManager::GetSDMpointerIfExist(); if(fSDM) { currentRun->SetHCtable(fSDM->GetHCtable()); } if(userRunAction) userRunAction->BeginOfRunAction(currentRun); - if(geometryNeedsToBeClosed) - { - if(verboseLevel>1) G4cout << "Start closing geometry." << G4endl; - G4GeometryManager* geomManager = G4GeometryManager::GetInstance(); - geomManager->OpenGeometry(); - geomManager->CloseGeometry(geometryToBeOptimized, verboseLevel>1); - geometryNeedsToBeClosed = false; - } - //previousEvents->clearAndDestroy(); for(size_t itr=0;itrsize();itr++) { delete (*previousEvents)[itr]; } previousEvents->clear(); @@ -262,8 +197,6 @@ void G4RunManager::RunInitialization() void G4RunManager::DoEventLoop(G4int n_event,const char* macroFile,G4int n_select) { - G4StateManager* stateManager = G4StateManager::GetStateManager(); - if(verboseLevel>0) { timer->Start(); } @@ -277,19 +210,14 @@ void G4RunManager::DoEventLoop(G4int n_event,const char* macroFile,G4int n_selec else { n_select = -1; } +// Event loop G4int i_event; for( i_event=0; i_eventSetNewState(G4State_EventProc); - currentEvent = GenerateEvent(i_event); - eventManager->ProcessOneEvent(currentEvent); - AnalyzeEvent(currentEvent); - if(i_eventApplyCommand(msg); - stateManager->SetNewState(G4State_GeomClosed); StackPreviousEvent(currentEvent); currentEvent = 0; if(runAborted) break; @@ -336,9 +264,6 @@ void G4RunManager::AnalyzeEvent(G4Event* anEvent) void G4RunManager::RunTermination() { - G4StateManager* stateManager = G4StateManager::GetStateManager(); - - //previousEvents->clearAndDestroy(); for(size_t itr=0;itrsize();itr++) { delete (*previousEvents)[itr]; } previousEvents->clear(); @@ -351,7 +276,7 @@ void G4RunManager::RunTermination() currentRun = 0; runIDCounter++; - stateManager->SetNewState(G4State_Idle); + kernel->RunTermination(); } void G4RunManager::StackPreviousEvent(G4Event* anEvent) @@ -379,11 +304,8 @@ void G4RunManager::Initialize() return; } - stateManager->SetNewState(G4State_Init); if(!geometryInitialized) InitializeGeometry(); if(!physicsInitialized) InitializePhysics(); - if(!cutoffInitialized) InitializeCutOff(); - stateManager->SetNewState(G4State_Idle); initializedAtLeastOnce = true; } @@ -396,7 +318,7 @@ void G4RunManager::InitializeGeometry() } if(verboseLevel>1) G4cout << "userDetector->Construct() start." << G4endl; - DefineWorldVolume(userDetector->Construct(),false); + kernel->DefineWorldVolume(userDetector->Construct(),false); geometryInitialized = true; } @@ -405,7 +327,7 @@ void G4RunManager::InitializePhysics() if(physicsList) { if(verboseLevel>1) G4cout << "physicsList->Construct() start." << G4endl; - physicsList->Construct(); + kernel->InitializePhysics(physicsList); } else { @@ -414,42 +336,6 @@ void G4RunManager::InitializePhysics() physicsInitialized = true; } -void G4RunManager::InitializeCutOff() -{ - if(physicsList) - { - if(verboseLevel>1) G4cout << "physicsList->setCut() start." << G4endl; - physicsList->SetCuts(); - cutoffInitialized = true; - } - else - { - G4Exception("G4VUserPhysicsList is not defined"); - } -} - -void G4RunManager::BuildPhysicsTables() -{ - UpdateRegion(); - - // Let G4ProductionCutsTable create new couples - G4ProductionCutsTable::GetProductionCutsTable()->UpdateCoupleTable(); - - if(G4ProductionCutsTable::GetProductionCutsTable()->IsModified()) - { - physicsList->BuildPhysicsTable(); - G4ProductionCutsTable::GetProductionCutsTable()->PhysicsTableUpdated(); - } - - physicsList->DumpCutValuesTableIfRequested(); -} - -void G4RunManager::UpdateRegion() -{ - // Let G4RegionStore scan materials - G4RegionStore::GetInstance()->UpdateMaterialList(); -} - void G4RunManager::AbortRun(G4bool softAbort) { // This method is valid only for GeomClosed or EventProc state @@ -489,85 +375,7 @@ void G4RunManager::AbortEvent() void G4RunManager::DefineWorldVolume(G4VPhysicalVolume* worldVol, G4bool topologyIsChanged) { - // The world volume MUST NOT have a region defined by the user - if(worldVol->GetLogicalVolume()->GetRegion()) - { - if(worldVol->GetLogicalVolume()->GetRegion()!=defaultRegion) - { - G4cerr << "The world volume has a user-defined region <" - << worldVol->GetLogicalVolume()->GetRegion()->GetName() - << ">." << G4endl; - G4Exception("G4RunManager::DefineWorldVolume", - "RUN:WorldHasUserDefinedRegion", - FatalException, - "World would have a default region assigned by RunManager."); - } - } - - // Remove old world logical volume from the default region, if exist - if(defaultRegion->GetNumberOfRootVolumes()) - { - if(defaultRegion->GetNumberOfRootVolumes()>size_t(1)) - { - G4Exception("G4RunManager::DefineWorldVolume", - "RUN:DefaultRegionHasMoreThanOneVolume", - FatalException, - "Default world region should have a unique logical volume."); - } - std::vector::iterator lvItr - = defaultRegion->GetRootLogicalVolumeIterator(); - defaultRegion->RemoveRootLogicalVolume(*lvItr); - if(verboseLevel>1) G4cout << (*lvItr)->GetName() - << " is removed from the default region." << G4endl; - } - - // Set the default region to the world - G4LogicalVolume* worldLog = worldVol->GetLogicalVolume(); - worldLog->SetRegion(defaultRegion); - defaultRegion->AddRootLogicalVolume(worldLog); - if(verboseLevel>1) G4cout << worldLog->GetName() - << " is registered to the default region." << G4endl; - - // Set the world volume, notify the Navigator and reset its state - currentWorld = worldVol; - G4TransportationManager::GetTransportationManager() - ->GetNavigatorForTracking() - ->SetWorldVolume(worldVol); - if (topologyIsChanged) ResetNavigator(); - - // Notify the VisManager as well - G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); - if(pVVisManager) pVVisManager->GeometryHasChanged(); -} - -void G4RunManager::ResetNavigator() const -{ - G4StateManager* stateManager = G4StateManager::GetStateManager(); - G4ApplicationState currentState = stateManager->GetCurrentState(); - - if(!initializedAtLeastOnce) return; - - if( currentState != G4State_Idle ) - { - G4cerr << " Geant4 kernel not in Idle state" << G4endl; - G4cerr << " Navigator is not touched..." << G4endl; - return; - } - - // We have to tweak the navigator's state in case a geometry has been - // modified between runs. By the following calls we ensure that navigator's - // state is reset properly. It is required the geometry to be closed - // and previous optimisations to be cleared. - - G4GeometryManager* geomManager = G4GeometryManager::GetInstance(); - if(verboseLevel>1) G4cout << "Start closing geometry." << G4endl; - geomManager->OpenGeometry(); - geomManager->CloseGeometry(geometryToBeOptimized, verboseLevel>1); - - G4ThreeVector center(0,0,0); - G4Navigator* navigator = - G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); - navigator->LocateGlobalPointAndSetup(center,0,false); + kernel->DefineWorldVolume(worldVol,topologyIsChanged); } void G4RunManager::rndmSaveThisRun() @@ -629,34 +437,14 @@ void G4RunManager::RestoreRandomNumberStatus(G4String fileN) void G4RunManager::DumpRegion(G4String rname) const { - G4Region* region = G4RegionStore::GetInstance()->GetRegion(rname); - if(region) DumpRegion(region); + kernel->UpdateRegion(); + kernel->DumpRegion(rname); } void G4RunManager::DumpRegion(G4Region* region) const { - if(!region) - { - for(size_t i=0;isize();i++) - { DumpRegion((*(G4RegionStore::GetInstance()))[i]); } - } - else - { - G4cout << "Region " << region->GetName() << G4endl; - G4cout << " Materials : "; - std::vector::const_iterator mItr = region->GetMaterialIterator(); - size_t nMaterial = region->GetNumberOfMaterials(); - for(size_t iMate=0;iMateGetName() << " "; - mItr++; - } - G4cout << G4endl; - G4ProductionCuts* cuts = region->GetProductionCuts(); - G4cout << " Production cuts : " - << " gamma " << G4BestUnit(cuts->GetProductionCut("gamma"),"Length") - << " e- " << G4BestUnit(cuts->GetProductionCut("e-"),"Length") - << " e+ " << G4BestUnit(cuts->GetProductionCut("e+"),"Length") - << G4endl; - } + kernel->UpdateRegion(); + kernel->DumpRegion(region); } + + diff --git a/source/run/src/G4RunManagerKernel.cc b/source/run/src/G4RunManagerKernel.cc new file mode 100644 index 0000000000..2153bf7f26 --- /dev/null +++ b/source/run/src/G4RunManagerKernel.cc @@ -0,0 +1,369 @@ +// +// ******************************************************************** +// * DISCLAIMER * +// * * +// * The following disclaimer summarizes all the specific disclaimers * +// * of contributors to this software. The specific disclaimers,which * +// * govern, are listed with their locations in: * +// * http://cern.ch/geant4/license * +// * * +// * Neither the authors of this software system, nor their employing * +// * institutes,nor the agencies providing financial support for this * +// * work make any representation or warranty, express or implied, * +// * regarding this software system or assume any liability for its * +// * use. * +// * * +// * This code implementation is the intellectual property of the * +// * GEANT4 collaboration. * +// * By copying, distributing or modifying the Program (or any work * +// * based on the Program) you indicate your acceptance of this * +// * statement, and all its terms. * +// ******************************************************************** +// +// +// $Id: G4RunManagerKernel.cc,v 1.9 2003/12/09 09:13:18 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ +// +// + +#include "G4RunManagerKernel.hh" + +#include "G4StateManager.hh" +#include "G4ApplicationState.hh" +#include "G4ExceptionHandler.hh" +#include "G4EventManager.hh" +#include "G4GeometryManager.hh" +#include "G4TransportationManager.hh" +#include "G4Navigator.hh" +#include "G4VPhysicalVolume.hh" +#include "G4LogicalVolume.hh" +#include "G4VUserPhysicsList.hh" +#include "G4Region.hh" +#include "G4RegionStore.hh" +#include "G4ProductionCuts.hh" +#include "G4ProductionCutsTable.hh" +#include "G4SDManager.hh" +#include "G4UImanager.hh" +#include "G4VVisManager.hh" +#include "G4UnitsTable.hh" +#include "G4ios.hh" +#include + +G4RunManagerKernel* G4RunManagerKernel::fRunManagerKernel = 0; + +G4RunManagerKernel* G4RunManagerKernel::GetRunManagerKernel() +{ return fRunManagerKernel; } + +G4RunManagerKernel::G4RunManagerKernel() +:physicsList(0),currentWorld(0), + geometryInitialized(false),physicsInitialized(false), + geometryNeedsToBeClosed(true),geometryToBeOptimized(true), + physicsNeedsToBeReBuilt(true),verboseLevel(0) +{ + defaultExceptionHandler = new G4ExceptionHandler(); + if(fRunManagerKernel) + { + G4Exception("G4RunManagerKernel::G4RunManagerKernel()","MoreThanOneRunManager", + FatalException,"More than one G4RunManagerKernel is constructed."); + } + fRunManagerKernel = this; + + // construction of Geant4 kernel classes + eventManager = new G4EventManager(); + defaultRegion = new G4Region("DefaultRegionForTheWorld"); + defaultRegion->SetProductionCuts( + G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts()); + + // set the initial application state + G4StateManager::GetStateManager()->SetNewState(G4State_PreInit); + + // version banner + versionString + = " Geant4 version $Name: geant4-06-00 $\n (12-December-2003)"; + G4cout + << "**********************************************" << G4endl + << versionString << G4endl + << " Copyright : Geant4 Collaboration" << G4endl + << "**********************************************" << G4endl; +} + +G4RunManagerKernel::~G4RunManagerKernel() +{ + // set the application state to the quite state + if(verboseLevel>0) G4cout << "G4 kernel has come to Quit state." << G4endl; + G4StateManager* pStateManager = G4StateManager::GetStateManager(); + pStateManager->SetNewState(G4State_Quit); + + // open geometry for deletion + G4GeometryManager::GetInstance()->OpenGeometry(); + + // deletion of Geant4 kernel classes + G4SDManager* fSDM = G4SDManager::GetSDMpointerIfExist(); + if(fSDM) + { + delete fSDM; + if(verboseLevel>1) G4cout << "G4SDManager deleted." << G4endl; + } + delete eventManager; + if(verboseLevel>1) G4cout << "EventManager deleted." << G4endl; + G4UImanager* pUImanager = G4UImanager::GetUIpointer(); + { + if(pUImanager) delete pUImanager; + if(verboseLevel>1) G4cout << "UImanager deleted." << G4endl; + } + delete pStateManager; + if(verboseLevel>1) G4cout << "StateManager deleted." << G4endl; + delete defaultExceptionHandler; + if(verboseLevel>1) G4cout << "RunManagerKernel is deleted." << G4endl; +} + +void G4RunManagerKernel::DefineWorldVolume(G4VPhysicalVolume* worldVol, + G4bool topologyIsChanged) +{ + G4StateManager* stateManager = G4StateManager::GetStateManager(); + G4ApplicationState currentState = stateManager->GetCurrentState(); + if(!(currentState==G4State_Idle||currentState==G4State_PreInit)) + { + G4Exception("G4RunManagerKernel::DefineWorldVolume", + "DefineWorldVolumeAtIncorrectState", + JustWarning, + "Geant4 kernel is not PreInit or Idle state : Method ignored."); + if(verboseLevel>1) G4cerr << "Current application state is " + << stateManager->GetStateString(currentState) << G4endl; + return; + } + + // The world volume MUST NOT have a region defined by the user + if(worldVol->GetLogicalVolume()->GetRegion()) + { + if(worldVol->GetLogicalVolume()->GetRegion()!=defaultRegion) + { + G4cerr << "The world volume has a user-defined region <" + << worldVol->GetLogicalVolume()->GetRegion()->GetName() + << ">." << G4endl; + G4Exception("G4RunManager::DefineWorldVolume", + "RUN:WorldHasUserDefinedRegion", + FatalException, + "World would have a default region assigned by RunManagerKernel."); + } + } + + // Remove old world logical volume from the default region, if exist + if(defaultRegion->GetNumberOfRootVolumes()) + { + if(defaultRegion->GetNumberOfRootVolumes()>size_t(1)) + { + G4Exception("G4RunManager::DefineWorldVolume", + "DefaultRegionHasMoreThanOneVolume", + FatalException, + "Default world region should have a unique logical volume."); + } + std::vector::iterator lvItr + = defaultRegion->GetRootLogicalVolumeIterator(); + defaultRegion->RemoveRootLogicalVolume(*lvItr); + if(verboseLevel>1) G4cout << (*lvItr)->GetName() + << " is removed from the default region." << G4endl; + } + + // Accept the world volume + currentWorld = worldVol; + + // Set the default region to the world + G4LogicalVolume* worldLog = currentWorld->GetLogicalVolume(); + worldLog->SetRegion(defaultRegion); + defaultRegion->AddRootLogicalVolume(worldLog); + if(verboseLevel>1) G4cout << worldLog->GetName() + << " is registered to the default region." << G4endl; + + // Set the world volume, notify the Navigator and reset its state + G4TransportationManager::GetTransportationManager() + ->GetNavigatorForTracking() + ->SetWorldVolume(currentWorld); + if(topologyIsChanged) geometryNeedsToBeClosed = true; + + // Notify the VisManager as well + G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance(); + if(pVVisManager) pVVisManager->GeometryHasChanged(); + + geometryInitialized = true; + if(physicsInitialized && currentState!=G4State_Idle) + { stateManager->SetNewState(G4State_Idle); } +} + +void G4RunManagerKernel::InitializePhysics(G4VUserPhysicsList* uPhys) +{ + G4StateManager* stateManager = G4StateManager::GetStateManager(); + G4ApplicationState currentState = stateManager->GetCurrentState(); + if(!(currentState==G4State_Idle||currentState==G4State_PreInit)) + { + G4Exception("G4RunManagerKernel::InitializePhysics", + "InitializePhysicsAtIncorrectState", + JustWarning, + "Geant4 kernel is not PreInit or Idle state : Method ignored."); + return; + } + + physicsList = uPhys; + if(!physicsList) + { + G4Exception("G4RunManagerKernel::InitializePhysics", + "PhysicsListIsNotDefined", + FatalException, + "G4VUserPhysicsList is not defined"); + } + + if(verboseLevel>1) G4cout << "physicsList->Construct() start." << G4endl; + physicsList->Construct(); + if(verboseLevel>1) G4cout << "physicsList->setCut() start." << G4endl; + physicsList->SetCuts(); + CheckRegions(); + physicsInitialized = true; + if(geometryInitialized && currentState!=G4State_Idle) + { stateManager->SetNewState(G4State_Idle); } +} + +G4bool G4RunManagerKernel::RunInitialization() +{ + G4StateManager* stateManager = G4StateManager::GetStateManager(); + G4ApplicationState currentState = stateManager->GetCurrentState(); + + if(!geometryInitialized) + { + G4Exception("G4RunManagerKernel::RunInitialization", + "GeometryHasNotYetInitialized", + JustWarning, + "Geometry has not yet initialized : method ignored."); + return false; + } + + if(!physicsInitialized) + { + G4Exception("G4RunManagerKernel::RunInitialization", + "PhysicsHasNotYetInitialized", + JustWarning, + "Physics has not yet initialized : method ignored."); + return false; + } + + if( currentState != G4State_Idle ) + { + G4Exception("G4RunManagerKernel::RunInitialization", + "RunInitializationAtIncorrectState", + JustWarning, + "Geant4 kernel not in Idle state : method ignored."); + return false; + } + + CheckRegions(); + UpdateRegion(); + BuildPhysicsTables(); + + if(geometryNeedsToBeClosed) ResetNavigator(); + + stateManager->SetNewState(G4State_GeomClosed); + return true; +} + +void G4RunManagerKernel::RunTermination() +{ G4StateManager::GetStateManager()->SetNewState(G4State_Idle); } + +void G4RunManagerKernel::ResetNavigator() +{ + // We have to tweak the navigator's state in case a geometry has been + // modified between runs. By the following calls we ensure that navigator's + // state is reset properly. It is required the geometry to be closed + // and previous optimisations to be cleared. + + G4GeometryManager* geomManager = G4GeometryManager::GetInstance(); + if(verboseLevel>1) G4cout << "Start closing geometry." << G4endl; + geomManager->OpenGeometry(); + geomManager->CloseGeometry(geometryToBeOptimized, verboseLevel>1); + + G4ThreeVector center(0,0,0); + G4Navigator* navigator = + G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking(); + navigator->LocateGlobalPointAndSetup(center,0,false); + + geometryNeedsToBeClosed = false; +} + +void G4RunManagerKernel::UpdateRegion() +{ + G4RegionStore::GetInstance()->UpdateMaterialList(); + G4ProductionCutsTable::GetProductionCutsTable()->UpdateCoupleTable(); +} + +void G4RunManagerKernel::BuildPhysicsTables() +{ + if(G4ProductionCutsTable::GetProductionCutsTable()->IsModified() + || physicsNeedsToBeReBuilt) + { + physicsList->BuildPhysicsTable(); + G4ProductionCutsTable::GetProductionCutsTable()->PhysicsTableUpdated(); + physicsNeedsToBeReBuilt = false; + } + + if(verboseLevel>1) DumpRegion(); + if(verboseLevel>0) physicsList->DumpCutValuesTable(); + physicsList->DumpCutValuesTableIfRequested(); +} + +void G4RunManagerKernel::CheckRegions() +{ + for(size_t i=0;isize();i++) + { + G4Region* region = (*(G4RegionStore::GetInstance()))[i]; + G4ProductionCuts* cuts = region->GetProductionCuts(); + if(!cuts) + { + G4cerr << "Warning : Region <" << region->GetName() + << "> does not have specific production cuts." << G4endl; + G4cerr << "Default cuts are used for this region." << G4endl; + region->SetProductionCuts( + G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts()); + } + } +} + +void G4RunManagerKernel::DumpRegion(G4String rname) const +{ + G4Region* region = G4RegionStore::GetInstance()->GetRegion(rname); + if(region) DumpRegion(region); +} + +void G4RunManagerKernel::DumpRegion(G4Region* region) const +{ + if(!region) + { + for(size_t i=0;isize();i++) + { DumpRegion((*(G4RegionStore::GetInstance()))[i]); } + } + else + { + G4cout << G4endl; + G4cout << "Region " << region->GetName() << G4endl; + G4cout << " Materials : "; + std::vector::const_iterator mItr = region->GetMaterialIterator(); + size_t nMaterial = region->GetNumberOfMaterials(); + for(size_t iMate=0;iMateGetName() << " "; + mItr++; + } + G4cout << G4endl; + G4ProductionCuts* cuts = region->GetProductionCuts(); + if(!cuts) + { + G4cerr << "Warning : Region <" << region->GetName() + << "> does not have specific production cuts." << G4endl; + G4cerr << "Default cuts are used for this region." << G4endl; + region->SetProductionCuts( + G4ProductionCutsTable::GetProductionCutsTable()->GetDefaultProductionCuts()); + } + G4cout << " Production cuts : " + << " gamma " << G4BestUnit(cuts->GetProductionCut("gamma"),"Length") + << " e- " << G4BestUnit(cuts->GetProductionCut("e-"),"Length") + << " e+ " << G4BestUnit(cuts->GetProductionCut("e+"),"Length") + << G4endl; + } +} diff --git a/source/run/src/G4RunMessenger.cc b/source/run/src/G4RunMessenger.cc index 545000e096..1c8ec80934 100644 --- a/source/run/src/G4RunMessenger.cc +++ b/source/run/src/G4RunMessenger.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4RunMessenger.cc,v 1.18 2003/06/16 17:12:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4RunMessenger.cc,v 1.20 2003/11/04 01:58:29 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4RunMessenger.hh" @@ -135,12 +135,16 @@ G4RunMessenger::G4RunMessenger(G4RunManager * runMgr) geomCmd->SetGuidance(" first initialization (or BeamOn)."); geomCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + physCmd = new G4UIcmdWithoutParameter("/run/physicsModified",this); + physCmd->SetGuidance("Force all physics tables recalculated again."); + physCmd->SetGuidance("This command must be applied"); + physCmd->SetGuidance(" if physics process has been modified after the"); + physCmd->SetGuidance(" first initialization (or BeamOn)."); + physCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + cutCmd = new G4UIcmdWithoutParameter("/run/cutoffModified",this); - cutCmd->SetGuidance("Force closssection tables to be calculated again."); - cutCmd->SetGuidance("This command must be applied"); - cutCmd->SetGuidance(" if cutoff value(s) have been modified after the"); - cutCmd->SetGuidance(" first initialization (or BeamOn)."); - cutCmd->AvailableForStates(G4State_PreInit,G4State_Idle); + cutCmd->SetGuidance("/run/cutoffModified becomes obsolete."); + cutCmd->SetGuidance("It is safe to remove invoking this command."); randomDirectory = new G4UIdirectory("/random/"); randomDirectory->SetGuidance("Random number status control commands."); @@ -218,6 +222,7 @@ G4RunMessenger::~G4RunMessenger() delete abortEventCmd; delete initCmd; delete geomCmd; + delete physCmd; delete cutCmd; delete randDirOld; delete storeRandOld; delete restoreRandOld; delete runDirectory; @@ -248,7 +253,6 @@ void G4RunMessenger::SetNewValue(G4UIcommand * command,G4String newValue) { runManager->SetVerboseLevel(verboseCmd->GetNewIntValue(newValue)); } else if( command==dumpRegCmd ) { - runManager->UpdateRegion(); if(newValue=="**ALL**") { runManager->DumpRegion(); } else @@ -272,6 +276,8 @@ void G4RunMessenger::SetNewValue(G4UIcommand * command,G4String newValue) { runManager->Initialize(); } else if( command==geomCmd ) { runManager->GeometryHasBeenModified(); } + else if( command==physCmd ) + { runManager->PhysicsHasBeenModified(); } else if( command==cutCmd ) { runManager->CutOffHasBeenModified(); } diff --git a/source/run/src/G4UserPhysicsListMessenger.cc b/source/run/src/G4UserPhysicsListMessenger.cc index bab2fe66e0..c1e132e4cf 100644 --- a/source/run/src/G4UserPhysicsListMessenger.cc +++ b/source/run/src/G4UserPhysicsListMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserPhysicsListMessenger.cc,v 1.23 2003/06/16 17:12:53 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/run/src/G4UserRunAction.cc b/source/run/src/G4UserRunAction.cc index 635ee7e118..b0bdbc7dfa 100644 --- a/source/run/src/G4UserRunAction.cc +++ b/source/run/src/G4UserRunAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserRunAction.cc,v 1.6 2003/05/21 21:06:01 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4UserRunAction.hh" diff --git a/source/run/src/G4VModularPhysicsList.cc b/source/run/src/G4VModularPhysicsList.cc index 367d698ce7..36adfefe20 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/run/src/G4VPersistencyManager.cc b/source/run/src/G4VPersistencyManager.cc index 1fbf465470..e4da4fa6f9 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4VPersistencyManager.hh" diff --git a/source/run/src/G4VUserDetectorConstruction.cc b/source/run/src/G4VUserDetectorConstruction.cc index 078094a24e..06fe66d85b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4VUserDetectorConstruction.hh" diff --git a/source/run/src/G4VUserPhysicsList.cc b/source/run/src/G4VUserPhysicsList.cc index 37b405c0b2..c0d6c78e15 100644 --- a/source/run/src/G4VUserPhysicsList.cc +++ b/source/run/src/G4VUserPhysicsList.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VUserPhysicsList.cc,v 1.45 2003/06/19 13:20:28 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VUserPhysicsList.cc,v 1.48 2003/11/10 15:49:39 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -74,7 +74,6 @@ G4VUserPhysicsList::G4VUserPhysicsList() // default cut value (1.0mm) defaultCutValue = 1.0*mm; - // pointer to the particle table theParticleTable = G4ParticleTable::GetParticleTable(); theParticleIterator = theParticleTable->GetIterator(); @@ -98,6 +97,21 @@ G4VUserPhysicsList::~G4VUserPhysicsList() } } +//////////////////////////////////////////////////////// +void G4VUserPhysicsList::SetVerboseLevel(G4int value) +{ + verboseLevel = value; + // set verboseLevel for G4ProductionCutsTable same as one for G4VUserPhysicsList: + fCutsTable->SetVerboseLevel(value); + +#ifdef G4VERBOSE + if (verboseLevel >1){ + G4cout << "G4VUserPhysicsList::SetVerboseLevel :"; + G4cout << " Verbose level is set to " << verboseLevel << G4endl; + } +#endif +} + //////////////////////////////////////////////////////// void G4VUserPhysicsList::AddProcessManager(G4ParticleDefinition* newParticle, G4ProcessManager* newManager) @@ -202,6 +216,12 @@ void G4VUserPhysicsList::AddTransportation() { G4Transportation* theTransportationProcess= new G4Transportation(); +#ifdef G4VERBOSE + if (verboseLevel >2){ + G4cout << "G4VUserPhysicsList::AddTransportation() "<< G4endl; + } +#endif + // loop over all particles in G4ParticleTable theParticleIterator->reset(); while( (*theParticleIterator)() ){ @@ -211,7 +231,9 @@ void G4VUserPhysicsList::AddTransportation() // Add transportation process for all particles other than "shortlived" if ( pmanager == 0) { // Error !! no process manager - G4Exception("G4VUserPhysicsList::AddTransportation : no process manager!"); + G4String particleName = particle->GetParticleName(); + G4Exception("G4VUserPhysicsList::AddTransportation","No process manager", + RunMustBeAborted, particleName ); } else { // add transportation with ordering = ( -1, "first", "first" ) pmanager ->AddProcess(theTransportationProcess); @@ -295,16 +317,10 @@ void G4VUserPhysicsList::SetCutsWithDefault() SetCutValue(cut, "e-"); SetCutValue(cut, "e+"); - // set cut values for proton and anti_proton - //SetCutValue(cut, "proton"); - //SetCutValue(cut, "anti_proton"); - //SetCutValue(cut, "neutron"); - //SetCutValue(cut, "anti_neutron"); - - - //if (verboseLevel>1) { - // DumpCutValuesTable(); - //} + // dump Cut values if verboseLevel==3 + if (verboseLevel>2) { + DumpCutValuesTable(); + } } @@ -319,7 +335,6 @@ void G4VUserPhysicsList::SetCutsForRegion(G4double aCut, const G4String& rname) - //////////////////////////////////////////////////////// //////////////////////////////////////////////////////// void G4VUserPhysicsList::SetParticleCuts( G4double cut, G4ParticleDefinition* particle, G4Region* region) @@ -333,71 +348,83 @@ void G4VUserPhysicsList::SetParticleCuts( G4double cut, G4ParticleDefinition* pa void G4VUserPhysicsList::BuildPhysicsTable() { if (fRetrievePhysicsTable) { + if (!fIsRestoredCutValues) fIsRestoredCutValues = fCutsTable->RetrieveCutsTable(directoryPhysicsTable, fStoredInAscii); + // check if retrieve Cut Table successfully if (!fIsRestoredCutValues) { #ifdef G4VERBOSE - if (verboseLevel>2){ - G4cout << "G4VUserPhysicsList::SetParticleCuts "; - G4cout << " Retrieve Cut Values for "; + if (verboseLevel>0){ + G4cout << "G4VUserPhysicsList::BuildPhysicsTable"; + G4cout << " Retrieve Cut Table failed !!" << G4endl; } -#endif - fIsRestoredCutValues = fCutsTable->RetrieveCutsTable(directoryPhysicsTable, fStoredInAscii); - } +#endif + G4Exception("G4VUserPhysicsList::BuildPhysicsTable","Fail to Retreive", + RunMustBeAborted,"Production Cut Table can not be retreived"); + } else { +#ifdef G4VERBOSE + if (verboseLevel>2){ + G4cout << "G4VUserPhysicsList::BuildPhysicsTable"; + G4cout << " Retrieve Cut Table successfully " << G4endl; + } +#endif + } } // Sets a value to particle // set cut values for gamma at first and for e- and e+ G4String particleName; - G4ParticleDefinition* GammaP = theParticleTable->FindParticle(particleName="gamma"); + G4ParticleDefinition* GammaP = theParticleTable->FindParticle("gamma"); if(GammaP) BuildPhysicsTable(GammaP); - G4ParticleDefinition* EMinusP = theParticleTable->FindParticle(particleName="e-"); + G4ParticleDefinition* EMinusP = theParticleTable->FindParticle("e-"); if(EMinusP) BuildPhysicsTable(EMinusP); - G4ParticleDefinition* EPlusP = theParticleTable->FindParticle(particleName="e+"); + G4ParticleDefinition* EPlusP = theParticleTable->FindParticle("e+"); if(EPlusP) BuildPhysicsTable(EPlusP); - G4ParticleDefinition* ProtonP = theParticleTable->FindParticle(particleName="proton"); + G4ParticleDefinition* ProtonP = theParticleTable->FindParticle("proton"); if(ProtonP) BuildPhysicsTable(ProtonP); - G4ParticleDefinition* AntiProtonP = theParticleTable->FindParticle(particleName="anti_proton"); - if(AntiProtonP) BuildPhysicsTable(AntiProtonP); - G4ParticleDefinition* NeutronP = theParticleTable->FindParticle(particleName="newtron"); - if(NeutronP) BuildPhysicsTable(NeutronP); - G4ParticleDefinition* AntiNeutronP = theParticleTable->FindParticle(particleName="anti_neutron"); - if(AntiNeutronP) BuildPhysicsTable(AntiNeutronP); + theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); - if(particle!=GammaP && particle!=EMinusP && particle!=EPlusP && particle!=ProtonP - && particle!=AntiProtonP && particle!=NeutronP && particle!=AntiNeutronP) - { BuildPhysicsTable(particle); } + if( particle!=GammaP && + particle!=EMinusP && + particle!=EPlusP && + particle!=ProtonP ){ + BuildPhysicsTable(particle); + } } } /////////////////////////////////////////////////////////////// void G4VUserPhysicsList::BuildPhysicsTable(G4ParticleDefinition* particle) { if (fRetrievePhysicsTable) { + if ( !fIsRestoredCutValues){ + // fail to retreive cut tables #ifdef G4VERBOSE - if (verboseLevel>2){ - G4cout << "G4VUserPhysicsList::BuildPhysicsTable "; - G4cout << " Retrieve Physics Table for "; - G4cout << particle->GetParticleName() << G4endl; - } + if (verboseLevel>0){ + G4cout << "G4VUserPhysicsList::BuildPhysicsTable "; + G4cout << "Physics table can not be retreived and will be calculated "<< G4endl; + } #endif - if ( fIsRestoredCutValues){ - // Retrieve PhysicsTable from files for proccesses - RetrievePhysicsTable(particle, directoryPhysicsTable, fStoredInAscii); - return; + fRetrievePhysicsTable = false; + } else { #ifdef G4VERBOSE if (verboseLevel>2){ - G4cout << "CheckForRetrievePhysicsTable failed " << G4endl; + G4cout << "G4VUserPhysicsList::BuildPhysicsTable "; + G4cout << " Retrieve Physics Table for "; + G4cout << particle->GetParticleName() << G4endl; } #endif + // Retrieve PhysicsTable from files for proccesses + RetrievePhysicsTable(particle, directoryPhysicsTable, fStoredInAscii); + return; } } #ifdef G4VERBOSE - if (verboseLevel>2){ - G4cout << "G4VUserPhysicsList::BuildPhysicsTable "; - G4cout << " for " << particle->GetParticleName() << G4endl; - } + if (verboseLevel>2){ + G4cout << "G4VUserPhysicsList::BuildPhysicsTable "; + G4cout << "Calculate Physics Table for " << particle->GetParticleName() << G4endl; + } #endif // Rebuild the physics tables for every process for this particle type // if particle is not ShortLived @@ -459,7 +486,9 @@ void G4VUserPhysicsList::DumpList() const /////////////////////////////////////////////////////////////// void G4VUserPhysicsList::DumpCutValuesTable(G4int nParticles) -{ fDisplayThreshold = nParticles; } +{ + fDisplayThreshold = nParticles; +} /////////////////////////////////////////////////////////////// void G4VUserPhysicsList::DumpCutValuesTableIfRequested() @@ -480,7 +509,11 @@ G4bool G4VUserPhysicsList::StorePhysicsTable(const G4String& directory) else directoryPhysicsTable = dir; // store CutsTable info - if (!fCutsTable->StoreCutsTable(dir, ascii)) return false; + if (!fCutsTable->StoreCutsTable(dir, ascii)) { + G4Exception("G4VUserPhysicsList::StorePhysicsTable","Faile to store ", + JustWarning,"Cut Table can not be stored"); + return false; + } #ifdef G4VERBOSE if (verboseLevel>2){ G4cout << "G4VUserPhysicsList::StorePhysicsTable "; @@ -499,14 +532,10 @@ G4bool G4VUserPhysicsList::StorePhysicsTable(const G4String& directory) G4int j; for ( j=0; j < pVector->size(); ++j) { if (!(*pVector)[j]->StorePhysicsTable(particle,dir,ascii)){ -#ifdef G4VERBOSE - if (verboseLevel>2){ - G4cout << "G4VUserPhysicsList::StorePhysicsTable "; - G4cout << " Fail to store for "; - G4cout << (*pVector)[j]->GetProcessName(); - G4cout << "(" << particle->GetParticleName() <<")" << G4endl; - } -#endif + G4String comment = "Fail to store for " + (*pVector)[j]->GetProcessName(); + comment += "(" + particle->GetParticleName() + ")"; + G4Exception("G4VUserPhysicsList::StorePhysicsTable","Faile to store ", + JustWarning,comment); success = false; } } @@ -546,9 +575,9 @@ void G4VUserPhysicsList::RetrievePhysicsTable(G4ParticleDefinition* particle, #ifdef G4VERBOSE if (verboseLevel>2){ G4cout << "G4VUserPhysicsList::RetrievePhysicsTable "; - G4cout << " Fail to retrieve for "; - G4cout << (*pVector)[j]->GetProcessName(); - G4cout << "(" << particle->GetParticleName() <<")" << G4endl; + G4cout << " Fail to retrieve Physics Table for "; + G4cout << (*pVector)[j]->GetProcessName() << G4endl; + G4cout << "Calculate Physics Table for " << particle->GetParticleName() << G4endl; } #endif (*pVector)[j]->BuildPhysicsTable(*particle); @@ -572,14 +601,16 @@ void G4VUserPhysicsList::ResetCuts() void G4VUserPhysicsList::SetApplyCuts(G4bool value, const G4String& name) { - if(name=="all") - { +#ifdef G4VERBOSE + if (verboseLevel>2){ + G4cout << "G4VUserPhysicsList::SetApplyCuts for " << name << G4endl; + } +#endif + if(name=="all") { theParticleTable->FindParticle("gamma")->SetApplyCutsFlag(value); theParticleTable->FindParticle("e-")->SetApplyCutsFlag(value); theParticleTable->FindParticle("e+")->SetApplyCutsFlag(value); - } - else - { + } else { theParticleTable->FindParticle(name)->SetApplyCutsFlag(value); } } @@ -592,3 +623,5 @@ G4bool G4VUserPhysicsList::GetApplyCuts(const G4String& name) const + + diff --git a/source/run/src/G4VUserPrimaryGeneratorAction.cc b/source/run/src/G4VUserPrimaryGeneratorAction.cc index c3f05a151a..e7f28330b7 100644 --- a/source/run/src/G4VUserPrimaryGeneratorAction.cc +++ b/source/run/src/G4VUserPrimaryGeneratorAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4VUserPrimaryGeneratorAction.cc,v 1.3 2001/07/11 10:08:34 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include "G4VUserPrimaryGeneratorAction.hh" diff --git a/source/track/GNUmakefile b/source/track/GNUmakefile index f91676e274..95754e4601 100644 --- a/source/track/GNUmakefile +++ b/source/track/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.2 2000/01/31 09:18:39 gcosmo Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/03 15:49:20 gcosmo Exp $ # ---------------------------------------------------------- # GNUmakefile for track library. Gabriele Cosmo, 3/4/1997. # ---------------------------------------------------------- @@ -18,8 +18,7 @@ CPPFLAGS += \ -I$(G4BASE)/intercoms/include \ -I$(G4BASE)/particles/management/include \ -I$(G4BASE)/materials/include \ - -I$(G4BASE)/geometry/management/include \ - -I$(G4BASE)/geometry/volumes/include + -I$(G4BASE)/geometry/management/include include $(G4INSTALL)/config/common.gmk diff --git a/source/track/History b/source/track/History index e1cc6776ed..62c5ed6966 100644 --- a/source/track/History +++ b/source/track/History @@ -1,4 +1,4 @@ -$Id: History,v 1.57 2003/06/03 08:56:52 gcosmo Exp $ +$Id: History,v 1.61 2003/11/27 03:51:13 kurasige Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,19 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Nov. 26, 03 H.Kurashige(track-V05-02-03) +- Fixed problem of setting momentum direction for stoppped particle in G4ParticleChange (Vladimir) + +Oct. 4, 03 G.Cosmo (track-V05-02-02) +- Modified GNUmakefile: + o added dependency to new module "geometry/navigation". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +Jun. 11, 03 H.Kurashige (track-V05-02-01) +- Add ExceptionSeverity +- Add G4VParticleChange::CheckSecondary +- Remove inclusion of G4MaterialCutsCouple + Jun. 03, 03 G.Cosmo (track-V05-01-03) - Fixed warning in G4ParticleChangeForRadDecay.hh. diff --git a/source/track/include/G4ForceCondition.hh b/source/track/include/G4ForceCondition.hh index 125ec65a77..812f7d7148 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4GPILSelection.hh b/source/track/include/G4GPILSelection.hh index 1caf7a1fc7..853ce4b090 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4ParticleChange.hh b/source/track/include/G4ParticleChange.hh index b867ce663b..3d5dc7d4c5 100644 --- a/source/track/include/G4ParticleChange.hh +++ b/source/track/include/G4ParticleChange.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChange.hh,v 1.9 2001/11/21 14:05:57 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChange.icc b/source/track/include/G4ParticleChange.icc index 8856cfd315..ee88a955c2 100644 --- a/source/track/include/G4ParticleChange.icc +++ b/source/track/include/G4ParticleChange.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChange.icc,v 1.9 2001/10/20 08:07:49 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // inline diff --git a/source/track/include/G4ParticleChangeForDecay.hh b/source/track/include/G4ParticleChangeForDecay.hh index d8cb0a9ef8..33a0751639 100644 --- a/source/track/include/G4ParticleChangeForDecay.hh +++ b/source/track/include/G4ParticleChangeForDecay.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForDecay.hh,v 1.5 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForLoss.hh b/source/track/include/G4ParticleChangeForLoss.hh index ebbee69cfd..388c4b0473 100644 --- a/source/track/include/G4ParticleChangeForLoss.hh +++ b/source/track/include/G4ParticleChangeForLoss.hh @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForLoss.hh,v 1.4 2001/07/11 10:08:35 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForMSC.icc b/source/track/include/G4ParticleChangeForMSC.icc index 325ded8a87..705dc80402 100644 --- a/source/track/include/G4ParticleChangeForMSC.icc +++ b/source/track/include/G4ParticleChangeForMSC.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForMSC.icc,v 1.4 2001/07/11 10:08:36 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // diff --git a/source/track/include/G4ParticleChangeForRadDecay.hh b/source/track/include/G4ParticleChangeForRadDecay.hh index 505aa36c9a..4dac8eedc4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4ParticleChangeForTransport.hh b/source/track/include/G4ParticleChangeForTransport.hh index 9c6e02de68..30fd38423a 100644 --- a/source/track/include/G4ParticleChangeForTransport.hh +++ b/source/track/include/G4ParticleChangeForTransport.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleChangeForTransport.hh,v 1.11 2003/06/16 17:12:56 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParticleChangeForTransport.hh,v 1.12 2003/09/19 19:08:14 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -46,7 +46,8 @@ #include "G4ios.hh" #include "G4TouchableHandle.hh" #include "G4ParticleChange.hh" -#include "G4MaterialCutsCouple.hh" + +class G4MaterialCutsCouple; class G4ParticleChangeForTransport: public G4ParticleChange diff --git a/source/track/include/G4ParticleChangeForTransport.icc b/source/track/include/G4ParticleChangeForTransport.icc index 9584fe9894..e018e3e61c 100644 --- a/source/track/include/G4ParticleChangeForTransport.icc +++ b/source/track/include/G4ParticleChangeForTransport.icc @@ -22,7 +22,7 @@ // // // $Id: G4ParticleChangeForTransport.icc,v 1.9 2003/06/16 17:12:57 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // inline diff --git a/source/track/include/G4Step.hh b/source/track/include/G4Step.hh index d4f3aea8bb..5e6ea6cd31 100644 --- a/source/track/include/G4Step.hh +++ b/source/track/include/G4Step.hh @@ -22,7 +22,7 @@ // // // $Id: G4Step.hh,v 1.10 2003/06/16 17:12:58 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Step.icc b/source/track/include/G4Step.icc index deab3d154b..70f72fb362 100644 --- a/source/track/include/G4Step.icc +++ b/source/track/include/G4Step.icc @@ -22,7 +22,7 @@ // // // $Id: G4Step.icc,v 1.10 2003/03/05 04:42:53 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4StepPoint.hh b/source/track/include/G4StepPoint.hh index cb00b59bb9..d0e1169d9b 100644 --- a/source/track/include/G4StepPoint.hh +++ b/source/track/include/G4StepPoint.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4StepPoint.hh,v 1.12 2003/05/07 20:08:36 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4StepPoint.hh,v 1.13 2003/09/19 19:08:14 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- @@ -55,9 +55,9 @@ class G4VProcess; #include "G4StepStatus.hh" // Include from 'track' #include "G4TouchableHandle.hh" // Include from 'geometry' #include "G4Material.hh" -#include "G4MaterialCutsCouple.hh" #include "G4LogicalVolume.hh" +class G4MaterialCutsCouple; ///////////////// class G4StepPoint ///////////////// diff --git a/source/track/include/G4StepPoint.icc b/source/track/include/G4StepPoint.icc index b95c703a67..e9238c5d1e 100644 --- a/source/track/include/G4StepPoint.icc +++ b/source/track/include/G4StepPoint.icc @@ -22,7 +22,7 @@ // // // $Id: G4StepPoint.icc,v 1.8 2003/05/07 20:08:37 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // inline const G4ThreeVector& G4StepPoint::GetPosition() const diff --git a/source/track/include/G4StepStatus.hh b/source/track/include/G4StepStatus.hh index 54c51696d2..d6b5a874e1 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4SteppingControl.hh b/source/track/include/G4SteppingControl.hh index 51e71a55b9..319401ce96 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Track.hh b/source/track/include/G4Track.hh index 357b6354de..77c9b53ff7 100644 --- a/source/track/include/G4Track.hh +++ b/source/track/include/G4Track.hh @@ -22,7 +22,7 @@ // // // $Id: G4Track.hh,v 1.16 2002/12/16 11:59:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4Track.icc b/source/track/include/G4Track.icc index 63965f196c..853a0b07e9 100644 --- a/source/track/include/G4Track.icc +++ b/source/track/include/G4Track.icc @@ -22,7 +22,7 @@ // // // $Id: G4Track.icc,v 1.10 2002/12/16 11:59:12 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // //----------------------------------------------------------------- // Definitions of inline functions diff --git a/source/track/include/G4TrackFastVector.hh b/source/track/include/G4TrackFastVector.hh index abe7247a28..288c419a0c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ diff --git a/source/track/include/G4TrackStatus.hh b/source/track/include/G4TrackStatus.hh index 1d472be7e5..eddfebe3a4 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/include/G4VParticleChange.hh b/source/track/include/G4VParticleChange.hh index b3062fcd76..6f1c38e664 100644 --- a/source/track/include/G4VParticleChange.hh +++ b/source/track/include/G4VParticleChange.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParticleChange.hh,v 1.8 2002/11/20 16:52:49 gcosmo Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VParticleChange.hh,v 1.9 2003/06/11 07:16:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // ------------------------------------------------------------ @@ -65,6 +65,7 @@ // Implement Event Biasing Scheme 9 Nov.,98 H.Kurashige // add CheckIt 13 Apr.,99 H.Kurashige // add accuracy leveles 5 May, 99 H.Kurashige +// add check secondaries 11 June, 03 H.Kurashige #ifndef G4VParticleChange_h #define G4VParticleChange_h 1 @@ -241,6 +242,9 @@ class G4VParticleChange G4bool GetDebugFlag() const; protected: + // CheckSecondary method is provided for debug + G4bool CheckSecondary(G4Track&); + const G4double GetAccuracyForWarning() const; const G4double GetAccuracyForException() const; diff --git a/source/track/include/G4VParticleChange.icc b/source/track/include/G4VParticleChange.icc index f889d0afc1..d38dbff357 100644 --- a/source/track/include/G4VParticleChange.icc +++ b/source/track/include/G4VParticleChange.icc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4VParticleChange.icc,v 1.9 2001/12/24 05:14:39 kurasige Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4VParticleChange.icc,v 1.10 2003/06/11 07:16:28 kurasige Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //---------------------------------------------------------------- // Virtual methods for updating G4Step @@ -224,29 +224,6 @@ inline void G4VParticleChange::InitializeSecondaries(const G4Track&) // methods for handling secondaries // -inline void G4VParticleChange::AddSecondary(G4Track *aTrack) -{ - if (!fSetSecondaryWeightByProcess){ - // pass the weight of parent track - aTrack->SetWeight(theParentWeight); - } - - // add a secondary after size check - if (theSizeOftheListOfSecondaries > theNumberOfSecondaries) { - theListOfSecondaries->SetElement(theNumberOfSecondaries, aTrack); - theNumberOfSecondaries++; - } else { -#ifdef G4VERBOSE - if (verboseLevel>0) { - G4cerr << "G4VParticleChange::AddSecondary() Warning "; - G4cerr << "theListOfSecondaries is full !! " << G4endl; - G4cerr << " The object will not be added in theListOfSecondaries" << G4endl; - } -#endif - } -} - - inline void G4VParticleChange::SetNumberOfSecondaries(G4int totSecondaries) { // check if tracks still exist in theListOfSecondaries diff --git a/source/track/include/G4VUserTrackInformation.hh b/source/track/include/G4VUserTrackInformation.hh index 166b1fc4e0..a040633278 100644 --- a/source/track/include/G4VUserTrackInformation.hh +++ b/source/track/include/G4VUserTrackInformation.hh @@ -22,7 +22,7 @@ // // // $Id: G4VUserTrackInformation.hh,v 1.4 2003/05/09 20:42:27 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/track/src/G4ParticleChange.cc b/source/track/src/G4ParticleChange.cc index 5fd6f5757f..8bf31c0bdb 100644 --- a/source/track/src/G4ParticleChange.cc +++ b/source/track/src/G4ParticleChange.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4ParticleChange.cc,v 1.21.10.1 2003/06/16 17:19:28 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4ParticleChange.cc,v 1.24 2003/11/24 10:27:52 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // -------------------------------------------------------------- @@ -43,6 +43,7 @@ #include "G4Step.hh" #include "G4TrackFastVector.hh" #include "G4DynamicParticle.hh" +#include "G4ExceptionSeverity.hh" G4ParticleChange::G4ParticleChange():G4VParticleChange() @@ -249,7 +250,7 @@ G4Step* G4ParticleChange::UpdateStepForAlongStep(G4Step* pStep) pPostStepPoint->SetKineticEnergy( energy ); } else { // stop case - pPostStepPoint->SetMomentumDirection(G4ThreeVector(1., 0., 0.)); + //pPostStepPoint->SetMomentumDirection(G4ThreeVector(1., 0., 0.)); pPostStepPoint->SetKineticEnergy(0.0); } @@ -429,9 +430,11 @@ G4bool G4ParticleChange::CheckIt(const G4Track& aTrack) if ( theEnergyChange >0.) { accuracy = abs(theMomentumDirectionChange.mag2()-1.0); if (accuracy > accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4ParticleChange::CheckIt : "; G4cout << "the Momentum Change is not unit vector !!" << G4endl; G4cout << " Difference: " << accuracy << G4endl; +#endif itsOKforMomentum = false; if (accuracy > accuracyForException) exitWithError = true; } @@ -441,9 +444,11 @@ G4bool G4ParticleChange::CheckIt(const G4Track& aTrack) G4bool itsOKforGlobalTime = true; accuracy = (aTrack.GetGlobalTime()- theTimeChange)/ns; if (accuracy > accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4ParticleChange::CheckIt : "; G4cout << "the global time goes back !!" << G4endl; G4cout << " Difference: " << accuracy << "[ns] " < accuracyForException) exitWithError = true; } @@ -451,9 +456,11 @@ G4bool G4ParticleChange::CheckIt(const G4Track& aTrack) G4bool itsOKforProperTime = true; accuracy = (aTrack.GetProperTime() - theProperTimeChange )/ns; if (accuracy > accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4ParticleChange::CheckIt : "; G4cout << "the proper time goes back !!" << G4endl; G4cout << " Difference: " << accuracy << "[ns] " < accuracyForException) exitWithError = true; } @@ -462,23 +469,31 @@ G4bool G4ParticleChange::CheckIt(const G4Track& aTrack) G4bool itsOKforEnergy = true; accuracy = -1.0*theEnergyChange/MeV; if (accuracy > accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4ParticleChange::CheckIt : "; G4cout << "the kinetic energy is negative !!" << G4endl; G4cout << " Difference: " << accuracy << "[MeV] " < accuracyForException) exitWithError = true; } G4bool itsOK = itsOKforMomentum && itsOKforEnergy && itsOKforProperTime && itsOKforGlobalTime; // dump out information of this particle change +#ifdef G4VERBOSE if (!itsOK) { G4cout << " G4ParticleChange::CheckIt " < accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4ParticleChangeForDecay::CheckIt : "; G4cout << "the global time goes back !!" << G4endl; G4cout << " Difference: " << accuracy << "[ns] " < accuracyForException) exitWithError = true; } // dump out information of this particle change +#ifdef G4VERBOSE if (!itsOK) { G4cout << " G4ParticleChangeForDecay::CheckIt " < accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4ParticleChangeForLoss::CheckIt : "; G4cout << "the energy becoes larger than the initial value !!" << G4endl; G4cout << " Difference: " << accuracy << "[MeV] " < accuracyForException) exitWithError = true; } // dump out information of this particle change +#ifdef G4VERBOSE if (!itsOK) { G4cout << " G4ParticleChangeForLoss::CheckIt " < accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4ParticleChangeForMSC::CheckIt : "; G4cout << "the Momentum Change is not unit vector !!" << G4endl; G4cout << " Difference: " << accuracy << G4endl; +#endif itsOK = false; if (accuracy > accuracyForException) exitWithError = true; } // dump out information of this particle change +#ifdef G4VERBOSE if (!itsOK) { G4cout << " G4ParticleChangeForMSC::CheckIt " < accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4VParticleChange::CheckIt : "; G4cout << "the energy deposit is negative !!" << G4endl; G4cout << " Difference: " << accuracy << "[MeV] " < accuracyForException) exitWithError = true; } @@ -215,22 +218,31 @@ G4bool G4VParticleChange::CheckIt(const G4Track& ) G4bool itsOKforStepLength = true; accuracy = -1.0*theTrueStepLength/mm; if (accuracy > accuracyForWarning) { +#ifdef G4VERBOSE G4cout << " G4VParticleChange::CheckIt : "; G4cout << "the true step length is negative !!" << G4endl; G4cout << " Difference: " << accuracy << "[MeV] " < accuracyForException) exitWithError = true; } G4bool itsOK = itsOKforStepLength && itsOKforEnergy ; // dump out information of this particle change +#ifdef G4VERBOSE if (! itsOK ){ G4cout << " G4VParticleChange::CheckIt " < accuracyForWarning) { +#ifdef G4VERBOSE + G4cout << " G4VParticleChange::CheckSecondary : "; + G4cout << "the Momentum direction is not unit vector !!" << G4endl; + G4cout << " Difference: " << accuracy << G4endl; +#endif + itsOKforMomentum = false; + if (accuracy > accuracyForException) exitWithError = true; + } + + // Kinetic Energy should not be negative + G4bool itsOKforEnergy; + accuracy = -1.0*(aTrack.GetKineticEnergy())/MeV; + if (accuracy < accuracyForWarning) { + itsOKforEnergy = true; + } else { +#ifdef G4VERBOSE + G4cout << " G4VParticleChange::CheckSecondary : "; + G4cout << "the kinetic energy is negative !!" << G4endl; + G4cout << " Difference: " << accuracy << "[MeV] " < accuracyForWarning) { +#ifdef G4VERBOSE + // G4cout << " G4VParticleChange::CheckSecondary : "; + // G4cout << "the proper time goes back !!" << G4endl; + // G4cout << " Difference: " << accuracy << "[ns] " < accuracyForException) exitWithError = true; + //} + + // Exit with error + if (exitWithError) { + G4Exception("G4VParticleChange::CheckSecondary", + "10", + EventMustBeAborted, + "momentum, energy and/or proper time was illegal"); + } + + G4bool itsOK = itsOKforMomentum && itsOKforEnergy && itsOKforProperTime; + + //correction + if (!itsOKforMomentum) { + G4double vmag = (aTrack.GetMomentumDirection()).mag(); + aTrack.SetMomentumDirection((1./vmag)*aTrack.GetMomentumDirection()); + } + //if (!itsOKforProperTime) { + // aTrack.SetProperTime(0.0); + //} + if (!itsOKforEnergy) { + aTrack.SetKineticEnergy(0.0); + } + + return itsOK; +} + + const G4double G4VParticleChange::GetAccuracyForWarning() const { return accuracyForWarning; @@ -251,3 +334,43 @@ const G4double G4VParticleChange::GetAccuracyForException() const { return accuracyForException; } + +void G4VParticleChange::AddSecondary(G4Track *aTrack) +{ + if (debugFlag) CheckSecondary(*aTrack); + + if (!fSetSecondaryWeightByProcess){ + // pass the weight of parent track + aTrack->SetWeight(theParentWeight); + } + + // add a secondary after size check + if (theSizeOftheListOfSecondaries > theNumberOfSecondaries) { + theListOfSecondaries->SetElement(theNumberOfSecondaries, aTrack); + theNumberOfSecondaries++; + } else { +#ifdef G4VERBOSE + if (verboseLevel>0) { + G4cerr << "G4VParticleChange::AddSecondary() Warning "; + G4cerr << "theListOfSecondaries is full !! " << G4endl; + G4cerr << " The object will not be added in theListOfSecondaries" << G4endl; + } +#endif + } +} + + + + + + + + + + + + + + + + diff --git a/source/tracking/GNUmakefile b/source/tracking/GNUmakefile index c93e34ca18..311ccdfdfc 100644 --- a/source/tracking/GNUmakefile +++ b/source/tracking/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.1 1999/01/07 16:14:28 gunter Exp $ +# $Id: GNUmakefile,v 1.3 2003/10/03 14:50:21 gcosmo Exp $ # ---------------------------------------------------------- # GNUmakefile for tracking library. Katsuya Amako, 5/9/95. # ---------------------------------------------------------- @@ -16,14 +16,16 @@ CPPFLAGS += -I$(G4BASE)/global/management/include \ -I$(G4BASE)/global/HEPGeometry/include \ -I$(G4BASE)/geometry/management/include \ -I$(G4BASE)/geometry/volumes/include \ + -I$(G4BASE)/geometry/navigation/include \ -I$(G4BASE)/geometry/solids/CSG/include \ -I$(G4BASE)/track/include \ -I$(G4BASE)/materials/include \ -I$(G4BASE)/processes/management/include \ + -I$(G4BASE)/processes/cuts/include \ -I$(G4BASE)/processes/electromagnetic/utils/include \ -I$(G4BASE)/particles/management/include \ - -I$(G4BASE)/digits+hits/detector/include \ - -I$(G4BASE)/digits+hits/hits/include \ + -I$(G4BASE)/digits_hits/detector/include \ + -I$(G4BASE)/digits_hits/hits/include \ -I$(G4BASE)/graphics_reps/include \ -I$(G4BASE)/intercoms/include diff --git a/source/tracking/History b/source/tracking/History index 9a5ef67305..d0fa75bb62 100644 --- a/source/tracking/History +++ b/source/tracking/History @@ -1,4 +1,4 @@ -$Id: History,v 1.64 2003/05/23 15:18:40 asaim Exp $ +$Id: History,v 1.70 2003/12/09 08:40:16 asaim Exp $ ------------------------------------------------------------------- ========================================================= @@ -17,6 +17,30 @@ committal in the CVS repository ! * Reverse chronological order (last date on top), please * ---------------------------------------------------------- +Dec.09, 2003 M.Asai (tracking-V05-02-05) +- G4SteppingManager.hh : Fix problem in SetUserAction(). + +Nov.18, 2003 M.Asai (tracking-V05-02-04) +- G4TrackingManager.cc: Move the invokation of PreUserTrackingAction + after SetInitialStep, so that geometrical infomation is available + at PreUserTrackingAction. + +Nov.10, 2003 G.Cosmo (tracking-V05-02-03) +- G4SteppingManager.cc: renamed method LocateGlobalPointAndSetup(p,v,history) to + to ResetHistoryAndLocate(p,v,history) according to changes in G4Navigator. + +Oct.4, 2003 G.Cosmo (tracking-V05-02-02) +- GNUmakefile: + o added dependency to new module "geometry/navigation". + o replaced "digits+hits" with "digits_hits". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +Sept. 25, 2003 H.Kurashige (tracking-V05-02-01) +- modify GNUMakefile for processes/cuts category + +Sept. 19, 2003 V.Ivanchenko (tracking-V05-02-00) +- migrade to model variant of EM physics + May 23, 2003 M.Asai (tracking-V05-01-01) - Clean up unused variables in trajectory classes. diff --git a/source/tracking/include/G4SmoothTrajectory.hh b/source/tracking/include/G4SmoothTrajectory.hh index a3ca3eed77..4e17e68259 100644 --- a/source/tracking/include/G4SmoothTrajectory.hh +++ b/source/tracking/include/G4SmoothTrajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmoothTrajectory.hh,v 1.5 2003/06/16 17:13:07 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4SmoothTrajectoryPoint.hh b/source/tracking/include/G4SmoothTrajectoryPoint.hh index 974d9eca70..eaed3c11d9 100644 --- a/source/tracking/include/G4SmoothTrajectoryPoint.hh +++ b/source/tracking/include/G4SmoothTrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4SmoothTrajectoryPoint.hh,v 1.7 2003/06/16 17:13:08 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4SteppingManager.hh b/source/tracking/include/G4SteppingManager.hh index 876d144fbb..35d60e7fdf 100644 --- a/source/tracking/include/G4SteppingManager.hh +++ b/source/tracking/include/G4SteppingManager.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager.hh,v 1.24 2003/06/16 17:13:09 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SteppingManager.hh,v 1.25 2003/12/09 08:40:17 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // //--------------------------------------------------------------- // @@ -462,7 +462,7 @@ public: //without description } inline void G4SteppingManager::SetUserAction(G4UserSteppingAction* apAction){ - if (apAction != NULL) fUserSteppingAction = apAction; + fUserSteppingAction = apAction; } inline G4UserSteppingAction* G4SteppingManager::GetUserAction(){ return fUserSteppingAction; diff --git a/source/tracking/include/G4SteppingVerbose.hh b/source/tracking/include/G4SteppingVerbose.hh index 479760ee59..34b2a1105c 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackVector.hh b/source/tracking/include/G4TrackVector.hh index f6063c8ba2..b67025313b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackingManager.hh b/source/tracking/include/G4TrackingManager.hh index 61a35c2ce2..eaf1ba6045 100644 --- a/source/tracking/include/G4TrackingManager.hh +++ b/source/tracking/include/G4TrackingManager.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrackingManager.hh,v 1.14 2002/08/13 18:14:42 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrackingMessenger.hh b/source/tracking/include/G4TrackingMessenger.hh index 7023a9a979..a1bacd0fec 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4Trajectory.hh b/source/tracking/include/G4Trajectory.hh index c8fbbb56eb..10cffb4947 100644 --- a/source/tracking/include/G4Trajectory.hh +++ b/source/tracking/include/G4Trajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4Trajectory.hh,v 1.18 2003/06/16 17:13:11 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4TrajectoryPoint.hh b/source/tracking/include/G4TrajectoryPoint.hh index 03d04a137d..fef32bba95 100644 --- a/source/tracking/include/G4TrajectoryPoint.hh +++ b/source/tracking/include/G4TrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryPoint.hh,v 1.11 2003/06/16 17:13:12 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4UserSteppingAction.hh b/source/tracking/include/G4UserSteppingAction.hh index d83642d2d8..68e00438f4 100644 --- a/source/tracking/include/G4UserSteppingAction.hh +++ b/source/tracking/include/G4UserSteppingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserSteppingAction.hh,v 1.8 2003/05/21 20:41:21 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4UserTrackingAction.hh b/source/tracking/include/G4UserTrackingAction.hh index 07a2c3702c..399aa10162 100644 --- a/source/tracking/include/G4UserTrackingAction.hh +++ b/source/tracking/include/G4UserTrackingAction.hh @@ -22,7 +22,7 @@ // // // $Id: G4UserTrackingAction.hh,v 1.9 2003/05/21 20:41:21 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4VSteppingVerbose.hh b/source/tracking/include/G4VSteppingVerbose.hh index 381df5b2dd..a2df9f0e81 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4VTrajectory.hh b/source/tracking/include/G4VTrajectory.hh index f022554628..fcbc8b33bd 100644 --- a/source/tracking/include/G4VTrajectory.hh +++ b/source/tracking/include/G4VTrajectory.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTrajectory.hh,v 1.12 2003/06/16 17:13:15 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/include/G4VTrajectoryPoint.hh b/source/tracking/include/G4VTrajectoryPoint.hh index 676726d656..5514f7f81c 100644 --- a/source/tracking/include/G4VTrajectoryPoint.hh +++ b/source/tracking/include/G4VTrajectoryPoint.hh @@ -22,7 +22,7 @@ // // // $Id: G4VTrajectoryPoint.hh,v 1.10 2003/06/16 17:13:16 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4SmoothTrajectory.cc b/source/tracking/src/G4SmoothTrajectory.cc index d034f5968e..0f58095795 100644 --- a/source/tracking/src/G4SmoothTrajectory.cc +++ b/source/tracking/src/G4SmoothTrajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmoothTrajectory.cc,v 1.10 2003/06/16 17:13:17 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4SmoothTrajectoryPoint.cc b/source/tracking/src/G4SmoothTrajectoryPoint.cc index 15ea591f06..86288f27e4 100644 --- a/source/tracking/src/G4SmoothTrajectoryPoint.cc +++ b/source/tracking/src/G4SmoothTrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4SmoothTrajectoryPoint.cc,v 1.10 2003/06/16 17:13:18 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4SteppingManager.cc b/source/tracking/src/G4SteppingManager.cc index 11de43b71d..e419333964 100644 --- a/source/tracking/src/G4SteppingManager.cc +++ b/source/tracking/src/G4SteppingManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager.cc,v 1.31 2003/06/16 17:13:19 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SteppingManager.cc,v 1.32 2003/11/10 08:52:33 gcosmo Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- @@ -280,7 +280,8 @@ void G4SteppingManager::SetInitialStep(G4Track* valueTrack) if ( ! fTrack->GetTouchableHandle() ) { G4ThreeVector direction= fTrack->GetMomentumDirection(); - fNavigator->LocateGlobalPointAndSetup( fTrack->GetPosition(), &direction, true, false); + fNavigator->LocateGlobalPointAndSetup( fTrack->GetPosition(), + &direction, true, false ); fTouchableHandle = fNavigator->CreateTouchableHistory(); fTrack->SetTouchableHandle( fTouchableHandle ); @@ -289,8 +290,9 @@ void G4SteppingManager::SetInitialStep(G4Track* valueTrack) fTrack->SetNextTouchableHandle( fTrack->GetTouchableHandle() ); G4VPhysicalVolume* oldTopVolume= fTrack->GetTouchableHandle()->GetVolume(); G4VPhysicalVolume* newTopVolume= - fNavigator->LocateGlobalPointAndSetup( fTrack->GetPosition(), - fTrack->GetMomentumDirection(),*((G4TouchableHistory*)fTrack->GetTouchableHandle()()) ); + fNavigator->ResetHierarchyAndLocate( fTrack->GetPosition(), + fTrack->GetMomentumDirection(), + *((G4TouchableHistory*)fTrack->GetTouchableHandle()()) ); if(newTopVolume != oldTopVolume ){ fTouchableHandle = fNavigator->CreateTouchableHistory(); fTrack->SetTouchableHandle( fTouchableHandle ); diff --git a/source/tracking/src/G4SteppingManager2.cc b/source/tracking/src/G4SteppingManager2.cc index ce2bad5ebd..beac5f889d 100644 --- a/source/tracking/src/G4SteppingManager2.cc +++ b/source/tracking/src/G4SteppingManager2.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4SteppingManager2.cc,v 1.12 2003/04/11 11:43:30 asaim Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4SteppingManager2.cc,v 1.13 2003/09/19 10:17:30 vnivanch Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- @@ -47,6 +47,7 @@ #include "G4TransportationManager.hh" #include "G4UserLimits.hh" #include "G4SteppingManager.hh" +#include "G4LossTableManager.hh" ///////////////////////////////////////////////// void G4SteppingManager::GetProcessNumber() @@ -523,7 +524,7 @@ void G4SteppingManager::ApplyProductionCut(G4Track* aSecondary) if(aSecondary->GetDynamicParticle()->GetCharge() !=0.0) { G4double currentRange - = G4EnergyLossTables::GetRange(aSecondary->GetDefinition(), + = G4LossTableManager::Instance()->GetRange(aSecondary->GetDefinition(), aSecondary->GetKineticEnergy(), fPreStepPoint->GetMaterialCutsCouple()); tBelowCutEnergyAndSafety = (currentRange < CalculateSafety() ); diff --git a/source/tracking/src/G4SteppingVerbose.cc b/source/tracking/src/G4SteppingVerbose.cc index c013efaa0a..c412abe3b0 100644 --- a/source/tracking/src/G4SteppingVerbose.cc +++ b/source/tracking/src/G4SteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: G4SteppingVerbose.cc,v 1.14 2003/06/16 17:13:20 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4TrackingManager.cc b/source/tracking/src/G4TrackingManager.cc index a82a11b7bc..51bd2d9c6d 100644 --- a/source/tracking/src/G4TrackingManager.cc +++ b/source/tracking/src/G4TrackingManager.cc @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4TrackingManager.cc,v 1.14 2003/06/16 17:13:22 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4TrackingManager.cc,v 1.15 2003/11/18 18:39:39 asaim Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- @@ -79,6 +79,14 @@ void G4TrackingManager::ProcessOneTrack(G4Track* apValueG4Track) } GimmeSecondaries()->clear(); +#ifdef G4VERBOSE + // !!!!! Verbose + if(verboseLevel>0) Verbose("ProcessOneTrack"); +#endif + + // Give SteppingManger the pointer to the track which will be tracked + fpSteppingManager->SetInitialStep(fpTrack); + // Pre tracking user intervention process. fpTrajectory = 0; if( fpUserTrackingAction != NULL ) { @@ -91,14 +99,6 @@ void G4TrackingManager::ProcessOneTrack(G4Track* apValueG4Track) } #endif -#ifdef G4VERBOSE - // !!!!! Verbose - if(verboseLevel>0) Verbose("ProcessOneTrack"); -#endif - - // Give SteppingManger the pointer to the track which will be tracked - fpSteppingManager->SetInitialStep(fpTrack); - // Give SteppingManger the maxmimum number of processes fpSteppingManager->GetProcessNumber(); diff --git a/source/tracking/src/G4TrackingMessenger.cc b/source/tracking/src/G4TrackingMessenger.cc index c6147a5b48..71f1ee8bdd 100644 --- a/source/tracking/src/G4TrackingMessenger.cc +++ b/source/tracking/src/G4TrackingMessenger.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrackingMessenger.cc,v 1.9 2003/06/16 17:13:23 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4Trajectory.cc b/source/tracking/src/G4Trajectory.cc index 8cac5a85d9..c9f0180a57 100644 --- a/source/tracking/src/G4Trajectory.cc +++ b/source/tracking/src/G4Trajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4Trajectory.cc,v 1.22 2003/06/16 17:13:24 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4TrajectoryPoint.cc b/source/tracking/src/G4TrajectoryPoint.cc index ba6912b902..7aaf20cce2 100644 --- a/source/tracking/src/G4TrajectoryPoint.cc +++ b/source/tracking/src/G4TrajectoryPoint.cc @@ -22,7 +22,7 @@ // // // $Id: G4TrajectoryPoint.cc,v 1.12 2003/06/16 17:13:25 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4UserSteppingAction.cc b/source/tracking/src/G4UserSteppingAction.cc index d5534de48e..f171128876 100644 --- a/source/tracking/src/G4UserSteppingAction.cc +++ b/source/tracking/src/G4UserSteppingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserSteppingAction.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4UserTrackingAction.cc b/source/tracking/src/G4UserTrackingAction.cc index aca1eeb9d9..49c5e31c18 100644 --- a/source/tracking/src/G4UserTrackingAction.cc +++ b/source/tracking/src/G4UserTrackingAction.cc @@ -22,7 +22,7 @@ // // // $Id: G4UserTrackingAction.cc,v 1.6 2001/07/11 10:08:43 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/tracking/src/G4VSteppingVerbose.cc b/source/tracking/src/G4VSteppingVerbose.cc index 84df4ad429..37baa295d4 100644 --- a/source/tracking/src/G4VSteppingVerbose.cc +++ b/source/tracking/src/G4VSteppingVerbose.cc @@ -22,7 +22,7 @@ // // // $Id: G4VSteppingVerbose.cc,v 1.9 2002/12/04 23:00:51 tsasaki Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // //--------------------------------------------------------------- diff --git a/source/tracking/src/G4VTrajectory.cc b/source/tracking/src/G4VTrajectory.cc index 416595b995..8991c0cce2 100644 --- a/source/tracking/src/G4VTrajectory.cc +++ b/source/tracking/src/G4VTrajectory.cc @@ -22,7 +22,7 @@ // // // $Id: G4VTrajectory.cc,v 1.4 2003/06/16 17:13:26 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // --------------------------------------------------------------- diff --git a/source/visualization/Doxyfile b/source/visualization/Doxyfile new file mode 100644 index 0000000000..3cd80c8bce --- /dev/null +++ b/source/visualization/Doxyfile @@ -0,0 +1,926 @@ +# Doxyfile 1.2.14 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# General configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = G4visualization + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = vis-V05-01-01 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Brazilian, Chinese, Croatian, Czech, Danish, Dutch, Finnish, French, +# German, Greek, Hungarian, Italian, Japanese, Korean, Norwegian, Polish, +# Portuguese, Romanian, Russian, Slovak, Slovene, Spanish and Swedish. + +OUTPUT_LANGUAGE = English + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these class will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited +# members of a class in the documentation of that class as if those members were +# ordinary class members. Constructors, destructors and assignment operators of +# the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. It is allowed to use relative paths in the argument list. + +STRIP_FROM_PATH = + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower case letters. If set to YES upper case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# users are adviced to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like the Qt-style comments (thus requiring an +# explict @brief command for a brief description. + +JAVADOC_AUTOBRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# reimplements. + +INHERIT_DOCS = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 8 + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consist of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. +# For instance some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = YES + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = \ +management/include management/src \ +modeling/include modeling/src \ +../intercoms/include/G4VGraphicsScene.hh \ +../intercoms/include/G4VVisManager.hh \ +../intercoms/src/G4VVisManager.cc + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp +# *.h++ *.idl *.odl + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = NO + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories +# that are symbolic links (a Unix filesystem feature) are excluded from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. + +EXCLUDE_PATTERNS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. + +INPUT_FILTER = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse. + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the Html help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 4 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+, +# or Internet explorer 4.0+). Note that for large projects the tree generation +# can take a very long time. In such cases it is better to disable this feature. +# Windows users are probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimised for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assigments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_XML = NO + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_PREDEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line and do not end with a semicolon. Such function macros are typically +# used for boiler-plate code, and will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tagfiles. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or +# super classes. Setting the tag to NO turns the diagrams off. Note that this +# option is superceded by the HAVE_DOT option below. This is only a fallback. It is +# recommended to install and use dot, since it yield more powerful graphs. + +CLASS_DIAGRAMS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are gif, jpg, and png +# If left blank gif will be used. + +DOT_IMAGE_FORMAT = gif + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found on the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_WIDTH = 1024 + +# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height +# (in pixels) of the graphs generated by dot. If a graph becomes larger than +# this value, doxygen will try to truncate the graph, so that it fits within +# the specified constraint. Beware that most browsers cannot cope with very +# large images. + +MAX_DOT_GRAPH_HEIGHT = 1024 + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermedate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES + +#--------------------------------------------------------------------------- +# Configuration::addtions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO + +# The CGI_NAME tag should be the name of the CGI script that +# starts the search engine (doxysearch) with the correct parameters. +# A script with this name will be generated by doxygen. + +CGI_NAME = search.cgi + +# The CGI_URL tag should be the absolute URL to the directory where the +# cgi binaries are located. See the documentation of your http daemon for +# details. + +CGI_URL = + +# The DOC_URL tag should be the absolute URL to the directory where the +# documentation is located. If left blank the absolute path to the +# documentation, with file:// prepended to it, will be used. + +DOC_URL = + +# The DOC_ABSPATH tag should be the absolute path to the directory where the +# documentation is located. If left blank the directory on the local machine +# will be used. + +DOC_ABSPATH = + +# The BIN_ABSPATH tag must point to the directory where the doxysearch binary +# is installed. + +BIN_ABSPATH = /usr/local/bin/ + +# The EXT_DOC_PATHS tag can be used to specify one or more paths to +# documentation generated for other projects. This allows doxysearch to search +# the documentation for these projects as well. + +EXT_DOC_PATHS = diff --git a/source/visualization/FukuiRenderer/GNUmakefile b/source/visualization/FukuiRenderer/GNUmakefile index c275c17d0d..2d84e45b9d 100644 --- a/source/visualization/FukuiRenderer/GNUmakefile +++ b/source/visualization/FukuiRenderer/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.3 2000/04/07 13:32:40 gcosmo Exp $ +# $Id: GNUmakefile,v 1.4 2003/10/03 15:21:20 gcosmo Exp $ name := G4FR @@ -19,6 +19,5 @@ CPPFLAGS += -I$(G4BASE)/global/HEPGeometry/include CPPFLAGS += -I$(G4BASE)/geometry/solids/CSG/include CPPFLAGS += -I$(G4BASE)/geometry/solids/specific/include CPPFLAGS += -I$(G4BASE)/geometry/management/include -CPPFLAGS += -I$(G4BASE)/geometry/volumes/include include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/FukuiRenderer/History b/source/visualization/FukuiRenderer/History index ba02f69d6e..06845f362a 100644 --- a/source/visualization/FukuiRenderer/History +++ b/source/visualization/FukuiRenderer/History @@ -1,3 +1,28 @@ +$Id: History,v 1.17 2003/10/03 15:21:20 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 * + ---------------------------------------------------------- + +History file for visualization/FukuiRenderer sub-category +--------------------------------------------------------- + +4th October 2003 Gabriele Cosmo (vis-V05-02-01) +- Simplified GNUmakefile. + DAWN-V04-01-01 Satoshi TANAKA Sept 01, 2002 - Precision control with "setenv G4DAWNFILE_PRECISION number". diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILE.hh index 38b173b4c5..3e249ef652 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Satoshi TANAKA // DAWNFILE driver factory. diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh index 19987bf880..f64f813ddf 100644 --- a/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh +++ b/source/visualization/FukuiRenderer/include/G4DAWNFILESceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILESceneHandler.hh,v 1.12 2002/12/11 15:58:02 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh b/source/visualization/FukuiRenderer/include/G4DAWNFILEViewer.hh index 4c63544bf4..e52eaa5764 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 bbc4b7b21d..ddcfd95237 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 59904d764b..ad18a2f11b 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 1db9f0c28c..e950714add 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 bd683d25a4..fe08f11ae7 100644 --- a/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc +++ b/source/visualization/FukuiRenderer/include/G4FRSceneFunc.icc @@ -22,7 +22,7 @@ // // // $Id: G4FRSceneFunc.icc,v 1.3 2003/05/30 13:01:19 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // diff --git a/source/visualization/FukuiRenderer/include/G4FRofstream.hh b/source/visualization/FukuiRenderer/include/G4FRofstream.hh index a7150d0a0e..595a8f1f48 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // #include diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh b/source/visualization/FukuiRenderer/include/G4FukuiRenderer.hh index 7026d16625..3762e6a9df 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-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh b/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh index 115b5578c2..4f4de0c51d 100644 --- a/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh +++ b/source/visualization/FukuiRenderer/include/G4FukuiRendererSceneHandler.hh @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererSceneHandler.hh,v 1.11 2002/12/11 15:58:02 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 3b747d819d..3c365a51be 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 8b6ca7057f..08c2a45fcc 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILE.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILE.cc,v 1.9 2001/07/27 22:32:59 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Satoshi TANAKA // DAWNFILE factory. diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc index 4c05d02a59..90cc737559 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILESceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILESceneHandler.cc,v 1.13 2003/06/16 17:13:29 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // Satoshi TANAKA // DAWNFILE scene. diff --git a/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc b/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc index bd08535b81..e21e648249 100644 --- a/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc +++ b/source/visualization/FukuiRenderer/src/G4DAWNFILEViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4DAWNFILEViewer.cc,v 1.14 2003/06/16 17:13:30 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-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 906757aa07..09d8fc1ded 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-05-02 $ +// GEANT4 tag $Name: geant4-06-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 9098fc05ec..3cfbff20a1 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRenderer.cc @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRenderer.cc,v 1.7 2001/07/11 10:08:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Satoshi TANAKA diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc b/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc index f64d6c3737..c58a36f5ab 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRendererSceneHandler.cc @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererSceneHandler.cc,v 1.10 2003/06/16 17:13:31 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Satoshi TANAKA, Fri Jun 28 11:34:24 JST 1996 diff --git a/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc b/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc index 9869bb66d9..91d1e2749d 100644 --- a/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc +++ b/source/visualization/FukuiRenderer/src/G4FukuiRendererViewer.cc @@ -22,7 +22,7 @@ // // // $Id: G4FukuiRendererViewer.cc,v 1.7 2001/07/11 10:08:46 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Satoshi TANAKA, Fri Jun 28 12:09:11 JST 1996 diff --git a/source/visualization/GNUmakefile b/source/visualization/GNUmakefile index c97804d85b..9d16296ff7 100644 --- a/source/visualization/GNUmakefile +++ b/source/visualization/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.13 2001/11/06 12:50:20 johna Exp $ +# $Id: GNUmakefile,v 1.15 2003/11/06 14:53:11 johna Exp $ # ----------------------------------------------------------------------- # GNUmakefile for visualization and modeling. John Allison, 5/7/95. # Modeling is always made. Others by environment. John Allison 4/7/98. @@ -16,9 +16,6 @@ include $(G4INSTALL)/config/architecture.gmk include $(G4INSTALL)/config/G4VIS_BUILD.gmk include $(G4INSTALL)/config/interactivity.gmk -G4LIBDIR := $(G4LIB)/$(G4SYSTEM) -G4TMPDIR := $(G4TMP)/$(G4SYSTEM)/$(name) - SUBDIRS := modeling SUBLIBS := G4modeling @@ -39,10 +36,6 @@ ifdef G4VIS_BUILD SUBDIRS += XXX SUBLIBS += G4visXXX -ifdef G4VIS_BUILD_OPACS_DRIVER - SUBDIRS += OPACS - SUBLIBS += G4OPACS -endif ifdef G4VIS_BUILD_OPENGL_DRIVER SUBDIRS += OpenGL SUBLIBS += G4OpenGL diff --git a/source/visualization/HepRep/GNUmakefile b/source/visualization/HepRep/GNUmakefile index 6e52877b29..411af6367d 100644 --- a/source/visualization/HepRep/GNUmakefile +++ b/source/visualization/HepRep/GNUmakefile @@ -1,4 +1,4 @@ -# $Id: GNUmakefile,v 1.4 2002/11/20 16:37:26 duns Exp $ +# $Id: GNUmakefile,v 1.15 2003/11/17 23:13:01 duns Exp $ name := G4visHepRep @@ -10,7 +10,12 @@ include $(G4INSTALL)/config/architecture.gmk include $(G4INSTALL)/config/G4VIS_BUILD.gmk include $(G4INSTALL)/config/interactivity.gmk -CPPFLAGS += -I$(G4BASE)/digits+hits/hits/include +CPPFLAGS += -DDEBUG -DZ_PREFIX +CPPFLAGS += -I$(G4BASE)/visualization/HepRep/include/ref +CPPFLAGS += -I$(G4BASE)/visualization/HepRep/include/zipios++ +CPPFLAGS += -I$(G4BASE)/visualization/HepRep/include/zlib + +CPPFLAGS += -I$(G4BASE)/digits_hits/hits/include CPPFLAGS += -I$(G4BASE)/tracking/include CPPFLAGS += -I$(G4BASE)/visualization/management/include CPPFLAGS += -I$(G4BASE)/visualization/modeling/include diff --git a/source/visualization/HepRep/History b/source/visualization/HepRep/History index f5b4c7dfc2..00979a708a 100644 --- a/source/visualization/HepRep/History +++ b/source/visualization/HepRep/History @@ -1,4 +1,4 @@ -$Id: History,v 1.25.2.2 2003/05/30 13:14:50 johna Exp $ +.$Id: History,v 1.55 2003/12/05 23:53:19 perl Exp $ ------------------------------------------------------------------- ========================================================= @@ -18,11 +18,88 @@ committal in the CVS repository ! ---------------------------------------------------------- History file for visualization/HepRep sub-category ---------------------------------------------------------------------------- +-------------------------------------------------- + +05 December 2003 Joseph Perl (vis-HepRep-V05-02-09) +- Fix bug with CalHits by moving faces to separate HepRepType + +19 November 2003 Joseph Perl (vis-HepRep-V05-02-07) +- Set two additional attributes to get correct pick response within client, + PickParent and ShowParentAttributes. + Fixes GEANT-38 + +17 November 2003 Mark Donszelmann (vis-HepRep-V05-02-06) +- Removed dependency on sstream which made compilation fail on Linux-g++2.95.2 + and on Solaris 5.2. +- Added flags for zipios++ to compile OutputStringStream using sstream only on + g++ 3.x (Linux/MacOS X) and on WIN32. +- Added include to OutputStringStream.h to make it work on Solaris. +- Removed our own sstream since it is no longer used. +- Fixed GEANT-34 + +14 November 2003 Mark Donszelmann +- Fixed GEANT-25, GEANT-35 and GEANT-36 (vis-HepRep-V05-02-05) + see http://bugs.freehep.org/secure/BrowseProject.jspa?id=10041 + +14 November 2003 Joseph Perl +- Fixed GEANT-30 + +14 November 2003 Mark Donszelmann and Joseph Perl (vis-HepRep-05-02-03) +- Fixed GEANT-32 + +13 November 2003 Mark Donszelmann +- Fixed GEANT-29, GEANT-33 + +12 November 2003 Joseph Perl +- Added G4HepRepFileSceneHandler::ClearTransientStore to make geometry + be properly included with each event of a /run/beamOn n. + +12 November 2003 Mark Donszelmann +- Fixed GEANT-18, GEANT-19, GEANT-28 + +11 November 2003 Mark Donszelmann +- Fixed GEANT-23, GEANT-26, GEANT-27 + +10 November 2003 Mark Donszelmann +- Fixed GEANT-22, GEANT-24 + +6 November 2003 Mark Donszelmann +- Fixed GEANT-14, GEANT-20 + +5 November 2003 Mark Donszelmann +- Fixed GEANT-16 + +4 November 2003 Mark Donszelmann +- Fixed GEANT-15 + +30 October 2003 Mark Donszelmann +- Fixed GEANT-10, WIRED-170 + +28 October 2003 Mark Donszelmann +- Several fixes (GEANT-11, GEANT-12, GEANT-3 and GEANT-13) + +24 October 2003 Mark Donszelmann +- Several fixes (GEANT-2, GEANT-4, GEANT-8 and GEANT-9) + +22 October 2003 Mark Donszelmann +- Added latest HepRep2 driver. + +12th July 2003 Mark Donszelmann +- Renamed XMLHepRepWriter to G4HepRepFileXMLWriter and moved its header to include. + Fixed initialization of some variabled in G4HepRep and G4HepRepSceneHandler, found + by valgrind. Removed dependency in gzio.cc of fdopen (platform specific). + +11th July 2003 Mark Donszelmann +- Removed the HepRepStreamer and replaced it by a fully functional HepRep implementation + in C++. Added compression using ZLIB and ZIPIOS++. Moved private header files to + subdirectories of include so that they do not get copied by the "gmake includes" + command. + The current HepRep files are invalid, but we first need to get rid of some memory + leaks, using Linux, so we check this in. 30th May 2003 John Allison - Eliminated pedantic warnings at head (johna-030530) and on - geant4-05-01-ref-02 (vis-V05-01-00). + geant4-05-01-ref-02 (vis-V05-00-02). 29th May 2003 Mark Donszelmann and Joseph Perl (mark-joseph-050329) - Modified G4HepRepSceneHandler (HEPREP2) to write more complete heprep, including diff --git a/source/visualization/HepRep/README b/source/visualization/HepRep/README index 59b01651c9..deea465903 100644 --- a/source/visualization/HepRep/README +++ b/source/visualization/HepRep/README @@ -5,7 +5,7 @@ The HepRep graphics format is further described at http://heprep.freehep.org -Two different drivers area available for either HepRep1 or HepRep2. +Two different drivers are available for either HepRep1 or HepRep2. Driver: HepRepFile @@ -30,31 +30,84 @@ Driver: HepRepXML ----------------- The version of HepRep produced by this driver is HepRep Version 2. -To set the base part of the filename (filename = basefilename-seqno.heprep): -/vis/scene/create basefilename +It uses ZLIB and ZIPIOS (included in the HepRep driver) to +compress the files if necessary. ZLIB and ZIPIOS are included in the +zlib and zipios++ include directories and further licensed and described there. + +HepRep XML files can contain multiple HepRep events/geometries. +If the file contains more than one HepRep it is not strictly XML anymore. +Files can be written in .heprep.zip .heprep.gz or .heprep format. +The .heprep.zip is the default for file output, the .heprep is the default +for stdout and stderr. + +(Optional) To set the filename, where the extension should be .heprep.zip +.heprep.gz or .heprep (.zip and .gz will compress), use: + +/vis/scene/create filename.heprep.zip + + +(Optional) To create separate files for each event, you can set a suffix such as +"-0001" to start writing files from filename-0001.heprep.zip to +filename-9999.heprep.zip (or up), while "-55-sub" will start write files +filename-55-sub.heprep.zip to filename-99-sub.heprep.zip (or up). + +/vis/heprep/setEventNumberSuffix -0001 +(Note: suffix has to contain at least one digit) + + +(Optional) To route the HepRep XML output to stdout (or stderr), +by default uncompressed, use: -To route the HepRep XML output to stdout (or stderr) use: /vis/scene/create stdout -To select the driver + +To select the driver, where the file if not create by scene is set to +G4HepRepOutput.heprep.zip, use: + /vis/open HepRepXML -Any call to draw part of an event will open the file and start writing. -Each file, apart from stdin/stderr, is closed by: +(Optional) To write a geometry, use: + /vis/viewer/flush -(WARNING: files will not contain geometry if not flushed. G4 exit will only -close file) -Multiple events can be written by: -/vis/scene/endOfSceneAction accumulate + +(Optional) To signal a change in geometry (to be written with the next event), use: + +/vis/viewer/refresh + + +To write 10 events (and geometries), use: + +/run/beamOn 10 + + +(Optional) To accumulate multiple (5) G4 events into one HepRep event, use: +/vis/scene/endOfEventAction accumulate +/run/beamOn 5 +/vis/viewer/update + + +(Optional) To add attributes to each point on a trajectory, use: +/vis/heprep/addPointAttributes 1 +Be aware that this may increase the size of the output dramatically. + + +(Optional) To close the file, remove the SceneHandler, use: + +/vis/sceneHandler/remove scene-handler-0 + View the file using the WIRED Event Display, available from: -http://www.slac.stanford.edu/BFROOT/www/Computing/Graphics/Wired/ - -or in future http://wired.freehep.org -9 Dec 2002 -Mark Donszelmann + +Limitations: + +Only one SceneHandler can exist at any time, connected to a single Viewer. +Since the HepRep format is a model rather than a view this is not a real +limitation. In WIRED you can create as many views (SceneHandlers) as you like. + +4 November 2003 +Mark.Donszelmann@slac.stanford.edu diff --git a/source/visualization/HepRep/copyfreehep b/source/visualization/HepRep/copyfreehep index 85ec705a78..0564be9c55 100644 --- a/source/visualization/HepRep/copyfreehep +++ b/source/visualization/HepRep/copyfreehep @@ -1,10 +1,33 @@ export HEPREP=$FREEHEP/hep/graphics/heprep -cp $FREEHEP/org/freehep/jni/FreeHepTypes.h include -cp $HEPREP/geant4/*.hh include -cp $HEPREP/streamer-c++/include/*.h include -cp $HEPREP/include/HEPREP/*.h include/HEPREP -cp $HEPREP/geant4/*.cc src -cp $HEPREP/streamer-c++/*.cc src -rm src/HepRepStreamerExample.cc -rm src/HepRepStreamerTest.cc - +cp $FREEHEP/org/freehep/jni/FreeHepTypes.h include/ref +cp $FREEHEP/org/freehep/zip/zipios++/*.h include/zipios++ +cp $FREEHEP/org/freehep/zip/*.h include/zipios++ +cp $FREEHEP/org/freehep/zip/*.cpp src +mv src/appendzip.cpp src/appendzip.cc +mv src/basicentry.cpp src/basicentry.cc +mv src/collcoll.cpp src/collcoll.cc +mv src/deflateoutputstreambuf.cpp src/deflateoutputstreambuf.cc +mv src/fcoll.cpp src/fcoll.cc +mv src/fcollexceptions.cpp src/fcollexceptions.cc +mv src/fileentry.cpp src/fileentry.cc +mv src/filepath.cpp src/filepath.cc +mv src/filterinputstreambuf.cpp src/filterinputstreambuf.cc +mv src/filteroutputstreambuf.cpp src/filteroutputstreambuf.cc +mv src/inflateinputstreambuf.cpp src/inflateinputstreambuf.cc +mv src/zipfile.cpp src/zipfile.cc +mv src/ziphead.cpp src/ziphead.cc +mv src/zipheadio.cpp src/zipheadio.cc +mv src/zipinputstream.cpp src/zipinputstream.cc +mv src/zipinputstreambuf.cpp src/zipinputstreambuf.cc +mv src/zipoutputstream.cpp src/zipoutputstream.cc +mv src/zipoutputstreambuf.cpp src/zipoutputstreambuf.cc +cp $HEPREP/geant4/include/*.hh include +cp $HEPREP/c++/include/*.h include/ref +cp $HEPREP/include/HEPREP/*.h include/HEPREP +cp $HEPREP/geant4/*.cc src +cp $HEPREP/c++/*.cc src +rm src/MultiWriteTest.cc +rm src/HepRepTest.cc +rm src/HepRepExample.cc +rm src/test_zipoutputstream.cpp +rm src/test_gzipoutputstream.cpp diff --git a/source/visualization/HepRep/copyfreehep.bat b/source/visualization/HepRep/copyfreehep.bat index 76ce852d34..916a26cb56 100755 --- a/source/visualization/HepRep/copyfreehep.bat +++ b/source/visualization/HepRep/copyfreehep.bat @@ -1,9 +1,15 @@ set HEPREP=%FREEHEP%\hep\graphics\heprep -copy %FREEHEP%\org\freehep\jni\FreeHepTypes.h include -copy %HEPREP%\geant4\include\*.hh include -copy "%HEPREP%\streamer-c++\include\*.h" include -copy %HEPREP%\include\HEPREP\*.h include\HEPREP -copy %HEPREP%\geant4\*.cc src -copy "%HEPREP%\streamer-c++\*.cc" src -del src\HepRepStreamerExample.cc -del src\HepRepStreamerTest.cc +copy "%FREEHEP%\org\freehep\jni\FreeHepTypes.h" "include\ref" +copy "%FREEHEP%\org\freehep\zip\zipios++\*.h" "include\zipios++" +copy "%FREEHEP%\org\freehep\zip\*.h" "include\zipios++" +copy "%FREEHEP%\org\freehep\zip\*.cpp" "src\*.cc" +copy "%HEPREP%\geant4\include\*.hh" "include" +copy "%HEPREP%\c++\include\*.h" "include\ref" +copy "%HEPREP%\include\HEPREP\*.h" "include\HEPREP" +copy "%HEPREP%\geant4\*.cc" "src" +copy "%HEPREP%\c++\*.cc" "src" +del src\MultiWriteTest.cc +del src\HepRepTest.cc +del src\HepRepExample.cc +del src\test_zipoutputstream.cc +del src\test_gzipoutputstream.cc diff --git a/source/visualization/HepRep/include/DefaultHepRepAction.h b/source/visualization/HepRep/include/DefaultHepRepAction.h deleted file mode 100644 index d5b23b3f03..0000000000 --- a/source/visualization/HepRep/include/DefaultHepRepAction.h +++ /dev/null @@ -1,51 +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 DEFAULTHEPREPACTION_H -#define DEFAULTHEPREPACTION_H 1 - -#include "FreeHepTypes.h" - -#include - -#include "HEPREP/HepRepAction.h" - -/** - * - * @author M.Donszelmann - */ -class DefaultHepRepAction : public virtual HEPREP::HepRepAction { - - private: - std::string name; - std::string expression; - - public: - DefaultHepRepAction(std::string name, std::string expression); - ~DefaultHepRepAction(); - - std::string getName(); - std::string getExpression(); - HEPREP::HepRepAction* copy(); -}; - -#endif diff --git a/source/visualization/HepRep/include/DefaultHepRepAttDef.h b/source/visualization/HepRep/include/DefaultHepRepAttDef.h deleted file mode 100644 index 8957005b85..0000000000 --- a/source/visualization/HepRep/include/DefaultHepRepAttDef.h +++ /dev/null @@ -1,54 +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 DEFAULTHEPREPATTDEF_H -#define DEFAULTHEPREPATTDEF_H 1 - -#include "FreeHepTypes.h" - -#include - -#include "HEPREP/HepRepAttDef.h" - -/** - * - * @author M.Donszelmann - */ - -class DefaultHepRepAttDef : public virtual HEPREP::HepRepAttDef { - - private: - std::string name, desc, category, extra; - - public: - DefaultHepRepAttDef(std::string name, std::string desc, std::string category, std::string extra); - ~DefaultHepRepAttDef(); - - HEPREP::HepRepAttDef* copy(); - std::string getName(); - std::string getLowerCaseName(); - std::string getDescription(); - std::string getCategory(); - std::string getExtra(); -}; - -#endif diff --git a/source/visualization/HepRep/include/DefaultHepRepTreeID.h b/source/visualization/HepRep/include/DefaultHepRepTreeID.h deleted file mode 100644 index d4d9f2e418..0000000000 --- a/source/visualization/HepRep/include/DefaultHepRepTreeID.h +++ /dev/null @@ -1,55 +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 DEFAULTHEPREPTREEID_H -#define DEFAULTHEPREPTREEID_H 1 - -#include "FreeHepTypes.h" - -#include - -#include "HEPREP/HepRepTreeID.h" - -/** - * - * @author M.Donszelmann - */ - -class DefaultHepRepTreeID : public virtual HEPREP::HepRepTreeID { - - private: - std::string name; - std::string version; - std::string qualifier; - - public: - DefaultHepRepTreeID(std::string name, std::string version, std::string qualifier = "top_level"); - ~DefaultHepRepTreeID(); - - std::string getQualifier(); - void setQualifier(std::string qualifier); - std::string getName(); - std::string getVersion(); - HEPREP::HepRepTreeID* copy(); -}; - -#endif diff --git a/source/visualization/HepRep/include/G4HepRep.hh b/source/visualization/HepRep/include/G4HepRep.hh index 6e2eb7ca7d..efcc5ffe30 100644 --- a/source/visualization/HepRep/include/G4HepRep.hh +++ b/source/visualization/HepRep/include/G4HepRep.hh @@ -31,13 +31,22 @@ //G4 #include "G4VGraphicsSystem.hh" +class G4HepRepMessenger; + class G4HepRep: public G4VGraphicsSystem { public: G4HepRep (); virtual ~G4HepRep (); G4VSceneHandler* CreateSceneHandler (const G4String& name = ""); - G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); + G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); + void removeSceneHandler(); + void removeViewer(); + + private: + G4VSceneHandler* sceneHandler; + G4VViewer* viewer; + G4HepRepMessenger* messenger; }; #endif diff --git a/source/visualization/HepRep/include/G4HepRepFile.hh b/source/visualization/HepRep/include/G4HepRepFile.hh index ad18693cf1..0751fdd3f3 100644 --- a/source/visualization/HepRep/include/G4HepRepFile.hh +++ b/source/visualization/HepRep/include/G4HepRepFile.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HepRepFile.hh,v 1.6 2003/06/25 10:19:50 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HepRepFile.hh,v 1.7 2003/07/12 19:48:15 duns Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 5th April 2001 @@ -34,7 +34,7 @@ #include "G4VGraphicsSystem.hh" // HepRep -#include "HepRepXMLWriter.hh" +#include "G4HepRepFileXMLWriter.hh" class G4HepRepFile: public G4VGraphicsSystem { public: @@ -43,7 +43,7 @@ public: G4VSceneHandler* CreateSceneHandler(const G4String& name = ""); G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); - HepRepXMLWriter *GetHepRepXMLWriter(); + G4HepRepFileXMLWriter *GetHepRepXMLWriter(); }; #endif diff --git a/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh b/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh index 20d224df2e..8f5b6bfefb 100644 --- a/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh +++ b/source/visualization/HepRep/include/G4HepRepFileSceneHandler.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HepRepFileSceneHandler.hh,v 1.12 2003/06/25 10:19:51 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HepRepFileSceneHandler.hh,v 1.14 2003/11/13 01:11:41 perl Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Joseph Perl 27th January 2002 @@ -47,7 +47,7 @@ #include "G4Polyhedra.hh" // HepRep -#include "HepRepXMLWriter.hh" +#include "G4HepRepFileXMLWriter.hh" class G4VPhysicalVolume; class G4LogicalVolume; @@ -111,12 +111,18 @@ public: void BeginModeling(); void EndModeling(); + ////////////////////////////////////////////////////////////// + // Administration functions. + + //void ClearStore (); + void ClearTransientStore (); + //////////////////////////////////////////////////////////////// // Required... static G4int GetSceneCount() {return fSceneCount;} - HepRepXMLWriter *GetHepRepXMLWriter(); + G4HepRepFileXMLWriter *GetHepRepXMLWriter(); protected: static G4int fSceneIdCount; // Counter for HepRep scene handlers. @@ -126,7 +132,7 @@ protected: G4LogicalVolume* fpCurrentLV; // Current logical volume. private: - HepRepXMLWriter *hepRepXMLWriter; + G4HepRepFileXMLWriter *hepRepXMLWriter; void AddHepRepInstance(const char* primName, const G4Visible visible); void CheckFileOpen(); diff --git a/source/visualization/HepRep/include/G4HepRepFileViewer.hh b/source/visualization/HepRep/include/G4HepRepFileViewer.hh index 5e95942a3f..f2ffbd9c56 100644 --- a/source/visualization/HepRep/include/G4HepRepFileViewer.hh +++ b/source/visualization/HepRep/include/G4HepRepFileViewer.hh @@ -21,8 +21,8 @@ // ******************************************************************** // // -// $Id: G4HepRepFileViewer.hh,v 1.7 2003/06/25 10:19:52 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HepRepFileViewer.hh,v 1.8 2003/07/12 19:48:15 duns Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // John Allison 5th April 2001 @@ -35,7 +35,7 @@ #include "G4VViewer.hh" -#include "HepRepXMLWriter.hh" +#include "G4HepRepFileXMLWriter.hh" #include "G4HepRepFileSceneHandler.hh" class G4HepRepFileViewer: public G4VViewer { @@ -48,7 +48,7 @@ public: void ShowView(); private: - HepRepXMLWriter *hepRepXMLWriter; + G4HepRepFileXMLWriter *hepRepXMLWriter; }; #endif diff --git a/source/visualization/HepRep/include/HepRepXMLWriter.hh b/source/visualization/HepRep/include/G4HepRepFileXMLWriter.hh similarity index 94% rename from source/visualization/HepRep/include/HepRepXMLWriter.hh rename to source/visualization/HepRep/include/G4HepRepFileXMLWriter.hh index 9437aee1ae..d9fcb39360 100644 --- a/source/visualization/HepRep/include/HepRepXMLWriter.hh +++ b/source/visualization/HepRep/include/G4HepRepFileXMLWriter.hh @@ -23,7 +23,7 @@ // //-------------------------------------------------------------------------- // File and Version Information: -// $Id: HepRepXMLWriter.hh,v 1.12 2003/06/25 10:19:56 gunter Exp $ +// $Id: G4HepRepFileXMLWriter.hh,v 1.1 2003/07/12 19:48:15 duns Exp $ // // Description: // Create a HepRep XML File (HepRep version 1). @@ -37,18 +37,18 @@ // Copyright Information: // Copyright (C) 2001 Stanford Linear Accelerator Center //------------------------------------------------------------------------ -#ifndef HepRepXMLWriter_hh -#define HepRepXMLWriter_hh +#ifndef G4HepRepFileXMLWriter_hh +#define G4HepRepFileXMLWriter_hh //#define G4HEPREPFILEDEBUG // Comment this out to suppress debug code. #include "globals.hh" #include -class HepRepXMLWriter +class G4HepRepFileXMLWriter { public: - HepRepXMLWriter(); + G4HepRepFileXMLWriter(); void addType(const char* name, int newTypeDepth); void addInstance(); diff --git a/examples/advanced/composite_calorimeter/include/G4LHEPProtonBuilder.hh b/source/visualization/HepRep/include/G4HepRepMessenger.hh similarity index 62% rename from examples/advanced/composite_calorimeter/include/G4LHEPProtonBuilder.hh rename to source/visualization/HepRep/include/G4HepRepMessenger.hh index 51f8906a31..2011decee7 100644 --- a/examples/advanced/composite_calorimeter/include/G4LHEPProtonBuilder.hh +++ b/source/visualization/HepRep/include/G4HepRepMessenger.hh @@ -20,44 +20,42 @@ // * statement, and all its terms. * // ******************************************************************** // -#ifndef G4LHEPProtonBuilder_h -#define G4LHEPProtonBuilder_h 1 +// +// +#ifndef G4HepRepMessenger_HH +#define G4HepRepMessenger_HH 1 -#include "globals.hh" +#include "G4UImessenger.hh" +#include "G4UIdirectory.hh" +#include "G4UIcmdWithABool.hh" +#include "G4UIcmdWithAString.hh" +#include "G4UIcommand.hh" -#include "G4HadronElasticProcess.hh" -#include "G4ProtonInelasticProcess.hh" -#include "G4VProtonBuilder.hh" - -#include "G4LElastic.hh" -#include "G4LEProtonInelastic.hh" -#include "G4HEProtonInelastic.hh" - -class G4LHEPProtonBuilder : public G4VProtonBuilder -{ - public: - G4LHEPProtonBuilder(); - virtual ~G4LHEPProtonBuilder(); - - public: - virtual void Build(G4ProtonInelasticProcess & aP); - virtual void Build(G4HadronElasticProcess & aP); +class G4HepRepMessenger : public G4UImessenger { - void SetMinEnergy(G4double aM) - { - theMin = aM; - } + public: + G4HepRepMessenger(); + virtual ~G4HepRepMessenger(); - private: - G4LElastic * theElasticModel; - G4LEProtonInelastic * theLEProtonModel; - G4HEProtonInelastic * theHEProtonModel; - - G4double theMin; + virtual G4String GetCurrentValue(G4UIcommand * command); + virtual void SetNewValue(G4UIcommand * command, G4String newValue); + + virtual G4String getEventNumberSuffix(); + virtual G4bool appendGeometry(); + virtual G4bool addPointAttributes(); + + private: + G4UIdirectory* heprepDirectory; + + G4String suffix; + G4UIcmdWithAString* setEventNumberSuffixCommand; + + G4bool geometry; +// G4UIcmdWithABool* appendGeometryCommand; + + G4bool pointAttributes; + G4UIcmdWithABool* addPointAttributesCommand; }; -// 2002 by J.P. Wellisch - #endif - diff --git a/source/visualization/HepRep/include/G4HepRepSceneHandler.hh b/source/visualization/HepRep/include/G4HepRepSceneHandler.hh index d3bf6050cf..8e6d97cb50 100644 --- a/source/visualization/HepRep/include/G4HepRepSceneHandler.hh +++ b/source/visualization/HepRep/include/G4HepRepSceneHandler.hh @@ -31,6 +31,9 @@ #include "globals.hh" #include +#include +#include +#include // HepRep #include "HEPREP/HepRep.h" @@ -43,30 +46,29 @@ #include "G4LogicalVolume.hh" #include "G4PhysicalVolumeModel.hh" -//class G4HepRep; +#include "G4HepRepMessenger.hh" class G4HepRepSceneHandler: public G4VSceneHandler { public: - G4HepRepSceneHandler (G4VGraphicsSystem& system, const G4String& name = ""); + G4HepRepSceneHandler (G4VGraphicsSystem& system, G4HepRepMessenger& messenger, const G4String& name = ""); virtual ~G4HepRepSceneHandler (); - void AddThis (const G4Box&); - void AddThis (const G4Cons&); - void AddThis (const G4Tubs&); - void AddThis (const G4Trd&); - void AddThis (const G4Trap&); - void AddThis (const G4Sphere&); - void AddThis (const G4Para&); - void AddThis (const G4Torus&); - void AddThis (const G4Polycone&); - void AddThis (const G4Polyhedra&); - void AddThis (const G4VSolid&); + void AddThis (const G4Box& box) { G4VSceneHandler::AddThis (box); } + void AddThis (const G4Cons& cons) { G4VSceneHandler::AddThis (cons); } + void AddThis (const G4Tubs& tubs) { G4VSceneHandler::AddThis (tubs); } + void AddThis (const G4Trd& trd) { G4VSceneHandler::AddThis (trd); } + void AddThis (const G4Trap& trap) { G4VSceneHandler::AddThis (trap); } + void AddThis (const G4Sphere& sphere) { G4VSceneHandler::AddThis (sphere); } + void AddThis (const G4Para& para) { G4VSceneHandler::AddThis (para); } + void AddThis (const G4Torus& torus) { G4VSceneHandler::AddThis (torus); } + void AddThis (const G4Polycone& polycone) { G4VSceneHandler::AddThis (polycone); } + void AddThis (const G4Polyhedra& polyhedra) { G4VSceneHandler::AddThis (polyhedra); } + void AddThis (const G4VSolid& solid) { G4VSceneHandler::AddThis(solid); } void AddThis (const G4VTrajectory&); - void AddThis (const G4VHit&); + void AddThis (const G4VHit& hit) { G4VSceneHandler::AddThis(hit); } - void PreAddThis (const G4Transform3D& objectTransformation, - const G4VisAttributes& visAttribs); + void PreAddThis (const G4Transform3D& objectTransformation, const G4VisAttributes& visAttribs); void PostAddThis (); void EstablishSpecials(G4PhysicalVolumeModel&); @@ -79,54 +81,112 @@ class G4HepRepSceneHandler: public G4VSceneHandler { void AddPrimitive (const G4NURBS&); void AddPrimitive (const G4Polymarker&); - void AddPrimitive (const G4Scale& scale) { - G4VSceneHandler::AddPrimitive(scale); - } + void AddPrimitive (const G4Scale& scale) { G4VSceneHandler::AddPrimitive(scale); } void BeginPrimitives (const G4Transform3D& objectTransformation); void EndPrimitives (); void BeginModeling (); void EndModeling (); - static G4int GetSceneCount () { return sceneCount; } + static G4int getSceneCount () { return sceneCount; } - HEPREP::HepRep *GetHepRep() { return heprep; } - HEPREP::HepRepWriter *GetHepRepWriter() { return writer; } - HEPREP::HepRepFactory *GetHepRepFactory(); - void open(); - void close(); - - protected: -// void RequestPrimitives (const G4VSolid& solid); + void openHepRep(); + bool closeHepRep(bool final = false); + void openFile(G4String name); + void closeFile(); private: - static G4int sceneCount; // No. of extanct scenes. - static G4int sceneIdCount; // static counter for scenes. - G4int fileNo; // file sequence number - G4int currentDepth; - G4VPhysicalVolume* currentPV; - G4LogicalVolume* currentLV; + static G4int sceneCount; const G4ModelingParameters* originalMP; // Keeps pointer to original. G4ModelingParameters* nonCullingMP; // For temporary non-culling. G4Transform3D transform; - void SetColour (HEPREP::HepRepAttribute *attribute, const G4Colour& color,const G4String& key = G4String("Color")); - void SetLine (HEPREP::HepRepInstance *instance, const G4Visible& visible); - void SetMarker (HEPREP::HepRepInstance *instance, const G4VMarker& marker); - HEPREP::HepRepInstance* CreateInstance(HEPREP::HepRepInstance* p, HEPREP::HepRepType* altType); - bool IsEventData (); - std::ostream* out; - HEPREP::HepRepFactory* heprepFactory; + HEPREP::HepRepFactory* factory; HEPREP::HepRepWriter* writer; - HEPREP::HepRepInstance *parent; - HEPREP::HepRep *heprep; - HEPREP::HepRepType *geometryType; - HEPREP::HepRepType *eventType; - HEPREP::HepRepType *trackType; - HEPREP::HepRepType *calHitType; - HEPREP::HepRepType *hitType; + + // Methods + void setColor (HEPREP::HepRepAttribute *attribute, const G4Color& color, + const G4String& key = G4String("Color")); + G4Color getColor (G4double charge); + void setVisibility (HEPREP::HepRepAttribute *attribute, const G4Visible& visible); + void setLine (HEPREP::HepRepAttribute *attribute, const G4Visible& visible); + void setMarker (HEPREP::HepRepAttribute *attribute, const G4VMarker& marker); + + void setAttribute (HEPREP::HepRepAttribute* attribute, G4String name, G4String value); + void setAttribute (HEPREP::HepRepAttribute* attribute, G4String name, bool value); + void setAttribute (HEPREP::HepRepAttribute* attribute, G4String name, double value); + void setAttribute (HEPREP::HepRepAttribute* attribute, G4String name, int value); + void setAttribute (HEPREP::HepRepAttribute* attribute, G4String name, double red, double green, double blue, double alpha); + + bool isEventData (); + + void open(G4String name); + void close(); + + void addAttDefs(HEPREP::HepRepDefinition* definition, const std::map* attDefs); + void addAttVals(HEPREP::HepRepAttribute* attribute, const std::map* attDefs, std::vector* attValues); + + + // Returns the particular instance/type or if not created, creates them and adds them to the HepRep + HEPREP::HepRep* getHepRep(); + HEPREP::HepRepInstanceTree* getGeometryInstanceTree(); + HEPREP::HepRepInstance* getGeometryInstance(G4LogicalVolume* volume, int depth); + HEPREP::HepRepInstance* getGeometryInstance(G4String volumeName, int depth); + HEPREP::HepRepInstance* getGeometryRootInstance(); + HEPREP::HepRepTypeTree* getGeometryTypeTree(); + HEPREP::HepRepType* getGeometryType(G4String volumeName, int depth); + HEPREP::HepRepType* getGeometryRootType(); + HEPREP::HepRepInstanceTree* getEventInstanceTree(); + HEPREP::HepRepInstance* getEventInstance(); + HEPREP::HepRepTypeTree* getEventTypeTree(); + HEPREP::HepRepType* getEventType(); + HEPREP::HepRepType* getTrajectoryType (); + HEPREP::HepRepType* getHitType (); + HEPREP::HepRepType* getCalHitType (); + HEPREP::HepRepType* getCalHitFaceType (); + + G4String getFullTypeName(G4String volumeName, int depth); + G4String getParentTypeName(int currentDepth); + + // initialized Member Variables + G4HepRepMessenger& messenger; + G4String geometryLayer, eventLayer, calHitLayer; + G4String trajectoryLayer, hitLayer; + G4String rootVolumeName; + + G4String baseName; + G4String eventNumberPrefix; + G4String eventNumberSuffix; + G4int eventNumber; + G4int eventNumberWidth; + G4String extension; + G4bool writeMultipleFiles; + + G4int currentDepth; + G4VPhysicalVolume* currentPV; + G4LogicalVolume* currentLV; + + // DO NOT USE member vars directly, use get methods. + HEPREP::HepRep* _heprep; + HEPREP::HepRepInstanceTree* _geometryInstanceTree; + std::vector _geometryInstance; + HEPREP::HepRepInstance* _geometryRootInstance; + HEPREP::HepRepTypeTree* _geometryTypeTree; + std::vector _geometryTypeName; + std::map _geometryType; + HEPREP::HepRepType* _geometryRootType; + HEPREP::HepRepInstanceTree* _eventInstanceTree; + HEPREP::HepRepInstance* _eventInstance; + HEPREP::HepRepTypeTree* _eventTypeTree; + HEPREP::HepRepType* _eventType; + HEPREP::HepRepType* _trajectoryType; + HEPREP::HepRepType* _hitType; + HEPREP::HepRepType* _calHitType; + HEPREP::HepRepType* _calHitFaceType; + + std::map materialState; }; #endif diff --git a/source/visualization/HepRep/include/G4HepRepViewer.hh b/source/visualization/HepRep/include/G4HepRepViewer.hh index 4bf252f7d6..b99135cc21 100644 --- a/source/visualization/HepRep/include/G4HepRepViewer.hh +++ b/source/visualization/HepRep/include/G4HepRepViewer.hh @@ -46,7 +46,7 @@ class G4HepRepViewer: public G4VViewer { void FinishView (); private: - bool drawn; + bool geometryIncluded; }; #endif diff --git a/source/visualization/HepRep/include/HEPREP/HasHepRep.h b/source/visualization/HepRep/include/HEPREP/HasHepRep.h new file mode 100644 index 0000000000..9ce3fc6814 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HasHepRep.h @@ -0,0 +1,34 @@ +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HASHEPREP_H +#define HEPREP_HASHEPREP_H 1 + +// Copyright 2000-2003, FreeHEP. + +namespace HEPREP { + +class HepRep; + +/** + * The HasHepRep interface. + * + * @author Mark Donszelmann + */ +class HasHepRep { + +public: + /// Destructor. + virtual ~HasHepRep() { /* nop */; } + + /** + * Returns the associated HepRep to this object. + * + */ + virtual HepRep getHepRep() = 0; +}; // class +} // namespace HEPREP +#endif /* ifndef HEPREP_HASHEPREP_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRep.h b/source/visualization/HepRep/include/HEPREP/HepRep.h index 0ccbda7ce2..be5c3ae10c 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRep.h +++ b/source/visualization/HepRep/include/HEPREP/HepRep.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -29,12 +7,13 @@ #ifndef HEPREP_HEPREP_H #define HEPREP_HEPREP_H 1 -// Copyright 2000-2002, FreeHEP. +// Copyright 2000-2003, FreeHEP. #include #include // Include all other HepRep header files here for convenience +#include "HEPREP/HasHepRep.h" #include "HEPREP/HepRepAction.h" #include "HEPREP/HepRepAttDef.h" #include "HEPREP/HepRepAttribute.h" @@ -139,6 +118,13 @@ public: */ virtual bool addInstanceTree(HepRepInstanceTree * instanceTree) = 0; + /** + * Overlays an instancetree to this heprep, overriding attributes and adding children. + * + * @param instanceTree to be overlaid. + */ + virtual void overlayInstanceTree(HepRepInstanceTree * instanceTree) = 0; + /** * Remove an instanectree from this heprep. * @@ -223,5 +209,5 @@ public: */ virtual HepRep * copy(HepRepSelectFilter * filter = NULL) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREP_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepAction.h b/source/visualization/HepRep/include/HEPREP/HepRepAction.h index 1fe66d4372..3b3d6b6c5c 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepAction.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepAction.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -67,5 +45,5 @@ public: */ virtual HepRepAction * copy() = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPACTION_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepAttDef.h b/source/visualization/HepRep/include/HEPREP/HepRepAttDef.h index 26e05784d0..d264f92773 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepAttDef.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepAttDef.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -88,5 +66,5 @@ public: */ virtual HepRepAttDef * copy() = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPATTDEF_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepAttValue.h b/source/visualization/HepRep/include/HEPREP/HepRepAttValue.h index 5952999799..c2ab408153 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepAttValue.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepAttValue.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -89,6 +67,13 @@ public: */ virtual std::string getString() = 0; + /** + * Returns value as lowercase string. + * + * @return value as string (if type is string). + */ + virtual std::string getLowerCaseString() = 0; + /** * Returns value as string. * @@ -138,5 +123,5 @@ public: */ virtual HepRepAttValue * copy() = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPATTVALUE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepAttribute.h b/source/visualization/HepRep/include/HEPREP/HepRepAttribute.h index dd865090ae..7c9a08aee2 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepAttribute.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepAttribute.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -62,7 +40,7 @@ public: /** * Adds a char* attValue as a String. - * This call is mapped to addAttValue(std::string, std::string, int); and necessary + * This call should be mapped to addAttValue(std::string, std::string, int); and necessary * because C++ converts char* into bool and would thus call addAttValue(std::string, bool, int) * for a call such as addAttValue("drawAs", "Cylinder", 0); * @@ -71,10 +49,7 @@ public: * @param showLabel show this as label * @return false if an IOException was created. */ - bool addAttValue(std::string key, char* value, int showLabel = HepRepConstants::SHOW_NONE) { - return addAttValue(key, std::string(value), showLabel); - } - + virtual bool addAttValue(std::string key, char* value, int showLabel = HepRepConstants::SHOW_NONE) = 0; /** * Adds an attValue. * @@ -170,5 +145,5 @@ public: */ virtual HepRepAttValue * getAttValueFromNode(std::string lowerCaseName) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPATTRIBUTE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepConstants.h b/source/visualization/HepRep/include/HEPREP/HepRepConstants.h index be321d7189..f767a248a0 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepConstants.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepConstants.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -54,5 +32,5 @@ public: */ enum { SHOW_NONE = 0x0000, SHOW_NAME = 0x0001, SHOW_DESC = 0x0002, SHOW_VALUE = 0x0004, SHOW_EXTRA = 0x0008 }; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPCONSTANTS_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepDefinition.h b/source/visualization/HepRep/include/HEPREP/HepRepDefinition.h index f795cd72dd..c1463bd3b8 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepDefinition.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepDefinition.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -94,5 +72,5 @@ public: */ virtual HepRepAttDef * getAttDefFromNode(std::string lowerCaseName) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPDEFINITION_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepFactory.h b/source/visualization/HepRep/include/HEPREP/HepRepFactory.h index 5b66149428..45f64e53f6 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepFactory.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepFactory.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -41,6 +19,7 @@ class HepRepAction; class HepRepInstance; class HepRepInstanceTree; class HepRepPoint; +class HepRepReader; class HepRepTreeID; class HepRepType; class HepRepTypeTree; @@ -57,12 +36,28 @@ public: /// Destructor. virtual ~HepRepFactory() { /* nop */; } + /** + * Creates a HepRepReader from a stream. + * + * @param in input stream. + */ + virtual HepRepReader * createHepRepReader(std::istream * in) = 0; + + /** + * Creates a HepRepReader from a file name. + * + * @param inputFileName file name. + */ + virtual HepRepReader * createHepRepReader(std::string inputFileName) = 0; + /** * Creates a HepRepWriter. * * @param out output stream. + * @param randomAccess create a writer in a format that will allow random access (may be ignored). + * @param compress create a writer that uses compression (may be ignored). */ - virtual HepRepWriter * createHepRepWriter(std::ostream * out) = 0; + virtual HepRepWriter * createHepRepWriter(std::ostream * out, bool randomAccess, bool compress) = 0; /** * Creates a HepRepPoint. @@ -141,5 +136,5 @@ public: */ virtual HepRep * createHepRep() = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPFACTORY_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepInstance.h b/source/visualization/HepRep/include/HEPREP/HepRepInstance.h index de92bffa66..4427c2ba73 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepInstance.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepInstance.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -54,6 +32,15 @@ public: /// Destructor. virtual ~HepRepInstance() { /* nop */; } + /** + * Overlays the instance on the current instance. + * + * Attributes of the instance override or are added to the current instance. + * Sub-instances of the instance are added only if the current instance has no sub-instances. + * Points of the instance are added only if the current instance has no points. + */ + virtual void overlay(HepRepInstance * instance) = 0; + /** * Adds an sub-instance to this instance. * @@ -118,5 +105,5 @@ public: */ virtual HepRepInstance * copy(HepRep * heprep, HepRepInstanceTree * parent, HepRepSelectFilter * filter = NULL) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPINSTANCE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepInstanceTree.h b/source/visualization/HepRep/include/HEPREP/HepRepInstanceTree.h index 05cb87d89f..6915a54814 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepInstanceTree.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepInstanceTree.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -53,6 +31,13 @@ public: /// Destructor. virtual ~HepRepInstanceTree() { /* nop */; } + /** + * Overlays the instance tree on the current tree. + * + * The list of instances of the instanceTree has to be the same as the current tree. + */ + virtual void overlay(HepRepInstanceTree * instanceTree) = 0; + /** * Adds an instance to this instancetree. * @@ -86,9 +71,9 @@ public: /** * Returns a collection of associated instance trees. * - * @return collection of HepRepInstanceTrees. + * @return collection of HepRepTreeIDs. */ - virtual std::vector * getInstanceTrees() = 0; + virtual std::vector * getInstanceTrees() = 0; /** * Returns the associated typetree. @@ -108,5 +93,5 @@ public: virtual HepRepTreeID * copy() = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPINSTANCETREE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepIterator.h b/source/visualization/HepRep/include/HEPREP/HepRepIterator.h index 5d7f02cfef..44e47eba35 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepIterator.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepIterator.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -69,7 +47,7 @@ public: * * @param listener to be added. */ - virtual void addHepRepIteratorListener(HepRepIteratorListener * listener) = 0; + virtual bool addHepRepIteratorListener(HepRepIteratorListener * listener) = 0; /** * Removes a listener. @@ -86,5 +64,5 @@ public: */ virtual HepRepAttValue * getAttValue(std::string key) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPITERATOR_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepIteratorListener.h b/source/visualization/HepRep/include/HEPREP/HepRepIteratorListener.h index 6eaba5289e..5e74113254 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepIteratorListener.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepIteratorListener.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -40,6 +18,8 @@ namespace HEPREP { * HepRepIteratorListener interface. The implementor is called back for changes * of attributes while using the HepRepIterator to iterate over all the HepRepInstances. * + * All names are lowercased. + * * @author Mark Donszelmann */ class HepRepIteratorListener { @@ -53,9 +33,10 @@ public: * * @param key name of the changed attribute. * @param value value of the changed attribute. + * @param value value of the changed attribute. * @param showLabel value of showLabel. */ - virtual void setAttribute(std::string key, std::string value, int showLabel) = 0; + virtual void setAttribute(std::string key, std::string value, std::string lowerCaseValue, int showLabel) = 0; /** * Called if attribute key changes its value. @@ -109,5 +90,5 @@ public: */ virtual void removeAttribute(std::string key) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPITERATORLISTENER_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepPoint.h b/source/visualization/HepRep/include/HEPREP/HepRepPoint.h index aeeff2a325..f4d3f51a8f 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepPoint.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepPoint.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -186,5 +164,5 @@ public: */ virtual HepRepPoint * copy(HepRepInstance * parent) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPPOINT_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepReader.h b/source/visualization/HepRep/include/HEPREP/HepRepReader.h new file mode 100644 index 0000000000..497d54fe36 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepReader.h @@ -0,0 +1,80 @@ +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPREADER_H +#define HEPREP_HEPREPREADER_H 1 + +// Copyright 2002-2003, Freehep. + +#include + +namespace HEPREP { + +class HepRep; + +/** + * HepRepReader interface. + * + * @author Mark Donszelmann + */ +class HepRepReader { + +public: + /// Destructor. + virtual ~HepRepReader() { /* nop */; } + + /** + * Closes the reader and its underlying stream. + * + * @return false in case of a stream problem. + */ + virtual bool close() = 0; + + /** + * Allows random access. + * + * @return true if this reader provides random access + */ + virtual bool hasRandomAccess() = 0; + + /** + * Reads a HepRep by name (random access only). + * + * @param name for the heprep to be read. + * @return heprep. + */ + virtual HepRep * read(std::string name) = 0; + + /** + * Allows for sequential access. + * + * @return true if sequential access is possible. + */ + virtual bool hasSequentialAccess() = 0; + + /** + * Resets a sequential HepRep reader. + * + * @return false in case of a stream problem. + */ + virtual bool reset() = 0; + + /** + * Is there a next heprep. + * + * @return true if the next heprep is available. + */ + virtual bool hasNext() = 0; + + /** + * Reads the next HepRep from the Reader. + * + * @return heprep. + */ + virtual HepRep * next() = 0; +}; // class +} // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPREADER_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepSelectFilter.h b/source/visualization/HepRep/include/HEPREP/HepRepSelectFilter.h index 413603e3fb..ff362569e7 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepSelectFilter.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepSelectFilter.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -54,5 +32,5 @@ public: */ virtual bool select(HepRepInstance * instance) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPSELECTFILTER_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepTreeID.h b/source/visualization/HepRep/include/HEPREP/HepRepTreeID.h index 38442f478e..12b1364cfa 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepTreeID.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepTreeID.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -81,5 +59,5 @@ public: */ virtual HepRepTreeID * copy() = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPTREEID_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepType.h b/source/visualization/HepRep/include/HEPREP/HepRepType.h index 412f4ebd9d..1d84faee4d 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepType.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepType.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -61,11 +39,25 @@ public: /** * Returns the name of this type. + * This is the full name if one uses flat-types, and the node name if one + * uses hierarchical typenames. It is the name supplied at construction of the type. * * @return name of type. + * @see #getFullName() */ virtual std::string getName() = 0; + /** + * Returns the full name of this type. + * The full name is constructed from the root of the typeTree (without the typeTreeName) + * by concatenating all the node names separated by slashes "/". For example: + * Geometry/InnerDetector/Sector24/Wire20 + * + * @return full name of type. + * @see #getName() + */ + virtual std::string getFullName() = 0; + /** * Returns the description of this type. * @@ -103,5 +95,5 @@ public: */ virtual HepRepType * copy(HepRep * heprep, HepRepType * parent) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPTYPE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepTypeTree.h b/source/visualization/HepRep/include/HEPREP/HepRepTypeTree.h index 73b22bda65..20f9821c69 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepTypeTree.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepTypeTree.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -80,5 +58,5 @@ public: // To be disabled in g++ 3.0 virtual HepRepTreeID * copy() = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPTYPETREE_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepViewer.h b/source/visualization/HepRep/include/HEPREP/HepRepViewer.h new file mode 100644 index 0000000000..9fb137d370 --- /dev/null +++ b/source/visualization/HepRep/include/HEPREP/HepRepViewer.h @@ -0,0 +1,34 @@ +// -*- C++ -*- +// AID-GENERATED +// ========================================================================= +// This class was generated by AID - Abstract Interface Definition +// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. +// ========================================================================= +#ifndef HEPREP_HEPREPVIEWER_H +#define HEPREP_HEPREPVIEWER_H 1 + +// Copyright 2000-2003, FreeHEP. + +namespace HEPREP { + +class HepRep; + +/** + * The HepRepViewer interface. + * + * @author Mark Donszelmann + */ +class HepRepViewer { + +public: + /// Destructor. + virtual ~HepRepViewer() { /* nop */; } + + /** + * Display a heprep + * + */ + virtual void display(HepRep heprep) = 0; +}; // class +} // namespace HEPREP +#endif /* ifndef HEPREP_HEPREPVIEWER_H */ diff --git a/source/visualization/HepRep/include/HEPREP/HepRepWriter.h b/source/visualization/HepRep/include/HEPREP/HepRepWriter.h index fa84ca7f6f..9b9124c8aa 100644 --- a/source/visualization/HepRep/include/HEPREP/HepRepWriter.h +++ b/source/visualization/HepRep/include/HEPREP/HepRepWriter.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// // -*- C++ -*- // AID-GENERATED // ========================================================================= @@ -31,6 +9,9 @@ // Copyright 2002, Freehep. +#include +#include + namespace HEPREP { class HepRep; @@ -68,9 +49,18 @@ public: * Writes a HepRep. * * @param heprep to be written. + * @param name for the heprep to be written (for tagged access), may be ommited. * @return false in case of a stream problem. */ - virtual bool write(HepRep * heprep) = 0; + virtual bool write(HepRep * heprep, std::string name) = 0; + + /** + * Writes the layerOrder. + * + * @param layerOrder to be written. + * @return false in case of a stream problem. + */ + virtual bool write(std::vector * layerOrder) = 0; /** * Writes a HepRepTypeTree. @@ -160,5 +150,5 @@ public: */ virtual bool write(HepRepAttDef * attDef) = 0; }; // class -}; // namespace HEPREP +} // namespace HEPREP #endif /* ifndef HEPREP_HEPREPWRITER_H */ diff --git a/source/visualization/HepRep/include/IndentPrintWriter.h b/source/visualization/HepRep/include/IndentPrintWriter.h deleted file mode 100644 index 3dde0aea60..0000000000 --- a/source/visualization/HepRep/include/IndentPrintWriter.h +++ /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 INDENTPRINTWRITER_H -#define INDENTPRINTWRITER_H 1 - -#include "FreeHepTypes.h" - -#include -#include - -/** - * A PrintWriter that keeps track of an indentation level - * and indents the output appropriately. - * - * Warning: Only print and println methods taking strings have been overriden, - * print, println methods taking other arguments may not be indented properly. - * - * @author Mark Donszelmann - */ -class IndentPrintWriter { - - public: - IndentPrintWriter(std::ostream* out, int level = 0); - virtual ~IndentPrintWriter(); - - void close(); - IndentPrintWriter& operator<< (const char *s); - IndentPrintWriter& operator<< (std::ostream& (*pf)(std::ostream&)); - void println(std::string s); - void print(std::string s); - void println(); - void indent(); - void outdent(); - int getIndent(); - void setIndent(int level); - std::string getIndentString(); - void setIndentString(std::string indentString); - - private: - void doIndent(); - - std::ostream* out; - int indentLevel; - bool indented; - std::string indentString; -}; - -#endif - diff --git a/source/visualization/HepRep/include/README b/source/visualization/HepRep/include/README index 0df435bba1..dcb075515e 100644 --- a/source/visualization/HepRep/include/README +++ b/source/visualization/HepRep/include/README @@ -3,14 +3,18 @@ Apart from the heprep1 files: G4HepRepFile.hh G4HepRepFileSceneHandler.hh G4HepRepFileViewer.hh -HepRepXMLWriter.hh +ref/HepRepXMLWriter.hh + +and the zlib headers + +zlib/*.h the other sources (heprep2) are copies from the FreeHEP library -(java.freehep.org) and are maintained there. +(java.freehep.org) and are maintained there. The files starting with G4 are geant4 compliant, the others may not be. Changes made here may be overwritten. -12 Nov 2002 +11 July 2003 Mark Donszelmann diff --git a/source/visualization/HepRep/include/StreamerHepRepAttribute.h b/source/visualization/HepRep/include/StreamerHepRepAttribute.h deleted file mode 100644 index 27ab6907f5..0000000000 --- a/source/visualization/HepRep/include/StreamerHepRepAttribute.h +++ /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. * -// ******************************************************************** -// -#ifndef STREAMERHEPREPATTRIBUTE_H -#define STREAMERHEPREPATTRIBUTE_H 1 - -#include "FreeHepTypes.h" - -#include -#include - -#include "HEPREP/HepRepAttribute.h" -#include "HEPREP/HepRepAttValue.h" -#include "HEPREP/HepRepWriter.h" - -/** - * - * @author M.Donszelmann - */ - -class StreamerHepRepAttribute : public virtual HEPREP::HepRepAttribute { - - private: - HEPREP::HepRepWriter* streamer; - - public: - StreamerHepRepAttribute(HEPREP::HepRepWriter* streamer); - ~StreamerHepRepAttribute(); - - std::vector* getAttValuesFromNode(); - bool addAttValue(HEPREP::HepRepAttValue* hepRepAttValue); - bool addAttValue(std::string key, std::string value, int showLabel); - bool addAttValue(std::string key, int value, int showLabel); - bool addAttValue(std::string key, double value, int showLabel); - bool addAttValue(std::string key, bool value, int showLabel); - bool addAttValue(std::string key, std::vector value, int showLabel); - bool addAttValue(std::string key, double red, double green, double blue, double alpha, int showLabel); - HEPREP::HepRepAttValue* getAttValueFromNode(std::string lowerCaseName); - HEPREP::HepRepAttValue* removeAttValue(std::string key); - HEPREP::HepRepAttValue* getAttValue(std::string name); -}; - -#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepInstance.h b/source/visualization/HepRep/include/StreamerHepRepInstance.h deleted file mode 100644 index 820e8ad562..0000000000 --- a/source/visualization/HepRep/include/StreamerHepRepInstance.h +++ /dev/null @@ -1,70 +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 STREAMERHEPREPINSTANCE_H -#define STREAMERHEPREPINSTANCE_H 1 - -#include "FreeHepTypes.h" - -#include -#include - -#include "HEPREP/HepRep.h" -#include "HEPREP/HepRepSelectFilter.h" -#include "HEPREP/HepRepInstanceTree.h" -#include "HEPREP/HepRepInstance.h" -#include "HEPREP/HepRepWriter.h" -#include "HEPREP/HepRepType.h" -#include "HEPREP/HepRepPoint.h" -#include "HEPREP/HepRepAttValue.h" - -#include "StreamerHepRepAttribute.h" - -/** - * - * @author M.Donszelmann - */ -class StreamerHepRepInstance : public StreamerHepRepAttribute, public virtual HEPREP::HepRepInstance { - - private: - void* parent; - HEPREP::HepRepType* type; - - public: - StreamerHepRepInstance(HEPREP::HepRepWriter* streamer, HEPREP::HepRepInstance* parent, HEPREP::HepRepType* type); - StreamerHepRepInstance(HEPREP::HepRepWriter* streamer, HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepType* type); - ~StreamerHepRepInstance(); - - HEPREP::HepRepInstance* copy(HEPREP::HepRep* heprep, HEPREP::HepRepInstance* parent, HEPREP::HepRepSelectFilter* filter); - HEPREP::HepRepInstance* copy(HEPREP::HepRep* heprep, HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepSelectFilter* filter); - HEPREP::HepRepType* getType(); - bool addPoint(HEPREP::HepRepPoint* point); - std::vector* getPoints(); - bool addInstance(HEPREP::HepRepInstance* instance); - void removeInstance(HEPREP::HepRepInstance* instance); - std::vector* getInstances(); - HEPREP::HepRepAttValue* getAttValue(std::string name); - - void *getParent() { return parent; } -}; - -#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepInstanceTree.h b/source/visualization/HepRep/include/StreamerHepRepInstanceTree.h deleted file mode 100644 index da87276c23..0000000000 --- a/source/visualization/HepRep/include/StreamerHepRepInstanceTree.h +++ /dev/null @@ -1,64 +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 STREAMERHEPREPINSTANCETREE_H -#define STREAMERHEPREPINSTANCETREE_H 1 - -#include "FreeHepTypes.h" - -#include -#include - -#include "HEPREP/HepRep.h" -#include "HEPREP/HepRepSelectFilter.h" -#include "HEPREP/HepRepInstanceTree.h" -#include "HEPREP/HepRepInstance.h" -#include "HEPREP/HepRepWriter.h" -#include "HEPREP/HepRepTreeID.h" - -#include "DefaultHepRepTreeID.h" - -/** - * - * @author M.Donszelmann - */ -class StreamerHepRepInstanceTree : public DefaultHepRepTreeID, public virtual HEPREP::HepRepInstanceTree { - - private: - HEPREP::HepRepWriter* streamer; - HEPREP::HepRepTreeID* typeTree; - - public: - StreamerHepRepInstanceTree(HEPREP::HepRepWriter* streamer, std::string name, std::string version, HEPREP::HepRepTreeID* typeTree); - ~StreamerHepRepInstanceTree(); - - HEPREP::HepRepInstanceTree* copy(HEPREP::HepRep* heprep, HEPREP::HepRepSelectFilter* filter); - HEPREP::HepRepTreeID* copy(); - bool addInstance(HEPREP::HepRepInstance* instance); - void removeInstance(HEPREP::HepRepInstance* instance); - std::vector* getInstances(); - bool addInstanceTree(HEPREP::HepRepTreeID* treeID); - HEPREP::HepRepTreeID* getTypeTree(); - std::vector* getInstanceTrees(); -}; - -#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepPoint.h b/source/visualization/HepRep/include/StreamerHepRepPoint.h deleted file mode 100644 index 1deb32c903..0000000000 --- a/source/visualization/HepRep/include/StreamerHepRepPoint.h +++ /dev/null @@ -1,78 +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 STREAMERHEPREPPOINT_H -#define STREAMERHEPREPPOINT_H 1 - -#include "FreeHepTypes.h" - -#include -#include - -#include "HEPREP/HepRepInstance.h" -#include "HEPREP/HepRepWriter.h" -#include "HEPREP/HepRepAttValue.h" -#include "HEPREP/HepRepPoint.h" - -#include "StreamerHepRepAttribute.h" - -/** - * - * @author M.Donszelmann - */ -class StreamerHepRepPoint : public StreamerHepRepAttribute, public virtual HEPREP::HepRepPoint { - - private: - HEPREP::HepRepInstance* instance; - - protected: - double x, y, z; - - public: - StreamerHepRepPoint(HEPREP::HepRepWriter* streamer, HEPREP::HepRepInstance* instance, double x, double y, double z); - ~StreamerHepRepPoint(); - - HEPREP::HepRepInstance* getInstance(); - - HEPREP::HepRepAttValue* getAttValue(std::string lowerCaseName); - - HEPREP::HepRepPoint* copy(HEPREP::HepRepInstance* parent); - double getX(); - double getY(); - double getZ(); - std::vector* getXYZ(std::vector* xyz); - double getRho(); - double getPhi(); - double getTheta(); - double getR(); - double getEta(); - double getX(double xVertex, double yVertex, double zVertex); - double getY(double xVertex, double yVertex, double zVertex); - double getZ(double xVertex, double yVertex, double zVertex); - double getRho(double xVertex, double yVertex, double zVertex); - double getPhi(double xVertex, double yVertex, double zVertex); - double getTheta(double xVertex, double yVertex, double zVertex); - double getR(double xVertex, double yVertex, double zVertex); - double getEta(double xVertex, double yVertex, double zVertex); -}; - -#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepType.h b/source/visualization/HepRep/include/StreamerHepRepType.h deleted file mode 100644 index da40acdde0..0000000000 --- a/source/visualization/HepRep/include/StreamerHepRepType.h +++ /dev/null @@ -1,68 +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 STREAMERHEPREPTYPE_H -#define STREAMERHEPREPTYPE_H 1 - -#include "FreeHepTypes.h" - -#include -#include - -#include "HEPREP/HepRep.h" -#include "HEPREP/HepRepType.h" -#include "HEPREP/HepRepAttDef.h" -#include "HEPREP/HepRepAttValue.h" -#include "HEPREP/HepRepWriter.h" - -#include "StreamerHepRepDefinition.h" - -/** - * - * @author M.Donszelmann - */ -class StreamerHepRepType : public StreamerHepRepDefinition, public virtual HEPREP::HepRepType { - - private: - HEPREP::HepRepType* parent; - std::string name; - std::string description; - std::string infoURL; - - public: - StreamerHepRepType(HEPREP::HepRepWriter* streamer, HEPREP::HepRepType* parent, std::string name); - ~StreamerHepRepType(); - - HEPREP::HepRepType* getSuperType(); - HEPREP::HepRepAttDef* getAttDef(std::string name); - HEPREP::HepRepAttValue* getAttValue(std::string name); - HEPREP::HepRepType* copy(HEPREP::HepRep* heprep, HEPREP::HepRepType* parent); - std::string getName(); - std::string getDescription(); - void setDescription(std::string description); - std::string getInfoURL(); - void setInfoURL(std::string infoURL); - bool addType(HEPREP::HepRepType* type); - std::vector* getTypes(); -}; - -#endif diff --git a/source/visualization/HepRep/include/StreamerHepRepTypeTree.h b/source/visualization/HepRep/include/StreamerHepRepTypeTree.h deleted file mode 100644 index 6873a74fcd..0000000000 --- a/source/visualization/HepRep/include/StreamerHepRepTypeTree.h +++ /dev/null @@ -1,55 +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 STREAMERHEPREPTYPETREE_H -#define STREAMERHEPREPTYPETREE_H 1 - -#include "FreeHepTypes.h" - -#include -#include - -#include "HEPREP/HepRep.h" -#include "HEPREP/HepRepTypeTree.h" -#include "HEPREP/HepRepType.h" -#include "HEPREP/HepRepWriter.h" -#include "HEPREP/HepRepTreeID.h" - -#include "DefaultHepRepTreeID.h" - -/** - * - * @author M.Donszelmann - */ -class StreamerHepRepTypeTree : public DefaultHepRepTreeID, public virtual HEPREP::HepRepTypeTree { - - public: - StreamerHepRepTypeTree(HEPREP::HepRepWriter* streamer, HEPREP::HepRepTreeID* typeTree); - ~StreamerHepRepTypeTree(); - - HEPREP::HepRepTypeTree* copy(HEPREP::HepRep* heprep); - HEPREP::HepRepTreeID* copy(); - bool addType(HEPREP::HepRepType* type); - std::vector* getTypes(); -}; - -#endif diff --git a/source/visualization/HepRep/include/XMLHepRepStreamer.h b/source/visualization/HepRep/include/XMLHepRepStreamer.h deleted file mode 100644 index 5b9bf83d61..0000000000 --- a/source/visualization/HepRep/include/XMLHepRepStreamer.h +++ /dev/null @@ -1,80 +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 XMLHEPREPSTREAMER_H -#define XMLHEPREPSTREAMER_H 1 - -#include "FreeHepTypes.h" - -#include -#include -#include - -#include "HEPREP/HepRep.h" -#include "HEPREP/HepRepFactory.h" -#include "HEPREP/HepRepWriter.h" -#include "HEPREP/HepRepPoint.h" -#include "HEPREP/HepRepInstance.h" -#include "HEPREP/HepRepInstanceTree.h" -#include "HEPREP/HepRepTreeID.h" -#include "HEPREP/HepRepAction.h" -#include "HEPREP/HepRepType.h" -#include "HEPREP/HepRepTypeTree.h" -#include "HEPREP/HepRepAttDef.h" -#include "HEPREP/HepRepAttValue.h" -#include "HEPREP/HepRepAttribute.h" - -#include "XMLWriter.h" - -/** - * - * @author M.Donszelmann - */ -class XMLHepRepStreamer : public XMLWriter, public virtual HEPREP::HepRepWriter { - - private: - std::string nameSpace; - bool writtenLayers; - std::stack hepreps; - HEPREP::HepRep *heprep; - HEPREP::HepRepTypeTree *heprepTypeTree; - - public: - XMLHepRepStreamer(std::ostream* out); - ~XMLHepRepStreamer(); - - bool close(); - bool write(HEPREP::HepRep* heprep); - bool write(HEPREP::HepRepTypeTree* typeTree); - bool write(HEPREP::HepRepType* type); - bool write(HEPREP::HepRepTreeID* treeID); - bool write(HEPREP::HepRepAction* action); - bool write(HEPREP::HepRepInstanceTree* instanceTree); - bool write(HEPREP::HepRepInstance* instance); - bool write(HEPREP::HepRepPoint* point); - bool write(HEPREP::HepRepAttribute* attribute); - bool write(HEPREP::HepRepDefinition* definition); - bool write(HEPREP::HepRepAttValue* attValue); - bool write(HEPREP::HepRepAttDef* attDef); -}; - -#endif diff --git a/source/visualization/HepRep/include/XMLHepRepStreamerFactory.h b/source/visualization/HepRep/include/XMLHepRepStreamerFactory.h deleted file mode 100644 index eac5e537d2..0000000000 --- a/source/visualization/HepRep/include/XMLHepRepStreamerFactory.h +++ /dev/null @@ -1,70 +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 XMLHEPREPSTREAMERFACTORY_H -#define XMLHEPREPSTREAMERFACTORY_H 1 - -#include "FreeHepTypes.h" - -#include -#include - -#include "HEPREP/HepRep.h" -#include "HEPREP/HepRepFactory.h" -#include "HEPREP/HepRepWriter.h" -#include "HEPREP/HepRepPoint.h" -#include "HEPREP/HepRepInstance.h" -#include "HEPREP/HepRepInstanceTree.h" -#include "HEPREP/HepRepTreeID.h" -#include "HEPREP/HepRepAction.h" -#include "HEPREP/HepRepType.h" -#include "HEPREP/HepRepTypeTree.h" - -/** - * - * @author M.Donszelmann - */ -class XMLHepRepStreamerFactory : public virtual HEPREP::HepRepFactory { - - private: - HEPREP::HepRepWriter* streamer; - - public: - XMLHepRepStreamerFactory(); - ~XMLHepRepStreamerFactory(); - -// static HEPREP::HepRepFactory* create(); - HEPREP::HepRepWriter* createHepRepWriter (std::ostream* out); - HEPREP::HepRepPoint* createHepRepPoint (HEPREP::HepRepInstance* instance, - double x, double y, double z); - HEPREP::HepRepInstance* createHepRepInstance (HEPREP::HepRepInstance* parent, HEPREP::HepRepType* type); - HEPREP::HepRepInstance* createHepRepInstance (HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepType* type); - HEPREP::HepRepTreeID* createHepRepTreeID (std::string name, std::string version, std::string qualifier = "top-level"); - HEPREP::HepRepAction* createHepRepAction (std::string name, std::string expression); - HEPREP::HepRepInstanceTree* createHepRepInstanceTree (std::string name, std::string version, - HEPREP::HepRepTreeID* typeTreeID); - HEPREP::HepRepType* createHepRepType (HEPREP::HepRepType* parent, std::string name); - HEPREP::HepRepTypeTree* createHepRepTypeTree (HEPREP::HepRepTreeID* treeID); - HEPREP::HepRep* createHepRep (); -}; - -#endif diff --git a/source/visualization/HepRep/include/StreamerHepRep.h b/source/visualization/HepRep/include/ref/DefaultHepRep.h similarity index 55% rename from source/visualization/HepRep/include/StreamerHepRep.h rename to source/visualization/HepRep/include/ref/DefaultHepRep.h index ead1a1b604..955c2b9341 100644 --- a/source/visualization/HepRep/include/StreamerHepRep.h +++ b/source/visualization/HepRep/include/ref/DefaultHepRep.h @@ -1,27 +1,5 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 STREAMERHEPREP_H -#define STREAMERHEPREP_H 1 +#ifndef DEFAULTHEPREP_H +#define DEFAULTHEPREP_H 1 #include "FreeHepTypes.h" @@ -39,14 +17,16 @@ * * @author M.Donszelmann */ -class StreamerHepRep : public virtual HEPREP::HepRep { +class DefaultHepRep : public virtual HEPREP::HepRep { private: std::vector layers; + std::vector typeTrees; + std::vector instanceTrees; public: - StreamerHepRep(HEPREP::HepRepWriter* streamer); - ~StreamerHepRep(); + DefaultHepRep(); + ~DefaultHepRep(); HEPREP::HepRep* copy(HEPREP::HepRepSelectFilter* filter); std::vector* getLayerOrder(); @@ -57,6 +37,7 @@ class StreamerHepRep : public virtual HEPREP::HepRep { std::vector* getTypeTrees(); HEPREP::HepRepType* getType(std::string name); bool addInstanceTree(HEPREP::HepRepInstanceTree* instanceTree); + void overlayInstanceTree(HEPREP::HepRepInstanceTree * instanceTree); void removeInstanceTree(HEPREP::HepRepInstanceTree* instanceTree); HEPREP::HepRepInstanceTree* getInstanceTreeTop(std::string name, std::string version); HEPREP::HepRepInstanceTree* getInstances(std::string name, std::string version, diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepAction.h b/source/visualization/HepRep/include/ref/DefaultHepRepAction.h new file mode 100644 index 0000000000..b5fe7818a9 --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepAction.h @@ -0,0 +1,29 @@ +#ifndef DEFAULTHEPREPACTION_H +#define DEFAULTHEPREPACTION_H 1 + +#include "FreeHepTypes.h" + +#include + +#include "HEPREP/HepRepAction.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepAction : public virtual HEPREP::HepRepAction { + + private: + std::string name; + std::string expression; + + public: + DefaultHepRepAction(std::string name, std::string expression); + ~DefaultHepRepAction(); + + std::string getName(); + std::string getExpression(); + HEPREP::HepRepAction* copy(); +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepAttDef.h b/source/visualization/HepRep/include/ref/DefaultHepRepAttDef.h new file mode 100644 index 0000000000..b434ef0323 --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepAttDef.h @@ -0,0 +1,32 @@ +#ifndef DEFAULTHEPREPATTDEF_H +#define DEFAULTHEPREPATTDEF_H 1 + +#include "FreeHepTypes.h" + +#include + +#include "HEPREP/HepRepAttDef.h" + +/** + * + * @author M.Donszelmann + */ + +class DefaultHepRepAttDef : public virtual HEPREP::HepRepAttDef { + + private: + std::string name, desc, category, extra; + + public: + DefaultHepRepAttDef(std::string name, std::string desc, std::string category, std::string extra); + ~DefaultHepRepAttDef(); + + HEPREP::HepRepAttDef* copy(); + std::string getName(); + std::string getLowerCaseName(); + std::string getDescription(); + std::string getCategory(); + std::string getExtra(); +}; + +#endif diff --git a/source/visualization/HepRep/include/DefaultHepRepAttValue.h b/source/visualization/HepRep/include/ref/DefaultHepRepAttValue.h similarity index 54% rename from source/visualization/HepRep/include/DefaultHepRepAttValue.h rename to source/visualization/HepRep/include/ref/DefaultHepRepAttValue.h index 2c51b77a25..d3d7006004 100644 --- a/source/visualization/HepRep/include/DefaultHepRepAttValue.h +++ b/source/visualization/HepRep/include/ref/DefaultHepRepAttValue.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 DEFAULTHEPREPATTVALUE_H #define DEFAULTHEPREPATTVALUE_H 1 @@ -71,6 +49,7 @@ class DefaultHepRepAttValue : public virtual HEPREP::HepRepAttValue { std::string getTypeName(); int showLabel(); std::string getString(); + std::string getLowerCaseString(); long getLong(); int getInteger(); double getDouble(); diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepAttribute.h b/source/visualization/HepRep/include/ref/DefaultHepRepAttribute.h new file mode 100644 index 0000000000..03fe1e8784 --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepAttribute.h @@ -0,0 +1,44 @@ +#ifndef DEFAULTHEPREPATTRIBUTE_H +#define DEFAULTHEPREPATTRIBUTE_H 1 + +#include "FreeHepTypes.h" + +#include +#include +#include + +#include "HEPREP/HepRepAttribute.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepConstants.h" +#include "HEPREP/HepRepWriter.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepAttribute : public virtual HEPREP::HepRepAttribute { + + private: + std::map attValues; + std::vector attList; + + public: + DefaultHepRepAttribute(); + ~DefaultHepRepAttribute(); + + std::vector* getAttValuesFromNode(); + bool addAttValue(HEPREP::HepRepAttValue* hepRepAttValue); + bool addAttValue(std::string key, char *value, int showLabel); + bool addAttValue(std::string key, std::string value, int showLabel); + bool addAttValue(std::string key, int value, int showLabel); + bool addAttValue(std::string key, double value, int showLabel); + bool addAttValue(std::string key, bool value, int showLabel); + bool addAttValue(std::string key, std::vector value, int showLabel); + bool addAttValue(std::string key, double red, double green, double blue, double alpha, int showLabel); + HEPREP::HepRepAttValue* getAttValueFromNode(std::string lowerCaseName); + HEPREP::HepRepAttValue* removeAttValue(std::string key); + + HEPREP::HepRepAttValue* getAttValue(std::string name) = 0; +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepDefinition.h b/source/visualization/HepRep/include/ref/DefaultHepRepDefinition.h new file mode 100644 index 0000000000..f59329546c --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepDefinition.h @@ -0,0 +1,37 @@ +#ifndef DEFAULTHEPREPDEFINITION_H +#define DEFAULTHEPREPDEFINITION_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRepDefinition.h" +#include "HEPREP/HepRepWriter.h" + +#include "DefaultHepRepAttribute.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepDefinition : public DefaultHepRepAttribute, public virtual HEPREP::HepRepDefinition { + + private: + std::map attDefs; + std::vector attList; + + public: + DefaultHepRepDefinition(); + ~DefaultHepRepDefinition(); + + bool addAttDef(HEPREP::HepRepAttDef* hepRepAttDef); + bool addAttDef(std::string name, std::string desc, std::string type, std::string extra); + std::vector* getAttDefsFromNode(); + HEPREP::HepRepAttDef* getAttDefFromNode(std::string lowerCaseName); + + HEPREP::HepRepAttDef* getAttDef(std::string name) = 0; + HEPREP::HepRepAttValue* getAttValue(std::string name) = 0; +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepFactory.h b/source/visualization/HepRep/include/ref/DefaultHepRepFactory.h new file mode 100644 index 0000000000..f88a124130 --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepFactory.h @@ -0,0 +1,48 @@ +#ifndef DEFAULTHEPREPFACTORY_H +#define DEFAULTHEPREPFACTORY_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepFactory.h" +#include "HEPREP/HepRepReader.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepPoint.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepTreeID.h" +#include "HEPREP/HepRepAction.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepTypeTree.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepFactory : public virtual HEPREP::HepRepFactory { + + public: + DefaultHepRepFactory(); + ~DefaultHepRepFactory(); + +// static HEPREP::HepRepFactory* create(); + HEPREP::HepRepReader* createHepRepReader (std::istream* in); + HEPREP::HepRepReader* createHepRepReader (std::string filename); + HEPREP::HepRepWriter* createHepRepWriter (std::ostream* out, bool randomAccess, bool compress); + HEPREP::HepRepPoint* createHepRepPoint (HEPREP::HepRepInstance* instance, + double x, double y, double z); + HEPREP::HepRepInstance* createHepRepInstance (HEPREP::HepRepInstance* parent, HEPREP::HepRepType* type); + HEPREP::HepRepInstance* createHepRepInstance (HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepType* type); + HEPREP::HepRepTreeID* createHepRepTreeID (std::string name, std::string version, std::string qualifier = "top-level"); + HEPREP::HepRepAction* createHepRepAction (std::string name, std::string expression); + HEPREP::HepRepInstanceTree* createHepRepInstanceTree (std::string name, std::string version, + HEPREP::HepRepTreeID* typeTreeID); + HEPREP::HepRepType* createHepRepType (HEPREP::HepRepType* parent, std::string name); + HEPREP::HepRepTypeTree* createHepRepTypeTree (HEPREP::HepRepTreeID* treeID); + HEPREP::HepRep* createHepRep (); +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepInstance.h b/source/visualization/HepRep/include/ref/DefaultHepRepInstance.h new file mode 100644 index 0000000000..0256b36c90 --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepInstance.h @@ -0,0 +1,52 @@ +#ifndef DEFAULTHEPREPINSTANCE_H +#define DEFAULTHEPREPINSTANCE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepSelectFilter.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepPoint.h" +#include "HEPREP/HepRepAttValue.h" + +#include "DefaultHepRepAttribute.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepInstance : public DefaultHepRepAttribute, public virtual HEPREP::HepRepInstance { + + private: + void* parent; + HEPREP::HepRepType* type; + std::vector points; + std::vector instances; + + public: + DefaultHepRepInstance(HEPREP::HepRepInstance* parent, HEPREP::HepRepType* type); + DefaultHepRepInstance(HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepType* type); + ~DefaultHepRepInstance(); + + void overlay(HEPREP::HepRepInstance * instance); + HEPREP::HepRepInstance* copy(HEPREP::HepRep* heprep, HEPREP::HepRepInstance* parent, HEPREP::HepRepSelectFilter* filter); + HEPREP::HepRepInstance* copy(HEPREP::HepRep* heprep, HEPREP::HepRepInstanceTree* parent, HEPREP::HepRepSelectFilter* filter); + HEPREP::HepRepType* getType(); + bool addPoint(HEPREP::HepRepPoint* point); + std::vector* getPoints(); + bool addInstance(HEPREP::HepRepInstance* instance); + void removeInstance(HEPREP::HepRepInstance* instance); + std::vector* getInstances(); + + HEPREP::HepRepAttValue* getAttValue(std::string name); + + void *getParent() { return parent; } +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepInstanceTree.h b/source/visualization/HepRep/include/ref/DefaultHepRepInstanceTree.h new file mode 100644 index 0000000000..023a2787f0 --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepInstanceTree.h @@ -0,0 +1,44 @@ +#ifndef DEFAULTHEPREPINSTANCETREE_H +#define DEFAULTHEPREPINSTANCETREE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepSelectFilter.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepTreeID.h" + +#include "DefaultHepRepTreeID.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepInstanceTree : public DefaultHepRepTreeID, public virtual HEPREP::HepRepInstanceTree { + + private: + HEPREP::HepRepTreeID* typeTree; + std::vector instances; + std::vector instanceTrees; + + public: + DefaultHepRepInstanceTree(std::string name, std::string version, HEPREP::HepRepTreeID* typeTree); + ~DefaultHepRepInstanceTree(); + + void overlay(HEPREP::HepRepInstanceTree * instanceTree); + HEPREP::HepRepInstanceTree* copy(HEPREP::HepRep* heprep, HEPREP::HepRepSelectFilter* filter); + HEPREP::HepRepTreeID* copy(); + bool addInstance(HEPREP::HepRepInstance* instance); + void removeInstance(HEPREP::HepRepInstance* instance); + std::vector* getInstances(); + bool addInstanceTree(HEPREP::HepRepTreeID* treeID); + HEPREP::HepRepTreeID* getTypeTree(); + std::vector* getInstanceTrees(); +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepPoint.h b/source/visualization/HepRep/include/ref/DefaultHepRepPoint.h new file mode 100644 index 0000000000..641d34f541 --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepPoint.h @@ -0,0 +1,56 @@ +#ifndef DEFAULTHEPREPPOINT_H +#define DEFAULTHEPREPPOINT_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepPoint.h" + +#include "DefaultHepRepAttribute.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepPoint : public DefaultHepRepAttribute, public virtual HEPREP::HepRepPoint { + + private: + HEPREP::HepRepInstance* instance; + + protected: + double x, y, z; + + public: + DefaultHepRepPoint(HEPREP::HepRepInstance* instance, double x, double y, double z); + ~DefaultHepRepPoint(); + + HEPREP::HepRepInstance* getInstance(); + + HEPREP::HepRepAttValue* getAttValue(std::string lowerCaseName); + + HEPREP::HepRepPoint* copy(HEPREP::HepRepInstance* parent); + double getX(); + double getY(); + double getZ(); + std::vector* getXYZ(std::vector* xyz); + double getRho(); + double getPhi(); + double getTheta(); + double getR(); + double getEta(); + double getX(double xVertex, double yVertex, double zVertex); + double getY(double xVertex, double yVertex, double zVertex); + double getZ(double xVertex, double yVertex, double zVertex); + double getRho(double xVertex, double yVertex, double zVertex); + double getPhi(double xVertex, double yVertex, double zVertex); + double getTheta(double xVertex, double yVertex, double zVertex); + double getR(double xVertex, double yVertex, double zVertex); + double getEta(double xVertex, double yVertex, double zVertex); +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepTreeID.h b/source/visualization/HepRep/include/ref/DefaultHepRepTreeID.h new file mode 100644 index 0000000000..72c284eda5 --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepTreeID.h @@ -0,0 +1,33 @@ +#ifndef DEFAULTHEPREPTREEID_H +#define DEFAULTHEPREPTREEID_H 1 + +#include "FreeHepTypes.h" + +#include + +#include "HEPREP/HepRepTreeID.h" + +/** + * + * @author M.Donszelmann + */ + +class DefaultHepRepTreeID : public virtual HEPREP::HepRepTreeID { + + private: + std::string name; + std::string version; + std::string qualifier; + + public: + DefaultHepRepTreeID(std::string name, std::string version, std::string qualifier = "top_level"); + ~DefaultHepRepTreeID(); + + std::string getQualifier(); + void setQualifier(std::string qualifier); + std::string getName(); + std::string getVersion(); + HEPREP::HepRepTreeID* copy(); +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepType.h b/source/visualization/HepRep/include/ref/DefaultHepRepType.h new file mode 100644 index 0000000000..0ea5ea990a --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepType.h @@ -0,0 +1,48 @@ +#ifndef DEFAULTHEPREPTYPE_H +#define DEFAULTHEPREPTYPE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepAttDef.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepWriter.h" + +#include "DefaultHepRepDefinition.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepType : public DefaultHepRepDefinition, public virtual HEPREP::HepRepType { + + private: + HEPREP::HepRepType* parent; + std::vector types; + std::string name; + std::string description; + std::string infoURL; + + public: + DefaultHepRepType(HEPREP::HepRepType* parent, std::string name); + ~DefaultHepRepType(); + + HEPREP::HepRepType* getSuperType(); + HEPREP::HepRepAttDef* getAttDef(std::string name); + HEPREP::HepRepAttValue* getAttValue(std::string name); + HEPREP::HepRepType* copy(HEPREP::HepRep* heprep, HEPREP::HepRepType* parent); + std::string getName(); + std::string getFullName(); + std::string getDescription(); + void setDescription(std::string description); + std::string getInfoURL(); + void setInfoURL(std::string infoURL); + bool addType(HEPREP::HepRepType* type); + std::vector* getTypes(); +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/DefaultHepRepTypeTree.h b/source/visualization/HepRep/include/ref/DefaultHepRepTypeTree.h new file mode 100644 index 0000000000..41712d921f --- /dev/null +++ b/source/visualization/HepRep/include/ref/DefaultHepRepTypeTree.h @@ -0,0 +1,36 @@ +#ifndef DEFAULTHEPREPTYPETREE_H +#define DEFAULTHEPREPTYPETREE_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepTypeTree.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepTreeID.h" + +#include "DefaultHepRepTreeID.h" + +/** + * + * @author M.Donszelmann + */ +class DefaultHepRepTypeTree : public DefaultHepRepTreeID, public virtual HEPREP::HepRepTypeTree { + + private: + std::vector types; + + public: + DefaultHepRepTypeTree(HEPREP::HepRepTreeID* typeTree); + ~DefaultHepRepTypeTree(); + + HEPREP::HepRepTypeTree* copy(HEPREP::HepRep* heprep); + HEPREP::HepRepTreeID* copy(); + bool addType(HEPREP::HepRepType* type); + std::vector* getTypes(); +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/FreeHepTypes.h b/source/visualization/HepRep/include/ref/FreeHepTypes.h new file mode 100644 index 0000000000..c1d01e88a6 --- /dev/null +++ b/source/visualization/HepRep/include/ref/FreeHepTypes.h @@ -0,0 +1,14 @@ +#ifndef FREEHEPTYPES_H +#define FREEHEPTYPES_H + +#ifdef WIN32 +#ifndef GNU_GCC +// Disable warning C4786: identifier was truncated to '255' characters in the debug information + #pragma warning ( disable : 4786 ) +// Disable warning C4250: inherits via dominance + #pragma warning ( disable : 4250 ) +#endif +#endif + +#endif + diff --git a/source/visualization/HepRep/include/ref/IndentPrintWriter.h b/source/visualization/HepRep/include/ref/IndentPrintWriter.h new file mode 100644 index 0000000000..fc83f7d31a --- /dev/null +++ b/source/visualization/HepRep/include/ref/IndentPrintWriter.h @@ -0,0 +1,48 @@ +#ifndef INDENTPRINTWRITER_H +#define INDENTPRINTWRITER_H 1 + +#include "FreeHepTypes.h" + +#include +#include + +/** + * A PrintWriter that keeps track of an indentation level + * and indents the output appropriately. + * + * Warning: Only print and println methods taking strings have been overriden, + * print, println methods taking other arguments may not be indented properly. + * + * @author Mark Donszelmann + */ +class IndentPrintWriter { + + public: + IndentPrintWriter(std::ostream* out, int level = 0); + virtual ~IndentPrintWriter(); + + void close(); + IndentPrintWriter& operator<< (const std::string & s); + IndentPrintWriter& operator<< (std::ostream& (*pf)(std::ostream&)); + void println(const std::string & s); + void print(const std::string & s); + void println(); + void indent(); + void outdent(); + int getIndent() const; + void setIndent(const int level); + std::string getIndentString() const; + void setIndentString(const std::string & indentString); + + private: + void doIndent(); + + std::ostream* out; + bool closed; + int indentLevel; + bool indented; + std::string indentString; +}; + +#endif + diff --git a/source/visualization/HepRep/include/ref/XMLHepRepFactory.h b/source/visualization/HepRep/include/ref/XMLHepRepFactory.h new file mode 100644 index 0000000000..9c21e357d2 --- /dev/null +++ b/source/visualization/HepRep/include/ref/XMLHepRepFactory.h @@ -0,0 +1,27 @@ +#ifndef XMLHEPREPFACTORY_H +#define XMLHEPREPFACTORY_H 1 + +#include +#include + +#include "HEPREP/HepRepReader.h" +#include "HEPREP/HepRepWriter.h" + +#include "DefaultHepRepFactory.h" + +/** + * + * @author M.Donszelmann + */ +class XMLHepRepFactory : public DefaultHepRepFactory { + + public: + XMLHepRepFactory(); + ~XMLHepRepFactory(); + + HEPREP::HepRepReader* createHepRepReader (std::istream* in); + HEPREP::HepRepReader* createHepRepReader (std::string filename); + HEPREP::HepRepWriter* createHepRepWriter (std::ostream* out, bool randomAccess, bool compress); +}; + +#endif diff --git a/source/visualization/HepRep/include/ref/XMLHepRepWriter.h b/source/visualization/HepRep/include/ref/XMLHepRepWriter.h new file mode 100644 index 0000000000..983e928fdd --- /dev/null +++ b/source/visualization/HepRep/include/ref/XMLHepRepWriter.h @@ -0,0 +1,62 @@ +#ifndef XMLHEPREPWRITER_H +#define XMLHEPREPWRITER_H 1 + +#include "FreeHepTypes.h" + +#include +#include +#include +#include + +#include "zipios++/zipoutputstream.h" +#include "zipios++/gzipoutputstream.h" + +#include "HEPREP/HepRep.h" +#include "HEPREP/HepRepFactory.h" +#include "HEPREP/HepRepWriter.h" +#include "HEPREP/HepRepPoint.h" +#include "HEPREP/HepRepInstance.h" +#include "HEPREP/HepRepInstanceTree.h" +#include "HEPREP/HepRepTreeID.h" +#include "HEPREP/HepRepAction.h" +#include "HEPREP/HepRepType.h" +#include "HEPREP/HepRepTypeTree.h" +#include "HEPREP/HepRepAttDef.h" +#include "HEPREP/HepRepAttValue.h" +#include "HEPREP/HepRepAttribute.h" + +#include "XMLWriter.h" + +/** + * + * @author M.Donszelmann + */ +class XMLHepRepWriter : public virtual HEPREP::HepRepWriter { + + private: + std::string nameSpace; + XMLWriter *xml; + zipios::ZipOutputStream *zip; + zipios::GZIPOutputStream *gz; + + public: + XMLHepRepWriter(std::ostream* out, bool randomAccess, bool compress); + ~XMLHepRepWriter(); + + bool close(); + bool write(HEPREP::HepRep* heprep, std::string name); + bool write(std::vector *layers); + bool write(HEPREP::HepRepTypeTree* typeTree); + bool write(HEPREP::HepRepType* type); + bool write(HEPREP::HepRepTreeID* treeID); + bool write(HEPREP::HepRepAction* action); + bool write(HEPREP::HepRepInstanceTree* instanceTree); + bool write(HEPREP::HepRepInstance* instance); + bool write(HEPREP::HepRepPoint* point); + bool write(HEPREP::HepRepAttribute* attribute); + bool write(HEPREP::HepRepDefinition* definition); + bool write(HEPREP::HepRepAttValue* attValue); + bool write(HEPREP::HepRepAttDef* attDef); +}; + +#endif diff --git a/source/visualization/HepRep/include/XMLWriter.h b/source/visualization/HepRep/include/ref/XMLWriter.h similarity index 54% rename from source/visualization/HepRep/include/XMLWriter.h rename to source/visualization/HepRep/include/ref/XMLWriter.h index 4cd6a56a11..1a82e2b65c 100644 --- a/source/visualization/HepRep/include/XMLWriter.h +++ b/source/visualization/HepRep/include/ref/XMLWriter.h @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 XMLWRITER_H #define XMLWRITER_H 1 @@ -48,8 +26,9 @@ class XMLWriter { void openDoc(std::string version = "1.0", std::string encoding = "", bool standalone = false); void referToDTD(std::string name, std::string pid, std::string ref); void referToDTD(std::string name, std::string system); - void closeDoc(); + void closeDoc(bool force = false); void printComment(std::string comment); + void printPlain(std::string text); void print(std::string text); void println(std::string text); void openTag(std::string ns, std::string name); @@ -72,7 +51,7 @@ class XMLWriter { std::string defaultNameSpace; private: - std::string* dtdName; + std::string dtdName; std::map attributes; std::stack openTags; }; diff --git a/source/visualization/HepRep/include/zipios++/ZIPIOS-AUTHORS b/source/visualization/HepRep/include/zipios++/ZIPIOS-AUTHORS new file mode 100644 index 0000000000..6727da1ed7 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/ZIPIOS-AUTHORS @@ -0,0 +1,21 @@ +Mark Donszelmann - 07/07/2003 +============================= +Files renamed from .cpp to .cc +===================================================== + +Main author: Thomas Sondergaard (thomass@deltadata.dk) +FreeBSD port maintainer: Ying-Chieh Liao (ijliao@csie.nctu.edu.tw) + +The files zipios++/directory.h and zipios++/directory.cpp originate +from the dir_it library written by Dietmar Kuehl (it's available for +download at http://www.boost.org) + +zipios++.spec contributed by Rui Miguel Silva Seabra + +libtool/shared library patch contributed by Arkadiusz Miskiewicz (arekm) + +Russel Winder (r.winder@180sw.com) did the work of amending the code to +so as to work with GCC 3.2.1. + +Ross Burton (r.burton@180sw.com) transformed zipios++.spec into +zipios++.spec.in and made it more RedHat tradition conformant. diff --git a/source/visualization/HepRep/include/zipios++/ZIPIOS-COPYING b/source/visualization/HepRep/include/zipios++/ZIPIOS-COPYING new file mode 100644 index 0000000000..c4792dd27a --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/ZIPIOS-COPYING @@ -0,0 +1,515 @@ + + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations +below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. +^L + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it +becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. +^L + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control +compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. +^L + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. +^L + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. +^L + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. +^L + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply, and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License +may add an explicit geographical distribution limitation excluding those +countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. +^L + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS +^L + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms +of the ordinary General Public License). + + To apply these terms, attach the following notices to the library. +It is safest to attach them to the start of each source file to most +effectively convey the exclusion of warranty; and each file should +have at least the "copyright" line and a pointer to where the full +notice is found. + + + + Copyright (C) + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper +mail. + +You should also get your employer (if you work as a programmer) or +your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James +Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/source/visualization/HepRep/include/zipios++/backbuffer.h b/source/visualization/HepRep/include/zipios++/backbuffer.h new file mode 100644 index 0000000000..06934210d3 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/backbuffer.h @@ -0,0 +1,117 @@ +#ifndef BACKBUFFER_H +#define BACKBUFFER_H + +#include "zipios++/zipios-config.h" + +#include + +#include "zipios++/meta-iostreams.h" +#include + +#include "zipios++/fcollexceptions.h" +#include "zipios++/ziphead.h" +#include "zipios++/zipheadio.h" +#include "zipios++/virtualseeker.h" +#include "zipios_common.h" + +namespace zipios { + +using std::ios ; +using std::cerr ; +using std::endl ; + +/** A BackBuffer instance is useful for reading the last part of a + file in an efficient manner, when it is not known exactly how far + back (towards the front!) to go, to find the start of the desired + data block. BackBuffer is a vector< unsigned char > that fills + itself with data from a file by reading chunks from the end of the + file progressing towards the start. Upon construction the + BackBuffer instance is associated with a file and a chunksize can + be specified. To read a chunk of the file into the BackBuffer call + readChunk(). */ +class BackBuffer : public vector< unsigned char > { +public: + /** BackBuffer constructor. + @param is The istream to read the data from. The stream must be seekable, + as BackBuffer will reposition the file position to read chunks from the back + of the file. + @param chunk_size specifies the size of the chunks to read the file into + the BackBuffer in. + @throw FCollException Thrown if the VirtualSeeker vs that has been specified is + invalid for the istream is. */ + inline explicit BackBuffer( istream &is, VirtualSeeker vs = VirtualSeeker(), + int chunk_size = 1024 ) ; + /** Reads another chunk and returns the size of the chunk that has + been read. Returns 0 on I/O failure. + @param read_pointer When a new chunk is read in the already + stored bytes change position in the BackBuffer. read_pointer is + assumed by readChunk() to be a pointer into a position in the + BackBuffer, and is updated to point to the same position in the file + as it pointed to before the new chunk was read. */ + inline int readChunk( int &read_pointer ) ; + +private: + VirtualSeeker _vs ; + int _chunk_size ; + istream &_is ; + streampos _file_pos ; + +}; + +BackBuffer::BackBuffer( istream &is, VirtualSeeker vs, int chunk_size ) + : _vs ( vs ), + _chunk_size( chunk_size ), + _is ( is ) +{ + _vs.vseekg( is, 0, ios::end ) ; + _file_pos = _vs.vtellg( is ) ; + // Only happens if _vs.startOffset() is a position + // in the file that lies after _vs.endOffset(), which + // is clearly not a valid situation. + if ( _file_pos < 0 ) + throw FCollException( "Invalid virtual file endings" ) ; +} + +int BackBuffer::readChunk( int &read_pointer ) { + // Update chunk_size and file position + _chunk_size = min ( static_cast< int >( _file_pos ), _chunk_size ) ; + _file_pos -= _chunk_size ; + _vs.vseekg( _is, _file_pos, ios::beg ) ; + // Make space for _chunk_size new bytes first in buffer + insert ( begin(), _chunk_size, static_cast< char > ( 0 ) ) ; + // Read in the next _chunk_size of bytes + + readByteSeq ( _is, &( (*this)[ 0 ] ), _chunk_size ) ; + read_pointer += _chunk_size ; + + if ( _is.good() ) + return _chunk_size ; + else + return 0 ; +} + +} +#endif + +/** \file + The header file for BackBuffer +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/basicentry.h b/source/visualization/HepRep/include/zipios++/basicentry.h new file mode 100644 index 0000000000..9e06695de1 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/basicentry.h @@ -0,0 +1,87 @@ +#ifndef BASICENTRY_H +#define BASICENTRY_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include + +#include "zipios++/fcollexceptions.h" +#include "zipios++/fileentry.h" +#include "zipios++/filepath.h" +#include "zipios++/zipios_defs.h" + +namespace zipios { + +/** BasicEntry is a FileEntry that is suitable as a base class for + basic entries, that e.g. do not support any form of compression */ +class BasicEntry : public FileEntry { +public: + /** Constructor. + @param filename the filename of the entry. + @param comment a comment for the entry. + */ + explicit BasicEntry( const string &filename, const string &comment, + const FilePath &basepath = FilePath() ) ; + virtual string getComment() const ; + virtual uint32 getCompressedSize() const ; + virtual uint32 getCrc() const ; + virtual vector< unsigned char > getExtra() const ; + virtual StorageMethod getMethod() const ; + virtual string getName() const ; + virtual string getFileName() const ; + virtual uint32 getSize() const ; + virtual int getTime() const ; + virtual bool isValid() const ; + + // virtual int hashCode() const ; + virtual bool isDirectory() const ; + + virtual void setComment( const string &comment ) ; + virtual void setCompressedSize( uint32 size ) ; + virtual void setCrc( uint32 crc ) ; + virtual void setExtra( const vector< unsigned char > &extra ) ; + virtual void setMethod( StorageMethod method ) ; + virtual void setName( const string &name ) ; + virtual void setSize( uint32 size ) ; + virtual void setTime( int time ) ; + + virtual string toString() const ; + + virtual FileEntry *clone() const ; + + virtual ~BasicEntry() ; +protected: + string _filename ; + string _comment ; + int _size ; + bool _valid ; + FilePath _basepath ; + +}; + +} +#endif + +/** \file + Header file that defines BasicEntry. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/collcoll.h b/source/visualization/HepRep/include/zipios++/collcoll.h new file mode 100644 index 0000000000..a591a386fd --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/collcoll.h @@ -0,0 +1,174 @@ +#ifndef COLLCOLL_H +#define COLLCOLL_H + +#include "zipios++/zipios-config.h" + +#include +#include + +#include "zipios++/fcoll.h" + +namespace zipios { + +using std::string ; + +/** \anchor collcoll_anchor + CollectionCollection is a FileCollection that consists of an + arbitrary number of FileCollections. With a CollectionCollection + the user can use multiple FileCollections transparently, making it + easy for a program to keep some of its files in a zip archive and + others stored in ordinary files. CollectionCollection can be used + to create a simple virtual filesystem, where all collections are + mounted in /. If more than one collection contain a file with + the same path only the one in the first added collection will + be accessible. +*/ +class CollectionCollection : public FileCollection { +public: + /** \anchor collcoll_inst_anchor + This static method provides a singleton instance of a CollectionCollection. + The instance is instantiated the first time the method is called. + @return A pointer to a singleton CollectionCollection instance. + */ + static inline CollectionCollection &inst() ; + + /** Constructor. + */ + explicit CollectionCollection() ; + + /** Copy constructor. */ + inline CollectionCollection( const CollectionCollection &src ) ; + + /** Copy assignment operator. */ + inline const CollectionCollection &operator= ( const CollectionCollection &src ) ; + + /** \anchor collcoll_addcoll_anchor + Adds a collection. + @param collection The collection to add. + @return true if the collection was added succesfully and + the added collection is valid. + */ + bool addCollection( const FileCollection &collection ) ; + + /** Adds the collection pointed to by collection. The CollectionCollection + will call delete on the pointer when it is destructed, so the caller + should make absolutely sure to only pass in a collection created with new + and be sure to leave it alone after adding it. If the collection is not + added false is returned and the caller remains responsible for the + collection pointed to by collection. + @param collection A pointer to the collection to add. + @return true if the collection was added succesfully and + the added collection is valid. */ + bool addCollection( FileCollection *collection ) ; + + virtual void close() ; + + virtual ConstEntries entries() const ; + + virtual ConstEntryPointer getEntry( const string &name, + MatchPath matchpath = MATCH ) const ; + + virtual istream *getInputStream( const ConstEntryPointer &entry ) ; + + virtual istream *getInputStream( const string &entry_name, + MatchPath matchpath = MATCH ) ; + + /** Returns the number in entries in all collections kept by + the CollectionCollection object */ + virtual int size() const ; + + virtual FileCollection *clone() const ; + + virtual ~CollectionCollection() ; + +protected: + /** A protected getEntry member function, that not only + finds an entry that match the name, if such an entry exists + in the collection, it also returns, which collection it was found + in. + */ + void getEntry( const string &name, + ConstEntryPointer &cep, + std::vector< FileCollection * >::const_iterator &it, + MatchPath matchpath = MATCH ) const ; + + vector< FileCollection * > _collections ; +private: + static CollectionCollection *_inst ; +}; + + +/** Shortcut name for a CollectionCollection. If the static method +inst is used, it is often used a lot, so it's handy with a short name for +CollectionCollection */ +typedef CollectionCollection CColl ; + + +// +// Inline (member) functions +// + +CollectionCollection &CollectionCollection::inst() { + if( _inst != 0 ) + return *_inst ; + else + return *( _inst = new CollectionCollection ) ; +} + +CollectionCollection::CollectionCollection( const CollectionCollection &src ) + : FileCollection( src ) +{ + _collections.reserve( src._collections.size() ) ; + std::vector< FileCollection * >::const_iterator it ; + for ( it = src._collections.begin() ; it != src._collections.end() ; ++it ) + _collections.push_back( (*it)->clone() ) ; +} + + +const CollectionCollection & +CollectionCollection::operator= ( const CollectionCollection &src ) { + this->FileCollection::operator=( src ) ; +// FileCollection::=( static_cast< FileCollection >( src ) ) ; + + if ( this != &src ) { + // Destroy current contents. + std::vector< FileCollection * >::const_iterator it ; + for ( it = _collections.begin() ; it != _collections.end() ; ++it ) + delete *it ; + // Then copy src's content. + _collections.clear() ; + _collections.reserve( src._collections.size() ) ; + for ( it = src._collections.begin() ; it != src._collections.end() ; ++it ) + _collections.push_back( (*it)->clone() ) ; + } + return *this ; +} + +} // namespace + + + +#endif + +/** \file + Header file that defines CollectionCollection. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/deflateoutputstreambuf.h b/source/visualization/HepRep/include/zipios++/deflateoutputstreambuf.h new file mode 100644 index 0000000000..7cedeba678 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/deflateoutputstreambuf.h @@ -0,0 +1,109 @@ +#ifndef DEFLATEOUTPUTSTREAMBUF_H +#define DEFLATEOUTPUTSTREAMBUF_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include + +#include + +#include "zipios++/filteroutputstreambuf.h" +#include "zipios++/ziphead.h" +#include "zipios++/zipios_defs.h" + +namespace zipios { + +using std::vector ; + +/** DeflateOutputStreambuf is an output stream filter, that deflates + the data that is written to it before it passes it on to the + output stream it is attached to. Deflation/Inflation is a + compression/decompression method used in gzip and zip. The zlib + library is used to perform the actual deflation, this class only + wraps the functionality in an output stream filter. */ +class DeflateOutputStreambuf : public FilterOutputStreambuf { +public: + + /** DeflateOutputStreambuf constructor. + @param outbuf the streambuf to use for output. + @param user_init If false user must invoke init() before writing any data. + (ZipOutputStreambuf needs to do this) + @param del_outbuf if true is specified outbuf will be deleted, when + the DeflateOutputStreambuf is destructed. */ + explicit DeflateOutputStreambuf( streambuf *outbuf, bool user_init = false, + bool del_outbuf = false ) ; + + /** Destructor. */ + virtual ~DeflateOutputStreambuf() ; + + bool init( int comp_level = 6 ) ; + bool closeStream() ; + + /** Returns the CRC32 for the current stream. The returned value is + the CRC for the data that has been compressed already (due to a + call to overflow()). As DeflateOutputStreambuf may buffer an + arbitrary amount of bytes until closeStream() has been invoked, + the returned value is not very useful before closeStream() has + been called. */ + uint32 getCrc32() const { return _crc32 ; } + + /** Returns the number of bytes written to the streambuf, that has + been processed from the input buffer by the compressor. After + closeStream() has been called this number is the total number of + bytes written to the stream. */ + uint32 getCount() const { return _overflown_bytes ; } + +protected: + virtual int overflow( int c = EOF ) ; + virtual int sync() ; + + /** Flushes _outvec and updates _zs.next_out and _zs.avail_out. */ + bool flushOutvec() ; + + /** Flushes the remaining data in the zlib buffers, after which the + only possible operations are deflateEnd() or deflateReset(). */ + void endDeflation() ; + +private: + z_stream _zs ; + bool _zs_initialized ; +protected: // FIXME: reconsider design? + const int _invecsize ; + vector< char > _invec ; + const int _outvecsize ; + vector< char > _outvec ; + + uint32 _crc32 ; + uint32 _overflown_bytes ; +}; + + +} // namespace + + + +#endif + +/** \file + Header file that defines DeflateOutputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/dircoll.h b/source/visualization/HepRep/include/zipios++/dircoll.h new file mode 100644 index 0000000000..5abb407fbe --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/dircoll.h @@ -0,0 +1,93 @@ +#ifndef DIRCOLL_H +#define DIRCOLL_H + +#include "zipios++/zipios-config.h" + + +#include "zipios++/fcoll.h" +#include "zipios++/basicentry.h" +#include "zipios++/filepath.h" + +namespace zipios { + +/** DirEntry is a BasicEntry. */ +typedef BasicEntry DirEntry ; + +/** \anchor dircol_anchor + DirectoryCollection is a FileCollection that obtains its entries + from a directory. */ +class DirectoryCollection : public FileCollection { +public: + + /** Default Constructor. */ + explicit DirectoryCollection() + : _entries_loaded( false ), _recursive( true ) {} + + + /** Constructor. + @param path A directory path name. If the name is not a valid + directory the created DirectoryCollection will be invalid. + @param load_now Load directory into memory now. Otherwise it will + be done when it is first needed. + */ + explicit DirectoryCollection( const string &path, + bool recursive = true, + bool load_now = false ) ; + + /* Default Copy constructor and copy assignment operator are sufficient. */ + + virtual void close() ; + + virtual ConstEntries entries() const ; + + virtual ConstEntryPointer getEntry( const string &name, + MatchPath matchpath = MATCH ) const ; + + virtual istream *getInputStream( const ConstEntryPointer &entry ) ; + + virtual istream *getInputStream( const string &entry_name, + MatchPath matchpath = MATCH ) ; + + virtual int size() const ; + + virtual FileCollection *clone() const ; + + /** Destructor. */ + virtual ~DirectoryCollection() ; + +protected: + mutable bool _entries_loaded ; + bool _recursive ; // recurse into subdirs. + FilePath _filepath ; + + void loadEntries() const ; + void load( bool recursive, const FilePath &subdir = FilePath() ) ; + +}; + +} // namespace + +#endif + +/** \file + Header file that defines DirectoryCollection. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/fcoll.h b/source/visualization/HepRep/include/zipios++/fcoll.h new file mode 100644 index 0000000000..1cfefe6d8a --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/fcoll.h @@ -0,0 +1,307 @@ +#ifndef fcoll_H +#define fcoll_H + +#include "zipios++/zipios-config.h" + +#include +#include + +#include "zipios++/fcollexceptions.h" +#include "zipios++/fileentry.h" + +namespace zipios { + +using std::vector; + +/** \anchor fcoll_anchor + FileCollection is an abstract baseclass that represents a + collection of files. The specializations of FileCollection + represents different origins of file collections, such as + directories, simple filename lists and compressed archives. */ +class FileCollection { +public: + /** FileCollection constructor. */ + explicit FileCollection() + : _filename( "-" ), + _entries ( 0 ), + _valid ( false ) {} + + /** Copy constructor. */ + inline FileCollection( const FileCollection &src ) ; + + /** Copy assignment operator. */ + inline const FileCollection &operator= ( const FileCollection &src ) ; + + /** Closes the FileCollection. */ + virtual void close() = 0 ; + + /** \anchor fcoll_entries_anchor + Returns a vector of const pointers to the entries in the + FileCollection. + @return a ConstEntries + containing the entries of the FileCollection. + @throw InvalidStateException Thrown if the collection is invalid. */ + virtual ConstEntries entries() const ; + + enum MatchPath { IGNORE, MATCH } ; + + /** \anchor fcoll_getentry_anchor + Returns a ConstEntryPointer to a FileEntry object for the entry + with the specified name. To ignore the path part of the filename in search of a + match, specify FileCollection::IGNORE as the second argument. + @param name A string containing the name of the entry to get. + @param matchpath Speficy MATCH, if the path should match as well, + specify IGNORE, if the path should be ignored. + @return A ConstEntryPointer to the found entry. The returned pointer + equals zero if no entry is found. + @throw InvalidStateException Thrown if the collection is invalid. */ + virtual ConstEntryPointer getEntry( const string &name, + MatchPath matchpath = MATCH ) const ; + /** \anchor fcoll_getinputstream + Returns a pointer to an opened istream for the specified + FileEntry. It is the callers responsibility to delete the stream + when he is done with it. Returns 0, if there is no such + FileEntry in the FileCollection. + @param entry A ConstEntryPointer to the FileEntry to get an istream to. + @return an open istream for the specified entry. The istream is allocated on + heap and it is the users responsibility to delete it when he is done with it. + @throw InvalidStateException Thrown if the collection is invalid. */ + virtual istream *getInputStream( const ConstEntryPointer &entry ) = 0 ; + /** Returns a pointer to an opened istream for the specified + entry name. It is the callers responsibility to delete the stream + when he is done with it. Returns 0, if there is no entry with the specified + name in the FileCollection. + @param matchpath Speficy MATCH, if the path should match as well, + specify IGNORE, if the path should be ignored. + @return an open istream for the specified entry. The istream is allocated on + heap and it is the users responsibility to delete it when he is done with it. + @throw InvalidStateException Thrown if the collection is invalid. */ + virtual istream *getInputStream( const string &entry_name, + MatchPath matchpath = MATCH ) = 0 ; + /** Returns the name of the FileCollection. + @return the name of the FileCollection. + @throw InvalidStateException Thrown if the collection is invalid. */ + virtual string getName() const ; + /** Returns the number of entries in the FileCollection. + @return the number of entries in the FileCollection. + @throw InvalidStateException Thrown if the collection is invalid. */ + virtual int size() const ; + + /** The member function returns true if the collection is valid. + @return true if the collection is valid. + */ + bool isValid() const { return _valid ; } + + /** Create a heap allocated clone of the object this method is called for. The + caller is responsible for deallocating the clone when he is done with it. + @return A heap allocated copy of the object this method is called for. + */ + virtual FileCollection *clone() const = 0 ; + + + /** FileCollection destructor. */ + virtual ~FileCollection () ; +protected: + string _filename ; + Entries _entries ; + bool _valid ; +}; + + +// +// Inline methods +// + +FileCollection::FileCollection( const FileCollection &src ) + : _filename( src._filename ), + _valid ( src._valid ) +{ + _entries.reserve( src._entries.size() ) ; + Entries::const_iterator it ; + for ( it = src._entries.begin() ; it != src._entries.end() ; ++it ) + _entries.push_back( (*it)->clone() ) ; +} + +const FileCollection &FileCollection::operator= ( const FileCollection &src ) { + if ( this != &src ) { + _filename = src._filename ; + _valid = src._valid ; + _entries.clear() ; + _entries.reserve( src._entries.size() ) ; + + Entries::const_iterator it ; + for ( it = src._entries.begin() ; it != src._entries.end() ; ++it ) + _entries.push_back( (*it)->clone() ) ; + } + return *this ; +} + +inline ostream & operator<< (ostream &os, const FileCollection& collection) { + os << "collection '" << collection.getName() << "' {" ; + ConstEntries entries = collection.entries(); + ConstEntries::const_iterator it; + bool isFirst=true; + for (it=entries.begin(); it != entries.end(); ++it) { + if(! isFirst) + os << ", "; + isFirst = false; + os << (*it)->getName(); + } + os << "}"; + return os; +} + + +} // namespace + +#endif + + +/** + \mainpage Zipios++ + + \image html zipios++.jpg + \image latex zipios++.eps width=10cm + + \section intro Introduction + + Zipios++ is a java.util.zip-like C++ library for reading and + writing Zip files. Access to individual entries is provided through + standard C++ iostreams. A simple read-only virtual file system that + mounts regular directories and zip files is also provided. + + The source code is released under the GNU Lesser General Public + License. + + \section status Status + + Spanned archives are not supported, and support is not planned. + + + The library has been tested and appears to be working with +
    +
  • FreeBSD stable and current / gcc 2.95.3
  • +
  • Red Hat Linux release 7.0 / gcc 2.96
  • +
  • Red Hat Linux release 6.2 (Zoot) / egcs-2.91.66
  • +
  • Linux Mandrake release 7.0 (Air) / gcc 2.95.2
  • +
  • SGI IRIX64 6.5 / gcc 2.95.2
  • +
  • SGI IRIX64 6.5 / MIPSpro Compilers: Version 7.30
  • +
+ + If you are aware of any other platforms that Zipios++ works on, + please let me know (thomass@deltadata.dk). + + \section documentation Documentation + This web page is the front page to the library documentation which + is generated from the source files using Doxygen. Use + the links at the top of the page to browse the API + documentation. The documentation is also available in + a printer-friendly format [pdf]. + + \subsection zipfiles Zip file access + The two most important classes are \ref zipfile_anchor "ZipFile" and + \ref ZipInputStream_anchor "ZipInputStream". ZipInputStream is an istream + for reading zipfiles. It can be instantiated directly, without the + use of ZipFile. A new ZipInputStream reads from the first entry, and + the user can skip to the next entry by calling + \ref ZipInputStream_getnextentry_anchor "ZipInputStream::getNextEntry()". + + ZipFile scans the central directory of a zipfile and provides an + interface to access that directory. The user may search for entries + with a particular filename using \ref fcoll_getentry_anchor "ZipFile::getEntry()", + or simply get the complete list of entries + with \ref fcoll_entries_anchor "ZipFile::entries()". To get an + istream (ZipInputStream) to a particular entry simply use + \ref fcoll_getinputstream "ZipFile::getInputStream()". + + \ref example_zip_anchor "example_zip.cpp" demonstrates the central + elements of Zipios++. + + A Zip file appended to another file, e.g. a binary program, with the program + \ref appendzip_anchor "appendzip", can be read with + \ref zipfile_openembeddedzipfile "ZipFile::openEmbeddedZipFile()". + + \subsection filecollections FileCollections + + A ZipFile is actually just a special kind of + \ref fcoll_anchor "FileCollection" that + obtains its entries from a .zip Zip archive. Zipios++ also implements + a \ref dircol_anchor "DirectoryCollection" that obtains its entries + from a specified directory, and a \ref collcoll_anchor "CollectionCollection" + that obtains its entries from + other collections. Using a single CollectionCollection any number of + other FileCollections can be placed under its control and accessed + through the same single interface that is used to access a ZipFile or + a DirectoryCollection. A singleton (a unique global instance) + CollectionCollection can be obtained through + + \ref collcoll_inst_anchor "CollectionCollection::inst()" ; + + To save typing CollectionCollection has been typedef'ed to CColl. In + the initialization part of an application FileCollections can be + created, and placed under CColll::inst()'s control using + + \ref collcoll_addcoll_anchor "CColl::inst().addCollection()" + + and later an istream can be obtained using + + \ref fcoll_getinputstream "CColl::inst().getInputStream()". + + \section download Download + Go to Zipios++ project page on SourceForge for tar balls and ChangeLog. + + http://sourceforge.net/project/?group_id=5418 + + \section links Links + zlib. + The compression library that Zipios++ uses to perform the actual + decompression. + + + Java 2 Platform, Standard Edition, v 1.3 API Specification + . Zipios++ is heavily inspired by the java.util.zip package. + + + PKWARE zip format + . A description of the zip file format. + + \section bugs Bugs + Submit bug reports and patches to thomass@deltadata.dk + + + + \htmlonly + Project hosted by + +

+ Logo created with + + + \endhtmlonly */ + + +/** \file + Header file that defines FileCollection. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/fcollexceptions.h b/source/visualization/HepRep/include/zipios++/fcollexceptions.h new file mode 100644 index 0000000000..d4dad19228 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/fcollexceptions.h @@ -0,0 +1,100 @@ +#ifndef FCOLLEXCEPTIONS_H +#define FCOLLEXCEPTIONS_H + +#include "zipios++/zipios-config.h" + +#include +#include + +namespace zipios { + +using std::string ; +using std::exception ; + +/** An IOException is used to signal an I/O error. + */ +class IOException : public exception { +public: + IOException() throw () ; + explicit IOException( const string &msg ) throw () ; + IOException( const IOException &src ) throw () ; + IOException &operator= ( const IOException &src ) throw () ; + + virtual const char *what() const throw () ; + virtual ~IOException() throw () ; +private: + string _what ; +}; + +/** An FCollException is used to signal a problem with a + FileCollection. */ +class FCollException : public exception { +public: + FCollException() throw () ; + explicit FCollException( const string &msg ) throw () ; + FCollException( const FCollException &src ) throw () ; + FCollException &operator= ( const FCollException &src ) throw () ; + + virtual const char *what() const throw () ; + virtual ~FCollException() throw () ; +private: + string _what ; +}; + +/** An object member function may throw this exception, if the + operation it normally performs is inappropriate or impossible to + perform because of the current state of the object. */ +class InvalidStateException : public exception { +public: + InvalidStateException() throw () ; + explicit InvalidStateException( const string &msg ) throw () ; + InvalidStateException( const InvalidStateException &src ) throw () ; + InvalidStateException &operator= ( const InvalidStateException &src ) throw () ; + + virtual const char *what() const throw () ; + virtual ~InvalidStateException() throw () ; +private: + string _what ; +}; + +/** Basic exception */ +class Exception : public exception { +public: + Exception() throw () ; + explicit Exception( const string &msg ) throw () ; + Exception( const Exception &src ) throw () ; + Exception &operator= ( const Exception &src ) throw () ; + + virtual const char *what() const throw () ; + virtual ~Exception() throw () ; +private: + string _what ; +}; + + +} // namespace +#endif + +/** \file + Header file that defines a number of exceptions used by FileCollection and + its subclasses. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/fileentry.h b/source/visualization/HepRep/include/zipios++/fileentry.h new file mode 100644 index 0000000000..542e06166b --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/fileentry.h @@ -0,0 +1,240 @@ +#ifndef FILEENTRY_H +#define FILEENTRY_H + +#include "zipios++/zipios-config.h" + +#include +#include +#include "zipios++/meta-iostreams.h" + +#include "zipios++/simplesmartptr.h" +#include "zipios++/zipios_defs.h" + +namespace zipios { + +using std::vector ; +using std::ostream ; +using std::istream ; +using std::string ; + +/** The types used with FileEntry::setMethod and + FileEntry::getMethod. The current entries are the types supported + by the zip format. The numbering also matches the numbering used + in the zip file format, ie STORED is indicated by a 0 in the + method field in a zip file and so on. */ +enum StorageMethod { STORED = 0, SHRUNK, REDUCED1, REDUCED2, + REDUCED3, REDUCED4, IMPLODED, RESERVED, + DEFLATED } ; + +class FileEntry ; + +/** \typedef typedef SimpleSmartPointer< FileEntry > EntryPointer + EntryPointer is a SimpleSmartPointer for FileEntry's. */ +typedef SimpleSmartPointer< FileEntry > EntryPointer ; + + +/** ConstEntryPointer is a SimpleSmartPointer for const FileEntry's. */ +typedef SimpleSmartPointer< const FileEntry > ConstEntryPointer ; + +/** Entries is a vector of EntryPointer's */ +typedef vector< EntryPointer > Entries ; + +/** ConstEntries is a vector of ConstEntryPointer's */ +typedef vector< EntryPointer > ConstEntries ; + + + +/** A FileEntry represents an entry in a FileCollection. The interface + is a copy of the ZipEntry interface from the java.util.zip + package. The name has been changed to FileEntry, as FileCollection + is a more general abstraction, that covers other types of file + collections than just zip files. */ +class FileEntry { +public: + + /* Default construcotr, copy constructor and copy assignment + operator are sufficient. */ + + /** Returns the comment of the entry, if it has one. Otherwise it + returns an empty string. + @return the comment associated with the entry, if there is one. + */ + virtual string getComment() const = 0 ; + /** Returns the compressed size of the entry. If the entry is not + stored in a compressed format, the uncompressed size is + returned. + @return the compressed size of the entry. If the entry is stored without + compression the uncompressed size is returned. + */ + virtual uint32 getCompressedSize() const = 0 ; + /** Returns the Crc for the entry, if it has one. FIXME: what is + returned if it doesn't have one? + @return the Crc for the entry, if it has one. + */ + virtual uint32 getCrc() const = 0 ; + /** Returns a vector of bytes of extra data that may be stored with + the entry. + @return A vector< unsigned char > of extra bytes that may potentially + be associated with an entry. + */ + virtual vector< unsigned char > getExtra() const = 0 ; + /** Returns the method used to store the entry in the FileCollection. + @return the storage method used to store the entry in the collection. + @see StorageMethod. + */ + virtual StorageMethod getMethod() const = 0 ; + /** Returns the full filename of the entry, including a path if the + entry is stored in a subfolder. + @return the filename of the entry, including path if the entry is stored + in a sub-folder. + */ + virtual string getName() const = 0 ; + /** Returns the filename of the entry. + @return Returns the filename of the entry. + */ + virtual string getFileName() const = 0 ; + /** Returns the (uncompressed) size of the entry data. + @return Returns the (uncompressed) size of the entry. + */ + virtual uint32 getSize() const = 0 ; + /** Returns the date and time of FIXME: what? + @return the date and time of the entry. + */ + virtual int getTime() const = 0 ; + /** Any method or operator that initializes a FileEntry may set a + flag, that specifies whether the read entry is valid or not. If + it isn't this method returns false. + @return true if the FileEntry has been parsed succesfully. + */ + virtual bool isValid() const = 0 ; + // virtual int hashCode() const = 0 ; + /** Returns true if the entry is a directory. A directory entry is + an entry which name ends with a separator ('/' for Unix systems, + '\' for Windows and DOS systems. + @return true if the entry is a directory. + */ + virtual bool isDirectory() const = 0 ; + + /** Sets the comment field for the FileEntry. + @param comment string with the new comment. + */ + virtual void setComment( const string &comment ) = 0 ; + /** Set the compressed size field of the entry. + @param size value to set the compressed size field of the entry to. + */ + virtual void setCompressedSize( uint32 size ) = 0 ; + /** Sets the crc field. + @param crc value to set the crc field to. + */ + virtual void setCrc( uint32 crc ) = 0 ; + /** Sets the extra field. + @param extra the extra field is set to this value. + */ + virtual void setExtra( const vector< unsigned char > &extra ) = 0 ; + /** Sets the storage method field for the entry. + @param method the method field is set to the specified value. + */ + virtual void setMethod( StorageMethod method ) = 0 ; + /** Sets the name field for the entry. + @param name the name field is set to the specified value. + */ + virtual void setName( const string &name ) = 0 ; + /** Sets the size field for the entry. + @param size the size field is set to this value. + */ + virtual void setSize( uint32 size ) = 0 ; + /** Sets the time field for the entry. + @param time the time field is set to the specified value. + */ + virtual void setTime( int time ) = 0 ; + + /** Returns a human-readable string representation of the entry. + @return a human-readable string representation of the entry. + */ + virtual string toString() const = 0 ; + + /** Create a heap allocated clone of the object this method is called for. The + caller is responsible for deallocating the clone when he is done with it. + @return A heap allocated copy of the object this method is called for. + */ + virtual FileEntry *clone() const = 0 ; + + /** FileEntry destructor. */ + virtual ~FileEntry() {} + +// protected: + class MatchName ; + class MatchFileName ; +protected: + friend class SimpleSmartPointer< FileEntry > ; + friend class SimpleSmartPointer< const FileEntry > ; + void ref() const { _refcount.ref() ; } + unsigned int unref() const { return _refcount.unref() ; } + + ReferenceCount< FileEntry > _refcount ; +}; + +/** Function object to be used with the STL find_if algorithm to + find a FileEntry in a container, which name (as obtained with + FileEntry::getName()) is identical to the name specified in the + MatchName constructor. */ +class FileEntry::MatchName { +public: + explicit MatchName( const string &name ) : _name( name ) {} + bool operator() ( const ConstEntryPointer &entry ) { + return entry->getName() == _name ; + } +private: + string _name ; +}; + +/** Function object to be used with the STL find_if algorithm to + find a FileEntry in a container, which name (as obtained with + FileEntry::getFileName()) is identical to the name specified in the + MatchName constructor. */ +class FileEntry::MatchFileName { +public: + explicit MatchFileName( const string &name ) : _name( name ) {} + bool operator() ( const ConstEntryPointer &entry ) { + return entry->getFileName() == _name ; + } +private: + string _name ; +}; + +ostream &operator<< ( ostream &os, const FileEntry &entry ) ; + +inline ostream &operator<< ( ostream &os, const ConstEntryPointer &entry ) { + os << *entry ; + return os ; +} + + + +} // namespace + +#endif + + +/** \file + Header file that defines FileEntry. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/filepath.h b/source/visualization/HepRep/include/zipios++/filepath.h new file mode 100644 index 0000000000..8ec9ad5d98 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/filepath.h @@ -0,0 +1,202 @@ +#ifndef FILEPATH_H +#define FILEPATH_H + +#include "zipios++/zipios-config.h" + +#include +#include + +namespace zipios { + +using namespace std ; + +/** FilePath represents a path to a file or directory name. FilePath has + member functions to check if the file path is a valid file system entity, + and to check what kind of file system entity it is, e.g. is it a file, a + directory, a pipe etc. +*/ +class FilePath { +public: + /** Constructor. + @param path A string representation of the path. + @param check_exists If true is specified the constructor will + check the existence and type of the path immidiately, instead of + deferring that task until it is needed. */ + FilePath( const string &path = "", bool check_exists = false ) ; + + inline FilePath &operator= ( const string &rhs ) ; + + inline operator string() const ; + + /** Concatenates FilePath objects. A file separator is inserted + if appropriate. */ + inline FilePath operator+ ( const FilePath &name ) const ; + + /** Returns filename of the FilePath object by pruning the path + off. */ + inline FilePath filename() const ; + + + /** @return true If the path is a valid file system entity. */ + inline bool exists() const ; + + /** @return true if the path is a regular file. */ + inline bool isRegular() const ; + + /** @return true if the path is a directory. */ + inline bool isDirectory() const ; + + /** @return true if the path is character special (a character + device file). */ + inline bool isCharSpecial() const ; + + /** @return true if the path is block special (a block device + file). */ + inline bool isBlockSpecial() const ; + + /** @return true if the path is a socket. */ + inline bool isSocket() const ; + + /** @return true if the path is a Fifo (a pipe). */ + inline bool isFifo() const ; + +protected: + + /** Prunes the trailing separator of a specified path. */ + inline void pruneTrailingSeparator() ; + + /** This function sets _checked to true, stats the path, to see if + it exists and to determine what type of file it is. All the query + functions check if _checked is true, and if it isn't they call + check(). This means stat'ing is deferred until it becomes + necessary. */ + void check() const ; + + static const char _separator; + + // FIXME: Should be bitfield + mutable bool _checked ; + mutable bool _exists ; + mutable bool _is_reg ; + mutable bool _is_dir ; + mutable bool _is_char ; + mutable bool _is_block ; + mutable bool _is_socket ; + mutable bool _is_fifo ; + string _path ; +}; + + +// +// Inline member functions +// + +FilePath &FilePath::operator= ( const string &rhs ) { + _path = rhs ; + pruneTrailingSeparator() ; + return *this ; +} + +void FilePath::pruneTrailingSeparator() { + if ( _path.size() > 0 ) + if ( _path[ _path.size() -1 ] == _separator ) + _path.erase( _path.size() - 1 ) ; +} + +FilePath::operator string() const { + return _path ; +} + + +FilePath FilePath::operator+ ( const FilePath &name ) const { + if ( _path.size() > 0 ) + return _path + _separator + name._path ; + else + return name._path ; +} + + +FilePath FilePath::filename() const { + string::size_type pos ; + pos = _path.find_last_of( _separator ) ; + if ( pos != string::npos ) + return _path.substr( pos + 1); + else + return _path ; +} + + +bool FilePath::exists() const { + if ( ! _checked ) + check() ; + return _exists ; +} + + +bool FilePath::isRegular() const { + if ( ! _checked ) + check() ; + return _is_reg ; +} + + +bool FilePath::isDirectory() const { + if ( ! _checked ) + check() ; + return _is_dir ; +} + + +bool FilePath::isCharSpecial() const { + if ( ! _checked ) + check() ; + return _is_char ; +} + + +bool FilePath::isBlockSpecial() const { + if ( ! _checked ) + check() ; + return _is_block ; +} + + +bool FilePath::isSocket() const { + if ( ! _checked ) + check() ; + return _is_socket ; +} + + +bool FilePath::isFifo() const { + if ( ! _checked ) + check() ; + return _is_fifo ; +} + + +} // namespace +#endif + +/** \file + Header file that defines FilePath. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/filterinputstreambuf.h b/source/visualization/HepRep/include/zipios++/filterinputstreambuf.h new file mode 100644 index 0000000000..fbe86ce1ea --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/filterinputstreambuf.h @@ -0,0 +1,66 @@ +#ifndef FILTERINPUTSTREAMBUF_H +#define FILTERINPUTSTREAMBUF_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +namespace zipios { + +using std::streambuf ; + +/** An input streambuf filter is a streambuf that filters the input it + gets from the streambuf it is attached to. FilterInputStreambuf is a base class to + derive input streambuf filters from. */ +class FilterInputStreambuf : public streambuf { +public: + /** Constructor. + @param inbuf the streambuf to use for input. + @param del_inbuf if true is specified inbuf will be deleted, when + the FilterInputStreambuf is destructed. + */ + explicit FilterInputStreambuf( streambuf *inbuf, bool del_inbuf = false ) ; + /** Destructor. */ + virtual ~FilterInputStreambuf() ; + +protected: + int _s_pos ; // Position in this streambuf - FIXME: is this used? + streambuf *_inbuf ; + bool _del_inbuf ; +private: + + /** Copy-constructor is private to prevent copying. */ + FilterInputStreambuf( const FilterInputStreambuf &src ) ; + + /** Copy-assignment operator is private to prevent copying. */ + const FilterInputStreambuf &operator= ( const FilterInputStreambuf &src ) ; +}; + + +} // namespace + + +#endif + +/** \file + Header file that defines FilterInputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/filteroutputstreambuf.h b/source/visualization/HepRep/include/zipios++/filteroutputstreambuf.h new file mode 100644 index 0000000000..32cd7a0c38 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/filteroutputstreambuf.h @@ -0,0 +1,58 @@ +#ifndef FILTEROUTPUTSTREAMBUF_H +#define FILTEROUTPUTSTREAMBUF_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +namespace zipios { + +using std::streambuf ; + +/** A FilterOutputStreambuf is a streambuf that filters the data that is written + to it before it passes it on to the output streambuf it is connected to. */ +class FilterOutputStreambuf : public streambuf { +public: + + /** Constructor. + @param outbuf the streambuf to pass the filtered data on to. + @param del_outbuf if true is specified outbuf will be deleted, when + the FilterOutputStreambuf is destructed. */ + explicit FilterOutputStreambuf( streambuf *outbuf, bool del_outbuf = false ) ; + + /** Destructor. */ + virtual ~FilterOutputStreambuf() ; + +protected: + streambuf *_outbuf ; + bool _del_outbuf ; +}; + + +} // namespace + + +#endif + +/** \file + Header file that defines FilterOutputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/gzipoutputstream.h b/source/visualization/HepRep/include/zipios++/gzipoutputstream.h new file mode 100644 index 0000000000..0a92fea524 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/gzipoutputstream.h @@ -0,0 +1,71 @@ +#ifndef GZIPOUTPUTSTREAM_H +#define GZIPOUTPUTSTREAM_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include + +#include "zipios++/gzipoutputstreambuf.h" + +namespace zipios { + +/** \anchor GZIPOutputStream_anchor + GZIPOutputStream is an ostream that writes the output to a gz file. The + interface approximates the interface of the Java GZIPOutputStream. */ +class GZIPOutputStream : public std::ostream { +public: + + /** GZIPOutputStream constructor. + @param os ostream to which the compressed zip archive is written. + */ + explicit GZIPOutputStream( std::ostream &os ) ; + + /** GZIPOutputStream constructor. + @filename filename to write the gzip archive to. */ + explicit GZIPOutputStream( const std::string &filename ) ; + + void setFilename( const string &filename ); + void setComment( const string &comment ); + + /** Calls finish and closes the stream. */ + void close() ; + + /** Finishes the stream. */ + void finish() ; + + /** Destructor. */ + virtual ~GZIPOutputStream() ; + +private: + std::ofstream *ofs ; + GZIPOutputStreambuf *ozf ; +}; + +} // namespace. + +#endif + +/** \file + Header file that defines GZIPOutputStream. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/gzipoutputstreambuf.h b/source/visualization/HepRep/include/zipios++/gzipoutputstreambuf.h new file mode 100644 index 0000000000..4143304946 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/gzipoutputstreambuf.h @@ -0,0 +1,79 @@ +#ifndef GZIPOUTPUTSTREAMBUF_H +#define GZIPOUTPUTSTREAMBUF_H + +#include "zipios++/zipios-config.h" + +#include + +#include + +#include "zipios++/deflateoutputstreambuf.h" + +namespace zipios { + +/** GZIPOutputStreambuf is a zip output streambuf filter. */ +class GZIPOutputStreambuf : public DeflateOutputStreambuf { +public: + + /** GZIPOutputStreambuf constructor. A newly constructed GZIPOutputStreambuf + is ready to accept data. + @param outbuf the streambuf to use for output. + @param del_outbuf if true is specified outbuf will be deleted, when + the GZIPOutputStreambuf is destructed. */ + explicit GZIPOutputStreambuf( streambuf *outbuf, bool del_outbuf = false ) ; + + void setFilename( const string &filename ); + void setComment( const string &comment ); + + /** Calls finish. */ + void close() ; + + /** Finishes the compression. */ + void finish() ; + + /** Destructor. */ + virtual ~GZIPOutputStreambuf() ; + +protected: + virtual int overflow( int c = EOF ) ; + virtual int sync() ; + +private: + void writeHeader(); + void writeTrailer(); + void writeInt(uint32 i); + + std::string _filename; + std::string _comment; + bool _open ; +}; + + +} // namespace + + + +#endif + +/** \file + Header file that defines ZipOutputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/inflateinputstreambuf.h b/source/visualization/HepRep/include/zipios++/inflateinputstreambuf.h new file mode 100644 index 0000000000..b0264fbc65 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/inflateinputstreambuf.h @@ -0,0 +1,89 @@ +#ifndef INFLATEINPUTSTREAMBUF_H +#define INFLATEINPUTSTREAMBUF_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include + +#include + +#include "zipios++/filterinputstreambuf.h" + +namespace zipios { + +using std::vector ; + +/** InflateInputStreambuf is an input stream filter, that inflates the input + from the attached input stream. Deflation/Inflation is a + compression/decompression method used in gzip and zip. The zlib + library is used to perform the actual inflation, this class only + wraps the functionality in an input stream filter. */ +class InflateInputStreambuf : public FilterInputStreambuf { +public: + /** InflateInputStreambuf constructor. + @param inbuf the streambuf to use for input. + @param s_pos a position to reset the inbuf to before reading. Specify + -1 to read from the current position. + @param del_inbuf if true is specified inbuf will be deleted, when + the InflateInputStreambuf is destructed. + */ + explicit InflateInputStreambuf( streambuf *inbuf, int s_pos = -1, bool del_inbuf = false ) ; + virtual ~InflateInputStreambuf() ; + + /** Resets the zlib stream and purges input and output buffers. + repositions the input streambuf at stream_position. + @param stream_position a position to reset the inbuf to before reading. Specify + -1 to read from the current position. + */ + bool reset( int stream_position = -1 ) ; +protected: + virtual int underflow() ; +private: + z_stream _zs ; + bool _zs_initialized ; + const int _invecsize ; + vector< char > _invec ; +protected: // FIXME: reconsider design? + const int _outvecsize ; + vector< char > _outvec ; + +private: + + /** Copy-constructor is private to prevent copying. */ + InflateInputStreambuf( const InflateInputStreambuf &src ) ; + + /** Copy-assignment operator is private to prevent copying. */ + const InflateInputStreambuf &operator= ( const InflateInputStreambuf &src ) ; + +}; + + +} // namespace + + + +#endif + +/** \file + Header file that defines InflateInputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/meta-iostreams.h b/source/visualization/HepRep/include/zipios++/meta-iostreams.h new file mode 100644 index 0000000000..f1866ae873 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/meta-iostreams.h @@ -0,0 +1,17 @@ +#ifndef META_IOSTREAMS_H +#define META_IOSTREAMS_H + +// Includes the different iostream libraries + +#include "zipios++/zipios-config.h" + +#include +#include + +#if defined (HAVE_STD_IOSTREAM) && defined (USE_STD_IOSTREAM) +#include +#else +#include +#endif + +#endif diff --git a/source/visualization/HepRep/include/zipios++/outputstringstream.h b/source/visualization/HepRep/include/zipios++/outputstringstream.h new file mode 100644 index 0000000000..32f6911958 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/outputstringstream.h @@ -0,0 +1,72 @@ +#ifndef OUTPUTSTRINGSTREAM_H +#define OUTPUTSTRINGSTREAM_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include + +namespace zipios { + +#if defined (HAVE_STD_IOSTREAM) && defined (USE_STD_IOSTREAM) + +typedef std::ostringstream OutputStringStream ; + +#else + +// MD added include strstream.h (not strstream, since it does not exist on Solaris) +#include + +/** OutputStringStream is typedefed to ostringstream if sstream is + part of the standard library (unless Zipios++ has been explicitly + configured not to use it). If sstream is not present + OutputStringStream is a subclass of ostrstream from + strstream.h. In this case OutputStringStream specializes the str() + method, such that the caller does not have to concern himself with + null-terminating the string and unfreezing the ostrstream. */ +class OutputStringStream : public ostrstream { +public: + + /** Specialization of ostrstream::str() that takes care of + null-terminating the string and unfreezing the ostrstream. */ + inline string str() { + *this << ends ; // null terminate ostrstream + string o_str( ostrstream::str() ) ; + freeze( 0 ) ; + return o_str ; + } +private: + // To avoid invoking such a member function in the base + // class if there is one! + string str() const ; +}; + +#endif + +} // namespace + + +#endif + +/** \file + Header file that defines OutputStringStream. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/simplesmartptr.h b/source/visualization/HepRep/include/zipios++/simplesmartptr.h new file mode 100644 index 0000000000..5c7ac835a9 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/simplesmartptr.h @@ -0,0 +1,173 @@ +#ifndef SIMPLESMARTPTR_H +#define SIMPLESMARTPTR_H + +#include "zipios++/zipios-config.h" + +namespace zipios { + +/** SimpleSmartPointer is a simple reference counting smart pointer + template. The type pointed to must keep a reference count that is + accessible through the two methods void ref() const and unsigned + int unref() const. The type must also handle the reference count + properly. The easiest way to do that is to use the ReferenceCount + template class. */ +template< class Type > +class SimpleSmartPointer { +public: + Type *operator-> () const { return _p ; } + + Type &operator* () const { return *_p ; } + + SimpleSmartPointer( Type *p = 0 ) : _p( p ) { ref() ; } + + template< class T2 > SimpleSmartPointer( const SimpleSmartPointer< T2 > &src ) + : _p( src.get() ) { ref() ; } + + SimpleSmartPointer( const SimpleSmartPointer &src ) : _p( src.get() ) { + ref() ; + } + + ~SimpleSmartPointer () { if ( unref() == 0 ) deleteIt() ; } + + template< class T2 > + SimpleSmartPointer &operator= ( const SimpleSmartPointer< T2 > &src ) { + ref( src.get() ) ; + if ( unref() == 0 ) + deleteIt() ; + _p = src.get() ; + return *this ; + } + + SimpleSmartPointer &operator= ( const SimpleSmartPointer &src ) { + ref( src.get() ) ; + if ( unref() == 0 ) + deleteIt() ; + _p = src.get() ; + return *this ; + } + + SimpleSmartPointer &operator=( Type *src ) { + _p = src ; + ref() ; + return *this ; + } + + bool operator== ( const Type *p ) const { return _p == p ; } + bool operator!= ( const Type *p ) const { return _p != p ; } + bool operator== ( const SimpleSmartPointer &sp ) const { return _p == sp.get() ; } + bool operator!= ( const SimpleSmartPointer &sp ) const { return _p != sp.get() ; } + bool operator! () const { return ! _p ; } + // This next method is inspired by iostream, and is for use with + // if ( some_smart_pointer ). + operator void*() const { return _p ? (void *)(-1) : (void *)(0) ; } + + Type *get() const { return _p ; } + + /** Returns the reference count - For debugging purposes. */ + unsigned int getReferenceCount() const { return _p->getReferenceCount(); } + + +private: + template< class T2 > + void ref( const T2 *ptr ) { if ( ptr ) ptr->ref() ; } + + void ref() const { if ( _p ) _p->ref() ; } + unsigned int unref() const { + if ( _p ) + return _p->unref(); + else + return 0 ; + } + void deleteIt() { +// if( _p ) +// cerr << "SimpleSmartPointer: Deleting object!" << endl ; + delete _p ; + } + Type *_p ; +}; + + +/** ReferenceCount is useful to ensure proper handling of the + reference count for (objects of) classes handled through a + SimpleSmartPointer. Subclassing ReferenceCount is all a class + needs to become ready for being handled by + SimpleSmartPointer. Another way is to add a ReferenceCount member + variable to a class and write two methods 'void ref() const' and + 'unsigned int unref() const' that invoke the same methods in the + ReferenceCount variable. */ +template< class Type > +class ReferenceCount { + /** SimpleSmartPointer needs to be a friend to invoke the private + ref() and unref() methods. */ + friend class SimpleSmartPointer< Type > ; + friend class SimpleSmartPointer< const Type > ; + /** Type also needs to be a friend to invoke the private ref() and + unref() methods, in case Type doesn't want to inherit + ReferenceCount and thus needs to invoke ref() and unref() + through forwarding member functions. */ + // + // Originally the following template parameter was made a friend. + // This is not allowed by the standard so comment it out: + // + // friend Type ; + // + // Initially hack things by making the necessary classes friends + // even though we don't know really which they are. This is an + // Hideous Hack. + friend class FileEntry ; + friend class Bogus ; + +public: + /** Constructor intializes count to zero. */ + ReferenceCount() : _ref_count( 0 ) {} + + /** Copy-constructor intializes count to zero. It doesn't copy it + from src. */ + ReferenceCount( const ReferenceCount &/*MD:src*/ ) : _ref_count( 0 ) {} + + /** The assignment operator doesn't copy the reference count, it + leaves it unchanged. */ + const ReferenceCount &operator= ( const ReferenceCount &src ) {} +private: + + /** Increases the reference count. */ + void ref() const { ++_ref_count ; } + + /** Decreases the reference count. */ + unsigned int unref() const { return --_ref_count ; } + + /** Returns the reference count - For debugging purposes. */ + unsigned int getReferenceCount() const { return _ref_count; } + + /** Holds the actual reference count */ + mutable unsigned short _ref_count ; +}; + + + +} // namespace + +#endif + +/** \file + Header file that defines SimpleSmartPointer and ReferenceCount. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/virtualseeker.h b/source/visualization/HepRep/include/zipios++/virtualseeker.h new file mode 100644 index 0000000000..e79a0cc054 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/virtualseeker.h @@ -0,0 +1,105 @@ +#ifndef VIRTUALSEEKER_H +#define VIRTUALSEEKER_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + + +namespace zipios { + +using std::ios ; +using std::cerr ; +using std::endl ; + +/** VirtualSeeker is a simple class that keeps track of a set of + specified 'virtual' file endings that mark a subset of a real + file. An example of its use (and its reason for existence) is to + keep track of the file endings of a Zip file embedded in another + file. */ +class VirtualSeeker { +public: + inline VirtualSeeker( int start_offset = 0, int end_offset = 0) ; + inline void setOffsets( int start_offset, int end_offset ) ; + inline void getOffsets( int &start_offset, int &end_offset ) const ; + inline int startOffset() const ; + inline int endOffset() const ; + inline void vseekg( istream &is, int offset, ios::seekdir sd ) const ; + inline int vtellg( istream &is ) const ; +private: + // start and end offsets + int _s_off, _e_off ; +}; + + + +VirtualSeeker::VirtualSeeker( int start_offset, int end_offset ) + : _s_off( start_offset ), + _e_off( end_offset ) +{} + + +void VirtualSeeker::setOffsets( int start_offset, int end_offset ) { + _s_off = start_offset ; + _e_off = end_offset ; +} + + +void VirtualSeeker::getOffsets( int &start_offset, int &end_offset ) const { + start_offset = _s_off ; + end_offset = _e_off ; +} + + +int VirtualSeeker::startOffset() const { + return _s_off ; +} + + +int VirtualSeeker::endOffset() const { + return _e_off ; +} + +void VirtualSeeker::vseekg( istream &is, int offset, ios::seekdir sd ) const { + if ( sd == ios::cur ) + is.seekg( offset, sd ) ; + else if ( sd == ios::beg ) + is.seekg( offset + _s_off, sd ) ; + else if ( sd == ios::end ) + is.seekg( offset - _e_off, sd ) ; + else + cerr << "VirtualSeekManager::seekg: error - not supposed to happen!" << endl ; +} + + +int VirtualSeeker::vtellg( istream &is ) const { + return static_cast< int >( is.tellg() ) - _s_off ; +} + + +} // namespace + +#endif + +/** \file + Header file that defines VirtualSeeker. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/zipfile.h b/source/visualization/HepRep/include/zipios++/zipfile.h new file mode 100644 index 0000000000..9d203e36a0 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipfile.h @@ -0,0 +1,105 @@ +#ifndef ZIPFILE_H +#define ZIPFILE_H + +#include "zipios++/zipios-config.h" + +#include +#include "zipios++/meta-iostreams.h" + +#include "zipios++/fcoll.h" +#include "zipios++/ziphead.h" +#include "zipios++/virtualseeker.h" + +namespace zipios { + +using std::ifstream ; + +/** \anchor zipfile_anchor + ZipFile is a FileCollection, where the files are stored + in a .zip file. */ +class ZipFile : public FileCollection { +public: + /** \anchor zipfile_openembeddedzipfile + Opens a Zip archive embedded in another file, by writing the zip + archive to the end of the file followed by the start offset of + the zip file. The offset must be written in zip-file byte-order + (little endian). The program appendzip, which is part of the + Zipios++ distribution can be used to append a Zip archive to a + file, e.g. a binary program. + @throw FColException Thrown if the specified file name is not a valid zip + archive. + @throw IOException Thrown if an I/O problem is encountered, while the directory + of the specified zip archive is being read. */ + static ZipFile openEmbeddedZipFile( const string &name ) ; + + /** Default constructor. + */ + ZipFile() {} + + /* Default Copy constructor and copy assignment operator are sufficient. */ + + /** Constructor. Opens the zip file name. If the zip "file" is + embedded in a file that contains other data, e.g. a binary + program, the offset of the zip file start and end must be + specified. + @param name The filename of the zip file to open. + @param s_off Offset relative to the start of the file, that + indicates the beginning of the zip file. + @param e_off Offset relative to the end of the file, that + indicates the end of the zip file. The offset is a positive number, + even though the offset is towards the beginning of the file. + @throw FColException Thrown if the specified file name is not a valid zip + archive. + @throw IOException Thrown if an I/O problem is encountered, while the directory + of the specified zip archive is being read. */ + explicit ZipFile( const string &name, int s_off = 0, int e_off = 0 + /* , ios::open_mode mode = ios::in | ios::binary */ ) ; + + virtual FileCollection *clone() const ; + + /** Destructor. */ + virtual ~ZipFile() ; + + virtual void close() ; + + virtual istream *getInputStream( const ConstEntryPointer &entry ) ; + virtual istream *getInputStream( const string &entry_name, + MatchPath matchpath = MATCH ) ; +private: + VirtualSeeker _vs ; + EndOfCentralDirectory _eocd ; + + bool init( istream &_zipfile ) ; + bool readCentralDirectory( istream &_zipfile ) ; + bool readEndOfCentralDirectory( istream &_zipfile ) ; + bool confirmLocalHeaders( istream &_zipfile ) ; + void setError( string error_str ) ; +}; + + +} + +#endif + +/** \file + Header file that defines ZipFile. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/ziphead.h b/source/visualization/HepRep/include/zipios++/ziphead.h new file mode 100644 index 0000000000..ea1d0d3d3b --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/ziphead.h @@ -0,0 +1,271 @@ +#ifndef ZIPHEAD_H +#define ZIPHEAD_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include +#include + +#include "zipios++/fileentry.h" +#include "zipios++/zipios_defs.h" + +namespace zipios { + +using std::streampos ; + +class ZipCDirEntry ; + +/** A concrete implementation of the abstract FileEntry base class for + ZipFile entries, specifically for representing the information + present in the local headers of file entries in a zip file. */ +class ZipLocalEntry : public FileEntry { + friend istream &operator>> ( istream &is, ZipLocalEntry &zcdh ) ; + friend ostream &operator<< ( ostream &os, const ZipLocalEntry &zlh ) ; + friend bool operator== ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) ; +public: + inline ZipLocalEntry( const string &_filename = "", + const vector< unsigned char > &_extra_field = + vector< unsigned char >() ) + : gp_bitfield( 0 ), + _valid( false ) { + setDefaultExtract() ; + setName( _filename ) ; + setExtra( _extra_field ) ; + } + + void setDefaultExtract() ; + inline ZipLocalEntry &operator=( const class ZipLocalEntry &src ) ; + virtual string getComment() const ; + virtual uint32 getCompressedSize() const ; + virtual uint32 getCrc() const ; + virtual vector< unsigned char > getExtra() const ; + virtual StorageMethod getMethod() const ; + virtual string getName() const ; + virtual string getFileName() const ; + virtual uint32 getSize() const ; + virtual int getTime() const ; + virtual bool isValid() const ; + + virtual bool isDirectory() const ; + + virtual void setComment( const string &comment ) ; + virtual void setCompressedSize( uint32 size ) ; + virtual void setCrc( uint32 crc ) ; + virtual void setExtra( const vector< unsigned char > &extra ) ; + virtual void setMethod( StorageMethod method ) ; + virtual void setName( const string &name ) ; + virtual void setSize( uint32 size ) ; + virtual void setTime( int time ) ; + + virtual string toString() const ; + + int getLocalHeaderSize() const ; + + bool trailingDataDescriptor() const ; + + virtual FileEntry *clone() const ; + + virtual ~ZipLocalEntry() {} +protected: + static const uint32 signature ; + uint16 extract_version ; + uint16 gp_bitfield ; + uint16 compress_method ; + uint16 last_mod_ftime ; + uint16 last_mod_fdate ; + uint32 crc_32 ; + uint32 compress_size ; + uint32 uncompress_size ; + uint16 filename_len ; + uint16 extra_field_len ; + + string filename ; + vector< unsigned char > extra_field ; + + bool _valid ; +}; + +/** A struct containing fields for the entries in a zip file data + descriptor, that trails the compressed data in files that were + created by streaming, ie where the zip compressor cannot seek back + to the local header and store the data. */ +struct DataDescriptor { + uint32 crc_32 ; + uint32 compress_size ; + uint32 uncompress_size ; +}; + +/** Specialization of ZipLocalEntry, that add fields for storing the + extra information, that is only present in the entries in the zip + central directory and not in the local entry headers. */ +class ZipCDirEntry : public ZipLocalEntry { +friend istream &operator>> ( istream &is, ZipCDirEntry &zcdh ) ; +friend ostream &operator<< ( ostream &os, const ZipCDirEntry &zcdh ) ; +friend bool operator== ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) ; +public: + + inline ZipCDirEntry( const string &_filename = "", + const string &_file_comment = "", + const vector< unsigned char > &_extra_field = + vector< unsigned char >() ) + : ZipLocalEntry ( _filename, _extra_field ), + disk_num_start ( 0x0 ), + intern_file_attr( 0x0 ), + extern_file_attr( 0x81B40000 ) + // FIXME: I don't understand the external mapping, simply + // copied value for a file with -rw-rw-r-- permissions + // compressed with info-zip + { + setComment( _file_comment ) ; + setDefaultWriter() ; + } + + void setDefaultWriter() ; + + inline ZipCDirEntry &operator=( const class ZipCDirEntry &src ) ; + virtual string toString() const ; + + virtual string getComment() const ; + + virtual void setComment( const string &comment ) ; + + virtual uint32 getLocalHeaderOffset() const ; + virtual void setLocalHeaderOffset( uint32 offset ) ; + + int getCDirHeaderSize() const ; + + virtual FileEntry *clone() const ; + + virtual ~ZipCDirEntry() {} +private: + static const uint32 signature ; + uint16 writer_version ; + + uint16 file_comment_len ; + uint16 disk_num_start ; + uint16 intern_file_attr ; + uint32 extern_file_attr ; + + uint32 rel_offset_loc_head ; + + string file_comment ; +}; + +/** The end of the Central directory structure. This structure is + stored in the end of the zipfile, and contains information about + the zipfile, including the position of the start of the central + directory. */ +class EndOfCentralDirectory { + friend ostream &operator<< ( ostream &os, const EndOfCentralDirectory &eocd ) ; +public: + explicit EndOfCentralDirectory( const string &_zip_comment = "", + uint16 _disk_num = 0, uint16 _cdir_disk_num = 0, + uint16 _cdir_entries = 0, + uint16 _cdir_tot_entries = 0, + uint32 _cdir_size = 0, uint32 _cdir_offset = 0 ) + : disk_num ( _disk_num ), + cdir_disk_num ( _cdir_disk_num ), + cdir_entries ( _cdir_entries ), + cdir_tot_entries ( _cdir_tot_entries ), + cdir_size ( _cdir_size ), + cdir_offset ( _cdir_offset ), + zip_comment_len ( _zip_comment.size() ), + zip_comment ( _zip_comment ) {} + + uint32 offset() const { return cdir_offset ; } + uint16 totalCount() const { return cdir_tot_entries ; } + void setCDirSize( uint32 size ) { cdir_size = size ; } + void setOffset( uint32 offset ) { cdir_offset = offset ; } + + void setTotalCount( uint16 c ) { cdir_entries = c ; cdir_tot_entries = c ; } + int eocdOffSetFromEnd() const { return eocd_offset_from_end ; } + bool read( vector &buf, int pos ) ; +private: + static const uint32 signature; + uint16 disk_num ; + uint16 cdir_disk_num ; + uint16 cdir_entries ; + uint16 cdir_tot_entries ; + uint32 cdir_size ; + uint32 cdir_offset ; + uint16 zip_comment_len ; + + streampos eocd_offset_from_end ; // Not a Zip defined field + string zip_comment; + bool checkSignature( unsigned char *buf ) const ; + inline bool checkSignature( uint32 sig ) const ; +}; + + +bool operator== ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) ; +inline bool operator== ( const ZipCDirEntry &ze, const ZipLocalEntry &zlh ) { + return zlh == ze ; +} +inline bool operator!= ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) { + return ! ( zlh == ze ) ; +} +inline bool operator!= ( const ZipCDirEntry &ze, const ZipLocalEntry &zlh ) { + return ! ( zlh == ze ) ; +} + +// Inline member functions + +ZipCDirEntry &ZipCDirEntry::operator=( const class ZipCDirEntry &src ) { + writer_version = src.writer_version ; + extract_version = src.extract_version ; + gp_bitfield = src.gp_bitfield ; + compress_method = src.compress_method ; + last_mod_ftime = src.last_mod_ftime ; + last_mod_fdate = src.last_mod_fdate ; + crc_32 = src.crc_32 ; + compress_size = src.compress_size ; + uncompress_size = src.uncompress_size ; + filename_len = src.filename_len ; + extra_field_len = src.extra_field_len ; + file_comment_len = src.file_comment_len ; + disk_num_start = src.disk_num_start ; + intern_file_attr = src.intern_file_attr ; + extern_file_attr = src.extern_file_attr ; + rel_offset_loc_head = src.rel_offset_loc_head ; + + filename = src.filename ; + extra_field = src.extra_field ; + file_comment = src.file_comment ; + + return *this ; +} + +bool EndOfCentralDirectory::checkSignature ( uint32 sig ) const { + return signature == sig ; +} + + +} // namespace + +#endif + + +/** \file + Header file containing classes and functions for reading the central + directory and local header fields in a zip archive. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/zipheadio.h b/source/visualization/HepRep/include/zipios++/zipheadio.h new file mode 100644 index 0000000000..101443a1ad --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipheadio.h @@ -0,0 +1,192 @@ +#ifndef ZIPHEADIO_H +#define ZIPHEADIO_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include +#include + +#include "zipios++/ziphead.h" +#include "zipios++/zipios_defs.h" + +namespace zipios { + +// byte order conversion functions. +// ztohs (zip-to-host-short) +#ifdef MY_BIG_ENDIAN + +inline uint16 ztohs ( unsigned char *buf ) { + uint16 out ; +// *( reinterpret_cast( &out ) ) = *( buf + 1 ); +// *( reinterpret_cast( &out ) + 1 ) = *( buf ); + out = ( static_cast< uint16 >( buf[ 0 ] ) << 8 ) + + ( static_cast< uint16 >( buf[ 1 ] ) ) ; + + return out; +} + +// ztohl (zip-to-host-long) +inline uint32 ztohl ( unsigned char *buf ) { + uint32 out; + out = ( static_cast< uint32 >( buf[ 0 ] ) << 24 ) + + ( static_cast< uint32 >( buf[ 1 ] ) << 16 ) + + ( static_cast< uint32 >( buf[ 2 ] ) << 8 ) + + ( static_cast< uint32 >( buf[ 3 ] ) ) ; + + return out; +} + +#else + +inline uint16 ztohs ( unsigned char *buf ) { + uint16 out ; + out = ( static_cast< uint16 >( buf[ 1 ] ) << 8 ) + + ( static_cast< uint16 >( buf[ 0 ] ) ) ; + return out; +} + +// ztohl (zip-to-host-long) +inline uint32 ztohl ( unsigned char *buf ) { + uint32 out; + out = ( static_cast< uint32 >( buf[ 3 ] ) << 24 ) + + ( static_cast< uint32 >( buf[ 2 ] ) << 16 ) + + ( static_cast< uint32 >( buf[ 1 ] ) << 8 ) + + ( static_cast< uint32 >( buf[ 0 ] ) ) ; +// cerr << "buf : " << static_cast< int >( buf[ 0 ] ) ; +// cerr << " " << static_cast< int >( buf[ 1 ] ) ; +// cerr << " " << static_cast< int >( buf[ 2 ] ) ; +// cerr << " " << static_cast< int >( buf[ 3 ] ) << endl ; +// cerr << "uint32 " << out << endl ; + return out; +} + + +#endif + +// htozl (host-to-zip-long) +inline uint32 htozl ( unsigned char *buf ) { + return ztohl( buf ) ; +} + +// htozs (host-to-zip-short) +inline uint16 htozs ( unsigned char *buf ) { + return ztohs( buf ) ; +} + + +inline uint32 readUint32 ( istream &is ) { + static const int buf_len = sizeof ( uint32 ) ; + unsigned char buf [ buf_len ] ; + int rsf = 0 ; + while ( rsf < buf_len ) { + is.read ( reinterpret_cast< char * >( buf ) + rsf, buf_len - rsf ) ; + rsf += is.gcount () ; + } + return ztohl ( buf ) ; +} + +inline void writeUint32 ( uint32 host_val, ostream &os ) { + uint32 val = htozl( reinterpret_cast< unsigned char * >( &host_val ) ) ; + os.write( reinterpret_cast< char * >( &val ), sizeof( uint32 ) ) ; +} + +inline uint16 readUint16 ( istream &is ) { + static const int buf_len = sizeof ( uint16 ) ; + unsigned char buf [ buf_len ] ; + int rsf = 0 ; + while ( rsf < buf_len ) { + is.read ( reinterpret_cast< char * >( buf ) + rsf, buf_len - rsf ) ; + rsf += is.gcount () ; + } + return ztohs ( buf ) ; +} + +inline void writeUint16 ( uint16 host_val, ostream &os ) { + uint16 val = htozl( reinterpret_cast< unsigned char * >( &host_val ) ) ; + os.write( reinterpret_cast< char * >( &val ), sizeof( uint16 ) ) ; +} + +inline void readByteSeq ( istream &is, string &con, int count ) { + char *buf = new char [ count + 1 ] ; + int rsf = 0 ; + while ( rsf < count && is ) { + is.read ( buf + rsf, count - rsf ) ; + rsf += is.gcount() ; + } + buf [ count ] = '\0' ; + + con = buf ; + delete [] buf ; +} + +inline void writeByteSeq( ostream &os, const string &con ) { + os << con ; +} + +inline void readByteSeq ( istream &is, unsigned char *buf, int count ) { + int rsf = 0 ; + + while ( rsf < count && is ) { + is.read ( reinterpret_cast< char * >( buf ) + rsf, count - rsf ) ; + rsf += is.gcount() ; + } +} + +inline void writeByteSeq ( ostream &os, const unsigned char *buf, int count ) { + os.rdbuf()->sputn( reinterpret_cast< const char * >( buf ), count ) ; +} + +inline void readByteSeq ( istream &is, vector < unsigned char > &vec, int count ) { + unsigned char *buf = new unsigned char [ count ] ; + int rsf = 0 ; + while ( rsf < count && is ) { + is.read ( reinterpret_cast< char * >( buf ) + rsf, count - rsf ) ; + rsf += is.gcount() ; + } + + vec.insert ( vec.end (), buf, buf + count ) ; + delete [] buf ; +} + +inline void writeByteSeq ( ostream &os, const vector < unsigned char > &vec ) { + os.rdbuf()->sputn( reinterpret_cast< const char * >( &( vec[ 0 ] ) ), vec.size() ) ; +} + +istream& operator>> ( istream &is, ZipLocalEntry &zlh ) ; +istream& operator>> ( istream &is, DataDescriptor &dd ) ; +istream& operator>> ( istream &is, ZipCDirEntry &zcdh ) ; +// istream& operator>> ( istream &is, EndOfCentralDirectory &eocd ) ; + +ostream &operator<< ( ostream &os, const ZipLocalEntry &zlh ) ; +ostream &operator<< ( ostream &os, const ZipCDirEntry &zcdh ) ; +ostream &operator<< ( ostream &os, const EndOfCentralDirectory &eocd ) ; + + +} // namespace + +#endif + +/** \file + Header file that defines I/O functions for the header structures + defined in ziphead.h. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/zipinputstream.h b/source/visualization/HepRep/include/zipios++/zipinputstream.h new file mode 100644 index 0000000000..2849cfc035 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipinputstream.h @@ -0,0 +1,91 @@ +#ifndef ZIPINPUTSTREAM_H +#define ZIPINPUTSTREAM_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include + +#include "zipios++/ziphead.h" +#include "zipios++/zipinputstreambuf.h" + +namespace zipios { + +using std::ifstream ; + +/** \anchor ZipInputStream_anchor + ZipInputStream is an istream that gets it's input from a zip file. The + interface approximates the interface of the Java + ZipInputStream. */ +class ZipInputStream : public istream { +public: + + /** ZipInputStream constructor. + @param is istream from which the compressed zip archive can be read. + @param pos position to reposition the istream to before reading. */ + explicit ZipInputStream( istream &is, streampos pos = 0 ) ; + + /** ZipInputStream constructor. + @filename filename of a valid zip file. + @param pos position to reposition the istream to before reading. */ + explicit ZipInputStream( const string &filename, streampos pos = 0 ) ; + + int available() ; + /** Closes the current entry, and positions the stream read pointer at + the beginning of the next entry (if there is one). */ + void closeEntry() ; + + /** Closes the istream. */ + void close() ; + +// ZipLocalEntry *createZipCDirEntry( const string &name ) ; + + /** \anchor ZipInputStream_getnextentry_anchor + Opens the next entry in the zip archive and returns a const pointer to a + FileEntry object for the entry. + @return a const FileEntry * containing information about the (now) current + entry. + */ + ConstEntryPointer getNextEntry() ; + + /** Destructor. */ + virtual ~ZipInputStream() ; + +private: + ifstream *ifs ; + ZipInputStreambuf *izf ; + + /** Copy-constructor is private to prevent copying. */ + ZipInputStream( const ZipInputStream &src ) ; + + /** Copy-assignment operator is private to prevent copying. */ + const ZipInputStream &operator= ( const ZipInputStream &src ) ; + +}; + +} // namespace. + +#endif + +/** \file + Header file that defines ZipInputStream. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/zipinputstreambuf.h b/source/visualization/HepRep/include/zipios++/zipinputstreambuf.h new file mode 100644 index 0000000000..79d314b6d5 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipinputstreambuf.h @@ -0,0 +1,89 @@ +#ifndef ZIPINPUTSTREAMBUF_H +#define ZIPINPUTSTREAMBUF_H + +#include "zipios++/zipios-config.h" + +#include + +#include + +#include "zipios++/fcoll.h" +#include "zipios++/inflateinputstreambuf.h" +#include "zipios++/ziphead.h" + +namespace zipios { + +/** ZipInputStreambuf is a zip input streambuf filter. + */ +class ZipInputStreambuf : public InflateInputStreambuf { +public: + /** ZipInputStreambuf constructor. + @param inbuf the streambuf to use for input. + @param s_pos a position to reset the inbuf to before reading. Specify + -1 to read from the current position. + @param del_inbuf if true is specified inbuf will be deleted, when + the ZipInputStreambuf is destructed. + */ + explicit ZipInputStreambuf( streambuf *inbuf, int s_pos = -1, bool del_inbuf = false ) ; + + /** Closes the current entry, and positions the stream read pointer at + the beginning of the next entry (if there is one). */ + void closeEntry() ; + /** Closes the streambuf. */ + void close() ; + + /** Opens the next entry in the zip archive and returns a const pointer to a + FileEntry object for the entry. + @return a const FileEntry * containing information about the (now) current + entry. + */ + ConstEntryPointer getNextEntry() ; + + /** Destructor. */ + virtual ~ZipInputStreambuf() ; +protected: + virtual int underflow() ; +private: + bool _open_entry ; + ZipLocalEntry _curr_entry ; + int _data_start ; // Don't forget entry header has a length too. + int _remain ; // For STORED entry only. the number of bytes that + // hasn't been put in the _outvec yet. + + /** Copy-constructor is private to prevent copying. */ + ZipInputStreambuf( const ZipInputStreambuf &src ) ; + + /** Copy-assignment operator is private to prevent copying. */ + const ZipInputStreambuf &operator= ( const ZipInputStreambuf &src ) ; + +}; + + +} // namespace + + + +#endif + +/** \file + Header file that defines ZipInputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/zipios-config.h b/source/visualization/HepRep/include/zipios++/zipios-config.h new file mode 100644 index 0000000000..86ed20cd45 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipios-config.h @@ -0,0 +1,62 @@ +// MD: defined for our purposes + +/* Define to empty if the keyword does not work. */ +/* #undef const */ + +/* Define as __inline if that's what the C compiler calls it. */ +/* #undef inline */ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if the std compliant iostream library should be used (if present) */ +#define USE_STD_IOSTREAM 1 + +/* Define if zlib has zError */ +#define HAVE_ZERROR 1 + +/* Define if you have the header file. */ +//#define HAVE_UNISTD_H 1 + +/* Name of package */ +#define PACKAGE "zipios++" + +/* Version number of package */ +#define VERSION "0.1.5" + +/* define if the compiler implements namespaces */ +#define HAVE_NAMESPACES 1 + +/* define if the compiler supports Standard Template Library */ +#define HAVE_STL 1 + +/* define if the compiler supports ISO C++ standard library */ +#define HAVE_STD 1 + +/* define if the compiler has std compliant iostream library */ +// MD defined for Geant4, Solaris and Linux 2.95.2 do not have this... +#if defined (WIN32) || __GNUC__ > 2 +#define HAVE_STD_IOSTREAM 1 +#endif + +//#undef S_ISSOCK +//#define S_ISSOCK(mode) 0 + +#ifdef WIN32 +#ifndef GNU_GCC +# ifdef _MSC_VER +// Disable class-browser warning about truncated template-names +# pragma warning( disable : 4786 ) +# endif //_MSC_VER + +// Needed for FilePath +# define S_ISREG(mode) (((mode) & _S_IFREG) == _S_IFREG) +# define S_ISDIR(mode) (((mode) & _S_IFDIR) == _S_IFDIR) +# define S_ISCHR(mode) (((mode) & _S_IFCHR) == _S_IFCHR) +# define S_ISBLK(mode) 0 +# define S_ISSOCK(mode) 0 +# define S_ISFIFO(mode) (((mode) & _S_IFIFO) == _S_IFIFO) +#endif +#endif + +#include diff --git a/source/visualization/HepRep/include/zipios++/zipios_common.h b/source/visualization/HepRep/include/zipios++/zipios_common.h new file mode 100644 index 0000000000..3c4f7d4e5f --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipios_common.h @@ -0,0 +1,52 @@ +#ifndef ZIPIOS_COMMON_H +#define ZIPIOS_COMMON_H + +#include "zipios++/zipios-config.h" + +#include + +namespace zipios { + +using std::vector; + +static const char separator = '/' ; + +template< class Type > +void operator += ( vector< Type > &v1, const vector< Type > &v2 ) { + typename std::vector::const_iterator cit ; + for ( cit = v2.begin() ; cit != v2.end() ; ++cit ) + v1.push_back( *cit ) ; +} + +template< class T > +inline const T& min( const T& a, const T& b ) { + return b < a ? b : a ; +} + + +} // namespace + +#endif + +/** \file + Header file containing miscellaneous small functions. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/zipios_defs.h b/source/visualization/HepRep/include/zipios++/zipios_defs.h new file mode 100644 index 0000000000..41398f5218 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipios_defs.h @@ -0,0 +1,34 @@ +#ifndef ZIPIOS_DEFS_H +#define ZIPIOS_DEFS_H + +namespace zipios { + +typedef unsigned short uint16 ; +typedef unsigned long uint32 ; + +} // namespace + +#endif + +/** \file + Header file that defines some simple data types. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/zipoutputstream.h b/source/visualization/HepRep/include/zipios++/zipoutputstream.h new file mode 100644 index 0000000000..e9abde5575 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipoutputstream.h @@ -0,0 +1,101 @@ +#ifndef ZIPOUTPUTSTREAM_H +#define ZIPOUTPUTSTREAM_H + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include + +#include "zipios++/ziphead.h" +#include "zipios++/zipoutputstreambuf.h" + +namespace zipios { + +/** \anchor ZipOutputStream_anchor + ZipOutputStream is an ostream that writes the output to a zip file. The + interface approximates the interface of the Java ZipOutputStream. */ +class ZipOutputStream : public std::ostream { +public: + + /** ZipOutputStream constructor. + @param os ostream to which the compressed zip archive is written. + @param pos position to reposition the ostream to before reading. */ + explicit ZipOutputStream( std::ostream &os ) ; + + /** ZipOutputStream constructor. + @filename filename to write the zip archive to. */ + explicit ZipOutputStream( const std::string &filename ) ; + + /** Closes the current entry updates its header with the relevant + size information and positions the stream write pointer for the + next entry header. Puts the stream in EOF state. Call + putNextEntry() to clear the EOF stream state flag. */ + void closeEntry() ; + + /** Calls finish and if the ZipOutputStream was created with a + filename as a parameter that file is closed as well. If the + ZipOutputStream was created with an ostream as its first + parameter nothing but the call to finish happens. */ + void close() ; + + /** Closes the current entry (if one is open), then writes the Zip + Central Directory Structure closing the ZipOutputStream. The + output stream that the zip archive is being written to is not + closed. */ + void finish() ; + + /** \anchor ZipOutputStream_putnextentry_anchor + Begins writing the next entry. + */ + void putNextEntry( const ZipCDirEntry &entry ) ; + + /** \anchor ZipOutputStream_putnextentry2_anchor + Begins writing the next entry. + */ + void putNextEntry(const std::string& entryName); + + /** Sets the global comment for the Zip archive. */ + void setComment( const std::string& comment ) ; + + /** Sets the compression level to be used for subsequent entries. */ + void setLevel( int level ) ; + + /** Sets the compression method to be used. only STORED and DEFLATED are + supported. */ + void setMethod( StorageMethod method ) ; + + /** Destructor. */ + virtual ~ZipOutputStream() ; + +private: + std::ofstream *ofs ; + ZipOutputStreambuf *ozf ; +}; + +} // namespace. + +#endif + +/** \file + Header file that defines ZipOutputStream. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zipios++/zipoutputstreambuf.h b/source/visualization/HepRep/include/zipios++/zipoutputstreambuf.h new file mode 100644 index 0000000000..e5685f7048 --- /dev/null +++ b/source/visualization/HepRep/include/zipios++/zipoutputstreambuf.h @@ -0,0 +1,116 @@ +#ifndef ZIPOUTPUTSTREAMBUF_H +#define ZIPOUTPUTSTREAMBUF_H + +#include "zipios++/zipios-config.h" + +#include + +#include + +#include "zipios++/fcoll.h" +#include "zipios++/deflateoutputstreambuf.h" +#include "zipios++/ziphead.h" + +namespace zipios { + +/** ZipOutputStreambuf is a zip input streambuf filter. */ +class ZipOutputStreambuf : public DeflateOutputStreambuf { +public: + + enum CompressionLevels { NO_COMPRESSION = Z_NO_COMPRESSION, + BEST_SPEED = Z_BEST_SPEED, + BEST_COMPRESSION = Z_BEST_COMPRESSION, + DEFAULT_COMPRESSION = Z_DEFAULT_COMPRESSION } ; + + /** ZipOutputStreambuf constructor. A newly constructed ZipOutputStreambuf + is not ready to accept data, putNextEntry() must be invoked first. + @param outbuf the streambuf to use for input. + @param del_outbuf if true is specified outbuf will be deleted, when + the ZipOutputStreambuf is destructed. */ + explicit ZipOutputStreambuf( streambuf *outbuf, bool del_outbuf = false ) ; + + /** Closes the current entry, and positions the stream read pointer at + the beginning of the next entry (if there is one). */ + void closeEntry() ; + + /** Calls finish. */ + void close() ; + + /** Closes the current entry (if one is open), then writes the Zip + Central Directory Structure closing the ZipOutputStream. The + output stream that the zip archive is being written to is not + closed. */ + void finish() ; + + /** Begins writing the next entry. + Opens the next entry in the zip archive and returns a const pointer to a + FileEntry object for the entry. + @return a const FileEntry * containing information about the (now) current + entry. */ + void putNextEntry( const ZipCDirEntry &entry ) ; + + /** Sets the global comment for the Zip archive. */ + void setComment( const string &comment ) ; + + /** Sets the compression level to be used for subsequent entries. */ + void setLevel( int level ) ; + + /** Sets the compression method to be used. only STORED and DEFLATED are + supported. */ + void setMethod( StorageMethod method ) ; + + /** Destructor. */ + virtual ~ZipOutputStreambuf() ; + +protected: + virtual int overflow( int c = EOF ) ; + virtual int sync() ; + + void setEntryClosedState() ; + void updateEntryHeaderInfo() ; + + // Should/could be moved to zipheadio.h ?! + static void writeCentralDirectory( const vector< ZipCDirEntry > &entries, + EndOfCentralDirectory eocd, + ostream &os ) ; + + + +private: + string _zip_comment ; + vector< ZipCDirEntry > _entries ; + bool _open_entry ; + bool _open ; + StorageMethod _method ; + int _level ; +}; + + +} // namespace + + + +#endif + +/** \file + Header file that defines ZipOutputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/include/zlib/ZLIB-README b/source/visualization/HepRep/include/zlib/ZLIB-README new file mode 100644 index 0000000000..a03c694c55 --- /dev/null +++ b/source/visualization/HepRep/include/zlib/ZLIB-README @@ -0,0 +1,154 @@ +Mark Donszelmann - 07/07/2003 +============================= +Functions were modified to compile with C++ compiler. +Files renamed to .cc +===================================================== + +zlib 1.1.3 is a general purpose data compression library. All the code +is thread safe. The data format used by the zlib library +is described by RFCs (Request for Comments) 1950 to 1952 in the files +ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate +format) and rfc1952.txt (gzip format). These documents are also available in +other formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html + +All functions of the compression library are documented in the file zlib.h +(volunteer to write man pages welcome, contact jloup@gzip.org). A usage +example of the library is given in the file example.c which also tests that +the library is working correctly. Another example is given in the file +minigzip.c. The compression library itself is composed of all source files +except example.c and minigzip.c. + +To compile all files and run the test program, follow the instructions +given at the top of Makefile. In short "make test; make install" +should work for most machines. For Unix: "configure; make test; make install" +For MSDOS, use one of the special makefiles such as Makefile.msc. +For VMS, use Make_vms.com or descrip.mms. + +Questions about zlib should be sent to , or to +Gilles Vollant for the Windows DLL version. +The zlib home page is http://www.cdrom.com/pub/infozip/zlib/ +The official zlib ftp site is ftp://ftp.cdrom.com/pub/infozip/zlib/ +Before reporting a problem, please check those sites to verify that +you have the latest version of zlib; otherwise get the latest version and +check whether the problem still exists or not. + +Mark Nelson wrote an article about zlib for the Jan. 1997 +issue of Dr. Dobb's Journal; a copy of the article is available in +http://web2.airmail.net/markn/articles/zlibtool/zlibtool.htm + +The changes made in version 1.1.3 are documented in the file ChangeLog. +The main changes since 1.1.2 are: + +- fix "an inflate input buffer bug that shows up on rare but persistent + occasions" (Mark) +- fix gzread and gztell for concatenated .gz files (Didier Le Botlan) +- fix gzseek(..., SEEK_SET) in write mode +- fix crc check after a gzeek (Frank Faubert) +- fix miniunzip when the last entry in a zip file is itself a zip file + (J Lillge) +- add contrib/asm586 and contrib/asm686 (Brian Raiter) + See http://www.muppetlabs.com/~breadbox/software/assembly.html +- add support for Delphi 3 in contrib/delphi (Bob Dellaca) +- add support for C++Builder 3 and Delphi 3 in contrib/delphi2 (Davide Moretti) +- do not exit prematurely in untgz if 0 at start of block (Magnus Holmgren) +- use macro EXTERN instead of extern to support DLL for BeOS (Sander Stoks) +- added a FAQ file + +plus many changes for portability. + +Unsupported third party contributions are provided in directory "contrib". + +A Java implementation of zlib is available in the Java Development Kit 1.1 +http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html +See the zlib home page http://www.cdrom.com/pub/infozip/zlib/ for details. + +A Perl interface to zlib written by Paul Marquess +is in the CPAN (Comprehensive Perl Archive Network) sites, such as: +ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib* + +A Python interface to zlib written by A.M. Kuchling +is available in Python 1.5 and later versions, see +http://www.python.org/doc/lib/module-zlib.html + +A zlib binding for TCL written by Andreas Kupries +is availlable at http://www.westend.com/~kupries/doc/trf/man/man.html + +An experimental package to read and write files in .zip format, +written on top of zlib by Gilles Vollant , is +available at http://www.winimage.com/zLibDll/unzip.html +and also in the contrib/minizip directory of zlib. + + +Notes for some targets: + +- To build a Windows DLL version, include in a DLL project zlib.def, zlib.rc + and all .c files except example.c and minigzip.c; compile with -DZLIB_DLL + The zlib DLL support was initially done by Alessandro Iacopetti and is + now maintained by Gilles Vollant . Check the zlib DLL + home page at http://www.winimage.com/zLibDll + + From Visual Basic, you can call the DLL functions which do not take + a structure as argument: compress, uncompress and all gz* functions. + See contrib/visual-basic.txt for more information, or get + http://www.tcfb.com/dowseware/cmp-z-it.zip + +- For 64-bit Irix, deflate.c must be compiled without any optimization. + With -O, one libpng test fails. The test works in 32 bit mode (with + the -n32 compiler flag). The compiler bug has been reported to SGI. + +- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 + it works when compiled with cc. + +- on Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 + is necessary to get gzprintf working correctly. This is done by configure. + +- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works + with other compilers. Use "make test" to check your compiler. + +- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers. + +- For Turbo C the small model is supported only with reduced performance to + avoid any far allocation; it was tested with -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3 + +- For PalmOs, see http://www.cs.uit.no/~perm/PASTA/pilot/software.html + Per Harald Myrvang + + +Acknowledgments: + + The deflate format used by zlib was defined by Phil Katz. The deflate + and zlib specifications were written by L. Peter Deutsch. Thanks to all the + people who reported problems and suggested various improvements in zlib; + they are too numerous to cite here. + +Copyright notice: + + (C) 1995-1998 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +If you use the zlib library in a product, we would appreciate *not* +receiving lengthy legal documents to sign. The sources are provided +for free but without warranty of any kind. The library has been +entirely written by Jean-loup Gailly and Mark Adler; it does not +include third-party code. + +If you redistribute modified sources, we would appreciate that you include +in the file ChangeLog history information documenting your changes. diff --git a/source/visualization/HepRep/include/zlib/deflate.h b/source/visualization/HepRep/include/zlib/deflate.h new file mode 100644 index 0000000000..a051732ec7 --- /dev/null +++ b/source/visualization/HepRep/include/zlib/deflate.h @@ -0,0 +1,318 @@ +/* deflate.h -- internal compression state + * Copyright (C) 1995-1998 Jean-loup Gailly + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id: deflate.h,v 1.1 2003/07/11 06:01:41 duns Exp $ */ + +#ifndef _DEFLATE_H +#define _DEFLATE_H + +#include "zutil.h" + +/* =========================================================================== + * Internal compression state. + */ + +#define LENGTH_CODES 29 +/* number of length codes, not counting the special END_BLOCK code */ + +#define LITERALS 256 +/* number of literal bytes 0..255 */ + +#define L_CODES (LITERALS+1+LENGTH_CODES) +/* number of Literal or Length codes, including the END_BLOCK code */ + +#define D_CODES 30 +/* number of distance codes */ + +#define BL_CODES 19 +/* number of codes used to transfer the bit lengths */ + +#define HEAP_SIZE (2*L_CODES+1) +/* maximum heap size */ + +#define MAX_BITS 15 +/* All codes must not exceed MAX_BITS bits */ + +#define INIT_STATE 42 +#define BUSY_STATE 113 +#define FINISH_STATE 666 +/* Stream status */ + + +/* Data structure describing a single value and its code string. */ +typedef struct ct_data_s { + union { + ush freq; /* frequency count */ + ush code; /* bit string */ + } fc; + union { + ush dad; /* father node in Huffman tree */ + ush len; /* length of bit string */ + } dl; +} FAR ct_data; + +#define Freq fc.freq +#define Code fc.code +#define Dad dl.dad +#define Len dl.len + +typedef struct static_tree_desc_s static_tree_desc; + +typedef struct tree_desc_s { + ct_data *dyn_tree; /* the dynamic tree */ + int max_code; /* largest code with non zero frequency */ + static_tree_desc *stat_desc; /* the corresponding static tree */ +} FAR tree_desc; + +typedef ush Pos; +typedef Pos FAR Posf; +typedef unsigned IPos; + +/* A Pos is an index in the character window. We use short instead of int to + * save space in the various tables. IPos is used only for parameter passing. + */ + +typedef struct internal_state { + z_streamp strm; /* pointer back to this zlib stream */ + int status; /* as the name implies */ + Bytef *pending_buf; /* output still pending */ + ulg pending_buf_size; /* size of pending_buf */ + Bytef *pending_out; /* next pending byte to output to the stream */ + int pending; /* nb of bytes in the pending buffer */ + int noheader; /* suppress zlib header and adler32 */ + Byte data_type; /* UNKNOWN, BINARY or ASCII */ + Byte method; /* STORED (for zip only) or DEFLATED */ + int last_flush; /* value of flush param for previous deflate call */ + + /* used by deflate.c: */ + + uInt w_size; /* LZ77 window size (32K by default) */ + uInt w_bits; /* log2(w_size) (8..16) */ + uInt w_mask; /* w_size - 1 */ + + Bytef *window; + /* Sliding window. Input bytes are read into the second half of the window, + * and move to the first half later to keep a dictionary of at least wSize + * bytes. With this organization, matches are limited to a distance of + * wSize-MAX_MATCH bytes, but this ensures that IO is always + * performed with a length multiple of the block size. Also, it limits + * the window size to 64K, which is quite useful on MSDOS. + * To do: use the user input buffer as sliding window. + */ + + ulg window_size; + /* Actual size of window: 2*wSize, except when the user input buffer + * is directly used as sliding window. + */ + + Posf *prev; + /* Link to older string with same hash index. To limit the size of this + * array to 64K, this link is maintained only for the last 32K strings. + * An index in this array is thus a window index modulo 32K. + */ + + Posf *head; /* Heads of the hash chains or NIL. */ + + uInt ins_h; /* hash index of string to be inserted */ + uInt hash_size; /* number of elements in hash table */ + uInt hash_bits; /* log2(hash_size) */ + uInt hash_mask; /* hash_size-1 */ + + uInt hash_shift; + /* Number of bits by which ins_h must be shifted at each input + * step. It must be such that after MIN_MATCH steps, the oldest + * byte no longer takes part in the hash key, that is: + * hash_shift * MIN_MATCH >= hash_bits + */ + + long block_start; + /* Window position at the beginning of the current output block. Gets + * negative when the window is moved backwards. + */ + + uInt match_length; /* length of best match */ + IPos prev_match; /* previous match */ + int match_available; /* set if previous match exists */ + uInt strstart; /* start of string to insert */ + uInt match_start; /* start of matching string */ + uInt lookahead; /* number of valid bytes ahead in window */ + + uInt prev_length; + /* Length of the best match at previous step. Matches not greater than this + * are discarded. This is used in the lazy match evaluation. + */ + + uInt max_chain_length; + /* To speed up deflation, hash chains are never searched beyond this + * length. A higher limit improves compression ratio but degrades the + * speed. + */ + + uInt max_lazy_match; + /* Attempt to find a better match only when the current match is strictly + * smaller than this value. This mechanism is used only for compression + * levels >= 4. + */ +# define max_insert_length max_lazy_match + /* Insert new strings in the hash table only if the match length is not + * greater than this length. This saves time but degrades compression. + * max_insert_length is used only for compression levels <= 3. + */ + + int level; /* compression level (1..9) */ + int strategy; /* favor or force Huffman coding*/ + + uInt good_match; + /* Use a faster search when the previous match is longer than this */ + + int nice_match; /* Stop searching when current match exceeds this */ + + /* used by trees.c: */ + /* Didn't use ct_data typedef below to supress compiler warning */ + struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ + struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ + struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ + + struct tree_desc_s l_desc; /* desc. for literal tree */ + struct tree_desc_s d_desc; /* desc. for distance tree */ + struct tree_desc_s bl_desc; /* desc. for bit length tree */ + + ush bl_count[MAX_BITS+1]; + /* number of codes at each bit length for an optimal tree */ + + int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ + int heap_len; /* number of elements in the heap */ + int heap_max; /* element of largest frequency */ + /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. + * The same heap array is used to build all trees. + */ + + uch depth[2*L_CODES+1]; + /* Depth of each subtree used as tie breaker for trees of equal frequency + */ + + uchf *l_buf; /* buffer for literals or lengths */ + + uInt lit_bufsize; + /* Size of match buffer for literals/lengths. There are 4 reasons for + * limiting lit_bufsize to 64K: + * - frequencies can be kept in 16 bit counters + * - if compression is not successful for the first block, all input + * data is still in the window so we can still emit a stored block even + * when input comes from standard input. (This can also be done for + * all blocks if lit_bufsize is not greater than 32K.) + * - if compression is not successful for a file smaller than 64K, we can + * even emit a stored file instead of a stored block (saving 5 bytes). + * This is applicable only for zip (not gzip or zlib). + * - creating new Huffman trees less frequently may not provide fast + * adaptation to changes in the input data statistics. (Take for + * example a binary file with poorly compressible code followed by + * a highly compressible string table.) Smaller buffer sizes give + * fast adaptation but have of course the overhead of transmitting + * trees more frequently. + * - I can't count above 4 + */ + + uInt last_lit; /* running index in l_buf */ + + ushf *d_buf; + /* Buffer for distances. To simplify the code, d_buf and l_buf have + * the same number of elements. To use different lengths, an extra flag + * array would be necessary. + */ + + ulg opt_len; /* bit length of current block with optimal trees */ + ulg static_len; /* bit length of current block with static trees */ + uInt matches; /* number of string matches in current block */ + int last_eob_len; /* bit length of EOB code for last block */ + +#ifdef DEBUG + ulg compressed_len; /* total bit length of compressed file mod 2^32 */ + ulg bits_sent; /* bit length of compressed data sent mod 2^32 */ +#endif + + ush bi_buf; + /* Output buffer. bits are inserted starting at the bottom (least + * significant bits). + */ + int bi_valid; + /* Number of valid bits in bi_buf. All bits above the last valid bit + * are always zero. + */ + +} FAR deflate_state; + +/* Output a byte on the stream. + * IN assertion: there is enough room in pending_buf. + */ +#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);} + + +#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) +/* Minimum amount of lookahead, except at the end of the input file. + * See deflate.c for comments about the MIN_MATCH+1. + */ + +#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD) +/* In order to simplify the code, particularly on 16 bit machines, match + * distances are limited to MAX_DIST instead of WSIZE. + */ + + /* in trees.c */ +void _tr_init OF((deflate_state *s)); +int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); +void _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len, + int eof)); +void _tr_align OF((deflate_state *s)); +void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len, + int eof)); + +#define d_code(dist) \ + ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) +/* Mapping from a distance to a distance code. dist is the distance - 1 and + * must not have side effects. _dist_code[256] and _dist_code[257] are never + * used. + */ + +#ifndef DEBUG +/* Inline versions of _tr_tally for speed: */ + +#if defined(GEN_TREES_H) || !defined(STDC) + extern uch _length_code[]; + extern uch _dist_code[]; +#else + extern const uch _length_code[]; + extern const uch _dist_code[]; +#endif + +# define _tr_tally_lit(s, c, flush) \ + { uch cc = (c); \ + s->d_buf[s->last_lit] = 0; \ + s->l_buf[s->last_lit++] = cc; \ + s->dyn_ltree[cc].Freq++; \ + flush = (s->last_lit == s->lit_bufsize-1); \ + } +# define _tr_tally_dist(s, distance, length, flush) \ + { uch len = (length); \ + ush dist = (distance); \ + s->d_buf[s->last_lit] = dist; \ + s->l_buf[s->last_lit++] = len; \ + dist--; \ + s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ + s->dyn_dtree[d_code(dist)].Freq++; \ + flush = (s->last_lit == s->lit_bufsize-1); \ + } +#else +# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) +# define _tr_tally_dist(s, distance, length, flush) \ + flush = _tr_tally(s, distance, length) +#endif + +#endif diff --git a/source/visualization/HepRep/include/zlib/infblock.h b/source/visualization/HepRep/include/zlib/infblock.h new file mode 100644 index 0000000000..3087610a3e --- /dev/null +++ b/source/visualization/HepRep/include/zlib/infblock.h @@ -0,0 +1,39 @@ +/* infblock.h -- header to use infblock.c + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +struct inflate_blocks_state; +typedef struct inflate_blocks_state FAR inflate_blocks_statef; + +extern inflate_blocks_statef * inflate_blocks_new OF(( + z_streamp z, + check_func c, /* check function */ + uInt w)); /* window size */ + +extern int inflate_blocks OF(( + inflate_blocks_statef *, + z_streamp , + int)); /* initial return code */ + +extern void inflate_blocks_reset OF(( + inflate_blocks_statef *, + z_streamp , + uLongf *)); /* check value on output */ + +extern int inflate_blocks_free OF(( + inflate_blocks_statef *, + z_streamp)); + +extern void inflate_set_dictionary OF(( + inflate_blocks_statef *s, + const Bytef *d, /* dictionary */ + uInt n)); /* dictionary length */ + +extern int inflate_blocks_sync_point OF(( + inflate_blocks_statef *s)); diff --git a/source/visualization/HepRep/include/zlib/infcodes.h b/source/visualization/HepRep/include/zlib/infcodes.h new file mode 100644 index 0000000000..6c750d896f --- /dev/null +++ b/source/visualization/HepRep/include/zlib/infcodes.h @@ -0,0 +1,27 @@ +/* infcodes.h -- header to use infcodes.c + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +struct inflate_codes_state; +typedef struct inflate_codes_state FAR inflate_codes_statef; + +extern inflate_codes_statef *inflate_codes_new OF(( + uInt, uInt, + inflate_huft *, inflate_huft *, + z_streamp )); + +extern int inflate_codes OF(( + inflate_blocks_statef *, + z_streamp , + int)); + +extern void inflate_codes_free OF(( + inflate_codes_statef *, + z_streamp )); + diff --git a/source/visualization/HepRep/include/zlib/inffast.h b/source/visualization/HepRep/include/zlib/inffast.h new file mode 100644 index 0000000000..8facec5531 --- /dev/null +++ b/source/visualization/HepRep/include/zlib/inffast.h @@ -0,0 +1,17 @@ +/* inffast.h -- header to use inffast.c + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +extern int inflate_fast OF(( + uInt, + uInt, + inflate_huft *, + inflate_huft *, + inflate_blocks_statef *, + z_streamp )); diff --git a/source/visualization/HepRep/include/zlib/inffixed.h b/source/visualization/HepRep/include/zlib/inffixed.h new file mode 100644 index 0000000000..77f7e76314 --- /dev/null +++ b/source/visualization/HepRep/include/zlib/inffixed.h @@ -0,0 +1,151 @@ +/* inffixed.h -- table for decoding fixed codes + * Generated automatically by the maketree.c program + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +local uInt fixed_bl = 9; +local uInt fixed_bd = 5; +local inflate_huft fixed_tl[] = { + {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115}, + {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},192}, + {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},160}, + {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},224}, + {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},144}, + {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},208}, + {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},176}, + {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},240}, + {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227}, + {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},200}, + {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},168}, + {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},232}, + {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},152}, + {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},216}, + {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},184}, + {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},248}, + {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163}, + {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},196}, + {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},164}, + {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},228}, + {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},148}, + {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},212}, + {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},180}, + {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},244}, + {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0}, + {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},204}, + {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},172}, + {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},236}, + {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},156}, + {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},220}, + {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},188}, + {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},252}, + {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131}, + {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},194}, + {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},162}, + {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},226}, + {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},146}, + {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},210}, + {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},178}, + {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},242}, + {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258}, + {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},202}, + {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},170}, + {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},234}, + {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},154}, + {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},218}, + {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},186}, + {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},250}, + {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195}, + {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},198}, + {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},166}, + {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},230}, + {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},150}, + {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},214}, + {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},182}, + {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},246}, + {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0}, + {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},206}, + {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},174}, + {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},238}, + {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},158}, + {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},222}, + {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},190}, + {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},254}, + {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115}, + {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},193}, + {{{80,7}},10}, {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},161}, + {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, {{{0,9}},225}, + {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},145}, + {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},209}, + {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},177}, + {{{0,8}},8}, {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},241}, + {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, {{{85,8}},227}, + {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},201}, + {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},169}, + {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},233}, + {{{80,7}},8}, {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},153}, + {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, {{{0,9}},217}, + {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},185}, + {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},249}, + {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163}, + {{{83,7}},35}, {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},197}, + {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, {{{0,9}},165}, + {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},229}, + {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},149}, + {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},213}, + {{{82,7}},19}, {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},181}, + {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, {{{0,9}},245}, + {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0}, + {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},205}, + {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},173}, + {{{0,8}},6}, {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},237}, + {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, {{{0,9}},157}, + {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},221}, + {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},189}, + {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},253}, + {{{96,7}},256}, {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131}, + {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, {{{0,9}},195}, + {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},163}, + {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},227}, + {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},147}, + {{{83,7}},59}, {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},211}, + {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, {{{0,9}},179}, + {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},243}, + {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258}, + {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},203}, + {{{81,7}},13}, {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},171}, + {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, {{{0,9}},235}, + {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},155}, + {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},219}, + {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},187}, + {{{0,8}},13}, {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},251}, + {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, {{{85,8}},195}, + {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},199}, + {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},167}, + {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},231}, + {{{80,7}},7}, {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},151}, + {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, {{{0,9}},215}, + {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},183}, + {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},247}, + {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0}, + {{{83,7}},51}, {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},207}, + {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, {{{0,9}},175}, + {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},239}, + {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},159}, + {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},223}, + {{{82,7}},27}, {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},191}, + {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, {{{0,9}},255} + }; +local inflate_huft fixed_td[] = { + {{{80,5}},1}, {{{87,5}},257}, {{{83,5}},17}, {{{91,5}},4097}, + {{{81,5}},5}, {{{89,5}},1025}, {{{85,5}},65}, {{{93,5}},16385}, + {{{80,5}},3}, {{{88,5}},513}, {{{84,5}},33}, {{{92,5}},8193}, + {{{82,5}},9}, {{{90,5}},2049}, {{{86,5}},129}, {{{192,5}},24577}, + {{{80,5}},2}, {{{87,5}},385}, {{{83,5}},25}, {{{91,5}},6145}, + {{{81,5}},7}, {{{89,5}},1537}, {{{85,5}},97}, {{{93,5}},24577}, + {{{80,5}},4}, {{{88,5}},769}, {{{84,5}},49}, {{{92,5}},12289}, + {{{82,5}},13}, {{{90,5}},3073}, {{{86,5}},193}, {{{192,5}},24577} + }; diff --git a/source/visualization/HepRep/include/zlib/inftrees.h b/source/visualization/HepRep/include/zlib/inftrees.h new file mode 100644 index 0000000000..85853e097b --- /dev/null +++ b/source/visualization/HepRep/include/zlib/inftrees.h @@ -0,0 +1,58 @@ +/* inftrees.h -- header to use inftrees.c + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* Huffman code lookup table entry--this entry is four bytes for machines + that have 16-bit pointers (e.g. PC's in the small or medium model). */ + +typedef struct inflate_huft_s FAR inflate_huft; + +struct inflate_huft_s { + union { + struct { + Byte Exop; /* number of extra bits or operation */ + Byte Bits; /* number of bits in this code or subcode */ + } what; + uInt pad; /* pad structure to a power of 2 (4 bytes for */ + } word; /* 16-bit, 8 bytes for 32-bit int's) */ + uInt base; /* literal, length base, distance base, + or table offset */ +}; + +/* Maximum size of dynamic tree. The maximum found in a long but non- + exhaustive search was 1004 huft structures (850 for length/literals + and 154 for distances, the latter actually the result of an + exhaustive search). The actual maximum is not known, but the + value below is more than safe. */ +#define MANY 1440 + +extern int inflate_trees_bits OF(( + uIntf *, /* 19 code lengths */ + uIntf *, /* bits tree desired/actual depth */ + inflate_huft * FAR *, /* bits tree result */ + inflate_huft *, /* space for trees */ + z_streamp)); /* for messages */ + +extern int inflate_trees_dynamic OF(( + uInt, /* number of literal/length codes */ + uInt, /* number of distance codes */ + uIntf *, /* that many (total) code lengths */ + uIntf *, /* literal desired/actual bit depth */ + uIntf *, /* distance desired/actual bit depth */ + inflate_huft * FAR *, /* literal/length tree result */ + inflate_huft * FAR *, /* distance tree result */ + inflate_huft *, /* space for trees */ + z_streamp)); /* for messages */ + +extern int inflate_trees_fixed OF(( + uIntf *, /* literal desired/actual bit depth */ + uIntf *, /* distance desired/actual bit depth */ + inflate_huft * FAR *, /* literal/length tree result */ + inflate_huft * FAR *, /* distance tree result */ + z_streamp)); /* for memory allocation */ diff --git a/source/visualization/HepRep/include/zlib/infutil.h b/source/visualization/HepRep/include/zlib/infutil.h new file mode 100644 index 0000000000..99d1135d06 --- /dev/null +++ b/source/visualization/HepRep/include/zlib/infutil.h @@ -0,0 +1,98 @@ +/* infutil.h -- types and macros common to blocks and codes + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +#ifndef _INFUTIL_H +#define _INFUTIL_H + +typedef enum { + TYPE, /* get type bits (3, including end bit) */ + LENS, /* get lengths for stored */ + STORED, /* processing stored block */ + TABLE, /* get table lengths */ + BTREE, /* get bit lengths tree for a dynamic block */ + DTREE, /* get length, distance trees for a dynamic block */ + CODES, /* processing fixed or dynamic block */ + DRY, /* output remaining window bytes */ + DONE, /* finished last block, done */ + BAD} /* got a data error--stuck here */ +inflate_block_mode; + +/* inflate blocks semi-private state */ +struct inflate_blocks_state { + + /* mode */ + inflate_block_mode mode; /* current inflate_block mode */ + + /* mode dependent information */ + union { + uInt left; /* if STORED, bytes left to copy */ + struct { + uInt table; /* table lengths (14 bits) */ + uInt index; /* index into blens (or border) */ + uIntf *blens; /* bit lengths of codes */ + uInt bb; /* bit length tree depth */ + inflate_huft *tb; /* bit length decoding tree */ + } trees; /* if DTREE, decoding info for trees */ + struct { + inflate_codes_statef + *codes; + } decode; /* if CODES, current state */ + } sub; /* submode */ + uInt last; /* true if this block is the last block */ + + /* mode independent information */ + uInt bitk; /* bits in bit buffer */ + uLong bitb; /* bit buffer */ + inflate_huft *hufts; /* single malloc for tree space */ + Bytef *window; /* sliding window */ + Bytef *end; /* one byte after sliding window */ + Bytef *read; /* window read pointer */ + Bytef *write; /* window write pointer */ + check_func checkfn; /* check function */ + uLong check; /* check on output */ + +}; + + +/* defines for inflate input/output */ +/* update pointers and return */ +#define UPDBITS {s->bitb=b;s->bitk=k;} +#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;} +#define UPDOUT {s->write=q;} +#define UPDATE {UPDBITS UPDIN UPDOUT} +#define LEAVE {UPDATE return inflate_flush(s,z,r);} +/* get bytes and bits */ +#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;} +#define NEEDBYTE {if(n)r=Z_OK;else LEAVE} +#define NEXTBYTE (n--,*p++) +#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<>=(j);k-=(j);} +/* output bytes */ +#define WAVAIL (uInt)(qread?s->read-q-1:s->end-q) +#define LOADOUT {q=s->write;m=(uInt)WAVAIL;} +#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=(uInt)WAVAIL;}} +#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT} +#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;} +#define OUTBYTE(a) {*q++=(Byte)(a);m--;} +/* load local pointers */ +#define LOAD {LOADIN LOADOUT} + +/* masks for lower bits (size given to avoid silly warnings with Visual C++) */ +extern uInt inflate_mask[17]; + +/* copy as much as possible from the sliding window to the output area */ +extern int inflate_flush OF(( + inflate_blocks_statef *, + z_streamp , + int)); + +struct internal_state {int dummy;}; /* for buggy compilers */ + +#endif diff --git a/source/visualization/HepRep/include/zlib/trees.h b/source/visualization/HepRep/include/zlib/trees.h new file mode 100644 index 0000000000..72facf900f --- /dev/null +++ b/source/visualization/HepRep/include/zlib/trees.h @@ -0,0 +1,128 @@ +/* header created automatically with -DGEN_TREES_H */ + +local const ct_data static_ltree[L_CODES+2] = { +{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}}, +{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}}, +{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}}, +{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}}, +{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}}, +{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}}, +{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}}, +{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}}, +{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}}, +{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}}, +{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}}, +{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}}, +{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}}, +{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}}, +{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}}, +{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}}, +{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}}, +{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}}, +{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}}, +{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}}, +{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}}, +{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}}, +{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}}, +{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}}, +{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}}, +{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}}, +{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}}, +{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}}, +{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}}, +{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}}, +{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}}, +{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}}, +{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}}, +{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}}, +{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}}, +{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}}, +{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}}, +{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}}, +{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}}, +{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}}, +{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}}, +{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}}, +{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}}, +{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}}, +{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}}, +{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}}, +{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}}, +{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}}, +{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}}, +{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}}, +{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}}, +{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}}, +{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}}, +{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}}, +{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}}, +{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}}, +{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}}, +{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}} +}; + +local const ct_data static_dtree[D_CODES] = { +{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}}, +{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}}, +{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}}, +{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}}, +{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}}, +{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}} +}; + +const uch _dist_code[DIST_CODE_LEN] = { + 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, + 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, +10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, +11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, +12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, +13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, +13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, +14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, +15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, +18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, +23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, +28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, +29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 +}; + +const uch _length_code[MAX_MATCH-MIN_MATCH+1]= { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, +13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, +17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, +19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, +21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, +22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, +23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, +25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, +25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, +26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, +27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 +}; + +local const int base_length[LENGTH_CODES] = { +0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, +64, 80, 96, 112, 128, 160, 192, 224, 0 +}; + +local const int base_dist[D_CODES] = { + 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, + 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, + 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576 +}; + diff --git a/source/visualization/HepRep/include/zlib/zconf.h b/source/visualization/HepRep/include/zlib/zconf.h new file mode 100644 index 0000000000..1cffe07a53 --- /dev/null +++ b/source/visualization/HepRep/include/zlib/zconf.h @@ -0,0 +1,286 @@ +/* zconf.h -- configuration of the zlib compression library + * Copyright (C) 1995-1998 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id: zconf.h,v 1.1 2003/07/11 06:01:42 duns Exp $ */ + +#ifndef _ZCONF_H +#define _ZCONF_H + +/* for _LP64 */ +#include + +/* + * If you *really* need a unique prefix for all types and library functions, + * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. + */ +#ifdef Z_PREFIX +# define deflateInit_ z_deflateInit_ +# define deflate z_deflate +# define deflateEnd z_deflateEnd +# define inflateInit_ z_inflateInit_ +# define inflate z_inflate +# define inflateEnd z_inflateEnd +# define deflateInit2_ z_deflateInit2_ +# define deflateSetDictionary z_deflateSetDictionary +# define deflateCopy z_deflateCopy +# define deflateReset z_deflateReset +# define deflateParams z_deflateParams +# define inflateInit2_ z_inflateInit2_ +# define inflateSetDictionary z_inflateSetDictionary +# define inflateSync z_inflateSync +# define inflateSyncPoint z_inflateSyncPoint +# define inflateReset z_inflateReset +# define compress z_compress +# define compress2 z_compress2 +# define uncompress z_uncompress +# define adler32 z_adler32 +# define crc32 z_crc32 +# define get_crc_table z_get_crc_table + +# define Byte z_Byte +# define uInt z_uInt +# define uLong z_uLong +# define Bytef z_Bytef +# define charf z_charf +# define intf z_intf +# define uIntf z_uIntf +# define uLongf z_uLongf +# define voidpf z_voidpf +# define voidp z_voidp +#endif + +#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) +# define WIN32 +#endif +#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386) +# ifndef __32BIT__ +# define __32BIT__ +# endif +#endif +#if defined(__MSDOS__) && !defined(MSDOS) +# define MSDOS +#endif + +/* + * Compile with -DMAXSEG_64K if the alloc function cannot allocate more + * than 64k bytes at a time (needed on systems with 16-bit int). + */ +#if defined(MSDOS) && !defined(__32BIT__) +# define MAXSEG_64K +#endif +#ifdef MSDOS +# define UNALIGNED_OK +#endif + +#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC) +# define STDC +#endif +#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__) +# ifndef STDC +# define STDC +# endif +#endif + +#ifndef STDC +# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ +# define const +# endif +#endif + +/* Some Mac compilers merge all .h files incorrectly: */ +#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__) +# define NO_DUMMY_DECL +#endif + +/* Old Borland C incorrectly complains about missing returns: */ +#if defined(__BORLANDC__) && (__BORLANDC__ < 0x500) +# define NEED_DUMMY_RETURN +#endif + + +/* Maximum value for memLevel in deflateInit2 */ +#ifndef MAX_MEM_LEVEL +# ifdef MAXSEG_64K +# define MAX_MEM_LEVEL 8 +# else +# define MAX_MEM_LEVEL 9 +# endif +#endif + +/* Maximum value for windowBits in deflateInit2 and inflateInit2. + * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files + * created by gzip. (Files created by minigzip can still be extracted by + * gzip.) + */ +#ifndef MAX_WBITS +# define MAX_WBITS 15 /* 32K LZ77 window */ +#endif + +/* The memory requirements for deflate are (in bytes): + (1 << (windowBits+2)) + (1 << (memLevel+9)) + that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) + plus a few kilobytes for small objects. For example, if you want to reduce + the default memory requirements from 256K to 128K, compile with + make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" + Of course this will generally degrade compression (there's no free lunch). + + The memory requirements for inflate are (in bytes) 1 << windowBits + that is, 32K for windowBits=15 (default value) plus a few kilobytes + for small objects. +*/ + + /* Type declarations */ + +#ifndef OF /* function prototypes */ +# ifdef STDC +# define OF(args) args +# else +# define OF(args) () +# endif +#endif + +/* The following definitions for FAR are needed only for MSDOS mixed + * model programming (small or medium model with some far allocations). + * This was tested only with MSC; for other MSDOS compilers you may have + * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, + * just define FAR to be empty. + */ +#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__) + /* MSC small or medium model */ +# define SMALL_MEDIUM +# ifdef _MSC_VER +# define FAR _far +# else +# define FAR far +# endif +#endif +#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__)) +# ifndef __32BIT__ +# define SMALL_MEDIUM +# define FAR _far +# endif +#endif + +/* Compile with -DZLIB_DLL for Windows DLL support */ +#if defined(ZLIB_DLL) +# if defined(_WINDOWS) || defined(WINDOWS) +# ifdef FAR +# undef FAR +# endif +# include +# define ZEXPORT WINAPI +# ifdef WIN32 +# define ZEXPORTVA WINAPIV +# else +# define ZEXPORTVA FAR _cdecl _export +# endif +# endif +# if defined (__BORLANDC__) +# if (__BORLANDC__ >= 0x0500) && defined (WIN32) +# include +# define ZEXPORT __declspec(dllexport) WINAPI +# define ZEXPORTRVA __declspec(dllexport) WINAPIV +# else +# if defined (_Windows) && defined (__DLL__) +# define ZEXPORT _export +# define ZEXPORTVA _export +# endif +# endif +# endif +#endif + +#if defined (__BEOS__) +# if defined (ZLIB_DLL) +# define ZEXTERN extern __declspec(dllexport) +# else +# define ZEXTERN extern __declspec(dllimport) +# endif +#endif + +#ifndef ZEXPORT +# define ZEXPORT +#endif +#ifndef ZEXPORTVA +# define ZEXPORTVA +#endif +#ifndef ZEXTERN +# define ZEXTERN extern +#endif + +#ifndef FAR +# define FAR +#endif + +#if !defined(MACOS) && !defined(TARGET_OS_MAC) +typedef unsigned char Byte; /* 8 bits */ +#endif +typedef unsigned int uInt; /* 16 bits or more */ +#ifdef _LP64 +typedef unsigned int uLong; /* 32 bits or more */ +#else +typedef unsigned long uLong; /* 32 bits or more */ +#endif + +#ifdef SMALL_MEDIUM + /* Borland C/C++ and some old MSC versions ignore FAR inside typedef */ +# define Bytef Byte FAR +#else + typedef Byte FAR Bytef; +#endif +typedef char FAR charf; +typedef int FAR intf; +typedef uInt FAR uIntf; +typedef uLong FAR uLongf; + +#ifdef STDC + typedef void FAR *voidpf; + typedef void *voidp; +#else + typedef Byte FAR *voidpf; + typedef Byte *voidp; +#endif + +#ifdef HAVE_UNISTD_H +# include /* for off_t */ +# include /* for SEEK_* and off_t */ +# define z_off_t off_t +#endif +#ifndef SEEK_SET +# define SEEK_SET 0 /* Seek from beginning of file. */ +# define SEEK_CUR 1 /* Seek from current position. */ +# define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ +#endif +#ifndef z_off_t +# define z_off_t long +#endif + +/* MVS linker does not support external names larger than 8 bytes */ +#if defined(__MVS__) +# pragma map(deflateInit_,"DEIN") +# pragma map(deflateInit2_,"DEIN2") +# pragma map(deflateEnd,"DEEND") +# pragma map(inflateInit_,"ININ") +# pragma map(inflateInit2_,"ININ2") +# pragma map(inflateEnd,"INEND") +# pragma map(inflateSync,"INSY") +# pragma map(inflateSetDictionary,"INSEDI") +# pragma map(inflate_blocks,"INBL") +# pragma map(inflate_blocks_new,"INBLNE") +# pragma map(inflate_blocks_free,"INBLFR") +# pragma map(inflate_blocks_reset,"INBLRE") +# pragma map(inflate_codes_free,"INCOFR") +# pragma map(inflate_codes,"INCO") +# pragma map(inflate_fast,"INFA") +# pragma map(inflate_flush,"INFLU") +# pragma map(inflate_mask,"INMA") +# pragma map(inflate_set_dictionary,"INSEDI2") +# pragma map(inflate_copyright,"INCOPY") +# pragma map(inflate_trees_bits,"INTRBI") +# pragma map(inflate_trees_dynamic,"INTRDY") +# pragma map(inflate_trees_fixed,"INTRFI") +# pragma map(inflate_trees_free,"INTRFR") +#endif + +#endif /* _ZCONF_H */ diff --git a/source/visualization/HepRep/include/zlib/zlib.h b/source/visualization/HepRep/include/zlib/zlib.h new file mode 100644 index 0000000000..47a75cf0f9 --- /dev/null +++ b/source/visualization/HepRep/include/zlib/zlib.h @@ -0,0 +1,893 @@ +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.1.3, July 9th, 1998 + + Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + + + The data format used by the zlib library is described by RFCs (Request for + Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt + (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). +*/ + +#ifndef _ZLIB_H +#define _ZLIB_H + +#include "zconf.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define ZLIB_VERSION "1.1.3" + +/* + The 'zlib' compression library provides in-memory compression and + decompression functions, including integrity checks of the uncompressed + data. This version of the library supports only one compression method + (deflation) but other algorithms will be added later and will have the same + stream interface. + + Compression can be done in a single step if the buffers are large + enough (for example if an input file is mmap'ed), or can be done by + repeated calls of the compression function. In the latter case, the + application must provide more input and/or consume the output + (providing more output space) before each call. + + The library also supports reading and writing files in gzip (.gz) format + with an interface similar to that of stdio. + + The library does not install any signal handler. The decoder checks + the consistency of the compressed data, so the library should never + crash even in case of corrupted input. +*/ + +typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (*free_func) OF((voidpf opaque, voidpf address)); + +struct internal_state; + +typedef struct z_stream_s { + Bytef *next_in; /* next input byte */ + uInt avail_in; /* number of bytes available at next_in */ + uLong total_in; /* total nb of input bytes read so far */ + + Bytef *next_out; /* next output byte should be put there */ + uInt avail_out; /* remaining free space at next_out */ + uLong total_out; /* total nb of bytes output so far */ + + char *msg; /* last error message, NULL if no error */ + struct internal_state FAR *state; /* not visible by applications */ + + alloc_func zalloc; /* used to allocate the internal state */ + free_func zfree; /* used to free the internal state */ + voidpf opaque; /* private data object passed to zalloc and zfree */ + + int data_type; /* best guess about the data type: ascii or binary */ + uLong adler; /* adler32 value of the uncompressed data */ + uLong reserved; /* reserved for future use */ +} z_stream; + +typedef z_stream FAR *z_streamp; + +/* + The application must update next_in and avail_in when avail_in has + dropped to zero. It must update next_out and avail_out when avail_out + has dropped to zero. The application must initialize zalloc, zfree and + opaque before calling the init function. All other fields are set by the + compression library and must not be updated by the application. + + The opaque value provided by the application will be passed as the first + parameter for calls of zalloc and zfree. This can be useful for custom + memory management. The compression library attaches no meaning to the + opaque value. + + zalloc must return Z_NULL if there is not enough memory for the object. + If zlib is used in a multi-threaded application, zalloc and zfree must be + thread safe. + + On 16-bit systems, the functions zalloc and zfree must be able to allocate + exactly 65536 bytes, but will not be required to allocate more than this + if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, + pointers returned by zalloc for objects of exactly 65536 bytes *must* + have their offset normalized to zero. The default allocation function + provided by this library ensures this (see zutil.c). To reduce memory + requirements and avoid any allocation of 64K objects, at the expense of + compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). + + The fields total_in and total_out can be used for statistics or + progress reports. After compression, total_in holds the total size of + the uncompressed data and may be saved for use in the decompressor + (particularly if the decompressor wants to decompress everything in + a single step). +*/ + + /* constants */ + +#define Z_NO_FLUSH 0 +#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ +#define Z_SYNC_FLUSH 2 +#define Z_FULL_FLUSH 3 +#define Z_FINISH 4 +/* Allowed flush values; see deflate() below for details */ + +#define Z_OK 0 +#define Z_STREAM_END 1 +#define Z_NEED_DICT 2 +#define Z_ERRNO (-1) +#define Z_STREAM_ERROR (-2) +#define Z_DATA_ERROR (-3) +#define Z_MEM_ERROR (-4) +#define Z_BUF_ERROR (-5) +#define Z_VERSION_ERROR (-6) +/* Return codes for the compression/decompression functions. Negative + * values are errors, positive values are used for special but normal events. + */ + +#define Z_NO_COMPRESSION 0 +#define Z_BEST_SPEED 1 +#define Z_BEST_COMPRESSION 9 +#define Z_DEFAULT_COMPRESSION (-1) +/* compression levels */ + +#define Z_FILTERED 1 +#define Z_HUFFMAN_ONLY 2 +#define Z_DEFAULT_STRATEGY 0 +/* compression strategy; see deflateInit2() below for details */ + +#define Z_BINARY 0 +#define Z_ASCII 1 +#define Z_UNKNOWN 2 +/* Possible values of the data_type field */ + +#define Z_DEFLATED 8 +/* The deflate compression method (the only one supported in this version) */ + +#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ + +#define zlib_version zlibVersion() +/* for compatibility with versions < 1.0.2 */ + + /* basic functions */ + +ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +/* The application can compare zlibVersion and ZLIB_VERSION for consistency. + If the first character differs, the library code actually used is + not compatible with the zlib.h header file used by the application. + This check is automatically made by deflateInit and inflateInit. + */ + +/* +ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); + + Initializes the internal stream state for compression. The fields + zalloc, zfree and opaque must be initialized before by the caller. + If zalloc and zfree are set to Z_NULL, deflateInit updates them to + use default allocation functions. + + The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: + 1 gives best speed, 9 gives best compression, 0 gives no compression at + all (the input data is simply copied a block at a time). + Z_DEFAULT_COMPRESSION requests a default compromise between speed and + compression (currently equivalent to level 6). + + deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if level is not a valid compression level, + Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible + with the version assumed by the caller (ZLIB_VERSION). + msg is set to null if there is no error message. deflateInit does not + perform any compression: this will be done by deflate(). +*/ + + +ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +/* + deflate compresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may introduce some + output latency (reading input without producing any output) except when + forced to flush. + + The detailed semantics are as follows. deflate performs one or both of the + following actions: + + - Compress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in and avail_in are updated and + processing will resume at this point for the next call of deflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. This action is forced if the parameter flush is non zero. + Forcing flush frequently degrades the compression ratio, so this parameter + should be set only when necessary (in interactive applications). + Some output may be provided even if flush is not set. + + Before the call of deflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating avail_in or avail_out accordingly; avail_out + should never be zero before the call. The application can consume the + compressed output when it wants, for example when the output buffer is full + (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK + and with zero avail_out, it must be called again after making room in the + output buffer because there might be more output pending. + + If the parameter flush is set to Z_SYNC_FLUSH, all pending output is + flushed to the output buffer and the output is aligned on a byte boundary, so + that the decompressor can get all input data available so far. (In particular + avail_in is zero after the call if enough output space has been provided + before the call.) Flushing may degrade compression for some compression + algorithms and so it should be used only when necessary. + + If flush is set to Z_FULL_FLUSH, all output is flushed as with + Z_SYNC_FLUSH, and the compression state is reset so that decompression can + restart from this point if previous compressed data has been damaged or if + random access is desired. Using Z_FULL_FLUSH too often can seriously degrade + the compression. + + If deflate returns with avail_out == 0, this function must be called again + with the same value of the flush parameter and more output space (updated + avail_out), until the flush is complete (deflate returns with non-zero + avail_out). + + If the parameter flush is set to Z_FINISH, pending input is processed, + pending output is flushed and deflate returns with Z_STREAM_END if there + was enough output space; if deflate returns with Z_OK, this function must be + called again with Z_FINISH and more output space (updated avail_out) but no + more input data, until it returns with Z_STREAM_END or an error. After + deflate has returned Z_STREAM_END, the only possible operations on the + stream are deflateReset or deflateEnd. + + Z_FINISH can be used immediately after deflateInit if all the compression + is to be done in a single step. In this case, avail_out must be at least + 0.1% larger than avail_in plus 12 bytes. If deflate does not return + Z_STREAM_END, then it must be called again as described above. + + deflate() sets strm->adler to the adler32 checksum of all input read + so far (that is, total_in bytes). + + deflate() may update data_type if it can make a good guess about + the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered + binary. This field is only for information purposes and does not affect + the compression algorithm in any manner. + + deflate() returns Z_OK if some progress has been made (more input + processed or more output produced), Z_STREAM_END if all input has been + consumed and all output has been produced (only when flush is set to + Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example + if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible + (for example avail_in or avail_out was zero). +*/ + + +ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the + stream state was inconsistent, Z_DATA_ERROR if the stream was freed + prematurely (some input or output was discarded). In the error case, + msg may be set but then points to a static string (which must not be + deallocated). +*/ + + +/* +ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); + + Initializes the internal stream state for decompression. The fields + next_in, avail_in, zalloc, zfree and opaque must be initialized before by + the caller. If next_in is not Z_NULL and avail_in is large enough (the exact + value depends on the compression method), inflateInit determines the + compression method from the zlib header and allocates all data structures + accordingly; otherwise the allocation will be deferred to the first call of + inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to + use default allocation functions. + + inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_VERSION_ERROR if the zlib library version is incompatible with the + version assumed by the caller. msg is set to null if there is no error + message. inflateInit does not perform any decompression apart from reading + the zlib header if present: this will be done by inflate(). (So next_in and + avail_in may be modified, but next_out and avail_out are unchanged.) +*/ + + +ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +/* + inflate decompresses as much data as possible, and stops when the input + buffer becomes empty or the output buffer becomes full. It may some + introduce some output latency (reading input without producing any output) + except when forced to flush. + + The detailed semantics are as follows. inflate performs one or both of the + following actions: + + - Decompress more input starting at next_in and update next_in and avail_in + accordingly. If not all input can be processed (because there is not + enough room in the output buffer), next_in is updated and processing + will resume at this point for the next call of inflate(). + + - Provide more output starting at next_out and update next_out and avail_out + accordingly. inflate() provides as much output as possible, until there + is no more input data or no more space in the output buffer (see below + about the flush parameter). + + Before the call of inflate(), the application should ensure that at least + one of the actions is possible, by providing more input and/or consuming + more output, and updating the next_* and avail_* values accordingly. + The application can consume the uncompressed output when it wants, for + example when the output buffer is full (avail_out == 0), or after each + call of inflate(). If inflate returns Z_OK and with zero avail_out, it + must be called again after making room in the output buffer because there + might be more output pending. + + If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much + output as possible to the output buffer. The flushing behavior of inflate is + not specified for values of the flush parameter other than Z_SYNC_FLUSH + and Z_FINISH, but the current implementation actually flushes as much output + as possible anyway. + + inflate() should normally be called until it returns Z_STREAM_END or an + error. However if all decompression is to be performed in a single step + (a single call of inflate), the parameter flush should be set to + Z_FINISH. In this case all pending input is processed and all pending + output is flushed; avail_out must be large enough to hold all the + uncompressed data. (The size of the uncompressed data may have been saved + by the compressor for this purpose.) The next operation on this stream must + be inflateEnd to deallocate the decompression state. The use of Z_FINISH + is never required, but can be used to inform inflate that a faster routine + may be used for the single inflate() call. + + If a preset dictionary is needed at this point (see inflateSetDictionary + below), inflate sets strm-adler to the adler32 checksum of the + dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise + it sets strm->adler to the adler32 checksum of all output produced + so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or + an error code as described below. At the end of the stream, inflate() + checks that its computed adler32 checksum is equal to that saved by the + compressor and returns Z_STREAM_END only if the checksum is correct. + + inflate() returns Z_OK if some progress has been made (more input processed + or more output produced), Z_STREAM_END if the end of the compressed data has + been reached and all uncompressed output has been produced, Z_NEED_DICT if a + preset dictionary is needed at this point, Z_DATA_ERROR if the input data was + corrupted (input stream not conforming to the zlib format or incorrect + adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent + (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if no progress is possible or if there was not + enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR + case, the application may then call inflateSync to look for a good + compression block. +*/ + + +ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +/* + All dynamically allocated data structures for this stream are freed. + This function discards any unprocessed input and does not flush any + pending output. + + inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state + was inconsistent. In the error case, msg may be set but then points to a + static string (which must not be deallocated). +*/ + + /* Advanced functions */ + +/* + The following functions are needed only in some special applications. +*/ + +/* +ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy)); + + This is another version of deflateInit with more compression options. The + fields next_in, zalloc, zfree and opaque must be initialized before by + the caller. + + The method parameter is the compression method. It must be Z_DEFLATED in + this version of the library. + + The windowBits parameter is the base two logarithm of the window size + (the size of the history buffer). It should be in the range 8..15 for this + version of the library. Larger values of this parameter result in better + compression at the expense of memory usage. The default value is 15 if + deflateInit is used instead. + + The memLevel parameter specifies how much memory should be allocated + for the internal compression state. memLevel=1 uses minimum memory but + is slow and reduces compression ratio; memLevel=9 uses maximum memory + for optimal speed. The default value is 8. See zconf.h for total memory + usage as a function of windowBits and memLevel. + + The strategy parameter is used to tune the compression algorithm. Use the + value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a + filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no + string match). Filtered data consists mostly of small values with a + somewhat random distribution. In this case, the compression algorithm is + tuned to compress them better. The effect of Z_FILTERED is to force more + Huffman coding and less string matching; it is somewhat intermediate + between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects + the compression ratio but not the correctness of the compressed output even + if it is not set appropriately. + + deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid + method). msg is set to null if there is no error message. deflateInit2 does + not perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the compression dictionary from the given byte sequence + without producing any compressed output. This function must be called + immediately after deflateInit, deflateInit2 or deflateReset, before any + call of deflate. The compressor and decompressor must use exactly the same + dictionary (see inflateSetDictionary). + + The dictionary should consist of strings (byte sequences) that are likely + to be encountered later in the data to be compressed, with the most commonly + used strings preferably put towards the end of the dictionary. Using a + dictionary is most useful when the data to be compressed is short and can be + predicted with good accuracy; the data can then be compressed better than + with the default empty dictionary. + + Depending on the size of the compression data structures selected by + deflateInit or deflateInit2, a part of the dictionary may in effect be + discarded, for example if the dictionary is larger than the window size in + deflate or deflate2. Thus the strings most likely to be useful should be + put at the end of the dictionary, not at the front. + + Upon return of this function, strm->adler is set to the Adler32 value + of the dictionary; the decompressor may later use this value to determine + which dictionary has been used by the compressor. (The Adler32 value + applies to the whole dictionary even if only a subset of the dictionary is + actually used by the compressor.) + + deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent (for example if deflate has already been called for this stream + or if the compression method is bsort). deflateSetDictionary does not + perform any compression: this will be done by deflate(). +*/ + +ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, + z_streamp source)); +/* + Sets the destination stream as a complete copy of the source stream. + + This function can be useful when several compression strategies will be + tried, for example when there are several ways of pre-processing the input + data with a filter. The streams that will be discarded should then be freed + by calling deflateEnd. Note that deflateCopy duplicates the internal + compression state which can be quite large, so this strategy is slow and + can consume lots of memory. + + deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_STREAM_ERROR if the source stream state was inconsistent + (such as zalloc being NULL). msg is left unchanged in both source and + destination. +*/ + +ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +/* + This function is equivalent to deflateEnd followed by deflateInit, + but does not free and reallocate all the internal compression state. + The stream will keep the same compression level and any other attributes + that may have been set by deflateInit2. + + deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + +ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, + int level, + int strategy)); +/* + Dynamically update the compression level and compression strategy. The + interpretation of level and strategy is as in deflateInit2. This can be + used to switch between compression and straight copy of the input data, or + to switch to a different kind of input data requiring a different + strategy. If the compression level is changed, the input available so far + is compressed with the old level (and may be flushed); the new level will + take effect only at the next call of deflate(). + + Before the call of deflateParams, the stream state must be set as for + a call of deflate(), since the currently available input may have to + be compressed and flushed. In particular, strm->avail_out must be non-zero. + + deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source + stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR + if strm->avail_out was zero. +*/ + +/* +ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, + int windowBits)); + + This is another version of inflateInit with an extra parameter. The + fields next_in, avail_in, zalloc, zfree and opaque must be initialized + before by the caller. + + The windowBits parameter is the base two logarithm of the maximum window + size (the size of the history buffer). It should be in the range 8..15 for + this version of the library. The default value is 15 if inflateInit is used + instead. If a compressed stream with a larger window size is given as + input, inflate() will return with the error code Z_DATA_ERROR instead of + trying to allocate a larger window. + + inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative + memLevel). msg is set to null if there is no error message. inflateInit2 + does not perform any decompression apart from reading the zlib header if + present: this will be done by inflate(). (So next_in and avail_in may be + modified, but next_out and avail_out are unchanged.) +*/ + +ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, + const Bytef *dictionary, + uInt dictLength)); +/* + Initializes the decompression dictionary from the given uncompressed byte + sequence. This function must be called immediately after a call of inflate + if this call returned Z_NEED_DICT. The dictionary chosen by the compressor + can be determined from the Adler32 value returned by this call of + inflate. The compressor and decompressor must use exactly the same + dictionary (see deflateSetDictionary). + + inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a + parameter is invalid (such as NULL dictionary) or the stream state is + inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the + expected one (incorrect Adler32 value). inflateSetDictionary does not + perform any decompression: this will be done by subsequent calls of + inflate(). +*/ + +ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +/* + Skips invalid compressed data until a full flush point (see above the + description of deflate with Z_FULL_FLUSH) can be found, or until all + available input is skipped. No output is provided. + + inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR + if no more input was provided, Z_DATA_ERROR if no flush point has been found, + or Z_STREAM_ERROR if the stream structure was inconsistent. In the success + case, the application may save the current current value of total_in which + indicates where valid compressed data was found. In the error case, the + application may repeatedly call inflateSync, providing more input each time, + until success or end of the input data. +*/ + +ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +/* + This function is equivalent to inflateEnd followed by inflateInit, + but does not free and reallocate all the internal decompression state. + The stream will keep attributes that may have been set by inflateInit2. + + inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source + stream state was inconsistent (such as zalloc or state being NULL). +*/ + + + /* utility functions */ + +/* + The following utility functions are implemented on top of the + basic stream-oriented functions. To simplify the interface, some + default options are assumed (compression level and memory usage, + standard memory allocation functions). The source code of these + utility functions can easily be modified if you need special options. +*/ + +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Compresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be at least 0.1% larger than + sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the + compressed buffer. + This function can be used to compress a whole file at once if the + input file is mmap'ed. + compress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer. +*/ + +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level)); +/* + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least 0.1% larger than sourceLen plus + 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ + +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); +/* + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + This function can be used to decompress a whole file at once if the + input file is mmap'ed. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted. +*/ + + +typedef voidp gzFile; + +ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +/* + Opens a gzip (.gz) file for reading or writing. The mode parameter + is as in fopen ("rb" or "wb") but can also include a compression level + ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for + Huffman only compression as in "wb1h". (See the description + of deflateInit2 for more information about the strategy parameter.) + + gzopen can be used to read a file which is not in gzip format; in this + case gzread will directly read from the file without decompression. + + gzopen returns NULL if the file could not be opened or if there was + insufficient memory to allocate the (de)compression state; errno + can be checked to distinguish the two cases (if errno is zero, the + zlib error is Z_MEM_ERROR). */ + +ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +/* + gzdopen() associates a gzFile with the file descriptor fd. File + descriptors are obtained from calls like open, dup, creat, pipe or + fileno (in the file has been previously opened with fopen). + The mode parameter is as in gzopen. + The next call of gzclose on the returned gzFile will also close the + file descriptor fd, just like fclose(fdopen(fd), mode) closes the file + descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). + gzdopen returns NULL if there was insufficient memory to allocate + the (de)compression state. +*/ + +ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +/* + Dynamically update the compression level or strategy. See the description + of deflateInit2 for the meaning of these parameters. + gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not + opened for writing. +*/ + +ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +/* + Reads the given number of uncompressed bytes from the compressed file. + If the input file was not in gzip format, gzread copies the given number + of bytes into the buffer. + gzread returns the number of uncompressed bytes actually read (0 for + end of file, -1 for error). */ + +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, + const voidp buf, unsigned len)); +/* + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of uncompressed bytes actually written + (0 in case of error). +*/ + +ZEXTERN int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); +/* + Converts, formats, and writes the args to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written (0 in case of error). +*/ + +ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +/* + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + gzputs returns the number of characters written, or -1 in case of error. +*/ + +ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +/* + Reads bytes from the compressed file until len-1 characters are read, or + a newline character is read and transferred to buf, or an end-of-file + condition is encountered. The string is then terminated with a null + character. + gzgets returns buf, or Z_NULL in case of error. +*/ + +ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +/* + Writes c, converted to an unsigned char, into the compressed file. + gzputc returns the value that was written, or -1 in case of error. +*/ + +ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +/* + Reads one byte from the compressed file. gzgetc returns this byte + or -1 in case of end of file or error. +*/ + +ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +/* + Flushes all pending output into the compressed file. The parameter + flush is as in the deflate() function. The return value is the zlib + error number (see function gzerror below). gzflush returns Z_OK if + the flush parameter is Z_FINISH and all output could be flushed. + gzflush should be called only when strictly necessary because it can + degrade compression. +*/ + +ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, + z_off_t offset, int whence)); +/* + Sets the starting position for the next gzread or gzwrite on the + given compressed file. The offset represents a number of bytes in the + uncompressed data stream. The whence parameter is defined as in lseek(2); + the value SEEK_END is not supported. + If the file is opened for reading, this function is emulated but can be + extremely slow. If the file is opened for writing, only forward seeks are + supported; gzseek then compresses a sequence of zeroes up to the new + starting position. + + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error, in + particular if the file is opened for writing and the new starting position + would be before the current position. +*/ + +ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +/* + Rewinds the given file. This function is supported only for reading. + + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) +*/ + +ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +/* + Returns the starting position for the next gzread or gzwrite on the + given compressed file. This position represents a number of bytes in the + uncompressed data stream. + + gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) +*/ + +ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +/* + Returns 1 when EOF has previously been detected reading the given + input stream, otherwise zero. +*/ + +ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +/* + Flushes all pending output if necessary, closes the compressed file + and deallocates all the (de)compression state. The return value is the zlib + error number (see function gzerror below). +*/ + +ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +/* + Returns the error message for the last error which occurred on the + given compressed file. errnum is set to zlib error number. If an + error occurred in the file system and not in the compression library, + errnum is set to Z_ERRNO and the application may consult errno + to get the exact error code. +*/ + + /* checksum functions */ + +/* + These functions are not related to compression but are exported + anyway because they might be useful in applications using the + compression library. +*/ + +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); + +/* + Update a running Adler-32 checksum with the bytes buf[0..len-1] and + return the updated checksum. If buf is NULL, this function returns + the required initial value for the checksum. + An Adler-32 checksum is almost as reliable as a CRC32 but can be computed + much faster. Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ + +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +/* + Update a running crc with the bytes buf[0..len-1] and return the updated + crc. If buf is NULL, this function returns the required initial value + for the crc. Pre- and post-conditioning (one's complement) is performed + within this function so it shouldn't be done by the application. + Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ + + + /* various hacks, don't look :) */ + +/* deflateInit and inflateInit are macros to allow checking the zlib version + * and the compiler's view of z_stream: + */ +ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, + const char *version, int stream_size)); +ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size)); +ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, + const char *version, int stream_size)); +#define deflateInit(strm, level) \ + deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit(strm) \ + inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) +#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ + deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ + (strategy), ZLIB_VERSION, sizeof(z_stream)) +#define inflateInit2(strm, windowBits) \ + inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) + + +#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL) + struct internal_state {int dummy;}; /* hack for buggy compilers */ +#endif + +ZEXTERN const char * ZEXPORT zError OF((int err)); +ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp z)); +ZEXTERN const uLongf * ZEXPORT get_crc_table OF((void)); + +#ifdef __cplusplus +} +#endif + +#endif /* _ZLIB_H */ diff --git a/source/visualization/HepRep/include/zlib/zutil.h b/source/visualization/HepRep/include/zlib/zutil.h new file mode 100644 index 0000000000..a6adbfd3e3 --- /dev/null +++ b/source/visualization/HepRep/include/zlib/zutil.h @@ -0,0 +1,227 @@ +/* zutil.h -- internal interface and configuration of the compression library + * Copyright (C) 1995-1998 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* WARNING: this file should *not* be used by applications. It is + part of the implementation of the compression library and is + subject to change. Applications should only use zlib.h. + */ + +/* @(#) $Id: zutil.h,v 1.4 2003/07/11 06:34:56 duns Exp $ */ + +#ifndef _Z_UTIL_H +#define _Z_UTIL_H + +#include "zlib.h" + +#ifdef STDC +# include +# include +# include +#endif +#ifdef NO_ERRNO_H + extern int errno; +#else +# include +#endif + +#ifndef local +# define local static +#endif +/* compile with -Dlocal if your debugger can't find static symbols */ + +typedef unsigned char uch; +typedef uch FAR uchf; +typedef unsigned short ush; +typedef ush FAR ushf; +typedef unsigned long ulg; +#ifdef NEVER +#ifndef _LP64 +typedef unsigned long ulg; +#else +typedef unsigned int ulg; +#endif +#endif + +extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */ +/* (size given to avoid silly warnings with Visual C++) */ + +#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] + +#define ERR_RETURN(strm,err) \ + return (strm->msg = (char*)ERR_MSG(err), (err)) +/* To be used only when the state is known to be valid */ + + /* common constants */ + +#ifndef DEF_WBITS +# define DEF_WBITS MAX_WBITS +#endif +/* default windowBits for decompression. MAX_WBITS is for compression only */ + +#if MAX_MEM_LEVEL >= 8 +# define DEF_MEM_LEVEL 8 +#else +# define DEF_MEM_LEVEL MAX_MEM_LEVEL +#endif +/* default memLevel */ + +#define STORED_BLOCK 0 +#define STATIC_TREES 1 +#define DYN_TREES 2 +/* The three kinds of block type */ + +#define MIN_MATCH 3 +#define MAX_MATCH 258 +/* The minimum and maximum match lengths */ + +#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ + + /* target dependencies */ + +#ifdef MSDOS +# define OS_CODE 0x00 +# if defined(__TURBOC__) || defined(__BORLANDC__) +# if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) + /* Allow compilation with ANSI keywords only enabled */ + void _Cdecl farfree( void *block ); + void *_Cdecl farmalloc( unsigned long nbytes ); +# else +# include +# endif +# else /* MSC or DJGPP */ +# include +# endif +#endif + +#ifdef OS2 +# define OS_CODE 0x06 +#endif + +#ifdef WIN32 /* Window 95 & Windows NT */ +# define OS_CODE 0x0b +#endif + +#if defined(VAXC) || defined(VMS) +# define OS_CODE 0x02 +# define F_OPEN(name, mode) \ + fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") +#endif + +#ifdef AMIGA +# define OS_CODE 0x01 +#endif + +#if defined(ATARI) || defined(atarist) +# define OS_CODE 0x05 +#endif + +#if defined(MACOS) || defined(TARGET_OS_MAC) +# define OS_CODE 0x07 +# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os +# include /* for fdopen */ +# else +# ifndef fdopen +# define fdopen(fd,mode) NULL /* No fdopen() */ +# endif +# endif +#endif + +#ifdef __50SERIES /* Prime/PRIMOS */ +# define OS_CODE 0x0F +#endif + +#ifdef TOPS20 +# define OS_CODE 0x0a +#endif + +#if defined(_BEOS_) || defined(RISCOS) +# define fdopen(fd,mode) NULL /* No fdopen() */ +#endif + +#if (defined(_MSC_VER) && (_MSC_VER > 600)) +# define fdopen(fd,type) _fdopen(fd,type) +#endif + + + /* Common defaults */ + +#ifndef OS_CODE +# define OS_CODE 0x03 /* assume Unix */ +#endif + +#ifndef F_OPEN +# define F_OPEN(name, mode) fopen((name), (mode)) +#endif + + /* functions */ + +#ifdef HAVE_STRERROR + extern char *strerror OF((int)); +# define zstrerror(errnum) strerror(errnum) +#else +# define zstrerror(errnum) "" +#endif + +#if defined(pyr) +# define NO_MEMCPY +#endif +#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) + /* Use our own functions for small and medium model with MSC <= 5.0. + * You may have to use the same strategy for Borland C (untested). + * The __SC__ check is for Symantec. + */ +# define NO_MEMCPY +#endif +#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) +# define HAVE_MEMCPY +#endif +#ifdef HAVE_MEMCPY +# ifdef SMALL_MEDIUM /* MSDOS small or medium model */ +# define zmemcpy _fmemcpy +# define zmemcmp _fmemcmp +# define zmemzero(dest, len) _fmemset(dest, 0, len) +# else +# define zmemcpy memcpy +# define zmemcmp memcmp +# define zmemzero(dest, len) memset(dest, 0, len) +# endif +#else + extern void zmemcpy OF((Bytef* dest, const Bytef* source, uInt len)); + extern int zmemcmp OF((const Bytef* s1, const Bytef* s2, uInt len)); + extern void zmemzero OF((Bytef* dest, uInt len)); +#endif + +/* Diagnostic functions */ +#ifdef DEBUG +# include + extern int z_verbose; + extern void z_error OF((char *m)); +# define Assert(cond,msg) {if(!(cond)) z_error((char*)msg);} +# define Trace(x) {if (z_verbose>=0) fprintf x ;} +# define Tracev(x) {if (z_verbose>0) fprintf x ;} +# define Tracevv(x) {if (z_verbose>1) fprintf x ;} +# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} +# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} +#else +# define Assert(cond,msg) +# define Trace(x) +# define Tracev(x) +# define Tracevv(x) +# define Tracec(c,x) +# define Tracecv(c,x) +#endif + + +typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf, + uInt len)); +extern "C" voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); +extern "C" void zcfree OF((voidpf opaque, voidpf ptr)); + +#define ZALLOC(strm, items, size) \ + (*((strm)->zalloc))((strm)->opaque, (items), (size)) +#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) +#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} + +#endif /* _Z_UTIL_H */ diff --git a/source/visualization/HepRep/src/DefaultHepRep.cc b/source/visualization/HepRep/src/DefaultHepRep.cc new file mode 100644 index 0000000000..9d0e789170 --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRep.cc @@ -0,0 +1,100 @@ + +#include "DefaultHepRep.h" + +using namespace std; +using namespace HEPREP; + +DefaultHepRep::DefaultHepRep() { +} + +DefaultHepRep::~DefaultHepRep() { + for (vector::iterator i1 = typeTrees.begin(); i1 != typeTrees.end(); i1++) { + delete (*i1); + } + for (vector::iterator i2 = instanceTrees.begin(); i2 != instanceTrees.end(); i2++) { + delete (*i2); + } +} + +HepRep* DefaultHepRep::copy(HepRepSelectFilter*) { + cerr << "DefaultHepRep::copy(HepRepSelectFilter*) not implemented." << endl; + return NULL; +} + +vector* DefaultHepRep::getLayerOrder() { + return &layers; +} + +bool DefaultHepRep::addLayer(string layer) { + layers.push_back(layer); + return true; +} + +bool DefaultHepRep::addTypeTree(HepRepTypeTree* typeTree) { + typeTrees.push_back(typeTree); + return true; +} + +void DefaultHepRep::removeTypeTree(HepRepTypeTree*) { + cerr << "DefaultHepRep::removeTypeTree(HepRepTypeTree*) not implemented." << endl; +} + +HepRepTypeTree* DefaultHepRep::getTypeTree(string, string) { + cerr << "DefaultHepRep::getTypeTree(string, string) not implemented." << endl; + return NULL; +} + +vector* DefaultHepRep::getTypeTrees() { + return &typeTrees; +} + +HepRepType* DefaultHepRep::getType(string) { + cerr << "DefaultHepRep::getType(string) not implemented." << endl; + return NULL; +} + +bool DefaultHepRep::addInstanceTree(HepRepInstanceTree* instanceTree) { + instanceTrees.push_back(instanceTree); + return true; +} + +void DefaultHepRep::overlayInstanceTree(HepRepInstanceTree *) { + cerr << "DefaultHepRep::overlayInstanceTree(HepRepInstanceTree * instanceTree) not implemented." << endl; +} + +void DefaultHepRep::removeInstanceTree(HepRepInstanceTree*) { + cerr << "DefaultHepRep::removeInstanceTree(HepRepInstanceTree*) not implemented." << endl; +} + +HepRepInstanceTree* DefaultHepRep::getInstanceTreeTop(string, string) { + cerr << "DefaultHepRep::getInstanceTreeTop(string, string) not implemented." << endl; + return NULL; +} + +HepRepInstanceTree* DefaultHepRep::getInstances(string, string, + vector) { + cerr << "DefaultHepRep::getInstances(string, string, vector) not implemented." << endl; + return NULL; +} + +HepRepInstanceTree* DefaultHepRep::getInstancesAfterAction( + string, + string, + vector, + vector, + bool, + bool, + bool, + vector) { + cerr << "DefaultHepRep::getInstancesAfterAction(string, string, vector, vector, bool, bool, bool, vector) not implemented." << endl; + return NULL; +} + +string DefaultHepRep::checkForException() { + return NULL; +} + +vector* DefaultHepRep::getInstanceTrees() { + return &instanceTrees; +} + diff --git a/source/visualization/HepRep/src/DefaultHepRepAction.cc b/source/visualization/HepRep/src/DefaultHepRepAction.cc index 46e264c09b..eb9294891a 100644 --- a/source/visualization/HepRep/src/DefaultHepRepAction.cc +++ b/source/visualization/HepRep/src/DefaultHepRepAction.cc @@ -1,25 +1,5 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 "DefaultHepRepAction.h" @@ -42,6 +22,6 @@ string DefaultHepRepAction::getExpression() { } HepRepAction* DefaultHepRepAction::copy() { - return NULL; + return new DefaultHepRepAction(name, expression); } diff --git a/source/visualization/HepRep/src/DefaultHepRepAttDef.cc b/source/visualization/HepRep/src/DefaultHepRepAttDef.cc index d745938244..451ad6511d 100644 --- a/source/visualization/HepRep/src/DefaultHepRepAttDef.cc +++ b/source/visualization/HepRep/src/DefaultHepRepAttDef.cc @@ -1,28 +1,8 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 +#include #include "DefaultHepRepAttDef.h" @@ -37,7 +17,7 @@ DefaultHepRepAttDef::~DefaultHepRepAttDef() { } HepRepAttDef* DefaultHepRepAttDef::copy() { - return NULL; + return new DefaultHepRepAttDef(name, desc, category, extra); } string DefaultHepRepAttDef::getName() { @@ -45,14 +25,9 @@ string DefaultHepRepAttDef::getName() { } string DefaultHepRepAttDef::getLowerCaseName() { - char* tmp = new char[strlen(name.c_str())]; - strcpy(tmp, name.c_str()); - int i = -1; - do { - i++; - tmp[i] = tolower(tmp[i]); - } while (tmp[i] != 0); - return tmp; + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return s; } string DefaultHepRepAttDef::getDescription() { diff --git a/source/visualization/HepRep/src/DefaultHepRepAttValue.cc b/source/visualization/HepRep/src/DefaultHepRepAttValue.cc index 6e57e3505b..d0bdd66bdc 100644 --- a/source/visualization/HepRep/src/DefaultHepRepAttValue.cc +++ b/source/visualization/HepRep/src/DefaultHepRepAttValue.cc @@ -1,31 +1,10 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 #include #include +#include #include "HEPREP/HepRepConstants.h" @@ -81,7 +60,15 @@ void DefaultHepRepAttValue::init() { } HepRepAttValue* DefaultHepRepAttValue::copy() { - return NULL; + switch(type) { + case HepRepConstants::TYPE_COLOR: new DefaultHepRepAttValue(name, colorValue, showLabelValue); + case HepRepConstants::TYPE_STRING: new DefaultHepRepAttValue(name, stringValue, showLabelValue); + case HepRepConstants::TYPE_LONG: new DefaultHepRepAttValue(name, longValue, showLabelValue); + case HepRepConstants::TYPE_INT: new DefaultHepRepAttValue(name, (int)longValue, showLabelValue); + case HepRepConstants::TYPE_DOUBLE: new DefaultHepRepAttValue(name, doubleValue, showLabelValue); + case HepRepConstants::TYPE_BOOLEAN: new DefaultHepRepAttValue(name, booleanValue, showLabelValue); + default: return new DefaultHepRepAttValue(name, "Unknown type stored in HepRepAttDef", showLabelValue); + } } string DefaultHepRepAttValue::getName() { @@ -89,14 +76,9 @@ string DefaultHepRepAttValue::getName() { } string DefaultHepRepAttValue::getLowerCaseName() { - char *tmp = new char[strlen(name.c_str())]; - strcpy(tmp, name.c_str()); - int i = -1; - do { - i++; - tmp[i] = tolower(tmp[i]); - } while (tmp[i] != 0); - return tmp; + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return s; } int DefaultHepRepAttValue::getType() { @@ -120,32 +102,39 @@ int DefaultHepRepAttValue::showLabel() { } string DefaultHepRepAttValue::getString() { - if (type != HepRepConstants::TYPE_STRING) cerr << "Trying to access AttValue as 'string'" << endl; + if (type != HepRepConstants::TYPE_STRING) cerr << "Trying to access AttValue '" << getName() << "' as 'string'" << endl; return stringValue; } +string DefaultHepRepAttValue::getLowerCaseString() { + if (type != HepRepConstants::TYPE_STRING) cerr << "Trying to access AttValue '" << getName() << "' as 'string'" << endl; + string s = stringValue; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return s; +} + long DefaultHepRepAttValue::getLong() { - if (type != HepRepConstants::TYPE_LONG) cerr << "Trying to access AttValue as 'long'" << endl; + if (type != HepRepConstants::TYPE_LONG) cerr << "Trying to access AttValue '" << getName() << "' as 'long'" << endl; return longValue; } int DefaultHepRepAttValue::getInteger() { - if (type != HepRepConstants::TYPE_INT) cerr << "Trying to access AttValue as 'int'" << endl; + if (type != HepRepConstants::TYPE_INT) cerr << "Trying to access AttValue '" << getName() << "' as 'int'" << endl; return (int)longValue; } double DefaultHepRepAttValue::getDouble() { - if (type != HepRepConstants::TYPE_DOUBLE) cerr << "Trying to access AttValue as 'double'" << endl; + if (type != HepRepConstants::TYPE_DOUBLE) cerr << "Trying to access AttValue '" << getName() << "' as 'double'" << endl; return doubleValue; } bool DefaultHepRepAttValue::getBoolean() { - if (type != HepRepConstants::TYPE_BOOLEAN) cerr << "Trying to access AttValue as 'boolean'" << endl; + if (type != HepRepConstants::TYPE_BOOLEAN) cerr << "Trying to access AttValue '" << getName() << "' as 'boolean'" << endl; return booleanValue; } vector DefaultHepRepAttValue::getColor() { - if (type != HepRepConstants::TYPE_COLOR) cerr << "Trying to access AttValue as 'color'" << endl; + if (type != HepRepConstants::TYPE_COLOR) cerr << "Trying to access AttValue '" << getName() << "' as 'color'" << endl; return colorValue; } @@ -164,7 +153,7 @@ string DefaultHepRepAttValue::getAsString() { return buffer; case HepRepConstants::TYPE_INT: sprintf(buffer, "%d", getInteger()); return buffer; - case HepRepConstants::TYPE_DOUBLE: sprintf(buffer, "%f", getDouble()); + case HepRepConstants::TYPE_DOUBLE: sprintf(buffer, "%g", getDouble()); return buffer; case HepRepConstants::TYPE_BOOLEAN: return (getBoolean()) ? "true" : "false"; default: return "Unknown typecode"; diff --git a/source/visualization/HepRep/src/DefaultHepRepAttribute.cc b/source/visualization/HepRep/src/DefaultHepRepAttribute.cc new file mode 100644 index 0000000000..31093271b8 --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepAttribute.cc @@ -0,0 +1,84 @@ + +#include "DefaultHepRepAttribute.h" +#include "DefaultHepRepAttValue.h" + +#include +#include + +using namespace std; +using namespace HEPREP; + + +DefaultHepRepAttribute::DefaultHepRepAttribute() { +} + +DefaultHepRepAttribute::~DefaultHepRepAttribute() { + for (map::iterator i = attValues.begin(); i != attValues.end(); i++) { + delete (*i).second; + } + + attList.clear(); +} + +vector* DefaultHepRepAttribute::getAttValuesFromNode() { + attList.clear(); + for (map::iterator i = attValues.begin(); i != attValues.end(); i++) { + if ((*i).first != "layer") attList.push_back((*i).second); + } + return &attList; +} + +bool DefaultHepRepAttribute::addAttValue(HepRepAttValue* hepRepAttValue) { + string lowerCaseName = hepRepAttValue->getLowerCaseName(); + if (attValues[lowerCaseName] != NULL) delete attValues[lowerCaseName]; + attValues[lowerCaseName] = hepRepAttValue; + return true; +} + +bool DefaultHepRepAttribute::addAttValue(string key, char *value, int showLabel) { + return addAttValue(key, (std::string)value, showLabel); +} + +bool DefaultHepRepAttribute::addAttValue(string key, string value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool DefaultHepRepAttribute::addAttValue(string key, int value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool DefaultHepRepAttribute::addAttValue(string key, double value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool DefaultHepRepAttribute::addAttValue(string key, bool value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool DefaultHepRepAttribute::addAttValue(string key, vector value, int showLabel) { + return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); +} + +bool DefaultHepRepAttribute::addAttValue(string key, double red, double green, double blue, double alpha, int showLabel) { + vector color; + color.push_back(red); + color.push_back(green); + color.push_back(blue); + color.push_back(alpha); + return addAttValue(new DefaultHepRepAttValue(key, color, showLabel)); +} + +HepRepAttValue* DefaultHepRepAttribute::getAttValueFromNode(string name) { + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return (attValues.count(s) > 0) ? attValues[s] : NULL; +} + +HepRepAttValue* DefaultHepRepAttribute::removeAttValue(string name) { + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + HepRepAttValue* attValue = attValues[s]; + attValues.erase(s); + return attValue; +} + diff --git a/source/visualization/HepRep/src/DefaultHepRepDefinition.cc b/source/visualization/HepRep/src/DefaultHepRepDefinition.cc new file mode 100644 index 0000000000..0e488a34c6 --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepDefinition.cc @@ -0,0 +1,46 @@ + +#include "DefaultHepRepDefinition.h" +#include "DefaultHepRepAttDef.h" + +#include +#include + +using namespace std; +using namespace HEPREP; + +DefaultHepRepDefinition::DefaultHepRepDefinition() + : DefaultHepRepAttribute() { +} + +DefaultHepRepDefinition::~DefaultHepRepDefinition() { + vector* list = getAttDefsFromNode(); + for (vector::iterator i1 = list->begin(); i1 != list->end(); i1++) { + delete (*i1); + } +} + +vector* DefaultHepRepDefinition::getAttDefsFromNode() { + attList.clear(); + for (map::iterator i = attDefs.begin(); i != attDefs.end(); i++) { + attList.push_back((*i).second); + } + return &attList; +} + +bool DefaultHepRepDefinition::addAttDef(HepRepAttDef* hepRepAttDef) { + string lowerCaseName = hepRepAttDef->getLowerCaseName(); + if (attDefs[lowerCaseName] != NULL) delete attDefs[lowerCaseName]; + attDefs[lowerCaseName] = hepRepAttDef; + return true; +} + +bool DefaultHepRepDefinition::addAttDef(string name, string desc, string type, string extra) { + return addAttDef(new DefaultHepRepAttDef(name, desc, type, extra)); +} + +HepRepAttDef* DefaultHepRepDefinition::getAttDefFromNode(string name) { + string s = name; + transform(s.begin(), s.end(), s.begin(), (int(*)(int)) tolower); + return (attDefs.count(s) > 0) ? attDefs[s] : NULL; +} + diff --git a/source/visualization/HepRep/src/DefaultHepRepFactory.cc b/source/visualization/HepRep/src/DefaultHepRepFactory.cc new file mode 100644 index 0000000000..60d26c259d --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepFactory.cc @@ -0,0 +1,77 @@ + +#include +#include + +#include "DefaultHepRepFactory.h" +#include "DefaultHepRepPoint.h" +#include "DefaultHepRepInstance.h" +#include "DefaultHepRepInstanceTree.h" +#include "DefaultHepRepType.h" +#include "DefaultHepRepTypeTree.h" +#include "DefaultHepRep.h" +#include "DefaultHepRepAction.h" +#include "DefaultHepRepTreeID.h" + +using namespace std; +using namespace HEPREP; + + +DefaultHepRepFactory::DefaultHepRepFactory() { +} + +DefaultHepRepFactory::~DefaultHepRepFactory() { +} + +HepRepReader* DefaultHepRepFactory::createHepRepReader (istream*) { + cerr << "DefaultHepRepFactory::createHepRepReader not implemented" << endl; + return NULL; +} + +HepRepReader* DefaultHepRepFactory::createHepRepReader (std::string) { + cerr << "DefaultHepRepFactory::createHepRepReader not implemented" << endl; + return NULL; +} + +HepRepWriter* DefaultHepRepFactory::createHepRepWriter(ostream*, bool, bool) { + cerr << "DefaultHepRepFactory::createHepRepWriter not implemented" << endl; + return NULL; +} + +HepRepPoint* DefaultHepRepFactory::createHepRepPoint (HepRepInstance* instance, + double x, double y, double z) { + return new DefaultHepRepPoint(instance, x, y, z); +} + +HepRepInstance* DefaultHepRepFactory::createHepRepInstance (HepRepInstance* parent, HepRepType* type) { + return new DefaultHepRepInstance(parent, type); +} + +HepRepInstance* DefaultHepRepFactory::createHepRepInstance (HepRepInstanceTree* parent, HepRepType* type) { + return new DefaultHepRepInstance(parent, type); +} + +HepRepTreeID* DefaultHepRepFactory::createHepRepTreeID (string name, string version, string qualifier) { + return new DefaultHepRepTreeID(name, version, qualifier); +} + +HepRepAction* DefaultHepRepFactory::createHepRepAction (string name, string expression) { + return new DefaultHepRepAction(name, expression); +} + +HepRepInstanceTree* DefaultHepRepFactory::createHepRepInstanceTree (string name, string version, + HepRepTreeID* typeTreeID) { + return new DefaultHepRepInstanceTree(name, version, typeTreeID); +} + +HepRepType* DefaultHepRepFactory::createHepRepType (HepRepType* parent, string name) { + return new DefaultHepRepType(parent, name); +} + +HepRepTypeTree* DefaultHepRepFactory::createHepRepTypeTree (HepRepTreeID* treeID) { + return new DefaultHepRepTypeTree(treeID); +} + +HepRep* DefaultHepRepFactory::createHepRep () { + return new DefaultHepRep(); +} + diff --git a/source/visualization/HepRep/src/DefaultHepRepInstance.cc b/source/visualization/HepRep/src/DefaultHepRepInstance.cc new file mode 100644 index 0000000000..8229e59b70 --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepInstance.cc @@ -0,0 +1,77 @@ + +#include + +#include "DefaultHepRepInstance.h" + +using namespace std; +using namespace HEPREP; + +DefaultHepRepInstance::DefaultHepRepInstance(HepRepInstance* instance, HepRepType* heprepType) + : DefaultHepRepAttribute(), parent(instance), type(heprepType) { + + if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; + ((HepRepInstance*)parent)->addInstance(this); +} + +DefaultHepRepInstance::DefaultHepRepInstance(HepRepInstanceTree* instanceTree, HepRepType* heprepType) + : DefaultHepRepAttribute(), parent(instanceTree), type(heprepType) { + + if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; + ((HepRepInstanceTree*)parent)->addInstance(this); +} + +DefaultHepRepInstance::~DefaultHepRepInstance() { + parent = NULL; + type = NULL; + for (vector::iterator i1 = instances.begin(); i1 != instances.end(); i1++) { + delete (*i1); + } + for (vector::iterator i2 = points.begin(); i2 != points.end(); i2++) { + delete (*i2); + } +} + +void DefaultHepRepInstance::overlay(HepRepInstance *) { + cerr << "DefaultHepRepInstance::overlay(HepRepInstance * instance) not implemented." << endl; +} + +HepRepInstance* DefaultHepRepInstance::copy(HepRep*, HepRepInstance*, HepRepSelectFilter*) { + cerr << "DefaultHepRepInstance::copy(HepRep*, HepRepInstance*, HepRepSelectFilter*) not implemented." << endl; + return NULL; +} + +HepRepInstance* DefaultHepRepInstance::copy(HepRep*, HepRepInstanceTree*, HepRepSelectFilter*) { + cerr << "DefaultHepRepInstance::copy(HepRep*, HepRepInstanceTree*, HepRepSelectFilter*) not implemented." << endl; + return NULL; +} + +HepRepType* DefaultHepRepInstance::getType() { + return type; +} + +bool DefaultHepRepInstance::addPoint(HepRepPoint* point) { + points.push_back(point); + return true; +} + +vector* DefaultHepRepInstance::getPoints() { + return &points; +} + +bool DefaultHepRepInstance::addInstance(HepRepInstance* instance) { + instances.push_back(instance); + return true; +} + +void DefaultHepRepInstance::removeInstance(HepRepInstance*) { + cerr << "DefaultHepRepInstance::removeInstance(HepRepInstance*) not implemented." << endl; +} + +vector* DefaultHepRepInstance::getInstances() { + return &instances; +} + +HepRepAttValue* DefaultHepRepInstance::getAttValue(string name) { + HepRepAttValue* value = getAttValueFromNode(name); + return (value != NULL) ? value : type->getAttValue(name); +} diff --git a/source/visualization/HepRep/src/DefaultHepRepInstanceTree.cc b/source/visualization/HepRep/src/DefaultHepRepInstanceTree.cc new file mode 100644 index 0000000000..31bcb971f8 --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepInstanceTree.cc @@ -0,0 +1,56 @@ + +#include "DefaultHepRepInstanceTree.h" + +using namespace std; +using namespace HEPREP; + +DefaultHepRepInstanceTree::DefaultHepRepInstanceTree(string name, string version, HepRepTreeID* typeTree) + : DefaultHepRepTreeID(name, version), typeTree(typeTree) { +} + +DefaultHepRepInstanceTree::~DefaultHepRepInstanceTree() { + for (vector::iterator i1 = instances.begin(); i1 != instances.end(); i1++) { + delete (*i1); + } + instances.clear(); +} + +void DefaultHepRepInstanceTree::overlay(HepRepInstanceTree *) { + cerr << "DefaultHepRepInstanceTree::overlay(HepRepInstanceTree * instanceTree) not implemented." << endl; +} + +HepRepTreeID* DefaultHepRepInstanceTree::copy() { + return DefaultHepRepTreeID::copy(); +} + +HepRepInstanceTree* DefaultHepRepInstanceTree::copy(HepRep*, HepRepSelectFilter*) { + cerr << "DefaultHepRepInstanceTree::copy(HepRep*, HepRepSelectFilter*) not implemented." << endl; + return NULL; +} + +bool DefaultHepRepInstanceTree::addInstance(HepRepInstance* instance) { + instances.push_back(instance); + return true; +} + +void DefaultHepRepInstanceTree::removeInstance(HepRepInstance*) { + cerr << "DefaultHepRepInstanceTree::removeInstance(HepRepInstance*) not implemented." << endl; +} + +vector* DefaultHepRepInstanceTree::getInstances() { + return &instances; +} + +bool DefaultHepRepInstanceTree::addInstanceTree(HepRepTreeID* treeID) { + instanceTrees.push_back(treeID); + return true; +} + +HepRepTreeID* DefaultHepRepInstanceTree::getTypeTree() { + return typeTree; +} + +vector* DefaultHepRepInstanceTree::getInstanceTrees() { + return &instanceTrees; +} + diff --git a/source/visualization/HepRep/src/DefaultHepRepPoint.cc b/source/visualization/HepRep/src/DefaultHepRepPoint.cc new file mode 100644 index 0000000000..e3e0a0edaf --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepPoint.cc @@ -0,0 +1,115 @@ + +#include +#include +#include + +#include "DefaultHepRepPoint.h" + +using namespace std; +using namespace HEPREP; + +DefaultHepRepPoint::DefaultHepRepPoint(HepRepInstance* inst, double x, double y, double z) + : DefaultHepRepAttribute(), instance(inst), x(x), y(y), z(z) { + + if (instance == NULL) { + cerr << "HepRepPoints cannot be created without a HepRepInstance." << endl; + } else { + instance->addPoint(this); + } +} + +DefaultHepRepPoint::~DefaultHepRepPoint() { +} + +HepRepInstance* DefaultHepRepPoint::getInstance() { + return instance; +} + +HepRepAttValue* DefaultHepRepPoint::getAttValue(string lowerCaseName) { + HepRepAttValue* value = getAttValueFromNode(lowerCaseName); + return (value != NULL) ? value : instance->getAttValue(lowerCaseName); +} + +HepRepPoint* DefaultHepRepPoint::copy(HepRepInstance* inst) { + return new DefaultHepRepPoint(inst, x, y, z); +} + +double DefaultHepRepPoint::getX() { + return x; +} + +double DefaultHepRepPoint::getY() { + return y; +} + +double DefaultHepRepPoint::getZ() { + return z; +} + +vector* DefaultHepRepPoint::getXYZ(vector* xyz) { + (*xyz)[0] = x; + (*xyz)[1] = y; + (*xyz)[2] = z; + return xyz; +} + +double DefaultHepRepPoint::getRho() { + return sqrt(x*x + y*y); +} + +double DefaultHepRepPoint::getPhi() { + return atan2(y, x); +} + +double DefaultHepRepPoint::getTheta() { + return atan2(getRho(), z); +} + +double DefaultHepRepPoint::getR() { + double r = getRho(); + return sqrt(r*r + z*z); +} + +double DefaultHepRepPoint::getEta() { + double ct = cos(getTheta()); + return -0.5*log((1.-ct)/(1.+ct)); +} + +double DefaultHepRepPoint::getX(double xVertex, double, double) { + return x - xVertex; +} + +double DefaultHepRepPoint::getY(double, double yVertex, double) { + return y - yVertex; +} + +double DefaultHepRepPoint::getZ(double, double, double zVertex) { + return z - zVertex; +} + +double DefaultHepRepPoint::getRho(double xVertex, double yVertex, double zVertex) { + double dx = getX(xVertex, yVertex, zVertex); + double dy = getY(xVertex, yVertex, zVertex); + return sqrt(dx*dx + dy*dy); +} + +double DefaultHepRepPoint::getPhi(double xVertex, double yVertex, double zVertex) { + return atan2(getY(xVertex, yVertex, zVertex), getX(xVertex, yVertex, zVertex)); +} + +double DefaultHepRepPoint::getTheta(double xVertex, double yVertex, double zVertex) { + return atan2(getRho(xVertex, yVertex, zVertex), getZ(xVertex, yVertex, zVertex)); +} + +double DefaultHepRepPoint::getR(double xVertex, double yVertex, double zVertex) { + double dr = getRho(xVertex, yVertex, zVertex); + double dz = getZ(xVertex, yVertex, zVertex); + return sqrt(dr*dr + dz*dz); +} + +double DefaultHepRepPoint::getEta(double xVertex, double yVertex, double zVertex) { + double ct = cos(getTheta(xVertex, yVertex, zVertex)); + return -0.5*log((1.-ct)/(1.+ct)); +} + + diff --git a/source/visualization/HepRep/src/DefaultHepRepTreeID.cc b/source/visualization/HepRep/src/DefaultHepRepTreeID.cc index 7585eaf856..f4a08b99f5 100644 --- a/source/visualization/HepRep/src/DefaultHepRepTreeID.cc +++ b/source/visualization/HepRep/src/DefaultHepRepTreeID.cc @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 @@ -52,6 +30,6 @@ string DefaultHepRepTreeID::getVersion() { } HepRepTreeID* DefaultHepRepTreeID::copy() { - return NULL; + return new DefaultHepRepTreeID(name, version, qualifier); } diff --git a/source/visualization/HepRep/src/DefaultHepRepType.cc b/source/visualization/HepRep/src/DefaultHepRepType.cc new file mode 100644 index 0000000000..e855b45de4 --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepType.cc @@ -0,0 +1,96 @@ + +#include "DefaultHepRepType.h" + +using namespace std; +using namespace HEPREP; + +DefaultHepRepType::DefaultHepRepType(HepRepType* parentType, string typeName) + : DefaultHepRepDefinition(), parent(parentType), name(typeName) { + this->description = "No Description"; + this->infoURL = "No Info URL"; + + // HepRepTypes are sometimes used without a parent (top-level) + if (parent != NULL) { + parent->addType(this); + } +} + +DefaultHepRepType::~DefaultHepRepType() { + for (vector::iterator i1 = types.begin(); i1 != types.end(); i1++) { + delete (*i1); + } +} + +HepRepType* DefaultHepRepType::getSuperType() { + return parent; +} + +HepRepAttDef* DefaultHepRepType::getAttDef(string defName) { + HepRepAttDef* def = NULL; + HepRepType* type = this; + while ((def == NULL) && (type != NULL)) { + def = type->getAttDefFromNode(defName); + type = type->getSuperType(); + } + if (def == NULL) { + cerr << "ERROR: No HepRepDefaults, trying to get definition for: " << defName << endl; + // FIXME, no HepRepDefaults + } + return def; +} + +/** + * searched for a value with given name. Search up the type tree if needed. + */ +HepRepAttValue* DefaultHepRepType::getAttValue(string attName) { + HepRepAttValue* value = NULL; + HepRepType* type = this; + while ((value == NULL) && (type != NULL)) { + value = type->getAttValueFromNode(attName); + type = type->getSuperType(); + } + if (value == NULL) { + cerr << "ERROR: No HepRepDefaults, trying to get value for: " << attName << endl; + // FIXME, no HepRepDefaults + } + return value; +} + +HepRepType* DefaultHepRepType::copy(HepRep*, HepRepType*) { + cerr << "DefaultHepRepType::copy(HepRep*, HepRepType*) not implemented." << endl; + return NULL; +} + +string DefaultHepRepType::getName() { + return name; +} + +string DefaultHepRepType::getFullName() { + return (getSuperType() == NULL) ? getName() : getSuperType()->getFullName() + "/" + getName(); +} + +string DefaultHepRepType::getDescription() { + return description; +} + +void DefaultHepRepType::setDescription(string desc) { + this->description = desc; +} + +string DefaultHepRepType::getInfoURL() { + return infoURL; +} + +void DefaultHepRepType::setInfoURL(string info) { + this->infoURL = info; +} + +bool DefaultHepRepType::addType(HepRepType* type) { + types.push_back(type); + return true; +} + +vector* DefaultHepRepType::getTypes() { + return &types; +} + diff --git a/source/visualization/HepRep/src/DefaultHepRepTypeTree.cc b/source/visualization/HepRep/src/DefaultHepRepTypeTree.cc new file mode 100644 index 0000000000..b7c96cbc99 --- /dev/null +++ b/source/visualization/HepRep/src/DefaultHepRepTypeTree.cc @@ -0,0 +1,37 @@ + +#include + +#include "DefaultHepRepTypeTree.h" + +using namespace std; +using namespace HEPREP; + +DefaultHepRepTypeTree::DefaultHepRepTypeTree(HepRepTreeID* typeTree) + : DefaultHepRepTreeID(typeTree->getName(), typeTree->getVersion()) { + delete typeTree; +} + +DefaultHepRepTypeTree::~DefaultHepRepTypeTree() { + for (vector::iterator i1 = types.begin(); i1 != types.end(); i1++) { + delete (*i1); + } +} + +HepRepTreeID* DefaultHepRepTypeTree::copy() { + return DefaultHepRepTreeID::copy(); +} + +HepRepTypeTree* DefaultHepRepTypeTree::copy(HepRep*) { + cerr << "DefaultHepRepTypeTree::copy(HepRep*) not implemented." << endl; + return NULL; +} + +bool DefaultHepRepTypeTree::addType(HepRepType* type) { + types.push_back(type); + return true; +} + +vector* DefaultHepRepTypeTree::getTypes() { + return &types; +} + diff --git a/source/visualization/HepRep/src/G4HepRep.cc b/source/visualization/HepRep/src/G4HepRep.cc index 30d189921d..cb8f6f8a70 100644 --- a/source/visualization/HepRep/src/G4HepRep.cc +++ b/source/visualization/HepRep/src/G4HepRep.cc @@ -23,6 +23,9 @@ // /** + * We allow only one HepRep Scene handler and one attached Viewer. + * The sceneHandler associates with the output file + * * @author Mark Donszelmann */ @@ -30,37 +33,53 @@ #include "G4Types.hh" #include "G4HepRepViewer.hh" #include "G4HepRepSceneHandler.hh" +#include "G4HepRepMessenger.hh" //This #include "G4HepRep.hh" using namespace HEPREP; +using namespace std; G4HepRep::G4HepRep () : G4VGraphicsSystem ("G4HepRep", "HepRepXML", - "HepRep Generic Driver for XML, RMI and CORBA", - G4VGraphicsSystem::threeD) { + "HepRep Generic Driver for XML, RMI and CORBA", + G4VGraphicsSystem::threeD), + sceneHandler(NULL), + viewer(NULL) { + messenger = new G4HepRepMessenger(); } G4HepRep::~G4HepRep () { + delete messenger; } G4VSceneHandler* G4HepRep::CreateSceneHandler (const G4String& name) { - G4HepRepSceneHandler* scene = new G4HepRepSceneHandler (*this, name); - return scene; + if (sceneHandler != NULL) { + cout << "G4HepRep::CreateSceneHandler: Cannot create more than one G4HepRepSceneHandler" << endl; + return NULL; + } + sceneHandler = new G4HepRepSceneHandler (*this, *messenger, name); + return sceneHandler; } G4VViewer* G4HepRep::CreateViewer (G4VSceneHandler& scene, const G4String& name) { - G4VViewer* view = new G4HepRepViewer ((G4HepRepSceneHandler&)scene, name); - if (view) { - if (view->GetViewId() < 0) { - G4cout << "G4HepRep::CreateViewer: ERROR flagged by negative view ID." << G4endl; - delete view; - view = NULL; - } - } else { - G4cout << "G4HepRep::CreateViewer: null pointer on new G4HepRepViewer." << G4endl; + if (viewer != NULL) { + cout << "G4HepRep::CreateViewer: Cannot create more than one G4HepRepViewer" << endl; + return NULL; } - return view; + viewer = new G4HepRepViewer ((G4HepRepSceneHandler&)scene, name); + return viewer; } + +void G4HepRep::removeSceneHandler() { + // actual deletion is done in VisManager + sceneHandler = NULL; +} + +void G4HepRep::removeViewer() { + // actual deletion is done in VisManager + viewer = NULL; +} + diff --git a/source/visualization/HepRep/src/G4HepRepFile.cc b/source/visualization/HepRep/src/G4HepRepFile.cc index c43640b583..5f6f346494 100644 --- a/source/visualization/HepRep/src/G4HepRepFile.cc +++ b/source/visualization/HepRep/src/G4HepRepFile.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepFile.cc,v 1.7 2003/06/25 10:19:59 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HepRepFile.cc,v 1.8 2003/07/12 19:48:15 duns Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Joseph Perl 1 October 2001 @@ -29,20 +29,20 @@ // HepRep graphics format (HepRep version 1). //HepRep -#include "HepRepXMLWriter.hh" +#include "G4HepRepFileXMLWriter.hh" #include "G4HepRepFile.hh" #include "G4HepRepFileSceneHandler.hh" #include "G4HepRepFileViewer.hh" -static HepRepXMLWriter* hepRepXMLWriter; +static G4HepRepFileXMLWriter* hepRepXMLWriter; G4HepRepFile::G4HepRepFile(): G4VGraphicsSystem("G4HepRepFile", "HepRepFile", "A HepRep (format 1) ascii file driver", G4VGraphicsSystem::threeD) { - hepRepXMLWriter = new HepRepXMLWriter(); + hepRepXMLWriter = new G4HepRepFileXMLWriter(); } G4HepRepFile::~G4HepRepFile() {} @@ -77,6 +77,6 @@ G4VViewer* G4HepRepFile::CreateViewer(G4VSceneHandler& scene, return pView; } -HepRepXMLWriter* G4HepRepFile::GetHepRepXMLWriter () { +G4HepRepFileXMLWriter* G4HepRepFile::GetHepRepXMLWriter () { return hepRepXMLWriter; } diff --git a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc index a220dd5032..4b80889ee9 100644 --- a/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc +++ b/source/visualization/HepRep/src/G4HepRepFileSceneHandler.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepFileSceneHandler.cc,v 1.11.2.1.2.2 2003/06/25 10:20:00 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HepRepFileSceneHandler.cc,v 1.17 2003/12/09 15:39:26 gunter Exp $ +// GEANT4 tag $Name: geant4-06-00 $ // // // Joseph Perl 27th January 2002 @@ -51,7 +51,7 @@ #include "G4AttValue.hh" //HepRep -#include "HepRepXMLWriter.hh" +#include "G4HepRepFileXMLWriter.hh" G4int G4HepRepFileSceneHandler::fSceneIdCount = 0; // Counter for HepRep scene handlers. @@ -369,8 +369,7 @@ void G4HepRepFileSceneHandler::AddThis (const G4VTrajectory& traj) { if (strcmp("Trajectory Points",previousName)!=0) { hepRepXMLWriter->addAttValue("DrawAs","Point"); hepRepXMLWriter->addAttValue("Layer",110); - // Change to False once related problem is fixed in WIRED. - hepRepXMLWriter->addAttValue("Visibility","True"); + hepRepXMLWriter->addAttValue("Visibility","False"); } for (i = 0; i < traj.GetPointEntries(); i++) { @@ -556,7 +555,7 @@ void G4HepRepFileSceneHandler::AddPrimitive(const G4NURBS&) { G4cout << "G4HepRepFileSceneHandler::AddPrimitive G4NURBS : not implemented. " << G4endl; } -HepRepXMLWriter *G4HepRepFileSceneHandler::GetHepRepXMLWriter() { +G4HepRepFileXMLWriter *G4HepRepFileSceneHandler::GetHepRepXMLWriter() { return hepRepXMLWriter; } @@ -681,3 +680,12 @@ void G4HepRepFileSceneHandler::CheckFileOpen() { hepRepXMLWriter->addAttDef("Radlen", "Material Radiation Length", "Physics",""); } } + +void G4HepRepFileSceneHandler::ClearTransientStore () { + G4VSceneHandler::ClearTransientStore (); + if (fpViewer) { + fpViewer -> SetView (); + fpViewer -> ClearView (); + fpViewer -> DrawView (); + } +} diff --git a/source/visualization/HepRep/src/G4HepRepFileViewer.cc b/source/visualization/HepRep/src/G4HepRepFileViewer.cc index 149208cb08..43f171a857 100644 --- a/source/visualization/HepRep/src/G4HepRepFileViewer.cc +++ b/source/visualization/HepRep/src/G4HepRepFileViewer.cc @@ -20,8 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // -// $Id: G4HepRepFileViewer.cc,v 1.10 2003/06/25 10:20:01 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ +// $Id: G4HepRepFileViewer.cc,v 1.11 2003/07/12 19:48:15 duns Exp $ +// GEANT4 tag $Name: geant4-06-00 $ #include "G4HepRepFileViewer.hh" @@ -33,7 +33,7 @@ #include "G4HepRepFileSceneHandler.hh" //HepRep -#include "HepRepXMLWriter.hh" +#include "G4HepRepFileXMLWriter.hh" G4HepRepFileViewer::G4HepRepFileViewer (G4VSceneHandler& sceneHandler, const G4String& name): diff --git a/source/visualization/HepRep/src/HepRepXMLWriter.cc b/source/visualization/HepRep/src/G4HepRepFileXMLWriter.cc similarity index 75% rename from source/visualization/HepRep/src/HepRepXMLWriter.cc rename to source/visualization/HepRep/src/G4HepRepFileXMLWriter.cc index d91524be6c..f648d81403 100644 --- a/source/visualization/HepRep/src/HepRepXMLWriter.cc +++ b/source/visualization/HepRep/src/G4HepRepFileXMLWriter.cc @@ -22,7 +22,7 @@ // //-------------------------------------------------------------------------- // File and Version Information: -// $Id: HepRepXMLWriter.cc,v 1.11 2003/06/25 10:20:07 gunter Exp $ +// $Id: G4HepRepFileXMLWriter.cc,v 1.1 2003/07/12 19:48:15 duns Exp $ // // Description: // Create a HepRep XML File (HepRep version 1). @@ -37,17 +37,17 @@ // Copyright (C) 2001 Stanford Linear Accelerator Center //------------------------------------------------------------------------ -#include "HepRepXMLWriter.hh" +#include "G4HepRepFileXMLWriter.hh" #include "G4ios.hh" -HepRepXMLWriter::HepRepXMLWriter() +G4HepRepFileXMLWriter::G4HepRepFileXMLWriter() { isOpen = false; init(); } -void HepRepXMLWriter::init() +void G4HepRepFileXMLWriter::init() { typeDepth = -1; @@ -64,7 +64,7 @@ void HepRepXMLWriter::init() inPoint = false; } -void HepRepXMLWriter::addType(const char* name,int newTypeDepth) +void G4HepRepFileXMLWriter::addType(const char* name,int newTypeDepth) { if (fout.good()) { @@ -78,7 +78,7 @@ void HepRepXMLWriter::addType(const char* name,int newTypeDepth) // Insert any layers that are missing from the hierarchy (protects against // callers that skip from, say, layer 1 to layer 3 with no layer 2). while (typeDepth < (newTypeDepth-1)) { - addType("Layer Inserted by HepRepXMLWriter", typeDepth + 1); + addType("Layer Inserted by G4HepRepFileXMLWriter", typeDepth + 1); addInstance(); } @@ -108,12 +108,12 @@ void HepRepXMLWriter::addType(const char* name,int newTypeDepth) } } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addType No file is currently open." << G4endl; + G4cout << "G4HepRepFileXMLWriter:addType No file is currently open." << G4endl; #endif } } -void HepRepXMLWriter::addInstance() +void G4HepRepFileXMLWriter::addInstance() { if (fout.good()) { @@ -125,17 +125,17 @@ void HepRepXMLWriter::addInstance() fout << "" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addInstance No HepRep Type is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addInstance No HepRep Type is currently open" << G4endl; #endif } } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addInstance No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addInstance No file is currently open" << G4endl; #endif } } -void HepRepXMLWriter::addPrimitive() +void G4HepRepFileXMLWriter::addPrimitive() { if (fout.good()) { @@ -147,17 +147,17 @@ void HepRepXMLWriter::addPrimitive() fout << "" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addPrimitive No HepRep Instance is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addPrimitive No HepRep Instance is currently open" << G4endl; #endif } } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addPrimitive No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addPrimitive No file is currently open" << G4endl; #endif } } -void HepRepXMLWriter::addPoint(double x, double y, double z) +void G4HepRepFileXMLWriter::addPoint(double x, double y, double z) { if (fout.good()) { @@ -169,17 +169,17 @@ void HepRepXMLWriter::addPoint(double x, double y, double z) fout << "" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addPoint No HepRep Primitive is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addPoint No HepRep Primitive is currently open" << G4endl; #endif } } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addPoint No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addPoint No file is currently open" << G4endl; #endif } } -void HepRepXMLWriter::addAttDef(const char* name, +void G4HepRepFileXMLWriter::addAttDef(const char* name, const char* desc, const char* type, const char* extra) @@ -192,13 +192,13 @@ void HepRepXMLWriter::addAttDef(const char* name, fout << " desc=\"" << desc << "\"/>" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addAttDef No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addAttDef No file is currently open" << G4endl; #endif } } // Four methods to fill attValues -void HepRepXMLWriter::addAttValue (const char* name, +void G4HepRepFileXMLWriter::addAttValue (const char* name, const char* value) { if (fout.good()) @@ -209,12 +209,12 @@ void HepRepXMLWriter::addAttValue (const char* name, fout << " value=\"" << value << "\"/>" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addAttValue No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addAttValue No file is currently open" << G4endl; #endif } } -void HepRepXMLWriter::addAttValue (const char* name, +void G4HepRepFileXMLWriter::addAttValue (const char* name, double value) { if (fout.good()) @@ -225,12 +225,12 @@ void HepRepXMLWriter::addAttValue (const char* name, fout << " value=\"" << value << "\"/>" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addAttValue No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addAttValue No file is currently open" << G4endl; #endif } } -void HepRepXMLWriter::addAttValue (const char* name, +void G4HepRepFileXMLWriter::addAttValue (const char* name, int value) { if (fout.good()) @@ -241,12 +241,12 @@ void HepRepXMLWriter::addAttValue (const char* name, fout << " value=\"" << value << "\"/>" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addAttValue No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addAttValue No file is currently open" << G4endl; #endif } } -void HepRepXMLWriter::addAttValue (const char* name, +void G4HepRepFileXMLWriter::addAttValue (const char* name, bool value) { if (fout.good()) @@ -260,12 +260,12 @@ void HepRepXMLWriter::addAttValue (const char* name, fout << " value=\"False\"/>" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addAttValue No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addAttValue No file is currently open" << G4endl; #endif } } -void HepRepXMLWriter::addAttValue (const char* name, +void G4HepRepFileXMLWriter::addAttValue (const char* name, double value1, double value2, double value3) @@ -281,12 +281,12 @@ void HepRepXMLWriter::addAttValue (const char* name, fout << " value=\"" << redness << "," << greenness << "," << blueness << "\"/>" << G4endl; } else { #ifdef G4HEPREPFILEDEBUG - G4cout << "HepRepXMLWriter:addAttValue No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:addAttValue No file is currently open" << G4endl; #endif } } -void HepRepXMLWriter::open(const char* fileSpec) +void G4HepRepFileXMLWriter::open(const char* fileSpec) { if (isOpen) close(); @@ -301,11 +301,11 @@ void HepRepXMLWriter::open(const char* fileSpec) isOpen = true; init(); } else { - G4cout << "HepRepXMLWriter:open Unable to write to file " << fileSpec << G4endl; + G4cout << "G4HepRepFileXMLWriter:open Unable to write to file " << fileSpec << G4endl; } } -void HepRepXMLWriter::close() +void G4HepRepFileXMLWriter::close() { // Close any remaining open Types endTypes(); @@ -315,18 +315,18 @@ void HepRepXMLWriter::close() fout.close( ); isOpen = false; } else { - G4cout << "HepRepXMLWriter:close No file is currently open" << G4endl; + G4cout << "G4HepRepFileXMLWriter:close No file is currently open" << G4endl; } } -void HepRepXMLWriter::endTypes() +void G4HepRepFileXMLWriter::endTypes() { // Close any remaining open Types while(typeDepth>-1) endType(); } -void HepRepXMLWriter::endType() +void G4HepRepFileXMLWriter::endType() { endInstance(); indent(); @@ -338,7 +338,7 @@ void HepRepXMLWriter::endType() typeDepth--; } -void HepRepXMLWriter::endInstance() +void G4HepRepFileXMLWriter::endInstance() { if (inInstance[typeDepth]) { @@ -349,7 +349,7 @@ void HepRepXMLWriter::endInstance() } } -void HepRepXMLWriter::endPrimitive() +void G4HepRepFileXMLWriter::endPrimitive() { if (inPrimitive) { @@ -360,7 +360,7 @@ void HepRepXMLWriter::endPrimitive() } } -void HepRepXMLWriter::endPoint() +void G4HepRepFileXMLWriter::endPoint() { if (inPoint) { @@ -370,7 +370,7 @@ void HepRepXMLWriter::endPoint() } } -void HepRepXMLWriter::indent() +void G4HepRepFileXMLWriter::indent() { if (fout.good()) { diff --git a/source/visualization/HepRep/src/G4HepRepMessenger.cc b/source/visualization/HepRep/src/G4HepRepMessenger.cc new file mode 100644 index 0000000000..6e499352b3 --- /dev/null +++ b/source/visualization/HepRep/src/G4HepRepMessenger.cc @@ -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. * +// ******************************************************************** +// +// +#include "G4HepRepMessenger.hh" + +G4HepRepMessenger::G4HepRepMessenger() : + suffix (""), + geometry(true) { + + heprepDirectory = new G4UIdirectory("/vis/heprep/"); + heprepDirectory->SetGuidance("HepRep commands."); + + setEventNumberSuffixCommand = new G4UIcmdWithAString("/vis/heprep/setEventNumberSuffix", this); + setEventNumberSuffixCommand->SetGuidance("Write separate event files, appended with given suffix."); + setEventNumberSuffixCommand->SetGuidance("Define the suffix with a pattern such as '-0000'."); + setEventNumberSuffixCommand->SetParameterName("suffix",false); + setEventNumberSuffixCommand->SetDefaultValue(""); + setEventNumberSuffixCommand->AvailableForStates(G4State_Idle); + +/* + appendGeometryCommand = new G4UIcmdWithABool("/vis/heprep/appendGeometry", this); + appendGeometryCommand->SetGuidance("Appends copy of geometry to every event."); + appendGeometryCommand->SetParameterName("flag",false); + appendGeometryCommand->SetDefaultValue(true); + appendGeometryCommand->AvailableForStates(G4State_Idle); +*/ + + addPointAttributesCommand = new G4UIcmdWithABool("/vis/heprep/addPointAttributes", this); + addPointAttributesCommand->SetGuidance("Adds point attributes to the points of trajectories."); + addPointAttributesCommand->SetParameterName("flag",false); + addPointAttributesCommand->SetDefaultValue(false); + addPointAttributesCommand->AvailableForStates(G4State_Idle); +} + +G4HepRepMessenger::~G4HepRepMessenger() { + delete setEventNumberSuffixCommand; +// delete appendGeometryCommand; + delete addPointAttributesCommand; + delete heprepDirectory; +} + +G4String G4HepRepMessenger::GetCurrentValue(G4UIcommand * command) { + if (command==setEventNumberSuffixCommand) { + return suffix; +// } else if (command==appendGeometryCommand) { +// return appendGeometryCommand->ConvertToString(geometry); + } else if (command==addPointAttributesCommand) { + return addPointAttributesCommand->ConvertToString(pointAttributes); + } else { + return ""; + } +} + +void G4HepRepMessenger::SetNewValue(G4UIcommand * command, G4String newValue) { + if (command==setEventNumberSuffixCommand) { + suffix = newValue; +// } else if (command==appendGeometryCommand) { +// geometry = appendGeometryCommand->GetNewBoolValue(newValue); + } else if (command==addPointAttributesCommand) { + pointAttributes = addPointAttributesCommand->GetNewBoolValue(newValue); + } +} + +G4String G4HepRepMessenger::getEventNumberSuffix() { + return suffix; +} + +G4bool G4HepRepMessenger::appendGeometry() { + return geometry; +} + +G4bool G4HepRepMessenger::addPointAttributes() { + return pointAttributes; +} diff --git a/source/visualization/HepRep/src/G4HepRepSceneHandler.cc b/source/visualization/HepRep/src/G4HepRepSceneHandler.cc index 6b57308758..f8026619d6 100644 --- a/source/visualization/HepRep/src/G4HepRepSceneHandler.cc +++ b/source/visualization/HepRep/src/G4HepRepSceneHandler.cc @@ -20,14 +20,21 @@ // * statement, and all its terms. * // ******************************************************************** // + /** - * @author Mark Donszelmann + * @author Mark Donszelmann, Joseph Perl */ +#include + #include "globals.hh" #include -#include +#include +// NOTE not available on Solaris 5.2 and Linux g++ 2.95.2 +// #include +#include #include +#include //HepRep #include "HEPREP/HepRep.h" @@ -47,462 +54,577 @@ #include "G4VisAttributes.hh" #include "G4VSolid.hh" #include "G4VTrajectory.hh" +#include "G4VTrajectoryPoint.hh" #include "G4VHit.hh" #include "G4Scene.hh" #include "G4Material.hh" +#include "G4AttDef.hh" +#include "G4AttValue.hh" -// Streamer -#include "XMLHepRepStreamerFactory.h" +// JHepRep +#include "XMLHepRepFactory.h" // This #include "G4HepRep.hh" #include "G4HepRepSceneHandler.hh" +#include "G4HepRepViewer.hh" using namespace HEPREP; +using namespace std; G4int G4HepRepSceneHandler::sceneCount = 0; -G4int G4HepRepSceneHandler::sceneIdCount = 0; -G4HepRepSceneHandler::G4HepRepSceneHandler (G4VGraphicsSystem& system, const G4String& name) - : G4VSceneHandler (system, sceneIdCount++, name), - currentDepth (0), - currentPV (0), - currentLV (0) { +//#define SDEBUG 1 +//#define PDEBUG 1 -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::G4HepRepSceneHandler: " - << system << " " - << GetScene()->GetName() << G4endl; +G4HepRepSceneHandler::G4HepRepSceneHandler (G4VGraphicsSystem& system, G4HepRepMessenger& heprepMessenger, const G4String& name) + : G4VSceneHandler (system, sceneCount++, name), + messenger (heprepMessenger), + geometryLayer ("Geometry"), + eventLayer ("Event"), + calHitLayer ("CalHit"), + trajectoryLayer ("Trajectory"), + hitLayer ("Hit"), + rootVolumeName ("Geometry"), + baseName (""), + eventNumberPrefix (""), + eventNumberSuffix (""), + eventNumber (1), + eventNumberWidth (-1), + extension (""), + writeMultipleFiles (false), + currentDepth (0), + currentPV (0), + currentLV (0), + _heprep (NULL) +{ + +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::G4HepRepSceneHandler: " << system << endl; #endif - heprepFactory = new XMLHepRepStreamerFactory(); + + materialState[kStateSolid] = G4String("Solid"); + materialState[kStateLiquid] = G4String("Liquid"); + materialState[kStateGas] = G4String("Gas"); + materialState[kStateUndefined] = G4String("Undefined"); + + factory = new XMLHepRepFactory(); writer = NULL; - fileNo = 0; + + // opening of file deferred to closeHepRep(); + openHepRep(); } + G4HepRepSceneHandler::~G4HepRepSceneHandler () { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::~G4HepRepSceneHandler() " << endl; +#endif close(); - delete heprepFactory; - heprepFactory = NULL; + + delete factory; + factory = NULL; + + dynamic_cast(GetGraphicsSystem())->removeSceneHandler(); } -HepRepFactory* G4HepRepSceneHandler::GetHepRepFactory() { - if (writer == NULL) open(); - return heprepFactory; -} -void G4HepRepSceneHandler::open() { +void G4HepRepSceneHandler::open(G4String name) { if (writer != NULL) return; -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::open(" << fname << ") " << G4endl; + if (name == "stdout") { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::Open() stdout" << endl; #endif - if (strcmp(GetScene()->GetName(), "stdout") == 0) { + writer = factory->createHepRepWriter(&cout, false, false); + out = NULL; + baseName = name; + eventNumberPrefix = ""; + eventNumberSuffix = ""; + extension = ""; + writeMultipleFiles = false; + eventNumber = 0; + eventNumberWidth = 0; + } else if (name == "stderr") { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::Open() stderr" << endl; +#endif + writer = factory->createHepRepWriter(&cerr, false, false); out = NULL; - writer = heprepFactory->createHepRepWriter(&G4cout); - } else if (strcmp(GetScene()->GetName(), "stderr") == 0) { - out = NULL; - writer = heprepFactory->createHepRepWriter(&G4cerr); + baseName = name; + eventNumberPrefix = ""; + eventNumberSuffix = ""; + extension = ""; + writeMultipleFiles = false; + eventNumber = 0; + eventNumberWidth = 0; } else { - char fname [256]; - std::ostrstream ost(fname, 256); - ost << GetScene()->GetName() << "-" << fileNo++ << ".heprep" << std::ends; +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::Open() " << name << endl; +#endif + if (eventNumberWidth < 0) { + // derive filename(s) + // check for extensions + const unsigned int numberOfExtensions = 4; + string ext[numberOfExtensions] = {".heprep", ".heprep.xml", ".heprep.zip", ".heprep.gz"}; + unsigned int i=0; + while (i < numberOfExtensions) { + int dot = name.size() - ext[i].size(); + if ((dot >= 0) && + (name.substr(dot, ext[i].size()) == ext[i])) break; + i++; + } + + if (i != numberOfExtensions) { + extension = ext[i]; + int dot = name.length() - extension.length(); + baseName = (dot >= 0) ? name.substr(0, dot) : ""; + } else { + extension = ".heprep.zip"; + baseName = name; + } + + writeMultipleFiles = false; + int startDigit = -1; int endDigit = -1; + string suffix = messenger.getEventNumberSuffix(); + if (suffix != "") { + // look for 0000 pattern in suffix + endDigit = suffix.length()-1; + while (endDigit >= 0) { + if (isdigit(suffix.at(endDigit))) break; + endDigit--; + } + if (endDigit < 0) { + cerr << "/vis/heprep/appendEventNumberSuffix contains no digits" << endl; + } else { + writeMultipleFiles = true; + startDigit = endDigit; + while (startDigit >= 0) { + if (!isdigit(suffix.at(startDigit))) break; + startDigit--; + } + startDigit++; + } + } - out = new std::ofstream(fname); - writer = heprepFactory->createHepRepWriter(out); + if (writeMultipleFiles) { + eventNumberPrefix = suffix.substr(0, startDigit); + eventNumber = atoi(suffix.substr(startDigit, endDigit).c_str()); + eventNumberWidth = endDigit +1 - startDigit; + eventNumberSuffix = suffix.substr(endDigit+1); + } else { + // open single file here + openFile(baseName+extension); + + eventNumber = 1; + eventNumberWidth = 10; + eventNumberPrefix = ""; + eventNumberSuffix = ""; + } + } } - - heprep = heprepFactory->createHepRep(); - heprep->addLayer("Geometry"); - heprep->addLayer("Event"); - heprep->addLayer("CalHit"); - heprep->addLayer("Track"); - heprep->addLayer("Hit"); - - HepRepTreeID* treeID = heprepFactory->createHepRepTreeID("G4Types", "1.0"); - HepRepTypeTree* typeTree = heprepFactory->createHepRepTypeTree(treeID); - heprep->addTypeTree(typeTree); - - geometryType = heprepFactory->createHepRepType(NULL, "Detector Geometry"); - geometryType->addAttDef("LVol", "Logical Volume", "Physics",""); - geometryType->addAttDef("Solid", "Solid Name", "Physics",""); - geometryType->addAttDef("EType", "Entity Type", "Physics",""); - geometryType->addAttDef("Material", "Material Name", "Physics",""); - geometryType->addAttDef("Density", "Material Density", "Physics",""); - geometryType->addAttDef("State", "Material State", "Physics",""); - geometryType->addAttDef("Radlen", "Material Radiation Length", "Physics",""); - geometryType->addAttValue("Layer", G4String("Geometry")); - geometryType->addAttValue("HasFrame", true); - typeTree->addType(geometryType); - - eventType = heprepFactory->createHepRepType(NULL, "Event"); - eventType->addAttValue("Layer", G4String("Event")); - eventType->addAttValue("HasFrame", true); - typeTree->addType(eventType); - - trackType = heprepFactory->createHepRepType(eventType, "Track"); - trackType->addAttValue("Layer", G4String("Track")); - - calHitType = heprepFactory->createHepRepType(eventType, "Calorimeter Hit"); - calHitType->addAttValue("Layer", G4String("CalHit")); - calHitType->addAttValue("Fill", true); - - hitType = heprepFactory->createHepRepType(eventType, "Hit"); - hitType->addAttValue("Layer", G4String("Hit")); - - HepRepInstanceTree* instanceTree = heprepFactory->createHepRepInstanceTree("G4Data", "1.0", typeTree); - heprep->addInstanceTree(instanceTree); - - parent = heprepFactory->createHepRepInstance(instanceTree, eventType); - instanceTree->addInstance(parent); - - delete treeID; - delete typeTree; - delete instanceTree; } + +void G4HepRepSceneHandler::openHepRep() { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::OpenHepRep() " << endl; +#endif + + if (_heprep != NULL) return; + + // all done on demand, once pointers are set to NULL + _geometryInstanceTree = NULL; + _geometryRootInstance = NULL; + _geometryInstance.clear(); + _geometryTypeTree = NULL; + _geometryRootType = NULL; + _geometryTypeName.clear(); + _geometryType.clear(); + _eventInstanceTree = NULL; + _eventInstance = NULL; + _eventTypeTree = NULL; + _eventType = NULL; + _trajectoryType = NULL; + _hitType = NULL; + _calHitType = NULL; + _calHitFaceType = NULL; +} + + +/** + * Returns true if the HepRep was (already) closed, false if the HepRep is still open + */ +bool G4HepRepSceneHandler::closeHepRep(bool final) { + if (_heprep == NULL) return true; + +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::CloseHepRep() start" << endl; +#endif + + // if this is the final close, then there should not be any event pending to be written. + if (final) { + if (_eventInstanceTree != NULL) { + cerr << "WARNING: you probably used '/vis/viewer/endOfEventAction accumulate' and " + << "forgot to call /vis/viewer/update before exit. No event written." << endl; + } + } else { + + // add geometry to the heprep if there is an event (separate geometries are written + // using DrawView() called from /vis/viewer/flush) + if (_eventInstanceTree != NULL) { + GetCurrentViewer()->DrawView(); + + // couple geometry to event if geometry was written + if ((_geometryInstanceTree != NULL)) { + getEventInstanceTree()->addInstanceTree(getGeometryInstanceTree()); + } + } + + // force inclusion of all subtypes of event + if (_eventInstanceTree != NULL) { + getEventType(); + getTrajectoryType(); + getHitType(); + getCalHitType(); + getCalHitFaceType(); + } + + // Give this HepRep all of the layer order info for both geometry and event, + // since these will both end up in a single HepRep. + if (_geometryRootType != NULL) _heprep->addLayer(geometryLayer); + if (_eventType != NULL) _heprep->addLayer(eventLayer); + if (_calHitType != NULL) _heprep->addLayer(calHitLayer); + if (_trajectoryType != NULL) _heprep->addLayer(trajectoryLayer); + if (_hitType != NULL) _heprep->addLayer(hitLayer); + + // open heprep file + if (writer == NULL) { + open((GetScene() == NULL) ? G4String("G4HepRepOutput.heprep.zip") : GetScene()->GetName()); + } + + if (writeMultipleFiles) { +// NOTE: does not work on Solaris 5.2 and Linux 2.95.2 +// stringstream fileName; +// fileName << baseName << eventNumberPrefix << setw(eventNumberWidth) << setfill('0') << eventNumber << eventNumberSuffix << extension; +// openFile(fileName.str()); +// Use instead: + char fileName[128]; + char fileFormat[128]; + sprintf(fileFormat, "%s%d%s", "%s%s%0", eventNumberWidth, "d%s%s"); + sprintf(fileName, fileFormat, baseName.c_str(), eventNumberPrefix.c_str(), eventNumber, eventNumberSuffix.c_str(), extension.c_str()); + openFile(G4String(fileName)); + } + + // write out the heprep +// NOTE: does not work on Solaris 5.2 and Linux 2.95.2 +// stringstream eventName; +// eventName << "event-" << setw(eventNumberWidth) << setfill('0') << eventNumber << ".heprep"; +// writer->write(_heprep, eventName.str()); +// Use instead: + char eventName[128]; + char eventFormat[128]; + sprintf(eventFormat, "%s%d%s", "event-%0", eventNumberWidth, "d.heprep"); + sprintf(eventName, eventFormat, eventNumber); + writer->write(_heprep, G4String(eventName)); + + eventNumber++; + } + + delete _heprep; + _heprep = NULL; + + if (writeMultipleFiles) closeFile(); + + return true; +} + + void G4HepRepSceneHandler::close() { + +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::Close() " << endl; +#endif + if (writer == NULL) return; -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::close() " << G4endl; -#endif + if (!writeMultipleFiles) { + closeHepRep(true); + closeFile(); + } +} + +void G4HepRepSceneHandler::openFile(G4String name) { + out = new ofstream(name.c_str(), std::ios::out | std::ios::binary ); + writer = factory->createHepRepWriter(out, extension == ".heprep.zip", (extension == ".heprep.zip") || (extension == ".heprep.gz")); +} + +void G4HepRepSceneHandler::closeFile() { writer->close(); delete writer; - delete out; - writer = NULL; + + delete out; out = NULL; - - delete heprep; - heprep = NULL; - - delete geometryType; - geometryType = NULL; - - delete eventType; - eventType = NULL; - - delete trackType; - trackType = NULL; - - delete hitType; - hitType = NULL; - - delete calHitType; - calHitType = NULL; - - delete parent; - parent = NULL; } void G4HepRepSceneHandler::EstablishSpecials(G4PhysicalVolumeModel& model) { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::EstablishSpecials(G4PhysicalVolumeModel&) " << endl; +#endif model.DefinePointersToWorkingSpace(¤tDepth, ¤tPV, ¤tLV); } + void G4HepRepSceneHandler::BeginModeling() { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::BeginModeling() " << endl; +#endif G4VSceneHandler::BeginModeling(); } + void G4HepRepSceneHandler::EndModeling() { +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::EndModeling() " << endl; +#endif G4VSceneHandler::EndModeling(); } void G4HepRepSceneHandler::AddPrimitive (const G4Polyline& line) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Polyline&) " << line.size() << G4endl; +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddPrimitive(G4Polyline&) " << line.size() << endl; #endif - HepRepFactory* factory = GetHepRepFactory(); - HepRepInstance* instance = CreateInstance(parent, trackType); + HepRepInstance* instance = factory->createHepRepInstance(getEventInstance(), getTrajectoryType()); - SetLine(instance, line); + setColor(instance, GetColor(line)); + + setVisibility(instance, line); + + setLine(instance, line); - instance->addAttValue("DrawAs", G4String("Line")); - SetColour(instance, GetColour(line)); for (size_t i=0; i < line.size(); i++) { G4Point3D vertex = transform * line[i]; - HepRepPoint* point = factory->createHepRepPoint(instance, vertex.x(), vertex.y(), vertex.z()); - delete point; + factory->createHepRepPoint(instance, vertex.x(), vertex.y(), vertex.z()); } - delete instance; } void G4HepRepSceneHandler::AddPrimitive (const G4Polymarker& line) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Polymarker&) " << line.size() << G4endl; +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddPrimitive(G4Polymarker&) " << line.size() << endl; #endif - HepRepFactory* factory = GetHepRepFactory(); - HepRepInstance* instance = CreateInstance(parent, hitType); - instance->addAttValue("DrawAs", G4String("Point")); + HepRepInstance* instance = factory->createHepRepInstance(getEventInstance(), getHitType()); - SetMarker(instance, line); + setColor(instance, GetColor(line)); + + setVisibility(instance, line); + + setMarker(instance, line); + + // Default MarkName is set to Circle for this Type. switch (line.GetMarkerType()) { case line.dots: - instance->addAttValue("MarkName", G4String("Circle")); - instance->addAttValue("Fill", true); - SetColour(instance, GetColour(line), G4String("FillColor")); + setAttribute(instance, "Fill", true); + setColor(instance, GetColor(line), G4String("FillColor")); break; case line.circles: - instance->addAttValue("MarkName", G4String("Circle")); break; case line.squares: - instance->addAttValue("MarkName", G4String("Box")); + setAttribute(instance, "MarkName", G4String("Box")); break; case line.line: default: - instance->addAttValue("MarkName", G4String("Plus")); + setAttribute(instance, "MarkName", G4String("Plus")); break; } - - SetColour(instance, GetColour(line)); for (size_t i=0; i < line.size(); i++) { G4Point3D vertex = transform * line[i]; - HepRepPoint* point = factory->createHepRepPoint(instance, vertex.x(), vertex.y(), vertex.z()); - delete point; + factory->createHepRepPoint(instance, vertex.x(), vertex.y(), vertex.z()); } - delete instance; } + void G4HepRepSceneHandler::AddPrimitive (const G4Circle& circle) { +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddPrimitive(G4Circle&) " << endl; +#endif + + HepRepInstance* instance = factory->createHepRepInstance(getEventInstance(), getHitType()); + G4Point3D center = transform * circle.GetPosition(); - HepRepFactory* factory = GetHepRepFactory(); - HepRepInstance* instance = CreateInstance(parent, hitType); + setColor (instance, GetColor(circle)); - SetColour (instance, GetColour(circle)); - instance->addAttValue("DrawAs", G4String("Point")); - instance->addAttValue("MarkName", G4String("Circle")); + setVisibility(instance, circle); - SetMarker(instance, circle); + setMarker(instance, circle); - HepRepPoint* point = factory->createHepRepPoint(instance, center.x(), center.y(), center.z()); - delete point; - delete instance; - -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Circle&) : center : " - << " x : " << center.x() - << " y : " << center.y() - << " z : " << center.z() - << " ,radius : " << size << G4endl; -#endif + factory->createHepRepPoint(instance, center.x(), center.y(), center.z()); } - void G4HepRepSceneHandler::AddPrimitive (const G4Polyhedron& polyhedron) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Polyhedron&) " << G4endl; +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddPrimitive(G4Polyhedron&) " << endl; #endif G4Normal3D surfaceNormal; G4Point3D vertex; if (polyhedron.GetNoFacets()==0) return; - HepRepFactory* factory = GetHepRepFactory(); - HepRepInstance* instance = CreateInstance(parent, calHitType); - + HepRepInstance* instance; + if (isEventData()) { + instance = factory->createHepRepInstance(getEventInstance(), getCalHitType()); + } else { + instance = getGeometryInstance(currentLV, currentDepth); + } + + setVisibility(instance, polyhedron); + G4bool notLastFace; do { - HepRepInstance* face = CreateInstance(instance, calHitType); - SetLine(face, polyhedron); - face->addAttValue("DrawAs", G4String("Polygon")); - SetColour(face, GetColour(polyhedron)); - if (IsEventData()) SetColour(face, GetColour(polyhedron), G4String("FillColor")); + HepRepInstance* face; + if (isEventData()) { + face = factory->createHepRepInstance(instance, getCalHitFaceType()); + } else { + face = getGeometryInstance("*Face", currentDepth+1); + setAttribute(face, "PickParent", true); + } + + setLine(face, polyhedron); + setColor(face, GetColor(polyhedron)); + if (isEventData()) setColor(face, GetColor(polyhedron), G4String("FillColor")); notLastFace = polyhedron.GetNextNormal (surfaceNormal); G4int edgeFlag = 1; G4bool notLastEdge; do { - notLastEdge = polyhedron.GetNextVertex (vertex, edgeFlag); + notLastEdge = polyhedron.GetNextVertex (vertex, edgeFlag); vertex = transform * vertex; - HepRepPoint* point = factory->createHepRepPoint(face, vertex.x(), vertex.y(), vertex.z()); - delete point; + factory->createHepRepPoint(face, vertex.x(), vertex.y(), vertex.z()); } while (notLastEdge); - - delete face; - } while (notLastFace); - - delete instance; } void G4HepRepSceneHandler::AddPrimitive (const G4Text&) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Text&) " << G4endl; +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddPrimitive(G4Text&) " << endl; #endif - G4cout << "G4HepRepSceneHandler::AddPrimitive G4Text : not yet implemented. " << G4endl; + cout << "G4HepRepSceneHandler::AddPrimitive G4Text : not yet implemented. " << endl; } void G4HepRepSceneHandler::AddPrimitive (const G4Square& square) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddPrimitive(G4Square&) " << G4endl; +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddPrimitive(G4Square&) " << endl; #endif + HepRepInstance* instance = factory->createHepRepInstance(getEventInstance(), getHitType()); + G4Point3D center = transform * square.GetPosition(); - HepRepFactory* factory = GetHepRepFactory(); - HepRepInstance* instance = CreateInstance(parent, hitType); + setColor (instance, GetColor(square)); - SetColour (instance, GetColour(square)); - instance->addAttValue("DrawAs", G4String("Point")); - instance->addAttValue("MarkName", G4String("Box")); + setVisibility(instance, square); - SetMarker(instance, square); + setMarker(instance, square); - HepRepPoint* point = factory->createHepRepPoint(instance, center.x(), center.y(), center.z()); - delete point; - delete instance; + factory->createHepRepPoint(instance, center.x(), center.y(), center.z()); } //Method for handling G4NURBS objects for drawing solids. //Knots and Ctrl Pnts MUST be arrays of GLfloats. void G4HepRepSceneHandler::AddPrimitive (const G4NURBS&) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddPrimitive(G4NURBS&) " << G4endl; +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddPrimitive(G4NURBS&) " << endl; #endif - G4cout << "G4HepRepSceneHandler::AddPrimitive G4NURBS : not yet implemented. " << G4endl; + cout << "G4HepRepSceneHandler::AddPrimitive G4NURBS : not yet implemented. " << endl; } -void G4HepRepSceneHandler::AddThis (const G4Box& box) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Box&) " << G4endl; +void G4HepRepSceneHandler::AddThis (const G4VTrajectory& trajectory) { +#ifdef PDEBUG + cout << "G4HepRepSceneHandler::AddThis(G4VTrajectory&) " << endl; #endif - G4VSceneHandler::AddThis (box); + + vector* trajectoryAttValues = trajectory.CreateAttValues(); + const map* trajectoryAttDefs = trajectory.GetAttDefs(); + + HepRepType* trajectoryType = getTrajectoryType(); + addAttDefs(trajectoryType, trajectoryAttDefs); + + // these attValues are non-standard, so can only be added when we have the attDef. + double charge = 0; + _trajectoryType->addAttValue("Ch", charge); + G4Color color = getColor(charge); + _trajectoryType->addAttValue("Color", color.GetRed(), color.GetGreen(), color.GetBlue(), color.GetAlpha()); + _trajectoryType->addAttValue("ID", -1); + _trajectoryType->addAttValue("IMom", G4String("")); + _trajectoryType->addAttValue("PDG", -1); + _trajectoryType->addAttValue("PN", G4String("")); + _trajectoryType->addAttValue("PID", -1); + + HepRepInstance* trajectoryInstance = factory->createHepRepInstance(getEventInstance(), trajectoryType); + addAttVals(trajectoryInstance, trajectoryAttDefs, trajectoryAttValues); + + delete trajectoryAttValues; + + setColor(trajectoryInstance, getColor(trajectory.GetCharge())); + setAttribute(trajectoryInstance, "LineWidth", 1.0); + + // Specify the polyline by using the trajectory points. + for (int i = 0; i < trajectory.GetPointEntries(); i++) { + G4VTrajectoryPoint* trajectoryPoint = trajectory.GetPoint(i); + G4Point3D vertex = trajectoryPoint->GetPosition(); + HepRepPoint* point = factory->createHepRepPoint(trajectoryInstance, vertex.x(), vertex.y(), vertex.z()); + + + if (messenger.addPointAttributes()) { + vector* pointAttValues = trajectoryPoint->CreateAttValues(); + const map* pointAttDefs = trajectoryPoint->GetAttDefs(); + addAttVals(point, pointAttDefs, pointAttValues); + delete pointAttValues; + } + } } -void G4HepRepSceneHandler::AddThis (const G4Cons& cons) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Cons&) " << G4endl; -#endif - G4VSceneHandler::AddThis (cons); -} - -void G4HepRepSceneHandler::AddThis (const G4Tubs& tubs) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Tubs&) " << G4endl; -#endif - G4VSceneHandler::AddThis (tubs); -} - - -void G4HepRepSceneHandler::AddThis (const G4Trd& trd) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Trd&) " << G4endl; -#endif - G4VSceneHandler::AddThis (trd); -} - - -void G4HepRepSceneHandler::AddThis (const G4Trap& trap) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Trap&) " << G4endl; -#endif - G4VSceneHandler::AddThis (trap); -} - - -void G4HepRepSceneHandler::AddThis (const G4Sphere& sphere) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Sphere&) " << G4endl; -#endif - G4VSceneHandler::AddThis (sphere); -} - - -void G4HepRepSceneHandler::AddThis (const G4Para& para) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Para&) " << G4endl; -#endif - G4VSceneHandler::AddThis (para); -} - - -void G4HepRepSceneHandler::AddThis (const G4Torus& torus) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Torus&) " << G4endl; -#endif - G4VSceneHandler::AddThis (torus); -} - - -void G4HepRepSceneHandler::AddThis (const G4Polycone& polycone) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Polycone&) " << G4endl; -#endif - G4VSceneHandler::AddThis (polycone); -} - - -void G4HepRepSceneHandler::AddThis (const G4Polyhedra& polyhedra) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4Polyhedra&) " << G4endl; -#endif - G4VSceneHandler::AddThis (polyhedra); -} - - -void G4HepRepSceneHandler::AddThis (const G4VSolid& solid) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4VSolid&) " << G4endl; -#endif - G4VSceneHandler::AddThis (solid); -} - -void G4HepRepSceneHandler::AddThis (const G4VTrajectory& traj) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4VTrajectory&) " << G4endl; -#endif - G4VSceneHandler::AddThis (traj); -} - -void G4HepRepSceneHandler::AddThis (const G4VHit& hit) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::AddThis(G4VHit&) " << G4endl; -#endif - G4VSceneHandler::AddThis (hit); -} - -void -G4HepRepSceneHandler::PreAddThis -(const G4Transform3D& objectTransformation, - const G4VisAttributes& visAttribs) { +void G4HepRepSceneHandler::PreAddThis (const G4Transform3D& objectTransformation, + const G4VisAttributes& visAttribs) { G4VSceneHandler::PreAddThis (objectTransformation, visAttribs); transform = objectTransformation; -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::PreAddThis : " << objectTransformation << G4endl; - G4cout << "G4HepRepSceneHandler::PreAddThis : " << visAttribs << G4endl; +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::PreAddThis(G4Transform3D&, G4VisAttributes&)" << endl; #endif } + void G4HepRepSceneHandler::PostAddThis () { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::PostAddThis" << G4endl; +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::PostAddThis()" << endl; #endif G4VSceneHandler::PostAddThis(); } void G4HepRepSceneHandler::BeginPrimitives (const G4Transform3D& objectTransformation) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::BeginPrimitives: " << G4endl; +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::BeginPrimitives(G4Transform3D&)" << endl; #endif G4VSceneHandler::BeginPrimitives (objectTransformation); @@ -511,83 +633,572 @@ void G4HepRepSceneHandler::BeginPrimitives (const G4Transform3D& objectTransform void G4HepRepSceneHandler::EndPrimitives () { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::EndPrimitives" << G4endl; +#ifdef SDEBUG + cout << "G4HepRepSceneHandler::EndPrimitives" << endl; #endif G4VSceneHandler::EndPrimitives (); } -void G4HepRepSceneHandler::SetColour (HepRepAttribute *attribute, const G4Colour& color, const G4String& key) { -#ifdef DEBUG - G4cout << "G4HepRepSceneHandler::SetColour : red : " << color.GetRed () << + +void G4HepRepSceneHandler::setColor (HepRepAttribute *attribute, + const G4Color& color, + const G4String& key) { +#ifdef CDEBUG + cout << "G4HepRepSceneHandler::setColor : red : " << color.GetRed () << " green : " << color.GetGreen () << - " blue : " << color.GetBlue () << G4endl; + " blue : " << color.GetBlue () << endl; #endif - attribute->addAttValue(key, color.GetRed(), color.GetGreen(), color.GetBlue(),color.GetAlpha()); + + setAttribute(attribute, key, color.GetRed(), color.GetGreen(), color.GetBlue(),color.GetAlpha()); } -void G4HepRepSceneHandler::SetLine (HepRepInstance *instance, const G4Visible& visible) { - G4VisAttributes atts = visible.GetVisAttributes(); - instance->addAttValue("LineWidth", atts.GetLineWidth()); - switch (atts.GetLineStyle()) { - case G4VisAttributes::dotted: - instance->addAttValue("LineStyle", G4String("Dotted")); - break; - case G4VisAttributes::dashed: - instance->addAttValue("LineStyle", G4String("Dashed")); - break; - case G4VisAttributes::unbroken: - default: - instance->addAttValue("LineStyle", G4String("Solid")); - break; - } +G4Color G4HepRepSceneHandler::getColor (G4double charge) { + float red = 0.; + float green = 0.; + float blue = 0.; + if(charge>0.0) blue = 1.0; // Blue = positive. + else if(charge<0.0) red = 1.0; // Red = negative. + else green = 1.0; // Green = neutral. + return G4Color(red, green, blue); } -void G4HepRepSceneHandler::SetMarker (HepRepInstance *instance, const G4VMarker& marker) { - MarkerSizeType markerType; - G4double size = GetMarkerRadius( marker , markerType ); - instance->addAttValue("MarkSize", size); - instance->addAttValue("MarkType", (markerType == screen) ? G4String("Symbol") : G4String("Real")); - if (marker.GetFillStyle() == G4VMarker::noFill) { - instance->addAttValue("Fill", false); - } else { - instance->addAttValue("Fill", true); - SetColour(instance, GetColour(marker), G4String("FillColor")); - } +void G4HepRepSceneHandler::setVisibility (HepRepAttribute *attribute, const G4Visible& visible) { + const G4VisAttributes* atts = visible.GetVisAttributes(); + + setAttribute(attribute, "Visibility", (atts && (atts->IsVisible()==0)) ? false : true); } -HepRepInstance* G4HepRepSceneHandler::CreateInstance(HepRepInstance* p, HepRepType* altType) { - HepRepFactory* factory = GetHepRepFactory(); - bool event = IsEventData(); - HepRepType* type = (event) ? altType : geometryType; - HepRepInstance* instance = factory->createHepRepInstance(p, type); - if (!event) { - instance->addAttValue("LVol", currentLV->GetName()); - instance->addAttValue("Solid", currentLV->GetSolid()->GetName()); - instance->addAttValue("EType", currentLV->GetSolid()->GetEntityType()); - instance->addAttValue("Material", currentLV->GetMaterial()->GetName()); - instance->addAttValue("Density", currentLV->GetMaterial()->GetDensity()); - instance->addAttValue("Radlen", currentLV->GetMaterial()->GetRadlen()); - - switch (currentLV->GetMaterial()->GetState()) { - case kStateSolid: - instance->addAttValue("State", G4String("Solid")); +void G4HepRepSceneHandler::setLine (HepRepAttribute *attribute, const G4Visible& visible) { + const G4VisAttributes* atts = visible.GetVisAttributes(); + + setAttribute(attribute, "LineWidth", (atts != NULL) ? atts->GetLineWidth() : 1.0); + + if (atts != NULL) { + switch (atts->GetLineStyle()) { + case G4VisAttributes::dotted: + setAttribute(attribute, "LineStyle", G4String("Dotted")); break; - case kStateLiquid: - instance->addAttValue("State", G4String("Liquid")); + case G4VisAttributes::dashed: + setAttribute(attribute, "LineStyle", G4String("Dashed")); break; - case kStateGas: - instance->addAttValue("State", G4String("Gas")); - break; - case kStateUndefined: + case G4VisAttributes::unbroken: default: - instance->addAttValue("State", G4String("Undefined")); break; } } +} + +void G4HepRepSceneHandler::setMarker (HepRepAttribute *attribute, const G4VMarker& marker) { + MarkerSizeType markerType; + G4double size = GetMarkerRadius( marker , markerType ); + + setAttribute(attribute, "MarkSize", size); + + if (markerType == screen) setAttribute(attribute, "MarkType", G4String("Symbol")); + if (marker.GetFillStyle() == G4VMarker::noFill) { + setAttribute(attribute, "Fill", false); + } else { + setColor(attribute, GetColor(marker), G4String("FillColor")); + } +} + +void G4HepRepSceneHandler::setAttribute(HepRepAttribute* attribute, G4String name, G4String value) { + HepRepAttValue* attValue = attribute->getAttValue(name); + if ((attValue == NULL) || (attValue->getString() != value)) { + HepRepPoint* point = dynamic_cast(attribute); + if (point != NULL) { + if (point->getInstance()->getAttValueFromNode(name) == NULL) { + attribute = point->getInstance(); + } + } + + HepRepInstance* instance = dynamic_cast(attribute); + if (instance != NULL) { + // look for definition on type (node only) + if (instance->getType()->getAttValueFromNode(name) == NULL) { + attribute = instance->getType(); + } + } + + attribute->addAttValue(name, value); + } +} + +void G4HepRepSceneHandler::setAttribute(HepRepAttribute* attribute, G4String name, bool value) { + HepRepAttValue* attValue = attribute->getAttValue(name); + if ((attValue == NULL) || (attValue->getBoolean() != value)) { + HepRepPoint* point = dynamic_cast(attribute); + if (point != NULL) { + if (point->getInstance()->getAttValueFromNode(name) == NULL) { + attribute = point->getInstance(); + } + } + + HepRepInstance* instance = dynamic_cast(attribute); + if (instance != NULL) { + // look for definition on type (node only) + if (instance->getType()->getAttValueFromNode(name) == NULL) { + attribute = instance->getType(); + } + } + + attribute->addAttValue(name, value); + } +} + +void G4HepRepSceneHandler::setAttribute(HepRepAttribute* attribute, G4String name, double value) { + HepRepAttValue* attValue = attribute->getAttValue(name); + if ((attValue == NULL) || (attValue->getDouble() != value)) { + HepRepPoint* point = dynamic_cast(attribute); + if (point != NULL) { + if (point->getInstance()->getAttValueFromNode(name) == NULL) { + attribute = point->getInstance(); + } + } + + HepRepInstance* instance = dynamic_cast(attribute); + if (instance != NULL) { + // look for definition on type (node only) + if (instance->getType()->getAttValueFromNode(name) == NULL) { + attribute = instance->getType(); + } + } + + attribute->addAttValue(name, value); + } +} + +void G4HepRepSceneHandler::setAttribute(HepRepAttribute* attribute, G4String name, int value) { + HepRepAttValue* attValue = attribute->getAttValue(name); + if ((attValue == NULL) || (attValue->getInteger() != value)) { + HepRepPoint* point = dynamic_cast(attribute); + if (point != NULL) { + if (point->getInstance()->getAttValueFromNode(name) == NULL) { + attribute = point->getInstance(); + } + } + + HepRepInstance* instance = dynamic_cast(attribute); + if (instance != NULL) { + // look for definition on type (node only) + if (instance->getType()->getAttValueFromNode(name) == NULL) { + attribute = instance->getType(); + } + } + + attribute->addAttValue(name, value); + } +} + +void G4HepRepSceneHandler::setAttribute(HepRepAttribute* attribute, G4String name, double red, double green, double blue, double alpha) { + HepRepAttValue* attValue = attribute->getAttValue(name); + vector color; + if (attValue != NULL) color = attValue->getColor(); + if ((color.size() == 0) || + (color[0] != red) || + (color[1] != green) || + (color[2] != blue) || + ((color.size() > 3) && (color[3] != alpha))) { + + HepRepPoint* point = dynamic_cast(attribute); + if (point != NULL) { + if (point->getInstance()->getAttValueFromNode(name) == NULL) { + attribute = point->getInstance(); + } + } + + HepRepInstance* instance = dynamic_cast(attribute); + if (instance != NULL) { + // look for definition on type (node only) + if (instance->getType()->getAttValueFromNode(name) == NULL) { + attribute = instance->getType(); + } + } + + attribute->addAttValue(name, red, green, blue, alpha); + } +} + +void G4HepRepSceneHandler::addAttDefs(HepRepDefinition* definition, const map* attDefs) { + if (attDefs == NULL) return; + + // Specify additional attribute definitions. + map::const_iterator attDefIterator = attDefs->begin(); + while (attDefIterator != attDefs->end()) { + // Protect against incorrect use of Category. Anything value other than the + // standard ones will be considered to be in the physics category. + G4String category = attDefIterator->second.GetCategory(); + if ((category == "Draw") || + (category == "Physics") || + (category == "Association") || + (category == "PickAction")) { + + category = "Physics"; + } + definition->addAttDef(attDefIterator->first, attDefIterator->second.GetDesc(), + category, attDefIterator->second.GetExtra()); + attDefIterator++; + } +} + +void G4HepRepSceneHandler::addAttVals(HepRepAttribute* attribute, const map* attDefs, vector* attValues) { + if (attValues == NULL) return; + + // Copy the instance's G4AttValues to HepRepAttValues. + for (vector::iterator attValIterator = attValues->begin(); attValIterator != attValues->end(); attValIterator++) { + // Use GetDesc rather than GetName once WIRED can handle names with spaces in them. + //attribute->addAttValue(iAttDef->second.GetDesc(), iAttVal->GetValue()); + + G4String name = attValIterator->GetName(); + + HepRepPoint* point = dynamic_cast(attribute); + if ((name == "Pos") && (point != NULL)) { + G4String pos = attValIterator->GetValue(); +// cout << "Pos* " << pos << endl; + int s = 0; + int n = 0; + int m = 0; + G4String unit; + for (unsigned int i=0; igetX(); + m = (int)(log10(factor)+((factor < 1) ? -0.5 : 0.5)); +// cout << factor << ", " << m << endl; + } else if (n == 3) { + // unit + unit = pos.substr(s, i-s); + if (unit == G4String("mum")) { + m += -6; + } else if (unit == G4String("mm")) { + m += -3; + } else if (unit == G4String("cm")) { + m += -2; + } else if (unit == G4String("m")) { + m += 0; + } else if (unit == G4String("km")) { + m += 3; + } else { + cerr << "HepRepSceneHandler: Unrecognized Unit: '" << unit << "'" << endl; + } + } + s = i+1; + n++; + } + } + switch(m) { + case -6: + unit = G4String("mum"); + break; + case -3: + unit = G4String("mm"); + break; + case -2: + unit = G4String("cm"); + break; + case 0: + unit = G4String("m"); + break; + case 3: + unit = G4String("km"); + break; + default: + cerr << "HepRepSceneHandler: No valid unit found for m: " << m << endl; + unit = G4String("*m"); + break; + } +// cout << "U: " << unit << endl; + setAttribute(attribute, G4String("PointUnit"), unit); + continue; + } + + // NTP already in points being written + if (name == "NTP") continue; + + // find type of attribute using def + const map::const_iterator attDefIterator = attDefs->find(name); + G4String type = attDefIterator->second.GetValueType(); + + // set based on type + if ((type == "G4double") || (type == "double")) { + setAttribute(attribute, attValIterator->GetName(), atof(attValIterator->GetValue())); + } else if ((type == "G4int") || (type == "int")) { + setAttribute(attribute, attValIterator->GetName(), atoi(attValIterator->GetValue())); + } else { // G4String, string and others + setAttribute(attribute, attValIterator->GetName(), attValIterator->GetValue()); + } + } +} + + +bool G4HepRepSceneHandler::isEventData () { + return !currentPV || fReadyForTransients; +} + +HepRep* G4HepRepSceneHandler::getHepRep() { + if (_heprep == NULL) { + // Create the HepRep that holds the Trees. + _heprep = factory->createHepRep(); + } + return _heprep; +} + +HepRepInstanceTree* G4HepRepSceneHandler::getGeometryInstanceTree() { + if (_geometryInstanceTree == NULL) { + // Create the Geometry InstanceTree. + _geometryInstanceTree = factory->createHepRepInstanceTree("G4GeometryData", "1.0", getGeometryTypeTree()); + getHepRep()->addInstanceTree(_geometryInstanceTree); + } + return _geometryInstanceTree; +} + +HepRepInstance* G4HepRepSceneHandler::getGeometryRootInstance() { + if (_geometryRootInstance == NULL) { + // Create the top level Geometry Instance. + _geometryRootInstance = factory->createHepRepInstance(getGeometryInstanceTree(), getGeometryRootType()); + } + return _geometryRootInstance; +} + +HepRepInstance* G4HepRepSceneHandler::getGeometryInstance(G4LogicalVolume* volume, int depth) { + HepRepInstance* instance = getGeometryInstance(volume->GetName(), depth); + + setAttribute(instance, "LVol", volume->GetName()); + setAttribute(instance, "Solid", volume->GetSolid()->GetName()); + setAttribute(instance, "EType", volume->GetSolid()->GetEntityType()); + setAttribute(instance, "Material", volume->GetMaterial()->GetName()); + setAttribute(instance, "Density", volume->GetMaterial()->GetDensity()); + setAttribute(instance, "Radlen", volume->GetMaterial()->GetRadlen()); + + G4String state = materialState[volume->GetMaterial()->GetState()]; + setAttribute(instance, "State", state); + return instance; } -bool G4HepRepSceneHandler::IsEventData () { - return !currentPV || fReadyForTransients; +HepRepInstance* G4HepRepSceneHandler::getGeometryInstance(G4String volumeName, int depth) { + // no extra checks since these are done in the geometryType already + + // adjust depth, also pop the current instance + while ((int)_geometryInstance.size() > depth) { + _geometryInstance.pop_back(); + } + + // get parent + HepRepInstance* parent = (_geometryInstance.empty()) ? getGeometryRootInstance() : _geometryInstance.back(); + + // get type + HepRepType* type = getGeometryType(volumeName, depth); + + // create instance + HepRepInstance* instance = factory->createHepRepInstance(parent, type); + _geometryInstance.push_back(instance); + + return instance; } + +HepRepTypeTree* G4HepRepSceneHandler::getGeometryTypeTree() { + if (_geometryTypeTree == NULL) { + // Create the Geometry TypeTree. + HepRepTreeID* geometryTreeID = factory->createHepRepTreeID("G4GeometryTypes", "1.0"); + _geometryTypeTree = factory->createHepRepTypeTree(geometryTreeID); + getHepRep()->addTypeTree(_geometryTypeTree); + } + return _geometryTypeTree; +} + +HepRepType* G4HepRepSceneHandler::getGeometryRootType() { + if (_geometryRootType == NULL) { + // Create the top level Geometry Type. + _geometryRootType = factory->createHepRepType(NULL, rootVolumeName); + _geometryRootType->addAttValue("Layer", geometryLayer); + + // Add attdefs used by all geometry types. + _geometryRootType->addAttDef ("LVol", "Logical Volume", "Physics",""); + _geometryRootType->addAttValue("LVol", G4String("")); + _geometryRootType->addAttDef ("Solid", "Solid Name", "Physics",""); + _geometryRootType->addAttValue("Solid", G4String("")); + _geometryRootType->addAttDef ("EType", "Entity Type", "Physics",""); + _geometryRootType->addAttValue("EType", G4String("G4Box")); + _geometryRootType->addAttDef ("Material", "Material Name", "Physics",""); + _geometryRootType->addAttValue("Material", G4String("Air")); + _geometryRootType->addAttDef ("Density", "Material Density", "Physics",""); + _geometryRootType->addAttValue("Density", 0.0); + _geometryRootType->addAttDef ("State", "Material State", "Physics",""); + _geometryRootType->addAttValue("State", G4String("Gas")); + _geometryRootType->addAttDef ("Radlen", "Material Radiation Length", "Physics",""); + _geometryRootType->addAttValue("Radlen", 0.0); + + // add defaults for Geometry + _geometryRootType->addAttValue("Color", 0.8, 0.8, 0.8, 1.0); + _geometryRootType->addAttValue("Visibility", true); + _geometryRootType->addAttValue("FillColor", 0.8, 0.8, 0.8, 1.0); + _geometryRootType->addAttValue("LineWidth", 1.0); + _geometryRootType->addAttValue("DrawAs", G4String("Polygon")); + _geometryRootType->addAttValue("PickParent", false); + _geometryRootType->addAttValue("ShowParentAttributes", true); + + _geometryRootType->addAttValue("MarkSizeMultiplier", 4.0); + _geometryRootType->addAttValue("LineWidthMultiplier", 1.0); + + getGeometryTypeTree()->addType(_geometryRootType); + + _geometryType["/"+_geometryRootType->getName()] = _geometryRootType; + } + return _geometryRootType; +} + +HepRepType* G4HepRepSceneHandler::getGeometryType(G4String volumeName, int depth) { + // make sure we have a root + getGeometryRootType(); + + // construct the full name for this volume + G4String name = getFullTypeName(volumeName, depth); + + // lookup type and create if necessary + HepRepType* type = _geometryType[name]; + if (type == NULL) { + G4String parentName = getParentTypeName(depth); + HepRepType* parentType = _geometryType[parentName]; + // HepRep uses hierarchical names + type = factory->createHepRepType(parentType, volumeName); + _geometryType[name] = type; + } + return type; +} + +G4String G4HepRepSceneHandler::getFullTypeName(G4String volumeName, int depth) { + // check for name depth + if (depth > (int)_geometryTypeName.size()) { + // there is a problem, book this type under problems + G4String problem = "HierarchyProblem"; + if (_geometryType["/"+problem] == NULL) { + // HepRep uses hierarchical names + HepRepType* type = factory->createHepRepType(getGeometryRootType(), problem); + _geometryType["/"+problem] = type; + } + return "/" + problem + "/" + volumeName; + } + + // adjust name depth, also pop the current volumeName + while ((int)_geometryTypeName.size() > depth) { + _geometryTypeName.pop_back(); + } + + // construct full name and push it + G4String name = (_geometryTypeName.empty()) ? G4String("/"+rootVolumeName) : _geometryTypeName.back(); + name = name + "/" + volumeName; + _geometryTypeName.push_back(name); + return name; +} + +G4String G4HepRepSceneHandler::getParentTypeName(int depth) { + return (depth >= 1) ? _geometryTypeName[depth-1] : G4String("/"+rootVolumeName); +} + +HepRepInstanceTree* G4HepRepSceneHandler::getEventInstanceTree() { + if (_eventInstanceTree == NULL) { + // Create the Event InstanceTree. + _eventInstanceTree = factory->createHepRepInstanceTree("G4EventData", "1.0", getEventTypeTree()); + getHepRep()->addInstanceTree(_eventInstanceTree); + } + return _eventInstanceTree; +} + +HepRepInstance* G4HepRepSceneHandler::getEventInstance() { + if (_eventInstance == NULL) { + // Create the top level Event Instance. + _eventInstance = factory->createHepRepInstance(getEventInstanceTree(), getEventType()); + } + return _eventInstance; +} + +HepRepTypeTree* G4HepRepSceneHandler::getEventTypeTree() { + if (_eventTypeTree == NULL) { + // Create the Event TypeTree. + HepRepTreeID* eventTreeID = factory->createHepRepTreeID("G4EventTypes", "1.0"); + _eventTypeTree = factory->createHepRepTypeTree(eventTreeID); + getHepRep()->addTypeTree(_eventTypeTree); + } + + return _eventTypeTree; +} + +HepRepType* G4HepRepSceneHandler::getEventType() { + if (_eventType == NULL) { + // Create the top level Event Type. + _eventType = factory->createHepRepType(NULL, "Event"); + _eventType->addAttValue("Layer", eventLayer); + + // add defaults for Events + _eventType->addAttValue("Visibility", true); + _eventType->addAttValue("Color", 1.0, 1.0, 1.0, 1.0); + _eventType->addAttValue("FillColor", 1.0, 1.0, 1.0, 1.0); + _eventType->addAttValue("LineWidth", 1.0); + _eventType->addAttValue("HasFrame", true); + _eventType->addAttValue("PickParent", false); + _eventType->addAttValue("ShowParentAttributes", false); + + _eventType->addAttValue("MarkSizeMultiplier", 4.0); + _eventType->addAttValue("LineWidthMultiplier", 1.0); + + // Some non-standard attributes + _eventType->addAttDef("PointUnit", "Length", "Physics", ""); + _eventType->addAttValue("PointUnit", G4String("m")); + + getEventTypeTree()->addType(_eventType); + } + + return _eventType; +} + +HepRepType* G4HepRepSceneHandler::getTrajectoryType() { + if (_trajectoryType == NULL) { + _trajectoryType = factory->createHepRepType(getEventType(), "Trajectory"); + + _trajectoryType->addAttValue("Layer", trajectoryLayer); + _trajectoryType->addAttValue("DrawAs", G4String("Line")); + + _trajectoryType->addAttValue("LineWidthMultiplier", 2.0); + + // attributes to draw the points of a track as markers. + _trajectoryType->addAttValue("MarkName", G4String("Box")); + _trajectoryType->addAttValue("MarkSize", 4); + _trajectoryType->addAttValue("MarkType", G4String("Symbol")); + _trajectoryType->addAttValue("Fill", true); + } + return _trajectoryType; +} + +HepRepType* G4HepRepSceneHandler::getHitType() { + if (_hitType == NULL) { + _hitType = factory->createHepRepType(getEventType(), "Hit"); + _hitType->addAttValue("Layer", hitLayer); + _hitType->addAttValue("DrawAs", G4String("Point")); + _hitType->addAttValue("MarkName", G4String("Box")); + _hitType->addAttValue("MarkSize", 4.0); + _hitType->addAttValue("MarkType", G4String("Symbol")); + _hitType->addAttValue("Fill", true); + } + return _hitType; +} + +HepRepType* G4HepRepSceneHandler::getCalHitType() { + if (_calHitType == NULL) { + _calHitType = factory->createHepRepType(getEventType(), "CalHit"); + _calHitType->addAttValue("Layer", calHitLayer); + _calHitType->addAttValue("Fill", true); + _calHitType->addAttValue("DrawAs", G4String("Polygon")); + } + return _calHitType; +} + +HepRepType* G4HepRepSceneHandler::getCalHitFaceType() { + if (_calHitFaceType == NULL) { + _calHitFaceType = factory->createHepRepType(getCalHitType(), "CalHitFace"); + _calHitFaceType->addAttValue("PickParent", true); + } + return _calHitFaceType; +} + diff --git a/source/visualization/HepRep/src/G4HepRepViewer.cc b/source/visualization/HepRep/src/G4HepRepViewer.cc index 639de77b44..9a20078580 100644 --- a/source/visualization/HepRep/src/G4HepRepViewer.cc +++ b/source/visualization/HepRep/src/G4HepRepViewer.cc @@ -20,6 +20,8 @@ // * statement, and all its terms. * // ******************************************************************** // +// + /** * @author Mark Donszelmann */ @@ -37,71 +39,78 @@ #include "G4HepRepViewer.hh" using namespace HEPREP; +using namespace std; -G4HepRepViewer::G4HepRepViewer (G4VSceneHandler& scene, const G4String& name) - : G4VViewer (scene, scene.IncrementViewCount(), name), - drawn(false) { +G4HepRepViewer::G4HepRepViewer (G4VSceneHandler& sceneHandler, const G4String& name) + : G4VViewer (sceneHandler, sceneHandler.IncrementViewCount(), name), + geometryIncluded(false) { -#ifdef DEBUG - G4cout << "G4HepRepViewer::G4HepRepViewer" << G4endl; +#ifdef SDEBUG + cout << "G4HepRepViewer::G4HepRepViewer " << name << endl; #endif - // Make changes to view parameters for HepRep... - fVP.SetCulling(false); - fDefaultVP.SetCulling(false); + // Make changes to view parameters for HepRep... + fVP.SetCulling(false); + fDefaultVP.SetCulling(false); } G4HepRepViewer::~G4HepRepViewer () { +#ifdef SDEBUG + cout << "G4HepRepViewer::~G4HepRepViewer" << endl; +#endif + dynamic_cast(GetSceneHandler()->GetGraphicsSystem())->removeViewer(); } void G4HepRepViewer::ClearView () { -#ifdef DEBUG - G4cout << "G4HepRepViewer::ClearView" << G4endl; +#ifdef SDEBUG + cout << "G4HepRepViewer::ClearView" << endl; #endif } -/***************************************************************************/ -// Calculates view representation based on extent of object being -// viewed and (initial) direction of camera. (Note: it can change -// later due to user interaction via visualization system's GUI.) -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ void G4HepRepViewer::SetView () { -#ifdef DEBUG - G4cout << "G4HepRepViewer::SetView" << G4endl; +#ifdef SDEBUG + cout << "G4HepRepViewer::SetView" << endl; #endif } - +/* NOTE: + /run/beamOn calls ShowView for every event (unless accumulate is set) + /vis/viewer/flush calls /vis/viewer/refresh followed by /vis/viewer/update + /vis/viewer/refresh calls SetView, ClearView, DrawView + /vis/viewer/update calls ShowView +*/ void G4HepRepViewer::DrawView () { -#ifdef DEBUG - G4cout << "G4HepRepViewer::DrawView" << G4endl; +#ifdef SDEBUG + cout << "G4HepRepViewer::DrawView" << endl; #endif - NeedKernelVisit(); - ProcessView(); - drawn = true; + if (!geometryIncluded) { + // draws the geometry + NeedKernelVisit(); + ProcessView(); + geometryIncluded = true; + } } void G4HepRepViewer::ShowView () { -#ifdef DEBUG - G4cout << "G4HepRepViewer::ShowView" << G4endl; +#ifdef SDEBUG + cout << "G4HepRepViewer::ShowView" << endl; #endif G4VViewer::ShowView(); - if (drawn) { - G4HepRepSceneHandler* sceneHandler = (G4HepRepSceneHandler*)GetSceneHandler(); - sceneHandler->close(); - drawn = false; + G4HepRepSceneHandler* sceneHandler = dynamic_cast(GetSceneHandler()); + if (sceneHandler->closeHepRep()) { + sceneHandler->openHepRep(); + geometryIncluded = false; } } void G4HepRepViewer::FinishView () { -#ifdef DEBUG - G4cout << "G4HepRepViewer::FinishView" << G4endl; +#ifdef SDEBUG + cout << "G4HepRepViewer::FinishView" << endl; #endif G4VViewer::FinishView(); } - diff --git a/source/visualization/HepRep/src/IndentPrintWriter.cc b/source/visualization/HepRep/src/IndentPrintWriter.cc index 141a30d60b..ebc16ed613 100644 --- a/source/visualization/HepRep/src/IndentPrintWriter.cc +++ b/source/visualization/HepRep/src/IndentPrintWriter.cc @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 @@ -28,24 +6,28 @@ using namespace std; IndentPrintWriter::IndentPrintWriter(ostream* out, int level) - : out(out), indentLevel(level) { - - indentString = " "; - indented = false; + : out(out), + closed(false), + indentLevel(level), + indented(false), + indentString(" ") { } IndentPrintWriter::~IndentPrintWriter() { } void IndentPrintWriter::close() { - out->flush(); - ofstream* fout = dynamic_cast(out); - if (fout != NULL) { - fout->close(); + if (!closed) { + out->flush(); + ofstream* fout = dynamic_cast(out); + if (fout != NULL) { + fout->close(); + } + closed = true; } } -IndentPrintWriter& IndentPrintWriter::operator<< (const char* s) { +IndentPrintWriter& IndentPrintWriter::operator<< (const std::string & s) { if (!indented) doIndent(); *out << s; return *this; @@ -57,12 +39,12 @@ IndentPrintWriter& IndentPrintWriter::operator<< (ostream& (*)(ostream&)) { return *this; } -void IndentPrintWriter::println(string s) { - *this << s.c_str() << endl; +void IndentPrintWriter::println(const string & s) { + *this << s << endl; } -void IndentPrintWriter::print(string s) { - *this << s.c_str(); +void IndentPrintWriter::print(const string & s) { + *this << s; } void IndentPrintWriter::println() { @@ -72,7 +54,7 @@ void IndentPrintWriter::println() { void IndentPrintWriter::doIndent() { for (int i=0; iwrite(this); -} - -StreamerHepRep::~StreamerHepRep() { -} - -HepRep* StreamerHepRep::copy(HepRepSelectFilter*) { - return NULL; -} - -vector* StreamerHepRep::getLayerOrder() { - return &layers; -} - -bool StreamerHepRep::addLayer(string layer) { - layers.push_back(layer); - return true; -} - -bool StreamerHepRep::addTypeTree(HepRepTypeTree*) { - return true; -} - -void StreamerHepRep::removeTypeTree(HepRepTypeTree*) { -} - -HepRepTypeTree* StreamerHepRep::getTypeTree(string, string) { - return NULL; -} - -vector* StreamerHepRep::getTypeTrees() { - return NULL; -} - -HepRepType* StreamerHepRep::getType(string) { - return NULL; -} - -bool StreamerHepRep::addInstanceTree(HepRepInstanceTree*) { - return true; -} - -void StreamerHepRep::removeInstanceTree(HepRepInstanceTree*) { -} - -HepRepInstanceTree* StreamerHepRep::getInstanceTreeTop(string, string) { - return NULL; -} - -HepRepInstanceTree* StreamerHepRep::getInstances(string, string, - vector) { - return NULL; -} - -HepRepInstanceTree* StreamerHepRep::getInstancesAfterAction( - string, - string, - vector, - vector, - bool, - bool, - bool, - vector) { - return NULL; -} - -string StreamerHepRep::checkForException() { - return NULL; -} - -vector* StreamerHepRep::getInstanceTrees() { - return NULL; -} - diff --git a/source/visualization/HepRep/src/StreamerHepRepAttribute.cc b/source/visualization/HepRep/src/StreamerHepRepAttribute.cc deleted file mode 100644 index 326a06721a..0000000000 --- a/source/visualization/HepRep/src/StreamerHepRepAttribute.cc +++ /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. * -// ******************************************************************** -// - -#include - -#include "StreamerHepRepAttribute.h" -#include "DefaultHepRepAttValue.h" - -using namespace std; -using namespace HEPREP; - - -StreamerHepRepAttribute::StreamerHepRepAttribute(HepRepWriter* stream) { - this->streamer = stream; -} - -StreamerHepRepAttribute::~StreamerHepRepAttribute() { -} - -vector* StreamerHepRepAttribute::getAttValuesFromNode() { - return NULL; -} - -bool StreamerHepRepAttribute::addAttValue(HepRepAttValue* hepRepAttValue) { - streamer->write(hepRepAttValue); - delete hepRepAttValue; - return true; -} - -bool StreamerHepRepAttribute::addAttValue(string key, string value, int showLabel) { - return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -bool StreamerHepRepAttribute::addAttValue(string key, int value, int showLabel) { - return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -bool StreamerHepRepAttribute::addAttValue(string key, double value, int showLabel) { - return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -bool StreamerHepRepAttribute::addAttValue(string key, bool value, int showLabel) { - return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -bool StreamerHepRepAttribute::addAttValue(string key, vector value, int showLabel) { - return addAttValue(new DefaultHepRepAttValue(key, value, showLabel)); -} - -bool StreamerHepRepAttribute::addAttValue(string key, double red, double green, double blue, double alpha, int showLabel) { - vector color; - color.push_back(red); - color.push_back(green); - color.push_back(blue); - color.push_back(alpha); - return addAttValue(new DefaultHepRepAttValue(key, color, showLabel)); -} - -HepRepAttValue* StreamerHepRepAttribute::getAttValueFromNode(string) { - return NULL; -} - -HepRepAttValue* StreamerHepRepAttribute::removeAttValue(string) { - return NULL; -} - -HepRepAttValue* StreamerHepRepAttribute::getAttValue(string) { - return NULL; -} - diff --git a/source/visualization/HepRep/src/StreamerHepRepDefinition.cc b/source/visualization/HepRep/src/StreamerHepRepDefinition.cc deleted file mode 100644 index 1f373c05ea..0000000000 --- a/source/visualization/HepRep/src/StreamerHepRepDefinition.cc +++ /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. * -// ******************************************************************** -// - -#include "StreamerHepRepDefinition.h" -#include "DefaultHepRepAttDef.h" - -using namespace std; -using namespace HEPREP; - -StreamerHepRepDefinition::StreamerHepRepDefinition(HepRepWriter* streamer) - : StreamerHepRepAttribute(streamer), streamer(streamer) { -} - -StreamerHepRepDefinition::~StreamerHepRepDefinition() { -} - -vector* StreamerHepRepDefinition::getAttDefsFromNode() { - return NULL; -} - -bool StreamerHepRepDefinition::addAttDef(HepRepAttDef* hepRepAttDef) { - streamer->write(hepRepAttDef); - delete hepRepAttDef; - return true; -} - -bool StreamerHepRepDefinition::addAttDef(string name, string desc, string type, string extra) { - addAttDef(new DefaultHepRepAttDef(name, desc, type, extra)); - return true; -} - -HepRepAttDef* StreamerHepRepDefinition::getAttDefFromNode(string) { - return NULL; -} - -HepRepAttDef* StreamerHepRepDefinition::getAttDef(string) { - return NULL; -} - diff --git a/source/visualization/HepRep/src/StreamerHepRepInstance.cc b/source/visualization/HepRep/src/StreamerHepRepInstance.cc deleted file mode 100644 index b9c3198957..0000000000 --- a/source/visualization/HepRep/src/StreamerHepRepInstance.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 - -#include "StreamerHepRepInstance.h" - -using namespace std; -using namespace HEPREP; - -StreamerHepRepInstance::StreamerHepRepInstance(HepRepWriter* stream, HepRepInstance* instance, HepRepType* heprepType) - : StreamerHepRepAttribute(stream), parent(instance), type(heprepType) { - - if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; - stream->write(this); -} - -StreamerHepRepInstance::StreamerHepRepInstance(HepRepWriter* stream, HepRepInstanceTree* instanceTree, HepRepType* heprepType) - : StreamerHepRepAttribute(stream), parent(instanceTree), type(heprepType) { - - if (type == NULL) cerr << "HepRepInstance cannot be created without a HepRepType." << endl; - stream->write(this); -} - -StreamerHepRepInstance::~StreamerHepRepInstance() { -} - -HepRepInstance* StreamerHepRepInstance::copy(HepRep*, HepRepInstance*, HepRepSelectFilter*) { - return NULL; -} - -HepRepInstance* StreamerHepRepInstance::copy(HepRep*, HepRepInstanceTree*, HepRepSelectFilter*) { - return NULL; -} - -HepRepType* StreamerHepRepInstance::getType() { - return type; -} - -bool StreamerHepRepInstance::addPoint(HepRepPoint*) { - return true; -} - -vector* StreamerHepRepInstance::getPoints() { - return NULL; -} - -bool StreamerHepRepInstance::addInstance(HepRepInstance*) { - return true; -} - -void StreamerHepRepInstance::removeInstance(HepRepInstance*) { -} - -vector* StreamerHepRepInstance::getInstances() { - return NULL; -} - -HepRepAttValue* StreamerHepRepInstance::getAttValue(string) { - return NULL; -} diff --git a/source/visualization/HepRep/src/StreamerHepRepInstanceTree.cc b/source/visualization/HepRep/src/StreamerHepRepInstanceTree.cc deleted file mode 100644 index 8cb16ab7f6..0000000000 --- a/source/visualization/HepRep/src/StreamerHepRepInstanceTree.cc +++ /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. * -// ******************************************************************** -// - -#include "StreamerHepRepInstanceTree.h" - -using namespace std; -using namespace HEPREP; - -StreamerHepRepInstanceTree::StreamerHepRepInstanceTree(HepRepWriter* stream, string name, string version, HepRepTreeID* typeTree) - : DefaultHepRepTreeID(name, version), streamer(stream), typeTree(typeTree) { - - stream->write(this); -} - -StreamerHepRepInstanceTree::~StreamerHepRepInstanceTree() { -} - -HepRepTreeID* StreamerHepRepInstanceTree::copy() { - return DefaultHepRepTreeID::copy(); -} - -HepRepInstanceTree* StreamerHepRepInstanceTree::copy(HepRep*, HepRepSelectFilter*) { - return NULL; -} - -bool StreamerHepRepInstanceTree::addInstance(HepRepInstance*) { - return true; -} - -void StreamerHepRepInstanceTree::removeInstance(HepRepInstance*) { -} - -vector* StreamerHepRepInstanceTree::getInstances() { - return NULL; -} - -bool StreamerHepRepInstanceTree::addInstanceTree(HepRepTreeID* treeID) { - streamer->write(treeID); - return true; -} - -HepRepTreeID* StreamerHepRepInstanceTree::getTypeTree() { - return typeTree; -} - -vector* StreamerHepRepInstanceTree::getInstanceTrees() { - return NULL; -} - diff --git a/source/visualization/HepRep/src/StreamerHepRepPoint.cc b/source/visualization/HepRep/src/StreamerHepRepPoint.cc deleted file mode 100644 index dc583375b7..0000000000 --- a/source/visualization/HepRep/src/StreamerHepRepPoint.cc +++ /dev/null @@ -1,137 +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 - -#include "StreamerHepRepPoint.h" - -using namespace std; -using namespace HEPREP; - -StreamerHepRepPoint::StreamerHepRepPoint(HepRepWriter* stream, HepRepInstance* inst, double x, double y, double z) - : StreamerHepRepAttribute(stream), instance(inst), x(x), y(y), z(z) { - - if (instance == NULL) { - cerr << "HepRepPoints cannot be created without a HepRepInstance." << endl; - } - - stream->write(this); -} - -StreamerHepRepPoint::~StreamerHepRepPoint() { -} - -HepRepInstance* StreamerHepRepPoint::getInstance() { - return instance; -} - -HepRepAttValue* StreamerHepRepPoint::getAttValue(string lowerCaseName) { - HepRepAttValue* value = getAttValueFromNode(lowerCaseName); - return (value != NULL) ? value : instance->getAttValue(lowerCaseName); -} - -HepRepPoint* StreamerHepRepPoint::copy(HepRepInstance*) { - return NULL; -} - -double StreamerHepRepPoint::getX() { - return x; -} - -double StreamerHepRepPoint::getY() { - return y; -} - -double StreamerHepRepPoint::getZ() { - return z; -} - -vector* StreamerHepRepPoint::getXYZ(vector* xyz) { - (*xyz)[0] = x; - (*xyz)[1] = y; - (*xyz)[2] = z; - return xyz; -} - -double StreamerHepRepPoint::getRho() { - return sqrt(x*x + y*y); -} - -double StreamerHepRepPoint::getPhi() { - return atan2(y, x); -} - -double StreamerHepRepPoint::getTheta() { - return atan2(getRho(), z); -} - -double StreamerHepRepPoint::getR() { - double r = getRho(); - return sqrt(r*r + z*z); -} - -double StreamerHepRepPoint::getEta() { - double ct = cos(getTheta()); - return -0.5*log((1.-ct)/(1.+ct)); -} - -double StreamerHepRepPoint::getX(double xVertex, double, double) { - return x - xVertex; -} - -double StreamerHepRepPoint::getY(double, double yVertex, double) { - return y - yVertex; -} - -double StreamerHepRepPoint::getZ(double, double, double zVertex) { - return z - zVertex; -} - -double StreamerHepRepPoint::getRho(double xVertex, double yVertex, double zVertex) { - double dx = getX(xVertex, yVertex, zVertex); - double dy = getY(xVertex, yVertex, zVertex); - return sqrt(dx*dx + dy*dy); -} - -double StreamerHepRepPoint::getPhi(double xVertex, double yVertex, double zVertex) { - return atan2(getY(xVertex, yVertex, zVertex), getX(xVertex, yVertex, zVertex)); -} - -double StreamerHepRepPoint::getTheta(double xVertex, double yVertex, double zVertex) { - return atan2(getRho(xVertex, yVertex, zVertex), getZ(xVertex, yVertex, zVertex)); -} - -double StreamerHepRepPoint::getR(double xVertex, double yVertex, double zVertex) { - double dr = getRho(xVertex, yVertex, zVertex); - double dz = getZ(xVertex, yVertex, zVertex); - return sqrt(dr*dr + dz*dz); -} - -double StreamerHepRepPoint::getEta(double xVertex, double yVertex, double zVertex) { - double ct = cos(getTheta(xVertex, yVertex, zVertex)); - return -0.5*log((1.-ct)/(1.+ct)); -} - - diff --git a/source/visualization/HepRep/src/StreamerHepRepType.cc b/source/visualization/HepRep/src/StreamerHepRepType.cc deleted file mode 100644 index 67450b8720..0000000000 --- a/source/visualization/HepRep/src/StreamerHepRepType.cc +++ /dev/null @@ -1,86 +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 "StreamerHepRepType.h" - -using namespace std; -using namespace HEPREP; - -StreamerHepRepType::StreamerHepRepType(HepRepWriter* stream, HepRepType* parent, string name) - : StreamerHepRepDefinition(stream), parent(parent), name(name) { - this->description = "No Description"; - this->infoURL = "No Info URL"; - - stream->write(this); -} - -StreamerHepRepType::~StreamerHepRepType() { -} - -HepRepType* StreamerHepRepType::getSuperType() { - return parent; -} - -HepRepAttDef* StreamerHepRepType::getAttDef(string) { - return NULL; -} - -/** - * searched for a value with given name. Search up the type tree if needed. - */ -HepRepAttValue* StreamerHepRepType::getAttValue(string) { - return NULL; -} - -HepRepType* StreamerHepRepType::copy(HepRep*, HepRepType*) { - return NULL; -} - -string StreamerHepRepType::getName() { - return name; -} - -string StreamerHepRepType::getDescription() { - return description; -} - -void StreamerHepRepType::setDescription(string desc) { - this->description = desc; -} - -string StreamerHepRepType::getInfoURL() { - return infoURL; -} - -void StreamerHepRepType::setInfoURL(string info) { - this->infoURL = info; -} - -bool StreamerHepRepType::addType(HepRepType*) { - return true; -} - -vector* StreamerHepRepType::getTypes() { - return NULL; -} - diff --git a/source/visualization/HepRep/src/StreamerHepRepTypeTree.cc b/source/visualization/HepRep/src/StreamerHepRepTypeTree.cc deleted file mode 100644 index 3315a762b4..0000000000 --- a/source/visualization/HepRep/src/StreamerHepRepTypeTree.cc +++ /dev/null @@ -1,55 +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 "StreamerHepRepTypeTree.h" - -using namespace std; -using namespace HEPREP; - -StreamerHepRepTypeTree::StreamerHepRepTypeTree(HepRepWriter* streamer, HepRepTreeID* typeTree) - : DefaultHepRepTreeID(typeTree->getName(), typeTree->getVersion()) { - - streamer->write(this); -} - -StreamerHepRepTypeTree::~StreamerHepRepTypeTree() { -} - -HepRepTreeID* StreamerHepRepTypeTree::copy() { - return DefaultHepRepTreeID::copy(); -} - -HepRepTypeTree* StreamerHepRepTypeTree::copy(HepRep*) { - return NULL; -} - -bool StreamerHepRepTypeTree::addType(HepRepType*) { - return true; -} - -vector* StreamerHepRepTypeTree::getTypes() { - return NULL; -} - diff --git a/source/visualization/HepRep/src/XMLHepRepFactory.cc b/source/visualization/HepRep/src/XMLHepRepFactory.cc new file mode 100644 index 0000000000..d8289eaa80 --- /dev/null +++ b/source/visualization/HepRep/src/XMLHepRepFactory.cc @@ -0,0 +1,30 @@ + +#include +#include + +#include "XMLHepRepWriter.h" +#include "XMLHepRepFactory.h" + +using namespace std; +using namespace HEPREP; + + +XMLHepRepFactory::XMLHepRepFactory() { +} + +XMLHepRepFactory::~XMLHepRepFactory() { +} + +HepRepReader* XMLHepRepFactory::createHepRepReader (istream*) { + cerr << "XMLHepRepFactory::createHepRepReader not implemented" << endl; + return NULL; +} + +HepRepReader* XMLHepRepFactory::createHepRepReader (std::string) { + cerr << "XMLHepRepFactory::createHepRepReader not implemented" << endl; + return NULL; +} + +HepRepWriter* XMLHepRepFactory::createHepRepWriter(ostream* out, bool randomAccess, bool compress) { + return new XMLHepRepWriter(out, randomAccess, compress); +} diff --git a/source/visualization/HepRep/src/XMLHepRepStreamer.cc b/source/visualization/HepRep/src/XMLHepRepStreamer.cc deleted file mode 100644 index 9d470de314..0000000000 --- a/source/visualization/HepRep/src/XMLHepRepStreamer.cc +++ /dev/null @@ -1,225 +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 "XMLHepRepStreamer.h" - -#include "StreamerHepRepInstance.h" -#include "DefaultHepRepAttValue.h" - -#define NAMESPACE "heprep" - -using namespace std; -using namespace HEPREP; - -XMLHepRepStreamer::XMLHepRepStreamer(ostream* out) - : XMLWriter(out, " ", NAMESPACE) { - - this->nameSpace = NAMESPACE; - openDoc(); -} - -XMLHepRepStreamer::~XMLHepRepStreamer() { -} - -bool XMLHepRepStreamer::close() { - while (!hepreps.empty()) { - hepreps.pop(); - closeTag(); - } - - closeDoc(); - XMLWriter::close(); - return true; -} - -bool XMLHepRepStreamer::write(HepRep* root) { - setAttribute("xmlns", "http://www.freehep.org/HepRep"); - setAttribute("xmlns", "xsi", "http://www.w3.org/2001/XMLSchema-instance"); - setAttribute("xsi", "schemaLocation", "HepRep.xsd"); - openTag(nameSpace, "heprep"); - writtenLayers = false; - hepreps.push(root); - this->heprep = root; - return true; -} - -bool XMLHepRepStreamer::write(HepRepTypeTree* typeTree) { - while (hepreps.top() != heprep) { - if (hepreps.empty()) { - cerr << "XMLHepRepStreamer: cannot write typeTree without HepRep" << endl; - return false; - } - hepreps.pop(); - closeTag(); - } - if (!writtenLayers) { - writtenLayers = true; - string layerOrder = ""; - bool comma = false; - vector *layers = heprep->getLayerOrder(); - for (vector::iterator i=layers->begin(); i != layers->end(); i++) { - if (comma) { - layerOrder.append(", "); - } - layerOrder.append(*i); - comma = true; - } - setAttribute("order", layerOrder); - printTag(nameSpace, "layer"); - } - - setAttribute("name", typeTree->getName()); - setAttribute("version", typeTree->getVersion()); - openTag(nameSpace, "typetree"); - hepreps.push(typeTree); - heprepTypeTree = typeTree; - return true; -} - -bool XMLHepRepStreamer::write(HepRepType* type) { - HepRepType* parent = type->getSuperType(); - if (parent != NULL) { - while (hepreps.top() != parent) { - if (hepreps.empty()) { - cerr << "XMLHepRepStreamer: cannot write type, parent not anymore on stack..." << endl; - return false; - } - hepreps.pop(); - closeTag(); - } - } else { - while (hepreps.top() != heprepTypeTree) { - if (hepreps.empty()) { - cerr << "XMLHepRepStreamer: cannot write type without parent typeTree." << endl; - return false; - } - hepreps.pop(); - closeTag(); - } - } - - setAttribute("name", type->getName()); - openTag(nameSpace, "type"); - hepreps.push(type); - return true; -} - -bool XMLHepRepStreamer::write(HepRepTreeID* treeID) { - setAttribute("qualifier", treeID->getQualifier()); - setAttribute("name", treeID->getName()); - setAttribute("version", treeID->getVersion()); - printTag(nameSpace, "treeid"); - return true; -} - -bool XMLHepRepStreamer::write(HepRepAction* action) { - setAttribute("name", action->getName()); - setAttribute("expression", action->getExpression()); - printTag(nameSpace, "action"); - return true; -} - -bool XMLHepRepStreamer::write(HepRepInstanceTree* instanceTree) { - while (hepreps.top() != heprep) { - if (hepreps.empty()) { - cerr << "XMLHepRepStreamer cannot write instanceTree without HepRep." << endl; - return false; - } - hepreps.pop(); - closeTag(); - } - - setAttribute("name", instanceTree->getName()); - setAttribute("version", instanceTree->getVersion()); - setAttribute("typetreename", instanceTree->getTypeTree()->getName()); - setAttribute("typetreeversion", instanceTree->getTypeTree()->getVersion()); - openTag(nameSpace, "instancetree"); - hepreps.push(instanceTree); - return true; -} - -bool XMLHepRepStreamer::write(HepRepInstance* instance) { - void* parent = dynamic_cast(instance)->getParent(); - while (hepreps.top() != parent) { - if (hepreps.empty()) { - cerr << "XMLHepRepStreamer: cannot write instance, parent (instance/instanceTree) not anymore on Stack..." << endl; - return false; - } - hepreps.pop(); - closeTag(); - } - - setAttribute("type", instance->getType()->getName()); - openTag(nameSpace, "instance"); - hepreps.push(instance); - return true; -} - -bool XMLHepRepStreamer::write(HepRepPoint* point) { - while (hepreps.top() != point->getInstance()) { - if (hepreps.empty()) { - cerr << "XMLHepRepStreamer: cannot write point, parent instance not anymore on Stack..." << endl; - return false; - } - hepreps.pop(); - closeTag(); - } - - setAttribute("x", point->getX()); - setAttribute("y", point->getY()); - setAttribute("z", point->getZ()); - openTag(nameSpace, "point"); - hepreps.push(point); - return true; -} - -bool XMLHepRepStreamer::write(HepRepAttribute*) { - return true; -} - -bool XMLHepRepStreamer::write(HepRepDefinition*) { - return true; -} - -bool XMLHepRepStreamer::write(HepRepAttValue* attValue) { - string name = attValue->getName(); - - setAttribute("name", name); - setAttribute("value", attValue->getAsString()); - setAttribute("type", attValue->getTypeName()); - - string label = dynamic_cast(attValue)->toShowLabel(); - setAttribute("showLabel", label); - printTag(nameSpace, "attvalue"); - return true; -} - -bool XMLHepRepStreamer::write(HepRepAttDef* attDef) { - setAttribute("name", attDef->getName()); - setAttribute("desc", attDef->getDescription()); - setAttribute("category", attDef->getCategory()); - setAttribute("extra", attDef->getExtra()); - printTag(nameSpace, "attdef"); - return true; -} - diff --git a/source/visualization/HepRep/src/XMLHepRepStreamerFactory.cc b/source/visualization/HepRep/src/XMLHepRepStreamerFactory.cc deleted file mode 100644 index 169566e429..0000000000 --- a/source/visualization/HepRep/src/XMLHepRepStreamerFactory.cc +++ /dev/null @@ -1,91 +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 "XMLHepRepStreamerFactory.h" -#include "XMLHepRepStreamer.h" - -#include "StreamerHepRepPoint.h" -#include "StreamerHepRepInstance.h" -#include "StreamerHepRepInstanceTree.h" -#include "StreamerHepRepType.h" -#include "StreamerHepRepTypeTree.h" -#include "StreamerHepRep.h" -#include "DefaultHepRepAction.h" -#include "DefaultHepRepTreeID.h" - -using namespace std; -using namespace HEPREP; - - -XMLHepRepStreamerFactory::XMLHepRepStreamerFactory() { -} - -XMLHepRepStreamerFactory::~XMLHepRepStreamerFactory() { -} - -HepRepWriter* XMLHepRepStreamerFactory::createHepRepWriter(ostream* out) { - this->streamer = new XMLHepRepStreamer(out); - return streamer; -} - -HepRepPoint* XMLHepRepStreamerFactory::createHepRepPoint (HepRepInstance* instance, - double x, double y, double z) { - return new StreamerHepRepPoint(streamer, instance, x, y, z); -} - -HepRepInstance* XMLHepRepStreamerFactory::createHepRepInstance (HepRepInstance* parent, HepRepType* type) { - return new StreamerHepRepInstance(streamer, parent, type); -} - -HepRepInstance* XMLHepRepStreamerFactory::createHepRepInstance (HepRepInstanceTree* parent, HepRepType* type) { - return new StreamerHepRepInstance(streamer, parent, type); -} - -HepRepTreeID* XMLHepRepStreamerFactory::createHepRepTreeID (string name, string version, string qualifier) { - return new DefaultHepRepTreeID(name, version, qualifier); -} - -HepRepAction* XMLHepRepStreamerFactory::createHepRepAction (string name, string expression) { - return new DefaultHepRepAction(name, expression); -} - -HepRepInstanceTree* XMLHepRepStreamerFactory::createHepRepInstanceTree (string name, string version, - HepRepTreeID* typeTreeID) { - return new StreamerHepRepInstanceTree(streamer, name, version, typeTreeID); -} - -HepRepType* XMLHepRepStreamerFactory::createHepRepType (HepRepType* parent, string name) { - return new StreamerHepRepType(streamer, parent, name); -} - -HepRepTypeTree* XMLHepRepStreamerFactory::createHepRepTypeTree (HepRepTreeID* treeID) { - return new StreamerHepRepTypeTree(streamer, treeID); -} - -HepRep* XMLHepRepStreamerFactory::createHepRep () { - return new StreamerHepRep(streamer); -} - diff --git a/source/visualization/HepRep/src/XMLHepRepWriter.cc b/source/visualization/HepRep/src/XMLHepRepWriter.cc new file mode 100644 index 0000000000..c17d0553c6 --- /dev/null +++ b/source/visualization/HepRep/src/XMLHepRepWriter.cc @@ -0,0 +1,239 @@ + +#include "XMLHepRepWriter.h" + +#include "DefaultHepRepInstance.h" +#include "DefaultHepRepAttValue.h" + +#define NAMESPACE "heprep" + +using namespace zipios; +using namespace std; +using namespace HEPREP; + +XMLHepRepWriter::XMLHepRepWriter(ostream* out, bool randomAccess, bool compress) { + + this->nameSpace = NAMESPACE; + + if (randomAccess) { + zip = new ZipOutputStream(*out); + zip->setLevel(compress ? 6 : 0); + out = zip; + gz = NULL; + } else { + zip = NULL; + if (compress) { + gz = new GZIPOutputStream(*out); + out = gz; + } else { + gz = NULL; + } + } + xml = new XMLWriter(out, " ", NAMESPACE); +} + +XMLHepRepWriter::~XMLHepRepWriter() { + delete gz; + delete zip; + delete xml; +} + +bool XMLHepRepWriter::close() { + xml->closeDoc(true); + if (zip != NULL) { + zip->finish(); + zip->close(); + } + if (gz != NULL) { + gz->finish(); + gz->close(); + } + xml->close(); + return true; +} + +bool XMLHepRepWriter::write(HepRep* heprep, string name) { + if (zip != NULL) { + zip->putNextEntry(ZipCDirEntry(name)); + } + xml->openDoc(); + xml->setAttribute("xmlns", "http://www.freehep.org/HepRep"); + xml->setAttribute("xmlns", "xsi", "http://www.w3.org/2001/XMLSchema-instance"); + xml->setAttribute("xsi", "schemaLocation", "HepRep.xsd"); + xml->openTag(nameSpace, "heprep"); + write(heprep->getLayerOrder()); + vector* typeTreeList = heprep->getTypeTrees(); + for (vector::iterator i1=typeTreeList->begin(); i1 != typeTreeList->end(); i1++) { + write(*i1); + } + vector* instanceTreeList = heprep->getInstanceTrees(); + for (vector::iterator i2=instanceTreeList->begin(); i2 != instanceTreeList->end(); i2++) { + write(*i2); + } + xml->closeTag(); + xml->closeDoc(); + if (zip != NULL) { + zip->closeEntry(); + } + + return true; +} + +bool XMLHepRepWriter::write(vector *layers) { + string layerOrder = ""; + bool comma = false; + for (vector::iterator i=layers->begin(); i != layers->end(); i++) { + if (comma) { + layerOrder.append(", "); + } + layerOrder.append(*i); + comma = true; + } + xml->setAttribute("order", layerOrder); + xml->printTag(nameSpace, "layer"); + return true; +} + +bool XMLHepRepWriter::write(HepRepTypeTree* typeTree) { + xml->setAttribute("name", typeTree->getName()); + xml->setAttribute("version", typeTree->getVersion()); + xml->openTag(nameSpace, "typetree"); + + vector* list = typeTree->getTypes(); + for (vector::iterator i=list->begin(); i != list->end(); i++) { + write(*i); + } + xml->closeTag(); + return true; +} + +bool XMLHepRepWriter::write(HepRepType* type) { + xml->setAttribute("name", type->getName()); + xml->openTag(nameSpace, "type"); + write((HepRepDefinition*)type); + write((HepRepAttribute*)type); + + vector* list = type->getTypes(); + for (vector::iterator i=list->begin(); i != list->end(); i++) { + write(*i); + } + xml->closeTag(); + return true; +} + +bool XMLHepRepWriter::write(HepRepTreeID* treeID) { + xml->setAttribute("qualifier", treeID->getQualifier()); + xml->setAttribute("name", treeID->getName()); + xml->setAttribute("version", treeID->getVersion()); + xml->printTag(nameSpace, "treeid"); + return true; +} + +bool XMLHepRepWriter::write(HepRepAction* action) { + xml->setAttribute("name", action->getName()); + xml->setAttribute("expression", action->getExpression()); + xml->printTag(nameSpace, "action"); + return true; +} + +bool XMLHepRepWriter::write(HepRepInstanceTree* instanceTree) { + xml->setAttribute("name", instanceTree->getName()); + xml->setAttribute("version", instanceTree->getVersion()); + xml->setAttribute("typetreename", instanceTree->getTypeTree()->getName()); + xml->setAttribute("typetreeversion", instanceTree->getTypeTree()->getVersion()); + xml->openTag(nameSpace, "instancetree"); + // refs + vector* instanceTreeList = instanceTree->getInstanceTrees(); + for (vector::iterator i1=instanceTreeList->begin(); i1 != instanceTreeList->end(); i1++) { + write(*i1); + } + + // instances + vector* instanceList = instanceTree->getInstances(); + for (vector::iterator i2=instanceList->begin(); i2 != instanceList->end(); i2++) { + write(*i2); + } + xml->closeTag(); + return true; +} + +bool XMLHepRepWriter::write(HepRepInstance* instance) { + // FIXME FREEHEP-356 + xml->setAttribute("type", instance->getType()->getFullName()); + xml->openTag(nameSpace, "instance"); + write((HepRepAttribute*)instance); + + vector* pointList = instance->getPoints(); + for (vector::iterator i1=pointList->begin(); i1 != pointList->end(); i1++) { + write(*i1); + } + + vector* instanceList = instance->getInstances(); + for (vector::iterator i2=instanceList->begin(); i2 != instanceList->end(); i2++) { + write(*i2); + } + xml->closeTag(); + return true; +} + +bool XMLHepRepWriter::write(HepRepPoint* point) { + xml->setAttribute("x", point->getX()); + xml->setAttribute("y", point->getY()); + xml->setAttribute("z", point->getZ()); + if (point->getAttValuesFromNode()->size() != 0) { + xml->openTag(nameSpace, "point"); + write((HepRepAttribute*)point); + xml->closeTag(); + } else { + xml->printTag(nameSpace, "point"); + } + return true; +} + +bool XMLHepRepWriter::write(HepRepAttribute* attribute) { + // BUG FIX. Do something special for layers, because these do not end + // up in the normal iteration. + HepRepAttValue* layerAtt = attribute->getAttValueFromNode("layer"); + if (layerAtt != NULL) write(layerAtt); + + vector* list = attribute->getAttValuesFromNode(); + for (vector::iterator i=list->begin(); i != list->end(); i++) { + write(*i); + } + return true; +} + +bool XMLHepRepWriter::write(HepRepDefinition* definition) { + vector* list = definition->getAttDefsFromNode(); + for (vector::iterator i=list->begin(); i != list->end(); i++) { + write(*i); + } + return true; +} + +bool XMLHepRepWriter::write(HepRepAttValue* attValue) { + string name = attValue->getName(); + + xml->setAttribute("name", name); + xml->setAttribute("value", attValue->getAsString()); + + if (attValue->getType() != HepRepConstants::TYPE_STRING) { + xml->setAttribute("type", attValue->getTypeName()); + } + + if (attValue->showLabel() != HepRepConstants::SHOW_NONE) { + string label = dynamic_cast(attValue)->toShowLabel(); + xml->setAttribute("showlabel", label); + } + xml->printTag(nameSpace, "attvalue"); + return true; +} + +bool XMLHepRepWriter::write(HepRepAttDef* attDef) { + xml->setAttribute("name", attDef->getName()); + xml->setAttribute("desc", attDef->getDescription()); + xml->setAttribute("category", attDef->getCategory()); + xml->setAttribute("extra", attDef->getExtra()); + xml->printTag(nameSpace, "attdef"); + return true; +} + diff --git a/source/visualization/HepRep/src/XMLWriter.cc b/source/visualization/HepRep/src/XMLWriter.cc index 12f747bc00..a89118e389 100644 --- a/source/visualization/HepRep/src/XMLWriter.cc +++ b/source/visualization/HepRep/src/XMLWriter.cc @@ -1,25 +1,3 @@ -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By 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 @@ -27,12 +5,12 @@ using namespace std; -XMLWriter::XMLWriter(ostream* out, string, string defaultNameSpace) +XMLWriter::XMLWriter(ostream* out, string indentString, string defaultNameSpace) : defaultNameSpace(defaultNameSpace) { writer = new IndentPrintWriter(out); - writer->setIndentString(" "); - closed = true; - dtdName = NULL; + writer->setIndentString(indentString); + closed = false; + dtdName = ""; } XMLWriter::~XMLWriter() { @@ -49,7 +27,6 @@ void XMLWriter::openDoc(string version, string encoding, bool standalone) { string indentString = writer->getIndentString(); writer->setIndentString(indentString); - closed = false; // if (!XMLCharacterProperties.validVersionNum(version)) throw new RuntimeException("Invalid version number: "+version); *writer << "" << endl; } void XMLWriter::referToDTD(string name, string system) { - if (dtdName != NULL) { + if (dtdName != "") { cerr << "XMLWriter::ReferToDTD cannot be called twice"; } - dtdName = &name; + dtdName = name; *writer << "" << endl; } -void XMLWriter::closeDoc() { +void XMLWriter::closeDoc(bool force) { if (!closed) { if (!openTags.empty()) { - cerr << "Not all tags were closed before closing XML document:" << endl; + if (!force) cerr << "Not all tags were closed before closing XML document:" << endl; while (!openTags.empty()) { - cerr << " " << endl; - openTags.pop(); + if (force) { + closeTag(); + } else { + cerr << " " << endl; + openTags.pop(); + } } } closed = true; @@ -100,6 +81,10 @@ void XMLWriter::printComment(string comment) { *writer << "" << endl; } +void XMLWriter::printPlain(string text) { + *writer << text.c_str(); +} + void XMLWriter::print(string text) { *writer << normalizeText(text).c_str(); } @@ -119,8 +104,8 @@ void XMLWriter::openTag(string ns, string name) { void XMLWriter::openTag(string name) { checkNameValid(name); - if (openTags.empty() && dtdName != NULL && dtdName->compare(name)) { - cerr << "XMLWriter::openTag(), First tag: '" << name.c_str() << "' not equal to DTD id: '" << dtdName->c_str() << "'" << endl; + if (openTags.empty() && dtdName.compare("") && dtdName.compare(name)) { + cerr << "XMLWriter::openTag(), First tag: '" << name << "' not equal to DTD id: '" << dtdName << "'" << endl; } *writer << "<" << name.c_str(); printAttributes(name.length()); @@ -165,7 +150,7 @@ void XMLWriter::setAttribute(string ns, string name, string value) { void XMLWriter::setAttribute(string name, double value) { char buffer[40]; - sprintf(buffer, "%f", value); + sprintf(buffer, "%g", value); attributes[name] = buffer; } diff --git a/source/visualization/HepRep/src/appendzip.cc b/source/visualization/HepRep/src/appendzip.cc new file mode 100644 index 0000000000..a7a1c2935a --- /dev/null +++ b/source/visualization/HepRep/src/appendzip.cc @@ -0,0 +1,82 @@ +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include "zipios++/ziphead.h" +#include "zipios++/zipheadio.h" + +using namespace std ; +using namespace zipios ; + +char *_progname ; + +void printUsage() ; +void exitUsage( int exit_code ) ; + +int main( int argc, char *argv[] ) { + _progname = argv[ 0 ] ; + if ( argc != 3 ) + exitUsage( 1 ) ; + + ofstream exef( argv[ 1 ], ios::app | ios::binary ) ; + if( ! exef ) { + cout << "Error: Unable to open " << argv[ 1 ] << " for writing" << endl ; + exitUsage( 1 ) ; + } + + ifstream zipf( argv[ 2 ], ios::in | ios::binary ) ; + if( ! zipf ) { + cout << "Error: Unable to open " << argv[ 2 ] << " for reading." << endl ; + exitUsage( 1 ) ; + } + + // get eof pos (to become zip file starting position). + uint32 zip_start = exef.tellp() ; + cout << "zip start will be at " << zip_start << endl ; + + // Append zip file to exe file + + exef << zipf.rdbuf() ; + // write zipfile start offset to file + writeUint32( zip_start, exef ) ; + + exef.close() ; + zipf.close() ; + return 0; +} + + +void printUsage() { + cout << "Usage: " << _progname << " exe-file zipfile" << endl ; +} + +void exitUsage( int exit_code ) { + printUsage() ; + exit( exit_code ) ; +} + +/** \file + \anchor appendzip_anchor + Source code to a small program appendzip that appends a zip + archive to another file. Run appendzip without arguments to + get a helpful usage message. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/basicentry.cc b/source/visualization/HepRep/src/basicentry.cc new file mode 100644 index 0000000000..110c443995 --- /dev/null +++ b/source/visualization/HepRep/src/basicentry.cc @@ -0,0 +1,163 @@ + +#include "zipios++/zipios-config.h" + +#include + +#include "zipios++/meta-iostreams.h" +#include + +#include "zipios_common.h" +#include "zipios++/basicentry.h" +#include "zipios++/zipios_defs.h" + +#include "outputstringstream.h" + +namespace zipios { + +using std::ifstream ; +using std::ios ; + +// +// Public definitions +// + +BasicEntry::BasicEntry( const string &filename, const string &comment, + const FilePath &basepath ) + : _filename ( filename ), + _comment ( comment ), + _basepath ( basepath ) +{ + string full_path = _basepath + _filename ; + ifstream is( full_path.c_str(), ios::in | ios::binary ) ; + if ( ! is ) { + _valid = false ; + } else { + is.seekg( 0, ios::end ) ; + _size = is.tellg() ; + is.close() ; + _valid = true ; + } +} + +string BasicEntry::getComment() const { + return _comment ; +} + +uint32 BasicEntry::getCompressedSize() const { + return getSize() ; +} + +uint32 BasicEntry::getCrc() const { + return 0 ; +} + +vector< unsigned char > BasicEntry::getExtra() const { + return vector< unsigned char > () ; +} + +StorageMethod BasicEntry::getMethod() const { + return STORED ; +} + +string BasicEntry::getName() const { + return _filename ; +} + +string BasicEntry::getFileName() const { + if ( isDirectory() ) + return string() ; + string::size_type pos ; + pos = _filename.find_last_of( separator ) ; + if ( pos != string::npos ) { // separator found! + // isDirectory() check means pos should not be last, so pos+1 is ok + return _filename.substr(pos + 1) ; + } else { + return _filename ; + } +} + +uint32 BasicEntry::getSize() const { + return _size ; +} + +int BasicEntry::getTime() const { + return 0 ; // FIXME later +} + +bool BasicEntry::isValid() const { + return _valid ; +} + +// virtual int hashCode() const {} +bool BasicEntry::isDirectory() const { + assert( _filename.size() != 0 ) ; + return _filename[ _filename.size() - 1 ] == separator ; +} + + +void BasicEntry::setComment( const string &comment ) { + _comment = comment ; +} + +void BasicEntry::setCompressedSize( uint32 /*MD:size*/ ) { +} + +void BasicEntry::setCrc( uint32 /*MD:crc*/ ) { +} + +void BasicEntry::setExtra( const vector< unsigned char > &/*MD:extra*/ ) { +} + +void BasicEntry::setMethod( StorageMethod /*MD:method*/ ) { +} + +void BasicEntry::setName( const string &name ) { + _filename = name ; +} + +void BasicEntry::setSize( uint32 size ) { + _size = size ; +} + +void BasicEntry::setTime( int /*MD:time*/ ) { +} + + +string BasicEntry::toString() const { + OutputStringStream sout ; + sout << _filename << " (" << _size << " bytes)" ; + return sout.str() ; +} + +FileEntry *BasicEntry::clone() const { + return new BasicEntry( *this ) ; +} + +BasicEntry::~BasicEntry() { +} + + +} // namespace + +/** \file + Implementation of BasicEntry. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/collcoll.cc b/source/visualization/HepRep/src/collcoll.cc new file mode 100644 index 0000000000..f48e84b87c --- /dev/null +++ b/source/visualization/HepRep/src/collcoll.cc @@ -0,0 +1,162 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include "zipios++/collcoll.h" +#include "zipios_common.h" + +namespace zipios { + +using std::ifstream ; + +CollectionCollection *CollectionCollection::_inst = 0 ; + + +CollectionCollection::CollectionCollection() { + _valid = true ; // we're valid even though we are empty! +} + + +bool CollectionCollection::addCollection( const FileCollection &collection ) { + if ( ! _valid ) + throw InvalidStateException( "Attempt to add a FileCollection to an invalid CollectionCollection" ) ; + if ( this == &collection || ! collection.isValid() ) + return false ; + _collections.push_back( collection.clone() ) ; + return true ; + +} + +bool CollectionCollection::addCollection( FileCollection *collection ) { + if ( ! _valid ) + throw InvalidStateException( "Attempt to add a FileCollection to an invalid CollectionCollection" ) ; + if ( collection == 0 || this == collection || ! collection->isValid() ) + return false ; + _collections.push_back( collection ) ; + return true ; +} + + +void CollectionCollection::close() { + _valid = false ; +} + + +ConstEntries CollectionCollection::entries() const { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get entries from an invalid CollectionCollection" ) ; + + ConstEntries all_entries ; + std::vector< FileCollection * >::const_iterator it ; + for ( it = _collections.begin() ; it != _collections.end() ; it++ ) + all_entries += (*it)->entries() ; + return all_entries ; +} + + +ConstEntryPointer CollectionCollection::getEntry( const string &name, + MatchPath matchpath ) const { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get an entry from an invalid CollectionCollection" ) ; + // Returns the first matching entry. + std::vector< FileCollection * >::const_iterator it ; + ConstEntryPointer cep ; + + getEntry( name, cep, it, matchpath ) ; + + return cep ; +} + + +istream *CollectionCollection::getInputStream( const ConstEntryPointer &entry ) { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get an input stream from an invalid CollectionCollection" ) ; + + return getInputStream( entry->getName() ) ; +} + + +istream *CollectionCollection::getInputStream( const string &entry_name, + MatchPath matchpath ) { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get an input stream from an invalid CollectionCollection" ) ; + + std::vector< FileCollection * >::const_iterator it ; + ConstEntryPointer cep ; + + getEntry( entry_name, cep, it, matchpath ) ; + + if ( cep == 0 ) + return 0 ; + else + return (*it)->getInputStream( entry_name ) ; + +} + + +int CollectionCollection::size() const { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get the size of an invalid CollectionCollection" ) ; + int sz = 0 ; + std::vector< FileCollection * >::const_iterator it ; + for ( it = _collections.begin() ; it != _collections.end() ; it++ ) + sz += (*it)->size() ; + return sz ; +} + +FileCollection *CollectionCollection::clone() const { + return new CollectionCollection( *this ) ; +} + +CollectionCollection::~CollectionCollection() { + std::vector< FileCollection * >::iterator it ; + for ( it = _collections.begin() ; it != _collections.end() ; ++it ) + delete *it ; +} + + +// +// Protected member functions +// + +void CollectionCollection::getEntry( const string &name, + ConstEntryPointer &cep, + std::vector< FileCollection * >::const_iterator &it, + MatchPath matchpath ) const { + + // Returns the first matching entry. + cep = 0 ; + for ( it = _collections.begin() ; it != _collections.end() ; it++ ) { + cep = (*it)->getEntry( name, matchpath ) ; + if ( cep ) + break ; + } +} + + + +} // namespace + +/** \file + Implementation of CollectionCollection. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/compress.cc b/source/visualization/HepRep/src/compress.cc new file mode 100644 index 0000000000..f29cc9e85b --- /dev/null +++ b/source/visualization/HepRep/src/compress.cc @@ -0,0 +1,68 @@ +/* compress.c -- compress a memory buffer + * Copyright (C) 1995-1998 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id: compress.cc,v 1.1 2003/07/11 06:01:44 duns Exp $ */ + +#include "zlib.h" + +/* =========================================================================== + Compresses the source buffer into the destination buffer. The level + parameter has the same meaning as in deflateInit. sourceLen is the byte + length of the source buffer. Upon entry, destLen is the total size of the + destination buffer, which must be at least 0.1% larger than sourceLen plus + 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. + + compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough + memory, Z_BUF_ERROR if there was not enough room in the output buffer, + Z_STREAM_ERROR if the level parameter is invalid. +*/ +int ZEXPORT compress2 (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level) +// Bytef *dest; +// uLongf *destLen; +// const Bytef *source; +// uLong sourceLen; +// int level; +{ + z_stream stream; + int err; + + stream.next_in = (Bytef*)source; + stream.avail_in = (uInt)sourceLen; +#ifdef MAXSEG_64K + /* Check for source > 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; +#endif + stream.next_out = dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + + stream.zalloc = (alloc_func)0; + stream.zfree = (free_func)0; + stream.opaque = (voidpf)0; + + err = deflateInit(&stream, level); + if (err != Z_OK) return err; + + err = deflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + deflateEnd(&stream); + return err == Z_OK ? Z_BUF_ERROR : err; + } + *destLen = stream.total_out; + + err = deflateEnd(&stream); + return err; +} + +/* =========================================================================== + */ +int ZEXPORT compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen) +// Bytef *dest; +// uLongf *destLen; +// const Bytef *source; +// uLong sourceLen; +{ + return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); +} diff --git a/source/visualization/HepRep/src/deflate.cc b/source/visualization/HepRep/src/deflate.cc new file mode 100644 index 0000000000..653abd4e3a --- /dev/null +++ b/source/visualization/HepRep/src/deflate.cc @@ -0,0 +1,1350 @@ +/* deflate.c -- compress data using the deflation algorithm + * Copyright (C) 1995-1998 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + * ALGORITHM + * + * The "deflation" process depends on being able to identify portions + * of the input text which are identical to earlier input (within a + * sliding window trailing behind the input currently being processed). + * + * The most straightforward technique turns out to be the fastest for + * most input files: try all possible matches and select the longest. + * The key feature of this algorithm is that insertions into the string + * dictionary are very simple and thus fast, and deletions are avoided + * completely. Insertions are performed at each input character, whereas + * string matches are performed only when the previous match ends. So it + * is preferable to spend more time in matches to allow very fast string + * insertions and avoid deletions. The matching algorithm for small + * strings is inspired from that of Rabin & Karp. A brute force approach + * is used to find longer strings when a small match has been found. + * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze + * (by Leonid Broukhis). + * A previous version of this file used a more sophisticated algorithm + * (by Fiala and Greene) which is guaranteed to run in linear amortized + * time, but has a larger average cost, uses more memory and is patented. + * However the F&G algorithm may be faster for some highly redundant + * files if the parameter max_chain_length (described below) is too large. + * + * ACKNOWLEDGEMENTS + * + * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and + * I found it in 'freeze' written by Leonid Broukhis. + * Thanks to many people for bug reports and testing. + * + * REFERENCES + * + * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". + * Available in ftp://ds.internic.net/rfc/rfc1951.txt + * + * A description of the Rabin and Karp algorithm is given in the book + * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. + * + * Fiala,E.R., and Greene,D.H. + * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 + * + */ + +/* @(#) $Id: deflate.cc,v 1.5 2003/07/11 06:33:52 duns Exp $ */ + +#include "deflate.h" + +const char deflate_copyright[] = + " deflate 1.1.3 Copyright 1995-1998 Jean-loup Gailly "; +/* + If you use the zlib library in a product, an acknowledgment is welcome + in the documentation of your product. If for some reason you cannot + include such an acknowledgment, I would appreciate that you keep this + copyright string in the executable of your product. + */ + +/* =========================================================================== + * Function prototypes. + */ +typedef enum { + need_more, /* block not completed, need more input or more output */ + block_done, /* block flush performed */ + finish_started, /* finish started, need only more output at next deflate */ + finish_done /* finish done, accept no more input or output */ +} block_state; + +typedef block_state (*compress_func) OF((deflate_state *s, int flush)); +/* Compression function. Returns the block state after the call. */ + +local void fill_window OF((deflate_state *s)); +local block_state deflate_stored OF((deflate_state *s, int flush)); +local block_state deflate_fast OF((deflate_state *s, int flush)); +local block_state deflate_slow OF((deflate_state *s, int flush)); +local void lm_init OF((deflate_state *s)); +local void putShortMSB OF((deflate_state *s, uInt b)); +local void flush_pending OF((z_streamp strm)); +local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); +#ifdef ASMV + void match_init OF((void)); /* asm code initialization */ + uInt longest_match OF((deflate_state *s, IPos cur_match)); +#else +local uInt longest_match OF((deflate_state *s, IPos cur_match)); +#endif + +#ifdef DEBUG +local void check_match OF((deflate_state *s, IPos start, IPos match, + int length)); +#endif + +/* =========================================================================== + * Local data + */ + +#define NIL 0 +/* Tail of hash chains */ + +#ifndef TOO_FAR +# define TOO_FAR 4096 +#endif +/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ + +#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) +/* Minimum amount of lookahead, except at the end of the input file. + * See deflate.c for comments about the MIN_MATCH+1. + */ + +/* Values for max_lazy_match, good_match and max_chain_length, depending on + * the desired pack level (0..9). The values given below have been tuned to + * exclude worst case performance for pathological files. Better values may be + * found for specific files. + */ +typedef struct config_s { + ush good_length; /* reduce lazy search above this match length */ + ush max_lazy; /* do not perform lazy search above this match length */ + ush nice_length; /* quit search above this match length */ + ush max_chain; + compress_func func; +} config; + +local const config configuration_table[10] = { +/* good lazy nice chain */ +/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ +/* 1 */ {4, 4, 8, 4, deflate_fast}, /* maximum speed, no lazy matches */ +/* 2 */ {4, 5, 16, 8, deflate_fast}, +/* 3 */ {4, 6, 32, 32, deflate_fast}, + +/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */ +/* 5 */ {8, 16, 32, 32, deflate_slow}, +/* 6 */ {8, 16, 128, 128, deflate_slow}, +/* 7 */ {8, 32, 128, 256, deflate_slow}, +/* 8 */ {32, 128, 258, 1024, deflate_slow}, +/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* maximum compression */ + +/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4 + * For deflate_fast() (levels <= 3) good is ignored and lazy has a different + * meaning. + */ + +#define EQUAL 0 +/* result of memcmp for equal strings */ + +struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ + +/* =========================================================================== + * Update a hash value with the given input byte + * IN assertion: all calls to to UPDATE_HASH are made with consecutive + * input characters, so that a running hash key can be computed from the + * previous key instead of complete recalculation each time. + */ +#define UPDATE_HASH(s,h,c) (h = (((h)<hash_shift) ^ (c)) & s->hash_mask) + + +/* =========================================================================== + * Insert string str in the dictionary and set match_head to the previous head + * of the hash chain (the most recent string with same hash key). Return + * the previous length of the hash chain. + * If this file is compiled with -DFASTEST, the compression level is forced + * to 1, and no hash chains are maintained. + * IN assertion: all calls to to INSERT_STRING are made with consecutive + * input characters and the first MIN_MATCH bytes of str are valid + * (except for the last MIN_MATCH-1 bytes of the input file). + */ +#ifdef FASTEST +#define INSERT_STRING(s, str, match_head) \ + (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ + match_head = s->head[s->ins_h], \ + s->head[s->ins_h] = (Pos)(str)) +#else +#define INSERT_STRING(s, str, match_head) \ + (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ + s->prev[(str) & s->w_mask] = match_head = s->head[s->ins_h], \ + s->head[s->ins_h] = (Pos)(str)) +#endif + +/* =========================================================================== + * Initialize the hash table (avoiding 64K overflow for 16 bit systems). + * prev[] will be initialized on the fly. + */ +#define CLEAR_HASH(s) \ + s->head[s->hash_size-1] = NIL; \ + zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); + +/* ========================================================================= */ +int ZEXPORT deflateInit_(z_streamp strm, int level, const char *version, int stream_size) +// z_streamp strm; +// int level; +// const char *version; +// int stream_size; +{ + return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, + Z_DEFAULT_STRATEGY, version, stream_size); + /* To do: ignore strm->next_in if we use it as window */ +} + +/* ========================================================================= */ +int ZEXPORT deflateInit2_(z_streamp strm, int level, int method, int windowBits, int memLevel, int strategy, + const char *version, int stream_size) +// z_streamp strm; +// int level; +// int method; +// int windowBits; +// int memLevel; +// int strategy; +// const char *version; +// int stream_size; +{ + deflate_state *s; + int noheader = 0; + static const char* my_version = ZLIB_VERSION; + + ushf *overlay; + /* We overlay pending_buf and d_buf+l_buf. This works since the average + * output size for (length,distance) codes is <= 24 bits. + */ + + if (version == Z_NULL || version[0] != my_version[0] || + stream_size != sizeof(z_stream)) { + return Z_VERSION_ERROR; + } + if (strm == Z_NULL) return Z_STREAM_ERROR; + + strm->msg = Z_NULL; + if (strm->zalloc == Z_NULL) { + strm->zalloc = zcalloc; + strm->opaque = (voidpf)0; + } + if (strm->zfree == Z_NULL) strm->zfree = zcfree; + + if (level == Z_DEFAULT_COMPRESSION) level = 6; +#ifdef FASTEST + level = 1; +#endif + + if (windowBits < 0) { /* undocumented feature: suppress zlib header */ + noheader = 1; + windowBits = -windowBits; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED || + windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || + strategy < 0 || strategy > Z_HUFFMAN_ONLY) { + return Z_STREAM_ERROR; + } + s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state)); + if (s == Z_NULL) return Z_MEM_ERROR; + strm->state = (struct internal_state FAR *)s; + s->strm = strm; + + s->noheader = noheader; + s->w_bits = windowBits; + s->w_size = 1 << s->w_bits; + s->w_mask = s->w_size - 1; + + s->hash_bits = memLevel + 7; + s->hash_size = 1 << s->hash_bits; + s->hash_mask = s->hash_size - 1; + s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH); + + s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte)); + s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos)); + s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos)); + + s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ + + overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); + s->pending_buf = (uchf *) overlay; + s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L); + + if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || + s->pending_buf == Z_NULL) { + strm->msg = (char*)ERR_MSG(Z_MEM_ERROR); + deflateEnd (strm); + return Z_MEM_ERROR; + } + s->d_buf = overlay + s->lit_bufsize/sizeof(ush); + s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; + + s->level = level; + s->strategy = strategy; + s->method = (Byte)method; + + return deflateReset(strm); +} + +/* ========================================================================= */ +int ZEXPORT deflateSetDictionary (z_streamp strm, const Bytef *dictionary, uInt dictLength) +// z_streamp strm; +// const Bytef *dictionary; +// uInt dictLength; +{ + deflate_state *s; + uInt length = dictLength; + uInt n; + IPos hash_head = 0; + + if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL || + strm->state->status != INIT_STATE) return Z_STREAM_ERROR; + + s = strm->state; + strm->adler = adler32(strm->adler, dictionary, dictLength); + + if (length < MIN_MATCH) return Z_OK; + if (length > MAX_DIST(s)) { + length = MAX_DIST(s); +#ifndef USE_DICT_HEAD + dictionary += dictLength - length; /* use the tail of the dictionary */ +#endif + } + zmemcpy(s->window, dictionary, length); + s->strstart = length; + s->block_start = (long)length; + + /* Insert all strings in the hash table (except for the last two bytes). + * s->lookahead stays null, so s->ins_h will be recomputed at the next + * call of fill_window. + */ + s->ins_h = s->window[0]; + UPDATE_HASH(s, s->ins_h, s->window[1]); + for (n = 0; n <= length - MIN_MATCH; n++) { + INSERT_STRING(s, n, hash_head); + } + if (hash_head) hash_head = 0; /* to make compiler happy */ + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflateReset (z_streamp strm) +// z_streamp strm; +{ + deflate_state *s; + + if (strm == Z_NULL || strm->state == Z_NULL || + strm->zalloc == Z_NULL || strm->zfree == Z_NULL) return Z_STREAM_ERROR; + + strm->total_in = strm->total_out = 0; + strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */ + strm->data_type = Z_UNKNOWN; + + s = (deflate_state *)strm->state; + s->pending = 0; + s->pending_out = s->pending_buf; + + if (s->noheader < 0) { + s->noheader = 0; /* was set to -1 by deflate(..., Z_FINISH); */ + } + s->status = s->noheader ? BUSY_STATE : INIT_STATE; + strm->adler = 1; + s->last_flush = Z_NO_FLUSH; + + _tr_init(s); + lm_init(s); + + return Z_OK; +} + +/* ========================================================================= */ +int ZEXPORT deflateParams(z_streamp strm, int level, int strategy) +// z_streamp strm; +// int level; +// int strategy; +{ + deflate_state *s; + compress_func func; + int err = Z_OK; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + s = strm->state; + + if (level == Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (level < 0 || level > 9 || strategy < 0 || strategy > Z_HUFFMAN_ONLY) { + return Z_STREAM_ERROR; + } + func = configuration_table[s->level].func; + + if (func != configuration_table[level].func && strm->total_in != 0) { + /* Flush the last buffer: */ + err = deflate(strm, Z_PARTIAL_FLUSH); + } + if (s->level != level) { + s->level = level; + s->max_lazy_match = configuration_table[level].max_lazy; + s->good_match = configuration_table[level].good_length; + s->nice_match = configuration_table[level].nice_length; + s->max_chain_length = configuration_table[level].max_chain; + } + s->strategy = strategy; + return err; +} + +/* ========================================================================= + * Put a short in the pending buffer. The 16-bit value is put in MSB order. + * IN assertion: the stream state is correct and there is enough room in + * pending_buf. + */ +local void putShortMSB (deflate_state *s, uInt b) +// deflate_state *s; +// uInt b; +{ + put_byte(s, (Byte)(b >> 8)); + put_byte(s, (Byte)(b & 0xff)); +} + +/* ========================================================================= + * Flush as much pending output as possible. All deflate() output goes + * through this function so some applications may wish to modify it + * to avoid allocating a large strm->next_out buffer and copying into it. + * (See also read_buf()). + */ +local void flush_pending(z_streamp strm) +// z_streamp strm; +{ + unsigned len = strm->state->pending; + + if (len > strm->avail_out) len = strm->avail_out; + if (len == 0) return; + + zmemcpy(strm->next_out, strm->state->pending_out, len); + strm->next_out += len; + strm->state->pending_out += len; + strm->total_out += len; + strm->avail_out -= len; + strm->state->pending -= len; + if (strm->state->pending == 0) { + strm->state->pending_out = strm->state->pending_buf; + } +} + +/* ========================================================================= */ +int ZEXPORT deflate (z_streamp strm, int flush) +// z_streamp strm; +// int flush; +{ + int old_flush; /* value of flush param for previous deflate call */ + deflate_state *s; + + if (strm == Z_NULL || strm->state == Z_NULL || + flush > Z_FINISH || flush < 0) { + return Z_STREAM_ERROR; + } + s = strm->state; + + if (strm->next_out == Z_NULL || + (strm->next_in == Z_NULL && strm->avail_in != 0) || + (s->status == FINISH_STATE && flush != Z_FINISH)) { + ERR_RETURN(strm, Z_STREAM_ERROR); + } + if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR); + + s->strm = strm; /* just in case */ + old_flush = s->last_flush; + s->last_flush = flush; + + /* Write the zlib header */ + if (s->status == INIT_STATE) { + + uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; + uInt level_flags = (s->level-1) >> 1; + + if (level_flags > 3) level_flags = 3; + header |= (level_flags << 6); + if (s->strstart != 0) header |= PRESET_DICT; + header += 31 - (header % 31); + + s->status = BUSY_STATE; + putShortMSB(s, header); + + /* Save the adler32 of the preset dictionary: */ + if (s->strstart != 0) { + putShortMSB(s, (uInt)(strm->adler >> 16)); + putShortMSB(s, (uInt)(strm->adler & 0xffff)); + } + strm->adler = 1L; + } + + /* Flush as much pending output as possible */ + if (s->pending != 0) { + flush_pending(strm); + if (strm->avail_out == 0) { + /* Since avail_out is 0, deflate will be called again with + * more output space, but possibly with both pending and + * avail_in equal to zero. There won't be anything to do, + * but this is not an error situation so make sure we + * return OK instead of BUF_ERROR at next call of deflate: + */ + s->last_flush = -1; + return Z_OK; + } + + /* Make sure there is something to do and avoid duplicate consecutive + * flushes. For repeated and useless calls with Z_FINISH, we keep + * returning Z_STREAM_END instead of Z_BUFF_ERROR. + */ + } else if (strm->avail_in == 0 && flush <= old_flush && + flush != Z_FINISH) { + ERR_RETURN(strm, Z_BUF_ERROR); + } + + /* User must not provide more input after the first FINISH: */ + if (s->status == FINISH_STATE && strm->avail_in != 0) { + ERR_RETURN(strm, Z_BUF_ERROR); + } + + /* Start a new block or continue the current one. + */ + if (strm->avail_in != 0 || s->lookahead != 0 || + (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) { + block_state bstate; + + bstate = (*(configuration_table[s->level].func))(s, flush); + + if (bstate == finish_started || bstate == finish_done) { + s->status = FINISH_STATE; + } + if (bstate == need_more || bstate == finish_started) { + if (strm->avail_out == 0) { + s->last_flush = -1; /* avoid BUF_ERROR next call, see above */ + } + return Z_OK; + /* If flush != Z_NO_FLUSH && avail_out == 0, the next call + * of deflate should use the same flush parameter to make sure + * that the flush is complete. So we don't have to output an + * empty block here, this will be done at next call. This also + * ensures that for a very small output buffer, we emit at most + * one empty block. + */ + } + if (bstate == block_done) { + if (flush == Z_PARTIAL_FLUSH) { + _tr_align(s); + } else { /* FULL_FLUSH or SYNC_FLUSH */ + _tr_stored_block(s, (char*)0, 0L, 0); + /* For a full flush, this empty block will be recognized + * as a special marker by inflate_sync(). + */ + if (flush == Z_FULL_FLUSH) { + CLEAR_HASH(s); /* forget history */ + } + } + flush_pending(strm); + if (strm->avail_out == 0) { + s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */ + return Z_OK; + } + } + } + Assert(strm->avail_out > 0, "bug2"); + + if (flush != Z_FINISH) return Z_OK; + if (s->noheader) return Z_STREAM_END; + + /* Write the zlib trailer (adler32) */ + putShortMSB(s, (uInt)(strm->adler >> 16)); + putShortMSB(s, (uInt)(strm->adler & 0xffff)); + flush_pending(strm); + /* If avail_out is zero, the application will call deflate again + * to flush the rest. + */ + s->noheader = -1; /* write the trailer only once! */ + return s->pending != 0 ? Z_OK : Z_STREAM_END; +} + +/* ========================================================================= */ +int ZEXPORT deflateEnd (z_streamp strm) +// z_streamp strm; +{ + int status; + + if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; + + status = strm->state->status; + if (status != INIT_STATE && status != BUSY_STATE && + status != FINISH_STATE) { + return Z_STREAM_ERROR; + } + + /* Deallocate in reverse order of allocations: */ + TRY_FREE(strm, strm->state->pending_buf); + TRY_FREE(strm, strm->state->head); + TRY_FREE(strm, strm->state->prev); + TRY_FREE(strm, strm->state->window); + + ZFREE(strm, strm->state); + strm->state = Z_NULL; + + return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; +} + +/* ========================================================================= + * Copy the source state to the destination state. + * To simplify the source, this is not supported for 16-bit MSDOS (which + * doesn't have enough memory anyway to duplicate compression states). + */ +int ZEXPORT deflateCopy (z_streamp dest, z_streamp source) +// z_streamp dest; +// z_streamp source; +{ +#ifdef MAXSEG_64K + return Z_STREAM_ERROR; +#else + deflate_state *ds; + deflate_state *ss; + ushf *overlay; + + + if (source == Z_NULL || dest == Z_NULL || source->state == Z_NULL) { + return Z_STREAM_ERROR; + } + + ss = source->state; + + *dest = *source; + + ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state)); + if (ds == Z_NULL) return Z_MEM_ERROR; + dest->state = (struct internal_state FAR *) ds; + *ds = *ss; + ds->strm = dest; + + ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte)); + ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos)); + ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos)); + overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2); + ds->pending_buf = (uchf *) overlay; + + if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || + ds->pending_buf == Z_NULL) { + deflateEnd (dest); + return Z_MEM_ERROR; + } + /* following zmemcpy do not work for 16-bit MSDOS */ + zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte)); + zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos)); + zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos)); + zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); + + ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); + ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); + ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; + + ds->l_desc.dyn_tree = ds->dyn_ltree; + ds->d_desc.dyn_tree = ds->dyn_dtree; + ds->bl_desc.dyn_tree = ds->bl_tree; + + return Z_OK; +#endif +} + +/* =========================================================================== + * Read a new buffer from the current input stream, update the adler32 + * and total number of bytes read. All deflate() input goes through + * this function so some applications may wish to modify it to avoid + * allocating a large strm->next_in buffer and copying from it. + * (See also flush_pending()). + */ +local int read_buf(z_streamp strm, Bytef *buf, unsigned size) +// z_streamp strm; +// Bytef *buf; +// unsigned size; +{ + unsigned len = strm->avail_in; + + if (len > size) len = size; + if (len == 0) return 0; + + strm->avail_in -= len; + + if (!strm->state->noheader) { + strm->adler = adler32(strm->adler, strm->next_in, len); + } + zmemcpy(buf, strm->next_in, len); + strm->next_in += len; + strm->total_in += len; + + return (int)len; +} + +/* =========================================================================== + * Initialize the "longest match" routines for a new zlib stream + */ +local void lm_init (deflate_state *s) +// deflate_state *s; +{ + s->window_size = (ulg)2L*s->w_size; + + CLEAR_HASH(s); + + /* Set the default configuration parameters: + */ + s->max_lazy_match = configuration_table[s->level].max_lazy; + s->good_match = configuration_table[s->level].good_length; + s->nice_match = configuration_table[s->level].nice_length; + s->max_chain_length = configuration_table[s->level].max_chain; + + s->strstart = 0; + s->block_start = 0L; + s->lookahead = 0; + s->match_length = s->prev_length = MIN_MATCH-1; + s->match_available = 0; + s->ins_h = 0; +#ifdef ASMV + match_init(); /* initialize the asm code */ +#endif +} + +/* =========================================================================== + * Set match_start to the longest match starting at the given string and + * return its length. Matches shorter or equal to prev_length are discarded, + * in which case the result is equal to prev_length and match_start is + * garbage. + * IN assertions: cur_match is the head of the hash chain for the current + * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 + * OUT assertion: the match length is not greater than s->lookahead. + */ +#ifndef ASMV +/* For 80x86 and 680x0, an optimized version will be provided in match.asm or + * match.S. The code will be functionally equivalent. + */ +#ifndef FASTEST +local uInt longest_match(deflate_state *s, IPos cur_match) +// deflate_state *s; +// IPos cur_match; /* current match */ +{ + unsigned chain_length = s->max_chain_length;/* max hash chain length */ + register Bytef *scan = s->window + s->strstart; /* current string */ + register Bytef *match; /* matched string */ + register int len; /* length of current match */ + int best_len = s->prev_length; /* best match length so far */ + int nice_match = s->nice_match; /* stop if match long enough */ + IPos limit = s->strstart > (IPos)MAX_DIST(s) ? + s->strstart - (IPos)MAX_DIST(s) : NIL; + /* Stop when cur_match becomes <= limit. To simplify the code, + * we prevent matches with the string of window index 0. + */ + Posf *prev = s->prev; + uInt wmask = s->w_mask; + +#ifdef UNALIGNED_OK + /* Compare two bytes at a time. Note: this is not always beneficial. + * Try with and without -DUNALIGNED_OK to check. + */ + register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1; + register ush scan_start = *(ushf*)scan; + register ush scan_end = *(ushf*)(scan+best_len-1); +#else + register Bytef *strend = s->window + s->strstart + MAX_MATCH; + register Byte scan_end1 = scan[best_len-1]; + register Byte scan_end = scan[best_len]; +#endif + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + /* Do not waste too much time if we already have a good match: */ + if (s->prev_length >= s->good_match) { + chain_length >>= 2; + } + /* Do not look for matches beyond the end of the input. This is necessary + * to make deflate deterministic. + */ + if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; + + Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + do { + Assert(cur_match < s->strstart, "no future"); + match = s->window + cur_match; + + /* Skip to next match if the match length cannot increase + * or if the match length is less than 2: + */ +#if (defined(UNALIGNED_OK) && MAX_MATCH == 258) + /* This code assumes sizeof(unsigned short) == 2. Do not use + * UNALIGNED_OK if your compiler uses a different size. + */ + if (*(ushf*)(match+best_len-1) != scan_end || + *(ushf*)match != scan_start) continue; + + /* It is not necessary to compare scan[2] and match[2] since they are + * always equal when the other bytes match, given that the hash keys + * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at + * strstart+3, +5, ... up to strstart+257. We check for insufficient + * lookahead only every 4th comparison; the 128th check will be made + * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is + * necessary to put more guard bytes at the end of the window, or + * to check more often for insufficient lookahead. + */ + Assert(scan[2] == match[2], "scan[2]?"); + scan++, match++; + do { + } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + *(ushf*)(scan+=2) == *(ushf*)(match+=2) && + scan < strend); + /* The funny "do {}" generates better code on most compilers */ + + /* Here, scan <= window+strstart+257 */ + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + if (*scan == *match) scan++; + + len = (MAX_MATCH - 1) - (int)(strend-scan); + scan = strend - (MAX_MATCH-1); + +#else /* UNALIGNED_OK */ + + if (match[best_len] != scan_end || + match[best_len-1] != scan_end1 || + *match != *scan || + *++match != scan[1]) continue; + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2, match++; + Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + } while (*++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + scan < strend); + + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (int)(strend - scan); + scan = strend - MAX_MATCH; + +#endif /* UNALIGNED_OK */ + + if (len > best_len) { + s->match_start = cur_match; + best_len = len; + if (len >= nice_match) break; +#ifdef UNALIGNED_OK + scan_end = *(ushf*)(scan+best_len-1); +#else + scan_end1 = scan[best_len-1]; + scan_end = scan[best_len]; +#endif + } + } while ((cur_match = prev[cur_match & wmask]) > limit + && --chain_length != 0); + + if ((uInt)best_len <= s->lookahead) return (uInt)best_len; + return s->lookahead; +} + +#else /* FASTEST */ +/* --------------------------------------------------------------------------- + * Optimized version for level == 1 only + */ +local uInt longest_match(deflate_state *s, IPos cur_match) +// deflate_state *s; +// IPos cur_match; /* current match */ +{ + register Bytef *scan = s->window + s->strstart; /* current string */ + register Bytef *match; /* matched string */ + register int len; /* length of current match */ + register Bytef *strend = s->window + s->strstart + MAX_MATCH; + + /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. + * It is easy to get rid of this optimization if necessary. + */ + Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); + + Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); + + Assert(cur_match < s->strstart, "no future"); + + match = s->window + cur_match; + + /* Return failure if the match length is less than 2: + */ + if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1; + + /* The check at best_len-1 can be removed because it will be made + * again later. (This heuristic is not always a win.) + * It is not necessary to compare scan[2] and match[2] since they + * are always equal when the other bytes match, given that + * the hash keys are equal and that HASH_BITS >= 8. + */ + scan += 2, match += 2; + Assert(*scan == *match, "match[2]?"); + + /* We check for insufficient lookahead only every 8th comparison; + * the 256th check will be made at strstart+258. + */ + do { + } while (*++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + *++scan == *++match && *++scan == *++match && + scan < strend); + + Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); + + len = MAX_MATCH - (int)(strend - scan); + + if (len < MIN_MATCH) return MIN_MATCH - 1; + + s->match_start = cur_match; + return len <= s->lookahead ? len : s->lookahead; +} +#endif /* FASTEST */ +#endif /* ASMV */ + +#ifdef DEBUG +/* =========================================================================== + * Check that the match at match_start is indeed a match. + */ +local void check_match(deflate_state *s, IPos start, IPos match, int length) +// deflate_state *s; +// IPos start, match; +// int length; +{ + /* check that the match is indeed a match */ + if (zmemcmp(s->window + match, + s->window + start, length) != EQUAL) { + fprintf(stderr, " start %u, match %u, length %d\n", + start, match, length); + do { + fprintf(stderr, "%c%c", s->window[match++], s->window[start++]); + } while (--length != 0); + z_error((char*)"invalid match"); + } + if (z_verbose > 1) { + fprintf(stderr,"\\[%d,%d]", start-match, length); + do { putc(s->window[start++], stderr); } while (--length != 0); + } +} +#else +# define check_match(s, start, match, length) +#endif + +/* =========================================================================== + * Fill the window when the lookahead becomes insufficient. + * Updates strstart and lookahead. + * + * IN assertion: lookahead < MIN_LOOKAHEAD + * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD + * At least one byte has been read, or avail_in == 0; reads are + * performed for at least two bytes (required for the zip translate_eol + * option -- not supported here). + */ +local void fill_window(deflate_state *s) +// deflate_state *s; +{ + register unsigned n, m; + register Posf *p; + unsigned more; /* Amount of free space at the end of the window. */ + uInt wsize = s->w_size; + + do { + more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); + + /* Deal with !@#$% 64K limit: */ + if (more == 0 && s->strstart == 0 && s->lookahead == 0) { + more = wsize; + + } else if (more == (unsigned)(-1)) { + /* Very unlikely, but possible on 16 bit machine if strstart == 0 + * and lookahead == 1 (input done one byte at time) + */ + more--; + + /* If the window is almost full and there is insufficient lookahead, + * move the upper half to the lower one to make room in the upper half. + */ + } else if (s->strstart >= wsize+MAX_DIST(s)) { + + zmemcpy(s->window, s->window+wsize, (unsigned)wsize); + s->match_start -= wsize; + s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ + s->block_start -= (long) wsize; + + /* Slide the hash table (could be avoided with 32 bit values + at the expense of memory usage). We slide even when level == 0 + to keep the hash table consistent if we switch back to level > 0 + later. (Using level 0 permanently is not an optimal usage of + zlib, so we don't care about this pathological case.) + */ + n = s->hash_size; + p = &s->head[n]; + do { + m = *--p; + *p = (Pos)(m >= wsize ? m-wsize : NIL); + } while (--n); + + n = wsize; +#ifndef FASTEST + p = &s->prev[n]; + do { + m = *--p; + *p = (Pos)(m >= wsize ? m-wsize : NIL); + /* If n is not on any hash chain, prev[n] is garbage but + * its value will never be used. + */ + } while (--n); +#endif + more += wsize; + } + if (s->strm->avail_in == 0) return; + + /* If there was no sliding: + * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && + * more == window_size - lookahead - strstart + * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) + * => more >= window_size - 2*WSIZE + 2 + * In the BIG_MEM or MMAP case (not yet supported), + * window_size == input_size + MIN_LOOKAHEAD && + * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. + * Otherwise, window_size == 2*WSIZE so more >= 2. + * If there was sliding, more >= WSIZE. So in all cases, more >= 2. + */ + Assert(more >= 2, "more < 2"); + + n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); + s->lookahead += n; + + /* Initialize the hash value now that we have some input: */ + if (s->lookahead >= MIN_MATCH) { + s->ins_h = s->window[s->strstart]; + UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); +#if MIN_MATCH != 3 + Call UPDATE_HASH() MIN_MATCH-3 more times +#endif + } + /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, + * but this is not important since only literal bytes will be emitted. + */ + + } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); +} + +/* =========================================================================== + * Flush the current block, with given end-of-file flag. + * IN assertion: strstart is set to the end of the current match. + */ +#define FLUSH_BLOCK_ONLY(s, eof) { \ + _tr_flush_block(s, (s->block_start >= 0L ? \ + (charf *)&s->window[(unsigned)s->block_start] : \ + (charf *)Z_NULL), \ + (ulg)((long)s->strstart - s->block_start), \ + (eof)); \ + s->block_start = s->strstart; \ + flush_pending(s->strm); \ + Tracev((stderr,"[FLUSH]")); \ +} + +/* Same but force premature exit if necessary. */ +#define FLUSH_BLOCK(s, eof) { \ + FLUSH_BLOCK_ONLY(s, eof); \ + if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \ +} + +/* =========================================================================== + * Copy without compression as much as possible from the input stream, return + * the current block state. + * This function does not insert new strings in the dictionary since + * uncompressible data is probably not useful. This function is used + * only for the level=0 compression option. + * NOTE: this function should be optimized to avoid extra copying from + * window to pending_buf. + */ +local block_state deflate_stored(deflate_state *s, int flush) +// deflate_state *s; +// int flush; +{ + /* Stored blocks are limited to 0xffff bytes, pending_buf is limited + * to pending_buf_size, and each stored block has a 5 byte header: + */ + ulg max_block_size = 0xffff; + ulg max_start; + + if (max_block_size > s->pending_buf_size - 5) { + max_block_size = s->pending_buf_size - 5; + } + + /* Copy as much as possible from input to output: */ + for (;;) { + /* Fill the window as much as possible: */ + if (s->lookahead <= 1) { + + Assert(s->strstart < s->w_size+MAX_DIST(s) || + s->block_start >= (long)s->w_size, "slide too late"); + + fill_window(s); + if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more; + + if (s->lookahead == 0) break; /* flush the current block */ + } + Assert(s->block_start >= 0L, "block gone"); + + s->strstart += s->lookahead; + s->lookahead = 0; + + /* Emit a stored block if pending_buf will be full: */ + max_start = s->block_start + max_block_size; + if (s->strstart == 0 || (ulg)s->strstart >= max_start) { + /* strstart == 0 is possible when wraparound on 16-bit machine */ + s->lookahead = (uInt)(s->strstart - max_start); + s->strstart = (uInt)max_start; + FLUSH_BLOCK(s, 0); + } + /* Flush if we may have to slide, otherwise block_start may become + * negative and the data will be gone: + */ + if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) { + FLUSH_BLOCK(s, 0); + } + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} + +/* =========================================================================== + * Compress as much as possible from the input stream, return the current + * block state. + * This function does not perform lazy evaluation of matches and inserts + * new strings in the dictionary only for unmatched strings or for short + * matches. It is used only for the fast compression options. + */ +local block_state deflate_fast(deflate_state *s, int flush) +// deflate_state *s; +// int flush; +{ + IPos hash_head = NIL; /* head of the hash chain */ + int bflush; /* set if current block must be flushed */ + + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s->lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { + return need_more; + } + if (s->lookahead == 0) break; /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + if (s->lookahead >= MIN_MATCH) { + INSERT_STRING(s, s->strstart, hash_head); + } + + /* Find the longest match, discarding those <= prev_length. + * At this point we have always match_length < MIN_MATCH + */ + if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + if (s->strategy != Z_HUFFMAN_ONLY) { + s->match_length = longest_match (s, hash_head); + } + /* longest_match() sets match_start */ + } + if (s->match_length >= MIN_MATCH) { + check_match(s, s->strstart, s->match_start, s->match_length); + + _tr_tally_dist(s, s->strstart - s->match_start, + s->match_length - MIN_MATCH, bflush); + + s->lookahead -= s->match_length; + + /* Insert new strings in the hash table only if the match length + * is not too large. This saves time but degrades compression. + */ +#ifndef FASTEST + if (s->match_length <= s->max_insert_length && + s->lookahead >= MIN_MATCH) { + s->match_length--; /* string at strstart already in hash table */ + do { + s->strstart++; + INSERT_STRING(s, s->strstart, hash_head); + /* strstart never exceeds WSIZE-MAX_MATCH, so there are + * always MIN_MATCH bytes ahead. + */ + } while (--s->match_length != 0); + s->strstart++; + } else +#endif + { + s->strstart += s->match_length; + s->match_length = 0; + s->ins_h = s->window[s->strstart]; + UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); +#if MIN_MATCH != 3 + Call UPDATE_HASH() MIN_MATCH-3 more times +#endif + /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not + * matter since it will be recomputed at next deflate call. + */ + } + } else { + /* No match, output a literal byte */ + Tracevv((stderr,"%c", s->window[s->strstart])); + _tr_tally_lit (s, s->window[s->strstart], bflush); + s->lookahead--; + s->strstart++; + } + if (bflush) FLUSH_BLOCK(s, 0); + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} + +/* =========================================================================== + * Same as above, but achieves better compression. We use a lazy + * evaluation for matches: a match is finally adopted only if there is + * no better match at the next window position. + */ +local block_state deflate_slow(deflate_state *s, int flush) +// deflate_state *s; +// int flush; +{ + IPos hash_head = NIL; /* head of hash chain */ + int bflush; /* set if current block must be flushed */ + + /* Process the input block. */ + for (;;) { + /* Make sure that we always have enough lookahead, except + * at the end of the input file. We need MAX_MATCH bytes + * for the next match, plus MIN_MATCH bytes to insert the + * string following the next match. + */ + if (s->lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { + return need_more; + } + if (s->lookahead == 0) break; /* flush the current block */ + } + + /* Insert the string window[strstart .. strstart+2] in the + * dictionary, and set hash_head to the head of the hash chain: + */ + if (s->lookahead >= MIN_MATCH) { + INSERT_STRING(s, s->strstart, hash_head); + } + + /* Find the longest match, discarding those <= prev_length. + */ + s->prev_length = s->match_length, s->prev_match = s->match_start; + s->match_length = MIN_MATCH-1; + + if (hash_head != NIL && s->prev_length < s->max_lazy_match && + s->strstart - hash_head <= MAX_DIST(s)) { + /* To simplify the code, we prevent matches with the string + * of window index 0 (in particular we have to avoid a match + * of the string with itself at the start of the input file). + */ + if (s->strategy != Z_HUFFMAN_ONLY) { + s->match_length = longest_match (s, hash_head); + } + /* longest_match() sets match_start */ + + if (s->match_length <= 5 && (s->strategy == Z_FILTERED || + (s->match_length == MIN_MATCH && + s->strstart - s->match_start > TOO_FAR))) { + + /* If prev_match is also MIN_MATCH, match_start is garbage + * but we will ignore the current match anyway. + */ + s->match_length = MIN_MATCH-1; + } + } + /* If there was a match at the previous step and the current + * match is not better, output the previous match: + */ + if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) { + uInt max_insert = s->strstart + s->lookahead - MIN_MATCH; + /* Do not insert strings in hash table beyond this. */ + + check_match(s, s->strstart-1, s->prev_match, s->prev_length); + + _tr_tally_dist(s, s->strstart -1 - s->prev_match, + s->prev_length - MIN_MATCH, bflush); + + /* Insert in hash table all strings up to the end of the match. + * strstart-1 and strstart are already inserted. If there is not + * enough lookahead, the last two strings are not inserted in + * the hash table. + */ + s->lookahead -= s->prev_length-1; + s->prev_length -= 2; + do { + if (++s->strstart <= max_insert) { + INSERT_STRING(s, s->strstart, hash_head); + } + } while (--s->prev_length != 0); + s->match_available = 0; + s->match_length = MIN_MATCH-1; + s->strstart++; + + if (bflush) FLUSH_BLOCK(s, 0); + + } else if (s->match_available) { + /* If there was no match at the previous position, output a + * single literal. If there was a match but the current match + * is longer, truncate the previous match to a single literal. + */ + Tracevv((stderr,"%c", s->window[s->strstart-1])); + _tr_tally_lit(s, s->window[s->strstart-1], bflush); + if (bflush) { + FLUSH_BLOCK_ONLY(s, 0); + } + s->strstart++; + s->lookahead--; + if (s->strm->avail_out == 0) return need_more; + } else { + /* There is no previous match to compare with, wait for + * the next step to decide. + */ + s->match_available = 1; + s->strstart++; + s->lookahead--; + } + } + Assert (flush != Z_NO_FLUSH, "no flush?"); + if (s->match_available) { + Tracevv((stderr,"%c", s->window[s->strstart-1])); + _tr_tally_lit(s, s->window[s->strstart-1], bflush); + s->match_available = 0; + } + FLUSH_BLOCK(s, flush == Z_FINISH); + return flush == Z_FINISH ? finish_done : block_done; +} diff --git a/source/visualization/HepRep/src/deflateoutputstreambuf.cc b/source/visualization/HepRep/src/deflateoutputstreambuf.cc new file mode 100644 index 0000000000..9f1a890ef4 --- /dev/null +++ b/source/visualization/HepRep/src/deflateoutputstreambuf.cc @@ -0,0 +1,223 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include + +#include "zipios++/fcollexceptions.h" +#include "zipios++/deflateoutputstreambuf.h" + +#include "outputstringstream.h" + +namespace zipios { + +using std::cerr ; +using std::endl ; + +DeflateOutputStreambuf::DeflateOutputStreambuf( streambuf *outbuf, bool user_init, + bool del_outbuf ) + : FilterOutputStreambuf( outbuf, del_outbuf ), + _zs_initialized ( false ), + _invecsize ( 1000 ), + _invec ( _invecsize ), + _outvecsize ( 1000 ), + _outvec ( _outvecsize ) +{ + // NOTICE: It is important that this constructor and the methods it + // calls doesn't do anything with the output streambuf _outbuf The + // reason is that this class can be subclassed, and the subclass + // should get a chance to write to the buffer first + + // zlib init: + _zs.zalloc = Z_NULL ; + _zs.zfree = Z_NULL ; + _zs.opaque = Z_NULL ; + + if ( user_init && ! init() ) + cerr << "DeflateOutputStreambuf::reset() failed!\n" ; // FIXME: throw something + +} + + +DeflateOutputStreambuf::~DeflateOutputStreambuf() { + closeStream() ; +} + + +// This method is called in the constructor, so it must not write +// anything to the output streambuf _outbuf (see notice in +// constructor) +bool DeflateOutputStreambuf::init( int comp_level ) { + static const int default_mem_level = 8 ; + + // _zs.next_in and avail_in must be set according to + // zlib.h (inline doc). + _zs.next_in = reinterpret_cast< unsigned char * >( &( _invec[ 0 ] ) ) ; + _zs.avail_in = 0 ; + + _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; + _zs.avail_out = _outvecsize ; + + int err ; + if( _zs_initialized ) { // just reset it + endDeflation() ; + err = deflateReset( &_zs ) ; + // FIXME: bug, for deflateReset we do not update the compression level + } else { // init it + err = deflateInit2( &_zs, comp_level, Z_DEFLATED, -MAX_WBITS, + default_mem_level, Z_DEFAULT_STRATEGY ) ; + /* windowBits is passed < 0 to tell that no zlib header should be + written. */ + _zs_initialized = true ; + } + + // streambuf init: + setp( &( _invec[ 0 ] ), &( _invec[ 0 ] ) + _invecsize ) ; + + _crc32 = crc32( 0, Z_NULL, 0 ) ; + _overflown_bytes = 0 ; + + if ( err == Z_OK ) + return true ; + else + return false ; +} + + +bool DeflateOutputStreambuf::closeStream() { + int err = Z_OK ; + if( _zs_initialized ) { + endDeflation() ; + err = deflateEnd( &_zs ) ; + _zs_initialized = false ; + } + + if ( err == Z_OK ) + return true ; + else { + cerr << "DeflateOutputStreambuf::closeStream(): deflateEnd failed" ; +#ifdef HAVE_ZERROR + cerr << ": " << zError( err ) ; +#endif + cerr << endl ; + return false ; + } +} + + +int DeflateOutputStreambuf::overflow( int c ) { + _zs.avail_in = pptr() - pbase() ; + _zs.next_in = reinterpret_cast< unsigned char * >( &( _invec[ 0 ] ) ) ; + + _crc32 = crc32( _crc32, _zs.next_in, _zs.avail_in ) ; // update crc32 + _overflown_bytes += _zs.avail_in ; + + _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; + _zs.avail_out = _outvecsize ; + + // Deflate until _invec is empty. + int err = Z_OK ; + while ( ( _zs.avail_in > 0 || _zs.avail_out == 0 ) && err == Z_OK ) { + if ( _zs.avail_out == 0 ) + flushOutvec() ; + + err = deflate( &_zs, Z_NO_FLUSH ) ; + } + + flushOutvec() ; + // Update 'put' pointers + setp( &( _invec[ 0 ] ), &( _invec[ 0 ] ) + _invecsize ) ; + + if( err != Z_OK && err != Z_STREAM_END ) { +#if defined (HAVE_STD_IOSTREAM) && defined (USE_STD_IOSTREAM) + // Throw an exception to make istream set badbit + OutputStringStream msgs ; + msgs << "Deflation failed" ; +#ifdef HAVE_ZERROR + msgs << ": " << zError( err ) ; +#endif + throw IOException( msgs.str() ) ; +#endif + cerr << "Deflation failed\n" ; + return EOF ; + } + + if ( c != EOF ) { + *pptr() = c ; + pbump( 1 ) ; + } + + return 0 ; +} + +int DeflateOutputStreambuf::sync() { + // FIXME: Do something +// return overflow() ; + return 0 ; +} + + +bool DeflateOutputStreambuf::flushOutvec() { + int deflated_bytes = _outvecsize - _zs.avail_out ; + int bc = _outbuf->sputn( &( _outvec[ 0 ] ), deflated_bytes ) ; + + _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; + _zs.avail_out = _outvecsize ; + + return deflated_bytes == bc ; +} + + +void DeflateOutputStreambuf::endDeflation() { + overflow() ; + + _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; + _zs.avail_out = _outvecsize ; + + // Deflate until _invec is empty. + int err = Z_OK ; + + while ( err == Z_OK ) { + if ( _zs.avail_out == 0 ) + flushOutvec() ; + + err = deflate( &_zs, Z_FINISH ) ; + } + + flushOutvec() ; + + if ( err != Z_STREAM_END ) { + cerr << "DeflateOutputStreambuf::endDeflation(): deflation failed:\n" ; +#ifdef HAVE_ZERROR + cerr << ": " << zError( err ) ; +#endif + cerr << endl ; + } +} + + +} // namespace + +/** \file + Implementation of DeflateOutputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/fcoll.cc b/source/visualization/HepRep/src/fcoll.cc new file mode 100644 index 0000000000..d13974a4b6 --- /dev/null +++ b/source/visualization/HepRep/src/fcoll.cc @@ -0,0 +1,90 @@ + +#include "zipios++/zipios-config.h" + +#include +#include +#include + +#include "zipios++/fcoll.h" + +namespace zipios { + +using std::find_if ; + +// FIXME: make InvalidStateException message customized for +// subclasses. maybe make an InvalidStateException factory ;-) + +ConstEntries FileCollection::entries() const { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get entries from an invalid FileCollection" ) ; + + // The constructor below is not in all vector impl. (not those + // without member templates) + // ConstEntries ( _entries.begin(), _entries.end() ) ; + // Instead of using that we copy the vector manually + ConstEntries cep_vec ; + cep_vec.reserve( _entries.size() ) ; + Entries::const_iterator cit ; + for ( cit = _entries.begin() ; cit != _entries.end() ; ++cit ) + cep_vec.push_back( *cit ) ; + + return cep_vec ; +} + +ConstEntryPointer FileCollection::getEntry( const string &name, + MatchPath matchpath ) const { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get an entry from an invalid FileCollection" ) ; + + Entries::const_iterator iter ; + if ( matchpath == MATCH ) + iter = find_if( _entries.begin(), _entries.end(), FileEntry::MatchName( name ) ) ; + else + iter = find_if( _entries.begin(), _entries.end(), FileEntry::MatchFileName( name ) ) ; + if ( iter == _entries.end() ) + return 0 ; + else + return *iter ; +} + +string FileCollection::getName() const { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get the name of an invalid FileCollection" ) ; + return _filename ; +} + + +int FileCollection::size() const { + if ( ! _valid ) + throw InvalidStateException( "Attempt to get size of an invalid FileCollection" ) ; + return _entries.size() ; +} + +FileCollection::~FileCollection() { +} + + +} // namespace + +/** \file + Implementation of FileCollection. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/fcollexceptions.cc b/source/visualization/HepRep/src/fcollexceptions.cc new file mode 100644 index 0000000000..77c895b7f0 --- /dev/null +++ b/source/visualization/HepRep/src/fcollexceptions.cc @@ -0,0 +1,144 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include "zipios++/fcollexceptions.h" + +namespace zipios { + +using std::cerr ; +using std::endl ; + +IOException::IOException() throw () + : _what( "I/O exception" ) {} + +IOException::IOException( const string &msg ) throw () + : _what( msg ) {} + +IOException::IOException( const IOException &src ) throw () + : /* MD */ std::exception(), _what( src._what ) {} + + +IOException &IOException::operator= ( const IOException &src ) throw () { + _what = src._what ; + return *this ; +} + + +const char *IOException::what() const throw () { + return _what.c_str() ; +} + +IOException::~IOException() throw () {} + + + + + + +FCollException::FCollException() throw () + : _what( "FileCollection exception" ) {} + +FCollException::FCollException( const string &msg ) throw () + : _what( msg ) {} + +FCollException::FCollException( const FCollException &src ) throw () + : /* MD */ std::exception(), _what( src._what ) {} + + +FCollException &FCollException::operator= ( const FCollException &src ) throw () { + _what = src._what ; + return *this ; +} + + +const char *FCollException::what() const throw () { + return _what.c_str() ; +} + +FCollException::~FCollException() throw () {} + + + + + + +InvalidStateException::InvalidStateException() throw () + : _what( "InvalidState exception" ) {} + +InvalidStateException::InvalidStateException( const string &msg ) throw () + : _what( msg ) {} + +InvalidStateException:: +InvalidStateException( const InvalidStateException &src ) throw () + : /* MD */ std::exception(), _what( src._what ) {} + + +InvalidStateException &InvalidStateException:: +operator= ( const InvalidStateException &src ) throw () { + _what = src._what ; + return *this ; +} + + +const char *InvalidStateException::what() const throw () { + return _what.c_str() ; +} + +InvalidStateException::~InvalidStateException() throw () {} + + + + + +Exception::Exception() throw () + : _what( "Exception" ) {} + +Exception::Exception( const string &msg ) throw () + : _what( msg ) {} + +Exception:: +Exception( const Exception &src ) throw () + : /* MD */ std::exception(), _what( src._what ) {} + + +Exception &Exception:: +operator= ( const Exception &src ) throw () { + _what = src._what ; + return *this ; +} + + +const char *Exception::what() const throw () { + return _what.c_str() ; +} + +Exception::~Exception() throw () {} + + +} // namespace + +/** \file + Implementation of a number of Exceptions used by FileCollection and its + subclasses. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/fileentry.cc b/source/visualization/HepRep/src/fileentry.cc new file mode 100644 index 0000000000..4a76ace7e3 --- /dev/null +++ b/source/visualization/HepRep/src/fileentry.cc @@ -0,0 +1,39 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include + +#include "zipios++/fileentry.h" + +namespace zipios { + +ostream &operator<< ( ostream &os, const FileEntry &entry ) { + os << entry.toString() ; + return os ; +} + +} // namespace + +/** \file + Implementation of FileEntry. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/filepath.cc b/source/visualization/HepRep/src/filepath.cc new file mode 100644 index 0000000000..bcce4105f9 --- /dev/null +++ b/source/visualization/HepRep/src/filepath.cc @@ -0,0 +1,77 @@ + +#include "zipios++/zipios-config.h" + +#include +#include +#include +#include + +#include "zipios++/filepath.h" + +//MD: Linux 2.95 does not have S_ISSOCK under c++ and geant4 +#ifndef S_ISSOCK +#define S_ISSOCK(mode) 0 +#endif + +namespace zipios { + +using namespace std ; + +const char FilePath::_separator = '/' ; + + +FilePath::FilePath( const string &path, bool check_exists ) + : _checked( false ), + _path( path ) { + pruneTrailingSeparator() ; + if ( check_exists ) + exists() ; +} + + +void FilePath::check() const { + _checked = true ; + _exists = false ; + _is_reg = false ; + _is_dir = false ; + _is_char = false ; + _is_block = false ; + _is_socket = false ; + _is_fifo = false ; + + struct stat buf ; + if ( stat( _path.c_str(), &buf ) != -1 ) { + _exists = true ; + _is_reg = S_ISREG ( buf.st_mode ) ; + _is_dir = S_ISDIR ( buf.st_mode ) ; + _is_char = S_ISCHR ( buf.st_mode ) ; + _is_block = S_ISBLK ( buf.st_mode ) ; + _is_socket = S_ISSOCK( buf.st_mode ) ; + _is_fifo = S_ISFIFO( buf.st_mode ) ; + } +} + +} // namespace + +/** \file + Implementation of FilePath. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/filterinputstreambuf.cc b/source/visualization/HepRep/src/filterinputstreambuf.cc new file mode 100644 index 0000000000..054152305d --- /dev/null +++ b/source/visualization/HepRep/src/filterinputstreambuf.cc @@ -0,0 +1,47 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/filterinputstreambuf.h" + +namespace zipios { + +FilterInputStreambuf::FilterInputStreambuf( streambuf *inbuf, bool del_inbuf ) + : _inbuf( inbuf), + _del_inbuf( del_inbuf ) +{ + if ( _inbuf == NULL ) { + // throw an exception + } +} + + +FilterInputStreambuf::~FilterInputStreambuf() { + if ( _del_inbuf ) + delete _inbuf ; +} + + +} // namespace + +/** \file + Implementation of FilterInputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/filteroutputstreambuf.cc b/source/visualization/HepRep/src/filteroutputstreambuf.cc new file mode 100644 index 0000000000..2fc02293a7 --- /dev/null +++ b/source/visualization/HepRep/src/filteroutputstreambuf.cc @@ -0,0 +1,47 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/filteroutputstreambuf.h" + +namespace zipios { + +FilterOutputStreambuf::FilterOutputStreambuf( streambuf *outbuf, bool del_outbuf ) + : _outbuf( outbuf), + _del_outbuf( del_outbuf ) +{ + if ( _outbuf == NULL ) { + // throw an exception + } +} + + +FilterOutputStreambuf::~FilterOutputStreambuf() { + if ( _del_outbuf ) + delete _outbuf ; +} + + +} // namespace + +/** \file + Implementation of FilterOutputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/gzio.cc b/source/visualization/HepRep/src/gzio.cc new file mode 100644 index 0000000000..bf71e686ef --- /dev/null +++ b/source/visualization/HepRep/src/gzio.cc @@ -0,0 +1,875 @@ +/* gzio.c -- IO on .gz files + * Copyright (C) 1995-1998 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + * + * Compile this file with -DNO_DEFLATE to avoid the compression code. + */ + +/* @(#) $Id: gzio.cc,v 1.4 2003/07/12 15:19:56 duns Exp $ */ + +#include + +#include "zutil.h" + +struct internal_state {int dummy;}; /* for buggy compilers */ + +#ifndef Z_BUFSIZE +# ifdef MAXSEG_64K +# define Z_BUFSIZE 4096 /* minimize memory usage for 16-bit DOS */ +# else +# define Z_BUFSIZE 16384 +# endif +#endif +#ifndef Z_PRINTF_BUFSIZE +# define Z_PRINTF_BUFSIZE 4096 +#endif + +#define ALLOC(size) malloc(size) +#define TRYFREE(p) {if (p) free(p);} + +static int gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */ + +/* gzip flag byte */ +#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ +#define HEAD_CRC 0x02 /* bit 1 set: header CRC present */ +#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ +#define ORIG_NAME 0x08 /* bit 3 set: original file name present */ +#define COMMENT 0x10 /* bit 4 set: file comment present */ +#define RESERVED 0xE0 /* bits 5..7: reserved */ + +typedef struct gz_stream { + z_stream stream; + int z_err; /* error code for last stream operation */ + int z_eof; /* set if end of input file */ + FILE *file; /* .gz file */ + Byte *inbuf; /* input buffer */ + Byte *outbuf; /* output buffer */ + uLong crc; /* crc32 of uncompressed data */ + char *msg; /* error message */ + char *path; /* path name for debugging only */ + int transparent; /* 1 if input file is not a .gz file */ + char mode; /* 'w' or 'r' */ + long startpos; /* start of compressed data in file (header skipped) */ +} gz_stream; + + +local gzFile gz_open OF((const char *path, const char *mode, int fd)); +local int do_flush OF((gzFile file, int flush)); +local int get_byte OF((gz_stream *s)); +local void check_header OF((gz_stream *s)); +local int destroy OF((gz_stream *s)); +local void putLong OF((FILE *file, uLong x)); +local uLong getLong OF((gz_stream *s)); + +/* =========================================================================== + Opens a gzip (.gz) file for reading or writing. The mode parameter + is as in fopen ("rb" or "wb"). The file is given either by file descriptor + or path name (if fd == -1). + gz_open return NULL if the file could not be opened or if there was + insufficient memory to allocate the (de)compression state; errno + can be checked to distinguish the two cases (if errno is zero, the + zlib error is Z_MEM_ERROR). +*/ +local gzFile gz_open (const char *path, const char *mode, int fd) +// const char *path; +// const char *mode; +// int fd; +{ + int err; + int level = Z_DEFAULT_COMPRESSION; /* compression level */ + int strategy = Z_DEFAULT_STRATEGY; /* compression strategy */ + char *p = (char*)mode; + gz_stream *s; + char fmode[80]; /* copy of mode, without the compression level */ + char *m = fmode; + + if (!path || !mode) return Z_NULL; + + s = (gz_stream *)ALLOC(sizeof(gz_stream)); + if (!s) return Z_NULL; + + s->stream.zalloc = (alloc_func)0; + s->stream.zfree = (free_func)0; + s->stream.opaque = (voidpf)0; + s->stream.next_in = s->inbuf = Z_NULL; + s->stream.next_out = s->outbuf = Z_NULL; + s->stream.avail_in = s->stream.avail_out = 0; + s->file = NULL; + s->z_err = Z_OK; + s->z_eof = 0; + s->crc = crc32(0L, Z_NULL, 0); + s->msg = NULL; + s->transparent = 0; + + s->path = (char*)ALLOC(strlen(path)+1); + if (s->path == NULL) { + return destroy(s), (gzFile)Z_NULL; + } + strcpy(s->path, path); /* do this early for debugging */ + + s->mode = '\0'; + do { + if (*p == 'r') s->mode = 'r'; + if (*p == 'w' || *p == 'a') s->mode = 'w'; + if (*p >= '0' && *p <= '9') { + level = *p - '0'; + } else if (*p == 'f') { + strategy = Z_FILTERED; + } else if (*p == 'h') { + strategy = Z_HUFFMAN_ONLY; + } else { + *m++ = *p; /* copy the mode */ + } + } while (*p++ && m != fmode + sizeof(fmode)); + if (s->mode == '\0') return destroy(s), (gzFile)Z_NULL; + + if (s->mode == 'w') { +#ifdef NO_DEFLATE + err = Z_STREAM_ERROR; +#else + err = deflateInit2(&(s->stream), level, + Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, strategy); + /* windowBits is passed < 0 to suppress zlib header */ + + s->stream.next_out = s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); +#endif + if (err != Z_OK || s->outbuf == Z_NULL) { + return destroy(s), (gzFile)Z_NULL; + } + } else { + s->stream.next_in = s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); + + err = inflateInit2(&(s->stream), -MAX_WBITS); + /* windowBits is passed < 0 to tell that there is no zlib header. + * Note that in this case inflate *requires* an extra "dummy" byte + * after the compressed stream in order to complete decompression and + * return Z_STREAM_END. Here the gzip CRC32 ensures that 4 bytes are + * present after the compressed stream. + */ + if (err != Z_OK || s->inbuf == Z_NULL) { + return destroy(s), (gzFile)Z_NULL; + } + } + s->stream.avail_out = Z_BUFSIZE; + + errno = 0; + s->file = fd < 0 ? F_OPEN(path, fmode) : NULL; //MD: (FILE*)fdopen(fd, fmode); + + if (s->file == NULL) { + return destroy(s), (gzFile)Z_NULL; + } + if (s->mode == 'w') { + /* Write a very simple .gz header: + */ + fprintf(s->file, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1], + Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, OS_CODE); + s->startpos = 10L; + /* We use 10L instead of ftell(s->file) to because ftell causes an + * fflush on some systems. This version of the library doesn't use + * startpos anyway in write mode, so this initialization is not + * necessary. + */ + } else { + check_header(s); /* skip the .gz header */ + s->startpos = (ftell(s->file) - s->stream.avail_in); + } + + return (gzFile)s; +} + +/* =========================================================================== + Opens a gzip (.gz) file for reading or writing. +*/ +gzFile ZEXPORT gzopen (const char *path, const char *mode) +// const char *path; +// const char *mode; +{ + return gz_open (path, mode, -1); +} + +/* =========================================================================== + Associate a gzFile with the file descriptor fd. fd is not dup'ed here + to mimic the behavio(u)r of fdopen. +*/ +gzFile ZEXPORT gzdopen (int fd, const char *mode) +// int fd; +// const char *mode; +{ + char name[20]; + + if (fd < 0) return (gzFile)Z_NULL; + sprintf(name, "", fd); /* for debugging */ + + return gz_open (name, mode, fd); +} + +/* =========================================================================== + * Update the compression level and strategy + */ +int ZEXPORT gzsetparams (gzFile file, int level, int strategy) +// gzFile file; +// int level; +// int strategy; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; + + /* Make room to allow flushing */ + if (s->stream.avail_out == 0) { + + s->stream.next_out = s->outbuf; + if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { + s->z_err = Z_ERRNO; + } + s->stream.avail_out = Z_BUFSIZE; + } + + return deflateParams (&(s->stream), level, strategy); +} + +/* =========================================================================== + Read a byte from a gz_stream; update next_in and avail_in. Return EOF + for end of file. + IN assertion: the stream s has been sucessfully opened for reading. +*/ +local int get_byte(gz_stream *s) +// gz_stream *s; +{ + if (s->z_eof) return EOF; + if (s->stream.avail_in == 0) { + errno = 0; + s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file); + if (s->stream.avail_in == 0) { + s->z_eof = 1; + if (ferror(s->file)) s->z_err = Z_ERRNO; + return EOF; + } + s->stream.next_in = s->inbuf; + } + s->stream.avail_in--; + return *(s->stream.next_in)++; +} + +/* =========================================================================== + Check the gzip header of a gz_stream opened for reading. Set the stream + mode to transparent if the gzip magic header is not present; set s->err + to Z_DATA_ERROR if the magic header is present but the rest of the header + is incorrect. + IN assertion: the stream s has already been created sucessfully; + s->stream.avail_in is zero for the first time, but may be non-zero + for concatenated .gz files. +*/ +local void check_header(gz_stream *s) +// gz_stream *s; +{ + int method; /* method byte */ + int flags; /* flags byte */ + uInt len; + int c; + + /* Check the gzip magic header */ + for (len = 0; len < 2; len++) { + c = get_byte(s); + if (c != gz_magic[len]) { + if (len != 0) s->stream.avail_in++, s->stream.next_in--; + if (c != EOF) { + s->stream.avail_in++, s->stream.next_in--; + s->transparent = 1; + } + s->z_err = s->stream.avail_in != 0 ? Z_OK : Z_STREAM_END; + return; + } + } + method = get_byte(s); + flags = get_byte(s); + if (method != Z_DEFLATED || (flags & RESERVED) != 0) { + s->z_err = Z_DATA_ERROR; + return; + } + + /* Discard time, xflags and OS code: */ + for (len = 0; len < 6; len++) (void)get_byte(s); + + if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */ + len = (uInt)get_byte(s); + len += ((uInt)get_byte(s))<<8; + /* len is garbage if EOF but the loop below will quit anyway */ + while (len-- != 0 && get_byte(s) != EOF) ; + } + if ((flags & ORIG_NAME) != 0) { /* skip the original file name */ + while ((c = get_byte(s)) != 0 && c != EOF) ; + } + if ((flags & COMMENT) != 0) { /* skip the .gz file comment */ + while ((c = get_byte(s)) != 0 && c != EOF) ; + } + if ((flags & HEAD_CRC) != 0) { /* skip the header crc */ + for (len = 0; len < 2; len++) (void)get_byte(s); + } + s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK; +} + + /* =========================================================================== + * Cleanup then free the given gz_stream. Return a zlib error code. + Try freeing in the reverse order of allocations. + */ +local int destroy (gz_stream *s) +// gz_stream *s; +{ + int err = Z_OK; + + if (!s) return Z_STREAM_ERROR; + + TRYFREE(s->msg); + + if (s->stream.state != NULL) { + if (s->mode == 'w') { +#ifdef NO_DEFLATE + err = Z_STREAM_ERROR; +#else + err = deflateEnd(&(s->stream)); +#endif + } else if (s->mode == 'r') { + err = inflateEnd(&(s->stream)); + } + } + if (s->file != NULL && fclose(s->file)) { +#ifdef ESPIPE + if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */ +#endif + err = Z_ERRNO; + } + if (s->z_err < 0) err = s->z_err; + + TRYFREE(s->inbuf); + TRYFREE(s->outbuf); + TRYFREE(s->path); + TRYFREE(s); + return err; +} + +/* =========================================================================== + Reads the given number of uncompressed bytes from the compressed file. + gzread returns the number of bytes actually read (0 for end of file). +*/ +int ZEXPORT gzread (gzFile file, voidp buf, unsigned len) +// gzFile file; +// voidp buf; +// unsigned len; +{ + gz_stream *s = (gz_stream*)file; + Bytef *start = (Bytef*)buf; /* starting point for crc computation */ + Byte *next_out; /* == stream.next_out but not forced far (for MSDOS) */ + + if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR; + + if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1; + if (s->z_err == Z_STREAM_END) return 0; /* EOF */ + + next_out = (Byte*)buf; + s->stream.next_out = (Bytef*)buf; + s->stream.avail_out = len; + + while (s->stream.avail_out != 0) { + + if (s->transparent) { + /* Copy first the lookahead bytes: */ + uInt n = s->stream.avail_in; + if (n > s->stream.avail_out) n = s->stream.avail_out; + if (n > 0) { + zmemcpy(s->stream.next_out, s->stream.next_in, n); + next_out += n; + s->stream.next_out = next_out; + s->stream.next_in += n; + s->stream.avail_out -= n; + s->stream.avail_in -= n; + } + if (s->stream.avail_out > 0) { + s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out, + s->file); + } + len -= s->stream.avail_out; + s->stream.total_in += (uLong)len; + s->stream.total_out += (uLong)len; + if (len == 0) s->z_eof = 1; + return (int)len; + } + if (s->stream.avail_in == 0 && !s->z_eof) { + + errno = 0; + s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file); + if (s->stream.avail_in == 0) { + s->z_eof = 1; + if (ferror(s->file)) { + s->z_err = Z_ERRNO; + break; + } + } + s->stream.next_in = s->inbuf; + } + s->z_err = inflate(&(s->stream), Z_NO_FLUSH); + + if (s->z_err == Z_STREAM_END) { + /* Check CRC and original size */ + s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); + start = s->stream.next_out; + + if (getLong(s) != s->crc) { + s->z_err = Z_DATA_ERROR; + } else { + (void)getLong(s); + /* The uncompressed length returned by above getlong() may + * be different from s->stream.total_out) in case of + * concatenated .gz files. Check for such files: + */ + check_header(s); + if (s->z_err == Z_OK) { + uLong total_in = s->stream.total_in; + uLong total_out = s->stream.total_out; + + inflateReset(&(s->stream)); + s->stream.total_in = total_in; + s->stream.total_out = total_out; + s->crc = crc32(0L, Z_NULL, 0); + } + } + } + if (s->z_err != Z_OK || s->z_eof) break; + } + s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); + + return (int)(len - s->stream.avail_out); +} + + +/* =========================================================================== + Reads one byte from the compressed file. gzgetc returns this byte + or -1 in case of end of file or error. +*/ +int ZEXPORT gzgetc(gzFile file) +// gzFile file; +{ + unsigned char c; + + return gzread(file, &c, 1) == 1 ? c : -1; +} + + +/* =========================================================================== + Reads bytes from the compressed file until len-1 characters are + read, or a newline character is read and transferred to buf, or an + end-of-file condition is encountered. The string is then terminated + with a null character. + gzgets returns buf, or Z_NULL in case of error. + + The current implementation is not optimized at all. +*/ +char * ZEXPORT gzgets(gzFile file, char *buf, int len) +// gzFile file; +// char *buf; +// int len; +{ + char *b = buf; + if (buf == Z_NULL || len <= 0) return Z_NULL; + + while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ; + *buf = '\0'; + return b == buf && len > 0 ? Z_NULL : b; +} + + +#ifndef NO_DEFLATE +/* =========================================================================== + Writes the given number of uncompressed bytes into the compressed file. + gzwrite returns the number of bytes actually written (0 in case of error). +*/ +int ZEXPORT gzwrite (gzFile file, const voidp buf, unsigned len) +// gzFile file; +// const voidp buf; +// unsigned len; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; + + s->stream.next_in = (Bytef*)buf; + s->stream.avail_in = len; + + while (s->stream.avail_in != 0) { + + if (s->stream.avail_out == 0) { + + s->stream.next_out = s->outbuf; + if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { + s->z_err = Z_ERRNO; + break; + } + s->stream.avail_out = Z_BUFSIZE; + } + s->z_err = deflate(&(s->stream), Z_NO_FLUSH); + if (s->z_err != Z_OK) break; + } + s->crc = crc32(s->crc, (const Bytef *)buf, len); + + return (int)(len - s->stream.avail_in); +} + +/* =========================================================================== + Converts, formats, and writes the args to the compressed file under + control of the format string, as in fprintf. gzprintf returns the number of + uncompressed bytes actually written (0 in case of error). +*/ +#ifdef STDC +#include + +int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...) +{ + char buf[Z_PRINTF_BUFSIZE]; + va_list va; + int len; + + va_start(va, format); +#ifdef HAS_vsnprintf + (void)vsnprintf(buf, sizeof(buf), format, va); +#else + (void)vsprintf(buf, format, va); +#endif + va_end(va); + len = strlen(buf); /* some *sprintf don't return the nb of bytes written */ + if (len <= 0) return 0; + + return gzwrite(file, buf, (unsigned)len); +} +#else /* not ANSI C */ + +int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) + gzFile file; + const char *format; + int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, a19, a20; +{ + char buf[Z_PRINTF_BUFSIZE]; + int len; + +#ifdef HAS_snprintf + snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, + a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); +#else + sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, + a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); +#endif + len = strlen(buf); /* old sprintf doesn't return the nb of bytes written */ + if (len <= 0) return 0; + + return gzwrite(file, buf, len); +} +#endif + +/* =========================================================================== + Writes c, converted to an unsigned char, into the compressed file. + gzputc returns the value that was written, or -1 in case of error. +*/ +int ZEXPORT gzputc(gzFile file, int c) +// gzFile file; +// int c; +{ + unsigned char cc = (unsigned char) c; /* required for big endian systems */ + + return gzwrite(file, &cc, 1) == 1 ? (int)cc : -1; +} + + +/* =========================================================================== + Writes the given null-terminated string to the compressed file, excluding + the terminating null character. + gzputs returns the number of characters written, or -1 in case of error. +*/ +int ZEXPORT gzputs(gzFile file, const char *s) +// gzFile file; +// const char *s; +{ + return gzwrite(file, (char*)s, (unsigned)strlen(s)); +} + + +/* =========================================================================== + Flushes all pending output into the compressed file. The parameter + flush is as in the deflate() function. +*/ +local int do_flush (gzFile file, int flush) +// gzFile file; +// int flush; +{ + uInt len; + int done = 0; + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; + + s->stream.avail_in = 0; /* should be zero already anyway */ + + for (;;) { + len = Z_BUFSIZE - s->stream.avail_out; + + if (len != 0) { + if ((uInt)fwrite(s->outbuf, 1, len, s->file) != len) { + s->z_err = Z_ERRNO; + return Z_ERRNO; + } + s->stream.next_out = s->outbuf; + s->stream.avail_out = Z_BUFSIZE; + } + if (done) break; + s->z_err = deflate(&(s->stream), flush); + + /* Ignore the second of two consecutive flushes: */ + if (len == 0 && s->z_err == Z_BUF_ERROR) s->z_err = Z_OK; + + /* deflate has finished flushing only when it hasn't used up + * all the available space in the output buffer: + */ + done = (s->stream.avail_out != 0 || s->z_err == Z_STREAM_END); + + if (s->z_err != Z_OK && s->z_err != Z_STREAM_END) break; + } + return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; +} + +int ZEXPORT gzflush (gzFile file, int flush) +// gzFile file; +// int flush; +{ + gz_stream *s = (gz_stream*)file; + int err = do_flush (file, flush); + + if (err) return err; + fflush(s->file); + return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; +} +#endif /* NO_DEFLATE */ + +/* =========================================================================== + Sets the starting position for the next gzread or gzwrite on the given + compressed file. The offset represents a number of bytes in the + gzseek returns the resulting offset location as measured in bytes from + the beginning of the uncompressed stream, or -1 in case of error. + SEEK_END is not implemented, returns error. + In this version of the library, gzseek can be extremely slow. +*/ +z_off_t ZEXPORT gzseek (gzFile file, z_off_t offset, int whence) +// gzFile file; +// z_off_t offset; +// int whence; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || whence == SEEK_END || + s->z_err == Z_ERRNO || s->z_err == Z_DATA_ERROR) { + return -1L; + } + + if (s->mode == 'w') { +#ifdef NO_DEFLATE + return -1L; +#else + if (whence == SEEK_SET) { + offset -= s->stream.total_in; + } + if (offset < 0) return -1L; + + /* At this point, offset is the number of zero bytes to write. */ + if (s->inbuf == Z_NULL) { + s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); /* for seeking */ + zmemzero(s->inbuf, Z_BUFSIZE); + } + while (offset > 0) { + uInt size = Z_BUFSIZE; + if (offset < Z_BUFSIZE) size = (uInt)offset; + + size = gzwrite(file, s->inbuf, size); + if (size == 0) return -1L; + + offset -= size; + } + return (z_off_t)s->stream.total_in; +#endif + } + /* Rest of function is for reading only */ + + /* compute absolute position */ + if (whence == SEEK_CUR) { + offset += s->stream.total_out; + } + if (offset < 0) return -1L; + + if (s->transparent) { + /* map to fseek */ + s->stream.avail_in = 0; + s->stream.next_in = s->inbuf; + if (fseek(s->file, offset, SEEK_SET) < 0) return -1L; + + s->stream.total_in = s->stream.total_out = (uLong)offset; + return offset; + } + + /* For a negative seek, rewind and use positive seek */ + if ((uLong)offset >= s->stream.total_out) { + offset -= s->stream.total_out; + } else if (gzrewind(file) < 0) { + return -1L; + } + /* offset is now the number of bytes to skip. */ + + if (offset != 0 && s->outbuf == Z_NULL) { + s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); + } + while (offset > 0) { + int size = Z_BUFSIZE; + if (offset < Z_BUFSIZE) size = (int)offset; + + size = gzread(file, s->outbuf, (uInt)size); + if (size <= 0) return -1L; + offset -= size; + } + return (z_off_t)s->stream.total_out; +} + +/* =========================================================================== + Rewinds input file. +*/ +int ZEXPORT gzrewind (gzFile file) +// gzFile file; +{ + gz_stream *s = (gz_stream*)file; + + if (s == NULL || s->mode != 'r') return -1; + + s->z_err = Z_OK; + s->z_eof = 0; + s->stream.avail_in = 0; + s->stream.next_in = s->inbuf; + s->crc = crc32(0L, Z_NULL, 0); + + if (s->startpos == 0) { /* not a compressed file */ + rewind(s->file); + return 0; + } + + (void) inflateReset(&s->stream); + return fseek(s->file, s->startpos, SEEK_SET); +} + +/* =========================================================================== + Returns the starting position for the next gzread or gzwrite on the + given compressed file. This position represents a number of bytes in the + uncompressed data stream. +*/ +z_off_t ZEXPORT gztell (gzFile file) +// gzFile file; +{ + return gzseek(file, 0L, SEEK_CUR); +} + +/* =========================================================================== + Returns 1 when EOF has previously been detected reading the given + input stream, otherwise zero. +*/ +int ZEXPORT gzeof (gzFile file) +// gzFile file; +{ + gz_stream *s = (gz_stream*)file; + + return (s == NULL || s->mode != 'r') ? 0 : s->z_eof; +} + +/* =========================================================================== + Outputs a long in LSB order to the given file +*/ +local void putLong (FILE *file, uLong x) +// FILE *file; +// uLong x; +{ + int n; + for (n = 0; n < 4; n++) { + fputc((int)(x & 0xff), file); + x >>= 8; + } +} + +/* =========================================================================== + Reads a long in LSB order from the given gz_stream. Sets z_err in case + of error. +*/ +local uLong getLong (gz_stream *s) +// gz_stream *s; +{ + uLong x = (uLong)get_byte(s); + int c; + + x += ((uLong)get_byte(s))<<8; + x += ((uLong)get_byte(s))<<16; + c = get_byte(s); + if (c == EOF) s->z_err = Z_DATA_ERROR; + x += ((uLong)c)<<24; + return x; +} + +/* =========================================================================== + Flushes all pending output if necessary, closes the compressed file + and deallocates all the (de)compression state. +*/ +int ZEXPORT gzclose (gzFile file) +// gzFile file; +{ + int err; + gz_stream *s = (gz_stream*)file; + + if (s == NULL) return Z_STREAM_ERROR; + + if (s->mode == 'w') { +#ifdef NO_DEFLATE + return Z_STREAM_ERROR; +#else + err = do_flush (file, Z_FINISH); + if (err != Z_OK) return destroy((gz_stream*)file); + + putLong (s->file, s->crc); + putLong (s->file, s->stream.total_in); +#endif + } + return destroy((gz_stream*)file); +} + +/* =========================================================================== + Returns the error message for the last error which occured on the + given compressed file. errnum is set to zlib error number. If an + error occured in the file system and not in the compression library, + errnum is set to Z_ERRNO and the application may consult errno + to get the exact error code. +*/ +const char* ZEXPORT gzerror (gzFile file, int *errnum) +// gzFile file; +// int *errnum; +{ + char *m; + gz_stream *s = (gz_stream*)file; + + if (s == NULL) { + *errnum = Z_STREAM_ERROR; + return (const char*)ERR_MSG(Z_STREAM_ERROR); + } + *errnum = s->z_err; + if (*errnum == Z_OK) return (const char*)""; + + m = (char*)(*errnum == Z_ERRNO ? zstrerror(errno) : s->stream.msg); + + if (m == NULL || *m == '\0') m = (char*)ERR_MSG(s->z_err); + + TRYFREE(s->msg); + s->msg = (char*)ALLOC(strlen(s->path) + strlen(m) + 3); + strcpy(s->msg, s->path); + strcat(s->msg, ": "); + strcat(s->msg, m); + return (const char*)s->msg; +} diff --git a/source/visualization/HepRep/src/gzipoutputstream.cc b/source/visualization/HepRep/src/gzipoutputstream.cc new file mode 100644 index 0000000000..6a428b7ce5 --- /dev/null +++ b/source/visualization/HepRep/src/gzipoutputstream.cc @@ -0,0 +1,80 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include "zipios++/gzipoutputstreambuf.h" +#include "zipios++/gzipoutputstream.h" + +using std::ostream; + +namespace zipios { + +GZIPOutputStream::GZIPOutputStream( std::ostream &os ) + : ostream( 0 ), + ofs( 0 ) +{ + ozf = new GZIPOutputStreambuf( os.rdbuf() ) ; + + init( ozf ) ; +} + +GZIPOutputStream::GZIPOutputStream( const std::string &filename ) + : ostream( 0 ), + ofs( 0 ) +{ + ofs = new std::ofstream( filename.c_str(), std::ios::out | std::ios::binary ) ; + ozf = new GZIPOutputStreambuf( ofs->rdbuf() ) ; + init( ozf ) ; +} + +void GZIPOutputStream::setFilename( const string &filename ) { + ozf->setFilename(filename); +} + +void GZIPOutputStream::setComment( const string &comment ) { + ozf->setComment(comment); +} + +void GZIPOutputStream::close() { + ozf->close() ; + if ( ofs ) + ofs->close() ; +} + + +void GZIPOutputStream::finish() { + ozf->finish() ; +} + + +GZIPOutputStream::~GZIPOutputStream() { + // It's ok to call delete with a Null pointer. + delete ozf ; + delete ofs ; +} + +} // namespace + +/** \file + Implementation of GZIPOutputStream. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/gzipoutputstreambuf.cc b/source/visualization/HepRep/src/gzipoutputstreambuf.cc new file mode 100644 index 0000000000..67caa85bfd --- /dev/null +++ b/source/visualization/HepRep/src/gzipoutputstreambuf.cc @@ -0,0 +1,127 @@ + +#include + +#include "zipios++/zipios-config.h" + +#include +#include "zipios++/meta-iostreams.h" + +#include + +#include "zipios++/gzipoutputstreambuf.h" + +namespace zipios { + +using std::ios ; +using std::cerr ; +using std::endl ; + +GZIPOutputStreambuf::GZIPOutputStreambuf( streambuf *outbuf, bool del_outbuf ) + : DeflateOutputStreambuf( outbuf, true, del_outbuf ), + _open ( false ) +{ +} + +void GZIPOutputStreambuf::setFilename( const string &filename ) { + _filename = filename ; +} + +void GZIPOutputStreambuf::setComment( const string &comment ) { + _comment = comment ; +} + +void GZIPOutputStreambuf::close() { + finish() ; +} + +void GZIPOutputStreambuf::finish() { + if( ! _open ) + return ; + + closeStream(); + writeTrailer(); + + _open = false ; +} + +GZIPOutputStreambuf::~GZIPOutputStreambuf() { + finish() ; +} + +int GZIPOutputStreambuf::overflow( int c ) { + if (!_open) { + writeHeader(); + _open = true; + } + return DeflateOutputStreambuf::overflow( c ) ; +} + +int GZIPOutputStreambuf::sync() { + return DeflateOutputStreambuf::sync() ; +} + +void GZIPOutputStreambuf::writeHeader() { + unsigned char flg = 0x00; + flg |= (_filename == "") ? 0x00 : 0x08; + flg |= (_comment == "") ? 0x00 : 0x10; + + ostream os( _outbuf ) ; + os << (unsigned char)0x1f; // Magic # + os << (unsigned char)0x8b; // Magic # + os << (unsigned char)0x08; // Deflater.DEFLATED + os << flg; // FLG + os << (unsigned char)0x00; // MTIME + os << (unsigned char)0x00; // MTIME + os << (unsigned char)0x00; // MTIME + os << (unsigned char)0x00; // MTIME + os << (unsigned char)0x00; // XFLG + os << (unsigned char)0x00; // OS + + if (_filename != "") { + os << _filename.c_str();// Filename + os << (unsigned char)0x00; + } + + if (_comment != "") { + os << _comment.c_str(); // Comment + os << (unsigned char)0x00; + } +} + +void GZIPOutputStreambuf::writeTrailer() { + writeInt(getCrc32()); + writeInt(getCount()); +} + +void GZIPOutputStreambuf::writeInt(uint32 i) { + ostream os( _outbuf ) ; + os << (unsigned char)( i & 0xFF); + os << (unsigned char)((i >> 8) & 0xFF); + os << (unsigned char)((i >> 16) & 0xFF); + os << (unsigned char)((i >> 24) & 0xFF); +} + +} // namespace + +/** \file + Implementation of GZIPOutputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/infblock.cc b/source/visualization/HepRep/src/infblock.cc new file mode 100644 index 0000000000..28bb1d5512 --- /dev/null +++ b/source/visualization/HepRep/src/infblock.cc @@ -0,0 +1,405 @@ +/* infblock.c -- interpret and process block types to last block + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "infblock.h" +#include "inftrees.h" +#include "infcodes.h" +#include "infutil.h" + +struct inflate_codes_state {int dummy;}; /* for buggy compilers */ + +/* simplify the use of the inflate_huft type with some defines */ +#define exop word.what.Exop +#define bits word.what.Bits + +/* Table for deflate from PKZIP's appnote.txt. */ +local const uInt border[] = { /* Order of the bit length code lengths */ + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; + +/* + Notes beyond the 1.93a appnote.txt: + + 1. Distance pointers never point before the beginning of the output + stream. + 2. Distance pointers can point back across blocks, up to 32k away. + 3. There is an implied maximum of 7 bits for the bit length table and + 15 bits for the actual data. + 4. If only one code exists, then it is encoded using one bit. (Zero + would be more efficient, but perhaps a little confusing.) If two + codes exist, they are coded using one bit each (0 and 1). + 5. There is no way of sending zero distance codes--a dummy must be + sent if there are none. (History: a pre 2.0 version of PKZIP would + store blocks with no distance codes, but this was discovered to be + too harsh a criterion.) Valid only for 1.93a. 2.04c does allow + zero distance codes, which is sent as one code of zero bits in + length. + 6. There are up to 286 literal/length codes. Code 256 represents the + end-of-block. Note however that the static length tree defines + 288 codes just to fill out the Huffman codes. Codes 286 and 287 + cannot be used though, since there is no length base or extra bits + defined for them. Similarily, there are up to 30 distance codes. + However, static trees define 32 codes (all 5 bits) to fill out the + Huffman codes, but the last two had better not show up in the data. + 7. Unzip can check dynamic Huffman blocks for complete code sets. + The exception is that a single code would not be complete (see #4). + 8. The five bits following the block type is really the number of + literal codes sent minus 257. + 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits + (1+6+6). Therefore, to output three times the length, you output + three codes (1+1+1), whereas to output four times the same length, + you only need two codes (1+3). Hmm. + 10. In the tree reconstruction algorithm, Code = Code + Increment + only if BitLength(i) is not zero. (Pretty obvious.) + 11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19) + 12. Note: length code 284 can represent 227-258, but length code 285 + really is 258. The last length deserves its own, short code + since it gets used a lot in very redundant files. The length + 258 is special since 258 - 3 (the min match length) is 255. + 13. The literal/length and distance code bit lengths are read as a + single stream of lengths. It is possible (and advantageous) for + a repeat code (16, 17, or 18) to go across the boundary between + the two sets of lengths. + */ + + +void inflate_blocks_reset(inflate_blocks_statef *s, z_streamp z, uLongf *c) +//inflate_blocks_statef *s; +//z_streamp z; +//uLongf *c; +{ + if (c != Z_NULL) + *c = s->check; + if (s->mode == BTREE || s->mode == DTREE) + ZFREE(z, s->sub.trees.blens); + if (s->mode == CODES) + inflate_codes_free(s->sub.decode.codes, z); + s->mode = TYPE; + s->bitk = 0; + s->bitb = 0; + s->read = s->write = s->window; + if (s->checkfn != Z_NULL) + z->adler = s->check = (*s->checkfn)(0L, (const Bytef *)Z_NULL, 0); + Tracev((stderr, "inflate: blocks reset\n")); +} + + +inflate_blocks_statef *inflate_blocks_new(z_streamp z, check_func c, uInt w) +//z_streamp z; +//check_func c; +//uInt w; +{ + inflate_blocks_statef *s; + + if ((s = (inflate_blocks_statef *)ZALLOC + (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL) + return s; + if ((s->hufts = + (inflate_huft *)ZALLOC(z, sizeof(inflate_huft), MANY)) == Z_NULL) + { + ZFREE(z, s); + return Z_NULL; + } + if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL) + { + ZFREE(z, s->hufts); + ZFREE(z, s); + return Z_NULL; + } + s->end = s->window + w; + s->checkfn = c; + s->mode = TYPE; + Tracev((stderr, "inflate: blocks allocated\n")); + inflate_blocks_reset(s, z, Z_NULL); + return s; +} + + +int inflate_blocks(inflate_blocks_statef *s, z_streamp z, int r) +//inflate_blocks_statef *s; +//z_streamp z; +//int r; +{ + uInt t; /* temporary storage */ + uLong b; /* bit buffer */ + uInt k; /* bits in bit buffer */ + Bytef *p; /* input data pointer */ + uInt n; /* bytes available there */ + Bytef *q; /* output window write pointer */ + uInt m; /* bytes to end of window or read pointer */ + + /* copy input/output information to locals (UPDATE macro restores) */ + LOAD + + /* process input based on current state */ + while (1) switch (s->mode) + { + case TYPE: + NEEDBITS(3) + t = (uInt)b & 7; + s->last = t & 1; + switch (t >> 1) + { + case 0: /* stored */ + Tracev((stderr, "inflate: stored block%s\n", + s->last ? " (last)" : "")); + DUMPBITS(3) + t = k & 7; /* go to byte boundary */ + DUMPBITS(t) + s->mode = LENS; /* get length of stored block */ + break; + case 1: /* fixed */ + Tracev((stderr, "inflate: fixed codes block%s\n", + s->last ? " (last)" : "")); + { + uInt bl, bd; + inflate_huft *tl, *td; + + inflate_trees_fixed(&bl, &bd, &tl, &td, z); + s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z); + if (s->sub.decode.codes == Z_NULL) + { + r = Z_MEM_ERROR; + LEAVE + } + } + DUMPBITS(3) + s->mode = CODES; + break; + case 2: /* dynamic */ + Tracev((stderr, "inflate: dynamic codes block%s\n", + s->last ? " (last)" : "")); + DUMPBITS(3) + s->mode = TABLE; + break; + case 3: /* illegal */ + DUMPBITS(3) + s->mode = BAD; + z->msg = (char*)"invalid block type"; + r = Z_DATA_ERROR; + LEAVE + } + break; + case LENS: + NEEDBITS(32) + if ((((~b) >> 16) & 0xffff) != (b & 0xffff)) + { + s->mode = BAD; + z->msg = (char*)"invalid stored block lengths"; + r = Z_DATA_ERROR; + LEAVE + } + s->sub.left = (uInt)b & 0xffff; + b = k = 0; /* dump bits */ + Tracev((stderr, "inflate: stored length %u\n", s->sub.left)); + s->mode = s->sub.left ? STORED : (s->last ? DRY : TYPE); + break; + case STORED: + if (n == 0) + LEAVE + NEEDOUT + t = s->sub.left; + if (t > n) t = n; + if (t > m) t = m; + zmemcpy(q, p, t); + p += t; n -= t; + q += t; m -= t; + if ((s->sub.left -= t) != 0) + break; + Tracev((stderr, "inflate: stored end, %lu total out\n", + z->total_out + (q >= s->read ? q - s->read : + (s->end - s->read) + (q - s->window)))); + s->mode = s->last ? DRY : TYPE; + break; + case TABLE: + NEEDBITS(14) + s->sub.trees.table = t = (uInt)b & 0x3fff; +#ifndef PKZIP_BUG_WORKAROUND + if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29) + { + s->mode = BAD; + z->msg = (char*)"too many length or distance symbols"; + r = Z_DATA_ERROR; + LEAVE + } +#endif + t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f); + if ((s->sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL) + { + r = Z_MEM_ERROR; + LEAVE + } + DUMPBITS(14) + s->sub.trees.index = 0; + Tracev((stderr, "inflate: table sizes ok\n")); + s->mode = BTREE; + case BTREE: + while (s->sub.trees.index < 4 + (s->sub.trees.table >> 10)) + { + NEEDBITS(3) + s->sub.trees.blens[border[s->sub.trees.index++]] = (uInt)b & 7; + DUMPBITS(3) + } + while (s->sub.trees.index < 19) + s->sub.trees.blens[border[s->sub.trees.index++]] = 0; + s->sub.trees.bb = 7; + t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb, + &s->sub.trees.tb, s->hufts, z); + if (t != Z_OK) + { + + r = t; + if (r == Z_DATA_ERROR) + { + ZFREE(z, s->sub.trees.blens); + s->mode = BAD; + } + LEAVE + } + s->sub.trees.index = 0; + Tracev((stderr, "inflate: bits tree ok\n")); + s->mode = DTREE; + case DTREE: + while (t = s->sub.trees.table, + s->sub.trees.index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f)) + { + inflate_huft *h; + uInt i, j, c; + + t = s->sub.trees.bb; + NEEDBITS(t) + h = s->sub.trees.tb + ((uInt)b & inflate_mask[t]); + t = h->bits; + c = h->base; + if (c < 16) + { + DUMPBITS(t) + s->sub.trees.blens[s->sub.trees.index++] = c; + } + else /* c == 16..18 */ + { + i = c == 18 ? 7 : c - 14; + j = c == 18 ? 11 : 3; + NEEDBITS(t + i) + DUMPBITS(t) + j += (uInt)b & inflate_mask[i]; + DUMPBITS(i) + i = s->sub.trees.index; + t = s->sub.trees.table; + if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) || + (c == 16 && i < 1)) + { + ZFREE(z, s->sub.trees.blens); + s->mode = BAD; + z->msg = (char*)"invalid bit length repeat"; + r = Z_DATA_ERROR; + LEAVE + } + c = c == 16 ? s->sub.trees.blens[i - 1] : 0; + do { + s->sub.trees.blens[i++] = c; + } while (--j); + s->sub.trees.index = i; + } + } + s->sub.trees.tb = Z_NULL; + { + uInt bl, bd; + inflate_huft *tl, *td; + inflate_codes_statef *c; + + bl = 9; /* must be <= 9 for lookahead assumptions */ + bd = 6; /* must be <= 9 for lookahead assumptions */ + t = s->sub.trees.table; + t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f), + s->sub.trees.blens, &bl, &bd, &tl, &td, + s->hufts, z); + + if (t != Z_OK) + { + if (t == (uInt)Z_DATA_ERROR) + { + ZFREE(z, s->sub.trees.blens); + s->mode = BAD; + } + r = t; + LEAVE + } + Tracev((stderr, "inflate: trees ok\n")); + if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL) + { + r = Z_MEM_ERROR; + LEAVE + } + s->sub.decode.codes = c; + } + ZFREE(z, s->sub.trees.blens); + s->mode = CODES; + case CODES: + UPDATE + if ((r = inflate_codes(s, z, r)) != Z_STREAM_END) + return inflate_flush(s, z, r); + r = Z_OK; + inflate_codes_free(s->sub.decode.codes, z); + LOAD + Tracev((stderr, "inflate: codes end, %lu total out\n", + z->total_out + (q >= s->read ? q - s->read : + (s->end - s->read) + (q - s->window)))); + if (!s->last) + { + s->mode = TYPE; + break; + } + s->mode = DRY; + case DRY: + FLUSH + if (s->read != s->write) + LEAVE + s->mode = DONE; + case DONE: + r = Z_STREAM_END; + LEAVE + case BAD: + r = Z_DATA_ERROR; + LEAVE + default: + r = Z_STREAM_ERROR; + LEAVE + } +} + + +int inflate_blocks_free(inflate_blocks_statef *s, z_streamp z) +//inflate_blocks_statef *s; +//z_streamp z; +{ + inflate_blocks_reset(s, z, Z_NULL); + ZFREE(z, s->window); + ZFREE(z, s->hufts); + ZFREE(z, s); + Tracev((stderr, "inflate: blocks freed\n")); + return Z_OK; +} + + +void inflate_set_dictionary(inflate_blocks_statef *s, const Bytef *d, uInt n) +//inflate_blocks_statef *s; +//const Bytef *d; +//uInt n; +{ + zmemcpy(s->window, d, n); + s->read = s->write = s->window + n; +} + + +/* Returns true if inflate is currently at the end of a block generated + * by Z_SYNC_FLUSH or Z_FULL_FLUSH. + * IN assertion: s != Z_NULL + */ +int inflate_blocks_sync_point(inflate_blocks_statef *s) +//inflate_blocks_statef *s; +{ + return s->mode == LENS; +} diff --git a/source/visualization/HepRep/src/infcodes.cc b/source/visualization/HepRep/src/infcodes.cc new file mode 100644 index 0000000000..ae8e0b2cb1 --- /dev/null +++ b/source/visualization/HepRep/src/infcodes.cc @@ -0,0 +1,257 @@ +/* infcodes.c -- process literals and length/distance pairs + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "inftrees.h" +#include "infblock.h" +#include "infcodes.h" +#include "infutil.h" +#include "inffast.h" + +/* simplify the use of the inflate_huft type with some defines */ +#define exop word.what.Exop +#define bits word.what.Bits + +typedef enum { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */ + START, /* x: set up for LEN */ + LEN, /* i: get length/literal/eob next */ + LENEXT, /* i: getting length extra (have base) */ + DIST, /* i: get distance next */ + DISTEXT, /* i: getting distance extra */ + COPY, /* o: copying bytes in window, waiting for space */ + LIT, /* o: got literal, waiting for output space */ + WASH, /* o: got eob, possibly still output waiting */ + END, /* x: got eob and all data flushed */ + BADCODE} /* x: got error */ +inflate_codes_mode; + +/* inflate codes private state */ +struct inflate_codes_state { + + /* mode */ + inflate_codes_mode mode; /* current inflate_codes mode */ + + /* mode dependent information */ + uInt len; + union { + struct { + inflate_huft *tree; /* pointer into tree */ + uInt need; /* bits needed */ + } code; /* if LEN or DIST, where in tree */ + uInt lit; /* if LIT, literal */ + struct { + uInt get; /* bits to get for extra */ + uInt dist; /* distance back to copy from */ + } copy; /* if EXT or COPY, where and how much */ + } sub; /* submode */ + + /* mode independent information */ + Byte lbits; /* ltree bits decoded per branch */ + Byte dbits; /* dtree bits decoder per branch */ + inflate_huft *ltree; /* literal/length/eob tree */ + inflate_huft *dtree; /* distance tree */ + +}; + + +inflate_codes_statef *inflate_codes_new(uInt bl, uInt bd, inflate_huft *tl, inflate_huft *td, z_streamp z) +//uInt bl, bd; +//inflate_huft *tl; +//inflate_huft *td; /* need separate declaration for Borland C++ */ +//z_streamp z; +{ + inflate_codes_statef *c; + + if ((c = (inflate_codes_statef *) + ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL) + { + c->mode = START; + c->lbits = (Byte)bl; + c->dbits = (Byte)bd; + c->ltree = tl; + c->dtree = td; + Tracev((stderr, "inflate: codes new\n")); + } + return c; +} + + +int inflate_codes(inflate_blocks_statef *s, z_streamp z, int r) +//inflate_blocks_statef *s; +//z_streamp z; +//int r; +{ + uInt j; /* temporary storage */ + inflate_huft *t; /* temporary pointer */ + uInt e; /* extra bits or operation */ + uLong b; /* bit buffer */ + uInt k; /* bits in bit buffer */ + Bytef *p; /* input data pointer */ + uInt n; /* bytes available there */ + Bytef *q; /* output window write pointer */ + uInt m; /* bytes to end of window or read pointer */ + Bytef *f; /* pointer to copy strings from */ + inflate_codes_statef *c = s->sub.decode.codes; /* codes state */ + + /* copy input/output information to locals (UPDATE macro restores) */ + LOAD + + /* process input and output based on current state */ + while (1) switch (c->mode) + { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */ + case START: /* x: set up for LEN */ +#ifndef SLOW + if (m >= 258 && n >= 10) + { + UPDATE + r = inflate_fast(c->lbits, c->dbits, c->ltree, c->dtree, s, z); + LOAD + if (r != Z_OK) + { + c->mode = r == Z_STREAM_END ? WASH : BADCODE; + break; + } + } +#endif /* !SLOW */ + c->sub.code.need = c->lbits; + c->sub.code.tree = c->ltree; + c->mode = LEN; + case LEN: /* i: get length/literal/eob next */ + j = c->sub.code.need; + NEEDBITS(j) + t = c->sub.code.tree + ((uInt)b & inflate_mask[j]); + DUMPBITS(t->bits) + e = (uInt)(t->exop); + if (e == 0) /* literal */ + { + c->sub.lit = t->base; + Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ? + "inflate: literal '%c'\n" : + "inflate: literal 0x%02x\n", t->base)); + c->mode = LIT; + break; + } + if (e & 16) /* length */ + { + c->sub.copy.get = e & 15; + c->len = t->base; + c->mode = LENEXT; + break; + } + if ((e & 64) == 0) /* next table */ + { + c->sub.code.need = e; + c->sub.code.tree = t + t->base; + break; + } + if (e & 32) /* end of block */ + { + Tracevv((stderr, "inflate: end of block\n")); + c->mode = WASH; + break; + } + c->mode = BADCODE; /* invalid code */ + z->msg = (char*)"invalid literal/length code"; + r = Z_DATA_ERROR; + LEAVE + case LENEXT: /* i: getting length extra (have base) */ + j = c->sub.copy.get; + NEEDBITS(j) + c->len += (uInt)b & inflate_mask[j]; + DUMPBITS(j) + c->sub.code.need = c->dbits; + c->sub.code.tree = c->dtree; + Tracevv((stderr, "inflate: length %u\n", c->len)); + c->mode = DIST; + case DIST: /* i: get distance next */ + j = c->sub.code.need; + NEEDBITS(j) + t = c->sub.code.tree + ((uInt)b & inflate_mask[j]); + DUMPBITS(t->bits) + e = (uInt)(t->exop); + if (e & 16) /* distance */ + { + c->sub.copy.get = e & 15; + c->sub.copy.dist = t->base; + c->mode = DISTEXT; + break; + } + if ((e & 64) == 0) /* next table */ + { + c->sub.code.need = e; + c->sub.code.tree = t + t->base; + break; + } + c->mode = BADCODE; /* invalid code */ + z->msg = (char*)"invalid distance code"; + r = Z_DATA_ERROR; + LEAVE + case DISTEXT: /* i: getting distance extra */ + j = c->sub.copy.get; + NEEDBITS(j) + c->sub.copy.dist += (uInt)b & inflate_mask[j]; + DUMPBITS(j) + Tracevv((stderr, "inflate: distance %u\n", c->sub.copy.dist)); + c->mode = COPY; + case COPY: /* o: copying bytes in window, waiting for space */ +#ifndef __TURBOC__ /* Turbo C bug for following expression */ + f = (uInt)(q - s->window) < c->sub.copy.dist ? + s->end - (c->sub.copy.dist - (q - s->window)) : + q - c->sub.copy.dist; +#else + f = q - c->sub.copy.dist; + if ((uInt)(q - s->window) < c->sub.copy.dist) + f = s->end - (c->sub.copy.dist - (uInt)(q - s->window)); +#endif + while (c->len) + { + NEEDOUT + OUTBYTE(*f++) + if (f == s->end) + f = s->window; + c->len--; + } + c->mode = START; + break; + case LIT: /* o: got literal, waiting for output space */ + NEEDOUT + OUTBYTE(c->sub.lit) + c->mode = START; + break; + case WASH: /* o: got eob, possibly more output */ + if (k > 7) /* return unused byte, if any */ + { + Assert(k < 16, "inflate_codes grabbed too many bytes") + k -= 8; + n++; + p--; /* can always return one */ + } + FLUSH + if (s->read != s->write) + LEAVE + c->mode = END; + case END: + r = Z_STREAM_END; + LEAVE + case BADCODE: /* x: got error */ + r = Z_DATA_ERROR; + LEAVE + default: + r = Z_STREAM_ERROR; + LEAVE + } +#ifdef NEED_DUMMY_RETURN + return Z_STREAM_ERROR; /* Some dumb compilers complain without this */ +#endif +} + + +void inflate_codes_free(inflate_codes_statef *c, z_streamp z) +//inflate_codes_statef *c; +//z_streamp z; +{ + ZFREE(z, c); + Tracev((stderr, "inflate: codes free\n")); +} diff --git a/source/visualization/HepRep/src/inffast.cc b/source/visualization/HepRep/src/inffast.cc new file mode 100644 index 0000000000..b131884d91 --- /dev/null +++ b/source/visualization/HepRep/src/inffast.cc @@ -0,0 +1,170 @@ +/* inffast.c -- process literals and length/distance pairs fast + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "inftrees.h" +#include "infblock.h" +#include "infcodes.h" +#include "infutil.h" +#include "inffast.h" + +struct inflate_codes_state {int dummy;}; /* for buggy compilers */ + +/* simplify the use of the inflate_huft type with some defines */ +#define exop word.what.Exop +#define bits word.what.Bits + +/* macros for bit input with no checking and for returning unused bytes */ +#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<avail_in-n;c=(k>>3)>3:c;n+=c;p-=c;k-=c<<3;} + +/* Called with number of bytes left to write in window at least 258 + (the maximum string length) and number of input bytes available + at least ten. The ten bytes are six bytes for the longest length/ + distance pair plus four bytes for overloading the bit buffer. */ + +int inflate_fast(uInt bl, uInt bd, inflate_huft *tl, inflate_huft *td, inflate_blocks_statef *s, z_streamp z) +//uInt bl, bd; +//inflate_huft *tl; +//inflate_huft *td; /* need separate declaration for Borland C++ */ +//inflate_blocks_statef *s; +//z_streamp z; +{ + inflate_huft *t; /* temporary pointer */ + uInt e; /* extra bits or operation */ + uLong b; /* bit buffer */ + uInt k; /* bits in bit buffer */ + Bytef *p; /* input data pointer */ + uInt n; /* bytes available there */ + Bytef *q; /* output window write pointer */ + uInt m; /* bytes to end of window or read pointer */ + uInt ml; /* mask for literal/length tree */ + uInt md; /* mask for distance tree */ + uInt c; /* bytes to copy */ + uInt d; /* distance back to copy from */ + Bytef *r; /* copy source pointer */ + + /* load input, output, bit values */ + LOAD + + /* initialize masks */ + ml = inflate_mask[bl]; + md = inflate_mask[bd]; + + /* do until not enough input or output space for fast loop */ + do { /* assume called with m >= 258 && n >= 10 */ + /* get literal/length code */ + GRABBITS(20) /* max bits for literal/length code */ + if ((e = (t = tl + ((uInt)b & ml))->exop) == 0) + { + DUMPBITS(t->bits) + Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ? + "inflate: * literal '%c'\n" : + "inflate: * literal 0x%02x\n", t->base)); + *q++ = (Byte)t->base; + m--; + continue; + } + do { + DUMPBITS(t->bits) + if (e & 16) + { + /* get extra bits for length */ + e &= 15; + c = t->base + ((uInt)b & inflate_mask[e]); + DUMPBITS(e) + Tracevv((stderr, "inflate: * length %u\n", c)); + + /* decode distance base of block to copy */ + GRABBITS(15); /* max bits for distance code */ + e = (t = td + ((uInt)b & md))->exop; + do { + DUMPBITS(t->bits) + if (e & 16) + { + /* get extra bits to add to distance base */ + e &= 15; + GRABBITS(e) /* get extra bits (up to 13) */ + d = t->base + ((uInt)b & inflate_mask[e]); + DUMPBITS(e) + Tracevv((stderr, "inflate: * distance %u\n", d)); + + /* do the copy */ + m -= c; + if ((uInt)(q - s->window) >= d) /* offset before dest */ + { /* just copy */ + r = q - d; + *q++ = *r++; c--; /* minimum count is three, */ + *q++ = *r++; c--; /* so unroll loop a little */ + } + else /* else offset after destination */ + { + e = d - (uInt)(q - s->window); /* bytes from offset to end */ + r = s->end - e; /* pointer to offset */ + if (c > e) /* if source crosses, */ + { + c -= e; /* copy to end of window */ + do { + *q++ = *r++; + } while (--e); + r = s->window; /* copy rest from start of window */ + } + } + do { /* copy all or what's left */ + *q++ = *r++; + } while (--c); + break; + } + else if ((e & 64) == 0) + { + t += t->base; + e = (t += ((uInt)b & inflate_mask[e]))->exop; + } + else + { + z->msg = (char*)"invalid distance code"; + UNGRAB + UPDATE + return Z_DATA_ERROR; + } + } while (1); + break; + } + if ((e & 64) == 0) + { + t += t->base; + if ((e = (t += ((uInt)b & inflate_mask[e]))->exop) == 0) + { + DUMPBITS(t->bits) + Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ? + "inflate: * literal '%c'\n" : + "inflate: * literal 0x%02x\n", t->base)); + *q++ = (Byte)t->base; + m--; + break; + } + } + else if (e & 32) + { + Tracevv((stderr, "inflate: * end of block\n")); + UNGRAB + UPDATE + return Z_STREAM_END; + } + else + { + z->msg = (char*)"invalid literal/length code"; + UNGRAB + UPDATE + return Z_DATA_ERROR; + } + } while (1); + } while (m >= 258 && n >= 10); + + /* not enough input or output--restore pointers and return */ + UNGRAB + UPDATE + return Z_OK; +} diff --git a/source/visualization/HepRep/src/inflate.cc b/source/visualization/HepRep/src/inflate.cc new file mode 100644 index 0000000000..09c2cc6dc6 --- /dev/null +++ b/source/visualization/HepRep/src/inflate.cc @@ -0,0 +1,367 @@ +/* inflate.c -- zlib interface to inflate modules + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "infblock.h" + +struct inflate_blocks_state {int dummy;}; /* for buggy compilers */ + +typedef enum { + METHOD, /* waiting for method byte */ + FLAG, /* waiting for flag byte */ + DICT4, /* four dictionary check bytes to go */ + DICT3, /* three dictionary check bytes to go */ + DICT2, /* two dictionary check bytes to go */ + DICT1, /* one dictionary check byte to go */ + DICT0, /* waiting for inflateSetDictionary */ + BLOCKS, /* decompressing blocks */ + CHECK4, /* four check bytes to go */ + CHECK3, /* three check bytes to go */ + CHECK2, /* two check bytes to go */ + CHECK1, /* one check byte to go */ + DONE, /* finished check, done */ + BAD} /* got an error--stay here */ +inflate_mode; + +/* inflate private state */ +struct internal_state { + + /* mode */ + inflate_mode mode; /* current inflate mode */ + + /* mode dependent information */ + union { + uInt method; /* if FLAGS, method byte */ + struct { + uLong was; /* computed check value */ + uLong need; /* stream check value */ + } check; /* if CHECK, check values to compare */ + uInt marker; /* if BAD, inflateSync's marker bytes count */ + } sub; /* submode */ + + /* mode independent information */ + int nowrap; /* flag for no wrapper */ + uInt wbits; /* log2(window size) (8..15, defaults to 15) */ + inflate_blocks_statef + *blocks; /* current inflate_blocks state */ + +}; + + +int ZEXPORT inflateReset(z_streamp z) +//z_streamp z; +{ + if (z == Z_NULL || z->state == Z_NULL) + return Z_STREAM_ERROR; + z->total_in = z->total_out = 0; + z->msg = Z_NULL; + z->state->mode = z->state->nowrap ? BLOCKS : METHOD; + inflate_blocks_reset(z->state->blocks, z, Z_NULL); + Tracev((stderr, "inflate: reset\n")); + return Z_OK; +} + + +int ZEXPORT inflateEnd(z_streamp z) +//z_streamp z; +{ + if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL) + return Z_STREAM_ERROR; + if (z->state->blocks != Z_NULL) + inflate_blocks_free(z->state->blocks, z); + ZFREE(z, z->state); + z->state = Z_NULL; + Tracev((stderr, "inflate: end\n")); + return Z_OK; +} + + +int ZEXPORT inflateInit2_(z_streamp z, int w, const char *version, int stream_size) +//z_streamp z; +//int w; +//const char *version; +//int stream_size; +{ + if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || + stream_size != sizeof(z_stream)) + return Z_VERSION_ERROR; + + /* initialize state */ + if (z == Z_NULL) + return Z_STREAM_ERROR; + z->msg = Z_NULL; + if (z->zalloc == Z_NULL) + { + z->zalloc = zcalloc; + z->opaque = (voidpf)0; + } + if (z->zfree == Z_NULL) z->zfree = zcfree; + if ((z->state = (struct internal_state FAR *) + ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL) + return Z_MEM_ERROR; + z->state->blocks = Z_NULL; + + /* handle undocumented nowrap option (no zlib header or check) */ + z->state->nowrap = 0; + if (w < 0) + { + w = - w; + z->state->nowrap = 1; + } + + /* set window size */ + if (w < 8 || w > 15) + { + inflateEnd(z); + return Z_STREAM_ERROR; + } + z->state->wbits = (uInt)w; + + /* create inflate_blocks state */ + if ((z->state->blocks = + inflate_blocks_new(z, z->state->nowrap ? Z_NULL : + (unsigned long(*)(unsigned long,const unsigned char*,unsigned))adler32, (uInt)1 << w)) + == Z_NULL) + { + inflateEnd(z); + return Z_MEM_ERROR; + } + Tracev((stderr, "inflate: allocated\n")); + + /* reset state */ + inflateReset(z); + return Z_OK; +} + + +int ZEXPORT inflateInit_(z_streamp z, const char *version, int stream_size) +//z_streamp z; +//const char *version; +//int stream_size; +{ + return inflateInit2_(z, DEF_WBITS, version, stream_size); +} + + +#define NEEDBYTE {if(z->avail_in==0)return r;r=f;} +#define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++) + +int ZEXPORT inflate(z_streamp z, int f) +//z_streamp z; +//int f; +{ + int r; + uInt b; + + if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL) + return Z_STREAM_ERROR; + f = f == Z_FINISH ? Z_BUF_ERROR : Z_OK; + r = Z_BUF_ERROR; + while (1) switch (z->state->mode) + { + case METHOD: + NEEDBYTE + if (((z->state->sub.method = NEXTBYTE) & 0xf) != Z_DEFLATED) + { + z->state->mode = BAD; + z->msg = (char*)"unknown compression method"; + z->state->sub.marker = 5; /* can't try inflateSync */ + break; + } + if ((z->state->sub.method >> 4) + 8 > z->state->wbits) + { + z->state->mode = BAD; + z->msg = (char*)"invalid window size"; + z->state->sub.marker = 5; /* can't try inflateSync */ + break; + } + z->state->mode = FLAG; + case FLAG: + NEEDBYTE + b = NEXTBYTE; + if (((z->state->sub.method << 8) + b) % 31) + { + z->state->mode = BAD; + z->msg = (char*)"incorrect header check"; + z->state->sub.marker = 5; /* can't try inflateSync */ + break; + } + Tracev((stderr, "inflate: zlib header ok\n")); + if (!(b & PRESET_DICT)) + { + z->state->mode = BLOCKS; + break; + } + z->state->mode = DICT4; + case DICT4: + NEEDBYTE + z->state->sub.check.need = (uLong)NEXTBYTE << 24; + z->state->mode = DICT3; + case DICT3: + NEEDBYTE + z->state->sub.check.need += (uLong)NEXTBYTE << 16; + z->state->mode = DICT2; + case DICT2: + NEEDBYTE + z->state->sub.check.need += (uLong)NEXTBYTE << 8; + z->state->mode = DICT1; + case DICT1: + NEEDBYTE + z->state->sub.check.need += (uLong)NEXTBYTE; + z->adler = z->state->sub.check.need; + z->state->mode = DICT0; + return Z_NEED_DICT; + case DICT0: + z->state->mode = BAD; + z->msg = (char*)"need dictionary"; + z->state->sub.marker = 0; /* can try inflateSync */ + return Z_STREAM_ERROR; + case BLOCKS: + r = inflate_blocks(z->state->blocks, z, r); + if (r == Z_DATA_ERROR) + { + z->state->mode = BAD; + z->state->sub.marker = 0; /* can try inflateSync */ + break; + } + if (r == Z_OK) + r = f; + if (r != Z_STREAM_END) + return r; + r = f; + inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was); + if (z->state->nowrap) + { + z->state->mode = DONE; + break; + } + z->state->mode = CHECK4; + case CHECK4: + NEEDBYTE + z->state->sub.check.need = (uLong)NEXTBYTE << 24; + z->state->mode = CHECK3; + case CHECK3: + NEEDBYTE + z->state->sub.check.need += (uLong)NEXTBYTE << 16; + z->state->mode = CHECK2; + case CHECK2: + NEEDBYTE + z->state->sub.check.need += (uLong)NEXTBYTE << 8; + z->state->mode = CHECK1; + case CHECK1: + NEEDBYTE + z->state->sub.check.need += (uLong)NEXTBYTE; + + if (z->state->sub.check.was != z->state->sub.check.need) + { + z->state->mode = BAD; + z->msg = (char*)"incorrect data check"; + z->state->sub.marker = 5; /* can't try inflateSync */ + break; + } + Tracev((stderr, "inflate: zlib check ok\n")); + z->state->mode = DONE; + case DONE: + return Z_STREAM_END; + case BAD: + return Z_DATA_ERROR; + default: + return Z_STREAM_ERROR; + } +#ifdef NEED_DUMMY_RETURN + return Z_STREAM_ERROR; /* Some dumb compilers complain without this */ +#endif +} + + +int ZEXPORT inflateSetDictionary(z_streamp z, const Bytef *dictionary, uInt dictLength) +//z_streamp z; +//const Bytef *dictionary; +//uInt dictLength; +{ + uInt length = dictLength; + + if (z == Z_NULL || z->state == Z_NULL || z->state->mode != DICT0) + return Z_STREAM_ERROR; + + if (adler32(1L, dictionary, dictLength) != z->adler) return Z_DATA_ERROR; + z->adler = 1L; + + if (length >= ((uInt)1<state->wbits)) + { + length = (1<state->wbits)-1; + dictionary += dictLength - length; + } + inflate_set_dictionary(z->state->blocks, dictionary, length); + z->state->mode = BLOCKS; + return Z_OK; +} + + +int ZEXPORT inflateSync(z_streamp z) +//z_streamp z; +{ + uInt n; /* number of bytes to look at */ + Bytef *p; /* pointer to bytes */ + uInt m; /* number of marker bytes found in a row */ + uLong r, w; /* temporaries to save total_in and total_out */ + + /* set up */ + if (z == Z_NULL || z->state == Z_NULL) + return Z_STREAM_ERROR; + if (z->state->mode != BAD) + { + z->state->mode = BAD; + z->state->sub.marker = 0; + } + if ((n = z->avail_in) == 0) + return Z_BUF_ERROR; + p = z->next_in; + m = z->state->sub.marker; + + /* search */ + while (n && m < 4) + { + static const Byte mark[4] = {0, 0, 0xff, 0xff}; + if (*p == mark[m]) + m++; + else if (*p) + m = 0; + else + m = 4 - m; + p++, n--; + } + + /* restore */ + z->total_in += p - z->next_in; + z->next_in = p; + z->avail_in = n; + z->state->sub.marker = m; + + /* return no joy or set up to restart on a new block */ + if (m != 4) + return Z_DATA_ERROR; + r = z->total_in; w = z->total_out; + inflateReset(z); + z->total_in = r; z->total_out = w; + z->state->mode = BLOCKS; + return Z_OK; +} + + +/* Returns true if inflate is currently at the end of a block generated + * by Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP + * implementation to provide an additional safety check. PPP uses Z_SYNC_FLUSH + * but removes the length bytes of the resulting empty stored block. When + * decompressing, PPP checks that at the end of input packet, inflate is + * waiting for these length bytes. + */ +int ZEXPORT inflateSyncPoint(z_streamp z) +//z_streamp z; +{ + if (z == Z_NULL || z->state == Z_NULL || z->state->blocks == Z_NULL) + return Z_STREAM_ERROR; + return inflate_blocks_sync_point(z->state->blocks); +} diff --git a/source/visualization/HepRep/src/inflateinputstreambuf.cc b/source/visualization/HepRep/src/inflateinputstreambuf.cc new file mode 100644 index 0000000000..734da44a80 --- /dev/null +++ b/source/visualization/HepRep/src/inflateinputstreambuf.cc @@ -0,0 +1,179 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include + +#include "zipios++/fcollexceptions.h" +#include "zipios++/inflateinputstreambuf.h" + +#include "outputstringstream.h" + +namespace zipios { + +using std::cerr ; +using std::endl ; + +InflateInputStreambuf::InflateInputStreambuf( streambuf *inbuf, int s_pos, bool del_inbuf ) + : FilterInputStreambuf( inbuf, del_inbuf ), + _zs_initialized ( false ), + _invecsize ( 1000 ), + _invec ( _invecsize ), + _outvecsize ( 1000 ), + _outvec ( _outvecsize ) +{ + // NOTICE: It is important that this constructor and the methods it + // calls doesn't do anything with the input streambuf _inbuf, other + // than repositioning it to the specified position. The reason is + // that this class can be subclassed, and the subclass should get a + // chance to read from the buffer first) + + // zlib init: + _zs.zalloc = Z_NULL ; + _zs.zfree = Z_NULL ; + _zs.opaque = Z_NULL ; + + reset( s_pos ) ; + // We're not checking the return value of reset() and throwing + // an exception in case of an error, because we cannot catch the exception + // in the constructors of subclasses with all compilers. +} + +InflateInputStreambuf::~InflateInputStreambuf() { + // Dealloc z_stream stuff + int err = inflateEnd( &_zs ) ; + if( err != Z_OK ) { + cerr << "~inflatebuf: inflateEnd failed" ; +#ifdef HAVE_ZERROR + cerr << ": " << zError( err ) ; +#endif + cerr << endl ; + } +} + + +int InflateInputStreambuf::underflow() { + // If not underflow don't fill buffer + if ( gptr() < egptr() ) + return static_cast< unsigned char >( *gptr() ) ; + + // Prepare _outvec and get array pointers + _zs.avail_out = _outvecsize ; + _zs.next_out = reinterpret_cast< unsigned char * >( &( _outvec[ 0 ] ) ) ; + + // Inflate until _outvec is full + // eof (or I/O prob) on _inbuf will break out of loop too. + int err = Z_OK ; + while ( _zs.avail_out > 0 && err == Z_OK ) { + if ( _zs.avail_in == 0 ) { // fill _invec + int bc = _inbuf->sgetn( &(_invec[ 0 ] ) , + _invecsize ) ; + // FIXME: handle i/o problems. + _zs.next_in = reinterpret_cast< unsigned char * >( &( _invec[0] ) ) ; + _zs.avail_in = bc ; + // If we could not read any new data (bc == 0) and inflate isn't + // done it will return Z_BUF_ERROR and thus breaks out of the + // loop. This means we don't have to respond to the situation + // where we can't read more bytes here. + } + + err = inflate( &_zs, Z_NO_FLUSH ) ; + } + // Normally the number of inflated bytes will be the + // full length of the output buffer, but if we can't read + // more input from the _inbuf streambuf, we end up with + // less. + int inflated_bytes = _outvecsize - _zs.avail_out ; + setg( &( _outvec[ 0 ] ), + &( _outvec[ 0 ] ), + &( _outvec[ 0 ] ) + inflated_bytes ) ; + // FIXME: look at the error returned from inflate here, if there is + // some way to report it to the InflateInputStreambuf user. + // Until I find out I'll just print a warning to stdout. + if( err != Z_OK && err != Z_STREAM_END ) { +#if defined (HAVE_STD_IOSTREAM) && defined (USE_STD_IOSTREAM) + // Throw an exception to make istream set badbit + OutputStringStream msgs ; + msgs << "InflateInputStreambuf: inflate failed" ; +#ifdef HAVE_ZERROR + msgs << ": " << zError( err ) ; +#endif + throw IOException( msgs.str() ) ; +#endif + // If HAVE_STD_IOSTREAM not defined we just return eof + // if no output is produced, and that happens anyway + } + if (inflated_bytes > 0 ) + return static_cast< unsigned char >( *gptr() ) ; + else + return EOF ; // traits_type::eof() ; +} + + + +// This method is called in the constructor, so it must not +// read anything from the input streambuf _inbuf (see notice in constructor) +bool InflateInputStreambuf::reset( int stream_position ) { + if ( stream_position >= 0 ) { // reposition _inbuf + _inbuf->pubseekpos( stream_position ) ; + } + + // _zs.next_in and avail_in must be set according to + // zlib.h (inline doc). + _zs.next_in = reinterpret_cast< unsigned char * >( &( _invec[0] ) ) ; + _zs.avail_in = 0 ; + + int err ; + if( _zs_initialized ) { // just reset it + err = inflateReset( &_zs ) ; + } else { // init it + err = inflateInit2( &_zs, -MAX_WBITS ) ; + /* windowBits is passed < 0 to tell that there is no zlib header. + Note that in this case inflate *requires* an extra "dummy" byte + after the compressed stream in order to complete decompression + and return Z_STREAM_END. We always have an extra "dummy" byte, + because there is always some trailing data after the compressed + data (either the next entry or the central directory. */ + _zs_initialized = true ; + } + + // streambuf init: + // The important thing here, is that + // - the pointers are not NULL (which would mean unbuffered) + // - and that gptr() is not less than egptr() (so we trigger underflow + // the first time data is read). + setg( &( _outvec[ 0 ] ), + &( _outvec[ 0 ] ) + _outvecsize, + &( _outvec[ 0 ] ) + _outvecsize ) ; + + if ( err == Z_OK ) + return true ; + else + return false ; +} + +} // namespace + +/** \file + Implementation of InflateInputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/inftrees.cc b/source/visualization/HepRep/src/inftrees.cc new file mode 100644 index 0000000000..85ac435c7a --- /dev/null +++ b/source/visualization/HepRep/src/inftrees.cc @@ -0,0 +1,455 @@ +/* inftrees.c -- generate Huffman trees for efficient decoding + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "inftrees.h" + +#if !defined(BUILDFIXED) && !defined(STDC) +# define BUILDFIXED /* non ANSI compilers may not accept inffixed.h */ +#endif + +const char inflate_copyright[] = + " inflate 1.1.3 Copyright 1995-1998 Mark Adler "; +/* + If you use the zlib library in a product, an acknowledgment is welcome + in the documentation of your product. If for some reason you cannot + include such an acknowledgment, I would appreciate that you keep this + copyright string in the executable of your product. + */ +struct internal_state {int dummy;}; /* for buggy compilers */ + +/* simplify the use of the inflate_huft type with some defines */ +#define exop word.what.Exop +#define bits word.what.Bits + + +local int huft_build OF(( + uIntf *, /* code lengths in bits */ + uInt, /* number of codes */ + uInt, /* number of "simple" codes */ + const uIntf *, /* list of base values for non-simple codes */ + const uIntf *, /* list of extra bits for non-simple codes */ + inflate_huft * FAR*,/* result: starting table */ + uIntf *, /* maximum lookup bits (returns actual) */ + inflate_huft *, /* space for trees */ + uInt *, /* hufts used in space */ + uIntf * )); /* space for values */ + +/* Tables for deflate from PKZIP's appnote.txt. */ +local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; + /* see note #13 above about 258 */ +local const uInt cplext[31] = { /* Extra bits for literal codes 257..285 */ + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, + 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112}; /* 112==invalid */ +local const uInt cpdist[30] = { /* Copy offsets for distance codes 0..29 */ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, + 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, + 8193, 12289, 16385, 24577}; +local const uInt cpdext[30] = { /* Extra bits for distance codes */ + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, + 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, + 12, 12, 13, 13}; + +/* + Huffman code decoding is performed using a multi-level table lookup. + The fastest way to decode is to simply build a lookup table whose + size is determined by the longest code. However, the time it takes + to build this table can also be a factor if the data being decoded + is not very long. The most common codes are necessarily the + shortest codes, so those codes dominate the decoding time, and hence + the speed. The idea is you can have a shorter table that decodes the + shorter, more probable codes, and then point to subsidiary tables for + the longer codes. The time it costs to decode the longer codes is + then traded against the time it takes to make longer tables. + + This results of this trade are in the variables lbits and dbits + below. lbits is the number of bits the first level table for literal/ + length codes can decode in one step, and dbits is the same thing for + the distance codes. Subsequent tables are also less than or equal to + those sizes. These values may be adjusted either when all of the + codes are shorter than that, in which case the longest code length in + bits is used, or when the shortest code is *longer* than the requested + table size, in which case the length of the shortest code in bits is + used. + + There are two different values for the two tables, since they code a + different number of possibilities each. The literal/length table + codes 286 possible values, or in a flat code, a little over eight + bits. The distance table codes 30 possible values, or a little less + than five bits, flat. The optimum values for speed end up being + about one bit more than those, so lbits is 8+1 and dbits is 5+1. + The optimum values may differ though from machine to machine, and + possibly even between compilers. Your mileage may vary. + */ + + +/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */ +#define BMAX 15 /* maximum bit length of any code */ + +local int huft_build(uIntf *b, uInt n, uInt s, const uIntf *d, const uIntf *e, inflate_huft * FAR *t, uIntf *m, inflate_huft *hp, uInt *hn, uIntf *v) +//uIntf *b; /* code lengths in bits (all assumed <= BMAX) */ +//uInt n; /* number of codes (assumed <= 288) */ +//uInt s; /* number of simple-valued codes (0..s-1) */ +//const uIntf *d; /* list of base values for non-simple codes */ +//const uIntf *e; /* list of extra bits for non-simple codes */ +//inflate_huft * FAR *t; /* result: starting table */ +//uIntf *m; /* maximum lookup bits, returns actual */ +//inflate_huft *hp; /* space for trees */ +//uInt *hn; /* hufts used in space */ +//uIntf *v; /* working area: values in order of bit length */ +/* Given a list of code lengths and a maximum table size, make a set of + tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR + if the given code set is incomplete (the tables are still built in this + case), Z_DATA_ERROR if the input is invalid (an over-subscribed set of + lengths), or Z_MEM_ERROR if not enough memory. */ +{ + + uInt a; /* counter for codes of length k */ + uInt c[BMAX+1]; /* bit length count table */ + uInt f; /* i repeats in table every f entries */ + int g; /* maximum code length */ + int h; /* table level */ + register uInt i; /* counter, current code */ + register uInt j; /* counter */ + register int k; /* number of bits in current code */ + int l; /* bits per table (returned in m) */ + uInt mask; /* (1 << w) - 1, to avoid cc -O bug on HP */ + register uIntf *p; /* pointer into c[], b[], or v[] */ + inflate_huft *q; /* points to current table */ + struct inflate_huft_s r; /* table entry for structure assignment */ + inflate_huft *u[BMAX]; /* table stack */ + register int w; /* bits before this table == (l * h) */ + uInt x[BMAX+1]; /* bit offsets, then code stack */ + uIntf *xp; /* pointer into x */ + int y; /* number of dummy codes added */ + uInt z; /* number of entries in current table */ + + + /* Generate counts for each bit length */ + p = c; +#define C0 *p++ = 0; +#define C2 C0 C0 C0 C0 +#define C4 C2 C2 C2 C2 + C4 /* clear c[]--assume BMAX+1 is 16 */ + p = b; i = n; + do { + c[*p++]++; /* assume all entries <= BMAX */ + } while (--i); + if (c[0] == n) /* null input--all zero length codes */ + { + *t = (inflate_huft *)Z_NULL; + *m = 0; + return Z_OK; + } + + + /* Find minimum and maximum length, bound *m by those */ + l = *m; + for (j = 1; j <= BMAX; j++) + if (c[j]) + break; + k = j; /* minimum code length */ + if ((uInt)l < j) + l = j; + for (i = BMAX; i; i--) + if (c[i]) + break; + g = i; /* maximum code length */ + if ((uInt)l > i) + l = i; + *m = l; + + + /* Adjust last length count to fill out codes, if needed */ + for (y = 1 << j; j < i; j++, y <<= 1) + if ((y -= c[j]) < 0) + return Z_DATA_ERROR; + if ((y -= c[i]) < 0) + return Z_DATA_ERROR; + c[i] += y; + + + /* Generate starting offsets into the value table for each length */ + x[1] = j = 0; + p = c + 1; xp = x + 2; + while (--i) { /* note that i == g from above */ + *xp++ = (j += *p++); + } + + + /* Make a table of values in order of bit lengths */ + p = b; i = 0; + do { + if ((j = *p++) != 0) + v[x[j]++] = i; + } while (++i < n); + n = x[g]; /* set n to length of v */ + + + /* Generate the Huffman codes and for each, make the table entries */ + x[0] = i = 0; /* first Huffman code is zero */ + p = v; /* grab values in bit order */ + h = -1; /* no tables yet--level -1 */ + w = -l; /* bits decoded == (l * h) */ + u[0] = (inflate_huft *)Z_NULL; /* just to keep compilers happy */ + q = (inflate_huft *)Z_NULL; /* ditto */ + z = 0; /* ditto */ + + /* go through the bit lengths (k already is bits in shortest code) */ + for (; k <= g; k++) + { + a = c[k]; + while (a--) + { + /* here i is the Huffman code of length k bits for value *p */ + /* make tables up to required level */ + while (k > w + l) + { + h++; + w += l; /* previous table always l bits */ + + /* compute minimum size table less than or equal to l bits */ + z = g - w; + z = z > (uInt)l ? (uInt)l : z; /* table size upper limit */ + if ((f = 1 << (j = k - w)) > a + 1) /* try a k-w bit table */ + { /* too few codes for k-w bit table */ + f -= a + 1; /* deduct codes from patterns left */ + xp = c + k; + if (j < z) + while (++j < z) /* try smaller tables up to z bits */ + { + if ((f <<= 1) <= *++xp) + break; /* enough codes to use up j bits */ + f -= *xp; /* else deduct codes from patterns */ + } + } + z = 1 << j; /* table entries for j-bit table */ + + /* allocate new table */ + if (*hn + z > MANY) /* (note: doesn't matter for fixed) */ + return Z_MEM_ERROR; /* not enough memory */ + u[h] = q = hp + *hn; + *hn += z; + + /* connect to last table, if there is one */ + if (h) + { + x[h] = i; /* save pattern for backing up */ + r.bits = (Byte)l; /* bits to dump before this table */ + r.exop = (Byte)j; /* bits in this table */ + j = i >> (w - l); + r.base = (uInt)(q - u[h-1] - j); /* offset to this table */ + u[h-1][j] = r; /* connect to last table */ + } + else + *t = q; /* first table is returned result */ + } + + /* set up table entry in r */ + r.bits = (Byte)(k - w); + if (p >= v + n) + r.exop = 128 + 64; /* out of values--invalid code */ + else if (*p < s) + { + r.exop = (Byte)(*p < 256 ? 0 : 32 + 64); /* 256 is end-of-block */ + r.base = *p++; /* simple code is just the value */ + } + else + { + r.exop = (Byte)(e[*p - s] + 16 + 64);/* non-simple--look up in lists */ + r.base = d[*p++ - s]; + } + + /* fill code-like entries with r */ + f = 1 << (k - w); + for (j = i >> w; j < z; j += f) + q[j] = r; + + /* backwards increment the k-bit code i */ + for (j = 1 << (k - 1); i & j; j >>= 1) + i ^= j; + i ^= j; + + /* backup over finished tables */ + mask = (1 << w) - 1; /* needed on HP, cc -O bug */ + while ((i & mask) != x[h]) + { + h--; /* don't need to update q */ + w -= l; + mask = (1 << w) - 1; + } + } + } + + + /* Return Z_BUF_ERROR if we were given an incomplete table */ + return y != 0 && g != 1 ? Z_BUF_ERROR : Z_OK; +} + + +int inflate_trees_bits(uIntf *c, uIntf *bb, inflate_huft * FAR *tb, inflate_huft *hp, z_streamp z) +//uIntf *c; /* 19 code lengths */ +//uIntf *bb; /* bits tree desired/actual depth */ +//inflate_huft * FAR *tb; /* bits tree result */ +//inflate_huft *hp; /* space for trees */ +//z_streamp z; /* for messages */ +{ + int r; + uInt hn = 0; /* hufts used in space */ + uIntf *v; /* work area for huft_build */ + + if ((v = (uIntf*)ZALLOC(z, 19, sizeof(uInt))) == Z_NULL) + return Z_MEM_ERROR; + r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, + tb, bb, hp, &hn, v); + if (r == Z_DATA_ERROR) + z->msg = (char*)"oversubscribed dynamic bit lengths tree"; + else if (r == Z_BUF_ERROR || *bb == 0) + { + z->msg = (char*)"incomplete dynamic bit lengths tree"; + r = Z_DATA_ERROR; + } + ZFREE(z, v); + return r; +} + + +int inflate_trees_dynamic(uInt nl, uInt nd, uIntf *c, uIntf *bl, uIntf *bd, inflate_huft * FAR *tl, inflate_huft * FAR *td, inflate_huft *hp, z_streamp z) +//uInt nl; /* number of literal/length codes */ +//uInt nd; /* number of distance codes */ +//uIntf *c; /* that many (total) code lengths */ +//uIntf *bl; /* literal desired/actual bit depth */ +//uIntf *bd; /* distance desired/actual bit depth */ +//inflate_huft * FAR *tl; /* literal/length tree result */ +//inflate_huft * FAR *td; /* distance tree result */ +//inflate_huft *hp; /* space for trees */ +//z_streamp z; /* for messages */ +{ + int r; + uInt hn = 0; /* hufts used in space */ + uIntf *v; /* work area for huft_build */ + + /* allocate work area */ + if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) + return Z_MEM_ERROR; + + /* build literal/length tree */ + r = huft_build(c, nl, 257, cplens, cplext, tl, bl, hp, &hn, v); + if (r != Z_OK || *bl == 0) + { + if (r == Z_DATA_ERROR) + z->msg = (char*)"oversubscribed literal/length tree"; + else if (r != Z_MEM_ERROR) + { + z->msg = (char*)"incomplete literal/length tree"; + r = Z_DATA_ERROR; + } + ZFREE(z, v); + return r; + } + + /* build distance tree */ + r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, hp, &hn, v); + if (r != Z_OK || (*bd == 0 && nl > 257)) + { + if (r == Z_DATA_ERROR) + z->msg = (char*)"oversubscribed distance tree"; + else if (r == Z_BUF_ERROR) { +#ifdef PKZIP_BUG_WORKAROUND + r = Z_OK; + } +#else + z->msg = (char*)"incomplete distance tree"; + r = Z_DATA_ERROR; + } + else if (r != Z_MEM_ERROR) + { + z->msg = (char*)"empty distance tree with lengths"; + r = Z_DATA_ERROR; + } + ZFREE(z, v); + return r; +#endif + } + + /* done */ + ZFREE(z, v); + return Z_OK; +} + + +/* build fixed tables only once--keep them here */ +#ifdef BUILDFIXED +local int fixed_built = 0; +#define FIXEDH 544 /* number of hufts used by fixed tables */ +local inflate_huft fixed_mem[FIXEDH]; +local uInt fixed_bl; +local uInt fixed_bd; +local inflate_huft *fixed_tl; +local inflate_huft *fixed_td; +#else +#include "inffixed.h" +#endif + + +int inflate_trees_fixed(uIntf *bl, uIntf *bd, inflate_huft * FAR *tl, inflate_huft * FAR *td, z_streamp /*z*/) +//uIntf *bl; /* literal desired/actual bit depth */ +//uIntf *bd; /* distance desired/actual bit depth */ +//inflate_huft * FAR *tl; /* literal/length tree result */ +//inflate_huft * FAR *td; /* distance tree result */ +//z_streamp z; /* for memory allocation */ +{ +#ifdef BUILDFIXED + /* build fixed tables if not already */ + if (!fixed_built) + { + int k; /* temporary variable */ + uInt f = 0; /* number of hufts used in fixed_mem */ + uIntf *c; /* length list for huft_build */ + uIntf *v; /* work area for huft_build */ + + /* allocate memory */ + if ((c = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) + return Z_MEM_ERROR; + if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) + { + ZFREE(z, c); + return Z_MEM_ERROR; + } + + /* literal table */ + for (k = 0; k < 144; k++) + c[k] = 8; + for (; k < 256; k++) + c[k] = 9; + for (; k < 280; k++) + c[k] = 7; + for (; k < 288; k++) + c[k] = 8; + fixed_bl = 9; + huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl, + fixed_mem, &f, v); + + /* distance table */ + for (k = 0; k < 30; k++) + c[k] = 5; + fixed_bd = 5; + huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd, + fixed_mem, &f, v); + + /* done */ + ZFREE(z, v); + ZFREE(z, c); + fixed_built = 1; + } +#endif + *bl = fixed_bl; + *bd = fixed_bd; + *tl = fixed_tl; + *td = fixed_td; + return Z_OK; +} diff --git a/source/visualization/HepRep/src/infutil.cc b/source/visualization/HepRep/src/infutil.cc new file mode 100644 index 0000000000..7d3a939fdd --- /dev/null +++ b/source/visualization/HepRep/src/infutil.cc @@ -0,0 +1,87 @@ +/* inflate_util.c -- data and routines common to blocks and codes + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +#include "zutil.h" +#include "infblock.h" +#include "inftrees.h" +#include "infcodes.h" +#include "infutil.h" + +struct inflate_codes_state {int dummy;}; /* for buggy compilers */ + +/* And'ing with mask[n] masks the lower n bits */ +uInt inflate_mask[17] = { + 0x0000, + 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, + 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff +}; + + +/* copy as much as possible from the sliding window to the output area */ +int inflate_flush(inflate_blocks_statef *s, z_streamp z, int r) +//inflate_blocks_statef *s; +//z_streamp z; +//int r; +{ + uInt n; + Bytef *p; + Bytef *q; + + /* local copies of source and destination pointers */ + p = z->next_out; + q = s->read; + + /* compute number of bytes to copy as far as end of window */ + n = (uInt)((q <= s->write ? s->write : s->end) - q); + if (n > z->avail_out) n = z->avail_out; + if (n && r == Z_BUF_ERROR) r = Z_OK; + + /* update counters */ + z->avail_out -= n; + z->total_out += n; + + /* update check information */ + if (s->checkfn != Z_NULL) + z->adler = s->check = (*s->checkfn)(s->check, q, n); + + /* copy as far as end of window */ + zmemcpy(p, q, n); + p += n; + q += n; + + /* see if more to copy at beginning of window */ + if (q == s->end) + { + /* wrap pointers */ + q = s->window; + if (s->write == s->end) + s->write = s->window; + + /* compute bytes to copy */ + n = (uInt)(s->write - q); + if (n > z->avail_out) n = z->avail_out; + if (n && r == Z_BUF_ERROR) r = Z_OK; + + /* update counters */ + z->avail_out -= n; + z->total_out += n; + + /* update check information */ + if (s->checkfn != Z_NULL) + z->adler = s->check = (*s->checkfn)(s->check, q, n); + + /* copy */ + zmemcpy(p, q, n); + p += n; + q += n; + } + + /* update pointers */ + z->next_out = p; + s->read = q; + + /* done */ + return r; +} diff --git a/source/visualization/HepRep/src/trees.cc b/source/visualization/HepRep/src/trees.cc new file mode 100644 index 0000000000..fca84974fa --- /dev/null +++ b/source/visualization/HepRep/src/trees.cc @@ -0,0 +1,1214 @@ +/* trees.c -- output deflated data using Huffman coding + * Copyright (C) 1995-1998 Jean-loup Gailly + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* + * ALGORITHM + * + * The "deflation" process uses several Huffman trees. The more + * common source values are represented by shorter bit sequences. + * + * Each code tree is stored in a compressed form which is itself + * a Huffman encoding of the lengths of all the code strings (in + * ascending order by source values). The actual code strings are + * reconstructed from the lengths in the inflate process, as described + * in the deflate specification. + * + * REFERENCES + * + * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification". + * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc + * + * Storer, James A. + * Data Compression: Methods and Theory, pp. 49-50. + * Computer Science Press, 1988. ISBN 0-7167-8156-5. + * + * Sedgewick, R. + * Algorithms, p290. + * Addison-Wesley, 1983. ISBN 0-201-06672-6. + */ + +/* @(#) $Id: trees.cc,v 1.2 2003/07/11 07:45:14 duns Exp $ */ + +/* #define GEN_TREES_H */ + +#include "deflate.h" + +#ifdef DEBUG +# include +#endif + +/* =========================================================================== + * Constants + */ + +#define MAX_BL_BITS 7 +/* Bit length codes must not exceed MAX_BL_BITS bits */ + +#define END_BLOCK 256 +/* end of block literal code */ + +#define REP_3_6 16 +/* repeat previous bit length 3-6 times (2 bits of repeat count) */ + +#define REPZ_3_10 17 +/* repeat a zero length 3-10 times (3 bits of repeat count) */ + +#define REPZ_11_138 18 +/* repeat a zero length 11-138 times (7 bits of repeat count) */ + +local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */ + = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}; + +local const int extra_dbits[D_CODES] /* extra bits for each distance code */ + = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */ + = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}; + +local const uch bl_order[BL_CODES] + = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}; +/* The lengths of the bit length codes are sent in order of decreasing + * probability, to avoid transmitting the lengths for unused bit length codes. + */ + +#define Buf_size (8 * 2*sizeof(char)) +/* Number of bits used within bi_buf. (bi_buf might be implemented on + * more than 16 bits on some systems.) + */ + +/* =========================================================================== + * Local data. These are initialized only once. + */ + +#define DIST_CODE_LEN 512 /* see definition of array dist_code below */ + +#if defined(GEN_TREES_H) || !defined(STDC) +/* non ANSI compilers may not accept trees.h */ + +local ct_data static_ltree[L_CODES+2]; +/* The static literal tree. Since the bit lengths are imposed, there is no + * need for the L_CODES extra codes used during heap construction. However + * The codes 286 and 287 are needed to build a canonical tree (see _tr_init + * below). + */ + +local ct_data static_dtree[D_CODES]; +/* The static distance tree. (Actually a trivial tree since all codes use + * 5 bits.) + */ + +uch _dist_code[DIST_CODE_LEN]; +/* Distance codes. The first 256 values correspond to the distances + * 3 .. 258, the last 256 values correspond to the top 8 bits of + * the 15 bit distances. + */ + +uch _length_code[MAX_MATCH-MIN_MATCH+1]; +/* length code for each normalized match length (0 == MIN_MATCH) */ + +local int base_length[LENGTH_CODES]; +/* First normalized length for each code (0 = MIN_MATCH) */ + +local int base_dist[D_CODES]; +/* First normalized distance for each code (0 = distance of 1) */ + +#else +# include "trees.h" +#endif /* GEN_TREES_H */ + +struct static_tree_desc_s { + const ct_data *static_tree; /* static tree or NULL */ + const intf *extra_bits; /* extra bits for each code or NULL */ + int extra_base; /* base index for extra_bits */ + int elems; /* max number of elements in the tree */ + int max_length; /* max bit length for the codes */ +}; + +local static_tree_desc static_l_desc = +{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS}; + +local static_tree_desc static_d_desc = +{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS}; + +local static_tree_desc static_bl_desc = +{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS}; + +/* =========================================================================== + * Local (static) routines in this file. + */ + +local void tr_static_init OF((void)); +local void init_block OF((deflate_state *s)); +local void pqdownheap OF((deflate_state *s, ct_data *tree, int k)); +local void gen_bitlen OF((deflate_state *s, tree_desc *desc)); +local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count)); +local void build_tree OF((deflate_state *s, tree_desc *desc)); +local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code)); +local void send_tree OF((deflate_state *s, ct_data *tree, int max_code)); +local int build_bl_tree OF((deflate_state *s)); +local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, + int blcodes)); +local void compress_block OF((deflate_state *s, ct_data *ltree, + ct_data *dtree)); +local void set_data_type OF((deflate_state *s)); +local unsigned bi_reverse OF((unsigned value, int length)); +local void bi_windup OF((deflate_state *s)); +local void bi_flush OF((deflate_state *s)); +local void copy_block OF((deflate_state *s, charf *buf, unsigned len, + int header)); + +#ifdef GEN_TREES_H +local void gen_trees_header OF((void)); +#endif + +#ifndef DEBUG +# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) + /* Send a code of the given tree. c and tree must not have side effects */ + +#else /* DEBUG */ +# define send_code(s, c, tree) \ + { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \ + send_bits(s, tree[c].Code, tree[c].Len); } +#endif + +/* =========================================================================== + * Output a short LSB first on the stream. + * IN assertion: there is enough room in pendingBuf. + */ +#define put_short(s, w) { \ + put_byte(s, (uch)((w) & 0xff)); \ + put_byte(s, (uch)((ush)(w) >> 8)); \ +} + +/* =========================================================================== + * Send a value on a given number of bits. + * IN assertion: length <= 16 and value fits in length bits. + */ +#ifdef DEBUG +local void send_bits OF((deflate_state *s, int value, int length)); + +local void send_bits(deflate_state *s, int value, int length) +// deflate_state *s; +// int value; /* value to send */ +// int length; /* number of bits */ +{ + Tracevv((stderr," l %2d v %4x ", length, value)); + Assert(length > 0 && length <= 15, "invalid length"); + s->bits_sent += (ulg)length; + + /* If not enough room in bi_buf, use (valid) bits from bi_buf and + * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid)) + * unused bits in value. + */ + if (s->bi_valid > (int)Buf_size - length) { + s->bi_buf |= (value << s->bi_valid); + put_short(s, s->bi_buf); + s->bi_buf = (ush)value >> (Buf_size - s->bi_valid); + s->bi_valid += length - Buf_size; + } else { + s->bi_buf |= value << s->bi_valid; + s->bi_valid += length; + } +} +#else /* !DEBUG */ + +#define send_bits(s, value, length) \ +{ int len = length;\ + if (s->bi_valid > (int)Buf_size - len) {\ + int val = value;\ + s->bi_buf |= (val << s->bi_valid);\ + put_short(s, s->bi_buf);\ + s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\ + s->bi_valid += len - Buf_size;\ + } else {\ + s->bi_buf |= (value) << s->bi_valid;\ + s->bi_valid += len;\ + }\ +} +#endif /* DEBUG */ + + +#define MAX(a,b) (a >= b ? a : b) +/* the arguments must not have side effects */ + +/* =========================================================================== + * Initialize the various 'constant' tables. + */ +local void tr_static_init() +{ +#if defined(GEN_TREES_H) || !defined(STDC) + static int static_init_done = 0; + int n; /* iterates over tree elements */ + int bits; /* bit counter */ + int length; /* length value */ + int code; /* code value */ + int dist; /* distance index */ + ush bl_count[MAX_BITS+1]; + /* number of codes at each bit length for an optimal tree */ + + if (static_init_done) return; + + /* For some embedded targets, global variables are not initialized: */ + static_l_desc.static_tree = static_ltree; + static_l_desc.extra_bits = extra_lbits; + static_d_desc.static_tree = static_dtree; + static_d_desc.extra_bits = extra_dbits; + static_bl_desc.extra_bits = extra_blbits; + + /* Initialize the mapping length (0..255) -> length code (0..28) */ + length = 0; + for (code = 0; code < LENGTH_CODES-1; code++) { + base_length[code] = length; + for (n = 0; n < (1< dist code (0..29) */ + dist = 0; + for (code = 0 ; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ + for ( ; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { + _dist_code[256 + dist++] = (uch)code; + } + } + Assert (dist == 256, "tr_static_init: 256+dist != 512"); + + /* Construct the codes of the static literal tree */ + for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0; + n = 0; + while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++; + while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++; + while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++; + while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++; + /* Codes 286 and 287 do not exist, but we must include them in the + * tree construction to get a canonical Huffman tree (longest code + * all ones) + */ + gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count); + + /* The static distance tree is trivial: */ + for (n = 0; n < D_CODES; n++) { + static_dtree[n].Len = 5; + static_dtree[n].Code = bi_reverse((unsigned)n, 5); + } + static_init_done = 1; + +# ifdef GEN_TREES_H + gen_trees_header(); +# endif +#endif /* defined(GEN_TREES_H) || !defined(STDC) */ +} + +/* =========================================================================== + * Genererate the file trees.h describing the static trees. + */ +#ifdef GEN_TREES_H +# ifndef DEBUG +# include +# endif + +# define SEPARATOR(i, last, width) \ + ((i) == (last)? "\n};\n\n" : \ + ((i) % (width) == (width)-1 ? ",\n" : ", ")) + +void gen_trees_header() +{ + FILE *header = fopen("trees.h", "w"); + int i; + + Assert (header != NULL, "Can't open trees.h"); + fprintf(header, + "/* header created automatically with -DGEN_TREES_H */\n\n"); + + fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n"); + for (i = 0; i < L_CODES+2; i++) { + fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code, + static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5)); + } + + fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n"); + for (i = 0; i < D_CODES; i++) { + fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code, + static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5)); + } + + fprintf(header, "const uch _dist_code[DIST_CODE_LEN] = {\n"); + for (i = 0; i < DIST_CODE_LEN; i++) { + fprintf(header, "%2u%s", _dist_code[i], + SEPARATOR(i, DIST_CODE_LEN-1, 20)); + } + + fprintf(header, "const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {\n"); + for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) { + fprintf(header, "%2u%s", _length_code[i], + SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20)); + } + + fprintf(header, "local const int base_length[LENGTH_CODES] = {\n"); + for (i = 0; i < LENGTH_CODES; i++) { + fprintf(header, "%1u%s", base_length[i], + SEPARATOR(i, LENGTH_CODES-1, 20)); + } + + fprintf(header, "local const int base_dist[D_CODES] = {\n"); + for (i = 0; i < D_CODES; i++) { + fprintf(header, "%5u%s", base_dist[i], + SEPARATOR(i, D_CODES-1, 10)); + } + + fclose(header); +} +#endif /* GEN_TREES_H */ + +/* =========================================================================== + * Initialize the tree data structures for a new zlib stream. + */ +void _tr_init(deflate_state *s) +// deflate_state *s; +{ + tr_static_init(); + + s->l_desc.dyn_tree = s->dyn_ltree; + s->l_desc.stat_desc = &static_l_desc; + + s->d_desc.dyn_tree = s->dyn_dtree; + s->d_desc.stat_desc = &static_d_desc; + + s->bl_desc.dyn_tree = s->bl_tree; + s->bl_desc.stat_desc = &static_bl_desc; + + s->bi_buf = 0; + s->bi_valid = 0; + s->last_eob_len = 8; /* enough lookahead for inflate */ +#ifdef DEBUG + s->compressed_len = 0L; + s->bits_sent = 0L; +#endif + + /* Initialize the first block of the first file: */ + init_block(s); +} + +/* =========================================================================== + * Initialize a new block. + */ +local void init_block(deflate_state *s) +// deflate_state *s; +{ + int n; /* iterates over tree elements */ + + /* Initialize the trees. */ + for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; + for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; + for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; + + s->dyn_ltree[END_BLOCK].Freq = 1; + s->opt_len = s->static_len = 0L; + s->last_lit = s->matches = 0; +} + +#define SMALLEST 1 +/* Index within the heap array of least frequent node in the Huffman tree */ + + +/* =========================================================================== + * Remove the smallest element from the heap and recreate the heap with + * one less element. Updates heap and heap_len. + */ +#define pqremove(s, tree, top) \ +{\ + top = s->heap[SMALLEST]; \ + s->heap[SMALLEST] = s->heap[s->heap_len--]; \ + pqdownheap(s, tree, SMALLEST); \ +} + +/* =========================================================================== + * Compares to subtrees, using the tree depth as tie breaker when + * the subtrees have equal frequency. This minimizes the worst case length. + */ +#define smaller(tree, n, m, depth) \ + (tree[n].Freq < tree[m].Freq || \ + (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m])) + +/* =========================================================================== + * Restore the heap property by moving down the tree starting at node k, + * exchanging a node with the smallest of its two sons if necessary, stopping + * when the heap property is re-established (each father smaller than its + * two sons). + */ +local void pqdownheap(deflate_state *s, ct_data *tree, int k) +// deflate_state *s; +// ct_data *tree; /* the tree to restore */ +// int k; /* node to move down */ +{ + int v = s->heap[k]; + int j = k << 1; /* left son of k */ + while (j <= s->heap_len) { + /* Set j to the smallest of the two sons: */ + if (j < s->heap_len && + smaller(tree, s->heap[j+1], s->heap[j], s->depth)) { + j++; + } + /* Exit if v is smaller than both sons */ + if (smaller(tree, v, s->heap[j], s->depth)) break; + + /* Exchange v with the smallest son */ + s->heap[k] = s->heap[j]; k = j; + + /* And continue down the tree, setting j to the left son of k */ + j <<= 1; + } + s->heap[k] = v; +} + +/* =========================================================================== + * Compute the optimal bit lengths for a tree and update the total bit length + * for the current block. + * IN assertion: the fields freq and dad are set, heap[heap_max] and + * above are the tree nodes sorted by increasing frequency. + * OUT assertions: the field len is set to the optimal bit length, the + * array bl_count contains the frequencies for each bit length. + * The length opt_len is updated; static_len is also updated if stree is + * not null. + */ +local void gen_bitlen(deflate_state *s, tree_desc *desc) +// deflate_state *s; +// tree_desc *desc; /* the tree descriptor */ +{ + ct_data *tree = desc->dyn_tree; + int max_code = desc->max_code; + const ct_data *stree = desc->stat_desc->static_tree; + const intf *extra = desc->stat_desc->extra_bits; + int base = desc->stat_desc->extra_base; + int max_length = desc->stat_desc->max_length; + int h; /* heap index */ + int n, m; /* iterate over the tree elements */ + int bits; /* bit length */ + int xbits; /* extra bits */ + ush f; /* frequency */ + int overflow = 0; /* number of elements with bit length too large */ + + for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0; + + /* In a first pass, compute the optimal bit lengths (which may + * overflow in the case of the bit length tree). + */ + tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */ + + for (h = s->heap_max+1; h < HEAP_SIZE; h++) { + n = s->heap[h]; + bits = tree[tree[n].Dad].Len + 1; + if (bits > max_length) bits = max_length, overflow++; + tree[n].Len = (ush)bits; + /* We overwrite tree[n].Dad which is no longer needed */ + + if (n > max_code) continue; /* not a leaf node */ + + s->bl_count[bits]++; + xbits = 0; + if (n >= base) xbits = extra[n-base]; + f = tree[n].Freq; + s->opt_len += (ulg)f * (bits + xbits); + if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits); + } + if (overflow == 0) return; + + Trace((stderr,"\nbit length overflow\n")); + /* This happens for example on obj2 and pic of the Calgary corpus */ + + /* Find the first bit length which could increase: */ + do { + bits = max_length-1; + while (s->bl_count[bits] == 0) bits--; + s->bl_count[bits]--; /* move one leaf down the tree */ + s->bl_count[bits+1] += 2; /* move one overflow item as its brother */ + s->bl_count[max_length]--; + /* The brother of the overflow item also moves one step up, + * but this does not affect bl_count[max_length] + */ + overflow -= 2; + } while (overflow > 0); + + /* Now recompute all bit lengths, scanning in increasing frequency. + * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all + * lengths instead of fixing only the wrong ones. This idea is taken + * from 'ar' written by Haruhiko Okumura.) + */ + for (bits = max_length; bits != 0; bits--) { + n = s->bl_count[bits]; + while (n != 0) { + m = s->heap[--h]; + if (m > max_code) continue; + if (tree[m].Len != (unsigned) bits) { + Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); + s->opt_len += ((long)bits - (long)tree[m].Len) + *(long)tree[m].Freq; + tree[m].Len = (ush)bits; + } + n--; + } + } +} + +/* =========================================================================== + * Generate the codes for a given tree and bit counts (which need not be + * optimal). + * IN assertion: the array bl_count contains the bit length statistics for + * the given tree and the field len is set for all tree elements. + * OUT assertion: the field code is set for all tree elements of non + * zero code length. + */ +local void gen_codes (ct_data *tree, int max_code, ushf *bl_count) +// ct_data *tree; /* the tree to decorate */ +// int max_code; /* largest code with non zero frequency */ +// ushf *bl_count; /* number of codes at each bit length */ +{ + ush next_code[MAX_BITS+1]; /* next code value for each bit length */ + ush code = 0; /* running code value */ + int bits; /* bit index */ + int n; /* code index */ + + /* The distribution counts are first used to generate the code values + * without bit reversal. + */ + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = (code + bl_count[bits-1]) << 1; + } + /* Check that the bit counts in bl_count are consistent. The last code + * must be all ones. + */ + Assert (code + bl_count[MAX_BITS]-1 == (1<dyn_tree; + const ct_data *stree = desc->stat_desc->static_tree; + int elems = desc->stat_desc->elems; + int n, m; /* iterate over heap elements */ + int max_code = -1; /* largest code with non zero frequency */ + int node; /* new node being created */ + + /* Construct the initial heap, with least frequent element in + * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. + * heap[0] is not used. + */ + s->heap_len = 0, s->heap_max = HEAP_SIZE; + + for (n = 0; n < elems; n++) { + if (tree[n].Freq != 0) { + s->heap[++(s->heap_len)] = max_code = n; + s->depth[n] = 0; + } else { + tree[n].Len = 0; + } + } + + /* The pkzip format requires that at least one distance code exists, + * and that at least one bit should be sent even if there is only one + * possible code. So to avoid special checks later on we force at least + * two codes of non zero frequency. + */ + while (s->heap_len < 2) { + node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0); + tree[node].Freq = 1; + s->depth[node] = 0; + s->opt_len--; if (stree) s->static_len -= stree[node].Len; + /* node is 0 or 1 so it does not have extra bits */ + } + desc->max_code = max_code; + + /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, + * establish sub-heaps of increasing lengths: + */ + for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n); + + /* Construct the Huffman tree by repeatedly combining the least two + * frequent nodes. + */ + node = elems; /* next internal node of the tree */ + do { + pqremove(s, tree, n); /* n = node of least frequency */ + m = s->heap[SMALLEST]; /* m = node of next least frequency */ + + s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */ + s->heap[--(s->heap_max)] = m; + + /* Create a new node father of n and m */ + tree[node].Freq = tree[n].Freq + tree[m].Freq; + s->depth[node] = (uch) (MAX(s->depth[n], s->depth[m]) + 1); + tree[n].Dad = tree[m].Dad = (ush)node; +#ifdef DUMP_BL_TREE + if (tree == s->bl_tree) { + fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)", + node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq); + } +#endif + /* and insert the new node in the heap */ + s->heap[SMALLEST] = node++; + pqdownheap(s, tree, SMALLEST); + + } while (s->heap_len >= 2); + + s->heap[--(s->heap_max)] = s->heap[SMALLEST]; + + /* At this point, the fields freq and dad are set. We can now + * generate the bit lengths. + */ + gen_bitlen(s, (tree_desc *)desc); + + /* The field len is now set, we can generate the bit codes */ + gen_codes ((ct_data *)tree, max_code, s->bl_count); +} + +/* =========================================================================== + * Scan a literal or distance tree to determine the frequencies of the codes + * in the bit length tree. + */ +local void scan_tree (deflate_state *s, ct_data *tree, int max_code) +// deflate_state *s; +// ct_data *tree; /* the tree to be scanned */ +// int max_code; /* and its largest code of non zero frequency */ +{ + int n; /* iterates over all tree elements */ + int prevlen = -1; /* last emitted length */ + int curlen; /* length of current code */ + int nextlen = tree[0].Len; /* length of next code */ + int count = 0; /* repeat count of the current code */ + int max_count = 7; /* max repeat count */ + int min_count = 4; /* min repeat count */ + + if (nextlen == 0) max_count = 138, min_count = 3; + tree[max_code+1].Len = (ush)0xffff; /* guard */ + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; nextlen = tree[n+1].Len; + if (++count < max_count && curlen == nextlen) { + continue; + } else if (count < min_count) { + s->bl_tree[curlen].Freq += count; + } else if (curlen != 0) { + if (curlen != prevlen) s->bl_tree[curlen].Freq++; + s->bl_tree[REP_3_6].Freq++; + } else if (count <= 10) { + s->bl_tree[REPZ_3_10].Freq++; + } else { + s->bl_tree[REPZ_11_138].Freq++; + } + count = 0; prevlen = curlen; + if (nextlen == 0) { + max_count = 138, min_count = 3; + } else if (curlen == nextlen) { + max_count = 6, min_count = 3; + } else { + max_count = 7, min_count = 4; + } + } +} + +/* =========================================================================== + * Send a literal or distance tree in compressed form, using the codes in + * bl_tree. + */ +local void send_tree (deflate_state *s, ct_data *tree, int max_code) +// deflate_state *s; +// ct_data *tree; /* the tree to be scanned */ +// int max_code; /* and its largest code of non zero frequency */ +{ + int n; /* iterates over all tree elements */ + int prevlen = -1; /* last emitted length */ + int curlen; /* length of current code */ + int nextlen = tree[0].Len; /* length of next code */ + int count = 0; /* repeat count of the current code */ + int max_count = 7; /* max repeat count */ + int min_count = 4; /* min repeat count */ + + /* tree[max_code+1].Len = -1; */ /* guard already set */ + if (nextlen == 0) max_count = 138, min_count = 3; + + for (n = 0; n <= max_code; n++) { + curlen = nextlen; nextlen = tree[n+1].Len; + if (++count < max_count && curlen == nextlen) { + continue; + } else if (count < min_count) { + do { send_code(s, curlen, s->bl_tree); } while (--count != 0); + + } else if (curlen != 0) { + if (curlen != prevlen) { + send_code(s, curlen, s->bl_tree); count--; + } + Assert(count >= 3 && count <= 6, " 3_6?"); + send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2); + + } else if (count <= 10) { + send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3); + + } else { + send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7); + } + count = 0; prevlen = curlen; + if (nextlen == 0) { + max_count = 138, min_count = 3; + } else if (curlen == nextlen) { + max_count = 6, min_count = 3; + } else { + max_count = 7, min_count = 4; + } + } +} + +/* =========================================================================== + * Construct the Huffman tree for the bit lengths and return the index in + * bl_order of the last bit length code to send. + */ +local int build_bl_tree(deflate_state *s) +// deflate_state *s; +{ + int max_blindex; /* index of last bit length code of non zero freq */ + + /* Determine the bit length frequencies for literal and distance trees */ + scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code); + scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code); + + /* Build the bit length tree: */ + build_tree(s, (tree_desc *)(&(s->bl_desc))); + /* opt_len now includes the length of the tree representations, except + * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. + */ + + /* Determine the number of bit length codes to send. The pkzip format + * requires that at least 4 bit length codes be sent. (appnote.txt says + * 3 but the actual value used is 4.) + */ + for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { + if (s->bl_tree[bl_order[max_blindex]].Len != 0) break; + } + /* Update opt_len to include the bit length tree and counts */ + s->opt_len += 3*(max_blindex+1) + 5+5+4; + Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", + s->opt_len, s->static_len)); + + return max_blindex; +} + +/* =========================================================================== + * Send the header for a block using dynamic Huffman trees: the counts, the + * lengths of the bit length codes, the literal tree and the distance tree. + * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. + */ +local void send_all_trees(deflate_state *s, int lcodes, int dcodes, int blcodes) +// deflate_state *s; +// int lcodes, dcodes, blcodes; /* number of codes for each tree */ +{ + int rank; /* index in bl_order */ + + Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); + Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, + "too many codes"); + Tracev((stderr, "\nbl counts: ")); + send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ + send_bits(s, dcodes-1, 5); + send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ + for (rank = 0; rank < blcodes; rank++) { + Tracev((stderr, "\nbl code %2d ", bl_order[rank])); + send_bits(s, s->bl_tree[bl_order[rank]].Len, 3); + } + Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); + + send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */ + Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); + + send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */ + Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); +} + +/* =========================================================================== + * Send a stored block + */ +void _tr_stored_block(deflate_state *s, charf *buf, ulg stored_len, int eof) +// deflate_state *s; +// charf *buf; /* input block */ +// ulg stored_len; /* length of input block */ +// int eof; /* true if this is the last block for a file */ +{ + send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */ +#ifdef DEBUG + s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; + s->compressed_len += (stored_len + 4) << 3; +#endif + copy_block(s, buf, (unsigned)stored_len, 1); /* with header */ +} + +/* =========================================================================== + * Send one empty static block to give enough lookahead for inflate. + * This takes 10 bits, of which 7 may remain in the bit buffer. + * The current inflate code requires 9 bits of lookahead. If the + * last two codes for the previous block (real code plus EOB) were coded + * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode + * the last real code. In this case we send two empty static blocks instead + * of one. (There are no problems if the previous block is stored or fixed.) + * To simplify the code, we assume the worst case of last real code encoded + * on one bit only. + */ +void _tr_align(deflate_state *s) +// deflate_state *s; +{ + send_bits(s, STATIC_TREES<<1, 3); + send_code(s, END_BLOCK, static_ltree); +#ifdef DEBUG + s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ +#endif + bi_flush(s); + /* Of the 10 bits for the empty block, we have already sent + * (10 - bi_valid) bits. The lookahead for the last real code (before + * the EOB of the previous block) was thus at least one plus the length + * of the EOB plus what we have just sent of the empty static block. + */ + if (1 + s->last_eob_len + 10 - s->bi_valid < 9) { + send_bits(s, STATIC_TREES<<1, 3); + send_code(s, END_BLOCK, static_ltree); +#ifdef DEBUG + s->compressed_len += 10L; +#endif + bi_flush(s); + } + s->last_eob_len = 7; +} + +/* =========================================================================== + * Determine the best encoding for the current block: dynamic trees, static + * trees or store, and output the encoded block to the zip file. + */ +void _tr_flush_block(deflate_state *s, charf *buf, ulg stored_len, int eof) +// deflate_state *s; +// charf *buf; /* input block, or NULL if too old */ +// ulg stored_len; /* length of input block */ +// int eof; /* true if this is the last block for a file */ +{ + ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ + int max_blindex = 0; /* index of last bit length code of non zero freq */ + + /* Build the Huffman trees unless a stored block is forced */ + if (s->level > 0) { + + /* Check if the file is ascii or binary */ + if (s->data_type == Z_UNKNOWN) set_data_type(s); + + /* Construct the literal and distance trees */ + build_tree(s, (tree_desc *)(&(s->l_desc))); + Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, + s->static_len)); + + build_tree(s, (tree_desc *)(&(s->d_desc))); + Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, + s->static_len)); + /* At this point, opt_len and static_len are the total bit lengths of + * the compressed block data, excluding the tree representations. + */ + + /* Build the bit length tree for the above two trees, and get the index + * in bl_order of the last bit length code to send. + */ + max_blindex = build_bl_tree(s); + + /* Determine the best encoding. Compute first the block length in bytes*/ + opt_lenb = (s->opt_len+3+7)>>3; + static_lenb = (s->static_len+3+7)>>3; + + Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", + opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, + s->last_lit)); + + if (static_lenb <= opt_lenb) opt_lenb = static_lenb; + + } else { + Assert(buf != (char*)0, "lost buf"); + opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ + } + +#ifdef FORCE_STORED + if (buf != (char*)0) { /* force stored block */ +#else + if (stored_len+4 <= opt_lenb && buf != (char*)0) { + /* 4: two words for the lengths */ +#endif + /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. + * Otherwise we can't have processed more than WSIZE input bytes since + * the last block flush, because compression would have been + * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to + * transform a block into a stored block. + */ + _tr_stored_block(s, buf, stored_len, eof); + +#ifdef FORCE_STATIC + } else if (static_lenb >= 0) { /* force static trees */ +#else + } else if (static_lenb == opt_lenb) { +#endif + send_bits(s, (STATIC_TREES<<1)+eof, 3); + compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree); +#ifdef DEBUG + s->compressed_len += 3 + s->static_len; +#endif + } else { + send_bits(s, (DYN_TREES<<1)+eof, 3); + send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1, + max_blindex+1); + compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree); +#ifdef DEBUG + s->compressed_len += 3 + s->opt_len; +#endif + } + Assert (s->compressed_len == s->bits_sent, "bad compressed size"); + /* The above check is made mod 2^32, for files larger than 512 MB + * and uLong implemented on 32 bits. + */ + init_block(s); + + if (eof) { + bi_windup(s); +#ifdef DEBUG + s->compressed_len += 7; /* align on byte boundary */ +#endif + } + Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, + s->compressed_len-7*eof)); +} + +/* =========================================================================== + * Save the match info and tally the frequency counts. Return true if + * the current block must be flushed. + */ +int _tr_tally (deflate_state *s, unsigned dist, unsigned lc) +// deflate_state *s; +// unsigned dist; /* distance of matched string */ +// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ +{ + s->d_buf[s->last_lit] = (ush)dist; + s->l_buf[s->last_lit++] = (uch)lc; + if (dist == 0) { + /* lc is the unmatched char */ + s->dyn_ltree[lc].Freq++; + } else { + s->matches++; + /* Here, lc is the match length - MIN_MATCH */ + dist--; /* dist = match distance - 1 */ + Assert((ush)dist < (ush)MAX_DIST(s) && + (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && + (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); + + s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++; + s->dyn_dtree[d_code(dist)].Freq++; + } + +#ifdef TRUNCATE_BLOCK + /* Try to guess if it is profitable to stop the current block here */ + if ((s->last_lit & 0x1fff) == 0 && s->level > 2) { + /* Compute an upper bound for the compressed length */ + ulg out_length = (ulg)s->last_lit*8L; + ulg in_length = (ulg)((long)s->strstart - s->block_start); + int dcode; + for (dcode = 0; dcode < D_CODES; dcode++) { + out_length += (ulg)s->dyn_dtree[dcode].Freq * + (5L+extra_dbits[dcode]); + } + out_length >>= 3; + Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", + s->last_lit, in_length, out_length, + 100L - out_length*100L/in_length)); + if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1; + } +#endif + return (s->last_lit == s->lit_bufsize-1); + /* We avoid equality with lit_bufsize because of wraparound at 64K + * on 16 bit machines and because stored blocks are restricted to + * 64K-1 bytes. + */ +} + +/* =========================================================================== + * Send the block data compressed using the given Huffman trees + */ +local void compress_block(deflate_state *s, ct_data *ltree, ct_data *dtree) +// deflate_state *s; +// ct_data *ltree; /* literal tree */ +// ct_data *dtree; /* distance tree */ +{ + unsigned dist; /* distance of matched string */ + int lc; /* match length or unmatched char (if dist == 0) */ + unsigned lx = 0; /* running index in l_buf */ + unsigned code; /* the code to send */ + int extra; /* number of extra bits to send */ + + if (s->last_lit != 0) do { + dist = s->d_buf[lx]; + lc = s->l_buf[lx++]; + if (dist == 0) { + send_code(s, lc, ltree); /* send a literal byte */ + Tracecv(isgraph(lc), (stderr," '%c' ", lc)); + } else { + /* Here, lc is the match length - MIN_MATCH */ + code = _length_code[lc]; + send_code(s, code+LITERALS+1, ltree); /* send the length code */ + extra = extra_lbits[code]; + if (extra != 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); /* send the extra length bits */ + } + dist--; /* dist is now the match distance - 1 */ + code = d_code(dist); + Assert (code < D_CODES, "bad d_code"); + + send_code(s, code, dtree); /* send the distance code */ + extra = extra_dbits[code]; + if (extra != 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); /* send the extra distance bits */ + } + } /* literal or match pair ? */ + + /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ + Assert(((unsigned int)s->pending) < s->lit_bufsize + 2*lx, "pendingBuf overflow"); + + } while (lx < s->last_lit); + + send_code(s, END_BLOCK, ltree); + s->last_eob_len = ltree[END_BLOCK].Len; +} + +/* =========================================================================== + * Set the data type to ASCII or BINARY, using a crude approximation: + * binary if more than 20% of the bytes are <= 6 or >= 128, ascii otherwise. + * IN assertion: the fields freq of dyn_ltree are set and the total of all + * frequencies does not exceed 64K (to fit in an int on 16 bit machines). + */ +local void set_data_type(deflate_state *s) +// deflate_state *s; +{ + int n = 0; + unsigned ascii_freq = 0; + unsigned bin_freq = 0; + while (n < 7) bin_freq += s->dyn_ltree[n++].Freq; + while (n < 128) ascii_freq += s->dyn_ltree[n++].Freq; + while (n < LITERALS) bin_freq += s->dyn_ltree[n++].Freq; + s->data_type = (Byte)(bin_freq > (ascii_freq >> 2) ? Z_BINARY : Z_ASCII); +} + +/* =========================================================================== + * Reverse the first len bits of a code, using straightforward code (a faster + * method would use a table) + * IN assertion: 1 <= len <= 15 + */ +local unsigned bi_reverse(unsigned code, int len) +// unsigned code; /* the value to invert */ +// int len; /* its bit length */ +{ + register unsigned res = 0; + do { + res |= code & 1; + code >>= 1, res <<= 1; + } while (--len > 0); + return res >> 1; +} + +/* =========================================================================== + * Flush the bit buffer, keeping at most 7 bits in it. + */ +local void bi_flush(deflate_state *s) +// deflate_state *s; +{ + if (s->bi_valid == 16) { + put_short(s, s->bi_buf); + s->bi_buf = 0; + s->bi_valid = 0; + } else if (s->bi_valid >= 8) { + put_byte(s, (Byte)s->bi_buf); + s->bi_buf >>= 8; + s->bi_valid -= 8; + } +} + +/* =========================================================================== + * Flush the bit buffer and align the output on a byte boundary + */ +local void bi_windup(deflate_state *s) +// deflate_state *s; +{ + if (s->bi_valid > 8) { + put_short(s, s->bi_buf); + } else if (s->bi_valid > 0) { + put_byte(s, (Byte)s->bi_buf); + } + s->bi_buf = 0; + s->bi_valid = 0; +#ifdef DEBUG + s->bits_sent = (s->bits_sent+7) & ~7; +#endif +} + +/* =========================================================================== + * Copy a stored block, storing first the length and its + * one's complement if requested. + */ +local void copy_block(deflate_state *s, charf *buf, unsigned len, int header) +// deflate_state *s; +// charf *buf; /* the input data */ +// unsigned len; /* its length */ +// int header; /* true if block header must be written */ +{ + bi_windup(s); /* align on byte boundary */ + s->last_eob_len = 8; /* enough lookahead for inflate */ + + if (header) { + put_short(s, (ush)len); + put_short(s, (ush)~len); +#ifdef DEBUG + s->bits_sent += 2*16; +#endif + } +#ifdef DEBUG + s->bits_sent += (ulg)len<<3; +#endif + while (len--) { + put_byte(s, *buf++); + } +} diff --git a/source/visualization/HepRep/src/uncompr.cc b/source/visualization/HepRep/src/uncompr.cc new file mode 100644 index 0000000000..46a1c7d847 --- /dev/null +++ b/source/visualization/HepRep/src/uncompr.cc @@ -0,0 +1,58 @@ +/* uncompr.c -- decompress a memory buffer + * Copyright (C) 1995-1998 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id: uncompr.cc,v 1.1 2003/07/11 06:01:45 duns Exp $ */ + +#include "zlib.h" + +/* =========================================================================== + Decompresses the source buffer into the destination buffer. sourceLen is + the byte length of the source buffer. Upon entry, destLen is the total + size of the destination buffer, which must be large enough to hold the + entire uncompressed data. (The size of the uncompressed data must have + been saved previously by the compressor and transmitted to the decompressor + by some mechanism outside the scope of this compression library.) + Upon exit, destLen is the actual size of the compressed buffer. + This function can be used to decompress a whole file at once if the + input file is mmap'ed. + + uncompress returns Z_OK if success, Z_MEM_ERROR if there was not + enough memory, Z_BUF_ERROR if there was not enough room in the output + buffer, or Z_DATA_ERROR if the input data was corrupted. +*/ +int ZEXPORT uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen) +// Bytef *dest; +// uLongf *destLen; +// const Bytef *source; +// uLong sourceLen; +{ + z_stream stream; + int err; + + stream.next_in = (Bytef*)source; + stream.avail_in = (uInt)sourceLen; + /* Check for source > 64K on 16-bit machine: */ + if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; + + stream.next_out = dest; + stream.avail_out = (uInt)*destLen; + if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; + + stream.zalloc = (alloc_func)0; + stream.zfree = (free_func)0; + + err = inflateInit(&stream); + if (err != Z_OK) return err; + + err = inflate(&stream, Z_FINISH); + if (err != Z_STREAM_END) { + inflateEnd(&stream); + return err == Z_OK ? Z_BUF_ERROR : err; + } + *destLen = stream.total_out; + + err = inflateEnd(&stream); + return err; +} diff --git a/source/visualization/HepRep/src/zadler32.cc b/source/visualization/HepRep/src/zadler32.cc new file mode 100644 index 0000000000..55d7eb4703 --- /dev/null +++ b/source/visualization/HepRep/src/zadler32.cc @@ -0,0 +1,57 @@ +/* + * @(#)zadler32.c 1.12 02/06/11 + */ + +/* + * Portions Copyright 2002 Sun Microsystems, Inc. All rights reserved. + * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + */ + +/* adler32.c -- compute the Adler-32 checksum of a data stream + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id: zadler32.cc,v 1.1 2003/07/11 06:01:45 duns Exp $ */ + +#include "zlib.h" + +#define BASE 65521L /* largest prime smaller than 65536 */ +#define NMAX 5552 +/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ + +#define DO1(buf,i) {s1 += buf[i]; s2 += s1;} +#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); +#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); +#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); +#define DO16(buf) DO8(buf,0); DO8(buf,8); + +/* ========================================================================= */ +uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len) +// uLong adler; +// const Bytef *buf; +// uInt len; +{ + unsigned long s1 = adler & 0xffff; + unsigned long s2 = (adler >> 16) & 0xffff; + int k; + + if (buf == Z_NULL) return 1L; + + while (len > 0) { + k = len < NMAX ? len : NMAX; + len -= k; + while (k >= 16) { + DO16(buf); + buf += 16; + k -= 16; + } + if (k != 0) do { + s1 += *buf++; + s2 += s1; + } while (--k); + s1 %= BASE; + s2 %= BASE; + } + return (s2 << 16) | s1; +} diff --git a/source/visualization/HepRep/src/zcrc32.cc b/source/visualization/HepRep/src/zcrc32.cc new file mode 100644 index 0000000000..e9ddb7d2e1 --- /dev/null +++ b/source/visualization/HepRep/src/zcrc32.cc @@ -0,0 +1,171 @@ +/* + * @(#)zcrc32.c 1.15 02/06/11 + */ + +/* + * Portions Copyright 2002 Sun Microsystems, Inc. All rights reserved. + * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. + */ + +/* crc32.c -- compute the CRC-32 of a data stream + * Copyright (C) 1995-1998 Mark Adler + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id: zcrc32.cc,v 1.1 2003/07/11 06:01:45 duns Exp $ */ + +#include "zlib.h" + +#define local static + +#ifdef DYNAMIC_CRC_TABLE + +local int crc_table_empty = 1; +local uLongf crc_table[256]; +local void make_crc_table OF((void)); + +/* + Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: + x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. + + Polynomials over GF(2) are represented in binary, one bit per coefficient, + with the lowest powers in the most significant bit. Then adding polynomials + is just exclusive-or, and multiplying a polynomial by x is a right shift by + one. If we call the above polynomial p, and represent a byte as the + polynomial q, also with the lowest power in the most significant bit (so the + byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + where a mod b means the remainder after dividing a by b. + + This calculation is done using the shift-register method of multiplying and + taking the remainder. The register is initialized to zero, and for each + incoming bit, x^32 is added mod p to the register if the bit is a one (where + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by + x (which is shifting right by one and adding x^32 mod p if the bit shifted + out is a one). We start with the highest power (least significant bit) of + q and repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all + the information needed to generate CRC's on data a byte at a time for all + combinations of CRC register values and incoming bytes. +*/ +local void make_crc_table() +{ + uLong c; + int n, k; + uLong poly; /* polynomial exclusive-or pattern */ + /* terms of polynomial defining this crc (except x^32): */ + static const Byte p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; + + /* make exclusive-or pattern from polynomial (0xedb88320UL) */ + poly = 0UL; + for (n = 0; n < sizeof(p)/sizeof(Byte); n++) + poly |= 1L << (31 - p[n]); + + for (n = 0; n < 256; n++) + { + c = (uLong)n; + for (k = 0; k < 8; k++) + c = c & 1 ? poly ^ (c >> 1) : c >> 1; + crc_table[n] = c; + } + crc_table_empty = 0; +} +#else +/* ======================================================================== + * Table of CRC-32's of all single-byte values (made by make_crc_table) + */ +local const uLongf crc_table[256] = { + 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, + 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, + 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, + 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, + 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, + 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, + 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, + 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, + 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, + 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, + 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, + 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, + 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, + 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, + 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, + 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, + 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, + 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, + 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, + 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, + 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, + 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, + 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, + 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, + 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, + 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, + 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, + 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, + 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, + 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, + 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, + 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, + 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, + 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, + 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, + 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, + 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, + 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, + 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, + 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, + 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, + 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, + 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, + 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, + 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, + 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, + 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, + 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, + 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, + 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, + 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, + 0x2d02ef8dUL +}; +#endif + +/* ========================================================================= + * This function can be used by asm versions of crc32() + */ +const uLongf * ZEXPORT get_crc_table() +{ +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) make_crc_table(); +#endif + return (const uLongf *)crc_table; +} + +/* ========================================================================= */ +#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8); +#define DO2(buf) DO1(buf); DO1(buf); +#define DO4(buf) DO2(buf); DO2(buf); +#define DO8(buf) DO4(buf); DO4(buf); + +/* ========================================================================= */ +uLong ZEXPORT crc32(uLong crc, const Bytef *buf, uInt len) +// uLong crc; +// const Bytef *buf; +// uInt len; +{ + if (buf == Z_NULL) return 0UL; +#ifdef DYNAMIC_CRC_TABLE + if (crc_table_empty) + make_crc_table(); +#endif + crc = crc ^ 0xffffffffUL; + while (len >= 8) + { + DO8(buf); + len -= 8; + } + if (len) do { + DO1(buf); + } while (--len); + return crc ^ 0xffffffffUL; +} diff --git a/source/visualization/HepRep/src/zipfile.cc b/source/visualization/HepRep/src/zipfile.cc new file mode 100644 index 0000000000..d0ac60da7c --- /dev/null +++ b/source/visualization/HepRep/src/zipfile.cc @@ -0,0 +1,208 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include "zipios++/fcoll.h" +#include "zipios++/zipfile.h" +#include "zipios++/zipinputstream.h" +#include "zipios++/zipios_defs.h" + +#include "backbuffer.h" + +namespace zipios { + +// +// Public +// + +ZipFile ZipFile::openEmbeddedZipFile( const string &name ) { + // open zipfile, read 4 last bytes close file + // create ZipFile object. + ifstream ifs( name.c_str(), ios::in | ios::binary ) ; + ifs.seekg( -4, ios::end ) ; + uint32 start_offset = readUint32( ifs ) ; + ifs.close() ; + return ZipFile( name, start_offset, 4 ) ; +} + + +ZipFile::ZipFile( const string &name , int s_off, int e_off + /* , ios::open_mode mode */ ) + : _vs( s_off, e_off ) { + + _filename = name ; + + ifstream _zipfile( name.c_str(), ios::in | ios::binary ) ; + init( _zipfile ) ; +} + + +FileCollection *ZipFile::clone() const { + return new ZipFile( *this ) ; +} + + +ZipFile::~ZipFile() { + close() ; +} + +void ZipFile::close() { + _valid = false ; + +} + +istream *ZipFile::getInputStream( const ConstEntryPointer &entry ) { + if ( ! _valid ) + throw InvalidStateException( "Attempt to use an invalid FileCollection" ) ; + return getInputStream( entry->getName() ) ; +} + +istream *ZipFile::getInputStream( const string &entry_name, + MatchPath matchpath ) { + if ( ! _valid ) + throw InvalidStateException( "Attempt to use an invalid ZipFile" ) ; + + ConstEntryPointer ent = getEntry( entry_name, matchpath ) ; + + if ( ent == 0 ) + return 0 ; + else + return new ZipInputStream( _filename, + static_cast< const ZipCDirEntry * >( ent.get() )-> + getLocalHeaderOffset() + _vs.startOffset() ) ; +} + + +// +// Private +// + +bool ZipFile::init( istream &_zipfile ) { + + // Check stream error state + if ( ! _zipfile ) { + setError ( "Error reading from file" ) ; + return false ; + } + + _valid = readCentralDirectory( _zipfile ) ; + + return _valid ; +} + + +bool ZipFile::readCentralDirectory ( istream &_zipfile ) { + // Find and read eocd. + if ( ! readEndOfCentralDirectory( _zipfile ) ) + throw FCollException( "Unable to find zip structure: End-of-central-directory" ) ; + + // Position read pointer to start of first entry in central dir. + _vs.vseekg( _zipfile, _eocd.offset(), ios::beg ) ; + + int entry_num = 0 ; + // Giving the default argument in the next line to keep Visual C++ quiet + _entries.resize ( _eocd.totalCount(), 0 ) ; + while ( ( entry_num < _eocd.totalCount() ) ) { + ZipCDirEntry *ent = new ZipCDirEntry ; + _entries[ entry_num ] = ent ; + _zipfile >> *ent ; + if ( ! _zipfile ) { + if ( _zipfile.bad() ) + throw IOException( "Error reading zip file while reading zip file central directory" ) ; + else if ( _zipfile.fail() ) + throw FCollException( "Zip file consistency problem. Failure while reading zip file central directory" ) ; + else if ( _zipfile.eof() ) + throw IOException( "Premature end of file while reading zip file central directory" ) ; + } + ++entry_num ; + } + + // Consistency check. eocd should start here + + int pos = _vs.vtellg( _zipfile ) ; + _vs.vseekg( _zipfile, 0, ios::end ) ; + int remaining = static_cast< int >( _vs.vtellg( _zipfile ) ) - pos ; + if ( remaining != _eocd.eocdOffSetFromEnd() ) + throw FCollException( "Zip file consistency problem. Zip file data fields are inconsistent with zip file layout" ) ; + + // Consistency check 2, are local headers consistent with + // cd headers + if ( ! confirmLocalHeaders( _zipfile ) ) + throw FCollException( "Zip file consistency problem. Zip file data fields are inconsistent with zip file layout" ) ; + + return true ; +} + + +bool ZipFile::readEndOfCentralDirectory ( istream &_zipfile ) { + BackBuffer bb( _zipfile, _vs ) ; + int read_p = -1 ; + bool found = false ; + while ( ! found ) { + if ( read_p < 0 ) + if ( ! bb.readChunk ( read_p ) ) { + found = false ; + break ; + } + if ( _eocd.read( bb, read_p ) ) { + found = true ; + break ; + } + --read_p ; + } + + return found ; +} + +bool ZipFile::confirmLocalHeaders( istream &_zipfile ) { + Entries::const_iterator it ; + ZipCDirEntry *ent ; + int inconsistencies = 0 ; + ZipLocalEntry zlh ; + for ( it = _entries.begin() ; it != _entries.end() ; it++ ) { + ent = static_cast< ZipCDirEntry * >( (*it).get() ) ; + _vs.vseekg( _zipfile, ent->getLocalHeaderOffset(), ios::beg ) ; + _zipfile >> zlh ; + if ( ! _zipfile || zlh != *ent ) { + inconsistencies++ ; + _zipfile.clear() ; + } + } + return ! inconsistencies ; +} + +void ZipFile::setError ( string error_str ) { + _valid = false ; +#ifdef _USE_EXCEPTIONS + throw error_str ; // define exception class instead. +#else + cerr << error_str << endl ; // define operator<< for exception class if such a class replaces string +#endif +} + + +} + +/** \file + The implementation of ZipFile. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/ziphead.cc b/source/visualization/HepRep/src/ziphead.cc new file mode 100644 index 0000000000..de3de3c0b0 --- /dev/null +++ b/source/visualization/HepRep/src/ziphead.cc @@ -0,0 +1,294 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include +#include + +#include "zipios_common.h" +#include "zipios++/ziphead.h" +#include "zipios++/zipheadio.h" +#include "zipios++/zipios_defs.h" + +#include "outputstringstream.h" + +namespace zipios { + +using std::ios ; + +bool operator== ( const ZipLocalEntry &zlh, const ZipCDirEntry &ze ) { + // Not all fields need to be identical. Some of the information + // may be put in a data descriptor that trails the compressed + // data, according to the specs (The trailing data descriptor + // can contain crc_32, compress_size and uncompress_size.) + + // Experience has shown that extra_field and extra_field_len + // can differ too. + +// cerr << "----- BEGIN -----" << endl ; +// cerr << ( zlh.extract_version == ze.extract_version ) << endl ; +// cerr << ( zlh.gp_bitfield == ze.gp_bitfield ) << endl ; +// cerr << ( zlh.compress_method == ze.compress_method ) << endl ; +// cerr << ( zlh.last_mod_ftime == ze.last_mod_ftime ) << endl ; +// cerr << ( zlh.last_mod_fdate == ze.last_mod_fdate ) << endl ; + +// cerr << ( zlh.filename_len == ze.filename_len ) << endl ; + +// cerr << ( zlh.filename == ze.filename ) << endl ; +// cerr << "----- END -----" << endl ; + return ( zlh.extract_version == ze.extract_version && + zlh.gp_bitfield == ze.gp_bitfield && + zlh.compress_method == ze.compress_method && + zlh.last_mod_ftime == ze.last_mod_ftime && + zlh.last_mod_fdate == ze.last_mod_fdate && + zlh.filename_len == ze.filename_len && + + zlh.filename == ze.filename ) ; +} + +// +// ZipLocalEntry methods +// + +const uint32 ZipLocalEntry::signature = 0x04034b50 ; + + + +void ZipLocalEntry::setDefaultExtract() { + extract_version = 20 ; // version number +} + +string ZipLocalEntry::getComment() const { + return "" ; // No comment in a local entry +} + +uint32 ZipLocalEntry::getCompressedSize() const { + return compress_size ; +} + +uint32 ZipLocalEntry::getCrc() const { + return crc_32 ; +} + +vector< unsigned char > ZipLocalEntry::getExtra() const { + return extra_field ; +} + +StorageMethod ZipLocalEntry::getMethod() const { + return static_cast< StorageMethod >( compress_method ) ; +} + +string ZipLocalEntry::getName() const { + return filename ; +} + +string ZipLocalEntry::getFileName() const { + if ( isDirectory() ) + return string() ; + string::size_type pos ; + pos = filename.find_last_of( separator ) ; + if ( pos != string::npos ) { // separator found! + // isDirectory() check means pos should not be last, so pos+1 is ok + return filename.substr( pos + 1 ) ; + } else { + return filename ; + } +} + +uint32 ZipLocalEntry::getSize() const { + return uncompress_size ; +} + +int ZipLocalEntry::getTime() const { + return ( last_mod_fdate << 16 ) + last_mod_ftime ; + // FIXME: what to do with this time date thing? (not only here?) +} + +bool ZipLocalEntry::isValid() const { + return _valid ; +} + +bool ZipLocalEntry::isDirectory() const { + assert( filename.size() != 0 ) ; + return filename[ filename.size() - 1 ] == separator ; +} + + +void ZipLocalEntry::setComment( const string &/*MD:comment*/ ) { + // A local entry cannot hold a comment +} + +void ZipLocalEntry::setCompressedSize( uint32 size ) { + compress_size = size ; +} + +void ZipLocalEntry::setCrc( uint32 crc ) { + crc_32 = crc ; +} + +void ZipLocalEntry::setExtra( const vector< unsigned char > &extra ) { + extra_field = extra ; + extra_field_len = extra_field.size() ; +} + +void ZipLocalEntry::setMethod( StorageMethod method ) { + compress_method = static_cast< uint16 >( method ) ; +} + +void ZipLocalEntry::setName( const string &name ) { + filename = name ; + filename_len = filename.size() ; +} + +void ZipLocalEntry::setSize( uint32 size ) { + uncompress_size = size ; +} + +void ZipLocalEntry::setTime( int time ) { + // FIXME: fix time setting here, and ind flist and elsewhere. Define the + // date time semantics before mucking about - how surprising + + // MD: added 2 lines + last_mod_fdate = (time >> 16) & 0x0000FFFF; + last_mod_ftime = time & 0x0000FFFF; +} + +string ZipLocalEntry::toString() const { + OutputStringStream sout ; + sout << filename << " (" << uncompress_size << " bytes, " ; + sout << compress_size << " bytes compressed)" ; + return sout.str() ; +} + +int ZipLocalEntry::getLocalHeaderSize() const { + return 30 + filename.size() + extra_field.size() ; +} + +bool ZipLocalEntry::trailingDataDescriptor() const { + // gp_bitfield bit 3 is one, if this entry uses a trailing data + // descriptor to keep size, compressed size and crc-32 + // fields. + if ( ( gp_bitfield & 4 ) == 1 ) + return true ; + else + return false ; +} + +FileEntry *ZipLocalEntry::clone() const { + return new ZipLocalEntry( *this ) ; +} + + +// +// ZipCDirEntry methods +// + +const uint32 ZipCDirEntry::signature = 0x02014b50 ; + +void ZipCDirEntry::setDefaultWriter() { + writer_version = 0 ; +#ifdef WIN32 + writer_version |= static_cast< uint16 >( 0 ) << 8 ; // Windows, DOS +#else + writer_version |= static_cast< uint16 >( 3 ) << 8 ; // Unix +#endif + writer_version |= 20 ; // version number +} + +string ZipCDirEntry::getComment() const { + return file_comment ; +} + +uint32 ZipCDirEntry::getLocalHeaderOffset() const { + return rel_offset_loc_head ; +} + +void ZipCDirEntry::setLocalHeaderOffset( uint32 offset ) { + rel_offset_loc_head = offset ; +} + + +void ZipCDirEntry::setComment( const string &comment ) { + file_comment = comment ; + file_comment_len = file_comment.size() ; +} + + +string ZipCDirEntry::toString() const { + OutputStringStream sout ; + sout << filename << " (" << uncompress_size << " bytes, " ; + sout << compress_size << " bytes compressed)" ; + return sout.str() ; +} + + +int ZipCDirEntry::getCDirHeaderSize() const { + return 46 + filename.size() + extra_field.size() + file_comment.size() ; +} + + +FileEntry *ZipCDirEntry::clone() const { + return new ZipCDirEntry( *this ) ; +} + + +// +// EndOfCentralDirectory methods +// + +const uint32 EndOfCentralDirectory::signature = 0x06054b50 ; + +bool EndOfCentralDirectory::read( vector &buf, int pos ) { + if ( ( buf.size() - pos < sizeof( uint32 ) ) || + ( ! checkSignature( &( buf[ pos ] ) ) ) ) + return false ; + + eocd_offset_from_end = buf.size() - pos ; + pos += sizeof( uint32 ) ; + disk_num = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; + cdir_disk_num = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; + cdir_entries = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; + cdir_tot_entries = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; + cdir_size = ztohl( &( buf[ pos ] ) ) ; pos += sizeof( uint32 ) ; + cdir_offset = ztohl( &( buf[ pos ] ) ) ; pos += sizeof( uint32 ) ; + zip_comment_len = ztohs( &( buf[ pos ] ) ) ; pos += sizeof( uint16 ) ; +// cerr << "Zip comment length = " << zip_comment_len << endl ; +// cerr << "Length of remaining file = " << buf.size() - pos << endl ; + + return true ; // Dummy +} + +bool EndOfCentralDirectory::checkSignature ( unsigned char *buf ) const { +// cerr << "potential header: " << ztohl( buf ) << endl ; + return checkSignature( ztohl( buf ) ) ; +} + + + +} // namespace + + + +/** \file + Implementation of routines for reading the central directory and + local headers of a zip archive. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/zipheadio.cc b/source/visualization/HepRep/src/zipheadio.cc new file mode 100644 index 0000000000..bb1ff7d8e2 --- /dev/null +++ b/source/visualization/HepRep/src/zipheadio.cc @@ -0,0 +1,196 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" +#include +#include + +#include "zipios_common.h" +#include "zipios++/zipheadio.h" + +// MD Removed +//#include "outputstringstream.h" + +namespace zipios { + +std::istream& operator>> ( std::istream &is, ZipLocalEntry &zlh ) { + zlh._valid = false ; // set to true upon successful completion. + if ( ! is ) + return is ; + +// // Before reading anything we record the position in the stream +// // This is a field in the central directory entry, but not +// // in the local entry. After all, we know where we are, anyway. +// zlh.rel_offset_loc_head = is.tellg() ; + + if ( zlh.signature != readUint32( is ) ) { + // put stream in error state and return + is.setstate ( std::ios::failbit ) ; + return is ; + } + + zlh.extract_version = readUint16( is ) ; + zlh.gp_bitfield = readUint16( is ) ; + zlh.compress_method = readUint16( is ) ; + zlh.last_mod_ftime = readUint16( is ) ; + zlh.last_mod_fdate = readUint16( is ) ; + zlh.crc_32 = readUint32( is ) ; + zlh.compress_size = readUint32( is ) ; + zlh.uncompress_size = readUint32( is ) ; + zlh.filename_len = readUint16( is ) ; + zlh.extra_field_len = readUint16( is ) ; + + // Read filename and extra_field + readByteSeq( is, zlh.filename, zlh.filename_len ) ; + readByteSeq( is, zlh.extra_field, zlh.extra_field_len ) ; + + if ( is ) + zlh._valid = true ; + return is ; +} + + +std::istream& operator>> ( std::istream &is, DataDescriptor &/*MD:dd*/ ) { + return is ; +} + + +std::istream& operator>> ( std::istream &is, ZipCDirEntry &zcdh ) { + zcdh._valid = false ; // set to true upon successful completion. + if ( ! is ) + return is ; + + if ( zcdh.signature != readUint32( is ) ) { + // put stream in error state and return + is.setstate ( std::ios::failbit ) ; + return is ; + } + + zcdh.writer_version = readUint16( is ) ; + zcdh.extract_version = readUint16( is ) ; + zcdh.gp_bitfield = readUint16( is ) ; + zcdh.compress_method = readUint16( is ) ; + zcdh.last_mod_ftime = readUint16( is ) ; + zcdh.last_mod_fdate = readUint16( is ) ; + zcdh.crc_32 = readUint32( is ) ; + zcdh.compress_size = readUint32( is ) ; + zcdh.uncompress_size = readUint32( is ) ; + zcdh.filename_len = readUint16( is ) ; + zcdh.extra_field_len = readUint16( is ) ; + zcdh.file_comment_len = readUint16( is ) ; + zcdh.disk_num_start = readUint16( is ) ; + zcdh.intern_file_attr = readUint16( is ) ; + zcdh.extern_file_attr = readUint32( is ) ; + zcdh.rel_offset_loc_head = readUint32( is ) ; + + // Read filename and extra_field + readByteSeq( is, zcdh.filename, zcdh.filename_len ) ; + readByteSeq( is, zcdh.extra_field, zcdh.extra_field_len ) ; + readByteSeq( is, zcdh.file_comment, zcdh.file_comment_len ) ; + + if ( is ) + zcdh._valid = true ; + return is ; +} + +std::ostream &operator<< ( std::ostream &os, const ZipLocalEntry &zlh ) { + if ( ! os ) + return os ; + + writeUint32( zlh.signature , os ) ; + writeUint16( zlh.extract_version, os ) ; + writeUint16( zlh.gp_bitfield , os ) ; + writeUint16( zlh.compress_method, os ) ; + writeUint16( zlh.last_mod_ftime , os ) ; + writeUint16( zlh.last_mod_fdate , os ) ; + writeUint32( zlh.crc_32 , os ) ; + writeUint32( zlh.compress_size , os ) ; + writeUint32( zlh.uncompress_size, os ) ; + writeUint16( zlh.filename_len , os ) ; + writeUint16( zlh.extra_field_len, os ) ; + + + // Write filename and extra_field + writeByteSeq( os, zlh.filename ) ; + writeByteSeq( os, zlh.extra_field ) ; + + return os ; +} + +std::ostream &operator<< ( std::ostream &os, const ZipCDirEntry &zcdh ) { + if ( ! os ) + return os ; + + writeUint32( zcdh.signature , os ) ; + writeUint16( zcdh.writer_version , os ) ; + writeUint16( zcdh.extract_version , os ) ; + writeUint16( zcdh.gp_bitfield , os ) ; + writeUint16( zcdh.compress_method , os ) ; + writeUint16( zcdh.last_mod_ftime , os ) ; + writeUint16( zcdh.last_mod_fdate , os ) ; + writeUint32( zcdh.crc_32 , os ) ; + writeUint32( zcdh.compress_size , os ) ; + writeUint32( zcdh.uncompress_size , os ) ; + writeUint16( zcdh.filename_len , os ) ; + writeUint16( zcdh.extra_field_len , os ) ; + writeUint16( zcdh.file_comment_len , os ) ; + writeUint16( zcdh.disk_num_start , os ) ; + writeUint16( zcdh.intern_file_attr , os ) ; + writeUint32( zcdh.extern_file_attr , os ) ; + writeUint32( zcdh.rel_offset_loc_head, os ) ; + + // Write filename and extra_field + writeByteSeq( os, zcdh.filename ) ; + writeByteSeq( os, zcdh.extra_field ) ; + writeByteSeq( os, zcdh.file_comment ) ; + + return os ; +} + +std::ostream &operator<< ( std::ostream &os, const EndOfCentralDirectory &eocd ) { + if ( ! os ) + return os ; + + writeUint32( eocd.signature , os ) ; + writeUint16( eocd.disk_num , os ) ; + writeUint16( eocd.cdir_disk_num , os ) ; + writeUint16( eocd.cdir_entries , os ) ; + writeUint16( eocd.cdir_tot_entries, os ) ; + writeUint32( eocd.cdir_size , os ) ; + writeUint32( eocd.cdir_offset , os ) ; + writeUint16( eocd.zip_comment_len , os ) ; + + writeByteSeq( os, eocd.zip_comment ) ; + + return os ; +} + + + +} // namespace + + + +/** \file + Implementation of I/O functions for the header structures + defined in ziphead.h. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/zipinputstream.cc b/source/visualization/HepRep/src/zipinputstream.cc new file mode 100644 index 0000000000..77d335fd78 --- /dev/null +++ b/source/visualization/HepRep/src/zipinputstream.cc @@ -0,0 +1,82 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include "zipios++/zipinputstreambuf.h" +#include "zipios++/zipinputstream.h" + +namespace zipios { + +ZipInputStream::ZipInputStream( std::istream &is, std::streampos pos ) +// MD: removed std:: + : istream( 0 ), +// SGIs basic_ifstream calls istream with 0, but calls basic_ios constructor first?? + ifs( 0 ) +{ + izf = new ZipInputStreambuf( is.rdbuf(), pos ) ; +// this->rdbuf( izf ) ; is replaced by: + this->init( izf ) ; +} + +ZipInputStream::ZipInputStream( const std::string &filename, std::streampos pos ) +// MD: removed std:: + : istream( 0 ), + ifs( 0 ) +{ + ifs = new std::ifstream( filename.c_str(), std::ios::in |std:: ios::binary ) ; + izf = new ZipInputStreambuf( ifs->rdbuf(), pos ) ; +// this->rdbuf( izf ) ; is replaced by: + this->init( izf ) ; +} + +int ZipInputStream::available() { + return 1 ; // FIXME: Dummy implementation +} + +void ZipInputStream::closeEntry() { + izf->closeEntry() ; +} + +void ZipInputStream::close() { + izf->close() ; +} + +// ZipLocalEntry *ZipInputStream::createZipCDirEntry( const string +// &name ) {} + +ConstEntryPointer ZipInputStream::getNextEntry() { + clear() ; // clear eof and other flags. + return izf->getNextEntry() ; +} + +ZipInputStream::~ZipInputStream() { + // It's ok to call delete with a Null pointer. + delete izf ; + delete ifs ; +} + +} // namespace + +/** \file + Implementation of ZipInputStream. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/zipinputstreambuf.cc b/source/visualization/HepRep/src/zipinputstreambuf.cc new file mode 100644 index 0000000000..486662c952 --- /dev/null +++ b/source/visualization/HepRep/src/zipinputstreambuf.cc @@ -0,0 +1,140 @@ + +#include "zipios++/zipios-config.h" + +#include +#include "zipios++/meta-iostreams.h" + +#include + +#include "zipios++/zipinputstreambuf.h" +#include "zipios_common.h" + +namespace zipios { + +using std::ios ; +using std::cerr ; +using std::endl ; + +ZipInputStreambuf::ZipInputStreambuf( streambuf *inbuf, int s_pos, bool del_inbuf ) + : InflateInputStreambuf( inbuf, s_pos, del_inbuf ), + _open_entry( false ) +{ + ConstEntryPointer entry = getNextEntry() ; + + if ( ! entry->isValid() ) { + ; // FIXME: throw something? + } +} + +void ZipInputStreambuf::closeEntry() { + if ( ! _open_entry ) + return ; + + // check if we're positioned correctly, otherwise position us correctly + int position = _inbuf->pubseekoff(0, ios::cur, + ios::in); + if ( position != _data_start + static_cast< int >( _curr_entry.getCompressedSize() ) ) + _inbuf->pubseekoff(_data_start + _curr_entry.getCompressedSize(), + ios::beg, ios::in) ; + +} + +void ZipInputStreambuf::close() { +} + +ConstEntryPointer ZipInputStreambuf::getNextEntry() { + if ( _open_entry ) + closeEntry() ; + + // read the zip local header + istream is( _inbuf ) ; // istream does not destroy the streambuf. + is >> _curr_entry ; + if ( _curr_entry.isValid() ) { + _data_start = _inbuf->pubseekoff(0, ios::cur, + ios::in); + if ( _curr_entry.getMethod() == DEFLATED ) { + _open_entry = true ; + reset() ; // reset inflatestream data structures +// cerr << "deflated" << endl ; + } else if ( _curr_entry.getMethod() == STORED ) { + _open_entry = true ; + _remain = _curr_entry.getSize() ; + // Force underflow on first read: + setg( &( _outvec[ 0 ] ), + &( _outvec[ 0 ] ) + _outvecsize, + &( _outvec[ 0 ] ) + _outvecsize ) ; +// cerr << "stored" << endl ; + } else { + _open_entry = false ; // Unsupported compression format. + throw FCollException( "Unsupported compression format" ) ; + } + } else { + _open_entry = false ; + } + + if ( _curr_entry.isValid() && _curr_entry.trailingDataDescriptor() ) + throw FCollException( "Trailing data descriptor in zip file not supported" ) ; + return new ZipLocalEntry( _curr_entry ) ; +} + + +ZipInputStreambuf::~ZipInputStreambuf() { +} + + +int ZipInputStreambuf::underflow() { + if ( ! _open_entry ) + return EOF ; // traits_type::eof() + if ( _curr_entry.getMethod() == DEFLATED ) + return InflateInputStreambuf::underflow() ; + + // Ok, we're are stored, so we handle it ourselves. + int num_b = min( _remain, _outvecsize ) ; + int g = _inbuf->sgetn( &(_outvec[ 0 ] ) , num_b ) ; + setg( &( _outvec[ 0 ] ), + &( _outvec[ 0 ] ), + &( _outvec[ 0 ] ) + g ) ; + _remain -= g ; + if ( g > 0 ) + return static_cast< unsigned char >( *gptr() ) ; + else + return EOF ; // traits_type::eof() +} + + +// FIXME: We need to check somew +// +// // gp_bitfield bit 3 is one, if the length of the zip entry +// // is stored in a trailer. +// if ( is->good && ( _curr_entry.gp_bitfield & 4 ) != 1 ) +// return true ; +// else { +// is->clear() ; +// return false ; +// } + + +} // namespace + +/** \file + Implementation of ZipInputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/zipoutputstream.cc b/source/visualization/HepRep/src/zipoutputstream.cc new file mode 100644 index 0000000000..01ecea996d --- /dev/null +++ b/source/visualization/HepRep/src/zipoutputstream.cc @@ -0,0 +1,103 @@ + +#include "zipios++/zipios-config.h" + +#include "zipios++/meta-iostreams.h" + +#include "zipios++/zipoutputstreambuf.h" +#include "zipios++/zipoutputstream.h" + +namespace zipios { + +ZipOutputStream::ZipOutputStream( std::ostream &os ) +// MD: removed std:: + : ostream( 0 ), +// SGIs basic_ifstream calls istream with 0, but calls basic_ios constructor first?? + ofs( 0 ) +{ + ozf = new ZipOutputStreambuf( os.rdbuf() ) ; + + init( ozf ) ; +} + + +ZipOutputStream::ZipOutputStream( const std::string &filename ) +// MD: removed std:: + : ostream( 0 ), + ofs( 0 ) +{ + ofs = new std::ofstream( filename.c_str(), std::ios::out | std::ios::binary ) ; + ozf = new ZipOutputStreambuf( ofs->rdbuf() ) ; + this->init( ozf ) ; +} + +void ZipOutputStream::closeEntry() { + ozf->closeEntry() ; +} + + +void ZipOutputStream::close() { + ozf->close() ; + if ( ofs ) + ofs->close() ; +} + + +void ZipOutputStream::finish() { + ozf->finish() ; +} + + +void ZipOutputStream::putNextEntry( const ZipCDirEntry &entry ) { + ozf->putNextEntry( entry ) ; +} + +void ZipOutputStream::putNextEntry(const std::string& entryName) { + putNextEntry( ZipCDirEntry(entryName)); +} + + +void ZipOutputStream::setComment( const std::string &comment ) { + ozf->setComment( comment ) ; +} + + +void ZipOutputStream::setLevel( int level ) { + ozf->setLevel( level ) ; +} + + +void ZipOutputStream::setMethod( StorageMethod method ) { + ozf->setMethod( method ) ; +} + + +ZipOutputStream::~ZipOutputStream() { + // It's ok to call delete with a Null pointer. + delete ozf ; + delete ofs ; +} + +} // namespace + +/** \file + Implementation of ZipOutputStream. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/zipoutputstreambuf.cc b/source/visualization/HepRep/src/zipoutputstreambuf.cc new file mode 100644 index 0000000000..9b038ea006 --- /dev/null +++ b/source/visualization/HepRep/src/zipoutputstreambuf.cc @@ -0,0 +1,204 @@ + +#include + +#include "zipios++/zipios-config.h" + +#include +#include "zipios++/meta-iostreams.h" + +#include + +#include "zipios++/zipoutputstreambuf.h" + +namespace zipios { + +using std::ios ; +using std::cerr ; +using std::endl ; +//using std::min ; + +ZipOutputStreambuf::ZipOutputStreambuf( streambuf *outbuf, bool del_outbuf ) + : DeflateOutputStreambuf( outbuf, false, del_outbuf ), + _open_entry( false ), + _open ( true ), + _method ( DEFLATED ), + _level ( 6 ) +{ +} + + +void ZipOutputStreambuf::closeEntry() { + if ( ! _open_entry ) + return ; + + closeStream() ; + + updateEntryHeaderInfo() ; + setEntryClosedState( ) ; +} + + +void ZipOutputStreambuf::close() { + finish() ; +} + + +void ZipOutputStreambuf::finish() { + if( ! _open ) + return ; + closeEntry() ; + ostream os( _outbuf ) ; + writeCentralDirectory( _entries, EndOfCentralDirectory( _zip_comment), os ) ; + _open = false ; +} + + +ZipOutputStreambuf::~ZipOutputStreambuf() { + finish() ; +} + + +void ZipOutputStreambuf::putNextEntry( const ZipCDirEntry &entry ) { + if ( _open_entry ) + closeEntry() ; + + if ( ! init( _level ) ) + cerr << "ZipOutputStreambuf::putNextEntry(): init() failed!\n" ; + + _entries.push_back( entry ) ; + ZipCDirEntry &ent = _entries.back() ; + + ostream os( _outbuf ) ; + + // Update entry header info + ent.setLocalHeaderOffset( os.tellp() ) ; + ent.setMethod( _method ) ; + + os << static_cast< ZipLocalEntry >( ent ) ; + + _open_entry = true ; +} + + +void ZipOutputStreambuf::setComment( const string &comment ) { + _zip_comment = comment ; +} + + +void ZipOutputStreambuf::setLevel( int level ) { + _level = level ; +} + + +void ZipOutputStreambuf::setMethod( StorageMethod method ) { + _method = method ; + if( method == STORED ) + setLevel( NO_COMPRESSION ) ; + else if ( method == DEFLATED ) { + if( _level == NO_COMPRESSION ) + setLevel( DEFAULT_COMPRESSION ) ; + } else + throw FCollException( "Specified compression method not supported" ) ; +} + +// +// Protected and private methods +// + +int ZipOutputStreambuf::overflow( int c ) { + return DeflateOutputStreambuf::overflow( c ) ; +// // FIXME: implement + +// cout << "ZipOutputStreambuf::overflow() not implemented yet!\n" ; +// return EOF ; +} + + + +int ZipOutputStreambuf::sync() { + return DeflateOutputStreambuf::sync() ; +// // FIXME: implement +// cout << "ZipOutputStreambuf::sync() not implemented yet!\n" ; +// return EOF ; +} + + + +void ZipOutputStreambuf::setEntryClosedState() { + _open_entry = false ; + // FIXME: update put pointers to trigger overflow on write. overflow + // should then return EOF while _open_entry is false. +} + + +void ZipOutputStreambuf::updateEntryHeaderInfo() { + if ( ! _open_entry ) + return ; + + ostream os( _outbuf ) ; + int curr_pos = os.tellp() ; + + // update fields in _entries.back() + ZipCDirEntry &entry = _entries.back() ; + entry.setSize( getCount() ) ; + entry.setCrc( getCrc32() ) ; + entry.setCompressedSize( curr_pos - entry.getLocalHeaderOffset() + - entry.getLocalHeaderSize() ) ; + + // MD: added line, current date and time + time_t ltime; + time( <ime ); + struct tm *now; + now = localtime( <ime ); + int dosTime = (now->tm_year - 80) << 25 | (now->tm_mon + 1) << 21 | now->tm_mday << 16 | + now->tm_hour << 11 | now->tm_min << 5 | now->tm_sec >> 1; + entry.setTime(dosTime); + + // write ZipLocalEntry header to header position + os.seekp( entry.getLocalHeaderOffset() ) ; + os << static_cast< ZipLocalEntry >( entry ) ; + os.seekp( curr_pos ) ; +} + + +void ZipOutputStreambuf::writeCentralDirectory( const vector< ZipCDirEntry > &entries, + EndOfCentralDirectory eocd, + ostream &os ) { + int cdir_start = os.tellp() ; + std::vector< ZipCDirEntry >::const_iterator it ; + int cdir_size = 0 ; + + for ( it = entries.begin() ; it != entries.end() ; ++it ) { + os << *it ; + cdir_size += it->getCDirHeaderSize() ; + } + eocd.setOffset( cdir_start ) ; + eocd.setCDirSize( cdir_size ) ; + eocd.setTotalCount( entries.size() ) ; + os << eocd ; +} + +} // namespace + +/** \file + Implementation of ZipOutputStreambuf. +*/ + +/* + Zipios++ - a small C++ library that provides easy access to .zip files. + Copyright (C) 2000 Thomas Søndergaard + + 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 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; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ diff --git a/source/visualization/HepRep/src/zutil.cc b/source/visualization/HepRep/src/zutil.cc new file mode 100644 index 0000000000..3d4b08f3bc --- /dev/null +++ b/source/visualization/HepRep/src/zutil.cc @@ -0,0 +1,225 @@ +/* zutil.c -- target dependent utility functions for the compression library + * Copyright (C) 1995-1998 Jean-loup Gailly. + * For conditions of distribution and use, see copyright notice in zlib.h + */ + +/* @(#) $Id: zutil.cc,v 1.1 2003/07/11 06:01:46 duns Exp $ */ + +#include "zutil.h" + +struct internal_state {int dummy;}; /* for buggy compilers */ + +#ifndef STDC +extern void exit OF((int)); +#endif + +const char *z_errmsg[10] = { +"need dictionary", /* Z_NEED_DICT 2 */ +"stream end", /* Z_STREAM_END 1 */ +"", /* Z_OK 0 */ +"file error", /* Z_ERRNO (-1) */ +"stream error", /* Z_STREAM_ERROR (-2) */ +"data error", /* Z_DATA_ERROR (-3) */ +"insufficient memory", /* Z_MEM_ERROR (-4) */ +"buffer error", /* Z_BUF_ERROR (-5) */ +"incompatible version",/* Z_VERSION_ERROR (-6) */ +""}; + + +const char * ZEXPORT zlibVersion() +{ + return ZLIB_VERSION; +} + +#ifdef DEBUG + +# ifndef verbose +# define verbose 0 +# endif +int z_verbose = verbose; + +void z_error (char *m) +// char *m; +{ + fprintf(stderr, "%s\n", m); + exit(1); +} +#endif + +/* exported to allow conversion of error code to string for compress() and + * uncompress() + */ +const char * ZEXPORT zError(int err) +// int err; +{ + return ERR_MSG(err); +} + + +#ifndef HAVE_MEMCPY + +void zmemcpy(Bytef* dest, const Bytef* source, uInt len) +// Bytef* dest; +// const Bytef* source; +// uInt len; +{ + if (len == 0) return; + do { + *dest++ = *source++; /* ??? to be unrolled */ + } while (--len != 0); +} + +int zmemcmp(const Bytef* s1, const Bytef* s2, uInt len) +// const Bytef* s1; +// const Bytef* s2; +// uInt len; +{ + uInt j; + + for (j = 0; j < len; j++) { + if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1; + } + return 0; +} + +void zmemzero(Bytef* dest, uInt len) + Bytef* dest; + uInt len; +{ + if (len == 0) return; + do { + *dest++ = 0; /* ??? to be unrolled */ + } while (--len != 0); +} +#endif + +#ifdef __TURBOC__ +#if (defined( __BORLANDC__) || !defined(SMALL_MEDIUM)) && !defined(__32BIT__) +/* Small and medium model in Turbo C are for now limited to near allocation + * with reduced MAX_WBITS and MAX_MEM_LEVEL + */ +# define MY_ZCALLOC + +/* Turbo C malloc() does not allow dynamic allocation of 64K bytes + * and farmalloc(64K) returns a pointer with an offset of 8, so we + * must fix the pointer. Warning: the pointer must be put back to its + * original form in order to free it, use zcfree(). + */ + +#define MAX_PTR 10 +/* 10*64K = 640K */ + +local int next_ptr = 0; + +typedef struct ptr_table_s { + voidpf org_ptr; + voidpf new_ptr; +} ptr_table; + +local ptr_table table[MAX_PTR]; +/* This table is used to remember the original form of pointers + * to large buffers (64K). Such pointers are normalized with a zero offset. + * Since MSDOS is not a preemptive multitasking OS, this table is not + * protected from concurrent access. This hack doesn't work anyway on + * a protected system like OS/2. Use Microsoft C instead. + */ + +voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) +{ + voidpf buf = opaque; /* just to make some compilers happy */ + ulg bsize = (ulg)items*size; + + /* If we allocate less than 65520 bytes, we assume that farmalloc + * will return a usable pointer which doesn't have to be normalized. + */ + if (bsize < 65520L) { + buf = farmalloc(bsize); + if (*(ush*)&buf != 0) return buf; + } else { + buf = farmalloc(bsize + 16L); + } + if (buf == NULL || next_ptr >= MAX_PTR) return NULL; + table[next_ptr].org_ptr = buf; + + /* Normalize the pointer to seg:0 */ + *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; + *(ush*)&buf = 0; + table[next_ptr++].new_ptr = buf; + return buf; +} + +void zcfree (voidpf opaque, voidpf ptr) +{ + int n; + if (*(ush*)&ptr != 0) { /* object < 64K */ + farfree(ptr); + return; + } + /* Find the original pointer */ + for (n = 0; n < next_ptr; n++) { + if (ptr != table[n].new_ptr) continue; + + farfree(table[n].org_ptr); + while (++n < next_ptr) { + table[n-1] = table[n]; + } + next_ptr--; + return; + } + ptr = opaque; /* just to make some compilers happy */ + Assert(0, "zcfree: ptr not found"); +} +#endif +#endif /* __TURBOC__ */ + + +#if defined(M_I86) && !defined(__32BIT__) +/* Microsoft C in 16-bit mode */ + +# define MY_ZCALLOC + +#if (!defined(_MSC_VER) || (_MSC_VER <= 600)) +# define _halloc halloc +# define _hfree hfree +#endif + +voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) +{ + if (opaque) opaque = 0; /* to make compiler happy */ + return _halloc((long)items, size); +} + +void zcfree (voidpf opaque, voidpf ptr) +{ + if (opaque) opaque = 0; /* to make compiler happy */ + _hfree(ptr); +} + +#endif /* MSC */ + + +#ifndef MY_ZCALLOC /* Any system without a special alloc function */ + +#ifndef STDC +extern voidp calloc OF((uInt items, uInt size)); +extern void free OF((voidpf ptr)); +#endif + +voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) +// voidpf opaque; +// unsigned items; +// unsigned size; +{ + if (opaque) items += size - size; /* make compiler happy */ + return (voidpf)calloc(items, size); +} + +void zcfree (voidpf opaque, voidpf ptr) +// voidpf opaque; +// voidpf ptr; +{ + free(ptr); + if (opaque) return; /* make compiler happy */ +} + +#endif /* MY_ZCALLOC */ diff --git a/source/visualization/History b/source/visualization/History index edd94a65e5..26d3514c42 100644 --- a/source/visualization/History +++ b/source/visualization/History @@ -1,4 +1,4 @@ -$Id: History,v 1.224 2003/06/02 10:42:59 johna Exp $ +$Id: History,v 1.238 2003/11/27 11:51:56 johna Exp $ ------------------------------------------------------------------- ========================================================= @@ -24,6 +24,71 @@ committal in the CVS repository ! History file for visualization category --------------------------------------- +27th November 2003 John Allison (vis-V05-02-06) +- Added /vis/scene/endOfRunAction. +- Includes vis-HepRep-V05-02-08. +- G4VisManager: Removed PrintAllGraphicsSystems and + PrintInstalledGraphicsSystems. They are difficult to maintain and + are anyway not used. (There remains PrintAvailableGraphicsSystems, + which is much used, and iterates over instantiated graphics systems + and needs no maintenance.) + +20th November 2003 John Allison (vis-V05-02-05) +- Re-submitted. Includes vis-HepRep-05-02-07: fixes compiler issues and + other minor fixes. + +14th November 2003 John Allison (vis-V05-02-04) +- Includes vis-HepRep-05-02-03: new HepRep XML driver for HepRep Version 2. +- Bug fix in G4VisManager::EndOfEvent. + +12th November 2003 John Allison +- Bug in /vis/scene/add/volume: requestedDepthOfDescent now correctly + propagated to "world" volume. +- modeling-V05-02-02: G4PhysicalVolumeModel: CalculateExtent always + searches complete hierarchy. +- Change initialisation of G4VSceneHandler so that there is always a + clear on first drawing - fMarkForClearingTransientStore(true). +- Removed redundant code from G4VisManager::::EndOfRun. + +6th November 2003 John Allison (vis-V05-02-03) +- management: + o G4VisManager: improved handling of auto refresh at end of event and run. + o G4VisCommandsScene: improved endOfEventAction and improved guidance. + o GNUmakefile: rationalised. +- GNUmakefile: removed G4LIBDIR and G4TMPDIR. +- RayTracer/GNUmakefile: rationalised (raytracer-V05-02-04). +- Tree: improved printing. +- G4VRML2SceneHandlerFunc: changed const char* pv_name to G4String pv_name. +- G4XXXViewer: improved comments. +- modeling: GNUmakefile: rationalised (modeling-V05-02-01). +- test: changed MyPhysicsList to follow kernel changes. + +4th November 2003 Gabriele Cosmo (vis-V05-02-02) +- Includes removal of OPACS module. +- Includes "modeling-V05-02-00". + +17th October 2003 Guy Barrand +- OPACS being (for long) deprecated, remove OPACS related things + in Geant4 repository. + +4th October 2003 Gabriele Cosmo (vis-V05-02-01) +- Modified GNUmakefiles: + o added dependency to new module "geometry/navigation". + o replaced "digits+hits" with "digits_hits". +- Coworks with "geometry-V05-02-00" and "digits_hits-V05-02-00". + +22nd September 2003 John Allison (vis-V05-02-00, greps-V05-02-00) +- Incorporates raytracer-V05-02-01 (needs greps-V05-02-00) - see + RayTracer/History: + o Introduced G4VRTScanner. + o Added /vis/rayTracer/backgroundColour. +- Introduced Doxygen documentation for management, OpenGL and test. +- Improved guidance for /vis/scene/notifyHandlers. +- OpenGL: Cosmetic change to regularise names. + +2nd September 2003 John Allison +- Fixed pedantic warnings etc. in test suite - see test/History. + 2nd June 2003 John Allison (vis-V05-01-01) - Small fix for pedantic warnings in RayTracer. diff --git a/source/visualization/OPACS/GNUmakefile b/source/visualization/OPACS/GNUmakefile deleted file mode 100644 index 8c64d97d4c..0000000000 --- a/source/visualization/OPACS/GNUmakefile +++ /dev/null @@ -1,25 +0,0 @@ -# $Id: GNUmakefile,v 1.4 2002/03/01 00:29:54 johna Exp $ - -name := G4OPACS - -ifndef G4INSTALL - G4INSTALL = ../../.. -endif - -include $(G4INSTALL)/config/architecture.gmk -include $(G4INSTALL)/config/G4VIS_BUILD.gmk -include $(G4INSTALL)/config/interactivity.gmk - -CPPFLAGS += -I$(G4BASE)/visualization/management/include -CPPFLAGS += -I$(G4BASE)/visualization/modeling/include -CPPFLAGS += -I$(G4BASE)/global/management/include -CPPFLAGS += -I$(G4BASE)/global/HEPGeometry/include -CPPFLAGS += -I$(G4BASE)/geometry/solids/CSG/include -CPPFLAGS += -I$(G4BASE)/geometry/solids/specific/include -CPPFLAGS += -I$(G4BASE)/graphics_reps/include -CPPFLAGS += -I$(G4BASE)/geometry/management/include -CPPFLAGS += -I$(G4BASE)/geometry/volumes/include -CPPFLAGS += -I$(G4BASE)/interfaces/common/include -CPPFLAGS += -I$(G4BASE)/intercoms/include - -include $(G4INSTALL)/config/common.gmk diff --git a/source/visualization/OPACS/README b/source/visualization/OPACS/README deleted file mode 100644 index 2b0571a5f6..0000000000 --- a/source/visualization/OPACS/README +++ /dev/null @@ -1,113 +0,0 @@ -OPACS as a G4 driver --------------------- - The OPACS html address is : - - http://www.lal.in2p3.fr/OPACS - - To have G4 running with OPACS : - - - Install the OPACS v3 by following - the web installation page. - For G4 take the group : - WoXoXm if you have MOTIF - WoXoXaw if you have Xaw - For example on a UNIX with MOTIF only : - UNIX> mkdir OPACS - UNIX> cd OPACS - UNIX> ftp ftp.lal.in2p3.fr - anonymous - user name - ftp> cd pub/OPACS/v3 - ftp> bin - ftp> get WoXoXm.tar.Z - ( ftp> get WoXoXaw.tar.Z ) - ftp> quit - UNIX> uncompress WoXoXm.tar.Z - ( UNIX> uncompress WoXoXaw.tar.Z ) - UNIX> tar xvf WoXoXm.tar - ( UNIX> tar xvf WoXoXaw.tar ) - UNIX> rm WoXoXm.tar - ( UNIX> rm WoXoXaw.tar ) - UNIX> cd OPACS/v3 - UNIX> chmod u+x conf.sh - UNIX> ./conf.sh - csh> source setup.csh - (sh> . ./setup.sh) - UNIX> make WoXo - ( UNIX> gmake WoXo ) - At end of installation you should - be able to build a simple Wo application - (for exa named Xxx) by doing : - csh> mkdir tmp - csh> cd tmp - with MOTIF : - csh> onew Xxx - or with Xaw : - csh> onew Xxx $WOROOT/usr/template/Xaw/ - then : - csh> gmake `uname` - csh> ./Xxx.exe - The interpreted interface is described - in Xxx.odb. - See OPACS doc for more. - - - Execute OPACS setup script : - csh> source /OPACS/v3/setup.csh - - - Set environment variables : - G4UI_BUILD_WO_SESSION - G4UI_USE_WO - G4VIS_BUILD_OPACS_DRIVER - G4VIS_USE_OPACS - For example : - csh> setenv G4UI_BUILD_WO_SESSION 1 - csh> setenv G4UI_USE_WO 1 - csh> setenv G4VIS_BUILD_OPACS_DRIVER 1 - csh> setenv G4VIS_USE_OPACS 1 - Set G4_OPACS_WIDGET_SET to Xaw if you want - to use Athena widget set instead of Motif : - csh> setenv G4_OPACS_WIDGET_SET Xaw - - - Compile G4 interfaces and visualization modules with - the upper variables setted. - - - Build visualization/test/test19. - - - example to run test 19 with Xaw G4UI and Xo vis driver : - csh> source /OPACS/v3/setup.csh - (or sh> . /v3/setup.sh) - csh> cd .../visualization/test - csh> G++-Linux/test19 Xaw - In the little window type : - continue (and click on ok) - continue - /vis~/create_view/new_graphics_system Xo - /run/beamOn 1 - continue - When you have something in the Xo window - you can manipulate it with : - Ctrl+button1+move pointer - on the window. On button3 you have a popup - menu to do things, like changing "Ctrl" action, - setting ZBuffer, etc... - - - example to run test19 with Wo G4UI reconstructed - with MOTIF : - csh> source /OPACS/v3/setup.csh - (or sh> . /v3/setup.sh) - csh> cd .../visualization/test - csh> HP-UX/test19 Wo - or with Xaw : - csh> source /OPACS/v3/setup.csh - csh> cd .../visualization/test - csh> setenv WOENVIRONMENT test19Xaw.odb - csh> G++-Linux/test19 Wo - The "Wo" interface to test19 is in test19.odb - (or test19Xaw.odb). In this file you can - find examples of buttons that triggs G4 commands. - - - - - - diff --git a/source/visualization/OPACS/include/G4GoSceneHandler.hh b/source/visualization/OPACS/include/G4GoSceneHandler.hh deleted file mode 100644 index 1aee386d5d..0000000000 --- a/source/visualization/OPACS/include/G4GoSceneHandler.hh +++ /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: G4GoSceneHandler.hh,v 1.9 2002/12/11 15:58:00 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 -// Wo scene handler - creates Wo Display lists. - -#ifndef G4GOSCENEHANDLER_HH -#define G4GOSCENEHANDLER_HH - -#if defined(G4VIS_BUILD_OPACS_DRIVER) || defined(G4VIS_USE_OPACS) - -//Go -#include -#include -//G4 -#include "globals.hh" -#include "G4VGraphicsSystem.hh" -#include "G4VSceneHandler.hh" - -class G4GoSceneHandler: public G4VSceneHandler { - -public: - G4GoSceneHandler (G4VGraphicsSystem& system, - const G4String& name = ""); - virtual ~G4GoSceneHandler (); - void AddPrimitive (const G4Polyline&); - void AddPrimitive (const G4Text&); - void AddPrimitive (const G4Circle&); - void AddPrimitive (const G4Square&); - void AddPrimitive (const G4Polymarker&); - void AddPrimitive (const G4Polyhedron&); - void AddPrimitive (const G4NURBS&); - //////////////////////////////////////////////////////////////// - // Explicitly invoke base class methods to avoid warnings about - // hiding of base class methods. - void AddPrimitive (const G4Scale& scale) { - G4VSceneHandler::AddPrimitive (scale); - } - - void AddThis (const G4Box&); - void AddThis (const G4Cons&); - void AddThis (const G4Tubs&); - void AddThis (const G4Trd&); - void AddThis (const G4Trap&); - void AddThis (const G4Sphere&); - void AddThis (const G4Para&); - void AddThis (const G4Torus&); - void AddThis (const G4Polycone&); - void AddThis (const G4Polyhedra&); - void AddThis (const G4VSolid&); - void AddThis (const G4VTrajectory&); - void AddThis (const G4VHit&); - - void BeginPrimitives (const G4Transform3D& objectTransformation); - void EndPrimitives (); - void PreAddThis (const G4Transform3D& objectTransformation, - const G4VisAttributes& visAttribs); - void PostAddThis (); - static G4int GetSceneCount (); - ONode GetRootNode (); - -private: - void ClearStore (); - void ClearTransientStore(); - void RequestPrimitives (const G4VSolid& solid); - G4VGraphicsSystem& fSystem; // Graphics system for this scene. - ONode fRootGoNode; // Root ONode for this scene. - ONode fStaticRootGoNode; // For detector. - ONode fTransientRootGoNode; // For event. - static G4int fSceneIdCount; // static counter for Wo scenes. - static G4int fSceneCount; // No. of extanct scene handlers. - static ONode fGoNode; // Current ONode. - static OColormap fOColormap; - void SetColour (const G4Colour&); - char* nodeName; -}; - -inline G4int G4GoSceneHandler::GetSceneCount () { - return fSceneCount; -} - - -#endif - -#endif - diff --git a/source/visualization/OPACS/include/G4Wo.hh b/source/visualization/OPACS/include/G4Wo.hh deleted file mode 100644 index 29939fa73d..0000000000 --- a/source/visualization/OPACS/include/G4Wo.hh +++ /dev/null @@ -1,52 +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: G4Wo.hh,v 1.6 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 -// Wo graphics system factory. - -#ifndef G4WO_HH -#define G4WO_HH - -#if defined(G4VIS_BUILD_OPACS_DRIVER) || defined(G4VIS_USE_OPACS) - -//G4 -#include "G4VGraphicsSystem.hh" - -class G4VInteractorManager; - -class G4Wo: public G4VGraphicsSystem { -public: - G4Wo (); - virtual ~G4Wo (); - G4VSceneHandler* CreateSceneHandler (const G4String& name = ""); - G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); - static G4VInteractorManager* GetInteractorManager (); -}; - -#endif - -#endif diff --git a/source/visualization/OPACS/include/G4Xo.hh b/source/visualization/OPACS/include/G4Xo.hh deleted file mode 100644 index ca041e58ec..0000000000 --- a/source/visualization/OPACS/include/G4Xo.hh +++ /dev/null @@ -1,52 +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: G4Xo.hh,v 1.6 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 -// Wo graphics system factory. - -#ifndef G4XO_HH -#define G4XO_HH - -#if defined(G4VIS_BUILD_OPACS_DRIVER) || defined(G4VIS_USE_OPACS) - -//G4 -#include "G4VGraphicsSystem.hh" - -class G4VInteractorManager; - -class G4Xo: public G4VGraphicsSystem { -public: - G4Xo (); - virtual ~G4Xo (); - G4VSceneHandler* CreateSceneHandler (const G4String& name = ""); - G4VViewer* CreateViewer (G4VSceneHandler&, const G4String& name = ""); - static G4VInteractorManager* GetInteractorManager (); -}; - -#endif - -#endif diff --git a/source/visualization/OPACS/src/G4GoSceneHandler.cc b/source/visualization/OPACS/src/G4GoSceneHandler.cc deleted file mode 100644 index 1b127dc202..0000000000 --- a/source/visualization/OPACS/src/G4GoSceneHandler.cc +++ /dev/null @@ -1,638 +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: G4GoSceneHandler.cc,v 1.14 2002/12/11 15:58:01 johna Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 -// Wo stored scene - creates Wo display lists. - -//#define DEBUG - -#ifdef G4VIS_BUILD_OPACS_DRIVER - -//Co -#include -#include -//Go -#include -//G4 -#include "G4Point3D.hh" -#include "G4Normal3D.hh" -#include "G4Polyline.hh" -#include "G4Polymarker.hh" -#include "G4Polyhedron.hh" -#include "G4Circle.hh" -#include "G4Square.hh" -#include "G4Text.hh" -#include "G4NURBS.hh" -#include "G4PhysicalVolumeModel.hh" -#include "G4VPhysicalVolume.hh" -//This -#include "G4GoSceneHandler.hh" - -static G4Transform3D transformation; - -G4int G4GoSceneHandler::fSceneIdCount = 0; -G4int G4GoSceneHandler::fSceneCount = 0; -ONode G4GoSceneHandler::fGoNode = NULL; -OColormap G4GoSceneHandler::fOColormap = NULL; -/***************************************************************************/ -G4GoSceneHandler::G4GoSceneHandler ( - G4VGraphicsSystem& system, - const G4String& name -) -/***************************************************************************/ -// Creator. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -:G4VSceneHandler (system, fSceneIdCount++, name) -,fSystem(system) -,fRootGoNode(NULL) -,fStaticRootGoNode(NULL) -,fTransientRootGoNode(NULL) -,nodeName(NULL) -/*.........................................................................*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::G4GoSceneHandler" << G4endl; -#endif - fSceneCount++; -} -/***************************************************************************/ -G4GoSceneHandler::~G4GoSceneHandler ( -) -/***************************************************************************/ -// Destructor. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - //fRootGoNode could be deleted by an XoCamera popup "Erase". - if(ONodeIsValid(fRootGoNode)==1) - ONodeDelete (fRootGoNode); - fRootGoNode = NULL; - fStaticRootGoNode = NULL; - fTransientRootGoNode = NULL; - fSceneCount--; -} -/***************************************************************************/ -void G4GoSceneHandler::AddPrimitive ( - const G4Polyline& line -) -/***************************************************************************/ -// Method for handling G4Polyline objects. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddPrimitive(G4Polyline&) " << line.size () << G4endl; -#endif - SetColour (GetColour(line)); - int nPoints = line.size (); - OPointList points; - points = OPointListCreate(nPoints); - for (int iPoint = 0; iPoint < nPoints; iPoint++) { - OPointListSetIthEntry (points,iPoint, - line[iPoint].x(), - line[iPoint].y(), - line[iPoint].z()); - } - GoAddLinesToNode (fGoNode,points); - OPointListDelete (points); -} -/***************************************************************************/ -void G4GoSceneHandler::AddPrimitive ( - const G4Polymarker& line -) -/***************************************************************************/ -// Method for handling G4Polymarker objects. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddPrimitive(G4Polymarker&) " << line.size () << G4endl; -#endif - SetColour (GetColour(line)); - int nPoints = line.size (); - OPointList points; - points = OPointListCreate(nPoints); - for (int iPoint = 0; iPoint < nPoints; iPoint++) { - OPointListSetIthEntry (points,iPoint, - line[iPoint].x(), - line[iPoint].y(), - line[iPoint].z()); - } - GoAddMarkersToNode (fGoNode,points); - OPointListDelete (points); -} -/***************************************************************************/ -void G4GoSceneHandler::AddPrimitive ( - const G4Circle& circle -) -/***************************************************************************/ -// Method for handling G4Circle objects. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - SetColour (GetColour(circle)); - G4Point3D center = circle.GetPosition(); - // G4double radius = circle.GetWorldSize(); ####### Unused. ####### -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddPrimitive(G4Circle&) : center : " - << " x : " << center.x() - << " y : " << center.y() - << " z : " << center.z() - << " ,radius : " << radius << G4endl; -#endif - // Direction of circle ? - //GoAddCircleToNode (fGoNode,radius,center.x(),center.y(),center.z(),0.,0.,1.); - OContextSetMarkerStyle (OContextGetStaticInstance(),OMarkerStyleCircle); - OContextSetMarkerSize (OContextGetStaticInstance(),5); - GoAddMarkerToNode (fGoNode,center.x(),center.y(),center.z()); -} -/***************************************************************************/ -void G4GoSceneHandler::AddPrimitive ( - const G4Polyhedron& polyhedron -) -/***************************************************************************/ -// Method for handling G4Polyhedron objects for drawing solids. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddPrimitive(G4Polyhedron&) " << G4endl; -#endif - - if (polyhedron.GetNoFacets() == 0) return; - - SetColour (GetColour(polyhedron)); - - OModeling modeling = OModelingWireFrame; - switch (GetDrawingStyle (polyhedron)) { - case (G4ViewParameters::hlhsr): - case (G4ViewParameters::hsr): - //not ready yet modeling = OModelingSolid; - break; - case (G4ViewParameters::hlr): - case (G4ViewParameters::wireframe): - default: - modeling = OModelingWireFrame; - break; - } - - double xs[5]; - double ys[5]; - double zs[5]; - G4Normal3D SurfaceNormal; - G4Point3D vertex; - - G4bool notLastFace; - do { - G4int edgeFlag = 1; - G4int lastEdgeFlag = edgeFlag; - int iPoint = 0; - notLastFace = polyhedron.GetNextNormal (SurfaceNormal); - G4bool notLastEdge; - do { - notLastEdge = polyhedron.GetNextVertex (vertex, edgeFlag); - if (modeling==OModelingWireFrame) { - if (edgeFlag != lastEdgeFlag) { - if (edgeFlag) { - // Pass to visible edges, restart to accumulate : - iPoint = 0; - xs[iPoint] = vertex.x(); - ys[iPoint] = vertex.y(); - zs[iPoint] = vertex.z(); - iPoint++; - } else { - // Pass to invisible edges, flush the visible ones : - xs[iPoint] = vertex.x(); - ys[iPoint] = vertex.y(); - zs[iPoint] = vertex.z(); - iPoint++; - if(iPoint>=2) { - ONodeAddLines(fGoNode,OContextGetStaticInstance(), - iPoint,xs,ys,zs); - } - } - lastEdgeFlag = edgeFlag; - } else { - if (edgeFlag) { - xs[iPoint] = vertex.x(); - ys[iPoint] = vertex.y(); - zs[iPoint] = vertex.z(); - iPoint++; - } else { - } - } - } else { - xs[iPoint] = vertex.x(); - ys[iPoint] = vertex.y(); - zs[iPoint] = vertex.z(); - iPoint++; - } - } while (notLastEdge); - if (modeling==OModelingWireFrame) { - if(iPoint!=0) { // Some line started, flush it : - /* - xs[iPoint] = xs[0]; - ys[iPoint] = ys[0]; - zs[iPoint] = zs[0]; - iPoint++; - */ - if(iPoint>=2) { - ONodeAddLines(fGoNode,OContextGetStaticInstance(),iPoint,xs,ys,zs); - } - } - } else if (modeling==OModelingSolid) { - if( (iPoint!=3) && (iPoint!=4) ) { - CWarnF ("G4GoSceneHandler::AddPrimitive G4Polyhedron : not a quad or a triangle : %d\n",iPoint); - } else { - ONodeAddPolygon (fGoNode,OContextGetStaticInstance(),iPoint,xs,ys,zs); - } - } - } while (notLastFace); -} -/***************************************************************************/ -void G4GoSceneHandler::AddPrimitive ( - const G4Text& text -) -/***************************************************************************/ -// Method for handling G4Text objects. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - SetColour (GetTextColour(text)); -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddPrimitive(G4Text&) " << G4endl; -#endif - CWarnF ("G4GoSceneHandler::AddPrimitive G4Text : not yet implemented.\n"); -} -/***************************************************************************/ -void G4GoSceneHandler::AddPrimitive ( - const G4Square& Square -) -/***************************************************************************/ -// Method for handling G4Square objects. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - SetColour (GetColour(Square)); -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddPrimitive(G4Square&) " << G4endl; -#endif - CWarnF ("G4GoSceneHandler::AddPrimitive G4Square : not yet implemented.\n"); -} -/***************************************************************************/ -void G4GoSceneHandler::AddPrimitive ( - const G4NURBS& nurb -) -/***************************************************************************/ -//Method for handling G4NURBS objects for drawing solids. -//Knots and Ctrl Pnts MUST be arrays of GLfloats. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - SetColour (GetColour(nurb)); -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddPrimitive(G4NURBS&) " << G4endl; -#endif - CWarnF ("G4GoSceneHandler::AddPrimitive G4NURBS : not yet implemented.\n"); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Box& box -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Box&) " << G4endl; -#endif - G4VSceneHandler::AddThis (box); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Cons& cons -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Cons&) " << G4endl; -#endif - G4VSceneHandler::AddThis (cons); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Tubs& tubs -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Tubs&) " << G4endl; -#endif - G4VSceneHandler::AddThis (tubs); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Trd& trd -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Trd&) " << G4endl; -#endif - G4VSceneHandler::AddThis (trd); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Trap& trap -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Trap&) " << G4endl; -#endif - G4VSceneHandler::AddThis (trap); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Sphere& sphere -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Sphere&) " << G4endl; -#endif - G4VSceneHandler::AddThis (sphere); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Para& para -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Para&) " << G4endl; -#endif - G4VSceneHandler::AddThis (para); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Torus& torus -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Torus&) " << G4endl; -#endif - G4VSceneHandler::AddThis (torus); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Polycone& polycone -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Polycone&) " << G4endl; -#endif - G4VSceneHandler::AddThis (polycone); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4Polyhedra& polyhedra -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4Polyhedra&) " << G4endl; -#endif - G4VSceneHandler::AddThis (polyhedra); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4VSolid& solid -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4VSolid&) " << G4endl; -#endif - G4VSceneHandler::AddThis (solid); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4VTrajectory& traj -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4VTrajectory&) " << G4endl; -#endif - G4VSceneHandler::AddThis (traj); -} -/***************************************************************************/ -void G4GoSceneHandler::AddThis ( - const G4VHit& hit -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::AddThis(G4VHit&) " << G4endl; -#endif - G4VSceneHandler::AddThis (hit); -} -/***************************************************************************/ -void G4GoSceneHandler::PreAddThis ( - const G4Transform3D& objectTransformation, - const G4VisAttributes& visAttribs -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4VSceneHandler::PreAddThis (objectTransformation, visAttribs); - - CStringDelete (nodeName); - nodeName = NULL; - - const G4VPhysicalVolume* currentPhysicalVolume = fpCurrentPV; - - if(currentPhysicalVolume==NULL) return; - - nodeName = CStringCreateF (15+64,"PhysicalVolume/%lu",currentPhysicalVolume ); - -#ifdef DEBUG - G4cout << "G4GoSceneHandler::PreAddThis : " << nodeName << G4endl; -#endif -} -/***************************************************************************/ -void G4GoSceneHandler::PostAddThis ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::PostAddThis" << G4endl; -#endif - CStringDelete (nodeName); - nodeName = NULL; - G4VSceneHandler::PostAddThis(); -} -/***************************************************************************/ -void G4GoSceneHandler::BeginPrimitives ( - const G4Transform3D& objectTransformation -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::BeginPrimitives" << G4endl; -#endif - - G4VSceneHandler::BeginPrimitives (objectTransformation); - transformation = objectTransformation; - - fGoNode = nodeName!=NULL ? ONodeCreate (nodeName) : ONodeMake (); - if(ONodeIsValid(fRootGoNode)==0) { -#ifdef DEBUG - G4cout << " build Root, Static, Transient nodes" << G4endl; -#endif - fRootGoNode = ONodeMake (); - fStaticRootGoNode = ONodeMake (); - fTransientRootGoNode = ONodeMake (); - ONodeAddChild (fRootGoNode,fStaticRootGoNode); - ONodeAddChild (fRootGoNode,fTransientRootGoNode); - } - if (fReadyForTransients) { -#ifdef DEBUG - G4cout << " add node to transient scene graph" << G4endl; -#endif - ONodeAddChild (fTransientRootGoNode,fGoNode); - } else { -#ifdef DEBUG - G4cout << " add node to static scene graph" << G4endl; -#endif - ONodeAddChild (fStaticRootGoNode,fGoNode); - } -} -/***************************************************************************/ -void G4GoSceneHandler::EndPrimitives ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::EndPrimitives" << G4endl; -#endif - HepRotation rot = transformation.getRotation(); - Hep3Vector tra = transformation.getTranslation(); - OMatrix omatrix = OMatrixCreate(OMatrixFollowing, - rot.xx(),rot.xy(),rot.xz(),tra.x(), - rot.yx(),rot.yy(),rot.yz(),tra.y(), - rot.zx(),rot.zy(),rot.zz(),tra.z(), - 0., 0., 0., 1.); - ONodeSetMatrix (fGoNode,omatrix); - OMatrixDelete (omatrix); - fGoNode = NULL; - G4VSceneHandler::EndPrimitives (); -} -/***************************************************************************/ -void G4GoSceneHandler::ClearStore ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::ClearStore" << G4endl; -#endif - if(ONodeIsValid(fTransientRootGoNode)==0) fTransientRootGoNode = NULL; - ONodeDestroyChildren (fTransientRootGoNode); - if(ONodeIsValid(fStaticRootGoNode)==0) fStaticRootGoNode = NULL; - ONodeDestroyChildren (fStaticRootGoNode); -} -/***************************************************************************/ -void G4GoSceneHandler::ClearTransientStore ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::ClearTransientStore" << G4endl; -#endif - if(ONodeIsValid(fTransientRootGoNode)==0) fTransientRootGoNode = NULL; - ONodeDestroyChildren (fTransientRootGoNode); -} -/***************************************************************************/ -void G4GoSceneHandler::RequestPrimitives ( - const G4VSolid& solid -) -/***************************************************************************/ -// Stop-gap solution for display List re-use. -// A proper implementation would use geometry hierarchy. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::RequestPrimitives" << G4endl; -#endif - G4VSceneHandler::RequestPrimitives (solid); -} -/***************************************************************************/ -ONode G4GoSceneHandler::GetRootNode ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4GoSceneHandler::RequestPrimitives" << G4endl; -#endif - if(ONodeIsValid(fRootGoNode)==0) { - fRootGoNode = NULL; - fStaticRootGoNode = NULL; - fTransientRootGoNode = NULL; - } - return fRootGoNode; -} -/***************************************************************************/ -void G4GoSceneHandler::SetColour ( - const G4Colour& a_colour -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if(fOColormap==NULL) fOColormap = OColormapGetIdentifier("ocolormap_X"); - int index = OColormapGetRGB_Index(fOColormap,a_colour.GetRed (), a_colour.GetGreen (), a_colour.GetBlue ()); -#ifdef DEBUG - G4cout << "G4GoSceneHandler::SetColour : red : " << a_colour.GetRed () << - " green : " << a_colour.GetGreen () << - " blue : " << a_colour.GetBlue () << - " index : " << index << G4endl; -#endif - OContextSetColorIndex (OContextGetStaticInstance(),index); -} - -#endif diff --git a/source/visualization/OPACS/src/G4Wo.cc b/source/visualization/OPACS/src/G4Wo.cc deleted file mode 100644 index 8d2fb280b7..0000000000 --- a/source/visualization/OPACS/src/G4Wo.cc +++ /dev/null @@ -1,94 +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: G4Wo.cc,v 1.5 2001/07/11 10:08:47 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 -// Wo graphics system factory. - -#ifdef G4VIS_BUILD_OPACS_DRIVER - -//Co -#include -#include -//G4 -#include "G4Xt.hh" -#include "G4WoViewer.hh" -#include "G4GoSceneHandler.hh" -//This -#include "G4Wo.hh" - -static G4VInteractorManager* interactorManager = NULL; -/***************************************************************************/ -G4Wo::G4Wo ( -) -:G4VGraphicsSystem ("Wo",G4VGraphicsSystem::threeD) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -/*.........................................................................*/ -{ - interactorManager = G4Xt::getInstance (); -} -/***************************************************************************/ -G4Wo::~G4Wo ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -G4VInteractorManager* G4Wo::GetInteractorManager ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - return interactorManager; -} -/***************************************************************************/ -G4VSceneHandler* G4Wo::CreateSceneHandler ( - const G4String& name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4GoSceneHandler* pScene = new G4GoSceneHandler (*this, name); - return pScene; -} -/***************************************************************************/ -G4VViewer* G4Wo::CreateViewer ( - G4VSceneHandler& scene, - const G4String& name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4GoSceneHandler* pScene = (G4GoSceneHandler*)&scene; - G4VViewer* pView = new G4WoViewer (*pScene, name); - return pView; -} - - -#endif - diff --git a/source/visualization/OPACS/src/G4WoViewer.cc b/source/visualization/OPACS/src/G4WoViewer.cc deleted file mode 100644 index 3a685f451c..0000000000 --- a/source/visualization/OPACS/src/G4WoViewer.cc +++ /dev/null @@ -1,222 +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: G4WoViewer.cc,v 1.7 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 - -#ifdef G4VIS_BUILD_OPACS_DRIVER - -//#define DEBUG - -/*Co*/ -#include -#include -/*Xx*/ -#include -/*Go*/ -#include -/*Wo*/ -#include -#include -//G4 -#include "G4VInteractorManager.hh" -#include "G4Scene.hh" -#include "G4Wo.hh" -#include "G4GoSceneHandler.hh" -//This -#include "G4WoViewer.hh" - -/***************************************************************************/ -G4WoViewer::G4WoViewer ( - G4GoSceneHandler& scene, - const G4String& name -) -:G4VViewer (scene, scene.IncrementViewCount(), name) -,fSceneHandler (scene) -,fGoCamera (NULL) -,fXoCamera (NULL) -,fShell (NULL) -/***************************************************************************/ -// Constructor. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4WoViewer::G4WoViewer" << G4endl; -#endif - - if(WoIsInitialized()==0) { - CWarn ("G4WoViewer : Wo is not initialized !\n"); - return; - } - char* defNameGS = CStringDuplicate((char*)fName.data()); - char* defName = CStringGetFirstWord(defNameGS); - CStringDelete(defNameGS); - - CStringReplacePart (&defName,"-","_"); - - fGoCamera = OCameraGetIdentifier (defName); - if(fGoCamera!=NULL) { - return; //OCamera could have been created - //by loading an odb file at Wo startup. - } - - G4VInteractorManager* interactorManager = G4Wo::GetInteractorManager(); - Widget parent = (Widget)interactorManager->GetParentInteractor (); - char* wname = NULL; - if(parent==NULL) { //Create a shell widget. - wname = CStringCreateF (6+strlen(defName),"shell_%s",defName); -#ifdef HAS_XM - fShell = OWidgetCreate (wname,XWidgetGetTop(),"XmFormDialog",False); -#else - fShell = OWidgetCreate (wname,XWidgetGetTop(),"TopLevelShell",False); -#endif - CStringDelete (wname); - parent = fShell; - wname = CStringDuplicate (defName); - } else { - char* str = interactorManager->GetCreationString (); - if(str==NULL) { - wname = CStringDuplicate (defName); - } else { - wname = CStringDuplicate (str); - } - } - - - fXoCamera = OWidgetCreate (wname,parent,"XoCamera",False); - - if(fShell!=NULL) { -#ifdef HAS_XM - OWidgetSetResourceFromString (fShell,"dialogTitle",wname,False); - OWidgetSetResourceFromString (fXoCamera,"topAttachment","attach_form",False); - OWidgetSetResourceFromString (fXoCamera,"leftAttachment","attach_form",False); - OWidgetSetResourceFromString (fXoCamera,"rightAttachment","attach_form",False); - OWidgetSetResourceFromString (fXoCamera,"bottomAttachment","attach_form",False); -#else - OWidgetSetResourceFromString (fShell,"title",wname,False); -#endif - XWidgetMap (fShell); - } - - fGoCamera = OCameraGetIdentifier (wname); - - if(fGoCamera==NULL) { - CWarnF ("Can't find/create OCamera %s\n",wname); - } - - CStringDelete (wname); - CStringDelete (defName); - - interactorManager->SetCreatedInteractor (fXoCamera); -} -/***************************************************************************/ -G4WoViewer::~G4WoViewer ( -) -/***************************************************************************/ -// Destructor. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if(fShell!=NULL) { - OWidgetDelete (fShell,False); - } else if(fXoCamera!=NULL) { - OWidgetDelete (fXoCamera,False); - } -} -/***************************************************************************/ -void G4WoViewer::ClearView ( -) -/***************************************************************************/ -{ -} -/***************************************************************************/ -void G4WoViewer::SetView ( -) -/***************************************************************************/ -// Calculates view representation based on extent of object being -// viewed and (initial) direction of camera. (Note: it can change -// later due to user interaction via visualization system's GUI.) -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - const G4Point3D target - = fSceneHandler.GetScene()->GetStandardTargetPoint() - + fVP.GetCurrentTargetPoint (); - G4double radius = fSceneHandler.GetScene()->GetExtent().GetExtentRadius(); - if(radius<=0.) radius = 1. * m; - const G4double cameraDistance = fVP.GetCameraDistance (radius); - const G4Point3D& pCamera = - target + cameraDistance * fVP.GetViewpointDirection().unit(); - -#ifdef DEBUG - G4cout << "G4WoViewer::SetView : target.x " << target.x() << " target.y " << target.y() << " target.z " << target.z() << G4endl; - G4cout << "G4WoViewer::SetView : dir.x " << fVP.GetViewpointDirection().unit().x() << - " dir.y " << fVP.GetViewpointDirection().unit().y() << - " dir.z " << fVP.GetViewpointDirection().unit().z() << G4endl; - G4cout << "G4WoViewer::SetView : cameraDistance " << cameraDistance << G4endl; - G4cout << "G4WoViewer::SetView : pCamera.x " << pCamera.x() << " pCamera.y " << pCamera.y() << " pCamera.z " << pCamera.z() << G4endl; - G4cout << "G4WoViewer::SetView : pCamera.x " << pCamera.x() << " pCamera.y " << pCamera.y() << " pCamera.z " << pCamera.z() << G4endl; -#endif - - OCameraSetCenter (fGoCamera,target.x() ,target.y() ,target.z()); - OCameraSetDefaultVRP (fGoCamera,pCamera.x(),pCamera.y(),pCamera.z()); - - OCameraSetDefaultUpVector (fGoCamera,0.,1.,0.); - - OCameraSetField (fGoCamera,-radius,radius); - -} -/***************************************************************************/ -void G4WoViewer::DrawView ( -) -/***************************************************************************/ -{ - NeedKernelVisit (); - ProcessView (); - ShowView (); -} -/***************************************************************************/ -void G4WoViewer::ShowView ( -) -/***************************************************************************/ -{ - OCameraViewNode (fGoCamera,fSceneHandler.GetRootNode()); -} -/***************************************************************************/ -OCamera G4WoViewer::GetCamera ( -) -/***************************************************************************/ -{ - return fGoCamera; -} -/***************************************************************************/ -void G4WoViewer::FinishView ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} - - -#endif diff --git a/source/visualization/OPACS/src/G4Xo.cc b/source/visualization/OPACS/src/G4Xo.cc deleted file mode 100644 index 401d3d7d85..0000000000 --- a/source/visualization/OPACS/src/G4Xo.cc +++ /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: G4Xo.cc,v 1.6 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 -// Wo graphics system factory. - -#ifdef G4VIS_BUILD_OPACS_DRIVER - -//#define DEBUG - -#include - -//Co -#include -//Xx -#include -//G4 -#include "G4Xt.hh" -#include "G4XoViewer.hh" -#include "G4GoSceneHandler.hh" -//This -#include "G4Xo.hh" - -static G4VInteractorManager* interactorManager = NULL; -/***************************************************************************/ -G4Xo::G4Xo ( -) -:G4VGraphicsSystem ("Xo",G4VGraphicsSystem::threeD) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -/*.........................................................................*/ -{ - interactorManager = G4Xt::getInstance (); - Widget top = (Widget)interactorManager->GetMainInteractor (); - if(top==NULL) { - CWarn ("G4Xo : Unable to init Xt.\n"); - return; - } - XWidgetSetTop (top); - //XDisplayPutFileInResourceDatabase (XtDisplay(top),"G4Xo.xrm"); -} -/***************************************************************************/ -G4Xo::~G4Xo ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -G4VInteractorManager* G4Xo::GetInteractorManager ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - return interactorManager; -} -/***************************************************************************/ -G4VSceneHandler* G4Xo::CreateSceneHandler ( - const G4String& name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4GoSceneHandler* pScene = new G4GoSceneHandler (*this, name); - return pScene; -} -/***************************************************************************/ -G4VViewer* G4Xo::CreateViewer ( - G4VSceneHandler& scene, - const G4String& name -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4GoSceneHandler* pScene = (G4GoSceneHandler*)&scene; - G4VViewer* pView = new G4XoViewer (*pScene, name); - return pView; -} - -#endif diff --git a/source/visualization/OPACS/src/G4XoViewer.cc b/source/visualization/OPACS/src/G4XoViewer.cc deleted file mode 100644 index 1be99e6f38..0000000000 --- a/source/visualization/OPACS/src/G4XoViewer.cc +++ /dev/null @@ -1,282 +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: G4XoViewer.cc,v 1.8 2001/07/11 10:08:48 gunter Exp $ -// GEANT4 tag $Name: geant4-05-02 $ -// -// -// Guy Barrand 04 November 1996 - -#ifdef G4VIS_BUILD_OPACS_DRIVER - -//#define DEBUG - -//X11 -#include -#include -/*Co*/ -#include -#include -#include -/*Xx*/ -#include -/*Go*/ -#include -/*Xo*/ -#include -//G4 -#include "G4Scene.hh" -#include "G4GoSceneHandler.hh" -#include "G4Xo.hh" -#include "G4VInteractorManager.hh" -//This -#include "G4XoViewer.hh" - -extern "C" { -Bool WaitForNotify (Display*,XEvent*,XPointer); -} - -static void ActivateCallback (Widget,XtPointer,XtPointer); -static void CollectCallback (Widget,XtPointer,XtPointer); -/***************************************************************************/ -G4XoViewer::G4XoViewer ( - G4GoSceneHandler& scene, - const G4String& name -) -:G4VViewer (scene, scene.IncrementViewCount(), name) -,fSceneHandler (scene) -,fGoCamera (NULL) -,fXoCamera (NULL) -,fShell (NULL) -/***************************************************************************/ -// Constructor. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -#ifdef DEBUG - G4cout << "G4XoViewer::G4XoViewer" << G4endl; -#endif - - G4VInteractorManager* interactorManager = G4Xo::GetInteractorManager(); - Widget top = (Widget)interactorManager->GetMainInteractor (); - if(top==NULL) { - CWarn ("Xt is not initialized !\n"); - return; - } - - char* defName = CStringDuplicate((char*)fName.data()); - CStringReplacePart (&defName,"-","_"); - - Arg args[1]; - char* wname = NULL; - Widget parent = (Widget)interactorManager->GetParentInteractor (); - if(parent==NULL) { - // Create a shell widget. - // Add WMClose does not works on ApplicationShell, then use a TopLevelShell. - char* cname; - wname = CStringCreateF (6+strlen(defName),"shell_%s",defName); - cname = CStringCreateF (6+strlen(defName),"Shell_%s",defName); - fShell = XtAppCreateShell (wname,cname,topLevelShellWidgetClass,XtDisplay(top),args,0); - CStringDelete (wname); - CStringDelete (cname); - interactorManager->AddShell (fShell); - parent = fShell; - wname = CStringDuplicate(defName); - } else { - char* str = interactorManager->GetCreationString (); - if(str==NULL) { - wname = CStringDuplicate (defName); - } else { - wname = CStringDuplicate (str); - } - } - - fXoCamera = XtCreateManagedWidget (wname,xoCameraWidgetClass ,parent, args, 0); - fGoCamera = (OCamera) XoCameraGetCamera (fXoCamera); - - XoCameraAddPopupEntry (fXoCamera,"Escape",ActivateCallback,NULL); - XtAddCallback (fXoCamera,XoNcollectCallback,CollectCallback,NULL); - - if(fShell!=NULL) { - XtRealizeWidget (fShell); - XtMapWidget (fShell); - XEvent event; - XIfEvent (XtDisplay(fShell), &event, WaitForNotify, (char*)XtWindow(fShell)); - } - - if(fGoCamera==NULL) { - CWarnF ("Can't create OCamera %s\n",wname); - fXoCamera = NULL; - fGoCamera = NULL; - } - - interactorManager->SetCreatedInteractor(fXoCamera); - - CStringDelete (wname); - CStringDelete (defName); -} -/***************************************************************************/ -G4XoViewer::~G4XoViewer ( -) -/***************************************************************************/ -// Destructor. -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - if(fShell!=NULL) { - G4Xo::GetInteractorManager()->RemoveShell (fShell); - XtDestroyWidget (fShell); - } else if(fXoCamera!=NULL) { - XtDestroyWidget (fXoCamera); - } - fXoCamera = NULL; - fGoCamera = NULL; -} -/***************************************************************************/ -void G4XoViewer::ClearView ( -) -/***************************************************************************/ -{ -} -/***************************************************************************/ -void G4XoViewer::SetView ( -) -/***************************************************************************/ -// Calculates view representation based on extent of object being -// viewed and (initial) direction of camera. (Note: it can change -// later due to user interaction via visualization system's GUI.) -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - const G4Point3D target - = fSceneHandler.GetScene()->GetStandardTargetPoint() - + fVP.GetCurrentTargetPoint (); - G4double radius = fSceneHandler.GetScene()->GetExtent().GetExtentRadius(); - if(radius<=0.) radius = 1. * m; - const G4double cameraDistance = fVP.GetCameraDistance (radius); - const G4Point3D& pCamera = - target + cameraDistance * fVP.GetViewpointDirection().unit(); - -#ifdef DEBUG - G4cout << "G4XoViewer::SetView : target.x " << target.x() << " target.y " << target.y() << " target.z " << target.z() << G4endl; - G4cout << "G4XoViewer::SetView : dir.x " << fVP.GetViewpointDirection().unit().x() << - " dir.y " << fVP.GetViewpointDirection().unit().y() << - " dir.z " << fVP.GetViewpointDirection().unit().z() << G4endl; - G4cout << "G4XoViewer::SetView : cameraDistance " << cameraDistance << G4endl; - G4cout << "G4XoViewer::SetView : pCamera.x " << pCamera.x() << " pCamera.y " << pCamera.y() << " pCamera.z " << pCamera.z() << G4endl; -#endif - - OCameraSetCenter (fGoCamera,target.x() ,target.y() ,target.z()); - OCameraSetDefaultVRP (fGoCamera,pCamera.x(),pCamera.y(),pCamera.z()); - - OCameraSetDefaultUpVector (fGoCamera,0.,1.,0.); - - OCameraSetField (fGoCamera,-radius,radius); - -} -/***************************************************************************/ -OCamera G4XoViewer::GetCamera ( -) -/***************************************************************************/ -{ - return fGoCamera; -} -/***************************************************************************/ -void G4XoViewer::DrawView ( -) -/***************************************************************************/ -{ - NeedKernelVisit (); - ProcessView (); - FinishView (); -} -/***************************************************************************/ -void G4XoViewer::FinishView ( -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -} -/***************************************************************************/ -void G4XoViewer::ShowView ( -) -/***************************************************************************/ -{ - OCameraViewNode (fGoCamera,fSceneHandler.GetRootNode()); - G4Xo::GetInteractorManager() -> SecondaryLoop(); -} -/***************************************************************************/ -/***************************************************************************/ -/***************************************************************************/ -Bool WaitForNotify ( - Display* d -,XEvent* e -,XPointer arg -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ -/*.........................................................................*/ - d = NULL; - return (e->type == MapNotify) && (e->xmap.window == (Window)arg); -} -/***************************************************************************/ -void ActivateCallback ( - Widget This -,XtPointer a_tag -,XtPointer a_data -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - G4Xo::GetInteractorManager() -> RequireExitSecondaryLoop (XO_EXIT_CODE); - This = NULL; - a_tag = NULL; - a_data = NULL; -} -/***************************************************************************/ -void CollectCallback ( - Widget This -,XtPointer a_tag -,XtPointer a_data -) -/***************************************************************************/ -/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ -{ - OCamera camera; - ONode* nodes; - int noden,count; -/*.........................................................................*/ - // collectCallback = osh> getCameraNodes `thisCamera` | collect ONode where highlight eq 1 | get - name | dump - - camera = (OCamera)XoCameraGetCamera (This); - nodes = OCameraCollect (camera,OCollectHighlighted); - noden = CListGetSize ((CList)nodes); - for(count=0;count